Pure Javascript version of sodium-native
Go to file
Christian Bundy f36deb3334 Start porting box_easy test
This doesn't have the same output as you'd find at:

https://github.com/jedisct1/libsodium/blob/master/test/default/box_easy.exp

I don't know why, but I'm confident that I'm doing something wrong. I'm
very concerned about why my test has `c` with a length of 146 (which is
the length of the message plus 16 bytes for the HMAC) but the original
test has an *extra* 16 bytes... for another HMAC? I don't know.
2020-08-28 15:27:29 -07: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 Make linter happy 2020-06-24 14:08:55 +02:00
crypto_box.js Start porting box_easy test 2020-08-28 15:27:29 -07: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 Nicer message formatting 2020-06-24 16:14:52 +02:00
crypto_scalarmult.js Make linter happy 2020-06-24 14:08:55 +02:00
crypto_secretbox.js Nicer message formatting 2020-06-24 16:14:52 +02:00
crypto_shorthash.js Split library into modules (#20) 2020-06-18 17:09:03 +02:00
crypto_sign.js Revert accidental sign API change 2020-06-24 14:49:51 +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 2020-08-28 09:43:27 -07:00
crypto_verify.js Missing helpers (#24) 2020-08-12 15:39:14 +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 Missing helpers (#24) 2020-08-12 15:39:14 +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 0.6.2 2020-08-12 15:40:16 +02:00
randombytes.js Fix offset ArrayBuffer views 2020-06-24 15:01:10 +02:00
README.md Add note on sodium-universal 2020-06-24 15:06:54 +02:00
test_box_easy.js Start porting box_easy test 2020-08-28 15:27:29 -07:00
test.js Run tests with browser-run 2017-06-19 22:39: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 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

License

MIT