Pure Javascript version of sodium-native
Go to file
2020-11-12 14:04:40 +01:00
internal Move internal primitives 2020-06-24 14:02:00 +02:00
.gitignore first commit 2017-01-24 11:41:06 +01:00
.travis.yml Missing helpers (#24) 2020-08-12 15:39:14 +02:00
crypto_aead.js crypto_aead: correctly hadle ad passed as null 2020-09-22 15:30:31 +02:00
crypto_auth.js Add crypto_auth (#32) 2020-09-22 14:49:40 +02:00
crypto_box.js Add crypto_box_easy (#29) 2020-09-22 14:47:36 +02:00
crypto_generichash.js Make linter happy 2020-06-24 14:08:55 +02:00
crypto_hash_sha256.js change to universal hashes 2020-07-13 14:53:38 +02:00
crypto_hash.js change to universal hashes 2020-07-13 14:53:38 +02:00
crypto_kdf.js Make linter happy 2020-06-24 14:08:55 +02:00
crypto_kx.js Make linter happy 2020-06-24 14:08:55 +02:00
crypto_onetimeauth.js crypto_verify return booleans & add crypto_verify_64 (#33) 2020-09-15 17:27:39 +02:00
crypto_scalarmult.js Make linter happy 2020-06-24 14:08:55 +02:00
crypto_secretbox.js Add crypto_box_easy (#29) 2020-09-22 14:47:36 +02:00
crypto_shorthash.js Split library into modules (#20) 2020-06-18 17:09:03 +02:00
crypto_sign.js missing export: crypto_sign_ed25519_sk_to_pk 2020-09-22 15:50:00 +02:00
crypto_stream_chacha20.js Split library into modules (#20) 2020-06-18 17:09:03 +02:00
crypto_stream.js Add crypto_box_easy (#29) 2020-09-22 14:47:36 +02:00
crypto_verify.js crypto_verify return booleans & add crypto_verify_64 (#33) 2020-09-15 17:27:39 +02:00
example.js Modernise example 2020-06-24 14:49:26 +02:00
helpers.js Missing helpers (#24) 2020-08-12 15:39:14 +02:00
index.js Add crypto_auth (#32) 2020-09-22 14:49:40 +02:00
LICENSE first commit 2017-01-24 11:41:06 +01:00
memory.js Missing helpers (#24) 2020-08-12 15:39:14 +02:00
package.json turn off worker_threads in browser (#52) 2020-11-12 14:04:40 +01:00
randombytes.js Fix offset ArrayBuffer views 2020-06-24 15:01:10 +02:00
README.md Small copy change to README (#54) 2020-11-12 08:39:33 +01:00
test.js Detect window.close is defined (#49) 2020-10-09 13:35:11 +02:00

sodium-javascript

Build Status

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

License

MIT