@acpantenna/relay-protocol 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +54 -2
- package/dist/bip39-english.d.ts +28 -0
- package/dist/bip39-english.d.ts.map +1 -0
- package/dist/bip39-english.js +28 -0
- package/dist/bip39-english.js.map +1 -0
- package/dist/bytes.d.ts +21 -0
- package/dist/bytes.d.ts.map +1 -0
- package/dist/bytes.js +114 -0
- package/dist/bytes.js.map +1 -0
- package/dist/frames.d.ts +90 -0
- package/dist/frames.d.ts.map +1 -0
- package/dist/frames.js +234 -0
- package/dist/frames.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/link.d.ts +44 -0
- package/dist/link.d.ts.map +1 -0
- package/dist/link.js +120 -0
- package/dist/link.js.map +1 -0
- package/dist/noise.d.ts +181 -0
- package/dist/noise.d.ts.map +1 -0
- package/dist/noise.js +490 -0
- package/dist/noise.js.map +1 -0
- package/dist/relay.d.ts +37 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +70 -0
- package/dist/relay.js.map +1 -0
- package/dist/sas.d.ts +11 -0
- package/dist/sas.d.ts.map +1 -0
- package/dist/sas.js +26 -0
- package/dist/sas.js.map +1 -0
- package/dist/session.d.ts +298 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +608 -0
- package/dist/session.js.map +1 -0
- package/package.json +56 -5
- package/src/bip39-english.ts +30 -0
- package/src/bytes.ts +125 -0
- package/src/frames.ts +278 -0
- package/src/index.ts +14 -0
- package/src/link.ts +160 -0
- package/src/noise.ts +655 -0
- package/src/relay.ts +106 -0
- package/src/sas.ts +28 -0
- package/src/session.ts +848 -0
- package/test-vectors/frames.json +353 -0
- package/test-vectors/noise-kk.json +43 -0
- package/test-vectors/noise-nkpsk0.json +47 -0
- package/test-vectors/sas.json +21 -0
- package/test-vectors/session.json +58 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Frame plaintexts (before encryption). `valid` round-trips; `invalid` must be refused; `buckets` maps an unpadded length to its padded length; `chunking` gives the frames of one long message, whose bytes are i mod 251; `streams` are frame sequences a receiver must accept or refuse.",
|
|
3
|
+
"valid": [
|
|
4
|
+
{
|
|
5
|
+
"description": "ACP, one chunk",
|
|
6
|
+
"frame": {
|
|
7
|
+
"type": 1,
|
|
8
|
+
"stream": 1,
|
|
9
|
+
"seq": 0,
|
|
10
|
+
"final": true,
|
|
11
|
+
"payload": "7b226a736f6e727063223a22322e30222c226964223a312c226d6574686f64223a22696e697469616c697a65222c22706172616d73223a7b2270726f746f636f6c56657273696f6e223a317d7d"
|
|
12
|
+
},
|
|
13
|
+
"plaintext": "010000000100000000010000004d7b226a736f6e727063223a22322e30222c226964223a312c226d6574686f64223a22696e697469616c697a65222c22706172616d73223a7b2270726f746f636f6c56657273696f6e223a317d7d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"description": "ACP, 300 bytes: the 512 bucket",
|
|
17
|
+
"frame": {
|
|
18
|
+
"type": 1,
|
|
19
|
+
"stream": 7,
|
|
20
|
+
"seq": 2,
|
|
21
|
+
"final": false,
|
|
22
|
+
"payload": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30"
|
|
23
|
+
},
|
|
24
|
+
"plaintext": "010000000700000002000000012c000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"description": "ACP, empty",
|
|
28
|
+
"frame": {
|
|
29
|
+
"type": 1,
|
|
30
|
+
"stream": 2,
|
|
31
|
+
"seq": 0,
|
|
32
|
+
"final": true,
|
|
33
|
+
"payload": ""
|
|
34
|
+
},
|
|
35
|
+
"plaintext": "01000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"description": "CLOSE with a reason",
|
|
39
|
+
"frame": {
|
|
40
|
+
"type": 2,
|
|
41
|
+
"stream": 0,
|
|
42
|
+
"seq": 0,
|
|
43
|
+
"final": true,
|
|
44
|
+
"payload": "627965"
|
|
45
|
+
},
|
|
46
|
+
"plaintext": "02000000000000000001000000036279650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"description": "PING",
|
|
50
|
+
"frame": {
|
|
51
|
+
"type": 3,
|
|
52
|
+
"stream": 0,
|
|
53
|
+
"seq": 0,
|
|
54
|
+
"final": true,
|
|
55
|
+
"payload": "01020304"
|
|
56
|
+
},
|
|
57
|
+
"plaintext": "03000000000000000001000000040102030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"description": "PONG",
|
|
61
|
+
"frame": {
|
|
62
|
+
"type": 4,
|
|
63
|
+
"stream": 0,
|
|
64
|
+
"seq": 0,
|
|
65
|
+
"final": true,
|
|
66
|
+
"payload": "01020304"
|
|
67
|
+
},
|
|
68
|
+
"plaintext": "04000000000000000001000000040102030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"description": "CONFIRMED",
|
|
72
|
+
"frame": {
|
|
73
|
+
"type": 5,
|
|
74
|
+
"stream": 0,
|
|
75
|
+
"seq": 0,
|
|
76
|
+
"final": true,
|
|
77
|
+
"payload": ""
|
|
78
|
+
},
|
|
79
|
+
"plaintext": "05000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"description": "CONFIRMED of a reconnect, resuming after stream 7",
|
|
83
|
+
"frame": {
|
|
84
|
+
"type": 5,
|
|
85
|
+
"stream": 0,
|
|
86
|
+
"seq": 0,
|
|
87
|
+
"final": true,
|
|
88
|
+
"payload": "00000007"
|
|
89
|
+
},
|
|
90
|
+
"plaintext": "05000000000000000001000000040000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"description": "REMEMBER",
|
|
94
|
+
"frame": {
|
|
95
|
+
"type": 6,
|
|
96
|
+
"stream": 0,
|
|
97
|
+
"seq": 0,
|
|
98
|
+
"final": true,
|
|
99
|
+
"payload": "41414543417751464267634943516f4c4441304f4478415245684d554652595847426b6147787764486838"
|
|
100
|
+
},
|
|
101
|
+
"plaintext": "060000000000000000010000002b41414543417751464267634943516f4c4441304f4478415245684d554652595847426b614778776448683800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"invalid": [
|
|
105
|
+
{
|
|
106
|
+
"description": "unknown type",
|
|
107
|
+
"plaintext": "07000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"description": "unknown flag",
|
|
111
|
+
"plaintext": "01000000010000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"description": "length past the end",
|
|
115
|
+
"plaintext": "01000000010000000001000000f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"description": "not padded to its bucket",
|
|
119
|
+
"plaintext": "0100000001000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"description": "shorter than the smallest bucket",
|
|
123
|
+
"plaintext": "0100000001000000000100000000"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"description": "non-zero padding",
|
|
127
|
+
"plaintext": "01000000010000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"description": "control frame with a stream",
|
|
131
|
+
"plaintext": "03000000010000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"description": "control frame without FINAL",
|
|
135
|
+
"plaintext": "03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"description": "ACP on stream 0",
|
|
139
|
+
"plaintext": "01000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"description": "CONFIRMED with a payload that is not a u32",
|
|
143
|
+
"plaintext": "05000000000000000001000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"description": "REMEMBER with a short key",
|
|
147
|
+
"plaintext": "060000000000000000010000002a41414543417751464267634943516f4c4441304f4478415245684d554652595847426b614778776448680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"buckets": [
|
|
151
|
+
{
|
|
152
|
+
"length": 0,
|
|
153
|
+
"padded": 256
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"length": 14,
|
|
157
|
+
"padded": 256
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"length": 256,
|
|
161
|
+
"padded": 256
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"length": 257,
|
|
165
|
+
"padded": 512
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"length": 512,
|
|
169
|
+
"padded": 512
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"length": 513,
|
|
173
|
+
"padded": 1024
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"length": 4000,
|
|
177
|
+
"padded": 4096
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"length": 32768,
|
|
181
|
+
"padded": 32768
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"length": 32769,
|
|
185
|
+
"padded": 65519
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"length": 65519,
|
|
189
|
+
"padded": 65519
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"chunking": {
|
|
193
|
+
"stream": 3,
|
|
194
|
+
"length": 131110,
|
|
195
|
+
"frames": [
|
|
196
|
+
{
|
|
197
|
+
"seq": 0,
|
|
198
|
+
"final": false,
|
|
199
|
+
"payloadLength": 65505,
|
|
200
|
+
"plaintextLength": 65519
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"seq": 1,
|
|
204
|
+
"final": false,
|
|
205
|
+
"payloadLength": 65505,
|
|
206
|
+
"plaintextLength": 65519
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"seq": 2,
|
|
210
|
+
"final": true,
|
|
211
|
+
"payloadLength": 100,
|
|
212
|
+
"plaintextLength": 256
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"streams": [
|
|
217
|
+
{
|
|
218
|
+
"description": "two messages, the second in two chunks",
|
|
219
|
+
"frames": [
|
|
220
|
+
{
|
|
221
|
+
"stream": 1,
|
|
222
|
+
"seq": 0,
|
|
223
|
+
"final": true
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"stream": 2,
|
|
227
|
+
"seq": 0,
|
|
228
|
+
"final": false
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"stream": 2,
|
|
232
|
+
"seq": 1,
|
|
233
|
+
"final": true
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
"messages": 2
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"description": "first stream is not 1",
|
|
240
|
+
"frames": [
|
|
241
|
+
{
|
|
242
|
+
"stream": 2,
|
|
243
|
+
"seq": 0,
|
|
244
|
+
"final": true
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
"error": true
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"description": "a stream skipped",
|
|
251
|
+
"frames": [
|
|
252
|
+
{
|
|
253
|
+
"stream": 1,
|
|
254
|
+
"seq": 0,
|
|
255
|
+
"final": true
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"stream": 3,
|
|
259
|
+
"seq": 0,
|
|
260
|
+
"final": true
|
|
261
|
+
}
|
|
262
|
+
],
|
|
263
|
+
"error": true
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"description": "a stream repeated",
|
|
267
|
+
"frames": [
|
|
268
|
+
{
|
|
269
|
+
"stream": 1,
|
|
270
|
+
"seq": 0,
|
|
271
|
+
"final": true
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"stream": 1,
|
|
275
|
+
"seq": 0,
|
|
276
|
+
"final": true
|
|
277
|
+
}
|
|
278
|
+
],
|
|
279
|
+
"error": true
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"description": "a chunk skipped",
|
|
283
|
+
"frames": [
|
|
284
|
+
{
|
|
285
|
+
"stream": 1,
|
|
286
|
+
"seq": 0,
|
|
287
|
+
"final": false
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"stream": 1,
|
|
291
|
+
"seq": 2,
|
|
292
|
+
"final": true
|
|
293
|
+
}
|
|
294
|
+
],
|
|
295
|
+
"error": true
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"description": "a chunk repeated",
|
|
299
|
+
"frames": [
|
|
300
|
+
{
|
|
301
|
+
"stream": 1,
|
|
302
|
+
"seq": 0,
|
|
303
|
+
"final": false
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"stream": 1,
|
|
307
|
+
"seq": 0,
|
|
308
|
+
"final": true
|
|
309
|
+
}
|
|
310
|
+
],
|
|
311
|
+
"error": true
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"description": "streams interleaved",
|
|
315
|
+
"frames": [
|
|
316
|
+
{
|
|
317
|
+
"stream": 1,
|
|
318
|
+
"seq": 0,
|
|
319
|
+
"final": false
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"stream": 2,
|
|
323
|
+
"seq": 0,
|
|
324
|
+
"final": true
|
|
325
|
+
}
|
|
326
|
+
],
|
|
327
|
+
"error": true
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"description": "first chunk not seq 0",
|
|
331
|
+
"frames": [
|
|
332
|
+
{
|
|
333
|
+
"stream": 1,
|
|
334
|
+
"seq": 1,
|
|
335
|
+
"final": true
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
"error": true
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"description": "CLOSE inside a stream",
|
|
342
|
+
"frames": [
|
|
343
|
+
{
|
|
344
|
+
"stream": 1,
|
|
345
|
+
"seq": 0,
|
|
346
|
+
"final": false
|
|
347
|
+
},
|
|
348
|
+
"close"
|
|
349
|
+
],
|
|
350
|
+
"error": true
|
|
351
|
+
}
|
|
352
|
+
]
|
|
353
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": "https://github.com/haskell-cryptography/cacophony/blob/master/vectors/cacophony.txt",
|
|
3
|
+
"vectors": [
|
|
4
|
+
{
|
|
5
|
+
"protocol_name": "Noise_KK_25519_ChaChaPoly_BLAKE2s",
|
|
6
|
+
"init_prologue": "4a6f686e2047616c74",
|
|
7
|
+
"init_static": "e61ef9919cde45dd5f82166404bd08e38bceb5dfdfded0a34c8df7ed542214d1",
|
|
8
|
+
"init_ephemeral": "893e28b9dc6ca8d611ab664754b8ceb7bac5117349a4439a6b0569da977c464a",
|
|
9
|
+
"init_remote_static": "31e0303fd6418d2f8c0e78b91f22e8caed0fbe48656dcf4767e4834f701b8f62",
|
|
10
|
+
"resp_prologue": "4a6f686e2047616c74",
|
|
11
|
+
"resp_static": "4a3acbfdb163dec651dfa3194dece676d437029c62a408b4c5ea9114246e4893",
|
|
12
|
+
"resp_ephemeral": "bbdb4cdbd309f1a1f2e1456967fe288cadd6f712d65dc7b7793d5e63da6b375b",
|
|
13
|
+
"resp_remote_static": "6bc3822a2aa7f4e6981d6538692b3cdf3e6df9eea6ed269eb41d93c22757b75a",
|
|
14
|
+
"handshake_hash": "1362b8627a00907ce11e558aba8ce7cbca88e83f0e84ce7db5159b1c3e25ab59",
|
|
15
|
+
"messages": [
|
|
16
|
+
{
|
|
17
|
+
"payload": "4c756477696720766f6e204d69736573",
|
|
18
|
+
"ciphertext": "ca35def5ae56cec33dc2036731ab14896bc4c75dbb07a61f879f8e3afa4c7944266a5f53784aa3becb0f7485c2759c328937867a4cbaafef07422b0725e098be"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"payload": "4d757272617920526f746862617264",
|
|
22
|
+
"ciphertext": "95ebc60d2b1fa672c1f46a8aa265ef51bfe38e7ccb39ec5be34069f144808843008aeea5d76d6abcbab87a18502c8a8352d9933ac11e2a7d228038d721e31e"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"payload": "462e20412e20486179656b",
|
|
26
|
+
"ciphertext": "5f92113edf78c3e56e6d67201f5f9e0c8f2930c3e1ffb64ede0358"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"payload": "4361726c204d656e676572",
|
|
30
|
+
"ciphertext": "30ebbd9cdcef7f40d99c8cd11e880dac28f5c9e5032c1059b3b56a"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"payload": "4a65616e2d426170746973746520536179",
|
|
34
|
+
"ciphertext": "b011620dc31f88abd1788db50912952fe45da56e9d0907ab2cbce5f609b58b1cf2"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"payload": "457567656e2042f6686d20766f6e2042617765726b",
|
|
38
|
+
"ciphertext": "a0661971e9047b28a815c7b1f62fefb471e4d34bc2a5b48149e7f80c3772b8e4aae8b44baa"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": "https://github.com/haskell-cryptography/cacophony/blob/master/vectors/cacophony.txt",
|
|
3
|
+
"vectors": [
|
|
4
|
+
{
|
|
5
|
+
"protocol_name": "Noise_NKpsk0_25519_ChaChaPoly_BLAKE2s",
|
|
6
|
+
"init_prologue": "4a6f686e2047616c74",
|
|
7
|
+
"init_psks": [
|
|
8
|
+
"54686973206973206d7920417573747269616e20706572737065637469766521"
|
|
9
|
+
],
|
|
10
|
+
"init_ephemeral": "893e28b9dc6ca8d611ab664754b8ceb7bac5117349a4439a6b0569da977c464a",
|
|
11
|
+
"init_remote_static": "31e0303fd6418d2f8c0e78b91f22e8caed0fbe48656dcf4767e4834f701b8f62",
|
|
12
|
+
"resp_prologue": "4a6f686e2047616c74",
|
|
13
|
+
"resp_psks": [
|
|
14
|
+
"54686973206973206d7920417573747269616e20706572737065637469766521"
|
|
15
|
+
],
|
|
16
|
+
"resp_static": "4a3acbfdb163dec651dfa3194dece676d437029c62a408b4c5ea9114246e4893",
|
|
17
|
+
"resp_ephemeral": "bbdb4cdbd309f1a1f2e1456967fe288cadd6f712d65dc7b7793d5e63da6b375b",
|
|
18
|
+
"handshake_hash": "6bd69bd4066f41f32e47134976f5bf01606f7a4a0e04369fe61158b06f3a144e",
|
|
19
|
+
"messages": [
|
|
20
|
+
{
|
|
21
|
+
"payload": "4c756477696720766f6e204d69736573",
|
|
22
|
+
"ciphertext": "ca35def5ae56cec33dc2036731ab14896bc4c75dbb07a61f879f8e3afa4c794427635ede06947b2d3acd77a36788aaaf17e9f5a8ac252e560fb421ba161a2cf8"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"payload": "4d757272617920526f746862617264",
|
|
26
|
+
"ciphertext": "95ebc60d2b1fa672c1f46a8aa265ef51bfe38e7ccb39ec5be34069f144808843d682eb9cf4fee6816c8c8cfd34c15774321e234e3a426d7cfd3f13e5e84d04"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"payload": "462e20412e20486179656b",
|
|
30
|
+
"ciphertext": "b6645684db57679aa08f0b3352d58f32ec7f1e1a02083d5bd54277"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"payload": "4361726c204d656e676572",
|
|
34
|
+
"ciphertext": "473a9a4109eba0939e934640d318984df8d0900aa922f0195a09ad"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"payload": "4a65616e2d426170746973746520536179",
|
|
38
|
+
"ciphertext": "c8c44a16fff728f83e61272382149feadd3eb0ee1bab6313f84c72fe1581225236"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"payload": "457567656e2042f6686d20766f6e2042617765726b",
|
|
42
|
+
"ciphertext": "21354f87158ac5e357529e87e8c84cfcdb49c8a080550c8f908d05ef7ea82ca525e3d1398e"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "SAS words: BLAKE2s(\"acpantenna-sas\" || h), first 44 bits, four 11-bit indexes into the BIP-39 English list.",
|
|
3
|
+
"vectors": [
|
|
4
|
+
{
|
|
5
|
+
"h": "0000000000000000000000000000000000000000000000000000000000000000",
|
|
6
|
+
"words": ["torch", "program", "manage", "bone"]
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"h": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
10
|
+
"words": ["hub", "provide", "level", "vanish"]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"h": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
|
|
14
|
+
"words": ["grape", "round", "polar", "effort"]
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"h": "6bd69bd4066f41f32e47134976f5bf01606f7a4a0e04369fe61158b06f3a144e",
|
|
18
|
+
"words": ["crystal", "empty", "dismiss", "abandon"]
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "One pairing with fixed keys: message 1, message 2, the browser's PING and the PONG, CONFIRMED, one ACP message each way, then CLOSE. `transcript` is every binary relay message in order.",
|
|
3
|
+
"webOrigin": "https://app.example",
|
|
4
|
+
"room": "000102030405060708090a0b0c0d0e0f",
|
|
5
|
+
"responderStaticPrivate": "4a3acbfdb163dec651dfa3194dece676d437029c62a408b4c5ea9114246e4893",
|
|
6
|
+
"responderStaticPublic": "31e0303fd6418d2f8c0e78b91f22e8caed0fbe48656dcf4767e4834f701b8f62",
|
|
7
|
+
"psk": "4242424242424242424242424242424242424242424242424242424242424242",
|
|
8
|
+
"initiatorEphemeralPrivate": "893e28b9dc6ca8d611ab664754b8ceb7bac5117349a4439a6b0569da977c464a",
|
|
9
|
+
"responderEphemeralPrivate": "bbdb4cdbd309f1a1f2e1456967fe288cadd6f712d65dc7b7793d5e63da6b375b",
|
|
10
|
+
"link": "https://app.example/#v1.AAECAwQFBgcICQoLDA0ODw.MeAwP9ZBjS-MDni5HyLoyu0Pvkhlbc9HZ-SDT3Abj2I.QkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkI.1800000000",
|
|
11
|
+
"handshakeHash": "ed61afd6a3107d85d27a5c6a0ce9e3b331f6d6db53a4f7b9e9dc0847ecb6bdc2",
|
|
12
|
+
"sas": ["chaos", "theory", "together", "film"],
|
|
13
|
+
"messages": [
|
|
14
|
+
{
|
|
15
|
+
"from": "browser",
|
|
16
|
+
"acp": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":1}}"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"from": "agent",
|
|
20
|
+
"acp": "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"protocolVersion\":1}}"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"closeReason": "done",
|
|
24
|
+
"transcript": [
|
|
25
|
+
{
|
|
26
|
+
"from": "browser",
|
|
27
|
+
"hex": "ca35def5ae56cec33dc2036731ab14896bc4c75dbb07a61f879f8e3afa4c79442da91f2efbe8995a4c7d2a3fdc41a8ef"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"from": "agent",
|
|
31
|
+
"hex": "95ebc60d2b1fa672c1f46a8aa265ef51bfe38e7ccb39ec5be34069f14480884358c2800b665046b8b86b4c1621dc7b77"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"from": "browser",
|
|
35
|
+
"hex": "84c7a11ad531492a05a7da58c835f09f7c8b9c6f078d37a9f948123c88939b31b230ad0cd5b4629757e1890a108380327abdb721498d4cbf68239185c4560ed92a8d617c9eb37f2e546deb34ed7468d3ca9bcd6bafdb227952b49afbd6cd19f0a69feafeb07ced3a8ee43f83dd96060eb4c9c82c10a9a359a578fee9249f7d87860261964b2f8181d279daf1faa8a034ba5d5b78189c518c3be1e5b3df51bbfacd53154d323ed89dd6e8039c2fd5f4285df18453b6c2bbcca771c422bdc018f8d57c3014ece21d875a4e6db7253da3f2b21d16ef4b79dc4ad04f8a0074b39425ee611ab4b3f56b1d9d6897218de0ea7a43e2d05fbb831eaa22e5fbe13659d4ab4d0c60eef188aa5ed007a6564ad8ec1a"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"from": "agent",
|
|
39
|
+
"hex": "953a4703348bed85f4cbf5e478aaea869616dd95b9bec78bc43fa6bf63d176952fc63213a3e9f722a3ccc840bfe26175b05c51a49a5b741ea9199505dbc21817c4980a7fc42c9e09eaa25d19777a2623120419a4550370635dc4490badbd39b138b31c2a678bb7a709ff7fd3f1bf33ad2390b03a8246f21bc572026fec1101f095be28a66466e08a2a0e81be8c8ebe3fab91363b26e8a6f78ccb45650d07f7285840341b2aa44447d59189d23f2f2ef52d62ba1572d017490f0a958d69c913f341a974f61404ec35e4e77ca4a2e0875d243129aea3f732585da7ddc3f0c707bb1f4ab3826de25517ce06f318606e4f8eed0f87b7d3ac34c9252822f2b85419333cbae30f792772f0d13ab07787eae90c"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"from": "agent",
|
|
43
|
+
"hex": "26e3b57cb61ef4310a8b944420012f75c5015c49e077bbed2151b549ee1727e64b0f8f030c011f6a0bff74ff0d34ce28bb9fbc329ad6a96b563042666bba44572c34b02ca965189085ab915be2c2c9eba6a8239ec12bcb8d6f2c3617532102c28ebe43b71343d82598a9f195816184d4f2ad7a879a98737e0b4b23397f059954add68e87ac1b06dacf5c3992a9cc7b16a17fb8a9eafa4f10f58e783b5b17f2577098ed50fc782d2a006c6e524ea0f1faf7ae6e98d4fb22a96005c7fd6b5c9b13d04f1ecc0e817711f02b6432985d4654a36206277a54e472a23d1c2085ef873041c1701face95d6504eef745fe90e6c01d2d90710cd8a88a146c5d840291c7e9632c92d9a6877094f527f2cf3ac38b2e"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"from": "browser",
|
|
47
|
+
"hex": "bfba7b2fcd1df812fdcd6bdce745de8f054eb8028bfab5f86d250dfc5fd710222819982346f3bdc8b0fd7588a8004cb16f6ace4fa414a6d0d59781e268951a05c1aeaee654f61aefba447afc62e98fd6f02069b85253f8b5a0b86d88a18bfa81224250d1cff60ed126d1ea7fce7bd203ac5115c3474b69a0e7d3e7fab83c72bc8bdd08c06e805e220d5b5f4c868daffe53169d8b5939f03f2c39515ea5650f908179109603b31fe8bf81a824eb3f9cf3052c3ad7eb652dadf7940e9c8f5f0e450d52d5dc803fd0f342c36f204b56a2161d0c2636ca4b8eeac7212a2238208ad76e7da82478f442224a949c2cd656a17c4a0d9cb7d39b148abb7e11f124e99f8b5f3c45d91ae70cdb7364b73aa0c36a85"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"from": "agent",
|
|
51
|
+
"hex": "5dc3f11c66cc2f4e1eac51afd7481bfde92a7520b04aeb30350e1a25b6ebbc37bb0020afe4b6ec8958a8d47a3639f008d95d4d3d703c227ebb173170fa3191f4f1158c29759614b887735b7c4460b1fb479d246253978230f35e86ccc0418fa77fa1f30c057902c6543f09e7cd5ba15f5531194bf1eac0812e3e34bafc74c112f269ab5e9598d44a327c81029423b1e33d23fd2c2c1edf9aa022377520a538e78808552ba4332dd494a9903e838f20ad851cf2071b49d71f9fff07ad4b102468c68bc0fb8c7fc4bd51784d127c5cac0c5f0b0c52e2306f7ad251e8a3aa5dd6fe1726fd5b3073646e5356a52a8b31fbe0cde1664120230f9a2acfd2eae68e3c2bed30290436968ad9aaef31dd501721dc"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"from": "browser",
|
|
55
|
+
"hex": "d6e564e2614ead63034c51b80970ea3fd48b3a4d2697d19a5331657e5752e78b7360a57643b7d1ee6ad4253bac897aa39837ee8bb046469274a166256c61695fcc3e01239ae91136b99340bf4c47f17cc2bcf1fac186cd88709514e71cb30e3441d67324d9eca3c712dbc607be01a7f230a81dfe0d9081b8476df02dd92f28ba81e78adb858e5bdb88cb6b81354e3c6f76a6771a2364a5f77198e1567ab366b6fee19c8da0d186c937461d2656bdbeb8ba6172d181f405223d692aae098f967afdc8f804dfab61136a86c22b15164da59b48818136955204a359a965d40c10d2ff545aceed644dc39b4713f3634c1745520c49526979929cc1e15c7a3b808b171d6f2273d1b12846a47fa216be597e01"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|