This repository has been archived by the owner on May 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
sign.test.js
76 lines (57 loc) · 1.7 KB
/
sign.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const expect = require('chai').expect
const sodium = require('./index')
describe('sign Suite', () => {
before(() => {
sodium.SecBuf.setLockLevel(sodium.SecBuf.LOCK_NONE)
})
it('should throw on bad seedKeypair seed', () => {
expect(() => {
sodium.sign.seedKeypair()
}).throws()
})
it('should throw on bad sign message', () => {
expect(() => {
sodium.sign.sign()
}).throws()
})
it('should throw on bad sign secretKey', () => {
expect(() => {
sodium.sign.sign(Buffer.alloc(0))
}).throws()
})
it('should throw on bad verify signature', () => {
expect(() => {
sodium.sign.verify()
}).throws()
})
it('should throw on bad verify message', () => {
expect(() => {
sodium.sign.verify(Buffer.alloc(0))
}).throws()
})
it('should throw on bad verify publicKey', () => {
expect(() => {
sodium.sign.verify(Buffer.alloc(0), Buffer.alloc(0))
}).throws()
})
it('should sign and verify', () => {
const seed = new sodium.SecBuf(32)
seed.randomize()
const { publicKey, secretKey } = sodium.sign.seedKeypair(seed)
seed.free()
const sig = sodium.sign.sign(Buffer.from('hello'), secretKey)
const ver = sodium.sign.verify(sig, Buffer.from('hello'), publicKey)
secretKey.free()
expect(ver).equals(true)
})
it('should get false on bad verify', () => {
const seed = new sodium.SecBuf(32)
seed.randomize()
const { publicKey, secretKey } = sodium.sign.seedKeypair(seed)
seed.free()
const sig = sodium.sign.sign(Buffer.from('hello'), secretKey)
const ver = sodium.sign.verify(sig, Buffer.from('hello1'), publicKey)
secretKey.free()
expect(ver).equals(false)
})
})