44const chai = require ( 'chai' )
55chai . use ( require ( 'dirty-chai' ) )
66const expect = chai . expect
7- const crypto = require ( 'libp2p-crypto' )
8- const waterfall = require ( 'async/waterfall' )
9- const parallel = require ( 'async/parallel' )
10- const PeerId = require ( 'peer-id' )
117
128const libp2pRecord = require ( '../src' )
139const Record = libp2pRecord . Record
@@ -17,114 +13,30 @@ const fixture = require('./fixtures/go-record.js')
1713const date = new Date ( Date . UTC ( 2012 , 1 , 25 , 10 , 10 , 10 , 10 ) )
1814
1915describe ( 'record' , ( ) => {
20- let key
21- let otherKey
22- let id
23-
24- before ( ( done ) => {
25- waterfall ( [
26- ( cb ) => parallel ( [
27- ( cb ) => crypto . keys . generateKeyPair ( 'rsa' , 1024 , cb ) ,
28- ( cb ) => crypto . keys . generateKeyPair ( 'rsa' , 1024 , cb )
29- ] , cb ) ,
30- ( keys , cb ) => {
31- otherKey = keys [ 0 ]
32- key = keys [ 1 ]
33-
34- PeerId . createFromPrivKey ( key . bytes , cb )
35- } ,
36- ( _id , cb ) => {
37- id = _id
38-
39- cb ( )
40- }
41- ] , done )
42- } )
43-
4416 it ( 'new' , ( ) => {
4517 const rec = new Record (
4618 Buffer . from ( 'hello' ) ,
47- Buffer . from ( 'world' ) ,
48- id
19+ Buffer . from ( 'world' )
4920 )
5021
5122 expect ( rec ) . to . have . property ( 'key' ) . eql ( Buffer . from ( 'hello' ) )
5223 expect ( rec ) . to . have . property ( 'value' ) . eql ( Buffer . from ( 'world' ) )
53- expect ( rec ) . to . have . property ( 'author' ) . eql ( id )
5424 } )
5525
5626 it ( 'serialize & deserialize' , ( ) => {
57- const rec = new Record ( Buffer . from ( 'hello' ) , Buffer . from ( 'world' ) , id , date )
27+ const rec = new Record ( Buffer . from ( 'hello' ) , Buffer . from ( 'world' ) , date )
5828 const dec = Record . deserialize ( rec . serialize ( ) )
5929
6030 expect ( dec ) . to . have . property ( 'key' ) . eql ( Buffer . from ( 'hello' ) )
6131 expect ( dec ) . to . have . property ( 'value' ) . eql ( Buffer . from ( 'world' ) )
62- expect ( dec ) . to . have . property ( 'author' )
63- expect ( dec . author . id . equals ( id . id ) ) . to . be . eql ( true )
6432 expect ( dec . timeReceived ) . to . be . eql ( date )
6533 } )
6634
67- it ( 'serializeSigned' , ( done ) => {
68- const rec = new Record ( Buffer . from ( 'hello2' ) , Buffer . from ( 'world2' ) , id , date )
69- rec . serializeSigned ( key , ( err , enc ) => {
70- expect ( err ) . to . not . exist ( )
71-
72- const dec = Record . deserialize ( enc )
73- expect ( dec ) . to . have . property ( 'key' ) . eql ( Buffer . from ( 'hello2' ) )
74- expect ( dec ) . to . have . property ( 'value' ) . eql ( Buffer . from ( 'world2' ) )
75- expect ( dec ) . to . have . property ( 'author' )
76- expect ( dec . author . id . equals ( id . id ) ) . to . be . eql ( true )
77- expect ( dec . timeReceived ) . to . be . eql ( date )
78-
79- const blob = rec . blobForSignature ( )
80-
81- key . sign ( blob , ( err , signature ) => {
82- expect ( err ) . to . not . exist ( )
83-
84- expect ( dec . signature ) . to . be . eql ( signature )
85- done ( )
86- } )
87- } )
88- } )
89-
90- describe ( 'verifySignature' , ( ) => {
91- it ( 'valid' , ( done ) => {
92- const rec = new Record ( Buffer . from ( 'hello' ) , Buffer . from ( 'world' ) , id )
93-
94- rec . serializeSigned ( key , ( err , enc ) => {
95- expect ( err ) . to . not . exist ( )
96-
97- rec . verifySignature ( key . public , done )
98- } )
99- } )
100-
101- it ( 'invalid' , ( done ) => {
102- const rec = new Record ( Buffer . from ( 'hello' ) , Buffer . from ( 'world' ) , id )
103- rec . serializeSigned ( key , ( err , enc ) => {
104- expect ( err ) . to . not . exist ( )
105-
106- rec . verifySignature ( otherKey . public , ( err ) => {
107- expect ( err ) . to . match ( / I n v a l i d r e c o r d s i g n a t u r e / )
108- done ( )
109- } )
110- } )
111- } )
112- } )
113-
11435 describe ( 'go interop' , ( ) => {
11536 it ( 'no signature' , ( ) => {
11637 const dec = Record . deserialize ( fixture . serialized )
11738 expect ( dec ) . to . have . property ( 'key' ) . eql ( Buffer . from ( 'hello' ) )
11839 expect ( dec ) . to . have . property ( 'value' ) . eql ( Buffer . from ( 'world' ) )
119- expect ( dec ) . to . have . property ( 'author' )
120- } )
121-
122- it ( 'with signature' , ( ) => {
123- const dec = Record . deserialize ( fixture . serializedSigned )
124- expect ( dec ) . to . have . property ( 'key' ) . eql ( Buffer . from ( 'hello' ) )
125- expect ( dec ) . to . have . property ( 'value' ) . eql ( Buffer . from ( 'world' ) )
126- expect ( dec ) . to . have . property ( 'author' )
127- expect ( dec ) . to . have . property ( 'signature' )
12840 } )
12941 } )
13042} )
0 commit comments