Pure Javascript version of sodium-native
Go to file
Christophe Diederichs f19e6c8172
Deprecate sodium-test (#68)
* deprecate sodium-test ahrness

* prune dependencies
2023-05-23 17:16:13 +02:00
internal Add crypto_secretstream methods (#57) 2022-01-14 16:42:28 +00:00
test Deprecate sodium-test (#68) 2023-05-23 17:16:13 +02:00
.gitignore Use globalThis instead of global (#61) 2021-11-02 16:36:15 +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_secretstream.js Add crypto_secretstream methods (#57) 2022-01-14 16:42:28 +00:00
crypto_shorthash.js Split library into modules (#20) 2020-06-18 17:09:03 +02:00
crypto_sign.js crypto_sign: replace Buffer.alloc() with new Uint8Array() (#62) 2021-11-04 17:17:13 +00: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_secretstream methods (#57) 2022-01-14 16:42:28 +00:00
LICENSE first commit 2017-01-24 11:41:06 +01:00
memory.js Use globalThis instead of global (#61) 2021-11-02 16:36:15 +01:00
package.json Deprecate sodium-test (#68) 2023-05-23 17:16:13 +02:00
randombytes.js Use globalThis instead of global (#61) 2021-11-02 16:36:15 +01:00
README.md Small copy change to README (#54) 2020-11-12 08:39:33 +01: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