You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

824 lines
34 KiB

  1. # Imported from Wycheproof's x25519_test.json.
  2. # This file is generated by convert_wycheproof.go. Do not edit by hand.
  3. #
  4. # Algorithm: X25519
  5. # Generator version: 0.4.12
  6. [curve = curve25519]
  7. # tcId = 1
  8. # normal case
  9. curve = curve25519
  10. private = 4852834d9d6b77dadeabaaf2e11dca66d19fe74993a7bec36c6e16a0983feaba
  11. public = 9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a
  12. result = valid
  13. shared = 87b7f212b627f7a54ca5e0bcdaddd5389d9de6156cdbcf8ebe14ffbcfb436551
  14. # tcId = 2
  15. # normal case
  16. curve = curve25519
  17. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  18. public = 9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a
  19. result = valid
  20. shared = 4b82bd8650ea9b81a42181840926a4ffa16434d1bf298de1db87efb5b0a9e34e
  21. # Curve25519 or its twist contains some points of low order. This test vector
  22. # contains a public key with such a point. While many libraries reject such
  23. # public keys, doing so is not a strict requirement according to RFC 7748.
  24. # tcId = 3
  25. # public key on twist
  26. curve = curve25519
  27. private = 588c061a50804ac488ad774ac716c3f5ba714b2712e048491379a500211998a8
  28. public = 63aa40c6e38346c5caf23a6df0a5e6c80889a08647e551b3563449befcfc9733
  29. result = acceptable
  30. shared = b1a707519495ffffb298ff941716b06dfab87cf8d91123fe2be9a233dda22212
  31. # Public keys are either points on curve25519 or points on its twist.
  32. # Implementations may either reject such keys or compute X25519 using the twist.
  33. # If a point multiplication is performed then it is important that the result is
  34. # correct, since otherwise attacks with invalid keys are possible.
  35. # tcId = 4
  36. # public key on twist
  37. curve = curve25519
  38. private = b05bfd32e55325d9fd648cb302848039000b390e44d521e58aab3b29a6960ba8
  39. public = 0f83c36fded9d32fadf4efa3ae93a90bb5cfa66893bc412c43fa7287dbb99779
  40. result = acceptable
  41. shared = 67dd4a6e165533534c0e3f172e4ab8576bca923a5f07b2c069b4c310ff2e935b
  42. # Public keys are either points on curve25519 or points on its twist.
  43. # Implementations may either reject such keys or compute X25519 using the twist.
  44. # If a point multiplication is performed then it is important that the result is
  45. # correct, since otherwise attacks with invalid keys are possible.
  46. # tcId = 5
  47. # public key on twist
  48. curve = curve25519
  49. private = 70e34bcbe1f47fbc0fddfd7c1e1aa53d57bfe0f66d243067b424bb6210bed19c
  50. public = 0b8211a2b6049097f6871c6c052d3c5fc1ba17da9e32ae458403b05bb283092a
  51. result = acceptable
  52. shared = 4a0638cfaa9ef1933b47f8939296a6b25be541ef7f70e844c0bcc00b134de64a
  53. # Public keys are either points on curve25519 or points on its twist.
  54. # Implementations may either reject such keys or compute X25519 using the twist.
  55. # If a point multiplication is performed then it is important that the result is
  56. # correct, since otherwise attacks with invalid keys are possible.
  57. # tcId = 6
  58. # public key on twist
  59. curve = curve25519
  60. private = 68c1f3a653a4cdb1d37bba94738f8b957a57beb24d646e994dc29a276aad458d
  61. public = 343ac20a3b9c6a27b1008176509ad30735856ec1c8d8fcae13912d08d152f46c
  62. result = acceptable
  63. shared = 399491fce8dfab73b4f9f611de8ea0b27b28f85994250b0f475d585d042ac207
  64. # Public keys are either points on curve25519 or points on its twist.
  65. # Implementations may either reject such keys or compute X25519 using the twist.
  66. # If a point multiplication is performed then it is important that the result is
  67. # correct, since otherwise attacks with invalid keys are possible.
  68. # tcId = 7
  69. # public key on twist
  70. curve = curve25519
  71. private = d877b26d06dff9d9f7fd4c5b3769f8cdd5b30516a5ab806be324ff3eb69ea0b2
  72. public = fa695fc7be8d1be5bf704898f388c452bafdd3b8eae805f8681a8d15c2d4e142
  73. result = acceptable
  74. shared = 2c4fe11d490a53861776b13b4354abd4cf5a97699db6e6c68c1626d07662f758
  75. # Public keys are either points on curve25519 or points on its twist.
  76. # Implementations may either reject such keys or compute X25519 using the twist.
  77. # If a point multiplication is performed then it is important that the result is
  78. # correct, since otherwise attacks with invalid keys are possible.
  79. # tcId = 8
  80. # public key = 0
  81. curve = curve25519
  82. private = 207494038f2bb811d47805bcdf04a2ac585ada7f2f23389bfd4658f9ddd4debc
  83. public = 0000000000000000000000000000000000000000000000000000000000000000
  84. result = acceptable
  85. shared = 0000000000000000000000000000000000000000000000000000000000000000
  86. # The public key is insecure and does not belong to a valid private key. Some
  87. # libraries reject such keys.
  88. # tcId = 9
  89. # public key = 1
  90. curve = curve25519
  91. private = 202e8972b61c7e61930eb9450b5070eae1c670475685541f0476217e4818cfab
  92. public = 0100000000000000000000000000000000000000000000000000000000000000
  93. result = acceptable
  94. shared = 0000000000000000000000000000000000000000000000000000000000000000
  95. # The public key is insecure and does not belong to a valid private key. Some
  96. # libraries reject such keys.
  97. # tcId = 10
  98. # edge case on twist
  99. curve = curve25519
  100. private = 38dde9f3e7b799045f9ac3793d4a9277dadeadc41bec0290f81f744f73775f84
  101. public = 0200000000000000000000000000000000000000000000000000000000000000
  102. result = acceptable
  103. shared = 9a2cfe84ff9c4a9739625cae4a3b82a906877a441946f8d7b3d795fe8f5d1639
  104. # Public keys are either points on curve25519 or points on its twist.
  105. # Implementations may either reject such keys or compute X25519 using the twist.
  106. # If a point multiplication is performed then it is important that the result is
  107. # correct, since otherwise attacks with invalid keys are possible.
  108. # tcId = 11
  109. # edge case on twist
  110. curve = curve25519
  111. private = 9857a914e3c29036fd9a442ba526b5cdcdf28216153e636c10677acab6bd6aa5
  112. public = 0300000000000000000000000000000000000000000000000000000000000000
  113. result = acceptable
  114. shared = 4da4e0aa072c232ee2f0fa4e519ae50b52c1edd08a534d4ef346c2e106d21d60
  115. # Public keys are either points on curve25519 or points on its twist.
  116. # Implementations may either reject such keys or compute X25519 using the twist.
  117. # If a point multiplication is performed then it is important that the result is
  118. # correct, since otherwise attacks with invalid keys are possible.
  119. # tcId = 12
  120. # edge case on twist
  121. curve = curve25519
  122. private = 48e2130d723305ed05e6e5894d398a5e33367a8c6aac8fcdf0a88e4b42820db7
  123. public = ffffff030000f8ffff1f0000c0ffffff000000feffff070000f0ffff3f000000
  124. result = acceptable
  125. shared = 9ed10c53747f647f82f45125d3de15a1e6b824496ab40410ffcc3cfe95760f3b
  126. # Public keys are either points on curve25519 or points on its twist.
  127. # Implementations may either reject such keys or compute X25519 using the twist.
  128. # If a point multiplication is performed then it is important that the result is
  129. # correct, since otherwise attacks with invalid keys are possible.
  130. # tcId = 13
  131. # edge case on twist
  132. curve = curve25519
  133. private = 28f41011691851b3a62b641553b30d0dfddcb8fffcf53700a7be2f6a872e9fb0
  134. public = 000000fcffff070000e0ffff3f000000ffffff010000f8ffff0f0000c0ffff7f
  135. result = acceptable
  136. shared = cf72b4aa6aa1c9f894f4165b86109aa468517648e1f0cc70e1ab08460176506b
  137. # Public keys are either points on curve25519 or points on its twist.
  138. # Implementations may either reject such keys or compute X25519 using the twist.
  139. # If a point multiplication is performed then it is important that the result is
  140. # correct, since otherwise attacks with invalid keys are possible.
  141. # tcId = 14
  142. # edge case on twist
  143. curve = curve25519
  144. private = 18a93b6499b9f6b3225ca02fef410e0adec23532321d2d8ef1a6d602a8c65b83
  145. public = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff7f
  146. result = acceptable
  147. shared = 5d50b62836bb69579410386cf7bb811c14bf85b1c7b17e5924c7ffea91ef9e12
  148. # Public keys are either points on curve25519 or points on its twist.
  149. # Implementations may either reject such keys or compute X25519 using the twist.
  150. # If a point multiplication is performed then it is important that the result is
  151. # correct, since otherwise attacks with invalid keys are possible.
  152. # tcId = 15
  153. # edge case on twist
  154. curve = curve25519
  155. private = c01d1305a1338a1fcac2ba7e2e032b427e0b04903165aca957d8d0553d8717b0
  156. public = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  157. result = acceptable
  158. shared = 19230eb148d5d67c3c22ab1daeff80a57eae4265ce2872657b2c8099fc698e50
  159. # Public keys are either points on curve25519 or points on its twist.
  160. # Implementations may either reject such keys or compute X25519 using the twist.
  161. # If a point multiplication is performed then it is important that the result is
  162. # correct, since otherwise attacks with invalid keys are possible.
  163. # tcId = 16
  164. # edge case for public key
  165. curve = curve25519
  166. private = 386f7f16c50731d64f82e6a170b142a4e34f31fd7768fcb8902925e7d1e21abe
  167. public = 0400000000000000000000000000000000000000000000000000000000000000
  168. result = valid
  169. shared = 0fcab5d842a078d7a71fc59b57bfb4ca0be6873b49dcdb9f44e14ae8fbdfa542
  170. # tcId = 17
  171. # edge case for public key
  172. curve = curve25519
  173. private = e023a289bd5e90fa2804ddc019a05ef3e79d434bb6ea2f522ecb643a75296e95
  174. public = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000
  175. result = valid
  176. shared = 54ce8f2275c077e3b1306a3939c5e03eef6bbb88060544758d9fef59b0bc3e4f
  177. # tcId = 18
  178. # edge case for public key
  179. curve = curve25519
  180. private = 68f010d62ee8d926053a361c3a75c6ea4ebdc8606ab285003a6f8f4076b01e83
  181. public = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03
  182. result = valid
  183. shared = f136775c5beb0af8110af10b20372332043cab752419678775a223df57c9d30d
  184. # tcId = 19
  185. # edge case for public key
  186. curve = curve25519
  187. private = 58ebcb35b0f8845caf1ec630f96576b62c4b7b6c36b29deb2cb0084651755c96
  188. public = fffffffbfffffbffffdfffffdffffffffefffffefffff7fffff7ffffbfffff3f
  189. result = valid
  190. shared = bf9affd06b844085586460962ef2146ff3d4533d9444aab006eb88cc3054407d
  191. # tcId = 20
  192. # edge case for public key
  193. curve = curve25519
  194. private = 188c4bc5b9c44b38bb658b9b2ae82d5b01015e093184b17cb7863503a783e1bb
  195. public = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f
  196. result = valid
  197. shared = d480de04f699cb3be0684a9cc2e31281ea0bc5a9dcc157d3d20158d46ca5246d
  198. # tcId = 21
  199. # edge case for public key
  200. curve = curve25519
  201. private = e06c11bb2e13ce3dc7673f67f5482242909423a9ae95ee986a988d98faee23a2
  202. public = fffffffffeffff7ffffffffffeffff7ffffffffffeffff7ffffffffffeffff7f
  203. result = valid
  204. shared = 4c4401cce6b51e4cb18f2790246c9bf914db667750a1cb89069092af07292276
  205. # tcId = 22
  206. # edge case for public key
  207. curve = curve25519
  208. private = c0658c46dde18129293877535b1162b6f9f5414a23cf4d2cbc140a4d99da2b8f
  209. public = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  210. result = valid
  211. shared = 578ba8cc2dbdc575afcf9df2b3ee6189f5337d6854c79b4ce165ea12293b3a0f
  212. # tcId = 23
  213. # public key with low order
  214. curve = curve25519
  215. private = 10255c9230a97a30a458ca284a629669293a31890cda9d147febc7d1e22d6bb1
  216. public = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800
  217. result = acceptable
  218. shared = 0000000000000000000000000000000000000000000000000000000000000000
  219. # Curve25519 or its twist contains some points of low order. This test vector
  220. # contains a public key with such a point. While many libraries reject such
  221. # public keys, doing so is not a strict requirement according to RFC 7748.
  222. # tcId = 24
  223. # public key with low order
  224. curve = curve25519
  225. private = 78f1e8edf14481b389448dac8f59c70b038e7cf92ef2c7eff57a72466e115296
  226. public = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157
  227. result = acceptable
  228. shared = 0000000000000000000000000000000000000000000000000000000000000000
  229. # Curve25519 or its twist contains some points of low order. This test vector
  230. # contains a public key with such a point. While many libraries reject such
  231. # public keys, doing so is not a strict requirement according to RFC 7748.
  232. # tcId = 25
  233. # public key with low order
  234. curve = curve25519
  235. private = a0a05a3e8f9f44204d5f8059a94ac7dfc39a49ac016dd743dbfa43c5d671fd88
  236. public = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  237. result = acceptable
  238. shared = 0000000000000000000000000000000000000000000000000000000000000000
  239. # Curve25519 or its twist contains some points of low order. This test vector
  240. # contains a public key with such a point. While many libraries reject such
  241. # public keys, doing so is not a strict requirement according to RFC 7748.
  242. # tcId = 26
  243. # public key with low order
  244. curve = curve25519
  245. private = d0dbb3ed1906663f15420af31f4eaf6509d9a9949723500605ad7c1c6e7450a9
  246. public = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  247. result = acceptable
  248. shared = 0000000000000000000000000000000000000000000000000000000000000000
  249. # Curve25519 or its twist contains some points of low order. This test vector
  250. # contains a public key with such a point. While many libraries reject such
  251. # public keys, doing so is not a strict requirement according to RFC 7748.
  252. # tcId = 27
  253. # public key with low order
  254. curve = curve25519
  255. private = c0b1d0eb22b244fe3291140072cdd9d989b5f0ecd96c100feb5bca241c1d9f8f
  256. public = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  257. result = acceptable
  258. shared = 0000000000000000000000000000000000000000000000000000000000000000
  259. # Curve25519 or its twist contains some points of low order. This test vector
  260. # contains a public key with such a point. While many libraries reject such
  261. # public keys, doing so is not a strict requirement according to RFC 7748.
  262. # tcId = 28
  263. # public key with low order
  264. curve = curve25519
  265. private = 480bf45f594942a8bc0f3353c6e8b8853d77f351f1c2ca6c2d1abf8a00b4229c
  266. public = 0000000000000000000000000000000000000000000000000000000000000080
  267. result = acceptable
  268. shared = 0000000000000000000000000000000000000000000000000000000000000000
  269. # Curve25519 or its twist contains some points of low order. This test vector
  270. # contains a public key with such a point. While many libraries reject such
  271. # public keys, doing so is not a strict requirement according to RFC 7748.
  272. # tcId = 29
  273. # public key with low order
  274. curve = curve25519
  275. private = 30f993fcf8514fc89bd8db14cd43ba0d4b2530e73c4276a05e1b145d420cedb4
  276. public = 0100000000000000000000000000000000000000000000000000000000000080
  277. result = acceptable
  278. shared = 0000000000000000000000000000000000000000000000000000000000000000
  279. # Curve25519 or its twist contains some points of low order. This test vector
  280. # contains a public key with such a point. While many libraries reject such
  281. # public keys, doing so is not a strict requirement according to RFC 7748.
  282. # tcId = 30
  283. # public key with low order
  284. curve = curve25519
  285. private = c04974b758380e2a5b5df6eb09bb2f6b3434f982722a8e676d3da251d1b3de83
  286. public = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880
  287. result = acceptable
  288. shared = 0000000000000000000000000000000000000000000000000000000000000000
  289. # Curve25519 or its twist contains some points of low order. This test vector
  290. # contains a public key with such a point. While many libraries reject such
  291. # public keys, doing so is not a strict requirement according to RFC 7748.
  292. # tcId = 31
  293. # public key with low order
  294. curve = curve25519
  295. private = 502a31373db32446842fe5add3e024022ea54f274182afc3d9f1bb3d39534eb5
  296. public = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7
  297. result = acceptable
  298. shared = 0000000000000000000000000000000000000000000000000000000000000000
  299. # Curve25519 or its twist contains some points of low order. This test vector
  300. # contains a public key with such a point. While many libraries reject such
  301. # public keys, doing so is not a strict requirement according to RFC 7748.
  302. # tcId = 32
  303. # public key with low order
  304. curve = curve25519
  305. private = 90fa6417b0e37030fd6e43eff2abaef14c6793117a039cf621318ba90f4e98be
  306. public = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  307. result = acceptable
  308. shared = 0000000000000000000000000000000000000000000000000000000000000000
  309. # Curve25519 or its twist contains some points of low order. This test vector
  310. # contains a public key with such a point. While many libraries reject such
  311. # public keys, doing so is not a strict requirement according to RFC 7748.
  312. # tcId = 33
  313. # public key with low order
  314. curve = curve25519
  315. private = 78ad3f26027f1c9fdd975a1613b947779bad2cf2b741ade01840885a30bb979c
  316. public = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  317. result = acceptable
  318. shared = 0000000000000000000000000000000000000000000000000000000000000000
  319. # Curve25519 or its twist contains some points of low order. This test vector
  320. # contains a public key with such a point. While many libraries reject such
  321. # public keys, doing so is not a strict requirement according to RFC 7748.
  322. # tcId = 34
  323. # public key with low order
  324. curve = curve25519
  325. private = 98e23de7b1e0926ed9c87e7b14baf55f497a1d7096f93977680e44dc1c7b7b8b
  326. public = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  327. result = acceptable
  328. shared = 0000000000000000000000000000000000000000000000000000000000000000
  329. # Curve25519 or its twist contains some points of low order. This test vector
  330. # contains a public key with such a point. While many libraries reject such
  331. # public keys, doing so is not a strict requirement according to RFC 7748.
  332. # tcId = 35
  333. # public key with low order
  334. curve = curve25519
  335. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  336. public = 0000000000000000000000000000000000000000000000000000000000000000
  337. result = acceptable
  338. shared = 0000000000000000000000000000000000000000000000000000000000000000
  339. # tcId = 36
  340. # public key with low order
  341. curve = curve25519
  342. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  343. public = 0100000000000000000000000000000000000000000000000000000000000000
  344. result = acceptable
  345. shared = 0000000000000000000000000000000000000000000000000000000000000000
  346. # tcId = 37
  347. # public key with low order
  348. curve = curve25519
  349. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  350. public = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  351. result = acceptable
  352. shared = 0000000000000000000000000000000000000000000000000000000000000000
  353. # tcId = 38
  354. # public key with low order
  355. curve = curve25519
  356. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  357. public = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157
  358. result = acceptable
  359. shared = 0000000000000000000000000000000000000000000000000000000000000000
  360. # tcId = 39
  361. # public key with low order
  362. curve = curve25519
  363. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  364. public = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800
  365. result = acceptable
  366. shared = 0000000000000000000000000000000000000000000000000000000000000000
  367. # tcId = 40
  368. # public key with low order
  369. curve = curve25519
  370. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  371. public = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  372. result = acceptable
  373. shared = 0000000000000000000000000000000000000000000000000000000000000000
  374. # tcId = 41
  375. # public key with low order
  376. curve = curve25519
  377. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  378. public = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  379. result = acceptable
  380. shared = 0000000000000000000000000000000000000000000000000000000000000000
  381. # tcId = 42
  382. # public key with low order
  383. curve = curve25519
  384. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  385. public = 0000000000000000000000000000000000000000000000000000000000000080
  386. result = acceptable
  387. shared = 0000000000000000000000000000000000000000000000000000000000000000
  388. # tcId = 43
  389. # public key with low order
  390. curve = curve25519
  391. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  392. public = 0100000000000000000000000000000000000000000000000000000000000080
  393. result = acceptable
  394. shared = 0000000000000000000000000000000000000000000000000000000000000000
  395. # tcId = 44
  396. # public key with low order
  397. curve = curve25519
  398. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  399. public = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  400. result = acceptable
  401. shared = 0000000000000000000000000000000000000000000000000000000000000000
  402. # tcId = 45
  403. # public key with low order
  404. curve = curve25519
  405. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  406. public = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7
  407. result = acceptable
  408. shared = 0000000000000000000000000000000000000000000000000000000000000000
  409. # tcId = 46
  410. # public key with low order
  411. curve = curve25519
  412. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  413. public = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880
  414. result = acceptable
  415. shared = 0000000000000000000000000000000000000000000000000000000000000000
  416. # tcId = 47
  417. # public key with low order
  418. curve = curve25519
  419. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  420. public = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  421. result = acceptable
  422. shared = 0000000000000000000000000000000000000000000000000000000000000000
  423. # tcId = 48
  424. # public key with low order
  425. curve = curve25519
  426. private = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae
  427. public = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  428. result = acceptable
  429. shared = 0000000000000000000000000000000000000000000000000000000000000000
  430. # tcId = 49
  431. # public key >= p
  432. curve = curve25519
  433. private = f01e48dafac9d7bcf589cbc382c878d18bda3550589ffb5d50b523bebe329dae
  434. public = efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  435. result = acceptable
  436. shared = bd36a0790eb883098c988b21786773de0b3a4df162282cf110de18dd484ce74b
  437. # tcId = 50
  438. # public key >= p
  439. curve = curve25519
  440. private = 288796bc5aff4b81a37501757bc0753a3c21964790d38699308debc17a6eaf8d
  441. public = f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  442. result = acceptable
  443. shared = b4e0dd76da7b071728b61f856771aa356e57eda78a5b1655cc3820fb5f854c5c
  444. # tcId = 51
  445. # public key >= p
  446. curve = curve25519
  447. private = 98df845f6651bf1138221f119041f72b6dbc3c4ace7143d99fd55ad867480da8
  448. public = f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  449. result = acceptable
  450. shared = 6fdf6c37611dbd5304dc0f2eb7c9517eb3c50e12fd050ac6dec27071d4bfc034
  451. # tcId = 52
  452. # public key >= p
  453. curve = curve25519
  454. private = f09498e46f02f878829e78b803d316a2ed695d0498a08abdf8276930e24edcb0
  455. public = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  456. result = acceptable
  457. shared = 4c8fc4b1c6ab88fb21f18f6d4c810240d4e94651ba44f7a2c863cec7dc56602d
  458. # tcId = 53
  459. # public key >= p
  460. curve = curve25519
  461. private = 1813c10a5c7f21f96e17f288c0cc37607c04c5f5aea2db134f9e2ffc66bd9db8
  462. public = 0200000000000000000000000000000000000000000000000000000000000080
  463. result = acceptable
  464. shared = 1cd0b28267dc541c642d6d7dca44a8b38a63736eef5c4e6501ffbbb1780c033c
  465. # tcId = 54
  466. # public key >= p
  467. curve = curve25519
  468. private = 7857fb808653645a0beb138a64f5f4d733a45ea84c3cda11a9c06f7e7139149e
  469. public = 0300000000000000000000000000000000000000000000000000000000000080
  470. result = acceptable
  471. shared = 8755be01c60a7e825cff3e0e78cb3aa4333861516aa59b1c51a8b2a543dfa822
  472. # tcId = 55
  473. # public key >= p
  474. curve = curve25519
  475. private = e03aa842e2abc56e81e87b8b9f417b2a1e5913c723eed28d752f8d47a59f498f
  476. public = 0400000000000000000000000000000000000000000000000000000000000080
  477. result = acceptable
  478. shared = 54c9a1ed95e546d27822a360931dda60a1df049da6f904253c0612bbdc087476
  479. # tcId = 56
  480. # public key >= p
  481. curve = curve25519
  482. private = f8f707b7999b18cb0d6b96124f2045972ca274bfc154ad0c87038c24c6d0d4b2
  483. public = daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  484. result = acceptable
  485. shared = cc1f40d743cdc2230e1043daba8b75e810f1fbab7f255269bd9ebb29e6bf494f
  486. # tcId = 57
  487. # public key >= p
  488. curve = curve25519
  489. private = a034f684fa631e1a348118c1ce4c98231f2d9eec9ba5365b4a05d69a785b0796
  490. public = dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  491. result = acceptable
  492. shared = 54998ee43a5b007bf499f078e736524400a8b5c7e9b9b43771748c7cdf880412
  493. # tcId = 58
  494. # public key >= p
  495. curve = curve25519
  496. private = 30b6c6a0f2ffa680768f992ba89e152d5bc9893d38c9119be4f767bfab6e0ca5
  497. public = dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  498. result = acceptable
  499. shared = ead9b38efdd723637934e55ab717a7ae09eb86a21dc36a3feeb88b759e391e09
  500. # tcId = 59
  501. # public key >= p
  502. curve = curve25519
  503. private = 901b9dcf881e01e027575035d40b43bdc1c5242e030847495b0c7286469b6591
  504. public = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  505. result = acceptable
  506. shared = 602ff40789b54b41805915fe2a6221f07a50ffc2c3fc94cf61f13d7904e88e0e
  507. # tcId = 60
  508. # public key >= p
  509. curve = curve25519
  510. private = 8046677c28fd82c9a1bdb71a1a1a34faba1225e2507fe3f54d10bd5b0d865f8e
  511. public = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  512. result = acceptable
  513. shared = e00ae8b143471247ba24f12c885536c3cb981b58e1e56b2baf35c12ae1f79c26
  514. # tcId = 61
  515. # public key >= p
  516. curve = curve25519
  517. private = 602f7e2f68a846b82cc269b1d48e939886ae54fd636c1fe074d710127d472491
  518. public = efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  519. result = acceptable
  520. shared = 98cb9b50dd3fc2b0d4f2d2bf7c5cfdd10c8fcd31fc40af1ad44f47c131376362
  521. # tcId = 62
  522. # public key >= p
  523. curve = curve25519
  524. private = 60887b3dc72443026ebedbbbb70665f42b87add1440e7768fbd7e8e2ce5f639d
  525. public = f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  526. result = acceptable
  527. shared = 38d6304c4a7e6d9f7959334fb5245bd2c754525d4c91db950206926234c1f633
  528. # tcId = 63
  529. # public key >= p
  530. curve = curve25519
  531. private = 78d31dfa854497d72d8def8a1b7fb006cec2d8c4924647c93814ae56faeda495
  532. public = f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  533. result = acceptable
  534. shared = 786cd54996f014a5a031ec14db812ed08355061fdb5de680a800ac521f318e23
  535. # tcId = 64
  536. # public key >= p
  537. curve = curve25519
  538. private = c04c5baefa8302ddded6a4bb957761b4eb97aefa4fc3b8043085f96a5659b3a5
  539. public = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  540. result = acceptable
  541. shared = 29ae8bc73e9b10a08b4f681c43c3e0ac1a171d31b38f1a48efba29ae639ea134
  542. # tcId = 65
  543. # RFC 7748
  544. curve = curve25519
  545. private = a046e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449a44
  546. public = e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c
  547. result = valid
  548. shared = c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552
  549. # tcId = 66
  550. # RFC 7748
  551. curve = curve25519
  552. private = 4866e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba4d
  553. public = e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a413
  554. result = valid
  555. shared = 95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957
  556. # tcId = 67
  557. # edge case for shared secret
  558. curve = curve25519
  559. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  560. public = 0ab4e76380d84dde4f6833c58f2a9fb8f83bb0169b172be4b6e0592887741a36
  561. result = acceptable
  562. shared = 0200000000000000000000000000000000000000000000000000000000000000
  563. # Public keys are either points on curve25519 or points on its twist.
  564. # Implementations may either reject such keys or compute X25519 using the twist.
  565. # If a point multiplication is performed then it is important that the result is
  566. # correct, since otherwise attacks with invalid keys are possible.
  567. # tcId = 68
  568. # edge case for shared secret
  569. curve = curve25519
  570. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  571. public = 89e10d5701b4337d2d032181538b1064bd4084401ceca1fd12663a1959388000
  572. result = valid
  573. shared = 0900000000000000000000000000000000000000000000000000000000000000
  574. # tcId = 69
  575. # edge case for shared secret
  576. curve = curve25519
  577. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  578. public = 2b55d3aa4a8f80c8c0b2ae5f933e85af49beac36c2fa7394bab76c8933f8f81d
  579. result = valid
  580. shared = 1000000000000000000000000000000000000000000000000000000000000000
  581. # tcId = 70
  582. # edge case for shared secret
  583. curve = curve25519
  584. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  585. public = 63e5b1fe9601fe84385d8866b0421262f78fbfa5aff9585e626679b18547d959
  586. result = acceptable
  587. shared = feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f
  588. # Public keys are either points on curve25519 or points on its twist.
  589. # Implementations may either reject such keys or compute X25519 using the twist.
  590. # If a point multiplication is performed then it is important that the result is
  591. # correct, since otherwise attacks with invalid keys are possible.
  592. # tcId = 71
  593. # edge case for shared secret
  594. curve = curve25519
  595. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  596. public = e428f3dac17809f827a522ce32355058d07369364aa78902ee10139b9f9dd653
  597. result = valid
  598. shared = fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f
  599. # tcId = 72
  600. # edge case for shared secret
  601. curve = curve25519
  602. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  603. public = b3b50e3ed3a407b95de942ef74575b5ab8a10c09ee103544d60bdfed8138ab2b
  604. result = acceptable
  605. shared = f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f
  606. # Public keys are either points on curve25519 or points on its twist.
  607. # Implementations may either reject such keys or compute X25519 using the twist.
  608. # If a point multiplication is performed then it is important that the result is
  609. # correct, since otherwise attacks with invalid keys are possible.
  610. # tcId = 73
  611. # edge case for shared secret
  612. curve = curve25519
  613. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  614. public = 213fffe93d5ea8cd242e462844029922c43c77c9e3e42f562f485d24c501a20b
  615. result = valid
  616. shared = f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f
  617. # tcId = 74
  618. # edge case for shared secret
  619. curve = curve25519
  620. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  621. public = 91b232a178b3cd530932441e6139418f72172292f1da4c1834fc5ebfefb51e3f
  622. result = valid
  623. shared = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03
  624. # tcId = 75
  625. # edge case for shared secret
  626. curve = curve25519
  627. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  628. public = 045c6e11c5d332556c7822fe94ebf89b56a3878dc27ca079103058849fabcb4f
  629. result = acceptable
  630. shared = e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  631. # Public keys are either points on curve25519 or points on its twist.
  632. # Implementations may either reject such keys or compute X25519 using the twist.
  633. # If a point multiplication is performed then it is important that the result is
  634. # correct, since otherwise attacks with invalid keys are possible.
  635. # tcId = 76
  636. # edge case for shared secret
  637. curve = curve25519
  638. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  639. public = 1ca2190b71163539063c35773bda0c9c928e9136f0620aeb093f099197b7f74e
  640. result = acceptable
  641. shared = e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  642. # Public keys are either points on curve25519 or points on its twist.
  643. # Implementations may either reject such keys or compute X25519 using the twist.
  644. # If a point multiplication is performed then it is important that the result is
  645. # correct, since otherwise attacks with invalid keys are possible.
  646. # tcId = 77
  647. # edge case for shared secret
  648. curve = curve25519
  649. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  650. public = f76e9010ac33c5043b2d3b76a842171000c4916222e9e85897a0aec7f6350b3c
  651. result = valid
  652. shared = ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  653. # tcId = 78
  654. # edge case for shared secret
  655. curve = curve25519
  656. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  657. public = bb72688d8f8aa7a39cd6060cd5c8093cdec6fe341937c3886a99346cd07faa55
  658. result = acceptable
  659. shared = dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
  660. # Public keys are either points on curve25519 or points on its twist.
  661. # Implementations may either reject such keys or compute X25519 using the twist.
  662. # If a point multiplication is performed then it is important that the result is
  663. # correct, since otherwise attacks with invalid keys are possible.
  664. # tcId = 79
  665. # edge case for shared secret
  666. curve = curve25519
  667. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  668. public = 88fddea193391c6a5933ef9b71901549447205aae9da928a6b91a352ba10f41f
  669. result = acceptable
  670. shared = 0000000000000000000000000000000000000000000000000000000000000002
  671. # Public keys are either points on curve25519 or points on its twist.
  672. # Implementations may either reject such keys or compute X25519 using the twist.
  673. # If a point multiplication is performed then it is important that the result is
  674. # correct, since otherwise attacks with invalid keys are possible.
  675. # tcId = 80
  676. # edge case for shared secret
  677. curve = curve25519
  678. private = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
  679. public = 303b392f153116cad9cc682a00ccc44c95ff0d3bbe568beb6c4e739bafdc2c68
  680. result = acceptable
  681. shared = 0000000000000000000000000000000000000000000000000000000000008000
  682. # Public keys are either points on curve25519 or points on its twist.
  683. # Implementations may either reject such keys or compute X25519 using the twist.
  684. # If a point multiplication is performed then it is important that the result is
  685. # correct, since otherwise attacks with invalid keys are possible.
  686. # tcId = 81
  687. # checking for overflow
  688. curve = curve25519
  689. private = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2
  690. public = fd300aeb40e1fa582518412b49b208a7842b1e1f056a040178ea4141534f652d
  691. result = valid
  692. shared = b734105dc257585d73b566ccb76f062795ccbec89128e52b02f3e59639f13c46
  693. # tcId = 82
  694. # checking for overflow
  695. curve = curve25519
  696. private = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2
  697. public = c8ef79b514d7682677bc7931e06ee5c27c9b392b4ae9484473f554e6678ecc2e
  698. result = valid
  699. shared = 647a46b6fc3f40d62141ee3cee706b4d7a9271593a7b143e8e2e2279883e4550
  700. # tcId = 83
  701. # checking for overflow
  702. curve = curve25519
  703. private = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2
  704. public = 64aeac2504144861532b7bbcb6c87d67dd4c1f07ebc2e06effb95aecc6170b2c
  705. result = valid
  706. shared = 4ff03d5fb43cd8657a3cf37c138cadcecce509e4eba089d0ef40b4e4fb946155
  707. # tcId = 84
  708. # checking for overflow
  709. curve = curve25519
  710. private = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2
  711. public = bf68e35e9bdb7eee1b50570221860f5dcdad8acbab031b14974cc49013c49831
  712. result = valid
  713. shared = 21cee52efdbc812e1d021a4af1e1d8bc4db3c400e4d2a2c56a3926db4d99c65b
  714. # tcId = 85
  715. # checking for overflow
  716. curve = curve25519
  717. private = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2
  718. public = 5347c491331a64b43ddc683034e677f53dc32b52a52a577c15a83bf298e99f19
  719. result = valid
  720. shared = 18cb89e4e20c0c2bd324305245266c9327690bbe79acb88f5b8fb3f74eca3e52
  721. # tcId = 86
  722. # private key == -1 (mod order)
  723. curve = curve25519
  724. private = a023cdd083ef5bb82f10d62e59e15a6800000000000000000000000000000050
  725. public = 258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75
  726. result = valid
  727. shared = 258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75
  728. # tcId = 87
  729. # private key == 1 (mod order) on twist
  730. curve = curve25519
  731. private = 58083dd261ad91eff952322ec824c682ffffffffffffffffffffffffffffff5f
  732. public = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035
  733. result = acceptable
  734. shared = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035