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