https://github.com/sodium-friends/sodium-javascript
Pure Javascript version of sodium-native
https://github.com/sodium-friends/sodium-javascript
Last synced: 3 months ago
JSON representation
Pure Javascript version of sodium-native
- Host: GitHub
- URL: https://github.com/sodium-friends/sodium-javascript
- Owner: sodium-friends
- License: mit
- Created: 2017-01-24T10:41:09.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-06-02T14:58:44.000Z (about 2 years ago)
- Last Synced: 2025-03-30T21:06:16.454Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 2.43 MB
- Stars: 92
- Watchers: 6
- Forks: 24
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `sodium-javascript`
[](https://travis-ci.org/sodium-friends/sodium-javascript)
> WIP - a pure javascript version of [sodium-native](https://github.com/sodium-friends/sodium-native).
Based on tweetnacl## Usage
``` js
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](https://github.com/sodium-friends/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`](https://github.com/sodium-friends/sodium-universal).## Install
```
npm install sodium-javascript
```## License
[MIT](LICENSE)