18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 OR MIT 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <crypto/curve25519.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cistruct curve25519_test_vector { 98c2ecf20Sopenharmony_ci u8 private[CURVE25519_KEY_SIZE]; 108c2ecf20Sopenharmony_ci u8 public[CURVE25519_KEY_SIZE]; 118c2ecf20Sopenharmony_ci u8 result[CURVE25519_KEY_SIZE]; 128c2ecf20Sopenharmony_ci bool valid; 138c2ecf20Sopenharmony_ci}; 148c2ecf20Sopenharmony_cistatic const struct curve25519_test_vector curve25519_test_vectors[] __initconst = { 158c2ecf20Sopenharmony_ci { 168c2ecf20Sopenharmony_ci .private = { 0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5, 0x7d, 178c2ecf20Sopenharmony_ci 0x3c, 0x16, 0xc1, 0x72, 0x51, 0xb2, 0x66, 0x45, 188c2ecf20Sopenharmony_ci 0xdf, 0x4c, 0x2f, 0x87, 0xeb, 0xc0, 0x99, 0x2a, 198c2ecf20Sopenharmony_ci 0xb1, 0x77, 0xfb, 0xa5, 0x1d, 0xb9, 0x2c, 0x2a }, 208c2ecf20Sopenharmony_ci .public = { 0xde, 0x9e, 0xdb, 0x7d, 0x7b, 0x7d, 0xc1, 0xb4, 218c2ecf20Sopenharmony_ci 0xd3, 0x5b, 0x61, 0xc2, 0xec, 0xe4, 0x35, 0x37, 228c2ecf20Sopenharmony_ci 0x3f, 0x83, 0x43, 0xc8, 0x5b, 0x78, 0x67, 0x4d, 238c2ecf20Sopenharmony_ci 0xad, 0xfc, 0x7e, 0x14, 0x6f, 0x88, 0x2b, 0x4f }, 248c2ecf20Sopenharmony_ci .result = { 0x4a, 0x5d, 0x9d, 0x5b, 0xa4, 0xce, 0x2d, 0xe1, 258c2ecf20Sopenharmony_ci 0x72, 0x8e, 0x3b, 0xf4, 0x80, 0x35, 0x0f, 0x25, 268c2ecf20Sopenharmony_ci 0xe0, 0x7e, 0x21, 0xc9, 0x47, 0xd1, 0x9e, 0x33, 278c2ecf20Sopenharmony_ci 0x76, 0xf0, 0x9b, 0x3c, 0x1e, 0x16, 0x17, 0x42 }, 288c2ecf20Sopenharmony_ci .valid = true 298c2ecf20Sopenharmony_ci }, 308c2ecf20Sopenharmony_ci { 318c2ecf20Sopenharmony_ci .private = { 0x5d, 0xab, 0x08, 0x7e, 0x62, 0x4a, 0x8a, 0x4b, 328c2ecf20Sopenharmony_ci 0x79, 0xe1, 0x7f, 0x8b, 0x83, 0x80, 0x0e, 0xe6, 338c2ecf20Sopenharmony_ci 0x6f, 0x3b, 0xb1, 0x29, 0x26, 0x18, 0xb6, 0xfd, 348c2ecf20Sopenharmony_ci 0x1c, 0x2f, 0x8b, 0x27, 0xff, 0x88, 0xe0, 0xeb }, 358c2ecf20Sopenharmony_ci .public = { 0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7, 0x54, 368c2ecf20Sopenharmony_ci 0x74, 0x8b, 0x7d, 0xdc, 0xb4, 0x3e, 0xf7, 0x5a, 378c2ecf20Sopenharmony_ci 0x0d, 0xbf, 0x3a, 0x0d, 0x26, 0x38, 0x1a, 0xf4, 388c2ecf20Sopenharmony_ci 0xeb, 0xa4, 0xa9, 0x8e, 0xaa, 0x9b, 0x4e, 0x6a }, 398c2ecf20Sopenharmony_ci .result = { 0x4a, 0x5d, 0x9d, 0x5b, 0xa4, 0xce, 0x2d, 0xe1, 408c2ecf20Sopenharmony_ci 0x72, 0x8e, 0x3b, 0xf4, 0x80, 0x35, 0x0f, 0x25, 418c2ecf20Sopenharmony_ci 0xe0, 0x7e, 0x21, 0xc9, 0x47, 0xd1, 0x9e, 0x33, 428c2ecf20Sopenharmony_ci 0x76, 0xf0, 0x9b, 0x3c, 0x1e, 0x16, 0x17, 0x42 }, 438c2ecf20Sopenharmony_ci .valid = true 448c2ecf20Sopenharmony_ci }, 458c2ecf20Sopenharmony_ci { 468c2ecf20Sopenharmony_ci .private = { 1 }, 478c2ecf20Sopenharmony_ci .public = { 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 488c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 498c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 508c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 518c2ecf20Sopenharmony_ci .result = { 0x3c, 0x77, 0x77, 0xca, 0xf9, 0x97, 0xb2, 0x64, 528c2ecf20Sopenharmony_ci 0x41, 0x60, 0x77, 0x66, 0x5b, 0x4e, 0x22, 0x9d, 538c2ecf20Sopenharmony_ci 0x0b, 0x95, 0x48, 0xdc, 0x0c, 0xd8, 0x19, 0x98, 548c2ecf20Sopenharmony_ci 0xdd, 0xcd, 0xc5, 0xc8, 0x53, 0x3c, 0x79, 0x7f }, 558c2ecf20Sopenharmony_ci .valid = true 568c2ecf20Sopenharmony_ci }, 578c2ecf20Sopenharmony_ci { 588c2ecf20Sopenharmony_ci .private = { 1 }, 598c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 608c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 618c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 628c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 638c2ecf20Sopenharmony_ci .result = { 0xb3, 0x2d, 0x13, 0x62, 0xc2, 0x48, 0xd6, 0x2f, 648c2ecf20Sopenharmony_ci 0xe6, 0x26, 0x19, 0xcf, 0xf0, 0x4d, 0xd4, 0x3d, 658c2ecf20Sopenharmony_ci 0xb7, 0x3f, 0xfc, 0x1b, 0x63, 0x08, 0xed, 0xe3, 668c2ecf20Sopenharmony_ci 0x0b, 0x78, 0xd8, 0x73, 0x80, 0xf1, 0xe8, 0x34 }, 678c2ecf20Sopenharmony_ci .valid = true 688c2ecf20Sopenharmony_ci }, 698c2ecf20Sopenharmony_ci { 708c2ecf20Sopenharmony_ci .private = { 0xa5, 0x46, 0xe3, 0x6b, 0xf0, 0x52, 0x7c, 0x9d, 718c2ecf20Sopenharmony_ci 0x3b, 0x16, 0x15, 0x4b, 0x82, 0x46, 0x5e, 0xdd, 728c2ecf20Sopenharmony_ci 0x62, 0x14, 0x4c, 0x0a, 0xc1, 0xfc, 0x5a, 0x18, 738c2ecf20Sopenharmony_ci 0x50, 0x6a, 0x22, 0x44, 0xba, 0x44, 0x9a, 0xc4 }, 748c2ecf20Sopenharmony_ci .public = { 0xe6, 0xdb, 0x68, 0x67, 0x58, 0x30, 0x30, 0xdb, 758c2ecf20Sopenharmony_ci 0x35, 0x94, 0xc1, 0xa4, 0x24, 0xb1, 0x5f, 0x7c, 768c2ecf20Sopenharmony_ci 0x72, 0x66, 0x24, 0xec, 0x26, 0xb3, 0x35, 0x3b, 778c2ecf20Sopenharmony_ci 0x10, 0xa9, 0x03, 0xa6, 0xd0, 0xab, 0x1c, 0x4c }, 788c2ecf20Sopenharmony_ci .result = { 0xc3, 0xda, 0x55, 0x37, 0x9d, 0xe9, 0xc6, 0x90, 798c2ecf20Sopenharmony_ci 0x8e, 0x94, 0xea, 0x4d, 0xf2, 0x8d, 0x08, 0x4f, 808c2ecf20Sopenharmony_ci 0x32, 0xec, 0xcf, 0x03, 0x49, 0x1c, 0x71, 0xf7, 818c2ecf20Sopenharmony_ci 0x54, 0xb4, 0x07, 0x55, 0x77, 0xa2, 0x85, 0x52 }, 828c2ecf20Sopenharmony_ci .valid = true 838c2ecf20Sopenharmony_ci }, 848c2ecf20Sopenharmony_ci { 858c2ecf20Sopenharmony_ci .private = { 1, 2, 3, 4 }, 868c2ecf20Sopenharmony_ci .public = { 0 }, 878c2ecf20Sopenharmony_ci .result = { 0 }, 888c2ecf20Sopenharmony_ci .valid = false 898c2ecf20Sopenharmony_ci }, 908c2ecf20Sopenharmony_ci { 918c2ecf20Sopenharmony_ci .private = { 2, 4, 6, 8 }, 928c2ecf20Sopenharmony_ci .public = { 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 938c2ecf20Sopenharmony_ci 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 948c2ecf20Sopenharmony_ci 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd, 958c2ecf20Sopenharmony_ci 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8 }, 968c2ecf20Sopenharmony_ci .result = { 0 }, 978c2ecf20Sopenharmony_ci .valid = false 988c2ecf20Sopenharmony_ci }, 998c2ecf20Sopenharmony_ci { 1008c2ecf20Sopenharmony_ci .private = { 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xff, 0xff, 1018c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1028c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1038c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 1048c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1058c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1068c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1078c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0xfb, 0x9f }, 1088c2ecf20Sopenharmony_ci .result = { 0x77, 0x52, 0xb6, 0x18, 0xc1, 0x2d, 0x48, 0xd2, 1098c2ecf20Sopenharmony_ci 0xc6, 0x93, 0x46, 0x83, 0x81, 0x7c, 0xc6, 0x57, 1108c2ecf20Sopenharmony_ci 0xf3, 0x31, 0x03, 0x19, 0x49, 0x48, 0x20, 0x05, 1118c2ecf20Sopenharmony_ci 0x42, 0x2b, 0x4e, 0xae, 0x8d, 0x1d, 0x43, 0x23 }, 1128c2ecf20Sopenharmony_ci .valid = true 1138c2ecf20Sopenharmony_ci }, 1148c2ecf20Sopenharmony_ci { 1158c2ecf20Sopenharmony_ci .private = { 0x8e, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1168c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1178c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1188c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 1198c2ecf20Sopenharmony_ci .public = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1208c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1218c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1228c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x06 }, 1238c2ecf20Sopenharmony_ci .result = { 0x5a, 0xdf, 0xaa, 0x25, 0x86, 0x8e, 0x32, 0x3d, 1248c2ecf20Sopenharmony_ci 0xae, 0x49, 0x62, 0xc1, 0x01, 0x5c, 0xb3, 0x12, 1258c2ecf20Sopenharmony_ci 0xe1, 0xc5, 0xc7, 0x9e, 0x95, 0x3f, 0x03, 0x99, 1268c2ecf20Sopenharmony_ci 0xb0, 0xba, 0x16, 0x22, 0xf3, 0xb6, 0xf7, 0x0c }, 1278c2ecf20Sopenharmony_ci .valid = true 1288c2ecf20Sopenharmony_ci }, 1298c2ecf20Sopenharmony_ci /* wycheproof - normal case */ 1308c2ecf20Sopenharmony_ci { 1318c2ecf20Sopenharmony_ci .private = { 0x48, 0x52, 0x83, 0x4d, 0x9d, 0x6b, 0x77, 0xda, 1328c2ecf20Sopenharmony_ci 0xde, 0xab, 0xaa, 0xf2, 0xe1, 0x1d, 0xca, 0x66, 1338c2ecf20Sopenharmony_ci 0xd1, 0x9f, 0xe7, 0x49, 0x93, 0xa7, 0xbe, 0xc3, 1348c2ecf20Sopenharmony_ci 0x6c, 0x6e, 0x16, 0xa0, 0x98, 0x3f, 0xea, 0xba }, 1358c2ecf20Sopenharmony_ci .public = { 0x9c, 0x64, 0x7d, 0x9a, 0xe5, 0x89, 0xb9, 0xf5, 1368c2ecf20Sopenharmony_ci 0x8f, 0xdc, 0x3c, 0xa4, 0x94, 0x7e, 0xfb, 0xc9, 1378c2ecf20Sopenharmony_ci 0x15, 0xc4, 0xb2, 0xe0, 0x8e, 0x74, 0x4a, 0x0e, 1388c2ecf20Sopenharmony_ci 0xdf, 0x46, 0x9d, 0xac, 0x59, 0xc8, 0xf8, 0x5a }, 1398c2ecf20Sopenharmony_ci .result = { 0x87, 0xb7, 0xf2, 0x12, 0xb6, 0x27, 0xf7, 0xa5, 1408c2ecf20Sopenharmony_ci 0x4c, 0xa5, 0xe0, 0xbc, 0xda, 0xdd, 0xd5, 0x38, 1418c2ecf20Sopenharmony_ci 0x9d, 0x9d, 0xe6, 0x15, 0x6c, 0xdb, 0xcf, 0x8e, 1428c2ecf20Sopenharmony_ci 0xbe, 0x14, 0xff, 0xbc, 0xfb, 0x43, 0x65, 0x51 }, 1438c2ecf20Sopenharmony_ci .valid = true 1448c2ecf20Sopenharmony_ci }, 1458c2ecf20Sopenharmony_ci /* wycheproof - public key on twist */ 1468c2ecf20Sopenharmony_ci { 1478c2ecf20Sopenharmony_ci .private = { 0x58, 0x8c, 0x06, 0x1a, 0x50, 0x80, 0x4a, 0xc4, 1488c2ecf20Sopenharmony_ci 0x88, 0xad, 0x77, 0x4a, 0xc7, 0x16, 0xc3, 0xf5, 1498c2ecf20Sopenharmony_ci 0xba, 0x71, 0x4b, 0x27, 0x12, 0xe0, 0x48, 0x49, 1508c2ecf20Sopenharmony_ci 0x13, 0x79, 0xa5, 0x00, 0x21, 0x19, 0x98, 0xa8 }, 1518c2ecf20Sopenharmony_ci .public = { 0x63, 0xaa, 0x40, 0xc6, 0xe3, 0x83, 0x46, 0xc5, 1528c2ecf20Sopenharmony_ci 0xca, 0xf2, 0x3a, 0x6d, 0xf0, 0xa5, 0xe6, 0xc8, 1538c2ecf20Sopenharmony_ci 0x08, 0x89, 0xa0, 0x86, 0x47, 0xe5, 0x51, 0xb3, 1548c2ecf20Sopenharmony_ci 0x56, 0x34, 0x49, 0xbe, 0xfc, 0xfc, 0x97, 0x33 }, 1558c2ecf20Sopenharmony_ci .result = { 0xb1, 0xa7, 0x07, 0x51, 0x94, 0x95, 0xff, 0xff, 1568c2ecf20Sopenharmony_ci 0xb2, 0x98, 0xff, 0x94, 0x17, 0x16, 0xb0, 0x6d, 1578c2ecf20Sopenharmony_ci 0xfa, 0xb8, 0x7c, 0xf8, 0xd9, 0x11, 0x23, 0xfe, 1588c2ecf20Sopenharmony_ci 0x2b, 0xe9, 0xa2, 0x33, 0xdd, 0xa2, 0x22, 0x12 }, 1598c2ecf20Sopenharmony_ci .valid = true 1608c2ecf20Sopenharmony_ci }, 1618c2ecf20Sopenharmony_ci /* wycheproof - public key on twist */ 1628c2ecf20Sopenharmony_ci { 1638c2ecf20Sopenharmony_ci .private = { 0xb0, 0x5b, 0xfd, 0x32, 0xe5, 0x53, 0x25, 0xd9, 1648c2ecf20Sopenharmony_ci 0xfd, 0x64, 0x8c, 0xb3, 0x02, 0x84, 0x80, 0x39, 1658c2ecf20Sopenharmony_ci 0x00, 0x0b, 0x39, 0x0e, 0x44, 0xd5, 0x21, 0xe5, 1668c2ecf20Sopenharmony_ci 0x8a, 0xab, 0x3b, 0x29, 0xa6, 0x96, 0x0b, 0xa8 }, 1678c2ecf20Sopenharmony_ci .public = { 0x0f, 0x83, 0xc3, 0x6f, 0xde, 0xd9, 0xd3, 0x2f, 1688c2ecf20Sopenharmony_ci 0xad, 0xf4, 0xef, 0xa3, 0xae, 0x93, 0xa9, 0x0b, 1698c2ecf20Sopenharmony_ci 0xb5, 0xcf, 0xa6, 0x68, 0x93, 0xbc, 0x41, 0x2c, 1708c2ecf20Sopenharmony_ci 0x43, 0xfa, 0x72, 0x87, 0xdb, 0xb9, 0x97, 0x79 }, 1718c2ecf20Sopenharmony_ci .result = { 0x67, 0xdd, 0x4a, 0x6e, 0x16, 0x55, 0x33, 0x53, 1728c2ecf20Sopenharmony_ci 0x4c, 0x0e, 0x3f, 0x17, 0x2e, 0x4a, 0xb8, 0x57, 1738c2ecf20Sopenharmony_ci 0x6b, 0xca, 0x92, 0x3a, 0x5f, 0x07, 0xb2, 0xc0, 1748c2ecf20Sopenharmony_ci 0x69, 0xb4, 0xc3, 0x10, 0xff, 0x2e, 0x93, 0x5b }, 1758c2ecf20Sopenharmony_ci .valid = true 1768c2ecf20Sopenharmony_ci }, 1778c2ecf20Sopenharmony_ci /* wycheproof - public key on twist */ 1788c2ecf20Sopenharmony_ci { 1798c2ecf20Sopenharmony_ci .private = { 0x70, 0xe3, 0x4b, 0xcb, 0xe1, 0xf4, 0x7f, 0xbc, 1808c2ecf20Sopenharmony_ci 0x0f, 0xdd, 0xfd, 0x7c, 0x1e, 0x1a, 0xa5, 0x3d, 1818c2ecf20Sopenharmony_ci 0x57, 0xbf, 0xe0, 0xf6, 0x6d, 0x24, 0x30, 0x67, 1828c2ecf20Sopenharmony_ci 0xb4, 0x24, 0xbb, 0x62, 0x10, 0xbe, 0xd1, 0x9c }, 1838c2ecf20Sopenharmony_ci .public = { 0x0b, 0x82, 0x11, 0xa2, 0xb6, 0x04, 0x90, 0x97, 1848c2ecf20Sopenharmony_ci 0xf6, 0x87, 0x1c, 0x6c, 0x05, 0x2d, 0x3c, 0x5f, 1858c2ecf20Sopenharmony_ci 0xc1, 0xba, 0x17, 0xda, 0x9e, 0x32, 0xae, 0x45, 1868c2ecf20Sopenharmony_ci 0x84, 0x03, 0xb0, 0x5b, 0xb2, 0x83, 0x09, 0x2a }, 1878c2ecf20Sopenharmony_ci .result = { 0x4a, 0x06, 0x38, 0xcf, 0xaa, 0x9e, 0xf1, 0x93, 1888c2ecf20Sopenharmony_ci 0x3b, 0x47, 0xf8, 0x93, 0x92, 0x96, 0xa6, 0xb2, 1898c2ecf20Sopenharmony_ci 0x5b, 0xe5, 0x41, 0xef, 0x7f, 0x70, 0xe8, 0x44, 1908c2ecf20Sopenharmony_ci 0xc0, 0xbc, 0xc0, 0x0b, 0x13, 0x4d, 0xe6, 0x4a }, 1918c2ecf20Sopenharmony_ci .valid = true 1928c2ecf20Sopenharmony_ci }, 1938c2ecf20Sopenharmony_ci /* wycheproof - public key on twist */ 1948c2ecf20Sopenharmony_ci { 1958c2ecf20Sopenharmony_ci .private = { 0x68, 0xc1, 0xf3, 0xa6, 0x53, 0xa4, 0xcd, 0xb1, 1968c2ecf20Sopenharmony_ci 0xd3, 0x7b, 0xba, 0x94, 0x73, 0x8f, 0x8b, 0x95, 1978c2ecf20Sopenharmony_ci 0x7a, 0x57, 0xbe, 0xb2, 0x4d, 0x64, 0x6e, 0x99, 1988c2ecf20Sopenharmony_ci 0x4d, 0xc2, 0x9a, 0x27, 0x6a, 0xad, 0x45, 0x8d }, 1998c2ecf20Sopenharmony_ci .public = { 0x34, 0x3a, 0xc2, 0x0a, 0x3b, 0x9c, 0x6a, 0x27, 2008c2ecf20Sopenharmony_ci 0xb1, 0x00, 0x81, 0x76, 0x50, 0x9a, 0xd3, 0x07, 2018c2ecf20Sopenharmony_ci 0x35, 0x85, 0x6e, 0xc1, 0xc8, 0xd8, 0xfc, 0xae, 2028c2ecf20Sopenharmony_ci 0x13, 0x91, 0x2d, 0x08, 0xd1, 0x52, 0xf4, 0x6c }, 2038c2ecf20Sopenharmony_ci .result = { 0x39, 0x94, 0x91, 0xfc, 0xe8, 0xdf, 0xab, 0x73, 2048c2ecf20Sopenharmony_ci 0xb4, 0xf9, 0xf6, 0x11, 0xde, 0x8e, 0xa0, 0xb2, 2058c2ecf20Sopenharmony_ci 0x7b, 0x28, 0xf8, 0x59, 0x94, 0x25, 0x0b, 0x0f, 2068c2ecf20Sopenharmony_ci 0x47, 0x5d, 0x58, 0x5d, 0x04, 0x2a, 0xc2, 0x07 }, 2078c2ecf20Sopenharmony_ci .valid = true 2088c2ecf20Sopenharmony_ci }, 2098c2ecf20Sopenharmony_ci /* wycheproof - public key on twist */ 2108c2ecf20Sopenharmony_ci { 2118c2ecf20Sopenharmony_ci .private = { 0xd8, 0x77, 0xb2, 0x6d, 0x06, 0xdf, 0xf9, 0xd9, 2128c2ecf20Sopenharmony_ci 0xf7, 0xfd, 0x4c, 0x5b, 0x37, 0x69, 0xf8, 0xcd, 2138c2ecf20Sopenharmony_ci 0xd5, 0xb3, 0x05, 0x16, 0xa5, 0xab, 0x80, 0x6b, 2148c2ecf20Sopenharmony_ci 0xe3, 0x24, 0xff, 0x3e, 0xb6, 0x9e, 0xa0, 0xb2 }, 2158c2ecf20Sopenharmony_ci .public = { 0xfa, 0x69, 0x5f, 0xc7, 0xbe, 0x8d, 0x1b, 0xe5, 2168c2ecf20Sopenharmony_ci 0xbf, 0x70, 0x48, 0x98, 0xf3, 0x88, 0xc4, 0x52, 2178c2ecf20Sopenharmony_ci 0xba, 0xfd, 0xd3, 0xb8, 0xea, 0xe8, 0x05, 0xf8, 2188c2ecf20Sopenharmony_ci 0x68, 0x1a, 0x8d, 0x15, 0xc2, 0xd4, 0xe1, 0x42 }, 2198c2ecf20Sopenharmony_ci .result = { 0x2c, 0x4f, 0xe1, 0x1d, 0x49, 0x0a, 0x53, 0x86, 2208c2ecf20Sopenharmony_ci 0x17, 0x76, 0xb1, 0x3b, 0x43, 0x54, 0xab, 0xd4, 2218c2ecf20Sopenharmony_ci 0xcf, 0x5a, 0x97, 0x69, 0x9d, 0xb6, 0xe6, 0xc6, 2228c2ecf20Sopenharmony_ci 0x8c, 0x16, 0x26, 0xd0, 0x76, 0x62, 0xf7, 0x58 }, 2238c2ecf20Sopenharmony_ci .valid = true 2248c2ecf20Sopenharmony_ci }, 2258c2ecf20Sopenharmony_ci /* wycheproof - public key = 0 */ 2268c2ecf20Sopenharmony_ci { 2278c2ecf20Sopenharmony_ci .private = { 0x20, 0x74, 0x94, 0x03, 0x8f, 0x2b, 0xb8, 0x11, 2288c2ecf20Sopenharmony_ci 0xd4, 0x78, 0x05, 0xbc, 0xdf, 0x04, 0xa2, 0xac, 2298c2ecf20Sopenharmony_ci 0x58, 0x5a, 0xda, 0x7f, 0x2f, 0x23, 0x38, 0x9b, 2308c2ecf20Sopenharmony_ci 0xfd, 0x46, 0x58, 0xf9, 0xdd, 0xd4, 0xde, 0xbc }, 2318c2ecf20Sopenharmony_ci .public = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2328c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2338c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2348c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2358c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2368c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2378c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2388c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2398c2ecf20Sopenharmony_ci .valid = false 2408c2ecf20Sopenharmony_ci }, 2418c2ecf20Sopenharmony_ci /* wycheproof - public key = 1 */ 2428c2ecf20Sopenharmony_ci { 2438c2ecf20Sopenharmony_ci .private = { 0x20, 0x2e, 0x89, 0x72, 0xb6, 0x1c, 0x7e, 0x61, 2448c2ecf20Sopenharmony_ci 0x93, 0x0e, 0xb9, 0x45, 0x0b, 0x50, 0x70, 0xea, 2458c2ecf20Sopenharmony_ci 0xe1, 0xc6, 0x70, 0x47, 0x56, 0x85, 0x54, 0x1f, 2468c2ecf20Sopenharmony_ci 0x04, 0x76, 0x21, 0x7e, 0x48, 0x18, 0xcf, 0xab }, 2478c2ecf20Sopenharmony_ci .public = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2488c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2498c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2508c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2518c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2528c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2538c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2548c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2558c2ecf20Sopenharmony_ci .valid = false 2568c2ecf20Sopenharmony_ci }, 2578c2ecf20Sopenharmony_ci /* wycheproof - edge case on twist */ 2588c2ecf20Sopenharmony_ci { 2598c2ecf20Sopenharmony_ci .private = { 0x38, 0xdd, 0xe9, 0xf3, 0xe7, 0xb7, 0x99, 0x04, 2608c2ecf20Sopenharmony_ci 0x5f, 0x9a, 0xc3, 0x79, 0x3d, 0x4a, 0x92, 0x77, 2618c2ecf20Sopenharmony_ci 0xda, 0xde, 0xad, 0xc4, 0x1b, 0xec, 0x02, 0x90, 2628c2ecf20Sopenharmony_ci 0xf8, 0x1f, 0x74, 0x4f, 0x73, 0x77, 0x5f, 0x84 }, 2638c2ecf20Sopenharmony_ci .public = { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2648c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2658c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2668c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2678c2ecf20Sopenharmony_ci .result = { 0x9a, 0x2c, 0xfe, 0x84, 0xff, 0x9c, 0x4a, 0x97, 2688c2ecf20Sopenharmony_ci 0x39, 0x62, 0x5c, 0xae, 0x4a, 0x3b, 0x82, 0xa9, 2698c2ecf20Sopenharmony_ci 0x06, 0x87, 0x7a, 0x44, 0x19, 0x46, 0xf8, 0xd7, 2708c2ecf20Sopenharmony_ci 0xb3, 0xd7, 0x95, 0xfe, 0x8f, 0x5d, 0x16, 0x39 }, 2718c2ecf20Sopenharmony_ci .valid = true 2728c2ecf20Sopenharmony_ci }, 2738c2ecf20Sopenharmony_ci /* wycheproof - edge case on twist */ 2748c2ecf20Sopenharmony_ci { 2758c2ecf20Sopenharmony_ci .private = { 0x98, 0x57, 0xa9, 0x14, 0xe3, 0xc2, 0x90, 0x36, 2768c2ecf20Sopenharmony_ci 0xfd, 0x9a, 0x44, 0x2b, 0xa5, 0x26, 0xb5, 0xcd, 2778c2ecf20Sopenharmony_ci 0xcd, 0xf2, 0x82, 0x16, 0x15, 0x3e, 0x63, 0x6c, 2788c2ecf20Sopenharmony_ci 0x10, 0x67, 0x7a, 0xca, 0xb6, 0xbd, 0x6a, 0xa5 }, 2798c2ecf20Sopenharmony_ci .public = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2808c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2818c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2828c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2838c2ecf20Sopenharmony_ci .result = { 0x4d, 0xa4, 0xe0, 0xaa, 0x07, 0x2c, 0x23, 0x2e, 2848c2ecf20Sopenharmony_ci 0xe2, 0xf0, 0xfa, 0x4e, 0x51, 0x9a, 0xe5, 0x0b, 2858c2ecf20Sopenharmony_ci 0x52, 0xc1, 0xed, 0xd0, 0x8a, 0x53, 0x4d, 0x4e, 2868c2ecf20Sopenharmony_ci 0xf3, 0x46, 0xc2, 0xe1, 0x06, 0xd2, 0x1d, 0x60 }, 2878c2ecf20Sopenharmony_ci .valid = true 2888c2ecf20Sopenharmony_ci }, 2898c2ecf20Sopenharmony_ci /* wycheproof - edge case on twist */ 2908c2ecf20Sopenharmony_ci { 2918c2ecf20Sopenharmony_ci .private = { 0x48, 0xe2, 0x13, 0x0d, 0x72, 0x33, 0x05, 0xed, 2928c2ecf20Sopenharmony_ci 0x05, 0xe6, 0xe5, 0x89, 0x4d, 0x39, 0x8a, 0x5e, 2938c2ecf20Sopenharmony_ci 0x33, 0x36, 0x7a, 0x8c, 0x6a, 0xac, 0x8f, 0xcd, 2948c2ecf20Sopenharmony_ci 0xf0, 0xa8, 0x8e, 0x4b, 0x42, 0x82, 0x0d, 0xb7 }, 2958c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf8, 0xff, 2968c2ecf20Sopenharmony_ci 0xff, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 2978c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00, 2988c2ecf20Sopenharmony_ci 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00 }, 2998c2ecf20Sopenharmony_ci .result = { 0x9e, 0xd1, 0x0c, 0x53, 0x74, 0x7f, 0x64, 0x7f, 3008c2ecf20Sopenharmony_ci 0x82, 0xf4, 0x51, 0x25, 0xd3, 0xde, 0x15, 0xa1, 3018c2ecf20Sopenharmony_ci 0xe6, 0xb8, 0x24, 0x49, 0x6a, 0xb4, 0x04, 0x10, 3028c2ecf20Sopenharmony_ci 0xff, 0xcc, 0x3c, 0xfe, 0x95, 0x76, 0x0f, 0x3b }, 3038c2ecf20Sopenharmony_ci .valid = true 3048c2ecf20Sopenharmony_ci }, 3058c2ecf20Sopenharmony_ci /* wycheproof - edge case on twist */ 3068c2ecf20Sopenharmony_ci { 3078c2ecf20Sopenharmony_ci .private = { 0x28, 0xf4, 0x10, 0x11, 0x69, 0x18, 0x51, 0xb3, 3088c2ecf20Sopenharmony_ci 0xa6, 0x2b, 0x64, 0x15, 0x53, 0xb3, 0x0d, 0x0d, 3098c2ecf20Sopenharmony_ci 0xfd, 0xdc, 0xb8, 0xff, 0xfc, 0xf5, 0x37, 0x00, 3108c2ecf20Sopenharmony_ci 0xa7, 0xbe, 0x2f, 0x6a, 0x87, 0x2e, 0x9f, 0xb0 }, 3118c2ecf20Sopenharmony_ci .public = { 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, 3128c2ecf20Sopenharmony_ci 0x00, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 3138c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, 0xff, 3148c2ecf20Sopenharmony_ci 0xff, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f }, 3158c2ecf20Sopenharmony_ci .result = { 0xcf, 0x72, 0xb4, 0xaa, 0x6a, 0xa1, 0xc9, 0xf8, 3168c2ecf20Sopenharmony_ci 0x94, 0xf4, 0x16, 0x5b, 0x86, 0x10, 0x9a, 0xa4, 3178c2ecf20Sopenharmony_ci 0x68, 0x51, 0x76, 0x48, 0xe1, 0xf0, 0xcc, 0x70, 3188c2ecf20Sopenharmony_ci 0xe1, 0xab, 0x08, 0x46, 0x01, 0x76, 0x50, 0x6b }, 3198c2ecf20Sopenharmony_ci .valid = true 3208c2ecf20Sopenharmony_ci }, 3218c2ecf20Sopenharmony_ci /* wycheproof - edge case on twist */ 3228c2ecf20Sopenharmony_ci { 3238c2ecf20Sopenharmony_ci .private = { 0x18, 0xa9, 0x3b, 0x64, 0x99, 0xb9, 0xf6, 0xb3, 3248c2ecf20Sopenharmony_ci 0x22, 0x5c, 0xa0, 0x2f, 0xef, 0x41, 0x0e, 0x0a, 3258c2ecf20Sopenharmony_ci 0xde, 0xc2, 0x35, 0x32, 0x32, 0x1d, 0x2d, 0x8e, 3268c2ecf20Sopenharmony_ci 0xf1, 0xa6, 0xd6, 0x02, 0xa8, 0xc6, 0x5b, 0x83 }, 3278c2ecf20Sopenharmony_ci .public = { 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 3288c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 3298c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 3308c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f }, 3318c2ecf20Sopenharmony_ci .result = { 0x5d, 0x50, 0xb6, 0x28, 0x36, 0xbb, 0x69, 0x57, 3328c2ecf20Sopenharmony_ci 0x94, 0x10, 0x38, 0x6c, 0xf7, 0xbb, 0x81, 0x1c, 3338c2ecf20Sopenharmony_ci 0x14, 0xbf, 0x85, 0xb1, 0xc7, 0xb1, 0x7e, 0x59, 3348c2ecf20Sopenharmony_ci 0x24, 0xc7, 0xff, 0xea, 0x91, 0xef, 0x9e, 0x12 }, 3358c2ecf20Sopenharmony_ci .valid = true 3368c2ecf20Sopenharmony_ci }, 3378c2ecf20Sopenharmony_ci /* wycheproof - edge case on twist */ 3388c2ecf20Sopenharmony_ci { 3398c2ecf20Sopenharmony_ci .private = { 0xc0, 0x1d, 0x13, 0x05, 0xa1, 0x33, 0x8a, 0x1f, 3408c2ecf20Sopenharmony_ci 0xca, 0xc2, 0xba, 0x7e, 0x2e, 0x03, 0x2b, 0x42, 3418c2ecf20Sopenharmony_ci 0x7e, 0x0b, 0x04, 0x90, 0x31, 0x65, 0xac, 0xa9, 3428c2ecf20Sopenharmony_ci 0x57, 0xd8, 0xd0, 0x55, 0x3d, 0x87, 0x17, 0xb0 }, 3438c2ecf20Sopenharmony_ci .public = { 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 3448c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 3458c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 3468c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 3478c2ecf20Sopenharmony_ci .result = { 0x19, 0x23, 0x0e, 0xb1, 0x48, 0xd5, 0xd6, 0x7c, 3488c2ecf20Sopenharmony_ci 0x3c, 0x22, 0xab, 0x1d, 0xae, 0xff, 0x80, 0xa5, 3498c2ecf20Sopenharmony_ci 0x7e, 0xae, 0x42, 0x65, 0xce, 0x28, 0x72, 0x65, 3508c2ecf20Sopenharmony_ci 0x7b, 0x2c, 0x80, 0x99, 0xfc, 0x69, 0x8e, 0x50 }, 3518c2ecf20Sopenharmony_ci .valid = true 3528c2ecf20Sopenharmony_ci }, 3538c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 3548c2ecf20Sopenharmony_ci { 3558c2ecf20Sopenharmony_ci .private = { 0x38, 0x6f, 0x7f, 0x16, 0xc5, 0x07, 0x31, 0xd6, 3568c2ecf20Sopenharmony_ci 0x4f, 0x82, 0xe6, 0xa1, 0x70, 0xb1, 0x42, 0xa4, 3578c2ecf20Sopenharmony_ci 0xe3, 0x4f, 0x31, 0xfd, 0x77, 0x68, 0xfc, 0xb8, 3588c2ecf20Sopenharmony_ci 0x90, 0x29, 0x25, 0xe7, 0xd1, 0xe2, 0x1a, 0xbe }, 3598c2ecf20Sopenharmony_ci .public = { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3608c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3618c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3628c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3638c2ecf20Sopenharmony_ci .result = { 0x0f, 0xca, 0xb5, 0xd8, 0x42, 0xa0, 0x78, 0xd7, 3648c2ecf20Sopenharmony_ci 0xa7, 0x1f, 0xc5, 0x9b, 0x57, 0xbf, 0xb4, 0xca, 3658c2ecf20Sopenharmony_ci 0x0b, 0xe6, 0x87, 0x3b, 0x49, 0xdc, 0xdb, 0x9f, 3668c2ecf20Sopenharmony_ci 0x44, 0xe1, 0x4a, 0xe8, 0xfb, 0xdf, 0xa5, 0x42 }, 3678c2ecf20Sopenharmony_ci .valid = true 3688c2ecf20Sopenharmony_ci }, 3698c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 3708c2ecf20Sopenharmony_ci { 3718c2ecf20Sopenharmony_ci .private = { 0xe0, 0x23, 0xa2, 0x89, 0xbd, 0x5e, 0x90, 0xfa, 3728c2ecf20Sopenharmony_ci 0x28, 0x04, 0xdd, 0xc0, 0x19, 0xa0, 0x5e, 0xf3, 3738c2ecf20Sopenharmony_ci 0xe7, 0x9d, 0x43, 0x4b, 0xb6, 0xea, 0x2f, 0x52, 3748c2ecf20Sopenharmony_ci 0x2e, 0xcb, 0x64, 0x3a, 0x75, 0x29, 0x6e, 0x95 }, 3758c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 3768c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 3778c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 3788c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }, 3798c2ecf20Sopenharmony_ci .result = { 0x54, 0xce, 0x8f, 0x22, 0x75, 0xc0, 0x77, 0xe3, 3808c2ecf20Sopenharmony_ci 0xb1, 0x30, 0x6a, 0x39, 0x39, 0xc5, 0xe0, 0x3e, 3818c2ecf20Sopenharmony_ci 0xef, 0x6b, 0xbb, 0x88, 0x06, 0x05, 0x44, 0x75, 3828c2ecf20Sopenharmony_ci 0x8d, 0x9f, 0xef, 0x59, 0xb0, 0xbc, 0x3e, 0x4f }, 3838c2ecf20Sopenharmony_ci .valid = true 3848c2ecf20Sopenharmony_ci }, 3858c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 3868c2ecf20Sopenharmony_ci { 3878c2ecf20Sopenharmony_ci .private = { 0x68, 0xf0, 0x10, 0xd6, 0x2e, 0xe8, 0xd9, 0x26, 3888c2ecf20Sopenharmony_ci 0x05, 0x3a, 0x36, 0x1c, 0x3a, 0x75, 0xc6, 0xea, 3898c2ecf20Sopenharmony_ci 0x4e, 0xbd, 0xc8, 0x60, 0x6a, 0xb2, 0x85, 0x00, 3908c2ecf20Sopenharmony_ci 0x3a, 0x6f, 0x8f, 0x40, 0x76, 0xb0, 0x1e, 0x83 }, 3918c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 3928c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 3938c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 3948c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03 }, 3958c2ecf20Sopenharmony_ci .result = { 0xf1, 0x36, 0x77, 0x5c, 0x5b, 0xeb, 0x0a, 0xf8, 3968c2ecf20Sopenharmony_ci 0x11, 0x0a, 0xf1, 0x0b, 0x20, 0x37, 0x23, 0x32, 3978c2ecf20Sopenharmony_ci 0x04, 0x3c, 0xab, 0x75, 0x24, 0x19, 0x67, 0x87, 3988c2ecf20Sopenharmony_ci 0x75, 0xa2, 0x23, 0xdf, 0x57, 0xc9, 0xd3, 0x0d }, 3998c2ecf20Sopenharmony_ci .valid = true 4008c2ecf20Sopenharmony_ci }, 4018c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 4028c2ecf20Sopenharmony_ci { 4038c2ecf20Sopenharmony_ci .private = { 0x58, 0xeb, 0xcb, 0x35, 0xb0, 0xf8, 0x84, 0x5c, 4048c2ecf20Sopenharmony_ci 0xaf, 0x1e, 0xc6, 0x30, 0xf9, 0x65, 0x76, 0xb6, 4058c2ecf20Sopenharmony_ci 0x2c, 0x4b, 0x7b, 0x6c, 0x36, 0xb2, 0x9d, 0xeb, 4068c2ecf20Sopenharmony_ci 0x2c, 0xb0, 0x08, 0x46, 0x51, 0x75, 0x5c, 0x96 }, 4078c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xfb, 0xff, 4088c2ecf20Sopenharmony_ci 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 4098c2ecf20Sopenharmony_ci 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xf7, 0xff, 4108c2ecf20Sopenharmony_ci 0xff, 0xf7, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x3f }, 4118c2ecf20Sopenharmony_ci .result = { 0xbf, 0x9a, 0xff, 0xd0, 0x6b, 0x84, 0x40, 0x85, 4128c2ecf20Sopenharmony_ci 0x58, 0x64, 0x60, 0x96, 0x2e, 0xf2, 0x14, 0x6f, 4138c2ecf20Sopenharmony_ci 0xf3, 0xd4, 0x53, 0x3d, 0x94, 0x44, 0xaa, 0xb0, 4148c2ecf20Sopenharmony_ci 0x06, 0xeb, 0x88, 0xcc, 0x30, 0x54, 0x40, 0x7d }, 4158c2ecf20Sopenharmony_ci .valid = true 4168c2ecf20Sopenharmony_ci }, 4178c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 4188c2ecf20Sopenharmony_ci { 4198c2ecf20Sopenharmony_ci .private = { 0x18, 0x8c, 0x4b, 0xc5, 0xb9, 0xc4, 0x4b, 0x38, 4208c2ecf20Sopenharmony_ci 0xbb, 0x65, 0x8b, 0x9b, 0x2a, 0xe8, 0x2d, 0x5b, 4218c2ecf20Sopenharmony_ci 0x01, 0x01, 0x5e, 0x09, 0x31, 0x84, 0xb1, 0x7c, 4228c2ecf20Sopenharmony_ci 0xb7, 0x86, 0x35, 0x03, 0xa7, 0x83, 0xe1, 0xbb }, 4238c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 4248c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 4258c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 4268c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f }, 4278c2ecf20Sopenharmony_ci .result = { 0xd4, 0x80, 0xde, 0x04, 0xf6, 0x99, 0xcb, 0x3b, 4288c2ecf20Sopenharmony_ci 0xe0, 0x68, 0x4a, 0x9c, 0xc2, 0xe3, 0x12, 0x81, 4298c2ecf20Sopenharmony_ci 0xea, 0x0b, 0xc5, 0xa9, 0xdc, 0xc1, 0x57, 0xd3, 4308c2ecf20Sopenharmony_ci 0xd2, 0x01, 0x58, 0xd4, 0x6c, 0xa5, 0x24, 0x6d }, 4318c2ecf20Sopenharmony_ci .valid = true 4328c2ecf20Sopenharmony_ci }, 4338c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 4348c2ecf20Sopenharmony_ci { 4358c2ecf20Sopenharmony_ci .private = { 0xe0, 0x6c, 0x11, 0xbb, 0x2e, 0x13, 0xce, 0x3d, 4368c2ecf20Sopenharmony_ci 0xc7, 0x67, 0x3f, 0x67, 0xf5, 0x48, 0x22, 0x42, 4378c2ecf20Sopenharmony_ci 0x90, 0x94, 0x23, 0xa9, 0xae, 0x95, 0xee, 0x98, 4388c2ecf20Sopenharmony_ci 0x6a, 0x98, 0x8d, 0x98, 0xfa, 0xee, 0x23, 0xa2 }, 4398c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f, 4408c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f, 4418c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f, 4428c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f }, 4438c2ecf20Sopenharmony_ci .result = { 0x4c, 0x44, 0x01, 0xcc, 0xe6, 0xb5, 0x1e, 0x4c, 4448c2ecf20Sopenharmony_ci 0xb1, 0x8f, 0x27, 0x90, 0x24, 0x6c, 0x9b, 0xf9, 4458c2ecf20Sopenharmony_ci 0x14, 0xdb, 0x66, 0x77, 0x50, 0xa1, 0xcb, 0x89, 4468c2ecf20Sopenharmony_ci 0x06, 0x90, 0x92, 0xaf, 0x07, 0x29, 0x22, 0x76 }, 4478c2ecf20Sopenharmony_ci .valid = true 4488c2ecf20Sopenharmony_ci }, 4498c2ecf20Sopenharmony_ci /* wycheproof - edge case for public key */ 4508c2ecf20Sopenharmony_ci { 4518c2ecf20Sopenharmony_ci .private = { 0xc0, 0x65, 0x8c, 0x46, 0xdd, 0xe1, 0x81, 0x29, 4528c2ecf20Sopenharmony_ci 0x29, 0x38, 0x77, 0x53, 0x5b, 0x11, 0x62, 0xb6, 4538c2ecf20Sopenharmony_ci 0xf9, 0xf5, 0x41, 0x4a, 0x23, 0xcf, 0x4d, 0x2c, 4548c2ecf20Sopenharmony_ci 0xbc, 0x14, 0x0a, 0x4d, 0x99, 0xda, 0x2b, 0x8f }, 4558c2ecf20Sopenharmony_ci .public = { 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 4568c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 4578c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 4588c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 4598c2ecf20Sopenharmony_ci .result = { 0x57, 0x8b, 0xa8, 0xcc, 0x2d, 0xbd, 0xc5, 0x75, 4608c2ecf20Sopenharmony_ci 0xaf, 0xcf, 0x9d, 0xf2, 0xb3, 0xee, 0x61, 0x89, 4618c2ecf20Sopenharmony_ci 0xf5, 0x33, 0x7d, 0x68, 0x54, 0xc7, 0x9b, 0x4c, 4628c2ecf20Sopenharmony_ci 0xe1, 0x65, 0xea, 0x12, 0x29, 0x3b, 0x3a, 0x0f }, 4638c2ecf20Sopenharmony_ci .valid = true 4648c2ecf20Sopenharmony_ci }, 4658c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 4668c2ecf20Sopenharmony_ci { 4678c2ecf20Sopenharmony_ci .private = { 0x10, 0x25, 0x5c, 0x92, 0x30, 0xa9, 0x7a, 0x30, 4688c2ecf20Sopenharmony_ci 0xa4, 0x58, 0xca, 0x28, 0x4a, 0x62, 0x96, 0x69, 4698c2ecf20Sopenharmony_ci 0x29, 0x3a, 0x31, 0x89, 0x0c, 0xda, 0x9d, 0x14, 4708c2ecf20Sopenharmony_ci 0x7f, 0xeb, 0xc7, 0xd1, 0xe2, 0x2d, 0x6b, 0xb1 }, 4718c2ecf20Sopenharmony_ci .public = { 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 4728c2ecf20Sopenharmony_ci 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 4738c2ecf20Sopenharmony_ci 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd, 4748c2ecf20Sopenharmony_ci 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00 }, 4758c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 4768c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 4778c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 4788c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 4798c2ecf20Sopenharmony_ci .valid = false 4808c2ecf20Sopenharmony_ci }, 4818c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 4828c2ecf20Sopenharmony_ci { 4838c2ecf20Sopenharmony_ci .private = { 0x78, 0xf1, 0xe8, 0xed, 0xf1, 0x44, 0x81, 0xb3, 4848c2ecf20Sopenharmony_ci 0x89, 0x44, 0x8d, 0xac, 0x8f, 0x59, 0xc7, 0x0b, 4858c2ecf20Sopenharmony_ci 0x03, 0x8e, 0x7c, 0xf9, 0x2e, 0xf2, 0xc7, 0xef, 4868c2ecf20Sopenharmony_ci 0xf5, 0x7a, 0x72, 0x46, 0x6e, 0x11, 0x52, 0x96 }, 4878c2ecf20Sopenharmony_ci .public = { 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24, 4888c2ecf20Sopenharmony_ci 0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b, 4898c2ecf20Sopenharmony_ci 0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86, 4908c2ecf20Sopenharmony_ci 0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57 }, 4918c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 4928c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 4938c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 4948c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 4958c2ecf20Sopenharmony_ci .valid = false 4968c2ecf20Sopenharmony_ci }, 4978c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 4988c2ecf20Sopenharmony_ci { 4998c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa0, 0x5a, 0x3e, 0x8f, 0x9f, 0x44, 0x20, 5008c2ecf20Sopenharmony_ci 0x4d, 0x5f, 0x80, 0x59, 0xa9, 0x4a, 0xc7, 0xdf, 5018c2ecf20Sopenharmony_ci 0xc3, 0x9a, 0x49, 0xac, 0x01, 0x6d, 0xd7, 0x43, 5028c2ecf20Sopenharmony_ci 0xdb, 0xfa, 0x43, 0xc5, 0xd6, 0x71, 0xfd, 0x88 }, 5038c2ecf20Sopenharmony_ci .public = { 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5048c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5058c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5068c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 5078c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5088c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5098c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5108c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5118c2ecf20Sopenharmony_ci .valid = false 5128c2ecf20Sopenharmony_ci }, 5138c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 5148c2ecf20Sopenharmony_ci { 5158c2ecf20Sopenharmony_ci .private = { 0xd0, 0xdb, 0xb3, 0xed, 0x19, 0x06, 0x66, 0x3f, 5168c2ecf20Sopenharmony_ci 0x15, 0x42, 0x0a, 0xf3, 0x1f, 0x4e, 0xaf, 0x65, 5178c2ecf20Sopenharmony_ci 0x09, 0xd9, 0xa9, 0x94, 0x97, 0x23, 0x50, 0x06, 5188c2ecf20Sopenharmony_ci 0x05, 0xad, 0x7c, 0x1c, 0x6e, 0x74, 0x50, 0xa9 }, 5198c2ecf20Sopenharmony_ci .public = { 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5208c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5218c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5228c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 5238c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5248c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5258c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5268c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5278c2ecf20Sopenharmony_ci .valid = false 5288c2ecf20Sopenharmony_ci }, 5298c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 5308c2ecf20Sopenharmony_ci { 5318c2ecf20Sopenharmony_ci .private = { 0xc0, 0xb1, 0xd0, 0xeb, 0x22, 0xb2, 0x44, 0xfe, 5328c2ecf20Sopenharmony_ci 0x32, 0x91, 0x14, 0x00, 0x72, 0xcd, 0xd9, 0xd9, 5338c2ecf20Sopenharmony_ci 0x89, 0xb5, 0xf0, 0xec, 0xd9, 0x6c, 0x10, 0x0f, 5348c2ecf20Sopenharmony_ci 0xeb, 0x5b, 0xca, 0x24, 0x1c, 0x1d, 0x9f, 0x8f }, 5358c2ecf20Sopenharmony_ci .public = { 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5368c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5378c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 5388c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 5398c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5408c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5418c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5428c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5438c2ecf20Sopenharmony_ci .valid = false 5448c2ecf20Sopenharmony_ci }, 5458c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 5468c2ecf20Sopenharmony_ci { 5478c2ecf20Sopenharmony_ci .private = { 0x48, 0x0b, 0xf4, 0x5f, 0x59, 0x49, 0x42, 0xa8, 5488c2ecf20Sopenharmony_ci 0xbc, 0x0f, 0x33, 0x53, 0xc6, 0xe8, 0xb8, 0x85, 5498c2ecf20Sopenharmony_ci 0x3d, 0x77, 0xf3, 0x51, 0xf1, 0xc2, 0xca, 0x6c, 5508c2ecf20Sopenharmony_ci 0x2d, 0x1a, 0xbf, 0x8a, 0x00, 0xb4, 0x22, 0x9c }, 5518c2ecf20Sopenharmony_ci .public = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5528c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5538c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5548c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, 5558c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5568c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5578c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5588c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5598c2ecf20Sopenharmony_ci .valid = false 5608c2ecf20Sopenharmony_ci }, 5618c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 5628c2ecf20Sopenharmony_ci { 5638c2ecf20Sopenharmony_ci .private = { 0x30, 0xf9, 0x93, 0xfc, 0xf8, 0x51, 0x4f, 0xc8, 5648c2ecf20Sopenharmony_ci 0x9b, 0xd8, 0xdb, 0x14, 0xcd, 0x43, 0xba, 0x0d, 5658c2ecf20Sopenharmony_ci 0x4b, 0x25, 0x30, 0xe7, 0x3c, 0x42, 0x76, 0xa0, 5668c2ecf20Sopenharmony_ci 0x5e, 0x1b, 0x14, 0x5d, 0x42, 0x0c, 0xed, 0xb4 }, 5678c2ecf20Sopenharmony_ci .public = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5688c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5698c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5708c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, 5718c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5728c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5738c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5748c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5758c2ecf20Sopenharmony_ci .valid = false 5768c2ecf20Sopenharmony_ci }, 5778c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 5788c2ecf20Sopenharmony_ci { 5798c2ecf20Sopenharmony_ci .private = { 0xc0, 0x49, 0x74, 0xb7, 0x58, 0x38, 0x0e, 0x2a, 5808c2ecf20Sopenharmony_ci 0x5b, 0x5d, 0xf6, 0xeb, 0x09, 0xbb, 0x2f, 0x6b, 5818c2ecf20Sopenharmony_ci 0x34, 0x34, 0xf9, 0x82, 0x72, 0x2a, 0x8e, 0x67, 5828c2ecf20Sopenharmony_ci 0x6d, 0x3d, 0xa2, 0x51, 0xd1, 0xb3, 0xde, 0x83 }, 5838c2ecf20Sopenharmony_ci .public = { 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 5848c2ecf20Sopenharmony_ci 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 5858c2ecf20Sopenharmony_ci 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd, 5868c2ecf20Sopenharmony_ci 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x80 }, 5878c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5888c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5898c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5908c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5918c2ecf20Sopenharmony_ci .valid = false 5928c2ecf20Sopenharmony_ci }, 5938c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 5948c2ecf20Sopenharmony_ci { 5958c2ecf20Sopenharmony_ci .private = { 0x50, 0x2a, 0x31, 0x37, 0x3d, 0xb3, 0x24, 0x46, 5968c2ecf20Sopenharmony_ci 0x84, 0x2f, 0xe5, 0xad, 0xd3, 0xe0, 0x24, 0x02, 5978c2ecf20Sopenharmony_ci 0x2e, 0xa5, 0x4f, 0x27, 0x41, 0x82, 0xaf, 0xc3, 5988c2ecf20Sopenharmony_ci 0xd9, 0xf1, 0xbb, 0x3d, 0x39, 0x53, 0x4e, 0xb5 }, 5998c2ecf20Sopenharmony_ci .public = { 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24, 6008c2ecf20Sopenharmony_ci 0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b, 6018c2ecf20Sopenharmony_ci 0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86, 6028c2ecf20Sopenharmony_ci 0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0xd7 }, 6038c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6048c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6058c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6068c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6078c2ecf20Sopenharmony_ci .valid = false 6088c2ecf20Sopenharmony_ci }, 6098c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 6108c2ecf20Sopenharmony_ci { 6118c2ecf20Sopenharmony_ci .private = { 0x90, 0xfa, 0x64, 0x17, 0xb0, 0xe3, 0x70, 0x30, 6128c2ecf20Sopenharmony_ci 0xfd, 0x6e, 0x43, 0xef, 0xf2, 0xab, 0xae, 0xf1, 6138c2ecf20Sopenharmony_ci 0x4c, 0x67, 0x93, 0x11, 0x7a, 0x03, 0x9c, 0xf6, 6148c2ecf20Sopenharmony_ci 0x21, 0x31, 0x8b, 0xa9, 0x0f, 0x4e, 0x98, 0xbe }, 6158c2ecf20Sopenharmony_ci .public = { 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6168c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6178c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6188c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 6198c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6208c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6218c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6228c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6238c2ecf20Sopenharmony_ci .valid = false 6248c2ecf20Sopenharmony_ci }, 6258c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 6268c2ecf20Sopenharmony_ci { 6278c2ecf20Sopenharmony_ci .private = { 0x78, 0xad, 0x3f, 0x26, 0x02, 0x7f, 0x1c, 0x9f, 6288c2ecf20Sopenharmony_ci 0xdd, 0x97, 0x5a, 0x16, 0x13, 0xb9, 0x47, 0x77, 6298c2ecf20Sopenharmony_ci 0x9b, 0xad, 0x2c, 0xf2, 0xb7, 0x41, 0xad, 0xe0, 6308c2ecf20Sopenharmony_ci 0x18, 0x40, 0x88, 0x5a, 0x30, 0xbb, 0x97, 0x9c }, 6318c2ecf20Sopenharmony_ci .public = { 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6328c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6338c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6348c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 6358c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6368c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6378c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6388c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6398c2ecf20Sopenharmony_ci .valid = false 6408c2ecf20Sopenharmony_ci }, 6418c2ecf20Sopenharmony_ci /* wycheproof - public key with low order */ 6428c2ecf20Sopenharmony_ci { 6438c2ecf20Sopenharmony_ci .private = { 0x98, 0xe2, 0x3d, 0xe7, 0xb1, 0xe0, 0x92, 0x6e, 6448c2ecf20Sopenharmony_ci 0xd9, 0xc8, 0x7e, 0x7b, 0x14, 0xba, 0xf5, 0x5f, 6458c2ecf20Sopenharmony_ci 0x49, 0x7a, 0x1d, 0x70, 0x96, 0xf9, 0x39, 0x77, 6468c2ecf20Sopenharmony_ci 0x68, 0x0e, 0x44, 0xdc, 0x1c, 0x7b, 0x7b, 0x8b }, 6478c2ecf20Sopenharmony_ci .public = { 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6488c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6498c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6508c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 6518c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6528c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6538c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6548c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6558c2ecf20Sopenharmony_ci .valid = false 6568c2ecf20Sopenharmony_ci }, 6578c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 6588c2ecf20Sopenharmony_ci { 6598c2ecf20Sopenharmony_ci .private = { 0xf0, 0x1e, 0x48, 0xda, 0xfa, 0xc9, 0xd7, 0xbc, 6608c2ecf20Sopenharmony_ci 0xf5, 0x89, 0xcb, 0xc3, 0x82, 0xc8, 0x78, 0xd1, 6618c2ecf20Sopenharmony_ci 0x8b, 0xda, 0x35, 0x50, 0x58, 0x9f, 0xfb, 0x5d, 6628c2ecf20Sopenharmony_ci 0x50, 0xb5, 0x23, 0xbe, 0xbe, 0x32, 0x9d, 0xae }, 6638c2ecf20Sopenharmony_ci .public = { 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6648c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6658c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6668c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 6678c2ecf20Sopenharmony_ci .result = { 0xbd, 0x36, 0xa0, 0x79, 0x0e, 0xb8, 0x83, 0x09, 6688c2ecf20Sopenharmony_ci 0x8c, 0x98, 0x8b, 0x21, 0x78, 0x67, 0x73, 0xde, 6698c2ecf20Sopenharmony_ci 0x0b, 0x3a, 0x4d, 0xf1, 0x62, 0x28, 0x2c, 0xf1, 6708c2ecf20Sopenharmony_ci 0x10, 0xde, 0x18, 0xdd, 0x48, 0x4c, 0xe7, 0x4b }, 6718c2ecf20Sopenharmony_ci .valid = true 6728c2ecf20Sopenharmony_ci }, 6738c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 6748c2ecf20Sopenharmony_ci { 6758c2ecf20Sopenharmony_ci .private = { 0x28, 0x87, 0x96, 0xbc, 0x5a, 0xff, 0x4b, 0x81, 6768c2ecf20Sopenharmony_ci 0xa3, 0x75, 0x01, 0x75, 0x7b, 0xc0, 0x75, 0x3a, 6778c2ecf20Sopenharmony_ci 0x3c, 0x21, 0x96, 0x47, 0x90, 0xd3, 0x86, 0x99, 6788c2ecf20Sopenharmony_ci 0x30, 0x8d, 0xeb, 0xc1, 0x7a, 0x6e, 0xaf, 0x8d }, 6798c2ecf20Sopenharmony_ci .public = { 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6808c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6818c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6828c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 6838c2ecf20Sopenharmony_ci .result = { 0xb4, 0xe0, 0xdd, 0x76, 0xda, 0x7b, 0x07, 0x17, 6848c2ecf20Sopenharmony_ci 0x28, 0xb6, 0x1f, 0x85, 0x67, 0x71, 0xaa, 0x35, 6858c2ecf20Sopenharmony_ci 0x6e, 0x57, 0xed, 0xa7, 0x8a, 0x5b, 0x16, 0x55, 6868c2ecf20Sopenharmony_ci 0xcc, 0x38, 0x20, 0xfb, 0x5f, 0x85, 0x4c, 0x5c }, 6878c2ecf20Sopenharmony_ci .valid = true 6888c2ecf20Sopenharmony_ci }, 6898c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 6908c2ecf20Sopenharmony_ci { 6918c2ecf20Sopenharmony_ci .private = { 0x98, 0xdf, 0x84, 0x5f, 0x66, 0x51, 0xbf, 0x11, 6928c2ecf20Sopenharmony_ci 0x38, 0x22, 0x1f, 0x11, 0x90, 0x41, 0xf7, 0x2b, 6938c2ecf20Sopenharmony_ci 0x6d, 0xbc, 0x3c, 0x4a, 0xce, 0x71, 0x43, 0xd9, 6948c2ecf20Sopenharmony_ci 0x9f, 0xd5, 0x5a, 0xd8, 0x67, 0x48, 0x0d, 0xa8 }, 6958c2ecf20Sopenharmony_ci .public = { 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6968c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6978c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 6988c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 6998c2ecf20Sopenharmony_ci .result = { 0x6f, 0xdf, 0x6c, 0x37, 0x61, 0x1d, 0xbd, 0x53, 7008c2ecf20Sopenharmony_ci 0x04, 0xdc, 0x0f, 0x2e, 0xb7, 0xc9, 0x51, 0x7e, 7018c2ecf20Sopenharmony_ci 0xb3, 0xc5, 0x0e, 0x12, 0xfd, 0x05, 0x0a, 0xc6, 7028c2ecf20Sopenharmony_ci 0xde, 0xc2, 0x70, 0x71, 0xd4, 0xbf, 0xc0, 0x34 }, 7038c2ecf20Sopenharmony_ci .valid = true 7048c2ecf20Sopenharmony_ci }, 7058c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 7068c2ecf20Sopenharmony_ci { 7078c2ecf20Sopenharmony_ci .private = { 0xf0, 0x94, 0x98, 0xe4, 0x6f, 0x02, 0xf8, 0x78, 7088c2ecf20Sopenharmony_ci 0x82, 0x9e, 0x78, 0xb8, 0x03, 0xd3, 0x16, 0xa2, 7098c2ecf20Sopenharmony_ci 0xed, 0x69, 0x5d, 0x04, 0x98, 0xa0, 0x8a, 0xbd, 7108c2ecf20Sopenharmony_ci 0xf8, 0x27, 0x69, 0x30, 0xe2, 0x4e, 0xdc, 0xb0 }, 7118c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7128c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7138c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7148c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 7158c2ecf20Sopenharmony_ci .result = { 0x4c, 0x8f, 0xc4, 0xb1, 0xc6, 0xab, 0x88, 0xfb, 7168c2ecf20Sopenharmony_ci 0x21, 0xf1, 0x8f, 0x6d, 0x4c, 0x81, 0x02, 0x40, 7178c2ecf20Sopenharmony_ci 0xd4, 0xe9, 0x46, 0x51, 0xba, 0x44, 0xf7, 0xa2, 7188c2ecf20Sopenharmony_ci 0xc8, 0x63, 0xce, 0xc7, 0xdc, 0x56, 0x60, 0x2d }, 7198c2ecf20Sopenharmony_ci .valid = true 7208c2ecf20Sopenharmony_ci }, 7218c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 7228c2ecf20Sopenharmony_ci { 7238c2ecf20Sopenharmony_ci .private = { 0x18, 0x13, 0xc1, 0x0a, 0x5c, 0x7f, 0x21, 0xf9, 7248c2ecf20Sopenharmony_ci 0x6e, 0x17, 0xf2, 0x88, 0xc0, 0xcc, 0x37, 0x60, 7258c2ecf20Sopenharmony_ci 0x7c, 0x04, 0xc5, 0xf5, 0xae, 0xa2, 0xdb, 0x13, 7268c2ecf20Sopenharmony_ci 0x4f, 0x9e, 0x2f, 0xfc, 0x66, 0xbd, 0x9d, 0xb8 }, 7278c2ecf20Sopenharmony_ci .public = { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7288c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7298c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7308c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, 7318c2ecf20Sopenharmony_ci .result = { 0x1c, 0xd0, 0xb2, 0x82, 0x67, 0xdc, 0x54, 0x1c, 7328c2ecf20Sopenharmony_ci 0x64, 0x2d, 0x6d, 0x7d, 0xca, 0x44, 0xa8, 0xb3, 7338c2ecf20Sopenharmony_ci 0x8a, 0x63, 0x73, 0x6e, 0xef, 0x5c, 0x4e, 0x65, 7348c2ecf20Sopenharmony_ci 0x01, 0xff, 0xbb, 0xb1, 0x78, 0x0c, 0x03, 0x3c }, 7358c2ecf20Sopenharmony_ci .valid = true 7368c2ecf20Sopenharmony_ci }, 7378c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 7388c2ecf20Sopenharmony_ci { 7398c2ecf20Sopenharmony_ci .private = { 0x78, 0x57, 0xfb, 0x80, 0x86, 0x53, 0x64, 0x5a, 7408c2ecf20Sopenharmony_ci 0x0b, 0xeb, 0x13, 0x8a, 0x64, 0xf5, 0xf4, 0xd7, 7418c2ecf20Sopenharmony_ci 0x33, 0xa4, 0x5e, 0xa8, 0x4c, 0x3c, 0xda, 0x11, 7428c2ecf20Sopenharmony_ci 0xa9, 0xc0, 0x6f, 0x7e, 0x71, 0x39, 0x14, 0x9e }, 7438c2ecf20Sopenharmony_ci .public = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7448c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7458c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7468c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, 7478c2ecf20Sopenharmony_ci .result = { 0x87, 0x55, 0xbe, 0x01, 0xc6, 0x0a, 0x7e, 0x82, 7488c2ecf20Sopenharmony_ci 0x5c, 0xff, 0x3e, 0x0e, 0x78, 0xcb, 0x3a, 0xa4, 7498c2ecf20Sopenharmony_ci 0x33, 0x38, 0x61, 0x51, 0x6a, 0xa5, 0x9b, 0x1c, 7508c2ecf20Sopenharmony_ci 0x51, 0xa8, 0xb2, 0xa5, 0x43, 0xdf, 0xa8, 0x22 }, 7518c2ecf20Sopenharmony_ci .valid = true 7528c2ecf20Sopenharmony_ci }, 7538c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 7548c2ecf20Sopenharmony_ci { 7558c2ecf20Sopenharmony_ci .private = { 0xe0, 0x3a, 0xa8, 0x42, 0xe2, 0xab, 0xc5, 0x6e, 7568c2ecf20Sopenharmony_ci 0x81, 0xe8, 0x7b, 0x8b, 0x9f, 0x41, 0x7b, 0x2a, 7578c2ecf20Sopenharmony_ci 0x1e, 0x59, 0x13, 0xc7, 0x23, 0xee, 0xd2, 0x8d, 7588c2ecf20Sopenharmony_ci 0x75, 0x2f, 0x8d, 0x47, 0xa5, 0x9f, 0x49, 0x8f }, 7598c2ecf20Sopenharmony_ci .public = { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7608c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7618c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7628c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, 7638c2ecf20Sopenharmony_ci .result = { 0x54, 0xc9, 0xa1, 0xed, 0x95, 0xe5, 0x46, 0xd2, 7648c2ecf20Sopenharmony_ci 0x78, 0x22, 0xa3, 0x60, 0x93, 0x1d, 0xda, 0x60, 7658c2ecf20Sopenharmony_ci 0xa1, 0xdf, 0x04, 0x9d, 0xa6, 0xf9, 0x04, 0x25, 7668c2ecf20Sopenharmony_ci 0x3c, 0x06, 0x12, 0xbb, 0xdc, 0x08, 0x74, 0x76 }, 7678c2ecf20Sopenharmony_ci .valid = true 7688c2ecf20Sopenharmony_ci }, 7698c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 7708c2ecf20Sopenharmony_ci { 7718c2ecf20Sopenharmony_ci .private = { 0xf8, 0xf7, 0x07, 0xb7, 0x99, 0x9b, 0x18, 0xcb, 7728c2ecf20Sopenharmony_ci 0x0d, 0x6b, 0x96, 0x12, 0x4f, 0x20, 0x45, 0x97, 7738c2ecf20Sopenharmony_ci 0x2c, 0xa2, 0x74, 0xbf, 0xc1, 0x54, 0xad, 0x0c, 7748c2ecf20Sopenharmony_ci 0x87, 0x03, 0x8c, 0x24, 0xc6, 0xd0, 0xd4, 0xb2 }, 7758c2ecf20Sopenharmony_ci .public = { 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7768c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7778c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7788c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 7798c2ecf20Sopenharmony_ci .result = { 0xcc, 0x1f, 0x40, 0xd7, 0x43, 0xcd, 0xc2, 0x23, 7808c2ecf20Sopenharmony_ci 0x0e, 0x10, 0x43, 0xda, 0xba, 0x8b, 0x75, 0xe8, 7818c2ecf20Sopenharmony_ci 0x10, 0xf1, 0xfb, 0xab, 0x7f, 0x25, 0x52, 0x69, 7828c2ecf20Sopenharmony_ci 0xbd, 0x9e, 0xbb, 0x29, 0xe6, 0xbf, 0x49, 0x4f }, 7838c2ecf20Sopenharmony_ci .valid = true 7848c2ecf20Sopenharmony_ci }, 7858c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 7868c2ecf20Sopenharmony_ci { 7878c2ecf20Sopenharmony_ci .private = { 0xa0, 0x34, 0xf6, 0x84, 0xfa, 0x63, 0x1e, 0x1a, 7888c2ecf20Sopenharmony_ci 0x34, 0x81, 0x18, 0xc1, 0xce, 0x4c, 0x98, 0x23, 7898c2ecf20Sopenharmony_ci 0x1f, 0x2d, 0x9e, 0xec, 0x9b, 0xa5, 0x36, 0x5b, 7908c2ecf20Sopenharmony_ci 0x4a, 0x05, 0xd6, 0x9a, 0x78, 0x5b, 0x07, 0x96 }, 7918c2ecf20Sopenharmony_ci .public = { 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7928c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7938c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7948c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 7958c2ecf20Sopenharmony_ci .result = { 0x54, 0x99, 0x8e, 0xe4, 0x3a, 0x5b, 0x00, 0x7b, 7968c2ecf20Sopenharmony_ci 0xf4, 0x99, 0xf0, 0x78, 0xe7, 0x36, 0x52, 0x44, 7978c2ecf20Sopenharmony_ci 0x00, 0xa8, 0xb5, 0xc7, 0xe9, 0xb9, 0xb4, 0x37, 7988c2ecf20Sopenharmony_ci 0x71, 0x74, 0x8c, 0x7c, 0xdf, 0x88, 0x04, 0x12 }, 7998c2ecf20Sopenharmony_ci .valid = true 8008c2ecf20Sopenharmony_ci }, 8018c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8028c2ecf20Sopenharmony_ci { 8038c2ecf20Sopenharmony_ci .private = { 0x30, 0xb6, 0xc6, 0xa0, 0xf2, 0xff, 0xa6, 0x80, 8048c2ecf20Sopenharmony_ci 0x76, 0x8f, 0x99, 0x2b, 0xa8, 0x9e, 0x15, 0x2d, 8058c2ecf20Sopenharmony_ci 0x5b, 0xc9, 0x89, 0x3d, 0x38, 0xc9, 0x11, 0x9b, 8068c2ecf20Sopenharmony_ci 0xe4, 0xf7, 0x67, 0xbf, 0xab, 0x6e, 0x0c, 0xa5 }, 8078c2ecf20Sopenharmony_ci .public = { 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8088c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8098c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8108c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 8118c2ecf20Sopenharmony_ci .result = { 0xea, 0xd9, 0xb3, 0x8e, 0xfd, 0xd7, 0x23, 0x63, 8128c2ecf20Sopenharmony_ci 0x79, 0x34, 0xe5, 0x5a, 0xb7, 0x17, 0xa7, 0xae, 8138c2ecf20Sopenharmony_ci 0x09, 0xeb, 0x86, 0xa2, 0x1d, 0xc3, 0x6a, 0x3f, 8148c2ecf20Sopenharmony_ci 0xee, 0xb8, 0x8b, 0x75, 0x9e, 0x39, 0x1e, 0x09 }, 8158c2ecf20Sopenharmony_ci .valid = true 8168c2ecf20Sopenharmony_ci }, 8178c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8188c2ecf20Sopenharmony_ci { 8198c2ecf20Sopenharmony_ci .private = { 0x90, 0x1b, 0x9d, 0xcf, 0x88, 0x1e, 0x01, 0xe0, 8208c2ecf20Sopenharmony_ci 0x27, 0x57, 0x50, 0x35, 0xd4, 0x0b, 0x43, 0xbd, 8218c2ecf20Sopenharmony_ci 0xc1, 0xc5, 0x24, 0x2e, 0x03, 0x08, 0x47, 0x49, 8228c2ecf20Sopenharmony_ci 0x5b, 0x0c, 0x72, 0x86, 0x46, 0x9b, 0x65, 0x91 }, 8238c2ecf20Sopenharmony_ci .public = { 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8248c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8258c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8268c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 8278c2ecf20Sopenharmony_ci .result = { 0x60, 0x2f, 0xf4, 0x07, 0x89, 0xb5, 0x4b, 0x41, 8288c2ecf20Sopenharmony_ci 0x80, 0x59, 0x15, 0xfe, 0x2a, 0x62, 0x21, 0xf0, 8298c2ecf20Sopenharmony_ci 0x7a, 0x50, 0xff, 0xc2, 0xc3, 0xfc, 0x94, 0xcf, 8308c2ecf20Sopenharmony_ci 0x61, 0xf1, 0x3d, 0x79, 0x04, 0xe8, 0x8e, 0x0e }, 8318c2ecf20Sopenharmony_ci .valid = true 8328c2ecf20Sopenharmony_ci }, 8338c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8348c2ecf20Sopenharmony_ci { 8358c2ecf20Sopenharmony_ci .private = { 0x80, 0x46, 0x67, 0x7c, 0x28, 0xfd, 0x82, 0xc9, 8368c2ecf20Sopenharmony_ci 0xa1, 0xbd, 0xb7, 0x1a, 0x1a, 0x1a, 0x34, 0xfa, 8378c2ecf20Sopenharmony_ci 0xba, 0x12, 0x25, 0xe2, 0x50, 0x7f, 0xe3, 0xf5, 8388c2ecf20Sopenharmony_ci 0x4d, 0x10, 0xbd, 0x5b, 0x0d, 0x86, 0x5f, 0x8e }, 8398c2ecf20Sopenharmony_ci .public = { 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8408c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8418c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8428c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 8438c2ecf20Sopenharmony_ci .result = { 0xe0, 0x0a, 0xe8, 0xb1, 0x43, 0x47, 0x12, 0x47, 8448c2ecf20Sopenharmony_ci 0xba, 0x24, 0xf1, 0x2c, 0x88, 0x55, 0x36, 0xc3, 8458c2ecf20Sopenharmony_ci 0xcb, 0x98, 0x1b, 0x58, 0xe1, 0xe5, 0x6b, 0x2b, 8468c2ecf20Sopenharmony_ci 0xaf, 0x35, 0xc1, 0x2a, 0xe1, 0xf7, 0x9c, 0x26 }, 8478c2ecf20Sopenharmony_ci .valid = true 8488c2ecf20Sopenharmony_ci }, 8498c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8508c2ecf20Sopenharmony_ci { 8518c2ecf20Sopenharmony_ci .private = { 0x60, 0x2f, 0x7e, 0x2f, 0x68, 0xa8, 0x46, 0xb8, 8528c2ecf20Sopenharmony_ci 0x2c, 0xc2, 0x69, 0xb1, 0xd4, 0x8e, 0x93, 0x98, 8538c2ecf20Sopenharmony_ci 0x86, 0xae, 0x54, 0xfd, 0x63, 0x6c, 0x1f, 0xe0, 8548c2ecf20Sopenharmony_ci 0x74, 0xd7, 0x10, 0x12, 0x7d, 0x47, 0x24, 0x91 }, 8558c2ecf20Sopenharmony_ci .public = { 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8568c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8578c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8588c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 8598c2ecf20Sopenharmony_ci .result = { 0x98, 0xcb, 0x9b, 0x50, 0xdd, 0x3f, 0xc2, 0xb0, 8608c2ecf20Sopenharmony_ci 0xd4, 0xf2, 0xd2, 0xbf, 0x7c, 0x5c, 0xfd, 0xd1, 8618c2ecf20Sopenharmony_ci 0x0c, 0x8f, 0xcd, 0x31, 0xfc, 0x40, 0xaf, 0x1a, 8628c2ecf20Sopenharmony_ci 0xd4, 0x4f, 0x47, 0xc1, 0x31, 0x37, 0x63, 0x62 }, 8638c2ecf20Sopenharmony_ci .valid = true 8648c2ecf20Sopenharmony_ci }, 8658c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8668c2ecf20Sopenharmony_ci { 8678c2ecf20Sopenharmony_ci .private = { 0x60, 0x88, 0x7b, 0x3d, 0xc7, 0x24, 0x43, 0x02, 8688c2ecf20Sopenharmony_ci 0x6e, 0xbe, 0xdb, 0xbb, 0xb7, 0x06, 0x65, 0xf4, 8698c2ecf20Sopenharmony_ci 0x2b, 0x87, 0xad, 0xd1, 0x44, 0x0e, 0x77, 0x68, 8708c2ecf20Sopenharmony_ci 0xfb, 0xd7, 0xe8, 0xe2, 0xce, 0x5f, 0x63, 0x9d }, 8718c2ecf20Sopenharmony_ci .public = { 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8728c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8738c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8748c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 8758c2ecf20Sopenharmony_ci .result = { 0x38, 0xd6, 0x30, 0x4c, 0x4a, 0x7e, 0x6d, 0x9f, 8768c2ecf20Sopenharmony_ci 0x79, 0x59, 0x33, 0x4f, 0xb5, 0x24, 0x5b, 0xd2, 8778c2ecf20Sopenharmony_ci 0xc7, 0x54, 0x52, 0x5d, 0x4c, 0x91, 0xdb, 0x95, 8788c2ecf20Sopenharmony_ci 0x02, 0x06, 0x92, 0x62, 0x34, 0xc1, 0xf6, 0x33 }, 8798c2ecf20Sopenharmony_ci .valid = true 8808c2ecf20Sopenharmony_ci }, 8818c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8828c2ecf20Sopenharmony_ci { 8838c2ecf20Sopenharmony_ci .private = { 0x78, 0xd3, 0x1d, 0xfa, 0x85, 0x44, 0x97, 0xd7, 8848c2ecf20Sopenharmony_ci 0x2d, 0x8d, 0xef, 0x8a, 0x1b, 0x7f, 0xb0, 0x06, 8858c2ecf20Sopenharmony_ci 0xce, 0xc2, 0xd8, 0xc4, 0x92, 0x46, 0x47, 0xc9, 8868c2ecf20Sopenharmony_ci 0x38, 0x14, 0xae, 0x56, 0xfa, 0xed, 0xa4, 0x95 }, 8878c2ecf20Sopenharmony_ci .public = { 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8888c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8898c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8908c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 8918c2ecf20Sopenharmony_ci .result = { 0x78, 0x6c, 0xd5, 0x49, 0x96, 0xf0, 0x14, 0xa5, 8928c2ecf20Sopenharmony_ci 0xa0, 0x31, 0xec, 0x14, 0xdb, 0x81, 0x2e, 0xd0, 8938c2ecf20Sopenharmony_ci 0x83, 0x55, 0x06, 0x1f, 0xdb, 0x5d, 0xe6, 0x80, 8948c2ecf20Sopenharmony_ci 0xa8, 0x00, 0xac, 0x52, 0x1f, 0x31, 0x8e, 0x23 }, 8958c2ecf20Sopenharmony_ci .valid = true 8968c2ecf20Sopenharmony_ci }, 8978c2ecf20Sopenharmony_ci /* wycheproof - public key >= p */ 8988c2ecf20Sopenharmony_ci { 8998c2ecf20Sopenharmony_ci .private = { 0xc0, 0x4c, 0x5b, 0xae, 0xfa, 0x83, 0x02, 0xdd, 9008c2ecf20Sopenharmony_ci 0xde, 0xd6, 0xa4, 0xbb, 0x95, 0x77, 0x61, 0xb4, 9018c2ecf20Sopenharmony_ci 0xeb, 0x97, 0xae, 0xfa, 0x4f, 0xc3, 0xb8, 0x04, 9028c2ecf20Sopenharmony_ci 0x30, 0x85, 0xf9, 0x6a, 0x56, 0x59, 0xb3, 0xa5 }, 9038c2ecf20Sopenharmony_ci .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 9048c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 9058c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 9068c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 9078c2ecf20Sopenharmony_ci .result = { 0x29, 0xae, 0x8b, 0xc7, 0x3e, 0x9b, 0x10, 0xa0, 9088c2ecf20Sopenharmony_ci 0x8b, 0x4f, 0x68, 0x1c, 0x43, 0xc3, 0xe0, 0xac, 9098c2ecf20Sopenharmony_ci 0x1a, 0x17, 0x1d, 0x31, 0xb3, 0x8f, 0x1a, 0x48, 9108c2ecf20Sopenharmony_ci 0xef, 0xba, 0x29, 0xae, 0x63, 0x9e, 0xa1, 0x34 }, 9118c2ecf20Sopenharmony_ci .valid = true 9128c2ecf20Sopenharmony_ci }, 9138c2ecf20Sopenharmony_ci /* wycheproof - RFC 7748 */ 9148c2ecf20Sopenharmony_ci { 9158c2ecf20Sopenharmony_ci .private = { 0xa0, 0x46, 0xe3, 0x6b, 0xf0, 0x52, 0x7c, 0x9d, 9168c2ecf20Sopenharmony_ci 0x3b, 0x16, 0x15, 0x4b, 0x82, 0x46, 0x5e, 0xdd, 9178c2ecf20Sopenharmony_ci 0x62, 0x14, 0x4c, 0x0a, 0xc1, 0xfc, 0x5a, 0x18, 9188c2ecf20Sopenharmony_ci 0x50, 0x6a, 0x22, 0x44, 0xba, 0x44, 0x9a, 0x44 }, 9198c2ecf20Sopenharmony_ci .public = { 0xe6, 0xdb, 0x68, 0x67, 0x58, 0x30, 0x30, 0xdb, 9208c2ecf20Sopenharmony_ci 0x35, 0x94, 0xc1, 0xa4, 0x24, 0xb1, 0x5f, 0x7c, 9218c2ecf20Sopenharmony_ci 0x72, 0x66, 0x24, 0xec, 0x26, 0xb3, 0x35, 0x3b, 9228c2ecf20Sopenharmony_ci 0x10, 0xa9, 0x03, 0xa6, 0xd0, 0xab, 0x1c, 0x4c }, 9238c2ecf20Sopenharmony_ci .result = { 0xc3, 0xda, 0x55, 0x37, 0x9d, 0xe9, 0xc6, 0x90, 9248c2ecf20Sopenharmony_ci 0x8e, 0x94, 0xea, 0x4d, 0xf2, 0x8d, 0x08, 0x4f, 9258c2ecf20Sopenharmony_ci 0x32, 0xec, 0xcf, 0x03, 0x49, 0x1c, 0x71, 0xf7, 9268c2ecf20Sopenharmony_ci 0x54, 0xb4, 0x07, 0x55, 0x77, 0xa2, 0x85, 0x52 }, 9278c2ecf20Sopenharmony_ci .valid = true 9288c2ecf20Sopenharmony_ci }, 9298c2ecf20Sopenharmony_ci /* wycheproof - RFC 7748 */ 9308c2ecf20Sopenharmony_ci { 9318c2ecf20Sopenharmony_ci .private = { 0x48, 0x66, 0xe9, 0xd4, 0xd1, 0xb4, 0x67, 0x3c, 9328c2ecf20Sopenharmony_ci 0x5a, 0xd2, 0x26, 0x91, 0x95, 0x7d, 0x6a, 0xf5, 9338c2ecf20Sopenharmony_ci 0xc1, 0x1b, 0x64, 0x21, 0xe0, 0xea, 0x01, 0xd4, 9348c2ecf20Sopenharmony_ci 0x2c, 0xa4, 0x16, 0x9e, 0x79, 0x18, 0xba, 0x4d }, 9358c2ecf20Sopenharmony_ci .public = { 0xe5, 0x21, 0x0f, 0x12, 0x78, 0x68, 0x11, 0xd3, 9368c2ecf20Sopenharmony_ci 0xf4, 0xb7, 0x95, 0x9d, 0x05, 0x38, 0xae, 0x2c, 9378c2ecf20Sopenharmony_ci 0x31, 0xdb, 0xe7, 0x10, 0x6f, 0xc0, 0x3c, 0x3e, 9388c2ecf20Sopenharmony_ci 0xfc, 0x4c, 0xd5, 0x49, 0xc7, 0x15, 0xa4, 0x13 }, 9398c2ecf20Sopenharmony_ci .result = { 0x95, 0xcb, 0xde, 0x94, 0x76, 0xe8, 0x90, 0x7d, 9408c2ecf20Sopenharmony_ci 0x7a, 0xad, 0xe4, 0x5c, 0xb4, 0xb8, 0x73, 0xf8, 9418c2ecf20Sopenharmony_ci 0x8b, 0x59, 0x5a, 0x68, 0x79, 0x9f, 0xa1, 0x52, 9428c2ecf20Sopenharmony_ci 0xe6, 0xf8, 0xf7, 0x64, 0x7a, 0xac, 0x79, 0x57 }, 9438c2ecf20Sopenharmony_ci .valid = true 9448c2ecf20Sopenharmony_ci }, 9458c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 9468c2ecf20Sopenharmony_ci { 9478c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 9488c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 9498c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 9508c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 9518c2ecf20Sopenharmony_ci .public = { 0x0a, 0xb4, 0xe7, 0x63, 0x80, 0xd8, 0x4d, 0xde, 9528c2ecf20Sopenharmony_ci 0x4f, 0x68, 0x33, 0xc5, 0x8f, 0x2a, 0x9f, 0xb8, 9538c2ecf20Sopenharmony_ci 0xf8, 0x3b, 0xb0, 0x16, 0x9b, 0x17, 0x2b, 0xe4, 9548c2ecf20Sopenharmony_ci 0xb6, 0xe0, 0x59, 0x28, 0x87, 0x74, 0x1a, 0x36 }, 9558c2ecf20Sopenharmony_ci .result = { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9568c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9578c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9588c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 9598c2ecf20Sopenharmony_ci .valid = true 9608c2ecf20Sopenharmony_ci }, 9618c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 9628c2ecf20Sopenharmony_ci { 9638c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 9648c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 9658c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 9668c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 9678c2ecf20Sopenharmony_ci .public = { 0x89, 0xe1, 0x0d, 0x57, 0x01, 0xb4, 0x33, 0x7d, 9688c2ecf20Sopenharmony_ci 0x2d, 0x03, 0x21, 0x81, 0x53, 0x8b, 0x10, 0x64, 9698c2ecf20Sopenharmony_ci 0xbd, 0x40, 0x84, 0x40, 0x1c, 0xec, 0xa1, 0xfd, 9708c2ecf20Sopenharmony_ci 0x12, 0x66, 0x3a, 0x19, 0x59, 0x38, 0x80, 0x00 }, 9718c2ecf20Sopenharmony_ci .result = { 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9728c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9738c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9748c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 9758c2ecf20Sopenharmony_ci .valid = true 9768c2ecf20Sopenharmony_ci }, 9778c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 9788c2ecf20Sopenharmony_ci { 9798c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 9808c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 9818c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 9828c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 9838c2ecf20Sopenharmony_ci .public = { 0x2b, 0x55, 0xd3, 0xaa, 0x4a, 0x8f, 0x80, 0xc8, 9848c2ecf20Sopenharmony_ci 0xc0, 0xb2, 0xae, 0x5f, 0x93, 0x3e, 0x85, 0xaf, 9858c2ecf20Sopenharmony_ci 0x49, 0xbe, 0xac, 0x36, 0xc2, 0xfa, 0x73, 0x94, 9868c2ecf20Sopenharmony_ci 0xba, 0xb7, 0x6c, 0x89, 0x33, 0xf8, 0xf8, 0x1d }, 9878c2ecf20Sopenharmony_ci .result = { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9888c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9898c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 9908c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 9918c2ecf20Sopenharmony_ci .valid = true 9928c2ecf20Sopenharmony_ci }, 9938c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 9948c2ecf20Sopenharmony_ci { 9958c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 9968c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 9978c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 9988c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 9998c2ecf20Sopenharmony_ci .public = { 0x63, 0xe5, 0xb1, 0xfe, 0x96, 0x01, 0xfe, 0x84, 10008c2ecf20Sopenharmony_ci 0x38, 0x5d, 0x88, 0x66, 0xb0, 0x42, 0x12, 0x62, 10018c2ecf20Sopenharmony_ci 0xf7, 0x8f, 0xbf, 0xa5, 0xaf, 0xf9, 0x58, 0x5e, 10028c2ecf20Sopenharmony_ci 0x62, 0x66, 0x79, 0xb1, 0x85, 0x47, 0xd9, 0x59 }, 10038c2ecf20Sopenharmony_ci .result = { 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10048c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10058c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10068c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f }, 10078c2ecf20Sopenharmony_ci .valid = true 10088c2ecf20Sopenharmony_ci }, 10098c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 10108c2ecf20Sopenharmony_ci { 10118c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 10128c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 10138c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 10148c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 10158c2ecf20Sopenharmony_ci .public = { 0xe4, 0x28, 0xf3, 0xda, 0xc1, 0x78, 0x09, 0xf8, 10168c2ecf20Sopenharmony_ci 0x27, 0xa5, 0x22, 0xce, 0x32, 0x35, 0x50, 0x58, 10178c2ecf20Sopenharmony_ci 0xd0, 0x73, 0x69, 0x36, 0x4a, 0xa7, 0x89, 0x02, 10188c2ecf20Sopenharmony_ci 0xee, 0x10, 0x13, 0x9b, 0x9f, 0x9d, 0xd6, 0x53 }, 10198c2ecf20Sopenharmony_ci .result = { 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10208c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10218c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10228c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f }, 10238c2ecf20Sopenharmony_ci .valid = true 10248c2ecf20Sopenharmony_ci }, 10258c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 10268c2ecf20Sopenharmony_ci { 10278c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 10288c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 10298c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 10308c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 10318c2ecf20Sopenharmony_ci .public = { 0xb3, 0xb5, 0x0e, 0x3e, 0xd3, 0xa4, 0x07, 0xb9, 10328c2ecf20Sopenharmony_ci 0x5d, 0xe9, 0x42, 0xef, 0x74, 0x57, 0x5b, 0x5a, 10338c2ecf20Sopenharmony_ci 0xb8, 0xa1, 0x0c, 0x09, 0xee, 0x10, 0x35, 0x44, 10348c2ecf20Sopenharmony_ci 0xd6, 0x0b, 0xdf, 0xed, 0x81, 0x38, 0xab, 0x2b }, 10358c2ecf20Sopenharmony_ci .result = { 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10368c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10378c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10388c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f }, 10398c2ecf20Sopenharmony_ci .valid = true 10408c2ecf20Sopenharmony_ci }, 10418c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 10428c2ecf20Sopenharmony_ci { 10438c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 10448c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 10458c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 10468c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 10478c2ecf20Sopenharmony_ci .public = { 0x21, 0x3f, 0xff, 0xe9, 0x3d, 0x5e, 0xa8, 0xcd, 10488c2ecf20Sopenharmony_ci 0x24, 0x2e, 0x46, 0x28, 0x44, 0x02, 0x99, 0x22, 10498c2ecf20Sopenharmony_ci 0xc4, 0x3c, 0x77, 0xc9, 0xe3, 0xe4, 0x2f, 0x56, 10508c2ecf20Sopenharmony_ci 0x2f, 0x48, 0x5d, 0x24, 0xc5, 0x01, 0xa2, 0x0b }, 10518c2ecf20Sopenharmony_ci .result = { 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10528c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10538c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10548c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f }, 10558c2ecf20Sopenharmony_ci .valid = true 10568c2ecf20Sopenharmony_ci }, 10578c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 10588c2ecf20Sopenharmony_ci { 10598c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 10608c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 10618c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 10628c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 10638c2ecf20Sopenharmony_ci .public = { 0x91, 0xb2, 0x32, 0xa1, 0x78, 0xb3, 0xcd, 0x53, 10648c2ecf20Sopenharmony_ci 0x09, 0x32, 0x44, 0x1e, 0x61, 0x39, 0x41, 0x8f, 10658c2ecf20Sopenharmony_ci 0x72, 0x17, 0x22, 0x92, 0xf1, 0xda, 0x4c, 0x18, 10668c2ecf20Sopenharmony_ci 0x34, 0xfc, 0x5e, 0xbf, 0xef, 0xb5, 0x1e, 0x3f }, 10678c2ecf20Sopenharmony_ci .result = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10688c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10698c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10708c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03 }, 10718c2ecf20Sopenharmony_ci .valid = true 10728c2ecf20Sopenharmony_ci }, 10738c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 10748c2ecf20Sopenharmony_ci { 10758c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 10768c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 10778c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 10788c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 10798c2ecf20Sopenharmony_ci .public = { 0x04, 0x5c, 0x6e, 0x11, 0xc5, 0xd3, 0x32, 0x55, 10808c2ecf20Sopenharmony_ci 0x6c, 0x78, 0x22, 0xfe, 0x94, 0xeb, 0xf8, 0x9b, 10818c2ecf20Sopenharmony_ci 0x56, 0xa3, 0x87, 0x8d, 0xc2, 0x7c, 0xa0, 0x79, 10828c2ecf20Sopenharmony_ci 0x10, 0x30, 0x58, 0x84, 0x9f, 0xab, 0xcb, 0x4f }, 10838c2ecf20Sopenharmony_ci .result = { 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10848c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10858c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 10868c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 10878c2ecf20Sopenharmony_ci .valid = true 10888c2ecf20Sopenharmony_ci }, 10898c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 10908c2ecf20Sopenharmony_ci { 10918c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 10928c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 10938c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 10948c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 10958c2ecf20Sopenharmony_ci .public = { 0x1c, 0xa2, 0x19, 0x0b, 0x71, 0x16, 0x35, 0x39, 10968c2ecf20Sopenharmony_ci 0x06, 0x3c, 0x35, 0x77, 0x3b, 0xda, 0x0c, 0x9c, 10978c2ecf20Sopenharmony_ci 0x92, 0x8e, 0x91, 0x36, 0xf0, 0x62, 0x0a, 0xeb, 10988c2ecf20Sopenharmony_ci 0x09, 0x3f, 0x09, 0x91, 0x97, 0xb7, 0xf7, 0x4e }, 10998c2ecf20Sopenharmony_ci .result = { 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11008c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11018c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11028c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 11038c2ecf20Sopenharmony_ci .valid = true 11048c2ecf20Sopenharmony_ci }, 11058c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 11068c2ecf20Sopenharmony_ci { 11078c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 11088c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 11098c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 11108c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 11118c2ecf20Sopenharmony_ci .public = { 0xf7, 0x6e, 0x90, 0x10, 0xac, 0x33, 0xc5, 0x04, 11128c2ecf20Sopenharmony_ci 0x3b, 0x2d, 0x3b, 0x76, 0xa8, 0x42, 0x17, 0x10, 11138c2ecf20Sopenharmony_ci 0x00, 0xc4, 0x91, 0x62, 0x22, 0xe9, 0xe8, 0x58, 11148c2ecf20Sopenharmony_ci 0x97, 0xa0, 0xae, 0xc7, 0xf6, 0x35, 0x0b, 0x3c }, 11158c2ecf20Sopenharmony_ci .result = { 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11168c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11178c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11188c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 11198c2ecf20Sopenharmony_ci .valid = true 11208c2ecf20Sopenharmony_ci }, 11218c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 11228c2ecf20Sopenharmony_ci { 11238c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 11248c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 11258c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 11268c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 11278c2ecf20Sopenharmony_ci .public = { 0xbb, 0x72, 0x68, 0x8d, 0x8f, 0x8a, 0xa7, 0xa3, 11288c2ecf20Sopenharmony_ci 0x9c, 0xd6, 0x06, 0x0c, 0xd5, 0xc8, 0x09, 0x3c, 11298c2ecf20Sopenharmony_ci 0xde, 0xc6, 0xfe, 0x34, 0x19, 0x37, 0xc3, 0x88, 11308c2ecf20Sopenharmony_ci 0x6a, 0x99, 0x34, 0x6c, 0xd0, 0x7f, 0xaa, 0x55 }, 11318c2ecf20Sopenharmony_ci .result = { 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11328c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11338c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11348c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, 11358c2ecf20Sopenharmony_ci .valid = true 11368c2ecf20Sopenharmony_ci }, 11378c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 11388c2ecf20Sopenharmony_ci { 11398c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 11408c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 11418c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 11428c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 11438c2ecf20Sopenharmony_ci .public = { 0x88, 0xfd, 0xde, 0xa1, 0x93, 0x39, 0x1c, 0x6a, 11448c2ecf20Sopenharmony_ci 0x59, 0x33, 0xef, 0x9b, 0x71, 0x90, 0x15, 0x49, 11458c2ecf20Sopenharmony_ci 0x44, 0x72, 0x05, 0xaa, 0xe9, 0xda, 0x92, 0x8a, 11468c2ecf20Sopenharmony_ci 0x6b, 0x91, 0xa3, 0x52, 0xba, 0x10, 0xf4, 0x1f }, 11478c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11488c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11498c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11508c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }, 11518c2ecf20Sopenharmony_ci .valid = true 11528c2ecf20Sopenharmony_ci }, 11538c2ecf20Sopenharmony_ci /* wycheproof - edge case for shared secret */ 11548c2ecf20Sopenharmony_ci { 11558c2ecf20Sopenharmony_ci .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4, 11568c2ecf20Sopenharmony_ci 0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3, 11578c2ecf20Sopenharmony_ci 0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc, 11588c2ecf20Sopenharmony_ci 0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 }, 11598c2ecf20Sopenharmony_ci .public = { 0x30, 0x3b, 0x39, 0x2f, 0x15, 0x31, 0x16, 0xca, 11608c2ecf20Sopenharmony_ci 0xd9, 0xcc, 0x68, 0x2a, 0x00, 0xcc, 0xc4, 0x4c, 11618c2ecf20Sopenharmony_ci 0x95, 0xff, 0x0d, 0x3b, 0xbe, 0x56, 0x8b, 0xeb, 11628c2ecf20Sopenharmony_ci 0x6c, 0x4e, 0x73, 0x9b, 0xaf, 0xdc, 0x2c, 0x68 }, 11638c2ecf20Sopenharmony_ci .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11648c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11658c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11668c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00 }, 11678c2ecf20Sopenharmony_ci .valid = true 11688c2ecf20Sopenharmony_ci }, 11698c2ecf20Sopenharmony_ci /* wycheproof - checking for overflow */ 11708c2ecf20Sopenharmony_ci { 11718c2ecf20Sopenharmony_ci .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d, 11728c2ecf20Sopenharmony_ci 0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d, 11738c2ecf20Sopenharmony_ci 0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c, 11748c2ecf20Sopenharmony_ci 0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 }, 11758c2ecf20Sopenharmony_ci .public = { 0xfd, 0x30, 0x0a, 0xeb, 0x40, 0xe1, 0xfa, 0x58, 11768c2ecf20Sopenharmony_ci 0x25, 0x18, 0x41, 0x2b, 0x49, 0xb2, 0x08, 0xa7, 11778c2ecf20Sopenharmony_ci 0x84, 0x2b, 0x1e, 0x1f, 0x05, 0x6a, 0x04, 0x01, 11788c2ecf20Sopenharmony_ci 0x78, 0xea, 0x41, 0x41, 0x53, 0x4f, 0x65, 0x2d }, 11798c2ecf20Sopenharmony_ci .result = { 0xb7, 0x34, 0x10, 0x5d, 0xc2, 0x57, 0x58, 0x5d, 11808c2ecf20Sopenharmony_ci 0x73, 0xb5, 0x66, 0xcc, 0xb7, 0x6f, 0x06, 0x27, 11818c2ecf20Sopenharmony_ci 0x95, 0xcc, 0xbe, 0xc8, 0x91, 0x28, 0xe5, 0x2b, 11828c2ecf20Sopenharmony_ci 0x02, 0xf3, 0xe5, 0x96, 0x39, 0xf1, 0x3c, 0x46 }, 11838c2ecf20Sopenharmony_ci .valid = true 11848c2ecf20Sopenharmony_ci }, 11858c2ecf20Sopenharmony_ci /* wycheproof - checking for overflow */ 11868c2ecf20Sopenharmony_ci { 11878c2ecf20Sopenharmony_ci .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d, 11888c2ecf20Sopenharmony_ci 0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d, 11898c2ecf20Sopenharmony_ci 0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c, 11908c2ecf20Sopenharmony_ci 0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 }, 11918c2ecf20Sopenharmony_ci .public = { 0xc8, 0xef, 0x79, 0xb5, 0x14, 0xd7, 0x68, 0x26, 11928c2ecf20Sopenharmony_ci 0x77, 0xbc, 0x79, 0x31, 0xe0, 0x6e, 0xe5, 0xc2, 11938c2ecf20Sopenharmony_ci 0x7c, 0x9b, 0x39, 0x2b, 0x4a, 0xe9, 0x48, 0x44, 11948c2ecf20Sopenharmony_ci 0x73, 0xf5, 0x54, 0xe6, 0x67, 0x8e, 0xcc, 0x2e }, 11958c2ecf20Sopenharmony_ci .result = { 0x64, 0x7a, 0x46, 0xb6, 0xfc, 0x3f, 0x40, 0xd6, 11968c2ecf20Sopenharmony_ci 0x21, 0x41, 0xee, 0x3c, 0xee, 0x70, 0x6b, 0x4d, 11978c2ecf20Sopenharmony_ci 0x7a, 0x92, 0x71, 0x59, 0x3a, 0x7b, 0x14, 0x3e, 11988c2ecf20Sopenharmony_ci 0x8e, 0x2e, 0x22, 0x79, 0x88, 0x3e, 0x45, 0x50 }, 11998c2ecf20Sopenharmony_ci .valid = true 12008c2ecf20Sopenharmony_ci }, 12018c2ecf20Sopenharmony_ci /* wycheproof - checking for overflow */ 12028c2ecf20Sopenharmony_ci { 12038c2ecf20Sopenharmony_ci .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d, 12048c2ecf20Sopenharmony_ci 0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d, 12058c2ecf20Sopenharmony_ci 0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c, 12068c2ecf20Sopenharmony_ci 0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 }, 12078c2ecf20Sopenharmony_ci .public = { 0x64, 0xae, 0xac, 0x25, 0x04, 0x14, 0x48, 0x61, 12088c2ecf20Sopenharmony_ci 0x53, 0x2b, 0x7b, 0xbc, 0xb6, 0xc8, 0x7d, 0x67, 12098c2ecf20Sopenharmony_ci 0xdd, 0x4c, 0x1f, 0x07, 0xeb, 0xc2, 0xe0, 0x6e, 12108c2ecf20Sopenharmony_ci 0xff, 0xb9, 0x5a, 0xec, 0xc6, 0x17, 0x0b, 0x2c }, 12118c2ecf20Sopenharmony_ci .result = { 0x4f, 0xf0, 0x3d, 0x5f, 0xb4, 0x3c, 0xd8, 0x65, 12128c2ecf20Sopenharmony_ci 0x7a, 0x3c, 0xf3, 0x7c, 0x13, 0x8c, 0xad, 0xce, 12138c2ecf20Sopenharmony_ci 0xcc, 0xe5, 0x09, 0xe4, 0xeb, 0xa0, 0x89, 0xd0, 12148c2ecf20Sopenharmony_ci 0xef, 0x40, 0xb4, 0xe4, 0xfb, 0x94, 0x61, 0x55 }, 12158c2ecf20Sopenharmony_ci .valid = true 12168c2ecf20Sopenharmony_ci }, 12178c2ecf20Sopenharmony_ci /* wycheproof - checking for overflow */ 12188c2ecf20Sopenharmony_ci { 12198c2ecf20Sopenharmony_ci .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d, 12208c2ecf20Sopenharmony_ci 0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d, 12218c2ecf20Sopenharmony_ci 0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c, 12228c2ecf20Sopenharmony_ci 0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 }, 12238c2ecf20Sopenharmony_ci .public = { 0xbf, 0x68, 0xe3, 0x5e, 0x9b, 0xdb, 0x7e, 0xee, 12248c2ecf20Sopenharmony_ci 0x1b, 0x50, 0x57, 0x02, 0x21, 0x86, 0x0f, 0x5d, 12258c2ecf20Sopenharmony_ci 0xcd, 0xad, 0x8a, 0xcb, 0xab, 0x03, 0x1b, 0x14, 12268c2ecf20Sopenharmony_ci 0x97, 0x4c, 0xc4, 0x90, 0x13, 0xc4, 0x98, 0x31 }, 12278c2ecf20Sopenharmony_ci .result = { 0x21, 0xce, 0xe5, 0x2e, 0xfd, 0xbc, 0x81, 0x2e, 12288c2ecf20Sopenharmony_ci 0x1d, 0x02, 0x1a, 0x4a, 0xf1, 0xe1, 0xd8, 0xbc, 12298c2ecf20Sopenharmony_ci 0x4d, 0xb3, 0xc4, 0x00, 0xe4, 0xd2, 0xa2, 0xc5, 12308c2ecf20Sopenharmony_ci 0x6a, 0x39, 0x26, 0xdb, 0x4d, 0x99, 0xc6, 0x5b }, 12318c2ecf20Sopenharmony_ci .valid = true 12328c2ecf20Sopenharmony_ci }, 12338c2ecf20Sopenharmony_ci /* wycheproof - checking for overflow */ 12348c2ecf20Sopenharmony_ci { 12358c2ecf20Sopenharmony_ci .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d, 12368c2ecf20Sopenharmony_ci 0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d, 12378c2ecf20Sopenharmony_ci 0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c, 12388c2ecf20Sopenharmony_ci 0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 }, 12398c2ecf20Sopenharmony_ci .public = { 0x53, 0x47, 0xc4, 0x91, 0x33, 0x1a, 0x64, 0xb4, 12408c2ecf20Sopenharmony_ci 0x3d, 0xdc, 0x68, 0x30, 0x34, 0xe6, 0x77, 0xf5, 12418c2ecf20Sopenharmony_ci 0x3d, 0xc3, 0x2b, 0x52, 0xa5, 0x2a, 0x57, 0x7c, 12428c2ecf20Sopenharmony_ci 0x15, 0xa8, 0x3b, 0xf2, 0x98, 0xe9, 0x9f, 0x19 }, 12438c2ecf20Sopenharmony_ci .result = { 0x18, 0xcb, 0x89, 0xe4, 0xe2, 0x0c, 0x0c, 0x2b, 12448c2ecf20Sopenharmony_ci 0xd3, 0x24, 0x30, 0x52, 0x45, 0x26, 0x6c, 0x93, 12458c2ecf20Sopenharmony_ci 0x27, 0x69, 0x0b, 0xbe, 0x79, 0xac, 0xb8, 0x8f, 12468c2ecf20Sopenharmony_ci 0x5b, 0x8f, 0xb3, 0xf7, 0x4e, 0xca, 0x3e, 0x52 }, 12478c2ecf20Sopenharmony_ci .valid = true 12488c2ecf20Sopenharmony_ci }, 12498c2ecf20Sopenharmony_ci /* wycheproof - private key == -1 (mod order) */ 12508c2ecf20Sopenharmony_ci { 12518c2ecf20Sopenharmony_ci .private = { 0xa0, 0x23, 0xcd, 0xd0, 0x83, 0xef, 0x5b, 0xb8, 12528c2ecf20Sopenharmony_ci 0x2f, 0x10, 0xd6, 0x2e, 0x59, 0xe1, 0x5a, 0x68, 12538c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 12548c2ecf20Sopenharmony_ci 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50 }, 12558c2ecf20Sopenharmony_ci .public = { 0x25, 0x8e, 0x04, 0x52, 0x3b, 0x8d, 0x25, 0x3e, 12568c2ecf20Sopenharmony_ci 0xe6, 0x57, 0x19, 0xfc, 0x69, 0x06, 0xc6, 0x57, 12578c2ecf20Sopenharmony_ci 0x19, 0x2d, 0x80, 0x71, 0x7e, 0xdc, 0x82, 0x8f, 12588c2ecf20Sopenharmony_ci 0xa0, 0xaf, 0x21, 0x68, 0x6e, 0x2f, 0xaa, 0x75 }, 12598c2ecf20Sopenharmony_ci .result = { 0x25, 0x8e, 0x04, 0x52, 0x3b, 0x8d, 0x25, 0x3e, 12608c2ecf20Sopenharmony_ci 0xe6, 0x57, 0x19, 0xfc, 0x69, 0x06, 0xc6, 0x57, 12618c2ecf20Sopenharmony_ci 0x19, 0x2d, 0x80, 0x71, 0x7e, 0xdc, 0x82, 0x8f, 12628c2ecf20Sopenharmony_ci 0xa0, 0xaf, 0x21, 0x68, 0x6e, 0x2f, 0xaa, 0x75 }, 12638c2ecf20Sopenharmony_ci .valid = true 12648c2ecf20Sopenharmony_ci }, 12658c2ecf20Sopenharmony_ci /* wycheproof - private key == 1 (mod order) on twist */ 12668c2ecf20Sopenharmony_ci { 12678c2ecf20Sopenharmony_ci .private = { 0x58, 0x08, 0x3d, 0xd2, 0x61, 0xad, 0x91, 0xef, 12688c2ecf20Sopenharmony_ci 0xf9, 0x52, 0x32, 0x2e, 0xc8, 0x24, 0xc6, 0x82, 12698c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 12708c2ecf20Sopenharmony_ci 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f }, 12718c2ecf20Sopenharmony_ci .public = { 0x2e, 0xae, 0x5e, 0xc3, 0xdd, 0x49, 0x4e, 0x9f, 12728c2ecf20Sopenharmony_ci 0x2d, 0x37, 0xd2, 0x58, 0xf8, 0x73, 0xa8, 0xe6, 12738c2ecf20Sopenharmony_ci 0xe9, 0xd0, 0xdb, 0xd1, 0xe3, 0x83, 0xef, 0x64, 12748c2ecf20Sopenharmony_ci 0xd9, 0x8b, 0xb9, 0x1b, 0x3e, 0x0b, 0xe0, 0x35 }, 12758c2ecf20Sopenharmony_ci .result = { 0x2e, 0xae, 0x5e, 0xc3, 0xdd, 0x49, 0x4e, 0x9f, 12768c2ecf20Sopenharmony_ci 0x2d, 0x37, 0xd2, 0x58, 0xf8, 0x73, 0xa8, 0xe6, 12778c2ecf20Sopenharmony_ci 0xe9, 0xd0, 0xdb, 0xd1, 0xe3, 0x83, 0xef, 0x64, 12788c2ecf20Sopenharmony_ci 0xd9, 0x8b, 0xb9, 0x1b, 0x3e, 0x0b, 0xe0, 0x35 }, 12798c2ecf20Sopenharmony_ci .valid = true 12808c2ecf20Sopenharmony_ci } 12818c2ecf20Sopenharmony_ci}; 12828c2ecf20Sopenharmony_ci 12838c2ecf20Sopenharmony_cibool __init curve25519_selftest(void) 12848c2ecf20Sopenharmony_ci{ 12858c2ecf20Sopenharmony_ci bool success = true, ret, ret2; 12868c2ecf20Sopenharmony_ci size_t i = 0, j; 12878c2ecf20Sopenharmony_ci u8 in[CURVE25519_KEY_SIZE]; 12888c2ecf20Sopenharmony_ci u8 out[CURVE25519_KEY_SIZE], out2[CURVE25519_KEY_SIZE], 12898c2ecf20Sopenharmony_ci out3[CURVE25519_KEY_SIZE]; 12908c2ecf20Sopenharmony_ci 12918c2ecf20Sopenharmony_ci for (i = 0; i < ARRAY_SIZE(curve25519_test_vectors); ++i) { 12928c2ecf20Sopenharmony_ci memset(out, 0, CURVE25519_KEY_SIZE); 12938c2ecf20Sopenharmony_ci ret = curve25519(out, curve25519_test_vectors[i].private, 12948c2ecf20Sopenharmony_ci curve25519_test_vectors[i].public); 12958c2ecf20Sopenharmony_ci if (ret != curve25519_test_vectors[i].valid || 12968c2ecf20Sopenharmony_ci memcmp(out, curve25519_test_vectors[i].result, 12978c2ecf20Sopenharmony_ci CURVE25519_KEY_SIZE)) { 12988c2ecf20Sopenharmony_ci pr_err("curve25519 self-test %zu: FAIL\n", i + 1); 12998c2ecf20Sopenharmony_ci success = false; 13008c2ecf20Sopenharmony_ci } 13018c2ecf20Sopenharmony_ci } 13028c2ecf20Sopenharmony_ci 13038c2ecf20Sopenharmony_ci for (i = 0; i < 5; ++i) { 13048c2ecf20Sopenharmony_ci get_random_bytes(in, sizeof(in)); 13058c2ecf20Sopenharmony_ci ret = curve25519_generate_public(out, in); 13068c2ecf20Sopenharmony_ci ret2 = curve25519(out2, in, (u8[CURVE25519_KEY_SIZE]){ 9 }); 13078c2ecf20Sopenharmony_ci curve25519_generic(out3, in, (u8[CURVE25519_KEY_SIZE]){ 9 }); 13088c2ecf20Sopenharmony_ci if (ret != ret2 || 13098c2ecf20Sopenharmony_ci memcmp(out, out2, CURVE25519_KEY_SIZE) || 13108c2ecf20Sopenharmony_ci memcmp(out, out3, CURVE25519_KEY_SIZE)) { 13118c2ecf20Sopenharmony_ci pr_err("curve25519 basepoint self-test %zu: FAIL: input - 0x", 13128c2ecf20Sopenharmony_ci i + 1); 13138c2ecf20Sopenharmony_ci for (j = CURVE25519_KEY_SIZE; j-- > 0;) 13148c2ecf20Sopenharmony_ci printk(KERN_CONT "%02x", in[j]); 13158c2ecf20Sopenharmony_ci printk(KERN_CONT "\n"); 13168c2ecf20Sopenharmony_ci success = false; 13178c2ecf20Sopenharmony_ci } 13188c2ecf20Sopenharmony_ci } 13198c2ecf20Sopenharmony_ci 13208c2ecf20Sopenharmony_ci return success; 13218c2ecf20Sopenharmony_ci} 1322