UNPKG

642 BJavaScriptView Raw
1var sodium = require('sodium').api;
2
3
4// Generate keys
5var sender = sodium.crypto_box_keypair();
6var receiver = sodium.crypto_box_keypair();
7
8// Generate random nonce
9var nonce = new Buffer(sodium.crypto_box_NONCEBYTES);
10sodium.randombytes_buf(nonce);
11
12// Encrypt
13var plainText = new Buffer('this is a message');
14var cipherMsg = sodium.crypto_box(plainText, nonce, receiver.publicKey, sender.secretKey);
15
16// Decrypt
17var plainBuffer = sodium.crypto_box_open(cipherMsg, nonce, sender.publicKey,
18 receiver.secretKey);
19
20// We should get the same plainText!
21if (plainBuffer.toString() == plainText) {
22 console.log("Message decrypted correctly");
23}
\No newline at end of file