Pure Javascript version of sodium-native
4520eccee8
When looking through each of the extra methods exposed by this module I noticed lots of 'wasm' mentions, but since this method doesn't mention wasm it wasn't clear to me why this extra method was being exposed. This commit is a breaking change that renames crypto_generichash_ready to crypto_generichash_wasm_ready, which feels more clear to me. |
||
---|---|---|
internal | ||
.gitignore | ||
.travis.yml | ||
crypto_aead.js | ||
crypto_box.js | ||
crypto_generichash.js | ||
crypto_hash_sha256.js | ||
crypto_hash.js | ||
crypto_kdf.js | ||
crypto_kx.js | ||
crypto_onetimeauth.js | ||
crypto_scalarmult.js | ||
crypto_secretbox.js | ||
crypto_shorthash.js | ||
crypto_sign.js | ||
crypto_stream_chacha20.js | ||
crypto_stream.js | ||
crypto_verify.js | ||
example.js | ||
helpers.js | ||
index.js | ||
LICENSE | ||
memory.js | ||
package.json | ||
randombytes.js | ||
README.md | ||
test.js |
sodium-javascript
WIP - a pure javascript version of sodium-native. Based on tweetnacl
Usage
const sodium = require('sodium-javascript')
const key = Buffer.alloc(sodium.crypto_secretbox_KEYBYTES)
const nonce = Buffer.alloc(sodium.crypto_secretbox_NONCEBYTES)
sodium.randombytes_buf(key)
sodium.randombytes_buf(nonce)
const message = Buffer.from('Hello, World!')
const cipher = Buffer.alloc(message.length + sodium.crypto_secretbox_MACBYTES)
sodium.crypto_secretbox_easy(cipher, message, nonce, key)
console.log('Encrypted:', cipher)
const plainText = Buffer.alloc(cipher.length - sodium.crypto_secretbox_MACBYTES)
sodium.crypto_secretbox_open_easy(plainText, cipher, nonce, key)
console.log('Plaintext:', plainText.toString())
API
See sodium-native. This is a work in progress so all functions are not implemented yet.
This module is organised into individual submodules which can be required
independently for smaller bundles in the browser. To leverage automatic
switching between sodium-javascript
and sodium-native
, see
sodium-universal
.
Install
npm install sodium-javascript