@likecoin/noise-js

0.1.0 • Public • Published

noise-js

Javascript implementation of the Noise Protocol Framework that works in both browsers and Node.js

Note that this implementation is low level and requires knowledge of the Noise Protocol Framework, and is aimed to be a building block for higher-level modules wishing to implement application-specific handshakes securely.

Supported Features

DH functions, cipher functions, and hash functions

  • 25519
  • AESGCM
  • SHA256

Patterns

All one-way and fundamental handshake patterns are currently supported:

  • N
  • K
  • X
  • NN
  • KN
  • NK
  • KK
  • NX
  • KX
  • XN
  • IN
  • XK
  • IK
  • XX
  • IX

Modifiers

  • psk

Usage

var noise = require('noise-js')

var sClient = noise.generateKeypair()
var sServer = noise.generateKeypair()

// Initialize a Noise_KK_25519_AESGCM_SHA256 handshake
var client = noise.initialize('KK', true, Buffer.alloc(0), sClient, null, sServer.publicKey)
var server = noise.initialize('KK', false, Buffer.alloc(0), sServer, null, sClient.publicKey)

// -> e, es, ss
var clientTx = client.writeMessage(Buffer.alloc(0))
var serverRx = server.readMessage(clientTx)

// <- e, ee, se
var serverTx = server.writeMessage(Buffer.alloc(0))
var serverSplit = server.split()
var clientRx = client.readMessage(serverTx)
var clientSplit = client.split()

// Can now do transport encryption with splits
console.log(serverSplit)
console.log(clientSplit)

License

Apache License 2.0

Portions of this product may utilize third party copyrighted material, the use of which is acknowledged in the NOTICE file.

Readme

Keywords

none

Package Sidebar

Install

npm i @likecoin/noise-js

Weekly Downloads

30

Version

0.1.0

License

Apache-2.0

Unpacked Size

45.3 kB

Total Files

24

Last publish

Collaborators

  • aurora22
  • nwingt
  • williamchong007