sodium-browserify
A polyfil between the apis of node-sodium and libsodium-wrappers, heir to crypto-browserify
Mainly, this wraps libsodium-wrappers to make it work with buffers, and pass the same tests as it does in node, and in the browser.
UPDATE: WebAssembly!
This now uses webassembly, for a massive speed improvement. one of the weird quirks of webassembly is that it gets loaded async, which means you'll only get this speed improvement after waiting a little while, say 50ms, but in most applications something else will need to load, such as reading database state or waiting for connections, so this will happen on it's own.
If you try to use this before the wasm has loaded, it will fallback to tweetnacl.
An event is available to ensure wasm is loaded before proceeding:
var s = require('sodium-browserify')
s.events.on('sodium-browserify:wasm loaded', function() {
console.log("wasm was loaded!")
})
Tests are generated from sodium, with values stored in JSON so that they can be run in the browser.
License
MIT