[noise] Noise library in Go

Alexey Ermishkin scratch.net at gmail.com
Sat Nov 4 07:37:19 PDT 2017


Hey David, thanks for that.
You can also look at NoiseSocket's Net.Conn implementation https://github.com/go-noisesocket/noisesocket/blob/master/conn.go

Which uses github.com/flynn/noise

We have already tested it with our NGINX NoiseSocket module, 
https://github.com/VirgilSecurity/virgil-nginx-noise-socket
seems to be working, though we haven't put it into production yet

There's also an example of signing/verifying static keys using Virgil API 

https://github.com/go-noisesocket/noisesocket/tree/master/virgil

BTW I will be speaking on Key Transparency and Noise on Highload conference in Moscow on Nov 7

-----Original Message-----
From: Noise [mailto:noise-bounces at moderncrypto.org] On Behalf Of David Wong
Sent: Saturday, November 4, 2017 7:30 PM
To: noise <noise at moderncrypto.org>
Subject: [noise] Noise library in Go

Hello all,

I have a library in Go here: https://github.com/mimoo/NoiseGo/blob/master/noise/

It's in beta, so don't use that in prod.

It's Noise_{N,KK,NX,NK,XX}_25519_ChachaPoly_SHA256 with a minimal framing done with a 2-byte length header and some code for authentication of the static keys in X patterns:

* I require peers sending their static keys to provide a proof during the configuration of the peer. I have helpers to generate a root
ed25519 key that can sign the peer's static public key as a proof.
* I require peers that receive static keys to provide a callback function that takes whatever payload was sent during the handshake and the received static key. I have helpers as well that create a callback function that will verify a signature via a root public key.

The thing is designed to be "plug-and-play". It's implementing the net.Conn paradigm of the standard library of Go, so whatever you're already doing with the net package or the crypto/tls package will be the same with this package.

The library is passing the cacophony test vectors, and I've successfully tested interoperability (without the framing) with flynn/noise (another implementation of Noise in Go) .
Cheers!
David
_______________________________________________
Noise mailing list
Noise at moderncrypto.org
https://moderncrypto.org/mailman/listinfo/noise



More information about the Noise mailing list