• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "algorithm" : "X25519",
3  "generatorVersion" : "0.4.12",
4  "notes" : {
5    "LowOrderPublic" : "Curve25519 or its twist contains some points of low order. This test vector contains a public key with such a point. While many libraries reject such public keys, doing so is not a strict requirement according to RFC 7748.",
6    "Small public key" : "The public key is insecure and does not belong to a valid private key. Some libraries reject such keys.",
7    "Twist" : "Public keys are either points on curve25519 or points on its twist. Implementations may either reject such keys or compute X25519 using the twist. If a point multiplication is performed then it is important that the result is correct, since otherwise attacks with invalid keys are possible."
8  },
9  "numberOfTests" : 87,
10  "header" : [],
11  "testGroups" : [
12    {
13      "curve" : "curve25519",
14      "tests" : [
15        {
16          "tcId" : 1,
17          "comment" : "normal case",
18          "curve" : "curve25519",
19          "public" : "9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a",
20          "private" : "4852834d9d6b77dadeabaaf2e11dca66d19fe74993a7bec36c6e16a0983feaba",
21          "shared" : "87b7f212b627f7a54ca5e0bcdaddd5389d9de6156cdbcf8ebe14ffbcfb436551",
22          "result" : "valid",
23          "flags" : []
24        },
25        {
26          "tcId" : 2,
27          "comment" : "normal case",
28          "curve" : "curve25519",
29          "public" : "9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a",
30          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
31          "shared" : "4b82bd8650ea9b81a42181840926a4ffa16434d1bf298de1db87efb5b0a9e34e",
32          "result" : "valid",
33          "flags" : [
34            "LowOrderPublic"
35          ]
36        },
37        {
38          "tcId" : 3,
39          "comment" : "public key on twist",
40          "curve" : "curve25519",
41          "public" : "63aa40c6e38346c5caf23a6df0a5e6c80889a08647e551b3563449befcfc9733",
42          "private" : "588c061a50804ac488ad774ac716c3f5ba714b2712e048491379a500211998a8",
43          "shared" : "b1a707519495ffffb298ff941716b06dfab87cf8d91123fe2be9a233dda22212",
44          "result" : "acceptable",
45          "flags" : [
46            "Twist"
47          ]
48        },
49        {
50          "tcId" : 4,
51          "comment" : "public key on twist",
52          "curve" : "curve25519",
53          "public" : "0f83c36fded9d32fadf4efa3ae93a90bb5cfa66893bc412c43fa7287dbb99779",
54          "private" : "b05bfd32e55325d9fd648cb302848039000b390e44d521e58aab3b29a6960ba8",
55          "shared" : "67dd4a6e165533534c0e3f172e4ab8576bca923a5f07b2c069b4c310ff2e935b",
56          "result" : "acceptable",
57          "flags" : [
58            "Twist"
59          ]
60        },
61        {
62          "tcId" : 5,
63          "comment" : "public key on twist",
64          "curve" : "curve25519",
65          "public" : "0b8211a2b6049097f6871c6c052d3c5fc1ba17da9e32ae458403b05bb283092a",
66          "private" : "70e34bcbe1f47fbc0fddfd7c1e1aa53d57bfe0f66d243067b424bb6210bed19c",
67          "shared" : "4a0638cfaa9ef1933b47f8939296a6b25be541ef7f70e844c0bcc00b134de64a",
68          "result" : "acceptable",
69          "flags" : [
70            "Twist"
71          ]
72        },
73        {
74          "tcId" : 6,
75          "comment" : "public key on twist",
76          "curve" : "curve25519",
77          "public" : "343ac20a3b9c6a27b1008176509ad30735856ec1c8d8fcae13912d08d152f46c",
78          "private" : "68c1f3a653a4cdb1d37bba94738f8b957a57beb24d646e994dc29a276aad458d",
79          "shared" : "399491fce8dfab73b4f9f611de8ea0b27b28f85994250b0f475d585d042ac207",
80          "result" : "acceptable",
81          "flags" : [
82            "Twist"
83          ]
84        },
85        {
86          "tcId" : 7,
87          "comment" : "public key on twist",
88          "curve" : "curve25519",
89          "public" : "fa695fc7be8d1be5bf704898f388c452bafdd3b8eae805f8681a8d15c2d4e142",
90          "private" : "d877b26d06dff9d9f7fd4c5b3769f8cdd5b30516a5ab806be324ff3eb69ea0b2",
91          "shared" : "2c4fe11d490a53861776b13b4354abd4cf5a97699db6e6c68c1626d07662f758",
92          "result" : "acceptable",
93          "flags" : [
94            "Twist"
95          ]
96        },
97        {
98          "tcId" : 8,
99          "comment" : "public key = 0",
100          "curve" : "curve25519",
101          "public" : "0000000000000000000000000000000000000000000000000000000000000000",
102          "private" : "207494038f2bb811d47805bcdf04a2ac585ada7f2f23389bfd4658f9ddd4debc",
103          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
104          "result" : "acceptable",
105          "flags" : [
106            "Small public key"
107          ]
108        },
109        {
110          "tcId" : 9,
111          "comment" : "public key = 1",
112          "curve" : "curve25519",
113          "public" : "0100000000000000000000000000000000000000000000000000000000000000",
114          "private" : "202e8972b61c7e61930eb9450b5070eae1c670475685541f0476217e4818cfab",
115          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
116          "result" : "acceptable",
117          "flags" : [
118            "Small public key"
119          ]
120        },
121        {
122          "tcId" : 10,
123          "comment" : "edge case on twist",
124          "curve" : "curve25519",
125          "public" : "0200000000000000000000000000000000000000000000000000000000000000",
126          "private" : "38dde9f3e7b799045f9ac3793d4a9277dadeadc41bec0290f81f744f73775f84",
127          "shared" : "9a2cfe84ff9c4a9739625cae4a3b82a906877a441946f8d7b3d795fe8f5d1639",
128          "result" : "acceptable",
129          "flags" : [
130            "Twist"
131          ]
132        },
133        {
134          "tcId" : 11,
135          "comment" : "edge case on twist",
136          "curve" : "curve25519",
137          "public" : "0300000000000000000000000000000000000000000000000000000000000000",
138          "private" : "9857a914e3c29036fd9a442ba526b5cdcdf28216153e636c10677acab6bd6aa5",
139          "shared" : "4da4e0aa072c232ee2f0fa4e519ae50b52c1edd08a534d4ef346c2e106d21d60",
140          "result" : "acceptable",
141          "flags" : [
142            "Twist"
143          ]
144        },
145        {
146          "tcId" : 12,
147          "comment" : "edge case on twist",
148          "curve" : "curve25519",
149          "public" : "ffffff030000f8ffff1f0000c0ffffff000000feffff070000f0ffff3f000000",
150          "private" : "48e2130d723305ed05e6e5894d398a5e33367a8c6aac8fcdf0a88e4b42820db7",
151          "shared" : "9ed10c53747f647f82f45125d3de15a1e6b824496ab40410ffcc3cfe95760f3b",
152          "result" : "acceptable",
153          "flags" : [
154            "Twist"
155          ]
156        },
157        {
158          "tcId" : 13,
159          "comment" : "edge case on twist",
160          "curve" : "curve25519",
161          "public" : "000000fcffff070000e0ffff3f000000ffffff010000f8ffff0f0000c0ffff7f",
162          "private" : "28f41011691851b3a62b641553b30d0dfddcb8fffcf53700a7be2f6a872e9fb0",
163          "shared" : "cf72b4aa6aa1c9f894f4165b86109aa468517648e1f0cc70e1ab08460176506b",
164          "result" : "acceptable",
165          "flags" : [
166            "Twist"
167          ]
168        },
169        {
170          "tcId" : 14,
171          "comment" : "edge case on twist",
172          "curve" : "curve25519",
173          "public" : "00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff7f",
174          "private" : "18a93b6499b9f6b3225ca02fef410e0adec23532321d2d8ef1a6d602a8c65b83",
175          "shared" : "5d50b62836bb69579410386cf7bb811c14bf85b1c7b17e5924c7ffea91ef9e12",
176          "result" : "acceptable",
177          "flags" : [
178            "Twist"
179          ]
180        },
181        {
182          "tcId" : 15,
183          "comment" : "edge case on twist",
184          "curve" : "curve25519",
185          "public" : "eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
186          "private" : "c01d1305a1338a1fcac2ba7e2e032b427e0b04903165aca957d8d0553d8717b0",
187          "shared" : "19230eb148d5d67c3c22ab1daeff80a57eae4265ce2872657b2c8099fc698e50",
188          "result" : "acceptable",
189          "flags" : [
190            "Twist"
191          ]
192        },
193        {
194          "tcId" : 16,
195          "comment" : "edge case for public key",
196          "curve" : "curve25519",
197          "public" : "0400000000000000000000000000000000000000000000000000000000000000",
198          "private" : "386f7f16c50731d64f82e6a170b142a4e34f31fd7768fcb8902925e7d1e21abe",
199          "shared" : "0fcab5d842a078d7a71fc59b57bfb4ca0be6873b49dcdb9f44e14ae8fbdfa542",
200          "result" : "valid",
201          "flags" : []
202        },
203        {
204          "tcId" : 17,
205          "comment" : "edge case for public key",
206          "curve" : "curve25519",
207          "public" : "ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000",
208          "private" : "e023a289bd5e90fa2804ddc019a05ef3e79d434bb6ea2f522ecb643a75296e95",
209          "shared" : "54ce8f2275c077e3b1306a3939c5e03eef6bbb88060544758d9fef59b0bc3e4f",
210          "result" : "valid",
211          "flags" : []
212        },
213        {
214          "tcId" : 18,
215          "comment" : "edge case for public key",
216          "curve" : "curve25519",
217          "public" : "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03",
218          "private" : "68f010d62ee8d926053a361c3a75c6ea4ebdc8606ab285003a6f8f4076b01e83",
219          "shared" : "f136775c5beb0af8110af10b20372332043cab752419678775a223df57c9d30d",
220          "result" : "valid",
221          "flags" : []
222        },
223        {
224          "tcId" : 19,
225          "comment" : "edge case for public key",
226          "curve" : "curve25519",
227          "public" : "fffffffbfffffbffffdfffffdffffffffefffffefffff7fffff7ffffbfffff3f",
228          "private" : "58ebcb35b0f8845caf1ec630f96576b62c4b7b6c36b29deb2cb0084651755c96",
229          "shared" : "bf9affd06b844085586460962ef2146ff3d4533d9444aab006eb88cc3054407d",
230          "result" : "valid",
231          "flags" : []
232        },
233        {
234          "tcId" : 20,
235          "comment" : "edge case for public key",
236          "curve" : "curve25519",
237          "public" : "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f",
238          "private" : "188c4bc5b9c44b38bb658b9b2ae82d5b01015e093184b17cb7863503a783e1bb",
239          "shared" : "d480de04f699cb3be0684a9cc2e31281ea0bc5a9dcc157d3d20158d46ca5246d",
240          "result" : "valid",
241          "flags" : []
242        },
243        {
244          "tcId" : 21,
245          "comment" : "edge case for public key",
246          "curve" : "curve25519",
247          "public" : "fffffffffeffff7ffffffffffeffff7ffffffffffeffff7ffffffffffeffff7f",
248          "private" : "e06c11bb2e13ce3dc7673f67f5482242909423a9ae95ee986a988d98faee23a2",
249          "shared" : "4c4401cce6b51e4cb18f2790246c9bf914db667750a1cb89069092af07292276",
250          "result" : "valid",
251          "flags" : []
252        },
253        {
254          "tcId" : 22,
255          "comment" : "edge case for public key",
256          "curve" : "curve25519",
257          "public" : "ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
258          "private" : "c0658c46dde18129293877535b1162b6f9f5414a23cf4d2cbc140a4d99da2b8f",
259          "shared" : "578ba8cc2dbdc575afcf9df2b3ee6189f5337d6854c79b4ce165ea12293b3a0f",
260          "result" : "valid",
261          "flags" : []
262        },
263        {
264          "tcId" : 23,
265          "comment" : "public key with low order",
266          "curve" : "curve25519",
267          "public" : "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800",
268          "private" : "10255c9230a97a30a458ca284a629669293a31890cda9d147febc7d1e22d6bb1",
269          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
270          "result" : "acceptable",
271          "flags" : [
272            "LowOrderPublic"
273          ]
274        },
275        {
276          "tcId" : 24,
277          "comment" : "public key with low order",
278          "curve" : "curve25519",
279          "public" : "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157",
280          "private" : "78f1e8edf14481b389448dac8f59c70b038e7cf92ef2c7eff57a72466e115296",
281          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
282          "result" : "acceptable",
283          "flags" : [
284            "LowOrderPublic"
285          ]
286        },
287        {
288          "tcId" : 25,
289          "comment" : "public key with low order",
290          "curve" : "curve25519",
291          "public" : "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
292          "private" : "a0a05a3e8f9f44204d5f8059a94ac7dfc39a49ac016dd743dbfa43c5d671fd88",
293          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
294          "result" : "acceptable",
295          "flags" : [
296            "LowOrderPublic"
297          ]
298        },
299        {
300          "tcId" : 26,
301          "comment" : "public key with low order",
302          "curve" : "curve25519",
303          "public" : "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
304          "private" : "d0dbb3ed1906663f15420af31f4eaf6509d9a9949723500605ad7c1c6e7450a9",
305          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
306          "result" : "acceptable",
307          "flags" : [
308            "LowOrderPublic"
309          ]
310        },
311        {
312          "tcId" : 27,
313          "comment" : "public key with low order",
314          "curve" : "curve25519",
315          "public" : "eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
316          "private" : "c0b1d0eb22b244fe3291140072cdd9d989b5f0ecd96c100feb5bca241c1d9f8f",
317          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
318          "result" : "acceptable",
319          "flags" : [
320            "LowOrderPublic"
321          ]
322        },
323        {
324          "tcId" : 28,
325          "comment" : "public key with low order",
326          "curve" : "curve25519",
327          "public" : "0000000000000000000000000000000000000000000000000000000000000080",
328          "private" : "480bf45f594942a8bc0f3353c6e8b8853d77f351f1c2ca6c2d1abf8a00b4229c",
329          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
330          "result" : "acceptable",
331          "flags" : [
332            "LowOrderPublic"
333          ]
334        },
335        {
336          "tcId" : 29,
337          "comment" : "public key with low order",
338          "curve" : "curve25519",
339          "public" : "0100000000000000000000000000000000000000000000000000000000000080",
340          "private" : "30f993fcf8514fc89bd8db14cd43ba0d4b2530e73c4276a05e1b145d420cedb4",
341          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
342          "result" : "acceptable",
343          "flags" : [
344            "LowOrderPublic"
345          ]
346        },
347        {
348          "tcId" : 30,
349          "comment" : "public key with low order",
350          "curve" : "curve25519",
351          "public" : "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880",
352          "private" : "c04974b758380e2a5b5df6eb09bb2f6b3434f982722a8e676d3da251d1b3de83",
353          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
354          "result" : "acceptable",
355          "flags" : [
356            "LowOrderPublic"
357          ]
358        },
359        {
360          "tcId" : 31,
361          "comment" : "public key with low order",
362          "curve" : "curve25519",
363          "public" : "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7",
364          "private" : "502a31373db32446842fe5add3e024022ea54f274182afc3d9f1bb3d39534eb5",
365          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
366          "result" : "acceptable",
367          "flags" : [
368            "LowOrderPublic"
369          ]
370        },
371        {
372          "tcId" : 32,
373          "comment" : "public key with low order",
374          "curve" : "curve25519",
375          "public" : "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
376          "private" : "90fa6417b0e37030fd6e43eff2abaef14c6793117a039cf621318ba90f4e98be",
377          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
378          "result" : "acceptable",
379          "flags" : [
380            "LowOrderPublic"
381          ]
382        },
383        {
384          "tcId" : 33,
385          "comment" : "public key with low order",
386          "curve" : "curve25519",
387          "public" : "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
388          "private" : "78ad3f26027f1c9fdd975a1613b947779bad2cf2b741ade01840885a30bb979c",
389          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
390          "result" : "acceptable",
391          "flags" : [
392            "LowOrderPublic"
393          ]
394        },
395        {
396          "tcId" : 34,
397          "comment" : "public key with low order",
398          "curve" : "curve25519",
399          "public" : "eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
400          "private" : "98e23de7b1e0926ed9c87e7b14baf55f497a1d7096f93977680e44dc1c7b7b8b",
401          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
402          "result" : "acceptable",
403          "flags" : [
404            "LowOrderPublic"
405          ]
406        },
407        {
408          "tcId" : 35,
409          "comment" : "public key with low order",
410          "curve" : "curve25519",
411          "public" : "0000000000000000000000000000000000000000000000000000000000000000",
412          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
413          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
414          "result" : "acceptable",
415          "flags" : []
416        },
417        {
418          "tcId" : 36,
419          "comment" : "public key with low order",
420          "curve" : "curve25519",
421          "public" : "0100000000000000000000000000000000000000000000000000000000000000",
422          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
423          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
424          "result" : "acceptable",
425          "flags" : []
426        },
427        {
428          "tcId" : 37,
429          "comment" : "public key with low order",
430          "curve" : "curve25519",
431          "public" : "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
432          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
433          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
434          "result" : "acceptable",
435          "flags" : []
436        },
437        {
438          "tcId" : 38,
439          "comment" : "public key with low order",
440          "curve" : "curve25519",
441          "public" : "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157",
442          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
443          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
444          "result" : "acceptable",
445          "flags" : []
446        },
447        {
448          "tcId" : 39,
449          "comment" : "public key with low order",
450          "curve" : "curve25519",
451          "public" : "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800",
452          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
453          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
454          "result" : "acceptable",
455          "flags" : []
456        },
457        {
458          "tcId" : 40,
459          "comment" : "public key with low order",
460          "curve" : "curve25519",
461          "public" : "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
462          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
463          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
464          "result" : "acceptable",
465          "flags" : []
466        },
467        {
468          "tcId" : 41,
469          "comment" : "public key with low order",
470          "curve" : "curve25519",
471          "public" : "eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
472          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
473          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
474          "result" : "acceptable",
475          "flags" : []
476        },
477        {
478          "tcId" : 42,
479          "comment" : "public key with low order",
480          "curve" : "curve25519",
481          "public" : "0000000000000000000000000000000000000000000000000000000000000080",
482          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
483          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
484          "result" : "acceptable",
485          "flags" : []
486        },
487        {
488          "tcId" : 43,
489          "comment" : "public key with low order",
490          "curve" : "curve25519",
491          "public" : "0100000000000000000000000000000000000000000000000000000000000080",
492          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
493          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
494          "result" : "acceptable",
495          "flags" : []
496        },
497        {
498          "tcId" : 44,
499          "comment" : "public key with low order",
500          "curve" : "curve25519",
501          "public" : "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
502          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
503          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
504          "result" : "acceptable",
505          "flags" : []
506        },
507        {
508          "tcId" : 45,
509          "comment" : "public key with low order",
510          "curve" : "curve25519",
511          "public" : "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7",
512          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
513          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
514          "result" : "acceptable",
515          "flags" : []
516        },
517        {
518          "tcId" : 46,
519          "comment" : "public key with low order",
520          "curve" : "curve25519",
521          "public" : "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880",
522          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
523          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
524          "result" : "acceptable",
525          "flags" : []
526        },
527        {
528          "tcId" : 47,
529          "comment" : "public key with low order",
530          "curve" : "curve25519",
531          "public" : "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
532          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
533          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
534          "result" : "acceptable",
535          "flags" : []
536        },
537        {
538          "tcId" : 48,
539          "comment" : "public key with low order",
540          "curve" : "curve25519",
541          "public" : "eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
542          "private" : "1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae",
543          "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
544          "result" : "acceptable",
545          "flags" : []
546        },
547        {
548          "tcId" : 49,
549          "comment" : "public key >= p",
550          "curve" : "curve25519",
551          "public" : "efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
552          "private" : "f01e48dafac9d7bcf589cbc382c878d18bda3550589ffb5d50b523bebe329dae",
553          "shared" : "bd36a0790eb883098c988b21786773de0b3a4df162282cf110de18dd484ce74b",
554          "result" : "acceptable",
555          "flags" : []
556        },
557        {
558          "tcId" : 50,
559          "comment" : "public key >= p",
560          "curve" : "curve25519",
561          "public" : "f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
562          "private" : "288796bc5aff4b81a37501757bc0753a3c21964790d38699308debc17a6eaf8d",
563          "shared" : "b4e0dd76da7b071728b61f856771aa356e57eda78a5b1655cc3820fb5f854c5c",
564          "result" : "acceptable",
565          "flags" : []
566        },
567        {
568          "tcId" : 51,
569          "comment" : "public key >= p",
570          "curve" : "curve25519",
571          "public" : "f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
572          "private" : "98df845f6651bf1138221f119041f72b6dbc3c4ace7143d99fd55ad867480da8",
573          "shared" : "6fdf6c37611dbd5304dc0f2eb7c9517eb3c50e12fd050ac6dec27071d4bfc034",
574          "result" : "acceptable",
575          "flags" : []
576        },
577        {
578          "tcId" : 52,
579          "comment" : "public key >= p",
580          "curve" : "curve25519",
581          "public" : "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
582          "private" : "f09498e46f02f878829e78b803d316a2ed695d0498a08abdf8276930e24edcb0",
583          "shared" : "4c8fc4b1c6ab88fb21f18f6d4c810240d4e94651ba44f7a2c863cec7dc56602d",
584          "result" : "acceptable",
585          "flags" : []
586        },
587        {
588          "tcId" : 53,
589          "comment" : "public key >= p",
590          "curve" : "curve25519",
591          "public" : "0200000000000000000000000000000000000000000000000000000000000080",
592          "private" : "1813c10a5c7f21f96e17f288c0cc37607c04c5f5aea2db134f9e2ffc66bd9db8",
593          "shared" : "1cd0b28267dc541c642d6d7dca44a8b38a63736eef5c4e6501ffbbb1780c033c",
594          "result" : "acceptable",
595          "flags" : []
596        },
597        {
598          "tcId" : 54,
599          "comment" : "public key >= p",
600          "curve" : "curve25519",
601          "public" : "0300000000000000000000000000000000000000000000000000000000000080",
602          "private" : "7857fb808653645a0beb138a64f5f4d733a45ea84c3cda11a9c06f7e7139149e",
603          "shared" : "8755be01c60a7e825cff3e0e78cb3aa4333861516aa59b1c51a8b2a543dfa822",
604          "result" : "acceptable",
605          "flags" : []
606        },
607        {
608          "tcId" : 55,
609          "comment" : "public key >= p",
610          "curve" : "curve25519",
611          "public" : "0400000000000000000000000000000000000000000000000000000000000080",
612          "private" : "e03aa842e2abc56e81e87b8b9f417b2a1e5913c723eed28d752f8d47a59f498f",
613          "shared" : "54c9a1ed95e546d27822a360931dda60a1df049da6f904253c0612bbdc087476",
614          "result" : "acceptable",
615          "flags" : []
616        },
617        {
618          "tcId" : 56,
619          "comment" : "public key >= p",
620          "curve" : "curve25519",
621          "public" : "daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
622          "private" : "f8f707b7999b18cb0d6b96124f2045972ca274bfc154ad0c87038c24c6d0d4b2",
623          "shared" : "cc1f40d743cdc2230e1043daba8b75e810f1fbab7f255269bd9ebb29e6bf494f",
624          "result" : "acceptable",
625          "flags" : []
626        },
627        {
628          "tcId" : 57,
629          "comment" : "public key >= p",
630          "curve" : "curve25519",
631          "public" : "dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
632          "private" : "a034f684fa631e1a348118c1ce4c98231f2d9eec9ba5365b4a05d69a785b0796",
633          "shared" : "54998ee43a5b007bf499f078e736524400a8b5c7e9b9b43771748c7cdf880412",
634          "result" : "acceptable",
635          "flags" : []
636        },
637        {
638          "tcId" : 58,
639          "comment" : "public key >= p",
640          "curve" : "curve25519",
641          "public" : "dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
642          "private" : "30b6c6a0f2ffa680768f992ba89e152d5bc9893d38c9119be4f767bfab6e0ca5",
643          "shared" : "ead9b38efdd723637934e55ab717a7ae09eb86a21dc36a3feeb88b759e391e09",
644          "result" : "acceptable",
645          "flags" : []
646        },
647        {
648          "tcId" : 59,
649          "comment" : "public key >= p",
650          "curve" : "curve25519",
651          "public" : "eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
652          "private" : "901b9dcf881e01e027575035d40b43bdc1c5242e030847495b0c7286469b6591",
653          "shared" : "602ff40789b54b41805915fe2a6221f07a50ffc2c3fc94cf61f13d7904e88e0e",
654          "result" : "acceptable",
655          "flags" : []
656        },
657        {
658          "tcId" : 60,
659          "comment" : "public key >= p",
660          "curve" : "curve25519",
661          "public" : "ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
662          "private" : "8046677c28fd82c9a1bdb71a1a1a34faba1225e2507fe3f54d10bd5b0d865f8e",
663          "shared" : "e00ae8b143471247ba24f12c885536c3cb981b58e1e56b2baf35c12ae1f79c26",
664          "result" : "acceptable",
665          "flags" : []
666        },
667        {
668          "tcId" : 61,
669          "comment" : "public key >= p",
670          "curve" : "curve25519",
671          "public" : "efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
672          "private" : "602f7e2f68a846b82cc269b1d48e939886ae54fd636c1fe074d710127d472491",
673          "shared" : "98cb9b50dd3fc2b0d4f2d2bf7c5cfdd10c8fcd31fc40af1ad44f47c131376362",
674          "result" : "acceptable",
675          "flags" : []
676        },
677        {
678          "tcId" : 62,
679          "comment" : "public key >= p",
680          "curve" : "curve25519",
681          "public" : "f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
682          "private" : "60887b3dc72443026ebedbbbb70665f42b87add1440e7768fbd7e8e2ce5f639d",
683          "shared" : "38d6304c4a7e6d9f7959334fb5245bd2c754525d4c91db950206926234c1f633",
684          "result" : "acceptable",
685          "flags" : []
686        },
687        {
688          "tcId" : 63,
689          "comment" : "public key >= p",
690          "curve" : "curve25519",
691          "public" : "f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
692          "private" : "78d31dfa854497d72d8def8a1b7fb006cec2d8c4924647c93814ae56faeda495",
693          "shared" : "786cd54996f014a5a031ec14db812ed08355061fdb5de680a800ac521f318e23",
694          "result" : "acceptable",
695          "flags" : []
696        },
697        {
698          "tcId" : 64,
699          "comment" : "public key >= p",
700          "curve" : "curve25519",
701          "public" : "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
702          "private" : "c04c5baefa8302ddded6a4bb957761b4eb97aefa4fc3b8043085f96a5659b3a5",
703          "shared" : "29ae8bc73e9b10a08b4f681c43c3e0ac1a171d31b38f1a48efba29ae639ea134",
704          "result" : "acceptable",
705          "flags" : []
706        },
707        {
708          "tcId" : 65,
709          "comment" : "RFC 7748",
710          "curve" : "curve25519",
711          "public" : "e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c",
712          "private" : "a046e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449a44",
713          "shared" : "c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552",
714          "result" : "valid",
715          "flags" : []
716        },
717        {
718          "tcId" : 66,
719          "comment" : "RFC 7748",
720          "curve" : "curve25519",
721          "public" : "e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a413",
722          "private" : "4866e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba4d",
723          "shared" : "95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957",
724          "result" : "valid",
725          "flags" : []
726        },
727        {
728          "tcId" : 67,
729          "comment" : "edge case for shared secret",
730          "curve" : "curve25519",
731          "public" : "0ab4e76380d84dde4f6833c58f2a9fb8f83bb0169b172be4b6e0592887741a36",
732          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
733          "shared" : "0200000000000000000000000000000000000000000000000000000000000000",
734          "result" : "acceptable",
735          "flags" : [
736            "Twist"
737          ]
738        },
739        {
740          "tcId" : 68,
741          "comment" : "edge case for shared secret",
742          "curve" : "curve25519",
743          "public" : "89e10d5701b4337d2d032181538b1064bd4084401ceca1fd12663a1959388000",
744          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
745          "shared" : "0900000000000000000000000000000000000000000000000000000000000000",
746          "result" : "valid",
747          "flags" : []
748        },
749        {
750          "tcId" : 69,
751          "comment" : "edge case for shared secret",
752          "curve" : "curve25519",
753          "public" : "2b55d3aa4a8f80c8c0b2ae5f933e85af49beac36c2fa7394bab76c8933f8f81d",
754          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
755          "shared" : "1000000000000000000000000000000000000000000000000000000000000000",
756          "result" : "valid",
757          "flags" : []
758        },
759        {
760          "tcId" : 70,
761          "comment" : "edge case for shared secret",
762          "curve" : "curve25519",
763          "public" : "63e5b1fe9601fe84385d8866b0421262f78fbfa5aff9585e626679b18547d959",
764          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
765          "shared" : "feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f",
766          "result" : "acceptable",
767          "flags" : [
768            "Twist"
769          ]
770        },
771        {
772          "tcId" : 71,
773          "comment" : "edge case for shared secret",
774          "curve" : "curve25519",
775          "public" : "e428f3dac17809f827a522ce32355058d07369364aa78902ee10139b9f9dd653",
776          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
777          "shared" : "fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f",
778          "result" : "valid",
779          "flags" : []
780        },
781        {
782          "tcId" : 72,
783          "comment" : "edge case for shared secret",
784          "curve" : "curve25519",
785          "public" : "b3b50e3ed3a407b95de942ef74575b5ab8a10c09ee103544d60bdfed8138ab2b",
786          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
787          "shared" : "f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f",
788          "result" : "acceptable",
789          "flags" : [
790            "Twist"
791          ]
792        },
793        {
794          "tcId" : 73,
795          "comment" : "edge case for shared secret",
796          "curve" : "curve25519",
797          "public" : "213fffe93d5ea8cd242e462844029922c43c77c9e3e42f562f485d24c501a20b",
798          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
799          "shared" : "f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f",
800          "result" : "valid",
801          "flags" : []
802        },
803        {
804          "tcId" : 74,
805          "comment" : "edge case for shared secret",
806          "curve" : "curve25519",
807          "public" : "91b232a178b3cd530932441e6139418f72172292f1da4c1834fc5ebfefb51e3f",
808          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
809          "shared" : "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03",
810          "result" : "valid",
811          "flags" : []
812        },
813        {
814          "tcId" : 75,
815          "comment" : "edge case for shared secret",
816          "curve" : "curve25519",
817          "public" : "045c6e11c5d332556c7822fe94ebf89b56a3878dc27ca079103058849fabcb4f",
818          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
819          "shared" : "e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
820          "result" : "acceptable",
821          "flags" : [
822            "Twist"
823          ]
824        },
825        {
826          "tcId" : 76,
827          "comment" : "edge case for shared secret",
828          "curve" : "curve25519",
829          "public" : "1ca2190b71163539063c35773bda0c9c928e9136f0620aeb093f099197b7f74e",
830          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
831          "shared" : "e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
832          "result" : "acceptable",
833          "flags" : [
834            "Twist"
835          ]
836        },
837        {
838          "tcId" : 77,
839          "comment" : "edge case for shared secret",
840          "curve" : "curve25519",
841          "public" : "f76e9010ac33c5043b2d3b76a842171000c4916222e9e85897a0aec7f6350b3c",
842          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
843          "shared" : "ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
844          "result" : "valid",
845          "flags" : []
846        },
847        {
848          "tcId" : 78,
849          "comment" : "edge case for shared secret",
850          "curve" : "curve25519",
851          "public" : "bb72688d8f8aa7a39cd6060cd5c8093cdec6fe341937c3886a99346cd07faa55",
852          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
853          "shared" : "dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
854          "result" : "acceptable",
855          "flags" : [
856            "Twist"
857          ]
858        },
859        {
860          "tcId" : 79,
861          "comment" : "edge case for shared secret",
862          "curve" : "curve25519",
863          "public" : "88fddea193391c6a5933ef9b71901549447205aae9da928a6b91a352ba10f41f",
864          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
865          "shared" : "0000000000000000000000000000000000000000000000000000000000000002",
866          "result" : "acceptable",
867          "flags" : [
868            "Twist"
869          ]
870        },
871        {
872          "tcId" : 80,
873          "comment" : "edge case for shared secret",
874          "curve" : "curve25519",
875          "public" : "303b392f153116cad9cc682a00ccc44c95ff0d3bbe568beb6c4e739bafdc2c68",
876          "private" : "a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63",
877          "shared" : "0000000000000000000000000000000000000000000000000000000000008000",
878          "result" : "acceptable",
879          "flags" : [
880            "Twist"
881          ]
882        },
883        {
884          "tcId" : 81,
885          "comment" : "checking for overflow",
886          "curve" : "curve25519",
887          "public" : "fd300aeb40e1fa582518412b49b208a7842b1e1f056a040178ea4141534f652d",
888          "private" : "c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2",
889          "shared" : "b734105dc257585d73b566ccb76f062795ccbec89128e52b02f3e59639f13c46",
890          "result" : "valid",
891          "flags" : []
892        },
893        {
894          "tcId" : 82,
895          "comment" : "checking for overflow",
896          "curve" : "curve25519",
897          "public" : "c8ef79b514d7682677bc7931e06ee5c27c9b392b4ae9484473f554e6678ecc2e",
898          "private" : "c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2",
899          "shared" : "647a46b6fc3f40d62141ee3cee706b4d7a9271593a7b143e8e2e2279883e4550",
900          "result" : "valid",
901          "flags" : []
902        },
903        {
904          "tcId" : 83,
905          "comment" : "checking for overflow",
906          "curve" : "curve25519",
907          "public" : "64aeac2504144861532b7bbcb6c87d67dd4c1f07ebc2e06effb95aecc6170b2c",
908          "private" : "c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2",
909          "shared" : "4ff03d5fb43cd8657a3cf37c138cadcecce509e4eba089d0ef40b4e4fb946155",
910          "result" : "valid",
911          "flags" : []
912        },
913        {
914          "tcId" : 84,
915          "comment" : "checking for overflow",
916          "curve" : "curve25519",
917          "public" : "bf68e35e9bdb7eee1b50570221860f5dcdad8acbab031b14974cc49013c49831",
918          "private" : "c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2",
919          "shared" : "21cee52efdbc812e1d021a4af1e1d8bc4db3c400e4d2a2c56a3926db4d99c65b",
920          "result" : "valid",
921          "flags" : []
922        },
923        {
924          "tcId" : 85,
925          "comment" : "checking for overflow",
926          "curve" : "curve25519",
927          "public" : "5347c491331a64b43ddc683034e677f53dc32b52a52a577c15a83bf298e99f19",
928          "private" : "c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2",
929          "shared" : "18cb89e4e20c0c2bd324305245266c9327690bbe79acb88f5b8fb3f74eca3e52",
930          "result" : "valid",
931          "flags" : []
932        },
933        {
934          "tcId" : 86,
935          "comment" : "private key == -1 (mod order)",
936          "curve" : "curve25519",
937          "public" : "258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75",
938          "private" : "a023cdd083ef5bb82f10d62e59e15a6800000000000000000000000000000050",
939          "shared" : "258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75",
940          "result" : "valid",
941          "flags" : []
942        },
943        {
944          "tcId" : 87,
945          "comment" : "private key == 1 (mod order) on twist",
946          "curve" : "curve25519",
947          "public" : "2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035",
948          "private" : "58083dd261ad91eff952322ec824c682ffffffffffffffffffffffffffffff5f",
949          "shared" : "2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035",
950          "result" : "acceptable",
951          "flags" : []
952        }
953      ]
954    }
955  ]
956}
957