f93d546ee0626dfe1df34bae8040db2f790914c0
randombytes: Replace run-time require detection
Using require() as an expression leads to compile errors in webpack. This issue can be solved by guarding the use of require by the 'correct' run-time check using `typeof require`.
sodium-javascript
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
Languages
JavaScript
100%