sodium
Version:
Lib Sodium port for node.js
32 lines (23 loc) • 1.09 kB
JavaScript
var assert = require('assert');
var sodium = require('../build/Release/sodium');
describe("libsodium_box7", function () {
it('crypto_box_keypair', function() {
var alice = sodium.crypto_box_keypair();
var bob = sodium.crypto_box_keypair();
var mlen_max = 1000;
var n = Buffer.alloc(sodium.crypto_box_NONCEBYTES).fill(0);
for (var mlen = 0; mlen + sodium.crypto_box_ZEROBYTES <= mlen_max; mlen++) {
sodium.randombytes_buf(n);
var rbytes = Buffer.alloc(mlen);
sodium.randombytes_buf(rbytes);
var m = Buffer.alloc(sodium.crypto_box_ZEROBYTES + mlen).fill(0);
var m2 = Buffer.alloc(sodium.crypto_box_ZEROBYTES + mlen).fill(0);
rbytes.copy(m, sodium.crypto_box_ZEROBYTES, 0, mlen);
var c = sodium.crypto_box(m, n, bob.publicKey, alice.secretKey);
assert(c !== null);
var m2 = sodium.crypto_box_open(c, n, alice.publicKey,
bob.secretKey);
assert(m.equals(m2));
}
});
});