Pure Javascript version of sodium-native
Go to file
Christophe Diederichs c428394bb6 fix minor api mismatch
2023-05-23 17:28:44 +01:00
fe25519_25 add fe25519_mul32 2022-11-17 19:38:08 +00: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 typo fixes in crypto_box and crypto_aead 2022-11-21 17:17:09 +00:00
crypto_auth.js Add crypto_auth (#32) 2020-09-22 14:49:40 +02:00
crypto_box.js Merge branch 'master' into curve 2023-05-23 17:13:50 +01:00
crypto_core_ristretto255.js add ristretto methods 2022-11-21 13:12:30 +00:00
crypto_core.js standard fix crypto_core 2022-11-21 13:11:59 +00:00
crypto_generichash.js Make linter happy 2020-06-24 14:08:55 +02:00
crypto_hash_sha256.js latest working state 2020-08-28 00:52:54 +02:00
crypto_hash.js Merge branch 'master' into curve 2023-05-23 17:13:50 +01: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_ed25519.js use wasm implementations 2023-05-23 16:44:24 +01:00
crypto_scalarmult.js save working state 2020-07-02 17:19:58 +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 add endian check: all other modules require members of this set 2020-06-18 14:11:22 +02:00
crypto_sign_ed25519.js fix minor api mismatch 2023-05-23 17:28:44 +01:00
crypto_sign.js add ristretto methods 2022-01-05 22:50:20 +00:00
crypto_sign.json crypto_sign and crypto_scalarmult with webassembly curve arithmetic added 2020-06-26 10:16:14 +02:00
crypto_stream_chacha20.js add endian check: all other modules require members of this set 2020-06-18 14:11:22 +02:00
crypto_stream.js Merge branch 'master' into curve 2023-05-23 17:13:50 +01:00
crypto_verify.js crypto_verify return booleans & add crypto_verify_64 (#33) 2020-09-15 17:27:39 +02:00
ed25519.js add endian check: all other modules require members of this set 2020-06-18 14:11:22 +02:00
ed-wasm.js ad tweak to ed-wasm test 2023-05-23 16:44:50 +01:00
example.js Modernise example 2020-06-24 14:49:26 +02:00
fe25519_25.js use wasm implementations 2023-05-23 16:44:24 +01:00
fe-test.js first attempt at wassm scalarmult 2020-10-16 01:10:52 +02:00
helpers.js Missing helpers (#24) 2020-08-12 15:39:14 +02:00
index.js Merge branch 'master' into curve 2023-05-23 17:13:50 +01: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 fix minor api mismatch 2023-05-23 17:28:44 +01:00
poly1305.js add endian check: all other modules require members of this set 2020-06-18 14:11:22 +02:00
randombytes.js Merge branch 'master' into curve 2023-05-23 17:13:50 +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