forked from emilbayes/secretstream-stream
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
31 lines (23 loc) · 898 Bytes
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var test = require('tape')
var secretstream = require('.')
test('simple', function (assert) {
var key = secretstream.keygen()
var header = Buffer.alloc(secretstream.HEADERBYTES)
var initKeyCopy = Buffer.from(key)
var tx = secretstream.encrypt(header, key)
assert.ok(header.some(b => b > 0), 'did fill header')
assert.same(key, initKeyCopy)
var headerCopy = Buffer.from(header)
var keyCopy = Buffer.from(key)
var rx = secretstream.decrypt(header, key)
assert.same(header, headerCopy)
assert.same(key, keyCopy)
var msg = Buffer.from('Hello world')
var ciphertext = tx.encrypt(secretstream.TAG_PUSH, msg)
assert.equal(tx.encrypt.bytes, msg.byteLength + secretstream.ABYTES)
var plaintext = rx.decrypt(ciphertext)
assert.equal(rx.decrypt.bytes, msg.byteLength)
assert.same(rx.decrypt.tag, secretstream.TAG_PUSH)
assert.same(plaintext, msg)
assert.end()
})