XSalsa20 implemented in Javascript and WebAssembly
JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore first commit Jun 21, 2017
.travis.yml travis Jun 27, 2017
LICENSE first commit Jun 21, 2017
README.md travis Jun 27, 2017
index.js resize wasm buffer on big input Jun 28, 2017
package.json 1.0.2 Jun 28, 2017
test.js test and js fallback Jun 27, 2017
xsalsa20.js resize wasm buffer on big input Jun 28, 2017
xsalsa20.wat resize wasm buffer on big input Jun 28, 2017

README.md

xsalsa20

XSalsa20 implemented in Javascript and WebAssembly.

npm install xsalsa20

build status

Usage

var crypto = require('crypto')
var xsalsa20 = require('xsalsa20')
var key = crypto.randomBytes(32)
var nonce = crypto.randomBytes(24)

var xor = xsalsa20(nonce, key)

console.log(xor.update(new Buffer('hello')))
console.log(xor.update(new Buffer('world')))

xor.finalize()

API

var xor = xsalsa20(nonce, key)

Create a new xor instance.

Nonce should be a 24 byte buffer/uint8array and key should be 32 bytes.

var output = xor.update(input, [output])

Update the xor instance with a new input buffer. Optionally you can pass in an output buffer.

xor.finalize()

Call this method last. Clears internal state.

License

MIT