Pure Javascript version of sodium-native
7ef6e52870
This field isn't adding anything at the moment, and it actually breaks things by pointing at an unresolvable module. |
||
---|---|---|
internal | ||
.gitignore | ||
.travis.yml | ||
crypto_aead.js | ||
crypto_auth.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 not all functions are 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