Pure Javascript version of sodium-native
Go to file
Christophe Diederichs 4465a532c4 add crypto_pwhash api
2023-06-02 15:35:52 +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 add crypto_tweak api 2023-05-23 18:21:23 +01: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_pwhash.js add crypto_pwhash api 2023-06-02 15:35:52 +01: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 Split library into modules (#20) 2020-06-18 17:09:03 +02:00
crypto_sign_ed25519.js add crypto_tweak api 2023-05-23 18:21:23 +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 Split library into modules (#20) 2020-06-18 17:09:03 +02:00
crypto_stream.js Merge branch 'master' into curve 2023-05-23 17:13:50 +01:00
crypto_tweak.js add crypto_tweak api 2023-05-23 18:21:23 +01:00
crypto_verify.js crypto_verify return booleans & add crypto_verify_64 (#33) 2020-09-15 17:27:39 +02:00
ed25519.js Move internal primitives 2020-06-24 14:02:00 +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 add crypto_pwhash api 2023-06-02 15:35:52 +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 add crypto_pwhash api 2023-06-02 15:35:52 +01:00
poly1305.js Move internal primitives 2020-06-24 14:02:00 +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