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