xref: /freebsd/crypto/libecc/src/tests/ed448_test_vectors.h (revision f0865ec9906d5a18fa2a3b61381f22ce16e606ad)
1*f0865ec9SKyle Evans /*
2*f0865ec9SKyle Evans  *  Copyright (C) 2021 - This file is part of libecc project
3*f0865ec9SKyle Evans  *
4*f0865ec9SKyle Evans  *  Authors:
5*f0865ec9SKyle Evans  *      Arnaud EBALARD <arnaud.ebalard@ssi.gouv.fr>
6*f0865ec9SKyle Evans  *      Ryad BENADJILA <ryadbenadjila@gmail.com>
7*f0865ec9SKyle Evans  *
8*f0865ec9SKyle Evans  *  This software is licensed under a dual BSD and GPL v2 license.
9*f0865ec9SKyle Evans  *  See LICENSE file at the root folder of the project.
10*f0865ec9SKyle Evans  */
11*f0865ec9SKyle Evans #ifndef __ED448_TEST_VECTORS_H__
12*f0865ec9SKyle Evans #define __ED448_TEST_VECTORS_H__
13*f0865ec9SKyle Evans 
14*f0865ec9SKyle Evans /************************************************/
15*f0865ec9SKyle Evans static const u8 ed448_1_test_vectors_priv_key[] = {
16*f0865ec9SKyle Evans 	0x6c, 0x82, 0xa5, 0x62, 0xcb, 0x80, 0x8d, 0x10, 0xd6, 0x32, 0xbe, 0x89, 0xc8, 0x51, 0x3e, 0xbf, 0x6c, 0x92, 0x9f, 0x34, 0xdd, 0xfa, 0x8c, 0x9f, 0x63, 0xc9, 0x96, 0x0e, 0xf6, 0xe3, 0x48, 0xa3, 0x52, 0x8c, 0x8a, 0x3f, 0xcc, 0x2f, 0x04, 0x4e, 0x39, 0xa3, 0xfc, 0x5b, 0x94, 0x49, 0x2f, 0x8f, 0x03, 0x2e, 0x75, 0x49, 0xa2, 0x00, 0x98, 0xf9, 0x5b,
17*f0865ec9SKyle Evans  };
18*f0865ec9SKyle Evans static const u8 ed448_1_test_vectors_expected_sig[] = {
19*f0865ec9SKyle Evans 	0x53, 0x3a, 0x37, 0xf6, 0xbb, 0xe4, 0x57, 0x25, 0x1f, 0x02, 0x3c, 0x0d, 0x88, 0xf9, 0x76, 0xae, 0x2d, 0xfb, 0x50, 0x4a, 0x84, 0x3e, 0x34, 0xd2, 0x07, 0x4f, 0xd8, 0x23, 0xd4, 0x1a, 0x59, 0x1f, 0x2b, 0x23, 0x3f, 0x03, 0x4f, 0x62, 0x82, 0x81, 0xf2, 0xfd, 0x7a, 0x22, 0xdd, 0xd4, 0x7d, 0x78, 0x28, 0xc5, 0x9b, 0xd0, 0xa2, 0x1b, 0xfd, 0x39, 0x80, 0xff, 0x0d, 0x20, 0x28, 0xd4, 0xb1, 0x8a, 0x9d, 0xf6, 0x3e, 0x00, 0x6c, 0x5d, 0x1c, 0x2d, 0x34, 0x5b, 0x92, 0x5d, 0x8d, 0xc0, 0x0b, 0x41, 0x04, 0x85, 0x2d, 0xb9, 0x9a, 0xc5, 0xc7, 0xcd, 0xda, 0x85, 0x30, 0xa1, 0x13, 0xa0, 0xf4, 0xdb, 0xb6, 0x11, 0x49, 0xf0, 0x5a, 0x73, 0x63, 0x26, 0x8c, 0x71, 0xd9, 0x58, 0x08, 0xff, 0x2e, 0x65, 0x26, 0x00,
20*f0865ec9SKyle Evans  };
21*f0865ec9SKyle Evans static const ec_test_case ed448_1_test_case = {
22*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 1",
23*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
24*f0865ec9SKyle Evans         .priv_key = ed448_1_test_vectors_priv_key,
25*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_1_test_vectors_priv_key),
26*f0865ec9SKyle Evans         .nn_random = NULL,
27*f0865ec9SKyle Evans         .hash_type = SHAKE256,
28*f0865ec9SKyle Evans         .msg = "",
29*f0865ec9SKyle Evans         .msglen = 0,
30*f0865ec9SKyle Evans         .sig_type = EDDSA448,
31*f0865ec9SKyle Evans         .exp_sig = ed448_1_test_vectors_expected_sig,
32*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_1_test_vectors_expected_sig),
33*f0865ec9SKyle Evans 	.adata = NULL,
34*f0865ec9SKyle Evans 	.adata_len = 0
35*f0865ec9SKyle Evans };
36*f0865ec9SKyle Evans 
37*f0865ec9SKyle Evans /************************************************/
38*f0865ec9SKyle Evans static const u8 ed448_2_test_vectors_priv_key[] = {
39*f0865ec9SKyle Evans 	0xc4, 0xea, 0xb0, 0x5d, 0x35, 0x70, 0x07, 0xc6, 0x32, 0xf3, 0xdb, 0xb4, 0x84, 0x89, 0x92, 0x4d, 0x55, 0x2b, 0x08, 0xfe, 0x0c, 0x35, 0x3a, 0x0d, 0x4a, 0x1f, 0x00, 0xac, 0xda, 0x2c, 0x46, 0x3a, 0xfb, 0xea, 0x67, 0xc5, 0xe8, 0xd2, 0x87, 0x7c, 0x5e, 0x3b, 0xc3, 0x97, 0xa6, 0x59, 0x94, 0x9e, 0xf8, 0x02, 0x1e, 0x95, 0x4e, 0x0a, 0x12, 0x27, 0x4e,
40*f0865ec9SKyle Evans  };
41*f0865ec9SKyle Evans static const u8 ed448_2_test_vectors_expected_sig[] = {
42*f0865ec9SKyle Evans 	0x26, 0xb8, 0xf9, 0x17, 0x27, 0xbd, 0x62, 0x89, 0x7a, 0xf1, 0x5e, 0x41, 0xeb, 0x43, 0xc3, 0x77, 0xef, 0xb9, 0xc6, 0x10, 0xd4, 0x8f, 0x23, 0x35, 0xcb, 0x0b, 0xd0, 0x08, 0x78, 0x10, 0xf4, 0x35, 0x25, 0x41, 0xb1, 0x43, 0xc4, 0xb9, 0x81, 0xb7, 0xe1, 0x8f, 0x62, 0xde, 0x8c, 0xcd, 0xf6, 0x33, 0xfc, 0x1b, 0xf0, 0x37, 0xab, 0x7c, 0xd7, 0x79, 0x80, 0x5e, 0x0d, 0xbc, 0xc0, 0xaa, 0xe1, 0xcb, 0xce, 0xe1, 0xaf, 0xb2, 0xe0, 0x27, 0xdf, 0x36, 0xbc, 0x04, 0xdc, 0xec, 0xbf, 0x15, 0x43, 0x36, 0xc1, 0x9f, 0x0a, 0xf7, 0xe0, 0xa6, 0x47, 0x29, 0x05, 0xe7, 0x99, 0xf1, 0x95, 0x3d, 0x2a, 0x0f, 0xf3, 0x34, 0x8a, 0xb2, 0x1a, 0xa4, 0xad, 0xaf, 0xd1, 0xd2, 0x34, 0x44, 0x1c, 0xf8, 0x07, 0xc0, 0x3a, 0x00,
43*f0865ec9SKyle Evans  };
44*f0865ec9SKyle Evans static const ec_test_case ed448_2_test_case = {
45*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 2",
46*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
47*f0865ec9SKyle Evans         .priv_key = ed448_2_test_vectors_priv_key,
48*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_2_test_vectors_priv_key),
49*f0865ec9SKyle Evans         .nn_random = NULL,
50*f0865ec9SKyle Evans         .hash_type = SHAKE256,
51*f0865ec9SKyle Evans         .msg = "\x03",
52*f0865ec9SKyle Evans         .msglen = 1,
53*f0865ec9SKyle Evans         .sig_type = EDDSA448,
54*f0865ec9SKyle Evans         .exp_sig = ed448_2_test_vectors_expected_sig,
55*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_2_test_vectors_expected_sig),
56*f0865ec9SKyle Evans 	.adata = NULL,
57*f0865ec9SKyle Evans 	.adata_len = 0
58*f0865ec9SKyle Evans };
59*f0865ec9SKyle Evans 
60*f0865ec9SKyle Evans /************************************************/
61*f0865ec9SKyle Evans static const u8 ed448_3_test_vectors_priv_key[] = {
62*f0865ec9SKyle Evans 	0xcd, 0x23, 0xd2, 0x4f, 0x71, 0x42, 0x74, 0xe7, 0x44, 0x34, 0x32, 0x37, 0xb9, 0x32, 0x90, 0xf5, 0x11, 0xf6, 0x42, 0x5f, 0x98, 0xe6, 0x44, 0x59, 0xff, 0x20, 0x3e, 0x89, 0x85, 0x08, 0x3f, 0xfd, 0xf6, 0x05, 0x00, 0x55, 0x3a, 0xbc, 0x0e, 0x05, 0xcd, 0x02, 0x18, 0x4b, 0xdb, 0x89, 0xc4, 0xcc, 0xd6, 0x7e, 0x18, 0x79, 0x51, 0x26, 0x7e, 0xb3, 0x28,
63*f0865ec9SKyle Evans  };
64*f0865ec9SKyle Evans static const u8 ed448_3_test_vectors_expected_sig[] = {
65*f0865ec9SKyle Evans 	0x1f, 0x0a, 0x88, 0x88, 0xce, 0x25, 0xe8, 0xd4, 0x58, 0xa2, 0x11, 0x30, 0x87, 0x9b, 0x84, 0x0a, 0x90, 0x89, 0xd9, 0x99, 0xaa, 0xba, 0x03, 0x9e, 0xaf, 0x3e, 0x3a, 0xfa, 0x09, 0x0a, 0x09, 0xd3, 0x89, 0xdb, 0xa8, 0x2c, 0x4f, 0xf2, 0xae, 0x8a, 0xc5, 0xcd, 0xfb, 0x7c, 0x55, 0xe9, 0x4d, 0x5d, 0x96, 0x1a, 0x29, 0xfe, 0x01, 0x09, 0x94, 0x1e, 0x00, 0xb8, 0xdb, 0xde, 0xea, 0x6d, 0x3b, 0x05, 0x10, 0x68, 0xdf, 0x72, 0x54, 0xc0, 0xcd, 0xc1, 0x29, 0xcb, 0xe6, 0x2d, 0xb2, 0xdc, 0x95, 0x7d, 0xbb, 0x47, 0xb5, 0x1f, 0xd3, 0xf2, 0x13, 0xfb, 0x86, 0x98, 0xf0, 0x64, 0x77, 0x42, 0x50, 0xa5, 0x02, 0x89, 0x61, 0xc9, 0xbf, 0x8f, 0xfd, 0x97, 0x3f, 0xe5, 0xd5, 0xc2, 0x06, 0x49, 0x2b, 0x14, 0x0e, 0x00,
66*f0865ec9SKyle Evans  };
67*f0865ec9SKyle Evans static const ec_test_case ed448_3_test_case = {
68*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 3",
69*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
70*f0865ec9SKyle Evans         .priv_key = ed448_3_test_vectors_priv_key,
71*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_3_test_vectors_priv_key),
72*f0865ec9SKyle Evans         .nn_random = NULL,
73*f0865ec9SKyle Evans         .hash_type = SHAKE256,
74*f0865ec9SKyle Evans         .msg = "\x0c\x3e\x54\x40\x74\xec\x63\xb0\x26\x5e\x0c",
75*f0865ec9SKyle Evans         .msglen = 11,
76*f0865ec9SKyle Evans         .sig_type = EDDSA448,
77*f0865ec9SKyle Evans         .exp_sig = ed448_3_test_vectors_expected_sig,
78*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_3_test_vectors_expected_sig),
79*f0865ec9SKyle Evans 	.adata = NULL,
80*f0865ec9SKyle Evans 	.adata_len = 0
81*f0865ec9SKyle Evans };
82*f0865ec9SKyle Evans 
83*f0865ec9SKyle Evans /************************************************/
84*f0865ec9SKyle Evans static const u8 ed448_4_test_vectors_priv_key[] = {
85*f0865ec9SKyle Evans 	0x25, 0x8c, 0xdd, 0x4a, 0xda, 0x32, 0xed, 0x9c, 0x9f, 0xf5, 0x4e, 0x63, 0x75, 0x6a, 0xe5, 0x82, 0xfb, 0x8f, 0xab, 0x2a, 0xc7, 0x21, 0xf2, 0xc8, 0xe6, 0x76, 0xa7, 0x27, 0x68, 0x51, 0x3d, 0x93, 0x9f, 0x63, 0xdd, 0xdb, 0x55, 0x60, 0x91, 0x33, 0xf2, 0x9a, 0xdf, 0x86, 0xec, 0x99, 0x29, 0xdc, 0xcb, 0x52, 0xc1, 0xc5, 0xfd, 0x2f, 0xf7, 0xe2, 0x1b,
86*f0865ec9SKyle Evans  };
87*f0865ec9SKyle Evans static const u8 ed448_4_test_vectors_expected_sig[] = {
88*f0865ec9SKyle Evans 	0x7e, 0xee, 0xab, 0x7c, 0x4e, 0x50, 0xfb, 0x79, 0x9b, 0x41, 0x8e, 0xe5, 0xe3, 0x19, 0x7f, 0xf6, 0xbf, 0x15, 0xd4, 0x3a, 0x14, 0xc3, 0x43, 0x89, 0xb5, 0x9d, 0xd1, 0xa7, 0xb1, 0xb8, 0x5b, 0x4a, 0xe9, 0x04, 0x38, 0xac, 0xa6, 0x34, 0xbe, 0xa4, 0x5e, 0x3a, 0x26, 0x95, 0xf1, 0x27, 0x0f, 0x07, 0xfd, 0xcd, 0xf7, 0xc6, 0x2b, 0x8e, 0xfe, 0xaf, 0x00, 0xb4, 0x5c, 0x2c, 0x96, 0xba, 0x45, 0x7e, 0xb1, 0xa8, 0xbf, 0x07, 0x5a, 0x3d, 0xb2, 0x8e, 0x5c, 0x24, 0xf6, 0xb9, 0x23, 0xed, 0x4a, 0xd7, 0x47, 0xc3, 0xc9, 0xe0, 0x3c, 0x70, 0x79, 0xef, 0xb8, 0x7c, 0xb1, 0x10, 0xd3, 0xa9, 0x98, 0x61, 0xe7, 0x20, 0x03, 0xcb, 0xae, 0x6d, 0x6b, 0x8b, 0x82, 0x7e, 0x4e, 0x6c, 0x14, 0x30, 0x64, 0xff, 0x3c, 0x00,
89*f0865ec9SKyle Evans  };
90*f0865ec9SKyle Evans static const u8 ed448_4_test_vectors_message[] = {
91*f0865ec9SKyle Evans 	0x64, 0xa6, 0x5f, 0x3c, 0xde, 0xdc, 0xdd, 0x66, 0x81, 0x1e, 0x29, 0x15,
92*f0865ec9SKyle Evans  };
93*f0865ec9SKyle Evans static const ec_test_case ed448_4_test_case = {
94*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 4",
95*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
96*f0865ec9SKyle Evans         .priv_key = ed448_4_test_vectors_priv_key,
97*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_4_test_vectors_priv_key),
98*f0865ec9SKyle Evans         .nn_random = NULL,
99*f0865ec9SKyle Evans         .hash_type = SHAKE256,
100*f0865ec9SKyle Evans         .msg = (const char *)ed448_4_test_vectors_message,
101*f0865ec9SKyle Evans         .msglen = sizeof(ed448_4_test_vectors_message),
102*f0865ec9SKyle Evans         .sig_type = EDDSA448,
103*f0865ec9SKyle Evans         .exp_sig = ed448_4_test_vectors_expected_sig,
104*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_4_test_vectors_expected_sig),
105*f0865ec9SKyle Evans 	.adata = NULL,
106*f0865ec9SKyle Evans 	.adata_len = 0
107*f0865ec9SKyle Evans };
108*f0865ec9SKyle Evans 
109*f0865ec9SKyle Evans /************************************************/
110*f0865ec9SKyle Evans static const u8 ed448_5_test_vectors_priv_key[] = {
111*f0865ec9SKyle Evans 	0x7e, 0xf4, 0xe8, 0x45, 0x44, 0x23, 0x67, 0x52, 0xfb, 0xb5, 0x6b, 0x8f, 0x31, 0xa2, 0x3a, 0x10, 0xe4, 0x28, 0x14, 0xf5, 0xf5, 0x5c, 0xa0, 0x37, 0xcd, 0xcc, 0x11, 0xc6, 0x4c, 0x9a, 0x3b, 0x29, 0x49, 0xc1, 0xbb, 0x60, 0x70, 0x03, 0x14, 0x61, 0x17, 0x32, 0xa6, 0xc2, 0xfe, 0xa9, 0x8e, 0xeb, 0xc0, 0x26, 0x6a, 0x11, 0xa9, 0x39, 0x70, 0x10, 0x0e,
112*f0865ec9SKyle Evans  };
113*f0865ec9SKyle Evans static const u8 ed448_5_test_vectors_expected_sig[] = {
114*f0865ec9SKyle Evans 	0x6a, 0x12, 0x06, 0x6f, 0x55, 0x33, 0x1b, 0x6c, 0x22, 0xac, 0xd5, 0xd5, 0xbf, 0xc5, 0xd7, 0x12, 0x28, 0xfb, 0xda, 0x80, 0xae, 0x8d, 0xec, 0x26, 0xbd, 0xd3, 0x06, 0x74, 0x3c, 0x50, 0x27, 0xcb, 0x48, 0x90, 0x81, 0x0c, 0x16, 0x2c, 0x02, 0x74, 0x68, 0x67, 0x5e, 0xcf, 0x64, 0x5a, 0x83, 0x17, 0x6c, 0x0d, 0x73, 0x23, 0xa2, 0xcc, 0xde, 0x2d, 0x80, 0xef, 0xe5, 0xa1, 0x26, 0x8e, 0x8a, 0xca, 0x1d, 0x6f, 0xbc, 0x19, 0x4d, 0x3f, 0x77, 0xc4, 0x49, 0x86, 0xeb, 0x4a, 0xb4, 0x17, 0x79, 0x19, 0xad, 0x8b, 0xec, 0x33, 0xeb, 0x47, 0xbb, 0xb5, 0xfc, 0x6e, 0x28, 0x19, 0x6f, 0xd1, 0xca, 0xf5, 0x6b, 0x4e, 0x7e, 0x0b, 0xa5, 0x51, 0x92, 0x34, 0xd0, 0x47, 0x15, 0x5a, 0xc7, 0x27, 0xa1, 0x05, 0x31, 0x00,
115*f0865ec9SKyle Evans  };
116*f0865ec9SKyle Evans static const u8 ed448_5_test_vectors_message[] = {
117*f0865ec9SKyle Evans 	0x64, 0xa6, 0x5f, 0x3c, 0xde, 0xdc, 0xdd, 0x66, 0x81, 0x1e, 0x29, 0x15, 0xe7,
118*f0865ec9SKyle Evans  };
119*f0865ec9SKyle Evans static const ec_test_case ed448_5_test_case = {
120*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 5",
121*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
122*f0865ec9SKyle Evans         .priv_key = ed448_5_test_vectors_priv_key,
123*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_5_test_vectors_priv_key),
124*f0865ec9SKyle Evans         .nn_random = NULL,
125*f0865ec9SKyle Evans         .hash_type = SHAKE256,
126*f0865ec9SKyle Evans         .msg = (const char *)ed448_5_test_vectors_message,
127*f0865ec9SKyle Evans         .msglen = sizeof(ed448_5_test_vectors_message),
128*f0865ec9SKyle Evans         .sig_type = EDDSA448,
129*f0865ec9SKyle Evans         .exp_sig = ed448_5_test_vectors_expected_sig,
130*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_5_test_vectors_expected_sig),
131*f0865ec9SKyle Evans 	.adata = NULL,
132*f0865ec9SKyle Evans 	.adata_len = 0
133*f0865ec9SKyle Evans };
134*f0865ec9SKyle Evans 
135*f0865ec9SKyle Evans /************************************************/
136*f0865ec9SKyle Evans static const u8 ed448_6_test_vectors_priv_key[] = {
137*f0865ec9SKyle Evans 	0xd6, 0x5d, 0xf3, 0x41, 0xad, 0x13, 0xe0, 0x08, 0x56, 0x76, 0x88, 0xba, 0xed, 0xda, 0x8e, 0x9d, 0xcd, 0xc1, 0x7d, 0xc0, 0x24, 0x97, 0x4e, 0xa5, 0xb4, 0x22, 0x7b, 0x65, 0x30, 0xe3, 0x39, 0xbf, 0xf2, 0x1f, 0x99, 0xe6, 0x8c, 0xa6, 0x96, 0x8f, 0x3c, 0xca, 0x6d, 0xfe, 0x0f, 0xb9, 0xf4, 0xfa, 0xb4, 0xfa, 0x13, 0x5d, 0x55, 0x42, 0xea, 0x3f, 0x01,
138*f0865ec9SKyle Evans  };
139*f0865ec9SKyle Evans static const u8 ed448_6_test_vectors_expected_sig[] = {
140*f0865ec9SKyle Evans 	0x55, 0x4b, 0xc2, 0x48, 0x08, 0x60, 0xb4, 0x9e, 0xab, 0x85, 0x32, 0xd2, 0xa5, 0x33, 0xb7, 0xd5, 0x78, 0xef, 0x47, 0x3e, 0xeb, 0x58, 0xc9, 0x8b, 0xb2, 0xd0, 0xe1, 0xce, 0x48, 0x8a, 0x98, 0xb1, 0x8d, 0xfd, 0xe9, 0xb9, 0xb9, 0x07, 0x75, 0xe6, 0x7f, 0x47, 0xd4, 0xa1, 0xc3, 0x48, 0x20, 0x58, 0xef, 0xc9, 0xf4, 0x0d, 0x2c, 0xa0, 0x33, 0xa0, 0x80, 0x1b, 0x63, 0xd4, 0x5b, 0x3b, 0x72, 0x2e, 0xf5, 0x52, 0xba, 0xd3, 0xb4, 0xcc, 0xb6, 0x67, 0xda, 0x35, 0x01, 0x92, 0xb6, 0x1c, 0x50, 0x8c, 0xf7, 0xb6, 0xb5, 0xad, 0xad, 0xc2, 0xc8, 0xd9, 0xa4, 0x46, 0xef, 0x00, 0x3f, 0xb0, 0x5c, 0xba, 0x5f, 0x30, 0xe8, 0x8e, 0x36, 0xec, 0x27, 0x03, 0xb3, 0x49, 0xca, 0x22, 0x9c, 0x26, 0x70, 0x83, 0x39, 0x00,
141*f0865ec9SKyle Evans  };
142*f0865ec9SKyle Evans static const u8 ed448_6_test_vectors_message[] = {
143*f0865ec9SKyle Evans 	0xbd, 0x0f, 0x6a, 0x37, 0x47, 0xcd, 0x56, 0x1b, 0xdd, 0xdf, 0x46, 0x40, 0xa3, 0x32, 0x46, 0x1a, 0x4a, 0x30, 0xa1, 0x2a, 0x43, 0x4c, 0xd0, 0xbf, 0x40, 0xd7, 0x66, 0xd9, 0xc6, 0xd4, 0x58, 0xe5, 0x51, 0x22, 0x04, 0xa3, 0x0c, 0x17, 0xd1, 0xf5, 0x0b, 0x50, 0x79, 0x63, 0x1f, 0x64, 0xeb, 0x31, 0x12, 0x18, 0x2d, 0xa3, 0x00, 0x58, 0x35, 0x46, 0x11, 0x13, 0x71, 0x8d, 0x1a, 0x5e, 0xf9, 0x44,
144*f0865ec9SKyle Evans  };
145*f0865ec9SKyle Evans static const ec_test_case ed448_6_test_case = {
146*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 6",
147*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
148*f0865ec9SKyle Evans         .priv_key = ed448_6_test_vectors_priv_key,
149*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_6_test_vectors_priv_key),
150*f0865ec9SKyle Evans         .nn_random = NULL,
151*f0865ec9SKyle Evans         .hash_type = SHAKE256,
152*f0865ec9SKyle Evans         .msg = (const char *)ed448_6_test_vectors_message,
153*f0865ec9SKyle Evans         .msglen = sizeof(ed448_6_test_vectors_message),
154*f0865ec9SKyle Evans         .sig_type = EDDSA448,
155*f0865ec9SKyle Evans         .exp_sig = ed448_6_test_vectors_expected_sig,
156*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_6_test_vectors_expected_sig),
157*f0865ec9SKyle Evans 	.adata = NULL,
158*f0865ec9SKyle Evans 	.adata_len = 0
159*f0865ec9SKyle Evans };
160*f0865ec9SKyle Evans 
161*f0865ec9SKyle Evans /************************************************/
162*f0865ec9SKyle Evans static const u8 ed448_7_test_vectors_priv_key[] = {
163*f0865ec9SKyle Evans 	0x2e, 0xc5, 0xfe, 0x3c, 0x17, 0x04, 0x5a, 0xbd, 0xb1, 0x36, 0xa5, 0xe6, 0xa9, 0x13, 0xe3, 0x2a, 0xb7, 0x5a, 0xe6, 0x8b, 0x53, 0xd2, 0xfc, 0x14, 0x9b, 0x77, 0xe5, 0x04, 0x13, 0x2d, 0x37, 0x56, 0x9b, 0x7e, 0x76, 0x6b, 0xa7, 0x4a, 0x19, 0xbd, 0x61, 0x62, 0x34, 0x3a, 0x21, 0xc8, 0x59, 0x0a, 0xa9, 0xce, 0xbc, 0xa9, 0x01, 0x4c, 0x63, 0x6d, 0xf5,
164*f0865ec9SKyle Evans  };
165*f0865ec9SKyle Evans static const u8 ed448_7_test_vectors_expected_sig[] = {
166*f0865ec9SKyle Evans 	0xc6, 0x50, 0xdd, 0xbb, 0x06, 0x01, 0xc1, 0x9c, 0xa1, 0x14, 0x39, 0xe1, 0x64, 0x0d, 0xd9, 0x31, 0xf4, 0x3c, 0x51, 0x8e, 0xa5, 0xbe, 0xa7, 0x0d, 0x3d, 0xcd, 0xe5, 0xf4, 0x19, 0x1f, 0xe5, 0x3f, 0x00, 0xcf, 0x96, 0x65, 0x46, 0xb7, 0x2b, 0xcc, 0x7d, 0x58, 0xbe, 0x2b, 0x9b, 0xad, 0xef, 0x28, 0x74, 0x39, 0x54, 0xe3, 0xa4, 0x4a, 0x23, 0xf8, 0x80, 0xe8, 0xd4, 0xf1, 0xcf, 0xce, 0x2d, 0x7a, 0x61, 0x45, 0x2d, 0x26, 0xda, 0x05, 0x89, 0x6f, 0x0a, 0x50, 0xda, 0x66, 0xa2, 0x39, 0xa8, 0xa1, 0x88, 0xb6, 0xd8, 0x25, 0xb3, 0x30, 0x5a, 0xd7, 0x7b, 0x73, 0xfb, 0xac, 0x08, 0x36, 0xec, 0xc6, 0x09, 0x87, 0xfd, 0x08, 0x52, 0x7c, 0x1a, 0x8e, 0x80, 0xd5, 0x82, 0x3e, 0x65, 0xca, 0xfe, 0x2a, 0x3d, 0x00,
167*f0865ec9SKyle Evans  };
168*f0865ec9SKyle Evans static const u8 ed448_7_test_vectors_message[] = {
169*f0865ec9SKyle Evans 	0x15, 0x77, 0x75, 0x32, 0xb0, 0xbd, 0xd0, 0xd1, 0x38, 0x9f, 0x63, 0x6c, 0x5f, 0x6b, 0x9b, 0xa7, 0x34, 0xc9, 0x0a, 0xf5, 0x72, 0x87, 0x7e, 0x2d, 0x27, 0x2d, 0xd0, 0x78, 0xaa, 0x1e, 0x56, 0x7c, 0xfa, 0x80, 0xe1, 0x29, 0x28, 0xbb, 0x54, 0x23, 0x30, 0xe8, 0x40, 0x9f, 0x31, 0x74, 0x50, 0x41, 0x07, 0xec, 0xd5, 0xef, 0xac, 0x61, 0xae, 0x75, 0x04, 0xda, 0xbe, 0x2a, 0x60, 0x2e, 0xde, 0x89, 0xe5, 0xcc, 0xa6, 0x25, 0x7a, 0x7c, 0x77, 0xe2, 0x7a, 0x70, 0x2b, 0x3a, 0xe3, 0x9f, 0xc7, 0x69, 0xfc, 0x54, 0xf2, 0x39, 0x5a, 0xe6, 0xa1, 0x17, 0x8c, 0xab, 0x47, 0x38, 0xe5, 0x43, 0x07, 0x2f, 0xc1, 0xc1, 0x77, 0xfe, 0x71, 0xe9, 0x2e, 0x25, 0xbf, 0x03, 0xe4, 0xec, 0xb7, 0x2f, 0x47, 0xb6, 0x4d, 0x04, 0x65, 0xaa, 0xea, 0x4c, 0x7f, 0xad, 0x37, 0x25, 0x36, 0xc8, 0xba, 0x51, 0x6a, 0x60, 0x39, 0xc3, 0xc2, 0xa3, 0x9f, 0x0e, 0x4d, 0x83, 0x2b, 0xe4, 0x32, 0xdf, 0xa9, 0xa7, 0x06, 0xa6, 0xe5, 0xc7, 0xe1, 0x9f, 0x39, 0x79, 0x64, 0xca, 0x42, 0x58, 0x00, 0x2f, 0x7c, 0x05, 0x41, 0xb5, 0x90, 0x31, 0x6d, 0xbc, 0x56, 0x22, 0xb6, 0xb2, 0xa6, 0xfe, 0x7a, 0x4a, 0xbf, 0xfd, 0x96, 0x10, 0x5e, 0xca, 0x76, 0xea, 0x7b, 0x98, 0x81, 0x6a, 0xf0, 0x74, 0x8c, 0x10, 0xdf, 0x04, 0x8c, 0xe0, 0x12, 0xd9, 0x01, 0x01, 0x5a, 0x51, 0xf1, 0x89, 0xf3, 0x88, 0x81, 0x45, 0xc0, 0x36, 0x50, 0xaa, 0x23, 0xce, 0x89, 0x4c, 0x3b, 0xd8, 0x89, 0xe0, 0x30, 0xd5, 0x65, 0x07, 0x1c, 0x59, 0xf4, 0x09, 0xa9, 0x98, 0x1b, 0x51, 0x87, 0x8f, 0xd6, 0xfc, 0x11, 0x06, 0x24, 0xdc, 0xbc, 0xde, 0x0b, 0xf7, 0xa6, 0x9c, 0xcc, 0xe3, 0x8f, 0xab, 0xdf, 0x86, 0xf3, 0xbe, 0xf6, 0x04, 0x48, 0x19, 0xde, 0x11,
170*f0865ec9SKyle Evans  };
171*f0865ec9SKyle Evans static const ec_test_case ed448_7_test_case = {
172*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 7",
173*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
174*f0865ec9SKyle Evans         .priv_key = ed448_7_test_vectors_priv_key,
175*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_7_test_vectors_priv_key),
176*f0865ec9SKyle Evans         .nn_random = NULL,
177*f0865ec9SKyle Evans         .hash_type = SHAKE256,
178*f0865ec9SKyle Evans         .msg = (const char *)ed448_7_test_vectors_message,
179*f0865ec9SKyle Evans         .msglen = sizeof(ed448_7_test_vectors_message),
180*f0865ec9SKyle Evans         .sig_type = EDDSA448,
181*f0865ec9SKyle Evans         .exp_sig = ed448_7_test_vectors_expected_sig,
182*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_7_test_vectors_expected_sig),
183*f0865ec9SKyle Evans 	.adata = NULL,
184*f0865ec9SKyle Evans 	.adata_len = 0
185*f0865ec9SKyle Evans };
186*f0865ec9SKyle Evans 
187*f0865ec9SKyle Evans /************************************************/
188*f0865ec9SKyle Evans static const u8 ed448_8_test_vectors_priv_key[] = {
189*f0865ec9SKyle Evans 0x87, 0x2d, 0x09, 0x37, 0x80, 0xf5, 0xd3, 0x73, 0x0d, 0xf7, 0xc2, 0x12, 0x66, 0x4b, 0x37, 0xb8, 0xa0, 0xf2, 0x4f, 0x56, 0x81, 0x0d, 0xaa, 0x83, 0x82, 0xcd, 0x4f, 0xa3, 0xf7, 0x76, 0x34, 0xec, 0x44, 0xdc, 0x54, 0xf1, 0xc2, 0xed, 0x9b, 0xea, 0x86, 0xfa, 0xfb, 0x76, 0x32, 0xd8, 0xbe, 0x19, 0x9e, 0xa1, 0x65, 0xf5, 0xad, 0x55, 0xdd, 0x9c, 0xe8,
190*f0865ec9SKyle Evans  };
191*f0865ec9SKyle Evans static const u8 ed448_8_test_vectors_expected_sig[] = {
192*f0865ec9SKyle Evans 0xe3, 0x01, 0x34, 0x5a, 0x41, 0xa3, 0x9a, 0x4d, 0x72, 0xff, 0xf8, 0xdf, 0x69, 0xc9, 0x80, 0x75, 0xa0, 0xcc, 0x08, 0x2b, 0x80, 0x2f, 0xc9, 0xb2, 0xb6, 0xbc, 0x50, 0x3f, 0x92, 0x6b, 0x65, 0xbd, 0xdf, 0x7f, 0x4c, 0x8f, 0x1c, 0xb4, 0x9f, 0x63, 0x96, 0xaf, 0xc8, 0xa7, 0x0a, 0xbe, 0x6d, 0x8a, 0xef, 0x0d, 0xb4, 0x78, 0xd4, 0xc6, 0xb2, 0x97, 0x00, 0x76, 0xc6, 0xa0, 0x48, 0x4f, 0xe7, 0x6d, 0x76, 0xb3, 0xa9, 0x76, 0x25, 0xd7, 0x9f, 0x1c, 0xe2, 0x40, 0xe7, 0xc5, 0x76, 0x75, 0x0d, 0x29, 0x55, 0x28, 0x28, 0x6f, 0x71, 0x9b, 0x41, 0x3d, 0xe9, 0xad, 0xa3, 0xe8, 0xeb, 0x78, 0xed, 0x57, 0x36, 0x03, 0xce, 0x30, 0xd8, 0xbb, 0x76, 0x17, 0x85, 0xdc, 0x30, 0xdb, 0xc3, 0x20, 0x86, 0x9e, 0x1a, 0x00,
193*f0865ec9SKyle Evans  };
194*f0865ec9SKyle Evans static const u8 ed448_8_test_vectors_message[] = {
195*f0865ec9SKyle Evans 0x6d, 0xdf, 0x80, 0x2e, 0x1a, 0xae, 0x49, 0x86, 0x93, 0x5f, 0x7f, 0x98, 0x1b, 0xa3, 0xf0, 0x35,
196*f0865ec9SKyle Evans 0x1d, 0x62, 0x73, 0xc0, 0xa0, 0xc2, 0x2c, 0x9c, 0x0e, 0x83, 0x39, 0x16, 0x8e, 0x67, 0x54, 0x12,
197*f0865ec9SKyle Evans 0xa3, 0xde, 0xbf, 0xaf, 0x43, 0x5e, 0xd6, 0x51, 0x55, 0x80, 0x07, 0xdb, 0x43, 0x84, 0xb6, 0x50,
198*f0865ec9SKyle Evans 0xfc, 0xc0, 0x7e, 0x3b, 0x58, 0x6a, 0x27, 0xa4, 0xf7, 0xa0, 0x0a, 0xc8, 0xa6, 0xfe, 0xc2, 0xcd,
199*f0865ec9SKyle Evans 0x86, 0xae, 0x4b, 0xf1, 0x57, 0x0c, 0x41, 0xe6, 0xa4, 0x0c, 0x93, 0x1d, 0xb2, 0x7b, 0x2f, 0xaa,
200*f0865ec9SKyle Evans 0x15, 0xa8, 0xce, 0xdd, 0x52, 0xcf, 0xf7, 0x36, 0x2c, 0x4e, 0x6e, 0x23, 0xda, 0xec, 0x0f, 0xbc,
201*f0865ec9SKyle Evans 0x3a, 0x79, 0xb6, 0x80, 0x6e, 0x31, 0x6e, 0xfc, 0xc7, 0xb6, 0x81, 0x19, 0xbf, 0x46, 0xbc, 0x76,
202*f0865ec9SKyle Evans 0xa2, 0x60, 0x67, 0xa5, 0x3f, 0x29, 0x6d, 0xaf, 0xdb, 0xdc, 0x11, 0xc7, 0x7f, 0x77, 0x77, 0xe9,
203*f0865ec9SKyle Evans 0x72, 0x66, 0x0c, 0xf4, 0xb6, 0xa9, 0xb3, 0x69, 0xa6, 0x66, 0x5f, 0x02, 0xe0, 0xcc, 0x9b, 0x6e,
204*f0865ec9SKyle Evans 0xdf, 0xad, 0x13, 0x6b, 0x4f, 0xab, 0xe7, 0x23, 0xd2, 0x81, 0x3d, 0xb3, 0x13, 0x6c, 0xfd, 0xe9,
205*f0865ec9SKyle Evans 0xb6, 0xd0, 0x44, 0x32, 0x2f, 0xee, 0x29, 0x47, 0x95, 0x2e, 0x03, 0x1b, 0x73, 0xab, 0x5c, 0x60,
206*f0865ec9SKyle Evans 0x33, 0x49, 0xb3, 0x07, 0xbd, 0xc2, 0x7b, 0xc6, 0xcb, 0x8b, 0x8b, 0xbd, 0x7b, 0xd3, 0x23, 0x21,
207*f0865ec9SKyle Evans 0x9b, 0x80, 0x33, 0xa5, 0x81, 0xb5, 0x9e, 0xad, 0xeb, 0xb0, 0x9b, 0x3c, 0x4f, 0x3d, 0x22, 0x77,
208*f0865ec9SKyle Evans 0xd4, 0xf0, 0x34, 0x36, 0x24, 0xac, 0xc8, 0x17, 0x80, 0x47, 0x28, 0xb2, 0x5a, 0xb7, 0x97, 0x17,
209*f0865ec9SKyle Evans 0x2b, 0x4c, 0x5c, 0x21, 0xa2, 0x2f, 0x9c, 0x78, 0x39, 0xd6, 0x43, 0x00, 0x23, 0x2e, 0xb6, 0x6e,
210*f0865ec9SKyle Evans 0x53, 0xf3, 0x1c, 0x72, 0x3f, 0xa3, 0x7f, 0xe3, 0x87, 0xc7, 0xd3, 0xe5, 0x0b, 0xdf, 0x98, 0x13,
211*f0865ec9SKyle Evans 0xa3, 0x0e, 0x5b, 0xb1, 0x2c, 0xf4, 0xcd, 0x93, 0x0c, 0x40, 0xcf, 0xb4, 0xe1, 0xfc, 0x62, 0x25,
212*f0865ec9SKyle Evans 0x92, 0xa4, 0x95, 0x88, 0x79, 0x44, 0x94, 0xd5, 0x6d, 0x24, 0xea, 0x4b, 0x40, 0xc8, 0x9f, 0xc0,
213*f0865ec9SKyle Evans 0x59, 0x6c, 0xc9, 0xeb, 0xb9, 0x61, 0xc8, 0xcb, 0x10, 0xad, 0xde, 0x97, 0x6a, 0x5d, 0x60, 0x2b,
214*f0865ec9SKyle Evans 0x1c, 0x3f, 0x85, 0xb9, 0xb9, 0xa0, 0x01, 0xed, 0x3c, 0x6a, 0x4d, 0x3b, 0x14, 0x37, 0xf5, 0x20,
215*f0865ec9SKyle Evans 0x96, 0xcd, 0x19, 0x56, 0xd0, 0x42, 0xa5, 0x97, 0xd5, 0x61, 0xa5, 0x96, 0xec, 0xd3, 0xd1, 0x73,
216*f0865ec9SKyle Evans 0x5a, 0x8d, 0x57, 0x0e, 0xa0, 0xec, 0x27, 0x22, 0x5a, 0x2c, 0x4a, 0xaf, 0xf2, 0x63, 0x06, 0xd1,
217*f0865ec9SKyle Evans 0x52, 0x6c, 0x1a, 0xf3, 0xca, 0x6d, 0x9c, 0xf5, 0xa2, 0xc9, 0x8f, 0x47, 0xe1, 0xc4, 0x6d, 0xb9,
218*f0865ec9SKyle Evans 0xa3, 0x32, 0x34, 0xcf, 0xd4, 0xd8, 0x1f, 0x2c, 0x98, 0x53, 0x8a, 0x09, 0xeb, 0xe7, 0x69, 0x98,
219*f0865ec9SKyle Evans 0xd0, 0xd8, 0xfd, 0x25, 0x99, 0x7c, 0x7d, 0x25, 0x5c, 0x6d, 0x66, 0xec, 0xe6, 0xfa, 0x56, 0xf1,
220*f0865ec9SKyle Evans 0x11, 0x44, 0x95, 0x0f, 0x02, 0x77, 0x95, 0xe6, 0x53, 0x00, 0x8f, 0x4b, 0xd7, 0xca, 0x2d, 0xee,
221*f0865ec9SKyle Evans 0x85, 0xd8, 0xe9, 0x0f, 0x3d, 0xc3, 0x15, 0x13, 0x0c, 0xe2, 0xa0, 0x03, 0x75, 0xa3, 0x18, 0xc7,
222*f0865ec9SKyle Evans 0xc3, 0xd9, 0x7b, 0xe2, 0xc8, 0xce, 0x5b, 0x6d, 0xb4, 0x1a, 0x62, 0x54, 0xff, 0x26, 0x4f, 0xa6,
223*f0865ec9SKyle Evans 0x15, 0x5b, 0xae, 0xe3, 0xb0, 0x77, 0x3c, 0x0f, 0x49, 0x7c, 0x57, 0x3f, 0x19, 0xbb, 0x4f, 0x42,
224*f0865ec9SKyle Evans 0x40, 0x28, 0x1f, 0x0b, 0x1f, 0x4f, 0x7b, 0xe8, 0x57, 0xa4, 0xe5, 0x9d, 0x41, 0x6c, 0x06, 0xb4,
225*f0865ec9SKyle Evans 0xc5, 0x0f, 0xa0, 0x9e, 0x18, 0x10, 0xdd, 0xc6, 0xb1, 0x46, 0x7b, 0xae, 0xac, 0x5a, 0x36, 0x68,
226*f0865ec9SKyle Evans 0xd1, 0x1b, 0x6e, 0xca, 0xa9, 0x01, 0x44, 0x00, 0x16, 0xf3, 0x89, 0xf8, 0x0a, 0xcc, 0x4d, 0xb9,
227*f0865ec9SKyle Evans 0x77, 0x02, 0x5e, 0x7f, 0x59, 0x24, 0x38, 0x8c, 0x7e, 0x34, 0x0a, 0x73, 0x2e, 0x55, 0x44, 0x40,
228*f0865ec9SKyle Evans 0xe7, 0x65, 0x70, 0xf8, 0xdd, 0x71, 0xb7, 0xd6, 0x40, 0xb3, 0x45, 0x0d, 0x1f, 0xd5, 0xf0, 0x41,
229*f0865ec9SKyle Evans 0x0a, 0x18, 0xf9, 0xa3, 0x49, 0x4f, 0x70, 0x7c, 0x71, 0x7b, 0x79, 0xb4, 0xbf, 0x75, 0xc9, 0x84,
230*f0865ec9SKyle Evans 0x00, 0xb0, 0x96, 0xb2, 0x16, 0x53, 0xb5, 0xd2, 0x17, 0xcf, 0x35, 0x65, 0xc9, 0x59, 0x74, 0x56,
231*f0865ec9SKyle Evans 0xf7, 0x07, 0x03, 0x49, 0x7a, 0x07, 0x87, 0x63, 0x82, 0x9b, 0xc0, 0x1b, 0xb1, 0xcb, 0xc8, 0xfa,
232*f0865ec9SKyle Evans 0x04, 0xea, 0xdc, 0x9a, 0x6e, 0x3f, 0x66, 0x99, 0x58, 0x7a, 0x9e, 0x75, 0xc9, 0x4e, 0x5b, 0xab,
233*f0865ec9SKyle Evans 0x00, 0x36, 0xe0, 0xb2, 0xe7, 0x11, 0x39, 0x2c, 0xff, 0x00, 0x47, 0xd0, 0xd6, 0xb0, 0x5b, 0xd2,
234*f0865ec9SKyle Evans 0xa5, 0x88, 0xbc, 0x10, 0x97, 0x18, 0x95, 0x42, 0x59, 0xf1, 0xd8, 0x66, 0x78, 0xa5, 0x79, 0xa3,
235*f0865ec9SKyle Evans 0x12, 0x0f, 0x19, 0xcf, 0xb2, 0x96, 0x3f, 0x17, 0x7a, 0xeb, 0x70, 0xf2, 0xd4, 0x84, 0x48, 0x26,
236*f0865ec9SKyle Evans 0x26, 0x2e, 0x51, 0xb8, 0x02, 0x71, 0x27, 0x20, 0x68, 0xef, 0x5b, 0x38, 0x56, 0xfa, 0x85, 0x35,
237*f0865ec9SKyle Evans 0xaa, 0x2a, 0x88, 0xb2, 0xd4, 0x1f, 0x2a, 0x0e, 0x2f, 0xda, 0x76, 0x24, 0xc2, 0x85, 0x02, 0x72,
238*f0865ec9SKyle Evans 0xac, 0x4a, 0x2f, 0x56, 0x1f, 0x8f, 0x2f, 0x7a, 0x31, 0x8b, 0xfd, 0x5c, 0xaf, 0x96, 0x96, 0x14,
239*f0865ec9SKyle Evans 0x9e, 0x4a, 0xc8, 0x24, 0xad, 0x34, 0x60, 0x53, 0x8f, 0xdc, 0x25, 0x42, 0x1b, 0xee, 0xc2, 0xcc,
240*f0865ec9SKyle Evans 0x68, 0x18, 0x16, 0x2d, 0x06, 0xbb, 0xed, 0x0c, 0x40, 0xa3, 0x87, 0x19, 0x23, 0x49, 0xdb, 0x67,
241*f0865ec9SKyle Evans 0xa1, 0x18, 0xba, 0xda, 0x6c, 0xd5, 0xab, 0x01, 0x40, 0xee, 0x27, 0x32, 0x04, 0xf6, 0x28, 0xaa,
242*f0865ec9SKyle Evans 0xd1, 0xc1, 0x35, 0xf7, 0x70, 0x27, 0x9a, 0x65, 0x1e, 0x24, 0xd8, 0xc1, 0x4d, 0x75, 0xa6, 0x05,
243*f0865ec9SKyle Evans 0x9d, 0x76, 0xb9, 0x6a, 0x6f, 0xd8, 0x57, 0xde, 0xf5, 0xe0, 0xb3, 0x54, 0xb2, 0x7a, 0xb9, 0x37,
244*f0865ec9SKyle Evans 0xa5, 0x81, 0x5d, 0x16, 0xb5, 0xfa, 0xe4, 0x07, 0xff, 0x18, 0x22, 0x2c, 0x6d, 0x1e, 0xd2, 0x63,
245*f0865ec9SKyle Evans 0xbe, 0x68, 0xc9, 0x5f, 0x32, 0xd9, 0x08, 0xbd, 0x89, 0x5c, 0xd7, 0x62, 0x07, 0xae, 0x72, 0x64,
246*f0865ec9SKyle Evans 0x87, 0x56, 0x7f, 0x9a, 0x67, 0xda, 0xd7, 0x9a, 0xbe, 0xc3, 0x16, 0xf6, 0x83, 0xb1, 0x7f, 0x2d,
247*f0865ec9SKyle Evans 0x02, 0xbf, 0x07, 0xe0, 0xac, 0x8b, 0x5b, 0xc6, 0x16, 0x2c, 0xf9, 0x46, 0x97, 0xb3, 0xc2, 0x7c,
248*f0865ec9SKyle Evans 0xd1, 0xfe, 0xa4, 0x9b, 0x27, 0xf2, 0x3b, 0xa2, 0x90, 0x18, 0x71, 0x96, 0x25, 0x06, 0x52, 0x0c,
249*f0865ec9SKyle Evans 0x39, 0x2d, 0xa8, 0xb6, 0xad, 0x0d, 0x99, 0xf7, 0x01, 0x3f, 0xbc, 0x06, 0xc2, 0xc1, 0x7a, 0x56,
250*f0865ec9SKyle Evans 0x95, 0x00, 0xc8, 0xa7, 0x69, 0x64, 0x81, 0xc1, 0xcd, 0x33, 0xe9, 0xb1, 0x4e, 0x40, 0xb8, 0x2e,
251*f0865ec9SKyle Evans 0x79, 0xa5, 0xf5, 0xdb, 0x82, 0x57, 0x1b, 0xa9, 0x7b, 0xae, 0x3a, 0xd3, 0xe0, 0x47, 0x95, 0x15,
252*f0865ec9SKyle Evans 0xbb, 0x0e, 0x2b, 0x0f, 0x3b, 0xfc, 0xd1, 0xfd, 0x33, 0x03, 0x4e, 0xfc, 0x62, 0x45, 0xed, 0xdd,
253*f0865ec9SKyle Evans 0x7e, 0xe2, 0x08, 0x6d, 0xda, 0xe2, 0x60, 0x0d, 0x8c, 0xa7, 0x3e, 0x21, 0x4e, 0x8c, 0x2b, 0x0b,
254*f0865ec9SKyle Evans 0xdb, 0x2b, 0x04, 0x7c, 0x6a, 0x46, 0x4a, 0x56, 0x2e, 0xd7, 0x7b, 0x73, 0xd2, 0xd8, 0x41, 0xc4,
255*f0865ec9SKyle Evans 0xb3, 0x49, 0x73, 0x55, 0x12, 0x57, 0x71, 0x3b, 0x75, 0x36, 0x32, 0xef, 0xba, 0x34, 0x81, 0x69,
256*f0865ec9SKyle Evans 0xab, 0xc9, 0x0a, 0x68, 0xf4, 0x26, 0x11, 0xa4, 0x01, 0x26, 0xd7, 0xcb, 0x21, 0xb5, 0x86, 0x95,
257*f0865ec9SKyle Evans 0x56, 0x81, 0x86, 0xf7, 0xe5, 0x69, 0xd2, 0xff, 0x0f, 0x9e, 0x74, 0x5d, 0x04, 0x87, 0xdd, 0x2e,
258*f0865ec9SKyle Evans 0xb9, 0x97, 0xca, 0xfc, 0x5a, 0xbf, 0x9d, 0xd1, 0x02, 0xe6, 0x2f, 0xf6, 0x6c, 0xba, 0x87,
259*f0865ec9SKyle Evans  };
260*f0865ec9SKyle Evans static const ec_test_case ed448_8_test_case = {
261*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 8",
262*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
263*f0865ec9SKyle Evans         .priv_key = ed448_8_test_vectors_priv_key,
264*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_8_test_vectors_priv_key),
265*f0865ec9SKyle Evans         .nn_random = NULL,
266*f0865ec9SKyle Evans         .hash_type = SHAKE256,
267*f0865ec9SKyle Evans         .msg = (const char *)ed448_8_test_vectors_message,
268*f0865ec9SKyle Evans         .msglen = sizeof(ed448_8_test_vectors_message),
269*f0865ec9SKyle Evans         .sig_type = EDDSA448,
270*f0865ec9SKyle Evans         .exp_sig = ed448_8_test_vectors_expected_sig,
271*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_8_test_vectors_expected_sig),
272*f0865ec9SKyle Evans 	.adata = NULL,
273*f0865ec9SKyle Evans 	.adata_len = 0
274*f0865ec9SKyle Evans };
275*f0865ec9SKyle Evans 
276*f0865ec9SKyle Evans /************************************************/
277*f0865ec9SKyle Evans static const u8 ed448_9_test_vectors_priv_key[] = {
278*f0865ec9SKyle Evans 	0xc4, 0xea, 0xb0, 0x5d, 0x35, 0x70, 0x07, 0xc6, 0x32, 0xf3, 0xdb, 0xb4, 0x84, 0x89, 0x92, 0x4d, 0x55, 0x2b, 0x08, 0xfe, 0x0c, 0x35, 0x3a, 0x0d, 0x4a, 0x1f, 0x00, 0xac, 0xda, 0x2c, 0x46, 0x3a, 0xfb, 0xea, 0x67, 0xc5, 0xe8, 0xd2, 0x87, 0x7c, 0x5e, 0x3b, 0xc3, 0x97, 0xa6, 0x59, 0x94, 0x9e, 0xf8, 0x02, 0x1e, 0x95, 0x4e, 0x0a, 0x12, 0x27, 0x4e,
279*f0865ec9SKyle Evans  };
280*f0865ec9SKyle Evans static const u8 ed448_9_test_vectors_expected_sig[] = {
281*f0865ec9SKyle Evans 	0xd4, 0xf8, 0xf6, 0x13, 0x17, 0x70, 0xdd, 0x46, 0xf4, 0x08, 0x67, 0xd6, 0xfd, 0x5d, 0x50, 0x55, 0xde, 0x43, 0x54, 0x1f, 0x8c, 0x5e, 0x35, 0xab, 0xbc, 0xd0, 0x01, 0xb3, 0x2a, 0x89, 0xf7, 0xd2, 0x15, 0x1f, 0x76, 0x47, 0xf1, 0x1d, 0x8c, 0xa2, 0xae, 0x27, 0x9f, 0xb8, 0x42, 0xd6, 0x07, 0x21, 0x7f, 0xce, 0x6e, 0x04, 0x2f, 0x68, 0x15, 0xea, 0x00, 0x0c, 0x85, 0x74, 0x1d, 0xe5, 0xc8, 0xda, 0x11, 0x44, 0xa6, 0xa1, 0xab, 0xa7, 0xf9, 0x6d, 0xe4, 0x25, 0x05, 0xd7, 0xa7, 0x29, 0x85, 0x24, 0xfd, 0xa5, 0x38, 0xfc, 0xcb, 0xbb, 0x75, 0x4f, 0x57, 0x8c, 0x1c, 0xad, 0x10, 0xd5, 0x4d, 0x0d, 0x54, 0x28, 0x40, 0x7e, 0x85, 0xdc, 0xbc, 0x98, 0xa4, 0x91, 0x55, 0xc1, 0x37, 0x64, 0xe6, 0x6c, 0x3c, 0x00,
282*f0865ec9SKyle Evans  };
283*f0865ec9SKyle Evans static const u8 ed448_9_test_vectors_message[] = {
284*f0865ec9SKyle Evans 	0x03,
285*f0865ec9SKyle Evans  };
286*f0865ec9SKyle Evans static const u8 ed448_9_test_vectors_adata[] = {
287*f0865ec9SKyle Evans 	0x66, 0x6f, 0x6f,
288*f0865ec9SKyle Evans  };
289*f0865ec9SKyle Evans static const ec_test_case ed448_9_test_case = {
290*f0865ec9SKyle Evans         .name = "EDDSA448-SHAKE256/wei448 9",
291*f0865ec9SKyle Evans         .ec_str_p = &wei448_str_params,
292*f0865ec9SKyle Evans         .priv_key = ed448_9_test_vectors_priv_key,
293*f0865ec9SKyle Evans         .priv_key_len = sizeof(ed448_9_test_vectors_priv_key),
294*f0865ec9SKyle Evans         .nn_random = NULL,
295*f0865ec9SKyle Evans         .hash_type = SHAKE256,
296*f0865ec9SKyle Evans         .msg = (const char *)ed448_9_test_vectors_message,
297*f0865ec9SKyle Evans         .msglen = sizeof(ed448_9_test_vectors_message),
298*f0865ec9SKyle Evans         .sig_type = EDDSA448,
299*f0865ec9SKyle Evans         .exp_sig = ed448_9_test_vectors_expected_sig,
300*f0865ec9SKyle Evans         .exp_siglen = sizeof(ed448_9_test_vectors_expected_sig),
301*f0865ec9SKyle Evans 	.adata = ed448_9_test_vectors_adata,
302*f0865ec9SKyle Evans 	.adata_len = sizeof(ed448_9_test_vectors_adata),
303*f0865ec9SKyle Evans };
304*f0865ec9SKyle Evans 
305*f0865ec9SKyle Evans /************************************************/
306*f0865ec9SKyle Evans #define EDDSA448_SHAKE256_WEI448_ALL_TESTS() \
307*f0865ec9SKyle Evans         &ed448_1_test_case,\
308*f0865ec9SKyle Evans         &ed448_2_test_case,\
309*f0865ec9SKyle Evans         &ed448_3_test_case,\
310*f0865ec9SKyle Evans         &ed448_4_test_case,\
311*f0865ec9SKyle Evans         &ed448_5_test_case,\
312*f0865ec9SKyle Evans         &ed448_6_test_case,\
313*f0865ec9SKyle Evans         &ed448_7_test_case,\
314*f0865ec9SKyle Evans         &ed448_8_test_case,\
315*f0865ec9SKyle Evans         &ed448_9_test_case,
316*f0865ec9SKyle Evans 
317*f0865ec9SKyle Evans #endif /* __ED448_TEST_VECTORS_H__ */
318