xref: /freebsd/crypto/libecc/src/tests/ed25519_test_vectors.h (revision f0865ec9906d5a18fa2a3b61381f22ce16e606ad)
1 /*
2  *  Copyright (C) 2021 - This file is part of libecc project
3  *
4  *  Authors:
5  *      Arnaud EBALARD <arnaud.ebalard@ssi.gouv.fr>
6  *      Ryad BENADJILA <ryadbenadjila@gmail.com>
7  *
8  *  This software is licensed under a dual BSD and GPL v2 license.
9  *  See LICENSE file at the root folder of the project.
10  */
11 #ifndef __ED25519_TEST_VECTORS_H__
12 #define __ED25519_TEST_VECTORS_H__
13 
14 static const u8 ed25519_1_test_vectors_priv_key[] = {
15 	0x9d, 0x61, 0xb1, 0x9d, 0xef, 0xfd, 0x5a, 0x60, 0xba, 0x84, 0x4a, 0xf4, 0x92, 0xec, 0x2c, 0xc4, 0x44, 0x49, 0xc5, 0x69, 0x7b, 0x32, 0x69, 0x19, 0x70, 0x3b, 0xac, 0x03, 0x1c, 0xae, 0x7f, 0x60, };
16 static const u8 ed25519_1_test_vectors_expected_sig[] = {
17 	0xe5, 0x56, 0x43, 0x00, 0xc3, 0x60, 0xac, 0x72, 0x90, 0x86, 0xe2, 0xcc, 0x80, 0x6e, 0x82, 0x8a, 0x84, 0x87, 0x7f, 0x1e, 0xb8, 0xe5, 0xd9, 0x74, 0xd8, 0x73, 0xe0, 0x65, 0x22, 0x49, 0x01, 0x55, 0x5f, 0xb8, 0x82, 0x15, 0x90, 0xa3, 0x3b, 0xac, 0xc6, 0x1e, 0x39, 0x70, 0x1c, 0xf9, 0xb4, 0x6b, 0xd2, 0x5b, 0xf5, 0xf0, 0x59, 0x5b, 0xbe, 0x24, 0x65, 0x51, 0x41, 0x43, 0x8e, 0x7a, 0x10, 0x0b, };
18 static const ec_test_case ed25519_1_test_case = {
19 	.name = "EDDSA25519-SHA512/wei25519 1",
20 	.ec_str_p = &wei25519_str_params,
21 	.priv_key = ed25519_1_test_vectors_priv_key,
22 	.priv_key_len = sizeof(ed25519_1_test_vectors_priv_key),
23 	.nn_random = NULL,
24 	.hash_type = SHA512,
25 	.msg = "",
26 	.msglen = 0,
27 	.sig_type = EDDSA25519,
28 	.exp_sig = ed25519_1_test_vectors_expected_sig,
29 	.exp_siglen = sizeof(ed25519_1_test_vectors_expected_sig),
30 	.adata = NULL,
31 	.adata_len = 0
32 };
33 
34 /************************************************/
35 static const u8 ed25519_2_test_vectors_priv_key[] = {
36 	0x4c, 0xcd, 0x08, 0x9b, 0x28, 0xff, 0x96, 0xda, 0x9d, 0xb6, 0xc3, 0x46, 0xec, 0x11, 0x4e, 0x0f, 0x5b, 0x8a, 0x31, 0x9f, 0x35, 0xab, 0xa6, 0x24, 0xda, 0x8c, 0xf6, 0xed, 0x4f, 0xb8, 0xa6, 0xfb, };
37 static const u8 ed25519_2_test_vectors_message[] = {
38 	0x72, };
39 static const u8 ed25519_2_test_vectors_expected_sig[] = {
40 	0x92, 0xa0, 0x09, 0xa9, 0xf0, 0xd4, 0xca, 0xb8, 0x72, 0x0e, 0x82, 0x0b, 0x5f, 0x64, 0x25, 0x40, 0xa2, 0xb2, 0x7b, 0x54, 0x16, 0x50, 0x3f, 0x8f, 0xb3, 0x76, 0x22, 0x23, 0xeb, 0xdb, 0x69, 0xda, 0x08, 0x5a, 0xc1, 0xe4, 0x3e, 0x15, 0x99, 0x6e, 0x45, 0x8f, 0x36, 0x13, 0xd0, 0xf1, 0x1d, 0x8c, 0x38, 0x7b, 0x2e, 0xae, 0xb4, 0x30, 0x2a, 0xee, 0xb0, 0x0d, 0x29, 0x16, 0x12, 0xbb, 0x0c, 0x00, };
41 static const ec_test_case ed25519_2_test_case = {
42 	.name = "EDDSA25519-SHA512/wei25519 2",
43 	.ec_str_p = &wei25519_str_params,
44 	.priv_key = ed25519_2_test_vectors_priv_key,
45 	.priv_key_len = sizeof(ed25519_2_test_vectors_priv_key),
46 	.nn_random = NULL,
47 	.hash_type = SHA512,
48 	.msg = (const char *)ed25519_2_test_vectors_message,
49 	.msglen = sizeof(ed25519_2_test_vectors_message),
50 	.sig_type = EDDSA25519,
51 	.exp_sig = ed25519_2_test_vectors_expected_sig,
52 	.exp_siglen = sizeof(ed25519_2_test_vectors_expected_sig),
53 	.adata = NULL,
54 	.adata_len = 0
55 };
56 
57 /************************************************/
58 static const u8 ed25519_3_test_vectors_priv_key[] = {
59 	0xc5, 0xaa, 0x8d, 0xf4, 0x3f, 0x9f, 0x83, 0x7b, 0xed, 0xb7, 0x44, 0x2f, 0x31, 0xdc, 0xb7, 0xb1, 0x66, 0xd3, 0x85, 0x35, 0x07, 0x6f, 0x09, 0x4b, 0x85, 0xce, 0x3a, 0x2e, 0x0b, 0x44, 0x58, 0xf7, };
60 static const u8 ed25519_3_test_vectors_message[] = {
61 	0xaf, 0x82, };
62 static const u8 ed25519_3_test_vectors_expected_sig[] = {
63 	0x62, 0x91, 0xd6, 0x57, 0xde, 0xec, 0x24, 0x02, 0x48, 0x27, 0xe6, 0x9c, 0x3a, 0xbe, 0x01, 0xa3, 0x0c, 0xe5, 0x48, 0xa2, 0x84, 0x74, 0x3a, 0x44, 0x5e, 0x36, 0x80, 0xd7, 0xdb, 0x5a, 0xc3, 0xac, 0x18, 0xff, 0x9b, 0x53, 0x8d, 0x16, 0xf2, 0x90, 0xae, 0x67, 0xf7, 0x60, 0x98, 0x4d, 0xc6, 0x59, 0x4a, 0x7c, 0x15, 0xe9, 0x71, 0x6e, 0xd2, 0x8d, 0xc0, 0x27, 0xbe, 0xce, 0xea, 0x1e, 0xc4, 0x0a, };
64 static const ec_test_case ed25519_3_test_case = {
65 	.name = "EDDSA25519-SHA512/wei25519 3",
66 	.ec_str_p = &wei25519_str_params,
67 	.priv_key = ed25519_3_test_vectors_priv_key,
68 	.priv_key_len = sizeof(ed25519_3_test_vectors_priv_key),
69 	.nn_random = NULL,
70 	.hash_type = SHA512,
71 	.msg = (const char *)ed25519_3_test_vectors_message,
72 	.msglen = sizeof(ed25519_3_test_vectors_message),
73 	.sig_type = EDDSA25519,
74 	.exp_sig = ed25519_3_test_vectors_expected_sig,
75 	.exp_siglen = sizeof(ed25519_3_test_vectors_expected_sig),
76 	.adata = NULL,
77 	.adata_len = 0
78 };
79 
80 /************************************************/
81 static const u8 ed25519_4_test_vectors_priv_key[] = {
82 	0x0d, 0x4a, 0x05, 0xb0, 0x73, 0x52, 0xa5, 0x43, 0x6e, 0x18, 0x03, 0x56, 0xda, 0x0a, 0xe6, 0xef, 0xa0, 0x34, 0x5f, 0xf7, 0xfb, 0x15, 0x72, 0x57, 0x57, 0x72, 0xe8, 0x00, 0x5e, 0xd9, 0x78, 0xe9, };
83 static const u8 ed25519_4_test_vectors_message[] = {
84 	0xcb, 0xc7, 0x7b, };
85 static const u8 ed25519_4_test_vectors_expected_sig[] = {
86 	0xd9, 0x86, 0x8d, 0x52, 0xc2, 0xbe, 0xbc, 0xe5, 0xf3, 0xfa, 0x5a, 0x79, 0x89, 0x19, 0x70, 0xf3, 0x09, 0xcb, 0x65, 0x91, 0xe3, 0xe1, 0x70, 0x2a, 0x70, 0x27, 0x6f, 0xa9, 0x7c, 0x24, 0xb3, 0xa8, 0xe5, 0x86, 0x06, 0xc3, 0x8c, 0x97, 0x58, 0x52, 0x9d, 0xa5, 0x0e, 0xe3, 0x1b, 0x82, 0x19, 0xcb, 0xa4, 0x52, 0x71, 0xc6, 0x89, 0xaf, 0xa6, 0x0b, 0x0e, 0xa2, 0x6c, 0x99, 0xdb, 0x19, 0xb0, 0x0c, };
87 static const ec_test_case ed25519_4_test_case = {
88 	.name = "EDDSA25519-SHA512/wei25519 4",
89 	.ec_str_p = &wei25519_str_params,
90 	.priv_key = ed25519_4_test_vectors_priv_key,
91 	.priv_key_len = sizeof(ed25519_4_test_vectors_priv_key),
92 	.nn_random = NULL,
93 	.hash_type = SHA512,
94 	.msg = (const char *)ed25519_4_test_vectors_message,
95 	.msglen = sizeof(ed25519_4_test_vectors_message),
96 	.sig_type = EDDSA25519,
97 	.exp_sig = ed25519_4_test_vectors_expected_sig,
98 	.exp_siglen = sizeof(ed25519_4_test_vectors_expected_sig),
99 	.adata = NULL,
100 	.adata_len = 0
101 };
102 
103 /************************************************/
104 static const u8 ed25519_5_test_vectors_priv_key[] = {
105 	0x6d, 0xf9, 0x34, 0x0c, 0x13, 0x8c, 0xc1, 0x88, 0xb5, 0xfe, 0x44, 0x64, 0xeb, 0xaa, 0x3f, 0x7f, 0xc2, 0x06, 0xa2, 0xd5, 0x5c, 0x34, 0x34, 0x70, 0x7e, 0x74, 0xc9, 0xfc, 0x04, 0xe2, 0x0e, 0xbb, };
106 static const u8 ed25519_5_test_vectors_message[] = {
107 	0x5f, 0x4c, 0x89, 0x89, };
108 static const u8 ed25519_5_test_vectors_expected_sig[] = {
109 	0x12, 0x4f, 0x6f, 0xc6, 0xb0, 0xd1, 0x00, 0x84, 0x27, 0x69, 0xe7, 0x1b, 0xd5, 0x30, 0x66, 0x4d, 0x88, 0x8d, 0xf8, 0x50, 0x7d, 0xf6, 0xc5, 0x6d, 0xed, 0xfd, 0xb5, 0x09, 0xae, 0xb9, 0x34, 0x16, 0xe2, 0x6b, 0x91, 0x8d, 0x38, 0xaa, 0x06, 0x30, 0x5d, 0xf3, 0x09, 0x56, 0x97, 0xc1, 0x8b, 0x2a, 0xa8, 0x32, 0xea, 0xa5, 0x2e, 0xdc, 0x0a, 0xe4, 0x9f, 0xba, 0xe5, 0xa8, 0x5e, 0x15, 0x0c, 0x07, };
110 static const ec_test_case ed25519_5_test_case = {
111 	.name = "EDDSA25519-SHA512/wei25519 5",
112 	.ec_str_p = &wei25519_str_params,
113 	.priv_key = ed25519_5_test_vectors_priv_key,
114 	.priv_key_len = sizeof(ed25519_5_test_vectors_priv_key),
115 	.nn_random = NULL,
116 	.hash_type = SHA512,
117 	.msg = (const char *)ed25519_5_test_vectors_message,
118 	.msglen = sizeof(ed25519_5_test_vectors_message),
119 	.sig_type = EDDSA25519,
120 	.exp_sig = ed25519_5_test_vectors_expected_sig,
121 	.exp_siglen = sizeof(ed25519_5_test_vectors_expected_sig),
122 	.adata = NULL,
123 	.adata_len = 0
124 };
125 
126 /************************************************/
127 static const u8 ed25519_6_test_vectors_priv_key[] = {
128 	0xb7, 0x80, 0x38, 0x1a, 0x65, 0xed, 0xf8, 0xb7, 0x8f, 0x69, 0x45, 0xe8, 0xdb, 0xec, 0x79, 0x41, 0xac, 0x04, 0x9f, 0xd4, 0xc6, 0x10, 0x40, 0xcf, 0x0c, 0x32, 0x43, 0x57, 0x97, 0x5a, 0x29, 0x3c, };
129 static const u8 ed25519_6_test_vectors_message[] = {
130 	0x18, 0xb6, 0xbe, 0xc0, 0x97, };
131 static const u8 ed25519_6_test_vectors_expected_sig[] = {
132 	0xb2, 0xfc, 0x46, 0xad, 0x47, 0xaf, 0x46, 0x44, 0x78, 0xc1, 0x99, 0xe1, 0xf8, 0xbe, 0x16, 0x9f, 0x1b, 0xe6, 0x32, 0x7c, 0x7f, 0x9a, 0x0a, 0x66, 0x89, 0x37, 0x1c, 0xa9, 0x4c, 0xaf, 0x04, 0x06, 0x4a, 0x01, 0xb2, 0x2a, 0xff, 0x15, 0x20, 0xab, 0xd5, 0x89, 0x51, 0x34, 0x16, 0x03, 0xfa, 0xed, 0x76, 0x8c, 0xf7, 0x8c, 0xe9, 0x7a, 0xe7, 0xb0, 0x38, 0xab, 0xfe, 0x45, 0x6a, 0xa1, 0x7c, 0x09, };
133 static const ec_test_case ed25519_6_test_case = {
134 	.name = "EDDSA25519-SHA512/wei25519 6",
135 	.ec_str_p = &wei25519_str_params,
136 	.priv_key = ed25519_6_test_vectors_priv_key,
137 	.priv_key_len = sizeof(ed25519_6_test_vectors_priv_key),
138 	.nn_random = NULL,
139 	.hash_type = SHA512,
140 	.msg = (const char *)ed25519_6_test_vectors_message,
141 	.msglen = sizeof(ed25519_6_test_vectors_message),
142 	.sig_type = EDDSA25519,
143 	.exp_sig = ed25519_6_test_vectors_expected_sig,
144 	.exp_siglen = sizeof(ed25519_6_test_vectors_expected_sig),
145 	.adata = NULL,
146 	.adata_len = 0
147 };
148 
149 /************************************************/
150 static const u8 ed25519_7_test_vectors_priv_key[] = {
151 	0x78, 0xae, 0x9e, 0xff, 0xe6, 0xf2, 0x45, 0xe9, 0x24, 0xa7, 0xbe, 0x63, 0x04, 0x11, 0x46, 0xeb, 0xc6, 0x70, 0xdb, 0xd3, 0x06, 0x0c, 0xba, 0x67, 0xfb, 0xc6, 0x21, 0x6f, 0xeb, 0xc4, 0x45, 0x46, };
152 static const u8 ed25519_7_test_vectors_message[] = {
153 	0x89, 0x01, 0x0d, 0x85, 0x59, 0x72, };
154 static const u8 ed25519_7_test_vectors_expected_sig[] = {
155 	0x6e, 0xd6, 0x29, 0xfc, 0x1d, 0x9c, 0xe9, 0xe1, 0x46, 0x87, 0x55, 0xff, 0x63, 0x6d, 0x5a, 0x3f, 0x40, 0xa5, 0xd9, 0xc9, 0x1a, 0xfd, 0x93, 0xb7, 0x9d, 0x24, 0x18, 0x30, 0xf7, 0xe5, 0xfa, 0x29, 0x85, 0x4b, 0x8f, 0x20, 0xcc, 0x6e, 0xec, 0xbb, 0x24, 0x8d, 0xbd, 0x8d, 0x16, 0xd1, 0x4e, 0x99, 0x75, 0x21, 0x94, 0xe4, 0x90, 0x4d, 0x09, 0xc7, 0x4d, 0x63, 0x95, 0x18, 0x83, 0x9d, 0x23, 0x00, };
156 static const ec_test_case ed25519_7_test_case = {
157 	.name = "EDDSA25519-SHA512/wei25519 7",
158 	.ec_str_p = &wei25519_str_params,
159 	.priv_key = ed25519_7_test_vectors_priv_key,
160 	.priv_key_len = sizeof(ed25519_7_test_vectors_priv_key),
161 	.nn_random = NULL,
162 	.hash_type = SHA512,
163 	.msg = (const char *)ed25519_7_test_vectors_message,
164 	.msglen = sizeof(ed25519_7_test_vectors_message),
165 	.sig_type = EDDSA25519,
166 	.exp_sig = ed25519_7_test_vectors_expected_sig,
167 	.exp_siglen = sizeof(ed25519_7_test_vectors_expected_sig),
168 	.adata = NULL,
169 	.adata_len = 0
170 };
171 
172 /************************************************/
173 static const u8 ed25519_8_test_vectors_priv_key[] = {
174 	0x69, 0x18, 0x65, 0xbf, 0xc8, 0x2a, 0x1e, 0x4b, 0x57, 0x4e, 0xec, 0xde, 0x4c, 0x75, 0x19, 0x09, 0x3f, 0xaf, 0x0c, 0xf8, 0x67, 0x38, 0x02, 0x34, 0xe3, 0x66, 0x46, 0x45, 0xc6, 0x1c, 0x5f, 0x79, };
175 static const u8 ed25519_8_test_vectors_message[] = {
176 	0xb4, 0xa8, 0xf3, 0x81, 0xe7, 0x0e, 0x7a, };
177 static const u8 ed25519_8_test_vectors_expected_sig[] = {
178 	0x6e, 0x0a, 0xf2, 0xfe, 0x55, 0xae, 0x37, 0x7a, 0x6b, 0x7a, 0x72, 0x78, 0xed, 0xfb, 0x41, 0x9b, 0xd3, 0x21, 0xe0, 0x6d, 0x0d, 0xf5, 0xe2, 0x70, 0x37, 0xdb, 0x88, 0x12, 0xe7, 0xe3, 0x52, 0x98, 0x10, 0xfa, 0x55, 0x52, 0xf6, 0xc0, 0x02, 0x09, 0x85, 0xca, 0x17, 0xa0, 0xe0, 0x2e, 0x03, 0x6d, 0x7b, 0x22, 0x2a, 0x24, 0xf9, 0x9b, 0x77, 0xb7, 0x5f, 0xdd, 0x16, 0xcb, 0x05, 0x56, 0x81, 0x07, };
179 static const ec_test_case ed25519_8_test_case = {
180 	.name = "EDDSA25519-SHA512/wei25519 8",
181 	.ec_str_p = &wei25519_str_params,
182 	.priv_key = ed25519_8_test_vectors_priv_key,
183 	.priv_key_len = sizeof(ed25519_8_test_vectors_priv_key),
184 	.nn_random = NULL,
185 	.hash_type = SHA512,
186 	.msg = (const char *)ed25519_8_test_vectors_message,
187 	.msglen = sizeof(ed25519_8_test_vectors_message),
188 	.sig_type = EDDSA25519,
189 	.exp_sig = ed25519_8_test_vectors_expected_sig,
190 	.exp_siglen = sizeof(ed25519_8_test_vectors_expected_sig),
191 	.adata = NULL,
192 	.adata_len = 0
193 };
194 
195 /************************************************/
196 static const u8 ed25519_9_test_vectors_priv_key[] = {
197 	0x3b, 0x26, 0x51, 0x6f, 0xb3, 0xdc, 0x88, 0xeb, 0x18, 0x1b, 0x9e, 0xd7, 0x3f, 0x0b, 0xcd, 0x52, 0xbc, 0xd6, 0xb4, 0xc7, 0x88, 0xe4, 0xbc, 0xaf, 0x46, 0x05, 0x7f, 0xd0, 0x78, 0xbe, 0xe0, 0x73, };
198 static const u8 ed25519_9_test_vectors_message[] = {
199 	0x42, 0x84, 0xab, 0xc5, 0x1b, 0xb6, 0x72, 0x35, };
200 static const u8 ed25519_9_test_vectors_expected_sig[] = {
201 	0xd6, 0xad, 0xde, 0xc5, 0xaf, 0xb0, 0x52, 0x8a, 0xc1, 0x7b, 0xb1, 0x78, 0xd3, 0xe7, 0xf2, 0x88, 0x7f, 0x9a, 0xdb, 0xb1, 0xad, 0x16, 0xe1, 0x10, 0x54, 0x5e, 0xf3, 0xbc, 0x57, 0xf9, 0xde, 0x23, 0x14, 0xa5, 0xc8, 0x38, 0x8f, 0x72, 0x3b, 0x89, 0x07, 0xbe, 0x0f, 0x3a, 0xc9, 0x0c, 0x62, 0x59, 0xbb, 0xe8, 0x85, 0xec, 0xc1, 0x76, 0x45, 0xdf, 0x3d, 0xb7, 0xd4, 0x88, 0xf8, 0x05, 0xfa, 0x08, };
202 static const ec_test_case ed25519_9_test_case = {
203 	.name = "EDDSA25519-SHA512/wei25519 9",
204 	.ec_str_p = &wei25519_str_params,
205 	.priv_key = ed25519_9_test_vectors_priv_key,
206 	.priv_key_len = sizeof(ed25519_9_test_vectors_priv_key),
207 	.nn_random = NULL,
208 	.hash_type = SHA512,
209 	.msg = (const char *)ed25519_9_test_vectors_message,
210 	.msglen = sizeof(ed25519_9_test_vectors_message),
211 	.sig_type = EDDSA25519,
212 	.exp_sig = ed25519_9_test_vectors_expected_sig,
213 	.exp_siglen = sizeof(ed25519_9_test_vectors_expected_sig),
214 	.adata = NULL,
215 	.adata_len = 0
216 };
217 
218 /************************************************/
219 static const u8 ed25519_10_test_vectors_priv_key[] = {
220 	0xed, 0xc6, 0xf5, 0xfb, 0xdd, 0x1c, 0xee, 0x4d, 0x10, 0x1c, 0x06, 0x35, 0x30, 0xa3, 0x04, 0x90, 0xb2, 0x21, 0xbe, 0x68, 0xc0, 0x36, 0xf5, 0xb0, 0x7d, 0x0f, 0x95, 0x3b, 0x74, 0x5d, 0xf1, 0x92, };
221 static const u8 ed25519_10_test_vectors_message[] = {
222 	0x67, 0x2b, 0xf8, 0x96, 0x5d, 0x04, 0xbc, 0x51, 0x46, };
223 static const u8 ed25519_10_test_vectors_expected_sig[] = {
224 	0x2c, 0x76, 0xa0, 0x4a, 0xf2, 0x39, 0x1c, 0x14, 0x70, 0x82, 0xe3, 0x3f, 0xaa, 0xcd, 0xbe, 0x56, 0x64, 0x2a, 0x1e, 0x13, 0x4b, 0xd3, 0x88, 0x62, 0x0b, 0x85, 0x2b, 0x90, 0x1a, 0x6b, 0xc1, 0x6f, 0xf6, 0xc9, 0xcc, 0x94, 0x04, 0xc4, 0x1d, 0xea, 0x12, 0xed, 0x28, 0x1d, 0xa0, 0x67, 0xa1, 0x51, 0x38, 0x66, 0xf9, 0xd9, 0x64, 0xf8, 0xbd, 0xd2, 0x49, 0x53, 0x85, 0x6c, 0x50, 0x04, 0x29, 0x01, };
225 static const ec_test_case ed25519_10_test_case = {
226 	.name = "EDDSA25519-SHA512/wei25519 10",
227 	.ec_str_p = &wei25519_str_params,
228 	.priv_key = ed25519_10_test_vectors_priv_key,
229 	.priv_key_len = sizeof(ed25519_10_test_vectors_priv_key),
230 	.nn_random = NULL,
231 	.hash_type = SHA512,
232 	.msg = (const char *)ed25519_10_test_vectors_message,
233 	.msglen = sizeof(ed25519_10_test_vectors_message),
234 	.sig_type = EDDSA25519,
235 	.exp_sig = ed25519_10_test_vectors_expected_sig,
236 	.exp_siglen = sizeof(ed25519_10_test_vectors_expected_sig),
237 	.adata = NULL,
238 	.adata_len = 0
239 };
240 
241 /*
242  * Around 1000 automatically generated additional test vectors can be
243  * enabled using the flag below.
244  */
245 #ifdef ADDITIONAL_EDDSA25519_TEST_VECTORS
246 
247 /************************************************/
248 static const u8 ed25519_11_test_vectors_priv_key[] = {
249 	0x4e, 0x7d, 0x21, 0xfb, 0x3b, 0x18, 0x97, 0x57, 0x1a, 0x44, 0x58, 0x33, 0xbe, 0x0f, 0x9f, 0xd4, 0x1c, 0xd6, 0x2b, 0xe3, 0xaa, 0x04, 0x04, 0x0f, 0x89, 0x34, 0xe1, 0xfc, 0xbd, 0xca, 0xcd, 0x45, };
250 static const u8 ed25519_11_test_vectors_message[] = {
251 	0x33, 0xd7, 0xa7, 0x86, 0xad, 0xed, 0x8c, 0x1b, 0xf6, 0x91, };
252 static const u8 ed25519_11_test_vectors_expected_sig[] = {
253 	0x28, 0xe4, 0x59, 0x8c, 0x41, 0x5a, 0xe9, 0xde, 0x01, 0xf0, 0x3f, 0x9f, 0x3f, 0xab, 0x4e, 0x91, 0x9e, 0x8b, 0xf5, 0x37, 0xdd, 0x2b, 0x0c, 0xdf, 0x6e, 0x79, 0xb9, 0xe6, 0x55, 0x9c, 0x94, 0x09, 0xd9, 0x15, 0x1a, 0x4c, 0x40, 0xf0, 0x83, 0x19, 0x39, 0x37, 0x62, 0x7c, 0x36, 0x94, 0x88, 0x25, 0x9e, 0x99, 0xda, 0x5a, 0x9f, 0x0a, 0x87, 0x49, 0x7f, 0xa6, 0x69, 0x6a, 0x5d, 0xd6, 0xce, 0x08, };
254 static const ec_test_case ed25519_11_test_case = {
255 	.name = "EDDSA25519-SHA512/wei25519 11",
256 	.ec_str_p = &wei25519_str_params,
257 	.priv_key = ed25519_11_test_vectors_priv_key,
258 	.priv_key_len = sizeof(ed25519_11_test_vectors_priv_key),
259 	.nn_random = NULL,
260 	.hash_type = SHA512,
261 	.msg = (const char *)ed25519_11_test_vectors_message,
262 	.msglen = sizeof(ed25519_11_test_vectors_message),
263 	.sig_type = EDDSA25519,
264 	.exp_sig = ed25519_11_test_vectors_expected_sig,
265 	.exp_siglen = sizeof(ed25519_11_test_vectors_expected_sig),
266 	.adata = NULL,
267 	.adata_len = 0
268 };
269 
270 /************************************************/
271 static const u8 ed25519_12_test_vectors_priv_key[] = {
272 	0xa9, 0x80, 0xf8, 0x92, 0xdb, 0x13, 0xc9, 0x9a, 0x3e, 0x89, 0x71, 0xe9, 0x65, 0xb2, 0xff, 0x3d, 0x41, 0xea, 0xfd, 0x54, 0x09, 0x3b, 0xc9, 0xf3, 0x4d, 0x1f, 0xd2, 0x2d, 0x84, 0x11, 0x5b, 0xb6, };
273 static const u8 ed25519_12_test_vectors_message[] = {
274 	0x34, 0x86, 0xf6, 0x88, 0x48, 0xa6, 0x5a, 0x0e, 0xb5, 0x50, 0x7d, };
275 static const u8 ed25519_12_test_vectors_expected_sig[] = {
276 	0x77, 0xd3, 0x89, 0xe5, 0x99, 0x63, 0x0d, 0x93, 0x40, 0x76, 0x32, 0x95, 0x83, 0xcd, 0x41, 0x05, 0xa6, 0x49, 0xa9, 0x29, 0x2a, 0xbc, 0x44, 0xcd, 0x28, 0xc4, 0x00, 0x00, 0xc8, 0xe2, 0xf5, 0xac, 0x76, 0x60, 0xa8, 0x1c, 0x85, 0xb7, 0x2a, 0xf8, 0x45, 0x2d, 0x7d, 0x25, 0xc0, 0x70, 0x86, 0x1d, 0xae, 0x91, 0x60, 0x1c, 0x78, 0x03, 0xd6, 0x56, 0x53, 0x16, 0x50, 0xdd, 0x4e, 0x5c, 0x41, 0x00, };
277 static const ec_test_case ed25519_12_test_case = {
278 	.name = "EDDSA25519-SHA512/wei25519 12",
279 	.ec_str_p = &wei25519_str_params,
280 	.priv_key = ed25519_12_test_vectors_priv_key,
281 	.priv_key_len = sizeof(ed25519_12_test_vectors_priv_key),
282 	.nn_random = NULL,
283 	.hash_type = SHA512,
284 	.msg = (const char *)ed25519_12_test_vectors_message,
285 	.msglen = sizeof(ed25519_12_test_vectors_message),
286 	.sig_type = EDDSA25519,
287 	.exp_sig = ed25519_12_test_vectors_expected_sig,
288 	.exp_siglen = sizeof(ed25519_12_test_vectors_expected_sig),
289 	.adata = NULL,
290 	.adata_len = 0
291 };
292 
293 /************************************************/
294 static const u8 ed25519_13_test_vectors_priv_key[] = {
295 	0x5b, 0x5a, 0x61, 0x9f, 0x8c, 0xe1, 0xc6, 0x6d, 0x7c, 0xe2, 0x6e, 0x5a, 0x2a, 0xe7, 0xb0, 0xc0, 0x4f, 0xeb, 0xcd, 0x34, 0x6d, 0x28, 0x6c, 0x92, 0x9e, 0x19, 0xd0, 0xd5, 0x97, 0x3b, 0xfe, 0xf9, };
296 static const u8 ed25519_13_test_vectors_message[] = {
297 	0x5a, 0x8d, 0x9d, 0x0a, 0x22, 0x35, 0x7e, 0x66, 0x55, 0xf9, 0xc7, 0x85, };
298 static const u8 ed25519_13_test_vectors_expected_sig[] = {
299 	0x0f, 0x9a, 0xd9, 0x79, 0x30, 0x33, 0xa2, 0xfa, 0x06, 0x61, 0x4b, 0x27, 0x7d, 0x37, 0x38, 0x1e, 0x6d, 0x94, 0xf6, 0x5a, 0xc2, 0xa5, 0xa9, 0x45, 0x58, 0xd0, 0x9e, 0xd6, 0xce, 0x92, 0x22, 0x58, 0xc1, 0xa5, 0x67, 0x95, 0x2e, 0x86, 0x3a, 0xc9, 0x42, 0x97, 0xae, 0xc3, 0xc0, 0xd0, 0xc8, 0xdd, 0xf7, 0x10, 0x84, 0xe5, 0x04, 0x86, 0x0b, 0xb6, 0xba, 0x27, 0x44, 0x9b, 0x55, 0xad, 0xc4, 0x0e, };
300 static const ec_test_case ed25519_13_test_case = {
301 	.name = "EDDSA25519-SHA512/wei25519 13",
302 	.ec_str_p = &wei25519_str_params,
303 	.priv_key = ed25519_13_test_vectors_priv_key,
304 	.priv_key_len = sizeof(ed25519_13_test_vectors_priv_key),
305 	.nn_random = NULL,
306 	.hash_type = SHA512,
307 	.msg = (const char *)ed25519_13_test_vectors_message,
308 	.msglen = sizeof(ed25519_13_test_vectors_message),
309 	.sig_type = EDDSA25519,
310 	.exp_sig = ed25519_13_test_vectors_expected_sig,
311 	.exp_siglen = sizeof(ed25519_13_test_vectors_expected_sig),
312 	.adata = NULL,
313 	.adata_len = 0
314 };
315 
316 /************************************************/
317 static const u8 ed25519_14_test_vectors_priv_key[] = {
318 	0x94, 0x0c, 0x89, 0xfe, 0x40, 0xa8, 0x1d, 0xaf, 0xbd, 0xb2, 0x41, 0x6d, 0x14, 0xae, 0x46, 0x91, 0x19, 0x86, 0x97, 0x44, 0x41, 0x0c, 0x33, 0x03, 0xbf, 0xaa, 0x02, 0x41, 0xda, 0xc5, 0x78, 0x00, };
319 static const u8 ed25519_14_test_vectors_message[] = {
320 	0xb8, 0x7d, 0x38, 0x13, 0xe0, 0x3f, 0x58, 0xcf, 0x19, 0xfd, 0x0b, 0x63, 0x95, };
321 static const u8 ed25519_14_test_vectors_expected_sig[] = {
322 	0xd8, 0xbb, 0x64, 0xaa, 0xd8, 0xc9, 0x95, 0x5a, 0x11, 0x5a, 0x79, 0x3a, 0xdd, 0xd2, 0x4f, 0x7f, 0x2b, 0x07, 0x76, 0x48, 0x71, 0x4f, 0x49, 0xc4, 0x69, 0x4e, 0xc9, 0x95, 0xb3, 0x30, 0xd0, 0x9d, 0x64, 0x0d, 0xf3, 0x10, 0xf4, 0x47, 0xfd, 0x7b, 0x6c, 0xb5, 0xc1, 0x4f, 0x9f, 0xe9, 0xf4, 0x90, 0xbc, 0xf8, 0xcf, 0xad, 0xbf, 0xd2, 0x16, 0x9c, 0x8a, 0xc2, 0x0d, 0x3b, 0x8a, 0xf4, 0x9a, 0x0c, };
323 static const ec_test_case ed25519_14_test_case = {
324 	.name = "EDDSA25519-SHA512/wei25519 14",
325 	.ec_str_p = &wei25519_str_params,
326 	.priv_key = ed25519_14_test_vectors_priv_key,
327 	.priv_key_len = sizeof(ed25519_14_test_vectors_priv_key),
328 	.nn_random = NULL,
329 	.hash_type = SHA512,
330 	.msg = (const char *)ed25519_14_test_vectors_message,
331 	.msglen = sizeof(ed25519_14_test_vectors_message),
332 	.sig_type = EDDSA25519,
333 	.exp_sig = ed25519_14_test_vectors_expected_sig,
334 	.exp_siglen = sizeof(ed25519_14_test_vectors_expected_sig),
335 	.adata = NULL,
336 	.adata_len = 0
337 };
338 
339 /************************************************/
340 static const u8 ed25519_15_test_vectors_priv_key[] = {
341 	0x9a, 0xca, 0xd9, 0x59, 0xd2, 0x16, 0x21, 0x2d, 0x78, 0x9a, 0x11, 0x92, 0x52, 0xeb, 0xfe, 0x0c, 0x96, 0x51, 0x2a, 0x23, 0xc7, 0x3b, 0xd9, 0xf3, 0xb2, 0x02, 0x29, 0x2d, 0x69, 0x16, 0xa7, 0x38, };
342 static const u8 ed25519_15_test_vectors_message[] = {
343 	0x55, 0xc7, 0xfa, 0x43, 0x4f, 0x5e, 0xd8, 0xcd, 0xec, 0x2b, 0x7a, 0xea, 0xc1, 0x73, };
344 static const u8 ed25519_15_test_vectors_expected_sig[] = {
345 	0x6e, 0xe3, 0xfe, 0x81, 0xe2, 0x3c, 0x60, 0xeb, 0x23, 0x12, 0xb2, 0x00, 0x6b, 0x3b, 0x25, 0xe6, 0x83, 0x8e, 0x02, 0x10, 0x66, 0x23, 0xf8, 0x44, 0xc4, 0x4e, 0xdb, 0x8d, 0xaf, 0xd6, 0x6a, 0xb0, 0x67, 0x10, 0x87, 0xfd, 0x19, 0x5d, 0xf5, 0xb8, 0xf5, 0x8a, 0x1d, 0x6e, 0x52, 0xaf, 0x42, 0x90, 0x80, 0x53, 0xd5, 0x5c, 0x73, 0x21, 0x01, 0x00, 0x92, 0x74, 0x87, 0x95, 0xef, 0x94, 0xcf, 0x06, };
346 static const ec_test_case ed25519_15_test_case = {
347 	.name = "EDDSA25519-SHA512/wei25519 15",
348 	.ec_str_p = &wei25519_str_params,
349 	.priv_key = ed25519_15_test_vectors_priv_key,
350 	.priv_key_len = sizeof(ed25519_15_test_vectors_priv_key),
351 	.nn_random = NULL,
352 	.hash_type = SHA512,
353 	.msg = (const char *)ed25519_15_test_vectors_message,
354 	.msglen = sizeof(ed25519_15_test_vectors_message),
355 	.sig_type = EDDSA25519,
356 	.exp_sig = ed25519_15_test_vectors_expected_sig,
357 	.exp_siglen = sizeof(ed25519_15_test_vectors_expected_sig),
358 	.adata = NULL,
359 	.adata_len = 0
360 };
361 
362 /************************************************/
363 static const u8 ed25519_16_test_vectors_priv_key[] = {
364 	0xd5, 0xae, 0xee, 0x41, 0xee, 0xb0, 0xe9, 0xd1, 0xbf, 0x83, 0x37, 0xf9, 0x39, 0x58, 0x7e, 0xbe, 0x29, 0x61, 0x61, 0xe6, 0xbf, 0x52, 0x09, 0xf5, 0x91, 0xec, 0x93, 0x9e, 0x14, 0x40, 0xc3, 0x00, };
365 static const u8 ed25519_16_test_vectors_message[] = {
366 	0x0a, 0x68, 0x8e, 0x79, 0xbe, 0x24, 0xf8, 0x66, 0x28, 0x6d, 0x46, 0x46, 0xb5, 0xd8, 0x1c, };
367 static const u8 ed25519_16_test_vectors_expected_sig[] = {
368 	0xf6, 0x8d, 0x04, 0x84, 0x7e, 0x5b, 0x24, 0x97, 0x37, 0x89, 0x9c, 0x01, 0x4d, 0x31, 0xc8, 0x05, 0xc5, 0x00, 0x7a, 0x62, 0xc0, 0xa1, 0x0d, 0x50, 0xbb, 0x15, 0x38, 0xc5, 0xf3, 0x55, 0x03, 0x95, 0x1f, 0xbc, 0x1e, 0x08, 0x68, 0x2f, 0x2c, 0xc0, 0xc9, 0x2e, 0xfe, 0x8f, 0x49, 0x85, 0xde, 0xc6, 0x1d, 0xcb, 0xd5, 0x4d, 0x4b, 0x94, 0xa2, 0x25, 0x47, 0xd2, 0x44, 0x51, 0x27, 0x1c, 0x8b, 0x00, };
369 static const ec_test_case ed25519_16_test_case = {
370 	.name = "EDDSA25519-SHA512/wei25519 16",
371 	.ec_str_p = &wei25519_str_params,
372 	.priv_key = ed25519_16_test_vectors_priv_key,
373 	.priv_key_len = sizeof(ed25519_16_test_vectors_priv_key),
374 	.nn_random = NULL,
375 	.hash_type = SHA512,
376 	.msg = (const char *)ed25519_16_test_vectors_message,
377 	.msglen = sizeof(ed25519_16_test_vectors_message),
378 	.sig_type = EDDSA25519,
379 	.exp_sig = ed25519_16_test_vectors_expected_sig,
380 	.exp_siglen = sizeof(ed25519_16_test_vectors_expected_sig),
381 	.adata = NULL,
382 	.adata_len = 0
383 };
384 
385 /************************************************/
386 static const u8 ed25519_17_test_vectors_priv_key[] = {
387 	0x0a, 0x47, 0xd1, 0x04, 0x52, 0xae, 0x2f, 0xeb, 0xec, 0x51, 0x8a, 0x1c, 0x7c, 0x36, 0x28, 0x90, 0xc3, 0xfc, 0x1a, 0x49, 0xd3, 0x4b, 0x03, 0xb6, 0x46, 0x7d, 0x35, 0xc9, 0x04, 0xa8, 0x36, 0x2d, };
388 static const u8 ed25519_17_test_vectors_message[] = {
389 	0xc9, 0x42, 0xfa, 0x7a, 0xc6, 0xb2, 0x3a, 0xb7, 0xff, 0x61, 0x2f, 0xdc, 0x8e, 0x68, 0xef, 0x39, };
390 static const u8 ed25519_17_test_vectors_expected_sig[] = {
391 	0x2a, 0x3d, 0x27, 0xdc, 0x40, 0xd0, 0xa8, 0x12, 0x79, 0x49, 0xa3, 0xb7, 0xf9, 0x08, 0xb3, 0x68, 0x8f, 0x63, 0xb7, 0xf1, 0x4f, 0x65, 0x1a, 0xac, 0xd7, 0x15, 0x94, 0x0b, 0xdb, 0xe2, 0x7a, 0x08, 0x09, 0xaa, 0xc1, 0x42, 0xf4, 0x7a, 0xb0, 0xe1, 0xe4, 0x4f, 0xa4, 0x90, 0xba, 0x87, 0xce, 0x53, 0x92, 0xf3, 0x3a, 0x89, 0x15, 0x39, 0xca, 0xf1, 0xef, 0x4c, 0x36, 0x7c, 0xae, 0x54, 0x50, 0x0c, };
392 static const ec_test_case ed25519_17_test_case = {
393 	.name = "EDDSA25519-SHA512/wei25519 17",
394 	.ec_str_p = &wei25519_str_params,
395 	.priv_key = ed25519_17_test_vectors_priv_key,
396 	.priv_key_len = sizeof(ed25519_17_test_vectors_priv_key),
397 	.nn_random = NULL,
398 	.hash_type = SHA512,
399 	.msg = (const char *)ed25519_17_test_vectors_message,
400 	.msglen = sizeof(ed25519_17_test_vectors_message),
401 	.sig_type = EDDSA25519,
402 	.exp_sig = ed25519_17_test_vectors_expected_sig,
403 	.exp_siglen = sizeof(ed25519_17_test_vectors_expected_sig),
404 	.adata = NULL,
405 	.adata_len = 0
406 };
407 
408 /************************************************/
409 static const u8 ed25519_18_test_vectors_priv_key[] = {
410 	0xf8, 0x14, 0x8f, 0x75, 0x06, 0xb7, 0x75, 0xef, 0x46, 0xfd, 0xc8, 0xe8, 0xc7, 0x56, 0x51, 0x68, 0x12, 0xd4, 0x7d, 0x6c, 0xfb, 0xfa, 0x31, 0x8c, 0x27, 0xc9, 0xa2, 0x26, 0x41, 0xe5, 0x6f, 0x17, };
411 static const u8 ed25519_18_test_vectors_message[] = {
412 	0x73, 0x68, 0x72, 0x4a, 0x5b, 0x0e, 0xfb, 0x57, 0xd2, 0x8d, 0x97, 0x62, 0x2d, 0xbd, 0xe7, 0x25, 0xaf, };
413 static const u8 ed25519_18_test_vectors_expected_sig[] = {
414 	0x36, 0x53, 0xcc, 0xb2, 0x12, 0x19, 0x20, 0x2b, 0x84, 0x36, 0xfb, 0x41, 0xa3, 0x2b, 0xa2, 0x61, 0x8c, 0x4a, 0x13, 0x34, 0x31, 0xe6, 0xe6, 0x34, 0x63, 0xce, 0xb3, 0xb6, 0x10, 0x6c, 0x4d, 0x56, 0xe1, 0xd2, 0xba, 0x16, 0x5b, 0xa7, 0x6e, 0xaa, 0xd3, 0xdc, 0x39, 0xbf, 0xfb, 0x13, 0x0f, 0x1d, 0xe3, 0xd8, 0xe6, 0x42, 0x7d, 0xb5, 0xb7, 0x19, 0x38, 0xdb, 0x4e, 0x27, 0x2b, 0xc3, 0xe2, 0x0b, };
415 static const ec_test_case ed25519_18_test_case = {
416 	.name = "EDDSA25519-SHA512/wei25519 18",
417 	.ec_str_p = &wei25519_str_params,
418 	.priv_key = ed25519_18_test_vectors_priv_key,
419 	.priv_key_len = sizeof(ed25519_18_test_vectors_priv_key),
420 	.nn_random = NULL,
421 	.hash_type = SHA512,
422 	.msg = (const char *)ed25519_18_test_vectors_message,
423 	.msglen = sizeof(ed25519_18_test_vectors_message),
424 	.sig_type = EDDSA25519,
425 	.exp_sig = ed25519_18_test_vectors_expected_sig,
426 	.exp_siglen = sizeof(ed25519_18_test_vectors_expected_sig),
427 	.adata = NULL,
428 	.adata_len = 0
429 };
430 
431 /************************************************/
432 static const u8 ed25519_19_test_vectors_priv_key[] = {
433 	0x77, 0xf8, 0x86, 0x91, 0xc4, 0xef, 0xf2, 0x3e, 0xbb, 0x73, 0x64, 0x94, 0x70, 0x92, 0x95, 0x1a, 0x5f, 0xf3, 0xf1, 0x07, 0x85, 0xb4, 0x17, 0xe9, 0x18, 0x82, 0x3a, 0x55, 0x2d, 0xab, 0x7c, 0x75, };
434 static const u8 ed25519_19_test_vectors_message[] = {
435 	0xbd, 0x8e, 0x05, 0x03, 0x3f, 0x3a, 0x8b, 0xcd, 0xcb, 0xf4, 0xbe, 0xce, 0xb7, 0x09, 0x01, 0xc8, 0x2e, 0x31, };
436 static const u8 ed25519_19_test_vectors_expected_sig[] = {
437 	0xfb, 0xe9, 0x29, 0xd7, 0x43, 0xa0, 0x3c, 0x17, 0x91, 0x05, 0x75, 0x49, 0x2f, 0x30, 0x92, 0xee, 0x2a, 0x2b, 0xf1, 0x4a, 0x60, 0xa3, 0xfc, 0xac, 0xec, 0x74, 0xa5, 0x8c, 0x73, 0x34, 0x51, 0x0f, 0xc2, 0x62, 0xdb, 0x58, 0x27, 0x91, 0x32, 0x2d, 0x6c, 0x8c, 0x41, 0xf1, 0x70, 0x0a, 0xdb, 0x80, 0x02, 0x7e, 0xca, 0xbc, 0x14, 0x27, 0x0b, 0x70, 0x34, 0x44, 0xae, 0x3e, 0xe7, 0x62, 0x3e, 0x0a, };
438 static const ec_test_case ed25519_19_test_case = {
439 	.name = "EDDSA25519-SHA512/wei25519 19",
440 	.ec_str_p = &wei25519_str_params,
441 	.priv_key = ed25519_19_test_vectors_priv_key,
442 	.priv_key_len = sizeof(ed25519_19_test_vectors_priv_key),
443 	.nn_random = NULL,
444 	.hash_type = SHA512,
445 	.msg = (const char *)ed25519_19_test_vectors_message,
446 	.msglen = sizeof(ed25519_19_test_vectors_message),
447 	.sig_type = EDDSA25519,
448 	.exp_sig = ed25519_19_test_vectors_expected_sig,
449 	.exp_siglen = sizeof(ed25519_19_test_vectors_expected_sig),
450 	.adata = NULL,
451 	.adata_len = 0
452 };
453 
454 /************************************************/
455 static const u8 ed25519_20_test_vectors_priv_key[] = {
456 	0xab, 0x6f, 0x7a, 0xee, 0x6a, 0x08, 0x37, 0xb3, 0x34, 0xba, 0x5e, 0xb1, 0xb2, 0xad, 0x7f, 0xce, 0xcf, 0xab, 0x7e, 0x32, 0x3c, 0xab, 0x18, 0x7f, 0xe2, 0xe0, 0xa9, 0x5d, 0x80, 0xef, 0xf1, 0x32, };
457 static const u8 ed25519_20_test_vectors_message[] = {
458 	0x81, 0x71, 0x45, 0x6f, 0x8b, 0x90, 0x71, 0x89, 0xb1, 0xd7, 0x79, 0xe2, 0x6b, 0xc5, 0xaf, 0xbb, 0x08, 0xc6, 0x7a, };
459 static const u8 ed25519_20_test_vectors_expected_sig[] = {
460 	0x73, 0xbc, 0xa6, 0x4e, 0x9d, 0xd0, 0xdb, 0x88, 0x13, 0x8e, 0xed, 0xfa, 0xfc, 0xea, 0x8f, 0x54, 0x36, 0xcf, 0xb7, 0x4b, 0xfb, 0x0e, 0x77, 0x33, 0xcf, 0x34, 0x9b, 0xaa, 0x0c, 0x49, 0x77, 0x5c, 0x56, 0xd5, 0x93, 0x4e, 0x1d, 0x38, 0xe3, 0x6f, 0x39, 0xb7, 0xc5, 0xbe, 0xb0, 0xa8, 0x36, 0x51, 0x0c, 0x45, 0x12, 0x6f, 0x8e, 0xc4, 0xb6, 0x81, 0x05, 0x19, 0x90, 0x5b, 0x0c, 0xa0, 0x7c, 0x09, };
461 static const ec_test_case ed25519_20_test_case = {
462 	.name = "EDDSA25519-SHA512/wei25519 20",
463 	.ec_str_p = &wei25519_str_params,
464 	.priv_key = ed25519_20_test_vectors_priv_key,
465 	.priv_key_len = sizeof(ed25519_20_test_vectors_priv_key),
466 	.nn_random = NULL,
467 	.hash_type = SHA512,
468 	.msg = (const char *)ed25519_20_test_vectors_message,
469 	.msglen = sizeof(ed25519_20_test_vectors_message),
470 	.sig_type = EDDSA25519,
471 	.exp_sig = ed25519_20_test_vectors_expected_sig,
472 	.exp_siglen = sizeof(ed25519_20_test_vectors_expected_sig),
473 	.adata = NULL,
474 	.adata_len = 0
475 };
476 
477 /************************************************/
478 static const u8 ed25519_21_test_vectors_priv_key[] = {
479 	0x8d, 0x13, 0x5d, 0xe7, 0xc8, 0x41, 0x1b, 0xbd, 0xbd, 0x1b, 0x31, 0xe5, 0xdc, 0x67, 0x8f, 0x2a, 0xc7, 0x10, 0x9e, 0x79, 0x2b, 0x60, 0xf3, 0x8c, 0xd2, 0x49, 0x36, 0xe8, 0xa8, 0x98, 0xc3, 0x2d, };
480 static const u8 ed25519_21_test_vectors_message[] = {
481 	0x8b, 0xa6, 0xa4, 0xc9, 0xa1, 0x5a, 0x24, 0x4a, 0x9c, 0x26, 0xbb, 0x2a, 0x59, 0xb1, 0x02, 0x6f, 0x21, 0x34, 0x8b, 0x49, };
482 static const u8 ed25519_21_test_vectors_expected_sig[] = {
483 	0xa1, 0xad, 0xc2, 0xbc, 0x6a, 0x2d, 0x98, 0x06, 0x62, 0x67, 0x7e, 0x7f, 0xdf, 0xf6, 0x42, 0x4d, 0xe7, 0xdb, 0xa5, 0x0f, 0x57, 0x95, 0xca, 0x90, 0xfd, 0xf3, 0xe9, 0x6e, 0x25, 0x6f, 0x32, 0x85, 0xca, 0xc7, 0x1d, 0x33, 0x60, 0x48, 0x2e, 0x99, 0x3d, 0x02, 0x94, 0xba, 0x4e, 0xc7, 0x44, 0x0c, 0x61, 0xaf, 0xfd, 0xf3, 0x5f, 0xe8, 0x3e, 0x6e, 0x04, 0x26, 0x39, 0x37, 0xdb, 0x93, 0xf1, 0x05, };
484 static const ec_test_case ed25519_21_test_case = {
485 	.name = "EDDSA25519-SHA512/wei25519 21",
486 	.ec_str_p = &wei25519_str_params,
487 	.priv_key = ed25519_21_test_vectors_priv_key,
488 	.priv_key_len = sizeof(ed25519_21_test_vectors_priv_key),
489 	.nn_random = NULL,
490 	.hash_type = SHA512,
491 	.msg = (const char *)ed25519_21_test_vectors_message,
492 	.msglen = sizeof(ed25519_21_test_vectors_message),
493 	.sig_type = EDDSA25519,
494 	.exp_sig = ed25519_21_test_vectors_expected_sig,
495 	.exp_siglen = sizeof(ed25519_21_test_vectors_expected_sig),
496 	.adata = NULL,
497 	.adata_len = 0
498 };
499 
500 /************************************************/
501 static const u8 ed25519_22_test_vectors_priv_key[] = {
502 	0x0e, 0x76, 0x5d, 0x72, 0x0e, 0x70, 0x5f, 0x93, 0x66, 0xc1, 0xab, 0x8c, 0x3f, 0xa8, 0x4c, 0x9a, 0x44, 0x37, 0x0c, 0x06, 0x96, 0x9f, 0x80, 0x32, 0x96, 0x88, 0x4b, 0x28, 0x46, 0xa6, 0x52, 0xa4, };
503 static const u8 ed25519_22_test_vectors_message[] = {
504 	0x1d, 0x56, 0x6a, 0x62, 0x32, 0xbb, 0xaa, 0xb3, 0xe6, 0xd8, 0x80, 0x4b, 0xb5, 0x18, 0xa4, 0x98, 0xed, 0x0f, 0x90, 0x49, 0x86, };
505 static const u8 ed25519_22_test_vectors_expected_sig[] = {
506 	0xbb, 0x61, 0xcf, 0x84, 0xde, 0x61, 0x86, 0x22, 0x07, 0xc6, 0xa4, 0x55, 0x25, 0x8b, 0xc4, 0xdb, 0x4e, 0x15, 0xee, 0xa0, 0x31, 0x7f, 0xf8, 0x87, 0x18, 0xb8, 0x82, 0xa0, 0x6b, 0x5c, 0xf6, 0xec, 0x6f, 0xd2, 0x0c, 0x5a, 0x26, 0x9e, 0x5d, 0x5c, 0x80, 0x5b, 0xaf, 0xbc, 0xc5, 0x79, 0xe2, 0x59, 0x0a, 0xf4, 0x14, 0xc7, 0xc2, 0x27, 0x27, 0x3c, 0x10, 0x2a, 0x10, 0x07, 0x0c, 0xdf, 0xe8, 0x0f, };
507 static const ec_test_case ed25519_22_test_case = {
508 	.name = "EDDSA25519-SHA512/wei25519 22",
509 	.ec_str_p = &wei25519_str_params,
510 	.priv_key = ed25519_22_test_vectors_priv_key,
511 	.priv_key_len = sizeof(ed25519_22_test_vectors_priv_key),
512 	.nn_random = NULL,
513 	.hash_type = SHA512,
514 	.msg = (const char *)ed25519_22_test_vectors_message,
515 	.msglen = sizeof(ed25519_22_test_vectors_message),
516 	.sig_type = EDDSA25519,
517 	.exp_sig = ed25519_22_test_vectors_expected_sig,
518 	.exp_siglen = sizeof(ed25519_22_test_vectors_expected_sig),
519 	.adata = NULL,
520 	.adata_len = 0
521 };
522 
523 /************************************************/
524 static const u8 ed25519_23_test_vectors_priv_key[] = {
525 	0xdb, 0x36, 0xe3, 0x26, 0xd6, 0x76, 0xc2, 0xd1, 0x9c, 0xc8, 0xfe, 0x0c, 0x14, 0xb7, 0x09, 0x20, 0x2e, 0xcf, 0xc7, 0x61, 0xd2, 0x70, 0x89, 0xeb, 0x6e, 0xa4, 0xb1, 0xbb, 0x02, 0x1e, 0xcf, 0xa7, };
526 static const u8 ed25519_23_test_vectors_message[] = {
527 	0x1b, 0x0a, 0xfb, 0x0a, 0xc4, 0xba, 0x9a, 0xb7, 0xb7, 0x17, 0x2c, 0xdd, 0xc9, 0xeb, 0x42, 0xbb, 0xa1, 0xa6, 0x4b, 0xce, 0x47, 0xd4, };
528 static const u8 ed25519_23_test_vectors_expected_sig[] = {
529 	0xb6, 0xdc, 0xd0, 0x99, 0x89, 0xdf, 0xba, 0xc5, 0x43, 0x22, 0xa3, 0xce, 0x87, 0x87, 0x6e, 0x1d, 0x62, 0x13, 0x4d, 0xa9, 0x98, 0xc7, 0x9d, 0x24, 0xb5, 0x0b, 0xd7, 0xa6, 0xa7, 0x97, 0xd8, 0x6a, 0x0e, 0x14, 0xdc, 0x9d, 0x74, 0x91, 0xd6, 0xc1, 0x4a, 0x67, 0x3c, 0x65, 0x2c, 0xfb, 0xec, 0x9f, 0x96, 0x2a, 0x38, 0xc9, 0x45, 0xda, 0x3b, 0x2f, 0x08, 0x79, 0xd0, 0xb6, 0x8a, 0x92, 0x13, 0x00, };
530 static const ec_test_case ed25519_23_test_case = {
531 	.name = "EDDSA25519-SHA512/wei25519 23",
532 	.ec_str_p = &wei25519_str_params,
533 	.priv_key = ed25519_23_test_vectors_priv_key,
534 	.priv_key_len = sizeof(ed25519_23_test_vectors_priv_key),
535 	.nn_random = NULL,
536 	.hash_type = SHA512,
537 	.msg = (const char *)ed25519_23_test_vectors_message,
538 	.msglen = sizeof(ed25519_23_test_vectors_message),
539 	.sig_type = EDDSA25519,
540 	.exp_sig = ed25519_23_test_vectors_expected_sig,
541 	.exp_siglen = sizeof(ed25519_23_test_vectors_expected_sig),
542 	.adata = NULL,
543 	.adata_len = 0
544 };
545 
546 /************************************************/
547 static const u8 ed25519_24_test_vectors_priv_key[] = {
548 	0xc8, 0x99, 0x55, 0xe0, 0xf7, 0x74, 0x1d, 0x90, 0x5d, 0xf0, 0x73, 0x0b, 0x3d, 0xc2, 0xb0, 0xce, 0x1a, 0x13, 0x13, 0x4e, 0x44, 0xfe, 0xf3, 0xd4, 0x0d, 0x60, 0xc0, 0x20, 0xef, 0x19, 0xdf, 0x77, };
549 static const u8 ed25519_24_test_vectors_message[] = {
550 	0x50, 0x7c, 0x94, 0xc8, 0x82, 0x0d, 0x2a, 0x57, 0x93, 0xcb, 0xf3, 0x44, 0x2b, 0x3d, 0x71, 0x93, 0x6f, 0x35, 0xfe, 0x3a, 0xfe, 0xf3, 0x16, };
551 static const u8 ed25519_24_test_vectors_expected_sig[] = {
552 	0x7e, 0xf6, 0x6e, 0x5e, 0x86, 0xf2, 0x36, 0x08, 0x48, 0xe0, 0x01, 0x4e, 0x94, 0x88, 0x0a, 0xe2, 0x92, 0x0a, 0xd8, 0xa3, 0x18, 0x5a, 0x46, 0xb3, 0x5d, 0x1e, 0x07, 0xde, 0xa8, 0xfa, 0x8a, 0xe4, 0xf6, 0xb8, 0x43, 0xba, 0x17, 0x4d, 0x99, 0xfa, 0x79, 0x86, 0x65, 0x4a, 0x08, 0x91, 0xc1, 0x2a, 0x79, 0x44, 0x55, 0x66, 0x93, 0x75, 0xbf, 0x92, 0xaf, 0x4c, 0xc2, 0x77, 0x0b, 0x57, 0x9e, 0x0c, };
553 static const ec_test_case ed25519_24_test_case = {
554 	.name = "EDDSA25519-SHA512/wei25519 24",
555 	.ec_str_p = &wei25519_str_params,
556 	.priv_key = ed25519_24_test_vectors_priv_key,
557 	.priv_key_len = sizeof(ed25519_24_test_vectors_priv_key),
558 	.nn_random = NULL,
559 	.hash_type = SHA512,
560 	.msg = (const char *)ed25519_24_test_vectors_message,
561 	.msglen = sizeof(ed25519_24_test_vectors_message),
562 	.sig_type = EDDSA25519,
563 	.exp_sig = ed25519_24_test_vectors_expected_sig,
564 	.exp_siglen = sizeof(ed25519_24_test_vectors_expected_sig),
565 	.adata = NULL,
566 	.adata_len = 0
567 };
568 
569 /************************************************/
570 static const u8 ed25519_25_test_vectors_priv_key[] = {
571 	0x4e, 0x62, 0x62, 0x7f, 0xc2, 0x21, 0x14, 0x24, 0x78, 0xae, 0xe7, 0xf0, 0x07, 0x81, 0xf8, 0x17, 0xf6, 0x62, 0xe3, 0xb7, 0x5d, 0xb2, 0x9b, 0xb1, 0x4a, 0xb4, 0x7c, 0xf8, 0xe8, 0x41, 0x04, 0xd6, };
572 static const u8 ed25519_25_test_vectors_message[] = {
573 	0xd3, 0xd6, 0x15, 0xa8, 0x47, 0x2d, 0x99, 0x62, 0xbb, 0x70, 0xc5, 0xb5, 0x46, 0x6a, 0x3d, 0x98, 0x3a, 0x48, 0x11, 0x04, 0x6e, 0x2a, 0x0e, 0xf5, };
574 static const u8 ed25519_25_test_vectors_expected_sig[] = {
575 	0x83, 0x6a, 0xfa, 0x76, 0x4d, 0x9c, 0x48, 0xaa, 0x47, 0x70, 0xa4, 0x38, 0x8b, 0x65, 0x4e, 0x97, 0xb3, 0xc1, 0x6f, 0x08, 0x29, 0x67, 0xfe, 0xbc, 0xa2, 0x7f, 0x2f, 0xc4, 0x7d, 0xdf, 0xd9, 0x24, 0x4b, 0x03, 0xcf, 0xc7, 0x29, 0x69, 0x8a, 0xcf, 0x51, 0x09, 0x70, 0x43, 0x46, 0xb6, 0x0b, 0x23, 0x0f, 0x25, 0x54, 0x30, 0x08, 0x9d, 0xdc, 0x56, 0x91, 0x23, 0x99, 0xd1, 0x12, 0x2d, 0xe7, 0x0a, };
576 static const ec_test_case ed25519_25_test_case = {
577 	.name = "EDDSA25519-SHA512/wei25519 25",
578 	.ec_str_p = &wei25519_str_params,
579 	.priv_key = ed25519_25_test_vectors_priv_key,
580 	.priv_key_len = sizeof(ed25519_25_test_vectors_priv_key),
581 	.nn_random = NULL,
582 	.hash_type = SHA512,
583 	.msg = (const char *)ed25519_25_test_vectors_message,
584 	.msglen = sizeof(ed25519_25_test_vectors_message),
585 	.sig_type = EDDSA25519,
586 	.exp_sig = ed25519_25_test_vectors_expected_sig,
587 	.exp_siglen = sizeof(ed25519_25_test_vectors_expected_sig),
588 	.adata = NULL,
589 	.adata_len = 0
590 };
591 
592 /************************************************/
593 static const u8 ed25519_26_test_vectors_priv_key[] = {
594 	0x6b, 0x83, 0xd7, 0xda, 0x89, 0x08, 0xc3, 0xe7, 0x20, 0x5b, 0x39, 0x86, 0x4b, 0x56, 0xe5, 0xf3, 0xe1, 0x71, 0x96, 0xa3, 0xfc, 0x9c, 0x2f, 0x58, 0x05, 0xaa, 0xd0, 0xf5, 0x55, 0x4c, 0x14, 0x2d, };
595 static const u8 ed25519_26_test_vectors_message[] = {
596 	0x6a, 0xda, 0x80, 0xb6, 0xfa, 0x84, 0xf7, 0x03, 0x49, 0x20, 0x78, 0x9e, 0x85, 0x36, 0xb8, 0x2d, 0x5e, 0x46, 0x78, 0x05, 0x9a, 0xed, 0x27, 0xf7, 0x1c, };
597 static const u8 ed25519_26_test_vectors_expected_sig[] = {
598 	0x16, 0xe4, 0x62, 0xa2, 0x9a, 0x6d, 0xd4, 0x98, 0x68, 0x5a, 0x37, 0x18, 0xb3, 0xee, 0xd0, 0x0c, 0xc1, 0x59, 0x86, 0x01, 0xee, 0x47, 0x82, 0x04, 0x86, 0x03, 0x2d, 0x6b, 0x9a, 0xcc, 0x9b, 0xf8, 0x9f, 0x57, 0x68, 0x4e, 0x08, 0xd8, 0xc0, 0xf0, 0x55, 0x89, 0xcd, 0xa2, 0x88, 0x2a, 0x05, 0xdc, 0x4c, 0x63, 0xf9, 0xd0, 0x43, 0x1d, 0x65, 0x52, 0x71, 0x08, 0x12, 0x43, 0x30, 0x03, 0xbc, 0x08, };
599 static const ec_test_case ed25519_26_test_case = {
600 	.name = "EDDSA25519-SHA512/wei25519 26",
601 	.ec_str_p = &wei25519_str_params,
602 	.priv_key = ed25519_26_test_vectors_priv_key,
603 	.priv_key_len = sizeof(ed25519_26_test_vectors_priv_key),
604 	.nn_random = NULL,
605 	.hash_type = SHA512,
606 	.msg = (const char *)ed25519_26_test_vectors_message,
607 	.msglen = sizeof(ed25519_26_test_vectors_message),
608 	.sig_type = EDDSA25519,
609 	.exp_sig = ed25519_26_test_vectors_expected_sig,
610 	.exp_siglen = sizeof(ed25519_26_test_vectors_expected_sig),
611 	.adata = NULL,
612 	.adata_len = 0
613 };
614 
615 /************************************************/
616 static const u8 ed25519_27_test_vectors_priv_key[] = {
617 	0x19, 0xa9, 0x1f, 0xe2, 0x3a, 0x4e, 0x9e, 0x33, 0xec, 0xc4, 0x74, 0x87, 0x8f, 0x57, 0xc6, 0x4c, 0xf1, 0x54, 0xb3, 0x94, 0x20, 0x34, 0x87, 0xa7, 0x03, 0x5e, 0x1a, 0xd9, 0xcd, 0x69, 0x7b, 0x0d, };
618 static const u8 ed25519_27_test_vectors_message[] = {
619 	0x82, 0xcb, 0x53, 0xc4, 0xd5, 0xa0, 0x13, 0xba, 0xe5, 0x07, 0x07, 0x59, 0xec, 0x06, 0xc3, 0xc6, 0x95, 0x5a, 0xb7, 0xa4, 0x05, 0x09, 0x58, 0xec, 0x32, 0x8c, };
620 static const u8 ed25519_27_test_vectors_expected_sig[] = {
621 	0x88, 0x1f, 0x5b, 0x8c, 0x5a, 0x03, 0x0d, 0xf0, 0xf7, 0x5b, 0x66, 0x34, 0xb0, 0x70, 0xdd, 0x27, 0xbd, 0x1e, 0xe3, 0xc0, 0x87, 0x38, 0xae, 0x34, 0x93, 0x38, 0xb3, 0xee, 0x64, 0x69, 0xbb, 0xf9, 0x76, 0x0b, 0x13, 0x57, 0x8a, 0x23, 0x7d, 0x51, 0x82, 0x53, 0x5e, 0xde, 0x12, 0x12, 0x83, 0x02, 0x7a, 0x90, 0xb5, 0xf8, 0x65, 0xd6, 0x3a, 0x65, 0x37, 0xdc, 0xa0, 0x7b, 0x44, 0x04, 0x9a, 0x0f, };
622 static const ec_test_case ed25519_27_test_case = {
623 	.name = "EDDSA25519-SHA512/wei25519 27",
624 	.ec_str_p = &wei25519_str_params,
625 	.priv_key = ed25519_27_test_vectors_priv_key,
626 	.priv_key_len = sizeof(ed25519_27_test_vectors_priv_key),
627 	.nn_random = NULL,
628 	.hash_type = SHA512,
629 	.msg = (const char *)ed25519_27_test_vectors_message,
630 	.msglen = sizeof(ed25519_27_test_vectors_message),
631 	.sig_type = EDDSA25519,
632 	.exp_sig = ed25519_27_test_vectors_expected_sig,
633 	.exp_siglen = sizeof(ed25519_27_test_vectors_expected_sig),
634 	.adata = NULL,
635 	.adata_len = 0
636 };
637 
638 /************************************************/
639 static const u8 ed25519_28_test_vectors_priv_key[] = {
640 	0x1d, 0x5b, 0x8c, 0xb6, 0x21, 0x5c, 0x18, 0x14, 0x16, 0x66, 0xba, 0xee, 0xfc, 0xf5, 0xd6, 0x9d, 0xad, 0x5b, 0xea, 0x9a, 0x34, 0x93, 0xdd, 0xda, 0xa3, 0x57, 0xa4, 0x39, 0x7a, 0x13, 0xd4, 0xde, };
641 static const u8 ed25519_28_test_vectors_message[] = {
642 	0xa9, 0xa8, 0xcb, 0xb0, 0xad, 0x58, 0x51, 0x24, 0xe5, 0x22, 0xab, 0xbf, 0xb4, 0x05, 0x33, 0xbd, 0xd6, 0xf4, 0x93, 0x47, 0xb5, 0x5b, 0x18, 0xe8, 0x55, 0x8c, 0xb0, };
643 static const u8 ed25519_28_test_vectors_expected_sig[] = {
644 	0x3a, 0xcd, 0x39, 0xbe, 0xc8, 0xc3, 0xcd, 0x2b, 0x44, 0x29, 0x97, 0x22, 0xb5, 0x85, 0x0a, 0x04, 0x00, 0xc1, 0x44, 0x35, 0x90, 0xfd, 0x48, 0x61, 0xd5, 0x9a, 0xae, 0x74, 0x96, 0xac, 0xb3, 0xdf, 0x73, 0xfc, 0x3f, 0xdf, 0x79, 0x69, 0xae, 0x5f, 0x50, 0xba, 0x47, 0xdd, 0xdc, 0x43, 0x52, 0x46, 0xe5, 0xfd, 0x37, 0x6f, 0x6b, 0x89, 0x1c, 0xd4, 0xc2, 0xca, 0xf5, 0xd6, 0x14, 0xb6, 0x17, 0x0c, };
645 static const ec_test_case ed25519_28_test_case = {
646 	.name = "EDDSA25519-SHA512/wei25519 28",
647 	.ec_str_p = &wei25519_str_params,
648 	.priv_key = ed25519_28_test_vectors_priv_key,
649 	.priv_key_len = sizeof(ed25519_28_test_vectors_priv_key),
650 	.nn_random = NULL,
651 	.hash_type = SHA512,
652 	.msg = (const char *)ed25519_28_test_vectors_message,
653 	.msglen = sizeof(ed25519_28_test_vectors_message),
654 	.sig_type = EDDSA25519,
655 	.exp_sig = ed25519_28_test_vectors_expected_sig,
656 	.exp_siglen = sizeof(ed25519_28_test_vectors_expected_sig),
657 	.adata = NULL,
658 	.adata_len = 0
659 };
660 
661 /************************************************/
662 static const u8 ed25519_29_test_vectors_priv_key[] = {
663 	0x6a, 0x91, 0xb3, 0x22, 0x7c, 0x47, 0x22, 0x99, 0x08, 0x9b, 0xdc, 0xe9, 0x35, 0x6e, 0x72, 0x6a, 0x40, 0xef, 0xd8, 0x40, 0xf1, 0x10, 0x02, 0x70, 0x8b, 0x7e, 0xe5, 0x5b, 0x64, 0x10, 0x5a, 0xc2, };
664 static const u8 ed25519_29_test_vectors_message[] = {
665 	0x5c, 0xb6, 0xf9, 0xaa, 0x59, 0xb8, 0x0e, 0xca, 0x14, 0xf6, 0xa6, 0x8f, 0xb4, 0x0c, 0xf0, 0x7b, 0x79, 0x4e, 0x75, 0x17, 0x1f, 0xba, 0x96, 0x26, 0x2c, 0x1c, 0x6a, 0xdc, };
666 static const u8 ed25519_29_test_vectors_expected_sig[] = {
667 	0xf5, 0x87, 0x54, 0x23, 0x78, 0x1b, 0x66, 0x21, 0x6c, 0xb5, 0xe8, 0x99, 0x8d, 0xe5, 0xd9, 0xff, 0xc2, 0x9d, 0x1d, 0x67, 0x10, 0x70, 0x54, 0xac, 0xe3, 0x37, 0x45, 0x03, 0xa9, 0xc3, 0xef, 0x81, 0x15, 0x77, 0xf2, 0x69, 0xde, 0x81, 0x29, 0x67, 0x44, 0xbd, 0x70, 0x6f, 0x1a, 0xc4, 0x78, 0xca, 0xf0, 0x9b, 0x54, 0xcd, 0xf8, 0x71, 0xb3, 0xf8, 0x02, 0xbd, 0x57, 0xf9, 0xa6, 0xcb, 0x91, 0x01, };
668 static const ec_test_case ed25519_29_test_case = {
669 	.name = "EDDSA25519-SHA512/wei25519 29",
670 	.ec_str_p = &wei25519_str_params,
671 	.priv_key = ed25519_29_test_vectors_priv_key,
672 	.priv_key_len = sizeof(ed25519_29_test_vectors_priv_key),
673 	.nn_random = NULL,
674 	.hash_type = SHA512,
675 	.msg = (const char *)ed25519_29_test_vectors_message,
676 	.msglen = sizeof(ed25519_29_test_vectors_message),
677 	.sig_type = EDDSA25519,
678 	.exp_sig = ed25519_29_test_vectors_expected_sig,
679 	.exp_siglen = sizeof(ed25519_29_test_vectors_expected_sig),
680 	.adata = NULL,
681 	.adata_len = 0
682 };
683 
684 /************************************************/
685 static const u8 ed25519_30_test_vectors_priv_key[] = {
686 	0x93, 0xea, 0xa8, 0x54, 0xd7, 0x91, 0xf0, 0x53, 0x72, 0xce, 0x72, 0xb9, 0x4f, 0xc6, 0x50, 0x3b, 0x2f, 0xf8, 0xae, 0x68, 0x19, 0xe6, 0xa2, 0x1a, 0xfe, 0x82, 0x5e, 0x27, 0xad, 0xa9, 0xe4, 0xfb, };
687 static const u8 ed25519_30_test_vectors_message[] = {
688 	0x32, 0xfe, 0x27, 0x99, 0x41, 0x24, 0x20, 0x21, 0x53, 0xb5, 0xc7, 0x0d, 0x38, 0x13, 0xfd, 0xee, 0x9c, 0x2a, 0xa6, 0xe7, 0xdc, 0x74, 0x3d, 0x4d, 0x53, 0x5f, 0x18, 0x40, 0xa5, };
689 static const u8 ed25519_30_test_vectors_expected_sig[] = {
690 	0xd8, 0x34, 0x19, 0x7c, 0x1a, 0x30, 0x80, 0x61, 0x4e, 0x0a, 0x5f, 0xa0, 0xaa, 0xaa, 0x80, 0x88, 0x24, 0xf2, 0x1c, 0x38, 0xd6, 0x92, 0xe6, 0xff, 0xbd, 0x20, 0x0f, 0x7d, 0xfb, 0x3c, 0x8f, 0x44, 0x40, 0x2a, 0x73, 0x82, 0x18, 0x0b, 0x98, 0xad, 0x0a, 0xfc, 0x8e, 0xec, 0x1a, 0x02, 0xac, 0xec, 0xf3, 0xcb, 0x7f, 0xde, 0x62, 0x7b, 0x9f, 0x18, 0x11, 0x1f, 0x26, 0x0a, 0xb1, 0xdb, 0x9a, 0x07, };
691 static const ec_test_case ed25519_30_test_case = {
692 	.name = "EDDSA25519-SHA512/wei25519 30",
693 	.ec_str_p = &wei25519_str_params,
694 	.priv_key = ed25519_30_test_vectors_priv_key,
695 	.priv_key_len = sizeof(ed25519_30_test_vectors_priv_key),
696 	.nn_random = NULL,
697 	.hash_type = SHA512,
698 	.msg = (const char *)ed25519_30_test_vectors_message,
699 	.msglen = sizeof(ed25519_30_test_vectors_message),
700 	.sig_type = EDDSA25519,
701 	.exp_sig = ed25519_30_test_vectors_expected_sig,
702 	.exp_siglen = sizeof(ed25519_30_test_vectors_expected_sig),
703 	.adata = NULL,
704 	.adata_len = 0
705 };
706 
707 /************************************************/
708 static const u8 ed25519_31_test_vectors_priv_key[] = {
709 	0x94, 0x1c, 0xac, 0x69, 0xfb, 0x7b, 0x18, 0x15, 0xc5, 0x7b, 0xb9, 0x87, 0xc4, 0xd6, 0xc2, 0xad, 0x2c, 0x35, 0xd5, 0xf9, 0xa3, 0x18, 0x2a, 0x79, 0xd4, 0xba, 0x13, 0xea, 0xb2, 0x53, 0xa8, 0xad, };
710 static const u8 ed25519_31_test_vectors_message[] = {
711 	0xbb, 0x31, 0x72, 0x79, 0x57, 0x10, 0xfe, 0x00, 0x05, 0x4d, 0x3b, 0x5d, 0xfe, 0xf8, 0xa1, 0x16, 0x23, 0x58, 0x2d, 0xa6, 0x8b, 0xf8, 0xe4, 0x6d, 0x72, 0xd2, 0x7c, 0xec, 0xe2, 0xaa, };
712 static const u8 ed25519_31_test_vectors_expected_sig[] = {
713 	0x0f, 0x8f, 0xad, 0x1e, 0x6b, 0xde, 0x77, 0x1b, 0x4f, 0x54, 0x20, 0xea, 0xc7, 0x5c, 0x37, 0x8b, 0xae, 0x6d, 0xb5, 0xac, 0x66, 0x50, 0xcd, 0x2b, 0xc2, 0x10, 0xc1, 0x82, 0x3b, 0x43, 0x2b, 0x48, 0xe0, 0x16, 0xb1, 0x05, 0x95, 0x45, 0x8f, 0xfa, 0xb9, 0x2f, 0x7a, 0x89, 0x89, 0xb2, 0x93, 0xce, 0xb8, 0xdf, 0xed, 0x6c, 0x24, 0x3a, 0x20, 0x38, 0xfc, 0x06, 0x65, 0x2a, 0xaa, 0xf1, 0x6f, 0x02, };
714 static const ec_test_case ed25519_31_test_case = {
715 	.name = "EDDSA25519-SHA512/wei25519 31",
716 	.ec_str_p = &wei25519_str_params,
717 	.priv_key = ed25519_31_test_vectors_priv_key,
718 	.priv_key_len = sizeof(ed25519_31_test_vectors_priv_key),
719 	.nn_random = NULL,
720 	.hash_type = SHA512,
721 	.msg = (const char *)ed25519_31_test_vectors_message,
722 	.msglen = sizeof(ed25519_31_test_vectors_message),
723 	.sig_type = EDDSA25519,
724 	.exp_sig = ed25519_31_test_vectors_expected_sig,
725 	.exp_siglen = sizeof(ed25519_31_test_vectors_expected_sig),
726 	.adata = NULL,
727 	.adata_len = 0
728 };
729 
730 /************************************************/
731 static const u8 ed25519_32_test_vectors_priv_key[] = {
732 	0x1a, 0xcd, 0xbb, 0x79, 0x3b, 0x03, 0x84, 0x93, 0x46, 0x27, 0x47, 0x0d, 0x79, 0x5c, 0x3d, 0x1d, 0xd4, 0xd7, 0x9c, 0xea, 0x59, 0xef, 0x98, 0x3f, 0x29, 0x5b, 0x9b, 0x59, 0x17, 0x9c, 0xbb, 0x28, };
733 static const u8 ed25519_32_test_vectors_message[] = {
734 	0x7c, 0xf3, 0x4f, 0x75, 0xc3, 0xda, 0xc9, 0xa8, 0x04, 0xd0, 0xfc, 0xd0, 0x9e, 0xba, 0x9b, 0x29, 0xc9, 0x48, 0x4e, 0x8a, 0x01, 0x8f, 0xa9, 0xe0, 0x73, 0x04, 0x2d, 0xf8, 0x8e, 0x3c, 0x56, };
735 static const u8 ed25519_32_test_vectors_expected_sig[] = {
736 	0xbe, 0x71, 0xef, 0x48, 0x06, 0xcb, 0x04, 0x1d, 0x88, 0x5e, 0xff, 0xd9, 0xe6, 0xb0, 0xfb, 0xb7, 0x3d, 0x65, 0xd7, 0xcd, 0xec, 0x47, 0xa8, 0x9c, 0x8a, 0x99, 0x48, 0x92, 0xf4, 0xe5, 0x5a, 0x56, 0x8c, 0x4c, 0xc7, 0x8d, 0x61, 0xf9, 0x01, 0xe8, 0x0d, 0xbb, 0x62, 0x8b, 0x86, 0xa2, 0x3c, 0xcd, 0x59, 0x4e, 0x71, 0x2b, 0x57, 0xfa, 0x94, 0xc2, 0xd6, 0x7e, 0xc2, 0x66, 0x34, 0x87, 0x85, 0x07, };
737 static const ec_test_case ed25519_32_test_case = {
738 	.name = "EDDSA25519-SHA512/wei25519 32",
739 	.ec_str_p = &wei25519_str_params,
740 	.priv_key = ed25519_32_test_vectors_priv_key,
741 	.priv_key_len = sizeof(ed25519_32_test_vectors_priv_key),
742 	.nn_random = NULL,
743 	.hash_type = SHA512,
744 	.msg = (const char *)ed25519_32_test_vectors_message,
745 	.msglen = sizeof(ed25519_32_test_vectors_message),
746 	.sig_type = EDDSA25519,
747 	.exp_sig = ed25519_32_test_vectors_expected_sig,
748 	.exp_siglen = sizeof(ed25519_32_test_vectors_expected_sig),
749 	.adata = NULL,
750 	.adata_len = 0
751 };
752 
753 /************************************************/
754 static const u8 ed25519_33_test_vectors_priv_key[] = {
755 	0x8e, 0xd7, 0xa7, 0x97, 0xb9, 0xce, 0xa8, 0xa8, 0x37, 0x0d, 0x41, 0x91, 0x36, 0xbc, 0xdf, 0x68, 0x3b, 0x75, 0x9d, 0x2e, 0x3c, 0x69, 0x47, 0xf1, 0x7e, 0x13, 0xe2, 0x48, 0x5a, 0xa9, 0xd4, 0x20, };
756 static const u8 ed25519_33_test_vectors_message[] = {
757 	0xa7, 0x50, 0xc2, 0x32, 0x93, 0x3d, 0xc1, 0x4b, 0x11, 0x84, 0xd8, 0x6d, 0x8b, 0x4c, 0xe7, 0x2e, 0x16, 0xd6, 0x97, 0x44, 0xba, 0x69, 0x81, 0x8b, 0x6a, 0xc3, 0x3b, 0x1d, 0x82, 0x3b, 0xb2, 0xc3, };
758 static const u8 ed25519_33_test_vectors_expected_sig[] = {
759 	0x04, 0x26, 0x6c, 0x03, 0x3b, 0x91, 0xc1, 0x32, 0x2c, 0xeb, 0x34, 0x46, 0xc9, 0x01, 0xff, 0xcf, 0x3c, 0xc4, 0x0c, 0x40, 0x34, 0xe8, 0x87, 0xc9, 0x59, 0x7c, 0xa1, 0x89, 0x3b, 0xa7, 0x33, 0x0b, 0xec, 0xbb, 0xd8, 0xb4, 0x81, 0x42, 0xef, 0x35, 0xc0, 0x12, 0xc6, 0xba, 0x51, 0xa6, 0x6d, 0xf9, 0x30, 0x8c, 0xb6, 0x26, 0x8a, 0xd6, 0xb1, 0xe4, 0xb0, 0x3e, 0x70, 0x10, 0x24, 0x95, 0x79, 0x0b, };
760 static const ec_test_case ed25519_33_test_case = {
761 	.name = "EDDSA25519-SHA512/wei25519 33",
762 	.ec_str_p = &wei25519_str_params,
763 	.priv_key = ed25519_33_test_vectors_priv_key,
764 	.priv_key_len = sizeof(ed25519_33_test_vectors_priv_key),
765 	.nn_random = NULL,
766 	.hash_type = SHA512,
767 	.msg = (const char *)ed25519_33_test_vectors_message,
768 	.msglen = sizeof(ed25519_33_test_vectors_message),
769 	.sig_type = EDDSA25519,
770 	.exp_sig = ed25519_33_test_vectors_expected_sig,
771 	.exp_siglen = sizeof(ed25519_33_test_vectors_expected_sig),
772 	.adata = NULL,
773 	.adata_len = 0
774 };
775 
776 /************************************************/
777 static const u8 ed25519_34_test_vectors_priv_key[] = {
778 	0xf2, 0xab, 0x39, 0x6f, 0xe8, 0x90, 0x6e, 0x3e, 0x56, 0x33, 0xe9, 0x9c, 0xab, 0xcd, 0x5b, 0x09, 0xdf, 0x08, 0x59, 0xb5, 0x16, 0x23, 0x0b, 0x1e, 0x04, 0x50, 0xb5, 0x80, 0xb6, 0x5f, 0x61, 0x6c, };
779 static const u8 ed25519_34_test_vectors_message[] = {
780 	0x5a, 0x44, 0xe3, 0x4b, 0x74, 0x6c, 0x5f, 0xd1, 0x89, 0x8d, 0x55, 0x2a, 0xb3, 0x54, 0xd2, 0x8f, 0xb4, 0x71, 0x38, 0x56, 0xd7, 0x69, 0x7d, 0xd6, 0x3e, 0xb9, 0xbd, 0x6b, 0x99, 0xc2, 0x80, 0xe1, 0x87, };
781 static const u8 ed25519_34_test_vectors_expected_sig[] = {
782 	0xa0, 0x6a, 0x23, 0xd9, 0x82, 0xd8, 0x1a, 0xb8, 0x83, 0xaa, 0xe2, 0x30, 0xad, 0xbc, 0x36, 0x8a, 0x6a, 0x99, 0x77, 0xf0, 0x03, 0xce, 0xbb, 0x00, 0xd4, 0xc2, 0xe4, 0x01, 0x84, 0x90, 0x19, 0x1a, 0x84, 0xd3, 0xa2, 0x82, 0xfd, 0xbf, 0xb2, 0xfc, 0x88, 0x04, 0x6e, 0x62, 0xde, 0x43, 0xe1, 0x5f, 0xb5, 0x75, 0x33, 0x6b, 0x3c, 0x8b, 0x77, 0xd1, 0x9c, 0xe6, 0xa0, 0x09, 0xce, 0x51, 0xf5, 0x0c, };
783 static const ec_test_case ed25519_34_test_case = {
784 	.name = "EDDSA25519-SHA512/wei25519 34",
785 	.ec_str_p = &wei25519_str_params,
786 	.priv_key = ed25519_34_test_vectors_priv_key,
787 	.priv_key_len = sizeof(ed25519_34_test_vectors_priv_key),
788 	.nn_random = NULL,
789 	.hash_type = SHA512,
790 	.msg = (const char *)ed25519_34_test_vectors_message,
791 	.msglen = sizeof(ed25519_34_test_vectors_message),
792 	.sig_type = EDDSA25519,
793 	.exp_sig = ed25519_34_test_vectors_expected_sig,
794 	.exp_siglen = sizeof(ed25519_34_test_vectors_expected_sig),
795 	.adata = NULL,
796 	.adata_len = 0
797 };
798 
799 /************************************************/
800 static const u8 ed25519_35_test_vectors_priv_key[] = {
801 	0x55, 0x0a, 0x41, 0xc0, 0x13, 0xf7, 0x9b, 0xab, 0x8f, 0x06, 0xe4, 0x3a, 0xd1, 0x83, 0x6d, 0x51, 0x31, 0x27, 0x36, 0xa9, 0x71, 0x38, 0x06, 0xfa, 0xfe, 0x66, 0x45, 0x21, 0x9e, 0xaa, 0x1f, 0x9d, };
802 static const u8 ed25519_35_test_vectors_message[] = {
803 	0x8b, 0xc4, 0x18, 0x5e, 0x50, 0xe5, 0x7d, 0x5f, 0x87, 0xf4, 0x75, 0x15, 0xfe, 0x2b, 0x18, 0x37, 0xd5, 0x85, 0xf0, 0xaa, 0xe9, 0xe1, 0xca, 0x38, 0x3b, 0x3e, 0xc9, 0x08, 0x88, 0x4b, 0xb9, 0x00, 0xff, 0x27, };
804 static const u8 ed25519_35_test_vectors_expected_sig[] = {
805 	0x16, 0xdc, 0x1e, 0x2b, 0x9f, 0xa9, 0x09, 0xee, 0xfd, 0xc2, 0x77, 0xba, 0x16, 0xeb, 0xe2, 0x07, 0xb8, 0xda, 0x5e, 0x91, 0x14, 0x3c, 0xde, 0x78, 0xc5, 0x04, 0x7a, 0x89, 0xf6, 0x81, 0xc3, 0x3c, 0x4e, 0x4e, 0x34, 0x28, 0xd5, 0xc9, 0x28, 0x09, 0x59, 0x03, 0xa8, 0x11, 0xec, 0x00, 0x2d, 0x52, 0xa3, 0x9e, 0xd7, 0xf8, 0xb3, 0xfe, 0x19, 0x27, 0x20, 0x0c, 0x6d, 0xd0, 0xb9, 0xab, 0x3e, 0x04, };
806 static const ec_test_case ed25519_35_test_case = {
807 	.name = "EDDSA25519-SHA512/wei25519 35",
808 	.ec_str_p = &wei25519_str_params,
809 	.priv_key = ed25519_35_test_vectors_priv_key,
810 	.priv_key_len = sizeof(ed25519_35_test_vectors_priv_key),
811 	.nn_random = NULL,
812 	.hash_type = SHA512,
813 	.msg = (const char *)ed25519_35_test_vectors_message,
814 	.msglen = sizeof(ed25519_35_test_vectors_message),
815 	.sig_type = EDDSA25519,
816 	.exp_sig = ed25519_35_test_vectors_expected_sig,
817 	.exp_siglen = sizeof(ed25519_35_test_vectors_expected_sig),
818 	.adata = NULL,
819 	.adata_len = 0
820 };
821 
822 /************************************************/
823 static const u8 ed25519_36_test_vectors_priv_key[] = {
824 	0x19, 0xac, 0x3e, 0x27, 0x24, 0x38, 0xc7, 0x2d, 0xdf, 0x7b, 0x88, 0x19, 0x64, 0x86, 0x7c, 0xb3, 0xb3, 0x1f, 0xf4, 0xc7, 0x93, 0xbb, 0x7e, 0xa1, 0x54, 0x61, 0x3c, 0x1d, 0xb0, 0x68, 0xcb, 0x7e, };
825 static const u8 ed25519_36_test_vectors_message[] = {
826 	0x95, 0x87, 0x2d, 0x5f, 0x78, 0x9f, 0x95, 0x48, 0x4e, 0x30, 0xcb, 0xb0, 0xe1, 0x14, 0x02, 0x89, 0x53, 0xb1, 0x6f, 0x5c, 0x6a, 0x8d, 0x9f, 0x65, 0xc0, 0x03, 0xa8, 0x35, 0x43, 0xbe, 0xaa, 0x46, 0xb3, 0x86, 0x45, };
827 static const u8 ed25519_36_test_vectors_expected_sig[] = {
828 	0xea, 0x85, 0x5d, 0x78, 0x1c, 0xbe, 0xa4, 0x68, 0x2e, 0x35, 0x01, 0x73, 0xcb, 0x89, 0xe8, 0x61, 0x9c, 0xcf, 0xdd, 0xb9, 0x7c, 0xdc, 0xe1, 0x6f, 0x9a, 0x2f, 0x6f, 0x68, 0x92, 0xf4, 0x6d, 0xbe, 0x68, 0xe0, 0x4b, 0x12, 0xb8, 0xd8, 0x86, 0x89, 0xa7, 0xa3, 0x16, 0x70, 0xcd, 0xff, 0x40, 0x9a, 0xf9, 0x8a, 0x93, 0xb4, 0x9a, 0x34, 0x53, 0x7b, 0x6a, 0xa0, 0x09, 0xd2, 0xeb, 0x8b, 0x47, 0x01, };
829 static const ec_test_case ed25519_36_test_case = {
830 	.name = "EDDSA25519-SHA512/wei25519 36",
831 	.ec_str_p = &wei25519_str_params,
832 	.priv_key = ed25519_36_test_vectors_priv_key,
833 	.priv_key_len = sizeof(ed25519_36_test_vectors_priv_key),
834 	.nn_random = NULL,
835 	.hash_type = SHA512,
836 	.msg = (const char *)ed25519_36_test_vectors_message,
837 	.msglen = sizeof(ed25519_36_test_vectors_message),
838 	.sig_type = EDDSA25519,
839 	.exp_sig = ed25519_36_test_vectors_expected_sig,
840 	.exp_siglen = sizeof(ed25519_36_test_vectors_expected_sig),
841 	.adata = NULL,
842 	.adata_len = 0
843 };
844 
845 /************************************************/
846 static const u8 ed25519_37_test_vectors_priv_key[] = {
847 	0xca, 0x26, 0x7d, 0xe9, 0x6c, 0x93, 0xc2, 0x38, 0xfa, 0xfb, 0x12, 0x79, 0x81, 0x20, 0x59, 0xab, 0x93, 0xac, 0x03, 0x05, 0x96, 0x57, 0xfd, 0x99, 0x4f, 0x8f, 0xa5, 0xa0, 0x92, 0x39, 0xc8, 0x21, };
848 static const u8 ed25519_37_test_vectors_message[] = {
849 	0xe0, 0x5f, 0x71, 0xe4, 0xe4, 0x9a, 0x72, 0xec, 0x55, 0x0c, 0x44, 0xa3, 0xb8, 0x5a, 0xca, 0x8f, 0x20, 0xff, 0x26, 0xc3, 0xee, 0x94, 0xa8, 0x0f, 0x1b, 0x43, 0x1c, 0x7d, 0x15, 0x4e, 0xc9, 0x60, 0x3e, 0xe0, 0x25, 0x31, };
850 static const u8 ed25519_37_test_vectors_expected_sig[] = {
851 	0xac, 0x95, 0x7f, 0x82, 0x33, 0x5a, 0xa7, 0x14, 0x1e, 0x96, 0xb5, 0x9d, 0x63, 0xe3, 0xcc, 0xee, 0x95, 0xc3, 0xa2, 0xc4, 0x7d, 0x02, 0x65, 0x40, 0xc2, 0xaf, 0x42, 0xdc, 0x95, 0x33, 0xd5, 0xfd, 0x81, 0x82, 0x7d, 0x16, 0x79, 0xad, 0x18, 0x7a, 0xea, 0xf3, 0x78, 0x34, 0x91, 0x5e, 0x75, 0xb1, 0x47, 0xa9, 0x28, 0x68, 0x06, 0xc8, 0x01, 0x75, 0x16, 0xba, 0x43, 0xdd, 0x05, 0x1a, 0x5e, 0x0c, };
852 static const ec_test_case ed25519_37_test_case = {
853 	.name = "EDDSA25519-SHA512/wei25519 37",
854 	.ec_str_p = &wei25519_str_params,
855 	.priv_key = ed25519_37_test_vectors_priv_key,
856 	.priv_key_len = sizeof(ed25519_37_test_vectors_priv_key),
857 	.nn_random = NULL,
858 	.hash_type = SHA512,
859 	.msg = (const char *)ed25519_37_test_vectors_message,
860 	.msglen = sizeof(ed25519_37_test_vectors_message),
861 	.sig_type = EDDSA25519,
862 	.exp_sig = ed25519_37_test_vectors_expected_sig,
863 	.exp_siglen = sizeof(ed25519_37_test_vectors_expected_sig),
864 	.adata = NULL,
865 	.adata_len = 0
866 };
867 
868 /************************************************/
869 static const u8 ed25519_38_test_vectors_priv_key[] = {
870 	0x3d, 0xff, 0x5e, 0x89, 0x94, 0x75, 0xe7, 0xe9, 0x1d, 0xd2, 0x61, 0x32, 0x2f, 0xab, 0x09, 0x98, 0x0c, 0x52, 0x97, 0x0d, 0xe1, 0xda, 0x6e, 0x2e, 0x20, 0x16, 0x60, 0xcc, 0x4f, 0xce, 0x70, 0x32, };
871 static const u8 ed25519_38_test_vectors_message[] = {
872 	0x93, 0x8f, 0x0e, 0x77, 0x62, 0x1b, 0xf3, 0xea, 0x52, 0xc7, 0xc4, 0x91, 0x1c, 0x51, 0x57, 0xc2, 0xd8, 0xa2, 0xa8, 0x58, 0x09, 0x3e, 0xf1, 0x6a, 0xa9, 0xb1, 0x07, 0xe6, 0x9d, 0x98, 0x03, 0x7b, 0xa1, 0x39, 0xa3, 0xc3, 0x82, };
873 static const u8 ed25519_38_test_vectors_expected_sig[] = {
874 	0x5e, 0xfe, 0x7a, 0x92, 0xff, 0x96, 0x23, 0x08, 0x9b, 0x3e, 0x3b, 0x78, 0xf3, 0x52, 0x11, 0x53, 0x66, 0xe2, 0x6b, 0xa3, 0xfb, 0x1a, 0x41, 0x62, 0x09, 0xbc, 0x02, 0x9e, 0x9c, 0xad, 0xcc, 0xd9, 0xf4, 0xaf, 0xfa, 0x33, 0x35, 0x55, 0xa8, 0xf3, 0xa3, 0x5a, 0x9d, 0x0f, 0x7c, 0x34, 0xb2, 0x92, 0xca, 0xe7, 0x7e, 0xc9, 0x6f, 0xa3, 0xad, 0xfc, 0xaa, 0xde, 0xe2, 0xd9, 0xce, 0xd8, 0xf8, 0x05, };
875 static const ec_test_case ed25519_38_test_case = {
876 	.name = "EDDSA25519-SHA512/wei25519 38",
877 	.ec_str_p = &wei25519_str_params,
878 	.priv_key = ed25519_38_test_vectors_priv_key,
879 	.priv_key_len = sizeof(ed25519_38_test_vectors_priv_key),
880 	.nn_random = NULL,
881 	.hash_type = SHA512,
882 	.msg = (const char *)ed25519_38_test_vectors_message,
883 	.msglen = sizeof(ed25519_38_test_vectors_message),
884 	.sig_type = EDDSA25519,
885 	.exp_sig = ed25519_38_test_vectors_expected_sig,
886 	.exp_siglen = sizeof(ed25519_38_test_vectors_expected_sig),
887 	.adata = NULL,
888 	.adata_len = 0
889 };
890 
891 /************************************************/
892 static const u8 ed25519_39_test_vectors_priv_key[] = {
893 	0x9a, 0x6b, 0x84, 0x78, 0x64, 0xe7, 0x0c, 0xfe, 0x8b, 0xa6, 0xab, 0x22, 0xfa, 0x0c, 0xa3, 0x08, 0xc0, 0xcc, 0x8b, 0xec, 0x71, 0x41, 0xfb, 0xca, 0xa3, 0xb8, 0x1f, 0x5d, 0x1e, 0x1c, 0xfc, 0xfc, };
894 static const u8 ed25519_39_test_vectors_message[] = {
895 	0x83, 0x83, 0x67, 0x47, 0x11, 0x83, 0xc7, 0x1f, 0x7e, 0x71, 0x77, 0x24, 0xf8, 0x9d, 0x40, 0x1c, 0x3a, 0xd9, 0x86, 0x3f, 0xd9, 0xcc, 0x7a, 0xa3, 0xcf, 0x33, 0xd3, 0xc5, 0x29, 0x86, 0x0c, 0xb5, 0x81, 0xf3, 0x09, 0x3d, 0x87, 0xda, };
896 static const u8 ed25519_39_test_vectors_expected_sig[] = {
897 	0x2a, 0xb2, 0x55, 0x16, 0x9c, 0x48, 0x9c, 0x54, 0xc7, 0x32, 0x23, 0x2e, 0x37, 0xc8, 0x73, 0x49, 0xd4, 0x86, 0xb1, 0xeb, 0xa2, 0x05, 0x09, 0xdb, 0xab, 0xe7, 0xfe, 0xd3, 0x29, 0xef, 0x08, 0xfd, 0x75, 0xba, 0x1c, 0xd1, 0x45, 0xe6, 0x7b, 0x2e, 0xa2, 0x6c, 0xb5, 0xcc, 0x51, 0xca, 0xb3, 0x43, 0xee, 0xb0, 0x85, 0xfe, 0x1f, 0xd7, 0xb0, 0xec, 0x4c, 0x6a, 0xfc, 0xd9, 0xb9, 0x79, 0xf9, 0x05, };
898 static const ec_test_case ed25519_39_test_case = {
899 	.name = "EDDSA25519-SHA512/wei25519 39",
900 	.ec_str_p = &wei25519_str_params,
901 	.priv_key = ed25519_39_test_vectors_priv_key,
902 	.priv_key_len = sizeof(ed25519_39_test_vectors_priv_key),
903 	.nn_random = NULL,
904 	.hash_type = SHA512,
905 	.msg = (const char *)ed25519_39_test_vectors_message,
906 	.msglen = sizeof(ed25519_39_test_vectors_message),
907 	.sig_type = EDDSA25519,
908 	.exp_sig = ed25519_39_test_vectors_expected_sig,
909 	.exp_siglen = sizeof(ed25519_39_test_vectors_expected_sig),
910 	.adata = NULL,
911 	.adata_len = 0
912 };
913 
914 /************************************************/
915 static const u8 ed25519_40_test_vectors_priv_key[] = {
916 	0x57, 0x5b, 0xe0, 0x7a, 0xfc, 0xa5, 0xd0, 0x63, 0xc2, 0x38, 0xcd, 0x9b, 0x80, 0x28, 0x77, 0x2c, 0xc4, 0x9c, 0xda, 0x34, 0x47, 0x14, 0x32, 0xa2, 0xe1, 0x66, 0xe0, 0x96, 0xe2, 0x21, 0x9e, 0xfc, };
917 static const u8 ed25519_40_test_vectors_message[] = {
918 	0x33, 0xe5, 0x91, 0x8b, 0x66, 0xd3, 0x3d, 0x55, 0xfe, 0x71, 0x7c, 0xa3, 0x43, 0x83, 0xea, 0xe7, 0x8f, 0x0a, 0xf8, 0x28, 0x89, 0xca, 0xf6, 0x69, 0x6e, 0x1a, 0xc9, 0xd9, 0x5d, 0x1f, 0xfb, 0x32, 0xcb, 0xa7, 0x55, 0xf9, 0xe3, 0x50, 0x3e, };
919 static const u8 ed25519_40_test_vectors_expected_sig[] = {
920 	0x58, 0x27, 0x1d, 0x44, 0x23, 0x6f, 0x3b, 0x98, 0xc5, 0x8f, 0xd7, 0xae, 0x0d, 0x2f, 0x49, 0xef, 0x2b, 0x6e, 0x3a, 0xff, 0xdb, 0x22, 0x5a, 0xa3, 0xba, 0x55, 0x5f, 0x0e, 0x11, 0xcc, 0x53, 0xc2, 0x3a, 0xd1, 0x9b, 0xaf, 0x24, 0x34, 0x65, 0x90, 0xd0, 0x5d, 0x7d, 0x53, 0x90, 0x58, 0x20, 0x82, 0xcf, 0x94, 0xd3, 0x9c, 0xad, 0x65, 0x30, 0xab, 0x93, 0xd1, 0x3e, 0xfb, 0x39, 0x27, 0x95, 0x06, };
921 static const ec_test_case ed25519_40_test_case = {
922 	.name = "EDDSA25519-SHA512/wei25519 40",
923 	.ec_str_p = &wei25519_str_params,
924 	.priv_key = ed25519_40_test_vectors_priv_key,
925 	.priv_key_len = sizeof(ed25519_40_test_vectors_priv_key),
926 	.nn_random = NULL,
927 	.hash_type = SHA512,
928 	.msg = (const char *)ed25519_40_test_vectors_message,
929 	.msglen = sizeof(ed25519_40_test_vectors_message),
930 	.sig_type = EDDSA25519,
931 	.exp_sig = ed25519_40_test_vectors_expected_sig,
932 	.exp_siglen = sizeof(ed25519_40_test_vectors_expected_sig),
933 	.adata = NULL,
934 	.adata_len = 0
935 };
936 
937 /************************************************/
938 static const u8 ed25519_41_test_vectors_priv_key[] = {
939 	0x15, 0xff, 0xb4, 0x55, 0x14, 0xd4, 0x34, 0x44, 0xd6, 0x1f, 0xcb, 0x10, 0x5e, 0x30, 0xe1, 0x35, 0xfd, 0x26, 0x85, 0x23, 0xdd, 0xa2, 0x0b, 0x82, 0x75, 0x8b, 0x17, 0x94, 0x23, 0x11, 0x04, 0x41, };
940 static const u8 ed25519_41_test_vectors_message[] = {
941 	0xda, 0x9c, 0x55, 0x59, 0xd0, 0xea, 0x51, 0xd2, 0x55, 0xb6, 0xbd, 0x9d, 0x76, 0x38, 0xb8, 0x76, 0x47, 0x2f, 0x94, 0x2b, 0x33, 0x0f, 0xc0, 0xe2, 0xb3, 0x0a, 0xea, 0x68, 0xd7, 0x73, 0x68, 0xfc, 0xe4, 0x94, 0x82, 0x72, 0x99, 0x1d, 0x25, 0x7e, };
942 static const u8 ed25519_41_test_vectors_expected_sig[] = {
943 	0x68, 0x28, 0xcd, 0x76, 0x24, 0xe7, 0x93, 0xb8, 0xa4, 0xce, 0xb9, 0x6d, 0x3c, 0x2a, 0x97, 0x5b, 0xf7, 0x73, 0xe5, 0xff, 0x66, 0x45, 0xf3, 0x53, 0x61, 0x40, 0x58, 0x62, 0x1e, 0x58, 0x83, 0x52, 0x89, 0xe7, 0xf3, 0x1f, 0x42, 0xdf, 0xe6, 0xaf, 0x6d, 0x73, 0x6f, 0x26, 0x44, 0x51, 0x1e, 0x32, 0x0c, 0x0f, 0xa6, 0x98, 0x58, 0x2a, 0x79, 0x77, 0x8d, 0x18, 0x73, 0x0e, 0xd3, 0xe8, 0xcb, 0x08, };
944 static const ec_test_case ed25519_41_test_case = {
945 	.name = "EDDSA25519-SHA512/wei25519 41",
946 	.ec_str_p = &wei25519_str_params,
947 	.priv_key = ed25519_41_test_vectors_priv_key,
948 	.priv_key_len = sizeof(ed25519_41_test_vectors_priv_key),
949 	.nn_random = NULL,
950 	.hash_type = SHA512,
951 	.msg = (const char *)ed25519_41_test_vectors_message,
952 	.msglen = sizeof(ed25519_41_test_vectors_message),
953 	.sig_type = EDDSA25519,
954 	.exp_sig = ed25519_41_test_vectors_expected_sig,
955 	.exp_siglen = sizeof(ed25519_41_test_vectors_expected_sig),
956 	.adata = NULL,
957 	.adata_len = 0
958 };
959 
960 /************************************************/
961 static const u8 ed25519_42_test_vectors_priv_key[] = {
962 	0xfe, 0x05, 0x68, 0x64, 0x29, 0x43, 0xb2, 0xe1, 0xaf, 0xbf, 0xd1, 0xf1, 0x0f, 0xe8, 0xdf, 0x87, 0xa4, 0x23, 0x6b, 0xea, 0x40, 0xdc, 0xe7, 0x42, 0x07, 0x2c, 0xb2, 0x18, 0x86, 0xee, 0xc1, 0xfa, };
963 static const u8 ed25519_42_test_vectors_message[] = {
964 	0xc5, 0x9d, 0x08, 0x62, 0xec, 0x1c, 0x97, 0x46, 0xab, 0xcc, 0x3c, 0xf8, 0x3c, 0x9e, 0xeb, 0xa2, 0xc7, 0x08, 0x2a, 0x03, 0x6a, 0x8c, 0xb5, 0x7c, 0xe4, 0x87, 0xe7, 0x63, 0x49, 0x27, 0x96, 0xd4, 0x7e, 0x6e, 0x06, 0x3a, 0x0c, 0x1f, 0xec, 0xcc, 0x2d, };
965 static const u8 ed25519_42_test_vectors_expected_sig[] = {
966 	0xd5, 0x9e, 0x6d, 0xfc, 0xc6, 0xd7, 0xe3, 0xe2, 0xc5, 0x8d, 0xec, 0x81, 0xe9, 0x85, 0xd2, 0x45, 0xe6, 0x81, 0xac, 0xf6, 0x59, 0x4a, 0x23, 0xc5, 0x92, 0x14, 0xf7, 0xbe, 0xd8, 0x01, 0x5d, 0x81, 0x3c, 0x76, 0x82, 0xb6, 0x0b, 0x35, 0x83, 0x44, 0x03, 0x11, 0xe7, 0x2a, 0x86, 0x65, 0xba, 0x2c, 0x96, 0xde, 0xc2, 0x3c, 0xe8, 0x26, 0xe1, 0x60, 0x12, 0x7e, 0x18, 0x13, 0x2b, 0x03, 0x04, 0x04, };
967 static const ec_test_case ed25519_42_test_case = {
968 	.name = "EDDSA25519-SHA512/wei25519 42",
969 	.ec_str_p = &wei25519_str_params,
970 	.priv_key = ed25519_42_test_vectors_priv_key,
971 	.priv_key_len = sizeof(ed25519_42_test_vectors_priv_key),
972 	.nn_random = NULL,
973 	.hash_type = SHA512,
974 	.msg = (const char *)ed25519_42_test_vectors_message,
975 	.msglen = sizeof(ed25519_42_test_vectors_message),
976 	.sig_type = EDDSA25519,
977 	.exp_sig = ed25519_42_test_vectors_expected_sig,
978 	.exp_siglen = sizeof(ed25519_42_test_vectors_expected_sig),
979 	.adata = NULL,
980 	.adata_len = 0
981 };
982 
983 /************************************************/
984 static const u8 ed25519_43_test_vectors_priv_key[] = {
985 	0x5e, 0xcb, 0x16, 0xc2, 0xdf, 0x27, 0xc8, 0xcf, 0x58, 0xe4, 0x36, 0xa9, 0xd3, 0xaf, 0xfb, 0xd5, 0x8e, 0x95, 0x38, 0xa9, 0x26, 0x59, 0xa0, 0xf9, 0x7c, 0x4c, 0x4f, 0x99, 0x46, 0x35, 0xa8, 0xca, };
986 static const u8 ed25519_43_test_vectors_message[] = {
987 	0x56, 0xf1, 0x32, 0x9d, 0x9a, 0x6b, 0xe2, 0x5a, 0x61, 0x59, 0xc7, 0x2f, 0x12, 0x68, 0x8d, 0xc8, 0x31, 0x4e, 0x85, 0xdd, 0x9e, 0x7e, 0x4d, 0xc0, 0x5b, 0xbe, 0xcb, 0x77, 0x29, 0xe0, 0x23, 0xc8, 0x6f, 0x8e, 0x09, 0x37, 0x35, 0x3f, 0x27, 0xc7, 0xed, 0xe9, };
988 static const u8 ed25519_43_test_vectors_expected_sig[] = {
989 	0x1c, 0x72, 0x3a, 0x20, 0xc6, 0x77, 0x24, 0x26, 0xa6, 0x70, 0xe4, 0xd5, 0xc4, 0xa9, 0x7c, 0x6e, 0xbe, 0x91, 0x47, 0xf7, 0x1b, 0xb0, 0xa4, 0x15, 0x63, 0x1e, 0x44, 0x40, 0x6e, 0x29, 0x03, 0x22, 0xe4, 0xca, 0x97, 0x7d, 0x34, 0x8f, 0xe7, 0x85, 0x6a, 0x8e, 0xdc, 0x23, 0x5d, 0x0f, 0xe9, 0x5f, 0x7e, 0xd9, 0x1a, 0xef, 0xdd, 0xf2, 0x8a, 0x77, 0xe2, 0xc7, 0xdb, 0xfd, 0x8f, 0x55, 0x2f, 0x0a, };
990 static const ec_test_case ed25519_43_test_case = {
991 	.name = "EDDSA25519-SHA512/wei25519 43",
992 	.ec_str_p = &wei25519_str_params,
993 	.priv_key = ed25519_43_test_vectors_priv_key,
994 	.priv_key_len = sizeof(ed25519_43_test_vectors_priv_key),
995 	.nn_random = NULL,
996 	.hash_type = SHA512,
997 	.msg = (const char *)ed25519_43_test_vectors_message,
998 	.msglen = sizeof(ed25519_43_test_vectors_message),
999 	.sig_type = EDDSA25519,
1000 	.exp_sig = ed25519_43_test_vectors_expected_sig,
1001 	.exp_siglen = sizeof(ed25519_43_test_vectors_expected_sig),
1002 	.adata = NULL,
1003 	.adata_len = 0
1004 };
1005 
1006 /************************************************/
1007 static const u8 ed25519_44_test_vectors_priv_key[] = {
1008 	0xd5, 0x99, 0xd6, 0x37, 0xb3, 0xc3, 0x0a, 0x82, 0xa9, 0x98, 0x4e, 0x2f, 0x75, 0x84, 0x97, 0xd1, 0x44, 0xde, 0x6f, 0x06, 0xb9, 0xfb, 0xa0, 0x4d, 0xd4, 0x0f, 0xd9, 0x49, 0x03, 0x9d, 0x7c, 0x84, };
1009 static const u8 ed25519_44_test_vectors_message[] = {
1010 	0xa7, 0xc0, 0x4e, 0x8b, 0xa7, 0x5d, 0x0a, 0x03, 0xd8, 0xb1, 0x66, 0xad, 0x7a, 0x1d, 0x77, 0xe1, 0xb9, 0x1c, 0x7a, 0xaf, 0x7b, 0xef, 0xdd, 0x99, 0x31, 0x1f, 0xc3, 0xc5, 0x4a, 0x68, 0x4d, 0xdd, 0x97, 0x1d, 0x5b, 0x32, 0x11, 0xc3, 0xee, 0xaf, 0xf1, 0xe5, 0x4e, };
1011 static const u8 ed25519_44_test_vectors_expected_sig[] = {
1012 	0xeb, 0xf1, 0x0d, 0x9a, 0xc7, 0xc9, 0x61, 0x08, 0x14, 0x0e, 0x7d, 0xef, 0x6f, 0xe9, 0x53, 0x3d, 0x72, 0x76, 0x46, 0xff, 0x5b, 0x3a, 0xf2, 0x73, 0xc1, 0xdf, 0x95, 0x76, 0x2a, 0x66, 0xf3, 0x2b, 0x65, 0xa0, 0x96, 0x34, 0xd0, 0x13, 0xf5, 0x4b, 0x5d, 0xd6, 0x01, 0x1f, 0x91, 0xbc, 0x33, 0x6c, 0xa8, 0xb3, 0x55, 0xce, 0x33, 0xf8, 0xcf, 0xbe, 0xc2, 0x53, 0x5a, 0x4c, 0x42, 0x7f, 0x82, 0x05, };
1013 static const ec_test_case ed25519_44_test_case = {
1014 	.name = "EDDSA25519-SHA512/wei25519 44",
1015 	.ec_str_p = &wei25519_str_params,
1016 	.priv_key = ed25519_44_test_vectors_priv_key,
1017 	.priv_key_len = sizeof(ed25519_44_test_vectors_priv_key),
1018 	.nn_random = NULL,
1019 	.hash_type = SHA512,
1020 	.msg = (const char *)ed25519_44_test_vectors_message,
1021 	.msglen = sizeof(ed25519_44_test_vectors_message),
1022 	.sig_type = EDDSA25519,
1023 	.exp_sig = ed25519_44_test_vectors_expected_sig,
1024 	.exp_siglen = sizeof(ed25519_44_test_vectors_expected_sig),
1025 	.adata = NULL,
1026 	.adata_len = 0
1027 };
1028 
1029 /************************************************/
1030 static const u8 ed25519_45_test_vectors_priv_key[] = {
1031 	0x30, 0xab, 0x82, 0x32, 0xfa, 0x70, 0x18, 0xf0, 0xce, 0x6c, 0x39, 0xbd, 0x8f, 0x78, 0x2f, 0xe2, 0xe1, 0x59, 0x75, 0x8b, 0xb0, 0xf2, 0xf4, 0x38, 0x6c, 0x7f, 0x28, 0xcf, 0xd2, 0xc8, 0x58, 0x98, };
1032 static const u8 ed25519_45_test_vectors_message[] = {
1033 	0x63, 0xb8, 0x0b, 0x79, 0x56, 0xac, 0xbe, 0xcf, 0x0c, 0x35, 0xe9, 0xab, 0x06, 0xb9, 0x14, 0xb0, 0xc7, 0x01, 0x4f, 0xe1, 0xa4, 0xbb, 0xc0, 0x21, 0x72, 0x40, 0xc1, 0xa3, 0x30, 0x95, 0xd7, 0x07, 0x95, 0x3e, 0xd7, 0x7b, 0x15, 0xd2, 0x11, 0xad, 0xaf, 0x9b, 0x97, 0xdc, };
1034 static const u8 ed25519_45_test_vectors_expected_sig[] = {
1035 	0x9a, 0xf8, 0x85, 0x34, 0x4c, 0xc7, 0x23, 0x94, 0x98, 0xf7, 0x12, 0xdf, 0x80, 0xbc, 0x01, 0xb8, 0x06, 0x38, 0x29, 0x1e, 0xd4, 0xa1, 0xd2, 0x8b, 0xaa, 0x55, 0x45, 0x01, 0x7a, 0x72, 0xe2, 0xf6, 0x56, 0x49, 0xcc, 0xf9, 0x60, 0x3d, 0xa6, 0xeb, 0x5b, 0xfa, 0xb9, 0xf5, 0x54, 0x3a, 0x6c, 0xa4, 0xa7, 0xaf, 0x38, 0x66, 0x15, 0x3c, 0x76, 0xbf, 0x66, 0xbf, 0x95, 0xde, 0xf6, 0x15, 0xb0, 0x0c, };
1036 static const ec_test_case ed25519_45_test_case = {
1037 	.name = "EDDSA25519-SHA512/wei25519 45",
1038 	.ec_str_p = &wei25519_str_params,
1039 	.priv_key = ed25519_45_test_vectors_priv_key,
1040 	.priv_key_len = sizeof(ed25519_45_test_vectors_priv_key),
1041 	.nn_random = NULL,
1042 	.hash_type = SHA512,
1043 	.msg = (const char *)ed25519_45_test_vectors_message,
1044 	.msglen = sizeof(ed25519_45_test_vectors_message),
1045 	.sig_type = EDDSA25519,
1046 	.exp_sig = ed25519_45_test_vectors_expected_sig,
1047 	.exp_siglen = sizeof(ed25519_45_test_vectors_expected_sig),
1048 	.adata = NULL,
1049 	.adata_len = 0
1050 };
1051 
1052 /************************************************/
1053 static const u8 ed25519_46_test_vectors_priv_key[] = {
1054 	0x0d, 0xdc, 0xdc, 0x87, 0x2c, 0x7b, 0x74, 0x8d, 0x40, 0xef, 0xe9, 0x6c, 0x28, 0x81, 0xae, 0x18, 0x9d, 0x87, 0xf5, 0x61, 0x48, 0xed, 0x8a, 0xf3, 0xeb, 0xbb, 0xc8, 0x03, 0x24, 0xe3, 0x8b, 0xdd, };
1055 static const u8 ed25519_46_test_vectors_message[] = {
1056 	0x65, 0x64, 0x1c, 0xd4, 0x02, 0xad, 0xd8, 0xbf, 0x3d, 0x1d, 0x67, 0xdb, 0xeb, 0x6d, 0x41, 0xde, 0xbf, 0xbe, 0xf6, 0x7e, 0x43, 0x17, 0xc3, 0x5b, 0x0a, 0x6d, 0x5b, 0xbb, 0xae, 0x0e, 0x03, 0x4d, 0xe7, 0xd6, 0x70, 0xba, 0x14, 0x13, 0xd0, 0x56, 0xf2, 0xd6, 0xf1, 0xde, 0x12, };
1057 static const u8 ed25519_46_test_vectors_expected_sig[] = {
1058 	0xc1, 0x79, 0xc0, 0x94, 0x56, 0xe2, 0x35, 0xfe, 0x24, 0x10, 0x5a, 0xfa, 0x6e, 0x8e, 0xc0, 0x46, 0x37, 0xf8, 0xf9, 0x43, 0x81, 0x7c, 0xd0, 0x98, 0xba, 0x95, 0x38, 0x7f, 0x96, 0x53, 0xb2, 0xad, 0xd1, 0x81, 0xa3, 0x14, 0x47, 0xd9, 0x2d, 0x1a, 0x1d, 0xdf, 0x1c, 0xeb, 0x0d, 0xb6, 0x21, 0x18, 0xde, 0x9d, 0xff, 0xb7, 0xdc, 0xd2, 0x42, 0x40, 0x57, 0xcb, 0xdf, 0xf5, 0xd4, 0x1d, 0x04, 0x03, };
1059 static const ec_test_case ed25519_46_test_case = {
1060 	.name = "EDDSA25519-SHA512/wei25519 46",
1061 	.ec_str_p = &wei25519_str_params,
1062 	.priv_key = ed25519_46_test_vectors_priv_key,
1063 	.priv_key_len = sizeof(ed25519_46_test_vectors_priv_key),
1064 	.nn_random = NULL,
1065 	.hash_type = SHA512,
1066 	.msg = (const char *)ed25519_46_test_vectors_message,
1067 	.msglen = sizeof(ed25519_46_test_vectors_message),
1068 	.sig_type = EDDSA25519,
1069 	.exp_sig = ed25519_46_test_vectors_expected_sig,
1070 	.exp_siglen = sizeof(ed25519_46_test_vectors_expected_sig),
1071 	.adata = NULL,
1072 	.adata_len = 0
1073 };
1074 
1075 /************************************************/
1076 static const u8 ed25519_47_test_vectors_priv_key[] = {
1077 	0x89, 0xf0, 0xd6, 0x82, 0x99, 0xba, 0x0a, 0x5a, 0x83, 0xf2, 0x48, 0xae, 0x0c, 0x16, 0x9f, 0x8e, 0x38, 0x49, 0xa9, 0xb4, 0x7b, 0xd4, 0x54, 0x98, 0x84, 0x30, 0x5c, 0x99, 0x12, 0xb4, 0x66, 0x03, };
1078 static const u8 ed25519_47_test_vectors_message[] = {
1079 	0x4f, 0x18, 0x46, 0xdd, 0x7a, 0xd5, 0x0e, 0x54, 0x5d, 0x4c, 0xfb, 0xff, 0xbb, 0x1d, 0xc2, 0xff, 0x14, 0x5d, 0xc1, 0x23, 0x75, 0x4d, 0x08, 0xaf, 0x4e, 0x44, 0xec, 0xc0, 0xbc, 0x8c, 0x91, 0x41, 0x13, 0x88, 0xbc, 0x76, 0x53, 0xe2, 0xd8, 0x93, 0xd1, 0xea, 0xc2, 0x10, 0x7d, 0x05, };
1080 static const u8 ed25519_47_test_vectors_expected_sig[] = {
1081 	0x2c, 0x69, 0x1f, 0xa8, 0xd4, 0x87, 0xce, 0x20, 0xd5, 0xd2, 0xfa, 0x41, 0x55, 0x91, 0x16, 0xe0, 0xbb, 0xf4, 0x39, 0x7c, 0xf5, 0x24, 0x0e, 0x15, 0x25, 0x56, 0x18, 0x35, 0x41, 0xd6, 0x6c, 0xf7, 0x53, 0x58, 0x24, 0x01, 0xa4, 0x38, 0x8d, 0x39, 0x03, 0x39, 0xdb, 0xef, 0x4d, 0x38, 0x47, 0x43, 0xca, 0xa3, 0x46, 0xf5, 0x5f, 0x8d, 0xab, 0xa6, 0x8b, 0xa7, 0xb9, 0x13, 0x1a, 0x8a, 0x6e, 0x0b, };
1082 static const ec_test_case ed25519_47_test_case = {
1083 	.name = "EDDSA25519-SHA512/wei25519 47",
1084 	.ec_str_p = &wei25519_str_params,
1085 	.priv_key = ed25519_47_test_vectors_priv_key,
1086 	.priv_key_len = sizeof(ed25519_47_test_vectors_priv_key),
1087 	.nn_random = NULL,
1088 	.hash_type = SHA512,
1089 	.msg = (const char *)ed25519_47_test_vectors_message,
1090 	.msglen = sizeof(ed25519_47_test_vectors_message),
1091 	.sig_type = EDDSA25519,
1092 	.exp_sig = ed25519_47_test_vectors_expected_sig,
1093 	.exp_siglen = sizeof(ed25519_47_test_vectors_expected_sig),
1094 	.adata = NULL,
1095 	.adata_len = 0
1096 };
1097 
1098 /************************************************/
1099 static const u8 ed25519_48_test_vectors_priv_key[] = {
1100 	0x0a, 0x3c, 0x18, 0x44, 0xe2, 0xdb, 0x07, 0x0f, 0xb2, 0x4e, 0x3c, 0x95, 0xcb, 0x1c, 0xc6, 0x71, 0x4e, 0xf8, 0x4e, 0x2c, 0xcd, 0x2b, 0x9d, 0xd2, 0xf1, 0x46, 0x0e, 0xbf, 0x7e, 0xcf, 0x13, 0xb1, };
1101 static const u8 ed25519_48_test_vectors_message[] = {
1102 	0x4c, 0x82, 0x74, 0xd0, 0xed, 0x1f, 0x74, 0xe2, 0xc8, 0x6c, 0x08, 0xd9, 0x55, 0xbd, 0xe5, 0x5b, 0x2d, 0x54, 0x32, 0x7e, 0x82, 0x06, 0x2a, 0x1f, 0x71, 0xf7, 0x0d, 0x53, 0x6f, 0xdc, 0x87, 0x22, 0xcd, 0xea, 0xd7, 0xd2, 0x2a, 0xae, 0xad, 0x2b, 0xfa, 0xa1, 0xad, 0x00, 0xb8, 0x29, 0x57, };
1103 static const u8 ed25519_48_test_vectors_expected_sig[] = {
1104 	0x87, 0xf7, 0xfd, 0xf4, 0x60, 0x95, 0x20, 0x1e, 0x87, 0x7a, 0x58, 0x8f, 0xe3, 0xe5, 0xaa, 0xf4, 0x76, 0xbd, 0x63, 0x13, 0x8d, 0x8a, 0x87, 0x8b, 0x89, 0xd6, 0xac, 0x60, 0x63, 0x1b, 0x34, 0x58, 0xb9, 0xd4, 0x1a, 0x3c, 0x61, 0xa5, 0x88, 0xe1, 0xdb, 0x8d, 0x29, 0xa5, 0x96, 0x89, 0x81, 0xb0, 0x18, 0x77, 0x6c, 0x58, 0x87, 0x80, 0x92, 0x2f, 0x5a, 0xa7, 0x32, 0xba, 0x63, 0x79, 0xdd, 0x05, };
1105 static const ec_test_case ed25519_48_test_case = {
1106 	.name = "EDDSA25519-SHA512/wei25519 48",
1107 	.ec_str_p = &wei25519_str_params,
1108 	.priv_key = ed25519_48_test_vectors_priv_key,
1109 	.priv_key_len = sizeof(ed25519_48_test_vectors_priv_key),
1110 	.nn_random = NULL,
1111 	.hash_type = SHA512,
1112 	.msg = (const char *)ed25519_48_test_vectors_message,
1113 	.msglen = sizeof(ed25519_48_test_vectors_message),
1114 	.sig_type = EDDSA25519,
1115 	.exp_sig = ed25519_48_test_vectors_expected_sig,
1116 	.exp_siglen = sizeof(ed25519_48_test_vectors_expected_sig),
1117 	.adata = NULL,
1118 	.adata_len = 0
1119 };
1120 
1121 /************************************************/
1122 static const u8 ed25519_49_test_vectors_priv_key[] = {
1123 	0xc8, 0xd7, 0xa8, 0x81, 0x8b, 0x98, 0xdf, 0xdb, 0x20, 0x83, 0x9c, 0x87, 0x1c, 0xb5, 0xc4, 0x8e, 0x9e, 0x94, 0x70, 0xca, 0x3a, 0xd3, 0x5b, 0xa2, 0x61, 0x3a, 0x5d, 0x31, 0x99, 0xc8, 0xab, 0x23, };
1124 static const u8 ed25519_49_test_vectors_message[] = {
1125 	0x78, 0x3e, 0x33, 0xc3, 0xac, 0xbd, 0xbb, 0x36, 0xe8, 0x19, 0xf5, 0x44, 0xa7, 0x78, 0x1d, 0x83, 0xfc, 0x28, 0x3d, 0x33, 0x09, 0xf5, 0xd3, 0xd1, 0x2c, 0x8d, 0xcd, 0x6b, 0x0b, 0x3d, 0x0e, 0x89, 0xe3, 0x8c, 0xfd, 0x3b, 0x4d, 0x08, 0x85, 0x66, 0x1c, 0xa5, 0x47, 0xfb, 0x97, 0x64, 0xab, 0xff, };
1126 static const u8 ed25519_49_test_vectors_expected_sig[] = {
1127 	0xfa, 0x2e, 0x99, 0x44, 0x21, 0xae, 0xf1, 0xd5, 0x85, 0x66, 0x74, 0x81, 0x3d, 0x05, 0xcb, 0xd2, 0xcf, 0x84, 0xef, 0x5e, 0xb4, 0x24, 0xaf, 0x6e, 0xcd, 0x0d, 0xc6, 0xfd, 0xbd, 0xc2, 0xfe, 0x60, 0x5f, 0xe9, 0x85, 0x88, 0x33, 0x12, 0xec, 0xf3, 0x4f, 0x59, 0xbf, 0xb2, 0xf1, 0xc9, 0x14, 0x9e, 0x5b, 0x9c, 0xc9, 0xec, 0xda, 0x05, 0xb2, 0x73, 0x11, 0x30, 0xf3, 0xed, 0x28, 0xdd, 0xae, 0x0b, };
1128 static const ec_test_case ed25519_49_test_case = {
1129 	.name = "EDDSA25519-SHA512/wei25519 49",
1130 	.ec_str_p = &wei25519_str_params,
1131 	.priv_key = ed25519_49_test_vectors_priv_key,
1132 	.priv_key_len = sizeof(ed25519_49_test_vectors_priv_key),
1133 	.nn_random = NULL,
1134 	.hash_type = SHA512,
1135 	.msg = (const char *)ed25519_49_test_vectors_message,
1136 	.msglen = sizeof(ed25519_49_test_vectors_message),
1137 	.sig_type = EDDSA25519,
1138 	.exp_sig = ed25519_49_test_vectors_expected_sig,
1139 	.exp_siglen = sizeof(ed25519_49_test_vectors_expected_sig),
1140 	.adata = NULL,
1141 	.adata_len = 0
1142 };
1143 
1144 /************************************************/
1145 static const u8 ed25519_50_test_vectors_priv_key[] = {
1146 	0xb4, 0x82, 0x70, 0x36, 0x12, 0xd0, 0xc5, 0x86, 0xf7, 0x6c, 0xfc, 0xb2, 0x1c, 0xfd, 0x21, 0x03, 0xc9, 0x57, 0x25, 0x15, 0x04, 0xa8, 0xc0, 0xac, 0x4c, 0x86, 0xc9, 0xc6, 0xf3, 0xe4, 0x29, 0xff, };
1147 static const u8 ed25519_50_test_vectors_message[] = {
1148 	0x29, 0xd7, 0x7a, 0xcf, 0xd9, 0x9c, 0x7a, 0x00, 0x70, 0xa8, 0x8f, 0xeb, 0x62, 0x47, 0xa2, 0xbc, 0xe9, 0x98, 0x4f, 0xe3, 0xe6, 0xfb, 0xf1, 0x9d, 0x40, 0x45, 0x04, 0x2a, 0x21, 0xab, 0x26, 0xcb, 0xd7, 0x71, 0xe1, 0x84, 0xa9, 0xa7, 0x5f, 0x31, 0x6b, 0x64, 0x8c, 0x69, 0x20, 0xdb, 0x92, 0xb8, 0x7b, };
1149 static const u8 ed25519_50_test_vectors_expected_sig[] = {
1150 	0x58, 0x83, 0x2b, 0xde, 0xb2, 0x6f, 0xea, 0xfc, 0x31, 0xb4, 0x62, 0x77, 0xcf, 0x3f, 0xb5, 0xd7, 0xa1, 0x7d, 0xfb, 0x7c, 0xcd, 0x9b, 0x1f, 0x58, 0xec, 0xbe, 0x6f, 0xeb, 0x97, 0x96, 0x66, 0x82, 0x8f, 0x23, 0x9b, 0xa4, 0xd7, 0x52, 0x19, 0x26, 0x0e, 0xca, 0xc0, 0xac, 0xf4, 0x0f, 0x0e, 0x5e, 0x25, 0x90, 0xf4, 0xca, 0xa1, 0x6b, 0xbb, 0xcd, 0x8a, 0x15, 0x5d, 0x34, 0x79, 0x67, 0xa6, 0x07, };
1151 static const ec_test_case ed25519_50_test_case = {
1152 	.name = "EDDSA25519-SHA512/wei25519 50",
1153 	.ec_str_p = &wei25519_str_params,
1154 	.priv_key = ed25519_50_test_vectors_priv_key,
1155 	.priv_key_len = sizeof(ed25519_50_test_vectors_priv_key),
1156 	.nn_random = NULL,
1157 	.hash_type = SHA512,
1158 	.msg = (const char *)ed25519_50_test_vectors_message,
1159 	.msglen = sizeof(ed25519_50_test_vectors_message),
1160 	.sig_type = EDDSA25519,
1161 	.exp_sig = ed25519_50_test_vectors_expected_sig,
1162 	.exp_siglen = sizeof(ed25519_50_test_vectors_expected_sig),
1163 	.adata = NULL,
1164 	.adata_len = 0
1165 };
1166 
1167 /************************************************/
1168 static const u8 ed25519_51_test_vectors_priv_key[] = {
1169 	0x84, 0xe5, 0x0d, 0xd9, 0xa0, 0xf1, 0x97, 0xe3, 0x89, 0x3c, 0x38, 0xdb, 0xd9, 0x1f, 0xaf, 0xc3, 0x44, 0xc1, 0x77, 0x6d, 0x3a, 0x40, 0x0e, 0x2f, 0x0f, 0x0e, 0xe7, 0xaa, 0x82, 0x9e, 0xb8, 0xa2, };
1170 static const u8 ed25519_51_test_vectors_message[] = {
1171 	0xf3, 0x99, 0x2c, 0xde, 0x64, 0x93, 0xe6, 0x71, 0xf1, 0xe1, 0x29, 0xdd, 0xca, 0x80, 0x38, 0xb0, 0xab, 0xdb, 0x77, 0xbb, 0x90, 0x35, 0xf9, 0xf8, 0xbe, 0x54, 0xbd, 0x5d, 0x68, 0xc1, 0xae, 0xff, 0x72, 0x4f, 0xf4, 0x7d, 0x29, 0x34, 0x43, 0x91, 0xdc, 0x53, 0x61, 0x66, 0xb8, 0x67, 0x1c, 0xbb, 0xf1, 0x23, };
1172 static const u8 ed25519_51_test_vectors_expected_sig[] = {
1173 	0x69, 0xe6, 0xa4, 0x49, 0x1a, 0x63, 0x83, 0x73, 0x16, 0xe8, 0x6a, 0x5f, 0x4b, 0xa7, 0xcd, 0x0d, 0x73, 0x1e, 0xcc, 0x58, 0xf1, 0xd0, 0xa2, 0x64, 0xc6, 0x7c, 0x89, 0xbe, 0xfd, 0xd8, 0xd3, 0x82, 0x9d, 0x8d, 0xe1, 0x3b, 0x33, 0xcc, 0x0b, 0xf5, 0x13, 0x93, 0x17, 0x15, 0xc7, 0x80, 0x96, 0x57, 0xe2, 0xbf, 0xb9, 0x60, 0xe5, 0xc7, 0x64, 0xc9, 0x71, 0xd7, 0x33, 0x74, 0x60, 0x93, 0xe5, 0x00, };
1174 static const ec_test_case ed25519_51_test_case = {
1175 	.name = "EDDSA25519-SHA512/wei25519 51",
1176 	.ec_str_p = &wei25519_str_params,
1177 	.priv_key = ed25519_51_test_vectors_priv_key,
1178 	.priv_key_len = sizeof(ed25519_51_test_vectors_priv_key),
1179 	.nn_random = NULL,
1180 	.hash_type = SHA512,
1181 	.msg = (const char *)ed25519_51_test_vectors_message,
1182 	.msglen = sizeof(ed25519_51_test_vectors_message),
1183 	.sig_type = EDDSA25519,
1184 	.exp_sig = ed25519_51_test_vectors_expected_sig,
1185 	.exp_siglen = sizeof(ed25519_51_test_vectors_expected_sig),
1186 	.adata = NULL,
1187 	.adata_len = 0
1188 };
1189 
1190 /************************************************/
1191 static const u8 ed25519_52_test_vectors_priv_key[] = {
1192 	0xb3, 0x22, 0xd4, 0x65, 0x77, 0xa2, 0xa9, 0x91, 0xa4, 0xd1, 0x69, 0x82, 0x87, 0x83, 0x2a, 0x39, 0xc4, 0x87, 0xef, 0x77, 0x6b, 0x4b, 0xff, 0x03, 0x7a, 0x05, 0xc7, 0xf1, 0x81, 0x2b, 0xde, 0xec, };
1193 static const u8 ed25519_52_test_vectors_message[] = {
1194 	0x19, 0xf1, 0xbf, 0x5d, 0xcf, 0x17, 0x50, 0xc6, 0x11, 0xf1, 0xc4, 0xa2, 0x86, 0x52, 0x00, 0x50, 0x4d, 0x82, 0x29, 0x8e, 0xdd, 0x72, 0x67, 0x1f, 0x62, 0xa7, 0xb1, 0x47, 0x1a, 0xc3, 0xd4, 0xa3, 0x0f, 0x7d, 0xe9, 0xe5, 0xda, 0x41, 0x08, 0xc5, 0x2a, 0x4c, 0xe7, 0x0a, 0x3e, 0x11, 0x4a, 0x52, 0xa3, 0xb3, 0xc5, };
1195 static const u8 ed25519_52_test_vectors_expected_sig[] = {
1196 	0xc7, 0xb5, 0x51, 0x37, 0x31, 0x7c, 0xa2, 0x1e, 0x33, 0x48, 0x9f, 0xf6, 0xa9, 0xbf, 0xab, 0x97, 0xc8, 0x55, 0xdc, 0x6f, 0x85, 0x68, 0x4a, 0x70, 0xa9, 0x12, 0x5a, 0x26, 0x1b, 0x56, 0xd5, 0xe6, 0xf1, 0x49, 0xc5, 0x77, 0x4d, 0x73, 0x4f, 0x2d, 0x8d, 0xeb, 0xfc, 0x77, 0xb7, 0x21, 0x89, 0x6a, 0x82, 0x67, 0xc2, 0x37, 0x68, 0xe9, 0xba, 0xdb, 0x91, 0x0e, 0xef, 0x83, 0xec, 0x25, 0x88, 0x02, };
1197 static const ec_test_case ed25519_52_test_case = {
1198 	.name = "EDDSA25519-SHA512/wei25519 52",
1199 	.ec_str_p = &wei25519_str_params,
1200 	.priv_key = ed25519_52_test_vectors_priv_key,
1201 	.priv_key_len = sizeof(ed25519_52_test_vectors_priv_key),
1202 	.nn_random = NULL,
1203 	.hash_type = SHA512,
1204 	.msg = (const char *)ed25519_52_test_vectors_message,
1205 	.msglen = sizeof(ed25519_52_test_vectors_message),
1206 	.sig_type = EDDSA25519,
1207 	.exp_sig = ed25519_52_test_vectors_expected_sig,
1208 	.exp_siglen = sizeof(ed25519_52_test_vectors_expected_sig),
1209 	.adata = NULL,
1210 	.adata_len = 0
1211 };
1212 
1213 /************************************************/
1214 static const u8 ed25519_53_test_vectors_priv_key[] = {
1215 	0x96, 0x0c, 0xab, 0x50, 0x34, 0xb9, 0x83, 0x8d, 0x09, 0x8d, 0x2d, 0xcb, 0xf4, 0x36, 0x4b, 0xec, 0x16, 0xd3, 0x88, 0xf6, 0x37, 0x6d, 0x73, 0xa6, 0x27, 0x3b, 0x70, 0xf8, 0x2b, 0xbc, 0x98, 0xc0, };
1216 static const u8 ed25519_53_test_vectors_message[] = {
1217 	0xf8, 0xb2, 0x19, 0x62, 0x44, 0x7b, 0x0a, 0x8f, 0x2e, 0x42, 0x79, 0xde, 0x41, 0x1b, 0xea, 0x12, 0x8e, 0x0b, 0xe4, 0x4b, 0x69, 0x15, 0xe6, 0xcd, 0xa8, 0x83, 0x41, 0xa6, 0x8a, 0x0d, 0x81, 0x83, 0x57, 0xdb, 0x93, 0x8e, 0xac, 0x73, 0xe0, 0xaf, 0x6d, 0x31, 0x20, 0x6b, 0x39, 0x48, 0xf8, 0xc4, 0x8a, 0x44, 0x73, 0x08, };
1218 static const u8 ed25519_53_test_vectors_expected_sig[] = {
1219 	0x27, 0xd4, 0xc3, 0xa1, 0x81, 0x1e, 0xf9, 0xd4, 0x36, 0x0b, 0x3b, 0xdd, 0x13, 0x3c, 0x2c, 0xcc, 0x30, 0xd0, 0x2c, 0x2f, 0x24, 0x82, 0x15, 0x77, 0x6c, 0xb0, 0x7e, 0xe4, 0x17, 0x7f, 0x9b, 0x13, 0xfc, 0x42, 0xdd, 0x70, 0xa6, 0xc2, 0xfe, 0xd8, 0xf2, 0x25, 0xc7, 0x66, 0x3c, 0x7f, 0x18, 0x2e, 0x7e, 0xe8, 0xec, 0xcf, 0xf2, 0x0d, 0xc7, 0xb0, 0xe1, 0xd5, 0x83, 0x4e, 0xc5, 0xb1, 0xea, 0x01, };
1220 static const ec_test_case ed25519_53_test_case = {
1221 	.name = "EDDSA25519-SHA512/wei25519 53",
1222 	.ec_str_p = &wei25519_str_params,
1223 	.priv_key = ed25519_53_test_vectors_priv_key,
1224 	.priv_key_len = sizeof(ed25519_53_test_vectors_priv_key),
1225 	.nn_random = NULL,
1226 	.hash_type = SHA512,
1227 	.msg = (const char *)ed25519_53_test_vectors_message,
1228 	.msglen = sizeof(ed25519_53_test_vectors_message),
1229 	.sig_type = EDDSA25519,
1230 	.exp_sig = ed25519_53_test_vectors_expected_sig,
1231 	.exp_siglen = sizeof(ed25519_53_test_vectors_expected_sig),
1232 	.adata = NULL,
1233 	.adata_len = 0
1234 };
1235 
1236 /************************************************/
1237 static const u8 ed25519_54_test_vectors_priv_key[] = {
1238 	0xeb, 0x77, 0xb2, 0x63, 0x8f, 0x23, 0xee, 0xbc, 0x82, 0xef, 0xe4, 0x5e, 0xe9, 0xe5, 0xa0, 0x32, 0x66, 0x37, 0x40, 0x1e, 0x66, 0x3e, 0xd0, 0x29, 0x69, 0x9b, 0x21, 0xe6, 0x44, 0x3f, 0xb4, 0x8e, };
1239 static const u8 ed25519_54_test_vectors_message[] = {
1240 	0x99, 0xe3, 0xd0, 0x09, 0x34, 0x00, 0x3e, 0xba, 0xfc, 0x3e, 0x9f, 0xdb, 0x68, 0x7b, 0x0f, 0x5f, 0xf9, 0xd5, 0x78, 0x2a, 0x4b, 0x1f, 0x56, 0xb9, 0x70, 0x00, 0x46, 0xc0, 0x77, 0x91, 0x56, 0x02, 0xc3, 0x13, 0x4e, 0x22, 0xfc, 0x90, 0xed, 0x7e, 0x69, 0x0f, 0xdd, 0xd4, 0x43, 0x3e, 0x20, 0x34, 0xdc, 0xb2, 0xdc, 0x99, 0xab, };
1241 static const u8 ed25519_54_test_vectors_expected_sig[] = {
1242 	0x18, 0xdc, 0x56, 0xd7, 0xbd, 0x9a, 0xcd, 0x4f, 0x4d, 0xaa, 0x78, 0x54, 0x0b, 0x4a, 0xc8, 0xff, 0x7a, 0xa9, 0x81, 0x5f, 0x45, 0xa0, 0xbb, 0xa3, 0x70, 0x73, 0x1a, 0x14, 0xea, 0xab, 0xe9, 0x6d, 0xf8, 0xb5, 0xf3, 0x7d, 0xbf, 0x8e, 0xae, 0x4c, 0xb1, 0x5a, 0x64, 0xb2, 0x44, 0x65, 0x1e, 0x59, 0xd6, 0xa3, 0xd6, 0x76, 0x1d, 0x9e, 0x3c, 0x50, 0xf2, 0xd0, 0xcb, 0xb0, 0x9c, 0x05, 0xec, 0x06, };
1243 static const ec_test_case ed25519_54_test_case = {
1244 	.name = "EDDSA25519-SHA512/wei25519 54",
1245 	.ec_str_p = &wei25519_str_params,
1246 	.priv_key = ed25519_54_test_vectors_priv_key,
1247 	.priv_key_len = sizeof(ed25519_54_test_vectors_priv_key),
1248 	.nn_random = NULL,
1249 	.hash_type = SHA512,
1250 	.msg = (const char *)ed25519_54_test_vectors_message,
1251 	.msglen = sizeof(ed25519_54_test_vectors_message),
1252 	.sig_type = EDDSA25519,
1253 	.exp_sig = ed25519_54_test_vectors_expected_sig,
1254 	.exp_siglen = sizeof(ed25519_54_test_vectors_expected_sig),
1255 	.adata = NULL,
1256 	.adata_len = 0
1257 };
1258 
1259 /************************************************/
1260 static const u8 ed25519_55_test_vectors_priv_key[] = {
1261 	0xb6, 0x25, 0xaa, 0x89, 0xd3, 0xf7, 0x30, 0x87, 0x15, 0x42, 0x7b, 0x6c, 0x39, 0xbb, 0xac, 0x58, 0xef, 0xfd, 0x3a, 0x0f, 0xb7, 0x31, 0x6f, 0x7a, 0x22, 0xb9, 0x9e, 0xe5, 0x92, 0x2f, 0x2d, 0xc9, };
1262 static const u8 ed25519_55_test_vectors_message[] = {
1263 	0xe0, 0x72, 0x41, 0xdb, 0xd3, 0xad, 0xbe, 0x61, 0x0b, 0xbe, 0x4d, 0x00, 0x5d, 0xd4, 0x67, 0x32, 0xa4, 0xc2, 0x50, 0x86, 0xec, 0xb8, 0xec, 0x29, 0xcd, 0x7b, 0xca, 0x11, 0x6e, 0x1b, 0xf9, 0xf5, 0x3b, 0xfb, 0xf3, 0xe1, 0x1f, 0xa4, 0x90, 0x18, 0xd3, 0x9f, 0xf1, 0x15, 0x4a, 0x06, 0x66, 0x8e, 0xf7, 0xdf, 0x5c, 0x67, 0x8e, 0x6a, };
1264 static const u8 ed25519_55_test_vectors_expected_sig[] = {
1265 	0x01, 0xbb, 0x90, 0x1d, 0x83, 0xb8, 0xb6, 0x82, 0xd3, 0x61, 0x4a, 0xf4, 0x6a, 0x80, 0x7b, 0xa2, 0x69, 0x13, 0x58, 0xfe, 0xb7, 0x75, 0x32, 0x5d, 0x34, 0x23, 0xf5, 0x49, 0xff, 0x0a, 0xa5, 0x75, 0x7e, 0x4e, 0x1a, 0x74, 0xe9, 0xc7, 0x0f, 0x97, 0x21, 0xd8, 0xf3, 0x54, 0xb3, 0x19, 0xd4, 0xf4, 0xa1, 0xd9, 0x14, 0x45, 0xc8, 0x70, 0xfd, 0x0f, 0xfb, 0x94, 0xfe, 0xd6, 0x46, 0x64, 0x73, 0x0d, };
1266 static const ec_test_case ed25519_55_test_case = {
1267 	.name = "EDDSA25519-SHA512/wei25519 55",
1268 	.ec_str_p = &wei25519_str_params,
1269 	.priv_key = ed25519_55_test_vectors_priv_key,
1270 	.priv_key_len = sizeof(ed25519_55_test_vectors_priv_key),
1271 	.nn_random = NULL,
1272 	.hash_type = SHA512,
1273 	.msg = (const char *)ed25519_55_test_vectors_message,
1274 	.msglen = sizeof(ed25519_55_test_vectors_message),
1275 	.sig_type = EDDSA25519,
1276 	.exp_sig = ed25519_55_test_vectors_expected_sig,
1277 	.exp_siglen = sizeof(ed25519_55_test_vectors_expected_sig),
1278 	.adata = NULL,
1279 	.adata_len = 0
1280 };
1281 
1282 /************************************************/
1283 static const u8 ed25519_56_test_vectors_priv_key[] = {
1284 	0xb1, 0xc9, 0xf8, 0xbd, 0x03, 0xfe, 0x82, 0xe7, 0x8f, 0x5c, 0x0f, 0xb0, 0x64, 0x50, 0xf2, 0x7d, 0xac, 0xdf, 0x71, 0x64, 0x34, 0xdb, 0x26, 0x82, 0x75, 0xdf, 0x3e, 0x1d, 0xc1, 0x77, 0xaf, 0x42, };
1285 static const u8 ed25519_56_test_vectors_message[] = {
1286 	0x33, 0x1d, 0xa7, 0xa9, 0xc1, 0xf8, 0x7b, 0x2a, 0xc9, 0x1e, 0xe3, 0xb8, 0x6d, 0x06, 0xc2, 0x91, 0x63, 0xc0, 0x5e, 0xd6, 0xf8, 0xd8, 0xa9, 0x72, 0x5b, 0x47, 0x1b, 0x7d, 0xb0, 0xd6, 0xac, 0xec, 0x7f, 0x0f, 0x70, 0x24, 0x87, 0x16, 0x3f, 0x5e, 0xda, 0x02, 0x0c, 0xa5, 0xb4, 0x93, 0xf3, 0x99, 0xe1, 0xc8, 0xd3, 0x08, 0xc3, 0xc0, 0xc2, };
1287 static const u8 ed25519_56_test_vectors_expected_sig[] = {
1288 	0x4b, 0x22, 0x99, 0x51, 0xef, 0x26, 0x2f, 0x16, 0x97, 0x8f, 0x79, 0x14, 0xbc, 0x67, 0x2e, 0x72, 0x26, 0xc5, 0xf8, 0x37, 0x9d, 0x27, 0x78, 0xc5, 0xa2, 0xdc, 0x0a, 0x26, 0x50, 0x86, 0x9f, 0x7a, 0xcf, 0xbd, 0x0b, 0xcd, 0x30, 0xfd, 0xb0, 0x61, 0x9b, 0xb4, 0x4f, 0xc1, 0xae, 0x59, 0x39, 0xb8, 0x7c, 0xc3, 0x18, 0x13, 0x30, 0x09, 0xc2, 0x03, 0x95, 0xb6, 0xc7, 0xeb, 0x98, 0x10, 0x77, 0x01, };
1289 static const ec_test_case ed25519_56_test_case = {
1290 	.name = "EDDSA25519-SHA512/wei25519 56",
1291 	.ec_str_p = &wei25519_str_params,
1292 	.priv_key = ed25519_56_test_vectors_priv_key,
1293 	.priv_key_len = sizeof(ed25519_56_test_vectors_priv_key),
1294 	.nn_random = NULL,
1295 	.hash_type = SHA512,
1296 	.msg = (const char *)ed25519_56_test_vectors_message,
1297 	.msglen = sizeof(ed25519_56_test_vectors_message),
1298 	.sig_type = EDDSA25519,
1299 	.exp_sig = ed25519_56_test_vectors_expected_sig,
1300 	.exp_siglen = sizeof(ed25519_56_test_vectors_expected_sig),
1301 	.adata = NULL,
1302 	.adata_len = 0
1303 };
1304 
1305 /************************************************/
1306 static const u8 ed25519_57_test_vectors_priv_key[] = {
1307 	0x6d, 0x8c, 0xdb, 0x2e, 0x07, 0x5f, 0x3a, 0x2f, 0x86, 0x13, 0x72, 0x14, 0xcb, 0x23, 0x6c, 0xeb, 0x89, 0xa6, 0x72, 0x8b, 0xb4, 0xa2, 0x00, 0x80, 0x6b, 0xf3, 0x55, 0x7f, 0xb7, 0x8f, 0xac, 0x69, };
1308 static const u8 ed25519_57_test_vectors_message[] = {
1309 	0x7f, 0x31, 0x8d, 0xbd, 0x12, 0x1c, 0x08, 0xbf, 0xdd, 0xfe, 0xff, 0x4f, 0x6a, 0xff, 0x4e, 0x45, 0x79, 0x32, 0x51, 0xf8, 0xab, 0xf6, 0x58, 0x40, 0x33, 0x58, 0x23, 0x89, 0x84, 0x36, 0x00, 0x54, 0xf2, 0xa8, 0x62, 0xc5, 0xbb, 0x83, 0xed, 0x89, 0x02, 0x5d, 0x20, 0x14, 0xa7, 0xa0, 0xce, 0xe5, 0x0d, 0xa3, 0xcb, 0x0e, 0x76, 0xbb, 0xb6, 0xbf, };
1310 static const u8 ed25519_57_test_vectors_expected_sig[] = {
1311 	0xa6, 0xcb, 0xc9, 0x47, 0xf9, 0xc8, 0x7d, 0x14, 0x55, 0xcf, 0x1a, 0x70, 0x85, 0x28, 0xc0, 0x90, 0xf1, 0x1e, 0xce, 0xe4, 0x85, 0x5d, 0x1d, 0xba, 0xad, 0xf4, 0x74, 0x54, 0xa4, 0xde, 0x55, 0xfa, 0x4c, 0xe8, 0x4b, 0x36, 0xd7, 0x3a, 0x5b, 0x5f, 0x8f, 0x59, 0x29, 0x8c, 0xcf, 0x21, 0x99, 0x2d, 0xf4, 0x92, 0xef, 0x34, 0x16, 0x3d, 0x87, 0x75, 0x3b, 0x7e, 0x9d, 0x32, 0xf2, 0xc3, 0x66, 0x0b, };
1312 static const ec_test_case ed25519_57_test_case = {
1313 	.name = "EDDSA25519-SHA512/wei25519 57",
1314 	.ec_str_p = &wei25519_str_params,
1315 	.priv_key = ed25519_57_test_vectors_priv_key,
1316 	.priv_key_len = sizeof(ed25519_57_test_vectors_priv_key),
1317 	.nn_random = NULL,
1318 	.hash_type = SHA512,
1319 	.msg = (const char *)ed25519_57_test_vectors_message,
1320 	.msglen = sizeof(ed25519_57_test_vectors_message),
1321 	.sig_type = EDDSA25519,
1322 	.exp_sig = ed25519_57_test_vectors_expected_sig,
1323 	.exp_siglen = sizeof(ed25519_57_test_vectors_expected_sig),
1324 	.adata = NULL,
1325 	.adata_len = 0
1326 };
1327 
1328 /************************************************/
1329 static const u8 ed25519_58_test_vectors_priv_key[] = {
1330 	0x47, 0xad, 0xc6, 0xd6, 0xbf, 0x57, 0x1e, 0xe9, 0x57, 0x0c, 0xa0, 0xf7, 0x5b, 0x60, 0x4a, 0xc4, 0x3e, 0x30, 0x3e, 0x4a, 0xb3, 0x39, 0xca, 0x9b, 0x53, 0xca, 0xcc, 0x5b, 0xe4, 0x5b, 0x2c, 0xcb, };
1331 static const u8 ed25519_58_test_vectors_message[] = {
1332 	0xce, 0x49, 0x7c, 0x5f, 0xf5, 0xa7, 0x79, 0x90, 0xb7, 0xd8, 0xf8, 0x69, 0x9e, 0xb1, 0xf5, 0xd8, 0xc0, 0x58, 0x2f, 0x70, 0xcb, 0x7a, 0xc5, 0xc5, 0x4d, 0x9d, 0x92, 0x49, 0x13, 0x27, 0x8b, 0xc6, 0x54, 0xd3, 0x7e, 0xa2, 0x27, 0x59, 0x0e, 0x15, 0x20, 0x22, 0x17, 0xfc, 0x98, 0xda, 0xc4, 0xc0, 0xf3, 0xbe, 0x21, 0x83, 0xd1, 0x33, 0x31, 0x57, 0x39, };
1333 static const u8 ed25519_58_test_vectors_expected_sig[] = {
1334 	0x4e, 0x8c, 0x31, 0x83, 0x43, 0xc3, 0x06, 0xad, 0xbb, 0xa6, 0x0c, 0x92, 0xb7, 0x5c, 0xb0, 0x56, 0x9b, 0x92, 0x19, 0xd8, 0xa8, 0x6e, 0x5d, 0x57, 0x75, 0x2e, 0xd2, 0x35, 0xfc, 0x10, 0x9a, 0x43, 0xc2, 0xcf, 0x4e, 0x94, 0x2c, 0xac, 0xf2, 0x97, 0x27, 0x9f, 0xbb, 0x28, 0x67, 0x53, 0x47, 0xe0, 0x80, 0x27, 0x72, 0x2a, 0x4e, 0xb7, 0x39, 0x5e, 0x00, 0xa1, 0x74, 0x95, 0xd3, 0x2e, 0xdf, 0x0b, };
1335 static const ec_test_case ed25519_58_test_case = {
1336 	.name = "EDDSA25519-SHA512/wei25519 58",
1337 	.ec_str_p = &wei25519_str_params,
1338 	.priv_key = ed25519_58_test_vectors_priv_key,
1339 	.priv_key_len = sizeof(ed25519_58_test_vectors_priv_key),
1340 	.nn_random = NULL,
1341 	.hash_type = SHA512,
1342 	.msg = (const char *)ed25519_58_test_vectors_message,
1343 	.msglen = sizeof(ed25519_58_test_vectors_message),
1344 	.sig_type = EDDSA25519,
1345 	.exp_sig = ed25519_58_test_vectors_expected_sig,
1346 	.exp_siglen = sizeof(ed25519_58_test_vectors_expected_sig),
1347 	.adata = NULL,
1348 	.adata_len = 0
1349 };
1350 
1351 /************************************************/
1352 static const u8 ed25519_59_test_vectors_priv_key[] = {
1353 	0x3c, 0x19, 0xb5, 0x0b, 0x0f, 0xe4, 0x79, 0x61, 0x71, 0x9c, 0x38, 0x1d, 0x0d, 0x8d, 0xa9, 0xb9, 0x86, 0x9d, 0x31, 0x2f, 0x13, 0xe3, 0x29, 0x8b, 0x97, 0xfb, 0x22, 0xf0, 0xaf, 0x29, 0xcb, 0xbe, };
1354 static const u8 ed25519_59_test_vectors_message[] = {
1355 	0x8d, 0xdc, 0xd6, 0x30, 0x43, 0xf5, 0x5e, 0xc3, 0xbf, 0xc8, 0x3d, 0xce, 0xae, 0x69, 0xd8, 0xf8, 0xb3, 0x2f, 0x4c, 0xdb, 0x6e, 0x2a, 0xeb, 0xd9, 0x4b, 0x43, 0x14, 0xf8, 0xfe, 0x72, 0x87, 0xdc, 0xb6, 0x27, 0x32, 0xc9, 0x05, 0x2e, 0x75, 0x57, 0xfe, 0x63, 0x53, 0x43, 0x38, 0xef, 0xb5, 0xb6, 0x25, 0x4c, 0x5d, 0x41, 0xd2, 0x69, 0x0c, 0xf5, 0x14, 0x4f, };
1356 static const u8 ed25519_59_test_vectors_expected_sig[] = {
1357 	0xef, 0xbd, 0x41, 0xf2, 0x6a, 0x5d, 0x62, 0x68, 0x55, 0x16, 0xf8, 0x82, 0xb6, 0xec, 0x74, 0xe0, 0xd5, 0xa7, 0x18, 0x30, 0xd2, 0x03, 0xc2, 0x31, 0x24, 0x8f, 0x26, 0xe9, 0x9a, 0x9c, 0x65, 0x78, 0xec, 0x90, 0x0d, 0x68, 0xcd, 0xb8, 0xfa, 0x72, 0x16, 0xad, 0x0d, 0x24, 0xf9, 0xec, 0xbc, 0x9f, 0xfa, 0x65, 0x53, 0x51, 0x66, 0x65, 0x82, 0xf6, 0x26, 0x64, 0x53, 0x95, 0xa3, 0x1f, 0xa7, 0x04, };
1358 static const ec_test_case ed25519_59_test_case = {
1359 	.name = "EDDSA25519-SHA512/wei25519 59",
1360 	.ec_str_p = &wei25519_str_params,
1361 	.priv_key = ed25519_59_test_vectors_priv_key,
1362 	.priv_key_len = sizeof(ed25519_59_test_vectors_priv_key),
1363 	.nn_random = NULL,
1364 	.hash_type = SHA512,
1365 	.msg = (const char *)ed25519_59_test_vectors_message,
1366 	.msglen = sizeof(ed25519_59_test_vectors_message),
1367 	.sig_type = EDDSA25519,
1368 	.exp_sig = ed25519_59_test_vectors_expected_sig,
1369 	.exp_siglen = sizeof(ed25519_59_test_vectors_expected_sig),
1370 	.adata = NULL,
1371 	.adata_len = 0
1372 };
1373 
1374 /************************************************/
1375 static const u8 ed25519_60_test_vectors_priv_key[] = {
1376 	0x34, 0xe1, 0xe9, 0xd5, 0x39, 0x10, 0x7e, 0xb8, 0x6b, 0x39, 0x3a, 0x5c, 0xce, 0xa1, 0x49, 0x6d, 0x35, 0xbc, 0x7d, 0x5e, 0x9a, 0x8c, 0x51, 0x59, 0xd9, 0x57, 0xe4, 0xe5, 0x85, 0x2b, 0x3e, 0xb0, };
1377 static const u8 ed25519_60_test_vectors_message[] = {
1378 	0xa6, 0xd4, 0xd0, 0x54, 0x2c, 0xfe, 0x0d, 0x24, 0x0a, 0x90, 0x50, 0x7d, 0xeb, 0xac, 0xab, 0xce, 0x7c, 0xbb, 0xd4, 0x87, 0x32, 0x35, 0x3f, 0x4f, 0xad, 0x82, 0xc7, 0xbb, 0x7d, 0xbd, 0x9d, 0xf8, 0xe7, 0xd9, 0xa1, 0x69, 0x80, 0xa4, 0x51, 0x86, 0xd8, 0x78, 0x6c, 0x5e, 0xf6, 0x54, 0x45, 0xbc, 0xc5, 0xb2, 0xad, 0x5f, 0x66, 0x0f, 0xfc, 0x7c, 0x8e, 0xaa, 0xc0, };
1379 static const u8 ed25519_60_test_vectors_expected_sig[] = {
1380 	0x32, 0xd2, 0x29, 0x04, 0xd3, 0xe7, 0x01, 0x2d, 0x6f, 0x5a, 0x44, 0x1b, 0x0b, 0x42, 0x28, 0x06, 0x4a, 0x5c, 0xf9, 0x5b, 0x72, 0x3a, 0x66, 0xb0, 0x48, 0xa0, 0x87, 0xec, 0xd5, 0x59, 0x20, 0xc3, 0x1c, 0x20, 0x4c, 0x3f, 0x20, 0x06, 0x89, 0x1a, 0x85, 0xdd, 0x19, 0x32, 0xe3, 0xf1, 0xd6, 0x14, 0xcf, 0xd6, 0x33, 0xb5, 0xe6, 0x32, 0x91, 0xc6, 0xd8, 0x16, 0x6f, 0x30, 0x11, 0x43, 0x1e, 0x09, };
1381 static const ec_test_case ed25519_60_test_case = {
1382 	.name = "EDDSA25519-SHA512/wei25519 60",
1383 	.ec_str_p = &wei25519_str_params,
1384 	.priv_key = ed25519_60_test_vectors_priv_key,
1385 	.priv_key_len = sizeof(ed25519_60_test_vectors_priv_key),
1386 	.nn_random = NULL,
1387 	.hash_type = SHA512,
1388 	.msg = (const char *)ed25519_60_test_vectors_message,
1389 	.msglen = sizeof(ed25519_60_test_vectors_message),
1390 	.sig_type = EDDSA25519,
1391 	.exp_sig = ed25519_60_test_vectors_expected_sig,
1392 	.exp_siglen = sizeof(ed25519_60_test_vectors_expected_sig),
1393 	.adata = NULL,
1394 	.adata_len = 0
1395 };
1396 
1397 /************************************************/
1398 static const u8 ed25519_61_test_vectors_priv_key[] = {
1399 	0x49, 0xdd, 0x47, 0x3e, 0xde, 0x6a, 0xa3, 0xc8, 0x66, 0x82, 0x4a, 0x40, 0xad, 0xa4, 0x99, 0x6c, 0x23, 0x9a, 0x20, 0xd8, 0x4c, 0x93, 0x65, 0xe4, 0xf0, 0xa4, 0x55, 0x4f, 0x80, 0x31, 0xb9, 0xcf, };
1400 static const u8 ed25519_61_test_vectors_message[] = {
1401 	0x3a, 0x53, 0x59, 0x4f, 0x3f, 0xba, 0x03, 0x02, 0x93, 0x18, 0xf5, 0x12, 0xb0, 0x84, 0xa0, 0x71, 0xeb, 0xd6, 0x0b, 0xae, 0xc7, 0xf5, 0x5b, 0x02, 0x8d, 0xc7, 0x3b, 0xfc, 0x9c, 0x74, 0xe0, 0xca, 0x49, 0x6b, 0xf8, 0x19, 0xdd, 0x92, 0xab, 0x61, 0xcd, 0x8b, 0x74, 0xbe, 0x3c, 0x0d, 0x6d, 0xcd, 0x12, 0x8e, 0xfc, 0x5e, 0xd3, 0x34, 0x2c, 0xba, 0x12, 0x4f, 0x72, 0x6c, };
1402 static const u8 ed25519_61_test_vectors_expected_sig[] = {
1403 	0xd2, 0xfd, 0xe0, 0x27, 0x91, 0xe7, 0x20, 0x85, 0x25, 0x07, 0xfa, 0xa7, 0xc3, 0x78, 0x90, 0x40, 0xd9, 0xef, 0x86, 0x64, 0x63, 0x21, 0xf3, 0x13, 0xac, 0x55, 0x7f, 0x40, 0x02, 0x49, 0x15, 0x42, 0xdd, 0x67, 0xd0, 0x5c, 0x69, 0x90, 0xcd, 0xb0, 0xd4, 0x95, 0x50, 0x1f, 0xbc, 0x5d, 0x51, 0x88, 0xbf, 0xbb, 0x84, 0xdc, 0x1b, 0xf6, 0x09, 0x8b, 0xee, 0x06, 0x03, 0xa4, 0x7f, 0xc2, 0x69, 0x0f, };
1404 static const ec_test_case ed25519_61_test_case = {
1405 	.name = "EDDSA25519-SHA512/wei25519 61",
1406 	.ec_str_p = &wei25519_str_params,
1407 	.priv_key = ed25519_61_test_vectors_priv_key,
1408 	.priv_key_len = sizeof(ed25519_61_test_vectors_priv_key),
1409 	.nn_random = NULL,
1410 	.hash_type = SHA512,
1411 	.msg = (const char *)ed25519_61_test_vectors_message,
1412 	.msglen = sizeof(ed25519_61_test_vectors_message),
1413 	.sig_type = EDDSA25519,
1414 	.exp_sig = ed25519_61_test_vectors_expected_sig,
1415 	.exp_siglen = sizeof(ed25519_61_test_vectors_expected_sig),
1416 	.adata = NULL,
1417 	.adata_len = 0
1418 };
1419 
1420 /************************************************/
1421 static const u8 ed25519_62_test_vectors_priv_key[] = {
1422 	0x33, 0x1c, 0x64, 0xda, 0x48, 0x2b, 0x6b, 0x55, 0x13, 0x73, 0xc3, 0x64, 0x81, 0xa0, 0x2d, 0x81, 0x36, 0xec, 0xad, 0xbb, 0x01, 0xab, 0x11, 0x4b, 0x44, 0x70, 0xbf, 0x41, 0x60, 0x7a, 0xc5, 0x71, };
1423 static const u8 ed25519_62_test_vectors_message[] = {
1424 	0x20, 0xe1, 0xd0, 0x5a, 0x0d, 0x5b, 0x32, 0xcc, 0x81, 0x50, 0xb8, 0x11, 0x6c, 0xef, 0x39, 0x65, 0x9d, 0xd5, 0xfb, 0x44, 0x3a, 0xb1, 0x56, 0x00, 0xf7, 0x8e, 0x5b, 0x49, 0xc4, 0x53, 0x26, 0xd9, 0x32, 0x3f, 0x28, 0x50, 0xa6, 0x3c, 0x38, 0x08, 0x85, 0x94, 0x95, 0xae, 0x27, 0x3f, 0x58, 0xa5, 0x1e, 0x9d, 0xe9, 0xa1, 0x45, 0xd7, 0x74, 0xb4, 0x0b, 0xa9, 0xd7, 0x53, 0xd3, };
1425 static const u8 ed25519_62_test_vectors_expected_sig[] = {
1426 	0x22, 0xc9, 0x9a, 0xa9, 0x46, 0xea, 0xd3, 0x9a, 0xc7, 0x99, 0x75, 0x62, 0x81, 0x0c, 0x01, 0xc2, 0x0b, 0x46, 0xbd, 0x61, 0x06, 0x45, 0xbd, 0x2d, 0x56, 0xdc, 0xdc, 0xba, 0xac, 0xc5, 0x45, 0x2c, 0x74, 0xfb, 0xf4, 0xb8, 0xb1, 0x81, 0x3b, 0x0e, 0x94, 0xc3, 0x0d, 0x80, 0x8c, 0xe5, 0x49, 0x8e, 0x61, 0xd4, 0xf7, 0xcc, 0xbb, 0x4c, 0xc5, 0xf0, 0x4d, 0xfc, 0x61, 0x40, 0x82, 0x5a, 0x96, 0x00, };
1427 static const ec_test_case ed25519_62_test_case = {
1428 	.name = "EDDSA25519-SHA512/wei25519 62",
1429 	.ec_str_p = &wei25519_str_params,
1430 	.priv_key = ed25519_62_test_vectors_priv_key,
1431 	.priv_key_len = sizeof(ed25519_62_test_vectors_priv_key),
1432 	.nn_random = NULL,
1433 	.hash_type = SHA512,
1434 	.msg = (const char *)ed25519_62_test_vectors_message,
1435 	.msglen = sizeof(ed25519_62_test_vectors_message),
1436 	.sig_type = EDDSA25519,
1437 	.exp_sig = ed25519_62_test_vectors_expected_sig,
1438 	.exp_siglen = sizeof(ed25519_62_test_vectors_expected_sig),
1439 	.adata = NULL,
1440 	.adata_len = 0
1441 };
1442 
1443 /************************************************/
1444 static const u8 ed25519_63_test_vectors_priv_key[] = {
1445 	0x5c, 0x0b, 0x96, 0xf2, 0xaf, 0x87, 0x12, 0x12, 0x2c, 0xf7, 0x43, 0xc8, 0xf8, 0xdc, 0x77, 0xb6, 0xcd, 0x55, 0x70, 0xa7, 0xde, 0x13, 0x29, 0x7b, 0xb3, 0xdd, 0xe1, 0x88, 0x62, 0x13, 0xcc, 0xe2, };
1446 static const u8 ed25519_63_test_vectors_message[] = {
1447 	0x54, 0xe0, 0xca, 0xa8, 0xe6, 0x39, 0x19, 0xca, 0x61, 0x4b, 0x2b, 0xfd, 0x30, 0x8c, 0xcf, 0xe5, 0x0c, 0x9e, 0xa8, 0x88, 0xe1, 0xee, 0x44, 0x46, 0xd6, 0x82, 0xcb, 0x50, 0x34, 0x62, 0x7f, 0x97, 0xb0, 0x53, 0x92, 0xc0, 0x4e, 0x83, 0x55, 0x56, 0xc3, 0x1c, 0x52, 0x81, 0x6a, 0x48, 0xe4, 0xfb, 0x19, 0x66, 0x93, 0x20, 0x6b, 0x8a, 0xfb, 0x44, 0x08, 0x66, 0x2b, 0x3c, 0xb5, 0x75, };
1448 static const u8 ed25519_63_test_vectors_expected_sig[] = {
1449 	0x06, 0xe5, 0xd8, 0x43, 0x6a, 0xc7, 0x70, 0x5b, 0x3a, 0x90, 0xf1, 0x63, 0x1c, 0xdd, 0x38, 0xec, 0x1a, 0x3f, 0xa4, 0x97, 0x78, 0xa9, 0xb9, 0xf2, 0xfa, 0x5e, 0xbe, 0xa4, 0xe7, 0xd5, 0x60, 0xad, 0xa7, 0xdd, 0x26, 0xff, 0x42, 0xfa, 0xfa, 0x8b, 0xa4, 0x20, 0x32, 0x37, 0x42, 0x76, 0x1a, 0xca, 0x69, 0x04, 0x94, 0x0d, 0xc2, 0x1b, 0xbe, 0xf6, 0x3f, 0xf7, 0x2d, 0xaa, 0xb4, 0x5d, 0x43, 0x0b, };
1450 static const ec_test_case ed25519_63_test_case = {
1451 	.name = "EDDSA25519-SHA512/wei25519 63",
1452 	.ec_str_p = &wei25519_str_params,
1453 	.priv_key = ed25519_63_test_vectors_priv_key,
1454 	.priv_key_len = sizeof(ed25519_63_test_vectors_priv_key),
1455 	.nn_random = NULL,
1456 	.hash_type = SHA512,
1457 	.msg = (const char *)ed25519_63_test_vectors_message,
1458 	.msglen = sizeof(ed25519_63_test_vectors_message),
1459 	.sig_type = EDDSA25519,
1460 	.exp_sig = ed25519_63_test_vectors_expected_sig,
1461 	.exp_siglen = sizeof(ed25519_63_test_vectors_expected_sig),
1462 	.adata = NULL,
1463 	.adata_len = 0
1464 };
1465 
1466 /************************************************/
1467 static const u8 ed25519_64_test_vectors_priv_key[] = {
1468 	0xde, 0x84, 0xf2, 0x43, 0x5f, 0x78, 0xde, 0xdb, 0x87, 0xda, 0x18, 0x19, 0x4f, 0xf6, 0xa3, 0x36, 0xf0, 0x81, 0x11, 0x15, 0x0d, 0xef, 0x90, 0x1c, 0x1a, 0xc4, 0x18, 0x14, 0x6e, 0xb7, 0xb5, 0x4a, };
1469 static const u8 ed25519_64_test_vectors_message[] = {
1470 	0x20, 0x51, 0x35, 0xec, 0x7f, 0x41, 0x7c, 0x85, 0x80, 0x72, 0xd5, 0x23, 0x3f, 0xb3, 0x64, 0x82, 0xd4, 0x90, 0x6a, 0xbd, 0x60, 0xa7, 0x4a, 0x49, 0x8c, 0x34, 0x7f, 0xf2, 0x48, 0xdf, 0xa2, 0x72, 0x2c, 0xa7, 0x4e, 0x87, 0x9d, 0xe3, 0x31, 0x69, 0xfa, 0xdc, 0x7c, 0xd4, 0x4d, 0x6c, 0x94, 0xa1, 0x7d, 0x16, 0xe1, 0xe6, 0x30, 0x82, 0x4b, 0xa3, 0xe0, 0xdf, 0x22, 0xed, 0x68, 0xea, 0xab, };
1471 static const u8 ed25519_64_test_vectors_expected_sig[] = {
1472 	0x47, 0x1e, 0xbc, 0x97, 0x3c, 0xfd, 0xac, 0xee, 0xc0, 0x72, 0x79, 0x30, 0x73, 0x68, 0xb7, 0x3b, 0xe3, 0x5b, 0xc6, 0xf8, 0xd8, 0x31, 0x2b, 0x70, 0x15, 0x05, 0x67, 0x36, 0x90, 0x96, 0x70, 0x6d, 0xc4, 0x71, 0x12, 0x6c, 0x35, 0x76, 0xf9, 0xf0, 0xeb, 0x55, 0x0d, 0xf5, 0xac, 0x6a, 0x52, 0x51, 0x81, 0x11, 0x00, 0x29, 0xdd, 0x1f, 0xc1, 0x11, 0x74, 0xd1, 0xaa, 0xce, 0xd4, 0x8d, 0x63, 0x0f, };
1473 static const ec_test_case ed25519_64_test_case = {
1474 	.name = "EDDSA25519-SHA512/wei25519 64",
1475 	.ec_str_p = &wei25519_str_params,
1476 	.priv_key = ed25519_64_test_vectors_priv_key,
1477 	.priv_key_len = sizeof(ed25519_64_test_vectors_priv_key),
1478 	.nn_random = NULL,
1479 	.hash_type = SHA512,
1480 	.msg = (const char *)ed25519_64_test_vectors_message,
1481 	.msglen = sizeof(ed25519_64_test_vectors_message),
1482 	.sig_type = EDDSA25519,
1483 	.exp_sig = ed25519_64_test_vectors_expected_sig,
1484 	.exp_siglen = sizeof(ed25519_64_test_vectors_expected_sig),
1485 	.adata = NULL,
1486 	.adata_len = 0
1487 };
1488 
1489 /************************************************/
1490 static const u8 ed25519_65_test_vectors_priv_key[] = {
1491 	0xba, 0x4d, 0x6e, 0x67, 0xb2, 0xce, 0x67, 0xa1, 0xe4, 0x43, 0x26, 0x49, 0x40, 0x44, 0xf3, 0x7a, 0x44, 0x2f, 0x3b, 0x81, 0x72, 0x5b, 0xc1, 0xf9, 0x34, 0x14, 0x62, 0x71, 0x8b, 0x55, 0xee, 0x20, };
1492 static const u8 ed25519_65_test_vectors_message[] = {
1493 	0x4b, 0xaf, 0xda, 0xc9, 0x09, 0x9d, 0x40, 0x57, 0xed, 0x6d, 0xd0, 0x8b, 0xca, 0xee, 0x87, 0x56, 0xe9, 0xa4, 0x0f, 0x2c, 0xb9, 0x59, 0x80, 0x20, 0xeb, 0x95, 0x01, 0x95, 0x28, 0x40, 0x9b, 0xbe, 0xa3, 0x8b, 0x38, 0x4a, 0x59, 0xf1, 0x19, 0xf5, 0x72, 0x97, 0xbf, 0xb2, 0xfa, 0x14, 0x2f, 0xc7, 0xbb, 0x1d, 0x90, 0xdb, 0xdd, 0xde, 0x77, 0x2b, 0xcd, 0xe4, 0x8c, 0x56, 0x70, 0xd5, 0xfa, 0x13, };
1494 static const u8 ed25519_65_test_vectors_expected_sig[] = {
1495 	0x57, 0xb9, 0xd2, 0xa7, 0x11, 0x20, 0x7f, 0x83, 0x74, 0x21, 0xba, 0xe7, 0xdd, 0x48, 0xea, 0xa1, 0x8e, 0xab, 0x1a, 0x9a, 0x70, 0xa0, 0xf1, 0x30, 0x58, 0x06, 0xfe, 0xe1, 0x7b, 0x45, 0x8f, 0x3a, 0x09, 0x64, 0xb3, 0x02, 0xd1, 0x83, 0x4d, 0x3e, 0x0a, 0xc9, 0xe8, 0x49, 0x6f, 0x00, 0x0b, 0x77, 0xf0, 0x08, 0x3b, 0x41, 0xf8, 0xa9, 0x57, 0xe6, 0x32, 0xfb, 0xc7, 0x84, 0x0e, 0xee, 0x6a, 0x06, };
1496 static const ec_test_case ed25519_65_test_case = {
1497 	.name = "EDDSA25519-SHA512/wei25519 65",
1498 	.ec_str_p = &wei25519_str_params,
1499 	.priv_key = ed25519_65_test_vectors_priv_key,
1500 	.priv_key_len = sizeof(ed25519_65_test_vectors_priv_key),
1501 	.nn_random = NULL,
1502 	.hash_type = SHA512,
1503 	.msg = (const char *)ed25519_65_test_vectors_message,
1504 	.msglen = sizeof(ed25519_65_test_vectors_message),
1505 	.sig_type = EDDSA25519,
1506 	.exp_sig = ed25519_65_test_vectors_expected_sig,
1507 	.exp_siglen = sizeof(ed25519_65_test_vectors_expected_sig),
1508 	.adata = NULL,
1509 	.adata_len = 0
1510 };
1511 
1512 /************************************************/
1513 static const u8 ed25519_66_test_vectors_priv_key[] = {
1514 	0x0d, 0x13, 0x1c, 0x45, 0xae, 0xa6, 0xf3, 0xa4, 0xe1, 0xb9, 0xa2, 0xcf, 0x60, 0xc5, 0x51, 0x04, 0x58, 0x7e, 0xfa, 0xa8, 0x46, 0xb2, 0x22, 0xbf, 0x0a, 0x7b, 0x74, 0xce, 0x7a, 0x3f, 0x63, 0xb6, };
1515 static const u8 ed25519_66_test_vectors_message[] = {
1516 	0xb4, 0x29, 0x1d, 0x08, 0xb8, 0x8f, 0xb2, 0xf7, 0xb8, 0xf9, 0x9d, 0x0d, 0xce, 0x40, 0x07, 0x9f, 0xcb, 0xab, 0x71, 0x8b, 0xbd, 0x8f, 0x4e, 0x8e, 0xab, 0xc3, 0xc1, 0x42, 0x8b, 0x6a, 0x07, 0x1f, 0xb2, 0xa3, 0xc8, 0xeb, 0xa1, 0xca, 0xcc, 0xcf, 0xa8, 0x71, 0xb3, 0x65, 0xc7, 0x08, 0xbe, 0xf2, 0x68, 0x5b, 0xc1, 0x3e, 0x6b, 0x80, 0xbc, 0x14, 0xa5, 0xf2, 0x49, 0x17, 0x0f, 0xfc, 0x56, 0xd0, 0x14, };
1517 static const u8 ed25519_66_test_vectors_expected_sig[] = {
1518 	0xa9, 0xc5, 0xee, 0x86, 0xfb, 0x06, 0xd9, 0xe4, 0x6b, 0x37, 0x9c, 0x32, 0xdd, 0xa7, 0xc9, 0x2c, 0x9c, 0x13, 0xdb, 0x27, 0x4d, 0xc2, 0x41, 0x16, 0xfb, 0xdd, 0x87, 0x86, 0x96, 0x04, 0x54, 0x88, 0xcc, 0x75, 0xa5, 0x2f, 0xff, 0x67, 0xd1, 0xa5, 0x11, 0x3d, 0x06, 0xe3, 0x33, 0xac, 0x67, 0xff, 0x66, 0x4b, 0x3f, 0x2a, 0x40, 0x5f, 0xa1, 0xd1, 0x4d, 0xd5, 0xbb, 0xb9, 0x74, 0x09, 0xb6, 0x06, };
1519 static const ec_test_case ed25519_66_test_case = {
1520 	.name = "EDDSA25519-SHA512/wei25519 66",
1521 	.ec_str_p = &wei25519_str_params,
1522 	.priv_key = ed25519_66_test_vectors_priv_key,
1523 	.priv_key_len = sizeof(ed25519_66_test_vectors_priv_key),
1524 	.nn_random = NULL,
1525 	.hash_type = SHA512,
1526 	.msg = (const char *)ed25519_66_test_vectors_message,
1527 	.msglen = sizeof(ed25519_66_test_vectors_message),
1528 	.sig_type = EDDSA25519,
1529 	.exp_sig = ed25519_66_test_vectors_expected_sig,
1530 	.exp_siglen = sizeof(ed25519_66_test_vectors_expected_sig),
1531 	.adata = NULL,
1532 	.adata_len = 0
1533 };
1534 
1535 /************************************************/
1536 static const u8 ed25519_67_test_vectors_priv_key[] = {
1537 	0xa7, 0x5e, 0x3b, 0x6b, 0x41, 0x70, 0xe4, 0x44, 0x78, 0x1b, 0xe4, 0xee, 0xac, 0x3e, 0x0f, 0xda, 0xa4, 0xb4, 0x35, 0x6f, 0x70, 0x54, 0x86, 0xbc, 0xb0, 0x71, 0xa3, 0x25, 0xae, 0x07, 0x1f, 0xba, };
1538 static const u8 ed25519_67_test_vectors_message[] = {
1539 	0x40, 0x37, 0x86, 0x6f, 0x65, 0x48, 0xb0, 0x1c, 0xc6, 0xbc, 0xf3, 0xa9, 0x40, 0xe3, 0x94, 0x5a, 0xa2, 0xd1, 0x88, 0xb4, 0xb7, 0xf1, 0x82, 0xaa, 0x77, 0xec, 0x4d, 0x6b, 0x04, 0x28, 0xab, 0x5b, 0x84, 0xd8, 0x5d, 0xf1, 0x92, 0xa5, 0xa3, 0x8a, 0xda, 0x08, 0x9d, 0x76, 0xfa, 0x26, 0xbf, 0x67, 0x73, 0x6a, 0x70, 0x41, 0xa5, 0xeb, 0x8f, 0x0c, 0x57, 0x19, 0xeb, 0x39, 0x66, 0x93, 0xc4, 0x51, 0x60, 0xf8, };
1540 static const u8 ed25519_67_test_vectors_expected_sig[] = {
1541 	0xa5, 0xdb, 0x4d, 0x3d, 0x33, 0x29, 0xab, 0xe3, 0x69, 0x79, 0x59, 0xe6, 0xb5, 0x94, 0x7e, 0xa8, 0x60, 0x1b, 0x03, 0xef, 0x8e, 0x1d, 0x6f, 0xe2, 0x02, 0x14, 0x49, 0x31, 0x27, 0x2c, 0xa0, 0xa0, 0x9b, 0x5e, 0xb0, 0xf3, 0x90, 0x57, 0x2e, 0xa7, 0xef, 0x03, 0xc6, 0x13, 0x1e, 0x9d, 0xe5, 0xf1, 0x6b, 0xf0, 0xb0, 0x34, 0x24, 0x4f, 0x7e, 0x10, 0x4f, 0xf5, 0x31, 0x1b, 0xbf, 0x66, 0x3a, 0x0d, };
1542 static const ec_test_case ed25519_67_test_case = {
1543 	.name = "EDDSA25519-SHA512/wei25519 67",
1544 	.ec_str_p = &wei25519_str_params,
1545 	.priv_key = ed25519_67_test_vectors_priv_key,
1546 	.priv_key_len = sizeof(ed25519_67_test_vectors_priv_key),
1547 	.nn_random = NULL,
1548 	.hash_type = SHA512,
1549 	.msg = (const char *)ed25519_67_test_vectors_message,
1550 	.msglen = sizeof(ed25519_67_test_vectors_message),
1551 	.sig_type = EDDSA25519,
1552 	.exp_sig = ed25519_67_test_vectors_expected_sig,
1553 	.exp_siglen = sizeof(ed25519_67_test_vectors_expected_sig),
1554 	.adata = NULL,
1555 	.adata_len = 0
1556 };
1557 
1558 /************************************************/
1559 static const u8 ed25519_68_test_vectors_priv_key[] = {
1560 	0xbc, 0xbc, 0xf5, 0x61, 0xec, 0xc0, 0x5a, 0x41, 0xc7, 0xd7, 0xe5, 0x5e, 0x69, 0x6d, 0x32, 0xce, 0x39, 0xb4, 0xd0, 0x3c, 0x1f, 0x5f, 0x3f, 0x3a, 0x89, 0x27, 0xfe, 0x5e, 0x62, 0xe8, 0x44, 0xb2, };
1561 static const u8 ed25519_68_test_vectors_message[] = {
1562 	0x6f, 0x67, 0x16, 0xb6, 0x78, 0x47, 0x40, 0x98, 0x0a, 0xeb, 0xc3, 0x24, 0x88, 0x07, 0xe3, 0x1c, 0x12, 0x86, 0xac, 0x7b, 0x68, 0x1c, 0x00, 0xb6, 0x6c, 0x88, 0xff, 0x7a, 0x33, 0x6d, 0x44, 0x1f, 0xa5, 0xc3, 0xeb, 0x25, 0x6d, 0x20, 0xcf, 0x6d, 0x1a, 0xc9, 0x2c, 0xcf, 0xe4, 0xbe, 0x6d, 0xcc, 0x41, 0xb1, 0xaf, 0xf8, 0x46, 0xd3, 0x60, 0xc2, 0x43, 0x00, 0x1c, 0xab, 0xdf, 0xbf, 0x1a, 0x9b, 0x24, 0x04, 0x55, };
1563 static const u8 ed25519_68_test_vectors_expected_sig[] = {
1564 	0x9f, 0xf1, 0x51, 0x15, 0xf6, 0x66, 0x1f, 0x32, 0x11, 0xd7, 0xa4, 0x07, 0x64, 0x96, 0x76, 0x29, 0xba, 0x6a, 0x52, 0x63, 0x95, 0x1b, 0xdc, 0x3c, 0x6a, 0x4c, 0x90, 0xd0, 0x70, 0xf7, 0xbe, 0x00, 0x02, 0x4b, 0x80, 0xd8, 0x3b, 0x6b, 0xc2, 0x75, 0x87, 0xfc, 0xff, 0x5f, 0x5c, 0xcc, 0x0e, 0xb3, 0xcd, 0xe1, 0x49, 0x7c, 0xf5, 0x68, 0x95, 0x14, 0x7a, 0x06, 0x3f, 0x61, 0xf0, 0x8a, 0xdf, 0x0b, };
1565 static const ec_test_case ed25519_68_test_case = {
1566 	.name = "EDDSA25519-SHA512/wei25519 68",
1567 	.ec_str_p = &wei25519_str_params,
1568 	.priv_key = ed25519_68_test_vectors_priv_key,
1569 	.priv_key_len = sizeof(ed25519_68_test_vectors_priv_key),
1570 	.nn_random = NULL,
1571 	.hash_type = SHA512,
1572 	.msg = (const char *)ed25519_68_test_vectors_message,
1573 	.msglen = sizeof(ed25519_68_test_vectors_message),
1574 	.sig_type = EDDSA25519,
1575 	.exp_sig = ed25519_68_test_vectors_expected_sig,
1576 	.exp_siglen = sizeof(ed25519_68_test_vectors_expected_sig),
1577 	.adata = NULL,
1578 	.adata_len = 0
1579 };
1580 
1581 /************************************************/
1582 static const u8 ed25519_69_test_vectors_priv_key[] = {
1583 	0x21, 0x05, 0x32, 0x80, 0x5f, 0xa9, 0xcc, 0x9b, 0xe9, 0x16, 0xd2, 0x13, 0xca, 0xc3, 0x74, 0xe3, 0xcd, 0x6f, 0xc2, 0x60, 0x2a, 0x54, 0x4d, 0x0c, 0x1c, 0xe2, 0x9d, 0x30, 0x10, 0x5d, 0x69, 0xab, };
1584 static const u8 ed25519_69_test_vectors_message[] = {
1585 	0x9f, 0xc4, 0xd2, 0x8c, 0xfd, 0x25, 0xe6, 0xc0, 0xc5, 0xe7, 0x24, 0xe1, 0x9c, 0xa3, 0x9d, 0x71, 0xe5, 0x3b, 0xf4, 0xaa, 0x27, 0x96, 0xc5, 0x4c, 0x33, 0x51, 0xf1, 0x08, 0xfc, 0x70, 0xf2, 0x61, 0x1a, 0x62, 0xe0, 0xab, 0x90, 0xaf, 0x6a, 0xde, 0x52, 0x16, 0x78, 0x8e, 0x9e, 0xb2, 0xa8, 0x73, 0x05, 0x9b, 0x1e, 0x79, 0xd7, 0xd5, 0x9d, 0xeb, 0xd6, 0x8f, 0x2d, 0x4d, 0x80, 0xff, 0xe3, 0x1b, 0xf7, 0x4b, 0x92, 0x8c, };
1586 static const u8 ed25519_69_test_vectors_expected_sig[] = {
1587 	0x4c, 0x2d, 0x31, 0xd5, 0xbb, 0xc4, 0x2e, 0x02, 0x6d, 0xc1, 0xe0, 0x79, 0xec, 0xc4, 0xdd, 0x07, 0x2c, 0x5d, 0x2c, 0xce, 0x65, 0xe3, 0xdb, 0x8d, 0x8a, 0x1d, 0xd9, 0x05, 0x7f, 0xaa, 0x03, 0x71, 0x72, 0x7f, 0x72, 0x72, 0x31, 0xa0, 0xf0, 0x60, 0xfa, 0x27, 0x09, 0x75, 0x33, 0xb6, 0xdb, 0x3b, 0x8f, 0x62, 0x52, 0xf2, 0x79, 0x3d, 0x75, 0x66, 0x2c, 0xaa, 0xdf, 0x5f, 0x0f, 0xcc, 0x71, 0x0e, };
1588 static const ec_test_case ed25519_69_test_case = {
1589 	.name = "EDDSA25519-SHA512/wei25519 69",
1590 	.ec_str_p = &wei25519_str_params,
1591 	.priv_key = ed25519_69_test_vectors_priv_key,
1592 	.priv_key_len = sizeof(ed25519_69_test_vectors_priv_key),
1593 	.nn_random = NULL,
1594 	.hash_type = SHA512,
1595 	.msg = (const char *)ed25519_69_test_vectors_message,
1596 	.msglen = sizeof(ed25519_69_test_vectors_message),
1597 	.sig_type = EDDSA25519,
1598 	.exp_sig = ed25519_69_test_vectors_expected_sig,
1599 	.exp_siglen = sizeof(ed25519_69_test_vectors_expected_sig),
1600 	.adata = NULL,
1601 	.adata_len = 0
1602 };
1603 
1604 /************************************************/
1605 static const u8 ed25519_70_test_vectors_priv_key[] = {
1606 	0x18, 0x5d, 0x64, 0xb6, 0x94, 0x79, 0xe0, 0xba, 0x0a, 0x58, 0x44, 0xa1, 0x0a, 0xd8, 0x41, 0x25, 0xba, 0x11, 0xc4, 0xb4, 0x0d, 0x63, 0xed, 0xa2, 0xc5, 0x7a, 0xfc, 0x7e, 0x01, 0x9c, 0x8e, 0x0c, };
1607 static const u8 ed25519_70_test_vectors_message[] = {
1608 	0x4a, 0x08, 0x24, 0xfe, 0x70, 0xd4, 0x31, 0x54, 0x13, 0xd0, 0xa0, 0xca, 0xfb, 0xf4, 0xf5, 0xfe, 0x11, 0x7d, 0x5e, 0x07, 0xe1, 0xc3, 0xa4, 0xef, 0xfb, 0x9d, 0x0a, 0xe9, 0x14, 0x90, 0x23, 0x48, 0x78, 0xcc, 0xf6, 0x79, 0x2a, 0x91, 0xf6, 0x8c, 0x6a, 0x52, 0x0d, 0xe1, 0x60, 0x71, 0xf0, 0x8a, 0xbe, 0x35, 0xdc, 0x5e, 0xa4, 0x28, 0xf1, 0x95, 0x7b, 0x66, 0x33, 0x71, 0xce, 0x24, 0xc6, 0x09, 0xdd, 0x55, 0xb8, 0xf4, 0x93, };
1609 static const u8 ed25519_70_test_vectors_expected_sig[] = {
1610 	0x43, 0xe0, 0x38, 0x7d, 0xa5, 0xba, 0x09, 0xa1, 0x90, 0xf6, 0xe7, 0xb2, 0x68, 0x05, 0x78, 0xd8, 0x89, 0x76, 0x9b, 0xcc, 0x44, 0x5e, 0x5e, 0xf5, 0x71, 0xb4, 0x92, 0x87, 0x1c, 0x15, 0x5c, 0x5b, 0x9f, 0x62, 0x0b, 0xfa, 0xcf, 0xbf, 0x2d, 0xf1, 0xfd, 0x87, 0x44, 0x46, 0x04, 0xb7, 0x1b, 0x2e, 0x23, 0x7b, 0xaa, 0xa7, 0xee, 0x20, 0x93, 0xed, 0xe4, 0xa6, 0x01, 0xed, 0xf8, 0x83, 0xe3, 0x07, };
1611 static const ec_test_case ed25519_70_test_case = {
1612 	.name = "EDDSA25519-SHA512/wei25519 70",
1613 	.ec_str_p = &wei25519_str_params,
1614 	.priv_key = ed25519_70_test_vectors_priv_key,
1615 	.priv_key_len = sizeof(ed25519_70_test_vectors_priv_key),
1616 	.nn_random = NULL,
1617 	.hash_type = SHA512,
1618 	.msg = (const char *)ed25519_70_test_vectors_message,
1619 	.msglen = sizeof(ed25519_70_test_vectors_message),
1620 	.sig_type = EDDSA25519,
1621 	.exp_sig = ed25519_70_test_vectors_expected_sig,
1622 	.exp_siglen = sizeof(ed25519_70_test_vectors_expected_sig),
1623 	.adata = NULL,
1624 	.adata_len = 0
1625 };
1626 
1627 /************************************************/
1628 static const u8 ed25519_71_test_vectors_priv_key[] = {
1629 	0xcf, 0xa9, 0xd9, 0x16, 0x4b, 0x3c, 0x4f, 0x6f, 0x72, 0x26, 0x35, 0xd2, 0x06, 0x6c, 0xd7, 0xea, 0x5e, 0x55, 0x33, 0xd2, 0xc7, 0x4f, 0x8a, 0xdd, 0x66, 0x9c, 0x37, 0x1f, 0xaa, 0x47, 0x64, 0x26, };
1630 static const u8 ed25519_71_test_vectors_message[] = {
1631 	0x75, 0x76, 0x21, 0xb1, 0x67, 0x5d, 0xb7, 0xca, 0xce, 0xf7, 0xf2, 0x78, 0x25, 0x87, 0xff, 0x3a, 0xf5, 0x1a, 0x3e, 0xf2, 0xf4, 0xbc, 0xf9, 0x27, 0x9c, 0x4c, 0xe9, 0x40, 0x02, 0xe1, 0xf0, 0x04, 0x24, 0xbf, 0x0e, 0xb6, 0x21, 0x98, 0x2c, 0xc8, 0x5c, 0xb4, 0xd1, 0x71, 0xe5, 0x64, 0xa0, 0xc2, 0xf6, 0xe3, 0x56, 0x7a, 0x1a, 0xae, 0x2c, 0xdd, 0xb7, 0xe9, 0xb2, 0x5f, 0x47, 0xdc, 0x20, 0xa5, 0x10, 0x50, 0x54, 0x29, 0x69, 0xca, };
1632 static const u8 ed25519_71_test_vectors_expected_sig[] = {
1633 	0x01, 0xd7, 0xc9, 0xb5, 0x70, 0x1a, 0xf7, 0x1e, 0x2f, 0x48, 0x77, 0xff, 0xc9, 0xb7, 0xb5, 0x30, 0x5f, 0x52, 0x81, 0x6d, 0x44, 0x58, 0xe3, 0x7e, 0x41, 0xc7, 0x71, 0x9f, 0xac, 0x1d, 0x76, 0xa0, 0x1f, 0xff, 0x3f, 0x50, 0xfe, 0x1a, 0x58, 0x75, 0xcc, 0xc3, 0xfb, 0x70, 0x00, 0x1c, 0x94, 0x7a, 0x33, 0xfc, 0x8b, 0x20, 0x7d, 0xe1, 0x35, 0x72, 0xcc, 0xdb, 0x8b, 0xa9, 0x89, 0x33, 0xab, 0x01, };
1634 static const ec_test_case ed25519_71_test_case = {
1635 	.name = "EDDSA25519-SHA512/wei25519 71",
1636 	.ec_str_p = &wei25519_str_params,
1637 	.priv_key = ed25519_71_test_vectors_priv_key,
1638 	.priv_key_len = sizeof(ed25519_71_test_vectors_priv_key),
1639 	.nn_random = NULL,
1640 	.hash_type = SHA512,
1641 	.msg = (const char *)ed25519_71_test_vectors_message,
1642 	.msglen = sizeof(ed25519_71_test_vectors_message),
1643 	.sig_type = EDDSA25519,
1644 	.exp_sig = ed25519_71_test_vectors_expected_sig,
1645 	.exp_siglen = sizeof(ed25519_71_test_vectors_expected_sig),
1646 	.adata = NULL,
1647 	.adata_len = 0
1648 };
1649 
1650 /************************************************/
1651 static const u8 ed25519_72_test_vectors_priv_key[] = {
1652 	0x1a, 0xcb, 0x4a, 0x25, 0x6c, 0x2f, 0x89, 0x93, 0xca, 0x24, 0xde, 0x1e, 0x00, 0x14, 0x60, 0x6d, 0x66, 0x8b, 0x5e, 0x75, 0x60, 0x32, 0xd2, 0x69, 0xf1, 0xd2, 0x4d, 0x35, 0x1c, 0x8e, 0xea, 0x4a, };
1653 static const u8 ed25519_72_test_vectors_message[] = {
1654 	0xc4, 0x6a, 0x6d, 0x61, 0xaa, 0x0a, 0xed, 0x1c, 0x1d, 0x85, 0x47, 0xa7, 0x0b, 0x89, 0xb7, 0x19, 0x64, 0x75, 0xd5, 0xa4, 0x87, 0x08, 0x81, 0xb1, 0xec, 0xd0, 0xf0, 0xcb, 0x9c, 0x74, 0x5f, 0x8a, 0x2a, 0xdc, 0x80, 0x24, 0xe2, 0xdc, 0x55, 0xb5, 0x3a, 0xa5, 0xd3, 0x83, 0xa8, 0x1a, 0xab, 0xc1, 0xa4, 0x7e, 0x8d, 0x07, 0xd0, 0x0b, 0x7f, 0x0b, 0x56, 0xce, 0xdd, 0xbf, 0xb1, 0xf4, 0x24, 0xbb, 0x5c, 0x02, 0x18, 0x46, 0x78, 0xa6, 0x66, };
1655 static const u8 ed25519_72_test_vectors_expected_sig[] = {
1656 	0x05, 0xaa, 0x76, 0xf7, 0xfe, 0x51, 0x89, 0x23, 0x03, 0xd7, 0x89, 0x14, 0x71, 0x59, 0x95, 0xe7, 0xd7, 0x68, 0xff, 0x77, 0x14, 0xce, 0x27, 0x0f, 0x17, 0x5e, 0x56, 0xaf, 0x17, 0xae, 0x01, 0x8d, 0x3f, 0xa9, 0x39, 0xf5, 0xf6, 0x20, 0xde, 0x82, 0xbc, 0xd1, 0x54, 0x96, 0x87, 0xb2, 0x05, 0xc7, 0x87, 0x12, 0x03, 0xe6, 0x24, 0x23, 0x8c, 0x4e, 0x30, 0x9f, 0xab, 0x7f, 0x92, 0xfb, 0xaa, 0x05, };
1657 static const ec_test_case ed25519_72_test_case = {
1658 	.name = "EDDSA25519-SHA512/wei25519 72",
1659 	.ec_str_p = &wei25519_str_params,
1660 	.priv_key = ed25519_72_test_vectors_priv_key,
1661 	.priv_key_len = sizeof(ed25519_72_test_vectors_priv_key),
1662 	.nn_random = NULL,
1663 	.hash_type = SHA512,
1664 	.msg = (const char *)ed25519_72_test_vectors_message,
1665 	.msglen = sizeof(ed25519_72_test_vectors_message),
1666 	.sig_type = EDDSA25519,
1667 	.exp_sig = ed25519_72_test_vectors_expected_sig,
1668 	.exp_siglen = sizeof(ed25519_72_test_vectors_expected_sig),
1669 	.adata = NULL,
1670 	.adata_len = 0
1671 };
1672 
1673 /************************************************/
1674 static const u8 ed25519_73_test_vectors_priv_key[] = {
1675 	0xac, 0xe3, 0xc4, 0x64, 0x24, 0x82, 0x36, 0x22, 0x97, 0x9f, 0xc3, 0xa8, 0x4a, 0x7d, 0xa6, 0x9c, 0x1d, 0x52, 0x7d, 0x83, 0x12, 0xe8, 0xfb, 0x01, 0x83, 0x75, 0xbd, 0x3a, 0x96, 0xc2, 0x9c, 0x18, };
1676 static const u8 ed25519_73_test_vectors_message[] = {
1677 	0xa9, 0xf1, 0x37, 0xbc, 0x90, 0x21, 0xbf, 0x10, 0x5a, 0xee, 0x25, 0xbe, 0x21, 0xcd, 0x9e, 0xe5, 0xb3, 0x54, 0x7c, 0xf1, 0x0c, 0xc5, 0xf9, 0x84, 0x76, 0xfb, 0x58, 0x8b, 0xd7, 0x0e, 0x2d, 0x6d, 0x6b, 0x08, 0x34, 0xe8, 0x42, 0xe4, 0xee, 0x94, 0x30, 0x3c, 0xf9, 0x6b, 0x09, 0xc1, 0x71, 0x53, 0x81, 0xb3, 0x6e, 0x14, 0xa4, 0x91, 0xb8, 0x0f, 0x89, 0x5e, 0xa4, 0x21, 0xb8, 0xec, 0x2b, 0x1d, 0x3c, 0x18, 0x7e, 0x02, 0x93, 0x5c, 0x55, 0x26, };
1678 static const u8 ed25519_73_test_vectors_expected_sig[] = {
1679 	0xfe, 0xb8, 0x89, 0x6d, 0xd3, 0xfe, 0x60, 0x01, 0xff, 0xea, 0x17, 0x1b, 0x37, 0xb7, 0x88, 0xa6, 0x9f, 0x7f, 0x85, 0x01, 0x93, 0xa6, 0x34, 0x06, 0xf5, 0x63, 0x76, 0xdd, 0x26, 0x3d, 0x09, 0x9a, 0xef, 0x80, 0xec, 0xe6, 0x7e, 0x2c, 0x43, 0xf4, 0x0e, 0xca, 0x46, 0x2c, 0x6b, 0x71, 0xe7, 0x94, 0x06, 0xb1, 0x8d, 0xb7, 0x4a, 0xe5, 0xd4, 0x98, 0x44, 0xe3, 0xb1, 0x32, 0xbc, 0x2a, 0x13, 0x07, };
1680 static const ec_test_case ed25519_73_test_case = {
1681 	.name = "EDDSA25519-SHA512/wei25519 73",
1682 	.ec_str_p = &wei25519_str_params,
1683 	.priv_key = ed25519_73_test_vectors_priv_key,
1684 	.priv_key_len = sizeof(ed25519_73_test_vectors_priv_key),
1685 	.nn_random = NULL,
1686 	.hash_type = SHA512,
1687 	.msg = (const char *)ed25519_73_test_vectors_message,
1688 	.msglen = sizeof(ed25519_73_test_vectors_message),
1689 	.sig_type = EDDSA25519,
1690 	.exp_sig = ed25519_73_test_vectors_expected_sig,
1691 	.exp_siglen = sizeof(ed25519_73_test_vectors_expected_sig),
1692 	.adata = NULL,
1693 	.adata_len = 0
1694 };
1695 
1696 /************************************************/
1697 static const u8 ed25519_74_test_vectors_priv_key[] = {
1698 	0x88, 0xf6, 0x81, 0x93, 0x4e, 0x33, 0xc3, 0x5c, 0x07, 0xdc, 0x6e, 0x5a, 0x83, 0x29, 0x42, 0xae, 0x3d, 0x59, 0x90, 0x3c, 0xcd, 0xe2, 0xf7, 0x6c, 0xcb, 0x75, 0x87, 0xce, 0xa7, 0xec, 0x41, 0xb6, };
1699 static const u8 ed25519_74_test_vectors_message[] = {
1700 	0x6e, 0x8b, 0xac, 0x1f, 0x85, 0x3b, 0x81, 0xfe, 0xf9, 0x47, 0x07, 0xe1, 0x8c, 0xc6, 0x1c, 0x6f, 0x0a, 0x9c, 0xbc, 0x2a, 0x41, 0xd0, 0x78, 0xdc, 0xc8, 0x3f, 0xc0, 0x22, 0x9c, 0x7f, 0x8d, 0xbe, 0x6d, 0xbd, 0xd9, 0x08, 0x54, 0xb1, 0xf1, 0xae, 0x2b, 0x9f, 0x2b, 0x12, 0x0b, 0x86, 0xa8, 0x78, 0x6b, 0x4e, 0x78, 0xce, 0x23, 0xab, 0x86, 0xba, 0xaf, 0x88, 0x75, 0x4a, 0xf0, 0xf3, 0xd8, 0x88, 0x81, 0xda, 0xe0, 0xbc, 0x52, 0x61, 0xbf, 0xd0, 0x38, };
1701 static const u8 ed25519_74_test_vectors_expected_sig[] = {
1702 	0x45, 0xb2, 0x7b, 0xf1, 0xb9, 0xea, 0xc0, 0x6b, 0x62, 0xb6, 0x86, 0xf6, 0xd5, 0x46, 0x56, 0x3b, 0x2d, 0xfe, 0x5b, 0x17, 0x5d, 0xbe, 0xf3, 0x2b, 0xf7, 0x8c, 0x35, 0xa1, 0x6c, 0x95, 0x8a, 0x9d, 0x4f, 0x26, 0xd2, 0x91, 0xde, 0x9b, 0xb2, 0x06, 0x6c, 0x0a, 0x28, 0x61, 0x13, 0xcc, 0x09, 0x17, 0x2d, 0x40, 0xa3, 0x6d, 0x4c, 0xbd, 0x95, 0x17, 0x08, 0x86, 0x02, 0x26, 0xeb, 0x30, 0xcd, 0x05, };
1703 static const ec_test_case ed25519_74_test_case = {
1704 	.name = "EDDSA25519-SHA512/wei25519 74",
1705 	.ec_str_p = &wei25519_str_params,
1706 	.priv_key = ed25519_74_test_vectors_priv_key,
1707 	.priv_key_len = sizeof(ed25519_74_test_vectors_priv_key),
1708 	.nn_random = NULL,
1709 	.hash_type = SHA512,
1710 	.msg = (const char *)ed25519_74_test_vectors_message,
1711 	.msglen = sizeof(ed25519_74_test_vectors_message),
1712 	.sig_type = EDDSA25519,
1713 	.exp_sig = ed25519_74_test_vectors_expected_sig,
1714 	.exp_siglen = sizeof(ed25519_74_test_vectors_expected_sig),
1715 	.adata = NULL,
1716 	.adata_len = 0
1717 };
1718 
1719 /************************************************/
1720 static const u8 ed25519_75_test_vectors_priv_key[] = {
1721 	0x48, 0x05, 0x0a, 0x6e, 0x01, 0x58, 0xf6, 0xad, 0x25, 0x34, 0x12, 0xe4, 0x49, 0x7c, 0xff, 0x62, 0xd5, 0xee, 0x55, 0x5e, 0xdf, 0xfe, 0x59, 0xe4, 0xdc, 0x40, 0x15, 0x22, 0x81, 0x32, 0x95, 0xce, };
1722 static const u8 ed25519_75_test_vectors_message[] = {
1723 	0xed, 0x6e, 0xec, 0x29, 0xfb, 0x70, 0x49, 0xdf, 0xf7, 0x07, 0xf0, 0xa4, 0x42, 0x6e, 0xbc, 0x8f, 0x5b, 0x35, 0x0e, 0x95, 0x87, 0x0b, 0x9d, 0x61, 0x98, 0xc8, 0x13, 0x9e, 0x9c, 0x3e, 0x1e, 0x40, 0x99, 0x37, 0xd1, 0xa8, 0x58, 0xa0, 0xde, 0xa4, 0x82, 0xa5, 0xcb, 0x1a, 0x85, 0x4e, 0xd3, 0xb5, 0xa9, 0x39, 0x7a, 0xcb, 0x63, 0xbf, 0xf6, 0xb6, 0x40, 0x39, 0xef, 0x2e, 0xb1, 0x15, 0x9e, 0x99, 0x85, 0x83, 0x10, 0xbb, 0xbd, 0x86, 0x12, 0x5c, 0x3e, 0x0e, };
1724 static const u8 ed25519_75_test_vectors_expected_sig[] = {
1725 	0x72, 0x16, 0xab, 0x60, 0xc3, 0x51, 0x68, 0x18, 0x7d, 0x0f, 0xce, 0x47, 0x53, 0xc8, 0x6e, 0x80, 0x05, 0x8d, 0x54, 0x0b, 0x76, 0xbf, 0x95, 0x84, 0x3a, 0x58, 0x98, 0x84, 0x10, 0x60, 0xa9, 0x9a, 0x44, 0xde, 0x6f, 0x43, 0x96, 0x25, 0xa3, 0xf6, 0x36, 0x5f, 0x59, 0xc3, 0x77, 0xbf, 0x45, 0x90, 0x9b, 0xbf, 0xef, 0x5c, 0x50, 0xb2, 0x5f, 0x31, 0x94, 0xe5, 0xfb, 0xd3, 0x4e, 0xa5, 0xe7, 0x06, };
1726 static const ec_test_case ed25519_75_test_case = {
1727 	.name = "EDDSA25519-SHA512/wei25519 75",
1728 	.ec_str_p = &wei25519_str_params,
1729 	.priv_key = ed25519_75_test_vectors_priv_key,
1730 	.priv_key_len = sizeof(ed25519_75_test_vectors_priv_key),
1731 	.nn_random = NULL,
1732 	.hash_type = SHA512,
1733 	.msg = (const char *)ed25519_75_test_vectors_message,
1734 	.msglen = sizeof(ed25519_75_test_vectors_message),
1735 	.sig_type = EDDSA25519,
1736 	.exp_sig = ed25519_75_test_vectors_expected_sig,
1737 	.exp_siglen = sizeof(ed25519_75_test_vectors_expected_sig),
1738 	.adata = NULL,
1739 	.adata_len = 0
1740 };
1741 
1742 /************************************************/
1743 static const u8 ed25519_76_test_vectors_priv_key[] = {
1744 	0x18, 0xd1, 0x3d, 0x0c, 0x00, 0xe8, 0xe3, 0x38, 0x6a, 0x5c, 0xfb, 0x30, 0xa9, 0xe7, 0x9f, 0xe8, 0x8b, 0x18, 0x61, 0xed, 0x2d, 0x12, 0x01, 0xeb, 0x17, 0x00, 0x38, 0xe1, 0x94, 0x77, 0x04, 0x03, };
1745 static const u8 ed25519_76_test_vectors_message[] = {
1746 	0x91, 0x0f, 0x6c, 0x27, 0x2d, 0xd9, 0x79, 0x31, 0xac, 0x47, 0x31, 0x0d, 0x24, 0x4c, 0xad, 0xb4, 0x32, 0x51, 0x36, 0x5e, 0x02, 0xba, 0x9f, 0x6a, 0x5b, 0x3c, 0x32, 0x26, 0xbe, 0x9d, 0x7d, 0x3a, 0x74, 0xa2, 0xba, 0x49, 0x06, 0xe8, 0xe7, 0x1a, 0x4b, 0xf3, 0xd3, 0x55, 0x6e, 0xbd, 0xfc, 0x66, 0x6c, 0xd6, 0xb1, 0x2f, 0x20, 0xc4, 0xa0, 0x08, 0x34, 0xb8, 0x8f, 0xbb, 0x24, 0x45, 0x75, 0x19, 0x92, 0x86, 0xb0, 0xb9, 0x34, 0x4c, 0xf3, 0x34, 0xaf, 0xf0, 0x07, };
1747 static const u8 ed25519_76_test_vectors_expected_sig[] = {
1748 	0x03, 0x39, 0x88, 0x15, 0x4c, 0x5d, 0x79, 0xd2, 0x51, 0x0b, 0xe8, 0x3e, 0x77, 0x80, 0x15, 0xdf, 0xe2, 0xfb, 0x85, 0xb8, 0x11, 0x1f, 0x7e, 0xc1, 0x39, 0x91, 0x8b, 0x54, 0x00, 0xe3, 0xd6, 0x56, 0xee, 0x80, 0xa9, 0xf5, 0xc9, 0x07, 0x2b, 0x5b, 0x46, 0x7a, 0x5c, 0xc5, 0xa5, 0x7c, 0xc8, 0xad, 0x10, 0x62, 0xb5, 0xbf, 0xf1, 0x08, 0x62, 0xd9, 0xd3, 0x69, 0xdd, 0xe2, 0xcc, 0x96, 0x67, 0x01, };
1749 static const ec_test_case ed25519_76_test_case = {
1750 	.name = "EDDSA25519-SHA512/wei25519 76",
1751 	.ec_str_p = &wei25519_str_params,
1752 	.priv_key = ed25519_76_test_vectors_priv_key,
1753 	.priv_key_len = sizeof(ed25519_76_test_vectors_priv_key),
1754 	.nn_random = NULL,
1755 	.hash_type = SHA512,
1756 	.msg = (const char *)ed25519_76_test_vectors_message,
1757 	.msglen = sizeof(ed25519_76_test_vectors_message),
1758 	.sig_type = EDDSA25519,
1759 	.exp_sig = ed25519_76_test_vectors_expected_sig,
1760 	.exp_siglen = sizeof(ed25519_76_test_vectors_expected_sig),
1761 	.adata = NULL,
1762 	.adata_len = 0
1763 };
1764 
1765 /************************************************/
1766 static const u8 ed25519_77_test_vectors_priv_key[] = {
1767 	0x4a, 0xdc, 0x8c, 0x28, 0x64, 0x6a, 0x93, 0xa8, 0x17, 0x29, 0x3a, 0x14, 0xd2, 0x9b, 0x48, 0xe2, 0xc6, 0xd7, 0x12, 0xa6, 0x89, 0x93, 0x54, 0x7a, 0x5c, 0x5e, 0x4d, 0x14, 0x52, 0xac, 0xbc, 0x3a, };
1768 static const u8 ed25519_77_test_vectors_message[] = {
1769 	0x09, 0xfb, 0x55, 0x01, 0xf1, 0x68, 0x8f, 0x80, 0xa0, 0xab, 0x9e, 0x22, 0xd7, 0x78, 0xae, 0x13, 0x0a, 0xca, 0xf7, 0x4d, 0x7f, 0x51, 0x85, 0xb4, 0xda, 0x19, 0x8c, 0x6b, 0x9e, 0xda, 0xc4, 0x30, 0x2e, 0x2b, 0x75, 0x3e, 0x57, 0x87, 0x66, 0xe1, 0x7d, 0x40, 0x56, 0xdc, 0x40, 0xd9, 0x5c, 0xf4, 0xca, 0x8b, 0xcc, 0x65, 0x65, 0x79, 0x5e, 0x97, 0xd6, 0x8b, 0xcd, 0xa7, 0x9f, 0xa7, 0x7c, 0x49, 0x33, 0x97, 0x71, 0x63, 0x56, 0x16, 0x4c, 0xaa, 0xb5, 0xd1, 0x9c, 0xfd, };
1770 static const u8 ed25519_77_test_vectors_expected_sig[] = {
1771 	0x6d, 0x3b, 0x4e, 0x90, 0xec, 0x40, 0x83, 0x11, 0xf9, 0xb1, 0x5b, 0x92, 0x53, 0xd3, 0xd9, 0x5c, 0x5d, 0x15, 0x26, 0x20, 0xc2, 0x60, 0xd5, 0x63, 0x02, 0x55, 0x5a, 0x88, 0x04, 0xa5, 0x10, 0x4b, 0xa5, 0xe8, 0xd2, 0x9e, 0xe1, 0x08, 0xe7, 0x64, 0xa6, 0x42, 0x19, 0x29, 0x72, 0x98, 0xab, 0x76, 0x74, 0xbb, 0xca, 0x78, 0x4d, 0xee, 0x28, 0x77, 0x3b, 0x34, 0xe1, 0x85, 0xa3, 0x86, 0xc2, 0x08, };
1772 static const ec_test_case ed25519_77_test_case = {
1773 	.name = "EDDSA25519-SHA512/wei25519 77",
1774 	.ec_str_p = &wei25519_str_params,
1775 	.priv_key = ed25519_77_test_vectors_priv_key,
1776 	.priv_key_len = sizeof(ed25519_77_test_vectors_priv_key),
1777 	.nn_random = NULL,
1778 	.hash_type = SHA512,
1779 	.msg = (const char *)ed25519_77_test_vectors_message,
1780 	.msglen = sizeof(ed25519_77_test_vectors_message),
1781 	.sig_type = EDDSA25519,
1782 	.exp_sig = ed25519_77_test_vectors_expected_sig,
1783 	.exp_siglen = sizeof(ed25519_77_test_vectors_expected_sig),
1784 	.adata = NULL,
1785 	.adata_len = 0
1786 };
1787 
1788 /************************************************/
1789 static const u8 ed25519_78_test_vectors_priv_key[] = {
1790 	0xf2, 0x6e, 0x1c, 0x84, 0x69, 0x7a, 0x49, 0x08, 0x15, 0x1b, 0x44, 0x7d, 0xcf, 0x6c, 0x7c, 0x7a, 0x38, 0xb0, 0x40, 0x81, 0xdb, 0x9e, 0x7c, 0x77, 0x38, 0xe6, 0xfe, 0xc9, 0x00, 0xbe, 0xd0, 0xc1, };
1791 static const u8 ed25519_78_test_vectors_message[] = {
1792 	0x54, 0xed, 0x47, 0x60, 0x6a, 0x14, 0x87, 0xc2, 0xf9, 0x00, 0xce, 0xfb, 0x6e, 0x89, 0x9d, 0xba, 0xf6, 0xc3, 0x1c, 0xc8, 0x8e, 0xbe, 0x35, 0x58, 0xb8, 0x3b, 0x93, 0xf6, 0xd4, 0x22, 0xc3, 0x1e, 0x88, 0x8e, 0x48, 0xe5, 0x20, 0xee, 0xae, 0xdd, 0x7e, 0x55, 0x4a, 0x9c, 0xd4, 0x0c, 0x2c, 0x51, 0x9d, 0x53, 0x3b, 0x61, 0x44, 0xce, 0xe4, 0x84, 0xc3, 0x89, 0xe9, 0x76, 0xb1, 0xe4, 0x02, 0x2b, 0x50, 0xe7, 0xdb, 0xb8, 0x7e, 0xad, 0x7e, 0x54, 0x1a, 0x20, 0x04, 0xda, 0xf7, };
1793 static const u8 ed25519_78_test_vectors_expected_sig[] = {
1794 	0x44, 0xf3, 0x34, 0x4b, 0x95, 0x66, 0xc9, 0xdf, 0xd2, 0x2d, 0x61, 0x98, 0xe1, 0xcb, 0xf9, 0x5d, 0x9e, 0x28, 0xf2, 0x98, 0x2f, 0xc7, 0xf1, 0x66, 0xab, 0x25, 0xdd, 0xa3, 0x0c, 0x46, 0xf7, 0x68, 0xc5, 0x58, 0xe0, 0x39, 0x4f, 0xb9, 0xab, 0x3e, 0x1d, 0x4d, 0xb4, 0xcf, 0x48, 0x7c, 0x17, 0x64, 0x1a, 0x13, 0xf3, 0xf4, 0x89, 0x39, 0xe0, 0xc6, 0x48, 0x27, 0xa7, 0x51, 0x03, 0xc5, 0x74, 0x06, };
1795 static const ec_test_case ed25519_78_test_case = {
1796 	.name = "EDDSA25519-SHA512/wei25519 78",
1797 	.ec_str_p = &wei25519_str_params,
1798 	.priv_key = ed25519_78_test_vectors_priv_key,
1799 	.priv_key_len = sizeof(ed25519_78_test_vectors_priv_key),
1800 	.nn_random = NULL,
1801 	.hash_type = SHA512,
1802 	.msg = (const char *)ed25519_78_test_vectors_message,
1803 	.msglen = sizeof(ed25519_78_test_vectors_message),
1804 	.sig_type = EDDSA25519,
1805 	.exp_sig = ed25519_78_test_vectors_expected_sig,
1806 	.exp_siglen = sizeof(ed25519_78_test_vectors_expected_sig),
1807 	.adata = NULL,
1808 	.adata_len = 0
1809 };
1810 
1811 /************************************************/
1812 static const u8 ed25519_79_test_vectors_priv_key[] = {
1813 	0xcc, 0x0c, 0x33, 0xf3, 0xa8, 0x6f, 0x5a, 0x17, 0xd3, 0x0c, 0x18, 0x6c, 0xe0, 0xf3, 0xb7, 0x40, 0xba, 0xfa, 0x5f, 0xe3, 0xc7, 0x09, 0x0f, 0x14, 0x35, 0x41, 0xe2, 0xb2, 0xc1, 0xe5, 0x34, 0xbc, };
1814 static const u8 ed25519_79_test_vectors_message[] = {
1815 	0x19, 0x44, 0xe5, 0xe1, 0x55, 0xd7, 0x5e, 0x0d, 0x0b, 0xe9, 0x2e, 0x1b, 0xe1, 0x4c, 0xec, 0x37, 0x0a, 0xd1, 0x37, 0x91, 0xf2, 0xbf, 0xd4, 0x0f, 0x27, 0x12, 0x14, 0xe9, 0x4f, 0xcf, 0x21, 0x3c, 0x71, 0xbc, 0x20, 0xd7, 0xce, 0x0c, 0x75, 0x84, 0x42, 0x1a, 0xc4, 0xef, 0xc4, 0x51, 0x88, 0x3c, 0xc3, 0xf4, 0x95, 0x6f, 0x21, 0xf7, 0x3a, 0x42, 0x16, 0x72, 0x04, 0x38, 0xbc, 0x38, 0xff, 0x2c, 0xfd, 0xf3, 0x70, 0x99, 0x05, 0xa5, 0x0a, 0x9d, 0x94, 0xb1, 0xd9, 0xe7, 0x93, 0x2b, };
1816 static const u8 ed25519_79_test_vectors_expected_sig[] = {
1817 	0xe2, 0x77, 0xb3, 0xdd, 0x65, 0x5c, 0x33, 0xff, 0x75, 0xfa, 0x92, 0x0a, 0xf1, 0xfc, 0xc8, 0x59, 0x40, 0x1e, 0x6c, 0x7a, 0x6e, 0xf4, 0xc6, 0xbf, 0xbf, 0xac, 0x50, 0x69, 0x63, 0x8f, 0x19, 0xca, 0x11, 0x5b, 0xaf, 0x13, 0xc0, 0x9c, 0x82, 0xaf, 0x79, 0x3f, 0xac, 0xb6, 0xab, 0xd0, 0xcd, 0x58, 0xe8, 0x48, 0x1b, 0x08, 0xc1, 0xb6, 0x8a, 0xd7, 0xa2, 0x66, 0x5c, 0x4a, 0x61, 0x4a, 0x28, 0x06, };
1818 static const ec_test_case ed25519_79_test_case = {
1819 	.name = "EDDSA25519-SHA512/wei25519 79",
1820 	.ec_str_p = &wei25519_str_params,
1821 	.priv_key = ed25519_79_test_vectors_priv_key,
1822 	.priv_key_len = sizeof(ed25519_79_test_vectors_priv_key),
1823 	.nn_random = NULL,
1824 	.hash_type = SHA512,
1825 	.msg = (const char *)ed25519_79_test_vectors_message,
1826 	.msglen = sizeof(ed25519_79_test_vectors_message),
1827 	.sig_type = EDDSA25519,
1828 	.exp_sig = ed25519_79_test_vectors_expected_sig,
1829 	.exp_siglen = sizeof(ed25519_79_test_vectors_expected_sig),
1830 	.adata = NULL,
1831 	.adata_len = 0
1832 };
1833 
1834 /************************************************/
1835 static const u8 ed25519_80_test_vectors_priv_key[] = {
1836 	0xf0, 0xbc, 0x97, 0x93, 0x75, 0xa7, 0x07, 0x30, 0x68, 0xdb, 0xa7, 0xf6, 0xc0, 0x94, 0xdb, 0x65, 0x98, 0xb4, 0xe4, 0x5d, 0xf7, 0xd5, 0x49, 0x58, 0x3c, 0x22, 0xfd, 0xed, 0x80, 0x48, 0xfa, 0x2e, };
1837 static const u8 ed25519_80_test_vectors_message[] = {
1838 	0x27, 0xab, 0x30, 0x49, 0xb5, 0xc6, 0x35, 0x1f, 0x6c, 0xfe, 0x38, 0xb1, 0x3a, 0x05, 0x9f, 0x50, 0x37, 0x25, 0x7e, 0xe3, 0xd6, 0x5d, 0x60, 0x79, 0x65, 0x68, 0x56, 0xed, 0xc8, 0x76, 0xea, 0x08, 0x1f, 0xd8, 0xa9, 0x48, 0x04, 0x66, 0xf8, 0x83, 0x94, 0x78, 0x08, 0x84, 0x66, 0xf5, 0x1e, 0xcb, 0xfa, 0xf2, 0xd6, 0x5d, 0xef, 0x25, 0xf0, 0xc4, 0xdd, 0x8d, 0x08, 0x58, 0x82, 0x02, 0x81, 0x22, 0x32, 0xf5, 0x79, 0x45, 0xdf, 0x8a, 0x6f, 0xa1, 0x61, 0xed, 0x8c, 0x03, 0x43, 0xb5, 0x83, };
1839 static const u8 ed25519_80_test_vectors_expected_sig[] = {
1840 	0x19, 0xdb, 0xc3, 0x02, 0x7f, 0x9f, 0xae, 0x70, 0x7d, 0xeb, 0x76, 0xf5, 0x88, 0xf9, 0xfd, 0x07, 0xaa, 0x8e, 0xae, 0x29, 0xbd, 0x4e, 0x1d, 0x04, 0xc2, 0xc9, 0x84, 0x38, 0x82, 0x86, 0xb3, 0xb1, 0x22, 0x24, 0x8a, 0x6c, 0x03, 0xed, 0x67, 0xec, 0xa3, 0x5d, 0xf4, 0xdb, 0x3d, 0xc1, 0xe4, 0x23, 0x7f, 0x26, 0x78, 0x92, 0x51, 0x84, 0x97, 0xd9, 0x55, 0x2a, 0x21, 0xde, 0x19, 0xb5, 0x14, 0x0f, };
1841 static const ec_test_case ed25519_80_test_case = {
1842 	.name = "EDDSA25519-SHA512/wei25519 80",
1843 	.ec_str_p = &wei25519_str_params,
1844 	.priv_key = ed25519_80_test_vectors_priv_key,
1845 	.priv_key_len = sizeof(ed25519_80_test_vectors_priv_key),
1846 	.nn_random = NULL,
1847 	.hash_type = SHA512,
1848 	.msg = (const char *)ed25519_80_test_vectors_message,
1849 	.msglen = sizeof(ed25519_80_test_vectors_message),
1850 	.sig_type = EDDSA25519,
1851 	.exp_sig = ed25519_80_test_vectors_expected_sig,
1852 	.exp_siglen = sizeof(ed25519_80_test_vectors_expected_sig),
1853 	.adata = NULL,
1854 	.adata_len = 0
1855 };
1856 
1857 /************************************************/
1858 static const u8 ed25519_81_test_vectors_priv_key[] = {
1859 	0x30, 0x22, 0x97, 0x5f, 0x29, 0x8c, 0x0a, 0xd5, 0xdd, 0xbe, 0x90, 0x95, 0x4f, 0x20, 0xe6, 0x3a, 0xe0, 0xc0, 0xd2, 0x70, 0x4c, 0xf1, 0x3c, 0x22, 0x1f, 0x5b, 0x37, 0x20, 0xaf, 0x4d, 0xba, 0x32, };
1860 static const u8 ed25519_81_test_vectors_message[] = {
1861 	0x9a, 0xa1, 0x9a, 0x59, 0x5d, 0x98, 0x93, 0x78, 0xcd, 0xc0, 0x68, 0x91, 0x88, 0x7e, 0xf5, 0xf9, 0xc2, 0x46, 0xe5, 0xf8, 0x3c, 0x0b, 0x65, 0x87, 0x10, 0x67, 0x3e, 0x4e, 0x7d, 0xb7, 0x60, 0xc7, 0x63, 0x54, 0xc4, 0xf5, 0xd1, 0xe9, 0x0d, 0xb0, 0x4a, 0x23, 0xb4, 0xfb, 0x43, 0x4c, 0x69, 0x38, 0x45, 0x93, 0xd0, 0x10, 0xe3, 0x12, 0xb1, 0x1d, 0x29, 0x9c, 0x9f, 0x97, 0x48, 0x2d, 0xe8, 0x87, 0xce, 0xcf, 0xe8, 0x2e, 0xa7, 0x23, 0xbc, 0xa7, 0x9a, 0x1b, 0xd6, 0x4d, 0x03, 0xef, 0x19, 0xee, };
1862 static const u8 ed25519_81_test_vectors_expected_sig[] = {
1863 	0xae, 0x14, 0xa8, 0x60, 0xfa, 0xd0, 0x05, 0x1b, 0x3e, 0xb7, 0x2b, 0x37, 0x21, 0xa8, 0x2f, 0x7b, 0x95, 0x46, 0xb2, 0x86, 0x72, 0x61, 0xe2, 0xb7, 0xb6, 0x38, 0x97, 0x9e, 0x25, 0x61, 0xbd, 0xeb, 0x89, 0xb6, 0x00, 0x76, 0x8f, 0x82, 0x45, 0x0a, 0x66, 0xc8, 0xb0, 0x48, 0x12, 0x83, 0xfa, 0x21, 0xcb, 0x6c, 0x53, 0xbd, 0xe3, 0x50, 0xef, 0xfb, 0x68, 0xa7, 0xd1, 0x11, 0x4b, 0xfd, 0xb2, 0x03, };
1864 static const ec_test_case ed25519_81_test_case = {
1865 	.name = "EDDSA25519-SHA512/wei25519 81",
1866 	.ec_str_p = &wei25519_str_params,
1867 	.priv_key = ed25519_81_test_vectors_priv_key,
1868 	.priv_key_len = sizeof(ed25519_81_test_vectors_priv_key),
1869 	.nn_random = NULL,
1870 	.hash_type = SHA512,
1871 	.msg = (const char *)ed25519_81_test_vectors_message,
1872 	.msglen = sizeof(ed25519_81_test_vectors_message),
1873 	.sig_type = EDDSA25519,
1874 	.exp_sig = ed25519_81_test_vectors_expected_sig,
1875 	.exp_siglen = sizeof(ed25519_81_test_vectors_expected_sig),
1876 	.adata = NULL,
1877 	.adata_len = 0
1878 };
1879 
1880 /************************************************/
1881 static const u8 ed25519_82_test_vectors_priv_key[] = {
1882 	0x0f, 0x71, 0x0b, 0x6c, 0x48, 0x1f, 0x71, 0x44, 0x95, 0x89, 0x75, 0x33, 0x12, 0xef, 0x64, 0x93, 0x2b, 0x46, 0x52, 0xeb, 0xe0, 0xe0, 0x75, 0x97, 0xf7, 0xda, 0x1c, 0x4f, 0x3d, 0xcf, 0xfb, 0x80, };
1883 static const u8 ed25519_82_test_vectors_message[] = {
1884 	0x85, 0xd8, 0x57, 0x44, 0xad, 0x55, 0xe9, 0xef, 0x9a, 0x65, 0xca, 0x91, 0xe8, 0x5c, 0x8a, 0x4f, 0x80, 0xe4, 0xc5, 0x8f, 0x8e, 0x4e, 0x93, 0x54, 0xe8, 0x33, 0x98, 0x60, 0x98, 0xb7, 0xd9, 0xfe, 0x9f, 0xdc, 0x0d, 0xed, 0xb0, 0xd7, 0x5d, 0x25, 0x39, 0xfb, 0xa0, 0x00, 0x34, 0xfc, 0x0c, 0x2e, 0x84, 0x34, 0x4d, 0x1e, 0xda, 0xa0, 0x9d, 0x4f, 0x63, 0xd5, 0x54, 0x6d, 0x67, 0x80, 0x3d, 0xd6, 0xb5, 0x4d, 0xdc, 0xc0, 0xb1, 0xd3, 0xf2, 0x58, 0x2d, 0xd7, 0x52, 0x89, 0xe3, 0x1d, 0xe4, 0x2e, 0x69, };
1885 static const u8 ed25519_82_test_vectors_expected_sig[] = {
1886 	0x02, 0xa8, 0xd2, 0x6a, 0xee, 0x11, 0x42, 0x0f, 0xb4, 0xf0, 0x9d, 0x11, 0x63, 0xe1, 0x4b, 0x86, 0x7d, 0xf7, 0xc6, 0xf6, 0xc8, 0xf8, 0xdc, 0x7a, 0x78, 0x03, 0x46, 0x59, 0xf0, 0x40, 0x1c, 0xad, 0x0a, 0xa9, 0x03, 0x97, 0xef, 0xdd, 0x07, 0x04, 0xb7, 0x98, 0xdb, 0x19, 0x36, 0x50, 0x30, 0x26, 0xe2, 0xa1, 0xad, 0xc2, 0x97, 0xe2, 0x79, 0x74, 0xd4, 0xbe, 0x31, 0x2a, 0x37, 0x53, 0xf8, 0x04, };
1887 static const ec_test_case ed25519_82_test_case = {
1888 	.name = "EDDSA25519-SHA512/wei25519 82",
1889 	.ec_str_p = &wei25519_str_params,
1890 	.priv_key = ed25519_82_test_vectors_priv_key,
1891 	.priv_key_len = sizeof(ed25519_82_test_vectors_priv_key),
1892 	.nn_random = NULL,
1893 	.hash_type = SHA512,
1894 	.msg = (const char *)ed25519_82_test_vectors_message,
1895 	.msglen = sizeof(ed25519_82_test_vectors_message),
1896 	.sig_type = EDDSA25519,
1897 	.exp_sig = ed25519_82_test_vectors_expected_sig,
1898 	.exp_siglen = sizeof(ed25519_82_test_vectors_expected_sig),
1899 	.adata = NULL,
1900 	.adata_len = 0
1901 };
1902 
1903 /************************************************/
1904 static const u8 ed25519_83_test_vectors_priv_key[] = {
1905 	0x7a, 0x05, 0xf1, 0x21, 0xf6, 0x01, 0x12, 0xdd, 0x16, 0xfe, 0xe8, 0xc9, 0x1b, 0xc2, 0xa1, 0x14, 0x79, 0xf4, 0xb6, 0x7e, 0xe3, 0x34, 0x56, 0x04, 0x2c, 0x8d, 0xe1, 0x67, 0xfc, 0x58, 0x80, 0x17, };
1906 static const u8 ed25519_83_test_vectors_message[] = {
1907 	0xd9, 0xc5, 0x9e, 0x8c, 0xc4, 0xed, 0xe5, 0x37, 0xbe, 0x21, 0x22, 0xab, 0x49, 0x2a, 0x5b, 0x91, 0x5a, 0x9b, 0x0a, 0x11, 0x4b, 0x2a, 0xde, 0x35, 0x6f, 0xc0, 0x45, 0x7e, 0xf9, 0x87, 0x22, 0xd5, 0xf5, 0x67, 0xb8, 0x62, 0x11, 0xe2, 0x83, 0x69, 0xd1, 0x41, 0x68, 0xec, 0x4a, 0x3c, 0x80, 0x40, 0x76, 0xe1, 0x54, 0xad, 0xc7, 0x0a, 0x66, 0x8c, 0xf6, 0x4a, 0x20, 0xd1, 0x3c, 0xf1, 0x90, 0xd1, 0x15, 0xcd, 0x68, 0x8d, 0x03, 0x6e, 0x46, 0x93, 0x82, 0x51, 0xdf, 0x49, 0x64, 0xdc, 0x35, 0x17, 0xb1, 0x0c, };
1908 static const u8 ed25519_83_test_vectors_expected_sig[] = {
1909 	0xd3, 0x0c, 0xe8, 0xa3, 0x22, 0xb4, 0x50, 0xa2, 0xfb, 0x1a, 0xfd, 0x32, 0x9c, 0xec, 0x85, 0x59, 0xcc, 0xf1, 0x12, 0xbd, 0x83, 0x96, 0x5f, 0x9e, 0xc4, 0x73, 0x62, 0x70, 0xa0, 0x91, 0x4e, 0x06, 0x11, 0x96, 0xbf, 0x52, 0x09, 0x77, 0x8c, 0x9f, 0x8c, 0xcf, 0x39, 0xc4, 0x66, 0x8b, 0xbf, 0x0e, 0x13, 0x63, 0xf8, 0x1a, 0xfe, 0x45, 0xdd, 0x74, 0xe8, 0x0d, 0x58, 0x75, 0xdd, 0xbf, 0x6f, 0x01, };
1910 static const ec_test_case ed25519_83_test_case = {
1911 	.name = "EDDSA25519-SHA512/wei25519 83",
1912 	.ec_str_p = &wei25519_str_params,
1913 	.priv_key = ed25519_83_test_vectors_priv_key,
1914 	.priv_key_len = sizeof(ed25519_83_test_vectors_priv_key),
1915 	.nn_random = NULL,
1916 	.hash_type = SHA512,
1917 	.msg = (const char *)ed25519_83_test_vectors_message,
1918 	.msglen = sizeof(ed25519_83_test_vectors_message),
1919 	.sig_type = EDDSA25519,
1920 	.exp_sig = ed25519_83_test_vectors_expected_sig,
1921 	.exp_siglen = sizeof(ed25519_83_test_vectors_expected_sig),
1922 	.adata = NULL,
1923 	.adata_len = 0
1924 };
1925 
1926 /************************************************/
1927 static const u8 ed25519_84_test_vectors_priv_key[] = {
1928 	0xbf, 0x38, 0x1f, 0x8d, 0xfb, 0x5d, 0x0c, 0x6d, 0x64, 0xe4, 0x16, 0xac, 0x23, 0xe0, 0xd0, 0xfc, 0xb8, 0x6e, 0xbb, 0x89, 0x9b, 0x1d, 0x14, 0x6a, 0xbd, 0x91, 0x1b, 0x92, 0xa7, 0x80, 0x8e, 0xb6, };
1929 static const u8 ed25519_84_test_vectors_message[] = {
1930 	0x86, 0x54, 0xf2, 0xf5, 0xc6, 0xdc, 0xd2, 0xcf, 0xcb, 0xb6, 0xed, 0x8d, 0x2b, 0xc5, 0xfb, 0x5f, 0xec, 0x53, 0xe3, 0xef, 0xfb, 0x0d, 0xe6, 0x5a, 0xac, 0x50, 0x7f, 0xa5, 0x6c, 0x89, 0x77, 0x32, 0x39, 0x5a, 0xa0, 0x99, 0x46, 0xd3, 0xb6, 0x58, 0x6a, 0x92, 0xed, 0xd6, 0xdc, 0x99, 0x31, 0x5e, 0x1b, 0xa7, 0x4c, 0x6a, 0x02, 0x47, 0xc4, 0xba, 0x77, 0x60, 0xb9, 0x48, 0xeb, 0x3c, 0x09, 0x32, 0xd9, 0xfe, 0x1f, 0x0e, 0x9f, 0xea, 0x6e, 0xb6, 0x1a, 0x54, 0x8a, 0x9a, 0xb4, 0x8f, 0xfd, 0xf1, 0x54, 0x73, 0x29, };
1931 static const u8 ed25519_84_test_vectors_expected_sig[] = {
1932 	0x99, 0xb7, 0x53, 0x78, 0x73, 0x8f, 0xca, 0xc8, 0x06, 0x76, 0x69, 0xe8, 0x50, 0x9b, 0x5d, 0x26, 0x07, 0xe1, 0xef, 0x76, 0xaf, 0x90, 0x04, 0xe1, 0x3f, 0xe5, 0xd3, 0x93, 0x2d, 0xf6, 0x0b, 0x16, 0x82, 0x16, 0xf5, 0x85, 0x65, 0x34, 0x0f, 0xa4, 0xd6, 0x38, 0x05, 0x5a, 0x89, 0x04, 0x4e, 0xe7, 0xd4, 0x5e, 0x2b, 0xd0, 0x82, 0xa5, 0x33, 0x82, 0x28, 0x9a, 0x34, 0x70, 0x06, 0x48, 0x98, 0x0e, };
1933 static const ec_test_case ed25519_84_test_case = {
1934 	.name = "EDDSA25519-SHA512/wei25519 84",
1935 	.ec_str_p = &wei25519_str_params,
1936 	.priv_key = ed25519_84_test_vectors_priv_key,
1937 	.priv_key_len = sizeof(ed25519_84_test_vectors_priv_key),
1938 	.nn_random = NULL,
1939 	.hash_type = SHA512,
1940 	.msg = (const char *)ed25519_84_test_vectors_message,
1941 	.msglen = sizeof(ed25519_84_test_vectors_message),
1942 	.sig_type = EDDSA25519,
1943 	.exp_sig = ed25519_84_test_vectors_expected_sig,
1944 	.exp_siglen = sizeof(ed25519_84_test_vectors_expected_sig),
1945 	.adata = NULL,
1946 	.adata_len = 0
1947 };
1948 
1949 /************************************************/
1950 static const u8 ed25519_85_test_vectors_priv_key[] = {
1951 	0x36, 0x98, 0x32, 0x41, 0xa0, 0xa8, 0xe6, 0x0c, 0xe0, 0x2a, 0x61, 0xb3, 0xfa, 0xfa, 0xb1, 0x5a, 0x73, 0x13, 0xa5, 0xa2, 0x70, 0xd0, 0x15, 0xb9, 0xc9, 0xec, 0x07, 0x0d, 0xc4, 0x2d, 0xee, 0xda, };
1952 static const u8 ed25519_85_test_vectors_message[] = {
1953 	0xce, 0xbb, 0x9e, 0x40, 0x44, 0x51, 0x81, 0x82, 0x53, 0xc0, 0x39, 0x2a, 0x45, 0x54, 0xee, 0x73, 0x23, 0xc5, 0xd5, 0xb8, 0xb2, 0x26, 0x77, 0x57, 0x00, 0xb8, 0x06, 0xed, 0x5b, 0x91, 0x33, 0x79, 0x16, 0xea, 0x7e, 0xcb, 0xc3, 0xd4, 0x10, 0x3f, 0xc6, 0x5e, 0x53, 0x72, 0xae, 0x7e, 0x5f, 0x9b, 0xa2, 0xd8, 0xf5, 0xae, 0xe2, 0x4c, 0xcf, 0x6e, 0x63, 0x1a, 0xe2, 0x0c, 0x4a, 0xf9, 0xb5, 0xf7, 0x28, 0xcd, 0xf8, 0x9e, 0x81, 0x89, 0xde, 0xf1, 0xa5, 0xb3, 0xd3, 0x53, 0x47, 0xaa, 0x20, 0x35, 0x25, 0xea, 0x1d, 0x2e, };
1954 static const u8 ed25519_85_test_vectors_expected_sig[] = {
1955 	0xee, 0x37, 0xdf, 0x8a, 0xf4, 0x22, 0xf9, 0x1f, 0x85, 0xdf, 0xe4, 0x3e, 0xfe, 0x79, 0xf6, 0x23, 0x78, 0x06, 0x8c, 0xcd, 0xba, 0xf3, 0x91, 0x6e, 0xec, 0xbc, 0x3a, 0xdf, 0xed, 0x05, 0x08, 0xbd, 0xeb, 0xaf, 0x5c, 0xe0, 0x6b, 0x3b, 0xc2, 0x79, 0xf7, 0x80, 0x87, 0xf0, 0xdb, 0x8d, 0xb3, 0xc6, 0x82, 0x3e, 0xdf, 0xb3, 0x2c, 0x12, 0x21, 0x78, 0x30, 0xbe, 0x72, 0x3d, 0x88, 0x72, 0xb3, 0x0c, };
1956 static const ec_test_case ed25519_85_test_case = {
1957 	.name = "EDDSA25519-SHA512/wei25519 85",
1958 	.ec_str_p = &wei25519_str_params,
1959 	.priv_key = ed25519_85_test_vectors_priv_key,
1960 	.priv_key_len = sizeof(ed25519_85_test_vectors_priv_key),
1961 	.nn_random = NULL,
1962 	.hash_type = SHA512,
1963 	.msg = (const char *)ed25519_85_test_vectors_message,
1964 	.msglen = sizeof(ed25519_85_test_vectors_message),
1965 	.sig_type = EDDSA25519,
1966 	.exp_sig = ed25519_85_test_vectors_expected_sig,
1967 	.exp_siglen = sizeof(ed25519_85_test_vectors_expected_sig),
1968 	.adata = NULL,
1969 	.adata_len = 0
1970 };
1971 
1972 /************************************************/
1973 static const u8 ed25519_86_test_vectors_priv_key[] = {
1974 	0xd0, 0x68, 0x99, 0xf9, 0x3a, 0x40, 0x8d, 0xac, 0xb4, 0x1c, 0x96, 0x97, 0x18, 0x34, 0x6f, 0x1e, 0x28, 0x9b, 0xb5, 0xea, 0x65, 0xe2, 0x83, 0xff, 0x79, 0xc7, 0x05, 0xa0, 0x74, 0x51, 0x7c, 0x35, };
1975 static const u8 ed25519_86_test_vectors_message[] = {
1976 	0x08, 0x64, 0xc3, 0x9a, 0xc4, 0xfd, 0xa8, 0xeb, 0x90, 0x48, 0x59, 0x7b, 0xd4, 0x0b, 0xe0, 0x40, 0x10, 0x21, 0xfd, 0x2d, 0xd3, 0xa3, 0x39, 0x0a, 0x8f, 0xac, 0xce, 0x98, 0x4b, 0x26, 0x0a, 0x13, 0xfa, 0x2c, 0x7c, 0xfc, 0x00, 0xd1, 0x92, 0xfa, 0xdf, 0x13, 0x4a, 0x0a, 0xd5, 0xa1, 0x81, 0xee, 0x89, 0xef, 0xf0, 0xc7, 0x95, 0xea, 0xa0, 0xfb, 0xfe, 0x2f, 0x3b, 0x26, 0x11, 0x5d, 0x07, 0x16, 0x8d, 0xb4, 0x2e, 0xd2, 0x1a, 0x51, 0x30, 0x3b, 0x19, 0x58, 0xe4, 0xa4, 0x2d, 0xc0, 0x65, 0xb2, 0x2c, 0xe4, 0x8f, 0x17, 0xa6, };
1977 static const u8 ed25519_86_test_vectors_expected_sig[] = {
1978 	0x6f, 0x89, 0xde, 0x92, 0xa6, 0x6b, 0xc5, 0xf4, 0x14, 0x43, 0x39, 0x12, 0x49, 0x50, 0xbd, 0xf5, 0x88, 0x14, 0x4c, 0xb3, 0x72, 0xf6, 0x73, 0x62, 0x45, 0x35, 0x1c, 0x94, 0x76, 0xbe, 0xcc, 0x59, 0xa2, 0x58, 0xf9, 0xa9, 0x33, 0xff, 0xff, 0x2b, 0xef, 0x4b, 0x46, 0xcd, 0x10, 0x57, 0x39, 0x52, 0x25, 0x79, 0x9f, 0xd0, 0x9d, 0xed, 0xe6, 0x82, 0x3d, 0xb0, 0xe3, 0x25, 0xdb, 0xc8, 0x14, 0x0d, };
1979 static const ec_test_case ed25519_86_test_case = {
1980 	.name = "EDDSA25519-SHA512/wei25519 86",
1981 	.ec_str_p = &wei25519_str_params,
1982 	.priv_key = ed25519_86_test_vectors_priv_key,
1983 	.priv_key_len = sizeof(ed25519_86_test_vectors_priv_key),
1984 	.nn_random = NULL,
1985 	.hash_type = SHA512,
1986 	.msg = (const char *)ed25519_86_test_vectors_message,
1987 	.msglen = sizeof(ed25519_86_test_vectors_message),
1988 	.sig_type = EDDSA25519,
1989 	.exp_sig = ed25519_86_test_vectors_expected_sig,
1990 	.exp_siglen = sizeof(ed25519_86_test_vectors_expected_sig),
1991 	.adata = NULL,
1992 	.adata_len = 0
1993 };
1994 
1995 /************************************************/
1996 static const u8 ed25519_87_test_vectors_priv_key[] = {
1997 	0xee, 0xbc, 0xa7, 0x96, 0x69, 0x70, 0xee, 0x9f, 0x2c, 0xc4, 0xd7, 0x4c, 0x6f, 0x1d, 0x8e, 0x0e, 0xbf, 0xf7, 0xc4, 0x5a, 0xeb, 0xad, 0x34, 0x9f, 0xb9, 0xf8, 0x6d, 0xf6, 0x28, 0xdf, 0xff, 0x0e, };
1998 static const u8 ed25519_87_test_vectors_message[] = {
1999 	0x0f, 0xac, 0x79, 0x0a, 0xdb, 0x9f, 0x59, 0xe5, 0xcb, 0x0d, 0xdc, 0xb2, 0xb6, 0x67, 0x17, 0x2f, 0x2a, 0x21, 0x03, 0x4d, 0x93, 0xbc, 0xad, 0xdf, 0x18, 0x86, 0x06, 0xfa, 0x9e, 0x77, 0x6d, 0xb3, 0x3a, 0x8f, 0xcc, 0x6b, 0xd7, 0xf5, 0x56, 0x78, 0x83, 0xfc, 0x0d, 0xe3, 0x51, 0xaa, 0x9a, 0xfa, 0xa3, 0x6d, 0x20, 0x75, 0xb1, 0xba, 0x85, 0x3b, 0xad, 0xa8, 0x49, 0xb8, 0x66, 0x1d, 0x5c, 0x81, 0x54, 0xe7, 0xb0, 0xaf, 0xea, 0x65, 0x6d, 0xd1, 0x5e, 0x01, 0xa9, 0xc5, 0xba, 0x21, 0x58, 0x9b, 0x02, 0xf8, 0xfc, 0x54, 0x81, 0xc2, };
2000 static const u8 ed25519_87_test_vectors_expected_sig[] = {
2001 	0x7d, 0x44, 0x7e, 0xe5, 0x32, 0x8c, 0x9f, 0xe7, 0xf1, 0x19, 0x36, 0xcc, 0x42, 0x99, 0x87, 0x54, 0xa5, 0x6c, 0xd1, 0xd2, 0xa6, 0x95, 0x1a, 0xf4, 0xfe, 0xe7, 0xc4, 0xa8, 0xeb, 0x31, 0x9d, 0x49, 0x23, 0x70, 0x7c, 0x79, 0x3c, 0x55, 0xd7, 0x90, 0x67, 0xf8, 0x22, 0xd5, 0xb1, 0x6b, 0xb5, 0x77, 0x6e, 0x38, 0xdf, 0xfa, 0xbc, 0x67, 0x23, 0x7a, 0x91, 0x6a, 0x81, 0xa6, 0x33, 0x39, 0xb0, 0x03, };
2002 static const ec_test_case ed25519_87_test_case = {
2003 	.name = "EDDSA25519-SHA512/wei25519 87",
2004 	.ec_str_p = &wei25519_str_params,
2005 	.priv_key = ed25519_87_test_vectors_priv_key,
2006 	.priv_key_len = sizeof(ed25519_87_test_vectors_priv_key),
2007 	.nn_random = NULL,
2008 	.hash_type = SHA512,
2009 	.msg = (const char *)ed25519_87_test_vectors_message,
2010 	.msglen = sizeof(ed25519_87_test_vectors_message),
2011 	.sig_type = EDDSA25519,
2012 	.exp_sig = ed25519_87_test_vectors_expected_sig,
2013 	.exp_siglen = sizeof(ed25519_87_test_vectors_expected_sig),
2014 	.adata = NULL,
2015 	.adata_len = 0
2016 };
2017 
2018 /************************************************/
2019 static const u8 ed25519_88_test_vectors_priv_key[] = {
2020 	0x38, 0x20, 0xb6, 0xb1, 0x59, 0x39, 0xd0, 0xaf, 0xe1, 0x8c, 0x9c, 0xb3, 0xd9, 0xa2, 0xa0, 0x8f, 0x16, 0x7d, 0xd4, 0x58, 0xeb, 0x6c, 0x7e, 0x3f, 0x15, 0x58, 0xb0, 0xc6, 0xdb, 0x4c, 0x68, 0x90, };
2021 static const u8 ed25519_88_test_vectors_message[] = {
2022 	0x3e, 0x5a, 0xd9, 0x2d, 0x44, 0xb4, 0x0e, 0x86, 0x14, 0xd8, 0x08, 0x7c, 0x9c, 0x74, 0x3d, 0xe0, 0xc0, 0x86, 0x1a, 0x07, 0xf1, 0xf5, 0x14, 0x6d, 0x71, 0xca, 0xc2, 0xf3, 0x74, 0x00, 0x24, 0xe8, 0x41, 0xcc, 0x2d, 0x46, 0x02, 0x7c, 0xf5, 0xd2, 0x61, 0xd3, 0xee, 0x7c, 0x18, 0x75, 0xb3, 0x95, 0x51, 0x01, 0x7b, 0x5f, 0xb1, 0x46, 0x81, 0x14, 0xfc, 0x3e, 0x09, 0x8a, 0x89, 0x9c, 0xdb, 0xd5, 0x58, 0xb3, 0x9f, 0x09, 0x8e, 0x15, 0x6b, 0x6e, 0x98, 0x01, 0xeb, 0xcd, 0xd6, 0x5f, 0xed, 0x56, 0xdb, 0xfc, 0xaf, 0x2c, 0x8c, 0x78, 0x7b, };
2023 static const u8 ed25519_88_test_vectors_expected_sig[] = {
2024 	0x82, 0x3e, 0xe2, 0xc0, 0xc8, 0xd8, 0x7f, 0xaa, 0x0e, 0xc0, 0x14, 0x1e, 0x9c, 0xe0, 0x8b, 0x51, 0xe5, 0x7c, 0x83, 0x97, 0x92, 0xd1, 0xfb, 0xd9, 0x7a, 0x96, 0x72, 0x07, 0xfd, 0x41, 0x58, 0x49, 0xeb, 0xfb, 0x5d, 0xad, 0xb5, 0xa1, 0xdc, 0x2c, 0x0a, 0x8b, 0x7f, 0xc6, 0x3f, 0xc3, 0x54, 0x85, 0x7b, 0x8c, 0x90, 0xc4, 0x47, 0x20, 0xe1, 0x3f, 0x45, 0xcd, 0x01, 0xe7, 0xaa, 0x23, 0x14, 0x0c, };
2025 static const ec_test_case ed25519_88_test_case = {
2026 	.name = "EDDSA25519-SHA512/wei25519 88",
2027 	.ec_str_p = &wei25519_str_params,
2028 	.priv_key = ed25519_88_test_vectors_priv_key,
2029 	.priv_key_len = sizeof(ed25519_88_test_vectors_priv_key),
2030 	.nn_random = NULL,
2031 	.hash_type = SHA512,
2032 	.msg = (const char *)ed25519_88_test_vectors_message,
2033 	.msglen = sizeof(ed25519_88_test_vectors_message),
2034 	.sig_type = EDDSA25519,
2035 	.exp_sig = ed25519_88_test_vectors_expected_sig,
2036 	.exp_siglen = sizeof(ed25519_88_test_vectors_expected_sig),
2037 	.adata = NULL,
2038 	.adata_len = 0
2039 };
2040 
2041 /************************************************/
2042 static const u8 ed25519_89_test_vectors_priv_key[] = {
2043 	0x0d, 0x20, 0xfa, 0x4a, 0x37, 0xff, 0x30, 0xc4, 0xdc, 0xc3, 0xe4, 0x4e, 0xa7, 0xac, 0x50, 0x11, 0x37, 0xe5, 0x80, 0x7e, 0x97, 0x81, 0x33, 0x0a, 0xc3, 0x10, 0x98, 0x2c, 0xc3, 0xd3, 0x9d, 0xbd, };
2044 static const u8 ed25519_89_test_vectors_message[] = {
2045 	0x35, 0xe0, 0xf4, 0xb4, 0xa5, 0x17, 0xf9, 0xc7, 0xaa, 0x45, 0x14, 0xf0, 0x3e, 0x6d, 0x65, 0xf1, 0x9b, 0x27, 0xc6, 0x2c, 0xc0, 0x69, 0xf6, 0xbf, 0x07, 0xdd, 0x63, 0x78, 0xbd, 0x6a, 0xfe, 0x2b, 0x76, 0x65, 0x60, 0x00, 0x6c, 0xbd, 0x57, 0x30, 0xa0, 0x09, 0x19, 0xed, 0x11, 0x19, 0x1f, 0xb0, 0xc8, 0xda, 0xc5, 0x6e, 0x15, 0x3f, 0xc1, 0xce, 0xa4, 0xbd, 0xce, 0x50, 0x46, 0xcc, 0xcb, 0x71, 0x77, 0x59, 0xa4, 0x08, 0x3e, 0x1c, 0x16, 0xf7, 0x40, 0x76, 0x32, 0x64, 0xcc, 0x80, 0x4d, 0xe0, 0xd0, 0xe1, 0xa4, 0xb5, 0xa2, 0x30, 0x67, 0xaf, };
2046 static const u8 ed25519_89_test_vectors_expected_sig[] = {
2047 	0xde, 0xab, 0x12, 0xed, 0x82, 0xba, 0x94, 0xb4, 0x69, 0xca, 0x98, 0xb6, 0x6f, 0xa2, 0x04, 0x44, 0xb4, 0xb7, 0x88, 0x1c, 0x4f, 0x0f, 0x85, 0x34, 0x09, 0xc9, 0xa1, 0x50, 0x4a, 0x5b, 0x2b, 0x6d, 0x78, 0x60, 0xf2, 0x6a, 0xda, 0x6b, 0xf7, 0x34, 0x59, 0xb9, 0xcd, 0xb5, 0x73, 0xc8, 0x01, 0x71, 0x21, 0x33, 0x8e, 0xfa, 0x60, 0xf4, 0x14, 0x80, 0x86, 0xd7, 0xa3, 0xa8, 0xed, 0x59, 0xbb, 0x07, };
2048 static const ec_test_case ed25519_89_test_case = {
2049 	.name = "EDDSA25519-SHA512/wei25519 89",
2050 	.ec_str_p = &wei25519_str_params,
2051 	.priv_key = ed25519_89_test_vectors_priv_key,
2052 	.priv_key_len = sizeof(ed25519_89_test_vectors_priv_key),
2053 	.nn_random = NULL,
2054 	.hash_type = SHA512,
2055 	.msg = (const char *)ed25519_89_test_vectors_message,
2056 	.msglen = sizeof(ed25519_89_test_vectors_message),
2057 	.sig_type = EDDSA25519,
2058 	.exp_sig = ed25519_89_test_vectors_expected_sig,
2059 	.exp_siglen = sizeof(ed25519_89_test_vectors_expected_sig),
2060 	.adata = NULL,
2061 	.adata_len = 0
2062 };
2063 
2064 /************************************************/
2065 static const u8 ed25519_90_test_vectors_priv_key[] = {
2066 	0xbe, 0xe1, 0x61, 0x88, 0x1d, 0x81, 0x9b, 0x37, 0x0d, 0x24, 0x0d, 0x50, 0x9b, 0xa4, 0x6b, 0x06, 0xfb, 0x82, 0x8e, 0x20, 0x31, 0x0d, 0x9f, 0x6b, 0x30, 0x97, 0x80, 0x70, 0x3e, 0x98, 0x92, 0x7b, };
2067 static const u8 ed25519_90_test_vectors_message[] = {
2068 	0x5a, 0x6f, 0xe5, 0x99, 0xb6, 0xb0, 0x9b, 0x05, 0xc0, 0xba, 0x6a, 0x62, 0x2d, 0xf3, 0xa9, 0x2b, 0x3d, 0x37, 0x6d, 0x24, 0xd0, 0x4e, 0xa8, 0x5e, 0xbe, 0x76, 0x7b, 0xc2, 0xec, 0x4d, 0x14, 0xe8, 0x3e, 0x69, 0x37, 0xdc, 0x0b, 0x91, 0x4b, 0x48, 0x09, 0xfd, 0xb6, 0x07, 0x90, 0x68, 0x41, 0xa6, 0xfd, 0x1d, 0xcd, 0xf6, 0x1a, 0xae, 0xa8, 0xf9, 0xbb, 0x81, 0xb2, 0xcc, 0xaa, 0x32, 0xdf, 0x41, 0x29, 0x89, 0xae, 0x53, 0x64, 0x66, 0x80, 0xa7, 0x1a, 0x21, 0x1c, 0x84, 0x40, 0xea, 0xb0, 0xf1, 0xae, 0xc5, 0xe4, 0xfc, 0x00, 0xe6, 0xa2, 0xc9, 0x6d, };
2069 static const u8 ed25519_90_test_vectors_expected_sig[] = {
2070 	0xb0, 0x7d, 0x07, 0x2e, 0xb3, 0x83, 0x1f, 0xae, 0x8a, 0x06, 0xef, 0xfa, 0x92, 0x01, 0x79, 0x74, 0x96, 0xdc, 0xe1, 0x26, 0xb8, 0xe1, 0x1f, 0xef, 0x2f, 0xa0, 0x7f, 0x66, 0x4d, 0xc5, 0xcf, 0x3d, 0x4b, 0xf9, 0xc3, 0x8a, 0x8b, 0x3c, 0x09, 0xfb, 0x5f, 0x14, 0xfa, 0x2d, 0xeb, 0x21, 0x9e, 0x7d, 0x85, 0x2f, 0xdd, 0x27, 0xc7, 0xba, 0x32, 0xd3, 0x09, 0x94, 0x2f, 0x27, 0x46, 0xdf, 0xe4, 0x04, };
2071 static const ec_test_case ed25519_90_test_case = {
2072 	.name = "EDDSA25519-SHA512/wei25519 90",
2073 	.ec_str_p = &wei25519_str_params,
2074 	.priv_key = ed25519_90_test_vectors_priv_key,
2075 	.priv_key_len = sizeof(ed25519_90_test_vectors_priv_key),
2076 	.nn_random = NULL,
2077 	.hash_type = SHA512,
2078 	.msg = (const char *)ed25519_90_test_vectors_message,
2079 	.msglen = sizeof(ed25519_90_test_vectors_message),
2080 	.sig_type = EDDSA25519,
2081 	.exp_sig = ed25519_90_test_vectors_expected_sig,
2082 	.exp_siglen = sizeof(ed25519_90_test_vectors_expected_sig),
2083 	.adata = NULL,
2084 	.adata_len = 0
2085 };
2086 
2087 /************************************************/
2088 static const u8 ed25519_91_test_vectors_priv_key[] = {
2089 	0x70, 0x15, 0x0e, 0x95, 0x16, 0x16, 0x4a, 0x3d, 0x7b, 0x7e, 0x8b, 0x6f, 0x25, 0x5b, 0x65, 0xca, 0xc9, 0xf0, 0x74, 0x59, 0xb3, 0x2d, 0x11, 0xbb, 0x94, 0xb3, 0xd2, 0x77, 0x20, 0x8a, 0xbc, 0x99, };
2090 static const u8 ed25519_91_test_vectors_message[] = {
2091 	0x77, 0xbe, 0x8e, 0xce, 0xaa, 0xb4, 0x31, 0xa1, 0x3c, 0x2a, 0x28, 0xd0, 0xd1, 0x55, 0x64, 0x89, 0xd8, 0xc3, 0x92, 0xfd, 0x7a, 0xe4, 0x11, 0x57, 0xf7, 0xca, 0xf0, 0x82, 0xcb, 0x54, 0xe4, 0x5f, 0x08, 0x62, 0x6b, 0xe0, 0x07, 0x6b, 0xe8, 0x44, 0xd3, 0x8f, 0xde, 0x90, 0x1a, 0x5e, 0xab, 0x0e, 0x88, 0x32, 0xd6, 0x9d, 0xac, 0x22, 0xfb, 0x85, 0x07, 0xfb, 0x8e, 0xc4, 0xfa, 0xf7, 0xc8, 0x8f, 0xd2, 0x6d, 0xa3, 0x08, 0x46, 0x1a, 0xfe, 0x38, 0x59, 0x87, 0x97, 0x2b, 0x5e, 0x76, 0x0a, 0x34, 0xa5, 0xe1, 0x8b, 0x9a, 0x82, 0xb4, 0xaa, 0xa5, 0x29, 0xb7, };
2092 static const u8 ed25519_91_test_vectors_expected_sig[] = {
2093 	0xed, 0xa3, 0xf5, 0x03, 0x3e, 0xa7, 0x95, 0x3a, 0x0d, 0x58, 0x3c, 0x64, 0x57, 0x52, 0x2e, 0x84, 0xad, 0x78, 0x44, 0x53, 0x04, 0xd4, 0x8e, 0x57, 0x7d, 0x4d, 0x69, 0xe8, 0x64, 0x1f, 0xeb, 0xe1, 0x52, 0x48, 0xd8, 0xd9, 0x0c, 0xe0, 0x94, 0x4a, 0x8f, 0x80, 0x1d, 0x39, 0x09, 0x9b, 0xc7, 0x74, 0x94, 0xba, 0xc4, 0xce, 0x2a, 0x20, 0xb3, 0x83, 0x69, 0xc6, 0xad, 0xfb, 0x71, 0xe0, 0x3d, 0x0f, };
2094 static const ec_test_case ed25519_91_test_case = {
2095 	.name = "EDDSA25519-SHA512/wei25519 91",
2096 	.ec_str_p = &wei25519_str_params,
2097 	.priv_key = ed25519_91_test_vectors_priv_key,
2098 	.priv_key_len = sizeof(ed25519_91_test_vectors_priv_key),
2099 	.nn_random = NULL,
2100 	.hash_type = SHA512,
2101 	.msg = (const char *)ed25519_91_test_vectors_message,
2102 	.msglen = sizeof(ed25519_91_test_vectors_message),
2103 	.sig_type = EDDSA25519,
2104 	.exp_sig = ed25519_91_test_vectors_expected_sig,
2105 	.exp_siglen = sizeof(ed25519_91_test_vectors_expected_sig),
2106 	.adata = NULL,
2107 	.adata_len = 0
2108 };
2109 
2110 /************************************************/
2111 static const u8 ed25519_92_test_vectors_priv_key[] = {
2112 	0x3f, 0x87, 0xfc, 0xfd, 0xb4, 0x21, 0x42, 0x2a, 0x9c, 0x5f, 0xb9, 0x82, 0x68, 0x31, 0x3c, 0x15, 0x12, 0x8c, 0x78, 0x84, 0x4e, 0xf9, 0xeb, 0x3b, 0x37, 0x13, 0xfa, 0x77, 0xb6, 0x71, 0x89, 0x03, };
2113 static const u8 ed25519_92_test_vectors_message[] = {
2114 	0xc0, 0x0f, 0xed, 0x2d, 0x68, 0x94, 0x68, 0xbc, 0xba, 0xcc, 0xcd, 0x44, 0x6e, 0x8d, 0x8f, 0x29, 0x9e, 0x2a, 0x86, 0x92, 0x5e, 0x62, 0xe5, 0x97, 0x09, 0xaf, 0xaf, 0x48, 0x57, 0x46, 0x9f, 0xf1, 0xe0, 0x06, 0xd0, 0x0f, 0xa3, 0xe1, 0x8a, 0x36, 0x15, 0xf8, 0xf0, 0x6b, 0x6e, 0xbd, 0xff, 0x78, 0x5d, 0xde, 0x58, 0x85, 0x1d, 0x2c, 0x23, 0x90, 0x38, 0xa0, 0xc3, 0x44, 0xdc, 0xe9, 0x85, 0xbd, 0x1f, 0xc8, 0xde, 0xb4, 0x77, 0x9a, 0xe5, 0xf8, 0x93, 0x2e, 0x2f, 0x9e, 0xd5, 0x99, 0x0b, 0x64, 0x72, 0xdb, 0xe4, 0xe6, 0xfe, 0xf6, 0x91, 0x76, 0x57, 0xe0, 0xb5, };
2115 static const u8 ed25519_92_test_vectors_expected_sig[] = {
2116 	0xf6, 0x51, 0x9d, 0x7e, 0xdb, 0x61, 0x34, 0x11, 0x19, 0x74, 0x03, 0x3f, 0x03, 0xb8, 0xd8, 0x9e, 0x9c, 0x76, 0xca, 0xec, 0x89, 0x65, 0xa8, 0xe1, 0x7c, 0xd4, 0x5f, 0xff, 0x19, 0xde, 0x26, 0x15, 0xd7, 0x3e, 0xcc, 0xdb, 0x4a, 0x66, 0x64, 0xa8, 0xf0, 0xe2, 0x3a, 0xdf, 0x98, 0x98, 0x8e, 0x96, 0x25, 0x1b, 0xf2, 0x6e, 0xb7, 0xa4, 0xcc, 0xaa, 0xc1, 0x07, 0x9f, 0x0a, 0x77, 0x2f, 0x9b, 0x05, };
2117 static const ec_test_case ed25519_92_test_case = {
2118 	.name = "EDDSA25519-SHA512/wei25519 92",
2119 	.ec_str_p = &wei25519_str_params,
2120 	.priv_key = ed25519_92_test_vectors_priv_key,
2121 	.priv_key_len = sizeof(ed25519_92_test_vectors_priv_key),
2122 	.nn_random = NULL,
2123 	.hash_type = SHA512,
2124 	.msg = (const char *)ed25519_92_test_vectors_message,
2125 	.msglen = sizeof(ed25519_92_test_vectors_message),
2126 	.sig_type = EDDSA25519,
2127 	.exp_sig = ed25519_92_test_vectors_expected_sig,
2128 	.exp_siglen = sizeof(ed25519_92_test_vectors_expected_sig),
2129 	.adata = NULL,
2130 	.adata_len = 0
2131 };
2132 
2133 /************************************************/
2134 static const u8 ed25519_93_test_vectors_priv_key[] = {
2135 	0x44, 0xce, 0xef, 0x04, 0x4f, 0xf9, 0x98, 0xd4, 0xab, 0xea, 0xaf, 0x37, 0x4e, 0xb4, 0x1d, 0x08, 0x67, 0x18, 0xb6, 0x30, 0x97, 0xb1, 0xe3, 0x5f, 0x89, 0x63, 0x4c, 0x14, 0x89, 0x71, 0x32, 0xea, };
2136 static const u8 ed25519_93_test_vectors_message[] = {
2137 	0x8d, 0x3e, 0x2d, 0xec, 0x46, 0x44, 0xc7, 0xb5, 0x16, 0x33, 0xb1, 0x3e, 0x63, 0x75, 0xca, 0x42, 0xff, 0x91, 0x38, 0x46, 0x5f, 0x43, 0xd7, 0x80, 0x0c, 0x73, 0x13, 0x19, 0x9f, 0x67, 0xc9, 0xcf, 0x1b, 0x52, 0x0b, 0x18, 0x20, 0xbd, 0x63, 0x0e, 0xcf, 0x1c, 0x99, 0x2e, 0x27, 0x67, 0xb3, 0x8e, 0xb5, 0xbb, 0xc4, 0x41, 0xa4, 0xab, 0x8d, 0x31, 0x7d, 0xb4, 0x41, 0xdb, 0x35, 0xa0, 0xfe, 0x3a, 0xbe, 0x7a, 0x9e, 0x45, 0x41, 0x88, 0x1c, 0x2d, 0x7b, 0x1a, 0x26, 0x12, 0x30, 0x69, 0x59, 0x81, 0x5d, 0x1d, 0xa4, 0x12, 0x67, 0xd9, 0x64, 0x9d, 0xd4, 0x49, 0x4a, 0xce, };
2138 static const u8 ed25519_93_test_vectors_expected_sig[] = {
2139 	0x55, 0x45, 0x52, 0xd6, 0xb7, 0x90, 0xd4, 0x21, 0xd0, 0x6b, 0x0a, 0x67, 0xf8, 0xe0, 0x02, 0xad, 0x7a, 0x1e, 0xd0, 0x1c, 0x06, 0xcf, 0x00, 0xcb, 0xea, 0xec, 0x2a, 0x26, 0x8b, 0xda, 0x29, 0xf1, 0x18, 0x3f, 0x0c, 0xea, 0xfc, 0x62, 0x5f, 0xa5, 0xfd, 0xb8, 0x47, 0xdc, 0x86, 0xfa, 0xe1, 0xa2, 0x04, 0x06, 0xe4, 0x59, 0xd4, 0xa0, 0x17, 0x7c, 0xb5, 0x15, 0x22, 0x0a, 0x56, 0x8e, 0x08, 0x00, };
2140 static const ec_test_case ed25519_93_test_case = {
2141 	.name = "EDDSA25519-SHA512/wei25519 93",
2142 	.ec_str_p = &wei25519_str_params,
2143 	.priv_key = ed25519_93_test_vectors_priv_key,
2144 	.priv_key_len = sizeof(ed25519_93_test_vectors_priv_key),
2145 	.nn_random = NULL,
2146 	.hash_type = SHA512,
2147 	.msg = (const char *)ed25519_93_test_vectors_message,
2148 	.msglen = sizeof(ed25519_93_test_vectors_message),
2149 	.sig_type = EDDSA25519,
2150 	.exp_sig = ed25519_93_test_vectors_expected_sig,
2151 	.exp_siglen = sizeof(ed25519_93_test_vectors_expected_sig),
2152 	.adata = NULL,
2153 	.adata_len = 0
2154 };
2155 
2156 /************************************************/
2157 static const u8 ed25519_94_test_vectors_priv_key[] = {
2158 	0x98, 0xef, 0x2a, 0x44, 0xd4, 0xc8, 0x47, 0x6d, 0xff, 0x05, 0xaa, 0x78, 0xdc, 0xf9, 0xc6, 0xdc, 0x08, 0x6c, 0xb2, 0xf6, 0x22, 0xa0, 0x67, 0x45, 0xd6, 0x0c, 0xbf, 0x22, 0x3f, 0xaa, 0xba, 0x66, };
2159 static const u8 ed25519_94_test_vectors_message[] = {
2160 	0xc8, 0xb5, 0xfc, 0xfc, 0x3c, 0x18, 0xc7, 0xd9, 0x59, 0x57, 0xb6, 0x68, 0xe9, 0x1c, 0x73, 0x1d, 0x50, 0xc7, 0xfc, 0xea, 0x4f, 0x95, 0x75, 0xbb, 0xf7, 0x84, 0x62, 0x58, 0x70, 0xe2, 0x38, 0xdf, 0x54, 0x6e, 0x2c, 0xb1, 0xa1, 0x9d, 0x28, 0x08, 0xdd, 0x5b, 0x23, 0x0d, 0x38, 0x71, 0xfd, 0xec, 0x16, 0x10, 0x0e, 0xe1, 0xfb, 0xf9, 0xb7, 0x22, 0xfa, 0x37, 0x44, 0xa7, 0x50, 0xa3, 0xb3, 0x96, 0xb0, 0x5f, 0x9c, 0x21, 0xb8, 0xc0, 0xf6, 0x1e, 0xad, 0x57, 0xa7, 0x8c, 0x5e, 0xcf, 0x72, 0xb5, 0x79, 0xcf, 0xe8, 0x8a, 0x3f, 0x40, 0x4c, 0x8a, 0xcf, 0x52, 0x4f, 0x9a, 0xb9, };
2161 static const u8 ed25519_94_test_vectors_expected_sig[] = {
2162 	0xab, 0x5e, 0x87, 0x24, 0xa3, 0xe6, 0xff, 0x76, 0x05, 0x8c, 0xfb, 0x21, 0x4d, 0x57, 0x4e, 0x04, 0xd0, 0x55, 0x74, 0xec, 0xdd, 0x4f, 0xfe, 0x8c, 0x07, 0xc7, 0xaf, 0x39, 0x6e, 0x88, 0x26, 0x87, 0xc5, 0xd7, 0x9e, 0xf1, 0xe6, 0x2f, 0xbb, 0x4c, 0x5f, 0x1b, 0xd0, 0x6b, 0x9b, 0xd8, 0x97, 0x82, 0x6e, 0xdd, 0xe0, 0xd1, 0x11, 0xd9, 0x18, 0xe8, 0xef, 0x96, 0x1f, 0xf2, 0xa0, 0x0d, 0x77, 0x00, };
2163 static const ec_test_case ed25519_94_test_case = {
2164 	.name = "EDDSA25519-SHA512/wei25519 94",
2165 	.ec_str_p = &wei25519_str_params,
2166 	.priv_key = ed25519_94_test_vectors_priv_key,
2167 	.priv_key_len = sizeof(ed25519_94_test_vectors_priv_key),
2168 	.nn_random = NULL,
2169 	.hash_type = SHA512,
2170 	.msg = (const char *)ed25519_94_test_vectors_message,
2171 	.msglen = sizeof(ed25519_94_test_vectors_message),
2172 	.sig_type = EDDSA25519,
2173 	.exp_sig = ed25519_94_test_vectors_expected_sig,
2174 	.exp_siglen = sizeof(ed25519_94_test_vectors_expected_sig),
2175 	.adata = NULL,
2176 	.adata_len = 0
2177 };
2178 
2179 /************************************************/
2180 static const u8 ed25519_95_test_vectors_priv_key[] = {
2181 	0x93, 0xa8, 0xc7, 0x92, 0xa2, 0x39, 0xc9, 0x31, 0x91, 0x7c, 0x11, 0x48, 0x24, 0xa0, 0x17, 0x4f, 0x8b, 0xc4, 0xeb, 0xbf, 0x98, 0xaf, 0x8c, 0x7e, 0x32, 0x1e, 0x0f, 0x5b, 0xea, 0x40, 0x15, 0xec, };
2182 static const u8 ed25519_95_test_vectors_message[] = {
2183 	0x90, 0x1b, 0xf4, 0xe0, 0x41, 0xca, 0xf1, 0x6e, 0x04, 0xf2, 0xff, 0xde, 0x8d, 0x6f, 0xe9, 0x7e, 0x93, 0xd0, 0x90, 0x0f, 0x6b, 0xc0, 0xfc, 0x09, 0xa9, 0xa0, 0x17, 0x9d, 0x13, 0x7b, 0x4b, 0x77, 0x88, 0xe5, 0x7e, 0xb9, 0x27, 0x66, 0xa9, 0xc6, 0x34, 0xf3, 0x5a, 0xdb, 0x5c, 0x29, 0x88, 0xaf, 0x1e, 0x86, 0x20, 0x8f, 0x46, 0x19, 0x98, 0xf5, 0x9c, 0xfe, 0xc9, 0x92, 0x04, 0xb4, 0x84, 0xfb, 0xca, 0xd3, 0x95, 0x1e, 0x7e, 0xe4, 0x40, 0x55, 0x23, 0x70, 0x5d, 0x97, 0x39, 0xb4, 0x43, 0x07, 0xdb, 0x03, 0xf7, 0x13, 0xfd, 0xa7, 0x8d, 0xb4, 0x21, 0xef, 0x31, 0x21, 0xb3, 0xba, };
2184 static const u8 ed25519_95_test_vectors_expected_sig[] = {
2185 	0xcf, 0xe3, 0x2c, 0x44, 0x35, 0xd9, 0x11, 0xd7, 0x72, 0xdc, 0x07, 0x27, 0xe7, 0x8d, 0x68, 0x9d, 0x01, 0x64, 0xc5, 0x06, 0x95, 0x97, 0xcb, 0x44, 0x1b, 0x22, 0xc1, 0xd2, 0x62, 0x36, 0x47, 0x9f, 0x1a, 0xfd, 0x70, 0x89, 0x12, 0x1b, 0x9a, 0xb4, 0xf6, 0x1b, 0xbb, 0x1f, 0xae, 0x1a, 0xb4, 0x2f, 0x76, 0x35, 0xa9, 0x2a, 0x53, 0x78, 0x4d, 0x71, 0x70, 0x91, 0x6b, 0x70, 0x3a, 0xa5, 0xcc, 0x09, };
2186 static const ec_test_case ed25519_95_test_case = {
2187 	.name = "EDDSA25519-SHA512/wei25519 95",
2188 	.ec_str_p = &wei25519_str_params,
2189 	.priv_key = ed25519_95_test_vectors_priv_key,
2190 	.priv_key_len = sizeof(ed25519_95_test_vectors_priv_key),
2191 	.nn_random = NULL,
2192 	.hash_type = SHA512,
2193 	.msg = (const char *)ed25519_95_test_vectors_message,
2194 	.msglen = sizeof(ed25519_95_test_vectors_message),
2195 	.sig_type = EDDSA25519,
2196 	.exp_sig = ed25519_95_test_vectors_expected_sig,
2197 	.exp_siglen = sizeof(ed25519_95_test_vectors_expected_sig),
2198 	.adata = NULL,
2199 	.adata_len = 0
2200 };
2201 
2202 /************************************************/
2203 static const u8 ed25519_96_test_vectors_priv_key[] = {
2204 	0x70, 0x01, 0xfa, 0x0c, 0x44, 0x04, 0xc2, 0x8a, 0xa5, 0xb5, 0xfc, 0xff, 0x30, 0xa9, 0x61, 0xf2, 0x1a, 0x22, 0xf5, 0xb8, 0x5a, 0x9e, 0x38, 0x2e, 0x07, 0xae, 0xa8, 0xa8, 0x92, 0x4d, 0x0e, 0xc1, };
2205 static const u8 ed25519_96_test_vectors_message[] = {
2206 	0x44, 0xf4, 0x8c, 0xfb, 0x02, 0xf0, 0x87, 0x77, 0xa5, 0x78, 0x73, 0x85, 0x5f, 0x96, 0xbe, 0x4c, 0x02, 0x91, 0x32, 0x3f, 0x27, 0x39, 0xb2, 0x75, 0xd9, 0x07, 0x57, 0xa1, 0x54, 0x72, 0xe5, 0x75, 0x04, 0x36, 0xe0, 0x10, 0x74, 0x08, 0xfe, 0x30, 0x26, 0xc0, 0x06, 0x25, 0x68, 0x99, 0x83, 0xf9, 0x90, 0xeb, 0xa9, 0xbe, 0xcb, 0xfc, 0xe4, 0x03, 0xcc, 0xd5, 0x63, 0x56, 0xad, 0x27, 0x41, 0xfd, 0x21, 0x44, 0x5d, 0xfb, 0x23, 0xd7, 0x61, 0x12, 0xe5, 0x78, 0xb3, 0x39, 0x5c, 0xf9, 0xd9, 0x60, 0x95, 0x5f, 0x1d, 0xa8, 0xf3, 0x99, 0xca, 0x28, 0x6f, 0x21, 0x39, 0x0e, 0x25, 0xa5, 0x9a, };
2207 static const u8 ed25519_96_test_vectors_expected_sig[] = {
2208 	0x64, 0xea, 0xc9, 0xce, 0x87, 0x46, 0x06, 0x18, 0x63, 0x6b, 0x41, 0xfd, 0x2d, 0xec, 0xc1, 0x67, 0x3b, 0xfc, 0x48, 0xc5, 0xf4, 0x79, 0xdf, 0xac, 0xb5, 0x1e, 0x86, 0x68, 0x64, 0x07, 0x37, 0x4b, 0x1d, 0x10, 0xbf, 0x65, 0xd6, 0xd7, 0x47, 0x42, 0x14, 0xd7, 0x77, 0x0c, 0x9e, 0x5c, 0x7f, 0x80, 0x6c, 0x80, 0xd5, 0x3d, 0x48, 0xb7, 0x20, 0x87, 0x0e, 0x5e, 0x78, 0xf3, 0x2e, 0x3a, 0x7e, 0x05, };
2209 static const ec_test_case ed25519_96_test_case = {
2210 	.name = "EDDSA25519-SHA512/wei25519 96",
2211 	.ec_str_p = &wei25519_str_params,
2212 	.priv_key = ed25519_96_test_vectors_priv_key,
2213 	.priv_key_len = sizeof(ed25519_96_test_vectors_priv_key),
2214 	.nn_random = NULL,
2215 	.hash_type = SHA512,
2216 	.msg = (const char *)ed25519_96_test_vectors_message,
2217 	.msglen = sizeof(ed25519_96_test_vectors_message),
2218 	.sig_type = EDDSA25519,
2219 	.exp_sig = ed25519_96_test_vectors_expected_sig,
2220 	.exp_siglen = sizeof(ed25519_96_test_vectors_expected_sig),
2221 	.adata = NULL,
2222 	.adata_len = 0
2223 };
2224 
2225 /************************************************/
2226 static const u8 ed25519_97_test_vectors_priv_key[] = {
2227 	0x3a, 0xdc, 0xe3, 0xa3, 0xd3, 0xfb, 0xc9, 0x77, 0xdd, 0x4b, 0x30, 0x0a, 0x74, 0x74, 0x9f, 0x13, 0xa3, 0xb0, 0x4a, 0x5d, 0x73, 0xa2, 0xcd, 0x75, 0xa9, 0x94, 0xe3, 0x19, 0x5e, 0xfe, 0xbd, 0xac, };
2228 static const u8 ed25519_97_test_vectors_message[] = {
2229 	0xfe, 0x6c, 0x1a, 0x31, 0x06, 0x8e, 0x33, 0x2d, 0x12, 0xaa, 0xb3, 0x7d, 0x99, 0x40, 0x65, 0x68, 0xde, 0xaa, 0x36, 0xbd, 0xb2, 0x77, 0xce, 0xe5, 0x53, 0x04, 0x63, 0x3b, 0xd0, 0xa2, 0x67, 0xa8, 0x50, 0xe2, 0x03, 0xbb, 0x3f, 0xab, 0xe5, 0x11, 0x0b, 0xcc, 0x1c, 0xa4, 0x31, 0x66, 0x98, 0xab, 0x1c, 0xf0, 0x0f, 0x0b, 0x0f, 0x1d, 0x97, 0xef, 0x21, 0x80, 0x88, 0x7f, 0x0e, 0xc0, 0x99, 0x1e, 0x8c, 0x11, 0x11, 0xf0, 0xc0, 0xe1, 0xd2, 0xb7, 0x12, 0x43, 0x3a, 0xd2, 0xb3, 0x07, 0x1b, 0xd6, 0x6e, 0x1d, 0x81, 0xf7, 0xfa, 0x47, 0xbb, 0x4b, 0xb3, 0x1a, 0xc0, 0xf0, 0x59, 0xbb, 0x3c, 0xb8, };
2230 static const u8 ed25519_97_test_vectors_expected_sig[] = {
2231 	0x7d, 0xda, 0x89, 0xf8, 0x5b, 0x40, 0x53, 0x9f, 0x5a, 0xd8, 0xc6, 0xde, 0x49, 0x53, 0xf7, 0x09, 0x4a, 0x71, 0x5b, 0x63, 0xdd, 0xa3, 0x0e, 0xc7, 0xcf, 0x65, 0xa7, 0x85, 0xce, 0xae, 0x5f, 0xc6, 0x88, 0x70, 0x7e, 0xe0, 0x0b, 0xe6, 0x82, 0xce, 0xcb, 0xe7, 0xee, 0x37, 0xd8, 0xfc, 0x39, 0xee, 0x6d, 0x83, 0xc6, 0x44, 0x09, 0x68, 0x17, 0x08, 0xa0, 0x89, 0x8a, 0x18, 0x3b, 0x28, 0x8a, 0x06, };
2232 static const ec_test_case ed25519_97_test_case = {
2233 	.name = "EDDSA25519-SHA512/wei25519 97",
2234 	.ec_str_p = &wei25519_str_params,
2235 	.priv_key = ed25519_97_test_vectors_priv_key,
2236 	.priv_key_len = sizeof(ed25519_97_test_vectors_priv_key),
2237 	.nn_random = NULL,
2238 	.hash_type = SHA512,
2239 	.msg = (const char *)ed25519_97_test_vectors_message,
2240 	.msglen = sizeof(ed25519_97_test_vectors_message),
2241 	.sig_type = EDDSA25519,
2242 	.exp_sig = ed25519_97_test_vectors_expected_sig,
2243 	.exp_siglen = sizeof(ed25519_97_test_vectors_expected_sig),
2244 	.adata = NULL,
2245 	.adata_len = 0
2246 };
2247 
2248 /************************************************/
2249 static const u8 ed25519_98_test_vectors_priv_key[] = {
2250 	0x14, 0x80, 0x3c, 0x1f, 0x23, 0xa4, 0x7f, 0xcd, 0xd3, 0x5e, 0x5d, 0x14, 0x6e, 0x20, 0xca, 0x63, 0x0c, 0xd7, 0x12, 0xc0, 0x47, 0xd5, 0x33, 0x0b, 0x65, 0x2e, 0x31, 0x85, 0x7a, 0xcb, 0xc9, 0xe8, };
2251 static const u8 ed25519_98_test_vectors_message[] = {
2252 	0x55, 0x59, 0x83, 0x67, 0x9d, 0x02, 0x6e, 0x53, 0x54, 0xb4, 0xcc, 0x05, 0x5a, 0xe1, 0xbc, 0x14, 0x65, 0x3c, 0x72, 0x81, 0xec, 0x72, 0x23, 0x72, 0xf3, 0xfe, 0xb7, 0x78, 0xe8, 0x41, 0xda, 0x82, 0x1b, 0x3d, 0x0b, 0x8e, 0xe7, 0xa9, 0xa9, 0x12, 0x9e, 0xa0, 0x68, 0x24, 0xbe, 0x83, 0x79, 0xfb, 0xbd, 0xcb, 0x07, 0x48, 0xf4, 0x23, 0x72, 0x1c, 0xcb, 0x17, 0x2a, 0x1b, 0xaf, 0xa1, 0xd5, 0xae, 0x9f, 0xc1, 0xc5, 0x1e, 0x93, 0xd4, 0x1d, 0xd5, 0x51, 0xc3, 0x08, 0x60, 0x79, 0xb6, 0x20, 0x28, 0x6c, 0x1c, 0x40, 0xc1, 0x22, 0x3b, 0xbc, 0xbb, 0x76, 0x72, 0x2e, 0x92, 0xca, 0x21, 0xd8, 0x41, 0x0a, };
2253 static const u8 ed25519_98_test_vectors_expected_sig[] = {
2254 	0x07, 0xa7, 0xde, 0x6c, 0xe9, 0x76, 0x64, 0xb3, 0xea, 0x09, 0x28, 0xe1, 0x38, 0x5c, 0x33, 0x09, 0xbe, 0x08, 0xa4, 0x7c, 0xbf, 0x4d, 0xaa, 0x91, 0x86, 0xa1, 0xb9, 0x48, 0xc8, 0x6f, 0xbb, 0xa3, 0x9c, 0x4e, 0xfc, 0xfc, 0xb7, 0xa0, 0xa3, 0x86, 0x6b, 0xc9, 0x4c, 0x67, 0x88, 0xff, 0xe6, 0xbe, 0x0d, 0x49, 0x72, 0xe5, 0x6d, 0x0c, 0x32, 0x92, 0xd1, 0xcc, 0x6e, 0x25, 0x44, 0x7b, 0x99, 0x04, };
2255 static const ec_test_case ed25519_98_test_case = {
2256 	.name = "EDDSA25519-SHA512/wei25519 98",
2257 	.ec_str_p = &wei25519_str_params,
2258 	.priv_key = ed25519_98_test_vectors_priv_key,
2259 	.priv_key_len = sizeof(ed25519_98_test_vectors_priv_key),
2260 	.nn_random = NULL,
2261 	.hash_type = SHA512,
2262 	.msg = (const char *)ed25519_98_test_vectors_message,
2263 	.msglen = sizeof(ed25519_98_test_vectors_message),
2264 	.sig_type = EDDSA25519,
2265 	.exp_sig = ed25519_98_test_vectors_expected_sig,
2266 	.exp_siglen = sizeof(ed25519_98_test_vectors_expected_sig),
2267 	.adata = NULL,
2268 	.adata_len = 0
2269 };
2270 
2271 /************************************************/
2272 static const u8 ed25519_99_test_vectors_priv_key[] = {
2273 	0x1a, 0x61, 0x15, 0x4d, 0x34, 0x72, 0xcd, 0x96, 0xb3, 0x28, 0xee, 0x67, 0x4b, 0xeb, 0x4f, 0xc8, 0x67, 0x63, 0xa9, 0x69, 0xfb, 0x41, 0x04, 0x94, 0xe0, 0x67, 0x84, 0x14, 0xe3, 0x1a, 0x46, 0xa6, };
2274 static const u8 ed25519_99_test_vectors_message[] = {
2275 	0x64, 0xc5, 0x65, 0xef, 0xbc, 0xb8, 0xb9, 0x52, 0x8e, 0xd4, 0x72, 0x53, 0xf3, 0xc6, 0xa4, 0x03, 0x5d, 0xb7, 0x81, 0xd6, 0xf0, 0x97, 0x6b, 0x5e, 0x5b, 0xa8, 0x44, 0x7d, 0x4e, 0xd5, 0x4b, 0x04, 0x10, 0x52, 0x93, 0xef, 0x4c, 0x00, 0x0d, 0x8b, 0x2e, 0x1b, 0x5b, 0x75, 0xe7, 0x27, 0xe5, 0xd2, 0xa0, 0x77, 0x74, 0x3b, 0x50, 0xd1, 0x83, 0xb4, 0x91, 0x76, 0x48, 0x01, 0xa2, 0x50, 0x4d, 0x16, 0xee, 0x6d, 0x7d, 0x8a, 0xc4, 0xfe, 0x40, 0xe6, 0xbf, 0xc2, 0xa8, 0x12, 0x9c, 0x72, 0x85, 0xa5, 0xac, 0x69, 0x1c, 0x35, 0xe6, 0x42, 0xed, 0x16, 0x2c, 0xf7, 0xfb, 0xc6, 0x45, 0x16, 0x73, 0x3a, 0x23, 0xb3, };
2276 static const u8 ed25519_99_test_vectors_expected_sig[] = {
2277 	0xad, 0xa1, 0x66, 0x6c, 0x9c, 0x3b, 0x82, 0x84, 0xb8, 0xa2, 0x1c, 0x4f, 0x26, 0x18, 0xef, 0x08, 0x08, 0xa6, 0x46, 0xf3, 0xf1, 0x09, 0x41, 0xe4, 0x70, 0xf7, 0x38, 0xe1, 0x78, 0x5e, 0x2d, 0xe9, 0xfd, 0xd9, 0xc8, 0xcb, 0x52, 0x6f, 0x94, 0x5c, 0x7a, 0x8c, 0x69, 0x94, 0xf1, 0x51, 0xb7, 0xd0, 0x66, 0x58, 0x1b, 0x1d, 0x75, 0x53, 0x07, 0x94, 0x7c, 0x62, 0xbe, 0xfc, 0x8a, 0xb7, 0x07, 0x0f, };
2278 static const ec_test_case ed25519_99_test_case = {
2279 	.name = "EDDSA25519-SHA512/wei25519 99",
2280 	.ec_str_p = &wei25519_str_params,
2281 	.priv_key = ed25519_99_test_vectors_priv_key,
2282 	.priv_key_len = sizeof(ed25519_99_test_vectors_priv_key),
2283 	.nn_random = NULL,
2284 	.hash_type = SHA512,
2285 	.msg = (const char *)ed25519_99_test_vectors_message,
2286 	.msglen = sizeof(ed25519_99_test_vectors_message),
2287 	.sig_type = EDDSA25519,
2288 	.exp_sig = ed25519_99_test_vectors_expected_sig,
2289 	.exp_siglen = sizeof(ed25519_99_test_vectors_expected_sig),
2290 	.adata = NULL,
2291 	.adata_len = 0
2292 };
2293 
2294 /************************************************/
2295 static const u8 ed25519_100_test_vectors_priv_key[] = {
2296 	0xf2, 0x15, 0xd3, 0x4f, 0xe2, 0xd7, 0x57, 0xcf, 0xf9, 0xcf, 0x5c, 0x05, 0x43, 0x09, 0x94, 0xde, 0x58, 0x79, 0x87, 0xce, 0x45, 0xcb, 0x04, 0x59, 0xf6, 0x1e, 0xc6, 0xc8, 0x25, 0xc6, 0x22, 0x59, };
2297 static const u8 ed25519_100_test_vectors_message[] = {
2298 	0xfb, 0xed, 0x2a, 0x7d, 0xf4, 0x18, 0xec, 0x0e, 0x80, 0x36, 0x31, 0x2e, 0xc2, 0x39, 0xfc, 0xee, 0x6e, 0xf9, 0x7d, 0xc8, 0xc2, 0xdf, 0x1f, 0x2e, 0x14, 0xad, 0xee, 0x28, 0x78, 0x08, 0xb7, 0x88, 0xa6, 0x07, 0x21, 0x43, 0xb8, 0x51, 0xd9, 0x75, 0xc8, 0xe8, 0xa0, 0x29, 0x9d, 0xf8, 0x46, 0xb1, 0x91, 0x13, 0xe3, 0x8c, 0xee, 0x83, 0xda, 0x71, 0xea, 0x8e, 0x9b, 0xd6, 0xf5, 0x7b, 0xdc, 0xd3, 0x55, 0x75, 0x23, 0xf4, 0xfe, 0xb6, 0x16, 0xca, 0xa5, 0x95, 0xae, 0xa0, 0x1e, 0xb0, 0xb3, 0xd4, 0x90, 0xb9, 0x9b, 0x52, 0x5e, 0xa4, 0xfb, 0xb9, 0x25, 0x8b, 0xc7, 0xfb, 0xb0, 0xde, 0xea, 0x8f, 0x56, 0x8c, 0xb2, };
2299 static const u8 ed25519_100_test_vectors_expected_sig[] = {
2300 	0xcb, 0xef, 0x65, 0xb6, 0xf3, 0xfd, 0x58, 0x09, 0x69, 0xfc, 0x33, 0x40, 0xcf, 0xae, 0x4f, 0x7c, 0x99, 0xdf, 0x13, 0x40, 0xcc, 0xe5, 0x46, 0x26, 0x18, 0x31, 0x44, 0xef, 0x46, 0x88, 0x71, 0x63, 0x4b, 0x0a, 0x5c, 0x00, 0x33, 0x53, 0x41, 0x08, 0xe1, 0xc6, 0x7c, 0x0d, 0xc9, 0x9d, 0x30, 0x14, 0xf0, 0x10, 0x84, 0xe9, 0x8c, 0x95, 0xe1, 0x01, 0x4b, 0x30, 0x9b, 0x1d, 0xbb, 0x2e, 0x67, 0x04, };
2301 static const ec_test_case ed25519_100_test_case = {
2302 	.name = "EDDSA25519-SHA512/wei25519 100",
2303 	.ec_str_p = &wei25519_str_params,
2304 	.priv_key = ed25519_100_test_vectors_priv_key,
2305 	.priv_key_len = sizeof(ed25519_100_test_vectors_priv_key),
2306 	.nn_random = NULL,
2307 	.hash_type = SHA512,
2308 	.msg = (const char *)ed25519_100_test_vectors_message,
2309 	.msglen = sizeof(ed25519_100_test_vectors_message),
2310 	.sig_type = EDDSA25519,
2311 	.exp_sig = ed25519_100_test_vectors_expected_sig,
2312 	.exp_siglen = sizeof(ed25519_100_test_vectors_expected_sig),
2313 	.adata = NULL,
2314 	.adata_len = 0
2315 };
2316 
2317 /************************************************/
2318 static const u8 ed25519_101_test_vectors_priv_key[] = {
2319 	0x8c, 0x9f, 0x95, 0x08, 0x30, 0x75, 0xa4, 0x3f, 0xe4, 0x26, 0xd1, 0x9f, 0x1e, 0x87, 0x71, 0x9b, 0x40, 0x04, 0x3d, 0xe8, 0x8e, 0xb0, 0xee, 0x97, 0x1f, 0x70, 0xe1, 0x0c, 0x76, 0x94, 0xce, 0x4e, };
2320 static const u8 ed25519_101_test_vectors_message[] = {
2321 	0xb6, 0x9d, 0x70, 0xe8, 0x60, 0xf5, 0x5c, 0x42, 0x7e, 0xf2, 0xa7, 0x1d, 0xf3, 0x6e, 0x05, 0xbb, 0xc4, 0x3b, 0xb2, 0xe0, 0x64, 0x63, 0xaa, 0x5d, 0xe3, 0x44, 0x19, 0xc6, 0xa6, 0x14, 0xee, 0xa6, 0x69, 0x53, 0x35, 0xa8, 0x75, 0x26, 0xc1, 0x22, 0x64, 0x88, 0xd8, 0x42, 0x89, 0x1d, 0x05, 0x74, 0xdf, 0x34, 0x3c, 0x9c, 0x1e, 0x17, 0xae, 0xd6, 0x95, 0x8e, 0xce, 0xe8, 0x74, 0x74, 0x22, 0x1e, 0xb7, 0x7a, 0x59, 0x9e, 0xcb, 0x05, 0x93, 0x44, 0xc0, 0xd0, 0x52, 0xc0, 0x00, 0x2a, 0x66, 0xe5, 0xa6, 0x01, 0x31, 0x85, 0xaf, 0x69, 0xa0, 0x1b, 0xa5, 0xdb, 0xc6, 0x60, 0xd3, 0x6c, 0xae, 0x23, 0x5f, 0x67, 0xfe, 0x0e, };
2322 static const u8 ed25519_101_test_vectors_expected_sig[] = {
2323 	0xca, 0xc5, 0x55, 0x22, 0x2d, 0xaf, 0xec, 0x76, 0xa0, 0xb4, 0x7b, 0x9d, 0x2c, 0x58, 0x6b, 0x3b, 0x3b, 0x9b, 0x3b, 0x9c, 0x83, 0x64, 0xbe, 0xb3, 0xca, 0xe1, 0xe8, 0xdd, 0x7f, 0x1a, 0xe9, 0xdd, 0x74, 0xf2, 0x2b, 0x8d, 0xd4, 0xad, 0x2b, 0x29, 0x0f, 0x81, 0x35, 0x1a, 0x41, 0x5a, 0x99, 0xf0, 0x30, 0xf1, 0x07, 0x78, 0xbe, 0x4c, 0xda, 0x85, 0xd1, 0xd3, 0x53, 0x33, 0x1e, 0x70, 0xf1, 0x09, };
2324 static const ec_test_case ed25519_101_test_case = {
2325 	.name = "EDDSA25519-SHA512/wei25519 101",
2326 	.ec_str_p = &wei25519_str_params,
2327 	.priv_key = ed25519_101_test_vectors_priv_key,
2328 	.priv_key_len = sizeof(ed25519_101_test_vectors_priv_key),
2329 	.nn_random = NULL,
2330 	.hash_type = SHA512,
2331 	.msg = (const char *)ed25519_101_test_vectors_message,
2332 	.msglen = sizeof(ed25519_101_test_vectors_message),
2333 	.sig_type = EDDSA25519,
2334 	.exp_sig = ed25519_101_test_vectors_expected_sig,
2335 	.exp_siglen = sizeof(ed25519_101_test_vectors_expected_sig),
2336 	.adata = NULL,
2337 	.adata_len = 0
2338 };
2339 
2340 /************************************************/
2341 static const u8 ed25519_102_test_vectors_priv_key[] = {
2342 	0xd7, 0xeb, 0x1f, 0xba, 0x42, 0x4f, 0xee, 0xd1, 0x00, 0x77, 0x7e, 0xed, 0xb4, 0x87, 0x4b, 0xf2, 0x08, 0x10, 0xad, 0x68, 0x6b, 0x67, 0xe3, 0x1d, 0x27, 0xec, 0xf6, 0x10, 0x60, 0x9a, 0x33, 0xf5, };
2343 static const u8 ed25519_102_test_vectors_message[] = {
2344 	0xa1, 0xd0, 0xf8, 0x1e, 0x3d, 0x59, 0x08, 0x9c, 0xc2, 0xb1, 0x9e, 0x07, 0xd2, 0xfc, 0xe4, 0x3d, 0xb4, 0xcf, 0x17, 0x1f, 0xaa, 0x64, 0x2f, 0x3b, 0x0b, 0xbd, 0xe7, 0x7a, 0xe3, 0xd5, 0x3a, 0xf5, 0xc0, 0x2b, 0xf8, 0xfc, 0x12, 0xff, 0xb4, 0xe5, 0x7f, 0x7c, 0x8a, 0x01, 0x5d, 0x6c, 0x2d, 0x17, 0x89, 0x44, 0xfa, 0xe9, 0xf7, 0xc8, 0xfc, 0x96, 0x9d, 0x4b, 0x77, 0xbe, 0xa5, 0x18, 0x76, 0xae, 0x99, 0xd5, 0x9e, 0x94, 0xad, 0x24, 0x56, 0xe0, 0xed, 0x72, 0xc5, 0x2c, 0xf4, 0xe5, 0x34, 0x0d, 0xa1, 0x7c, 0x44, 0xdb, 0xff, 0x86, 0x45, 0x7a, 0x51, 0x9b, 0x6f, 0xff, 0xe2, 0x69, 0x06, 0x62, 0x90, 0xd6, 0x29, 0xfe, 0x69, };
2345 static const u8 ed25519_102_test_vectors_expected_sig[] = {
2346 	0x2b, 0xf7, 0x19, 0x68, 0x2b, 0x07, 0xcc, 0x5e, 0xcc, 0x04, 0x80, 0xf3, 0x7e, 0x9d, 0x12, 0x3f, 0xf6, 0xf4, 0x4c, 0x26, 0xe6, 0x95, 0x8e, 0x59, 0xf0, 0x80, 0x46, 0x6f, 0x9c, 0xd3, 0x73, 0xa1, 0x65, 0x00, 0xda, 0xf1, 0x23, 0xdc, 0x3f, 0x13, 0x34, 0x77, 0x4b, 0xfc, 0x9f, 0xa8, 0x45, 0x03, 0xb1, 0x6d, 0xbf, 0x21, 0xa8, 0x15, 0xc1, 0xad, 0xa6, 0xeb, 0xef, 0x49, 0x20, 0x46, 0x17, 0x02, };
2347 static const ec_test_case ed25519_102_test_case = {
2348 	.name = "EDDSA25519-SHA512/wei25519 102",
2349 	.ec_str_p = &wei25519_str_params,
2350 	.priv_key = ed25519_102_test_vectors_priv_key,
2351 	.priv_key_len = sizeof(ed25519_102_test_vectors_priv_key),
2352 	.nn_random = NULL,
2353 	.hash_type = SHA512,
2354 	.msg = (const char *)ed25519_102_test_vectors_message,
2355 	.msglen = sizeof(ed25519_102_test_vectors_message),
2356 	.sig_type = EDDSA25519,
2357 	.exp_sig = ed25519_102_test_vectors_expected_sig,
2358 	.exp_siglen = sizeof(ed25519_102_test_vectors_expected_sig),
2359 	.adata = NULL,
2360 	.adata_len = 0
2361 };
2362 
2363 /************************************************/
2364 static const u8 ed25519_103_test_vectors_priv_key[] = {
2365 	0x4f, 0x6a, 0xeb, 0x35, 0xfc, 0xe1, 0x4f, 0xbc, 0xbb, 0x9a, 0xa8, 0xa4, 0xf6, 0x45, 0x1b, 0xf9, 0x5b, 0x98, 0xdf, 0x04, 0x7f, 0xa8, 0xc4, 0x3f, 0x1e, 0xad, 0x3b, 0x40, 0x4d, 0x3f, 0x92, 0x8f, };
2366 static const u8 ed25519_103_test_vectors_message[] = {
2367 	0x2d, 0xfb, 0xb3, 0xf5, 0x9e, 0x19, 0xea, 0x17, 0xd4, 0x4a, 0x5b, 0xde, 0x4a, 0xd2, 0x27, 0xa1, 0xa3, 0x51, 0xdd, 0xa1, 0x7a, 0xf8, 0x40, 0xee, 0x0a, 0x75, 0xda, 0x21, 0xa5, 0xcc, 0xa8, 0x9b, 0x6d, 0x1c, 0x56, 0x7c, 0x33, 0x3e, 0x9c, 0xc9, 0x10, 0xe2, 0x15, 0x7e, 0x05, 0xe8, 0x6a, 0xd5, 0xd9, 0x31, 0x14, 0x50, 0x64, 0x59, 0x4c, 0x47, 0xba, 0xee, 0xa8, 0x66, 0x3a, 0x34, 0x64, 0x9c, 0x43, 0xe9, 0x0e, 0xb9, 0x5c, 0xa1, 0x0f, 0x7d, 0x51, 0x59, 0x7b, 0x37, 0x8a, 0x72, 0x2f, 0x1f, 0x70, 0x4a, 0xdf, 0x9f, 0x22, 0xe9, 0xf8, 0x85, 0xb8, 0x9d, 0x1f, 0x93, 0x80, 0x06, 0xa2, 0xef, 0xcd, 0xb4, 0x2a, 0xaf, 0xf5, 0xe3, };
2368 static const u8 ed25519_103_test_vectors_expected_sig[] = {
2369 	0x6a, 0xdb, 0x07, 0xe3, 0x64, 0xf2, 0xa4, 0x55, 0xcb, 0x05, 0x86, 0x7a, 0xbc, 0x51, 0x1a, 0xcd, 0x9d, 0x65, 0x89, 0x77, 0xf0, 0xca, 0xca, 0xfc, 0x92, 0x82, 0x8e, 0x7b, 0x72, 0x4f, 0x6b, 0xbf, 0x98, 0xbf, 0x0b, 0xfb, 0x29, 0xf4, 0xe5, 0xe6, 0xc7, 0x47, 0x38, 0xd4, 0xfd, 0xd8, 0x16, 0xd9, 0x25, 0x24, 0x07, 0xae, 0x4f, 0x3a, 0xfc, 0x57, 0x4c, 0x4f, 0x00, 0x61, 0x48, 0x24, 0xe2, 0x03, };
2370 static const ec_test_case ed25519_103_test_case = {
2371 	.name = "EDDSA25519-SHA512/wei25519 103",
2372 	.ec_str_p = &wei25519_str_params,
2373 	.priv_key = ed25519_103_test_vectors_priv_key,
2374 	.priv_key_len = sizeof(ed25519_103_test_vectors_priv_key),
2375 	.nn_random = NULL,
2376 	.hash_type = SHA512,
2377 	.msg = (const char *)ed25519_103_test_vectors_message,
2378 	.msglen = sizeof(ed25519_103_test_vectors_message),
2379 	.sig_type = EDDSA25519,
2380 	.exp_sig = ed25519_103_test_vectors_expected_sig,
2381 	.exp_siglen = sizeof(ed25519_103_test_vectors_expected_sig),
2382 	.adata = NULL,
2383 	.adata_len = 0
2384 };
2385 
2386 /************************************************/
2387 static const u8 ed25519_104_test_vectors_priv_key[] = {
2388 	0xef, 0x4a, 0x67, 0x62, 0xb4, 0x00, 0x97, 0x52, 0x04, 0xcc, 0xc1, 0x3a, 0xbb, 0x47, 0x34, 0x40, 0x15, 0x45, 0x49, 0x06, 0x85, 0x0f, 0xf1, 0x49, 0x40, 0xcb, 0xb8, 0x3a, 0xa2, 0x24, 0x14, 0xae, };
2389 static const u8 ed25519_104_test_vectors_message[] = {
2390 	0xa4, 0xb6, 0x3e, 0xae, 0xd5, 0xa6, 0x4a, 0x94, 0xf2, 0xca, 0xd2, 0x12, 0xce, 0x2a, 0xe7, 0x10, 0x92, 0xfd, 0x3e, 0xa7, 0x44, 0xf5, 0xbd, 0x89, 0x56, 0x2b, 0x2f, 0xc2, 0xa6, 0xc9, 0xe4, 0xd7, 0xaa, 0x27, 0xad, 0xd5, 0x62, 0x64, 0xa5, 0xa5, 0x50, 0x16, 0x61, 0x0b, 0xe6, 0xc1, 0x9f, 0xf7, 0xd4, 0x98, 0x9e, 0x95, 0x04, 0x74, 0x08, 0x53, 0x01, 0x27, 0x15, 0xa7, 0x9e, 0xce, 0x9e, 0x12, 0xc3, 0x01, 0xb3, 0x31, 0x7c, 0x7d, 0x9b, 0x67, 0x30, 0xdb, 0x86, 0x2a, 0x4a, 0x1d, 0x28, 0x05, 0x8e, 0x0f, 0x8b, 0x5d, 0xdd, 0x97, 0x38, 0xc7, 0xc6, 0x2e, 0xa5, 0x72, 0xcf, 0xe5, 0x9e, 0xae, 0x08, 0xe2, 0xb8, 0xb6, 0x59, 0x3b, 0x58, };
2391 static const u8 ed25519_104_test_vectors_expected_sig[] = {
2392 	0x02, 0x69, 0x7d, 0x44, 0xca, 0xd8, 0x62, 0xf1, 0xda, 0xf5, 0x70, 0x82, 0x05, 0xf4, 0x50, 0xd4, 0x08, 0x52, 0x5b, 0x10, 0xc0, 0x1f, 0xfd, 0x06, 0xcf, 0xee, 0x80, 0x37, 0x4f, 0x3d, 0xb1, 0x6f, 0xa9, 0xa4, 0x9c, 0x19, 0xa9, 0x84, 0x4b, 0x34, 0x5f, 0x2f, 0x95, 0x59, 0xea, 0x74, 0xaa, 0xb1, 0x73, 0xba, 0xa0, 0x78, 0xc5, 0x43, 0x70, 0xa5, 0x16, 0x67, 0x00, 0xc6, 0xda, 0xfb, 0x78, 0x0a, };
2393 static const ec_test_case ed25519_104_test_case = {
2394 	.name = "EDDSA25519-SHA512/wei25519 104",
2395 	.ec_str_p = &wei25519_str_params,
2396 	.priv_key = ed25519_104_test_vectors_priv_key,
2397 	.priv_key_len = sizeof(ed25519_104_test_vectors_priv_key),
2398 	.nn_random = NULL,
2399 	.hash_type = SHA512,
2400 	.msg = (const char *)ed25519_104_test_vectors_message,
2401 	.msglen = sizeof(ed25519_104_test_vectors_message),
2402 	.sig_type = EDDSA25519,
2403 	.exp_sig = ed25519_104_test_vectors_expected_sig,
2404 	.exp_siglen = sizeof(ed25519_104_test_vectors_expected_sig),
2405 	.adata = NULL,
2406 	.adata_len = 0
2407 };
2408 
2409 /************************************************/
2410 static const u8 ed25519_105_test_vectors_priv_key[] = {
2411 	0x55, 0x01, 0x7e, 0x5f, 0x61, 0xf0, 0xc5, 0xba, 0xfb, 0xcd, 0xe6, 0xf8, 0x49, 0xf4, 0x2a, 0x31, 0xe5, 0xe7, 0xa8, 0x78, 0xc1, 0xd3, 0xf9, 0x12, 0x6f, 0xc5, 0x69, 0xfd, 0x41, 0x7e, 0xa9, 0xf2, };
2412 static const u8 ed25519_105_test_vectors_message[] = {
2413 	0x2f, 0xc8, 0x4a, 0x09, 0x98, 0xfa, 0x6e, 0x16, 0x8a, 0x86, 0x64, 0x10, 0xbb, 0x68, 0x10, 0x5d, 0xf2, 0x49, 0xa2, 0x8c, 0xfc, 0x76, 0x60, 0x4b, 0xe9, 0x4f, 0xd7, 0xdf, 0xff, 0xf2, 0xfc, 0x1d, 0xed, 0xd2, 0x20, 0x19, 0x94, 0x65, 0x57, 0x5e, 0x8d, 0xf8, 0x60, 0x19, 0x0f, 0x16, 0xac, 0xa4, 0x08, 0x41, 0x69, 0xbe, 0x16, 0xc6, 0xba, 0x32, 0xeb, 0x67, 0x04, 0x2f, 0xfd, 0x4f, 0x23, 0x03, 0x16, 0xa2, 0x6b, 0x26, 0x24, 0xa4, 0x2f, 0x8f, 0x90, 0xad, 0x57, 0xf6, 0x91, 0x64, 0x86, 0xfa, 0x91, 0xfd, 0x94, 0xed, 0x68, 0xad, 0xed, 0x4e, 0x63, 0x24, 0x30, 0xef, 0x71, 0x94, 0x46, 0x97, 0x9b, 0xfa, 0xf3, 0x45, 0x40, 0x9c, 0x38, 0x7f, };
2414 static const u8 ed25519_105_test_vectors_expected_sig[] = {
2415 	0xb1, 0xa5, 0xe7, 0xc4, 0x9b, 0x8f, 0xc6, 0xb4, 0x33, 0x1e, 0x04, 0x16, 0xce, 0x7e, 0x4e, 0xd5, 0x9e, 0xdd, 0x56, 0x30, 0x0b, 0x80, 0x2e, 0x0d, 0x72, 0xab, 0xca, 0x4a, 0x6f, 0xcb, 0x87, 0x6c, 0x03, 0xbf, 0x33, 0x15, 0x79, 0x12, 0x4a, 0xe0, 0xd3, 0xfe, 0x43, 0xf7, 0x89, 0x8b, 0xc8, 0x7e, 0x93, 0xfc, 0x2d, 0xa3, 0x97, 0x0f, 0xc8, 0x63, 0x89, 0x57, 0xd1, 0x8c, 0x66, 0x13, 0xc8, 0x08, };
2416 static const ec_test_case ed25519_105_test_case = {
2417 	.name = "EDDSA25519-SHA512/wei25519 105",
2418 	.ec_str_p = &wei25519_str_params,
2419 	.priv_key = ed25519_105_test_vectors_priv_key,
2420 	.priv_key_len = sizeof(ed25519_105_test_vectors_priv_key),
2421 	.nn_random = NULL,
2422 	.hash_type = SHA512,
2423 	.msg = (const char *)ed25519_105_test_vectors_message,
2424 	.msglen = sizeof(ed25519_105_test_vectors_message),
2425 	.sig_type = EDDSA25519,
2426 	.exp_sig = ed25519_105_test_vectors_expected_sig,
2427 	.exp_siglen = sizeof(ed25519_105_test_vectors_expected_sig),
2428 	.adata = NULL,
2429 	.adata_len = 0
2430 };
2431 
2432 /************************************************/
2433 static const u8 ed25519_106_test_vectors_priv_key[] = {
2434 	0x05, 0x53, 0xfb, 0xa8, 0x66, 0x94, 0x23, 0x41, 0x21, 0x7c, 0xf2, 0x78, 0xac, 0x57, 0xcb, 0x21, 0xac, 0xd0, 0x9d, 0x99, 0x16, 0xcc, 0x6a, 0xf0, 0xac, 0x46, 0x94, 0x1e, 0xa1, 0x39, 0xd5, 0x45, };
2435 static const u8 ed25519_106_test_vectors_message[] = {
2436 	0xc1, 0xfa, 0xe6, 0x26, 0x2a, 0x0e, 0x98, 0xa6, 0xb1, 0x23, 0x5f, 0xcb, 0x62, 0x28, 0x3b, 0x7f, 0x0a, 0x09, 0x7f, 0x9d, 0x00, 0x24, 0x16, 0xd3, 0x18, 0xfe, 0xfc, 0x60, 0xc5, 0xa1, 0x58, 0x4f, 0x90, 0x0a, 0xd0, 0xab, 0x26, 0xcc, 0xfa, 0xe0, 0xd6, 0xd8, 0x4a, 0xa9, 0xaa, 0x2d, 0xf1, 0x6d, 0x4c, 0x11, 0x7e, 0xa2, 0x72, 0x46, 0x76, 0xcb, 0x86, 0x6d, 0x48, 0x70, 0xa8, 0x72, 0xfc, 0x82, 0x9a, 0x7c, 0x2a, 0x5d, 0x21, 0xba, 0x83, 0x34, 0x0a, 0xdb, 0x33, 0x9a, 0x34, 0xc5, 0x18, 0x4c, 0x7f, 0x5e, 0xad, 0x0f, 0x07, 0x72, 0x89, 0xb3, 0x36, 0x77, 0xed, 0x6a, 0x1b, 0xa3, 0x4b, 0xe1, 0x99, 0x4e, 0x25, 0x76, 0x3b, 0xd1, 0xd9, 0xfa, 0xec, };
2437 static const u8 ed25519_106_test_vectors_expected_sig[] = {
2438 	0xbc, 0x33, 0x64, 0xc1, 0x52, 0xee, 0x5c, 0x80, 0x8a, 0xc3, 0x40, 0xf4, 0x9e, 0xa2, 0xcc, 0x40, 0x4e, 0x93, 0x51, 0x71, 0x21, 0x22, 0x0c, 0xce, 0x6f, 0x7c, 0x30, 0xa2, 0x25, 0x00, 0xe4, 0x1b, 0xcd, 0xb6, 0xe8, 0x20, 0x48, 0x0f, 0x8f, 0xcc, 0xdd, 0x22, 0xff, 0x9a, 0xd9, 0x6d, 0xa5, 0x32, 0x80, 0x2f, 0x43, 0x1e, 0x94, 0x24, 0x0f, 0xb8, 0x3d, 0x4b, 0xce, 0xaa, 0x09, 0xb9, 0x2b, 0x0d, };
2439 static const ec_test_case ed25519_106_test_case = {
2440 	.name = "EDDSA25519-SHA512/wei25519 106",
2441 	.ec_str_p = &wei25519_str_params,
2442 	.priv_key = ed25519_106_test_vectors_priv_key,
2443 	.priv_key_len = sizeof(ed25519_106_test_vectors_priv_key),
2444 	.nn_random = NULL,
2445 	.hash_type = SHA512,
2446 	.msg = (const char *)ed25519_106_test_vectors_message,
2447 	.msglen = sizeof(ed25519_106_test_vectors_message),
2448 	.sig_type = EDDSA25519,
2449 	.exp_sig = ed25519_106_test_vectors_expected_sig,
2450 	.exp_siglen = sizeof(ed25519_106_test_vectors_expected_sig),
2451 	.adata = NULL,
2452 	.adata_len = 0
2453 };
2454 
2455 /************************************************/
2456 static const u8 ed25519_107_test_vectors_priv_key[] = {
2457 	0x7a, 0x5a, 0xc6, 0x02, 0xde, 0x19, 0xf3, 0xc2, 0x10, 0x40, 0xbc, 0xdd, 0xbf, 0xf4, 0x2f, 0x6a, 0xee, 0x6f, 0x95, 0xc1, 0xb0, 0x93, 0x86, 0x8f, 0x48, 0xe5, 0x04, 0x82, 0xdb, 0xf4, 0xf9, 0xc7, };
2458 static const u8 ed25519_107_test_vectors_message[] = {
2459 	0xbd, 0x16, 0x85, 0x41, 0x92, 0x79, 0xeb, 0x81, 0xe4, 0xcf, 0x3c, 0x90, 0x90, 0x31, 0xf0, 0xf0, 0x9c, 0x5f, 0xfa, 0xe7, 0xe2, 0xce, 0x6b, 0xa9, 0xd9, 0x6c, 0x2b, 0xce, 0x87, 0xb8, 0xba, 0x0d, 0xd7, 0x63, 0x23, 0x10, 0x01, 0xe5, 0x32, 0xc7, 0xdd, 0xd6, 0x21, 0x03, 0xab, 0xf7, 0x01, 0x28, 0x8e, 0x19, 0xdd, 0x8f, 0x53, 0x02, 0xe8, 0xf5, 0xd3, 0x1b, 0x64, 0xcc, 0x33, 0x9b, 0xd8, 0xb7, 0xa9, 0x55, 0x50, 0xc8, 0xa1, 0x16, 0xfd, 0x48, 0x69, 0x48, 0x77, 0x2b, 0xd5, 0xaf, 0x8d, 0xfd, 0x46, 0x00, 0x1c, 0x59, 0x76, 0x7b, 0x0d, 0x6b, 0xdc, 0xe3, 0x83, 0xa7, 0x07, 0x89, 0x92, 0xd1, 0x02, 0x2f, 0xbc, 0xaf, 0x90, 0x71, 0x06, 0x87, 0xb9, 0xaa, };
2460 static const u8 ed25519_107_test_vectors_expected_sig[] = {
2461 	0x84, 0x10, 0x1d, 0xd4, 0xb5, 0xe8, 0xca, 0x3e, 0xd9, 0x8c, 0x1e, 0x8a, 0x06, 0xe1, 0x1d, 0x7e, 0x42, 0x4b, 0x0d, 0x12, 0xca, 0x71, 0x4e, 0xe7, 0x37, 0x4b, 0x64, 0xc2, 0x9d, 0x51, 0xa2, 0x02, 0x1c, 0xc7, 0x7a, 0xc7, 0x53, 0x89, 0xd9, 0xb0, 0xa6, 0x46, 0xa4, 0x47, 0x62, 0x3d, 0x7d, 0x04, 0xd1, 0x24, 0x18, 0x66, 0xb0, 0xca, 0x6e, 0xdd, 0x1b, 0x7a, 0xc0, 0x15, 0x66, 0x6b, 0x70, 0x0d, };
2462 static const ec_test_case ed25519_107_test_case = {
2463 	.name = "EDDSA25519-SHA512/wei25519 107",
2464 	.ec_str_p = &wei25519_str_params,
2465 	.priv_key = ed25519_107_test_vectors_priv_key,
2466 	.priv_key_len = sizeof(ed25519_107_test_vectors_priv_key),
2467 	.nn_random = NULL,
2468 	.hash_type = SHA512,
2469 	.msg = (const char *)ed25519_107_test_vectors_message,
2470 	.msglen = sizeof(ed25519_107_test_vectors_message),
2471 	.sig_type = EDDSA25519,
2472 	.exp_sig = ed25519_107_test_vectors_expected_sig,
2473 	.exp_siglen = sizeof(ed25519_107_test_vectors_expected_sig),
2474 	.adata = NULL,
2475 	.adata_len = 0
2476 };
2477 
2478 /************************************************/
2479 static const u8 ed25519_108_test_vectors_priv_key[] = {
2480 	0x50, 0x41, 0x4c, 0xf5, 0x49, 0xbc, 0xc5, 0x5b, 0x5b, 0x6b, 0x75, 0xea, 0x37, 0x82, 0xb2, 0xea, 0x7c, 0x08, 0x7b, 0x6a, 0x01, 0x06, 0x17, 0x5e, 0x46, 0x9c, 0xa2, 0xcc, 0x76, 0x4a, 0xeb, 0x01, };
2481 static const u8 ed25519_108_test_vectors_message[] = {
2482 	0x75, 0xad, 0x77, 0xe8, 0xc5, 0x4b, 0x0b, 0x05, 0xfb, 0x2d, 0x16, 0x2e, 0x7c, 0xad, 0xb8, 0xa7, 0x52, 0x80, 0x81, 0xb8, 0x63, 0xf7, 0x6a, 0x44, 0x1b, 0x37, 0x44, 0x69, 0x41, 0x3e, 0x57, 0x14, 0xed, 0xf5, 0x4f, 0x80, 0x04, 0x96, 0xaf, 0x01, 0x57, 0xc1, 0x7e, 0x42, 0x55, 0x83, 0x41, 0x4d, 0x43, 0x61, 0xf2, 0x13, 0x41, 0x71, 0xc0, 0xb8, 0x7c, 0x22, 0xce, 0x68, 0x20, 0xa4, 0x85, 0x0a, 0xb4, 0x9d, 0x99, 0xa9, 0xba, 0xdc, 0xe9, 0xe3, 0x61, 0x10, 0xe7, 0xf3, 0x06, 0x01, 0x18, 0xb3, 0x59, 0x0f, 0x82, 0xb4, 0x37, 0x71, 0xe9, 0xfb, 0xb0, 0x81, 0xaf, 0xe6, 0x22, 0x27, 0xe0, 0x24, 0xd9, 0x8d, 0xe6, 0xcd, 0xec, 0x02, 0x8d, 0x7c, 0x49, 0x49, 0x0d, };
2483 static const u8 ed25519_108_test_vectors_expected_sig[] = {
2484 	0xb3, 0x09, 0x80, 0x01, 0x60, 0xde, 0x43, 0xa6, 0x3a, 0x89, 0xa0, 0xac, 0xb8, 0xa6, 0x05, 0x00, 0x59, 0x58, 0x9b, 0x3e, 0xae, 0xca, 0xc2, 0x0b, 0x25, 0x6f, 0xec, 0xe4, 0x38, 0x04, 0x2f, 0x69, 0x41, 0x5d, 0x8a, 0x56, 0x88, 0x3e, 0xe3, 0x83, 0x6d, 0x31, 0x34, 0xa7, 0xfc, 0x1d, 0xe6, 0x4f, 0xa8, 0xc8, 0xce, 0xcc, 0x3c, 0xe2, 0x75, 0x89, 0xf6, 0x06, 0x05, 0x88, 0x20, 0x85, 0x7a, 0x0c, };
2485 static const ec_test_case ed25519_108_test_case = {
2486 	.name = "EDDSA25519-SHA512/wei25519 108",
2487 	.ec_str_p = &wei25519_str_params,
2488 	.priv_key = ed25519_108_test_vectors_priv_key,
2489 	.priv_key_len = sizeof(ed25519_108_test_vectors_priv_key),
2490 	.nn_random = NULL,
2491 	.hash_type = SHA512,
2492 	.msg = (const char *)ed25519_108_test_vectors_message,
2493 	.msglen = sizeof(ed25519_108_test_vectors_message),
2494 	.sig_type = EDDSA25519,
2495 	.exp_sig = ed25519_108_test_vectors_expected_sig,
2496 	.exp_siglen = sizeof(ed25519_108_test_vectors_expected_sig),
2497 	.adata = NULL,
2498 	.adata_len = 0
2499 };
2500 
2501 /************************************************/
2502 static const u8 ed25519_109_test_vectors_priv_key[] = {
2503 	0x93, 0xcb, 0x00, 0xd8, 0xfe, 0x9c, 0x97, 0x77, 0xa6, 0x83, 0x63, 0x1f, 0x39, 0xba, 0x0f, 0x48, 0x76, 0x14, 0x82, 0xcf, 0x1c, 0x36, 0x6b, 0xd8, 0x63, 0xcf, 0x71, 0x51, 0x01, 0x53, 0x25, 0x55, };
2504 static const u8 ed25519_109_test_vectors_message[] = {
2505 	0x88, 0xd8, 0x53, 0x8d, 0x31, 0x86, 0x78, 0x13, 0xd8, 0x8f, 0xef, 0x72, 0x28, 0xd4, 0x9a, 0x7e, 0x95, 0x0d, 0x73, 0x83, 0x96, 0xf1, 0x16, 0xdd, 0xa1, 0x02, 0x5f, 0x79, 0x13, 0x54, 0x7c, 0x5d, 0x1d, 0xc5, 0x67, 0x7a, 0x6d, 0xe4, 0xb4, 0xa5, 0x88, 0x05, 0x07, 0xb3, 0x61, 0x78, 0x0b, 0x61, 0xb4, 0x3f, 0x77, 0x95, 0x26, 0x3d, 0xb2, 0x2f, 0xf3, 0x41, 0x64, 0x5f, 0x2f, 0x59, 0x14, 0xfd, 0x60, 0x88, 0xc2, 0x81, 0x12, 0x11, 0xed, 0x47, 0x56, 0xac, 0x01, 0x9a, 0x60, 0x35, 0xd6, 0x6e, 0x31, 0x70, 0xc1, 0xd8, 0x2b, 0xfa, 0xa3, 0x05, 0x96, 0xb3, 0x96, 0xb3, 0x26, 0x0c, 0xc1, 0xd1, 0x0d, 0x41, 0x3d, 0xd4, 0x7e, 0xbe, 0x6d, 0xaa, 0x0c, 0x30, 0xdc, 0x42, };
2506 static const u8 ed25519_109_test_vectors_expected_sig[] = {
2507 	0x09, 0x82, 0x4f, 0xa2, 0xdf, 0xbc, 0x4d, 0x6e, 0xf7, 0x6a, 0x9e, 0x41, 0x45, 0x96, 0x11, 0x16, 0x76, 0x91, 0x30, 0x55, 0x3b, 0x3e, 0xdf, 0xfa, 0x50, 0xd0, 0x4f, 0x39, 0xb8, 0xb7, 0x9f, 0xac, 0xbd, 0x23, 0x7a, 0xcf, 0x71, 0x35, 0x4a, 0x53, 0xa6, 0xe5, 0xfe, 0xe7, 0x54, 0xe8, 0x23, 0xb0, 0xb2, 0x90, 0xf9, 0x61, 0x93, 0x20, 0xa1, 0x3d, 0x56, 0x12, 0x69, 0xa2, 0x21, 0x63, 0x9f, 0x03, };
2508 static const ec_test_case ed25519_109_test_case = {
2509 	.name = "EDDSA25519-SHA512/wei25519 109",
2510 	.ec_str_p = &wei25519_str_params,
2511 	.priv_key = ed25519_109_test_vectors_priv_key,
2512 	.priv_key_len = sizeof(ed25519_109_test_vectors_priv_key),
2513 	.nn_random = NULL,
2514 	.hash_type = SHA512,
2515 	.msg = (const char *)ed25519_109_test_vectors_message,
2516 	.msglen = sizeof(ed25519_109_test_vectors_message),
2517 	.sig_type = EDDSA25519,
2518 	.exp_sig = ed25519_109_test_vectors_expected_sig,
2519 	.exp_siglen = sizeof(ed25519_109_test_vectors_expected_sig),
2520 	.adata = NULL,
2521 	.adata_len = 0
2522 };
2523 
2524 /************************************************/
2525 static const u8 ed25519_110_test_vectors_priv_key[] = {
2526 	0x2b, 0x4c, 0xae, 0x38, 0x0e, 0x95, 0xce, 0x69, 0x4c, 0x26, 0xac, 0x79, 0x57, 0x44, 0x73, 0x47, 0xf9, 0x8e, 0x31, 0xb4, 0xbf, 0x02, 0xd7, 0x44, 0xe1, 0x31, 0x52, 0x90, 0x71, 0xe2, 0x30, 0x1d, };
2527 static const u8 ed25519_110_test_vectors_message[] = {
2528 	0xe0, 0xb8, 0x25, 0x0e, 0x27, 0xb7, 0xc0, 0x29, 0x1d, 0xbc, 0x47, 0xa6, 0xda, 0x6f, 0x12, 0x68, 0x98, 0x7a, 0xfd, 0xf0, 0xa1, 0xe9, 0x0b, 0xe6, 0x9b, 0xcb, 0xc4, 0x37, 0x08, 0x65, 0x21, 0x78, 0x30, 0xd5, 0x20, 0x86, 0x93, 0xbe, 0x7b, 0x70, 0x45, 0x09, 0x9a, 0x22, 0xea, 0x27, 0xf9, 0x52, 0xeb, 0x3f, 0x79, 0xa9, 0xa0, 0xf1, 0xb5, 0xa8, 0x7b, 0x19, 0x36, 0x77, 0x90, 0x78, 0x8d, 0x34, 0xc2, 0x19, 0xc2, 0xe2, 0xa6, 0xb8, 0x34, 0x02, 0x0f, 0xb4, 0xfd, 0x14, 0x9d, 0xc5, 0x6b, 0x54, 0x4f, 0xdd, 0xbb, 0x42, 0x07, 0x1a, 0x16, 0x2f, 0xc7, 0xcb, 0x33, 0xc1, 0x46, 0xca, 0xc0, 0x5a, 0x31, 0xb1, 0x83, 0xe9, 0xda, 0xad, 0xc6, 0x16, 0xf3, 0xaf, 0x44, 0x9b, 0x17, };
2529 static const u8 ed25519_110_test_vectors_expected_sig[] = {
2530 	0x55, 0x5e, 0x45, 0x65, 0x6b, 0xa9, 0xcf, 0xbf, 0x51, 0x55, 0xd0, 0xe5, 0x25, 0x76, 0xe5, 0x19, 0x7a, 0xbb, 0xbc, 0x9d, 0xd2, 0x33, 0x99, 0x3e, 0xec, 0x2a, 0x1e, 0xe7, 0xf6, 0xa8, 0x64, 0x09, 0xc0, 0xb7, 0x1b, 0x0a, 0x66, 0x19, 0x78, 0xff, 0x5e, 0x0a, 0xcd, 0xc9, 0x46, 0x3d, 0xc4, 0x49, 0x90, 0x6f, 0x47, 0x4f, 0x8e, 0x79, 0xbb, 0x86, 0x16, 0x8b, 0xf7, 0x07, 0x41, 0xe3, 0x4b, 0x02, };
2531 static const ec_test_case ed25519_110_test_case = {
2532 	.name = "EDDSA25519-SHA512/wei25519 110",
2533 	.ec_str_p = &wei25519_str_params,
2534 	.priv_key = ed25519_110_test_vectors_priv_key,
2535 	.priv_key_len = sizeof(ed25519_110_test_vectors_priv_key),
2536 	.nn_random = NULL,
2537 	.hash_type = SHA512,
2538 	.msg = (const char *)ed25519_110_test_vectors_message,
2539 	.msglen = sizeof(ed25519_110_test_vectors_message),
2540 	.sig_type = EDDSA25519,
2541 	.exp_sig = ed25519_110_test_vectors_expected_sig,
2542 	.exp_siglen = sizeof(ed25519_110_test_vectors_expected_sig),
2543 	.adata = NULL,
2544 	.adata_len = 0
2545 };
2546 
2547 /************************************************/
2548 static const u8 ed25519_111_test_vectors_priv_key[] = {
2549 	0xb5, 0x64, 0x91, 0xe5, 0x49, 0x99, 0xbb, 0x5a, 0x17, 0x15, 0xeb, 0xfa, 0x2f, 0xeb, 0x14, 0xa5, 0x45, 0xa3, 0xa4, 0x3c, 0x2f, 0xdf, 0xd4, 0xbe, 0x0c, 0x95, 0xfc, 0x11, 0x81, 0x9a, 0xd6, 0x95, };
2550 static const u8 ed25519_111_test_vectors_message[] = {
2551 	0xeb, 0x44, 0x18, 0xba, 0x30, 0x68, 0x3e, 0xc7, 0x95, 0x9b, 0xdb, 0x1e, 0xc7, 0xb2, 0x63, 0xf8, 0x3e, 0x81, 0xf0, 0x54, 0xdd, 0xcd, 0xbe, 0x0a, 0x67, 0x38, 0xca, 0x77, 0x63, 0xe2, 0x46, 0x93, 0x5b, 0xac, 0x41, 0x90, 0x26, 0xc2, 0x2b, 0xfb, 0xdd, 0x12, 0x36, 0x33, 0x6c, 0xc1, 0x61, 0x07, 0xc5, 0x35, 0x13, 0xe3, 0xdd, 0xf3, 0x4e, 0x12, 0x08, 0x46, 0x96, 0x2c, 0x3b, 0xdd, 0x54, 0xf5, 0xad, 0x57, 0x49, 0x59, 0x72, 0x08, 0xf1, 0x5a, 0x8b, 0xb5, 0x66, 0x67, 0xba, 0xa8, 0x95, 0xf0, 0x83, 0x40, 0xdb, 0x89, 0xb8, 0x5c, 0x43, 0x5e, 0x77, 0x09, 0x31, 0x92, 0x8d, 0x8a, 0xbc, 0x99, 0x26, 0x2f, 0x83, 0x9a, 0xed, 0xd9, 0xbe, 0x2a, 0xa1, 0x38, 0xc9, 0x25, 0x9a, 0xdf, };
2552 static const u8 ed25519_111_test_vectors_expected_sig[] = {
2553 	0xe3, 0xbe, 0x3e, 0x71, 0xa8, 0x98, 0x52, 0xdf, 0x3c, 0xff, 0xd7, 0x2d, 0x68, 0x20, 0x78, 0x69, 0xdd, 0x3e, 0xce, 0xb4, 0x9b, 0x1f, 0x02, 0x94, 0x93, 0xec, 0xcb, 0xb9, 0x32, 0x44, 0x4e, 0xbe, 0x8c, 0x8c, 0x6d, 0xb5, 0xf0, 0xa5, 0xa6, 0x7e, 0x21, 0x94, 0x40, 0x8d, 0xf9, 0x84, 0x19, 0x13, 0xa5, 0xac, 0x1a, 0x60, 0x68, 0x96, 0x41, 0x9a, 0x66, 0x8f, 0x4f, 0x47, 0xc5, 0x6c, 0x2b, 0x08, };
2554 static const ec_test_case ed25519_111_test_case = {
2555 	.name = "EDDSA25519-SHA512/wei25519 111",
2556 	.ec_str_p = &wei25519_str_params,
2557 	.priv_key = ed25519_111_test_vectors_priv_key,
2558 	.priv_key_len = sizeof(ed25519_111_test_vectors_priv_key),
2559 	.nn_random = NULL,
2560 	.hash_type = SHA512,
2561 	.msg = (const char *)ed25519_111_test_vectors_message,
2562 	.msglen = sizeof(ed25519_111_test_vectors_message),
2563 	.sig_type = EDDSA25519,
2564 	.exp_sig = ed25519_111_test_vectors_expected_sig,
2565 	.exp_siglen = sizeof(ed25519_111_test_vectors_expected_sig),
2566 	.adata = NULL,
2567 	.adata_len = 0
2568 };
2569 
2570 /************************************************/
2571 static const u8 ed25519_112_test_vectors_priv_key[] = {
2572 	0x65, 0x79, 0xc2, 0x47, 0xdd, 0x2c, 0xd0, 0x2b, 0xa2, 0xf7, 0xd7, 0xa9, 0x50, 0xa3, 0x30, 0x75, 0x26, 0x81, 0xe9, 0x2c, 0x0d, 0xc6, 0x29, 0x84, 0xbb, 0xea, 0x27, 0x9e, 0xa5, 0x21, 0xc3, 0x81, };
2573 static const u8 ed25519_112_test_vectors_message[] = {
2574 	0xdf, 0x7c, 0x55, 0x2f, 0xfc, 0x89, 0x37, 0x4b, 0x95, 0x71, 0xa6, 0x02, 0x4a, 0x8d, 0x04, 0x71, 0xd7, 0xeb, 0x6b, 0xe8, 0xdf, 0xca, 0x6f, 0x41, 0x66, 0xb5, 0x81, 0xb6, 0x54, 0x79, 0x01, 0x5a, 0x05, 0x68, 0x12, 0x90, 0x74, 0xcc, 0x04, 0xd6, 0x34, 0x2c, 0x75, 0x8c, 0xa1, 0x8f, 0x79, 0x87, 0xde, 0xc5, 0x36, 0xb7, 0x03, 0x3d, 0x5f, 0x96, 0x81, 0x50, 0x43, 0x40, 0xe2, 0x09, 0x86, 0xf0, 0x27, 0xb8, 0xcf, 0x1f, 0x26, 0x3b, 0xe7, 0x6d, 0xb3, 0x52, 0x5d, 0x17, 0x34, 0x22, 0x95, 0x0e, 0xa8, 0xdc, 0xed, 0xdc, 0x58, 0x56, 0x40, 0x91, 0x8a, 0xa9, 0xd2, 0x5c, 0xa8, 0x9c, 0xba, 0x70, 0x1c, 0x20, 0x20, 0x15, 0x38, 0x73, 0xf4, 0x61, 0x08, 0xc7, 0x72, 0xcb, 0x38, 0x8d, 0x55, };
2575 static const u8 ed25519_112_test_vectors_expected_sig[] = {
2576 	0xec, 0xca, 0xf8, 0x01, 0xae, 0x0a, 0x91, 0x2e, 0x21, 0xc6, 0xb8, 0x3a, 0x5f, 0x0e, 0x4e, 0x88, 0xd4, 0xb2, 0x71, 0x34, 0x59, 0xff, 0x93, 0x44, 0x9f, 0xc0, 0xb2, 0x1a, 0x9f, 0x41, 0x60, 0x50, 0x11, 0x3c, 0xba, 0xe4, 0xe8, 0x14, 0xd2, 0x0c, 0x0a, 0x79, 0x8f, 0x76, 0xd2, 0xf9, 0xd3, 0x26, 0xed, 0x83, 0x95, 0x9e, 0xa0, 0x2a, 0xbd, 0xc1, 0xab, 0x35, 0x0a, 0x46, 0x71, 0x23, 0xf7, 0x09, };
2577 static const ec_test_case ed25519_112_test_case = {
2578 	.name = "EDDSA25519-SHA512/wei25519 112",
2579 	.ec_str_p = &wei25519_str_params,
2580 	.priv_key = ed25519_112_test_vectors_priv_key,
2581 	.priv_key_len = sizeof(ed25519_112_test_vectors_priv_key),
2582 	.nn_random = NULL,
2583 	.hash_type = SHA512,
2584 	.msg = (const char *)ed25519_112_test_vectors_message,
2585 	.msglen = sizeof(ed25519_112_test_vectors_message),
2586 	.sig_type = EDDSA25519,
2587 	.exp_sig = ed25519_112_test_vectors_expected_sig,
2588 	.exp_siglen = sizeof(ed25519_112_test_vectors_expected_sig),
2589 	.adata = NULL,
2590 	.adata_len = 0
2591 };
2592 
2593 /************************************************/
2594 static const u8 ed25519_113_test_vectors_priv_key[] = {
2595 	0x18, 0xfb, 0xa6, 0x0c, 0x50, 0x26, 0xf3, 0xc9, 0xdd, 0x7a, 0xed, 0xc0, 0x42, 0x09, 0xd5, 0x26, 0x03, 0x61, 0xde, 0x40, 0x0e, 0x19, 0x0a, 0xeb, 0x60, 0x16, 0x9e, 0x05, 0xa3, 0x36, 0x7c, 0x9f, };
2596 static const u8 ed25519_113_test_vectors_message[] = {
2597 	0x34, 0xf0, 0x8a, 0x80, 0x4d, 0x78, 0x29, 0xcc, 0x39, 0x14, 0xf0, 0x00, 0xce, 0x1a, 0x32, 0x88, 0xac, 0xce, 0x21, 0x49, 0xc8, 0xa0, 0x20, 0x86, 0xb9, 0xf6, 0x7a, 0xfc, 0xcd, 0x83, 0xa1, 0x78, 0xb0, 0xbc, 0xfd, 0x49, 0x70, 0xc0, 0x56, 0x99, 0x7d, 0xa7, 0xdc, 0x3d, 0x47, 0x56, 0x2f, 0x16, 0x66, 0x3c, 0xed, 0xc5, 0x2f, 0x82, 0xd7, 0x10, 0x85, 0x0c, 0xf4, 0x05, 0x03, 0x79, 0xef, 0xda, 0xc2, 0x3b, 0xee, 0x17, 0xc3, 0x30, 0xa3, 0x83, 0xad, 0x13, 0x7f, 0x78, 0x84, 0x73, 0xb2, 0xb0, 0x72, 0x36, 0x03, 0xb6, 0xde, 0xb1, 0xfd, 0xbf, 0x6c, 0x52, 0x3f, 0xc9, 0x48, 0xa0, 0xcc, 0xc4, 0xff, 0x10, 0x0f, 0xb9, 0x46, 0xd8, 0x74, 0xc1, 0xf9, 0x90, 0x43, 0x6a, 0xe8, 0xc4, 0xf3, 0xb2, };
2598 static const u8 ed25519_113_test_vectors_expected_sig[] = {
2599 	0x4b, 0xc0, 0x11, 0xe4, 0x0f, 0x0f, 0x59, 0xc6, 0x18, 0xf6, 0xbb, 0xe2, 0x30, 0xb6, 0xf7, 0xbc, 0x2f, 0x50, 0xe3, 0x61, 0x7c, 0x7f, 0xaa, 0xb7, 0xf4, 0xc2, 0x1c, 0xb8, 0x4f, 0x77, 0xeb, 0xa9, 0x94, 0xcb, 0x7c, 0x2a, 0x1b, 0xf1, 0x0b, 0x01, 0xbb, 0x20, 0x08, 0x44, 0x97, 0xfd, 0xf0, 0xa6, 0xab, 0x5d, 0x9b, 0xcd, 0x22, 0xc4, 0xa2, 0xc5, 0xa7, 0x8f, 0x79, 0x92, 0x68, 0x25, 0x94, 0x0f, };
2600 static const ec_test_case ed25519_113_test_case = {
2601 	.name = "EDDSA25519-SHA512/wei25519 113",
2602 	.ec_str_p = &wei25519_str_params,
2603 	.priv_key = ed25519_113_test_vectors_priv_key,
2604 	.priv_key_len = sizeof(ed25519_113_test_vectors_priv_key),
2605 	.nn_random = NULL,
2606 	.hash_type = SHA512,
2607 	.msg = (const char *)ed25519_113_test_vectors_message,
2608 	.msglen = sizeof(ed25519_113_test_vectors_message),
2609 	.sig_type = EDDSA25519,
2610 	.exp_sig = ed25519_113_test_vectors_expected_sig,
2611 	.exp_siglen = sizeof(ed25519_113_test_vectors_expected_sig),
2612 	.adata = NULL,
2613 	.adata_len = 0
2614 };
2615 
2616 /************************************************/
2617 static const u8 ed25519_114_test_vectors_priv_key[] = {
2618 	0x07, 0x3c, 0xc1, 0x5b, 0x05, 0x36, 0x28, 0x59, 0x33, 0xb2, 0xbe, 0x39, 0x25, 0x3c, 0xf4, 0xfd, 0x69, 0x6b, 0x81, 0x61, 0x0f, 0x5d, 0xd3, 0xad, 0xac, 0x2e, 0x9c, 0xbf, 0x33, 0x8e, 0xf2, 0xf6, };
2619 static const u8 ed25519_114_test_vectors_message[] = {
2620 	0xc2, 0x85, 0x36, 0x2b, 0xc8, 0xef, 0x62, 0x8f, 0x7a, 0xed, 0xf6, 0x54, 0x23, 0x1e, 0xe5, 0x1a, 0xcd, 0xf2, 0xcf, 0x69, 0xa8, 0x86, 0xb9, 0x42, 0xbb, 0x9b, 0xfe, 0xd8, 0x15, 0x51, 0x05, 0xd9, 0x20, 0x9d, 0xed, 0x2a, 0xf2, 0x4f, 0x16, 0x9a, 0xd5, 0xfc, 0xd4, 0x51, 0x37, 0x0f, 0x58, 0x27, 0xa8, 0x51, 0x11, 0xc7, 0xa5, 0x2e, 0x03, 0x2c, 0x50, 0x38, 0x61, 0x7c, 0x0c, 0x01, 0x70, 0xe2, 0xa6, 0xc2, 0x31, 0xdc, 0x40, 0x1d, 0x12, 0x06, 0x2e, 0xdb, 0x18, 0x60, 0x36, 0x11, 0x4e, 0x38, 0x79, 0x3b, 0x79, 0x08, 0x90, 0x77, 0x58, 0x1b, 0x97, 0x83, 0xf4, 0x00, 0x07, 0x10, 0x3e, 0xf1, 0x74, 0x72, 0x49, 0x1c, 0x00, 0xe7, 0x13, 0x8a, 0xec, 0xc5, 0x08, 0x4d, 0x3c, 0x85, 0x01, 0x04, 0x70, };
2621 static const u8 ed25519_114_test_vectors_expected_sig[] = {
2622 	0x3a, 0xa5, 0x2a, 0x83, 0x06, 0x2a, 0x8f, 0x28, 0xa5, 0xd6, 0xb7, 0x60, 0x7f, 0x48, 0x4b, 0x66, 0xcc, 0x37, 0x48, 0x96, 0xb7, 0x66, 0x12, 0x31, 0x26, 0x33, 0x3c, 0x57, 0x95, 0x81, 0x31, 0x6c, 0x74, 0x28, 0x06, 0xf6, 0x27, 0xb5, 0xbc, 0x55, 0xca, 0xd7, 0x05, 0xcc, 0x1d, 0x47, 0x82, 0xb0, 0x44, 0x08, 0x0c, 0x8a, 0xc8, 0x40, 0xf3, 0x8c, 0x0c, 0x50, 0xd3, 0x5e, 0x34, 0x5c, 0x78, 0x03, };
2623 static const ec_test_case ed25519_114_test_case = {
2624 	.name = "EDDSA25519-SHA512/wei25519 114",
2625 	.ec_str_p = &wei25519_str_params,
2626 	.priv_key = ed25519_114_test_vectors_priv_key,
2627 	.priv_key_len = sizeof(ed25519_114_test_vectors_priv_key),
2628 	.nn_random = NULL,
2629 	.hash_type = SHA512,
2630 	.msg = (const char *)ed25519_114_test_vectors_message,
2631 	.msglen = sizeof(ed25519_114_test_vectors_message),
2632 	.sig_type = EDDSA25519,
2633 	.exp_sig = ed25519_114_test_vectors_expected_sig,
2634 	.exp_siglen = sizeof(ed25519_114_test_vectors_expected_sig),
2635 	.adata = NULL,
2636 	.adata_len = 0
2637 };
2638 
2639 /************************************************/
2640 static const u8 ed25519_115_test_vectors_priv_key[] = {
2641 	0xfd, 0x89, 0x4a, 0x1e, 0x82, 0x32, 0x20, 0x3b, 0x28, 0x95, 0x05, 0xd5, 0xc6, 0x8c, 0x68, 0x79, 0x1f, 0xfc, 0x0e, 0x54, 0xf2, 0xa8, 0x75, 0x30, 0xfb, 0xba, 0x5b, 0x3a, 0x3f, 0x2c, 0xaf, 0x00, };
2642 static const u8 ed25519_115_test_vectors_message[] = {
2643 	0x26, 0x69, 0x62, 0x4a, 0x94, 0xf2, 0xc4, 0x4a, 0x05, 0xb7, 0xdc, 0x3e, 0xbf, 0x93, 0xe5, 0x8a, 0x4b, 0xf3, 0xa0, 0x1c, 0x27, 0x36, 0x57, 0xe7, 0xe7, 0x87, 0x89, 0x76, 0xf6, 0xb6, 0xea, 0x73, 0x7f, 0xa3, 0xf2, 0x2c, 0xc8, 0x36, 0x5b, 0x8b, 0x22, 0x0c, 0x00, 0x7d, 0x5b, 0x64, 0x27, 0x26, 0xa4, 0x08, 0xfe, 0x2f, 0xab, 0x69, 0xeb, 0xb3, 0xbd, 0x07, 0x2b, 0x34, 0x9f, 0x4d, 0xc3, 0x37, 0x7e, 0xe7, 0xcc, 0x75, 0x29, 0x34, 0x25, 0x42, 0x15, 0xd2, 0x39, 0x89, 0xbd, 0x3c, 0xd0, 0x2c, 0xe9, 0x99, 0xad, 0xec, 0x97, 0x84, 0x99, 0x3f, 0x4c, 0x19, 0x94, 0x08, 0x15, 0xf3, 0x9c, 0x9e, 0x22, 0x92, 0x47, 0xf5, 0x20, 0x5c, 0x36, 0xcb, 0xa4, 0x4e, 0x71, 0x42, 0x66, 0x36, 0x92, 0x89, 0xb4, 0xa7, };
2644 static const u8 ed25519_115_test_vectors_expected_sig[] = {
2645 	0xf5, 0x11, 0x02, 0x21, 0x9e, 0x88, 0x04, 0xbe, 0x71, 0x3e, 0x55, 0x6d, 0xf4, 0xe4, 0xaf, 0xa2, 0xf8, 0x86, 0x6f, 0xe8, 0x65, 0x41, 0xa1, 0xc2, 0xa0, 0x93, 0x4d, 0x24, 0xc3, 0xc9, 0xbe, 0xb2, 0x80, 0xa7, 0x0d, 0xd8, 0xd5, 0x27, 0xfe, 0x8b, 0x7e, 0x0b, 0x94, 0x82, 0x14, 0xd5, 0xf2, 0xf9, 0x63, 0x86, 0x19, 0x91, 0x4b, 0x72, 0xd5, 0x5d, 0xc1, 0x98, 0xb0, 0x22, 0x9a, 0x84, 0x87, 0x08, };
2646 static const ec_test_case ed25519_115_test_case = {
2647 	.name = "EDDSA25519-SHA512/wei25519 115",
2648 	.ec_str_p = &wei25519_str_params,
2649 	.priv_key = ed25519_115_test_vectors_priv_key,
2650 	.priv_key_len = sizeof(ed25519_115_test_vectors_priv_key),
2651 	.nn_random = NULL,
2652 	.hash_type = SHA512,
2653 	.msg = (const char *)ed25519_115_test_vectors_message,
2654 	.msglen = sizeof(ed25519_115_test_vectors_message),
2655 	.sig_type = EDDSA25519,
2656 	.exp_sig = ed25519_115_test_vectors_expected_sig,
2657 	.exp_siglen = sizeof(ed25519_115_test_vectors_expected_sig),
2658 	.adata = NULL,
2659 	.adata_len = 0
2660 };
2661 
2662 /************************************************/
2663 static const u8 ed25519_116_test_vectors_priv_key[] = {
2664 	0x18, 0xef, 0x46, 0x4e, 0x28, 0xf8, 0x7f, 0xfc, 0xfa, 0x4d, 0x3a, 0x9c, 0x09, 0xa2, 0x29, 0x10, 0x95, 0x1b, 0x8c, 0x71, 0x9f, 0xda, 0xcd, 0xb5, 0x6d, 0xe6, 0x2c, 0x4b, 0x40, 0x6d, 0xf0, 0x0c, };
2665 static const u8 ed25519_116_test_vectors_message[] = {
2666 	0x9c, 0x82, 0x57, 0x07, 0xd9, 0x35, 0x83, 0x65, 0xab, 0x9d, 0x38, 0xf7, 0xe7, 0x28, 0xd6, 0x28, 0xaa, 0x72, 0x2a, 0x4f, 0x1a, 0x20, 0xa3, 0x8e, 0x47, 0xc9, 0x99, 0xff, 0xf8, 0xfc, 0x32, 0x41, 0x7f, 0xbe, 0x07, 0x2f, 0x96, 0xeb, 0x6a, 0x0e, 0x11, 0xe4, 0xda, 0x9b, 0x6d, 0xe9, 0x61, 0x54, 0x45, 0x28, 0x0e, 0x93, 0xc7, 0x7a, 0x36, 0x34, 0xd3, 0xd2, 0xc6, 0x87, 0x98, 0x56, 0xc2, 0x48, 0xf9, 0x80, 0x0f, 0x60, 0xa0, 0xd3, 0x8d, 0xc1, 0xce, 0xa8, 0xb7, 0xf3, 0x1f, 0x28, 0x6c, 0xb0, 0x37, 0x48, 0x27, 0xb4, 0xc6, 0xba, 0x14, 0x4a, 0x66, 0x94, 0xf2, 0xb9, 0x08, 0xea, 0xd6, 0x8d, 0x18, 0x34, 0x01, 0x24, 0xcb, 0x59, 0xcf, 0x17, 0x01, 0x86, 0x3b, 0xd4, 0xf3, 0xef, 0xc7, 0x09, 0xf3, 0x62, 0x7a, };
2667 static const u8 ed25519_116_test_vectors_expected_sig[] = {
2668 	0xd1, 0xe7, 0xf1, 0x6e, 0x8e, 0x59, 0x7d, 0x42, 0x8a, 0xde, 0xa6, 0x55, 0x91, 0xd5, 0x51, 0xb5, 0x4b, 0x66, 0x7a, 0xff, 0x20, 0x20, 0xc4, 0x64, 0xf7, 0xf4, 0xe5, 0x3c, 0x47, 0x73, 0xf7, 0x04, 0x33, 0x24, 0x9a, 0x3c, 0x71, 0xb4, 0xd1, 0x1c, 0x89, 0xc3, 0xfa, 0xa8, 0x92, 0x80, 0x92, 0x27, 0xb9, 0xf2, 0x9e, 0xf4, 0xf7, 0xf5, 0xd0, 0x20, 0xd4, 0x67, 0x4d, 0x40, 0x21, 0x35, 0x94, 0x05, };
2669 static const ec_test_case ed25519_116_test_case = {
2670 	.name = "EDDSA25519-SHA512/wei25519 116",
2671 	.ec_str_p = &wei25519_str_params,
2672 	.priv_key = ed25519_116_test_vectors_priv_key,
2673 	.priv_key_len = sizeof(ed25519_116_test_vectors_priv_key),
2674 	.nn_random = NULL,
2675 	.hash_type = SHA512,
2676 	.msg = (const char *)ed25519_116_test_vectors_message,
2677 	.msglen = sizeof(ed25519_116_test_vectors_message),
2678 	.sig_type = EDDSA25519,
2679 	.exp_sig = ed25519_116_test_vectors_expected_sig,
2680 	.exp_siglen = sizeof(ed25519_116_test_vectors_expected_sig),
2681 	.adata = NULL,
2682 	.adata_len = 0
2683 };
2684 
2685 /************************************************/
2686 static const u8 ed25519_117_test_vectors_priv_key[] = {
2687 	0xc9, 0x11, 0xbd, 0xf2, 0xf9, 0xe7, 0xcc, 0x5f, 0xff, 0x35, 0xc9, 0x6e, 0x15, 0xcc, 0x12, 0xea, 0xfd, 0x05, 0xab, 0x0d, 0xb3, 0x1f, 0x64, 0x9f, 0x74, 0x08, 0xac, 0xd0, 0xca, 0xda, 0x76, 0xe0, };
2688 static const u8 ed25519_117_test_vectors_message[] = {
2689 	0x76, 0xc4, 0x71, 0x24, 0x1d, 0x17, 0x19, 0x29, 0x84, 0xb0, 0x03, 0x62, 0x69, 0x6e, 0x4d, 0x9d, 0x4d, 0x2b, 0x7f, 0x83, 0x9c, 0x20, 0x64, 0x11, 0x7e, 0x50, 0xa1, 0x59, 0x8f, 0x3a, 0x11, 0x72, 0xb1, 0x6c, 0x55, 0xe5, 0x39, 0x68, 0x66, 0x08, 0x47, 0x52, 0x02, 0x4f, 0x3a, 0x7e, 0xb6, 0x8b, 0xb3, 0xff, 0xdb, 0x80, 0x97, 0x9a, 0x0a, 0xf6, 0xd0, 0xf6, 0xaf, 0x26, 0xb6, 0xf0, 0xbc, 0x0c, 0x03, 0x84, 0x43, 0x3b, 0xcf, 0xd4, 0x4c, 0x75, 0xeb, 0x65, 0x4a, 0x8a, 0x82, 0x25, 0xcb, 0x9c, 0x4a, 0x7f, 0xb3, 0xc8, 0x24, 0xc3, 0xaf, 0x61, 0x25, 0xfd, 0x46, 0xdb, 0x28, 0x7e, 0x70, 0x49, 0x2d, 0x15, 0x46, 0x32, 0xcb, 0x8f, 0x62, 0x43, 0x26, 0x59, 0xd9, 0x58, 0xd6, 0x28, 0x1d, 0x04, 0xa5, 0x4f, 0x5f, 0x5f, };
2690 static const u8 ed25519_117_test_vectors_expected_sig[] = {
2691 	0xd5, 0x84, 0xb5, 0xda, 0x37, 0x1a, 0xe4, 0xf5, 0xc9, 0x85, 0x9b, 0x25, 0xf7, 0x0d, 0xc5, 0x6c, 0x1b, 0x7b, 0x4e, 0x02, 0xd1, 0xae, 0x66, 0x36, 0x28, 0x3b, 0x1b, 0x7b, 0x11, 0x21, 0x7a, 0xfd, 0xcd, 0xf6, 0x5d, 0x1b, 0x49, 0xca, 0x2c, 0x8e, 0xf1, 0x79, 0x66, 0xe9, 0xbc, 0x65, 0xf1, 0x0c, 0x31, 0x0b, 0x77, 0xbb, 0x5d, 0xf7, 0xaf, 0xf5, 0xec, 0x1b, 0x37, 0x9a, 0x2c, 0xe5, 0x5d, 0x0d, };
2692 static const ec_test_case ed25519_117_test_case = {
2693 	.name = "EDDSA25519-SHA512/wei25519 117",
2694 	.ec_str_p = &wei25519_str_params,
2695 	.priv_key = ed25519_117_test_vectors_priv_key,
2696 	.priv_key_len = sizeof(ed25519_117_test_vectors_priv_key),
2697 	.nn_random = NULL,
2698 	.hash_type = SHA512,
2699 	.msg = (const char *)ed25519_117_test_vectors_message,
2700 	.msglen = sizeof(ed25519_117_test_vectors_message),
2701 	.sig_type = EDDSA25519,
2702 	.exp_sig = ed25519_117_test_vectors_expected_sig,
2703 	.exp_siglen = sizeof(ed25519_117_test_vectors_expected_sig),
2704 	.adata = NULL,
2705 	.adata_len = 0
2706 };
2707 
2708 /************************************************/
2709 static const u8 ed25519_118_test_vectors_priv_key[] = {
2710 	0xd3, 0x70, 0x32, 0x99, 0xc4, 0x1d, 0xb3, 0x6d, 0x77, 0xdd, 0x3a, 0x49, 0x54, 0x1f, 0x3f, 0xb2, 0x1d, 0x0b, 0x2b, 0xad, 0x1f, 0x6e, 0x07, 0x4a, 0xff, 0xd9, 0x6f, 0x1c, 0x40, 0xd0, 0xf9, 0x27, };
2711 static const u8 ed25519_118_test_vectors_message[] = {
2712 	0xac, 0x92, 0xed, 0xbe, 0x22, 0x25, 0x7b, 0xb0, 0x6d, 0x94, 0xaa, 0x95, 0x0e, 0x62, 0xd1, 0x8c, 0xa2, 0xac, 0x0a, 0x8f, 0xc1, 0x06, 0x00, 0x0d, 0x22, 0x31, 0xf8, 0xa1, 0x3b, 0x8d, 0x7a, 0x20, 0x9c, 0xcd, 0x8c, 0xc4, 0x9a, 0x6c, 0xd6, 0x8a, 0x7f, 0x36, 0xc0, 0x2f, 0xb8, 0xf7, 0x28, 0xd1, 0x55, 0x95, 0x16, 0x7f, 0x0b, 0xa8, 0xcf, 0xe9, 0x5c, 0x8a, 0x1e, 0x43, 0x5f, 0x32, 0x75, 0x13, 0x01, 0x4a, 0xc4, 0x28, 0xb7, 0x5d, 0x4f, 0x72, 0xe7, 0xc8, 0x34, 0xdd, 0x70, 0xe1, 0xa4, 0x48, 0xf1, 0x84, 0x7d, 0x34, 0x98, 0x47, 0x5f, 0x74, 0xe3, 0xd9, 0x33, 0x4d, 0xc7, 0xdc, 0xc4, 0xfe, 0xd7, 0x2b, 0xf6, 0xc7, 0xfe, 0x3b, 0x1d, 0x4f, 0x53, 0xd4, 0x29, 0x61, 0x6f, 0x1d, 0xf4, 0x4f, 0x19, 0x73, 0x31, 0x58, 0xb6, };
2713 static const u8 ed25519_118_test_vectors_expected_sig[] = {
2714 	0xdf, 0x28, 0x27, 0x71, 0x21, 0xea, 0xc4, 0x46, 0x30, 0x08, 0x4c, 0xce, 0x75, 0x91, 0x7a, 0xe9, 0xf6, 0xbe, 0xc6, 0x5a, 0xf5, 0x57, 0x2d, 0xc3, 0x07, 0x19, 0xbd, 0xe6, 0x61, 0xcf, 0x69, 0x6b, 0x85, 0xb8, 0x67, 0x2d, 0xd4, 0x98, 0x3c, 0xab, 0x30, 0xbd, 0x05, 0xcc, 0x3a, 0x11, 0x9d, 0x7d, 0xb9, 0xba, 0xbd, 0x52, 0x2d, 0x7b, 0x3a, 0x6b, 0xcf, 0x38, 0x86, 0xec, 0xd2, 0x5e, 0x08, 0x0f, };
2715 static const ec_test_case ed25519_118_test_case = {
2716 	.name = "EDDSA25519-SHA512/wei25519 118",
2717 	.ec_str_p = &wei25519_str_params,
2718 	.priv_key = ed25519_118_test_vectors_priv_key,
2719 	.priv_key_len = sizeof(ed25519_118_test_vectors_priv_key),
2720 	.nn_random = NULL,
2721 	.hash_type = SHA512,
2722 	.msg = (const char *)ed25519_118_test_vectors_message,
2723 	.msglen = sizeof(ed25519_118_test_vectors_message),
2724 	.sig_type = EDDSA25519,
2725 	.exp_sig = ed25519_118_test_vectors_expected_sig,
2726 	.exp_siglen = sizeof(ed25519_118_test_vectors_expected_sig),
2727 	.adata = NULL,
2728 	.adata_len = 0
2729 };
2730 
2731 /************************************************/
2732 static const u8 ed25519_119_test_vectors_priv_key[] = {
2733 	0xd4, 0x11, 0xcd, 0x33, 0x57, 0x6d, 0x0e, 0xfe, 0x9e, 0xc4, 0x13, 0xcc, 0xda, 0xab, 0xd4, 0xfc, 0xba, 0xfe, 0xc0, 0x1a, 0x3a, 0xf4, 0xb3, 0xcb, 0xe3, 0x4f, 0x8b, 0x05, 0xef, 0x8b, 0x59, 0xba, };
2734 static const u8 ed25519_119_test_vectors_message[] = {
2735 	0x11, 0xd2, 0xc2, 0xa7, 0xf0, 0x19, 0x09, 0x88, 0x12, 0x66, 0x96, 0x43, 0x1b, 0x4b, 0xbc, 0xd9, 0x0a, 0xb7, 0xb5, 0x6a, 0x32, 0xda, 0x64, 0x04, 0xae, 0x44, 0x6a, 0xa7, 0x62, 0xa4, 0xdd, 0xc6, 0x60, 0x94, 0x97, 0x15, 0x38, 0xee, 0xb8, 0x5b, 0xde, 0x04, 0x70, 0xa5, 0x10, 0xbe, 0x0d, 0x6d, 0x85, 0x78, 0x0e, 0xe7, 0x30, 0xa9, 0x85, 0x41, 0x38, 0x72, 0x8a, 0xe6, 0x81, 0x61, 0x62, 0x26, 0x8d, 0xa8, 0x52, 0x85, 0x8e, 0xae, 0xd4, 0xec, 0x74, 0xc7, 0xac, 0x62, 0xe6, 0xe7, 0x09, 0x6d, 0xc0, 0x02, 0xdf, 0x0b, 0xdf, 0x5f, 0xa4, 0x0d, 0xa5, 0x65, 0xb4, 0x1d, 0x18, 0x1a, 0x3f, 0x0a, 0xd0, 0xc5, 0xe0, 0xb9, 0x76, 0x74, 0x3e, 0x31, 0x5d, 0x9d, 0xb8, 0xed, 0x41, 0x60, 0xab, 0xe6, 0x9c, 0x13, 0xa2, 0xb3, 0xf0, 0x9a, };
2736 static const u8 ed25519_119_test_vectors_expected_sig[] = {
2737 	0x83, 0x46, 0x0d, 0x15, 0x46, 0x1d, 0x67, 0x17, 0x71, 0x0b, 0xaf, 0xd6, 0xa4, 0x7a, 0x1e, 0xaa, 0x90, 0x0a, 0x80, 0xf2, 0xbf, 0x8b, 0x8a, 0xae, 0x24, 0x68, 0x77, 0x36, 0x14, 0xee, 0x84, 0xbd, 0x62, 0x8c, 0x97, 0x17, 0x47, 0x63, 0x68, 0xef, 0x36, 0x40, 0xcf, 0x76, 0x0a, 0xca, 0xc8, 0x3a, 0xd6, 0x02, 0x32, 0xa7, 0x69, 0x63, 0xb7, 0xd5, 0x25, 0x88, 0xb1, 0x1d, 0xc0, 0x04, 0xd7, 0x0d, };
2738 static const ec_test_case ed25519_119_test_case = {
2739 	.name = "EDDSA25519-SHA512/wei25519 119",
2740 	.ec_str_p = &wei25519_str_params,
2741 	.priv_key = ed25519_119_test_vectors_priv_key,
2742 	.priv_key_len = sizeof(ed25519_119_test_vectors_priv_key),
2743 	.nn_random = NULL,
2744 	.hash_type = SHA512,
2745 	.msg = (const char *)ed25519_119_test_vectors_message,
2746 	.msglen = sizeof(ed25519_119_test_vectors_message),
2747 	.sig_type = EDDSA25519,
2748 	.exp_sig = ed25519_119_test_vectors_expected_sig,
2749 	.exp_siglen = sizeof(ed25519_119_test_vectors_expected_sig),
2750 	.adata = NULL,
2751 	.adata_len = 0
2752 };
2753 
2754 /************************************************/
2755 static const u8 ed25519_120_test_vectors_priv_key[] = {
2756 	0xe1, 0x0a, 0x2f, 0x13, 0x80, 0xc3, 0xe4, 0x72, 0x0e, 0x8a, 0x87, 0x07, 0xa9, 0xbc, 0xb2, 0x5a, 0x0f, 0x58, 0x27, 0x0d, 0x70, 0x59, 0xcd, 0x76, 0x26, 0xc7, 0x15, 0x34, 0x47, 0xed, 0xfb, 0x87, };
2757 static const u8 ed25519_120_test_vectors_message[] = {
2758 	0x13, 0x52, 0x12, 0xa9, 0xcf, 0x00, 0xd0, 0xa0, 0x52, 0x20, 0xbe, 0x73, 0x23, 0xbf, 0xa4, 0xa5, 0xba, 0x7f, 0xc5, 0x46, 0x55, 0x14, 0x00, 0x77, 0x02, 0x12, 0x1a, 0x9c, 0x92, 0xe4, 0x6b, 0xd4, 0x73, 0x06, 0x2f, 0x00, 0x84, 0x1a, 0xf8, 0x3c, 0xb7, 0xbc, 0x4b, 0x2c, 0xd5, 0x8d, 0xc4, 0xd5, 0xb1, 0x51, 0x24, 0x4c, 0xc8, 0x29, 0x3e, 0x79, 0x57, 0x96, 0x83, 0x5e, 0xd3, 0x68, 0x22, 0xc6, 0xe0, 0x98, 0x93, 0xec, 0x99, 0x1b, 0x38, 0xad, 0xa4, 0xb2, 0x1a, 0x06, 0xe6, 0x91, 0xaf, 0xa8, 0x87, 0xdb, 0x4e, 0x9d, 0x7b, 0x1d, 0x2a, 0xfc, 0x65, 0xba, 0x8d, 0x2f, 0x5e, 0x69, 0x26, 0xff, 0x53, 0xd2, 0xd4, 0x4d, 0x55, 0xfa, 0x09, 0x5f, 0x3f, 0xad, 0x62, 0x54, 0x5c, 0x71, 0x4f, 0x0f, 0x3f, 0x59, 0xe4, 0xbf, 0xe9, 0x1a, 0xf8, };
2759 static const u8 ed25519_120_test_vectors_expected_sig[] = {
2760 	0x09, 0x4b, 0xf6, 0xf9, 0x53, 0xca, 0x0e, 0xb7, 0x7d, 0xf4, 0x51, 0x29, 0xb7, 0xbf, 0x10, 0xd1, 0x92, 0xcf, 0x6d, 0xde, 0xae, 0x94, 0xad, 0x62, 0x02, 0xb8, 0xea, 0xcf, 0xbe, 0xc1, 0x19, 0xe5, 0x29, 0x15, 0x78, 0xfe, 0x64, 0xa0, 0x84, 0xae, 0x60, 0x0f, 0xe0, 0x7e, 0xfd, 0xb8, 0xa7, 0x82, 0x61, 0x0d, 0xbd, 0xb0, 0xb4, 0x9e, 0xb5, 0xf2, 0xa4, 0x6c, 0x43, 0x23, 0x55, 0x55, 0x2f, 0x01, };
2761 static const ec_test_case ed25519_120_test_case = {
2762 	.name = "EDDSA25519-SHA512/wei25519 120",
2763 	.ec_str_p = &wei25519_str_params,
2764 	.priv_key = ed25519_120_test_vectors_priv_key,
2765 	.priv_key_len = sizeof(ed25519_120_test_vectors_priv_key),
2766 	.nn_random = NULL,
2767 	.hash_type = SHA512,
2768 	.msg = (const char *)ed25519_120_test_vectors_message,
2769 	.msglen = sizeof(ed25519_120_test_vectors_message),
2770 	.sig_type = EDDSA25519,
2771 	.exp_sig = ed25519_120_test_vectors_expected_sig,
2772 	.exp_siglen = sizeof(ed25519_120_test_vectors_expected_sig),
2773 	.adata = NULL,
2774 	.adata_len = 0
2775 };
2776 
2777 /************************************************/
2778 static const u8 ed25519_121_test_vectors_priv_key[] = {
2779 	0xb2, 0xe6, 0x97, 0xb3, 0xd3, 0xef, 0xec, 0x97, 0x6e, 0xf3, 0x36, 0x95, 0x30, 0xc7, 0x92, 0x71, 0x7b, 0xdb, 0xb4, 0x28, 0xd9, 0xed, 0x0c, 0x11, 0xec, 0x0e, 0xa9, 0xb2, 0xe5, 0xf3, 0x9f, 0x82, };
2780 static const u8 ed25519_121_test_vectors_message[] = {
2781 	0x7b, 0x43, 0x62, 0x32, 0xac, 0x21, 0x11, 0xa8, 0x40, 0x59, 0x51, 0x0c, 0x48, 0x36, 0x25, 0x88, 0xfc, 0xb7, 0x38, 0x34, 0x26, 0xbe, 0x5e, 0x6f, 0x62, 0xf3, 0x72, 0xe4, 0xf7, 0xcc, 0xa8, 0x3c, 0x81, 0xc2, 0x35, 0x7f, 0x9b, 0x54, 0xf4, 0xa1, 0x52, 0x91, 0x06, 0x5b, 0x6d, 0x41, 0xaa, 0xd1, 0xea, 0x93, 0xcf, 0xfa, 0x77, 0x6b, 0x9a, 0xca, 0xa5, 0x8a, 0xfe, 0x2b, 0x51, 0x64, 0x4b, 0x97, 0xaf, 0x9a, 0x3e, 0x53, 0xf8, 0x4e, 0x40, 0xaa, 0x6d, 0x86, 0x05, 0x1e, 0x69, 0x14, 0xcd, 0x03, 0x9d, 0x41, 0x70, 0xa9, 0xa5, 0x26, 0xdd, 0x69, 0x95, 0x5f, 0xf5, 0x07, 0xc3, 0x3f, 0x74, 0xe2, 0x17, 0x65, 0x91, 0xfb, 0x0b, 0x3c, 0xd7, 0xf0, 0x0e, 0xe4, 0x18, 0xf2, 0xc2, 0x58, 0xa9, 0x98, 0x1c, 0xcc, 0xee, 0x72, 0xf0, 0x1c, 0x84, 0x30, };
2782 static const u8 ed25519_121_test_vectors_expected_sig[] = {
2783 	0x50, 0x47, 0xfa, 0x38, 0x19, 0x7b, 0x83, 0x28, 0xe7, 0x8d, 0xd8, 0xa1, 0x0e, 0x96, 0x6a, 0xfb, 0x7b, 0xd3, 0xd4, 0x36, 0x08, 0x28, 0x0f, 0x1c, 0x25, 0x7d, 0x25, 0xca, 0x43, 0xbc, 0x1c, 0x06, 0xe9, 0x4a, 0x57, 0x47, 0xab, 0x62, 0x15, 0xec, 0xe5, 0x4c, 0xde, 0xff, 0x8c, 0x56, 0x56, 0x7d, 0x70, 0xd2, 0xf9, 0x1f, 0x9e, 0xc8, 0xc2, 0x60, 0xaa, 0x10, 0x80, 0xa6, 0xab, 0x5a, 0x7a, 0x02, };
2784 static const ec_test_case ed25519_121_test_case = {
2785 	.name = "EDDSA25519-SHA512/wei25519 121",
2786 	.ec_str_p = &wei25519_str_params,
2787 	.priv_key = ed25519_121_test_vectors_priv_key,
2788 	.priv_key_len = sizeof(ed25519_121_test_vectors_priv_key),
2789 	.nn_random = NULL,
2790 	.hash_type = SHA512,
2791 	.msg = (const char *)ed25519_121_test_vectors_message,
2792 	.msglen = sizeof(ed25519_121_test_vectors_message),
2793 	.sig_type = EDDSA25519,
2794 	.exp_sig = ed25519_121_test_vectors_expected_sig,
2795 	.exp_siglen = sizeof(ed25519_121_test_vectors_expected_sig),
2796 	.adata = NULL,
2797 	.adata_len = 0
2798 };
2799 
2800 /************************************************/
2801 static const u8 ed25519_122_test_vectors_priv_key[] = {
2802 	0x19, 0xa6, 0x79, 0xa7, 0xa9, 0x05, 0xa1, 0xe2, 0xb3, 0x03, 0x8e, 0x6e, 0x41, 0x8b, 0x3d, 0xa9, 0x7c, 0x30, 0x89, 0xc7, 0xcd, 0x35, 0x1e, 0xa0, 0x7b, 0xc8, 0xd1, 0xaf, 0x64, 0xea, 0xcc, 0x46, };
2803 static const u8 ed25519_122_test_vectors_message[] = {
2804 	0x98, 0x0c, 0x7b, 0x4d, 0x29, 0x39, 0x06, 0x1a, 0xc7, 0xb9, 0xba, 0x44, 0x11, 0x17, 0xa1, 0x94, 0x85, 0x66, 0x17, 0x81, 0xa4, 0x08, 0x30, 0x67, 0xc5, 0x5a, 0xcf, 0x93, 0x02, 0x6c, 0x08, 0x2a, 0x93, 0xcc, 0x12, 0x4f, 0x09, 0x5e, 0x1b, 0x4f, 0x2c, 0x3f, 0x6c, 0x13, 0x54, 0x12, 0xa5, 0x09, 0x62, 0x28, 0xe8, 0xa0, 0x71, 0xe8, 0xb4, 0xb6, 0x68, 0xba, 0x9d, 0x96, 0x44, 0xea, 0x9f, 0x4d, 0xab, 0xfc, 0x54, 0xa9, 0x85, 0x6c, 0x3e, 0x96, 0x5e, 0x63, 0x63, 0x39, 0x5a, 0xb7, 0x09, 0x03, 0x7d, 0xda, 0x22, 0x9b, 0xaf, 0x92, 0x7c, 0xd0, 0x1f, 0x9a, 0xf5, 0xe0, 0x39, 0xaf, 0xc4, 0x2f, 0x3c, 0xec, 0x63, 0x4f, 0x5d, 0x83, 0x2d, 0x2a, 0xb7, 0xc7, 0xca, 0xd3, 0xad, 0x7b, 0x8c, 0xf2, 0x7e, 0xbd, 0xac, 0x69, 0x84, 0x31, 0xad, 0x82, 0x36, };
2805 static const u8 ed25519_122_test_vectors_expected_sig[] = {
2806 	0x43, 0x47, 0xb7, 0xb4, 0xf7, 0xc3, 0xc4, 0xdd, 0x31, 0x5b, 0x83, 0x84, 0xa0, 0xb0, 0xca, 0xee, 0xd8, 0x4b, 0xda, 0xbe, 0x24, 0xb2, 0x91, 0x5f, 0x12, 0x51, 0x2d, 0xfd, 0x04, 0x77, 0x0f, 0xc9, 0x96, 0xa1, 0xbf, 0xb7, 0x29, 0xaf, 0xef, 0x9e, 0xdd, 0x61, 0x14, 0x47, 0x08, 0x1a, 0x53, 0x30, 0x61, 0x7e, 0xae, 0xa1, 0xc1, 0xda, 0xb1, 0xbf, 0x13, 0xce, 0xa8, 0x99, 0x72, 0x04, 0x91, 0x0c, };
2807 static const ec_test_case ed25519_122_test_case = {
2808 	.name = "EDDSA25519-SHA512/wei25519 122",
2809 	.ec_str_p = &wei25519_str_params,
2810 	.priv_key = ed25519_122_test_vectors_priv_key,
2811 	.priv_key_len = sizeof(ed25519_122_test_vectors_priv_key),
2812 	.nn_random = NULL,
2813 	.hash_type = SHA512,
2814 	.msg = (const char *)ed25519_122_test_vectors_message,
2815 	.msglen = sizeof(ed25519_122_test_vectors_message),
2816 	.sig_type = EDDSA25519,
2817 	.exp_sig = ed25519_122_test_vectors_expected_sig,
2818 	.exp_siglen = sizeof(ed25519_122_test_vectors_expected_sig),
2819 	.adata = NULL,
2820 	.adata_len = 0
2821 };
2822 
2823 /************************************************/
2824 static const u8 ed25519_123_test_vectors_priv_key[] = {
2825 	0xf0, 0x3b, 0x83, 0x63, 0xee, 0x5b, 0x0e, 0xef, 0x70, 0x18, 0xa4, 0x9b, 0xc0, 0x2a, 0xdf, 0x73, 0x1d, 0xa5, 0x4e, 0xe5, 0x0a, 0x7f, 0x03, 0xb8, 0x8a, 0x29, 0xa2, 0x08, 0x2b, 0x18, 0x9c, 0x43, };
2826 static const u8 ed25519_123_test_vectors_message[] = {
2827 	0x24, 0x19, 0x1b, 0x54, 0x64, 0xb3, 0x5a, 0xc7, 0xbc, 0xf4, 0xa3, 0x75, 0xf0, 0x33, 0xef, 0xba, 0x89, 0x43, 0xb0, 0x9b, 0x9f, 0xf0, 0xfc, 0x40, 0x3c, 0xa7, 0xaa, 0xe7, 0x02, 0xa3, 0xcb, 0xf3, 0x96, 0xc5, 0x13, 0x1b, 0xc0, 0x08, 0x13, 0x2c, 0xf5, 0xf1, 0x29, 0x10, 0xd5, 0x86, 0xdc, 0x1d, 0xb9, 0xc0, 0x84, 0x57, 0x4a, 0x96, 0xba, 0xbe, 0xe9, 0x56, 0x42, 0xf9, 0x22, 0x37, 0x1c, 0x03, 0x82, 0xec, 0x04, 0x02, 0xa2, 0x6f, 0xeb, 0x14, 0x2e, 0x41, 0x46, 0xbb, 0xd3, 0x36, 0x0c, 0x2b, 0x36, 0x83, 0x4f, 0xe4, 0x5a, 0xf5, 0xe2, 0x86, 0x8d, 0x4d, 0x56, 0xfd, 0xd5, 0x04, 0xce, 0xbf, 0x0c, 0x2d, 0x7f, 0x57, 0x91, 0xb4, 0x42, 0x94, 0x17, 0xc8, 0xb6, 0x5a, 0x98, 0xe0, 0xb1, 0x5c, 0x46, 0x6c, 0x13, 0x7f, 0x41, 0x05, 0x24, 0xfc, 0xe7, 0x37, };
2828 static const u8 ed25519_123_test_vectors_expected_sig[] = {
2829 	0xe8, 0xfa, 0x96, 0x7e, 0x6a, 0xfa, 0xdf, 0x6a, 0x87, 0x7d, 0x87, 0xe5, 0xf5, 0xc5, 0x2b, 0xb6, 0x34, 0xb7, 0x5a, 0x78, 0x04, 0x19, 0x9a, 0x2b, 0xc9, 0xd0, 0x27, 0xb6, 0x3a, 0x35, 0x65, 0x4d, 0x9d, 0xdd, 0x06, 0x83, 0x04, 0x55, 0x64, 0x1d, 0xbf, 0xb4, 0x9e, 0xdc, 0xe4, 0x2e, 0x20, 0xe7, 0xd4, 0x10, 0x4a, 0x07, 0x1c, 0x2c, 0xbb, 0xec, 0x23, 0x01, 0x8c, 0x29, 0x7c, 0xed, 0x99, 0x08, };
2830 static const ec_test_case ed25519_123_test_case = {
2831 	.name = "EDDSA25519-SHA512/wei25519 123",
2832 	.ec_str_p = &wei25519_str_params,
2833 	.priv_key = ed25519_123_test_vectors_priv_key,
2834 	.priv_key_len = sizeof(ed25519_123_test_vectors_priv_key),
2835 	.nn_random = NULL,
2836 	.hash_type = SHA512,
2837 	.msg = (const char *)ed25519_123_test_vectors_message,
2838 	.msglen = sizeof(ed25519_123_test_vectors_message),
2839 	.sig_type = EDDSA25519,
2840 	.exp_sig = ed25519_123_test_vectors_expected_sig,
2841 	.exp_siglen = sizeof(ed25519_123_test_vectors_expected_sig),
2842 	.adata = NULL,
2843 	.adata_len = 0
2844 };
2845 
2846 /************************************************/
2847 static const u8 ed25519_124_test_vectors_priv_key[] = {
2848 	0x11, 0x08, 0x6b, 0x0d, 0x11, 0xe4, 0x15, 0xab, 0x1c, 0xe0, 0x2a, 0xaf, 0x8f, 0x06, 0x21, 0xb5, 0x44, 0x30, 0xf6, 0xfb, 0x13, 0x5c, 0x74, 0xf4, 0x0d, 0x38, 0xe8, 0xc6, 0x47, 0x37, 0x06, 0x4b, };
2849 static const u8 ed25519_124_test_vectors_message[] = {
2850 	0x4b, 0x5b, 0x29, 0x36, 0xc5, 0xe3, 0x60, 0xa3, 0x84, 0x55, 0x50, 0x37, 0x21, 0x07, 0x8f, 0x8a, 0xdb, 0x40, 0x4a, 0x7e, 0xe7, 0xec, 0xc1, 0x48, 0x01, 0xdc, 0x87, 0xa6, 0x7a, 0x15, 0x2b, 0x76, 0x95, 0x69, 0xfb, 0xea, 0xc0, 0xaf, 0xa2, 0x5a, 0x20, 0x70, 0xa1, 0x68, 0x6b, 0x90, 0x0a, 0xc1, 0x63, 0x3d, 0x49, 0x98, 0x08, 0xcd, 0xb2, 0xe8, 0x1c, 0xe3, 0x91, 0x6d, 0x5a, 0x3c, 0x04, 0xd1, 0x9c, 0x5b, 0xb2, 0x69, 0x9a, 0x66, 0x2b, 0x8a, 0xba, 0x4a, 0xf9, 0x4d, 0x39, 0x0b, 0xac, 0x7c, 0xcc, 0x8e, 0xc9, 0x10, 0xed, 0x2a, 0xcd, 0xf8, 0x6e, 0xbb, 0x71, 0xad, 0xb6, 0x01, 0x87, 0x78, 0x85, 0xee, 0xf3, 0xc9, 0x16, 0x62, 0xfc, 0x30, 0x73, 0x8e, 0x35, 0x2c, 0xc7, 0x43, 0x53, 0xcc, 0xf8, 0xd8, 0xed, 0xee, 0xfa, 0xcc, 0x04, 0x2c, 0x10, 0xa0, 0xe5, };
2851 static const u8 ed25519_124_test_vectors_expected_sig[] = {
2852 	0xe9, 0x07, 0x45, 0x9d, 0x5a, 0xdc, 0xd0, 0xd0, 0xc3, 0x64, 0x18, 0x58, 0x1f, 0x19, 0xd0, 0xee, 0xbd, 0xa7, 0x13, 0x8e, 0xbd, 0x9f, 0xaa, 0x0b, 0x26, 0x22, 0x01, 0xf4, 0x58, 0xc8, 0x56, 0x31, 0x0b, 0xb7, 0x7f, 0x4c, 0x7d, 0xe9, 0x22, 0x49, 0x5d, 0xcf, 0xe8, 0xb2, 0x48, 0xed, 0xa2, 0xad, 0x0d, 0xf6, 0xa7, 0x3f, 0x47, 0xbb, 0xfb, 0x89, 0x4b, 0xaa, 0x7d, 0x88, 0x69, 0x87, 0x58, 0x02, };
2853 static const ec_test_case ed25519_124_test_case = {
2854 	.name = "EDDSA25519-SHA512/wei25519 124",
2855 	.ec_str_p = &wei25519_str_params,
2856 	.priv_key = ed25519_124_test_vectors_priv_key,
2857 	.priv_key_len = sizeof(ed25519_124_test_vectors_priv_key),
2858 	.nn_random = NULL,
2859 	.hash_type = SHA512,
2860 	.msg = (const char *)ed25519_124_test_vectors_message,
2861 	.msglen = sizeof(ed25519_124_test_vectors_message),
2862 	.sig_type = EDDSA25519,
2863 	.exp_sig = ed25519_124_test_vectors_expected_sig,
2864 	.exp_siglen = sizeof(ed25519_124_test_vectors_expected_sig),
2865 	.adata = NULL,
2866 	.adata_len = 0
2867 };
2868 
2869 /************************************************/
2870 static const u8 ed25519_125_test_vectors_priv_key[] = {
2871 	0xef, 0xce, 0x76, 0x67, 0xa8, 0xef, 0x91, 0x22, 0x8c, 0xae, 0xd1, 0x4e, 0xb4, 0x77, 0xa3, 0x45, 0xe5, 0xe8, 0x23, 0x92, 0x34, 0x08, 0x08, 0x48, 0x76, 0x0e, 0xd0, 0x97, 0x07, 0x13, 0xfa, 0x86, };
2872 static const u8 ed25519_125_test_vectors_message[] = {
2873 	0xaa, 0x1b, 0xc8, 0x0d, 0x7b, 0xcc, 0x1d, 0x94, 0xa2, 0x3a, 0x57, 0xce, 0xdf, 0x50, 0x27, 0x48, 0x24, 0x77, 0xdc, 0x46, 0xb8, 0x68, 0x90, 0xbc, 0x0e, 0x5a, 0xc2, 0x9a, 0xe6, 0xc9, 0x1b, 0xbc, 0x43, 0x13, 0x03, 0x48, 0x79, 0x73, 0x05, 0xf7, 0x55, 0x43, 0x58, 0x0a, 0x8a, 0x06, 0x9b, 0x34, 0x8a, 0x7b, 0xd8, 0xfc, 0x3e, 0x01, 0x52, 0x30, 0xb7, 0xc1, 0x94, 0x0c, 0x7f, 0x80, 0xa8, 0x2b, 0x12, 0x90, 0x09, 0x10, 0xdb, 0xcf, 0x06, 0x30, 0xda, 0x03, 0xf0, 0x81, 0xd4, 0x4c, 0x7f, 0x95, 0x5d, 0x4a, 0x11, 0x72, 0xf5, 0x6e, 0xcc, 0x7c, 0x5a, 0xc6, 0x46, 0x69, 0x6b, 0xff, 0xdf, 0x4e, 0xb6, 0xd8, 0x8b, 0xdd, 0x9c, 0xc3, 0x84, 0x35, 0x28, 0xb7, 0x25, 0x83, 0xab, 0xb3, 0xba, 0xd0, 0x2e, 0x56, 0xef, 0x76, 0x46, 0xee, 0xd5, 0x13, 0x95, 0x51, 0xcd, 0xeb, };
2874 static const u8 ed25519_125_test_vectors_expected_sig[] = {
2875 	0xe5, 0xa6, 0x31, 0x24, 0xdb, 0x16, 0x96, 0xb6, 0x41, 0x40, 0xb6, 0xe9, 0x61, 0x2f, 0xa9, 0x58, 0x7b, 0x3e, 0xef, 0x71, 0x01, 0x09, 0x39, 0x8d, 0x44, 0xba, 0x0c, 0xa6, 0x3c, 0x0e, 0xba, 0xd0, 0x6f, 0x0a, 0x6c, 0x89, 0x94, 0xea, 0x34, 0xb3, 0xa2, 0xaf, 0x91, 0xa8, 0x9b, 0xf4, 0x1a, 0xe6, 0x14, 0xd7, 0x72, 0x7d, 0x71, 0x6f, 0xd4, 0x2f, 0x8b, 0x92, 0xe1, 0xac, 0x64, 0xfd, 0xbf, 0x03, };
2876 static const ec_test_case ed25519_125_test_case = {
2877 	.name = "EDDSA25519-SHA512/wei25519 125",
2878 	.ec_str_p = &wei25519_str_params,
2879 	.priv_key = ed25519_125_test_vectors_priv_key,
2880 	.priv_key_len = sizeof(ed25519_125_test_vectors_priv_key),
2881 	.nn_random = NULL,
2882 	.hash_type = SHA512,
2883 	.msg = (const char *)ed25519_125_test_vectors_message,
2884 	.msglen = sizeof(ed25519_125_test_vectors_message),
2885 	.sig_type = EDDSA25519,
2886 	.exp_sig = ed25519_125_test_vectors_expected_sig,
2887 	.exp_siglen = sizeof(ed25519_125_test_vectors_expected_sig),
2888 	.adata = NULL,
2889 	.adata_len = 0
2890 };
2891 
2892 /************************************************/
2893 static const u8 ed25519_126_test_vectors_priv_key[] = {
2894 	0x88, 0xfc, 0xca, 0xa9, 0x6a, 0xd8, 0x84, 0xd1, 0x16, 0x5b, 0xe7, 0x1d, 0xd0, 0xc4, 0xf5, 0xf8, 0xf4, 0x42, 0x1c, 0x60, 0xfb, 0xfa, 0x49, 0x8b, 0xfe, 0xe9, 0xb9, 0x67, 0x46, 0x24, 0x43, 0xbd, };
2895 static const u8 ed25519_126_test_vectors_message[] = {
2896 	0x9d, 0x0e, 0xac, 0x98, 0x55, 0x6b, 0xfa, 0x86, 0x72, 0xc3, 0x57, 0x05, 0xd1, 0xd6, 0x1a, 0xc4, 0xd0, 0xfc, 0xa1, 0x9d, 0xc0, 0xd9, 0x93, 0x01, 0x58, 0x77, 0x85, 0x7d, 0x27, 0xfd, 0x80, 0xf7, 0x4a, 0xca, 0xce, 0x66, 0x6c, 0x56, 0x34, 0x85, 0xd8, 0x1e, 0x53, 0x60, 0x3a, 0x6a, 0xef, 0x40, 0x87, 0x5f, 0xa5, 0x51, 0xcc, 0x10, 0x5f, 0x2c, 0xc1, 0x0b, 0x39, 0x69, 0x46, 0x79, 0xcd, 0xf4, 0xa6, 0xb0, 0x73, 0xbc, 0x88, 0x64, 0x5f, 0xc5, 0x1a, 0x36, 0xda, 0x17, 0x9d, 0x3d, 0x1e, 0x3c, 0x77, 0x22, 0x45, 0x4c, 0x5e, 0x73, 0x57, 0x7c, 0x61, 0xaa, 0x7d, 0x14, 0x8c, 0x4b, 0xa5, 0x0e, 0xa4, 0x6c, 0x56, 0xa1, 0xc3, 0xb3, 0xb3, 0xc4, 0x70, 0xf9, 0x31, 0x00, 0x49, 0x4e, 0x08, 0xbc, 0x55, 0x14, 0xac, 0x76, 0x3a, 0x85, 0x48, 0x3c, 0x42, 0xc7, 0xcd, 0xc2, 0x7c, };
2897 static const u8 ed25519_126_test_vectors_expected_sig[] = {
2898 	0x27, 0xd3, 0xa1, 0x97, 0xcc, 0x99, 0x94, 0x21, 0x20, 0x63, 0xbc, 0xe8, 0xd7, 0x99, 0xe7, 0x7b, 0x68, 0x53, 0xb7, 0x35, 0x5e, 0xbe, 0x36, 0x9b, 0xcf, 0x18, 0x89, 0xa4, 0x18, 0xa8, 0x2c, 0xaa, 0x3a, 0x79, 0x87, 0xa6, 0x63, 0xf6, 0x21, 0xde, 0xfe, 0x86, 0xb3, 0xac, 0x4a, 0xd4, 0x4f, 0xae, 0xed, 0x16, 0xc9, 0x11, 0x6a, 0xce, 0x28, 0xfc, 0xcf, 0x91, 0x55, 0x57, 0xfa, 0x77, 0x99, 0x03, };
2899 static const ec_test_case ed25519_126_test_case = {
2900 	.name = "EDDSA25519-SHA512/wei25519 126",
2901 	.ec_str_p = &wei25519_str_params,
2902 	.priv_key = ed25519_126_test_vectors_priv_key,
2903 	.priv_key_len = sizeof(ed25519_126_test_vectors_priv_key),
2904 	.nn_random = NULL,
2905 	.hash_type = SHA512,
2906 	.msg = (const char *)ed25519_126_test_vectors_message,
2907 	.msglen = sizeof(ed25519_126_test_vectors_message),
2908 	.sig_type = EDDSA25519,
2909 	.exp_sig = ed25519_126_test_vectors_expected_sig,
2910 	.exp_siglen = sizeof(ed25519_126_test_vectors_expected_sig),
2911 	.adata = NULL,
2912 	.adata_len = 0
2913 };
2914 
2915 /************************************************/
2916 static const u8 ed25519_127_test_vectors_priv_key[] = {
2917 	0x67, 0x0b, 0x30, 0x62, 0x6f, 0xe3, 0x67, 0xd8, 0xb4, 0x5f, 0x43, 0x73, 0x3d, 0x6f, 0x25, 0xb3, 0x7e, 0xcc, 0xbc, 0xb5, 0x51, 0x96, 0x3f, 0x0a, 0xc8, 0xb6, 0x66, 0xb4, 0x80, 0x41, 0xc7, 0x2d, };
2918 static const u8 ed25519_127_test_vectors_message[] = {
2919 	0xd0, 0x0b, 0xcc, 0xa7, 0xe1, 0x84, 0xd1, 0x0e, 0x1f, 0x1f, 0xe4, 0x20, 0xb5, 0x06, 0x39, 0xe1, 0xd5, 0xde, 0xba, 0x52, 0xa7, 0x51, 0x23, 0x6e, 0x68, 0xc5, 0x9b, 0xb4, 0xbf, 0xf9, 0x80, 0x2f, 0x5f, 0xc1, 0x65, 0xed, 0x42, 0xfd, 0x6d, 0x53, 0x46, 0x70, 0xa7, 0xc6, 0xfb, 0x60, 0xe4, 0x30, 0x7d, 0x94, 0x79, 0x15, 0xa2, 0x48, 0xbf, 0x2f, 0x93, 0x46, 0x5c, 0x2c, 0xb4, 0x4d, 0x8f, 0x45, 0x3d, 0x2c, 0x01, 0x5a, 0xfb, 0xc8, 0xed, 0x58, 0x81, 0x8e, 0xa5, 0x17, 0x26, 0xa2, 0x51, 0x77, 0x93, 0x0e, 0x9e, 0xa1, 0x92, 0xef, 0x45, 0x14, 0xf4, 0xbb, 0x0e, 0xb4, 0xe0, 0xf5, 0xd4, 0xae, 0x3c, 0x46, 0xe3, 0x57, 0xc8, 0x11, 0x87, 0xf7, 0xed, 0x17, 0x47, 0x33, 0xff, 0xf9, 0x59, 0xc3, 0xf9, 0xfa, 0xe6, 0x48, 0x6c, 0xfa, 0x13, 0x56, 0xa9, 0x56, 0x99, 0x21, 0x1d, 0xe5, };
2920 static const u8 ed25519_127_test_vectors_expected_sig[] = {
2921 	0x1b, 0x6b, 0x43, 0x77, 0xd2, 0xb9, 0x8e, 0x0f, 0x9d, 0x24, 0xae, 0x8d, 0xfe, 0x30, 0xe2, 0x39, 0x6e, 0x20, 0x04, 0x38, 0x0d, 0x34, 0x31, 0x48, 0x8e, 0x58, 0x43, 0xcf, 0x8d, 0x2d, 0x7a, 0x00, 0x70, 0xab, 0x21, 0xf8, 0xa3, 0xb5, 0x1c, 0xe8, 0x4d, 0x2f, 0x4b, 0xa2, 0x09, 0xf7, 0x39, 0xf9, 0x22, 0xbe, 0xbf, 0x79, 0x80, 0x96, 0x69, 0x3f, 0x56, 0x22, 0x87, 0x3d, 0x79, 0xae, 0x6f, 0x04, };
2922 static const ec_test_case ed25519_127_test_case = {
2923 	.name = "EDDSA25519-SHA512/wei25519 127",
2924 	.ec_str_p = &wei25519_str_params,
2925 	.priv_key = ed25519_127_test_vectors_priv_key,
2926 	.priv_key_len = sizeof(ed25519_127_test_vectors_priv_key),
2927 	.nn_random = NULL,
2928 	.hash_type = SHA512,
2929 	.msg = (const char *)ed25519_127_test_vectors_message,
2930 	.msglen = sizeof(ed25519_127_test_vectors_message),
2931 	.sig_type = EDDSA25519,
2932 	.exp_sig = ed25519_127_test_vectors_expected_sig,
2933 	.exp_siglen = sizeof(ed25519_127_test_vectors_expected_sig),
2934 	.adata = NULL,
2935 	.adata_len = 0
2936 };
2937 
2938 /************************************************/
2939 static const u8 ed25519_128_test_vectors_priv_key[] = {
2940 	0x81, 0x3c, 0x4d, 0xae, 0xd6, 0x7a, 0x19, 0x0d, 0x68, 0xbb, 0x63, 0x5d, 0x73, 0xaf, 0x6d, 0xa7, 0x4f, 0x32, 0xfd, 0xf7, 0xc4, 0x8c, 0xca, 0x6e, 0x59, 0x26, 0x29, 0x46, 0xb8, 0xe8, 0xc7, 0x1f, };
2941 static const u8 ed25519_128_test_vectors_message[] = {
2942 	0xce, 0x54, 0xcb, 0x04, 0x50, 0xe6, 0x89, 0xa0, 0xdb, 0xef, 0x78, 0x53, 0x08, 0xb3, 0x17, 0x74, 0x72, 0xfc, 0xd6, 0xd3, 0x82, 0x03, 0xe5, 0x8a, 0x05, 0x90, 0xb3, 0x1f, 0xa2, 0x53, 0xf9, 0xea, 0x59, 0x0b, 0xe5, 0x36, 0x8a, 0x92, 0x2d, 0xe8, 0x8b, 0x63, 0x45, 0x01, 0x02, 0x68, 0x44, 0x43, 0xfb, 0x81, 0x89, 0xe6, 0x01, 0x28, 0x20, 0x03, 0x32, 0x3b, 0x89, 0xc8, 0x1e, 0x92, 0xea, 0xef, 0x2b, 0x5d, 0xdc, 0x4a, 0x55, 0xc5, 0x3f, 0xa3, 0xcf, 0xad, 0x41, 0x60, 0x24, 0x8b, 0x3c, 0x28, 0x6f, 0xf8, 0x0d, 0x31, 0xd1, 0x61, 0xb7, 0xb8, 0xde, 0xe7, 0x13, 0x55, 0x2b, 0x56, 0xf1, 0x50, 0x7f, 0xb7, 0x2e, 0xad, 0xfa, 0x89, 0x05, 0x4e, 0x9d, 0x16, 0x00, 0xac, 0x87, 0x4c, 0x4b, 0x0a, 0x96, 0x10, 0x04, 0xeb, 0x6d, 0x0d, 0x4b, 0xfd, 0x2e, 0xcb, 0x9c, 0x73, 0x4f, 0x00, 0xba, };
2943 static const u8 ed25519_128_test_vectors_expected_sig[] = {
2944 	0xb4, 0x46, 0x57, 0x4f, 0xf6, 0xa4, 0xbd, 0x2b, 0x57, 0x2e, 0x48, 0x7c, 0x4a, 0xb4, 0x43, 0xca, 0x64, 0x10, 0x75, 0x16, 0x8a, 0xa4, 0xe1, 0x09, 0x2f, 0x71, 0xf3, 0x0b, 0xdb, 0x06, 0x8c, 0xe4, 0x6a, 0x39, 0x5e, 0xfe, 0xe1, 0xee, 0x66, 0x0b, 0x9f, 0xac, 0x26, 0xd5, 0x41, 0x09, 0x72, 0x2c, 0x15, 0xcd, 0xb7, 0x91, 0xbf, 0xb8, 0x7f, 0xff, 0x63, 0xc6, 0x59, 0x6a, 0xd4, 0xf2, 0x27, 0x0c, };
2945 static const ec_test_case ed25519_128_test_case = {
2946 	.name = "EDDSA25519-SHA512/wei25519 128",
2947 	.ec_str_p = &wei25519_str_params,
2948 	.priv_key = ed25519_128_test_vectors_priv_key,
2949 	.priv_key_len = sizeof(ed25519_128_test_vectors_priv_key),
2950 	.nn_random = NULL,
2951 	.hash_type = SHA512,
2952 	.msg = (const char *)ed25519_128_test_vectors_message,
2953 	.msglen = sizeof(ed25519_128_test_vectors_message),
2954 	.sig_type = EDDSA25519,
2955 	.exp_sig = ed25519_128_test_vectors_expected_sig,
2956 	.exp_siglen = sizeof(ed25519_128_test_vectors_expected_sig),
2957 	.adata = NULL,
2958 	.adata_len = 0
2959 };
2960 
2961 /************************************************/
2962 static const u8 ed25519_129_test_vectors_priv_key[] = {
2963 	0x84, 0x00, 0x96, 0x2b, 0xb7, 0x69, 0xf6, 0x38, 0x68, 0xca, 0xe5, 0xa3, 0xfe, 0xc8, 0xdb, 0x6a, 0x9c, 0x8d, 0x3f, 0x1c, 0x84, 0x6c, 0x8d, 0xce, 0xeb, 0x64, 0x2b, 0x69, 0x46, 0xef, 0xa8, 0xe3, };
2964 static const u8 ed25519_129_test_vectors_message[] = {
2965 	0xf7, 0xe6, 0x7d, 0x98, 0x2a, 0x2f, 0xf9, 0x3e, 0xcd, 0xa4, 0x08, 0x71, 0x52, 0xb4, 0x86, 0x4c, 0x94, 0x3b, 0x1b, 0xa7, 0x02, 0x1f, 0x54, 0x07, 0x04, 0x3c, 0xcb, 0x42, 0x53, 0xd3, 0x48, 0xc2, 0x7b, 0x92, 0x83, 0xac, 0xb2, 0x6c, 0x19, 0x4f, 0xd1, 0xcb, 0xb7, 0x9e, 0x6a, 0xfc, 0x32, 0xff, 0x68, 0x6b, 0x55, 0xb0, 0xb3, 0x61, 0x72, 0x18, 0xdc, 0xf3, 0x93, 0x16, 0xb4, 0xb6, 0x6b, 0x3c, 0x8c, 0x0d, 0x67, 0x26, 0x7a, 0x86, 0xdb, 0x8a, 0xdf, 0x37, 0x50, 0x80, 0x1b, 0xcf, 0x93, 0x27, 0xd4, 0xc2, 0x54, 0x41, 0xb9, 0x61, 0x97, 0x83, 0x2b, 0x4c, 0xde, 0x0e, 0xac, 0x3f, 0xf2, 0x28, 0x92, 0xa2, 0xf0, 0xbc, 0x17, 0xc2, 0xc2, 0x13, 0xc0, 0x23, 0x77, 0xa3, 0x33, 0xe3, 0x08, 0xed, 0x27, 0x16, 0x58, 0x04, 0x93, 0x83, 0xb7, 0xe2, 0xe5, 0x7b, 0x6b, 0x8b, 0x12, 0x55, 0x12, 0xe0, };
2966 static const u8 ed25519_129_test_vectors_expected_sig[] = {
2967 	0x0a, 0xd7, 0x1b, 0x00, 0x25, 0xf3, 0xd9, 0xa5, 0x0d, 0xb3, 0x38, 0x41, 0x4d, 0x6d, 0x67, 0x0e, 0x77, 0x99, 0xb7, 0x27, 0x0a, 0x84, 0x44, 0xf6, 0xae, 0x7f, 0x12, 0xae, 0x7e, 0xb7, 0x1b, 0xd0, 0x3f, 0xfd, 0x3c, 0x4f, 0x36, 0x63, 0x1f, 0x69, 0xfd, 0xcc, 0x40, 0x61, 0x46, 0x8f, 0xf5, 0x82, 0xed, 0xe4, 0x95, 0x24, 0x3e, 0xf1, 0x36, 0x1a, 0x3b, 0x32, 0x95, 0xfa, 0x81, 0x3b, 0xa2, 0x05, };
2968 static const ec_test_case ed25519_129_test_case = {
2969 	.name = "EDDSA25519-SHA512/wei25519 129",
2970 	.ec_str_p = &wei25519_str_params,
2971 	.priv_key = ed25519_129_test_vectors_priv_key,
2972 	.priv_key_len = sizeof(ed25519_129_test_vectors_priv_key),
2973 	.nn_random = NULL,
2974 	.hash_type = SHA512,
2975 	.msg = (const char *)ed25519_129_test_vectors_message,
2976 	.msglen = sizeof(ed25519_129_test_vectors_message),
2977 	.sig_type = EDDSA25519,
2978 	.exp_sig = ed25519_129_test_vectors_expected_sig,
2979 	.exp_siglen = sizeof(ed25519_129_test_vectors_expected_sig),
2980 	.adata = NULL,
2981 	.adata_len = 0
2982 };
2983 
2984 /************************************************/
2985 static const u8 ed25519_130_test_vectors_priv_key[] = {
2986 	0x62, 0x88, 0x72, 0x20, 0x35, 0xd1, 0xea, 0x69, 0x9b, 0xc7, 0xcf, 0xdf, 0x18, 0xd8, 0x96, 0x25, 0x42, 0x31, 0x80, 0xb6, 0x83, 0xfa, 0x74, 0x63, 0x9f, 0x4f, 0x30, 0xf1, 0x53, 0x59, 0xcc, 0x85, };
2987 static const u8 ed25519_130_test_vectors_message[] = {
2988 	0x8b, 0x6c, 0xaa, 0xca, 0xc5, 0x1d, 0x89, 0x49, 0xfb, 0x86, 0xac, 0xbc, 0xb1, 0xb9, 0x9d, 0x85, 0x9f, 0xf6, 0x7c, 0x64, 0x14, 0x7b, 0xc1, 0x21, 0x69, 0x09, 0xdc, 0xab, 0x07, 0xee, 0x6e, 0xf0, 0x9f, 0x40, 0x38, 0x63, 0x32, 0x73, 0x94, 0x68, 0x9d, 0xc3, 0x4a, 0xbc, 0x77, 0x8f, 0xcb, 0x5c, 0x1f, 0x50, 0x91, 0xac, 0xf5, 0xa0, 0x8f, 0x9d, 0x84, 0x22, 0x11, 0xd1, 0xae, 0x2e, 0xb4, 0x0b, 0xe9, 0xbb, 0x8d, 0x66, 0x79, 0x07, 0x74, 0x71, 0x54, 0x7a, 0x6c, 0x71, 0xff, 0x77, 0xb5, 0x19, 0xd4, 0xb7, 0x10, 0x8e, 0x32, 0xbc, 0x46, 0x25, 0x1c, 0x60, 0xde, 0xe8, 0xe3, 0x32, 0xb6, 0x22, 0x93, 0x16, 0xe6, 0xd5, 0x7c, 0x22, 0xab, 0x82, 0x6f, 0xf1, 0xbc, 0x33, 0xf2, 0xb0, 0x21, 0x38, 0x07, 0xc1, 0x92, 0x80, 0xaf, 0x11, 0x0f, 0xd2, 0x6e, 0xe2, 0x74, 0x68, 0x20, 0x1c, 0xff, 0x49, 0xcb, };
2989 static const u8 ed25519_130_test_vectors_expected_sig[] = {
2990 	0x9d, 0xec, 0x92, 0xb6, 0xe8, 0x9a, 0xdb, 0xe8, 0xf4, 0xe1, 0xb5, 0xe9, 0x3a, 0xc4, 0xfc, 0xf9, 0x57, 0xde, 0x7d, 0x19, 0x70, 0xa2, 0x26, 0x77, 0x0e, 0xc4, 0xed, 0xa6, 0x47, 0xc8, 0xe3, 0xb3, 0xdf, 0xfb, 0x27, 0x31, 0xa3, 0x9e, 0x16, 0xe4, 0xa0, 0x11, 0x9d, 0x36, 0x62, 0xa9, 0x37, 0xe5, 0x60, 0x52, 0x24, 0x91, 0xec, 0x7a, 0x16, 0x96, 0xbe, 0x04, 0xc0, 0x76, 0xb1, 0x2e, 0x35, 0x01, };
2991 static const ec_test_case ed25519_130_test_case = {
2992 	.name = "EDDSA25519-SHA512/wei25519 130",
2993 	.ec_str_p = &wei25519_str_params,
2994 	.priv_key = ed25519_130_test_vectors_priv_key,
2995 	.priv_key_len = sizeof(ed25519_130_test_vectors_priv_key),
2996 	.nn_random = NULL,
2997 	.hash_type = SHA512,
2998 	.msg = (const char *)ed25519_130_test_vectors_message,
2999 	.msglen = sizeof(ed25519_130_test_vectors_message),
3000 	.sig_type = EDDSA25519,
3001 	.exp_sig = ed25519_130_test_vectors_expected_sig,
3002 	.exp_siglen = sizeof(ed25519_130_test_vectors_expected_sig),
3003 	.adata = NULL,
3004 	.adata_len = 0
3005 };
3006 
3007 /************************************************/
3008 static const u8 ed25519_131_test_vectors_priv_key[] = {
3009 	0x13, 0x03, 0x8a, 0x3a, 0x65, 0xef, 0x32, 0x75, 0x9a, 0x9c, 0xd9, 0x03, 0xac, 0xb5, 0x54, 0xb2, 0x52, 0xde, 0x00, 0xe7, 0xcd, 0xb7, 0x7b, 0xbe, 0xd1, 0x97, 0x0b, 0x20, 0x68, 0x0e, 0xe1, 0x7b, };
3010 static const u8 ed25519_131_test_vectors_message[] = {
3011 	0xdd, 0xf0, 0x0b, 0x40, 0x33, 0xa2, 0xa0, 0x88, 0x02, 0x2d, 0xab, 0xe9, 0x33, 0x56, 0x43, 0x2f, 0x50, 0xdd, 0xc6, 0xc6, 0xe1, 0xa6, 0x59, 0xdc, 0x1a, 0x93, 0x12, 0x4a, 0x4c, 0x2f, 0xff, 0xfd, 0x18, 0x27, 0x65, 0xa2, 0xf5, 0x6c, 0x43, 0xea, 0x0b, 0xfd, 0x8d, 0xe8, 0x01, 0x50, 0x60, 0x88, 0x9a, 0xe6, 0x94, 0x1c, 0x3f, 0x3e, 0x25, 0x5d, 0x44, 0x21, 0xa1, 0xc3, 0x62, 0x01, 0xbe, 0x84, 0x6a, 0x27, 0x38, 0xa7, 0x1f, 0x12, 0x0c, 0xad, 0x59, 0x8c, 0xa8, 0x52, 0x7d, 0x70, 0xff, 0x8d, 0x5a, 0x09, 0x93, 0xb5, 0x5c, 0xb5, 0x15, 0x35, 0x17, 0x11, 0x0a, 0x41, 0x96, 0x2d, 0xaf, 0xf4, 0x22, 0x50, 0x15, 0x8f, 0x20, 0x96, 0xd1, 0xdd, 0xaf, 0x71, 0x86, 0xe5, 0x02, 0x98, 0xcb, 0xe5, 0x1f, 0xcb, 0x42, 0x9c, 0xbe, 0xa4, 0x11, 0x29, 0x3f, 0x8a, 0x7b, 0xd9, 0xcf, 0x06, 0x9f, 0xa2, 0x37, 0xe4, };
3012 static const u8 ed25519_131_test_vectors_expected_sig[] = {
3013 	0x52, 0x61, 0x55, 0x8e, 0xcc, 0x3c, 0x98, 0xff, 0x36, 0x35, 0x1f, 0x42, 0xf5, 0x04, 0xca, 0xd4, 0xa3, 0x2f, 0xfd, 0xa5, 0xa7, 0x44, 0x56, 0x09, 0x60, 0xb4, 0xc1, 0x06, 0xe4, 0x49, 0x2f, 0x02, 0xe2, 0x04, 0x78, 0x88, 0x7a, 0xfe, 0xe4, 0xf7, 0x70, 0xf0, 0x55, 0x97, 0xa7, 0xe3, 0x88, 0xca, 0xce, 0xae, 0x80, 0x5a, 0xe3, 0x51, 0xe0, 0xe4, 0x5e, 0x8e, 0x57, 0x8e, 0x6a, 0x6f, 0xf2, 0x0c, };
3014 static const ec_test_case ed25519_131_test_case = {
3015 	.name = "EDDSA25519-SHA512/wei25519 131",
3016 	.ec_str_p = &wei25519_str_params,
3017 	.priv_key = ed25519_131_test_vectors_priv_key,
3018 	.priv_key_len = sizeof(ed25519_131_test_vectors_priv_key),
3019 	.nn_random = NULL,
3020 	.hash_type = SHA512,
3021 	.msg = (const char *)ed25519_131_test_vectors_message,
3022 	.msglen = sizeof(ed25519_131_test_vectors_message),
3023 	.sig_type = EDDSA25519,
3024 	.exp_sig = ed25519_131_test_vectors_expected_sig,
3025 	.exp_siglen = sizeof(ed25519_131_test_vectors_expected_sig),
3026 	.adata = NULL,
3027 	.adata_len = 0
3028 };
3029 
3030 /************************************************/
3031 static const u8 ed25519_132_test_vectors_priv_key[] = {
3032 	0xb9, 0xde, 0x5b, 0x06, 0x3d, 0x3c, 0xa3, 0xa7, 0x73, 0xf1, 0x14, 0x94, 0x1b, 0x2e, 0x42, 0x27, 0xc0, 0x75, 0x11, 0xc0, 0xf5, 0xc0, 0x60, 0x17, 0xb9, 0xc8, 0x84, 0x50, 0x18, 0xf2, 0x34, 0x32, };
3033 static const u8 ed25519_132_test_vectors_message[] = {
3034 	0x94, 0x93, 0xcc, 0x23, 0x89, 0x6b, 0x84, 0x09, 0x60, 0x46, 0xae, 0x10, 0x53, 0xaf, 0xe3, 0x94, 0x99, 0xe9, 0x42, 0x42, 0x54, 0xb3, 0x66, 0xfe, 0x14, 0x3f, 0x4d, 0xa3, 0x21, 0xe2, 0xdc, 0x9e, 0x47, 0x84, 0x20, 0x8e, 0x12, 0xa5, 0x42, 0xd8, 0x99, 0x82, 0x8d, 0xde, 0x7e, 0xff, 0x62, 0x5a, 0x7f, 0x12, 0x41, 0x69, 0x90, 0xc2, 0x84, 0x1f, 0xfb, 0x09, 0x5b, 0xf9, 0x4c, 0x0c, 0x61, 0x0e, 0x5a, 0x66, 0x39, 0x18, 0xb6, 0x89, 0x03, 0x1c, 0xcd, 0x6b, 0x51, 0x93, 0x49, 0xd0, 0x4d, 0xe1, 0xc2, 0x12, 0xca, 0x2a, 0x9d, 0x7a, 0xbf, 0x52, 0xe1, 0xb4, 0xfd, 0x46, 0x7b, 0xb6, 0x65, 0xb6, 0x91, 0x9e, 0xf8, 0xf9, 0x16, 0x17, 0xe2, 0x05, 0x56, 0x5b, 0xf5, 0x66, 0x47, 0xe5, 0xf8, 0xd5, 0x08, 0xea, 0x20, 0x0a, 0x84, 0x46, 0x7f, 0x8f, 0xa1, 0x22, 0xe7, 0x4b, 0xc3, 0xb9, 0x97, 0x9f, 0x11, 0x74, 0xe5, };
3035 static const u8 ed25519_132_test_vectors_expected_sig[] = {
3036 	0x92, 0xba, 0x76, 0x0d, 0x14, 0xd1, 0x41, 0x5c, 0xfa, 0xf2, 0x18, 0xca, 0x84, 0x70, 0x14, 0x08, 0x8a, 0xe5, 0x1a, 0xd8, 0x21, 0x11, 0x3a, 0x6f, 0x86, 0x30, 0x35, 0x6f, 0x7b, 0xa8, 0x5c, 0x00, 0x5e, 0x23, 0x30, 0xf1, 0x06, 0x6d, 0x0d, 0xf4, 0x64, 0x80, 0x60, 0x52, 0xa4, 0x17, 0x46, 0x10, 0x05, 0x04, 0x62, 0xf3, 0xe0, 0x13, 0xd7, 0x02, 0xe7, 0xc7, 0x71, 0x85, 0xa0, 0x32, 0x58, 0x0b, };
3037 static const ec_test_case ed25519_132_test_case = {
3038 	.name = "EDDSA25519-SHA512/wei25519 132",
3039 	.ec_str_p = &wei25519_str_params,
3040 	.priv_key = ed25519_132_test_vectors_priv_key,
3041 	.priv_key_len = sizeof(ed25519_132_test_vectors_priv_key),
3042 	.nn_random = NULL,
3043 	.hash_type = SHA512,
3044 	.msg = (const char *)ed25519_132_test_vectors_message,
3045 	.msglen = sizeof(ed25519_132_test_vectors_message),
3046 	.sig_type = EDDSA25519,
3047 	.exp_sig = ed25519_132_test_vectors_expected_sig,
3048 	.exp_siglen = sizeof(ed25519_132_test_vectors_expected_sig),
3049 	.adata = NULL,
3050 	.adata_len = 0
3051 };
3052 
3053 /************************************************/
3054 static const u8 ed25519_133_test_vectors_priv_key[] = {
3055 	0x8f, 0xf0, 0x29, 0x7c, 0xc0, 0x88, 0x42, 0xb5, 0xe6, 0x75, 0x52, 0xec, 0x28, 0x43, 0xe0, 0x43, 0x53, 0xa3, 0x4d, 0x74, 0xef, 0x89, 0xb8, 0x56, 0x5d, 0x97, 0x20, 0x5b, 0x74, 0xca, 0x13, 0x3a, };
3056 static const u8 ed25519_133_test_vectors_message[] = {
3057 	0x2b, 0xdc, 0x3a, 0x48, 0x6c, 0x5e, 0x4e, 0xa6, 0x2d, 0xcf, 0xec, 0x8a, 0x9d, 0x4f, 0xcf, 0x9e, 0xa9, 0x49, 0x0d, 0xbc, 0xc7, 0x15, 0x61, 0x5d, 0x58, 0x49, 0x0a, 0x72, 0xce, 0x83, 0x3f, 0xa2, 0x23, 0x87, 0xca, 0x50, 0xa0, 0x05, 0x25, 0x08, 0xcf, 0x0a, 0xff, 0x1c, 0xa7, 0x27, 0xf0, 0xfe, 0xd4, 0x6f, 0xfa, 0x7d, 0x3c, 0x8e, 0x23, 0xc5, 0xbb, 0x01, 0xd4, 0x7e, 0x90, 0xff, 0x06, 0xd3, 0x85, 0x8a, 0x55, 0x7d, 0x99, 0x26, 0x48, 0x15, 0x79, 0xda, 0xf4, 0x38, 0x4a, 0xea, 0x50, 0xe9, 0x6e, 0xc6, 0x15, 0xd2, 0xa3, 0xbf, 0x3c, 0x11, 0x22, 0xf1, 0xf2, 0x4d, 0xd6, 0xed, 0x98, 0xa5, 0xde, 0x42, 0x18, 0x83, 0x58, 0x9c, 0x21, 0x39, 0x98, 0xca, 0x54, 0x32, 0x37, 0x3e, 0x68, 0xbb, 0xbe, 0x89, 0x42, 0x8c, 0xa9, 0x88, 0x5d, 0x05, 0x93, 0xd5, 0xe6, 0x21, 0x51, 0x16, 0xb8, 0x26, 0x63, 0x86, 0x45, 0x2b, };
3058 static const u8 ed25519_133_test_vectors_expected_sig[] = {
3059 	0x07, 0x83, 0x73, 0x7f, 0x70, 0x6e, 0x6f, 0xf3, 0x66, 0x14, 0xf8, 0x50, 0x07, 0x4f, 0xca, 0x1f, 0x48, 0x5f, 0x24, 0xfc, 0xde, 0x2a, 0x28, 0xaf, 0x54, 0x4f, 0x37, 0xab, 0xd6, 0x9b, 0x7a, 0x58, 0x1d, 0xef, 0xd8, 0xc7, 0x71, 0xb0, 0x31, 0xe1, 0x08, 0xd1, 0x9d, 0x78, 0x8c, 0x74, 0xc5, 0xf2, 0x0b, 0xb3, 0xf1, 0xc2, 0x1c, 0xd9, 0x2b, 0xe3, 0x17, 0xba, 0xcd, 0x8f, 0x65, 0x0b, 0x49, 0x05, };
3060 static const ec_test_case ed25519_133_test_case = {
3061 	.name = "EDDSA25519-SHA512/wei25519 133",
3062 	.ec_str_p = &wei25519_str_params,
3063 	.priv_key = ed25519_133_test_vectors_priv_key,
3064 	.priv_key_len = sizeof(ed25519_133_test_vectors_priv_key),
3065 	.nn_random = NULL,
3066 	.hash_type = SHA512,
3067 	.msg = (const char *)ed25519_133_test_vectors_message,
3068 	.msglen = sizeof(ed25519_133_test_vectors_message),
3069 	.sig_type = EDDSA25519,
3070 	.exp_sig = ed25519_133_test_vectors_expected_sig,
3071 	.exp_siglen = sizeof(ed25519_133_test_vectors_expected_sig),
3072 	.adata = NULL,
3073 	.adata_len = 0
3074 };
3075 
3076 /************************************************/
3077 static const u8 ed25519_134_test_vectors_priv_key[] = {
3078 	0x05, 0x0d, 0x55, 0x3d, 0x28, 0x2d, 0xca, 0x32, 0x69, 0xc8, 0x3c, 0x18, 0x17, 0x68, 0xec, 0x06, 0x7b, 0x81, 0xc9, 0xfe, 0x0c, 0x94, 0xf2, 0xa0, 0xeb, 0xbb, 0x0c, 0x94, 0x2d, 0x0f, 0xcd, 0x7c, };
3079 static const u8 ed25519_134_test_vectors_message[] = {
3080 	0x15, 0xe1, 0x3b, 0x8c, 0x01, 0x00, 0x4f, 0x6a, 0xa5, 0xb2, 0x36, 0xdb, 0xb2, 0x81, 0x67, 0x7f, 0x74, 0x6d, 0x81, 0xe5, 0x48, 0xe0, 0xaa, 0x80, 0xf0, 0xe4, 0x14, 0x52, 0x15, 0x21, 0xd8, 0x56, 0xcd, 0x69, 0x4e, 0x7c, 0x91, 0x52, 0xbb, 0x5e, 0x43, 0x77, 0x6b, 0x60, 0xf6, 0xb5, 0x60, 0xed, 0x1a, 0xd3, 0xe4, 0xb3, 0x90, 0xdb, 0xf3, 0xe4, 0x6e, 0xf9, 0x25, 0x74, 0x43, 0xf3, 0x9c, 0x14, 0x9e, 0x02, 0x40, 0xa0, 0x2d, 0x02, 0x1e, 0x1e, 0x3d, 0x7d, 0x04, 0x6b, 0x26, 0xfd, 0x00, 0x4e, 0xee, 0x7c, 0xa1, 0x6a, 0x80, 0x59, 0xe1, 0x26, 0xc7, 0x4c, 0xb3, 0xf2, 0x19, 0x4d, 0xb4, 0x7b, 0xf6, 0x04, 0x65, 0xec, 0xef, 0x5c, 0x70, 0x4d, 0x2e, 0x2c, 0x75, 0xe2, 0xe5, 0x00, 0x60, 0xea, 0x2a, 0x31, 0xcb, 0x72, 0xb7, 0xb3, 0xc6, 0xb1, 0xb5, 0xec, 0x72, 0xab, 0x38, 0x00, 0x40, 0x85, 0x28, 0x1a, 0x22, 0xfe, 0x86, };
3081 static const u8 ed25519_134_test_vectors_expected_sig[] = {
3082 	0x3f, 0x0e, 0x83, 0x76, 0x5b, 0x31, 0xbb, 0xe8, 0xe1, 0xfb, 0x92, 0xe9, 0x67, 0x8d, 0x6c, 0xde, 0x57, 0x1a, 0x03, 0xba, 0x7f, 0x1d, 0xcc, 0x11, 0x28, 0x46, 0x1f, 0x70, 0x85, 0x25, 0x45, 0x7f, 0x4e, 0x0e, 0x23, 0x53, 0xaa, 0x2b, 0x59, 0x8c, 0x06, 0x3f, 0xf1, 0xbf, 0xfd, 0xac, 0x91, 0x6b, 0x5a, 0x22, 0x00, 0x65, 0x51, 0x56, 0x90, 0x4b, 0x05, 0x85, 0x57, 0x7a, 0x16, 0x28, 0x56, 0x0d, };
3083 static const ec_test_case ed25519_134_test_case = {
3084 	.name = "EDDSA25519-SHA512/wei25519 134",
3085 	.ec_str_p = &wei25519_str_params,
3086 	.priv_key = ed25519_134_test_vectors_priv_key,
3087 	.priv_key_len = sizeof(ed25519_134_test_vectors_priv_key),
3088 	.nn_random = NULL,
3089 	.hash_type = SHA512,
3090 	.msg = (const char *)ed25519_134_test_vectors_message,
3091 	.msglen = sizeof(ed25519_134_test_vectors_message),
3092 	.sig_type = EDDSA25519,
3093 	.exp_sig = ed25519_134_test_vectors_expected_sig,
3094 	.exp_siglen = sizeof(ed25519_134_test_vectors_expected_sig),
3095 	.adata = NULL,
3096 	.adata_len = 0
3097 };
3098 
3099 /************************************************/
3100 static const u8 ed25519_135_test_vectors_priv_key[] = {
3101 	0x69, 0x49, 0x7c, 0xd7, 0xb4, 0xe8, 0x68, 0xcf, 0xa0, 0x32, 0x8d, 0x92, 0xbd, 0x60, 0x52, 0xd7, 0x72, 0xb2, 0x76, 0x73, 0x95, 0xc1, 0x45, 0x95, 0xb2, 0x79, 0x85, 0x1a, 0x9c, 0xdd, 0x31, 0xaa, };
3102 static const u8 ed25519_135_test_vectors_message[] = {
3103 	0x53, 0xcd, 0x08, 0x0a, 0x0c, 0x61, 0xf1, 0xa0, 0x93, 0xd3, 0xb3, 0xa7, 0x45, 0x71, 0xc2, 0x96, 0x30, 0x3f, 0x36, 0x3b, 0x41, 0x07, 0xed, 0xbe, 0x88, 0x0b, 0x7a, 0xa9, 0xdf, 0xe4, 0x4a, 0xb5, 0xd5, 0xdc, 0x5f, 0x74, 0xbe, 0x9c, 0x8d, 0x87, 0x6f, 0x04, 0xd7, 0x54, 0x65, 0x34, 0x91, 0xab, 0x51, 0xb1, 0x35, 0xfc, 0x95, 0x3f, 0x71, 0x28, 0x7b, 0x62, 0xff, 0x41, 0xb6, 0x7c, 0x74, 0x2b, 0xd3, 0x44, 0x56, 0x71, 0xa9, 0xd4, 0xf2, 0xdc, 0x17, 0x4c, 0xa1, 0xb0, 0x33, 0x5f, 0x78, 0x62, 0x7a, 0x0d, 0xd4, 0xb3, 0x06, 0x50, 0x50, 0x41, 0x78, 0x03, 0x9e, 0x73, 0x93, 0x63, 0x85, 0x10, 0xff, 0xe8, 0x40, 0x91, 0xb5, 0x72, 0x98, 0xd3, 0xac, 0x90, 0x01, 0xc3, 0x67, 0xc1, 0x45, 0x2f, 0xbc, 0xb3, 0x3d, 0xc5, 0x4a, 0x5d, 0xc3, 0x16, 0xfb, 0x2a, 0x52, 0x70, 0x76, 0x4a, 0x2a, 0xc8, 0x20, 0xa0, 0xb6, 0x3f, 0xbd, 0xc6, };
3104 static const u8 ed25519_135_test_vectors_expected_sig[] = {
3105 	0xbe, 0xaf, 0xa5, 0x83, 0x40, 0x96, 0x09, 0x08, 0xe8, 0xd8, 0x6e, 0x40, 0x32, 0x9e, 0x3a, 0x45, 0x23, 0xfc, 0x7b, 0xe7, 0x70, 0xad, 0xdb, 0x86, 0xe3, 0x4c, 0x37, 0x72, 0xf8, 0x4c, 0xd9, 0xfb, 0x33, 0x8d, 0x1f, 0x3b, 0x65, 0xbf, 0xcd, 0xb0, 0x9f, 0x35, 0xc6, 0xda, 0x36, 0xd1, 0xa3, 0xad, 0xf8, 0xf9, 0x1f, 0x1f, 0xfd, 0x57, 0x82, 0xcc, 0x83, 0x02, 0x06, 0x43, 0x3a, 0x08, 0x41, 0x0d, };
3106 static const ec_test_case ed25519_135_test_case = {
3107 	.name = "EDDSA25519-SHA512/wei25519 135",
3108 	.ec_str_p = &wei25519_str_params,
3109 	.priv_key = ed25519_135_test_vectors_priv_key,
3110 	.priv_key_len = sizeof(ed25519_135_test_vectors_priv_key),
3111 	.nn_random = NULL,
3112 	.hash_type = SHA512,
3113 	.msg = (const char *)ed25519_135_test_vectors_message,
3114 	.msglen = sizeof(ed25519_135_test_vectors_message),
3115 	.sig_type = EDDSA25519,
3116 	.exp_sig = ed25519_135_test_vectors_expected_sig,
3117 	.exp_siglen = sizeof(ed25519_135_test_vectors_expected_sig),
3118 	.adata = NULL,
3119 	.adata_len = 0
3120 };
3121 
3122 /************************************************/
3123 static const u8 ed25519_136_test_vectors_priv_key[] = {
3124 	0x21, 0x65, 0xa4, 0x86, 0xb6, 0x12, 0xbb, 0xff, 0x52, 0x9c, 0xd0, 0x03, 0x46, 0x96, 0x4a, 0x3c, 0xb8, 0xcd, 0xcf, 0xfa, 0x51, 0xdc, 0x3d, 0x52, 0x4d, 0xd5, 0xad, 0xc5, 0xac, 0x93, 0x6d, 0x68, };
3125 static const u8 ed25519_136_test_vectors_message[] = {
3126 	0xb7, 0x28, 0xda, 0x7a, 0x36, 0x16, 0x7c, 0x60, 0x85, 0xbd, 0x2d, 0x96, 0x2c, 0xf6, 0x39, 0x59, 0xfa, 0xcd, 0x95, 0xc9, 0xad, 0x45, 0x42, 0x02, 0x8a, 0xfb, 0xa9, 0x0e, 0xc9, 0xc6, 0xc0, 0x76, 0x0b, 0xda, 0xe9, 0x35, 0x42, 0x9c, 0x3f, 0xeb, 0x39, 0x33, 0xe2, 0xf0, 0x00, 0x42, 0xc6, 0x72, 0xad, 0x2c, 0xd7, 0x34, 0x8d, 0x92, 0xbc, 0x33, 0xf8, 0x17, 0x51, 0xe2, 0x94, 0xae, 0x91, 0x71, 0xb9, 0x45, 0xb1, 0x93, 0x14, 0x4e, 0xf8, 0xac, 0xb9, 0xa1, 0xbd, 0x9a, 0xbf, 0x04, 0x75, 0xce, 0x0d, 0x0a, 0xc7, 0x89, 0xb2, 0x00, 0xc3, 0x2e, 0x9c, 0x9a, 0x27, 0x36, 0xb1, 0x68, 0x36, 0x9c, 0xe5, 0xf9, 0x7b, 0x1e, 0x8d, 0x2e, 0x79, 0x00, 0xe1, 0xa7, 0x59, 0x17, 0x84, 0x41, 0xf1, 0xfc, 0x43, 0x05, 0x64, 0xae, 0x12, 0x9b, 0xae, 0x78, 0x57, 0x74, 0x05, 0x11, 0xa6, 0x68, 0xf3, 0x2c, 0x0a, 0x3b, 0x07, 0x7a, 0x9d, 0x8b, 0x19, };
3127 static const u8 ed25519_136_test_vectors_expected_sig[] = {
3128 	0x7e, 0xc6, 0xfb, 0xa5, 0x6b, 0xa5, 0x24, 0x60, 0xa1, 0xb4, 0xf2, 0x73, 0x86, 0x89, 0xc1, 0x88, 0x3d, 0xda, 0x9a, 0xaf, 0xfc, 0x8b, 0xde, 0x17, 0xcb, 0x60, 0x29, 0xbd, 0xce, 0x3a, 0x0e, 0xbe, 0x2f, 0xff, 0xda, 0x55, 0x93, 0x9b, 0x70, 0xbb, 0xd0, 0x7f, 0xdb, 0xf6, 0xfc, 0x5c, 0xda, 0x87, 0xfe, 0xd8, 0xba, 0x58, 0x57, 0x5f, 0x89, 0x4a, 0x36, 0x6e, 0x45, 0xe5, 0x70, 0x5e, 0xea, 0x09, };
3129 static const ec_test_case ed25519_136_test_case = {
3130 	.name = "EDDSA25519-SHA512/wei25519 136",
3131 	.ec_str_p = &wei25519_str_params,
3132 	.priv_key = ed25519_136_test_vectors_priv_key,
3133 	.priv_key_len = sizeof(ed25519_136_test_vectors_priv_key),
3134 	.nn_random = NULL,
3135 	.hash_type = SHA512,
3136 	.msg = (const char *)ed25519_136_test_vectors_message,
3137 	.msglen = sizeof(ed25519_136_test_vectors_message),
3138 	.sig_type = EDDSA25519,
3139 	.exp_sig = ed25519_136_test_vectors_expected_sig,
3140 	.exp_siglen = sizeof(ed25519_136_test_vectors_expected_sig),
3141 	.adata = NULL,
3142 	.adata_len = 0
3143 };
3144 
3145 /************************************************/
3146 static const u8 ed25519_137_test_vectors_priv_key[] = {
3147 	0x1c, 0x64, 0xad, 0x63, 0xdd, 0x14, 0x70, 0x34, 0x59, 0x8e, 0x12, 0x8f, 0x74, 0x06, 0xec, 0x05, 0x30, 0x74, 0x6e, 0xa1, 0xc5, 0xb7, 0x2e, 0xcf, 0x79, 0xe8, 0x88, 0x06, 0x54, 0x86, 0xfa, 0x1b, };
3148 static const u8 ed25519_137_test_vectors_message[] = {
3149 	0x9e, 0xbd, 0x8e, 0x33, 0x78, 0x93, 0xbb, 0x05, 0x3e, 0xf2, 0xb9, 0xe3, 0x26, 0x9d, 0xf5, 0x48, 0x48, 0x49, 0x4f, 0x03, 0xcd, 0x63, 0x57, 0x6b, 0x33, 0xe6, 0x4b, 0x10, 0x80, 0xbe, 0x4b, 0xe0, 0x15, 0x26, 0x4a, 0x40, 0x3f, 0xb9, 0x60, 0x2b, 0xbf, 0x90, 0xca, 0x19, 0xb2, 0x41, 0xa9, 0xb6, 0x68, 0x63, 0x90, 0x9b, 0x90, 0x08, 0xce, 0x1b, 0x2f, 0xfc, 0xf2, 0x36, 0xef, 0xa4, 0xc2, 0x66, 0x8f, 0x0f, 0x47, 0xdb, 0x9f, 0xf5, 0xfa, 0x15, 0x7d, 0x9c, 0xb6, 0x05, 0x41, 0x2b, 0xe7, 0xdd, 0x8b, 0x07, 0xea, 0x87, 0x8c, 0xcc, 0xae, 0x6b, 0xf5, 0x0f, 0x93, 0x5b, 0x86, 0xd1, 0x9e, 0x1b, 0x64, 0x8b, 0x69, 0xe5, 0x28, 0x55, 0x3a, 0x56, 0xd8, 0xaf, 0xb7, 0x82, 0x21, 0xad, 0x53, 0x30, 0x7b, 0x7a, 0x4e, 0xc8, 0xd2, 0xfd, 0x48, 0x61, 0xb5, 0x5d, 0xc5, 0xda, 0xe8, 0xe9, 0x3e, 0xf3, 0x87, 0xfb, 0xbe, 0x0b, 0x4c, 0xe7, 0xf7, 0x88, };
3150 static const u8 ed25519_137_test_vectors_expected_sig[] = {
3151 	0x74, 0x77, 0xe5, 0x41, 0x58, 0xf1, 0x3b, 0x71, 0x28, 0xc0, 0xa1, 0x10, 0xca, 0x6b, 0x65, 0xf4, 0x25, 0x14, 0xfb, 0x70, 0xcd, 0x5c, 0xf2, 0x8a, 0x8b, 0x1c, 0xc6, 0x11, 0x0e, 0xa0, 0x6f, 0xcf, 0x94, 0x29, 0x0d, 0xa1, 0x3f, 0x85, 0xa1, 0x1c, 0x23, 0x51, 0xd3, 0xbb, 0xcc, 0xbb, 0x4c, 0x64, 0xe0, 0x21, 0x5d, 0x6d, 0x0f, 0x00, 0x99, 0xe7, 0xf2, 0x7b, 0xc9, 0x4e, 0x94, 0x9b, 0x15, 0x0b, };
3152 static const ec_test_case ed25519_137_test_case = {
3153 	.name = "EDDSA25519-SHA512/wei25519 137",
3154 	.ec_str_p = &wei25519_str_params,
3155 	.priv_key = ed25519_137_test_vectors_priv_key,
3156 	.priv_key_len = sizeof(ed25519_137_test_vectors_priv_key),
3157 	.nn_random = NULL,
3158 	.hash_type = SHA512,
3159 	.msg = (const char *)ed25519_137_test_vectors_message,
3160 	.msglen = sizeof(ed25519_137_test_vectors_message),
3161 	.sig_type = EDDSA25519,
3162 	.exp_sig = ed25519_137_test_vectors_expected_sig,
3163 	.exp_siglen = sizeof(ed25519_137_test_vectors_expected_sig),
3164 	.adata = NULL,
3165 	.adata_len = 0
3166 };
3167 
3168 /************************************************/
3169 static const u8 ed25519_138_test_vectors_priv_key[] = {
3170 	0x55, 0xab, 0xbc, 0x5d, 0xac, 0x41, 0x28, 0x13, 0x4d, 0xc8, 0xc6, 0x01, 0x8a, 0x21, 0x3e, 0xd4, 0xb6, 0x0f, 0xcc, 0x8e, 0x90, 0xcb, 0xd4, 0x1d, 0xb2, 0xd2, 0x1e, 0xda, 0x53, 0x73, 0xe9, 0x36, };
3171 static const u8 ed25519_138_test_vectors_message[] = {
3172 	0x47, 0x01, 0x0e, 0x13, 0x98, 0xad, 0x55, 0xfa, 0xbe, 0x37, 0x1d, 0xd8, 0x64, 0x8f, 0x76, 0x8d, 0x90, 0xdf, 0x4b, 0x96, 0x5a, 0x3b, 0x39, 0x61, 0x00, 0xb3, 0x03, 0xb4, 0x0a, 0x17, 0x51, 0x8b, 0xed, 0x6d, 0x86, 0xb0, 0x9f, 0x73, 0x4a, 0xb7, 0xc1, 0x0b, 0x5f, 0x3a, 0x01, 0xb5, 0x3d, 0xee, 0xc5, 0xf8, 0x53, 0x4b, 0x70, 0xc7, 0x9f, 0x3f, 0x29, 0xb2, 0x84, 0xfd, 0xec, 0x48, 0x6f, 0x22, 0xf4, 0x4c, 0x22, 0xcc, 0xd5, 0xc6, 0x46, 0x35, 0x94, 0x41, 0x52, 0x67, 0xba, 0xa6, 0x11, 0xf7, 0x0b, 0x1b, 0x31, 0x6c, 0xaa, 0x1b, 0x68, 0xb5, 0xe0, 0xe9, 0x9b, 0x31, 0xc5, 0xbb, 0x0c, 0xe1, 0x36, 0x79, 0xa2, 0x3c, 0x31, 0xa6, 0x39, 0x99, 0x69, 0x81, 0x64, 0xcb, 0xf3, 0x7d, 0x10, 0x3b, 0xa9, 0x24, 0x90, 0x18, 0x8b, 0xe5, 0x99, 0x37, 0xf1, 0x23, 0x04, 0x3e, 0xc7, 0x86, 0xef, 0xe3, 0xd4, 0x11, 0xf9, 0xb0, 0x62, 0x3a, 0x6a, 0xd9, 0x72, };
3173 static const u8 ed25519_138_test_vectors_expected_sig[] = {
3174 	0xf6, 0xa6, 0x1c, 0x2e, 0x66, 0x1a, 0x9e, 0xb7, 0xbd, 0xe1, 0x82, 0xe3, 0x8e, 0xc9, 0x9a, 0xf9, 0x85, 0xf6, 0x16, 0x98, 0xa5, 0xd7, 0xfa, 0x43, 0x0d, 0x16, 0xe3, 0xf1, 0xa9, 0x37, 0x09, 0xb7, 0x55, 0x22, 0x32, 0x0d, 0xe4, 0x8a, 0xfc, 0xc5, 0x95, 0xab, 0x20, 0x91, 0x22, 0xae, 0x0c, 0xe1, 0x32, 0xcd, 0xf4, 0xb0, 0x39, 0x17, 0x46, 0xe7, 0xff, 0x34, 0x11, 0x77, 0x57, 0x0c, 0x81, 0x08, };
3175 static const ec_test_case ed25519_138_test_case = {
3176 	.name = "EDDSA25519-SHA512/wei25519 138",
3177 	.ec_str_p = &wei25519_str_params,
3178 	.priv_key = ed25519_138_test_vectors_priv_key,
3179 	.priv_key_len = sizeof(ed25519_138_test_vectors_priv_key),
3180 	.nn_random = NULL,
3181 	.hash_type = SHA512,
3182 	.msg = (const char *)ed25519_138_test_vectors_message,
3183 	.msglen = sizeof(ed25519_138_test_vectors_message),
3184 	.sig_type = EDDSA25519,
3185 	.exp_sig = ed25519_138_test_vectors_expected_sig,
3186 	.exp_siglen = sizeof(ed25519_138_test_vectors_expected_sig),
3187 	.adata = NULL,
3188 	.adata_len = 0
3189 };
3190 
3191 /************************************************/
3192 static const u8 ed25519_139_test_vectors_priv_key[] = {
3193 	0xf2, 0xdc, 0xf4, 0xa1, 0xa0, 0xd4, 0x6d, 0xdb, 0x2d, 0x72, 0xf8, 0xfd, 0xd8, 0x0b, 0xbe, 0xc5, 0xb7, 0xde, 0xa5, 0x91, 0x3d, 0xa4, 0x96, 0x6c, 0x2f, 0x4d, 0x12, 0xc2, 0x61, 0xf0, 0xbf, 0x98, };
3194 static const u8 ed25519_139_test_vectors_message[] = {
3195 	0x3b, 0x00, 0xe8, 0x08, 0xfc, 0xa4, 0xc1, 0x16, 0x51, 0xd8, 0x53, 0xd6, 0xb9, 0x0f, 0x95, 0x2c, 0xcf, 0x56, 0x47, 0xe1, 0x02, 0xd4, 0xee, 0x0a, 0xd7, 0xa5, 0xd1, 0x81, 0xd5, 0xb4, 0x25, 0x8c, 0x52, 0x3c, 0xd3, 0x9e, 0x3d, 0x98, 0x25, 0x29, 0x8d, 0x84, 0xc8, 0xcb, 0xa0, 0x9f, 0x43, 0xdb, 0xba, 0x11, 0x99, 0x88, 0x22, 0x2c, 0x76, 0x05, 0x9c, 0xaf, 0x17, 0xb4, 0xbf, 0x99, 0x31, 0xc4, 0x5e, 0x61, 0x74, 0x48, 0xae, 0xad, 0xe1, 0x51, 0x18, 0x14, 0x97, 0xb2, 0x45, 0x52, 0x36, 0x7e, 0x52, 0xbc, 0x45, 0xac, 0x79, 0x08, 0x88, 0x06, 0xd3, 0x36, 0x82, 0x07, 0xaa, 0xfe, 0xfd, 0x30, 0x57, 0x84, 0x5d, 0xce, 0x81, 0x9d, 0x5a, 0xaa, 0xa7, 0x7b, 0x21, 0x8e, 0x2a, 0xed, 0x3d, 0xa7, 0x6d, 0x40, 0xc1, 0xf0, 0x76, 0x99, 0xf8, 0x17, 0x2e, 0x4a, 0x5c, 0x80, 0x3f, 0x7a, 0x2a, 0xce, 0xb9, 0xa4, 0x7a, 0x89, 0x52, 0xe1, 0xb2, 0xf0, 0x53, 0xf2, };
3196 static const u8 ed25519_139_test_vectors_expected_sig[] = {
3197 	0x42, 0x88, 0x2a, 0x81, 0x1d, 0xad, 0x2d, 0x85, 0x18, 0x85, 0xe4, 0xcb, 0xe9, 0x04, 0x47, 0x08, 0xd9, 0x1a, 0x86, 0xf1, 0x5d, 0xfa, 0x1d, 0x66, 0xc3, 0xeb, 0x30, 0x43, 0x14, 0x53, 0x1f, 0x30, 0x15, 0x20, 0x8c, 0x71, 0x1b, 0x9b, 0xdb, 0xc5, 0xfb, 0x23, 0x39, 0x51, 0xe5, 0x69, 0xb5, 0x9d, 0x34, 0xe4, 0x15, 0xee, 0xc4, 0xb3, 0x7f, 0xfd, 0x37, 0x4d, 0x41, 0x2c, 0x9a, 0x36, 0x0d, 0x0c, };
3198 static const ec_test_case ed25519_139_test_case = {
3199 	.name = "EDDSA25519-SHA512/wei25519 139",
3200 	.ec_str_p = &wei25519_str_params,
3201 	.priv_key = ed25519_139_test_vectors_priv_key,
3202 	.priv_key_len = sizeof(ed25519_139_test_vectors_priv_key),
3203 	.nn_random = NULL,
3204 	.hash_type = SHA512,
3205 	.msg = (const char *)ed25519_139_test_vectors_message,
3206 	.msglen = sizeof(ed25519_139_test_vectors_message),
3207 	.sig_type = EDDSA25519,
3208 	.exp_sig = ed25519_139_test_vectors_expected_sig,
3209 	.exp_siglen = sizeof(ed25519_139_test_vectors_expected_sig),
3210 	.adata = NULL,
3211 	.adata_len = 0
3212 };
3213 
3214 /************************************************/
3215 static const u8 ed25519_140_test_vectors_priv_key[] = {
3216 	0x22, 0x46, 0xbf, 0xb0, 0x61, 0x55, 0x85, 0x9e, 0x10, 0xa7, 0x48, 0xff, 0x8f, 0x59, 0x19, 0xad, 0x5d, 0x1d, 0xaa, 0xb7, 0x56, 0xf0, 0x10, 0x57, 0xb7, 0x90, 0xd0, 0x74, 0x74, 0x77, 0x5f, 0x4f, };
3217 static const u8 ed25519_140_test_vectors_message[] = {
3218 	0x63, 0xee, 0x1c, 0x7b, 0xbb, 0x15, 0xce, 0xbe, 0x1c, 0x22, 0x53, 0x2d, 0x48, 0x16, 0x82, 0x75, 0x4b, 0xda, 0xf5, 0x8b, 0x8b, 0xc9, 0x97, 0xae, 0x30, 0xa3, 0x4c, 0x9d, 0x23, 0xc3, 0x3f, 0x16, 0x90, 0xc3, 0x46, 0xab, 0x0a, 0x73, 0x65, 0xff, 0x62, 0x45, 0x74, 0x24, 0xb6, 0x10, 0x5f, 0x84, 0x21, 0xec, 0xa0, 0xce, 0x3c, 0x63, 0x0a, 0xcf, 0xeb, 0x9a, 0x1c, 0xc4, 0x16, 0x39, 0x0e, 0xdf, 0x49, 0x20, 0xe2, 0x2b, 0x23, 0x67, 0xe9, 0xfb, 0x5d, 0x2a, 0xb2, 0x5b, 0xee, 0x56, 0xda, 0x03, 0xea, 0x55, 0xe3, 0xf5, 0x78, 0x82, 0xd4, 0x8b, 0x89, 0x22, 0x93, 0x14, 0xd7, 0x34, 0xcb, 0x83, 0xc7, 0x9f, 0x4e, 0x17, 0xee, 0x64, 0xba, 0xe6, 0xf7, 0xad, 0xdb, 0xe9, 0xb5, 0x25, 0xfc, 0xd0, 0x3a, 0x91, 0x40, 0x9a, 0x2d, 0xde, 0x90, 0x77, 0x51, 0xdb, 0x8c, 0xc9, 0x7e, 0x08, 0xd0, 0xea, 0x89, 0xc4, 0xd1, 0x87, 0x18, 0xd2, 0x6d, 0x0b, 0x89, 0x7b, 0x64, };
3219 static const u8 ed25519_140_test_vectors_expected_sig[] = {
3220 	0x2b, 0xe4, 0x91, 0x5a, 0x35, 0x2f, 0x77, 0x85, 0x48, 0x30, 0x46, 0xd8, 0xae, 0x96, 0x25, 0xb8, 0xb6, 0x32, 0x57, 0xaf, 0x57, 0xc0, 0x73, 0x69, 0x12, 0x56, 0xee, 0x07, 0x6d, 0x6e, 0x1b, 0x97, 0x2a, 0x10, 0x1f, 0x55, 0x1c, 0x70, 0x5d, 0x3f, 0x96, 0x15, 0x7c, 0x33, 0xb5, 0x6e, 0xa0, 0x49, 0xbe, 0x4a, 0xf4, 0xdc, 0x56, 0x1c, 0xbe, 0x3c, 0x1e, 0xc5, 0x07, 0x2d, 0x7f, 0x13, 0x4e, 0x07, };
3221 static const ec_test_case ed25519_140_test_case = {
3222 	.name = "EDDSA25519-SHA512/wei25519 140",
3223 	.ec_str_p = &wei25519_str_params,
3224 	.priv_key = ed25519_140_test_vectors_priv_key,
3225 	.priv_key_len = sizeof(ed25519_140_test_vectors_priv_key),
3226 	.nn_random = NULL,
3227 	.hash_type = SHA512,
3228 	.msg = (const char *)ed25519_140_test_vectors_message,
3229 	.msglen = sizeof(ed25519_140_test_vectors_message),
3230 	.sig_type = EDDSA25519,
3231 	.exp_sig = ed25519_140_test_vectors_expected_sig,
3232 	.exp_siglen = sizeof(ed25519_140_test_vectors_expected_sig),
3233 	.adata = NULL,
3234 	.adata_len = 0
3235 };
3236 
3237 /************************************************/
3238 static const u8 ed25519_141_test_vectors_priv_key[] = {
3239 	0xc0, 0x88, 0xa3, 0xdd, 0x2c, 0xb8, 0xbd, 0x5d, 0x68, 0x4d, 0xb8, 0x53, 0x8d, 0xc2, 0x24, 0x73, 0xb6, 0xf0, 0x14, 0xf6, 0x4f, 0xe8, 0x6a, 0xf1, 0x68, 0xb4, 0xbb, 0x01, 0xb9, 0x0a, 0x1d, 0xd0, };
3240 static const u8 ed25519_141_test_vectors_message[] = {
3241 	0x74, 0x90, 0x6a, 0xe0, 0x5a, 0x5a, 0xf8, 0xe9, 0x96, 0x8b, 0x6f, 0xeb, 0x49, 0x85, 0x69, 0xd6, 0x34, 0x5a, 0x24, 0xf9, 0x71, 0x1b, 0xef, 0xb1, 0x36, 0xe6, 0xc3, 0xb5, 0xed, 0x49, 0x33, 0x9e, 0x59, 0xa7, 0x93, 0x8b, 0x4b, 0xa1, 0xa1, 0x18, 0xf1, 0x69, 0xb9, 0xac, 0xe0, 0xf7, 0x84, 0x2a, 0x26, 0xa6, 0x45, 0xf1, 0x4c, 0x0a, 0xd2, 0x2e, 0xbb, 0xcd, 0xa9, 0x3e, 0x67, 0xe4, 0xc3, 0x48, 0xef, 0xc3, 0xd9, 0xec, 0xbb, 0x14, 0x19, 0xe6, 0x26, 0x2d, 0x04, 0x36, 0xa5, 0x8e, 0xa8, 0x2c, 0x22, 0x02, 0x38, 0x90, 0x65, 0xcc, 0xf6, 0x7c, 0x4f, 0x55, 0x0e, 0x45, 0xb5, 0xf6, 0xa1, 0x2a, 0x6c, 0x01, 0x1b, 0x2e, 0x0a, 0x30, 0x10, 0x1d, 0x5c, 0x62, 0x32, 0x8b, 0xbf, 0x99, 0xc8, 0xc9, 0x55, 0x63, 0xa6, 0xe3, 0x3b, 0xdd, 0x9c, 0xce, 0x72, 0xb1, 0xf7, 0x20, 0x13, 0x9c, 0x2f, 0xd3, 0xe0, 0x49, 0x13, 0x14, 0x6a, 0xe5, 0xba, 0xc5, 0x28, 0x8e, 0x0e, 0x3e, };
3242 static const u8 ed25519_141_test_vectors_expected_sig[] = {
3243 	0x3b, 0xb4, 0x59, 0xd1, 0xac, 0x57, 0x5a, 0x18, 0x0c, 0x17, 0x28, 0xd8, 0xb8, 0x92, 0x49, 0x70, 0x49, 0x2a, 0x0c, 0x8d, 0x2a, 0x37, 0x8c, 0x29, 0xd1, 0xd4, 0x17, 0x85, 0xc8, 0x37, 0x9a, 0x58, 0xe2, 0xba, 0x36, 0x06, 0x78, 0x5e, 0x1c, 0x5d, 0xa2, 0x9e, 0x55, 0x27, 0x55, 0x2b, 0xc6, 0xdc, 0x89, 0xa2, 0xb6, 0x9c, 0x27, 0xfe, 0x51, 0xed, 0x25, 0x3a, 0x9f, 0x3b, 0x56, 0x5b, 0x27, 0x00, };
3244 static const ec_test_case ed25519_141_test_case = {
3245 	.name = "EDDSA25519-SHA512/wei25519 141",
3246 	.ec_str_p = &wei25519_str_params,
3247 	.priv_key = ed25519_141_test_vectors_priv_key,
3248 	.priv_key_len = sizeof(ed25519_141_test_vectors_priv_key),
3249 	.nn_random = NULL,
3250 	.hash_type = SHA512,
3251 	.msg = (const char *)ed25519_141_test_vectors_message,
3252 	.msglen = sizeof(ed25519_141_test_vectors_message),
3253 	.sig_type = EDDSA25519,
3254 	.exp_sig = ed25519_141_test_vectors_expected_sig,
3255 	.exp_siglen = sizeof(ed25519_141_test_vectors_expected_sig),
3256 	.adata = NULL,
3257 	.adata_len = 0
3258 };
3259 
3260 /************************************************/
3261 static const u8 ed25519_142_test_vectors_priv_key[] = {
3262 	0x45, 0x66, 0x7d, 0x1e, 0x7b, 0x59, 0x10, 0x97, 0x9c, 0x4a, 0x32, 0x83, 0x17, 0x96, 0x83, 0x71, 0xc8, 0x64, 0xd5, 0x64, 0xa6, 0x61, 0xc5, 0xcc, 0xe5, 0x57, 0xc9, 0xec, 0xc6, 0x1b, 0xab, 0x9e, };
3263 static const u8 ed25519_142_test_vectors_message[] = {
3264 	0xcd, 0x66, 0xce, 0xc4, 0x76, 0xc8, 0x7c, 0x8d, 0xbf, 0x47, 0xec, 0x91, 0xda, 0xc4, 0x8f, 0xb5, 0xb4, 0x2d, 0xb1, 0x28, 0x2a, 0x57, 0x3e, 0x0a, 0x5c, 0xf0, 0xb9, 0x17, 0x68, 0x98, 0x66, 0x08, 0xe1, 0xd7, 0xeb, 0xd0, 0x5f, 0x52, 0x51, 0xbc, 0xf8, 0xb4, 0x7a, 0x17, 0x09, 0x32, 0x29, 0xac, 0xef, 0xbd, 0x44, 0xbe, 0xb2, 0x1c, 0x0c, 0x0c, 0x92, 0x8d, 0xd3, 0xcd, 0x3f, 0x89, 0x66, 0xec, 0xce, 0x69, 0x10, 0x33, 0x1c, 0x50, 0x8e, 0xa7, 0x6b, 0xaf, 0x90, 0x4d, 0x8c, 0x21, 0xf6, 0xc1, 0x7c, 0x2c, 0x58, 0xd0, 0x0a, 0xfd, 0x32, 0x59, 0xb8, 0xbf, 0x79, 0x4c, 0x14, 0x6b, 0x12, 0xb9, 0x95, 0xcd, 0xdd, 0x1c, 0x42, 0x89, 0xc5, 0xbe, 0x31, 0x68, 0xeb, 0xd6, 0x16, 0xb3, 0x84, 0xc2, 0x81, 0xce, 0x1b, 0x38, 0xa1, 0x0e, 0x18, 0x07, 0x80, 0x88, 0x53, 0xc6, 0x81, 0xa6, 0x40, 0xa0, 0x09, 0xb4, 0xd2, 0xac, 0xd7, 0x93, 0x4f, 0x8c, 0x6d, 0x07, 0x57, 0x81, 0x61, };
3265 static const u8 ed25519_142_test_vectors_expected_sig[] = {
3266 	0x6d, 0xe6, 0x68, 0xf1, 0xca, 0x6f, 0x29, 0x28, 0x14, 0x62, 0x52, 0x89, 0xa0, 0x80, 0x80, 0x20, 0xc8, 0x7c, 0x89, 0xac, 0x94, 0xf5, 0xb0, 0x50, 0x8e, 0x55, 0x7b, 0xdf, 0x80, 0x00, 0xa5, 0xca, 0x80, 0x8f, 0x02, 0x1c, 0x96, 0x79, 0xb5, 0x0e, 0xe2, 0xf3, 0x20, 0x06, 0x4c, 0x95, 0xa4, 0x64, 0xa8, 0x43, 0x93, 0x79, 0x82, 0x8c, 0x3b, 0x76, 0xcf, 0xa7, 0x66, 0x45, 0x5e, 0x12, 0x8c, 0x0b, };
3267 static const ec_test_case ed25519_142_test_case = {
3268 	.name = "EDDSA25519-SHA512/wei25519 142",
3269 	.ec_str_p = &wei25519_str_params,
3270 	.priv_key = ed25519_142_test_vectors_priv_key,
3271 	.priv_key_len = sizeof(ed25519_142_test_vectors_priv_key),
3272 	.nn_random = NULL,
3273 	.hash_type = SHA512,
3274 	.msg = (const char *)ed25519_142_test_vectors_message,
3275 	.msglen = sizeof(ed25519_142_test_vectors_message),
3276 	.sig_type = EDDSA25519,
3277 	.exp_sig = ed25519_142_test_vectors_expected_sig,
3278 	.exp_siglen = sizeof(ed25519_142_test_vectors_expected_sig),
3279 	.adata = NULL,
3280 	.adata_len = 0
3281 };
3282 
3283 /************************************************/
3284 static const u8 ed25519_143_test_vectors_priv_key[] = {
3285 	0x24, 0x89, 0x74, 0x28, 0xae, 0x65, 0x46, 0xd8, 0x5b, 0x31, 0x90, 0xeb, 0xe3, 0xf1, 0xf7, 0xbf, 0x7c, 0x71, 0x25, 0x28, 0xac, 0x85, 0x1a, 0x58, 0x8b, 0x07, 0xd5, 0xc8, 0xf9, 0x4e, 0xec, 0xd1, };
3286 static const u8 ed25519_143_test_vectors_message[] = {
3287 	0x52, 0x01, 0xd9, 0x72, 0x5f, 0x1d, 0xff, 0xa1, 0x86, 0x3f, 0xa4, 0xd8, 0x4c, 0x30, 0x18, 0x61, 0x14, 0x1a, 0xcd, 0xfb, 0x64, 0xbe, 0x1f, 0xbf, 0xdd, 0x5b, 0x93, 0x86, 0xdb, 0x20, 0xef, 0x39, 0x40, 0x99, 0xee, 0xbc, 0xfd, 0xfe, 0xcc, 0x62, 0xc6, 0x26, 0x86, 0x07, 0xa8, 0x4d, 0x55, 0xc5, 0x5c, 0xd0, 0xef, 0xdc, 0x37, 0x2e, 0xcf, 0x30, 0x67, 0x34, 0x3e, 0x7b, 0x07, 0x31, 0xc2, 0x68, 0x54, 0x61, 0xe2, 0x4b, 0x95, 0x3f, 0x99, 0x94, 0x9e, 0x59, 0xba, 0x3e, 0x67, 0xed, 0x0f, 0x08, 0x48, 0x31, 0x37, 0x93, 0x96, 0x2a, 0x29, 0x2c, 0x45, 0x98, 0x14, 0xc5, 0xe2, 0x86, 0x90, 0xec, 0x1f, 0x45, 0x17, 0x1f, 0x1a, 0xba, 0xb8, 0x6f, 0xdd, 0x14, 0x56, 0x8b, 0x00, 0xca, 0xf4, 0x85, 0x81, 0x11, 0x5e, 0xe5, 0xea, 0x83, 0xb0, 0x00, 0x28, 0x2f, 0xbb, 0xf0, 0xc0, 0xb2, 0xa1, 0x11, 0x60, 0x39, 0xa3, 0x5c, 0xfa, 0x3f, 0x20, 0x14, 0x22, 0x20, 0x7a, 0x3d, 0x49, 0x48, };
3288 static const u8 ed25519_143_test_vectors_expected_sig[] = {
3289 	0x1b, 0x5e, 0x75, 0xde, 0xf4, 0x9f, 0x51, 0xd6, 0xb2, 0xde, 0x00, 0x8c, 0x71, 0xfc, 0x1a, 0x90, 0x9b, 0xd4, 0x2c, 0xa8, 0x13, 0x29, 0x8d, 0xce, 0x4e, 0xee, 0xf7, 0x17, 0x81, 0x5d, 0x7a, 0x6c, 0x07, 0x8c, 0x2f, 0x3d, 0x9a, 0x3f, 0xce, 0x1a, 0xb5, 0xb3, 0xad, 0x8e, 0xf8, 0xd4, 0x5c, 0xdf, 0x2e, 0xb4, 0x90, 0x1c, 0x32, 0xee, 0xa2, 0xd5, 0xe0, 0x18, 0xdc, 0xf2, 0x83, 0x3c, 0xad, 0x0c, };
3290 static const ec_test_case ed25519_143_test_case = {
3291 	.name = "EDDSA25519-SHA512/wei25519 143",
3292 	.ec_str_p = &wei25519_str_params,
3293 	.priv_key = ed25519_143_test_vectors_priv_key,
3294 	.priv_key_len = sizeof(ed25519_143_test_vectors_priv_key),
3295 	.nn_random = NULL,
3296 	.hash_type = SHA512,
3297 	.msg = (const char *)ed25519_143_test_vectors_message,
3298 	.msglen = sizeof(ed25519_143_test_vectors_message),
3299 	.sig_type = EDDSA25519,
3300 	.exp_sig = ed25519_143_test_vectors_expected_sig,
3301 	.exp_siglen = sizeof(ed25519_143_test_vectors_expected_sig),
3302 	.adata = NULL,
3303 	.adata_len = 0
3304 };
3305 
3306 /************************************************/
3307 static const u8 ed25519_144_test_vectors_priv_key[] = {
3308 	0x7b, 0x04, 0xac, 0xa7, 0xcf, 0x92, 0x62, 0x16, 0xcb, 0x96, 0x0a, 0x38, 0x90, 0x78, 0x63, 0x39, 0xd0, 0xa6, 0x15, 0x96, 0x76, 0x80, 0x19, 0x01, 0x23, 0xfd, 0xa3, 0xb6, 0x0c, 0x6a, 0xeb, 0x11, };
3309 static const u8 ed25519_144_test_vectors_message[] = {
3310 	0x1c, 0xb0, 0x96, 0x24, 0xb1, 0xf1, 0x4a, 0x02, 0x60, 0xc7, 0xf5, 0x6d, 0x8c, 0x60, 0xb5, 0xfe, 0x45, 0x83, 0x71, 0x14, 0x23, 0x25, 0x51, 0xef, 0x59, 0x66, 0x38, 0x6e, 0x0c, 0x2b, 0x44, 0x1b, 0x75, 0xcf, 0xdb, 0x8d, 0xf2, 0x18, 0x57, 0x85, 0xd2, 0x2c, 0xf5, 0x26, 0xfa, 0x9d, 0xf7, 0xfd, 0x45, 0xd9, 0xd8, 0x38, 0x81, 0xb6, 0x6c, 0x1f, 0xee, 0xe0, 0x91, 0x3e, 0x23, 0x81, 0x21, 0xee, 0xdb, 0xb7, 0xab, 0x50, 0x4d, 0xa0, 0xbe, 0xe8, 0x99, 0x80, 0x16, 0x68, 0x45, 0x35, 0x03, 0x19, 0x91, 0xf1, 0x1b, 0xfc, 0xd9, 0xb9, 0x56, 0x90, 0xaa, 0xd2, 0xd1, 0x9b, 0xd6, 0xa9, 0xde, 0x18, 0x44, 0xed, 0x13, 0x62, 0x30, 0x2d, 0xf4, 0x21, 0x72, 0x30, 0xb2, 0x5c, 0x05, 0x52, 0xce, 0x27, 0x75, 0x34, 0xc6, 0x50, 0xca, 0xe5, 0x26, 0x57, 0x7f, 0x25, 0xd8, 0xb1, 0xfe, 0x9f, 0x9f, 0xeb, 0xca, 0x2c, 0x81, 0x46, 0x70, 0xd4, 0x80, 0x5b, 0x21, 0xad, 0xef, 0x85, 0x2d, 0xaf, 0x94, };
3311 static const u8 ed25519_144_test_vectors_expected_sig[] = {
3312 	0x25, 0xd2, 0xd3, 0x61, 0x75, 0x1d, 0x52, 0xb4, 0xfe, 0x66, 0xea, 0x18, 0xe4, 0xb9, 0x86, 0x6b, 0xde, 0x3d, 0x12, 0x1a, 0x73, 0x12, 0xfd, 0x9e, 0x28, 0xa1, 0xe2, 0x95, 0xe0, 0x87, 0xe3, 0x17, 0x6c, 0x94, 0xc8, 0x74, 0xa2, 0xe8, 0x16, 0x00, 0xf2, 0x4c, 0x46, 0x54, 0xf4, 0x3d, 0x1b, 0x67, 0xd4, 0x7b, 0x64, 0x82, 0x26, 0x48, 0x59, 0x0c, 0xe5, 0xce, 0x44, 0xf3, 0xb5, 0xdd, 0xc5, 0x02, };
3313 static const ec_test_case ed25519_144_test_case = {
3314 	.name = "EDDSA25519-SHA512/wei25519 144",
3315 	.ec_str_p = &wei25519_str_params,
3316 	.priv_key = ed25519_144_test_vectors_priv_key,
3317 	.priv_key_len = sizeof(ed25519_144_test_vectors_priv_key),
3318 	.nn_random = NULL,
3319 	.hash_type = SHA512,
3320 	.msg = (const char *)ed25519_144_test_vectors_message,
3321 	.msglen = sizeof(ed25519_144_test_vectors_message),
3322 	.sig_type = EDDSA25519,
3323 	.exp_sig = ed25519_144_test_vectors_expected_sig,
3324 	.exp_siglen = sizeof(ed25519_144_test_vectors_expected_sig),
3325 	.adata = NULL,
3326 	.adata_len = 0
3327 };
3328 
3329 /************************************************/
3330 static const u8 ed25519_145_test_vectors_priv_key[] = {
3331 	0xea, 0x73, 0xbf, 0x64, 0xa1, 0xa9, 0x78, 0x77, 0xc3, 0xc3, 0xe7, 0xca, 0x46, 0x44, 0xb7, 0x1a, 0xaa, 0x66, 0x31, 0x4c, 0x8f, 0x1b, 0x66, 0xba, 0xfa, 0xeb, 0xd5, 0xed, 0xfb, 0x88, 0x8b, 0xcd, };
3332 static const u8 ed25519_145_test_vectors_message[] = {
3333 	0x36, 0x2e, 0xec, 0x68, 0xb9, 0x12, 0x85, 0x27, 0x86, 0xbb, 0x4f, 0x9a, 0xff, 0xf9, 0xec, 0xf7, 0xcb, 0x28, 0xc9, 0xde, 0x6b, 0x18, 0x42, 0x2a, 0x8c, 0xa9, 0x40, 0xb0, 0xd7, 0xe6, 0xdc, 0xb8, 0x3a, 0xa4, 0x4b, 0xe0, 0xaf, 0xb5, 0xf1, 0x80, 0x6d, 0x43, 0xf0, 0xe3, 0x1d, 0x71, 0xf9, 0x22, 0xf8, 0x53, 0x61, 0x5a, 0x26, 0xe2, 0x87, 0xa2, 0x7f, 0x08, 0xa0, 0x4f, 0xbc, 0xe3, 0xd4, 0x5a, 0x0c, 0x6c, 0x31, 0x1d, 0x4b, 0x7c, 0xb1, 0x7e, 0x42, 0x5b, 0xbe, 0xb0, 0xa6, 0xb4, 0x10, 0xb5, 0xd6, 0xdb, 0xb7, 0xac, 0x11, 0xdf, 0x98, 0x50, 0xa1, 0x31, 0xa6, 0x91, 0xe3, 0xb6, 0x0b, 0x0b, 0x21, 0x4e, 0xbe, 0x04, 0x41, 0x06, 0xe9, 0x82, 0x43, 0x32, 0x87, 0x59, 0x52, 0x67, 0xb0, 0x31, 0xb5, 0xd4, 0xa0, 0x92, 0x62, 0xde, 0xd8, 0x93, 0x4f, 0xdf, 0xdf, 0x96, 0x4d, 0x86, 0x8e, 0xf9, 0xa2, 0xc8, 0x42, 0xf8, 0x04, 0xea, 0xfd, 0xde, 0xfc, 0xb7, 0x1d, 0x9f, 0x16, 0xa5, 0x9b, 0xf8, };
3334 static const u8 ed25519_145_test_vectors_expected_sig[] = {
3335 	0xbd, 0x86, 0xcb, 0x9c, 0x70, 0xa0, 0x55, 0x27, 0x9a, 0x86, 0xa9, 0xe6, 0x48, 0x70, 0x98, 0x8b, 0x8a, 0x73, 0x45, 0xc3, 0xcd, 0x29, 0x48, 0xa0, 0xfa, 0xbc, 0xfb, 0x38, 0xab, 0xce, 0x3c, 0x42, 0x0b, 0x4d, 0x55, 0x21, 0x61, 0x8e, 0x11, 0xd2, 0xde, 0x82, 0x7d, 0x9d, 0xe5, 0x69, 0xf6, 0xbc, 0x3b, 0xe6, 0x6a, 0xad, 0x40, 0x63, 0x6c, 0xda, 0xa6, 0x47, 0x60, 0xde, 0xd3, 0xb7, 0xc2, 0x09, };
3336 static const ec_test_case ed25519_145_test_case = {
3337 	.name = "EDDSA25519-SHA512/wei25519 145",
3338 	.ec_str_p = &wei25519_str_params,
3339 	.priv_key = ed25519_145_test_vectors_priv_key,
3340 	.priv_key_len = sizeof(ed25519_145_test_vectors_priv_key),
3341 	.nn_random = NULL,
3342 	.hash_type = SHA512,
3343 	.msg = (const char *)ed25519_145_test_vectors_message,
3344 	.msglen = sizeof(ed25519_145_test_vectors_message),
3345 	.sig_type = EDDSA25519,
3346 	.exp_sig = ed25519_145_test_vectors_expected_sig,
3347 	.exp_siglen = sizeof(ed25519_145_test_vectors_expected_sig),
3348 	.adata = NULL,
3349 	.adata_len = 0
3350 };
3351 
3352 /************************************************/
3353 static const u8 ed25519_146_test_vectors_priv_key[] = {
3354 	0xb8, 0x12, 0x3c, 0x11, 0x6b, 0x33, 0xba, 0xd0, 0xdc, 0xbc, 0x2c, 0x4d, 0xc0, 0x6a, 0x3d, 0x66, 0x85, 0x0d, 0xab, 0x36, 0x0c, 0xdb, 0x5a, 0x03, 0x3c, 0x14, 0x89, 0x5c, 0x4e, 0xe3, 0x1b, 0xfb, };
3355 static const u8 ed25519_146_test_vectors_message[] = {
3356 	0x79, 0x70, 0xf6, 0x66, 0x66, 0x34, 0x54, 0x8c, 0x84, 0x8b, 0xb5, 0x23, 0x38, 0x81, 0x7b, 0x26, 0xa4, 0xd0, 0xca, 0x68, 0xdf, 0x3d, 0x28, 0xaf, 0xff, 0x20, 0x7c, 0x2d, 0x02, 0x80, 0x67, 0xa1, 0x8e, 0x4c, 0x95, 0x43, 0x02, 0x5f, 0x5b, 0x02, 0x28, 0xaa, 0x69, 0x1e, 0x50, 0x88, 0x51, 0x31, 0x51, 0xa9, 0x44, 0x94, 0xe1, 0x5d, 0x1f, 0x54, 0x21, 0x03, 0x28, 0xe0, 0xdf, 0x15, 0x9b, 0x35, 0x2c, 0x30, 0xaa, 0xa7, 0xa8, 0x44, 0xf1, 0x8a, 0x9f, 0x4c, 0x39, 0x5d, 0xcb, 0xb3, 0xfb, 0x9f, 0xcf, 0xbe, 0xd1, 0x10, 0x3e, 0x07, 0x06, 0xfb, 0xf9, 0xc3, 0x5f, 0xe2, 0x66, 0x68, 0x48, 0xfa, 0x35, 0xdc, 0x2c, 0xf5, 0x22, 0x7e, 0xbe, 0xe8, 0x9e, 0x7d, 0x3b, 0xcf, 0xae, 0x27, 0x21, 0xb2, 0x5f, 0xde, 0xc3, 0xd3, 0x17, 0x4e, 0xa7, 0xce, 0x26, 0x7a, 0x55, 0xdd, 0x61, 0xd5, 0x82, 0x01, 0xe9, 0x6b, 0xda, 0x30, 0x3c, 0xf4, 0x18, 0xed, 0xf6, 0xe3, 0x2f, 0xb9, 0x2f, 0x5d, 0xc1, 0xa0, 0xb1, };
3357 static const u8 ed25519_146_test_vectors_expected_sig[] = {
3358 	0x9c, 0xf1, 0x3e, 0xba, 0x3d, 0xcc, 0x37, 0xb8, 0xfc, 0x70, 0xcc, 0xb2, 0x32, 0x74, 0x36, 0xb9, 0xf0, 0x88, 0x55, 0xe7, 0x26, 0xaa, 0x7e, 0xd8, 0x2b, 0xd5, 0xcb, 0x7d, 0xf4, 0x5f, 0xdf, 0x9e, 0xc1, 0xf9, 0x6a, 0xfa, 0xd1, 0x93, 0xf4, 0x75, 0x72, 0xd7, 0x70, 0x44, 0x4b, 0x65, 0xb7, 0x4a, 0x37, 0xcc, 0x03, 0x4f, 0xc5, 0x14, 0xcb, 0x3f, 0x91, 0xb2, 0xd8, 0xad, 0xa5, 0xb0, 0x20, 0x06, };
3359 static const ec_test_case ed25519_146_test_case = {
3360 	.name = "EDDSA25519-SHA512/wei25519 146",
3361 	.ec_str_p = &wei25519_str_params,
3362 	.priv_key = ed25519_146_test_vectors_priv_key,
3363 	.priv_key_len = sizeof(ed25519_146_test_vectors_priv_key),
3364 	.nn_random = NULL,
3365 	.hash_type = SHA512,
3366 	.msg = (const char *)ed25519_146_test_vectors_message,
3367 	.msglen = sizeof(ed25519_146_test_vectors_message),
3368 	.sig_type = EDDSA25519,
3369 	.exp_sig = ed25519_146_test_vectors_expected_sig,
3370 	.exp_siglen = sizeof(ed25519_146_test_vectors_expected_sig),
3371 	.adata = NULL,
3372 	.adata_len = 0
3373 };
3374 
3375 /************************************************/
3376 static const u8 ed25519_147_test_vectors_priv_key[] = {
3377 	0xb1, 0x8e, 0x1d, 0x00, 0x45, 0x99, 0x5e, 0xc3, 0xd0, 0x10, 0xc3, 0x87, 0xcc, 0xfe, 0xb9, 0x84, 0xd7, 0x83, 0xaf, 0x8f, 0xbb, 0x0f, 0x40, 0xfa, 0x7d, 0xb1, 0x26, 0xd8, 0x89, 0xf6, 0xda, 0xdd, };
3378 static const u8 ed25519_147_test_vectors_message[] = {
3379 	0x91, 0x6c, 0x7d, 0x1d, 0x26, 0x8f, 0xc0, 0xe7, 0x7c, 0x1b, 0xef, 0x23, 0x84, 0x32, 0x57, 0x3c, 0x39, 0xbe, 0x57, 0x7b, 0xbe, 0xa0, 0x99, 0x89, 0x36, 0xad, 0xd2, 0xb5, 0x0a, 0x65, 0x31, 0x71, 0xce, 0x18, 0xa5, 0x42, 0xb0, 0xb7, 0xf9, 0x6c, 0x16, 0x91, 0xa3, 0xbe, 0x60, 0x31, 0x52, 0x28, 0x94, 0xa8, 0x63, 0x41, 0x83, 0xed, 0xa3, 0x87, 0x98, 0xa0, 0xc5, 0xd5, 0xd7, 0x9f, 0xbd, 0x01, 0xdd, 0x04, 0xa8, 0x64, 0x6d, 0x71, 0x87, 0x3b, 0x77, 0xb2, 0x21, 0x99, 0x8a, 0x81, 0x92, 0x2d, 0x81, 0x05, 0xf8, 0x92, 0x31, 0x63, 0x69, 0xd5, 0x22, 0x4c, 0x99, 0x83, 0x37, 0x2d, 0x23, 0x13, 0xc6, 0xb1, 0xf4, 0x55, 0x6e, 0xa2, 0x6b, 0xa4, 0x9d, 0x46, 0xe8, 0xb5, 0x61, 0xe0, 0xfc, 0x76, 0x63, 0x3a, 0xc9, 0x76, 0x6e, 0x68, 0xe2, 0x1f, 0xba, 0x7e, 0xdc, 0xa9, 0x3c, 0x4c, 0x74, 0x60, 0x37, 0x6d, 0x7f, 0x3a, 0xc2, 0x2f, 0xf3, 0x72, 0xc1, 0x8f, 0x61, 0x3f, 0x2a, 0xe2, 0xe8, 0x56, 0xaf, 0x40, };
3380 static const u8 ed25519_147_test_vectors_expected_sig[] = {
3381 	0x6b, 0xd7, 0x10, 0xa3, 0x68, 0xc1, 0x24, 0x99, 0x23, 0xfc, 0x7a, 0x16, 0x10, 0x74, 0x74, 0x03, 0x04, 0x0f, 0x0c, 0xc3, 0x08, 0x15, 0xa0, 0x0f, 0x9f, 0xf5, 0x48, 0xa8, 0x96, 0xbb, 0xda, 0x0b, 0x4e, 0xb2, 0xca, 0x19, 0xeb, 0xcf, 0x91, 0x7f, 0x0f, 0x34, 0x20, 0x0a, 0x9e, 0xdb, 0xad, 0x39, 0x01, 0xb6, 0x4a, 0xb0, 0x9c, 0xc5, 0xef, 0x7b, 0x9b, 0xcc, 0x3c, 0x40, 0xc0, 0xff, 0x75, 0x09, };
3382 static const ec_test_case ed25519_147_test_case = {
3383 	.name = "EDDSA25519-SHA512/wei25519 147",
3384 	.ec_str_p = &wei25519_str_params,
3385 	.priv_key = ed25519_147_test_vectors_priv_key,
3386 	.priv_key_len = sizeof(ed25519_147_test_vectors_priv_key),
3387 	.nn_random = NULL,
3388 	.hash_type = SHA512,
3389 	.msg = (const char *)ed25519_147_test_vectors_message,
3390 	.msglen = sizeof(ed25519_147_test_vectors_message),
3391 	.sig_type = EDDSA25519,
3392 	.exp_sig = ed25519_147_test_vectors_expected_sig,
3393 	.exp_siglen = sizeof(ed25519_147_test_vectors_expected_sig),
3394 	.adata = NULL,
3395 	.adata_len = 0
3396 };
3397 
3398 /************************************************/
3399 static const u8 ed25519_148_test_vectors_priv_key[] = {
3400 	0x93, 0x64, 0x9c, 0x63, 0x91, 0x0b, 0x35, 0x71, 0x8e, 0x48, 0xc5, 0x90, 0xd2, 0x61, 0xc4, 0x8e, 0x4e, 0xf8, 0x33, 0x66, 0x13, 0xf6, 0xaa, 0x07, 0x7b, 0x46, 0x26, 0x76, 0xb3, 0xba, 0x88, 0x29, };
3401 static const u8 ed25519_148_test_vectors_message[] = {
3402 	0x2c, 0xd1, 0xa9, 0x51, 0x05, 0x6c, 0x9e, 0xba, 0xe1, 0x39, 0x9b, 0x6b, 0xd2, 0xd8, 0x2c, 0x0a, 0xe2, 0x77, 0x85, 0x62, 0x90, 0xd0, 0x69, 0x20, 0xac, 0x56, 0xca, 0xc8, 0xfb, 0x42, 0x43, 0x51, 0x01, 0xc7, 0x2a, 0xa9, 0xc0, 0x8d, 0xd2, 0xd1, 0x24, 0x26, 0x32, 0x55, 0x62, 0xc2, 0xf0, 0xa4, 0x9c, 0xd8, 0x21, 0xb1, 0x1b, 0x93, 0x9a, 0xaf, 0xa5, 0x93, 0xb4, 0x09, 0x5c, 0x02, 0x1b, 0xcb, 0x48, 0x27, 0xb1, 0x07, 0xb9, 0x66, 0x4d, 0x68, 0x28, 0x28, 0x88, 0xbc, 0x4a, 0x44, 0xaf, 0x3e, 0x3b, 0xdc, 0x86, 0x1b, 0xe6, 0xaf, 0x30, 0x90, 0x44, 0xc3, 0xda, 0xab, 0x57, 0xb7, 0x70, 0x23, 0xdc, 0x90, 0x2d, 0x47, 0xeb, 0xc3, 0x26, 0xf9, 0xbd, 0xd0, 0x2d, 0xbc, 0x02, 0xcd, 0x54, 0x0f, 0xf8, 0x1b, 0x2d, 0xdf, 0x7c, 0xf6, 0x79, 0xa4, 0x11, 0x93, 0xdf, 0xe5, 0xf8, 0xc8, 0xca, 0x1a, 0xae, 0xfc, 0x41, 0xef, 0x74, 0x02, 0x80, 0xd9, 0x82, 0x3e, 0x30, 0xa3, 0x54, 0x71, 0x7c, 0x84, 0x31, 0xf5, 0xd8, };
3403 static const u8 ed25519_148_test_vectors_expected_sig[] = {
3404 	0x62, 0x74, 0xf2, 0xd4, 0xf4, 0x31, 0xd5, 0xaf, 0xfe, 0xfa, 0x35, 0xe7, 0xcf, 0x58, 0x4a, 0x59, 0x90, 0x17, 0x19, 0x3d, 0xa9, 0x90, 0x94, 0xca, 0x90, 0x8b, 0x75, 0xac, 0xb6, 0x08, 0xd1, 0xbf, 0x98, 0x18, 0x57, 0xbe, 0x93, 0xa7, 0xda, 0xfb, 0x0f, 0xad, 0xb3, 0xff, 0x09, 0x06, 0xf4, 0x8a, 0x5e, 0xe9, 0x50, 0x45, 0x6f, 0x78, 0x2c, 0x2d, 0x60, 0x5b, 0x14, 0x09, 0x5b, 0xa0, 0xff, 0x0f, };
3405 static const ec_test_case ed25519_148_test_case = {
3406 	.name = "EDDSA25519-SHA512/wei25519 148",
3407 	.ec_str_p = &wei25519_str_params,
3408 	.priv_key = ed25519_148_test_vectors_priv_key,
3409 	.priv_key_len = sizeof(ed25519_148_test_vectors_priv_key),
3410 	.nn_random = NULL,
3411 	.hash_type = SHA512,
3412 	.msg = (const char *)ed25519_148_test_vectors_message,
3413 	.msglen = sizeof(ed25519_148_test_vectors_message),
3414 	.sig_type = EDDSA25519,
3415 	.exp_sig = ed25519_148_test_vectors_expected_sig,
3416 	.exp_siglen = sizeof(ed25519_148_test_vectors_expected_sig),
3417 	.adata = NULL,
3418 	.adata_len = 0
3419 };
3420 
3421 /************************************************/
3422 static const u8 ed25519_149_test_vectors_priv_key[] = {
3423 	0x1c, 0x15, 0xcb, 0xeb, 0x89, 0x36, 0x2d, 0x69, 0x47, 0x6a, 0x2a, 0xa4, 0xa5, 0xf3, 0xef, 0x20, 0x89, 0xcf, 0x87, 0x28, 0x63, 0x49, 0xe0, 0xdf, 0xe0, 0xe7, 0x2d, 0x9e, 0x3e, 0x5a, 0x66, 0xc7, };
3424 static const u8 ed25519_149_test_vectors_message[] = {
3425 	0x09, 0x1c, 0x9b, 0x9b, 0x11, 0x6a, 0xe8, 0x3d, 0x23, 0xd0, 0x1a, 0x62, 0x95, 0x21, 0x17, 0x85, 0xd4, 0x46, 0xb6, 0x22, 0x8d, 0xd6, 0x87, 0xdd, 0xf7, 0x9b, 0xd0, 0xd5, 0xa4, 0xda, 0xa8, 0xc7, 0x9d, 0x2c, 0xbf, 0xc3, 0x73, 0x65, 0xf1, 0xf2, 0x85, 0xe3, 0x61, 0x73, 0x81, 0x23, 0xe3, 0x4e, 0x2b, 0xcb, 0xfc, 0x66, 0x4c, 0xe1, 0x25, 0x3a, 0x11, 0xd9, 0xe4, 0xa7, 0x98, 0x2e, 0x58, 0xcf, 0x94, 0x68, 0xe1, 0x01, 0x7e, 0xa1, 0x4d, 0x2c, 0xc6, 0xd0, 0x86, 0x5d, 0x40, 0xfd, 0xe8, 0xcb, 0x56, 0x02, 0x41, 0xe9, 0x6a, 0xc1, 0x61, 0x7c, 0x79, 0x1f, 0x0c, 0xa7, 0xc6, 0x41, 0x0c, 0xad, 0xf3, 0x28, 0x61, 0x1b, 0x18, 0xae, 0xf3, 0x33, 0xd8, 0x35, 0x0a, 0xc4, 0x97, 0xf0, 0xa4, 0xae, 0x2d, 0x03, 0xfd, 0xf0, 0xe2, 0x3e, 0x42, 0x6d, 0x34, 0xf4, 0x51, 0x47, 0x80, 0xd1, 0x47, 0x4e, 0x11, 0x35, 0x83, 0x54, 0x1f, 0x3c, 0x04, 0x36, 0x72, 0x05, 0x71, 0x72, 0x61, 0x8c, 0xb2, 0x05, 0x9e, 0xaa, 0xed, 0x56, };
3426 static const u8 ed25519_149_test_vectors_expected_sig[] = {
3427 	0x59, 0x98, 0xb2, 0x80, 0x8a, 0xdf, 0xde, 0xea, 0xeb, 0xe2, 0xc3, 0xea, 0xc0, 0x26, 0xd3, 0xf8, 0x25, 0xf9, 0xc7, 0xf2, 0xaf, 0x97, 0xca, 0x32, 0x4f, 0xbd, 0x57, 0xaa, 0xc1, 0xbe, 0xdf, 0xf7, 0x8a, 0x8e, 0xe6, 0x21, 0xd0, 0x37, 0xee, 0x3a, 0xd2, 0xa7, 0x12, 0xe9, 0xa0, 0x09, 0xc5, 0x8e, 0xa3, 0xe6, 0xf2, 0xa8, 0x28, 0xf7, 0x4b, 0x86, 0xda, 0x27, 0x5a, 0x44, 0xa4, 0xb1, 0xe5, 0x0b, };
3428 static const ec_test_case ed25519_149_test_case = {
3429 	.name = "EDDSA25519-SHA512/wei25519 149",
3430 	.ec_str_p = &wei25519_str_params,
3431 	.priv_key = ed25519_149_test_vectors_priv_key,
3432 	.priv_key_len = sizeof(ed25519_149_test_vectors_priv_key),
3433 	.nn_random = NULL,
3434 	.hash_type = SHA512,
3435 	.msg = (const char *)ed25519_149_test_vectors_message,
3436 	.msglen = sizeof(ed25519_149_test_vectors_message),
3437 	.sig_type = EDDSA25519,
3438 	.exp_sig = ed25519_149_test_vectors_expected_sig,
3439 	.exp_siglen = sizeof(ed25519_149_test_vectors_expected_sig),
3440 	.adata = NULL,
3441 	.adata_len = 0
3442 };
3443 
3444 /************************************************/
3445 static const u8 ed25519_150_test_vectors_priv_key[] = {
3446 	0x11, 0x24, 0x1f, 0xfd, 0xf3, 0x4a, 0xe8, 0xab, 0x87, 0x54, 0x75, 0xe9, 0x4c, 0x6c, 0xc3, 0x29, 0x1f, 0x0b, 0x88, 0x20, 0xdc, 0x85, 0xe2, 0x0f, 0x32, 0xfc, 0x53, 0xb2, 0x4a, 0xe6, 0x89, 0x78, };
3447 static const u8 ed25519_150_test_vectors_message[] = {
3448 	0x3b, 0x89, 0xde, 0xcc, 0xb7, 0x02, 0x3e, 0x4b, 0x2b, 0x7a, 0xff, 0x2c, 0x39, 0x51, 0x87, 0x0a, 0xf4, 0x13, 0xa9, 0xb0, 0x4d, 0xd8, 0x6a, 0xc7, 0x8b, 0x7c, 0x8f, 0xd8, 0x87, 0x49, 0x2d, 0x8d, 0xde, 0x49, 0xd8, 0xfd, 0xa1, 0x49, 0xed, 0xd5, 0x47, 0x81, 0xae, 0x2b, 0x50, 0x80, 0x30, 0xd1, 0x44, 0x16, 0xa9, 0xa3, 0x8b, 0xed, 0x2b, 0x9a, 0xeb, 0xbb, 0xb2, 0x02, 0x50, 0xb3, 0xc9, 0x31, 0xac, 0xd4, 0xe3, 0x2f, 0xbe, 0xee, 0xc5, 0xa2, 0x65, 0x01, 0xbe, 0xab, 0x72, 0x68, 0xd1, 0x44, 0xfc, 0xe8, 0x95, 0x1a, 0x10, 0x1c, 0x4b, 0x51, 0x78, 0x16, 0x6f, 0xbb, 0x59, 0x27, 0xb1, 0xdf, 0xb1, 0xe1, 0xce, 0x90, 0xd1, 0xd1, 0x23, 0x06, 0x8e, 0x3f, 0x47, 0x2c, 0x88, 0x8f, 0xdb, 0x01, 0xfd, 0xf7, 0x0e, 0x7f, 0x8d, 0xe9, 0xb0, 0xad, 0xb2, 0x84, 0xb7, 0x11, 0x9f, 0x55, 0x35, 0x43, 0x16, 0xf8, 0x4e, 0xd0, 0x90, 0x03, 0x0f, 0x9c, 0x26, 0x62, 0x06, 0x1c, 0xa4, 0x84, 0x47, 0xcc, 0x0a, 0xef, 0x96, 0x41, 0x26, };
3449 static const u8 ed25519_150_test_vectors_expected_sig[] = {
3450 	0x72, 0xce, 0x9f, 0x91, 0xbe, 0x2e, 0x66, 0xcf, 0xc9, 0x0f, 0x95, 0x25, 0x95, 0x94, 0x6f, 0xfc, 0x90, 0xbf, 0xce, 0x53, 0x08, 0x7d, 0x49, 0xe5, 0xdd, 0x7c, 0x08, 0x7f, 0x3f, 0xaa, 0x8f, 0x18, 0xf2, 0x35, 0x6d, 0xe9, 0x71, 0xe4, 0x42, 0x9d, 0x98, 0x5a, 0x99, 0x19, 0x4b, 0x4f, 0x92, 0xce, 0xd3, 0xef, 0x47, 0xcd, 0x71, 0x14, 0x37, 0x9e, 0x0b, 0x32, 0x67, 0xa9, 0xf8, 0xb1, 0xe7, 0x06, };
3451 static const ec_test_case ed25519_150_test_case = {
3452 	.name = "EDDSA25519-SHA512/wei25519 150",
3453 	.ec_str_p = &wei25519_str_params,
3454 	.priv_key = ed25519_150_test_vectors_priv_key,
3455 	.priv_key_len = sizeof(ed25519_150_test_vectors_priv_key),
3456 	.nn_random = NULL,
3457 	.hash_type = SHA512,
3458 	.msg = (const char *)ed25519_150_test_vectors_message,
3459 	.msglen = sizeof(ed25519_150_test_vectors_message),
3460 	.sig_type = EDDSA25519,
3461 	.exp_sig = ed25519_150_test_vectors_expected_sig,
3462 	.exp_siglen = sizeof(ed25519_150_test_vectors_expected_sig),
3463 	.adata = NULL,
3464 	.adata_len = 0
3465 };
3466 
3467 /************************************************/
3468 static const u8 ed25519_151_test_vectors_priv_key[] = {
3469 	0x3b, 0xdb, 0x16, 0x24, 0x65, 0xea, 0xce, 0xff, 0x98, 0xd6, 0x9c, 0x86, 0xf7, 0x00, 0x39, 0xc5, 0x17, 0xd1, 0x68, 0xae, 0xfe, 0x6b, 0xb1, 0x01, 0xb4, 0xf7, 0x69, 0xa8, 0x6b, 0x17, 0xc9, 0x72, };
3470 static const u8 ed25519_151_test_vectors_message[] = {
3471 	0xfb, 0xf3, 0x68, 0xfe, 0xae, 0xba, 0x87, 0x91, 0x8b, 0x1b, 0x8c, 0x7b, 0x8a, 0x26, 0x83, 0x2b, 0xe6, 0xe7, 0xfc, 0x1c, 0xbd, 0xb8, 0x90, 0x25, 0x19, 0x28, 0x1a, 0x06, 0x54, 0xec, 0x73, 0xde, 0x0b, 0xb0, 0x71, 0x01, 0xa9, 0xd6, 0x03, 0xf7, 0x45, 0xd4, 0xec, 0x23, 0x57, 0xae, 0xe9, 0x87, 0x0c, 0xb1, 0x9a, 0x56, 0xcb, 0x44, 0xfb, 0xd9, 0xc9, 0x1f, 0xc3, 0x47, 0x52, 0x61, 0x2f, 0xbd, 0x83, 0xd6, 0xfc, 0x1a, 0x16, 0xbf, 0x8a, 0x85, 0xa2, 0x15, 0xd0, 0x14, 0x8e, 0x4a, 0xf3, 0x7d, 0x29, 0x84, 0x67, 0xe5, 0xcc, 0x48, 0x6b, 0x13, 0x13, 0x52, 0xce, 0x09, 0x21, 0x82, 0xce, 0x82, 0x84, 0x15, 0x9a, 0x38, 0x12, 0xb3, 0x0b, 0xac, 0xbf, 0xf5, 0x95, 0x86, 0x38, 0x11, 0xbf, 0x9a, 0x30, 0xa9, 0xda, 0x49, 0x45, 0x65, 0xc3, 0xac, 0x18, 0x14, 0x43, 0x00, 0x18, 0xea, 0x0e, 0xee, 0xd3, 0x9c, 0xdb, 0xca, 0x27, 0xf9, 0x31, 0x40, 0xe4, 0x69, 0x49, 0xdb, 0x57, 0x0b, 0xfa, 0x2e, 0xd4, 0xf4, 0x07, 0x3f, 0x88, 0x33, };
3472 static const u8 ed25519_151_test_vectors_expected_sig[] = {
3473 	0x6f, 0x13, 0x62, 0xa4, 0x02, 0x06, 0x37, 0x91, 0xf9, 0x50, 0x98, 0x4f, 0x54, 0x49, 0x28, 0xe6, 0x16, 0xa4, 0xef, 0x79, 0xbb, 0xeb, 0x68, 0x54, 0xe9, 0x61, 0x5a, 0xab, 0x9c, 0xdb, 0xae, 0xc4, 0x83, 0xfb, 0x9a, 0x04, 0xbf, 0x22, 0xde, 0x5d, 0x97, 0xa1, 0x5b, 0xda, 0x2d, 0x39, 0x04, 0x83, 0xc7, 0xf6, 0x1d, 0xbe, 0xe0, 0x7b, 0xb5, 0x14, 0x1f, 0xc1, 0x73, 0xb1, 0xaa, 0x47, 0x65, 0x0d, };
3474 static const ec_test_case ed25519_151_test_case = {
3475 	.name = "EDDSA25519-SHA512/wei25519 151",
3476 	.ec_str_p = &wei25519_str_params,
3477 	.priv_key = ed25519_151_test_vectors_priv_key,
3478 	.priv_key_len = sizeof(ed25519_151_test_vectors_priv_key),
3479 	.nn_random = NULL,
3480 	.hash_type = SHA512,
3481 	.msg = (const char *)ed25519_151_test_vectors_message,
3482 	.msglen = sizeof(ed25519_151_test_vectors_message),
3483 	.sig_type = EDDSA25519,
3484 	.exp_sig = ed25519_151_test_vectors_expected_sig,
3485 	.exp_siglen = sizeof(ed25519_151_test_vectors_expected_sig),
3486 	.adata = NULL,
3487 	.adata_len = 0
3488 };
3489 
3490 /************************************************/
3491 static const u8 ed25519_152_test_vectors_priv_key[] = {
3492 	0xd5, 0xef, 0xe5, 0x1d, 0x5c, 0xd8, 0xe1, 0x08, 0xbd, 0x92, 0x2f, 0xc0, 0xea, 0x12, 0x61, 0x90, 0xa9, 0x46, 0x28, 0xff, 0xa5, 0x3c, 0x43, 0x3a, 0x51, 0x80, 0x22, 0x79, 0x2d, 0xdc, 0x78, 0xef, };
3493 static const u8 ed25519_152_test_vectors_message[] = {
3494 	0x9d, 0x17, 0xbc, 0xfe, 0x2d, 0xfc, 0x74, 0x2f, 0x41, 0x1c, 0xb5, 0x3a, 0x94, 0xf3, 0x59, 0xc0, 0x01, 0xab, 0xf0, 0x96, 0xc7, 0x41, 0xf3, 0x4a, 0xf4, 0x86, 0x79, 0xf2, 0x81, 0xe7, 0xce, 0x6b, 0xbd, 0x9e, 0x87, 0x70, 0x9f, 0xc0, 0x72, 0x8a, 0x56, 0x3d, 0xb2, 0xb9, 0xcf, 0x8e, 0xa4, 0xfb, 0xdc, 0xc3, 0x44, 0xc1, 0x84, 0x8e, 0x65, 0x3c, 0xe9, 0x70, 0xc6, 0xce, 0x29, 0xde, 0x2c, 0xcd, 0x52, 0x03, 0x00, 0x64, 0x9a, 0xdc, 0xdd, 0xfc, 0x75, 0x39, 0x71, 0xf8, 0x46, 0xaa, 0xc1, 0xba, 0x42, 0xae, 0x45, 0x28, 0x95, 0x2d, 0x94, 0x98, 0x0a, 0xa7, 0xc6, 0xcf, 0xa2, 0x14, 0x29, 0x07, 0x64, 0x7f, 0x89, 0x4a, 0xe9, 0x74, 0xa7, 0x4d, 0x59, 0x03, 0x5a, 0x73, 0xef, 0x56, 0xa1, 0x0b, 0x66, 0x12, 0x62, 0x48, 0x09, 0x52, 0x01, 0x90, 0xac, 0xe6, 0x61, 0xc3, 0xa4, 0x70, 0x95, 0xe0, 0x32, 0x2e, 0xfd, 0x78, 0x1d, 0x50, 0xd1, 0x16, 0x35, 0x98, 0xf2, 0xda, 0x32, 0xf3, 0x1b, 0xc9, 0xc4, 0xf9, 0x13, 0xd1, 0xb1, 0x48, 0x61, };
3495 static const u8 ed25519_152_test_vectors_expected_sig[] = {
3496 	0x23, 0x06, 0xf5, 0x8f, 0xcd, 0x4c, 0xff, 0x22, 0x22, 0xd8, 0x1b, 0x05, 0xa4, 0x75, 0x53, 0x2b, 0x8b, 0x19, 0xdc, 0x67, 0xe6, 0xd7, 0x8d, 0xdb, 0x42, 0x05, 0xa3, 0xb7, 0x62, 0x1c, 0xc5, 0xae, 0xf0, 0xb3, 0x93, 0xd5, 0xd2, 0x4d, 0xd9, 0x6c, 0x88, 0xcc, 0xbc, 0x53, 0xa3, 0x20, 0x8d, 0xa3, 0x23, 0xbe, 0x45, 0x87, 0xd5, 0xec, 0x06, 0x7c, 0x82, 0x0f, 0x07, 0x23, 0xaa, 0x44, 0xe9, 0x0e, };
3497 static const ec_test_case ed25519_152_test_case = {
3498 	.name = "EDDSA25519-SHA512/wei25519 152",
3499 	.ec_str_p = &wei25519_str_params,
3500 	.priv_key = ed25519_152_test_vectors_priv_key,
3501 	.priv_key_len = sizeof(ed25519_152_test_vectors_priv_key),
3502 	.nn_random = NULL,
3503 	.hash_type = SHA512,
3504 	.msg = (const char *)ed25519_152_test_vectors_message,
3505 	.msglen = sizeof(ed25519_152_test_vectors_message),
3506 	.sig_type = EDDSA25519,
3507 	.exp_sig = ed25519_152_test_vectors_expected_sig,
3508 	.exp_siglen = sizeof(ed25519_152_test_vectors_expected_sig),
3509 	.adata = NULL,
3510 	.adata_len = 0
3511 };
3512 
3513 /************************************************/
3514 static const u8 ed25519_153_test_vectors_priv_key[] = {
3515 	0x18, 0xaf, 0x89, 0x02, 0x5e, 0xbf, 0xa7, 0x6b, 0xd5, 0x57, 0xcf, 0xb2, 0xdf, 0xf1, 0x48, 0x24, 0x52, 0x14, 0x64, 0x1f, 0xd5, 0xbd, 0xa1, 0x59, 0xf7, 0x3d, 0xa0, 0x4b, 0x08, 0xe8, 0x7c, 0x88, };
3516 static const u8 ed25519_153_test_vectors_message[] = {
3517 	0xe8, 0x2f, 0x46, 0x65, 0x2a, 0xb9, 0x14, 0xaf, 0x53, 0x5d, 0x8f, 0xb7, 0x20, 0xb5, 0x57, 0xac, 0x95, 0x01, 0x8d, 0x9f, 0x2a, 0x3f, 0xcc, 0xe8, 0x57, 0x71, 0xbb, 0x40, 0xab, 0x14, 0xcb, 0x9a, 0x98, 0x6e, 0x09, 0x6f, 0x3a, 0xfe, 0x5b, 0xee, 0x82, 0x9d, 0xfd, 0x8b, 0x97, 0x33, 0x5c, 0x53, 0x6a, 0xc9, 0x71, 0xa2, 0x16, 0x55, 0xaf, 0x16, 0xa2, 0xf8, 0xfd, 0xba, 0x18, 0x3a, 0x4e, 0x18, 0x56, 0x4c, 0x21, 0x49, 0x29, 0x56, 0x53, 0x7a, 0x41, 0x9a, 0xbb, 0xbb, 0xb0, 0x2a, 0x4b, 0xbd, 0xc0, 0x14, 0x81, 0xf5, 0xc6, 0xe6, 0x58, 0xec, 0xf3, 0xc3, 0x4f, 0x01, 0x1a, 0xd8, 0x46, 0xf5, 0xed, 0xcd, 0x49, 0x39, 0x19, 0x5d, 0xf8, 0x5e, 0x41, 0x30, 0x3f, 0xb9, 0xa8, 0x8f, 0xdf, 0xbd, 0x70, 0x43, 0x96, 0xf7, 0x55, 0x9a, 0x32, 0x73, 0x18, 0xb9, 0x52, 0xb3, 0xe6, 0x0c, 0xe8, 0xdd, 0xde, 0x56, 0x37, 0x85, 0x79, 0x23, 0x2f, 0xaf, 0x95, 0x0c, 0x78, 0xe7, 0xf0, 0xb1, 0x7c, 0x3b, 0x8d, 0xec, 0xe3, 0x6b, 0x78, 0x8a, 0x84, 0x73, };
3518 static const u8 ed25519_153_test_vectors_expected_sig[] = {
3519 	0x26, 0xbb, 0x08, 0x82, 0x29, 0x7c, 0x2c, 0x08, 0xa7, 0x52, 0xd3, 0x98, 0x11, 0x45, 0xdc, 0xde, 0x55, 0x89, 0x3a, 0x11, 0xdf, 0x77, 0xf8, 0xaa, 0x4c, 0x19, 0xd0, 0xb9, 0xed, 0x6e, 0x52, 0x20, 0xed, 0x12, 0xe9, 0xfa, 0xc3, 0xaf, 0x13, 0xd0, 0xf0, 0xc7, 0x15, 0x68, 0xf4, 0xa5, 0x47, 0xd3, 0x01, 0x14, 0xa6, 0x59, 0x9a, 0x23, 0x68, 0x06, 0xc4, 0xbe, 0xee, 0x67, 0x65, 0x28, 0x44, 0x08, };
3520 static const ec_test_case ed25519_153_test_case = {
3521 	.name = "EDDSA25519-SHA512/wei25519 153",
3522 	.ec_str_p = &wei25519_str_params,
3523 	.priv_key = ed25519_153_test_vectors_priv_key,
3524 	.priv_key_len = sizeof(ed25519_153_test_vectors_priv_key),
3525 	.nn_random = NULL,
3526 	.hash_type = SHA512,
3527 	.msg = (const char *)ed25519_153_test_vectors_message,
3528 	.msglen = sizeof(ed25519_153_test_vectors_message),
3529 	.sig_type = EDDSA25519,
3530 	.exp_sig = ed25519_153_test_vectors_expected_sig,
3531 	.exp_siglen = sizeof(ed25519_153_test_vectors_expected_sig),
3532 	.adata = NULL,
3533 	.adata_len = 0
3534 };
3535 
3536 /************************************************/
3537 static const u8 ed25519_154_test_vectors_priv_key[] = {
3538 	0x0c, 0x93, 0xd9, 0x98, 0x15, 0xff, 0xf8, 0xfe, 0x22, 0xb9, 0xe4, 0x5a, 0xa0, 0x2b, 0x3e, 0x64, 0x45, 0xce, 0x1d, 0x6b, 0xf5, 0xa6, 0x5d, 0xce, 0x3d, 0xa1, 0x07, 0xaa, 0x10, 0x55, 0x94, 0x0e, };
3539 static const u8 ed25519_154_test_vectors_message[] = {
3540 	0x11, 0xe8, 0x77, 0xde, 0x58, 0xc1, 0x34, 0xea, 0xf4, 0xc9, 0xf1, 0xb5, 0x3c, 0x3d, 0xc4, 0x51, 0xd3, 0xc0, 0x55, 0xf1, 0x6b, 0x09, 0x62, 0x27, 0x25, 0xb2, 0x79, 0x76, 0x85, 0x12, 0xfe, 0x10, 0xa7, 0xad, 0xb0, 0x76, 0x5b, 0x68, 0x9e, 0xc2, 0x1d, 0x5b, 0x6e, 0xfa, 0xa1, 0x9f, 0x1b, 0x9d, 0x36, 0x25, 0x4d, 0xf0, 0xa9, 0x36, 0x7f, 0x44, 0x1b, 0x26, 0xbd, 0xb9, 0x0b, 0x28, 0xcb, 0xc4, 0x03, 0xe5, 0x07, 0x40, 0x82, 0xfa, 0x1f, 0xed, 0x58, 0xe1, 0x40, 0xda, 0xc9, 0x7a, 0xea, 0xf4, 0x83, 0xe2, 0xc1, 0x3f, 0x3c, 0xc5, 0x60, 0xab, 0xff, 0xab, 0xa0, 0x5b, 0x76, 0x3f, 0xee, 0xdb, 0x51, 0xe6, 0x06, 0x98, 0x15, 0x1c, 0xf5, 0x6e, 0xfd, 0xf1, 0xd3, 0x7d, 0x6c, 0xe0, 0x56, 0x44, 0x86, 0x21, 0x0f, 0x05, 0x2e, 0x93, 0x7f, 0x2e, 0xa2, 0x6f, 0x63, 0xef, 0xa5, 0xd2, 0x47, 0xff, 0x18, 0x83, 0x29, 0xbb, 0x1a, 0xa8, 0x3c, 0xe3, 0xf4, 0xf3, 0x5a, 0x3d, 0x7d, 0xec, 0x14, 0x59, 0x9e, 0x5f, 0xeb, 0x7b, 0x6d, 0x5f, 0xe4, 0x29, 0x6a, };
3541 static const u8 ed25519_154_test_vectors_expected_sig[] = {
3542 	0x7d, 0xc4, 0x46, 0x7a, 0xbc, 0xf6, 0x43, 0x1a, 0xdb, 0x7c, 0xcf, 0xe8, 0x68, 0xea, 0xc8, 0xcd, 0x8a, 0x61, 0x5a, 0x0f, 0xf6, 0x5f, 0x6a, 0x9e, 0x33, 0x83, 0x75, 0xb1, 0xaa, 0xe3, 0xc4, 0x9a, 0x12, 0x6c, 0x9e, 0xba, 0x79, 0x42, 0x6d, 0x16, 0x41, 0xc6, 0xb9, 0x7c, 0x3e, 0x92, 0xc1, 0x94, 0xe5, 0xee, 0x44, 0x31, 0xef, 0xa2, 0x43, 0x9f, 0xd4, 0x50, 0xf2, 0xcd, 0x01, 0x8c, 0x87, 0x00, };
3543 static const ec_test_case ed25519_154_test_case = {
3544 	.name = "EDDSA25519-SHA512/wei25519 154",
3545 	.ec_str_p = &wei25519_str_params,
3546 	.priv_key = ed25519_154_test_vectors_priv_key,
3547 	.priv_key_len = sizeof(ed25519_154_test_vectors_priv_key),
3548 	.nn_random = NULL,
3549 	.hash_type = SHA512,
3550 	.msg = (const char *)ed25519_154_test_vectors_message,
3551 	.msglen = sizeof(ed25519_154_test_vectors_message),
3552 	.sig_type = EDDSA25519,
3553 	.exp_sig = ed25519_154_test_vectors_expected_sig,
3554 	.exp_siglen = sizeof(ed25519_154_test_vectors_expected_sig),
3555 	.adata = NULL,
3556 	.adata_len = 0
3557 };
3558 
3559 /************************************************/
3560 static const u8 ed25519_155_test_vectors_priv_key[] = {
3561 	0x98, 0x9e, 0x99, 0x94, 0x56, 0x35, 0x19, 0x2c, 0x02, 0x3c, 0xc5, 0x18, 0x6f, 0xc2, 0x5b, 0xba, 0xef, 0x47, 0x24, 0x07, 0x75, 0xd1, 0x5a, 0x56, 0x19, 0x5d, 0x88, 0xcd, 0x07, 0xc3, 0x74, 0x8e, };
3562 static const u8 ed25519_155_test_vectors_message[] = {
3563 	0xc4, 0x84, 0x14, 0xf5, 0xc7, 0x57, 0xd0, 0x3c, 0x52, 0x3e, 0xf3, 0xf3, 0xb8, 0x51, 0x07, 0x71, 0xb0, 0xff, 0x3b, 0x4b, 0x97, 0xde, 0x27, 0x96, 0x25, 0xd3, 0x49, 0xec, 0x18, 0x5a, 0x29, 0x92, 0x7a, 0x66, 0xb9, 0x59, 0x3b, 0xa1, 0x93, 0x38, 0xc2, 0xf5, 0xe4, 0x13, 0x1f, 0x1a, 0xc0, 0x7e, 0xa4, 0x6d, 0x2c, 0x1b, 0x6e, 0x4a, 0xb5, 0x22, 0x92, 0x80, 0xb2, 0xe2, 0xbb, 0x9d, 0x14, 0x0d, 0x1e, 0xf7, 0xaf, 0x7b, 0x16, 0x92, 0xbf, 0x2d, 0x09, 0x7b, 0x80, 0xf8, 0x11, 0xad, 0xcf, 0xa9, 0x5d, 0x5c, 0xbf, 0x9e, 0xee, 0x92, 0xa1, 0x64, 0x1c, 0x55, 0x2b, 0x4b, 0xe4, 0xa0, 0xd7, 0x34, 0xf0, 0xaf, 0xd4, 0x70, 0xb9, 0xd7, 0xf4, 0xe4, 0x57, 0x78, 0x95, 0x1e, 0x21, 0xfc, 0x53, 0x4f, 0x20, 0x0a, 0x12, 0x8b, 0x96, 0xad, 0xb8, 0x37, 0x3f, 0x10, 0xce, 0xce, 0xc2, 0xda, 0xc2, 0x99, 0x6a, 0x06, 0x2f, 0xb3, 0xc2, 0x94, 0x31, 0x59, 0x65, 0xa9, 0xd5, 0xd7, 0xb0, 0x77, 0xc4, 0xb0, 0x13, 0xc6, 0x4a, 0x38, 0x42, 0x97, 0x69, 0xd2, 0x3e, 0xab, };
3564 static const u8 ed25519_155_test_vectors_expected_sig[] = {
3565 	0xae, 0xf7, 0x56, 0xbf, 0xb8, 0xa7, 0x26, 0x6e, 0x17, 0xd1, 0x5f, 0x3f, 0x11, 0xee, 0x50, 0xed, 0x25, 0xbe, 0x42, 0x0e, 0x95, 0xa0, 0x74, 0x22, 0x71, 0xeb, 0xd1, 0x22, 0x94, 0xe2, 0xcb, 0x96, 0xea, 0xd0, 0x83, 0xb8, 0xff, 0x0b, 0x82, 0x9d, 0x2e, 0xde, 0xb1, 0x4d, 0xa8, 0x6e, 0x40, 0x2e, 0xf2, 0x5e, 0x6d, 0x4a, 0x5a, 0x79, 0x58, 0xc1, 0x84, 0xed, 0x10, 0xc1, 0x76, 0xcb, 0x57, 0x0b, };
3566 static const ec_test_case ed25519_155_test_case = {
3567 	.name = "EDDSA25519-SHA512/wei25519 155",
3568 	.ec_str_p = &wei25519_str_params,
3569 	.priv_key = ed25519_155_test_vectors_priv_key,
3570 	.priv_key_len = sizeof(ed25519_155_test_vectors_priv_key),
3571 	.nn_random = NULL,
3572 	.hash_type = SHA512,
3573 	.msg = (const char *)ed25519_155_test_vectors_message,
3574 	.msglen = sizeof(ed25519_155_test_vectors_message),
3575 	.sig_type = EDDSA25519,
3576 	.exp_sig = ed25519_155_test_vectors_expected_sig,
3577 	.exp_siglen = sizeof(ed25519_155_test_vectors_expected_sig),
3578 	.adata = NULL,
3579 	.adata_len = 0
3580 };
3581 
3582 /************************************************/
3583 static const u8 ed25519_156_test_vectors_priv_key[] = {
3584 	0x6b, 0xdb, 0xbe, 0x06, 0xd9, 0xf4, 0x21, 0x9e, 0xea, 0x64, 0x03, 0xa3, 0x57, 0xb2, 0x5e, 0x56, 0x19, 0x92, 0xfa, 0xe0, 0xf0, 0xf6, 0x14, 0x56, 0x1d, 0xd8, 0x6d, 0x23, 0xde, 0x41, 0x5a, 0x43, };
3585 static const u8 ed25519_156_test_vectors_message[] = {
3586 	0x58, 0x2a, 0xda, 0x13, 0xd6, 0x92, 0x93, 0xe4, 0x9b, 0xbd, 0x46, 0x10, 0x32, 0xdf, 0xea, 0x1c, 0xa2, 0x02, 0x5b, 0x52, 0xe0, 0x13, 0xa3, 0x3a, 0x03, 0x87, 0xfc, 0xfc, 0x5f, 0x7c, 0x0b, 0x8e, 0xc9, 0x55, 0x98, 0x26, 0x07, 0xfc, 0x90, 0x1e, 0x1b, 0x7f, 0x63, 0x6a, 0x9d, 0x37, 0x1e, 0x1f, 0x91, 0xfe, 0x47, 0x6b, 0xdd, 0x44, 0x85, 0x6e, 0x27, 0x5d, 0x67, 0xef, 0xa1, 0x42, 0x38, 0x16, 0x43, 0x54, 0xc2, 0x31, 0x12, 0x4c, 0x84, 0xde, 0x8f, 0x5b, 0x89, 0xd5, 0xa5, 0x8e, 0xa6, 0x74, 0x4b, 0x4d, 0x3b, 0x3d, 0x79, 0x06, 0x90, 0x52, 0x33, 0xcc, 0xe6, 0x94, 0xa6, 0x4d, 0x69, 0x6f, 0x5a, 0x70, 0x24, 0xfc, 0x90, 0x33, 0xb1, 0xce, 0x39, 0x08, 0x99, 0xa3, 0xb4, 0x41, 0xa4, 0x8e, 0x53, 0xc7, 0xc9, 0xb3, 0x0b, 0xa1, 0x2e, 0x7d, 0x61, 0xf3, 0x5f, 0x15, 0xe6, 0x58, 0xc7, 0xcc, 0x44, 0x07, 0xe2, 0xf6, 0x89, 0xea, 0x8a, 0x55, 0xd0, 0x1b, 0xf5, 0xdb, 0xac, 0xb1, 0x19, 0x54, 0x75, 0x4f, 0x92, 0x0f, 0x09, 0xdb, 0xd4, 0x84, 0x09, 0xbb, 0xb5, };
3587 static const u8 ed25519_156_test_vectors_expected_sig[] = {
3588 	0x95, 0x02, 0x06, 0x60, 0x5b, 0x0f, 0x41, 0x7c, 0x90, 0x84, 0x3e, 0x2c, 0x8d, 0x8e, 0x66, 0xc8, 0x28, 0xbb, 0x10, 0xb9, 0x9b, 0x36, 0xee, 0xee, 0xe8, 0xca, 0xf2, 0xe0, 0xe5, 0x48, 0x4d, 0x93, 0xfe, 0x02, 0xbf, 0x53, 0x34, 0x05, 0xf4, 0xbb, 0x74, 0xa5, 0x0e, 0x55, 0x85, 0xfa, 0x0d, 0xae, 0xf4, 0x82, 0x1f, 0x03, 0x01, 0xd0, 0x1b, 0x46, 0x32, 0x1b, 0xaa, 0x31, 0xe1, 0xf0, 0x8d, 0x03, };
3589 static const ec_test_case ed25519_156_test_case = {
3590 	.name = "EDDSA25519-SHA512/wei25519 156",
3591 	.ec_str_p = &wei25519_str_params,
3592 	.priv_key = ed25519_156_test_vectors_priv_key,
3593 	.priv_key_len = sizeof(ed25519_156_test_vectors_priv_key),
3594 	.nn_random = NULL,
3595 	.hash_type = SHA512,
3596 	.msg = (const char *)ed25519_156_test_vectors_message,
3597 	.msglen = sizeof(ed25519_156_test_vectors_message),
3598 	.sig_type = EDDSA25519,
3599 	.exp_sig = ed25519_156_test_vectors_expected_sig,
3600 	.exp_siglen = sizeof(ed25519_156_test_vectors_expected_sig),
3601 	.adata = NULL,
3602 	.adata_len = 0
3603 };
3604 
3605 /************************************************/
3606 static const u8 ed25519_157_test_vectors_priv_key[] = {
3607 	0xd7, 0x61, 0xc8, 0xc5, 0xa9, 0x60, 0x1b, 0x91, 0x45, 0xb7, 0xd0, 0x51, 0x24, 0x9b, 0x00, 0x41, 0x07, 0xe4, 0x52, 0xe5, 0x63, 0x10, 0x0c, 0x6c, 0x78, 0x80, 0x38, 0xc9, 0xee, 0x8a, 0xda, 0xd7, };
3608 static const u8 ed25519_157_test_vectors_message[] = {
3609 	0x84, 0xea, 0xd5, 0xea, 0xbd, 0x2f, 0xd4, 0xb7, 0xc7, 0x9a, 0x9a, 0x92, 0x8a, 0xb8, 0xee, 0x0a, 0x16, 0xa5, 0xfd, 0x66, 0x7a, 0x05, 0x7f, 0x8a, 0x25, 0x46, 0x63, 0xd5, 0x6d, 0xaa, 0xe1, 0x56, 0xd1, 0xa4, 0x9a, 0xff, 0xb2, 0x99, 0x61, 0x37, 0xb9, 0xd8, 0xb3, 0x40, 0xe6, 0x35, 0x73, 0x2f, 0x9d, 0x2b, 0x4c, 0x60, 0x21, 0x84, 0x42, 0x54, 0x1e, 0x72, 0xd2, 0xb0, 0x0e, 0x1e, 0xe7, 0xa7, 0x3c, 0x3f, 0x67, 0xca, 0xa4, 0x99, 0xfa, 0x9d, 0x07, 0x0b, 0x57, 0xd0, 0x76, 0xdc, 0xde, 0x96, 0xb0, 0x76, 0x47, 0x23, 0xc3, 0xc6, 0x59, 0xc7, 0xa0, 0x0c, 0x1b, 0x78, 0xb1, 0x5c, 0xcc, 0x22, 0x23, 0x89, 0x0b, 0x51, 0x06, 0x7f, 0xc8, 0x1e, 0x23, 0xe9, 0x45, 0x8a, 0xb0, 0x68, 0x3b, 0xa6, 0x26, 0xa5, 0x3d, 0x0c, 0x37, 0x93, 0xa5, 0x8a, 0x98, 0x57, 0xbb, 0x44, 0xb3, 0xbd, 0x85, 0xbb, 0x6c, 0xe5, 0x3a, 0x85, 0x69, 0x4e, 0x7f, 0x53, 0xcc, 0x1b, 0xd4, 0x6d, 0x50, 0xed, 0xa3, 0x7d, 0x81, 0xf5, 0x38, 0x1b, 0x51, 0x3d, 0x1f, 0x38, 0x33, 0x9d, 0x29, 0x1b, };
3610 static const u8 ed25519_157_test_vectors_expected_sig[] = {
3611 	0x7a, 0xb7, 0x8b, 0x64, 0xe6, 0xdb, 0x35, 0x9a, 0x2d, 0xc8, 0x30, 0x2e, 0x10, 0x92, 0xed, 0x66, 0xfa, 0x73, 0x6b, 0x53, 0x62, 0x53, 0xa1, 0xcd, 0x90, 0xfd, 0xb8, 0xc1, 0x0e, 0xfd, 0x78, 0x30, 0x02, 0x25, 0xe1, 0x91, 0x96, 0x35, 0x99, 0xba, 0x54, 0x9c, 0xc8, 0x59, 0x20, 0x9d, 0xf0, 0xff, 0x61, 0xcd, 0x06, 0x9b, 0x03, 0xd2, 0x54, 0xe6, 0xe7, 0xd7, 0x6c, 0x79, 0x84, 0x40, 0xf9, 0x07, };
3612 static const ec_test_case ed25519_157_test_case = {
3613 	.name = "EDDSA25519-SHA512/wei25519 157",
3614 	.ec_str_p = &wei25519_str_params,
3615 	.priv_key = ed25519_157_test_vectors_priv_key,
3616 	.priv_key_len = sizeof(ed25519_157_test_vectors_priv_key),
3617 	.nn_random = NULL,
3618 	.hash_type = SHA512,
3619 	.msg = (const char *)ed25519_157_test_vectors_message,
3620 	.msglen = sizeof(ed25519_157_test_vectors_message),
3621 	.sig_type = EDDSA25519,
3622 	.exp_sig = ed25519_157_test_vectors_expected_sig,
3623 	.exp_siglen = sizeof(ed25519_157_test_vectors_expected_sig),
3624 	.adata = NULL,
3625 	.adata_len = 0
3626 };
3627 
3628 /************************************************/
3629 static const u8 ed25519_158_test_vectors_priv_key[] = {
3630 	0xc5, 0xe0, 0xc7, 0xa7, 0xbb, 0x8b, 0x7c, 0xa0, 0x7b, 0xf0, 0xa0, 0x5e, 0xa6, 0x7e, 0xff, 0x6d, 0xee, 0xbf, 0xe3, 0x71, 0x4e, 0xe3, 0xe1, 0xa2, 0x27, 0xf4, 0xdc, 0x8e, 0x24, 0x2a, 0x2f, 0xa0, };
3631 static const u8 ed25519_158_test_vectors_message[] = {
3632 	0x37, 0x70, 0xa6, 0x78, 0x66, 0x52, 0xc4, 0xb7, 0x8a, 0x04, 0x3e, 0xdc, 0xe0, 0x7f, 0x3e, 0x20, 0x4d, 0x81, 0x99, 0x7c, 0x42, 0xaf, 0xc2, 0x23, 0x31, 0xf7, 0x5a, 0x54, 0x94, 0xa8, 0x26, 0xd7, 0xcb, 0x69, 0xab, 0x43, 0x14, 0xa4, 0x73, 0x72, 0x10, 0x58, 0xa1, 0x83, 0x99, 0x81, 0xd5, 0xb7, 0x02, 0x2d, 0x0c, 0xd8, 0x67, 0x03, 0x77, 0xda, 0xf3, 0x32, 0x04, 0x76, 0xd2, 0x5b, 0x9f, 0x55, 0x95, 0x61, 0xd6, 0x6e, 0xe0, 0xa7, 0x09, 0xfe, 0x17, 0x36, 0x1e, 0x2a, 0x52, 0x89, 0x8f, 0x57, 0x53, 0xc4, 0xfb, 0x43, 0xbd, 0x0c, 0x98, 0xb3, 0x68, 0xf5, 0x12, 0xad, 0xc0, 0x9c, 0xd9, 0x27, 0xc6, 0x62, 0x26, 0x76, 0x92, 0x6d, 0x8c, 0x2d, 0x91, 0xa1, 0x4a, 0xca, 0x32, 0xf2, 0x26, 0xf7, 0x00, 0x36, 0xc1, 0xc8, 0x58, 0xbc, 0xff, 0xc2, 0xb5, 0x9f, 0x54, 0xc1, 0xc3, 0x7b, 0xf8, 0x1e, 0xb5, 0x2e, 0xcb, 0x3f, 0x00, 0xda, 0x60, 0x2c, 0x94, 0x36, 0x1b, 0x52, 0xa5, 0xaf, 0xdd, 0xbf, 0xd7, 0xe0, 0x50, 0x36, 0xe3, 0x77, 0x50, 0x30, 0x50, 0x33, 0x3b, 0xe5, 0x12, };
3633 static const u8 ed25519_158_test_vectors_expected_sig[] = {
3634 	0x2e, 0x7f, 0xde, 0xb3, 0x48, 0x4d, 0x0a, 0x5e, 0x8d, 0xce, 0x94, 0x44, 0x89, 0x79, 0x49, 0x6b, 0x06, 0x42, 0xca, 0xbc, 0x37, 0x33, 0xa5, 0x1f, 0x8c, 0x3c, 0x5c, 0x51, 0xc1, 0x9a, 0xe3, 0x19, 0x01, 0x8d, 0xa9, 0x10, 0x91, 0xc2, 0x38, 0x5f, 0x2f, 0x4e, 0x9a, 0x59, 0xed, 0xbc, 0xa2, 0xab, 0xd0, 0xd0, 0x85, 0xee, 0x40, 0xd3, 0xf0, 0xd4, 0x20, 0x61, 0xa5, 0xa9, 0x83, 0x2a, 0x37, 0x0c, };
3635 static const ec_test_case ed25519_158_test_case = {
3636 	.name = "EDDSA25519-SHA512/wei25519 158",
3637 	.ec_str_p = &wei25519_str_params,
3638 	.priv_key = ed25519_158_test_vectors_priv_key,
3639 	.priv_key_len = sizeof(ed25519_158_test_vectors_priv_key),
3640 	.nn_random = NULL,
3641 	.hash_type = SHA512,
3642 	.msg = (const char *)ed25519_158_test_vectors_message,
3643 	.msglen = sizeof(ed25519_158_test_vectors_message),
3644 	.sig_type = EDDSA25519,
3645 	.exp_sig = ed25519_158_test_vectors_expected_sig,
3646 	.exp_siglen = sizeof(ed25519_158_test_vectors_expected_sig),
3647 	.adata = NULL,
3648 	.adata_len = 0
3649 };
3650 
3651 /************************************************/
3652 static const u8 ed25519_159_test_vectors_priv_key[] = {
3653 	0x11, 0xbb, 0x47, 0x48, 0xd2, 0x54, 0x7e, 0x61, 0x96, 0xbe, 0x82, 0x3c, 0x9b, 0xe7, 0xaa, 0x18, 0x15, 0x0c, 0x20, 0x4b, 0x12, 0xca, 0x8d, 0x73, 0xc1, 0xbd, 0x46, 0xb1, 0x1a, 0x54, 0xb4, 0x75, };
3654 static const u8 ed25519_159_test_vectors_message[] = {
3655 	0xf4, 0xb7, 0x65, 0xb2, 0x58, 0xba, 0x35, 0xb4, 0x27, 0x52, 0x5c, 0x7f, 0x10, 0xa4, 0x6f, 0x0b, 0xcc, 0xd3, 0x57, 0xec, 0x1a, 0xd5, 0x2a, 0x5b, 0x13, 0x94, 0x17, 0xa9, 0xd3, 0x89, 0x4c, 0x51, 0x2d, 0x89, 0xeb, 0x88, 0xe6, 0x81, 0xb1, 0xf3, 0x0a, 0xac, 0x4c, 0x11, 0x5c, 0xcf, 0x36, 0x54, 0x5e, 0x83, 0xf3, 0x78, 0x34, 0xc8, 0x2e, 0x83, 0x00, 0xcc, 0x1e, 0xb2, 0x89, 0xaf, 0x43, 0x75, 0x96, 0x8c, 0x29, 0xc0, 0xff, 0xef, 0xb4, 0x0e, 0x15, 0x6c, 0x20, 0xc0, 0x43, 0x26, 0x69, 0xac, 0x8d, 0xc0, 0xa8, 0x3c, 0x13, 0xb1, 0xe8, 0x55, 0xa8, 0x4a, 0xd0, 0x13, 0x3c, 0x40, 0xc8, 0x2c, 0x87, 0xee, 0x1e, 0x7d, 0xd4, 0x08, 0x4d, 0x74, 0x1c, 0x80, 0xde, 0x8a, 0x7a, 0x9f, 0x77, 0x59, 0xe8, 0x43, 0xa5, 0x62, 0x09, 0x9c, 0x4d, 0x7d, 0xf8, 0x75, 0x35, 0x20, 0x39, 0xff, 0x4d, 0x38, 0x24, 0x65, 0x13, 0x86, 0xc9, 0x77, 0x59, 0xff, 0x7d, 0xba, 0x52, 0x06, 0x4e, 0x6d, 0x31, 0x12, 0xe0, 0x80, 0x81, 0x9a, 0xee, 0x8c, 0xe7, 0x23, 0xa1, 0xa2, 0xaa, 0x46, 0x4d, 0x8a, };
3656 static const u8 ed25519_159_test_vectors_expected_sig[] = {
3657 	0x44, 0xc5, 0x8d, 0xa4, 0x9d, 0x23, 0x65, 0xd2, 0x70, 0x29, 0xd1, 0xee, 0xbb, 0x3b, 0xeb, 0xf7, 0xc0, 0x32, 0xd8, 0x58, 0xaa, 0x07, 0xe0, 0x75, 0x6b, 0x1c, 0x26, 0xa5, 0x41, 0x2d, 0x22, 0x69, 0x11, 0x76, 0x03, 0x13, 0x41, 0xad, 0x37, 0xd7, 0xbb, 0x78, 0x43, 0x28, 0x9e, 0xb3, 0x9d, 0xb4, 0x91, 0x58, 0x4c, 0x1b, 0x2a, 0x1d, 0xa2, 0xe4, 0xa2, 0x64, 0x9c, 0x22, 0x93, 0x82, 0x66, 0x06, };
3658 static const ec_test_case ed25519_159_test_case = {
3659 	.name = "EDDSA25519-SHA512/wei25519 159",
3660 	.ec_str_p = &wei25519_str_params,
3661 	.priv_key = ed25519_159_test_vectors_priv_key,
3662 	.priv_key_len = sizeof(ed25519_159_test_vectors_priv_key),
3663 	.nn_random = NULL,
3664 	.hash_type = SHA512,
3665 	.msg = (const char *)ed25519_159_test_vectors_message,
3666 	.msglen = sizeof(ed25519_159_test_vectors_message),
3667 	.sig_type = EDDSA25519,
3668 	.exp_sig = ed25519_159_test_vectors_expected_sig,
3669 	.exp_siglen = sizeof(ed25519_159_test_vectors_expected_sig),
3670 	.adata = NULL,
3671 	.adata_len = 0
3672 };
3673 
3674 /************************************************/
3675 static const u8 ed25519_160_test_vectors_priv_key[] = {
3676 	0x74, 0x52, 0xa0, 0x01, 0x56, 0xd7, 0x94, 0xed, 0xeb, 0xff, 0x4a, 0xdb, 0x1f, 0x7a, 0x7e, 0xec, 0x26, 0x21, 0x7f, 0xef, 0x67, 0xc3, 0xd2, 0x68, 0x35, 0x2b, 0x2b, 0x54, 0x60, 0xa7, 0xdc, 0x25, };
3677 static const u8 ed25519_160_test_vectors_message[] = {
3678 	0x8c, 0x4e, 0xe2, 0x86, 0x76, 0x56, 0xe3, 0x3f, 0x52, 0x69, 0x41, 0x4d, 0x77, 0xb4, 0x2d, 0x8e, 0x47, 0x50, 0xdb, 0xa9, 0x3c, 0x41, 0x8b, 0xac, 0xca, 0x10, 0x93, 0x8c, 0xc3, 0xb5, 0x70, 0xc6, 0x60, 0x3d, 0x52, 0xc2, 0x34, 0x44, 0x88, 0x60, 0x7b, 0x2f, 0x93, 0x4f, 0x6d, 0x26, 0x9f, 0xcb, 0x2a, 0xd9, 0x66, 0x21, 0x9b, 0x1a, 0xb1, 0x14, 0x72, 0xf4, 0x2c, 0x67, 0x2c, 0xe2, 0x05, 0x92, 0x49, 0x0e, 0xc5, 0xba, 0xf6, 0xa2, 0xd2, 0xfc, 0x8a, 0x3e, 0xe3, 0x53, 0x74, 0xb1, 0x90, 0x2f, 0xde, 0xfc, 0x78, 0x70, 0xb1, 0xb6, 0x26, 0xfa, 0x46, 0xb1, 0x2b, 0x6c, 0xee, 0x24, 0x1f, 0x60, 0x1a, 0x9b, 0x3f, 0xe4, 0xc5, 0x08, 0x12, 0xe5, 0x73, 0xe6, 0x75, 0x2c, 0xe2, 0xc7, 0x64, 0x4e, 0x33, 0x67, 0xa6, 0xa6, 0xb7, 0x77, 0x58, 0xd8, 0xe4, 0x93, 0x4b, 0x58, 0xaf, 0x23, 0xab, 0xae, 0x8f, 0xec, 0xac, 0x25, 0xed, 0xd7, 0x34, 0x03, 0x0e, 0xe7, 0xcf, 0x39, 0x90, 0x7e, 0x3e, 0xed, 0x81, 0x86, 0xa1, 0x9a, 0x80, 0x71, 0x03, 0xa9, 0xfc, 0x49, 0xd3, 0x8f, 0x4c, 0x84, 0x60, };
3679 static const u8 ed25519_160_test_vectors_expected_sig[] = {
3680 	0xa8, 0xf9, 0xfa, 0x24, 0xa3, 0xde, 0xa1, 0x02, 0x2e, 0x73, 0xf0, 0xd8, 0x8b, 0x1c, 0x37, 0xd0, 0x6d, 0x0f, 0x0b, 0x20, 0xbb, 0xff, 0x0e, 0xcd, 0xb4, 0xa4, 0x0c, 0x86, 0xd7, 0xe4, 0x75, 0x61, 0x7c, 0x03, 0x57, 0x0a, 0x74, 0x19, 0xd7, 0x4b, 0xa0, 0xf1, 0x32, 0x70, 0x96, 0xbf, 0x19, 0xf0, 0xd0, 0xcf, 0x9f, 0x51, 0xd4, 0x83, 0x11, 0x2f, 0x26, 0x92, 0x23, 0x78, 0x68, 0x2f, 0x48, 0x07, };
3681 static const ec_test_case ed25519_160_test_case = {
3682 	.name = "EDDSA25519-SHA512/wei25519 160",
3683 	.ec_str_p = &wei25519_str_params,
3684 	.priv_key = ed25519_160_test_vectors_priv_key,
3685 	.priv_key_len = sizeof(ed25519_160_test_vectors_priv_key),
3686 	.nn_random = NULL,
3687 	.hash_type = SHA512,
3688 	.msg = (const char *)ed25519_160_test_vectors_message,
3689 	.msglen = sizeof(ed25519_160_test_vectors_message),
3690 	.sig_type = EDDSA25519,
3691 	.exp_sig = ed25519_160_test_vectors_expected_sig,
3692 	.exp_siglen = sizeof(ed25519_160_test_vectors_expected_sig),
3693 	.adata = NULL,
3694 	.adata_len = 0
3695 };
3696 
3697 /************************************************/
3698 static const u8 ed25519_161_test_vectors_priv_key[] = {
3699 	0x88, 0x0e, 0xf1, 0x06, 0x73, 0x3f, 0x04, 0xe7, 0x61, 0x95, 0xeb, 0xa2, 0x80, 0xb3, 0xfa, 0xdd, 0xa0, 0xf2, 0x5d, 0xcf, 0x96, 0xa6, 0xa9, 0x9c, 0x8c, 0xcf, 0x84, 0x2c, 0x68, 0xaf, 0xda, 0xe5, };
3700 static const u8 ed25519_161_test_vectors_message[] = {
3701 	0xf4, 0xf3, 0x8d, 0x07, 0x7f, 0x2b, 0x03, 0xda, 0x82, 0x1b, 0xd3, 0x6f, 0xde, 0x67, 0x3d, 0x66, 0x6e, 0x52, 0xf4, 0x83, 0x2e, 0x1c, 0x0d, 0xcf, 0xee, 0xf0, 0x49, 0x32, 0x8a, 0xcb, 0x7b, 0xd7, 0x1a, 0xd2, 0xbf, 0xc4, 0x9c, 0x12, 0x35, 0x16, 0xe1, 0x96, 0xc4, 0x70, 0xdf, 0x08, 0x47, 0xb3, 0x84, 0x8a, 0x45, 0xa2, 0xc6, 0x9b, 0xea, 0x03, 0xe2, 0xaf, 0xa7, 0xe5, 0x82, 0x05, 0xb6, 0x3b, 0x52, 0x38, 0x14, 0xfc, 0x8e, 0x24, 0x2f, 0x05, 0x9c, 0x69, 0xff, 0x7e, 0x40, 0xf9, 0x7b, 0xe8, 0x12, 0x5b, 0x70, 0xa5, 0x4f, 0xda, 0xf3, 0x5a, 0xea, 0xfa, 0xc7, 0x91, 0x14, 0xa7, 0xb4, 0x19, 0xe6, 0xbb, 0x9e, 0x70, 0xbf, 0x07, 0xad, 0xb5, 0x59, 0x81, 0x96, 0x00, 0xdc, 0x25, 0xe5, 0x1b, 0x4b, 0x70, 0x0d, 0x27, 0xca, 0x54, 0x72, 0xa0, 0xe7, 0xcb, 0xbf, 0xd1, 0x4e, 0x09, 0x9f, 0xaa, 0x3a, 0x72, 0x00, 0x2d, 0xa5, 0x38, 0xcb, 0xe4, 0x5d, 0x62, 0x1e, 0xf0, 0xd5, 0x25, 0x2b, 0xa2, 0x9d, 0x83, 0xf8, 0xb3, 0xec, 0x83, 0x89, 0xc9, 0xce, 0xb6, 0xc6, 0xb2, 0xe8, 0xd8, 0xa2, 0x0f, };
3702 static const u8 ed25519_161_test_vectors_expected_sig[] = {
3703 	0xff, 0x6c, 0xae, 0xdd, 0x8a, 0x46, 0x8a, 0xa0, 0x7d, 0x4c, 0x6e, 0x71, 0x31, 0xbb, 0xda, 0x76, 0x18, 0x2b, 0xa9, 0x58, 0x64, 0x93, 0x76, 0xe7, 0x11, 0xf4, 0x4c, 0x7b, 0xba, 0xcb, 0xa6, 0x07, 0x7b, 0xea, 0x87, 0x8b, 0xa5, 0x94, 0x9c, 0xde, 0xee, 0xf0, 0x5c, 0xfd, 0x49, 0x83, 0xb0, 0x05, 0x7d, 0x27, 0x5e, 0xa3, 0xe1, 0x8c, 0x32, 0x65, 0x94, 0x68, 0xc3, 0x0c, 0x47, 0xac, 0x8f, 0x0b, };
3704 static const ec_test_case ed25519_161_test_case = {
3705 	.name = "EDDSA25519-SHA512/wei25519 161",
3706 	.ec_str_p = &wei25519_str_params,
3707 	.priv_key = ed25519_161_test_vectors_priv_key,
3708 	.priv_key_len = sizeof(ed25519_161_test_vectors_priv_key),
3709 	.nn_random = NULL,
3710 	.hash_type = SHA512,
3711 	.msg = (const char *)ed25519_161_test_vectors_message,
3712 	.msglen = sizeof(ed25519_161_test_vectors_message),
3713 	.sig_type = EDDSA25519,
3714 	.exp_sig = ed25519_161_test_vectors_expected_sig,
3715 	.exp_siglen = sizeof(ed25519_161_test_vectors_expected_sig),
3716 	.adata = NULL,
3717 	.adata_len = 0
3718 };
3719 
3720 /************************************************/
3721 static const u8 ed25519_162_test_vectors_priv_key[] = {
3722 	0xa2, 0xd8, 0x8f, 0x37, 0xec, 0xc2, 0xb2, 0xc0, 0x5d, 0xd6, 0xcb, 0x31, 0x59, 0x96, 0x2c, 0x5f, 0x64, 0x6a, 0x98, 0x15, 0xb2, 0xfb, 0x37, 0x79, 0x1f, 0xc7, 0xb6, 0x06, 0xe2, 0x91, 0x3e, 0xd5, };
3723 static const u8 ed25519_162_test_vectors_message[] = {
3724 	0xd1, 0xb8, 0x7e, 0x9e, 0x88, 0x6d, 0xfb, 0xbd, 0xc8, 0xca, 0x8a, 0xb9, 0x01, 0x0e, 0xcf, 0x9b, 0xba, 0xf2, 0x3f, 0x72, 0xab, 0x3c, 0xbe, 0x76, 0x9d, 0xb1, 0xd4, 0x3c, 0x2a, 0x47, 0x4a, 0x81, 0x65, 0x1c, 0x46, 0x4e, 0x9f, 0xb9, 0x27, 0x34, 0x63, 0x46, 0x41, 0xc9, 0x48, 0x5a, 0x02, 0x39, 0xb3, 0x11, 0x07, 0x71, 0xe7, 0xf7, 0x5e, 0x05, 0x25, 0x2e, 0x4d, 0x8f, 0x4c, 0x0a, 0xa1, 0xba, 0x08, 0x62, 0x6d, 0x7e, 0x96, 0x31, 0x7c, 0x20, 0xac, 0xde, 0x2a, 0xd9, 0x9b, 0x23, 0xbd, 0xad, 0xfd, 0x6f, 0x17, 0x46, 0x8e, 0xb4, 0x02, 0xec, 0x5e, 0xef, 0xa5, 0x7b, 0x47, 0xca, 0xf9, 0x72, 0xb3, 0xdd, 0x21, 0xd8, 0x9f, 0x0e, 0x29, 0x89, 0xff, 0x87, 0xd5, 0x1e, 0xd2, 0xe2, 0xd6, 0x39, 0xc1, 0x64, 0x4e, 0x69, 0x8c, 0xbe, 0x02, 0x21, 0xb8, 0xe1, 0x79, 0xf3, 0xcf, 0xb0, 0x4a, 0x20, 0xcb, 0x24, 0x70, 0x21, 0x6a, 0x68, 0x82, 0xfb, 0x4f, 0xf7, 0x99, 0xe1, 0x15, 0x36, 0xcf, 0x64, 0x21, 0x9f, 0x0c, 0x07, 0x51, 0x76, 0xbc, 0x7c, 0xf0, 0xf6, 0xc5, 0xb7, 0x92, 0x5f, 0xcd, 0x61, 0x55, };
3725 static const u8 ed25519_162_test_vectors_expected_sig[] = {
3726 	0xcc, 0xf2, 0x40, 0x0c, 0xd6, 0x73, 0xe1, 0xef, 0xfd, 0x20, 0x16, 0x1d, 0x7b, 0x68, 0xa5, 0xfb, 0x87, 0xc1, 0xe9, 0x9d, 0x36, 0x35, 0xd7, 0x8c, 0x2d, 0xa1, 0xb5, 0x09, 0xfa, 0xc3, 0x33, 0x46, 0xc0, 0x69, 0x16, 0x3a, 0x6c, 0x46, 0xc7, 0x82, 0x6a, 0x48, 0xbb, 0xbd, 0x03, 0xb0, 0x5e, 0x6e, 0x23, 0x51, 0xfa, 0x62, 0xbf, 0x89, 0xbf, 0x7c, 0xcf, 0x9a, 0x90, 0x24, 0xbd, 0x15, 0x7d, 0x07, };
3727 static const ec_test_case ed25519_162_test_case = {
3728 	.name = "EDDSA25519-SHA512/wei25519 162",
3729 	.ec_str_p = &wei25519_str_params,
3730 	.priv_key = ed25519_162_test_vectors_priv_key,
3731 	.priv_key_len = sizeof(ed25519_162_test_vectors_priv_key),
3732 	.nn_random = NULL,
3733 	.hash_type = SHA512,
3734 	.msg = (const char *)ed25519_162_test_vectors_message,
3735 	.msglen = sizeof(ed25519_162_test_vectors_message),
3736 	.sig_type = EDDSA25519,
3737 	.exp_sig = ed25519_162_test_vectors_expected_sig,
3738 	.exp_siglen = sizeof(ed25519_162_test_vectors_expected_sig),
3739 	.adata = NULL,
3740 	.adata_len = 0
3741 };
3742 
3743 /************************************************/
3744 static const u8 ed25519_163_test_vectors_priv_key[] = {
3745 	0x42, 0xaa, 0xfd, 0x0a, 0xe2, 0x6d, 0xf1, 0xe7, 0xaa, 0x02, 0x76, 0x86, 0x0d, 0x75, 0x27, 0x83, 0xaf, 0x97, 0x28, 0x04, 0x39, 0xbb, 0x23, 0xea, 0xe4, 0x6e, 0x3f, 0x84, 0xca, 0xac, 0x78, 0xde, };
3746 static const u8 ed25519_163_test_vectors_message[] = {
3747 	0x72, 0x13, 0x1b, 0x80, 0xad, 0x59, 0x9b, 0x6f, 0x5f, 0xf6, 0x98, 0x54, 0x7d, 0x16, 0xe7, 0x49, 0x9d, 0x71, 0x27, 0x5e, 0x4e, 0x9b, 0x30, 0x52, 0x6a, 0x5a, 0xac, 0x0b, 0x0c, 0x8b, 0x14, 0xfa, 0x4a, 0x54, 0x0c, 0xfb, 0x11, 0x45, 0xfc, 0x00, 0x44, 0x18, 0xbc, 0xd3, 0x18, 0xc1, 0xa7, 0x0e, 0x62, 0x69, 0xa3, 0xfb, 0x69, 0xba, 0xed, 0x86, 0xf3, 0x63, 0xf5, 0xb8, 0xf9, 0x7f, 0x56, 0x9c, 0x20, 0xd4, 0xf4, 0x99, 0x0e, 0x7b, 0xb4, 0xd0, 0xc3, 0x99, 0x21, 0x26, 0x8d, 0x63, 0x6e, 0xd0, 0x55, 0x4b, 0xd6, 0x2a, 0xcf, 0xca, 0xcd, 0x3b, 0x8e, 0x03, 0x02, 0x17, 0xaa, 0xfa, 0xc3, 0x04, 0x4c, 0x03, 0x7e, 0x0f, 0x94, 0xda, 0x18, 0xc6, 0xb9, 0xa0, 0x93, 0x2c, 0x3c, 0x58, 0x75, 0xd3, 0xa9, 0x3f, 0xbd, 0xad, 0xcf, 0x67, 0x96, 0x4e, 0xec, 0x9e, 0xc2, 0xbe, 0x69, 0xb4, 0x8f, 0x02, 0x0f, 0x6c, 0x98, 0x74, 0xde, 0x5f, 0x8a, 0x51, 0x67, 0xb5, 0xee, 0x02, 0x4a, 0x2c, 0x2e, 0xfd, 0x0c, 0xdc, 0xd2, 0xac, 0xd8, 0xc1, 0xf7, 0x87, 0x81, 0x41, 0x41, 0xe3, 0x0b, 0x38, 0xb1, 0x63, 0x17, 0x5b, };
3748 static const u8 ed25519_163_test_vectors_expected_sig[] = {
3749 	0x11, 0x61, 0x43, 0x65, 0x0b, 0x6c, 0x13, 0x3d, 0x61, 0x78, 0x59, 0xdb, 0x24, 0x29, 0xc2, 0x91, 0x35, 0x79, 0x79, 0x0b, 0x21, 0x97, 0xd7, 0xb7, 0xb1, 0xb4, 0x96, 0x2b, 0x32, 0x87, 0x21, 0x03, 0x2c, 0xee, 0xca, 0x58, 0xb2, 0xd5, 0x64, 0x39, 0xe2, 0x33, 0xbb, 0x84, 0xdc, 0x52, 0x5e, 0x28, 0x4f, 0xf8, 0xdf, 0x2b, 0xde, 0x1d, 0xb4, 0x98, 0x6f, 0xaf, 0xd2, 0x1b, 0x3d, 0x7d, 0x6a, 0x0a, };
3750 static const ec_test_case ed25519_163_test_case = {
3751 	.name = "EDDSA25519-SHA512/wei25519 163",
3752 	.ec_str_p = &wei25519_str_params,
3753 	.priv_key = ed25519_163_test_vectors_priv_key,
3754 	.priv_key_len = sizeof(ed25519_163_test_vectors_priv_key),
3755 	.nn_random = NULL,
3756 	.hash_type = SHA512,
3757 	.msg = (const char *)ed25519_163_test_vectors_message,
3758 	.msglen = sizeof(ed25519_163_test_vectors_message),
3759 	.sig_type = EDDSA25519,
3760 	.exp_sig = ed25519_163_test_vectors_expected_sig,
3761 	.exp_siglen = sizeof(ed25519_163_test_vectors_expected_sig),
3762 	.adata = NULL,
3763 	.adata_len = 0
3764 };
3765 
3766 /************************************************/
3767 static const u8 ed25519_164_test_vectors_priv_key[] = {
3768 	0xb6, 0x9c, 0x33, 0xb1, 0x1b, 0xa6, 0x78, 0x41, 0xc3, 0xd4, 0xe6, 0xf9, 0x23, 0x4e, 0x35, 0x37, 0x0a, 0x28, 0xb4, 0x76, 0x62, 0xac, 0x56, 0x0b, 0x27, 0xc0, 0x78, 0xb6, 0x6a, 0xb1, 0xb0, 0x21, };
3769 static const u8 ed25519_164_test_vectors_message[] = {
3770 	0xf9, 0xea, 0x12, 0x6d, 0x3a, 0xb2, 0x19, 0x61, 0xaa, 0x24, 0x33, 0x90, 0x0a, 0x39, 0x82, 0xb8, 0x3e, 0x0e, 0xf8, 0x6d, 0x52, 0xd1, 0x34, 0x40, 0xaf, 0xa4, 0x81, 0x7f, 0x9b, 0x82, 0x2f, 0xb5, 0x82, 0xcc, 0x39, 0x32, 0xbf, 0x45, 0x0d, 0x46, 0x77, 0xc9, 0x18, 0x81, 0x81, 0xfe, 0x75, 0x26, 0xad, 0x6f, 0xe5, 0xab, 0xc6, 0x1d, 0x0a, 0xe7, 0x59, 0xf2, 0x15, 0x01, 0x3c, 0x0b, 0x2b, 0x41, 0x06, 0x4c, 0xb6, 0x27, 0x8b, 0xa7, 0xe3, 0x9e, 0x2f, 0x4c, 0x10, 0xd6, 0xcc, 0x96, 0x05, 0xb3, 0x86, 0x9e, 0x16, 0x9d, 0x7d, 0xa4, 0x2e, 0x88, 0xeb, 0x85, 0x78, 0x70, 0xfe, 0x61, 0x18, 0xbb, 0x02, 0xbc, 0x08, 0xc8, 0x05, 0x5f, 0x0c, 0x18, 0x9b, 0x62, 0xf7, 0x9f, 0xb1, 0x46, 0xb4, 0xc5, 0x43, 0xaa, 0x30, 0xcc, 0x0c, 0xd5, 0x7f, 0x03, 0x7e, 0x9e, 0xf7, 0xa6, 0x37, 0x11, 0xf6, 0x6e, 0x6f, 0x28, 0x78, 0x93, 0x17, 0x02, 0x20, 0x27, 0x02, 0x61, 0x42, 0x77, 0xd5, 0x13, 0xf0, 0x85, 0x0b, 0x75, 0x85, 0x49, 0x33, 0x6b, 0x30, 0xcf, 0x40, 0xab, 0x8b, 0xd4, 0x60, 0xe6, 0x0e, 0x12, 0xde, 0xed, 0x04, };
3771 static const u8 ed25519_164_test_vectors_expected_sig[] = {
3772 	0x24, 0x36, 0x8f, 0xee, 0x5b, 0xd8, 0x48, 0xb4, 0xc6, 0x61, 0xa3, 0xbe, 0x4f, 0x31, 0x0c, 0xfc, 0x43, 0x6e, 0x79, 0xec, 0x4a, 0x78, 0x50, 0x1b, 0x81, 0x09, 0x5f, 0xe5, 0x16, 0x14, 0x23, 0x1b, 0x6c, 0xa1, 0xab, 0x12, 0x69, 0x99, 0x6a, 0xd2, 0xe9, 0x8e, 0x29, 0x97, 0x81, 0xaf, 0x8e, 0x29, 0x80, 0x4b, 0x24, 0xfe, 0x56, 0x79, 0xca, 0x3b, 0xa6, 0x50, 0xc5, 0xc4, 0xcc, 0x58, 0xce, 0x01, };
3773 static const ec_test_case ed25519_164_test_case = {
3774 	.name = "EDDSA25519-SHA512/wei25519 164",
3775 	.ec_str_p = &wei25519_str_params,
3776 	.priv_key = ed25519_164_test_vectors_priv_key,
3777 	.priv_key_len = sizeof(ed25519_164_test_vectors_priv_key),
3778 	.nn_random = NULL,
3779 	.hash_type = SHA512,
3780 	.msg = (const char *)ed25519_164_test_vectors_message,
3781 	.msglen = sizeof(ed25519_164_test_vectors_message),
3782 	.sig_type = EDDSA25519,
3783 	.exp_sig = ed25519_164_test_vectors_expected_sig,
3784 	.exp_siglen = sizeof(ed25519_164_test_vectors_expected_sig),
3785 	.adata = NULL,
3786 	.adata_len = 0
3787 };
3788 
3789 /************************************************/
3790 static const u8 ed25519_165_test_vectors_priv_key[] = {
3791 	0x7b, 0x63, 0x61, 0x3f, 0x6d, 0xae, 0x01, 0xcd, 0xcd, 0x5e, 0x6b, 0x37, 0x68, 0x69, 0x71, 0xcd, 0x8d, 0x8a, 0x99, 0x54, 0x2f, 0x63, 0x29, 0xa1, 0x28, 0x54, 0xa9, 0xd8, 0xff, 0x81, 0x05, 0xac, };
3792 static const u8 ed25519_165_test_vectors_message[] = {
3793 	0x18, 0x16, 0x48, 0x8f, 0x1f, 0xc8, 0x3e, 0x1e, 0xd5, 0x91, 0x16, 0x37, 0xdd, 0x42, 0xba, 0x20, 0x77, 0x65, 0x7d, 0xfe, 0x1a, 0xe4, 0x22, 0xad, 0x0a, 0xee, 0x59, 0xdf, 0x9d, 0xd5, 0x6a, 0x27, 0x63, 0xc2, 0xdd, 0x0e, 0xf6, 0x1a, 0x12, 0xbb, 0x82, 0x5b, 0x0d, 0xac, 0x1e, 0xda, 0x5f, 0xbb, 0x69, 0x1c, 0x5e, 0xd5, 0x8f, 0x3f, 0xb3, 0x25, 0x05, 0x0b, 0x45, 0x63, 0xa4, 0x04, 0x20, 0x99, 0x98, 0x2f, 0xff, 0xa5, 0xd6, 0xed, 0x74, 0x2d, 0x95, 0x82, 0x3d, 0xa8, 0xe1, 0x78, 0x7c, 0xf7, 0x46, 0xef, 0x63, 0xb3, 0xfb, 0xb0, 0xe8, 0x8a, 0x6c, 0x0b, 0xea, 0xe4, 0xf7, 0x31, 0x83, 0x66, 0x93, 0x6b, 0x49, 0x17, 0xf5, 0x07, 0x33, 0x60, 0x68, 0xb1, 0x94, 0x68, 0x09, 0x00, 0xa7, 0xbf, 0x4a, 0x6f, 0xb6, 0x9a, 0x5c, 0x38, 0x7b, 0x97, 0xe3, 0x1b, 0xc7, 0xf9, 0xbe, 0x53, 0xc2, 0xa8, 0x9e, 0x36, 0x51, 0xce, 0x1d, 0xe4, 0x1b, 0x10, 0xe9, 0x21, 0xb2, 0x06, 0xeb, 0xf3, 0x2e, 0x56, 0x21, 0xef, 0x80, 0x81, 0x61, 0x6d, 0xcd, 0x7a, 0x20, 0x59, 0x43, 0x7e, 0xfa, 0xd0, 0x14, 0xbb, 0x8e, 0x2c, 0x82, 0x21, };
3794 static const u8 ed25519_165_test_vectors_expected_sig[] = {
3795 	0x76, 0xf5, 0x0b, 0x2b, 0x9c, 0x2a, 0xd9, 0x7b, 0xfb, 0x94, 0x99, 0xee, 0x41, 0x92, 0x8a, 0xc0, 0x72, 0xda, 0x5e, 0x8b, 0xc7, 0x1d, 0x02, 0x12, 0x55, 0x09, 0x42, 0x33, 0x2b, 0x62, 0xe7, 0x0c, 0x8b, 0xfe, 0x1c, 0x72, 0x25, 0x42, 0x39, 0x46, 0x88, 0xde, 0xcd, 0x91, 0x7a, 0xec, 0x8f, 0x95, 0x35, 0x3e, 0x1d, 0x72, 0x62, 0x4b, 0x70, 0xeb, 0xed, 0x5d, 0x17, 0xf6, 0xc5, 0x49, 0x77, 0x02, };
3796 static const ec_test_case ed25519_165_test_case = {
3797 	.name = "EDDSA25519-SHA512/wei25519 165",
3798 	.ec_str_p = &wei25519_str_params,
3799 	.priv_key = ed25519_165_test_vectors_priv_key,
3800 	.priv_key_len = sizeof(ed25519_165_test_vectors_priv_key),
3801 	.nn_random = NULL,
3802 	.hash_type = SHA512,
3803 	.msg = (const char *)ed25519_165_test_vectors_message,
3804 	.msglen = sizeof(ed25519_165_test_vectors_message),
3805 	.sig_type = EDDSA25519,
3806 	.exp_sig = ed25519_165_test_vectors_expected_sig,
3807 	.exp_siglen = sizeof(ed25519_165_test_vectors_expected_sig),
3808 	.adata = NULL,
3809 	.adata_len = 0
3810 };
3811 
3812 /************************************************/
3813 static const u8 ed25519_166_test_vectors_priv_key[] = {
3814 	0x35, 0x58, 0xd3, 0xa7, 0x43, 0x95, 0xbd, 0xcb, 0xa5, 0x60, 0xe2, 0xc4, 0x5a, 0x91, 0x96, 0x0c, 0xec, 0x6c, 0xb3, 0xed, 0xbc, 0xd3, 0x0e, 0x72, 0x2f, 0x7f, 0x05, 0x52, 0x10, 0xf3, 0x7b, 0x51, };
3815 static const u8 ed25519_166_test_vectors_message[] = {
3816 	0xbe, 0x75, 0x44, 0x4f, 0x9c, 0xe6, 0xbe, 0x1d, 0x83, 0xaf, 0x62, 0x2a, 0x8c, 0x47, 0x8d, 0x51, 0x01, 0x27, 0xdb, 0x56, 0xf1, 0xde, 0x6e, 0xb8, 0xa5, 0x12, 0x65, 0x22, 0xb0, 0x9f, 0xdc, 0x6c, 0xa0, 0x86, 0x2c, 0xec, 0x0b, 0x8b, 0x2a, 0xaf, 0xa3, 0x1c, 0x17, 0xa2, 0xcc, 0x47, 0x7d, 0xa5, 0x33, 0xd2, 0x76, 0xa1, 0xae, 0x4f, 0x8e, 0x07, 0x59, 0xd6, 0xaf, 0xa0, 0xb1, 0x74, 0x11, 0xb5, 0x17, 0x0b, 0x52, 0xf2, 0x05, 0x47, 0xc7, 0x2f, 0x3e, 0x88, 0xd4, 0x8c, 0xb4, 0x56, 0xfe, 0x62, 0x5b, 0x62, 0xfe, 0xb0, 0xf8, 0x13, 0x17, 0xed, 0xf1, 0xec, 0x09, 0xec, 0xe5, 0x34, 0xb9, 0xf5, 0x00, 0xd4, 0xe1, 0xb1, 0xbd, 0xa2, 0xdb, 0x21, 0x98, 0x2a, 0xa9, 0x50, 0x94, 0x22, 0x6e, 0xe9, 0xf5, 0xb0, 0xa6, 0x5d, 0xa8, 0x3f, 0x91, 0x12, 0x1c, 0x96, 0xb3, 0xb4, 0x01, 0x0a, 0xe7, 0x82, 0x6c, 0x9e, 0x80, 0x63, 0x6c, 0xba, 0x00, 0xf7, 0x0c, 0x3c, 0x8a, 0x27, 0x9b, 0x01, 0xb9, 0x52, 0x94, 0xcb, 0x85, 0x0f, 0x91, 0x70, 0x9f, 0x43, 0x76, 0x66, 0x2a, 0x58, 0x0b, 0x15, 0xac, 0x29, 0x81, 0xaf, 0xe9, 0xf8, 0x54, };
3817 static const u8 ed25519_166_test_vectors_expected_sig[] = {
3818 	0xb3, 0x65, 0xb5, 0x56, 0x1a, 0x13, 0xa5, 0x45, 0x17, 0xcf, 0x90, 0xd8, 0x8b, 0x35, 0xeb, 0x09, 0x67, 0xd6, 0xd5, 0x84, 0x14, 0xb8, 0xc1, 0x54, 0x7e, 0x69, 0x31, 0x59, 0xe0, 0x13, 0x78, 0x56, 0x36, 0x54, 0xc5, 0x0f, 0xb4, 0x23, 0x23, 0xf0, 0x9d, 0xd7, 0x8f, 0xfe, 0x28, 0x05, 0x6d, 0xdf, 0xa5, 0x4f, 0xeb, 0xf4, 0x48, 0x91, 0xe8, 0xa7, 0x41, 0xb6, 0xa1, 0x68, 0x7d, 0x72, 0x86, 0x05, };
3819 static const ec_test_case ed25519_166_test_case = {
3820 	.name = "EDDSA25519-SHA512/wei25519 166",
3821 	.ec_str_p = &wei25519_str_params,
3822 	.priv_key = ed25519_166_test_vectors_priv_key,
3823 	.priv_key_len = sizeof(ed25519_166_test_vectors_priv_key),
3824 	.nn_random = NULL,
3825 	.hash_type = SHA512,
3826 	.msg = (const char *)ed25519_166_test_vectors_message,
3827 	.msglen = sizeof(ed25519_166_test_vectors_message),
3828 	.sig_type = EDDSA25519,
3829 	.exp_sig = ed25519_166_test_vectors_expected_sig,
3830 	.exp_siglen = sizeof(ed25519_166_test_vectors_expected_sig),
3831 	.adata = NULL,
3832 	.adata_len = 0
3833 };
3834 
3835 /************************************************/
3836 static const u8 ed25519_167_test_vectors_priv_key[] = {
3837 	0xa3, 0x5b, 0x92, 0xf2, 0x44, 0x06, 0x3a, 0x19, 0xbb, 0x5e, 0x3e, 0xd4, 0xd6, 0x99, 0xed, 0x20, 0x69, 0x60, 0x71, 0x16, 0xd2, 0xbd, 0x08, 0x11, 0x3f, 0x0d, 0x83, 0x73, 0x61, 0x3f, 0x35, 0xb7, };
3838 static const u8 ed25519_167_test_vectors_message[] = {
3839 	0x65, 0xcd, 0x36, 0xda, 0xe0, 0x16, 0x8d, 0x69, 0x97, 0x4f, 0x95, 0xf0, 0x9d, 0xd9, 0xa5, 0x9d, 0xb7, 0x99, 0xf9, 0x11, 0xe1, 0xa1, 0x5b, 0x85, 0xa0, 0x08, 0x93, 0xb8, 0xc9, 0xa3, 0xd4, 0x8a, 0x2f, 0x58, 0xac, 0x12, 0x6b, 0xfa, 0xa0, 0xa6, 0x06, 0xc0, 0x5d, 0x94, 0x70, 0x1d, 0x27, 0x3a, 0xbf, 0x7d, 0x68, 0x81, 0x7f, 0x2c, 0x71, 0xb1, 0xc5, 0x41, 0x79, 0x5c, 0x4f, 0x60, 0x95, 0xe2, 0x6c, 0x9d, 0xff, 0x80, 0x3f, 0x03, 0x2f, 0x75, 0x66, 0x3f, 0xd1, 0x69, 0x8e, 0xdd, 0x97, 0xff, 0x3a, 0x0e, 0x72, 0xe1, 0xb7, 0xc9, 0x94, 0x8b, 0x08, 0xba, 0xcb, 0x5f, 0x7d, 0xe5, 0x02, 0xb2, 0xfe, 0xa6, 0x7c, 0xa2, 0xfe, 0xf1, 0x90, 0xd6, 0x0e, 0xae, 0x92, 0xd1, 0x51, 0x58, 0xda, 0x44, 0x4a, 0x49, 0xd2, 0xe9, 0xd5, 0xa5, 0x73, 0xe8, 0xe1, 0x77, 0xe8, 0xbb, 0xf7, 0xe6, 0xc4, 0x9f, 0x90, 0x71, 0x36, 0xe7, 0x1d, 0x2a, 0x66, 0xcb, 0x07, 0x63, 0x6d, 0x48, 0x76, 0x8f, 0xf4, 0x17, 0xc8, 0xbe, 0xcc, 0xf4, 0x32, 0x31, 0x81, 0xfe, 0xfb, 0x31, 0x24, 0xe4, 0x34, 0x04, 0x9e, 0xa4, 0x5d, 0xd5, 0x01, 0x9e, 0x40, 0xb4, };
3840 static const u8 ed25519_167_test_vectors_expected_sig[] = {
3841 	0xa2, 0x3d, 0xbe, 0x37, 0x57, 0xe4, 0x78, 0xdb, 0xc8, 0x4d, 0x3d, 0xb3, 0xa9, 0x33, 0xb0, 0x42, 0x8c, 0xed, 0xb6, 0xb0, 0x1b, 0x86, 0xd8, 0xd7, 0x3f, 0x39, 0x59, 0x87, 0x8d, 0xae, 0x6f, 0x05, 0x88, 0xf5, 0x05, 0xcd, 0x4d, 0x39, 0xf2, 0xab, 0x46, 0x77, 0xb6, 0x48, 0x05, 0xd6, 0x29, 0x65, 0x2a, 0x22, 0x52, 0x98, 0x25, 0xc3, 0xa9, 0x1d, 0x04, 0x37, 0x49, 0xfc, 0x71, 0xf0, 0x37, 0x06, };
3842 static const ec_test_case ed25519_167_test_case = {
3843 	.name = "EDDSA25519-SHA512/wei25519 167",
3844 	.ec_str_p = &wei25519_str_params,
3845 	.priv_key = ed25519_167_test_vectors_priv_key,
3846 	.priv_key_len = sizeof(ed25519_167_test_vectors_priv_key),
3847 	.nn_random = NULL,
3848 	.hash_type = SHA512,
3849 	.msg = (const char *)ed25519_167_test_vectors_message,
3850 	.msglen = sizeof(ed25519_167_test_vectors_message),
3851 	.sig_type = EDDSA25519,
3852 	.exp_sig = ed25519_167_test_vectors_expected_sig,
3853 	.exp_siglen = sizeof(ed25519_167_test_vectors_expected_sig),
3854 	.adata = NULL,
3855 	.adata_len = 0
3856 };
3857 
3858 /************************************************/
3859 static const u8 ed25519_168_test_vectors_priv_key[] = {
3860 	0x72, 0xd4, 0xa5, 0x64, 0xca, 0x15, 0x49, 0x9b, 0x5e, 0x4e, 0x75, 0xd8, 0xac, 0x0f, 0x28, 0x21, 0x7d, 0x32, 0x11, 0x4a, 0x0c, 0x64, 0x9a, 0x7c, 0x8e, 0xaa, 0xdd, 0x0c, 0xc7, 0x8c, 0x52, 0x0b, };
3861 static const u8 ed25519_168_test_vectors_message[] = {
3862 	0x6c, 0x7e, 0x7b, 0x62, 0xeb, 0x24, 0x4a, 0x45, 0xd7, 0x84, 0x36, 0xe2, 0x97, 0x0d, 0xcd, 0x6c, 0x0f, 0x7d, 0xb8, 0x22, 0x97, 0xa8, 0x61, 0x40, 0xea, 0x58, 0xdd, 0x22, 0xc2, 0x19, 0x5a, 0xdb, 0xc9, 0x56, 0xd4, 0xc4, 0xec, 0x05, 0x35, 0x4b, 0x21, 0xef, 0xe2, 0x4c, 0xfc, 0xfe, 0x10, 0xe1, 0x76, 0x22, 0x36, 0x88, 0x48, 0x18, 0x0d, 0x2c, 0x46, 0x80, 0xcc, 0x21, 0x5e, 0x8c, 0xee, 0xa6, 0xcc, 0xe2, 0x22, 0x16, 0x1f, 0x1e, 0x09, 0x22, 0x39, 0x25, 0x3b, 0x97, 0x46, 0xf7, 0x88, 0x7d, 0xf2, 0x42, 0x5a, 0xb5, 0xa8, 0x80, 0xbd, 0xba, 0x98, 0x15, 0x3b, 0xe7, 0x86, 0xdc, 0x83, 0x8c, 0xbe, 0xca, 0x01, 0x6b, 0x1d, 0x06, 0x52, 0x4b, 0xd6, 0xbf, 0xba, 0x80, 0x9a, 0x8b, 0xb3, 0x7a, 0xda, 0xb1, 0x5d, 0x42, 0x41, 0x5f, 0x86, 0xec, 0x03, 0x58, 0x36, 0x5e, 0xa8, 0x7b, 0x81, 0x50, 0xb0, 0x54, 0x41, 0xd9, 0xd4, 0x98, 0x46, 0x87, 0x14, 0x85, 0xca, 0xae, 0x6d, 0xe3, 0x59, 0x73, 0x6c, 0x27, 0x18, 0x97, 0x36, 0xd8, 0xf1, 0x76, 0x5f, 0x3e, 0x5c, 0x5f, 0x6b, 0x92, 0x16, 0x83, 0x96, 0x39, 0x0b, 0xee, 0x94, 0xcf, 0xbd, };
3863 static const u8 ed25519_168_test_vectors_expected_sig[] = {
3864 	0x8f, 0xc4, 0xf1, 0x79, 0x33, 0x0b, 0x64, 0x2d, 0xd8, 0x6c, 0xa9, 0x36, 0x26, 0x51, 0xb8, 0x3b, 0x00, 0x6d, 0x83, 0x75, 0xcc, 0xef, 0x81, 0x1d, 0x3c, 0x67, 0x06, 0xf9, 0x15, 0x94, 0x65, 0x1d, 0xf2, 0x76, 0x99, 0x53, 0x72, 0x30, 0x46, 0xcc, 0xb9, 0xbf, 0xe6, 0x6a, 0x66, 0x7e, 0x0d, 0x11, 0xfc, 0x3e, 0xa2, 0xd8, 0x22, 0x62, 0x34, 0xfd, 0xd5, 0x16, 0x47, 0x65, 0x26, 0x0f, 0x7b, 0x05, };
3865 static const ec_test_case ed25519_168_test_case = {
3866 	.name = "EDDSA25519-SHA512/wei25519 168",
3867 	.ec_str_p = &wei25519_str_params,
3868 	.priv_key = ed25519_168_test_vectors_priv_key,
3869 	.priv_key_len = sizeof(ed25519_168_test_vectors_priv_key),
3870 	.nn_random = NULL,
3871 	.hash_type = SHA512,
3872 	.msg = (const char *)ed25519_168_test_vectors_message,
3873 	.msglen = sizeof(ed25519_168_test_vectors_message),
3874 	.sig_type = EDDSA25519,
3875 	.exp_sig = ed25519_168_test_vectors_expected_sig,
3876 	.exp_siglen = sizeof(ed25519_168_test_vectors_expected_sig),
3877 	.adata = NULL,
3878 	.adata_len = 0
3879 };
3880 
3881 /************************************************/
3882 static const u8 ed25519_169_test_vectors_priv_key[] = {
3883 	0x2e, 0x5a, 0xaa, 0xb2, 0x98, 0xe6, 0x6c, 0x2d, 0xc1, 0xd7, 0x7e, 0xa7, 0x42, 0x1f, 0xf8, 0x95, 0x25, 0x5f, 0x9d, 0x90, 0x0d, 0xb0, 0x45, 0x0d, 0x63, 0xf9, 0xf7, 0x9c, 0x1a, 0x70, 0x13, 0xcf, };
3884 static const u8 ed25519_169_test_vectors_message[] = {
3885 	0x3d, 0xf0, 0xe5, 0x4c, 0x71, 0x1e, 0x31, 0x32, 0xd7, 0xae, 0x95, 0x3d, 0xeb, 0x7b, 0x66, 0x86, 0x9e, 0xe5, 0x31, 0xee, 0x40, 0xb6, 0x3c, 0xe6, 0x93, 0x20, 0x6c, 0xdb, 0x2f, 0x4b, 0xda, 0x0a, 0x25, 0x69, 0xe9, 0x13, 0xac, 0x3e, 0x65, 0x32, 0xc5, 0xd9, 0x64, 0x8e, 0xfd, 0x46, 0x27, 0x78, 0x0f, 0xb8, 0xa3, 0x1d, 0x10, 0x7e, 0x03, 0x3f, 0x05, 0x4d, 0x19, 0xed, 0x8b, 0x7c, 0x49, 0xdc, 0x40, 0x7d, 0x2e, 0x94, 0x9d, 0xe2, 0x5f, 0x99, 0x30, 0x72, 0x21, 0xd3, 0x58, 0x43, 0xf6, 0xd5, 0xeb, 0x7d, 0xe5, 0xcd, 0xf4, 0x1b, 0x91, 0xdb, 0xbf, 0x34, 0xcb, 0x6c, 0x9c, 0x53, 0x00, 0x21, 0x01, 0x4b, 0x56, 0xab, 0xc4, 0x4a, 0xc2, 0x30, 0x03, 0x13, 0x61, 0x56, 0x08, 0xa7, 0xb4, 0xa2, 0x35, 0xe9, 0x9c, 0x14, 0xce, 0xf8, 0x05, 0x08, 0x87, 0x03, 0x22, 0x09, 0x48, 0x8b, 0x9e, 0xae, 0xaa, 0x82, 0xc0, 0x94, 0x05, 0xfc, 0x75, 0xbe, 0xc9, 0x4d, 0xd4, 0x2d, 0x6f, 0xf1, 0xb5, 0x99, 0xa6, 0x3e, 0xe5, 0x74, 0x2f, 0x33, 0x64, 0x09, 0x3a, 0xc9, 0x2c, 0xab, 0xab, 0x30, 0x35, 0x82, 0x2a, 0xa8, 0x67, 0xae, 0x56, 0xdc, 0xc9, 0x9d, };
3886 static const u8 ed25519_169_test_vectors_expected_sig[] = {
3887 	0x7c, 0x74, 0x30, 0x30, 0x5b, 0x36, 0x1a, 0x9e, 0x35, 0xb2, 0x78, 0x0c, 0x4d, 0x44, 0x08, 0x07, 0x1b, 0x21, 0x30, 0x93, 0x1d, 0x39, 0x83, 0x0e, 0xc8, 0xd3, 0x13, 0xaa, 0xfb, 0xc8, 0x3a, 0x65, 0xda, 0xe1, 0x9c, 0xb7, 0x47, 0xd9, 0xd1, 0xc4, 0xce, 0x3f, 0x35, 0x9c, 0xc8, 0x24, 0xea, 0x8c, 0x92, 0xf6, 0x6a, 0x42, 0xb8, 0x61, 0x4e, 0x78, 0x48, 0xb8, 0x84, 0xac, 0x8a, 0xa4, 0xae, 0x02, };
3888 static const ec_test_case ed25519_169_test_case = {
3889 	.name = "EDDSA25519-SHA512/wei25519 169",
3890 	.ec_str_p = &wei25519_str_params,
3891 	.priv_key = ed25519_169_test_vectors_priv_key,
3892 	.priv_key_len = sizeof(ed25519_169_test_vectors_priv_key),
3893 	.nn_random = NULL,
3894 	.hash_type = SHA512,
3895 	.msg = (const char *)ed25519_169_test_vectors_message,
3896 	.msglen = sizeof(ed25519_169_test_vectors_message),
3897 	.sig_type = EDDSA25519,
3898 	.exp_sig = ed25519_169_test_vectors_expected_sig,
3899 	.exp_siglen = sizeof(ed25519_169_test_vectors_expected_sig),
3900 	.adata = NULL,
3901 	.adata_len = 0
3902 };
3903 
3904 /************************************************/
3905 static const u8 ed25519_170_test_vectors_priv_key[] = {
3906 	0xb6, 0x36, 0xa0, 0x24, 0x48, 0x00, 0x35, 0x43, 0xdb, 0x86, 0x4b, 0x40, 0xb5, 0xd8, 0xd6, 0xdd, 0x9a, 0xd6, 0x11, 0x62, 0x4c, 0x9b, 0x0f, 0xc6, 0x89, 0x0c, 0x51, 0xea, 0x55, 0x92, 0xc7, 0x90, };
3907 static const u8 ed25519_170_test_vectors_message[] = {
3908 	0x4a, 0xa8, 0x5a, 0xac, 0x25, 0x03, 0x4f, 0x61, 0x4e, 0xd4, 0x4f, 0x7a, 0xdc, 0xdb, 0xee, 0xec, 0x25, 0xfc, 0xc2, 0xa9, 0xee, 0xa3, 0x2a, 0xb6, 0xa8, 0x69, 0x95, 0x06, 0xf7, 0xa1, 0xca, 0xd3, 0xbc, 0x89, 0x2e, 0x9d, 0xce, 0x93, 0x4e, 0x75, 0xb0, 0xa8, 0xcd, 0x14, 0x64, 0x2b, 0x77, 0x85, 0x99, 0x28, 0x6c, 0xfd, 0x8f, 0x50, 0xa9, 0xe4, 0xf2, 0xed, 0xf9, 0xf9, 0xd6, 0x29, 0x1a, 0x2e, 0x29, 0x79, 0xcf, 0x18, 0x06, 0xb9, 0x3e, 0xd8, 0xc9, 0xa7, 0x8f, 0xae, 0x19, 0x9b, 0x28, 0x54, 0xa0, 0x3e, 0xc4, 0x06, 0xab, 0x3f, 0x72, 0x08, 0x35, 0xee, 0x26, 0x3f, 0xbb, 0xc9, 0x1c, 0xb4, 0xef, 0x07, 0x58, 0xd7, 0x75, 0xfc, 0x78, 0x4c, 0x7d, 0x5b, 0x25, 0x1a, 0xc8, 0x93, 0x79, 0x19, 0xa9, 0xe6, 0x7b, 0xe8, 0x8c, 0x9e, 0x44, 0xcf, 0x2e, 0xc7, 0xf5, 0x60, 0x26, 0x9a, 0xa0, 0xf1, 0x11, 0x3d, 0x91, 0xb8, 0x44, 0x01, 0xdb, 0x15, 0xa3, 0xc4, 0x8c, 0x7d, 0xac, 0xff, 0x49, 0x39, 0xee, 0x01, 0xba, 0xbb, 0x98, 0x2f, 0xb9, 0x56, 0x25, 0xc6, 0xc3, 0xad, 0x78, 0x74, 0x90, 0x60, 0x55, 0x1b, 0xfd, 0xe8, 0xcc, 0xe4, 0xfb, 0x8a, 0x29, };
3909 static const u8 ed25519_170_test_vectors_expected_sig[] = {
3910 	0xd4, 0xba, 0x80, 0x30, 0x0d, 0x5c, 0xb5, 0x13, 0x53, 0xc0, 0x3f, 0x28, 0xc4, 0x4f, 0xd0, 0xa4, 0x24, 0xff, 0xe1, 0xe4, 0x0d, 0x78, 0xed, 0x7b, 0xb1, 0x13, 0x3e, 0x8f, 0xe4, 0xe1, 0x87, 0x50, 0x52, 0x93, 0xb2, 0x0a, 0x39, 0x1d, 0xa9, 0x62, 0xc6, 0xa8, 0xac, 0x0a, 0xce, 0xc9, 0xc6, 0x72, 0x26, 0xaf, 0x3b, 0x61, 0x95, 0xda, 0xbe, 0x39, 0xb3, 0x66, 0x22, 0x94, 0xda, 0x3e, 0x0e, 0x09, };
3911 static const ec_test_case ed25519_170_test_case = {
3912 	.name = "EDDSA25519-SHA512/wei25519 170",
3913 	.ec_str_p = &wei25519_str_params,
3914 	.priv_key = ed25519_170_test_vectors_priv_key,
3915 	.priv_key_len = sizeof(ed25519_170_test_vectors_priv_key),
3916 	.nn_random = NULL,
3917 	.hash_type = SHA512,
3918 	.msg = (const char *)ed25519_170_test_vectors_message,
3919 	.msglen = sizeof(ed25519_170_test_vectors_message),
3920 	.sig_type = EDDSA25519,
3921 	.exp_sig = ed25519_170_test_vectors_expected_sig,
3922 	.exp_siglen = sizeof(ed25519_170_test_vectors_expected_sig),
3923 	.adata = NULL,
3924 	.adata_len = 0
3925 };
3926 
3927 /************************************************/
3928 static const u8 ed25519_171_test_vectors_priv_key[] = {
3929 	0x5c, 0xa0, 0x54, 0x3c, 0x71, 0xf5, 0x68, 0xa0, 0x0e, 0xed, 0xf5, 0x0a, 0x95, 0x20, 0xf4, 0xc1, 0x5b, 0x52, 0x6e, 0x3f, 0xb0, 0xda, 0x81, 0x6c, 0x29, 0xea, 0x3d, 0x50, 0xb2, 0xf6, 0x2a, 0x12, };
3930 static const u8 ed25519_171_test_vectors_message[] = {
3931 	0x4e, 0xf8, 0x49, 0x69, 0x78, 0xd2, 0x8c, 0x10, 0xab, 0xd5, 0x4a, 0x26, 0x35, 0x6e, 0xe5, 0x59, 0x21, 0xce, 0xb3, 0x50, 0xdd, 0x4b, 0x74, 0x2c, 0x41, 0x61, 0xfb, 0xeb, 0xa8, 0xa1, 0x60, 0x1f, 0x8a, 0xd0, 0x48, 0x4b, 0x21, 0xa8, 0xcf, 0x5a, 0x29, 0x4f, 0xac, 0x00, 0xec, 0x8a, 0x6f, 0x59, 0xe3, 0x36, 0x2e, 0x47, 0xbf, 0xae, 0x1e, 0x28, 0xa2, 0xe6, 0xd0, 0x17, 0xc5, 0xca, 0xa7, 0x5f, 0xb0, 0xf4, 0x84, 0x82, 0x80, 0x80, 0x37, 0xca, 0x21, 0x47, 0x69, 0x54, 0xd7, 0x78, 0xff, 0x1a, 0x05, 0x86, 0xda, 0x3e, 0xf6, 0x9d, 0x6c, 0xef, 0x6d, 0x2d, 0x8d, 0xf4, 0xae, 0x7a, 0x85, 0x44, 0x2a, 0x1e, 0x46, 0xc9, 0x98, 0xcf, 0x40, 0x7a, 0x6a, 0xd4, 0xc5, 0x46, 0x3a, 0x43, 0xc2, 0x48, 0xf3, 0xb6, 0x93, 0x7f, 0xdb, 0xc8, 0x45, 0xb6, 0x0c, 0x6d, 0x85, 0xe0, 0x56, 0x3c, 0xc1, 0x6b, 0xa9, 0x67, 0x5d, 0x36, 0x4f, 0x52, 0x5f, 0x66, 0x9a, 0xaa, 0xc9, 0x5f, 0x42, 0x8b, 0xb5, 0x82, 0x05, 0x09, 0x9f, 0x9e, 0x4a, 0x6d, 0xbb, 0xd0, 0x15, 0x1f, 0xb6, 0x5b, 0xab, 0xe1, 0x23, 0xe5, 0x39, 0x3a, 0xd6, 0x40, 0x26, 0x93, 0x5c, 0xb4, 0x88, 0xaa, };
3932 static const u8 ed25519_171_test_vectors_expected_sig[] = {
3933 	0x43, 0x68, 0x23, 0xee, 0xff, 0x3e, 0xdc, 0xe5, 0xd8, 0x58, 0x7d, 0x68, 0xe5, 0x47, 0x3e, 0xf3, 0xd8, 0xdc, 0x94, 0x65, 0xb5, 0x58, 0xb6, 0xe8, 0xe7, 0xcd, 0x31, 0x37, 0xec, 0xcc, 0x80, 0xb4, 0xc4, 0xe8, 0x06, 0xed, 0xf1, 0x36, 0x19, 0xd8, 0xe7, 0x17, 0xe6, 0x9f, 0x48, 0xd7, 0x06, 0x1b, 0x68, 0xde, 0x02, 0xc8, 0x20, 0x9b, 0xe1, 0xf7, 0xac, 0x26, 0xba, 0x8e, 0xdf, 0x60, 0x6d, 0x02, };
3934 static const ec_test_case ed25519_171_test_case = {
3935 	.name = "EDDSA25519-SHA512/wei25519 171",
3936 	.ec_str_p = &wei25519_str_params,
3937 	.priv_key = ed25519_171_test_vectors_priv_key,
3938 	.priv_key_len = sizeof(ed25519_171_test_vectors_priv_key),
3939 	.nn_random = NULL,
3940 	.hash_type = SHA512,
3941 	.msg = (const char *)ed25519_171_test_vectors_message,
3942 	.msglen = sizeof(ed25519_171_test_vectors_message),
3943 	.sig_type = EDDSA25519,
3944 	.exp_sig = ed25519_171_test_vectors_expected_sig,
3945 	.exp_siglen = sizeof(ed25519_171_test_vectors_expected_sig),
3946 	.adata = NULL,
3947 	.adata_len = 0
3948 };
3949 
3950 /************************************************/
3951 static const u8 ed25519_172_test_vectors_priv_key[] = {
3952 	0x5f, 0x87, 0x11, 0x7d, 0xa9, 0xbb, 0xb6, 0x09, 0x1c, 0x94, 0xda, 0x6b, 0x23, 0x0b, 0x7d, 0x8f, 0x6d, 0xe0, 0xed, 0x2a, 0x07, 0x64, 0x13, 0xb9, 0x2e, 0xac, 0xdc, 0x43, 0xab, 0xbc, 0x68, 0x97, };
3953 static const u8 ed25519_172_test_vectors_message[] = {
3954 	0x22, 0x97, 0xc4, 0x0a, 0x2e, 0x83, 0x65, 0xba, 0xe4, 0xc5, 0xf0, 0x63, 0x0c, 0x50, 0xb1, 0x3b, 0xdd, 0x9a, 0xd9, 0x77, 0x0a, 0x5d, 0x9a, 0x94, 0x51, 0xd0, 0x08, 0x74, 0xb0, 0x23, 0xd2, 0x5e, 0xcd, 0x46, 0x8b, 0x96, 0x57, 0x1b, 0x2f, 0x16, 0xdc, 0xb1, 0xb0, 0xd3, 0xd7, 0x56, 0xc1, 0xf0, 0x44, 0xfc, 0xdd, 0xd1, 0xc5, 0x1f, 0x27, 0x72, 0x7a, 0x03, 0x69, 0xc9, 0xcf, 0x25, 0xbd, 0x6a, 0xa5, 0x95, 0x51, 0xb5, 0xb0, 0x7c, 0xf8, 0xf8, 0x07, 0xd9, 0x2b, 0x15, 0x91, 0x98, 0x63, 0x97, 0x04, 0x74, 0x0f, 0xe6, 0xed, 0xa0, 0xf2, 0x6d, 0xba, 0x7e, 0x75, 0xd4, 0x53, 0x0b, 0x28, 0x00, 0xf0, 0x3f, 0xb6, 0xaa, 0x67, 0x7d, 0x84, 0xdf, 0x75, 0xd6, 0x8d, 0x4f, 0xbb, 0x64, 0xad, 0x21, 0x00, 0x1e, 0x3f, 0xc8, 0x7b, 0x60, 0x9b, 0x9c, 0x25, 0x1e, 0x8c, 0xcb, 0x12, 0xbb, 0xca, 0x92, 0x74, 0x47, 0xe2, 0x05, 0x4e, 0x07, 0x68, 0x8e, 0xb8, 0xa2, 0x05, 0x21, 0xa5, 0x22, 0x49, 0xe7, 0xb9, 0x43, 0xbe, 0xd6, 0x0e, 0x6a, 0x93, 0xc0, 0x1e, 0x3e, 0xb6, 0x21, 0xf0, 0x46, 0x0c, 0x18, 0xa6, 0x90, 0xb6, 0xf6, 0xb6, 0x6e, 0xdc, 0x6e, 0x87, 0x43, 0xa6, };
3955 static const u8 ed25519_172_test_vectors_expected_sig[] = {
3956 	0x0f, 0x19, 0xe6, 0xea, 0x0c, 0x05, 0xf3, 0x81, 0x85, 0xc0, 0x1c, 0x2d, 0x64, 0x77, 0x99, 0x5d, 0xaf, 0x50, 0x65, 0xba, 0x9d, 0x80, 0x17, 0x3f, 0xa6, 0xbb, 0x23, 0xa7, 0x74, 0xdc, 0x88, 0xb3, 0xaa, 0xe8, 0x79, 0xd8, 0xa6, 0x24, 0x71, 0xd2, 0xd3, 0x04, 0xcc, 0x3d, 0xc6, 0x62, 0x78, 0xa7, 0xab, 0xcb, 0x0b, 0xb0, 0x77, 0x1c, 0xd2, 0x78, 0xe1, 0x1e, 0x7b, 0x93, 0x2e, 0x9f, 0x9b, 0x0f, };
3957 static const ec_test_case ed25519_172_test_case = {
3958 	.name = "EDDSA25519-SHA512/wei25519 172",
3959 	.ec_str_p = &wei25519_str_params,
3960 	.priv_key = ed25519_172_test_vectors_priv_key,
3961 	.priv_key_len = sizeof(ed25519_172_test_vectors_priv_key),
3962 	.nn_random = NULL,
3963 	.hash_type = SHA512,
3964 	.msg = (const char *)ed25519_172_test_vectors_message,
3965 	.msglen = sizeof(ed25519_172_test_vectors_message),
3966 	.sig_type = EDDSA25519,
3967 	.exp_sig = ed25519_172_test_vectors_expected_sig,
3968 	.exp_siglen = sizeof(ed25519_172_test_vectors_expected_sig),
3969 	.adata = NULL,
3970 	.adata_len = 0
3971 };
3972 
3973 /************************************************/
3974 static const u8 ed25519_173_test_vectors_priv_key[] = {
3975 	0xb5, 0x3a, 0x64, 0x4c, 0x92, 0xba, 0x2d, 0xc7, 0x10, 0x8b, 0x16, 0x83, 0x3f, 0x09, 0xad, 0x59, 0x17, 0x84, 0x64, 0x37, 0x22, 0x5a, 0x77, 0x3d, 0x32, 0xd7, 0x9c, 0x97, 0x73, 0x3c, 0x0a, 0x58, };
3976 static const u8 ed25519_173_test_vectors_message[] = {
3977 	0x13, 0x03, 0x6d, 0xaa, 0xee, 0x45, 0xfc, 0xfd, 0xe0, 0xc5, 0x3e, 0x06, 0xd0, 0x5a, 0xa9, 0xc0, 0x1e, 0xa9, 0x4a, 0x67, 0xe8, 0x6c, 0x6c, 0x53, 0x8c, 0xcb, 0x28, 0x3b, 0x36, 0x8d, 0xaf, 0x70, 0x78, 0xd3, 0xfb, 0xab, 0x58, 0x0c, 0x76, 0xec, 0xf8, 0x2b, 0x4e, 0x96, 0x60, 0xf0, 0x68, 0xdc, 0xbb, 0x50, 0x0b, 0x80, 0x59, 0x50, 0x17, 0xc5, 0xbe, 0x3c, 0x44, 0x8f, 0xbd, 0x8a, 0x17, 0xd9, 0x7c, 0x56, 0x43, 0x19, 0x78, 0x90, 0xe1, 0x67, 0xb3, 0x53, 0x45, 0xbf, 0x65, 0xe7, 0x5b, 0x82, 0xc8, 0xd6, 0x52, 0x29, 0xf2, 0xf6, 0x0a, 0xae, 0x27, 0x72, 0x58, 0x1b, 0xc9, 0x9c, 0x49, 0xd4, 0x16, 0xbc, 0x3d, 0x78, 0x74, 0x6e, 0xf8, 0x30, 0xf1, 0xaf, 0x94, 0x4f, 0x4a, 0x67, 0x15, 0xab, 0x4f, 0xfb, 0x01, 0x59, 0x1b, 0xac, 0x28, 0x57, 0xf1, 0xa9, 0xc9, 0xd1, 0x70, 0x08, 0x88, 0x78, 0x00, 0x06, 0xa3, 0x16, 0x07, 0x33, 0x8f, 0x7a, 0xf7, 0xbe, 0xdf, 0x6e, 0xfe, 0x0b, 0x57, 0x29, 0x9a, 0xc9, 0x15, 0x52, 0x6f, 0xe5, 0xe1, 0xe1, 0x01, 0x29, 0x87, 0x08, 0xc6, 0xe6, 0x1b, 0x84, 0x22, 0x0a, 0xfe, 0x95, 0xb5, 0x3f, 0x89, 0x59, 0x87, 0x45, 0x61, 0x52, };
3978 static const u8 ed25519_173_test_vectors_expected_sig[] = {
3979 	0x13, 0xd2, 0xcb, 0xac, 0x79, 0x76, 0xad, 0x27, 0xf0, 0xbf, 0x66, 0x9a, 0xd5, 0x88, 0xef, 0xb2, 0xc9, 0x1b, 0xab, 0x85, 0x07, 0xd5, 0x7f, 0xb1, 0x6b, 0xfe, 0xa9, 0xca, 0xff, 0x2b, 0x09, 0x64, 0xe7, 0x56, 0x25, 0xc4, 0xd8, 0x08, 0xd7, 0xbb, 0xb7, 0x8c, 0x5b, 0x46, 0x4e, 0xdf, 0xfe, 0x49, 0x49, 0xec, 0xfb, 0xc8, 0xb9, 0x5f, 0xf6, 0xfd, 0xb1, 0xbd, 0xca, 0x27, 0x42, 0x06, 0x81, 0x00, };
3980 static const ec_test_case ed25519_173_test_case = {
3981 	.name = "EDDSA25519-SHA512/wei25519 173",
3982 	.ec_str_p = &wei25519_str_params,
3983 	.priv_key = ed25519_173_test_vectors_priv_key,
3984 	.priv_key_len = sizeof(ed25519_173_test_vectors_priv_key),
3985 	.nn_random = NULL,
3986 	.hash_type = SHA512,
3987 	.msg = (const char *)ed25519_173_test_vectors_message,
3988 	.msglen = sizeof(ed25519_173_test_vectors_message),
3989 	.sig_type = EDDSA25519,
3990 	.exp_sig = ed25519_173_test_vectors_expected_sig,
3991 	.exp_siglen = sizeof(ed25519_173_test_vectors_expected_sig),
3992 	.adata = NULL,
3993 	.adata_len = 0
3994 };
3995 
3996 /************************************************/
3997 static const u8 ed25519_174_test_vectors_priv_key[] = {
3998 	0xd2, 0x7c, 0x9e, 0xaf, 0xcf, 0x88, 0x15, 0x19, 0x90, 0xbb, 0x5b, 0x2f, 0xa8, 0x44, 0x3e, 0x70, 0x9b, 0x5f, 0xd8, 0xd7, 0x8d, 0x23, 0x38, 0x03, 0x32, 0x2d, 0xc8, 0x6d, 0x93, 0xd9, 0x32, 0x95, };
3999 static const u8 ed25519_174_test_vectors_message[] = {
4000 	0x77, 0xc3, 0x5b, 0xda, 0x32, 0xa5, 0x96, 0x7d, 0x8b, 0x30, 0x2f, 0xa7, 0xa4, 0x75, 0x83, 0xce, 0xab, 0x89, 0xc9, 0xa6, 0x09, 0xa6, 0x67, 0xb7, 0x53, 0x15, 0x5f, 0xa6, 0x99, 0x6f, 0x86, 0x31, 0xd0, 0xeb, 0xed, 0xfe, 0x0a, 0xc3, 0x64, 0xc7, 0x7e, 0x85, 0xba, 0x37, 0x31, 0x1f, 0x0d, 0xe5, 0x7a, 0x0d, 0xc2, 0xc1, 0xe9, 0xe4, 0x00, 0xd5, 0x8b, 0x42, 0x4a, 0x32, 0x2e, 0x1d, 0x57, 0x71, 0xe0, 0xa9, 0xfd, 0x95, 0x02, 0xad, 0x02, 0x32, 0xce, 0x54, 0x4f, 0x07, 0xd8, 0xc6, 0x6e, 0x7c, 0x31, 0x47, 0xf8, 0x60, 0x7a, 0xc6, 0x18, 0x9b, 0xb6, 0x90, 0x66, 0xf2, 0xfa, 0xd6, 0x31, 0x18, 0x5f, 0x45, 0x7f, 0x46, 0x7e, 0xba, 0x33, 0x22, 0x8e, 0xcc, 0x40, 0xe8, 0x94, 0xa7, 0x7b, 0x57, 0x16, 0x98, 0xa9, 0xbf, 0xac, 0x84, 0x1a, 0x54, 0xea, 0xc5, 0x21, 0x9d, 0xa9, 0x9c, 0x6a, 0x91, 0x25, 0xc4, 0x69, 0xa2, 0x2f, 0xe8, 0x1f, 0x3b, 0x95, 0x14, 0x33, 0x89, 0x6f, 0x19, 0xce, 0x39, 0xb3, 0x73, 0xfd, 0x7e, 0x5c, 0x7b, 0x65, 0x0a, 0x5e, 0xf2, 0x36, 0x5a, 0xe7, 0x51, 0x0b, 0x0d, 0xa5, 0xe4, 0x9d, 0x7c, 0x07, 0x07, 0x3c, 0xf1, 0x66, 0xa9, 0x83, 0x87, 0xe8, };
4001 static const u8 ed25519_174_test_vectors_expected_sig[] = {
4002 	0xc2, 0x54, 0xe3, 0x71, 0x44, 0x56, 0x33, 0x13, 0x74, 0x42, 0xee, 0xfe, 0x40, 0xad, 0x4a, 0x82, 0xe6, 0x9b, 0x1e, 0xbf, 0x48, 0xa6, 0x85, 0xa2, 0xbc, 0x6f, 0xfb, 0xac, 0x12, 0x6d, 0x22, 0x84, 0x87, 0xb2, 0xe3, 0x53, 0x7c, 0x97, 0xef, 0x74, 0x10, 0x34, 0x20, 0x91, 0x96, 0x2e, 0x50, 0xc0, 0xcb, 0x85, 0xde, 0x7b, 0x39, 0xce, 0xb4, 0x1a, 0xc4, 0x07, 0x8d, 0x40, 0xf3, 0x40, 0x71, 0x06, };
4003 static const ec_test_case ed25519_174_test_case = {
4004 	.name = "EDDSA25519-SHA512/wei25519 174",
4005 	.ec_str_p = &wei25519_str_params,
4006 	.priv_key = ed25519_174_test_vectors_priv_key,
4007 	.priv_key_len = sizeof(ed25519_174_test_vectors_priv_key),
4008 	.nn_random = NULL,
4009 	.hash_type = SHA512,
4010 	.msg = (const char *)ed25519_174_test_vectors_message,
4011 	.msglen = sizeof(ed25519_174_test_vectors_message),
4012 	.sig_type = EDDSA25519,
4013 	.exp_sig = ed25519_174_test_vectors_expected_sig,
4014 	.exp_siglen = sizeof(ed25519_174_test_vectors_expected_sig),
4015 	.adata = NULL,
4016 	.adata_len = 0
4017 };
4018 
4019 /************************************************/
4020 static const u8 ed25519_175_test_vectors_priv_key[] = {
4021 	0x70, 0x21, 0x3d, 0x3a, 0x79, 0xc6, 0x5d, 0x6d, 0xbb, 0xa5, 0x42, 0xa3, 0x67, 0x96, 0x35, 0x00, 0x3a, 0x68, 0x2a, 0xf5, 0xfa, 0x58, 0xde, 0x6b, 0x0d, 0x65, 0xbf, 0xa2, 0x41, 0x84, 0x90, 0x1c, };
4022 static const u8 ed25519_175_test_vectors_message[] = {
4023 	0xcd, 0x6e, 0x1c, 0xd9, 0xc9, 0x0f, 0x56, 0x6d, 0xe0, 0x43, 0xd7, 0x5d, 0x72, 0x44, 0xec, 0xfd, 0xb3, 0x8e, 0x8b, 0xde, 0x2f, 0x9a, 0x6c, 0xd5, 0xa4, 0xfd, 0xac, 0x72, 0xb5, 0xed, 0xe6, 0xaf, 0x62, 0xd9, 0x81, 0x91, 0x8c, 0x5e, 0x61, 0x0a, 0x38, 0x78, 0x92, 0x74, 0xfa, 0x10, 0xe5, 0x27, 0xf8, 0x5f, 0xad, 0x20, 0x9b, 0x76, 0xca, 0x1c, 0x28, 0x1a, 0xd5, 0x89, 0x0f, 0x9c, 0x96, 0xd3, 0x5d, 0xe5, 0x22, 0xf1, 0xdd, 0xcc, 0xb5, 0x39, 0xb8, 0x79, 0x8a, 0x00, 0x67, 0xac, 0xdd, 0x45, 0xb6, 0xe3, 0x44, 0xa5, 0xd9, 0xa9, 0x77, 0x31, 0xf5, 0x45, 0xff, 0xa4, 0xb1, 0x7b, 0x87, 0x5c, 0x67, 0xb4, 0x8e, 0x9d, 0x4c, 0x4b, 0xa7, 0x2c, 0x98, 0xa4, 0x50, 0x55, 0x83, 0xfd, 0xbf, 0x1e, 0x12, 0xf2, 0x2b, 0x5a, 0x7a, 0x49, 0x47, 0x46, 0xcc, 0x9b, 0x6c, 0x1b, 0x57, 0x19, 0x06, 0xc6, 0x7f, 0xcc, 0x88, 0x3a, 0x9c, 0x15, 0xa3, 0x80, 0x68, 0x75, 0xb6, 0x59, 0xe5, 0x81, 0x6b, 0x42, 0x76, 0xc3, 0x19, 0x0e, 0x25, 0xcc, 0x1a, 0xc3, 0xde, 0x47, 0xbf, 0x99, 0xc4, 0x99, 0x65, 0x38, 0x8f, 0x54, 0xf3, 0xef, 0x8e, 0xb5, 0x69, 0x90, 0x6c, 0x60, 0x08, 0xe5, 0xfb, 0xbd, };
4024 static const u8 ed25519_175_test_vectors_expected_sig[] = {
4025 	0x5b, 0x6c, 0xe2, 0x77, 0x4d, 0x40, 0x0e, 0xce, 0xa8, 0xa8, 0x08, 0xf5, 0xfd, 0x0a, 0x79, 0x7f, 0xfc, 0x61, 0x16, 0x75, 0x23, 0x76, 0xcd, 0x7b, 0xfa, 0x3b, 0x2c, 0xca, 0x3a, 0x84, 0xd5, 0x59, 0x3f, 0x5c, 0x03, 0xad, 0x3e, 0xec, 0x1d, 0x89, 0x53, 0x22, 0x75, 0xc4, 0x7b, 0x7c, 0xe2, 0xa0, 0xe9, 0xc5, 0x9c, 0xc4, 0x02, 0x8a, 0x8a, 0x65, 0xe5, 0xbb, 0x90, 0x97, 0xea, 0x71, 0xc2, 0x08, };
4026 static const ec_test_case ed25519_175_test_case = {
4027 	.name = "EDDSA25519-SHA512/wei25519 175",
4028 	.ec_str_p = &wei25519_str_params,
4029 	.priv_key = ed25519_175_test_vectors_priv_key,
4030 	.priv_key_len = sizeof(ed25519_175_test_vectors_priv_key),
4031 	.nn_random = NULL,
4032 	.hash_type = SHA512,
4033 	.msg = (const char *)ed25519_175_test_vectors_message,
4034 	.msglen = sizeof(ed25519_175_test_vectors_message),
4035 	.sig_type = EDDSA25519,
4036 	.exp_sig = ed25519_175_test_vectors_expected_sig,
4037 	.exp_siglen = sizeof(ed25519_175_test_vectors_expected_sig),
4038 	.adata = NULL,
4039 	.adata_len = 0
4040 };
4041 
4042 /************************************************/
4043 static const u8 ed25519_176_test_vectors_priv_key[] = {
4044 	0x5d, 0x54, 0x0b, 0x3b, 0x14, 0xf0, 0xc0, 0x17, 0x5c, 0x04, 0x7e, 0xaf, 0x02, 0x6c, 0x90, 0x70, 0x65, 0x9e, 0xf1, 0x3e, 0x9d, 0x28, 0xe0, 0xc5, 0xc5, 0x16, 0xa4, 0x28, 0x26, 0x9b, 0x14, 0xeb, };
4045 static const u8 ed25519_176_test_vectors_message[] = {
4046 	0xe4, 0xc9, 0xe8, 0x70, 0x68, 0x98, 0xca, 0xd4, 0xac, 0x68, 0xd7, 0x3c, 0x13, 0x0e, 0xfa, 0x04, 0xa5, 0x4f, 0x8c, 0xa2, 0x59, 0x19, 0xea, 0x6b, 0xfa, 0xa5, 0x4c, 0x8c, 0x72, 0x0c, 0xed, 0x85, 0x4c, 0x5e, 0x95, 0x09, 0x10, 0x2c, 0x7b, 0x88, 0x5a, 0xed, 0xdf, 0xfb, 0xd1, 0xb7, 0xf2, 0xc5, 0x92, 0x25, 0x83, 0x67, 0x7a, 0xc9, 0xee, 0xa9, 0xa1, 0x08, 0xc7, 0xe8, 0x3e, 0x88, 0x71, 0xae, 0xd5, 0xa0, 0x84, 0xf5, 0x44, 0x0b, 0x0f, 0x39, 0x1a, 0xd7, 0xff, 0xc6, 0xba, 0xb4, 0x57, 0x4a, 0xf1, 0xb9, 0x67, 0x70, 0xf4, 0x37, 0x0e, 0x8e, 0x98, 0x8e, 0x85, 0xec, 0xb1, 0xa8, 0xd6, 0x03, 0x4f, 0xc3, 0xd7, 0xf4, 0x9f, 0x74, 0x22, 0x02, 0x3b, 0x9d, 0xab, 0x5d, 0x0c, 0x16, 0xbe, 0xab, 0x5f, 0x5d, 0x37, 0xb0, 0xa4, 0xd7, 0xde, 0x19, 0x7a, 0xd8, 0x7c, 0xd4, 0xff, 0x8c, 0xe7, 0x8e, 0xb1, 0x2e, 0x1d, 0xaf, 0x73, 0x9d, 0x8b, 0x47, 0xab, 0x38, 0x0a, 0xbe, 0x90, 0x93, 0x35, 0x6d, 0xb5, 0xb5, 0x97, 0x17, 0x75, 0x1a, 0x49, 0xe1, 0x94, 0x84, 0x72, 0xfd, 0xac, 0xc2, 0x59, 0xff, 0xff, 0xc8, 0xc1, 0xdb, 0xae, 0x59, 0x26, 0x07, 0xd4, 0xec, 0x71, 0xcc, 0x6a, 0x8f, 0x6b, };
4047 static const u8 ed25519_176_test_vectors_expected_sig[] = {
4048 	0x32, 0x52, 0x7d, 0xa7, 0x55, 0x31, 0x28, 0x89, 0x93, 0x5d, 0xd5, 0xee, 0x91, 0xb1, 0xbb, 0x11, 0x7a, 0x5d, 0x37, 0x7d, 0xd2, 0x3e, 0xf5, 0xb7, 0xe1, 0x5b, 0xaf, 0xfa, 0xe9, 0xa5, 0x43, 0x91, 0xa3, 0xfd, 0x23, 0x4b, 0xdc, 0xe0, 0x73, 0xe0, 0x98, 0xc5, 0x8d, 0x05, 0xbf, 0x19, 0x5b, 0x4c, 0x3c, 0xc6, 0x39, 0x72, 0x38, 0x3b, 0xa4, 0xb5, 0x10, 0x72, 0x97, 0x1a, 0xeb, 0xcb, 0x62, 0x0d, };
4049 static const ec_test_case ed25519_176_test_case = {
4050 	.name = "EDDSA25519-SHA512/wei25519 176",
4051 	.ec_str_p = &wei25519_str_params,
4052 	.priv_key = ed25519_176_test_vectors_priv_key,
4053 	.priv_key_len = sizeof(ed25519_176_test_vectors_priv_key),
4054 	.nn_random = NULL,
4055 	.hash_type = SHA512,
4056 	.msg = (const char *)ed25519_176_test_vectors_message,
4057 	.msglen = sizeof(ed25519_176_test_vectors_message),
4058 	.sig_type = EDDSA25519,
4059 	.exp_sig = ed25519_176_test_vectors_expected_sig,
4060 	.exp_siglen = sizeof(ed25519_176_test_vectors_expected_sig),
4061 	.adata = NULL,
4062 	.adata_len = 0
4063 };
4064 
4065 /************************************************/
4066 static const u8 ed25519_177_test_vectors_priv_key[] = {
4067 	0xca, 0x41, 0x76, 0x9c, 0xaf, 0x17, 0x17, 0xb4, 0xe4, 0x5c, 0x93, 0xc1, 0x21, 0xdc, 0x82, 0xa5, 0x34, 0xfb, 0xc6, 0xec, 0x09, 0x86, 0x66, 0x2c, 0x32, 0x22, 0xd7, 0x14, 0x92, 0xbd, 0x11, 0x76, };
4068 static const u8 ed25519_177_test_vectors_message[] = {
4069 	0x9d, 0xe8, 0x47, 0x6c, 0x58, 0x13, 0x84, 0x8a, 0xb1, 0x45, 0x15, 0x37, 0x84, 0x1c, 0xc1, 0x78, 0x00, 0x21, 0x81, 0xa2, 0x18, 0x2a, 0xf3, 0x05, 0xb1, 0x2e, 0x5f, 0x7c, 0x3b, 0x1d, 0x56, 0xb2, 0x2c, 0xf4, 0x6a, 0xe6, 0x27, 0x6d, 0x18, 0x26, 0xec, 0x0a, 0x8c, 0x9a, 0x7d, 0x9f, 0x68, 0x08, 0x3b, 0x72, 0x25, 0xbb, 0xfa, 0xef, 0xce, 0x82, 0xb3, 0xb6, 0x45, 0x94, 0x05, 0x2a, 0x77, 0x00, 0xf3, 0x09, 0x23, 0x3a, 0x79, 0xff, 0xfd, 0xfc, 0xcc, 0x5c, 0x21, 0x40, 0x0c, 0x91, 0xcc, 0x0e, 0x41, 0x8d, 0x51, 0x41, 0xd4, 0x86, 0xb5, 0x21, 0x99, 0x01, 0xd6, 0xdd, 0x24, 0x47, 0xc1, 0xf7, 0xb7, 0xcf, 0x5a, 0x08, 0x79, 0xe7, 0x0e, 0x1d, 0xd6, 0x58, 0xd0, 0xf2, 0xec, 0xf3, 0x1e, 0xbe, 0xee, 0x11, 0xa5, 0xc7, 0x44, 0x40, 0xc6, 0x3b, 0x9d, 0x8b, 0x45, 0x31, 0x8c, 0x34, 0x65, 0xd7, 0xff, 0x03, 0x36, 0x5e, 0xdd, 0x03, 0x85, 0xed, 0xf8, 0x0d, 0x4f, 0xde, 0xd5, 0x1f, 0x0f, 0x75, 0x33, 0xee, 0x40, 0x99, 0xf1, 0x9e, 0x93, 0xbc, 0x9d, 0x08, 0xda, 0xdc, 0xd1, 0x34, 0x85, 0xdb, 0x23, 0x95, 0x22, 0xff, 0xc8, 0x1e, 0x2c, 0x05, 0x1f, 0x87, 0x96, 0xd6, 0x2e, 0x97, 0x9f, 0xcf, };
4070 static const u8 ed25519_177_test_vectors_expected_sig[] = {
4071 	0x5c, 0xda, 0x87, 0x2f, 0x7e, 0xd6, 0xd7, 0xc9, 0x02, 0x18, 0xac, 0x10, 0xbe, 0xe8, 0xe2, 0x14, 0xf3, 0xb3, 0x4d, 0x15, 0xd2, 0x5c, 0x39, 0x25, 0x5e, 0xc9, 0xe6, 0xb0, 0x17, 0x7a, 0xa3, 0xcb, 0x73, 0x68, 0xd1, 0x1c, 0xb8, 0xed, 0x6f, 0xf5, 0xcf, 0x0c, 0x04, 0x28, 0x1d, 0x06, 0xbc, 0x42, 0x72, 0xb8, 0xbc, 0x09, 0xc2, 0x3f, 0x6f, 0x4c, 0xd5, 0xa8, 0x10, 0xdd, 0xc7, 0xb9, 0xc1, 0x03, };
4072 static const ec_test_case ed25519_177_test_case = {
4073 	.name = "EDDSA25519-SHA512/wei25519 177",
4074 	.ec_str_p = &wei25519_str_params,
4075 	.priv_key = ed25519_177_test_vectors_priv_key,
4076 	.priv_key_len = sizeof(ed25519_177_test_vectors_priv_key),
4077 	.nn_random = NULL,
4078 	.hash_type = SHA512,
4079 	.msg = (const char *)ed25519_177_test_vectors_message,
4080 	.msglen = sizeof(ed25519_177_test_vectors_message),
4081 	.sig_type = EDDSA25519,
4082 	.exp_sig = ed25519_177_test_vectors_expected_sig,
4083 	.exp_siglen = sizeof(ed25519_177_test_vectors_expected_sig),
4084 	.adata = NULL,
4085 	.adata_len = 0
4086 };
4087 
4088 /************************************************/
4089 static const u8 ed25519_178_test_vectors_priv_key[] = {
4090 	0xfe, 0xdd, 0x63, 0xff, 0xd4, 0xcf, 0xbf, 0x61, 0x88, 0x94, 0x96, 0x2e, 0x12, 0x1a, 0x90, 0x25, 0xee, 0xa3, 0x18, 0xa8, 0x0a, 0x1a, 0xdf, 0x16, 0x9d, 0x64, 0x90, 0x44, 0x5d, 0x2e, 0x02, 0xa0, };
4091 static const u8 ed25519_178_test_vectors_message[] = {
4092 	0x2e, 0x2a, 0xe5, 0x84, 0x64, 0x1b, 0xe0, 0x3d, 0xd4, 0x8f, 0x9c, 0x61, 0x80, 0x77, 0xae, 0xaa, 0x18, 0x21, 0x2a, 0x42, 0x41, 0xf0, 0xc0, 0x19, 0x4e, 0xd2, 0x3e, 0x37, 0x0d, 0x74, 0x1a, 0x3a, 0xe1, 0x1a, 0x5f, 0xec, 0x3b, 0x04, 0x0c, 0x16, 0xea, 0xfa, 0x4a, 0xc8, 0xd1, 0x8a, 0xba, 0xa7, 0xce, 0x8f, 0x28, 0x69, 0x67, 0x33, 0x71, 0x89, 0xf0, 0x49, 0x5f, 0xfd, 0xd6, 0x19, 0x95, 0xcd, 0xe3, 0x1d, 0xd8, 0xdf, 0xc3, 0xdf, 0x57, 0x00, 0xb5, 0x7a, 0x7a, 0x29, 0x98, 0x0e, 0x9c, 0x82, 0x3f, 0xee, 0x85, 0xd6, 0x14, 0x51, 0x17, 0x67, 0x29, 0xe7, 0x27, 0x87, 0xc6, 0x10, 0x9b, 0x47, 0x35, 0x9b, 0x93, 0xdf, 0xd6, 0x2e, 0x1e, 0x5a, 0x2d, 0x64, 0x2c, 0x05, 0x72, 0x42, 0xda, 0xe5, 0x00, 0xa9, 0x4c, 0xa1, 0xa9, 0x3b, 0xc5, 0x7b, 0xe1, 0xad, 0xe7, 0x6f, 0xe4, 0x50, 0x1c, 0x0f, 0x63, 0x77, 0xed, 0x0e, 0x92, 0x46, 0x17, 0x9a, 0xec, 0xdd, 0x99, 0x46, 0xb6, 0x71, 0xe8, 0x19, 0x0e, 0x1e, 0xd2, 0x3f, 0x96, 0x6e, 0x96, 0x40, 0x9b, 0x94, 0x82, 0x22, 0xd8, 0xea, 0x58, 0x39, 0xde, 0x90, 0x4f, 0xc5, 0x13, 0x48, 0x07, 0x3b, 0x8f, 0x40, 0xed, 0xbd, 0x9b, 0x4a, 0x4b, 0x22, 0x75, };
4093 static const u8 ed25519_178_test_vectors_expected_sig[] = {
4094 	0xed, 0x59, 0xd9, 0xe2, 0x3d, 0xec, 0x34, 0x94, 0xb0, 0xfb, 0xc5, 0xd1, 0x0c, 0xd0, 0x2b, 0xab, 0x86, 0xb3, 0xeb, 0x35, 0xab, 0xbf, 0x9e, 0x4d, 0x4a, 0x92, 0x64, 0x79, 0xf1, 0x34, 0x58, 0x3a, 0x44, 0xce, 0x72, 0xdc, 0x41, 0x22, 0xac, 0xa3, 0x77, 0xa4, 0x07, 0x2b, 0x71, 0x56, 0x46, 0x2b, 0x74, 0xe8, 0xdf, 0x46, 0xb6, 0x86, 0x69, 0x86, 0x36, 0x83, 0x6e, 0xf2, 0x03, 0x17, 0x9c, 0x07, };
4095 static const ec_test_case ed25519_178_test_case = {
4096 	.name = "EDDSA25519-SHA512/wei25519 178",
4097 	.ec_str_p = &wei25519_str_params,
4098 	.priv_key = ed25519_178_test_vectors_priv_key,
4099 	.priv_key_len = sizeof(ed25519_178_test_vectors_priv_key),
4100 	.nn_random = NULL,
4101 	.hash_type = SHA512,
4102 	.msg = (const char *)ed25519_178_test_vectors_message,
4103 	.msglen = sizeof(ed25519_178_test_vectors_message),
4104 	.sig_type = EDDSA25519,
4105 	.exp_sig = ed25519_178_test_vectors_expected_sig,
4106 	.exp_siglen = sizeof(ed25519_178_test_vectors_expected_sig),
4107 	.adata = NULL,
4108 	.adata_len = 0
4109 };
4110 
4111 /************************************************/
4112 static const u8 ed25519_179_test_vectors_priv_key[] = {
4113 	0x38, 0xf2, 0x18, 0x4e, 0xaa, 0x55, 0x36, 0x56, 0xee, 0x29, 0x02, 0x70, 0x6b, 0xce, 0xc4, 0xac, 0xb5, 0xaf, 0x25, 0x15, 0x7c, 0xa0, 0xf6, 0xa2, 0xd4, 0x8d, 0xe8, 0x52, 0x85, 0xfa, 0x3b, 0xc0, };
4114 static const u8 ed25519_179_test_vectors_message[] = {
4115 	0xc2, 0xdf, 0x77, 0xc9, 0xe4, 0x79, 0xf6, 0x19, 0x83, 0xb6, 0xc7, 0x48, 0x3e, 0xf9, 0x3f, 0xb8, 0x5a, 0x10, 0x3b, 0x21, 0x39, 0x23, 0x92, 0x65, 0x23, 0x06, 0x5e, 0xbf, 0xf2, 0x25, 0x7e, 0x85, 0x42, 0x7e, 0x05, 0xcd, 0xc2, 0x75, 0x82, 0xef, 0x6c, 0x16, 0xbe, 0x35, 0x3a, 0x3b, 0x25, 0x03, 0x72, 0xd6, 0x37, 0x0e, 0xec, 0xb6, 0xc8, 0x96, 0x29, 0x17, 0xeb, 0x65, 0x6f, 0x26, 0x41, 0x69, 0x01, 0x89, 0xd1, 0x72, 0xa1, 0x11, 0x05, 0x15, 0x57, 0xab, 0xc2, 0x49, 0x4e, 0x32, 0xca, 0xb6, 0x5e, 0xd0, 0x63, 0x3a, 0xff, 0xe9, 0x24, 0x08, 0xb5, 0x5c, 0x4e, 0xd8, 0xaf, 0x65, 0xe2, 0xc5, 0xe7, 0xaa, 0xb8, 0x87, 0xa3, 0xcc, 0x8d, 0x28, 0xc5, 0x2e, 0x9e, 0x13, 0x36, 0xd0, 0xb7, 0xbb, 0x3f, 0xe2, 0xcd, 0x84, 0x3e, 0x7f, 0xa1, 0x68, 0x03, 0x42, 0xf8, 0xa4, 0xaa, 0xfa, 0x02, 0xc4, 0xab, 0x25, 0x2f, 0x08, 0xc3, 0xd4, 0x6d, 0x5f, 0x00, 0xfd, 0x01, 0x48, 0x42, 0x63, 0xee, 0x63, 0x52, 0x84, 0xf6, 0xdb, 0x26, 0xd6, 0x29, 0x8d, 0xe5, 0xb0, 0xdd, 0x23, 0x8d, 0xa4, 0x0a, 0x8d, 0x2a, 0x93, 0x37, 0x6d, 0xa0, 0x30, 0x27, 0x83, 0xa0, 0xe3, 0xbe, 0x23, 0xd9, 0xe7, 0xf9, 0x90, 0xd2, 0x5b, };
4116 static const u8 ed25519_179_test_vectors_expected_sig[] = {
4117 	0x4a, 0x64, 0x13, 0xc2, 0xc8, 0x7f, 0x2b, 0x38, 0x56, 0xa8, 0xde, 0xcb, 0xce, 0x49, 0x3a, 0xde, 0xae, 0x0c, 0x69, 0xc9, 0x41, 0x34, 0x70, 0x7f, 0xb0, 0xf1, 0x8f, 0x30, 0x49, 0xfd, 0x3e, 0x3d, 0x05, 0x1a, 0xbd, 0xb9, 0xd4, 0xbe, 0xe2, 0x53, 0xc6, 0x10, 0x7c, 0x02, 0xd5, 0x7a, 0xd7, 0xcc, 0x9f, 0x31, 0x01, 0xdb, 0x66, 0x0a, 0xfa, 0xc2, 0xb7, 0x98, 0x19, 0x38, 0xe9, 0x56, 0x4f, 0x01, };
4118 static const ec_test_case ed25519_179_test_case = {
4119 	.name = "EDDSA25519-SHA512/wei25519 179",
4120 	.ec_str_p = &wei25519_str_params,
4121 	.priv_key = ed25519_179_test_vectors_priv_key,
4122 	.priv_key_len = sizeof(ed25519_179_test_vectors_priv_key),
4123 	.nn_random = NULL,
4124 	.hash_type = SHA512,
4125 	.msg = (const char *)ed25519_179_test_vectors_message,
4126 	.msglen = sizeof(ed25519_179_test_vectors_message),
4127 	.sig_type = EDDSA25519,
4128 	.exp_sig = ed25519_179_test_vectors_expected_sig,
4129 	.exp_siglen = sizeof(ed25519_179_test_vectors_expected_sig),
4130 	.adata = NULL,
4131 	.adata_len = 0
4132 };
4133 
4134 /************************************************/
4135 static const u8 ed25519_180_test_vectors_priv_key[] = {
4136 	0x8b, 0xfc, 0xa4, 0x84, 0x62, 0xd2, 0x53, 0x6f, 0x74, 0xb8, 0x4f, 0x6a, 0xf5, 0x9f, 0x5d, 0x85, 0x82, 0xff, 0x8f, 0x7e, 0xc2, 0x87, 0x45, 0xd6, 0x72, 0xe7, 0x2e, 0xb7, 0x2e, 0x79, 0xd3, 0xe9, };
4137 static const u8 ed25519_180_test_vectors_message[] = {
4138 	0x81, 0xee, 0x4c, 0xb9, 0xc4, 0x5d, 0xa6, 0x91, 0xda, 0xcd, 0x7d, 0xd0, 0x9a, 0xff, 0x59, 0x73, 0x72, 0x67, 0xbb, 0x55, 0xc3, 0xad, 0xe1, 0xba, 0x32, 0xc1, 0x7b, 0x7d, 0x0d, 0x2d, 0x0c, 0x60, 0x79, 0xc3, 0x9d, 0x5f, 0xd5, 0xb2, 0x9b, 0xa5, 0xf9, 0xc1, 0x76, 0x20, 0x97, 0x70, 0x98, 0x43, 0xee, 0xe5, 0x61, 0x2b, 0xd2, 0x0b, 0xc8, 0x18, 0x5b, 0xf6, 0x4d, 0x5c, 0x93, 0x41, 0x84, 0xe1, 0x36, 0x24, 0xe6, 0xf8, 0x77, 0xa2, 0xa5, 0xdd, 0xa1, 0x5c, 0x0d, 0xf6, 0x2a, 0xfb, 0xb9, 0x70, 0x57, 0xcc, 0x91, 0xca, 0xc9, 0xa1, 0x84, 0x06, 0xa0, 0xe0, 0x10, 0x9c, 0xc3, 0x9b, 0x2e, 0x3f, 0x81, 0x2e, 0x22, 0x7a, 0x40, 0x62, 0xd5, 0xef, 0x81, 0xc9, 0x2c, 0x22, 0xa7, 0xdc, 0x79, 0x7c, 0x84, 0x5d, 0x71, 0xeb, 0x6e, 0xa9, 0xe4, 0x2e, 0xc8, 0x41, 0x7f, 0xba, 0x90, 0xa9, 0x6d, 0x2b, 0xb1, 0x43, 0x94, 0x18, 0x33, 0x0b, 0x4b, 0xb2, 0xf9, 0x9c, 0x6d, 0x63, 0xd3, 0x04, 0xa0, 0xe5, 0x06, 0xdc, 0xa9, 0x65, 0x3e, 0x5d, 0xe0, 0xdd, 0x56, 0xe3, 0x09, 0xdb, 0x1a, 0x76, 0xa0, 0xfa, 0xab, 0xab, 0x16, 0x37, 0x74, 0xf0, 0x00, 0x08, 0x8c, 0xef, 0x3d, 0x1b, 0x7a, 0x6c, 0xf6, 0x61, 0xd2, 0xe1, 0xd9, };
4139 static const u8 ed25519_180_test_vectors_expected_sig[] = {
4140 	0x44, 0xd7, 0x7e, 0x43, 0x9e, 0xf6, 0xca, 0x5e, 0xb9, 0x40, 0xc6, 0x0f, 0xf8, 0x73, 0x2d, 0xdc, 0x16, 0x26, 0x9e, 0xa0, 0x23, 0xbb, 0x26, 0x13, 0xbd, 0x44, 0x7e, 0xba, 0x7f, 0xd6, 0x98, 0x51, 0x22, 0x6c, 0x48, 0x19, 0xce, 0x8d, 0x44, 0x98, 0x5a, 0x49, 0xf3, 0xf4, 0x1a, 0xc7, 0xaf, 0x33, 0xc4, 0x7f, 0xfe, 0x5f, 0x89, 0x30, 0x4a, 0x32, 0x56, 0xe4, 0x45, 0xf8, 0xd6, 0x86, 0xe3, 0x07, };
4141 static const ec_test_case ed25519_180_test_case = {
4142 	.name = "EDDSA25519-SHA512/wei25519 180",
4143 	.ec_str_p = &wei25519_str_params,
4144 	.priv_key = ed25519_180_test_vectors_priv_key,
4145 	.priv_key_len = sizeof(ed25519_180_test_vectors_priv_key),
4146 	.nn_random = NULL,
4147 	.hash_type = SHA512,
4148 	.msg = (const char *)ed25519_180_test_vectors_message,
4149 	.msglen = sizeof(ed25519_180_test_vectors_message),
4150 	.sig_type = EDDSA25519,
4151 	.exp_sig = ed25519_180_test_vectors_expected_sig,
4152 	.exp_siglen = sizeof(ed25519_180_test_vectors_expected_sig),
4153 	.adata = NULL,
4154 	.adata_len = 0
4155 };
4156 
4157 /************************************************/
4158 static const u8 ed25519_181_test_vectors_priv_key[] = {
4159 	0xd7, 0x48, 0x0d, 0x42, 0x72, 0xbc, 0xb1, 0x55, 0x7b, 0x1b, 0xbe, 0xe0, 0x49, 0x15, 0xc1, 0x26, 0xa5, 0x2c, 0xa6, 0xd6, 0xa8, 0xbb, 0x53, 0x14, 0xa0, 0xe1, 0xa5, 0x2b, 0x59, 0xbf, 0xc9, 0x9c, };
4160 static const u8 ed25519_181_test_vectors_message[] = {
4161 	0x61, 0x5c, 0xc1, 0x9f, 0x94, 0x20, 0x17, 0x36, 0x5b, 0xa8, 0xbf, 0xa2, 0x56, 0xce, 0xcc, 0xc8, 0x5e, 0xe2, 0x89, 0xa1, 0xc3, 0x4b, 0xb1, 0x44, 0x2a, 0xcc, 0x07, 0x16, 0xc7, 0xfc, 0x2c, 0xae, 0xb7, 0x6a, 0x9d, 0xe1, 0x9a, 0xde, 0xc1, 0x06, 0x37, 0x1e, 0x47, 0xa3, 0x0d, 0x2e, 0x12, 0x39, 0xce, 0x1f, 0x7d, 0xca, 0x25, 0x52, 0x6d, 0x60, 0x4b, 0xdd, 0x64, 0x76, 0x59, 0xd9, 0x42, 0xbc, 0xba, 0xc3, 0x68, 0x91, 0x13, 0x49, 0xc3, 0xb9, 0x46, 0xa9, 0x7d, 0xa1, 0x0a, 0x42, 0xdb, 0xcf, 0x3c, 0x73, 0x41, 0x6d, 0x2e, 0x6b, 0xa2, 0x2b, 0xd2, 0x9d, 0x9f, 0x70, 0x56, 0x72, 0xe9, 0xe3, 0x38, 0x94, 0x4c, 0xef, 0x01, 0xad, 0x21, 0xf0, 0x09, 0x74, 0x2e, 0x07, 0xbc, 0xd8, 0x88, 0xca, 0x31, 0xe1, 0xee, 0x95, 0x3e, 0x8c, 0x1b, 0x1f, 0xd9, 0x54, 0xb7, 0xdc, 0xf1, 0xa0, 0xb1, 0xd5, 0xa0, 0x69, 0x06, 0x5a, 0x66, 0xcb, 0x72, 0x1a, 0xdc, 0x02, 0x0f, 0x4e, 0xfe, 0x1a, 0xbd, 0xd1, 0x67, 0x42, 0x74, 0x69, 0x39, 0x28, 0x57, 0x80, 0xd7, 0x53, 0x13, 0x7a, 0xe0, 0x14, 0x0b, 0xb4, 0x10, 0xfb, 0x6c, 0xe3, 0x36, 0x76, 0xc2, 0x7a, 0xee, 0xc5, 0x93, 0xa8, 0x8c, 0xbc, 0x73, 0xaf, 0xd9, 0xf4, 0x05, 0x11, };
4162 static const u8 ed25519_181_test_vectors_expected_sig[] = {
4163 	0xe0, 0x4d, 0xc8, 0x44, 0x2d, 0x35, 0x21, 0x73, 0xe9, 0x31, 0x81, 0x8e, 0x29, 0x08, 0x58, 0xde, 0x85, 0x68, 0x8a, 0x46, 0x49, 0xea, 0x3e, 0x3c, 0x3a, 0xe7, 0x4e, 0xda, 0xa5, 0x4a, 0xd0, 0x1b, 0x64, 0x62, 0x2a, 0xd8, 0xa0, 0x90, 0xb6, 0xad, 0x60, 0xad, 0xfd, 0x01, 0x88, 0x18, 0x82, 0x82, 0x8d, 0x39, 0x07, 0x8b, 0xb5, 0xb2, 0x71, 0x4f, 0xd3, 0xea, 0x83, 0x97, 0xa3, 0x42, 0xfd, 0x04, };
4164 static const ec_test_case ed25519_181_test_case = {
4165 	.name = "EDDSA25519-SHA512/wei25519 181",
4166 	.ec_str_p = &wei25519_str_params,
4167 	.priv_key = ed25519_181_test_vectors_priv_key,
4168 	.priv_key_len = sizeof(ed25519_181_test_vectors_priv_key),
4169 	.nn_random = NULL,
4170 	.hash_type = SHA512,
4171 	.msg = (const char *)ed25519_181_test_vectors_message,
4172 	.msglen = sizeof(ed25519_181_test_vectors_message),
4173 	.sig_type = EDDSA25519,
4174 	.exp_sig = ed25519_181_test_vectors_expected_sig,
4175 	.exp_siglen = sizeof(ed25519_181_test_vectors_expected_sig),
4176 	.adata = NULL,
4177 	.adata_len = 0
4178 };
4179 
4180 /************************************************/
4181 static const u8 ed25519_182_test_vectors_priv_key[] = {
4182 	0x3c, 0x2d, 0x36, 0x50, 0x73, 0x5b, 0x41, 0xef, 0x90, 0x06, 0xbb, 0x45, 0xe4, 0xbe, 0x2e, 0x0a, 0xa5, 0xcd, 0xe8, 0x51, 0xae, 0xac, 0x42, 0x1e, 0xe9, 0xc1, 0xb4, 0x92, 0xd8, 0x7a, 0xa1, 0x8a, };
4183 static const u8 ed25519_182_test_vectors_message[] = {
4184 	0x14, 0x25, 0xd8, 0xd2, 0x18, 0xda, 0x1a, 0x10, 0xa8, 0x0b, 0x6a, 0x9c, 0x3c, 0x27, 0x50, 0xef, 0xe4, 0x16, 0x57, 0x98, 0x4a, 0xbd, 0x51, 0x00, 0xf4, 0x51, 0xba, 0x94, 0x9d, 0xb0, 0x10, 0x46, 0xb7, 0x12, 0x6b, 0xe8, 0x40, 0x23, 0x34, 0xed, 0x57, 0x52, 0x8b, 0xac, 0x05, 0x62, 0x25, 0x53, 0xa8, 0x6b, 0x72, 0x67, 0x22, 0x69, 0x5a, 0x8f, 0xb3, 0x31, 0xd8, 0x56, 0x54, 0x17, 0xc4, 0xff, 0x0f, 0x25, 0x1a, 0x32, 0x0a, 0xd0, 0x6d, 0xed, 0xbb, 0x75, 0x0d, 0xef, 0x35, 0xd5, 0x21, 0xc3, 0xc4, 0xcd, 0x57, 0x1a, 0x45, 0xad, 0xa8, 0x45, 0x06, 0x53, 0xd5, 0xe8, 0x1f, 0xe0, 0xbe, 0xb5, 0x3a, 0xaa, 0xe7, 0x87, 0xb3, 0xeb, 0x65, 0x3c, 0x23, 0x81, 0xed, 0x55, 0xaa, 0xf2, 0x59, 0x0e, 0xe5, 0xed, 0x8b, 0x66, 0x26, 0xf1, 0xc4, 0xb0, 0x43, 0x0a, 0x54, 0xf3, 0x96, 0x58, 0x62, 0x4e, 0x66, 0x35, 0xfe, 0xfc, 0x98, 0xfe, 0xe8, 0xfc, 0x3e, 0x1c, 0xc7, 0xff, 0x3d, 0xd4, 0x20, 0xde, 0x9d, 0xa1, 0x1a, 0x62, 0xfc, 0xae, 0x0e, 0x0c, 0xb4, 0x54, 0xfc, 0x6f, 0x7d, 0xf0, 0x39, 0x54, 0x29, 0x1d, 0x26, 0x20, 0x2f, 0x1b, 0x18, 0x8b, 0x65, 0x7b, 0x3b, 0xae, 0x07, 0x38, 0x94, 0x49, 0xb7, 0x5e, 0x67, 0x42, 0x2f, };
4185 static const u8 ed25519_182_test_vectors_expected_sig[] = {
4186 	0x3f, 0x2a, 0xf0, 0x1a, 0xd5, 0x37, 0x7a, 0xc3, 0x90, 0x40, 0xd4, 0x1a, 0x41, 0xe3, 0x6e, 0x7b, 0x93, 0xfa, 0x72, 0x35, 0xb8, 0x41, 0x79, 0x1f, 0x43, 0x2e, 0xcd, 0x7f, 0x91, 0xa3, 0xb2, 0x1a, 0xb7, 0x19, 0x6c, 0x88, 0x3a, 0xd5, 0xa7, 0xdb, 0x44, 0x6f, 0x6c, 0x06, 0x67, 0x24, 0x60, 0xf3, 0xf6, 0x3e, 0xf8, 0x63, 0xd9, 0x43, 0x2b, 0xe9, 0xca, 0xea, 0xbb, 0x79, 0xe8, 0x7e, 0x22, 0x08, };
4187 static const ec_test_case ed25519_182_test_case = {
4188 	.name = "EDDSA25519-SHA512/wei25519 182",
4189 	.ec_str_p = &wei25519_str_params,
4190 	.priv_key = ed25519_182_test_vectors_priv_key,
4191 	.priv_key_len = sizeof(ed25519_182_test_vectors_priv_key),
4192 	.nn_random = NULL,
4193 	.hash_type = SHA512,
4194 	.msg = (const char *)ed25519_182_test_vectors_message,
4195 	.msglen = sizeof(ed25519_182_test_vectors_message),
4196 	.sig_type = EDDSA25519,
4197 	.exp_sig = ed25519_182_test_vectors_expected_sig,
4198 	.exp_siglen = sizeof(ed25519_182_test_vectors_expected_sig),
4199 	.adata = NULL,
4200 	.adata_len = 0
4201 };
4202 
4203 /************************************************/
4204 static const u8 ed25519_183_test_vectors_priv_key[] = {
4205 	0x74, 0x96, 0x59, 0x96, 0x26, 0x8c, 0xdc, 0x4c, 0x09, 0x22, 0x0b, 0xd3, 0x1c, 0xe0, 0x7b, 0x21, 0x7a, 0x03, 0x82, 0x6e, 0xe9, 0x81, 0xfa, 0x89, 0xf3, 0xa2, 0x35, 0x9c, 0xed, 0x09, 0x5e, 0xf1, };
4206 static const u8 ed25519_183_test_vectors_message[] = {
4207 	0x45, 0xb2, 0xf0, 0x64, 0x61, 0x5b, 0xf7, 0x74, 0xfc, 0xe9, 0x7f, 0x51, 0xc4, 0x64, 0x68, 0x5d, 0x7b, 0x3e, 0x4f, 0xef, 0xff, 0x92, 0x31, 0x24, 0x0a, 0x71, 0x9b, 0x3b, 0x06, 0x21, 0xcd, 0x4a, 0xd8, 0x33, 0x05, 0x67, 0x5c, 0xd6, 0xea, 0xae, 0xbf, 0xf7, 0x91, 0x00, 0x0b, 0x0b, 0x1f, 0xa3, 0x1d, 0x82, 0xd8, 0x18, 0x1b, 0x7f, 0xe5, 0x7c, 0x5e, 0x00, 0xce, 0xc5, 0x6f, 0xf9, 0x02, 0x2e, 0x9c, 0xe8, 0xdb, 0x66, 0x35, 0x6e, 0x40, 0x8e, 0x3e, 0xe2, 0x62, 0xfe, 0x62, 0x77, 0x89, 0xe6, 0x55, 0x35, 0xef, 0x1a, 0x63, 0xe8, 0xfe, 0xc9, 0x33, 0xbe, 0x3d, 0xee, 0x34, 0xd2, 0xfa, 0xcd, 0xb8, 0x92, 0x8c, 0xc4, 0x56, 0xab, 0xf2, 0xf3, 0xe8, 0xca, 0xb4, 0x7e, 0xff, 0x1c, 0xa4, 0x2e, 0x8b, 0x0e, 0x48, 0xd2, 0xc7, 0x3e, 0x7b, 0xcc, 0x5d, 0xe3, 0xf1, 0x05, 0x6f, 0xc5, 0x23, 0xdf, 0xef, 0x6b, 0x00, 0x23, 0xf3, 0x28, 0x89, 0xed, 0x39, 0x4e, 0xed, 0xa0, 0x32, 0xab, 0xf6, 0xbc, 0xaa, 0xda, 0xa7, 0xf3, 0xee, 0x74, 0x11, 0x87, 0x60, 0xab, 0x6d, 0x91, 0xdf, 0x52, 0x8b, 0xdc, 0x58, 0x07, 0x97, 0x2c, 0x85, 0xfa, 0x7c, 0xb5, 0x6e, 0x38, 0x7d, 0x73, 0x32, 0xe7, 0x79, 0xe5, 0x2d, 0x0d, 0xd7, 0xdb, 0x0c, 0xfb, };
4208 static const u8 ed25519_183_test_vectors_expected_sig[] = {
4209 	0x8c, 0x66, 0x28, 0x34, 0x43, 0x17, 0xa6, 0x3a, 0xca, 0x6f, 0x78, 0xcf, 0xae, 0xa9, 0x65, 0xb3, 0xaa, 0x55, 0x22, 0xce, 0x91, 0x41, 0x95, 0x14, 0x1c, 0x08, 0x87, 0x0a, 0x1b, 0x8d, 0xac, 0xf3, 0x4b, 0x79, 0xc7, 0xab, 0xc6, 0x93, 0xcd, 0x9e, 0x5e, 0xbe, 0x1a, 0x2e, 0x86, 0xf0, 0x33, 0x2d, 0x20, 0x48, 0xdb, 0x3c, 0xbd, 0xef, 0x01, 0x68, 0x79, 0x62, 0xd6, 0xdf, 0x24, 0x9e, 0x38, 0x00, };
4210 static const ec_test_case ed25519_183_test_case = {
4211 	.name = "EDDSA25519-SHA512/wei25519 183",
4212 	.ec_str_p = &wei25519_str_params,
4213 	.priv_key = ed25519_183_test_vectors_priv_key,
4214 	.priv_key_len = sizeof(ed25519_183_test_vectors_priv_key),
4215 	.nn_random = NULL,
4216 	.hash_type = SHA512,
4217 	.msg = (const char *)ed25519_183_test_vectors_message,
4218 	.msglen = sizeof(ed25519_183_test_vectors_message),
4219 	.sig_type = EDDSA25519,
4220 	.exp_sig = ed25519_183_test_vectors_expected_sig,
4221 	.exp_siglen = sizeof(ed25519_183_test_vectors_expected_sig),
4222 	.adata = NULL,
4223 	.adata_len = 0
4224 };
4225 
4226 /************************************************/
4227 static const u8 ed25519_184_test_vectors_priv_key[] = {
4228 	0x0a, 0xbf, 0x06, 0x9c, 0x08, 0xb2, 0x69, 0x1c, 0x3a, 0x26, 0xf7, 0x9d, 0xc8, 0xed, 0x05, 0xcb, 0x71, 0xd2, 0x20, 0xff, 0x78, 0xf3, 0xa5, 0xc5, 0x78, 0x0a, 0xe9, 0xda, 0x18, 0xe4, 0x56, 0x43, };
4229 static const u8 ed25519_184_test_vectors_message[] = {
4230 	0x0d, 0x05, 0x52, 0x91, 0xb2, 0xe8, 0x61, 0xea, 0xe1, 0x9e, 0xa0, 0xfb, 0x20, 0x69, 0xd8, 0xc9, 0xee, 0xf4, 0xf1, 0x34, 0x7f, 0x35, 0x76, 0xd7, 0x84, 0x11, 0xae, 0x7c, 0x0b, 0x1c, 0x1c, 0xaf, 0x31, 0xfd, 0xe7, 0x36, 0xdc, 0x8a, 0xcc, 0xac, 0xb6, 0x62, 0xdf, 0x76, 0xb6, 0x20, 0xb6, 0x2c, 0xe9, 0x0b, 0x9f, 0x92, 0xc8, 0x33, 0x09, 0x12, 0x86, 0x21, 0xd0, 0x57, 0xcf, 0x84, 0x58, 0x05, 0x94, 0x90, 0x88, 0xe9, 0x38, 0xdd, 0xbc, 0x3d, 0x41, 0xc5, 0xe5, 0x54, 0x1f, 0xec, 0x82, 0x98, 0x68, 0x7a, 0xd2, 0xf7, 0x9a, 0xcd, 0xa0, 0x1a, 0xa2, 0x15, 0xd2, 0x58, 0x21, 0x43, 0x6e, 0xac, 0x9d, 0x26, 0x87, 0x16, 0xd4, 0xcd, 0x60, 0x50, 0x26, 0x0c, 0xb4, 0xef, 0x6a, 0xad, 0xa4, 0x83, 0x5e, 0x07, 0x3a, 0x84, 0x58, 0x21, 0xff, 0x21, 0x1a, 0xe2, 0xba, 0xad, 0xce, 0xb6, 0xe5, 0x7f, 0x06, 0xf8, 0x83, 0x45, 0xed, 0xbf, 0x93, 0xbf, 0xdf, 0x54, 0xfb, 0x74, 0x12, 0x3b, 0x57, 0xc0, 0xfb, 0x4a, 0x79, 0x60, 0x8d, 0x8d, 0xb6, 0x74, 0x08, 0x89, 0xe1, 0x57, 0x33, 0x50, 0x77, 0x99, 0xf7, 0xa1, 0xfd, 0x30, 0x17, 0xbc, 0xd7, 0x7b, 0x28, 0xa2, 0xbb, 0x6c, 0x91, 0xec, 0xd1, 0x54, 0xe9, 0xc5, 0xa5, 0xff, 0xa0, 0xeb, 0x62, };
4231 static const u8 ed25519_184_test_vectors_expected_sig[] = {
4232 	0xc7, 0x56, 0x6f, 0xb3, 0xb4, 0xd8, 0xde, 0xf6, 0x67, 0xe0, 0x40, 0xf2, 0x76, 0xd3, 0xed, 0x98, 0xd3, 0x6d, 0xff, 0x46, 0x01, 0x26, 0xa7, 0x5b, 0x4c, 0xc2, 0x10, 0x03, 0x86, 0xbb, 0x01, 0xc6, 0x42, 0xf6, 0xd8, 0xde, 0x7e, 0x64, 0x9b, 0xe6, 0xe0, 0x81, 0x8b, 0x08, 0xd7, 0x7c, 0xe6, 0x0f, 0x4e, 0xe5, 0xe7, 0x71, 0x7a, 0x50, 0x88, 0x4b, 0xde, 0xe0, 0x20, 0x34, 0xec, 0xf1, 0xcd, 0x0c, };
4233 static const ec_test_case ed25519_184_test_case = {
4234 	.name = "EDDSA25519-SHA512/wei25519 184",
4235 	.ec_str_p = &wei25519_str_params,
4236 	.priv_key = ed25519_184_test_vectors_priv_key,
4237 	.priv_key_len = sizeof(ed25519_184_test_vectors_priv_key),
4238 	.nn_random = NULL,
4239 	.hash_type = SHA512,
4240 	.msg = (const char *)ed25519_184_test_vectors_message,
4241 	.msglen = sizeof(ed25519_184_test_vectors_message),
4242 	.sig_type = EDDSA25519,
4243 	.exp_sig = ed25519_184_test_vectors_expected_sig,
4244 	.exp_siglen = sizeof(ed25519_184_test_vectors_expected_sig),
4245 	.adata = NULL,
4246 	.adata_len = 0
4247 };
4248 
4249 /************************************************/
4250 static const u8 ed25519_185_test_vectors_priv_key[] = {
4251 	0xf3, 0xfd, 0x5e, 0xc5, 0xe2, 0x30, 0xb6, 0xda, 0xd1, 0xac, 0x3d, 0x3a, 0xeb, 0xad, 0xc7, 0x86, 0x3f, 0xf8, 0x9d, 0xe2, 0xa1, 0x31, 0x7f, 0x42, 0x4d, 0x15, 0x98, 0x9a, 0x3e, 0xfb, 0x0a, 0xfd, };
4252 static const u8 ed25519_185_test_vectors_message[] = {
4253 	0x71, 0xf2, 0x89, 0x73, 0xed, 0x3d, 0xf0, 0x59, 0x45, 0xfa, 0x0b, 0xdb, 0x23, 0xe9, 0xbe, 0xca, 0x65, 0x1d, 0x3e, 0xe6, 0xbf, 0x9f, 0xa4, 0x5f, 0xfd, 0xc6, 0x06, 0x1e, 0x42, 0xfa, 0x2e, 0x8d, 0x76, 0x23, 0x5f, 0x0e, 0x9e, 0x2d, 0xaa, 0x65, 0xe5, 0x26, 0x31, 0xfc, 0x3b, 0xea, 0xd3, 0x3d, 0xa0, 0x55, 0xbb, 0x49, 0x2e, 0x47, 0x58, 0xe5, 0x98, 0xa0, 0x30, 0xa3, 0x3b, 0x3c, 0x40, 0xb3, 0x43, 0x71, 0x45, 0x9b, 0x23, 0x3c, 0xcc, 0x04, 0x3c, 0xcc, 0xc3, 0xa3, 0xcb, 0xce, 0x54, 0x9e, 0x20, 0xe0, 0xb2, 0xb4, 0x33, 0x05, 0xb6, 0x4a, 0xec, 0x66, 0x1a, 0xad, 0xba, 0x65, 0x56, 0xb1, 0x7d, 0x76, 0xe3, 0xbb, 0xed, 0x62, 0xc4, 0xa4, 0xea, 0xc4, 0xf8, 0x86, 0x03, 0x99, 0x67, 0x52, 0xd2, 0x36, 0x3c, 0x8d, 0x4a, 0x27, 0x89, 0xd1, 0x28, 0xf6, 0xe9, 0x59, 0x94, 0x5c, 0x68, 0xc3, 0x01, 0x46, 0xd1, 0x94, 0xcc, 0xb6, 0x83, 0x9e, 0xc6, 0x53, 0x44, 0x60, 0x16, 0x52, 0xc1, 0x8b, 0x00, 0x74, 0xe2, 0xbc, 0x76, 0x68, 0x31, 0x16, 0x97, 0xd9, 0x60, 0xc7, 0x06, 0x65, 0x97, 0x92, 0x4d, 0x70, 0x4d, 0x02, 0xa0, 0x19, 0x3f, 0xaf, 0xbf, 0xdf, 0x57, 0x1e, 0xe0, 0xdf, 0xe4, 0x14, 0xdc, 0x2f, 0x52, 0x89, 0x69, 0x12, 0xbc, 0x32, };
4254 static const u8 ed25519_185_test_vectors_expected_sig[] = {
4255 	0x44, 0xb0, 0x12, 0x46, 0x63, 0xad, 0xb0, 0xc7, 0x3a, 0xed, 0x49, 0xf7, 0x34, 0x03, 0x46, 0x1f, 0xcb, 0x19, 0x11, 0x1b, 0x0b, 0xa1, 0x7a, 0xa9, 0x96, 0x56, 0x6f, 0x47, 0x7e, 0x37, 0xd5, 0x24, 0xb0, 0xe1, 0xf1, 0x07, 0x61, 0x2f, 0xc5, 0x2a, 0x7c, 0x76, 0x7b, 0x18, 0x1f, 0xbf, 0x4d, 0x62, 0x9b, 0xdd, 0xc0, 0x8f, 0x30, 0x58, 0x4d, 0xec, 0x61, 0x24, 0xc5, 0xd3, 0x9d, 0x42, 0x31, 0x02, };
4256 static const ec_test_case ed25519_185_test_case = {
4257 	.name = "EDDSA25519-SHA512/wei25519 185",
4258 	.ec_str_p = &wei25519_str_params,
4259 	.priv_key = ed25519_185_test_vectors_priv_key,
4260 	.priv_key_len = sizeof(ed25519_185_test_vectors_priv_key),
4261 	.nn_random = NULL,
4262 	.hash_type = SHA512,
4263 	.msg = (const char *)ed25519_185_test_vectors_message,
4264 	.msglen = sizeof(ed25519_185_test_vectors_message),
4265 	.sig_type = EDDSA25519,
4266 	.exp_sig = ed25519_185_test_vectors_expected_sig,
4267 	.exp_siglen = sizeof(ed25519_185_test_vectors_expected_sig),
4268 	.adata = NULL,
4269 	.adata_len = 0
4270 };
4271 
4272 /************************************************/
4273 static const u8 ed25519_186_test_vectors_priv_key[] = {
4274 	0x73, 0x8f, 0x13, 0x10, 0xa4, 0xe0, 0x8f, 0x91, 0x7a, 0x0a, 0x5c, 0x1f, 0xba, 0xf4, 0xef, 0x72, 0xf9, 0x5e, 0xe6, 0x2f, 0xcd, 0xed, 0x50, 0x86, 0x8a, 0x3d, 0xaf, 0x98, 0x85, 0x6a, 0x44, 0x8d, };
4275 static const u8 ed25519_186_test_vectors_message[] = {
4276 	0xf0, 0xe7, 0xef, 0x67, 0x82, 0xd0, 0x4c, 0x69, 0x43, 0xb1, 0x9e, 0xb6, 0x6f, 0xf6, 0x22, 0x6b, 0x73, 0x6e, 0x3b, 0x09, 0x40, 0xc0, 0x9b, 0xb1, 0x26, 0xbf, 0xc4, 0xc4, 0xca, 0x7a, 0x5e, 0x70, 0x16, 0xc2, 0x86, 0xb7, 0xbf, 0xd7, 0x3a, 0xa6, 0xa7, 0x9a, 0x96, 0x03, 0x1b, 0xc8, 0x1c, 0xb5, 0xda, 0x68, 0xce, 0xc7, 0x1a, 0x6a, 0x0d, 0x39, 0x78, 0x0c, 0xbe, 0x6a, 0x0c, 0xd4, 0x77, 0x4d, 0x3a, 0xa0, 0x6a, 0x88, 0x16, 0x10, 0x44, 0x4a, 0x8c, 0x9d, 0x19, 0x10, 0x22, 0x94, 0xe5, 0xf6, 0x35, 0x18, 0x7a, 0xa6, 0xf4, 0x8d, 0x11, 0x91, 0x2c, 0x70, 0x94, 0xb3, 0x88, 0x33, 0x02, 0x8d, 0x57, 0x0c, 0xb1, 0x10, 0xdb, 0x60, 0x62, 0x5b, 0xb1, 0xbd, 0xc3, 0x7a, 0xff, 0xa2, 0x5e, 0xa3, 0xc8, 0xf8, 0xdb, 0xfc, 0x25, 0x14, 0xf4, 0x36, 0x5c, 0x62, 0xb2, 0x98, 0x9a, 0x66, 0xd2, 0x7c, 0x80, 0x38, 0x4e, 0x74, 0xae, 0x5f, 0xba, 0x8c, 0x1c, 0x2a, 0xf9, 0xc7, 0x2c, 0x49, 0x71, 0xe6, 0x4f, 0xa6, 0xa1, 0xdc, 0x25, 0x17, 0xb3, 0x1e, 0xa5, 0x7c, 0xcb, 0x08, 0x15, 0xa7, 0xfe, 0x2d, 0xa0, 0xf1, 0x46, 0xca, 0xa0, 0x84, 0x31, 0xd2, 0x5d, 0x15, 0x16, 0x62, 0xd9, 0xd2, 0x6e, 0x95, 0x22, 0x9d, 0x0c, 0x62, 0x82, 0x36, 0x64, 0x12, 0x3c, };
4277 static const u8 ed25519_186_test_vectors_expected_sig[] = {
4278 	0xce, 0x1e, 0x35, 0x77, 0xb6, 0xa2, 0x10, 0x16, 0xb9, 0xdd, 0x0b, 0x51, 0x7b, 0xaa, 0x0c, 0xcb, 0x10, 0x7b, 0xc1, 0x99, 0xb8, 0xbb, 0xae, 0xf6, 0x8f, 0x95, 0x0c, 0x8e, 0xd5, 0x80, 0x13, 0xc8, 0x53, 0xb4, 0xd3, 0x38, 0xee, 0xdc, 0x67, 0x50, 0x79, 0xab, 0x13, 0x90, 0x46, 0x2f, 0xfe, 0xfa, 0x6a, 0x95, 0x9b, 0x04, 0x3f, 0x8b, 0x56, 0x51, 0xc6, 0xca, 0x37, 0x5c, 0xe0, 0xb4, 0xa4, 0x03, };
4279 static const ec_test_case ed25519_186_test_case = {
4280 	.name = "EDDSA25519-SHA512/wei25519 186",
4281 	.ec_str_p = &wei25519_str_params,
4282 	.priv_key = ed25519_186_test_vectors_priv_key,
4283 	.priv_key_len = sizeof(ed25519_186_test_vectors_priv_key),
4284 	.nn_random = NULL,
4285 	.hash_type = SHA512,
4286 	.msg = (const char *)ed25519_186_test_vectors_message,
4287 	.msglen = sizeof(ed25519_186_test_vectors_message),
4288 	.sig_type = EDDSA25519,
4289 	.exp_sig = ed25519_186_test_vectors_expected_sig,
4290 	.exp_siglen = sizeof(ed25519_186_test_vectors_expected_sig),
4291 	.adata = NULL,
4292 	.adata_len = 0
4293 };
4294 
4295 /************************************************/
4296 static const u8 ed25519_187_test_vectors_priv_key[] = {
4297 	0x88, 0x41, 0xd2, 0x2a, 0xde, 0xd6, 0x9c, 0x13, 0x1e, 0xf5, 0xee, 0x0a, 0x10, 0xab, 0x0a, 0x9b, 0x77, 0xcb, 0x75, 0x4e, 0xde, 0x8d, 0x25, 0x7a, 0x53, 0x72, 0x72, 0x6e, 0x2b, 0x49, 0x9c, 0x6e, };
4298 static const u8 ed25519_187_test_vectors_message[] = {
4299 	0x08, 0x7c, 0xa6, 0xbe, 0x2a, 0x95, 0x0c, 0x02, 0x4b, 0x3e, 0x74, 0x67, 0xfe, 0x00, 0xa7, 0xd3, 0x64, 0x55, 0x5d, 0x5d, 0xc6, 0x77, 0x0f, 0x5e, 0xbd, 0x26, 0x06, 0x42, 0x52, 0x5b, 0xd3, 0xc0, 0xf9, 0x65, 0xdb, 0x36, 0xd7, 0xb2, 0x29, 0xa5, 0x74, 0x21, 0xee, 0xc6, 0x4e, 0x4d, 0x99, 0x1c, 0xdd, 0xe5, 0x91, 0x23, 0x03, 0x44, 0x70, 0x55, 0x3f, 0x4e, 0xb0, 0xbe, 0x81, 0xad, 0x29, 0x36, 0xc8, 0xca, 0x26, 0xbc, 0xab, 0x4e, 0x5d, 0x79, 0x04, 0x0e, 0x29, 0x79, 0x87, 0x28, 0x60, 0x16, 0x84, 0xa4, 0x68, 0x32, 0x3c, 0xf3, 0xba, 0xae, 0x4d, 0x94, 0x8d, 0x0a, 0x1f, 0xd9, 0x05, 0xef, 0xfe, 0x16, 0xdc, 0x44, 0x64, 0x20, 0x88, 0xdf, 0x53, 0xf6, 0x38, 0x8b, 0xc4, 0x80, 0xed, 0xf4, 0xaa, 0x20, 0x7d, 0x0e, 0xd1, 0x61, 0xed, 0xa3, 0x45, 0x71, 0x2b, 0x4c, 0x00, 0xcb, 0x05, 0xfc, 0xf6, 0x35, 0xec, 0x25, 0x88, 0x78, 0x5b, 0xfb, 0x8a, 0x27, 0xcd, 0xc2, 0x89, 0x96, 0xa1, 0xdb, 0x3e, 0x67, 0x87, 0x02, 0x33, 0x93, 0xc0, 0x75, 0xd8, 0x3c, 0x90, 0x38, 0xfe, 0xd7, 0x89, 0x9c, 0x55, 0xfe, 0xc3, 0x07, 0xde, 0x32, 0x49, 0xc1, 0x4b, 0xda, 0x49, 0xe8, 0xb8, 0x95, 0x86, 0x09, 0x42, 0xc3, 0x6d, 0x64, 0x0b, 0xb8, 0x93, 0x77, 0x91, 0x42, };
4300 static const u8 ed25519_187_test_vectors_expected_sig[] = {
4301 	0xbb, 0x2b, 0xab, 0x70, 0x03, 0xf1, 0x31, 0x1b, 0xe9, 0xb8, 0xc8, 0x83, 0xfc, 0x4f, 0xd5, 0x28, 0xad, 0xfd, 0x51, 0xa9, 0xc9, 0x9d, 0xb3, 0xdc, 0xa8, 0xda, 0x0f, 0xca, 0x95, 0x8d, 0xa1, 0x9a, 0x10, 0xeb, 0x22, 0x33, 0x26, 0x67, 0xb1, 0xa0, 0x06, 0x5d, 0x3d, 0xbc, 0x0d, 0x06, 0x26, 0x9a, 0x12, 0x59, 0xb6, 0xa8, 0x90, 0x48, 0x4a, 0xa2, 0x14, 0x3a, 0x52, 0x69, 0x5f, 0x14, 0x5b, 0x0a, };
4302 static const ec_test_case ed25519_187_test_case = {
4303 	.name = "EDDSA25519-SHA512/wei25519 187",
4304 	.ec_str_p = &wei25519_str_params,
4305 	.priv_key = ed25519_187_test_vectors_priv_key,
4306 	.priv_key_len = sizeof(ed25519_187_test_vectors_priv_key),
4307 	.nn_random = NULL,
4308 	.hash_type = SHA512,
4309 	.msg = (const char *)ed25519_187_test_vectors_message,
4310 	.msglen = sizeof(ed25519_187_test_vectors_message),
4311 	.sig_type = EDDSA25519,
4312 	.exp_sig = ed25519_187_test_vectors_expected_sig,
4313 	.exp_siglen = sizeof(ed25519_187_test_vectors_expected_sig),
4314 	.adata = NULL,
4315 	.adata_len = 0
4316 };
4317 
4318 /************************************************/
4319 static const u8 ed25519_188_test_vectors_priv_key[] = {
4320 	0xc0, 0x21, 0x35, 0xe7, 0xb6, 0x5a, 0xac, 0x72, 0xf6, 0x3c, 0x32, 0xbf, 0x5b, 0xef, 0x5b, 0x68, 0xc7, 0xf3, 0xb8, 0xed, 0x56, 0x20, 0x8e, 0x59, 0xe4, 0x75, 0x20, 0x70, 0xe9, 0xd0, 0x70, 0x95, };
4321 static const u8 ed25519_188_test_vectors_message[] = {
4322 	0x86, 0xd9, 0x49, 0x13, 0x50, 0xd2, 0x56, 0x6e, 0x70, 0x8e, 0xd3, 0x56, 0x18, 0x5d, 0x61, 0x0c, 0x73, 0x46, 0x5b, 0x2a, 0x5c, 0x70, 0x12, 0x91, 0x99, 0x58, 0xaf, 0x2c, 0xf7, 0x6a, 0xf9, 0x95, 0x23, 0x0d, 0x36, 0x0d, 0xe4, 0x00, 0xb7, 0x13, 0x71, 0x70, 0xdd, 0x08, 0x35, 0xf1, 0x0f, 0xcb, 0xec, 0x22, 0x4e, 0xe4, 0xe4, 0x2c, 0x7d, 0x1c, 0xeb, 0xb7, 0xf5, 0x80, 0xfe, 0xa8, 0xed, 0x62, 0x23, 0x16, 0x3b, 0xac, 0xdd, 0x19, 0x23, 0xa5, 0x72, 0xcb, 0xb6, 0xdc, 0x26, 0xca, 0x8b, 0x17, 0xad, 0xe6, 0x8c, 0x6d, 0x28, 0x08, 0xc4, 0xca, 0x1e, 0xca, 0x28, 0xea, 0xe9, 0xa1, 0x45, 0xf6, 0x8d, 0x40, 0x79, 0xd8, 0xd5, 0x9d, 0x14, 0x0e, 0x95, 0x82, 0x28, 0xe7, 0xe9, 0x95, 0x20, 0xe3, 0x42, 0xdb, 0xd7, 0x45, 0x7a, 0x91, 0x59, 0x74, 0x0f, 0x48, 0xbd, 0xc2, 0x7b, 0x93, 0xbd, 0xab, 0xeb, 0xa4, 0x65, 0xcb, 0xf0, 0xc8, 0xdf, 0x5e, 0xf2, 0xc0, 0xf9, 0x38, 0x6e, 0xeb, 0xe6, 0x56, 0xf5, 0xd7, 0x49, 0xd5, 0xf9, 0x14, 0x7f, 0x52, 0x52, 0x66, 0x91, 0x0d, 0x7b, 0x80, 0x39, 0x6a, 0x90, 0xbe, 0x5c, 0xc1, 0x88, 0xa9, 0xa9, 0x45, 0xf9, 0x3e, 0x75, 0x3f, 0xc9, 0x9b, 0xaf, 0xa1, 0x8e, 0xe0, 0xa6, 0xdf, 0xf7, 0x9b, 0xf8, 0x48, 0x48, 0x98, 0xef, };
4323 static const u8 ed25519_188_test_vectors_expected_sig[] = {
4324 	0xdd, 0x5c, 0xba, 0xe4, 0x79, 0xeb, 0x5e, 0x22, 0x95, 0x74, 0xc2, 0x1e, 0xc3, 0xbe, 0xd9, 0x11, 0x11, 0x3a, 0x57, 0xa1, 0x91, 0x6d, 0x33, 0x13, 0x45, 0x75, 0x15, 0xd5, 0x5c, 0xc5, 0xb6, 0xe6, 0xeb, 0xc5, 0x2c, 0x93, 0xf8, 0x21, 0xd1, 0x39, 0x88, 0xdb, 0xba, 0x8d, 0xf5, 0x09, 0x6d, 0x55, 0xff, 0x9c, 0x39, 0xe7, 0xf9, 0xd5, 0x61, 0xcb, 0x58, 0x93, 0x0c, 0x96, 0xa7, 0xa5, 0xd6, 0x0b, };
4325 static const ec_test_case ed25519_188_test_case = {
4326 	.name = "EDDSA25519-SHA512/wei25519 188",
4327 	.ec_str_p = &wei25519_str_params,
4328 	.priv_key = ed25519_188_test_vectors_priv_key,
4329 	.priv_key_len = sizeof(ed25519_188_test_vectors_priv_key),
4330 	.nn_random = NULL,
4331 	.hash_type = SHA512,
4332 	.msg = (const char *)ed25519_188_test_vectors_message,
4333 	.msglen = sizeof(ed25519_188_test_vectors_message),
4334 	.sig_type = EDDSA25519,
4335 	.exp_sig = ed25519_188_test_vectors_expected_sig,
4336 	.exp_siglen = sizeof(ed25519_188_test_vectors_expected_sig),
4337 	.adata = NULL,
4338 	.adata_len = 0
4339 };
4340 
4341 /************************************************/
4342 static const u8 ed25519_189_test_vectors_priv_key[] = {
4343 	0x15, 0x4a, 0x47, 0xeb, 0xa1, 0xb8, 0xc3, 0x83, 0x62, 0xea, 0x61, 0xfa, 0xeb, 0x0c, 0x0a, 0xd7, 0xe6, 0x1e, 0x41, 0x2a, 0x3c, 0xba, 0x46, 0x88, 0xaf, 0x0d, 0xb2, 0xa4, 0x87, 0x20, 0x8b, 0x1c, };
4344 static const u8 ed25519_189_test_vectors_message[] = {
4345 	0xbf, 0x60, 0x7e, 0x8b, 0x6e, 0x14, 0xd9, 0xc8, 0xac, 0xd9, 0x68, 0x15, 0xaf, 0x0c, 0x03, 0x5a, 0xc7, 0x3c, 0x41, 0x04, 0xc9, 0x37, 0x86, 0xcc, 0xc1, 0xc9, 0xf8, 0x59, 0x39, 0x5d, 0xd7, 0x81, 0x90, 0x03, 0x20, 0xeb, 0xf3, 0x56, 0xaa, 0x99, 0x1c, 0xdc, 0x9f, 0x50, 0x3f, 0xce, 0xe9, 0xf8, 0x36, 0x75, 0x88, 0x8a, 0x7d, 0x59, 0x20, 0x02, 0xd2, 0xa5, 0x4a, 0x57, 0x3a, 0x96, 0x99, 0x4b, 0x3f, 0xa8, 0x65, 0x53, 0x8c, 0x61, 0x7e, 0xd8, 0xad, 0x1f, 0xf6, 0x20, 0x18, 0x28, 0x8a, 0x67, 0x4f, 0x44, 0x9b, 0xe0, 0xaa, 0xb5, 0x22, 0x2f, 0x74, 0xc4, 0xfd, 0x47, 0x5e, 0xd6, 0xa8, 0xdf, 0xb2, 0x7f, 0x45, 0x28, 0x7b, 0x22, 0xb2, 0xb6, 0xc3, 0xbd, 0x15, 0x17, 0x9f, 0x26, 0x7d, 0x15, 0x7d, 0x7d, 0x8a, 0x41, 0x59, 0x67, 0x9b, 0xe8, 0x5b, 0x25, 0xc2, 0xbb, 0x2b, 0xa8, 0x50, 0xaa, 0xed, 0x9a, 0xe3, 0xae, 0x57, 0x1b, 0xe4, 0xf7, 0x58, 0x36, 0x32, 0x9c, 0xf3, 0x6f, 0x41, 0x2c, 0x1c, 0x80, 0xf1, 0x41, 0x3b, 0x76, 0x61, 0xea, 0xb4, 0xa8, 0xe1, 0x1b, 0x60, 0x24, 0x24, 0x4f, 0xc6, 0x23, 0x23, 0xff, 0x02, 0xe3, 0x8a, 0xce, 0xb1, 0x73, 0x7b, 0xd4, 0x74, 0xbf, 0x1e, 0x98, 0x01, 0x5d, 0xbc, 0x78, 0x8b, 0x02, 0x7b, 0xbe, 0x21, 0x7c, 0xf4, 0xe7, };
4346 static const u8 ed25519_189_test_vectors_expected_sig[] = {
4347 	0xf4, 0xb6, 0xeb, 0x1a, 0x8d, 0x95, 0x0e, 0x88, 0x7f, 0xd2, 0xf3, 0x0f, 0x70, 0xa2, 0x3b, 0x41, 0x87, 0x14, 0x95, 0xbf, 0xa5, 0xb8, 0xa4, 0xad, 0x39, 0x96, 0xcd, 0x9b, 0xf5, 0x1e, 0xb7, 0x42, 0xe0, 0x7f, 0x4c, 0x4d, 0x2d, 0xa4, 0xb0, 0x1a, 0xb0, 0x87, 0x36, 0x7a, 0x50, 0xe2, 0xb6, 0x5b, 0x3c, 0xef, 0x51, 0x4e, 0x40, 0xd8, 0x37, 0x54, 0x0b, 0x8c, 0x89, 0x96, 0x64, 0x85, 0x91, 0x0f, };
4348 static const ec_test_case ed25519_189_test_case = {
4349 	.name = "EDDSA25519-SHA512/wei25519 189",
4350 	.ec_str_p = &wei25519_str_params,
4351 	.priv_key = ed25519_189_test_vectors_priv_key,
4352 	.priv_key_len = sizeof(ed25519_189_test_vectors_priv_key),
4353 	.nn_random = NULL,
4354 	.hash_type = SHA512,
4355 	.msg = (const char *)ed25519_189_test_vectors_message,
4356 	.msglen = sizeof(ed25519_189_test_vectors_message),
4357 	.sig_type = EDDSA25519,
4358 	.exp_sig = ed25519_189_test_vectors_expected_sig,
4359 	.exp_siglen = sizeof(ed25519_189_test_vectors_expected_sig),
4360 	.adata = NULL,
4361 	.adata_len = 0
4362 };
4363 
4364 /************************************************/
4365 static const u8 ed25519_190_test_vectors_priv_key[] = {
4366 	0xd3, 0x02, 0x84, 0x31, 0xce, 0x2e, 0xef, 0x73, 0xbd, 0x94, 0x0a, 0xb8, 0x4c, 0xa2, 0x9f, 0x13, 0xfb, 0x26, 0x43, 0x6a, 0xa2, 0x5e, 0x1b, 0x7b, 0xf2, 0x6c, 0xb3, 0x3f, 0x17, 0xfd, 0xf8, 0x17, };
4367 static const u8 ed25519_190_test_vectors_message[] = {
4368 	0x08, 0x63, 0x35, 0xd6, 0x12, 0x75, 0xd1, 0x68, 0xea, 0xac, 0x05, 0x40, 0x47, 0x7f, 0x50, 0xd4, 0xb1, 0x5f, 0x9e, 0x50, 0xb9, 0xbe, 0x69, 0x39, 0x21, 0xed, 0x54, 0xa9, 0x94, 0x1b, 0xc4, 0x06, 0x43, 0xcd, 0xa6, 0x2e, 0x1d, 0x80, 0x5d, 0x02, 0x50, 0xa8, 0x11, 0x46, 0xbd, 0x5f, 0xe2, 0xd3, 0x9e, 0x81, 0x44, 0x4d, 0x21, 0xe2, 0xb2, 0x1b, 0x03, 0x1c, 0x11, 0x13, 0x06, 0xca, 0xcb, 0xf5, 0x27, 0x17, 0xf6, 0xfb, 0x4c, 0xd3, 0x41, 0x6f, 0x12, 0x15, 0xf8, 0xdd, 0xdc, 0xed, 0xd2, 0xf0, 0x09, 0x6b, 0x0f, 0xcf, 0xa0, 0xa6, 0xcc, 0x2c, 0xde, 0x7a, 0x2b, 0xab, 0x7f, 0x1e, 0x32, 0x79, 0x0b, 0x53, 0x61, 0xdf, 0x36, 0x71, 0x42, 0x4c, 0xc7, 0x22, 0xf2, 0x31, 0xbf, 0x71, 0x89, 0x5b, 0xcd, 0xcb, 0x7b, 0x22, 0xee, 0x07, 0x4e, 0x8f, 0xb4, 0xa9, 0x67, 0x85, 0x04, 0xe7, 0x35, 0x36, 0x6c, 0x17, 0x2f, 0x07, 0x63, 0x7b, 0x7a, 0x93, 0x14, 0x9b, 0xb2, 0x1f, 0x38, 0x88, 0x33, 0x78, 0xa1, 0xdb, 0x27, 0x3f, 0xc2, 0x32, 0x39, 0xe3, 0x53, 0x37, 0xf9, 0xce, 0x56, 0x6d, 0x8d, 0xdf, 0x3b, 0x31, 0x33, 0xca, 0xd7, 0xf2, 0xce, 0x81, 0xed, 0xb5, 0x03, 0xce, 0x1d, 0x27, 0xc5, 0xa6, 0x57, 0x16, 0x0b, 0x78, 0xdc, 0xa9, 0xae, 0xae, 0xa3, 0x79, 0xbe, 0x9c, 0x85, };
4369 static const u8 ed25519_190_test_vectors_expected_sig[] = {
4370 	0xce, 0x97, 0x29, 0xa9, 0x6c, 0x3e, 0xd2, 0x89, 0x43, 0xb2, 0x78, 0x39, 0xc7, 0x33, 0x82, 0xec, 0xd5, 0x72, 0x96, 0x0c, 0x1f, 0x9e, 0x90, 0xc5, 0xef, 0xf9, 0xdd, 0x49, 0x9f, 0xf4, 0x8f, 0x17, 0xd2, 0x5e, 0xdd, 0x12, 0x68, 0xef, 0xfe, 0x41, 0xee, 0x6a, 0x81, 0xce, 0x48, 0xd8, 0x4d, 0xe5, 0x13, 0xdf, 0x9c, 0x41, 0x44, 0x26, 0x21, 0xb2, 0xf5, 0x49, 0x1e, 0x34, 0x6b, 0xe1, 0x8c, 0x04, };
4371 static const ec_test_case ed25519_190_test_case = {
4372 	.name = "EDDSA25519-SHA512/wei25519 190",
4373 	.ec_str_p = &wei25519_str_params,
4374 	.priv_key = ed25519_190_test_vectors_priv_key,
4375 	.priv_key_len = sizeof(ed25519_190_test_vectors_priv_key),
4376 	.nn_random = NULL,
4377 	.hash_type = SHA512,
4378 	.msg = (const char *)ed25519_190_test_vectors_message,
4379 	.msglen = sizeof(ed25519_190_test_vectors_message),
4380 	.sig_type = EDDSA25519,
4381 	.exp_sig = ed25519_190_test_vectors_expected_sig,
4382 	.exp_siglen = sizeof(ed25519_190_test_vectors_expected_sig),
4383 	.adata = NULL,
4384 	.adata_len = 0
4385 };
4386 
4387 /************************************************/
4388 static const u8 ed25519_191_test_vectors_priv_key[] = {
4389 	0xee, 0x89, 0x85, 0xdc, 0x27, 0x50, 0x44, 0x40, 0xa8, 0x75, 0x8d, 0x4c, 0x53, 0xe4, 0x22, 0x52, 0x15, 0x79, 0x7a, 0x00, 0xcd, 0x86, 0x31, 0xd5, 0x9b, 0xd9, 0x3b, 0xc6, 0x6f, 0x37, 0x3d, 0x5e, };
4390 static const u8 ed25519_191_test_vectors_message[] = {
4391 	0xf2, 0x22, 0x04, 0x85, 0xad, 0xdf, 0xeb, 0xce, 0x02, 0xa8, 0x33, 0xac, 0xa3, 0x33, 0x81, 0xd1, 0xdf, 0x91, 0x7e, 0xd6, 0x09, 0x95, 0x0e, 0xd2, 0x4f, 0x85, 0xe3, 0xb0, 0x2b, 0x2b, 0x99, 0x4b, 0x4d, 0x93, 0x97, 0x84, 0xe3, 0x32, 0xf4, 0x10, 0x64, 0xc8, 0xb4, 0xa2, 0x63, 0x0a, 0xb3, 0x69, 0x61, 0x74, 0x2a, 0xa1, 0xcf, 0xfd, 0xcb, 0x08, 0xc1, 0x44, 0xee, 0xae, 0xde, 0xaf, 0xd4, 0x8b, 0x5d, 0xbe, 0x96, 0xbf, 0x24, 0x35, 0x0e, 0x14, 0xfd, 0x68, 0x28, 0x6b, 0xc0, 0x8e, 0xea, 0xef, 0x8b, 0xc6, 0xad, 0x9e, 0x19, 0x5d, 0x14, 0x84, 0xaf, 0xcd, 0x30, 0xaf, 0xa8, 0xce, 0xd4, 0x84, 0x81, 0x26, 0xd5, 0x6c, 0x81, 0xb4, 0x3c, 0x27, 0xa5, 0xdb, 0xbd, 0xec, 0x1a, 0x50, 0xc1, 0x10, 0x62, 0xce, 0x21, 0xc6, 0x1d, 0x86, 0x0c, 0x25, 0xa8, 0x62, 0xfb, 0xb7, 0x5c, 0x3b, 0xd5, 0x1c, 0x8d, 0xc0, 0x76, 0x36, 0x66, 0x86, 0x69, 0xbb, 0xf7, 0x51, 0xea, 0xca, 0xcc, 0xb3, 0xb5, 0x1d, 0x2c, 0x0d, 0x41, 0x40, 0x31, 0x6c, 0xfc, 0xe2, 0xeb, 0x18, 0xd2, 0x90, 0x8c, 0xec, 0xd5, 0xa1, 0x88, 0x67, 0x9b, 0xc5, 0xf5, 0xde, 0x29, 0x0f, 0x54, 0x8e, 0x7e, 0xbc, 0x57, 0xd4, 0x1b, 0x58, 0x9a, 0x24, 0xce, 0x88, 0xee, 0x48, 0xd9, 0x7e, 0x8d, 0x0c, 0x7c, 0x76, 0x99, 0x60, };
4392 static const u8 ed25519_191_test_vectors_expected_sig[] = {
4393 	0x5b, 0xd6, 0x0a, 0xd5, 0xe9, 0xba, 0xd9, 0x93, 0x2c, 0xa9, 0xc7, 0x5f, 0x23, 0x1a, 0x76, 0x88, 0x9a, 0xe7, 0xa8, 0xb8, 0x64, 0xb9, 0x1d, 0x1f, 0xcb, 0xa5, 0xc5, 0xd4, 0xbf, 0xa1, 0xd9, 0x28, 0x38, 0xad, 0xb9, 0x74, 0x84, 0x2a, 0x07, 0x10, 0x77, 0x9b, 0x3e, 0x30, 0x94, 0x04, 0x49, 0x09, 0xe9, 0x2c, 0x7c, 0xf0, 0x46, 0xce, 0x51, 0x9f, 0x4c, 0x68, 0xe8, 0xf1, 0x9e, 0xc0, 0x3c, 0x02, };
4394 static const ec_test_case ed25519_191_test_case = {
4395 	.name = "EDDSA25519-SHA512/wei25519 191",
4396 	.ec_str_p = &wei25519_str_params,
4397 	.priv_key = ed25519_191_test_vectors_priv_key,
4398 	.priv_key_len = sizeof(ed25519_191_test_vectors_priv_key),
4399 	.nn_random = NULL,
4400 	.hash_type = SHA512,
4401 	.msg = (const char *)ed25519_191_test_vectors_message,
4402 	.msglen = sizeof(ed25519_191_test_vectors_message),
4403 	.sig_type = EDDSA25519,
4404 	.exp_sig = ed25519_191_test_vectors_expected_sig,
4405 	.exp_siglen = sizeof(ed25519_191_test_vectors_expected_sig),
4406 	.adata = NULL,
4407 	.adata_len = 0
4408 };
4409 
4410 /************************************************/
4411 static const u8 ed25519_192_test_vectors_priv_key[] = {
4412 	0x80, 0xdf, 0xe2, 0xbf, 0x73, 0x87, 0xba, 0xd4, 0x65, 0x4e, 0xb0, 0x76, 0xf8, 0xda, 0xe9, 0x59, 0x51, 0x63, 0xe4, 0x01, 0x27, 0xf5, 0xdf, 0x49, 0x2d, 0xad, 0x7d, 0xf0, 0x4c, 0x72, 0x21, 0xc4, };
4413 static const u8 ed25519_192_test_vectors_message[] = {
4414 	0xaa, 0x09, 0xd7, 0x84, 0xbb, 0x09, 0xdc, 0x99, 0x99, 0x31, 0xeb, 0xb4, 0xc0, 0x0e, 0x42, 0x4c, 0xef, 0xec, 0xa1, 0x04, 0x81, 0x8d, 0x8e, 0xaf, 0x06, 0x61, 0xf0, 0x97, 0x28, 0xad, 0x02, 0x5e, 0xf4, 0x73, 0x93, 0x21, 0x05, 0x71, 0xf1, 0x74, 0x04, 0xe9, 0xaa, 0x6d, 0x8c, 0xbd, 0x5f, 0xd8, 0x8c, 0xd7, 0xdf, 0xb8, 0xe2, 0xe8, 0xa1, 0x08, 0xc0, 0x5d, 0xe2, 0x06, 0xf3, 0x40, 0x82, 0x34, 0xa3, 0xb4, 0x63, 0xdb, 0xe7, 0x1a, 0x07, 0xd0, 0x55, 0x87, 0x32, 0x45, 0x24, 0xb7, 0x32, 0x6e, 0xe7, 0x9d, 0x33, 0x48, 0xdd, 0xbe, 0xd7, 0x87, 0x1b, 0x86, 0xfc, 0xb4, 0x88, 0x03, 0x1d, 0xc9, 0xea, 0x93, 0xf6, 0xb8, 0xd7, 0xfd, 0xa6, 0x23, 0x93, 0x48, 0xa5, 0x62, 0x44, 0x4f, 0xaf, 0x1e, 0x72, 0xd3, 0x1a, 0xf3, 0x54, 0x43, 0xe9, 0xdf, 0x53, 0xe7, 0x62, 0xf3, 0xe5, 0x6b, 0x48, 0x66, 0x8f, 0x97, 0x84, 0xb3, 0x36, 0x8a, 0xb2, 0x78, 0xa4, 0x8e, 0xf4, 0x54, 0x6a, 0x26, 0xcf, 0xad, 0x0d, 0x0a, 0x51, 0x61, 0x69, 0x8f, 0x26, 0xee, 0x8d, 0x34, 0xfc, 0x2b, 0x3d, 0x6d, 0xfb, 0x93, 0xb0, 0x09, 0xac, 0x29, 0x6f, 0x6a, 0xfe, 0x48, 0x7e, 0xe3, 0x35, 0xea, 0xc9, 0xf0, 0x2c, 0xfc, 0xae, 0x5f, 0xcb, 0xd1, 0xa1, 0x6b, 0xa4, 0xe7, 0x1b, 0xe1, 0xb1, 0x12, 0x56, 0x2f, 0xc2, };
4415 static const u8 ed25519_192_test_vectors_expected_sig[] = {
4416 	0x27, 0x27, 0x9e, 0x3c, 0xdc, 0xb0, 0x3e, 0xf5, 0x57, 0xa5, 0xde, 0xfc, 0x2f, 0x6c, 0x58, 0x12, 0x8a, 0x6d, 0xc3, 0xf8, 0xb0, 0x38, 0x59, 0x58, 0x01, 0x4e, 0x70, 0x9c, 0x1f, 0x61, 0xb0, 0xae, 0x6b, 0x40, 0x35, 0x76, 0xf0, 0xe4, 0x54, 0xd5, 0xe4, 0xc6, 0x4c, 0x17, 0x31, 0x38, 0xee, 0x4b, 0xbd, 0x5f, 0xe7, 0xb6, 0x0d, 0x06, 0xc5, 0xab, 0xe2, 0x3f, 0xe9, 0x9e, 0xe3, 0xb4, 0x6a, 0x00, };
4417 static const ec_test_case ed25519_192_test_case = {
4418 	.name = "EDDSA25519-SHA512/wei25519 192",
4419 	.ec_str_p = &wei25519_str_params,
4420 	.priv_key = ed25519_192_test_vectors_priv_key,
4421 	.priv_key_len = sizeof(ed25519_192_test_vectors_priv_key),
4422 	.nn_random = NULL,
4423 	.hash_type = SHA512,
4424 	.msg = (const char *)ed25519_192_test_vectors_message,
4425 	.msglen = sizeof(ed25519_192_test_vectors_message),
4426 	.sig_type = EDDSA25519,
4427 	.exp_sig = ed25519_192_test_vectors_expected_sig,
4428 	.exp_siglen = sizeof(ed25519_192_test_vectors_expected_sig),
4429 	.adata = NULL,
4430 	.adata_len = 0
4431 };
4432 
4433 /************************************************/
4434 static const u8 ed25519_193_test_vectors_priv_key[] = {
4435 	0xda, 0x1f, 0x86, 0x85, 0x42, 0xcd, 0x7c, 0xce, 0x7a, 0x5c, 0xa3, 0xfa, 0x3c, 0x24, 0x08, 0x1b, 0x4d, 0x23, 0x44, 0xb2, 0x1a, 0x15, 0x7f, 0x02, 0x64, 0xa3, 0x47, 0x13, 0x2d, 0x19, 0x65, 0x9d, };
4436 static const u8 ed25519_193_test_vectors_message[] = {
4437 	0xc6, 0x98, 0x7e, 0xf3, 0x80, 0xd5, 0xd0, 0xe7, 0x41, 0x96, 0x44, 0x3a, 0xaa, 0x3a, 0x32, 0x35, 0x6c, 0xbc, 0x02, 0x63, 0x6c, 0x5a, 0x4b, 0x6d, 0x62, 0xa8, 0x11, 0x4b, 0x21, 0x11, 0xbc, 0x1a, 0xbd, 0xdd, 0x9e, 0x44, 0xb3, 0x67, 0x2c, 0x18, 0xb5, 0x8d, 0x4e, 0xf5, 0x91, 0xaf, 0x45, 0x62, 0xe0, 0x20, 0x04, 0x9f, 0x8e, 0x12, 0x74, 0x68, 0x8e, 0x1f, 0x8e, 0x52, 0x96, 0xd2, 0xf9, 0x25, 0x2e, 0x7f, 0xc8, 0x4c, 0xd1, 0xd0, 0xc5, 0x8e, 0x98, 0xf0, 0xf1, 0x60, 0x53, 0x0a, 0xa2, 0x2c, 0x87, 0x1e, 0xef, 0x65, 0x2e, 0x71, 0x97, 0x4c, 0xe9, 0x1b, 0x4a, 0x65, 0xfc, 0x25, 0xfd, 0x09, 0xfa, 0x1b, 0x6c, 0x32, 0x08, 0x6e, 0x98, 0xec, 0x70, 0x8d, 0x9a, 0xbc, 0xb1, 0xd9, 0xcc, 0x8e, 0x1a, 0x08, 0x9e, 0xd8, 0xdb, 0x22, 0x06, 0xee, 0x95, 0x70, 0x23, 0x6a, 0xd6, 0x9b, 0x3d, 0xe6, 0x82, 0x18, 0x62, 0xfd, 0x2c, 0x70, 0xcd, 0x83, 0xa3, 0x2a, 0x68, 0xb0, 0x48, 0x62, 0x29, 0x55, 0x3d, 0x92, 0x8d, 0xe4, 0x8d, 0x03, 0xa1, 0x04, 0xe8, 0x73, 0x81, 0x96, 0x4a, 0xbe, 0xa7, 0x66, 0x83, 0x97, 0x6d, 0x52, 0x7c, 0x84, 0x16, 0x3a, 0x12, 0xee, 0xe0, 0xa5, 0x59, 0x86, 0xcf, 0x14, 0x31, 0xe9, 0xc8, 0x6c, 0xba, 0x81, 0x82, 0xca, 0x94, 0x68, 0x9b, 0xac, 0xd1, 0x65, 0xfb, 0xce, };
4438 static const u8 ed25519_193_test_vectors_expected_sig[] = {
4439 	0x75, 0xc5, 0x17, 0xad, 0xe4, 0xf0, 0x8d, 0x77, 0x46, 0x30, 0x57, 0x43, 0xd1, 0xa7, 0x76, 0xc3, 0xc5, 0x5e, 0xb5, 0xee, 0xdf, 0xdf, 0xcb, 0x5e, 0xb1, 0xd5, 0x63, 0x4a, 0x1b, 0xda, 0xf7, 0xa4, 0xb8, 0xd2, 0x41, 0x87, 0xd6, 0xc8, 0x85, 0x0e, 0x3c, 0xed, 0x65, 0x67, 0xa0, 0x3c, 0x4c, 0x59, 0x38, 0x9a, 0x4c, 0xf4, 0x71, 0x14, 0xce, 0x54, 0x73, 0x16, 0x0f, 0x23, 0x05, 0x46, 0xe6, 0x0d, };
4440 static const ec_test_case ed25519_193_test_case = {
4441 	.name = "EDDSA25519-SHA512/wei25519 193",
4442 	.ec_str_p = &wei25519_str_params,
4443 	.priv_key = ed25519_193_test_vectors_priv_key,
4444 	.priv_key_len = sizeof(ed25519_193_test_vectors_priv_key),
4445 	.nn_random = NULL,
4446 	.hash_type = SHA512,
4447 	.msg = (const char *)ed25519_193_test_vectors_message,
4448 	.msglen = sizeof(ed25519_193_test_vectors_message),
4449 	.sig_type = EDDSA25519,
4450 	.exp_sig = ed25519_193_test_vectors_expected_sig,
4451 	.exp_siglen = sizeof(ed25519_193_test_vectors_expected_sig),
4452 	.adata = NULL,
4453 	.adata_len = 0
4454 };
4455 
4456 /************************************************/
4457 static const u8 ed25519_194_test_vectors_priv_key[] = {
4458 	0xf1, 0x3d, 0xae, 0xc0, 0xef, 0x33, 0xdd, 0xd1, 0x33, 0xc7, 0xd2, 0x44, 0xd1, 0x0f, 0xd2, 0x7d, 0xdb, 0x23, 0x70, 0x52, 0x80, 0xff, 0x5f, 0x18, 0x15, 0xf0, 0xf6, 0x56, 0xd8, 0x36, 0xfe, 0x84, };
4459 static const u8 ed25519_194_test_vectors_message[] = {
4460 	0xec, 0x02, 0xff, 0x18, 0x04, 0xb2, 0xb3, 0x09, 0xaf, 0x31, 0x58, 0xb6, 0x62, 0x72, 0xa1, 0x4a, 0x3a, 0xad, 0x83, 0xc4, 0x1a, 0x71, 0x98, 0x46, 0xf7, 0x08, 0x8c, 0xa9, 0x79, 0x2a, 0xf5, 0x75, 0xc7, 0x89, 0x13, 0xc4, 0x32, 0x75, 0x9f, 0x0b, 0x9a, 0x74, 0x8b, 0xdc, 0x55, 0x68, 0x49, 0x6e, 0x41, 0x65, 0x8c, 0xc1, 0xcd, 0xb8, 0xda, 0x6c, 0x91, 0xd0, 0x7c, 0x3e, 0xc2, 0xf4, 0xaf, 0x50, 0x42, 0x49, 0xb9, 0x96, 0xaa, 0x00, 0xc0, 0x07, 0x1c, 0xdf, 0xa7, 0x93, 0xf8, 0x2d, 0x0e, 0xc5, 0xd2, 0x67, 0x26, 0x2f, 0x51, 0x8f, 0xc0, 0x29, 0xb8, 0x8e, 0x20, 0xb6, 0x20, 0x1f, 0xb9, 0xe0, 0x5a, 0xbd, 0x3f, 0x95, 0x24, 0xc5, 0xda, 0x2f, 0xa8, 0x97, 0x8f, 0xf2, 0xef, 0xd4, 0x81, 0x20, 0xcf, 0x00, 0x82, 0x2d, 0x1b, 0xee, 0x90, 0xdf, 0x81, 0x61, 0x25, 0xd8, 0xed, 0xc0, 0xcf, 0xb5, 0xde, 0x66, 0xd1, 0x6b, 0xe6, 0x38, 0x96, 0xa4, 0x12, 0xa6, 0x2b, 0x03, 0x1b, 0x71, 0x18, 0xac, 0x13, 0xfe, 0x2c, 0x9f, 0xaa, 0x6b, 0x1a, 0x33, 0x42, 0xf9, 0xcc, 0xf7, 0x88, 0x41, 0x66, 0xcf, 0x48, 0x9a, 0x84, 0xde, 0x26, 0xb5, 0xce, 0x5b, 0x21, 0x85, 0x6a, 0x3a, 0xf2, 0x89, 0xbc, 0x66, 0x22, 0xc0, 0xaa, 0xb9, 0xf2, 0x14, 0x2d, 0x39, 0x3f, 0x5d, 0x4b, 0x23, 0x67, 0x79, 0xdb, 0xb0, 0x66, };
4461 static const u8 ed25519_194_test_vectors_expected_sig[] = {
4462 	0xdb, 0x77, 0x18, 0x33, 0xf7, 0xfd, 0xba, 0xcd, 0xab, 0x2b, 0x5c, 0xc8, 0x0e, 0xed, 0x50, 0xaf, 0xdf, 0x13, 0x78, 0x3b, 0x7f, 0xe5, 0xe9, 0x03, 0xd5, 0xdb, 0xb4, 0xc2, 0xe5, 0x35, 0x31, 0x6a, 0x6e, 0xef, 0x4c, 0x34, 0xf0, 0x04, 0xd2, 0xb9, 0xa4, 0xe2, 0x70, 0x0b, 0xd6, 0xe2, 0xac, 0xdd, 0x56, 0x4c, 0x3c, 0x80, 0xcc, 0x68, 0xa3, 0x03, 0xf5, 0xfb, 0x09, 0x1c, 0xb4, 0x34, 0x0f, 0x0a, };
4463 static const ec_test_case ed25519_194_test_case = {
4464 	.name = "EDDSA25519-SHA512/wei25519 194",
4465 	.ec_str_p = &wei25519_str_params,
4466 	.priv_key = ed25519_194_test_vectors_priv_key,
4467 	.priv_key_len = sizeof(ed25519_194_test_vectors_priv_key),
4468 	.nn_random = NULL,
4469 	.hash_type = SHA512,
4470 	.msg = (const char *)ed25519_194_test_vectors_message,
4471 	.msglen = sizeof(ed25519_194_test_vectors_message),
4472 	.sig_type = EDDSA25519,
4473 	.exp_sig = ed25519_194_test_vectors_expected_sig,
4474 	.exp_siglen = sizeof(ed25519_194_test_vectors_expected_sig),
4475 	.adata = NULL,
4476 	.adata_len = 0
4477 };
4478 
4479 /************************************************/
4480 static const u8 ed25519_195_test_vectors_priv_key[] = {
4481 	0x42, 0xdc, 0x16, 0xc5, 0x7f, 0xb6, 0xf1, 0x28, 0x94, 0x5f, 0xa1, 0x01, 0xe0, 0x5b, 0xbf, 0x54, 0x8e, 0xf7, 0xd9, 0x77, 0x26, 0xb6, 0x92, 0xfe, 0x40, 0x40, 0x69, 0xcc, 0x57, 0xcc, 0xef, 0xa0, };
4482 static const u8 ed25519_195_test_vectors_message[] = {
4483 	0xf2, 0x71, 0x4c, 0x23, 0xa3, 0xa6, 0xfc, 0x11, 0xad, 0x15, 0xc9, 0x80, 0xb7, 0x35, 0x0f, 0xc8, 0x42, 0x17, 0x87, 0x76, 0x61, 0x18, 0x80, 0x55, 0xff, 0x75, 0x0d, 0x82, 0xc4, 0x9c, 0x5f, 0xef, 0x7b, 0xc8, 0xe6, 0xaa, 0xc5, 0x74, 0xa1, 0xb7, 0x9a, 0x3f, 0x26, 0xd1, 0x69, 0x69, 0xc0, 0xf4, 0x06, 0xee, 0xab, 0x3e, 0x9e, 0x12, 0x85, 0x0a, 0x55, 0x70, 0x97, 0x45, 0xe3, 0x0d, 0xff, 0xa6, 0x2a, 0x69, 0xdf, 0xb2, 0xb6, 0x4b, 0x3c, 0x1b, 0xd2, 0xbc, 0x35, 0x86, 0xe2, 0x6d, 0x4e, 0xea, 0x71, 0x4d, 0x2a, 0x7b, 0x71, 0xcf, 0x79, 0xfb, 0x8f, 0xfb, 0xf2, 0xaa, 0xad, 0x00, 0xca, 0x3e, 0x4f, 0x2b, 0x6f, 0x50, 0x3c, 0xc1, 0xfe, 0xf2, 0xea, 0xb3, 0x65, 0x6f, 0xb4, 0x4f, 0x8d, 0x62, 0xa8, 0xdb, 0x8a, 0xb5, 0x8f, 0x39, 0x46, 0x93, 0x94, 0x9e, 0xea, 0x57, 0xfa, 0xfe, 0xcf, 0x00, 0x5f, 0x6e, 0xbf, 0x12, 0x87, 0xdb, 0xa4, 0xd2, 0xd6, 0x23, 0xc0, 0x2e, 0xa1, 0x71, 0xf5, 0x67, 0xe5, 0x26, 0xad, 0xd2, 0x07, 0x09, 0xeb, 0xca, 0xb9, 0x62, 0xf8, 0x3d, 0x98, 0xef, 0x66, 0x8e, 0xbd, 0x01, 0xef, 0x20, 0x48, 0x8b, 0x36, 0x65, 0xe3, 0xa4, 0x46, 0xfb, 0xfb, 0x13, 0xd3, 0x40, 0x50, 0x94, 0x2c, 0x74, 0x9b, 0xb2, 0xdf, 0xfc, 0x76, 0x63, 0x67, 0xfd, 0x45, 0x2e, 0x68, 0xe5, 0xb0, 0xc6, };
4484 static const u8 ed25519_195_test_vectors_expected_sig[] = {
4485 	0xc7, 0x59, 0x77, 0xe8, 0x3b, 0xcf, 0xe9, 0xdf, 0x72, 0x92, 0xa8, 0x60, 0xed, 0x97, 0x25, 0x55, 0xb5, 0xc2, 0x44, 0x16, 0xfd, 0x4b, 0x7e, 0xe3, 0x28, 0x53, 0x88, 0xfa, 0x5b, 0x14, 0x47, 0x60, 0x8e, 0x4a, 0x34, 0x78, 0x13, 0xcf, 0xe0, 0x93, 0x51, 0x2a, 0x76, 0x51, 0xe4, 0x22, 0xe9, 0x86, 0x7d, 0xb7, 0xb9, 0x7c, 0x0b, 0x08, 0x67, 0xf0, 0xb8, 0xc7, 0xb7, 0xf4, 0xf0, 0x2c, 0x31, 0x0d, };
4486 static const ec_test_case ed25519_195_test_case = {
4487 	.name = "EDDSA25519-SHA512/wei25519 195",
4488 	.ec_str_p = &wei25519_str_params,
4489 	.priv_key = ed25519_195_test_vectors_priv_key,
4490 	.priv_key_len = sizeof(ed25519_195_test_vectors_priv_key),
4491 	.nn_random = NULL,
4492 	.hash_type = SHA512,
4493 	.msg = (const char *)ed25519_195_test_vectors_message,
4494 	.msglen = sizeof(ed25519_195_test_vectors_message),
4495 	.sig_type = EDDSA25519,
4496 	.exp_sig = ed25519_195_test_vectors_expected_sig,
4497 	.exp_siglen = sizeof(ed25519_195_test_vectors_expected_sig),
4498 	.adata = NULL,
4499 	.adata_len = 0
4500 };
4501 
4502 /************************************************/
4503 static const u8 ed25519_196_test_vectors_priv_key[] = {
4504 	0x90, 0xb4, 0x55, 0xc6, 0xbb, 0x9c, 0xec, 0x83, 0xe1, 0x37, 0x35, 0x70, 0x65, 0x33, 0x9d, 0x03, 0x05, 0x25, 0xd0, 0xea, 0x7f, 0x5b, 0x92, 0x3a, 0x2d, 0x59, 0x72, 0xc3, 0xc1, 0x2a, 0xa3, 0x7b, };
4505 static const u8 ed25519_196_test_vectors_message[] = {
4506 	0xc6, 0x2c, 0xfd, 0xb9, 0xd2, 0x1e, 0xee, 0x6b, 0xe4, 0x7f, 0x30, 0x72, 0x7a, 0xae, 0xe5, 0x1f, 0x07, 0x03, 0x78, 0x9a, 0x43, 0x1d, 0x32, 0x22, 0x85, 0x33, 0x35, 0x02, 0x17, 0xa9, 0x3a, 0x18, 0x90, 0x06, 0x69, 0xc9, 0x59, 0x56, 0xf3, 0xf2, 0xae, 0x90, 0xdc, 0x74, 0x5a, 0x71, 0xe1, 0x83, 0x40, 0xd0, 0x58, 0xd1, 0x6b, 0x4c, 0x6f, 0xe3, 0x3b, 0x64, 0xaf, 0x8d, 0xad, 0x97, 0x3f, 0xe5, 0xdc, 0x02, 0xe8, 0x52, 0x07, 0x05, 0xc7, 0xa8, 0xbb, 0x3c, 0xcb, 0xe1, 0x83, 0x8c, 0x6c, 0x24, 0x93, 0x37, 0xf9, 0xb6, 0xa4, 0xc0, 0xe1, 0xf8, 0xa4, 0xe5, 0xd1, 0x03, 0x19, 0x6f, 0xa7, 0x99, 0x98, 0x92, 0x3d, 0x04, 0x22, 0xe9, 0xd0, 0x79, 0xa7, 0x2c, 0xc2, 0xa8, 0xf8, 0x6d, 0x65, 0x90, 0x31, 0xa6, 0x07, 0xd4, 0xcc, 0xa0, 0xb9, 0x47, 0xb3, 0xab, 0xee, 0xee, 0xf6, 0x4c, 0x28, 0xda, 0x42, 0x0d, 0x05, 0xde, 0x66, 0x5a, 0x55, 0x10, 0xfe, 0x55, 0xf7, 0x75, 0x98, 0xec, 0xad, 0x7f, 0xaa, 0x0a, 0xc2, 0x84, 0x80, 0x0b, 0x53, 0x82, 0x93, 0x94, 0xc4, 0xae, 0x90, 0xbe, 0x66, 0x67, 0x8f, 0xf0, 0x4a, 0xb4, 0x6d, 0xa2, 0x65, 0xae, 0x06, 0x40, 0x2d, 0x8c, 0x83, 0xca, 0xd8, 0x4d, 0x61, 0xa0, 0x51, 0xde, 0x02, 0x60, 0x55, 0x98, 0x88, 0xe7, 0x79, 0xf7, 0x4b, 0x72, 0xa5, 0xd7, 0x1c, 0x13, 0x2f, };
4507 static const u8 ed25519_196_test_vectors_expected_sig[] = {
4508 	0xc9, 0x34, 0x5e, 0xec, 0x2c, 0x4a, 0x0a, 0xec, 0x73, 0x23, 0x86, 0x49, 0x4a, 0x69, 0xa3, 0xfc, 0xe8, 0xb8, 0xa1, 0xbe, 0x36, 0x6b, 0xbe, 0xd1, 0x65, 0x9f, 0x13, 0x1f, 0xe9, 0x7c, 0xc0, 0x37, 0xfb, 0x1b, 0x7c, 0x1b, 0x68, 0xb0, 0xf3, 0x02, 0x39, 0x45, 0xd2, 0x00, 0x90, 0xa0, 0xcd, 0x2c, 0x15, 0x53, 0xa4, 0x7f, 0xae, 0xc4, 0xd6, 0x6f, 0xd8, 0x16, 0xce, 0x12, 0x11, 0x68, 0xf3, 0x09, };
4509 static const ec_test_case ed25519_196_test_case = {
4510 	.name = "EDDSA25519-SHA512/wei25519 196",
4511 	.ec_str_p = &wei25519_str_params,
4512 	.priv_key = ed25519_196_test_vectors_priv_key,
4513 	.priv_key_len = sizeof(ed25519_196_test_vectors_priv_key),
4514 	.nn_random = NULL,
4515 	.hash_type = SHA512,
4516 	.msg = (const char *)ed25519_196_test_vectors_message,
4517 	.msglen = sizeof(ed25519_196_test_vectors_message),
4518 	.sig_type = EDDSA25519,
4519 	.exp_sig = ed25519_196_test_vectors_expected_sig,
4520 	.exp_siglen = sizeof(ed25519_196_test_vectors_expected_sig),
4521 	.adata = NULL,
4522 	.adata_len = 0
4523 };
4524 
4525 /************************************************/
4526 static const u8 ed25519_197_test_vectors_priv_key[] = {
4527 	0xdc, 0x18, 0x5c, 0x2b, 0xa0, 0xb3, 0x78, 0xdf, 0xe5, 0xdd, 0xa5, 0x10, 0xc3, 0x2f, 0xef, 0xf5, 0x35, 0xca, 0x2e, 0x8a, 0x02, 0x43, 0x4b, 0x32, 0x6e, 0x01, 0x58, 0xbc, 0x87, 0x8e, 0x88, 0x48, };
4528 static const u8 ed25519_197_test_vectors_message[] = {
4529 	0xe2, 0x76, 0xb1, 0x19, 0x12, 0xcc, 0xa5, 0xa8, 0x4b, 0xba, 0x65, 0x0c, 0x17, 0x2a, 0xef, 0x3a, 0x4d, 0x5f, 0x91, 0xac, 0x72, 0x29, 0x13, 0xbb, 0x89, 0x1a, 0x3a, 0xb0, 0x42, 0x4a, 0xb0, 0x7e, 0xa7, 0x09, 0xcb, 0x8b, 0xba, 0x3a, 0x3d, 0x11, 0xf8, 0x2f, 0x51, 0xc2, 0xaf, 0x01, 0x62, 0xa8, 0x2f, 0x72, 0x19, 0xce, 0x27, 0xb3, 0x5a, 0x30, 0x50, 0x7d, 0x53, 0x6a, 0x93, 0x08, 0x17, 0xe4, 0x0f, 0x85, 0xa2, 0x2a, 0x5a, 0x43, 0x2b, 0x94, 0xd1, 0x92, 0xc3, 0xc8, 0x91, 0x17, 0x77, 0xcf, 0xdb, 0x7f, 0xe9, 0x37, 0xa6, 0x75, 0x02, 0x77, 0x0d, 0x6d, 0x75, 0x75, 0x3d, 0x3a, 0xe8, 0x82, 0x29, 0xe0, 0x8f, 0x1e, 0xd2, 0x3b, 0x43, 0x28, 0xd8, 0x62, 0xac, 0x61, 0x86, 0x3c, 0x06, 0x3e, 0xa9, 0x84, 0x8f, 0x8a, 0xb9, 0x6a, 0x02, 0x13, 0xd7, 0xb9, 0x36, 0xc4, 0x8f, 0xe7, 0x54, 0x83, 0x6c, 0x98, 0x48, 0x78, 0x59, 0xd1, 0x99, 0xb3, 0xd9, 0x40, 0x39, 0x27, 0x16, 0xa1, 0xd5, 0x69, 0xe6, 0xc0, 0xcb, 0x1b, 0xa9, 0x18, 0x93, 0x2c, 0xf8, 0x85, 0x25, 0xe2, 0x56, 0xc8, 0xab, 0xb1, 0x1a, 0xaf, 0x0b, 0x45, 0x46, 0x55, 0xd5, 0xdb, 0x55, 0x71, 0x3c, 0xeb, 0xba, 0x28, 0x7a, 0xe2, 0x02, 0x65, 0x1a, 0xc8, 0x72, 0xbf, 0xc8, 0x0f, 0xea, 0xa7, 0xe0, 0x0d, 0x47, 0xc0, 0xbe, 0x38, 0xe6, 0x58, 0xf7, 0xc5, };
4530 static const u8 ed25519_197_test_vectors_expected_sig[] = {
4531 	0xf1, 0xe4, 0x45, 0x14, 0xd2, 0xec, 0xbc, 0xc8, 0xd1, 0xa7, 0xe8, 0x4b, 0xf5, 0x84, 0xce, 0x73, 0x18, 0x35, 0xe9, 0x89, 0x4f, 0x88, 0x97, 0x4f, 0x09, 0x8d, 0x45, 0x6b, 0x60, 0x71, 0x8f, 0x57, 0x5e, 0xf4, 0xd8, 0x06, 0x2f, 0x21, 0x82, 0x50, 0x42, 0x50, 0xcf, 0x83, 0xbb, 0x2a, 0xf2, 0xa7, 0x9b, 0x1f, 0x58, 0xa6, 0xa9, 0x7b, 0xd9, 0x8d, 0xa4, 0x67, 0x13, 0x2d, 0x7b, 0xec, 0x2f, 0x05, };
4532 static const ec_test_case ed25519_197_test_case = {
4533 	.name = "EDDSA25519-SHA512/wei25519 197",
4534 	.ec_str_p = &wei25519_str_params,
4535 	.priv_key = ed25519_197_test_vectors_priv_key,
4536 	.priv_key_len = sizeof(ed25519_197_test_vectors_priv_key),
4537 	.nn_random = NULL,
4538 	.hash_type = SHA512,
4539 	.msg = (const char *)ed25519_197_test_vectors_message,
4540 	.msglen = sizeof(ed25519_197_test_vectors_message),
4541 	.sig_type = EDDSA25519,
4542 	.exp_sig = ed25519_197_test_vectors_expected_sig,
4543 	.exp_siglen = sizeof(ed25519_197_test_vectors_expected_sig),
4544 	.adata = NULL,
4545 	.adata_len = 0
4546 };
4547 
4548 /************************************************/
4549 static const u8 ed25519_198_test_vectors_priv_key[] = {
4550 	0x90, 0x72, 0x1c, 0x43, 0xbc, 0x36, 0x6f, 0x24, 0xbf, 0x4e, 0x8c, 0x99, 0x3e, 0x13, 0x80, 0x24, 0x68, 0x2f, 0x10, 0x29, 0xdb, 0xa3, 0x5a, 0xbe, 0xb0, 0xd6, 0x0c, 0x7f, 0xa7, 0x10, 0x02, 0x1c, };
4551 static const u8 ed25519_198_test_vectors_message[] = {
4552 	0x65, 0x1c, 0x96, 0x17, 0xca, 0xc9, 0x58, 0xc7, 0xed, 0xd4, 0xa5, 0xf3, 0xfe, 0xdf, 0xb8, 0x3d, 0xc9, 0x71, 0xab, 0xfb, 0xb6, 0x9a, 0x31, 0xe8, 0x98, 0xcc, 0xa8, 0x47, 0x2e, 0xf0, 0x68, 0x03, 0x4a, 0x6d, 0x23, 0x76, 0xee, 0x0e, 0x72, 0xd0, 0xa9, 0xbf, 0xee, 0x27, 0x57, 0x96, 0xc3, 0x79, 0x5a, 0xda, 0xc8, 0xeb, 0xe1, 0xd1, 0x2b, 0x66, 0xec, 0x26, 0x8f, 0x6b, 0x75, 0xfa, 0x39, 0x41, 0x15, 0x4f, 0x99, 0xe2, 0x23, 0xfa, 0xf2, 0xcb, 0xab, 0x5b, 0x92, 0xe2, 0xb3, 0xba, 0x7b, 0x79, 0xbe, 0x77, 0x00, 0xef, 0x9d, 0xba, 0x69, 0x25, 0x3c, 0xce, 0x53, 0x56, 0xb0, 0xc4, 0xe7, 0x47, 0x03, 0xcf, 0xca, 0xfd, 0xb5, 0x54, 0x68, 0x50, 0xb4, 0x62, 0x32, 0x67, 0x5c, 0x90, 0xc0, 0x2d, 0x5e, 0x42, 0x6d, 0x33, 0xd6, 0x0c, 0xeb, 0xf0, 0xc7, 0x93, 0x01, 0x82, 0x37, 0x9d, 0xbb, 0x00, 0x7f, 0x53, 0x61, 0x63, 0xc8, 0xdd, 0xbb, 0xd3, 0x15, 0x7b, 0xb2, 0xda, 0x62, 0x34, 0x01, 0x33, 0xf0, 0x0a, 0xe2, 0x68, 0x2e, 0xc6, 0xba, 0xa6, 0x41, 0x6b, 0x5a, 0x01, 0x52, 0x1c, 0xc1, 0x0e, 0x04, 0x69, 0x52, 0x95, 0xf2, 0xe5, 0xb9, 0x4c, 0x05, 0xf0, 0x03, 0x83, 0xff, 0xe9, 0x54, 0x83, 0x07, 0x97, 0xf6, 0xdf, 0x82, 0x31, 0x72, 0x53, 0x2f, 0x98, 0x16, 0x5f, 0xe3, 0x14, 0xab, 0x32, 0x59, 0x29, 0xaf, 0x83, 0x85, };
4553 static const u8 ed25519_198_test_vectors_expected_sig[] = {
4554 	0xd2, 0x06, 0x4a, 0x6d, 0x6c, 0x99, 0xc6, 0xc3, 0xf1, 0x52, 0xd2, 0xd4, 0x35, 0xf2, 0x4e, 0x34, 0xb5, 0x45, 0x9b, 0x08, 0x2e, 0xf1, 0x1e, 0x94, 0x4a, 0x77, 0xff, 0x54, 0xdd, 0xf9, 0x86, 0x27, 0x37, 0xec, 0xb2, 0xac, 0x8d, 0x54, 0x20, 0x7d, 0x36, 0xc5, 0x1a, 0xd4, 0x1f, 0x36, 0x49, 0x0a, 0x11, 0x1b, 0xa8, 0x0e, 0x12, 0x6b, 0xfe, 0xcb, 0x09, 0xde, 0xf6, 0xac, 0xcb, 0xdf, 0x88, 0x0e, };
4555 static const ec_test_case ed25519_198_test_case = {
4556 	.name = "EDDSA25519-SHA512/wei25519 198",
4557 	.ec_str_p = &wei25519_str_params,
4558 	.priv_key = ed25519_198_test_vectors_priv_key,
4559 	.priv_key_len = sizeof(ed25519_198_test_vectors_priv_key),
4560 	.nn_random = NULL,
4561 	.hash_type = SHA512,
4562 	.msg = (const char *)ed25519_198_test_vectors_message,
4563 	.msglen = sizeof(ed25519_198_test_vectors_message),
4564 	.sig_type = EDDSA25519,
4565 	.exp_sig = ed25519_198_test_vectors_expected_sig,
4566 	.exp_siglen = sizeof(ed25519_198_test_vectors_expected_sig),
4567 	.adata = NULL,
4568 	.adata_len = 0
4569 };
4570 
4571 /************************************************/
4572 static const u8 ed25519_199_test_vectors_priv_key[] = {
4573 	0x9c, 0xec, 0x24, 0x67, 0x58, 0xe4, 0x12, 0xe7, 0x37, 0x8b, 0x45, 0x79, 0xea, 0xfe, 0x9f, 0xac, 0x5a, 0x25, 0xd5, 0x40, 0x5f, 0x92, 0x70, 0xb5, 0xd7, 0xe5, 0x43, 0x41, 0x4e, 0xc3, 0xd5, 0xda, };
4574 static const u8 ed25519_199_test_vectors_message[] = {
4575 	0x17, 0xec, 0x9b, 0xd4, 0x7a, 0xdd, 0x6c, 0xcf, 0xbd, 0x78, 0x7a, 0xf0, 0xd9, 0x01, 0x3e, 0x9c, 0xc9, 0x79, 0xaa, 0xf8, 0x50, 0xe0, 0x94, 0x26, 0xd3, 0xb2, 0x8e, 0xdf, 0xd7, 0x12, 0x96, 0xeb, 0x31, 0xff, 0x8b, 0x21, 0xc5, 0xfe, 0x7b, 0xe0, 0x50, 0xf5, 0x36, 0x32, 0x4c, 0x3e, 0xc4, 0x88, 0x50, 0xe0, 0xb5, 0x08, 0xa3, 0x6b, 0xb4, 0xcb, 0x7e, 0x75, 0x4b, 0x32, 0x71, 0x83, 0xa1, 0xb3, 0x94, 0xd8, 0x8a, 0x79, 0x41, 0xd1, 0xce, 0x8d, 0xac, 0x62, 0xa5, 0xd8, 0x29, 0x18, 0x74, 0xd7, 0x84, 0x85, 0xe5, 0x1f, 0x29, 0xed, 0x05, 0x86, 0x5a, 0x20, 0x6e, 0x52, 0xec, 0xb1, 0x2c, 0x5d, 0x10, 0x7d, 0x4f, 0xf9, 0x6f, 0x25, 0xd3, 0xc5, 0xd1, 0x81, 0xd2, 0xc4, 0xba, 0x64, 0x63, 0x60, 0x0d, 0xb1, 0xcc, 0xa3, 0x28, 0x57, 0xfc, 0xf5, 0x97, 0xcb, 0xdf, 0xb2, 0xfd, 0xa2, 0x70, 0x8a, 0x8a, 0xba, 0x28, 0x1b, 0x43, 0xc3, 0xd2, 0x8c, 0x4a, 0x4e, 0x79, 0x83, 0x36, 0x15, 0x09, 0xf6, 0x1a, 0x10, 0x74, 0xe6, 0xf0, 0xad, 0x61, 0x01, 0xc7, 0xb5, 0x67, 0xee, 0x40, 0x78, 0xe9, 0x83, 0x9c, 0x47, 0xf4, 0x65, 0x31, 0xb7, 0x29, 0xff, 0x0e, 0xfe, 0xef, 0x7c, 0x9d, 0x1a, 0x8d, 0x83, 0x3d, 0x9c, 0x0f, 0x42, 0x81, 0x2a, 0x34, 0x18, 0x7c, 0x3a, 0x77, 0x8c, 0x16, 0x5c, 0x09, 0xd6, 0x45, 0x9c, 0x9c, 0x7c, 0xea, 0xa2, };
4576 static const u8 ed25519_199_test_vectors_expected_sig[] = {
4577 	0x9b, 0xad, 0x1e, 0x3b, 0x12, 0x79, 0xef, 0x65, 0x8f, 0x4d, 0x07, 0x16, 0x44, 0xc6, 0x3a, 0xe2, 0xb7, 0xa7, 0x80, 0x35, 0x7e, 0x9d, 0xc4, 0x26, 0xf1, 0x65, 0x0e, 0xc0, 0x63, 0x4d, 0xfc, 0x52, 0x0f, 0x8e, 0xda, 0x9d, 0xc8, 0xf1, 0x0a, 0xa7, 0x32, 0x4c, 0x59, 0x42, 0xd2, 0x34, 0x7f, 0xf8, 0x80, 0x2b, 0xd9, 0x0e, 0x95, 0xfc, 0xec, 0x31, 0x33, 0x52, 0xcd, 0xae, 0x64, 0xf3, 0x2a, 0x04, };
4578 static const ec_test_case ed25519_199_test_case = {
4579 	.name = "EDDSA25519-SHA512/wei25519 199",
4580 	.ec_str_p = &wei25519_str_params,
4581 	.priv_key = ed25519_199_test_vectors_priv_key,
4582 	.priv_key_len = sizeof(ed25519_199_test_vectors_priv_key),
4583 	.nn_random = NULL,
4584 	.hash_type = SHA512,
4585 	.msg = (const char *)ed25519_199_test_vectors_message,
4586 	.msglen = sizeof(ed25519_199_test_vectors_message),
4587 	.sig_type = EDDSA25519,
4588 	.exp_sig = ed25519_199_test_vectors_expected_sig,
4589 	.exp_siglen = sizeof(ed25519_199_test_vectors_expected_sig),
4590 	.adata = NULL,
4591 	.adata_len = 0
4592 };
4593 
4594 /************************************************/
4595 static const u8 ed25519_200_test_vectors_priv_key[] = {
4596 	0xd1, 0x40, 0x3f, 0x63, 0x20, 0x2e, 0x08, 0x05, 0x25, 0x84, 0x3b, 0xde, 0x25, 0x5e, 0xeb, 0x6b, 0x67, 0x83, 0xc1, 0xca, 0xae, 0x9d, 0x6e, 0xd0, 0x0b, 0xa6, 0x08, 0x05, 0xbe, 0xd1, 0x94, 0x1f, };
4597 static const u8 ed25519_200_test_vectors_message[] = {
4598 	0xc4, 0xf1, 0x7d, 0x44, 0x2f, 0xba, 0x4c, 0xa0, 0xdf, 0x8d, 0xc1, 0xd0, 0x62, 0x8d, 0x7d, 0x7f, 0x36, 0xb6, 0x0b, 0x57, 0x58, 0xd7, 0xc1, 0x3b, 0x80, 0xb8, 0xf9, 0x7a, 0x62, 0x12, 0x4d, 0x96, 0xa2, 0x3b, 0x27, 0x95, 0x65, 0x49, 0x5a, 0x8a, 0xcc, 0xab, 0x59, 0x97, 0x11, 0x5b, 0x13, 0xa4, 0xba, 0x22, 0x0a, 0x73, 0x95, 0x7e, 0xb7, 0x93, 0x05, 0x20, 0xac, 0xbb, 0xfb, 0x6f, 0x54, 0xcf, 0x68, 0x72, 0x6b, 0x64, 0x50, 0xc6, 0xff, 0xa9, 0x47, 0x0b, 0x05, 0x5e, 0xa2, 0x62, 0x91, 0x4e, 0x2b, 0xc6, 0x12, 0x63, 0x3f, 0x1a, 0xc3, 0xd0, 0x61, 0x8a, 0x23, 0xdf, 0xf1, 0x88, 0xa7, 0x33, 0xd7, 0x6b, 0xcb, 0xcc, 0x46, 0x0f, 0x52, 0xab, 0x61, 0xe1, 0x99, 0x38, 0xf9, 0xc8, 0xca, 0xaa, 0x79, 0x2c, 0x20, 0x8d, 0x1f, 0x6c, 0x75, 0x47, 0x28, 0x90, 0x5f, 0xda, 0x51, 0xd8, 0x81, 0xa3, 0x47, 0xa5, 0x3d, 0xa7, 0x44, 0xd3, 0xba, 0xad, 0xc0, 0xa7, 0x6c, 0x47, 0x4c, 0x55, 0x86, 0x80, 0x26, 0x90, 0x95, 0xf9, 0x08, 0x4a, 0x74, 0x47, 0x1d, 0x5c, 0x09, 0xff, 0xc2, 0x91, 0x41, 0xb5, 0xbf, 0xaf, 0x49, 0x54, 0xdf, 0xac, 0xbc, 0xa6, 0x63, 0xd0, 0x37, 0xb1, 0x7e, 0xbf, 0x95, 0x59, 0x88, 0x22, 0x33, 0xe5, 0xca, 0x5a, 0x8b, 0xf7, 0x5c, 0xca, 0x4f, 0xc9, 0xc5, 0xa4, 0x10, 0x9f, 0x32, 0xe1, 0x45, 0xf3, 0x85, 0x3b, 0x17, };
4599 static const u8 ed25519_200_test_vectors_expected_sig[] = {
4600 	0x8e, 0x60, 0xe7, 0x3c, 0x06, 0x38, 0x16, 0x79, 0x5e, 0x29, 0xf5, 0xd6, 0x4e, 0xce, 0x11, 0x59, 0xf1, 0xb5, 0xd5, 0x02, 0x1a, 0x6f, 0x8f, 0x65, 0x5e, 0x26, 0x1a, 0x4d, 0x00, 0x26, 0xf5, 0xb9, 0x4f, 0xf2, 0x92, 0x32, 0x50, 0x49, 0x9d, 0x99, 0x52, 0x98, 0x48, 0x05, 0x12, 0xe4, 0x12, 0x62, 0x76, 0xaa, 0x4a, 0x22, 0x6d, 0x01, 0x5a, 0x95, 0x82, 0x7b, 0x3c, 0xe6, 0x92, 0xe2, 0x33, 0x02, };
4601 static const ec_test_case ed25519_200_test_case = {
4602 	.name = "EDDSA25519-SHA512/wei25519 200",
4603 	.ec_str_p = &wei25519_str_params,
4604 	.priv_key = ed25519_200_test_vectors_priv_key,
4605 	.priv_key_len = sizeof(ed25519_200_test_vectors_priv_key),
4606 	.nn_random = NULL,
4607 	.hash_type = SHA512,
4608 	.msg = (const char *)ed25519_200_test_vectors_message,
4609 	.msglen = sizeof(ed25519_200_test_vectors_message),
4610 	.sig_type = EDDSA25519,
4611 	.exp_sig = ed25519_200_test_vectors_expected_sig,
4612 	.exp_siglen = sizeof(ed25519_200_test_vectors_expected_sig),
4613 	.adata = NULL,
4614 	.adata_len = 0
4615 };
4616 
4617 /************************************************/
4618 static const u8 ed25519_201_test_vectors_priv_key[] = {
4619 	0xbd, 0xf6, 0xbd, 0xc3, 0x1a, 0xb0, 0xb5, 0x31, 0x37, 0x84, 0x48, 0x3a, 0xbe, 0xca, 0x6e, 0xa5, 0xe9, 0xcd, 0xc6, 0x8f, 0x81, 0xb2, 0x1f, 0x35, 0x0d, 0x09, 0xc3, 0x90, 0x7b, 0xb9, 0xb6, 0xa1, };
4620 static const u8 ed25519_201_test_vectors_message[] = {
4621 	0x90, 0xa6, 0x6a, 0xaf, 0xa5, 0x64, 0x2a, 0x98, 0xe7, 0x9f, 0x0d, 0x88, 0x14, 0x70, 0x80, 0x16, 0x7b, 0x11, 0xe4, 0x46, 0x65, 0x18, 0xf1, 0x95, 0xcd, 0xdd, 0x89, 0x40, 0xd1, 0x2e, 0xe4, 0x91, 0x8d, 0x31, 0xa6, 0xd4, 0xcb, 0x77, 0xd0, 0xbf, 0x5a, 0xf2, 0x99, 0x83, 0xbb, 0xe5, 0x08, 0x56, 0x10, 0xa7, 0x9d, 0xaf, 0x0c, 0x75, 0xa7, 0x8c, 0xcb, 0xcf, 0xfb, 0xbd, 0xab, 0x21, 0x89, 0xc3, 0x94, 0xae, 0x24, 0xe2, 0x65, 0xbd, 0x8c, 0x55, 0xfd, 0x3f, 0x40, 0x98, 0xe1, 0xb1, 0x75, 0x57, 0x75, 0x49, 0x51, 0x8e, 0x7a, 0x4d, 0xcf, 0x74, 0x52, 0x08, 0x6d, 0xd1, 0x27, 0x8d, 0xd5, 0x8e, 0xa4, 0xc0, 0xaa, 0x69, 0x0e, 0x91, 0x79, 0x51, 0xef, 0x39, 0xfc, 0xff, 0x60, 0xcb, 0xfa, 0x1e, 0x90, 0x91, 0x0b, 0xab, 0x53, 0x74, 0x92, 0x8d, 0x47, 0x22, 0xf7, 0x02, 0xbf, 0x5a, 0xd6, 0x02, 0x8f, 0xfd, 0xa6, 0x54, 0x1f, 0xa5, 0xba, 0x1a, 0x37, 0x79, 0xec, 0x78, 0xb0, 0xa9, 0x5f, 0xe3, 0x85, 0x0c, 0x74, 0x8b, 0x6c, 0x8f, 0x42, 0xf3, 0x30, 0xec, 0x79, 0x54, 0x1a, 0x52, 0xa1, 0xcf, 0x57, 0xdb, 0x72, 0xdf, 0x4f, 0x92, 0xce, 0x7f, 0x74, 0x8a, 0xee, 0xf1, 0xaf, 0x33, 0xbc, 0x5a, 0xe0, 0xa8, 0x2c, 0x89, 0xdf, 0xf2, 0x16, 0xf2, 0x3a, 0xec, 0x16, 0x8a, 0x7d, 0xbb, 0x51, 0x0a, 0xa6, 0x32, 0xda, 0xab, 0xcc, 0x97, 0x1b, 0x3f, };
4622 static const u8 ed25519_201_test_vectors_expected_sig[] = {
4623 	0x38, 0xfa, 0xc6, 0x03, 0xed, 0x24, 0x6f, 0x83, 0x3f, 0x1c, 0x0f, 0xd4, 0x58, 0x56, 0x98, 0xb0, 0xa7, 0x13, 0x05, 0xef, 0xf0, 0xd1, 0x4a, 0x00, 0x49, 0xb3, 0xce, 0xf0, 0x73, 0xbd, 0x03, 0x6d, 0xd4, 0x51, 0xb3, 0xda, 0xba, 0xda, 0xae, 0xae, 0xa2, 0xae, 0xaf, 0x83, 0xd3, 0x95, 0x74, 0x6f, 0x4e, 0x86, 0x86, 0x6a, 0xda, 0x97, 0x1c, 0xbe, 0x48, 0x2e, 0xdb, 0x04, 0x19, 0x33, 0x2f, 0x0e, };
4624 static const ec_test_case ed25519_201_test_case = {
4625 	.name = "EDDSA25519-SHA512/wei25519 201",
4626 	.ec_str_p = &wei25519_str_params,
4627 	.priv_key = ed25519_201_test_vectors_priv_key,
4628 	.priv_key_len = sizeof(ed25519_201_test_vectors_priv_key),
4629 	.nn_random = NULL,
4630 	.hash_type = SHA512,
4631 	.msg = (const char *)ed25519_201_test_vectors_message,
4632 	.msglen = sizeof(ed25519_201_test_vectors_message),
4633 	.sig_type = EDDSA25519,
4634 	.exp_sig = ed25519_201_test_vectors_expected_sig,
4635 	.exp_siglen = sizeof(ed25519_201_test_vectors_expected_sig),
4636 	.adata = NULL,
4637 	.adata_len = 0
4638 };
4639 
4640 /************************************************/
4641 static const u8 ed25519_202_test_vectors_priv_key[] = {
4642 	0x57, 0xb3, 0xb1, 0x4a, 0xce, 0x1c, 0xd0, 0xcd, 0x60, 0x3e, 0x63, 0x28, 0xbd, 0x21, 0x9e, 0xe7, 0xd9, 0xd0, 0x94, 0x48, 0x7f, 0xa6, 0x68, 0xf2, 0x8a, 0xee, 0xc0, 0x2b, 0x43, 0xc9, 0x09, 0xa7, };
4643 static const u8 ed25519_202_test_vectors_message[] = {
4644 	0xb2, 0xe0, 0xde, 0xdd, 0x80, 0x2e, 0xed, 0x99, 0x6d, 0xbd, 0x58, 0x36, 0xbf, 0x86, 0x88, 0xb0, 0xd1, 0x20, 0x1b, 0xf5, 0x44, 0x2f, 0xf9, 0xbb, 0xd3, 0x51, 0xae, 0xef, 0xe1, 0xa0, 0xc2, 0x1f, 0xea, 0x2b, 0x5c, 0x9f, 0xe5, 0xed, 0xee, 0x47, 0xe9, 0x21, 0x09, 0x9b, 0x05, 0xae, 0xda, 0xa8, 0x03, 0x67, 0xc1, 0xce, 0x08, 0x82, 0x1d, 0x78, 0x3a, 0x5b, 0x64, 0xcf, 0x05, 0x9c, 0x0f, 0x43, 0x35, 0x08, 0x39, 0x86, 0xa5, 0xa6, 0xec, 0xff, 0x8c, 0x84, 0xfd, 0x40, 0xe0, 0xba, 0x5d, 0xd5, 0xe5, 0xd2, 0xf0, 0x11, 0x12, 0xa8, 0x4c, 0xe5, 0xcf, 0x8e, 0x0d, 0xb7, 0x8b, 0xeb, 0x18, 0x2d, 0x91, 0x39, 0xc0, 0xb0, 0xf3, 0xe0, 0x06, 0x0a, 0x3f, 0xa7, 0x38, 0x69, 0xe9, 0x64, 0x23, 0xf1, 0x70, 0xdf, 0x9a, 0xf1, 0xcb, 0x9c, 0x35, 0x56, 0x6d, 0x87, 0xdf, 0xf5, 0x42, 0x22, 0x3f, 0x6d, 0x43, 0x9b, 0xdb, 0x54, 0x72, 0x9d, 0x36, 0x6a, 0xff, 0x63, 0x7b, 0x0f, 0x36, 0xa5, 0xd1, 0x4b, 0x15, 0xd6, 0x12, 0xbd, 0x03, 0x07, 0x6c, 0xc4, 0xd0, 0x4c, 0x1f, 0x25, 0xb3, 0xba, 0x84, 0xe0, 0xd1, 0xfe, 0x47, 0x4e, 0x57, 0x18, 0xd1, 0xa1, 0x7d, 0x5a, 0x48, 0x84, 0x65, 0x66, 0x2e, 0xe4, 0xc3, 0xf6, 0x64, 0xb4, 0xc9, 0x27, 0x4b, 0x64, 0x9d, 0x78, 0xce, 0xa4, 0xe8, 0x52, 0x43, 0xf3, 0x71, 0x32, 0x39, 0x04, 0x8a, 0x90, 0x8c, 0xe3, 0xe1, };
4645 static const u8 ed25519_202_test_vectors_expected_sig[] = {
4646 	0xfc, 0x79, 0xfd, 0xc6, 0xd0, 0x90, 0x88, 0x7a, 0x61, 0xe4, 0x3c, 0x6b, 0x91, 0x87, 0xb6, 0x57, 0xd2, 0xe4, 0xd9, 0xcb, 0xaf, 0xd6, 0xe7, 0xca, 0xeb, 0x7e, 0xbd, 0xea, 0x84, 0x28, 0x25, 0xb7, 0x8f, 0xb9, 0x49, 0xd2, 0xc4, 0x9a, 0x0c, 0xf3, 0x8b, 0x6c, 0x73, 0x29, 0x6d, 0x82, 0xc8, 0xdd, 0xeb, 0x1f, 0xe2, 0xd4, 0x0a, 0xad, 0xdd, 0x79, 0x64, 0xda, 0x68, 0xac, 0xf8, 0xc6, 0x6f, 0x0e, };
4647 static const ec_test_case ed25519_202_test_case = {
4648 	.name = "EDDSA25519-SHA512/wei25519 202",
4649 	.ec_str_p = &wei25519_str_params,
4650 	.priv_key = ed25519_202_test_vectors_priv_key,
4651 	.priv_key_len = sizeof(ed25519_202_test_vectors_priv_key),
4652 	.nn_random = NULL,
4653 	.hash_type = SHA512,
4654 	.msg = (const char *)ed25519_202_test_vectors_message,
4655 	.msglen = sizeof(ed25519_202_test_vectors_message),
4656 	.sig_type = EDDSA25519,
4657 	.exp_sig = ed25519_202_test_vectors_expected_sig,
4658 	.exp_siglen = sizeof(ed25519_202_test_vectors_expected_sig),
4659 	.adata = NULL,
4660 	.adata_len = 0
4661 };
4662 
4663 /************************************************/
4664 static const u8 ed25519_203_test_vectors_priv_key[] = {
4665 	0x01, 0x8a, 0x2c, 0x3d, 0xee, 0xa5, 0x0a, 0xb5, 0x06, 0x75, 0x1f, 0x9c, 0x2a, 0xda, 0xad, 0xfd, 0x9e, 0x21, 0x92, 0x12, 0x16, 0x09, 0x93, 0x16, 0x84, 0xeb, 0x26, 0x5e, 0x19, 0x3e, 0x7f, 0x89, };
4666 static const u8 ed25519_203_test_vectors_message[] = {
4667 	0xcf, 0x78, 0x13, 0xef, 0xac, 0x12, 0xad, 0x1c, 0x7c, 0x73, 0x22, 0xcc, 0xbe, 0x54, 0xaa, 0x0e, 0x9a, 0x8b, 0xa4, 0xfd, 0x43, 0x45, 0xb0, 0x6e, 0x4c, 0xe7, 0xa3, 0x5c, 0x8b, 0x1c, 0xd5, 0xe3, 0xf7, 0xf0, 0x68, 0x85, 0x33, 0x84, 0x9b, 0xa2, 0xcf, 0x4c, 0x75, 0xb6, 0xf2, 0x09, 0x26, 0xa1, 0x19, 0x4a, 0x72, 0xdf, 0x0e, 0x1b, 0x1b, 0x34, 0x45, 0x6a, 0x21, 0x33, 0x11, 0x2d, 0x00, 0x67, 0x22, 0xfe, 0x81, 0x1d, 0x5e, 0x40, 0xc4, 0x12, 0x11, 0x59, 0xde, 0xd8, 0x89, 0x90, 0xc0, 0xac, 0x2b, 0xfd, 0x34, 0xf3, 0x5a, 0xf4, 0xf0, 0x7c, 0xc4, 0x02, 0xe9, 0xa3, 0x81, 0xa6, 0x75, 0xd0, 0x3f, 0xec, 0x7e, 0xc4, 0x38, 0xc4, 0xad, 0x9d, 0x92, 0x9a, 0xec, 0x8f, 0x24, 0x2d, 0xef, 0x02, 0x3c, 0x99, 0x3c, 0x9e, 0x8b, 0xa1, 0x8c, 0x74, 0x28, 0xe8, 0x8f, 0xde, 0x68, 0xa4, 0x71, 0x1e, 0x50, 0x6d, 0x79, 0x69, 0xf6, 0x3c, 0x8e, 0x0b, 0xc8, 0x3f, 0xf0, 0xde, 0x4e, 0x13, 0x36, 0x10, 0x6c, 0x05, 0xe0, 0x9d, 0x59, 0x22, 0x40, 0x0e, 0x8a, 0x81, 0xbf, 0x54, 0x88, 0x56, 0x67, 0x89, 0x97, 0x85, 0x88, 0x2b, 0x70, 0xf2, 0x0d, 0xd8, 0xfb, 0x1e, 0x75, 0xf5, 0x85, 0x5b, 0x76, 0x5a, 0x25, 0x6d, 0xa4, 0x34, 0x1b, 0xf2, 0x3e, 0xa0, 0xff, 0xa1, 0x8a, 0xad, 0xda, 0x38, 0x18, 0x16, 0x94, 0x60, 0x01, 0x04, 0x56, 0x69, 0xc8, 0xd0, 0x4d, 0xf0, };
4668 static const u8 ed25519_203_test_vectors_expected_sig[] = {
4669 	0x7a, 0x44, 0xe6, 0xa3, 0x19, 0x32, 0xde, 0xe6, 0xdc, 0x2d, 0x83, 0x94, 0xe2, 0x9a, 0x65, 0x51, 0xd1, 0x3e, 0x6c, 0x6f, 0xfd, 0xfa, 0x21, 0x8f, 0xa5, 0xb9, 0x98, 0x66, 0x8d, 0x84, 0x39, 0xdb, 0x5e, 0x05, 0x37, 0x9f, 0xbf, 0xa0, 0xda, 0x5b, 0x56, 0x3e, 0xd9, 0x66, 0x43, 0x5a, 0xe2, 0xc5, 0x4e, 0x3a, 0xd1, 0x6e, 0x1a, 0x9f, 0xca, 0x1f, 0x5a, 0x15, 0x7a, 0x08, 0x07, 0x04, 0xab, 0x03, };
4670 static const ec_test_case ed25519_203_test_case = {
4671 	.name = "EDDSA25519-SHA512/wei25519 203",
4672 	.ec_str_p = &wei25519_str_params,
4673 	.priv_key = ed25519_203_test_vectors_priv_key,
4674 	.priv_key_len = sizeof(ed25519_203_test_vectors_priv_key),
4675 	.nn_random = NULL,
4676 	.hash_type = SHA512,
4677 	.msg = (const char *)ed25519_203_test_vectors_message,
4678 	.msglen = sizeof(ed25519_203_test_vectors_message),
4679 	.sig_type = EDDSA25519,
4680 	.exp_sig = ed25519_203_test_vectors_expected_sig,
4681 	.exp_siglen = sizeof(ed25519_203_test_vectors_expected_sig),
4682 	.adata = NULL,
4683 	.adata_len = 0
4684 };
4685 
4686 /************************************************/
4687 static const u8 ed25519_204_test_vectors_priv_key[] = {
4688 	0xbe, 0xa4, 0x45, 0xe9, 0xb6, 0xd3, 0xf2, 0x12, 0x35, 0x91, 0x2c, 0xd6, 0xc4, 0x2e, 0xc0, 0x57, 0x72, 0x97, 0xca, 0x20, 0xa1, 0x03, 0x57, 0x88, 0x0c, 0x2b, 0x84, 0x6d, 0xd8, 0xe2, 0xcc, 0x77, };
4689 static const u8 ed25519_204_test_vectors_message[] = {
4690 	0x47, 0x43, 0xc7, 0xc0, 0x99, 0xab, 0x81, 0x59, 0x27, 0xb3, 0x67, 0x4d, 0x00, 0x54, 0xb6, 0xde, 0x59, 0xaf, 0x28, 0x11, 0xab, 0xc2, 0xcf, 0x7f, 0xde, 0x08, 0xf6, 0x29, 0x29, 0x18, 0x5a, 0xdc, 0x23, 0x8f, 0xad, 0xd5, 0xe7, 0x5a, 0xe3, 0xba, 0x00, 0x36, 0xff, 0x56, 0x5a, 0x79, 0x40, 0x5b, 0x42, 0x4f, 0x65, 0x52, 0x33, 0x1e, 0x27, 0x89, 0xd9, 0x70, 0x9a, 0xc1, 0xec, 0xbd, 0x83, 0x9a, 0xa1, 0xe9, 0x1c, 0x85, 0x48, 0x17, 0x59, 0x79, 0x58, 0xcc, 0x4b, 0xd9, 0x1d, 0x07, 0x37, 0x75, 0x07, 0xc2, 0xc8, 0xd3, 0xc0, 0x06, 0xcf, 0xeb, 0x6c, 0x0a, 0x6c, 0x5a, 0x50, 0xee, 0xe1, 0x15, 0xe2, 0x11, 0x53, 0xdd, 0x19, 0x8e, 0xa0, 0xa3, 0xaf, 0xf6, 0x2b, 0x70, 0x75, 0xd5, 0xa4, 0x61, 0x78, 0x87, 0x83, 0xf0, 0x50, 0xe6, 0x59, 0xc5, 0x72, 0x96, 0x3d, 0x7a, 0x59, 0xe5, 0xaf, 0xaa, 0x2b, 0x9c, 0x50, 0x1f, 0x43, 0xc6, 0xac, 0x08, 0xab, 0x47, 0x97, 0xc4, 0x56, 0x6d, 0x22, 0xb9, 0x3c, 0xdf, 0x65, 0xa9, 0x9a, 0x2a, 0x1d, 0x63, 0x8e, 0x79, 0xf7, 0x2b, 0x5f, 0x46, 0x31, 0xfe, 0x5e, 0x9e, 0x5f, 0x96, 0x8f, 0x6d, 0xb7, 0xa1, 0x88, 0x0d, 0xf5, 0x1d, 0x8f, 0xeb, 0xc1, 0x49, 0x42, 0x67, 0x2f, 0x8e, 0xa6, 0xfc, 0x3a, 0x72, 0x81, 0x4a, 0x44, 0xd6, 0x6d, 0x14, 0x84, 0x20, 0xa6, 0x90, 0x00, 0xf6, 0x8c, 0x33, 0x0d, 0xe5, 0xb8, 0x0f, 0xc6, };
4691 static const u8 ed25519_204_test_vectors_expected_sig[] = {
4692 	0x69, 0x64, 0xb9, 0xc5, 0x90, 0x3e, 0x74, 0xe9, 0x93, 0x28, 0xac, 0xef, 0x03, 0x65, 0x58, 0xee, 0xcd, 0x33, 0x69, 0x15, 0x0a, 0x52, 0xe2, 0xcb, 0xad, 0x4b, 0xbb, 0x97, 0xd4, 0x61, 0xb3, 0xdf, 0xc6, 0xb3, 0xe8, 0x45, 0x58, 0x13, 0xa4, 0xf4, 0xbd, 0xca, 0x46, 0x30, 0x2e, 0x02, 0xe6, 0x83, 0xec, 0xea, 0x18, 0x20, 0x17, 0x1c, 0x53, 0x8e, 0x54, 0xc3, 0xde, 0x6c, 0x95, 0x4a, 0xa4, 0x07, };
4693 static const ec_test_case ed25519_204_test_case = {
4694 	.name = "EDDSA25519-SHA512/wei25519 204",
4695 	.ec_str_p = &wei25519_str_params,
4696 	.priv_key = ed25519_204_test_vectors_priv_key,
4697 	.priv_key_len = sizeof(ed25519_204_test_vectors_priv_key),
4698 	.nn_random = NULL,
4699 	.hash_type = SHA512,
4700 	.msg = (const char *)ed25519_204_test_vectors_message,
4701 	.msglen = sizeof(ed25519_204_test_vectors_message),
4702 	.sig_type = EDDSA25519,
4703 	.exp_sig = ed25519_204_test_vectors_expected_sig,
4704 	.exp_siglen = sizeof(ed25519_204_test_vectors_expected_sig),
4705 	.adata = NULL,
4706 	.adata_len = 0
4707 };
4708 
4709 /************************************************/
4710 static const u8 ed25519_205_test_vectors_priv_key[] = {
4711 	0x64, 0x47, 0x54, 0x0e, 0xd7, 0xbe, 0x0a, 0x11, 0xc2, 0xa8, 0xde, 0x79, 0x3d, 0x83, 0xc6, 0xe2, 0x44, 0x98, 0x3d, 0xb1, 0x8d, 0x78, 0xec, 0x9d, 0x75, 0xf1, 0x72, 0x9c, 0x92, 0xe0, 0xfd, 0xf1, };
4712 static const u8 ed25519_205_test_vectors_message[] = {
4713 	0xa4, 0x38, 0x1c, 0x76, 0x38, 0xc4, 0x87, 0x99, 0xe9, 0xb5, 0xc4, 0x3f, 0x67, 0xfc, 0x3a, 0xa3, 0xcb, 0xb5, 0xec, 0x42, 0x34, 0xf3, 0x7e, 0x70, 0xcc, 0xcc, 0xce, 0xd1, 0x62, 0x7a, 0x57, 0x68, 0x3d, 0x1e, 0x53, 0xf4, 0xe0, 0x88, 0x3d, 0x8b, 0x46, 0x2b, 0xf8, 0x3f, 0x13, 0x08, 0x63, 0x03, 0x68, 0xc8, 0x9b, 0x49, 0x15, 0x33, 0xdd, 0xb8, 0xc9, 0xa5, 0xb9, 0xe8, 0x15, 0x50, 0x02, 0xfd, 0xd5, 0x81, 0xa9, 0xa5, 0xbe, 0x0e, 0x43, 0x0b, 0x90, 0x86, 0xa6, 0xbe, 0xac, 0x47, 0x20, 0x21, 0x0f, 0x87, 0xb1, 0x4e, 0x86, 0x2d, 0x97, 0xe5, 0xcc, 0x69, 0x28, 0x67, 0x86, 0xa7, 0x58, 0x67, 0x23, 0xf2, 0x31, 0xef, 0x0e, 0x3e, 0x1b, 0x93, 0x2d, 0xbb, 0xa3, 0xa1, 0x8a, 0x0c, 0xb2, 0x21, 0xcb, 0x07, 0xf8, 0x0e, 0x6a, 0x8e, 0x13, 0x00, 0x05, 0x6c, 0x13, 0xe7, 0x02, 0xb2, 0x3b, 0xfb, 0x32, 0x50, 0xec, 0x7c, 0xc8, 0x64, 0xd5, 0xc7, 0xec, 0x57, 0x86, 0x24, 0x07, 0x09, 0xc5, 0x60, 0x24, 0xea, 0x6b, 0xe5, 0xf7, 0xb1, 0x5a, 0x4f, 0xa5, 0x55, 0x5e, 0x39, 0xa7, 0x44, 0xa1, 0xdc, 0x55, 0x7d, 0xf5, 0xb9, 0x48, 0xdb, 0x22, 0x0b, 0x3d, 0x57, 0x45, 0x74, 0x66, 0x91, 0xda, 0xcb, 0x44, 0x21, 0x64, 0x1c, 0xdc, 0xc1, 0x2e, 0x7e, 0xc0, 0x45, 0x02, 0x93, 0xf1, 0x9e, 0xc5, 0x7b, 0x09, 0xcf, 0xf1, 0x35, 0x84, 0x7a, 0xab, 0xe4, 0x46, 0xa6, 0x13, 0x32, };
4714 static const u8 ed25519_205_test_vectors_expected_sig[] = {
4715 	0x3a, 0xb5, 0xf8, 0x8e, 0x2f, 0x72, 0x76, 0xb5, 0xb6, 0x58, 0x3d, 0xff, 0xba, 0x56, 0x39, 0x99, 0x3a, 0x90, 0x5d, 0xbf, 0x9b, 0x88, 0xce, 0xea, 0xaa, 0xae, 0x33, 0x35, 0x80, 0x0e, 0x4a, 0x5f, 0x10, 0xf8, 0x3d, 0xa6, 0xd6, 0x22, 0x5a, 0x8d, 0xbe, 0x99, 0xae, 0x80, 0x07, 0x50, 0x09, 0xdd, 0x50, 0x87, 0x86, 0xb3, 0x97, 0x51, 0x13, 0xdb, 0x47, 0x8e, 0x14, 0xba, 0x10, 0x1b, 0xee, 0x0f, };
4716 static const ec_test_case ed25519_205_test_case = {
4717 	.name = "EDDSA25519-SHA512/wei25519 205",
4718 	.ec_str_p = &wei25519_str_params,
4719 	.priv_key = ed25519_205_test_vectors_priv_key,
4720 	.priv_key_len = sizeof(ed25519_205_test_vectors_priv_key),
4721 	.nn_random = NULL,
4722 	.hash_type = SHA512,
4723 	.msg = (const char *)ed25519_205_test_vectors_message,
4724 	.msglen = sizeof(ed25519_205_test_vectors_message),
4725 	.sig_type = EDDSA25519,
4726 	.exp_sig = ed25519_205_test_vectors_expected_sig,
4727 	.exp_siglen = sizeof(ed25519_205_test_vectors_expected_sig),
4728 	.adata = NULL,
4729 	.adata_len = 0
4730 };
4731 
4732 /************************************************/
4733 static const u8 ed25519_206_test_vectors_priv_key[] = {
4734 	0x0c, 0x58, 0x7a, 0x81, 0x1a, 0xdd, 0x88, 0xb9, 0x94, 0x45, 0x8c, 0x3c, 0x80, 0x8a, 0xc4, 0xe3, 0xa8, 0x3a, 0xfa, 0xb2, 0x6d, 0x4c, 0xff, 0x5c, 0x96, 0x1b, 0x9d, 0xf0, 0xb5, 0xc8, 0x33, 0x44, };
4735 static const u8 ed25519_206_test_vectors_message[] = {
4736 	0xf5, 0x6d, 0xc6, 0xb7, 0x60, 0x76, 0x32, 0x5b, 0x21, 0x26, 0xed, 0x11, 0xd1, 0xf0, 0x9d, 0xec, 0xef, 0x9d, 0x15, 0xc3, 0x1d, 0x0e, 0x90, 0xcd, 0xb1, 0xa2, 0x7e, 0x08, 0x9c, 0xc5, 0x63, 0x29, 0xf6, 0xec, 0x3f, 0x66, 0x5e, 0xb6, 0x73, 0x9e, 0xc5, 0x67, 0x8b, 0x3f, 0x37, 0xee, 0x1f, 0xb3, 0x7d, 0xeb, 0x9e, 0x24, 0x00, 0x92, 0xb7, 0xa8, 0x8f, 0xd2, 0x55, 0x25, 0xac, 0xd5, 0x5e, 0x29, 0x4e, 0xb1, 0x04, 0x6f, 0x9b, 0x1b, 0x69, 0xa8, 0x47, 0xeb, 0x9c, 0xeb, 0x7b, 0x15, 0x93, 0xb9, 0xf6, 0x97, 0x8e, 0xf6, 0x18, 0xc1, 0x5d, 0xe4, 0xe0, 0x59, 0xec, 0xc3, 0xbf, 0xda, 0x32, 0x97, 0xa1, 0x9c, 0x2d, 0xf2, 0x02, 0xad, 0xf7, 0x21, 0x55, 0xcf, 0x21, 0xea, 0xbd, 0x03, 0x94, 0x8d, 0xf1, 0x51, 0x98, 0xe8, 0xa6, 0x8b, 0x08, 0x84, 0xf9, 0x3a, 0xd5, 0xe3, 0x6e, 0xb0, 0x98, 0x3c, 0xca, 0x30, 0xe4, 0x5a, 0x8b, 0x4b, 0x5f, 0xb8, 0x13, 0x6f, 0xde, 0xa8, 0xa3, 0x34, 0x1d, 0xd7, 0x87, 0x75, 0x40, 0xa5, 0x57, 0xde, 0xbf, 0x75, 0x30, 0xcc, 0x33, 0xae, 0xee, 0xf6, 0x27, 0x1c, 0x3f, 0x0a, 0xf6, 0xd0, 0x97, 0x87, 0xe8, 0x15, 0xf2, 0xf1, 0xdd, 0x25, 0xce, 0x4d, 0x2f, 0xd0, 0x9f, 0xfa, 0x9f, 0x53, 0x08, 0x1b, 0x46, 0x9c, 0x50, 0x0d, 0xa4, 0xd4, 0x41, 0x80, 0xc0, 0x4e, 0xb1, 0x86, 0x93, 0x29, 0xcb, 0xf2, 0xd8, 0x23, 0x18, 0x7e, 0x83, 0x1c, 0x24, };
4737 static const u8 ed25519_206_test_vectors_expected_sig[] = {
4738 	0x33, 0xb4, 0xf4, 0x27, 0x4f, 0x20, 0x00, 0x8a, 0x72, 0x1d, 0x1e, 0x8d, 0x05, 0x4a, 0x2b, 0x4e, 0x95, 0x32, 0x7e, 0x38, 0xbb, 0x07, 0xb3, 0x3c, 0x4b, 0xee, 0x7e, 0x1c, 0xe0, 0x20, 0xa4, 0x42, 0xfb, 0x26, 0x27, 0xed, 0xa3, 0xb7, 0xac, 0x93, 0xcd, 0x3a, 0xb0, 0xb1, 0x2b, 0x99, 0x93, 0x5a, 0x1a, 0x92, 0x33, 0x11, 0x16, 0x04, 0xda, 0x4a, 0xcf, 0xfb, 0x53, 0x15, 0xb9, 0x07, 0x12, 0x0b, };
4739 static const ec_test_case ed25519_206_test_case = {
4740 	.name = "EDDSA25519-SHA512/wei25519 206",
4741 	.ec_str_p = &wei25519_str_params,
4742 	.priv_key = ed25519_206_test_vectors_priv_key,
4743 	.priv_key_len = sizeof(ed25519_206_test_vectors_priv_key),
4744 	.nn_random = NULL,
4745 	.hash_type = SHA512,
4746 	.msg = (const char *)ed25519_206_test_vectors_message,
4747 	.msglen = sizeof(ed25519_206_test_vectors_message),
4748 	.sig_type = EDDSA25519,
4749 	.exp_sig = ed25519_206_test_vectors_expected_sig,
4750 	.exp_siglen = sizeof(ed25519_206_test_vectors_expected_sig),
4751 	.adata = NULL,
4752 	.adata_len = 0
4753 };
4754 
4755 /************************************************/
4756 static const u8 ed25519_207_test_vectors_priv_key[] = {
4757 	0x66, 0xcf, 0x40, 0x1a, 0x21, 0x42, 0xfc, 0xf4, 0xa8, 0x01, 0x80, 0x46, 0xcf, 0x41, 0x40, 0xbc, 0xa1, 0x8d, 0x76, 0xef, 0x62, 0x66, 0xe7, 0xa0, 0x24, 0x75, 0x7d, 0xf1, 0x72, 0xa5, 0xd6, 0x53, };
4758 static const u8 ed25519_207_test_vectors_message[] = {
4759 	0xda, 0xa8, 0xef, 0xb3, 0xfd, 0x41, 0xf1, 0x2f, 0xbc, 0x55, 0xbd, 0x60, 0x46, 0x41, 0x57, 0xa2, 0x6d, 0x71, 0x86, 0x32, 0xd8, 0x82, 0xae, 0xdb, 0x6b, 0xf9, 0x8e, 0x47, 0xdd, 0x23, 0x37, 0x87, 0x9e, 0x0b, 0x46, 0x45, 0x2e, 0x06, 0x2e, 0x6d, 0xfb, 0xff, 0x3e, 0x7b, 0xca, 0x72, 0x89, 0xe4, 0xef, 0x6b, 0x3f, 0x41, 0xd4, 0xb0, 0x3b, 0xdc, 0x2c, 0x84, 0x2a, 0xfe, 0x97, 0xf3, 0x02, 0x98, 0x83, 0xed, 0x45, 0xf6, 0x05, 0x4d, 0xde, 0x96, 0x90, 0x64, 0x9a, 0xbb, 0x2b, 0x8d, 0xc2, 0x8f, 0x5f, 0xe8, 0xce, 0xcf, 0x80, 0xfc, 0x1e, 0xa4, 0x11, 0xbf, 0xc4, 0x0b, 0xbf, 0x4f, 0xd2, 0x0b, 0x21, 0x8c, 0xf4, 0x7e, 0xa8, 0xee, 0x11, 0x8d, 0x4d, 0x5a, 0xef, 0xa5, 0xc1, 0xbf, 0xa0, 0x8a, 0x8f, 0xb1, 0xb3, 0x0d, 0x6d, 0xe0, 0x97, 0x7c, 0xd1, 0x5e, 0x50, 0x29, 0x2c, 0x50, 0x1f, 0x2e, 0x71, 0xce, 0x27, 0x40, 0xff, 0x82, 0x8b, 0x84, 0x32, 0xda, 0x5a, 0x59, 0x4b, 0xab, 0x52, 0x23, 0x76, 0x0b, 0x64, 0x79, 0x2e, 0xd3, 0xa6, 0x9d, 0xd7, 0x5e, 0x28, 0x29, 0x23, 0x49, 0x43, 0x65, 0x65, 0x13, 0xdf, 0x1a, 0x17, 0xa2, 0xa0, 0x67, 0xa9, 0xa8, 0xea, 0xa6, 0x4e, 0x19, 0x56, 0x9f, 0x46, 0x93, 0x9d, 0x34, 0xb9, 0x92, 0x71, 0xae, 0x50, 0xa4, 0x7d, 0x7d, 0xbc, 0xa3, 0x62, 0x0c, 0x81, 0x25, 0x5b, 0x0e, 0x1f, 0xd1, 0xf3, 0xce, 0xc8, 0x51, 0xf1, 0xb1, 0x1b, 0x35, };
4760 static const u8 ed25519_207_test_vectors_expected_sig[] = {
4761 	0xd6, 0xb0, 0xe8, 0x0e, 0x60, 0xbc, 0x1b, 0x29, 0xab, 0x8f, 0x74, 0x80, 0x8f, 0xc4, 0x60, 0x84, 0x77, 0x95, 0xcc, 0xb8, 0x87, 0xba, 0xc0, 0xec, 0xaa, 0x8e, 0x13, 0x52, 0x97, 0xa8, 0x50, 0x97, 0x71, 0x2b, 0x24, 0xb0, 0xa1, 0xfb, 0xaf, 0x7a, 0x67, 0xc5, 0xd5, 0x30, 0xa4, 0x7d, 0x06, 0x43, 0xfc, 0x87, 0x02, 0xc0, 0x59, 0xd2, 0x15, 0xfb, 0x11, 0x2d, 0xbe, 0x47, 0x5e, 0x5b, 0xca, 0x0d, };
4762 static const ec_test_case ed25519_207_test_case = {
4763 	.name = "EDDSA25519-SHA512/wei25519 207",
4764 	.ec_str_p = &wei25519_str_params,
4765 	.priv_key = ed25519_207_test_vectors_priv_key,
4766 	.priv_key_len = sizeof(ed25519_207_test_vectors_priv_key),
4767 	.nn_random = NULL,
4768 	.hash_type = SHA512,
4769 	.msg = (const char *)ed25519_207_test_vectors_message,
4770 	.msglen = sizeof(ed25519_207_test_vectors_message),
4771 	.sig_type = EDDSA25519,
4772 	.exp_sig = ed25519_207_test_vectors_expected_sig,
4773 	.exp_siglen = sizeof(ed25519_207_test_vectors_expected_sig),
4774 	.adata = NULL,
4775 	.adata_len = 0
4776 };
4777 
4778 /************************************************/
4779 static const u8 ed25519_208_test_vectors_priv_key[] = {
4780 	0x5d, 0xbf, 0x88, 0x5a, 0xa5, 0x98, 0xe8, 0x95, 0x57, 0x1f, 0x5f, 0x65, 0x09, 0x0b, 0x72, 0x32, 0x3e, 0x9d, 0x70, 0xb0, 0xf5, 0x81, 0x10, 0x68, 0x7a, 0xfb, 0xbc, 0x38, 0x3a, 0xfe, 0xdc, 0xac, };
4781 static const u8 ed25519_208_test_vectors_message[] = {
4782 	0x1e, 0x0b, 0x6c, 0xf1, 0x5c, 0xe0, 0x33, 0x37, 0x17, 0x9c, 0x02, 0xd6, 0x54, 0x08, 0xdf, 0x5b, 0xe9, 0x20, 0x0c, 0x37, 0x82, 0xb6, 0x00, 0x4a, 0xf9, 0x4e, 0xa4, 0xde, 0xcb, 0x25, 0x79, 0x99, 0xd6, 0xfd, 0xff, 0x30, 0x1d, 0x11, 0xd0, 0x0c, 0x98, 0xc3, 0x72, 0xfa, 0xc0, 0xd0, 0x26, 0xcb, 0x56, 0xdf, 0xef, 0xe3, 0xde, 0xf7, 0xeb, 0x99, 0xac, 0x68, 0xd6, 0x96, 0x8e, 0x17, 0x12, 0x4d, 0x84, 0x46, 0xf5, 0x3e, 0x8d, 0x2d, 0x3d, 0xd8, 0x90, 0xd3, 0x7a, 0x23, 0xc7, 0xe0, 0xb8, 0x3a, 0x48, 0x4b, 0x3c, 0x93, 0xbd, 0xdf, 0x6c, 0x11, 0x8e, 0x02, 0x81, 0x95, 0x9d, 0x27, 0xbd, 0x87, 0xd3, 0x7e, 0x84, 0x3d, 0x57, 0x85, 0xf4, 0xa4, 0x07, 0x71, 0x39, 0x84, 0x94, 0xe6, 0xc4, 0x32, 0x2f, 0xbb, 0x67, 0x5c, 0x1d, 0x47, 0x93, 0x21, 0x03, 0x21, 0x48, 0xf7, 0xfe, 0x52, 0x56, 0x4d, 0xdf, 0x7a, 0xe7, 0xac, 0x26, 0x9d, 0x0c, 0xd2, 0xe5, 0x52, 0xfe, 0xc5, 0x89, 0xae, 0xae, 0x0f, 0xb9, 0x3f, 0xe3, 0xee, 0xae, 0xf0, 0x85, 0x60, 0x96, 0xcf, 0x4f, 0x6b, 0x34, 0x97, 0xe7, 0x23, 0x5c, 0xc8, 0x49, 0x4d, 0x81, 0x0a, 0x0b, 0x46, 0xc5, 0xea, 0xc8, 0x7f, 0x18, 0x7e, 0x50, 0x5b, 0xb7, 0x76, 0x4f, 0x80, 0x45, 0xc9, 0x54, 0x19, 0x83, 0xf7, 0xb0, 0x25, 0x69, 0x80, 0x09, 0xa2, 0x3d, 0x9d, 0xf0, 0xbd, 0x1a, 0x47, 0x3c, 0xbe, 0xe4, 0xcf, 0x5e, 0x94, 0x88, 0xec, 0xbc, };
4783 static const u8 ed25519_208_test_vectors_expected_sig[] = {
4784 	0xe1, 0x42, 0x9d, 0xab, 0x2e, 0x42, 0xcd, 0x03, 0x5b, 0x7f, 0xc6, 0x02, 0xef, 0xd6, 0xba, 0xf9, 0x47, 0x06, 0xf1, 0x6e, 0xaf, 0x2f, 0x8b, 0x5f, 0xed, 0x32, 0x92, 0x39, 0xe8, 0x75, 0x60, 0x5f, 0xb1, 0x72, 0xf5, 0xdd, 0x9a, 0xe2, 0xbc, 0x2e, 0xb4, 0x2e, 0xb4, 0x74, 0x56, 0x7e, 0x29, 0x2f, 0x52, 0x06, 0xe8, 0x2e, 0x69, 0x4b, 0xca, 0x0d, 0x6d, 0x43, 0x3b, 0x86, 0x76, 0x34, 0xcb, 0x0d, };
4785 static const ec_test_case ed25519_208_test_case = {
4786 	.name = "EDDSA25519-SHA512/wei25519 208",
4787 	.ec_str_p = &wei25519_str_params,
4788 	.priv_key = ed25519_208_test_vectors_priv_key,
4789 	.priv_key_len = sizeof(ed25519_208_test_vectors_priv_key),
4790 	.nn_random = NULL,
4791 	.hash_type = SHA512,
4792 	.msg = (const char *)ed25519_208_test_vectors_message,
4793 	.msglen = sizeof(ed25519_208_test_vectors_message),
4794 	.sig_type = EDDSA25519,
4795 	.exp_sig = ed25519_208_test_vectors_expected_sig,
4796 	.exp_siglen = sizeof(ed25519_208_test_vectors_expected_sig),
4797 	.adata = NULL,
4798 	.adata_len = 0
4799 };
4800 
4801 /************************************************/
4802 static const u8 ed25519_209_test_vectors_priv_key[] = {
4803 	0x84, 0xb3, 0xae, 0xdd, 0x47, 0x97, 0xa5, 0x65, 0xc3, 0x51, 0xde, 0x7d, 0xfa, 0x07, 0x00, 0xb9, 0xff, 0x7c, 0x4d, 0x72, 0x91, 0xc8, 0x80, 0x8d, 0x8a, 0x8a, 0xe5, 0x05, 0xcd, 0xd2, 0x25, 0x90, };
4804 static const u8 ed25519_209_test_vectors_message[] = {
4805 	0x53, 0x25, 0x67, 0xff, 0xa5, 0x3b, 0x5c, 0x0f, 0xcd, 0x29, 0xc3, 0x94, 0x99, 0xd2, 0xe7, 0x8e, 0xcd, 0x20, 0xe6, 0x31, 0x23, 0x49, 0x92, 0x40, 0xe7, 0x75, 0x08, 0x8b, 0x39, 0x4d, 0xc6, 0x5c, 0x8b, 0xaa, 0xa0, 0xfe, 0x8f, 0x6a, 0xa7, 0xe7, 0x01, 0x81, 0xf9, 0xe1, 0x0a, 0xdd, 0x8b, 0x4a, 0x8b, 0xeb, 0x0b, 0x2e, 0xc3, 0x8a, 0x43, 0x30, 0x9f, 0x10, 0x0c, 0xd4, 0xbe, 0x91, 0xc6, 0xf4, 0x8e, 0x79, 0xdc, 0x0a, 0xee, 0x93, 0xa1, 0x5c, 0x94, 0x03, 0x77, 0x3b, 0x35, 0x4a, 0x8d, 0x42, 0xed, 0x48, 0xd8, 0xf2, 0x76, 0x23, 0x0f, 0xa6, 0xde, 0x5a, 0xda, 0x50, 0x1e, 0xe0, 0xa6, 0x53, 0xb4, 0x45, 0x8f, 0x0e, 0xcf, 0x6d, 0x5b, 0x3c, 0x33, 0xe2, 0x14, 0x1c, 0x66, 0x2f, 0x6e, 0xa0, 0x55, 0xf7, 0x41, 0xe5, 0x45, 0x86, 0x91, 0x7d, 0x2e, 0x0c, 0x4e, 0xb2, 0xb5, 0x66, 0x21, 0xf9, 0x66, 0x5f, 0xef, 0x32, 0x46, 0xf0, 0xbd, 0x80, 0x0b, 0x53, 0x3e, 0x3b, 0xc6, 0x15, 0xc4, 0x02, 0x1f, 0x8d, 0x0e, 0x2a, 0xd2, 0x33, 0xa1, 0x1e, 0x77, 0x36, 0xc4, 0x93, 0xac, 0xc3, 0x1f, 0xae, 0xe7, 0x6a, 0x09, 0x7d, 0xc4, 0x0d, 0xb9, 0xef, 0xc2, 0x24, 0x46, 0xea, 0xcf, 0x1c, 0xc1, 0x8f, 0x51, 0xfd, 0x10, 0x23, 0x6a, 0x2f, 0x94, 0x2d, 0x0a, 0x53, 0xc3, 0xce, 0x20, 0x91, 0x08, 0xb5, 0x93, 0x8c, 0x0a, 0x9e, 0x53, 0x6b, 0x89, 0xef, 0x0a, 0xd6, 0xb4, 0x05, 0xa1, 0x0f, 0x22, 0xc3, };
4806 static const u8 ed25519_209_test_vectors_expected_sig[] = {
4807 	0x92, 0x20, 0xf0, 0xed, 0xaa, 0xae, 0xe1, 0xb8, 0x76, 0x35, 0x0d, 0xbe, 0x92, 0x66, 0x06, 0x17, 0x67, 0xb8, 0x62, 0x96, 0xc3, 0x51, 0xd4, 0xca, 0xc9, 0x9d, 0x07, 0xcd, 0x61, 0x2c, 0x6e, 0xfb, 0x24, 0xf8, 0xf9, 0xb0, 0xb9, 0x75, 0xf9, 0x5c, 0x42, 0xc5, 0xb6, 0xaf, 0xed, 0xc8, 0x92, 0xf8, 0x7e, 0xfe, 0xdd, 0x39, 0xd5, 0x16, 0x02, 0x94, 0xc2, 0x76, 0x58, 0xbd, 0xcf, 0x42, 0x85, 0x0b, };
4808 static const ec_test_case ed25519_209_test_case = {
4809 	.name = "EDDSA25519-SHA512/wei25519 209",
4810 	.ec_str_p = &wei25519_str_params,
4811 	.priv_key = ed25519_209_test_vectors_priv_key,
4812 	.priv_key_len = sizeof(ed25519_209_test_vectors_priv_key),
4813 	.nn_random = NULL,
4814 	.hash_type = SHA512,
4815 	.msg = (const char *)ed25519_209_test_vectors_message,
4816 	.msglen = sizeof(ed25519_209_test_vectors_message),
4817 	.sig_type = EDDSA25519,
4818 	.exp_sig = ed25519_209_test_vectors_expected_sig,
4819 	.exp_siglen = sizeof(ed25519_209_test_vectors_expected_sig),
4820 	.adata = NULL,
4821 	.adata_len = 0
4822 };
4823 
4824 /************************************************/
4825 static const u8 ed25519_210_test_vectors_priv_key[] = {
4826 	0x69, 0x50, 0xbf, 0xcf, 0x48, 0x0b, 0x98, 0xea, 0x18, 0xa2, 0xd5, 0xae, 0x5b, 0xa6, 0xe7, 0x66, 0x8f, 0x4c, 0x28, 0x3f, 0xf2, 0x71, 0x13, 0x57, 0x74, 0x0f, 0xfe, 0x32, 0xcf, 0x25, 0x81, 0x9a, };
4827 static const u8 ed25519_210_test_vectors_message[] = {
4828 	0xa4, 0x01, 0xb9, 0x22, 0xab, 0xa5, 0x7e, 0xe0, 0xc6, 0xac, 0x1c, 0x8f, 0x1b, 0x48, 0x29, 0x6a, 0x85, 0x62, 0xee, 0xf1, 0x37, 0x52, 0x68, 0x93, 0x88, 0x6a, 0x08, 0x30, 0x6e, 0x22, 0x03, 0x66, 0x77, 0x88, 0x61, 0x8b, 0x93, 0x98, 0x64, 0x46, 0x7a, 0x31, 0xf1, 0x6e, 0xdc, 0xe1, 0x52, 0xa4, 0x2c, 0x25, 0x54, 0x6b, 0x64, 0x0e, 0xa8, 0xbe, 0xd1, 0x89, 0xa4, 0xf8, 0x98, 0x86, 0xa3, 0x7f, 0x10, 0x69, 0x11, 0xea, 0xe1, 0xf5, 0x00, 0x81, 0xbf, 0x79, 0x5e, 0x70, 0xc6, 0x50, 0x44, 0x37, 0xd2, 0xa8, 0x0c, 0xb8, 0x39, 0x47, 0x9e, 0xcb, 0xb8, 0x7c, 0x12, 0x9b, 0xcc, 0x5f, 0xe3, 0x1d, 0x71, 0x6e, 0xf9, 0x78, 0xc2, 0x06, 0xd7, 0xf0, 0x8a, 0x79, 0x34, 0x66, 0x59, 0x4f, 0x4d, 0x75, 0xe2, 0x15, 0xbb, 0x63, 0x74, 0x59, 0x6f, 0x8e, 0x7d, 0x00, 0xee, 0xa7, 0x24, 0x78, 0x09, 0x43, 0xe8, 0x9b, 0xd3, 0x86, 0x3c, 0x95, 0x1b, 0xbd, 0x24, 0xef, 0xee, 0x23, 0xc9, 0x7c, 0x2c, 0x79, 0x7c, 0x7f, 0xaf, 0xbf, 0x8f, 0x2c, 0x8b, 0x43, 0xf3, 0x7a, 0x5f, 0x88, 0x11, 0x29, 0xa0, 0x95, 0x73, 0xfa, 0x7a, 0x03, 0x4a, 0x28, 0x5e, 0x80, 0xdc, 0x4b, 0xa4, 0xbc, 0x95, 0x64, 0xa4, 0xdc, 0xed, 0xeb, 0x33, 0x16, 0x7e, 0x0b, 0x30, 0xc5, 0xa0, 0x0b, 0x9a, 0x10, 0x9a, 0x22, 0x31, 0xcf, 0xa0, 0x01, 0x2b, 0x29, 0xb2, 0xb3, 0x45, 0x0b, 0x89, 0x2e, 0xcc, 0xef, 0x08, 0x08, 0xe5, 0x03, 0xf8, };
4829 static const u8 ed25519_210_test_vectors_expected_sig[] = {
4830 	0x94, 0xde, 0x5d, 0xf7, 0xa2, 0x5e, 0xcd, 0x70, 0x20, 0x5d, 0x40, 0xbc, 0x94, 0x99, 0xfc, 0x7c, 0xd7, 0x13, 0x65, 0x68, 0x06, 0x0a, 0x41, 0x9a, 0x93, 0xbe, 0x6e, 0x31, 0x86, 0x64, 0xbb, 0x6d, 0xfc, 0xe6, 0x0e, 0x2d, 0x4e, 0x63, 0x3f, 0x7e, 0xc1, 0x48, 0xfe, 0x4f, 0x83, 0x4e, 0xd2, 0x77, 0xc1, 0xfe, 0xc4, 0xc4, 0xe2, 0xa8, 0x6f, 0x44, 0xc4, 0x58, 0x9c, 0x81, 0x78, 0x88, 0xdb, 0x00, };
4831 static const ec_test_case ed25519_210_test_case = {
4832 	.name = "EDDSA25519-SHA512/wei25519 210",
4833 	.ec_str_p = &wei25519_str_params,
4834 	.priv_key = ed25519_210_test_vectors_priv_key,
4835 	.priv_key_len = sizeof(ed25519_210_test_vectors_priv_key),
4836 	.nn_random = NULL,
4837 	.hash_type = SHA512,
4838 	.msg = (const char *)ed25519_210_test_vectors_message,
4839 	.msglen = sizeof(ed25519_210_test_vectors_message),
4840 	.sig_type = EDDSA25519,
4841 	.exp_sig = ed25519_210_test_vectors_expected_sig,
4842 	.exp_siglen = sizeof(ed25519_210_test_vectors_expected_sig),
4843 	.adata = NULL,
4844 	.adata_len = 0
4845 };
4846 
4847 /************************************************/
4848 static const u8 ed25519_211_test_vectors_priv_key[] = {
4849 	0x61, 0xb2, 0x60, 0xf5, 0xb8, 0x48, 0xb2, 0x71, 0xef, 0x48, 0xe5, 0xa5, 0x6d, 0x29, 0x74, 0x32, 0xd8, 0x9f, 0x2a, 0xb8, 0x5b, 0xd5, 0x38, 0xfa, 0x66, 0x88, 0x70, 0xd0, 0x56, 0x02, 0x20, 0xe5, };
4850 static const u8 ed25519_211_test_vectors_message[] = {
4851 	0x28, 0x26, 0x29, 0x5d, 0x79, 0x94, 0x5f, 0x67, 0x54, 0x76, 0xbc, 0x4d, 0x45, 0xef, 0x80, 0x0d, 0x80, 0xb1, 0xf0, 0x39, 0x8e, 0x4b, 0xe6, 0x0e, 0x3d, 0xe4, 0x57, 0x1e, 0xd1, 0x08, 0xdf, 0x98, 0x9f, 0x03, 0x2d, 0xe6, 0xc2, 0x34, 0x5d, 0x99, 0x48, 0xd6, 0x77, 0x92, 0x7e, 0xa0, 0xb8, 0xcf, 0x1a, 0x5c, 0xa3, 0x6f, 0xd5, 0xf2, 0x3c, 0x25, 0xdc, 0x0d, 0x2a, 0xb5, 0xbd, 0x56, 0x5a, 0x54, 0xaf, 0x46, 0xfd, 0x97, 0xd3, 0x38, 0xd7, 0x70, 0xe3, 0xa7, 0xb4, 0x7e, 0xfb, 0x54, 0xc0, 0x7a, 0x16, 0x64, 0x70, 0x77, 0x71, 0xeb, 0x4e, 0x37, 0xd9, 0xd7, 0x0b, 0xa7, 0x79, 0x25, 0x1d, 0xcd, 0xcd, 0x3b, 0xf6, 0xd1, 0x24, 0x8a, 0xde, 0xc5, 0x3f, 0x78, 0x72, 0x59, 0xc4, 0xd5, 0x94, 0xd5, 0xfd, 0x4c, 0xed, 0x8e, 0x3d, 0xb7, 0x62, 0x1d, 0x49, 0x65, 0xd4, 0x82, 0x98, 0x17, 0x81, 0x24, 0x93, 0x1a, 0x3d, 0x0c, 0xd2, 0x69, 0xb2, 0xd5, 0x3b, 0x7c, 0xd2, 0x61, 0xb9, 0x6d, 0x37, 0x0c, 0x5d, 0x96, 0x93, 0xc8, 0xad, 0x13, 0x3e, 0xd5, 0x89, 0x45, 0xee, 0x35, 0x40, 0xe1, 0x06, 0x25, 0xd9, 0x24, 0xae, 0xba, 0x9b, 0xda, 0xfc, 0x65, 0x61, 0x00, 0xaa, 0xb2, 0x76, 0xfa, 0x99, 0x6b, 0x1d, 0xb4, 0x77, 0xbf, 0x85, 0xea, 0x55, 0x90, 0x81, 0xd5, 0xb4, 0xc7, 0x30, 0x7d, 0xc1, 0x59, 0x56, 0x54, 0xac, 0xa8, 0x2f, 0x7b, 0x6d, 0x2d, 0xda, 0xf7, 0x35, 0x7c, 0x15, 0xa4, 0xd7, 0xd8, 0xb9, 0x08, };
4852 static const u8 ed25519_211_test_vectors_expected_sig[] = {
4853 	0x98, 0x28, 0xfe, 0xc8, 0xff, 0x5c, 0xf8, 0x5a, 0x98, 0xf4, 0x50, 0x77, 0x0b, 0x5b, 0xdb, 0x4b, 0x80, 0xda, 0xca, 0x44, 0x37, 0x9d, 0x8f, 0x53, 0xc9, 0x1c, 0x34, 0x8e, 0x22, 0xdf, 0x64, 0xac, 0x48, 0xf2, 0xb6, 0xe2, 0xa7, 0xb3, 0xb6, 0x42, 0xbc, 0x81, 0x93, 0xa1, 0x94, 0x31, 0x62, 0x29, 0xe6, 0x94, 0x47, 0xed, 0x24, 0x1c, 0xd4, 0x23, 0xd8, 0x3b, 0x6f, 0xe7, 0xb2, 0xd4, 0x4b, 0x00, };
4854 static const ec_test_case ed25519_211_test_case = {
4855 	.name = "EDDSA25519-SHA512/wei25519 211",
4856 	.ec_str_p = &wei25519_str_params,
4857 	.priv_key = ed25519_211_test_vectors_priv_key,
4858 	.priv_key_len = sizeof(ed25519_211_test_vectors_priv_key),
4859 	.nn_random = NULL,
4860 	.hash_type = SHA512,
4861 	.msg = (const char *)ed25519_211_test_vectors_message,
4862 	.msglen = sizeof(ed25519_211_test_vectors_message),
4863 	.sig_type = EDDSA25519,
4864 	.exp_sig = ed25519_211_test_vectors_expected_sig,
4865 	.exp_siglen = sizeof(ed25519_211_test_vectors_expected_sig),
4866 	.adata = NULL,
4867 	.adata_len = 0
4868 };
4869 
4870 /************************************************/
4871 static const u8 ed25519_212_test_vectors_priv_key[] = {
4872 	0x93, 0x6d, 0xc1, 0xce, 0xf6, 0xa3, 0x10, 0x74, 0x7f, 0x35, 0x00, 0x88, 0x05, 0x5a, 0x39, 0xaa, 0x76, 0x2d, 0x9a, 0x4b, 0x52, 0xc8, 0xc8, 0xe4, 0xc6, 0x82, 0x79, 0x43, 0x80, 0xc2, 0x72, 0x5c, };
4873 static const u8 ed25519_212_test_vectors_message[] = {
4874 	0xeb, 0x58, 0xfe, 0x86, 0xc4, 0xef, 0x34, 0x9c, 0x29, 0xae, 0x6f, 0xb0, 0x4f, 0x10, 0x85, 0x0e, 0x38, 0xc6, 0x82, 0x3d, 0xbe, 0x64, 0xa0, 0x9a, 0x5b, 0xf1, 0xe0, 0xce, 0x60, 0x0d, 0x39, 0x4e, 0xfa, 0x6f, 0xb9, 0x6e, 0xd6, 0xa8, 0xf2, 0xc9, 0xd4, 0xbe, 0xc0, 0x5e, 0x6a, 0x5e, 0xbd, 0x5a, 0x1b, 0xf4, 0xd0, 0xc5, 0x1d, 0xb9, 0x34, 0xe5, 0x7b, 0x79, 0xe5, 0xc6, 0xa8, 0x79, 0xd9, 0x75, 0x19, 0x7d, 0xbb, 0x10, 0x47, 0x5f, 0x65, 0xc7, 0xf8, 0xa8, 0xc6, 0xa7, 0x7a, 0x42, 0x03, 0x84, 0xb5, 0x06, 0x2a, 0x27, 0x40, 0xf1, 0x40, 0x17, 0x40, 0xee, 0x0f, 0x5e, 0x04, 0x3a, 0xad, 0x7a, 0x2a, 0x2b, 0x42, 0x60, 0xc5, 0xd9, 0x07, 0xf7, 0x05, 0xed, 0xaf, 0x65, 0xb0, 0xe3, 0x75, 0xdf, 0xc7, 0xb0, 0x0b, 0xd6, 0x60, 0xdb, 0x61, 0x47, 0xf2, 0xeb, 0xe8, 0x70, 0xa0, 0xee, 0x18, 0xdc, 0x2b, 0xa3, 0xc9, 0x2b, 0x0b, 0x76, 0xfa, 0xe2, 0xb9, 0x09, 0x32, 0xcd, 0xb6, 0xc1, 0x49, 0xe4, 0x6f, 0x3f, 0xee, 0xcf, 0x4c, 0x26, 0xf0, 0x44, 0x1f, 0x3a, 0x9e, 0x00, 0x66, 0x78, 0xae, 0xcf, 0xf8, 0xcc, 0xae, 0xca, 0xed, 0xa7, 0x3a, 0x18, 0xa6, 0x8a, 0xc9, 0x88, 0xb6, 0x2e, 0x83, 0xa9, 0xbb, 0x51, 0x88, 0xae, 0xde, 0x38, 0xdf, 0x77, 0xa9, 0xa1, 0x64, 0xab, 0xbd, 0xd9, 0xd5, 0x8e, 0x52, 0xa6, 0xca, 0xf7, 0x22, 0x23, 0x89, 0xf1, 0x98, 0xe8, 0x5f, 0xbf, 0x96, 0x62, 0x36, 0xdc, 0xdb, 0xd4, 0xc1, };
4875 static const u8 ed25519_212_test_vectors_expected_sig[] = {
4876 	0x3f, 0x99, 0x4b, 0x8e, 0xf5, 0x28, 0xf6, 0x42, 0x1c, 0x6a, 0x6a, 0x22, 0xe9, 0x77, 0xad, 0xe5, 0xce, 0xe8, 0x87, 0x26, 0x3d, 0xe3, 0x8b, 0x71, 0x9a, 0xcd, 0x12, 0xd4, 0x69, 0xbf, 0xd8, 0xc3, 0xf6, 0x8e, 0x7a, 0xc0, 0x7d, 0x2f, 0xae, 0x80, 0xa2, 0x09, 0x27, 0x78, 0xdf, 0x0b, 0x46, 0x35, 0x37, 0xad, 0x3a, 0x05, 0x51, 0x99, 0x7a, 0x3d, 0x5b, 0x51, 0xf8, 0x32, 0xd9, 0xc8, 0x23, 0x0b, };
4877 static const ec_test_case ed25519_212_test_case = {
4878 	.name = "EDDSA25519-SHA512/wei25519 212",
4879 	.ec_str_p = &wei25519_str_params,
4880 	.priv_key = ed25519_212_test_vectors_priv_key,
4881 	.priv_key_len = sizeof(ed25519_212_test_vectors_priv_key),
4882 	.nn_random = NULL,
4883 	.hash_type = SHA512,
4884 	.msg = (const char *)ed25519_212_test_vectors_message,
4885 	.msglen = sizeof(ed25519_212_test_vectors_message),
4886 	.sig_type = EDDSA25519,
4887 	.exp_sig = ed25519_212_test_vectors_expected_sig,
4888 	.exp_siglen = sizeof(ed25519_212_test_vectors_expected_sig),
4889 	.adata = NULL,
4890 	.adata_len = 0
4891 };
4892 
4893 /************************************************/
4894 static const u8 ed25519_213_test_vectors_priv_key[] = {
4895 	0xf8, 0x9e, 0xed, 0x09, 0xde, 0xc5, 0x51, 0x36, 0x1f, 0xa4, 0x6f, 0x37, 0x59, 0x73, 0xd4, 0xfb, 0xfa, 0x5c, 0x5c, 0x12, 0xf1, 0xb5, 0xe5, 0xab, 0xf4, 0x5c, 0xfa, 0x05, 0xff, 0x31, 0xa3, 0x40, };
4896 static const u8 ed25519_213_test_vectors_message[] = {
4897 	0x4c, 0xf9, 0x77, 0x3d, 0xa0, 0x5f, 0xd3, 0x22, 0xfc, 0x14, 0x7b, 0xe9, 0x00, 0xef, 0x5c, 0xf2, 0x56, 0xc8, 0x8a, 0xfd, 0xad, 0x4b, 0x08, 0xc2, 0x30, 0xdf, 0xc8, 0x98, 0x1f, 0xb6, 0x9f, 0x47, 0x6f, 0x7d, 0x45, 0xef, 0x7c, 0x90, 0x06, 0xbc, 0x10, 0x03, 0x2b, 0xa5, 0x34, 0x36, 0xac, 0x22, 0x84, 0x3e, 0x0d, 0x76, 0x28, 0x9c, 0xf6, 0x8f, 0x98, 0x18, 0xfa, 0x64, 0x03, 0x1d, 0x4b, 0x40, 0x95, 0x50, 0x59, 0xaa, 0x69, 0x11, 0x09, 0x15, 0x88, 0x9f, 0x5e, 0x22, 0x73, 0x2a, 0x13, 0x43, 0x91, 0x25, 0x81, 0xab, 0x3b, 0x11, 0xa3, 0xba, 0xe7, 0xa4, 0x71, 0x35, 0x95, 0x08, 0x59, 0x65, 0x75, 0xf8, 0x88, 0x16, 0x0b, 0xee, 0xf9, 0x66, 0xe5, 0x70, 0x8f, 0x0e, 0x31, 0x47, 0xea, 0xcf, 0xce, 0xc1, 0xca, 0xa3, 0xef, 0x24, 0x0c, 0x5e, 0x0a, 0x14, 0xc1, 0x86, 0x54, 0x6c, 0x8e, 0xeb, 0x64, 0x65, 0x83, 0x50, 0xb1, 0xaf, 0xfc, 0x0c, 0xfd, 0x2a, 0xc2, 0x13, 0xaf, 0x67, 0x0a, 0xfc, 0xa7, 0xbb, 0xc9, 0xdd, 0xdd, 0x28, 0xa4, 0x65, 0xb5, 0x86, 0xe6, 0x9c, 0x38, 0x8c, 0xd7, 0x34, 0x78, 0xd6, 0x8e, 0xfb, 0x32, 0x2b, 0xdf, 0x86, 0xd9, 0x21, 0x30, 0x11, 0xe7, 0x11, 0xb2, 0xb9, 0x5f, 0xef, 0xa7, 0xbb, 0x9b, 0x59, 0x39, 0x76, 0x17, 0x06, 0xaa, 0x71, 0x21, 0x02, 0x49, 0x06, 0x42, 0x0b, 0xdd, 0xf1, 0xd8, 0x80, 0x0a, 0x43, 0x38, 0xd9, 0x38, 0xfa, 0x13, 0x7c, 0xf2, 0x7e, 0x9f, 0xfc, 0x51, 0xc6, };
4898 static const u8 ed25519_213_test_vectors_expected_sig[] = {
4899 	0x89, 0x7e, 0x6f, 0x27, 0x97, 0xc3, 0xf3, 0x26, 0xd2, 0xcd, 0xb1, 0xd2, 0x67, 0x3d, 0x36, 0x06, 0x31, 0xf0, 0x63, 0x30, 0x45, 0x80, 0xff, 0x5b, 0x4e, 0xb4, 0x3d, 0x39, 0xad, 0x68, 0x51, 0x83, 0x4c, 0x9c, 0xf8, 0x91, 0xd9, 0xf0, 0x90, 0x5b, 0xf8, 0xde, 0x07, 0x5f, 0x76, 0x35, 0xdf, 0xca, 0x60, 0x1a, 0xdc, 0x0f, 0x14, 0xe7, 0xb2, 0xc7, 0x6f, 0x75, 0x71, 0xbf, 0xa4, 0x68, 0xed, 0x0c, };
4900 static const ec_test_case ed25519_213_test_case = {
4901 	.name = "EDDSA25519-SHA512/wei25519 213",
4902 	.ec_str_p = &wei25519_str_params,
4903 	.priv_key = ed25519_213_test_vectors_priv_key,
4904 	.priv_key_len = sizeof(ed25519_213_test_vectors_priv_key),
4905 	.nn_random = NULL,
4906 	.hash_type = SHA512,
4907 	.msg = (const char *)ed25519_213_test_vectors_message,
4908 	.msglen = sizeof(ed25519_213_test_vectors_message),
4909 	.sig_type = EDDSA25519,
4910 	.exp_sig = ed25519_213_test_vectors_expected_sig,
4911 	.exp_siglen = sizeof(ed25519_213_test_vectors_expected_sig),
4912 	.adata = NULL,
4913 	.adata_len = 0
4914 };
4915 
4916 /************************************************/
4917 static const u8 ed25519_214_test_vectors_priv_key[] = {
4918 	0x40, 0x07, 0x96, 0xef, 0x60, 0xc5, 0xcf, 0x40, 0x84, 0xde, 0xe1, 0x80, 0x1c, 0x4a, 0x19, 0x75, 0xe4, 0x82, 0xe7, 0x0a, 0xef, 0x96, 0x1c, 0xd4, 0x2e, 0x2f, 0xd5, 0xa3, 0xfa, 0x1a, 0x0f, 0xbe, };
4919 static const u8 ed25519_214_test_vectors_message[] = {
4920 	0xc4, 0x73, 0x32, 0x5e, 0x78, 0x5b, 0x27, 0xdf, 0x44, 0x71, 0xee, 0xfb, 0x9e, 0xbe, 0xbd, 0x64, 0x61, 0xd5, 0x70, 0x80, 0x01, 0x81, 0x10, 0x0f, 0xf3, 0x6c, 0xaf, 0x3c, 0x38, 0xf6, 0x7c, 0x19, 0x21, 0xb1, 0x57, 0xec, 0x8e, 0x61, 0x26, 0xf9, 0x55, 0xae, 0xbd, 0x90, 0xea, 0x3f, 0xe5, 0x38, 0x5f, 0x80, 0x42, 0xcd, 0x70, 0x4b, 0x27, 0xcc, 0x1d, 0x69, 0x78, 0xc0, 0xe2, 0xa2, 0x96, 0x69, 0x5f, 0x5e, 0xf9, 0x7b, 0x7c, 0x2e, 0x16, 0xae, 0x4f, 0xf4, 0xd0, 0x63, 0xc6, 0x88, 0xd7, 0xf4, 0x6e, 0x96, 0x4e, 0x1f, 0x0a, 0x00, 0x50, 0x3f, 0x35, 0x73, 0x45, 0x97, 0x76, 0x83, 0xd6, 0xe4, 0xc3, 0x42, 0x3d, 0x56, 0xbd, 0xb6, 0xce, 0x86, 0x4b, 0x69, 0x87, 0xe0, 0x85, 0xe8, 0x3e, 0x70, 0xc7, 0xc1, 0xa1, 0x4e, 0x0e, 0x41, 0x3f, 0x59, 0x2a, 0x72, 0xa7, 0x1e, 0x01, 0x7d, 0x50, 0x5b, 0x64, 0xc2, 0x4f, 0x1a, 0x1a, 0x6b, 0x81, 0x3e, 0x06, 0x4e, 0x6e, 0x0c, 0xf8, 0xbd, 0x45, 0x71, 0xd0, 0xff, 0x2f, 0x26, 0x7a, 0x6a, 0x13, 0xe0, 0xcd, 0x43, 0x04, 0x63, 0xb6, 0xca, 0x3b, 0x88, 0xf0, 0xcd, 0x40, 0xb0, 0xfb, 0x83, 0xd5, 0xbe, 0xdf, 0x6f, 0x7d, 0x47, 0xe1, 0x70, 0xe8, 0x7d, 0x0a, 0x75, 0x00, 0x93, 0x69, 0x3e, 0xda, 0x23, 0x2a, 0x6d, 0xaf, 0x98, 0x12, 0x57, 0x27, 0xb9, 0x58, 0x8e, 0xcb, 0x89, 0x4a, 0xe3, 0x73, 0xba, 0xe3, 0xa4, 0x45, 0xa1, 0x06, 0x30, 0x64, 0x69, 0xa4, 0xc2, 0xcd, 0x77, 0xff, };
4921 static const u8 ed25519_214_test_vectors_expected_sig[] = {
4922 	0x84, 0xd3, 0xaa, 0x3f, 0x36, 0x18, 0x44, 0x39, 0x67, 0x54, 0xd8, 0x0d, 0x9f, 0xa0, 0x5b, 0x8b, 0x2f, 0xa4, 0xab, 0xf3, 0xa0, 0xf3, 0x6b, 0x63, 0x9b, 0xee, 0x9c, 0xfb, 0x5c, 0x85, 0x30, 0xa3, 0xa9, 0xcc, 0x34, 0x67, 0x7f, 0x92, 0xa9, 0x13, 0xc4, 0x1e, 0x80, 0x0f, 0x2e, 0x80, 0x41, 0xf7, 0x66, 0x6d, 0x07, 0xed, 0x85, 0xf1, 0x6a, 0x57, 0xd8, 0x17, 0xb1, 0x24, 0x1f, 0xc5, 0xee, 0x04, };
4923 static const ec_test_case ed25519_214_test_case = {
4924 	.name = "EDDSA25519-SHA512/wei25519 214",
4925 	.ec_str_p = &wei25519_str_params,
4926 	.priv_key = ed25519_214_test_vectors_priv_key,
4927 	.priv_key_len = sizeof(ed25519_214_test_vectors_priv_key),
4928 	.nn_random = NULL,
4929 	.hash_type = SHA512,
4930 	.msg = (const char *)ed25519_214_test_vectors_message,
4931 	.msglen = sizeof(ed25519_214_test_vectors_message),
4932 	.sig_type = EDDSA25519,
4933 	.exp_sig = ed25519_214_test_vectors_expected_sig,
4934 	.exp_siglen = sizeof(ed25519_214_test_vectors_expected_sig),
4935 	.adata = NULL,
4936 	.adata_len = 0
4937 };
4938 
4939 /************************************************/
4940 static const u8 ed25519_215_test_vectors_priv_key[] = {
4941 	0x67, 0x03, 0xa6, 0x23, 0x2c, 0x5e, 0x2e, 0x65, 0xe0, 0xab, 0x3b, 0x92, 0xe2, 0xaa, 0xf9, 0xf5, 0xfb, 0xd3, 0x3f, 0xb4, 0x69, 0x88, 0x04, 0x7d, 0x6f, 0x4d, 0x0f, 0xf5, 0x38, 0x7f, 0xa0, 0x29, };
4942 static const u8 ed25519_215_test_vectors_message[] = {
4943 	0xa2, 0x6b, 0x30, 0xa7, 0x69, 0x19, 0x79, 0x32, 0xa3, 0xa6, 0x28, 0x54, 0x96, 0x8d, 0x76, 0x01, 0x51, 0x61, 0x23, 0x66, 0x77, 0x8d, 0xc9, 0x94, 0x57, 0x6a, 0x2e, 0x0e, 0x03, 0x55, 0x49, 0x6b, 0x46, 0x20, 0x0e, 0x50, 0x69, 0x48, 0xa0, 0xd1, 0x02, 0xb6, 0x65, 0x1b, 0x2e, 0x73, 0x34, 0xca, 0x6c, 0x6e, 0xae, 0xf8, 0xbc, 0xa4, 0x4b, 0x42, 0x59, 0x70, 0xa0, 0xb3, 0x7d, 0x6b, 0xde, 0x0d, 0xa9, 0xd3, 0xc1, 0xb9, 0xf5, 0x1c, 0xbb, 0x25, 0xbc, 0x33, 0x5c, 0xd6, 0xfa, 0x92, 0x8a, 0x74, 0xf2, 0xc0, 0xdc, 0x2c, 0x6e, 0x99, 0xd3, 0x7a, 0x12, 0x86, 0x3a, 0x47, 0x4d, 0x4d, 0xf4, 0x3a, 0xad, 0x35, 0x41, 0x5f, 0xfc, 0xaa, 0x24, 0xd8, 0xc2, 0x9f, 0x91, 0x45, 0x72, 0xab, 0x2a, 0xbe, 0xc3, 0x89, 0x2d, 0xb4, 0x9e, 0x67, 0x9c, 0x5e, 0xa2, 0x20, 0xc2, 0xf5, 0x19, 0xa7, 0xd0, 0x33, 0xac, 0x1a, 0x2c, 0x5a, 0x46, 0x78, 0x69, 0xe3, 0x0e, 0xda, 0x3d, 0x26, 0x35, 0xca, 0x86, 0x34, 0x31, 0x47, 0x3f, 0x95, 0x8d, 0x55, 0x2b, 0xdc, 0x55, 0x82, 0x35, 0x2c, 0x29, 0x0d, 0x0c, 0xe4, 0xfa, 0x9c, 0xfd, 0x0a, 0xd4, 0x27, 0x99, 0xc2, 0x27, 0xec, 0x90, 0xb7, 0xc9, 0xe5, 0xdb, 0x9f, 0x5a, 0x7b, 0x6d, 0x56, 0x92, 0x12, 0xee, 0xd9, 0x4d, 0x32, 0x33, 0x26, 0x80, 0x5f, 0x2b, 0x3a, 0x00, 0x10, 0xd6, 0xc1, 0x1e, 0xb4, 0x10, 0x7c, 0x82, 0x83, 0x03, 0x76, 0x52, 0xf5, 0x0d, 0xc0, 0x67, 0xb6, 0xdc, 0x81, 0xf4, 0xdb, };
4944 static const u8 ed25519_215_test_vectors_expected_sig[] = {
4945 	0xca, 0xe9, 0x68, 0x79, 0xe5, 0xb6, 0x03, 0xbe, 0x86, 0x66, 0x09, 0xd4, 0xa0, 0x53, 0xbf, 0xa1, 0x2a, 0x51, 0x37, 0x8e, 0x99, 0xb2, 0xa2, 0x81, 0x2e, 0x47, 0x89, 0x26, 0x7d, 0x8f, 0x32, 0xf4, 0x73, 0x24, 0x3f, 0x8a, 0xf7, 0x4b, 0x9b, 0xe7, 0x3f, 0x47, 0xde, 0xa5, 0x0f, 0x0d, 0x16, 0x5e, 0xbf, 0x49, 0x45, 0x8b, 0x73, 0xe5, 0x3d, 0x88, 0x58, 0x0c, 0x19, 0x1a, 0x18, 0x2d, 0x19, 0x04, };
4946 static const ec_test_case ed25519_215_test_case = {
4947 	.name = "EDDSA25519-SHA512/wei25519 215",
4948 	.ec_str_p = &wei25519_str_params,
4949 	.priv_key = ed25519_215_test_vectors_priv_key,
4950 	.priv_key_len = sizeof(ed25519_215_test_vectors_priv_key),
4951 	.nn_random = NULL,
4952 	.hash_type = SHA512,
4953 	.msg = (const char *)ed25519_215_test_vectors_message,
4954 	.msglen = sizeof(ed25519_215_test_vectors_message),
4955 	.sig_type = EDDSA25519,
4956 	.exp_sig = ed25519_215_test_vectors_expected_sig,
4957 	.exp_siglen = sizeof(ed25519_215_test_vectors_expected_sig),
4958 	.adata = NULL,
4959 	.adata_len = 0
4960 };
4961 
4962 /************************************************/
4963 static const u8 ed25519_216_test_vectors_priv_key[] = {
4964 	0xe0, 0xe7, 0x2f, 0x8f, 0x17, 0x86, 0x33, 0x62, 0x67, 0x33, 0xbc, 0xbd, 0xa2, 0xad, 0x2a, 0x50, 0xe6, 0x53, 0x89, 0x0f, 0x15, 0x35, 0x9b, 0x6c, 0x22, 0xfc, 0x73, 0x45, 0xad, 0x33, 0x31, 0x09, };
4965 static const u8 ed25519_216_test_vectors_message[] = {
4966 	0x79, 0x1f, 0xd6, 0x13, 0xc1, 0x09, 0x52, 0x92, 0xc8, 0xa4, 0xa2, 0xc8, 0x6b, 0x47, 0xae, 0x02, 0x61, 0x55, 0xb8, 0x46, 0x5b, 0x60, 0x7d, 0xbb, 0x41, 0x64, 0x77, 0xef, 0x79, 0xa2, 0x97, 0xc9, 0xd7, 0x75, 0x8c, 0xe3, 0x4a, 0xf9, 0xdc, 0xbf, 0x1c, 0x68, 0x47, 0x4f, 0x30, 0x90, 0x9f, 0xbe, 0x74, 0xb7, 0xba, 0x42, 0x96, 0x32, 0xf2, 0x40, 0x3a, 0xad, 0x83, 0x2b, 0x48, 0x6b, 0x72, 0xc2, 0x30, 0x54, 0xad, 0x42, 0xf7, 0x65, 0x3a, 0x9d, 0xdb, 0x45, 0x6c, 0xc7, 0x91, 0xf3, 0x48, 0x88, 0x6a, 0x7a, 0xe5, 0xdc, 0xec, 0x7c, 0x0b, 0xa8, 0x15, 0xf7, 0xa9, 0x3a, 0x10, 0xfe, 0x33, 0x1e, 0x90, 0x3b, 0x97, 0x0f, 0x7b, 0x50, 0x28, 0xbe, 0x49, 0xd1, 0x4b, 0xc5, 0x62, 0x0d, 0x63, 0x79, 0x26, 0x72, 0xb9, 0x8b, 0x94, 0x88, 0xc6, 0x7a, 0xe1, 0x66, 0x46, 0x69, 0x3e, 0x11, 0x20, 0x47, 0xf0, 0xac, 0x89, 0x21, 0xff, 0x56, 0x1c, 0x92, 0xdd, 0x05, 0x96, 0xd3, 0x2d, 0xf0, 0xa6, 0xe5, 0x07, 0xac, 0x1b, 0x07, 0xde, 0x51, 0x6c, 0x98, 0x42, 0x8d, 0x57, 0x0a, 0x37, 0xdb, 0x9b, 0xcd, 0x7c, 0x7e, 0x61, 0xc6, 0x94, 0x8a, 0xb3, 0xfe, 0x91, 0x25, 0x0d, 0xd1, 0xd5, 0xbd, 0x67, 0x12, 0x75, 0xdf, 0x9a, 0x97, 0x2f, 0x22, 0xc2, 0xba, 0x36, 0x80, 0x47, 0x47, 0xae, 0xc1, 0xea, 0x24, 0x16, 0xc1, 0xf4, 0x1a, 0xb8, 0x7b, 0xef, 0xde, 0x31, 0x62, 0x9b, 0x2d, 0x43, 0x31, 0x7c, 0xe4, 0x1c, 0xda, 0x03, 0x62, 0x62, 0x86, 0xc0, };
4967 static const u8 ed25519_216_test_vectors_expected_sig[] = {
4968 	0x14, 0x55, 0x21, 0x71, 0xb9, 0x52, 0x45, 0xac, 0x0f, 0x0e, 0x5a, 0x6e, 0x7a, 0x2f, 0x54, 0x17, 0x21, 0x06, 0x8d, 0xb6, 0x50, 0xc6, 0xda, 0xda, 0x04, 0xc2, 0x8c, 0xab, 0x7c, 0x49, 0x19, 0x5f, 0x64, 0x36, 0x71, 0x21, 0x44, 0xcb, 0x31, 0x91, 0x3c, 0x56, 0x2e, 0x30, 0xc3, 0x9d, 0x8a, 0x85, 0x49, 0xfb, 0x64, 0xff, 0xea, 0x81, 0xc7, 0x44, 0x51, 0x43, 0xb5, 0xf2, 0x32, 0x86, 0xda, 0x05, };
4969 static const ec_test_case ed25519_216_test_case = {
4970 	.name = "EDDSA25519-SHA512/wei25519 216",
4971 	.ec_str_p = &wei25519_str_params,
4972 	.priv_key = ed25519_216_test_vectors_priv_key,
4973 	.priv_key_len = sizeof(ed25519_216_test_vectors_priv_key),
4974 	.nn_random = NULL,
4975 	.hash_type = SHA512,
4976 	.msg = (const char *)ed25519_216_test_vectors_message,
4977 	.msglen = sizeof(ed25519_216_test_vectors_message),
4978 	.sig_type = EDDSA25519,
4979 	.exp_sig = ed25519_216_test_vectors_expected_sig,
4980 	.exp_siglen = sizeof(ed25519_216_test_vectors_expected_sig),
4981 	.adata = NULL,
4982 	.adata_len = 0
4983 };
4984 
4985 /************************************************/
4986 static const u8 ed25519_217_test_vectors_priv_key[] = {
4987 	0x54, 0x4d, 0xaf, 0xd9, 0x96, 0x0d, 0x82, 0x97, 0x56, 0xc6, 0xd4, 0xb3, 0xea, 0xdd, 0x44, 0x37, 0x5f, 0xe7, 0x80, 0x51, 0x87, 0x6b, 0xf9, 0x78, 0xa3, 0x81, 0xb0, 0xde, 0xca, 0xaa, 0x80, 0x96, };
4988 static const u8 ed25519_217_test_vectors_message[] = {
4989 	0x44, 0x7f, 0xe7, 0x34, 0x4c, 0xad, 0x1f, 0xae, 0x09, 0xd6, 0xa7, 0xd0, 0x5f, 0x09, 0xd5, 0x03, 0xc1, 0xb3, 0xd3, 0xd5, 0xdf, 0xa5, 0x84, 0x81, 0x0c, 0x35, 0xbc, 0x41, 0xe4, 0x95, 0x56, 0x93, 0x70, 0x61, 0x54, 0xe2, 0xd7, 0x51, 0xb2, 0xf1, 0xb5, 0x25, 0xe1, 0xa1, 0x45, 0x47, 0xba, 0x7f, 0x8b, 0x23, 0x20, 0x88, 0xa6, 0xfc, 0x92, 0x27, 0x02, 0xd9, 0x3a, 0x11, 0xcd, 0x82, 0x94, 0x9c, 0x27, 0xbe, 0xd6, 0x45, 0xdc, 0x35, 0x1f, 0xb4, 0xc1, 0x24, 0x2c, 0xf4, 0x1d, 0x01, 0x57, 0x54, 0x12, 0xe7, 0x92, 0xae, 0xd2, 0x14, 0x53, 0x1d, 0x94, 0xfd, 0x66, 0xe0, 0x3d, 0xd3, 0x2e, 0x97, 0x2f, 0xd7, 0x7f, 0x69, 0x47, 0xa3, 0x53, 0xe1, 0xae, 0x5e, 0x00, 0xf5, 0xa6, 0xca, 0x77, 0x99, 0x24, 0x72, 0xf0, 0x96, 0xb6, 0xe7, 0x47, 0x5f, 0xe5, 0x34, 0xe9, 0x13, 0xa7, 0x7b, 0xcb, 0x0d, 0x68, 0x1f, 0xdf, 0xb3, 0xa7, 0xa0, 0xdc, 0xb5, 0x6d, 0x27, 0x4d, 0xf4, 0xaa, 0x10, 0x9d, 0x4a, 0x8a, 0x37, 0x79, 0x4a, 0x92, 0x76, 0xf5, 0x00, 0x06, 0x69, 0x6f, 0xf1, 0x2c, 0xa4, 0xd0, 0x25, 0x40, 0x39, 0xdf, 0x0f, 0xb3, 0xf7, 0x2a, 0x96, 0x0d, 0xa0, 0x5c, 0x98, 0x72, 0xf2, 0xe3, 0x3e, 0xe8, 0x1d, 0x1c, 0xf7, 0xa6, 0xf4, 0x8b, 0xbc, 0xe0, 0xaa, 0x18, 0xc7, 0xc0, 0xf0, 0x6b, 0xa5, 0x5e, 0x67, 0x68, 0x9e, 0x0a, 0xf5, 0x87, 0xb5, 0x00, 0xea, 0xb7, 0x9c, 0xc7, 0xf9, 0x64, 0x0b, 0xca, 0x10, 0x4b, 0x7f, 0xbf, 0x31, 0xf0, 0x8e, };
4990 static const u8 ed25519_217_test_vectors_expected_sig[] = {
4991 	0xa2, 0xae, 0x11, 0x7c, 0x8d, 0xe4, 0xca, 0x6d, 0x6f, 0xe7, 0x5e, 0x46, 0x60, 0x23, 0xbd, 0x55, 0x0c, 0x26, 0xfe, 0xdd, 0x3e, 0x74, 0xca, 0x13, 0xad, 0xb6, 0x25, 0xf2, 0x72, 0xe1, 0x75, 0xf1, 0x4d, 0x5d, 0xf5, 0x50, 0xac, 0xe7, 0xd8, 0x22, 0x88, 0xef, 0xef, 0xab, 0xf9, 0x63, 0x11, 0xa1, 0x23, 0xbe, 0xe2, 0x38, 0x89, 0xad, 0x37, 0x11, 0xbf, 0xf2, 0xb8, 0x08, 0x79, 0x46, 0xbf, 0x0e, };
4992 static const ec_test_case ed25519_217_test_case = {
4993 	.name = "EDDSA25519-SHA512/wei25519 217",
4994 	.ec_str_p = &wei25519_str_params,
4995 	.priv_key = ed25519_217_test_vectors_priv_key,
4996 	.priv_key_len = sizeof(ed25519_217_test_vectors_priv_key),
4997 	.nn_random = NULL,
4998 	.hash_type = SHA512,
4999 	.msg = (const char *)ed25519_217_test_vectors_message,
5000 	.msglen = sizeof(ed25519_217_test_vectors_message),
5001 	.sig_type = EDDSA25519,
5002 	.exp_sig = ed25519_217_test_vectors_expected_sig,
5003 	.exp_siglen = sizeof(ed25519_217_test_vectors_expected_sig),
5004 	.adata = NULL,
5005 	.adata_len = 0
5006 };
5007 
5008 /************************************************/
5009 static const u8 ed25519_218_test_vectors_priv_key[] = {
5010 	0xbf, 0xbc, 0xd8, 0x67, 0x02, 0x7a, 0x19, 0x99, 0x78, 0xd5, 0x3e, 0x35, 0x9d, 0x70, 0x31, 0x8f, 0xc7, 0x8c, 0x7c, 0xc7, 0xbb, 0x5c, 0x79, 0x96, 0xba, 0x79, 0x7c, 0x85, 0x54, 0xf3, 0xf0, 0xf0, };
5011 static const u8 ed25519_218_test_vectors_message[] = {
5012 	0x11, 0x7f, 0xae, 0x13, 0xe7, 0x87, 0x77, 0xb6, 0x21, 0x9f, 0x02, 0x02, 0x14, 0xc1, 0xb8, 0x7c, 0x57, 0x04, 0x6d, 0x1c, 0x09, 0xce, 0x82, 0xee, 0x2b, 0x56, 0x29, 0x89, 0x8d, 0x9b, 0x0d, 0xe7, 0x4a, 0x15, 0xcf, 0xe9, 0x9f, 0x80, 0x54, 0x8b, 0xa9, 0x13, 0xd7, 0x03, 0x6c, 0x56, 0x28, 0x5a, 0x4c, 0xba, 0x49, 0x3b, 0x52, 0xd2, 0xcb, 0x70, 0xd6, 0x36, 0x5a, 0xce, 0x3d, 0xa1, 0x2b, 0x1f, 0x34, 0xa2, 0x77, 0x8a, 0xf3, 0x6e, 0xf5, 0x2a, 0xb8, 0x2e, 0xde, 0x04, 0xca, 0xca, 0xf2, 0x79, 0x3f, 0x5f, 0x89, 0x83, 0x1e, 0x3b, 0x20, 0x5a, 0x9e, 0xe4, 0xc1, 0xd6, 0xfb, 0xda, 0xb4, 0xba, 0x4d, 0x9f, 0xae, 0x65, 0xdd, 0x79, 0xa5, 0xfe, 0x76, 0xb4, 0xb3, 0x9a, 0x30, 0x92, 0xcc, 0x71, 0x48, 0xd2, 0x11, 0xe8, 0x5e, 0xe8, 0x2a, 0xb4, 0x63, 0xd3, 0x4d, 0xce, 0xe9, 0x06, 0x1d, 0x9c, 0x21, 0xde, 0xd2, 0x05, 0x1b, 0xbd, 0x50, 0xb4, 0x13, 0xf0, 0xe2, 0x1a, 0x0e, 0x48, 0xd1, 0xff, 0xa8, 0xdc, 0xae, 0x24, 0x0b, 0x34, 0x95, 0xbe, 0x25, 0xd9, 0x31, 0x51, 0xb5, 0x7a, 0xa2, 0x71, 0xab, 0x99, 0xaa, 0x70, 0x8c, 0xa2, 0x80, 0x80, 0xca, 0xb4, 0x80, 0x4f, 0xce, 0xfa, 0x92, 0x9f, 0x5f, 0x1e, 0xf3, 0xf4, 0xc6, 0xc0, 0xfb, 0xfb, 0x40, 0xbe, 0xf7, 0xea, 0x1b, 0x50, 0x9b, 0x36, 0xba, 0x12, 0x60, 0x32, 0x35, 0x12, 0x37, 0x9d, 0x7b, 0xc3, 0xfd, 0xbb, 0x5d, 0x3f, 0xaa, 0xc9, 0xb0, 0x0e, 0x21, 0xf1, 0x2e, 0xa1, 0xca, 0x2e, 0x29, };
5013 static const u8 ed25519_218_test_vectors_expected_sig[] = {
5014 	0xe4, 0x86, 0x15, 0xb6, 0x56, 0x33, 0xe6, 0x19, 0x93, 0xb0, 0xaa, 0xa1, 0xfa, 0xfb, 0x74, 0xb9, 0x62, 0x9c, 0x38, 0x4f, 0xd5, 0x92, 0xbd, 0x73, 0x5f, 0xa1, 0xf6, 0x2c, 0x5c, 0xad, 0x11, 0x29, 0x1f, 0xcd, 0x8c, 0x2e, 0x91, 0xa5, 0x0b, 0xfe, 0x0b, 0x03, 0xb4, 0x35, 0x02, 0xff, 0xf3, 0xa5, 0xc3, 0x82, 0xb9, 0xc2, 0x82, 0x19, 0x07, 0xef, 0xc3, 0x4d, 0xa5, 0xba, 0x05, 0x4a, 0xf0, 0x0e, };
5015 static const ec_test_case ed25519_218_test_case = {
5016 	.name = "EDDSA25519-SHA512/wei25519 218",
5017 	.ec_str_p = &wei25519_str_params,
5018 	.priv_key = ed25519_218_test_vectors_priv_key,
5019 	.priv_key_len = sizeof(ed25519_218_test_vectors_priv_key),
5020 	.nn_random = NULL,
5021 	.hash_type = SHA512,
5022 	.msg = (const char *)ed25519_218_test_vectors_message,
5023 	.msglen = sizeof(ed25519_218_test_vectors_message),
5024 	.sig_type = EDDSA25519,
5025 	.exp_sig = ed25519_218_test_vectors_expected_sig,
5026 	.exp_siglen = sizeof(ed25519_218_test_vectors_expected_sig),
5027 	.adata = NULL,
5028 	.adata_len = 0
5029 };
5030 
5031 /************************************************/
5032 static const u8 ed25519_219_test_vectors_priv_key[] = {
5033 	0xdf, 0x2d, 0xf8, 0xa9, 0xd6, 0x6d, 0x56, 0x38, 0xcd, 0xee, 0x09, 0x32, 0x4e, 0x7b, 0x10, 0xf8, 0xed, 0x29, 0xab, 0x91, 0x38, 0x7e, 0x31, 0x47, 0xb7, 0xdc, 0x03, 0xf7, 0xcd, 0x80, 0x05, 0x08, };
5034 static const u8 ed25519_219_test_vectors_message[] = {
5035 	0x21, 0x57, 0x66, 0x15, 0xc9, 0x34, 0x6a, 0x63, 0xdc, 0xcf, 0x0c, 0x50, 0xec, 0xbd, 0x7c, 0x6d, 0x72, 0xad, 0x45, 0x2c, 0xfe, 0xd4, 0x3e, 0xa7, 0x32, 0x02, 0xcc, 0x7a, 0x98, 0x57, 0x60, 0x56, 0xb9, 0x66, 0x4b, 0x54, 0x62, 0x29, 0x05, 0xa1, 0xe7, 0x22, 0x17, 0x20, 0x73, 0x0a, 0xc6, 0x85, 0xd3, 0xbd, 0x39, 0x77, 0xec, 0x39, 0x59, 0xd4, 0x46, 0xbf, 0xa9, 0x41, 0xe7, 0x25, 0xb6, 0xfe, 0x16, 0xaf, 0xe5, 0x43, 0x2c, 0x4b, 0x4b, 0xde, 0xe7, 0xaa, 0x0f, 0xd8, 0x03, 0x09, 0x48, 0xed, 0x6f, 0xcb, 0xa7, 0xc0, 0xbd, 0xb4, 0x0c, 0x2e, 0x51, 0x7d, 0xa9, 0x74, 0x56, 0xe7, 0x4e, 0x1f, 0x93, 0xd5, 0xed, 0x67, 0x6d, 0xe0, 0xf4, 0xa8, 0xb0, 0xae, 0xa4, 0x49, 0x40, 0x4b, 0xd1, 0x5b, 0x6d, 0xa7, 0x9d, 0xc1, 0xb8, 0x13, 0x96, 0x5f, 0xe5, 0x57, 0x24, 0x10, 0xd7, 0x6f, 0x5b, 0x5e, 0xac, 0x66, 0x30, 0x50, 0x57, 0x03, 0x11, 0xdc, 0x98, 0x42, 0xb6, 0xfb, 0xf8, 0x80, 0x6a, 0xec, 0x03, 0x15, 0x17, 0x15, 0xca, 0xcf, 0x7f, 0x21, 0x80, 0x2e, 0x8b, 0xf5, 0xe9, 0x8a, 0x89, 0xc0, 0xd7, 0xd0, 0xd0, 0x98, 0xb7, 0x3c, 0x6e, 0xfc, 0x09, 0x96, 0x2e, 0x36, 0xb4, 0xe0, 0x30, 0xc1, 0xa6, 0x4b, 0x5d, 0x34, 0x9f, 0x5f, 0x20, 0x42, 0xc7, 0x44, 0x28, 0x67, 0x1e, 0x4a, 0x2c, 0x7f, 0xea, 0x0c, 0xae, 0xe2, 0x42, 0x2d, 0x85, 0xc4, 0xfc, 0xdd, 0xfe, 0xd3, 0x22, 0x13, 0x85, 0x9a, 0x69, 0x95, 0x5d, 0x4e, 0x3e, 0xbb, 0x7e, 0x1b, 0x20, 0x22, };
5036 static const u8 ed25519_219_test_vectors_expected_sig[] = {
5037 	0x9a, 0x10, 0x74, 0x53, 0x1e, 0xd4, 0x3d, 0x07, 0xbf, 0xfc, 0x7f, 0x2b, 0x6c, 0x13, 0xb8, 0x83, 0x8f, 0xc7, 0x5c, 0xba, 0x02, 0xc7, 0xd1, 0xec, 0x7b, 0xa3, 0x8b, 0xca, 0x3c, 0xef, 0x20, 0xdc, 0x9b, 0xad, 0xf3, 0xa3, 0x06, 0x4a, 0x2c, 0x93, 0xb1, 0x84, 0x24, 0x41, 0x42, 0x0b, 0x6a, 0x8d, 0x42, 0x1a, 0x96, 0x0d, 0x70, 0xdf, 0xb7, 0xc7, 0x0e, 0xec, 0x29, 0x5f, 0x21, 0xf8, 0x3f, 0x0a, };
5038 static const ec_test_case ed25519_219_test_case = {
5039 	.name = "EDDSA25519-SHA512/wei25519 219",
5040 	.ec_str_p = &wei25519_str_params,
5041 	.priv_key = ed25519_219_test_vectors_priv_key,
5042 	.priv_key_len = sizeof(ed25519_219_test_vectors_priv_key),
5043 	.nn_random = NULL,
5044 	.hash_type = SHA512,
5045 	.msg = (const char *)ed25519_219_test_vectors_message,
5046 	.msglen = sizeof(ed25519_219_test_vectors_message),
5047 	.sig_type = EDDSA25519,
5048 	.exp_sig = ed25519_219_test_vectors_expected_sig,
5049 	.exp_siglen = sizeof(ed25519_219_test_vectors_expected_sig),
5050 	.adata = NULL,
5051 	.adata_len = 0
5052 };
5053 
5054 /************************************************/
5055 static const u8 ed25519_220_test_vectors_priv_key[] = {
5056 	0xe8, 0xee, 0x06, 0x5f, 0x99, 0x07, 0xf1, 0xef, 0xa2, 0xda, 0xec, 0xb2, 0x3a, 0x04, 0x25, 0xf3, 0x53, 0x09, 0x4d, 0xa0, 0x2b, 0xc2, 0xc9, 0x31, 0xf0, 0xa5, 0x87, 0xef, 0xc0, 0xd1, 0x3d, 0xe1, };
5057 static const u8 ed25519_220_test_vectors_message[] = {
5058 	0xa2, 0xf0, 0xc1, 0x37, 0x34, 0x73, 0xa3, 0x05, 0xd8, 0xf1, 0xd9, 0x91, 0x38, 0xb0, 0x6b, 0x9a, 0x96, 0x94, 0xff, 0xaa, 0x8a, 0x88, 0x22, 0x2d, 0xe9, 0xf7, 0x29, 0xbe, 0xe1, 0x30, 0x51, 0x75, 0xdf, 0xb1, 0x70, 0x01, 0xcc, 0x77, 0xf6, 0x7b, 0x6d, 0x40, 0xc9, 0x0c, 0x1a, 0x28, 0xfb, 0x22, 0x6c, 0x11, 0x28, 0x6d, 0xb4, 0xa1, 0x3e, 0x45, 0xe6, 0x92, 0x11, 0x24, 0x2b, 0xcd, 0xd0, 0x1c, 0xb6, 0xe2, 0xc4, 0x54, 0xe7, 0x6c, 0x0c, 0xab, 0x88, 0x1b, 0x4d, 0x2d, 0x9d, 0x3a, 0xb1, 0x00, 0xa5, 0xd6, 0x1d, 0x17, 0x25, 0xd8, 0x66, 0xe4, 0xfd, 0xb6, 0x6d, 0x93, 0xd7, 0x7f, 0x5b, 0x30, 0x86, 0x93, 0xb9, 0xb5, 0xa3, 0x33, 0xe5, 0x7f, 0xa2, 0x5d, 0x1e, 0x5d, 0x2e, 0x38, 0xdf, 0x6e, 0x4e, 0x9e, 0xc8, 0x41, 0x59, 0xbb, 0xee, 0x1f, 0xfe, 0xa9, 0x26, 0x83, 0x6a, 0x01, 0x01, 0xc9, 0x14, 0x83, 0xbd, 0x5b, 0xc8, 0x8a, 0x6f, 0x1c, 0xc4, 0xd4, 0xe7, 0xf0, 0x08, 0xad, 0x08, 0x45, 0x3a, 0x01, 0x23, 0x42, 0x9d, 0xd3, 0x35, 0x78, 0x1c, 0x7c, 0xbf, 0x8d, 0x68, 0x5a, 0x89, 0x99, 0xed, 0x11, 0x77, 0x60, 0x70, 0x04, 0xa1, 0x3c, 0x4c, 0xb5, 0xea, 0x49, 0x08, 0xc5, 0x42, 0x60, 0x7d, 0x3f, 0x2c, 0xd6, 0x69, 0x0c, 0xf1, 0xf2, 0xa7, 0x45, 0x5b, 0xbd, 0x38, 0xf5, 0x38, 0xf0, 0x7a, 0x10, 0x39, 0x64, 0x31, 0x7e, 0xfb, 0xce, 0xe3, 0x7e, 0xb4, 0x69, 0x31, 0xc0, 0x27, 0xcf, 0x15, 0x3e, 0xf8, 0x6e, 0x43, 0xd7, 0x82, 0x81, 0xeb, 0xd7, 0x10, };
5059 static const u8 ed25519_220_test_vectors_expected_sig[] = {
5060 	0xa5, 0x10, 0xdf, 0xf4, 0x2d, 0x45, 0x59, 0xa1, 0x9a, 0x7b, 0xf0, 0xfe, 0x0b, 0xea, 0x53, 0xd3, 0xe1, 0xf2, 0x2d, 0xfa, 0x6b, 0xe5, 0x50, 0x39, 0x89, 0x5e, 0x12, 0xa5, 0xd0, 0x7d, 0xa5, 0xf2, 0xe3, 0x77, 0x13, 0xcc, 0xb2, 0xeb, 0x21, 0x60, 0x11, 0x62, 0x8f, 0x69, 0x83, 0xf8, 0x71, 0xfe, 0xe2, 0x86, 0xe6, 0x6f, 0xff, 0x4b, 0xe7, 0x58, 0x2c, 0x96, 0x1a, 0x1e, 0xd7, 0x56, 0x84, 0x04, };
5061 static const ec_test_case ed25519_220_test_case = {
5062 	.name = "EDDSA25519-SHA512/wei25519 220",
5063 	.ec_str_p = &wei25519_str_params,
5064 	.priv_key = ed25519_220_test_vectors_priv_key,
5065 	.priv_key_len = sizeof(ed25519_220_test_vectors_priv_key),
5066 	.nn_random = NULL,
5067 	.hash_type = SHA512,
5068 	.msg = (const char *)ed25519_220_test_vectors_message,
5069 	.msglen = sizeof(ed25519_220_test_vectors_message),
5070 	.sig_type = EDDSA25519,
5071 	.exp_sig = ed25519_220_test_vectors_expected_sig,
5072 	.exp_siglen = sizeof(ed25519_220_test_vectors_expected_sig),
5073 	.adata = NULL,
5074 	.adata_len = 0
5075 };
5076 
5077 /************************************************/
5078 static const u8 ed25519_221_test_vectors_priv_key[] = {
5079 	0xc7, 0x2e, 0x67, 0xd8, 0xc3, 0xfe, 0xc0, 0x04, 0xff, 0x61, 0x87, 0x18, 0xa9, 0x09, 0x9e, 0xb8, 0xad, 0x7b, 0x06, 0xff, 0x3b, 0x8c, 0x54, 0x2a, 0x7e, 0x8b, 0x98, 0x47, 0x31, 0x34, 0x75, 0xe1, };
5080 static const u8 ed25519_221_test_vectors_message[] = {
5081 	0xa8, 0xf3, 0x41, 0x35, 0xc0, 0x13, 0x2e, 0xc9, 0x5b, 0x64, 0xb0, 0xcb, 0xf5, 0x1d, 0x66, 0x90, 0x01, 0x43, 0x37, 0x04, 0x06, 0x79, 0x1f, 0xbb, 0x55, 0xf2, 0xb8, 0xca, 0x95, 0x3c, 0xc7, 0x4a, 0x46, 0xe0, 0x8b, 0x00, 0x2f, 0xa2, 0xda, 0x21, 0xb9, 0x51, 0xb8, 0x87, 0x1f, 0x7a, 0x29, 0xbc, 0x6d, 0x38, 0x79, 0x0a, 0xfc, 0x66, 0xa3, 0x29, 0xc3, 0x97, 0xd9, 0xf9, 0x25, 0x0b, 0xae, 0x0e, 0x30, 0xae, 0x34, 0x26, 0xe0, 0x8d, 0x8e, 0xad, 0x01, 0x79, 0xa3, 0xb3, 0x13, 0xc9, 0x08, 0x83, 0x91, 0x92, 0xf2, 0x89, 0xa3, 0xf3, 0xb6, 0xe9, 0x60, 0xb4, 0xc5, 0xce, 0xbe, 0xf0, 0xa0, 0x9d, 0xaa, 0x9c, 0x7a, 0x15, 0xc1, 0x9d, 0x4e, 0xbc, 0x6f, 0xc2, 0xac, 0x3c, 0xd0, 0x22, 0x32, 0xe8, 0x32, 0xb2, 0x34, 0xed, 0xd7, 0x96, 0x5d, 0x68, 0x7b, 0xfe, 0xb7, 0x58, 0xf7, 0x0f, 0xa7, 0x96, 0x38, 0x41, 0xb7, 0x85, 0x9b, 0xb9, 0x7c, 0x97, 0x1b, 0xd5, 0x57, 0xbc, 0x87, 0x69, 0x52, 0x4a, 0xc4, 0xc6, 0xee, 0xb3, 0x57, 0x97, 0x93, 0x33, 0x4b, 0x52, 0x2d, 0x17, 0x6b, 0xc6, 0x2f, 0x86, 0xb4, 0xd5, 0xc0, 0xd4, 0x01, 0x70, 0x36, 0xd2, 0xb6, 0xbd, 0x4e, 0x43, 0x84, 0x41, 0x6e, 0xf8, 0x26, 0x31, 0x39, 0x69, 0x1a, 0x86, 0x06, 0x17, 0x0d, 0x73, 0xc9, 0x3d, 0x64, 0x17, 0xdc, 0xc1, 0xa0, 0x8a, 0x53, 0x7c, 0x9e, 0xd4, 0x40, 0x04, 0x71, 0xa4, 0x6f, 0x52, 0x90, 0x7b, 0x46, 0xb1, 0x0a, 0x8b, 0x68, 0x89, 0xdb, 0xb4, 0x64, 0x7a, 0x8b, 0xbc, 0x71, 0x49, };
5082 static const u8 ed25519_221_test_vectors_expected_sig[] = {
5083 	0x2d, 0x7b, 0xab, 0x8e, 0xbd, 0xa7, 0xfc, 0xa5, 0xbb, 0x3c, 0x25, 0xf5, 0x1d, 0xc5, 0x1b, 0x73, 0xe6, 0xff, 0x6a, 0x3b, 0xb1, 0xb5, 0x2a, 0xcc, 0x78, 0x11, 0xa7, 0xd2, 0x59, 0x5c, 0xd6, 0xfd, 0xaf, 0x73, 0x04, 0x94, 0x41, 0x8e, 0x2f, 0x57, 0xef, 0xdc, 0x56, 0x17, 0xb0, 0x66, 0xfd, 0x7b, 0x62, 0x07, 0x68, 0x0d, 0x94, 0xfb, 0x8c, 0x43, 0xd3, 0xd4, 0x74, 0x0b, 0x41, 0xcb, 0x69, 0x01, };
5084 static const ec_test_case ed25519_221_test_case = {
5085 	.name = "EDDSA25519-SHA512/wei25519 221",
5086 	.ec_str_p = &wei25519_str_params,
5087 	.priv_key = ed25519_221_test_vectors_priv_key,
5088 	.priv_key_len = sizeof(ed25519_221_test_vectors_priv_key),
5089 	.nn_random = NULL,
5090 	.hash_type = SHA512,
5091 	.msg = (const char *)ed25519_221_test_vectors_message,
5092 	.msglen = sizeof(ed25519_221_test_vectors_message),
5093 	.sig_type = EDDSA25519,
5094 	.exp_sig = ed25519_221_test_vectors_expected_sig,
5095 	.exp_siglen = sizeof(ed25519_221_test_vectors_expected_sig),
5096 	.adata = NULL,
5097 	.adata_len = 0
5098 };
5099 
5100 /************************************************/
5101 static const u8 ed25519_222_test_vectors_priv_key[] = {
5102 	0x69, 0x64, 0x50, 0xb5, 0x57, 0xec, 0x3c, 0x94, 0xcf, 0x1a, 0xf1, 0x32, 0x64, 0x75, 0x63, 0x4a, 0xa8, 0x1d, 0xef, 0x38, 0x14, 0xff, 0x30, 0xa0, 0x2b, 0xa7, 0xf2, 0x04, 0x4b, 0x59, 0xc0, 0xfe, };
5103 static const u8 ed25519_222_test_vectors_message[] = {
5104 	0xcc, 0x25, 0x78, 0x29, 0xf3, 0x0a, 0x5f, 0x90, 0xdf, 0xdb, 0xc2, 0x47, 0xd4, 0x2e, 0x38, 0x87, 0x38, 0xb7, 0x6c, 0x41, 0xef, 0x8a, 0x82, 0xa5, 0xe0, 0x22, 0x5d, 0xdf, 0x1e, 0x38, 0x6d, 0x77, 0x08, 0x0b, 0x3b, 0x9d, 0xf8, 0x6c, 0x54, 0xb8, 0x5c, 0xdf, 0x2c, 0x32, 0xf3, 0x67, 0xab, 0xa0, 0xc3, 0xb6, 0xbf, 0x88, 0x8a, 0x5a, 0x69, 0x03, 0x52, 0x9b, 0x6a, 0xeb, 0x4d, 0x54, 0x07, 0xa1, 0x01, 0x80, 0x14, 0x91, 0x14, 0x13, 0x02, 0x28, 0xfc, 0x43, 0x56, 0xcc, 0xf3, 0x66, 0xb7, 0x7b, 0xe8, 0x97, 0x96, 0xa9, 0xe7, 0x1a, 0x0c, 0x69, 0x3f, 0x31, 0xe5, 0x84, 0xa4, 0xf1, 0x43, 0x09, 0x7b, 0xa3, 0x70, 0x36, 0x3b, 0x67, 0xb2, 0xf2, 0xe2, 0xfd, 0x8d, 0x6f, 0xe8, 0xb4, 0xe8, 0xdb, 0xf0, 0xd7, 0xdc, 0xc1, 0xa8, 0x36, 0x00, 0x41, 0x15, 0x8a, 0xa2, 0xaf, 0xf7, 0xe2, 0xa3, 0x25, 0xb8, 0xe5, 0x18, 0xf1, 0x93, 0xa2, 0x8b, 0xae, 0x05, 0xe3, 0xd5, 0x2b, 0x26, 0x62, 0x1a, 0xf4, 0x02, 0x02, 0x6d, 0x7f, 0x25, 0x0e, 0x86, 0xdc, 0xee, 0x30, 0x1a, 0x58, 0xb6, 0x31, 0xea, 0xdf, 0x45, 0x27, 0xe9, 0x58, 0xf0, 0x2a, 0x61, 0x58, 0x7f, 0x0b, 0xb5, 0x16, 0xce, 0xfa, 0xc0, 0x09, 0xfe, 0x51, 0x05, 0x2f, 0xff, 0x53, 0x33, 0x6d, 0xbd, 0x94, 0xe7, 0x26, 0x6d, 0x3b, 0x43, 0xca, 0xba, 0x8a, 0x1b, 0x38, 0xe5, 0xd8, 0x71, 0xc2, 0xa2, 0x4a, 0x4c, 0x41, 0x2f, 0xff, 0x3f, 0x7a, 0x9a, 0x52, 0xa8, 0xab, 0x23, 0xba, 0xc9, 0x79, 0x1b, 0x2b, 0x5a, 0x66, 0x9a, };
5105 static const u8 ed25519_222_test_vectors_expected_sig[] = {
5106 	0xce, 0x8b, 0x0a, 0x57, 0x79, 0xf4, 0xf5, 0xf4, 0x01, 0xe8, 0x4d, 0x65, 0x92, 0x7a, 0x0c, 0x28, 0xdf, 0x82, 0x9e, 0x95, 0xd0, 0x9b, 0xfa, 0x97, 0x11, 0x1b, 0x87, 0x00, 0x07, 0x8f, 0xf8, 0x94, 0xcf, 0x72, 0x77, 0xe3, 0x4a, 0x71, 0x61, 0x44, 0xd5, 0x53, 0x06, 0xfc, 0x9e, 0x2f, 0x64, 0xcd, 0x28, 0x75, 0x83, 0xcc, 0x80, 0x03, 0xbe, 0x0e, 0x8f, 0xaf, 0x26, 0xaf, 0x76, 0x40, 0x14, 0x0e, };
5107 static const ec_test_case ed25519_222_test_case = {
5108 	.name = "EDDSA25519-SHA512/wei25519 222",
5109 	.ec_str_p = &wei25519_str_params,
5110 	.priv_key = ed25519_222_test_vectors_priv_key,
5111 	.priv_key_len = sizeof(ed25519_222_test_vectors_priv_key),
5112 	.nn_random = NULL,
5113 	.hash_type = SHA512,
5114 	.msg = (const char *)ed25519_222_test_vectors_message,
5115 	.msglen = sizeof(ed25519_222_test_vectors_message),
5116 	.sig_type = EDDSA25519,
5117 	.exp_sig = ed25519_222_test_vectors_expected_sig,
5118 	.exp_siglen = sizeof(ed25519_222_test_vectors_expected_sig),
5119 	.adata = NULL,
5120 	.adata_len = 0
5121 };
5122 
5123 /************************************************/
5124 static const u8 ed25519_223_test_vectors_priv_key[] = {
5125 	0xa8, 0xdd, 0x35, 0xf0, 0x54, 0xfb, 0x6f, 0xf6, 0xf0, 0xab, 0x09, 0x4a, 0x0d, 0x3d, 0x1c, 0x26, 0x28, 0x32, 0x18, 0x1d, 0xf3, 0x5c, 0xcd, 0x51, 0x92, 0x54, 0x5e, 0xbd, 0x6a, 0x9c, 0xf5, 0x29, };
5126 static const u8 ed25519_223_test_vectors_message[] = {
5127 	0x55, 0xa7, 0xad, 0x91, 0x32, 0xd6, 0x3a, 0xc1, 0x61, 0xe7, 0xad, 0xb1, 0x32, 0xb9, 0x18, 0x9f, 0xdd, 0x84, 0xc3, 0x61, 0xc1, 0xe4, 0xf5, 0x41, 0x9a, 0x6d, 0xf7, 0x3d, 0xf4, 0xd7, 0xae, 0xb2, 0x9a, 0x8d, 0xc4, 0xbf, 0x01, 0x49, 0x0d, 0x4f, 0x48, 0x4e, 0x2d, 0x12, 0x07, 0x75, 0x17, 0xf5, 0xfc, 0x7a, 0xd0, 0xbd, 0xed, 0xa2, 0x0a, 0x6c, 0xb0, 0x22, 0x79, 0x42, 0x29, 0x0b, 0x08, 0xc3, 0xfe, 0x33, 0xab, 0x9b, 0x21, 0x35, 0xbc, 0x38, 0xa6, 0x57, 0x9a, 0x54, 0xbd, 0x98, 0x2f, 0x7d, 0x14, 0x17, 0xce, 0x86, 0x71, 0x17, 0xae, 0xa9, 0x18, 0xdb, 0xd3, 0xdd, 0x47, 0x6e, 0x7e, 0xb5, 0xb5, 0xd3, 0xc3, 0xe4, 0x8a, 0x86, 0x4a, 0x2f, 0x94, 0x2a, 0x31, 0x50, 0x1a, 0xa2, 0xb2, 0x9b, 0x53, 0xb8, 0x05, 0x13, 0xc9, 0x5d, 0x6a, 0x41, 0x18, 0x44, 0xf0, 0xde, 0xdf, 0x16, 0xa2, 0x9a, 0xc2, 0x67, 0xd3, 0x31, 0xe5, 0x3b, 0xdc, 0x25, 0x39, 0xbf, 0xcf, 0x32, 0xdc, 0x9b, 0x5d, 0x64, 0x0f, 0x12, 0x31, 0xe2, 0xca, 0xfb, 0x0a, 0xe9, 0x4b, 0xb5, 0x18, 0x94, 0x26, 0x86, 0x33, 0x64, 0x26, 0x2e, 0xfb, 0x47, 0xb5, 0xb5, 0xcc, 0xdb, 0xbc, 0x93, 0x32, 0x42, 0x16, 0xa7, 0x99, 0xb6, 0xf5, 0x0d, 0x37, 0x04, 0xf1, 0x5e, 0xd5, 0x9a, 0xf6, 0xcc, 0x7d, 0x91, 0x0c, 0xf0, 0x62, 0xd1, 0xbe, 0x63, 0x2d, 0xca, 0x5d, 0xf2, 0x13, 0xd4, 0x87, 0xd8, 0x56, 0x4f, 0x2b, 0x2b, 0xd7, 0xd8, 0x18, 0xbb, 0xa2, 0x7c, 0x36, 0x40, 0x13, 0xd9, 0x2d, 0x7f, 0x72, 0x62, 0x54, 0x62, };
5128 static const u8 ed25519_223_test_vectors_expected_sig[] = {
5129 	0xfa, 0x70, 0x9f, 0xbc, 0x83, 0x82, 0xaf, 0x83, 0xd1, 0x18, 0x12, 0x61, 0x8d, 0xfa, 0xca, 0x45, 0x2e, 0xab, 0x83, 0xe4, 0xc5, 0x3f, 0xe9, 0xe5, 0x85, 0x84, 0x67, 0xd0, 0x7b, 0x67, 0x67, 0xe1, 0x79, 0x75, 0xc1, 0xe0, 0x63, 0x93, 0xd6, 0xdd, 0xe1, 0x5a, 0x34, 0xd9, 0x47, 0x3d, 0x1c, 0xf4, 0xd6, 0xd8, 0xc2, 0xd5, 0x73, 0x94, 0x52, 0x00, 0x80, 0xfa, 0xc4, 0xe4, 0x34, 0x48, 0xbe, 0x07, };
5130 static const ec_test_case ed25519_223_test_case = {
5131 	.name = "EDDSA25519-SHA512/wei25519 223",
5132 	.ec_str_p = &wei25519_str_params,
5133 	.priv_key = ed25519_223_test_vectors_priv_key,
5134 	.priv_key_len = sizeof(ed25519_223_test_vectors_priv_key),
5135 	.nn_random = NULL,
5136 	.hash_type = SHA512,
5137 	.msg = (const char *)ed25519_223_test_vectors_message,
5138 	.msglen = sizeof(ed25519_223_test_vectors_message),
5139 	.sig_type = EDDSA25519,
5140 	.exp_sig = ed25519_223_test_vectors_expected_sig,
5141 	.exp_siglen = sizeof(ed25519_223_test_vectors_expected_sig),
5142 	.adata = NULL,
5143 	.adata_len = 0
5144 };
5145 
5146 /************************************************/
5147 static const u8 ed25519_224_test_vectors_priv_key[] = {
5148 	0xae, 0x1d, 0x2c, 0x6b, 0x17, 0x1b, 0xe2, 0x4c, 0x2e, 0x41, 0x3d, 0x36, 0x4d, 0xcd, 0xa9, 0x7f, 0xa4, 0x76, 0xaa, 0xf9, 0x12, 0x3d, 0x33, 0x66, 0xb0, 0xbe, 0x03, 0xa1, 0x42, 0xfe, 0x6e, 0x7d, };
5149 static const u8 ed25519_224_test_vectors_message[] = {
5150 	0x9e, 0x6c, 0x2f, 0xc7, 0x6e, 0x30, 0xf1, 0x7c, 0xd8, 0xb4, 0x98, 0x84, 0x5d, 0xa4, 0x4f, 0x22, 0xd5, 0x5b, 0xec, 0x15, 0x0c, 0x61, 0x30, 0xb4, 0x11, 0xc6, 0x33, 0x9d, 0x14, 0xb3, 0x99, 0x69, 0xab, 0x10, 0x33, 0xbe, 0x68, 0x75, 0x69, 0xa9, 0x91, 0xa0, 0x6f, 0x70, 0xb2, 0xa8, 0xa6, 0x93, 0x1a, 0x77, 0x7b, 0x0e, 0x4b, 0xe6, 0x72, 0x3c, 0xd7, 0x5e, 0x5a, 0xa7, 0x53, 0x28, 0x13, 0xef, 0x50, 0xb3, 0xd3, 0x72, 0x71, 0x64, 0x0f, 0xa2, 0xfb, 0x28, 0x7c, 0x03, 0x55, 0x25, 0x76, 0x41, 0xea, 0x93, 0x5c, 0x85, 0x1c, 0x0b, 0x6a, 0xc6, 0x8b, 0xe7, 0x2c, 0x88, 0xdf, 0xc5, 0x85, 0x6f, 0xb5, 0x35, 0x43, 0xfb, 0x37, 0x7b, 0x0d, 0xbf, 0x64, 0x80, 0x8a, 0xfc, 0xc4, 0x27, 0x4a, 0xa4, 0x56, 0x85, 0x5a, 0xd2, 0x8f, 0x61, 0x26, 0x7a, 0x41, 0x9b, 0xc7, 0x21, 0x66, 0xb9, 0xca, 0x73, 0xcd, 0x3b, 0xb7, 0x9b, 0xf7, 0xdd, 0x25, 0x9b, 0xaa, 0x75, 0x91, 0x14, 0x40, 0x97, 0x4b, 0x68, 0xe8, 0xba, 0x95, 0xa7, 0x8c, 0xbb, 0xe1, 0xcb, 0x6a, 0xd8, 0x07, 0xa3, 0x3a, 0x1c, 0xce, 0x2f, 0x40, 0x6f, 0xf7, 0xbc, 0xbd, 0x05, 0x8b, 0x44, 0xa3, 0x11, 0xb3, 0x8a, 0xb4, 0xd4, 0xe6, 0x14, 0x16, 0xc4, 0xa7, 0x4d, 0x88, 0x3d, 0x6a, 0x6a, 0x79, 0x4a, 0xbd, 0x9c, 0xf1, 0xc0, 0x39, 0x02, 0x8b, 0xf1, 0xb2, 0x0e, 0x3d, 0x49, 0x90, 0xaa, 0xe8, 0x6f, 0x32, 0xbf, 0x06, 0xcd, 0x83, 0x49, 0xa7, 0xa8, 0x84, 0xcc, 0xe0, 0x16, 0x5e, 0x36, 0xa0, 0x64, 0x0e, 0x98, 0x7b, 0x9d, 0x51, };
5151 static const u8 ed25519_224_test_vectors_expected_sig[] = {
5152 	0x90, 0x90, 0x08, 0xf3, 0xfc, 0xff, 0xf4, 0x39, 0x88, 0xae, 0xe1, 0x31, 0x4b, 0x15, 0xb1, 0x82, 0x2c, 0xaa, 0xa8, 0xda, 0xb1, 0x20, 0xbd, 0x45, 0x2a, 0xf4, 0x94, 0xe0, 0x83, 0x35, 0xb4, 0x4a, 0x94, 0xc3, 0x13, 0xc4, 0xb1, 0x45, 0xea, 0xdd, 0x51, 0x66, 0xea, 0xac, 0x03, 0x4e, 0x29, 0xb7, 0xe6, 0xac, 0x79, 0x41, 0xd5, 0x96, 0x1f, 0xc4, 0x9d, 0x26, 0x0e, 0x1c, 0x48, 0x20, 0xb0, 0x0e, };
5153 static const ec_test_case ed25519_224_test_case = {
5154 	.name = "EDDSA25519-SHA512/wei25519 224",
5155 	.ec_str_p = &wei25519_str_params,
5156 	.priv_key = ed25519_224_test_vectors_priv_key,
5157 	.priv_key_len = sizeof(ed25519_224_test_vectors_priv_key),
5158 	.nn_random = NULL,
5159 	.hash_type = SHA512,
5160 	.msg = (const char *)ed25519_224_test_vectors_message,
5161 	.msglen = sizeof(ed25519_224_test_vectors_message),
5162 	.sig_type = EDDSA25519,
5163 	.exp_sig = ed25519_224_test_vectors_expected_sig,
5164 	.exp_siglen = sizeof(ed25519_224_test_vectors_expected_sig),
5165 	.adata = NULL,
5166 	.adata_len = 0
5167 };
5168 
5169 /************************************************/
5170 static const u8 ed25519_225_test_vectors_priv_key[] = {
5171 	0x02, 0x65, 0xa7, 0x94, 0x4b, 0xac, 0xcf, 0xeb, 0xf4, 0x17, 0xb8, 0x7a, 0xe1, 0xe6, 0xdf, 0x2f, 0xf2, 0xa5, 0x44, 0xff, 0xb5, 0x82, 0x25, 0xa0, 0x8e, 0x09, 0x2b, 0xe0, 0x3f, 0x02, 0x60, 0x97, };
5172 static const u8 ed25519_225_test_vectors_message[] = {
5173 	0x87, 0x4e, 0xd7, 0x12, 0xa2, 0xc4, 0x1c, 0x26, 0xa2, 0xd9, 0x52, 0x7c, 0x55, 0x23, 0x3f, 0xde, 0x0a, 0x4f, 0xfb, 0x86, 0xaf, 0x8e, 0x8a, 0x1d, 0xd0, 0xa8, 0x20, 0x50, 0x2c, 0x5a, 0x26, 0x93, 0x2b, 0xf8, 0x7e, 0xe0, 0xde, 0x72, 0xa8, 0x87, 0x4e, 0xf2, 0xee, 0xbf, 0x83, 0x38, 0x4d, 0x44, 0x3f, 0x7a, 0x5f, 0x46, 0xa1, 0x23, 0x3b, 0x4f, 0xb5, 0x14, 0xa2, 0x46, 0x99, 0x81, 0x82, 0x48, 0x94, 0xf3, 0x25, 0xbf, 0x86, 0xaa, 0x0f, 0xe1, 0x21, 0x71, 0x53, 0xd4, 0x0f, 0x35, 0x56, 0xc4, 0x3a, 0x8e, 0xa9, 0x26, 0x94, 0x44, 0xe1, 0x49, 0xfb, 0x70, 0xe9, 0x41, 0x5a, 0xe0, 0x76, 0x6c, 0x56, 0x5d, 0x93, 0xd1, 0xd6, 0x36, 0x8f, 0x9a, 0x23, 0xa0, 0xad, 0x76, 0xf9, 0xa0, 0x9d, 0xbf, 0x79, 0x63, 0x4a, 0xa9, 0x71, 0x78, 0x67, 0x77, 0x34, 0xd0, 0x4e, 0xf1, 0xa5, 0xb3, 0xf8, 0x7c, 0xe1, 0xee, 0x9f, 0xc5, 0xa9, 0xac, 0x4e, 0x7a, 0x72, 0xc9, 0xd7, 0xd3, 0x1e, 0xc8, 0x9e, 0x28, 0xa8, 0x45, 0xd2, 0xe1, 0x10, 0x3c, 0x15, 0xd6, 0x41, 0x0c, 0xe3, 0xc7, 0x23, 0xb0, 0xcc, 0x22, 0x09, 0xf6, 0x98, 0xaa, 0x9f, 0xa2, 0x88, 0xbb, 0xbe, 0xcf, 0xd9, 0xe5, 0xf8, 0x9c, 0xdc, 0xb0, 0x9d, 0x3c, 0x21, 0x5f, 0xeb, 0x47, 0xa5, 0x8b, 0x71, 0xea, 0x70, 0xe2, 0xab, 0xea, 0xd6, 0x7f, 0x1b, 0x08, 0xea, 0x6f, 0x56, 0x1f, 0xb9, 0x3e, 0xf0, 0x52, 0x32, 0xee, 0xda, 0xbf, 0xc1, 0xc7, 0x70, 0x2a, 0xb0, 0x39, 0xbc, 0x46, 0x5c, 0xf5, 0x7e, 0x20, 0x7f, 0x10, 0x93, 0xfc, 0x82, 0x08, };
5174 static const u8 ed25519_225_test_vectors_expected_sig[] = {
5175 	0xb6, 0xc4, 0x45, 0xb7, 0xed, 0xdc, 0xa5, 0x93, 0x5c, 0x61, 0x70, 0x8d, 0x44, 0xea, 0x59, 0x06, 0xbd, 0x19, 0xcc, 0x54, 0x22, 0x4e, 0xae, 0x3c, 0x8e, 0x46, 0xce, 0x99, 0xf5, 0xcb, 0xbd, 0x34, 0x1f, 0x26, 0x62, 0x39, 0x38, 0xf5, 0xfe, 0x04, 0x07, 0x0b, 0x1b, 0x02, 0xe7, 0x1f, 0xbb, 0x7c, 0x78, 0xa9, 0x0c, 0x0d, 0xda, 0x66, 0xcb, 0x14, 0x3f, 0xab, 0x02, 0xe6, 0xa0, 0xba, 0xe3, 0x06, };
5176 static const ec_test_case ed25519_225_test_case = {
5177 	.name = "EDDSA25519-SHA512/wei25519 225",
5178 	.ec_str_p = &wei25519_str_params,
5179 	.priv_key = ed25519_225_test_vectors_priv_key,
5180 	.priv_key_len = sizeof(ed25519_225_test_vectors_priv_key),
5181 	.nn_random = NULL,
5182 	.hash_type = SHA512,
5183 	.msg = (const char *)ed25519_225_test_vectors_message,
5184 	.msglen = sizeof(ed25519_225_test_vectors_message),
5185 	.sig_type = EDDSA25519,
5186 	.exp_sig = ed25519_225_test_vectors_expected_sig,
5187 	.exp_siglen = sizeof(ed25519_225_test_vectors_expected_sig),
5188 	.adata = NULL,
5189 	.adata_len = 0
5190 };
5191 
5192 /************************************************/
5193 static const u8 ed25519_226_test_vectors_priv_key[] = {
5194 	0x6b, 0xce, 0x4d, 0xfd, 0x53, 0xbf, 0xa5, 0x50, 0x6f, 0x2f, 0x55, 0x4d, 0x2d, 0x99, 0x4a, 0x0d, 0xc4, 0x0c, 0xaf, 0xcd, 0xec, 0x7e, 0x1b, 0xe0, 0x50, 0x00, 0x6e, 0x5c, 0x5a, 0x4b, 0x38, 0xa1, };
5195 static const u8 ed25519_226_test_vectors_message[] = {
5196 	0x32, 0x39, 0x19, 0x07, 0x47, 0xee, 0x33, 0xd4, 0x0b, 0xf8, 0x70, 0xac, 0x9a, 0xd4, 0x9d, 0x88, 0xee, 0x32, 0x0f, 0x63, 0xc0, 0x52, 0x57, 0xe8, 0xab, 0x2c, 0x60, 0x30, 0x65, 0x97, 0xce, 0x76, 0xd1, 0xf1, 0xe7, 0x92, 0xab, 0x6a, 0x65, 0xca, 0xa5, 0x44, 0xfb, 0xec, 0x20, 0x89, 0x2f, 0xd4, 0x96, 0x05, 0x94, 0xf3, 0x1b, 0x37, 0x63, 0xef, 0x07, 0xd4, 0x98, 0x2e, 0xae, 0x4a, 0x2d, 0xbf, 0x33, 0x77, 0xdc, 0xc1, 0xe3, 0xf9, 0x5e, 0x46, 0xed, 0x39, 0xb7, 0xf0, 0x22, 0x2f, 0x04, 0xbb, 0x5c, 0x3b, 0x43, 0x4c, 0x8f, 0x9f, 0x31, 0x0d, 0xe9, 0xf1, 0x22, 0xa2, 0x9f, 0x82, 0x41, 0xe8, 0x1e, 0x20, 0x65, 0x49, 0xae, 0x62, 0x8d, 0x2b, 0x8a, 0xd7, 0x68, 0x97, 0x2c, 0x98, 0x84, 0x7c, 0x11, 0x88, 0xad, 0x04, 0xc8, 0x35, 0x35, 0x63, 0x78, 0xbe, 0xf7, 0x9c, 0xd1, 0x26, 0x86, 0x94, 0x05, 0xb1, 0x29, 0xfd, 0xbd, 0xc3, 0xbc, 0x48, 0x9c, 0xbd, 0x13, 0x99, 0x50, 0x5d, 0xad, 0xef, 0x76, 0x17, 0xb5, 0xbe, 0x5d, 0xa1, 0x73, 0xd3, 0xe8, 0x0e, 0x58, 0x38, 0xc9, 0x9e, 0x34, 0x92, 0x76, 0x24, 0x27, 0x29, 0xe0, 0x21, 0x9b, 0xd7, 0x47, 0x6a, 0xe5, 0xc4, 0xf8, 0x1a, 0x12, 0x87, 0x8f, 0xb4, 0x83, 0xa6, 0xc0, 0xe9, 0xb0, 0xdf, 0x29, 0x62, 0xeb, 0x0b, 0xf0, 0x01, 0x57, 0x78, 0x2c, 0xf7, 0x68, 0xa1, 0xb7, 0x1c, 0x01, 0x01, 0x69, 0xee, 0x85, 0x22, 0xde, 0xf0, 0x02, 0x4a, 0xd7, 0xe4, 0x57, 0x75, 0xa2, 0x90, 0x63, 0x9c, 0x53, 0xaa, 0xf4, 0x81, 0x98, 0xc4, 0x2d, 0xe7, 0x5c, };
5197 static const u8 ed25519_226_test_vectors_expected_sig[] = {
5198 	0x99, 0xae, 0x67, 0x82, 0xff, 0x27, 0x64, 0x6c, 0x27, 0xf6, 0x1e, 0x23, 0x63, 0x6a, 0xe1, 0x88, 0x15, 0x21, 0xcf, 0xa5, 0xed, 0x25, 0x6f, 0x70, 0xbc, 0xe7, 0xce, 0x00, 0xb6, 0x82, 0x80, 0xce, 0x8e, 0x0c, 0x82, 0xaa, 0x76, 0x5a, 0xfb, 0x8b, 0x5a, 0x1f, 0xf2, 0xfe, 0x42, 0xc5, 0x74, 0x41, 0xe4, 0x58, 0xe4, 0x43, 0xdc, 0x8b, 0x12, 0x34, 0x77, 0xae, 0x33, 0xd8, 0x84, 0x88, 0x8c, 0x0b, };
5199 static const ec_test_case ed25519_226_test_case = {
5200 	.name = "EDDSA25519-SHA512/wei25519 226",
5201 	.ec_str_p = &wei25519_str_params,
5202 	.priv_key = ed25519_226_test_vectors_priv_key,
5203 	.priv_key_len = sizeof(ed25519_226_test_vectors_priv_key),
5204 	.nn_random = NULL,
5205 	.hash_type = SHA512,
5206 	.msg = (const char *)ed25519_226_test_vectors_message,
5207 	.msglen = sizeof(ed25519_226_test_vectors_message),
5208 	.sig_type = EDDSA25519,
5209 	.exp_sig = ed25519_226_test_vectors_expected_sig,
5210 	.exp_siglen = sizeof(ed25519_226_test_vectors_expected_sig),
5211 	.adata = NULL,
5212 	.adata_len = 0
5213 };
5214 
5215 /************************************************/
5216 static const u8 ed25519_227_test_vectors_priv_key[] = {
5217 	0x17, 0x86, 0x1a, 0x8d, 0x41, 0x54, 0xac, 0xd4, 0xfa, 0x9c, 0x8f, 0xc9, 0x47, 0xc1, 0x88, 0x6c, 0x11, 0x29, 0x0b, 0xe2, 0x22, 0x87, 0x2f, 0xf4, 0xf8, 0xcd, 0x25, 0x93, 0x9e, 0x4d, 0x13, 0x61, };
5218 static const u8 ed25519_227_test_vectors_message[] = {
5219 	0x18, 0x4d, 0xf5, 0xea, 0x32, 0x15, 0xeb, 0xe1, 0x80, 0x39, 0x0b, 0x0f, 0xf0, 0x42, 0xba, 0x23, 0x81, 0x15, 0x5a, 0x03, 0x8d, 0xc7, 0x32, 0xf7, 0x6a, 0x01, 0xc7, 0xe7, 0x0f, 0x82, 0xd1, 0xcc, 0xc9, 0xde, 0x9a, 0x05, 0x96, 0xb3, 0xfe, 0xe4, 0x47, 0x20, 0x9c, 0x99, 0x26, 0x84, 0xf6, 0x43, 0xdf, 0x21, 0xf4, 0xcf, 0x9d, 0x17, 0x92, 0x62, 0x79, 0x0e, 0x86, 0x23, 0xe4, 0x24, 0x72, 0xdc, 0x35, 0x19, 0x97, 0xe6, 0xda, 0x18, 0x9c, 0x07, 0xe1, 0xe8, 0x88, 0x2c, 0x07, 0xf8, 0x6c, 0x63, 0x37, 0xec, 0x01, 0x13, 0x91, 0x2c, 0xf9, 0x22, 0x15, 0xc8, 0xde, 0x19, 0x82, 0xb8, 0xfc, 0x57, 0xbf, 0xab, 0xc5, 0x5a, 0x3e, 0x87, 0x36, 0xf7, 0x36, 0x10, 0x42, 0x9d, 0x97, 0xfe, 0xb5, 0x1d, 0x79, 0x4f, 0x50, 0x5d, 0x0c, 0x5a, 0x0b, 0x3a, 0xbd, 0x48, 0xef, 0x7f, 0x55, 0xa6, 0x28, 0xf9, 0x0b, 0x85, 0x67, 0xa1, 0xc1, 0x5e, 0xa9, 0xd1, 0x90, 0xd7, 0xbf, 0x4e, 0xc2, 0xbc, 0x93, 0x34, 0xad, 0xa6, 0xcb, 0x92, 0x80, 0x8d, 0xfc, 0x20, 0x64, 0x83, 0x6f, 0xcf, 0xa4, 0x6b, 0x96, 0xfd, 0x7a, 0x5d, 0x6f, 0x4b, 0x05, 0x4d, 0xab, 0x09, 0xb7, 0x35, 0x95, 0xfe, 0xb8, 0x9e, 0xd0, 0x05, 0xb9, 0xec, 0x9d, 0x31, 0x88, 0x12, 0x1d, 0xe6, 0x96, 0x96, 0xd6, 0x4e, 0x7c, 0x7b, 0xbd, 0xfc, 0x1c, 0x46, 0x9f, 0xaf, 0x14, 0x8c, 0x38, 0xa7, 0x78, 0x59, 0x70, 0xaf, 0xe1, 0xac, 0xd0, 0x6a, 0x92, 0xc9, 0x94, 0x78, 0xfe, 0x44, 0x97, 0x4e, 0x3b, 0xb2, 0x09, 0x5e, 0x44, 0x67, 0xe9, 0xb2, 0xe9, 0x96, };
5220 static const u8 ed25519_227_test_vectors_expected_sig[] = {
5221 	0xa5, 0xee, 0x02, 0x4c, 0xcd, 0xbd, 0xd4, 0xc2, 0x1a, 0x24, 0x70, 0x9e, 0xc5, 0x3d, 0xcc, 0xb7, 0xee, 0x17, 0x62, 0x6d, 0xd0, 0x0a, 0x09, 0x3d, 0x08, 0x84, 0xf5, 0xb4, 0x5c, 0x4c, 0x9d, 0x16, 0x91, 0x84, 0x01, 0x51, 0xc3, 0x3c, 0x8a, 0xa0, 0x7b, 0x69, 0xb3, 0x4e, 0x16, 0xf6, 0x16, 0x47, 0xeb, 0xe7, 0x93, 0xae, 0x4d, 0xaa, 0x70, 0xcf, 0xf4, 0x8e, 0x6a, 0xb4, 0x2f, 0xfd, 0xbc, 0x00, };
5222 static const ec_test_case ed25519_227_test_case = {
5223 	.name = "EDDSA25519-SHA512/wei25519 227",
5224 	.ec_str_p = &wei25519_str_params,
5225 	.priv_key = ed25519_227_test_vectors_priv_key,
5226 	.priv_key_len = sizeof(ed25519_227_test_vectors_priv_key),
5227 	.nn_random = NULL,
5228 	.hash_type = SHA512,
5229 	.msg = (const char *)ed25519_227_test_vectors_message,
5230 	.msglen = sizeof(ed25519_227_test_vectors_message),
5231 	.sig_type = EDDSA25519,
5232 	.exp_sig = ed25519_227_test_vectors_expected_sig,
5233 	.exp_siglen = sizeof(ed25519_227_test_vectors_expected_sig),
5234 	.adata = NULL,
5235 	.adata_len = 0
5236 };
5237 
5238 /************************************************/
5239 static const u8 ed25519_228_test_vectors_priv_key[] = {
5240 	0x0a, 0x84, 0xba, 0xa5, 0x4f, 0x11, 0xcf, 0x17, 0x09, 0x0f, 0xec, 0x61, 0xf3, 0xf9, 0x40, 0x15, 0x08, 0xa3, 0xa0, 0x38, 0x87, 0xac, 0xa1, 0xa7, 0x93, 0x93, 0x94, 0xb1, 0xee, 0x40, 0xa9, 0x25, };
5241 static const u8 ed25519_228_test_vectors_message[] = {
5242 	0xfe, 0x70, 0x01, 0x7b, 0x14, 0x67, 0x8b, 0x0d, 0x3a, 0xd0, 0x3e, 0x18, 0x3d, 0x6f, 0x53, 0x31, 0x43, 0x78, 0x37, 0x9a, 0xb3, 0xda, 0x65, 0xb3, 0x51, 0x12, 0x57, 0xb3, 0xd5, 0x40, 0x86, 0xe8, 0x6f, 0x20, 0x31, 0x13, 0x90, 0x21, 0x39, 0x1a, 0xf9, 0xd7, 0x20, 0x85, 0xff, 0x7c, 0x3d, 0xc8, 0xc1, 0xe2, 0xd9, 0x1e, 0x53, 0x33, 0x38, 0x55, 0x42, 0x3d, 0x0f, 0x78, 0x5e, 0x2c, 0xc5, 0xf8, 0xb7, 0x79, 0x9f, 0xcf, 0x1b, 0x70, 0xe6, 0xbe, 0xcb, 0x78, 0x8e, 0x53, 0xe9, 0x02, 0x0f, 0x29, 0x95, 0xdd, 0xb0, 0xc3, 0x83, 0xa1, 0xf8, 0x10, 0x38, 0xfc, 0x3d, 0x54, 0x3c, 0xe0, 0xa3, 0x8c, 0x9c, 0x28, 0x8a, 0x9b, 0xc4, 0x07, 0x7f, 0x42, 0x77, 0xdc, 0xc6, 0xc5, 0x64, 0x22, 0x63, 0xfc, 0xfe, 0x19, 0x68, 0x80, 0x05, 0xa6, 0x03, 0xf5, 0x76, 0x75, 0xd2, 0x43, 0x4f, 0x3e, 0xd1, 0xf4, 0x6d, 0x32, 0xf1, 0x4e, 0xae, 0xb0, 0x73, 0xe8, 0x3e, 0xe7, 0x08, 0x6d, 0xa2, 0xfb, 0x67, 0x65, 0x9d, 0x3f, 0xb6, 0x8c, 0x62, 0x32, 0x0b, 0x77, 0x27, 0xb3, 0xb8, 0xea, 0x00, 0x65, 0x76, 0xbc, 0x2c, 0x7e, 0x6b, 0x5f, 0x1e, 0xce, 0xfa, 0x8b, 0x92, 0xe7, 0x0c, 0x92, 0xc8, 0x89, 0x51, 0xd0, 0xc1, 0x2d, 0x91, 0xde, 0x80, 0x1c, 0x38, 0xb7, 0xca, 0x5a, 0x0a, 0x04, 0xb4, 0xc3, 0x42, 0x9a, 0xba, 0x86, 0x38, 0x6e, 0x96, 0xe0, 0x6a, 0xfd, 0x20, 0xd4, 0xc5, 0xc2, 0xfe, 0x2b, 0x9b, 0x42, 0x73, 0xeb, 0x05, 0x20, 0x1a, 0x79, 0x27, 0x3a, 0xbd, 0xbe, 0xb3, 0x7e, 0xd1, 0x83, 0x0d, 0x22, 0x6b, 0x6b, 0xdb, };
5243 static const u8 ed25519_228_test_vectors_expected_sig[] = {
5244 	0x4d, 0x87, 0x0b, 0xd5, 0x3a, 0xf8, 0xf1, 0x3f, 0x21, 0x4d, 0x99, 0x34, 0xec, 0x90, 0x3a, 0xc4, 0x82, 0x84, 0x09, 0x2c, 0xd9, 0xb1, 0x62, 0xa4, 0x4c, 0xce, 0xc8, 0x51, 0xfa, 0x94, 0x2d, 0xe7, 0x15, 0xcc, 0xda, 0x07, 0xb7, 0x99, 0x1d, 0x71, 0x27, 0x23, 0xe7, 0xa4, 0xd5, 0xb4, 0xf0, 0x37, 0x4a, 0xb8, 0x5a, 0xc3, 0x86, 0x7e, 0x0b, 0x53, 0xeb, 0xc4, 0x6b, 0x53, 0x0f, 0x9f, 0xed, 0x05, };
5245 static const ec_test_case ed25519_228_test_case = {
5246 	.name = "EDDSA25519-SHA512/wei25519 228",
5247 	.ec_str_p = &wei25519_str_params,
5248 	.priv_key = ed25519_228_test_vectors_priv_key,
5249 	.priv_key_len = sizeof(ed25519_228_test_vectors_priv_key),
5250 	.nn_random = NULL,
5251 	.hash_type = SHA512,
5252 	.msg = (const char *)ed25519_228_test_vectors_message,
5253 	.msglen = sizeof(ed25519_228_test_vectors_message),
5254 	.sig_type = EDDSA25519,
5255 	.exp_sig = ed25519_228_test_vectors_expected_sig,
5256 	.exp_siglen = sizeof(ed25519_228_test_vectors_expected_sig),
5257 	.adata = NULL,
5258 	.adata_len = 0
5259 };
5260 
5261 /************************************************/
5262 static const u8 ed25519_229_test_vectors_priv_key[] = {
5263 	0x38, 0x37, 0x94, 0x23, 0xda, 0xfd, 0xbf, 0x25, 0xe1, 0x9d, 0x72, 0x31, 0xbd, 0xdd, 0x80, 0xb4, 0xce, 0xfc, 0xfe, 0x2a, 0xed, 0x93, 0x25, 0x84, 0xdf, 0xa0, 0xcc, 0x3c, 0x9f, 0x92, 0x32, 0xde, };
5264 static const u8 ed25519_229_test_vectors_message[] = {
5265 	0x36, 0x12, 0x5c, 0xa6, 0x66, 0x68, 0x80, 0x29, 0x06, 0x23, 0x7e, 0x63, 0xa2, 0xfe, 0x5a, 0xe6, 0x10, 0xf1, 0x1a, 0x7c, 0xf9, 0x25, 0x20, 0xd1, 0x9e, 0x66, 0x90, 0xa3, 0xad, 0xfa, 0xfd, 0x5d, 0x07, 0xa7, 0x84, 0xbc, 0x1a, 0x0e, 0x18, 0x52, 0x73, 0xd1, 0x1d, 0x34, 0x0d, 0x5e, 0xff, 0x90, 0x15, 0x97, 0xde, 0xdf, 0x45, 0x0c, 0x46, 0x99, 0xd4, 0x3f, 0x3f, 0xb1, 0x68, 0xd5, 0x57, 0xf6, 0xc9, 0xc0, 0x30, 0x77, 0xc3, 0xcd, 0xc3, 0x70, 0xd3, 0x48, 0x32, 0xcc, 0xdf, 0x2a, 0x8e, 0x3d, 0x75, 0x79, 0x64, 0x90, 0xed, 0x02, 0x42, 0x89, 0x9d, 0x25, 0xdd, 0xf4, 0x4b, 0xfc, 0x66, 0xf3, 0x29, 0xcf, 0x4c, 0x45, 0x16, 0x87, 0x03, 0xc3, 0x1b, 0xc9, 0x20, 0x2d, 0x89, 0x0f, 0x39, 0x69, 0xff, 0xd3, 0xac, 0x35, 0xa1, 0x28, 0x18, 0xdc, 0xa7, 0x51, 0xce, 0xb8, 0x80, 0x8f, 0xe8, 0x1e, 0xfa, 0x26, 0xa5, 0xe0, 0xd2, 0x00, 0xc5, 0xec, 0x1d, 0x94, 0xa5, 0x09, 0x7e, 0xa7, 0x4b, 0x64, 0x98, 0xfe, 0x28, 0x8f, 0x30, 0xc4, 0x8d, 0x72, 0x7e, 0x9d, 0x3d, 0x35, 0xc8, 0xe1, 0x2d, 0x85, 0x42, 0x07, 0x02, 0x55, 0x6f, 0x28, 0x61, 0x48, 0x4f, 0xfd, 0x09, 0xb4, 0xf1, 0x22, 0x65, 0xcc, 0x9a, 0xba, 0xfe, 0xb8, 0x2c, 0xf5, 0x90, 0x02, 0x88, 0x95, 0xa7, 0xd0, 0x50, 0xff, 0x57, 0xcc, 0xf5, 0xf2, 0x80, 0x22, 0xd0, 0x16, 0xab, 0x40, 0x94, 0xb0, 0x62, 0xe4, 0x8b, 0x66, 0xfd, 0x36, 0xd1, 0xe1, 0x96, 0x26, 0xe5, 0x21, 0x5e, 0xfa, 0x40, 0xfb, 0x7e, 0x3b, 0x70, 0x62, 0xf8, 0x1e, 0x95, 0x48, 0x30, 0xc9, };
5266 static const u8 ed25519_229_test_vectors_expected_sig[] = {
5267 	0xd8, 0xb5, 0x0a, 0x88, 0xae, 0xd6, 0xf2, 0xa9, 0x6d, 0x08, 0x22, 0x13, 0xad, 0xf8, 0xb2, 0x51, 0x9f, 0x6a, 0x0b, 0xbd, 0x30, 0xdd, 0x3c, 0xb0, 0xf3, 0xfd, 0x3c, 0xe1, 0xc6, 0x43, 0xfc, 0x02, 0x99, 0x46, 0xcd, 0x43, 0x46, 0x2e, 0xd2, 0x25, 0x13, 0xf1, 0xd6, 0x5f, 0xca, 0x24, 0xbd, 0xe3, 0x81, 0x81, 0x66, 0xba, 0xa8, 0x6d, 0xaa, 0x79, 0x87, 0x92, 0xaf, 0xaf, 0xe0, 0xc1, 0xa1, 0x0a, };
5268 static const ec_test_case ed25519_229_test_case = {
5269 	.name = "EDDSA25519-SHA512/wei25519 229",
5270 	.ec_str_p = &wei25519_str_params,
5271 	.priv_key = ed25519_229_test_vectors_priv_key,
5272 	.priv_key_len = sizeof(ed25519_229_test_vectors_priv_key),
5273 	.nn_random = NULL,
5274 	.hash_type = SHA512,
5275 	.msg = (const char *)ed25519_229_test_vectors_message,
5276 	.msglen = sizeof(ed25519_229_test_vectors_message),
5277 	.sig_type = EDDSA25519,
5278 	.exp_sig = ed25519_229_test_vectors_expected_sig,
5279 	.exp_siglen = sizeof(ed25519_229_test_vectors_expected_sig),
5280 	.adata = NULL,
5281 	.adata_len = 0
5282 };
5283 
5284 /************************************************/
5285 static const u8 ed25519_230_test_vectors_priv_key[] = {
5286 	0xf9, 0x25, 0xd2, 0x74, 0xaa, 0xf1, 0xfe, 0x1a, 0x21, 0x65, 0x62, 0x37, 0x38, 0x5e, 0x97, 0xf7, 0x78, 0x3e, 0x78, 0x09, 0x0c, 0x5d, 0x42, 0x17, 0xfe, 0xce, 0x70, 0x57, 0xc8, 0x0f, 0x42, 0x6d, };
5287 static const u8 ed25519_230_test_vectors_message[] = {
5288 	0x14, 0x3c, 0xaa, 0xfa, 0x5f, 0x62, 0xb1, 0x3e, 0x43, 0xdf, 0xfa, 0x49, 0xd4, 0x20, 0xfa, 0x99, 0xf7, 0x71, 0xb1, 0x92, 0x6d, 0x40, 0xd6, 0xcb, 0x2b, 0xbb, 0x42, 0x7f, 0x27, 0xb6, 0xc2, 0x66, 0xeb, 0x3d, 0xeb, 0x2d, 0x8b, 0xbb, 0xd4, 0x7b, 0x82, 0x14, 0xad, 0x40, 0x25, 0x1c, 0xb1, 0x90, 0x7a, 0xd6, 0x5e, 0xb9, 0x41, 0x93, 0xe5, 0x4a, 0xd8, 0x5c, 0x67, 0x00, 0xb4, 0x18, 0x9e, 0x80, 0xf1, 0xcc, 0x01, 0x54, 0xc6, 0x3e, 0xd1, 0x51, 0xa8, 0xbb, 0xbd, 0x30, 0xe0, 0x16, 0x37, 0xca, 0x58, 0xe7, 0x0a, 0xa3, 0xee, 0x52, 0xef, 0x75, 0xd0, 0x87, 0x30, 0x78, 0xa4, 0x05, 0x01, 0x4f, 0x78, 0x6e, 0xb2, 0xd7, 0x7b, 0x7f, 0x44, 0x22, 0xf9, 0x27, 0x82, 0x3e, 0x47, 0x5e, 0x05, 0xb2, 0x42, 0x45, 0xf9, 0x06, 0x8a, 0x67, 0xf1, 0x4f, 0x4f, 0x3c, 0xfb, 0x1e, 0xb3, 0x0b, 0xfe, 0xde, 0x7b, 0x32, 0x62, 0x23, 0x0c, 0xed, 0x9e, 0x31, 0x36, 0x1d, 0xb1, 0x96, 0x36, 0xb2, 0xc1, 0x2f, 0xdf, 0x1b, 0x9c, 0x14, 0x51, 0x0a, 0xcd, 0x5b, 0xc1, 0x8c, 0x0d, 0xdf, 0x76, 0x35, 0xe0, 0x03, 0x50, 0x3e, 0x6f, 0x71, 0xe1, 0xc3, 0x65, 0xcd, 0xfb, 0x4c, 0x65, 0xee, 0x75, 0xb4, 0xde, 0x06, 0x94, 0xaf, 0x87, 0x07, 0x63, 0x74, 0xd6, 0x31, 0xe6, 0xc4, 0xb8, 0xe2, 0x40, 0xfa, 0x51, 0xda, 0xb5, 0xe1, 0xf8, 0x0c, 0xa2, 0xa0, 0x6c, 0x49, 0xf4, 0x2e, 0xa0, 0x9e, 0x04, 0x75, 0xde, 0xfb, 0x18, 0x4d, 0x9c, 0xde, 0x9f, 0x58, 0xf9, 0x59, 0xe6, 0x40, 0x92, 0xaa, 0xc8, 0xf2, 0x02, 0x7e, 0x46, 0x81, 0x26, 0xf2, 0xfb, };
5289 static const u8 ed25519_230_test_vectors_expected_sig[] = {
5290 	0x79, 0x54, 0x9a, 0x31, 0x7d, 0x10, 0xa0, 0xbe, 0x32, 0x2a, 0x94, 0xa1, 0x51, 0xad, 0x11, 0xe7, 0x7e, 0xfc, 0x48, 0x36, 0xcc, 0x80, 0x06, 0xa8, 0x50, 0x81, 0x27, 0x3d, 0x76, 0x02, 0xa6, 0x38, 0x96, 0x3a, 0x9c, 0xaf, 0x19, 0xc3, 0xed, 0xf1, 0xe2, 0x5f, 0xad, 0x1e, 0x9d, 0x68, 0x70, 0x1a, 0x71, 0xde, 0xa7, 0x27, 0xda, 0x6a, 0x5c, 0x5b, 0xca, 0xc9, 0x33, 0x95, 0x89, 0x22, 0x4b, 0x05, };
5291 static const ec_test_case ed25519_230_test_case = {
5292 	.name = "EDDSA25519-SHA512/wei25519 230",
5293 	.ec_str_p = &wei25519_str_params,
5294 	.priv_key = ed25519_230_test_vectors_priv_key,
5295 	.priv_key_len = sizeof(ed25519_230_test_vectors_priv_key),
5296 	.nn_random = NULL,
5297 	.hash_type = SHA512,
5298 	.msg = (const char *)ed25519_230_test_vectors_message,
5299 	.msglen = sizeof(ed25519_230_test_vectors_message),
5300 	.sig_type = EDDSA25519,
5301 	.exp_sig = ed25519_230_test_vectors_expected_sig,
5302 	.exp_siglen = sizeof(ed25519_230_test_vectors_expected_sig),
5303 	.adata = NULL,
5304 	.adata_len = 0
5305 };
5306 
5307 /************************************************/
5308 static const u8 ed25519_231_test_vectors_priv_key[] = {
5309 	0x97, 0x1f, 0x80, 0x6b, 0xe6, 0xf0, 0x7d, 0x41, 0xbe, 0x88, 0x30, 0xff, 0x8d, 0xae, 0x70, 0x4b, 0x08, 0x63, 0x8a, 0xd6, 0xcf, 0xf7, 0x22, 0xd8, 0x43, 0x25, 0x38, 0x12, 0x7b, 0x76, 0x96, 0x25, };
5310 static const u8 ed25519_231_test_vectors_message[] = {
5311 	0x01, 0x34, 0x55, 0xd0, 0x49, 0xaa, 0x54, 0xed, 0x99, 0x5f, 0xbd, 0x94, 0xe6, 0x36, 0x99, 0x55, 0x49, 0x53, 0x95, 0xe4, 0x43, 0x88, 0x22, 0x25, 0x9b, 0x10, 0x60, 0xe9, 0xa3, 0x47, 0x79, 0x04, 0x2a, 0x1a, 0x69, 0x21, 0x1f, 0x6e, 0xa2, 0x07, 0x73, 0x99, 0xdd, 0x23, 0x48, 0x06, 0xba, 0x0b, 0x35, 0x3c, 0xd7, 0x9a, 0x57, 0xe1, 0xc4, 0x9b, 0x25, 0x0a, 0xb2, 0x71, 0x06, 0xdc, 0xde, 0x57, 0x6e, 0xcf, 0xa1, 0x15, 0xea, 0xe4, 0x61, 0xfe, 0xbb, 0x12, 0xd2, 0xda, 0x25, 0xff, 0xcf, 0x17, 0xb7, 0x15, 0xf8, 0xd9, 0x5c, 0x2f, 0x0c, 0x42, 0x5d, 0x5a, 0x81, 0xf7, 0x00, 0x11, 0x5b, 0x70, 0xd4, 0x9e, 0x1c, 0xfe, 0x49, 0xfc, 0xaa, 0x14, 0xfa, 0x20, 0x5e, 0x28, 0xec, 0x85, 0x24, 0x7f, 0x1a, 0x6e, 0x71, 0x28, 0xbf, 0x3b, 0xb3, 0x06, 0x0d, 0xc0, 0x84, 0x64, 0xbd, 0xa6, 0x53, 0x85, 0x40, 0xd0, 0xac, 0x47, 0x20, 0x93, 0xe5, 0xa0, 0x72, 0x0f, 0xde, 0x2f, 0x3d, 0xc4, 0x78, 0x8e, 0x0e, 0x9b, 0x0d, 0xbf, 0xe2, 0xa2, 0xb5, 0xf1, 0xa0, 0xf3, 0xf8, 0x0d, 0xe9, 0x84, 0x02, 0x5b, 0x15, 0xc6, 0x5a, 0xf7, 0x7f, 0x67, 0x1e, 0x1c, 0x5e, 0x28, 0x40, 0x44, 0x4d, 0xe5, 0xc7, 0xed, 0xa0, 0x25, 0xe6, 0xdc, 0x1a, 0x3f, 0xf1, 0x6e, 0x26, 0xcc, 0x54, 0xcd, 0xee, 0xd5, 0x6b, 0xe7, 0x3f, 0x9b, 0x01, 0xab, 0x2b, 0x1b, 0xc1, 0x6c, 0x8e, 0xf5, 0x8a, 0x5b, 0x76, 0xdd, 0x47, 0x28, 0x78, 0x07, 0xe5, 0xc5, 0x0f, 0x0d, 0x7c, 0x0a, 0x5b, 0x81, 0x20, 0xdf, 0xde, 0x64, 0x5a, 0x01, 0x2c, 0x5c, 0xf1, 0x14, 0x91, 0xbc, };
5312 static const u8 ed25519_231_test_vectors_expected_sig[] = {
5313 	0x20, 0x37, 0xa0, 0xa7, 0x67, 0x4b, 0x84, 0xff, 0x27, 0xd0, 0xb2, 0x2f, 0x62, 0xb4, 0xba, 0xc6, 0x5e, 0x2d, 0xc0, 0xf5, 0xfd, 0xc8, 0x99, 0xfe, 0xb7, 0x80, 0x0f, 0x25, 0xc2, 0x99, 0x81, 0xde, 0xe6, 0x41, 0xc5, 0xa5, 0x0f, 0x8b, 0x94, 0x10, 0x97, 0x0b, 0x49, 0xd2, 0xd5, 0x36, 0x58, 0xc8, 0x9e, 0xe1, 0x69, 0x61, 0xdc, 0xcf, 0x53, 0x91, 0xa6, 0x91, 0x8f, 0x2a, 0x84, 0xea, 0xda, 0x0b, };
5314 static const ec_test_case ed25519_231_test_case = {
5315 	.name = "EDDSA25519-SHA512/wei25519 231",
5316 	.ec_str_p = &wei25519_str_params,
5317 	.priv_key = ed25519_231_test_vectors_priv_key,
5318 	.priv_key_len = sizeof(ed25519_231_test_vectors_priv_key),
5319 	.nn_random = NULL,
5320 	.hash_type = SHA512,
5321 	.msg = (const char *)ed25519_231_test_vectors_message,
5322 	.msglen = sizeof(ed25519_231_test_vectors_message),
5323 	.sig_type = EDDSA25519,
5324 	.exp_sig = ed25519_231_test_vectors_expected_sig,
5325 	.exp_siglen = sizeof(ed25519_231_test_vectors_expected_sig),
5326 	.adata = NULL,
5327 	.adata_len = 0
5328 };
5329 
5330 /************************************************/
5331 static const u8 ed25519_232_test_vectors_priv_key[] = {
5332 	0x2b, 0xb0, 0x65, 0x2f, 0x8f, 0xff, 0x69, 0x01, 0x99, 0x11, 0x48, 0xc6, 0x8a, 0x32, 0x67, 0x87, 0x72, 0x71, 0x00, 0x6a, 0xe9, 0x58, 0x91, 0x49, 0xbb, 0x20, 0x68, 0x50, 0xcd, 0xf5, 0x2f, 0xb0, };
5333 static const u8 ed25519_232_test_vectors_message[] = {
5334 	0xb9, 0x23, 0xca, 0x67, 0xe3, 0x96, 0xd8, 0x65, 0x6f, 0xa3, 0xdb, 0xce, 0x82, 0x89, 0xa3, 0x8b, 0xd3, 0xc1, 0x28, 0xce, 0xfb, 0x30, 0xef, 0xc1, 0x86, 0x2b, 0xb9, 0x44, 0xb4, 0x50, 0x78, 0x05, 0x41, 0x98, 0x24, 0xce, 0x2b, 0x83, 0xd6, 0x90, 0xef, 0x4c, 0xf1, 0x07, 0x49, 0x28, 0x17, 0x14, 0x3b, 0xf6, 0x4c, 0x02, 0x49, 0x89, 0xaf, 0x1a, 0x7d, 0x2e, 0x1f, 0x5a, 0xc9, 0x78, 0x74, 0xf8, 0x6b, 0xb0, 0xd3, 0x77, 0x3f, 0xf8, 0x40, 0xf5, 0x14, 0xd9, 0xa1, 0x39, 0x4a, 0x39, 0x59, 0xb0, 0x11, 0xd3, 0xa6, 0xb8, 0x16, 0xa3, 0xfa, 0xe5, 0xde, 0x17, 0xb2, 0xa9, 0xff, 0x34, 0x98, 0x63, 0xd2, 0x7f, 0xbb, 0xb5, 0x0c, 0xca, 0x73, 0x41, 0x08, 0x75, 0x10, 0x00, 0xd6, 0x35, 0x8c, 0xa0, 0x64, 0x7a, 0x93, 0xeb, 0x49, 0xe2, 0xe7, 0xaf, 0x06, 0x28, 0x7d, 0x48, 0xf2, 0xc0, 0x9d, 0x5c, 0x1c, 0x73, 0xe4, 0xd8, 0xf7, 0x7e, 0xa2, 0xbc, 0xaa, 0x73, 0x56, 0x79, 0x5b, 0x26, 0x72, 0x87, 0x19, 0xbe, 0xd5, 0xff, 0xdb, 0x82, 0x15, 0x78, 0xbd, 0x5d, 0x66, 0xbf, 0x92, 0xed, 0xaf, 0x8b, 0x23, 0x8b, 0x2b, 0xbd, 0x7d, 0x1e, 0x2c, 0x30, 0xa7, 0x87, 0xf9, 0x01, 0xa3, 0x3d, 0x0a, 0x76, 0x66, 0x9a, 0x9c, 0x3c, 0x7f, 0x2b, 0x55, 0x2c, 0xcb, 0x83, 0x49, 0xc7, 0xde, 0xd5, 0xe1, 0xa4, 0x61, 0x70, 0xcf, 0x28, 0xe3, 0x59, 0xe2, 0xfd, 0xd5, 0x4b, 0x05, 0xa5, 0x62, 0xf5, 0x28, 0xc6, 0x8a, 0x56, 0x97, 0x4d, 0xf8, 0x2d, 0x46, 0x66, 0x37, 0xc8, 0xe5, 0x32, 0x46, 0xa7, 0x21, 0x7e, 0x43, 0x86, 0x80, 0x1e, 0x0e, 0x32, 0x66, };
5335 static const u8 ed25519_232_test_vectors_expected_sig[] = {
5336 	0x4e, 0x15, 0x8d, 0xea, 0xae, 0xc3, 0xd8, 0x89, 0x41, 0x29, 0x6a, 0xf2, 0xd2, 0x73, 0x41, 0x01, 0x2b, 0x02, 0x41, 0xd4, 0xe0, 0xf4, 0x6e, 0x43, 0x5e, 0x37, 0x5c, 0x98, 0x75, 0xe8, 0x9f, 0x5e, 0x32, 0xc0, 0x57, 0xb5, 0x27, 0xbc, 0x34, 0x11, 0xaf, 0x09, 0x6a, 0x77, 0xbf, 0xce, 0xb4, 0x5b, 0x98, 0x3e, 0xfe, 0x45, 0x5e, 0x3f, 0x03, 0x15, 0x5d, 0x6b, 0xc7, 0xb0, 0xac, 0xc8, 0xe6, 0x0c, };
5337 static const ec_test_case ed25519_232_test_case = {
5338 	.name = "EDDSA25519-SHA512/wei25519 232",
5339 	.ec_str_p = &wei25519_str_params,
5340 	.priv_key = ed25519_232_test_vectors_priv_key,
5341 	.priv_key_len = sizeof(ed25519_232_test_vectors_priv_key),
5342 	.nn_random = NULL,
5343 	.hash_type = SHA512,
5344 	.msg = (const char *)ed25519_232_test_vectors_message,
5345 	.msglen = sizeof(ed25519_232_test_vectors_message),
5346 	.sig_type = EDDSA25519,
5347 	.exp_sig = ed25519_232_test_vectors_expected_sig,
5348 	.exp_siglen = sizeof(ed25519_232_test_vectors_expected_sig),
5349 	.adata = NULL,
5350 	.adata_len = 0
5351 };
5352 
5353 /************************************************/
5354 static const u8 ed25519_233_test_vectors_priv_key[] = {
5355 	0xdb, 0x9b, 0x81, 0x2c, 0xb3, 0xc7, 0xc0, 0x3b, 0x97, 0x7f, 0x48, 0x7d, 0x3d, 0x65, 0xcc, 0xd9, 0xcd, 0x2f, 0x3d, 0xee, 0x11, 0x60, 0x20, 0x67, 0xdb, 0xfb, 0x72, 0xb5, 0x89, 0xff, 0x3f, 0x79, };
5356 static const u8 ed25519_233_test_vectors_message[] = {
5357 	0xa7, 0x00, 0x92, 0xc7, 0x69, 0x7c, 0xd4, 0xa2, 0x09, 0x56, 0x7c, 0x38, 0xba, 0x7f, 0xb7, 0x1a, 0xa8, 0xf1, 0x5e, 0x58, 0x27, 0xa2, 0x08, 0x76, 0x92, 0x39, 0x43, 0xfd, 0x6a, 0xdc, 0x65, 0x9c, 0x98, 0x67, 0xac, 0x6f, 0x58, 0xa6, 0x1d, 0xc7, 0xce, 0xc3, 0xd3, 0x62, 0x41, 0x16, 0x82, 0x00, 0x0c, 0x1a, 0x9a, 0xd1, 0x29, 0x5e, 0xb8, 0xb7, 0x0f, 0x24, 0x2d, 0x86, 0xb5, 0x86, 0x5e, 0xb7, 0x6b, 0x87, 0xe3, 0xf2, 0xc6, 0x94, 0x1d, 0x26, 0x12, 0xee, 0x3b, 0xcd, 0xe8, 0xf1, 0x97, 0x65, 0x56, 0x67, 0x33, 0x15, 0x2e, 0xf5, 0x4e, 0x95, 0x69, 0x09, 0x43, 0x28, 0x5f, 0x78, 0xb3, 0x75, 0xf4, 0x03, 0x65, 0x85, 0xd4, 0x73, 0x9d, 0xee, 0xde, 0xef, 0x6d, 0x94, 0x6d, 0xb6, 0x1c, 0xa4, 0x58, 0xef, 0x4f, 0x65, 0x0d, 0xa9, 0x63, 0xc3, 0x85, 0xe2, 0x9d, 0xfd, 0xee, 0x41, 0x5f, 0xe4, 0x95, 0x84, 0x5f, 0x55, 0x19, 0x7a, 0x87, 0x0f, 0x8c, 0xde, 0xb5, 0xa0, 0x10, 0xba, 0x6b, 0xbb, 0x32, 0xbf, 0x1a, 0x58, 0x8c, 0xc7, 0x74, 0xd4, 0x89, 0x01, 0x84, 0xc4, 0xb2, 0x92, 0x4a, 0x5b, 0x80, 0x73, 0x31, 0x3b, 0xce, 0x22, 0x65, 0x85, 0xf1, 0xad, 0xfc, 0x22, 0x9c, 0x90, 0xbc, 0x6c, 0xc9, 0xd2, 0x12, 0xe6, 0x2f, 0x05, 0xd3, 0x3b, 0xed, 0xac, 0x96, 0x1d, 0x77, 0xcf, 0x8c, 0x26, 0x20, 0xe4, 0x51, 0xde, 0x81, 0x7f, 0x8c, 0x1b, 0xb1, 0x6a, 0x2c, 0x59, 0xff, 0x80, 0x4b, 0x63, 0x5a, 0x73, 0xa8, 0xcf, 0x8c, 0x18, 0x1b, 0x3f, 0x94, 0x01, 0xc3, 0xb6, 0x43, 0xd1, 0x8a, 0x2f, 0x70, 0x6e, 0xa9, 0xca, 0xe4, 0x70, 0x71, 0xa6, };
5358 static const u8 ed25519_233_test_vectors_expected_sig[] = {
5359 	0xa6, 0x28, 0xa7, 0x74, 0x21, 0xb2, 0xab, 0xab, 0x57, 0x6e, 0xed, 0x35, 0xd2, 0xee, 0x3d, 0x14, 0x56, 0x1b, 0x21, 0xfa, 0x14, 0xa6, 0xe2, 0xfa, 0xc2, 0x63, 0xc3, 0xea, 0xdd, 0x79, 0xf2, 0xfc, 0x06, 0x69, 0xf9, 0x42, 0x9b, 0x91, 0x0b, 0x84, 0x22, 0xb4, 0xb2, 0x9a, 0xc0, 0x26, 0xa4, 0x2e, 0x98, 0xd1, 0x81, 0xbe, 0x35, 0x07, 0xc5, 0xed, 0x7c, 0x74, 0x8a, 0x1f, 0xdc, 0xf1, 0xd8, 0x07, };
5360 static const ec_test_case ed25519_233_test_case = {
5361 	.name = "EDDSA25519-SHA512/wei25519 233",
5362 	.ec_str_p = &wei25519_str_params,
5363 	.priv_key = ed25519_233_test_vectors_priv_key,
5364 	.priv_key_len = sizeof(ed25519_233_test_vectors_priv_key),
5365 	.nn_random = NULL,
5366 	.hash_type = SHA512,
5367 	.msg = (const char *)ed25519_233_test_vectors_message,
5368 	.msglen = sizeof(ed25519_233_test_vectors_message),
5369 	.sig_type = EDDSA25519,
5370 	.exp_sig = ed25519_233_test_vectors_expected_sig,
5371 	.exp_siglen = sizeof(ed25519_233_test_vectors_expected_sig),
5372 	.adata = NULL,
5373 	.adata_len = 0
5374 };
5375 
5376 /************************************************/
5377 static const u8 ed25519_234_test_vectors_priv_key[] = {
5378 	0xce, 0x37, 0x9b, 0xbe, 0x2f, 0xa8, 0xab, 0xcb, 0xa5, 0x1c, 0x7a, 0x75, 0x43, 0xde, 0x5b, 0x71, 0x80, 0x77, 0x1b, 0x3c, 0x44, 0xbc, 0x6b, 0x41, 0x89, 0x2e, 0x7b, 0x88, 0x97, 0x9b, 0xab, 0x90, };
5379 static const u8 ed25519_234_test_vectors_message[] = {
5380 	0x00, 0x1a, 0x74, 0xf0, 0x95, 0xc8, 0x14, 0xd3, 0xbe, 0xed, 0x67, 0xa8, 0xd1, 0x5f, 0xc1, 0x8e, 0xfe, 0x23, 0x5d, 0xc3, 0xf6, 0x45, 0x78, 0x12, 0xa4, 0x03, 0x9b, 0x7a, 0x46, 0xfe, 0x9a, 0x0e, 0x9d, 0xe8, 0x1a, 0x7a, 0x4e, 0x5f, 0xba, 0xb5, 0xeb, 0xe9, 0xe1, 0xe4, 0x80, 0x1b, 0xd1, 0x1b, 0x45, 0xc9, 0xf7, 0xad, 0x06, 0x36, 0xa0, 0x9b, 0xff, 0x42, 0x16, 0x4b, 0xe5, 0x74, 0x9a, 0x04, 0xc0, 0x2f, 0x0a, 0xb6, 0x1f, 0x0e, 0xcf, 0xdf, 0xef, 0x79, 0x9b, 0x82, 0x7d, 0xa6, 0xa2, 0x74, 0xc8, 0xd3, 0xb3, 0x9f, 0x2e, 0x38, 0x05, 0xa6, 0x79, 0x12, 0x87, 0xee, 0xdb, 0x23, 0x14, 0xd3, 0xf8, 0x42, 0xb5, 0x58, 0xb9, 0xb4, 0x89, 0xaf, 0xe1, 0xed, 0x37, 0xbb, 0xbc, 0xfc, 0x5e, 0x60, 0xa4, 0x31, 0xd5, 0xac, 0x60, 0xb3, 0x9e, 0x94, 0x6d, 0x90, 0x3d, 0x6b, 0xf6, 0xb1, 0x40, 0xe1, 0x2c, 0x7e, 0x07, 0xf9, 0xed, 0x7a, 0xc4, 0x6a, 0x39, 0x99, 0xc6, 0x24, 0x5c, 0x8a, 0xb1, 0xbd, 0xb2, 0x18, 0x79, 0xa3, 0x17, 0xa3, 0xdc, 0xd2, 0x57, 0xa5, 0xc4, 0xf3, 0x49, 0xb7, 0xf5, 0x9e, 0x4e, 0x43, 0xd6, 0x2d, 0x9f, 0x1c, 0xd1, 0x6f, 0x51, 0x8f, 0x1c, 0xa6, 0xca, 0xd3, 0x7e, 0x2c, 0xb2, 0x0f, 0x25, 0x98, 0xc4, 0x13, 0x42, 0x91, 0xc6, 0xb8, 0xa9, 0x8a, 0xae, 0x52, 0x47, 0xe2, 0x6e, 0xef, 0xb7, 0x6a, 0xa3, 0x8c, 0x9c, 0x82, 0x31, 0xc1, 0x7e, 0x9d, 0xbf, 0x27, 0x1c, 0xec, 0x80, 0xfb, 0xa5, 0xb4, 0xa8, 0x34, 0xbd, 0x9b, 0xe8, 0x1e, 0xa8, 0x41, 0x63, 0x7a, 0xa9, 0xcd, 0xd4, 0xc4, 0xbf, 0x26, 0xd7, 0xad, 0x24, 0xca, 0x3c, };
5381 static const u8 ed25519_234_test_vectors_expected_sig[] = {
5382 	0xda, 0x98, 0xdf, 0xb1, 0x89, 0x38, 0x5b, 0x2c, 0x85, 0x3b, 0x6c, 0xf3, 0x75, 0x73, 0x80, 0x46, 0xa8, 0xf2, 0x7e, 0xf2, 0x79, 0x74, 0xab, 0xce, 0xce, 0xa1, 0xdb, 0x02, 0x98, 0x9b, 0x95, 0x1f, 0xe4, 0x33, 0xa6, 0xce, 0x1e, 0x22, 0x5b, 0x3f, 0xa8, 0x20, 0x32, 0xfe, 0x06, 0x0a, 0x7d, 0x3f, 0x6c, 0x18, 0x3f, 0xd1, 0x15, 0x7f, 0x79, 0x1a, 0x06, 0x4b, 0x40, 0x76, 0x50, 0x57, 0x16, 0x00, };
5383 static const ec_test_case ed25519_234_test_case = {
5384 	.name = "EDDSA25519-SHA512/wei25519 234",
5385 	.ec_str_p = &wei25519_str_params,
5386 	.priv_key = ed25519_234_test_vectors_priv_key,
5387 	.priv_key_len = sizeof(ed25519_234_test_vectors_priv_key),
5388 	.nn_random = NULL,
5389 	.hash_type = SHA512,
5390 	.msg = (const char *)ed25519_234_test_vectors_message,
5391 	.msglen = sizeof(ed25519_234_test_vectors_message),
5392 	.sig_type = EDDSA25519,
5393 	.exp_sig = ed25519_234_test_vectors_expected_sig,
5394 	.exp_siglen = sizeof(ed25519_234_test_vectors_expected_sig),
5395 	.adata = NULL,
5396 	.adata_len = 0
5397 };
5398 
5399 /************************************************/
5400 static const u8 ed25519_235_test_vectors_priv_key[] = {
5401 	0x2b, 0x2e, 0xe8, 0x09, 0xd6, 0x47, 0x02, 0x3e, 0x7b, 0x77, 0xfc, 0x54, 0x1f, 0x44, 0x87, 0x5a, 0x35, 0xfa, 0x94, 0x1d, 0x37, 0xf7, 0xc5, 0xb2, 0x1f, 0xd3, 0x49, 0x34, 0xd2, 0x39, 0x19, 0x35, };
5402 static const u8 ed25519_235_test_vectors_message[] = {
5403 	0xc4, 0x14, 0x7d, 0x64, 0xeb, 0xfd, 0xa4, 0x1a, 0x1b, 0xe5, 0x97, 0x72, 0x62, 0x95, 0x81, 0x04, 0xe9, 0x40, 0xc3, 0x87, 0x6b, 0xcd, 0x5b, 0x69, 0x56, 0xac, 0xfd, 0xec, 0x32, 0xc6, 0x60, 0x91, 0x4d, 0x62, 0x62, 0x3c, 0x21, 0x06, 0x63, 0xcb, 0x2c, 0xbe, 0x62, 0x49, 0xd7, 0xf5, 0x27, 0x49, 0x91, 0xc6, 0x0e, 0x95, 0x0e, 0x8e, 0x28, 0x09, 0x04, 0x99, 0x53, 0xc6, 0x95, 0x81, 0xd2, 0x46, 0x9f, 0x4f, 0xe9, 0x82, 0xc7, 0x43, 0x4f, 0xed, 0xd9, 0xd4, 0xe0, 0x0a, 0xe0, 0x88, 0x96, 0xd6, 0x2c, 0xc1, 0xfb, 0x98, 0x4d, 0xd2, 0x33, 0x15, 0x0c, 0xc2, 0x48, 0x3e, 0x15, 0x9c, 0xff, 0x40, 0x97, 0xdf, 0x8c, 0x03, 0x6b, 0xb6, 0x33, 0x00, 0x3a, 0xbb, 0xfb, 0xe1, 0x8c, 0x8f, 0xa7, 0x9b, 0x5a, 0x22, 0x27, 0x08, 0x38, 0x12, 0x3f, 0xc9, 0xbe, 0x39, 0xb8, 0x89, 0x2c, 0x80, 0x38, 0x4a, 0x38, 0x50, 0x28, 0xc1, 0xa8, 0x1e, 0xc5, 0x8c, 0x8f, 0x21, 0x06, 0x0e, 0x78, 0xaf, 0xd2, 0xc0, 0x4b, 0xfd, 0x2d, 0x30, 0xca, 0x39, 0x77, 0xc6, 0xed, 0xad, 0x51, 0x8c, 0xc1, 0xe2, 0x00, 0x4c, 0xdc, 0x14, 0xbf, 0x3d, 0x15, 0xf5, 0xf5, 0x28, 0xe5, 0xaf, 0x27, 0x7f, 0xa1, 0x82, 0x27, 0x58, 0x70, 0xe5, 0xc0, 0x12, 0xf5, 0xf8, 0x2f, 0xb1, 0xaf, 0xd0, 0x4e, 0xdd, 0xe4, 0x57, 0x8d, 0xdd, 0x21, 0x60, 0xa1, 0xa3, 0xdb, 0xc0, 0x50, 0xe8, 0x0b, 0xdd, 0x81, 0x1b, 0xc8, 0x8e, 0xad, 0x79, 0xbf, 0x93, 0xf0, 0x10, 0xcd, 0x0f, 0xd4, 0x43, 0x3d, 0x0b, 0xc3, 0x48, 0xda, 0xcf, 0xd0, 0x94, 0x7c, 0xce, 0xda, 0x62, 0xbf, 0xa4, 0x97, 0x11, 0xd0, 0x13, };
5404 static const u8 ed25519_235_test_vectors_expected_sig[] = {
5405 	0x12, 0xd9, 0x06, 0x85, 0x77, 0x55, 0x72, 0xc9, 0xea, 0xbc, 0x9b, 0xe2, 0x57, 0x4c, 0xa9, 0xae, 0x66, 0xf0, 0xe6, 0x52, 0xe5, 0x78, 0xb2, 0x17, 0x36, 0xcd, 0x6e, 0x65, 0x4f, 0x7c, 0x6b, 0x15, 0x45, 0x88, 0x3d, 0x56, 0xbf, 0x76, 0x0c, 0xcf, 0xc3, 0xcf, 0x87, 0x54, 0x4e, 0x00, 0x04, 0xc7, 0x98, 0x06, 0x12, 0x57, 0xe1, 0x30, 0x03, 0x0c, 0xb9, 0x97, 0xa7, 0x88, 0x36, 0x9a, 0x9a, 0x05, };
5406 static const ec_test_case ed25519_235_test_case = {
5407 	.name = "EDDSA25519-SHA512/wei25519 235",
5408 	.ec_str_p = &wei25519_str_params,
5409 	.priv_key = ed25519_235_test_vectors_priv_key,
5410 	.priv_key_len = sizeof(ed25519_235_test_vectors_priv_key),
5411 	.nn_random = NULL,
5412 	.hash_type = SHA512,
5413 	.msg = (const char *)ed25519_235_test_vectors_message,
5414 	.msglen = sizeof(ed25519_235_test_vectors_message),
5415 	.sig_type = EDDSA25519,
5416 	.exp_sig = ed25519_235_test_vectors_expected_sig,
5417 	.exp_siglen = sizeof(ed25519_235_test_vectors_expected_sig),
5418 	.adata = NULL,
5419 	.adata_len = 0
5420 };
5421 
5422 /************************************************/
5423 static const u8 ed25519_236_test_vectors_priv_key[] = {
5424 	0x4e, 0xa1, 0x8d, 0x6b, 0x4a, 0xf8, 0x05, 0x3b, 0x88, 0x5e, 0xc1, 0x88, 0xbe, 0x48, 0xde, 0xb8, 0x6f, 0xfb, 0x2a, 0x69, 0xa4, 0xce, 0xc8, 0x66, 0x37, 0xbb, 0xd7, 0xb4, 0x1b, 0x80, 0x7c, 0x46, };
5425 static const u8 ed25519_236_test_vectors_message[] = {
5426 	0xe9, 0xc8, 0x9a, 0x1a, 0x11, 0x19, 0x37, 0x32, 0x06, 0xce, 0x40, 0xed, 0xe3, 0xb8, 0x9a, 0x82, 0xf8, 0x94, 0x62, 0xa1, 0xde, 0xe9, 0xe7, 0x89, 0xe9, 0x84, 0x5e, 0xec, 0x21, 0xf5, 0x71, 0xc0, 0xfa, 0xef, 0xd4, 0x30, 0xad, 0x33, 0x8e, 0x4a, 0x72, 0xc0, 0x47, 0xa3, 0x9a, 0x42, 0x59, 0x58, 0x03, 0x87, 0xfb, 0x9a, 0xac, 0xad, 0xdc, 0x36, 0xa2, 0xb5, 0x1e, 0x7b, 0x60, 0xa8, 0x7c, 0xa1, 0x32, 0x1f, 0xf8, 0x06, 0x79, 0x4c, 0xd6, 0xdd, 0x45, 0x49, 0xa4, 0xdf, 0x45, 0xc2, 0xda, 0xe3, 0xe5, 0x39, 0xc4, 0xd7, 0xd0, 0x6b, 0x6e, 0x6e, 0x9f, 0x46, 0x6f, 0xfc, 0xa2, 0xfa, 0x49, 0x78, 0xce, 0x3d, 0xc7, 0x92, 0xe4, 0x4a, 0x62, 0x83, 0x88, 0x0c, 0xd1, 0x38, 0xa7, 0x5a, 0x22, 0x6f, 0x98, 0x5d, 0xa4, 0x1f, 0xfd, 0xc0, 0xe3, 0x2a, 0x5a, 0x85, 0xc8, 0x5f, 0xe9, 0xa4, 0x3a, 0xe7, 0x8f, 0xcf, 0xe5, 0x7f, 0x4d, 0xd7, 0x54, 0x0a, 0x6d, 0xd3, 0x92, 0x4a, 0x49, 0xab, 0x39, 0xeb, 0x69, 0x95, 0x0d, 0x42, 0x11, 0x51, 0xd9, 0x6b, 0x1e, 0x4f, 0xd3, 0x93, 0x58, 0x90, 0xf6, 0x34, 0xcd, 0x52, 0xa7, 0x3a, 0x75, 0x5f, 0x5c, 0x2f, 0xb7, 0x2f, 0x9c, 0xd5, 0xa2, 0xe6, 0x7e, 0xa9, 0x30, 0x91, 0x5e, 0x13, 0x3b, 0x47, 0xcf, 0x6b, 0x7c, 0x10, 0xa9, 0xd8, 0x89, 0xc6, 0xaf, 0x6b, 0x5f, 0x1f, 0x4f, 0x51, 0x09, 0x4d, 0x27, 0xfb, 0xba, 0x22, 0x8a, 0xc2, 0x26, 0x8b, 0x34, 0x40, 0x27, 0xfd, 0x49, 0xe4, 0x26, 0x34, 0x3c, 0xc0, 0x13, 0x43, 0x99, 0xb4, 0xb5, 0x10, 0xaa, 0xea, 0x50, 0x23, 0x4d, 0xf4, 0x2c, 0x37, 0xfa, 0x1c, 0x4f, 0x4d, 0x0e, };
5427 static const u8 ed25519_236_test_vectors_expected_sig[] = {
5428 	0x27, 0x57, 0x0c, 0x00, 0x2a, 0x48, 0x7d, 0x00, 0x0c, 0xa3, 0x92, 0x8b, 0x83, 0xcb, 0x43, 0x19, 0x72, 0x2c, 0x46, 0xdf, 0xb4, 0xcc, 0xa2, 0x60, 0xde, 0x79, 0x0e, 0xc0, 0xe3, 0xc1, 0x93, 0x26, 0x88, 0xf8, 0x73, 0x62, 0x95, 0x28, 0x18, 0xb5, 0x4f, 0x51, 0xbc, 0x7a, 0xee, 0xb2, 0x63, 0xf9, 0x60, 0xbc, 0x0d, 0xa8, 0x96, 0x4b, 0xf3, 0x12, 0xef, 0x93, 0xe8, 0x1f, 0x06, 0xc8, 0x0b, 0x04, };
5429 static const ec_test_case ed25519_236_test_case = {
5430 	.name = "EDDSA25519-SHA512/wei25519 236",
5431 	.ec_str_p = &wei25519_str_params,
5432 	.priv_key = ed25519_236_test_vectors_priv_key,
5433 	.priv_key_len = sizeof(ed25519_236_test_vectors_priv_key),
5434 	.nn_random = NULL,
5435 	.hash_type = SHA512,
5436 	.msg = (const char *)ed25519_236_test_vectors_message,
5437 	.msglen = sizeof(ed25519_236_test_vectors_message),
5438 	.sig_type = EDDSA25519,
5439 	.exp_sig = ed25519_236_test_vectors_expected_sig,
5440 	.exp_siglen = sizeof(ed25519_236_test_vectors_expected_sig),
5441 	.adata = NULL,
5442 	.adata_len = 0
5443 };
5444 
5445 /************************************************/
5446 static const u8 ed25519_237_test_vectors_priv_key[] = {
5447 	0xfc, 0x1b, 0x75, 0xd1, 0x7d, 0x38, 0x07, 0x21, 0x73, 0x51, 0xd2, 0xaa, 0x40, 0xd9, 0xb0, 0x4f, 0x52, 0x5b, 0x89, 0xed, 0x3f, 0x5f, 0xcd, 0xb3, 0x11, 0xbe, 0xc2, 0xae, 0xc5, 0xcb, 0x7e, 0xce, };
5448 static const u8 ed25519_237_test_vectors_message[] = {
5449 	0xd0, 0x31, 0xbd, 0x11, 0xda, 0x30, 0x80, 0x97, 0xe3, 0xbe, 0xb6, 0xff, 0xdb, 0x26, 0x00, 0xee, 0x6a, 0x19, 0x3c, 0xa6, 0xd8, 0x32, 0x45, 0x01, 0xc9, 0x72, 0xb1, 0xa2, 0x51, 0x66, 0xfa, 0x7a, 0x36, 0x9f, 0x5b, 0xc8, 0x82, 0xea, 0x45, 0x61, 0x2c, 0xf0, 0x25, 0x80, 0x25, 0x4d, 0x21, 0xb4, 0x0b, 0x03, 0x63, 0x23, 0x7e, 0x83, 0x5d, 0xae, 0x26, 0x56, 0xc1, 0xb7, 0xf4, 0x73, 0x6e, 0x88, 0xbe, 0x53, 0xd6, 0xb1, 0x19, 0xc0, 0x7f, 0x57, 0x29, 0xbb, 0xd8, 0x2f, 0x67, 0xde, 0x03, 0x58, 0x83, 0x22, 0x87, 0x92, 0x43, 0xc5, 0x99, 0x0a, 0x7e, 0x61, 0xf5, 0x69, 0x07, 0xb2, 0x41, 0x71, 0xa5, 0x7c, 0xbb, 0x0b, 0xbe, 0xfb, 0xa2, 0x31, 0x62, 0x77, 0xaf, 0x93, 0x26, 0xf9, 0xcb, 0xf3, 0x53, 0x8b, 0xcb, 0xf6, 0x78, 0x0b, 0xe4, 0x18, 0x25, 0xa2, 0xca, 0x77, 0x4b, 0x41, 0xbd, 0xb1, 0xcd, 0x5c, 0x60, 0x88, 0x51, 0xec, 0x23, 0x39, 0xeb, 0x2f, 0x4f, 0xee, 0xdd, 0xaa, 0x89, 0x1a, 0x63, 0x26, 0xb2, 0x9d, 0x97, 0xd7, 0xfb, 0xf3, 0x11, 0xe3, 0xbb, 0x74, 0x9c, 0x5d, 0x4c, 0x05, 0x8d, 0xcc, 0x14, 0xf4, 0x52, 0xf9, 0x33, 0x49, 0x91, 0xe2, 0x71, 0xc1, 0x6d, 0x65, 0x08, 0xc8, 0x18, 0x63, 0x39, 0x27, 0xf4, 0x29, 0x80, 0x4c, 0xa7, 0xa3, 0x81, 0x70, 0xf1, 0xb9, 0xf6, 0xbd, 0x73, 0xed, 0x67, 0x5e, 0x11, 0xe8, 0xc0, 0xd3, 0x21, 0xfa, 0xc9, 0x12, 0x73, 0x0b, 0x4b, 0xa2, 0xf7, 0xc4, 0x28, 0x53, 0x4a, 0xdc, 0xaa, 0x4d, 0xad, 0x31, 0x4c, 0x55, 0x80, 0x7e, 0x6c, 0x64, 0x2d, 0x49, 0x4c, 0x6b, 0x2f, 0x0e, 0x8c, 0xd1, 0x29, 0x77, 0x5c, 0xc0, };
5450 static const u8 ed25519_237_test_vectors_expected_sig[] = {
5451 	0x9a, 0x68, 0xd1, 0x51, 0xfe, 0xa3, 0x90, 0x98, 0x93, 0x35, 0x9e, 0x60, 0xb9, 0x6b, 0x68, 0xb2, 0xa3, 0xe2, 0x94, 0x6f, 0x2b, 0x47, 0xb8, 0x75, 0x39, 0x8a, 0x1e, 0x39, 0xeb, 0x01, 0x46, 0x3d, 0x35, 0xea, 0xe7, 0xd9, 0x76, 0xf8, 0x33, 0xa7, 0x62, 0xb5, 0x1f, 0x27, 0x26, 0xee, 0x0d, 0xcc, 0xad, 0x5c, 0xe3, 0x60, 0x05, 0x64, 0xfd, 0x9d, 0xd5, 0x8c, 0x23, 0x80, 0x7f, 0xdf, 0xfd, 0x05, };
5452 static const ec_test_case ed25519_237_test_case = {
5453 	.name = "EDDSA25519-SHA512/wei25519 237",
5454 	.ec_str_p = &wei25519_str_params,
5455 	.priv_key = ed25519_237_test_vectors_priv_key,
5456 	.priv_key_len = sizeof(ed25519_237_test_vectors_priv_key),
5457 	.nn_random = NULL,
5458 	.hash_type = SHA512,
5459 	.msg = (const char *)ed25519_237_test_vectors_message,
5460 	.msglen = sizeof(ed25519_237_test_vectors_message),
5461 	.sig_type = EDDSA25519,
5462 	.exp_sig = ed25519_237_test_vectors_expected_sig,
5463 	.exp_siglen = sizeof(ed25519_237_test_vectors_expected_sig),
5464 	.adata = NULL,
5465 	.adata_len = 0
5466 };
5467 
5468 /************************************************/
5469 static const u8 ed25519_238_test_vectors_priv_key[] = {
5470 	0x0d, 0x0b, 0xf4, 0xd4, 0x2e, 0xf8, 0x10, 0xb1, 0x79, 0xeb, 0x84, 0x17, 0x71, 0xde, 0x6d, 0xbd, 0xe7, 0x63, 0x61, 0xca, 0xf8, 0x94, 0xe4, 0x2a, 0x14, 0xb1, 0xe0, 0x97, 0x87, 0xea, 0x3e, 0x06, };
5471 static const u8 ed25519_238_test_vectors_message[] = {
5472 	0x8e, 0x21, 0x79, 0x97, 0x5d, 0x0a, 0x8e, 0x5a, 0x69, 0xfe, 0x87, 0x5a, 0x3c, 0xb1, 0xe7, 0x9a, 0xec, 0x49, 0xc3, 0x85, 0x3e, 0x30, 0xdd, 0x03, 0x20, 0xfe, 0x3e, 0xbf, 0xb6, 0x38, 0xb8, 0x2f, 0x89, 0xad, 0x16, 0x43, 0x03, 0x6b, 0x37, 0xe5, 0x6e, 0x0b, 0x55, 0xe0, 0xa9, 0xe2, 0x2a, 0x4e, 0x28, 0x3d, 0x7a, 0x27, 0x48, 0x5c, 0xe9, 0x10, 0x2d, 0xb6, 0x78, 0x7d, 0x66, 0x28, 0xb7, 0x79, 0x13, 0xe1, 0x08, 0x96, 0x77, 0x4e, 0x49, 0x5c, 0x26, 0xe8, 0xba, 0xb2, 0x6e, 0x7f, 0x9a, 0x94, 0xd2, 0x9a, 0xaa, 0x36, 0xae, 0xc9, 0xc2, 0x6a, 0xd3, 0xf5, 0x0e, 0x5d, 0x8c, 0x0b, 0x76, 0x98, 0xbb, 0x5f, 0x01, 0xb8, 0x76, 0xd0, 0xd6, 0x5f, 0xcf, 0x5e, 0x9e, 0x32, 0xcd, 0x7b, 0x89, 0x82, 0x9e, 0xd0, 0x5b, 0x0b, 0x8f, 0x63, 0xa9, 0x38, 0x58, 0x98, 0x5b, 0xc9, 0x56, 0x9f, 0xce, 0x42, 0x9f, 0xd3, 0x7a, 0x21, 0x1a, 0xbe, 0xd6, 0x50, 0xf5, 0x85, 0xc3, 0xb5, 0x59, 0x00, 0x44, 0x3b, 0x6c, 0x5d, 0x6e, 0x8a, 0x48, 0xba, 0x67, 0xde, 0xee, 0xd0, 0x7b, 0x76, 0xe9, 0x69, 0xfc, 0x88, 0x43, 0x0f, 0xce, 0x27, 0x09, 0xc0, 0xbb, 0x5c, 0xe9, 0x26, 0xab, 0x7f, 0x44, 0xe0, 0xcd, 0x79, 0xf4, 0xec, 0x35, 0x9e, 0xf7, 0x67, 0x48, 0x88, 0x3f, 0xcc, 0x3d, 0x02, 0x6e, 0xdd, 0x06, 0xc8, 0xb9, 0xcb, 0xa5, 0x4b, 0x99, 0x0d, 0x30, 0xaa, 0x41, 0xf1, 0x44, 0x8a, 0x10, 0x89, 0x3f, 0xb0, 0x53, 0x92, 0x80, 0xc5, 0x99, 0xd4, 0x23, 0x61, 0x43, 0x3a, 0x34, 0xcd, 0xaf, 0xd8, 0xeb, 0xdd, 0x92, 0xef, 0xb9, 0xc3, 0x8a, 0x36, 0xda, 0xf4, 0xc7, 0x40, 0x60, 0xc6, 0x96, };
5473 static const u8 ed25519_238_test_vectors_expected_sig[] = {
5474 	0x24, 0x44, 0x6b, 0xdf, 0x03, 0x41, 0x6a, 0x4d, 0x08, 0x61, 0x44, 0x66, 0xfb, 0x85, 0x1d, 0xb5, 0x0e, 0x91, 0xa6, 0x23, 0xca, 0xcd, 0x1b, 0x0b, 0x35, 0x66, 0x0f, 0x3c, 0xf9, 0x33, 0x20, 0x0e, 0x15, 0x30, 0x87, 0x08, 0xda, 0x34, 0x99, 0xa5, 0xad, 0x25, 0xf0, 0xf0, 0x30, 0x6b, 0x79, 0x42, 0x76, 0x2e, 0x20, 0xa7, 0x65, 0xb7, 0xca, 0x9b, 0x90, 0x1c, 0x75, 0x0b, 0x3a, 0x95, 0x32, 0x0a, };
5475 static const ec_test_case ed25519_238_test_case = {
5476 	.name = "EDDSA25519-SHA512/wei25519 238",
5477 	.ec_str_p = &wei25519_str_params,
5478 	.priv_key = ed25519_238_test_vectors_priv_key,
5479 	.priv_key_len = sizeof(ed25519_238_test_vectors_priv_key),
5480 	.nn_random = NULL,
5481 	.hash_type = SHA512,
5482 	.msg = (const char *)ed25519_238_test_vectors_message,
5483 	.msglen = sizeof(ed25519_238_test_vectors_message),
5484 	.sig_type = EDDSA25519,
5485 	.exp_sig = ed25519_238_test_vectors_expected_sig,
5486 	.exp_siglen = sizeof(ed25519_238_test_vectors_expected_sig),
5487 	.adata = NULL,
5488 	.adata_len = 0
5489 };
5490 
5491 /************************************************/
5492 static const u8 ed25519_239_test_vectors_priv_key[] = {
5493 	0x57, 0xb5, 0x19, 0x4d, 0x26, 0xab, 0xe4, 0xab, 0x21, 0x16, 0xc0, 0xf0, 0x3d, 0x23, 0xdb, 0xe1, 0x16, 0xd4, 0x88, 0x25, 0xa2, 0x5e, 0x77, 0xd6, 0x46, 0x48, 0xb4, 0x36, 0x92, 0xae, 0x25, 0xbf, };
5494 static const u8 ed25519_239_test_vectors_message[] = {
5495 	0xb4, 0x81, 0x3c, 0x9d, 0x13, 0x21, 0x5f, 0xe9, 0xf6, 0x3a, 0x78, 0xff, 0x7a, 0xc9, 0x51, 0x73, 0xeb, 0x81, 0x0b, 0x46, 0x13, 0xf0, 0xf4, 0x8d, 0x68, 0x76, 0xb2, 0xbd, 0x3b, 0x2c, 0x72, 0xbc, 0x7d, 0x98, 0xcb, 0x1a, 0xc3, 0x2b, 0xc4, 0x1c, 0xa4, 0x7f, 0x09, 0x89, 0x6f, 0x79, 0x20, 0x4e, 0xcf, 0xb8, 0x26, 0x4c, 0xe8, 0xf3, 0xc3, 0xe7, 0x6d, 0xc1, 0x24, 0xda, 0x8d, 0xdc, 0x6e, 0x0d, 0xfc, 0x1e, 0x13, 0xb5, 0xa5, 0x29, 0xf2, 0x0c, 0x82, 0x61, 0x3f, 0xb9, 0xa8, 0x2e, 0x5f, 0x5d, 0x77, 0x32, 0x6a, 0x86, 0x1f, 0xae, 0xda, 0xbc, 0x73, 0x25, 0xc5, 0x9a, 0xf3, 0x3d, 0xae, 0x67, 0x44, 0x02, 0x5e, 0x64, 0x97, 0x74, 0xfc, 0x4f, 0x79, 0x13, 0x4b, 0xf9, 0xf6, 0xe3, 0xd5, 0x87, 0x5d, 0xd9, 0x1b, 0xc8, 0xa1, 0x4c, 0xc3, 0x6a, 0x66, 0x28, 0x3d, 0x01, 0xd8, 0xd1, 0x08, 0xc1, 0x33, 0x27, 0xec, 0xa5, 0x30, 0x57, 0xba, 0x50, 0xbf, 0x21, 0x0c, 0x19, 0xf1, 0x39, 0xde, 0x64, 0x94, 0x98, 0x26, 0x46, 0x19, 0x8a, 0x12, 0x46, 0xc2, 0x71, 0xb0, 0xa3, 0x68, 0xc1, 0x0a, 0xab, 0x95, 0xcd, 0x89, 0x61, 0x23, 0x5d, 0x74, 0x2d, 0xf4, 0x54, 0x5b, 0xe6, 0x8b, 0xd0, 0x10, 0xdc, 0x0d, 0xb2, 0x3b, 0x67, 0x3e, 0x62, 0x36, 0x09, 0xe4, 0x20, 0xee, 0x76, 0xb1, 0x05, 0x6c, 0x52, 0x0f, 0x9c, 0xe8, 0xfb, 0xe8, 0xee, 0x18, 0x63, 0xdf, 0x97, 0xd1, 0x7b, 0x71, 0x74, 0x63, 0x6c, 0x3a, 0x2b, 0x61, 0x22, 0x95, 0x09, 0x19, 0x48, 0x81, 0x0d, 0x1d, 0x4b, 0x8a, 0x58, 0x43, 0x76, 0x0a, 0x28, 0x87, 0xdc, 0x55, 0xef, 0x51, 0x2a, 0xf0, 0x41, 0xec, 0x54, 0xfa, 0xd3, };
5496 static const u8 ed25519_239_test_vectors_expected_sig[] = {
5497 	0x4c, 0x73, 0x45, 0x96, 0x0c, 0x8f, 0xd4, 0x8a, 0x7d, 0xea, 0xd7, 0x1d, 0xbd, 0x61, 0x90, 0x84, 0x68, 0xef, 0xa8, 0x65, 0xa1, 0x35, 0x56, 0x8c, 0x8f, 0x9c, 0xa0, 0x05, 0x54, 0x83, 0x46, 0x86, 0x17, 0xa7, 0xe3, 0x35, 0x84, 0x0f, 0x57, 0xc6, 0xcd, 0x8f, 0x2c, 0x98, 0x05, 0xcd, 0x47, 0xa9, 0xd7, 0xcd, 0xfd, 0xe5, 0x3d, 0xa8, 0xef, 0x4f, 0x1a, 0xdb, 0xb6, 0xf6, 0x98, 0xaa, 0xf1, 0x00, };
5498 static const ec_test_case ed25519_239_test_case = {
5499 	.name = "EDDSA25519-SHA512/wei25519 239",
5500 	.ec_str_p = &wei25519_str_params,
5501 	.priv_key = ed25519_239_test_vectors_priv_key,
5502 	.priv_key_len = sizeof(ed25519_239_test_vectors_priv_key),
5503 	.nn_random = NULL,
5504 	.hash_type = SHA512,
5505 	.msg = (const char *)ed25519_239_test_vectors_message,
5506 	.msglen = sizeof(ed25519_239_test_vectors_message),
5507 	.sig_type = EDDSA25519,
5508 	.exp_sig = ed25519_239_test_vectors_expected_sig,
5509 	.exp_siglen = sizeof(ed25519_239_test_vectors_expected_sig),
5510 	.adata = NULL,
5511 	.adata_len = 0
5512 };
5513 
5514 /************************************************/
5515 static const u8 ed25519_240_test_vectors_priv_key[] = {
5516 	0x06, 0x8d, 0x27, 0xb2, 0x1e, 0x2a, 0xcf, 0xcc, 0x19, 0xc3, 0xe9, 0x67, 0x3d, 0xd4, 0x41, 0x42, 0xd9, 0x8a, 0xac, 0xae, 0x89, 0x49, 0x30, 0xe2, 0x0c, 0xa0, 0x67, 0x43, 0x9e, 0x74, 0x9a, 0x79, };
5517 static const u8 ed25519_240_test_vectors_message[] = {
5518 	0x1c, 0x68, 0x15, 0x42, 0x3d, 0x1a, 0x2c, 0x5e, 0xbe, 0x88, 0x28, 0xd1, 0x64, 0x65, 0x27, 0xc1, 0x7b, 0x20, 0x06, 0xe5, 0x47, 0xf0, 0x16, 0xb5, 0x35, 0x0f, 0x01, 0x0d, 0x79, 0xb1, 0x3d, 0xf4, 0xfb, 0x8c, 0x6e, 0xd5, 0x7b, 0xa9, 0xc2, 0x6c, 0x3c, 0xb0, 0xe0, 0xa6, 0x41, 0x78, 0xb6, 0x50, 0xa3, 0xea, 0x54, 0x44, 0xa4, 0xfa, 0xd5, 0xb2, 0x0a, 0x3e, 0xb8, 0xca, 0xa7, 0x02, 0x63, 0x40, 0x11, 0xcf, 0x78, 0x92, 0xa0, 0x72, 0x7b, 0x6e, 0x81, 0x50, 0xb0, 0x77, 0x04, 0x29, 0xa3, 0x7a, 0x8a, 0x0b, 0xb3, 0xa7, 0xed, 0xb8, 0x91, 0xa7, 0xc9, 0x02, 0x40, 0xbc, 0x03, 0x60, 0xb1, 0x4e, 0x6d, 0xd7, 0x70, 0xa9, 0x90, 0xb3, 0x1b, 0x31, 0xf3, 0x3d, 0xdb, 0xf6, 0x53, 0x98, 0x8f, 0x82, 0x74, 0x2e, 0x5e, 0xec, 0x31, 0xb2, 0x73, 0x68, 0xeb, 0x0e, 0x4f, 0x1e, 0xcf, 0x4d, 0x67, 0x6f, 0x49, 0x21, 0x4a, 0x52, 0x0d, 0x1e, 0x5b, 0x2b, 0xbb, 0x59, 0xac, 0x2e, 0x13, 0x26, 0x7e, 0x07, 0xa0, 0xcb, 0xac, 0xbe, 0xd9, 0xf9, 0x4d, 0x74, 0x73, 0xed, 0x69, 0x78, 0x28, 0xb0, 0x92, 0x8f, 0xcc, 0x61, 0x6e, 0xe0, 0x2e, 0x51, 0xfc, 0xd8, 0xdb, 0x4d, 0x8f, 0x75, 0x33, 0xb7, 0xb1, 0x39, 0xa0, 0x5e, 0x06, 0xf9, 0xe0, 0xea, 0xe3, 0x29, 0x93, 0xe3, 0x02, 0x5a, 0xef, 0x05, 0x90, 0xb3, 0xfb, 0xb4, 0x29, 0x2a, 0x3a, 0xc4, 0x07, 0x65, 0xe8, 0x58, 0x4e, 0xad, 0x00, 0x26, 0x6a, 0xcd, 0xcb, 0xdd, 0xe1, 0x45, 0x7a, 0x03, 0xb7, 0xd5, 0x7b, 0xd5, 0xc9, 0xe6, 0x4f, 0xb0, 0x6b, 0x64, 0xa5, 0x0f, 0x35, 0xf0, 0xa1, 0xec, 0x34, 0xb6, 0xdd, 0xbd, 0xe7, 0x67, 0xb9, 0x6f, 0xfd, };
5519 static const u8 ed25519_240_test_vectors_expected_sig[] = {
5520 	0x0c, 0x17, 0x3c, 0x48, 0x8a, 0xd0, 0x01, 0xcb, 0xb9, 0xc4, 0x3d, 0x7b, 0x30, 0xa7, 0xc0, 0x71, 0xa2, 0xfd, 0xb0, 0x8c, 0xf7, 0xf3, 0x7d, 0xaf, 0x71, 0xd7, 0xae, 0x71, 0x28, 0xdc, 0x0d, 0x43, 0xf0, 0xf0, 0x95, 0xb2, 0x92, 0x9c, 0x54, 0xb7, 0x73, 0xed, 0x4a, 0x1f, 0x0b, 0xf0, 0xdc, 0x4f, 0x36, 0x4f, 0x06, 0x01, 0xe8, 0xd5, 0xae, 0x06, 0x2f, 0x5b, 0x78, 0xc0, 0x5b, 0xfb, 0xc7, 0x02, };
5521 static const ec_test_case ed25519_240_test_case = {
5522 	.name = "EDDSA25519-SHA512/wei25519 240",
5523 	.ec_str_p = &wei25519_str_params,
5524 	.priv_key = ed25519_240_test_vectors_priv_key,
5525 	.priv_key_len = sizeof(ed25519_240_test_vectors_priv_key),
5526 	.nn_random = NULL,
5527 	.hash_type = SHA512,
5528 	.msg = (const char *)ed25519_240_test_vectors_message,
5529 	.msglen = sizeof(ed25519_240_test_vectors_message),
5530 	.sig_type = EDDSA25519,
5531 	.exp_sig = ed25519_240_test_vectors_expected_sig,
5532 	.exp_siglen = sizeof(ed25519_240_test_vectors_expected_sig),
5533 	.adata = NULL,
5534 	.adata_len = 0
5535 };
5536 
5537 /************************************************/
5538 static const u8 ed25519_241_test_vectors_priv_key[] = {
5539 	0xa3, 0x4d, 0x52, 0x56, 0x31, 0x59, 0xe0, 0x72, 0x3e, 0x9f, 0x3f, 0xd1, 0x33, 0xbd, 0x96, 0xe2, 0x0a, 0xda, 0xe6, 0x23, 0xf8, 0xc7, 0x98, 0x01, 0x3b, 0xc3, 0x6b, 0x44, 0x14, 0x89, 0xbd, 0xc2, };
5540 static const u8 ed25519_241_test_vectors_message[] = {
5541 	0x1d, 0x21, 0x5f, 0x85, 0xc0, 0x89, 0xf3, 0x5f, 0x30, 0x7a, 0x74, 0x6c, 0x66, 0xc7, 0xc1, 0xe4, 0x1d, 0x6b, 0xa3, 0x77, 0x30, 0xd7, 0x59, 0xe6, 0xe5, 0x62, 0x2d, 0x6c, 0x6a, 0x19, 0x8e, 0x40, 0xf6, 0x3d, 0x37, 0x87, 0x3b, 0x71, 0x5d, 0xf7, 0x51, 0x8b, 0x3c, 0x6b, 0xb5, 0xe9, 0x5a, 0x46, 0x77, 0x26, 0xb9, 0x7c, 0x9a, 0x0f, 0x8f, 0x5d, 0xfc, 0xdb, 0xfd, 0x1e, 0x0d, 0xe3, 0x57, 0x66, 0x1d, 0xde, 0xab, 0x55, 0x50, 0x42, 0xb9, 0x45, 0xfd, 0x89, 0x9f, 0xad, 0x6d, 0x38, 0x2d, 0x79, 0x17, 0xda, 0x9e, 0x12, 0xdf, 0xbd, 0xa0, 0xd6, 0x99, 0x00, 0xb3, 0x97, 0x51, 0x65, 0xa7, 0x3d, 0x0a, 0xc9, 0xde, 0x01, 0xfd, 0x30, 0x48, 0xb8, 0xfe, 0x5f, 0x0b, 0x90, 0xbe, 0x67, 0xe0, 0x3d, 0xc2, 0x2f, 0x65, 0x3a, 0x0a, 0x13, 0xeb, 0x4b, 0x0b, 0x75, 0x3f, 0x3f, 0x3b, 0xbf, 0x78, 0x73, 0x69, 0xeb, 0xd8, 0xbf, 0x5e, 0x00, 0xeb, 0x78, 0xbf, 0x0b, 0x35, 0x15, 0xa9, 0x1e, 0x68, 0xb1, 0xd5, 0xfc, 0x69, 0x20, 0xbf, 0x4f, 0x42, 0x59, 0xf8, 0xa7, 0x30, 0xef, 0xc7, 0xf1, 0x01, 0x6d, 0x50, 0x1e, 0xf6, 0xfb, 0x7c, 0xb8, 0x36, 0x6f, 0xc8, 0xe7, 0x16, 0xcf, 0xa5, 0x0e, 0xa8, 0xb2, 0x03, 0xcc, 0xa1, 0xa3, 0x16, 0x70, 0x7e, 0x0b, 0x0f, 0xc5, 0x7e, 0xaf, 0xce, 0x82, 0xd6, 0x2f, 0x7f, 0xf3, 0xae, 0x04, 0xac, 0x8f, 0xd0, 0x41, 0xb5, 0x5b, 0x19, 0xa3, 0x52, 0xa6, 0x9e, 0x6d, 0x4b, 0x79, 0xd0, 0xe6, 0x50, 0x17, 0x51, 0x68, 0xe3, 0x4f, 0xa3, 0x35, 0x8e, 0xac, 0x81, 0x6c, 0xec, 0xf2, 0xc8, 0xdd, 0x1b, 0xf2, 0xa5, 0x89, 0x11, 0x3e, 0x91, 0xbb, 0x81, 0x8f, 0x91, 0xf8, };
5542 static const u8 ed25519_241_test_vectors_expected_sig[] = {
5543 	0x5f, 0xab, 0x5a, 0x71, 0x40, 0xd4, 0x78, 0x73, 0x68, 0x43, 0x05, 0xaa, 0x63, 0x53, 0xd3, 0x86, 0x2f, 0x5f, 0xc1, 0x3e, 0x54, 0xa4, 0x0c, 0x95, 0x63, 0xcc, 0xea, 0xc8, 0xf7, 0x40, 0x08, 0xc6, 0xc4, 0x45, 0x63, 0x1f, 0xa8, 0x64, 0xe0, 0xf1, 0xc3, 0x45, 0xb5, 0x95, 0x4f, 0x80, 0x05, 0x6a, 0xeb, 0xa2, 0x56, 0x62, 0xb7, 0x88, 0x27, 0xb5, 0xe8, 0xe3, 0xa9, 0x43, 0x78, 0x13, 0x72, 0x0f, };
5544 static const ec_test_case ed25519_241_test_case = {
5545 	.name = "EDDSA25519-SHA512/wei25519 241",
5546 	.ec_str_p = &wei25519_str_params,
5547 	.priv_key = ed25519_241_test_vectors_priv_key,
5548 	.priv_key_len = sizeof(ed25519_241_test_vectors_priv_key),
5549 	.nn_random = NULL,
5550 	.hash_type = SHA512,
5551 	.msg = (const char *)ed25519_241_test_vectors_message,
5552 	.msglen = sizeof(ed25519_241_test_vectors_message),
5553 	.sig_type = EDDSA25519,
5554 	.exp_sig = ed25519_241_test_vectors_expected_sig,
5555 	.exp_siglen = sizeof(ed25519_241_test_vectors_expected_sig),
5556 	.adata = NULL,
5557 	.adata_len = 0
5558 };
5559 
5560 /************************************************/
5561 static const u8 ed25519_242_test_vectors_priv_key[] = {
5562 	0x58, 0xdf, 0xe7, 0x68, 0xbf, 0x52, 0x11, 0x84, 0x94, 0xb2, 0x99, 0x75, 0x15, 0x4c, 0xf4, 0x52, 0xbd, 0x97, 0x46, 0xdc, 0x7d, 0xe1, 0xd6, 0xbc, 0xd1, 0x8e, 0xe6, 0xa0, 0x5a, 0xcf, 0xd8, 0x58, };
5563 static const u8 ed25519_242_test_vectors_message[] = {
5564 	0x60, 0x97, 0x94, 0x20, 0x1c, 0x4f, 0x6f, 0xaf, 0x48, 0x87, 0x90, 0xd6, 0x1d, 0xbf, 0xf3, 0xf4, 0x1b, 0x32, 0x8c, 0x5b, 0x06, 0x95, 0xcb, 0xe9, 0xaa, 0x8a, 0x13, 0x6d, 0x72, 0xb4, 0x97, 0x7b, 0x21, 0xb5, 0x00, 0xf2, 0x16, 0xe9, 0xf3, 0x21, 0x68, 0xad, 0xa8, 0xc1, 0x3b, 0xff, 0x25, 0x32, 0x76, 0x47, 0xe3, 0x0d, 0x8a, 0x24, 0x4d, 0x74, 0xd8, 0x83, 0x03, 0xab, 0xc9, 0x0b, 0x7f, 0x71, 0xaa, 0x07, 0xca, 0x04, 0xd1, 0x7b, 0xc8, 0xa0, 0x16, 0x7d, 0x6e, 0x63, 0xfb, 0x88, 0xba, 0xa1, 0xda, 0xb8, 0x1d, 0x50, 0xf1, 0xe9, 0x1f, 0x46, 0xf5, 0xaf, 0x77, 0xf2, 0xe8, 0x40, 0x8b, 0x82, 0x63, 0x36, 0xa3, 0x50, 0x52, 0xef, 0xff, 0xdf, 0x4a, 0xf7, 0x95, 0x96, 0xaf, 0x1b, 0xb2, 0x25, 0x9f, 0x83, 0xc1, 0xbc, 0x10, 0x9c, 0xfd, 0xc3, 0xdd, 0x50, 0xfd, 0x96, 0xd3, 0x10, 0xf2, 0x7e, 0xa4, 0xc6, 0xc7, 0x69, 0x0f, 0x21, 0x81, 0x5e, 0xa9, 0x2b, 0xd7, 0x93, 0x89, 0x68, 0x0c, 0xfe, 0x3e, 0xd4, 0x0c, 0x80, 0x18, 0x11, 0x90, 0x68, 0x8d, 0x24, 0x22, 0x2d, 0x9a, 0x1e, 0xd5, 0x2c, 0xe6, 0xa1, 0x6b, 0x41, 0xdb, 0xd9, 0x10, 0x7e, 0xb6, 0xd2, 0xe3, 0x59, 0x4e, 0x44, 0x94, 0xd7, 0x5d, 0xd7, 0xc0, 0x89, 0xe3, 0xb2, 0x6f, 0xfd, 0x00, 0xd1, 0x00, 0x3c, 0x92, 0xc4, 0xc3, 0x9a, 0xe5, 0x38, 0x2e, 0xf9, 0x29, 0x14, 0x91, 0xa8, 0x80, 0xca, 0x4e, 0xc3, 0xac, 0x2b, 0x86, 0xe6, 0x67, 0x19, 0xb9, 0x2b, 0x6f, 0x7c, 0xea, 0x2c, 0xb0, 0xbb, 0xb1, 0xcf, 0x62, 0x4d, 0x0d, 0x1a, 0xbe, 0xae, 0x55, 0x6e, 0x5f, 0x73, 0x90, 0x9d, 0xd5, 0x46, 0x27, 0x70, 0x37, 0xec, 0x97, 0x2f, 0xd4, };
5565 static const u8 ed25519_242_test_vectors_expected_sig[] = {
5566 	0x97, 0x71, 0x37, 0xa3, 0x8a, 0xf4, 0x4f, 0x4b, 0x26, 0x2a, 0xbf, 0xf7, 0xe0, 0x72, 0x82, 0x43, 0x3c, 0x58, 0x92, 0x6d, 0x56, 0x2f, 0xbc, 0x61, 0x80, 0xbd, 0xe6, 0xcd, 0x94, 0x97, 0x86, 0x1f, 0xb6, 0xd9, 0x55, 0xcf, 0x38, 0x3d, 0x99, 0x9f, 0xa1, 0x03, 0x7b, 0x8b, 0x17, 0x54, 0xce, 0x88, 0x8c, 0x9f, 0xfc, 0x15, 0x60, 0xa4, 0x51, 0xd0, 0xe9, 0xdb, 0x8d, 0x74, 0xd2, 0x94, 0x06, 0x04, };
5567 static const ec_test_case ed25519_242_test_case = {
5568 	.name = "EDDSA25519-SHA512/wei25519 242",
5569 	.ec_str_p = &wei25519_str_params,
5570 	.priv_key = ed25519_242_test_vectors_priv_key,
5571 	.priv_key_len = sizeof(ed25519_242_test_vectors_priv_key),
5572 	.nn_random = NULL,
5573 	.hash_type = SHA512,
5574 	.msg = (const char *)ed25519_242_test_vectors_message,
5575 	.msglen = sizeof(ed25519_242_test_vectors_message),
5576 	.sig_type = EDDSA25519,
5577 	.exp_sig = ed25519_242_test_vectors_expected_sig,
5578 	.exp_siglen = sizeof(ed25519_242_test_vectors_expected_sig),
5579 	.adata = NULL,
5580 	.adata_len = 0
5581 };
5582 
5583 /************************************************/
5584 static const u8 ed25519_243_test_vectors_priv_key[] = {
5585 	0x5a, 0x63, 0xef, 0x9b, 0xd7, 0xdb, 0xf0, 0xe8, 0x9f, 0xef, 0x15, 0x59, 0x83, 0x65, 0x9e, 0x8a, 0x0a, 0x6c, 0xa0, 0x02, 0xbc, 0x42, 0xfa, 0xd5, 0xa4, 0x5a, 0xf8, 0xe0, 0x28, 0x19, 0x23, 0xf4, };
5586 static const u8 ed25519_243_test_vectors_message[] = {
5587 	0x79, 0x6b, 0xc8, 0x36, 0x1c, 0x6e, 0x8e, 0xec, 0x39, 0x83, 0x8b, 0x24, 0xf5, 0x39, 0x71, 0xe8, 0x20, 0xf8, 0x23, 0x61, 0xe0, 0x51, 0x0e, 0xb4, 0xde, 0xf1, 0xdb, 0x25, 0x12, 0x38, 0x7d, 0x6b, 0xf3, 0x5b, 0xbd, 0xfa, 0x31, 0x88, 0x79, 0x20, 0x94, 0x35, 0xd6, 0x88, 0x7b, 0x14, 0x10, 0xb3, 0xeb, 0xc1, 0x45, 0x5f, 0x91, 0xf9, 0x85, 0xe0, 0xfa, 0xb1, 0xce, 0x1c, 0x50, 0x5c, 0x45, 0x55, 0x76, 0xbc, 0xa0, 0x35, 0x39, 0xd0, 0x48, 0xad, 0x3a, 0x0e, 0xd1, 0xf1, 0x1c, 0x73, 0xba, 0xc6, 0x80, 0x9e, 0x2e, 0xa1, 0x47, 0x97, 0x5b, 0xee, 0x27, 0xc6, 0x52, 0x61, 0xac, 0xa1, 0x17, 0xdf, 0x0f, 0xae, 0x70, 0x08, 0xe2, 0xc3, 0xc1, 0x30, 0xbe, 0xc5, 0x53, 0x3a, 0xb8, 0x93, 0x51, 0xc2, 0x14, 0x0c, 0x9d, 0x1a, 0x62, 0xbd, 0xf6, 0x88, 0x62, 0x97, 0x87, 0xf9, 0x54, 0xe1, 0xc6, 0x10, 0xcb, 0xb7, 0x5e, 0xdb, 0x86, 0x20, 0x9d, 0x7c, 0x35, 0x7c, 0xd0, 0x6e, 0xf4, 0x19, 0x31, 0xdd, 0x5d, 0xfd, 0x1c, 0x7d, 0x40, 0x7f, 0xa4, 0xee, 0x1e, 0xf2, 0x93, 0x93, 0xbe, 0xab, 0x57, 0x13, 0x17, 0x38, 0x02, 0xcc, 0xe2, 0xd5, 0x62, 0x29, 0xcf, 0xa7, 0x6b, 0x60, 0x16, 0x62, 0xc4, 0xd9, 0xa8, 0x4a, 0x49, 0x36, 0xc5, 0x2a, 0xbb, 0x19, 0x81, 0x37, 0x8b, 0x71, 0x7e, 0xb5, 0x5c, 0xb6, 0x04, 0xa6, 0x8d, 0x34, 0xf0, 0x3b, 0x21, 0x9f, 0x32, 0x22, 0x6c, 0xa0, 0xe6, 0x69, 0x34, 0x8a, 0x2d, 0x8d, 0x24, 0x53, 0x93, 0x0e, 0xb6, 0xe9, 0xc2, 0xbf, 0x66, 0xfa, 0x4e, 0x92, 0xc7, 0x51, 0x36, 0xe1, 0x48, 0xcd, 0xb0, 0x34, 0x13, 0x0d, 0x3f, 0x64, 0x63, 0x82, 0xe1, 0xc7, 0x15, 0x79, 0xac, 0x70, };
5588 static const u8 ed25519_243_test_vectors_expected_sig[] = {
5589 	0x75, 0x46, 0x1f, 0x99, 0x65, 0x0c, 0x03, 0x68, 0x05, 0x81, 0x13, 0xa1, 0x5b, 0xa1, 0x6b, 0xd2, 0x33, 0x7b, 0x2e, 0x63, 0x3d, 0xa3, 0x81, 0x12, 0x87, 0x8c, 0x48, 0x34, 0xfa, 0xc9, 0xba, 0x2e, 0x30, 0x7c, 0x86, 0x6c, 0x02, 0xaf, 0x79, 0xbe, 0xa3, 0x36, 0x59, 0x61, 0x4c, 0xbb, 0x44, 0x65, 0xc5, 0x7e, 0xc3, 0xef, 0xfd, 0x4c, 0x47, 0x8a, 0xe3, 0x8a, 0x34, 0xa0, 0x5c, 0xf1, 0xed, 0x07, };
5590 static const ec_test_case ed25519_243_test_case = {
5591 	.name = "EDDSA25519-SHA512/wei25519 243",
5592 	.ec_str_p = &wei25519_str_params,
5593 	.priv_key = ed25519_243_test_vectors_priv_key,
5594 	.priv_key_len = sizeof(ed25519_243_test_vectors_priv_key),
5595 	.nn_random = NULL,
5596 	.hash_type = SHA512,
5597 	.msg = (const char *)ed25519_243_test_vectors_message,
5598 	.msglen = sizeof(ed25519_243_test_vectors_message),
5599 	.sig_type = EDDSA25519,
5600 	.exp_sig = ed25519_243_test_vectors_expected_sig,
5601 	.exp_siglen = sizeof(ed25519_243_test_vectors_expected_sig),
5602 	.adata = NULL,
5603 	.adata_len = 0
5604 };
5605 
5606 /************************************************/
5607 static const u8 ed25519_244_test_vectors_priv_key[] = {
5608 	0x8b, 0x2f, 0x06, 0x14, 0x1e, 0x40, 0x11, 0x63, 0xf9, 0x0f, 0x67, 0x4b, 0x04, 0xdc, 0x90, 0xdc, 0xb6, 0xdd, 0x33, 0x86, 0x41, 0x93, 0x39, 0x66, 0x2e, 0xcb, 0x0d, 0xff, 0xad, 0xf2, 0x50, 0x0b, };
5609 static const u8 ed25519_244_test_vectors_message[] = {
5610 	0x1d, 0xeb, 0x25, 0xd4, 0x34, 0x58, 0x69, 0x03, 0x23, 0xa7, 0xd2, 0x6a, 0x26, 0x69, 0x50, 0x90, 0x99, 0x34, 0x74, 0xf4, 0x67, 0xc6, 0xfd, 0xe5, 0xdd, 0xb3, 0x4d, 0xa9, 0x45, 0xbe, 0x3c, 0xea, 0x2f, 0x6b, 0x75, 0x65, 0x2a, 0xe2, 0x1c, 0xbc, 0x4f, 0xd2, 0x27, 0x63, 0xa1, 0xb4, 0x55, 0x83, 0xe1, 0xc3, 0xe8, 0x8b, 0xbb, 0x5f, 0xea, 0x20, 0x49, 0xb7, 0x33, 0x6c, 0x91, 0x15, 0x99, 0x88, 0xc0, 0x15, 0x26, 0x82, 0x4c, 0xa3, 0xbe, 0xf1, 0x6b, 0x36, 0x2b, 0x92, 0x02, 0xb8, 0xb9, 0x75, 0x41, 0x85, 0xbd, 0x61, 0xbe, 0xa8, 0xf5, 0x39, 0xaa, 0xdf, 0x4a, 0x1a, 0xb1, 0x35, 0xfb, 0xc3, 0x1d, 0x2a, 0x8e, 0x33, 0x17, 0x80, 0x73, 0x10, 0x6c, 0xbb, 0xc0, 0x2d, 0x4c, 0xd0, 0xd3, 0xc8, 0xfe, 0xaa, 0x8e, 0xb7, 0x33, 0x08, 0x43, 0x56, 0x25, 0x17, 0x95, 0xaf, 0xbd, 0x78, 0xac, 0x3c, 0x4f, 0x8a, 0x3b, 0xa1, 0x9a, 0xed, 0x75, 0x5c, 0x64, 0x6f, 0x35, 0x56, 0x9c, 0x7a, 0x6c, 0x67, 0x5b, 0x6d, 0x69, 0x18, 0xe8, 0x34, 0x96, 0x9a, 0xca, 0x03, 0xf7, 0x1a, 0x2e, 0x72, 0xcc, 0xb1, 0x70, 0x03, 0xbb, 0x75, 0xb6, 0x2e, 0x85, 0x2a, 0xaf, 0x58, 0xb3, 0xba, 0xea, 0x89, 0xbc, 0xd6, 0x4a, 0x32, 0xeb, 0x14, 0xa6, 0xb9, 0xe1, 0x0d, 0xe4, 0x89, 0x71, 0xe5, 0x3d, 0x0e, 0x9a, 0xc9, 0x9a, 0x78, 0xf4, 0x2d, 0xe0, 0x38, 0x2e, 0xf0, 0xe8, 0x0e, 0xd3, 0xcf, 0xa3, 0x43, 0xf3, 0x5e, 0x4a, 0x99, 0x83, 0xb9, 0xae, 0xed, 0x98, 0x6d, 0x3a, 0x57, 0xf4, 0x7e, 0x5e, 0x46, 0xd4, 0x0e, 0x9d, 0x67, 0x73, 0x02, 0x80, 0x9a, 0x2d, 0x37, 0xe4, 0xec, 0x01, 0x1f, 0x05, 0x1b, 0x4d, 0x03, 0x1e, 0xd6, 0x00, };
5611 static const u8 ed25519_244_test_vectors_expected_sig[] = {
5612 	0xd6, 0x8e, 0x37, 0x50, 0xdc, 0x56, 0x43, 0x23, 0x97, 0x40, 0x1c, 0x98, 0xff, 0x15, 0x29, 0xdb, 0x9e, 0xd4, 0x8f, 0xea, 0x24, 0x6d, 0xd4, 0xed, 0x38, 0x3e, 0xc7, 0x4c, 0x1a, 0x46, 0x3a, 0xeb, 0x78, 0x4c, 0x87, 0xb1, 0xfd, 0xa8, 0xbb, 0xce, 0x97, 0x0f, 0xc9, 0x7a, 0xa9, 0x80, 0x7d, 0xdb, 0xe9, 0x5d, 0x41, 0xfb, 0x02, 0x2e, 0xa6, 0x8c, 0x1e, 0x31, 0x16, 0x54, 0xfa, 0x1d, 0xa2, 0x07, };
5613 static const ec_test_case ed25519_244_test_case = {
5614 	.name = "EDDSA25519-SHA512/wei25519 244",
5615 	.ec_str_p = &wei25519_str_params,
5616 	.priv_key = ed25519_244_test_vectors_priv_key,
5617 	.priv_key_len = sizeof(ed25519_244_test_vectors_priv_key),
5618 	.nn_random = NULL,
5619 	.hash_type = SHA512,
5620 	.msg = (const char *)ed25519_244_test_vectors_message,
5621 	.msglen = sizeof(ed25519_244_test_vectors_message),
5622 	.sig_type = EDDSA25519,
5623 	.exp_sig = ed25519_244_test_vectors_expected_sig,
5624 	.exp_siglen = sizeof(ed25519_244_test_vectors_expected_sig),
5625 	.adata = NULL,
5626 	.adata_len = 0
5627 };
5628 
5629 /************************************************/
5630 static const u8 ed25519_245_test_vectors_priv_key[] = {
5631 	0xdc, 0x64, 0x9f, 0xbb, 0x1b, 0xee, 0x0a, 0x44, 0x81, 0x4d, 0x6d, 0x9e, 0x90, 0x80, 0xd5, 0xd9, 0x0c, 0x1f, 0xc1, 0x73, 0xab, 0x5f, 0xef, 0xed, 0x82, 0x6a, 0x74, 0x72, 0x3a, 0x77, 0x4e, 0x0a, };
5632 static const u8 ed25519_245_test_vectors_message[] = {
5633 	0x32, 0x87, 0x00, 0xa8, 0xae, 0x58, 0x1c, 0x1e, 0xdc, 0x4e, 0x2c, 0x00, 0xc7, 0x8b, 0xf4, 0x60, 0x60, 0x97, 0xf9, 0xbd, 0x75, 0xaa, 0xde, 0x20, 0x5a, 0x24, 0x3c, 0x5f, 0xd7, 0x43, 0x4d, 0x62, 0x22, 0xda, 0x93, 0x7e, 0x28, 0x81, 0xa2, 0xe3, 0xc5, 0x74, 0x35, 0x6d, 0x4d, 0x56, 0x79, 0x30, 0x1d, 0xa9, 0x9e, 0x11, 0xcf, 0x74, 0x9c, 0x27, 0x92, 0x1c, 0x8c, 0xaa, 0x2a, 0xb2, 0xa5, 0x64, 0xd8, 0x7c, 0x5d, 0xf8, 0xec, 0xf1, 0xa7, 0x2b, 0x68, 0x01, 0x84, 0x82, 0x4f, 0x69, 0x86, 0x02, 0x2e, 0x3f, 0xc9, 0x8b, 0xd2, 0xa2, 0x1c, 0x34, 0x55, 0xab, 0xf1, 0x15, 0x49, 0x54, 0xfb, 0x30, 0xc8, 0x98, 0x82, 0x94, 0x7b, 0x02, 0xf3, 0x5a, 0xf7, 0xb1, 0xbf, 0xad, 0x05, 0x23, 0x7d, 0x24, 0x2e, 0x2b, 0x74, 0x83, 0x2f, 0xc5, 0x36, 0x19, 0x6f, 0x2e, 0x59, 0xd1, 0xac, 0xd0, 0xc1, 0xdb, 0x6f, 0x19, 0x43, 0xd0, 0xf6, 0x04, 0x3b, 0xbd, 0x6a, 0x76, 0x90, 0x83, 0xed, 0x66, 0xba, 0x0e, 0x05, 0xa5, 0x0f, 0xeb, 0x0a, 0xcf, 0x72, 0xb6, 0xc1, 0x6b, 0xa9, 0xaf, 0x03, 0x9a, 0xfb, 0x7f, 0xe2, 0xa4, 0xaa, 0xeb, 0x4d, 0x06, 0x18, 0x1c, 0x5a, 0x18, 0x78, 0x68, 0x9e, 0x67, 0xa3, 0xf5, 0xd0, 0xad, 0x39, 0xe7, 0x94, 0xd6, 0x23, 0x9a, 0x7e, 0x0a, 0x12, 0xce, 0x82, 0x0c, 0x5b, 0xe6, 0x0f, 0xd5, 0xf1, 0xdd, 0x79, 0x70, 0x2f, 0x49, 0xd0, 0x2b, 0x79, 0x75, 0x5f, 0xe8, 0x73, 0xf5, 0x78, 0x5c, 0x72, 0xf7, 0x46, 0x25, 0xcd, 0x7e, 0x24, 0x28, 0x26, 0x25, 0x97, 0xd3, 0x14, 0x82, 0xc2, 0xc0, 0x50, 0x88, 0x01, 0xfd, 0x96, 0x31, 0x9d, 0x61, 0xb9, 0x1b, 0xa2, 0x53, 0xa5, 0xe7, 0x22, 0xf4, 0x14, 0xcf, };
5634 static const u8 ed25519_245_test_vectors_expected_sig[] = {
5635 	0x0e, 0x0c, 0x5e, 0x4e, 0x18, 0x43, 0x75, 0xda, 0x4e, 0xf7, 0xe2, 0xa2, 0xe4, 0x88, 0x80, 0x50, 0xcd, 0x84, 0xe2, 0xfe, 0x21, 0xd0, 0x8e, 0x84, 0xa8, 0x52, 0xdb, 0x2b, 0xe3, 0xfb, 0xc3, 0x72, 0xc4, 0x72, 0xde, 0x09, 0x54, 0xdc, 0xd1, 0xdc, 0x11, 0xae, 0xc4, 0x93, 0xc5, 0x69, 0xf4, 0x0f, 0xc6, 0xf7, 0x7f, 0x03, 0xee, 0x52, 0x4f, 0xb0, 0x6e, 0xc4, 0x0f, 0xaa, 0x1d, 0x6c, 0xc1, 0x0f, };
5636 static const ec_test_case ed25519_245_test_case = {
5637 	.name = "EDDSA25519-SHA512/wei25519 245",
5638 	.ec_str_p = &wei25519_str_params,
5639 	.priv_key = ed25519_245_test_vectors_priv_key,
5640 	.priv_key_len = sizeof(ed25519_245_test_vectors_priv_key),
5641 	.nn_random = NULL,
5642 	.hash_type = SHA512,
5643 	.msg = (const char *)ed25519_245_test_vectors_message,
5644 	.msglen = sizeof(ed25519_245_test_vectors_message),
5645 	.sig_type = EDDSA25519,
5646 	.exp_sig = ed25519_245_test_vectors_expected_sig,
5647 	.exp_siglen = sizeof(ed25519_245_test_vectors_expected_sig),
5648 	.adata = NULL,
5649 	.adata_len = 0
5650 };
5651 
5652 /************************************************/
5653 static const u8 ed25519_246_test_vectors_priv_key[] = {
5654 	0x39, 0xb8, 0x06, 0x2d, 0xa4, 0x3e, 0x64, 0xe1, 0x67, 0x67, 0x65, 0xd6, 0x2c, 0x7f, 0xb8, 0xe0, 0xa9, 0x9c, 0x4f, 0xd4, 0x17, 0xd6, 0xf7, 0xe3, 0x31, 0x9b, 0xb1, 0x30, 0x44, 0x20, 0x5f, 0x3b, };
5655 static const u8 ed25519_246_test_vectors_message[] = {
5656 	0x74, 0x0a, 0xf6, 0x79, 0xe3, 0x06, 0x9f, 0xad, 0x05, 0x9f, 0xa4, 0x82, 0x5f, 0xa4, 0x1c, 0x59, 0xfb, 0xd4, 0x84, 0xaa, 0x64, 0x93, 0x03, 0xc2, 0x7c, 0x4f, 0x7a, 0x94, 0x71, 0x1c, 0x5b, 0x71, 0x3b, 0x2a, 0x6b, 0x89, 0x87, 0x85, 0x9e, 0x22, 0x71, 0xa6, 0xa7, 0x1e, 0xb0, 0xb4, 0xa1, 0x5a, 0xbd, 0xe4, 0xf5, 0x16, 0x8f, 0x6c, 0xb9, 0xdb, 0xdc, 0x6a, 0x27, 0xa2, 0xa1, 0x3d, 0x52, 0xc9, 0x72, 0x08, 0x96, 0xa1, 0xf4, 0xce, 0x3a, 0x53, 0x45, 0xee, 0x79, 0x3b, 0x6c, 0xc3, 0xad, 0x80, 0xd7, 0xd5, 0x81, 0x63, 0xd5, 0x45, 0x5b, 0x9c, 0xbd, 0x07, 0x3e, 0x2b, 0x7a, 0xdb, 0xff, 0x95, 0x59, 0x0c, 0x71, 0x72, 0x27, 0x1b, 0xd9, 0x1f, 0xef, 0xdb, 0xd0, 0x16, 0x57, 0xee, 0x17, 0x50, 0x65, 0x10, 0x36, 0xcd, 0xc3, 0x56, 0x0b, 0x44, 0x4c, 0xa2, 0x18, 0x4b, 0xf4, 0xf3, 0xea, 0x89, 0xfc, 0x97, 0x3a, 0xab, 0x6f, 0xb4, 0xa8, 0xee, 0x57, 0x04, 0xbb, 0xe5, 0xa7, 0x1c, 0x99, 0xfa, 0x3b, 0x5e, 0xf0, 0xd0, 0x39, 0x62, 0x49, 0x75, 0x82, 0x97, 0x69, 0x9a, 0xe2, 0x02, 0xb8, 0x19, 0x69, 0x0d, 0xc7, 0xac, 0x46, 0x92, 0x77, 0x03, 0x46, 0x90, 0x78, 0x45, 0xe2, 0x21, 0x0d, 0x53, 0x63, 0xad, 0xee, 0xc0, 0x3f, 0x0f, 0xc7, 0x76, 0x1b, 0x7e, 0x0e, 0xc0, 0xfe, 0xa1, 0xbc, 0xf6, 0xb0, 0x4f, 0xc5, 0x4b, 0x3e, 0x4c, 0x40, 0xd1, 0x9b, 0x8f, 0xa6, 0x49, 0xac, 0x84, 0x79, 0xe8, 0xf8, 0x07, 0x30, 0xc0, 0xc9, 0x4e, 0x9f, 0x4a, 0x1a, 0xd5, 0x06, 0xf2, 0xbc, 0xab, 0x0c, 0x49, 0x54, 0x0f, 0x6d, 0xec, 0xaa, 0x77, 0xb3, 0xd6, 0x57, 0xdc, 0x38, 0xa0, 0x2b, 0x28, 0xa9, 0x77, 0xec, 0xe4, 0x82, 0x54, 0x5a, };
5657 static const u8 ed25519_246_test_vectors_expected_sig[] = {
5658 	0xc5, 0xf6, 0x26, 0x49, 0x0c, 0x0e, 0xf4, 0xe1, 0xef, 0xc3, 0xed, 0xeb, 0x0c, 0xbc, 0x3f, 0x7d, 0xe2, 0x67, 0x05, 0x7f, 0xb7, 0xb6, 0xeb, 0x8f, 0x0c, 0x81, 0x35, 0x84, 0x96, 0x5b, 0xc5, 0xc4, 0x21, 0xfe, 0xed, 0xf5, 0x42, 0x41, 0xca, 0xe0, 0x01, 0xec, 0x6d, 0x5e, 0x25, 0xc9, 0xb1, 0xfb, 0xa0, 0x38, 0x5e, 0x5d, 0xbd, 0x95, 0xa0, 0x6e, 0xc1, 0xd8, 0xae, 0x51, 0x91, 0x44, 0x96, 0x0d, };
5659 static const ec_test_case ed25519_246_test_case = {
5660 	.name = "EDDSA25519-SHA512/wei25519 246",
5661 	.ec_str_p = &wei25519_str_params,
5662 	.priv_key = ed25519_246_test_vectors_priv_key,
5663 	.priv_key_len = sizeof(ed25519_246_test_vectors_priv_key),
5664 	.nn_random = NULL,
5665 	.hash_type = SHA512,
5666 	.msg = (const char *)ed25519_246_test_vectors_message,
5667 	.msglen = sizeof(ed25519_246_test_vectors_message),
5668 	.sig_type = EDDSA25519,
5669 	.exp_sig = ed25519_246_test_vectors_expected_sig,
5670 	.exp_siglen = sizeof(ed25519_246_test_vectors_expected_sig),
5671 	.adata = NULL,
5672 	.adata_len = 0
5673 };
5674 
5675 /************************************************/
5676 static const u8 ed25519_247_test_vectors_priv_key[] = {
5677 	0x52, 0xf4, 0x67, 0x5d, 0x8c, 0xcd, 0x0e, 0xb9, 0x09, 0xdf, 0x0a, 0x51, 0x66, 0x48, 0xdb, 0x26, 0xfa, 0x03, 0x3b, 0xa4, 0x1d, 0x43, 0xfc, 0x38, 0x45, 0x89, 0x6d, 0x45, 0x6e, 0x14, 0x26, 0x5f, };
5678 static const u8 ed25519_247_test_vectors_message[] = {
5679 	0x74, 0x42, 0x71, 0x10, 0x85, 0x7c, 0xb4, 0xaf, 0x0a, 0x33, 0x42, 0xc2, 0xb5, 0x29, 0x97, 0xbc, 0xe1, 0xa0, 0xdb, 0x64, 0x05, 0xc7, 0x4e, 0x96, 0x51, 0xc5, 0xb8, 0x59, 0x79, 0xac, 0xb0, 0x71, 0xe5, 0x67, 0xfe, 0x70, 0x41, 0x2c, 0x4e, 0x0d, 0x8c, 0x9f, 0xa4, 0x21, 0x91, 0x4f, 0x6a, 0x62, 0xf2, 0xae, 0x42, 0x0b, 0x7b, 0x2f, 0x4c, 0xf8, 0x0c, 0x90, 0x57, 0x42, 0x21, 0x22, 0x22, 0x88, 0xb6, 0x58, 0x67, 0xea, 0xa6, 0x6e, 0x7e, 0x0a, 0x05, 0x57, 0xa2, 0x6c, 0x54, 0x9f, 0x9a, 0x7a, 0x4e, 0x70, 0x83, 0x8b, 0xa4, 0x07, 0x4b, 0x4c, 0xd7, 0xa9, 0xd7, 0x58, 0xb3, 0x78, 0xb8, 0x8d, 0xd4, 0x94, 0x41, 0xdf, 0x80, 0x2a, 0x44, 0x4d, 0xcb, 0xc3, 0x06, 0x24, 0x93, 0x3b, 0x59, 0x92, 0x2f, 0x33, 0xc2, 0x0f, 0x01, 0x9f, 0xe7, 0x8e, 0xe2, 0x4b, 0x8f, 0xba, 0x79, 0xa6, 0x82, 0xf3, 0x88, 0x50, 0x5a, 0xc9, 0xc9, 0x7f, 0x4e, 0xb8, 0x7c, 0x61, 0x18, 0x80, 0x02, 0x6b, 0x4c, 0x23, 0x30, 0x6b, 0x86, 0x51, 0x73, 0xf5, 0xd7, 0x16, 0xab, 0xc6, 0xcd, 0x9a, 0x99, 0x06, 0xdb, 0x34, 0x30, 0x13, 0x6f, 0x75, 0x41, 0x29, 0xc4, 0x43, 0xb2, 0x0c, 0x42, 0xbe, 0x2f, 0xbc, 0xbc, 0xd4, 0x40, 0x34, 0xd7, 0x14, 0xf5, 0x8a, 0x4b, 0xa8, 0xe7, 0x56, 0x60, 0x7a, 0x02, 0xb6, 0x08, 0xef, 0x49, 0x64, 0x8f, 0x2a, 0xd0, 0xce, 0xa9, 0x9e, 0x7a, 0xb3, 0x0a, 0x8d, 0xd7, 0x81, 0x40, 0x04, 0xf7, 0x25, 0xf4, 0x93, 0x01, 0xd7, 0xb3, 0x04, 0xdc, 0xda, 0x62, 0x5c, 0x29, 0x6d, 0x92, 0x8c, 0xb5, 0x81, 0x73, 0x6a, 0xb7, 0x39, 0xc8, 0x6b, 0x46, 0x92, 0x41, 0xa8, 0x25, 0x93, 0x51, 0xfd, 0x37, 0xb4, 0x78, 0x0a, 0x99, 0x93, };
5680 static const u8 ed25519_247_test_vectors_expected_sig[] = {
5681 	0x4b, 0xf6, 0x68, 0x82, 0x7a, 0x72, 0x0a, 0xf6, 0x88, 0x98, 0xa0, 0x6e, 0xa7, 0xb4, 0x45, 0x45, 0xa3, 0x4c, 0xa8, 0x96, 0xec, 0xf3, 0x11, 0xfe, 0xea, 0x47, 0xe0, 0x68, 0x6d, 0x91, 0x1f, 0xad, 0xaa, 0x03, 0x11, 0x89, 0x97, 0x15, 0x3c, 0x65, 0x36, 0x1f, 0xea, 0x15, 0xde, 0x9b, 0xb8, 0x91, 0xb8, 0x90, 0x98, 0x72, 0x04, 0x55, 0x08, 0xff, 0xad, 0x0c, 0xd9, 0xea, 0xb2, 0x1a, 0x97, 0x02, };
5682 static const ec_test_case ed25519_247_test_case = {
5683 	.name = "EDDSA25519-SHA512/wei25519 247",
5684 	.ec_str_p = &wei25519_str_params,
5685 	.priv_key = ed25519_247_test_vectors_priv_key,
5686 	.priv_key_len = sizeof(ed25519_247_test_vectors_priv_key),
5687 	.nn_random = NULL,
5688 	.hash_type = SHA512,
5689 	.msg = (const char *)ed25519_247_test_vectors_message,
5690 	.msglen = sizeof(ed25519_247_test_vectors_message),
5691 	.sig_type = EDDSA25519,
5692 	.exp_sig = ed25519_247_test_vectors_expected_sig,
5693 	.exp_siglen = sizeof(ed25519_247_test_vectors_expected_sig),
5694 	.adata = NULL,
5695 	.adata_len = 0
5696 };
5697 
5698 /************************************************/
5699 static const u8 ed25519_248_test_vectors_priv_key[] = {
5700 	0xba, 0xd7, 0x3c, 0x9f, 0xda, 0x4c, 0xeb, 0x9d, 0xa6, 0xc7, 0x01, 0xc2, 0xa6, 0xe2, 0xef, 0xc0, 0x46, 0x7a, 0xfa, 0x0a, 0x74, 0xf8, 0x75, 0x0c, 0x52, 0xcf, 0x1f, 0xd4, 0xc8, 0xe7, 0x48, 0x9a, };
5701 static const u8 ed25519_248_test_vectors_message[] = {
5702 	0x74, 0xb9, 0x66, 0xcb, 0x78, 0x07, 0x71, 0xae, 0xe6, 0x3d, 0x73, 0x4d, 0xf3, 0x75, 0x67, 0x02, 0xd1, 0xd5, 0xfd, 0xed, 0xdf, 0x32, 0x13, 0x6c, 0x63, 0x58, 0xb8, 0x36, 0x31, 0x8a, 0x4f, 0x98, 0x4f, 0xe7, 0x1e, 0x77, 0x16, 0xad, 0xdd, 0xbd, 0x64, 0x9e, 0xba, 0x44, 0xcd, 0x42, 0x82, 0xe0, 0x05, 0x5d, 0x8c, 0x1e, 0xd2, 0xd3, 0x51, 0x23, 0xd6, 0x6e, 0x5a, 0x98, 0xf1, 0xc0, 0x83, 0x8d, 0xed, 0x56, 0x3b, 0x9a, 0x20, 0xeb, 0x80, 0x07, 0x53, 0x8f, 0xc7, 0xb0, 0x71, 0x3e, 0x7e, 0x48, 0x5e, 0x3c, 0x28, 0xf6, 0xeb, 0xc4, 0x21, 0xa2, 0x9d, 0xce, 0x25, 0x24, 0xdb, 0x7f, 0x29, 0x20, 0x57, 0x61, 0x03, 0x6a, 0xda, 0x62, 0xe5, 0xb0, 0xb7, 0xd5, 0xb7, 0xf2, 0x94, 0xff, 0x17, 0xf3, 0x38, 0x23, 0x2f, 0xa5, 0xfd, 0x42, 0xb6, 0xf7, 0x25, 0x33, 0x04, 0x09, 0x2d, 0x84, 0x8f, 0x50, 0x73, 0x52, 0x48, 0x59, 0x5d, 0xa0, 0xf7, 0xef, 0x28, 0xe5, 0x68, 0xe9, 0x91, 0x6b, 0xfc, 0x56, 0xd7, 0xed, 0x0d, 0x81, 0x1b, 0x59, 0xd5, 0xd8, 0x91, 0xae, 0x43, 0xe1, 0xb1, 0x98, 0x07, 0x13, 0x06, 0xbf, 0x52, 0x5c, 0x67, 0x8c, 0x63, 0x43, 0x99, 0x80, 0x05, 0xfb, 0xb7, 0x86, 0x9d, 0x1c, 0x40, 0xf8, 0xca, 0xc8, 0x07, 0xfe, 0x2e, 0xf0, 0x3f, 0x3d, 0x5b, 0x93, 0x3f, 0x58, 0x97, 0x8e, 0xf2, 0x90, 0x6f, 0xcc, 0xf7, 0x44, 0x4a, 0x29, 0x36, 0xe6, 0x3d, 0x92, 0x8c, 0x69, 0x09, 0x26, 0xc9, 0xc9, 0x94, 0xed, 0x3d, 0x66, 0x62, 0x63, 0xe9, 0x56, 0xfd, 0xfe, 0xa2, 0x77, 0x64, 0xbc, 0x5f, 0x74, 0x12, 0x5b, 0xc4, 0x6b, 0xc1, 0x02, 0xdd, 0x3e, 0x5f, 0xf9, 0x3b, 0x5e, 0x12, 0x3e, 0x4b, 0x38, 0xbd, 0xef, 0x69, 0x7e, 0x15, };
5703 static const u8 ed25519_248_test_vectors_expected_sig[] = {
5704 	0x19, 0x7d, 0x6b, 0x6c, 0xc8, 0x8a, 0x98, 0xc0, 0x6d, 0xfc, 0xa0, 0xc0, 0x12, 0x25, 0xed, 0xfe, 0x38, 0xa0, 0xb2, 0x28, 0x9f, 0x29, 0xf8, 0xa4, 0x4e, 0xc0, 0x81, 0x6a, 0x95, 0x2d, 0x58, 0x5e, 0x2d, 0x59, 0xb5, 0xb0, 0x8d, 0xe1, 0x00, 0xc0, 0x60, 0x62, 0x96, 0xcc, 0xf5, 0xe9, 0x2a, 0x99, 0xe0, 0x93, 0x62, 0x31, 0x44, 0xb8, 0xb2, 0x2d, 0xb8, 0x7d, 0x92, 0x92, 0x25, 0x54, 0x60, 0x05, };
5705 static const ec_test_case ed25519_248_test_case = {
5706 	.name = "EDDSA25519-SHA512/wei25519 248",
5707 	.ec_str_p = &wei25519_str_params,
5708 	.priv_key = ed25519_248_test_vectors_priv_key,
5709 	.priv_key_len = sizeof(ed25519_248_test_vectors_priv_key),
5710 	.nn_random = NULL,
5711 	.hash_type = SHA512,
5712 	.msg = (const char *)ed25519_248_test_vectors_message,
5713 	.msglen = sizeof(ed25519_248_test_vectors_message),
5714 	.sig_type = EDDSA25519,
5715 	.exp_sig = ed25519_248_test_vectors_expected_sig,
5716 	.exp_siglen = sizeof(ed25519_248_test_vectors_expected_sig),
5717 	.adata = NULL,
5718 	.adata_len = 0
5719 };
5720 
5721 /************************************************/
5722 static const u8 ed25519_249_test_vectors_priv_key[] = {
5723 	0x70, 0x73, 0x27, 0xa4, 0x31, 0xdb, 0xa7, 0x76, 0x39, 0xb3, 0x96, 0x6b, 0x2b, 0xc0, 0x95, 0xf8, 0xee, 0xdf, 0x57, 0xf7, 0xa2, 0x00, 0xe3, 0xb0, 0x07, 0x7c, 0xe4, 0x20, 0x38, 0x9c, 0x92, 0xfe, };
5724 static const u8 ed25519_249_test_vectors_message[] = {
5725 	0x32, 0xef, 0x31, 0xb6, 0x4e, 0xee, 0x70, 0x0f, 0xca, 0x2a, 0xb2, 0x1a, 0x26, 0x7f, 0x8d, 0x9d, 0x3b, 0xdc, 0x68, 0x9c, 0x75, 0x38, 0xfe, 0x95, 0x9b, 0xf7, 0x13, 0xfa, 0x99, 0x5d, 0xb2, 0xc0, 0xad, 0x36, 0xdd, 0xe4, 0x30, 0xa8, 0x41, 0x7d, 0x43, 0x7b, 0x72, 0xc7, 0x4e, 0x26, 0xdb, 0xe3, 0x1d, 0x93, 0x70, 0x1d, 0x46, 0x17, 0xfe, 0x51, 0x82, 0x5c, 0xff, 0x7a, 0x54, 0x4f, 0xc9, 0xf4, 0x4e, 0x43, 0x45, 0xe1, 0x4b, 0x4b, 0x11, 0xe1, 0x5f, 0x26, 0xff, 0xc2, 0xaf, 0x80, 0x35, 0xf3, 0xf9, 0x70, 0xe4, 0xdd, 0xa4, 0x4c, 0x0e, 0xbc, 0x03, 0x63, 0xc2, 0xb5, 0x6f, 0xde, 0x21, 0x86, 0x63, 0xbf, 0x78, 0x83, 0x90, 0x92, 0x53, 0x8f, 0xc2, 0xf3, 0x91, 0x53, 0xd4, 0xeb, 0x29, 0xda, 0x0c, 0x1a, 0x08, 0xaa, 0x96, 0x66, 0x01, 0xcc, 0x68, 0xca, 0x96, 0xe9, 0x93, 0xb0, 0x1b, 0x17, 0x3a, 0x26, 0x1b, 0x2e, 0xf3, 0x27, 0x65, 0x03, 0x82, 0xf5, 0x68, 0xfe, 0x94, 0x48, 0x55, 0xb0, 0xf4, 0xfd, 0x9d, 0x15, 0xe7, 0x52, 0xac, 0x74, 0xdc, 0xfd, 0x37, 0xb3, 0x78, 0x6f, 0xff, 0xce, 0xf2, 0x33, 0x39, 0xc2, 0x1e, 0x92, 0x70, 0xdc, 0xe8, 0x89, 0x1d, 0xd5, 0xee, 0xeb, 0xa9, 0x60, 0x8f, 0xdc, 0x7b, 0x6f, 0xbc, 0xc9, 0x9f, 0xa1, 0xb5, 0x90, 0x3d, 0xaa, 0x09, 0x68, 0xe1, 0xb6, 0x91, 0xd1, 0x9d, 0x06, 0xf2, 0x15, 0xde, 0xd0, 0x47, 0xef, 0x9d, 0x76, 0x61, 0x0f, 0x5d, 0xe2, 0x20, 0xf5, 0x04, 0x1b, 0x31, 0x3f, 0xaf, 0x9e, 0x96, 0xc9, 0xfd, 0x7d, 0xb5, 0x4b, 0x52, 0x25, 0x72, 0x6a, 0xf4, 0x35, 0xf9, 0xcb, 0xd9, 0xfd, 0x87, 0xab, 0x40, 0xce, 0x8f, 0x2c, 0x69, 0x40, 0xb5, 0x5f, 0x0f, 0xaa, 0xe8, 0x78, 0x50, 0xca, };
5726 static const u8 ed25519_249_test_vectors_expected_sig[] = {
5727 	0xfb, 0x99, 0x02, 0x9f, 0xec, 0xa3, 0x87, 0xa5, 0xd7, 0x65, 0x96, 0x1e, 0x36, 0x1d, 0x71, 0x72, 0xb9, 0x8b, 0x7e, 0x0f, 0x11, 0x29, 0x0b, 0xb1, 0xe5, 0xb5, 0x7b, 0x51, 0xbc, 0x21, 0x23, 0xd0, 0xbc, 0xe2, 0x90, 0x20, 0x39, 0x2a, 0x4f, 0xec, 0x9a, 0xe6, 0xa7, 0x2c, 0x4c, 0x38, 0x6c, 0xea, 0x18, 0x57, 0xcb, 0x8f, 0x9c, 0x50, 0xaa, 0x9a, 0x76, 0xd7, 0xf1, 0x68, 0x7f, 0xcf, 0x29, 0x00, };
5728 static const ec_test_case ed25519_249_test_case = {
5729 	.name = "EDDSA25519-SHA512/wei25519 249",
5730 	.ec_str_p = &wei25519_str_params,
5731 	.priv_key = ed25519_249_test_vectors_priv_key,
5732 	.priv_key_len = sizeof(ed25519_249_test_vectors_priv_key),
5733 	.nn_random = NULL,
5734 	.hash_type = SHA512,
5735 	.msg = (const char *)ed25519_249_test_vectors_message,
5736 	.msglen = sizeof(ed25519_249_test_vectors_message),
5737 	.sig_type = EDDSA25519,
5738 	.exp_sig = ed25519_249_test_vectors_expected_sig,
5739 	.exp_siglen = sizeof(ed25519_249_test_vectors_expected_sig),
5740 	.adata = NULL,
5741 	.adata_len = 0
5742 };
5743 
5744 /************************************************/
5745 static const u8 ed25519_250_test_vectors_priv_key[] = {
5746 	0x6a, 0xa5, 0xc9, 0xf0, 0x08, 0xf9, 0x90, 0x47, 0x3b, 0xa4, 0xa6, 0x28, 0x6a, 0x41, 0x66, 0x14, 0x02, 0x66, 0x61, 0xf1, 0x1e, 0x1a, 0x24, 0xef, 0xa8, 0x1a, 0xc3, 0x58, 0x52, 0xd1, 0xd0, 0x70, };
5747 static const u8 ed25519_250_test_vectors_message[] = {
5748 	0xb5, 0x16, 0x5d, 0x39, 0x63, 0xf6, 0xe6, 0xf9, 0xea, 0x56, 0x57, 0xe9, 0xf0, 0x7f, 0xf3, 0xa3, 0x21, 0xeb, 0x33, 0x8f, 0x9a, 0x8c, 0x3d, 0x3c, 0x42, 0x30, 0x6b, 0x2b, 0x27, 0x89, 0x78, 0xb3, 0x1c, 0x62, 0x3a, 0x63, 0x1b, 0xe3, 0xb0, 0x4c, 0x41, 0xed, 0xfd, 0xed, 0xdf, 0x53, 0x8e, 0x1b, 0x76, 0x5b, 0xc8, 0x78, 0x54, 0x01, 0xc1, 0xaf, 0x29, 0xd0, 0x46, 0x7a, 0x64, 0x41, 0x1c, 0x49, 0x73, 0x95, 0xd7, 0x55, 0xdc, 0xa0, 0x3a, 0xe3, 0x27, 0x2f, 0x4b, 0xc1, 0xfb, 0x19, 0x18, 0xdc, 0xc1, 0xed, 0x6f, 0x04, 0xd6, 0x49, 0x84, 0x04, 0xa8, 0xce, 0x14, 0x09, 0xd4, 0x47, 0xf5, 0x70, 0xa4, 0x35, 0x95, 0x22, 0xcc, 0x54, 0x62, 0x92, 0x02, 0xeb, 0xe5, 0x07, 0xab, 0x69, 0x38, 0x43, 0x14, 0x1b, 0xd5, 0xea, 0x05, 0x73, 0xb2, 0x0f, 0x32, 0x1a, 0x48, 0x3f, 0xf3, 0x83, 0xa4, 0x68, 0x97, 0xf5, 0x92, 0x6f, 0xe0, 0xb8, 0xaf, 0xc2, 0x55, 0x72, 0x70, 0x7b, 0x63, 0xee, 0xed, 0x28, 0x35, 0x32, 0x92, 0x8a, 0x41, 0x44, 0x19, 0x64, 0x97, 0x94, 0x2c, 0x57, 0x2a, 0xc5, 0x47, 0x60, 0x51, 0x39, 0x25, 0x6b, 0x0a, 0xa0, 0xea, 0xf0, 0x4d, 0xb1, 0xa2, 0x56, 0x01, 0x2e, 0xd4, 0x53, 0xb1, 0x73, 0xee, 0x19, 0xad, 0x6e, 0x9b, 0x1a, 0xf3, 0xf4, 0x5f, 0xf3, 0x04, 0x4a, 0x64, 0x1f, 0x8c, 0x8e, 0xb0, 0xac, 0x7b, 0xb4, 0x5a, 0xbb, 0xde, 0xd4, 0x72, 0x86, 0xb2, 0xa0, 0x69, 0xd3, 0x90, 0x86, 0x94, 0xee, 0x06, 0xf2, 0xfb, 0xd0, 0xef, 0x60, 0x5a, 0x79, 0x11, 0x02, 0x6e, 0xa9, 0xea, 0x3c, 0x49, 0x13, 0xf3, 0x8c, 0x04, 0xd8, 0xb6, 0x95, 0x65, 0xa7, 0x02, 0x78, 0x67, 0xab, 0x30, 0x92, 0xd0, 0x5f, 0x4c, 0xfb, 0x18, 0xfc, 0x7c, };
5749 static const u8 ed25519_250_test_vectors_expected_sig[] = {
5750 	0x97, 0x56, 0x30, 0x3b, 0x90, 0x65, 0x5e, 0x93, 0x52, 0x51, 0x03, 0x2a, 0xb1, 0x9c, 0xfc, 0x95, 0xca, 0x1c, 0x2a, 0x2c, 0x3e, 0xa2, 0x8b, 0x03, 0x3b, 0xd4, 0x70, 0x66, 0xcb, 0xd4, 0xc7, 0xd8, 0x98, 0x2a, 0x8b, 0x98, 0x86, 0xf1, 0xb9, 0xcd, 0x02, 0xe8, 0x8a, 0x65, 0x56, 0x4d, 0xa8, 0xdc, 0xc3, 0x4f, 0x30, 0x8b, 0xa9, 0xf1, 0x01, 0x44, 0xba, 0x46, 0x9c, 0x2e, 0xfa, 0x49, 0xe0, 0x04, };
5751 static const ec_test_case ed25519_250_test_case = {
5752 	.name = "EDDSA25519-SHA512/wei25519 250",
5753 	.ec_str_p = &wei25519_str_params,
5754 	.priv_key = ed25519_250_test_vectors_priv_key,
5755 	.priv_key_len = sizeof(ed25519_250_test_vectors_priv_key),
5756 	.nn_random = NULL,
5757 	.hash_type = SHA512,
5758 	.msg = (const char *)ed25519_250_test_vectors_message,
5759 	.msglen = sizeof(ed25519_250_test_vectors_message),
5760 	.sig_type = EDDSA25519,
5761 	.exp_sig = ed25519_250_test_vectors_expected_sig,
5762 	.exp_siglen = sizeof(ed25519_250_test_vectors_expected_sig),
5763 	.adata = NULL,
5764 	.adata_len = 0
5765 };
5766 
5767 /************************************************/
5768 static const u8 ed25519_251_test_vectors_priv_key[] = {
5769 	0x8e, 0xfb, 0x8b, 0x79, 0x74, 0x2b, 0xe2, 0x1e, 0x6d, 0x31, 0xde, 0x67, 0x8b, 0xc8, 0x14, 0x50, 0xba, 0x86, 0x21, 0x08, 0x2c, 0xd6, 0xf0, 0x00, 0x3e, 0x22, 0x86, 0x1e, 0x22, 0x91, 0xc4, 0x81, };
5770 static const u8 ed25519_251_test_vectors_message[] = {
5771 	0x6b, 0x75, 0x03, 0x25, 0xd3, 0xa0, 0xf0, 0x8a, 0x14, 0x77, 0x00, 0xb5, 0x1a, 0x9b, 0x37, 0x25, 0x57, 0x10, 0x94, 0x81, 0x8e, 0xd6, 0x9d, 0x1f, 0x76, 0x10, 0x13, 0xeb, 0x86, 0xf3, 0x23, 0xf7, 0x3c, 0x49, 0xf5, 0xe4, 0x39, 0x87, 0x7c, 0x27, 0x83, 0xb3, 0x36, 0xd1, 0xf1, 0xa6, 0x74, 0xef, 0x3e, 0x43, 0x1f, 0xc1, 0xae, 0x01, 0x80, 0x08, 0x2d, 0xf5, 0xfc, 0xa6, 0x9f, 0x84, 0x81, 0x39, 0xfe, 0x6a, 0xb6, 0x73, 0x9a, 0x05, 0x92, 0xeb, 0xd6, 0xd4, 0x70, 0x5c, 0x7f, 0x01, 0x36, 0xb2, 0x21, 0x89, 0xa1, 0x1d, 0x60, 0xd4, 0xd3, 0xc9, 0xbc, 0x80, 0xfe, 0x7d, 0x7c, 0x00, 0x95, 0x2d, 0x57, 0x42, 0xf9, 0xc0, 0xc2, 0x12, 0x1f, 0xe7, 0x92, 0xdf, 0x13, 0x3f, 0x22, 0x1d, 0xb9, 0x91, 0xfc, 0x96, 0x0e, 0xe6, 0x4b, 0x9d, 0x32, 0xe0, 0x17, 0x8e, 0x54, 0x2b, 0xce, 0x8e, 0xfa, 0x8d, 0x03, 0xac, 0x80, 0x26, 0xcd, 0x77, 0xba, 0x8b, 0xf0, 0xb2, 0x42, 0x15, 0xb9, 0xfa, 0xed, 0x2e, 0xae, 0xc9, 0x20, 0xe9, 0x25, 0xd5, 0xec, 0x46, 0xff, 0xf6, 0xbd, 0xe7, 0x25, 0xe9, 0x1c, 0x82, 0x80, 0xe4, 0xad, 0xa2, 0x32, 0xa5, 0x43, 0x3a, 0xe9, 0x68, 0x0e, 0xbb, 0x53, 0xeb, 0x55, 0x55, 0x31, 0x47, 0xc9, 0x33, 0x70, 0x57, 0x48, 0x54, 0x89, 0x61, 0x54, 0x51, 0x42, 0x99, 0xc0, 0x93, 0x21, 0x9a, 0x11, 0x1d, 0xca, 0x4e, 0x63, 0x7a, 0xd5, 0x00, 0x13, 0x38, 0xc6, 0xd4, 0xd5, 0xee, 0x90, 0x98, 0xc6, 0x58, 0x32, 0xf7, 0xaf, 0x83, 0x5b, 0xcb, 0x62, 0x21, 0x28, 0x42, 0x30, 0x36, 0xc7, 0x9a, 0x57, 0x37, 0x73, 0x8a, 0x75, 0x39, 0xf8, 0xd4, 0xa6, 0xb8, 0xb2, 0x21, 0xb5, 0x6d, 0x14, 0x01, 0xae, 0xb7, 0x4d, 0x45, 0x71, 0xbc, 0x00, 0x9d, };
5772 static const u8 ed25519_251_test_vectors_expected_sig[] = {
5773 	0x92, 0x30, 0x05, 0xcb, 0x48, 0x48, 0x40, 0x2a, 0xa8, 0xf9, 0xd5, 0xda, 0x74, 0x03, 0x0b, 0x00, 0x94, 0x44, 0x92, 0x4c, 0x21, 0x4a, 0xd6, 0x00, 0xdd, 0xba, 0xb4, 0xc1, 0x53, 0xa6, 0xff, 0x02, 0x2b, 0x53, 0xcf, 0x63, 0x64, 0xcd, 0x7e, 0xe9, 0x9b, 0xef, 0x34, 0xfe, 0x14, 0x4d, 0xa9, 0x64, 0xed, 0xfc, 0x38, 0xa0, 0xba, 0x63, 0x33, 0x12, 0x65, 0x0e, 0xbf, 0x0e, 0x55, 0xa0, 0x60, 0x09, };
5774 static const ec_test_case ed25519_251_test_case = {
5775 	.name = "EDDSA25519-SHA512/wei25519 251",
5776 	.ec_str_p = &wei25519_str_params,
5777 	.priv_key = ed25519_251_test_vectors_priv_key,
5778 	.priv_key_len = sizeof(ed25519_251_test_vectors_priv_key),
5779 	.nn_random = NULL,
5780 	.hash_type = SHA512,
5781 	.msg = (const char *)ed25519_251_test_vectors_message,
5782 	.msglen = sizeof(ed25519_251_test_vectors_message),
5783 	.sig_type = EDDSA25519,
5784 	.exp_sig = ed25519_251_test_vectors_expected_sig,
5785 	.exp_siglen = sizeof(ed25519_251_test_vectors_expected_sig),
5786 	.adata = NULL,
5787 	.adata_len = 0
5788 };
5789 
5790 /************************************************/
5791 static const u8 ed25519_252_test_vectors_priv_key[] = {
5792 	0xed, 0x04, 0x6d, 0x68, 0x8b, 0x2b, 0x0a, 0x1b, 0xc3, 0xda, 0xf2, 0x11, 0x9d, 0xd3, 0x21, 0xa6, 0x07, 0xb1, 0x6d, 0x2a, 0x2d, 0x1d, 0x96, 0x3a, 0xdd, 0x12, 0x09, 0xc6, 0x65, 0xb5, 0xcc, 0xba, };
5793 static const u8 ed25519_252_test_vectors_message[] = {
5794 	0xb9, 0xcc, 0x90, 0xfd, 0x8d, 0xe2, 0xa1, 0x41, 0xf9, 0x51, 0x16, 0xdb, 0x3b, 0x04, 0xbe, 0x83, 0xe9, 0x85, 0x22, 0x59, 0x7e, 0xc2, 0x17, 0x49, 0x64, 0x24, 0x51, 0x80, 0xb9, 0xa4, 0x73, 0x76, 0x7d, 0x6d, 0x47, 0x0a, 0x21, 0x7d, 0xb5, 0xff, 0x5a, 0x1a, 0xb7, 0x77, 0xe1, 0xe2, 0x8a, 0x0b, 0x16, 0x97, 0x5e, 0x2b, 0xac, 0xb8, 0x73, 0x02, 0x04, 0x44, 0xb4, 0x7e, 0xd8, 0x32, 0x64, 0x21, 0xb9, 0x0e, 0xbb, 0x50, 0x36, 0x88, 0xf0, 0x90, 0xc1, 0x1b, 0x3b, 0x13, 0x61, 0x7c, 0x5c, 0x50, 0x52, 0xc2, 0x97, 0xa4, 0x1e, 0x28, 0x93, 0x77, 0x5e, 0x34, 0xd5, 0x9a, 0xda, 0x49, 0xd9, 0x94, 0xc0, 0xe4, 0xa9, 0xf5, 0x22, 0x0e, 0x9f, 0x03, 0x15, 0xa6, 0x77, 0x05, 0xa3, 0xec, 0x08, 0xaf, 0x0d, 0xc7, 0x24, 0xb5, 0xcf, 0x67, 0xff, 0x34, 0xfa, 0xda, 0x8b, 0xa7, 0x10, 0x9e, 0xd2, 0xb5, 0xa8, 0x90, 0x7b, 0xb4, 0x03, 0xfb, 0x1a, 0x83, 0x8b, 0x4b, 0x05, 0x9f, 0x18, 0xc7, 0x92, 0xd7, 0xbf, 0xec, 0x05, 0xde, 0xe0, 0xc9, 0xcb, 0xbf, 0x17, 0x53, 0x40, 0x9d, 0x7d, 0xb3, 0xac, 0xea, 0xf4, 0x7b, 0x4c, 0x61, 0x39, 0x84, 0x97, 0xb0, 0xec, 0xa6, 0xc1, 0xf8, 0xac, 0x08, 0xa7, 0xea, 0x1e, 0xb9, 0xc4, 0x0b, 0xc4, 0xe9, 0x2e, 0x88, 0x82, 0x12, 0xf7, 0xd9, 0xee, 0x14, 0xfd, 0xb7, 0x31, 0x58, 0x16, 0x09, 0x44, 0xff, 0x9b, 0xcd, 0xfe, 0xf1, 0xa7, 0x46, 0x9c, 0xc7, 0x0f, 0x94, 0x74, 0xe5, 0xf2, 0x4d, 0xff, 0xfe, 0xa5, 0x85, 0xf0, 0x9e, 0xaa, 0xab, 0x4b, 0xe2, 0xaf, 0xeb, 0xbe, 0x8e, 0x6c, 0xf8, 0x6d, 0x35, 0x68, 0x0d, 0xc5, 0xd1, 0xb9, 0x29, 0x13, 0xe8, 0x48, 0x25, 0x6e, 0xc7, 0x36, 0x31, 0x6f, 0xd0, 0xa2, 0x14, 0x20, 0x63, 0xb0, };
5795 static const u8 ed25519_252_test_vectors_expected_sig[] = {
5796 	0x72, 0x1b, 0xfd, 0x47, 0x76, 0xcf, 0xba, 0x13, 0x33, 0x0f, 0xd3, 0x72, 0x69, 0xe9, 0x79, 0xc1, 0xd7, 0xb6, 0xce, 0x54, 0xa5, 0x1b, 0x82, 0xf4, 0x56, 0xe1, 0x37, 0x37, 0x8e, 0x58, 0x2f, 0x19, 0x2a, 0x12, 0x08, 0x9d, 0xa5, 0xab, 0xa7, 0x6a, 0x7b, 0x16, 0x18, 0x13, 0xdc, 0xe5, 0x6b, 0x72, 0x89, 0x2a, 0x35, 0x33, 0x0c, 0x94, 0xf7, 0xff, 0x21, 0xd0, 0x9c, 0xf0, 0x9e, 0x55, 0x35, 0x04, };
5797 static const ec_test_case ed25519_252_test_case = {
5798 	.name = "EDDSA25519-SHA512/wei25519 252",
5799 	.ec_str_p = &wei25519_str_params,
5800 	.priv_key = ed25519_252_test_vectors_priv_key,
5801 	.priv_key_len = sizeof(ed25519_252_test_vectors_priv_key),
5802 	.nn_random = NULL,
5803 	.hash_type = SHA512,
5804 	.msg = (const char *)ed25519_252_test_vectors_message,
5805 	.msglen = sizeof(ed25519_252_test_vectors_message),
5806 	.sig_type = EDDSA25519,
5807 	.exp_sig = ed25519_252_test_vectors_expected_sig,
5808 	.exp_siglen = sizeof(ed25519_252_test_vectors_expected_sig),
5809 	.adata = NULL,
5810 	.adata_len = 0
5811 };
5812 
5813 /************************************************/
5814 static const u8 ed25519_253_test_vectors_priv_key[] = {
5815 	0x76, 0xac, 0x8e, 0x57, 0x0a, 0x39, 0xb3, 0xa0, 0x23, 0x2c, 0x45, 0x49, 0x75, 0x37, 0xfb, 0x21, 0x55, 0xac, 0xec, 0x36, 0x17, 0x86, 0x5e, 0xd1, 0xdf, 0x21, 0x0f, 0x00, 0xb4, 0x9d, 0x1b, 0x8d, };
5816 static const u8 ed25519_253_test_vectors_message[] = {
5817 	0x53, 0xce, 0xd9, 0xdb, 0x2b, 0x47, 0x9e, 0x59, 0xd3, 0xed, 0x64, 0x3f, 0x7c, 0xc3, 0x78, 0x4c, 0x24, 0xb8, 0xbd, 0x4c, 0x63, 0x20, 0x6c, 0x72, 0xe2, 0x3f, 0xa8, 0x50, 0x02, 0x88, 0x99, 0xa4, 0x1c, 0xe1, 0xa8, 0xbd, 0xc0, 0x03, 0xf1, 0x2b, 0x7c, 0x29, 0x97, 0x2c, 0x9a, 0x08, 0xbc, 0xd2, 0x31, 0xfe, 0x0e, 0x1a, 0x0f, 0xef, 0x0b, 0xaf, 0xbf, 0xa4, 0xe0, 0xe0, 0x27, 0xd7, 0x20, 0x04, 0x07, 0x5b, 0xa3, 0x7d, 0x49, 0x0e, 0xb9, 0x96, 0x4e, 0x78, 0x3b, 0xb9, 0x8f, 0x9e, 0x50, 0x3e, 0x9c, 0x1f, 0xd3, 0xd2, 0x3f, 0xb0, 0x01, 0x7c, 0xc7, 0xc7, 0xa9, 0xf8, 0x6d, 0x17, 0x1f, 0x04, 0x1e, 0x23, 0x55, 0xd8, 0xc5, 0xe6, 0x22, 0x9d, 0x34, 0xc7, 0xee, 0xac, 0xb6, 0x35, 0x8c, 0xf3, 0x06, 0x0d, 0x5d, 0x26, 0x5b, 0xae, 0x20, 0x04, 0xa5, 0x58, 0x87, 0x86, 0x59, 0xa3, 0x0d, 0xfe, 0xd5, 0xf2, 0xec, 0x78, 0x8b, 0x4e, 0x14, 0x39, 0x7b, 0x5d, 0x00, 0xc2, 0x9d, 0xb5, 0xd4, 0xeb, 0xf1, 0x66, 0x39, 0xa8, 0xdf, 0x29, 0x2a, 0x3d, 0x24, 0xf6, 0x98, 0x3c, 0xbc, 0xa7, 0x60, 0xd9, 0x03, 0xe9, 0x76, 0xf5, 0xb6, 0x98, 0x64, 0x2b, 0xa1, 0xfe, 0xd4, 0x9e, 0x79, 0xc3, 0x8f, 0x4b, 0xb3, 0x94, 0x6e, 0xfc, 0xcc, 0x9d, 0x6a, 0xef, 0xad, 0x33, 0x6d, 0x55, 0x8f, 0x78, 0xe4, 0xf2, 0x05, 0x42, 0x2e, 0x10, 0x38, 0x4a, 0x4e, 0x53, 0x1e, 0x75, 0x80, 0x7e, 0xfb, 0x38, 0x9d, 0x2a, 0xf4, 0xca, 0xb4, 0x38, 0x25, 0xfb, 0x87, 0xf1, 0x96, 0xa9, 0x08, 0x07, 0x69, 0xfe, 0x75, 0x85, 0x78, 0x29, 0x70, 0xa6, 0x91, 0x8a, 0xff, 0xe1, 0x0d, 0x20, 0xd6, 0x29, 0xb7, 0x05, 0x84, 0x55, 0x97, 0x41, 0x8d, 0x69, 0x9d, 0xe3, 0xf1, 0xde, 0x85, 0x4f, 0x94, 0xbd, };
5818 static const u8 ed25519_253_test_vectors_expected_sig[] = {
5819 	0xcf, 0x03, 0xf5, 0x25, 0x91, 0x3c, 0x44, 0x30, 0x3b, 0x2f, 0x80, 0x07, 0x93, 0x93, 0xc2, 0x1c, 0x11, 0x58, 0x14, 0x6e, 0xcf, 0x99, 0x63, 0x6f, 0x5d, 0x97, 0xad, 0xfd, 0xd9, 0xf3, 0x58, 0x39, 0x80, 0x4c, 0x23, 0x80, 0x4c, 0xbf, 0x1e, 0x55, 0x3c, 0xfd, 0x4b, 0x73, 0xf6, 0x89, 0xa9, 0x14, 0x3a, 0xec, 0x29, 0x8f, 0x82, 0x76, 0xe1, 0xe4, 0xee, 0x08, 0x91, 0xf1, 0xba, 0x75, 0xde, 0x04, };
5820 static const ec_test_case ed25519_253_test_case = {
5821 	.name = "EDDSA25519-SHA512/wei25519 253",
5822 	.ec_str_p = &wei25519_str_params,
5823 	.priv_key = ed25519_253_test_vectors_priv_key,
5824 	.priv_key_len = sizeof(ed25519_253_test_vectors_priv_key),
5825 	.nn_random = NULL,
5826 	.hash_type = SHA512,
5827 	.msg = (const char *)ed25519_253_test_vectors_message,
5828 	.msglen = sizeof(ed25519_253_test_vectors_message),
5829 	.sig_type = EDDSA25519,
5830 	.exp_sig = ed25519_253_test_vectors_expected_sig,
5831 	.exp_siglen = sizeof(ed25519_253_test_vectors_expected_sig),
5832 	.adata = NULL,
5833 	.adata_len = 0
5834 };
5835 
5836 /************************************************/
5837 static const u8 ed25519_254_test_vectors_priv_key[] = {
5838 	0xf6, 0x4a, 0x66, 0xba, 0x0f, 0x08, 0x19, 0xf3, 0x00, 0x14, 0x16, 0xc2, 0x20, 0xbf, 0x52, 0xd8, 0x60, 0x13, 0x0a, 0x19, 0x76, 0x4a, 0xa8, 0xab, 0x38, 0xd1, 0x5b, 0x2a, 0xa7, 0x5a, 0xc0, 0x22, };
5839 static const u8 ed25519_254_test_vectors_message[] = {
5840 	0x80, 0x72, 0x86, 0x2e, 0xd0, 0xab, 0x35, 0x92, 0x1d, 0xb5, 0xec, 0x2c, 0xba, 0x8e, 0x6a, 0xed, 0xb0, 0x44, 0x1f, 0xdf, 0x47, 0x49, 0x10, 0x06, 0xc0, 0x1e, 0x64, 0x56, 0xad, 0x70, 0xfa, 0xe3, 0xc4, 0x15, 0x2d, 0xcf, 0xbf, 0xdb, 0xb8, 0xf0, 0xfd, 0xde, 0xc5, 0xe9, 0x6b, 0x12, 0xbf, 0x67, 0x98, 0x9b, 0xa9, 0x67, 0x93, 0xf4, 0x86, 0x1a, 0x11, 0xb6, 0x39, 0x09, 0xce, 0x8d, 0x19, 0xb8, 0xca, 0x64, 0xa5, 0x44, 0xb3, 0x1c, 0xe0, 0x51, 0xfb, 0xc8, 0x8e, 0x06, 0x28, 0x06, 0xd9, 0x96, 0x5c, 0xbd, 0x29, 0x67, 0xb0, 0x16, 0x14, 0xe8, 0x6b, 0x53, 0x2f, 0xbf, 0x59, 0x84, 0x32, 0x18, 0xdc, 0x9c, 0x19, 0xc8, 0x03, 0x15, 0xf0, 0x44, 0x73, 0x17, 0x19, 0x37, 0x10, 0x92, 0xa3, 0xda, 0x38, 0x87, 0x8b, 0xc4, 0xcf, 0x77, 0xde, 0x97, 0x2e, 0x86, 0x04, 0x66, 0xb8, 0xfc, 0x45, 0xe4, 0x65, 0xdc, 0x3d, 0x0e, 0xbf, 0x94, 0xbd, 0xea, 0x60, 0xef, 0x0b, 0x98, 0x91, 0xce, 0xd4, 0x1b, 0x99, 0x7b, 0x11, 0xb3, 0x1e, 0xe4, 0x16, 0x7d, 0xb6, 0x0c, 0x9c, 0xfc, 0x8b, 0x85, 0xbe, 0xac, 0xfe, 0x22, 0x3c, 0xc1, 0x82, 0x92, 0x13, 0x77, 0x40, 0x85, 0xd7, 0xc0, 0x6d, 0x2b, 0x2e, 0x63, 0x2c, 0xc2, 0x1c, 0xd9, 0x66, 0x0d, 0xf4, 0x7c, 0x4f, 0xa9, 0x18, 0xbd, 0xd5, 0x96, 0xdd, 0xf6, 0x22, 0xdc, 0xb6, 0x52, 0x64, 0x2b, 0x67, 0x52, 0x7b, 0xa8, 0xed, 0x15, 0xa8, 0x19, 0xa8, 0xe2, 0x1f, 0x48, 0xd7, 0xee, 0x70, 0x24, 0x7f, 0x52, 0x00, 0xe3, 0x7c, 0x25, 0x9d, 0xff, 0xd1, 0x7e, 0xec, 0x8c, 0x23, 0x2f, 0x97, 0x0c, 0xb0, 0x31, 0x82, 0xfe, 0x39, 0x64, 0x13, 0x29, 0x93, 0xf6, 0xec, 0xb7, 0xc4, 0xdb, 0x18, 0xcc, 0xef, 0x39, 0x0c, 0x9e, 0xb3, 0x63, 0x9e, };
5841 static const u8 ed25519_254_test_vectors_expected_sig[] = {
5842 	0x4d, 0xe6, 0xf5, 0x25, 0x08, 0x22, 0xd7, 0xc9, 0xd5, 0xbb, 0x98, 0x58, 0x25, 0x00, 0xb5, 0xc0, 0x85, 0xf5, 0x41, 0xeb, 0xdc, 0x45, 0x0e, 0xd1, 0xac, 0xaf, 0x83, 0x68, 0x48, 0x27, 0xed, 0x1d, 0xc7, 0x71, 0x47, 0xaa, 0xe4, 0xb1, 0x9e, 0x14, 0xa7, 0xdc, 0x5b, 0xbe, 0x1f, 0x1e, 0x4f, 0x57, 0x71, 0xd8, 0xa6, 0xe4, 0xf2, 0x35, 0x17, 0x39, 0xaf, 0xb0, 0x8c, 0x80, 0x6d, 0x55, 0x87, 0x01, };
5843 static const ec_test_case ed25519_254_test_case = {
5844 	.name = "EDDSA25519-SHA512/wei25519 254",
5845 	.ec_str_p = &wei25519_str_params,
5846 	.priv_key = ed25519_254_test_vectors_priv_key,
5847 	.priv_key_len = sizeof(ed25519_254_test_vectors_priv_key),
5848 	.nn_random = NULL,
5849 	.hash_type = SHA512,
5850 	.msg = (const char *)ed25519_254_test_vectors_message,
5851 	.msglen = sizeof(ed25519_254_test_vectors_message),
5852 	.sig_type = EDDSA25519,
5853 	.exp_sig = ed25519_254_test_vectors_expected_sig,
5854 	.exp_siglen = sizeof(ed25519_254_test_vectors_expected_sig),
5855 	.adata = NULL,
5856 	.adata_len = 0
5857 };
5858 
5859 /************************************************/
5860 static const u8 ed25519_255_test_vectors_priv_key[] = {
5861 	0x84, 0x39, 0xb1, 0xd6, 0x0a, 0xa4, 0x84, 0x60, 0x13, 0x5e, 0xb1, 0x00, 0x2c, 0xc1, 0x12, 0x79, 0x29, 0x95, 0x07, 0x9a, 0x77, 0xe6, 0xe8, 0xab, 0x02, 0x0b, 0x9a, 0xba, 0xca, 0x89, 0x20, 0xb4, };
5862 static const u8 ed25519_255_test_vectors_message[] = {
5863 	0x54, 0x19, 0xf6, 0xd2, 0x4e, 0xb4, 0x66, 0x35, 0xd4, 0xa7, 0xf8, 0xea, 0xb8, 0x03, 0xcf, 0xd0, 0xd0, 0x4d, 0xe0, 0x92, 0xaf, 0xbd, 0x86, 0xf2, 0xa6, 0x96, 0x1a, 0x8d, 0x1e, 0xb8, 0xc0, 0xd1, 0x97, 0xba, 0x55, 0xee, 0x08, 0xc9, 0x91, 0x82, 0x2a, 0x5a, 0xa7, 0x02, 0xba, 0xe0, 0x33, 0x7a, 0xbd, 0x5c, 0xa7, 0xfa, 0xa1, 0x5e, 0x1f, 0x1a, 0xe3, 0x69, 0x94, 0x6e, 0x9b, 0x81, 0x21, 0x6c, 0x0f, 0x5f, 0xc2, 0x2b, 0xbd, 0x44, 0x33, 0xc3, 0xde, 0x93, 0xc5, 0xca, 0xa2, 0x74, 0x16, 0x83, 0xbb, 0xd0, 0xe1, 0xa7, 0x8d, 0xf2, 0x8d, 0xda, 0x19, 0x17, 0x41, 0x01, 0x87, 0x63, 0x34, 0xd4, 0x03, 0x39, 0x65, 0x9f, 0x02, 0x1a, 0xe7, 0x66, 0x16, 0x2c, 0x6c, 0xc5, 0x42, 0x1b, 0x79, 0xcf, 0x9d, 0x5c, 0x09, 0x0e, 0xd4, 0xaf, 0x07, 0xec, 0x84, 0x49, 0x30, 0x35, 0xbd, 0x0b, 0x24, 0x21, 0xb5, 0x33, 0x68, 0x42, 0x95, 0xbb, 0xe7, 0x6a, 0x70, 0xfe, 0xc5, 0x96, 0xef, 0x8c, 0x89, 0xc5, 0xc9, 0xdd, 0xa3, 0xc3, 0x3b, 0x77, 0x35, 0xd2, 0xd2, 0xf2, 0x0b, 0x28, 0xf1, 0xa5, 0x40, 0x2e, 0x72, 0xd0, 0x4b, 0xa2, 0x91, 0xdd, 0x59, 0xf1, 0x4a, 0xf0, 0x8a, 0xdf, 0x56, 0xee, 0xb0, 0x86, 0xd7, 0x69, 0xc6, 0xbe, 0xc3, 0x45, 0x18, 0x91, 0x37, 0x23, 0x45, 0xfd, 0x6b, 0xd0, 0x2d, 0xcf, 0x95, 0xe8, 0x03, 0xaf, 0x03, 0x53, 0x15, 0x0e, 0x18, 0x2e, 0x32, 0x3a, 0xaf, 0x68, 0x3e, 0x03, 0x6d, 0x9a, 0x13, 0x5d, 0x2e, 0x6f, 0x98, 0xcb, 0x4d, 0x32, 0x7e, 0x2c, 0xe7, 0xd5, 0x42, 0x47, 0xf3, 0x59, 0x2e, 0xd0, 0x67, 0xb4, 0xce, 0x76, 0x27, 0x17, 0x4f, 0x99, 0x6f, 0x28, 0x16, 0x5c, 0x9c, 0x11, 0xf0, 0x7e, 0x5e, 0xe9, 0xce, 0xe6, 0x38, 0x51, 0xc6, 0xb6, 0x8e, 0xa2, };
5864 static const u8 ed25519_255_test_vectors_expected_sig[] = {
5865 	0x62, 0xda, 0x81, 0xe1, 0x64, 0x40, 0x82, 0x1b, 0x59, 0x3b, 0x6e, 0xe6, 0x54, 0x0e, 0x15, 0xd1, 0xae, 0xa7, 0x5d, 0x23, 0xe0, 0xa1, 0xbb, 0xfe, 0xdc, 0x80, 0x8c, 0x95, 0x48, 0xf8, 0x7e, 0x8b, 0xbf, 0x36, 0x91, 0x5a, 0x39, 0xa7, 0x47, 0x16, 0xf6, 0x45, 0xcc, 0xa5, 0x71, 0x4d, 0x17, 0x0a, 0xf9, 0x07, 0x57, 0x6d, 0x4f, 0x37, 0x05, 0xe5, 0x43, 0xd2, 0xad, 0xdd, 0xc5, 0xff, 0x23, 0x03, };
5866 static const ec_test_case ed25519_255_test_case = {
5867 	.name = "EDDSA25519-SHA512/wei25519 255",
5868 	.ec_str_p = &wei25519_str_params,
5869 	.priv_key = ed25519_255_test_vectors_priv_key,
5870 	.priv_key_len = sizeof(ed25519_255_test_vectors_priv_key),
5871 	.nn_random = NULL,
5872 	.hash_type = SHA512,
5873 	.msg = (const char *)ed25519_255_test_vectors_message,
5874 	.msglen = sizeof(ed25519_255_test_vectors_message),
5875 	.sig_type = EDDSA25519,
5876 	.exp_sig = ed25519_255_test_vectors_expected_sig,
5877 	.exp_siglen = sizeof(ed25519_255_test_vectors_expected_sig),
5878 	.adata = NULL,
5879 	.adata_len = 0
5880 };
5881 
5882 /************************************************/
5883 static const u8 ed25519_256_test_vectors_priv_key[] = {
5884 	0x3a, 0x04, 0x63, 0x97, 0xf0, 0xaf, 0xc0, 0x72, 0xbc, 0x7f, 0x90, 0x7c, 0x74, 0xd3, 0x8f, 0xd1, 0xb9, 0xaf, 0xdf, 0x27, 0xe1, 0x4a, 0x35, 0x34, 0x76, 0x8b, 0x0d, 0xd2, 0xdf, 0x3a, 0x1c, 0x22, };
5885 static const u8 ed25519_256_test_vectors_message[] = {
5886 	0xf0, 0x8d, 0xde, 0xf4, 0x6c, 0xc6, 0xc3, 0x41, 0x79, 0x82, 0x0c, 0x98, 0x61, 0x37, 0x51, 0x72, 0xfd, 0xdf, 0x77, 0x4f, 0x8d, 0xc3, 0xf7, 0xd6, 0x4a, 0xa4, 0x32, 0xda, 0x8e, 0x5f, 0xae, 0x64, 0x4c, 0x0a, 0x8a, 0x9e, 0x69, 0x08, 0x51, 0x7d, 0x50, 0x5d, 0xeb, 0xd6, 0x12, 0x86, 0x8a, 0xc6, 0xda, 0xf9, 0x5c, 0xd7, 0xe1, 0x69, 0x97, 0x50, 0x02, 0x2c, 0xcd, 0x4b, 0x88, 0xdb, 0xae, 0x2b, 0xbf, 0x73, 0x54, 0x6e, 0xe4, 0xb8, 0x35, 0xd3, 0x19, 0xa8, 0x42, 0xda, 0xe8, 0xb9, 0xed, 0x68, 0x33, 0x23, 0xf3, 0x1e, 0x5c, 0xc5, 0x79, 0x19, 0xbc, 0x9d, 0xbe, 0x3b, 0xcf, 0xff, 0xb2, 0xad, 0xa4, 0x80, 0x72, 0x69, 0x7f, 0xf4, 0xa7, 0xd3, 0x10, 0xc9, 0x1a, 0xdb, 0xca, 0x81, 0xfa, 0xf2, 0x6a, 0x0e, 0xb7, 0xbb, 0x0c, 0x40, 0x4a, 0xc9, 0xd8, 0xdf, 0xec, 0x63, 0xe9, 0xc6, 0x4e, 0x2f, 0x42, 0x0c, 0x07, 0xd3, 0x23, 0xb7, 0xc0, 0xdc, 0x3b, 0x73, 0x50, 0x72, 0x83, 0xae, 0xb1, 0xce, 0xe5, 0x1d, 0xb4, 0xe1, 0xa8, 0x3a, 0x69, 0x2c, 0x7c, 0x1e, 0xa3, 0x98, 0xf6, 0xf3, 0x09, 0x40, 0xfa, 0xb8, 0x5e, 0x21, 0x38, 0xd4, 0xb8, 0x5a, 0xa4, 0xe2, 0x31, 0xe5, 0x42, 0x4f, 0x5b, 0x06, 0x4e, 0xd0, 0x26, 0xf0, 0xcc, 0xb9, 0x9d, 0x1c, 0x85, 0xa9, 0xeb, 0x15, 0xf5, 0x93, 0x4a, 0x11, 0x35, 0x9d, 0x41, 0x1c, 0xf9, 0x4a, 0xe8, 0xff, 0xa3, 0x36, 0x1a, 0x22, 0x4f, 0x46, 0xba, 0xb8, 0x52, 0xd1, 0x84, 0xa2, 0x48, 0xb4, 0xc3, 0x1f, 0xe3, 0xa7, 0xe7, 0xf5, 0x13, 0x4c, 0x05, 0x10, 0x31, 0xa9, 0xf3, 0x28, 0xa7, 0xbe, 0x4a, 0x7c, 0xbb, 0xb1, 0xd8, 0xd8, 0x63, 0xa4, 0x00, 0xfd, 0x2d, 0x58, 0xda, 0xa4, 0x4f, 0x1b, 0x9d, 0x8e, 0x9d, 0xdf, 0x96, 0x1c, 0xe6, 0x32, 0x2f, };
5887 static const u8 ed25519_256_test_vectors_expected_sig[] = {
5888 	0x50, 0x24, 0xce, 0x60, 0x25, 0x79, 0x65, 0x68, 0x70, 0x80, 0xc5, 0xb1, 0xfc, 0x7d, 0x13, 0x01, 0xc3, 0x2a, 0xa6, 0xfc, 0xc8, 0x35, 0x49, 0x7d, 0x9c, 0xb2, 0x3a, 0x74, 0xa6, 0xca, 0x27, 0x24, 0xf5, 0x53, 0x53, 0xc1, 0xb7, 0x57, 0x82, 0x7c, 0xa5, 0x44, 0x0c, 0x9e, 0xf8, 0xf8, 0xc1, 0x05, 0x09, 0x13, 0xe2, 0x0a, 0xab, 0xec, 0x35, 0xc4, 0x97, 0xb5, 0x60, 0x41, 0xb5, 0xde, 0xb2, 0x09, };
5889 static const ec_test_case ed25519_256_test_case = {
5890 	.name = "EDDSA25519-SHA512/wei25519 256",
5891 	.ec_str_p = &wei25519_str_params,
5892 	.priv_key = ed25519_256_test_vectors_priv_key,
5893 	.priv_key_len = sizeof(ed25519_256_test_vectors_priv_key),
5894 	.nn_random = NULL,
5895 	.hash_type = SHA512,
5896 	.msg = (const char *)ed25519_256_test_vectors_message,
5897 	.msglen = sizeof(ed25519_256_test_vectors_message),
5898 	.sig_type = EDDSA25519,
5899 	.exp_sig = ed25519_256_test_vectors_expected_sig,
5900 	.exp_siglen = sizeof(ed25519_256_test_vectors_expected_sig),
5901 	.adata = NULL,
5902 	.adata_len = 0
5903 };
5904 
5905 /************************************************/
5906 static const u8 ed25519_257_test_vectors_priv_key[] = {
5907 	0x12, 0x4f, 0x74, 0x16, 0xa8, 0x04, 0x53, 0xe4, 0xcf, 0x1c, 0xd7, 0xb5, 0xe0, 0x50, 0xa9, 0x76, 0x14, 0x18, 0x25, 0x8b, 0xf7, 0xd2, 0x7b, 0xeb, 0x7f, 0x23, 0x23, 0x8c, 0x45, 0x40, 0xbe, 0x2d, };
5908 static const u8 ed25519_257_test_vectors_message[] = {
5909 	0x9d, 0xcb, 0x98, 0x73, 0xff, 0x05, 0x4d, 0xb1, 0x1d, 0x0a, 0x9b, 0x19, 0xde, 0x68, 0x85, 0xff, 0xba, 0x7f, 0x0e, 0x68, 0x1c, 0xf7, 0xfb, 0x8f, 0x6c, 0xd9, 0x50, 0xc4, 0x83, 0x28, 0xd1, 0xf9, 0x19, 0xca, 0x46, 0x05, 0x4e, 0xee, 0xe6, 0xc9, 0xe5, 0x78, 0x43, 0xeb, 0xdd, 0xa7, 0xb2, 0x4b, 0xc3, 0x50, 0x3c, 0x4d, 0x61, 0x2a, 0xbb, 0x1a, 0x31, 0x4f, 0x39, 0xf5, 0x82, 0x21, 0xd2, 0xb5, 0x4d, 0xc7, 0x55, 0xac, 0xca, 0x79, 0x69, 0x74, 0x0e, 0x7f, 0xa8, 0xb1, 0xa9, 0x52, 0x3b, 0x8c, 0x73, 0x79, 0xfd, 0x39, 0x52, 0x53, 0xf4, 0xe6, 0xcd, 0x05, 0x4e, 0xe2, 0x4b, 0x75, 0x61, 0x3c, 0x35, 0x81, 0xd4, 0x9e, 0x19, 0x24, 0x6a, 0x7b, 0x3b, 0xe1, 0xce, 0xcb, 0x33, 0x4b, 0xe4, 0x4f, 0x3d, 0x62, 0x6f, 0xe3, 0xb7, 0xb2, 0x69, 0xe6, 0x28, 0xd4, 0x45, 0x80, 0xc2, 0x06, 0x36, 0xeb, 0xa2, 0x64, 0x2f, 0x27, 0x44, 0xb9, 0x59, 0xe6, 0x57, 0x57, 0xd0, 0xee, 0x60, 0x18, 0x43, 0xf1, 0x88, 0xe9, 0x5d, 0x17, 0x25, 0x3f, 0xef, 0x56, 0x70, 0x68, 0xa5, 0x40, 0x5a, 0x3a, 0x9e, 0x67, 0x7f, 0xea, 0x3d, 0x7d, 0x55, 0xf7, 0xea, 0xd1, 0x9a, 0x3f, 0x30, 0xc5, 0xf9, 0x85, 0x67, 0x1b, 0x55, 0xfa, 0x12, 0x0c, 0xb9, 0xd0, 0x5f, 0x47, 0x1b, 0x6e, 0x1e, 0x8d, 0x77, 0x9a, 0x2c, 0x80, 0x3a, 0x19, 0xe6, 0xd0, 0xd7, 0xcd, 0x50, 0x78, 0x87, 0xed, 0x64, 0x7c, 0x2a, 0x95, 0x48, 0x3f, 0x93, 0x39, 0x91, 0xed, 0x45, 0xae, 0x30, 0x1a, 0x2b, 0x0e, 0x95, 0x4a, 0x57, 0x03, 0xd2, 0x48, 0xc7, 0x88, 0x10, 0xaa, 0x0b, 0x19, 0x9c, 0xc2, 0xbe, 0xbb, 0x2f, 0x1d, 0x71, 0xcc, 0x40, 0x48, 0x7d, 0xbd, 0x42, 0xee, 0xe0, 0xf7, 0x45, 0xf7, 0xd2, 0x85, 0x68, 0x5b, 0x1f, 0xb3, 0x1b, 0x15, };
5910 static const u8 ed25519_257_test_vectors_expected_sig[] = {
5911 	0xb0, 0x57, 0x21, 0x04, 0xaa, 0x69, 0xe5, 0x29, 0xe3, 0x46, 0x5a, 0x6f, 0xd2, 0x8f, 0x40, 0x4a, 0x4e, 0xc2, 0x02, 0x76, 0xa9, 0x93, 0xb1, 0x72, 0x5e, 0xb8, 0xc5, 0xf6, 0x50, 0xb4, 0xa2, 0x16, 0xf1, 0x87, 0x1b, 0x24, 0xe3, 0x68, 0xcc, 0x46, 0xcd, 0x1e, 0xe0, 0x17, 0x4c, 0xda, 0x1b, 0x5e, 0x4a, 0xe2, 0x20, 0x0a, 0xa9, 0xfc, 0x44, 0x52, 0x2d, 0x97, 0x5a, 0x9c, 0x51, 0x81, 0x49, 0x08, };
5912 static const ec_test_case ed25519_257_test_case = {
5913 	.name = "EDDSA25519-SHA512/wei25519 257",
5914 	.ec_str_p = &wei25519_str_params,
5915 	.priv_key = ed25519_257_test_vectors_priv_key,
5916 	.priv_key_len = sizeof(ed25519_257_test_vectors_priv_key),
5917 	.nn_random = NULL,
5918 	.hash_type = SHA512,
5919 	.msg = (const char *)ed25519_257_test_vectors_message,
5920 	.msglen = sizeof(ed25519_257_test_vectors_message),
5921 	.sig_type = EDDSA25519,
5922 	.exp_sig = ed25519_257_test_vectors_expected_sig,
5923 	.exp_siglen = sizeof(ed25519_257_test_vectors_expected_sig),
5924 	.adata = NULL,
5925 	.adata_len = 0
5926 };
5927 
5928 /************************************************/
5929 static const u8 ed25519_258_test_vectors_priv_key[] = {
5930 	0x25, 0xd1, 0x3b, 0x38, 0x37, 0x60, 0x1b, 0x07, 0xa9, 0x75, 0x69, 0x3e, 0x5a, 0x33, 0xd5, 0x33, 0x7c, 0x34, 0xc1, 0x12, 0x7f, 0xe4, 0xc2, 0x74, 0x90, 0x61, 0x2a, 0xaf, 0x7f, 0x64, 0x2e, 0x9a, };
5931 static const u8 ed25519_258_test_vectors_message[] = {
5932 	0x11, 0x5b, 0x32, 0x20, 0xb4, 0x5c, 0xa8, 0xf3, 0x6c, 0x7f, 0xf5, 0xb5, 0x38, 0x87, 0xd4, 0x7e, 0x66, 0x9b, 0x78, 0xda, 0xc1, 0x3b, 0x98, 0xcc, 0x7a, 0xac, 0xa5, 0xc2, 0xe1, 0x9f, 0xce, 0x81, 0xec, 0x86, 0x17, 0xca, 0x41, 0x0e, 0x11, 0xc9, 0xa9, 0x11, 0x8a, 0x66, 0x84, 0x53, 0xb3, 0x29, 0xff, 0xb7, 0x18, 0xea, 0xec, 0x73, 0x91, 0x72, 0xf0, 0xa8, 0x49, 0xa0, 0x84, 0x81, 0x92, 0xa5, 0xbd, 0xea, 0x18, 0xab, 0x4f, 0x60, 0xd8, 0xd1, 0xa0, 0xd3, 0x38, 0x95, 0x2d, 0x77, 0xb2, 0xcc, 0x13, 0xef, 0xe8, 0x3c, 0x76, 0xe8, 0xdd, 0x58, 0x80, 0x3b, 0x1d, 0x8b, 0x3c, 0x97, 0x29, 0xef, 0x10, 0x2b, 0x20, 0x83, 0x5b, 0x7d, 0xe8, 0x72, 0xbe, 0xf3, 0x01, 0x0f, 0x15, 0xa4, 0xca, 0xdd, 0xf0, 0x7c, 0xf7, 0xbd, 0xd2, 0x22, 0xd8, 0x4b, 0x17, 0x4b, 0xc2, 0x15, 0x27, 0xcf, 0xfb, 0x1b, 0x7f, 0xfd, 0xe8, 0x1e, 0x28, 0x1d, 0x30, 0xcb, 0x7b, 0xce, 0x25, 0xea, 0x3d, 0xff, 0xb6, 0xea, 0x1f, 0xbb, 0x06, 0xcb, 0x70, 0x56, 0x9a, 0x95, 0xed, 0x1a, 0x07, 0xe9, 0x7c, 0xa4, 0x2d, 0xe7, 0x0a, 0xa2, 0x18, 0x15, 0x9e, 0xfd, 0x60, 0x8f, 0xa9, 0xb0, 0x89, 0x6e, 0x0b, 0x58, 0x51, 0x8a, 0x32, 0x2f, 0x25, 0x1d, 0x13, 0x3e, 0x58, 0xc8, 0xfc, 0x14, 0x28, 0xab, 0x0a, 0x17, 0x0e, 0xd8, 0x45, 0xc7, 0x5f, 0xb4, 0x03, 0xf1, 0xff, 0xb9, 0x7d, 0x2d, 0x2a, 0x6d, 0x4f, 0x27, 0x79, 0x11, 0xd3, 0x26, 0xc1, 0xca, 0xbb, 0xb8, 0x51, 0x6c, 0xbc, 0x17, 0x90, 0x8a, 0xb8, 0x1f, 0xf8, 0xd7, 0x9a, 0xf4, 0x46, 0x11, 0xea, 0x1d, 0x05, 0x87, 0x9c, 0x1e, 0xc8, 0x1d, 0x06, 0x93, 0x6e, 0x0f, 0x4a, 0x0a, 0xef, 0x6d, 0x57, 0x48, 0xe1, 0x81, 0xd3, 0x0e, 0xc2, 0x52, 0x36, 0x59, 0x7a, 0x97, 0x3d, };
5933 static const u8 ed25519_258_test_vectors_expected_sig[] = {
5934 	0x20, 0xcb, 0xf0, 0x83, 0x92, 0xfe, 0xa6, 0xa9, 0x9c, 0xf4, 0x46, 0xa9, 0x5c, 0x19, 0x9c, 0xaa, 0x0c, 0x0f, 0x98, 0x13, 0xcc, 0x21, 0x7b, 0x8d, 0x22, 0x8e, 0x2e, 0xd9, 0x0b, 0xab, 0x95, 0xea, 0x92, 0xcd, 0x73, 0xac, 0x95, 0x83, 0x47, 0x64, 0xd3, 0x3e, 0x42, 0x24, 0x3c, 0x80, 0xa7, 0x60, 0x34, 0x91, 0xc8, 0xd3, 0xe4, 0x9a, 0xc7, 0x15, 0xfd, 0x8a, 0x5b, 0x9e, 0x47, 0x89, 0xbb, 0x03, };
5935 static const ec_test_case ed25519_258_test_case = {
5936 	.name = "EDDSA25519-SHA512/wei25519 258",
5937 	.ec_str_p = &wei25519_str_params,
5938 	.priv_key = ed25519_258_test_vectors_priv_key,
5939 	.priv_key_len = sizeof(ed25519_258_test_vectors_priv_key),
5940 	.nn_random = NULL,
5941 	.hash_type = SHA512,
5942 	.msg = (const char *)ed25519_258_test_vectors_message,
5943 	.msglen = sizeof(ed25519_258_test_vectors_message),
5944 	.sig_type = EDDSA25519,
5945 	.exp_sig = ed25519_258_test_vectors_expected_sig,
5946 	.exp_siglen = sizeof(ed25519_258_test_vectors_expected_sig),
5947 	.adata = NULL,
5948 	.adata_len = 0
5949 };
5950 
5951 /************************************************/
5952 static const u8 ed25519_259_test_vectors_priv_key[] = {
5953 	0x7b, 0x3a, 0x76, 0xde, 0xca, 0xea, 0x60, 0xc4, 0x1e, 0x95, 0xb0, 0x58, 0x77, 0xa7, 0xda, 0x82, 0x06, 0x4c, 0x27, 0x27, 0x8c, 0x8d, 0x7d, 0xf5, 0xf0, 0xbb, 0x95, 0xf0, 0xad, 0x2d, 0x04, 0x35, };
5954 static const u8 ed25519_259_test_vectors_message[] = {
5955 	0x37, 0x5f, 0xad, 0xae, 0xdd, 0x9c, 0xac, 0x49, 0xb6, 0x4e, 0x15, 0x74, 0x02, 0x80, 0x46, 0x06, 0x9f, 0x4c, 0x83, 0x65, 0x4c, 0x8a, 0x70, 0x11, 0xab, 0xdb, 0x64, 0xdb, 0x16, 0xb4, 0x7f, 0xa3, 0x11, 0x79, 0x81, 0x72, 0xf9, 0x07, 0x22, 0x17, 0xb0, 0xa6, 0xa4, 0x3e, 0x5d, 0xf6, 0xff, 0xcc, 0x11, 0x54, 0xbc, 0xec, 0x1c, 0x68, 0xe1, 0xd3, 0x5e, 0xc0, 0x58, 0x80, 0xd0, 0x12, 0xce, 0x76, 0xe4, 0xce, 0xbf, 0x30, 0x1b, 0xb2, 0xec, 0x98, 0x3d, 0x00, 0xb4, 0xa0, 0x54, 0x0c, 0x93, 0x7f, 0xf1, 0xc6, 0xdf, 0x94, 0x41, 0xc6, 0x1b, 0xdb, 0x3b, 0xe8, 0xe0, 0xc7, 0xc1, 0x1a, 0x35, 0xd4, 0x9b, 0x6f, 0x55, 0xc3, 0x81, 0x26, 0x9a, 0x0e, 0x76, 0x8e, 0xfb, 0xd4, 0x53, 0x44, 0x7f, 0xe4, 0x8b, 0x75, 0xac, 0x39, 0x64, 0x6c, 0xa8, 0x2e, 0xca, 0x7d, 0x14, 0x93, 0x04, 0x42, 0x34, 0x91, 0x87, 0x1c, 0x10, 0xdb, 0xcf, 0xc5, 0x97, 0x3a, 0x57, 0xfa, 0xb8, 0x37, 0x1c, 0x30, 0xcb, 0xc4, 0xe9, 0x0b, 0xec, 0xc0, 0xb6, 0x71, 0x52, 0x22, 0x6e, 0xe1, 0x77, 0xb4, 0xff, 0x36, 0x8e, 0xc8, 0x79, 0xb3, 0x91, 0xeb, 0x95, 0xe3, 0x6d, 0xcb, 0xb0, 0x7b, 0x2c, 0x16, 0xba, 0x39, 0x55, 0x45, 0xd4, 0x52, 0x9f, 0x72, 0x7b, 0x1a, 0x11, 0xef, 0x65, 0xd1, 0x20, 0x97, 0x6b, 0x7c, 0xcc, 0x86, 0xaf, 0x4b, 0xd2, 0x04, 0xcb, 0x94, 0x89, 0xc9, 0x21, 0xe4, 0x3b, 0xa5, 0xe8, 0x50, 0xcf, 0xe5, 0x98, 0x99, 0xf1, 0xc1, 0xec, 0x4a, 0xa5, 0xc9, 0x2b, 0x6d, 0xac, 0x69, 0x14, 0xb1, 0x95, 0x2b, 0x53, 0xdc, 0xb5, 0x40, 0xb4, 0x09, 0x23, 0x13, 0x81, 0x56, 0x89, 0x87, 0xbb, 0x22, 0x36, 0xbc, 0x40, 0x89, 0x5d, 0xf3, 0xf1, 0x7e, 0xab, 0x7c, 0x02, 0x74, 0xf2, 0x24, 0x4f, 0x95, 0x86, 0x12, 0xe8, 0x8e, };
5956 static const u8 ed25519_259_test_vectors_expected_sig[] = {
5957 	0x2c, 0xd2, 0x6f, 0xb3, 0xc4, 0xf7, 0x44, 0x0a, 0x72, 0xaf, 0xfe, 0x93, 0x56, 0x4f, 0x6f, 0x65, 0x59, 0xad, 0xb1, 0x5c, 0xc7, 0xa2, 0xba, 0x10, 0x87, 0x9f, 0xb7, 0xd6, 0x7e, 0x47, 0xd4, 0xeb, 0xd0, 0x2f, 0xe4, 0x82, 0x36, 0x98, 0xa5, 0xfb, 0xd4, 0xa9, 0x07, 0xfd, 0x69, 0x18, 0x4c, 0x25, 0x5a, 0x17, 0x0e, 0x5f, 0x17, 0x47, 0xfc, 0xe9, 0x68, 0x10, 0x2d, 0xc2, 0x19, 0xb5, 0x0d, 0x02, };
5958 static const ec_test_case ed25519_259_test_case = {
5959 	.name = "EDDSA25519-SHA512/wei25519 259",
5960 	.ec_str_p = &wei25519_str_params,
5961 	.priv_key = ed25519_259_test_vectors_priv_key,
5962 	.priv_key_len = sizeof(ed25519_259_test_vectors_priv_key),
5963 	.nn_random = NULL,
5964 	.hash_type = SHA512,
5965 	.msg = (const char *)ed25519_259_test_vectors_message,
5966 	.msglen = sizeof(ed25519_259_test_vectors_message),
5967 	.sig_type = EDDSA25519,
5968 	.exp_sig = ed25519_259_test_vectors_expected_sig,
5969 	.exp_siglen = sizeof(ed25519_259_test_vectors_expected_sig),
5970 	.adata = NULL,
5971 	.adata_len = 0
5972 };
5973 
5974 /************************************************/
5975 static const u8 ed25519_260_test_vectors_priv_key[] = {
5976 	0x5f, 0xf8, 0xd4, 0x05, 0x26, 0x08, 0xeb, 0x03, 0x3a, 0x5e, 0x94, 0xb6, 0x03, 0xce, 0x38, 0x4d, 0x84, 0x52, 0xf6, 0x0a, 0x26, 0x49, 0x8b, 0x91, 0x12, 0x56, 0x7f, 0x34, 0x10, 0xc1, 0x86, 0x66, };
5977 static const u8 ed25519_260_test_vectors_message[] = {
5978 	0x13, 0x8c, 0x60, 0x55, 0x7c, 0x2e, 0x90, 0x08, 0xaf, 0xc0, 0x3d, 0x45, 0xbe, 0xc7, 0x1f, 0x96, 0x11, 0x49, 0xa0, 0x83, 0x59, 0x26, 0x75, 0x1c, 0x8f, 0xf3, 0x93, 0x5c, 0x7d, 0x65, 0x2d, 0x83, 0xe1, 0xb0, 0xb1, 0xda, 0x7d, 0x5b, 0xbe, 0x0b, 0x8e, 0x17, 0x1a, 0x4e, 0x49, 0xaa, 0xe0, 0x6f, 0xd8, 0xa9, 0xde, 0xff, 0x78, 0xdc, 0xde, 0x4d, 0x25, 0xb1, 0xaa, 0x89, 0x99, 0x98, 0xa0, 0xf9, 0x9e, 0x1d, 0xf6, 0xf9, 0x33, 0x7a, 0x3e, 0xa2, 0xf2, 0x4b, 0x76, 0xc3, 0x17, 0xa7, 0x01, 0x4d, 0xb4, 0xe5, 0x28, 0x31, 0x91, 0x79, 0x5a, 0x70, 0xd8, 0x82, 0x1d, 0x21, 0x78, 0x46, 0x49, 0x0f, 0x95, 0x87, 0x01, 0xd3, 0x9d, 0xc2, 0xc8, 0xce, 0x47, 0xd9, 0x28, 0x93, 0x88, 0x74, 0xd8, 0x7b, 0x35, 0x58, 0x98, 0x9b, 0xc7, 0x7a, 0xf8, 0x20, 0x97, 0x9a, 0x35, 0x1e, 0xef, 0x95, 0x94, 0xaa, 0x5b, 0x94, 0xf3, 0x34, 0x1e, 0xde, 0xd4, 0xea, 0x20, 0xb0, 0x8c, 0x3e, 0x7c, 0x56, 0x10, 0xd4, 0x32, 0x67, 0x81, 0x8d, 0xfa, 0xc0, 0xa8, 0x7d, 0xdf, 0x52, 0x7f, 0xbc, 0xe8, 0x51, 0x2b, 0xbf, 0x85, 0xb6, 0x6c, 0x9b, 0xb5, 0xd6, 0x2f, 0x0f, 0xe8, 0x40, 0x48, 0xf2, 0x3b, 0x19, 0x60, 0x4a, 0x5c, 0x8d, 0x82, 0xb1, 0xf2, 0x5a, 0x8d, 0xa0, 0x27, 0x31, 0xfe, 0xb2, 0xec, 0xae, 0x48, 0x9b, 0x84, 0x75, 0xf7, 0xbd, 0x32, 0x6d, 0xdf, 0x1a, 0x08, 0x18, 0x9e, 0x46, 0xc0, 0x8c, 0xf5, 0x05, 0x38, 0xc2, 0xa3, 0x63, 0xe2, 0xf4, 0xeb, 0x2c, 0x01, 0xa2, 0x04, 0xc7, 0xff, 0xbc, 0x0b, 0x98, 0x1a, 0xdc, 0x0f, 0xd9, 0x97, 0xaa, 0xfd, 0xf2, 0xa2, 0x22, 0xee, 0x84, 0xc3, 0x09, 0xf6, 0xe9, 0x5e, 0xc7, 0xde, 0x4f, 0xa8, 0x5d, 0x47, 0x68, 0xd5, 0xc0, 0x03, 0x16, 0x50, 0x28, 0x22, 0x5e, 0x22, 0xe0, 0x9e, };
5979 static const u8 ed25519_260_test_vectors_expected_sig[] = {
5980 	0xb7, 0x37, 0xd4, 0xe5, 0xbe, 0x27, 0xde, 0xb6, 0xd8, 0x77, 0x29, 0xc6, 0x36, 0xdf, 0xf7, 0xa4, 0x06, 0xc0, 0x13, 0xf3, 0x13, 0xc3, 0x8c, 0xf6, 0x83, 0xfe, 0x14, 0xf7, 0x5a, 0x3b, 0x30, 0x05, 0xd9, 0x53, 0x5d, 0x7e, 0x58, 0x15, 0xc8, 0xf8, 0xb3, 0x7c, 0x51, 0xd6, 0x92, 0x71, 0x11, 0xc9, 0x79, 0xf7, 0xd9, 0xd8, 0x1a, 0x34, 0x7a, 0xa9, 0xcc, 0x09, 0xed, 0x4e, 0x6c, 0x18, 0xe9, 0x0f, };
5981 static const ec_test_case ed25519_260_test_case = {
5982 	.name = "EDDSA25519-SHA512/wei25519 260",
5983 	.ec_str_p = &wei25519_str_params,
5984 	.priv_key = ed25519_260_test_vectors_priv_key,
5985 	.priv_key_len = sizeof(ed25519_260_test_vectors_priv_key),
5986 	.nn_random = NULL,
5987 	.hash_type = SHA512,
5988 	.msg = (const char *)ed25519_260_test_vectors_message,
5989 	.msglen = sizeof(ed25519_260_test_vectors_message),
5990 	.sig_type = EDDSA25519,
5991 	.exp_sig = ed25519_260_test_vectors_expected_sig,
5992 	.exp_siglen = sizeof(ed25519_260_test_vectors_expected_sig),
5993 	.adata = NULL,
5994 	.adata_len = 0
5995 };
5996 
5997 /************************************************/
5998 static const u8 ed25519_261_test_vectors_priv_key[] = {
5999 	0xee, 0xde, 0xfc, 0x17, 0x57, 0xe3, 0xa7, 0xe5, 0xed, 0x39, 0x46, 0xdb, 0xed, 0xc3, 0x96, 0xa3, 0x62, 0xf6, 0x83, 0xd2, 0xc5, 0x1b, 0x0b, 0x9f, 0x60, 0x76, 0x5d, 0x4b, 0xfc, 0x51, 0x34, 0xde, };
6000 static const u8 ed25519_261_test_vectors_message[] = {
6001 	0xb1, 0x94, 0xdb, 0x73, 0xf9, 0x94, 0xcb, 0xdc, 0x3c, 0xbe, 0x63, 0x0b, 0xa7, 0x2c, 0x47, 0xc2, 0x24, 0x9b, 0xc0, 0x59, 0x2a, 0xb5, 0x47, 0x94, 0x2b, 0x1d, 0x1b, 0x88, 0x2b, 0x44, 0xf5, 0xb3, 0x85, 0x5e, 0x56, 0x8b, 0xdd, 0xdf, 0x92, 0xef, 0x05, 0x02, 0x2d, 0x88, 0xfc, 0xfc, 0x29, 0x4e, 0x76, 0xb6, 0x4a, 0x00, 0xe9, 0xc7, 0x43, 0x55, 0x37, 0x37, 0x63, 0xe4, 0x9a, 0x4e, 0xbc, 0x47, 0x24, 0x3d, 0x48, 0xa9, 0xad, 0x58, 0x89, 0x94, 0xa5, 0x18, 0xf8, 0x0f, 0x86, 0x15, 0xc2, 0xb3, 0x1d, 0xa5, 0x87, 0xa5, 0x3e, 0x52, 0x9d, 0x43, 0x5a, 0x86, 0x97, 0x35, 0x0d, 0xfc, 0xde, 0x02, 0xd2, 0x0c, 0xce, 0x7d, 0x5e, 0xee, 0xfe, 0x3f, 0x5a, 0xb2, 0xaa, 0xc6, 0x01, 0x25, 0x9c, 0xda, 0x38, 0x53, 0x8a, 0x1b, 0x83, 0x01, 0xf9, 0x83, 0x2e, 0x75, 0xab, 0x90, 0xf8, 0xa9, 0x32, 0xf2, 0x67, 0xea, 0xc1, 0x81, 0x00, 0x39, 0x65, 0xd5, 0x26, 0x6f, 0x20, 0x61, 0x80, 0xc6, 0xc3, 0x80, 0xec, 0xe8, 0x03, 0x57, 0x7c, 0xcb, 0x46, 0x17, 0x6b, 0xf6, 0x07, 0x15, 0x94, 0x86, 0xf2, 0x42, 0x59, 0x74, 0x7e, 0x2c, 0xa6, 0xfb, 0x19, 0x12, 0xdb, 0x7b, 0x78, 0xa9, 0x73, 0xb2, 0x84, 0x63, 0x87, 0xc1, 0x20, 0x80, 0x30, 0xee, 0x1f, 0x40, 0x0d, 0x0c, 0x5b, 0x5e, 0x8b, 0xde, 0x96, 0x35, 0xae, 0x55, 0x63, 0x8b, 0xa1, 0x7c, 0x73, 0x4d, 0xe8, 0x63, 0x8b, 0xb8, 0x5d, 0xfc, 0xd7, 0x66, 0x29, 0xa7, 0xf9, 0xf4, 0x0d, 0x6a, 0xb9, 0x54, 0xd5, 0x5b, 0xf8, 0x57, 0x5f, 0xc9, 0xc9, 0xa5, 0x95, 0x09, 0x7e, 0x08, 0x93, 0xdb, 0x5a, 0x7b, 0x8a, 0x6c, 0x45, 0x5e, 0xcb, 0xd3, 0xd2, 0x2d, 0x72, 0x5e, 0x19, 0xde, 0x29, 0x41, 0xf4, 0x67, 0xf9, 0xeb, 0x93, 0xd6, 0x6a, 0x0e, 0x2b, 0xbd, 0xbf, 0x92, 0xed, 0x1c, };
6002 static const u8 ed25519_261_test_vectors_expected_sig[] = {
6003 	0xd5, 0xbe, 0xa8, 0xea, 0x9a, 0x5f, 0xe9, 0xed, 0x6d, 0x2b, 0xf8, 0x39, 0x93, 0x0c, 0x0c, 0x6c, 0xd5, 0x03, 0x9e, 0x98, 0x8f, 0x55, 0x1f, 0xde, 0xdb, 0x54, 0x37, 0xe1, 0xc1, 0xaf, 0x0e, 0xd7, 0xb3, 0x89, 0x7c, 0x03, 0x57, 0x11, 0xc3, 0xc5, 0x19, 0x26, 0xbe, 0x8d, 0x1b, 0x32, 0x02, 0x4d, 0x5c, 0xd5, 0x82, 0xf5, 0xf8, 0x36, 0x9a, 0xd8, 0x4d, 0x18, 0xb1, 0x25, 0x02, 0x65, 0x2f, 0x07, };
6004 static const ec_test_case ed25519_261_test_case = {
6005 	.name = "EDDSA25519-SHA512/wei25519 261",
6006 	.ec_str_p = &wei25519_str_params,
6007 	.priv_key = ed25519_261_test_vectors_priv_key,
6008 	.priv_key_len = sizeof(ed25519_261_test_vectors_priv_key),
6009 	.nn_random = NULL,
6010 	.hash_type = SHA512,
6011 	.msg = (const char *)ed25519_261_test_vectors_message,
6012 	.msglen = sizeof(ed25519_261_test_vectors_message),
6013 	.sig_type = EDDSA25519,
6014 	.exp_sig = ed25519_261_test_vectors_expected_sig,
6015 	.exp_siglen = sizeof(ed25519_261_test_vectors_expected_sig),
6016 	.adata = NULL,
6017 	.adata_len = 0
6018 };
6019 
6020 /************************************************/
6021 static const u8 ed25519_262_test_vectors_priv_key[] = {
6022 	0x09, 0xd2, 0x2b, 0xba, 0xa5, 0x95, 0x6c, 0xfa, 0xcb, 0xbf, 0x9f, 0xd5, 0x51, 0x09, 0x75, 0x12, 0x86, 0x86, 0xc4, 0x0c, 0x6e, 0xa9, 0x6b, 0x89, 0xef, 0x4c, 0x0f, 0x0c, 0x64, 0x9b, 0xcd, 0x7f, };
6023 static const u8 ed25519_262_test_vectors_message[] = {
6024 	0x1c, 0x26, 0xa0, 0xf3, 0xa1, 0xa5, 0xb2, 0xd7, 0xd5, 0xb2, 0x97, 0xaf, 0x8a, 0x6a, 0x68, 0x9d, 0x7c, 0x62, 0xa2, 0x52, 0x67, 0xe1, 0x97, 0xd2, 0x3b, 0xec, 0xd2, 0xf2, 0xb8, 0x16, 0xc4, 0xde, 0x92, 0xfb, 0xda, 0xff, 0xb9, 0x41, 0xc3, 0xfc, 0x8d, 0xb7, 0xa8, 0x43, 0x35, 0xa8, 0x4c, 0xfb, 0xc9, 0x2c, 0xb3, 0xac, 0x80, 0x6e, 0xd5, 0x8d, 0xf1, 0x6b, 0x6b, 0x8e, 0x11, 0x9a, 0x48, 0xdf, 0x4f, 0x27, 0xc7, 0x1e, 0x93, 0x1a, 0x59, 0x38, 0xe7, 0xd0, 0x02, 0x73, 0x48, 0x85, 0xe1, 0x3a, 0x25, 0x8a, 0x15, 0xb6, 0xe1, 0x13, 0x6e, 0xfb, 0xa7, 0x2f, 0x1d, 0x09, 0x6b, 0x68, 0x9f, 0x76, 0x18, 0xf4, 0x9c, 0x96, 0x80, 0x63, 0xe8, 0xf9, 0x91, 0xfa, 0x0b, 0x55, 0x60, 0x1e, 0x43, 0x0e, 0xee, 0x13, 0x49, 0x2a, 0x1b, 0x09, 0x41, 0x3e, 0xb2, 0x38, 0x13, 0x59, 0x1a, 0x7a, 0x9f, 0x07, 0x0c, 0xc3, 0x96, 0xca, 0x9d, 0x1f, 0xac, 0xdd, 0x4f, 0x4c, 0xe3, 0x7c, 0x40, 0xf7, 0x24, 0x5f, 0x55, 0x03, 0x5e, 0x10, 0xfa, 0xd6, 0xb8, 0x5b, 0x5f, 0x01, 0xa1, 0xda, 0xac, 0xc0, 0xdf, 0x94, 0x06, 0x9f, 0x7d, 0xe8, 0xf6, 0x46, 0x7f, 0x96, 0xd1, 0xfb, 0x98, 0x64, 0x8e, 0x8a, 0x05, 0x20, 0xa8, 0xcd, 0x72, 0x3c, 0x98, 0xe9, 0xdc, 0x2d, 0xd4, 0xb2, 0x93, 0x4d, 0x82, 0x28, 0xf0, 0xae, 0x1a, 0x41, 0x5b, 0xd3, 0xa7, 0xcd, 0xa3, 0x8d, 0x7a, 0x99, 0x83, 0xce, 0x1a, 0xf6, 0xf8, 0xc9, 0x70, 0xa2, 0xa5, 0x91, 0x63, 0x5f, 0xe1, 0x2b, 0x91, 0x75, 0x36, 0xef, 0x81, 0x5e, 0xaf, 0x1a, 0x31, 0x38, 0xd7, 0x0c, 0xe7, 0x0a, 0x79, 0x42, 0x64, 0xd7, 0xc9, 0x86, 0xd9, 0xee, 0x32, 0x90, 0x44, 0x5f, 0x15, 0xa9, 0x24, 0x8f, 0x27, 0x65, 0x27, 0x1e, 0x5a, 0x99, 0x21, 0x96, 0xae, 0x33, 0x1a, 0xbd, 0x41, 0x64, 0xbf, };
6025 static const u8 ed25519_262_test_vectors_expected_sig[] = {
6026 	0xe6, 0x52, 0x75, 0xc4, 0x32, 0x8a, 0x70, 0xad, 0x62, 0x40, 0x8e, 0xd7, 0xfb, 0x17, 0x28, 0xbe, 0x87, 0xa7, 0x3a, 0x81, 0x4f, 0xee, 0x8e, 0xbd, 0x94, 0xf2, 0x66, 0x5c, 0x71, 0xbc, 0x66, 0xab, 0x0c, 0x1b, 0x07, 0xa6, 0x00, 0xb3, 0x0b, 0xc0, 0x81, 0xa7, 0x4c, 0x53, 0x68, 0x57, 0xc2, 0x06, 0x10, 0x38, 0x4b, 0xe2, 0x68, 0xd9, 0xaf, 0x3e, 0x3e, 0xcd, 0xdd, 0x3e, 0xb0, 0xc1, 0x4c, 0x0c, };
6027 static const ec_test_case ed25519_262_test_case = {
6028 	.name = "EDDSA25519-SHA512/wei25519 262",
6029 	.ec_str_p = &wei25519_str_params,
6030 	.priv_key = ed25519_262_test_vectors_priv_key,
6031 	.priv_key_len = sizeof(ed25519_262_test_vectors_priv_key),
6032 	.nn_random = NULL,
6033 	.hash_type = SHA512,
6034 	.msg = (const char *)ed25519_262_test_vectors_message,
6035 	.msglen = sizeof(ed25519_262_test_vectors_message),
6036 	.sig_type = EDDSA25519,
6037 	.exp_sig = ed25519_262_test_vectors_expected_sig,
6038 	.exp_siglen = sizeof(ed25519_262_test_vectors_expected_sig),
6039 	.adata = NULL,
6040 	.adata_len = 0
6041 };
6042 
6043 /************************************************/
6044 static const u8 ed25519_263_test_vectors_priv_key[] = {
6045 	0x77, 0x82, 0x6e, 0xd3, 0x51, 0xa3, 0xf0, 0x92, 0x54, 0xae, 0x56, 0x92, 0x88, 0x5d, 0x77, 0x4c, 0xb3, 0xf2, 0x44, 0x10, 0xa4, 0x80, 0x9f, 0xd9, 0x0f, 0x8a, 0x00, 0xda, 0x9a, 0xee, 0x99, 0x03, };
6046 static const u8 ed25519_263_test_vectors_message[] = {
6047 	0x1f, 0xf0, 0x6c, 0x0b, 0x39, 0x99, 0xce, 0xcb, 0x19, 0x00, 0xa4, 0x7d, 0x26, 0x7b, 0xea, 0xfb, 0xb3, 0x5d, 0x93, 0xd1, 0x4c, 0xb2, 0xc8, 0x92, 0x5e, 0x3e, 0x3f, 0xe5, 0xd9, 0x67, 0x58, 0x69, 0x25, 0xee, 0x4b, 0xaa, 0x41, 0x99, 0x8e, 0xdd, 0x01, 0x03, 0x20, 0x58, 0x10, 0xaa, 0xd5, 0xc0, 0xbb, 0xdc, 0x77, 0x87, 0x44, 0x76, 0x81, 0x02, 0x46, 0xd1, 0x30, 0x89, 0xa6, 0x4d, 0xb5, 0x76, 0x42, 0x4f, 0xae, 0x0b, 0xed, 0x96, 0x64, 0xa4, 0x2a, 0x49, 0x11, 0x47, 0xd1, 0xee, 0x3b, 0x9c, 0x3b, 0x1b, 0xa4, 0x87, 0x5b, 0xe1, 0x54, 0x62, 0x39, 0x25, 0x40, 0xf9, 0x97, 0x8d, 0x9a, 0x46, 0x30, 0xba, 0x4c, 0x52, 0x54, 0x99, 0x75, 0x1a, 0x45, 0xef, 0xc2, 0x99, 0xec, 0x7d, 0x73, 0xb1, 0x7f, 0x9a, 0xd2, 0x75, 0xee, 0x71, 0xa6, 0x87, 0xe7, 0x26, 0x90, 0xd7, 0x32, 0x02, 0x42, 0xd2, 0xdc, 0x2b, 0xd4, 0xd5, 0xc5, 0xcf, 0x0f, 0x17, 0xa4, 0x65, 0x18, 0x5d, 0xcf, 0x60, 0xf8, 0xef, 0xff, 0x53, 0x90, 0x3f, 0x20, 0xb0, 0xc2, 0xab, 0x21, 0x92, 0xd4, 0x43, 0x68, 0xf2, 0xf2, 0xfb, 0x36, 0x04, 0x8a, 0xf0, 0x71, 0xf7, 0xaa, 0x85, 0x7b, 0x14, 0xad, 0x1d, 0x11, 0x46, 0x12, 0x05, 0xbe, 0xbe, 0x17, 0xe0, 0x2b, 0xe2, 0xe3, 0xcc, 0xb6, 0x09, 0x28, 0x21, 0x88, 0x5c, 0x4e, 0x0d, 0x48, 0x11, 0xbe, 0x3f, 0x45, 0xb1, 0xfe, 0xa0, 0x88, 0x45, 0x3e, 0x02, 0x24, 0x32, 0xf5, 0x62, 0x56, 0x2b, 0x43, 0xa3, 0x55, 0xcb, 0x56, 0x27, 0x0c, 0xed, 0xb6, 0xc2, 0xc4, 0x2d, 0xbf, 0x9b, 0xe8, 0x50, 0xe7, 0x71, 0x92, 0xfd, 0xc6, 0x5c, 0xfd, 0x36, 0x83, 0x4b, 0xe9, 0x88, 0xdb, 0xe9, 0xa9, 0x3e, 0x25, 0x18, 0xc1, 0x38, 0xb0, 0x90, 0xfb, 0x9d, 0xa8, 0x27, 0xcb, 0x1c, 0x91, 0xc8, 0xfe, 0x52, 0xfe, 0x7c, 0x57, 0xf7, };
6048 static const u8 ed25519_263_test_vectors_expected_sig[] = {
6049 	0x97, 0x7a, 0xdc, 0xcd, 0xb8, 0x29, 0xb4, 0x0b, 0xbd, 0x8e, 0x53, 0x85, 0x6a, 0x78, 0x3d, 0xb3, 0x46, 0xa3, 0x9d, 0xff, 0x62, 0x04, 0x1a, 0x29, 0x72, 0xd2, 0x90, 0x09, 0xf1, 0xc9, 0xff, 0x81, 0xb8, 0xad, 0x54, 0xcb, 0x90, 0x1e, 0x49, 0x7c, 0x1d, 0x30, 0x21, 0xb5, 0x0b, 0x6c, 0x69, 0xee, 0x73, 0x55, 0x8f, 0xd7, 0xbe, 0x05, 0xd6, 0x25, 0xf5, 0x72, 0x7f, 0x9a, 0xf2, 0xce, 0x87, 0x02, };
6050 static const ec_test_case ed25519_263_test_case = {
6051 	.name = "EDDSA25519-SHA512/wei25519 263",
6052 	.ec_str_p = &wei25519_str_params,
6053 	.priv_key = ed25519_263_test_vectors_priv_key,
6054 	.priv_key_len = sizeof(ed25519_263_test_vectors_priv_key),
6055 	.nn_random = NULL,
6056 	.hash_type = SHA512,
6057 	.msg = (const char *)ed25519_263_test_vectors_message,
6058 	.msglen = sizeof(ed25519_263_test_vectors_message),
6059 	.sig_type = EDDSA25519,
6060 	.exp_sig = ed25519_263_test_vectors_expected_sig,
6061 	.exp_siglen = sizeof(ed25519_263_test_vectors_expected_sig),
6062 	.adata = NULL,
6063 	.adata_len = 0
6064 };
6065 
6066 /************************************************/
6067 static const u8 ed25519_264_test_vectors_priv_key[] = {
6068 	0x99, 0xa9, 0x95, 0x31, 0xc3, 0xcd, 0x6e, 0x3e, 0x9c, 0x90, 0x0a, 0x9e, 0xeb, 0x26, 0x26, 0x7e, 0x72, 0xf0, 0x9d, 0x11, 0xb6, 0x51, 0xa8, 0x97, 0xeb, 0xb7, 0x9b, 0xe0, 0x16, 0xf6, 0x4c, 0x6e, };
6069 static const u8 ed25519_264_test_vectors_message[] = {
6070 	0x7a, 0x89, 0xc0, 0xc1, 0x95, 0x2f, 0xdc, 0x42, 0x98, 0xdc, 0xae, 0xa8, 0x54, 0xef, 0xc1, 0x34, 0x65, 0x6b, 0xe1, 0x47, 0xe9, 0xe8, 0xe8, 0x2f, 0xc9, 0xa4, 0x49, 0x05, 0x9d, 0x80, 0x57, 0x0f, 0x75, 0x67, 0x6b, 0x81, 0xc4, 0xa9, 0x4f, 0x76, 0xa9, 0x68, 0x20, 0x0c, 0xde, 0xb0, 0x98, 0x8c, 0x73, 0xf5, 0x9a, 0xfc, 0x72, 0xad, 0x4c, 0x31, 0x03, 0xe1, 0x9f, 0xe6, 0x3b, 0x7e, 0x95, 0xe1, 0x40, 0xb5, 0xcb, 0x2e, 0xfc, 0x7b, 0x97, 0xa6, 0xff, 0xbb, 0x6c, 0x29, 0x8d, 0xda, 0xce, 0x3b, 0xe6, 0xd2, 0xed, 0x3d, 0x59, 0x8b, 0x8b, 0xdf, 0x0c, 0x2f, 0xe6, 0xc9, 0x76, 0x02, 0x14, 0x2a, 0x76, 0xe9, 0x78, 0x51, 0x4c, 0x19, 0x6c, 0x1b, 0x9a, 0x88, 0xef, 0xdc, 0x19, 0x25, 0xfc, 0x50, 0x61, 0x55, 0xcf, 0xf9, 0xa2, 0xf2, 0x1a, 0xb6, 0x34, 0xe2, 0xb9, 0x3e, 0x96, 0x92, 0x8a, 0x5d, 0x8f, 0x7c, 0xe4, 0xcb, 0x73, 0x26, 0xd9, 0x68, 0x94, 0x69, 0x24, 0x2b, 0xa9, 0xc6, 0xa0, 0x1b, 0x77, 0x49, 0x6b, 0xad, 0xef, 0x87, 0x57, 0x8f, 0x5a, 0x17, 0x28, 0x4e, 0x90, 0x0a, 0x72, 0xdf, 0x14, 0x1c, 0x61, 0x99, 0xb0, 0xe7, 0x1a, 0xb5, 0xda, 0x43, 0x75, 0x03, 0x76, 0x17, 0xec, 0x61, 0x96, 0xd4, 0xf4, 0xe2, 0x3a, 0xe2, 0x91, 0x6a, 0x72, 0xd0, 0xfc, 0xe7, 0x96, 0x02, 0x23, 0x05, 0xac, 0x9f, 0xbb, 0xbb, 0xe4, 0x70, 0x5b, 0x34, 0x0e, 0x42, 0xb7, 0x8e, 0x1c, 0x02, 0xbb, 0x10, 0x01, 0x86, 0x0c, 0xdc, 0xaf, 0x71, 0xed, 0x89, 0x25, 0x5d, 0xd5, 0x6c, 0xc0, 0xb3, 0x1c, 0x59, 0xd4, 0x59, 0x6d, 0xce, 0xf8, 0x4e, 0x22, 0x23, 0x4b, 0xe5, 0x62, 0xbd, 0x80, 0x1e, 0x94, 0x11, 0x1d, 0x83, 0xa7, 0x80, 0x64, 0xc9, 0x0f, 0x9d, 0x82, 0xfc, 0xe9, 0x1f, 0x68, 0xab, 0xb0, 0x3c, 0x73, 0xb6, 0xbd, 0x8d, 0x7e, 0x02, 0xd4, };
6071 static const u8 ed25519_264_test_vectors_expected_sig[] = {
6072 	0x0e, 0x89, 0xda, 0x5d, 0x94, 0x9c, 0xf2, 0xbf, 0x40, 0xc7, 0xe1, 0x7c, 0x2d, 0x0f, 0x9c, 0xea, 0xbc, 0x88, 0xa0, 0x92, 0xeb, 0x4d, 0x49, 0xcf, 0xbf, 0xea, 0xb7, 0xc8, 0xbf, 0xf4, 0x32, 0x45, 0xc6, 0x7b, 0x9e, 0x2e, 0x92, 0xf9, 0xbc, 0xb9, 0xb3, 0x4b, 0x3f, 0xcf, 0x8b, 0x01, 0xfa, 0x2e, 0xa7, 0xa9, 0x64, 0x9f, 0x81, 0x4c, 0x3a, 0xa9, 0x8b, 0x3d, 0xd0, 0x45, 0x40, 0xc3, 0x1d, 0x09, };
6073 static const ec_test_case ed25519_264_test_case = {
6074 	.name = "EDDSA25519-SHA512/wei25519 264",
6075 	.ec_str_p = &wei25519_str_params,
6076 	.priv_key = ed25519_264_test_vectors_priv_key,
6077 	.priv_key_len = sizeof(ed25519_264_test_vectors_priv_key),
6078 	.nn_random = NULL,
6079 	.hash_type = SHA512,
6080 	.msg = (const char *)ed25519_264_test_vectors_message,
6081 	.msglen = sizeof(ed25519_264_test_vectors_message),
6082 	.sig_type = EDDSA25519,
6083 	.exp_sig = ed25519_264_test_vectors_expected_sig,
6084 	.exp_siglen = sizeof(ed25519_264_test_vectors_expected_sig),
6085 	.adata = NULL,
6086 	.adata_len = 0
6087 };
6088 
6089 /************************************************/
6090 static const u8 ed25519_265_test_vectors_priv_key[] = {
6091 	0xaa, 0x58, 0x40, 0x3e, 0x76, 0x3b, 0xac, 0x40, 0x5d, 0xb0, 0x65, 0xeb, 0x11, 0xeb, 0x6b, 0xe3, 0xe3, 0xb6, 0xcf, 0x00, 0xec, 0x4a, 0x22, 0x2b, 0x52, 0xbf, 0xf4, 0xb6, 0xe3, 0xd1, 0x56, 0xac, };
6092 static const u8 ed25519_265_test_vectors_message[] = {
6093 	0x3b, 0xaa, 0x09, 0x98, 0xff, 0x02, 0xb3, 0x2b, 0x90, 0xb5, 0x1f, 0x9a, 0x84, 0x0c, 0x7b, 0x5c, 0x58, 0x70, 0xcf, 0xb1, 0x81, 0x0a, 0x9b, 0x0f, 0x77, 0xb5, 0x59, 0x09, 0xd4, 0x7a, 0xd3, 0x35, 0x14, 0x7a, 0x99, 0x1c, 0x29, 0xfb, 0xeb, 0xfc, 0x59, 0x2e, 0x93, 0x07, 0x17, 0x5c, 0x19, 0x64, 0x12, 0x9a, 0x2d, 0x5e, 0xfc, 0x62, 0x15, 0x80, 0x74, 0x53, 0xbc, 0xd7, 0x26, 0x96, 0x97, 0x81, 0x22, 0x2b, 0xca, 0xd1, 0xc9, 0x9a, 0x49, 0x74, 0x8b, 0x9e, 0xe6, 0x67, 0xc4, 0xd0, 0xc8, 0x28, 0x89, 0xe2, 0xf5, 0x00, 0x64, 0xc1, 0x15, 0xdb, 0xd8, 0xfb, 0x48, 0x3d, 0x72, 0xab, 0x0c, 0xca, 0xdf, 0x76, 0xbd, 0xdb, 0x2d, 0xc7, 0x27, 0xdb, 0xc3, 0xfa, 0x5c, 0x46, 0x24, 0xc2, 0x83, 0xd8, 0x92, 0x1c, 0x8a, 0xa4, 0x42, 0x51, 0x10, 0xdc, 0xdd, 0x69, 0xc0, 0x5e, 0x5e, 0xd5, 0x9b, 0x35, 0x96, 0x25, 0xee, 0xaa, 0xec, 0x1e, 0x27, 0xea, 0xfe, 0x9d, 0x9a, 0x5c, 0xe7, 0x36, 0xc3, 0xf9, 0xc5, 0x27, 0xea, 0x54, 0x78, 0x18, 0xb9, 0xbc, 0xa6, 0x81, 0x1b, 0xe4, 0xcc, 0x15, 0x05, 0x8a, 0x6f, 0x5b, 0x68, 0x33, 0x03, 0xb8, 0x0c, 0x90, 0xc9, 0x4a, 0x83, 0xb8, 0xb1, 0x58, 0x69, 0x71, 0x3a, 0x66, 0xb1, 0xe0, 0xf6, 0x56, 0x33, 0x1b, 0x28, 0x6d, 0x1e, 0xf7, 0x69, 0x88, 0x34, 0xab, 0x3e, 0x13, 0x84, 0x17, 0xaa, 0xd6, 0xbb, 0x3a, 0xb3, 0xbd, 0x9f, 0xc7, 0x87, 0x61, 0xa4, 0x82, 0xdf, 0xc6, 0x54, 0xf3, 0xf8, 0x62, 0x8c, 0x8d, 0x9f, 0xc1, 0x60, 0x18, 0x89, 0x8f, 0x16, 0x41, 0xe8, 0x62, 0x2b, 0xd2, 0x72, 0xe3, 0x8d, 0x41, 0x70, 0x6c, 0xb9, 0xce, 0xbe, 0x6e, 0xe5, 0xe1, 0x73, 0x57, 0x6b, 0xf6, 0x1b, 0xb1, 0x18, 0x8c, 0xf2, 0xf3, 0x9c, 0x62, 0x22, 0x0b, 0xba, 0x88, 0xfc, 0xb4, 0xde, 0x48, 0x98, 0xb2, 0x5b, 0x04, };
6094 static const u8 ed25519_265_test_vectors_expected_sig[] = {
6095 	0x64, 0xb5, 0x98, 0xca, 0x5b, 0x8f, 0x9a, 0xe7, 0x42, 0xe4, 0x6e, 0xe0, 0xd8, 0xc1, 0xaa, 0xf3, 0x14, 0x58, 0xb5, 0x0c, 0x25, 0xd2, 0x67, 0xa6, 0x77, 0xe4, 0x4b, 0xe5, 0xb7, 0x55, 0xf1, 0x4d, 0x51, 0x80, 0x1a, 0x30, 0x39, 0x9b, 0xfc, 0xc3, 0x8d, 0x14, 0x07, 0x1a, 0xa0, 0xae, 0x93, 0xda, 0x82, 0x5a, 0x58, 0x1a, 0xb6, 0xc2, 0x07, 0x25, 0xa0, 0xa9, 0x10, 0xb4, 0x73, 0x5d, 0xfa, 0x0b, };
6096 static const ec_test_case ed25519_265_test_case = {
6097 	.name = "EDDSA25519-SHA512/wei25519 265",
6098 	.ec_str_p = &wei25519_str_params,
6099 	.priv_key = ed25519_265_test_vectors_priv_key,
6100 	.priv_key_len = sizeof(ed25519_265_test_vectors_priv_key),
6101 	.nn_random = NULL,
6102 	.hash_type = SHA512,
6103 	.msg = (const char *)ed25519_265_test_vectors_message,
6104 	.msglen = sizeof(ed25519_265_test_vectors_message),
6105 	.sig_type = EDDSA25519,
6106 	.exp_sig = ed25519_265_test_vectors_expected_sig,
6107 	.exp_siglen = sizeof(ed25519_265_test_vectors_expected_sig),
6108 	.adata = NULL,
6109 	.adata_len = 0
6110 };
6111 
6112 /************************************************/
6113 static const u8 ed25519_266_test_vectors_priv_key[] = {
6114 	0x10, 0x44, 0xee, 0x37, 0x08, 0xc0, 0xb0, 0xe9, 0x09, 0xa8, 0xcb, 0x2b, 0xa2, 0xcd, 0x0a, 0xf8, 0xd2, 0x8a, 0x5d, 0xe0, 0x1d, 0x96, 0x2e, 0x82, 0x60, 0x87, 0xfb, 0x23, 0x2d, 0xf7, 0xb2, 0xd2, };
6115 static const u8 ed25519_266_test_vectors_message[] = {
6116 	0xb8, 0xa4, 0x45, 0x45, 0x5f, 0xb6, 0x6e, 0x17, 0xe3, 0x14, 0x3d, 0x35, 0x20, 0x4c, 0x9e, 0xa9, 0x34, 0x74, 0xee, 0xbe, 0xef, 0x93, 0x96, 0x3e, 0xe5, 0xc1, 0xd3, 0x77, 0xca, 0x21, 0x7a, 0xcd, 0x4c, 0xa6, 0x3e, 0x57, 0x55, 0xda, 0x08, 0xfb, 0xff, 0xdb, 0xd4, 0x35, 0x2b, 0xf1, 0x65, 0x19, 0x38, 0x96, 0xc8, 0xd6, 0xf7, 0x6b, 0xb4, 0xcd, 0x3b, 0xc2, 0xd3, 0xa4, 0x76, 0xa4, 0xe3, 0x20, 0x82, 0x4a, 0x12, 0x10, 0xce, 0x74, 0xd0, 0x01, 0x4d, 0x74, 0x7f, 0x11, 0x1e, 0xec, 0x31, 0x0c, 0x5c, 0x89, 0xed, 0x4d, 0x08, 0x50, 0xe8, 0x11, 0xf8, 0x0a, 0x8b, 0xb2, 0x8d, 0xca, 0xf6, 0xf4, 0x11, 0xdf, 0x83, 0xe2, 0xc1, 0xdf, 0xd9, 0x0c, 0x4a, 0xd2, 0x35, 0x61, 0x45, 0x4e, 0xb5, 0xd7, 0x56, 0xb6, 0x3b, 0x4e, 0xa7, 0xf3, 0x7d, 0xc5, 0xd4, 0x66, 0xc1, 0x6e, 0xf7, 0x0d, 0x11, 0x19, 0x0c, 0x4f, 0x53, 0x16, 0xfe, 0x2a, 0xa8, 0x59, 0x74, 0x40, 0xe8, 0x8b, 0xbe, 0xba, 0xeb, 0x35, 0xea, 0x5f, 0x04, 0xf0, 0x7b, 0x03, 0x39, 0x26, 0x41, 0x58, 0xef, 0x90, 0x9a, 0xd5, 0x16, 0x3b, 0xfc, 0x24, 0x8c, 0xd7, 0x24, 0x13, 0x3e, 0x27, 0x4f, 0x81, 0x26, 0x95, 0xf2, 0x90, 0xe5, 0x71, 0x76, 0xa9, 0x6b, 0x93, 0x93, 0xd0, 0x7b, 0xb3, 0x10, 0x29, 0x9f, 0x5d, 0x2a, 0x6b, 0x6d, 0xd1, 0xda, 0xbc, 0xb5, 0x1b, 0xf2, 0x9c, 0x5a, 0xfa, 0x7e, 0xbb, 0x07, 0x01, 0xc6, 0xc8, 0x47, 0x67, 0xac, 0x13, 0x77, 0x93, 0x09, 0x1f, 0xe0, 0xed, 0x6e, 0x47, 0xd7, 0x80, 0x62, 0x8a, 0x32, 0xc8, 0x4f, 0x83, 0xe0, 0x0e, 0x9c, 0x16, 0x74, 0x2a, 0x52, 0x3e, 0xcb, 0x63, 0xc2, 0x4f, 0x4a, 0x33, 0x8e, 0xd2, 0x99, 0xa0, 0x61, 0x94, 0x92, 0x4f, 0x44, 0xc5, 0xa5, 0xd3, 0xc9, 0x37, 0xff, 0x9b, 0x09, 0x45, 0x98, 0x2a, 0xd2, 0x4a, 0x2d, 0x1c, 0x79, };
6117 static const u8 ed25519_266_test_vectors_expected_sig[] = {
6118 	0x7d, 0x6b, 0xed, 0x7f, 0x87, 0xd0, 0x90, 0xab, 0xe0, 0x13, 0xc3, 0x1e, 0x12, 0x03, 0x90, 0x3b, 0xac, 0x9c, 0x93, 0x44, 0x5d, 0x06, 0xc7, 0xb5, 0x3d, 0x31, 0xd1, 0x5f, 0x97, 0x0d, 0x88, 0x64, 0x7a, 0x7e, 0xd2, 0xc3, 0xa6, 0x30, 0x50, 0xba, 0x19, 0xd6, 0x80, 0x43, 0xaa, 0xdd, 0x18, 0xbd, 0x86, 0x1d, 0xe1, 0xac, 0x47, 0x15, 0xb8, 0xe8, 0x28, 0xb2, 0xb1, 0x6f, 0x8a, 0x92, 0xb0, 0x01, };
6119 static const ec_test_case ed25519_266_test_case = {
6120 	.name = "EDDSA25519-SHA512/wei25519 266",
6121 	.ec_str_p = &wei25519_str_params,
6122 	.priv_key = ed25519_266_test_vectors_priv_key,
6123 	.priv_key_len = sizeof(ed25519_266_test_vectors_priv_key),
6124 	.nn_random = NULL,
6125 	.hash_type = SHA512,
6126 	.msg = (const char *)ed25519_266_test_vectors_message,
6127 	.msglen = sizeof(ed25519_266_test_vectors_message),
6128 	.sig_type = EDDSA25519,
6129 	.exp_sig = ed25519_266_test_vectors_expected_sig,
6130 	.exp_siglen = sizeof(ed25519_266_test_vectors_expected_sig),
6131 	.adata = NULL,
6132 	.adata_len = 0
6133 };
6134 
6135 /************************************************/
6136 static const u8 ed25519_267_test_vectors_priv_key[] = {
6137 	0x95, 0xdd, 0x1a, 0x5e, 0x65, 0x8f, 0xa6, 0xc8, 0xd4, 0x25, 0x07, 0xb3, 0xe5, 0xb8, 0xed, 0xb5, 0xba, 0xec, 0xa6, 0x2d, 0xeb, 0x00, 0xfc, 0x5d, 0x4d, 0xca, 0x8e, 0x1a, 0xb5, 0x83, 0x5e, 0x59, };
6138 static const u8 ed25519_267_test_vectors_message[] = {
6139 	0x9b, 0x7a, 0xfd, 0x48, 0xc4, 0x74, 0x60, 0x4c, 0x26, 0x36, 0x75, 0x31, 0x55, 0x68, 0x40, 0xc3, 0x88, 0x66, 0x8b, 0x0f, 0x38, 0x40, 0x06, 0x3d, 0xfc, 0x98, 0x69, 0xad, 0x5b, 0x90, 0x12, 0x74, 0xb9, 0x31, 0x29, 0x3d, 0x04, 0xf3, 0xc8, 0xe8, 0xf7, 0xf8, 0xea, 0xb8, 0x15, 0xa6, 0x41, 0xd7, 0xc3, 0x51, 0x28, 0x4e, 0x8b, 0xb0, 0x43, 0x7a, 0xc5, 0x51, 0xbb, 0x29, 0x43, 0x89, 0x64, 0xe6, 0xa7, 0xc7, 0xba, 0x77, 0x23, 0x44, 0xb3, 0x33, 0xf9, 0xed, 0xa5, 0xa7, 0x75, 0x68, 0xc8, 0x93, 0x1d, 0xdc, 0xaf, 0x21, 0xe3, 0x2e, 0x07, 0xb1, 0x0b, 0xf4, 0x82, 0x0f, 0xb8, 0x59, 0xbc, 0xf8, 0x7b, 0x81, 0xc4, 0xbf, 0xf4, 0x26, 0xf2, 0x4a, 0x4d, 0x46, 0x8f, 0x2e, 0x9a, 0xed, 0xa8, 0xf1, 0x7d, 0x93, 0x97, 0x09, 0x97, 0x0d, 0xb1, 0x1d, 0xf7, 0x62, 0x47, 0xe9, 0x8a, 0x39, 0xeb, 0x8b, 0x38, 0xf5, 0x94, 0x9f, 0x34, 0x9f, 0x2a, 0xe0, 0x5a, 0xb4, 0x8c, 0x01, 0x85, 0x17, 0xc4, 0x8f, 0xa0, 0x20, 0x5d, 0xc7, 0xf1, 0x56, 0x64, 0x53, 0xe1, 0x05, 0xe4, 0x8c, 0x52, 0xeb, 0x45, 0x5c, 0x0c, 0x40, 0x80, 0x2f, 0x79, 0x7b, 0x3e, 0xef, 0xb1, 0xe2, 0xf3, 0xb1, 0xf8, 0x43, 0x15, 0xae, 0xd5, 0xb0, 0x71, 0x1c, 0x64, 0x99, 0xa6, 0x91, 0xb7, 0x4b, 0x91, 0xf1, 0x2e, 0xf7, 0x0f, 0x76, 0xc4, 0xc0, 0x5c, 0x1a, 0xa1, 0xa9, 0x93, 0xe2, 0xf3, 0xe5, 0x28, 0xab, 0x34, 0x3d, 0xd2, 0x36, 0x81, 0x62, 0xf4, 0x03, 0x6a, 0x61, 0xa1, 0x3a, 0x88, 0x04, 0x5d, 0xcd, 0xef, 0xa8, 0x5d, 0x68, 0x53, 0x22, 0x75, 0xbc, 0xf5, 0xb8, 0xf5, 0xf0, 0x0e, 0xfd, 0xea, 0x99, 0x9a, 0x95, 0x78, 0x31, 0x75, 0xd9, 0xee, 0x95, 0xa9, 0x25, 0xd4, 0x8a, 0x54, 0x49, 0x34, 0xd8, 0xc6, 0xb2, 0x62, 0x22, 0x5b, 0x6e, 0xbe, 0xa3, 0x54, 0x15, 0xdd, 0x44, 0xdf, 0x1f, };
6140 static const u8 ed25519_267_test_vectors_expected_sig[] = {
6141 	0xd0, 0x2a, 0x75, 0x23, 0xdc, 0xbd, 0x29, 0x57, 0x6b, 0xa8, 0x09, 0xb5, 0x31, 0x03, 0x77, 0x74, 0xdf, 0x41, 0x73, 0x4a, 0x41, 0x17, 0x58, 0x13, 0x11, 0x9c, 0x6a, 0x6a, 0x78, 0x8c, 0xd9, 0xb8, 0xad, 0x78, 0x08, 0x65, 0x67, 0x86, 0x67, 0x69, 0x9a, 0xe6, 0x6d, 0x01, 0x09, 0x19, 0xa9, 0x66, 0xa0, 0x51, 0xc0, 0x81, 0x63, 0xdf, 0x67, 0xa9, 0x77, 0xee, 0x6e, 0x22, 0x0d, 0x0d, 0xc3, 0x0f, };
6142 static const ec_test_case ed25519_267_test_case = {
6143 	.name = "EDDSA25519-SHA512/wei25519 267",
6144 	.ec_str_p = &wei25519_str_params,
6145 	.priv_key = ed25519_267_test_vectors_priv_key,
6146 	.priv_key_len = sizeof(ed25519_267_test_vectors_priv_key),
6147 	.nn_random = NULL,
6148 	.hash_type = SHA512,
6149 	.msg = (const char *)ed25519_267_test_vectors_message,
6150 	.msglen = sizeof(ed25519_267_test_vectors_message),
6151 	.sig_type = EDDSA25519,
6152 	.exp_sig = ed25519_267_test_vectors_expected_sig,
6153 	.exp_siglen = sizeof(ed25519_267_test_vectors_expected_sig),
6154 	.adata = NULL,
6155 	.adata_len = 0
6156 };
6157 
6158 /************************************************/
6159 static const u8 ed25519_268_test_vectors_priv_key[] = {
6160 	0x1a, 0xbc, 0x0b, 0x9a, 0xa0, 0x1d, 0xc5, 0x7c, 0xa5, 0x3e, 0xfe, 0x73, 0x80, 0x96, 0x2b, 0x1a, 0x88, 0xd5, 0x0a, 0x96, 0x4f, 0x5c, 0xd9, 0x86, 0x40, 0x98, 0x2c, 0x74, 0x39, 0x3f, 0x29, 0x26, };
6161 static const u8 ed25519_268_test_vectors_message[] = {
6162 	0xda, 0x2d, 0xd9, 0x40, 0xd5, 0xe1, 0xdb, 0x6e, 0x80, 0xbf, 0x7e, 0x2b, 0x78, 0x2e, 0x7e, 0x74, 0x5c, 0xd4, 0xfd, 0x25, 0x2e, 0x98, 0x15, 0x17, 0x97, 0x58, 0x87, 0xdd, 0x05, 0xac, 0x77, 0xed, 0x83, 0x7d, 0x08, 0x29, 0x61, 0x57, 0x5e, 0xfe, 0xdf, 0x30, 0x1f, 0xdf, 0x24, 0xb7, 0x07, 0x18, 0xb9, 0x91, 0xb8, 0xd9, 0x2b, 0xdd, 0x2e, 0x6b, 0xee, 0x17, 0xc8, 0xaa, 0x4b, 0xc6, 0x94, 0xa7, 0x27, 0xbc, 0xfc, 0x78, 0xfd, 0x85, 0x19, 0x5c, 0x42, 0xca, 0xf8, 0x83, 0xa2, 0xc3, 0x8d, 0x16, 0x1c, 0xad, 0xd7, 0x9c, 0xfd, 0xa9, 0xa3, 0x91, 0x10, 0xe1, 0x26, 0x4d, 0x30, 0xbd, 0x4c, 0x5c, 0x4a, 0x58, 0x76, 0x77, 0x7f, 0x23, 0x3b, 0x07, 0x1b, 0x1b, 0x0b, 0x40, 0x89, 0x35, 0xf0, 0x46, 0x89, 0x54, 0xcc, 0x74, 0x4a, 0xf8, 0x06, 0x3b, 0x00, 0x4e, 0xde, 0x56, 0xcd, 0x98, 0x1c, 0x4d, 0xd5, 0x60, 0x8a, 0xbf, 0xfe, 0xae, 0xc9, 0xe5, 0x8f, 0x3f, 0xaf, 0xaa, 0x67, 0x14, 0x67, 0x80, 0x4b, 0x7f, 0xa2, 0x55, 0x8f, 0x4f, 0x95, 0x17, 0x42, 0x01, 0xf1, 0x83, 0xd8, 0x0a, 0x59, 0x14, 0x06, 0x5f, 0xed, 0x53, 0x11, 0x5b, 0x41, 0xeb, 0xc3, 0x38, 0xf7, 0x8d, 0xf0, 0x50, 0x05, 0x3b, 0x8a, 0x4e, 0x75, 0xea, 0x7c, 0x6f, 0xdc, 0x35, 0x4d, 0xad, 0x27, 0xbf, 0xd8, 0xa2, 0xe6, 0x6f, 0xcd, 0x7a, 0xe2, 0xf5, 0x87, 0xd2, 0x4b, 0xe0, 0xd4, 0xa3, 0x3d, 0xa3, 0x0a, 0x22, 0x0e, 0x51, 0xbc, 0x05, 0xfa, 0x4e, 0x41, 0x2b, 0x95, 0x9f, 0xd9, 0x5d, 0x89, 0xea, 0x6e, 0xc0, 0x16, 0x25, 0x16, 0xc0, 0x96, 0xa9, 0x43, 0x3a, 0x9e, 0x7c, 0xf5, 0x99, 0xc9, 0x28, 0xbd, 0x53, 0x05, 0xc2, 0x17, 0x3b, 0xf7, 0x49, 0x3e, 0xd0, 0xc1, 0xc6, 0x03, 0xcd, 0x03, 0xf0, 0x82, 0xcc, 0xe4, 0x42, 0x37, 0xa7, 0x9f, 0xfd, 0x8b, 0xe9, 0xa6, 0x72, 0xc2, 0xeb, 0xaa, };
6163 static const u8 ed25519_268_test_vectors_expected_sig[] = {
6164 	0xf7, 0x38, 0xaf, 0x2d, 0x3e, 0x29, 0x0b, 0x3d, 0x23, 0xd9, 0xaf, 0xf7, 0x41, 0x4b, 0xfc, 0x5f, 0xfa, 0x47, 0x23, 0x5d, 0xc0, 0x53, 0x68, 0x7a, 0x8b, 0xa5, 0xc8, 0x54, 0x1b, 0x85, 0x11, 0xf7, 0x81, 0x56, 0x6c, 0xda, 0xa1, 0x30, 0xe0, 0x67, 0x7d, 0xb5, 0x5f, 0xa8, 0xbe, 0x9d, 0x81, 0xa0, 0x92, 0xcb, 0x58, 0x92, 0x3a, 0x86, 0x28, 0x49, 0x4d, 0x2f, 0x62, 0xd9, 0x5c, 0x16, 0x71, 0x00, };
6165 static const ec_test_case ed25519_268_test_case = {
6166 	.name = "EDDSA25519-SHA512/wei25519 268",
6167 	.ec_str_p = &wei25519_str_params,
6168 	.priv_key = ed25519_268_test_vectors_priv_key,
6169 	.priv_key_len = sizeof(ed25519_268_test_vectors_priv_key),
6170 	.nn_random = NULL,
6171 	.hash_type = SHA512,
6172 	.msg = (const char *)ed25519_268_test_vectors_message,
6173 	.msglen = sizeof(ed25519_268_test_vectors_message),
6174 	.sig_type = EDDSA25519,
6175 	.exp_sig = ed25519_268_test_vectors_expected_sig,
6176 	.exp_siglen = sizeof(ed25519_268_test_vectors_expected_sig),
6177 	.adata = NULL,
6178 	.adata_len = 0
6179 };
6180 
6181 /************************************************/
6182 static const u8 ed25519_269_test_vectors_priv_key[] = {
6183 	0xcb, 0xff, 0xce, 0x2c, 0x9b, 0xd3, 0xe2, 0x3e, 0x40, 0x6e, 0x5f, 0x66, 0xe6, 0x32, 0xdc, 0xfa, 0x72, 0x66, 0x54, 0xd2, 0x9a, 0x95, 0x5c, 0xec, 0x98, 0x31, 0x73, 0x23, 0x5f, 0xa3, 0x59, 0xd0, };
6184 static const u8 ed25519_269_test_vectors_message[] = {
6185 	0x1f, 0xfd, 0xe6, 0x82, 0x6e, 0x4f, 0x0c, 0x24, 0xa7, 0x96, 0x1f, 0x19, 0x1e, 0x74, 0xcc, 0x0b, 0xbc, 0x92, 0x8e, 0x3f, 0x1a, 0xec, 0x3e, 0xfa, 0xb3, 0x27, 0x65, 0xc2, 0x50, 0x1c, 0xbc, 0x16, 0x20, 0xe7, 0xee, 0x6f, 0x61, 0xfc, 0xcf, 0xb0, 0x0c, 0xfc, 0xa9, 0xfb, 0x98, 0x14, 0x3b, 0x52, 0x9b, 0xcc, 0x8c, 0x3d, 0x0f, 0xdf, 0x89, 0xee, 0x7c, 0x34, 0x2f, 0x10, 0x18, 0x15, 0xfa, 0xbf, 0x7d, 0xea, 0xf9, 0xf3, 0x02, 0xa2, 0x88, 0xfe, 0x17, 0x58, 0x26, 0xd5, 0x90, 0xd9, 0x9e, 0xe6, 0xfd, 0x92, 0xda, 0x74, 0xf9, 0x59, 0x6b, 0x78, 0x3c, 0x0e, 0x7d, 0x47, 0xd7, 0x11, 0xa3, 0x2f, 0x39, 0xea, 0x41, 0x65, 0xe5, 0x21, 0x24, 0x31, 0x44, 0x1b, 0x49, 0x8c, 0x6b, 0x70, 0xdb, 0x3b, 0x09, 0xd1, 0xf4, 0xe4, 0xa1, 0x4a, 0x6b, 0xae, 0x39, 0xda, 0x50, 0x88, 0xbb, 0x85, 0xb3, 0x28, 0x5c, 0xe9, 0xdf, 0x2f, 0x90, 0x68, 0x1a, 0xf2, 0xc7, 0x4d, 0xec, 0xe4, 0x39, 0xae, 0xb9, 0x1e, 0x1c, 0x1b, 0x07, 0x12, 0xed, 0xdb, 0xee, 0x8d, 0x72, 0x56, 0x98, 0x28, 0xf3, 0x7c, 0xb7, 0x20, 0xc5, 0x09, 0xd0, 0x2a, 0xec, 0x47, 0x60, 0x70, 0x48, 0x4e, 0x9b, 0x16, 0xec, 0x71, 0x79, 0x94, 0x7a, 0xc9, 0x6c, 0xaf, 0x0e, 0x1b, 0xe8, 0xb6, 0xb7, 0x4f, 0x37, 0x2d, 0x72, 0x35, 0xfe, 0x6e, 0x39, 0x99, 0xdf, 0x73, 0x3b, 0xcc, 0xd4, 0x82, 0xdf, 0xe2, 0xe6, 0x31, 0xf5, 0x6b, 0x58, 0x26, 0x67, 0xdc, 0xe5, 0xe3, 0x12, 0x17, 0x63, 0xad, 0xfa, 0xcf, 0x3b, 0x18, 0xcf, 0x20, 0x95, 0xf7, 0x39, 0x4d, 0xee, 0x49, 0x27, 0xfc, 0x2b, 0xea, 0x6b, 0x58, 0x24, 0xd9, 0x0c, 0xd5, 0x9e, 0x85, 0x4e, 0xc5, 0x87, 0x2b, 0x45, 0x51, 0xb0, 0x2e, 0xfa, 0xba, 0x5a, 0xd5, 0x4a, 0x9b, 0x7a, 0x8f, 0x6d, 0xe5, 0xd7, 0xcd, 0xa5, 0x82, 0x5b, 0x32, 0x5b, 0x07, 0x6d, 0xed, };
6186 static const u8 ed25519_269_test_vectors_expected_sig[] = {
6187 	0xe7, 0xce, 0xd4, 0xfa, 0x2a, 0x7d, 0xff, 0x73, 0xf1, 0x06, 0x8b, 0xba, 0xd0, 0xec, 0x9a, 0x11, 0x09, 0x04, 0x3c, 0x97, 0xa6, 0x2e, 0xff, 0xa1, 0x48, 0x87, 0x6f, 0x09, 0x69, 0xed, 0x4d, 0xc6, 0x08, 0xe2, 0x8b, 0xce, 0x79, 0x7a, 0xf3, 0xb8, 0x25, 0x32, 0xc9, 0x4d, 0xec, 0x4d, 0x68, 0x11, 0xb7, 0xf5, 0x63, 0x67, 0x91, 0x29, 0xfa, 0xcf, 0x17, 0xbb, 0x73, 0xd6, 0x93, 0x75, 0xeb, 0x05, };
6188 static const ec_test_case ed25519_269_test_case = {
6189 	.name = "EDDSA25519-SHA512/wei25519 269",
6190 	.ec_str_p = &wei25519_str_params,
6191 	.priv_key = ed25519_269_test_vectors_priv_key,
6192 	.priv_key_len = sizeof(ed25519_269_test_vectors_priv_key),
6193 	.nn_random = NULL,
6194 	.hash_type = SHA512,
6195 	.msg = (const char *)ed25519_269_test_vectors_message,
6196 	.msglen = sizeof(ed25519_269_test_vectors_message),
6197 	.sig_type = EDDSA25519,
6198 	.exp_sig = ed25519_269_test_vectors_expected_sig,
6199 	.exp_siglen = sizeof(ed25519_269_test_vectors_expected_sig),
6200 	.adata = NULL,
6201 	.adata_len = 0
6202 };
6203 
6204 /************************************************/
6205 static const u8 ed25519_270_test_vectors_priv_key[] = {
6206 	0x9f, 0x91, 0x23, 0x14, 0x97, 0x48, 0x4c, 0xab, 0x39, 0xb9, 0xe2, 0x0f, 0x86, 0x11, 0x81, 0xd3, 0x97, 0x90, 0x85, 0x77, 0xbb, 0xb2, 0x96, 0x82, 0x42, 0xd0, 0x71, 0xbc, 0xa4, 0x81, 0x3f, 0xfb, };
6207 static const u8 ed25519_270_test_vectors_message[] = {
6208 	0x21, 0xd4, 0xfb, 0xc9, 0x81, 0x63, 0xc3, 0xfb, 0x6e, 0x09, 0xf7, 0x75, 0xc2, 0xab, 0x7b, 0x18, 0xb1, 0x87, 0x92, 0x34, 0x0b, 0xaf, 0xed, 0xac, 0xb4, 0x96, 0x05, 0x62, 0x2e, 0x3c, 0x08, 0xaa, 0x3b, 0x2b, 0x8d, 0x0e, 0x09, 0x02, 0xf3, 0x61, 0xaa, 0x1c, 0x0f, 0x65, 0x2e, 0x27, 0x32, 0xb1, 0x0a, 0x0c, 0x5c, 0x6a, 0x05, 0x09, 0x89, 0x96, 0xb5, 0x88, 0x26, 0x7c, 0xc8, 0x95, 0x1a, 0x78, 0xb5, 0xd4, 0x31, 0xe7, 0x22, 0x2b, 0xbb, 0x50, 0x8e, 0xee, 0xf1, 0xb5, 0xe8, 0xb8, 0xd0, 0x1d, 0x39, 0x91, 0xe1, 0x8d, 0xdd, 0xc6, 0xca, 0x8d, 0x22, 0x2e, 0xf1, 0x77, 0xce, 0x62, 0x93, 0x8d, 0x18, 0x10, 0xee, 0xcf, 0x06, 0xf4, 0x73, 0x8b, 0x28, 0xf4, 0x40, 0x94, 0x6c, 0xca, 0xd2, 0xa1, 0x2e, 0x39, 0xd3, 0x86, 0x11, 0xbe, 0xd3, 0xa3, 0x9f, 0x93, 0x41, 0x9a, 0x17, 0x9e, 0xc2, 0xb1, 0xb5, 0x2d, 0x5f, 0xe5, 0xc8, 0x0c, 0x23, 0xb8, 0x4d, 0x88, 0x03, 0x75, 0x5f, 0x51, 0x46, 0x09, 0x2c, 0xc1, 0x99, 0xb4, 0xbd, 0xce, 0xa5, 0xbc, 0xf2, 0x03, 0x7b, 0xd5, 0x3f, 0xf6, 0x34, 0x66, 0x94, 0x15, 0x5f, 0x02, 0x7d, 0x8c, 0xe2, 0xba, 0xff, 0xe3, 0x0a, 0x56, 0x66, 0x59, 0x6c, 0x00, 0x78, 0x3a, 0xae, 0xad, 0xe9, 0xc7, 0x7f, 0xc8, 0x63, 0x79, 0x42, 0xec, 0xe0, 0x17, 0xd6, 0x48, 0x4c, 0x28, 0x99, 0xb1, 0x91, 0x8d, 0x3a, 0x48, 0x0b, 0xd5, 0x15, 0x76, 0x78, 0xd4, 0x77, 0x2d, 0x27, 0x1f, 0x9b, 0x99, 0x76, 0x8e, 0xe1, 0xbc, 0xc4, 0x6b, 0x24, 0x89, 0xae, 0x87, 0xcd, 0x03, 0x0f, 0x47, 0xd1, 0x33, 0x3c, 0x76, 0x72, 0xcb, 0x90, 0x2c, 0xb4, 0xf5, 0xfe, 0x74, 0x6e, 0x85, 0x3d, 0xe5, 0x79, 0x40, 0xba, 0x22, 0x64, 0xd3, 0xe6, 0x29, 0x64, 0x4d, 0x65, 0x3a, 0x5b, 0x7a, 0xf7, 0x8c, 0xe6, 0x4a, 0x99, 0x3f, 0x36, 0x25, 0x0f, 0x8c, 0xb7, 0xcb, 0x45, };
6209 static const u8 ed25519_270_test_vectors_expected_sig[] = {
6210 	0x0a, 0x1c, 0x70, 0x6d, 0xd8, 0xa1, 0x30, 0x77, 0xab, 0x18, 0x38, 0x6c, 0x65, 0xfa, 0x97, 0xcf, 0x9d, 0xfc, 0x43, 0x54, 0x2d, 0x18, 0x46, 0xec, 0xbd, 0xde, 0xb7, 0xb3, 0xc9, 0x3f, 0x3c, 0x66, 0xf3, 0xcc, 0xd0, 0x44, 0x7a, 0xac, 0xdd, 0x4d, 0xad, 0x8f, 0xbf, 0x73, 0x6c, 0x4f, 0xf9, 0xdb, 0xdb, 0x62, 0xbf, 0xc1, 0x4d, 0x88, 0x83, 0xe3, 0x85, 0xbc, 0xe9, 0xba, 0xc5, 0x6a, 0x35, 0x0c, };
6211 static const ec_test_case ed25519_270_test_case = {
6212 	.name = "EDDSA25519-SHA512/wei25519 270",
6213 	.ec_str_p = &wei25519_str_params,
6214 	.priv_key = ed25519_270_test_vectors_priv_key,
6215 	.priv_key_len = sizeof(ed25519_270_test_vectors_priv_key),
6216 	.nn_random = NULL,
6217 	.hash_type = SHA512,
6218 	.msg = (const char *)ed25519_270_test_vectors_message,
6219 	.msglen = sizeof(ed25519_270_test_vectors_message),
6220 	.sig_type = EDDSA25519,
6221 	.exp_sig = ed25519_270_test_vectors_expected_sig,
6222 	.exp_siglen = sizeof(ed25519_270_test_vectors_expected_sig),
6223 	.adata = NULL,
6224 	.adata_len = 0
6225 };
6226 
6227 /************************************************/
6228 static const u8 ed25519_271_test_vectors_priv_key[] = {
6229 	0x1e, 0x2b, 0xd5, 0x48, 0x7c, 0x5f, 0x5c, 0xed, 0x46, 0x1f, 0x60, 0x4d, 0xcc, 0xb4, 0xe7, 0x8e, 0xb9, 0x16, 0x08, 0xf0, 0xb8, 0x21, 0xf5, 0xaf, 0xc4, 0xe3, 0xe5, 0x34, 0xf7, 0x96, 0x03, 0x92, };
6230 static const u8 ed25519_271_test_vectors_message[] = {
6231 	0x1d, 0xbb, 0xbb, 0x13, 0xcd, 0xad, 0x88, 0x85, 0x4b, 0x80, 0x9c, 0xed, 0xed, 0x27, 0x33, 0x43, 0xd3, 0x06, 0xa8, 0xde, 0xab, 0xf3, 0xff, 0x02, 0xc9, 0xce, 0xc6, 0xf0, 0x02, 0xb8, 0xe9, 0xe1, 0x0e, 0xf5, 0xd1, 0xb0, 0xf5, 0x71, 0x1f, 0x33, 0x26, 0x7a, 0xa9, 0x1c, 0x17, 0x1b, 0x61, 0xe9, 0x60, 0xf7, 0x40, 0x45, 0x7b, 0x81, 0xd7, 0x51, 0xa4, 0x73, 0xf4, 0x4f, 0x75, 0x0a, 0x08, 0x0c, 0xab, 0x80, 0xaf, 0x7c, 0xcc, 0xa7, 0xdf, 0xfc, 0xfa, 0xc9, 0xee, 0x4c, 0x39, 0xdc, 0x85, 0xcb, 0xdf, 0x51, 0x25, 0x9c, 0xcd, 0x34, 0x70, 0xd9, 0xba, 0xd3, 0xad, 0x30, 0xf4, 0xee, 0x5d, 0xbd, 0x4f, 0xac, 0x6b, 0xd5, 0xc6, 0xc4, 0xdf, 0x73, 0x11, 0xa4, 0x70, 0x04, 0x46, 0x95, 0xa7, 0xe1, 0xa7, 0xe1, 0x85, 0x72, 0x20, 0x75, 0x88, 0xaf, 0xa5, 0x7e, 0xeb, 0xcd, 0x4d, 0x57, 0x5b, 0x6d, 0x42, 0x44, 0x57, 0xee, 0x92, 0x46, 0x5c, 0xe1, 0x86, 0x3e, 0x3c, 0x67, 0x7c, 0xf8, 0x75, 0xfd, 0xb9, 0x8d, 0x40, 0x78, 0xeb, 0xe7, 0x14, 0x42, 0x60, 0x80, 0x70, 0x52, 0x57, 0x71, 0x44, 0xcb, 0x8e, 0x03, 0x59, 0xaa, 0x42, 0xad, 0x15, 0x5d, 0x79, 0xda, 0xe3, 0xde, 0xb9, 0x9c, 0x46, 0x32, 0xc1, 0x91, 0xc7, 0x99, 0xcb, 0xfe, 0x58, 0x7d, 0x95, 0x47, 0x87, 0x06, 0x8d, 0x66, 0x3b, 0xdf, 0xc0, 0xfa, 0xb1, 0x33, 0x4f, 0x18, 0x76, 0xbf, 0x49, 0x8c, 0x4d, 0xb5, 0xc5, 0x3d, 0xb7, 0xb0, 0x20, 0x4e, 0xd5, 0xa5, 0x21, 0xc6, 0x2f, 0x09, 0xea, 0xca, 0x8d, 0x01, 0x89, 0xf3, 0xb3, 0x94, 0x14, 0x3f, 0x29, 0xc4, 0x21, 0xcb, 0x5c, 0x8d, 0x07, 0xbd, 0x75, 0x1b, 0xaf, 0x4c, 0xbe, 0x3b, 0xf4, 0xbe, 0x17, 0x01, 0xdf, 0x4b, 0x22, 0x07, 0xdf, 0xb2, 0x90, 0x4d, 0x84, 0xf4, 0xdb, 0xda, 0x51, 0xcb, 0xa5, 0x76, 0xd5, 0xa5, 0xbb, 0x16, 0xef, 0xe6, 0x98, 0xed, 0xd6, 0x08, };
6232 static const u8 ed25519_271_test_vectors_expected_sig[] = {
6233 	0x4d, 0x33, 0xc9, 0x6a, 0x2e, 0x3a, 0x5d, 0xb7, 0x39, 0x1a, 0xdf, 0x65, 0xc1, 0xcc, 0x35, 0x65, 0xfe, 0x76, 0xee, 0xaf, 0xd0, 0xb5, 0xc7, 0xab, 0xb0, 0xb4, 0x92, 0xa0, 0xb5, 0x1e, 0x1f, 0xa3, 0x36, 0x39, 0x94, 0x6a, 0x24, 0x3b, 0x2d, 0xde, 0xf3, 0x57, 0x55, 0x22, 0x98, 0xce, 0x0a, 0xa9, 0x5e, 0xac, 0x6f, 0xbf, 0xe6, 0x60, 0x98, 0x82, 0x71, 0x87, 0x7e, 0xb2, 0xa7, 0xda, 0x18, 0x06, };
6234 static const ec_test_case ed25519_271_test_case = {
6235 	.name = "EDDSA25519-SHA512/wei25519 271",
6236 	.ec_str_p = &wei25519_str_params,
6237 	.priv_key = ed25519_271_test_vectors_priv_key,
6238 	.priv_key_len = sizeof(ed25519_271_test_vectors_priv_key),
6239 	.nn_random = NULL,
6240 	.hash_type = SHA512,
6241 	.msg = (const char *)ed25519_271_test_vectors_message,
6242 	.msglen = sizeof(ed25519_271_test_vectors_message),
6243 	.sig_type = EDDSA25519,
6244 	.exp_sig = ed25519_271_test_vectors_expected_sig,
6245 	.exp_siglen = sizeof(ed25519_271_test_vectors_expected_sig),
6246 	.adata = NULL,
6247 	.adata_len = 0
6248 };
6249 
6250 /************************************************/
6251 static const u8 ed25519_272_test_vectors_priv_key[] = {
6252 	0xf7, 0x8d, 0xb1, 0x4d, 0x6d, 0x1a, 0x64, 0x3d, 0xd7, 0x73, 0x5b, 0xaf, 0x26, 0x35, 0x32, 0x12, 0x44, 0xe7, 0xec, 0x8c, 0xa7, 0x2c, 0x5c, 0x38, 0xc9, 0x8c, 0x80, 0x9d, 0xb9, 0xcb, 0x5a, 0x55, };
6253 static const u8 ed25519_272_test_vectors_message[] = {
6254 	0x05, 0xca, 0xf1, 0xb8, 0xed, 0xc3, 0xb1, 0x73, 0xfb, 0xc1, 0xed, 0x29, 0xb9, 0x5e, 0x2b, 0xf0, 0x6d, 0x81, 0x4b, 0xa2, 0x40, 0x7d, 0x4b, 0x31, 0xc7, 0x28, 0xd0, 0x4e, 0xc2, 0x73, 0xd2, 0x53, 0x94, 0x42, 0x3a, 0xc7, 0xd4, 0xff, 0xf2, 0xca, 0x36, 0xee, 0x90, 0x27, 0x30, 0x93, 0xc7, 0x56, 0xe2, 0xbd, 0x13, 0xc9, 0x6d, 0x4a, 0x3d, 0xc7, 0xf5, 0xbe, 0x17, 0x59, 0xfc, 0xd3, 0x28, 0xeb, 0x66, 0xc5, 0x88, 0x2b, 0x58, 0xfa, 0x45, 0x88, 0xe5, 0xb2, 0xa3, 0x71, 0x3a, 0x41, 0x54, 0xa2, 0x34, 0x0d, 0x0b, 0x06, 0xad, 0x01, 0x96, 0x01, 0xb0, 0xe0, 0x28, 0xe4, 0x97, 0xf8, 0x98, 0x25, 0x6b, 0x02, 0x8a, 0xf9, 0x5c, 0xd8, 0x16, 0x8d, 0xf5, 0xe5, 0x8a, 0x57, 0xcd, 0x1e, 0xbf, 0xc0, 0xa0, 0xc9, 0x1c, 0xed, 0x61, 0xdb, 0xb4, 0x80, 0xac, 0xa7, 0xdf, 0x8d, 0xca, 0x91, 0xeb, 0x16, 0xe9, 0x80, 0x07, 0xcd, 0x2c, 0xd1, 0xa2, 0x04, 0x5b, 0x0e, 0x44, 0x77, 0xd1, 0x2d, 0x5a, 0x40, 0x72, 0xf3, 0x65, 0x42, 0x65, 0x67, 0xc9, 0xd6, 0x15, 0x77, 0xf3, 0x48, 0x5c, 0x8f, 0x46, 0x60, 0x5e, 0x7f, 0x47, 0x5e, 0xf0, 0x4a, 0x39, 0x48, 0xf6, 0x0d, 0xba, 0x8c, 0x55, 0x08, 0xd1, 0x4b, 0xfd, 0xdb, 0x9b, 0x11, 0xdd, 0x04, 0x4e, 0xf2, 0xd8, 0x4c, 0x16, 0xb9, 0xa9, 0x03, 0x8d, 0x8e, 0x78, 0xed, 0xa4, 0x3b, 0x91, 0x29, 0x7d, 0xf3, 0x5f, 0x43, 0x61, 0xa3, 0x83, 0xb4, 0x1d, 0x49, 0x67, 0x7a, 0x68, 0x7d, 0x5b, 0x34, 0x4a, 0xd1, 0xab, 0x0f, 0xc7, 0x30, 0x17, 0xb3, 0xbe, 0xbf, 0x32, 0x30, 0x6f, 0xb3, 0xfd, 0x7b, 0x3d, 0x50, 0x71, 0xf3, 0xab, 0x5f, 0x6e, 0x49, 0xaa, 0x15, 0x54, 0x0c, 0xad, 0x65, 0x03, 0xbe, 0xa7, 0x78, 0x4c, 0xf9, 0x42, 0x18, 0x01, 0xce, 0x13, 0x85, 0x83, 0x98, 0x93, 0x36, 0x2a, 0x97, 0xfa, 0xe1, 0x21, 0x30, 0x0d, 0x67, 0x83, 0xaf, 0x0f, };
6255 static const u8 ed25519_272_test_vectors_expected_sig[] = {
6256 	0xd7, 0xcb, 0xd4, 0x18, 0x1f, 0x67, 0x71, 0x20, 0x07, 0xb7, 0xf0, 0xe1, 0x84, 0x52, 0xe0, 0xa0, 0x24, 0x46, 0x4d, 0x9d, 0xc9, 0xb5, 0xff, 0x9c, 0xf6, 0x69, 0xd1, 0xb9, 0x11, 0x69, 0xd7, 0x57, 0x32, 0x62, 0xf8, 0x33, 0x36, 0xb9, 0x7c, 0x86, 0x1b, 0xfa, 0xb3, 0xfc, 0xf6, 0x69, 0x22, 0x3c, 0xe8, 0xca, 0xf3, 0x19, 0xf2, 0x1d, 0x23, 0xf1, 0xfa, 0x33, 0x1a, 0x2d, 0x89, 0xb6, 0xca, 0x0b, };
6257 static const ec_test_case ed25519_272_test_case = {
6258 	.name = "EDDSA25519-SHA512/wei25519 272",
6259 	.ec_str_p = &wei25519_str_params,
6260 	.priv_key = ed25519_272_test_vectors_priv_key,
6261 	.priv_key_len = sizeof(ed25519_272_test_vectors_priv_key),
6262 	.nn_random = NULL,
6263 	.hash_type = SHA512,
6264 	.msg = (const char *)ed25519_272_test_vectors_message,
6265 	.msglen = sizeof(ed25519_272_test_vectors_message),
6266 	.sig_type = EDDSA25519,
6267 	.exp_sig = ed25519_272_test_vectors_expected_sig,
6268 	.exp_siglen = sizeof(ed25519_272_test_vectors_expected_sig),
6269 	.adata = NULL,
6270 	.adata_len = 0
6271 };
6272 
6273 /************************************************/
6274 static const u8 ed25519_273_test_vectors_priv_key[] = {
6275 	0x7d, 0xfa, 0x32, 0x8e, 0x90, 0xa1, 0xb8, 0x49, 0xc2, 0x19, 0xe3, 0xda, 0x83, 0x2d, 0xf9, 0xed, 0x77, 0x44, 0x82, 0x34, 0xf0, 0xd8, 0x9e, 0xa5, 0xd1, 0x7a, 0x3d, 0x64, 0xe7, 0x88, 0x3d, 0xaf, };
6276 static const u8 ed25519_273_test_vectors_message[] = {
6277 	0xe5, 0xe4, 0x95, 0xd6, 0x63, 0xf4, 0x72, 0x36, 0x71, 0x45, 0x32, 0x68, 0x7a, 0x24, 0x30, 0x8f, 0x94, 0x2c, 0xa9, 0xc3, 0x3e, 0x08, 0x8f, 0x7f, 0x10, 0x6a, 0x5a, 0x72, 0x35, 0x18, 0xca, 0xcb, 0xbe, 0xf4, 0xa6, 0x8c, 0x93, 0x9a, 0x69, 0x50, 0xb2, 0xdc, 0x25, 0x89, 0xf8, 0x2d, 0x35, 0x4e, 0x57, 0x52, 0x72, 0xd4, 0x2b, 0x13, 0x83, 0xd3, 0x15, 0xab, 0x8a, 0x20, 0xaa, 0x0c, 0xdc, 0x9d, 0x4d, 0xf6, 0x78, 0xab, 0x3b, 0x26, 0x61, 0x2b, 0x5d, 0xca, 0x66, 0xe7, 0x1f, 0x9f, 0x3f, 0xa7, 0xd9, 0xe7, 0x31, 0xdc, 0x48, 0x1e, 0x2b, 0xc7, 0x12, 0x7c, 0xea, 0x3b, 0x62, 0x03, 0xca, 0x6c, 0xd8, 0x16, 0x2e, 0x90, 0x88, 0x6a, 0x73, 0xdc, 0x46, 0xc8, 0x3d, 0xde, 0xfc, 0x4b, 0x9e, 0x2d, 0x53, 0xd2, 0x9d, 0xd3, 0x87, 0xc6, 0x24, 0xe0, 0x8b, 0xd8, 0xd5, 0x3b, 0xe9, 0x28, 0xa4, 0x0a, 0x9a, 0xa8, 0xae, 0x8b, 0x1c, 0x8d, 0x0f, 0xb6, 0xa7, 0xbd, 0x6d, 0xce, 0x5f, 0x62, 0x31, 0x5b, 0x7a, 0x21, 0x81, 0xf6, 0x27, 0xf2, 0x56, 0xbb, 0xe7, 0xe2, 0xa9, 0x5b, 0xf4, 0x64, 0xe6, 0x13, 0x22, 0x04, 0xc1, 0x74, 0x20, 0x96, 0x29, 0x84, 0x02, 0x35, 0xb2, 0xc3, 0x99, 0x13, 0x30, 0x1a, 0x4b, 0x40, 0x32, 0x5d, 0x11, 0x8d, 0x38, 0x4b, 0xc7, 0xac, 0x02, 0x8c, 0xd4, 0xf1, 0x27, 0x02, 0xe1, 0x61, 0x19, 0x1b, 0x14, 0x9e, 0x42, 0x09, 0x05, 0x8a, 0x55, 0x12, 0x2b, 0xbb, 0x8b, 0x22, 0xb2, 0x46, 0x83, 0xba, 0x4f, 0x8e, 0x2e, 0x6c, 0xcf, 0xc0, 0x8d, 0xc8, 0xc8, 0xb1, 0xbc, 0xfb, 0x6d, 0x60, 0xbd, 0x8f, 0x06, 0x21, 0x96, 0x93, 0x3d, 0xf3, 0x19, 0xab, 0x16, 0x90, 0x6d, 0x08, 0x57, 0x30, 0xeb, 0xa1, 0x72, 0x0d, 0x4b, 0x02, 0xc6, 0x7d, 0xaf, 0x38, 0xcc, 0xe6, 0xab, 0xa3, 0x8e, 0x25, 0xd6, 0x8e, 0xf9, 0x5b, 0x2f, 0x52, 0x19, 0x13, 0xa1, 0xd7, 0x7d, 0x5e, 0xb6, 0x50, };
6278 static const u8 ed25519_273_test_vectors_expected_sig[] = {
6279 	0x1c, 0x61, 0xd5, 0x3b, 0x87, 0x2f, 0x8c, 0xde, 0x59, 0x86, 0x09, 0x68, 0x2c, 0x79, 0xf6, 0xc5, 0xdf, 0x00, 0x7c, 0x51, 0x3a, 0x71, 0xcf, 0xb3, 0xa0, 0x6d, 0xcb, 0x82, 0xd8, 0x5c, 0x4b, 0x00, 0xcc, 0xc4, 0x0b, 0x00, 0xe5, 0x9f, 0x59, 0x53, 0x93, 0x08, 0x8b, 0x4c, 0xd0, 0x43, 0x28, 0x55, 0xc6, 0x7a, 0x20, 0x7d, 0xa7, 0x1f, 0x87, 0xe7, 0x2c, 0x40, 0x9b, 0x3e, 0x50, 0x27, 0x95, 0x07, };
6280 static const ec_test_case ed25519_273_test_case = {
6281 	.name = "EDDSA25519-SHA512/wei25519 273",
6282 	.ec_str_p = &wei25519_str_params,
6283 	.priv_key = ed25519_273_test_vectors_priv_key,
6284 	.priv_key_len = sizeof(ed25519_273_test_vectors_priv_key),
6285 	.nn_random = NULL,
6286 	.hash_type = SHA512,
6287 	.msg = (const char *)ed25519_273_test_vectors_message,
6288 	.msglen = sizeof(ed25519_273_test_vectors_message),
6289 	.sig_type = EDDSA25519,
6290 	.exp_sig = ed25519_273_test_vectors_expected_sig,
6291 	.exp_siglen = sizeof(ed25519_273_test_vectors_expected_sig),
6292 	.adata = NULL,
6293 	.adata_len = 0
6294 };
6295 
6296 /************************************************/
6297 static const u8 ed25519_274_test_vectors_priv_key[] = {
6298 	0x6c, 0xe1, 0x3d, 0x3c, 0x2e, 0xc7, 0x1f, 0xed, 0x83, 0x13, 0x1a, 0x69, 0xd5, 0xd0, 0x30, 0x31, 0x4a, 0xb4, 0x9e, 0x65, 0x65, 0xef, 0x68, 0x16, 0x3f, 0xff, 0x09, 0xac, 0x5d, 0x9b, 0x47, 0xe7, };
6299 static const u8 ed25519_274_test_vectors_message[] = {
6300 	0x10, 0xbb, 0xc3, 0x11, 0xeb, 0x2a, 0x76, 0x5e, 0x01, 0x67, 0xff, 0x37, 0x61, 0x8f, 0xf7, 0x0e, 0x13, 0xf0, 0x2d, 0x7b, 0x06, 0x17, 0xae, 0x4a, 0xc0, 0x6b, 0xef, 0xbb, 0xe1, 0x49, 0xc9, 0x72, 0xa9, 0x94, 0xf6, 0x80, 0xca, 0x4d, 0xc9, 0xa9, 0x2e, 0xc7, 0xef, 0xa5, 0x39, 0x97, 0xfa, 0xd3, 0x56, 0xb9, 0xff, 0x4e, 0xbd, 0xee, 0x62, 0x95, 0x41, 0xd1, 0xf4, 0xde, 0xa6, 0x2e, 0xd0, 0xd2, 0x49, 0x4f, 0x9c, 0xcf, 0xdf, 0x07, 0xa9, 0x31, 0x04, 0x91, 0xf6, 0x1c, 0x4b, 0x3e, 0x27, 0x00, 0xb4, 0xa3, 0xc6, 0x68, 0xd6, 0x78, 0x32, 0x9a, 0x38, 0xc2, 0xef, 0xf9, 0xd8, 0xcb, 0xa4, 0x31, 0xfb, 0x95, 0x9e, 0x7f, 0x76, 0x55, 0xbd, 0x0f, 0xbd, 0x77, 0xd5, 0x3b, 0xbb, 0xc2, 0xeb, 0x8d, 0xc5, 0x1d, 0xd7, 0x18, 0xed, 0x98, 0x72, 0x8a, 0x18, 0x16, 0x86, 0xbe, 0x12, 0x2b, 0x84, 0x4d, 0x3d, 0xa3, 0x31, 0xe3, 0x29, 0xd3, 0x95, 0x9b, 0x59, 0x23, 0xf7, 0x73, 0x43, 0x25, 0xa0, 0x21, 0x02, 0x6e, 0x27, 0x54, 0xe1, 0x7a, 0x15, 0x10, 0x8b, 0xe8, 0x01, 0x46, 0x5a, 0xd9, 0x58, 0xdb, 0xcf, 0x21, 0xdf, 0x89, 0x0c, 0xfe, 0x5d, 0x5b, 0x88, 0x3c, 0xa4, 0x3c, 0x61, 0xce, 0xdc, 0xcb, 0xdb, 0x58, 0xb8, 0x49, 0xea, 0x75, 0x37, 0x4f, 0x1e, 0x91, 0x8e, 0x80, 0x3e, 0x57, 0x7a, 0x5d, 0xc7, 0xa1, 0xc1, 0x79, 0x36, 0xec, 0xcf, 0xcd, 0x34, 0x81, 0xbd, 0x2b, 0x1e, 0xb0, 0x75, 0xb8, 0x32, 0x37, 0xca, 0x6f, 0x3c, 0x07, 0xc1, 0x9e, 0x9a, 0xf9, 0x73, 0x12, 0x67, 0xbe, 0x82, 0xd4, 0x89, 0x8e, 0xee, 0x96, 0xeb, 0xc9, 0x00, 0xd4, 0x8b, 0x05, 0x9d, 0x51, 0xb0, 0xdd, 0x41, 0x5b, 0x1c, 0x89, 0x06, 0x60, 0xa8, 0x8d, 0x25, 0xf5, 0xc5, 0xf3, 0x5d, 0x8e, 0x45, 0xe5, 0x23, 0xe0, 0xce, 0x33, 0x36, 0x92, 0x3a, 0xb4, 0x36, 0x70, 0xe3, 0x5c, 0x50, 0x57, 0xd5, 0x6c, 0x75, 0x88, 0x76, };
6301 static const u8 ed25519_274_test_vectors_expected_sig[] = {
6302 	0x60, 0x8b, 0x2b, 0xf6, 0xf6, 0xda, 0x05, 0xc2, 0xac, 0x5b, 0xbf, 0xd7, 0x95, 0xa2, 0xac, 0x32, 0xc7, 0x9c, 0x74, 0x15, 0x3f, 0x94, 0x31, 0xde, 0xa5, 0x97, 0x68, 0xff, 0x4c, 0x22, 0x5e, 0x3b, 0x69, 0x3b, 0x64, 0x5a, 0x50, 0x67, 0x66, 0xb8, 0x60, 0x85, 0x0e, 0xe9, 0x7e, 0xa4, 0x30, 0x32, 0xb0, 0x5b, 0x69, 0xe5, 0x67, 0x67, 0xe8, 0xeb, 0x9d, 0x19, 0x18, 0xdf, 0x9a, 0xfb, 0xa8, 0x05, };
6303 static const ec_test_case ed25519_274_test_case = {
6304 	.name = "EDDSA25519-SHA512/wei25519 274",
6305 	.ec_str_p = &wei25519_str_params,
6306 	.priv_key = ed25519_274_test_vectors_priv_key,
6307 	.priv_key_len = sizeof(ed25519_274_test_vectors_priv_key),
6308 	.nn_random = NULL,
6309 	.hash_type = SHA512,
6310 	.msg = (const char *)ed25519_274_test_vectors_message,
6311 	.msglen = sizeof(ed25519_274_test_vectors_message),
6312 	.sig_type = EDDSA25519,
6313 	.exp_sig = ed25519_274_test_vectors_expected_sig,
6314 	.exp_siglen = sizeof(ed25519_274_test_vectors_expected_sig),
6315 	.adata = NULL,
6316 	.adata_len = 0
6317 };
6318 
6319 /************************************************/
6320 static const u8 ed25519_275_test_vectors_priv_key[] = {
6321 	0xd4, 0x5e, 0xe6, 0x9a, 0x5f, 0x1a, 0x7c, 0xfd, 0xd0, 0x34, 0x3f, 0x87, 0x70, 0xd1, 0xc6, 0xbc, 0x02, 0x6f, 0x06, 0x7a, 0x70, 0xdb, 0xe8, 0x39, 0xa8, 0x6f, 0x2a, 0xa0, 0x68, 0xc3, 0x3f, 0x81, };
6322 static const u8 ed25519_275_test_vectors_message[] = {
6323 	0xeb, 0x5e, 0xd8, 0xab, 0x79, 0xcb, 0xfe, 0x61, 0xc2, 0x59, 0x81, 0xb9, 0xd1, 0xd6, 0xb7, 0x0f, 0x10, 0xb6, 0x01, 0x94, 0xb4, 0x16, 0x1f, 0xe1, 0x7d, 0x11, 0xaf, 0xf1, 0x76, 0x79, 0x94, 0xaa, 0x08, 0x13, 0xe9, 0xec, 0xe2, 0xf4, 0xc5, 0xd5, 0x31, 0xb9, 0x9e, 0x8a, 0xdf, 0x18, 0x88, 0xc3, 0x0a, 0x63, 0x89, 0x3e, 0xb4, 0x51, 0xaa, 0xf5, 0x5a, 0xcd, 0x5a, 0x52, 0xad, 0x8c, 0x40, 0x1f, 0xaa, 0x88, 0xd6, 0xea, 0xcf, 0x3e, 0x49, 0x47, 0x05, 0x66, 0x11, 0x4f, 0xd0, 0xc6, 0xa2, 0x74, 0xe9, 0x54, 0x48, 0x46, 0xb0, 0xae, 0x9b, 0xfa, 0x12, 0x4d, 0x79, 0x51, 0xeb, 0x26, 0x71, 0x5e, 0x19, 0x25, 0x3f, 0xf7, 0xed, 0xc8, 0xa7, 0x09, 0x65, 0x77, 0x6f, 0x23, 0xce, 0x46, 0x03, 0x1e, 0x03, 0x4a, 0x20, 0x07, 0x23, 0xba, 0x3d, 0x11, 0xe1, 0x1d, 0x35, 0x3d, 0x7e, 0x7c, 0xd8, 0x4a, 0xed, 0xe2, 0x67, 0xff, 0x64, 0xbe, 0xd4, 0x18, 0xcb, 0x9f, 0x28, 0xc6, 0x1c, 0xd0, 0xf6, 0x3b, 0x6c, 0xe2, 0xec, 0xae, 0x14, 0xb2, 0x0b, 0xc6, 0xbd, 0xae, 0xd8, 0xc4, 0x28, 0xba, 0xd1, 0x8b, 0xe4, 0xb7, 0xd6, 0x63, 0x38, 0x36, 0x4a, 0xcd, 0x80, 0x42, 0xa8, 0x25, 0x6f, 0x25, 0x8a, 0x69, 0x96, 0x9b, 0x8d, 0x3c, 0xa2, 0xea, 0xb3, 0xae, 0xa3, 0x70, 0x6e, 0x5f, 0x21, 0xc3, 0xb1, 0xef, 0xcc, 0x25, 0x4a, 0x82, 0x4b, 0xb4, 0xe7, 0xea, 0x7a, 0xba, 0x88, 0x27, 0xc8, 0xeb, 0x82, 0x78, 0x6c, 0x66, 0x5a, 0xa9, 0x73, 0x82, 0x19, 0x31, 0xff, 0x99, 0x0a, 0x63, 0xfd, 0x34, 0xa7, 0x4a, 0x6d, 0x8c, 0x22, 0xa8, 0x82, 0xb0, 0xb9, 0x35, 0x15, 0x2c, 0xcb, 0x36, 0xfc, 0xc7, 0x6f, 0x4e, 0xca, 0x65, 0xd6, 0x7c, 0x86, 0x80, 0x94, 0x2f, 0x75, 0xdf, 0xad, 0x07, 0x34, 0x39, 0xc0, 0x91, 0x60, 0x65, 0xe8, 0x38, 0x77, 0xf7, 0xba, 0x20, 0x93, 0x03, 0xf3, 0x35, 0x48, 0xd9, 0xe4, 0x0d, 0x4a, 0x6b, };
6324 static const u8 ed25519_275_test_vectors_expected_sig[] = {
6325 	0x15, 0x6c, 0x51, 0xc5, 0xf9, 0x15, 0xd8, 0x9b, 0x8d, 0x14, 0x00, 0x35, 0x0f, 0x8f, 0x21, 0x7a, 0x5c, 0x02, 0xe2, 0x62, 0x9e, 0xde, 0x9f, 0x4a, 0x30, 0xb6, 0xe7, 0x1d, 0x1e, 0xa7, 0xa9, 0x53, 0xcc, 0x6d, 0xb3, 0x1b, 0xa5, 0xc7, 0x78, 0xc2, 0x69, 0x92, 0x0b, 0x64, 0x9f, 0xb4, 0x22, 0x1c, 0x6d, 0x38, 0xcf, 0x2c, 0xea, 0x2a, 0x7d, 0xe3, 0xad, 0x42, 0x3e, 0x04, 0xfa, 0xaa, 0x06, 0x07, };
6326 static const ec_test_case ed25519_275_test_case = {
6327 	.name = "EDDSA25519-SHA512/wei25519 275",
6328 	.ec_str_p = &wei25519_str_params,
6329 	.priv_key = ed25519_275_test_vectors_priv_key,
6330 	.priv_key_len = sizeof(ed25519_275_test_vectors_priv_key),
6331 	.nn_random = NULL,
6332 	.hash_type = SHA512,
6333 	.msg = (const char *)ed25519_275_test_vectors_message,
6334 	.msglen = sizeof(ed25519_275_test_vectors_message),
6335 	.sig_type = EDDSA25519,
6336 	.exp_sig = ed25519_275_test_vectors_expected_sig,
6337 	.exp_siglen = sizeof(ed25519_275_test_vectors_expected_sig),
6338 	.adata = NULL,
6339 	.adata_len = 0
6340 };
6341 
6342 /************************************************/
6343 static const u8 ed25519_276_test_vectors_priv_key[] = {
6344 	0x8a, 0x76, 0xea, 0xab, 0x3a, 0x21, 0xec, 0x5a, 0x97, 0x5c, 0x8b, 0x9e, 0x19, 0x7a, 0x98, 0x9e, 0x8e, 0x03, 0x08, 0x99, 0xeb, 0x45, 0xd7, 0x89, 0x68, 0xd0, 0xfb, 0x69, 0x7b, 0x92, 0xe4, 0x6d, };
6345 static const u8 ed25519_276_test_vectors_message[] = {
6346 	0xc6, 0xc7, 0x8f, 0x2e, 0x20, 0x80, 0x46, 0x1a, 0xed, 0x9f, 0x12, 0xb4, 0xf7, 0x7c, 0x98, 0x9b, 0x19, 0x71, 0x67, 0x80, 0xfa, 0xb6, 0x0e, 0x6e, 0xcb, 0x97, 0x93, 0xb4, 0xbc, 0x7e, 0xd6, 0x9e, 0x5f, 0x70, 0xfa, 0x6b, 0xdb, 0xa1, 0x6e, 0x9b, 0xd3, 0x19, 0x49, 0x69, 0xee, 0xa6, 0x66, 0x5a, 0xbf, 0xd6, 0x30, 0xde, 0xee, 0xfa, 0x3d, 0x71, 0x7b, 0x6d, 0x25, 0x4d, 0xd2, 0x4b, 0xc9, 0x7d, 0xde, 0x21, 0xf0, 0xf2, 0x9f, 0x9e, 0xd3, 0x4b, 0x8b, 0xd7, 0xa0, 0x13, 0x38, 0x0f, 0x4f, 0x82, 0xc9, 0x84, 0xfd, 0xbd, 0x95, 0xaf, 0x98, 0x05, 0xb7, 0x44, 0xbc, 0xd9, 0x52, 0xc5, 0xa7, 0x1f, 0xbb, 0x57, 0xd1, 0x1f, 0x41, 0x1c, 0x18, 0xcc, 0x30, 0xbc, 0x35, 0x94, 0xf7, 0xad, 0x82, 0x28, 0xcb, 0x60, 0x99, 0x39, 0x4a, 0x1b, 0x6b, 0x0a, 0x81, 0x85, 0x81, 0xbd, 0xf9, 0x3c, 0xce, 0x58, 0xf3, 0xa4, 0xa2, 0x3e, 0x55, 0xdb, 0x3e, 0x69, 0xca, 0x9d, 0x60, 0xcf, 0xb3, 0xa9, 0x07, 0xfb, 0x68, 0x32, 0x9e, 0x2f, 0xfb, 0x6c, 0x65, 0xf1, 0xe8, 0x28, 0xd2, 0x81, 0x27, 0x10, 0x9c, 0x9e, 0x9f, 0xb7, 0x01, 0x60, 0xf2, 0xef, 0x82, 0xa2, 0xee, 0x9f, 0x9b, 0xd1, 0x70, 0xc5, 0x1e, 0x13, 0xfd, 0x3f, 0xc1, 0x86, 0x6b, 0x22, 0xc7, 0x9f, 0xe6, 0xd5, 0x10, 0x12, 0x17, 0x97, 0x9d, 0xbe, 0x27, 0x24, 0xdc, 0xad, 0x8a, 0x9b, 0xc6, 0x9a, 0xcc, 0x42, 0xc1, 0x12, 0xdc, 0x69, 0x7b, 0xd2, 0x71, 0xee, 0xa5, 0x50, 0xe9, 0xe5, 0x04, 0x06, 0xbf, 0xd2, 0x82, 0x45, 0xb8, 0x3b, 0x8f, 0x01, 0x2d, 0x34, 0xdb, 0x6d, 0xbd, 0xd5, 0x5a, 0xe6, 0xe5, 0x75, 0x74, 0x5c, 0x15, 0x3d, 0x6e, 0x75, 0x34, 0x90, 0x10, 0x27, 0xea, 0xdc, 0x2f, 0xcc, 0x33, 0xa5, 0x28, 0x7d, 0xdb, 0xca, 0x6d, 0x3a, 0xea, 0xb8, 0x97, 0x22, 0x94, 0xdc, 0x6c, 0x71, 0x2b, 0x99, 0x42, 0x54, 0x72, 0x77, 0x34, 0x0e, 0x7a, 0xd1, 0x9e, };
6347 static const u8 ed25519_276_test_vectors_expected_sig[] = {
6348 	0xfc, 0xee, 0xcc, 0xa4, 0xb0, 0x14, 0xfe, 0xcd, 0x90, 0xb9, 0x21, 0xb0, 0xfa, 0x3b, 0x15, 0xae, 0xaa, 0x4e, 0x62, 0xca, 0xa1, 0xfb, 0x22, 0x72, 0x9c, 0x70, 0x26, 0x92, 0x32, 0xc3, 0x3c, 0xef, 0x0d, 0x0a, 0xee, 0xa6, 0x64, 0x32, 0xc1, 0x28, 0xaf, 0xb9, 0xa3, 0x64, 0x6b, 0xc7, 0xf0, 0x3a, 0x12, 0x77, 0x4d, 0xa8, 0x75, 0x83, 0x98, 0xc2, 0xa0, 0xdc, 0xce, 0x0b, 0xbb, 0xf6, 0x74, 0x0a, };
6349 static const ec_test_case ed25519_276_test_case = {
6350 	.name = "EDDSA25519-SHA512/wei25519 276",
6351 	.ec_str_p = &wei25519_str_params,
6352 	.priv_key = ed25519_276_test_vectors_priv_key,
6353 	.priv_key_len = sizeof(ed25519_276_test_vectors_priv_key),
6354 	.nn_random = NULL,
6355 	.hash_type = SHA512,
6356 	.msg = (const char *)ed25519_276_test_vectors_message,
6357 	.msglen = sizeof(ed25519_276_test_vectors_message),
6358 	.sig_type = EDDSA25519,
6359 	.exp_sig = ed25519_276_test_vectors_expected_sig,
6360 	.exp_siglen = sizeof(ed25519_276_test_vectors_expected_sig),
6361 	.adata = NULL,
6362 	.adata_len = 0
6363 };
6364 
6365 /************************************************/
6366 static const u8 ed25519_277_test_vectors_priv_key[] = {
6367 	0x18, 0xa8, 0xf9, 0x36, 0x48, 0xcd, 0xcf, 0x47, 0x13, 0x36, 0x30, 0xaf, 0x1e, 0x11, 0xc0, 0xce, 0xea, 0x3d, 0xe0, 0x73, 0x27, 0x31, 0x4c, 0x96, 0x58, 0x0d, 0xf7, 0x75, 0x59, 0x7d, 0x7a, 0x9c, };
6368 static const u8 ed25519_277_test_vectors_message[] = {
6369 	0x59, 0x20, 0x93, 0xac, 0x7c, 0xd6, 0x71, 0xd6, 0x07, 0x0b, 0x00, 0x27, 0xed, 0xac, 0x1f, 0xb0, 0x15, 0xcc, 0x20, 0x5d, 0x78, 0xbb, 0x60, 0x3f, 0x37, 0x8e, 0xb9, 0xf8, 0xaa, 0x38, 0x8c, 0xa8, 0x30, 0xdb, 0x3c, 0xb2, 0x34, 0x20, 0xc7, 0xe8, 0x52, 0xdb, 0x0b, 0x55, 0x24, 0x1e, 0xb8, 0x8a, 0x02, 0xcc, 0x62, 0x7a, 0xa9, 0x41, 0x43, 0xbe, 0x43, 0x9a, 0xab, 0x4b, 0xf2, 0x63, 0x47, 0x57, 0x47, 0x04, 0x06, 0xe8, 0x42, 0xf2, 0x0e, 0xb1, 0x0f, 0x07, 0x00, 0xe3, 0xc2, 0xda, 0x36, 0x4f, 0x58, 0x8a, 0x80, 0x00, 0xf2, 0x38, 0x50, 0xc1, 0x2c, 0xe9, 0x76, 0xf3, 0x26, 0xd2, 0xdf, 0x1b, 0xac, 0x13, 0xe9, 0x50, 0x20, 0xb4, 0x12, 0xb1, 0x75, 0xbf, 0x74, 0xbd, 0x7e, 0xbb, 0xac, 0xf3, 0xae, 0x55, 0xc0, 0xda, 0xeb, 0xb5, 0xc0, 0x10, 0xbf, 0x80, 0x4f, 0xee, 0xe1, 0xd7, 0xd4, 0x9f, 0xae, 0x05, 0x0b, 0xea, 0x55, 0x99, 0x6f, 0x53, 0xcf, 0xe1, 0xf1, 0x5a, 0x0c, 0xf2, 0x07, 0x27, 0xdb, 0x4e, 0xe3, 0x11, 0xc2, 0x60, 0xba, 0xd9, 0x68, 0x2d, 0x7b, 0x96, 0x5e, 0x27, 0xa9, 0x49, 0x1f, 0x47, 0x1d, 0x4a, 0x47, 0x3a, 0xff, 0x64, 0x6c, 0x7d, 0x42, 0x4d, 0x5a, 0x0b, 0xdc, 0xbb, 0x8a, 0x02, 0x33, 0xf4, 0xb3, 0x06, 0x0d, 0xd0, 0x4c, 0x98, 0xec, 0x98, 0xdf, 0xd0, 0x5e, 0xc7, 0x24, 0x78, 0x84, 0xe2, 0xd8, 0xe1, 0x52, 0xd4, 0xae, 0x52, 0xb3, 0xd5, 0x86, 0x5d, 0x9e, 0xfd, 0x67, 0x06, 0xa6, 0x0e, 0x08, 0x8e, 0x1e, 0x7c, 0x9f, 0x62, 0x45, 0x10, 0xab, 0xc7, 0xa2, 0x04, 0x5a, 0x2c, 0x7a, 0x75, 0x88, 0xe2, 0x53, 0x5e, 0x73, 0x19, 0x1d, 0xd5, 0xcf, 0x05, 0x42, 0x15, 0x63, 0xf5, 0x56, 0xa1, 0x3e, 0x82, 0x36, 0x67, 0x03, 0x43, 0xcd, 0x5b, 0xa4, 0xd4, 0x66, 0xe2, 0x45, 0xc4, 0xee, 0x3b, 0x5a, 0x41, 0xe7, 0x0c, 0x9a, 0x0f, 0x5e, 0x6e, 0xa2, 0xc5, 0x59, 0xeb, 0xe6, 0x1b, 0xa8, 0x1e, };
6370 static const u8 ed25519_277_test_vectors_expected_sig[] = {
6371 	0x3b, 0x77, 0x39, 0x4c, 0xd6, 0x9f, 0x8b, 0x45, 0xd0, 0x0c, 0xfe, 0x3a, 0x79, 0xa7, 0x90, 0x06, 0x28, 0xa5, 0x65, 0x18, 0xb3, 0x79, 0xed, 0x8a, 0x11, 0x58, 0x1f, 0xc3, 0xa3, 0x76, 0xe5, 0xd6, 0x68, 0x07, 0xdf, 0x11, 0xe7, 0x09, 0x04, 0xf6, 0x96, 0xc7, 0x41, 0xd2, 0x1d, 0x13, 0x93, 0x10, 0xfa, 0x1b, 0x89, 0xa9, 0x3b, 0xdc, 0x4d, 0x2c, 0x39, 0x97, 0x99, 0x1f, 0x52, 0x20, 0xee, 0x00, };
6372 static const ec_test_case ed25519_277_test_case = {
6373 	.name = "EDDSA25519-SHA512/wei25519 277",
6374 	.ec_str_p = &wei25519_str_params,
6375 	.priv_key = ed25519_277_test_vectors_priv_key,
6376 	.priv_key_len = sizeof(ed25519_277_test_vectors_priv_key),
6377 	.nn_random = NULL,
6378 	.hash_type = SHA512,
6379 	.msg = (const char *)ed25519_277_test_vectors_message,
6380 	.msglen = sizeof(ed25519_277_test_vectors_message),
6381 	.sig_type = EDDSA25519,
6382 	.exp_sig = ed25519_277_test_vectors_expected_sig,
6383 	.exp_siglen = sizeof(ed25519_277_test_vectors_expected_sig),
6384 	.adata = NULL,
6385 	.adata_len = 0
6386 };
6387 
6388 /************************************************/
6389 static const u8 ed25519_278_test_vectors_priv_key[] = {
6390 	0x20, 0x6c, 0xd2, 0xb8, 0x11, 0x4a, 0xae, 0x18, 0x8d, 0x81, 0x86, 0x2c, 0xce, 0xc4, 0xcb, 0x92, 0xc4, 0xef, 0x5f, 0xc7, 0x8c, 0x24, 0x43, 0x5a, 0x19, 0xf9, 0xed, 0x9b, 0x8a, 0x22, 0xf4, 0x7e, };
6391 static const u8 ed25519_278_test_vectors_message[] = {
6392 	0x48, 0x0c, 0x48, 0x00, 0xf6, 0x8c, 0x79, 0xf5, 0xdf, 0xc0, 0xc3, 0x66, 0x6c, 0x0a, 0xc4, 0x29, 0xb3, 0x0f, 0xe0, 0xc5, 0xfe, 0x84, 0x87, 0x50, 0xdb, 0x21, 0x71, 0x38, 0x0b, 0x80, 0xc8, 0xe9, 0xfe, 0xc0, 0xa0, 0x54, 0xb1, 0x6d, 0x08, 0x67, 0x4c, 0xef, 0xe2, 0xf6, 0x4e, 0xc2, 0x8b, 0xb6, 0xb0, 0x59, 0x6b, 0x35, 0x23, 0x55, 0x75, 0xf1, 0x89, 0xbe, 0xe2, 0x59, 0xac, 0xa7, 0x66, 0xc2, 0x22, 0xac, 0x0a, 0x46, 0xcf, 0x2a, 0xf7, 0x57, 0x74, 0xda, 0x4e, 0x34, 0xa0, 0xb5, 0x4f, 0xc2, 0xac, 0x49, 0xec, 0x8b, 0xed, 0xf4, 0x88, 0x7c, 0xd9, 0xb7, 0xbe, 0x4f, 0xdb, 0x7f, 0x68, 0x69, 0x02, 0xdd, 0xfa, 0xb0, 0x46, 0x27, 0xe2, 0x6e, 0xa2, 0xdc, 0x3d, 0x97, 0xd6, 0x2a, 0x4b, 0x15, 0x46, 0x18, 0x02, 0x18, 0xed, 0x8f, 0xa1, 0x13, 0x33, 0x48, 0x19, 0xb5, 0x27, 0x5c, 0xc5, 0x4a, 0xfd, 0xee, 0x44, 0x30, 0x90, 0x08, 0x59, 0x65, 0x07, 0x97, 0x16, 0x75, 0xe6, 0xd8, 0xb8, 0xa8, 0xed, 0xec, 0x47, 0x18, 0xf2, 0xd4, 0xbd, 0x73, 0x52, 0x13, 0xcb, 0xbd, 0x18, 0x79, 0x1f, 0xaa, 0x80, 0x54, 0x17, 0x49, 0x07, 0xa7, 0xac, 0x17, 0xd7, 0x14, 0x3a, 0x47, 0x57, 0xe4, 0x93, 0xbe, 0xee, 0xc4, 0x84, 0x9d, 0x0b, 0x83, 0x6f, 0x18, 0xbb, 0x2b, 0x3c, 0x90, 0x16, 0xf2, 0x5a, 0xf4, 0x7f, 0xb9, 0x61, 0x99, 0x25, 0x17, 0x20, 0x54, 0x9f, 0x15, 0xd1, 0x49, 0x50, 0x3d, 0x41, 0x09, 0x5e, 0x25, 0xf2, 0x62, 0x09, 0xda, 0xac, 0x39, 0x15, 0x44, 0x85, 0xc3, 0xde, 0xd7, 0xcb, 0x1a, 0x8c, 0x3e, 0x83, 0xa5, 0x2f, 0x5a, 0x06, 0xec, 0x09, 0xcf, 0x83, 0xdf, 0x00, 0x72, 0x6b, 0x79, 0x68, 0xf6, 0x4c, 0x0c, 0xba, 0xe2, 0x99, 0x51, 0x2f, 0xb4, 0x38, 0x56, 0x0f, 0x04, 0xb3, 0xb6, 0x44, 0x34, 0x6f, 0x93, 0x8a, 0xc8, 0xe9, 0x04, 0x86, 0x61, 0x4c, 0xd8, 0x44, 0xb5, 0x4e, 0xae, 0x07, 0x8b, 0xf6, 0x78, 0xb3, };
6393 static const u8 ed25519_278_test_vectors_expected_sig[] = {
6394 	0x73, 0xa4, 0x0d, 0x9d, 0xa0, 0x8f, 0xb9, 0x8e, 0xa2, 0x5b, 0x67, 0xe7, 0x21, 0x55, 0x7a, 0x1a, 0x51, 0x22, 0x52, 0x94, 0xd3, 0x16, 0xb5, 0x31, 0x49, 0xaf, 0x89, 0x5f, 0xa4, 0xd6, 0x3c, 0xb4, 0xa3, 0xf5, 0x6f, 0x68, 0x85, 0x66, 0xef, 0x6d, 0xa4, 0x2f, 0xd2, 0x94, 0x1d, 0xff, 0xa0, 0x6d, 0x49, 0x7a, 0xa9, 0x02, 0x16, 0x5d, 0x50, 0x21, 0x3a, 0x62, 0x14, 0x11, 0x62, 0x99, 0xa9, 0x0c, };
6395 static const ec_test_case ed25519_278_test_case = {
6396 	.name = "EDDSA25519-SHA512/wei25519 278",
6397 	.ec_str_p = &wei25519_str_params,
6398 	.priv_key = ed25519_278_test_vectors_priv_key,
6399 	.priv_key_len = sizeof(ed25519_278_test_vectors_priv_key),
6400 	.nn_random = NULL,
6401 	.hash_type = SHA512,
6402 	.msg = (const char *)ed25519_278_test_vectors_message,
6403 	.msglen = sizeof(ed25519_278_test_vectors_message),
6404 	.sig_type = EDDSA25519,
6405 	.exp_sig = ed25519_278_test_vectors_expected_sig,
6406 	.exp_siglen = sizeof(ed25519_278_test_vectors_expected_sig),
6407 	.adata = NULL,
6408 	.adata_len = 0
6409 };
6410 
6411 /************************************************/
6412 static const u8 ed25519_279_test_vectors_priv_key[] = {
6413 	0x59, 0xb1, 0x44, 0xa7, 0x08, 0xab, 0xec, 0x97, 0x27, 0x29, 0xa0, 0x4a, 0x6c, 0x13, 0xf0, 0xea, 0x02, 0x0b, 0x4e, 0xd4, 0xa4, 0x82, 0x98, 0x02, 0x3a, 0x56, 0x89, 0x58, 0xc2, 0x12, 0x15, 0xec, };
6414 static const u8 ed25519_279_test_vectors_message[] = {
6415 	0x38, 0x57, 0xbd, 0x26, 0x0b, 0x8a, 0xad, 0x9d, 0x07, 0x3f, 0x06, 0x76, 0x5d, 0x37, 0xfe, 0x89, 0x3a, 0x3f, 0x53, 0xe2, 0x3d, 0xe8, 0x66, 0xdd, 0xac, 0x33, 0x49, 0x5a, 0x39, 0xad, 0x33, 0xee, 0x9e, 0x9d, 0x5c, 0x22, 0x50, 0x2b, 0xc1, 0xc4, 0xb5, 0x47, 0x0d, 0x0e, 0x3f, 0x3a, 0x58, 0x52, 0x23, 0xfe, 0x4c, 0xb9, 0x3c, 0xc4, 0xad, 0x2b, 0x5b, 0xa6, 0xd7, 0x88, 0x26, 0xa5, 0x3f, 0xc0, 0x25, 0x3d, 0xc5, 0x80, 0xa2, 0x01, 0x8c, 0xc9, 0xff, 0x1c, 0xfe, 0xdb, 0xd3, 0xac, 0x0b, 0x53, 0x29, 0x2d, 0xee, 0xfb, 0xc1, 0x4e, 0x58, 0x9a, 0xcf, 0x49, 0x6c, 0xb5, 0xf7, 0x67, 0x01, 0x30, 0xfd, 0xbb, 0x6c, 0xf3, 0x8d, 0x20, 0x89, 0x53, 0xc0, 0x15, 0xa0, 0x47, 0x46, 0x75, 0xb7, 0x24, 0xbd, 0x10, 0x9f, 0x7c, 0xb8, 0x9c, 0x33, 0x01, 0x67, 0x51, 0xfe, 0x7a, 0xa7, 0x85, 0xd0, 0x99, 0xd0, 0x9a, 0xb2, 0x0d, 0xd5, 0x25, 0x8c, 0xd7, 0x64, 0xac, 0x8d, 0xaf, 0x34, 0x3c, 0xe4, 0x79, 0x0e, 0xad, 0x08, 0x63, 0xaf, 0x43, 0x12, 0x1a, 0xa5, 0x27, 0xa3, 0x7a, 0x11, 0x62, 0x8f, 0x47, 0x86, 0x96, 0x68, 0xf8, 0xea, 0xc0, 0x0d, 0x80, 0xb6, 0xbf, 0x99, 0x06, 0x66, 0x3d, 0x7a, 0x28, 0x99, 0xc1, 0xcb, 0x67, 0x8c, 0xd7, 0xb3, 0xeb, 0x3b, 0xc8, 0x02, 0x26, 0xb8, 0xb1, 0x3b, 0x6e, 0x46, 0x87, 0x7f, 0x38, 0xf0, 0x7c, 0x3d, 0x9c, 0x86, 0xd3, 0x36, 0x8b, 0xaa, 0xc4, 0xa6, 0xf6, 0xb9, 0x3c, 0xce, 0xbc, 0xec, 0x98, 0x11, 0x47, 0x4b, 0x6a, 0x6a, 0x4d, 0xa5, 0xc3, 0xa5, 0x96, 0x65, 0x71, 0xee, 0xd0, 0x5e, 0xdc, 0xc0, 0xe3, 0xfe, 0x7c, 0xd1, 0x59, 0x15, 0xc9, 0x1f, 0x44, 0xee, 0xe8, 0xc1, 0x49, 0xae, 0x45, 0x1f, 0x37, 0x55, 0x18, 0xa7, 0x9f, 0xb6, 0x00, 0xa9, 0x71, 0xa3, 0x9b, 0x94, 0x33, 0xdf, 0xa1, 0x9f, 0x91, 0x93, 0x1b, 0x19, 0x32, 0x27, 0x57, 0x47, 0xc2, 0x62, 0xee, 0xdc, 0xbd, 0x27, 0xf1, };
6416 static const u8 ed25519_279_test_vectors_expected_sig[] = {
6417 	0x1a, 0x80, 0x85, 0x0f, 0xcb, 0xd6, 0xe6, 0x43, 0xc6, 0xba, 0x8e, 0xb6, 0x84, 0xdb, 0xef, 0x7d, 0xf0, 0x15, 0x15, 0x92, 0x28, 0xda, 0xed, 0xcf, 0x06, 0x04, 0x70, 0x91, 0x86, 0x05, 0x4d, 0xb1, 0x85, 0xaa, 0x7b, 0xaa, 0xcb, 0x09, 0xd6, 0xca, 0xad, 0x01, 0x63, 0x8e, 0xff, 0x8e, 0x46, 0x87, 0x35, 0xa6, 0x01, 0x24, 0xde, 0x0c, 0x53, 0x76, 0xe9, 0x43, 0x40, 0xe5, 0x41, 0xa9, 0x80, 0x07, };
6418 static const ec_test_case ed25519_279_test_case = {
6419 	.name = "EDDSA25519-SHA512/wei25519 279",
6420 	.ec_str_p = &wei25519_str_params,
6421 	.priv_key = ed25519_279_test_vectors_priv_key,
6422 	.priv_key_len = sizeof(ed25519_279_test_vectors_priv_key),
6423 	.nn_random = NULL,
6424 	.hash_type = SHA512,
6425 	.msg = (const char *)ed25519_279_test_vectors_message,
6426 	.msglen = sizeof(ed25519_279_test_vectors_message),
6427 	.sig_type = EDDSA25519,
6428 	.exp_sig = ed25519_279_test_vectors_expected_sig,
6429 	.exp_siglen = sizeof(ed25519_279_test_vectors_expected_sig),
6430 	.adata = NULL,
6431 	.adata_len = 0
6432 };
6433 
6434 /************************************************/
6435 static const u8 ed25519_280_test_vectors_priv_key[] = {
6436 	0x8d, 0x16, 0x21, 0xee, 0xab, 0x83, 0x27, 0x0d, 0xe8, 0x57, 0x33, 0x5c, 0x66, 0x5b, 0xbf, 0x57, 0x26, 0xe3, 0x72, 0x22, 0x25, 0xfd, 0x01, 0x6e, 0x23, 0xbf, 0x90, 0xab, 0x47, 0xae, 0xec, 0x3d, };
6437 static const u8 ed25519_280_test_vectors_message[] = {
6438 	0x97, 0xfa, 0xcd, 0xdc, 0x82, 0xcc, 0xcc, 0xcf, 0x78, 0x8c, 0x31, 0xb3, 0x30, 0x5e, 0x93, 0xeb, 0xa9, 0x56, 0xf8, 0x96, 0x13, 0xe6, 0xe5, 0x35, 0x42, 0xb0, 0x43, 0x26, 0x7f, 0xee, 0x54, 0x4c, 0x2b, 0x0a, 0x8a, 0xe8, 0x88, 0x6a, 0x31, 0xb9, 0xd3, 0x21, 0xa6, 0x3c, 0x27, 0x62, 0x3b, 0xae, 0xfe, 0xa8, 0x40, 0xb2, 0xa8, 0xaf, 0x5b, 0x23, 0x30, 0x19, 0x3f, 0xfb, 0x5b, 0xaf, 0x87, 0x3c, 0x33, 0x55, 0x28, 0xaf, 0xea, 0xe2, 0x16, 0x01, 0x63, 0xc8, 0x51, 0xc5, 0xa2, 0xe5, 0x81, 0x54, 0xa1, 0xb0, 0x56, 0x9c, 0x2d, 0x13, 0x66, 0xc0, 0x71, 0x04, 0x37, 0x62, 0x3b, 0x0e, 0x08, 0xc6, 0x86, 0xe5, 0x4f, 0xc2, 0x79, 0xed, 0x4c, 0x45, 0xf3, 0xe8, 0x56, 0x86, 0x83, 0x75, 0xf7, 0x82, 0x24, 0xc7, 0x77, 0xb1, 0x3d, 0x75, 0xde, 0x10, 0xd7, 0x91, 0x73, 0x55, 0x24, 0x25, 0xd1, 0x5a, 0x56, 0x19, 0x04, 0x15, 0x5f, 0x21, 0x17, 0xb2, 0xf1, 0x47, 0x13, 0xeb, 0x0b, 0x04, 0x64, 0x8a, 0x3b, 0xde, 0xb3, 0x30, 0x21, 0x67, 0xd1, 0x97, 0x3e, 0x78, 0x8a, 0x06, 0xcb, 0x00, 0xd4, 0x8c, 0xcb, 0x26, 0x9f, 0xa7, 0x1a, 0xf8, 0xba, 0x68, 0xea, 0xe5, 0x5d, 0xbb, 0xfd, 0x95, 0x94, 0xd5, 0xc2, 0xb4, 0xdc, 0x13, 0xae, 0x03, 0x21, 0x71, 0x85, 0x61, 0xac, 0xdf, 0x67, 0xdc, 0x8c, 0xfc, 0xc2, 0x5b, 0xc4, 0x6b, 0xb6, 0x6e, 0x09, 0x6a, 0x19, 0x41, 0xd9, 0x33, 0x52, 0x07, 0xd3, 0xf7, 0xd1, 0x1e, 0x89, 0x04, 0x90, 0x4f, 0xab, 0xe3, 0xa5, 0x0a, 0x38, 0x83, 0xe7, 0x07, 0x80, 0x47, 0xdf, 0x25, 0x2f, 0x38, 0xb6, 0x7c, 0xd2, 0x8a, 0x6a, 0xc4, 0x5c, 0x7d, 0x7a, 0x1d, 0x2a, 0x1d, 0xe8, 0xd4, 0x57, 0x47, 0xcf, 0x09, 0x30, 0x1e, 0x01, 0xcd, 0xaf, 0xd0, 0xcd, 0x99, 0xa6, 0xe9, 0x1b, 0x70, 0x4d, 0x50, 0x9f, 0xce, 0x69, 0x2f, 0xbd, 0xef, 0x2f, 0x71, 0xa5, 0xce, 0x0b, 0x35, 0xbc, 0x15, 0xc6, 0x5f, 0x87, 0x68, 0x24, };
6439 static const u8 ed25519_280_test_vectors_expected_sig[] = {
6440 	0xe0, 0x8d, 0x6c, 0xaa, 0x5f, 0x39, 0x32, 0x7d, 0x6e, 0x66, 0x52, 0xed, 0x74, 0xdd, 0x1a, 0x37, 0x84, 0x4b, 0x97, 0x9f, 0x5c, 0xce, 0x74, 0x7a, 0x60, 0x6f, 0x56, 0x79, 0xf4, 0x89, 0x8b, 0xbb, 0x76, 0x43, 0xdf, 0x7e, 0x93, 0x1b, 0x54, 0xa2, 0xb4, 0x0e, 0xbd, 0xef, 0xe8, 0x30, 0x03, 0xf6, 0x1c, 0xa0, 0xf1, 0x11, 0x12, 0xf0, 0x23, 0xc6, 0xa3, 0xe8, 0xcc, 0x18, 0xca, 0xfe, 0x5f, 0x0d, };
6441 static const ec_test_case ed25519_280_test_case = {
6442 	.name = "EDDSA25519-SHA512/wei25519 280",
6443 	.ec_str_p = &wei25519_str_params,
6444 	.priv_key = ed25519_280_test_vectors_priv_key,
6445 	.priv_key_len = sizeof(ed25519_280_test_vectors_priv_key),
6446 	.nn_random = NULL,
6447 	.hash_type = SHA512,
6448 	.msg = (const char *)ed25519_280_test_vectors_message,
6449 	.msglen = sizeof(ed25519_280_test_vectors_message),
6450 	.sig_type = EDDSA25519,
6451 	.exp_sig = ed25519_280_test_vectors_expected_sig,
6452 	.exp_siglen = sizeof(ed25519_280_test_vectors_expected_sig),
6453 	.adata = NULL,
6454 	.adata_len = 0
6455 };
6456 
6457 /************************************************/
6458 static const u8 ed25519_281_test_vectors_priv_key[] = {
6459 	0xf2, 0x73, 0x5d, 0x50, 0xee, 0x3a, 0x9a, 0x65, 0xb5, 0x8c, 0x8a, 0xcf, 0x55, 0x16, 0x63, 0xe9, 0x88, 0x09, 0xec, 0x40, 0x6f, 0x73, 0xe3, 0xe7, 0xf4, 0xe7, 0x3b, 0xc4, 0xea, 0x92, 0x38, 0x74, };
6460 static const u8 ed25519_281_test_vectors_message[] = {
6461 	0xae, 0x31, 0xe9, 0x4e, 0x71, 0x97, 0xe4, 0xe4, 0xd0, 0x23, 0x93, 0x48, 0x02, 0x5e, 0xd6, 0x68, 0x1e, 0x51, 0x3c, 0xe1, 0xa6, 0xe0, 0xaa, 0x0e, 0x5b, 0x97, 0x93, 0x73, 0x91, 0x21, 0x50, 0xef, 0x11, 0x3e, 0x50, 0xef, 0x05, 0x69, 0xc4, 0x83, 0xf7, 0x56, 0x8c, 0x4b, 0xbc, 0x47, 0x03, 0xc5, 0xda, 0xca, 0xa8, 0x0a, 0x0d, 0xe4, 0xe7, 0x38, 0x38, 0x3f, 0xa1, 0xf1, 0x0d, 0x6d, 0x40, 0x71, 0xa3, 0x1b, 0x99, 0xe6, 0x48, 0x51, 0x43, 0x97, 0x23, 0x16, 0xc8, 0x65, 0x22, 0xe3, 0x7c, 0x68, 0x87, 0xa1, 0xc3, 0x07, 0xb2, 0x9b, 0x0d, 0xd6, 0xf9, 0xf1, 0xb4, 0x38, 0x31, 0x0a, 0xf9, 0xd8, 0xd7, 0x34, 0x6f, 0xb4, 0x1f, 0x9b, 0x2d, 0xd2, 0xe8, 0x0b, 0x14, 0xc4, 0x5e, 0xb8, 0x7d, 0x4e, 0xd4, 0x8e, 0x37, 0xa5, 0x26, 0x0b, 0x52, 0x25, 0x7b, 0x3e, 0x99, 0x78, 0x7a, 0x13, 0xc5, 0x53, 0x92, 0xba, 0x93, 0x0c, 0x08, 0xe0, 0x24, 0x0e, 0x96, 0x0d, 0xef, 0x0c, 0x29, 0xb8, 0x55, 0x07, 0x45, 0xcf, 0x14, 0x9d, 0xee, 0x53, 0xa5, 0xd1, 0x74, 0xec, 0x06, 0x5d, 0x2d, 0x66, 0x77, 0xde, 0xe1, 0xfc, 0x42, 0x05, 0x70, 0x62, 0xc3, 0x4e, 0x27, 0xea, 0x5d, 0xbc, 0xdb, 0x86, 0x1b, 0x9f, 0x67, 0x0c, 0x60, 0x32, 0xc7, 0x84, 0x6c, 0xec, 0x8e, 0x87, 0xa7, 0xc9, 0x52, 0x0e, 0x27, 0x96, 0x7b, 0x01, 0x86, 0xee, 0x71, 0xb7, 0x7e, 0xd6, 0xd0, 0x29, 0xbb, 0xdd, 0x70, 0x94, 0x9c, 0xec, 0x4a, 0x70, 0x93, 0x29, 0xfa, 0x37, 0xfe, 0xe0, 0x02, 0x49, 0x0c, 0xc1, 0xbc, 0x4c, 0x2d, 0xf6, 0xf7, 0x63, 0xf9, 0x85, 0x8f, 0x33, 0xd7, 0x50, 0xc5, 0xb5, 0x05, 0xa6, 0x7e, 0x23, 0x70, 0x63, 0xc0, 0x48, 0x6f, 0x94, 0x56, 0xd3, 0xc6, 0x20, 0xd9, 0xac, 0x7c, 0x98, 0xf1, 0x38, 0x1d, 0xe0, 0xef, 0xfe, 0x41, 0xc1, 0x82, 0x59, 0x50, 0x4a, 0x15, 0x0d, 0x68, 0xa6, 0xa2, 0x8b, 0x0a, 0x3e, 0xea, 0x80, 0x3b, 0x85, 0x53, 0x15, 0xc9, 0xe0, };
6462 static const u8 ed25519_281_test_vectors_expected_sig[] = {
6463 	0x69, 0x42, 0xa7, 0x69, 0x64, 0x17, 0xef, 0xaa, 0x59, 0x1b, 0x95, 0xe1, 0x1f, 0x02, 0xd7, 0x63, 0xbe, 0xf5, 0x27, 0x9b, 0x93, 0x2a, 0x8e, 0x2a, 0x7c, 0xbb, 0x9f, 0x58, 0x36, 0x95, 0xc1, 0x4c, 0xe5, 0xcc, 0x55, 0x6b, 0xec, 0x66, 0x79, 0x9b, 0x33, 0xcb, 0x59, 0x2d, 0xa4, 0xdf, 0x27, 0x35, 0xf9, 0xee, 0xf2, 0xc3, 0xce, 0xca, 0x43, 0x62, 0x16, 0x4b, 0x6c, 0xc9, 0x3d, 0xa4, 0xe1, 0x05, };
6464 static const ec_test_case ed25519_281_test_case = {
6465 	.name = "EDDSA25519-SHA512/wei25519 281",
6466 	.ec_str_p = &wei25519_str_params,
6467 	.priv_key = ed25519_281_test_vectors_priv_key,
6468 	.priv_key_len = sizeof(ed25519_281_test_vectors_priv_key),
6469 	.nn_random = NULL,
6470 	.hash_type = SHA512,
6471 	.msg = (const char *)ed25519_281_test_vectors_message,
6472 	.msglen = sizeof(ed25519_281_test_vectors_message),
6473 	.sig_type = EDDSA25519,
6474 	.exp_sig = ed25519_281_test_vectors_expected_sig,
6475 	.exp_siglen = sizeof(ed25519_281_test_vectors_expected_sig),
6476 	.adata = NULL,
6477 	.adata_len = 0
6478 };
6479 
6480 /************************************************/
6481 static const u8 ed25519_282_test_vectors_priv_key[] = {
6482 	0xca, 0xd9, 0xd2, 0x1a, 0x01, 0xc7, 0xe1, 0xd1, 0x5d, 0xf2, 0xfb, 0xd7, 0x9c, 0x51, 0x6e, 0xb8, 0xc3, 0x40, 0x1e, 0x9f, 0xe2, 0x84, 0x67, 0xcc, 0x7b, 0x21, 0x67, 0x9d, 0x4e, 0x33, 0x1a, 0x3d, };
6483 static const u8 ed25519_282_test_vectors_message[] = {
6484 	0x70, 0x70, 0x2b, 0xf1, 0x9c, 0x91, 0x9f, 0x98, 0x36, 0xde, 0xfd, 0x7b, 0x84, 0x6f, 0xd9, 0x99, 0x2d, 0x8b, 0x7e, 0xb2, 0xe1, 0x06, 0xae, 0xb7, 0x1e, 0x60, 0xa3, 0x1b, 0x4e, 0xa2, 0x5a, 0x41, 0xb2, 0x12, 0xdc, 0x7d, 0xe7, 0xc9, 0x1c, 0xbd, 0x61, 0x3d, 0x58, 0xd0, 0x59, 0x5d, 0xb8, 0x33, 0xcf, 0xe7, 0xe5, 0x05, 0x84, 0xf2, 0x55, 0x69, 0x60, 0x2c, 0x77, 0x44, 0xfa, 0x67, 0x5d, 0x15, 0x6d, 0x0f, 0x63, 0xcd, 0x2b, 0x7c, 0x08, 0x9c, 0x8a, 0x00, 0x68, 0x6a, 0x43, 0x71, 0x69, 0x82, 0x6a, 0x12, 0xdc, 0x48, 0x5b, 0x38, 0xc0, 0x68, 0xa8, 0x00, 0x71, 0x42, 0xe5, 0x16, 0x37, 0x47, 0x01, 0x1a, 0x07, 0xa4, 0x15, 0x68, 0x36, 0x22, 0xab, 0x1e, 0x23, 0xce, 0x57, 0x7c, 0x73, 0x2b, 0xa1, 0x4f, 0x40, 0x1f, 0xbc, 0x30, 0x43, 0xe0, 0x69, 0x3a, 0x92, 0x05, 0xc1, 0x9a, 0x92, 0x29, 0x8a, 0x3d, 0x9b, 0x08, 0xfb, 0x7a, 0xfa, 0xfa, 0xe0, 0xa9, 0xf0, 0x16, 0xbc, 0x75, 0x0e, 0xe6, 0x31, 0xa5, 0xf5, 0xda, 0x5d, 0xb6, 0xf9, 0xba, 0x26, 0x92, 0xc7, 0x4c, 0xaa, 0xae, 0xb4, 0xd0, 0x97, 0xe9, 0x0e, 0x3c, 0x02, 0xd2, 0xe3, 0xa7, 0xfb, 0x3a, 0xa0, 0x00, 0x04, 0x0b, 0x7c, 0x17, 0xb7, 0x45, 0x64, 0xe6, 0x46, 0xbe, 0xa1, 0x6b, 0xad, 0x61, 0x1e, 0xbc, 0x08, 0x59, 0xa3, 0x82, 0x88, 0x04, 0xab, 0x4f, 0x5c, 0xfb, 0xa4, 0x17, 0xd2, 0x54, 0x51, 0x5c, 0xa3, 0x62, 0x0a, 0x3a, 0xd6, 0x83, 0xc4, 0x6c, 0xa6, 0x26, 0x7b, 0xb4, 0x95, 0x39, 0xbb, 0x30, 0xe3, 0x69, 0x08, 0x7e, 0x67, 0x43, 0x8e, 0x94, 0x89, 0x56, 0x27, 0x50, 0xdc, 0xcb, 0xa3, 0xaa, 0x0b, 0x1b, 0x0a, 0x6c, 0x26, 0x70, 0x32, 0xd2, 0x0c, 0x2a, 0xdb, 0x75, 0xe6, 0x8d, 0xf1, 0x12, 0x3b, 0x52, 0x59, 0xbf, 0xe4, 0xea, 0xc6, 0xca, 0xdc, 0xa6, 0x77, 0x81, 0x38, 0xa3, 0x73, 0x18, 0xad, 0xb3, 0x0e, 0x8d, 0x66, 0x9f, 0x3b, 0xc9, 0x69, 0x2c, 0xc7, 0x4b, 0x68, };
6485 static const u8 ed25519_282_test_vectors_expected_sig[] = {
6486 	0x31, 0x92, 0x7d, 0x01, 0xdb, 0x9f, 0x24, 0x72, 0xf4, 0xdf, 0x6f, 0x63, 0xc1, 0x8e, 0xbd, 0x83, 0xc2, 0xb1, 0xaa, 0xf8, 0x8d, 0x58, 0x0e, 0x84, 0x88, 0x54, 0xdf, 0x8c, 0xba, 0x63, 0x95, 0xd3, 0xda, 0x7b, 0xd6, 0xbb, 0x9e, 0xdc, 0x1f, 0xce, 0x1c, 0x7d, 0x7e, 0x13, 0x60, 0x55, 0x8f, 0xcd, 0xdf, 0xa9, 0x39, 0x15, 0xbe, 0x07, 0x6e, 0xfb, 0x8e, 0xa2, 0xdc, 0x5e, 0xa7, 0xb2, 0x0d, 0x0a, };
6487 static const ec_test_case ed25519_282_test_case = {
6488 	.name = "EDDSA25519-SHA512/wei25519 282",
6489 	.ec_str_p = &wei25519_str_params,
6490 	.priv_key = ed25519_282_test_vectors_priv_key,
6491 	.priv_key_len = sizeof(ed25519_282_test_vectors_priv_key),
6492 	.nn_random = NULL,
6493 	.hash_type = SHA512,
6494 	.msg = (const char *)ed25519_282_test_vectors_message,
6495 	.msglen = sizeof(ed25519_282_test_vectors_message),
6496 	.sig_type = EDDSA25519,
6497 	.exp_sig = ed25519_282_test_vectors_expected_sig,
6498 	.exp_siglen = sizeof(ed25519_282_test_vectors_expected_sig),
6499 	.adata = NULL,
6500 	.adata_len = 0
6501 };
6502 
6503 /************************************************/
6504 static const u8 ed25519_283_test_vectors_priv_key[] = {
6505 	0xd9, 0xbe, 0x84, 0x22, 0x55, 0xe9, 0xa1, 0x6b, 0x0a, 0x51, 0xa8, 0x67, 0x42, 0x18, 0xce, 0xe7, 0xcd, 0x9a, 0x8b, 0xdf, 0x34, 0x35, 0x08, 0x39, 0x7f, 0x4d, 0xdb, 0x05, 0xf3, 0xfa, 0x00, 0x82, };
6506 static const u8 ed25519_283_test_vectors_message[] = {
6507 	0xac, 0x6c, 0x55, 0xb1, 0x34, 0x66, 0x3e, 0x41, 0xf0, 0x2a, 0x6d, 0xcb, 0x85, 0x49, 0xea, 0xa1, 0xc0, 0x13, 0xf5, 0x96, 0x58, 0xd8, 0x1d, 0x81, 0x2f, 0x95, 0xb7, 0x40, 0x09, 0x51, 0x37, 0x23, 0x67, 0x19, 0x45, 0xe1, 0x32, 0x4f, 0x90, 0xf8, 0xa3, 0xf9, 0x71, 0x36, 0x91, 0x81, 0xb5, 0x87, 0xba, 0xb4, 0x56, 0x65, 0xf7, 0x88, 0xd6, 0x63, 0xab, 0x78, 0x14, 0x0c, 0x5a, 0x22, 0xc1, 0xc1, 0x8d, 0x4a, 0xfe, 0xdc, 0x74, 0x48, 0xa7, 0x48, 0xaf, 0xe5, 0xbf, 0x23, 0x87, 0x00, 0x3c, 0x1d, 0x65, 0xab, 0x18, 0x48, 0x2e, 0xf9, 0x89, 0x22, 0xb4, 0x70, 0xda, 0x80, 0xad, 0x14, 0xc9, 0x44, 0x95, 0x1c, 0xe4, 0xae, 0xd3, 0x73, 0x90, 0xcc, 0xe7, 0x9a, 0x8e, 0x01, 0xb2, 0x4c, 0x7d, 0xfc, 0x11, 0x41, 0xc0, 0xec, 0xa2, 0xc7, 0xf7, 0x73, 0xed, 0x4b, 0x11, 0x80, 0x6a, 0x34, 0x61, 0x55, 0x13, 0x48, 0x6e, 0x4e, 0xe1, 0x1a, 0xf0, 0x80, 0x78, 0xa1, 0xb4, 0x05, 0x4c, 0xf9, 0x88, 0x02, 0x98, 0x60, 0x8d, 0xd9, 0xb3, 0xfa, 0xa1, 0xa2, 0x42, 0xa4, 0x52, 0xfe, 0x51, 0x16, 0x04, 0xb3, 0x10, 0x2c, 0x31, 0x3d, 0x14, 0xcc, 0x27, 0xc6, 0xf0, 0xf8, 0x47, 0x1d, 0x94, 0x55, 0x53, 0x17, 0xea, 0xa2, 0x64, 0xcd, 0xf5, 0x2c, 0x69, 0xe1, 0x8f, 0x46, 0x1e, 0x47, 0x90, 0x3d, 0x21, 0x29, 0x87, 0x16, 0xb1, 0x72, 0xee, 0x9c, 0xb1, 0x78, 0xf0, 0x8f, 0xf2, 0xd3, 0xc9, 0xc1, 0x62, 0x12, 0x1c, 0x2e, 0xd2, 0x1d, 0x87, 0x34, 0xb2, 0xf0, 0x63, 0x0d, 0x39, 0x91, 0x46, 0xcb, 0xf7, 0x6e, 0x02, 0x8a, 0x14, 0x3f, 0x2b, 0xf7, 0xbb, 0x50, 0xaf, 0x0f, 0x57, 0xb9, 0xba, 0x80, 0x21, 0xd2, 0x64, 0xb0, 0x0c, 0x66, 0x62, 0xf8, 0x4c, 0x86, 0xcb, 0x6d, 0x59, 0x52, 0xb3, 0xd2, 0x41, 0xf7, 0xdc, 0x3e, 0x70, 0x0c, 0x96, 0x61, 0x6c, 0xbc, 0xfb, 0x0d, 0x0e, 0x75, 0x3f, 0xfd, 0x5d, 0x21, 0xee, 0x32, 0x0e, 0x65, 0xe9, 0x7e, 0x25, 0xcb, 0x86, 0x09, };
6508 static const u8 ed25519_283_test_vectors_expected_sig[] = {
6509 	0xc9, 0x38, 0x45, 0x65, 0x8c, 0x95, 0x60, 0xd2, 0xc0, 0xe2, 0x8f, 0x28, 0x2a, 0xdb, 0xd4, 0x65, 0x2b, 0xaf, 0xd3, 0xbb, 0x2e, 0xde, 0xc1, 0x7c, 0x94, 0x87, 0x8f, 0x7b, 0x94, 0xd3, 0xc7, 0x7a, 0xfe, 0xc9, 0x06, 0xed, 0x29, 0x2a, 0x8d, 0xfb, 0xf5, 0xf8, 0xe7, 0xc1, 0x18, 0xe8, 0xf2, 0xca, 0x33, 0xdd, 0xa7, 0x90, 0x9d, 0x9b, 0x69, 0x5b, 0x8f, 0xf5, 0xa1, 0xc0, 0xe9, 0x7a, 0xc8, 0x07, };
6510 static const ec_test_case ed25519_283_test_case = {
6511 	.name = "EDDSA25519-SHA512/wei25519 283",
6512 	.ec_str_p = &wei25519_str_params,
6513 	.priv_key = ed25519_283_test_vectors_priv_key,
6514 	.priv_key_len = sizeof(ed25519_283_test_vectors_priv_key),
6515 	.nn_random = NULL,
6516 	.hash_type = SHA512,
6517 	.msg = (const char *)ed25519_283_test_vectors_message,
6518 	.msglen = sizeof(ed25519_283_test_vectors_message),
6519 	.sig_type = EDDSA25519,
6520 	.exp_sig = ed25519_283_test_vectors_expected_sig,
6521 	.exp_siglen = sizeof(ed25519_283_test_vectors_expected_sig),
6522 	.adata = NULL,
6523 	.adata_len = 0
6524 };
6525 
6526 /************************************************/
6527 static const u8 ed25519_284_test_vectors_priv_key[] = {
6528 	0xcf, 0xc4, 0x8c, 0xc6, 0xf6, 0x58, 0x11, 0xfe, 0x7d, 0x7b, 0xba, 0x85, 0xd1, 0xcd, 0x84, 0x85, 0x8f, 0xd6, 0xf7, 0xed, 0xd6, 0x38, 0xf4, 0xf5, 0x52, 0x36, 0x3e, 0xe7, 0x68, 0x5f, 0x69, 0xca, };
6529 static const u8 ed25519_284_test_vectors_message[] = {
6530 	0x8e, 0x7d, 0xef, 0xb9, 0xd1, 0x6d, 0x03, 0x6b, 0xd6, 0x42, 0xcf, 0x22, 0x6e, 0x32, 0x77, 0x3e, 0x60, 0x53, 0x61, 0xc5, 0xec, 0x4b, 0x95, 0x12, 0x55, 0x78, 0x8d, 0xb0, 0xa0, 0x42, 0xc6, 0x3e, 0x5a, 0x43, 0x67, 0xd6, 0x15, 0x24, 0xf1, 0x0e, 0x62, 0x58, 0x99, 0x13, 0x25, 0xa3, 0x9a, 0xb6, 0xb0, 0x36, 0x12, 0x26, 0x0c, 0x3f, 0xe3, 0xdf, 0x20, 0xb3, 0x42, 0x02, 0xd3, 0x43, 0x95, 0xbd, 0x4e, 0xd4, 0x0b, 0xd6, 0x13, 0x73, 0xdf, 0x78, 0x1a, 0x4c, 0x8b, 0xcf, 0xbd, 0x15, 0x30, 0x10, 0x60, 0xf0, 0x74, 0x37, 0x73, 0x23, 0x33, 0xd8, 0xe4, 0x97, 0x36, 0x32, 0x2d, 0xee, 0x6b, 0x22, 0x43, 0x8e, 0x78, 0x7d, 0x88, 0x56, 0xb7, 0x0c, 0x26, 0xec, 0x57, 0xd6, 0xda, 0xde, 0x9c, 0x3c, 0x28, 0xe2, 0x72, 0x20, 0xc5, 0x67, 0x0e, 0x39, 0x35, 0x44, 0xed, 0x09, 0x59, 0x37, 0x29, 0x8d, 0xc3, 0xad, 0xc7, 0x38, 0x65, 0xf7, 0x77, 0xe9, 0x00, 0x37, 0xbd, 0xef, 0x83, 0x47, 0x16, 0x47, 0x6d, 0x78, 0xf4, 0xe6, 0xcb, 0x49, 0x61, 0xa4, 0xc6, 0x8a, 0x8a, 0x83, 0x63, 0x38, 0xa9, 0xf5, 0xda, 0x17, 0x9c, 0x4d, 0x5e, 0x93, 0xc3, 0xf7, 0x0d, 0xd3, 0x5e, 0xec, 0x70, 0x96, 0x53, 0xdd, 0x8d, 0xe3, 0x79, 0x96, 0xb1, 0x20, 0x56, 0xd4, 0xee, 0xfc, 0xb4, 0xb6, 0xb3, 0xc1, 0x3b, 0xa9, 0x84, 0xd8, 0x32, 0x27, 0x5c, 0x43, 0x86, 0xeb, 0xf4, 0xa8, 0xff, 0x7f, 0x07, 0x8b, 0xe3, 0xd4, 0x28, 0xc1, 0xe0, 0xd9, 0xb1, 0x62, 0x38, 0x1f, 0x06, 0xa5, 0xb7, 0xbb, 0x12, 0x70, 0x40, 0x03, 0xd9, 0x1f, 0x25, 0xd1, 0xd8, 0xfd, 0x43, 0x62, 0x6c, 0xe7, 0x0f, 0xff, 0x59, 0xd2, 0x92, 0x77, 0x68, 0xa7, 0x6b, 0xf7, 0xf9, 0xef, 0x76, 0xff, 0x95, 0x48, 0x9f, 0x38, 0xed, 0xcd, 0x1c, 0x9e, 0x9b, 0x8a, 0x8b, 0x0e, 0xf6, 0x6c, 0x32, 0x80, 0x57, 0x76, 0xd5, 0xae, 0x9f, 0xbd, 0x84, 0xa7, 0xaf, 0x4f, 0xa6, 0x56, 0x3e, 0xc7, 0x0a, 0xc5, 0x73, 0x3a, 0x44, };
6531 static const u8 ed25519_284_test_vectors_expected_sig[] = {
6532 	0x80, 0xc5, 0xd5, 0x1e, 0x96, 0xd1, 0xca, 0xc8, 0xef, 0xd3, 0x45, 0x98, 0x25, 0xe7, 0x9c, 0x1e, 0x9f, 0x65, 0xaf, 0x70, 0x1d, 0x1d, 0x29, 0xe1, 0xf9, 0x5b, 0x03, 0x67, 0x07, 0x11, 0x3b, 0x77, 0x98, 0x4b, 0x7b, 0x33, 0x50, 0xf0, 0x40, 0x77, 0x33, 0x3c, 0x95, 0x7f, 0x8f, 0xbc, 0x7d, 0x9b, 0x04, 0x0c, 0x36, 0x26, 0x51, 0x41, 0x7b, 0x98, 0x99, 0x02, 0x7c, 0xd3, 0x3e, 0xdb, 0x11, 0x03, };
6533 static const ec_test_case ed25519_284_test_case = {
6534 	.name = "EDDSA25519-SHA512/wei25519 284",
6535 	.ec_str_p = &wei25519_str_params,
6536 	.priv_key = ed25519_284_test_vectors_priv_key,
6537 	.priv_key_len = sizeof(ed25519_284_test_vectors_priv_key),
6538 	.nn_random = NULL,
6539 	.hash_type = SHA512,
6540 	.msg = (const char *)ed25519_284_test_vectors_message,
6541 	.msglen = sizeof(ed25519_284_test_vectors_message),
6542 	.sig_type = EDDSA25519,
6543 	.exp_sig = ed25519_284_test_vectors_expected_sig,
6544 	.exp_siglen = sizeof(ed25519_284_test_vectors_expected_sig),
6545 	.adata = NULL,
6546 	.adata_len = 0
6547 };
6548 
6549 /************************************************/
6550 static const u8 ed25519_285_test_vectors_priv_key[] = {
6551 	0x15, 0xc9, 0xf7, 0xc4, 0xd8, 0x4a, 0x5a, 0x47, 0x90, 0x41, 0x95, 0x2e, 0x6a, 0x8c, 0xac, 0x24, 0xe7, 0x6f, 0xd2, 0xd2, 0x75, 0xc1, 0x97, 0xe6, 0xb5, 0x21, 0x92, 0x9b, 0x43, 0xba, 0x6c, 0x5d, };
6552 static const u8 ed25519_285_test_vectors_message[] = {
6553 	0x11, 0x73, 0x0d, 0xd4, 0x5d, 0xda, 0x80, 0xd8, 0x4d, 0x08, 0x0d, 0x92, 0xe9, 0xbd, 0xda, 0xee, 0xa6, 0x87, 0x8e, 0x4a, 0x0b, 0x3b, 0x51, 0x2d, 0x9e, 0xa7, 0x33, 0x80, 0x8e, 0x1c, 0xef, 0x51, 0xd4, 0x90, 0x48, 0xd6, 0xc7, 0x81, 0x16, 0xa4, 0xbd, 0xe3, 0xc6, 0x4a, 0xce, 0xaa, 0x52, 0xbe, 0xca, 0x86, 0xb3, 0x31, 0xab, 0x59, 0xe9, 0x18, 0x5c, 0x70, 0x28, 0x6a, 0x02, 0xbb, 0x5d, 0xd0, 0x4f, 0x5c, 0x7f, 0x4e, 0x9c, 0x7e, 0x44, 0x5e, 0x77, 0x45, 0x85, 0x65, 0xf1, 0x59, 0xc7, 0x83, 0xdf, 0xd4, 0xd9, 0x76, 0xa9, 0x10, 0xe9, 0x37, 0x78, 0x9d, 0x21, 0x41, 0xd4, 0x16, 0xed, 0x3a, 0x7f, 0x60, 0x8d, 0x26, 0x73, 0x7a, 0x86, 0xb2, 0x0b, 0x62, 0x4e, 0x3c, 0x36, 0xaf, 0x18, 0xd2, 0x5c, 0x7d, 0x59, 0xb8, 0xd7, 0x42, 0x7e, 0xc6, 0xc4, 0xd3, 0xd4, 0x38, 0xd7, 0xae, 0x09, 0x49, 0xdd, 0x7d, 0x74, 0x8c, 0x1f, 0xfd, 0x6f, 0x28, 0xe8, 0x28, 0x5d, 0x44, 0x04, 0x22, 0xd2, 0x2a, 0x37, 0x61, 0x20, 0x2e, 0x95, 0x84, 0xf5, 0xcd, 0xb3, 0x50, 0x45, 0x47, 0xaa, 0x4b, 0x68, 0x57, 0x30, 0xc9, 0x82, 0xcb, 0xa2, 0x13, 0xde, 0x08, 0x02, 0x0a, 0x5e, 0x4e, 0x46, 0xa9, 0x5f, 0xac, 0x4b, 0x48, 0x1b, 0xea, 0x0b, 0x63, 0x0a, 0xbd, 0x03, 0x0d, 0xdd, 0x33, 0x5a, 0x20, 0xfe, 0x2c, 0xf7, 0x09, 0x4a, 0xef, 0x48, 0x13, 0x95, 0x69, 0x91, 0x91, 0x3c, 0x68, 0x21, 0xf4, 0xb5, 0x41, 0x0d, 0xf4, 0xf1, 0x33, 0xfe, 0x63, 0xe2, 0x2c, 0x08, 0x09, 0x2a, 0x0a, 0x65, 0x97, 0x27, 0x22, 0xa2, 0x7a, 0xe4, 0x20, 0x11, 0xa8, 0x07, 0xc3, 0x27, 0xb4, 0x17, 0x23, 0x7c, 0x54, 0x01, 0x14, 0xee, 0xcb, 0x9f, 0x0e, 0x96, 0xcd, 0xa5, 0xdc, 0xf0, 0x24, 0x6f, 0x1d, 0x27, 0x17, 0xf4, 0x9b, 0x9c, 0xea, 0x9d, 0xc6, 0xa3, 0xda, 0x9b, 0x39, 0x6f, 0x02, 0x70, 0x52, 0x92, 0x26, 0xf5, 0xdc, 0xba, 0x64, 0x99, 0x91, 0x8a, 0x6c, 0x28, 0x9f, 0xe0, 0x55, 0xfe, 0xc8, };
6554 static const u8 ed25519_285_test_vectors_expected_sig[] = {
6555 	0x1e, 0x36, 0xbe, 0xa5, 0xa5, 0x83, 0x76, 0x7e, 0xbd, 0x80, 0x30, 0x6c, 0xab, 0x23, 0x31, 0x55, 0xb7, 0xb4, 0x28, 0x14, 0xb4, 0x34, 0x73, 0xcf, 0x45, 0xcd, 0xc5, 0x03, 0x9c, 0x93, 0x97, 0x44, 0xa9, 0x69, 0x4b, 0x87, 0x22, 0x0d, 0xaf, 0x4c, 0xcd, 0x29, 0xf2, 0x5c, 0xea, 0x40, 0x5e, 0x7c, 0x08, 0xdb, 0x2e, 0xf1, 0x7f, 0x3f, 0x03, 0x4d, 0xbb, 0x49, 0xcf, 0xf6, 0x02, 0x83, 0xe3, 0x06, };
6556 static const ec_test_case ed25519_285_test_case = {
6557 	.name = "EDDSA25519-SHA512/wei25519 285",
6558 	.ec_str_p = &wei25519_str_params,
6559 	.priv_key = ed25519_285_test_vectors_priv_key,
6560 	.priv_key_len = sizeof(ed25519_285_test_vectors_priv_key),
6561 	.nn_random = NULL,
6562 	.hash_type = SHA512,
6563 	.msg = (const char *)ed25519_285_test_vectors_message,
6564 	.msglen = sizeof(ed25519_285_test_vectors_message),
6565 	.sig_type = EDDSA25519,
6566 	.exp_sig = ed25519_285_test_vectors_expected_sig,
6567 	.exp_siglen = sizeof(ed25519_285_test_vectors_expected_sig),
6568 	.adata = NULL,
6569 	.adata_len = 0
6570 };
6571 
6572 /************************************************/
6573 static const u8 ed25519_286_test_vectors_priv_key[] = {
6574 	0x6d, 0x2d, 0x0d, 0x82, 0x3f, 0x29, 0x47, 0x46, 0xb9, 0xa5, 0x51, 0x2e, 0x14, 0xe7, 0x3c, 0x1d, 0x85, 0x5b, 0x5e, 0x4b, 0xca, 0x65, 0xfe, 0x81, 0x77, 0x29, 0x81, 0x0c, 0xc5, 0xef, 0x84, 0x0d, };
6575 static const u8 ed25519_286_test_vectors_message[] = {
6576 	0x87, 0x72, 0x72, 0x1f, 0x72, 0xea, 0xf7, 0xf7, 0x30, 0x40, 0xc0, 0x68, 0xa7, 0xc3, 0x75, 0x3b, 0xff, 0xca, 0x7d, 0xc2, 0xd0, 0x93, 0x0c, 0x65, 0x25, 0xf4, 0x25, 0xe6, 0x00, 0x5c, 0x25, 0xcd, 0x4c, 0x0f, 0xf5, 0x09, 0x5c, 0x9c, 0x61, 0xa5, 0xd8, 0xa1, 0x96, 0x7b, 0x8c, 0x86, 0x01, 0x0c, 0x88, 0x4e, 0x50, 0x9e, 0x6b, 0x16, 0x70, 0xf7, 0x90, 0x46, 0xe2, 0x29, 0x79, 0xeb, 0xd3, 0x54, 0x73, 0x40, 0x90, 0xd3, 0xad, 0xa2, 0x14, 0x35, 0xc1, 0xf8, 0x25, 0x4f, 0x7b, 0x52, 0x22, 0xcd, 0x55, 0x64, 0xf0, 0x64, 0xe9, 0x77, 0x64, 0x03, 0x66, 0x44, 0x9f, 0x4e, 0x50, 0x08, 0xf8, 0x70, 0xf9, 0xc4, 0x84, 0x05, 0x65, 0xbf, 0x4f, 0xb5, 0xf5, 0x74, 0xc9, 0x77, 0x4b, 0xa2, 0x56, 0x8e, 0x71, 0xa9, 0xcc, 0xd8, 0x2f, 0xfc, 0x59, 0xb6, 0x94, 0xf2, 0x6e, 0x7d, 0xe4, 0xce, 0x2e, 0x3f, 0xd8, 0x80, 0xa0, 0xee, 0xf3, 0x87, 0x93, 0x13, 0x33, 0xed, 0xe0, 0x0d, 0xcb, 0x06, 0x5e, 0x6d, 0x0f, 0x79, 0x59, 0x1a, 0x2a, 0xa9, 0x56, 0xdf, 0x19, 0x48, 0xa2, 0x65, 0xcb, 0x95, 0x75, 0x0d, 0x8a, 0x23, 0x3b, 0x15, 0xc2, 0x88, 0xa0, 0x54, 0x87, 0xc5, 0x15, 0x66, 0x3f, 0x93, 0xe7, 0x40, 0xfb, 0x15, 0x70, 0xfb, 0xe4, 0xbd, 0x80, 0xc6, 0x8e, 0x8d, 0x92, 0x97, 0x34, 0x5a, 0x8a, 0x01, 0xcd, 0xbd, 0x88, 0xf4, 0xa3, 0x9b, 0xed, 0x9c, 0x5e, 0xf0, 0x9f, 0x14, 0x4b, 0xce, 0x5d, 0xe5, 0x68, 0xbf, 0x37, 0x33, 0xbc, 0x53, 0xb2, 0x03, 0x9a, 0x29, 0xcb, 0x3e, 0x19, 0x45, 0x01, 0xad, 0xc1, 0xc1, 0x0e, 0x86, 0x38, 0x3a, 0xac, 0x8b, 0x0f, 0x85, 0xc6, 0x7a, 0x66, 0x89, 0xbb, 0xe1, 0x47, 0x0a, 0x39, 0x24, 0x76, 0x31, 0x34, 0x39, 0xca, 0x88, 0xd9, 0x8c, 0x02, 0x1c, 0x0e, 0xae, 0xc2, 0x5f, 0xb2, 0xf9, 0xa1, 0x60, 0xce, 0x5c, 0x78, 0x61, 0x70, 0xbe, 0x02, 0x38, 0xfb, 0x87, 0x85, 0xdd, 0x33, 0xbf, 0xa9, 0x05, 0x9a, 0x6c, 0x37, 0x02, 0xd0, 0xde, 0x05, };
6577 static const u8 ed25519_286_test_vectors_expected_sig[] = {
6578 	0xb5, 0x15, 0xf4, 0x9e, 0xb3, 0x2a, 0xd4, 0x78, 0x69, 0x2d, 0xf8, 0x8f, 0x07, 0xb7, 0x80, 0x2c, 0x6e, 0x0e, 0x53, 0x27, 0xaa, 0x08, 0xa6, 0x36, 0x6e, 0x4c, 0xb1, 0xd1, 0xe2, 0x6f, 0x9e, 0x65, 0xfc, 0x81, 0xab, 0xeb, 0xe2, 0x21, 0x5d, 0x64, 0x91, 0x00, 0xf2, 0x75, 0x98, 0x27, 0x3a, 0x41, 0x2b, 0x62, 0x4e, 0x84, 0x2d, 0x81, 0x30, 0x40, 0x37, 0x97, 0xe5, 0x7d, 0xec, 0x97, 0x5a, 0x0a, };
6579 static const ec_test_case ed25519_286_test_case = {
6580 	.name = "EDDSA25519-SHA512/wei25519 286",
6581 	.ec_str_p = &wei25519_str_params,
6582 	.priv_key = ed25519_286_test_vectors_priv_key,
6583 	.priv_key_len = sizeof(ed25519_286_test_vectors_priv_key),
6584 	.nn_random = NULL,
6585 	.hash_type = SHA512,
6586 	.msg = (const char *)ed25519_286_test_vectors_message,
6587 	.msglen = sizeof(ed25519_286_test_vectors_message),
6588 	.sig_type = EDDSA25519,
6589 	.exp_sig = ed25519_286_test_vectors_expected_sig,
6590 	.exp_siglen = sizeof(ed25519_286_test_vectors_expected_sig),
6591 	.adata = NULL,
6592 	.adata_len = 0
6593 };
6594 
6595 /************************************************/
6596 static const u8 ed25519_287_test_vectors_priv_key[] = {
6597 	0xc0, 0xcf, 0x79, 0x9a, 0xf7, 0x39, 0x5b, 0xf2, 0x7b, 0xaf, 0xa3, 0x6c, 0xab, 0x43, 0x70, 0x45, 0xe3, 0x9c, 0x90, 0x3b, 0xf8, 0x07, 0x54, 0x83, 0x19, 0xce, 0x44, 0xf2, 0x87, 0x49, 0x4f, 0xbb, };
6598 static const u8 ed25519_287_test_vectors_message[] = {
6599 	0xdb, 0xe6, 0x57, 0x80, 0xe9, 0x68, 0xde, 0x9e, 0x40, 0xff, 0xb5, 0x7c, 0xf5, 0x9a, 0x60, 0xfd, 0x93, 0xb3, 0xf9, 0xa5, 0xe7, 0xd8, 0xed, 0x51, 0x80, 0xad, 0xbc, 0x57, 0x8c, 0xa1, 0xbc, 0x48, 0xbd, 0x9f, 0xb6, 0x0a, 0x13, 0x24, 0xc9, 0xc2, 0xc1, 0x14, 0x14, 0x79, 0xa0, 0xdc, 0xf0, 0xf1, 0xd0, 0x7e, 0x84, 0x93, 0x65, 0x26, 0xdf, 0x42, 0x33, 0x3c, 0x0d, 0x77, 0x3e, 0x3f, 0xed, 0x9e, 0x40, 0x38, 0xde, 0x5b, 0x95, 0xad, 0x90, 0x5c, 0x92, 0xcb, 0xe0, 0x40, 0x48, 0x7b, 0xf5, 0x5e, 0x10, 0xe1, 0xed, 0xb4, 0x29, 0xa0, 0xec, 0xc4, 0xe0, 0xe8, 0xd0, 0x0a, 0x98, 0x8a, 0x9c, 0xd5, 0x3e, 0x2e, 0xb3, 0x72, 0xf4, 0xfc, 0x4c, 0xd9, 0x53, 0x7b, 0x26, 0x9b, 0xa3, 0xa2, 0x3c, 0xef, 0xbc, 0x8d, 0xf6, 0x47, 0x6e, 0x75, 0x43, 0x4b, 0x81, 0xd9, 0x3e, 0x88, 0x91, 0xbf, 0x41, 0x7c, 0x82, 0xe3, 0x63, 0xf3, 0xe4, 0xab, 0xf8, 0x0a, 0x4f, 0x73, 0xac, 0xa8, 0x4a, 0xc7, 0xdf, 0x63, 0x37, 0xf5, 0x36, 0xd6, 0x3d, 0x93, 0x9d, 0x92, 0xcb, 0xa6, 0x4b, 0xe7, 0x42, 0x22, 0x11, 0x16, 0x06, 0x9e, 0xf2, 0x51, 0xab, 0xba, 0x0b, 0x00, 0xaf, 0x01, 0x71, 0x8b, 0xb5, 0x80, 0xdd, 0xbe, 0xb7, 0x99, 0x73, 0xef, 0x10, 0xa6, 0x8b, 0x4d, 0x0f, 0xa0, 0x23, 0xd6, 0xeb, 0xd3, 0x07, 0x9d, 0x6b, 0x32, 0xa1, 0xaa, 0x20, 0xa2, 0x1e, 0x92, 0x02, 0xf2, 0x75, 0x90, 0xc3, 0xf0, 0xc0, 0xcc, 0x25, 0x30, 0x73, 0xc3, 0xf8, 0x22, 0xaa, 0xc4, 0x59, 0xd3, 0x9f, 0x50, 0x75, 0x8b, 0x70, 0xc0, 0x07, 0x10, 0xa3, 0xc9, 0x84, 0x38, 0x41, 0x65, 0x08, 0x52, 0x2e, 0x51, 0x2a, 0xda, 0xa0, 0xaf, 0xd5, 0x03, 0xa7, 0xce, 0xb0, 0x4f, 0xb9, 0x4a, 0x4a, 0x93, 0x2c, 0xe8, 0x0c, 0xd5, 0xa7, 0xf1, 0x1b, 0xb8, 0x61, 0x26, 0x3f, 0x58, 0xe5, 0x74, 0x9d, 0x54, 0x2a, 0x11, 0x0d, 0xe7, 0xc7, 0x68, 0x9d, 0xfc, 0xb0, 0xc5, 0x1a, 0xfa, 0x9d, 0x54, 0xa5, 0x8f, 0xf8, 0x9f, 0x3f, 0x67, };
6600 static const u8 ed25519_287_test_vectors_expected_sig[] = {
6601 	0x5b, 0xba, 0x01, 0xa4, 0xc7, 0xb2, 0x55, 0x42, 0xd0, 0x69, 0x12, 0xde, 0x70, 0xaa, 0x1e, 0x22, 0x04, 0x23, 0xfd, 0xf8, 0x33, 0x8a, 0x9e, 0x69, 0x33, 0x95, 0xcb, 0x6f, 0x0d, 0xc1, 0xfb, 0xfd, 0x01, 0x8e, 0x3c, 0x77, 0xe5, 0x0a, 0xef, 0x90, 0xa9, 0x08, 0x0f, 0x30, 0xf1, 0xf5, 0x79, 0x2b, 0x24, 0x31, 0x07, 0x8f, 0xe6, 0xe3, 0xe0, 0x04, 0x64, 0x24, 0x5e, 0x17, 0xcd, 0x8d, 0xc1, 0x07, };
6602 static const ec_test_case ed25519_287_test_case = {
6603 	.name = "EDDSA25519-SHA512/wei25519 287",
6604 	.ec_str_p = &wei25519_str_params,
6605 	.priv_key = ed25519_287_test_vectors_priv_key,
6606 	.priv_key_len = sizeof(ed25519_287_test_vectors_priv_key),
6607 	.nn_random = NULL,
6608 	.hash_type = SHA512,
6609 	.msg = (const char *)ed25519_287_test_vectors_message,
6610 	.msglen = sizeof(ed25519_287_test_vectors_message),
6611 	.sig_type = EDDSA25519,
6612 	.exp_sig = ed25519_287_test_vectors_expected_sig,
6613 	.exp_siglen = sizeof(ed25519_287_test_vectors_expected_sig),
6614 	.adata = NULL,
6615 	.adata_len = 0
6616 };
6617 
6618 /************************************************/
6619 static const u8 ed25519_288_test_vectors_priv_key[] = {
6620 	0xcd, 0xaa, 0x50, 0xe8, 0x52, 0x7d, 0xc7, 0xa5, 0x0f, 0xb3, 0x7e, 0x28, 0xfa, 0x8b, 0x95, 0x68, 0xc3, 0x7e, 0x85, 0x67, 0xe0, 0xb4, 0x99, 0x99, 0x7b, 0x9a, 0xed, 0x67, 0x61, 0x80, 0xc3, 0xb0, };
6621 static const u8 ed25519_288_test_vectors_message[] = {
6622 	0x94, 0xfc, 0xfb, 0xaa, 0xa3, 0x03, 0xde, 0xce, 0x7b, 0x90, 0x8f, 0x87, 0x4c, 0xc5, 0xf0, 0x95, 0x06, 0x1f, 0x17, 0x54, 0xbb, 0x35, 0x78, 0x0d, 0xb6, 0x66, 0xb6, 0x3a, 0xb8, 0x29, 0x08, 0x11, 0xbf, 0x1c, 0x52, 0x1a, 0x7f, 0x8f, 0x78, 0x5e, 0xa2, 0x70, 0xdf, 0xb3, 0x9d, 0x0d, 0x6e, 0xd9, 0x5a, 0xb7, 0x19, 0x55, 0xa1, 0x1f, 0xfa, 0xea, 0xa2, 0x68, 0xe0, 0x81, 0xff, 0x3e, 0x4f, 0x24, 0x25, 0xb4, 0x18, 0x80, 0xa9, 0x87, 0x15, 0x1e, 0x67, 0x8e, 0x89, 0x11, 0x13, 0x50, 0x94, 0x2d, 0x82, 0x0c, 0x3e, 0xec, 0x36, 0x21, 0x24, 0x26, 0x66, 0x3b, 0xe1, 0x75, 0xe5, 0x28, 0x6b, 0x4a, 0xd1, 0xcc, 0x80, 0x4e, 0x3e, 0x3a, 0x03, 0xb9, 0xfa, 0x3e, 0x82, 0x83, 0x8e, 0xbb, 0xc2, 0x61, 0x5a, 0x64, 0x5f, 0x2c, 0xa1, 0x46, 0x8a, 0xc4, 0xa1, 0xcd, 0xbe, 0x52, 0x37, 0x61, 0xe8, 0x3f, 0x43, 0x81, 0xb0, 0xc8, 0x55, 0x0a, 0xe5, 0xe8, 0xc8, 0xcd, 0x1f, 0xda, 0x57, 0x19, 0x14, 0x36, 0xe2, 0x7c, 0xb8, 0x83, 0xbc, 0x64, 0xbe, 0x86, 0xa9, 0xdc, 0x61, 0x10, 0xef, 0x34, 0x01, 0xd8, 0x8a, 0x7d, 0xeb, 0xd1, 0xb7, 0x01, 0xd9, 0xc2, 0x57, 0xa6, 0x82, 0x6c, 0xf0, 0x1e, 0x9e, 0x29, 0x22, 0xe3, 0xae, 0x57, 0x7f, 0x28, 0x34, 0x27, 0x5f, 0xb0, 0xec, 0xda, 0x80, 0xed, 0x8c, 0xf1, 0x80, 0x1e, 0x0b, 0xc5, 0xe0, 0x1e, 0x26, 0xa7, 0x7c, 0x48, 0xbd, 0xf4, 0x6a, 0x5c, 0x48, 0x94, 0xd2, 0x2a, 0xb5, 0x3e, 0x74, 0x18, 0x27, 0xe2, 0x4b, 0xed, 0x5f, 0x07, 0x50, 0xff, 0xad, 0x05, 0xe5, 0x3f, 0x1d, 0x5e, 0x61, 0xdf, 0xd3, 0x16, 0xb1, 0x91, 0xd9, 0x79, 0x7e, 0xf7, 0x13, 0x13, 0x1a, 0x8b, 0x43, 0x0a, 0xbe, 0x3f, 0xac, 0x5f, 0x3c, 0x4a, 0x2c, 0xa0, 0x21, 0x87, 0x8b, 0x15, 0xad, 0xc8, 0xc5, 0xf5, 0x42, 0x11, 0x42, 0x60, 0xe6, 0x87, 0xa9, 0xd1, 0x99, 0xd2, 0x30, 0xc4, 0xe0, 0xd3, 0xfc, 0x69, 0x69, 0x93, 0xb5, 0x9c, 0xcf, 0xa3, 0xff, 0xa9, 0xd8, 0xd2, 0xfb, };
6623 static const u8 ed25519_288_test_vectors_expected_sig[] = {
6624 	0x13, 0x7b, 0xd1, 0x0a, 0x50, 0xef, 0x60, 0x93, 0x84, 0xfe, 0x66, 0x87, 0x68, 0xfb, 0x87, 0x1d, 0xe7, 0x41, 0xca, 0x0f, 0x53, 0xff, 0x84, 0x77, 0xd7, 0xeb, 0xfa, 0x90, 0xaa, 0xfd, 0x5e, 0x26, 0x81, 0xfd, 0xf1, 0xb8, 0x92, 0x50, 0x46, 0x3c, 0x15, 0xdb, 0x8e, 0x17, 0xa5, 0x88, 0x25, 0xfe, 0x94, 0x27, 0xde, 0x08, 0x9c, 0x34, 0xde, 0x13, 0xcd, 0x07, 0xbb, 0xa1, 0x8d, 0x4a, 0xa4, 0x0d, };
6625 static const ec_test_case ed25519_288_test_case = {
6626 	.name = "EDDSA25519-SHA512/wei25519 288",
6627 	.ec_str_p = &wei25519_str_params,
6628 	.priv_key = ed25519_288_test_vectors_priv_key,
6629 	.priv_key_len = sizeof(ed25519_288_test_vectors_priv_key),
6630 	.nn_random = NULL,
6631 	.hash_type = SHA512,
6632 	.msg = (const char *)ed25519_288_test_vectors_message,
6633 	.msglen = sizeof(ed25519_288_test_vectors_message),
6634 	.sig_type = EDDSA25519,
6635 	.exp_sig = ed25519_288_test_vectors_expected_sig,
6636 	.exp_siglen = sizeof(ed25519_288_test_vectors_expected_sig),
6637 	.adata = NULL,
6638 	.adata_len = 0
6639 };
6640 
6641 /************************************************/
6642 static const u8 ed25519_289_test_vectors_priv_key[] = {
6643 	0x0f, 0xde, 0xa9, 0xbe, 0xe6, 0x28, 0x8f, 0x94, 0x7e, 0x0a, 0xdb, 0xdd, 0xa4, 0xdf, 0xb2, 0xba, 0xa0, 0x38, 0x91, 0xaf, 0x25, 0x02, 0x4a, 0x5e, 0x13, 0x8a, 0xc7, 0x79, 0x84, 0xd0, 0x05, 0x07, };
6644 static const u8 ed25519_289_test_vectors_message[] = {
6645 	0xcf, 0x72, 0xc1, 0xa1, 0x80, 0xa2, 0xbc, 0x37, 0xd8, 0x47, 0x8d, 0x9a, 0x7a, 0x39, 0xac, 0xf0, 0x3b, 0xf2, 0xa5, 0x07, 0x90, 0xf7, 0x90, 0x2f, 0x81, 0x12, 0x12, 0x22, 0xd3, 0x1d, 0x3e, 0xc9, 0x16, 0xf4, 0xf2, 0x4c, 0xef, 0x9d, 0x7c, 0x41, 0xdc, 0x02, 0x1b, 0x0e, 0x84, 0x87, 0xbb, 0x89, 0x2e, 0x47, 0x30, 0x5e, 0x54, 0x52, 0x03, 0x03, 0xe8, 0x9b, 0x30, 0xb2, 0x63, 0xda, 0xc4, 0xa9, 0xba, 0x37, 0x5d, 0x46, 0xc4, 0x0f, 0xcf, 0x40, 0x05, 0x35, 0xc9, 0x59, 0xd2, 0xb7, 0x46, 0xa7, 0xfc, 0x97, 0x0c, 0xf6, 0x5b, 0x47, 0x2e, 0x84, 0xb5, 0xf1, 0xd0, 0xeb, 0xad, 0xcf, 0xa1, 0xae, 0xd6, 0xfc, 0x47, 0xfa, 0xcc, 0xe1, 0x6a, 0x36, 0x6a, 0x3b, 0x1d, 0x6e, 0x51, 0x68, 0x13, 0xc1, 0x96, 0x09, 0x75, 0xf8, 0xf2, 0xb4, 0x30, 0x42, 0xfb, 0x4e, 0xea, 0xab, 0xe6, 0x3c, 0x6f, 0x65, 0xdb, 0x45, 0xdd, 0xb7, 0xdb, 0x88, 0x8a, 0x19, 0xa9, 0xd7, 0xba, 0x6c, 0xa4, 0x79, 0xfc, 0xd7, 0x0c, 0x5d, 0x1e, 0x97, 0x0f, 0x12, 0xc1, 0x4f, 0x4d, 0x24, 0xfb, 0x7e, 0x2f, 0x35, 0x7b, 0xd3, 0xa9, 0x4a, 0xa1, 0xb8, 0x68, 0xcc, 0xc0, 0x84, 0x7f, 0x2e, 0xef, 0x21, 0x85, 0x3e, 0x25, 0x3b, 0xaf, 0xbf, 0x07, 0xc4, 0xe6, 0x17, 0x6a, 0x1e, 0xf0, 0x77, 0x16, 0x78, 0x41, 0xeb, 0xbe, 0x56, 0x29, 0x33, 0x71, 0x57, 0xf3, 0x9f, 0x75, 0xc7, 0x1d, 0x21, 0xe7, 0xe9, 0x6c, 0x51, 0xa1, 0xb1, 0x6f, 0xa8, 0xdc, 0x60, 0xf0, 0xb1, 0x27, 0x9f, 0xcd, 0xa2, 0x64, 0x1f, 0xc8, 0x59, 0x1e, 0x3c, 0x49, 0x2f, 0x15, 0xbf, 0x83, 0xca, 0xf1, 0xd9, 0x5b, 0x2c, 0xd9, 0x13, 0x32, 0xf1, 0xb4, 0x20, 0x2f, 0xe7, 0x28, 0x62, 0xca, 0x2e, 0xa2, 0xef, 0x92, 0xc1, 0x1d, 0xb8, 0x31, 0xd8, 0x2f, 0x8f, 0xc3, 0xd4, 0x1f, 0xe2, 0x9a, 0x76, 0xc2, 0x11, 0xa7, 0x58, 0xe2, 0xf7, 0x1b, 0xd8, 0x9d, 0x2c, 0x66, 0x10, 0xf2, 0x01, 0x42, 0x9f, 0x34, 0x8d, 0x56, 0xe1, 0x0e, 0x3b, 0x7a, 0xf5, 0x3e, 0x27, };
6646 static const u8 ed25519_289_test_vectors_expected_sig[] = {
6647 	0x80, 0xc4, 0x2d, 0xd5, 0xdf, 0x03, 0xb2, 0x85, 0xa8, 0x6a, 0xc9, 0x5c, 0xe6, 0x66, 0x9f, 0x78, 0x6a, 0x97, 0x8a, 0x81, 0x3a, 0x9d, 0x7b, 0x8c, 0x6a, 0x23, 0xde, 0x76, 0xfb, 0xd0, 0x9b, 0xdb, 0x66, 0xc5, 0xdd, 0x1c, 0xc9, 0xf1, 0xa1, 0x76, 0xcb, 0xa3, 0x88, 0xd5, 0x05, 0x17, 0x64, 0xa3, 0x2f, 0xa2, 0x7f, 0x00, 0x28, 0xba, 0x48, 0x98, 0x06, 0x8b, 0xd0, 0x1a, 0x3e, 0xe1, 0x72, 0x08, };
6648 static const ec_test_case ed25519_289_test_case = {
6649 	.name = "EDDSA25519-SHA512/wei25519 289",
6650 	.ec_str_p = &wei25519_str_params,
6651 	.priv_key = ed25519_289_test_vectors_priv_key,
6652 	.priv_key_len = sizeof(ed25519_289_test_vectors_priv_key),
6653 	.nn_random = NULL,
6654 	.hash_type = SHA512,
6655 	.msg = (const char *)ed25519_289_test_vectors_message,
6656 	.msglen = sizeof(ed25519_289_test_vectors_message),
6657 	.sig_type = EDDSA25519,
6658 	.exp_sig = ed25519_289_test_vectors_expected_sig,
6659 	.exp_siglen = sizeof(ed25519_289_test_vectors_expected_sig),
6660 	.adata = NULL,
6661 	.adata_len = 0
6662 };
6663 
6664 /************************************************/
6665 static const u8 ed25519_290_test_vectors_priv_key[] = {
6666 	0x03, 0xd5, 0xe4, 0x66, 0xf8, 0x29, 0x8a, 0xb5, 0x43, 0x8a, 0x30, 0x97, 0x6d, 0x13, 0x22, 0xa7, 0x21, 0x5a, 0x64, 0x2d, 0xd5, 0xfb, 0x4c, 0x3f, 0x85, 0x19, 0x40, 0x9a, 0x75, 0x22, 0xf0, 0x92, };
6667 static const u8 ed25519_290_test_vectors_message[] = {
6668 	0x1b, 0x47, 0xb7, 0x00, 0x13, 0xcb, 0x53, 0xe1, 0xf8, 0xf4, 0x97, 0x1e, 0x0f, 0x39, 0x56, 0x3c, 0xe8, 0x7e, 0xdb, 0xc2, 0xce, 0xdd, 0x99, 0xe5, 0xa3, 0x55, 0x85, 0xdf, 0x8b, 0x00, 0xa8, 0x52, 0xf7, 0xb9, 0xc9, 0x7c, 0x7e, 0x4a, 0x54, 0x65, 0xfc, 0x56, 0x05, 0xae, 0x8c, 0x5c, 0x36, 0x57, 0x0a, 0x99, 0x20, 0x1a, 0x7a, 0xd6, 0x03, 0x12, 0x87, 0xef, 0x0c, 0x7b, 0x2b, 0xa6, 0xe5, 0x7b, 0x05, 0x6d, 0x0f, 0xc8, 0xd6, 0xca, 0x43, 0xbf, 0x6c, 0xbd, 0xab, 0x09, 0x89, 0x34, 0xb4, 0x03, 0x19, 0x7b, 0x52, 0x5d, 0x22, 0xd4, 0x5e, 0x6b, 0x29, 0xc7, 0x8f, 0x8d, 0x61, 0x83, 0xe4, 0x1f, 0xfe, 0x19, 0x7d, 0xae, 0x25, 0xba, 0x22, 0xb0, 0x66, 0x69, 0xae, 0x05, 0xba, 0xdd, 0x7e, 0x1d, 0xa6, 0x93, 0x2a, 0x7d, 0x05, 0x4c, 0xba, 0xb3, 0xf5, 0x4e, 0x51, 0x46, 0x22, 0x3a, 0xd8, 0x67, 0x12, 0x31, 0xbc, 0x16, 0xfe, 0x62, 0x67, 0x9b, 0xd2, 0x81, 0x7a, 0x6b, 0x80, 0xe6, 0x53, 0x99, 0x8c, 0x49, 0x49, 0xf8, 0x1f, 0xf5, 0x3b, 0x61, 0x73, 0x16, 0x3e, 0x11, 0xda, 0x3e, 0x6d, 0x3c, 0x76, 0xd8, 0x4c, 0x71, 0x32, 0x25, 0xb4, 0x17, 0x3d, 0x6b, 0xf0, 0x6a, 0x85, 0xb6, 0x98, 0x8a, 0x48, 0xbe, 0x43, 0x59, 0xcb, 0x51, 0x55, 0x03, 0xca, 0x56, 0x3f, 0x43, 0x53, 0xf8, 0xe7, 0xd4, 0x5e, 0x4d, 0x94, 0x46, 0x2c, 0x89, 0xa0, 0x4a, 0x00, 0xf1, 0xb3, 0xb0, 0xca, 0x64, 0x22, 0xd5, 0xdb, 0x02, 0x9c, 0x50, 0x7d, 0x46, 0x48, 0x34, 0xa2, 0x0c, 0x78, 0xa7, 0x13, 0x66, 0x1d, 0x84, 0xed, 0xff, 0xc4, 0x96, 0xd6, 0x92, 0x82, 0x61, 0x98, 0x94, 0x43, 0x7b, 0x44, 0x87, 0x95, 0x4c, 0xbe, 0xa2, 0xaa, 0x72, 0x61, 0xe6, 0xa6, 0x2b, 0x68, 0x51, 0x15, 0x4a, 0x5d, 0x25, 0xfb, 0x6b, 0x4f, 0x09, 0xc5, 0x94, 0x73, 0xd3, 0x85, 0xce, 0x03, 0xe9, 0x1b, 0xa8, 0x65, 0xea, 0xb6, 0x6c, 0x58, 0xc0, 0xab, 0xb0, 0xb7, 0xa7, 0x8e, 0x4b, 0xe9, 0x27, 0xe5, 0x54, 0x60, 0xcc, 0xd7, 0x0d, 0x82, };
6669 static const u8 ed25519_290_test_vectors_expected_sig[] = {
6670 	0x6d, 0x7e, 0x46, 0x58, 0xf2, 0x6f, 0x33, 0x7c, 0x98, 0xe0, 0x3f, 0x13, 0x54, 0x2e, 0x2f, 0x39, 0x44, 0x0f, 0xf7, 0xbf, 0x8d, 0x88, 0xf3, 0xf6, 0xdf, 0xa4, 0xd6, 0x49, 0x48, 0xcd, 0x96, 0xb7, 0x90, 0x51, 0x49, 0x2f, 0xc2, 0x8f, 0x65, 0xf2, 0xcc, 0x0d, 0x23, 0xa0, 0xc4, 0xd5, 0xe2, 0x30, 0x7b, 0xb1, 0xc4, 0x7e, 0x11, 0xe5, 0x3b, 0x37, 0x1f, 0x09, 0x1b, 0x69, 0xf8, 0x0d, 0xbd, 0x05, };
6671 static const ec_test_case ed25519_290_test_case = {
6672 	.name = "EDDSA25519-SHA512/wei25519 290",
6673 	.ec_str_p = &wei25519_str_params,
6674 	.priv_key = ed25519_290_test_vectors_priv_key,
6675 	.priv_key_len = sizeof(ed25519_290_test_vectors_priv_key),
6676 	.nn_random = NULL,
6677 	.hash_type = SHA512,
6678 	.msg = (const char *)ed25519_290_test_vectors_message,
6679 	.msglen = sizeof(ed25519_290_test_vectors_message),
6680 	.sig_type = EDDSA25519,
6681 	.exp_sig = ed25519_290_test_vectors_expected_sig,
6682 	.exp_siglen = sizeof(ed25519_290_test_vectors_expected_sig),
6683 	.adata = NULL,
6684 	.adata_len = 0
6685 };
6686 
6687 /************************************************/
6688 static const u8 ed25519_291_test_vectors_priv_key[] = {
6689 	0x76, 0xcc, 0x18, 0xa1, 0xda, 0xff, 0xfa, 0x10, 0x05, 0x86, 0xc0, 0x6a, 0x7b, 0x40, 0xf7, 0x9c, 0x35, 0xfe, 0x55, 0x8c, 0x33, 0x9c, 0x29, 0x99, 0xa5, 0xf4, 0x38, 0x75, 0xcf, 0xad, 0xe0, 0x3e, };
6690 static const u8 ed25519_291_test_vectors_message[] = {
6691 	0x45, 0x22, 0xb1, 0xd8, 0x23, 0x73, 0xf7, 0xa3, 0x18, 0x22, 0x1e, 0x7e, 0x57, 0x61, 0x75, 0x03, 0xdd, 0xf4, 0x4f, 0xd5, 0x39, 0x97, 0x52, 0x2a, 0x1d, 0x96, 0x3c, 0x85, 0xb7, 0x08, 0xd0, 0xb2, 0x45, 0xde, 0x37, 0x2a, 0xd5, 0x2e, 0xc7, 0xf5, 0x4f, 0x62, 0x13, 0xd2, 0x71, 0xf7, 0xc9, 0x1d, 0x5a, 0x1d, 0x36, 0xd1, 0x34, 0xdb, 0x38, 0x9d, 0xf0, 0xb0, 0x81, 0xa0, 0x6b, 0xc0, 0xc7, 0xa4, 0x87, 0x5f, 0x72, 0x40, 0x92, 0x79, 0x31, 0x72, 0xc9, 0x11, 0x56, 0x41, 0xc6, 0xd0, 0x54, 0xf1, 0xd9, 0x92, 0xe0, 0xfa, 0xe4, 0xdf, 0x58, 0x69, 0x5f, 0x0e, 0xa3, 0x44, 0x9d, 0x7a, 0x4b, 0x3a, 0x88, 0x57, 0xe1, 0x98, 0x03, 0xfe, 0x49, 0xb6, 0xd5, 0x2c, 0x9f, 0xf3, 0x74, 0x6a, 0x57, 0x4a, 0x27, 0x56, 0x95, 0x65, 0x79, 0xf9, 0xfb, 0x80, 0x9a, 0x0e, 0xde, 0xc9, 0x2c, 0x55, 0xe9, 0x5f, 0xfe, 0xfa, 0x3d, 0x05, 0xf1, 0x65, 0x82, 0x2f, 0x46, 0x4a, 0x21, 0x99, 0x9f, 0x29, 0x69, 0x1f, 0x67, 0x44, 0xac, 0x5a, 0x3e, 0xe4, 0x90, 0x17, 0x88, 0x06, 0x45, 0xe8, 0x37, 0xed, 0xeb, 0xfd, 0x2e, 0x0f, 0x24, 0x99, 0x7f, 0x04, 0x11, 0x45, 0xa7, 0x2e, 0x23, 0x76, 0xad, 0xa2, 0x83, 0x18, 0x6c, 0xa2, 0xb8, 0x36, 0x36, 0x29, 0x77, 0x19, 0x5b, 0xae, 0xe3, 0x0a, 0x3a, 0xcc, 0x81, 0xb2, 0x43, 0xf3, 0xee, 0x37, 0x6a, 0x2c, 0x47, 0x64, 0xc7, 0x83, 0x66, 0x7a, 0x4b, 0x11, 0x77, 0xe7, 0x95, 0x1d, 0x3e, 0x3c, 0x7b, 0xe4, 0xf1, 0xbd, 0x7a, 0xe8, 0xc6, 0x0f, 0xd5, 0xfb, 0x0f, 0xd9, 0x1f, 0x0c, 0x1c, 0x14, 0xd0, 0xd2, 0x32, 0x7e, 0x8f, 0x20, 0xd9, 0x2c, 0x0d, 0xfc, 0xc5, 0x38, 0x70, 0xe9, 0xd9, 0x9f, 0xdb, 0xf9, 0xdd, 0x9a, 0x17, 0xe8, 0x82, 0x50, 0x9a, 0xe7, 0xba, 0xa8, 0x65, 0x3e, 0x39, 0xed, 0xc8, 0xee, 0x56, 0x90, 0x00, 0xd6, 0x24, 0xcb, 0x93, 0xa0, 0x75, 0x4a, 0x79, 0x8d, 0x1f, 0x81, 0x1f, 0x6a, 0x0e, 0xf5, 0x50, 0x1a, 0x17, 0xbc, 0xf2, 0x5f, 0xd0, 0xf9, 0x16, 0x26, };
6692 static const u8 ed25519_291_test_vectors_expected_sig[] = {
6693 	0xdb, 0x74, 0x75, 0x1c, 0x66, 0xe6, 0xb1, 0x86, 0x60, 0x44, 0xdd, 0x9a, 0xe9, 0x9f, 0x19, 0xe6, 0x33, 0x4f, 0x17, 0x9e, 0x79, 0xd8, 0xb8, 0xe0, 0xc8, 0xcd, 0x71, 0xd2, 0x2c, 0xef, 0xb9, 0xea, 0xb7, 0xe3, 0xe7, 0xa9, 0xc2, 0xda, 0x22, 0x5f, 0x2a, 0x9d, 0x93, 0xa3, 0x13, 0xd1, 0xcb, 0xf1, 0xb7, 0xfe, 0x25, 0x97, 0xb8, 0xd7, 0x02, 0xbf, 0x30, 0x17, 0xa6, 0xa6, 0xbc, 0x7b, 0x7b, 0x06, };
6694 static const ec_test_case ed25519_291_test_case = {
6695 	.name = "EDDSA25519-SHA512/wei25519 291",
6696 	.ec_str_p = &wei25519_str_params,
6697 	.priv_key = ed25519_291_test_vectors_priv_key,
6698 	.priv_key_len = sizeof(ed25519_291_test_vectors_priv_key),
6699 	.nn_random = NULL,
6700 	.hash_type = SHA512,
6701 	.msg = (const char *)ed25519_291_test_vectors_message,
6702 	.msglen = sizeof(ed25519_291_test_vectors_message),
6703 	.sig_type = EDDSA25519,
6704 	.exp_sig = ed25519_291_test_vectors_expected_sig,
6705 	.exp_siglen = sizeof(ed25519_291_test_vectors_expected_sig),
6706 	.adata = NULL,
6707 	.adata_len = 0
6708 };
6709 
6710 /************************************************/
6711 static const u8 ed25519_292_test_vectors_priv_key[] = {
6712 	0x71, 0xad, 0x98, 0x0d, 0x58, 0xad, 0x8e, 0x7d, 0x33, 0x30, 0x66, 0x89, 0x35, 0x89, 0x36, 0xa3, 0x72, 0xd5, 0x19, 0x0b, 0x24, 0xec, 0x7f, 0x9b, 0xde, 0x74, 0x9c, 0xb8, 0x11, 0x50, 0xef, 0xda, };
6713 static const u8 ed25519_292_test_vectors_message[] = {
6714 	0xe8, 0x7a, 0xe0, 0x73, 0xff, 0x5d, 0xcc, 0x54, 0x85, 0xa1, 0x99, 0x40, 0xe4, 0xe3, 0xff, 0x26, 0x3a, 0x06, 0x18, 0xa9, 0x02, 0x5a, 0xd4, 0x03, 0x2d, 0xfb, 0x36, 0xd1, 0x71, 0xce, 0x88, 0x1f, 0x71, 0xc1, 0x8a, 0x49, 0x21, 0x0e, 0xb4, 0x58, 0x19, 0x80, 0x61, 0x42, 0xe2, 0xf0, 0x0d, 0xb3, 0x04, 0x18, 0x35, 0xbf, 0x2c, 0x3b, 0xcc, 0xf1, 0xdb, 0xa0, 0x2b, 0x8b, 0x5a, 0x5b, 0xda, 0xf8, 0xfe, 0xa3, 0x16, 0xc0, 0x62, 0x3d, 0xd4, 0x8a, 0x56, 0x4e, 0xc1, 0x66, 0xf0, 0x37, 0xd5, 0x87, 0xc8, 0xc0, 0x16, 0x84, 0xe5, 0xe5, 0xc0, 0xba, 0x9d, 0xba, 0x4d, 0x23, 0xb4, 0x9a, 0x03, 0x09, 0x24, 0x4e, 0x28, 0x2a, 0x51, 0x40, 0x86, 0x22, 0xed, 0xb0, 0x57, 0x04, 0x74, 0x7e, 0x0c, 0xde, 0xec, 0x97, 0x68, 0x93, 0x77, 0x70, 0x71, 0x09, 0x89, 0x72, 0xc1, 0x13, 0xa8, 0xab, 0x63, 0x9c, 0x31, 0xf1, 0x61, 0x32, 0x33, 0xee, 0x46, 0x0e, 0xea, 0x8a, 0x8c, 0x10, 0xe1, 0xe6, 0xe1, 0x52, 0x21, 0x45, 0x29, 0x87, 0x8c, 0xf1, 0xad, 0xae, 0xaf, 0x78, 0xcf, 0x19, 0xba, 0xc7, 0x13, 0x61, 0x81, 0x5b, 0xf5, 0x79, 0x55, 0x49, 0x8f, 0xab, 0x4f, 0x0f, 0x2b, 0x75, 0x86, 0xc8, 0x6f, 0x9f, 0x4c, 0x2d, 0xdf, 0x89, 0x72, 0xf9, 0xb9, 0xe0, 0xeb, 0x63, 0x6d, 0x84, 0xbc, 0xc1, 0x43, 0x85, 0xb2, 0xd0, 0x38, 0xbe, 0x55, 0xa9, 0x63, 0x70, 0x2e, 0xfe, 0x22, 0x5a, 0x50, 0xbd, 0xd0, 0xc4, 0xda, 0x92, 0xa2, 0xa6, 0xa0, 0x91, 0x00, 0xea, 0x04, 0xa2, 0x11, 0xd3, 0x96, 0x45, 0x8d, 0xce, 0xb4, 0x48, 0x71, 0x16, 0x83, 0x7d, 0x13, 0x9e, 0xb0, 0xf1, 0x22, 0x53, 0x8e, 0xd3, 0x98, 0x6a, 0xd0, 0xaf, 0x4d, 0xa2, 0xdf, 0xfc, 0x89, 0xf3, 0x26, 0x9c, 0xa8, 0x85, 0x38, 0x08, 0x6e, 0x69, 0x1e, 0x5b, 0xea, 0xe9, 0x58, 0x1e, 0x7c, 0x63, 0xd8, 0xe6, 0x12, 0xda, 0x2c, 0x47, 0xf7, 0x4d, 0xde, 0x1d, 0x94, 0x95, 0x1e, 0xad, 0xb0, 0xdf, 0x60, 0xc3, 0x89, 0x7d, 0x2a, 0x30, 0x95, 0xc5, 0x06, 0x09, 0x3b, };
6715 static const u8 ed25519_292_test_vectors_expected_sig[] = {
6716 	0x81, 0x67, 0x0b, 0x10, 0x29, 0xe4, 0x81, 0xe9, 0xff, 0x3c, 0x17, 0x1f, 0x05, 0xc1, 0x68, 0x61, 0xc8, 0x46, 0xee, 0x79, 0xcd, 0xf2, 0xe2, 0x1e, 0x3b, 0xf9, 0x52, 0xbc, 0xfa, 0xc9, 0x75, 0x65, 0xf2, 0xb1, 0xdc, 0xed, 0xf6, 0x9d, 0x2e, 0x7e, 0xb3, 0x5c, 0xaf, 0x56, 0x62, 0xe8, 0xbc, 0x67, 0x1f, 0xbb, 0x96, 0x75, 0x6a, 0x63, 0xa5, 0x96, 0x26, 0x4d, 0x1b, 0x7f, 0x4a, 0xf9, 0x7e, 0x06, };
6717 static const ec_test_case ed25519_292_test_case = {
6718 	.name = "EDDSA25519-SHA512/wei25519 292",
6719 	.ec_str_p = &wei25519_str_params,
6720 	.priv_key = ed25519_292_test_vectors_priv_key,
6721 	.priv_key_len = sizeof(ed25519_292_test_vectors_priv_key),
6722 	.nn_random = NULL,
6723 	.hash_type = SHA512,
6724 	.msg = (const char *)ed25519_292_test_vectors_message,
6725 	.msglen = sizeof(ed25519_292_test_vectors_message),
6726 	.sig_type = EDDSA25519,
6727 	.exp_sig = ed25519_292_test_vectors_expected_sig,
6728 	.exp_siglen = sizeof(ed25519_292_test_vectors_expected_sig),
6729 	.adata = NULL,
6730 	.adata_len = 0
6731 };
6732 
6733 /************************************************/
6734 static const u8 ed25519_293_test_vectors_priv_key[] = {
6735 	0x61, 0x59, 0x4e, 0x24, 0xe7, 0x5f, 0x99, 0x6b, 0x4f, 0xb6, 0xb3, 0xe5, 0x63, 0xf6, 0xa4, 0xf9, 0x91, 0x5c, 0xfa, 0x65, 0xdd, 0xb1, 0x99, 0xb0, 0x1f, 0xed, 0x7f, 0x8e, 0xd7, 0x82, 0x4e, 0xcb, };
6736 static const u8 ed25519_293_test_vectors_message[] = {
6737 	0xbc, 0x01, 0xb0, 0x8c, 0x7c, 0xaa, 0x23, 0x61, 0x00, 0xa0, 0x12, 0xa7, 0x26, 0x47, 0x7d, 0x0e, 0xc3, 0x89, 0xdb, 0xfa, 0xda, 0xc7, 0x3d, 0x51, 0x06, 0x42, 0x4c, 0x5d, 0x1f, 0x3d, 0x1c, 0xef, 0x16, 0x95, 0xcf, 0xd9, 0x3a, 0x70, 0x62, 0xec, 0x8b, 0xf1, 0x06, 0x70, 0x47, 0x85, 0x49, 0x20, 0x16, 0x2f, 0x65, 0x13, 0x57, 0xbe, 0xdf, 0x1c, 0xd5, 0xa9, 0x2e, 0xc2, 0x9b, 0xdb, 0x5d, 0xff, 0x71, 0x6e, 0x8f, 0x60, 0x25, 0x51, 0x5a, 0x95, 0x49, 0xba, 0x36, 0xcd, 0xc3, 0x5c, 0xed, 0x7c, 0x5c, 0x0c, 0x36, 0x8e, 0x6c, 0xd9, 0x2f, 0x2f, 0x10, 0xae, 0x14, 0x6a, 0x20, 0x72, 0x8c, 0x37, 0x4b, 0xba, 0x50, 0x96, 0x41, 0xce, 0x88, 0xcb, 0x42, 0xff, 0xf0, 0xce, 0xdf, 0xd9, 0xfd, 0x67, 0xf3, 0x10, 0xf9, 0xd0, 0x1a, 0x3f, 0x36, 0x90, 0xeb, 0x21, 0xdb, 0x17, 0xbc, 0xe6, 0x7a, 0xe3, 0x5c, 0x4c, 0xd2, 0x4c, 0x20, 0x9f, 0x09, 0xf0, 0x44, 0x75, 0x9d, 0x8d, 0x5a, 0x7d, 0x24, 0x8e, 0x2b, 0xd9, 0x66, 0x52, 0x4b, 0xa8, 0xc0, 0xc2, 0x89, 0x74, 0x72, 0x6b, 0x43, 0xbd, 0x05, 0xde, 0x84, 0x34, 0x33, 0xcc, 0x40, 0x05, 0x98, 0x92, 0x29, 0x74, 0x62, 0x3d, 0x9a, 0xcb, 0xfd, 0xc7, 0x61, 0xc4, 0xc0, 0x43, 0x75, 0xa9, 0x52, 0xce, 0x54, 0xca, 0xff, 0xaa, 0x96, 0xac, 0xff, 0x6d, 0x9d, 0xc2, 0x78, 0x74, 0x2a, 0xf4, 0x76, 0xe1, 0x86, 0x5c, 0xb8, 0xc2, 0x0d, 0x13, 0xd1, 0xc1, 0x90, 0x08, 0x63, 0xbc, 0xa2, 0x31, 0xe4, 0x4c, 0x6b, 0x0d, 0x47, 0xcb, 0x41, 0xd5, 0x10, 0xf7, 0x95, 0x8f, 0x48, 0xf3, 0x04, 0xd0, 0x3d, 0xa0, 0x33, 0x48, 0x4a, 0x3e, 0x1f, 0x27, 0x3f, 0xaf, 0x69, 0x83, 0x37, 0x5b, 0x7d, 0x3b, 0xe0, 0x3d, 0x8a, 0x0a, 0x00, 0x2d, 0xef, 0x63, 0x65, 0xbe, 0xb2, 0xfa, 0x8c, 0xcf, 0x1a, 0x94, 0x98, 0x7a, 0xdc, 0xd3, 0x3d, 0x0d, 0xa1, 0x17, 0x7f, 0xc5, 0x15, 0x9b, 0x6e, 0x56, 0xd0, 0x04, 0x30, 0x1e, 0x92, 0x1d, 0xbc, 0x12, 0xec, 0x0a, 0x73, 0xf4, 0x13, 0xcf, 0x2c, 0x48, };
6738 static const u8 ed25519_293_test_vectors_expected_sig[] = {
6739 	0x63, 0x02, 0xb3, 0xff, 0x27, 0x10, 0xbe, 0x30, 0x6c, 0x92, 0xb9, 0xaa, 0xe3, 0x0d, 0x23, 0xc3, 0xd4, 0xbe, 0xff, 0x39, 0x4e, 0x63, 0x20, 0x1e, 0x6a, 0xd1, 0x17, 0x13, 0x34, 0x5c, 0x4f, 0xcb, 0x5c, 0xc8, 0xd3, 0xdd, 0x10, 0xad, 0xfb, 0x82, 0xbb, 0x11, 0xa1, 0x89, 0xce, 0x7e, 0xc3, 0xe4, 0x22, 0x27, 0x27, 0x62, 0x4f, 0xc1, 0x78, 0x81, 0xc1, 0x47, 0x88, 0xd2, 0x71, 0x0e, 0x16, 0x08, };
6740 static const ec_test_case ed25519_293_test_case = {
6741 	.name = "EDDSA25519-SHA512/wei25519 293",
6742 	.ec_str_p = &wei25519_str_params,
6743 	.priv_key = ed25519_293_test_vectors_priv_key,
6744 	.priv_key_len = sizeof(ed25519_293_test_vectors_priv_key),
6745 	.nn_random = NULL,
6746 	.hash_type = SHA512,
6747 	.msg = (const char *)ed25519_293_test_vectors_message,
6748 	.msglen = sizeof(ed25519_293_test_vectors_message),
6749 	.sig_type = EDDSA25519,
6750 	.exp_sig = ed25519_293_test_vectors_expected_sig,
6751 	.exp_siglen = sizeof(ed25519_293_test_vectors_expected_sig),
6752 	.adata = NULL,
6753 	.adata_len = 0
6754 };
6755 
6756 /************************************************/
6757 static const u8 ed25519_294_test_vectors_priv_key[] = {
6758 	0x54, 0xe6, 0xbb, 0xfb, 0xf8, 0xc0, 0x6f, 0xf2, 0xc0, 0x66, 0x31, 0x8c, 0x2e, 0xbf, 0x03, 0xd5, 0x06, 0x54, 0x7b, 0xf4, 0x3c, 0x2d, 0x7a, 0x5d, 0x4d, 0xf3, 0x05, 0xa3, 0x03, 0x2b, 0x71, 0x38, };
6759 static const u8 ed25519_294_test_vectors_message[] = {
6760 	0x03, 0x18, 0xd7, 0xcb, 0x48, 0x05, 0xaf, 0x98, 0x21, 0xdd, 0x3f, 0x91, 0x4b, 0x0e, 0x07, 0x6f, 0xea, 0x04, 0xa7, 0xd2, 0xdb, 0x3a, 0x59, 0xa0, 0x0a, 0xff, 0xea, 0xd3, 0x32, 0x5a, 0x2b, 0xe4, 0x0c, 0x1f, 0x87, 0xf5, 0x32, 0x76, 0xa8, 0x55, 0x26, 0x04, 0xf2, 0x28, 0xb9, 0x76, 0xe2, 0x88, 0xb9, 0xbe, 0x90, 0x6a, 0x7b, 0xd2, 0x5b, 0x2f, 0xfa, 0xb8, 0xa8, 0xaf, 0x5d, 0x0f, 0x6e, 0x08, 0x78, 0x6f, 0xd0, 0x34, 0xe2, 0xfe, 0x1e, 0xb7, 0xee, 0x03, 0x39, 0x79, 0x86, 0x0d, 0xd1, 0xe5, 0x32, 0x72, 0x87, 0xe9, 0xe6, 0x15, 0xf5, 0xdc, 0x5a, 0x96, 0x0f, 0x17, 0x02, 0x6b, 0x56, 0x84, 0x2f, 0xc8, 0xd4, 0x4c, 0xad, 0x00, 0x2e, 0xdc, 0x85, 0x01, 0xcf, 0xb9, 0x56, 0x00, 0x15, 0x02, 0xe4, 0xdd, 0xc8, 0x1a, 0x77, 0x00, 0xd9, 0xc0, 0xbe, 0x88, 0xeb, 0x4a, 0xaa, 0x64, 0xa6, 0xcb, 0xc3, 0x9d, 0xe8, 0x2f, 0x13, 0xc1, 0x10, 0x86, 0xde, 0x1a, 0x42, 0x70, 0xd3, 0xaf, 0x97, 0x28, 0x4b, 0xac, 0x1c, 0xae, 0xf1, 0xd3, 0xed, 0xaa, 0x10, 0x71, 0x66, 0x6b, 0xd8, 0x3b, 0x2e, 0xde, 0x39, 0x62, 0xd9, 0x8b, 0x9d, 0x93, 0x49, 0x7d, 0xdf, 0xd8, 0xe9, 0x7d, 0xab, 0x30, 0x89, 0x95, 0x0c, 0xf3, 0x0e, 0xd1, 0x1d, 0xb7, 0x7a, 0xd1, 0x43, 0x7a, 0x0a, 0xf5, 0x88, 0x9d, 0x8e, 0xfc, 0x44, 0xe6, 0x12, 0x42, 0x0e, 0x39, 0x07, 0x26, 0x7d, 0xf3, 0xac, 0xff, 0x4b, 0xd3, 0xfb, 0x6e, 0x8c, 0xa5, 0xba, 0xdf, 0x8e, 0x72, 0xf9, 0xde, 0x39, 0x52, 0x86, 0x53, 0x05, 0x85, 0x24, 0x45, 0x6a, 0x81, 0xda, 0x5f, 0x84, 0x98, 0x2a, 0xfa, 0xc3, 0x4b, 0xef, 0x5f, 0x71, 0xe9, 0x1f, 0x8f, 0x90, 0x93, 0x8a, 0x6f, 0x5f, 0x1f, 0x28, 0x77, 0x16, 0xde, 0x56, 0xa0, 0x94, 0x6d, 0x26, 0x1e, 0x87, 0xbc, 0x77, 0x5c, 0xe1, 0x89, 0xe4, 0x1a, 0x77, 0xba, 0xed, 0xe7, 0x32, 0x0a, 0x3c, 0x60, 0x8f, 0xc9, 0x71, 0xe5, 0x5d, 0x0a, 0x77, 0x3c, 0x4d, 0x84, 0x8d, 0x42, 0x86, 0x37, 0xf1, 0x1b, 0x4e, 0x44, 0x60, 0x39, 0x0c, };
6761 static const u8 ed25519_294_test_vectors_expected_sig[] = {
6762 	0x3d, 0xf4, 0xd0, 0x90, 0x79, 0xf8, 0x30, 0xe3, 0xf9, 0x82, 0x28, 0x36, 0x81, 0xba, 0x37, 0xb5, 0x0f, 0x3c, 0x73, 0xde, 0x2c, 0x5d, 0x22, 0xa2, 0x91, 0x35, 0x8e, 0xbb, 0x1f, 0xb8, 0x54, 0xe5, 0x10, 0xf6, 0x3f, 0x9a, 0x48, 0xe9, 0xff, 0xf7, 0xfd, 0x83, 0x11, 0x30, 0x2e, 0xa3, 0xe9, 0x69, 0x39, 0x4e, 0x6d, 0x49, 0xc9, 0xe3, 0x18, 0x20, 0x54, 0x94, 0x2f, 0x6a, 0x74, 0x4c, 0xee, 0x03, };
6763 static const ec_test_case ed25519_294_test_case = {
6764 	.name = "EDDSA25519-SHA512/wei25519 294",
6765 	.ec_str_p = &wei25519_str_params,
6766 	.priv_key = ed25519_294_test_vectors_priv_key,
6767 	.priv_key_len = sizeof(ed25519_294_test_vectors_priv_key),
6768 	.nn_random = NULL,
6769 	.hash_type = SHA512,
6770 	.msg = (const char *)ed25519_294_test_vectors_message,
6771 	.msglen = sizeof(ed25519_294_test_vectors_message),
6772 	.sig_type = EDDSA25519,
6773 	.exp_sig = ed25519_294_test_vectors_expected_sig,
6774 	.exp_siglen = sizeof(ed25519_294_test_vectors_expected_sig),
6775 	.adata = NULL,
6776 	.adata_len = 0
6777 };
6778 
6779 /************************************************/
6780 static const u8 ed25519_295_test_vectors_priv_key[] = {
6781 	0x68, 0x62, 0x06, 0x1b, 0xe0, 0xde, 0x9d, 0xfd, 0x99, 0x81, 0x18, 0x20, 0x4b, 0x2b, 0x98, 0xdb, 0x3c, 0xe7, 0xd7, 0xe8, 0x19, 0xdb, 0xc1, 0x07, 0x94, 0xaf, 0x0a, 0xb2, 0xb0, 0x6e, 0x84, 0x34, };
6782 static const u8 ed25519_295_test_vectors_message[] = {
6783 	0x17, 0x40, 0xdd, 0xe8, 0x43, 0x4a, 0x0d, 0x68, 0x99, 0x25, 0x67, 0x9b, 0x0c, 0x18, 0x03, 0x00, 0xcd, 0xbd, 0x0c, 0xf6, 0xa8, 0x9a, 0xd8, 0xfd, 0xe3, 0x46, 0x53, 0x31, 0x6c, 0xee, 0x4c, 0x57, 0x1a, 0x41, 0x05, 0xc9, 0xe9, 0xe0, 0x28, 0x42, 0x38, 0xfe, 0xf2, 0xc3, 0x8a, 0x09, 0x15, 0x7c, 0x5d, 0xb9, 0x43, 0x40, 0x57, 0x1b, 0x39, 0x0a, 0xdf, 0xb6, 0x9f, 0xf4, 0xc0, 0xdc, 0x50, 0x53, 0x25, 0x3a, 0x67, 0x9d, 0x42, 0xcc, 0x1f, 0x1b, 0xf1, 0xff, 0x42, 0x92, 0x29, 0xea, 0x0a, 0x50, 0x44, 0xc6, 0xf7, 0x95, 0x64, 0xe0, 0xdd, 0x28, 0x7f, 0x53, 0xf0, 0x15, 0xb8, 0x31, 0x87, 0xd9, 0xad, 0x27, 0xd9, 0x10, 0x39, 0xaf, 0x06, 0x2c, 0x43, 0x7b, 0x15, 0x75, 0xa0, 0xea, 0xb6, 0xae, 0xb8, 0xaa, 0x0d, 0x27, 0xb2, 0x76, 0x65, 0xd6, 0xde, 0xa9, 0x04, 0x1f, 0xf9, 0x96, 0x3a, 0x31, 0x18, 0xb3, 0x29, 0x8a, 0x85, 0x44, 0xe3, 0xfd, 0x69, 0xac, 0x68, 0x77, 0xe3, 0xe4, 0x05, 0x2f, 0xe4, 0x42, 0x2b, 0xf0, 0x35, 0x60, 0xb2, 0xc5, 0x7e, 0xc5, 0x31, 0xee, 0x8b, 0x5f, 0xf5, 0x3c, 0x28, 0xdb, 0xde, 0x35, 0xbb, 0x45, 0xc3, 0x50, 0x77, 0x63, 0x6e, 0x6f, 0x84, 0x1b, 0x59, 0xd7, 0xeb, 0x77, 0xbc, 0x77, 0x91, 0xb6, 0x09, 0x38, 0x58, 0xa3, 0xa8, 0x0a, 0x3a, 0xa6, 0xd7, 0x78, 0xdb, 0xf5, 0x3d, 0xb9, 0xd0, 0x61, 0x19, 0xc5, 0x0b, 0x71, 0xc7, 0x91, 0xc0, 0x49, 0x5c, 0x57, 0x6d, 0x1b, 0x59, 0xd3, 0x96, 0x87, 0x3e, 0xd8, 0x71, 0x48, 0x53, 0x52, 0xc8, 0x29, 0x9a, 0x35, 0x9d, 0xa5, 0xee, 0x9d, 0x7f, 0x36, 0xed, 0x14, 0x55, 0xf8, 0x98, 0x51, 0xa3, 0x08, 0x51, 0xbe, 0xa7, 0x19, 0x68, 0x5a, 0xec, 0xd0, 0x8f, 0x25, 0x56, 0x26, 0x09, 0xdd, 0x10, 0x66, 0x30, 0x73, 0x52, 0x77, 0xe1, 0xd6, 0x51, 0x9b, 0xb1, 0x68, 0x7d, 0xe8, 0xb8, 0xc6, 0x8b, 0x96, 0x71, 0x45, 0x2e, 0xdb, 0xb3, 0x49, 0x1d, 0xa2, 0x64, 0xcd, 0xfa, 0x00, 0x17, 0xc5, 0x12, 0xd2, 0x76, 0x97, 0x59, 0xcb, 0x92, 0x5f, 0xb6, 0x64, };
6784 static const u8 ed25519_295_test_vectors_expected_sig[] = {
6785 	0x96, 0x5e, 0xdb, 0x34, 0xe8, 0xab, 0x8b, 0xc3, 0x20, 0x4a, 0x32, 0x01, 0xd2, 0x21, 0x86, 0x37, 0x2d, 0xe4, 0x24, 0x26, 0x00, 0x29, 0x7c, 0xfd, 0xb5, 0x7a, 0xa1, 0xdf, 0x07, 0x4e, 0xc5, 0x0d, 0xdf, 0x10, 0x10, 0x5e, 0x9d, 0x4c, 0x89, 0xa2, 0x66, 0xc3, 0x4d, 0xb7, 0x77, 0x2a, 0xa9, 0x4c, 0xba, 0x94, 0x64, 0x29, 0xe6, 0x8b, 0xa6, 0x2b, 0xf9, 0xa0, 0xac, 0x90, 0xf5, 0xf0, 0x5b, 0x02, };
6786 static const ec_test_case ed25519_295_test_case = {
6787 	.name = "EDDSA25519-SHA512/wei25519 295",
6788 	.ec_str_p = &wei25519_str_params,
6789 	.priv_key = ed25519_295_test_vectors_priv_key,
6790 	.priv_key_len = sizeof(ed25519_295_test_vectors_priv_key),
6791 	.nn_random = NULL,
6792 	.hash_type = SHA512,
6793 	.msg = (const char *)ed25519_295_test_vectors_message,
6794 	.msglen = sizeof(ed25519_295_test_vectors_message),
6795 	.sig_type = EDDSA25519,
6796 	.exp_sig = ed25519_295_test_vectors_expected_sig,
6797 	.exp_siglen = sizeof(ed25519_295_test_vectors_expected_sig),
6798 	.adata = NULL,
6799 	.adata_len = 0
6800 };
6801 
6802 /************************************************/
6803 static const u8 ed25519_296_test_vectors_priv_key[] = {
6804 	0xb2, 0x25, 0x0b, 0xbc, 0xb2, 0x68, 0xd2, 0x47, 0x7c, 0x83, 0x12, 0xb1, 0x90, 0x0f, 0xd9, 0x99, 0x82, 0xba, 0xa2, 0x9a, 0x68, 0x97, 0x4f, 0xbf, 0x87, 0x78, 0xa1, 0x22, 0x8d, 0xc9, 0x75, 0x50, };
6805 static const u8 ed25519_296_test_vectors_message[] = {
6806 	0x7e, 0xf0, 0xae, 0x13, 0x36, 0xa6, 0xfa, 0xb3, 0x7f, 0x99, 0xda, 0x5f, 0xa7, 0xd0, 0xde, 0xc7, 0x40, 0x9c, 0x07, 0x26, 0x23, 0xea, 0xd8, 0x4f, 0x24, 0x1d, 0x53, 0xd0, 0x59, 0x6b, 0x46, 0x17, 0x05, 0xfb, 0x1b, 0x3c, 0x53, 0x7d, 0x36, 0xb8, 0x9e, 0x89, 0x60, 0xfe, 0xbb, 0x4c, 0xdc, 0x0d, 0x42, 0x7c, 0xe2, 0xfc, 0x1b, 0xe5, 0x8d, 0xbb, 0xce, 0x15, 0x1e, 0x35, 0xac, 0xd8, 0xb6, 0xac, 0xe4, 0x0a, 0x19, 0x82, 0x29, 0x14, 0xa4, 0xbd, 0x8c, 0x4a, 0xf6, 0x32, 0xf1, 0x36, 0x41, 0x8a, 0xc4, 0x9b, 0x18, 0x4d, 0x55, 0x19, 0x3e, 0xbc, 0xc3, 0x2d, 0x0d, 0x79, 0x87, 0x09, 0xb1, 0xa8, 0xfe, 0x29, 0x4f, 0xba, 0x8a, 0x1f, 0xe7, 0x2d, 0x97, 0x6b, 0x44, 0x00, 0xd4, 0xa3, 0x93, 0x24, 0x23, 0x11, 0xb0, 0xf8, 0xcc, 0x99, 0x4e, 0x89, 0x47, 0x5b, 0x00, 0x38, 0xae, 0x5d, 0x89, 0x14, 0x93, 0x8e, 0x8f, 0x6e, 0x87, 0xc6, 0xf5, 0x0b, 0x9d, 0x65, 0x6c, 0x45, 0xd7, 0xb1, 0x42, 0x31, 0xef, 0xed, 0x97, 0xf3, 0xc9, 0x06, 0x68, 0x91, 0x36, 0x70, 0xbf, 0x5b, 0xe2, 0xef, 0xd5, 0xc2, 0x70, 0xc7, 0xcb, 0xaf, 0x01, 0xe8, 0x57, 0x2e, 0x98, 0x00, 0x97, 0x8d, 0xfe, 0x2e, 0x10, 0xa2, 0xfc, 0x04, 0x40, 0xb8, 0x55, 0x62, 0x9b, 0xf9, 0xcd, 0x40, 0x9e, 0xa9, 0x41, 0xcb, 0x69, 0x22, 0x6c, 0xac, 0x77, 0x1b, 0x15, 0xea, 0x77, 0xc0, 0x32, 0x68, 0x48, 0x80, 0x6f, 0xf8, 0xd2, 0xe2, 0x01, 0xe6, 0xe2, 0x6c, 0xd5, 0xf4, 0x54, 0x30, 0xda, 0xdc, 0xff, 0x8f, 0x59, 0xc3, 0x21, 0xc1, 0xc9, 0xc6, 0xa2, 0x9b, 0x94, 0x88, 0x29, 0x35, 0x44, 0x7d, 0x3e, 0x6c, 0x2e, 0x88, 0x04, 0xb1, 0x16, 0x15, 0x76, 0xbd, 0xf0, 0x32, 0x0f, 0xe5, 0x3c, 0x30, 0x7d, 0x9c, 0xde, 0x42, 0x60, 0x77, 0xa7, 0x67, 0x7c, 0xde, 0x3c, 0x1b, 0xc8, 0x3e, 0x18, 0xe6, 0x0a, 0x0c, 0x4e, 0xe6, 0xdc, 0xcd, 0x87, 0x7c, 0x21, 0x3a, 0x8e, 0x4c, 0xca, 0x64, 0x0e, 0xe0, 0x49, 0x29, 0x80, 0x45, 0x70, 0xae, 0x1f, 0x96, 0x15, 0x7c, 0x04, 0x35, 0x7a, };
6807 static const u8 ed25519_296_test_vectors_expected_sig[] = {
6808 	0xf2, 0xb8, 0xd9, 0x2e, 0xd5, 0x1e, 0xbd, 0x10, 0x00, 0xbf, 0x9d, 0xd3, 0x41, 0x1a, 0x9f, 0xa9, 0xe7, 0xae, 0xe5, 0x4c, 0x4c, 0x86, 0xe2, 0x4a, 0xd0, 0xf9, 0xad, 0x5c, 0x55, 0x64, 0x3a, 0x12, 0xd6, 0x80, 0x01, 0x9c, 0xa0, 0x3f, 0x21, 0x6b, 0xd4, 0xbd, 0x32, 0xc9, 0xce, 0x1c, 0xd8, 0xa5, 0x28, 0xc3, 0xff, 0xaa, 0x5d, 0x5b, 0x1d, 0xc9, 0x1a, 0x4b, 0xe5, 0x6f, 0x0e, 0x2c, 0x5e, 0x06, };
6809 static const ec_test_case ed25519_296_test_case = {
6810 	.name = "EDDSA25519-SHA512/wei25519 296",
6811 	.ec_str_p = &wei25519_str_params,
6812 	.priv_key = ed25519_296_test_vectors_priv_key,
6813 	.priv_key_len = sizeof(ed25519_296_test_vectors_priv_key),
6814 	.nn_random = NULL,
6815 	.hash_type = SHA512,
6816 	.msg = (const char *)ed25519_296_test_vectors_message,
6817 	.msglen = sizeof(ed25519_296_test_vectors_message),
6818 	.sig_type = EDDSA25519,
6819 	.exp_sig = ed25519_296_test_vectors_expected_sig,
6820 	.exp_siglen = sizeof(ed25519_296_test_vectors_expected_sig),
6821 	.adata = NULL,
6822 	.adata_len = 0
6823 };
6824 
6825 /************************************************/
6826 static const u8 ed25519_297_test_vectors_priv_key[] = {
6827 	0xb8, 0x09, 0x36, 0x1f, 0x55, 0xcf, 0xe8, 0x13, 0x7f, 0xbd, 0xa8, 0x80, 0xfc, 0x62, 0xcb, 0xe4, 0x4c, 0x21, 0x6e, 0x14, 0x18, 0x93, 0x34, 0x63, 0x02, 0xb3, 0x36, 0x04, 0x5d, 0xe2, 0x18, 0x78, };
6828 static const u8 ed25519_297_test_vectors_message[] = {
6829 	0x17, 0xac, 0xe1, 0x97, 0xd0, 0x83, 0xaa, 0xf1, 0x72, 0x6f, 0x53, 0xe5, 0xef, 0x81, 0xb5, 0xa8, 0xc0, 0x92, 0x22, 0xf2, 0x60, 0xee, 0x5f, 0x1f, 0x54, 0x04, 0xab, 0x78, 0xd9, 0x00, 0xd4, 0x89, 0x68, 0x84, 0x49, 0xb8, 0x43, 0xba, 0xd3, 0xc4, 0x98, 0xaa, 0xc6, 0xd8, 0x0b, 0x46, 0x39, 0xb7, 0x6e, 0x6e, 0x81, 0xc5, 0x52, 0x76, 0xa6, 0xf9, 0xc7, 0xce, 0xcd, 0x70, 0xb7, 0x1a, 0xaa, 0xf2, 0x01, 0x8e, 0xf7, 0x6c, 0x0e, 0x30, 0x15, 0x4a, 0xae, 0x86, 0xa5, 0xc8, 0x6d, 0x4e, 0x8d, 0x0e, 0x4e, 0xc6, 0x8c, 0xc4, 0x27, 0x06, 0x0b, 0xd5, 0x65, 0x14, 0xf7, 0x23, 0x80, 0x86, 0xbb, 0xef, 0x5b, 0xfc, 0xa1, 0xf5, 0x67, 0x1b, 0x18, 0x04, 0x18, 0x38, 0xfd, 0x01, 0x35, 0x72, 0x44, 0x3d, 0xba, 0x48, 0xfb, 0xdd, 0x95, 0xca, 0x74, 0x0b, 0x0d, 0xaa, 0x43, 0x27, 0x16, 0x4a, 0x1e, 0x34, 0x67, 0x72, 0x49, 0x70, 0x8f, 0x77, 0xbd, 0x79, 0x3e, 0x7c, 0xaa, 0x66, 0x38, 0xb5, 0xdc, 0x9f, 0xbe, 0x6f, 0x0d, 0xfd, 0x41, 0x20, 0x20, 0x90, 0x97, 0x20, 0x9c, 0x93, 0xce, 0xdf, 0xaf, 0x21, 0xb6, 0xbf, 0x59, 0xca, 0x6e, 0x99, 0xe6, 0x20, 0x96, 0x39, 0x44, 0x4f, 0x0e, 0x82, 0x7b, 0xbc, 0xc0, 0xa6, 0x1c, 0x3a, 0x23, 0x7c, 0xa2, 0x2a, 0x28, 0x32, 0x13, 0x22, 0x3a, 0xb6, 0x58, 0xe7, 0x12, 0xc7, 0x55, 0x62, 0x38, 0xd3, 0xa5, 0xfe, 0x31, 0x72, 0x2d, 0x65, 0xf5, 0x70, 0x6e, 0xf6, 0xd6, 0x4d, 0x73, 0x23, 0x2d, 0x30, 0x43, 0x22, 0x0f, 0x14, 0xe5, 0xcf, 0xd3, 0xc2, 0xc8, 0x3a, 0x83, 0xd6, 0x8e, 0x20, 0x27, 0x4b, 0x6f, 0x96, 0xb2, 0x9d, 0xe0, 0x40, 0xce, 0xc8, 0x47, 0x50, 0x30, 0xb6, 0xa8, 0xa8, 0x7d, 0x29, 0x80, 0x8d, 0xd3, 0x81, 0x79, 0x5c, 0x3d, 0x22, 0xac, 0xf5, 0xdc, 0x19, 0x3b, 0x72, 0x0d, 0x95, 0xa7, 0x52, 0xd9, 0xf1, 0x23, 0xc2, 0x09, 0xff, 0xba, 0x00, 0x4e, 0x48, 0xdd, 0x06, 0xdd, 0x8c, 0x9e, 0x17, 0x2b, 0xc9, 0xe0, 0x87, 0xd8, 0x0b, 0xc5, 0x21, 0x6c, 0x0b, 0x0b, 0x6e, 0x77, 0x03, 0x12, 0x41, };
6830 static const u8 ed25519_297_test_vectors_expected_sig[] = {
6831 	0xb5, 0xb5, 0x95, 0x0d, 0x37, 0x72, 0xd2, 0xee, 0xf8, 0x8e, 0x1b, 0x0f, 0x5d, 0xf5, 0xff, 0xae, 0x2f, 0x21, 0x03, 0x88, 0x5e, 0x71, 0x44, 0x6d, 0x34, 0x6f, 0xbb, 0x5d, 0xae, 0xf9, 0x49, 0x67, 0xa6, 0xb7, 0xb6, 0xe4, 0xbe, 0x88, 0x51, 0x10, 0x06, 0x58, 0x76, 0xc6, 0x65, 0xb7, 0x81, 0x2d, 0xe4, 0x6a, 0xd3, 0x1e, 0xc3, 0xbf, 0xcb, 0xea, 0xee, 0x13, 0xed, 0x0c, 0x1e, 0x0b, 0x30, 0x0e, };
6832 static const ec_test_case ed25519_297_test_case = {
6833 	.name = "EDDSA25519-SHA512/wei25519 297",
6834 	.ec_str_p = &wei25519_str_params,
6835 	.priv_key = ed25519_297_test_vectors_priv_key,
6836 	.priv_key_len = sizeof(ed25519_297_test_vectors_priv_key),
6837 	.nn_random = NULL,
6838 	.hash_type = SHA512,
6839 	.msg = (const char *)ed25519_297_test_vectors_message,
6840 	.msglen = sizeof(ed25519_297_test_vectors_message),
6841 	.sig_type = EDDSA25519,
6842 	.exp_sig = ed25519_297_test_vectors_expected_sig,
6843 	.exp_siglen = sizeof(ed25519_297_test_vectors_expected_sig),
6844 	.adata = NULL,
6845 	.adata_len = 0
6846 };
6847 
6848 /************************************************/
6849 static const u8 ed25519_298_test_vectors_priv_key[] = {
6850 	0xee, 0xef, 0x80, 0x74, 0xc2, 0xeb, 0x9a, 0x1c, 0xee, 0x2f, 0x2d, 0x3b, 0xb0, 0x53, 0x25, 0x54, 0x6a, 0x9f, 0xb7, 0xcb, 0xe4, 0x4b, 0x59, 0x94, 0x61, 0xfc, 0x58, 0x85, 0xf5, 0xfd, 0x9c, 0xac, };
6851 static const u8 ed25519_298_test_vectors_message[] = {
6852 	0x9a, 0xe3, 0x9f, 0xea, 0xde, 0x90, 0x5a, 0xff, 0xcb, 0xed, 0xd2, 0xe7, 0x2a, 0x6f, 0x24, 0x29, 0xb3, 0xd1, 0x10, 0x8e, 0x5b, 0xc1, 0xa9, 0xdb, 0xaf, 0x49, 0x0a, 0x62, 0x99, 0xbc, 0xcd, 0x94, 0xac, 0xc4, 0x13, 0xad, 0xac, 0xc9, 0x18, 0xb1, 0x4a, 0xfa, 0x85, 0xc7, 0x8b, 0xc1, 0x68, 0xcc, 0x00, 0x74, 0x0c, 0x3d, 0xa0, 0xe0, 0x81, 0x83, 0x91, 0x5f, 0x79, 0xb7, 0xfe, 0x38, 0x68, 0xce, 0x2a, 0x7e, 0x88, 0x6b, 0x32, 0xad, 0x45, 0x00, 0x98, 0x05, 0xbf, 0xb8, 0x1b, 0x8c, 0x07, 0xb3, 0xb1, 0x02, 0x24, 0x20, 0xc0, 0xf0, 0x09, 0xb8, 0x89, 0xd7, 0xfc, 0x22, 0xfd, 0x19, 0x97, 0xae, 0x34, 0x19, 0x84, 0x38, 0xca, 0x94, 0x77, 0x85, 0x75, 0x12, 0x2f, 0xca, 0xaf, 0x96, 0xe6, 0x50, 0x2c, 0x33, 0xa7, 0x5a, 0x12, 0x9a, 0x2d, 0x0d, 0xbb, 0x07, 0x3d, 0x93, 0x82, 0x0d, 0x9c, 0x96, 0x68, 0x3d, 0xb3, 0x18, 0x99, 0x0b, 0xe3, 0xfe, 0xf4, 0xca, 0xfc, 0x89, 0x0a, 0xfb, 0xd9, 0xb1, 0x50, 0x4c, 0x74, 0x39, 0xa0, 0x8a, 0x06, 0x5e, 0x78, 0x14, 0xee, 0x4f, 0x9b, 0x6f, 0x57, 0xee, 0x16, 0xba, 0xed, 0x3f, 0x0e, 0x3a, 0xa3, 0x5d, 0xd2, 0x3d, 0x35, 0x28, 0xa4, 0x58, 0x91, 0x9a, 0xd7, 0x70, 0x48, 0xb4, 0xe2, 0xe6, 0x17, 0x23, 0x46, 0xbe, 0x24, 0x9a, 0x50, 0xaf, 0x02, 0xbc, 0x6c, 0x85, 0x33, 0x04, 0xc2, 0x08, 0xae, 0x0b, 0xa0, 0x27, 0x71, 0x26, 0x2a, 0x0d, 0x8a, 0x46, 0x5f, 0x71, 0xfa, 0x06, 0x35, 0xe5, 0x3e, 0xb2, 0xef, 0x0a, 0x84, 0x7d, 0x56, 0xa0, 0xbc, 0xd7, 0xdd, 0x3f, 0xe0, 0x77, 0xc9, 0x2b, 0xcd, 0xca, 0x30, 0x69, 0xa4, 0xa6, 0x82, 0xa2, 0x85, 0x99, 0x28, 0x31, 0x5c, 0xe3, 0xeb, 0x44, 0x5c, 0x60, 0x72, 0xa7, 0x14, 0x92, 0xee, 0x82, 0xe1, 0x72, 0xa2, 0x0b, 0xe0, 0xb6, 0x48, 0xb7, 0x56, 0xe6, 0xc7, 0x75, 0x37, 0x6f, 0x0c, 0x7c, 0x3d, 0xf8, 0xe6, 0x42, 0x88, 0x08, 0x9c, 0x2f, 0x81, 0xce, 0x95, 0x93, 0xc6, 0xe0, 0x8b, 0xb1, 0xcc, 0x1b, 0x27, 0xfc, 0xbd, 0x39, 0x2f, 0xc7, 0x95, 0x2c, 0x55, };
6853 static const u8 ed25519_298_test_vectors_expected_sig[] = {
6854 	0x6f, 0x71, 0x01, 0x98, 0x4f, 0xd6, 0x89, 0x2e, 0x21, 0x44, 0xb7, 0xd4, 0x56, 0x19, 0x83, 0x0c, 0xae, 0xb6, 0x71, 0x3b, 0xfa, 0xb4, 0xee, 0xbb, 0xe2, 0x17, 0xc5, 0xbe, 0xcd, 0x24, 0x9b, 0xd9, 0xd7, 0x52, 0xeb, 0x76, 0xe9, 0xfa, 0x99, 0x5e, 0x7c, 0x71, 0xff, 0x7d, 0xf8, 0x6b, 0xb2, 0x60, 0xcd, 0xda, 0x17, 0x3f, 0xf5, 0xde, 0xec, 0x6a, 0xf2, 0x04, 0xb7, 0xdd, 0xe0, 0x11, 0xde, 0x09, };
6855 static const ec_test_case ed25519_298_test_case = {
6856 	.name = "EDDSA25519-SHA512/wei25519 298",
6857 	.ec_str_p = &wei25519_str_params,
6858 	.priv_key = ed25519_298_test_vectors_priv_key,
6859 	.priv_key_len = sizeof(ed25519_298_test_vectors_priv_key),
6860 	.nn_random = NULL,
6861 	.hash_type = SHA512,
6862 	.msg = (const char *)ed25519_298_test_vectors_message,
6863 	.msglen = sizeof(ed25519_298_test_vectors_message),
6864 	.sig_type = EDDSA25519,
6865 	.exp_sig = ed25519_298_test_vectors_expected_sig,
6866 	.exp_siglen = sizeof(ed25519_298_test_vectors_expected_sig),
6867 	.adata = NULL,
6868 	.adata_len = 0
6869 };
6870 
6871 /************************************************/
6872 static const u8 ed25519_299_test_vectors_priv_key[] = {
6873 	0x61, 0xfa, 0xeb, 0x15, 0xf8, 0x57, 0xf6, 0x55, 0x78, 0x62, 0xc8, 0xb8, 0xc7, 0xef, 0x41, 0xf8, 0x05, 0x45, 0x52, 0x09, 0x96, 0xfc, 0xc1, 0x12, 0x7b, 0x8c, 0x24, 0x91, 0x82, 0x22, 0x01, 0xae, };
6874 static const u8 ed25519_299_test_vectors_message[] = {
6875 	0x25, 0x3b, 0x56, 0x6e, 0xcc, 0xb5, 0x63, 0xbd, 0x6e, 0x48, 0x0c, 0x69, 0x73, 0x9b, 0x8e, 0x37, 0x25, 0x19, 0xa3, 0x43, 0x72, 0x54, 0xe0, 0xe5, 0x02, 0x9c, 0xac, 0x86, 0xc7, 0x16, 0x38, 0xf2, 0xdf, 0x2a, 0x6c, 0xf9, 0xe5, 0x6d, 0xb2, 0x56, 0x99, 0x34, 0xde, 0xba, 0x90, 0xdb, 0x75, 0x54, 0x7e, 0x36, 0x71, 0x74, 0x7d, 0xf6, 0x4d, 0x6f, 0x2a, 0xaf, 0x3c, 0x11, 0x0f, 0xa6, 0x7a, 0x70, 0x94, 0xcc, 0xbe, 0x4c, 0xc5, 0x35, 0x5f, 0x0d, 0x43, 0x23, 0x51, 0x36, 0xee, 0x26, 0xdb, 0xe3, 0x7f, 0x42, 0x25, 0xd3, 0xbb, 0xfe, 0x24, 0x55, 0x95, 0x28, 0x05, 0x85, 0xfb, 0x54, 0x8f, 0x89, 0x4e, 0x86, 0xc5, 0x16, 0x10, 0x25, 0x80, 0x29, 0x1f, 0xa7, 0xa0, 0x28, 0x59, 0x55, 0x7f, 0xb9, 0x8e, 0xb5, 0x88, 0x87, 0x08, 0x28, 0xb0, 0x99, 0x0a, 0xe9, 0xd7, 0x4f, 0x38, 0x31, 0xda, 0x58, 0x94, 0x6b, 0xc7, 0xa5, 0xce, 0x1b, 0xa4, 0x98, 0xb4, 0xe8, 0xbe, 0x89, 0x89, 0xa3, 0xb5, 0x0d, 0x7e, 0x87, 0x89, 0xf5, 0x6b, 0x8b, 0x4f, 0xec, 0xbc, 0x2a, 0x33, 0xbf, 0xa3, 0xef, 0x59, 0x1a, 0x0f, 0xbc, 0xd9, 0x32, 0xfa, 0x93, 0xe1, 0x9f, 0x3a, 0x81, 0x2a, 0xe5, 0xe4, 0xe3, 0xb4, 0xb2, 0x42, 0xbe, 0x77, 0x05, 0xa5, 0x87, 0x4a, 0xf7, 0x3b, 0xe3, 0x10, 0xb0, 0x05, 0x82, 0x66, 0xa3, 0x78, 0xf2, 0x3c, 0x13, 0x48, 0x52, 0x47, 0x15, 0xb0, 0xcc, 0xc1, 0x8d, 0x66, 0x34, 0xb2, 0x36, 0x36, 0xc3, 0x16, 0xba, 0x6a, 0x1d, 0xd2, 0xfd, 0x50, 0x92, 0xc0, 0x67, 0x16, 0xa7, 0x17, 0xb5, 0x4d, 0x0e, 0xb9, 0xfc, 0x7f, 0x63, 0x6f, 0x85, 0xbb, 0xf2, 0x25, 0xa2, 0xcf, 0x03, 0x5b, 0x4b, 0x7c, 0xfd, 0xdd, 0x75, 0x35, 0x16, 0x82, 0xc0, 0x57, 0x6c, 0x6b, 0x3b, 0xa5, 0xa1, 0xc0, 0xb2, 0x5e, 0xc5, 0x94, 0xe7, 0x70, 0x9d, 0xd0, 0x9a, 0x00, 0x79, 0x77, 0x2f, 0xf3, 0xac, 0xc6, 0x7f, 0xb6, 0xc1, 0xb3, 0x7b, 0xb3, 0x74, 0x2b, 0x72, 0x6e, 0x77, 0xe8, 0x05, 0x61, 0xd9, 0xab, 0x73, 0x16, 0x0b, 0x73, 0x36, 0x25, 0x81, 0xda, 0x5b, 0x9c, 0x7f, };
6876 static const u8 ed25519_299_test_vectors_expected_sig[] = {
6877 	0x31, 0xf9, 0x0f, 0x50, 0xb2, 0xdc, 0x70, 0x5f, 0x1d, 0x92, 0xf1, 0x2c, 0xa9, 0x97, 0x5d, 0x76, 0xf1, 0xb2, 0x82, 0x6a, 0xda, 0x3c, 0xc1, 0x85, 0xb0, 0xed, 0x6c, 0x83, 0x86, 0x07, 0x77, 0xbd, 0x8c, 0x48, 0x9b, 0x59, 0x85, 0x5a, 0x91, 0xf6, 0x48, 0x39, 0xd4, 0x9b, 0xa4, 0x67, 0x98, 0x5a, 0xbb, 0x37, 0x6c, 0x47, 0xa4, 0x90, 0x8b, 0x27, 0x1b, 0x8f, 0x77, 0xc5, 0x8d, 0x01, 0xfd, 0x04, };
6878 static const ec_test_case ed25519_299_test_case = {
6879 	.name = "EDDSA25519-SHA512/wei25519 299",
6880 	.ec_str_p = &wei25519_str_params,
6881 	.priv_key = ed25519_299_test_vectors_priv_key,
6882 	.priv_key_len = sizeof(ed25519_299_test_vectors_priv_key),
6883 	.nn_random = NULL,
6884 	.hash_type = SHA512,
6885 	.msg = (const char *)ed25519_299_test_vectors_message,
6886 	.msglen = sizeof(ed25519_299_test_vectors_message),
6887 	.sig_type = EDDSA25519,
6888 	.exp_sig = ed25519_299_test_vectors_expected_sig,
6889 	.exp_siglen = sizeof(ed25519_299_test_vectors_expected_sig),
6890 	.adata = NULL,
6891 	.adata_len = 0
6892 };
6893 
6894 /************************************************/
6895 static const u8 ed25519_300_test_vectors_priv_key[] = {
6896 	0xe6, 0xb9, 0xcd, 0x4d, 0xa0, 0x7c, 0xb3, 0x4f, 0x30, 0x39, 0x1c, 0xf6, 0x8f, 0x0d, 0x87, 0xc7, 0xcf, 0xcf, 0x68, 0xf8, 0x10, 0xff, 0xa4, 0x0f, 0x97, 0x39, 0xc9, 0x5d, 0xeb, 0x03, 0x7f, 0x71, };
6897 static const u8 ed25519_300_test_vectors_message[] = {
6898 	0x69, 0xde, 0xf0, 0x52, 0x3a, 0xfd, 0xa6, 0x96, 0xf8, 0x44, 0x8f, 0x9c, 0x11, 0x43, 0xab, 0xc2, 0x65, 0x33, 0xe6, 0x86, 0x95, 0xa0, 0x90, 0xdf, 0x0d, 0x9e, 0x43, 0xd0, 0xc0, 0xef, 0xf4, 0x35, 0x83, 0xe6, 0xf7, 0x09, 0xd2, 0x04, 0x3c, 0x81, 0x5f, 0xbb, 0x3f, 0x96, 0xba, 0x2b, 0x0d, 0xc3, 0xbe, 0x6f, 0xec, 0xad, 0x5d, 0xd3, 0x81, 0x48, 0x78, 0x8e, 0x4a, 0x03, 0x85, 0xa9, 0xfe, 0x7a, 0x92, 0x1f, 0xcb, 0x8c, 0xce, 0xe0, 0xe4, 0xd3, 0xae, 0xd4, 0xbc, 0x3d, 0x21, 0x6d, 0x84, 0xb4, 0x14, 0xf9, 0x58, 0x0b, 0x02, 0x82, 0x0c, 0x03, 0xd9, 0x2e, 0x67, 0x5e, 0x68, 0x5c, 0x4b, 0x58, 0x51, 0xf3, 0x63, 0xbb, 0x4d, 0xf9, 0x7b, 0x41, 0x7c, 0x3f, 0xd9, 0x00, 0x22, 0xee, 0xaf, 0xa2, 0x0d, 0xfb, 0xe8, 0x29, 0x64, 0xf2, 0xff, 0x07, 0x3d, 0x25, 0x57, 0x58, 0xfb, 0xe5, 0x67, 0xc7, 0x6b, 0x2c, 0x35, 0xe2, 0xb0, 0x9f, 0x8a, 0x8d, 0x7a, 0xfa, 0x32, 0xc6, 0xf5, 0xad, 0x01, 0xbc, 0x3e, 0xbf, 0x6e, 0x21, 0x06, 0x06, 0xdb, 0x03, 0x8e, 0xcb, 0x68, 0x20, 0xce, 0x1e, 0xa4, 0xdd, 0x52, 0x9f, 0xc1, 0xad, 0xfb, 0xc2, 0xa1, 0x38, 0x56, 0x5a, 0xc6, 0xd0, 0xf4, 0xa4, 0x10, 0x9b, 0xdd, 0x47, 0xb8, 0xaa, 0x6e, 0xf4, 0xb8, 0xbe, 0xde, 0x45, 0x46, 0x80, 0xd1, 0xdb, 0xdb, 0x75, 0xfe, 0x1e, 0xb2, 0xe5, 0x48, 0xd5, 0xde, 0x7c, 0xb6, 0xd7, 0x92, 0xfe, 0xf3, 0xaa, 0x0d, 0x84, 0x80, 0xa6, 0x03, 0x0b, 0x30, 0xf1, 0x04, 0xd7, 0xe7, 0x6b, 0x58, 0xe9, 0xf4, 0x76, 0xeb, 0xf2, 0xcc, 0x83, 0x29, 0x23, 0xb5, 0x0c, 0x50, 0xc1, 0x11, 0xc3, 0x51, 0x5f, 0xc5, 0x18, 0x85, 0x23, 0x23, 0x42, 0x6c, 0xa7, 0x78, 0xa5, 0x96, 0xd3, 0x19, 0x5d, 0xa8, 0x58, 0x5d, 0x8c, 0x3a, 0xa9, 0x20, 0x83, 0x31, 0x3a, 0x6e, 0x65, 0x85, 0xb7, 0x0c, 0x98, 0xb1, 0x85, 0xb4, 0x72, 0x79, 0x8a, 0x61, 0xcd, 0xe7, 0x7e, 0x62, 0xec, 0x27, 0x2f, 0x14, 0xb0, 0xd9, 0xeb, 0x4f, 0x22, 0xf9, 0xc7, 0xc0, 0x58, 0x17, 0xda, 0x6f, 0xde, 0xfe, 0x78, 0x79, 0xa5, 0x84, };
6899 static const u8 ed25519_300_test_vectors_expected_sig[] = {
6900 	0x1e, 0x37, 0x5c, 0x94, 0xbd, 0x80, 0x9c, 0xa0, 0xcd, 0xd0, 0x2f, 0x89, 0xec, 0xec, 0x4e, 0x43, 0x77, 0x32, 0xdd, 0x20, 0xa0, 0xa8, 0x4b, 0x25, 0x4e, 0xae, 0x88, 0x9d, 0x80, 0x70, 0xe6, 0x82, 0xd1, 0x13, 0xb0, 0xbe, 0x22, 0xe4, 0x1e, 0x6c, 0xdc, 0x3b, 0xe8, 0x77, 0x68, 0x0e, 0x7e, 0xeb, 0x7f, 0x09, 0x95, 0xe6, 0x62, 0x2d, 0xc0, 0xb4, 0x34, 0xfb, 0x09, 0x49, 0xdd, 0x99, 0x4b, 0x0c, };
6901 static const ec_test_case ed25519_300_test_case = {
6902 	.name = "EDDSA25519-SHA512/wei25519 300",
6903 	.ec_str_p = &wei25519_str_params,
6904 	.priv_key = ed25519_300_test_vectors_priv_key,
6905 	.priv_key_len = sizeof(ed25519_300_test_vectors_priv_key),
6906 	.nn_random = NULL,
6907 	.hash_type = SHA512,
6908 	.msg = (const char *)ed25519_300_test_vectors_message,
6909 	.msglen = sizeof(ed25519_300_test_vectors_message),
6910 	.sig_type = EDDSA25519,
6911 	.exp_sig = ed25519_300_test_vectors_expected_sig,
6912 	.exp_siglen = sizeof(ed25519_300_test_vectors_expected_sig),
6913 	.adata = NULL,
6914 	.adata_len = 0
6915 };
6916 
6917 /************************************************/
6918 static const u8 ed25519_301_test_vectors_priv_key[] = {
6919 	0x4d, 0x90, 0x44, 0xf1, 0x7b, 0x5a, 0x09, 0x77, 0xdc, 0x5a, 0xa9, 0x91, 0x6a, 0x92, 0x43, 0x00, 0xa2, 0x44, 0xa1, 0xef, 0x7f, 0x06, 0x02, 0x77, 0xad, 0x49, 0x78, 0x35, 0x1e, 0xa6, 0x42, 0x91, };
6920 static const u8 ed25519_301_test_vectors_message[] = {
6921 	0x7c, 0x8c, 0x71, 0x89, 0xaf, 0x67, 0x32, 0x7a, 0xf1, 0xc6, 0xdd, 0x2c, 0x30, 0xe9, 0x75, 0xf1, 0x90, 0xe3, 0xb3, 0x8d, 0x00, 0x8b, 0x45, 0x85, 0x16, 0x7e, 0x0d, 0x45, 0x07, 0x40, 0xd4, 0x67, 0x34, 0x58, 0x7f, 0x6d, 0x20, 0x87, 0x84, 0x24, 0x5c, 0xc5, 0xcb, 0x06, 0x2a, 0x2a, 0x27, 0x7f, 0x17, 0xeb, 0xb2, 0x74, 0x6f, 0x9b, 0xdf, 0x4a, 0x82, 0x37, 0xca, 0x47, 0x9a, 0xb0, 0xa4, 0x30, 0x17, 0x7e, 0x19, 0xed, 0x7d, 0xd3, 0x62, 0x25, 0x76, 0xb1, 0x4c, 0xdc, 0x08, 0x28, 0x22, 0x14, 0xfe, 0x5e, 0xe4, 0xd7, 0x6b, 0x43, 0xc1, 0x6a, 0xc9, 0x08, 0x64, 0xc5, 0x1b, 0xe8, 0xae, 0xd4, 0x5d, 0x7b, 0x98, 0x0d, 0xf7, 0x91, 0x7f, 0x29, 0x0f, 0xdf, 0x79, 0x58, 0x46, 0x46, 0x5f, 0x27, 0xfc, 0xb7, 0xe5, 0x73, 0x06, 0x37, 0x94, 0x4f, 0x05, 0x77, 0xc9, 0x2f, 0x32, 0x37, 0x5e, 0x99, 0x5b, 0xc0, 0xcd, 0xa9, 0xd7, 0x19, 0x6f, 0x2c, 0x0c, 0x1a, 0xc8, 0xb8, 0x0d, 0x12, 0xa0, 0x43, 0x99, 0x63, 0xeb, 0xd2, 0x25, 0x4c, 0x34, 0x77, 0x03, 0x57, 0x58, 0x16, 0xe7, 0x96, 0x4c, 0x13, 0xd4, 0x4d, 0x62, 0x92, 0x80, 0xc3, 0x12, 0xea, 0x26, 0x53, 0x44, 0xde, 0x38, 0xf3, 0xb1, 0x8d, 0x91, 0x50, 0xf8, 0xf9, 0x24, 0xaf, 0xb4, 0x4b, 0x6b, 0xfb, 0x9e, 0xda, 0x51, 0x3d, 0x59, 0xe6, 0x5e, 0x2e, 0xf1, 0x86, 0x66, 0xe6, 0xc2, 0xa2, 0x1c, 0x40, 0x18, 0x66, 0x5b, 0xef, 0xe9, 0x2c, 0xae, 0x58, 0x1d, 0x3c, 0xb1, 0x4e, 0x23, 0xe9, 0x7d, 0x83, 0x00, 0x02, 0xcb, 0x90, 0x93, 0x1a, 0xe0, 0x21, 0x00, 0x68, 0xaf, 0x39, 0x4e, 0xbe, 0x35, 0x1b, 0xe5, 0xb8, 0x17, 0xf3, 0x67, 0x4b, 0xfb, 0xf4, 0x00, 0x49, 0x03, 0x0e, 0x4f, 0xe5, 0x05, 0xd3, 0x4a, 0x1d, 0x50, 0x2a, 0x2c, 0x50, 0xd8, 0xe6, 0x38, 0xe9, 0x26, 0xc2, 0x30, 0x67, 0x6b, 0x7e, 0xde, 0xfb, 0x6b, 0xec, 0x77, 0xb1, 0xc0, 0xce, 0x60, 0x93, 0x25, 0x28, 0x7b, 0xa5, 0xfd, 0xd7, 0xa9, 0x97, 0x69, 0x87, 0xbd, 0x07, 0xfc, 0x6a, 0x43, 0x44, 0x95, 0x6e, 0xbf, 0x81, 0x8f, 0x08, 0x58, 0x6c, };
6922 static const u8 ed25519_301_test_vectors_expected_sig[] = {
6923 	0x6f, 0xa4, 0x8a, 0xea, 0x4d, 0x5b, 0x9a, 0xf6, 0x5a, 0xf9, 0x64, 0xcd, 0xb7, 0x09, 0x44, 0x3a, 0x11, 0xfa, 0x84, 0xf7, 0xd4, 0x4a, 0xcd, 0xda, 0xb1, 0x6e, 0x04, 0xa6, 0xfc, 0xef, 0xb2, 0x7a, 0xe3, 0x3c, 0x05, 0xb3, 0x6d, 0xa1, 0x3c, 0x23, 0xde, 0x51, 0x7d, 0x6e, 0x6a, 0xc5, 0x74, 0xa0, 0x3e, 0xa6, 0x30, 0xba, 0x4f, 0xbb, 0x95, 0x81, 0x31, 0x12, 0x9a, 0xa7, 0xf1, 0x35, 0x4c, 0x01, };
6924 static const ec_test_case ed25519_301_test_case = {
6925 	.name = "EDDSA25519-SHA512/wei25519 301",
6926 	.ec_str_p = &wei25519_str_params,
6927 	.priv_key = ed25519_301_test_vectors_priv_key,
6928 	.priv_key_len = sizeof(ed25519_301_test_vectors_priv_key),
6929 	.nn_random = NULL,
6930 	.hash_type = SHA512,
6931 	.msg = (const char *)ed25519_301_test_vectors_message,
6932 	.msglen = sizeof(ed25519_301_test_vectors_message),
6933 	.sig_type = EDDSA25519,
6934 	.exp_sig = ed25519_301_test_vectors_expected_sig,
6935 	.exp_siglen = sizeof(ed25519_301_test_vectors_expected_sig),
6936 	.adata = NULL,
6937 	.adata_len = 0
6938 };
6939 
6940 /************************************************/
6941 static const u8 ed25519_302_test_vectors_priv_key[] = {
6942 	0x75, 0xad, 0x76, 0xbb, 0x4c, 0x0c, 0x22, 0x9a, 0x5a, 0xdc, 0x79, 0xe4, 0x44, 0xb1, 0x3f, 0x88, 0xa9, 0x64, 0x59, 0x86, 0x2c, 0x8c, 0xf0, 0xba, 0x49, 0x8d, 0x0c, 0x99, 0x6a, 0xf9, 0x4a, 0x7a, };
6943 static const u8 ed25519_302_test_vectors_message[] = {
6944 	0x0c, 0xa8, 0xc1, 0xc7, 0x41, 0x28, 0xd7, 0x4e, 0x9d, 0x0a, 0x7b, 0xf8, 0x96, 0x42, 0x91, 0xd0, 0x74, 0x91, 0x7f, 0x2f, 0x99, 0x20, 0xef, 0xb9, 0x11, 0x52, 0x05, 0x67, 0x64, 0x2a, 0x50, 0xa6, 0x15, 0xab, 0xcb, 0xd0, 0x0a, 0xed, 0x4a, 0xbb, 0xfe, 0xf1, 0xa9, 0x83, 0xcc, 0xe3, 0x33, 0xe1, 0xd0, 0xdf, 0x3e, 0x64, 0x04, 0xfb, 0x90, 0x43, 0xc6, 0x80, 0x39, 0x14, 0xcd, 0x5f, 0xff, 0xbc, 0x66, 0xa0, 0x79, 0x0c, 0x78, 0x78, 0xa2, 0x40, 0x89, 0xa5, 0x71, 0xf8, 0x95, 0x66, 0x2a, 0x1d, 0x18, 0xbe, 0x3f, 0x01, 0xff, 0x97, 0xfb, 0x33, 0x23, 0x33, 0x4b, 0x6f, 0x5b, 0xaf, 0x96, 0x55, 0x14, 0x48, 0xe4, 0x09, 0x0d, 0x03, 0x3c, 0x46, 0x42, 0x94, 0xd0, 0x91, 0x33, 0xb1, 0x51, 0xd5, 0xb5, 0xc6, 0x32, 0x1b, 0x50, 0xe2, 0x24, 0x1d, 0xe0, 0xef, 0x6f, 0x88, 0x28, 0x89, 0xcc, 0xf4, 0xad, 0x35, 0x40, 0xd5, 0xa1, 0xe3, 0xf7, 0x54, 0x8f, 0xb1, 0x3b, 0xe7, 0x1c, 0x16, 0x51, 0x66, 0x06, 0xe7, 0x9d, 0x04, 0x49, 0xc2, 0xa0, 0x8e, 0x5d, 0xc2, 0x31, 0x48, 0x84, 0x3c, 0x84, 0xe9, 0x7e, 0xd2, 0x40, 0x69, 0x16, 0x1c, 0x8e, 0x75, 0x20, 0x8f, 0x33, 0xe9, 0x5b, 0x3e, 0x10, 0xd1, 0xd4, 0x9a, 0x2f, 0xae, 0xf9, 0xd9, 0x86, 0xab, 0x62, 0x80, 0x9f, 0x62, 0xad, 0x39, 0xc7, 0xcc, 0x87, 0x1f, 0x37, 0x5a, 0x4f, 0x5a, 0x6f, 0xaf, 0x10, 0x4d, 0x7e, 0x11, 0xb8, 0x90, 0xcf, 0xb0, 0x58, 0x99, 0x02, 0x68, 0x52, 0x16, 0xec, 0x07, 0xcb, 0x8e, 0x8e, 0x9e, 0x7a, 0x7c, 0x43, 0x63, 0x5e, 0x23, 0x21, 0x2b, 0x69, 0xca, 0x3b, 0x7e, 0xd5, 0x4f, 0x0b, 0x97, 0x94, 0x9e, 0x3d, 0x9a, 0x66, 0x62, 0xf8, 0xe4, 0xb3, 0xab, 0x09, 0xcd, 0x49, 0x52, 0x94, 0xc3, 0x31, 0xc0, 0x47, 0xd8, 0x6e, 0xe7, 0x85, 0xff, 0x65, 0x8b, 0xcd, 0x7f, 0xcf, 0x9c, 0x48, 0x06, 0x05, 0xce, 0x05, 0xe8, 0x10, 0x06, 0x8d, 0x60, 0xfc, 0x9b, 0x26, 0xb5, 0xf0, 0x63, 0xeb, 0x90, 0x00, 0xd2, 0x65, 0x7a, 0x50, 0x94, 0x28, 0x4a, 0xc8, 0x0f, 0x13, 0x75, 0xd0, 0xb6, 0x6d, 0x6f, 0x5f, };
6945 static const u8 ed25519_302_test_vectors_expected_sig[] = {
6946 	0x0c, 0x46, 0x43, 0xa8, 0xbe, 0x6d, 0xc2, 0x2f, 0x4b, 0xeb, 0x6b, 0xcc, 0x70, 0xc6, 0x17, 0x2e, 0xc7, 0x60, 0x83, 0x78, 0x65, 0x3c, 0xb4, 0xe9, 0x9f, 0x3a, 0xe7, 0x95, 0xea, 0xdf, 0x4e, 0x98, 0x2a, 0x29, 0x76, 0x09, 0xca, 0x79, 0x38, 0xf5, 0xdf, 0x63, 0x2b, 0x09, 0x56, 0x28, 0xcb, 0x75, 0x06, 0x2d, 0x3d, 0x51, 0xfc, 0x0f, 0x33, 0x23, 0xbf, 0xa7, 0xb2, 0x2e, 0xc4, 0xd4, 0x72, 0x05, };
6947 static const ec_test_case ed25519_302_test_case = {
6948 	.name = "EDDSA25519-SHA512/wei25519 302",
6949 	.ec_str_p = &wei25519_str_params,
6950 	.priv_key = ed25519_302_test_vectors_priv_key,
6951 	.priv_key_len = sizeof(ed25519_302_test_vectors_priv_key),
6952 	.nn_random = NULL,
6953 	.hash_type = SHA512,
6954 	.msg = (const char *)ed25519_302_test_vectors_message,
6955 	.msglen = sizeof(ed25519_302_test_vectors_message),
6956 	.sig_type = EDDSA25519,
6957 	.exp_sig = ed25519_302_test_vectors_expected_sig,
6958 	.exp_siglen = sizeof(ed25519_302_test_vectors_expected_sig),
6959 	.adata = NULL,
6960 	.adata_len = 0
6961 };
6962 
6963 /************************************************/
6964 static const u8 ed25519_303_test_vectors_priv_key[] = {
6965 	0xad, 0xc6, 0xe9, 0xb2, 0xe1, 0x03, 0xb6, 0x2c, 0x24, 0xad, 0x43, 0x46, 0x41, 0x0e, 0x83, 0xa1, 0xa0, 0xbd, 0x25, 0x3e, 0x4a, 0xbf, 0x77, 0x91, 0x18, 0x50, 0xc6, 0xd9, 0x66, 0x6e, 0x09, 0xf9, };
6966 static const u8 ed25519_303_test_vectors_message[] = {
6967 	0x8c, 0xcc, 0xd9, 0x8e, 0xbb, 0xf2, 0x43, 0x9f, 0xfd, 0xfa, 0xc4, 0x16, 0x87, 0x63, 0x8f, 0xaa, 0x44, 0x4e, 0x1c, 0xa4, 0xb6, 0x3d, 0x13, 0xe8, 0x98, 0xea, 0xa8, 0x35, 0x54, 0x92, 0xf2, 0x88, 0x13, 0xab, 0x81, 0x3f, 0xd0, 0x15, 0x10, 0xe1, 0x12, 0xbe, 0x10, 0x6b, 0x20, 0x45, 0xd3, 0x0f, 0x63, 0x33, 0x5d, 0x24, 0x89, 0x04, 0xd5, 0x21, 0xde, 0x18, 0x1a, 0xba, 0xc0, 0x3e, 0x3d, 0x2c, 0xb2, 0xd1, 0x6c, 0x44, 0xb3, 0xb0, 0x12, 0xa0, 0xc5, 0x1f, 0x99, 0x01, 0xae, 0xf9, 0x05, 0x6c, 0x72, 0x4d, 0x7a, 0x2c, 0x6b, 0x2a, 0xcb, 0x0a, 0x07, 0x55, 0x59, 0x40, 0xe4, 0xc6, 0xe2, 0x11, 0x54, 0x89, 0x06, 0x11, 0xad, 0xeb, 0x64, 0x89, 0xf4, 0x61, 0xd3, 0xe5, 0xec, 0xd1, 0xaf, 0x5a, 0x4d, 0x2b, 0x0a, 0xda, 0xf4, 0x17, 0x47, 0x43, 0x6e, 0xb4, 0x14, 0x75, 0x7a, 0x8f, 0xe4, 0x77, 0x56, 0x74, 0xe3, 0xc6, 0xe5, 0xde, 0x45, 0x69, 0xd6, 0xfc, 0x6c, 0x78, 0x8e, 0x10, 0x90, 0x5e, 0xba, 0x32, 0xc2, 0x70, 0xa3, 0x93, 0xe6, 0xf7, 0x21, 0xa7, 0x65, 0x29, 0x4e, 0x2a, 0xc9, 0x9a, 0x9b, 0x6e, 0x53, 0x4d, 0x3d, 0xf0, 0x8d, 0x1d, 0xb9, 0x7d, 0x60, 0x2a, 0xc3, 0x19, 0x5c, 0xb0, 0xb7, 0x7f, 0x5b, 0xd4, 0xac, 0xaf, 0x73, 0x7f, 0xad, 0xd6, 0x99, 0x1f, 0x06, 0x88, 0xab, 0xc7, 0x49, 0x18, 0x04, 0x75, 0x74, 0xea, 0xc2, 0x82, 0x89, 0x73, 0x9a, 0x66, 0x4e, 0x0e, 0x0e, 0x20, 0x57, 0x4a, 0x2c, 0x25, 0xfd, 0xe4, 0x9d, 0x14, 0x53, 0x9d, 0xb1, 0xce, 0xdd, 0x4a, 0x92, 0x04, 0xa7, 0x0a, 0xcf, 0xf0, 0xa6, 0x2c, 0x8f, 0x25, 0xcd, 0x76, 0x8f, 0xfa, 0xb1, 0x5c, 0x4d, 0xb3, 0x16, 0x84, 0x0a, 0x4d, 0x1b, 0xc9, 0x2e, 0x21, 0x26, 0x70, 0xbe, 0x07, 0xc5, 0xbd, 0xcf, 0x53, 0x75, 0x90, 0x60, 0x7d, 0xfb, 0xbb, 0xb4, 0xd9, 0xf9, 0x8b, 0x89, 0xda, 0x0b, 0x4d, 0xf7, 0xd8, 0x8f, 0x3e, 0xca, 0x48, 0x14, 0xd1, 0x6b, 0xfa, 0x20, 0xc8, 0xd2, 0xfa, 0x94, 0xf9, 0xf2, 0x59, 0xf2, 0xee, 0x2d, 0x3a, 0x83, 0xc9, 0xe4, 0x17, 0x1b, 0x1a, 0x26, 0x2c, 0x4b, 0x99, };
6968 static const u8 ed25519_303_test_vectors_expected_sig[] = {
6969 	0xcb, 0x01, 0x7d, 0x6d, 0x26, 0x82, 0xc9, 0x85, 0x43, 0x66, 0x25, 0x9a, 0xa3, 0x5f, 0x30, 0xd4, 0x91, 0xcf, 0xaa, 0x93, 0x09, 0x98, 0xc2, 0x97, 0xdb, 0xdd, 0xc6, 0xad, 0xed, 0x5b, 0x3d, 0x40, 0x1c, 0xf7, 0x6d, 0x80, 0xd8, 0xa2, 0x76, 0x4d, 0xe1, 0x31, 0x71, 0x8b, 0x6e, 0x0c, 0x48, 0x1d, 0x71, 0x96, 0xbc, 0x72, 0x57, 0x97, 0x16, 0xb0, 0xc0, 0xf6, 0xff, 0x05, 0x3e, 0x68, 0xc5, 0x0c, };
6970 static const ec_test_case ed25519_303_test_case = {
6971 	.name = "EDDSA25519-SHA512/wei25519 303",
6972 	.ec_str_p = &wei25519_str_params,
6973 	.priv_key = ed25519_303_test_vectors_priv_key,
6974 	.priv_key_len = sizeof(ed25519_303_test_vectors_priv_key),
6975 	.nn_random = NULL,
6976 	.hash_type = SHA512,
6977 	.msg = (const char *)ed25519_303_test_vectors_message,
6978 	.msglen = sizeof(ed25519_303_test_vectors_message),
6979 	.sig_type = EDDSA25519,
6980 	.exp_sig = ed25519_303_test_vectors_expected_sig,
6981 	.exp_siglen = sizeof(ed25519_303_test_vectors_expected_sig),
6982 	.adata = NULL,
6983 	.adata_len = 0
6984 };
6985 
6986 /************************************************/
6987 static const u8 ed25519_304_test_vectors_priv_key[] = {
6988 	0x37, 0xfc, 0x1b, 0xed, 0xa4, 0x06, 0x0b, 0x6c, 0x57, 0x88, 0x3d, 0xdb, 0xa0, 0x77, 0x6c, 0x2b, 0xcf, 0x5a, 0xc2, 0x8a, 0x65, 0x13, 0x26, 0x02, 0x1c, 0xca, 0x97, 0x72, 0x37, 0x30, 0xfb, 0xb0, };
6989 static const u8 ed25519_304_test_vectors_message[] = {
6990 	0x3d, 0xfc, 0xac, 0x02, 0x65, 0xa0, 0x24, 0xa8, 0x3c, 0xb9, 0x32, 0x67, 0x44, 0x89, 0xa1, 0x63, 0xaa, 0xc3, 0x14, 0xbf, 0x3d, 0x96, 0x9f, 0x27, 0x59, 0x6e, 0x45, 0x17, 0x33, 0xb9, 0x9d, 0xeb, 0xa5, 0xee, 0xb7, 0x79, 0x21, 0x0b, 0xaf, 0x95, 0xbf, 0x54, 0x5a, 0x1a, 0xe6, 0xb8, 0xa9, 0x15, 0x86, 0x06, 0x93, 0xee, 0x89, 0x0f, 0x93, 0x93, 0x20, 0xe0, 0x6a, 0x84, 0x44, 0x83, 0xd1, 0x8c, 0x6a, 0x1b, 0xcd, 0x03, 0xc6, 0x38, 0xbb, 0x7d, 0x1f, 0xe2, 0xa8, 0x2e, 0xb4, 0x48, 0xa3, 0x11, 0xb1, 0x30, 0x2e, 0xa6, 0x42, 0x8f, 0x54, 0xa3, 0x9f, 0x45, 0xa4, 0xd5, 0x60, 0xbe, 0x15, 0x57, 0xa2, 0xb2, 0x54, 0xc4, 0x5c, 0x13, 0x7f, 0x45, 0xcc, 0x68, 0x35, 0x68, 0x36, 0xe2, 0x1b, 0xed, 0x0b, 0x7f, 0x73, 0xa5, 0x18, 0xce, 0x09, 0xdb, 0x0b, 0xe3, 0x93, 0x92, 0x7c, 0x33, 0x9b, 0xf2, 0xa4, 0xb5, 0x98, 0x75, 0x39, 0x40, 0x4c, 0xe6, 0x50, 0x28, 0x4d, 0xe1, 0x2e, 0x3b, 0x55, 0x3b, 0x26, 0x2e, 0xfe, 0x23, 0x84, 0x83, 0x32, 0xcc, 0xfd, 0xc3, 0x5e, 0x79, 0x1a, 0x0a, 0xb4, 0x3f, 0x13, 0x9c, 0x71, 0xed, 0x0f, 0xcb, 0x2d, 0x17, 0x3b, 0xb3, 0x77, 0xee, 0x46, 0xb1, 0xa9, 0xdc, 0xa9, 0x27, 0x7e, 0x77, 0xdf, 0x85, 0x5f, 0x28, 0x30, 0x25, 0x1e, 0x31, 0xe2, 0x6a, 0xcd, 0x86, 0x76, 0x3c, 0x8d, 0x7e, 0xac, 0x22, 0xc8, 0x82, 0xfc, 0x17, 0x4f, 0x2b, 0x5e, 0x75, 0xca, 0x6a, 0xd1, 0xad, 0xe0, 0x3f, 0x94, 0x2b, 0xb2, 0xa1, 0x3b, 0xf5, 0x41, 0x90, 0x61, 0x59, 0x15, 0x8c, 0x68, 0x36, 0x3c, 0x74, 0x80, 0xc5, 0xb2, 0x7a, 0x99, 0x32, 0x0f, 0x82, 0x83, 0xa2, 0x69, 0x9d, 0x43, 0x69, 0xc0, 0x71, 0xc5, 0x0d, 0xbd, 0x90, 0xb7, 0x79, 0x2e, 0x47, 0x72, 0xef, 0xbc, 0x0b, 0x19, 0x5b, 0xce, 0x84, 0xcc, 0x4d, 0xcf, 0xff, 0x70, 0x72, 0xa4, 0x89, 0x68, 0xdb, 0x69, 0xf9, 0xfe, 0xdd, 0xd0, 0xf9, 0xce, 0xd6, 0x59, 0xeb, 0x5d, 0xb7, 0x16, 0x7f, 0x35, 0xf9, 0x88, 0xce, 0xc1, 0x14, 0x88, 0x7d, 0xcb, 0xfd, 0xf2, 0x7d, 0x02, 0xd3, 0x00, 0xb3, 0xe1, 0xab, 0xec, };
6991 static const u8 ed25519_304_test_vectors_expected_sig[] = {
6992 	0xa0, 0x1d, 0xd6, 0x5f, 0xad, 0xa2, 0x70, 0x39, 0xf1, 0x68, 0xb1, 0x23, 0x41, 0x9d, 0x8a, 0xbf, 0xbd, 0xa4, 0x8c, 0x57, 0x2e, 0xce, 0x24, 0xfd, 0xa0, 0x6e, 0x1a, 0x5e, 0xc3, 0x1e, 0x08, 0x4f, 0x4e, 0xe1, 0xcb, 0xf9, 0x96, 0x1e, 0x88, 0xed, 0x51, 0xe1, 0x89, 0xfc, 0xb7, 0xf5, 0xf2, 0x35, 0xde, 0x1e, 0x5b, 0x28, 0xd0, 0x8f, 0x2b, 0xfc, 0xa1, 0x90, 0xb0, 0xf0, 0x19, 0xec, 0xc2, 0x07, };
6993 static const ec_test_case ed25519_304_test_case = {
6994 	.name = "EDDSA25519-SHA512/wei25519 304",
6995 	.ec_str_p = &wei25519_str_params,
6996 	.priv_key = ed25519_304_test_vectors_priv_key,
6997 	.priv_key_len = sizeof(ed25519_304_test_vectors_priv_key),
6998 	.nn_random = NULL,
6999 	.hash_type = SHA512,
7000 	.msg = (const char *)ed25519_304_test_vectors_message,
7001 	.msglen = sizeof(ed25519_304_test_vectors_message),
7002 	.sig_type = EDDSA25519,
7003 	.exp_sig = ed25519_304_test_vectors_expected_sig,
7004 	.exp_siglen = sizeof(ed25519_304_test_vectors_expected_sig),
7005 	.adata = NULL,
7006 	.adata_len = 0
7007 };
7008 
7009 /************************************************/
7010 static const u8 ed25519_305_test_vectors_priv_key[] = {
7011 	0x8d, 0x42, 0xf4, 0xdd, 0xd2, 0xbb, 0xd2, 0xb8, 0x27, 0xb0, 0xa0, 0xd3, 0x1d, 0x8f, 0x75, 0x8e, 0xbd, 0x13, 0xa1, 0xb9, 0xb3, 0x71, 0x22, 0x28, 0x94, 0x8c, 0xa6, 0x10, 0xbb, 0x88, 0x58, 0xe5, };
7012 static const u8 ed25519_305_test_vectors_message[] = {
7013 	0xe3, 0xa2, 0xbe, 0xbc, 0x04, 0x96, 0xd8, 0x97, 0x4a, 0x8f, 0x40, 0x61, 0x88, 0x03, 0x69, 0x31, 0x4e, 0xd9, 0xe4, 0x40, 0xc1, 0xb7, 0x7e, 0x26, 0xfe, 0x50, 0x71, 0xce, 0x69, 0x4f, 0xfd, 0x21, 0x36, 0xdb, 0x0c, 0x4d, 0x5e, 0x88, 0x0e, 0x60, 0x00, 0x08, 0x3a, 0x75, 0xc9, 0x0d, 0x3c, 0xf7, 0x2b, 0x9c, 0xf5, 0xa2, 0xb1, 0xa9, 0x00, 0x2c, 0x27, 0x01, 0xa2, 0xff, 0x59, 0xb0, 0x69, 0x9a, 0x8f, 0x42, 0xd7, 0x9d, 0xd8, 0xa5, 0xfb, 0x71, 0xa8, 0x12, 0x54, 0x53, 0xd9, 0x1f, 0xb8, 0x00, 0x80, 0xa3, 0xf0, 0xa1, 0x65, 0x84, 0x28, 0x2f, 0x17, 0xec, 0x7d, 0xfd, 0xc2, 0xe5, 0xc6, 0x9c, 0x4d, 0x9b, 0xdf, 0x48, 0x4d, 0x55, 0x94, 0x4d, 0xae, 0x27, 0x3f, 0x21, 0x1c, 0xfb, 0x76, 0xad, 0x37, 0xda, 0x45, 0x87, 0x13, 0x65, 0x43, 0x9a, 0xf3, 0x5e, 0xea, 0x1f, 0xbe, 0xcd, 0x4c, 0xa6, 0x79, 0xb5, 0x9b, 0x5e, 0x01, 0xba, 0xcf, 0x49, 0xc7, 0xf4, 0xe5, 0xef, 0xaa, 0x40, 0x6b, 0xa1, 0xda, 0xeb, 0x08, 0x54, 0x82, 0xaf, 0x5d, 0xed, 0x89, 0xdc, 0x68, 0x85, 0xff, 0xbe, 0x3d, 0x14, 0xd2, 0x93, 0x1b, 0x83, 0x89, 0x7e, 0x28, 0xad, 0x06, 0xe5, 0x56, 0x4e, 0x27, 0x89, 0xba, 0xea, 0x81, 0xbd, 0x93, 0x2a, 0xa2, 0x79, 0xfe, 0x8e, 0x32, 0x4b, 0x9a, 0x8e, 0xf1, 0x11, 0xc2, 0xab, 0xe2, 0xf1, 0x37, 0xd4, 0xbb, 0x50, 0xd8, 0xab, 0x76, 0xce, 0xbc, 0x0b, 0xd9, 0x82, 0xa2, 0x39, 0x19, 0x75, 0x1a, 0xd4, 0xd4, 0x9e, 0x88, 0xeb, 0x14, 0x17, 0x3d, 0x33, 0x10, 0x28, 0x9a, 0x87, 0x23, 0x17, 0xe4, 0xa4, 0x51, 0xe8, 0x8d, 0x54, 0x32, 0x08, 0x91, 0x87, 0x0f, 0x15, 0xb2, 0xd5, 0x33, 0x24, 0x43, 0x08, 0x77, 0xa9, 0xfb, 0x5b, 0x49, 0xbb, 0x92, 0x9f, 0x21, 0x1c, 0x5b, 0x89, 0x76, 0x4d, 0xd9, 0xc3, 0xa5, 0x95, 0xa1, 0x45, 0x1e, 0x9f, 0x85, 0xa2, 0x38, 0x54, 0x00, 0x02, 0x56, 0x6e, 0x53, 0xa9, 0x9e, 0xd1, 0xe6, 0xdd, 0xc9, 0xb4, 0x85, 0x3f, 0x45, 0x5e, 0xdb, 0x4c, 0xf1, 0x98, 0x0d, 0x56, 0xbb, 0xdc, 0x13, 0x13, 0xa3, 0x6e, 0x76, 0xea, 0x9c, 0xbb, 0x04, 0x8a, };
7014 static const u8 ed25519_305_test_vectors_expected_sig[] = {
7015 	0x70, 0x76, 0x4b, 0xe3, 0x9c, 0x6d, 0xca, 0x0f, 0x06, 0x7a, 0xbe, 0x1e, 0xca, 0x49, 0x0f, 0xda, 0x95, 0x1f, 0xd4, 0xe9, 0x49, 0x96, 0x95, 0x26, 0x6e, 0x27, 0x0b, 0x9b, 0x05, 0xea, 0xe7, 0x06, 0xca, 0x8d, 0x1c, 0xa6, 0xa9, 0x2d, 0x7c, 0x48, 0x8e, 0xc6, 0xad, 0x8b, 0xa1, 0x14, 0x57, 0xa4, 0x2a, 0x5e, 0x31, 0x70, 0x2a, 0x9c, 0x2b, 0xce, 0x89, 0x2d, 0xc4, 0x05, 0x35, 0xc0, 0x9f, 0x01, };
7016 static const ec_test_case ed25519_305_test_case = {
7017 	.name = "EDDSA25519-SHA512/wei25519 305",
7018 	.ec_str_p = &wei25519_str_params,
7019 	.priv_key = ed25519_305_test_vectors_priv_key,
7020 	.priv_key_len = sizeof(ed25519_305_test_vectors_priv_key),
7021 	.nn_random = NULL,
7022 	.hash_type = SHA512,
7023 	.msg = (const char *)ed25519_305_test_vectors_message,
7024 	.msglen = sizeof(ed25519_305_test_vectors_message),
7025 	.sig_type = EDDSA25519,
7026 	.exp_sig = ed25519_305_test_vectors_expected_sig,
7027 	.exp_siglen = sizeof(ed25519_305_test_vectors_expected_sig),
7028 	.adata = NULL,
7029 	.adata_len = 0
7030 };
7031 
7032 /************************************************/
7033 static const u8 ed25519_306_test_vectors_priv_key[] = {
7034 	0xb6, 0x2d, 0xe5, 0xa1, 0xac, 0xfe, 0x4c, 0xa2, 0xd1, 0xf0, 0xc1, 0x32, 0xaf, 0xcb, 0xda, 0xe6, 0x6f, 0xb2, 0x9a, 0x02, 0xf2, 0x97, 0xfb, 0xc2, 0x40, 0x7f, 0xad, 0xbb, 0xf2, 0x45, 0x42, 0x00, };
7035 static const u8 ed25519_306_test_vectors_message[] = {
7036 	0xe6, 0x59, 0xe5, 0x1d, 0x7b, 0x19, 0x3c, 0x4b, 0x8e, 0x2b, 0x3e, 0xd7, 0x3a, 0x9d, 0x75, 0x57, 0xed, 0x2b, 0xab, 0x61, 0x53, 0x88, 0x3a, 0xb7, 0x23, 0x59, 0x2f, 0x73, 0x0a, 0x91, 0x45, 0x67, 0x14, 0x2b, 0x3f, 0xa4, 0x35, 0xdb, 0x32, 0x19, 0xf8, 0x3a, 0x54, 0x2d, 0xc7, 0xa4, 0xbd, 0x80, 0x5a, 0xf6, 0x66, 0xea, 0x86, 0x5b, 0x85, 0x31, 0x46, 0xf8, 0xe3, 0xa9, 0xfe, 0x87, 0x07, 0x11, 0xf9, 0x0d, 0x12, 0xb0, 0x69, 0x34, 0x92, 0xaf, 0x2a, 0x1e, 0xdf, 0x99, 0xa1, 0x64, 0x58, 0xf7, 0x81, 0xf1, 0x26, 0x6e, 0xc4, 0x37, 0xa5, 0x29, 0x6a, 0x82, 0x2c, 0xa9, 0xd6, 0x9c, 0xe8, 0x44, 0xb5, 0xc5, 0x90, 0x97, 0xa2, 0xa5, 0x6f, 0x3e, 0xb8, 0xfd, 0x27, 0x3a, 0x63, 0x61, 0x16, 0xdb, 0x77, 0x43, 0x00, 0x92, 0x2d, 0x45, 0xb7, 0x44, 0x65, 0x7a, 0x69, 0x2f, 0x5e, 0x8b, 0xfb, 0xcb, 0x06, 0xd2, 0x42, 0x28, 0x18, 0xae, 0xb5, 0x1e, 0x7c, 0xda, 0x68, 0xac, 0xfb, 0xed, 0xa1, 0x6e, 0x7c, 0x79, 0x58, 0x0d, 0xcc, 0xcd, 0xe2, 0x4e, 0x8e, 0x3d, 0x60, 0x1b, 0x16, 0xe0, 0x63, 0xb4, 0x3a, 0x6d, 0x0d, 0x14, 0x07, 0x55, 0x2f, 0x75, 0x04, 0xf5, 0xbe, 0x19, 0x88, 0x2e, 0x4f, 0xfe, 0x32, 0x34, 0x4f, 0x5f, 0x47, 0x3e, 0x73, 0xa8, 0xf6, 0xed, 0x37, 0xb0, 0xd8, 0xd9, 0xe5, 0xe0, 0xa0, 0xdc, 0x98, 0x28, 0x39, 0x5b, 0xcb, 0xd8, 0xf3, 0xa4, 0xe3, 0x12, 0x48, 0x69, 0x24, 0x9d, 0x05, 0x8b, 0xe0, 0xe0, 0x45, 0xde, 0x0b, 0x1e, 0x12, 0xb1, 0xc8, 0x3b, 0xa0, 0xaa, 0x22, 0x7c, 0x95, 0xb8, 0x2b, 0xf7, 0x42, 0xc3, 0xea, 0xc0, 0x15, 0x2b, 0x33, 0xe6, 0xd1, 0x9b, 0xe8, 0xb3, 0x3a, 0x35, 0xbf, 0x70, 0x5d, 0xaa, 0xb1, 0x06, 0x22, 0xa9, 0x0a, 0xed, 0x02, 0x2e, 0xa6, 0xe4, 0x39, 0xed, 0x50, 0xa9, 0x30, 0x84, 0x37, 0x92, 0x99, 0x24, 0xba, 0x3a, 0xb1, 0x11, 0xad, 0x0c, 0xaa, 0x6f, 0xeb, 0x0a, 0x6e, 0xb1, 0x65, 0x82, 0x4e, 0xbd, 0xb0, 0x86, 0x65, 0x71, 0xef, 0xc0, 0x7e, 0x52, 0x22, 0xed, 0x86, 0x86, 0xb1, 0x4d, 0x92, 0x70, 0xbf, 0x76, 0xb9, 0x45, 0xd5, 0x20, 0x14, };
7037 static const u8 ed25519_306_test_vectors_expected_sig[] = {
7038 	0x5c, 0xdb, 0x00, 0xe9, 0x8d, 0xe7, 0x3e, 0xab, 0x48, 0x0b, 0xe4, 0x2f, 0x8a, 0x8a, 0x61, 0x63, 0x80, 0x9a, 0x0d, 0x37, 0x10, 0x1b, 0x6a, 0x5a, 0x4e, 0xed, 0x6a, 0x0c, 0x92, 0x03, 0x0d, 0x09, 0xa5, 0x56, 0x2c, 0x72, 0x90, 0x80, 0xce, 0x6f, 0x65, 0x94, 0xc8, 0xfa, 0xfb, 0x1f, 0x59, 0x47, 0x72, 0xdb, 0x7a, 0x90, 0xa9, 0xe7, 0xda, 0x15, 0x89, 0x6e, 0x82, 0xf7, 0x05, 0x69, 0x39, 0x0d, };
7039 static const ec_test_case ed25519_306_test_case = {
7040 	.name = "EDDSA25519-SHA512/wei25519 306",
7041 	.ec_str_p = &wei25519_str_params,
7042 	.priv_key = ed25519_306_test_vectors_priv_key,
7043 	.priv_key_len = sizeof(ed25519_306_test_vectors_priv_key),
7044 	.nn_random = NULL,
7045 	.hash_type = SHA512,
7046 	.msg = (const char *)ed25519_306_test_vectors_message,
7047 	.msglen = sizeof(ed25519_306_test_vectors_message),
7048 	.sig_type = EDDSA25519,
7049 	.exp_sig = ed25519_306_test_vectors_expected_sig,
7050 	.exp_siglen = sizeof(ed25519_306_test_vectors_expected_sig),
7051 	.adata = NULL,
7052 	.adata_len = 0
7053 };
7054 
7055 /************************************************/
7056 static const u8 ed25519_307_test_vectors_priv_key[] = {
7057 	0x97, 0x32, 0x05, 0x9d, 0x7b, 0xf0, 0x20, 0x0f, 0x5f, 0x30, 0x41, 0x24, 0x30, 0x33, 0x6b, 0xe4, 0xef, 0x1e, 0x3c, 0xae, 0x62, 0x93, 0x8a, 0xd0, 0x87, 0x29, 0xce, 0x3b, 0xa7, 0x14, 0xcf, 0xd4, };
7058 static const u8 ed25519_307_test_vectors_message[] = {
7059 	0x1a, 0x13, 0xe7, 0xab, 0x60, 0x3b, 0x48, 0xeb, 0x89, 0x6f, 0xe1, 0x71, 0x73, 0xfb, 0x31, 0x95, 0x0b, 0x0d, 0xcd, 0x5a, 0x35, 0xff, 0xdb, 0xe1, 0x37, 0x1c, 0x7a, 0x5b, 0xfb, 0xa5, 0x93, 0x31, 0x75, 0x89, 0xd9, 0x65, 0x2d, 0x88, 0x79, 0x77, 0x29, 0x18, 0x0b, 0x8d, 0x0e, 0x51, 0x5a, 0xbf, 0xe6, 0x54, 0x8f, 0x16, 0x04, 0x21, 0xe5, 0x37, 0xd5, 0xc9, 0x4a, 0xef, 0x2b, 0x34, 0xc7, 0xeb, 0xb0, 0x97, 0x42, 0x00, 0x03, 0xbc, 0x0f, 0x36, 0x1b, 0x42, 0x3e, 0x7e, 0x14, 0x63, 0x0a, 0x80, 0x3c, 0x11, 0x82, 0x02, 0x54, 0x00, 0x49, 0xf6, 0x8c, 0x9c, 0xf4, 0x6f, 0xae, 0x03, 0x68, 0xd1, 0x62, 0xe4, 0x00, 0xd7, 0x7b, 0xb4, 0x52, 0x3c, 0xf6, 0xc7, 0x53, 0xb9, 0x75, 0xc2, 0x45, 0xbc, 0x99, 0xed, 0x2f, 0x41, 0x3a, 0x9d, 0x06, 0xc2, 0xda, 0x6c, 0xe0, 0xcc, 0x09, 0x87, 0xb6, 0x40, 0x6b, 0x80, 0x9e, 0x8e, 0xb3, 0x19, 0x03, 0x3d, 0x2d, 0xe9, 0x13, 0x1d, 0xee, 0x3b, 0x1b, 0x7b, 0x5c, 0x95, 0xd6, 0x53, 0xce, 0xd8, 0xfc, 0xcf, 0x99, 0x8d, 0xa1, 0x76, 0x85, 0x11, 0xec, 0xa4, 0xd3, 0xc5, 0xf7, 0x35, 0xad, 0xab, 0x96, 0x50, 0x3b, 0x35, 0x51, 0x80, 0x3e, 0x49, 0x22, 0x63, 0x50, 0x95, 0xef, 0x81, 0x1b, 0xe4, 0xc0, 0x8a, 0x6c, 0xba, 0xc9, 0x17, 0xcb, 0xe6, 0xcd, 0x91, 0xa4, 0xae, 0x5a, 0x33, 0x0c, 0xce, 0xc0, 0xe8, 0xe8, 0x15, 0x37, 0x12, 0x17, 0xa3, 0xde, 0x62, 0xf2, 0xd2, 0xd6, 0x14, 0x66, 0x21, 0x98, 0x33, 0xf3, 0x34, 0x47, 0x13, 0x2f, 0x4d, 0x43, 0x35, 0x0c, 0x58, 0xcb, 0xaf, 0x42, 0x24, 0x75, 0xed, 0xb1, 0x28, 0xc5, 0x6d, 0x80, 0xa4, 0x95, 0x72, 0x6b, 0x1f, 0xdb, 0xc5, 0x65, 0x51, 0xeb, 0x72, 0xd0, 0xf4, 0xfe, 0xc2, 0x6b, 0xa8, 0xbf, 0xf5, 0xee, 0xd6, 0x77, 0x4b, 0x85, 0x03, 0x9a, 0x52, 0x92, 0x83, 0x4b, 0x5d, 0x1c, 0xc1, 0xb0, 0x9b, 0xa0, 0xa3, 0x95, 0x4d, 0x29, 0x32, 0x36, 0x73, 0xf5, 0xe7, 0x12, 0x76, 0xa1, 0x2a, 0xc4, 0xc5, 0x79, 0x35, 0x5b, 0xf1, 0xec, 0xca, 0x48, 0xe6, 0xa7, 0x16, 0xb9, 0xfc, 0xec, 0xdc, 0x56, 0x5c, 0x51, 0xb9, };
7060 static const u8 ed25519_307_test_vectors_expected_sig[] = {
7061 	0xfb, 0xa1, 0x74, 0x9b, 0x64, 0x1d, 0xd4, 0xdf, 0x34, 0x66, 0x4b, 0xc4, 0x3c, 0x00, 0x46, 0x8c, 0x7d, 0x75, 0xe8, 0x4a, 0xfa, 0xd7, 0x2d, 0xe4, 0x73, 0xfd, 0x1e, 0x9c, 0x87, 0xda, 0x15, 0xea, 0x60, 0x4f, 0xc2, 0x54, 0x9a, 0x1a, 0x86, 0x7f, 0xa8, 0x08, 0x50, 0xe9, 0xc2, 0xa5, 0x9c, 0xd9, 0x90, 0x53, 0x88, 0x67, 0x60, 0xa8, 0xd9, 0x76, 0x4b, 0x84, 0xdd, 0x67, 0x26, 0x76, 0x72, 0x0d, };
7062 static const ec_test_case ed25519_307_test_case = {
7063 	.name = "EDDSA25519-SHA512/wei25519 307",
7064 	.ec_str_p = &wei25519_str_params,
7065 	.priv_key = ed25519_307_test_vectors_priv_key,
7066 	.priv_key_len = sizeof(ed25519_307_test_vectors_priv_key),
7067 	.nn_random = NULL,
7068 	.hash_type = SHA512,
7069 	.msg = (const char *)ed25519_307_test_vectors_message,
7070 	.msglen = sizeof(ed25519_307_test_vectors_message),
7071 	.sig_type = EDDSA25519,
7072 	.exp_sig = ed25519_307_test_vectors_expected_sig,
7073 	.exp_siglen = sizeof(ed25519_307_test_vectors_expected_sig),
7074 	.adata = NULL,
7075 	.adata_len = 0
7076 };
7077 
7078 /************************************************/
7079 static const u8 ed25519_308_test_vectors_priv_key[] = {
7080 	0x9c, 0x7f, 0x6f, 0x37, 0x9e, 0x38, 0x57, 0x00, 0x7e, 0x2a, 0xc6, 0x32, 0x4c, 0xbb, 0xce, 0xd5, 0x7a, 0xc9, 0xee, 0xe4, 0x47, 0x78, 0x13, 0xf8, 0x3a, 0x81, 0xfc, 0x8c, 0xef, 0xa9, 0x64, 0xd5, };
7081 static const u8 ed25519_308_test_vectors_message[] = {
7082 	0x3f, 0x2d, 0x30, 0x72, 0xfe, 0x73, 0x83, 0xe5, 0x41, 0x55, 0x1e, 0xa9, 0xab, 0xdb, 0xae, 0xae, 0x6a, 0x46, 0x4a, 0xe6, 0xb9, 0xf0, 0xba, 0x78, 0x6a, 0x44, 0x1b, 0x2d, 0x08, 0xda, 0x5b, 0xca, 0xda, 0x3c, 0x54, 0x24, 0xdc, 0x69, 0x31, 0xd6, 0xb3, 0x95, 0x23, 0xe2, 0xde, 0x0a, 0x0c, 0x2e, 0x4e, 0x6b, 0x5b, 0x8c, 0xda, 0x92, 0x5e, 0x5e, 0xac, 0x93, 0x84, 0x16, 0xa2, 0xc5, 0x1b, 0xf1, 0x3d, 0x49, 0x53, 0x1d, 0x7e, 0xc7, 0x11, 0x4b, 0x1c, 0x82, 0xfe, 0xaf, 0x90, 0xf3, 0xf8, 0x75, 0x91, 0xe3, 0x97, 0xd0, 0x27, 0x02, 0xf8, 0xec, 0x1b, 0x30, 0xd9, 0x9f, 0x5b, 0xe7, 0xd2, 0x20, 0x3e, 0x4f, 0xe4, 0xdb, 0x2e, 0xa4, 0x7e, 0x7b, 0x45, 0x89, 0xd8, 0xac, 0x50, 0x62, 0x48, 0xd7, 0x34, 0x74, 0x66, 0xed, 0xbc, 0x96, 0xea, 0x32, 0xbf, 0x3a, 0x6e, 0xa7, 0x50, 0x2d, 0xd6, 0x0c, 0x9e, 0x84, 0x90, 0x27, 0x15, 0xab, 0x2c, 0x6c, 0xa6, 0x8f, 0x5b, 0x00, 0xe1, 0xd9, 0x09, 0xd8, 0x3a, 0xa6, 0xab, 0x66, 0x2d, 0x8a, 0xea, 0x87, 0x0e, 0xcd, 0x86, 0x1f, 0xec, 0x69, 0xf2, 0xee, 0xc0, 0xae, 0x67, 0x7d, 0x29, 0x95, 0xb0, 0xed, 0x68, 0x8f, 0xaa, 0x8e, 0xf7, 0x82, 0x44, 0xe0, 0xd1, 0x19, 0x56, 0x97, 0xb0, 0x71, 0x22, 0xce, 0xaa, 0x11, 0xf5, 0xa6, 0xea, 0x58, 0xfb, 0xdf, 0xa2, 0xe2, 0xec, 0x2d, 0xf9, 0xd1, 0x86, 0x93, 0xae, 0x96, 0xd4, 0x71, 0x27, 0x55, 0x6e, 0x91, 0xf0, 0x86, 0x49, 0x82, 0xc1, 0x34, 0x19, 0xb0, 0x4a, 0x63, 0xf2, 0x08, 0xe7, 0x30, 0xd2, 0x69, 0x51, 0x88, 0x2a, 0xef, 0xe0, 0x01, 0xbc, 0xa3, 0x40, 0x8b, 0xd9, 0x86, 0x27, 0x48, 0xc6, 0xcc, 0x87, 0x6c, 0x28, 0xca, 0xc3, 0xbb, 0x2e, 0xb3, 0x39, 0x58, 0x18, 0xc2, 0x09, 0x1e, 0x0f, 0xbd, 0x7a, 0x0b, 0x44, 0x68, 0xc6, 0xb0, 0xd0, 0x0c, 0xd0, 0x08, 0xc1, 0x1c, 0x3c, 0x3a, 0xd0, 0x10, 0x80, 0xa1, 0xf5, 0xa4, 0x0a, 0xe2, 0xe4, 0xb0, 0xc3, 0xa0, 0x71, 0xef, 0xc8, 0xe1, 0xd1, 0xba, 0x6a, 0xce, 0x6d, 0x4d, 0xf0, 0xff, 0x19, 0x82, 0x9b, 0x0c, 0x68, 0x0b, 0x3a, 0xeb, 0x75, 0x91, 0x77, 0xed, 0x34, };
7083 static const u8 ed25519_308_test_vectors_expected_sig[] = {
7084 	0x65, 0x68, 0x5f, 0x9c, 0xa5, 0x98, 0x2e, 0x15, 0xa2, 0x2b, 0xa3, 0xc8, 0x3a, 0x03, 0x48, 0x34, 0x84, 0x82, 0xdf, 0xae, 0x57, 0xce, 0xa1, 0x78, 0xf0, 0x78, 0x0c, 0x05, 0x7b, 0xae, 0xbe, 0x4a, 0xf6, 0x32, 0xf9, 0x84, 0x54, 0x0a, 0x26, 0x01, 0x9a, 0x7f, 0xb3, 0x42, 0x53, 0xc9, 0xec, 0xe7, 0xff, 0x30, 0x8a, 0xda, 0x23, 0x3c, 0xe0, 0x68, 0x63, 0x47, 0xab, 0x5b, 0x21, 0xce, 0x57, 0x0b, };
7085 static const ec_test_case ed25519_308_test_case = {
7086 	.name = "EDDSA25519-SHA512/wei25519 308",
7087 	.ec_str_p = &wei25519_str_params,
7088 	.priv_key = ed25519_308_test_vectors_priv_key,
7089 	.priv_key_len = sizeof(ed25519_308_test_vectors_priv_key),
7090 	.nn_random = NULL,
7091 	.hash_type = SHA512,
7092 	.msg = (const char *)ed25519_308_test_vectors_message,
7093 	.msglen = sizeof(ed25519_308_test_vectors_message),
7094 	.sig_type = EDDSA25519,
7095 	.exp_sig = ed25519_308_test_vectors_expected_sig,
7096 	.exp_siglen = sizeof(ed25519_308_test_vectors_expected_sig),
7097 	.adata = NULL,
7098 	.adata_len = 0
7099 };
7100 
7101 /************************************************/
7102 static const u8 ed25519_309_test_vectors_priv_key[] = {
7103 	0xa4, 0x78, 0xf3, 0x5a, 0xbb, 0x73, 0x72, 0x7b, 0x6b, 0xe6, 0xee, 0x5e, 0x56, 0xee, 0xc3, 0x23, 0xc9, 0x51, 0x78, 0x82, 0xfd, 0x69, 0x19, 0x36, 0x0e, 0xbb, 0xbf, 0x5d, 0x5c, 0xb8, 0xb8, 0x3a, };
7104 static const u8 ed25519_309_test_vectors_message[] = {
7105 	0x01, 0x73, 0xa3, 0x40, 0x50, 0xb4, 0x37, 0x48, 0x06, 0x1f, 0xf8, 0xf5, 0xa3, 0xd7, 0xc4, 0x3b, 0x63, 0x60, 0x84, 0x77, 0x86, 0xe8, 0xbb, 0x75, 0xe5, 0x36, 0xfb, 0x47, 0xb6, 0x45, 0xb2, 0x14, 0xf2, 0x21, 0xba, 0x24, 0xd8, 0x3d, 0x28, 0xbc, 0x02, 0x50, 0x24, 0x66, 0x3e, 0x53, 0x4f, 0x90, 0xf6, 0xe8, 0x3a, 0x93, 0xd8, 0xbd, 0xde, 0xda, 0x2c, 0xd8, 0x80, 0x81, 0x55, 0x65, 0x2a, 0x90, 0x8c, 0x43, 0x7c, 0x2d, 0xb6, 0xf3, 0xed, 0x49, 0x12, 0xf5, 0x7c, 0xa5, 0xb9, 0x79, 0x28, 0xa7, 0x3b, 0xe9, 0x64, 0xaf, 0x59, 0xdf, 0x44, 0x39, 0x85, 0x4b, 0xb0, 0x06, 0xfc, 0x29, 0x5a, 0x87, 0xb7, 0xb7, 0x22, 0x39, 0xc7, 0xfa, 0xdf, 0xec, 0x40, 0x71, 0x55, 0x09, 0xd9, 0x85, 0x79, 0xda, 0xad, 0xfb, 0x8d, 0x52, 0x4b, 0x4c, 0xec, 0x66, 0x20, 0x70, 0x5e, 0xfd, 0x41, 0x04, 0xc2, 0x97, 0x14, 0x4a, 0xea, 0x72, 0x29, 0x74, 0xe1, 0x2c, 0x5e, 0xce, 0xe5, 0x39, 0x1e, 0xf2, 0xd9, 0x3a, 0xc2, 0xb1, 0x24, 0xe4, 0xac, 0x49, 0x61, 0x47, 0xc8, 0xb7, 0x03, 0x63, 0x58, 0x5d, 0x70, 0x78, 0xcc, 0xc5, 0x3e, 0x2a, 0xe5, 0x93, 0x35, 0x0b, 0xc2, 0x55, 0x48, 0xa0, 0x54, 0x25, 0x26, 0xab, 0x00, 0xaf, 0xe4, 0x77, 0xa0, 0xf4, 0xb2, 0x73, 0x97, 0xc7, 0x2b, 0xc7, 0x4a, 0x8a, 0x8a, 0xb1, 0x56, 0xe6, 0x2b, 0x8b, 0xb4, 0x7c, 0x3f, 0xbb, 0x4b, 0x34, 0x91, 0x3e, 0x45, 0x96, 0x87, 0x47, 0x6b, 0xf3, 0x31, 0x42, 0xc6, 0x14, 0x70, 0x21, 0x07, 0xff, 0xe2, 0xcc, 0x01, 0xe2, 0x5f, 0xa3, 0x02, 0x75, 0xe1, 0xe2, 0xe6, 0x3c, 0xea, 0x91, 0x68, 0xe4, 0xa4, 0x7c, 0x02, 0xde, 0x09, 0x7d, 0x4d, 0x85, 0x3b, 0x27, 0x67, 0x5c, 0x5b, 0xb3, 0x30, 0xb9, 0x4a, 0x97, 0x4e, 0xad, 0x85, 0xe2, 0xbd, 0xee, 0x8e, 0xe1, 0x7c, 0xbb, 0x56, 0x53, 0x34, 0x66, 0x58, 0xdf, 0x2f, 0x91, 0xf6, 0xbd, 0x73, 0x94, 0x91, 0xdd, 0x71, 0x98, 0x8b, 0x3a, 0x97, 0x6a, 0x3e, 0x2e, 0x7a, 0x9d, 0x13, 0x74, 0x10, 0xf4, 0xac, 0xba, 0x9f, 0xeb, 0x5f, 0x11, 0x79, 0x8c, 0x9a, 0x43, 0xb6, 0xad, 0xce, 0x14, 0x36, 0x5a, 0x7c, 0x6d, };
7106 static const u8 ed25519_309_test_vectors_expected_sig[] = {
7107 	0x9d, 0x16, 0xfd, 0x40, 0xb9, 0xf8, 0xdd, 0x9b, 0x4a, 0x1a, 0x8c, 0x6d, 0x70, 0x3b, 0x9f, 0xcc, 0xbb, 0x94, 0x0b, 0x1e, 0x0a, 0xe7, 0x7a, 0x59, 0x70, 0x37, 0x4a, 0xf0, 0xcf, 0x72, 0x6f, 0x44, 0x79, 0xfd, 0x30, 0xd7, 0xdf, 0xf5, 0xcf, 0x53, 0x49, 0x4d, 0x9a, 0x29, 0x6a, 0xb6, 0xb9, 0xe4, 0x6e, 0xa6, 0xc1, 0x36, 0xb4, 0xdb, 0x2c, 0x71, 0xc2, 0x1b, 0x97, 0xc1, 0xc8, 0x25, 0x4d, 0x0a, };
7108 static const ec_test_case ed25519_309_test_case = {
7109 	.name = "EDDSA25519-SHA512/wei25519 309",
7110 	.ec_str_p = &wei25519_str_params,
7111 	.priv_key = ed25519_309_test_vectors_priv_key,
7112 	.priv_key_len = sizeof(ed25519_309_test_vectors_priv_key),
7113 	.nn_random = NULL,
7114 	.hash_type = SHA512,
7115 	.msg = (const char *)ed25519_309_test_vectors_message,
7116 	.msglen = sizeof(ed25519_309_test_vectors_message),
7117 	.sig_type = EDDSA25519,
7118 	.exp_sig = ed25519_309_test_vectors_expected_sig,
7119 	.exp_siglen = sizeof(ed25519_309_test_vectors_expected_sig),
7120 	.adata = NULL,
7121 	.adata_len = 0
7122 };
7123 
7124 /************************************************/
7125 static const u8 ed25519_310_test_vectors_priv_key[] = {
7126 	0xff, 0xe8, 0x25, 0x14, 0x8c, 0x09, 0x59, 0xb3, 0xa6, 0x8d, 0xe8, 0x6a, 0xd8, 0xe8, 0xaf, 0x7f, 0xa5, 0xe0, 0x78, 0xf3, 0x63, 0xdc, 0x12, 0x42, 0x13, 0xc9, 0x00, 0x20, 0xda, 0x0c, 0x90, 0x89, };
7127 static const u8 ed25519_310_test_vectors_message[] = {
7128 	0xf1, 0x25, 0x78, 0x0d, 0x0c, 0xd0, 0x88, 0x53, 0x0f, 0x0c, 0x87, 0xb7, 0x0b, 0xd4, 0x2e, 0xba, 0xb5, 0x6a, 0xdb, 0x5a, 0xd4, 0x34, 0x5f, 0x92, 0x9a, 0xe5, 0xde, 0xae, 0x07, 0xfb, 0x55, 0x32, 0x21, 0x53, 0xa8, 0xf0, 0x23, 0xd3, 0x88, 0x43, 0xbf, 0x5d, 0x6a, 0x93, 0xfe, 0x99, 0x3e, 0xee, 0x71, 0xbc, 0x2e, 0xe5, 0x63, 0xb2, 0x5a, 0x50, 0x91, 0x8f, 0x03, 0xef, 0xdb, 0x5d, 0xbf, 0x72, 0x69, 0xad, 0xd6, 0x9d, 0xed, 0x3e, 0x66, 0x95, 0x38, 0x95, 0x62, 0x0d, 0x9b, 0x6c, 0xf4, 0x6b, 0xa2, 0x34, 0x8f, 0x8d, 0x66, 0xd7, 0xf0, 0x92, 0x23, 0x5e, 0x37, 0x8c, 0x1e, 0x3e, 0xdf, 0xeb, 0xeb, 0x78, 0x08, 0x4b, 0xc8, 0xde, 0xa0, 0x13, 0xf9, 0x93, 0x3a, 0xae, 0x14, 0xa0, 0x41, 0x94, 0x82, 0x76, 0xd0, 0x1f, 0x1c, 0xb5, 0x83, 0x4b, 0x0e, 0x59, 0x0e, 0x13, 0xd9, 0x31, 0xd1, 0x92, 0x92, 0xbb, 0x1d, 0x80, 0x41, 0xff, 0x2f, 0xe2, 0xe1, 0x17, 0x1a, 0x2e, 0x0b, 0x9a, 0x05, 0x98, 0x21, 0xd0, 0x92, 0x4d, 0xde, 0x7f, 0x3b, 0x1b, 0xb5, 0x98, 0x13, 0xf5, 0xe3, 0xc6, 0x35, 0x20, 0xaa, 0xfb, 0x88, 0x01, 0xba, 0x62, 0xc7, 0x09, 0x7d, 0x4d, 0x8c, 0xf4, 0x37, 0xa5, 0x68, 0xa7, 0xf0, 0x08, 0x7c, 0x6e, 0xa0, 0xfc, 0xe6, 0xe5, 0x68, 0xc4, 0x88, 0x3f, 0x1c, 0xd1, 0x2c, 0x74, 0x9d, 0x06, 0xa6, 0xfe, 0xb2, 0x78, 0xf1, 0x08, 0x6a, 0x8b, 0x04, 0x76, 0x99, 0x21, 0xf7, 0x8a, 0x99, 0x59, 0x06, 0x2a, 0xb0, 0x6f, 0x98, 0xee, 0x80, 0xc2, 0xc7, 0x85, 0x4f, 0xfa, 0x76, 0x0f, 0x86, 0xa8, 0x9e, 0xe1, 0xa5, 0x12, 0x66, 0x05, 0x3d, 0x19, 0x5e, 0x61, 0xbb, 0x1d, 0xbd, 0x18, 0xdd, 0x89, 0xff, 0x39, 0x4e, 0x40, 0x8a, 0xce, 0x0f, 0x64, 0x1a, 0x39, 0x5d, 0x56, 0x11, 0x8e, 0xa7, 0x2b, 0x7d, 0x8a, 0xdf, 0x78, 0xb1, 0x65, 0x5e, 0xce, 0xce, 0x7e, 0x82, 0x50, 0xe8, 0xa3, 0xa9, 0x1c, 0xb8, 0xfc, 0xa0, 0xd9, 0xce, 0x0b, 0xaf, 0x89, 0x80, 0xa3, 0x87, 0xc5, 0xed, 0x43, 0x18, 0x66, 0x32, 0x80, 0xe5, 0xb4, 0x53, 0x1f, 0x31, 0x87, 0xc4, 0x7e, 0xae, 0xa7, 0xc3, 0x29, 0x72, 0x8d, 0xdd, 0x0e, 0x40, };
7129 static const u8 ed25519_310_test_vectors_expected_sig[] = {
7130 	0xfe, 0x4e, 0x89, 0xee, 0x31, 0x78, 0x6c, 0x0a, 0x3d, 0x3d, 0xe3, 0x64, 0x9b, 0xb9, 0x3f, 0x0b, 0x8a, 0xef, 0x1c, 0xaf, 0x5a, 0x83, 0x2e, 0xc5, 0xe4, 0x06, 0x78, 0x10, 0x70, 0x5a, 0xdd, 0xdf, 0x53, 0x9b, 0x8f, 0x4e, 0x05, 0xad, 0x08, 0xcf, 0x34, 0x79, 0xe4, 0x5b, 0x42, 0xc9, 0x65, 0x28, 0xf6, 0xd5, 0x9a, 0x46, 0x25, 0x70, 0x3d, 0xdb, 0xf1, 0x5b, 0x63, 0x09, 0x39, 0x65, 0xd8, 0x0d, };
7131 static const ec_test_case ed25519_310_test_case = {
7132 	.name = "EDDSA25519-SHA512/wei25519 310",
7133 	.ec_str_p = &wei25519_str_params,
7134 	.priv_key = ed25519_310_test_vectors_priv_key,
7135 	.priv_key_len = sizeof(ed25519_310_test_vectors_priv_key),
7136 	.nn_random = NULL,
7137 	.hash_type = SHA512,
7138 	.msg = (const char *)ed25519_310_test_vectors_message,
7139 	.msglen = sizeof(ed25519_310_test_vectors_message),
7140 	.sig_type = EDDSA25519,
7141 	.exp_sig = ed25519_310_test_vectors_expected_sig,
7142 	.exp_siglen = sizeof(ed25519_310_test_vectors_expected_sig),
7143 	.adata = NULL,
7144 	.adata_len = 0
7145 };
7146 
7147 /************************************************/
7148 static const u8 ed25519_311_test_vectors_priv_key[] = {
7149 	0x49, 0xaf, 0xf4, 0x21, 0xa7, 0xcd, 0x12, 0x72, 0x2a, 0xa8, 0x4c, 0x48, 0xc1, 0xfb, 0x1c, 0x5f, 0x8d, 0x9e, 0x27, 0x7d, 0x0a, 0x99, 0xec, 0xbc, 0x93, 0x48, 0xc3, 0xaa, 0xa7, 0x4b, 0xe4, 0x22, };
7150 static const u8 ed25519_311_test_vectors_message[] = {
7151 	0x70, 0xa1, 0xac, 0x14, 0x4b, 0x75, 0xfd, 0xa7, 0x55, 0x86, 0xa7, 0x9c, 0x36, 0xfd, 0x39, 0xcc, 0xe5, 0xf5, 0xca, 0xe2, 0xe6, 0x37, 0x58, 0x52, 0xd3, 0xb6, 0x2a, 0x96, 0x30, 0x33, 0x6a, 0x29, 0x3e, 0xa6, 0xd2, 0xac, 0x6e, 0x5b, 0x57, 0xda, 0x21, 0xef, 0x36, 0x4a, 0x59, 0x5b, 0xb0, 0x75, 0x0f, 0x5b, 0xf4, 0xd2, 0xb3, 0x20, 0x67, 0x64, 0x23, 0x87, 0x0e, 0x4b, 0x8e, 0x08, 0x69, 0x60, 0x1f, 0x16, 0x68, 0x06, 0x19, 0x04, 0x8c, 0x4e, 0xde, 0x27, 0x6d, 0xa6, 0x9f, 0x20, 0x5a, 0x70, 0x17, 0x6e, 0x25, 0xea, 0x04, 0xbd, 0x08, 0x97, 0x63, 0xe7, 0x09, 0xba, 0x34, 0x3f, 0xc8, 0x83, 0x1e, 0x52, 0x04, 0x4e, 0xab, 0xf9, 0x44, 0x1e, 0x69, 0x97, 0xf8, 0xba, 0x1a, 0xeb, 0x9e, 0xf0, 0xf4, 0x91, 0x17, 0x06, 0x67, 0xa7, 0xf5, 0xfc, 0x96, 0x27, 0xcb, 0xd0, 0x55, 0x1b, 0x76, 0xbe, 0x27, 0x28, 0x3a, 0x4b, 0x0c, 0x5f, 0x66, 0x78, 0x46, 0x68, 0x82, 0x26, 0xa1, 0x15, 0xee, 0x80, 0x20, 0xdf, 0x08, 0x04, 0x2b, 0x19, 0xb5, 0x9f, 0xe5, 0x51, 0x31, 0x6a, 0x6c, 0xb6, 0x91, 0x68, 0x60, 0xb9, 0xec, 0xd7, 0x41, 0x54, 0xb4, 0x05, 0x10, 0x38, 0xa1, 0x73, 0x52, 0x37, 0x2e, 0xc1, 0x4d, 0x3c, 0x95, 0x7d, 0x2e, 0xf5, 0x0f, 0xf7, 0x86, 0x18, 0x9a, 0x8a, 0xeb, 0x9c, 0x08, 0xf4, 0x5e, 0xeb, 0x5e, 0xb8, 0xb0, 0x40, 0x33, 0x99, 0x74, 0xaa, 0x97, 0x98, 0xc4, 0x25, 0xd7, 0xbe, 0xcb, 0x22, 0x8c, 0x44, 0x7a, 0x6d, 0x0b, 0x3c, 0xef, 0x27, 0x18, 0x93, 0xe0, 0xf7, 0x07, 0x6e, 0x22, 0x3a, 0x7e, 0x87, 0xc6, 0xa3, 0xd2, 0x70, 0xa0, 0x33, 0xbc, 0x97, 0xa4, 0x56, 0x5e, 0xdc, 0xe0, 0xaa, 0x91, 0xff, 0xc3, 0xf7, 0x80, 0x17, 0x75, 0xa6, 0xf2, 0x9b, 0x23, 0x02, 0x45, 0xbd, 0x71, 0xfa, 0x03, 0x43, 0x53, 0xde, 0x37, 0x23, 0x95, 0xd1, 0xbf, 0xcb, 0xde, 0xbb, 0xa0, 0x81, 0x33, 0x0f, 0x7c, 0x07, 0x6b, 0xe9, 0x9c, 0x2c, 0xf4, 0x86, 0x7f, 0x15, 0xb7, 0x8d, 0x52, 0xf4, 0x6f, 0xc7, 0x39, 0x1c, 0x9c, 0xb9, 0x5e, 0x5d, 0x64, 0x64, 0x3b, 0xaf, 0xfe, 0x72, 0xa8, 0xe3, 0xa6, 0x50, 0x66, 0x7f, 0xbb, 0x3e, };
7152 static const u8 ed25519_311_test_vectors_expected_sig[] = {
7153 	0x74, 0x91, 0x81, 0x28, 0x4d, 0xf0, 0x5d, 0xbe, 0x59, 0x74, 0xb9, 0x17, 0x82, 0xa1, 0xa7, 0x6e, 0xa0, 0x86, 0x42, 0xcb, 0x0f, 0x0c, 0x98, 0xdb, 0x58, 0x6c, 0x57, 0x5c, 0x21, 0x0c, 0xdc, 0x8b, 0x65, 0x1b, 0xd3, 0x4b, 0x75, 0x7a, 0xe3, 0x8e, 0x4b, 0x6b, 0xe9, 0x46, 0x52, 0x35, 0xbd, 0x0e, 0xca, 0x43, 0x0e, 0x26, 0xc3, 0xee, 0xde, 0x56, 0x1c, 0x6e, 0x82, 0x4d, 0xfa, 0x20, 0x0e, 0x0a, };
7154 static const ec_test_case ed25519_311_test_case = {
7155 	.name = "EDDSA25519-SHA512/wei25519 311",
7156 	.ec_str_p = &wei25519_str_params,
7157 	.priv_key = ed25519_311_test_vectors_priv_key,
7158 	.priv_key_len = sizeof(ed25519_311_test_vectors_priv_key),
7159 	.nn_random = NULL,
7160 	.hash_type = SHA512,
7161 	.msg = (const char *)ed25519_311_test_vectors_message,
7162 	.msglen = sizeof(ed25519_311_test_vectors_message),
7163 	.sig_type = EDDSA25519,
7164 	.exp_sig = ed25519_311_test_vectors_expected_sig,
7165 	.exp_siglen = sizeof(ed25519_311_test_vectors_expected_sig),
7166 	.adata = NULL,
7167 	.adata_len = 0
7168 };
7169 
7170 /************************************************/
7171 static const u8 ed25519_312_test_vectors_priv_key[] = {
7172 	0x70, 0x3a, 0x6e, 0x2b, 0x62, 0xd0, 0x09, 0x0c, 0x61, 0xd8, 0x65, 0x9b, 0x6a, 0x96, 0x3e, 0x03, 0xc9, 0xd6, 0x2c, 0x1b, 0x38, 0xf7, 0xd7, 0x0e, 0x5f, 0x9f, 0xf0, 0x55, 0x90, 0xcd, 0x03, 0x60, };
7173 static const u8 ed25519_312_test_vectors_message[] = {
7174 	0xd4, 0x2a, 0x17, 0x56, 0xe8, 0x4d, 0xf4, 0xb4, 0xe9, 0x77, 0x3f, 0x86, 0xf7, 0x67, 0x4a, 0x2c, 0xd7, 0x8e, 0x71, 0xe4, 0x0a, 0xa8, 0xf6, 0x44, 0xe6, 0x70, 0x2d, 0xfb, 0xc2, 0xc2, 0xc5, 0xca, 0x90, 0xfc, 0x24, 0x2e, 0x9c, 0xb0, 0x09, 0x9c, 0xc8, 0xf2, 0xc2, 0xd3, 0x13, 0x6b, 0xaa, 0xfc, 0x0f, 0xf6, 0x95, 0x48, 0x2f, 0xda, 0xcd, 0xef, 0x9f, 0x56, 0x56, 0x10, 0xb6, 0xe1, 0x90, 0x07, 0x22, 0xf4, 0x35, 0xc6, 0x38, 0x5b, 0x35, 0xe9, 0xf6, 0xc4, 0x36, 0xca, 0x03, 0x7e, 0x03, 0xf6, 0x4e, 0x22, 0x33, 0xdf, 0xfa, 0x58, 0xdb, 0x3b, 0x91, 0xcc, 0x1d, 0xaa, 0x0b, 0xb0, 0xc5, 0x4c, 0x8a, 0x43, 0xe4, 0x69, 0xd2, 0xcf, 0xf7, 0xfa, 0x2b, 0xf8, 0xf5, 0xd1, 0xd8, 0x77, 0x93, 0x10, 0x89, 0xc8, 0x2e, 0xd8, 0x9a, 0xba, 0x42, 0xf2, 0xee, 0x2b, 0x86, 0xe4, 0x45, 0xcf, 0xd0, 0x9f, 0x4c, 0xd7, 0x8b, 0x35, 0x19, 0x1b, 0xf4, 0x67, 0xe7, 0x84, 0xee, 0xf7, 0x5d, 0xc9, 0x87, 0xe0, 0x46, 0xd3, 0x7d, 0x4d, 0x4e, 0x8e, 0x9b, 0xbe, 0x14, 0xaf, 0x80, 0xd0, 0x3a, 0x1f, 0x40, 0x89, 0x83, 0x84, 0xb9, 0xd3, 0x27, 0x9f, 0xac, 0x9c, 0x57, 0xfd, 0x9c, 0x7e, 0xec, 0xbe, 0x19, 0xa5, 0xac, 0xc1, 0x50, 0x33, 0xb8, 0x4e, 0x07, 0xfd, 0x0e, 0x40, 0x9b, 0xdb, 0xd5, 0xa5, 0x7f, 0x65, 0x64, 0x11, 0x83, 0xa6, 0xc0, 0xa8, 0xec, 0x42, 0x6d, 0x1f, 0x1d, 0x22, 0x31, 0x66, 0xff, 0x0a, 0x19, 0x00, 0xb2, 0xe9, 0x2b, 0x7d, 0x85, 0x83, 0x5d, 0x01, 0x9d, 0x17, 0x77, 0x5e, 0x50, 0x93, 0xcc, 0xd1, 0x26, 0xf9, 0x0f, 0x63, 0xcb, 0x7d, 0x15, 0xcb, 0xeb, 0x53, 0x13, 0x24, 0x21, 0x9c, 0xd6, 0x4d, 0xed, 0x67, 0x14, 0xb2, 0x1a, 0x65, 0x37, 0x1a, 0xf0, 0x72, 0x10, 0xdf, 0xdf, 0x0e, 0x4e, 0x58, 0xdd, 0xc7, 0xd5, 0x9f, 0x4c, 0xfa, 0x65, 0xc4, 0x21, 0xd8, 0x14, 0xee, 0x2c, 0x9b, 0xf6, 0xdb, 0xf6, 0x48, 0x73, 0xd5, 0x79, 0xb0, 0x9e, 0xe5, 0xdc, 0xed, 0xd7, 0x33, 0x06, 0x3e, 0x03, 0x9a, 0xc9, 0xa5, 0xf9, 0xca, 0x4c, 0x25, 0x25, 0xa4, 0xcc, 0x8e, 0x98, 0x4d, 0xa7, 0x18, 0x5e, 0x2d, 0x64, 0xfa, 0xd8, 0x1c, 0x8a, };
7175 static const u8 ed25519_312_test_vectors_expected_sig[] = {
7176 	0xe5, 0xfd, 0x64, 0xda, 0x02, 0x88, 0x00, 0xc6, 0xce, 0xed, 0x06, 0x8a, 0x5e, 0x59, 0x6f, 0x16, 0x21, 0xc7, 0x0a, 0x8c, 0xb1, 0x38, 0xb3, 0x1b, 0x32, 0x64, 0x7e, 0xb4, 0xb0, 0x7b, 0xd2, 0xec, 0xc5, 0x94, 0x2c, 0x18, 0x84, 0x4f, 0x36, 0x70, 0x33, 0xf6, 0x73, 0x98, 0xe3, 0x14, 0xba, 0x2c, 0x7c, 0xcf, 0x29, 0x9c, 0x06, 0x97, 0x87, 0x77, 0x70, 0x25, 0xd8, 0x45, 0xf2, 0xaa, 0xd6, 0x0e, };
7177 static const ec_test_case ed25519_312_test_case = {
7178 	.name = "EDDSA25519-SHA512/wei25519 312",
7179 	.ec_str_p = &wei25519_str_params,
7180 	.priv_key = ed25519_312_test_vectors_priv_key,
7181 	.priv_key_len = sizeof(ed25519_312_test_vectors_priv_key),
7182 	.nn_random = NULL,
7183 	.hash_type = SHA512,
7184 	.msg = (const char *)ed25519_312_test_vectors_message,
7185 	.msglen = sizeof(ed25519_312_test_vectors_message),
7186 	.sig_type = EDDSA25519,
7187 	.exp_sig = ed25519_312_test_vectors_expected_sig,
7188 	.exp_siglen = sizeof(ed25519_312_test_vectors_expected_sig),
7189 	.adata = NULL,
7190 	.adata_len = 0
7191 };
7192 
7193 /************************************************/
7194 static const u8 ed25519_313_test_vectors_priv_key[] = {
7195 	0x76, 0x84, 0x9c, 0x18, 0x8e, 0x3e, 0xdd, 0x0f, 0xf5, 0xf8, 0xfb, 0x87, 0x4d, 0xc0, 0x45, 0x66, 0x45, 0x51, 0x84, 0x45, 0xe4, 0x1a, 0x7d, 0x68, 0x33, 0xe6, 0x16, 0xc3, 0xc4, 0x8c, 0x98, 0x68, };
7196 static const u8 ed25519_313_test_vectors_message[] = {
7197 	0x1e, 0xcc, 0xb0, 0xbc, 0x8e, 0xca, 0x3a, 0xb5, 0xbe, 0xe6, 0x8c, 0x5f, 0x8c, 0xaa, 0x34, 0x53, 0x67, 0x66, 0xc7, 0x05, 0xf5, 0x08, 0x27, 0xdb, 0x7a, 0xc3, 0x75, 0xd4, 0xfe, 0x30, 0xb5, 0x8f, 0xfb, 0x7e, 0x2f, 0xe4, 0x90, 0xcc, 0x71, 0xa8, 0xff, 0x86, 0xc0, 0x06, 0xd6, 0x17, 0x4d, 0x05, 0x79, 0x3a, 0xb8, 0xa5, 0x5d, 0xd5, 0x1b, 0x06, 0xde, 0x41, 0x7b, 0xc0, 0xac, 0x45, 0x2c, 0xdc, 0x7c, 0xfb, 0x0b, 0xb0, 0x03, 0x62, 0xb6, 0x76, 0x5d, 0x20, 0xdb, 0x23, 0xeb, 0x18, 0x48, 0x02, 0x70, 0x64, 0xa1, 0xd9, 0x09, 0x1d, 0x3b, 0x10, 0xed, 0x77, 0x6f, 0x28, 0xb7, 0x67, 0x68, 0xbd, 0xfc, 0x08, 0xf0, 0xbc, 0x51, 0x1f, 0x76, 0xfa, 0xeb, 0xa7, 0x6c, 0xfc, 0x4c, 0xb5, 0xc8, 0x3d, 0xc9, 0xeb, 0xe8, 0xa8, 0xd7, 0x9e, 0xdc, 0xa9, 0x23, 0xec, 0xcd, 0x52, 0x40, 0x09, 0xca, 0xfe, 0xdc, 0x90, 0xe3, 0xad, 0x87, 0xd1, 0x39, 0x2e, 0x1f, 0xcc, 0xf4, 0xe6, 0x0c, 0xca, 0xb9, 0x5d, 0xc0, 0xab, 0x54, 0xbf, 0x44, 0x24, 0x5a, 0x00, 0x7a, 0x96, 0xd4, 0x66, 0x34, 0xb1, 0xb2, 0x96, 0x5b, 0x82, 0x9c, 0x3d, 0x7d, 0xaa, 0x76, 0x59, 0x72, 0xb5, 0x4a, 0x7b, 0x36, 0x5b, 0x6f, 0x34, 0xd7, 0x7d, 0x71, 0x76, 0xac, 0xd8, 0xd8, 0x94, 0xf6, 0xb4, 0x17, 0x09, 0x1b, 0x6c, 0x00, 0xed, 0xb7, 0xa4, 0xe8, 0x13, 0x79, 0x98, 0x8b, 0xfc, 0xec, 0xb6, 0x92, 0xe9, 0xc3, 0xc4, 0x31, 0x0a, 0x7e, 0x24, 0x0e, 0x5c, 0x10, 0x63, 0xcd, 0xe1, 0x13, 0xf2, 0x2a, 0x68, 0x4a, 0x50, 0xa1, 0x12, 0xff, 0x47, 0xd3, 0x89, 0x88, 0x12, 0xef, 0xb9, 0x26, 0x37, 0x07, 0x2b, 0x86, 0x16, 0x3a, 0xd8, 0x93, 0x16, 0xd2, 0x21, 0x19, 0x5a, 0xcb, 0xfa, 0xd0, 0xa0, 0x3a, 0x1f, 0xbc, 0x2d, 0x96, 0x7f, 0xe8, 0x3f, 0x84, 0xc8, 0x45, 0x9f, 0xcc, 0xd4, 0x90, 0xb9, 0xc5, 0xb3, 0xe5, 0x5d, 0x27, 0xe9, 0x48, 0x4e, 0x94, 0x3c, 0x41, 0x7f, 0x21, 0x28, 0xd7, 0x37, 0x01, 0xda, 0x28, 0xf4, 0x9f, 0xd3, 0x68, 0x3f, 0x33, 0xa3, 0x9c, 0xde, 0xe2, 0x34, 0xbd, 0x30, 0x5b, 0x94, 0x91, 0xe2, 0xf3, 0xeb, 0x62, 0x1b, 0xe3, 0xdd, 0x1d, 0xbb, 0xb3, 0x1b, };
7198 static const u8 ed25519_313_test_vectors_expected_sig[] = {
7199 	0x71, 0x41, 0x39, 0x9d, 0x51, 0xda, 0xa6, 0xeb, 0x45, 0x19, 0xbf, 0x3f, 0x01, 0xb2, 0x33, 0x92, 0x0f, 0xa9, 0x08, 0xfe, 0xfa, 0x61, 0x2f, 0x0c, 0xd7, 0xd5, 0xaf, 0x8a, 0x9a, 0x3c, 0x44, 0x19, 0x0e, 0x3f, 0x63, 0x84, 0xa8, 0xd1, 0x4d, 0x37, 0xc9, 0x70, 0x30, 0xef, 0x50, 0x18, 0xcf, 0x8a, 0xee, 0x8a, 0xeb, 0x15, 0x69, 0xa7, 0x3d, 0x84, 0x86, 0x2a, 0x59, 0xb7, 0xdf, 0x72, 0xfe, 0x09, };
7200 static const ec_test_case ed25519_313_test_case = {
7201 	.name = "EDDSA25519-SHA512/wei25519 313",
7202 	.ec_str_p = &wei25519_str_params,
7203 	.priv_key = ed25519_313_test_vectors_priv_key,
7204 	.priv_key_len = sizeof(ed25519_313_test_vectors_priv_key),
7205 	.nn_random = NULL,
7206 	.hash_type = SHA512,
7207 	.msg = (const char *)ed25519_313_test_vectors_message,
7208 	.msglen = sizeof(ed25519_313_test_vectors_message),
7209 	.sig_type = EDDSA25519,
7210 	.exp_sig = ed25519_313_test_vectors_expected_sig,
7211 	.exp_siglen = sizeof(ed25519_313_test_vectors_expected_sig),
7212 	.adata = NULL,
7213 	.adata_len = 0
7214 };
7215 
7216 /************************************************/
7217 static const u8 ed25519_314_test_vectors_priv_key[] = {
7218 	0x83, 0xae, 0x48, 0xad, 0x70, 0xda, 0x0b, 0xb3, 0xcd, 0xf8, 0x74, 0x81, 0xee, 0x2c, 0x0c, 0x85, 0x71, 0xc2, 0xca, 0x98, 0x67, 0x12, 0xf8, 0xbc, 0x23, 0x29, 0xe9, 0xa3, 0xe3, 0x33, 0x83, 0xc5, };
7219 static const u8 ed25519_314_test_vectors_message[] = {
7220 	0xb7, 0x52, 0x1d, 0x3f, 0x71, 0xc6, 0x79, 0xfa, 0x70, 0x37, 0xfe, 0x74, 0x88, 0xa6, 0x41, 0xf6, 0xb9, 0x7c, 0x49, 0x45, 0x4a, 0xcc, 0x8e, 0x36, 0xb9, 0x03, 0xd8, 0xf9, 0xeb, 0xb5, 0x4d, 0x89, 0xcb, 0x56, 0xef, 0xd1, 0x9e, 0x04, 0xba, 0x6a, 0x7c, 0x8f, 0x48, 0xa7, 0xd3, 0xec, 0x9d, 0xec, 0xd3, 0xf1, 0xcd, 0x0f, 0xaf, 0x6e, 0x97, 0x81, 0x18, 0xe6, 0xad, 0xce, 0x9c, 0x6c, 0x6b, 0xe6, 0x3c, 0x6a, 0x6a, 0x1a, 0xe2, 0x16, 0x51, 0x82, 0x84, 0x79, 0xa4, 0x6b, 0xc9, 0xa0, 0xf7, 0x94, 0x30, 0x40, 0xf9, 0x40, 0xa0, 0xd4, 0x70, 0xc8, 0xe5, 0x77, 0xc5, 0xd5, 0x75, 0xcb, 0x53, 0xc1, 0xbf, 0x3a, 0xb1, 0xfe, 0xb0, 0x50, 0xdc, 0xb6, 0xfe, 0xf0, 0xba, 0x44, 0x47, 0xf2, 0x99, 0xfd, 0xb9, 0xf2, 0x7e, 0xcb, 0x07, 0x14, 0xec, 0xfe, 0xfd, 0x74, 0xba, 0xd7, 0xb1, 0x22, 0xa4, 0x62, 0xc2, 0x4a, 0x20, 0x98, 0x48, 0xa0, 0x33, 0x89, 0x07, 0x45, 0x78, 0xc5, 0xbd, 0xc3, 0x63, 0x96, 0xd8, 0x09, 0xb0, 0xf1, 0x40, 0x18, 0xda, 0x64, 0x91, 0x7e, 0x6b, 0xf8, 0x7e, 0xf4, 0x05, 0xc8, 0xf3, 0xe3, 0x33, 0xff, 0x9c, 0x3b, 0xaf, 0x63, 0x39, 0x66, 0x76, 0x20, 0x79, 0x4b, 0xb4, 0x74, 0x3f, 0x05, 0x14, 0xb5, 0xde, 0x7d, 0x7f, 0xdd, 0x94, 0x7a, 0x7e, 0x35, 0x01, 0xee, 0x88, 0xef, 0xad, 0x15, 0x9e, 0x33, 0xa1, 0x07, 0x2f, 0xbb, 0x99, 0xc7, 0xc7, 0x1e, 0x9d, 0x13, 0xa5, 0x02, 0xd5, 0xa0, 0x7c, 0x4f, 0x81, 0x7e, 0xeb, 0x7f, 0x0c, 0x53, 0x19, 0xaa, 0x41, 0xa9, 0x6d, 0x5f, 0xf4, 0xf1, 0x5a, 0x73, 0xc2, 0x9b, 0x57, 0x1f, 0xe2, 0x11, 0x09, 0x0e, 0x17, 0x2c, 0x8d, 0xb5, 0x18, 0x62, 0x46, 0x12, 0xa5, 0xc3, 0x71, 0xa9, 0xd7, 0xce, 0xf6, 0xde, 0x35, 0xeb, 0xef, 0x96, 0xe8, 0x8e, 0x1a, 0x78, 0xaf, 0x3b, 0xd5, 0xdd, 0x35, 0x25, 0x1a, 0xb5, 0x4d, 0x73, 0x71, 0x8f, 0x3e, 0x70, 0xd2, 0xd5, 0x90, 0x21, 0x53, 0x1d, 0xc7, 0x31, 0x84, 0xf0, 0xfc, 0x69, 0xc2, 0xe9, 0x29, 0x65, 0x84, 0x4e, 0xc2, 0x7c, 0x1c, 0x02, 0xaf, 0x5e, 0x9a, 0x34, 0x69, 0xde, 0x35, 0x5d, 0xb2, 0x25, 0x6e, 0x0e, 0xc2, 0xa4, 0xeb, 0xa3, 0x0a, };
7221 static const u8 ed25519_314_test_vectors_expected_sig[] = {
7222 	0x43, 0x33, 0x23, 0x51, 0xd3, 0xfb, 0x7b, 0x45, 0xfc, 0xf3, 0x7c, 0x60, 0x7d, 0x44, 0x2e, 0xa8, 0x0d, 0xbd, 0xa2, 0xcb, 0x69, 0xc2, 0x88, 0x4f, 0x42, 0x4e, 0x65, 0xea, 0x3a, 0x33, 0x1e, 0xd8, 0x47, 0x2d, 0x43, 0x68, 0x40, 0x5c, 0xb7, 0x36, 0xb2, 0xd6, 0x68, 0x5a, 0xd7, 0x82, 0xe2, 0x39, 0xfe, 0x83, 0x3e, 0xd7, 0x89, 0xa2, 0x92, 0x31, 0x85, 0x16, 0x6f, 0x60, 0x83, 0x42, 0xee, 0x05, };
7223 static const ec_test_case ed25519_314_test_case = {
7224 	.name = "EDDSA25519-SHA512/wei25519 314",
7225 	.ec_str_p = &wei25519_str_params,
7226 	.priv_key = ed25519_314_test_vectors_priv_key,
7227 	.priv_key_len = sizeof(ed25519_314_test_vectors_priv_key),
7228 	.nn_random = NULL,
7229 	.hash_type = SHA512,
7230 	.msg = (const char *)ed25519_314_test_vectors_message,
7231 	.msglen = sizeof(ed25519_314_test_vectors_message),
7232 	.sig_type = EDDSA25519,
7233 	.exp_sig = ed25519_314_test_vectors_expected_sig,
7234 	.exp_siglen = sizeof(ed25519_314_test_vectors_expected_sig),
7235 	.adata = NULL,
7236 	.adata_len = 0
7237 };
7238 
7239 /************************************************/
7240 static const u8 ed25519_315_test_vectors_priv_key[] = {
7241 	0x39, 0xe5, 0x6a, 0x65, 0x62, 0x3a, 0x0a, 0xeb, 0xad, 0xe0, 0xda, 0x12, 0xce, 0x1d, 0xf3, 0x78, 0xbc, 0x92, 0x40, 0x73, 0xf7, 0x3a, 0x54, 0x9e, 0xff, 0xae, 0xbc, 0x46, 0x5d, 0x1a, 0x78, 0xe2, };
7242 static const u8 ed25519_315_test_vectors_message[] = {
7243 	0xa9, 0x6d, 0xc2, 0xea, 0x3f, 0xa1, 0x35, 0x14, 0x92, 0xa4, 0x61, 0x9d, 0x91, 0x94, 0x68, 0x1f, 0x8e, 0xc4, 0x00, 0xa9, 0x71, 0x58, 0x24, 0x44, 0x82, 0x65, 0x38, 0x38, 0xcc, 0xb7, 0xe1, 0x56, 0xa8, 0x2d, 0x56, 0x43, 0x68, 0xf8, 0x3a, 0x6e, 0xe1, 0xbe, 0x46, 0xbc, 0x34, 0xb8, 0x17, 0x20, 0x0e, 0x84, 0x64, 0xc3, 0xd1, 0x2b, 0x5e, 0xf2, 0xc5, 0x0b, 0x19, 0x56, 0x5b, 0x88, 0x1c, 0x4c, 0x3d, 0x45, 0x63, 0xfb, 0x94, 0x7e, 0xb4, 0x7c, 0x3e, 0xe9, 0xc1, 0xee, 0x78, 0x53, 0x26, 0x98, 0x74, 0x45, 0x5b, 0xfa, 0xcb, 0xa3, 0x05, 0xf3, 0x07, 0xd1, 0xac, 0x53, 0x09, 0xee, 0xae, 0x5c, 0x07, 0xfa, 0x5c, 0x4d, 0x42, 0x8e, 0xdb, 0xc8, 0xb9, 0x52, 0x8c, 0x44, 0x15, 0x24, 0x3a, 0x9e, 0xf5, 0x80, 0xaf, 0xf8, 0xfc, 0xfb, 0x12, 0x00, 0x0a, 0x71, 0xfc, 0xee, 0xe8, 0x9d, 0xe9, 0x7f, 0x90, 0x27, 0x95, 0x29, 0xbc, 0xc8, 0x22, 0xed, 0x3c, 0xb3, 0x4c, 0x82, 0xba, 0x5f, 0xec, 0x15, 0xf4, 0x94, 0x56, 0x63, 0x63, 0x6d, 0x67, 0xb5, 0xfe, 0xce, 0xac, 0xc3, 0x1d, 0x25, 0xf9, 0x8a, 0xea, 0x07, 0xf7, 0x80, 0x0d, 0x5a, 0x10, 0x34, 0x25, 0x1c, 0xb9, 0x1d, 0xd0, 0x96, 0x3e, 0xc2, 0xc1, 0xa5, 0x47, 0x73, 0xa4, 0xd9, 0x6c, 0x18, 0x35, 0x7f, 0x8d, 0x10, 0x1d, 0xe5, 0x8e, 0x93, 0x2f, 0x8c, 0x6c, 0xdd, 0xe8, 0xe3, 0xcf, 0xce, 0xf5, 0xa7, 0x44, 0x3f, 0xdb, 0xa7, 0xb7, 0x83, 0x20, 0x40, 0x3c, 0x01, 0x96, 0x84, 0x47, 0x24, 0xa6, 0x12, 0x18, 0x3e, 0x34, 0xbd, 0xd8, 0x08, 0xce, 0x7b, 0x95, 0x88, 0x61, 0xca, 0x37, 0x11, 0x57, 0x30, 0xea, 0xed, 0xe1, 0xfd, 0x0b, 0xaa, 0xbe, 0x97, 0x6e, 0xfe, 0xfd, 0x03, 0x65, 0xfd, 0xf9, 0x26, 0x77, 0x6c, 0x53, 0x6f, 0x47, 0xff, 0x80, 0xde, 0x5c, 0x18, 0x29, 0x1b, 0xb7, 0xe9, 0xf1, 0xb9, 0x13, 0xff, 0xd1, 0xd9, 0x44, 0x68, 0xb7, 0x89, 0x75, 0x2f, 0xae, 0x6c, 0xa8, 0x97, 0xc0, 0xcc, 0xa5, 0x3e, 0xf1, 0xe7, 0x31, 0xd0, 0x0c, 0x8b, 0xdb, 0xe8, 0x92, 0x9e, 0xa6, 0xb1, 0xdc, 0xe1, 0xf3, 0x1a, 0x20, 0x68, 0x8d, 0x37, 0xb0, 0xf3, 0xa2, 0xb4, 0x15, 0x3b, 0x30, 0x6b, 0xdb, 0xa1, };
7244 static const u8 ed25519_315_test_vectors_expected_sig[] = {
7245 	0x39, 0x8e, 0x82, 0x60, 0x01, 0x1f, 0x57, 0xd8, 0xac, 0x8c, 0x58, 0xd5, 0x45, 0x7b, 0xc6, 0x52, 0xc7, 0x41, 0x4a, 0xaf, 0x6f, 0xb2, 0xf4, 0x26, 0xb7, 0x89, 0x90, 0x56, 0x60, 0x5c, 0x0a, 0xfc, 0x28, 0x39, 0x24, 0x23, 0xb2, 0xb5, 0x71, 0xf5, 0xe6, 0xc3, 0xc7, 0xf6, 0xd6, 0x02, 0x45, 0xe5, 0x3e, 0xbd, 0x03, 0xbd, 0xc5, 0xad, 0x3c, 0x1a, 0xd8, 0x73, 0x8c, 0xb3, 0x22, 0x14, 0xd0, 0x0f, };
7246 static const ec_test_case ed25519_315_test_case = {
7247 	.name = "EDDSA25519-SHA512/wei25519 315",
7248 	.ec_str_p = &wei25519_str_params,
7249 	.priv_key = ed25519_315_test_vectors_priv_key,
7250 	.priv_key_len = sizeof(ed25519_315_test_vectors_priv_key),
7251 	.nn_random = NULL,
7252 	.hash_type = SHA512,
7253 	.msg = (const char *)ed25519_315_test_vectors_message,
7254 	.msglen = sizeof(ed25519_315_test_vectors_message),
7255 	.sig_type = EDDSA25519,
7256 	.exp_sig = ed25519_315_test_vectors_expected_sig,
7257 	.exp_siglen = sizeof(ed25519_315_test_vectors_expected_sig),
7258 	.adata = NULL,
7259 	.adata_len = 0
7260 };
7261 
7262 /************************************************/
7263 static const u8 ed25519_316_test_vectors_priv_key[] = {
7264 	0x4b, 0x99, 0x21, 0x85, 0x2f, 0x40, 0x9a, 0x32, 0x3a, 0xe3, 0x81, 0x75, 0xe8, 0xd7, 0x6a, 0x21, 0x1f, 0xc4, 0xd9, 0xc6, 0x54, 0x17, 0x8e, 0xea, 0x3b, 0xaa, 0x7a, 0x76, 0x7a, 0x6f, 0xda, 0x06, };
7265 static const u8 ed25519_316_test_vectors_message[] = {
7266 	0x3f, 0x33, 0xd8, 0xfb, 0x83, 0xe6, 0x87, 0x41, 0x09, 0x0a, 0x37, 0xbe, 0xdd, 0x74, 0x5c, 0xf1, 0x41, 0xaa, 0xae, 0xd8, 0xc9, 0x2f, 0xfa, 0x74, 0x2a, 0x52, 0x56, 0x17, 0x77, 0x88, 0x58, 0x05, 0xac, 0xe1, 0x42, 0x46, 0xab, 0x98, 0xa8, 0xcb, 0x59, 0x8c, 0x9c, 0xe3, 0xde, 0x9b, 0x29, 0xba, 0xe5, 0xfa, 0x04, 0xb1, 0xcf, 0x82, 0x8d, 0xe1, 0x1a, 0xff, 0x80, 0xa7, 0xef, 0x8a, 0x3a, 0x38, 0xae, 0xde, 0x4f, 0x3c, 0x35, 0x63, 0xa2, 0x5d, 0x04, 0x9b, 0xad, 0xca, 0xd5, 0xed, 0x7e, 0x47, 0xfd, 0xbb, 0xa6, 0xe1, 0x11, 0x30, 0x7e, 0xeb, 0xe9, 0xef, 0x49, 0x06, 0xbc, 0x98, 0x97, 0x28, 0xb7, 0x6e, 0x84, 0xaf, 0xe8, 0x08, 0xe6, 0x65, 0x3b, 0x27, 0x1e, 0x21, 0x10, 0x4a, 0xa6, 0x65, 0xf1, 0x89, 0x8d, 0xd2, 0xaa, 0xb2, 0x30, 0x90, 0xe2, 0x2b, 0x4e, 0x34, 0x4a, 0x26, 0x16, 0xfb, 0xd8, 0xee, 0x4a, 0xd8, 0xed, 0x81, 0x08, 0x39, 0x5e, 0xba, 0x81, 0x7f, 0xbd, 0x14, 0xfe, 0xc5, 0xc1, 0x7d, 0xcf, 0x56, 0xb8, 0x22, 0x08, 0x56, 0xb2, 0xb8, 0x33, 0xe0, 0x91, 0x40, 0x7d, 0x50, 0x89, 0xb3, 0x5d, 0xdf, 0x34, 0xb8, 0x6f, 0xf7, 0xdc, 0x9f, 0xde, 0x52, 0xb2, 0x1e, 0xf1, 0x21, 0x76, 0xef, 0x33, 0x70, 0xb7, 0xf3, 0xa0, 0xa8, 0xcb, 0x1b, 0x05, 0x8a, 0x51, 0xae, 0xff, 0xf3, 0xd2, 0x79, 0xd8, 0x0f, 0x51, 0xa6, 0x8b, 0xfb, 0x59, 0x25, 0x87, 0xb4, 0x5c, 0x5c, 0x63, 0xa7, 0xe4, 0xd6, 0x25, 0xb8, 0x87, 0xde, 0x48, 0x6a, 0x11, 0x83, 0x16, 0xc3, 0xb6, 0xa2, 0x38, 0x57, 0x5f, 0x92, 0xac, 0x5b, 0x1c, 0x94, 0xc3, 0xf5, 0xdb, 0xbd, 0x96, 0x68, 0x60, 0x00, 0xd6, 0xd3, 0x9c, 0xcc, 0xd5, 0x58, 0xd4, 0x20, 0xe4, 0xd4, 0x47, 0xa8, 0xcb, 0xc4, 0xbc, 0x7b, 0x8c, 0x6a, 0x03, 0xaf, 0x0f, 0x00, 0x34, 0xfb, 0x35, 0x18, 0xd9, 0x38, 0x00, 0xf0, 0xf7, 0x13, 0xe4, 0xb1, 0x37, 0x32, 0xe1, 0x6a, 0xda, 0x51, 0x80, 0x1d, 0x7e, 0x55, 0x9c, 0xf8, 0x39, 0xd1, 0x05, 0x8f, 0x64, 0x95, 0x56, 0x98, 0x31, 0x13, 0x99, 0x34, 0x54, 0x16, 0x85, 0x0d, 0xdd, 0xcc, 0x56, 0x01, 0xa6, 0x84, 0xfd, 0x09, 0xe6, 0xaf, 0xd3, 0x94, 0x4f, 0x5e, 0x19, };
7267 static const u8 ed25519_316_test_vectors_expected_sig[] = {
7268 	0xcb, 0xf1, 0xf1, 0x64, 0x2d, 0xf9, 0x50, 0xeb, 0x71, 0xfd, 0x09, 0x59, 0x0d, 0x34, 0xc2, 0x65, 0x92, 0x2c, 0x58, 0xbd, 0x80, 0x26, 0xbb, 0xa3, 0xfc, 0x0e, 0x59, 0x4a, 0x6b, 0xb1, 0xf2, 0xb9, 0x0d, 0xa3, 0xdc, 0x1d, 0x5f, 0x6b, 0x6d, 0x5b, 0x40, 0x5a, 0x89, 0x6d, 0x1d, 0xbb, 0x71, 0xb8, 0x68, 0x5c, 0x4d, 0xfc, 0x44, 0x4a, 0xca, 0xff, 0xe6, 0x5a, 0xb8, 0x33, 0x17, 0x89, 0xf5, 0x07, };
7269 static const ec_test_case ed25519_316_test_case = {
7270 	.name = "EDDSA25519-SHA512/wei25519 316",
7271 	.ec_str_p = &wei25519_str_params,
7272 	.priv_key = ed25519_316_test_vectors_priv_key,
7273 	.priv_key_len = sizeof(ed25519_316_test_vectors_priv_key),
7274 	.nn_random = NULL,
7275 	.hash_type = SHA512,
7276 	.msg = (const char *)ed25519_316_test_vectors_message,
7277 	.msglen = sizeof(ed25519_316_test_vectors_message),
7278 	.sig_type = EDDSA25519,
7279 	.exp_sig = ed25519_316_test_vectors_expected_sig,
7280 	.exp_siglen = sizeof(ed25519_316_test_vectors_expected_sig),
7281 	.adata = NULL,
7282 	.adata_len = 0
7283 };
7284 
7285 /************************************************/
7286 static const u8 ed25519_317_test_vectors_priv_key[] = {
7287 	0x1b, 0xff, 0x65, 0x2a, 0x2c, 0x83, 0x09, 0xa3, 0x93, 0xac, 0x11, 0xda, 0x3a, 0xa9, 0x7f, 0xb0, 0x78, 0xbb, 0x28, 0x4e, 0xd5, 0xe1, 0xb8, 0xcc, 0xc9, 0x83, 0x65, 0x2e, 0xf8, 0x55, 0x6c, 0xd0, };
7288 static const u8 ed25519_317_test_vectors_message[] = {
7289 	0x48, 0xd0, 0x26, 0x98, 0xa9, 0x7b, 0xdc, 0xb3, 0xef, 0x07, 0x8d, 0xcf, 0xcf, 0x57, 0x50, 0x00, 0x5f, 0x17, 0x02, 0xd3, 0x00, 0xe7, 0xe8, 0x9b, 0xc4, 0x36, 0xe3, 0x81, 0x11, 0x34, 0x01, 0xf8, 0x52, 0xb8, 0xb4, 0xac, 0xff, 0x60, 0xff, 0xbd, 0x4a, 0xb4, 0x6d, 0x20, 0x21, 0x68, 0xd9, 0x8b, 0x87, 0x35, 0xe7, 0x9c, 0xb3, 0x50, 0xe3, 0x5b, 0x07, 0x0f, 0xf6, 0xbd, 0xca, 0xfd, 0x95, 0x4b, 0x55, 0x19, 0x69, 0xb6, 0xb1, 0xa7, 0x0c, 0x91, 0x31, 0xeb, 0xd4, 0x0d, 0x96, 0x14, 0x02, 0x91, 0xd8, 0xd2, 0xb0, 0x91, 0x54, 0x0a, 0x8b, 0x18, 0xd8, 0xe5, 0x46, 0x59, 0x15, 0xc2, 0x5d, 0xbc, 0x6b, 0x5c, 0x9a, 0x68, 0x79, 0x42, 0x53, 0x3c, 0x37, 0x2c, 0x8b, 0x4e, 0x95, 0xa9, 0x53, 0x67, 0x71, 0x69, 0xb9, 0x50, 0xed, 0xd3, 0x46, 0x43, 0x75, 0xcd, 0x43, 0x13, 0x2f, 0xf9, 0xbd, 0x54, 0x1e, 0xe2, 0x2b, 0xd4, 0x18, 0xce, 0x23, 0x19, 0x5f, 0x65, 0xd8, 0xb2, 0x89, 0xf6, 0x33, 0xec, 0x8d, 0x71, 0xe1, 0xa8, 0x01, 0xb0, 0x6c, 0x3c, 0x82, 0x7f, 0x62, 0x7e, 0x72, 0x3d, 0x21, 0x99, 0x10, 0x0c, 0xe7, 0x3e, 0x8e, 0x4a, 0x44, 0x40, 0xe7, 0x78, 0x31, 0x7a, 0x47, 0x49, 0x10, 0x79, 0x3b, 0x47, 0xb1, 0x0f, 0xfb, 0x55, 0xdb, 0x7f, 0x28, 0x1c, 0x7d, 0x7a, 0x03, 0x3b, 0xd8, 0x00, 0x48, 0xb8, 0x26, 0x73, 0xb8, 0x7c, 0xf9, 0x5e, 0x99, 0x42, 0x2b, 0xa6, 0x28, 0x68, 0x8f, 0x3c, 0x97, 0x18, 0x90, 0xca, 0x15, 0xd1, 0x2f, 0x57, 0x2f, 0xa1, 0x97, 0x7a, 0x17, 0x30, 0x70, 0x69, 0xda, 0x30, 0x4e, 0xad, 0x30, 0x26, 0xeb, 0x01, 0x04, 0x26, 0x68, 0x89, 0x0d, 0x17, 0x00, 0x8c, 0xd1, 0xe9, 0x2c, 0x46, 0xcb, 0xe9, 0xc8, 0x57, 0xe7, 0x19, 0x3d, 0xe3, 0xab, 0xa3, 0x91, 0x1e, 0x4f, 0x86, 0xfe, 0x0a, 0x16, 0x98, 0xab, 0x7c, 0xdb, 0x92, 0x51, 0xa8, 0x42, 0x4b, 0x28, 0x48, 0xb9, 0x6a, 0xd8, 0x1e, 0xa2, 0x39, 0xd3, 0x65, 0xfd, 0xea, 0x92, 0xea, 0x5c, 0x04, 0x73, 0xd0, 0xa6, 0xbb, 0x1e, 0x37, 0x13, 0x56, 0xbd, 0xfa, 0xd2, 0xd0, 0x35, 0x03, 0x36, 0xd3, 0xe1, 0x94, 0x7c, 0x93, 0x6f, 0xd0, 0xc2, 0x51, 0x95, 0x44, 0x50, 0x11, 0x73, 0x1b, };
7290 static const u8 ed25519_317_test_vectors_expected_sig[] = {
7291 	0x93, 0xc9, 0xc3, 0x34, 0x93, 0xfc, 0x64, 0x17, 0x2d, 0x51, 0xe1, 0x6a, 0x0a, 0x1c, 0xd7, 0x29, 0xa0, 0xd9, 0x9e, 0x3c, 0xb8, 0x64, 0xe8, 0x9a, 0x42, 0x98, 0x7f, 0x39, 0xdd, 0x8c, 0xd2, 0x65, 0x45, 0xfd, 0xfe, 0x37, 0x58, 0x19, 0x11, 0xe8, 0x03, 0x67, 0x7d, 0xa4, 0xc5, 0x5b, 0x0a, 0x68, 0x3d, 0xdf, 0x62, 0xb7, 0x28, 0xf8, 0xf3, 0x06, 0x85, 0xae, 0x58, 0xf6, 0x28, 0xeb, 0xe6, 0x09, };
7292 static const ec_test_case ed25519_317_test_case = {
7293 	.name = "EDDSA25519-SHA512/wei25519 317",
7294 	.ec_str_p = &wei25519_str_params,
7295 	.priv_key = ed25519_317_test_vectors_priv_key,
7296 	.priv_key_len = sizeof(ed25519_317_test_vectors_priv_key),
7297 	.nn_random = NULL,
7298 	.hash_type = SHA512,
7299 	.msg = (const char *)ed25519_317_test_vectors_message,
7300 	.msglen = sizeof(ed25519_317_test_vectors_message),
7301 	.sig_type = EDDSA25519,
7302 	.exp_sig = ed25519_317_test_vectors_expected_sig,
7303 	.exp_siglen = sizeof(ed25519_317_test_vectors_expected_sig),
7304 	.adata = NULL,
7305 	.adata_len = 0
7306 };
7307 
7308 /************************************************/
7309 static const u8 ed25519_318_test_vectors_priv_key[] = {
7310 	0x00, 0x2f, 0xdd, 0x1f, 0x76, 0x41, 0x79, 0x3a, 0xb0, 0x64, 0xbb, 0x7a, 0xa8, 0x48, 0xf7, 0x62, 0xe7, 0xec, 0x6e, 0x33, 0x2f, 0xfc, 0x26, 0xee, 0xac, 0xda, 0x14, 0x1a, 0xe3, 0x3b, 0x17, 0x83, };
7311 static const u8 ed25519_318_test_vectors_message[] = {
7312 	0x5a, 0xc1, 0xdf, 0xc3, 0x24, 0xf4, 0x3e, 0x6c, 0xb7, 0x9a, 0x87, 0xab, 0x04, 0x70, 0xfa, 0x85, 0x7b, 0x51, 0xfb, 0x94, 0x49, 0x82, 0xe1, 0x90, 0x74, 0xca, 0x44, 0xb1, 0xe4, 0x00, 0x82, 0xc1, 0xd0, 0x7b, 0x92, 0xef, 0xa7, 0xea, 0x55, 0xad, 0x42, 0xb7, 0xc0, 0x27, 0xe0, 0xb9, 0xe3, 0x37, 0x56, 0xd9, 0x5a, 0x2c, 0x17, 0x96, 0xa7, 0xc2, 0x06, 0x68, 0x11, 0xdc, 0x41, 0x85, 0x83, 0x77, 0xd4, 0xb8, 0x35, 0xc1, 0x68, 0x8d, 0x63, 0x88, 0x84, 0xcd, 0x2a, 0xd8, 0x97, 0x0b, 0x74, 0xc1, 0xa5, 0x4a, 0xad, 0xd2, 0x70, 0x64, 0x16, 0x39, 0x28, 0xa7, 0x79, 0x88, 0xb2, 0x44, 0x03, 0xaa, 0x85, 0xaf, 0x82, 0xce, 0xab, 0x6b, 0x72, 0x8e, 0x55, 0x47, 0x61, 0xaf, 0x71, 0x75, 0xae, 0xb9, 0x92, 0x15, 0xb7, 0x42, 0x1e, 0x44, 0x74, 0xc0, 0x4d, 0x21, 0x3e, 0x01, 0xff, 0x03, 0xe3, 0x52, 0x9b, 0x11, 0x07, 0x7c, 0xdf, 0x28, 0x96, 0x4b, 0x8c, 0x49, 0xc5, 0x64, 0x9e, 0x3a, 0x46, 0xfa, 0x0a, 0x09, 0xdc, 0xd5, 0x9d, 0xca, 0xd5, 0x8b, 0x9b, 0x92, 0x2a, 0x83, 0x21, 0x0a, 0xcd, 0x5e, 0x65, 0x06, 0x55, 0x31, 0x40, 0x02, 0x34, 0xf5, 0xe4, 0x0c, 0xdd, 0xcf, 0x98, 0x04, 0x96, 0x8e, 0x3e, 0x9a, 0xc6, 0xf5, 0xc4, 0x4a, 0xf6, 0x50, 0x01, 0xe1, 0x58, 0x06, 0x7f, 0xc3, 0xa6, 0x60, 0x50, 0x2d, 0x13, 0xfa, 0x88, 0x74, 0xfa, 0x93, 0x33, 0x21, 0x38, 0xd9, 0x60, 0x6b, 0xc4, 0x1b, 0x4c, 0xee, 0x7e, 0xdc, 0x39, 0xd7, 0x53, 0xda, 0xe1, 0x2a, 0x87, 0x39, 0x41, 0xbb, 0x35, 0x7f, 0x7e, 0x92, 0xa4, 0x49, 0x88, 0x47, 0xd6, 0x60, 0x54, 0x56, 0xcb, 0x8c, 0x0b, 0x42, 0x5a, 0x47, 0xd7, 0xd3, 0xca, 0x37, 0xe5, 0x4e, 0x90, 0x3a, 0x41, 0xe6, 0x45, 0x0a, 0x35, 0xeb, 0xe5, 0x23, 0x7c, 0x6f, 0x0c, 0x1b, 0xbb, 0xc1, 0xfd, 0x71, 0xfb, 0x7c, 0xd8, 0x93, 0xd1, 0x89, 0x85, 0x02, 0x95, 0xc1, 0x99, 0xb7, 0xd8, 0x8a, 0xf2, 0x6b, 0xc8, 0x54, 0x89, 0x75, 0xfd, 0xa1, 0x09, 0x9f, 0xfe, 0xfe, 0xe4, 0x2a, 0x52, 0xf3, 0x42, 0x8d, 0xdf, 0xf3, 0x5e, 0x01, 0x73, 0xd3, 0x33, 0x95, 0x62, 0x50, 0x7a, 0xc5, 0xd2, 0xc4, 0x5b, 0xbd, 0x2c, 0x19, 0xcf, 0xe8, 0x9b, };
7313 static const u8 ed25519_318_test_vectors_expected_sig[] = {
7314 	0x0d, 0xf3, 0xaa, 0x0d, 0x09, 0x99, 0xad, 0x3d, 0xc5, 0x80, 0x37, 0x8f, 0x52, 0xd1, 0x52, 0x70, 0x0d, 0x5b, 0x3b, 0x05, 0x7f, 0x56, 0xa6, 0x6f, 0x92, 0x11, 0x2e, 0x44, 0x1e, 0x1c, 0xb9, 0x12, 0x3c, 0x66, 0xf1, 0x87, 0x12, 0xc8, 0x7e, 0xfe, 0x22, 0xd2, 0x57, 0x37, 0x77, 0x29, 0x62, 0x41, 0x21, 0x69, 0x04, 0xd7, 0xcd, 0xd7, 0xd5, 0xea, 0x43, 0x39, 0x28, 0xbd, 0x28, 0x72, 0xfa, 0x0c, };
7315 static const ec_test_case ed25519_318_test_case = {
7316 	.name = "EDDSA25519-SHA512/wei25519 318",
7317 	.ec_str_p = &wei25519_str_params,
7318 	.priv_key = ed25519_318_test_vectors_priv_key,
7319 	.priv_key_len = sizeof(ed25519_318_test_vectors_priv_key),
7320 	.nn_random = NULL,
7321 	.hash_type = SHA512,
7322 	.msg = (const char *)ed25519_318_test_vectors_message,
7323 	.msglen = sizeof(ed25519_318_test_vectors_message),
7324 	.sig_type = EDDSA25519,
7325 	.exp_sig = ed25519_318_test_vectors_expected_sig,
7326 	.exp_siglen = sizeof(ed25519_318_test_vectors_expected_sig),
7327 	.adata = NULL,
7328 	.adata_len = 0
7329 };
7330 
7331 /************************************************/
7332 static const u8 ed25519_319_test_vectors_priv_key[] = {
7333 	0x25, 0xb0, 0xf0, 0xbb, 0x3d, 0xcb, 0x42, 0x2a, 0x6f, 0x3c, 0x6c, 0x22, 0x0e, 0xaa, 0xdb, 0x11, 0xdb, 0xfe, 0x48, 0x9c, 0x2d, 0x45, 0x5b, 0x27, 0x6c, 0xef, 0xe8, 0xcb, 0xa0, 0x57, 0xf9, 0xf3, };
7334 static const u8 ed25519_319_test_vectors_message[] = {
7335 	0x54, 0xd9, 0x9f, 0x96, 0x9e, 0xfa, 0x88, 0x70, 0xfc, 0x20, 0xfa, 0x9a, 0x96, 0x2b, 0xb3, 0x72, 0x61, 0x9c, 0x32, 0x44, 0x39, 0x72, 0x8a, 0xf3, 0x13, 0x9c, 0x2a, 0x07, 0xe8, 0xc1, 0xb2, 0x9c, 0x1e, 0x4e, 0xed, 0xc2, 0xd4, 0x0b, 0xa7, 0x22, 0xf6, 0x3c, 0xe3, 0x76, 0x70, 0x36, 0x2a, 0xf6, 0xf5, 0x20, 0x2a, 0xdd, 0x66, 0x8c, 0x4f, 0xb4, 0xd6, 0x2f, 0xa8, 0xba, 0xcb, 0xc7, 0xd0, 0x7f, 0xf3, 0xbd, 0x38, 0xc1, 0x5a, 0x01, 0x06, 0x42, 0x59, 0xcc, 0x34, 0x13, 0x48, 0x61, 0x63, 0x29, 0x67, 0x46, 0x05, 0x41, 0xa9, 0x9b, 0x8d, 0x51, 0x82, 0xbf, 0x59, 0x34, 0x7b, 0x5a, 0x59, 0x87, 0x9a, 0xa3, 0xb0, 0x91, 0xa1, 0xf3, 0xe0, 0x41, 0x35, 0xbd, 0x63, 0x01, 0xbe, 0x52, 0x26, 0xd4, 0x89, 0x5e, 0x5e, 0x9c, 0x2b, 0x15, 0xe4, 0x8e, 0x5e, 0xcd, 0xf4, 0x41, 0x29, 0xe6, 0x12, 0x28, 0x53, 0xa6, 0x06, 0xfc, 0x11, 0x84, 0x66, 0xfa, 0x72, 0x0b, 0x5a, 0xb1, 0x65, 0x63, 0x5c, 0x3b, 0xde, 0x04, 0xd7, 0x42, 0x89, 0x27, 0x4f, 0xa0, 0x35, 0x47, 0xac, 0xcb, 0xde, 0x78, 0x0e, 0x1f, 0xa0, 0xbf, 0x2c, 0x56, 0xf8, 0x43, 0x6a, 0x53, 0xe7, 0x38, 0x78, 0xa4, 0x24, 0xa2, 0x9a, 0xa9, 0xde, 0x38, 0x5d, 0xba, 0x41, 0x9a, 0xe6, 0xa5, 0xd1, 0x2e, 0x00, 0x42, 0x76, 0x15, 0x2b, 0x58, 0xd3, 0x25, 0xb3, 0x02, 0x40, 0x0a, 0x55, 0x33, 0x3c, 0x38, 0xcd, 0xe4, 0x90, 0x8a, 0xe1, 0xd0, 0x12, 0x1c, 0xbe, 0xca, 0x95, 0x08, 0x09, 0xc5, 0x43, 0x31, 0x42, 0x77, 0xc1, 0x48, 0x5e, 0x68, 0xd9, 0xf9, 0xc0, 0xa9, 0x62, 0xd1, 0xb1, 0xe0, 0xdd, 0xa1, 0xd4, 0xa5, 0x2b, 0x56, 0xf8, 0x30, 0x8a, 0x80, 0xb9, 0x2a, 0xcc, 0x9f, 0x4e, 0xbc, 0x3e, 0xd4, 0x5d, 0x91, 0xa1, 0x29, 0xda, 0x86, 0x75, 0x62, 0x1a, 0xf6, 0x76, 0x70, 0x3d, 0xef, 0x3b, 0x84, 0x11, 0x31, 0x83, 0xb2, 0xe3, 0xa8, 0xc5, 0x61, 0x57, 0xf2, 0x43, 0xf1, 0x39, 0x80, 0xf3, 0xd1, 0x75, 0x6f, 0xea, 0x76, 0x68, 0xc9, 0x15, 0x03, 0xd3, 0x5c, 0x83, 0x9a, 0x21, 0x20, 0xc7, 0x9e, 0xc9, 0x54, 0xfb, 0x54, 0x6d, 0x7b, 0x54, 0x2f, 0x98, 0x72, 0x89, 0x53, 0x4f, 0xfd, 0xef, 0x62, 0xd4, 0x7f, 0xd5, 0xec, };
7336 static const u8 ed25519_319_test_vectors_expected_sig[] = {
7337 	0xda, 0x50, 0xd5, 0x24, 0x2b, 0xf5, 0x1c, 0x39, 0x51, 0x78, 0x0c, 0xaf, 0xd9, 0x26, 0xd6, 0x7b, 0xdf, 0x56, 0x40, 0xd5, 0xd3, 0xbb, 0x08, 0x43, 0x38, 0x31, 0xd5, 0x6e, 0x48, 0xe2, 0x59, 0x2a, 0x1c, 0x37, 0x59, 0x68, 0xbb, 0x4d, 0x2f, 0xbe, 0xa5, 0x61, 0x45, 0xab, 0xf2, 0xd8, 0x29, 0x91, 0x36, 0x3b, 0x15, 0x65, 0xfa, 0x1e, 0xff, 0xe2, 0x14, 0x01, 0x1a, 0x68, 0x6e, 0x39, 0x95, 0x0e, };
7338 static const ec_test_case ed25519_319_test_case = {
7339 	.name = "EDDSA25519-SHA512/wei25519 319",
7340 	.ec_str_p = &wei25519_str_params,
7341 	.priv_key = ed25519_319_test_vectors_priv_key,
7342 	.priv_key_len = sizeof(ed25519_319_test_vectors_priv_key),
7343 	.nn_random = NULL,
7344 	.hash_type = SHA512,
7345 	.msg = (const char *)ed25519_319_test_vectors_message,
7346 	.msglen = sizeof(ed25519_319_test_vectors_message),
7347 	.sig_type = EDDSA25519,
7348 	.exp_sig = ed25519_319_test_vectors_expected_sig,
7349 	.exp_siglen = sizeof(ed25519_319_test_vectors_expected_sig),
7350 	.adata = NULL,
7351 	.adata_len = 0
7352 };
7353 
7354 /************************************************/
7355 static const u8 ed25519_320_test_vectors_priv_key[] = {
7356 	0xbf, 0x5b, 0xa5, 0xd6, 0xa4, 0x9d, 0xd5, 0xef, 0x7b, 0x4d, 0x5d, 0x7d, 0x3e, 0x4e, 0xcc, 0x50, 0x5c, 0x01, 0xf6, 0xcc, 0xee, 0x4c, 0x54, 0xb5, 0xef, 0x7b, 0x40, 0xaf, 0x6a, 0x45, 0x41, 0x40, };
7357 static const u8 ed25519_320_test_vectors_message[] = {
7358 	0x16, 0x15, 0x2c, 0x2e, 0x03, 0x7b, 0x1c, 0x0d, 0x32, 0x19, 0xce, 0xd8, 0xe0, 0x67, 0x4a, 0xee, 0x6b, 0x57, 0x83, 0x4b, 0x55, 0x10, 0x6c, 0x53, 0x44, 0x62, 0x53, 0x22, 0xda, 0x63, 0x8e, 0xce, 0xa2, 0xfc, 0x9a, 0x42, 0x4a, 0x05, 0xee, 0x95, 0x12, 0xd4, 0x8f, 0xcf, 0x75, 0xdd, 0x8b, 0xd4, 0x69, 0x1b, 0x3c, 0x10, 0xc2, 0x8e, 0xc9, 0x8e, 0xe1, 0xaf, 0xa5, 0xb8, 0x63, 0xd1, 0xc3, 0x67, 0x95, 0xed, 0x18, 0x10, 0x5d, 0xb3, 0xa9, 0xaa, 0xbd, 0x9d, 0x2b, 0x4c, 0x17, 0x47, 0xad, 0xba, 0xf1, 0xa5, 0x6f, 0xfc, 0xc0, 0xc5, 0x33, 0xc1, 0xc0, 0xfa, 0xef, 0x33, 0x1c, 0xdb, 0x79, 0xd9, 0x61, 0xfa, 0x39, 0xf8, 0x80, 0xa1, 0xb8, 0xb1, 0x16, 0x47, 0x41, 0x82, 0x2e, 0xfb, 0x15, 0xa7, 0x25, 0x9a, 0x46, 0x5b, 0xef, 0x21, 0x28, 0x55, 0x75, 0x1f, 0xab, 0x66, 0xa8, 0x97, 0xbf, 0xa2, 0x11, 0xab, 0xe0, 0xea, 0x2f, 0x2e, 0x1c, 0xd8, 0xa1, 0x1d, 0x80, 0xe1, 0x42, 0xcd, 0xe1, 0x26, 0x3e, 0xec, 0x26, 0x7a, 0x31, 0x38, 0xae, 0x1f, 0xcf, 0x40, 0x99, 0xdb, 0x0a, 0xb5, 0x3d, 0x64, 0xf3, 0x36, 0xf4, 0xbc, 0xd7, 0xa3, 0x63, 0xf6, 0xdb, 0x11, 0x2c, 0x0a, 0x24, 0x53, 0x05, 0x1a, 0x00, 0x06, 0xf8, 0x13, 0xaa, 0xf4, 0xae, 0x94, 0x8a, 0x20, 0x90, 0x61, 0x93, 0x74, 0xfa, 0x58, 0x05, 0x24, 0x09, 0xc2, 0x8e, 0xf7, 0x62, 0x25, 0x68, 0x7d, 0xf3, 0xcb, 0x2d, 0x1b, 0x0b, 0xfb, 0x43, 0xb0, 0x9f, 0x47, 0xf1, 0x23, 0x2f, 0x79, 0x0e, 0x6d, 0x8d, 0xea, 0x75, 0x9e, 0x57, 0x94, 0x20, 0x99, 0xf4, 0xc4, 0xbd, 0x33, 0x90, 0xf2, 0x8a, 0xfc, 0x20, 0x98, 0x24, 0x49, 0x61, 0x46, 0x5c, 0x64, 0x3f, 0xc8, 0xb2, 0x97, 0x66, 0xaf, 0x2b, 0xcb, 0xc5, 0x44, 0x0b, 0x86, 0xe8, 0x36, 0x08, 0xcf, 0xc9, 0x37, 0xbe, 0x98, 0xbb, 0x48, 0x27, 0xfd, 0x5e, 0x6b, 0x68, 0x9a, 0xdc, 0x2e, 0x26, 0x51, 0x3d, 0xb5, 0x31, 0x07, 0x6a, 0x65, 0x64, 0x39, 0x62, 0x55, 0xa0, 0x99, 0x75, 0xb7, 0x03, 0x4d, 0xac, 0x06, 0x46, 0x1b, 0x25, 0x56, 0x42, 0xe3, 0xa7, 0xed, 0x75, 0xfa, 0x9f, 0xc2, 0x65, 0x01, 0x1f, 0x5f, 0x62, 0x50, 0x38, 0x2a, 0x84, 0xac, 0x26, 0x8d, 0x63, 0xba, 0x64, };
7359 static const u8 ed25519_320_test_vectors_expected_sig[] = {
7360 	0x27, 0x9c, 0xac, 0xe6, 0xfd, 0xaf, 0x39, 0x45, 0xe3, 0x83, 0x7d, 0xf4, 0x74, 0xb2, 0x86, 0x46, 0x14, 0x37, 0x47, 0x63, 0x2b, 0xed, 0xe9, 0x3e, 0x7a, 0x66, 0xf5, 0xca, 0x29, 0x1d, 0x2c, 0x24, 0x97, 0x85, 0x12, 0xca, 0x0c, 0xb8, 0x82, 0x7c, 0x8c, 0x32, 0x26, 0x85, 0xbd, 0x60, 0x55, 0x03, 0xa5, 0xec, 0x94, 0xdb, 0xae, 0x61, 0xbb, 0xdc, 0xae, 0x1e, 0x49, 0x65, 0x06, 0x02, 0xbc, 0x07, };
7361 static const ec_test_case ed25519_320_test_case = {
7362 	.name = "EDDSA25519-SHA512/wei25519 320",
7363 	.ec_str_p = &wei25519_str_params,
7364 	.priv_key = ed25519_320_test_vectors_priv_key,
7365 	.priv_key_len = sizeof(ed25519_320_test_vectors_priv_key),
7366 	.nn_random = NULL,
7367 	.hash_type = SHA512,
7368 	.msg = (const char *)ed25519_320_test_vectors_message,
7369 	.msglen = sizeof(ed25519_320_test_vectors_message),
7370 	.sig_type = EDDSA25519,
7371 	.exp_sig = ed25519_320_test_vectors_expected_sig,
7372 	.exp_siglen = sizeof(ed25519_320_test_vectors_expected_sig),
7373 	.adata = NULL,
7374 	.adata_len = 0
7375 };
7376 
7377 /************************************************/
7378 static const u8 ed25519_321_test_vectors_priv_key[] = {
7379 	0x65, 0xde, 0x29, 0x7b, 0x70, 0xcb, 0xe8, 0x09, 0x80, 0x50, 0x0a, 0xf0, 0x56, 0x1a, 0x24, 0xdb, 0x50, 0x00, 0x10, 0x00, 0x12, 0x5f, 0x44, 0x90, 0x36, 0x6d, 0x83, 0x00, 0xd3, 0x12, 0x85, 0x92, };
7380 static const u8 ed25519_321_test_vectors_message[] = {
7381 	0x13, 0x1d, 0x8f, 0x4c, 0x2c, 0x94, 0xb1, 0x53, 0x56, 0x5b, 0x86, 0x59, 0x2e, 0x77, 0x0c, 0x98, 0x7a, 0x44, 0x34, 0x61, 0xb3, 0x9a, 0xa2, 0x40, 0x8b, 0x29, 0xe2, 0x13, 0xab, 0x05, 0x7a, 0xff, 0xc5, 0x98, 0xb5, 0x83, 0x73, 0x9d, 0x66, 0x03, 0xa8, 0x3f, 0xef, 0x0a, 0xfc, 0x51, 0x47, 0x21, 0xdb, 0x0e, 0x76, 0xf9, 0xbd, 0x1b, 0x72, 0xb9, 0x8c, 0x56, 0x5c, 0xc8, 0x88, 0x1a, 0xf5, 0x74, 0x7c, 0x0b, 0xa6, 0xf5, 0x8c, 0x53, 0xdd, 0x23, 0x77, 0xda, 0x6c, 0x0d, 0x3a, 0xa8, 0x05, 0x62, 0x0c, 0xc4, 0xe7, 0x5d, 0x52, 0xaa, 0xbc, 0xba, 0x1f, 0x9b, 0x28, 0x49, 0xe0, 0x8b, 0xd1, 0xb6, 0xb9, 0x2e, 0x6f, 0x06, 0x61, 0x5b, 0x81, 0x45, 0x19, 0x60, 0x6a, 0x02, 0xdc, 0x65, 0xa8, 0x60, 0x9f, 0x5b, 0x29, 0xe9, 0xc2, 0xaf, 0x5a, 0x89, 0x4f, 0x71, 0x16, 0xef, 0x28, 0xcf, 0xd1, 0xe7, 0xb7, 0x6b, 0x64, 0x06, 0x17, 0x32, 0xf7, 0xa5, 0xa3, 0xf8, 0xaa, 0x4c, 0x2e, 0x56, 0x9e, 0x62, 0x7a, 0x3f, 0x97, 0x49, 0xaa, 0x59, 0x7b, 0xe4, 0x9d, 0x6b, 0x94, 0x43, 0x6c, 0x35, 0x2d, 0xd5, 0xfa, 0x7b, 0x83, 0xc9, 0x2d, 0x26, 0x10, 0xfa, 0xa3, 0x20, 0x95, 0xca, 0x30, 0x21, 0x52, 0xd9, 0x1a, 0x3c, 0x97, 0x76, 0x75, 0x0e, 0x75, 0x8e, 0xe8, 0xe9, 0xe4, 0x02, 0xc6, 0xf5, 0x38, 0x5e, 0xaa, 0x5d, 0xf2, 0x38, 0x50, 0xe5, 0x4b, 0xeb, 0x1b, 0xe4, 0x37, 0xa4, 0x16, 0xc7, 0x11, 0x5e, 0xd6, 0xaa, 0x6d, 0xe1, 0x3b, 0x55, 0x48, 0x25, 0x32, 0x78, 0x7e, 0x0b, 0xee, 0x34, 0xb8, 0x3f, 0x30, 0x84, 0x40, 0x67, 0x65, 0x63, 0x54, 0x97, 0xc9, 0x31, 0xb6, 0x2a, 0x05, 0x18, 0xf1, 0xfb, 0xc2, 0xb8, 0x91, 0xdc, 0x72, 0x62, 0xc7, 0xc6, 0xb6, 0x7e, 0xda, 0x59, 0x4f, 0xa5, 0x30, 0xd7, 0x4c, 0x93, 0x29, 0xba, 0xd5, 0xbe, 0x94, 0xc2, 0x87, 0xfb, 0xcd, 0xe5, 0x3a, 0xa8, 0x02, 0x72, 0xb8, 0x33, 0x22, 0x61, 0x3d, 0x93, 0x68, 0xe5, 0x90, 0x40, 0x76, 0xfd, 0xbc, 0xc8, 0x8b, 0x2c, 0x0e, 0x59, 0xc1, 0x0b, 0x02, 0xc4, 0x48, 0xe0, 0x0d, 0x1b, 0x3e, 0x7a, 0x9c, 0x96, 0x40, 0xfe, 0xff, 0xb9, 0x52, 0x3a, 0x8a, 0x60, 0xe1, 0xd8, 0x3f, 0x04, 0xa4, 0xb8, 0xdf, 0x69, 0x15, 0x3b, };
7382 static const u8 ed25519_321_test_vectors_expected_sig[] = {
7383 	0x7a, 0x9b, 0x73, 0x6b, 0x01, 0xcc, 0x92, 0xa3, 0x34, 0x9f, 0x1a, 0x3c, 0x32, 0xdb, 0xd9, 0x19, 0x59, 0x82, 0x53, 0x94, 0xff, 0x44, 0x3c, 0x56, 0x74, 0x05, 0xe8, 0x99, 0xc8, 0x18, 0x5c, 0xe8, 0xfa, 0xd9, 0x50, 0x0e, 0x1f, 0xce, 0x89, 0xd9, 0x5a, 0x62, 0x53, 0xc0, 0x04, 0x77, 0x43, 0x5a, 0xcf, 0x04, 0xbf, 0xf9, 0x93, 0xde, 0x1b, 0x00, 0x49, 0x5d, 0xef, 0x08, 0x34, 0xee, 0x1f, 0x07, };
7384 static const ec_test_case ed25519_321_test_case = {
7385 	.name = "EDDSA25519-SHA512/wei25519 321",
7386 	.ec_str_p = &wei25519_str_params,
7387 	.priv_key = ed25519_321_test_vectors_priv_key,
7388 	.priv_key_len = sizeof(ed25519_321_test_vectors_priv_key),
7389 	.nn_random = NULL,
7390 	.hash_type = SHA512,
7391 	.msg = (const char *)ed25519_321_test_vectors_message,
7392 	.msglen = sizeof(ed25519_321_test_vectors_message),
7393 	.sig_type = EDDSA25519,
7394 	.exp_sig = ed25519_321_test_vectors_expected_sig,
7395 	.exp_siglen = sizeof(ed25519_321_test_vectors_expected_sig),
7396 	.adata = NULL,
7397 	.adata_len = 0
7398 };
7399 
7400 /************************************************/
7401 static const u8 ed25519_322_test_vectors_priv_key[] = {
7402 	0x08, 0x26, 0xe7, 0x33, 0x33, 0x24, 0xe7, 0xec, 0x8c, 0x76, 0x42, 0x92, 0xf6, 0x01, 0x5d, 0x46, 0x70, 0xe9, 0xb8, 0xd7, 0xc4, 0xa8, 0x9e, 0x8d, 0x90, 0x9e, 0x8e, 0xf4, 0x35, 0xd1, 0x8d, 0x15, };
7403 static const u8 ed25519_322_test_vectors_message[] = {
7404 	0x7f, 0x9e, 0x3e, 0x2f, 0x03, 0xc9, 0xdf, 0x3d, 0x21, 0xb9, 0x90, 0xf5, 0xa4, 0xaf, 0x82, 0x95, 0x73, 0x4a, 0xfe, 0x78, 0x3a, 0xcc, 0xc3, 0x4f, 0xb1, 0xe9, 0xb8, 0xe9, 0x5a, 0x0f, 0xd8, 0x37, 0xaf, 0x7e, 0x05, 0xc1, 0x3c, 0xda, 0x0d, 0xe8, 0xfa, 0xda, 0xc9, 0x20, 0x52, 0x65, 0xa0, 0x79, 0x2b, 0x52, 0x56, 0x3b, 0xdc, 0x2f, 0xee, 0x76, 0x63, 0x48, 0xbe, 0xfc, 0xc5, 0x6b, 0x88, 0xbb, 0xb9, 0x5f, 0x15, 0x44, 0x14, 0xfb, 0x18, 0x6e, 0xc4, 0x36, 0xaa, 0x62, 0xea, 0x6f, 0xca, 0xbb, 0x11, 0xc0, 0x17, 0xa9, 0xd2, 0xd1, 0x5f, 0x67, 0xe5, 0x95, 0x98, 0x0e, 0x04, 0xc9, 0x31, 0x3b, 0xc9, 0x4f, 0xbc, 0x8c, 0x11, 0x34, 0xc2, 0xf4, 0x03, 0x32, 0xbc, 0x7e, 0x31, 0x1a, 0xc1, 0xce, 0x11, 0xb5, 0x05, 0xf8, 0x57, 0x2a, 0xda, 0x7f, 0xbe, 0x19, 0x6f, 0xba, 0x82, 0x2d, 0x9a, 0x91, 0x44, 0x92, 0xfa, 0x71, 0x85, 0xe9, 0xf3, 0xbe, 0xa4, 0x68, 0x72, 0x00, 0xa5, 0x24, 0xc6, 0x73, 0xa1, 0xcd, 0xf8, 0x7e, 0xb3, 0xa1, 0x40, 0xdc, 0xdb, 0x6a, 0x88, 0x75, 0x61, 0x34, 0x88, 0xa2, 0xb0, 0x0a, 0xdf, 0x71, 0x75, 0x34, 0x1c, 0x1c, 0x25, 0x76, 0x35, 0xfa, 0x1a, 0x53, 0xa3, 0xe2, 0x1d, 0x60, 0xc2, 0x28, 0x39, 0x9e, 0xea, 0x09, 0x91, 0xf1, 0x12, 0xc6, 0x0f, 0x65, 0x3d, 0x71, 0x48, 0xe2, 0xc5, 0xce, 0xb9, 0x8f, 0x94, 0x08, 0x31, 0xf0, 0x70, 0xdb, 0x10, 0x84, 0xd7, 0x91, 0x56, 0xcc, 0x82, 0xc4, 0x6b, 0xc9, 0xb8, 0xe8, 0x84, 0xf3, 0xfa, 0x81, 0xbe, 0x2d, 0xa4, 0xcd, 0xda, 0x46, 0xbc, 0xaa, 0x24, 0xcc, 0x46, 0x1f, 0x76, 0xee, 0x64, 0x7b, 0xb0, 0xf0, 0xf8, 0xc1, 0x5a, 0xc5, 0xda, 0xa7, 0x95, 0xb9, 0x45, 0xe6, 0xf8, 0x5b, 0xb3, 0x10, 0x36, 0x2e, 0x48, 0xd8, 0x09, 0x5c, 0x78, 0x2c, 0x61, 0xc5, 0x2b, 0x48, 0x1b, 0x4b, 0x00, 0x2a, 0xd0, 0x6e, 0xa7, 0x4b, 0x8d, 0x30, 0x6e, 0xff, 0x71, 0xab, 0xf2, 0x1d, 0xb7, 0x10, 0xa8, 0x91, 0x3c, 0xbe, 0x48, 0x33, 0x2b, 0xe0, 0xa0, 0xb3, 0xf3, 0x1e, 0x0c, 0x7a, 0x6e, 0xba, 0x85, 0xce, 0x33, 0xf3, 0x57, 0xc7, 0xae, 0xcc, 0xd3, 0x0b, 0xfb, 0x1a, 0x65, 0x74, 0x40, 0x8b, 0x66, 0xfe, 0x40, 0x4d, 0x31, 0xc3, 0xc5, };
7405 static const u8 ed25519_322_test_vectors_expected_sig[] = {
7406 	0x4b, 0xac, 0x7f, 0xab, 0xec, 0x87, 0x24, 0xd8, 0x1a, 0xb0, 0x9a, 0xe1, 0x30, 0x87, 0x4d, 0x70, 0xb5, 0x21, 0x34, 0x92, 0x10, 0x43, 0x72, 0xf6, 0x01, 0xae, 0x5a, 0xbb, 0x10, 0x53, 0x27, 0x99, 0x37, 0x3c, 0x4d, 0xad, 0x21, 0x58, 0x76, 0x44, 0x1f, 0x47, 0x4e, 0x2c, 0x00, 0x6b, 0xe3, 0x7c, 0x3c, 0x8f, 0x5f, 0x6f, 0x01, 0x7d, 0x08, 0x70, 0x41, 0x4f, 0xd2, 0x76, 0xa8, 0xf4, 0x28, 0x08, };
7407 static const ec_test_case ed25519_322_test_case = {
7408 	.name = "EDDSA25519-SHA512/wei25519 322",
7409 	.ec_str_p = &wei25519_str_params,
7410 	.priv_key = ed25519_322_test_vectors_priv_key,
7411 	.priv_key_len = sizeof(ed25519_322_test_vectors_priv_key),
7412 	.nn_random = NULL,
7413 	.hash_type = SHA512,
7414 	.msg = (const char *)ed25519_322_test_vectors_message,
7415 	.msglen = sizeof(ed25519_322_test_vectors_message),
7416 	.sig_type = EDDSA25519,
7417 	.exp_sig = ed25519_322_test_vectors_expected_sig,
7418 	.exp_siglen = sizeof(ed25519_322_test_vectors_expected_sig),
7419 	.adata = NULL,
7420 	.adata_len = 0
7421 };
7422 
7423 /************************************************/
7424 static const u8 ed25519_323_test_vectors_priv_key[] = {
7425 	0x00, 0xad, 0x62, 0x27, 0x97, 0x7b, 0x5f, 0x38, 0xcc, 0xda, 0x99, 0x4d, 0x92, 0x8b, 0xba, 0x90, 0x86, 0xd2, 0xda, 0xeb, 0x01, 0x3f, 0x86, 0x90, 0xdb, 0x98, 0x66, 0x48, 0xb9, 0x0c, 0x1d, 0x45, };
7426 static const u8 ed25519_323_test_vectors_message[] = {
7427 	0xcb, 0x5b, 0xc5, 0xb9, 0x8b, 0x2e, 0xfc, 0xe4, 0x35, 0x43, 0xe9, 0x1d, 0xf0, 0x41, 0xe0, 0xdb, 0xb5, 0x3e, 0xd8, 0xf6, 0x7b, 0xf0, 0xf1, 0x97, 0xc5, 0x2b, 0x22, 0x11, 0xe7, 0xa4, 0x5e, 0x2e, 0x1e, 0xc8, 0x18, 0xc1, 0xa8, 0x0e, 0x10, 0xab, 0xf6, 0xa4, 0x35, 0x35, 0xf5, 0xb7, 0x9d, 0x97, 0x4d, 0x8a, 0xe2, 0x8a, 0x22, 0x95, 0xc0, 0xa6, 0x52, 0x17, 0x63, 0xb6, 0x07, 0xd5, 0x10, 0x3c, 0x6a, 0xef, 0x3b, 0x27, 0x86, 0xbd, 0x5a, 0xfd, 0x75, 0x63, 0x69, 0x56, 0x60, 0x68, 0x43, 0x37, 0xbc, 0x30, 0x90, 0x73, 0x9f, 0xb1, 0xcd, 0x53, 0xa9, 0xd6, 0x44, 0x13, 0x9b, 0x6d, 0x4c, 0xae, 0xc7, 0x5b, 0xda, 0x7f, 0x25, 0x21, 0xfb, 0xfe, 0x67, 0x6a, 0xb4, 0x5b, 0x98, 0xcb, 0x31, 0x7a, 0xa7, 0xca, 0x79, 0xfc, 0x54, 0xa3, 0xd7, 0xc5, 0x78, 0x46, 0x6a, 0x6a, 0xa6, 0x4e, 0x43, 0x4e, 0x92, 0x34, 0x65, 0xa7, 0xf2, 0x11, 0xaa, 0x0c, 0x61, 0x68, 0x1b, 0xb8, 0x48, 0x6e, 0x90, 0x20, 0x6a, 0x25, 0x25, 0x0d, 0x3f, 0xda, 0xe6, 0xfb, 0x03, 0x29, 0x97, 0x21, 0xe9, 0x9e, 0x2a, 0x91, 0x49, 0x10, 0xd9, 0x17, 0x60, 0x08, 0x9b, 0x5d, 0x28, 0x1e, 0x13, 0x1e, 0x6c, 0x83, 0x6b, 0xc2, 0xde, 0x08, 0xf7, 0xe0, 0x2c, 0x48, 0xd3, 0x23, 0xc6, 0x47, 0xe9, 0x53, 0x6c, 0x00, 0xec, 0x10, 0x39, 0x20, 0x1c, 0x03, 0x62, 0x61, 0x8c, 0x7d, 0x47, 0xaa, 0x8e, 0x7b, 0x97, 0x15, 0xff, 0xc4, 0x39, 0x98, 0x7a, 0xe1, 0xd3, 0x11, 0x54, 0xa6, 0x19, 0x8c, 0x5a, 0xa1, 0x1c, 0x12, 0x8f, 0x40, 0x82, 0xf5, 0x56, 0xc9, 0x9b, 0xaf, 0x10, 0x3e, 0xca, 0xdc, 0x3b, 0x2f, 0x3b, 0x2e, 0xc5, 0xb4, 0x69, 0x62, 0x3b, 0xc0, 0x3a, 0x53, 0xca, 0xf3, 0x81, 0x4b, 0x16, 0x30, 0x0a, 0xed, 0xbd, 0xa5, 0x38, 0xd6, 0x76, 0xd1, 0xf6, 0x07, 0x10, 0x26, 0x39, 0xdb, 0x2a, 0x62, 0xc4, 0x46, 0x70, 0x7c, 0xe6, 0x46, 0x9b, 0xd8, 0x73, 0xa0, 0x46, 0x82, 0x25, 0xbe, 0x88, 0xb0, 0xae, 0xf5, 0xd4, 0x02, 0x04, 0x59, 0xb9, 0x4b, 0x32, 0xfe, 0x2b, 0x01, 0x33, 0xe9, 0x2e, 0x7b, 0xa5, 0x4d, 0xd2, 0xa5, 0x39, 0x7e, 0xd8, 0x5f, 0x96, 0x6a, 0xb3, 0x9e, 0xd0, 0x73, 0x0c, 0xca, 0x8e, 0x7d, 0xac, 0xb8, 0xa3, 0x36, };
7428 static const u8 ed25519_323_test_vectors_expected_sig[] = {
7429 	0xdc, 0x50, 0x1d, 0xb7, 0x9f, 0xd7, 0x82, 0xbc, 0x88, 0xca, 0xe7, 0x92, 0x55, 0x7d, 0x5d, 0x27, 0x3f, 0x9b, 0xa5, 0x60, 0xc7, 0xd9, 0x00, 0x37, 0xfe, 0x84, 0xac, 0x87, 0x9d, 0x68, 0x4f, 0x61, 0x2a, 0x77, 0x45, 0x2c, 0x44, 0x43, 0xe9, 0x5c, 0x07, 0xb8, 0xbe, 0x19, 0x2c, 0x35, 0x76, 0x9b, 0x17, 0xbb, 0xdf, 0xca, 0x42, 0x28, 0x0d, 0xe7, 0x96, 0xd9, 0x21, 0x19, 0xd8, 0x33, 0x67, 0x0d, };
7430 static const ec_test_case ed25519_323_test_case = {
7431 	.name = "EDDSA25519-SHA512/wei25519 323",
7432 	.ec_str_p = &wei25519_str_params,
7433 	.priv_key = ed25519_323_test_vectors_priv_key,
7434 	.priv_key_len = sizeof(ed25519_323_test_vectors_priv_key),
7435 	.nn_random = NULL,
7436 	.hash_type = SHA512,
7437 	.msg = (const char *)ed25519_323_test_vectors_message,
7438 	.msglen = sizeof(ed25519_323_test_vectors_message),
7439 	.sig_type = EDDSA25519,
7440 	.exp_sig = ed25519_323_test_vectors_expected_sig,
7441 	.exp_siglen = sizeof(ed25519_323_test_vectors_expected_sig),
7442 	.adata = NULL,
7443 	.adata_len = 0
7444 };
7445 
7446 /************************************************/
7447 static const u8 ed25519_324_test_vectors_priv_key[] = {
7448 	0x15, 0x21, 0xc6, 0xdb, 0xd6, 0xf7, 0x24, 0xde, 0x73, 0xea, 0xf7, 0xb5, 0x62, 0x64, 0xf0, 0x10, 0x35, 0xc0, 0x4e, 0x01, 0xc1, 0xf3, 0xeb, 0x3c, 0xbe, 0x83, 0xef, 0xd2, 0x6c, 0x43, 0x9a, 0xda, };
7449 static const u8 ed25519_324_test_vectors_message[] = {
7450 	0x3e, 0x3c, 0x7c, 0x49, 0x07, 0x88, 0xe4, 0xb1, 0xd4, 0x2f, 0x5c, 0xbc, 0xae, 0x3a, 0x99, 0x30, 0xbf, 0x61, 0x7e, 0xbd, 0xff, 0x44, 0x7f, 0x7b, 0xe2, 0xac, 0x2b, 0xa7, 0xcd, 0x5b, 0xcf, 0xc0, 0x15, 0x76, 0x09, 0x63, 0xe6, 0xfe, 0x5b, 0x95, 0x6f, 0xb7, 0xcd, 0xb3, 0x5b, 0xd5, 0xa1, 0x7f, 0x54, 0x29, 0xca, 0x66, 0x4f, 0x43, 0x7f, 0x08, 0x75, 0x3a, 0x74, 0x1c, 0x2b, 0xc8, 0x69, 0x2b, 0x71, 0xa9, 0x11, 0x5c, 0x58, 0x2a, 0x25, 0xb2, 0xf7, 0x4d, 0x32, 0x98, 0x54, 0xd6, 0x0b, 0x78, 0x17, 0xc0, 0x79, 0xb3, 0x52, 0x3a, 0xaf, 0xf8, 0x79, 0x3c, 0x2f, 0x72, 0xff, 0xf8, 0xcd, 0x10, 0x59, 0x2c, 0x54, 0xe7, 0x38, 0xdf, 0x1d, 0x64, 0x52, 0xfb, 0x72, 0xda, 0x13, 0x1c, 0x67, 0x31, 0xea, 0x5c, 0x95, 0x3c, 0x62, 0xea, 0x17, 0x7a, 0xc1, 0xf4, 0x73, 0x5e, 0x51, 0x54, 0x47, 0x73, 0x87, 0x10, 0x9a, 0xfa, 0xe1, 0x5f, 0x3e, 0xd6, 0xee, 0xb0, 0x86, 0x06, 0xe2, 0x8c, 0x81, 0xd4, 0x38, 0x6f, 0x03, 0xb9, 0x37, 0x69, 0x24, 0xb6, 0xef, 0x8d, 0x22, 0x1e, 0xe2, 0x95, 0x47, 0xf8, 0x2a, 0x7e, 0xde, 0x48, 0xe1, 0xdc, 0x17, 0x72, 0x3e, 0x3d, 0x42, 0x17, 0x1e, 0xea, 0xf9, 0x6a, 0xc8, 0x4b, 0xed, 0xc2, 0xa0, 0x1d, 0xd8, 0x6f, 0x4d, 0x08, 0x57, 0x34, 0xfd, 0x69, 0xf9, 0x1b, 0x52, 0x63, 0xe4, 0x39, 0x08, 0x3f, 0xf0, 0x31, 0x85, 0x36, 0xad, 0xff, 0x41, 0x47, 0x30, 0x8e, 0x3a, 0xaf, 0xd1, 0xb5, 0x8b, 0xb7, 0x4f, 0x6f, 0xb0, 0x21, 0x4a, 0x46, 0xfd, 0xcd, 0x35, 0x24, 0xf1, 0x8d, 0xf5, 0xa7, 0x19, 0xce, 0x57, 0x31, 0x9e, 0x79, 0x1b, 0x4e, 0xa6, 0x06, 0xb4, 0x99, 0xbf, 0xa5, 0x7a, 0x60, 0xe7, 0x07, 0xf9, 0x4e, 0x18, 0xf1, 0xfe, 0xd2, 0x2f, 0x91, 0xbc, 0x79, 0xe6, 0x36, 0x4a, 0x84, 0x3f, 0x9c, 0xbf, 0x93, 0x82, 0x5c, 0x46, 0x5e, 0x9c, 0xae, 0x90, 0x72, 0xbc, 0x9d, 0x3e, 0xc4, 0x47, 0x1f, 0x21, 0xab, 0x2f, 0x7e, 0x99, 0xa6, 0x33, 0xf5, 0x87, 0xaa, 0xc3, 0xdb, 0x78, 0xae, 0x96, 0x66, 0xa8, 0x9a, 0x18, 0x00, 0x8d, 0xd6, 0x1d, 0x60, 0x21, 0x85, 0x54, 0x41, 0x1a, 0x65, 0x74, 0x0f, 0xfd, 0x1a, 0xe3, 0xad, 0xc0, 0x65, 0x95, 0xe3, 0xb7, 0x87, 0x64, 0x07, 0xb6, };
7451 static const u8 ed25519_324_test_vectors_expected_sig[] = {
7452 	0xa8, 0x17, 0xed, 0x23, 0xec, 0x39, 0x8a, 0x12, 0x86, 0x01, 0xc1, 0x83, 0x2d, 0xc6, 0xaf, 0x76, 0x43, 0xbf, 0x3a, 0x5f, 0x51, 0x7b, 0xcc, 0x57, 0x94, 0x50, 0xfd, 0xb4, 0x75, 0x90, 0x28, 0xf4, 0x96, 0x61, 0x64, 0x12, 0x5f, 0x6e, 0xbd, 0x0d, 0x6b, 0xf8, 0x6f, 0xf2, 0x98, 0xa3, 0x9c, 0x76, 0x6d, 0x0c, 0x21, 0xfd, 0xb0, 0xcb, 0xfd, 0xf8, 0x1c, 0xd0, 0xeb, 0x1f, 0x03, 0xcd, 0x8a, 0x08, };
7453 static const ec_test_case ed25519_324_test_case = {
7454 	.name = "EDDSA25519-SHA512/wei25519 324",
7455 	.ec_str_p = &wei25519_str_params,
7456 	.priv_key = ed25519_324_test_vectors_priv_key,
7457 	.priv_key_len = sizeof(ed25519_324_test_vectors_priv_key),
7458 	.nn_random = NULL,
7459 	.hash_type = SHA512,
7460 	.msg = (const char *)ed25519_324_test_vectors_message,
7461 	.msglen = sizeof(ed25519_324_test_vectors_message),
7462 	.sig_type = EDDSA25519,
7463 	.exp_sig = ed25519_324_test_vectors_expected_sig,
7464 	.exp_siglen = sizeof(ed25519_324_test_vectors_expected_sig),
7465 	.adata = NULL,
7466 	.adata_len = 0
7467 };
7468 
7469 /************************************************/
7470 static const u8 ed25519_325_test_vectors_priv_key[] = {
7471 	0x17, 0xe5, 0xf0, 0xa8, 0xf3, 0x47, 0x51, 0xba, 0xbc, 0x5c, 0x72, 0x3e, 0xcf, 0x33, 0x93, 0x06, 0x99, 0x2f, 0x39, 0xea, 0x06, 0x5a, 0xc1, 0x40, 0xfc, 0xbc, 0x39, 0x7d, 0x2d, 0xd3, 0x2c, 0x4b, };
7472 static const u8 ed25519_325_test_vectors_message[] = {
7473 	0xc0, 0xfa, 0xd7, 0x90, 0x02, 0x40, 0x19, 0xbd, 0x6f, 0xc0, 0x8a, 0x7a, 0x92, 0xf5, 0xf2, 0xac, 0x35, 0xcf, 0x64, 0x32, 0xe2, 0xea, 0xa5, 0x3d, 0x48, 0x2f, 0x6e, 0x12, 0x04, 0x93, 0x53, 0x36, 0xcb, 0x3a, 0xe6, 0x5a, 0x63, 0xc2, 0x4d, 0x0e, 0xc6, 0x53, 0x9a, 0x10, 0xee, 0x18, 0x76, 0x0f, 0x2f, 0x52, 0x05, 0x37, 0x77, 0x4c, 0xde, 0xc6, 0xe9, 0x6b, 0x55, 0x53, 0x60, 0x11, 0xda, 0xa8, 0xf8, 0xbc, 0xb9, 0xcd, 0xaf, 0x6d, 0xf5, 0xb3, 0x46, 0x48, 0x44, 0x8a, 0xc7, 0xd7, 0xcb, 0x7c, 0x6b, 0xd8, 0x0d, 0x67, 0xfb, 0xf3, 0x30, 0xf8, 0x76, 0x52, 0x97, 0x76, 0x60, 0x46, 0xa9, 0x25, 0xab, 0x52, 0x41, 0x1d, 0x16, 0x04, 0xc3, 0xed, 0x6a, 0x85, 0x17, 0x30, 0x40, 0x12, 0x56, 0x58, 0xa3, 0x2c, 0xf4, 0xc8, 0x54, 0xef, 0x28, 0x13, 0xdf, 0x2b, 0xe6, 0xf3, 0x83, 0x0e, 0x5e, 0xee, 0x5a, 0x61, 0x63, 0xa8, 0x3c, 0xa8, 0x84, 0x9f, 0x61, 0x29, 0x91, 0xa3, 0x1e, 0x9f, 0x88, 0x02, 0x8e, 0x50, 0xbf, 0x85, 0x35, 0xe1, 0x17, 0x55, 0xfa, 0xd0, 0x29, 0xd9, 0x4c, 0xf2, 0x59, 0x59, 0xf6, 0x69, 0x5d, 0x09, 0xc1, 0xba, 0x43, 0x15, 0xd4, 0x0f, 0x7c, 0xf5, 0x1b, 0x3f, 0x81, 0x66, 0xd0, 0x2f, 0xab, 0xa7, 0x51, 0x1e, 0xcd, 0x8b, 0x1d, 0xde, 0xd5, 0xf1, 0x0c, 0xd6, 0x84, 0x34, 0x55, 0xcf, 0xf7, 0x07, 0xed, 0x22, 0x53, 0x96, 0xc6, 0x1d, 0x08, 0x20, 0xd2, 0x0a, 0xda, 0x70, 0xd0, 0xc3, 0x61, 0x9f, 0xf6, 0x79, 0x42, 0x20, 0x61, 0xc9, 0xf7, 0xc7, 0x6e, 0x97, 0xd5, 0xa3, 0x7a, 0xf6, 0x1f, 0xd6, 0x22, 0x12, 0xd2, 0xda, 0xfc, 0x64, 0x7e, 0xbb, 0xb9, 0x79, 0xe6, 0x1d, 0x90, 0x70, 0xec, 0x03, 0x60, 0x9a, 0x07, 0xf5, 0xfc, 0x57, 0xd1, 0x19, 0xae, 0x64, 0xb7, 0xa6, 0xef, 0x92, 0xa5, 0xaf, 0xae, 0x66, 0x0a, 0x30, 0xed, 0x48, 0xd7, 0x02, 0xcc, 0x31, 0x28, 0xc6, 0x33, 0xb4, 0xf1, 0x90, 0x60, 0xa0, 0x57, 0x81, 0x01, 0x72, 0x9e, 0xe9, 0x79, 0xf7, 0x90, 0xf4, 0x5b, 0xdb, 0xb5, 0xfe, 0x1a, 0x8a, 0x62, 0xf0, 0x1a, 0x61, 0xa3, 0x1d, 0x61, 0xaf, 0x07, 0x03, 0x04, 0x50, 0xfa, 0x04, 0x17, 0x32, 0x3e, 0x94, 0x07, 0xbc, 0x76, 0xe7, 0x31, 0x30, 0xe7, 0xc6, 0x9d, 0x62, 0xe6, 0xa7, };
7474 static const u8 ed25519_325_test_vectors_expected_sig[] = {
7475 	0xef, 0xe2, 0xcb, 0x63, 0xfe, 0x7b, 0x4f, 0xc9, 0x89, 0x46, 0xdc, 0x82, 0xfb, 0x69, 0x98, 0xe7, 0x41, 0xed, 0x9c, 0xe6, 0xb9, 0xc1, 0xa9, 0x3b, 0xb4, 0x5b, 0xc0, 0xa7, 0xd8, 0x39, 0x6d, 0x74, 0x05, 0x28, 0x2b, 0x43, 0xfe, 0x36, 0x3b, 0xa5, 0xb2, 0x35, 0x89, 0xf8, 0xe1, 0xfa, 0xe1, 0x30, 0xe1, 0x57, 0xce, 0x88, 0x8c, 0xd7, 0x2d, 0x05, 0x3d, 0x0c, 0xc1, 0x9d, 0x25, 0x7a, 0x43, 0x00, };
7476 static const ec_test_case ed25519_325_test_case = {
7477 	.name = "EDDSA25519-SHA512/wei25519 325",
7478 	.ec_str_p = &wei25519_str_params,
7479 	.priv_key = ed25519_325_test_vectors_priv_key,
7480 	.priv_key_len = sizeof(ed25519_325_test_vectors_priv_key),
7481 	.nn_random = NULL,
7482 	.hash_type = SHA512,
7483 	.msg = (const char *)ed25519_325_test_vectors_message,
7484 	.msglen = sizeof(ed25519_325_test_vectors_message),
7485 	.sig_type = EDDSA25519,
7486 	.exp_sig = ed25519_325_test_vectors_expected_sig,
7487 	.exp_siglen = sizeof(ed25519_325_test_vectors_expected_sig),
7488 	.adata = NULL,
7489 	.adata_len = 0
7490 };
7491 
7492 /************************************************/
7493 static const u8 ed25519_326_test_vectors_priv_key[] = {
7494 	0x0c, 0xd7, 0xaa, 0x7d, 0x60, 0x5e, 0x44, 0xd5, 0xff, 0xb9, 0x79, 0x66, 0xb2, 0xcb, 0x93, 0xc1, 0x89, 0xe4, 0xc5, 0xa8, 0x5d, 0xb8, 0x7f, 0xad, 0x7a, 0xb8, 0xd6, 0x24, 0x63, 0xc5, 0x9b, 0x59, };
7495 static const u8 ed25519_326_test_vectors_message[] = {
7496 	0x28, 0xa5, 0x5d, 0xda, 0x6c, 0xd0, 0x84, 0x4b, 0x65, 0x77, 0xc9, 0xd6, 0xda, 0x07, 0x3a, 0x4d, 0xc3, 0x5c, 0xbc, 0x98, 0xac, 0x15, 0x8a, 0xb5, 0x4c, 0xf8, 0x8f, 0xd2, 0x0c, 0xc8, 0x7e, 0x83, 0xc4, 0xbb, 0xa2, 0xd7, 0x4d, 0x82, 0xce, 0x0f, 0x48, 0x54, 0xec, 0x4d, 0xb5, 0x13, 0xde, 0x40, 0x04, 0x65, 0xaa, 0xa5, 0xee, 0xe7, 0x90, 0xbc, 0x84, 0xf1, 0x63, 0x37, 0x07, 0x2d, 0x3a, 0x91, 0xcd, 0xe4, 0x0d, 0x6e, 0x0d, 0xf1, 0xba, 0x0c, 0xc0, 0x64, 0x5f, 0x5d, 0x5c, 0xbb, 0xb6, 0x42, 0x38, 0x1d, 0x7b, 0x9e, 0x21, 0x1d, 0x25, 0x26, 0x7a, 0x8a, 0xcf, 0x77, 0xd1, 0xed, 0xb6, 0x9c, 0x3a, 0x63, 0x0f, 0x5b, 0x13, 0x3d, 0x24, 0xf0, 0x46, 0xa8, 0x1b, 0xf2, 0x2f, 0xf0, 0x3b, 0x31, 0xd8, 0x44, 0x7e, 0x12, 0xc3, 0xf7, 0xb7, 0x71, 0x14, 0xa7, 0x0c, 0xbd, 0x20, 0xbb, 0xd0, 0x8b, 0x0b, 0x38, 0x27, 0xa6, 0xbb, 0xcf, 0x90, 0x40, 0x9e, 0x34, 0x44, 0x47, 0xa7, 0xfb, 0xc5, 0x9b, 0xdd, 0x97, 0xd7, 0x29, 0x07, 0x1f, 0x8d, 0x71, 0xdc, 0xc3, 0x3e, 0x6e, 0xf2, 0xcb, 0xab, 0x1d, 0x41, 0x1e, 0xdf, 0x13, 0x73, 0x4d, 0xb1, 0xdd, 0x97, 0x03, 0x27, 0x6f, 0x5e, 0xb2, 0xd6, 0xaa, 0x2c, 0xb8, 0x95, 0x2d, 0xd6, 0x71, 0x2b, 0xfa, 0xe8, 0x09, 0xce, 0x08, 0xc3, 0xaa, 0x50, 0x2b, 0x81, 0x35, 0x71, 0x3f, 0xac, 0x0a, 0x9c, 0x25, 0xb1, 0xd4, 0x5b, 0x6a, 0x58, 0x31, 0xe0, 0x24, 0x21, 0xbb, 0xa6, 0x5b, 0x81, 0xa5, 0x96, 0xef, 0xa2, 0x4b, 0x05, 0x76, 0xbd, 0x1d, 0xc7, 0xfd, 0xfb, 0x49, 0xbe, 0x76, 0x28, 0x75, 0xe8, 0x1b, 0xd5, 0x40, 0x72, 0x2b, 0xc0, 0x61, 0x40, 0xb9, 0xaa, 0x2e, 0xf7, 0xb8, 0x4a, 0x80, 0x1e, 0x41, 0xde, 0xd6, 0x8d, 0x45, 0x46, 0xac, 0x48, 0x73, 0xd9, 0xe7, 0xce, 0xd6, 0x49, 0xb6, 0x4f, 0xad, 0xaf, 0x0b, 0x5c, 0x4b, 0x6e, 0xb8, 0xd0, 0x36, 0x31, 0x52, 0x33, 0xf4, 0x32, 0x6c, 0xa0, 0x1e, 0x03, 0x39, 0x30, 0x50, 0xcd, 0x02, 0x7c, 0x24, 0xf6, 0x73, 0x03, 0xfb, 0x84, 0x6b, 0xd2, 0xc6, 0xb3, 0xdb, 0xa0, 0x6b, 0xed, 0x0d, 0x59, 0xa3, 0x62, 0x89, 0xd2, 0x4b, 0xd6, 0x48, 0xf7, 0xdb, 0x0b, 0x3a, 0x81, 0x34, 0x66, 0x12, 0x59, 0x3e, 0x3d, 0xdd, 0x18, 0xc5, 0x57, };
7497 static const u8 ed25519_326_test_vectors_expected_sig[] = {
7498 	0xbf, 0x91, 0x15, 0xfd, 0x3d, 0x02, 0x70, 0x6e, 0x39, 0x8d, 0x4b, 0xf3, 0xb0, 0x2a, 0x82, 0x67, 0x4f, 0xf3, 0x04, 0x15, 0x08, 0xfd, 0x39, 0xd2, 0x9f, 0x86, 0x7e, 0x50, 0x16, 0x34, 0xb9, 0x26, 0x1f, 0x51, 0x6a, 0x79, 0x4f, 0x98, 0x73, 0x8d, 0x7c, 0x70, 0x13, 0xa3, 0xf2, 0xf8, 0x58, 0xff, 0xdd, 0x08, 0x04, 0x7f, 0xb6, 0xbf, 0x3d, 0xdd, 0xfb, 0x4b, 0x4f, 0x4c, 0xbe, 0xef, 0x30, 0x03, };
7499 static const ec_test_case ed25519_326_test_case = {
7500 	.name = "EDDSA25519-SHA512/wei25519 326",
7501 	.ec_str_p = &wei25519_str_params,
7502 	.priv_key = ed25519_326_test_vectors_priv_key,
7503 	.priv_key_len = sizeof(ed25519_326_test_vectors_priv_key),
7504 	.nn_random = NULL,
7505 	.hash_type = SHA512,
7506 	.msg = (const char *)ed25519_326_test_vectors_message,
7507 	.msglen = sizeof(ed25519_326_test_vectors_message),
7508 	.sig_type = EDDSA25519,
7509 	.exp_sig = ed25519_326_test_vectors_expected_sig,
7510 	.exp_siglen = sizeof(ed25519_326_test_vectors_expected_sig),
7511 	.adata = NULL,
7512 	.adata_len = 0
7513 };
7514 
7515 /************************************************/
7516 static const u8 ed25519_327_test_vectors_priv_key[] = {
7517 	0x33, 0x37, 0x1d, 0x9e, 0x89, 0x2f, 0x98, 0x75, 0x05, 0x2a, 0xc8, 0xe3, 0x25, 0xba, 0x50, 0x5e, 0x74, 0x77, 0xc1, 0xac, 0xe2, 0x4b, 0xa7, 0x82, 0x26, 0x43, 0xd4, 0x3d, 0x0a, 0xce, 0xf3, 0xde, };
7518 static const u8 ed25519_327_test_vectors_message[] = {
7519 	0x27, 0xa3, 0x2e, 0xfb, 0xa2, 0x82, 0x04, 0xbe, 0x59, 0xb7, 0xff, 0x5f, 0xe4, 0x88, 0xca, 0x15, 0x8a, 0x91, 0xd5, 0x98, 0x60, 0x91, 0xec, 0xc4, 0x45, 0x8b, 0x49, 0xe0, 0x90, 0xdd, 0x37, 0xcb, 0xfe, 0xde, 0x7c, 0x0f, 0x46, 0x18, 0x6f, 0xab, 0xcb, 0xdf, 0xf7, 0x8d, 0x28, 0x44, 0x15, 0x58, 0x08, 0xef, 0xff, 0xd8, 0x73, 0xed, 0x9c, 0x92, 0x61, 0x52, 0x6e, 0x04, 0xe4, 0xf7, 0x05, 0x0b, 0x8d, 0x7b, 0xd2, 0x67, 0xa0, 0xfe, 0x3d, 0x5a, 0x44, 0x93, 0x78, 0xd5, 0x4a, 0x4f, 0xeb, 0xbd, 0x2f, 0x26, 0x82, 0x43, 0x38, 0xe2, 0xaa, 0xaf, 0x35, 0xa3, 0x2f, 0xf0, 0xf6, 0x25, 0x04, 0xbd, 0xa5, 0xc2, 0xe4, 0x4a, 0xbc, 0x63, 0x15, 0x9f, 0x33, 0x6c, 0xf2, 0x5e, 0x6b, 0xb4, 0x0d, 0xdb, 0x7d, 0x88, 0x25, 0xdf, 0xf1, 0x8f, 0xd5, 0x1f, 0xc0, 0x19, 0x51, 0xea, 0xed, 0xcd, 0x33, 0x70, 0x70, 0x07, 0xe1, 0x20, 0x3c, 0xa5, 0x8b, 0x4f, 0x7d, 0x24, 0x2f, 0x81, 0x66, 0xa9, 0x07, 0xe0, 0x99, 0x93, 0x2c, 0x00, 0x1b, 0xfb, 0x1e, 0xc9, 0xa6, 0x1e, 0x0e, 0xf2, 0xda, 0x4e, 0x84, 0x46, 0xaf, 0x20, 0x82, 0x01, 0x31, 0x5d, 0x69, 0x68, 0x17, 0x10, 0xd4, 0x25, 0xd2, 0x40, 0x0c, 0x38, 0x7d, 0x7b, 0x9d, 0xf3, 0x21, 0xa4, 0xae, 0xc6, 0x02, 0xb9, 0xc6, 0x56, 0xc3, 0xe2, 0x31, 0x0b, 0xff, 0x87, 0x56, 0xd1, 0x8b, 0x80, 0x21, 0x34, 0xb1, 0x56, 0x04, 0xf4, 0xed, 0xc1, 0x11, 0x14, 0x9a, 0x98, 0x79, 0xe3, 0x12, 0x41, 0xdd, 0x34, 0xf7, 0x02, 0xf4, 0xc3, 0x49, 0x61, 0x7b, 0x13, 0x52, 0x97, 0x69, 0xa7, 0x72, 0xf5, 0xe5, 0x2a, 0x89, 0xc0, 0x98, 0xe0, 0xdc, 0xa5, 0x92, 0x06, 0x67, 0x89, 0x3a, 0x25, 0x00, 0x61, 0xb1, 0x79, 0x91, 0x62, 0x6e, 0xb9, 0x31, 0x92, 0x98, 0x68, 0x5b, 0xe4, 0x6b, 0x6a, 0x8b, 0x68, 0x42, 0x24, 0x44, 0xfa, 0x5a, 0x36, 0xbc, 0xf3, 0xa6, 0x87, 0xe2, 0xec, 0xcb, 0x93, 0x22, 0xc8, 0x7d, 0xc8, 0x01, 0x65, 0xda, 0x89, 0x89, 0x30, 0x85, 0x0b, 0x98, 0xfc, 0x86, 0x3c, 0xad, 0xa1, 0xaa, 0x99, 0xc6, 0xd6, 0x1c, 0x45, 0x1b, 0x9c, 0xcf, 0x48, 0x74, 0xc7, 0xf0, 0xe7, 0x5b, 0x0a, 0x0c, 0x60, 0x2f, 0x04, 0x48, 0x12, 0xc7, 0x17, 0x65, 0xad, 0xaf, 0x02, 0x02, 0x53, 0x95, 0xb0, };
7520 static const u8 ed25519_327_test_vectors_expected_sig[] = {
7521 	0x98, 0x5c, 0xa4, 0x46, 0xdd, 0xc0, 0x07, 0x82, 0x7c, 0xc8, 0xf2, 0x85, 0x2c, 0xbd, 0x81, 0x15, 0xef, 0x8c, 0x59, 0x75, 0xe9, 0xd7, 0xce, 0x96, 0xd7, 0x4d, 0xfe, 0xd8, 0x59, 0xaa, 0x14, 0xa4, 0xc1, 0x52, 0x54, 0x00, 0x6b, 0xea, 0x5e, 0x08, 0x35, 0x9e, 0xfe, 0x26, 0x25, 0xd7, 0x15, 0xe0, 0x89, 0x7e, 0xe5, 0xa1, 0x6f, 0x15, 0x12, 0x03, 0xbe, 0x50, 0x10, 0x41, 0x86, 0x37, 0xde, 0x05, };
7522 static const ec_test_case ed25519_327_test_case = {
7523 	.name = "EDDSA25519-SHA512/wei25519 327",
7524 	.ec_str_p = &wei25519_str_params,
7525 	.priv_key = ed25519_327_test_vectors_priv_key,
7526 	.priv_key_len = sizeof(ed25519_327_test_vectors_priv_key),
7527 	.nn_random = NULL,
7528 	.hash_type = SHA512,
7529 	.msg = (const char *)ed25519_327_test_vectors_message,
7530 	.msglen = sizeof(ed25519_327_test_vectors_message),
7531 	.sig_type = EDDSA25519,
7532 	.exp_sig = ed25519_327_test_vectors_expected_sig,
7533 	.exp_siglen = sizeof(ed25519_327_test_vectors_expected_sig),
7534 	.adata = NULL,
7535 	.adata_len = 0
7536 };
7537 
7538 /************************************************/
7539 static const u8 ed25519_328_test_vectors_priv_key[] = {
7540 	0xbe, 0xed, 0xb8, 0x07, 0x3d, 0xf5, 0x8f, 0x8c, 0x1b, 0xff, 0xbd, 0xbd, 0x77, 0xec, 0x7d, 0xec, 0xb2, 0xc8, 0x2a, 0x9b, 0xab, 0xec, 0xef, 0xc0, 0x33, 0x15, 0x07, 0xbd, 0xc2, 0xc2, 0xa7, 0xe7, };
7541 static const u8 ed25519_328_test_vectors_message[] = {
7542 	0x35, 0xca, 0x57, 0xf0, 0xf9, 0x15, 0xe5, 0x20, 0x9d, 0x54, 0xea, 0x4b, 0x87, 0x1f, 0xfb, 0x58, 0x53, 0x54, 0xdf, 0x1b, 0x4a, 0x4a, 0x17, 0x96, 0xfb, 0xe4, 0xd6, 0x22, 0x7d, 0x3e, 0x1a, 0xba, 0x51, 0x71, 0xed, 0x03, 0x91, 0xa7, 0x9e, 0x83, 0xe2, 0x4d, 0x82, 0xfd, 0xaf, 0xd1, 0x5c, 0x17, 0xb2, 0x8b, 0xf6, 0xc9, 0x4d, 0x61, 0x8c, 0x74, 0xd6, 0x52, 0x64, 0xe5, 0x8f, 0xaa, 0xac, 0xd2, 0x90, 0x28, 0x72, 0xfd, 0xd0, 0xef, 0xa2, 0x2e, 0x8d, 0x2d, 0x7c, 0xe8, 0xe3, 0xb8, 0x19, 0x7f, 0x0c, 0x36, 0x15, 0xb0, 0xa3, 0x85, 0x23, 0x5f, 0xa9, 0xfd, 0x8e, 0x45, 0x64, 0xee, 0x6e, 0x6b, 0x16, 0x50, 0xb4, 0xcf, 0xb9, 0x4d, 0x87, 0x2c, 0x80, 0x5c, 0x32, 0xd4, 0xf3, 0xa1, 0x8f, 0x96, 0x64, 0x61, 0xd3, 0xad, 0xbb, 0x60, 0x5f, 0xa5, 0x25, 0x88, 0x4f, 0x8e, 0xb1, 0x97, 0x62, 0x73, 0x96, 0xba, 0x4d, 0x99, 0x5d, 0x78, 0xac, 0x02, 0x94, 0x8a, 0x0e, 0xaa, 0xbb, 0x58, 0x51, 0x9b, 0x9a, 0x8e, 0x2e, 0x79, 0x85, 0xcd, 0x1d, 0xe2, 0xc7, 0x1d, 0x89, 0x18, 0xd9, 0x6a, 0x01, 0x68, 0x66, 0x0c, 0xe1, 0x7c, 0xdd, 0xf3, 0x64, 0xe3, 0xec, 0x0d, 0x4b, 0xd9, 0x0f, 0x21, 0x04, 0x75, 0x1a, 0x19, 0x27, 0xee, 0x1d, 0x23, 0xf3, 0xe7, 0xa6, 0x98, 0x40, 0xed, 0x04, 0x0b, 0x00, 0xe5, 0xf6, 0xe4, 0x86, 0x6e, 0xc5, 0x88, 0x13, 0x14, 0x9c, 0xc3, 0x82, 0xae, 0xbf, 0x61, 0x62, 0x60, 0x8c, 0x79, 0x57, 0x4d, 0x55, 0x3f, 0x47, 0x23, 0x0e, 0x92, 0x4a, 0x0e, 0xf1, 0xeb, 0xf5, 0x5d, 0x8e, 0x1a, 0x52, 0xab, 0xb6, 0x2a, 0x2d, 0x7a, 0xc8, 0x60, 0x27, 0xc7, 0xc0, 0x3c, 0xc8, 0x3f, 0xa1, 0x94, 0x9d, 0xa2, 0x9e, 0x2f, 0x30, 0x37, 0xab, 0x98, 0x6f, 0xd2, 0xff, 0xfe, 0x65, 0x0e, 0x31, 0x49, 0xba, 0xba, 0xe5, 0xa5, 0x0b, 0x1e, 0xe9, 0x69, 0x6f, 0x3b, 0xab, 0xec, 0x72, 0xe2, 0x96, 0x97, 0xc8, 0x24, 0x22, 0x81, 0x4d, 0x27, 0x20, 0x85, 0x50, 0x0f, 0xd8, 0x37, 0xfe, 0x3c, 0x7a, 0x97, 0x3e, 0xf4, 0xc1, 0x69, 0xaf, 0x12, 0xdd, 0x7f, 0x02, 0x70, 0x06, 0x20, 0xbb, 0x04, 0x5b, 0xdb, 0xf8, 0x46, 0x23, 0xf3, 0x26, 0x35, 0x05, 0x70, 0xb3, 0xca, 0xdb, 0xc9, 0xae, 0xa4, 0x20, 0x0b, 0x28, 0x28, 0x7e, 0x17, 0xab, };
7543 static const u8 ed25519_328_test_vectors_expected_sig[] = {
7544 	0x8c, 0x89, 0x0c, 0xcc, 0xad, 0xc7, 0x76, 0x0e, 0x1e, 0x82, 0xe4, 0x3c, 0x44, 0xb3, 0xdc, 0x0b, 0x68, 0x5a, 0x48, 0xb4, 0x79, 0xae, 0x13, 0xcc, 0x0a, 0x6b, 0x05, 0x57, 0xd0, 0xfb, 0x1c, 0xba, 0xbb, 0xa6, 0x3d, 0x2a, 0x96, 0x84, 0x34, 0x12, 0xea, 0x8d, 0x36, 0xc5, 0x0a, 0xcb, 0xf5, 0x2b, 0x92, 0xcf, 0xb2, 0xdc, 0xe4, 0x9d, 0xc4, 0x8a, 0xf6, 0xdd, 0xcf, 0x8e, 0xe4, 0x7a, 0x86, 0x08, };
7545 static const ec_test_case ed25519_328_test_case = {
7546 	.name = "EDDSA25519-SHA512/wei25519 328",
7547 	.ec_str_p = &wei25519_str_params,
7548 	.priv_key = ed25519_328_test_vectors_priv_key,
7549 	.priv_key_len = sizeof(ed25519_328_test_vectors_priv_key),
7550 	.nn_random = NULL,
7551 	.hash_type = SHA512,
7552 	.msg = (const char *)ed25519_328_test_vectors_message,
7553 	.msglen = sizeof(ed25519_328_test_vectors_message),
7554 	.sig_type = EDDSA25519,
7555 	.exp_sig = ed25519_328_test_vectors_expected_sig,
7556 	.exp_siglen = sizeof(ed25519_328_test_vectors_expected_sig),
7557 	.adata = NULL,
7558 	.adata_len = 0
7559 };
7560 
7561 /************************************************/
7562 static const u8 ed25519_329_test_vectors_priv_key[] = {
7563 	0x91, 0x84, 0xef, 0x61, 0x88, 0x16, 0x83, 0x25, 0x92, 0xbc, 0x8e, 0xb3, 0x5f, 0x4f, 0xfd, 0x4f, 0xf9, 0x8d, 0xfb, 0xf7, 0x77, 0x6c, 0x90, 0xf2, 0xaa, 0xd2, 0x12, 0xce, 0x7e, 0x03, 0x35, 0x1e, };
7564 static const u8 ed25519_329_test_vectors_message[] = {
7565 	0x72, 0x9e, 0xb7, 0xe5, 0x4a, 0x9d, 0x00, 0xc5, 0x86, 0x17, 0xaf, 0x18, 0xc3, 0x45, 0xb8, 0xdc, 0x6e, 0x5b, 0x4e, 0x0f, 0x57, 0xde, 0x2f, 0x3c, 0x02, 0xe5, 0x4a, 0x2e, 0xc8, 0xf1, 0x42, 0x5e, 0xc2, 0xe2, 0x40, 0x77, 0x5b, 0x5a, 0xb0, 0xc1, 0x0f, 0x84, 0xac, 0x8b, 0xaf, 0xda, 0x45, 0x84, 0xf7, 0xe2, 0x1c, 0x65, 0x5f, 0xae, 0xcd, 0x80, 0x30, 0xa9, 0x89, 0x06, 0xbd, 0x68, 0x39, 0x8f, 0x26, 0xb5, 0xd5, 0x8d, 0x92, 0xb6, 0xcf, 0x04, 0x5e, 0x9b, 0xd9, 0x74, 0x3c, 0x74, 0xc9, 0xa3, 0x42, 0xec, 0x61, 0xce, 0x57, 0xf3, 0x7b, 0x98, 0x1e, 0xac, 0x4d, 0x8b, 0xf0, 0x34, 0x60, 0x88, 0x66, 0xe9, 0x85, 0xbb, 0x68, 0x68, 0x6a, 0x68, 0xb4, 0xa2, 0xaf, 0x88, 0xb9, 0x92, 0xa2, 0xa6, 0xd2, 0xdc, 0x8c, 0xe8, 0x8b, 0xfb, 0x0a, 0x36, 0xcf, 0x28, 0xbb, 0xab, 0x70, 0x24, 0xab, 0xfa, 0x2b, 0xea, 0x53, 0x31, 0x3b, 0x66, 0xc9, 0x06, 0xf4, 0xf7, 0xcf, 0x66, 0x97, 0x0f, 0x54, 0x00, 0x95, 0xbd, 0x01, 0x04, 0xaa, 0x49, 0x24, 0xdd, 0x82, 0xe1, 0x54, 0x13, 0xc2, 0x26, 0x79, 0xf8, 0x47, 0xe4, 0x8c, 0xd0, 0xc7, 0xec, 0x1f, 0x67, 0x7e, 0x00, 0x5f, 0xec, 0x01, 0x77, 0xfb, 0xd5, 0xc5, 0x59, 0xfc, 0x39, 0xad, 0xd6, 0x13, 0x99, 0x1f, 0xba, 0xea, 0xe4, 0xd2, 0x4d, 0x39, 0xd3, 0x09, 0xef, 0x74, 0x64, 0x7f, 0x81, 0x92, 0xcc, 0x4c, 0x62, 0xd0, 0x64, 0x20, 0x28, 0xc7, 0x6a, 0x1b, 0x95, 0x1f, 0x6b, 0xc9, 0x63, 0x9d, 0xeb, 0x91, 0xec, 0xc0, 0x8b, 0xe6, 0x04, 0x3f, 0x21, 0x09, 0x70, 0x5a, 0x42, 0xc7, 0xea, 0xe7, 0x12, 0x64, 0x9d, 0x91, 0xd9, 0x6c, 0xcb, 0xbf, 0xb6, 0x3d, 0x8d, 0x0d, 0xd6, 0xdd, 0x11, 0x21, 0x60, 0xf6, 0x13, 0x61, 0xec, 0xdc, 0x67, 0x93, 0x92, 0x9c, 0xa9, 0xae, 0xf9, 0xab, 0x56, 0x94, 0x4a, 0x6f, 0xa4, 0xa7, 0xdf, 0x1e, 0x27, 0x9e, 0xaf, 0x58, 0xce, 0x83, 0x23, 0xa9, 0xcf, 0x62, 0xc9, 0x42, 0x79, 0xff, 0xf7, 0x44, 0x0f, 0xbc, 0x93, 0x6b, 0xaa, 0x61, 0x48, 0x9c, 0x99, 0x93, 0x30, 0xba, 0xdc, 0xb9, 0xfc, 0x0e, 0x18, 0x4b, 0xc5, 0x09, 0x3f, 0x33, 0x0c, 0xbb, 0x24, 0x2f, 0x71, 0xfb, 0x37, 0x87, 0x38, 0xfe, 0xa1, 0x05, 0x11, 0xdd, 0x43, 0x83, 0x64, 0xd7, 0xf7, 0x6b, 0xcc, };
7566 static const u8 ed25519_329_test_vectors_expected_sig[] = {
7567 	0xb3, 0xc2, 0x4e, 0x75, 0x13, 0x2c, 0x56, 0x34, 0x75, 0x42, 0x2d, 0x5e, 0xa4, 0x12, 0xb5, 0xc1, 0xe8, 0xe6, 0xe5, 0xea, 0x1c, 0x08, 0xea, 0xd1, 0x39, 0x3c, 0x41, 0x2d, 0xa1, 0x34, 0xc9, 0xa1, 0x63, 0x82, 0x84, 0xea, 0x7e, 0x2c, 0xa0, 0x32, 0xfe, 0x3d, 0x3e, 0x32, 0xa9, 0x06, 0x6a, 0x8c, 0x88, 0x39, 0x90, 0x3f, 0x6e, 0xf4, 0x6e, 0x96, 0x6b, 0xb5, 0xe4, 0x92, 0xd8, 0xc2, 0xaa, 0x00, };
7568 static const ec_test_case ed25519_329_test_case = {
7569 	.name = "EDDSA25519-SHA512/wei25519 329",
7570 	.ec_str_p = &wei25519_str_params,
7571 	.priv_key = ed25519_329_test_vectors_priv_key,
7572 	.priv_key_len = sizeof(ed25519_329_test_vectors_priv_key),
7573 	.nn_random = NULL,
7574 	.hash_type = SHA512,
7575 	.msg = (const char *)ed25519_329_test_vectors_message,
7576 	.msglen = sizeof(ed25519_329_test_vectors_message),
7577 	.sig_type = EDDSA25519,
7578 	.exp_sig = ed25519_329_test_vectors_expected_sig,
7579 	.exp_siglen = sizeof(ed25519_329_test_vectors_expected_sig),
7580 	.adata = NULL,
7581 	.adata_len = 0
7582 };
7583 
7584 /************************************************/
7585 static const u8 ed25519_330_test_vectors_priv_key[] = {
7586 	0x35, 0x4e, 0x13, 0x15, 0x2e, 0xe1, 0xfe, 0x74, 0x8a, 0x12, 0x52, 0x20, 0x4c, 0x65, 0x27, 0xbd, 0xc1, 0xb1, 0xeb, 0x2e, 0xb5, 0x36, 0x78, 0x15, 0x0e, 0x63, 0x59, 0x92, 0x47, 0x08, 0xd8, 0x12, };
7587 static const u8 ed25519_330_test_vectors_message[] = {
7588 	0x8e, 0x5f, 0xcc, 0xf6, 0x6b, 0x1b, 0xa6, 0x16, 0x9c, 0xb6, 0x85, 0x73, 0x3d, 0x9d, 0x0e, 0x01, 0x90, 0x36, 0x1c, 0x90, 0xbc, 0xab, 0x95, 0xc1, 0x63, 0x28, 0x5a, 0x97, 0xfe, 0x35, 0x6d, 0x2b, 0xdc, 0xde, 0x3c, 0x93, 0x80, 0x26, 0x88, 0x05, 0xa3, 0x84, 0xd0, 0x63, 0xda, 0x09, 0xcc, 0xd9, 0x96, 0x9c, 0xc3, 0xff, 0x74, 0x31, 0xe6, 0x0a, 0x8e, 0x9f, 0x86, 0x9c, 0xd6, 0x2f, 0xaa, 0x0e, 0x35, 0x61, 0x51, 0xb2, 0x80, 0xbc, 0x52, 0x6e, 0x57, 0x7c, 0x2c, 0x53, 0x8c, 0x9a, 0x72, 0x4d, 0xc4, 0x8b, 0xf8, 0x8b, 0x70, 0x32, 0x1d, 0x7e, 0x1e, 0xee, 0xdb, 0x3c, 0x4a, 0xf7, 0x06, 0x74, 0x8c, 0x94, 0x2e, 0x67, 0xbd, 0xab, 0xdb, 0x41, 0xbe, 0xc2, 0x97, 0x7b, 0x15, 0x23, 0x06, 0x9e, 0x31, 0xe2, 0x9b, 0x76, 0x30, 0x02, 0x88, 0xf8, 0x8a, 0x51, 0xb3, 0x84, 0xb8, 0x0c, 0xc2, 0x52, 0x6f, 0x16, 0x79, 0x34, 0x0d, 0xde, 0xc3, 0x88, 0x1f, 0x5c, 0xd2, 0x8b, 0x03, 0x78, 0xd9, 0xcd, 0x0a, 0x81, 0x2b, 0x68, 0xdd, 0x3f, 0x68, 0xf7, 0xa2, 0x3e, 0x1b, 0x54, 0xbe, 0xe7, 0x46, 0x6a, 0xc7, 0x65, 0xcf, 0x38, 0xdf, 0x04, 0xd6, 0x74, 0x41, 0xdf, 0xa4, 0x98, 0xc4, 0xbf, 0xfc, 0x52, 0x04, 0x5f, 0xa6, 0xd2, 0xdb, 0xcd, 0xbf, 0xa3, 0x3d, 0xfa, 0xa7, 0x76, 0x44, 0xff, 0xcc, 0xef, 0x0d, 0xec, 0xdb, 0x67, 0x90, 0xc7, 0x0a, 0x0d, 0x73, 0x4e, 0xc2, 0x87, 0xcc, 0x33, 0x8c, 0xb5, 0xa9, 0x09, 0xc0, 0x05, 0x51, 0x89, 0x30, 0x11, 0x69, 0xc4, 0xf7, 0x70, 0x2c, 0x05, 0xc0, 0x91, 0x1a, 0x27, 0xb1, 0x6e, 0xf9, 0xed, 0x93, 0x4f, 0xa6, 0xa0, 0xca, 0x7b, 0x13, 0xe4, 0x13, 0x52, 0x34, 0x22, 0x53, 0x56, 0x47, 0x96, 0x80, 0x30, 0xed, 0xc4, 0x0c, 0xd7, 0x3e, 0x7d, 0x6b, 0x34, 0x5b, 0x75, 0x81, 0xf4, 0x38, 0x31, 0x6d, 0x68, 0xe3, 0xcd, 0x29, 0x2b, 0x84, 0x6d, 0x3f, 0x4f, 0x7c, 0x48, 0x62, 0xbc, 0x7e, 0x6b, 0x3f, 0xb8, 0x9a, 0x27, 0xf6, 0xf6, 0x0c, 0xd7, 0xdb, 0x2e, 0x34, 0xec, 0x9a, 0xae, 0x10, 0x13, 0xfe, 0x37, 0xac, 0xff, 0x8a, 0xd8, 0x88, 0xcb, 0x9a, 0x59, 0x3e, 0xf5, 0xe6, 0x21, 0xea, 0xe5, 0x18, 0x6c, 0x58, 0xb3, 0x1d, 0xcf, 0xde, 0x22, 0x87, 0x0e, 0x33, 0x6d, 0x33, 0xf4, 0x40, 0xf6, 0xb8, 0xd4, 0x9a, };
7589 static const u8 ed25519_330_test_vectors_expected_sig[] = {
7590 	0xde, 0x2b, 0x46, 0xe6, 0x5f, 0x3d, 0xec, 0xef, 0x34, 0x33, 0x2e, 0x50, 0x0f, 0x2e, 0x11, 0x30, 0x6f, 0xbd, 0xcf, 0x1b, 0xe8, 0x5a, 0x1c, 0x1e, 0xe6, 0x8b, 0xa3, 0x04, 0x5d, 0xce, 0xc2, 0xc7, 0xbe, 0x60, 0x8d, 0x22, 0x92, 0x7d, 0xa1, 0xf4, 0x4c, 0x0e, 0x20, 0x83, 0xae, 0x62, 0x2c, 0xf3, 0xc2, 0x9d, 0x89, 0x38, 0x87, 0x99, 0x4e, 0xfc, 0xfa, 0x2c, 0xa5, 0x94, 0xf5, 0x05, 0x1f, 0x03, };
7591 static const ec_test_case ed25519_330_test_case = {
7592 	.name = "EDDSA25519-SHA512/wei25519 330",
7593 	.ec_str_p = &wei25519_str_params,
7594 	.priv_key = ed25519_330_test_vectors_priv_key,
7595 	.priv_key_len = sizeof(ed25519_330_test_vectors_priv_key),
7596 	.nn_random = NULL,
7597 	.hash_type = SHA512,
7598 	.msg = (const char *)ed25519_330_test_vectors_message,
7599 	.msglen = sizeof(ed25519_330_test_vectors_message),
7600 	.sig_type = EDDSA25519,
7601 	.exp_sig = ed25519_330_test_vectors_expected_sig,
7602 	.exp_siglen = sizeof(ed25519_330_test_vectors_expected_sig),
7603 	.adata = NULL,
7604 	.adata_len = 0
7605 };
7606 
7607 /************************************************/
7608 static const u8 ed25519_331_test_vectors_priv_key[] = {
7609 	0x7f, 0xf6, 0x2d, 0x4b, 0x3c, 0x4d, 0x99, 0xd3, 0x42, 0xd4, 0xbb, 0x40, 0x1d, 0x72, 0x6b, 0x21, 0xe9, 0x9f, 0x4e, 0xf5, 0x92, 0x14, 0x9f, 0xc3, 0x11, 0xb6, 0x87, 0x61, 0xf5, 0x56, 0x7f, 0xf6, };
7610 static const u8 ed25519_331_test_vectors_message[] = {
7611 	0x99, 0xc4, 0x4c, 0x79, 0x65, 0x72, 0xa4, 0x82, 0x3f, 0xc6, 0xc3, 0x80, 0x77, 0x30, 0x83, 0x91, 0x73, 0x77, 0x4c, 0x05, 0xdb, 0xfc, 0x14, 0x92, 0xed, 0x0d, 0x00, 0x50, 0x9a, 0x95, 0xa1, 0xde, 0x37, 0x27, 0x4b, 0x31, 0x35, 0xed, 0x04, 0x56, 0xa1, 0x71, 0x8e, 0x57, 0x65, 0x97, 0xdc, 0x13, 0xf2, 0xa2, 0xab, 0x37, 0xa4, 0x5c, 0x06, 0xcb, 0xb4, 0xa2, 0xd2, 0x2a, 0xfa, 0xd4, 0xd5, 0xf3, 0xd9, 0x0a, 0xb3, 0xd8, 0xda, 0x4d, 0xcd, 0xaa, 0x06, 0xd4, 0x4f, 0x22, 0x19, 0x08, 0x84, 0x01, 0xc5, 0xdc, 0xee, 0xe2, 0x60, 0x55, 0xc4, 0x78, 0x2f, 0x78, 0xd7, 0xd6, 0x3a, 0x38, 0x06, 0x08, 0xe1, 0xbe, 0xf8, 0x9e, 0xee, 0xf3, 0x38, 0xc2, 0xf0, 0x89, 0x7d, 0xa1, 0x06, 0xfa, 0xfc, 0xe2, 0xfb, 0x2e, 0xbc, 0x5d, 0xb6, 0x69, 0xc7, 0xc1, 0x72, 0xc9, 0xcf, 0xe7, 0x7d, 0x31, 0x09, 0xd2, 0x39, 0xfe, 0x5d, 0x00, 0x5c, 0x8e, 0xe7, 0x51, 0x51, 0x1b, 0x5a, 0x88, 0x31, 0x7c, 0x72, 0x9b, 0x0d, 0x8b, 0x70, 0xb5, 0x2f, 0x6b, 0xd3, 0xcd, 0xa2, 0xfe, 0x86, 0x5c, 0x77, 0xf3, 0x6e, 0x4f, 0x1b, 0x63, 0x5f, 0x33, 0x6e, 0x03, 0x6b, 0xd7, 0x18, 0xbe, 0xc9, 0x0e, 0xe7, 0x8a, 0x80, 0x28, 0x11, 0x51, 0x0c, 0x40, 0x58, 0xc1, 0xba, 0x36, 0x40, 0x17, 0x25, 0x3a, 0xa8, 0x42, 0x92, 0x2e, 0x1d, 0xd7, 0xd7, 0xa0, 0xf0, 0xfc, 0x9c, 0x69, 0xe4, 0x3f, 0xc4, 0xea, 0xef, 0xfa, 0xaf, 0x1a, 0xe5, 0xfa, 0x5d, 0x2d, 0x73, 0xb4, 0x30, 0x79, 0x61, 0x7b, 0xab, 0xa0, 0x30, 0x92, 0x3f, 0xe5, 0xb1, 0x3d, 0x2c, 0x1c, 0x4f, 0xe6, 0xfa, 0xc3, 0xf2, 0xdb, 0x74, 0xe2, 0x02, 0x0a, 0x73, 0x4b, 0x61, 0x21, 0xa0, 0x30, 0x2f, 0xce, 0x82, 0x0b, 0xa0, 0x58, 0x0c, 0xe6, 0x13, 0x53, 0x48, 0xfd, 0xf0, 0x63, 0x2e, 0x00, 0x08, 0xdf, 0x03, 0xee, 0x11, 0x21, 0x68, 0xf5, 0xcf, 0xa0, 0x03, 0x7a, 0x26, 0xa1, 0xf6, 0x9b, 0x1f, 0x13, 0x17, 0xed, 0xf2, 0xa3, 0xab, 0x36, 0x74, 0x55, 0xa7, 0x7e, 0x00, 0x69, 0x12, 0x15, 0xd7, 0xaa, 0x31, 0x33, 0xc2, 0x15, 0x9d, 0x3d, 0xa2, 0xb1, 0x34, 0xcf, 0x04, 0xf0, 0xde, 0xfb, 0xf0, 0x7a, 0x60, 0x64, 0x01, 0x1e, 0x64, 0xdd, 0x14, 0xd4, 0xf8, 0xf0, 0x64, 0x35, 0x66, 0x55, 0x42, 0x88, 0x04, 0xc2, 0x77, 0x1a, };
7612 static const u8 ed25519_331_test_vectors_expected_sig[] = {
7613 	0x05, 0x8f, 0x79, 0x92, 0x7f, 0xbf, 0x61, 0x78, 0x72, 0x48, 0x15, 0xc7, 0xb1, 0x1c, 0x63, 0xba, 0xaa, 0x90, 0xbc, 0xc1, 0x5d, 0x72, 0x72, 0xbe, 0x08, 0x2f, 0x8a, 0x91, 0x41, 0x86, 0x1c, 0x81, 0x64, 0x33, 0x05, 0x5f, 0x6c, 0xf6, 0x49, 0x14, 0x24, 0x85, 0x3f, 0x9e, 0xc7, 0x8b, 0xb9, 0x1a, 0xce, 0x91, 0x3a, 0x93, 0x41, 0x1b, 0x4e, 0x5e, 0xd5, 0x8b, 0xc4, 0xba, 0x57, 0x15, 0xc6, 0x0a, };
7614 static const ec_test_case ed25519_331_test_case = {
7615 	.name = "EDDSA25519-SHA512/wei25519 331",
7616 	.ec_str_p = &wei25519_str_params,
7617 	.priv_key = ed25519_331_test_vectors_priv_key,
7618 	.priv_key_len = sizeof(ed25519_331_test_vectors_priv_key),
7619 	.nn_random = NULL,
7620 	.hash_type = SHA512,
7621 	.msg = (const char *)ed25519_331_test_vectors_message,
7622 	.msglen = sizeof(ed25519_331_test_vectors_message),
7623 	.sig_type = EDDSA25519,
7624 	.exp_sig = ed25519_331_test_vectors_expected_sig,
7625 	.exp_siglen = sizeof(ed25519_331_test_vectors_expected_sig),
7626 	.adata = NULL,
7627 	.adata_len = 0
7628 };
7629 
7630 /************************************************/
7631 static const u8 ed25519_332_test_vectors_priv_key[] = {
7632 	0x6c, 0xab, 0xad, 0xd0, 0x3f, 0x8a, 0x2e, 0x6e, 0xba, 0xb9, 0x6a, 0x74, 0xf8, 0x0e, 0x18, 0x16, 0x4e, 0x4d, 0x1b, 0x6b, 0xaa, 0x67, 0x8f, 0x5a, 0x82, 0xe2, 0x56, 0x04, 0xaf, 0x98, 0x9a, 0xaf, };
7633 static const u8 ed25519_332_test_vectors_message[] = {
7634 	0x27, 0x9f, 0x78, 0xcf, 0x3b, 0x9c, 0xcf, 0xc6, 0xe1, 0xb0, 0x1e, 0x1a, 0x82, 0xf5, 0x0e, 0xd1, 0x72, 0xe9, 0xa8, 0xe1, 0xe7, 0x02, 0xbb, 0x15, 0x66, 0x1d, 0xd7, 0xdc, 0x3a, 0x45, 0x6f, 0xf7, 0xa7, 0xa7, 0xfd, 0xfb, 0x08, 0x1d, 0xb3, 0x86, 0x70, 0x79, 0x63, 0x0c, 0x7f, 0x70, 0xfd, 0x75, 0x32, 0x92, 0xec, 0x60, 0xec, 0xbf, 0x50, 0x63, 0x2e, 0x9a, 0xa4, 0x5b, 0x99, 0x65, 0x05, 0xc6, 0x6e, 0x6d, 0xc3, 0xc6, 0xae, 0x89, 0x2e, 0x21, 0xb6, 0xa8, 0x70, 0x5e, 0x4b, 0xba, 0xe8, 0xf1, 0x6a, 0x33, 0x78, 0x55, 0x4b, 0x31, 0xfd, 0xb0, 0x13, 0x9d, 0xcd, 0x15, 0xc9, 0x6a, 0x8a, 0x7e, 0x4b, 0x88, 0x75, 0x6a, 0x86, 0xd1, 0x8d, 0xb5, 0xdc, 0x74, 0xfd, 0x76, 0x91, 0x19, 0x7d, 0xd8, 0x8e, 0x2c, 0x7d, 0x5d, 0xf5, 0x2b, 0x04, 0x93, 0x44, 0xcd, 0xc4, 0x77, 0xc9, 0xcd, 0x7e, 0x89, 0xed, 0xa9, 0x9c, 0xcf, 0xb1, 0xd0, 0x08, 0x14, 0xd0, 0x15, 0x2b, 0x96, 0x54, 0xdf, 0x32, 0x79, 0x37, 0x2c, 0xa5, 0xf1, 0x8b, 0x1c, 0x94, 0x6f, 0x28, 0x94, 0xa7, 0x6b, 0x07, 0x9d, 0xdb, 0x1c, 0x3c, 0xd6, 0x1f, 0xbb, 0x96, 0x9a, 0xee, 0xc9, 0x19, 0x3a, 0x6b, 0x88, 0xfb, 0x7d, 0x13, 0x6c, 0x07, 0xf9, 0x82, 0x1e, 0x5c, 0x10, 0x74, 0xb4, 0xe9, 0x3b, 0xca, 0xf6, 0xfa, 0x14, 0xd0, 0xd1, 0xd7, 0xe1, 0x70, 0x75, 0x89, 0xd7, 0x7e, 0xc1, 0x33, 0x72, 0x06, 0xe5, 0x3a, 0x1f, 0x06, 0xcc, 0x26, 0x67, 0x2f, 0xf9, 0x5c, 0x13, 0xd5, 0xff, 0x44, 0x47, 0x66, 0x93, 0x1b, 0xa3, 0x0a, 0x0a, 0xfd, 0xcd, 0xad, 0xd2, 0x09, 0x8e, 0x9c, 0x41, 0xfd, 0x87, 0xa3, 0xf2, 0x3c, 0xd1, 0x6d, 0xbb, 0x0e, 0xfb, 0xf8, 0x09, 0x2c, 0xe3, 0x3e, 0x32, 0x7f, 0x42, 0x61, 0x09, 0x90, 0xe1, 0xce, 0xe6, 0xcb, 0x8e, 0x54, 0x95, 0x1a, 0xa0, 0x81, 0xe6, 0x97, 0x65, 0xae, 0x40, 0x09, 0xae, 0xed, 0x75, 0x8e, 0x76, 0x8d, 0xe5, 0x0c, 0x23, 0xd9, 0xa2, 0x2b, 0x4a, 0x06, 0xdc, 0x4d, 0x19, 0xfc, 0x8c, 0xbd, 0x0c, 0xde, 0xf4, 0xc9, 0x83, 0x46, 0x17, 0x55, 0xd0, 0xa3, 0xb5, 0xd6, 0xa9, 0xc1, 0x22, 0x53, 0xe0, 0x95, 0x68, 0x33, 0x9f, 0xf7, 0xe5, 0xf7, 0x8c, 0x5f, 0xdf, 0x7e, 0xc8, 0x9f, 0x91, 0x86, 0xa6, 0x21, 0xa8, 0xc0, 0xee, 0xd1, 0x1b, 0x67, 0x02, 0x2e, };
7635 static const u8 ed25519_332_test_vectors_expected_sig[] = {
7636 	0x4e, 0x65, 0xc6, 0xc1, 0xd4, 0x93, 0x04, 0x5e, 0x8a, 0x92, 0x50, 0xe3, 0x97, 0xc1, 0xd1, 0xd3, 0x0f, 0xfe, 0xd2, 0x4d, 0xb6, 0x6a, 0x89, 0x61, 0xaa, 0x45, 0x8f, 0x8f, 0x0f, 0xcb, 0x76, 0x0c, 0x39, 0xfe, 0x86, 0x57, 0xd7, 0xab, 0x8f, 0x84, 0x00, 0x0b, 0x96, 0xd5, 0x19, 0x71, 0x7c, 0xff, 0x71, 0xf9, 0x26, 0x52, 0x2c, 0x1e, 0xfe, 0xc7, 0xf8, 0xb2, 0x62, 0x4e, 0xae, 0x55, 0xf6, 0x0c, };
7637 static const ec_test_case ed25519_332_test_case = {
7638 	.name = "EDDSA25519-SHA512/wei25519 332",
7639 	.ec_str_p = &wei25519_str_params,
7640 	.priv_key = ed25519_332_test_vectors_priv_key,
7641 	.priv_key_len = sizeof(ed25519_332_test_vectors_priv_key),
7642 	.nn_random = NULL,
7643 	.hash_type = SHA512,
7644 	.msg = (const char *)ed25519_332_test_vectors_message,
7645 	.msglen = sizeof(ed25519_332_test_vectors_message),
7646 	.sig_type = EDDSA25519,
7647 	.exp_sig = ed25519_332_test_vectors_expected_sig,
7648 	.exp_siglen = sizeof(ed25519_332_test_vectors_expected_sig),
7649 	.adata = NULL,
7650 	.adata_len = 0
7651 };
7652 
7653 /************************************************/
7654 static const u8 ed25519_333_test_vectors_priv_key[] = {
7655 	0x0f, 0xa0, 0xc3, 0x2c, 0x3a, 0xe3, 0x4b, 0xe5, 0x1b, 0x92, 0xf9, 0x19, 0x45, 0x40, 0x59, 0x81, 0xa8, 0xe2, 0x02, 0x48, 0x85, 0x58, 0xa8, 0xe2, 0x20, 0xc2, 0x88, 0xc7, 0xd6, 0xa5, 0x53, 0x2d, };
7656 static const u8 ed25519_333_test_vectors_message[] = {
7657 	0x53, 0xf4, 0x4b, 0xe0, 0xe5, 0x99, 0x7f, 0xf0, 0x72, 0x64, 0xcb, 0x64, 0xba, 0x13, 0x59, 0xe2, 0x80, 0x1d, 0xef, 0x87, 0x55, 0xe6, 0x4a, 0x23, 0x62, 0xbd, 0xda, 0xf5, 0x97, 0xe6, 0x72, 0xd0, 0x21, 0xd3, 0x4f, 0xfa, 0xce, 0x6d, 0x97, 0xe0, 0xf2, 0xb1, 0xf6, 0xae, 0x62, 0x5f, 0xd3, 0x3d, 0x3c, 0x4f, 0x6e, 0x9f, 0xf7, 0xd0, 0xc7, 0x3f, 0x1d, 0xa8, 0xde, 0xfb, 0x23, 0xf3, 0x24, 0x97, 0x5e, 0x92, 0x1b, 0xb2, 0x47, 0x32, 0x58, 0x17, 0x7a, 0x16, 0x61, 0x25, 0x67, 0xed, 0xf7, 0xd5, 0x76, 0x0f, 0x3f, 0x3e, 0x3a, 0x6d, 0x26, 0xaa, 0xab, 0xc5, 0xfd, 0xe4, 0xe2, 0x04, 0x3f, 0x73, 0xfa, 0x70, 0xf1, 0x28, 0x02, 0x09, 0x33, 0xb1, 0xba, 0x3b, 0x6b, 0xd6, 0x94, 0x98, 0xe9, 0x50, 0x3e, 0xa6, 0x70, 0xf1, 0xed, 0x88, 0x0d, 0x36, 0x51, 0xf2, 0xe4, 0xc5, 0x9e, 0x79, 0xca, 0xbc, 0x86, 0xe9, 0xb7, 0x03, 0x39, 0x42, 0x94, 0x11, 0x2d, 0x5d, 0x8e, 0x21, 0x3c, 0x31, 0x74, 0x23, 0xb5, 0x25, 0xa6, 0xdf, 0x70, 0x10, 0x6a, 0x9d, 0x65, 0x8a, 0x26, 0x20, 0x28, 0xb5, 0xf4, 0x51, 0x00, 0xcb, 0x77, 0xd1, 0x15, 0x0d, 0x8f, 0xe4, 0x61, 0xee, 0xd4, 0x34, 0xf2, 0x41, 0x01, 0x5f, 0x32, 0x76, 0xad, 0x7b, 0x09, 0xa2, 0x91, 0xb4, 0xa7, 0xf3, 0x5e, 0x3c, 0x30, 0x05, 0x1c, 0xbf, 0x13, 0xb1, 0xd4, 0xa7, 0xfa, 0x0c, 0x81, 0xa5, 0x0f, 0x93, 0x9e, 0x7c, 0x49, 0x67, 0x3a, 0xfd, 0xc8, 0x78, 0x83, 0xc9, 0xe3, 0xe6, 0x1f, 0x5a, 0x1d, 0xf0, 0x37, 0x55, 0x47, 0x0f, 0xda, 0x74, 0xbf, 0x23, 0xea, 0x88, 0x67, 0x6b, 0x25, 0x8a, 0x97, 0xa2, 0x80, 0xd5, 0xf9, 0x0b, 0x52, 0xb7, 0x14, 0xb5, 0x96, 0x03, 0x5b, 0xae, 0x08, 0xc8, 0xd0, 0xfe, 0x6d, 0x94, 0xf8, 0x94, 0x95, 0x59, 0xb1, 0xf2, 0x7d, 0x71, 0x16, 0xcf, 0x59, 0xdd, 0x3c, 0xfb, 0xf1, 0x82, 0x02, 0xa0, 0x9c, 0x13, 0xf5, 0xc4, 0xfb, 0xc8, 0xd9, 0x72, 0x25, 0x49, 0x28, 0x87, 0xd3, 0x28, 0x70, 0xc2, 0x29, 0x7e, 0x34, 0xde, 0xbd, 0x98, 0x76, 0xd6, 0xd0, 0x1a, 0xc2, 0x7a, 0x16, 0xb0, 0x88, 0xb0, 0x79, 0x07, 0x9f, 0x2b, 0x20, 0xfe, 0xb0, 0x25, 0x37, 0xcd, 0xa3, 0x14, 0xc4, 0x3c, 0xb2, 0xdc, 0xa3, 0x71, 0xb9, 0xdf, 0x37, 0xed, 0x11, 0xec, 0x97, 0xe1, 0xa7, 0xa6, 0x99, 0x3a, };
7658 static const u8 ed25519_333_test_vectors_expected_sig[] = {
7659 	0x7e, 0x9a, 0xb8, 0x5e, 0xe9, 0x4f, 0xe4, 0xb3, 0x5d, 0xcb, 0x54, 0x53, 0x29, 0xa0, 0xef, 0x25, 0x92, 0x3d, 0xe5, 0xc9, 0xdc, 0x23, 0xe7, 0xdf, 0x1a, 0x7e, 0x77, 0xab, 0x0d, 0xcf, 0xb8, 0x9e, 0x03, 0xf4, 0xe7, 0x85, 0xca, 0x64, 0x29, 0xcb, 0x2b, 0x0d, 0xf5, 0x0d, 0xa6, 0x23, 0x0f, 0x73, 0x3f, 0x00, 0xf3, 0x3a, 0x45, 0xc4, 0xe5, 0x76, 0xcd, 0x40, 0xbd, 0xb8, 0x4f, 0x1a, 0xe0, 0x01, };
7660 static const ec_test_case ed25519_333_test_case = {
7661 	.name = "EDDSA25519-SHA512/wei25519 333",
7662 	.ec_str_p = &wei25519_str_params,
7663 	.priv_key = ed25519_333_test_vectors_priv_key,
7664 	.priv_key_len = sizeof(ed25519_333_test_vectors_priv_key),
7665 	.nn_random = NULL,
7666 	.hash_type = SHA512,
7667 	.msg = (const char *)ed25519_333_test_vectors_message,
7668 	.msglen = sizeof(ed25519_333_test_vectors_message),
7669 	.sig_type = EDDSA25519,
7670 	.exp_sig = ed25519_333_test_vectors_expected_sig,
7671 	.exp_siglen = sizeof(ed25519_333_test_vectors_expected_sig),
7672 	.adata = NULL,
7673 	.adata_len = 0
7674 };
7675 
7676 /************************************************/
7677 static const u8 ed25519_334_test_vectors_priv_key[] = {
7678 	0x7b, 0x06, 0xf8, 0x80, 0x26, 0xfa, 0x86, 0xf3, 0x9f, 0xce, 0x24, 0x26, 0xf6, 0x7c, 0xc5, 0x99, 0x6b, 0xed, 0xd0, 0xcf, 0xc4, 0xb5, 0xeb, 0xb1, 0xb5, 0xe3, 0xed, 0xbb, 0x47, 0xe0, 0x80, 0xaa, };
7679 static const u8 ed25519_334_test_vectors_message[] = {
7680 	0x71, 0x17, 0x5d, 0x4e, 0x21, 0x72, 0x12, 0x97, 0xd9, 0x17, 0x6d, 0x81, 0x7f, 0x4e, 0x78, 0x5d, 0x96, 0x00, 0xd9, 0x23, 0xf9, 0x87, 0xfe, 0x0b, 0x26, 0xfd, 0x79, 0xd3, 0x3a, 0x5e, 0xa5, 0xd1, 0xe8, 0x18, 0xb7, 0x1f, 0x0f, 0x92, 0xb8, 0xc7, 0x3a, 0xfd, 0xda, 0xbd, 0xcc, 0x27, 0xf6, 0xd1, 0x6e, 0x26, 0xaa, 0xfa, 0x87, 0x4c, 0xfd, 0x77, 0xa0, 0x0e, 0x06, 0xc3, 0x6b, 0x04, 0x14, 0x87, 0x58, 0x2b, 0xb9, 0x33, 0x76, 0x0f, 0x88, 0xb4, 0x19, 0x12, 0x73, 0x45, 0x77, 0x6e, 0xa4, 0x18, 0xf8, 0x35, 0x22, 0x25, 0x4f, 0xed, 0x33, 0x81, 0x9b, 0xc5, 0xc9, 0x5f, 0x8f, 0x84, 0x04, 0xcc, 0x14, 0x4e, 0xbf, 0x14, 0x86, 0xc8, 0x85, 0x15, 0x40, 0x9d, 0x34, 0x33, 0xaa, 0xf5, 0x19, 0xd9, 0x92, 0x0f, 0x52, 0x56, 0xe6, 0x29, 0x41, 0x9e, 0x9a, 0x95, 0x58, 0x0a, 0x35, 0xb0, 0x69, 0xb8, 0xd2, 0x55, 0x33, 0xdf, 0xcb, 0xc9, 0x8a, 0xd3, 0x64, 0x04, 0xa9, 0x51, 0x80, 0x8e, 0x01, 0x37, 0x8c, 0x03, 0x26, 0x63, 0x26, 0xd1, 0x20, 0x04, 0x69, 0x75, 0xfd, 0xe0, 0x7d, 0xae, 0xf3, 0x26, 0x6c, 0xaa, 0xcd, 0x82, 0x1c, 0x14, 0x03, 0x49, 0x9d, 0x7f, 0xdf, 0x17, 0xc0, 0x33, 0xc8, 0xd8, 0xc3, 0xf2, 0x8f, 0x16, 0x2b, 0x5f, 0x09, 0xdf, 0xda, 0xca, 0x06, 0x28, 0x5f, 0x00, 0xc6, 0xcb, 0x98, 0x6d, 0xfd, 0xf5, 0x15, 0x1a, 0xa6, 0x63, 0x96, 0x08, 0xb5, 0xb1, 0x3e, 0x78, 0xd6, 0x5a, 0x43, 0x68, 0x58, 0x5b, 0x16, 0x13, 0x87, 0x54, 0xfb, 0xd1, 0x13, 0x83, 0x5a, 0x68, 0x6c, 0xd0, 0x66, 0xc2, 0xb8, 0x9b, 0xb0, 0x95, 0x3c, 0x24, 0xd5, 0x0e, 0x77, 0xbf, 0x0f, 0xc4, 0x57, 0xc1, 0xe0, 0xfc, 0xf5, 0xd4, 0x4d, 0xa8, 0xdb, 0x9a, 0x88, 0xf0, 0x62, 0xbe, 0x3b, 0x68, 0x8d, 0x5c, 0xdc, 0xff, 0x1d, 0x1c, 0x00, 0xe8, 0x1e, 0xc9, 0xd4, 0x13, 0x88, 0x22, 0x95, 0xb3, 0x41, 0xfe, 0xe8, 0xfa, 0x42, 0x7d, 0xc1, 0x09, 0xad, 0xeb, 0x5f, 0x28, 0x4e, 0xec, 0x20, 0x2f, 0x1b, 0xef, 0x11, 0x5b, 0xf9, 0x6b, 0x17, 0x82, 0xd3, 0xcc, 0xde, 0xb6, 0x82, 0xb6, 0x9b, 0xf9, 0x2d, 0x17, 0x0c, 0x00, 0x7d, 0x5d, 0xf8, 0x0e, 0x1e, 0xd9, 0x62, 0xf6, 0x77, 0xdc, 0x24, 0xa1, 0x45, 0xa1, 0xe4, 0xe8, 0x29, 0xe8, 0xde, 0xc0, 0x10, 0x4e, 0x5f, 0x78, 0x36, 0x59, 0x44, };
7681 static const u8 ed25519_334_test_vectors_expected_sig[] = {
7682 	0x42, 0xf1, 0x33, 0xe3, 0x4e, 0x3e, 0xb7, 0x03, 0x2a, 0x13, 0x3e, 0xd7, 0x81, 0x53, 0x7e, 0xc6, 0x2e, 0x44, 0xa5, 0xce, 0x83, 0x81, 0xe5, 0xe0, 0xbf, 0x9e, 0x13, 0xa9, 0x14, 0xa4, 0xb2, 0xc7, 0x57, 0x81, 0x1d, 0x6d, 0x3b, 0x1e, 0x86, 0x67, 0x24, 0x24, 0xea, 0x42, 0x30, 0xd1, 0x0f, 0x7c, 0x61, 0x0a, 0xbb, 0x70, 0x69, 0xe6, 0x1e, 0x31, 0x9b, 0x40, 0x66, 0xa2, 0xbd, 0x7b, 0xc9, 0x00, };
7683 static const ec_test_case ed25519_334_test_case = {
7684 	.name = "EDDSA25519-SHA512/wei25519 334",
7685 	.ec_str_p = &wei25519_str_params,
7686 	.priv_key = ed25519_334_test_vectors_priv_key,
7687 	.priv_key_len = sizeof(ed25519_334_test_vectors_priv_key),
7688 	.nn_random = NULL,
7689 	.hash_type = SHA512,
7690 	.msg = (const char *)ed25519_334_test_vectors_message,
7691 	.msglen = sizeof(ed25519_334_test_vectors_message),
7692 	.sig_type = EDDSA25519,
7693 	.exp_sig = ed25519_334_test_vectors_expected_sig,
7694 	.exp_siglen = sizeof(ed25519_334_test_vectors_expected_sig),
7695 	.adata = NULL,
7696 	.adata_len = 0
7697 };
7698 
7699 /************************************************/
7700 static const u8 ed25519_335_test_vectors_priv_key[] = {
7701 	0xc3, 0xf5, 0xe1, 0x49, 0x96, 0x8a, 0x24, 0xf4, 0xde, 0x91, 0x19, 0x53, 0x19, 0x75, 0xf4, 0x43, 0x01, 0x5c, 0xcc, 0xa3, 0x05, 0xd7, 0x11, 0x9e, 0xd4, 0x74, 0x9e, 0x8b, 0xf6, 0xd9, 0x4f, 0xc7, };
7702 static const u8 ed25519_335_test_vectors_message[] = {
7703 	0xc4, 0x63, 0x70, 0xe3, 0x7f, 0x2e, 0x0c, 0xad, 0xcf, 0x93, 0x40, 0x2f, 0x1f, 0x0c, 0xb0, 0x48, 0xf5, 0x28, 0x81, 0xba, 0x75, 0x0b, 0x7a, 0x43, 0xf5, 0x6a, 0xb1, 0x1c, 0xe3, 0x48, 0x73, 0x2f, 0xb5, 0x7e, 0x7f, 0x9a, 0xaf, 0x8d, 0xfc, 0xbe, 0x45, 0x5e, 0x14, 0xe9, 0x83, 0xc2, 0x48, 0xd0, 0x26, 0xa2, 0x7e, 0x7f, 0x14, 0x8d, 0x5d, 0xb5, 0xa5, 0x3f, 0x94, 0x63, 0x57, 0x02, 0xb8, 0x95, 0x12, 0x77, 0x71, 0x04, 0x7a, 0x87, 0x6d, 0x14, 0x10, 0x73, 0x86, 0xc5, 0xe0, 0xff, 0x89, 0x33, 0x34, 0x5b, 0xbd, 0x7a, 0x93, 0x6d, 0x99, 0x0d, 0x33, 0xef, 0xa2, 0x8c, 0x2e, 0xc4, 0xe4, 0x86, 0x4f, 0xfd, 0x2f, 0xf5, 0x76, 0xf7, 0xc8, 0x8f, 0x95, 0x4c, 0xfc, 0x1c, 0x45, 0x9e, 0x88, 0x3b, 0xb7, 0x12, 0xda, 0xe3, 0xcd, 0xf6, 0x63, 0x20, 0x66, 0xf1, 0xf4, 0xd1, 0x3a, 0x50, 0x96, 0x15, 0xb3, 0x36, 0x0c, 0xad, 0xc5, 0xa3, 0x07, 0xf2, 0x3e, 0x52, 0xa5, 0x1b, 0x40, 0xa6, 0xfe, 0xeb, 0xe0, 0xb1, 0x8d, 0x0e, 0x9e, 0xe4, 0xe3, 0x48, 0xf3, 0x3c, 0xd8, 0x1a, 0x8d, 0xef, 0x22, 0x2f, 0x6a, 0x59, 0xb1, 0x28, 0x61, 0xd3, 0x35, 0xbd, 0x9a, 0xf8, 0x5c, 0xc0, 0x04, 0xbe, 0x46, 0xf1, 0xd3, 0xa4, 0x24, 0xf4, 0x87, 0x0a, 0xe9, 0xdc, 0x58, 0x7e, 0x5a, 0x4a, 0xde, 0x13, 0x6b, 0x93, 0x70, 0x64, 0x93, 0x48, 0xc3, 0x3a, 0xc3, 0xbf, 0x1f, 0xeb, 0xee, 0xbf, 0xfe, 0xa3, 0x70, 0x85, 0xed, 0x59, 0xca, 0xc9, 0xd9, 0xe6, 0x96, 0x47, 0x0b, 0x23, 0x46, 0x09, 0xe9, 0xa1, 0x0a, 0x9d, 0x43, 0x1f, 0xf9, 0x1e, 0x69, 0xcb, 0x51, 0x35, 0xfd, 0x11, 0x7f, 0xf5, 0x8a, 0x36, 0x53, 0x97, 0x44, 0xeb, 0xe7, 0x0c, 0xea, 0x69, 0x73, 0xc0, 0x0c, 0x7a, 0x4d, 0x57, 0xb6, 0x2f, 0x4a, 0x71, 0x36, 0xd7, 0x31, 0xb8, 0xe4, 0x6f, 0xf1, 0x8e, 0xc0, 0xed, 0x69, 0x07, 0x00, 0x31, 0x90, 0x50, 0x75, 0xd8, 0x54, 0x1d, 0x56, 0x8c, 0xfc, 0xe6, 0xee, 0xb7, 0x62, 0x42, 0xb7, 0x81, 0x9a, 0x7b, 0x6a, 0x93, 0x55, 0x21, 0x11, 0xbb, 0x88, 0xf1, 0x65, 0x52, 0x7c, 0xfa, 0x69, 0x66, 0xd3, 0x9f, 0xcb, 0xe0, 0xa7, 0xde, 0xa0, 0x08, 0xe3, 0x9c, 0x7a, 0x3e, 0x57, 0x7a, 0xb3, 0x07, 0xcd, 0x1d, 0x0e, 0xa3, 0x26, 0x83, 0x3d, 0x52, 0x65, 0x4e, 0x17, 0x29, 0x55, 0xf3, 0xfc, 0xd4, };
7704 static const u8 ed25519_335_test_vectors_expected_sig[] = {
7705 	0x5f, 0xa2, 0xb5, 0x31, 0x67, 0x7b, 0x00, 0xb8, 0x5b, 0x0a, 0x31, 0x3c, 0xbd, 0x47, 0x9f, 0x55, 0xf4, 0xab, 0x3e, 0xc5, 0xcf, 0xce, 0x5e, 0x45, 0x4d, 0x2b, 0x74, 0x17, 0x6c, 0xcc, 0x33, 0x99, 0xc8, 0x99, 0xf9, 0xd6, 0xb5, 0x1e, 0xd4, 0xc1, 0xe7, 0x61, 0x85, 0xac, 0x9f, 0xe7, 0x30, 0xc4, 0xb4, 0x01, 0x40, 0x44, 0xf7, 0x04, 0x11, 0x85, 0xbc, 0x3c, 0x85, 0x72, 0x2e, 0xb2, 0xea, 0x02, };
7706 static const ec_test_case ed25519_335_test_case = {
7707 	.name = "EDDSA25519-SHA512/wei25519 335",
7708 	.ec_str_p = &wei25519_str_params,
7709 	.priv_key = ed25519_335_test_vectors_priv_key,
7710 	.priv_key_len = sizeof(ed25519_335_test_vectors_priv_key),
7711 	.nn_random = NULL,
7712 	.hash_type = SHA512,
7713 	.msg = (const char *)ed25519_335_test_vectors_message,
7714 	.msglen = sizeof(ed25519_335_test_vectors_message),
7715 	.sig_type = EDDSA25519,
7716 	.exp_sig = ed25519_335_test_vectors_expected_sig,
7717 	.exp_siglen = sizeof(ed25519_335_test_vectors_expected_sig),
7718 	.adata = NULL,
7719 	.adata_len = 0
7720 };
7721 
7722 /************************************************/
7723 static const u8 ed25519_336_test_vectors_priv_key[] = {
7724 	0x42, 0x30, 0x5c, 0x93, 0x02, 0xf4, 0x5e, 0xa6, 0xf8, 0x7e, 0x26, 0xe2, 0x20, 0x8f, 0xd9, 0x4b, 0x3c, 0x4a, 0xd0, 0x37, 0xb1, 0xb6, 0xc8, 0x3c, 0xf6, 0x67, 0x7a, 0xa1, 0x09, 0x6a, 0x01, 0x3c, };
7725 static const u8 ed25519_336_test_vectors_message[] = {
7726 	0xd1, 0x10, 0x82, 0x8d, 0x44, 0x91, 0x98, 0xd6, 0x75, 0xe7, 0x4e, 0x8e, 0x39, 0x43, 0x9f, 0xd1, 0x5e, 0x75, 0xbf, 0x2c, 0xc1, 0xf4, 0x30, 0xab, 0xfb, 0x24, 0x58, 0x36, 0x88, 0x5b, 0xaf, 0xc4, 0x20, 0xf7, 0x54, 0xb8, 0x9d, 0x2f, 0xbb, 0xf6, 0xdd, 0x34, 0x90, 0x79, 0x2e, 0x7a, 0x4f, 0x76, 0x60, 0x73, 0xcf, 0xe3, 0xb3, 0x02, 0xd0, 0x89, 0x83, 0x1a, 0xce, 0x86, 0x9e, 0x27, 0x30, 0xfd, 0xe4, 0x5c, 0x21, 0x21, 0xec, 0x3e, 0xf2, 0x17, 0xaa, 0x9c, 0x43, 0xfa, 0x7c, 0xc7, 0xe9, 0xed, 0x0a, 0x01, 0xad, 0x9f, 0x1d, 0x2f, 0xc3, 0x61, 0x36, 0x38, 0xca, 0x9f, 0xc1, 0x93, 0xc9, 0x8b, 0x37, 0x45, 0x5b, 0xf5, 0xdb, 0xf8, 0xf3, 0x8b, 0x64, 0x70, 0x8d, 0xfd, 0xca, 0x6c, 0x21, 0xf0, 0x97, 0x5f, 0x10, 0x17, 0xc5, 0xda, 0x5f, 0x64, 0x34, 0xbd, 0xa9, 0xf0, 0x33, 0xce, 0xc2, 0xa6, 0x31, 0xab, 0x50, 0x31, 0x8e, 0x01, 0x7b, 0x17, 0x0b, 0x24, 0x0b, 0xf0, 0x1e, 0xb8, 0xb3, 0x6c, 0x7e, 0x1c, 0xb5, 0x9e, 0x77, 0x36, 0xac, 0x34, 0x44, 0x42, 0x08, 0x13, 0x2a, 0x8f, 0x59, 0xe4, 0xf3, 0x13, 0xd6, 0x5d, 0x84, 0x9c, 0x6a, 0x4f, 0xdf, 0x13, 0xe2, 0x0e, 0xca, 0xee, 0x38, 0x23, 0xe5, 0x89, 0xa1, 0x71, 0xb3, 0x9b, 0x24, 0x89, 0x49, 0x7b, 0x06, 0xe6, 0xff, 0x58, 0xc2, 0xc9, 0xf1, 0xdc, 0x5d, 0x3a, 0xa3, 0xbd, 0x10, 0xe6, 0x44, 0x3e, 0x22, 0xd4, 0x2d, 0x07, 0xb7, 0x83, 0xf7, 0x9f, 0xd4, 0x3a, 0x46, 0xe1, 0xcd, 0xe3, 0x14, 0xb6, 0x63, 0xa9, 0x5f, 0x72, 0x46, 0xde, 0xa1, 0x31, 0xfc, 0xd4, 0x6d, 0x1d, 0xc3, 0x33, 0xc5, 0x45, 0x4f, 0x86, 0xb2, 0xc4, 0xe2, 0xe4, 0x24, 0xde, 0xa4, 0x05, 0xcc, 0x22, 0x30, 0xd4, 0xdc, 0xd3, 0x9a, 0x2e, 0xab, 0x2f, 0x92, 0x84, 0x5c, 0xf6, 0xa7, 0x99, 0x41, 0x92, 0x06, 0x3f, 0x12, 0x02, 0x74, 0x9e, 0xf5, 0x2d, 0xcb, 0x96, 0xf2, 0xb7, 0x9e, 0xd6, 0xa9, 0x81, 0x18, 0xca, 0x0b, 0x99, 0xba, 0x22, 0x85, 0x49, 0x08, 0x60, 0xeb, 0x4c, 0x61, 0xab, 0x78, 0xb9, 0xdd, 0xc6, 0xac, 0xc7, 0xad, 0x88, 0x3f, 0xa5, 0xe9, 0x6f, 0x9d, 0x02, 0x91, 0x71, 0x22, 0x3a, 0xbf, 0x75, 0x73, 0xe3, 0x62, 0x30, 0xe0, 0xa8, 0x1f, 0x6c, 0x13, 0x11, 0x15, 0x14, 0x73, 0xee, 0x26, 0x4f, 0x4b, 0x84, 0x2e, 0x92, 0x3d, 0xcb, 0x3b, };
7727 static const u8 ed25519_336_test_vectors_expected_sig[] = {
7728 	0x18, 0xd0, 0x5e, 0x5d, 0x01, 0x66, 0x8e, 0x83, 0xf4, 0x0f, 0xa3, 0xbb, 0xee, 0x28, 0xb3, 0x88, 0xac, 0xf3, 0x18, 0xd1, 0xb0, 0xb5, 0xad, 0x66, 0x8c, 0x67, 0x2f, 0x34, 0x5c, 0x8e, 0xda, 0x14, 0xc2, 0xf8, 0x84, 0xcd, 0x2a, 0x90, 0x39, 0x45, 0x9c, 0xe0, 0x81, 0x0b, 0xc5, 0xb5, 0x80, 0xfe, 0x70, 0xd3, 0x96, 0x4a, 0x43, 0xed, 0xb4, 0x9e, 0x73, 0xa6, 0xff, 0x91, 0x4b, 0xbf, 0x04, 0x0c, };
7729 static const ec_test_case ed25519_336_test_case = {
7730 	.name = "EDDSA25519-SHA512/wei25519 336",
7731 	.ec_str_p = &wei25519_str_params,
7732 	.priv_key = ed25519_336_test_vectors_priv_key,
7733 	.priv_key_len = sizeof(ed25519_336_test_vectors_priv_key),
7734 	.nn_random = NULL,
7735 	.hash_type = SHA512,
7736 	.msg = (const char *)ed25519_336_test_vectors_message,
7737 	.msglen = sizeof(ed25519_336_test_vectors_message),
7738 	.sig_type = EDDSA25519,
7739 	.exp_sig = ed25519_336_test_vectors_expected_sig,
7740 	.exp_siglen = sizeof(ed25519_336_test_vectors_expected_sig),
7741 	.adata = NULL,
7742 	.adata_len = 0
7743 };
7744 
7745 /************************************************/
7746 static const u8 ed25519_337_test_vectors_priv_key[] = {
7747 	0xc5, 0x7a, 0x43, 0xdc, 0xd7, 0xba, 0xb8, 0x51, 0x60, 0x09, 0x54, 0x69, 0x18, 0xd7, 0x1a, 0xd4, 0x59, 0xb7, 0x34, 0x5e, 0xfd, 0xca, 0x8d, 0x4f, 0x19, 0x92, 0x98, 0x75, 0xc8, 0x39, 0xd7, 0x22, };
7748 static const u8 ed25519_337_test_vectors_message[] = {
7749 	0xa4, 0xf6, 0xd9, 0xc2, 0x81, 0xcf, 0x81, 0xa2, 0x8a, 0x0b, 0x9e, 0x77, 0x49, 0x9a, 0xa2, 0x4b, 0xde, 0x96, 0xcc, 0x12, 0x64, 0x37, 0x44, 0x91, 0xc0, 0x08, 0x29, 0x4e, 0xe0, 0xaf, 0x6f, 0x6e, 0x4b, 0xbb, 0x68, 0x63, 0x96, 0xf5, 0x90, 0x68, 0xd3, 0x58, 0xe3, 0x0f, 0xe9, 0x99, 0x2d, 0xb0, 0xc6, 0xf1, 0x66, 0x80, 0xa1, 0xc7, 0x1e, 0x27, 0xa4, 0xa9, 0x07, 0xac, 0x60, 0x7d, 0x39, 0xbd, 0xc3, 0x25, 0x8c, 0x79, 0x56, 0x48, 0x2f, 0xb3, 0x79, 0x96, 0xf4, 0xbe, 0xb3, 0xe5, 0x05, 0x1b, 0x81, 0x48, 0x01, 0x9a, 0x1c, 0x25, 0x6e, 0x2e, 0xe9, 0x99, 0xeb, 0xc8, 0xce, 0x64, 0xc5, 0x4e, 0x07, 0xfe, 0xdb, 0x4f, 0xbd, 0x89, 0x53, 0xeb, 0xd9, 0x3b, 0x7d, 0x69, 0xce, 0x5a, 0x00, 0x82, 0xed, 0xd6, 0x20, 0x9d, 0x12, 0xd3, 0x61, 0x9b, 0x4f, 0xd2, 0xea, 0xe9, 0x16, 0x46, 0x1f, 0x72, 0xa4, 0xce, 0x72, 0x71, 0x57, 0x25, 0x1a, 0x19, 0x20, 0x9b, 0xbf, 0xf9, 0xfb, 0xdb, 0xd2, 0x89, 0x43, 0x6f, 0x3f, 0xca, 0xcc, 0x6b, 0x4e, 0x13, 0x18, 0x52, 0x1a, 0x47, 0x83, 0x9c, 0xba, 0x4b, 0x14, 0xf7, 0xd7, 0xa2, 0x1e, 0x7b, 0x5d, 0x6b, 0x6a, 0x75, 0x3d, 0x58, 0x04, 0xaf, 0xcd, 0x2b, 0x1e, 0xb7, 0x77, 0x9b, 0x92, 0xab, 0xab, 0x8a, 0xfa, 0x8a, 0xa4, 0xfa, 0x51, 0xca, 0xec, 0x0b, 0x85, 0xdc, 0xd0, 0xfc, 0x2a, 0x06, 0x76, 0x03, 0x6d, 0x3f, 0x56, 0x63, 0x0a, 0x83, 0x1f, 0xfe, 0xb5, 0x02, 0x86, 0x1d, 0xd8, 0x91, 0x61, 0xc7, 0x08, 0xa9, 0xc0, 0x06, 0xc7, 0x3c, 0x93, 0x0c, 0xe5, 0xb9, 0x47, 0x56, 0x42, 0x6f, 0xf1, 0x8a, 0xa1, 0x12, 0xfb, 0x4e, 0xb9, 0xa6, 0x85, 0x00, 0xb4, 0x8d, 0x4e, 0xed, 0xbd, 0x41, 0x67, 0xb6, 0xff, 0xd0, 0xa1, 0x1d, 0x49, 0x44, 0x3a, 0x17, 0x3c, 0xe9, 0xd9, 0x49, 0x43, 0x67, 0x48, 0xfc, 0x06, 0x34, 0xf0, 0x6b, 0xb0, 0x8b, 0x8f, 0x34, 0x23, 0xf4, 0x46, 0x3d, 0xba, 0x7b, 0x4d, 0x19, 0x9b, 0x64, 0xdf, 0x57, 0x81, 0x17, 0xf0, 0xa2, 0x64, 0x5f, 0x0b, 0x2a, 0x1e, 0x2a, 0xda, 0x27, 0xd2, 0x86, 0xf7, 0x67, 0x33, 0xf2, 0x5b, 0x82, 0xed, 0x1d, 0x48, 0xa5, 0xc3, 0x89, 0x8d, 0x4a, 0xd6, 0x21, 0xe5, 0x0e, 0xd9, 0x06, 0x0d, 0xaa, 0xd4, 0x0a, 0x39, 0x53, 0x2e, 0x4d, 0x1b, 0xf1, 0x62, 0xce, 0x36, 0x80, 0x4d, 0x5d, 0x4e, 0x2d, };
7750 static const u8 ed25519_337_test_vectors_expected_sig[] = {
7751 	0x1e, 0xde, 0xf9, 0xbc, 0x03, 0x69, 0x71, 0xf1, 0xfa, 0x88, 0xed, 0xf4, 0x53, 0x93, 0xc8, 0x02, 0xe6, 0xc1, 0xa1, 0x63, 0x1c, 0x8a, 0x06, 0x87, 0x1a, 0x09, 0xa3, 0x20, 0x82, 0x1d, 0xce, 0x40, 0xbe, 0xca, 0x97, 0xe5, 0x3a, 0x03, 0x61, 0xa9, 0x55, 0xa4, 0xc6, 0xd6, 0x0b, 0x8c, 0xa8, 0xe4, 0x00, 0xc8, 0x13, 0x40, 0x91, 0x1c, 0xcb, 0x4f, 0x56, 0x28, 0x40, 0x41, 0xcd, 0xbb, 0x18, 0x04, };
7752 static const ec_test_case ed25519_337_test_case = {
7753 	.name = "EDDSA25519-SHA512/wei25519 337",
7754 	.ec_str_p = &wei25519_str_params,
7755 	.priv_key = ed25519_337_test_vectors_priv_key,
7756 	.priv_key_len = sizeof(ed25519_337_test_vectors_priv_key),
7757 	.nn_random = NULL,
7758 	.hash_type = SHA512,
7759 	.msg = (const char *)ed25519_337_test_vectors_message,
7760 	.msglen = sizeof(ed25519_337_test_vectors_message),
7761 	.sig_type = EDDSA25519,
7762 	.exp_sig = ed25519_337_test_vectors_expected_sig,
7763 	.exp_siglen = sizeof(ed25519_337_test_vectors_expected_sig),
7764 	.adata = NULL,
7765 	.adata_len = 0
7766 };
7767 
7768 /************************************************/
7769 static const u8 ed25519_338_test_vectors_priv_key[] = {
7770 	0x2d, 0xdd, 0xb6, 0xb8, 0xfd, 0x04, 0xfa, 0x90, 0xec, 0xe1, 0xa7, 0x09, 0xf8, 0x41, 0x8f, 0x2e, 0x5d, 0x0c, 0x9c, 0x43, 0xaf, 0xe7, 0xcf, 0xce, 0x19, 0xe6, 0xad, 0x15, 0xa7, 0x34, 0x76, 0xf7, };
7771 static const u8 ed25519_338_test_vectors_message[] = {
7772 	0x47, 0x4b, 0xaa, 0x59, 0x0a, 0x4c, 0xd7, 0x2d, 0x54, 0x24, 0xe5, 0x1d, 0x82, 0x57, 0xb3, 0xd4, 0x43, 0x25, 0xbc, 0x4c, 0x50, 0x63, 0xa0, 0x03, 0x3c, 0x86, 0xeb, 0xbe, 0x99, 0xed, 0x72, 0x12, 0x18, 0x4c, 0x19, 0x94, 0x4d, 0x08, 0x2a, 0x11, 0x53, 0x79, 0xdd, 0x4c, 0xec, 0xe9, 0x73, 0xfa, 0xa0, 0xbc, 0xa6, 0x48, 0x5b, 0xd2, 0x5f, 0x37, 0x44, 0xa7, 0x19, 0xe7, 0x0a, 0xa0, 0x29, 0x1e, 0x1b, 0x5a, 0x96, 0xe6, 0x37, 0xc1, 0x40, 0x61, 0x6a, 0x98, 0x26, 0x33, 0x57, 0xc7, 0x6b, 0x6e, 0xb0, 0x08, 0x3f, 0xe5, 0x14, 0x14, 0xe3, 0x86, 0x87, 0x0d, 0x0f, 0xdc, 0x7d, 0xd9, 0xab, 0xe4, 0xff, 0x6f, 0xb5, 0xbb, 0xf1, 0xe7, 0xb1, 0x5d, 0xac, 0x3e, 0x08, 0xe2, 0x61, 0x5f, 0x65, 0x5c, 0x31, 0x04, 0xce, 0xb3, 0x2a, 0x4c, 0xc2, 0xc9, 0xe9, 0xc4, 0x3c, 0xf2, 0x82, 0xd3, 0x46, 0xac, 0x25, 0x3c, 0xcc, 0x46, 0xb6, 0x35, 0xae, 0x04, 0x09, 0x73, 0xb4, 0x97, 0x35, 0x72, 0x0f, 0xfb, 0x89, 0x04, 0x69, 0xa5, 0x67, 0xc5, 0x82, 0x4e, 0x0c, 0x00, 0xd7, 0xcc, 0xd5, 0x50, 0x9a, 0x71, 0x80, 0x92, 0xa9, 0x06, 0x46, 0x1c, 0x4d, 0x61, 0x63, 0xea, 0xf4, 0x22, 0x41, 0x8f, 0x5f, 0xc6, 0xe0, 0x09, 0xfc, 0x3f, 0x52, 0x9a, 0xc6, 0x1a, 0x2f, 0x89, 0xbb, 0x8e, 0x0e, 0xd4, 0x5d, 0x94, 0x0c, 0x4c, 0x23, 0x31, 0xff, 0x8d, 0x8e, 0x1d, 0x6d, 0x58, 0xd4, 0x17, 0xd8, 0xfc, 0x26, 0x56, 0xa0, 0x2e, 0x87, 0x01, 0xae, 0xe7, 0x5a, 0xed, 0x91, 0x87, 0x24, 0xee, 0xbe, 0x4a, 0x2c, 0xf4, 0x74, 0x4c, 0x5c, 0x40, 0x1e, 0x21, 0x70, 0x23, 0xdf, 0x68, 0xa6, 0xf6, 0xa0, 0x22, 0x8b, 0xd0, 0x5a, 0x67, 0x9a, 0x69, 0x7d, 0x8d, 0xe7, 0x03, 0x6b, 0x9e, 0xd2, 0x69, 0x09, 0x0d, 0x3c, 0x65, 0x48, 0x6a, 0xfb, 0x91, 0xe2, 0x79, 0x54, 0xeb, 0x15, 0xb9, 0x64, 0x66, 0x5e, 0xde, 0x7a, 0xd0, 0x08, 0xf1, 0x2f, 0xb3, 0xa9, 0xd0, 0xe6, 0x9c, 0x13, 0xb4, 0x25, 0x4f, 0x43, 0x81, 0x9e, 0x08, 0x18, 0xa4, 0x19, 0x5f, 0x68, 0xb8, 0xa3, 0x8a, 0xe8, 0x1f, 0x3f, 0xcb, 0x18, 0x79, 0xc9, 0x5a, 0xb4, 0xcd, 0x0f, 0xfc, 0x38, 0xe3, 0x81, 0x08, 0x92, 0x60, 0xcc, 0xa9, 0x67, 0xac, 0xe5, 0xa0, 0x85, 0xb4, 0x57, 0xab, 0x5e, 0xb3, 0x63, 0x85, 0x21, 0x01, 0x37, 0x75, 0x70, 0xf9, 0xac, 0x9e, 0x38, };
7773 static const u8 ed25519_338_test_vectors_expected_sig[] = {
7774 	0xc6, 0x34, 0xea, 0x7b, 0xf7, 0x2e, 0x89, 0x5a, 0x2e, 0x79, 0x6e, 0x28, 0x34, 0x20, 0x14, 0x15, 0xb8, 0xb4, 0x5e, 0x05, 0xe0, 0x45, 0x55, 0x92, 0x84, 0xeb, 0x90, 0x52, 0xc0, 0xe8, 0x4f, 0x62, 0xa5, 0xa9, 0xf0, 0xc9, 0x76, 0x4f, 0x75, 0x76, 0x78, 0x8c, 0x72, 0x28, 0xb1, 0x9e, 0xf5, 0x17, 0xc1, 0x95, 0x49, 0x73, 0x25, 0xa4, 0x8a, 0x93, 0x44, 0xb1, 0x47, 0xc1, 0x2f, 0xd7, 0x55, 0x09, };
7775 static const ec_test_case ed25519_338_test_case = {
7776 	.name = "EDDSA25519-SHA512/wei25519 338",
7777 	.ec_str_p = &wei25519_str_params,
7778 	.priv_key = ed25519_338_test_vectors_priv_key,
7779 	.priv_key_len = sizeof(ed25519_338_test_vectors_priv_key),
7780 	.nn_random = NULL,
7781 	.hash_type = SHA512,
7782 	.msg = (const char *)ed25519_338_test_vectors_message,
7783 	.msglen = sizeof(ed25519_338_test_vectors_message),
7784 	.sig_type = EDDSA25519,
7785 	.exp_sig = ed25519_338_test_vectors_expected_sig,
7786 	.exp_siglen = sizeof(ed25519_338_test_vectors_expected_sig),
7787 	.adata = NULL,
7788 	.adata_len = 0
7789 };
7790 
7791 /************************************************/
7792 static const u8 ed25519_339_test_vectors_priv_key[] = {
7793 	0x55, 0x47, 0xf1, 0x00, 0x4b, 0xae, 0xdf, 0xce, 0x5c, 0xfc, 0x08, 0x50, 0xb0, 0x53, 0x02, 0x37, 0x4a, 0xad, 0x24, 0xf6, 0x16, 0x39, 0x94, 0xec, 0xd7, 0x51, 0xdf, 0x3a, 0xf3, 0xc1, 0x06, 0x20, };
7794 static const u8 ed25519_339_test_vectors_message[] = {
7795 	0xa6, 0xc1, 0x7e, 0xeb, 0x5b, 0x80, 0x66, 0xc2, 0xcd, 0x9a, 0x89, 0x66, 0x73, 0x17, 0xa9, 0x45, 0xa0, 0xc7, 0xc9, 0x69, 0x96, 0xe7, 0x7a, 0xe8, 0x54, 0xc5, 0x09, 0xc6, 0xcd, 0x06, 0x31, 0xe9, 0x22, 0xad, 0x04, 0x50, 0x3a, 0xf8, 0x7a, 0x3c, 0x46, 0x28, 0xad, 0xaf, 0xed, 0x76, 0x00, 0xd0, 0x71, 0xc0, 0x78, 0xa2, 0x2e, 0x7f, 0x64, 0xbd, 0xa0, 0x8a, 0x36, 0x2b, 0x38, 0xb2, 0x6c, 0xa1, 0x50, 0x06, 0xd3, 0x8a, 0xcf, 0x53, 0x2d, 0x0d, 0xed, 0xea, 0x41, 0x77, 0xa2, 0xd3, 0x3f, 0x06, 0x95, 0x6d, 0x80, 0xe9, 0x63, 0x84, 0x8e, 0xc7, 0x91, 0xb2, 0x76, 0x2f, 0xa9, 0x94, 0x49, 0xb4, 0xf1, 0xa1, 0xed, 0x9b, 0x3f, 0x25, 0x80, 0xbe, 0x3a, 0xc7, 0xd7, 0xf5, 0x2f, 0xb1, 0x44, 0x21, 0xd6, 0x22, 0x2b, 0xa7, 0x6f, 0x80, 0x77, 0x50, 0xc6, 0xcb, 0xb0, 0xb1, 0x6f, 0x08, 0x95, 0xfc, 0x73, 0xd9, 0xdf, 0xc5, 0x87, 0xe1, 0xa9, 0xe5, 0xd1, 0xe5, 0x83, 0x75, 0xfb, 0xab, 0x70, 0x5b, 0x8f, 0x0c, 0x1f, 0xd7, 0xdf, 0x8b, 0x3a, 0xd4, 0x46, 0xf2, 0xf0, 0x84, 0x59, 0xe7, 0xed, 0x1a, 0xf5, 0x95, 0x56, 0xfb, 0xc9, 0x66, 0xdc, 0x24, 0x9c, 0x1c, 0xf6, 0x04, 0xf3, 0xe6, 0x77, 0xc8, 0xa0, 0x9d, 0x43, 0x63, 0x60, 0x87, 0x74, 0xbf, 0x38, 0x11, 0xbe, 0xf0, 0x64, 0x27, 0x48, 0xc5, 0x5c, 0x51, 0x6c, 0x7a, 0x58, 0x0f, 0xa3, 0x49, 0x90, 0x50, 0xac, 0xb3, 0x0e, 0xed, 0x87, 0x0d, 0x0d, 0x91, 0x17, 0x4c, 0xb6, 0x23, 0xe9, 0x8c, 0x3a, 0xd1, 0x21, 0xcf, 0x81, 0xf0, 0x4e, 0x57, 0xd4, 0x9b, 0x00, 0x84, 0x24, 0xa9, 0x8a, 0x31, 0xee, 0xaa, 0xf5, 0xf3, 0x8e, 0x00, 0x0f, 0x90, 0x3d, 0x48, 0xd2, 0x15, 0xed, 0x52, 0xf8, 0x62, 0xd6, 0x36, 0xa5, 0xa7, 0x36, 0x07, 0xde, 0x85, 0x76, 0x01, 0x67, 0x26, 0x7e, 0xfe, 0x30, 0xf8, 0xa2, 0x6e, 0xbc, 0x5a, 0xa0, 0xc0, 0x9f, 0x5b, 0x25, 0x8d, 0x33, 0x61, 0xca, 0x69, 0xd1, 0xd7, 0xee, 0x07, 0xb5, 0x96, 0x48, 0x17, 0x9a, 0xb2, 0x17, 0x0e, 0xc5, 0x0c, 0x07, 0xf6, 0x61, 0x6f, 0x21, 0x68, 0x72, 0x52, 0x94, 0x21, 0xa6, 0x33, 0x4a, 0x4a, 0x1e, 0xd3, 0xd2, 0x67, 0x1e, 0xf4, 0x7b, 0xc9, 0xa9, 0x2a, 0xfb, 0x58, 0x31, 0x4e, 0x83, 0x2d, 0xb8, 0xa9, 0x00, 0x34, 0x08, 0xa0, 0x48, 0x75, 0x03, 0xfe, 0x4f, 0x67, 0x77, 0x0d, 0xd4, 0xb6, };
7796 static const u8 ed25519_339_test_vectors_expected_sig[] = {
7797 	0x29, 0xdf, 0x3a, 0xd5, 0x89, 0x00, 0x9c, 0x66, 0x7b, 0xaa, 0x5e, 0x72, 0xda, 0xbb, 0x4e, 0x53, 0xcb, 0x78, 0x76, 0xde, 0x4e, 0x7e, 0xfe, 0x5c, 0xc2, 0x1e, 0xad, 0x7f, 0xa8, 0x78, 0xdb, 0x57, 0xf9, 0x7c, 0x11, 0x03, 0xdd, 0xb3, 0x9a, 0x86, 0x1e, 0xb8, 0x86, 0x53, 0xc1, 0xd4, 0xec, 0x3b, 0x43, 0x06, 0xe4, 0x58, 0x4b, 0x47, 0xb8, 0xbc, 0x90, 0x42, 0x31, 0x19, 0xe7, 0xe4, 0xaf, 0x00, };
7798 static const ec_test_case ed25519_339_test_case = {
7799 	.name = "EDDSA25519-SHA512/wei25519 339",
7800 	.ec_str_p = &wei25519_str_params,
7801 	.priv_key = ed25519_339_test_vectors_priv_key,
7802 	.priv_key_len = sizeof(ed25519_339_test_vectors_priv_key),
7803 	.nn_random = NULL,
7804 	.hash_type = SHA512,
7805 	.msg = (const char *)ed25519_339_test_vectors_message,
7806 	.msglen = sizeof(ed25519_339_test_vectors_message),
7807 	.sig_type = EDDSA25519,
7808 	.exp_sig = ed25519_339_test_vectors_expected_sig,
7809 	.exp_siglen = sizeof(ed25519_339_test_vectors_expected_sig),
7810 	.adata = NULL,
7811 	.adata_len = 0
7812 };
7813 
7814 /************************************************/
7815 static const u8 ed25519_340_test_vectors_priv_key[] = {
7816 	0x3d, 0xd7, 0x20, 0x3c, 0x23, 0x7a, 0xef, 0xe9, 0xe3, 0x8a, 0x20, 0x1f, 0xf3, 0x41, 0x49, 0x01, 0x79, 0x90, 0x5f, 0x9f, 0x10, 0x08, 0x28, 0xda, 0x18, 0xfc, 0xbe, 0x58, 0x76, 0x8b, 0x57, 0x60, };
7817 static const u8 ed25519_340_test_vectors_message[] = {
7818 	0xdb, 0x28, 0xed, 0x31, 0xac, 0x04, 0xb0, 0xc2, 0xde, 0xce, 0xe7, 0xa6, 0xb2, 0x4f, 0xc9, 0xa0, 0x82, 0xcc, 0x26, 0x2c, 0xa7, 0xcc, 0xf2, 0xa2, 0x47, 0xd6, 0x37, 0x2e, 0xc3, 0xe9, 0x12, 0x0e, 0xce, 0xdb, 0x45, 0x42, 0xea, 0x59, 0x3f, 0xea, 0x30, 0x33, 0x5c, 0x5a, 0xb9, 0xdd, 0x31, 0x8a, 0x3b, 0x4f, 0xd5, 0x83, 0x42, 0x99, 0xcf, 0x3f, 0x53, 0xd9, 0xef, 0x46, 0x13, 0x7b, 0x27, 0x3c, 0x39, 0x0e, 0xc3, 0xc2, 0x6a, 0x0b, 0x44, 0x70, 0xd0, 0xd9, 0x4b, 0x77, 0xd8, 0x2c, 0xae, 0x4b, 0x24, 0x58, 0x78, 0x37, 0xb1, 0x67, 0xbb, 0x7f, 0x81, 0x66, 0x71, 0x0b, 0xae, 0xb3, 0xee, 0x70, 0xaf, 0x79, 0x73, 0x16, 0xcb, 0x7d, 0x05, 0xfa, 0x57, 0xe4, 0x68, 0xae, 0x3f, 0x0b, 0xd4, 0x49, 0x40, 0x4d, 0x85, 0x28, 0x80, 0x8b, 0x41, 0xfc, 0xca, 0x62, 0xf5, 0xe0, 0xa2, 0xaa, 0x5d, 0x8f, 0x3a, 0xca, 0xb0, 0x08, 0xcc, 0x5f, 0x6e, 0x5a, 0xb0, 0x27, 0x77, 0xbd, 0xcd, 0xe8, 0x7f, 0x0a, 0x10, 0xef, 0x06, 0xa4, 0xbb, 0x37, 0xfe, 0x02, 0xc9, 0x48, 0x15, 0xcf, 0x76, 0xbf, 0xb8, 0xf5, 0xcd, 0xd8, 0x65, 0xcc, 0x26, 0xdc, 0xb5, 0xcf, 0x49, 0x2e, 0xdf, 0xd5, 0x47, 0xb5, 0x35, 0xe2, 0xe6, 0xa6, 0xd8, 0x54, 0x09, 0x56, 0xdc, 0xba, 0x62, 0xcf, 0xea, 0x19, 0xa9, 0x47, 0x44, 0x06, 0xe9, 0x34, 0x33, 0x7e, 0x45, 0x42, 0x70, 0xe0, 0x10, 0x36, 0xac, 0x45, 0x79, 0x3b, 0x6b, 0x8a, 0xce, 0xda, 0x18, 0x7a, 0x08, 0xd5, 0x6a, 0x2c, 0xe4, 0xe9, 0x8f, 0x42, 0xea, 0x37, 0x5b, 0x10, 0x1a, 0x6b, 0x9f, 0xcb, 0x42, 0x31, 0xd1, 0x71, 0xaa, 0x46, 0x3e, 0xeb, 0x43, 0x58, 0x6a, 0x4b, 0x82, 0xa3, 0x87, 0xbc, 0xdd, 0xaf, 0x71, 0xa8, 0x0f, 0xd5, 0xc1, 0xf7, 0x29, 0x2e, 0xfc, 0x2b, 0xd8, 0xe7, 0x0c, 0x11, 0xea, 0xa8, 0x17, 0x10, 0x60, 0x61, 0xb6, 0xc4, 0x61, 0xc4, 0x88, 0x3d, 0x61, 0x3c, 0xc0, 0x6c, 0x7e, 0x2a, 0x03, 0xf7, 0x3d, 0x90, 0xfc, 0x55, 0xcd, 0xc0, 0x72, 0x65, 0xee, 0xfd, 0x36, 0xbe, 0x72, 0x27, 0x03, 0x83, 0xd6, 0xc6, 0x76, 0xca, 0xe3, 0x7c, 0x93, 0x69, 0x1f, 0x1a, 0xe3, 0xd9, 0x27, 0xb3, 0xa1, 0xcd, 0x96, 0x3e, 0x42, 0x29, 0x75, 0x7a, 0xe5, 0x23, 0x1e, 0xea, 0x73, 0xa9, 0xf7, 0x15, 0x15, 0x62, 0x83, 0x05, 0x41, 0x0a, 0xc2, 0x59, 0x3b, 0x32, 0x5c, 0xc6, 0x31, };
7819 static const u8 ed25519_340_test_vectors_expected_sig[] = {
7820 	0x4c, 0x03, 0x69, 0x35, 0xa9, 0x6a, 0xbc, 0x0d, 0x05, 0x0d, 0x90, 0x7b, 0xed, 0xbe, 0x99, 0x46, 0xfb, 0x97, 0x43, 0x9f, 0x03, 0x9c, 0x74, 0x2e, 0x05, 0x1c, 0xcf, 0x09, 0xad, 0xd7, 0xdf, 0x44, 0xd1, 0x7d, 0xa9, 0x8c, 0x2c, 0xa0, 0x1b, 0xdc, 0x24, 0x24, 0xda, 0x1e, 0x4d, 0xeb, 0xf3, 0x47, 0xf8, 0xff, 0xf4, 0x8a, 0xc8, 0x03, 0x0d, 0x2c, 0xc0, 0x7f, 0x95, 0x75, 0xc0, 0x44, 0xbe, 0x04, };
7821 static const ec_test_case ed25519_340_test_case = {
7822 	.name = "EDDSA25519-SHA512/wei25519 340",
7823 	.ec_str_p = &wei25519_str_params,
7824 	.priv_key = ed25519_340_test_vectors_priv_key,
7825 	.priv_key_len = sizeof(ed25519_340_test_vectors_priv_key),
7826 	.nn_random = NULL,
7827 	.hash_type = SHA512,
7828 	.msg = (const char *)ed25519_340_test_vectors_message,
7829 	.msglen = sizeof(ed25519_340_test_vectors_message),
7830 	.sig_type = EDDSA25519,
7831 	.exp_sig = ed25519_340_test_vectors_expected_sig,
7832 	.exp_siglen = sizeof(ed25519_340_test_vectors_expected_sig),
7833 	.adata = NULL,
7834 	.adata_len = 0
7835 };
7836 
7837 /************************************************/
7838 static const u8 ed25519_341_test_vectors_priv_key[] = {
7839 	0x28, 0x27, 0x75, 0xdf, 0x9e, 0xbb, 0xd7, 0xc5, 0xa6, 0x5f, 0x3a, 0x2b, 0x09, 0x6e, 0x36, 0xee, 0x64, 0xa8, 0xf8, 0xea, 0x71, 0x9d, 0xa7, 0x77, 0x58, 0x73, 0x9e, 0x4e, 0x74, 0x76, 0x11, 0x1d, };
7840 static const u8 ed25519_341_test_vectors_message[] = {
7841 	0x14, 0xcc, 0x50, 0xc2, 0x97, 0x3e, 0xa9, 0xd0, 0x18, 0x7a, 0x73, 0xf7, 0x1c, 0xb9, 0xf1, 0xce, 0x07, 0xe7, 0x39, 0xe0, 0x49, 0xec, 0x2b, 0x27, 0xe6, 0x61, 0x3c, 0x10, 0xc2, 0x6b, 0x73, 0xa2, 0xa9, 0x66, 0xe0, 0x1a, 0xc3, 0xbe, 0x8b, 0x50, 0x5a, 0xea, 0xad, 0x14, 0x85, 0xc1, 0xc2, 0xa3, 0xc6, 0xc2, 0xb0, 0x0f, 0x81, 0xb9, 0xe5, 0xf9, 0x27, 0xb7, 0x3b, 0xfd, 0x49, 0x86, 0x01, 0xa7, 0x62, 0x2e, 0x85, 0x44, 0x83, 0x7a, 0xad, 0x02, 0xe7, 0x2b, 0xf7, 0x21, 0x96, 0xdc, 0x24, 0x69, 0x02, 0xe5, 0x8a, 0xf2, 0x53, 0xad, 0x7e, 0x02, 0x5e, 0x36, 0x66, 0xd3, 0xbf, 0xc4, 0x6b, 0x5b, 0x02, 0xf0, 0xeb, 0x4a, 0x37, 0xc9, 0x55, 0x49, 0x92, 0xab, 0xc8, 0x65, 0x1d, 0xe1, 0x2f, 0xd8, 0x13, 0x17, 0x73, 0x79, 0xbb, 0x0c, 0xe1, 0x72, 0xcd, 0x8a, 0xaf, 0x93, 0x7f, 0x97, 0x96, 0x42, 0xbc, 0x2e, 0xd7, 0xc7, 0xa4, 0x30, 0xcb, 0x14, 0xc3, 0xcd, 0x31, 0x01, 0xb9, 0xf6, 0xb9, 0x1e, 0xe3, 0xf5, 0x42, 0xac, 0xdf, 0x01, 0x7f, 0x8c, 0x21, 0x16, 0x29, 0x7f, 0x45, 0x64, 0x76, 0x8f, 0x4d, 0xb9, 0x5d, 0xad, 0x8a, 0x9b, 0xcd, 0xc8, 0xda, 0x4d, 0x8f, 0xb1, 0x3e, 0xf6, 0xe2, 0xda, 0x0b, 0x13, 0x16, 0xd3, 0xc8, 0xc2, 0xf3, 0xed, 0x83, 0x6b, 0x35, 0xfe, 0x2f, 0xd3, 0x3e, 0xff, 0xb4, 0x09, 0xe3, 0xbc, 0x1b, 0x0f, 0x85, 0x22, 0x5d, 0x2a, 0x1d, 0xe3, 0xbf, 0xc2, 0xd2, 0x05, 0x63, 0x94, 0x64, 0x75, 0xc4, 0xd7, 0xca, 0x9f, 0xdd, 0xba, 0xf5, 0x9a, 0xd8, 0xf8, 0x96, 0x1d, 0x28, 0x7a, 0xe7, 0xdd, 0x80, 0x3e, 0x7a, 0xf1, 0xfa, 0x61, 0x23, 0x29, 0xb1, 0xbd, 0xc0, 0x4e, 0x22, 0x56, 0x00, 0xae, 0x73, 0x1b, 0xc0, 0x1a, 0xe0, 0x92, 0x5a, 0xed, 0x62, 0xac, 0x50, 0xd4, 0x60, 0x86, 0xf3, 0x64, 0x6c, 0xf4, 0x7b, 0x07, 0x2f, 0x0d, 0x3b, 0x04, 0x4b, 0x36, 0xf8, 0x5c, 0xec, 0x72, 0x9a, 0x8b, 0xb2, 0xb9, 0x28, 0x83, 0xca, 0x4d, 0xfb, 0x34, 0xa8, 0xee, 0x8a, 0x02, 0x73, 0xb3, 0x1a, 0xf5, 0x09, 0x82, 0xbb, 0x61, 0x31, 0xbf, 0xa1, 0x1d, 0x55, 0x50, 0x4b, 0x1f, 0x6f, 0x1a, 0x0a, 0x00, 0x43, 0x8c, 0xa2, 0x6d, 0x8a, 0xb4, 0xf4, 0x8b, 0xcd, 0xdc, 0x9d, 0x5a, 0x38, 0x85, 0x1a, 0xbe, 0xde, 0x41, 0x51, 0xd5, 0xb7, 0x0d, 0x72, 0x07, 0x32, 0xa0, 0x0a, 0xbe, 0xa2, 0xc8, 0xb9, 0x79, };
7842 static const u8 ed25519_341_test_vectors_expected_sig[] = {
7843 	0x15, 0x76, 0x39, 0x73, 0x85, 0x94, 0x02, 0x90, 0x7d, 0x8d, 0xcb, 0x86, 0xad, 0xc2, 0x4a, 0x2a, 0x16, 0x8b, 0xa3, 0xab, 0xf2, 0x24, 0x61, 0x73, 0xd6, 0x34, 0x8a, 0xfe, 0xd5, 0x1e, 0xf6, 0x0b, 0x0c, 0x0e, 0xde, 0xff, 0x4e, 0x10, 0xbc, 0xef, 0x4c, 0x6e, 0x57, 0x78, 0xc8, 0xbc, 0x1f, 0x5e, 0x9e, 0xe0, 0x23, 0x73, 0x73, 0x44, 0x5b, 0x45, 0x51, 0x55, 0xd2, 0x3d, 0xe1, 0x27, 0xa2, 0x02, };
7844 static const ec_test_case ed25519_341_test_case = {
7845 	.name = "EDDSA25519-SHA512/wei25519 341",
7846 	.ec_str_p = &wei25519_str_params,
7847 	.priv_key = ed25519_341_test_vectors_priv_key,
7848 	.priv_key_len = sizeof(ed25519_341_test_vectors_priv_key),
7849 	.nn_random = NULL,
7850 	.hash_type = SHA512,
7851 	.msg = (const char *)ed25519_341_test_vectors_message,
7852 	.msglen = sizeof(ed25519_341_test_vectors_message),
7853 	.sig_type = EDDSA25519,
7854 	.exp_sig = ed25519_341_test_vectors_expected_sig,
7855 	.exp_siglen = sizeof(ed25519_341_test_vectors_expected_sig),
7856 	.adata = NULL,
7857 	.adata_len = 0
7858 };
7859 
7860 /************************************************/
7861 static const u8 ed25519_342_test_vectors_priv_key[] = {
7862 	0x47, 0x30, 0xa5, 0xcf, 0x97, 0x72, 0xd7, 0xd6, 0x66, 0x5b, 0xa7, 0x87, 0xbe, 0xa4, 0xc9, 0x52, 0x52, 0xe6, 0xec, 0xd6, 0x3e, 0xc6, 0x23, 0x90, 0x54, 0x7b, 0xf1, 0x00, 0xc0, 0xa4, 0x63, 0x75, };
7863 static const u8 ed25519_342_test_vectors_message[] = {
7864 	0xe7, 0x47, 0x6d, 0x2e, 0x66, 0x84, 0x20, 0xe1, 0xb0, 0xfa, 0xdf, 0xba, 0xa5, 0x42, 0x86, 0xfa, 0x7f, 0xa8, 0x90, 0xa8, 0x7b, 0x82, 0x80, 0xe2, 0x60, 0x78, 0x15, 0x22, 0x95, 0xe1, 0xe6, 0xe5, 0x5d, 0x12, 0x41, 0x43, 0x5c, 0xc4, 0x30, 0xa8, 0x69, 0x3b, 0xb1, 0x0c, 0xde, 0x46, 0x43, 0xf5, 0x9c, 0xbf, 0xcc, 0x25, 0x6f, 0x45, 0xf5, 0x09, 0x0c, 0x90, 0x9a, 0x14, 0xc7, 0xfc, 0x49, 0xd3, 0x7b, 0xfc, 0x25, 0xaf, 0x11, 0xe8, 0xf4, 0xc8, 0x3f, 0x4c, 0x32, 0xd4, 0xaa, 0xbf, 0x43, 0xb2, 0x0f, 0xa3, 0x82, 0xbb, 0x66, 0x22, 0xa1, 0x84, 0x8f, 0x8f, 0xfc, 0x4d, 0xff, 0x34, 0x08, 0xbb, 0x4e, 0xc7, 0xc6, 0x7a, 0x35, 0xb4, 0xcd, 0xae, 0xe5, 0xe2, 0x79, 0xc0, 0xfc, 0x0a, 0x66, 0x09, 0x3a, 0x9f, 0x36, 0xa6, 0x0f, 0xdd, 0x65, 0xe6, 0x33, 0x4a, 0x80, 0x4e, 0x84, 0x5c, 0x85, 0x30, 0xb6, 0xfd, 0xa3, 0x63, 0xb5, 0x64, 0x03, 0x37, 0xd0, 0x27, 0x24, 0x3c, 0xcf, 0xb3, 0xc1, 0x77, 0xf4, 0x3e, 0x71, 0x78, 0x96, 0xe4, 0x6e, 0xad, 0x7f, 0x72, 0xca, 0x06, 0xaa, 0x0f, 0xf1, 0xe7, 0x72, 0x47, 0x12, 0x1b, 0xaf, 0x48, 0xbe, 0x9a, 0x44, 0x5f, 0x72, 0x9c, 0xa1, 0x39, 0x0f, 0xc4, 0x61, 0x51, 0xcb, 0xd3, 0x3f, 0xcb, 0xd7, 0x37, 0x3f, 0x27, 0xa6, 0xba, 0x55, 0xc9, 0x2c, 0xbf, 0x69, 0x45, 0xb0, 0x9b, 0x44, 0xb9, 0xa4, 0xe5, 0x80, 0x0d, 0x40, 0x30, 0x70, 0xae, 0x66, 0x04, 0x89, 0x97, 0xb2, 0x19, 0x7f, 0x02, 0x18, 0x1a, 0x09, 0x7e, 0x56, 0x3f, 0x9b, 0x9a, 0xcc, 0x84, 0x11, 0x39, 0x25, 0x8a, 0x25, 0x8b, 0xc6, 0x10, 0xd3, 0xbd, 0x89, 0x16, 0x37, 0x35, 0x6b, 0x2e, 0xdc, 0x8c, 0x18, 0x4c, 0x35, 0xc6, 0x5a, 0xf9, 0x1a, 0xaf, 0x7b, 0x1c, 0x16, 0xd7, 0x4a, 0x5f, 0x5f, 0x86, 0x25, 0x48, 0x13, 0x92, 0x54, 0xec, 0xf5, 0x50, 0x63, 0x1d, 0x5f, 0x88, 0x49, 0xaf, 0xdb, 0x5b, 0x64, 0xcf, 0x36, 0x6f, 0xf2, 0x63, 0x3a, 0x93, 0xf3, 0xa1, 0x8c, 0x39, 0xb5, 0x15, 0x02, 0x45, 0xfb, 0x5f, 0x33, 0xc9, 0xe4, 0xe2, 0xd9, 0x4a, 0xf6, 0x96, 0x3a, 0x70, 0xb8, 0x8f, 0x9e, 0x7e, 0x51, 0x9f, 0x8f, 0xa2, 0xa0, 0xf2, 0xe3, 0x74, 0x9d, 0xe8, 0x83, 0xd0, 0xe6, 0xf0, 0x52, 0xa9, 0x49, 0xd0, 0xfc, 0x71, 0x53, 0xa8, 0x69, 0x3f, 0x6d, 0x80, 0x1d, 0x73, 0x52, 0xeb, 0x2f, 0x7a, 0x46, 0x5c, 0x0e, };
7865 static const u8 ed25519_342_test_vectors_expected_sig[] = {
7866 	0x55, 0x2c, 0x73, 0x47, 0xbd, 0xfe, 0x13, 0x16, 0x46, 0xce, 0x09, 0x32, 0xd8, 0x2a, 0x36, 0xd2, 0xc1, 0xb7, 0x6d, 0x7c, 0x30, 0xee, 0x89, 0x0e, 0x05, 0x92, 0xe1, 0x9f, 0x9d, 0x18, 0xb9, 0xa5, 0x6f, 0x48, 0xd7, 0xa9, 0xb6, 0x8c, 0x01, 0x7d, 0xa6, 0xb5, 0x50, 0xc9, 0x43, 0xaf, 0x4a, 0x90, 0x7b, 0xaf, 0x31, 0x7e, 0x41, 0x9f, 0xbb, 0xc9, 0x6f, 0x6c, 0xf4, 0xbf, 0xad, 0x42, 0xde, 0x00, };
7867 static const ec_test_case ed25519_342_test_case = {
7868 	.name = "EDDSA25519-SHA512/wei25519 342",
7869 	.ec_str_p = &wei25519_str_params,
7870 	.priv_key = ed25519_342_test_vectors_priv_key,
7871 	.priv_key_len = sizeof(ed25519_342_test_vectors_priv_key),
7872 	.nn_random = NULL,
7873 	.hash_type = SHA512,
7874 	.msg = (const char *)ed25519_342_test_vectors_message,
7875 	.msglen = sizeof(ed25519_342_test_vectors_message),
7876 	.sig_type = EDDSA25519,
7877 	.exp_sig = ed25519_342_test_vectors_expected_sig,
7878 	.exp_siglen = sizeof(ed25519_342_test_vectors_expected_sig),
7879 	.adata = NULL,
7880 	.adata_len = 0
7881 };
7882 
7883 /************************************************/
7884 static const u8 ed25519_343_test_vectors_priv_key[] = {
7885 	0x27, 0x70, 0xaa, 0xdd, 0x1d, 0x12, 0x3e, 0x95, 0x47, 0x83, 0x2d, 0xfb, 0x2a, 0x83, 0x7e, 0xba, 0x08, 0x91, 0x79, 0xef, 0x4f, 0x23, 0xab, 0xc4, 0xa5, 0x3f, 0x2a, 0x71, 0x4e, 0x42, 0x3e, 0xe2, };
7886 static const u8 ed25519_343_test_vectors_message[] = {
7887 	0xa5, 0xcc, 0x20, 0x55, 0xeb, 0xa3, 0xcf, 0x6f, 0x0c, 0x63, 0x32, 0xc1, 0xf2, 0xab, 0x58, 0x54, 0x87, 0x09, 0x13, 0xb0, 0x3f, 0xf7, 0x09, 0x3b, 0xc9, 0x4f, 0x33, 0x5a, 0xdd, 0x44, 0x33, 0x22, 0x31, 0xd9, 0x86, 0x9f, 0x02, 0x7d, 0x82, 0xef, 0xd5, 0xf1, 0x22, 0x71, 0x44, 0xab, 0x56, 0xe3, 0x22, 0x2d, 0xc3, 0xdd, 0xcc, 0xf0, 0x62, 0xd9, 0xc1, 0xb0, 0xc1, 0x02, 0x4d, 0x9b, 0x41, 0x6d, 0xfa, 0x3e, 0xe8, 0xa7, 0x02, 0x79, 0x23, 0x00, 0x34, 0x65, 0xe0, 0xff, 0xae, 0xfb, 0x75, 0xb9, 0xf2, 0x9d, 0xc6, 0xbc, 0xf2, 0x13, 0xad, 0xc5, 0xe3, 0x18, 0xfd, 0x8b, 0xa9, 0x3a, 0x7a, 0xa5, 0xbf, 0xb4, 0x95, 0xde, 0x9d, 0x7c, 0x5e, 0x1a, 0x19, 0x6c, 0xd3, 0xa2, 0xd7, 0x72, 0x1f, 0x8b, 0xa7, 0x85, 0xaa, 0x90, 0x52, 0xa1, 0x81, 0x1c, 0x7f, 0xcc, 0x8f, 0x93, 0x93, 0x27, 0x65, 0x05, 0x9c, 0xab, 0x9c, 0x9b, 0x71, 0x89, 0x45, 0x89, 0x5e, 0xf2, 0x6f, 0x3a, 0xc0, 0x48, 0xd4, 0xca, 0xbf, 0x91, 0xa9, 0xe6, 0xaa, 0x83, 0xac, 0x14, 0xd4, 0x31, 0x56, 0x82, 0x78, 0x37, 0x91, 0x4e, 0xb7, 0x63, 0xa2, 0x3c, 0xba, 0x53, 0xf6, 0x0f, 0x15, 0x0f, 0x4b, 0x70, 0x20, 0x3e, 0xc1, 0x83, 0x3f, 0xf1, 0x05, 0x84, 0x94, 0x57, 0xa8, 0xda, 0x73, 0x27, 0x66, 0x1f, 0xb2, 0x3a, 0x55, 0x41, 0x64, 0xe0, 0x5f, 0xcf, 0x01, 0x46, 0xb1, 0x06, 0x74, 0x96, 0x4b, 0xe6, 0xf6, 0xaa, 0x0a, 0xcc, 0x94, 0xc4, 0x1a, 0xd5, 0x71, 0x80, 0xe5, 0x18, 0x0d, 0x19, 0x9b, 0xd9, 0x10, 0x2f, 0x55, 0xd7, 0x40, 0xe8, 0x17, 0x89, 0xb1, 0x56, 0x71, 0xbb, 0xd0, 0x67, 0x0e, 0x6d, 0xe5, 0xd9, 0x7e, 0x1a, 0xe6, 0x26, 0xd8, 0xa0, 0xeb, 0xc3, 0x2c, 0x8f, 0xd9, 0xd2, 0x47, 0x37, 0x27, 0x4e, 0x47, 0xd2, 0xdd, 0x59, 0x41, 0xa2, 0x72, 0xe7, 0x2a, 0x59, 0x89, 0x28, 0xad, 0x10, 0x9c, 0xde, 0x93, 0x7b, 0xf2, 0x48, 0xd5, 0x7f, 0x5d, 0x29, 0x42, 0x98, 0x3c, 0x51, 0xe2, 0xa8, 0x9f, 0x8f, 0x05, 0x4d, 0x5c, 0x48, 0xdf, 0xad, 0x8f, 0xcf, 0x1f, 0xfa, 0x97, 0xf7, 0xde, 0x6a, 0x3a, 0x43, 0xca, 0x15, 0xfc, 0x67, 0x20, 0xef, 0xae, 0xc6, 0x9f, 0x08, 0x36, 0xd8, 0x42, 0x23, 0xf9, 0x77, 0x6d, 0x11, 0x1e, 0xc2, 0xbb, 0xc6, 0x9b, 0x2d, 0xfd, 0x58, 0xbe, 0x8c, 0xa1, 0x2c, 0x07, 0x21, 0x64, 0xb7, 0x18, 0xcd, 0x7c, 0x24, 0x6d, 0x64, };
7888 static const u8 ed25519_343_test_vectors_expected_sig[] = {
7889 	0xf2, 0x67, 0x71, 0x5e, 0x9a, 0x84, 0xc7, 0x31, 0x4f, 0x2d, 0x58, 0x69, 0xef, 0x4a, 0xb8, 0xd2, 0x14, 0x9a, 0x13, 0xf7, 0xe8, 0xe1, 0xc7, 0x28, 0xc4, 0x23, 0x90, 0x62, 0x93, 0xb4, 0x9c, 0xe6, 0x28, 0x34, 0x54, 0xdd, 0x1c, 0x7b, 0x04, 0x74, 0x1d, 0xf2, 0xea, 0xbe, 0xdc, 0x4d, 0x6a, 0xb1, 0x39, 0x7d, 0xc9, 0x5a, 0x67, 0x9d, 0xf0, 0x4d, 0x2c, 0x17, 0xd6, 0x6c, 0x79, 0xbb, 0x76, 0x01, };
7890 static const ec_test_case ed25519_343_test_case = {
7891 	.name = "EDDSA25519-SHA512/wei25519 343",
7892 	.ec_str_p = &wei25519_str_params,
7893 	.priv_key = ed25519_343_test_vectors_priv_key,
7894 	.priv_key_len = sizeof(ed25519_343_test_vectors_priv_key),
7895 	.nn_random = NULL,
7896 	.hash_type = SHA512,
7897 	.msg = (const char *)ed25519_343_test_vectors_message,
7898 	.msglen = sizeof(ed25519_343_test_vectors_message),
7899 	.sig_type = EDDSA25519,
7900 	.exp_sig = ed25519_343_test_vectors_expected_sig,
7901 	.exp_siglen = sizeof(ed25519_343_test_vectors_expected_sig),
7902 	.adata = NULL,
7903 	.adata_len = 0
7904 };
7905 
7906 /************************************************/
7907 static const u8 ed25519_344_test_vectors_priv_key[] = {
7908 	0x4f, 0xda, 0xb7, 0xc1, 0x60, 0x0e, 0x70, 0x11, 0x4b, 0x11, 0xf5, 0x33, 0x24, 0x23, 0x76, 0xaf, 0x76, 0x14, 0xb4, 0xd5, 0xda, 0x04, 0x6a, 0xc4, 0xbe, 0xde, 0xa2, 0x1d, 0x8a, 0x36, 0x15, 0x98, };
7909 static const u8 ed25519_344_test_vectors_message[] = {
7910 	0xda, 0x40, 0x58, 0x90, 0xd1, 0x1a, 0x87, 0x2c, 0x11, 0x9d, 0xab, 0x5e, 0xfc, 0xbf, 0xf6, 0x1e, 0x93, 0x1f, 0x38, 0xec, 0xcc, 0xa4, 0x57, 0xed, 0xc6, 0x26, 0xd3, 0xea, 0x29, 0xed, 0x4f, 0xe3, 0x15, 0x4f, 0xaf, 0xec, 0x14, 0x44, 0xda, 0x74, 0x34, 0x3c, 0x06, 0xad, 0x90, 0xac, 0x9d, 0x17, 0xb5, 0x11, 0xbc, 0xb7, 0x3b, 0xb4, 0x9d, 0x90, 0xba, 0xfb, 0x7c, 0x7e, 0xa8, 0x00, 0xbd, 0x58, 0x41, 0x1d, 0xf1, 0x27, 0x5c, 0x3c, 0xae, 0x71, 0xb7, 0x00, 0xa5, 0xda, 0xb4, 0x91, 0xa4, 0x26, 0x16, 0x78, 0x58, 0x79, 0x56, 0xaa, 0x4a, 0x21, 0x9e, 0x1a, 0xc6, 0xdd, 0x3f, 0xb2, 0xcb, 0x8c, 0x46, 0x19, 0x72, 0x18, 0xe7, 0x26, 0xdc, 0x7e, 0xd2, 0x34, 0x52, 0x6a, 0x6b, 0x01, 0xc0, 0xd7, 0x2c, 0xb9, 0x3a, 0xb3, 0xf4, 0xf3, 0x8a, 0x08, 0xe5, 0x94, 0x0b, 0x3f, 0x61, 0xa7, 0x2a, 0xd2, 0x78, 0x9a, 0x05, 0x32, 0x00, 0x0f, 0xac, 0x1d, 0x2d, 0x2e, 0x3a, 0xd6, 0x32, 0xac, 0x8b, 0x62, 0xbb, 0x3f, 0xf5, 0xb9, 0x9d, 0x53, 0x59, 0x7b, 0xf4, 0xd4, 0x4b, 0x19, 0x67, 0x49, 0x24, 0xdf, 0x9b, 0x3d, 0xb3, 0xd0, 0x25, 0x3f, 0x74, 0x62, 0x7c, 0xca, 0xb3, 0x00, 0x31, 0xc8, 0x5e, 0x29, 0x1c, 0x58, 0xb5, 0xfa, 0x91, 0x67, 0x52, 0x2a, 0x46, 0x74, 0x6f, 0xc3, 0x07, 0x03, 0x67, 0x45, 0xd4, 0xf9, 0x81, 0x77, 0x86, 0xe5, 0xd3, 0x00, 0xe6, 0xc5, 0xd5, 0x03, 0x12, 0x5f, 0xea, 0x01, 0xde, 0xc3, 0xe3, 0xfe, 0xdb, 0xf3, 0x86, 0x1c, 0xa2, 0x62, 0x7a, 0x05, 0x18, 0xfb, 0x2b, 0x24, 0xe5, 0xa7, 0xa0, 0x14, 0x17, 0x87, 0x19, 0xe9, 0xb3, 0x45, 0xf7, 0xb2, 0x49, 0xce, 0x3a, 0x41, 0x32, 0x80, 0xc8, 0xde, 0xb6, 0x74, 0xf5, 0x9a, 0x25, 0xbe, 0x92, 0xa8, 0xab, 0x64, 0x00, 0xc7, 0xc5, 0x2b, 0x07, 0x28, 0xae, 0x34, 0xe2, 0x2b, 0x2e, 0xc2, 0x00, 0xc1, 0xcb, 0xab, 0xa2, 0xcc, 0xd8, 0xaf, 0x29, 0x24, 0x9d, 0x17, 0xaf, 0x60, 0xc3, 0x60, 0x07, 0xa7, 0x22, 0xfc, 0x80, 0x25, 0x8a, 0x7b, 0xeb, 0xab, 0x1c, 0xda, 0xad, 0x74, 0x62, 0xa8, 0xb7, 0x58, 0x8c, 0x2f, 0x7e, 0x27, 0xc6, 0xd0, 0x7a, 0xfc, 0xf6, 0x01, 0x17, 0xfe, 0xd1, 0x1b, 0xd6, 0x85, 0x9e, 0x75, 0xe3, 0xb4, 0xfc, 0xee, 0x39, 0x81, 0x88, 0x1e, 0x95, 0xdd, 0x11, 0x68, 0x27, 0xdd, 0x4b, 0x36, 0x9a, 0xf0, 0x69, 0xd3, 0xc8, 0xf2, 0x67, 0x6f, 0x8a, };
7911 static const u8 ed25519_344_test_vectors_expected_sig[] = {
7912 	0x50, 0x75, 0xc0, 0x90, 0xcf, 0xbe, 0xb6, 0xb0, 0x18, 0x02, 0xaf, 0x7f, 0x4d, 0xa5, 0xaa, 0x4f, 0x43, 0x4d, 0x5e, 0xe2, 0xf3, 0x53, 0x0e, 0xeb, 0xb7, 0x5c, 0x85, 0xe0, 0x86, 0x21, 0xf8, 0x3e, 0xdc, 0x08, 0xaa, 0x96, 0x69, 0x38, 0x94, 0xa4, 0x27, 0x76, 0x33, 0xba, 0x81, 0xe1, 0x9e, 0x9e, 0x55, 0xaf, 0x5c, 0x49, 0x5d, 0xaa, 0x5e, 0x1a, 0x6f, 0x8c, 0xbb, 0x79, 0xc0, 0x1c, 0x72, 0x07, };
7913 static const ec_test_case ed25519_344_test_case = {
7914 	.name = "EDDSA25519-SHA512/wei25519 344",
7915 	.ec_str_p = &wei25519_str_params,
7916 	.priv_key = ed25519_344_test_vectors_priv_key,
7917 	.priv_key_len = sizeof(ed25519_344_test_vectors_priv_key),
7918 	.nn_random = NULL,
7919 	.hash_type = SHA512,
7920 	.msg = (const char *)ed25519_344_test_vectors_message,
7921 	.msglen = sizeof(ed25519_344_test_vectors_message),
7922 	.sig_type = EDDSA25519,
7923 	.exp_sig = ed25519_344_test_vectors_expected_sig,
7924 	.exp_siglen = sizeof(ed25519_344_test_vectors_expected_sig),
7925 	.adata = NULL,
7926 	.adata_len = 0
7927 };
7928 
7929 /************************************************/
7930 static const u8 ed25519_345_test_vectors_priv_key[] = {
7931 	0x26, 0x45, 0x04, 0x60, 0x4e, 0x70, 0xd7, 0x2d, 0xc4, 0x47, 0x4d, 0xbb, 0x34, 0x91, 0x3e, 0x9c, 0x0f, 0x80, 0x6d, 0xfe, 0x18, 0xc7, 0x87, 0x9a, 0x41, 0x76, 0x2a, 0x9e, 0x43, 0x90, 0xec, 0x61, };
7932 static const u8 ed25519_345_test_vectors_message[] = {
7933 	0x90, 0x1d, 0x70, 0xe6, 0x7e, 0xd2, 0x42, 0xf2, 0xec, 0x1d, 0xda, 0x81, 0x3d, 0x4c, 0x05, 0x2c, 0xfb, 0x31, 0xfd, 0x00, 0xcf, 0xe5, 0x44, 0x6b, 0xf3, 0xb9, 0x3f, 0xdb, 0x95, 0x0f, 0x95, 0x2d, 0x94, 0xef, 0x9c, 0x99, 0xd1, 0xc2, 0x64, 0xa6, 0xb1, 0x3c, 0x35, 0x54, 0xa2, 0x64, 0xbe, 0xb9, 0x7e, 0xd2, 0x0e, 0x6b, 0x5d, 0x66, 0xad, 0x84, 0xdb, 0x5d, 0x8f, 0x1d, 0xe3, 0x5c, 0x49, 0x6f, 0x94, 0x7a, 0x23, 0x27, 0x09, 0x54, 0x05, 0x1f, 0x8e, 0x4d, 0xbe, 0x0d, 0x3e, 0xf9, 0xab, 0x30, 0x03, 0xdd, 0x47, 0xb8, 0x59, 0x35, 0x6c, 0xec, 0xb8, 0x1c, 0x50, 0xaf, 0xfa, 0x68, 0xc1, 0x5d, 0xad, 0xb5, 0xf8, 0x64, 0xd5, 0xe1, 0xbb, 0x4d, 0x3b, 0xad, 0xa6, 0xf3, 0xab, 0xa1, 0xc8, 0x3c, 0x43, 0x8d, 0x79, 0xa9, 0x4b, 0xfb, 0x50, 0xb4, 0x38, 0x79, 0xe9, 0xce, 0xf0, 0x8a, 0x2b, 0xfb, 0x22, 0xfa, 0xd9, 0x43, 0xdb, 0xf7, 0x68, 0x37, 0x79, 0x74, 0x6e, 0x31, 0xc4, 0x86, 0xf0, 0x1f, 0xd6, 0x44, 0x90, 0x50, 0x48, 0xb1, 0x12, 0xee, 0x25, 0x80, 0x42, 0x15, 0x3f, 0x46, 0xd1, 0xc7, 0x77, 0x2a, 0x06, 0x24, 0xbc, 0xd6, 0x94, 0x1e, 0x90, 0x62, 0xcf, 0xda, 0x75, 0xdc, 0x87, 0x12, 0x53, 0x3f, 0x40, 0x57, 0x33, 0x5c, 0x29, 0x80, 0x38, 0xcb, 0xca, 0x29, 0xeb, 0xdb, 0x56, 0x0a, 0x29, 0x5a, 0x88, 0x33, 0x96, 0x92, 0x80, 0x8e, 0xb3, 0x48, 0x1f, 0xd9, 0x73, 0x5e, 0xa4, 0x14, 0xf6, 0x20, 0xc1, 0x43, 0xb2, 0x13, 0x3f, 0x57, 0xbb, 0x64, 0xe4, 0x47, 0x78, 0xa8, 0xca, 0x70, 0x91, 0x82, 0x02, 0xd1, 0x57, 0x42, 0x61, 0x02, 0xe1, 0xdf, 0xc0, 0xa8, 0xf7, 0xb1, 0xae, 0x48, 0x7b, 0x74, 0xf0, 0x27, 0x92, 0x63, 0x31, 0x54, 0xdf, 0xe7, 0x4c, 0xaa, 0x1b, 0x70, 0x88, 0xfd, 0xa2, 0x2f, 0xa8, 0xb9, 0xbc, 0x35, 0x4c, 0x58, 0x5f, 0x15, 0x67, 0x70, 0x6e, 0x29, 0x55, 0x49, 0x38, 0x70, 0xf5, 0x41, 0x69, 0xe0, 0xd7, 0x69, 0x11, 0x59, 0xdf, 0x43, 0x89, 0x79, 0x61, 0xd2, 0x4a, 0x85, 0x2e, 0xa9, 0x70, 0xc5, 0x14, 0x94, 0x8f, 0x3b, 0x48, 0xf7, 0x1e, 0xe5, 0x86, 0xe7, 0x2e, 0xc7, 0x8d, 0xb8, 0x20, 0xf2, 0x53, 0xe0, 0x8d, 0xb8, 0x4f, 0x6f, 0x31, 0x2c, 0x43, 0x33, 0xbd, 0x0b, 0x73, 0x2f, 0xe7, 0x58, 0x83, 0x50, 0x77, 0x83, 0xe9, 0xa1, 0xfd, 0x4f, 0xba, 0xb8, 0xe5, 0x87, 0x0f, 0x9b, 0xf7, 0xad, 0x58, 0xaa, };
7934 static const u8 ed25519_345_test_vectors_expected_sig[] = {
7935 	0xee, 0xa4, 0x39, 0xa0, 0x0f, 0x7e, 0x45, 0x9b, 0x40, 0x2b, 0x83, 0x51, 0x50, 0xa7, 0x79, 0xee, 0xd1, 0x71, 0xab, 0x97, 0x1b, 0xd1, 0xb5, 0x8d, 0xcc, 0x7f, 0x93, 0x86, 0xda, 0xdd, 0x58, 0x3d, 0xe8, 0xdc, 0x69, 0xe2, 0x67, 0x12, 0x1d, 0xde, 0x41, 0xf0, 0xf9, 0x49, 0x3d, 0x45, 0x0b, 0x16, 0x21, 0x9c, 0xdf, 0x3c, 0x22, 0xf0, 0x94, 0x82, 0xce, 0x40, 0x2f, 0xe1, 0x7c, 0xa4, 0x9e, 0x08, };
7936 static const ec_test_case ed25519_345_test_case = {
7937 	.name = "EDDSA25519-SHA512/wei25519 345",
7938 	.ec_str_p = &wei25519_str_params,
7939 	.priv_key = ed25519_345_test_vectors_priv_key,
7940 	.priv_key_len = sizeof(ed25519_345_test_vectors_priv_key),
7941 	.nn_random = NULL,
7942 	.hash_type = SHA512,
7943 	.msg = (const char *)ed25519_345_test_vectors_message,
7944 	.msglen = sizeof(ed25519_345_test_vectors_message),
7945 	.sig_type = EDDSA25519,
7946 	.exp_sig = ed25519_345_test_vectors_expected_sig,
7947 	.exp_siglen = sizeof(ed25519_345_test_vectors_expected_sig),
7948 	.adata = NULL,
7949 	.adata_len = 0
7950 };
7951 
7952 /************************************************/
7953 static const u8 ed25519_346_test_vectors_priv_key[] = {
7954 	0x2c, 0xa7, 0x44, 0x7a, 0x36, 0x68, 0xb7, 0x48, 0xb1, 0xfd, 0x3d, 0x52, 0xd2, 0x08, 0x0d, 0x30, 0xe3, 0x4d, 0x39, 0x7b, 0xb2, 0x84, 0x6c, 0xaf, 0x8f, 0x65, 0x9a, 0xc1, 0x68, 0x78, 0x8c, 0xa5, };
7955 static const u8 ed25519_346_test_vectors_message[] = {
7956 	0xa8, 0x2b, 0xcd, 0x94, 0x24, 0xbf, 0xfd, 0xa0, 0xf2, 0xf5, 0xe9, 0xea, 0xe1, 0x78, 0x35, 0xdb, 0xe4, 0x68, 0xf6, 0x1b, 0x78, 0x5a, 0xab, 0x82, 0x93, 0x47, 0x37, 0xa9, 0x1c, 0x5f, 0x60, 0x2c, 0xb7, 0xc6, 0x17, 0xcd, 0xff, 0xe8, 0x7c, 0xad, 0x72, 0x6a, 0x49, 0x72, 0xe1, 0x5a, 0x7b, 0x8e, 0xe1, 0x47, 0xf0, 0x62, 0xd2, 0xa5, 0xa4, 0xd8, 0x97, 0x06, 0xb5, 0x71, 0xfa, 0x8a, 0xa2, 0xb9, 0x59, 0x81, 0xc7, 0x8a, 0xbe, 0xaa, 0xae, 0x86, 0x20, 0x3f, 0xa2, 0xc0, 0xe0, 0x72, 0x97, 0x40, 0x6e, 0xa8, 0xc2, 0x71, 0x11, 0xa8, 0x6d, 0xbe, 0x1d, 0x5a, 0x7c, 0x3b, 0x7a, 0xe9, 0x30, 0x90, 0x4d, 0x98, 0x90, 0xf6, 0xd4, 0xab, 0xeb, 0xd1, 0x41, 0x2a, 0x73, 0xad, 0x5f, 0xee, 0xa6, 0x4a, 0xcf, 0x06, 0x5d, 0x3e, 0x63, 0xb5, 0xcb, 0xe2, 0x0c, 0xf2, 0x0b, 0xbd, 0x2d, 0x8b, 0x94, 0xf9, 0x05, 0x3e, 0xd5, 0xf6, 0x66, 0x33, 0x48, 0x25, 0x30, 0x12, 0x44, 0x46, 0x60, 0x59, 0x18, 0xde, 0x66, 0x45, 0x5e, 0x8c, 0xf4, 0xb1, 0x01, 0xa1, 0x27, 0x23, 0x3c, 0x4e, 0x27, 0xd5, 0xd5, 0x5b, 0xf9, 0x5b, 0xd3, 0x19, 0x5d, 0x03, 0x40, 0xd4, 0x35, 0x31, 0xfc, 0x75, 0xfa, 0xf8, 0xdd, 0xed, 0x52, 0x75, 0xbf, 0x89, 0x75, 0x0d, 0xe8, 0x38, 0xfd, 0x10, 0xc3, 0x17, 0x45, 0xbe, 0x4c, 0xa4, 0x1f, 0xa8, 0x71, 0xcb, 0x0f, 0x9b, 0x01, 0x67, 0x06, 0xa1, 0xa7, 0xe3, 0xc4, 0x4b, 0xb9, 0x0a, 0xc7, 0xa8, 0xad, 0x51, 0xe2, 0x72, 0x38, 0x92, 0x92, 0xfd, 0x6c, 0x98, 0xad, 0x7a, 0x06, 0x9e, 0x76, 0xe3, 0xf5, 0xf3, 0xe0, 0xcc, 0x77, 0x0b, 0x9e, 0x9b, 0x35, 0xa7, 0x65, 0xd0, 0xd9, 0x37, 0x12, 0xd7, 0xcd, 0xab, 0xd1, 0x7e, 0x5d, 0x01, 0xdd, 0x81, 0x83, 0xaf, 0x4a, 0xd9, 0x36, 0x5d, 0xb0, 0xa0, 0xfa, 0x41, 0x38, 0x1f, 0xce, 0x60, 0xa0, 0x81, 0xdf, 0x1c, 0x5a, 0xb0, 0xf8, 0xc1, 0x8f, 0x95, 0xa7, 0xa8, 0xb5, 0x82, 0xdf, 0xff, 0x7f, 0x14, 0x9e, 0xa5, 0x79, 0xdf, 0x06, 0x23, 0xb3, 0x3b, 0x75, 0x08, 0xf0, 0xc6, 0x63, 0xf0, 0x1e, 0x3a, 0x2d, 0xcd, 0x9d, 0xfb, 0xee, 0x51, 0xcc, 0x61, 0x52, 0x20, 0xfd, 0xaf, 0xfd, 0xab, 0x51, 0xbd, 0xae, 0x42, 0xcb, 0x9f, 0x7f, 0xa9, 0xe3, 0xb7, 0xc6, 0x9c, 0xc8, 0xad, 0xa5, 0xcc, 0xd6, 0x42, 0x52, 0x9b, 0xa5, 0x14, 0xfd, 0xc5, 0x4f, 0xcf, 0x27, 0x20, 0xb8, 0xf5, 0xd0, 0x8b, 0x95, };
7957 static const u8 ed25519_346_test_vectors_expected_sig[] = {
7958 	0xf9, 0x3a, 0xda, 0x15, 0xae, 0x9c, 0xd2, 0xb5, 0x4f, 0x26, 0xf8, 0x6f, 0x0c, 0x28, 0x39, 0x2a, 0xed, 0x5e, 0xb6, 0xb6, 0xb4, 0x4d, 0x01, 0xa4, 0xe3, 0x3a, 0x54, 0xe7, 0xda, 0x37, 0xc3, 0x8e, 0x8d, 0x53, 0x36, 0x6f, 0x73, 0xfd, 0x85, 0xbe, 0x64, 0x2e, 0x4e, 0xc8, 0x12, 0x36, 0xd1, 0x63, 0xf0, 0xd0, 0x25, 0xe7, 0x6c, 0x8b, 0xbd, 0xd6, 0x5d, 0x43, 0xdf, 0x49, 0xf0, 0x9c, 0x1f, 0x01, };
7959 static const ec_test_case ed25519_346_test_case = {
7960 	.name = "EDDSA25519-SHA512/wei25519 346",
7961 	.ec_str_p = &wei25519_str_params,
7962 	.priv_key = ed25519_346_test_vectors_priv_key,
7963 	.priv_key_len = sizeof(ed25519_346_test_vectors_priv_key),
7964 	.nn_random = NULL,
7965 	.hash_type = SHA512,
7966 	.msg = (const char *)ed25519_346_test_vectors_message,
7967 	.msglen = sizeof(ed25519_346_test_vectors_message),
7968 	.sig_type = EDDSA25519,
7969 	.exp_sig = ed25519_346_test_vectors_expected_sig,
7970 	.exp_siglen = sizeof(ed25519_346_test_vectors_expected_sig),
7971 	.adata = NULL,
7972 	.adata_len = 0
7973 };
7974 
7975 /************************************************/
7976 static const u8 ed25519_347_test_vectors_priv_key[] = {
7977 	0x49, 0x4e, 0xa9, 0xbc, 0xce, 0x26, 0x88, 0x5b, 0x7d, 0x17, 0xd1, 0xfc, 0x11, 0x44, 0x48, 0xf2, 0x39, 0xf0, 0xce, 0x46, 0xe5, 0xf2, 0x47, 0xb4, 0xc9, 0x99, 0xfa, 0x86, 0x29, 0x69, 0x24, 0x72, };
7978 static const u8 ed25519_347_test_vectors_message[] = {
7979 	0x3b, 0xad, 0xbf, 0xa5, 0xf5, 0xa8, 0xaa, 0x2c, 0xce, 0x0a, 0x60, 0xe6, 0x86, 0xcd, 0xce, 0x65, 0x4d, 0x24, 0x45, 0x2f, 0x98, 0xfd, 0x54, 0x87, 0x2e, 0x73, 0x95, 0xb3, 0x94, 0x64, 0x38, 0x0a, 0x0e, 0x18, 0x55, 0x57, 0xea, 0x13, 0x4d, 0x09, 0x57, 0x30, 0x86, 0x4f, 0x42, 0x54, 0xd3, 0xdd, 0x94, 0x69, 0x70, 0xc1, 0x0c, 0x80, 0x4f, 0xcc, 0x08, 0x99, 0xdf, 0xa0, 0x24, 0x20, 0x5b, 0xe0, 0xf8, 0x0b, 0x1c, 0x75, 0x44, 0x95, 0x23, 0x32, 0x4f, 0xe6, 0xa0, 0x75, 0x1e, 0x47, 0xb4, 0xff, 0x48, 0x22, 0xb8, 0xc3, 0x3e, 0x9e, 0xaf, 0x1d, 0x1d, 0x96, 0xe0, 0xde, 0x3d, 0x4a, 0xcd, 0x89, 0x69, 0x6b, 0x7f, 0xcc, 0x03, 0xd4, 0x9f, 0x92, 0xf8, 0x2b, 0x97, 0x25, 0x70, 0x0b, 0x35, 0x0d, 0xb1, 0xa8, 0x76, 0x15, 0x36, 0x95, 0x45, 0x56, 0x1b, 0x85, 0x99, 0xf5, 0xea, 0x92, 0x0a, 0x31, 0x0a, 0x8b, 0xaf, 0xc0, 0xe8, 0xd7, 0x46, 0x8c, 0xbf, 0x6f, 0x38, 0x20, 0xe9, 0x43, 0x59, 0x4a, 0xfd, 0xd5, 0x16, 0x6e, 0x4e, 0x33, 0x09, 0xdd, 0xdd, 0x76, 0x94, 0xef, 0x67, 0xe6, 0x94, 0xf3, 0x4f, 0xc6, 0x27, 0x24, 0xff, 0x96, 0xac, 0x33, 0x64, 0x17, 0x6f, 0x34, 0xe8, 0xa0, 0x2b, 0x4c, 0xf5, 0x69, 0xdb, 0x5b, 0x8f, 0x77, 0xd5, 0x85, 0x12, 0xae, 0xda, 0xbf, 0x0b, 0xcd, 0x1c, 0x2d, 0xf1, 0x2d, 0xb3, 0xa9, 0x47, 0x3f, 0x94, 0x8c, 0x5c, 0x32, 0x43, 0x30, 0x9a, 0xae, 0x46, 0xc4, 0x9e, 0xfd, 0x08, 0x8b, 0x60, 0xf3, 0x1a, 0x8a, 0x72, 0xad, 0x7e, 0x5a, 0x35, 0xac, 0xc5, 0xd8, 0x9f, 0xa6, 0x68, 0x07, 0xeb, 0x5d, 0x3b, 0xa9, 0xcd, 0xf0, 0x8d, 0x47, 0x53, 0xcb, 0x85, 0x08, 0x9e, 0xe3, 0x6f, 0x5c, 0x96, 0xb4, 0x32, 0xb6, 0x92, 0x83, 0x52, 0xaf, 0xad, 0x58, 0x01, 0x22, 0x25, 0xd6, 0x15, 0x7f, 0x9e, 0x36, 0x11, 0x42, 0x6d, 0xf9, 0x21, 0xb6, 0xd1, 0xd8, 0x37, 0x46, 0x28, 0xa6, 0x30, 0x31, 0xe9, 0xff, 0xb9, 0x0e, 0x42, 0xff, 0xbb, 0xa0, 0x21, 0xf1, 0x74, 0xf6, 0x85, 0x03, 0x15, 0x54, 0x30, 0x15, 0x2c, 0x91, 0x55, 0xdc, 0x98, 0xff, 0xa2, 0x6c, 0x4f, 0xab, 0x06, 0x5e, 0x1f, 0x8e, 0x46, 0x22, 0xc2, 0xf2, 0x8a, 0x8c, 0xb0, 0x43, 0x11, 0x0b, 0x61, 0x74, 0x41, 0x14, 0x0f, 0x8e, 0x20, 0xad, 0xc1, 0x6f, 0x79, 0x9d, 0x1d, 0x50, 0x96, 0xb1, 0xf5, 0x05, 0x32, 0xbe, 0x50, 0x42, 0xd2, 0x1b, 0x81, 0xea, 0x46, 0xc7, };
7980 static const u8 ed25519_347_test_vectors_expected_sig[] = {
7981 	0x54, 0x8a, 0x09, 0x3a, 0x68, 0x03, 0x61, 0xb7, 0xdc, 0x56, 0xf1, 0x45, 0x03, 0xb5, 0x5e, 0xee, 0xc3, 0xb3, 0xf4, 0xfd, 0x4c, 0xa9, 0x9d, 0x6a, 0xed, 0xce, 0x08, 0x30, 0xf7, 0xf4, 0xae, 0x2f, 0x73, 0x28, 0x53, 0x9b, 0x34, 0xc4, 0x8f, 0xc9, 0x76, 0x09, 0x22, 0x33, 0x3d, 0xae, 0x9c, 0x7c, 0x01, 0x7e, 0x7d, 0xb7, 0x3b, 0x8f, 0xaa, 0x6c, 0x06, 0xbe, 0x05, 0xe3, 0x47, 0x99, 0x2b, 0x06, };
7982 static const ec_test_case ed25519_347_test_case = {
7983 	.name = "EDDSA25519-SHA512/wei25519 347",
7984 	.ec_str_p = &wei25519_str_params,
7985 	.priv_key = ed25519_347_test_vectors_priv_key,
7986 	.priv_key_len = sizeof(ed25519_347_test_vectors_priv_key),
7987 	.nn_random = NULL,
7988 	.hash_type = SHA512,
7989 	.msg = (const char *)ed25519_347_test_vectors_message,
7990 	.msglen = sizeof(ed25519_347_test_vectors_message),
7991 	.sig_type = EDDSA25519,
7992 	.exp_sig = ed25519_347_test_vectors_expected_sig,
7993 	.exp_siglen = sizeof(ed25519_347_test_vectors_expected_sig),
7994 	.adata = NULL,
7995 	.adata_len = 0
7996 };
7997 
7998 /************************************************/
7999 static const u8 ed25519_348_test_vectors_priv_key[] = {
8000 	0x00, 0xd7, 0x35, 0xeb, 0xae, 0xe7, 0x5d, 0xd5, 0x79, 0xa4, 0x0d, 0xfd, 0x82, 0x50, 0x82, 0x74, 0xd0, 0x1a, 0x15, 0x72, 0xdf, 0x99, 0xb8, 0x11, 0xd5, 0xb0, 0x11, 0x90, 0xd8, 0x21, 0x92, 0xe4, };
8001 static const u8 ed25519_348_test_vectors_message[] = {
8002 	0x59, 0xc0, 0xb6, 0x9a, 0xf9, 0x5d, 0x07, 0x4c, 0x88, 0xfd, 0xc8, 0xf0, 0x63, 0xbf, 0xdc, 0x31, 0xb5, 0xf4, 0xa9, 0xbc, 0x9c, 0xec, 0xdf, 0xfa, 0x81, 0x28, 0xe0, 0x1e, 0x7c, 0x19, 0x37, 0xdd, 0xe5, 0xeb, 0x05, 0x70, 0xb5, 0x1b, 0x7b, 0x5d, 0x0a, 0x67, 0xa3, 0x55, 0x5b, 0x4c, 0xdc, 0xe2, 0xbc, 0xa7, 0xa3, 0x1a, 0x4f, 0xe8, 0xe1, 0xd0, 0x3a, 0xb3, 0x2b, 0x40, 0x35, 0xe6, 0xda, 0xdb, 0xf1, 0x53, 0x20, 0x59, 0xee, 0x01, 0xd3, 0xd9, 0xa7, 0x63, 0x3a, 0x0e, 0x70, 0x6a, 0x11, 0x54, 0xca, 0xb2, 0x2a, 0x07, 0xcd, 0x74, 0xc0, 0x6a, 0x3c, 0xb6, 0x01, 0x24, 0x4c, 0xf3, 0xcf, 0x35, 0xa3, 0x5c, 0x31, 0x00, 0xba, 0x47, 0xf3, 0x13, 0x72, 0xa2, 0xda, 0x65, 0xdc, 0xff, 0x0d, 0x7a, 0x80, 0xa1, 0x05, 0x5d, 0x8a, 0xa9, 0x92, 0x12, 0xe8, 0x99, 0xaa, 0xd7, 0xf0, 0x2e, 0x94, 0x9e, 0x6f, 0xee, 0x4d, 0x3c, 0x9c, 0xef, 0xa8, 0x50, 0x69, 0xea, 0xff, 0x1f, 0x6a, 0xd0, 0x6f, 0xc3, 0x00, 0xc8, 0x71, 0xab, 0x82, 0xb2, 0xbe, 0xdb, 0x93, 0x4d, 0x20, 0x87, 0x5c, 0x2a, 0x26, 0x32, 0x42, 0xcd, 0xb7, 0xf9, 0xbe, 0x19, 0x2a, 0x87, 0x10, 0xb2, 0x4c, 0x7e, 0xa9, 0x8d, 0x43, 0xda, 0xec, 0x8b, 0xaa, 0x55, 0x53, 0xc6, 0x78, 0xa3, 0x8f, 0x0e, 0x0a, 0xdf, 0x7d, 0x3f, 0xf2, 0xdc, 0xc7, 0x99, 0xa1, 0xdb, 0xad, 0x6e, 0xab, 0x1c, 0x3d, 0x94, 0x58, 0xa9, 0xdb, 0x92, 0x2f, 0x02, 0xe7, 0x5c, 0xfa, 0xb9, 0xd6, 0x5c, 0x73, 0x36, 0xda, 0xe7, 0x18, 0x95, 0xd5, 0xbb, 0x15, 0xca, 0xc2, 0x03, 0xf2, 0xb3, 0x8b, 0x99, 0x96, 0xc4, 0x10, 0xf8, 0x65, 0x5a, 0xd2, 0x2d, 0x3c, 0x09, 0x1c, 0x20, 0xb7, 0xf9, 0x26, 0xd4, 0x5e, 0x78, 0x01, 0x28, 0xf1, 0x97, 0x47, 0x46, 0x2a, 0xbc, 0x5c, 0x58, 0x93, 0x2f, 0xbb, 0x9e, 0x0b, 0xc6, 0x2d, 0x53, 0x86, 0x88, 0x02, 0xf1, 0xb0, 0x83, 0xf1, 0x83, 0xb8, 0xa1, 0xf9, 0x43, 0x49, 0x86, 0xd5, 0xcf, 0x97, 0xc0, 0x4e, 0x2f, 0x3e, 0x14, 0x57, 0x30, 0xcb, 0xa9, 0x87, 0x79, 0xc7, 0xfe, 0xd0, 0xca, 0xb1, 0xc0, 0x5d, 0x5e, 0x46, 0x53, 0xc6, 0xc3, 0xf6, 0x73, 0x62, 0x60, 0xbc, 0x78, 0xee, 0x43, 0x72, 0x86, 0x2f, 0xfe, 0x9e, 0x90, 0x37, 0x1d, 0x76, 0x2c, 0x74, 0x32, 0x78, 0x1f, 0x35, 0xce, 0xd8, 0x84, 0xa4, 0xba, 0xca, 0x05, 0x65, 0x3e, 0xf2, 0x5f, 0x25, 0xa6, 0xf3, 0xd5, 0x62, 0x83, 0x08, };
8003 static const u8 ed25519_348_test_vectors_expected_sig[] = {
8004 	0xdc, 0xdc, 0x54, 0x61, 0x19, 0x37, 0xd2, 0xbd, 0x06, 0xca, 0xcd, 0x98, 0x18, 0xb3, 0xbe, 0x15, 0xce, 0x74, 0x25, 0x42, 0x7a, 0x75, 0xf5, 0x0d, 0x19, 0x7a, 0x33, 0x7a, 0x3b, 0x8b, 0xa6, 0x71, 0x4e, 0xf4, 0x88, 0x66, 0xf2, 0x43, 0xbd, 0x5a, 0xc7, 0x41, 0x5e, 0x91, 0x45, 0x17, 0xa2, 0xc1, 0xc5, 0xa9, 0x53, 0xf4, 0x32, 0xb9, 0x9d, 0xb0, 0xe6, 0x20, 0xd6, 0x4f, 0x74, 0xeb, 0x85, 0x05, };
8005 static const ec_test_case ed25519_348_test_case = {
8006 	.name = "EDDSA25519-SHA512/wei25519 348",
8007 	.ec_str_p = &wei25519_str_params,
8008 	.priv_key = ed25519_348_test_vectors_priv_key,
8009 	.priv_key_len = sizeof(ed25519_348_test_vectors_priv_key),
8010 	.nn_random = NULL,
8011 	.hash_type = SHA512,
8012 	.msg = (const char *)ed25519_348_test_vectors_message,
8013 	.msglen = sizeof(ed25519_348_test_vectors_message),
8014 	.sig_type = EDDSA25519,
8015 	.exp_sig = ed25519_348_test_vectors_expected_sig,
8016 	.exp_siglen = sizeof(ed25519_348_test_vectors_expected_sig),
8017 	.adata = NULL,
8018 	.adata_len = 0
8019 };
8020 
8021 /************************************************/
8022 static const u8 ed25519_349_test_vectors_priv_key[] = {
8023 	0x8c, 0x34, 0xb9, 0x05, 0x44, 0x0b, 0x61, 0x91, 0x1d, 0x1d, 0x81, 0x37, 0xc5, 0x3d, 0x46, 0xa1, 0xa7, 0x6d, 0x46, 0x09, 0xaf, 0x97, 0x3e, 0x18, 0xeb, 0x4c, 0x57, 0x09, 0x29, 0x56, 0x27, 0xbb, };
8024 static const u8 ed25519_349_test_vectors_message[] = {
8025 	0x30, 0xb5, 0x7a, 0x38, 0x9b, 0x48, 0xa0, 0xbe, 0xb1, 0xa4, 0x84, 0x32, 0xbf, 0xf6, 0xb3, 0x14, 0xbd, 0xed, 0x79, 0xc4, 0xa1, 0x76, 0x3a, 0x5a, 0xcb, 0x57, 0xce, 0xa1, 0xbf, 0xb4, 0xc6, 0xd0, 0x16, 0xcf, 0x09, 0x0f, 0x5b, 0xd0, 0x5b, 0xbd, 0x11, 0x4e, 0x33, 0xae, 0x7c, 0x17, 0x78, 0x2d, 0xfa, 0x26, 0x4f, 0x46, 0xc4, 0x5f, 0x8c, 0x59, 0x9c, 0x60, 0x30, 0x16, 0xfe, 0x9f, 0xf0, 0x5b, 0x6b, 0x5a, 0x99, 0xe9, 0x2f, 0xe7, 0x13, 0xa4, 0xcd, 0x5c, 0x41, 0xb2, 0x92, 0xed, 0x2b, 0xb2, 0xe9, 0xcf, 0x33, 0xa4, 0x40, 0x54, 0x2e, 0x82, 0x1e, 0xc8, 0x2c, 0xbf, 0x66, 0x5c, 0x3f, 0x02, 0xe3, 0xdc, 0x33, 0x7d, 0x7f, 0xdb, 0x58, 0xe3, 0x1b, 0x27, 0xcb, 0x29, 0x54, 0x54, 0x14, 0x68, 0x81, 0x46, 0x98, 0x51, 0x0d, 0xf1, 0x8c, 0x85, 0xc8, 0x1f, 0xad, 0x12, 0xdb, 0x11, 0xec, 0x6b, 0x96, 0x6f, 0x49, 0x30, 0xda, 0x56, 0x46, 0xb9, 0x91, 0xdb, 0x97, 0x44, 0x50, 0x97, 0xda, 0x30, 0xda, 0xb6, 0x1c, 0xda, 0x53, 0xa4, 0x10, 0x83, 0xcb, 0x96, 0xad, 0xd1, 0x9d, 0xe6, 0xc5, 0xee, 0xc3, 0x23, 0xbc, 0xa9, 0xd3, 0x53, 0x0e, 0x38, 0xc0, 0x0b, 0x35, 0xaf, 0x73, 0x60, 0x07, 0x76, 0x01, 0xbe, 0x6a, 0xc9, 0x7f, 0x30, 0x30, 0xf9, 0x30, 0xa2, 0x7b, 0x90, 0xfe, 0x8b, 0x69, 0x11, 0xba, 0xe3, 0x89, 0x06, 0x5a, 0xdc, 0x15, 0xe1, 0x88, 0x23, 0x00, 0xe2, 0xa0, 0x03, 0x27, 0x4d, 0x23, 0x18, 0x2d, 0x5e, 0xfd, 0x5b, 0xa4, 0xb9, 0x13, 0x0c, 0x07, 0xbd, 0x5c, 0x65, 0xfe, 0xcb, 0x8b, 0x5c, 0xb7, 0xeb, 0x38, 0x83, 0x6b, 0x31, 0x8b, 0xef, 0xdf, 0xd7, 0x7d, 0xe4, 0xd6, 0xca, 0x01, 0x81, 0xf7, 0x7a, 0xe5, 0x74, 0x08, 0x91, 0x68, 0x32, 0x25, 0xf5, 0x49, 0xdd, 0x84, 0x26, 0x14, 0x5c, 0x97, 0xc5, 0x81, 0x8c, 0x31, 0x9f, 0x7a, 0xb2, 0xd8, 0x68, 0xe1, 0xa4, 0x1c, 0xea, 0xb6, 0x4c, 0x08, 0x51, 0x16, 0x06, 0x98, 0x97, 0xbf, 0x2c, 0xa3, 0x66, 0x76, 0x52, 0x40, 0x61, 0x55, 0xed, 0x06, 0x46, 0x43, 0x1b, 0x6d, 0xe1, 0xcc, 0xc0, 0x3b, 0x42, 0x79, 0xae, 0x4d, 0x32, 0x66, 0x79, 0x26, 0x5d, 0xce, 0x82, 0x04, 0x8e, 0x72, 0x98, 0xe1, 0xf8, 0x7f, 0xce, 0xc0, 0x76, 0x8a, 0xc0, 0xf5, 0xd8, 0xff, 0x84, 0xf7, 0x21, 0x0b, 0xe5, 0x4d, 0x41, 0x1a, 0xf8, 0xed, 0xea, 0x72, 0x17, 0xf4, 0xe5, 0x94, 0x13, 0x12, 0x1e, 0x14, 0x8c, 0x60, 0xda, };
8026 static const u8 ed25519_349_test_vectors_expected_sig[] = {
8027 	0x3e, 0x0b, 0x72, 0x07, 0x3d, 0xc9, 0x37, 0x5e, 0xed, 0xcc, 0xa6, 0xc4, 0xfc, 0x1c, 0xd3, 0x15, 0x93, 0x8a, 0x05, 0x0c, 0x92, 0x71, 0x6b, 0xd2, 0x28, 0x4f, 0x46, 0x29, 0xa9, 0x62, 0xbe, 0xec, 0x0b, 0x7d, 0x7c, 0xf1, 0x6a, 0xb9, 0x23, 0xd5, 0x8f, 0x5b, 0x90, 0xd3, 0x90, 0x1a, 0x8e, 0x5c, 0x75, 0xc8, 0xf1, 0x7d, 0xab, 0x99, 0x98, 0xe0, 0x07, 0xd8, 0xc4, 0x95, 0x11, 0x97, 0x3d, 0x0e, };
8028 static const ec_test_case ed25519_349_test_case = {
8029 	.name = "EDDSA25519-SHA512/wei25519 349",
8030 	.ec_str_p = &wei25519_str_params,
8031 	.priv_key = ed25519_349_test_vectors_priv_key,
8032 	.priv_key_len = sizeof(ed25519_349_test_vectors_priv_key),
8033 	.nn_random = NULL,
8034 	.hash_type = SHA512,
8035 	.msg = (const char *)ed25519_349_test_vectors_message,
8036 	.msglen = sizeof(ed25519_349_test_vectors_message),
8037 	.sig_type = EDDSA25519,
8038 	.exp_sig = ed25519_349_test_vectors_expected_sig,
8039 	.exp_siglen = sizeof(ed25519_349_test_vectors_expected_sig),
8040 	.adata = NULL,
8041 	.adata_len = 0
8042 };
8043 
8044 /************************************************/
8045 static const u8 ed25519_350_test_vectors_priv_key[] = {
8046 	0x77, 0xa8, 0x3e, 0x18, 0xc9, 0xf0, 0x00, 0xee, 0xff, 0x7d, 0xee, 0xac, 0x95, 0x9e, 0xcb, 0xa2, 0x20, 0x6c, 0x0a, 0xa3, 0x9d, 0x2f, 0x0e, 0x2a, 0xed, 0x57, 0x29, 0x48, 0x2a, 0x7a, 0x02, 0x29, };
8047 static const u8 ed25519_350_test_vectors_message[] = {
8048 	0xf3, 0xd5, 0xfa, 0x2a, 0xca, 0xef, 0xd8, 0x58, 0xf1, 0xdf, 0x26, 0xe0, 0x30, 0x59, 0xcd, 0xcb, 0xc2, 0x46, 0x8a, 0xd7, 0x4a, 0xfc, 0x99, 0x3d, 0x0d, 0xb9, 0xc4, 0xcd, 0xe4, 0x11, 0x3f, 0x8d, 0x55, 0xc7, 0xda, 0x71, 0xd3, 0x8b, 0xa0, 0x65, 0x20, 0x53, 0x1c, 0x61, 0xfd, 0xdb, 0x5f, 0x33, 0xd5, 0xf0, 0x35, 0x3b, 0xe2, 0x37, 0x6e, 0x58, 0x07, 0x11, 0xbe, 0x45, 0xc0, 0xa3, 0x0b, 0x1f, 0xa0, 0x1b, 0x55, 0xe2, 0x28, 0xc6, 0xfa, 0x35, 0xe3, 0xf9, 0x5b, 0x67, 0x90, 0x9f, 0xc7, 0xdf, 0x3f, 0xd4, 0x64, 0xd9, 0x3d, 0x66, 0x1a, 0x92, 0x6f, 0x9d, 0x11, 0xf7, 0x55, 0x0c, 0x17, 0xfb, 0xcc, 0x34, 0x96, 0x52, 0x6e, 0x8f, 0x10, 0xe0, 0xc8, 0x91, 0x66, 0x77, 0xb2, 0xbe, 0x5b, 0x31, 0x9b, 0x68, 0x8f, 0x21, 0xe8, 0x1a, 0xaa, 0x94, 0x82, 0xe5, 0xc9, 0x3e, 0x64, 0xce, 0x8c, 0x43, 0x7b, 0x9c, 0x1e, 0x14, 0xfe, 0xfe, 0xd7, 0x0a, 0x3f, 0xee, 0x56, 0x88, 0x11, 0xdc, 0x31, 0xca, 0xda, 0xb3, 0xd5, 0xb2, 0x20, 0x25, 0x44, 0x65, 0x33, 0x6d, 0xc4, 0xd9, 0x7a, 0x3b, 0xd0, 0x96, 0xb5, 0xe0, 0x65, 0xe0, 0xcf, 0xbe, 0x82, 0x84, 0x9e, 0x2c, 0x19, 0x05, 0xac, 0xa4, 0x86, 0x53, 0x3f, 0x0d, 0xa7, 0xa6, 0x1f, 0x1e, 0x9a, 0x55, 0xb8, 0xe2, 0xa8, 0x32, 0x62, 0xde, 0xeb, 0x59, 0xf2, 0xb1, 0x3d, 0x3a, 0x8a, 0xef, 0x57, 0x00, 0x84, 0x5b, 0x83, 0xb2, 0x5a, 0xe2, 0x18, 0x3c, 0x0d, 0xda, 0xc0, 0xce, 0x42, 0xf8, 0xd2, 0x56, 0x74, 0xcb, 0x0d, 0x0d, 0x22, 0x0a, 0x6d, 0xe7, 0xc1, 0x85, 0x8b, 0xb0, 0x7d, 0x59, 0xa3, 0x37, 0x23, 0x44, 0xd9, 0x44, 0x60, 0x2a, 0xa4, 0x51, 0xd2, 0xb9, 0x37, 0xdb, 0x0f, 0xe6, 0xfe, 0xca, 0x0b, 0xeb, 0xa8, 0x17, 0x21, 0xfc, 0x36, 0x1e, 0xa7, 0x50, 0x9e, 0x2b, 0x6d, 0x39, 0x7e, 0x1c, 0x19, 0x1b, 0x56, 0xf5, 0x4a, 0xb4, 0x36, 0xd0, 0xd2, 0x7a, 0xb4, 0xc0, 0x61, 0xbd, 0x66, 0x1a, 0xd1, 0xa4, 0x45, 0x23, 0x87, 0xe8, 0x73, 0x57, 0x54, 0xd0, 0x7f, 0xa7, 0xef, 0x4d, 0x45, 0x48, 0xb1, 0x72, 0x58, 0x24, 0x25, 0xb2, 0x99, 0x04, 0x6e, 0x63, 0x01, 0xb5, 0xba, 0x6b, 0x91, 0x44, 0x18, 0xf1, 0x49, 0xcf, 0x72, 0x2e, 0x10, 0xbd, 0xe2, 0xe0, 0xd4, 0x17, 0x00, 0xf1, 0x2c, 0x84, 0x29, 0xfc, 0x89, 0x7b, 0x78, 0x19, 0xda, 0x92, 0x29, 0x22, 0x40, 0xcd, 0x45, 0x56, 0x54, 0x58, 0xc9, 0xa7, 0xb2, 0x9c, 0x12, };
8049 static const u8 ed25519_350_test_vectors_expected_sig[] = {
8050 	0x1e, 0xaa, 0xd8, 0x42, 0x0a, 0xc1, 0x2c, 0x99, 0xac, 0x1f, 0xf4, 0x47, 0x66, 0x78, 0xe3, 0xcb, 0xbe, 0x94, 0xda, 0x6a, 0x79, 0x7f, 0x17, 0x46, 0x64, 0xd5, 0xee, 0x0f, 0x64, 0x14, 0x33, 0xfb, 0x1e, 0x7c, 0xb2, 0xf5, 0x61, 0x3e, 0x10, 0x80, 0x5d, 0xf8, 0x65, 0x4c, 0xd8, 0xe0, 0xd4, 0x5d, 0x96, 0x23, 0x09, 0x32, 0xbc, 0x7f, 0x20, 0xb0, 0x4e, 0xae, 0x83, 0x64, 0x35, 0x13, 0x43, 0x09, };
8051 static const ec_test_case ed25519_350_test_case = {
8052 	.name = "EDDSA25519-SHA512/wei25519 350",
8053 	.ec_str_p = &wei25519_str_params,
8054 	.priv_key = ed25519_350_test_vectors_priv_key,
8055 	.priv_key_len = sizeof(ed25519_350_test_vectors_priv_key),
8056 	.nn_random = NULL,
8057 	.hash_type = SHA512,
8058 	.msg = (const char *)ed25519_350_test_vectors_message,
8059 	.msglen = sizeof(ed25519_350_test_vectors_message),
8060 	.sig_type = EDDSA25519,
8061 	.exp_sig = ed25519_350_test_vectors_expected_sig,
8062 	.exp_siglen = sizeof(ed25519_350_test_vectors_expected_sig),
8063 	.adata = NULL,
8064 	.adata_len = 0
8065 };
8066 
8067 /************************************************/
8068 static const u8 ed25519_351_test_vectors_priv_key[] = {
8069 	0x73, 0xb0, 0x33, 0x73, 0xef, 0x1f, 0xd8, 0x49, 0x00, 0x5e, 0xcd, 0x62, 0x70, 0xdd, 0x99, 0x06, 0xf1, 0x9f, 0x44, 0x39, 0xe4, 0x03, 0x76, 0xcd, 0xbc, 0x52, 0x09, 0x02, 0xbc, 0x97, 0x68, 0x12, };
8070 static const u8 ed25519_351_test_vectors_message[] = {
8071 	0xd5, 0xc2, 0xde, 0xab, 0xa7, 0x95, 0xc3, 0x0a, 0xba, 0x32, 0x1b, 0xc7, 0xde, 0x69, 0x96, 0xf0, 0xd9, 0x0e, 0x4d, 0x05, 0xc7, 0x47, 0xfb, 0x4d, 0xae, 0x8f, 0x34, 0x51, 0x89, 0x5d, 0xef, 0x6e, 0x16, 0xe7, 0x2f, 0x38, 0xea, 0xce, 0x75, 0x6f, 0x36, 0x63, 0x5f, 0x8f, 0xb0, 0xb7, 0x2a, 0x3a, 0x0c, 0x1f, 0x54, 0x66, 0x38, 0x17, 0xa9, 0x4d, 0x4f, 0xd3, 0x46, 0xf8, 0x35, 0xab, 0x0e, 0x65, 0x7f, 0x00, 0x1a, 0x6f, 0x2c, 0xec, 0xb8, 0x6d, 0x08, 0x25, 0xbd, 0x02, 0x63, 0x92, 0x54, 0xf7, 0xf7, 0xf3, 0x8c, 0xa9, 0x9d, 0xbb, 0x86, 0xc6, 0x4a, 0x63, 0x3f, 0x73, 0xba, 0xf9, 0x33, 0xaa, 0xe3, 0x56, 0x32, 0x81, 0xf4, 0x00, 0x5e, 0x2d, 0x0e, 0x7c, 0xec, 0x9f, 0xbd, 0xe8, 0xe5, 0x88, 0xa9, 0x57, 0xe2, 0x11, 0x06, 0x8b, 0xe6, 0x5b, 0x3d, 0x3d, 0x35, 0xbf, 0x4e, 0x8d, 0x5b, 0xb3, 0x47, 0x83, 0x33, 0xdf, 0x9c, 0xed, 0x9b, 0x2a, 0xba, 0xf4, 0x86, 0x97, 0x99, 0x4a, 0x14, 0x5e, 0x93, 0x21, 0x49, 0x9f, 0xc5, 0xee, 0x56, 0x0f, 0x4f, 0xbb, 0x68, 0x49, 0xe1, 0xae, 0x8e, 0xb3, 0xd1, 0xde, 0x00, 0x83, 0xa2, 0x1a, 0x03, 0xf6, 0xa6, 0xb2, 0x81, 0x76, 0xf0, 0x13, 0x0d, 0x38, 0x95, 0xe5, 0x0e, 0x75, 0xe3, 0xd7, 0xd0, 0x94, 0x7a, 0x7b, 0xc2, 0xc5, 0xb9, 0xff, 0x69, 0x89, 0x5d, 0x27, 0x79, 0x14, 0x42, 0xba, 0x8d, 0x0f, 0x21, 0x80, 0x71, 0x2b, 0x56, 0x7f, 0x71, 0x2e, 0xa9, 0x12, 0xf3, 0xb0, 0xd9, 0x2c, 0x19, 0x34, 0x2e, 0x01, 0x06, 0xff, 0x1d, 0x87, 0xb4, 0x6a, 0xd3, 0x3a, 0xf3, 0x00, 0xb9, 0x08, 0x55, 0xba, 0x97, 0x69, 0xd3, 0x66, 0xe7, 0x94, 0x25, 0xd9, 0x8e, 0x4d, 0xe1, 0x99, 0x05, 0xa0, 0x45, 0x77, 0x70, 0x7c, 0xbe, 0x62, 0x5b, 0x84, 0x69, 0x17, 0x81, 0xcd, 0x26, 0xbf, 0x62, 0x26, 0x0b, 0x4a, 0x8b, 0xd6, 0x05, 0xf7, 0x7a, 0xf6, 0xf9, 0x70, 0xe1, 0xb3, 0xa1, 0x12, 0xe8, 0x91, 0x83, 0x44, 0xbd, 0x0d, 0x8d, 0x2e, 0x41, 0xdf, 0xd2, 0xce, 0x98, 0x95, 0xb0, 0x24, 0x6e, 0x50, 0x88, 0x7a, 0xa3, 0xa5, 0x77, 0xff, 0x73, 0xbe, 0x4b, 0x6a, 0xe6, 0x0f, 0xeb, 0x0c, 0xa3, 0x6f, 0x6a, 0x5f, 0x81, 0x71, 0xed, 0x20, 0x9e, 0x5c, 0x56, 0x65, 0x29, 0xc0, 0x94, 0x0d, 0x9b, 0x4b, 0xd7, 0x44, 0xcc, 0xee, 0x56, 0xe5, 0x4a, 0x9a, 0x0c, 0x6e, 0x4d, 0xa5, 0x20, 0xdd, 0x31, 0x5c, 0x28, 0x72, 0xb0, 0x2d, 0xb5, 0x63, 0x70, 0x3e, };
8072 static const u8 ed25519_351_test_vectors_expected_sig[] = {
8073 	0xa4, 0x0a, 0xbe, 0x98, 0xfc, 0x69, 0xda, 0x8a, 0x1f, 0xf9, 0xff, 0x5c, 0x2c, 0xca, 0x93, 0x63, 0x2e, 0x97, 0x59, 0x80, 0xee, 0x8b, 0x82, 0xc3, 0xc3, 0x76, 0x02, 0x2d, 0x65, 0x24, 0xab, 0x73, 0x6d, 0x01, 0xb0, 0x72, 0xf2, 0xb6, 0x81, 0xb5, 0xf1, 0xcd, 0x3e, 0xa0, 0x67, 0x01, 0x2e, 0xd6, 0xd0, 0x74, 0xe9, 0x49, 0xc4, 0x23, 0x27, 0xa3, 0x66, 0xca, 0xa9, 0xe4, 0x75, 0x0a, 0x3c, 0x08, };
8074 static const ec_test_case ed25519_351_test_case = {
8075 	.name = "EDDSA25519-SHA512/wei25519 351",
8076 	.ec_str_p = &wei25519_str_params,
8077 	.priv_key = ed25519_351_test_vectors_priv_key,
8078 	.priv_key_len = sizeof(ed25519_351_test_vectors_priv_key),
8079 	.nn_random = NULL,
8080 	.hash_type = SHA512,
8081 	.msg = (const char *)ed25519_351_test_vectors_message,
8082 	.msglen = sizeof(ed25519_351_test_vectors_message),
8083 	.sig_type = EDDSA25519,
8084 	.exp_sig = ed25519_351_test_vectors_expected_sig,
8085 	.exp_siglen = sizeof(ed25519_351_test_vectors_expected_sig),
8086 	.adata = NULL,
8087 	.adata_len = 0
8088 };
8089 
8090 /************************************************/
8091 static const u8 ed25519_352_test_vectors_priv_key[] = {
8092 	0xea, 0xb1, 0x79, 0xe4, 0x1e, 0xd5, 0xc8, 0x89, 0xff, 0xe6, 0xaa, 0xbd, 0xc0, 0x54, 0xfa, 0xf1, 0x30, 0x7c, 0x39, 0x5e, 0x46, 0xe3, 0x13, 0xe1, 0x7a, 0x14, 0xfe, 0x01, 0x02, 0x3f, 0xfa, 0x30, };
8093 static const u8 ed25519_352_test_vectors_message[] = {
8094 	0x97, 0x10, 0x95, 0xce, 0xbe, 0x50, 0x31, 0x53, 0x02, 0x24, 0x38, 0x7c, 0x5c, 0x31, 0x96, 0x6e, 0x38, 0x9b, 0x85, 0x66, 0x39, 0x00, 0x54, 0xcf, 0x45, 0x26, 0x4b, 0x44, 0xe1, 0x89, 0x64, 0xb7, 0xbe, 0x52, 0xc3, 0x3c, 0x4f, 0xfb, 0x25, 0x9a, 0xf1, 0x62, 0x83, 0x43, 0x8f, 0xa1, 0x5d, 0xd6, 0x6b, 0xc7, 0x79, 0x1b, 0x75, 0x33, 0xef, 0x10, 0xcb, 0x0b, 0xea, 0xb5, 0x24, 0xa6, 0x43, 0x76, 0x26, 0xf4, 0xcc, 0x74, 0x51, 0x28, 0x51, 0xad, 0xcc, 0x2f, 0xb1, 0x29, 0x05, 0x5a, 0x48, 0x2c, 0x61, 0x10, 0x73, 0x83, 0xfb, 0x7c, 0x52, 0x41, 0x83, 0x1d, 0x55, 0x51, 0x63, 0x4e, 0xef, 0x0d, 0xc0, 0xb8, 0xf9, 0x05, 0x3a, 0x00, 0x97, 0x1a, 0xa8, 0xfa, 0x1a, 0xe0, 0x89, 0x8e, 0x4b, 0x48, 0x1b, 0x67, 0x07, 0xe9, 0x7c, 0x0f, 0x94, 0x20, 0x40, 0xb3, 0x39, 0xd9, 0x2f, 0xc1, 0x7b, 0xba, 0xde, 0x74, 0x67, 0x5a, 0xf2, 0x43, 0xd8, 0xb2, 0xda, 0xfb, 0x15, 0xb1, 0xdb, 0x55, 0xd1, 0x24, 0x15, 0xb8, 0x5f, 0x30, 0x37, 0x29, 0x19, 0x30, 0xab, 0x61, 0x60, 0x0b, 0xa3, 0x43, 0x1f, 0x8e, 0xb4, 0x25, 0xbe, 0x44, 0x91, 0x61, 0x47, 0x28, 0xaf, 0x10, 0x1e, 0x81, 0xc0, 0x91, 0xf3, 0x48, 0xbc, 0x5f, 0xfd, 0x1b, 0xde, 0x6a, 0xe6, 0xca, 0xd5, 0xc1, 0x5b, 0x3a, 0xa7, 0x35, 0x80, 0x78, 0xcc, 0x4e, 0xff, 0xb5, 0x4a, 0x86, 0xe7, 0xf0, 0xe0, 0xc5, 0x5e, 0x4c, 0xfe, 0x0a, 0x54, 0x60, 0x5e, 0xd4, 0x43, 0xfd, 0xf2, 0xaa, 0xba, 0x01, 0x65, 0x85, 0xda, 0x61, 0x7e, 0x77, 0x34, 0x1d, 0x52, 0x88, 0x9d, 0x75, 0xdd, 0x54, 0x0d, 0x39, 0xfe, 0x8b, 0x79, 0x93, 0xed, 0x70, 0x5c, 0xfd, 0xde, 0xa0, 0xcb, 0x0d, 0x5a, 0x73, 0x1d, 0x6b, 0xfc, 0xdb, 0x81, 0x6a, 0xfa, 0xff, 0x47, 0xe9, 0x63, 0xee, 0xde, 0xbd, 0xf2, 0x41, 0xaf, 0x55, 0x93, 0x35, 0x3d, 0x6d, 0x40, 0x1a, 0x34, 0xf0, 0x29, 0xa8, 0xcd, 0xeb, 0x19, 0x04, 0xcc, 0x2c, 0xaa, 0x4f, 0x96, 0x35, 0xcc, 0x2b, 0xa6, 0xb7, 0xb1, 0xa2, 0x9d, 0xa6, 0x25, 0xff, 0xc3, 0x83, 0xbe, 0x2f, 0x5a, 0x8f, 0x1f, 0xa4, 0xf3, 0x9b, 0x2d, 0x4b, 0x4f, 0x4c, 0x2d, 0x88, 0x38, 0xce, 0x25, 0x8a, 0x04, 0xd4, 0xa1, 0x20, 0x49, 0x3f, 0xdf, 0x07, 0xf6, 0x8c, 0x0f, 0xfd, 0x1c, 0x16, 0xb7, 0x68, 0xa3, 0x5c, 0x55, 0xfe, 0xa2, 0xca, 0xc6, 0x96, 0xb5, 0xc2, 0x0e, 0xfc, 0x10, 0x86, 0x5c, 0xde, 0x8a, 0x64, 0x62, 0x7d, 0xcd, };
8095 static const u8 ed25519_352_test_vectors_expected_sig[] = {
8096 	0x14, 0x3c, 0xb2, 0x80, 0x27, 0xc2, 0xf8, 0x2e, 0x37, 0x5e, 0x5f, 0x34, 0x0e, 0x7f, 0xe6, 0xe6, 0x0c, 0xe7, 0xbd, 0x51, 0x00, 0x0b, 0x49, 0xc7, 0x41, 0x68, 0xaf, 0x85, 0xe2, 0x6e, 0xd2, 0xed, 0x63, 0x0e, 0xd2, 0x67, 0x20, 0x90, 0x16, 0x4c, 0xc5, 0x4b, 0x05, 0x2d, 0xa6, 0x94, 0xeb, 0xdd, 0x21, 0xa2, 0x1b, 0x30, 0x53, 0xf4, 0xdc, 0xfd, 0x78, 0x95, 0xea, 0x5f, 0x6c, 0x8a, 0xa8, 0x0d, };
8097 static const ec_test_case ed25519_352_test_case = {
8098 	.name = "EDDSA25519-SHA512/wei25519 352",
8099 	.ec_str_p = &wei25519_str_params,
8100 	.priv_key = ed25519_352_test_vectors_priv_key,
8101 	.priv_key_len = sizeof(ed25519_352_test_vectors_priv_key),
8102 	.nn_random = NULL,
8103 	.hash_type = SHA512,
8104 	.msg = (const char *)ed25519_352_test_vectors_message,
8105 	.msglen = sizeof(ed25519_352_test_vectors_message),
8106 	.sig_type = EDDSA25519,
8107 	.exp_sig = ed25519_352_test_vectors_expected_sig,
8108 	.exp_siglen = sizeof(ed25519_352_test_vectors_expected_sig),
8109 	.adata = NULL,
8110 	.adata_len = 0
8111 };
8112 
8113 /************************************************/
8114 static const u8 ed25519_353_test_vectors_priv_key[] = {
8115 	0xfb, 0xf1, 0x46, 0xeb, 0xd5, 0x10, 0x75, 0x57, 0x0e, 0xc5, 0x1a, 0xc4, 0x10, 0xae, 0x9f, 0x39, 0x1d, 0xb7, 0x5b, 0x61, 0x0a, 0xda, 0x63, 0x62, 0xb4, 0xdb, 0xd9, 0x49, 0x65, 0x6c, 0xfb, 0x66, };
8116 static const u8 ed25519_353_test_vectors_message[] = {
8117 	0xcd, 0x7a, 0xd4, 0xf1, 0x7f, 0xcf, 0xf7, 0x3a, 0xcc, 0x40, 0x2d, 0xc1, 0x02, 0xd0, 0x90, 0x79, 0xb2, 0x9a, 0xaf, 0x2a, 0x0f, 0x4b, 0x27, 0xcf, 0x6b, 0xee, 0xb1, 0xe2, 0xb2, 0x3d, 0x19, 0xab, 0x47, 0xde, 0xb3, 0xae, 0x1b, 0xec, 0xd6, 0x88, 0x61, 0xea, 0x27, 0x9c, 0x46, 0x69, 0x17, 0x38, 0xf4, 0xff, 0xf4, 0x7c, 0x43, 0x04, 0x7c, 0x4f, 0x8b, 0x56, 0xb6, 0xbb, 0xcc, 0x3f, 0xde, 0x07, 0x23, 0xd4, 0x41, 0x20, 0xdc, 0xd3, 0x07, 0xa6, 0x31, 0x0d, 0xc4, 0xf3, 0x66, 0xb8, 0xf3, 0xcd, 0x52, 0xdb, 0x19, 0xb8, 0x26, 0x6a, 0x48, 0x7f, 0x78, 0x72, 0x39, 0x1c, 0x45, 0xfe, 0x0d, 0x32, 0x48, 0xa7, 0xab, 0xf2, 0xc2, 0x00, 0x22, 0xd3, 0x76, 0x95, 0x47, 0xf6, 0x83, 0x06, 0x7d, 0xcc, 0x36, 0x3c, 0xd2, 0x2f, 0xd7, 0xcd, 0xa3, 0xca, 0xdc, 0x15, 0x80, 0x40, 0x56, 0xf0, 0xe2, 0xaa, 0x2b, 0x79, 0x50, 0x08, 0xc5, 0x98, 0xbe, 0x7a, 0x96, 0x18, 0x05, 0xe6, 0xdf, 0x29, 0x1b, 0xa3, 0x04, 0x1c, 0x47, 0xff, 0x56, 0x40, 0x27, 0x5f, 0x46, 0xe6, 0xae, 0x82, 0x09, 0x2d, 0x21, 0xab, 0xcb, 0xcf, 0xba, 0x11, 0xe7, 0x30, 0x21, 0x60, 0x08, 0x82, 0x2d, 0xe3, 0xce, 0x46, 0x24, 0x00, 0x59, 0x6d, 0xa7, 0x9f, 0x7a, 0xe5, 0xd1, 0xdf, 0x83, 0x89, 0x11, 0x2a, 0xd9, 0x88, 0x68, 0xfa, 0x94, 0xfb, 0x05, 0x46, 0xbf, 0xe6, 0xa6, 0x7a, 0xa8, 0xd2, 0x8c, 0x4d, 0x32, 0x07, 0x2d, 0x2e, 0xad, 0xd6, 0x25, 0x62, 0x55, 0xf1, 0x8c, 0x23, 0x82, 0xe6, 0x62, 0xdf, 0xa9, 0x22, 0xa6, 0x80, 0xe0, 0x6a, 0x43, 0x62, 0x2c, 0x48, 0x71, 0xd2, 0x7d, 0x18, 0x07, 0xf7, 0xb2, 0x70, 0x30, 0x70, 0xc8, 0x3d, 0xb8, 0xdd, 0x92, 0x9c, 0x06, 0x03, 0x8b, 0x21, 0x83, 0xcb, 0x8e, 0x2b, 0x9e, 0xc4, 0xc7, 0x78, 0xd7, 0xec, 0xf9, 0xe9, 0xff, 0xac, 0x77, 0xfa, 0x77, 0x37, 0xb0, 0x55, 0xfe, 0xac, 0x2e, 0x79, 0x82, 0xae, 0xee, 0xc0, 0xb7, 0x2f, 0x1b, 0xbc, 0xa2, 0x42, 0x4e, 0x1a, 0x84, 0x4b, 0xba, 0xc7, 0x9c, 0xb2, 0xe7, 0x40, 0x0f, 0x81, 0xdc, 0x44, 0x9d, 0x05, 0x60, 0xb5, 0x21, 0xa7, 0xc1, 0x6b, 0xb4, 0x16, 0x7e, 0x66, 0x96, 0x58, 0x60, 0x58, 0xa9, 0xb8, 0xed, 0x2e, 0x51, 0x16, 0x69, 0x0b, 0x77, 0xf2, 0xa1, 0x7e, 0x5c, 0x0b, 0x16, 0xa8, 0x3d, 0xcb, 0xd2, 0xe2, 0x45, 0x52, 0x29, 0x3e, 0x25, 0x8b, 0x32, 0xba, 0x7f, 0x84, 0x49, 0x44, 0x37, 0x93, 0x42, 0x69, 0x86, 0x27, };
8118 static const u8 ed25519_353_test_vectors_expected_sig[] = {
8119 	0x67, 0x68, 0x00, 0x6f, 0xe0, 0xf2, 0x01, 0xb2, 0x17, 0xdd, 0x10, 0xeb, 0x05, 0xd4, 0xb8, 0x2a, 0xdc, 0xfe, 0xb2, 0xec, 0xfc, 0x83, 0x73, 0xc3, 0x30, 0x8f, 0x41, 0x50, 0x39, 0x48, 0x11, 0xeb, 0x60, 0x49, 0x18, 0x81, 0xa2, 0xe5, 0x3d, 0x12, 0x89, 0xd9, 0x64, 0x78, 0xe1, 0x8a, 0x64, 0xc3, 0x4b, 0x2a, 0x19, 0x83, 0x2c, 0xdc, 0xcf, 0xd9, 0x6a, 0x2e, 0x4a, 0x0c, 0x46, 0x9f, 0xdc, 0x0b, };
8120 static const ec_test_case ed25519_353_test_case = {
8121 	.name = "EDDSA25519-SHA512/wei25519 353",
8122 	.ec_str_p = &wei25519_str_params,
8123 	.priv_key = ed25519_353_test_vectors_priv_key,
8124 	.priv_key_len = sizeof(ed25519_353_test_vectors_priv_key),
8125 	.nn_random = NULL,
8126 	.hash_type = SHA512,
8127 	.msg = (const char *)ed25519_353_test_vectors_message,
8128 	.msglen = sizeof(ed25519_353_test_vectors_message),
8129 	.sig_type = EDDSA25519,
8130 	.exp_sig = ed25519_353_test_vectors_expected_sig,
8131 	.exp_siglen = sizeof(ed25519_353_test_vectors_expected_sig),
8132 	.adata = NULL,
8133 	.adata_len = 0
8134 };
8135 
8136 /************************************************/
8137 static const u8 ed25519_354_test_vectors_priv_key[] = {
8138 	0xdf, 0xf0, 0xeb, 0x6b, 0x42, 0x6d, 0xea, 0x2f, 0xd3, 0x3c, 0x1d, 0x3f, 0xc2, 0x4d, 0xf9, 0xb3, 0x1b, 0x48, 0x6f, 0xac, 0xb7, 0xed, 0xb8, 0x50, 0x29, 0x54, 0xa3, 0xe8, 0xda, 0x99, 0xd9, 0xfd, };
8139 static const u8 ed25519_354_test_vectors_message[] = {
8140 	0xe7, 0xc9, 0xe3, 0x13, 0xd8, 0x61, 0x60, 0xf4, 0xc7, 0x4a, 0xa0, 0xae, 0x07, 0x36, 0x9e, 0xe2, 0x2b, 0x27, 0xf8, 0x1b, 0x3f, 0x69, 0x09, 0x7a, 0xff, 0xae, 0x28, 0xda, 0xe4, 0x84, 0x83, 0xfb, 0x52, 0xa5, 0xc0, 0x62, 0x30, 0x6b, 0x59, 0x61, 0x0f, 0x5c, 0xdb, 0xff, 0x63, 0x32, 0xb1, 0x96, 0x0c, 0xd6, 0xf2, 0xb8, 0xf7, 0xb4, 0x15, 0x78, 0xc2, 0x0f, 0x0b, 0xc9, 0x63, 0x7a, 0x0f, 0xdf, 0xc7, 0x39, 0xd6, 0x1f, 0x69, 0x9a, 0x57, 0x3f, 0x1c, 0x1a, 0x0b, 0x49, 0x29, 0x45, 0x06, 0xcf, 0x44, 0x87, 0x96, 0x5e, 0x5b, 0xb0, 0x7b, 0xbf, 0x81, 0x80, 0x3c, 0xb3, 0xd5, 0xcb, 0x38, 0x29, 0xc6, 0x6c, 0x4b, 0xee, 0x7f, 0xc8, 0x00, 0xed, 0xe2, 0x16, 0x15, 0x09, 0x34, 0xd2, 0x77, 0xde, 0xa5, 0x0e, 0xdb, 0x09, 0x7b, 0x99, 0x2f, 0x11, 0xbb, 0x66, 0x9f, 0xdf, 0x14, 0x0b, 0xf6, 0xae, 0x9f, 0xec, 0x46, 0xc3, 0xea, 0x32, 0xf8, 0x88, 0xfd, 0xe9, 0xd1, 0x54, 0xea, 0x84, 0xf0, 0x1c, 0x51, 0x26, 0x5a, 0x7d, 0x3f, 0xef, 0x6e, 0xef, 0xc1, 0xcc, 0xdb, 0xff, 0xd1, 0xe2, 0xc8, 0x97, 0xf0, 0x55, 0x46, 0xa3, 0xb1, 0xca, 0x11, 0xd9, 0x51, 0x7c, 0xd6, 0x67, 0xc6, 0x60, 0xec, 0x39, 0x60, 0xf7, 0xa8, 0xe5, 0xe8, 0x02, 0x02, 0xa7, 0x8d, 0x3a, 0x38, 0x8b, 0x92, 0xf5, 0xc1, 0xde, 0xe1, 0x4a, 0xe6, 0xac, 0xf8, 0xe1, 0x7c, 0x84, 0x1c, 0x95, 0x57, 0xc3, 0x5a, 0x2e, 0xec, 0xed, 0x6e, 0x6a, 0xf6, 0x37, 0x21, 0x48, 0xe4, 0x83, 0xcc, 0xd0, 0x6c, 0x8f, 0xe3, 0x44, 0x92, 0x4e, 0x10, 0x19, 0xfb, 0x91, 0xcb, 0xf7, 0x94, 0x1b, 0x9a, 0x17, 0x6a, 0x07, 0x34, 0x15, 0x86, 0x72, 0x10, 0x67, 0x04, 0x10, 0xc5, 0xdb, 0xd0, 0xac, 0x4a, 0x50, 0xe6, 0xc0, 0xa5, 0x09, 0xdd, 0xfd, 0xc5, 0x55, 0xf6, 0x0d, 0x69, 0x6d, 0x41, 0xc7, 0x7d, 0xb8, 0xe6, 0xc8, 0x4d, 0x51, 0x81, 0xf8, 0x72, 0x75, 0x5e, 0x64, 0xa7, 0x21, 0xb0, 0x61, 0xfc, 0xd6, 0x8c, 0x46, 0x3d, 0xb4, 0xd3, 0x2c, 0x9e, 0x01, 0xea, 0x50, 0x12, 0x67, 0xde, 0x22, 0x87, 0x9d, 0x7f, 0xc1, 0x2c, 0x8c, 0xa0, 0x37, 0x9e, 0xdb, 0x45, 0xab, 0xaa, 0x6e, 0x64, 0xdd, 0xa2, 0xaf, 0x6d, 0x40, 0xcc, 0xf2, 0x4f, 0xbe, 0xba, 0xd7, 0xb5, 0xa8, 0xd3, 0xe5, 0x20, 0x07, 0x94, 0x5e, 0xcd, 0x3d, 0xdc, 0x1e, 0x3e, 0xfe, 0xb5, 0x22, 0x58, 0x1a, 0xc8, 0x0e, 0x98, 0xc8, 0x63, 0xba, 0x0c, 0x59, 0x0a, 0x3e, 0xd9, 0x5c, 0xd1, };
8141 static const u8 ed25519_354_test_vectors_expected_sig[] = {
8142 	0x6b, 0x48, 0xb1, 0x0f, 0x54, 0x5d, 0xdb, 0x7a, 0x89, 0xcd, 0x58, 0x29, 0xf4, 0xe5, 0xb2, 0x01, 0x46, 0xcf, 0x6b, 0xc9, 0x6e, 0x55, 0x0d, 0x06, 0xf6, 0x5d, 0xe8, 0xbd, 0xae, 0x7c, 0xcd, 0xde, 0xd2, 0x6c, 0xd6, 0x30, 0xf8, 0x6c, 0x92, 0x66, 0xbc, 0xcf, 0x88, 0xe9, 0x24, 0x03, 0x3e, 0x04, 0xf8, 0x3a, 0x54, 0xf8, 0x29, 0x0d, 0x7f, 0x73, 0x4c, 0xf8, 0x67, 0x3c, 0xca, 0x8f, 0x97, 0x03, };
8143 static const ec_test_case ed25519_354_test_case = {
8144 	.name = "EDDSA25519-SHA512/wei25519 354",
8145 	.ec_str_p = &wei25519_str_params,
8146 	.priv_key = ed25519_354_test_vectors_priv_key,
8147 	.priv_key_len = sizeof(ed25519_354_test_vectors_priv_key),
8148 	.nn_random = NULL,
8149 	.hash_type = SHA512,
8150 	.msg = (const char *)ed25519_354_test_vectors_message,
8151 	.msglen = sizeof(ed25519_354_test_vectors_message),
8152 	.sig_type = EDDSA25519,
8153 	.exp_sig = ed25519_354_test_vectors_expected_sig,
8154 	.exp_siglen = sizeof(ed25519_354_test_vectors_expected_sig),
8155 	.adata = NULL,
8156 	.adata_len = 0
8157 };
8158 
8159 /************************************************/
8160 static const u8 ed25519_355_test_vectors_priv_key[] = {
8161 	0x9f, 0x32, 0x95, 0x8c, 0x76, 0x79, 0xb9, 0x0f, 0xd5, 0x03, 0x60, 0x56, 0xa7, 0x5e, 0xc2, 0xeb, 0x2f, 0x56, 0xec, 0x1e, 0xff, 0xc7, 0xc0, 0x12, 0x46, 0x1d, 0xc8, 0x9a, 0x3a, 0x16, 0x74, 0x20, };
8162 static const u8 ed25519_355_test_vectors_message[] = {
8163 	0xa5, 0x6b, 0xa8, 0x6c, 0x71, 0x36, 0x05, 0x04, 0x08, 0x7e, 0x74, 0x5c, 0x41, 0x62, 0x70, 0x92, 0xad, 0x6b, 0x49, 0xa7, 0x1e, 0x9d, 0xaa, 0x56, 0x40, 0xe1, 0x04, 0x4b, 0xf0, 0x4d, 0x4f, 0x07, 0x1a, 0xd7, 0x28, 0x77, 0x9e, 0x95, 0xd1, 0xe2, 0x46, 0x05, 0x84, 0xe6, 0xf0, 0x77, 0x35, 0x45, 0xda, 0x82, 0xd4, 0x81, 0x4c, 0x91, 0x89, 0xa1, 0x20, 0xf1, 0x2f, 0x3e, 0x38, 0x19, 0x81, 0x3e, 0x5b, 0x24, 0x0d, 0x0f, 0x26, 0x43, 0x6f, 0x70, 0xee, 0x35, 0x3b, 0x4d, 0x20, 0xce, 0xa5, 0x4a, 0x14, 0x60, 0xb5, 0xb8, 0xf1, 0x00, 0x8d, 0x6f, 0x95, 0xf3, 0xaa, 0x2d, 0x8f, 0x1e, 0x90, 0x8f, 0xce, 0xd5, 0x0d, 0x62, 0x4e, 0x3a, 0x09, 0x69, 0x38, 0xb9, 0x35, 0x38, 0x54, 0xb9, 0x6d, 0xa4, 0x63, 0xa2, 0x79, 0x8a, 0x5a, 0x31, 0x2e, 0xc7, 0x90, 0x84, 0x2c, 0x10, 0xc4, 0x46, 0xe3, 0x35, 0x0c, 0x76, 0x4b, 0xf5, 0xc9, 0x72, 0x59, 0x3b, 0x99, 0x87, 0xbf, 0x23, 0x25, 0x6d, 0xaa, 0x88, 0x94, 0xd4, 0x7f, 0x22, 0xe8, 0x5b, 0x97, 0x60, 0x7e, 0x66, 0xfc, 0x08, 0xa1, 0x2c, 0x78, 0x9c, 0x47, 0x46, 0x08, 0x03, 0x68, 0xd3, 0x21, 0xbb, 0x90, 0x15, 0xa1, 0x15, 0x5b, 0x65, 0x52, 0x3a, 0xd8, 0xe9, 0x9b, 0xb9, 0x89, 0xb4, 0x4e, 0xac, 0x75, 0x6b, 0x07, 0x34, 0xac, 0xd7, 0xc6, 0x35, 0x7c, 0x70, 0xb5, 0x97, 0x43, 0x24, 0x6d, 0x16, 0x52, 0xd9, 0x1b, 0x0f, 0x98, 0x96, 0x96, 0x51, 0x41, 0x34, 0x5b, 0x99, 0x45, 0xcf, 0x34, 0x98, 0x04, 0x52, 0xf3, 0x50, 0x29, 0x74, 0xed, 0xb7, 0x6b, 0x9c, 0x78, 0x5f, 0xb0, 0xf4, 0x39, 0x52, 0x66, 0xb0, 0x55, 0xf3, 0xb5, 0xdb, 0x8a, 0xab, 0x68, 0xe9, 0xd7, 0x10, 0x2a, 0x1c, 0xd9, 0xee, 0x3d, 0x14, 0x25, 0x04, 0xf0, 0xe8, 0x8b, 0x28, 0x2e, 0x60, 0x3a, 0x73, 0x8e, 0x05, 0x1d, 0x98, 0xde, 0x05, 0xd1, 0xfc, 0xc6, 0x5b, 0x5f, 0x7e, 0x99, 0xc4, 0x11, 0x1c, 0xc0, 0xae, 0xc4, 0x89, 0xab, 0xd0, 0xec, 0xad, 0x31, 0x1b, 0xfc, 0x13, 0xe7, 0xd1, 0x65, 0x3b, 0x9c, 0x31, 0xe8, 0x1c, 0x99, 0x80, 0x37, 0xf9, 0x59, 0xd5, 0xcd, 0x98, 0x08, 0x35, 0xaa, 0x0e, 0x0b, 0x09, 0xbc, 0xbe, 0xd6, 0x34, 0x39, 0x11, 0x51, 0xda, 0x02, 0xbc, 0x01, 0xa3, 0x6c, 0x9a, 0x58, 0x00, 0xaf, 0xb9, 0x84, 0x16, 0x3a, 0x7b, 0xb8, 0x15, 0xed, 0xbc, 0x02, 0x26, 0xed, 0xa0, 0x59, 0x5c, 0x72, 0x4c, 0xa9, 0xb3, 0xf8, 0xa7, 0x11, 0x78, 0xf0, 0xd2, 0x0a, 0x5a, };
8164 static const u8 ed25519_355_test_vectors_expected_sig[] = {
8165 	0x98, 0x81, 0xa5, 0x76, 0x3b, 0xdb, 0x25, 0x9a, 0x3f, 0xef, 0xbb, 0xa3, 0xd9, 0x57, 0x16, 0x2d, 0x6c, 0x70, 0xb8, 0x04, 0xfa, 0x94, 0xab, 0x61, 0x34, 0x06, 0xa6, 0xec, 0x42, 0x50, 0x5b, 0x87, 0x89, 0x46, 0x5c, 0xa1, 0xa9, 0xa3, 0x3e, 0x18, 0x95, 0x98, 0x88, 0x42, 0x27, 0x0c, 0x55, 0xe5, 0xbd, 0xd5, 0x48, 0x3f, 0x6b, 0x17, 0xb3, 0x17, 0x81, 0xb5, 0x93, 0x50, 0x7a, 0x6c, 0x18, 0x08, };
8166 static const ec_test_case ed25519_355_test_case = {
8167 	.name = "EDDSA25519-SHA512/wei25519 355",
8168 	.ec_str_p = &wei25519_str_params,
8169 	.priv_key = ed25519_355_test_vectors_priv_key,
8170 	.priv_key_len = sizeof(ed25519_355_test_vectors_priv_key),
8171 	.nn_random = NULL,
8172 	.hash_type = SHA512,
8173 	.msg = (const char *)ed25519_355_test_vectors_message,
8174 	.msglen = sizeof(ed25519_355_test_vectors_message),
8175 	.sig_type = EDDSA25519,
8176 	.exp_sig = ed25519_355_test_vectors_expected_sig,
8177 	.exp_siglen = sizeof(ed25519_355_test_vectors_expected_sig),
8178 	.adata = NULL,
8179 	.adata_len = 0
8180 };
8181 
8182 /************************************************/
8183 static const u8 ed25519_356_test_vectors_priv_key[] = {
8184 	0xf8, 0x6d, 0x6f, 0x76, 0x6f, 0x88, 0xb0, 0x07, 0x17, 0xb7, 0xd6, 0x32, 0x7e, 0xb2, 0x6c, 0xf3, 0xce, 0xeb, 0xa5, 0x38, 0x51, 0x84, 0x42, 0x6f, 0x9c, 0xfd, 0x82, 0x95, 0xe2, 0x42, 0x1f, 0xf2, };
8185 static const u8 ed25519_356_test_vectors_message[] = {
8186 	0xda, 0x84, 0x23, 0xa6, 0xb7, 0xa1, 0x8f, 0x20, 0xaa, 0x1f, 0x90, 0xed, 0x23, 0x31, 0xb1, 0x7b, 0x24, 0x06, 0x7c, 0x40, 0x17, 0x5b, 0xc2, 0x5d, 0x81, 0x09, 0xe2, 0x1d, 0x87, 0xac, 0x00, 0x52, 0x8e, 0xb3, 0xb2, 0xf6, 0x6a, 0x2b, 0x52, 0xdc, 0x7e, 0xf2, 0xf8, 0xce, 0xcb, 0x75, 0xc7, 0x60, 0x99, 0xcf, 0xa2, 0x3d, 0xb8, 0xda, 0x89, 0x70, 0x43, 0xba, 0x1c, 0xce, 0x31, 0xe2, 0xdf, 0xea, 0x46, 0x07, 0x5f, 0x5e, 0x07, 0x32, 0x03, 0xea, 0xeb, 0x3d, 0x62, 0xc8, 0x4c, 0x10, 0x7b, 0x6d, 0xab, 0x33, 0xa1, 0x4e, 0xaf, 0x14, 0x9a, 0xa6, 0x18, 0x50, 0xc1, 0x5f, 0x5a, 0x58, 0xd8, 0x8a, 0x15, 0xab, 0xa9, 0x19, 0x6f, 0x9e, 0x49, 0x5e, 0x8d, 0xbe, 0xcb, 0xcf, 0x7e, 0x84, 0x44, 0xf5, 0xdd, 0x72, 0xa0, 0x8a, 0x09, 0x9d, 0x7f, 0x62, 0x09, 0x99, 0x0b, 0x56, 0x29, 0x74, 0xea, 0x82, 0x9e, 0xf1, 0x1d, 0x29, 0xa9, 0x20, 0xe3, 0xa7, 0x99, 0xd0, 0xd9, 0x2c, 0xb5, 0x0d, 0x50, 0xf8, 0x17, 0x63, 0x1a, 0xb0, 0x9d, 0xe9, 0x7c, 0x31, 0xe9, 0xa0, 0x5f, 0x4d, 0x78, 0xd6, 0x49, 0xfc, 0xd9, 0x3a, 0x83, 0x75, 0x20, 0x78, 0xab, 0x3b, 0xb0, 0xe1, 0x6c, 0x56, 0x4d, 0x4f, 0xb0, 0x7c, 0xa9, 0x23, 0xc0, 0x37, 0x4b, 0xa5, 0xbf, 0x1e, 0xea, 0x7e, 0x73, 0x66, 0x8e, 0x13, 0x50, 0x31, 0xfe, 0xaf, 0xcb, 0xb4, 0x7c, 0xbc, 0x2a, 0xe3, 0x0e, 0xc1, 0x6a, 0x39, 0xb9, 0xc3, 0x37, 0xe0, 0xa6, 0x2e, 0xec, 0xdd, 0x80, 0xc0, 0xb7, 0xa0, 0x49, 0x24, 0xac, 0x39, 0x72, 0xda, 0x4f, 0xa9, 0x29, 0x9c, 0x14, 0xb5, 0xa5, 0x3d, 0x37, 0xb0, 0x8b, 0xf0, 0x22, 0x68, 0xb3, 0xba, 0xc9, 0xea, 0x93, 0x55, 0x09, 0x0e, 0xeb, 0x04, 0xad, 0x87, 0xbe, 0xe0, 0x59, 0x3b, 0xa4, 0xe4, 0x44, 0x3d, 0xda, 0x38, 0xa9, 0x7a, 0xfb, 0xf2, 0xdb, 0x99, 0x52, 0xdf, 0x63, 0xf1, 0x78, 0xf3, 0xb4, 0xc5, 0x2b, 0xcc, 0x13, 0x2b, 0xe8, 0xd9, 0xe2, 0x68, 0x81, 0x21, 0x3a, 0xbd, 0xeb, 0x7e, 0x1c, 0x44, 0xc4, 0x06, 0x15, 0x48, 0x90, 0x9f, 0x05, 0x20, 0xf0, 0xdd, 0x75, 0x20, 0xfc, 0x40, 0x8e, 0xa2, 0x8c, 0x2c, 0xeb, 0xc0, 0xf5, 0x30, 0x63, 0xa2, 0xd3, 0x05, 0x70, 0xe0, 0x53, 0x50, 0xe5, 0x2b, 0x39, 0x0d, 0xd9, 0xb6, 0x76, 0x62, 0x98, 0x48, 0x47, 0xbe, 0x9a, 0xd9, 0xb4, 0xcd, 0x50, 0xb0, 0x69, 0xff, 0xd2, 0x9d, 0xd9, 0xc6, 0x2e, 0xf1, 0x47, 0x01, 0xf8, 0xd0, 0x12, 0xa4, 0xa7, 0x0c, 0x84, 0x31, 0xcc, };
8187 static const u8 ed25519_356_test_vectors_expected_sig[] = {
8188 	0xec, 0x61, 0xc0, 0xb2, 0x92, 0x20, 0x3a, 0x8f, 0x1d, 0x87, 0x23, 0x5e, 0xde, 0x92, 0xb7, 0x47, 0x23, 0xc8, 0xd2, 0x34, 0x08, 0x42, 0x37, 0x73, 0xae, 0x50, 0xb1, 0xe9, 0xbc, 0x44, 0x64, 0xe0, 0x3e, 0x44, 0x6d, 0xa9, 0xdc, 0xe4, 0xc3, 0x9f, 0x6d, 0xd1, 0x59, 0xbe, 0xa2, 0x6c, 0x00, 0x9e, 0xd0, 0x01, 0x20, 0xbc, 0x36, 0xd4, 0xa2, 0x47, 0xdc, 0x0d, 0x24, 0xbc, 0xef, 0xcc, 0x11, 0x0c, };
8189 static const ec_test_case ed25519_356_test_case = {
8190 	.name = "EDDSA25519-SHA512/wei25519 356",
8191 	.ec_str_p = &wei25519_str_params,
8192 	.priv_key = ed25519_356_test_vectors_priv_key,
8193 	.priv_key_len = sizeof(ed25519_356_test_vectors_priv_key),
8194 	.nn_random = NULL,
8195 	.hash_type = SHA512,
8196 	.msg = (const char *)ed25519_356_test_vectors_message,
8197 	.msglen = sizeof(ed25519_356_test_vectors_message),
8198 	.sig_type = EDDSA25519,
8199 	.exp_sig = ed25519_356_test_vectors_expected_sig,
8200 	.exp_siglen = sizeof(ed25519_356_test_vectors_expected_sig),
8201 	.adata = NULL,
8202 	.adata_len = 0
8203 };
8204 
8205 /************************************************/
8206 static const u8 ed25519_357_test_vectors_priv_key[] = {
8207 	0xa5, 0xb3, 0x4c, 0xef, 0xab, 0x94, 0x79, 0xdf, 0x83, 0x89, 0xd7, 0xe6, 0xf6, 0xc1, 0x46, 0xaa, 0x8a, 0xff, 0xb0, 0xbe, 0xc8, 0x37, 0xf7, 0x8a, 0xf6, 0x46, 0x24, 0xa1, 0x45, 0xcc, 0x34, 0x4e, };
8208 static const u8 ed25519_357_test_vectors_message[] = {
8209 	0xe2, 0x1e, 0x98, 0xaf, 0x6c, 0x2b, 0xac, 0x70, 0x55, 0x7e, 0xb0, 0xe8, 0x64, 0xda, 0x2c, 0x2b, 0x4d, 0x6c, 0x0a, 0x39, 0xa0, 0x59, 0xd3, 0x47, 0x72, 0x51, 0xf6, 0x17, 0x8a, 0x39, 0x67, 0x6f, 0x47, 0x49, 0xe7, 0xfb, 0xea, 0x62, 0x3f, 0x14, 0x8a, 0x43, 0xa8, 0xb0, 0xfe, 0x06, 0x10, 0x50, 0x6f, 0xa6, 0x58, 0xab, 0xd2, 0xf5, 0xfa, 0x39, 0x19, 0x8f, 0x26, 0x36, 0xb7, 0x24, 0xdb, 0x22, 0xd1, 0xae, 0xbc, 0x2a, 0xb0, 0x7b, 0x2b, 0x6d, 0xbf, 0xfd, 0xee, 0x8c, 0xec, 0xe8, 0x1e, 0x1a, 0xf1, 0x49, 0x3e, 0xc1, 0x96, 0x4e, 0x16, 0xbf, 0x86, 0xab, 0x25, 0x8c, 0xa0, 0xfe, 0xb7, 0x7e, 0x3c, 0x87, 0x17, 0xe4, 0x40, 0x38, 0xab, 0xe1, 0x52, 0xc1, 0x4b, 0xe1, 0x56, 0x60, 0xbf, 0x93, 0xb2, 0xd4, 0x8d, 0x92, 0xc4, 0xed, 0x70, 0x74, 0xd2, 0x49, 0x42, 0x10, 0x62, 0x1b, 0xcf, 0x20, 0x4f, 0xba, 0x88, 0xc6, 0x54, 0xd5, 0xff, 0xe0, 0x1e, 0x1a, 0x53, 0xd0, 0x8f, 0x70, 0xbb, 0x23, 0x70, 0x89, 0xdc, 0x80, 0x72, 0x16, 0xff, 0x6a, 0x85, 0xdb, 0xec, 0x31, 0x02, 0x23, 0x7d, 0x42, 0x59, 0x07, 0x78, 0xac, 0xf6, 0xc1, 0xdc, 0x56, 0x6d, 0x5a, 0x2b, 0xb9, 0xa6, 0x3b, 0xc2, 0x1c, 0x32, 0x9c, 0x27, 0x2e, 0x59, 0x65, 0xba, 0xee, 0xb0, 0xfe, 0x89, 0x1d, 0xe3, 0xcc, 0x8c, 0xbf, 0xa8, 0xe5, 0x41, 0xa8, 0x88, 0x1d, 0xf6, 0x89, 0x42, 0xe7, 0xff, 0x8d, 0xc6, 0x56, 0xbd, 0x08, 0x57, 0x5f, 0x6a, 0xaf, 0x92, 0x4a, 0x17, 0x6d, 0x66, 0x3b, 0x1a, 0x1f, 0x43, 0x57, 0x4d, 0x11, 0x76, 0x8c, 0x70, 0x1b, 0x26, 0x95, 0x61, 0xe5, 0x54, 0x38, 0xdb, 0xeb, 0xfd, 0x44, 0x3d, 0x21, 0x15, 0xcb, 0x93, 0x3d, 0x1c, 0xde, 0x4a, 0x91, 0x5b, 0x54, 0xc3, 0x25, 0xc2, 0x7f, 0x49, 0x9e, 0xf0, 0x2b, 0xd0, 0x12, 0xff, 0x1f, 0x9a, 0x36, 0x39, 0x09, 0x22, 0x88, 0x76, 0x00, 0xfe, 0x71, 0x2b, 0xcd, 0xc2, 0x3e, 0xb5, 0x97, 0x4a, 0x30, 0x53, 0x72, 0xad, 0x52, 0x95, 0x1f, 0x83, 0xf0, 0xe5, 0x8c, 0xc4, 0x9e, 0x28, 0x98, 0x41, 0x62, 0x19, 0x17, 0xf1, 0xfc, 0xb0, 0x23, 0x51, 0x47, 0x24, 0x0d, 0xae, 0x4c, 0xf3, 0xb9, 0x9b, 0x6a, 0xc6, 0xd8, 0xde, 0x94, 0xef, 0xe7, 0xc4, 0x43, 0x67, 0x14, 0x50, 0x8b, 0xcd, 0x01, 0x14, 0xc5, 0x60, 0x68, 0xff, 0x1b, 0x7c, 0x16, 0xd5, 0x1b, 0xd9, 0x06, 0x43, 0x78, 0x74, 0xd6, 0x54, 0x9a, 0xb5, 0xd8, 0x08, 0x78, 0x96, 0x87, 0x2e, 0xc8, 0xa0, 0x9d, 0x74, 0x12, };
8210 static const u8 ed25519_357_test_vectors_expected_sig[] = {
8211 	0x2f, 0xbd, 0x89, 0x9d, 0x72, 0xb6, 0xd3, 0x9e, 0x4f, 0x45, 0xb8, 0xb6, 0x2c, 0xbb, 0xd5, 0xf3, 0xc0, 0xac, 0xb1, 0xad, 0x85, 0x40, 0x91, 0x3f, 0xa5, 0x85, 0x87, 0x7e, 0x91, 0xcc, 0xfe, 0xf7, 0xbe, 0xe5, 0x0a, 0x4b, 0x0f, 0x9f, 0xed, 0xf5, 0xcc, 0x1e, 0x0d, 0x19, 0x53, 0xad, 0x39, 0x9c, 0x83, 0x89, 0xa9, 0x33, 0x91, 0xe1, 0xb7, 0xc9, 0x29, 0xaf, 0x6d, 0x6f, 0x3b, 0x79, 0x6c, 0x08, };
8212 static const ec_test_case ed25519_357_test_case = {
8213 	.name = "EDDSA25519-SHA512/wei25519 357",
8214 	.ec_str_p = &wei25519_str_params,
8215 	.priv_key = ed25519_357_test_vectors_priv_key,
8216 	.priv_key_len = sizeof(ed25519_357_test_vectors_priv_key),
8217 	.nn_random = NULL,
8218 	.hash_type = SHA512,
8219 	.msg = (const char *)ed25519_357_test_vectors_message,
8220 	.msglen = sizeof(ed25519_357_test_vectors_message),
8221 	.sig_type = EDDSA25519,
8222 	.exp_sig = ed25519_357_test_vectors_expected_sig,
8223 	.exp_siglen = sizeof(ed25519_357_test_vectors_expected_sig),
8224 	.adata = NULL,
8225 	.adata_len = 0
8226 };
8227 
8228 /************************************************/
8229 static const u8 ed25519_358_test_vectors_priv_key[] = {
8230 	0xad, 0x75, 0xc9, 0xce, 0x29, 0x9c, 0x4d, 0x59, 0x39, 0x33, 0x67, 0xd7, 0x7a, 0x4c, 0x9f, 0x8d, 0xf8, 0xdc, 0xec, 0x76, 0x5c, 0x6d, 0xbd, 0x25, 0xb5, 0x27, 0xfb, 0x76, 0x69, 0x91, 0x36, 0x04, };
8231 static const u8 ed25519_358_test_vectors_message[] = {
8232 	0x62, 0xfc, 0x5a, 0xb6, 0x7d, 0xeb, 0x1f, 0xee, 0x9a, 0xb6, 0xcc, 0xa3, 0xb8, 0x8a, 0x1d, 0xf1, 0xe5, 0x89, 0xf0, 0xfd, 0x4a, 0x88, 0xf4, 0xaa, 0x77, 0x38, 0x94, 0x87, 0x61, 0xfe, 0x84, 0x37, 0x2c, 0x5b, 0x18, 0xe4, 0x65, 0x52, 0x20, 0xc1, 0xd8, 0x4d, 0x52, 0xac, 0xad, 0x32, 0xe2, 0x29, 0xa5, 0xc7, 0x56, 0xc2, 0x0f, 0xc6, 0x2f, 0xe4, 0xb4, 0xb4, 0xe5, 0xfd, 0x70, 0x77, 0xae, 0x4e, 0xd5, 0x39, 0x7a, 0xa7, 0x96, 0xf2, 0x30, 0x7c, 0xee, 0xdb, 0x65, 0x05, 0xb3, 0x92, 0x97, 0x85, 0x6f, 0x4a, 0xeb, 0x5e, 0x70, 0x93, 0x8e, 0x36, 0xee, 0x24, 0xa0, 0xac, 0x7d, 0x98, 0x68, 0x30, 0x6f, 0x6b, 0x53, 0x91, 0x06, 0x23, 0xb7, 0xdc, 0x89, 0xa6, 0x67, 0x2a, 0xd7, 0x38, 0x57, 0x6e, 0xd5, 0xd8, 0x88, 0x31, 0xdd, 0x33, 0x83, 0x21, 0xc8, 0x90, 0x2b, 0xc2, 0x06, 0x1f, 0x65, 0xe9, 0x4d, 0x45, 0x2f, 0xdf, 0xa0, 0xdc, 0x66, 0x5c, 0xef, 0xb9, 0x23, 0x08, 0xe5, 0x23, 0x01, 0xbd, 0x46, 0x27, 0x00, 0x6b, 0x36, 0x3d, 0x06, 0xb7, 0x75, 0xa3, 0x95, 0x91, 0x4d, 0x8c, 0x86, 0x3e, 0x95, 0xa0, 0x0d, 0x68, 0x93, 0xf3, 0x37, 0x61, 0x34, 0xc4, 0x29, 0xf5, 0x64, 0x78, 0x14, 0x5e, 0x44, 0x56, 0xf7, 0xa1, 0x2d, 0x65, 0xbb, 0x2b, 0x89, 0x65, 0xd7, 0x28, 0xcb, 0x2d, 0xdb, 0xb7, 0x08, 0xf7, 0x12, 0x5c, 0x23, 0x70, 0x95, 0xa9, 0x21, 0x95, 0xd9, 0x2f, 0xa7, 0x27, 0xa3, 0x72, 0xf3, 0x54, 0x5a, 0xe7, 0x01, 0xf3, 0x80, 0x8f, 0xee, 0x80, 0x2c, 0x89, 0x67, 0xa7, 0x6e, 0x8a, 0x94, 0x0e, 0x55, 0xfb, 0x2d, 0x81, 0x0b, 0xfb, 0x47, 0xad, 0xa1, 0x56, 0xf0, 0xed, 0xa1, 0x82, 0x9b, 0x15, 0x9c, 0xf0, 0x5c, 0x7f, 0x36, 0xcf, 0x38, 0x47, 0xd7, 0xb2, 0x1d, 0xe8, 0x4c, 0x3d, 0xc0, 0xfe, 0x65, 0x83, 0x47, 0xf7, 0x93, 0x96, 0xa0, 0x11, 0x39, 0xa5, 0x08, 0xb6, 0x00, 0x22, 0xdb, 0x1c, 0x0e, 0x5a, 0xee, 0xf4, 0x7e, 0x44, 0x5e, 0x66, 0xf7, 0x83, 0xe6, 0x2c, 0x96, 0x59, 0x7b, 0xdb, 0x16, 0xf2, 0x09, 0xc0, 0x8a, 0x91, 0x32, 0xc7, 0x57, 0x31, 0x36, 0x17, 0x0e, 0xe3, 0xeb, 0xf2, 0x42, 0x61, 0x26, 0x5a, 0x89, 0xfb, 0x4f, 0x10, 0x33, 0x33, 0x75, 0xe2, 0x0b, 0x33, 0xab, 0x74, 0x03, 0x46, 0x4f, 0x52, 0x49, 0x46, 0x1c, 0x68, 0x53, 0xc5, 0xfd, 0xdb, 0x9f, 0x58, 0xaf, 0x81, 0x68, 0x92, 0x91, 0x03, 0x93, 0xa7, 0x07, 0x7b, 0x79, 0x9f, 0xdc, 0x34, 0x89, 0x72, 0x09, 0x98, 0xfe, 0xea, 0x86, };
8233 static const u8 ed25519_358_test_vectors_expected_sig[] = {
8234 	0x6b, 0x7e, 0xf2, 0x7b, 0xcf, 0xbf, 0x2b, 0x71, 0x49, 0x85, 0x03, 0x37, 0x64, 0xfc, 0xcf, 0xf5, 0x55, 0xe3, 0xf5, 0xbc, 0x44, 0x61, 0x0d, 0x6c, 0x8c, 0x62, 0x11, 0x7c, 0xb3, 0x83, 0x1a, 0x07, 0xf4, 0xa8, 0xbd, 0xdb, 0x0e, 0xae, 0xd1, 0xd4, 0x6b, 0x02, 0x89, 0xb1, 0x5d, 0xe1, 0xaa, 0x4d, 0xcc, 0x17, 0xd7, 0x1b, 0xe9, 0x6a, 0x09, 0xe6, 0x6b, 0xa4, 0xdc, 0x46, 0x27, 0xc7, 0x87, 0x05, };
8235 static const ec_test_case ed25519_358_test_case = {
8236 	.name = "EDDSA25519-SHA512/wei25519 358",
8237 	.ec_str_p = &wei25519_str_params,
8238 	.priv_key = ed25519_358_test_vectors_priv_key,
8239 	.priv_key_len = sizeof(ed25519_358_test_vectors_priv_key),
8240 	.nn_random = NULL,
8241 	.hash_type = SHA512,
8242 	.msg = (const char *)ed25519_358_test_vectors_message,
8243 	.msglen = sizeof(ed25519_358_test_vectors_message),
8244 	.sig_type = EDDSA25519,
8245 	.exp_sig = ed25519_358_test_vectors_expected_sig,
8246 	.exp_siglen = sizeof(ed25519_358_test_vectors_expected_sig),
8247 	.adata = NULL,
8248 	.adata_len = 0
8249 };
8250 
8251 /************************************************/
8252 static const u8 ed25519_359_test_vectors_priv_key[] = {
8253 	0x1c, 0xed, 0x57, 0x45, 0x29, 0xb9, 0xb4, 0x16, 0x97, 0x7e, 0x92, 0xeb, 0x39, 0x44, 0x8a, 0x87, 0x17, 0xca, 0xc2, 0x93, 0x4a, 0x24, 0x3a, 0x5c, 0x44, 0xfb, 0x44, 0xb7, 0x3c, 0xcc, 0x16, 0xda, };
8254 static const u8 ed25519_359_test_vectors_message[] = {
8255 	0x1b, 0x3b, 0x95, 0x3c, 0xce, 0x6d, 0x15, 0x30, 0x3c, 0x61, 0xca, 0x70, 0x76, 0x09, 0xf7, 0x0e, 0x72, 0x50, 0xf6, 0xc0, 0xde, 0xba, 0x56, 0xa8, 0xce, 0x52, 0x2b, 0x59, 0x86, 0x68, 0x96, 0x51, 0xcd, 0xb8, 0x48, 0xb8, 0x42, 0xb2, 0x22, 0x96, 0x61, 0xb8, 0xee, 0xab, 0xfb, 0x85, 0x70, 0x74, 0x9e, 0xd6, 0xc2, 0xb1, 0x0a, 0x8f, 0xbf, 0x51, 0x50, 0x53, 0xb5, 0xea, 0x7d, 0x7a, 0x92, 0x28, 0x34, 0x9e, 0x46, 0x46, 0xf9, 0x50, 0x5e, 0x19, 0x80, 0x29, 0xfe, 0xc9, 0xce, 0x0f, 0x38, 0xe4, 0xe0, 0xca, 0x73, 0x62, 0x58, 0x42, 0xd6, 0x4c, 0xaf, 0x8c, 0xed, 0x07, 0x0a, 0x6e, 0x29, 0xc7, 0x43, 0x58, 0x6a, 0xa3, 0xdb, 0x6d, 0x82, 0x99, 0x3a, 0xc7, 0x1f, 0xd3, 0x8b, 0x78, 0x31, 0x62, 0xd8, 0xfe, 0x04, 0xff, 0xd0, 0xfa, 0x5c, 0xbc, 0x38, 0x1d, 0x0e, 0x21, 0x9c, 0x91, 0x93, 0x7d, 0xf6, 0xc9, 0x73, 0x91, 0x2f, 0xc0, 0x2f, 0xda, 0x53, 0x77, 0x31, 0x24, 0x68, 0x27, 0x4c, 0x4b, 0xee, 0x6d, 0xca, 0x7f, 0x79, 0xc8, 0xb5, 0x44, 0x86, 0x1e, 0xd5, 0xba, 0xbc, 0xf5, 0xc5, 0x0e, 0x14, 0x73, 0x49, 0x1b, 0xe0, 0x17, 0x08, 0xac, 0x7c, 0x9f, 0xf5, 0x8f, 0x1e, 0x40, 0xf8, 0x55, 0x49, 0x7c, 0xe9, 0xd7, 0xcc, 0x47, 0xb9, 0x41, 0x0f, 0x2e, 0xdd, 0x00, 0xf6, 0x49, 0x67, 0x40, 0x24, 0x3b, 0x8d, 0x03, 0xb2, 0xf5, 0xfa, 0x74, 0x2b, 0x9c, 0x63, 0x08, 0x67, 0xf7, 0x7a, 0xc4, 0x2f, 0x2b, 0x62, 0xc1, 0x4e, 0x5e, 0xbd, 0xdc, 0x7b, 0x64, 0x7a, 0x05, 0xff, 0xf4, 0x36, 0x70, 0x74, 0x5f, 0x28, 0x51, 0xef, 0xf4, 0x90, 0x9f, 0x5d, 0x27, 0xd5, 0x7a, 0xe8, 0x7f, 0x61, 0xe9, 0x65, 0xee, 0x60, 0xfd, 0xf9, 0x77, 0x24, 0xc5, 0x92, 0x67, 0xf2, 0x61, 0x0b, 0x7a, 0xd5, 0xde, 0x91, 0x98, 0x56, 0xd6, 0x4d, 0x7c, 0x21, 0x26, 0x59, 0xce, 0x86, 0x56, 0x14, 0x9b, 0x6a, 0x6d, 0x29, 0xd8, 0xf9, 0x2b, 0x31, 0x2b, 0xe5, 0x0b, 0x6e, 0x2a, 0x43, 0x1d, 0x36, 0xae, 0x02, 0x2b, 0x00, 0xa6, 0xfe, 0x36, 0x0e, 0x3a, 0xf6, 0x54, 0x32, 0x89, 0x9c, 0x43, 0xbe, 0x04, 0x27, 0xe3, 0x6d, 0x21, 0xcf, 0xec, 0x81, 0xf2, 0x1a, 0xa5, 0x3b, 0x33, 0xdb, 0x5e, 0xd2, 0xc3, 0x7d, 0xa8, 0xf9, 0x6a, 0xc3, 0xe7, 0xdc, 0x67, 0xa1, 0xde, 0x37, 0x54, 0x6c, 0xf7, 0xde, 0x10, 0x08, 0xc7, 0xe1, 0xad, 0xbe, 0x0f, 0x34, 0xfa, 0x7e, 0xb2, 0x43, 0x4d, 0x94, 0xe6, 0xa1, 0x3f, 0x4c, 0xf8, 0x6a, 0x98, 0xd4, 0x97, 0x62, 0x2f, };
8256 static const u8 ed25519_359_test_vectors_expected_sig[] = {
8257 	0xe0, 0x30, 0x3a, 0xef, 0xe0, 0x8a, 0x77, 0x73, 0x8d, 0xcc, 0x65, 0x7a, 0xfb, 0xb9, 0xb8, 0x35, 0xed, 0x27, 0x96, 0x13, 0xa5, 0x3c, 0x73, 0xfd, 0xc5, 0xdd, 0xbf, 0xb3, 0x50, 0xe5, 0xcf, 0xf4, 0xd6, 0xc9, 0xbb, 0x43, 0xdc, 0x07, 0xc9, 0x5b, 0xf4, 0xe2, 0x3b, 0x64, 0xc4, 0x0f, 0x88, 0x04, 0xc7, 0x16, 0x99, 0x52, 0xe3, 0xc8, 0xd5, 0x9a, 0x71, 0x97, 0x24, 0x1b, 0xfe, 0xd0, 0x74, 0x0f, };
8258 static const ec_test_case ed25519_359_test_case = {
8259 	.name = "EDDSA25519-SHA512/wei25519 359",
8260 	.ec_str_p = &wei25519_str_params,
8261 	.priv_key = ed25519_359_test_vectors_priv_key,
8262 	.priv_key_len = sizeof(ed25519_359_test_vectors_priv_key),
8263 	.nn_random = NULL,
8264 	.hash_type = SHA512,
8265 	.msg = (const char *)ed25519_359_test_vectors_message,
8266 	.msglen = sizeof(ed25519_359_test_vectors_message),
8267 	.sig_type = EDDSA25519,
8268 	.exp_sig = ed25519_359_test_vectors_expected_sig,
8269 	.exp_siglen = sizeof(ed25519_359_test_vectors_expected_sig),
8270 	.adata = NULL,
8271 	.adata_len = 0
8272 };
8273 
8274 /************************************************/
8275 static const u8 ed25519_360_test_vectors_priv_key[] = {
8276 	0xf0, 0x79, 0x0d, 0x93, 0xe2, 0xd3, 0xb8, 0x4f, 0x61, 0xef, 0x4c, 0x80, 0x71, 0x47, 0xab, 0xa4, 0x10, 0xe4, 0x15, 0xe7, 0x2b, 0x71, 0xb0, 0xd6, 0x1d, 0x01, 0x02, 0x6f, 0xed, 0x99, 0xda, 0x3d, };
8277 static const u8 ed25519_360_test_vectors_message[] = {
8278 	0x79, 0x73, 0xe9, 0xf3, 0x2d, 0x74, 0x80, 0x59, 0x92, 0xeb, 0x65, 0xda, 0x0d, 0x63, 0x73, 0x35, 0xe5, 0x0e, 0xff, 0x0c, 0xe6, 0x8e, 0xa2, 0xd1, 0xf3, 0xa0, 0x2d, 0xe7, 0x04, 0x49, 0x2b, 0x9c, 0xfb, 0xe7, 0xe7, 0xba, 0x96, 0xfd, 0xb4, 0x2b, 0xb8, 0x21, 0xa5, 0x13, 0xd7, 0x3f, 0xc6, 0x04, 0x02, 0xe9, 0x2c, 0x85, 0x5d, 0xea, 0xed, 0x73, 0xff, 0xea, 0xf7, 0x09, 0x52, 0x02, 0x90, 0x62, 0xc8, 0x33, 0xe1, 0x4e, 0xc1, 0xb1, 0x4f, 0x14, 0x4e, 0x22, 0x07, 0xf6, 0xa0, 0xe7, 0x27, 0xe5, 0xa7, 0xe3, 0xcb, 0xab, 0x27, 0xd5, 0x97, 0x29, 0x70, 0xf6, 0x95, 0x18, 0xa1, 0x5b, 0x09, 0x3e, 0x74, 0x0c, 0xc0, 0xce, 0x11, 0xbf, 0x52, 0x48, 0xf0, 0x82, 0x6b, 0x8a, 0x98, 0xbd, 0xe8, 0xbf, 0x2c, 0x70, 0x82, 0xc9, 0x7a, 0xff, 0x15, 0x8d, 0x08, 0x37, 0x11, 0x18, 0xc8, 0x90, 0x21, 0xcc, 0x39, 0x74, 0xae, 0x8f, 0x76, 0xd8, 0x66, 0x73, 0xc3, 0xf8, 0x24, 0xb6, 0x2c, 0x79, 0xc4, 0xb4, 0x1f, 0x40, 0xea, 0xa8, 0x94, 0x37, 0x38, 0xf0, 0x33, 0x00, 0xf6, 0x8c, 0xbe, 0x17, 0x54, 0x68, 0xeb, 0x23, 0x5a, 0x9f, 0xf0, 0xe6, 0x53, 0x7f, 0x87, 0x14, 0xe9, 0x7e, 0x8f, 0x08, 0xca, 0x44, 0x4e, 0x41, 0x19, 0x10, 0x63, 0xb5, 0xfa, 0xbd, 0x15, 0x6e, 0x85, 0xdc, 0xf6, 0x66, 0x06, 0xb8, 0x1d, 0xad, 0x4a, 0x95, 0x06, 0x55, 0x84, 0xb3, 0xe0, 0x65, 0x8c, 0x20, 0xa7, 0x06, 0xea, 0xf4, 0xa0, 0x77, 0x7d, 0xa4, 0xd2, 0xe0, 0xcd, 0x2a, 0x0f, 0xca, 0x60, 0x10, 0x9c, 0x2b, 0x44, 0x03, 0xdb, 0x3f, 0x03, 0xcd, 0x47, 0x81, 0xc1, 0xfb, 0xb0, 0x27, 0x22, 0x02, 0xbc, 0xb1, 0x16, 0x87, 0x80, 0x8c, 0x50, 0xcb, 0x98, 0xf6, 0x4b, 0x7f, 0x3f, 0xd3, 0xd4, 0x33, 0x33, 0xbb, 0x5a, 0x06, 0x1b, 0x9e, 0x37, 0x70, 0x90, 0xab, 0xb1, 0xe0, 0xa8, 0x85, 0xcb, 0x26, 0xb7, 0x3c, 0x16, 0x3e, 0x63, 0xff, 0x64, 0x51, 0xff, 0x2f, 0x4e, 0xc8, 0x24, 0x9c, 0x7e, 0x15, 0x2b, 0xd0, 0x39, 0x73, 0xa1, 0xe9, 0x64, 0xe2, 0xb5, 0xb2, 0x35, 0x28, 0x1a, 0x93, 0x83, 0x99, 0xa1, 0x12, 0xa2, 0x45, 0x29, 0xe3, 0x83, 0xa5, 0x60, 0xdc, 0x50, 0xbb, 0x1b, 0x62, 0x2a, 0xd7, 0x4e, 0xf3, 0x56, 0x58, 0xdc, 0xb1, 0x0f, 0xfe, 0x02, 0x25, 0x68, 0xac, 0x3f, 0xfa, 0xe5, 0xb4, 0x65, 0xa8, 0xed, 0x76, 0x43, 0xe8, 0x56, 0x1b, 0x35, 0x2e, 0xe9, 0x94, 0x4a, 0x35, 0xd8, 0x82, 0xc7, 0x12, 0xb1, 0x87, 0x78, 0x8a, 0x0a, 0xba, 0xe5, 0xa2, 0x2f, };
8279 static const u8 ed25519_360_test_vectors_expected_sig[] = {
8280 	0x08, 0x77, 0x3a, 0x6a, 0x78, 0x76, 0x2c, 0xbb, 0x1e, 0x25, 0xfc, 0xbb, 0x29, 0x13, 0x99, 0x41, 0xbd, 0xf1, 0x6f, 0x4e, 0x09, 0xa1, 0xfa, 0x08, 0xfc, 0x70, 0x1f, 0x32, 0xf9, 0x33, 0xed, 0xd7, 0x4c, 0x0a, 0xe9, 0x83, 0xc1, 0x2a, 0x0a, 0x5b, 0x02, 0x0b, 0x6b, 0xcf, 0x44, 0xbb, 0x71, 0x9d, 0xde, 0x8e, 0xd0, 0x78, 0x1a, 0x82, 0x98, 0x26, 0x56, 0x40, 0xe1, 0x60, 0x8c, 0x98, 0xb3, 0x01, };
8281 static const ec_test_case ed25519_360_test_case = {
8282 	.name = "EDDSA25519-SHA512/wei25519 360",
8283 	.ec_str_p = &wei25519_str_params,
8284 	.priv_key = ed25519_360_test_vectors_priv_key,
8285 	.priv_key_len = sizeof(ed25519_360_test_vectors_priv_key),
8286 	.nn_random = NULL,
8287 	.hash_type = SHA512,
8288 	.msg = (const char *)ed25519_360_test_vectors_message,
8289 	.msglen = sizeof(ed25519_360_test_vectors_message),
8290 	.sig_type = EDDSA25519,
8291 	.exp_sig = ed25519_360_test_vectors_expected_sig,
8292 	.exp_siglen = sizeof(ed25519_360_test_vectors_expected_sig),
8293 	.adata = NULL,
8294 	.adata_len = 0
8295 };
8296 
8297 /************************************************/
8298 static const u8 ed25519_361_test_vectors_priv_key[] = {
8299 	0x4c, 0xb9, 0xdf, 0x7c, 0xe6, 0xfa, 0xe9, 0xd6, 0x2b, 0xa0, 0x9e, 0x8e, 0xb7, 0x0e, 0x4c, 0x96, 0x9b, 0xde, 0xaf, 0xcb, 0x5e, 0xc7, 0xd7, 0x02, 0x43, 0x26, 0xe6, 0x60, 0x3b, 0x06, 0x21, 0xbf, };
8300 static const u8 ed25519_361_test_vectors_message[] = {
8301 	0x14, 0x62, 0x7d, 0x6e, 0xa0, 0xe7, 0x89, 0x54, 0x60, 0x75, 0x94, 0x76, 0xdc, 0x74, 0xc4, 0x28, 0x00, 0xce, 0xef, 0x99, 0x43, 0x27, 0x51, 0x81, 0x51, 0x49, 0x0d, 0x9d, 0xf2, 0x30, 0x67, 0x91, 0x4e, 0x44, 0x78, 0x8a, 0x12, 0x76, 0x8c, 0xcb, 0x25, 0x47, 0x1b, 0x9c, 0x3b, 0xa9, 0xd1, 0x4f, 0xb4, 0x36, 0xdc, 0xba, 0x38, 0x42, 0x9b, 0x3a, 0x04, 0x56, 0x87, 0x77, 0x63, 0xc4, 0x91, 0x75, 0xd0, 0xe0, 0x82, 0x68, 0x3e, 0x07, 0xa9, 0x05, 0x8f, 0x36, 0x85, 0xc6, 0x27, 0x93, 0x07, 0xb2, 0x30, 0x3d, 0x12, 0x21, 0xb9, 0xc2, 0x97, 0x93, 0xd8, 0xa4, 0x87, 0x7f, 0x6d, 0xf5, 0x15, 0x87, 0x38, 0x4d, 0xad, 0xf7, 0x51, 0xc5, 0xf7, 0xbf, 0xbd, 0x20, 0x7d, 0x51, 0x96, 0x22, 0xc3, 0x7b, 0x51, 0xce, 0xee, 0xe2, 0xc2, 0x0d, 0x82, 0x69, 0xf8, 0xcb, 0x88, 0xd3, 0xfe, 0x43, 0xd6, 0xd4, 0x34, 0xd5, 0xbb, 0xd0, 0xe2, 0x03, 0xc1, 0x53, 0x2d, 0x97, 0xba, 0x55, 0x21, 0x47, 0x22, 0x74, 0x96, 0xc8, 0x7f, 0x67, 0xb5, 0x0b, 0xb7, 0x61, 0x93, 0xad, 0xd0, 0x14, 0x4d, 0xf1, 0xc1, 0x76, 0x65, 0x75, 0x85, 0x40, 0x83, 0x62, 0xca, 0x2e, 0xd0, 0x4a, 0xd6, 0x2a, 0xcf, 0x1c, 0x25, 0xe3, 0x41, 0xdf, 0xd1, 0x49, 0x8d, 0x85, 0xb4, 0xb1, 0x34, 0x9a, 0x8b, 0x0b, 0x9b, 0x02, 0xc4, 0x35, 0x23, 0xc5, 0x58, 0x53, 0x41, 0x9b, 0xfe, 0xd3, 0x7d, 0x5a, 0x2c, 0xdf, 0x17, 0xdf, 0xbf, 0x1a, 0x3b, 0xd7, 0x75, 0x9d, 0x6a, 0xe1, 0x80, 0xf9, 0xd2, 0x7d, 0xcd, 0x9a, 0x89, 0x33, 0xe2, 0x9a, 0x7c, 0x0a, 0x30, 0x77, 0x1e, 0xea, 0x7c, 0x2e, 0x0f, 0xa2, 0x42, 0x92, 0x5d, 0x23, 0x36, 0xdc, 0xe5, 0x85, 0x62, 0x90, 0x57, 0xd8, 0x44, 0x32, 0x39, 0x64, 0xf6, 0xd3, 0xd1, 0x1f, 0xf0, 0xb3, 0xf8, 0x29, 0xa3, 0xbe, 0x8c, 0x9f, 0x04, 0x68, 0xa6, 0x82, 0x3d, 0x8e, 0x70, 0xab, 0x5a, 0x2d, 0xa2, 0x1e, 0x15, 0xfa, 0x8b, 0x04, 0x1a, 0x29, 0x81, 0x22, 0x22, 0xe9, 0xc3, 0x0b, 0x2b, 0xd9, 0xa1, 0x2d, 0x1f, 0xde, 0xe6, 0xf8, 0x78, 0x76, 0xe8, 0xce, 0x81, 0x00, 0x96, 0x37, 0xa8, 0xbb, 0x22, 0x36, 0x12, 0x9a, 0x47, 0xca, 0x74, 0x28, 0x9e, 0xe4, 0xaa, 0xd4, 0x29, 0xff, 0xe2, 0x9f, 0x47, 0x43, 0x02, 0x41, 0xca, 0x8c, 0xc3, 0x84, 0x8b, 0x72, 0x00, 0xfd, 0x6e, 0x14, 0x70, 0x65, 0x1a, 0x9a, 0x0a, 0x6f, 0x72, 0xc9, 0x03, 0x3e, 0x83, 0x1d, 0xf0, 0x51, 0x40, 0x8a, 0x62, 0x60, 0xf6, 0x5c, 0xba, 0xf6, 0xe0, 0x12, 0xb1, 0x8e, };
8302 static const u8 ed25519_361_test_vectors_expected_sig[] = {
8303 	0xe3, 0x3c, 0x07, 0x83, 0x6c, 0x53, 0x7d, 0x6b, 0xfb, 0xd0, 0xf4, 0x59, 0x2d, 0x6e, 0x35, 0xb1, 0x63, 0x49, 0x9b, 0xa7, 0x8d, 0xc7, 0xff, 0xce, 0xc5, 0x65, 0xd0, 0x4f, 0x9a, 0x7d, 0xb7, 0x81, 0x94, 0x3e, 0x29, 0xe6, 0xce, 0x76, 0x76, 0x3e, 0x9b, 0xad, 0xdf, 0x57, 0x43, 0x7f, 0xd9, 0xc6, 0xb0, 0x32, 0x39, 0xa6, 0xe6, 0x85, 0x0e, 0x45, 0x02, 0xa3, 0x56, 0xc2, 0xe1, 0x2c, 0x37, 0x05, };
8304 static const ec_test_case ed25519_361_test_case = {
8305 	.name = "EDDSA25519-SHA512/wei25519 361",
8306 	.ec_str_p = &wei25519_str_params,
8307 	.priv_key = ed25519_361_test_vectors_priv_key,
8308 	.priv_key_len = sizeof(ed25519_361_test_vectors_priv_key),
8309 	.nn_random = NULL,
8310 	.hash_type = SHA512,
8311 	.msg = (const char *)ed25519_361_test_vectors_message,
8312 	.msglen = sizeof(ed25519_361_test_vectors_message),
8313 	.sig_type = EDDSA25519,
8314 	.exp_sig = ed25519_361_test_vectors_expected_sig,
8315 	.exp_siglen = sizeof(ed25519_361_test_vectors_expected_sig),
8316 	.adata = NULL,
8317 	.adata_len = 0
8318 };
8319 
8320 /************************************************/
8321 static const u8 ed25519_362_test_vectors_priv_key[] = {
8322 	0xa1, 0x36, 0xe0, 0x09, 0xd5, 0x3e, 0x5e, 0xf5, 0x9d, 0x09, 0x46, 0xbc, 0x17, 0x56, 0x63, 0xa8, 0x6b, 0xc0, 0xfc, 0xd2, 0x9e, 0xad, 0xd9, 0x5c, 0xfc, 0x9d, 0x26, 0x60, 0x37, 0xb1, 0xe4, 0xfb, };
8323 static const u8 ed25519_362_test_vectors_message[] = {
8324 	0xa4, 0x9d, 0x1c, 0x3d, 0x49, 0xe1, 0x3c, 0x2e, 0xda, 0x56, 0x86, 0x8a, 0x88, 0x24, 0xaa, 0x9f, 0x8d, 0x2b, 0xf7, 0x2f, 0x21, 0x95, 0x5e, 0xba, 0xfd, 0x07, 0xb3, 0xbd, 0xc8, 0xe9, 0x24, 0xde, 0x20, 0x93, 0x6c, 0xee, 0x51, 0x3d, 0x8a, 0x64, 0xa4, 0x71, 0x73, 0xa3, 0xbd, 0x65, 0x9e, 0xff, 0x1a, 0xcc, 0xff, 0x82, 0x44, 0xb2, 0x6a, 0xae, 0x1a, 0x0c, 0x27, 0xfa, 0x89, 0x1b, 0xf4, 0xd8, 0x5e, 0x8f, 0xb1, 0xb7, 0x6a, 0x6c, 0xab, 0x1e, 0x7f, 0x74, 0xc8, 0x9e, 0xe0, 0x7b, 0xb4, 0x0d, 0x71, 0x43, 0x26, 0xf0, 0x9b, 0x3f, 0xd4, 0x06, 0x32, 0xfa, 0xd2, 0x08, 0xea, 0x81, 0x6f, 0x90, 0x72, 0x02, 0x8c, 0x14, 0xb5, 0xb5, 0x4e, 0xcc, 0x1c, 0x5b, 0x7f, 0xc8, 0x09, 0xe7, 0xe0, 0x78, 0x6e, 0x2f, 0x11, 0x49, 0x5e, 0x76, 0x01, 0x7e, 0xb6, 0x2a, 0xa4, 0x56, 0x3f, 0x3d, 0x00, 0xee, 0x84, 0x34, 0x8d, 0x98, 0x38, 0xcd, 0x17, 0x64, 0x9f, 0x69, 0x29, 0xa6, 0xd2, 0x06, 0xf6, 0x0e, 0x6f, 0xc8, 0x2e, 0x0c, 0x34, 0x64, 0xb2, 0x7e, 0x0e, 0x6a, 0xbd, 0x22, 0xf4, 0x46, 0x9b, 0xdf, 0xd4, 0xcb, 0x54, 0xf7, 0x7e, 0x32, 0x9b, 0x80, 0xf7, 0x1b, 0xf4, 0x21, 0x29, 0xec, 0x13, 0xc9, 0xdf, 0xe1, 0x92, 0xad, 0xfa, 0xa4, 0x2e, 0xe3, 0xdd, 0xee, 0xda, 0x38, 0x58, 0x16, 0xfb, 0xad, 0x5f, 0x41, 0x19, 0x38, 0xc6, 0x3b, 0x56, 0x0f, 0x4e, 0xcd, 0x94, 0x53, 0x4b, 0xe7, 0xd9, 0x87, 0x25, 0xcd, 0x94, 0xc9, 0x9c, 0xe4, 0x92, 0xf0, 0xf0, 0x69, 0xba, 0x0e, 0xc0, 0x8f, 0x87, 0x7a, 0x78, 0x12, 0xef, 0x27, 0xae, 0x19, 0xd7, 0xa7, 0x7b, 0xe6, 0x3f, 0x66, 0xbc, 0xf8, 0xd6, 0xcf, 0x3a, 0x1a, 0x61, 0xfc, 0x9c, 0xfe, 0xf1, 0x04, 0xc7, 0x46, 0x2a, 0x21, 0xca, 0x7f, 0x03, 0xaf, 0xb5, 0xbb, 0x1a, 0xc8, 0xc7, 0x51, 0x24, 0xb5, 0x54, 0xe8, 0xd0, 0x44, 0xb8, 0x10, 0xd9, 0x5f, 0xf8, 0xc9, 0xdd, 0x09, 0xa3, 0x44, 0x84, 0xd8, 0xc4, 0xb6, 0xc9, 0x5f, 0x95, 0xc3, 0xc2, 0x28, 0x23, 0xf5, 0x2c, 0xe8, 0x44, 0x29, 0x37, 0x24, 0xd5, 0x25, 0x91, 0x91, 0xf1, 0xba, 0x09, 0x29, 0xe2, 0xac, 0xdb, 0xb8, 0xb9, 0xa7, 0xa8, 0xad, 0xf0, 0xc5, 0x2e, 0x78, 0xac, 0xdf, 0xdf, 0x05, 0x7b, 0x09, 0x85, 0x88, 0x1a, 0xfb, 0xed, 0x4d, 0xbe, 0xbd, 0xeb, 0xbd, 0xae, 0x0a, 0x2b, 0x63, 0xbd, 0x4e, 0x90, 0xf9, 0x6a, 0xfd, 0xcb, 0xbd, 0x78, 0xf5, 0x06, 0x30, 0x9f, 0x9b, 0xdb, 0x65, 0x00, 0x13, 0xcb, 0x73, 0xfa, 0xed, 0x73, 0x90, 0x4e, };
8325 static const u8 ed25519_362_test_vectors_expected_sig[] = {
8326 	0xbc, 0x09, 0x4b, 0xa9, 0x1c, 0x11, 0x5d, 0xee, 0x15, 0xd7, 0x53, 0x36, 0x1a, 0x75, 0xf3, 0xf0, 0x3d, 0x6a, 0xf4, 0x5c, 0x92, 0x15, 0x7e, 0x95, 0xdb, 0xe8, 0xd3, 0x21, 0x94, 0xb6, 0xc5, 0xce, 0x72, 0xb9, 0xdc, 0x66, 0xf7, 0x3d, 0xf1, 0x2d, 0xca, 0x0b, 0x63, 0x9f, 0x3e, 0x79, 0x1d, 0x47, 0x86, 0x16, 0xa1, 0xf8, 0xd7, 0x35, 0x9a, 0x42, 0xc8, 0xea, 0xe0, 0xdd, 0xa1, 0x6b, 0x16, 0x06, };
8327 static const ec_test_case ed25519_362_test_case = {
8328 	.name = "EDDSA25519-SHA512/wei25519 362",
8329 	.ec_str_p = &wei25519_str_params,
8330 	.priv_key = ed25519_362_test_vectors_priv_key,
8331 	.priv_key_len = sizeof(ed25519_362_test_vectors_priv_key),
8332 	.nn_random = NULL,
8333 	.hash_type = SHA512,
8334 	.msg = (const char *)ed25519_362_test_vectors_message,
8335 	.msglen = sizeof(ed25519_362_test_vectors_message),
8336 	.sig_type = EDDSA25519,
8337 	.exp_sig = ed25519_362_test_vectors_expected_sig,
8338 	.exp_siglen = sizeof(ed25519_362_test_vectors_expected_sig),
8339 	.adata = NULL,
8340 	.adata_len = 0
8341 };
8342 
8343 /************************************************/
8344 static const u8 ed25519_363_test_vectors_priv_key[] = {
8345 	0xff, 0x0f, 0x1c, 0x57, 0xdd, 0x88, 0x4f, 0xbe, 0xea, 0x6e, 0x29, 0x17, 0x28, 0x2b, 0x79, 0xba, 0x67, 0xf8, 0xa6, 0x85, 0x12, 0x67, 0xb9, 0xf4, 0x63, 0x6d, 0xaf, 0xda, 0x33, 0xbd, 0x2b, 0x5b, };
8346 static const u8 ed25519_363_test_vectors_message[] = {
8347 	0x52, 0x2a, 0x5e, 0x5e, 0xff, 0x5b, 0x5e, 0x98, 0xfa, 0xd6, 0x87, 0x8a, 0x9d, 0x72, 0xdf, 0x6e, 0xb3, 0x18, 0x62, 0x26, 0x10, 0xa1, 0xe1, 0xa4, 0x81, 0x83, 0xf5, 0x59, 0x0e, 0xce, 0xf5, 0xa6, 0xdf, 0x67, 0x1b, 0x28, 0xbe, 0x91, 0xc8, 0x8c, 0xdf, 0x7a, 0xe2, 0x88, 0x11, 0x47, 0xfe, 0x6c, 0x37, 0xc2, 0x8b, 0x43, 0xf6, 0x4c, 0xf9, 0x81, 0xc4, 0x55, 0xc5, 0x9e, 0x76, 0x5c, 0xe9, 0x4e, 0x1b, 0x64, 0x91, 0x63, 0x1d, 0xea, 0xee, 0xf6, 0xd1, 0xda, 0x9e, 0xbc, 0xa8, 0x86, 0x43, 0xc7, 0x7f, 0x83, 0xea, 0xe2, 0xcf, 0xdd, 0x2d, 0x97, 0xf6, 0x04, 0xfe, 0x45, 0x08, 0x1d, 0x1b, 0xe5, 0xc4, 0xae, 0x2d, 0x87, 0x59, 0x96, 0xb8, 0xb6, 0xfe, 0xcd, 0x70, 0x7d, 0x3f, 0xa2, 0x19, 0xa9, 0x3b, 0xa0, 0x48, 0x8e, 0x55, 0x24, 0x7b, 0x40, 0x5e, 0x33, 0x0c, 0xfb, 0x97, 0xd3, 0x1a, 0x13, 0x61, 0xc9, 0xb2, 0x08, 0x4b, 0xdb, 0x13, 0xfb, 0x0c, 0x05, 0x89, 0x25, 0xdb, 0x8c, 0x3c, 0x64, 0x9c, 0x9a, 0x3e, 0x93, 0x7b, 0x53, 0x3c, 0xc6, 0x31, 0x0f, 0xa3, 0xb1, 0x61, 0x26, 0xfb, 0x3c, 0xc9, 0xbb, 0x2b, 0x35, 0xc5, 0xc8, 0x30, 0x00, 0x15, 0x48, 0x8a, 0x30, 0xfa, 0xdc, 0xa3, 0xc8, 0x87, 0x1f, 0xa7, 0x0d, 0xfd, 0xc7, 0x05, 0x5b, 0xf8, 0xe6, 0x31, 0xf2, 0x0c, 0x9b, 0x25, 0x28, 0x31, 0x1e, 0x32, 0x4a, 0x7c, 0x4e, 0xdd, 0x54, 0x62, 0x07, 0x9f, 0x34, 0x41, 0xc9, 0xec, 0xf5, 0x5f, 0xa9, 0x99, 0xe7, 0x31, 0x37, 0x23, 0x44, 0xfd, 0xc0, 0xd4, 0x13, 0xe4, 0x17, 0xaa, 0xa0, 0x01, 0xa1, 0xb2, 0xd3, 0xd9, 0xbc, 0x00, 0x0f, 0xec, 0x1b, 0x02, 0xbd, 0x7a, 0x88, 0xa8, 0x12, 0xd9, 0xd8, 0xa6, 0x6f, 0x94, 0x64, 0x76, 0x4c, 0x07, 0x0c, 0x93, 0x04, 0x1e, 0xef, 0xb1, 0x7c, 0xe7, 0x4e, 0xff, 0x6d, 0x4a, 0xff, 0x75, 0xf0, 0xcb, 0xf6, 0xa7, 0x89, 0xa9, 0xec, 0xde, 0x74, 0xab, 0xe3, 0x31, 0x30, 0xfc, 0xa0, 0xda, 0x85, 0x3a, 0xa7, 0xc3, 0x31, 0x3a, 0xda, 0x3f, 0x0a, 0xe2, 0xf5, 0x95, 0xc6, 0x79, 0x6a, 0x93, 0x68, 0x5e, 0x72, 0x9d, 0xd1, 0x8a, 0x66, 0x9d, 0x63, 0x81, 0x82, 0x5a, 0xb3, 0xf3, 0x6a, 0x39, 0x1e, 0x75, 0x25, 0xb2, 0xa8, 0x07, 0xa5, 0x2f, 0xa5, 0xec, 0x2a, 0x03, 0x0a, 0x8c, 0xf3, 0xb7, 0x73, 0x37, 0xac, 0x41, 0xfc, 0xeb, 0x58, 0x0e, 0x84, 0x5e, 0xed, 0x65, 0x5a, 0x48, 0xb5, 0x47, 0x23, 0x8c, 0x2e, 0x81, 0x37, 0xc9, 0x2f, 0x8c, 0x27, 0xe5, 0x85, 0xca, 0xad, 0x31, 0x06, 0xee, 0xe3, 0x81, 0x4a, };
8348 static const u8 ed25519_363_test_vectors_expected_sig[] = {
8349 	0xd5, 0x00, 0x84, 0x86, 0x72, 0x6c, 0xce, 0x33, 0x0a, 0x29, 0xdd, 0x7e, 0x4d, 0x74, 0x74, 0xd7, 0x35, 0x79, 0x82, 0x01, 0xaf, 0xd1, 0x20, 0x6f, 0xeb, 0x86, 0x9a, 0x11, 0x2e, 0x5b, 0x43, 0x52, 0x3c, 0x06, 0x97, 0x67, 0x61, 0xbe, 0x3c, 0xf9, 0xb2, 0x71, 0x63, 0x78, 0x27, 0x3c, 0x94, 0xf9, 0x35, 0x72, 0xa7, 0xd2, 0xb8, 0x98, 0x26, 0x34, 0xe0, 0x75, 0x5c, 0x63, 0x2b, 0x44, 0x90, 0x08, };
8350 static const ec_test_case ed25519_363_test_case = {
8351 	.name = "EDDSA25519-SHA512/wei25519 363",
8352 	.ec_str_p = &wei25519_str_params,
8353 	.priv_key = ed25519_363_test_vectors_priv_key,
8354 	.priv_key_len = sizeof(ed25519_363_test_vectors_priv_key),
8355 	.nn_random = NULL,
8356 	.hash_type = SHA512,
8357 	.msg = (const char *)ed25519_363_test_vectors_message,
8358 	.msglen = sizeof(ed25519_363_test_vectors_message),
8359 	.sig_type = EDDSA25519,
8360 	.exp_sig = ed25519_363_test_vectors_expected_sig,
8361 	.exp_siglen = sizeof(ed25519_363_test_vectors_expected_sig),
8362 	.adata = NULL,
8363 	.adata_len = 0
8364 };
8365 
8366 /************************************************/
8367 static const u8 ed25519_364_test_vectors_priv_key[] = {
8368 	0x0b, 0xc6, 0xaf, 0x64, 0xde, 0x57, 0x09, 0xd3, 0xdb, 0xc2, 0x8f, 0x7e, 0xf6, 0xd3, 0xfe, 0x28, 0xb6, 0xde, 0x52, 0x9f, 0x08, 0xf5, 0x85, 0x7c, 0xcb, 0x91, 0x06, 0x95, 0xde, 0x45, 0x4f, 0x56, };
8369 static const u8 ed25519_364_test_vectors_message[] = {
8370 	0xac, 0x78, 0x86, 0xe4, 0xf4, 0x17, 0x2a, 0x22, 0xc9, 0x5e, 0x8e, 0xea, 0x37, 0x43, 0x7b, 0x37, 0x5d, 0x72, 0xac, 0xce, 0xdc, 0xee, 0x6c, 0xc6, 0xe8, 0x16, 0x76, 0x33, 0x01, 0xa2, 0xd8, 0xef, 0x4d, 0x6f, 0x31, 0xa2, 0xc1, 0xd6, 0x35, 0x81, 0x8b, 0x70, 0x26, 0xa3, 0x95, 0xce, 0x0d, 0xaf, 0xd7, 0x1c, 0x51, 0x80, 0x89, 0x3a, 0xf7, 0x6b, 0x7e, 0xa0, 0x56, 0xc9, 0x72, 0xd6, 0x80, 0xec, 0xa0, 0x1d, 0xcb, 0xdb, 0xae, 0x6b, 0x26, 0xf1, 0xc5, 0xf3, 0x3f, 0xc9, 0x88, 0xb8, 0x24, 0xfb, 0xbe, 0x00, 0xca, 0xcc, 0x31, 0x64, 0x69, 0xa3, 0xba, 0xe0, 0x7a, 0xa7, 0xc8, 0x88, 0x5a, 0xf7, 0xf6, 0x5f, 0x42, 0xe7, 0x5c, 0xef, 0x94, 0xdb, 0xb9, 0xaa, 0xb4, 0x82, 0x51, 0x43, 0xc8, 0x50, 0x70, 0xe7, 0x71, 0x6b, 0x76, 0x12, 0xf6, 0x4e, 0xf0, 0xb0, 0x16, 0x60, 0x11, 0xd2, 0x3e, 0xb5, 0x65, 0x4a, 0xa0, 0x98, 0xb0, 0x2d, 0x8d, 0x71, 0xe5, 0x7c, 0x8f, 0xa1, 0x7b, 0xff, 0x2f, 0xe9, 0x7d, 0xc8, 0x19, 0x31, 0x77, 0xea, 0xdc, 0x09, 0xfb, 0x19, 0x2d, 0x80, 0xaa, 0x92, 0xaf, 0xa9, 0x87, 0x20, 0xd4, 0x61, 0x48, 0x17, 0xff, 0x3c, 0x39, 0xd3, 0xac, 0xce, 0x18, 0x90, 0x6f, 0xa3, 0xde, 0x09, 0x61, 0x89, 0x31, 0xd0, 0xd7, 0xa6, 0x0c, 0x44, 0x29, 0xcb, 0xfa, 0x20, 0xcf, 0x16, 0x5c, 0x94, 0x79, 0x29, 0xac, 0x29, 0x3a, 0xe6, 0xc0, 0x6e, 0x7e, 0x8f, 0x25, 0xf1, 0x26, 0x42, 0x91, 0xe3, 0xe1, 0xc9, 0x8f, 0x5d, 0x93, 0xe6, 0xec, 0xc2, 0x38, 0x9b, 0xc6, 0x0d, 0xbb, 0xf4, 0xa6, 0x21, 0xb1, 0x32, 0xc5, 0x52, 0xa9, 0x9c, 0x95, 0xd2, 0x6d, 0x8d, 0x1a, 0xf6, 0x11, 0x38, 0xb5, 0x70, 0xa0, 0xde, 0x4b, 0x49, 0x7e, 0xbe, 0x80, 0x51, 0xc7, 0x27, 0x3a, 0x98, 0xe6, 0xe7, 0x87, 0x6d, 0x0b, 0x32, 0x75, 0x03, 0xaf, 0x3c, 0xb2, 0xcc, 0x40, 0x91, 0xce, 0x19, 0x25, 0xcb, 0x2f, 0x29, 0x57, 0xf4, 0xec, 0x56, 0xee, 0x90, 0xf8, 0xa0, 0x9d, 0xd5, 0x7d, 0x6e, 0x83, 0x06, 0x7a, 0x35, 0x6a, 0x4c, 0xfe, 0x65, 0xb1, 0xb7, 0xa4, 0x46, 0x5d, 0xa2, 0xab, 0x13, 0x3b, 0x0e, 0xfb, 0x5e, 0x7d, 0x4d, 0xbb, 0x81, 0x1b, 0xcb, 0xbd, 0xe7, 0x12, 0xaf, 0xbf, 0x0f, 0x7d, 0xd3, 0xf3, 0x26, 0x22, 0x22, 0x84, 0xb8, 0xc7, 0x4e, 0xac, 0x7a, 0xd6, 0x25, 0x7f, 0xa8, 0xc6, 0x32, 0xb7, 0xda, 0x25, 0x59, 0xa6, 0x26, 0x6e, 0x91, 0xe0, 0xef, 0x90, 0xdb, 0xb0, 0xaa, 0x96, 0x8f, 0x75, 0x37, 0x6b, 0x69, 0x3f, 0xca, 0xa5, 0xda, 0x34, 0x22, 0x21, };
8371 static const u8 ed25519_364_test_vectors_expected_sig[] = {
8372 	0xdb, 0xc7, 0x13, 0x4d, 0x1c, 0xd6, 0xb0, 0x81, 0x3b, 0x53, 0x35, 0x27, 0x14, 0xb6, 0xdf, 0x93, 0x94, 0x98, 0xe9, 0x1c, 0xf3, 0x7c, 0x32, 0x43, 0x37, 0xd9, 0xc0, 0x88, 0xa1, 0xb9, 0x98, 0x34, 0x7d, 0x26, 0x18, 0x5b, 0x43, 0x09, 0x00, 0x41, 0x29, 0x29, 0xe4, 0xf6, 0x3e, 0x91, 0x03, 0x79, 0xfc, 0x42, 0xe3, 0x55, 0xa4, 0xe9, 0x8f, 0x6f, 0xee, 0x27, 0xda, 0xfa, 0xd1, 0x95, 0x72, 0x06, };
8373 static const ec_test_case ed25519_364_test_case = {
8374 	.name = "EDDSA25519-SHA512/wei25519 364",
8375 	.ec_str_p = &wei25519_str_params,
8376 	.priv_key = ed25519_364_test_vectors_priv_key,
8377 	.priv_key_len = sizeof(ed25519_364_test_vectors_priv_key),
8378 	.nn_random = NULL,
8379 	.hash_type = SHA512,
8380 	.msg = (const char *)ed25519_364_test_vectors_message,
8381 	.msglen = sizeof(ed25519_364_test_vectors_message),
8382 	.sig_type = EDDSA25519,
8383 	.exp_sig = ed25519_364_test_vectors_expected_sig,
8384 	.exp_siglen = sizeof(ed25519_364_test_vectors_expected_sig),
8385 	.adata = NULL,
8386 	.adata_len = 0
8387 };
8388 
8389 /************************************************/
8390 static const u8 ed25519_365_test_vectors_priv_key[] = {
8391 	0x2f, 0x5e, 0x83, 0xbd, 0x5b, 0x41, 0x2e, 0x71, 0xae, 0x3e, 0x90, 0x84, 0xcd, 0x36, 0x9e, 0xfc, 0xc7, 0x9b, 0xf6, 0x03, 0x7c, 0x4b, 0x17, 0x4d, 0xfd, 0x6a, 0x11, 0xfb, 0x0f, 0x5d, 0xa2, 0x18, };
8392 static const u8 ed25519_365_test_vectors_message[] = {
8393 	0xb7, 0x66, 0x27, 0x3f, 0x06, 0x0e, 0xf3, 0xb2, 0xae, 0x33, 0x40, 0x45, 0x4a, 0x39, 0x1b, 0x42, 0x6b, 0xc2, 0xe9, 0x72, 0x64, 0xf8, 0x67, 0x45, 0x53, 0xeb, 0x00, 0xdd, 0x6e, 0xcf, 0xdd, 0x59, 0xb6, 0x11, 0xd8, 0xd6, 0x62, 0x92, 0x9f, 0xec, 0x71, 0x0d, 0x0e, 0x46, 0x20, 0x20, 0xe1, 0x2c, 0xdb, 0xf9, 0xc1, 0xec, 0x88, 0x58, 0xe8, 0x56, 0x71, 0xac, 0xf8, 0xb7, 0xb1, 0x44, 0x24, 0xce, 0x92, 0x07, 0x9d, 0x7d, 0x80, 0x1e, 0x2a, 0xd9, 0xac, 0xac, 0x03, 0x6b, 0xc8, 0xd2, 0xdf, 0xaa, 0x72, 0xaa, 0x83, 0x9b, 0xff, 0x30, 0xc0, 0xaa, 0x7e, 0x41, 0x4a, 0x88, 0x2c, 0x00, 0xb6, 0x45, 0xff, 0x9d, 0x31, 0xbc, 0xf5, 0xa5, 0x43, 0x82, 0xde, 0xf4, 0xd0, 0x14, 0x2e, 0xfa, 0x4f, 0x06, 0xe8, 0x23, 0x25, 0x7f, 0xf1, 0x32, 0xee, 0x96, 0x8c, 0xdc, 0x67, 0x38, 0xc5, 0x3f, 0x53, 0xb8, 0x4c, 0x8d, 0xf7, 0x6e, 0x9f, 0x78, 0xdd, 0x50, 0x56, 0xcf, 0x3d, 0x4d, 0x5a, 0x80, 0xa8, 0xf8, 0x4e, 0x3e, 0xde, 0xc4, 0x85, 0x20, 0xf2, 0xcb, 0x45, 0x83, 0xe7, 0x08, 0x53, 0x93, 0x55, 0xef, 0x7a, 0xa8, 0x6f, 0xb5, 0xa0, 0xe8, 0x7a, 0x94, 0xdc, 0xf1, 0x4f, 0x30, 0xa2, 0xcc, 0xa5, 0x68, 0xf1, 0x39, 0xd9, 0xce, 0x59, 0xea, 0xf4, 0x59, 0xa5, 0xc5, 0x91, 0x6c, 0xc8, 0xf2, 0x0b, 0x26, 0xaa, 0xf6, 0xc7, 0xc0, 0x29, 0x37, 0x9a, 0xed, 0xb0, 0x5a, 0x07, 0xfe, 0x58, 0x5c, 0xca, 0xc6, 0x03, 0x07, 0xc1, 0xf5, 0x8c, 0xa9, 0xf8, 0x59, 0x15, 0x7d, 0x06, 0xd0, 0x6b, 0xaa, 0x39, 0x4a, 0xac, 0xe7, 0x9d, 0x51, 0xb8, 0xcb, 0x38, 0xcf, 0xa2, 0x59, 0x81, 0x41, 0xe2, 0x45, 0x62, 0x4e, 0x5a, 0xb9, 0xb9, 0xd6, 0x87, 0x31, 0x17, 0x33, 0x48, 0x90, 0x53, 0x15, 0xbf, 0x1a, 0x5a, 0xd6, 0x1d, 0x1e, 0x8a, 0xda, 0xeb, 0x81, 0x0e, 0x4e, 0x8a, 0x86, 0xd7, 0xc1, 0x35, 0x37, 0xb0, 0xbe, 0x86, 0x0a, 0xb2, 0xed, 0x35, 0xb7, 0x33, 0x99, 0xb8, 0x80, 0x8a, 0xa9, 0x1d, 0x75, 0x0f, 0x77, 0x94, 0x3f, 0x8a, 0x8b, 0x7e, 0x89, 0xfd, 0xb5, 0x07, 0x28, 0xaa, 0x3d, 0xbb, 0xd8, 0xa4, 0x1a, 0x6e, 0x00, 0x75, 0x6f, 0x43, 0x8c, 0x9b, 0x9e, 0x9d, 0x55, 0x87, 0x2d, 0xf5, 0xa9, 0x06, 0x8a, 0xdd, 0x8a, 0x97, 0x2b, 0x7e, 0x43, 0xed, 0xad, 0x9c, 0xed, 0x22, 0x37, 0xca, 0x13, 0x67, 0xbe, 0x4b, 0x7c, 0xdb, 0x66, 0xa5, 0x4e, 0xa1, 0x2e, 0xef, 0x12, 0x94, 0x71, 0x15, 0x86, 0x10, 0xea, 0xf2, 0x8f, 0x99, 0xf7, 0xf6, 0x86, 0x55, 0x7d, 0xcd, 0xf6, 0x44, 0xea, };
8394 static const u8 ed25519_365_test_vectors_expected_sig[] = {
8395 	0x9f, 0x80, 0x92, 0x2b, 0xc8, 0xdb, 0x32, 0xd0, 0xcc, 0x43, 0xf9, 0x93, 0x6a, 0xff, 0xeb, 0xe7, 0xb2, 0xbc, 0x35, 0xa5, 0xd8, 0x22, 0x77, 0xcd, 0x18, 0x7b, 0x5d, 0x50, 0xdc, 0x7f, 0xc4, 0xc4, 0x83, 0x2f, 0xff, 0xa3, 0x4e, 0x95, 0x43, 0x80, 0x6b, 0x48, 0x5c, 0x04, 0x54, 0x8e, 0x7c, 0x75, 0x42, 0x94, 0x25, 0xe1, 0x4d, 0x55, 0xd9, 0x1f, 0xc1, 0x05, 0x2e, 0xfd, 0x86, 0x67, 0x43, 0x0b, };
8396 static const ec_test_case ed25519_365_test_case = {
8397 	.name = "EDDSA25519-SHA512/wei25519 365",
8398 	.ec_str_p = &wei25519_str_params,
8399 	.priv_key = ed25519_365_test_vectors_priv_key,
8400 	.priv_key_len = sizeof(ed25519_365_test_vectors_priv_key),
8401 	.nn_random = NULL,
8402 	.hash_type = SHA512,
8403 	.msg = (const char *)ed25519_365_test_vectors_message,
8404 	.msglen = sizeof(ed25519_365_test_vectors_message),
8405 	.sig_type = EDDSA25519,
8406 	.exp_sig = ed25519_365_test_vectors_expected_sig,
8407 	.exp_siglen = sizeof(ed25519_365_test_vectors_expected_sig),
8408 	.adata = NULL,
8409 	.adata_len = 0
8410 };
8411 
8412 /************************************************/
8413 static const u8 ed25519_366_test_vectors_priv_key[] = {
8414 	0x72, 0x2a, 0x2d, 0xa5, 0x0e, 0x42, 0xc1, 0x1a, 0x61, 0xc9, 0xaf, 0xac, 0x7b, 0xe1, 0xa2, 0xfe, 0xd2, 0x26, 0x7d, 0x65, 0x0f, 0x8f, 0x7d, 0x8e, 0x5b, 0xc7, 0x06, 0xb8, 0x07, 0xc1, 0xb9, 0x1d, };
8415 static const u8 ed25519_366_test_vectors_message[] = {
8416 	0x17, 0x3e, 0x8b, 0xb8, 0x85, 0xe1, 0xf9, 0x08, 0x14, 0x04, 0xac, 0xac, 0x99, 0x90, 0x41, 0xd2, 0xec, 0xfc, 0xb7, 0x3f, 0x94, 0x5e, 0x0d, 0xb3, 0x6e, 0x63, 0x1d, 0x7c, 0xd1, 0xab, 0x99, 0x9e, 0xb7, 0x17, 0xf3, 0x4b, 0xf0, 0x78, 0x74, 0xbf, 0x3d, 0x34, 0xe2, 0x53, 0x0e, 0xb6, 0x08, 0x5f, 0x4a, 0x9f, 0x88, 0xae, 0x1b, 0x0f, 0x7d, 0x80, 0xf2, 0x21, 0x45, 0x6a, 0x8e, 0x9a, 0x88, 0x90, 0xb9, 0x1a, 0x50, 0x19, 0x2d, 0xea, 0xaa, 0xcc, 0x0a, 0x1a, 0x61, 0x5a, 0x87, 0x84, 0x1e, 0x2c, 0x5a, 0x9e, 0x05, 0x79, 0x57, 0xaf, 0x6e, 0x48, 0xe7, 0x8c, 0xc8, 0x61, 0x98, 0xe3, 0x2e, 0x7a, 0xa2, 0x4d, 0xcf, 0x6c, 0xff, 0xa3, 0x29, 0xbc, 0x72, 0x60, 0x6d, 0x65, 0xb1, 0x16, 0x82, 0xc8, 0xba, 0x73, 0x6c, 0xce, 0x22, 0xa0, 0x57, 0x85, 0xdf, 0x11, 0x46, 0x33, 0x1e, 0x41, 0x60, 0x9c, 0xf9, 0xca, 0x71, 0x1c, 0xf4, 0x64, 0x95, 0x82, 0x97, 0x13, 0x8b, 0x58, 0xa9, 0x07, 0x3f, 0x3b, 0xbf, 0x06, 0xad, 0x8a, 0x85, 0xd1, 0x35, 0xde, 0x66, 0x65, 0x21, 0x04, 0xd8, 0x8b, 0x49, 0xd2, 0x7a, 0xd4, 0x1e, 0x59, 0xbc, 0xc4, 0x4c, 0x7f, 0xab, 0x68, 0xf5, 0x3f, 0x05, 0x02, 0xe2, 0x93, 0xff, 0xca, 0xba, 0xaf, 0x75, 0x59, 0x27, 0xdf, 0xdf, 0xfb, 0xfd, 0xe3, 0xb3, 0x5c, 0x08, 0x0b, 0x5d, 0xe4, 0xc8, 0xb7, 0x85, 0xf4, 0xda, 0x64, 0xef, 0x35, 0x7b, 0xc0, 0xd1, 0x46, 0x6a, 0x6a, 0x96, 0x56, 0x0c, 0x3c, 0x4f, 0x3e, 0x3c, 0x0b, 0x56, 0x3a, 0x00, 0x3f, 0x5f, 0x95, 0xf2, 0x37, 0x17, 0x1b, 0xce, 0x1a, 0x00, 0x17, 0x71, 0xa0, 0x4e, 0xde, 0x7c, 0xdd, 0x9b, 0x8c, 0xa7, 0x70, 0xfd, 0x36, 0xef, 0x90, 0xe9, 0xfe, 0x00, 0x00, 0xa8, 0xd7, 0x68, 0x5f, 0xd1, 0x53, 0xcc, 0x72, 0x82, 0xde, 0x95, 0x92, 0x0a, 0x8f, 0x8f, 0x08, 0x98, 0xd0, 0x0b, 0xf0, 0xc6, 0xc9, 0x33, 0xfe, 0x5b, 0xb9, 0x65, 0x3f, 0xf1, 0x46, 0xc4, 0xe2, 0xac, 0xd1, 0xa2, 0xe0, 0xc2, 0x3c, 0x12, 0x44, 0x84, 0x4d, 0xac, 0xf8, 0x65, 0x27, 0x16, 0x30, 0x2c, 0x20, 0x32, 0xf9, 0xc1, 0x14, 0x67, 0x9e, 0xd2, 0x6b, 0x3e, 0xe3, 0xab, 0x4a, 0x7b, 0x18, 0xbc, 0x4e, 0x30, 0x71, 0xf0, 0x97, 0x7d, 0xb5, 0x7c, 0xd0, 0xac, 0x68, 0xc0, 0x72, 0x7a, 0x09, 0xb4, 0xf1, 0x25, 0xfb, 0x64, 0xaf, 0x28, 0x50, 0xb2, 0x6c, 0x8a, 0x48, 0x42, 0x63, 0x33, 0x4e, 0x2d, 0xa9, 0x02, 0xd7, 0x44, 0x73, 0x70, 0x44, 0xe7, 0x9a, 0xb1, 0xcf, 0x5b, 0x2f, 0x93, 0xa0, 0x22, 0xb6, 0x3d, 0x40, 0xcd, };
8417 static const u8 ed25519_366_test_vectors_expected_sig[] = {
8418 	0xc2, 0x69, 0x5a, 0x57, 0x17, 0x2a, 0xaa, 0x31, 0xbd, 0x08, 0x90, 0xf2, 0x31, 0xca, 0x8e, 0xee, 0xc0, 0x28, 0x7a, 0x87, 0x17, 0x26, 0x69, 0xa8, 0x99, 0xad, 0x08, 0x91, 0xce, 0xa4, 0xc4, 0x75, 0x79, 0xb5, 0x04, 0x20, 0xe7, 0x91, 0xcd, 0xec, 0x8c, 0x18, 0x2c, 0x8a, 0x0e, 0x8d, 0xde, 0x21, 0xb2, 0x48, 0x0b, 0x0c, 0xfd, 0x81, 0x11, 0xe2, 0x8e, 0x56, 0x03, 0x34, 0x7a, 0x35, 0x2d, 0x04, };
8419 static const ec_test_case ed25519_366_test_case = {
8420 	.name = "EDDSA25519-SHA512/wei25519 366",
8421 	.ec_str_p = &wei25519_str_params,
8422 	.priv_key = ed25519_366_test_vectors_priv_key,
8423 	.priv_key_len = sizeof(ed25519_366_test_vectors_priv_key),
8424 	.nn_random = NULL,
8425 	.hash_type = SHA512,
8426 	.msg = (const char *)ed25519_366_test_vectors_message,
8427 	.msglen = sizeof(ed25519_366_test_vectors_message),
8428 	.sig_type = EDDSA25519,
8429 	.exp_sig = ed25519_366_test_vectors_expected_sig,
8430 	.exp_siglen = sizeof(ed25519_366_test_vectors_expected_sig),
8431 	.adata = NULL,
8432 	.adata_len = 0
8433 };
8434 
8435 /************************************************/
8436 static const u8 ed25519_367_test_vectors_priv_key[] = {
8437 	0x5f, 0xe9, 0xc3, 0x96, 0x0e, 0xd5, 0xbd, 0x37, 0x4c, 0xc9, 0x4d, 0x42, 0x35, 0x7e, 0x6a, 0x24, 0xdc, 0x7e, 0x30, 0x60, 0x78, 0x8f, 0x72, 0x63, 0x65, 0xde, 0xfa, 0xcf, 0x13, 0xcd, 0x12, 0xda, };
8438 static const u8 ed25519_367_test_vectors_message[] = {
8439 	0xc9, 0x49, 0x0d, 0x83, 0xd9, 0xc3, 0xa9, 0x37, 0x0f, 0x06, 0xc9, 0x1a, 0xf0, 0x01, 0x68, 0x5a, 0x02, 0xfe, 0x49, 0xb5, 0xca, 0x66, 0x77, 0x33, 0xff, 0xf1, 0x89, 0xee, 0xe8, 0x53, 0xec, 0x16, 0x67, 0xa6, 0xc1, 0xb6, 0xc7, 0x87, 0xe9, 0x24, 0x48, 0x12, 0xd2, 0xd5, 0x32, 0x86, 0x6a, 0xb7, 0x4d, 0xfc, 0x87, 0x0d, 0x6f, 0x14, 0x03, 0x3b, 0x6b, 0xcd, 0x39, 0x85, 0x2a, 0x39, 0x00, 0xf8, 0xf0, 0x8c, 0xd9, 0x5a, 0x74, 0xcb, 0x8c, 0xbe, 0x02, 0xb8, 0xb8, 0xb5, 0x1e, 0x99, 0x3a, 0x06, 0xad, 0xfe, 0xbd, 0x7f, 0xc9, 0x85, 0x4a, 0xe5, 0xd2, 0x9f, 0x4d, 0xf9, 0x64, 0x28, 0x71, 0xd0, 0xc5, 0xe4, 0x70, 0xd9, 0x03, 0xcf, 0xbc, 0xbd, 0x5a, 0xdb, 0x32, 0x75, 0x62, 0x8f, 0x28, 0xa8, 0x0b, 0xf8, 0xc0, 0xf0, 0x37, 0x66, 0x87, 0xda, 0xe6, 0x73, 0xbf, 0x7a, 0x85, 0x47, 0xe8, 0x0d, 0x4a, 0x98, 0x55, 0xae, 0x25, 0x72, 0xfc, 0x2b, 0x20, 0x5d, 0xc8, 0xa1, 0x98, 0x01, 0x6d, 0xdc, 0x9b, 0x50, 0x99, 0x5f, 0x5b, 0x39, 0xf3, 0x68, 0xf5, 0x40, 0x50, 0x4a, 0x55, 0x18, 0x03, 0xd6, 0xdd, 0x5f, 0x87, 0x48, 0x28, 0xe5, 0x54, 0x1d, 0xed, 0x05, 0x28, 0x94, 0xd9, 0xe2, 0xdc, 0x5e, 0x6a, 0xa3, 0x51, 0x08, 0x7e, 0x79, 0x0c, 0x0d, 0xd5, 0xd9, 0xc4, 0xde, 0xcb, 0x21, 0x7e, 0x4d, 0xb8, 0x1c, 0x98, 0xa1, 0x84, 0xb2, 0x64, 0xe6, 0xda, 0xea, 0xc0, 0xf1, 0x1e, 0x07, 0x4c, 0xae, 0x2b, 0xfc, 0x89, 0x9f, 0x54, 0xb4, 0x19, 0xc6, 0x5d, 0xcc, 0x22, 0x66, 0x4a, 0x91, 0x5f, 0xbf, 0xff, 0xac, 0x35, 0xce, 0xe0, 0xf2, 0x86, 0xeb, 0x7b, 0x14, 0x49, 0x33, 0xdb, 0x93, 0x3e, 0x16, 0xc4, 0xbc, 0xb6, 0x50, 0xd5, 0x37, 0x72, 0x24, 0x89, 0xde, 0x23, 0x63, 0x73, 0xfd, 0x8d, 0x65, 0xfc, 0x86, 0x11, 0x8b, 0x6d, 0xef, 0x37, 0xca, 0x46, 0x08, 0xbc, 0x6c, 0xe9, 0x27, 0xb6, 0x54, 0x36, 0xff, 0xda, 0x7f, 0x02, 0xbf, 0xbf, 0x88, 0xb0, 0x45, 0xae, 0x7d, 0x2c, 0x2b, 0x45, 0xa0, 0xb3, 0x0c, 0x8f, 0x2a, 0x04, 0xdf, 0x95, 0x32, 0x21, 0x08, 0x8c, 0x55, 0x5f, 0xe9, 0xa5, 0xdf, 0x26, 0x09, 0x82, 0xa3, 0xd6, 0x4d, 0xf1, 0x94, 0xee, 0x95, 0x2f, 0xa9, 0xa9, 0x8c, 0x31, 0xb9, 0x64, 0x93, 0xdb, 0x61, 0x80, 0xd1, 0x3d, 0x67, 0xc3, 0x67, 0x16, 0xf9, 0x5f, 0x8c, 0x0b, 0xd7, 0xa0, 0x39, 0xad, 0x99, 0x06, 0x67, 0xca, 0x34, 0xa8, 0x3a, 0xc1, 0xa1, 0x8c, 0x37, 0xdd, 0x7c, 0x77, 0x36, 0xaa, 0x6b, 0x9b, 0x6f, 0xc2, 0xb1, 0xac, 0x0c, 0xe1, 0x19, 0xef, 0x77, };
8440 static const u8 ed25519_367_test_vectors_expected_sig[] = {
8441 	0x37, 0x9f, 0x9c, 0x54, 0xc4, 0x13, 0xaf, 0x0d, 0x19, 0x2e, 0x9b, 0xc7, 0x36, 0xb2, 0x9d, 0xa9, 0xd5, 0x21, 0xe7, 0xba, 0x78, 0x41, 0xd3, 0x09, 0xf9, 0xbc, 0xc1, 0xe7, 0x42, 0xec, 0x43, 0x08, 0xfe, 0x9f, 0x7b, 0xa5, 0x1e, 0x0b, 0x22, 0xae, 0xd4, 0x87, 0xcb, 0x4a, 0xa3, 0x91, 0x3b, 0x9b, 0xeb, 0xfb, 0x3a, 0xac, 0xd3, 0x8f, 0x40, 0x39, 0xf9, 0xbb, 0xbe, 0xbe, 0x1a, 0xd8, 0x00, 0x02, };
8442 static const ec_test_case ed25519_367_test_case = {
8443 	.name = "EDDSA25519-SHA512/wei25519 367",
8444 	.ec_str_p = &wei25519_str_params,
8445 	.priv_key = ed25519_367_test_vectors_priv_key,
8446 	.priv_key_len = sizeof(ed25519_367_test_vectors_priv_key),
8447 	.nn_random = NULL,
8448 	.hash_type = SHA512,
8449 	.msg = (const char *)ed25519_367_test_vectors_message,
8450 	.msglen = sizeof(ed25519_367_test_vectors_message),
8451 	.sig_type = EDDSA25519,
8452 	.exp_sig = ed25519_367_test_vectors_expected_sig,
8453 	.exp_siglen = sizeof(ed25519_367_test_vectors_expected_sig),
8454 	.adata = NULL,
8455 	.adata_len = 0
8456 };
8457 
8458 /************************************************/
8459 static const u8 ed25519_368_test_vectors_priv_key[] = {
8460 	0xec, 0x2f, 0xa5, 0x41, 0xac, 0x14, 0xb4, 0x14, 0x14, 0x9c, 0x38, 0x25, 0xea, 0xa7, 0x00, 0x1b, 0x79, 0x5a, 0xa1, 0x95, 0x7d, 0x40, 0x40, 0xdd, 0xa9, 0x25, 0x73, 0x90, 0x4a, 0xfa, 0x7e, 0xe4, };
8461 static const u8 ed25519_368_test_vectors_message[] = {
8462 	0x27, 0x49, 0xfc, 0x7c, 0x4a, 0x72, 0x9e, 0x0e, 0x0a, 0xd7, 0x1b, 0x5b, 0x74, 0xeb, 0x9f, 0x9c, 0x53, 0x4e, 0xbd, 0x02, 0xff, 0xc9, 0xdf, 0x43, 0x74, 0xd8, 0x13, 0xbd, 0xd1, 0xae, 0x4e, 0xb8, 0x7f, 0x13, 0x50, 0xd5, 0xfd, 0xc5, 0x63, 0x93, 0x45, 0x15, 0x77, 0x17, 0x63, 0xe6, 0xc3, 0x3b, 0x50, 0xe6, 0x4e, 0x0c, 0xd1, 0x14, 0x57, 0x30, 0x31, 0xd2, 0x18, 0x6b, 0x6e, 0xca, 0x4f, 0xc8, 0x02, 0xcd, 0xdc, 0x7c, 0xc5, 0x1d, 0x92, 0xa6, 0x13, 0x45, 0xa1, 0x7f, 0x6a, 0xc3, 0x8c, 0xc7, 0x4d, 0x84, 0x70, 0x7a, 0x51, 0x56, 0xbe, 0x92, 0x02, 0xde, 0xe3, 0x44, 0x46, 0x52, 0xe7, 0x9b, 0xae, 0x7f, 0x0d, 0x31, 0xbd, 0x17, 0x56, 0x79, 0x61, 0xf6, 0x5d, 0xd0, 0x1a, 0x8e, 0x4b, 0xee, 0x38, 0x33, 0x19, 0x38, 0xce, 0x4b, 0x2b, 0x55, 0x06, 0x91, 0xb9, 0x9a, 0x4b, 0xc3, 0xc0, 0x72, 0xd1, 0x86, 0xdf, 0x4b, 0x33, 0x44, 0xa5, 0xc8, 0xfb, 0xfb, 0xb9, 0xfd, 0x2f, 0x35, 0x5f, 0x61, 0x07, 0xe4, 0x10, 0xc3, 0xd0, 0xc7, 0x98, 0xb6, 0x8d, 0x3f, 0xb9, 0xc6, 0xf7, 0xab, 0x5f, 0xe2, 0x7e, 0x70, 0x87, 0x1e, 0x86, 0x76, 0x76, 0x98, 0xfe, 0x35, 0xb7, 0x7e, 0xad, 0x4e, 0x43, 0x5a, 0x94, 0x02, 0xcc, 0x9e, 0xd6, 0xa2, 0x65, 0x7b, 0x05, 0x9b, 0xe0, 0xa2, 0x10, 0x03, 0xc0, 0x48, 0xbb, 0xf5, 0xe0, 0xeb, 0xd9, 0x3c, 0xbb, 0x2e, 0x71, 0xe9, 0x23, 0xcf, 0x5c, 0x72, 0x8d, 0x17, 0x58, 0xcd, 0x81, 0x7a, 0xd7, 0x4b, 0x45, 0x4a, 0x88, 0x71, 0x26, 0xd6, 0x53, 0xb9, 0x5a, 0x7f, 0x25, 0xe5, 0x29, 0x3b, 0x76, 0x8c, 0x9f, 0xc5, 0xa9, 0xc3, 0x5a, 0x23, 0x72, 0xe3, 0x74, 0x1b, 0xc9, 0x0f, 0xd6, 0x63, 0x01, 0x42, 0x7b, 0x10, 0x82, 0x4b, 0xb4, 0xb1, 0xe9, 0x11, 0x0b, 0xfb, 0xa8, 0x4c, 0x21, 0xa4, 0x0e, 0xb8, 0xfe, 0xd4, 0x49, 0x7e, 0x91, 0xdc, 0x3f, 0xfd, 0x04, 0x38, 0xc5, 0x14, 0xc0, 0xa8, 0xcb, 0x4c, 0xac, 0x6a, 0xd0, 0x25, 0x6b, 0xf1, 0x1d, 0x5a, 0xa7, 0xa9, 0xc7, 0xc0, 0x0b, 0x66, 0x9b, 0x01, 0x5b, 0x0b, 0xf8, 0x14, 0x25, 0xa2, 0x14, 0x13, 0xe2, 0xff, 0xb6, 0xed, 0xc0, 0xbd, 0x78, 0xe3, 0x85, 0xc4, 0x4f, 0xd7, 0x45, 0x58, 0xe5, 0x11, 0xc2, 0xc2, 0x5f, 0xee, 0x1f, 0xec, 0x18, 0xd3, 0x99, 0x0b, 0x86, 0x90, 0x30, 0x0f, 0xa7, 0x11, 0xe9, 0x3d, 0x98, 0x54, 0x66, 0x8f, 0x01, 0x87, 0x06, 0x5e, 0x76, 0xe7, 0x11, 0x3a, 0xe7, 0x63, 0xc3, 0x0d, 0xdd, 0x86, 0x72, 0x0b, 0x55, 0x46, 0xa6, 0xc3, 0xc6, 0xf1, 0xc4, 0x3b, 0xc6, 0x7b, 0x14, };
8463 static const u8 ed25519_368_test_vectors_expected_sig[] = {
8464 	0x84, 0xd1, 0x8d, 0x56, 0xf9, 0x64, 0xe3, 0x77, 0x67, 0x59, 0xbb, 0xa9, 0x2c, 0x51, 0x0c, 0x2b, 0x6d, 0x57, 0x45, 0x55, 0xc3, 0xcd, 0xda, 0xde, 0x21, 0x2d, 0xa9, 0x03, 0x74, 0x55, 0x49, 0x91, 0xe7, 0xd7, 0x7e, 0x27, 0x8d, 0x63, 0xe3, 0x46, 0x93, 0xe1, 0x95, 0x80, 0x78, 0xcc, 0x36, 0x85, 0xf8, 0xc4, 0x1c, 0x1f, 0x53, 0x42, 0xe3, 0x51, 0x89, 0x96, 0x38, 0xef, 0x61, 0x21, 0x14, 0x01, };
8465 static const ec_test_case ed25519_368_test_case = {
8466 	.name = "EDDSA25519-SHA512/wei25519 368",
8467 	.ec_str_p = &wei25519_str_params,
8468 	.priv_key = ed25519_368_test_vectors_priv_key,
8469 	.priv_key_len = sizeof(ed25519_368_test_vectors_priv_key),
8470 	.nn_random = NULL,
8471 	.hash_type = SHA512,
8472 	.msg = (const char *)ed25519_368_test_vectors_message,
8473 	.msglen = sizeof(ed25519_368_test_vectors_message),
8474 	.sig_type = EDDSA25519,
8475 	.exp_sig = ed25519_368_test_vectors_expected_sig,
8476 	.exp_siglen = sizeof(ed25519_368_test_vectors_expected_sig),
8477 	.adata = NULL,
8478 	.adata_len = 0
8479 };
8480 
8481 /************************************************/
8482 static const u8 ed25519_369_test_vectors_priv_key[] = {
8483 	0x61, 0x32, 0x69, 0x2a, 0x5e, 0xf2, 0x7b, 0xf4, 0x76, 0xb1, 0xe9, 0x91, 0xe6, 0xc4, 0x31, 0xa8, 0xc7, 0x64, 0xf1, 0xae, 0xbd, 0x47, 0x02, 0x82, 0xdb, 0x33, 0x21, 0xbb, 0x7c, 0xb0, 0x9c, 0x20, };
8484 static const u8 ed25519_369_test_vectors_message[] = {
8485 	0xa9, 0xc0, 0x86, 0x16, 0x65, 0xd8, 0xc2, 0xde, 0x06, 0xf9, 0x30, 0x1d, 0xa7, 0x0a, 0xfb, 0x27, 0xb3, 0x02, 0x4b, 0x74, 0x4c, 0x6b, 0x38, 0xb2, 0x42, 0x59, 0x29, 0x4c, 0x97, 0xb1, 0xd1, 0xcb, 0x4f, 0x0d, 0xcf, 0x75, 0x75, 0xa8, 0xed, 0x45, 0x4e, 0x2f, 0x09, 0x80, 0xf5, 0x03, 0x13, 0xa7, 0x73, 0x63, 0x41, 0x51, 0x83, 0xfe, 0x96, 0x77, 0xa9, 0xeb, 0x1e, 0x06, 0xcb, 0x6d, 0x34, 0xa4, 0x67, 0xcb, 0x7b, 0x07, 0x58, 0xd6, 0xf5, 0x5c, 0x56, 0x4b, 0x5b, 0xa1, 0x56, 0x03, 0xe2, 0x02, 0xb1, 0x88, 0x56, 0xd8, 0x9e, 0x72, 0xa2, 0x3a, 0xb0, 0x7d, 0x88, 0x53, 0xff, 0x77, 0xda, 0x7a, 0xff, 0x1c, 0xae, 0xbd, 0x79, 0x59, 0xf2, 0xc7, 0x10, 0xef, 0x31, 0xf5, 0x07, 0x8a, 0x9f, 0x2c, 0xda, 0xe9, 0x26, 0x41, 0xa1, 0xcc, 0x5f, 0x74, 0xd0, 0xc1, 0x43, 0xec, 0x42, 0xaf, 0xba, 0xa5, 0xf3, 0x78, 0xa9, 0xe1, 0x0d, 0x5b, 0xf7, 0x45, 0x87, 0xfa, 0x5f, 0x49, 0xc1, 0x56, 0x23, 0x32, 0x47, 0xda, 0xfd, 0x39, 0x29, 0xac, 0xde, 0x88, 0x8d, 0xc6, 0x84, 0x33, 0x7e, 0x40, 0xcd, 0xc5, 0x93, 0x2e, 0x7e, 0xb7, 0x3f, 0xfc, 0xc9, 0x0b, 0x85, 0xc0, 0xad, 0x46, 0x04, 0x16, 0x69, 0x1a, 0xef, 0xbd, 0x7e, 0xfd, 0x07, 0xb6, 0x57, 0xc3, 0x50, 0x94, 0x6a, 0x0e, 0x36, 0x6b, 0x37, 0xa6, 0xc8, 0x08, 0x9a, 0xba, 0x5c, 0x5f, 0xe3, 0xbb, 0xca, 0x06, 0x4a, 0xfb, 0xe9, 0xd4, 0x7f, 0xbc, 0x83, 0x91, 0x4a, 0xf1, 0xcb, 0x43, 0xc2, 0xb2, 0xef, 0xa9, 0x8e, 0x0a, 0x43, 0xbe, 0x32, 0xba, 0x82, 0x32, 0x02, 0x00, 0x1d, 0xef, 0x36, 0x81, 0x72, 0x51, 0xb6, 0x5f, 0x9b, 0x05, 0x06, 0xce, 0xf6, 0x68, 0x36, 0x42, 0xa4, 0x6e, 0xd6, 0x12, 0xf8, 0xca, 0x81, 0xee, 0x97, 0xbb, 0x04, 0xd3, 0x17, 0xb5, 0x17, 0x34, 0x3a, 0xde, 0x2b, 0x77, 0x12, 0x6d, 0x1f, 0x02, 0xa8, 0x7b, 0x76, 0x04, 0xc8, 0x65, 0x3b, 0x67, 0x48, 0xcf, 0x54, 0x88, 0xfa, 0x6d, 0x43, 0xdf, 0x80, 0x9f, 0xaa, 0x19, 0xe6, 0x92, 0x92, 0xd3, 0x8c, 0x5d, 0x39, 0x7d, 0xd8, 0xe2, 0x0c, 0x7a, 0xf7, 0xc5, 0x33, 0x4e, 0xc9, 0x77, 0xf5, 0x01, 0x0a, 0x0f, 0x7c, 0xb5, 0xb8, 0x94, 0x79, 0xca, 0x06, 0xdb, 0x4d, 0x12, 0x62, 0x7f, 0x06, 0x7d, 0x6c, 0x42, 0x18, 0x6a, 0x6b, 0x1f, 0x87, 0x42, 0xf3, 0x6a, 0xe7, 0x09, 0xba, 0x72, 0x0e, 0x3c, 0xd8, 0x98, 0x11, 0x66, 0x66, 0xd8, 0x1b, 0x19, 0x0b, 0x9b, 0x9d, 0x2a, 0x72, 0x20, 0x2c, 0xb6, 0x90, 0xa0, 0x3f, 0x33, 0x10, 0x42, 0x9a, 0x71, 0xdc, 0x04, 0x8c, 0xde, };
8486 static const u8 ed25519_369_test_vectors_expected_sig[] = {
8487 	0xeb, 0x67, 0x7f, 0x33, 0x47, 0xe1, 0xa1, 0xea, 0x92, 0x9e, 0xfd, 0xf6, 0x2b, 0xf9, 0x10, 0x5a, 0x6c, 0x8f, 0x49, 0x93, 0x03, 0x3b, 0x4f, 0x6d, 0x03, 0xcb, 0x0d, 0xbf, 0x9c, 0x74, 0x2b, 0x27, 0x07, 0x04, 0xe3, 0x83, 0xab, 0x7c, 0x06, 0x76, 0xbd, 0xb1, 0xad, 0x0c, 0xe9, 0xb1, 0x66, 0x73, 0x08, 0x3c, 0x96, 0x02, 0xec, 0x10, 0xae, 0x1d, 0xd9, 0x8e, 0x87, 0x48, 0xb3, 0x36, 0x44, 0x0b, };
8488 static const ec_test_case ed25519_369_test_case = {
8489 	.name = "EDDSA25519-SHA512/wei25519 369",
8490 	.ec_str_p = &wei25519_str_params,
8491 	.priv_key = ed25519_369_test_vectors_priv_key,
8492 	.priv_key_len = sizeof(ed25519_369_test_vectors_priv_key),
8493 	.nn_random = NULL,
8494 	.hash_type = SHA512,
8495 	.msg = (const char *)ed25519_369_test_vectors_message,
8496 	.msglen = sizeof(ed25519_369_test_vectors_message),
8497 	.sig_type = EDDSA25519,
8498 	.exp_sig = ed25519_369_test_vectors_expected_sig,
8499 	.exp_siglen = sizeof(ed25519_369_test_vectors_expected_sig),
8500 	.adata = NULL,
8501 	.adata_len = 0
8502 };
8503 
8504 /************************************************/
8505 static const u8 ed25519_370_test_vectors_priv_key[] = {
8506 	0xf2, 0x19, 0xb2, 0x10, 0x11, 0x64, 0xaa, 0x97, 0x23, 0xbd, 0xe3, 0xa7, 0x34, 0x6f, 0x68, 0xa3, 0x50, 0x61, 0xc0, 0x1f, 0x97, 0x82, 0x07, 0x25, 0x80, 0xba, 0x32, 0xdf, 0x90, 0x3b, 0xa8, 0x91, };
8507 static const u8 ed25519_370_test_vectors_message[] = {
8508 	0x01, 0x55, 0x77, 0xd3, 0xe4, 0xa0, 0xec, 0x1a, 0xb2, 0x59, 0x30, 0x10, 0x63, 0x43, 0xff, 0x35, 0xab, 0x4f, 0x1e, 0x0a, 0x8a, 0x2d, 0x84, 0x4a, 0xad, 0xbb, 0x70, 0xe5, 0xfc, 0x53, 0x48, 0xcc, 0xb6, 0x79, 0xc2, 0x29, 0x5c, 0x51, 0xd7, 0x02, 0xaa, 0xae, 0x7f, 0x62, 0x73, 0xce, 0x70, 0x29, 0x7b, 0x26, 0xcb, 0x7a, 0x25, 0x3a, 0x3d, 0xb9, 0x43, 0x32, 0xe8, 0x6a, 0x15, 0xb4, 0xa6, 0x44, 0x91, 0x23, 0x27, 0x91, 0xf7, 0xa8, 0xb0, 0x82, 0xee, 0x28, 0x34, 0xaf, 0x30, 0x40, 0x0e, 0x80, 0x46, 0x47, 0xa5, 0x32, 0xe9, 0xc4, 0x54, 0xd2, 0xa0, 0xa7, 0x32, 0x01, 0x30, 0xab, 0x6d, 0x4d, 0x86, 0x00, 0x73, 0xa3, 0x46, 0x67, 0xac, 0x25, 0xb7, 0xe5, 0xe2, 0x74, 0x7b, 0xa9, 0xf5, 0xc9, 0x45, 0x94, 0xfb, 0x68, 0x37, 0x7a, 0xe2, 0x60, 0x36, 0x9c, 0x40, 0x71, 0x3b, 0x4e, 0x32, 0xf2, 0x31, 0x95, 0xbf, 0x91, 0xd3, 0xd7, 0xf1, 0xa2, 0x71, 0x9b, 0xf4, 0x08, 0xaa, 0xd8, 0xd8, 0xa3, 0x47, 0xb1, 0x12, 0xe8, 0x4b, 0x11, 0x88, 0x17, 0xcb, 0x06, 0x51, 0x33, 0x44, 0x02, 0x17, 0x63, 0x03, 0x52, 0x72, 0xa7, 0xdb, 0x72, 0x8a, 0x0c, 0xcd, 0xaa, 0x94, 0x9c, 0x61, 0x71, 0x5d, 0x07, 0x64, 0x14, 0x0b, 0x3e, 0x8c, 0x01, 0xd2, 0x0f, 0xf1, 0x59, 0x3c, 0x7f, 0x2d, 0x55, 0xc4, 0xe8, 0x2a, 0x1c, 0x0c, 0xb1, 0xea, 0x58, 0x44, 0x2b, 0xf8, 0x0a, 0x74, 0x1b, 0xca, 0x91, 0xf5, 0x8a, 0xb0, 0x58, 0x1b, 0x49, 0x8e, 0xe9, 0xfe, 0x3c, 0x92, 0xca, 0x65, 0x41, 0x48, 0xef, 0x75, 0x31, 0x35, 0x43, 0xd1, 0xaf, 0xf3, 0x82, 0xbe, 0xfe, 0x1a, 0x93, 0xb0, 0x21, 0x90, 0xce, 0x01, 0x02, 0x17, 0x51, 0x58, 0xe2, 0x07, 0x1d, 0x02, 0xba, 0xca, 0xd8, 0xdb, 0xe9, 0xfb, 0x94, 0x0f, 0xcb, 0x61, 0x0c, 0x10, 0x5a, 0xd5, 0x2c, 0x80, 0xfe, 0xb1, 0xec, 0x4e, 0x52, 0x4f, 0x4c, 0x0e, 0xc7, 0x98, 0x3e, 0x9c, 0xe6, 0x96, 0xfa, 0x4f, 0xcf, 0x4b, 0xf0, 0x51, 0x4b, 0x8f, 0x04, 0x32, 0xb1, 0x7d, 0x54, 0x48, 0xfc, 0x42, 0x6f, 0xea, 0x2b, 0x01, 0xac, 0x7b, 0x26, 0xc2, 0xae, 0xd7, 0x69, 0x92, 0x75, 0x34, 0xda, 0x22, 0x57, 0x6f, 0xc1, 0xbb, 0xa7, 0x26, 0xe9, 0xd6, 0x5b, 0xe0, 0x1b, 0x59, 0xf6, 0x0a, 0x64, 0x8a, 0xce, 0x2f, 0xc3, 0xe5, 0xe2, 0x75, 0x78, 0x9f, 0xa6, 0x37, 0xcb, 0xbd, 0x84, 0xbe, 0x3d, 0x6a, 0xc2, 0x44, 0x57, 0xa6, 0x29, 0x2c, 0xd6, 0x56, 0xc7, 0xb5, 0x69, 0xa5, 0x2f, 0xfe, 0xa7, 0x91, 0x6b, 0x8d, 0x04, 0xb4, 0xf4, 0xa7, 0x5b, 0xe7, 0xac, 0x95, 0x14, 0x2f, };
8509 static const u8 ed25519_370_test_vectors_expected_sig[] = {
8510 	0x17, 0xf0, 0x12, 0x7c, 0xa3, 0xba, 0xfa, 0x5f, 0x4e, 0xe9, 0x59, 0xcd, 0x60, 0xf7, 0x72, 0xbe, 0x87, 0xa0, 0x03, 0x49, 0x61, 0x51, 0x7e, 0x39, 0xa0, 0xa1, 0xd0, 0xf4, 0xb9, 0xe2, 0x6d, 0xb1, 0x33, 0x6e, 0x60, 0xc8, 0x2b, 0x35, 0x2c, 0x4c, 0xba, 0xcd, 0xbb, 0xd1, 0x17, 0x71, 0xc3, 0x77, 0x4f, 0x8c, 0xc5, 0xa1, 0xa7, 0x95, 0xd6, 0xe4, 0xf4, 0xeb, 0xd5, 0x1d, 0xef, 0x36, 0x77, 0x0b, };
8511 static const ec_test_case ed25519_370_test_case = {
8512 	.name = "EDDSA25519-SHA512/wei25519 370",
8513 	.ec_str_p = &wei25519_str_params,
8514 	.priv_key = ed25519_370_test_vectors_priv_key,
8515 	.priv_key_len = sizeof(ed25519_370_test_vectors_priv_key),
8516 	.nn_random = NULL,
8517 	.hash_type = SHA512,
8518 	.msg = (const char *)ed25519_370_test_vectors_message,
8519 	.msglen = sizeof(ed25519_370_test_vectors_message),
8520 	.sig_type = EDDSA25519,
8521 	.exp_sig = ed25519_370_test_vectors_expected_sig,
8522 	.exp_siglen = sizeof(ed25519_370_test_vectors_expected_sig),
8523 	.adata = NULL,
8524 	.adata_len = 0
8525 };
8526 
8527 /************************************************/
8528 static const u8 ed25519_371_test_vectors_priv_key[] = {
8529 	0xfc, 0x18, 0x00, 0x35, 0xae, 0xc0, 0xf5, 0xed, 0xe7, 0xbd, 0xa9, 0x3b, 0xf7, 0x7a, 0xde, 0x7a, 0x81, 0xed, 0x06, 0xde, 0x07, 0xee, 0x2e, 0x3a, 0xa8, 0x57, 0x6b, 0xe8, 0x16, 0x08, 0x61, 0x0a, };
8530 static const u8 ed25519_371_test_vectors_message[] = {
8531 	0xb5, 0xe8, 0xb0, 0x16, 0x25, 0x66, 0x4b, 0x22, 0x23, 0x39, 0xe0, 0xf0, 0x5f, 0x93, 0xa9, 0x90, 0xba, 0x48, 0xb5, 0x6a, 0xe6, 0x54, 0x39, 0xa1, 0x75, 0x20, 0x93, 0x2d, 0xf0, 0x11, 0x72, 0x1e, 0x28, 0x4d, 0xbe, 0x36, 0xf9, 0x86, 0x31, 0xc0, 0x66, 0x51, 0x00, 0x98, 0xa6, 0x8d, 0x7b, 0x69, 0x2a, 0x38, 0x63, 0xe9, 0x9d, 0x58, 0xdb, 0x76, 0xca, 0x56, 0x67, 0xc8, 0x04, 0x3c, 0xb1, 0x0b, 0xd7, 0xab, 0xba, 0xf5, 0x06, 0x52, 0x9f, 0xbb, 0x23, 0xa5, 0x16, 0x6b, 0xe0, 0x38, 0xaf, 0xfd, 0xb9, 0xa2, 0x34, 0xc4, 0xf4, 0xfc, 0xf4, 0x3b, 0xdd, 0xd6, 0xb8, 0xd2, 0xce, 0x77, 0x2d, 0xd6, 0x53, 0xed, 0x11, 0x5c, 0x09, 0x5e, 0x23, 0x2b, 0x26, 0x9d, 0xd4, 0x88, 0x8d, 0x23, 0x68, 0xcb, 0x1c, 0x66, 0xbe, 0x29, 0xdd, 0x38, 0x3f, 0xca, 0x67, 0xf6, 0x67, 0x65, 0xb2, 0x96, 0x56, 0x4e, 0x37, 0x55, 0x5f, 0x0c, 0x0e, 0x48, 0x45, 0x04, 0xc5, 0x91, 0xf0, 0x06, 0xea, 0x85, 0x33, 0xa1, 0x25, 0x83, 0xad, 0x2e, 0x48, 0x31, 0x8f, 0xf6, 0xf3, 0x24, 0xec, 0xaf, 0x80, 0x4b, 0x1b, 0xae, 0x04, 0xaa, 0x89, 0x67, 0x43, 0xe6, 0x7e, 0xf6, 0x1c, 0xa3, 0x83, 0xd5, 0x8e, 0x42, 0xac, 0xfc, 0x64, 0x10, 0xde, 0x30, 0x77, 0x6e, 0x3b, 0xa2, 0x62, 0x37, 0x3b, 0x9e, 0x14, 0x41, 0x94, 0x39, 0x55, 0x10, 0x1a, 0x4e, 0x76, 0x82, 0x31, 0xad, 0x9c, 0x65, 0x29, 0xef, 0xf6, 0x11, 0x8d, 0xde, 0x5d, 0xf0, 0x2f, 0x94, 0xb8, 0xd6, 0xdf, 0x2d, 0x99, 0xf2, 0x78, 0x63, 0xb5, 0x17, 0x24, 0x3a, 0x57, 0x9e, 0x7a, 0xaf, 0xf3, 0x11, 0xea, 0x3a, 0x02, 0x82, 0xe4, 0x7c, 0xa8, 0x76, 0xfa, 0xbc, 0x22, 0x80, 0xfc, 0xe7, 0xad, 0xc9, 0x84, 0xdd, 0x0b, 0x30, 0x88, 0x5b, 0x16, 0x50, 0xf1, 0x47, 0x1d, 0xfc, 0xb0, 0x52, 0x2d, 0x49, 0xfe, 0xc7, 0xd0, 0x42, 0xf3, 0x2a, 0x93, 0xbc, 0x36, 0x8f, 0x07, 0x60, 0x06, 0xea, 0x01, 0xec, 0x1c, 0x74, 0x12, 0xbf, 0x66, 0xf6, 0x2d, 0xc8, 0x8d, 0xe2, 0xc0, 0xb7, 0x47, 0x01, 0xa5, 0x61, 0x4e, 0x85, 0x5e, 0x9f, 0xa7, 0x28, 0xfb, 0x1f, 0x11, 0x71, 0x38, 0x5f, 0x96, 0xaf, 0xbd, 0xe7, 0x0d, 0xea, 0x02, 0xe9, 0xaa, 0x94, 0xdc, 0x21, 0x84, 0x8c, 0x26, 0x30, 0x2b, 0x50, 0xae, 0x91, 0xf9, 0x69, 0x3a, 0x18, 0x64, 0xe4, 0xe0, 0x95, 0xae, 0x03, 0xcd, 0xc2, 0x2a, 0xd2, 0x8a, 0x0e, 0xb7, 0xdb, 0x59, 0x67, 0x79, 0x24, 0x67, 0x12, 0xfa, 0xb5, 0xf5, 0xda, 0x32, 0x7e, 0xfe, 0xc3, 0xe7, 0x96, 0x12, 0xde, 0x0a, 0x6c, 0xca, 0xa5, 0x36, 0x75, 0x9b, 0x8e, };
8532 static const u8 ed25519_371_test_vectors_expected_sig[] = {
8533 	0xa4, 0x3a, 0x71, 0xc3, 0xa1, 0x9c, 0x35, 0x66, 0x0d, 0xae, 0x6f, 0x31, 0xa2, 0x54, 0xb8, 0xc0, 0xea, 0x35, 0x93, 0xfc, 0x8f, 0xca, 0x74, 0xd1, 0x36, 0x40, 0x01, 0x2b, 0x9e, 0x94, 0x73, 0xd4, 0xaf, 0xe0, 0x70, 0xdb, 0x01, 0xe7, 0xfb, 0x39, 0x9b, 0xf4, 0xca, 0x60, 0x70, 0xe0, 0x62, 0x18, 0x00, 0x11, 0x28, 0x5a, 0x67, 0xdd, 0x68, 0x58, 0xb7, 0x61, 0xe4, 0x6c, 0x6b, 0xd3, 0x20, 0x04, };
8534 static const ec_test_case ed25519_371_test_case = {
8535 	.name = "EDDSA25519-SHA512/wei25519 371",
8536 	.ec_str_p = &wei25519_str_params,
8537 	.priv_key = ed25519_371_test_vectors_priv_key,
8538 	.priv_key_len = sizeof(ed25519_371_test_vectors_priv_key),
8539 	.nn_random = NULL,
8540 	.hash_type = SHA512,
8541 	.msg = (const char *)ed25519_371_test_vectors_message,
8542 	.msglen = sizeof(ed25519_371_test_vectors_message),
8543 	.sig_type = EDDSA25519,
8544 	.exp_sig = ed25519_371_test_vectors_expected_sig,
8545 	.exp_siglen = sizeof(ed25519_371_test_vectors_expected_sig),
8546 	.adata = NULL,
8547 	.adata_len = 0
8548 };
8549 
8550 /************************************************/
8551 static const u8 ed25519_372_test_vectors_priv_key[] = {
8552 	0xa2, 0x83, 0x6a, 0x65, 0x42, 0x79, 0x12, 0x12, 0x2d, 0x25, 0xdc, 0xdf, 0xc9, 0x9d, 0x70, 0x46, 0xfe, 0x9b, 0x53, 0xd5, 0xc1, 0xbb, 0x23, 0x61, 0x7f, 0x11, 0x89, 0x0e, 0x94, 0xca, 0x93, 0xed, };
8553 static const u8 ed25519_372_test_vectors_message[] = {
8554 	0x81, 0x3d, 0x60, 0x61, 0xc5, 0x6e, 0xae, 0x0f, 0xf5, 0x30, 0x41, 0xc0, 0x24, 0x4a, 0xa5, 0xe2, 0x9e, 0x13, 0xec, 0x0f, 0x3f, 0xb4, 0x28, 0xd4, 0xbe, 0xb8, 0xa9, 0x9e, 0x04, 0xbc, 0xa8, 0xc4, 0x1b, 0xdd, 0xb0, 0xdb, 0x94, 0x5f, 0x48, 0x7e, 0xfe, 0x38, 0xf2, 0xfc, 0x14, 0xa6, 0x28, 0xfa, 0xfa, 0x24, 0x62, 0xf8, 0x60, 0xe4, 0xe3, 0x42, 0x50, 0xeb, 0x4e, 0x93, 0xf1, 0x39, 0xab, 0x1b, 0x74, 0xa2, 0x61, 0x45, 0x19, 0xe4, 0x1e, 0xe2, 0x40, 0x3b, 0xe4, 0x27, 0x93, 0x0a, 0xb8, 0xbc, 0x82, 0xec, 0x89, 0xce, 0xaf, 0xb6, 0x09, 0x05, 0xbd, 0x4d, 0xdb, 0xbd, 0x13, 0xbd, 0xb1, 0x96, 0x54, 0x31, 0x4f, 0xc9, 0x23, 0x73, 0x14, 0x0b, 0x96, 0x2e, 0x22, 0x58, 0xe0, 0x38, 0xd7, 0x1b, 0x9e, 0xc6, 0x6b, 0x84, 0xef, 0x83, 0x19, 0xe0, 0x35, 0x51, 0xcb, 0x70, 0x7e, 0x74, 0x7f, 0x6c, 0x40, 0xad, 0x47, 0x6f, 0xbe, 0xfd, 0xce, 0x71, 0xf3, 0xa7, 0xb6, 0x7a, 0x1a, 0xf1, 0x86, 0x9b, 0xc6, 0x44, 0x06, 0x86, 0xe7, 0xe0, 0x85, 0x5e, 0x4f, 0x36, 0x9d, 0x1d, 0x88, 0xb8, 0x09, 0x9f, 0xba, 0x54, 0x71, 0x46, 0x78, 0x62, 0x7b, 0xba, 0x1a, 0xff, 0x41, 0xe7, 0x70, 0x7b, 0xc9, 0x7e, 0xdd, 0xf8, 0x90, 0xb0, 0xc0, 0x8d, 0xce, 0x3e, 0x98, 0x00, 0xd2, 0x4c, 0x6f, 0x61, 0x09, 0x2c, 0xe2, 0x8d, 0x48, 0x1b, 0x5d, 0xea, 0x5c, 0x09, 0x6c, 0x55, 0xd7, 0x2f, 0x89, 0x46, 0x00, 0x91, 0x31, 0xfb, 0x96, 0x8e, 0x2b, 0xc8, 0xa0, 0x54, 0xd8, 0x25, 0xad, 0xab, 0x76, 0x74, 0x0d, 0xcf, 0x0d, 0x75, 0x8c, 0x8b, 0xf5, 0x4f, 0xf3, 0x86, 0x59, 0xe7, 0x1b, 0x32, 0xbf, 0xe2, 0xe6, 0x15, 0xaa, 0xab, 0xb0, 0xf5, 0x29, 0x30, 0x85, 0x64, 0x9c, 0xf6, 0x0b, 0x98, 0x47, 0xbc, 0x62, 0x01, 0x1c, 0xe3, 0x87, 0x8a, 0xf6, 0x28, 0x98, 0x4a, 0x58, 0x40, 0xa4, 0xad, 0x5d, 0xae, 0x37, 0x02, 0xdb, 0x36, 0x7d, 0xa0, 0xf8, 0xa1, 0x65, 0xfe, 0xd0, 0x51, 0x7e, 0xb5, 0xc4, 0x42, 0xb0, 0x14, 0x53, 0x30, 0x24, 0x1b, 0x97, 0xee, 0xca, 0x73, 0x3b, 0xa6, 0x68, 0x8b, 0x9c, 0x12, 0x9a, 0x61, 0xcd, 0x12, 0x36, 0xaf, 0xf0, 0xe2, 0x7b, 0xcf, 0x98, 0xc2, 0x8b, 0x0f, 0xbe, 0xea, 0x55, 0xa3, 0xd7, 0xc7, 0x19, 0x3d, 0x64, 0x4b, 0x27, 0x49, 0xf9, 0x86, 0xbd, 0x46, 0xaf, 0x89, 0x38, 0xe8, 0xfa, 0xae, 0xaf, 0xbd, 0x9c, 0xec, 0x36, 0x12, 0xab, 0x00, 0x5b, 0xd7, 0xc3, 0xee, 0xaf, 0xe9, 0xa3, 0x12, 0x79, 0xca, 0x61, 0x02, 0x56, 0x06, 0x66, 0xba, 0x16, 0x13, 0x6f, 0xf1, 0x45, 0x2f, 0x85, 0x0a, 0xdb, };
8555 static const u8 ed25519_372_test_vectors_expected_sig[] = {
8556 	0xe6, 0xa9, 0xa6, 0xb4, 0x36, 0x55, 0x9a, 0x43, 0x20, 0xc4, 0x5c, 0x0c, 0x2c, 0x4a, 0x2a, 0xed, 0xec, 0xb9, 0x0d, 0x41, 0x6d, 0x52, 0xc8, 0x26, 0x80, 0xac, 0x73, 0x30, 0xd0, 0x62, 0xae, 0xbe, 0xf3, 0xe9, 0xac, 0x9f, 0x2c, 0x5f, 0xfa, 0x45, 0x5c, 0x9b, 0xe1, 0x13, 0x01, 0x3a, 0x2b, 0x28, 0x2e, 0x56, 0x00, 0xfd, 0x30, 0x64, 0x35, 0xad, 0xa8, 0x3b, 0x1e, 0x48, 0xba, 0x2a, 0x36, 0x05, };
8557 static const ec_test_case ed25519_372_test_case = {
8558 	.name = "EDDSA25519-SHA512/wei25519 372",
8559 	.ec_str_p = &wei25519_str_params,
8560 	.priv_key = ed25519_372_test_vectors_priv_key,
8561 	.priv_key_len = sizeof(ed25519_372_test_vectors_priv_key),
8562 	.nn_random = NULL,
8563 	.hash_type = SHA512,
8564 	.msg = (const char *)ed25519_372_test_vectors_message,
8565 	.msglen = sizeof(ed25519_372_test_vectors_message),
8566 	.sig_type = EDDSA25519,
8567 	.exp_sig = ed25519_372_test_vectors_expected_sig,
8568 	.exp_siglen = sizeof(ed25519_372_test_vectors_expected_sig),
8569 	.adata = NULL,
8570 	.adata_len = 0
8571 };
8572 
8573 /************************************************/
8574 static const u8 ed25519_373_test_vectors_priv_key[] = {
8575 	0xf0, 0x51, 0xaf, 0x42, 0x6d, 0x0c, 0x32, 0x82, 0xfa, 0xfc, 0x8b, 0xf9, 0x12, 0xad, 0xe1, 0xc2, 0x42, 0x11, 0xa9, 0x5a, 0xd2, 0x00, 0xe1, 0xee, 0xf5, 0x49, 0x32, 0x0e, 0x1c, 0xb1, 0xa2, 0x52, };
8576 static const u8 ed25519_373_test_vectors_message[] = {
8577 	0xb4, 0x8d, 0x9f, 0x84, 0x76, 0x2b, 0x3b, 0xcc, 0x66, 0xe9, 0x6d, 0x76, 0xa6, 0x16, 0xfa, 0x8f, 0xe8, 0xe0, 0x16, 0x95, 0x25, 0x1f, 0x47, 0xcf, 0xc1, 0xb7, 0xb1, 0x7d, 0x60, 0xdc, 0x9f, 0x90, 0xd5, 0x76, 0xef, 0x64, 0xee, 0x7d, 0x38, 0x85, 0x04, 0xe2, 0xc9, 0x07, 0x96, 0x38, 0x16, 0x5a, 0x88, 0x96, 0x96, 0x47, 0x1c, 0x98, 0x9a, 0x87, 0x6f, 0x8f, 0x13, 0xb6, 0x3b, 0x58, 0xd5, 0x31, 0xfe, 0xa4, 0xdd, 0x12, 0x29, 0xfc, 0x63, 0x16, 0x68, 0xa0, 0x47, 0xbf, 0xae, 0x2d, 0xa2, 0x81, 0xfe, 0xae, 0x1b, 0x6d, 0xe3, 0xeb, 0xe2, 0x80, 0xab, 0xe0, 0xa8, 0x2e, 0xe0, 0x0f, 0xbf, 0xdc, 0x22, 0xce, 0x2d, 0x10, 0xe0, 0x6a, 0x04, 0x92, 0xff, 0x14, 0x04, 0xdf, 0xc0, 0x94, 0xc4, 0x0b, 0x20, 0x3b, 0xf5, 0x57, 0x21, 0xdd, 0x78, 0x7e, 0xd4, 0xe9, 0x1d, 0x55, 0x17, 0xaa, 0xf5, 0x8d, 0x3b, 0xdd, 0x35, 0xd4, 0x4a, 0x65, 0xae, 0x6b, 0xa7, 0x56, 0x19, 0xb3, 0x39, 0xb6, 0x50, 0x51, 0x8c, 0xef, 0xcc, 0x17, 0x49, 0x3d, 0xe2, 0x7a, 0x3b, 0x5d, 0x41, 0x78, 0x8f, 0x87, 0xed, 0xbd, 0xe7, 0x26, 0x10, 0xf1, 0x81, 0xbf, 0x06, 0xe2, 0x08, 0xe0, 0xeb, 0x7c, 0xdf, 0xe8, 0x81, 0xd9, 0x1a, 0x2d, 0x6c, 0xc7, 0x7a, 0xa1, 0x9c, 0x0f, 0xcf, 0x33, 0x0f, 0xed, 0xb4, 0x46, 0x75, 0xd8, 0x00, 0xeb, 0x8c, 0xff, 0x95, 0x05, 0xd8, 0x88, 0x75, 0x44, 0xa5, 0x03, 0xcb, 0xe3, 0x73, 0xc4, 0x84, 0x7b, 0x19, 0xe8, 0xf3, 0x99, 0x57, 0x26, 0xef, 0xd6, 0x64, 0x98, 0x58, 0x59, 0x5c, 0x57, 0xcc, 0xaf, 0x0c, 0xbc, 0x9e, 0xb2, 0x5d, 0xe8, 0x3b, 0xa0, 0x46, 0xbc, 0x9f, 0x18, 0x38, 0xac, 0x7b, 0x89, 0x53, 0xdd, 0x81, 0xb8, 0x1a, 0xc0, 0xf6, 0x8d, 0x0e, 0x93, 0x38, 0xcb, 0x55, 0x40, 0x25, 0x52, 0xaf, 0xb6, 0xbc, 0x16, 0x94, 0x93, 0x51, 0xb9, 0x26, 0xd1, 0x51, 0xa8, 0x2e, 0xfc, 0x69, 0x5e, 0x8d, 0x7d, 0xa0, 0xdd, 0x55, 0x09, 0x93, 0x66, 0x78, 0x97, 0x18, 0xcc, 0xbf, 0x36, 0x03, 0x0b, 0xd2, 0xc3, 0xc1, 0x09, 0x39, 0x9b, 0xe2, 0x6c, 0xdb, 0x8b, 0x9e, 0x2a, 0x15, 0x5f, 0x3b, 0x2c, 0xb1, 0xbf, 0xa7, 0x1a, 0xb6, 0x9a, 0x23, 0x62, 0x5a, 0x4a, 0xc1, 0x18, 0xfe, 0x91, 0xcb, 0x2c, 0x19, 0x78, 0x8c, 0xf5, 0x2a, 0x71, 0xd7, 0x30, 0xd5, 0x76, 0xb4, 0x21, 0xd9, 0x69, 0x82, 0xa5, 0x1a, 0x29, 0x91, 0xda, 0xec, 0x44, 0x0c, 0xda, 0x7e, 0x6c, 0xc3, 0x28, 0x2b, 0x83, 0x12, 0x71, 0x42, 0x78, 0xb8, 0x19, 0xbf, 0xe2, 0x38, 0x7e, 0xb9, 0x6a, 0xa9, 0x1d, 0x40, 0x17, 0x30, 0x34, 0xf4, 0x28, };
8578 static const u8 ed25519_373_test_vectors_expected_sig[] = {
8579 	0xb8, 0xf7, 0x13, 0x57, 0x8a, 0x64, 0x46, 0x67, 0x19, 0xac, 0xeb, 0x43, 0x2f, 0xce, 0x30, 0x2a, 0x87, 0xcf, 0x06, 0x6b, 0xf3, 0xe1, 0x02, 0xa3, 0x50, 0x61, 0x69, 0x21, 0xa8, 0x40, 0x96, 0x4b, 0xfc, 0x7e, 0x68, 0x5d, 0x8f, 0xd1, 0x74, 0x55, 0xac, 0x3e, 0xb4, 0x86, 0x1e, 0xdc, 0xb8, 0x97, 0x9d, 0x35, 0xe3, 0xa4, 0xbd, 0x82, 0xa0, 0x78, 0xcd, 0x70, 0x77, 0x21, 0xd7, 0x33, 0x40, 0x0e, };
8580 static const ec_test_case ed25519_373_test_case = {
8581 	.name = "EDDSA25519-SHA512/wei25519 373",
8582 	.ec_str_p = &wei25519_str_params,
8583 	.priv_key = ed25519_373_test_vectors_priv_key,
8584 	.priv_key_len = sizeof(ed25519_373_test_vectors_priv_key),
8585 	.nn_random = NULL,
8586 	.hash_type = SHA512,
8587 	.msg = (const char *)ed25519_373_test_vectors_message,
8588 	.msglen = sizeof(ed25519_373_test_vectors_message),
8589 	.sig_type = EDDSA25519,
8590 	.exp_sig = ed25519_373_test_vectors_expected_sig,
8591 	.exp_siglen = sizeof(ed25519_373_test_vectors_expected_sig),
8592 	.adata = NULL,
8593 	.adata_len = 0
8594 };
8595 
8596 /************************************************/
8597 static const u8 ed25519_374_test_vectors_priv_key[] = {
8598 	0xa1, 0x03, 0xe9, 0x26, 0x72, 0xc6, 0x5f, 0x81, 0xea, 0x5d, 0xa1, 0xff, 0xf1, 0xa4, 0x03, 0x87, 0x88, 0x47, 0x9e, 0x94, 0x1d, 0x50, 0x3a, 0x75, 0x6f, 0x4a, 0x75, 0x52, 0x01, 0xa5, 0x7c, 0x1d, };
8599 static const u8 ed25519_374_test_vectors_message[] = {
8600 	0xb1, 0x98, 0x4e, 0x9e, 0xec, 0x08, 0x5d, 0x52, 0x4c, 0x1e, 0xb3, 0xb9, 0x5c, 0x89, 0xc8, 0x4a, 0xe0, 0x85, 0xbe, 0x5d, 0xc6, 0x5c, 0x32, 0x6e, 0x19, 0x02, 0x5e, 0x12, 0x10, 0xa1, 0xd5, 0x0e, 0xdb, 0xbb, 0xa5, 0xd1, 0x37, 0x0c, 0xf1, 0x5d, 0x68, 0xd6, 0x87, 0xeb, 0x11, 0x32, 0x33, 0xe0, 0xfb, 0xa5, 0x0f, 0x94, 0x33, 0xc7, 0xd3, 0x58, 0x77, 0x39, 0x50, 0xc6, 0x79, 0x31, 0xdb, 0x82, 0x96, 0xbb, 0xcb, 0xec, 0xec, 0x88, 0x8e, 0x87, 0xe7, 0x1a, 0x2f, 0x75, 0x79, 0xfa, 0xd2, 0xfa, 0x16, 0x2b, 0x85, 0xfb, 0x97, 0x47, 0x3c, 0x45, 0x6b, 0x9a, 0x5c, 0xe2, 0x95, 0x66, 0x76, 0x96, 0x9c, 0x7b, 0xf4, 0xc4, 0x56, 0x79, 0x08, 0x5b, 0x62, 0xf2, 0xc2, 0x24, 0xfc, 0x7f, 0x45, 0x87, 0x94, 0x27, 0x3f, 0x6d, 0x12, 0xc5, 0xf3, 0xe0, 0xd0, 0x69, 0x51, 0x82, 0x4d, 0x1c, 0xca, 0x3e, 0x2f, 0x90, 0x45, 0x59, 0xed, 0x28, 0xe2, 0x86, 0x8b, 0x36, 0x6d, 0x79, 0xd9, 0x4d, 0xc9, 0x86, 0x67, 0xb9, 0xb5, 0x92, 0x42, 0x68, 0xf3, 0xe3, 0x9b, 0x12, 0x91, 0xe5, 0xab, 0xe4, 0xa7, 0x58, 0xf7, 0x70, 0x19, 0xda, 0xcb, 0xb2, 0x2b, 0xd8, 0x19, 0x6e, 0x0a, 0x83, 0xa5, 0x67, 0x76, 0x58, 0x83, 0x6e, 0x96, 0xca, 0x56, 0x35, 0x05, 0x5a, 0x1e, 0x63, 0xd6, 0x5d, 0x03, 0x6a, 0x68, 0xd8, 0x7a, 0xc2, 0xfd, 0x28, 0x3f, 0xdd, 0xa3, 0x90, 0x31, 0x99, 0x09, 0xc5, 0xcc, 0x76, 0x80, 0x36, 0x88, 0x48, 0x87, 0x3d, 0x59, 0x7f, 0x29, 0x8e, 0x0c, 0x61, 0x72, 0x30, 0x80, 0x30, 0xff, 0xd4, 0x52, 0xbb, 0x13, 0x63, 0x61, 0x7b, 0x31, 0x6e, 0xd7, 0xcd, 0x94, 0x9a, 0x16, 0x5d, 0xc8, 0xab, 0xb5, 0x3f, 0x99, 0x1a, 0xef, 0x3f, 0x3e, 0x95, 0x02, 0xc5, 0xdf, 0xe4, 0x75, 0x6b, 0x7c, 0x6b, 0xfd, 0xfe, 0x89, 0xf5, 0xe0, 0x0f, 0xeb, 0xdd, 0x6a, 0xfb, 0x04, 0x02, 0x81, 0x8f, 0x11, 0xcf, 0x8d, 0x1d, 0x58, 0x64, 0xfe, 0x9d, 0xa1, 0xb8, 0x6e, 0x39, 0xaa, 0x93, 0x58, 0x31, 0x50, 0x6c, 0xf2, 0x40, 0x0e, 0xa7, 0xed, 0x75, 0xbd, 0x95, 0x33, 0xb2, 0x3e, 0x20, 0x2f, 0xe8, 0x75, 0xd7, 0xd9, 0x63, 0x8c, 0x89, 0xd1, 0x1c, 0xb2, 0xd6, 0xe6, 0x02, 0x1a, 0xe6, 0xbd, 0x27, 0xc7, 0x75, 0x48, 0x10, 0xd3, 0x5c, 0xd3, 0xa6, 0x14, 0x94, 0xf2, 0x7b, 0x16, 0xfc, 0x79, 0x4e, 0x2c, 0xd2, 0xf0, 0xd3, 0x45, 0x3a, 0xda, 0x93, 0x38, 0x65, 0xdb, 0x78, 0xc5, 0x79, 0x57, 0x1f, 0x8f, 0xc5, 0xc5, 0xc6, 0xbe, 0x8e, 0xaf, 0xfc, 0xe6, 0xa8, 0x52, 0xe5, 0xb3, 0xb1, 0xc5, 0x24, 0xc4, 0x93, 0x13, 0xd4, 0x27, 0xab, 0xcb, };
8601 static const u8 ed25519_374_test_vectors_expected_sig[] = {
8602 	0x2a, 0xa2, 0x03, 0x5c, 0x2c, 0xe5, 0xb5, 0xe6, 0xae, 0x16, 0x1e, 0x16, 0x8f, 0x3a, 0xd0, 0xd6, 0x59, 0x2b, 0xcf, 0x2c, 0x4a, 0x04, 0x9d, 0x3e, 0xd3, 0x42, 0xfc, 0xeb, 0x56, 0xbe, 0x9c, 0x7c, 0xb3, 0x72, 0x02, 0x75, 0x73, 0xae, 0x01, 0x78, 0xe8, 0x87, 0x8e, 0xbe, 0xfc, 0xa7, 0xb0, 0x30, 0x32, 0x7b, 0x8a, 0xad, 0x41, 0x85, 0x7d, 0xe5, 0x8c, 0xb7, 0x8e, 0x1a, 0x00, 0xcb, 0xac, 0x05, };
8603 static const ec_test_case ed25519_374_test_case = {
8604 	.name = "EDDSA25519-SHA512/wei25519 374",
8605 	.ec_str_p = &wei25519_str_params,
8606 	.priv_key = ed25519_374_test_vectors_priv_key,
8607 	.priv_key_len = sizeof(ed25519_374_test_vectors_priv_key),
8608 	.nn_random = NULL,
8609 	.hash_type = SHA512,
8610 	.msg = (const char *)ed25519_374_test_vectors_message,
8611 	.msglen = sizeof(ed25519_374_test_vectors_message),
8612 	.sig_type = EDDSA25519,
8613 	.exp_sig = ed25519_374_test_vectors_expected_sig,
8614 	.exp_siglen = sizeof(ed25519_374_test_vectors_expected_sig),
8615 	.adata = NULL,
8616 	.adata_len = 0
8617 };
8618 
8619 /************************************************/
8620 static const u8 ed25519_375_test_vectors_priv_key[] = {
8621 	0xd4, 0x7c, 0x1b, 0x4b, 0x9e, 0x50, 0xcb, 0xb7, 0x1f, 0xd0, 0x7d, 0x09, 0x6d, 0x91, 0xd8, 0x72, 0x13, 0xd4, 0x4b, 0x02, 0x43, 0x73, 0x04, 0x47, 0x61, 0xc4, 0x82, 0x2f, 0x9d, 0x9d, 0xf8, 0x80, };
8622 static const u8 ed25519_375_test_vectors_message[] = {
8623 	0x88, 0xd7, 0x00, 0x9d, 0x51, 0xde, 0x3d, 0x33, 0x7e, 0xef, 0x0f, 0x21, 0x5e, 0xa6, 0x6a, 0xb8, 0x30, 0xec, 0x5a, 0x9e, 0x68, 0x23, 0x76, 0x1c, 0x3b, 0x92, 0xad, 0x93, 0xea, 0x34, 0x1d, 0xb9, 0x2e, 0xce, 0x67, 0xf4, 0xef, 0x4c, 0xeb, 0x84, 0x19, 0x4a, 0xe6, 0x92, 0x6c, 0x3d, 0x01, 0x4b, 0x2d, 0x59, 0x78, 0x1f, 0x02, 0xe0, 0xb3, 0x2f, 0x9a, 0x61, 0x12, 0x22, 0xcb, 0x9a, 0x58, 0x50, 0xc6, 0x95, 0x7c, 0xb8, 0x07, 0x9a, 0xe6, 0x4e, 0x08, 0x32, 0xa1, 0xf0, 0x5e, 0x5d, 0x1a, 0x3c, 0x57, 0x2f, 0x9d, 0x08, 0xf1, 0x43, 0x7f, 0x76, 0xbb, 0x3b, 0x83, 0xb5, 0x29, 0x67, 0xc3, 0xd4, 0x8c, 0x35, 0x76, 0x84, 0x88, 0x91, 0xc9, 0x65, 0x8d, 0x49, 0x59, 0xeb, 0x80, 0x65, 0x6d, 0x26, 0xcd, 0xba, 0x08, 0x10, 0x03, 0x7c, 0x8a, 0x18, 0x31, 0x8f, 0xf1, 0x22, 0xf8, 0xaa, 0x89, 0x85, 0xc7, 0x73, 0xcb, 0x31, 0x7e, 0xfa, 0x2f, 0x55, 0x7f, 0x1c, 0x38, 0x96, 0xbc, 0xb1, 0x62, 0xdf, 0x5d, 0x87, 0x68, 0x1b, 0xb7, 0x87, 0xe7, 0x81, 0x3a, 0xa2, 0xde, 0xa3, 0xb0, 0xc5, 0x64, 0xd6, 0x46, 0xa9, 0x28, 0x61, 0xf4, 0x44, 0xca, 0x14, 0x07, 0xef, 0xba, 0xc3, 0xd1, 0x24, 0x32, 0xcb, 0xb7, 0x0a, 0x1d, 0x0e, 0xaf, 0xfb, 0x11, 0x74, 0x1d, 0x37, 0x18, 0xfe, 0xde, 0xe2, 0xb8, 0x30, 0x36, 0x18, 0x9a, 0x6f, 0xc4, 0x5a, 0x52, 0xf7, 0x4f, 0xa4, 0x87, 0xc1, 0x8f, 0xd2, 0x64, 0xa7, 0x94, 0x5f, 0x6c, 0x9e, 0x44, 0xb0, 0x11, 0xf5, 0xd8, 0x66, 0x13, 0xf1, 0x93, 0x9b, 0x19, 0xf4, 0xf4, 0xfd, 0xf5, 0x32, 0x34, 0x05, 0x7b, 0xe3, 0xf0, 0x05, 0xad, 0x64, 0xee, 0xbf, 0x3c, 0x8f, 0xfb, 0x58, 0xcb, 0x40, 0x95, 0x6c, 0x43, 0x36, 0xdf, 0x01, 0xd4, 0x42, 0x4b, 0x70, 0x6a, 0x0e, 0x56, 0x1d, 0x60, 0x17, 0x08, 0xd1, 0x24, 0x85, 0xe2, 0x1b, 0xcb, 0x6d, 0x79, 0x9d, 0x8d, 0x1d, 0x04, 0x4b, 0x40, 0x00, 0x64, 0xec, 0x09, 0x44, 0x50, 0x14, 0x06, 0xe7, 0x02, 0x53, 0x94, 0x70, 0x06, 0xca, 0xbb, 0xdb, 0x2d, 0xd6, 0xbd, 0x8c, 0xee, 0x44, 0x97, 0x65, 0x3d, 0x91, 0x13, 0xa4, 0x4d, 0x4d, 0xe9, 0xb6, 0x8d, 0x4c, 0x52, 0x6f, 0xca, 0x0b, 0x9b, 0x0c, 0x18, 0xfe, 0x50, 0xfb, 0x91, 0x7f, 0xdd, 0x9a, 0x91, 0x4f, 0xb8, 0x16, 0x10, 0x8a, 0x73, 0xa6, 0xb3, 0xff, 0xf9, 0xe6, 0x54, 0xe6, 0x9c, 0x9c, 0xfe, 0x02, 0xb0, 0x5c, 0x6c, 0x1b, 0x9d, 0x15, 0xc4, 0xe6, 0x5c, 0xf3, 0x10, 0x18, 0xb8, 0x10, 0x0d, 0x78, 0x46, 0x33, 0xee, 0x18, 0x88, 0xee, 0xe3, 0x57, 0x2a, 0xaf, 0xa6, 0xf1, 0x89, 0xea, 0x22, 0xd0, };
8624 static const u8 ed25519_375_test_vectors_expected_sig[] = {
8625 	0x62, 0x7e, 0x7c, 0xa7, 0xe3, 0x4e, 0xd6, 0x33, 0x1d, 0x62, 0xb9, 0x54, 0x1c, 0x1e, 0xa9, 0xa9, 0x29, 0x2b, 0xe7, 0xb0, 0xa6, 0x5d, 0x80, 0x5e, 0x26, 0x6b, 0x51, 0x22, 0x27, 0x2a, 0x82, 0xdb, 0x7d, 0x76, 0x5a, 0xcc, 0x7e, 0x2a, 0x29, 0x0d, 0x68, 0x58, 0x04, 0x92, 0x2f, 0x91, 0xed, 0x04, 0xa3, 0xc3, 0x82, 0xc0, 0x3f, 0xf2, 0x1a, 0x17, 0x68, 0xf5, 0x84, 0x41, 0x3c, 0x4e, 0x5f, 0x00, };
8626 static const ec_test_case ed25519_375_test_case = {
8627 	.name = "EDDSA25519-SHA512/wei25519 375",
8628 	.ec_str_p = &wei25519_str_params,
8629 	.priv_key = ed25519_375_test_vectors_priv_key,
8630 	.priv_key_len = sizeof(ed25519_375_test_vectors_priv_key),
8631 	.nn_random = NULL,
8632 	.hash_type = SHA512,
8633 	.msg = (const char *)ed25519_375_test_vectors_message,
8634 	.msglen = sizeof(ed25519_375_test_vectors_message),
8635 	.sig_type = EDDSA25519,
8636 	.exp_sig = ed25519_375_test_vectors_expected_sig,
8637 	.exp_siglen = sizeof(ed25519_375_test_vectors_expected_sig),
8638 	.adata = NULL,
8639 	.adata_len = 0
8640 };
8641 
8642 /************************************************/
8643 static const u8 ed25519_376_test_vectors_priv_key[] = {
8644 	0xfc, 0x0c, 0x32, 0xc5, 0xeb, 0x6c, 0x71, 0xea, 0x08, 0xdc, 0x2b, 0x30, 0x0c, 0xbc, 0xef, 0x18, 0xfd, 0xde, 0x3e, 0xa2, 0x0f, 0x68, 0xf2, 0x17, 0x33, 0x23, 0x7b, 0x4d, 0xda, 0xab, 0x90, 0x0e, };
8645 static const u8 ed25519_376_test_vectors_message[] = {
8646 	0xa7, 0xb1, 0xe2, 0xdb, 0x6b, 0xdd, 0x96, 0xb3, 0xd5, 0x14, 0x75, 0x60, 0x35, 0x37, 0xa7, 0x6b, 0x42, 0xb0, 0x4d, 0x7e, 0xbd, 0x24, 0xfe, 0x51, 0x5a, 0x88, 0x76, 0x58, 0xe4, 0xa3, 0x52, 0xe2, 0x21, 0x09, 0x33, 0x56, 0x39, 0xa5, 0x9e, 0x25, 0x34, 0x81, 0x1f, 0x47, 0x53, 0xb7, 0x02, 0x09, 0xd0, 0xe4, 0x69, 0x8e, 0x9d, 0x92, 0x60, 0x88, 0x82, 0x6c, 0x14, 0x68, 0x96, 0x81, 0xea, 0x00, 0xfa, 0x3a, 0x2f, 0xca, 0xa0, 0x04, 0x7c, 0xed, 0x3e, 0xf2, 0x87, 0xe6, 0x17, 0x25, 0x02, 0xb2, 0x15, 0xe5, 0x64, 0x97, 0x61, 0x4d, 0x86, 0xb4, 0xcb, 0x26, 0xbc, 0xd7, 0x7a, 0x2e, 0x17, 0x25, 0x09, 0x36, 0x0e, 0xe5, 0x88, 0x93, 0xd0, 0x1c, 0x0d, 0x0f, 0xb4, 0xd4, 0xab, 0xfe, 0x4d, 0xbd, 0x8d, 0x2a, 0x2f, 0x54, 0x19, 0x0f, 0xa2, 0xf7, 0x31, 0xc1, 0xce, 0xac, 0x68, 0x29, 0xc3, 0xdd, 0xc9, 0xbf, 0xb2, 0xff, 0xd7, 0x0c, 0x57, 0xba, 0x0c, 0x2b, 0x22, 0xd2, 0x32, 0x6f, 0xbf, 0xe7, 0x39, 0x0d, 0xb8, 0x80, 0x9f, 0x73, 0x54, 0x7f, 0xf4, 0x7b, 0x86, 0xc3, 0x6f, 0x2b, 0xf7, 0x45, 0x4e, 0x67, 0x8c, 0x4f, 0x1c, 0x0f, 0xa8, 0x70, 0xbd, 0x0e, 0x30, 0xbb, 0xf3, 0x27, 0x8e, 0xc8, 0xd0, 0xc5, 0xe9, 0xb6, 0x4a, 0xff, 0x0a, 0xf6, 0x4b, 0xab, 0xc1, 0x9b, 0x70, 0xf4, 0xcf, 0x9a, 0x41, 0xcb, 0x8f, 0x95, 0xd3, 0xcd, 0xe2, 0x4f, 0x45, 0x6b, 0xa3, 0x57, 0x1c, 0x8f, 0x02, 0x1d, 0x38, 0xe5, 0x91, 0xde, 0xc0, 0x5c, 0xb5, 0xd1, 0xca, 0x7b, 0x48, 0xf9, 0xda, 0x4b, 0xd7, 0x34, 0xb0, 0x69, 0xa9, 0xfd, 0x10, 0x65, 0x00, 0xc1, 0xf4, 0x08, 0xab, 0x7f, 0xe8, 0xe4, 0xa6, 0xe6, 0xf3, 0xed, 0x64, 0xda, 0x0e, 0xd2, 0x4b, 0x01, 0xe3, 0x3d, 0xf8, 0x47, 0x5f, 0x95, 0xfa, 0x9e, 0xd7, 0x1d, 0x04, 0xdd, 0x30, 0xb3, 0xcd, 0x82, 0x37, 0x55, 0xa3, 0x40, 0x1b, 0xf5, 0xaf, 0xae, 0x10, 0xee, 0x7e, 0x18, 0xec, 0x6f, 0xe6, 0x37, 0xc3, 0x79, 0x3f, 0xd4, 0x34, 0xb4, 0x8d, 0x71, 0x45, 0x13, 0x04, 0x47, 0xe0, 0x02, 0x99, 0x10, 0x10, 0x52, 0x55, 0x8b, 0x50, 0x65, 0x54, 0xec, 0x9c, 0x39, 0x9f, 0x62, 0x94, 0x1c, 0x3f, 0x41, 0x4c, 0xbc, 0x35, 0x2c, 0xaa, 0x34, 0x5b, 0x93, 0x0a, 0xde, 0xcf, 0xad, 0xda, 0xc9, 0x1e, 0xe5, 0x3d, 0x14, 0x51, 0xa6, 0x5e, 0x06, 0x20, 0x10, 0x26, 0x32, 0x5d, 0xe0, 0x7c, 0x93, 0x1f, 0x69, 0xbb, 0xa8, 0x68, 0xa7, 0xc8, 0x7e, 0xe2, 0x3c, 0x60, 0x4e, 0xc6, 0x79, 0x43, 0x32, 0x91, 0x7d, 0xfe, 0x2c, 0x5b, 0x69, 0x66, 0x9b, 0x65, 0x97, 0x06, 0x91, 0x7f, 0x71, 0xed, 0xdf, 0x96, };
8647 static const u8 ed25519_376_test_vectors_expected_sig[] = {
8648 	0x68, 0x87, 0xc6, 0xe2, 0xb9, 0x8a, 0x82, 0xaf, 0x5e, 0xe3, 0xdf, 0xa7, 0xca, 0x2c, 0xb2, 0x5d, 0x9c, 0x10, 0x74, 0x56, 0x20, 0xa8, 0x29, 0x56, 0xac, 0xba, 0x85, 0xcb, 0x57, 0xc8, 0xec, 0x24, 0x27, 0x9f, 0xa4, 0x2f, 0x09, 0x23, 0x59, 0xa1, 0xb6, 0xbb, 0xea, 0xfb, 0xa0, 0x50, 0xf1, 0x4b, 0x62, 0x88, 0x20, 0x9e, 0x6e, 0xf7, 0xbc, 0x1e, 0x0a, 0x2b, 0x87, 0x2c, 0x11, 0x38, 0xf3, 0x05, };
8649 static const ec_test_case ed25519_376_test_case = {
8650 	.name = "EDDSA25519-SHA512/wei25519 376",
8651 	.ec_str_p = &wei25519_str_params,
8652 	.priv_key = ed25519_376_test_vectors_priv_key,
8653 	.priv_key_len = sizeof(ed25519_376_test_vectors_priv_key),
8654 	.nn_random = NULL,
8655 	.hash_type = SHA512,
8656 	.msg = (const char *)ed25519_376_test_vectors_message,
8657 	.msglen = sizeof(ed25519_376_test_vectors_message),
8658 	.sig_type = EDDSA25519,
8659 	.exp_sig = ed25519_376_test_vectors_expected_sig,
8660 	.exp_siglen = sizeof(ed25519_376_test_vectors_expected_sig),
8661 	.adata = NULL,
8662 	.adata_len = 0
8663 };
8664 
8665 /************************************************/
8666 static const u8 ed25519_377_test_vectors_priv_key[] = {
8667 	0xa8, 0xd7, 0x3d, 0x63, 0x9a, 0x23, 0xcc, 0x6a, 0x96, 0x7e, 0xf3, 0x1b, 0xca, 0xbb, 0x5d, 0x06, 0x3e, 0x53, 0xe1, 0xea, 0xb8, 0xfc, 0xc7, 0xca, 0xb9, 0xbc, 0x3a, 0x17, 0xfd, 0xe9, 0xc2, 0xf8, };
8668 static const u8 ed25519_377_test_vectors_message[] = {
8669 	0xfd, 0x1f, 0xac, 0x3d, 0x53, 0x31, 0x3b, 0x11, 0xac, 0xd2, 0x9f, 0x5a, 0x83, 0xac, 0x11, 0x89, 0x6d, 0xab, 0x25, 0x30, 0xfa, 0x47, 0x86, 0x5b, 0x22, 0x95, 0xc0, 0xd9, 0x9d, 0xd6, 0x7c, 0x36, 0xed, 0x8e, 0x5f, 0xa5, 0x49, 0x15, 0x0c, 0x79, 0x4c, 0x55, 0x49, 0xef, 0xb5, 0xc1, 0xd6, 0x91, 0x14, 0xd5, 0xd6, 0x07, 0xb2, 0x32, 0x85, 0xb7, 0x21, 0x2a, 0xfa, 0xab, 0x57, 0x84, 0x6a, 0x54, 0xae, 0x67, 0xb9, 0xe8, 0x80, 0xe0, 0x7b, 0x65, 0x86, 0x60, 0x7c, 0xec, 0xf6, 0xd4, 0xee, 0xd5, 0x16, 0xa3, 0xa7, 0x55, 0x11, 0xfe, 0x36, 0x7d, 0x88, 0xeb, 0x87, 0x1e, 0x6d, 0x71, 0xb7, 0xd6, 0xaa, 0x13, 0x67, 0xa0, 0x14, 0x21, 0xb1, 0x08, 0x8f, 0xc2, 0xd7, 0x5e, 0x44, 0x95, 0x4b, 0x73, 0x62, 0x5c, 0x52, 0xda, 0x8a, 0x3a, 0x18, 0x3c, 0x60, 0xbe, 0x9d, 0xa6, 0x05, 0x0f, 0x59, 0xa4, 0x53, 0xca, 0xa5, 0x35, 0x20, 0x59, 0x36, 0x71, 0x72, 0x8d, 0x43, 0x18, 0x77, 0xbf, 0xaa, 0xc9, 0x13, 0xa7, 0x65, 0xfb, 0x6a, 0x56, 0xb7, 0x52, 0x90, 0xb2, 0xa8, 0xaa, 0xac, 0x34, 0xaf, 0xb9, 0x21, 0x7b, 0xa1, 0xb0, 0xd5, 0x85, 0x0b, 0xa0, 0xfd, 0xab, 0xf8, 0x09, 0x69, 0xde, 0xf0, 0xfe, 0xee, 0x79, 0x4c, 0xeb, 0x60, 0x61, 0x4e, 0x33, 0x68, 0xe6, 0x3e, 0xf2, 0x0e, 0x4c, 0x32, 0xd3, 0x41, 0xec, 0x9b, 0x03, 0x28, 0xea, 0x9f, 0xe1, 0x39, 0x20, 0x7e, 0xd7, 0xa6, 0x26, 0xff, 0x08, 0x94, 0x3b, 0x41, 0x52, 0x33, 0xdb, 0x7c, 0xfc, 0xc8, 0x45, 0xc9, 0xb6, 0x31, 0x21, 0xd4, 0xed, 0x52, 0xec, 0x37, 0x48, 0xab, 0x6a, 0x1f, 0x36, 0xb2, 0x10, 0x3c, 0x7d, 0xc7, 0xe9, 0x30, 0x3a, 0xce, 0xa4, 0xba, 0x8a, 0xf7, 0xa3, 0xe0, 0x71, 0x84, 0xfb, 0x49, 0x1e, 0x89, 0x1e, 0xde, 0x84, 0xf0, 0xdc, 0x41, 0xca, 0xdc, 0x39, 0x73, 0x02, 0x8e, 0x87, 0x9a, 0xcd, 0x20, 0x31, 0xaf, 0xc2, 0x9a, 0x16, 0x09, 0x28, 0x68, 0xe2, 0xc7, 0xf5, 0x39, 0xfc, 0x1b, 0x79, 0x2e, 0xda, 0xb1, 0x95, 0xa2, 0x5a, 0xb9, 0x83, 0x06, 0x61, 0x34, 0x6b, 0x39, 0xef, 0x53, 0x91, 0x5d, 0xe4, 0xaf, 0x52, 0xc4, 0x21, 0xea, 0xf1, 0x72, 0xe9, 0xda, 0x76, 0xa0, 0x8c, 0x28, 0x3a, 0x52, 0xdf, 0x90, 0x7f, 0x70, 0x5d, 0x7e, 0x85, 0x99, 0xc5, 0xba, 0xae, 0x0c, 0x2a, 0xf3, 0x80, 0xc1, 0xbb, 0x46, 0xf9, 0x34, 0x84, 0xa0, 0x3f, 0x28, 0x37, 0x43, 0x24, 0xb2, 0x78, 0x99, 0x2b, 0x50, 0xb7, 0xaf, 0xa0, 0x25, 0x52, 0xca, 0xfa, 0x50, 0x3f, 0x03, 0x4f, 0x8d, 0x86, 0x6e, 0x9b, 0x72, 0x02, 0x71, 0xdd, 0x68, 0xcc, 0xb6, 0x85, 0xa8, 0x5f, 0xff, 0xd1, };
8670 static const u8 ed25519_377_test_vectors_expected_sig[] = {
8671 	0xc4, 0xdc, 0xef, 0x1a, 0x24, 0x53, 0x93, 0x9b, 0x36, 0x4b, 0x34, 0x02, 0x50, 0xc3, 0x12, 0x94, 0x31, 0x43, 0x1d, 0x5b, 0xa3, 0xf4, 0x76, 0x70, 0xab, 0x07, 0xce, 0x68, 0x0c, 0x69, 0xbf, 0x28, 0xb6, 0x78, 0x62, 0x7c, 0x76, 0xa6, 0x36, 0x0f, 0xc4, 0x0d, 0xc1, 0x09, 0xaa, 0x7d, 0xea, 0x37, 0x1b, 0x82, 0x5e, 0x46, 0x13, 0x4f, 0x62, 0x45, 0x72, 0x18, 0x2a, 0xcf, 0x39, 0x57, 0xe7, 0x0f, };
8672 static const ec_test_case ed25519_377_test_case = {
8673 	.name = "EDDSA25519-SHA512/wei25519 377",
8674 	.ec_str_p = &wei25519_str_params,
8675 	.priv_key = ed25519_377_test_vectors_priv_key,
8676 	.priv_key_len = sizeof(ed25519_377_test_vectors_priv_key),
8677 	.nn_random = NULL,
8678 	.hash_type = SHA512,
8679 	.msg = (const char *)ed25519_377_test_vectors_message,
8680 	.msglen = sizeof(ed25519_377_test_vectors_message),
8681 	.sig_type = EDDSA25519,
8682 	.exp_sig = ed25519_377_test_vectors_expected_sig,
8683 	.exp_siglen = sizeof(ed25519_377_test_vectors_expected_sig),
8684 	.adata = NULL,
8685 	.adata_len = 0
8686 };
8687 
8688 /************************************************/
8689 static const u8 ed25519_378_test_vectors_priv_key[] = {
8690 	0x79, 0xc7, 0xdc, 0xb7, 0xd5, 0x9a, 0x8d, 0xf6, 0xb2, 0xb2, 0xba, 0x04, 0x13, 0x05, 0x9d, 0x89, 0x68, 0x09, 0x95, 0xc2, 0x0e, 0x91, 0x6d, 0xa0, 0x1b, 0x8f, 0x06, 0x7d, 0xc6, 0x0c, 0xde, 0xb4, };
8691 static const u8 ed25519_378_test_vectors_message[] = {
8692 	0x5f, 0xe2, 0x02, 0xf5, 0xb3, 0x3b, 0x77, 0x88, 0x81, 0x0d, 0x25, 0x08, 0xa1, 0x3b, 0x31, 0x14, 0xd6, 0x9b, 0x85, 0x96, 0xe6, 0xea, 0xcd, 0xa0, 0x5a, 0x04, 0xa2, 0xeb, 0x59, 0x7f, 0xa3, 0x27, 0x9c, 0x20, 0x8b, 0x5a, 0x5b, 0x65, 0xda, 0xac, 0xb6, 0x99, 0xf1, 0x44, 0xe1, 0xd6, 0x60, 0xe7, 0x8e, 0x13, 0x9b, 0x57, 0x83, 0x31, 0xab, 0xec, 0x5c, 0x3c, 0x35, 0x33, 0x44, 0x54, 0xf0, 0x3e, 0x83, 0x2c, 0x8d, 0x6e, 0x29, 0x84, 0xdf, 0x5d, 0x45, 0x0e, 0xcb, 0x5d, 0x33, 0x58, 0x2a, 0x78, 0x80, 0x8a, 0x9c, 0x78, 0xf2, 0x6e, 0xbc, 0xd1, 0x24, 0x4e, 0xf5, 0x2e, 0x3f, 0xa6, 0xdc, 0xa1, 0x15, 0xc1, 0xf0, 0xcb, 0x56, 0xe3, 0x8e, 0xae, 0x0e, 0x5b, 0x39, 0xf5, 0xfd, 0x86, 0x3d, 0xff, 0xd0, 0xb2, 0xfb, 0x5b, 0x95, 0x8f, 0x2d, 0x73, 0x9d, 0xb3, 0x12, 0xfc, 0x66, 0x7a, 0x17, 0xb0, 0x31, 0xc4, 0xc9, 0xf8, 0xc5, 0xa2, 0xad, 0x57, 0x79, 0x84, 0xcc, 0x41, 0x46, 0xc4, 0x37, 0x58, 0x0e, 0xfd, 0x21, 0x52, 0x17, 0x3f, 0xe0, 0xd5, 0x78, 0x2c, 0xc2, 0xae, 0x98, 0x31, 0xa8, 0xd9, 0xa0, 0x41, 0x77, 0x25, 0x60, 0x18, 0xff, 0x76, 0x31, 0xe0, 0xb0, 0xd8, 0xa9, 0x9c, 0xb2, 0x8f, 0x00, 0x8b, 0x32, 0x04, 0x21, 0xe2, 0x7a, 0x74, 0xc3, 0x13, 0x59, 0x18, 0x86, 0x63, 0x45, 0x6d, 0x85, 0xe0, 0x98, 0xc1, 0xeb, 0xd2, 0x81, 0x70, 0x10, 0x97, 0xb6, 0xae, 0x5a, 0x87, 0x1e, 0x5c, 0xcc, 0x02, 0x05, 0x8a, 0x50, 0x14, 0x16, 0xcb, 0x91, 0xc1, 0x2c, 0xef, 0x5b, 0xe6, 0xf1, 0x91, 0x43, 0x70, 0xe5, 0x63, 0xf1, 0xa1, 0xb2, 0xaa, 0x41, 0xf4, 0xb8, 0xee, 0x84, 0xcd, 0x32, 0xa1, 0xd5, 0x09, 0xe5, 0x29, 0x78, 0x7d, 0x14, 0xa4, 0x45, 0x43, 0x8d, 0x80, 0x7e, 0xcd, 0x62, 0x0e, 0x2f, 0xa2, 0x6d, 0xe0, 0xda, 0x64, 0x26, 0x86, 0x47, 0x84, 0xd4, 0xa2, 0x8f, 0x54, 0x10, 0x3e, 0x60, 0x92, 0x83, 0xb9, 0x9e, 0xe9, 0xb2, 0xb6, 0x99, 0xc9, 0x80, 0xbb, 0xb7, 0x88, 0x2c, 0x3e, 0xa6, 0x8d, 0xdc, 0x90, 0x80, 0x2a, 0xc2, 0x32, 0xf2, 0xc8, 0xe8, 0x42, 0x91, 0x98, 0x7b, 0xf3, 0xc5, 0x24, 0x09, 0x21, 0xb5, 0x9c, 0xfa, 0x21, 0x49, 0x69, 0x31, 0x76, 0x73, 0xd0, 0xbe, 0x7f, 0x34, 0xb1, 0xca, 0x0e, 0x15, 0xea, 0x73, 0xc7, 0x17, 0x54, 0x01, 0xce, 0x55, 0x0b, 0xe1, 0x06, 0xb4, 0x9e, 0x62, 0xf8, 0xdb, 0x68, 0x69, 0x5e, 0x74, 0x0e, 0x0f, 0x3a, 0x35, 0x56, 0xa1, 0x9f, 0x3c, 0x8e, 0x6b, 0x91, 0xac, 0x1c, 0xc2, 0x3e, 0x86, 0x3f, 0xcd, 0x0f, 0x0d, 0x9e, 0xb7, 0x04, 0x7a, 0xa6, 0x31, 0xe0, 0xd2, 0xeb, 0x9b, 0xcc, 0x6b, };
8693 static const u8 ed25519_378_test_vectors_expected_sig[] = {
8694 	0x7b, 0x7c, 0xbe, 0x44, 0xc7, 0x71, 0xe4, 0x37, 0x1b, 0xae, 0x13, 0xb0, 0x72, 0x2b, 0xab, 0xcc, 0x10, 0x64, 0x15, 0x57, 0x32, 0x96, 0x2f, 0x40, 0x7c, 0xba, 0x2a, 0xcd, 0x35, 0x38, 0x1d, 0x42, 0x21, 0x0b, 0xec, 0xe8, 0x22, 0xf4, 0x68, 0x11, 0x21, 0xfd, 0x4d, 0xab, 0x74, 0x5a, 0x1f, 0x30, 0x77, 0x92, 0x2f, 0xba, 0x1a, 0x78, 0x04, 0x5b, 0x71, 0x29, 0x02, 0xba, 0xcc, 0xac, 0x66, 0x0e, };
8695 static const ec_test_case ed25519_378_test_case = {
8696 	.name = "EDDSA25519-SHA512/wei25519 378",
8697 	.ec_str_p = &wei25519_str_params,
8698 	.priv_key = ed25519_378_test_vectors_priv_key,
8699 	.priv_key_len = sizeof(ed25519_378_test_vectors_priv_key),
8700 	.nn_random = NULL,
8701 	.hash_type = SHA512,
8702 	.msg = (const char *)ed25519_378_test_vectors_message,
8703 	.msglen = sizeof(ed25519_378_test_vectors_message),
8704 	.sig_type = EDDSA25519,
8705 	.exp_sig = ed25519_378_test_vectors_expected_sig,
8706 	.exp_siglen = sizeof(ed25519_378_test_vectors_expected_sig),
8707 	.adata = NULL,
8708 	.adata_len = 0
8709 };
8710 
8711 /************************************************/
8712 static const u8 ed25519_379_test_vectors_priv_key[] = {
8713 	0xb9, 0xce, 0xd0, 0x41, 0x25, 0x93, 0xfe, 0xfe, 0xd9, 0x5e, 0x94, 0xac, 0x96, 0x5e, 0x5b, 0x23, 0xff, 0x9d, 0x4b, 0x0e, 0x79, 0x7d, 0xb0, 0x2b, 0xf4, 0x97, 0x99, 0x4d, 0x3b, 0x79, 0x3e, 0x60, };
8714 static const u8 ed25519_379_test_vectors_message[] = {
8715 	0x55, 0x5b, 0xb3, 0x9c, 0x18, 0x99, 0xd5, 0x7c, 0xab, 0xe4, 0x28, 0x06, 0x4c, 0x2d, 0x92, 0x5f, 0x5f, 0xc4, 0xcf, 0x70, 0x59, 0xb9, 0x5f, 0xb8, 0x9a, 0x8e, 0x9e, 0x3a, 0x7e, 0x42, 0x6c, 0x6c, 0x92, 0x2d, 0x9e, 0x4d, 0x76, 0x98, 0x4e, 0xa2, 0x38, 0x3c, 0xab, 0xb4, 0xf2, 0xbe, 0xfd, 0x89, 0xc1, 0xf2, 0x0e, 0xaa, 0x8a, 0x00, 0xdb, 0xe7, 0x87, 0xcf, 0xa7, 0x0a, 0xe2, 0xae, 0x6a, 0xa9, 0x03, 0x31, 0xcb, 0xbe, 0x58, 0x0f, 0xa5, 0xa0, 0x21, 0x84, 0xed, 0x05, 0xe6, 0xc8, 0xe8, 0x9d, 0x57, 0x6a, 0xf2, 0x8a, 0xee, 0xaf, 0x7c, 0x4e, 0x25, 0x00, 0xf3, 0x58, 0xa0, 0x09, 0x71, 0xa0, 0xa7, 0x59, 0x20, 0xe8, 0x54, 0x84, 0x9b, 0xf3, 0x32, 0x14, 0x29, 0x75, 0x40, 0x4f, 0x59, 0x8c, 0x32, 0xe9, 0x69, 0x82, 0x04, 0x3d, 0x99, 0x2b, 0xcd, 0x1a, 0x4f, 0xe8, 0x19, 0xbb, 0x56, 0x34, 0xad, 0x03, 0x46, 0x7a, 0xfc, 0x4c, 0xe0, 0x50, 0x73, 0xf8, 0x8b, 0xa1, 0xba, 0x4a, 0xe8, 0x65, 0x3a, 0x04, 0x66, 0x5c, 0xf3, 0xf7, 0x16, 0x90, 0xfe, 0x13, 0x34, 0x38, 0x85, 0xbc, 0x5e, 0xbc, 0x0e, 0x5e, 0x62, 0xd8, 0x82, 0xf4, 0x3b, 0x7c, 0x68, 0x90, 0x0a, 0xc9, 0x43, 0x8b, 0xf4, 0xa8, 0x1c, 0xe9, 0x01, 0x69, 0xec, 0x12, 0x9e, 0xe6, 0x3e, 0x2c, 0x67, 0x5a, 0x1a, 0x5a, 0x67, 0xe2, 0x7c, 0xc7, 0x98, 0xc4, 0x8c, 0xc2, 0x3f, 0x51, 0x07, 0x8f, 0x46, 0x3b, 0x3b, 0x7c, 0xc1, 0x4e, 0x3b, 0xcf, 0xd2, 0xe9, 0xb8, 0x2c, 0x75, 0x24, 0x09, 0x34, 0xcb, 0xdc, 0x50, 0xc4, 0x30, 0x8f, 0x28, 0x2f, 0x19, 0x31, 0x22, 0x99, 0x56, 0x06, 0xf4, 0x01, 0x35, 0x10, 0x0a, 0x29, 0x1c, 0x55, 0xaf, 0xdf, 0x89, 0x34, 0xeb, 0x8b, 0x61, 0xd8, 0x14, 0x21, 0x67, 0x41, 0x24, 0xde, 0xc3, 0xb8, 0x8f, 0x9a, 0x73, 0x11, 0x0a, 0x9e, 0x61, 0x6f, 0x5b, 0x82, 0x6b, 0x9d, 0x34, 0x3f, 0x3a, 0xc0, 0xe9, 0xd7, 0xbd, 0xf4, 0xfd, 0x8b, 0x64, 0x8b, 0x40, 0xf0, 0x09, 0x8b, 0x38, 0x97, 0xa3, 0xa1, 0xcd, 0x65, 0xa6, 0x45, 0x70, 0x05, 0x9b, 0x8b, 0xc5, 0xc6, 0x74, 0x38, 0x83, 0x07, 0x4c, 0x88, 0x62, 0x3c, 0x1f, 0x5a, 0x88, 0xc5, 0x89, 0x69, 0xe2, 0x1c, 0x69, 0x2a, 0xca, 0x23, 0x68, 0x33, 0xd3, 0x47, 0x0b, 0x3e, 0xb0, 0x98, 0x15, 0xe1, 0x13, 0x8e, 0x9d, 0x06, 0x50, 0xc3, 0x90, 0xee, 0xe9, 0x77, 0x42, 0x21, 0x93, 0xb0, 0x09, 0x18, 0xbe, 0x8a, 0x97, 0xcc, 0x61, 0x99, 0xb4, 0x51, 0xb0, 0x5b, 0x57, 0x30, 0xd1, 0xd1, 0x33, 0x58, 0xcf, 0x74, 0x61, 0x06, 0x78, 0xf7, 0xac, 0x7f, 0x78, 0x95, 0xcc, 0x2e, 0xfc, 0x45, 0x6e, 0x03, 0x87, 0x3b, };
8716 static const u8 ed25519_379_test_vectors_expected_sig[] = {
8717 	0xf1, 0xb7, 0x97, 0xde, 0xd8, 0xa6, 0x94, 0x2b, 0x12, 0x62, 0x68, 0x48, 0x34, 0x0f, 0xb7, 0x19, 0xfc, 0xdd, 0xaf, 0xd9, 0x8f, 0x33, 0xe2, 0x99, 0x2d, 0x35, 0x7b, 0xfd, 0xd3, 0x59, 0x33, 0xc7, 0xac, 0x56, 0x1e, 0x5b, 0x2f, 0x93, 0x94, 0x64, 0x33, 0x8c, 0x56, 0x66, 0x85, 0x4c, 0xa8, 0x85, 0xc4, 0xd0, 0x46, 0xeb, 0x2c, 0x54, 0xe4, 0x8a, 0x1b, 0x5e, 0xd2, 0x66, 0xad, 0x34, 0xde, 0x05, };
8718 static const ec_test_case ed25519_379_test_case = {
8719 	.name = "EDDSA25519-SHA512/wei25519 379",
8720 	.ec_str_p = &wei25519_str_params,
8721 	.priv_key = ed25519_379_test_vectors_priv_key,
8722 	.priv_key_len = sizeof(ed25519_379_test_vectors_priv_key),
8723 	.nn_random = NULL,
8724 	.hash_type = SHA512,
8725 	.msg = (const char *)ed25519_379_test_vectors_message,
8726 	.msglen = sizeof(ed25519_379_test_vectors_message),
8727 	.sig_type = EDDSA25519,
8728 	.exp_sig = ed25519_379_test_vectors_expected_sig,
8729 	.exp_siglen = sizeof(ed25519_379_test_vectors_expected_sig),
8730 	.adata = NULL,
8731 	.adata_len = 0
8732 };
8733 
8734 /************************************************/
8735 static const u8 ed25519_380_test_vectors_priv_key[] = {
8736 	0x81, 0xda, 0x16, 0x8f, 0x02, 0xd4, 0x6b, 0xb8, 0x7c, 0xda, 0x84, 0x5d, 0xa4, 0x3f, 0x8a, 0x6c, 0xba, 0x2c, 0x01, 0x68, 0x78, 0xd6, 0xf4, 0x9c, 0x6f, 0x06, 0x1a, 0x60, 0xf1, 0x55, 0xa0, 0x4a, };
8737 static const u8 ed25519_380_test_vectors_message[] = {
8738 	0x6b, 0xc6, 0x72, 0x6a, 0x34, 0xa6, 0x4a, 0xae, 0x76, 0xab, 0x08, 0xc9, 0x2b, 0x17, 0x9e, 0x54, 0xff, 0x5d, 0x2e, 0x65, 0xeb, 0x2c, 0x6c, 0x65, 0x9a, 0xe8, 0x70, 0x3c, 0xc2, 0x45, 0xcb, 0xc2, 0xcf, 0x45, 0xa1, 0x2b, 0x22, 0xc4, 0x68, 0xae, 0x61, 0xfd, 0x9a, 0x66, 0x27, 0xad, 0x06, 0x26, 0xc9, 0xb1, 0xe5, 0xaf, 0x41, 0x2c, 0xb4, 0x83, 0xea, 0xee, 0x1d, 0xb1, 0x1b, 0x29, 0xf0, 0xa5, 0x10, 0xc1, 0x3e, 0x38, 0x02, 0x0e, 0x09, 0xae, 0x0e, 0xee, 0x76, 0x25, 0x37, 0xa3, 0xe9, 0xd1, 0xa0, 0xc7, 0xb0, 0x33, 0xd0, 0x97, 0xfd, 0xc1, 0xf4, 0xf8, 0x26, 0x29, 0xa9, 0xde, 0x9e, 0xf3, 0x8d, 0xa1, 0xcf, 0x96, 0xa9, 0x40, 0x35, 0x7d, 0x5f, 0x2e, 0x0e, 0x7e, 0x8d, 0xbc, 0x29, 0xdb, 0x72, 0x8a, 0x1e, 0x6a, 0xad, 0x87, 0x6e, 0x5e, 0x05, 0x31, 0x13, 0xd0, 0x64, 0x20, 0x27, 0x2b, 0x87, 0xcf, 0x0c, 0x40, 0xdf, 0xe0, 0x3a, 0x54, 0x4d, 0xe9, 0x6c, 0x7a, 0xea, 0x13, 0xba, 0x00, 0x29, 0xb5, 0x7b, 0x48, 0xd9, 0x9d, 0xcc, 0x6a, 0x65, 0x04, 0x92, 0xd7, 0x8c, 0x4c, 0xdd, 0x1b, 0x28, 0xe1, 0xa1, 0x15, 0xa7, 0xe3, 0xe7, 0xa7, 0xcb, 0x21, 0x33, 0x3d, 0x4f, 0xf8, 0x08, 0x58, 0xdf, 0xb6, 0x77, 0x82, 0xc1, 0x63, 0x54, 0xb8, 0x71, 0x65, 0x96, 0x56, 0x0d, 0x7d, 0x8e, 0x38, 0x9e, 0xb1, 0x5a, 0x05, 0x2a, 0x0b, 0xf5, 0xd1, 0x6e, 0xb5, 0x4f, 0xb3, 0xe4, 0x97, 0x3a, 0xd4, 0x98, 0x4e, 0x72, 0xa1, 0x87, 0xf5, 0x34, 0x7d, 0x5b, 0x26, 0x2c, 0x32, 0xb1, 0x64, 0x7e, 0x42, 0xb6, 0xa5, 0x38, 0x37, 0x09, 0x6c, 0xc7, 0x8c, 0x2a, 0x05, 0xce, 0x1c, 0x6e, 0x12, 0x49, 0x3a, 0x03, 0xf1, 0xa6, 0x67, 0x58, 0x4c, 0xb9, 0x7f, 0x4f, 0xcd, 0x57, 0xee, 0x94, 0x4c, 0x65, 0xb7, 0xee, 0xd2, 0x5f, 0x7a, 0xe0, 0xf3, 0xf6, 0xce, 0xde, 0x17, 0x3f, 0xdf, 0xac, 0xf5, 0xaf, 0x1d, 0xb1, 0x43, 0x73, 0x0d, 0x18, 0x09, 0x66, 0x64, 0x91, 0x4b, 0xa4, 0xcf, 0xc6, 0x96, 0x6f, 0x39, 0x20, 0x22, 0x78, 0x1c, 0x66, 0xa9, 0x41, 0x7c, 0xa2, 0x68, 0x0b, 0x51, 0xf6, 0x3e, 0x4f, 0xba, 0x42, 0x4e, 0xcf, 0xdb, 0xc6, 0xa2, 0xf0, 0x17, 0x87, 0xd0, 0xe7, 0x48, 0x4f, 0x8a, 0x8a, 0xb3, 0x90, 0xae, 0xaa, 0x6d, 0x1f, 0x7e, 0xd3, 0x25, 0xd8, 0x2f, 0xea, 0xa1, 0x69, 0x2a, 0x49, 0x84, 0xfa, 0xe4, 0x3d, 0xa8, 0x73, 0x29, 0xb0, 0x45, 0xda, 0x8f, 0x0a, 0x4f, 0x56, 0xb6, 0x95, 0xaa, 0x93, 0x5d, 0xe1, 0x52, 0xce, 0x03, 0x85, 0x15, 0x37, 0x20, 0x97, 0x9a, 0x2b, 0x70, 0x06, 0xd4, 0x05, 0xfc, 0xb0, 0xfb, 0xa0, 0x9e, 0x23, 0xb8, 0x5f, 0xd1, 0x9b, };
8739 static const u8 ed25519_380_test_vectors_expected_sig[] = {
8740 	0x4a, 0xac, 0xa9, 0x47, 0xe3, 0xf2, 0x2c, 0xc8, 0xb8, 0x58, 0x8e, 0xe0, 0x30, 0xac, 0xe8, 0xf6, 0xb5, 0xf5, 0x71, 0x1c, 0x29, 0x74, 0xf2, 0x0c, 0xc1, 0x8c, 0x3b, 0x65, 0x5b, 0x07, 0xa5, 0xbc, 0x13, 0x66, 0xb5, 0x9a, 0x17, 0x08, 0x03, 0x2d, 0x12, 0xca, 0xe0, 0x1a, 0xb7, 0x94, 0xf8, 0xcb, 0xcc, 0x1a, 0x33, 0x08, 0x74, 0xa7, 0x50, 0x35, 0xdb, 0x1d, 0x69, 0x42, 0x2d, 0x2f, 0xc0, 0x0c, };
8741 static const ec_test_case ed25519_380_test_case = {
8742 	.name = "EDDSA25519-SHA512/wei25519 380",
8743 	.ec_str_p = &wei25519_str_params,
8744 	.priv_key = ed25519_380_test_vectors_priv_key,
8745 	.priv_key_len = sizeof(ed25519_380_test_vectors_priv_key),
8746 	.nn_random = NULL,
8747 	.hash_type = SHA512,
8748 	.msg = (const char *)ed25519_380_test_vectors_message,
8749 	.msglen = sizeof(ed25519_380_test_vectors_message),
8750 	.sig_type = EDDSA25519,
8751 	.exp_sig = ed25519_380_test_vectors_expected_sig,
8752 	.exp_siglen = sizeof(ed25519_380_test_vectors_expected_sig),
8753 	.adata = NULL,
8754 	.adata_len = 0
8755 };
8756 
8757 /************************************************/
8758 static const u8 ed25519_381_test_vectors_priv_key[] = {
8759 	0xaf, 0x2e, 0x60, 0xda, 0x0f, 0x29, 0xbb, 0x16, 0x14, 0xfc, 0x3f, 0x19, 0x3c, 0xc3, 0x53, 0x33, 0x19, 0x86, 0xb7, 0x3f, 0x3f, 0x9a, 0x0a, 0xec, 0x94, 0x21, 0xb9, 0x47, 0x3d, 0x6a, 0x4b, 0x6a, };
8760 static const u8 ed25519_381_test_vectors_message[] = {
8761 	0x7d, 0xbb, 0x77, 0xb8, 0x8b, 0xda, 0x94, 0xf3, 0x44, 0x41, 0x6a, 0x06, 0xb0, 0x96, 0x56, 0x6c, 0x6e, 0x8b, 0x39, 0x39, 0x31, 0xa8, 0x24, 0x3a, 0x6c, 0xab, 0x75, 0xc3, 0x61, 0xfd, 0xe7, 0xdc, 0x53, 0x6a, 0xec, 0x40, 0xcd, 0xed, 0x83, 0x29, 0x6a, 0x89, 0xe8, 0xc3, 0xbe, 0xf7, 0xd7, 0x87, 0xcf, 0xc4, 0x94, 0x01, 0xa7, 0xb9, 0x18, 0x3f, 0x13, 0x8d, 0x50, 0x00, 0x61, 0x9f, 0xf0, 0x73, 0xc0, 0x5e, 0x2f, 0x84, 0x1d, 0x60, 0x08, 0x35, 0x8f, 0x10, 0xa2, 0xda, 0x7d, 0xcf, 0xac, 0x3d, 0x4d, 0x70, 0xc2, 0x0d, 0x2e, 0xc3, 0x4c, 0x7b, 0x6d, 0x5c, 0xd1, 0xa7, 0x34, 0xd6, 0xbb, 0xb1, 0x1c, 0x5f, 0xd8, 0xd2, 0xbc, 0xe3, 0x2a, 0xc8, 0x10, 0xef, 0x82, 0xb4, 0x18, 0x8a, 0xa8, 0xea, 0x3c, 0xfc, 0x30, 0x32, 0x23, 0x3d, 0xc0, 0xe2, 0x60, 0x0e, 0x9d, 0xb6, 0xe1, 0x8b, 0xc2, 0x2b, 0x10, 0x04, 0x4a, 0x31, 0xc1, 0x5b, 0xac, 0xea, 0xf5, 0x55, 0x4d, 0xe8, 0x9d, 0x2a, 0x34, 0x66, 0x80, 0x7f, 0x24, 0x44, 0x14, 0xd0, 0x80, 0xff, 0x29, 0x63, 0x95, 0x6c, 0x6e, 0x83, 0xc8, 0xe1, 0x44, 0xed, 0x00, 0x66, 0x08, 0x8b, 0x47, 0x6d, 0xdc, 0xb5, 0x64, 0x40, 0x34, 0x47, 0xd9, 0x15, 0x9f, 0x90, 0x89, 0xab, 0xa2, 0xb4, 0xd5, 0x57, 0x5c, 0x4d, 0x8a, 0xe6, 0x6f, 0xc8, 0x69, 0x0e, 0x73, 0x49, 0xed, 0x40, 0x83, 0x2e, 0x63, 0x69, 0xc0, 0x24, 0x56, 0x3e, 0xc4, 0x93, 0xbf, 0xcc, 0x0f, 0xc9, 0xac, 0x78, 0x7a, 0xc8, 0x41, 0x39, 0x7f, 0xe1, 0x33, 0x16, 0x72, 0x83, 0xd8, 0x0c, 0x42, 0xf0, 0x06, 0xa9, 0x9d, 0x39, 0xe8, 0x29, 0x79, 0xda, 0x3f, 0xa9, 0x33, 0x4b, 0xd9, 0xed, 0xe0, 0xd1, 0x4b, 0x41, 0xb7, 0x46, 0x6b, 0xce, 0xbb, 0xe8, 0x17, 0x1b, 0xc8, 0x04, 0xa6, 0x45, 0xd3, 0x72, 0x32, 0x74, 0xa1, 0xb9, 0x2b, 0xf8, 0x2f, 0xd9, 0x93, 0x35, 0x87, 0x44, 0xde, 0x92, 0x44, 0x19, 0x03, 0xd4, 0x36, 0xfd, 0x47, 0xf2, 0x3d, 0x40, 0x05, 0x2a, 0x38, 0x29, 0x36, 0x7f, 0x20, 0x2f, 0x05, 0x53, 0xb5, 0xe4, 0x9b, 0x76, 0xc5, 0xe0, 0x3f, 0xa6, 0xce, 0x7c, 0x3c, 0xf5, 0xee, 0xb2, 0x1d, 0xe9, 0x67, 0xbe, 0xc4, 0xdd, 0x35, 0x59, 0x25, 0x38, 0x4e, 0xbf, 0x96, 0x69, 0x7e, 0x82, 0x37, 0x62, 0xba, 0xc4, 0xd4, 0x3a, 0x76, 0x7c, 0x24, 0x1a, 0x4c, 0xef, 0x72, 0x4a, 0x97, 0x0d, 0x00, 0xff, 0x3a, 0x8a, 0xb3, 0xb8, 0x3e, 0xed, 0x84, 0x00, 0x75, 0xc7, 0x4e, 0x90, 0xf3, 0x06, 0xe3, 0x30, 0x01, 0x32, 0x60, 0x96, 0x21, 0x61, 0xe9, 0xd0, 0x91, 0x0d, 0xe1, 0x83, 0x62, 0x2c, 0xe9, 0xa6, 0xb8, 0xd5, 0x14, 0x42, 0x80, 0x55, 0x0f, 0xc7, };
8762 static const u8 ed25519_381_test_vectors_expected_sig[] = {
8763 	0x50, 0xf9, 0xf9, 0x41, 0xa8, 0xda, 0x9f, 0x62, 0x40, 0xf7, 0x6d, 0x2f, 0xa3, 0xb0, 0x6d, 0xd6, 0xb2, 0x29, 0x2e, 0xd3, 0x2d, 0x1c, 0x05, 0x21, 0x80, 0x97, 0xd3, 0x4d, 0x8a, 0x19, 0xdf, 0xe5, 0x53, 0xf7, 0x6a, 0xe3, 0xc6, 0xb4, 0xa2, 0xed, 0x20, 0x85, 0x21, 0x28, 0x46, 0x15, 0x40, 0xde, 0xcf, 0x41, 0x8f, 0x52, 0xd3, 0x8e, 0x64, 0x03, 0x7e, 0xec, 0x77, 0x71, 0xbd, 0x1a, 0xfe, 0x00, };
8764 static const ec_test_case ed25519_381_test_case = {
8765 	.name = "EDDSA25519-SHA512/wei25519 381",
8766 	.ec_str_p = &wei25519_str_params,
8767 	.priv_key = ed25519_381_test_vectors_priv_key,
8768 	.priv_key_len = sizeof(ed25519_381_test_vectors_priv_key),
8769 	.nn_random = NULL,
8770 	.hash_type = SHA512,
8771 	.msg = (const char *)ed25519_381_test_vectors_message,
8772 	.msglen = sizeof(ed25519_381_test_vectors_message),
8773 	.sig_type = EDDSA25519,
8774 	.exp_sig = ed25519_381_test_vectors_expected_sig,
8775 	.exp_siglen = sizeof(ed25519_381_test_vectors_expected_sig),
8776 	.adata = NULL,
8777 	.adata_len = 0
8778 };
8779 
8780 /************************************************/
8781 static const u8 ed25519_382_test_vectors_priv_key[] = {
8782 	0x60, 0x5f, 0x90, 0xb5, 0x3d, 0x8e, 0x4a, 0x3b, 0x48, 0xb9, 0x7d, 0x74, 0x54, 0x39, 0xf2, 0xa0, 0x80, 0x7d, 0x83, 0xb8, 0x50, 0x2e, 0x8e, 0x29, 0x79, 0xf0, 0x3e, 0x8d, 0x37, 0x6a, 0xc9, 0xfe, };
8783 static const u8 ed25519_382_test_vectors_message[] = {
8784 	0x3b, 0xcd, 0xca, 0xc2, 0x92, 0xac, 0x95, 0x19, 0x02, 0x4a, 0xae, 0xce, 0xe2, 0xb3, 0xe9, 0x99, 0xff, 0x5d, 0x34, 0x45, 0xe9, 0xf1, 0xeb, 0x60, 0x94, 0x0f, 0x06, 0xb9, 0x12, 0x75, 0xb6, 0xc5, 0xdb, 0x27, 0x22, 0xed, 0x4d, 0x82, 0xfe, 0x89, 0x60, 0x52, 0x26, 0x53, 0x0f, 0x3e, 0x6b, 0x07, 0x37, 0xb3, 0x08, 0xcd, 0xe8, 0x95, 0x61, 0x84, 0x94, 0x4f, 0x38, 0x8a, 0x80, 0x04, 0x2f, 0x6c, 0xba, 0x27, 0x4c, 0x0f, 0x7d, 0x11, 0x92, 0xa0, 0xa9, 0x6b, 0x0d, 0xa6, 0xe2, 0xd6, 0xa6, 0x1b, 0x76, 0x51, 0x8f, 0xbe, 0xe5, 0x55, 0x77, 0x3a, 0x41, 0x45, 0x90, 0xa9, 0x28, 0xb4, 0xcd, 0x54, 0x5f, 0xcc, 0xf5, 0x81, 0x72, 0xf3, 0x58, 0x57, 0x12, 0x0e, 0xb9, 0x6e, 0x75, 0xc5, 0xc8, 0xac, 0x9a, 0xe3, 0xad, 0xd3, 0x67, 0xd5, 0x1d, 0x34, 0xac, 0x40, 0x34, 0x46, 0x36, 0x0e, 0xc1, 0x0f, 0x55, 0x3e, 0xa9, 0xf1, 0x4f, 0xb2, 0xb8, 0xb7, 0x8c, 0xba, 0x18, 0xc3, 0xe5, 0x06, 0xb2, 0xf0, 0x40, 0x97, 0x06, 0x3a, 0x43, 0xb2, 0xd3, 0x64, 0x31, 0xcc, 0xe0, 0x2c, 0xaf, 0x11, 0xc5, 0xa4, 0xdb, 0x8c, 0x82, 0x17, 0x52, 0xe5, 0x29, 0x85, 0xd5, 0xaf, 0x1b, 0xfb, 0xf4, 0xc6, 0x15, 0x72, 0xe3, 0xfa, 0xda, 0xe3, 0xad, 0x42, 0x4a, 0xcd, 0x81, 0x66, 0x2e, 0xa5, 0x83, 0x7a, 0x11, 0x43, 0xb9, 0x66, 0x93, 0x91, 0xd7, 0xb9, 0xcf, 0xe2, 0x30, 0xcf, 0xfb, 0x3a, 0x7b, 0xb0, 0x3f, 0x65, 0x91, 0xc2, 0x5a, 0x4f, 0x01, 0xc0, 0xd2, 0xd4, 0xac, 0xa3, 0xe7, 0x4d, 0xb1, 0x99, 0x7d, 0x37, 0x39, 0xc8, 0x51, 0xf0, 0x32, 0x7d, 0xb9, 0x19, 0xff, 0x6e, 0x77, 0xf6, 0xc8, 0xa2, 0x0f, 0xdd, 0x3e, 0x15, 0x94, 0xe9, 0x2d, 0x01, 0x90, 0x1a, 0xb9, 0xae, 0xf1, 0x94, 0xfc, 0x89, 0x3e, 0x70, 0xd7, 0x8c, 0x8a, 0xe0, 0xf4, 0x80, 0x00, 0x1a, 0x51, 0x5d, 0x4f, 0x99, 0x23, 0xae, 0x62, 0x78, 0xe8, 0x92, 0x72, 0x37, 0xd0, 0x5d, 0xb2, 0x3e, 0x98, 0x4c, 0x92, 0xa6, 0x83, 0x88, 0x2f, 0x57, 0xb1, 0xf1, 0x88, 0x2a, 0x74, 0xa1, 0x93, 0xab, 0x69, 0x12, 0xff, 0x24, 0x1b, 0x9f, 0xfa, 0x66, 0x2a, 0x0d, 0x47, 0xf2, 0x92, 0x05, 0xf0, 0x84, 0xdb, 0xde, 0x84, 0x5b, 0xaa, 0xeb, 0x5d, 0xd3, 0x6a, 0xe6, 0x43, 0x9a, 0x43, 0x76, 0x42, 0xfa, 0x76, 0x3b, 0x57, 0xe8, 0xdb, 0xe8, 0x4e, 0x55, 0x81, 0x3f, 0x01, 0x51, 0xe9, 0x7e, 0x5b, 0x9d, 0xe7, 0x68, 0xb2, 0x34, 0xb8, 0xdb, 0x15, 0xc4, 0x96, 0xd4, 0xbf, 0xcf, 0xa1, 0x38, 0x87, 0x88, 0x97, 0x2b, 0xb5, 0x0c, 0xe0, 0x30, 0xbc, 0x6e, 0x0c, 0xcf, 0x4f, 0xa7, 0xd0, 0x0d, 0x34, 0x37, 0x82, 0xf6, 0xba, 0x8d, 0xe0, };
8785 static const u8 ed25519_382_test_vectors_expected_sig[] = {
8786 	0xdd, 0x02, 0x12, 0xe6, 0x32, 0x88, 0xcb, 0xe1, 0x4a, 0x45, 0x69, 0xb4, 0xd8, 0x91, 0xda, 0x3c, 0x7f, 0x92, 0x72, 0x7c, 0x5e, 0x7f, 0x9a, 0x80, 0x1c, 0xf9, 0xd6, 0x82, 0x70, 0x85, 0xe7, 0x09, 0x5b, 0x66, 0x9d, 0x7d, 0x45, 0xf8, 0x82, 0xca, 0x5f, 0x07, 0x45, 0xdc, 0xcd, 0x24, 0xd8, 0x7a, 0x57, 0x18, 0x13, 0x20, 0x19, 0x1e, 0x5b, 0x7a, 0x47, 0xc3, 0xf7, 0xf2, 0xdc, 0xcb, 0xd7, 0x07, };
8787 static const ec_test_case ed25519_382_test_case = {
8788 	.name = "EDDSA25519-SHA512/wei25519 382",
8789 	.ec_str_p = &wei25519_str_params,
8790 	.priv_key = ed25519_382_test_vectors_priv_key,
8791 	.priv_key_len = sizeof(ed25519_382_test_vectors_priv_key),
8792 	.nn_random = NULL,
8793 	.hash_type = SHA512,
8794 	.msg = (const char *)ed25519_382_test_vectors_message,
8795 	.msglen = sizeof(ed25519_382_test_vectors_message),
8796 	.sig_type = EDDSA25519,
8797 	.exp_sig = ed25519_382_test_vectors_expected_sig,
8798 	.exp_siglen = sizeof(ed25519_382_test_vectors_expected_sig),
8799 	.adata = NULL,
8800 	.adata_len = 0
8801 };
8802 
8803 /************************************************/
8804 static const u8 ed25519_383_test_vectors_priv_key[] = {
8805 	0x9e, 0x2c, 0x3d, 0x18, 0x98, 0x38, 0xf4, 0xdd, 0x52, 0xef, 0x08, 0x32, 0x88, 0x68, 0x74, 0xc5, 0xca, 0x49, 0x39, 0x83, 0xdd, 0xad, 0xc0, 0x7c, 0xbc, 0x57, 0x0a, 0xf2, 0xee, 0x9d, 0x62, 0x09, };
8806 static const u8 ed25519_383_test_vectors_message[] = {
8807 	0x19, 0x48, 0x5f, 0x52, 0x38, 0xba, 0x82, 0xea, 0xdf, 0x5e, 0xff, 0x14, 0xca, 0x75, 0xcd, 0x42, 0xe5, 0xd5, 0x6f, 0xea, 0x69, 0xd5, 0x71, 0x8c, 0xfb, 0x5b, 0x1d, 0x40, 0xd7, 0x60, 0x89, 0x9b, 0x45, 0x0e, 0x66, 0x88, 0x45, 0x58, 0xf3, 0xf2, 0x5b, 0x7c, 0x3d, 0xe9, 0xaf, 0xc4, 0x73, 0x8d, 0x7a, 0xc0, 0x9d, 0xa5, 0xdd, 0x46, 0x89, 0xbb, 0xfa, 0xc0, 0x78, 0x36, 0xf5, 0xe0, 0xbe, 0x43, 0x2b, 0x1d, 0xdc, 0xf1, 0xb1, 0xa0, 0x75, 0xbc, 0x98, 0x15, 0xd0, 0xde, 0xbc, 0x86, 0x5d, 0x90, 0xbd, 0x5a, 0x0c, 0x5f, 0x56, 0x04, 0xd9, 0xb4, 0x6a, 0xce, 0x81, 0x6c, 0x57, 0x69, 0x4e, 0xcc, 0x3d, 0x40, 0xd8, 0xf8, 0x4d, 0xf0, 0xed, 0xe2, 0xbc, 0x4d, 0x57, 0x77, 0x75, 0xa0, 0x27, 0xf7, 0x25, 0xde, 0x08, 0x16, 0xf5, 0x63, 0xfa, 0x88, 0xf8, 0x8e, 0x07, 0x77, 0x20, 0xeb, 0xb6, 0xac, 0x02, 0x57, 0x46, 0x04, 0x81, 0x98, 0x24, 0xdb, 0x74, 0x74, 0xd4, 0xd0, 0xb2, 0x2c, 0xd1, 0xbc, 0x05, 0x76, 0x8e, 0x0f, 0xb8, 0x67, 0xca, 0x1c, 0x1a, 0x7b, 0x90, 0xb3, 0x4a, 0xb7, 0xa4, 0x1a, 0xfc, 0x66, 0x95, 0x72, 0x66, 0xac, 0x0c, 0x91, 0x59, 0x34, 0xaa, 0xf3, 0x1c, 0x0c, 0xf6, 0x92, 0x7a, 0x4f, 0x03, 0xf2, 0x32, 0x85, 0xe6, 0xf2, 0x4a, 0xfd, 0x58, 0x13, 0x84, 0x9b, 0xb0, 0x8c, 0x20, 0x3a, 0xc2, 0xd0, 0x33, 0x6d, 0xcb, 0xf8, 0x0d, 0x77, 0xf6, 0xcf, 0x71, 0x20, 0xed, 0xfb, 0xcd, 0xf1, 0x81, 0xdb, 0x10, 0x7e, 0xc8, 0xe0, 0x0f, 0x32, 0x44, 0x9c, 0x1d, 0x3f, 0x5c, 0x04, 0x9a, 0x92, 0x69, 0x4b, 0x4e, 0xa2, 0xc6, 0xeb, 0xe5, 0xe2, 0xb0, 0xf6, 0x4b, 0x5a, 0xe5, 0x0a, 0xd3, 0x37, 0x4d, 0x24, 0x6b, 0x32, 0x70, 0x05, 0x7e, 0x72, 0x4a, 0x27, 0xcf, 0x26, 0x3b, 0x63, 0x3a, 0xb6, 0x5e, 0xcb, 0x7f, 0x5c, 0x26, 0x6b, 0x80, 0x07, 0x61, 0x8b, 0x10, 0xac, 0x9a, 0xc8, 0x3d, 0xb0, 0xfe, 0xbc, 0x04, 0xfd, 0x86, 0x3d, 0x96, 0x61, 0xab, 0x6e, 0x58, 0x49, 0x47, 0x66, 0xf7, 0x1b, 0x9a, 0x86, 0x7c, 0x5a, 0x7a, 0x45, 0x55, 0xf6, 0x67, 0xc1, 0xaf, 0x2e, 0x54, 0x58, 0x8f, 0x16, 0x2a, 0x41, 0xce, 0x75, 0x64, 0x07, 0xcc, 0x41, 0x61, 0xd6, 0x07, 0xb6, 0xe0, 0x68, 0x29, 0x80, 0x93, 0x4c, 0xaa, 0x1b, 0xef, 0x03, 0x6f, 0x73, 0x30, 0xd9, 0xee, 0xf0, 0x1e, 0xcc, 0x55, 0x35, 0x83, 0xfe, 0xe5, 0x99, 0x4e, 0x53, 0x3a, 0x46, 0xca, 0x91, 0x6f, 0x60, 0xf8, 0xb9, 0x61, 0xae, 0x01, 0xd2, 0x0f, 0x7a, 0xbf, 0x0d, 0xf6, 0x14, 0x1b, 0x60, 0x4d, 0xe7, 0x33, 0xc6, 0x36, 0xb4, 0x20, 0x18, 0xcd, 0x5f, 0x1d, 0x1e, 0xf4, 0xf8, 0x4c, 0xee, 0x40, 0xfc, };
8808 static const u8 ed25519_383_test_vectors_expected_sig[] = {
8809 	0x38, 0xa3, 0x1b, 0x6b, 0x46, 0x50, 0x84, 0x73, 0x82, 0x62, 0xa2, 0x6c, 0x06, 0x5f, 0xe5, 0xd9, 0xe2, 0x88, 0x6b, 0xf9, 0xdd, 0x35, 0xcd, 0xe0, 0x5d, 0xf9, 0xba, 0xd0, 0xcc, 0x7d, 0xb4, 0x01, 0xc7, 0x50, 0xaa, 0x19, 0xe6, 0x60, 0x90, 0xbc, 0xe2, 0x5a, 0x3c, 0x72, 0x12, 0x01, 0xe6, 0x05, 0x02, 0xc8, 0xc1, 0x04, 0x54, 0x34, 0x66, 0x48, 0xaf, 0x06, 0x5e, 0xab, 0x0e, 0xe7, 0xd8, 0x0f, };
8810 static const ec_test_case ed25519_383_test_case = {
8811 	.name = "EDDSA25519-SHA512/wei25519 383",
8812 	.ec_str_p = &wei25519_str_params,
8813 	.priv_key = ed25519_383_test_vectors_priv_key,
8814 	.priv_key_len = sizeof(ed25519_383_test_vectors_priv_key),
8815 	.nn_random = NULL,
8816 	.hash_type = SHA512,
8817 	.msg = (const char *)ed25519_383_test_vectors_message,
8818 	.msglen = sizeof(ed25519_383_test_vectors_message),
8819 	.sig_type = EDDSA25519,
8820 	.exp_sig = ed25519_383_test_vectors_expected_sig,
8821 	.exp_siglen = sizeof(ed25519_383_test_vectors_expected_sig),
8822 	.adata = NULL,
8823 	.adata_len = 0
8824 };
8825 
8826 /************************************************/
8827 static const u8 ed25519_384_test_vectors_priv_key[] = {
8828 	0x31, 0x01, 0x0d, 0x1d, 0x67, 0xeb, 0x61, 0x63, 0x48, 0xe8, 0x47, 0x92, 0xb9, 0x2d, 0x5d, 0xc1, 0x28, 0x55, 0x3c, 0xb5, 0x2f, 0x63, 0x68, 0x15, 0x9f, 0xe7, 0xb8, 0x16, 0xcd, 0x0e, 0x7c, 0x37, };
8829 static const u8 ed25519_384_test_vectors_message[] = {
8830 	0x39, 0xf8, 0x9a, 0x5e, 0x7a, 0xa5, 0x30, 0xb5, 0x46, 0x3d, 0x49, 0x8f, 0x80, 0x35, 0xb9, 0x90, 0x9d, 0x55, 0xda, 0x52, 0x7c, 0xdb, 0xd4, 0xde, 0x6d, 0x22, 0x83, 0x79, 0xf0, 0x89, 0xe6, 0x08, 0xa9, 0x20, 0x7a, 0x2c, 0x5b, 0x9c, 0x42, 0x05, 0x1a, 0x60, 0xc8, 0xca, 0x3f, 0xb9, 0x7a, 0x1c, 0x06, 0xcd, 0x74, 0x7d, 0x9d, 0x07, 0x39, 0x97, 0x0c, 0xeb, 0x88, 0xce, 0x52, 0x6f, 0x97, 0x11, 0x40, 0xea, 0x2e, 0xc2, 0x1f, 0x09, 0x0b, 0xa0, 0x75, 0xbf, 0x89, 0x75, 0xfa, 0xa5, 0x08, 0xb1, 0xcc, 0x10, 0xef, 0xa4, 0x94, 0xdc, 0x17, 0x2e, 0x6d, 0x3d, 0x3f, 0x3f, 0x75, 0xdc, 0x8e, 0x0e, 0x96, 0xf0, 0x5c, 0x0c, 0xcc, 0xb2, 0xf9, 0x6e, 0x91, 0x1c, 0xfa, 0x7a, 0x2c, 0x82, 0xc9, 0x84, 0x50, 0x18, 0xbb, 0x1f, 0x9d, 0x75, 0xf8, 0x2e, 0x3d, 0xfe, 0x11, 0x39, 0x34, 0x7b, 0x2a, 0xc0, 0x58, 0xb0, 0x14, 0xac, 0x93, 0x76, 0x0c, 0x90, 0xf5, 0x56, 0x7a, 0xb5, 0xc4, 0xeb, 0xa0, 0x4b, 0x49, 0xfb, 0x09, 0xdd, 0xad, 0xd3, 0x05, 0xbe, 0x51, 0x1d, 0xfe, 0x05, 0xc9, 0x6e, 0xbc, 0x86, 0xfd, 0x67, 0xb5, 0xd0, 0xab, 0x57, 0xd8, 0x5f, 0x4f, 0xe5, 0xe2, 0xf0, 0xfa, 0x9d, 0x88, 0xa6, 0x8f, 0x0f, 0x6b, 0x6b, 0xc8, 0xbb, 0x94, 0x4e, 0xb3, 0xc0, 0xb1, 0x75, 0x57, 0xe5, 0x5d, 0x5e, 0xa1, 0x87, 0xd9, 0x22, 0xa4, 0x28, 0x13, 0xe6, 0x90, 0x57, 0xc9, 0xb6, 0xa7, 0xf7, 0x5e, 0x49, 0x92, 0x1b, 0x70, 0x79, 0xe5, 0x8f, 0x8a, 0x63, 0x71, 0x9e, 0xe3, 0xe1, 0xad, 0x10, 0xcf, 0x0e, 0x8a, 0x70, 0xc4, 0xf1, 0x54, 0x02, 0x18, 0xb7, 0x04, 0x94, 0xbd, 0x02, 0x9e, 0xe0, 0x2f, 0xf9, 0x72, 0x7a, 0x7d, 0x85, 0xd3, 0x77, 0x91, 0x9e, 0xc4, 0x05, 0x14, 0x79, 0xb7, 0x0f, 0x7c, 0xd6, 0x76, 0x77, 0x23, 0xfe, 0x42, 0xc1, 0xc7, 0x89, 0x9c, 0x2b, 0x7c, 0x1f, 0x70, 0x2d, 0xd6, 0xb4, 0xd1, 0x3b, 0x67, 0x2d, 0x48, 0x8f, 0x34, 0xa0, 0xe9, 0x69, 0xdb, 0x79, 0xcc, 0x2c, 0xb2, 0x52, 0x4a, 0x94, 0x8a, 0x8d, 0xe4, 0xc5, 0xb6, 0x23, 0xec, 0xd9, 0x0d, 0x6e, 0x82, 0xd9, 0x70, 0x33, 0xc1, 0x25, 0x63, 0x7d, 0x1c, 0xd8, 0xc8, 0x48, 0x03, 0xd8, 0xfb, 0xc0, 0x12, 0x84, 0x6f, 0xfe, 0x48, 0x4f, 0x6c, 0x02, 0x14, 0x92, 0x58, 0xf9, 0x46, 0x2f, 0xa1, 0xe9, 0x9c, 0x30, 0x7d, 0xd0, 0x06, 0x2f, 0xe0, 0xb6, 0xf1, 0x1e, 0xee, 0x40, 0xc2, 0x62, 0x9e, 0xf7, 0xc0, 0xf6, 0xa5, 0x10, 0x72, 0x59, 0xea, 0x5b, 0x9f, 0xfb, 0x6f, 0x29, 0xf1, 0x2c, 0x32, 0xf7, 0xb5, 0x22, 0x8c, 0xab, 0xc9, 0x86, 0xab, 0x66, 0x45, 0x0a, 0xf9, 0xdc, 0xc3, 0xda, 0x09, 0xd0, 0xe0, 0xb9, 0xa4, };
8831 static const u8 ed25519_384_test_vectors_expected_sig[] = {
8832 	0x7b, 0x1e, 0xb6, 0x77, 0xc3, 0xe5, 0xe6, 0xa8, 0xb4, 0xba, 0x69, 0xfc, 0xb7, 0xf6, 0xb1, 0x87, 0x0e, 0x42, 0xa8, 0xd5, 0x89, 0x58, 0xa3, 0x5c, 0x67, 0x4e, 0x2d, 0xb8, 0x21, 0x07, 0x48, 0x1c, 0x4c, 0x7b, 0x37, 0xf0, 0xf6, 0x89, 0xd3, 0x9d, 0x9f, 0x51, 0xe1, 0x81, 0xb1, 0x7b, 0x11, 0x08, 0xc1, 0x5a, 0x3e, 0x27, 0xb2, 0x9d, 0xf3, 0xa4, 0x31, 0x5d, 0xcc, 0x4f, 0xaf, 0x12, 0x22, 0x05, };
8833 static const ec_test_case ed25519_384_test_case = {
8834 	.name = "EDDSA25519-SHA512/wei25519 384",
8835 	.ec_str_p = &wei25519_str_params,
8836 	.priv_key = ed25519_384_test_vectors_priv_key,
8837 	.priv_key_len = sizeof(ed25519_384_test_vectors_priv_key),
8838 	.nn_random = NULL,
8839 	.hash_type = SHA512,
8840 	.msg = (const char *)ed25519_384_test_vectors_message,
8841 	.msglen = sizeof(ed25519_384_test_vectors_message),
8842 	.sig_type = EDDSA25519,
8843 	.exp_sig = ed25519_384_test_vectors_expected_sig,
8844 	.exp_siglen = sizeof(ed25519_384_test_vectors_expected_sig),
8845 	.adata = NULL,
8846 	.adata_len = 0
8847 };
8848 
8849 /************************************************/
8850 static const u8 ed25519_385_test_vectors_priv_key[] = {
8851 	0x8f, 0xf2, 0x39, 0x8c, 0xd5, 0x1f, 0x51, 0xd4, 0xc2, 0xc5, 0x78, 0x69, 0xa2, 0x21, 0x8b, 0x84, 0x86, 0x82, 0x20, 0x31, 0xf4, 0x00, 0x72, 0x9f, 0x4a, 0xc4, 0xd5, 0x90, 0x9c, 0x48, 0xba, 0xfe, };
8852 static const u8 ed25519_385_test_vectors_message[] = {
8853 	0x99, 0x39, 0x53, 0xe4, 0x7a, 0x34, 0x11, 0x88, 0xbc, 0x59, 0x29, 0x42, 0xe1, 0x55, 0x7a, 0xf2, 0x95, 0x46, 0xe4, 0xe9, 0x36, 0x8e, 0x2f, 0x1a, 0x5e, 0xe9, 0x80, 0x6e, 0x2b, 0xaf, 0x66, 0xb6, 0x19, 0x01, 0x91, 0xfc, 0x5d, 0x2b, 0x7e, 0x47, 0xde, 0x37, 0xff, 0x05, 0x4f, 0xb2, 0xbb, 0xb1, 0xf0, 0x31, 0x68, 0x4a, 0xda, 0x5d, 0x60, 0x7a, 0xdd, 0xa3, 0xd6, 0x54, 0x33, 0x12, 0x2f, 0xa9, 0x04, 0xe0, 0x45, 0x6f, 0xaa, 0x84, 0x10, 0x9b, 0xbc, 0x51, 0x7f, 0x8a, 0xd3, 0x96, 0x60, 0x87, 0x63, 0x82, 0xad, 0xcf, 0xed, 0x0f, 0x76, 0x20, 0xcf, 0x11, 0x64, 0x62, 0x2e, 0xac, 0xd9, 0x1e, 0xb3, 0x7a, 0x85, 0x96, 0x46, 0x2e, 0xbe, 0x9e, 0xbe, 0x26, 0xbd, 0xc1, 0xe3, 0x2c, 0xc3, 0x4a, 0xd4, 0x6f, 0xb1, 0xce, 0xa4, 0x20, 0xe7, 0x3c, 0x31, 0x21, 0x54, 0x08, 0xe6, 0xd3, 0x54, 0x25, 0xf4, 0x4a, 0x82, 0x9b, 0x13, 0x2f, 0x63, 0x1a, 0x3f, 0x6d, 0xd4, 0xb8, 0x73, 0xa0, 0x00, 0x66, 0x7e, 0x19, 0xeb, 0x22, 0xff, 0xfd, 0x59, 0x03, 0xaa, 0xa7, 0xd4, 0xc8, 0xfd, 0xf2, 0x19, 0x53, 0xc3, 0xc6, 0x17, 0x8f, 0x5f, 0x8c, 0xb2, 0xaa, 0x6b, 0xff, 0x92, 0x89, 0x4e, 0xad, 0x83, 0x58, 0x88, 0xdf, 0x06, 0x0a, 0x3c, 0x90, 0x43, 0x02, 0x6e, 0x0e, 0x2c, 0xef, 0x27, 0x54, 0x97, 0xe7, 0xd1, 0x05, 0xdf, 0x3b, 0x64, 0x4a, 0x98, 0xf2, 0x6b, 0xf0, 0x01, 0x05, 0xc9, 0x94, 0x13, 0xee, 0x0a, 0xf8, 0x85, 0x19, 0x54, 0xd6, 0x5c, 0xeb, 0x8d, 0x79, 0xad, 0x30, 0x71, 0xb8, 0xbb, 0x87, 0xf0, 0xb1, 0x97, 0x43, 0xd2, 0x55, 0x6f, 0xfd, 0x98, 0x19, 0x83, 0x0b, 0x6e, 0xeb, 0xf7, 0xec, 0xc7, 0xe0, 0x45, 0x66, 0x1f, 0x43, 0x57, 0x0c, 0xe9, 0xfd, 0xbb, 0xe2, 0xd2, 0x52, 0x40, 0x6f, 0xa9, 0x0d, 0x04, 0x23, 0x6f, 0x22, 0x2c, 0x42, 0x9e, 0xc1, 0x6b, 0x12, 0x87, 0x22, 0x4a, 0xda, 0x1a, 0x53, 0x21, 0x61, 0xae, 0x8b, 0x48, 0x1b, 0xca, 0xb8, 0xd4, 0x7a, 0xfb, 0x3e, 0xd0, 0x44, 0x5b, 0x30, 0x60, 0xfd, 0x67, 0x59, 0x17, 0x98, 0x56, 0xf4, 0x08, 0x5c, 0x1e, 0x58, 0x5f, 0xd7, 0xc1, 0x40, 0x97, 0x99, 0xaf, 0x69, 0x3c, 0xf4, 0x27, 0xbd, 0x1d, 0x3d, 0xc1, 0x0b, 0x5a, 0xe3, 0x44, 0x7a, 0x8d, 0x2a, 0x18, 0xdc, 0x3a, 0x12, 0xa6, 0x86, 0x0b, 0x22, 0x17, 0x5d, 0xd5, 0xeb, 0x53, 0xa0, 0x95, 0x04, 0x32, 0xe2, 0xd7, 0xae, 0xfe, 0xce, 0x8a, 0xf0, 0xad, 0xe3, 0xd8, 0x56, 0x77, 0x43, 0xde, 0x43, 0x69, 0x0f, 0x2d, 0x25, 0x37, 0x23, 0xc5, 0xd7, 0xe4, 0x8b, 0xd3, 0x0d, 0x29, 0x37, 0x59, 0x37, 0x01, 0xce, 0xcd, 0xe9, 0x15, 0x4b, 0x76, 0x65, 0xcb, 0x61, 0x1d, 0x7d, };
8854 static const u8 ed25519_385_test_vectors_expected_sig[] = {
8855 	0x41, 0x7a, 0x64, 0x78, 0x29, 0xc9, 0x28, 0x98, 0xe5, 0x20, 0xff, 0x53, 0x11, 0xda, 0xa0, 0xa1, 0x39, 0xcd, 0x8f, 0xff, 0xcb, 0x25, 0xa1, 0x8e, 0x6d, 0x9b, 0x50, 0xcb, 0x52, 0xcb, 0xc3, 0x54, 0x24, 0xc3, 0x9e, 0xbb, 0xb5, 0xd5, 0xac, 0x6a, 0x6d, 0x63, 0xf1, 0xf5, 0x3c, 0x4d, 0xf2, 0x12, 0xf7, 0x02, 0x5a, 0x8a, 0xae, 0xf8, 0xe3, 0x64, 0x93, 0xc8, 0x74, 0xc3, 0xce, 0x34, 0x1a, 0x0e, };
8856 static const ec_test_case ed25519_385_test_case = {
8857 	.name = "EDDSA25519-SHA512/wei25519 385",
8858 	.ec_str_p = &wei25519_str_params,
8859 	.priv_key = ed25519_385_test_vectors_priv_key,
8860 	.priv_key_len = sizeof(ed25519_385_test_vectors_priv_key),
8861 	.nn_random = NULL,
8862 	.hash_type = SHA512,
8863 	.msg = (const char *)ed25519_385_test_vectors_message,
8864 	.msglen = sizeof(ed25519_385_test_vectors_message),
8865 	.sig_type = EDDSA25519,
8866 	.exp_sig = ed25519_385_test_vectors_expected_sig,
8867 	.exp_siglen = sizeof(ed25519_385_test_vectors_expected_sig),
8868 	.adata = NULL,
8869 	.adata_len = 0
8870 };
8871 
8872 /************************************************/
8873 static const u8 ed25519_386_test_vectors_priv_key[] = {
8874 	0xef, 0x81, 0x6c, 0x8f, 0x5e, 0xc3, 0x4e, 0xf4, 0x1f, 0x68, 0x83, 0x1d, 0x90, 0xcd, 0x29, 0xe5, 0x2d, 0xe8, 0x97, 0x37, 0x82, 0xd0, 0x03, 0xee, 0x4e, 0xda, 0xda, 0x2a, 0xda, 0x26, 0x91, 0xd6, };
8875 static const u8 ed25519_386_test_vectors_message[] = {
8876 	0x95, 0x93, 0xc3, 0x5c, 0xde, 0xc5, 0x35, 0xbe, 0xbb, 0x69, 0x65, 0xda, 0x68, 0xea, 0xb0, 0xb6, 0x46, 0xbf, 0xfc, 0xfb, 0xd0, 0x48, 0x83, 0xbc, 0x4c, 0xef, 0x90, 0xd5, 0xd0, 0x1f, 0x01, 0x8c, 0x63, 0xc9, 0xb0, 0xdd, 0xfb, 0x3c, 0xef, 0x5e, 0x78, 0x62, 0x84, 0xd5, 0x21, 0x8c, 0xaa, 0xaf, 0x06, 0x0e, 0x92, 0x88, 0x95, 0x2f, 0x16, 0x30, 0x1e, 0xd8, 0xa4, 0xc1, 0xbc, 0xee, 0x25, 0x63, 0x56, 0xa0, 0xc8, 0xbd, 0xa3, 0x59, 0xfb, 0xaa, 0x27, 0x82, 0xb1, 0x0c, 0x86, 0xd1, 0x8e, 0x20, 0xf7, 0xa0, 0xec, 0x99, 0xb2, 0x7a, 0x0b, 0x4d, 0xbe, 0xfc, 0x0a, 0x26, 0x2a, 0x3b, 0xf6, 0x8f, 0xe8, 0x14, 0x44, 0xdc, 0xae, 0x5f, 0x69, 0x3e, 0xb0, 0xf1, 0x6e, 0x6e, 0xe0, 0x3f, 0x8f, 0xcb, 0xf3, 0xa3, 0x39, 0x81, 0x46, 0xd2, 0x0e, 0xc4, 0xd2, 0x65, 0x77, 0x61, 0xfd, 0x03, 0x20, 0xfe, 0xe7, 0xea, 0x70, 0x3c, 0x49, 0xa6, 0xa5, 0x43, 0xbc, 0x9b, 0xba, 0x91, 0x1e, 0x79, 0x25, 0x03, 0x87, 0x10, 0xe8, 0xc3, 0x65, 0x52, 0xd4, 0x76, 0xd6, 0x02, 0x7f, 0x58, 0xb2, 0xc5, 0x2b, 0xa5, 0x1a, 0xd6, 0x5e, 0xa4, 0xf0, 0x39, 0xc7, 0x8f, 0x96, 0xb8, 0x89, 0x10, 0x2b, 0xb4, 0xbd, 0xd6, 0x9b, 0x68, 0xe9, 0xc3, 0xd4, 0x5b, 0x51, 0x76, 0xa2, 0xd8, 0x2b, 0x0b, 0x95, 0xdc, 0x32, 0x10, 0x16, 0x37, 0x0d, 0xae, 0x30, 0xc3, 0x93, 0x65, 0x15, 0xdb, 0x04, 0x64, 0xc4, 0x17, 0x74, 0x30, 0x1c, 0x74, 0xe4, 0x2d, 0x89, 0xb8, 0xbf, 0x4b, 0x9c, 0x19, 0xed, 0x55, 0x4b, 0x12, 0xfe, 0xba, 0xc0, 0xf6, 0x0d, 0xdb, 0x32, 0x19, 0xcc, 0xc5, 0x60, 0x35, 0x31, 0xdb, 0xf2, 0xeb, 0x5f, 0x29, 0x34, 0x25, 0xd7, 0x2c, 0xce, 0xfa, 0x0c, 0x7f, 0x14, 0x4a, 0xba, 0x89, 0x34, 0x7b, 0x29, 0x6b, 0xe8, 0x7f, 0xf1, 0x89, 0x94, 0xb4, 0xa0, 0xc7, 0x0c, 0x93, 0x0f, 0x05, 0x93, 0x03, 0xb5, 0xdd, 0x4c, 0x8f, 0xe1, 0xe6, 0xbb, 0xc3, 0xcd, 0x68, 0xc6, 0xc0, 0xd8, 0x42, 0x46, 0xdc, 0x6e, 0x61, 0x40, 0xa2, 0xab, 0xd1, 0x78, 0x0b, 0x13, 0xf1, 0x59, 0x4a, 0x60, 0x19, 0xd1, 0x77, 0x8b, 0x7c, 0xbb, 0x3a, 0x3e, 0x3a, 0x34, 0xbf, 0xae, 0x72, 0x97, 0xf0, 0xb3, 0xed, 0xc3, 0x76, 0x94, 0x1c, 0x32, 0x35, 0x2a, 0x4b, 0xe3, 0x14, 0xb8, 0x4a, 0x9d, 0x8d, 0x6d, 0x7f, 0x1f, 0x38, 0xa0, 0xad, 0x37, 0x98, 0x02, 0x0a, 0xa2, 0xa3, 0x31, 0xa4, 0x02, 0xbe, 0x9c, 0x70, 0x44, 0x84, 0x74, 0x4a, 0x73, 0x0c, 0xbd, 0xed, 0xcb, 0x90, 0x4b, 0x6f, 0xde, 0x70, 0x8f, 0xbd, 0x14, 0xbf, 0xdc, 0x29, 0xef, 0xd4, 0x61, 0xd1, 0xd0, 0xb5, 0x82, 0x5d, 0xe0, 0xbc, 0x79, 0x42, 0x2b, 0x69, 0xa2, 0x72, 0x2f, };
8877 static const u8 ed25519_386_test_vectors_expected_sig[] = {
8878 	0x65, 0xc5, 0xd1, 0x0e, 0xa7, 0xbf, 0xdb, 0xb3, 0x8d, 0x55, 0x36, 0x4a, 0x99, 0x68, 0xf8, 0x2b, 0x54, 0x82, 0x24, 0xdf, 0xf3, 0x36, 0x3b, 0x2d, 0xdc, 0xf5, 0x85, 0x16, 0x3d, 0xea, 0x27, 0xdc, 0x63, 0xb0, 0x56, 0x3e, 0xb1, 0xa8, 0xdf, 0xbe, 0xe9, 0x51, 0xd3, 0xc9, 0xb3, 0x3f, 0xcd, 0x6b, 0xbf, 0x09, 0x21, 0xc3, 0xab, 0xb2, 0x17, 0x86, 0xb2, 0x29, 0x06, 0x9b, 0xd9, 0xca, 0x00, 0x0a, };
8879 static const ec_test_case ed25519_386_test_case = {
8880 	.name = "EDDSA25519-SHA512/wei25519 386",
8881 	.ec_str_p = &wei25519_str_params,
8882 	.priv_key = ed25519_386_test_vectors_priv_key,
8883 	.priv_key_len = sizeof(ed25519_386_test_vectors_priv_key),
8884 	.nn_random = NULL,
8885 	.hash_type = SHA512,
8886 	.msg = (const char *)ed25519_386_test_vectors_message,
8887 	.msglen = sizeof(ed25519_386_test_vectors_message),
8888 	.sig_type = EDDSA25519,
8889 	.exp_sig = ed25519_386_test_vectors_expected_sig,
8890 	.exp_siglen = sizeof(ed25519_386_test_vectors_expected_sig),
8891 	.adata = NULL,
8892 	.adata_len = 0
8893 };
8894 
8895 /************************************************/
8896 static const u8 ed25519_387_test_vectors_priv_key[] = {
8897 	0x45, 0xeb, 0x0c, 0x4d, 0xfa, 0xfa, 0x2a, 0x76, 0x90, 0xef, 0x57, 0x9c, 0x09, 0x54, 0x56, 0xce, 0xed, 0xcd, 0x32, 0xf0, 0xb6, 0x14, 0x4d, 0x0c, 0x38, 0x0f, 0x87, 0xfb, 0x74, 0x4a, 0x0b, 0x1f, };
8898 static const u8 ed25519_387_test_vectors_message[] = {
8899 	0x6f, 0x66, 0xd8, 0x47, 0x40, 0x5a, 0x03, 0xd7, 0xbd, 0x6f, 0x8d, 0x28, 0x97, 0xdb, 0xdf, 0x04, 0xe7, 0x6d, 0x7d, 0xf2, 0xd9, 0x47, 0x0a, 0x49, 0x96, 0xb7, 0xdd, 0x6d, 0xb8, 0x85, 0x00, 0xf8, 0xf4, 0xf8, 0x3e, 0x96, 0x0e, 0x21, 0x9a, 0x24, 0x86, 0xe2, 0x45, 0x45, 0xad, 0xd1, 0x36, 0x14, 0x55, 0x04, 0x14, 0xd8, 0x27, 0xc4, 0x1a, 0x9b, 0x08, 0x31, 0x8d, 0xaf, 0x01, 0xb1, 0x52, 0x14, 0xc6, 0x4a, 0x42, 0x66, 0xcb, 0xf8, 0xa5, 0x71, 0x7a, 0xda, 0x3e, 0x62, 0xc2, 0x67, 0x29, 0x07, 0x3e, 0x16, 0xdd, 0xbd, 0x66, 0xf2, 0xd5, 0x20, 0xe1, 0xe0, 0x99, 0x35, 0xde, 0x05, 0xe4, 0xdb, 0x11, 0xc3, 0x96, 0xd4, 0x77, 0x01, 0x0a, 0xec, 0x66, 0xaa, 0xfb, 0x76, 0x2e, 0x69, 0x23, 0x8d, 0x0b, 0x9e, 0x76, 0xb4, 0x52, 0x45, 0x4b, 0xf9, 0xe4, 0x51, 0xe7, 0x6a, 0xc7, 0x9e, 0x69, 0x90, 0xd4, 0x1b, 0x93, 0x2b, 0xc3, 0x29, 0x17, 0x09, 0x37, 0x83, 0xc9, 0x1b, 0xc9, 0xcf, 0x0b, 0xbe, 0x3b, 0x51, 0x40, 0x70, 0xa1, 0xe6, 0x92, 0xff, 0x34, 0xfd, 0x06, 0xb6, 0x6e, 0xa1, 0x1f, 0x39, 0xe1, 0x0a, 0xf9, 0x33, 0xee, 0x96, 0xd8, 0xe9, 0xb6, 0x77, 0xcb, 0x03, 0x73, 0x7e, 0x79, 0x64, 0xee, 0xaa, 0x72, 0x5f, 0x12, 0x12, 0x07, 0xf9, 0xc1, 0xb2, 0x6a, 0x96, 0xc6, 0x16, 0xdf, 0x7c, 0xb7, 0xca, 0xef, 0x47, 0xbd, 0xa9, 0x01, 0x36, 0x8f, 0xf2, 0xea, 0x58, 0x6e, 0x42, 0x2e, 0x65, 0xbf, 0x21, 0xa6, 0x91, 0xbd, 0xd2, 0xc1, 0x3e, 0x67, 0xff, 0xf5, 0x8c, 0xfb, 0xfe, 0xd8, 0x17, 0x82, 0x04, 0x9d, 0xaf, 0xa0, 0xf7, 0x27, 0xdf, 0x88, 0x62, 0x3f, 0x2f, 0x7e, 0x8f, 0x26, 0x2d, 0xaf, 0x93, 0x95, 0x42, 0xa1, 0x87, 0xb8, 0x72, 0x0a, 0x9b, 0x6b, 0x2b, 0x09, 0x89, 0x0e, 0x54, 0x87, 0x6b, 0x28, 0xa4, 0x38, 0x74, 0xab, 0xbe, 0x3b, 0xfa, 0x98, 0x1f, 0x81, 0x38, 0xb7, 0x72, 0xc5, 0xd5, 0x17, 0x36, 0x88, 0x5f, 0x86, 0xac, 0xac, 0x22, 0x15, 0xa0, 0xb0, 0x10, 0xdf, 0xc2, 0xc6, 0xb1, 0x50, 0x84, 0x5d, 0x4f, 0x82, 0x96, 0x25, 0x25, 0x86, 0xa3, 0xe1, 0x15, 0xf3, 0x03, 0xc3, 0xd8, 0xa5, 0x82, 0xe2, 0x0f, 0xd2, 0xd4, 0x3f, 0x6c, 0x44, 0x6e, 0x5d, 0x00, 0x28, 0x0e, 0xc1, 0x79, 0x82, 0x3b, 0x7f, 0xb4, 0xc1, 0xb0, 0xfe, 0xb9, 0x4e, 0xb4, 0xef, 0x17, 0x07, 0xf5, 0x18, 0x4e, 0x3b, 0x52, 0x46, 0x1a, 0x75, 0x62, 0xd1, 0xf3, 0x07, 0xcb, 0x75, 0x1c, 0xdb, 0xbf, 0x6e, 0xae, 0x49, 0xff, 0xae, 0x91, 0x86, 0x23, 0x58, 0xe7, 0x4e, 0x95, 0x48, 0x82, 0x2b, 0x8a, 0x04, 0x9f, 0xec, 0x6b, 0xf4, 0xc7, 0xa9, 0x9c, 0xab, 0xbe, 0x09, 0x20, 0x65, 0x77, 0xb6, 0x57, 0xe3, 0x1f, };
8900 static const u8 ed25519_387_test_vectors_expected_sig[] = {
8901 	0x55, 0x85, 0x1d, 0xe8, 0xe1, 0x09, 0x2f, 0x78, 0x94, 0x4f, 0x6c, 0x6d, 0xd9, 0x5b, 0xf0, 0x7e, 0x2d, 0xbc, 0x8d, 0xf7, 0xf5, 0x7a, 0xd5, 0x76, 0x82, 0x9b, 0x97, 0x8e, 0x3a, 0xf5, 0x8a, 0x7a, 0x8e, 0x94, 0xed, 0x4d, 0xcc, 0xbc, 0x01, 0x82, 0x46, 0x7e, 0xdf, 0x0b, 0xad, 0x4b, 0xae, 0x7c, 0xa8, 0x4a, 0xa9, 0xa0, 0xc1, 0x7c, 0x61, 0xa9, 0xe0, 0xdd, 0xff, 0x1d, 0x75, 0x25, 0xd7, 0x04, };
8902 static const ec_test_case ed25519_387_test_case = {
8903 	.name = "EDDSA25519-SHA512/wei25519 387",
8904 	.ec_str_p = &wei25519_str_params,
8905 	.priv_key = ed25519_387_test_vectors_priv_key,
8906 	.priv_key_len = sizeof(ed25519_387_test_vectors_priv_key),
8907 	.nn_random = NULL,
8908 	.hash_type = SHA512,
8909 	.msg = (const char *)ed25519_387_test_vectors_message,
8910 	.msglen = sizeof(ed25519_387_test_vectors_message),
8911 	.sig_type = EDDSA25519,
8912 	.exp_sig = ed25519_387_test_vectors_expected_sig,
8913 	.exp_siglen = sizeof(ed25519_387_test_vectors_expected_sig),
8914 	.adata = NULL,
8915 	.adata_len = 0
8916 };
8917 
8918 /************************************************/
8919 static const u8 ed25519_388_test_vectors_priv_key[] = {
8920 	0x70, 0x9d, 0x2e, 0x19, 0x90, 0x06, 0xf5, 0x36, 0x9a, 0x7a, 0x0b, 0xdd, 0x34, 0xe7, 0x4d, 0xc7, 0x84, 0xbe, 0x33, 0x88, 0x0e, 0xa3, 0xc5, 0xdd, 0x10, 0xed, 0x5c, 0x94, 0x45, 0x1e, 0x79, 0x72, };
8921 static const u8 ed25519_388_test_vectors_message[] = {
8922 	0x62, 0xf0, 0x03, 0x14, 0x0f, 0xa0, 0x9e, 0x03, 0x87, 0xd1, 0x87, 0xa0, 0xff, 0x96, 0xc4, 0x56, 0x3d, 0xf9, 0xf4, 0xe2, 0x8c, 0x22, 0x82, 0xc0, 0x18, 0x3a, 0xc3, 0xee, 0xde, 0x13, 0x12, 0x35, 0x49, 0x21, 0xf7, 0x80, 0xfc, 0xa5, 0x36, 0x1d, 0x30, 0x68, 0xd2, 0x99, 0x49, 0x63, 0x0b, 0x75, 0x30, 0xcd, 0x59, 0x14, 0xac, 0xe0, 0x46, 0x8d, 0x01, 0x4b, 0x6f, 0x53, 0xd8, 0x39, 0xb8, 0x2e, 0x38, 0x81, 0x7d, 0xbf, 0x2d, 0x83, 0x92, 0xc3, 0xce, 0x34, 0x24, 0xea, 0xb8, 0x6a, 0x24, 0xd8, 0x04, 0xc7, 0xac, 0xb1, 0xce, 0x7a, 0xcf, 0xe0, 0xa1, 0xcd, 0xa4, 0x39, 0x39, 0x24, 0x28, 0x31, 0x05, 0xda, 0x4a, 0x77, 0x41, 0x19, 0x6e, 0x02, 0x75, 0x50, 0x04, 0x7f, 0x85, 0xb7, 0xa0, 0xa0, 0x1d, 0x45, 0x41, 0x24, 0xef, 0xc0, 0xe2, 0x99, 0xf0, 0xef, 0x9a, 0xd1, 0x43, 0x50, 0x54, 0x30, 0x53, 0x48, 0x22, 0x61, 0x52, 0x8b, 0xaa, 0x56, 0xe6, 0x59, 0x99, 0xac, 0x80, 0x2c, 0x00, 0xa3, 0x36, 0x26, 0x7c, 0x63, 0x51, 0x06, 0xb2, 0x64, 0x03, 0xc1, 0x9f, 0x39, 0x1d, 0x53, 0xbd, 0x82, 0x86, 0x1d, 0x6d, 0x48, 0xa4, 0x38, 0x0b, 0x30, 0x43, 0xaa, 0x91, 0xd6, 0x49, 0x53, 0x68, 0x81, 0x20, 0x4e, 0xcc, 0xb0, 0xde, 0x20, 0xd4, 0x3e, 0x5a, 0x37, 0x55, 0xb7, 0xf6, 0x00, 0x91, 0x6e, 0xcc, 0xae, 0x42, 0xa0, 0xc9, 0x05, 0x3b, 0x46, 0x2d, 0x94, 0x17, 0xa1, 0x3d, 0x67, 0xd7, 0x78, 0x26, 0x4a, 0x89, 0x6e, 0x8e, 0xaf, 0x90, 0xba, 0xf6, 0x6d, 0x29, 0xe5, 0x43, 0x8a, 0x71, 0x67, 0x81, 0x12, 0x3a, 0x89, 0xfa, 0x9b, 0x8b, 0xee, 0xf9, 0x1d, 0x96, 0x5a, 0xf2, 0xf4, 0xa1, 0xa5, 0xbd, 0x5d, 0x2e, 0x2a, 0xaf, 0x46, 0xd5, 0xc9, 0x4b, 0x77, 0x09, 0xcd, 0xd3, 0x8d, 0x05, 0xfe, 0xee, 0x4b, 0xfb, 0x76, 0xa3, 0x59, 0x07, 0x7c, 0x16, 0xbc, 0x4b, 0xe9, 0x11, 0x6e, 0x69, 0x00, 0x12, 0x71, 0xcd, 0xa5, 0x65, 0xbc, 0x19, 0xbf, 0x47, 0xd4, 0xf9, 0x86, 0xbd, 0x9c, 0x0d, 0x18, 0x4c, 0xd8, 0xa3, 0x52, 0x0c, 0xa1, 0xbd, 0xb4, 0xb5, 0x05, 0xaa, 0xf7, 0xcb, 0x4e, 0xc9, 0xf9, 0x47, 0x89, 0x77, 0x9d, 0x30, 0x71, 0x4e, 0x79, 0x11, 0x6d, 0xd5, 0x01, 0x9d, 0x59, 0xb2, 0x8b, 0x17, 0xda, 0xd9, 0x6f, 0x4e, 0x21, 0x55, 0xad, 0x9c, 0x61, 0x27, 0x4a, 0xdd, 0xc6, 0xb6, 0x38, 0x10, 0x95, 0x04, 0xe9, 0xed, 0x19, 0xf4, 0xed, 0xa5, 0x37, 0x77, 0x62, 0x64, 0x8c, 0x40, 0x98, 0x22, 0x4e, 0x33, 0x91, 0x04, 0x3e, 0x4c, 0x2a, 0xd5, 0x91, 0x65, 0x4c, 0x9e, 0x7f, 0x97, 0x4e, 0xfd, 0xf0, 0xb0, 0x50, 0x4b, 0x6f, 0xa5, 0xf6, 0x46, 0xce, 0xcf, 0x44, 0xcd, 0x37, 0x24, 0x12, 0x37, 0x25, 0x05, };
8923 static const u8 ed25519_388_test_vectors_expected_sig[] = {
8924 	0x62, 0x9b, 0xf9, 0x7b, 0x0c, 0x78, 0xee, 0x6a, 0x9c, 0x87, 0x59, 0xfb, 0xea, 0x28, 0x22, 0x4e, 0x27, 0xab, 0xbb, 0x6c, 0xbe, 0x4d, 0xea, 0x5b, 0xb7, 0x97, 0xe6, 0xe0, 0xfe, 0x80, 0xc9, 0x13, 0xf9, 0x53, 0xe3, 0xa9, 0xb6, 0x23, 0x35, 0x2d, 0x13, 0xac, 0xf4, 0xce, 0x62, 0x50, 0xfb, 0x02, 0x9a, 0x1e, 0x19, 0x8d, 0x72, 0xbd, 0x5e, 0x74, 0x02, 0xe6, 0x0e, 0x9e, 0x48, 0xca, 0x35, 0x01, };
8925 static const ec_test_case ed25519_388_test_case = {
8926 	.name = "EDDSA25519-SHA512/wei25519 388",
8927 	.ec_str_p = &wei25519_str_params,
8928 	.priv_key = ed25519_388_test_vectors_priv_key,
8929 	.priv_key_len = sizeof(ed25519_388_test_vectors_priv_key),
8930 	.nn_random = NULL,
8931 	.hash_type = SHA512,
8932 	.msg = (const char *)ed25519_388_test_vectors_message,
8933 	.msglen = sizeof(ed25519_388_test_vectors_message),
8934 	.sig_type = EDDSA25519,
8935 	.exp_sig = ed25519_388_test_vectors_expected_sig,
8936 	.exp_siglen = sizeof(ed25519_388_test_vectors_expected_sig),
8937 	.adata = NULL,
8938 	.adata_len = 0
8939 };
8940 
8941 /************************************************/
8942 static const u8 ed25519_389_test_vectors_priv_key[] = {
8943 	0x51, 0x51, 0x61, 0x74, 0x21, 0xaa, 0xdc, 0x9c, 0x95, 0xa4, 0x42, 0xb4, 0x5e, 0x7f, 0xf6, 0xde, 0x06, 0xa2, 0xc7, 0x33, 0xb8, 0x5b, 0xd7, 0x89, 0xfb, 0xad, 0x41, 0x4e, 0xe3, 0xc9, 0x1a, 0xdd, };
8944 static const u8 ed25519_389_test_vectors_message[] = {
8945 	0x21, 0x6e, 0x9d, 0x40, 0xbc, 0xdc, 0x3b, 0x26, 0x50, 0x18, 0x8d, 0x12, 0x1c, 0x9f, 0x8e, 0xf2, 0x9e, 0x91, 0x4f, 0xac, 0xd0, 0x22, 0xfe, 0x01, 0xb9, 0x0e, 0xd1, 0x12, 0x25, 0xf2, 0xeb, 0x93, 0x53, 0x8e, 0x5f, 0xce, 0xe5, 0xab, 0x80, 0x45, 0xe9, 0x19, 0x9a, 0xa7, 0x6a, 0x16, 0xbd, 0xd0, 0x61, 0x68, 0x05, 0x66, 0x0e, 0x24, 0x7f, 0xec, 0xd7, 0xe2, 0x28, 0x21, 0xb6, 0x9b, 0x1f, 0x8e, 0x8a, 0x58, 0xac, 0x3f, 0xb8, 0x56, 0x91, 0xd7, 0x5d, 0x59, 0x57, 0xa1, 0xda, 0xf5, 0x3f, 0xf9, 0xee, 0x64, 0x76, 0xd7, 0xc4, 0xbc, 0x54, 0x1e, 0x6a, 0xd3, 0x8e, 0x3a, 0x34, 0xea, 0x90, 0xfc, 0x52, 0xa4, 0x8b, 0x93, 0x99, 0xf9, 0x2d, 0x17, 0xc9, 0xbb, 0x0d, 0x7f, 0xc3, 0x10, 0x4c, 0x55, 0xd0, 0xef, 0xb4, 0xea, 0x5b, 0x83, 0x1f, 0xf9, 0x49, 0x0b, 0x3f, 0x79, 0xf4, 0xd9, 0xd6, 0x99, 0x59, 0x4b, 0x74, 0x15, 0x66, 0xf2, 0xb5, 0x0a, 0x8f, 0xc7, 0x8c, 0xc4, 0x03, 0xfa, 0x40, 0xf5, 0xab, 0xb6, 0x63, 0x8a, 0x32, 0xf4, 0x49, 0xa8, 0xb3, 0xef, 0x02, 0x9c, 0x40, 0x2f, 0x46, 0x93, 0x1a, 0xd2, 0xbd, 0x3e, 0x8e, 0x68, 0x31, 0x08, 0x71, 0x4c, 0x98, 0x9a, 0xe2, 0x16, 0x89, 0xe9, 0xc4, 0x44, 0xb9, 0xf5, 0x5b, 0x81, 0x11, 0x9b, 0xb5, 0x03, 0x5b, 0xcf, 0x73, 0xe9, 0x7c, 0xe4, 0x3a, 0x22, 0x18, 0xc7, 0xbc, 0x3e, 0x43, 0x0d, 0x1e, 0x81, 0x4f, 0x34, 0xde, 0xe0, 0x57, 0x26, 0x5d, 0x31, 0x94, 0xb9, 0xf4, 0x38, 0x75, 0xd8, 0x38, 0x1f, 0x52, 0x5f, 0x78, 0x57, 0x6e, 0x64, 0xce, 0x69, 0x25, 0x84, 0xfa, 0xa3, 0x0f, 0xb7, 0x43, 0xa1, 0x2d, 0x1b, 0x77, 0x61, 0x4d, 0x2e, 0x10, 0xa6, 0xb8, 0x56, 0xb5, 0x2b, 0xe2, 0x7c, 0xdb, 0x63, 0x0b, 0xa1, 0xf0, 0xd3, 0xa6, 0xf8, 0xea, 0x98, 0x44, 0x54, 0x2e, 0x58, 0x4e, 0xa0, 0xa2, 0x77, 0x75, 0x27, 0xd0, 0xc5, 0x2a, 0xca, 0x94, 0x9a, 0xac, 0xda, 0x45, 0xad, 0x83, 0xd1, 0x6d, 0x5c, 0x83, 0xd6, 0x63, 0xad, 0xb7, 0x9c, 0xad, 0x6f, 0x3e, 0x39, 0xe9, 0x90, 0xfe, 0x28, 0x2a, 0x14, 0xc3, 0x53, 0xaa, 0x23, 0x79, 0xd7, 0xf0, 0x6a, 0xda, 0xb7, 0x4c, 0xea, 0x02, 0x1b, 0x89, 0x83, 0xa5, 0x7f, 0x1d, 0x0c, 0xf7, 0x03, 0x29, 0x2e, 0xb0, 0x5e, 0xce, 0x89, 0xc5, 0x3f, 0x3a, 0x12, 0x65, 0x61, 0x0e, 0x0c, 0x1e, 0xa8, 0xdd, 0xd4, 0x44, 0xd1, 0xff, 0xd6, 0xbc, 0x3d, 0x03, 0xf0, 0xa6, 0xe4, 0xd0, 0xdf, 0x5c, 0x5b, 0x8d, 0xc1, 0xf9, 0x5d, 0x9f, 0x55, 0x58, 0xb1, 0x18, 0xaf, 0xe6, 0xbe, 0xa0, 0xf6, 0xc2, 0x93, 0x13, 0x63, 0xf0, 0x3a, 0xb3, 0x4e, 0x75, 0x7d, 0x49, 0x36, 0x41, 0x74, 0xf6, 0x58, 0xef, 0xbb, 0xf3, 0x8d, 0xc1, 0x77, };
8946 static const u8 ed25519_389_test_vectors_expected_sig[] = {
8947 	0xfa, 0xe4, 0x77, 0x3b, 0x33, 0x44, 0x60, 0xc7, 0x7b, 0xf0, 0x1e, 0xc6, 0x36, 0x6c, 0x4f, 0xe6, 0x1c, 0x0c, 0xab, 0x57, 0xd8, 0xa4, 0xb0, 0x39, 0x09, 0xc6, 0x19, 0xe1, 0x1e, 0xe3, 0x46, 0x1c, 0x13, 0xfa, 0x21, 0x57, 0x6f, 0x63, 0x87, 0x0e, 0x42, 0x3d, 0xd0, 0x41, 0x81, 0xe4, 0xa7, 0x01, 0x3a, 0x75, 0x24, 0xf2, 0x46, 0xfe, 0x33, 0x85, 0x3c, 0x67, 0x41, 0x62, 0xa7, 0x81, 0x51, 0x04, };
8948 static const ec_test_case ed25519_389_test_case = {
8949 	.name = "EDDSA25519-SHA512/wei25519 389",
8950 	.ec_str_p = &wei25519_str_params,
8951 	.priv_key = ed25519_389_test_vectors_priv_key,
8952 	.priv_key_len = sizeof(ed25519_389_test_vectors_priv_key),
8953 	.nn_random = NULL,
8954 	.hash_type = SHA512,
8955 	.msg = (const char *)ed25519_389_test_vectors_message,
8956 	.msglen = sizeof(ed25519_389_test_vectors_message),
8957 	.sig_type = EDDSA25519,
8958 	.exp_sig = ed25519_389_test_vectors_expected_sig,
8959 	.exp_siglen = sizeof(ed25519_389_test_vectors_expected_sig),
8960 	.adata = NULL,
8961 	.adata_len = 0
8962 };
8963 
8964 /************************************************/
8965 static const u8 ed25519_390_test_vectors_priv_key[] = {
8966 	0x38, 0xbe, 0xd4, 0x45, 0x55, 0x6d, 0xe7, 0x44, 0x82, 0xbf, 0x5f, 0xec, 0x05, 0x06, 0xf9, 0xaf, 0x33, 0x0b, 0x15, 0x1e, 0x50, 0xd4, 0x77, 0x4d, 0xfe, 0x85, 0x91, 0xd7, 0xb7, 0xe0, 0x27, 0x6b, };
8967 static const u8 ed25519_390_test_vectors_message[] = {
8968 	0x0f, 0xf0, 0x03, 0x1d, 0xf0, 0xbe, 0xef, 0xf3, 0x71, 0x0c, 0x6b, 0x76, 0x3f, 0x9b, 0x8e, 0xc8, 0x17, 0x19, 0xbf, 0xa1, 0x52, 0x8c, 0xe4, 0x65, 0x19, 0xad, 0xf3, 0xd3, 0x41, 0x2d, 0x93, 0xfb, 0x18, 0x8f, 0xd4, 0x97, 0xd5, 0xd1, 0x70, 0x91, 0xc0, 0xf0, 0x34, 0x59, 0x60, 0xdd, 0x0e, 0xb0, 0xc0, 0x9f, 0xc4, 0x00, 0x51, 0x73, 0x66, 0x5d, 0x4d, 0x97, 0xf9, 0x5c, 0x13, 0x82, 0x8b, 0xc7, 0x6b, 0x34, 0x92, 0xb8, 0x7a, 0x4b, 0x64, 0x25, 0x3c, 0x8b, 0x5f, 0xa4, 0x7a, 0xa7, 0x5f, 0xa3, 0xb8, 0x6d, 0x5a, 0xbe, 0xea, 0x8d, 0xe5, 0x95, 0x9a, 0x60, 0x22, 0x89, 0x13, 0x6f, 0x60, 0xa6, 0x9b, 0x30, 0x9e, 0x77, 0x3b, 0x22, 0x55, 0xcd, 0xe1, 0x9e, 0xd2, 0xa2, 0xe1, 0x99, 0xc3, 0x3d, 0xb1, 0x1c, 0x16, 0xad, 0xe0, 0x8a, 0x31, 0x97, 0x50, 0xb8, 0x51, 0xd9, 0x2c, 0x69, 0x29, 0x24, 0xfc, 0x98, 0x59, 0xbe, 0x52, 0x34, 0x31, 0xcb, 0xe7, 0x8e, 0xc0, 0x92, 0xdb, 0x11, 0x29, 0x21, 0x0e, 0xbb, 0xea, 0xa7, 0xc2, 0xa2, 0xc0, 0x00, 0xee, 0xb1, 0x05, 0xca, 0x03, 0x01, 0xa4, 0x8f, 0x3e, 0x45, 0xfd, 0xfb, 0x15, 0xb2, 0x75, 0xcb, 0xab, 0x83, 0xca, 0x5c, 0x99, 0xd7, 0x37, 0xa5, 0x85, 0x32, 0x0e, 0x9e, 0x3b, 0x31, 0x71, 0x79, 0xbd, 0x86, 0x46, 0x7f, 0xa9, 0x69, 0x4f, 0xcd, 0xb2, 0xac, 0x6a, 0xd3, 0x6e, 0xd7, 0x14, 0x48, 0x43, 0xdb, 0xc3, 0x4e, 0x42, 0x3d, 0x35, 0xaf, 0xd7, 0xd8, 0x97, 0x2a, 0x1c, 0x43, 0xc1, 0x99, 0xa1, 0x91, 0xab, 0xd6, 0xce, 0xba, 0x49, 0x36, 0xd3, 0x95, 0xc9, 0x95, 0xa3, 0xeb, 0x13, 0xcb, 0x05, 0x7f, 0x88, 0xa9, 0xdc, 0x94, 0x90, 0xfe, 0x98, 0x84, 0x5e, 0xe5, 0xd2, 0x6a, 0x89, 0xfb, 0x64, 0x2a, 0x2a, 0x51, 0x6d, 0xc3, 0x05, 0x6c, 0x54, 0xd3, 0x63, 0x72, 0x13, 0x36, 0x3a, 0x86, 0x28, 0xa4, 0x2a, 0x39, 0x5d, 0x94, 0x2b, 0x95, 0x4a, 0x89, 0xe8, 0xef, 0x7a, 0x74, 0x4d, 0x8a, 0xe5, 0xad, 0xac, 0x88, 0xc6, 0x16, 0xef, 0xaa, 0x90, 0xe2, 0x07, 0x72, 0x05, 0xa6, 0x0b, 0xaf, 0xfe, 0xde, 0x5c, 0x87, 0xbb, 0x14, 0xde, 0xad, 0x30, 0x62, 0x29, 0x49, 0x5f, 0x69, 0x8f, 0x3e, 0x49, 0x06, 0x16, 0x96, 0x6b, 0x16, 0x36, 0x38, 0x7d, 0x0d, 0x86, 0x18, 0x3f, 0x94, 0x5b, 0x24, 0xa9, 0xdc, 0xfc, 0xcf, 0x4d, 0x36, 0x72, 0x2c, 0xd1, 0x2e, 0xbb, 0x6b, 0xd8, 0xe7, 0x83, 0x25, 0x75, 0x2a, 0xfa, 0x2b, 0x1a, 0xbd, 0x13, 0xc4, 0xbd, 0xbc, 0xad, 0xd1, 0x70, 0x86, 0x91, 0x36, 0x82, 0x62, 0x42, 0xac, 0xfb, 0x72, 0x1d, 0xe5, 0xff, 0x27, 0xba, 0x8a, 0xa0, 0xc0, 0x18, 0xb2, 0x25, 0xed, 0x34, 0x04, 0x80, 0x3c, 0xe9, 0xfa, 0x2d, 0x50, 0x8d, 0x89, 0x44, };
8969 static const u8 ed25519_390_test_vectors_expected_sig[] = {
8970 	0xf7, 0x02, 0xd0, 0xd4, 0x63, 0x28, 0x2f, 0xc7, 0xfd, 0x5f, 0x8f, 0x90, 0x29, 0xb8, 0x9c, 0x62, 0x6c, 0xaf, 0xd8, 0x34, 0x50, 0xc3, 0xbb, 0x9d, 0xd8, 0xf6, 0x58, 0x9f, 0x0c, 0x4b, 0x4b, 0x71, 0xf6, 0x49, 0xea, 0x21, 0x2e, 0x5e, 0x33, 0x48, 0x7c, 0x59, 0xc1, 0x68, 0xea, 0x3a, 0xd8, 0x31, 0x50, 0xf1, 0xfc, 0xdf, 0xe8, 0xc5, 0x3e, 0xba, 0x65, 0xad, 0xc2, 0x02, 0x3c, 0x25, 0x83, 0x0f, };
8971 static const ec_test_case ed25519_390_test_case = {
8972 	.name = "EDDSA25519-SHA512/wei25519 390",
8973 	.ec_str_p = &wei25519_str_params,
8974 	.priv_key = ed25519_390_test_vectors_priv_key,
8975 	.priv_key_len = sizeof(ed25519_390_test_vectors_priv_key),
8976 	.nn_random = NULL,
8977 	.hash_type = SHA512,
8978 	.msg = (const char *)ed25519_390_test_vectors_message,
8979 	.msglen = sizeof(ed25519_390_test_vectors_message),
8980 	.sig_type = EDDSA25519,
8981 	.exp_sig = ed25519_390_test_vectors_expected_sig,
8982 	.exp_siglen = sizeof(ed25519_390_test_vectors_expected_sig),
8983 	.adata = NULL,
8984 	.adata_len = 0
8985 };
8986 
8987 /************************************************/
8988 static const u8 ed25519_391_test_vectors_priv_key[] = {
8989 	0x05, 0x54, 0x60, 0xb3, 0x2d, 0xd0, 0x4d, 0x7f, 0x4b, 0x23, 0x11, 0xa8, 0x98, 0x07, 0xe0, 0x73, 0xfd, 0x55, 0x65, 0x65, 0xa4, 0x77, 0x18, 0x57, 0xd8, 0x82, 0x79, 0x41, 0x30, 0xa2, 0xfe, 0x5d, };
8990 static const u8 ed25519_391_test_vectors_message[] = {
8991 	0x74, 0x07, 0xf9, 0x6e, 0xe3, 0xe7, 0x9c, 0x69, 0xd3, 0x6c, 0xe1, 0xf6, 0x4e, 0x4f, 0x18, 0x86, 0x55, 0xea, 0x68, 0xb9, 0x47, 0xe7, 0xe2, 0xbe, 0x97, 0xb0, 0x5e, 0xbc, 0x6d, 0x44, 0x39, 0xe9, 0x50, 0x27, 0x6e, 0xf3, 0xf0, 0xe6, 0xa0, 0x3d, 0xd4, 0x8b, 0x24, 0xf6, 0x69, 0x29, 0xb4, 0x9c, 0x15, 0x80, 0xeb, 0x46, 0x88, 0x07, 0xe1, 0xe7, 0xa2, 0x5e, 0xb9, 0xb9, 0x4d, 0xa3, 0x40, 0xc5, 0x3f, 0x98, 0x4f, 0x8b, 0x81, 0x60, 0x3e, 0xfb, 0x61, 0x04, 0x7b, 0xf3, 0xf1, 0x4b, 0x68, 0x6d, 0x97, 0x98, 0x00, 0x3d, 0x2f, 0x68, 0x58, 0x9a, 0x79, 0xeb, 0xfa, 0xd5, 0x44, 0x09, 0xc7, 0x1c, 0x90, 0xff, 0x67, 0xc1, 0x1f, 0xbd, 0x76, 0xcc, 0x72, 0xc2, 0xd1, 0x45, 0xf4, 0x58, 0xe4, 0x2f, 0x88, 0xb7, 0x5d, 0x25, 0x0e, 0xad, 0xca, 0xfe, 0x66, 0xbf, 0x37, 0xff, 0xc8, 0x37, 0xb6, 0x2f, 0xf0, 0x06, 0x68, 0x5b, 0x7f, 0x85, 0xa9, 0xd8, 0x75, 0xfc, 0x07, 0x8c, 0x82, 0xe6, 0x1f, 0xe3, 0x5d, 0x19, 0x22, 0x52, 0x7a, 0x55, 0x1d, 0xab, 0x62, 0xf9, 0xe4, 0x77, 0x49, 0x91, 0x46, 0xba, 0xd9, 0x12, 0x20, 0x3e, 0x66, 0x4c, 0x41, 0x7c, 0x36, 0x79, 0xc0, 0x2d, 0x87, 0x2a, 0xba, 0xc0, 0x03, 0x2f, 0x8c, 0xc7, 0x7f, 0x77, 0xbf, 0xe5, 0x4d, 0x33, 0x26, 0xfd, 0xee, 0x92, 0x76, 0xa4, 0x8e, 0xa4, 0xeb, 0x25, 0x13, 0x50, 0x40, 0x68, 0x82, 0xd0, 0x8c, 0x83, 0x0e, 0x76, 0x49, 0xfe, 0x68, 0x54, 0x55, 0x8a, 0x75, 0x13, 0xab, 0x2d, 0x8d, 0x2a, 0xc3, 0xe5, 0xce, 0xd8, 0xa8, 0x08, 0xd2, 0xae, 0xe4, 0x54, 0x77, 0x9e, 0xda, 0xbd, 0x1a, 0xa6, 0x3b, 0xb1, 0x9f, 0x71, 0x8f, 0x47, 0x0b, 0xdc, 0x84, 0x51, 0xcd, 0x9b, 0x29, 0x49, 0x41, 0xe3, 0x49, 0x70, 0x63, 0xb1, 0xe3, 0x9b, 0x6c, 0xa1, 0x84, 0x56, 0x2f, 0xe8, 0x38, 0xcb, 0xfe, 0xee, 0x92, 0x2d, 0xe2, 0x4d, 0xdf, 0xcf, 0x98, 0x82, 0xc5, 0xe6, 0x15, 0xb1, 0x1b, 0xf9, 0x04, 0x81, 0x7f, 0xbd, 0x64, 0x71, 0x39, 0xdb, 0x80, 0xb4, 0xe8, 0xfe, 0xb3, 0x7f, 0x11, 0xe1, 0x85, 0x2d, 0x7e, 0x87, 0x6d, 0xb9, 0xcb, 0x63, 0xc9, 0x4d, 0x7e, 0xe3, 0x41, 0x92, 0xf7, 0x20, 0x0b, 0x5b, 0xc7, 0x7a, 0x03, 0x11, 0xae, 0x43, 0xb8, 0x06, 0xeb, 0xd4, 0xc2, 0x89, 0x6c, 0x53, 0xf5, 0x8f, 0x7e, 0xbc, 0x16, 0x25, 0xcb, 0x20, 0xd7, 0x10, 0x7e, 0xf9, 0xdb, 0x0d, 0xa2, 0x87, 0x88, 0x52, 0x3d, 0xe9, 0x91, 0xef, 0x6c, 0x58, 0x66, 0xb1, 0x8d, 0x8d, 0xe8, 0x3a, 0x95, 0x4d, 0x32, 0x81, 0xe0, 0x6d, 0xbf, 0x27, 0xc4, 0xf2, 0x38, 0x2e, 0x08, 0xcd, 0x0e, 0x0f, 0x6e, 0xba, 0xe3, 0xf9, 0x61, 0xb7, 0x7f, 0xce, 0x5a, 0x95, 0xa9, 0xb0, 0x62, 0x1b, 0x75, 0x6f, };
8992 static const u8 ed25519_391_test_vectors_expected_sig[] = {
8993 	0x23, 0xf4, 0xf1, 0x62, 0x7f, 0xba, 0xbd, 0x78, 0x91, 0xd7, 0xd8, 0x48, 0x96, 0x31, 0xc7, 0x23, 0x1d, 0x22, 0xde, 0x71, 0x86, 0x4e, 0x26, 0x2a, 0xb4, 0xda, 0x84, 0xea, 0x8a, 0x13, 0xa6, 0x0f, 0xea, 0xc4, 0xdc, 0xfb, 0x18, 0x12, 0xf1, 0x20, 0x04, 0x44, 0xb7, 0x75, 0xf1, 0x21, 0xd7, 0x26, 0x6d, 0x75, 0x5c, 0xe9, 0xb6, 0xa9, 0xad, 0x79, 0x65, 0x59, 0xc0, 0xa2, 0x6b, 0x51, 0x6d, 0x02, };
8994 static const ec_test_case ed25519_391_test_case = {
8995 	.name = "EDDSA25519-SHA512/wei25519 391",
8996 	.ec_str_p = &wei25519_str_params,
8997 	.priv_key = ed25519_391_test_vectors_priv_key,
8998 	.priv_key_len = sizeof(ed25519_391_test_vectors_priv_key),
8999 	.nn_random = NULL,
9000 	.hash_type = SHA512,
9001 	.msg = (const char *)ed25519_391_test_vectors_message,
9002 	.msglen = sizeof(ed25519_391_test_vectors_message),
9003 	.sig_type = EDDSA25519,
9004 	.exp_sig = ed25519_391_test_vectors_expected_sig,
9005 	.exp_siglen = sizeof(ed25519_391_test_vectors_expected_sig),
9006 	.adata = NULL,
9007 	.adata_len = 0
9008 };
9009 
9010 /************************************************/
9011 static const u8 ed25519_392_test_vectors_priv_key[] = {
9012 	0xe9, 0xf6, 0xd3, 0x1b, 0x93, 0x69, 0x42, 0xc5, 0x26, 0xe0, 0xf9, 0xec, 0x4f, 0x5a, 0x7a, 0xc2, 0x5f, 0xa7, 0x89, 0xe0, 0xc4, 0x34, 0xbc, 0xd9, 0x19, 0x9d, 0x72, 0x0c, 0x74, 0x3c, 0x84, 0xc4, };
9013 static const u8 ed25519_392_test_vectors_message[] = {
9014 	0xe8, 0x81, 0x33, 0xf3, 0xd1, 0x76, 0x42, 0xd5, 0xc2, 0x27, 0x79, 0xa8, 0x53, 0x16, 0xba, 0x0d, 0xf3, 0x4c, 0x79, 0x2b, 0x4e, 0xfe, 0xe4, 0x9e, 0xd7, 0xdd, 0x93, 0xca, 0x33, 0x22, 0xef, 0x47, 0xc7, 0x2e, 0x5b, 0x2e, 0x45, 0x95, 0xc7, 0x78, 0x00, 0x43, 0x4b, 0x60, 0x71, 0x9a, 0xdf, 0x54, 0xe4, 0xc1, 0xa3, 0x4c, 0x89, 0xfa, 0x1e, 0x27, 0xee, 0x8d, 0x35, 0xa0, 0x92, 0x1f, 0x97, 0x55, 0xac, 0x4a, 0x77, 0xa6, 0xc1, 0x68, 0x4e, 0xa0, 0xf5, 0xc8, 0xee, 0x5f, 0x75, 0x9c, 0xe5, 0x9b, 0xfe, 0x83, 0x15, 0x80, 0x0a, 0x67, 0xaa, 0x6c, 0x64, 0xdd, 0xfa, 0xac, 0x92, 0xea, 0xbe, 0x6c, 0x2c, 0x61, 0x37, 0x79, 0x78, 0x4b, 0x3a, 0xff, 0xaf, 0xcc, 0x62, 0x0f, 0x2a, 0x6d, 0xc5, 0xcb, 0x8d, 0x8d, 0xc7, 0xd7, 0x4a, 0xa4, 0xd7, 0x94, 0x94, 0x67, 0x84, 0x94, 0xe5, 0xe6, 0x39, 0x4c, 0x43, 0x3c, 0x14, 0x80, 0x9f, 0xf4, 0x0c, 0x9a, 0x59, 0x2d, 0x0d, 0x69, 0x4a, 0x81, 0x10, 0x3b, 0x44, 0x53, 0x1e, 0x1f, 0x48, 0xbc, 0x13, 0x96, 0x5d, 0x15, 0xaf, 0x8b, 0xf3, 0x34, 0x04, 0x88, 0xf8, 0xcd, 0x58, 0xf0, 0x9a, 0xe1, 0xa6, 0x61, 0x6b, 0xf8, 0x5a, 0xc9, 0xde, 0x7e, 0x0c, 0x66, 0x96, 0xaa, 0x2f, 0x1b, 0xec, 0x15, 0xe1, 0x7a, 0x44, 0xda, 0x4a, 0x84, 0xed, 0xb4, 0xec, 0x6d, 0x77, 0x24, 0x77, 0x88, 0xba, 0x0d, 0xe3, 0xae, 0x12, 0xa1, 0x55, 0xcb, 0xed, 0xc0, 0xda, 0x2f, 0x56, 0x8e, 0xef, 0x0b, 0x75, 0xa8, 0x77, 0xea, 0x5b, 0x0c, 0x2c, 0x0d, 0x4b, 0xf2, 0xc6, 0x1d, 0x46, 0x8a, 0x46, 0xfa, 0xad, 0xfa, 0xec, 0xe3, 0x5f, 0xc2, 0x63, 0xa9, 0xbe, 0x99, 0x87, 0xf4, 0xf7, 0xf7, 0x8f, 0x05, 0xc7, 0x07, 0x78, 0x43, 0x78, 0xc7, 0xb8, 0xf7, 0xda, 0xf9, 0xac, 0x3a, 0x12, 0x2a, 0xad, 0x39, 0xa1, 0x67, 0x79, 0x66, 0xda, 0x9e, 0xf2, 0x86, 0xc9, 0xe0, 0x62, 0xc4, 0xf4, 0x39, 0xad, 0x0b, 0xdd, 0xea, 0x26, 0xe5, 0x4b, 0x2f, 0x73, 0x88, 0xe2, 0x38, 0xb2, 0xa6, 0x49, 0x28, 0x45, 0x0d, 0x34, 0x56, 0x4c, 0x5a, 0x44, 0x7e, 0x7a, 0xfb, 0xbe, 0xdd, 0x10, 0x85, 0xf1, 0xf2, 0x4c, 0x11, 0xae, 0x08, 0x43, 0x22, 0xd1, 0xa3, 0x2c, 0xf8, 0xaa, 0x47, 0x39, 0x41, 0xf0, 0x0d, 0x56, 0xb1, 0x61, 0x82, 0x13, 0xca, 0xb3, 0x90, 0x0a, 0xa6, 0x06, 0x46, 0x3d, 0x9f, 0x80, 0x0e, 0x92, 0x6f, 0x9f, 0x42, 0xd4, 0xb0, 0x82, 0xd8, 0xc5, 0xec, 0x3a, 0x4a, 0x02, 0x5b, 0x45, 0xf9, 0xaa, 0xdc, 0x8b, 0xcb, 0xd1, 0x70, 0x91, 0xb3, 0xda, 0x49, 0xe9, 0x45, 0x3d, 0xc5, 0x5e, 0x89, 0xb5, 0xb5, 0xfe, 0x6b, 0x31, 0xf5, 0xed, 0xda, 0xd1, 0x0b, 0x66, 0x01, 0x57, 0x25, 0x68, 0xd8, 0xe2, 0x05, 0xd3, 0x25, 0x1a, };
9015 static const u8 ed25519_392_test_vectors_expected_sig[] = {
9016 	0x7e, 0x3b, 0x1c, 0x4c, 0x71, 0x6c, 0x80, 0x8e, 0x90, 0xb9, 0x74, 0x45, 0x89, 0x15, 0xf3, 0xb2, 0x23, 0x9c, 0x42, 0x07, 0x71, 0x19, 0xfe, 0x27, 0x07, 0x88, 0xfa, 0xe5, 0x20, 0x57, 0x8b, 0xd7, 0xda, 0x64, 0x88, 0x04, 0x41, 0x32, 0xe1, 0xbe, 0xf2, 0x3e, 0x3b, 0x23, 0xc3, 0x4d, 0x9c, 0x18, 0x62, 0x74, 0x4f, 0x28, 0xfc, 0xae, 0xcd, 0xa6, 0xca, 0xc0, 0xfd, 0x72, 0xb9, 0x3b, 0x6a, 0x0f, };
9017 static const ec_test_case ed25519_392_test_case = {
9018 	.name = "EDDSA25519-SHA512/wei25519 392",
9019 	.ec_str_p = &wei25519_str_params,
9020 	.priv_key = ed25519_392_test_vectors_priv_key,
9021 	.priv_key_len = sizeof(ed25519_392_test_vectors_priv_key),
9022 	.nn_random = NULL,
9023 	.hash_type = SHA512,
9024 	.msg = (const char *)ed25519_392_test_vectors_message,
9025 	.msglen = sizeof(ed25519_392_test_vectors_message),
9026 	.sig_type = EDDSA25519,
9027 	.exp_sig = ed25519_392_test_vectors_expected_sig,
9028 	.exp_siglen = sizeof(ed25519_392_test_vectors_expected_sig),
9029 	.adata = NULL,
9030 	.adata_len = 0
9031 };
9032 
9033 /************************************************/
9034 static const u8 ed25519_393_test_vectors_priv_key[] = {
9035 	0x6b, 0xf4, 0xca, 0xaa, 0xbb, 0x96, 0x85, 0x4a, 0x38, 0xa5, 0x72, 0xf4, 0xce, 0x6c, 0x78, 0x38, 0xf7, 0xe7, 0x50, 0x11, 0x8c, 0x73, 0xf2, 0x72, 0x35, 0x82, 0x61, 0x8e, 0x23, 0x07, 0xf8, 0x38, };
9036 static const u8 ed25519_393_test_vectors_message[] = {
9037 	0x47, 0x76, 0xe9, 0xd6, 0x00, 0x85, 0x48, 0x1f, 0xa5, 0x37, 0xbf, 0x29, 0x5b, 0xda, 0xbd, 0x8b, 0x1c, 0xf6, 0x32, 0xa8, 0xcd, 0x40, 0xbc, 0xe6, 0xbd, 0x32, 0x5c, 0x12, 0x9f, 0x97, 0x70, 0x00, 0xe8, 0x84, 0x68, 0xeb, 0xf2, 0xdc, 0x15, 0x8a, 0xc0, 0xf2, 0x07, 0x21, 0x2d, 0xb0, 0x0f, 0xb6, 0x0b, 0x8e, 0xc8, 0xba, 0xe2, 0x29, 0x37, 0x2e, 0x9a, 0x6b, 0x01, 0x53, 0x0a, 0x7e, 0xd1, 0xbc, 0x9d, 0x38, 0x9e, 0xc8, 0x91, 0x3f, 0x59, 0x03, 0x0d, 0x5b, 0x54, 0xaf, 0x56, 0xae, 0x1c, 0xcc, 0x28, 0xf3, 0x7c, 0xc9, 0x6a, 0x8e, 0x53, 0x20, 0x4e, 0x92, 0xa6, 0x77, 0x76, 0x6a, 0xdf, 0xaa, 0xda, 0x99, 0xb0, 0x28, 0x1f, 0x86, 0x7f, 0x61, 0xac, 0x9f, 0xf7, 0xd9, 0x72, 0xee, 0x3e, 0xd4, 0x27, 0xd7, 0x2f, 0xaa, 0xe7, 0x5d, 0x4a, 0xec, 0x01, 0xb5, 0xff, 0xc3, 0x70, 0x61, 0xb6, 0xf0, 0xf7, 0xe5, 0x71, 0x4c, 0x4c, 0xf3, 0x0d, 0x5b, 0x73, 0x1b, 0x07, 0x46, 0x06, 0x5f, 0x19, 0xe4, 0xc8, 0x92, 0x2d, 0xde, 0x64, 0x2f, 0x80, 0xfe, 0x24, 0xa3, 0xc8, 0xdc, 0xb2, 0xe5, 0xf1, 0xc2, 0x66, 0xe2, 0xaf, 0x6c, 0x37, 0xde, 0xcf, 0x55, 0xa2, 0xba, 0xa5, 0x4f, 0x0d, 0x5c, 0xf0, 0x83, 0x93, 0x70, 0xc3, 0xe0, 0xb4, 0xe7, 0x7a, 0x4f, 0x36, 0xbb, 0xb3, 0x16, 0x20, 0x14, 0x93, 0x3a, 0x4a, 0x4e, 0xbc, 0xae, 0x8c, 0x60, 0x96, 0x1a, 0xc6, 0xdc, 0xf1, 0x34, 0xf3, 0x08, 0x28, 0xd3, 0x14, 0x02, 0xae, 0x74, 0xe7, 0xe8, 0x51, 0x3c, 0x9d, 0x2a, 0xd8, 0xee, 0x46, 0xb7, 0xa9, 0xd5, 0x3a, 0x1f, 0x87, 0xeb, 0xfc, 0xe0, 0x4f, 0x46, 0x1b, 0xde, 0xd1, 0x74, 0x9b, 0x6f, 0xc4, 0xc4, 0xf2, 0x57, 0x93, 0x52, 0x56, 0x92, 0xd7, 0xa0, 0xe4, 0x26, 0xc8, 0x4e, 0x06, 0x08, 0x2c, 0xc3, 0xe6, 0xab, 0xb5, 0x13, 0x68, 0x37, 0x0c, 0xbb, 0x10, 0x6c, 0x7a, 0x08, 0x97, 0xf6, 0x6d, 0x92, 0xc9, 0x73, 0x9c, 0xff, 0x9f, 0x27, 0x06, 0xd6, 0xa2, 0x98, 0x0e, 0xce, 0xa3, 0xac, 0x49, 0x45, 0xf0, 0xf4, 0x7e, 0x65, 0x6b, 0xd9, 0x63, 0x77, 0x77, 0xe8, 0x53, 0xd2, 0xa8, 0x39, 0x10, 0x43, 0x27, 0xdc, 0x04, 0x9e, 0xbc, 0x34, 0xf0, 0x49, 0xd6, 0xc2, 0xf8, 0x0e, 0xca, 0x99, 0xdb, 0x7b, 0x41, 0x84, 0x24, 0xac, 0xef, 0x75, 0x22, 0x60, 0xd2, 0xd4, 0x27, 0x94, 0x93, 0x23, 0x99, 0x7c, 0xd9, 0x61, 0x7e, 0xdf, 0x50, 0xd4, 0x41, 0xd0, 0x08, 0x8b, 0x1d, 0x47, 0x91, 0x2e, 0x35, 0xcf, 0x54, 0x23, 0x15, 0x26, 0x58, 0x29, 0xf3, 0x83, 0xf4, 0x58, 0x60, 0xd3, 0xb4, 0x5e, 0x73, 0x5b, 0xb2, 0xf8, 0x58, 0x6d, 0xcf, 0x58, 0xdb, 0x4f, 0x2a, 0xcf, 0xb4, 0xa6, 0x88, 0x53, 0xa9, 0x6e, 0xed, 0x7b, 0x89, 0x76, 0x9d, 0x36, 0x56, 0x13, };
9038 static const u8 ed25519_393_test_vectors_expected_sig[] = {
9039 	0xd2, 0x11, 0x3f, 0x80, 0xd6, 0xcf, 0x92, 0x84, 0x86, 0xa2, 0x50, 0xa6, 0x79, 0xd6, 0xe7, 0x4b, 0x35, 0xea, 0x9d, 0x26, 0x06, 0x1f, 0xa9, 0x4d, 0x76, 0x9e, 0x1a, 0x8f, 0xbf, 0xa0, 0xa7, 0x34, 0x22, 0x7f, 0x55, 0x53, 0x7e, 0x4e, 0xbf, 0xf5, 0x93, 0x36, 0xdb, 0x14, 0x1c, 0xf5, 0xd6, 0xd4, 0x82, 0xa0, 0x71, 0x1f, 0x1e, 0x9f, 0xc7, 0x2f, 0xf7, 0x09, 0x56, 0xa1, 0x1b, 0x4f, 0xb9, 0x09, };
9040 static const ec_test_case ed25519_393_test_case = {
9041 	.name = "EDDSA25519-SHA512/wei25519 393",
9042 	.ec_str_p = &wei25519_str_params,
9043 	.priv_key = ed25519_393_test_vectors_priv_key,
9044 	.priv_key_len = sizeof(ed25519_393_test_vectors_priv_key),
9045 	.nn_random = NULL,
9046 	.hash_type = SHA512,
9047 	.msg = (const char *)ed25519_393_test_vectors_message,
9048 	.msglen = sizeof(ed25519_393_test_vectors_message),
9049 	.sig_type = EDDSA25519,
9050 	.exp_sig = ed25519_393_test_vectors_expected_sig,
9051 	.exp_siglen = sizeof(ed25519_393_test_vectors_expected_sig),
9052 	.adata = NULL,
9053 	.adata_len = 0
9054 };
9055 
9056 /************************************************/
9057 static const u8 ed25519_394_test_vectors_priv_key[] = {
9058 	0x5d, 0x95, 0x85, 0x73, 0x6a, 0xb2, 0x09, 0xb0, 0xab, 0xe8, 0xbf, 0x74, 0xac, 0xa4, 0xee, 0xa4, 0xf6, 0xd1, 0x65, 0x0b, 0x53, 0x25, 0x50, 0xa2, 0x23, 0xe0, 0x44, 0x58, 0x0f, 0x8e, 0x20, 0xde, };
9059 static const u8 ed25519_394_test_vectors_message[] = {
9060 	0x08, 0x69, 0x35, 0x91, 0xe6, 0xc5, 0x8a, 0x5e, 0xad, 0x9c, 0x85, 0xfe, 0x8e, 0xc5, 0x85, 0x08, 0xf8, 0x1a, 0x34, 0x67, 0x63, 0x6c, 0x2d, 0x34, 0xfc, 0xc1, 0xf4, 0x66, 0xe5, 0xc6, 0xda, 0xfd, 0xc3, 0x7c, 0x35, 0xcb, 0xee, 0x35, 0x58, 0x9c, 0x69, 0x97, 0xe2, 0xb1, 0x54, 0x48, 0x13, 0x27, 0x44, 0xe5, 0xa1, 0xe1, 0x31, 0xbb, 0x49, 0xbf, 0x5c, 0x25, 0x63, 0xf8, 0x7e, 0xad, 0x3e, 0xfe, 0x01, 0xe8, 0x8c, 0xbf, 0x24, 0xcc, 0x17, 0x69, 0xc7, 0x8c, 0xdf, 0xc1, 0x67, 0xe3, 0x78, 0x21, 0x5b, 0x15, 0x85, 0x9c, 0x7a, 0x28, 0xec, 0xe7, 0x0e, 0x18, 0x8f, 0xa3, 0x30, 0x26, 0x7d, 0x3f, 0xc5, 0x7b, 0x4a, 0xce, 0x6c, 0x15, 0x20, 0xec, 0x67, 0x87, 0x50, 0x67, 0xfd, 0x33, 0xbe, 0x86, 0xf4, 0xa1, 0x96, 0x7a, 0xfb, 0x3e, 0xb1, 0x64, 0xc7, 0x97, 0xcf, 0x28, 0xd8, 0x07, 0x2a, 0xa6, 0x9d, 0x82, 0xaf, 0xa3, 0x83, 0x74, 0xf8, 0xe5, 0x79, 0x7c, 0x4c, 0x28, 0x47, 0x1b, 0x7d, 0x69, 0xf5, 0xb9, 0xc7, 0xb4, 0xac, 0xdb, 0xc1, 0x9f, 0x3c, 0x5c, 0x5d, 0x40, 0x08, 0x08, 0xa9, 0x82, 0xa4, 0x78, 0x37, 0xae, 0xd1, 0xb3, 0x84, 0x1d, 0x69, 0x89, 0x0e, 0xeb, 0x31, 0x49, 0x4e, 0x10, 0xe3, 0xe5, 0x13, 0xd1, 0x2d, 0x0c, 0xa6, 0x86, 0xc7, 0xce, 0x65, 0x17, 0x78, 0x09, 0x27, 0x03, 0xfe, 0xf0, 0xdc, 0xc0, 0x21, 0x40, 0x77, 0xdf, 0xb3, 0x61, 0x25, 0x1b, 0xde, 0xa4, 0x36, 0x4d, 0xd4, 0x1b, 0x97, 0xbc, 0xeb, 0x0f, 0xb1, 0x47, 0x5a, 0x50, 0xe4, 0x70, 0x8f, 0x47, 0xf7, 0x87, 0x8c, 0x74, 0x40, 0x1e, 0x97, 0x71, 0xcc, 0x3f, 0xce, 0xac, 0xe8, 0x91, 0x69, 0x98, 0x1a, 0xa7, 0x72, 0x50, 0x85, 0x00, 0x90, 0xd1, 0x81, 0xd8, 0x35, 0x8e, 0xbb, 0xa6, 0x5e, 0x29, 0x0a, 0xcb, 0x03, 0x52, 0xbe, 0xce, 0x8c, 0x57, 0x98, 0x32, 0xa6, 0x01, 0x55, 0x18, 0x16, 0xd1, 0xc0, 0x56, 0x21, 0xcc, 0xbb, 0xee, 0x0f, 0xbe, 0x39, 0xea, 0x2f, 0x19, 0x53, 0x93, 0x19, 0x9e, 0x69, 0xc2, 0x34, 0xc2, 0xfb, 0x1c, 0x37, 0xe4, 0x74, 0x84, 0x08, 0x60, 0xce, 0x60, 0x91, 0x61, 0xfc, 0xfc, 0xe2, 0x86, 0x95, 0x74, 0xbe, 0x0d, 0x38, 0xf9, 0x5e, 0x20, 0xf4, 0xf8, 0x72, 0x52, 0x47, 0xb9, 0x62, 0x7b, 0x46, 0xe8, 0x34, 0x90, 0x51, 0x01, 0xac, 0x12, 0xb9, 0x34, 0xcb, 0xf8, 0x7c, 0xb2, 0xd1, 0x90, 0xd2, 0xf5, 0x14, 0x90, 0xa8, 0x2c, 0x4e, 0x81, 0x0e, 0xdd, 0xb8, 0x1f, 0x95, 0x6a, 0x9f, 0x36, 0xbd, 0xa4, 0x97, 0xbc, 0xa5, 0x06, 0xa4, 0x9e, 0xe9, 0xcd, 0x47, 0xfd, 0xa5, 0xb7, 0xf2, 0xb8, 0x84, 0xa3, 0x64, 0x8c, 0xad, 0xd1, 0x2a, 0xb6, 0x18, 0x98, 0xad, 0xa4, 0x6e, 0xcc, 0x97, 0x0f, 0x81, 0xdc, 0x9f, 0x87, 0x68, 0x45, 0xdb, };
9061 static const u8 ed25519_394_test_vectors_expected_sig[] = {
9062 	0xe7, 0xb0, 0x8e, 0x1d, 0x58, 0x09, 0xfd, 0xd8, 0x52, 0x94, 0x43, 0xd6, 0x5a, 0xda, 0x5d, 0xd6, 0x55, 0xea, 0x55, 0xb5, 0x41, 0x5a, 0x01, 0x13, 0x93, 0xbe, 0x70, 0x71, 0x67, 0x64, 0x86, 0xd3, 0x58, 0xe8, 0xd2, 0xa4, 0x60, 0xeb, 0xe0, 0x75, 0xb0, 0xe7, 0x01, 0xb2, 0x4c, 0x9e, 0x3a, 0xb5, 0xf2, 0xb0, 0x33, 0x59, 0x2d, 0x4d, 0xe3, 0xb7, 0xf3, 0x7f, 0xd5, 0x41, 0xf6, 0x92, 0x09, 0x09, };
9063 static const ec_test_case ed25519_394_test_case = {
9064 	.name = "EDDSA25519-SHA512/wei25519 394",
9065 	.ec_str_p = &wei25519_str_params,
9066 	.priv_key = ed25519_394_test_vectors_priv_key,
9067 	.priv_key_len = sizeof(ed25519_394_test_vectors_priv_key),
9068 	.nn_random = NULL,
9069 	.hash_type = SHA512,
9070 	.msg = (const char *)ed25519_394_test_vectors_message,
9071 	.msglen = sizeof(ed25519_394_test_vectors_message),
9072 	.sig_type = EDDSA25519,
9073 	.exp_sig = ed25519_394_test_vectors_expected_sig,
9074 	.exp_siglen = sizeof(ed25519_394_test_vectors_expected_sig),
9075 	.adata = NULL,
9076 	.adata_len = 0
9077 };
9078 
9079 /************************************************/
9080 static const u8 ed25519_395_test_vectors_priv_key[] = {
9081 	0x60, 0xb1, 0x42, 0xf1, 0x65, 0x11, 0x41, 0x43, 0xca, 0x30, 0xa6, 0x04, 0xfe, 0xf5, 0x1c, 0x68, 0x64, 0x36, 0xaa, 0x1b, 0x9a, 0xfd, 0xb2, 0x66, 0xb3, 0xe3, 0x98, 0xcc, 0xb3, 0xc4, 0xd8, 0x55, };
9082 static const u8 ed25519_395_test_vectors_message[] = {
9083 	0x18, 0x15, 0xde, 0xe1, 0x17, 0x3b, 0x78, 0x26, 0x47, 0x20, 0xd3, 0x5b, 0x7c, 0xc2, 0x45, 0x4a, 0x00, 0x0a, 0x65, 0xff, 0xf2, 0x14, 0xe2, 0x47, 0x3e, 0x20, 0xbc, 0x83, 0xf3, 0xec, 0xde, 0x9c, 0x04, 0xc1, 0xe0, 0x69, 0x6c, 0xe6, 0xe5, 0x55, 0x19, 0xdd, 0x2a, 0x75, 0xce, 0x04, 0x64, 0xbf, 0x60, 0x1a, 0xdc, 0x38, 0x1e, 0x79, 0x3e, 0xcb, 0x9f, 0x8c, 0xe7, 0xab, 0x87, 0xb6, 0xca, 0x2a, 0x3e, 0x41, 0x0f, 0x63, 0x90, 0x69, 0x45, 0x19, 0x78, 0xd1, 0x48, 0x73, 0xd3, 0x39, 0x0f, 0xab, 0x86, 0x23, 0x96, 0x97, 0x13, 0xc3, 0xdf, 0xcd, 0x58, 0xd8, 0x6d, 0x12, 0x40, 0x73, 0x76, 0x1e, 0xe0, 0x9a, 0x65, 0x2a, 0x48, 0x76, 0x7f, 0x96, 0x46, 0xcb, 0x72, 0x6a, 0xc4, 0x54, 0xac, 0x9a, 0x1b, 0xc5, 0xfa, 0xed, 0x30, 0x26, 0xb7, 0x03, 0x98, 0x2b, 0xc2, 0xb1, 0xe0, 0x75, 0x82, 0x10, 0xe1, 0xd6, 0x25, 0x19, 0x23, 0x0e, 0xb2, 0xb2, 0xf4, 0xa4, 0x86, 0xbc, 0x55, 0x16, 0x85, 0x60, 0xc4, 0x36, 0x3d, 0xf5, 0xff, 0x5a, 0xdf, 0xda, 0x11, 0xac, 0x7e, 0xf5, 0x1b, 0x18, 0x19, 0x6c, 0x94, 0x33, 0x7c, 0x07, 0xae, 0xf1, 0x17, 0x99, 0x0f, 0x77, 0x0c, 0x0f, 0x1e, 0x8c, 0x0f, 0x88, 0xeb, 0x6f, 0xfc, 0x40, 0xe8, 0xed, 0x7c, 0x3a, 0x80, 0xa6, 0x32, 0xdb, 0x1e, 0x7f, 0x63, 0xb6, 0x30, 0x96, 0xe2, 0xac, 0x49, 0xe5, 0x77, 0x92, 0xb3, 0x11, 0x43, 0xe2, 0xf4, 0xfa, 0xab, 0xce, 0xae, 0x66, 0xb2, 0x74, 0x71, 0x68, 0x1c, 0x36, 0xfc, 0x11, 0x39, 0x00, 0x7f, 0x9b, 0x54, 0x8c, 0xdc, 0x6e, 0x3b, 0x8f, 0xbb, 0xda, 0xba, 0x7a, 0x8a, 0xdb, 0x84, 0x34, 0x31, 0x23, 0x8b, 0xb4, 0x61, 0xba, 0x24, 0xf6, 0xe0, 0x9f, 0x62, 0xc7, 0x2d, 0x63, 0x77, 0xb4, 0x04, 0x8c, 0xb0, 0x13, 0x4c, 0x25, 0xa5, 0x41, 0x1a, 0x20, 0xbf, 0xcf, 0xc1, 0x3e, 0x48, 0xd8, 0x0e, 0x36, 0xbf, 0xb0, 0xda, 0x7e, 0x01, 0x85, 0xd3, 0x3f, 0x19, 0x28, 0x63, 0x6e, 0x15, 0xde, 0xe0, 0xe5, 0xdf, 0x89, 0x92, 0xa1, 0x65, 0x72, 0xb1, 0x3e, 0xa8, 0xf7, 0xcf, 0x85, 0xca, 0xe3, 0x2d, 0x52, 0x9f, 0x66, 0xe8, 0xf6, 0xd2, 0xfb, 0x2a, 0xd0, 0xbb, 0xfe, 0x71, 0x99, 0x16, 0x9b, 0x25, 0x67, 0xba, 0x00, 0xc7, 0x81, 0xb2, 0x0a, 0x48, 0xe1, 0xd7, 0x0d, 0xf9, 0xfa, 0x31, 0x19, 0xcd, 0x7e, 0x5b, 0xbe, 0x58, 0x88, 0x4b, 0x0b, 0x51, 0x21, 0x89, 0x40, 0xfa, 0x81, 0x5f, 0x85, 0x62, 0x5f, 0xa2, 0x03, 0x47, 0x1c, 0xee, 0x80, 0x84, 0x78, 0x0e, 0xb0, 0xb9, 0x35, 0x6f, 0x9f, 0x3d, 0x4f, 0x6d, 0xf7, 0x40, 0x30, 0x1d, 0x70, 0x7e, 0xf1, 0xff, 0xb3, 0x51, 0x9e, 0x3f, 0x90, 0xb8, 0x06, 0x4b, 0x98, 0xe7, 0x0f, 0x37, 0x5d, 0x07, 0x14, 0x26, 0x88, 0x17, 0x18, };
9084 static const u8 ed25519_395_test_vectors_expected_sig[] = {
9085 	0xa6, 0x21, 0xf0, 0x84, 0xea, 0x1a, 0x36, 0xef, 0x81, 0x2a, 0x97, 0x55, 0xc9, 0xaf, 0xbb, 0x53, 0xda, 0xda, 0xae, 0x6b, 0x3a, 0x53, 0xfa, 0x83, 0x44, 0xca, 0x40, 0xd3, 0x61, 0x2a, 0x26, 0x8a, 0x35, 0xfe, 0xd0, 0xfd, 0x39, 0x8a, 0xb7, 0x5b, 0xcd, 0x63, 0x9c, 0x54, 0x79, 0x37, 0xc9, 0x41, 0x55, 0xab, 0x1a, 0x7a, 0x34, 0x67, 0xdd, 0x4b, 0xfd, 0xdf, 0xac, 0xab, 0x16, 0x55, 0xe9, 0x08, };
9086 static const ec_test_case ed25519_395_test_case = {
9087 	.name = "EDDSA25519-SHA512/wei25519 395",
9088 	.ec_str_p = &wei25519_str_params,
9089 	.priv_key = ed25519_395_test_vectors_priv_key,
9090 	.priv_key_len = sizeof(ed25519_395_test_vectors_priv_key),
9091 	.nn_random = NULL,
9092 	.hash_type = SHA512,
9093 	.msg = (const char *)ed25519_395_test_vectors_message,
9094 	.msglen = sizeof(ed25519_395_test_vectors_message),
9095 	.sig_type = EDDSA25519,
9096 	.exp_sig = ed25519_395_test_vectors_expected_sig,
9097 	.exp_siglen = sizeof(ed25519_395_test_vectors_expected_sig),
9098 	.adata = NULL,
9099 	.adata_len = 0
9100 };
9101 
9102 /************************************************/
9103 static const u8 ed25519_396_test_vectors_priv_key[] = {
9104 	0x73, 0x4b, 0xa4, 0x70, 0x33, 0xc6, 0x14, 0x02, 0x32, 0xdd, 0x4a, 0x7a, 0x14, 0xf1, 0xa7, 0x74, 0x3e, 0xef, 0xe9, 0x07, 0x0b, 0xad, 0x96, 0x62, 0x49, 0x16, 0x30, 0xcc, 0x9d, 0x28, 0xc1, 0xf3, };
9105 static const u8 ed25519_396_test_vectors_message[] = {
9106 	0x5d, 0x3c, 0x65, 0x98, 0x10, 0xc3, 0xfe, 0xa5, 0x2a, 0x6d, 0xf3, 0x86, 0x1e, 0x5c, 0xdc, 0x5b, 0x70, 0x3c, 0xc1, 0xce, 0xf4, 0x85, 0x58, 0xc6, 0x1d, 0x8c, 0x51, 0xd0, 0xed, 0xea, 0x5a, 0x14, 0x79, 0xcf, 0xe5, 0x06, 0x3d, 0x82, 0xde, 0xd9, 0xca, 0x68, 0x1e, 0x57, 0x48, 0x88, 0x7c, 0x40, 0xec, 0xfb, 0x9e, 0x1a, 0x9a, 0x8b, 0x7f, 0x85, 0x09, 0xd1, 0x07, 0x76, 0x46, 0x1c, 0x39, 0x23, 0x39, 0x96, 0x93, 0xa7, 0x81, 0x89, 0x08, 0x91, 0x78, 0xd5, 0xaa, 0xbd, 0x15, 0xf8, 0xc8, 0x46, 0x64, 0x2b, 0xe4, 0x7d, 0x6d, 0x4c, 0xaf, 0x13, 0x82, 0x4e, 0xdc, 0xef, 0xb8, 0x09, 0x86, 0x8f, 0xa7, 0x2d, 0xdf, 0x03, 0x5c, 0x4d, 0xe8, 0xef, 0x0a, 0x9c, 0x83, 0x22, 0x64, 0xf6, 0x6f, 0x01, 0x27, 0x61, 0xce, 0x69, 0x55, 0xbc, 0x3c, 0x41, 0x6e, 0x93, 0xe2, 0x91, 0x88, 0x02, 0x5e, 0xbb, 0xb1, 0x3a, 0x55, 0x32, 0x58, 0xc1, 0xd7, 0xc4, 0x99, 0xc9, 0xa4, 0xae, 0xb1, 0x0b, 0xb3, 0x6f, 0x61, 0xd1, 0xbb, 0x4c, 0xec, 0x5a, 0xe5, 0x5d, 0x17, 0x57, 0x22, 0xb9, 0xa9, 0x69, 0x6d, 0xf8, 0x81, 0x95, 0x1e, 0x35, 0x20, 0x0b, 0x96, 0x53, 0xcf, 0x6e, 0xd4, 0xb3, 0xd1, 0x5d, 0xe0, 0x87, 0xa9, 0xd1, 0xc3, 0x19, 0xfc, 0xe8, 0x58, 0x21, 0x56, 0xbe, 0xbf, 0x3f, 0xc9, 0x1e, 0x0e, 0x61, 0x0f, 0xf7, 0xa1, 0x53, 0x08, 0xfd, 0x1d, 0x2c, 0x60, 0x69, 0xfb, 0xbb, 0x29, 0x47, 0xd3, 0x11, 0x07, 0x31, 0xd2, 0x45, 0xae, 0x29, 0x63, 0x01, 0x4b, 0xd7, 0x6d, 0xea, 0x42, 0xdb, 0x12, 0x5c, 0xec, 0xc4, 0x93, 0xc8, 0xe9, 0x09, 0x1a, 0x76, 0x64, 0x65, 0x77, 0x72, 0x9a, 0xed, 0x49, 0x66, 0xfc, 0xe9, 0x69, 0x9f, 0xe1, 0x2e, 0x36, 0x7d, 0x66, 0x5d, 0xf9, 0xe9, 0x5a, 0x91, 0x93, 0xe1, 0x13, 0x3e, 0x14, 0x3a, 0xf9, 0x2f, 0x82, 0xb6, 0x6a, 0xc7, 0x76, 0x4e, 0x50, 0x33, 0x17, 0x86, 0x90, 0x52, 0x18, 0x09, 0xa7, 0x10, 0x7d, 0x8a, 0xe9, 0xb8, 0x8e, 0x0e, 0xd1, 0xf3, 0x5b, 0x17, 0x19, 0x90, 0x1b, 0x93, 0x0a, 0xd0, 0xe1, 0xcb, 0xce, 0x7f, 0xb3, 0x02, 0x67, 0xb1, 0x15, 0x52, 0x04, 0xf6, 0x05, 0xf5, 0x25, 0xe4, 0x9d, 0xe2, 0x98, 0x8e, 0xa7, 0xf7, 0x4b, 0xe8, 0x81, 0x51, 0x77, 0xfd, 0x97, 0x6a, 0x1b, 0xcc, 0x12, 0x6d, 0x9c, 0x9c, 0x13, 0x5c, 0x5b, 0x42, 0x76, 0xd3, 0x80, 0x19, 0xc3, 0x4a, 0xef, 0xb7, 0xa0, 0x22, 0x0f, 0x7f, 0x5a, 0xef, 0xf3, 0x80, 0xae, 0xd6, 0x27, 0xb0, 0x70, 0xc2, 0xc9, 0xe2, 0x15, 0x33, 0xbb, 0x35, 0xc0, 0x8e, 0x39, 0x4c, 0x85, 0xae, 0x25, 0xe6, 0x86, 0x29, 0x42, 0x59, 0x9c, 0x65, 0xdb, 0xae, 0x59, 0x77, 0xa5, 0x84, 0xa8, 0x81, 0x80, 0xe0, 0xc8, 0xc7, 0x1e, 0x5a, 0x84, 0x09, 0xe0, 0x4e, 0xf7, };
9107 static const u8 ed25519_396_test_vectors_expected_sig[] = {
9108 	0x9b, 0xd0, 0x74, 0xd1, 0xd0, 0xbd, 0x28, 0x00, 0x1b, 0xaf, 0x7d, 0x2d, 0x4e, 0x82, 0x43, 0x5d, 0xf0, 0x8c, 0x42, 0x64, 0xd8, 0xcb, 0xb1, 0xc3, 0x81, 0x18, 0x3c, 0x2f, 0x01, 0x22, 0x3f, 0x79, 0xf9, 0x49, 0x23, 0xca, 0x17, 0x8c, 0xac, 0x75, 0x56, 0x4e, 0x16, 0xc7, 0xf5, 0x60, 0x79, 0x08, 0x8f, 0x7e, 0xd8, 0x85, 0xde, 0x4d, 0x50, 0x9f, 0xbc, 0x78, 0xf4, 0x38, 0xfb, 0xa3, 0xf6, 0x07, };
9109 static const ec_test_case ed25519_396_test_case = {
9110 	.name = "EDDSA25519-SHA512/wei25519 396",
9111 	.ec_str_p = &wei25519_str_params,
9112 	.priv_key = ed25519_396_test_vectors_priv_key,
9113 	.priv_key_len = sizeof(ed25519_396_test_vectors_priv_key),
9114 	.nn_random = NULL,
9115 	.hash_type = SHA512,
9116 	.msg = (const char *)ed25519_396_test_vectors_message,
9117 	.msglen = sizeof(ed25519_396_test_vectors_message),
9118 	.sig_type = EDDSA25519,
9119 	.exp_sig = ed25519_396_test_vectors_expected_sig,
9120 	.exp_siglen = sizeof(ed25519_396_test_vectors_expected_sig),
9121 	.adata = NULL,
9122 	.adata_len = 0
9123 };
9124 
9125 /************************************************/
9126 static const u8 ed25519_397_test_vectors_priv_key[] = {
9127 	0x45, 0xe3, 0x4d, 0x0e, 0xf4, 0xc1, 0x96, 0xfa, 0x6d, 0x57, 0x2b, 0x6b, 0x17, 0x74, 0xb5, 0x21, 0x8f, 0x7c, 0x32, 0x91, 0x30, 0x4c, 0x13, 0x50, 0x0d, 0xf7, 0x07, 0x0d, 0x90, 0xe8, 0x03, 0x9e, };
9128 static const u8 ed25519_397_test_vectors_message[] = {
9129 	0x3d, 0x9e, 0xd5, 0xc6, 0x4b, 0x75, 0xe1, 0x35, 0xdf, 0x2f, 0x5e, 0x85, 0x30, 0x0d, 0x90, 0xf2, 0x1b, 0x36, 0x39, 0x35, 0xe2, 0x81, 0x75, 0x56, 0xfc, 0x93, 0x11, 0x75, 0x1b, 0xa7, 0x53, 0x54, 0x77, 0xde, 0xc8, 0x35, 0x6e, 0xc3, 0x85, 0xef, 0xb8, 0x2b, 0x41, 0x40, 0x62, 0xf3, 0x5b, 0xb6, 0xd3, 0xed, 0xea, 0xfd, 0xe3, 0x05, 0xf9, 0x90, 0x0a, 0x25, 0xe9, 0x81, 0x3c, 0x9e, 0xe0, 0x23, 0x7d, 0x46, 0x40, 0x96, 0x50, 0xcd, 0xcd, 0xb5, 0xdf, 0xa2, 0x30, 0x1a, 0x8e, 0x26, 0x47, 0xf8, 0xd3, 0x81, 0x9d, 0x86, 0xf7, 0xb7, 0xe3, 0x07, 0x0d, 0x33, 0x44, 0x0f, 0x82, 0xc4, 0x05, 0x4b, 0x1a, 0xb5, 0xed, 0xeb, 0xeb, 0x27, 0xf9, 0x5b, 0x3c, 0x4c, 0x6f, 0xdd, 0x46, 0x8f, 0x21, 0x60, 0x0f, 0x03, 0xb3, 0x49, 0x4d, 0xa2, 0x00, 0xba, 0xb9, 0x29, 0x3c, 0x38, 0xd0, 0x2f, 0xc4, 0x40, 0x48, 0xe5, 0x2f, 0xf5, 0xfd, 0x0f, 0x72, 0x17, 0xa0, 0x4d, 0x4c, 0xe9, 0x12, 0xa1, 0x80, 0xd1, 0x62, 0x8f, 0x36, 0x82, 0x80, 0xb6, 0x89, 0x26, 0x72, 0xe8, 0xff, 0x98, 0xd4, 0x62, 0x9a, 0xc2, 0x8b, 0x60, 0xc0, 0x2a, 0x30, 0x1e, 0x6c, 0x60, 0x26, 0xc1, 0xb9, 0xe9, 0xef, 0x21, 0xcf, 0x03, 0x92, 0xdf, 0x22, 0x50, 0x08, 0xd5, 0xa0, 0xe0, 0x28, 0x4b, 0x28, 0x26, 0x31, 0xad, 0x17, 0x10, 0xf8, 0x11, 0x61, 0x56, 0x97, 0x06, 0x6c, 0x98, 0x29, 0x65, 0x19, 0x94, 0x8a, 0x7c, 0xfe, 0xd5, 0xae, 0xeb, 0x45, 0x4e, 0xe7, 0xa6, 0x1c, 0xc2, 0x71, 0xbd, 0x3d, 0x49, 0x9b, 0xe1, 0x7d, 0xf0, 0x9d, 0x3a, 0x0e, 0x79, 0x0e, 0xe6, 0xb9, 0xbd, 0x99, 0xe1, 0xb9, 0x19, 0xbe, 0xd4, 0xa0, 0x63, 0xb8, 0xd1, 0xa3, 0x4f, 0x1a, 0xfd, 0x2e, 0x95, 0x2b, 0x9d, 0xfe, 0xfd, 0x77, 0x09, 0x69, 0xc8, 0xb2, 0xfc, 0x37, 0x97, 0x7a, 0xbb, 0x0f, 0xee, 0x63, 0x17, 0x25, 0x3a, 0x23, 0xec, 0xc9, 0x75, 0x78, 0x16, 0x89, 0x73, 0x33, 0x4c, 0x8f, 0x91, 0x76, 0x3a, 0xb9, 0x7f, 0x29, 0xc4, 0x9b, 0xae, 0xee, 0x7b, 0x35, 0xf3, 0xae, 0x7f, 0x5c, 0xd3, 0xa4, 0xa6, 0xe6, 0x97, 0xef, 0x25, 0x5a, 0x3c, 0x2e, 0xc0, 0xc7, 0x52, 0xa3, 0x39, 0x6f, 0x69, 0xf6, 0x63, 0xca, 0x1f, 0xc2, 0xb3, 0x32, 0xdf, 0xe6, 0xc0, 0xfa, 0xf7, 0x8a, 0xfe, 0x9c, 0x68, 0xd9, 0x95, 0x71, 0xe8, 0xe8, 0x96, 0xc5, 0x09, 0x30, 0x85, 0xe9, 0x86, 0x3a, 0x27, 0x64, 0x8a, 0x9e, 0x58, 0xf3, 0xa9, 0xa8, 0x4c, 0xbb, 0xfe, 0x2b, 0x41, 0xca, 0x36, 0x33, 0xdd, 0x5c, 0xf6, 0xe8, 0x2c, 0xb7, 0x7c, 0xec, 0xac, 0xad, 0x8d, 0x78, 0xb3, 0x53, 0xf4, 0x8d, 0xb4, 0x2d, 0x99, 0xc3, 0x6b, 0xca, 0xd1, 0x70, 0xea, 0x9e, 0x98, 0xab, 0xb2, 0x78, 0x8c, 0x33, 0xa3, 0xc7, 0x06, 0x26, 0x8f, 0x36, 0x31, };
9130 static const u8 ed25519_397_test_vectors_expected_sig[] = {
9131 	0xb4, 0x2c, 0x1f, 0x92, 0x5f, 0x4b, 0xac, 0xcd, 0x12, 0x9e, 0xfb, 0x10, 0x9d, 0xb3, 0x54, 0xac, 0xa3, 0x1c, 0x68, 0x98, 0xf4, 0xf4, 0x51, 0x29, 0x47, 0x49, 0xa2, 0x6a, 0x6d, 0xa1, 0x67, 0x7b, 0xd3, 0xa5, 0xc0, 0x41, 0x19, 0xe3, 0x5f, 0x47, 0x31, 0x9f, 0x20, 0xcf, 0xdf, 0xc0, 0x8b, 0xb4, 0x52, 0x8b, 0x21, 0x00, 0x9e, 0x00, 0xbd, 0x41, 0xeb, 0xc0, 0xf4, 0x68, 0x63, 0xbe, 0xd1, 0x0b, };
9132 static const ec_test_case ed25519_397_test_case = {
9133 	.name = "EDDSA25519-SHA512/wei25519 397",
9134 	.ec_str_p = &wei25519_str_params,
9135 	.priv_key = ed25519_397_test_vectors_priv_key,
9136 	.priv_key_len = sizeof(ed25519_397_test_vectors_priv_key),
9137 	.nn_random = NULL,
9138 	.hash_type = SHA512,
9139 	.msg = (const char *)ed25519_397_test_vectors_message,
9140 	.msglen = sizeof(ed25519_397_test_vectors_message),
9141 	.sig_type = EDDSA25519,
9142 	.exp_sig = ed25519_397_test_vectors_expected_sig,
9143 	.exp_siglen = sizeof(ed25519_397_test_vectors_expected_sig),
9144 	.adata = NULL,
9145 	.adata_len = 0
9146 };
9147 
9148 /************************************************/
9149 static const u8 ed25519_398_test_vectors_priv_key[] = {
9150 	0x88, 0x8c, 0xe2, 0xec, 0xce, 0xda, 0x9c, 0xa2, 0xb9, 0x48, 0xac, 0x14, 0x43, 0xc2, 0xae, 0xdd, 0x75, 0x95, 0xaa, 0xcf, 0x36, 0xed, 0xaf, 0x27, 0x25, 0x5b, 0xde, 0x7a, 0x69, 0x91, 0xdc, 0xc0, };
9151 static const u8 ed25519_398_test_vectors_message[] = {
9152 	0x5c, 0x80, 0x1a, 0x8e, 0x66, 0x4e, 0x76, 0x60, 0x76, 0x0a, 0x25, 0xa5, 0xe1, 0x43, 0x1a, 0x62, 0x15, 0x9f, 0xc3, 0xf3, 0xaa, 0x71, 0x37, 0x80, 0xae, 0x7c, 0xbc, 0xe2, 0x3b, 0x85, 0x64, 0x78, 0x27, 0x99, 0xbf, 0x2b, 0xe4, 0x81, 0x7e, 0xe2, 0x92, 0x19, 0x65, 0xba, 0xb7, 0xe1, 0xd4, 0x48, 0x33, 0x82, 0x4c, 0x16, 0x28, 0xd4, 0x2d, 0xce, 0xe3, 0xe4, 0x6a, 0xe4, 0x2b, 0x28, 0x16, 0xd0, 0xa4, 0x32, 0xa1, 0xab, 0x0b, 0xd2, 0x1f, 0xcf, 0x30, 0xad, 0xb6, 0x3d, 0x8d, 0xd7, 0x65, 0x69, 0x54, 0x43, 0x43, 0xd0, 0x03, 0x5c, 0x76, 0x05, 0x22, 0xca, 0x68, 0xbe, 0xa7, 0x2c, 0x40, 0x4e, 0xdd, 0xa1, 0xe9, 0x09, 0x5e, 0xc9, 0x0f, 0x33, 0x25, 0x68, 0x1c, 0x6d, 0xe0, 0xf4, 0xc1, 0x2d, 0x1a, 0xfb, 0xcb, 0xa2, 0xc7, 0x87, 0x1a, 0x1b, 0x1e, 0x1f, 0x19, 0xc3, 0x5b, 0x0b, 0xed, 0x9e, 0xc2, 0xa8, 0x7c, 0x04, 0x3d, 0x36, 0xd8, 0x19, 0x39, 0x6b, 0xd5, 0xd0, 0x99, 0xe1, 0xaa, 0x09, 0x03, 0x91, 0x29, 0x7c, 0x73, 0x3f, 0x65, 0xa8, 0xc5, 0xd2, 0x12, 0x0c, 0x67, 0x63, 0x53, 0x16, 0xfa, 0xb2, 0x5b, 0x4d, 0x48, 0x47, 0xa4, 0x5f, 0xc3, 0xf7, 0x6f, 0x2e, 0x24, 0x26, 0xdb, 0xee, 0x46, 0x29, 0x97, 0x50, 0x62, 0xfc, 0xe1, 0x4e, 0x21, 0x89, 0xdb, 0xa2, 0x7f, 0xb1, 0xde, 0xd2, 0x45, 0x3f, 0x00, 0x1d, 0xeb, 0xfa, 0xa8, 0x99, 0xc1, 0x16, 0x60, 0x61, 0x2d, 0x2c, 0xe2, 0xad, 0x2f, 0x76, 0x2e, 0xa5, 0xde, 0xe7, 0xe7, 0x1e, 0x58, 0xad, 0xcd, 0xce, 0xfa, 0x79, 0xe8, 0xe8, 0xb2, 0x7f, 0xc4, 0xcc, 0xf8, 0x9a, 0xab, 0xf1, 0x76, 0xb5, 0xd3, 0x4f, 0x82, 0xdd, 0x15, 0xd8, 0x89, 0xf9, 0xf0, 0x87, 0xdc, 0x9a, 0xe8, 0xa4, 0x2a, 0x72, 0xf3, 0xb8, 0x35, 0x83, 0x61, 0x6e, 0x17, 0x06, 0x37, 0xcd, 0x1a, 0xdf, 0x38, 0xaa, 0x65, 0x51, 0xcb, 0xac, 0xca, 0x36, 0x02, 0xbd, 0xc7, 0xae, 0x21, 0x0c, 0x4a, 0x44, 0x6b, 0x3a, 0xf8, 0xdb, 0x27, 0x20, 0xe5, 0x49, 0xbb, 0xed, 0xb8, 0xbe, 0xd2, 0x15, 0xae, 0x00, 0xf1, 0x9d, 0xa2, 0x9d, 0x8f, 0xb0, 0xb6, 0x42, 0xd2, 0x7b, 0x2d, 0x88, 0x57, 0x5f, 0x0e, 0xe8, 0x4f, 0x3d, 0x12, 0x9e, 0xb7, 0x74, 0xd2, 0x0f, 0x53, 0x7a, 0x1c, 0x0f, 0xdc, 0xf7, 0x17, 0xbd, 0xeb, 0xcf, 0xe4, 0x7f, 0x83, 0x31, 0xa3, 0x41, 0x86, 0x43, 0x46, 0xfa, 0x6a, 0x1c, 0x6b, 0xbf, 0xd1, 0x78, 0x81, 0x9e, 0x38, 0x7a, 0x0d, 0x54, 0x99, 0xa6, 0x8e, 0x81, 0xcc, 0x9f, 0x82, 0xad, 0x39, 0xe3, 0x1e, 0x4d, 0xfe, 0x71, 0x95, 0x2d, 0x5e, 0xa5, 0xcc, 0x80, 0x52, 0xa3, 0xce, 0xed, 0x17, 0x51, 0xf5, 0x9d, 0xc7, 0xec, 0xc9, 0x74, 0x2f, 0xad, 0x14, 0x4e, 0x18, 0xdd, 0xa8, 0xd0, 0x58, 0x2e, 0x74, 0xe3, 0x9c, 0xa8, 0xc4, };
9153 static const u8 ed25519_398_test_vectors_expected_sig[] = {
9154 	0x99, 0xd8, 0x3f, 0x14, 0x8a, 0x23, 0x6e, 0xbb, 0xef, 0x1c, 0xad, 0x88, 0xcb, 0x3c, 0x76, 0x94, 0xf4, 0x98, 0x6c, 0x92, 0x50, 0xe2, 0x1c, 0x36, 0x03, 0xa0, 0xd9, 0x41, 0xbf, 0xf1, 0x99, 0xcf, 0x77, 0xd6, 0xce, 0x99, 0xef, 0xdb, 0x20, 0x53, 0x31, 0x88, 0xd6, 0x8a, 0xd1, 0x33, 0xde, 0x03, 0x3a, 0x1f, 0xb3, 0x46, 0x8a, 0xbb, 0x70, 0x6d, 0x2b, 0x8b, 0x4f, 0xba, 0xc0, 0x8d, 0xfe, 0x03, };
9155 static const ec_test_case ed25519_398_test_case = {
9156 	.name = "EDDSA25519-SHA512/wei25519 398",
9157 	.ec_str_p = &wei25519_str_params,
9158 	.priv_key = ed25519_398_test_vectors_priv_key,
9159 	.priv_key_len = sizeof(ed25519_398_test_vectors_priv_key),
9160 	.nn_random = NULL,
9161 	.hash_type = SHA512,
9162 	.msg = (const char *)ed25519_398_test_vectors_message,
9163 	.msglen = sizeof(ed25519_398_test_vectors_message),
9164 	.sig_type = EDDSA25519,
9165 	.exp_sig = ed25519_398_test_vectors_expected_sig,
9166 	.exp_siglen = sizeof(ed25519_398_test_vectors_expected_sig),
9167 	.adata = NULL,
9168 	.adata_len = 0
9169 };
9170 
9171 /************************************************/
9172 static const u8 ed25519_399_test_vectors_priv_key[] = {
9173 	0x61, 0x73, 0x90, 0x85, 0x7d, 0xc1, 0x0c, 0xdf, 0x82, 0xb5, 0xc9, 0x42, 0x61, 0xf5, 0x8c, 0xe2, 0xd4, 0x4a, 0xa2, 0xf5, 0x7d, 0x29, 0x8f, 0x08, 0xa2, 0xd6, 0xc7, 0x4d, 0x28, 0x14, 0x7d, 0xaf, };
9174 static const u8 ed25519_399_test_vectors_message[] = {
9175 	0x1f, 0xd9, 0xe7, 0x45, 0x3e, 0xaf, 0xfd, 0x7c, 0x9b, 0x54, 0x05, 0x56, 0x22, 0xdd, 0xe1, 0x70, 0xdd, 0x58, 0xb7, 0x1c, 0xb9, 0x45, 0xde, 0x75, 0x35, 0x1d, 0x5f, 0xce, 0xb1, 0xf5, 0x36, 0xbd, 0xe2, 0x51, 0x58, 0xf0, 0x37, 0x86, 0x15, 0x5f, 0x95, 0x3d, 0xc2, 0x07, 0xa1, 0x70, 0x8f, 0x90, 0xd9, 0x5b, 0x15, 0xac, 0xa0, 0xae, 0xe3, 0x09, 0x7f, 0xdc, 0xaa, 0xe8, 0x5e, 0x4a, 0xb1, 0xc2, 0xcd, 0xb7, 0x05, 0xc5, 0x3e, 0x6c, 0x2e, 0xd2, 0x1a, 0x99, 0x4b, 0x30, 0x4a, 0x75, 0xca, 0xf2, 0xce, 0x4f, 0xc7, 0xd6, 0x1f, 0x56, 0x1e, 0x74, 0xe2, 0x97, 0x39, 0x7e, 0x2c, 0xde, 0x5c, 0xc6, 0x90, 0x56, 0x94, 0x03, 0x43, 0xaa, 0x81, 0x37, 0x5d, 0x0a, 0xf1, 0x8d, 0x17, 0xd2, 0xf3, 0x4c, 0x0a, 0x71, 0xdc, 0xf1, 0xde, 0x3c, 0x4f, 0xc4, 0x88, 0xa1, 0x4c, 0x5f, 0xa6, 0xb3, 0x33, 0x7a, 0x31, 0x74, 0xb1, 0xda, 0x79, 0x58, 0xfb, 0x00, 0xbd, 0x59, 0x55, 0x14, 0x82, 0x21, 0x42, 0x7c, 0x60, 0xdb, 0xa0, 0x41, 0x17, 0xc8, 0x0d, 0x24, 0x88, 0x65, 0x6d, 0xbd, 0x53, 0x43, 0xde, 0x89, 0x12, 0x87, 0xb5, 0x0e, 0xf4, 0xdf, 0x98, 0x25, 0xed, 0xa7, 0x6b, 0x49, 0x77, 0xf3, 0xac, 0xd4, 0xab, 0x6d, 0x31, 0x02, 0xfa, 0x56, 0x87, 0x83, 0x06, 0xcd, 0x76, 0x56, 0x14, 0x91, 0xbc, 0xfd, 0xaa, 0x1d, 0xa5, 0x67, 0xe6, 0x77, 0xf7, 0xf0, 0x3b, 0xae, 0x5d, 0xbf, 0x44, 0x26, 0xc3, 0xc4, 0xa6, 0xc3, 0xd0, 0x82, 0xf9, 0x17, 0x8b, 0x2e, 0xfd, 0xd2, 0xbd, 0x49, 0xee, 0xe9, 0x7e, 0xf4, 0xdc, 0xf3, 0xf0, 0xf5, 0x1b, 0xbd, 0xef, 0xfe, 0x5a, 0xe6, 0x60, 0x1e, 0x28, 0x01, 0x95, 0x18, 0xf8, 0x27, 0xf0, 0x2e, 0x51, 0xf6, 0x67, 0x9b, 0x87, 0x15, 0x97, 0x8b, 0xec, 0x3e, 0x69, 0xd5, 0x77, 0x15, 0x6d, 0xd7, 0x19, 0x95, 0x93, 0x71, 0xba, 0xf0, 0x34, 0x21, 0x9f, 0xbb, 0xd1, 0x7a, 0x23, 0x69, 0xa8, 0x54, 0x14, 0x90, 0xf6, 0xa0, 0x20, 0x13, 0xe3, 0x3e, 0x74, 0xf4, 0x76, 0x9b, 0xe3, 0x7a, 0xef, 0xa4, 0xde, 0xfb, 0x6b, 0xfb, 0x3f, 0x35, 0x1c, 0x2a, 0x26, 0x14, 0x82, 0xc2, 0xfb, 0xec, 0x49, 0xf8, 0x5f, 0x84, 0x45, 0x45, 0x6e, 0x8f, 0x5a, 0x47, 0x40, 0x30, 0xcd, 0x72, 0xd0, 0x95, 0xef, 0x6a, 0x62, 0x20, 0x30, 0xe1, 0xe4, 0x3a, 0x0c, 0x5d, 0xeb, 0xb0, 0x34, 0x73, 0x1d, 0x2f, 0x5e, 0x8e, 0x4b, 0xa3, 0x99, 0x0f, 0x07, 0x7d, 0x0c, 0x16, 0x26, 0x49, 0xd1, 0xfa, 0x3e, 0xa4, 0xfe, 0x1e, 0x81, 0xd7, 0x4a, 0xa8, 0x49, 0xe2, 0x1b, 0x05, 0x9d, 0x96, 0x6c, 0xba, 0xd4, 0xc4, 0x93, 0xca, 0x10, 0xba, 0xfe, 0x7a, 0x69, 0x24, 0x3e, 0x3c, 0x0a, 0x6e, 0xbf, 0xd1, 0x3d, 0x69, 0x79, 0x06, 0x30, 0x33, 0x92, 0xba, 0x65, 0xd4, 0xfe, 0x06, 0xb6, 0xa5, };
9176 static const u8 ed25519_399_test_vectors_expected_sig[] = {
9177 	0x63, 0xe9, 0x0a, 0x6a, 0xfb, 0xbb, 0xb0, 0xee, 0x69, 0x6b, 0xfb, 0x56, 0xef, 0xd6, 0x79, 0xd6, 0x8a, 0x98, 0x51, 0xa8, 0x94, 0x76, 0x40, 0xa9, 0x7f, 0x41, 0xf6, 0x8e, 0xdf, 0xea, 0xdd, 0x21, 0x6e, 0xd8, 0x69, 0x8e, 0x2e, 0x43, 0xc8, 0x20, 0xc9, 0x04, 0x4c, 0xaa, 0x7a, 0xda, 0xab, 0x5b, 0x76, 0x76, 0x2b, 0x68, 0x18, 0x31, 0xa9, 0xf7, 0x60, 0x47, 0x6a, 0x84, 0x43, 0xc4, 0x3c, 0x06, };
9178 static const ec_test_case ed25519_399_test_case = {
9179 	.name = "EDDSA25519-SHA512/wei25519 399",
9180 	.ec_str_p = &wei25519_str_params,
9181 	.priv_key = ed25519_399_test_vectors_priv_key,
9182 	.priv_key_len = sizeof(ed25519_399_test_vectors_priv_key),
9183 	.nn_random = NULL,
9184 	.hash_type = SHA512,
9185 	.msg = (const char *)ed25519_399_test_vectors_message,
9186 	.msglen = sizeof(ed25519_399_test_vectors_message),
9187 	.sig_type = EDDSA25519,
9188 	.exp_sig = ed25519_399_test_vectors_expected_sig,
9189 	.exp_siglen = sizeof(ed25519_399_test_vectors_expected_sig),
9190 	.adata = NULL,
9191 	.adata_len = 0
9192 };
9193 
9194 /************************************************/
9195 static const u8 ed25519_400_test_vectors_priv_key[] = {
9196 	0x87, 0x7d, 0x01, 0x74, 0x36, 0x36, 0x9e, 0xc2, 0x45, 0x3f, 0xed, 0x46, 0xe9, 0x77, 0xd6, 0xac, 0xc3, 0xa7, 0xbe, 0x60, 0xd3, 0x13, 0x95, 0xad, 0x6e, 0x7e, 0xa9, 0xe0, 0x74, 0x80, 0xe4, 0xc9, };
9197 static const u8 ed25519_400_test_vectors_message[] = {
9198 	0x4e, 0xd3, 0xf5, 0xbd, 0xbd, 0x41, 0xd0, 0xe3, 0xb0, 0xa8, 0xa7, 0xfc, 0x37, 0x52, 0xee, 0xa4, 0x96, 0xd6, 0x14, 0x16, 0x78, 0xcb, 0xfe, 0x06, 0x75, 0x7f, 0x61, 0xe1, 0xa1, 0x68, 0xd7, 0x61, 0xb6, 0xda, 0x83, 0x05, 0x2f, 0x79, 0x94, 0x95, 0x0d, 0x24, 0x62, 0x6f, 0x00, 0x4f, 0xbe, 0x9b, 0x8c, 0x95, 0x62, 0xe0, 0xc9, 0x55, 0xfb, 0x3b, 0x5c, 0x08, 0xfd, 0x2d, 0x3d, 0x25, 0x83, 0x93, 0xa3, 0x49, 0x03, 0x0c, 0x8e, 0x15, 0x62, 0x05, 0xb4, 0x04, 0x83, 0x03, 0x8b, 0xe1, 0x95, 0x9f, 0x1c, 0xba, 0x49, 0x0a, 0x87, 0xfe, 0x13, 0x89, 0x9e, 0x4f, 0x37, 0x52, 0x06, 0x3b, 0x68, 0xfe, 0x3e, 0x1c, 0x50, 0x71, 0xf7, 0xdb, 0x00, 0x02, 0xf0, 0x14, 0x94, 0xb4, 0xa3, 0xee, 0x2e, 0x07, 0x99, 0x2b, 0xdd, 0x20, 0x0d, 0xb4, 0x31, 0x66, 0x29, 0xee, 0x8a, 0x95, 0xca, 0x34, 0x7f, 0x0b, 0x28, 0xd6, 0x40, 0x2a, 0x6d, 0xa8, 0xb5, 0x3e, 0x6b, 0x32, 0x58, 0x1c, 0x36, 0x91, 0xe1, 0x1a, 0xe9, 0xb6, 0xe0, 0xf0, 0x49, 0x48, 0x94, 0xe6, 0x49, 0xa9, 0x2d, 0x03, 0xeb, 0x49, 0xc4, 0xd6, 0x83, 0x3f, 0xa1, 0xf5, 0x4f, 0x8d, 0xcd, 0x91, 0xd0, 0x69, 0x36, 0xa6, 0xe6, 0x2d, 0x49, 0x1e, 0x2c, 0xea, 0x46, 0xdd, 0x07, 0xd9, 0xf0, 0x2d, 0x32, 0x54, 0xb8, 0x50, 0xbc, 0x97, 0x49, 0xf2, 0x58, 0xa6, 0x1a, 0xd3, 0xb9, 0xcc, 0x24, 0xb0, 0x32, 0x87, 0x33, 0x1b, 0x85, 0xa2, 0x41, 0x43, 0xaa, 0xf8, 0xfc, 0xcc, 0xac, 0x5f, 0x18, 0xbf, 0xc7, 0x2d, 0xec, 0x75, 0xc0, 0x23, 0x35, 0x16, 0xaa, 0x6e, 0x45, 0x89, 0xc7, 0x8c, 0x66, 0x5a, 0x18, 0x6e, 0xd9, 0x02, 0x09, 0x1d, 0xf9, 0x7b, 0x0d, 0x04, 0xe8, 0x3a, 0x2d, 0x74, 0xd7, 0x89, 0x89, 0x1a, 0xea, 0x2c, 0xac, 0xf8, 0x13, 0xff, 0xfb, 0x5e, 0xfa, 0xf7, 0x8d, 0xbc, 0xd7, 0xaf, 0x54, 0xef, 0x55, 0xc7, 0x7b, 0x1c, 0x4c, 0x8a, 0xce, 0x9e, 0x92, 0x78, 0xad, 0xc2, 0x3d, 0x76, 0xc7, 0x79, 0xd6, 0x4b, 0x3b, 0xbb, 0xd1, 0xfb, 0x33, 0xb0, 0x98, 0x36, 0xea, 0x64, 0xa7, 0x1e, 0x47, 0x11, 0xe8, 0x9e, 0x8d, 0xa0, 0xf7, 0x09, 0x21, 0x33, 0x42, 0x17, 0x6a, 0xe2, 0x2c, 0x6e, 0x78, 0x52, 0xc3, 0x97, 0x3b, 0x60, 0xd9, 0xf9, 0x88, 0x89, 0xb4, 0x42, 0xaa, 0x48, 0xd7, 0xbf, 0xdf, 0xde, 0xf6, 0x4c, 0x36, 0xc5, 0x86, 0xc4, 0xfb, 0x2a, 0xd2, 0xe2, 0x7e, 0xbe, 0x47, 0x9f, 0x6d, 0x72, 0x2f, 0x06, 0x9f, 0xd6, 0x10, 0x6b, 0x0d, 0x08, 0x97, 0x5d, 0x5f, 0x72, 0x15, 0x47, 0xc3, 0xb9, 0xc5, 0x2f, 0x9f, 0xc5, 0xf4, 0x5b, 0xb4, 0x5b, 0x5b, 0x63, 0x21, 0x88, 0xe8, 0x06, 0x26, 0x51, 0x8a, 0x79, 0x05, 0x6b, 0xdc, 0x4e, 0xe1, 0xd2, 0xbe, 0x6c, 0x65, 0x42, 0xa2, 0x1f, 0xad, 0xea, 0x92, 0xc6, 0xdf, 0xb7, 0x76, };
9199 static const u8 ed25519_400_test_vectors_expected_sig[] = {
9200 	0x76, 0x88, 0xf3, 0xf2, 0x40, 0x1e, 0xac, 0xaf, 0x2d, 0xd8, 0x8e, 0x17, 0x0f, 0xf1, 0xc4, 0xd7, 0xe9, 0x48, 0x22, 0xa7, 0x7f, 0x6b, 0x55, 0x0b, 0x56, 0x9e, 0x82, 0x15, 0x2b, 0xbb, 0xb4, 0x34, 0x05, 0x7e, 0x01, 0x23, 0x0b, 0x05, 0xce, 0x58, 0xee, 0x1d, 0xee, 0x52, 0x26, 0xb5, 0xc7, 0xcd, 0xbe, 0x5a, 0x8a, 0xde, 0x3b, 0x94, 0x65, 0xf5, 0x9a, 0xed, 0x74, 0x14, 0x5d, 0x14, 0x33, 0x0c, };
9201 static const ec_test_case ed25519_400_test_case = {
9202 	.name = "EDDSA25519-SHA512/wei25519 400",
9203 	.ec_str_p = &wei25519_str_params,
9204 	.priv_key = ed25519_400_test_vectors_priv_key,
9205 	.priv_key_len = sizeof(ed25519_400_test_vectors_priv_key),
9206 	.nn_random = NULL,
9207 	.hash_type = SHA512,
9208 	.msg = (const char *)ed25519_400_test_vectors_message,
9209 	.msglen = sizeof(ed25519_400_test_vectors_message),
9210 	.sig_type = EDDSA25519,
9211 	.exp_sig = ed25519_400_test_vectors_expected_sig,
9212 	.exp_siglen = sizeof(ed25519_400_test_vectors_expected_sig),
9213 	.adata = NULL,
9214 	.adata_len = 0
9215 };
9216 
9217 /************************************************/
9218 static const u8 ed25519_401_test_vectors_priv_key[] = {
9219 	0x4f, 0x0b, 0x36, 0x07, 0xd7, 0x0b, 0x0f, 0x26, 0x98, 0x32, 0x7e, 0xf4, 0xf1, 0x98, 0x2c, 0x5b, 0x4b, 0x94, 0xbe, 0x78, 0xf5, 0x0c, 0x76, 0xf4, 0x3b, 0xd6, 0x42, 0xf1, 0xf0, 0xed, 0xe3, 0x9b, };
9220 static const u8 ed25519_401_test_vectors_message[] = {
9221 	0x9f, 0x70, 0x0a, 0x1d, 0x25, 0x60, 0xf6, 0x9d, 0x9b, 0xc1, 0x05, 0xbc, 0x83, 0xbf, 0xf5, 0x39, 0xe4, 0x25, 0x8c, 0x02, 0x48, 0x60, 0x20, 0x13, 0xa9, 0x59, 0xb9, 0x78, 0xa1, 0x9c, 0xc2, 0x73, 0x28, 0x0d, 0x90, 0xc0, 0x17, 0x80, 0x89, 0x57, 0x8b, 0x50, 0x51, 0x8e, 0x06, 0xad, 0x1e, 0xab, 0x79, 0x0f, 0xfe, 0x71, 0x0c, 0x63, 0xd7, 0x88, 0x87, 0xa9, 0x55, 0x69, 0x14, 0x4f, 0x3e, 0x58, 0xa8, 0x83, 0x7f, 0x93, 0xdd, 0x51, 0x6f, 0xcd, 0xdd, 0x22, 0xbc, 0x97, 0xa7, 0xf1, 0x44, 0x11, 0xd4, 0x24, 0xb2, 0xe8, 0xe9, 0xaa, 0x7c, 0x28, 0x01, 0x19, 0xad, 0x94, 0xce, 0x92, 0x53, 0x3f, 0xc7, 0xfe, 0xa6, 0xc6, 0x62, 0x48, 0x64, 0x4a, 0xc3, 0xe1, 0xbe, 0xef, 0x25, 0x53, 0xa6, 0xf6, 0x1e, 0x91, 0xb9, 0x37, 0x9b, 0x0f, 0xe0, 0xc6, 0x8b, 0x40, 0x68, 0x14, 0x55, 0xb3, 0x11, 0xf4, 0x0d, 0xf0, 0xc9, 0x7f, 0x53, 0xfc, 0x95, 0x42, 0x42, 0xc3, 0x75, 0xe7, 0x70, 0x8d, 0x61, 0xba, 0xd9, 0xf5, 0x12, 0x96, 0x24, 0x72, 0x74, 0xfa, 0x01, 0xa7, 0x32, 0x8f, 0xa5, 0x00, 0x9d, 0x99, 0x95, 0xf5, 0x01, 0xae, 0x86, 0x83, 0x55, 0x2b, 0x11, 0xa4, 0x9d, 0x26, 0x38, 0x11, 0x67, 0x23, 0xb1, 0x31, 0x94, 0x50, 0xa9, 0x01, 0x38, 0xd2, 0x78, 0xcd, 0x95, 0x12, 0xb8, 0x0c, 0xa5, 0x79, 0x2e, 0xd1, 0x6c, 0x68, 0x3b, 0xef, 0x92, 0xec, 0x87, 0x88, 0x4c, 0x9f, 0x07, 0xf1, 0x37, 0xdc, 0x47, 0xa1, 0x31, 0x46, 0xe5, 0x11, 0x06, 0x5c, 0x2e, 0x1b, 0x4b, 0x80, 0xef, 0xde, 0x88, 0xae, 0x12, 0xe2, 0x94, 0x31, 0xbe, 0xb7, 0xae, 0xe3, 0x65, 0xc1, 0x6d, 0x80, 0x50, 0x6b, 0x99, 0xaf, 0xa6, 0xa1, 0x40, 0x6e, 0xdb, 0x06, 0x17, 0x66, 0x87, 0x58, 0x32, 0xdb, 0xa4, 0x73, 0xe5, 0x19, 0xdd, 0x70, 0x18, 0xf4, 0x02, 0xeb, 0x1b, 0xb3, 0x01, 0x4b, 0x7c, 0xee, 0x4f, 0x02, 0xe9, 0x80, 0xb1, 0xb1, 0x71, 0x27, 0xe7, 0xd2, 0x5d, 0xfe, 0x0c, 0x16, 0x8c, 0x53, 0x44, 0xf1, 0xc9, 0x00, 0x44, 0xf8, 0x27, 0x70, 0x7d, 0xca, 0x03, 0x07, 0x0e, 0x4c, 0x43, 0xcc, 0x46, 0x00, 0x47, 0xff, 0x62, 0x87, 0x0f, 0x07, 0x5f, 0x34, 0x59, 0x18, 0x16, 0xe4, 0xd0, 0x7e, 0xe3, 0x02, 0xe7, 0xb2, 0xc2, 0xca, 0x92, 0x55, 0xa3, 0x5e, 0x8a, 0xde, 0xc0, 0x35, 0x30, 0xe8, 0x6a, 0x13, 0xb1, 0xbd, 0xfa, 0x14, 0x98, 0x81, 0x30, 0x98, 0xf9, 0xba, 0x59, 0xf8, 0x18, 0x7a, 0xbc, 0xaf, 0xe2, 0x1b, 0xa0, 0x9d, 0x7c, 0x4a, 0xaa, 0x1a, 0xd1, 0x0a, 0x2f, 0x28, 0x33, 0x4a, 0xb5, 0x39, 0x96, 0x14, 0x7c, 0x24, 0x59, 0xc0, 0x1b, 0x6a, 0x10, 0x83, 0x9e, 0x03, 0x01, 0x12, 0x3d, 0x91, 0xa3, 0x5c, 0xed, 0x7a, 0xf8, 0x9a, 0xfb, 0xac, 0x7d, 0x9c, 0xf8, 0xac, 0x9a, 0x38, 0xce, 0xeb, 0xef, 0x83, };
9222 static const u8 ed25519_401_test_vectors_expected_sig[] = {
9223 	0xf3, 0x96, 0xa1, 0x1f, 0x2f, 0x03, 0xc6, 0x14, 0x39, 0x68, 0x4f, 0x79, 0x00, 0x1b, 0xd4, 0xf3, 0x46, 0xa3, 0x48, 0xdc, 0xf1, 0xd3, 0xbe, 0xb2, 0xd3, 0xbf, 0xe3, 0x3e, 0xa7, 0x3a, 0x5a, 0xd4, 0xeb, 0x97, 0x50, 0x6a, 0xcf, 0xbf, 0xfb, 0x78, 0x4e, 0x77, 0x54, 0x81, 0x89, 0xcd, 0x59, 0x9f, 0x8c, 0xcf, 0x17, 0x35, 0x5d, 0xde, 0x80, 0xe7, 0x50, 0x24, 0xef, 0x2a, 0x78, 0xd5, 0xfa, 0x03, };
9224 static const ec_test_case ed25519_401_test_case = {
9225 	.name = "EDDSA25519-SHA512/wei25519 401",
9226 	.ec_str_p = &wei25519_str_params,
9227 	.priv_key = ed25519_401_test_vectors_priv_key,
9228 	.priv_key_len = sizeof(ed25519_401_test_vectors_priv_key),
9229 	.nn_random = NULL,
9230 	.hash_type = SHA512,
9231 	.msg = (const char *)ed25519_401_test_vectors_message,
9232 	.msglen = sizeof(ed25519_401_test_vectors_message),
9233 	.sig_type = EDDSA25519,
9234 	.exp_sig = ed25519_401_test_vectors_expected_sig,
9235 	.exp_siglen = sizeof(ed25519_401_test_vectors_expected_sig),
9236 	.adata = NULL,
9237 	.adata_len = 0
9238 };
9239 
9240 /************************************************/
9241 static const u8 ed25519_402_test_vectors_priv_key[] = {
9242 	0xb8, 0xa0, 0x01, 0x0c, 0x78, 0x4d, 0x8d, 0x00, 0x2a, 0x31, 0xda, 0x11, 0xd0, 0x22, 0xd3, 0x01, 0x88, 0xa4, 0x19, 0x7a, 0x1d, 0x5f, 0x14, 0xea, 0x4c, 0x0d, 0xab, 0x29, 0xa2, 0xe4, 0x06, 0x68, };
9243 static const u8 ed25519_402_test_vectors_message[] = {
9244 	0x5c, 0x6c, 0xcb, 0x29, 0x8b, 0xe2, 0x16, 0x80, 0x8b, 0x81, 0x1e, 0x56, 0xd9, 0x72, 0xf4, 0x56, 0xb6, 0x9a, 0xd3, 0x95, 0x94, 0xee, 0xe3, 0x54, 0x70, 0x1c, 0xa6, 0xb3, 0xe3, 0x8d, 0x1f, 0x41, 0xa3, 0x59, 0xe5, 0x51, 0x2a, 0xf9, 0x8a, 0x3a, 0x08, 0x73, 0x26, 0x5f, 0xe5, 0x19, 0x1f, 0x4f, 0x2e, 0xca, 0xf6, 0x6b, 0xee, 0x75, 0xa3, 0xac, 0x0b, 0x71, 0xa4, 0xdd, 0xf2, 0xa7, 0x59, 0xeb, 0xdd, 0xdb, 0xd8, 0x8a, 0x6a, 0x1c, 0x6f, 0xd0, 0xfc, 0xf7, 0xd7, 0xcb, 0x92, 0xa8, 0x4e, 0x33, 0x07, 0xb4, 0xa4, 0xf9, 0x8c, 0x71, 0x0a, 0xbf, 0x4f, 0x55, 0x3d, 0xee, 0x74, 0xf6, 0x52, 0xd2, 0xac, 0x64, 0xbc, 0x30, 0xf7, 0x2b, 0xf4, 0x35, 0x4e, 0xf7, 0xe8, 0x06, 0xa1, 0x90, 0x71, 0xa0, 0x51, 0xbc, 0xfc, 0xfb, 0x27, 0xe3, 0x7f, 0xdd, 0xd4, 0x1e, 0xce, 0xae, 0xc1, 0x75, 0x8e, 0x94, 0x69, 0x5c, 0x67, 0x0e, 0xf4, 0xc5, 0xa5, 0x90, 0x21, 0x78, 0x32, 0x9d, 0xb9, 0x58, 0x5c, 0x65, 0xef, 0x0f, 0xa3, 0xcd, 0x62, 0x44, 0x9b, 0xb2, 0x0b, 0x1f, 0x13, 0xae, 0xcf, 0xdd, 0x1c, 0x6c, 0xf7, 0x8c, 0x51, 0xf5, 0x68, 0xce, 0x9f, 0xb8, 0x52, 0x59, 0xaa, 0xd0, 0x5b, 0x38, 0xc6, 0xb4, 0x85, 0xf6, 0xb8, 0x60, 0x76, 0x92, 0x8d, 0xdb, 0x4e, 0x20, 0x36, 0xf4, 0x5e, 0x7b, 0x9c, 0x6a, 0x7f, 0xf2, 0x4a, 0xe1, 0x77, 0x60, 0x30, 0xe2, 0x57, 0x68, 0x25, 0x01, 0x9a, 0xb4, 0x63, 0xeb, 0xf7, 0x10, 0x3a, 0x33, 0x07, 0x20, 0x33, 0xea, 0xcb, 0xb5, 0xb5, 0x03, 0xf5, 0x32, 0x66, 0xaf, 0xb8, 0x2f, 0x9b, 0x24, 0x54, 0xb8, 0xdc, 0x05, 0x7d, 0x84, 0xf3, 0x0d, 0x9d, 0x2c, 0xb7, 0xc3, 0xa3, 0x1a, 0x7d, 0xbd, 0xfb, 0xa5, 0xb8, 0xe4, 0x92, 0x31, 0xc2, 0x31, 0x39, 0x6c, 0x47, 0xca, 0x04, 0x2c, 0x8e, 0x48, 0xa1, 0xa5, 0xe3, 0xec, 0x9a, 0xfe, 0x40, 0x20, 0x59, 0x53, 0x90, 0xf9, 0x99, 0x0d, 0xfb, 0x87, 0x4e, 0x08, 0x25, 0xae, 0x9a, 0xe5, 0xe7, 0x52, 0xaf, 0x63, 0xaf, 0x6f, 0xd3, 0xe7, 0x87, 0xe7, 0x5e, 0x8d, 0x8d, 0xc4, 0xc6, 0x63, 0x02, 0x27, 0x7a, 0xc0, 0x1b, 0x30, 0xa1, 0x8a, 0x56, 0xcb, 0x82, 0xc8, 0xa7, 0xeb, 0xdc, 0x91, 0x5b, 0x71, 0x53, 0x25, 0x5a, 0x1f, 0xed, 0xc4, 0x92, 0xe4, 0x96, 0x60, 0x26, 0x2b, 0xb2, 0x49, 0x78, 0x0d, 0x17, 0x3e, 0x1f, 0xd2, 0x0d, 0x18, 0xc4, 0xf6, 0xb0, 0xb6, 0x9a, 0xa2, 0xec, 0xa0, 0x24, 0xbf, 0x3c, 0x80, 0xd7, 0xd5, 0x96, 0x2c, 0xc4, 0xa1, 0x29, 0xa7, 0x94, 0x3b, 0x27, 0xf3, 0x3c, 0xc7, 0x99, 0xa3, 0x60, 0x45, 0x54, 0x12, 0x75, 0xa2, 0xcd, 0xb9, 0x2a, 0x40, 0xe4, 0x85, 0xba, 0x8b, 0x73, 0x7a, 0x04, 0xb4, 0x3d, 0x29, 0xc3, 0xe2, 0x5f, 0x76, 0xcb, 0x3d, 0x93, 0xa6, 0xb9, 0x44, 0x61, 0xf8, 0x8f, 0x56, 0x96, };
9245 static const u8 ed25519_402_test_vectors_expected_sig[] = {
9246 	0xb3, 0xf6, 0xcf, 0x4c, 0x0e, 0x0f, 0x90, 0x74, 0xff, 0x2c, 0x2c, 0x47, 0xe1, 0x63, 0x20, 0x2f, 0x1e, 0x9d, 0x6e, 0xe1, 0x17, 0xcf, 0x75, 0x76, 0x33, 0xe4, 0xab, 0xe7, 0x44, 0x23, 0xaa, 0x70, 0x00, 0x8a, 0xda, 0x15, 0x09, 0xec, 0x1d, 0xc1, 0x17, 0xc1, 0xc2, 0x30, 0xe9, 0xb2, 0x37, 0x86, 0xf3, 0xd0, 0xf2, 0x9b, 0x73, 0xaa, 0x28, 0x45, 0x36, 0xe9, 0x58, 0x01, 0x06, 0xa8, 0xa7, 0x0c, };
9247 static const ec_test_case ed25519_402_test_case = {
9248 	.name = "EDDSA25519-SHA512/wei25519 402",
9249 	.ec_str_p = &wei25519_str_params,
9250 	.priv_key = ed25519_402_test_vectors_priv_key,
9251 	.priv_key_len = sizeof(ed25519_402_test_vectors_priv_key),
9252 	.nn_random = NULL,
9253 	.hash_type = SHA512,
9254 	.msg = (const char *)ed25519_402_test_vectors_message,
9255 	.msglen = sizeof(ed25519_402_test_vectors_message),
9256 	.sig_type = EDDSA25519,
9257 	.exp_sig = ed25519_402_test_vectors_expected_sig,
9258 	.exp_siglen = sizeof(ed25519_402_test_vectors_expected_sig),
9259 	.adata = NULL,
9260 	.adata_len = 0
9261 };
9262 
9263 /************************************************/
9264 static const u8 ed25519_403_test_vectors_priv_key[] = {
9265 	0xef, 0xc8, 0x6c, 0xbe, 0x40, 0x36, 0x3a, 0xbf, 0xbb, 0x2a, 0x4b, 0x1f, 0xcc, 0xe5, 0xfd, 0x60, 0x84, 0xda, 0x96, 0xe7, 0xe8, 0x14, 0xde, 0x71, 0xaa, 0xdf, 0x9a, 0x61, 0x8f, 0x30, 0x36, 0x25, };
9266 static const u8 ed25519_403_test_vectors_message[] = {
9267 	0x9e, 0x4f, 0xa4, 0x5d, 0xc0, 0x26, 0x71, 0x0f, 0x6b, 0xef, 0x4e, 0xd0, 0xf0, 0x7c, 0x54, 0x4b, 0x0b, 0xb0, 0xd8, 0x8f, 0xa7, 0x9e, 0x71, 0x77, 0xd8, 0x44, 0x8b, 0xc2, 0x09, 0xd7, 0x1c, 0xfe, 0x97, 0x43, 0xc1, 0x0a, 0xf0, 0xc9, 0x93, 0x7d, 0x72, 0xe1, 0x81, 0x9e, 0x5b, 0x53, 0x1d, 0x66, 0x1c, 0x58, 0xc6, 0x31, 0x41, 0xce, 0x86, 0x62, 0xc8, 0x83, 0x9e, 0x66, 0x4d, 0xb7, 0x9e, 0x16, 0xc5, 0x4d, 0x11, 0x3a, 0xbb, 0x02, 0xa7, 0x5b, 0xdf, 0x11, 0xb3, 0x45, 0x3d, 0x07, 0x18, 0x25, 0xbc, 0x41, 0x57, 0x41, 0xe9, 0x94, 0x83, 0x54, 0x6b, 0x8e, 0x1e, 0x68, 0x19, 0xde, 0x53, 0x01, 0x70, 0x92, 0xe4, 0xef, 0x87, 0x1f, 0x1c, 0xa0, 0xd3, 0x50, 0x8f, 0x93, 0x78, 0x28, 0xa4, 0x66, 0x7d, 0xb1, 0x1f, 0xff, 0xf9, 0x41, 0x6e, 0xeb, 0xb9, 0x4b, 0xf9, 0xb8, 0x4d, 0x65, 0x46, 0x03, 0x09, 0x48, 0x34, 0xa9, 0x9c, 0xa7, 0x0b, 0x90, 0xf5, 0x62, 0xa8, 0x68, 0x23, 0x62, 0x4d, 0xfe, 0x9c, 0xb2, 0xf9, 0xe8, 0x8c, 0x17, 0x3f, 0x13, 0x46, 0x4d, 0x4c, 0xe2, 0x55, 0xf2, 0x22, 0xdb, 0x50, 0xdd, 0x63, 0xab, 0x42, 0x46, 0x57, 0x34, 0xe7, 0x52, 0x95, 0xc0, 0x64, 0xb6, 0x4c, 0xc3, 0xf1, 0x5e, 0x62, 0x37, 0xe3, 0x7f, 0x33, 0xd6, 0x15, 0xf7, 0xc2, 0x43, 0xe4, 0xba, 0x30, 0x89, 0x60, 0xcf, 0xd4, 0x39, 0x34, 0x02, 0x52, 0x55, 0x00, 0xbb, 0x79, 0x02, 0x97, 0x0b, 0x39, 0x31, 0xd4, 0x8b, 0x35, 0x66, 0x6a, 0x2d, 0x4d, 0x2a, 0xb0, 0x8f, 0xa1, 0x2a, 0xf3, 0x66, 0xa0, 0x04, 0x34, 0x6c, 0x9d, 0xd9, 0x3d, 0x39, 0xfb, 0x1b, 0x73, 0x40, 0xf1, 0x04, 0xe5, 0x1f, 0xed, 0xbb, 0x53, 0x36, 0x05, 0xb5, 0xff, 0x39, 0xcf, 0x6d, 0x59, 0x51, 0x3f, 0x12, 0x85, 0x6d, 0xcf, 0xa1, 0x98, 0xd7, 0x93, 0xb0, 0xfc, 0x87, 0x5c, 0xde, 0xa0, 0x74, 0x1f, 0x14, 0x55, 0x74, 0x6d, 0x8a, 0x19, 0xc3, 0xe9, 0xd9, 0x28, 0xf0, 0x02, 0x1b, 0x01, 0xc2, 0x51, 0x31, 0x81, 0x1e, 0x48, 0xc3, 0xc7, 0x5c, 0x6f, 0x41, 0x42, 0x2a, 0x88, 0x10, 0xc6, 0xc8, 0x1f, 0x35, 0xb4, 0x54, 0xee, 0xae, 0x8c, 0xd1, 0x7c, 0xf3, 0xf2, 0xe6, 0xf0, 0xbc, 0xd9, 0xf2, 0x90, 0x98, 0x4f, 0x49, 0x65, 0x78, 0x62, 0x3a, 0xb8, 0xe2, 0x73, 0x8d, 0x2d, 0x10, 0x84, 0x0e, 0xb9, 0x1d, 0x10, 0x1c, 0xb4, 0xa2, 0x37, 0x22, 0xb7, 0x2e, 0x3d, 0xd1, 0x85, 0x44, 0x0c, 0x3b, 0x9f, 0x44, 0xd4, 0x6a, 0x39, 0x3a, 0x34, 0xc1, 0x87, 0xa2, 0x0d, 0x61, 0x0b, 0xb6, 0x98, 0xc5, 0x05, 0x31, 0x74, 0x1e, 0xfe, 0x96, 0x32, 0x35, 0x12, 0x32, 0x98, 0x00, 0x77, 0x2a, 0x40, 0x80, 0x65, 0xa7, 0xef, 0x8e, 0x4e, 0x41, 0x05, 0xeb, 0x1f, 0x5b, 0xf6, 0xd3, 0xfd, 0x6b, 0x21, 0x7f, 0xd8, 0x36, 0xd8, 0x9f, 0x53, 0xb9, 0x6f, 0x45, };
9268 static const u8 ed25519_403_test_vectors_expected_sig[] = {
9269 	0xf8, 0x81, 0x83, 0x10, 0x22, 0x8c, 0xa7, 0x61, 0x11, 0x52, 0x4c, 0xe9, 0x4b, 0xfc, 0xb0, 0x24, 0x6e, 0xa6, 0x35, 0x08, 0xce, 0xe9, 0x30, 0x65, 0x92, 0xb2, 0xf7, 0x75, 0x48, 0xed, 0xef, 0xcf, 0x76, 0xbd, 0x14, 0x54, 0x50, 0x8e, 0xa7, 0x15, 0x04, 0x2c, 0xec, 0x16, 0x9c, 0xea, 0x51, 0x15, 0xab, 0x54, 0x23, 0x5c, 0xb1, 0x09, 0x7b, 0x10, 0x70, 0x2a, 0xa3, 0x83, 0x78, 0x02, 0x8e, 0x0c, };
9270 static const ec_test_case ed25519_403_test_case = {
9271 	.name = "EDDSA25519-SHA512/wei25519 403",
9272 	.ec_str_p = &wei25519_str_params,
9273 	.priv_key = ed25519_403_test_vectors_priv_key,
9274 	.priv_key_len = sizeof(ed25519_403_test_vectors_priv_key),
9275 	.nn_random = NULL,
9276 	.hash_type = SHA512,
9277 	.msg = (const char *)ed25519_403_test_vectors_message,
9278 	.msglen = sizeof(ed25519_403_test_vectors_message),
9279 	.sig_type = EDDSA25519,
9280 	.exp_sig = ed25519_403_test_vectors_expected_sig,
9281 	.exp_siglen = sizeof(ed25519_403_test_vectors_expected_sig),
9282 	.adata = NULL,
9283 	.adata_len = 0
9284 };
9285 
9286 /************************************************/
9287 static const u8 ed25519_404_test_vectors_priv_key[] = {
9288 	0x33, 0x55, 0x6c, 0x60, 0xde, 0x2f, 0x2c, 0x9a, 0x93, 0x03, 0xb9, 0x9a, 0xdd, 0x37, 0x85, 0x92, 0x06, 0x05, 0x05, 0xf8, 0xe4, 0x98, 0x61, 0x08, 0x5a, 0x4b, 0x15, 0xf0, 0x72, 0xa7, 0xef, 0x28, };
9289 static const u8 ed25519_404_test_vectors_message[] = {
9290 	0x96, 0xaf, 0x54, 0x0e, 0xa2, 0xb1, 0x92, 0x3f, 0x5f, 0xd0, 0xaa, 0xd3, 0x21, 0xac, 0x03, 0x20, 0x70, 0xc2, 0xd6, 0x5b, 0xa1, 0x3d, 0x16, 0x4e, 0x75, 0xc3, 0x46, 0x97, 0x58, 0xfc, 0xf3, 0x1b, 0xb3, 0x16, 0x55, 0xcb, 0x3a, 0x72, 0x1f, 0x9c, 0xb3, 0x4b, 0xe2, 0xc9, 0x0c, 0x77, 0xeb, 0x65, 0xbe, 0x37, 0xf6, 0x06, 0xd3, 0x2a, 0x91, 0x7a, 0x4c, 0xb9, 0xa7, 0x09, 0xac, 0x07, 0x05, 0x22, 0x99, 0x30, 0xef, 0x6e, 0xb6, 0xfd, 0xb0, 0xfa, 0x3c, 0x0f, 0xd3, 0xa9, 0x0c, 0xe1, 0x71, 0x67, 0x4e, 0xe3, 0xed, 0x06, 0x35, 0x4b, 0xaf, 0xc3, 0xc7, 0x07, 0x54, 0x67, 0xa5, 0x74, 0x45, 0xb8, 0x03, 0x85, 0x64, 0x04, 0x47, 0x90, 0x2b, 0xe3, 0x92, 0x62, 0x89, 0x4b, 0x1f, 0x64, 0xfe, 0xa5, 0x82, 0x87, 0xdc, 0x32, 0x2d, 0x19, 0x87, 0x59, 0x72, 0xa7, 0xc8, 0xbe, 0x91, 0xd3, 0x1f, 0x02, 0x1c, 0x70, 0xeb, 0x68, 0x2f, 0xdf, 0x11, 0xa1, 0x0f, 0x8f, 0x58, 0x2a, 0x12, 0x6e, 0x06, 0x47, 0x94, 0x83, 0x8c, 0x69, 0xfd, 0xf6, 0x4f, 0x5b, 0x6e, 0x8b, 0xa5, 0x9d, 0x48, 0xb4, 0x38, 0x4f, 0x8e, 0x9f, 0xb5, 0xc0, 0x87, 0xcc, 0x77, 0x38, 0x29, 0x5c, 0xd3, 0x23, 0x44, 0xba, 0x3b, 0x69, 0x7e, 0xe6, 0xb6, 0xa8, 0xb7, 0x8e, 0xe7, 0xa9, 0x57, 0x5c, 0x97, 0x97, 0x2a, 0x4d, 0x1b, 0xb1, 0x84, 0x86, 0xf9, 0x03, 0x7a, 0x0f, 0x3c, 0x6f, 0x47, 0x1a, 0x90, 0xf8, 0x64, 0x98, 0xdb, 0xc0, 0xdf, 0x52, 0x32, 0xc0, 0x7e, 0x8c, 0x01, 0xb6, 0x90, 0xbe, 0xe7, 0x53, 0x02, 0x99, 0x2a, 0x7a, 0x36, 0xfb, 0x44, 0x37, 0xc2, 0x5a, 0x8b, 0xf5, 0xe3, 0x4c, 0xf7, 0xd5, 0xb5, 0x55, 0x72, 0xc7, 0x00, 0xa0, 0x79, 0x84, 0x8d, 0x38, 0x13, 0x64, 0xf9, 0x94, 0x6a, 0x91, 0xeb, 0x16, 0x03, 0xff, 0x3d, 0xe5, 0xeb, 0xdd, 0x52, 0x3b, 0xd9, 0x25, 0x64, 0x81, 0x8e, 0x23, 0x7a, 0x53, 0xe8, 0xf5, 0x22, 0xde, 0xaa, 0x2c, 0x29, 0xb8, 0x97, 0xe9, 0x61, 0x58, 0x6e, 0x10, 0x0e, 0xd0, 0xfc, 0x0a, 0xd7, 0x0d, 0x16, 0x09, 0x34, 0xe6, 0x94, 0x02, 0x7e, 0x5c, 0x95, 0x79, 0x20, 0xbc, 0x05, 0x46, 0xe9, 0x01, 0xbe, 0x39, 0xa8, 0x45, 0x35, 0x59, 0x7e, 0x1f, 0x28, 0x0c, 0x22, 0x22, 0x67, 0xab, 0xe9, 0x7f, 0x41, 0x20, 0x5d, 0x81, 0x71, 0x82, 0x0d, 0xd2, 0xfa, 0xaf, 0xc0, 0x69, 0x94, 0x19, 0x32, 0x1a, 0x91, 0x60, 0xf6, 0x9b, 0x99, 0xfd, 0x41, 0x18, 0x09, 0x45, 0xb6, 0x2d, 0x2d, 0xd1, 0x05, 0xcc, 0x7b, 0xbe, 0x82, 0x1d, 0x28, 0x60, 0x5e, 0x09, 0x8e, 0xdf, 0xa8, 0xb2, 0x30, 0x9a, 0xeb, 0x05, 0x34, 0xe7, 0x56, 0x37, 0x7f, 0x59, 0x93, 0x7c, 0x67, 0x46, 0x3f, 0xd8, 0x7c, 0x8b, 0x92, 0xab, 0x58, 0x11, 0x9c, 0xf4, 0xce, 0x6c, 0x66, 0x5a, 0xf5, 0x72, 0xfb, 0xae, 0x1d, 0xe4, 0xa2, 0xcc, 0x71, };
9291 static const u8 ed25519_404_test_vectors_expected_sig[] = {
9292 	0xe0, 0x6a, 0x7a, 0x41, 0x44, 0x57, 0xbb, 0xbe, 0xf2, 0xba, 0xc3, 0x77, 0x5c, 0xca, 0xd0, 0x87, 0xda, 0xcb, 0x1f, 0xa4, 0xbf, 0x93, 0x88, 0x94, 0xe8, 0xc9, 0x29, 0x11, 0x8e, 0x09, 0xe6, 0x78, 0xdd, 0x19, 0x93, 0x8b, 0xc8, 0x8f, 0x43, 0xed, 0x0f, 0x7d, 0x31, 0xcc, 0x6a, 0x0e, 0x60, 0x2c, 0x4e, 0x4d, 0x1f, 0xee, 0x33, 0xd4, 0x1e, 0x74, 0xa1, 0x19, 0xfa, 0x2d, 0x1e, 0x4e, 0x34, 0x0f, };
9293 static const ec_test_case ed25519_404_test_case = {
9294 	.name = "EDDSA25519-SHA512/wei25519 404",
9295 	.ec_str_p = &wei25519_str_params,
9296 	.priv_key = ed25519_404_test_vectors_priv_key,
9297 	.priv_key_len = sizeof(ed25519_404_test_vectors_priv_key),
9298 	.nn_random = NULL,
9299 	.hash_type = SHA512,
9300 	.msg = (const char *)ed25519_404_test_vectors_message,
9301 	.msglen = sizeof(ed25519_404_test_vectors_message),
9302 	.sig_type = EDDSA25519,
9303 	.exp_sig = ed25519_404_test_vectors_expected_sig,
9304 	.exp_siglen = sizeof(ed25519_404_test_vectors_expected_sig),
9305 	.adata = NULL,
9306 	.adata_len = 0
9307 };
9308 
9309 /************************************************/
9310 static const u8 ed25519_405_test_vectors_priv_key[] = {
9311 	0x7a, 0x5c, 0x74, 0x31, 0x4e, 0x11, 0x83, 0x33, 0x4a, 0x4b, 0x62, 0x26, 0xb9, 0xa8, 0x2d, 0x70, 0xfc, 0x2a, 0x12, 0x4e, 0x3f, 0x87, 0xdb, 0x6a, 0x22, 0x83, 0xee, 0x05, 0xb6, 0x8e, 0x34, 0xe0, };
9312 static const u8 ed25519_405_test_vectors_message[] = {
9313 	0x98, 0xba, 0xc6, 0x72, 0x47, 0x55, 0x91, 0x29, 0x92, 0xad, 0xc2, 0xa4, 0x8b, 0x54, 0x42, 0x37, 0x6f, 0x2d, 0x92, 0x79, 0x97, 0xa0, 0x40, 0xfb, 0x98, 0xef, 0xe5, 0x44, 0xeb, 0x0c, 0x8e, 0x18, 0x66, 0xb9, 0x61, 0x6e, 0x29, 0x8d, 0x33, 0x60, 0x31, 0x6e, 0xd9, 0x76, 0xbd, 0x94, 0x6a, 0x41, 0x1f, 0xdd, 0x3a, 0x6b, 0x62, 0x5c, 0x0c, 0x1a, 0x37, 0xaf, 0x0f, 0x41, 0xcf, 0x65, 0x69, 0xa7, 0x88, 0x4a, 0xb8, 0x46, 0x74, 0x91, 0xa9, 0x87, 0xdf, 0x3e, 0xa7, 0xa0, 0xb7, 0xeb, 0xc4, 0x69, 0x25, 0x69, 0xa3, 0x4c, 0xe3, 0xa2, 0xea, 0x35, 0x03, 0x49, 0x5b, 0x2c, 0x02, 0xd4, 0x9d, 0x7d, 0x7d, 0xb5, 0x79, 0xd1, 0x3a, 0x82, 0xcf, 0x0c, 0xf7, 0xa9, 0x54, 0x7a, 0x6e, 0xae, 0xbe, 0x68, 0xe7, 0x26, 0x7d, 0x45, 0xa6, 0x0b, 0x8d, 0x47, 0x72, 0x45, 0x52, 0x28, 0xcc, 0xa4, 0x03, 0x6e, 0x28, 0x2e, 0x1a, 0x12, 0x16, 0xf3, 0x4c, 0xef, 0x7e, 0xa6, 0x8f, 0x93, 0x82, 0x70, 0xbd, 0xb0, 0x42, 0x93, 0xc8, 0x85, 0xd0, 0x05, 0xf9, 0xf7, 0xe6, 0x38, 0xa8, 0xb4, 0xea, 0xd2, 0x62, 0x6c, 0x09, 0x45, 0x17, 0x4f, 0xf2, 0xa3, 0xe2, 0xd6, 0xe1, 0x5a, 0x4c, 0x03, 0x38, 0xc0, 0x9e, 0x12, 0x60, 0xf0, 0x92, 0x8c, 0xa9, 0xd3, 0x49, 0x98, 0x24, 0xf3, 0xfe, 0xdc, 0x47, 0x85, 0xda, 0x49, 0xc5, 0xc3, 0x4a, 0x56, 0x85, 0x5e, 0x24, 0x1f, 0xac, 0xc6, 0x34, 0x7a, 0x39, 0x9d, 0xdc, 0xac, 0x43, 0x99, 0xa8, 0xb1, 0x58, 0x19, 0x8c, 0x15, 0x14, 0x61, 0xa3, 0xb1, 0x89, 0xe5, 0x8e, 0xc1, 0xf7, 0xef, 0xcf, 0x2a, 0xb2, 0x03, 0x1f, 0xb1, 0x7b, 0x6f, 0x03, 0x5b, 0xa1, 0xf0, 0x92, 0xe9, 0xee, 0xe2, 0xe9, 0x2c, 0x2d, 0x6c, 0xc2, 0x03, 0x22, 0x87, 0xf8, 0x54, 0xb4, 0x1e, 0x70, 0xfc, 0x61, 0xc8, 0xd1, 0x1a, 0x2e, 0x4f, 0x07, 0x08, 0xf0, 0x2e, 0xeb, 0xd0, 0x2e, 0x8c, 0x7e, 0x8c, 0x7b, 0x38, 0xa5, 0x7b, 0xfa, 0x1a, 0x74, 0x5f, 0x3a, 0x86, 0xc2, 0x39, 0x09, 0xf6, 0xf8, 0x9a, 0xb1, 0x6c, 0xe7, 0xe1, 0x81, 0x3c, 0x1d, 0x20, 0x14, 0x7f, 0x31, 0xb4, 0xcf, 0x2a, 0xd0, 0xb6, 0x06, 0xfb, 0x17, 0xe5, 0xac, 0x1a, 0xb5, 0x1e, 0xf4, 0xa7, 0xd8, 0x09, 0x3c, 0xee, 0x9a, 0x65, 0x5f, 0x47, 0x1d, 0xc5, 0xb1, 0x46, 0xbd, 0x1b, 0x93, 0xe5, 0x40, 0xa3, 0xd3, 0xd3, 0xe2, 0xde, 0x81, 0x05, 0x91, 0x1c, 0x10, 0xd6, 0xab, 0x5f, 0xf7, 0x9c, 0x2d, 0x06, 0x02, 0x7f, 0x7a, 0x54, 0x56, 0x1f, 0x20, 0x71, 0x41, 0x4b, 0xd3, 0x30, 0xa8, 0x78, 0x54, 0x42, 0x25, 0x1c, 0x81, 0x0e, 0x23, 0x2f, 0x83, 0xc3, 0x67, 0xf0, 0xbe, 0x77, 0x99, 0xa9, 0x3f, 0x52, 0x38, 0xf7, 0xf1, 0x7b, 0x5b, 0xe8, 0x29, 0xfd, 0x89, 0x12, 0x3c, 0x04, 0x83, 0x3a, 0xf8, 0xb7, 0x7e, 0x5a, 0x43, 0x63, 0x04, 0x7c, 0xec, 0xa7, };
9314 static const u8 ed25519_405_test_vectors_expected_sig[] = {
9315 	0xc2, 0xab, 0x1f, 0x6f, 0x51, 0x14, 0xa8, 0x4f, 0x21, 0x85, 0x02, 0x58, 0x2c, 0x56, 0x7b, 0x37, 0xa8, 0xbd, 0xbc, 0xdf, 0x63, 0x40, 0xfa, 0x46, 0x22, 0x87, 0x3b, 0xe8, 0x91, 0x06, 0xf0, 0xa9, 0x0b, 0x48, 0x29, 0x50, 0x5f, 0x72, 0x12, 0x9d, 0xf0, 0xab, 0x3d, 0x85, 0x13, 0x26, 0x87, 0x74, 0xa3, 0x4d, 0xf3, 0xad, 0x21, 0xce, 0x25, 0x4b, 0x46, 0x44, 0x88, 0xad, 0xdd, 0x6c, 0x9b, 0x04, };
9316 static const ec_test_case ed25519_405_test_case = {
9317 	.name = "EDDSA25519-SHA512/wei25519 405",
9318 	.ec_str_p = &wei25519_str_params,
9319 	.priv_key = ed25519_405_test_vectors_priv_key,
9320 	.priv_key_len = sizeof(ed25519_405_test_vectors_priv_key),
9321 	.nn_random = NULL,
9322 	.hash_type = SHA512,
9323 	.msg = (const char *)ed25519_405_test_vectors_message,
9324 	.msglen = sizeof(ed25519_405_test_vectors_message),
9325 	.sig_type = EDDSA25519,
9326 	.exp_sig = ed25519_405_test_vectors_expected_sig,
9327 	.exp_siglen = sizeof(ed25519_405_test_vectors_expected_sig),
9328 	.adata = NULL,
9329 	.adata_len = 0
9330 };
9331 
9332 /************************************************/
9333 static const u8 ed25519_406_test_vectors_priv_key[] = {
9334 	0xda, 0x80, 0x06, 0xad, 0xc4, 0x92, 0xca, 0x5d, 0xc8, 0x6c, 0x29, 0x59, 0x43, 0x7a, 0x75, 0xde, 0xb6, 0x12, 0x0f, 0xf7, 0x87, 0xd2, 0xec, 0xb9, 0xc2, 0x0c, 0x30, 0xb5, 0x2c, 0x26, 0xbc, 0x41, };
9335 static const u8 ed25519_406_test_vectors_message[] = {
9336 	0x3e, 0xb4, 0x32, 0x4d, 0xbc, 0x01, 0x49, 0xd2, 0xe7, 0xd6, 0xdf, 0x63, 0x2b, 0xb0, 0xcb, 0xe9, 0xa9, 0xf6, 0xdf, 0xa8, 0x3e, 0x22, 0x7f, 0xc0, 0x7b, 0xde, 0x1b, 0x57, 0x7b, 0x36, 0x11, 0xfb, 0x92, 0x1c, 0x9f, 0x83, 0x13, 0xf0, 0x68, 0xe6, 0x29, 0x5d, 0x49, 0x13, 0xa8, 0x19, 0x6b, 0xe5, 0x30, 0xf6, 0xa0, 0x1f, 0x57, 0xc0, 0x9c, 0x02, 0x84, 0x91, 0x44, 0x4b, 0x78, 0x47, 0x20, 0xe9, 0x09, 0xea, 0x1f, 0xb6, 0x9c, 0x1c, 0x1d, 0xd6, 0x30, 0x44, 0x00, 0x32, 0x7b, 0x77, 0x31, 0xb3, 0x3c, 0xc4, 0x6d, 0xeb, 0x04, 0x6c, 0xda, 0xb6, 0xad, 0x1b, 0x53, 0xf1, 0x74, 0x9a, 0x0c, 0x65, 0xcb, 0x9a, 0x7e, 0x37, 0x6f, 0xfa, 0x02, 0x23, 0x0f, 0x53, 0x65, 0x84, 0xae, 0xa2, 0x43, 0xc6, 0x39, 0x10, 0x3a, 0xdb, 0xba, 0x76, 0x43, 0x21, 0x64, 0x9d, 0x7e, 0x01, 0x26, 0xf8, 0x2e, 0x0b, 0x4f, 0xd9, 0xdc, 0xb8, 0x6c, 0x73, 0x1c, 0xbc, 0xc5, 0x17, 0xf2, 0x01, 0x68, 0x41, 0xe9, 0x16, 0xbc, 0xd5, 0xfd, 0xe8, 0x71, 0xdc, 0x09, 0x8c, 0xd9, 0x13, 0xdc, 0x54, 0x62, 0x84, 0xd1, 0xb2, 0x16, 0x5c, 0x63, 0xe8, 0x8f, 0x32, 0xa2, 0x78, 0x9a, 0x50, 0x08, 0x56, 0x37, 0x1b, 0x50, 0xd2, 0x2f, 0xb8, 0xc8, 0x7d, 0x1a, 0x3c, 0xae, 0xdc, 0xdf, 0xd0, 0x1e, 0xe5, 0xf8, 0x70, 0xa5, 0x3c, 0x28, 0x41, 0x81, 0xd6, 0x32, 0xec, 0x66, 0xd4, 0x8b, 0x6b, 0xdd, 0x56, 0x46, 0xac, 0x39, 0xc9, 0xe7, 0x53, 0x38, 0xa5, 0x20, 0x21, 0x20, 0x62, 0xbc, 0x34, 0x66, 0xef, 0x5c, 0x58, 0x76, 0x55, 0x70, 0xb9, 0x05, 0xf6, 0x3a, 0x93, 0xd0, 0x7f, 0x8f, 0x1b, 0xaa, 0xc3, 0x52, 0x6b, 0x01, 0x6d, 0xa7, 0x99, 0xf3, 0xe9, 0xe0, 0x3a, 0x4f, 0x7f, 0x81, 0x35, 0x5e, 0x0f, 0x7a, 0x76, 0xf3, 0x0a, 0x42, 0xb8, 0x07, 0x32, 0x20, 0x51, 0xb7, 0x1c, 0x62, 0x6a, 0x7a, 0x29, 0x6d, 0x75, 0xb9, 0xd9, 0xd1, 0xa2, 0x3b, 0xcb, 0x13, 0xc9, 0xef, 0x48, 0xa9, 0x12, 0xdc, 0x05, 0x73, 0x25, 0xd3, 0xbc, 0xfb, 0x3f, 0x9f, 0xad, 0xaf, 0x0c, 0x24, 0x9b, 0x10, 0x2a, 0xeb, 0x85, 0x4a, 0xa3, 0x63, 0x1e, 0x34, 0xf6, 0x9a, 0xd9, 0x0c, 0x2a, 0xb2, 0xed, 0x33, 0xba, 0xcc, 0x40, 0xb9, 0xed, 0x10, 0x37, 0xfa, 0xe6, 0x7c, 0xdf, 0x79, 0x9d, 0x5a, 0x9b, 0x43, 0x78, 0x59, 0x61, 0x12, 0x7d, 0x62, 0xf8, 0xe0, 0xbc, 0x15, 0x89, 0xfd, 0x1a, 0x06, 0xfc, 0xa2, 0xae, 0xa7, 0xcf, 0xc0, 0x12, 0xcb, 0xf7, 0xb5, 0xb2, 0x07, 0xdd, 0xc4, 0xe6, 0x77, 0xd8, 0xae, 0x4a, 0xec, 0x10, 0x00, 0x45, 0xce, 0x36, 0xc0, 0x0b, 0x74, 0xd1, 0xd2, 0x82, 0x50, 0x79, 0x12, 0x36, 0xdc, 0x5d, 0xcc, 0x1e, 0xd3, 0x13, 0xc8, 0xc2, 0x46, 0x17, 0x26, 0x66, 0xf7, 0x52, 0x17, 0x43, 0x7c, 0x60, 0x34, 0xac, 0xd6, 0x41, 0x98, 0xcd, 0x96, 0xdf, 0x2a, };
9337 static const u8 ed25519_406_test_vectors_expected_sig[] = {
9338 	0x1f, 0x53, 0x75, 0xdc, 0xb3, 0xad, 0x2b, 0xaa, 0xff, 0x95, 0x6d, 0x85, 0x54, 0xec, 0xb4, 0x24, 0x17, 0x6b, 0xe9, 0xa6, 0xeb, 0x9e, 0xa5, 0x4e, 0x81, 0x4e, 0x0a, 0x73, 0xdf, 0x2a, 0x5d, 0x84, 0x8a, 0xda, 0x26, 0xba, 0x8e, 0x18, 0x05, 0xcd, 0x51, 0xc5, 0xe1, 0x69, 0x50, 0xc1, 0xff, 0x7d, 0x4d, 0x27, 0x64, 0xda, 0xa6, 0xf4, 0xc7, 0x50, 0x2f, 0xb8, 0x65, 0xcb, 0xe5, 0x5a, 0xaf, 0x0b, };
9339 static const ec_test_case ed25519_406_test_case = {
9340 	.name = "EDDSA25519-SHA512/wei25519 406",
9341 	.ec_str_p = &wei25519_str_params,
9342 	.priv_key = ed25519_406_test_vectors_priv_key,
9343 	.priv_key_len = sizeof(ed25519_406_test_vectors_priv_key),
9344 	.nn_random = NULL,
9345 	.hash_type = SHA512,
9346 	.msg = (const char *)ed25519_406_test_vectors_message,
9347 	.msglen = sizeof(ed25519_406_test_vectors_message),
9348 	.sig_type = EDDSA25519,
9349 	.exp_sig = ed25519_406_test_vectors_expected_sig,
9350 	.exp_siglen = sizeof(ed25519_406_test_vectors_expected_sig),
9351 	.adata = NULL,
9352 	.adata_len = 0
9353 };
9354 
9355 /************************************************/
9356 static const u8 ed25519_407_test_vectors_priv_key[] = {
9357 	0xa2, 0x84, 0xe2, 0x6b, 0x97, 0xe5, 0x38, 0x83, 0x9c, 0x80, 0x8d, 0x45, 0xbd, 0xe6, 0xf0, 0x12, 0xa3, 0x54, 0x45, 0x4a, 0xef, 0x81, 0xca, 0xa8, 0xc5, 0x59, 0x14, 0x62, 0x4f, 0x2b, 0x7d, 0x66, };
9358 static const u8 ed25519_407_test_vectors_message[] = {
9359 	0x9e, 0xbf, 0xe9, 0x10, 0xb5, 0x0a, 0x5c, 0xb7, 0x19, 0xd9, 0x5b, 0x96, 0x1e, 0x59, 0x05, 0xf0, 0x0e, 0xc7, 0x94, 0x3b, 0x55, 0x46, 0x8a, 0xb5, 0x95, 0x66, 0x92, 0x01, 0x76, 0x45, 0xb3, 0x66, 0x07, 0x1f, 0x8f, 0xbb, 0x77, 0xeb, 0x49, 0xec, 0x73, 0xea, 0x7d, 0x64, 0x51, 0x14, 0x05, 0xb9, 0x0d, 0xe2, 0x2d, 0xb9, 0x8c, 0x3e, 0xae, 0x39, 0xc4, 0x03, 0x9c, 0x7a, 0x13, 0x34, 0x30, 0xe8, 0x01, 0x0b, 0xdd, 0x39, 0xa0, 0x0f, 0xd1, 0xa5, 0x28, 0xb1, 0x13, 0xda, 0xe1, 0x49, 0xcf, 0xad, 0x3a, 0xe3, 0x40, 0xda, 0x27, 0xdc, 0xc5, 0x07, 0x78, 0x2e, 0xcd, 0x89, 0x29, 0x23, 0x75, 0x17, 0xaf, 0xe7, 0x46, 0x3e, 0xca, 0x24, 0x73, 0xc7, 0xac, 0xf6, 0xf7, 0xaa, 0x04, 0xef, 0xc9, 0xf2, 0x66, 0xae, 0x7b, 0x6d, 0x63, 0xbb, 0x8c, 0xc2, 0xa4, 0x38, 0xb3, 0x44, 0x82, 0x7f, 0x07, 0x13, 0xd1, 0xf1, 0x73, 0x6f, 0x0c, 0xbb, 0x65, 0xb9, 0x93, 0x53, 0xf2, 0x03, 0x55, 0xfa, 0x02, 0x30, 0xd4, 0xfa, 0x70, 0x73, 0x28, 0xa8, 0x66, 0x26, 0x54, 0xe8, 0x3a, 0xd0, 0x53, 0x0a, 0x10, 0xf9, 0xa6, 0x9e, 0x17, 0xc0, 0x99, 0xe1, 0xe2, 0xb5, 0xdb, 0x18, 0xe5, 0xf6, 0xf1, 0xdc, 0xed, 0xa5, 0x88, 0x3e, 0x8c, 0xab, 0x79, 0x70, 0x1a, 0x5e, 0x90, 0x89, 0x56, 0x2e, 0xd1, 0x53, 0xad, 0x08, 0xc6, 0x74, 0xf0, 0x97, 0xc2, 0x8e, 0x4d, 0x16, 0x63, 0x3e, 0x09, 0x29, 0x69, 0xa8, 0xf0, 0xbd, 0xac, 0x54, 0x52, 0x7c, 0x0e, 0xe0, 0x3b, 0xc2, 0x00, 0xe5, 0xbe, 0x61, 0x2e, 0x3d, 0x1e, 0xab, 0xd8, 0x70, 0x91, 0x10, 0x1b, 0x49, 0x62, 0xaf, 0xa0, 0x7b, 0x31, 0x08, 0x06, 0x99, 0x2f, 0x37, 0x30, 0x76, 0xd7, 0x6a, 0x58, 0x18, 0x51, 0x18, 0x13, 0x7c, 0x9d, 0x26, 0xee, 0x2c, 0xd4, 0xc6, 0x18, 0xc1, 0x82, 0x83, 0xdd, 0x19, 0xf0, 0xe7, 0xa0, 0x89, 0xee, 0x37, 0x30, 0x5b, 0x6b, 0x95, 0x18, 0xa7, 0x8d, 0x80, 0x98, 0x43, 0x6e, 0xf6, 0x2b, 0xe7, 0xd6, 0x99, 0x80, 0x8a, 0xce, 0xcf, 0x67, 0x93, 0x9d, 0x61, 0xb3, 0xe0, 0x29, 0x37, 0xcd, 0x8c, 0x5f, 0x1e, 0x74, 0x6d, 0x42, 0x74, 0x33, 0x4b, 0xc9, 0xc3, 0x7f, 0xdc, 0xba, 0x23, 0x4c, 0x16, 0x6f, 0xd7, 0x12, 0x89, 0x3f, 0x3a, 0x04, 0x08, 0x32, 0xec, 0x54, 0x25, 0xe5, 0x7d, 0x80, 0xf1, 0x1e, 0xf9, 0xca, 0x5f, 0xbc, 0xd6, 0xc1, 0x47, 0xfb, 0xbf, 0x5e, 0x2f, 0xae, 0x74, 0x6e, 0x0d, 0xdb, 0x60, 0x58, 0x67, 0xe3, 0xbd, 0x05, 0x04, 0x83, 0xc3, 0xcd, 0x13, 0x29, 0xab, 0xe5, 0x7a, 0x60, 0xbf, 0x88, 0x89, 0x8d, 0xc7, 0xe8, 0x0e, 0xde, 0x0f, 0x45, 0x17, 0xde, 0x8f, 0xc8, 0x07, 0xe8, 0x88, 0xb6, 0x21, 0xa0, 0x0f, 0x66, 0x30, 0x84, 0xff, 0x94, 0xb9, 0x99, 0x96, 0x62, 0x8f, 0x3b, 0x11, 0x69, 0x0a, 0x60, 0xf0, 0x91, 0x8c, 0xb5, 0xc9, 0xa7, 0xef, };
9360 static const u8 ed25519_407_test_vectors_expected_sig[] = {
9361 	0xbf, 0x11, 0x0e, 0x2e, 0x9c, 0xec, 0xbc, 0x31, 0xfa, 0x3e, 0x0c, 0x24, 0x38, 0xcd, 0x1f, 0x43, 0x21, 0xf9, 0x2c, 0xd2, 0x87, 0x00, 0x5a, 0x48, 0x52, 0x8a, 0xdd, 0xf7, 0x6c, 0xad, 0x8d, 0x88, 0xbb, 0x22, 0x71, 0x9e, 0xf9, 0x1b, 0x13, 0x95, 0x62, 0xa1, 0x51, 0x18, 0x38, 0x68, 0x26, 0x74, 0xfa, 0xa9, 0xff, 0x7e, 0x7a, 0xde, 0x6c, 0x9d, 0x57, 0x3f, 0x84, 0x50, 0x36, 0xd1, 0x89, 0x05, };
9362 static const ec_test_case ed25519_407_test_case = {
9363 	.name = "EDDSA25519-SHA512/wei25519 407",
9364 	.ec_str_p = &wei25519_str_params,
9365 	.priv_key = ed25519_407_test_vectors_priv_key,
9366 	.priv_key_len = sizeof(ed25519_407_test_vectors_priv_key),
9367 	.nn_random = NULL,
9368 	.hash_type = SHA512,
9369 	.msg = (const char *)ed25519_407_test_vectors_message,
9370 	.msglen = sizeof(ed25519_407_test_vectors_message),
9371 	.sig_type = EDDSA25519,
9372 	.exp_sig = ed25519_407_test_vectors_expected_sig,
9373 	.exp_siglen = sizeof(ed25519_407_test_vectors_expected_sig),
9374 	.adata = NULL,
9375 	.adata_len = 0
9376 };
9377 
9378 /************************************************/
9379 static const u8 ed25519_408_test_vectors_priv_key[] = {
9380 	0xcc, 0x97, 0xa9, 0x63, 0x01, 0xce, 0xed, 0x0f, 0x92, 0x27, 0x31, 0xb6, 0x85, 0xba, 0xd8, 0xad, 0x4f, 0x06, 0x20, 0x7b, 0xe3, 0x40, 0xf5, 0xa4, 0x4f, 0xd1, 0x87, 0xf2, 0x99, 0x03, 0xec, 0x20, };
9381 static const u8 ed25519_408_test_vectors_message[] = {
9382 	0xb9, 0xea, 0x3b, 0x3d, 0xf7, 0x18, 0x7e, 0xa4, 0x15, 0xa3, 0xc3, 0x35, 0xe0, 0x83, 0x4e, 0x10, 0xf4, 0x40, 0x91, 0x5b, 0x2a, 0xd4, 0x1c, 0x71, 0xf2, 0x55, 0xd6, 0x95, 0x0a, 0x4e, 0x91, 0x20, 0xe4, 0xd4, 0x94, 0xfd, 0x9e, 0x67, 0x2c, 0xe5, 0x32, 0x06, 0xfd, 0xc4, 0x17, 0xd8, 0x65, 0x89, 0x7b, 0x47, 0xac, 0x10, 0x54, 0xe1, 0xca, 0x10, 0x68, 0x19, 0x52, 0x32, 0xd4, 0x29, 0x74, 0x35, 0xe4, 0x4e, 0x12, 0x24, 0xe6, 0x6a, 0x91, 0x2d, 0x9d, 0x7d, 0x18, 0x29, 0x46, 0xff, 0x5a, 0x9f, 0x08, 0x5b, 0xb8, 0xba, 0x19, 0xc5, 0x4d, 0x16, 0xb5, 0x86, 0xa9, 0xb3, 0x04, 0x61, 0xb6, 0x77, 0x3b, 0x93, 0x95, 0x03, 0x11, 0xe1, 0x61, 0x98, 0x86, 0xf5, 0xa5, 0xb3, 0xf1, 0x11, 0xaa, 0xad, 0x09, 0x4b, 0xae, 0x31, 0xc4, 0x8f, 0x19, 0x41, 0x08, 0x09, 0x68, 0xbd, 0x02, 0x77, 0xbb, 0x6f, 0xa9, 0x2e, 0xeb, 0xf3, 0x24, 0xb1, 0x92, 0xdf, 0x5c, 0xc9, 0x69, 0x51, 0x6c, 0x78, 0xc7, 0xb2, 0xd1, 0x21, 0x59, 0xb4, 0xd1, 0xc8, 0xeb, 0x03, 0x16, 0x0c, 0x4c, 0xd1, 0x90, 0x7f, 0x62, 0xed, 0x4b, 0x85, 0x4c, 0x56, 0x9e, 0xcc, 0x48, 0x1c, 0x08, 0xe6, 0x36, 0xf4, 0x4e, 0xd7, 0xc3, 0x90, 0xe5, 0x8b, 0x59, 0x37, 0xd2, 0x90, 0x6b, 0x28, 0x17, 0xbc, 0x37, 0x69, 0xda, 0xd9, 0xda, 0x1b, 0x0f, 0x79, 0x39, 0x1b, 0x55, 0x94, 0x20, 0x63, 0x05, 0x5d, 0xa0, 0xd6, 0xf2, 0x49, 0xa3, 0xe4, 0x52, 0xba, 0xdd, 0xaa, 0x03, 0x29, 0x98, 0xd7, 0xf7, 0x33, 0x98, 0xcc, 0xd0, 0x15, 0x1b, 0xfc, 0x92, 0xc5, 0xe2, 0xfd, 0xfa, 0x9b, 0x14, 0x85, 0x5e, 0x6b, 0x0d, 0x37, 0x46, 0xdc, 0xe2, 0x48, 0xe2, 0x19, 0x67, 0x29, 0x87, 0x25, 0x2e, 0xc7, 0x47, 0xdf, 0x27, 0x47, 0xfd, 0x3f, 0xbd, 0x8b, 0x71, 0x4c, 0x88, 0x2d, 0x70, 0x7e, 0xe3, 0x02, 0xa9, 0x04, 0x95, 0x0c, 0x34, 0x75, 0x4f, 0x85, 0x35, 0x0e, 0x1a, 0xa3, 0xf8, 0xea, 0x62, 0x93, 0xcf, 0x01, 0xf7, 0x17, 0xce, 0xfb, 0x6b, 0x83, 0xa2, 0x21, 0x26, 0xdf, 0x5c, 0x4f, 0x56, 0x98, 0xaa, 0xfd, 0x06, 0xa2, 0x24, 0x4a, 0xd7, 0xd0, 0x1f, 0x34, 0x01, 0x7c, 0xa0, 0xec, 0xe6, 0xf2, 0x10, 0x40, 0x04, 0x8a, 0xba, 0x6c, 0xa4, 0xae, 0xb0, 0x43, 0x25, 0xb9, 0x40, 0x2b, 0xcd, 0x43, 0xab, 0x13, 0x0a, 0x10, 0x57, 0x88, 0xac, 0x3d, 0x7b, 0x7d, 0xa0, 0x1e, 0xa9, 0x42, 0x6d, 0xd0, 0xea, 0x19, 0x33, 0xa8, 0x18, 0x99, 0x33, 0xa6, 0xc0, 0xc6, 0xcd, 0x64, 0x8e, 0xa3, 0x16, 0xa7, 0x46, 0x9a, 0x5f, 0xdc, 0x6e, 0x7c, 0x93, 0x4d, 0x91, 0x86, 0x58, 0x60, 0x97, 0xb5, 0x5d, 0xd5, 0x1a, 0xc4, 0x87, 0xbb, 0x80, 0xed, 0x11, 0xd4, 0xdf, 0x8d, 0x33, 0x62, 0x6b, 0xbc, 0xe9, 0x5e, 0x4f, 0x13, 0xbd, 0x49, 0x92, 0x2f, 0x00, 0xc9, 0x20, 0x22, 0x3f, 0x4c, 0xbf, 0x93, 0xcb, };
9383 static const u8 ed25519_408_test_vectors_expected_sig[] = {
9384 	0xff, 0xbd, 0xd3, 0x24, 0x41, 0x81, 0xcd, 0xf6, 0x03, 0x4f, 0x4a, 0x45, 0x0f, 0xdd, 0x95, 0xde, 0xe4, 0x97, 0x1a, 0x93, 0x3f, 0x8b, 0xe0, 0x22, 0xbb, 0x0a, 0x41, 0x06, 0xae, 0xf3, 0x9a, 0xf3, 0x05, 0x5b, 0x72, 0x18, 0x81, 0xc9, 0xb5, 0x4d, 0x1e, 0x99, 0xb9, 0x40, 0x90, 0x96, 0xfb, 0xe6, 0xdc, 0x2c, 0x99, 0x66, 0xe3, 0x67, 0x99, 0x64, 0xbd, 0x7e, 0xf4, 0xc8, 0x08, 0xca, 0xbf, 0x01, };
9385 static const ec_test_case ed25519_408_test_case = {
9386 	.name = "EDDSA25519-SHA512/wei25519 408",
9387 	.ec_str_p = &wei25519_str_params,
9388 	.priv_key = ed25519_408_test_vectors_priv_key,
9389 	.priv_key_len = sizeof(ed25519_408_test_vectors_priv_key),
9390 	.nn_random = NULL,
9391 	.hash_type = SHA512,
9392 	.msg = (const char *)ed25519_408_test_vectors_message,
9393 	.msglen = sizeof(ed25519_408_test_vectors_message),
9394 	.sig_type = EDDSA25519,
9395 	.exp_sig = ed25519_408_test_vectors_expected_sig,
9396 	.exp_siglen = sizeof(ed25519_408_test_vectors_expected_sig),
9397 	.adata = NULL,
9398 	.adata_len = 0
9399 };
9400 
9401 /************************************************/
9402 static const u8 ed25519_409_test_vectors_priv_key[] = {
9403 	0x67, 0x9e, 0x3e, 0x34, 0x77, 0x3a, 0xbe, 0x4a, 0xe2, 0x5c, 0xae, 0x7d, 0x07, 0xcc, 0xd0, 0xeb, 0x3b, 0x0e, 0xc0, 0xa3, 0x5d, 0x57, 0x02, 0x57, 0xd6, 0x25, 0x70, 0xde, 0x58, 0xea, 0x25, 0x16, };
9404 static const u8 ed25519_409_test_vectors_message[] = {
9405 	0xfb, 0x2b, 0x64, 0x8e, 0xbb, 0x16, 0x68, 0x82, 0x44, 0xf7, 0x8b, 0x2e, 0xe9, 0xa2, 0x73, 0x59, 0x9d, 0x56, 0xb6, 0x19, 0x89, 0x00, 0xd4, 0x38, 0xa9, 0xe9, 0x9c, 0x19, 0x14, 0x25, 0xc7, 0x2b, 0xec, 0x4f, 0x23, 0x58, 0x47, 0xe1, 0x8e, 0x47, 0xf5, 0x7c, 0x3c, 0xb3, 0x96, 0x65, 0x5f, 0x77, 0x89, 0x21, 0xf9, 0x08, 0x58, 0x0e, 0x8e, 0x83, 0xc9, 0x6c, 0x10, 0x8b, 0x20, 0xdd, 0x41, 0x66, 0x78, 0x02, 0x1b, 0xca, 0x25, 0x9b, 0x98, 0x51, 0x8f, 0xab, 0xb2, 0xd3, 0x53, 0x2e, 0x48, 0x51, 0xd9, 0xd5, 0x2a, 0xdd, 0x25, 0x42, 0xc0, 0xcb, 0x3e, 0xfa, 0x38, 0x57, 0xa1, 0x7e, 0x51, 0x24, 0x38, 0xbc, 0x0e, 0xc4, 0x76, 0x2e, 0x2f, 0x9b, 0xab, 0xa4, 0x29, 0xc0, 0x3e, 0x99, 0xbe, 0xc4, 0x03, 0x8e, 0x6b, 0x0c, 0xa4, 0x2b, 0xff, 0x5b, 0x23, 0x3b, 0x24, 0xc3, 0x33, 0xb4, 0xca, 0xea, 0xd2, 0xde, 0x37, 0x4a, 0x87, 0xb2, 0xab, 0x5d, 0x80, 0xd6, 0xe4, 0x9e, 0x44, 0x56, 0x32, 0x9d, 0x51, 0xae, 0x97, 0x3b, 0xc8, 0x3d, 0x78, 0x62, 0xf3, 0xd3, 0x15, 0xe5, 0x14, 0x48, 0x1b, 0x12, 0x85, 0x4a, 0x9d, 0xfc, 0x09, 0xe7, 0xd1, 0x4f, 0x0d, 0x02, 0x2c, 0x0b, 0xa3, 0x02, 0x25, 0x78, 0xeb, 0xa8, 0xf8, 0x74, 0xde, 0xba, 0x4a, 0xa8, 0xc8, 0x33, 0xf2, 0xb1, 0x32, 0x86, 0x1d, 0x4d, 0x51, 0xe5, 0x0f, 0xe9, 0xaa, 0x4b, 0x78, 0x7b, 0xd2, 0xf0, 0x51, 0xaa, 0xc5, 0x0c, 0x37, 0x53, 0x90, 0xcb, 0xbc, 0xfb, 0xa2, 0x00, 0x2b, 0x80, 0xad, 0x00, 0xcd, 0xc1, 0x29, 0x80, 0xf8, 0xba, 0x8b, 0xcb, 0x70, 0x64, 0xaf, 0xc0, 0x4d, 0x5c, 0x46, 0x82, 0xc1, 0x02, 0x9b, 0x10, 0xa6, 0xd4, 0x5f, 0xe6, 0xec, 0xd7, 0x04, 0x24, 0x5f, 0xaf, 0x59, 0x8c, 0x46, 0x59, 0x59, 0x7c, 0x5d, 0x68, 0xa1, 0x92, 0xcc, 0x1c, 0xd4, 0xfa, 0x45, 0xe8, 0x4b, 0x54, 0x9e, 0x8e, 0x5e, 0x67, 0xda, 0xa8, 0x79, 0xae, 0x5a, 0x52, 0x0a, 0x6b, 0x55, 0x50, 0x51, 0x98, 0x76, 0xa5, 0x62, 0xac, 0x49, 0xc6, 0xdb, 0x0a, 0xa7, 0x6e, 0xc6, 0x9b, 0xb6, 0x4d, 0xd6, 0xb5, 0xe1, 0xa3, 0xaf, 0x2e, 0x13, 0x1e, 0x72, 0x2e, 0x7c, 0xdd, 0x05, 0xbe, 0x34, 0xb5, 0xfc, 0xc6, 0x25, 0x9a, 0xa1, 0x24, 0xcc, 0xf8, 0x14, 0xcf, 0x5b, 0x50, 0x0d, 0x17, 0x6b, 0xe2, 0x8e, 0xbc, 0x40, 0xbb, 0x21, 0xf0, 0x3e, 0x24, 0xcc, 0xc1, 0x31, 0xe0, 0xf4, 0x1d, 0xaa, 0x1c, 0xa0, 0x2e, 0x6b, 0x00, 0xc9, 0xc5, 0x3f, 0xad, 0x12, 0x48, 0x61, 0x4e, 0x94, 0x0d, 0x4b, 0x23, 0x77, 0x60, 0xab, 0x75, 0x69, 0xa7, 0x67, 0xb7, 0x51, 0x5d, 0xd2, 0xd6, 0x23, 0xe5, 0x7a, 0x28, 0x41, 0xb7, 0xd2, 0x44, 0x1c, 0xf4, 0x30, 0x49, 0xe4, 0x69, 0x8d, 0x2f, 0x9c, 0x9e, 0xae, 0x7b, 0x29, 0x10, 0xf6, 0xad, 0x65, 0xed, 0xf9, 0xcb, 0x2b, 0xdb, 0xd9, 0xb2, 0x9f, 0x60, 0x6e, 0x0d, };
9406 static const u8 ed25519_409_test_vectors_expected_sig[] = {
9407 	0x1a, 0x51, 0x02, 0x26, 0x28, 0xcc, 0xbb, 0x88, 0xea, 0xe9, 0xb2, 0x17, 0x73, 0xc3, 0xf8, 0x30, 0xb7, 0xb6, 0xe5, 0xbc, 0x36, 0xc9, 0x90, 0x3c, 0xe7, 0x0f, 0xbc, 0xf4, 0x59, 0xd6, 0xa1, 0xed, 0x8a, 0x1d, 0xce, 0xff, 0x5b, 0x19, 0x26, 0x9e, 0xbf, 0x5a, 0x6f, 0xd3, 0xd8, 0x95, 0x88, 0x60, 0xf5, 0x54, 0x46, 0x1f, 0x0e, 0x9f, 0xc0, 0xe2, 0x9a, 0xf9, 0xb1, 0xfb, 0x17, 0x44, 0xa8, 0x0b, };
9408 static const ec_test_case ed25519_409_test_case = {
9409 	.name = "EDDSA25519-SHA512/wei25519 409",
9410 	.ec_str_p = &wei25519_str_params,
9411 	.priv_key = ed25519_409_test_vectors_priv_key,
9412 	.priv_key_len = sizeof(ed25519_409_test_vectors_priv_key),
9413 	.nn_random = NULL,
9414 	.hash_type = SHA512,
9415 	.msg = (const char *)ed25519_409_test_vectors_message,
9416 	.msglen = sizeof(ed25519_409_test_vectors_message),
9417 	.sig_type = EDDSA25519,
9418 	.exp_sig = ed25519_409_test_vectors_expected_sig,
9419 	.exp_siglen = sizeof(ed25519_409_test_vectors_expected_sig),
9420 	.adata = NULL,
9421 	.adata_len = 0
9422 };
9423 
9424 /************************************************/
9425 static const u8 ed25519_410_test_vectors_priv_key[] = {
9426 	0x9b, 0xfa, 0x60, 0x92, 0x3a, 0x43, 0xed, 0x0c, 0x24, 0xe2, 0xf1, 0x2f, 0x5b, 0x86, 0xa0, 0x71, 0x63, 0x29, 0xf9, 0x3d, 0x4d, 0x8d, 0x3e, 0x06, 0x23, 0x80, 0x02, 0x89, 0x32, 0x78, 0xc1, 0x9a, };
9427 static const u8 ed25519_410_test_vectors_message[] = {
9428 	0xa9, 0x90, 0x28, 0xb0, 0xf4, 0xa3, 0xaa, 0x5e, 0x79, 0xab, 0xef, 0x6c, 0x0d, 0xf4, 0xa7, 0x83, 0xef, 0x47, 0x0f, 0x1a, 0x29, 0xba, 0x51, 0xeb, 0xa0, 0x0f, 0x62, 0x14, 0xe8, 0x40, 0xfe, 0x19, 0xe5, 0xb6, 0xdc, 0x60, 0x21, 0xab, 0x59, 0x9b, 0xb2, 0xee, 0x36, 0x99, 0x57, 0x60, 0x15, 0xd7, 0x9a, 0x79, 0x39, 0xaf, 0x82, 0x35, 0x35, 0xb6, 0x30, 0xe3, 0x93, 0x8c, 0x72, 0x3f, 0x6e, 0x0b, 0x92, 0x29, 0xd4, 0x6b, 0xb3, 0x37, 0x9a, 0xcd, 0xba, 0x58, 0x7c, 0x23, 0x85, 0x67, 0xe3, 0xd8, 0x9b, 0xc3, 0xbd, 0x35, 0x19, 0xb7, 0x27, 0xfc, 0x69, 0x4f, 0xff, 0x11, 0x18, 0xbf, 0x22, 0xc8, 0xbc, 0x8b, 0xc8, 0x2c, 0x4d, 0xf7, 0xf5, 0xad, 0x38, 0xde, 0x05, 0xfe, 0x9f, 0x76, 0x29, 0x99, 0xec, 0xaa, 0x79, 0x5f, 0x3a, 0xe6, 0x30, 0xa9, 0xa3, 0x16, 0xd2, 0x6d, 0xce, 0x9f, 0x15, 0x68, 0xff, 0xa3, 0xf2, 0x2b, 0x02, 0x95, 0x21, 0x40, 0x20, 0xb3, 0xd3, 0xf5, 0x33, 0x7c, 0x14, 0x95, 0x68, 0x19, 0x22, 0x18, 0x13, 0x2a, 0x90, 0x70, 0x92, 0x79, 0xc0, 0x1d, 0x23, 0xba, 0xef, 0xa6, 0x69, 0xe1, 0xc4, 0xe4, 0x20, 0x38, 0x17, 0x3f, 0x13, 0x19, 0xc2, 0x12, 0xda, 0x14, 0x4f, 0x1c, 0x4e, 0xa4, 0xc5, 0x2c, 0x00, 0x5c, 0xbc, 0x0b, 0x5b, 0xc2, 0x83, 0xe7, 0x44, 0x83, 0xa0, 0xdc, 0xa6, 0x92, 0x79, 0xde, 0xb1, 0x7a, 0xe5, 0xb2, 0x9c, 0xfa, 0xfa, 0x7d, 0x00, 0x63, 0xf4, 0xe1, 0xbc, 0x93, 0x53, 0x7e, 0xfd, 0x93, 0x7e, 0x58, 0xa8, 0xac, 0xa7, 0x37, 0x22, 0x8f, 0x93, 0x7f, 0xf2, 0xa7, 0x41, 0x89, 0x0e, 0x96, 0xc5, 0x72, 0x5d, 0xa1, 0x1b, 0x45, 0xc4, 0x13, 0xa9, 0xbb, 0xb4, 0x18, 0x0a, 0x41, 0x99, 0x87, 0xbb, 0xf0, 0x46, 0xbf, 0xd3, 0x46, 0x29, 0x5d, 0x62, 0xf0, 0x81, 0xc7, 0x6d, 0xaf, 0x2b, 0x0e, 0x1e, 0xb4, 0xf6, 0x71, 0x2f, 0xee, 0xbe, 0x6f, 0x0a, 0x92, 0xe3, 0x58, 0xe7, 0xdd, 0xb8, 0x58, 0x96, 0x50, 0x7c, 0x34, 0x0a, 0x01, 0xf6, 0x8d, 0x1b, 0x0f, 0x08, 0x57, 0x78, 0xb7, 0xc4, 0x4b, 0x01, 0x4a, 0xa6, 0x67, 0x3e, 0x50, 0x17, 0x96, 0x95, 0x9a, 0x17, 0xa6, 0x88, 0xdb, 0x09, 0x59, 0x05, 0x84, 0x88, 0xa7, 0x11, 0x25, 0x72, 0xf2, 0x3c, 0xf9, 0xcd, 0xb5, 0x3b, 0x5e, 0xb4, 0xb4, 0x5f, 0x59, 0x53, 0xba, 0x0c, 0x0c, 0x69, 0x0f, 0x86, 0xbd, 0x75, 0xe8, 0x9a, 0x04, 0x7b, 0xeb, 0xaf, 0x84, 0x7c, 0x1d, 0xfc, 0x34, 0x5a, 0x4f, 0x3c, 0x7d, 0x3b, 0xee, 0xc9, 0x8b, 0x84, 0xb0, 0x21, 0x90, 0x03, 0xe8, 0x19, 0xf5, 0xc2, 0xad, 0xb4, 0x5f, 0x87, 0x17, 0x90, 0x3d, 0x1f, 0x5b, 0xd5, 0xd7, 0x19, 0x14, 0xc5, 0x6f, 0xca, 0xbc, 0x7a, 0x29, 0x0f, 0x9c, 0x41, 0x69, 0x9c, 0x95, 0x58, 0x4d, 0x6a, 0x3a, 0x16, 0x34, 0x0c, 0xb1, 0x7b, 0xaa, 0x1f, 0xc5, 0xe5, 0x46, 0x7a, 0xf7, 0xac, 0x32, 0x21, };
9429 static const u8 ed25519_410_test_vectors_expected_sig[] = {
9430 	0x55, 0xf2, 0x02, 0xef, 0xb2, 0xa5, 0x7b, 0xe8, 0xb4, 0xe4, 0xfd, 0x89, 0x4d, 0xcc, 0x11, 0xa4, 0xfc, 0x5f, 0x82, 0x76, 0x61, 0x8e, 0xf5, 0xcd, 0x34, 0xa4, 0x49, 0x5a, 0xdb, 0x01, 0x6a, 0x29, 0x8e, 0x64, 0x80, 0xa3, 0x5c, 0xfc, 0x53, 0xed, 0xb2, 0x5f, 0xf1, 0x49, 0x9f, 0xc5, 0x32, 0xa3, 0x30, 0x61, 0xcc, 0x01, 0xa2, 0x50, 0x45, 0x8a, 0xa5, 0xe4, 0xf7, 0xf1, 0x6f, 0x51, 0x44, 0x0d, };
9431 static const ec_test_case ed25519_410_test_case = {
9432 	.name = "EDDSA25519-SHA512/wei25519 410",
9433 	.ec_str_p = &wei25519_str_params,
9434 	.priv_key = ed25519_410_test_vectors_priv_key,
9435 	.priv_key_len = sizeof(ed25519_410_test_vectors_priv_key),
9436 	.nn_random = NULL,
9437 	.hash_type = SHA512,
9438 	.msg = (const char *)ed25519_410_test_vectors_message,
9439 	.msglen = sizeof(ed25519_410_test_vectors_message),
9440 	.sig_type = EDDSA25519,
9441 	.exp_sig = ed25519_410_test_vectors_expected_sig,
9442 	.exp_siglen = sizeof(ed25519_410_test_vectors_expected_sig),
9443 	.adata = NULL,
9444 	.adata_len = 0
9445 };
9446 
9447 /************************************************/
9448 static const u8 ed25519_411_test_vectors_priv_key[] = {
9449 	0x6e, 0x3a, 0xf4, 0x5e, 0x66, 0xe2, 0x28, 0x90, 0xc3, 0xf3, 0xc9, 0x34, 0xf5, 0x23, 0xa4, 0xd6, 0x94, 0x27, 0x97, 0x6e, 0x6e, 0x52, 0x62, 0x5f, 0x8b, 0xad, 0x55, 0x89, 0x93, 0x96, 0x32, 0x19, };
9450 static const u8 ed25519_411_test_vectors_message[] = {
9451 	0x5c, 0xfc, 0x2f, 0x4b, 0x55, 0x9f, 0x82, 0x05, 0xb3, 0x91, 0x02, 0x08, 0x76, 0x17, 0xf4, 0xd8, 0x6c, 0x7c, 0xe6, 0xcb, 0x25, 0x1e, 0x5f, 0x89, 0x60, 0x1d, 0xfc, 0x88, 0xed, 0x28, 0xe8, 0xd7, 0xa6, 0x70, 0xec, 0x00, 0x87, 0xd2, 0xea, 0x5d, 0x89, 0x30, 0x21, 0xc7, 0x04, 0x4d, 0xa2, 0x89, 0x9a, 0x22, 0xd7, 0x76, 0xfe, 0x90, 0x17, 0x0e, 0x51, 0xc2, 0x03, 0x25, 0x06, 0x90, 0xd3, 0x7a, 0x29, 0x45, 0x55, 0xe7, 0x4a, 0xf9, 0x23, 0x4c, 0xbf, 0x1a, 0xd8, 0xf2, 0x2c, 0xee, 0x89, 0x74, 0x82, 0x8a, 0x0d, 0x09, 0xe9, 0x55, 0x4b, 0x71, 0xee, 0x3b, 0xcf, 0x88, 0x0a, 0xb9, 0x83, 0x25, 0xf7, 0x06, 0x27, 0x21, 0x94, 0xeb, 0x2e, 0x80, 0xc7, 0x01, 0xd4, 0x41, 0xb5, 0xf8, 0x66, 0x85, 0x61, 0xb8, 0x88, 0x49, 0xf8, 0x27, 0xaf, 0x70, 0x3a, 0xb0, 0x95, 0x41, 0x05, 0xfd, 0x3c, 0x54, 0xb3, 0xf6, 0xec, 0x54, 0x93, 0x59, 0x6d, 0x0e, 0x3b, 0xc6, 0x78, 0x18, 0x04, 0x83, 0x10, 0xc4, 0xa3, 0xe0, 0xc5, 0x56, 0xbc, 0x80, 0x67, 0x5f, 0x20, 0x1f, 0x9b, 0xb9, 0xc6, 0x53, 0x8a, 0x41, 0xd9, 0x9a, 0xa4, 0x0c, 0x88, 0x6f, 0xc4, 0x31, 0x46, 0x72, 0x18, 0xd8, 0x19, 0xc2, 0x3e, 0x78, 0x49, 0x8a, 0xed, 0x06, 0x13, 0xfa, 0x6f, 0x97, 0x3e, 0x22, 0x11, 0xdf, 0x9f, 0xb8, 0x7f, 0x44, 0x11, 0x6f, 0x3f, 0xe4, 0xc2, 0x6d, 0x6c, 0xb2, 0xfa, 0x33, 0x4c, 0x87, 0xf7, 0x8c, 0x08, 0xca, 0x8c, 0x9b, 0x90, 0x41, 0xd8, 0x3a, 0x12, 0x30, 0x67, 0x7e, 0x0a, 0xf7, 0x88, 0x59, 0x8a, 0x42, 0xe4, 0x4c, 0xfd, 0xf6, 0x96, 0x4a, 0x4e, 0xe8, 0x0e, 0x38, 0x40, 0x2b, 0xa6, 0x7c, 0x73, 0xa5, 0x81, 0xe5, 0x52, 0xba, 0xa2, 0x28, 0x24, 0x25, 0xcb, 0x2c, 0xa1, 0x7c, 0xa9, 0x2e, 0xdf, 0xbf, 0x98, 0x29, 0x91, 0x02, 0xfb, 0xa7, 0x61, 0xb9, 0xb7, 0x1a, 0x54, 0x52, 0x14, 0x1b, 0xb9, 0xc1, 0x8d, 0xd9, 0x5f, 0xeb, 0xc2, 0xa7, 0x82, 0xde, 0x9c, 0xee, 0xc0, 0x8b, 0xd2, 0xee, 0x3f, 0x7f, 0x0c, 0x1b, 0xd8, 0x94, 0x6d, 0xba, 0x99, 0xcf, 0x9e, 0xa0, 0x86, 0xab, 0xaf, 0xd3, 0x7c, 0x9c, 0xa6, 0x02, 0x13, 0xf0, 0xde, 0x17, 0xc6, 0x1f, 0xf9, 0xc3, 0x91, 0xc9, 0x81, 0x8e, 0xd5, 0xcd, 0x85, 0x71, 0x77, 0x8b, 0x7d, 0xcc, 0x13, 0x22, 0x49, 0x62, 0x38, 0x6f, 0xb8, 0xca, 0x14, 0xf8, 0x61, 0xe9, 0x9f, 0x3b, 0x18, 0xed, 0xac, 0x8a, 0x5f, 0x13, 0x0f, 0x7b, 0xfc, 0xd4, 0x5d, 0x04, 0x5d, 0x0f, 0xf3, 0x4c, 0x81, 0x57, 0x2a, 0x51, 0x23, 0x63, 0xd6, 0x53, 0x0f, 0x93, 0x81, 0x3e, 0x5f, 0xb1, 0x0e, 0x9c, 0xb8, 0x33, 0x8a, 0x7f, 0x93, 0x80, 0x04, 0x91, 0x00, 0x6f, 0x44, 0x63, 0xe8, 0x9f, 0x0e, 0xd4, 0x53, 0x0e, 0x5f, 0x12, 0xdf, 0x67, 0x4f, 0x59, 0x89, 0x04, 0x78, 0x0a, 0xd0, 0x81, 0x2b, 0x1e, 0x35, 0x21, 0xfc, 0xd0, 0xf8, 0x3e, };
9452 static const u8 ed25519_411_test_vectors_expected_sig[] = {
9453 	0x26, 0xba, 0x56, 0x2e, 0x8a, 0x40, 0x65, 0x70, 0x82, 0x07, 0xc2, 0x5e, 0x23, 0x9b, 0x78, 0x0a, 0xee, 0x38, 0x79, 0x4c, 0xf9, 0x83, 0xa3, 0x7a, 0xcb, 0xb9, 0xd5, 0x57, 0xa6, 0x5c, 0xee, 0xd3, 0xc0, 0xda, 0x47, 0xd1, 0x7f, 0x3e, 0x8b, 0x8f, 0x4e, 0xeb, 0x1b, 0x65, 0xa2, 0xc1, 0x82, 0xea, 0x6f, 0x29, 0x62, 0x3b, 0x63, 0xbb, 0x0f, 0x1c, 0x72, 0x59, 0x26, 0x83, 0xb1, 0x26, 0xb9, 0x01, };
9454 static const ec_test_case ed25519_411_test_case = {
9455 	.name = "EDDSA25519-SHA512/wei25519 411",
9456 	.ec_str_p = &wei25519_str_params,
9457 	.priv_key = ed25519_411_test_vectors_priv_key,
9458 	.priv_key_len = sizeof(ed25519_411_test_vectors_priv_key),
9459 	.nn_random = NULL,
9460 	.hash_type = SHA512,
9461 	.msg = (const char *)ed25519_411_test_vectors_message,
9462 	.msglen = sizeof(ed25519_411_test_vectors_message),
9463 	.sig_type = EDDSA25519,
9464 	.exp_sig = ed25519_411_test_vectors_expected_sig,
9465 	.exp_siglen = sizeof(ed25519_411_test_vectors_expected_sig),
9466 	.adata = NULL,
9467 	.adata_len = 0
9468 };
9469 
9470 /************************************************/
9471 static const u8 ed25519_412_test_vectors_priv_key[] = {
9472 	0x5f, 0x1f, 0x27, 0x18, 0x44, 0xd9, 0xed, 0x5a, 0x6a, 0x6f, 0x20, 0x9a, 0x21, 0x40, 0x8d, 0xae, 0xa4, 0x70, 0xf6, 0xfd, 0x53, 0xba, 0x64, 0x79, 0xd7, 0x40, 0x71, 0x05, 0xb7, 0xde, 0x4d, 0x65, };
9473 static const u8 ed25519_412_test_vectors_message[] = {
9474 	0xee, 0xd6, 0xb4, 0x47, 0x5d, 0xc2, 0x63, 0xbd, 0x22, 0x07, 0xfe, 0x9d, 0x41, 0xd4, 0x82, 0x82, 0xb7, 0x13, 0xf6, 0x80, 0xf2, 0xe0, 0x37, 0x38, 0x4f, 0x18, 0xb4, 0xbf, 0x22, 0x43, 0x47, 0xf5, 0xe4, 0xc4, 0xb0, 0x60, 0xb8, 0x08, 0xd4, 0x12, 0xea, 0xab, 0xcf, 0x73, 0x3d, 0xc3, 0x9a, 0x40, 0xc6, 0xbd, 0xa0, 0x50, 0x5c, 0xe7, 0x1f, 0xa8, 0x23, 0xbd, 0x1b, 0x17, 0x94, 0x84, 0x76, 0x78, 0xdc, 0x03, 0x4e, 0x79, 0x99, 0xc1, 0x63, 0x69, 0x34, 0x0b, 0xc6, 0x0c, 0x64, 0xd0, 0x9b, 0xb9, 0x18, 0x7b, 0x2e, 0x32, 0x60, 0x55, 0xa0, 0x53, 0xf8, 0xe5, 0x05, 0xea, 0x41, 0x96, 0x86, 0x14, 0x71, 0x62, 0x2d, 0xb0, 0xe4, 0x6f, 0x0f, 0x89, 0x54, 0xd8, 0xa1, 0xf0, 0x73, 0x32, 0xda, 0x4d, 0x8a, 0xc5, 0x57, 0x12, 0x62, 0x60, 0x09, 0x91, 0x2f, 0x8a, 0x15, 0xa9, 0xcd, 0x63, 0xa7, 0x4a, 0x03, 0xc9, 0x2f, 0x24, 0x6c, 0xb6, 0x3c, 0xc7, 0x3f, 0x92, 0xe5, 0x1d, 0xad, 0x1b, 0xc9, 0x71, 0x5b, 0x1e, 0xd3, 0xfe, 0x5f, 0x2e, 0x1b, 0x29, 0x59, 0xb9, 0xb7, 0x1e, 0x0e, 0x37, 0x36, 0x0e, 0xb2, 0x95, 0x36, 0xcf, 0x79, 0x71, 0x47, 0xfa, 0xb1, 0x08, 0x64, 0xd6, 0x14, 0x6c, 0x36, 0xb8, 0x23, 0x35, 0xa0, 0xce, 0x93, 0x14, 0x08, 0x47, 0x9c, 0x7e, 0xde, 0x48, 0x4f, 0xf7, 0x3e, 0x2d, 0xbf, 0xff, 0xc6, 0xc9, 0x22, 0x7e, 0x16, 0xd7, 0xa2, 0x3f, 0x4d, 0x90, 0xf1, 0x55, 0x84, 0x51, 0x4c, 0x39, 0x59, 0x4e, 0x17, 0xbf, 0xbb, 0x29, 0x5d, 0xe9, 0xd6, 0x2a, 0xda, 0xdb, 0x58, 0x9d, 0xbb, 0xe0, 0xb0, 0x6d, 0xc8, 0xda, 0xc5, 0xb3, 0xbf, 0x51, 0x7b, 0x24, 0xc1, 0x83, 0x7b, 0x39, 0x47, 0x2a, 0x6d, 0xd3, 0x89, 0x31, 0xff, 0xbb, 0xff, 0x5b, 0x76, 0x36, 0x38, 0x80, 0x5b, 0x4e, 0x22, 0x32, 0x1f, 0x7a, 0xfe, 0x92, 0xcd, 0xf5, 0x02, 0xfb, 0x63, 0xd1, 0x09, 0xdd, 0xcd, 0x9e, 0x40, 0x51, 0xad, 0x6f, 0x45, 0x59, 0x85, 0x32, 0xbe, 0x17, 0x95, 0x23, 0x71, 0x08, 0x51, 0xd3, 0x93, 0x1e, 0x88, 0x7d, 0x02, 0xc3, 0x45, 0xc7, 0x9c, 0x48, 0x9f, 0xc1, 0x06, 0xa4, 0xae, 0x16, 0x2f, 0x7d, 0xf7, 0x1a, 0xb9, 0x0b, 0x75, 0x1d, 0xa7, 0x03, 0x8a, 0x6d, 0xf7, 0x61, 0x6c, 0xfc, 0x11, 0x88, 0x7e, 0x21, 0x06, 0x8f, 0xb9, 0xe3, 0x3b, 0xe5, 0x66, 0x40, 0x2b, 0xe5, 0x04, 0xf3, 0xfc, 0x27, 0x42, 0xb8, 0x81, 0x50, 0x9b, 0xd4, 0xfe, 0x6a, 0x0f, 0xc7, 0x22, 0x64, 0x98, 0x83, 0xf8, 0xcb, 0x65, 0x55, 0x98, 0xa1, 0x5a, 0x1d, 0x4c, 0x22, 0x9d, 0xd8, 0x6b, 0x5c, 0xae, 0xb7, 0x11, 0xa0, 0x28, 0xde, 0xfd, 0x43, 0x11, 0x54, 0xbb, 0xa4, 0x6b, 0x48, 0x17, 0x2a, 0x4d, 0x8c, 0xbd, 0x45, 0xbc, 0x90, 0xaa, 0xf8, 0x74, 0xb6, 0x08, 0x5f, 0xa2, 0x84, 0xf5, 0xfe, 0xd6, 0x55, 0xad, 0x6f, 0xa1, 0x7d, 0x67, 0xb3, 0xb9, 0xa7, 0x96, 0xfa, 0x3e, };
9475 static const u8 ed25519_412_test_vectors_expected_sig[] = {
9476 	0x31, 0x9b, 0xb4, 0xde, 0xb2, 0x17, 0x81, 0x12, 0x24, 0x1b, 0x3f, 0xb8, 0xf4, 0x6e, 0x10, 0x5c, 0x3b, 0x8e, 0x4e, 0xf7, 0x21, 0xeb, 0x20, 0x0d, 0x76, 0x2e, 0xf3, 0x63, 0xe2, 0x71, 0x6f, 0x2a, 0x89, 0xf8, 0x0b, 0x5b, 0x9e, 0x89, 0x97, 0x08, 0x90, 0xa0, 0x98, 0x92, 0xad, 0x6a, 0x58, 0x80, 0x8b, 0x47, 0x7e, 0x94, 0x3b, 0x3c, 0xfa, 0x77, 0x77, 0x4a, 0x36, 0x45, 0xbc, 0x74, 0x5f, 0x03, };
9477 static const ec_test_case ed25519_412_test_case = {
9478 	.name = "EDDSA25519-SHA512/wei25519 412",
9479 	.ec_str_p = &wei25519_str_params,
9480 	.priv_key = ed25519_412_test_vectors_priv_key,
9481 	.priv_key_len = sizeof(ed25519_412_test_vectors_priv_key),
9482 	.nn_random = NULL,
9483 	.hash_type = SHA512,
9484 	.msg = (const char *)ed25519_412_test_vectors_message,
9485 	.msglen = sizeof(ed25519_412_test_vectors_message),
9486 	.sig_type = EDDSA25519,
9487 	.exp_sig = ed25519_412_test_vectors_expected_sig,
9488 	.exp_siglen = sizeof(ed25519_412_test_vectors_expected_sig),
9489 	.adata = NULL,
9490 	.adata_len = 0
9491 };
9492 
9493 /************************************************/
9494 static const u8 ed25519_413_test_vectors_priv_key[] = {
9495 	0x04, 0x8a, 0xc9, 0xec, 0x3e, 0xcb, 0x30, 0xa3, 0xb1, 0xbf, 0xda, 0x9b, 0x3b, 0x79, 0xa4, 0x8c, 0x07, 0x93, 0xb4, 0x90, 0x87, 0x9e, 0x3c, 0x8a, 0x5e, 0x23, 0xee, 0x2b, 0xab, 0xcd, 0x9b, 0x7c, };
9496 static const u8 ed25519_413_test_vectors_message[] = {
9497 	0xd6, 0x8b, 0xe8, 0xef, 0x7b, 0x4c, 0x7a, 0x42, 0x89, 0xf2, 0xb1, 0x8b, 0x16, 0xad, 0xe9, 0x7f, 0x4e, 0x4f, 0xa1, 0x64, 0x52, 0x97, 0x6a, 0xfb, 0x58, 0x16, 0x93, 0x38, 0x0c, 0xc5, 0x4d, 0xe3, 0x8a, 0x07, 0x58, 0x7f, 0x32, 0xe2, 0xd4, 0x54, 0x9f, 0x26, 0x59, 0x5f, 0xee, 0x23, 0x93, 0xbd, 0x06, 0x2e, 0x9b, 0x00, 0xba, 0xe7, 0x24, 0x98, 0xe4, 0x14, 0x8c, 0x8b, 0x88, 0x2a, 0x88, 0x40, 0xe1, 0x5b, 0x58, 0x5c, 0x82, 0xb5, 0xc0, 0xde, 0xfb, 0x23, 0x35, 0x18, 0x40, 0x99, 0x16, 0x61, 0x5d, 0xeb, 0x3a, 0x55, 0xa5, 0xf8, 0x4e, 0x6b, 0x3a, 0xab, 0x93, 0x84, 0x4d, 0xe3, 0xb1, 0xe4, 0xd8, 0x6e, 0x09, 0xf8, 0x89, 0xac, 0x71, 0xc3, 0x24, 0xeb, 0x12, 0xd0, 0xfb, 0xd8, 0x61, 0xcc, 0x31, 0x22, 0x95, 0x40, 0xe8, 0x43, 0xa3, 0x4f, 0x8d, 0x5b, 0xe4, 0x7c, 0x0e, 0xc0, 0xd2, 0x3d, 0xf4, 0x3e, 0x06, 0x81, 0x3f, 0xca, 0x30, 0x94, 0x39, 0x90, 0x4c, 0x16, 0x7d, 0x10, 0x43, 0xc0, 0xdc, 0xd4, 0x44, 0xb0, 0x04, 0xbe, 0x1f, 0xf2, 0x7b, 0x78, 0x62, 0xb0, 0x0e, 0xba, 0x94, 0x33, 0xb9, 0x4b, 0x0f, 0xcd, 0xc6, 0x75, 0x21, 0xda, 0x0c, 0x1d, 0x53, 0x58, 0x63, 0x6c, 0x78, 0xf5, 0x30, 0x43, 0x11, 0x64, 0xdd, 0xe2, 0x0a, 0x1c, 0xf1, 0x64, 0xf5, 0x1e, 0x29, 0xb8, 0xe6, 0x3e, 0xac, 0xde, 0xcc, 0x86, 0x9b, 0x41, 0x39, 0x2c, 0x66, 0x76, 0x64, 0xd9, 0x16, 0x80, 0xd9, 0xac, 0x51, 0x6a, 0xf5, 0x48, 0xf0, 0x9e, 0x60, 0x56, 0x4e, 0x81, 0x4e, 0x36, 0xe0, 0xb5, 0x63, 0xdb, 0xae, 0x55, 0xc6, 0x27, 0xff, 0xc1, 0x41, 0x58, 0xa5, 0x6d, 0x8e, 0xb3, 0x60, 0x9e, 0x17, 0x43, 0x81, 0xb2, 0x1d, 0xe4, 0xba, 0x82, 0x34, 0x44, 0x66, 0xdd, 0x57, 0x7f, 0x4d, 0x11, 0x03, 0xc4, 0x3c, 0x27, 0xfb, 0x83, 0xcb, 0x83, 0x3d, 0x87, 0xaf, 0xdf, 0x74, 0x12, 0xb4, 0x09, 0x09, 0x09, 0xb1, 0xdd, 0xe2, 0x64, 0xda, 0xdd, 0xce, 0x96, 0x7f, 0x49, 0x6b, 0xf6, 0xf1, 0x71, 0x12, 0xbf, 0x35, 0x1e, 0x41, 0x7d, 0xb5, 0x95, 0x3b, 0x13, 0xb8, 0xf0, 0xfc, 0xcc, 0xbf, 0x30, 0xf5, 0xbc, 0xf3, 0x76, 0x86, 0x1c, 0x12, 0xef, 0x20, 0xee, 0xc8, 0x9e, 0xd2, 0x3c, 0xf3, 0x84, 0xee, 0x78, 0xdc, 0x6e, 0xb4, 0x0f, 0xd5, 0x81, 0x1a, 0x7b, 0x23, 0x92, 0x7c, 0x13, 0xe7, 0xdc, 0x5d, 0xa3, 0xa9, 0x21, 0xb8, 0x83, 0xa9, 0xb2, 0xb1, 0x15, 0x59, 0x70, 0xfb, 0x0d, 0xa7, 0xd2, 0x99, 0x3d, 0xcd, 0xfd, 0x43, 0x43, 0x64, 0x2a, 0x9d, 0x5a, 0x63, 0x47, 0xe4, 0x3c, 0x19, 0x3b, 0x57, 0x93, 0xe4, 0x45, 0x3a, 0xc1, 0x53, 0x7a, 0xa3, 0xd0, 0x4d, 0xc9, 0xf7, 0x74, 0xe8, 0x40, 0x93, 0x48, 0x81, 0xd7, 0x8a, 0x39, 0xba, 0x25, 0x04, 0x38, 0xc5, 0x07, 0x25, 0x0e, 0xed, 0x2f, 0x6e, 0x07, 0xcc, 0x95, 0x3f, 0x78, 0x3d, 0x6b, 0x72, 0xb1, 0xcc, 0x61, 0x99, 0x81, };
9498 static const u8 ed25519_413_test_vectors_expected_sig[] = {
9499 	0x2e, 0xcf, 0x5b, 0x8a, 0x59, 0xa8, 0xe2, 0x7d, 0x25, 0x89, 0x0a, 0x2a, 0xa3, 0x2f, 0x4a, 0x06, 0x73, 0x27, 0x5d, 0x53, 0x9b, 0x17, 0x4a, 0xfa, 0x7b, 0x2c, 0xeb, 0xf2, 0xe7, 0x62, 0x80, 0xdf, 0xfc, 0x33, 0x8e, 0xde, 0x85, 0xac, 0x8f, 0x61, 0x40, 0x39, 0x56, 0x0e, 0x28, 0x06, 0xd9, 0xe1, 0xe3, 0xcf, 0x9c, 0xce, 0x2c, 0xeb, 0x78, 0x74, 0xff, 0xe1, 0xa7, 0xe8, 0x0c, 0xde, 0xf4, 0x0b, };
9500 static const ec_test_case ed25519_413_test_case = {
9501 	.name = "EDDSA25519-SHA512/wei25519 413",
9502 	.ec_str_p = &wei25519_str_params,
9503 	.priv_key = ed25519_413_test_vectors_priv_key,
9504 	.priv_key_len = sizeof(ed25519_413_test_vectors_priv_key),
9505 	.nn_random = NULL,
9506 	.hash_type = SHA512,
9507 	.msg = (const char *)ed25519_413_test_vectors_message,
9508 	.msglen = sizeof(ed25519_413_test_vectors_message),
9509 	.sig_type = EDDSA25519,
9510 	.exp_sig = ed25519_413_test_vectors_expected_sig,
9511 	.exp_siglen = sizeof(ed25519_413_test_vectors_expected_sig),
9512 	.adata = NULL,
9513 	.adata_len = 0
9514 };
9515 
9516 /************************************************/
9517 static const u8 ed25519_414_test_vectors_priv_key[] = {
9518 	0x2f, 0x05, 0x7d, 0x20, 0xb1, 0x67, 0x85, 0x31, 0x61, 0x1f, 0x48, 0xf0, 0x03, 0xb7, 0xd2, 0x2e, 0xba, 0x5d, 0xbb, 0xd7, 0xe2, 0xdd, 0x41, 0xb7, 0xc7, 0x9d, 0x09, 0x07, 0x1f, 0x85, 0xe9, 0x93, };
9519 static const u8 ed25519_414_test_vectors_message[] = {
9520 	0x6e, 0x35, 0xf6, 0xea, 0xa2, 0xbf, 0xee, 0x06, 0xea, 0x6f, 0x2b, 0x2f, 0x7a, 0xb1, 0x5f, 0xa9, 0x7c, 0x51, 0x80, 0x95, 0x8a, 0xf2, 0xe9, 0x0a, 0xf9, 0x18, 0xad, 0xfb, 0x3d, 0xb8, 0x32, 0x3f, 0x44, 0x7c, 0x7b, 0xf2, 0x6d, 0xc5, 0x34, 0x99, 0x7c, 0x38, 0xb7, 0xfc, 0x97, 0x7f, 0x64, 0x2d, 0xe2, 0x88, 0xcd, 0xf2, 0x53, 0x07, 0x1c, 0xac, 0xf3, 0x56, 0x4e, 0x3b, 0x8e, 0xd6, 0xdc, 0xe5, 0x7d, 0xdf, 0xba, 0x9f, 0xf7, 0x83, 0xba, 0xd2, 0xe7, 0x6d, 0xf1, 0x24, 0x82, 0x8f, 0xc1, 0x03, 0x1a, 0xcf, 0xad, 0xf0, 0x1a, 0x44, 0xd4, 0x1b, 0x42, 0x16, 0x1a, 0xd9, 0x06, 0x03, 0x01, 0xc1, 0xaf, 0x19, 0x28, 0xb9, 0xe5, 0xb7, 0x3b, 0x9b, 0xd2, 0x1c, 0xac, 0x60, 0xa8, 0x42, 0xb5, 0x04, 0xdc, 0x3c, 0xc3, 0x11, 0xc5, 0x22, 0xe3, 0xbb, 0x04, 0x8b, 0xf2, 0x21, 0x44, 0x4f, 0x53, 0xce, 0xb0, 0x8e, 0x77, 0xe9, 0x48, 0x59, 0x0e, 0x94, 0xed, 0x98, 0xf1, 0xb6, 0x04, 0xcb, 0x9e, 0xad, 0xc9, 0x3b, 0xbe, 0x74, 0x31, 0xc1, 0x14, 0x9b, 0x23, 0x19, 0x3f, 0xf9, 0x3e, 0x85, 0x69, 0xf1, 0x13, 0xe1, 0x68, 0x4d, 0x89, 0x76, 0xec, 0xae, 0x6f, 0x09, 0xe0, 0x10, 0x36, 0x14, 0xbe, 0x41, 0x8a, 0x47, 0x2e, 0xf5, 0x5b, 0xb8, 0x89, 0x0d, 0x72, 0xb3, 0x41, 0xcd, 0xd7, 0x50, 0x5b, 0x50, 0xa4, 0x55, 0x22, 0xab, 0x63, 0xed, 0x79, 0x1c, 0xe8, 0xf8, 0x2f, 0xed, 0xdd, 0x7a, 0x62, 0x0a, 0x4f, 0x6f, 0xb1, 0xd2, 0xfb, 0x0e, 0xd0, 0xc4, 0x56, 0x0d, 0x78, 0x44, 0x6d, 0x83, 0xb3, 0xd1, 0xb1, 0xbb, 0x56, 0xb3, 0x66, 0xd1, 0x96, 0x02, 0x0d, 0x06, 0x24, 0xb1, 0xfb, 0xdb, 0x75, 0xce, 0x73, 0x5d, 0xd4, 0x3e, 0x8e, 0x8d, 0xf1, 0x63, 0xc4, 0x4e, 0x23, 0x69, 0x93, 0xdc, 0xa3, 0x41, 0xf5, 0x13, 0x2d, 0x82, 0x5d, 0x0a, 0x4e, 0x39, 0x3a, 0x19, 0xd3, 0x8f, 0x61, 0xe1, 0x1e, 0x0c, 0xf3, 0x92, 0xcb, 0x9b, 0x64, 0x6e, 0xa2, 0x3c, 0x58, 0x09, 0x98, 0x24, 0xdd, 0x8d, 0x9f, 0xbe, 0x26, 0xa4, 0x9e, 0x33, 0xb2, 0x3d, 0xf8, 0x06, 0x07, 0xab, 0xf1, 0x97, 0x15, 0x79, 0x9c, 0x19, 0xac, 0xc7, 0x22, 0xed, 0x9b, 0xcf, 0x94, 0xa0, 0xc2, 0x9a, 0xd2, 0x4b, 0x78, 0xb0, 0xb0, 0x35, 0xb3, 0x24, 0x1c, 0x64, 0xcd, 0x86, 0xed, 0xea, 0xc8, 0x10, 0xe6, 0x67, 0x45, 0x69, 0x4b, 0x5e, 0xb1, 0x62, 0x50, 0x60, 0xed, 0xf2, 0xd9, 0x49, 0xde, 0x0d, 0x34, 0xf5, 0x22, 0xdf, 0x2d, 0xc6, 0x0a, 0xe6, 0x94, 0xa1, 0x93, 0xf3, 0xb8, 0x2c, 0x1d, 0x6f, 0x83, 0xa0, 0xcb, 0xb8, 0x40, 0xf4, 0x6c, 0x49, 0xa3, 0xd7, 0xd1, 0xcf, 0x06, 0xde, 0xaf, 0x96, 0xc6, 0x4f, 0x8f, 0x9e, 0x17, 0xbd, 0x9a, 0xd5, 0x12, 0xae, 0x63, 0x09, 0xc4, 0x86, 0xd9, 0xe2, 0xa7, 0x8d, 0xce, 0xec, 0xa4, 0x73, 0xa0, 0x42, 0x1d, 0xd1, 0xb6, 0x43, 0xc7, 0x87, 0x54, 0x27, 0x1b, 0x53, 0xce, };
9521 static const u8 ed25519_414_test_vectors_expected_sig[] = {
9522 	0x30, 0xdf, 0x7b, 0x0b, 0x1c, 0x04, 0xfb, 0x1e, 0xfa, 0x35, 0x17, 0xe9, 0x28, 0xd6, 0xd5, 0x7c, 0x2c, 0xa0, 0xd0, 0x7f, 0x4e, 0x04, 0xff, 0xb1, 0xf0, 0x8b, 0x47, 0x92, 0xc5, 0x93, 0x7d, 0xd2, 0x71, 0xcc, 0xab, 0xdc, 0x00, 0xdc, 0xe8, 0x50, 0xaf, 0xe5, 0x0a, 0xf5, 0x99, 0x0f, 0x22, 0x4e, 0x84, 0x20, 0xa6, 0x81, 0xd9, 0x5f, 0x9f, 0x7f, 0x51, 0x5a, 0xfe, 0xc1, 0x02, 0xef, 0xd1, 0x0e, };
9523 static const ec_test_case ed25519_414_test_case = {
9524 	.name = "EDDSA25519-SHA512/wei25519 414",
9525 	.ec_str_p = &wei25519_str_params,
9526 	.priv_key = ed25519_414_test_vectors_priv_key,
9527 	.priv_key_len = sizeof(ed25519_414_test_vectors_priv_key),
9528 	.nn_random = NULL,
9529 	.hash_type = SHA512,
9530 	.msg = (const char *)ed25519_414_test_vectors_message,
9531 	.msglen = sizeof(ed25519_414_test_vectors_message),
9532 	.sig_type = EDDSA25519,
9533 	.exp_sig = ed25519_414_test_vectors_expected_sig,
9534 	.exp_siglen = sizeof(ed25519_414_test_vectors_expected_sig),
9535 	.adata = NULL,
9536 	.adata_len = 0
9537 };
9538 
9539 /************************************************/
9540 static const u8 ed25519_415_test_vectors_priv_key[] = {
9541 	0x3a, 0x3d, 0x27, 0x97, 0x0f, 0xe2, 0xac, 0xb6, 0x95, 0x1e, 0xdd, 0x5c, 0xa9, 0x0d, 0xda, 0x0f, 0xc6, 0xdd, 0x22, 0x9c, 0x0a, 0x56, 0xdf, 0x6e, 0xb1, 0x1a, 0x9c, 0x54, 0xd2, 0x42, 0xdb, 0xbf, };
9542 static const u8 ed25519_415_test_vectors_message[] = {
9543 	0x43, 0x74, 0xf6, 0x1c, 0x2c, 0xd8, 0x8a, 0x3b, 0x89, 0x72, 0x24, 0x9b, 0xfa, 0x79, 0xb3, 0x6a, 0xb6, 0x9e, 0x3e, 0xd4, 0x84, 0xcc, 0x60, 0xe5, 0xd9, 0x54, 0x1f, 0xa7, 0x68, 0x6c, 0xf4, 0xee, 0xd1, 0x21, 0x0c, 0x5d, 0x0d, 0xcf, 0x42, 0xdd, 0x25, 0x97, 0x25, 0x01, 0x90, 0x91, 0x93, 0xca, 0x76, 0xae, 0x6e, 0xb7, 0xf4, 0x71, 0xd8, 0xbd, 0x0d, 0x5f, 0xb5, 0xa6, 0xb4, 0x31, 0xbc, 0x3d, 0xe0, 0xe0, 0x31, 0x8d, 0x50, 0x51, 0x45, 0x24, 0xde, 0x87, 0xc4, 0xb8, 0x30, 0x05, 0xdf, 0xb4, 0x12, 0x45, 0xfb, 0x1a, 0xf7, 0x9b, 0x84, 0xa9, 0x7b, 0x83, 0xd3, 0xca, 0xc7, 0xad, 0x7a, 0x53, 0x36, 0x4e, 0x2e, 0x9b, 0x21, 0xc9, 0x7b, 0x76, 0x9b, 0xdc, 0x57, 0xf0, 0x70, 0x31, 0x16, 0x16, 0x83, 0x80, 0xf3, 0xcc, 0x88, 0x36, 0x89, 0xeb, 0x4a, 0x7f, 0xa3, 0xb2, 0x6d, 0xbe, 0x12, 0xbc, 0x28, 0xf8, 0xc4, 0x03, 0x81, 0xaf, 0x64, 0xdf, 0x4b, 0x53, 0x61, 0xd1, 0x74, 0xcf, 0x75, 0xac, 0xbd, 0x46, 0x42, 0x87, 0x40, 0xb0, 0xd1, 0x32, 0x2d, 0x32, 0xbb, 0xe9, 0x48, 0x45, 0x21, 0x59, 0x66, 0xae, 0x58, 0x87, 0x77, 0xa8, 0xc0, 0x53, 0x36, 0xe3, 0x52, 0x30, 0x6d, 0x49, 0x27, 0x8d, 0x32, 0x8e, 0x49, 0x6d, 0xb6, 0x5e, 0x9e, 0xcf, 0x6c, 0xe6, 0x40, 0x5e, 0xd1, 0xc8, 0x93, 0x49, 0x0b, 0xc4, 0x8c, 0x13, 0xa1, 0x34, 0xe1, 0xfb, 0x6e, 0x80, 0xde, 0xbe, 0x6d, 0x32, 0xfc, 0xe6, 0xef, 0x74, 0x78, 0x3c, 0x8d, 0x77, 0x98, 0x0a, 0x44, 0x1a, 0x26, 0xae, 0xb4, 0xfd, 0x83, 0xcc, 0x85, 0x53, 0x52, 0xce, 0xdc, 0x18, 0x8f, 0x52, 0x79, 0xce, 0x21, 0x1f, 0x74, 0x4a, 0x40, 0xb2, 0x3c, 0xe7, 0xff, 0x24, 0x43, 0x7a, 0x1d, 0xd3, 0x37, 0x3e, 0xc5, 0xb2, 0x90, 0xda, 0x1f, 0x94, 0xf4, 0x3a, 0x07, 0xa3, 0xff, 0xea, 0x5b, 0x5f, 0x67, 0xb5, 0x2c, 0x19, 0x61, 0x85, 0xbc, 0xe9, 0xe9, 0xa8, 0x58, 0x25, 0x7f, 0xcd, 0x7a, 0x8e, 0xba, 0xf9, 0x04, 0x0e, 0xd0, 0x91, 0xfa, 0xce, 0x5a, 0x15, 0x5a, 0xa4, 0x47, 0xfa, 0x15, 0xe1, 0x21, 0x22, 0xd2, 0x5e, 0x8f, 0xc3, 0x6e, 0xae, 0xe2, 0x13, 0x7c, 0x7b, 0x3a, 0xa3, 0x0b, 0x7e, 0x3f, 0xf6, 0xcc, 0x86, 0xb6, 0xdc, 0xb9, 0xea, 0xf4, 0x9c, 0x95, 0x76, 0xf0, 0xf4, 0x62, 0x00, 0x84, 0x39, 0xcb, 0x1a, 0x3a, 0xba, 0x01, 0x3e, 0x89, 0x7a, 0x0f, 0xaf, 0x99, 0x4c, 0xb7, 0xd5, 0x9e, 0xde, 0x57, 0x74, 0xbb, 0x14, 0x47, 0x74, 0xf7, 0x3c, 0xa3, 0x0e, 0x64, 0x14, 0xa7, 0xcc, 0x7c, 0x74, 0xb2, 0x0c, 0x51, 0xa1, 0x40, 0x4d, 0xdc, 0x41, 0x9e, 0xf7, 0x62, 0x45, 0x93, 0xe9, 0xbc, 0xfb, 0x37, 0xc0, 0xa7, 0x62, 0xea, 0xb6, 0x8f, 0xac, 0xa5, 0x86, 0x34, 0x43, 0xe1, 0x6e, 0xdb, 0x75, 0x9d, 0xbc, 0x87, 0x88, 0x73, 0x2b, 0x9e, 0x4f, 0x59, 0xc1, 0x11, 0x92, 0xc3, 0xfc, 0xc8, 0x72, 0xaf, 0x55, 0xf3, 0x2d, };
9544 static const u8 ed25519_415_test_vectors_expected_sig[] = {
9545 	0x22, 0xeb, 0x8e, 0xa0, 0x50, 0x73, 0x49, 0xb6, 0xa0, 0xac, 0xe2, 0x5c, 0xf9, 0x18, 0x0c, 0xb0, 0x8e, 0x03, 0x57, 0xb0, 0x45, 0x02, 0x90, 0x5f, 0xbe, 0x69, 0xb4, 0xe2, 0x1b, 0x2b, 0xd9, 0x4e, 0x22, 0xcf, 0xbd, 0xb8, 0x51, 0xae, 0x71, 0x6a, 0x5c, 0x25, 0x3c, 0x70, 0xd5, 0xe2, 0xb2, 0x4e, 0xa7, 0x8f, 0x35, 0xbc, 0x21, 0x32, 0x92, 0x54, 0x3d, 0x94, 0xe1, 0x41, 0x10, 0xb2, 0x41, 0x06, };
9546 static const ec_test_case ed25519_415_test_case = {
9547 	.name = "EDDSA25519-SHA512/wei25519 415",
9548 	.ec_str_p = &wei25519_str_params,
9549 	.priv_key = ed25519_415_test_vectors_priv_key,
9550 	.priv_key_len = sizeof(ed25519_415_test_vectors_priv_key),
9551 	.nn_random = NULL,
9552 	.hash_type = SHA512,
9553 	.msg = (const char *)ed25519_415_test_vectors_message,
9554 	.msglen = sizeof(ed25519_415_test_vectors_message),
9555 	.sig_type = EDDSA25519,
9556 	.exp_sig = ed25519_415_test_vectors_expected_sig,
9557 	.exp_siglen = sizeof(ed25519_415_test_vectors_expected_sig),
9558 	.adata = NULL,
9559 	.adata_len = 0
9560 };
9561 
9562 /************************************************/
9563 static const u8 ed25519_416_test_vectors_priv_key[] = {
9564 	0x06, 0xd4, 0x98, 0x31, 0x8d, 0xa4, 0x56, 0x24, 0x2b, 0x9c, 0x3b, 0x9a, 0xb6, 0xd5, 0x32, 0xa1, 0x28, 0xfc, 0xe0, 0x44, 0xf5, 0x38, 0x82, 0x68, 0x2e, 0x92, 0x62, 0x14, 0x9c, 0x16, 0x52, 0x88, };
9565 static const u8 ed25519_416_test_vectors_message[] = {
9566 	0x3f, 0xe3, 0x0e, 0xcd, 0x55, 0x07, 0x7a, 0x6e, 0x50, 0xdf, 0x54, 0xbb, 0x1b, 0xf1, 0x24, 0x8b, 0xea, 0x40, 0x63, 0xe3, 0xfa, 0x75, 0x5f, 0x65, 0xfc, 0xd1, 0x15, 0x9e, 0xe0, 0x46, 0xef, 0xd0, 0xeb, 0x5f, 0x2f, 0xbb, 0x38, 0xb5, 0xc0, 0x09, 0x47, 0xc9, 0x7d, 0xc8, 0x79, 0xb3, 0x6b, 0x9e, 0x53, 0x61, 0x92, 0x28, 0x60, 0x86, 0xd0, 0xdc, 0x12, 0x05, 0x36, 0x10, 0x38, 0x61, 0x74, 0xa7, 0xc5, 0x6f, 0x22, 0xa8, 0x5b, 0x73, 0xff, 0x20, 0x8c, 0x59, 0x44, 0xf3, 0x93, 0x23, 0x6c, 0x32, 0x41, 0x58, 0x09, 0xda, 0x03, 0x6e, 0x73, 0xca, 0xd8, 0xfc, 0x3c, 0x30, 0x37, 0x80, 0x64, 0xa7, 0x6a, 0xfa, 0x93, 0x0a, 0x3b, 0xaa, 0xe9, 0xaa, 0x35, 0x70, 0x61, 0xa8, 0xc5, 0xe8, 0xe7, 0x56, 0xa9, 0xce, 0xcf, 0x94, 0xb7, 0x2d, 0xf4, 0x3f, 0xac, 0xd8, 0x8f, 0xa4, 0x9c, 0xb4, 0x94, 0x8c, 0x63, 0x68, 0x31, 0x8a, 0x6b, 0x1e, 0x5c, 0xff, 0x52, 0xe5, 0x87, 0xec, 0xdf, 0xae, 0xfd, 0xb6, 0x90, 0x81, 0xf2, 0x8c, 0x2d, 0x13, 0xbf, 0x8e, 0xab, 0x81, 0xdb, 0xaa, 0x5e, 0x37, 0x28, 0xc4, 0x31, 0x7f, 0xb7, 0x93, 0xdd, 0x19, 0x6b, 0xca, 0x0f, 0xe5, 0x4a, 0x6c, 0x24, 0x2c, 0xf2, 0x6e, 0x2d, 0x12, 0x9b, 0xa0, 0xd8, 0x2a, 0x2c, 0x3a, 0x45, 0xbc, 0x8d, 0x1d, 0xfd, 0x6f, 0x54, 0xf8, 0xda, 0x4f, 0x51, 0x89, 0xc9, 0x1a, 0xc2, 0x14, 0xfd, 0xab, 0xf4, 0xc5, 0x97, 0x38, 0x1b, 0x2e, 0x5c, 0x40, 0xcc, 0x71, 0xfa, 0x70, 0x51, 0xcf, 0x2e, 0xa9, 0x39, 0x06, 0xa3, 0x7d, 0x57, 0xdf, 0x12, 0xd5, 0xc7, 0xe5, 0xcd, 0x77, 0xc9, 0x07, 0xe4, 0x42, 0x56, 0x63, 0x15, 0xba, 0xe5, 0x1a, 0x22, 0x22, 0xd6, 0x2e, 0x3f, 0x42, 0xd1, 0x76, 0x78, 0x82, 0x63, 0x7d, 0x66, 0xa1, 0xd5, 0x30, 0x5a, 0xb4, 0x01, 0x0a, 0x0e, 0x49, 0xc5, 0x7d, 0xef, 0x69, 0xdc, 0xea, 0x83, 0x9e, 0x1b, 0x76, 0xa4, 0x11, 0x35, 0xba, 0x95, 0x2c, 0xc4, 0x24, 0x95, 0x0e, 0x8d, 0x3a, 0xac, 0x19, 0xe1, 0xd9, 0x3d, 0xe7, 0x75, 0x7c, 0x15, 0xff, 0x99, 0x97, 0xb3, 0xd2, 0xa8, 0x61, 0x3c, 0xd9, 0xa1, 0x64, 0x78, 0x1d, 0x1b, 0xe3, 0x31, 0x79, 0x9f, 0xa6, 0x10, 0x9c, 0xef, 0x61, 0x43, 0x05, 0xa1, 0x95, 0x8f, 0x62, 0x90, 0x3c, 0x8c, 0x9e, 0xa0, 0xb2, 0x3b, 0xa7, 0x06, 0xd4, 0x9c, 0x54, 0xba, 0xcc, 0xc1, 0xe6, 0x3c, 0xb4, 0xbf, 0x14, 0x78, 0x5f, 0xc7, 0xb0, 0x62, 0xa9, 0x80, 0x03, 0x49, 0xbd, 0xb0, 0xbb, 0x92, 0x72, 0x60, 0xb6, 0x77, 0xb6, 0x0f, 0x10, 0xe6, 0x2c, 0x87, 0x80, 0xf3, 0xeb, 0xb5, 0xeb, 0x6f, 0xf0, 0x36, 0x02, 0x63, 0xd4, 0x57, 0xab, 0x52, 0xfd, 0x11, 0x25, 0xc9, 0xce, 0x04, 0x6a, 0x95, 0xd8, 0x9d, 0x28, 0x73, 0x50, 0xc8, 0x04, 0xcf, 0xd4, 0xff, 0x2b, 0x2d, 0xdd, 0x18, 0xa9, 0xe1, 0x35, 0x19, 0xf2, 0x0b, 0x4d, 0x1e, 0x05, 0x1a, 0xf6, 0x24, 0x64, 0x0f, };
9567 static const u8 ed25519_416_test_vectors_expected_sig[] = {
9568 	0x82, 0x50, 0xf7, 0x6d, 0xc5, 0x99, 0xc5, 0x12, 0x87, 0x87, 0xe4, 0xf6, 0xd3, 0xda, 0x23, 0x17, 0x33, 0x30, 0xce, 0x33, 0x20, 0xdb, 0xa9, 0x59, 0xbd, 0x71, 0x4c, 0xc8, 0xcc, 0x07, 0xc6, 0x79, 0x45, 0xd6, 0x3e, 0x75, 0x66, 0x2c, 0x07, 0x5e, 0x26, 0x74, 0x60, 0xab, 0x7b, 0xf5, 0x61, 0xf2, 0x4f, 0xaa, 0xe3, 0xb4, 0x1d, 0xbf, 0x67, 0x68, 0x99, 0x19, 0x1e, 0x3b, 0x02, 0xb5, 0xaf, 0x0a, };
9569 static const ec_test_case ed25519_416_test_case = {
9570 	.name = "EDDSA25519-SHA512/wei25519 416",
9571 	.ec_str_p = &wei25519_str_params,
9572 	.priv_key = ed25519_416_test_vectors_priv_key,
9573 	.priv_key_len = sizeof(ed25519_416_test_vectors_priv_key),
9574 	.nn_random = NULL,
9575 	.hash_type = SHA512,
9576 	.msg = (const char *)ed25519_416_test_vectors_message,
9577 	.msglen = sizeof(ed25519_416_test_vectors_message),
9578 	.sig_type = EDDSA25519,
9579 	.exp_sig = ed25519_416_test_vectors_expected_sig,
9580 	.exp_siglen = sizeof(ed25519_416_test_vectors_expected_sig),
9581 	.adata = NULL,
9582 	.adata_len = 0
9583 };
9584 
9585 /************************************************/
9586 static const u8 ed25519_417_test_vectors_priv_key[] = {
9587 	0x8e, 0x8e, 0x1d, 0xb5, 0xb1, 0x10, 0x2e, 0x22, 0xa9, 0x5c, 0x47, 0xaf, 0x36, 0x61, 0x46, 0x9f, 0x00, 0x0a, 0x33, 0xf1, 0x3b, 0x8b, 0x87, 0xb1, 0x15, 0xd2, 0x45, 0x2a, 0x41, 0x1f, 0x6f, 0x39, };
9588 static const u8 ed25519_417_test_vectors_message[] = {
9589 	0xb2, 0x46, 0x34, 0xfb, 0xdd, 0x1b, 0x76, 0x61, 0x31, 0x5d, 0x9d, 0xc1, 0x53, 0xba, 0x90, 0xd6, 0x6a, 0x88, 0x62, 0x2a, 0x41, 0x58, 0xf8, 0xbc, 0xff, 0x25, 0xba, 0x9c, 0x29, 0xe6, 0x5f, 0x29, 0x7f, 0x8e, 0x60, 0x31, 0x18, 0x00, 0xb7, 0x33, 0x1b, 0x69, 0xfc, 0x20, 0xc9, 0xf8, 0x5b, 0xb7, 0xc1, 0x84, 0xbd, 0x40, 0x86, 0xb3, 0xa9, 0xf9, 0xa2, 0x71, 0x02, 0xb6, 0x23, 0x62, 0xbd, 0xb4, 0xfa, 0x5b, 0x20, 0x15, 0x94, 0x25, 0x0f, 0xc6, 0x28, 0xfd, 0x2e, 0x0e, 0x0d, 0x1b, 0xe0, 0x3d, 0xcf, 0x81, 0x8c, 0x60, 0x94, 0xc4, 0xc2, 0x91, 0x21, 0xcb, 0x2b, 0xf6, 0xd9, 0x08, 0xed, 0x8a, 0xab, 0x42, 0x7c, 0x37, 0x71, 0xc0, 0xc9, 0x5f, 0x0a, 0xc1, 0x46, 0x9a, 0x08, 0x10, 0xb6, 0x03, 0xa4, 0x70, 0x28, 0x2e, 0x59, 0x80, 0xa6, 0x07, 0x29, 0x19, 0x7f, 0xe6, 0xc2, 0x0e, 0xf6, 0x81, 0xcd, 0x1b, 0x96, 0x93, 0x2d, 0x20, 0x58, 0xf8, 0x96, 0xea, 0x74, 0x16, 0x42, 0x2a, 0x7e, 0x54, 0x1f, 0x22, 0x4a, 0x5f, 0x04, 0x25, 0x30, 0x80, 0x74, 0x1c, 0x5d, 0x4e, 0x3e, 0xb0, 0x39, 0xdb, 0x6b, 0xa0, 0x51, 0xb4, 0xca, 0x54, 0x17, 0xce, 0x8a, 0xfd, 0xc7, 0x02, 0x14, 0xba, 0x4d, 0xcc, 0x85, 0xb6, 0x23, 0xd1, 0x1e, 0x68, 0x1c, 0x60, 0x09, 0xae, 0xe4, 0xe6, 0x13, 0x0a, 0x83, 0xed, 0xd0, 0xd2, 0xc9, 0x9f, 0xb0, 0x64, 0x7e, 0x11, 0xed, 0xe7, 0x30, 0x1a, 0xe5, 0x6b, 0x59, 0x90, 0x4e, 0xf7, 0x02, 0x57, 0x32, 0xcd, 0xe0, 0x38, 0x80, 0x1e, 0xc7, 0xe8, 0xd9, 0x0a, 0x9a, 0x1b, 0xba, 0x04, 0x7f, 0xe6, 0x28, 0x35, 0x1b, 0x3b, 0x89, 0xd0, 0xbc, 0x5a, 0xe6, 0x65, 0xa7, 0x00, 0x89, 0x1f, 0x09, 0xeb, 0xee, 0xc0, 0x55, 0x91, 0x84, 0x2a, 0xdf, 0xcc, 0x25, 0xad, 0xc3, 0xc7, 0x1c, 0x1e, 0xbc, 0x4a, 0x31, 0x2e, 0x54, 0x71, 0xbe, 0x67, 0x25, 0x3b, 0x0e, 0x94, 0x28, 0xb0, 0xca, 0xe3, 0x76, 0x45, 0xa0, 0xf7, 0xec, 0xb8, 0x9d, 0xd7, 0x9f, 0xbd, 0x9b, 0xe2, 0x87, 0x54, 0x33, 0x66, 0x7a, 0xe0, 0x7d, 0x74, 0xa7, 0x98, 0x3c, 0x4c, 0xea, 0x60, 0x1e, 0x72, 0xe9, 0x75, 0xc2, 0x1d, 0xf9, 0x93, 0xe7, 0xfa, 0x22, 0xa9, 0xfa, 0xbd, 0x45, 0x45, 0x5d, 0x45, 0xe3, 0x70, 0x31, 0x55, 0x8e, 0x13, 0xa7, 0xa4, 0xf5, 0xf4, 0x97, 0xea, 0x78, 0xfb, 0x73, 0x99, 0xf8, 0x83, 0x8c, 0x0f, 0xd5, 0xde, 0x4e, 0xbb, 0x66, 0xdb, 0x29, 0x0f, 0x43, 0xa4, 0x86, 0x7d, 0x50, 0x53, 0x09, 0xf1, 0xc1, 0xbc, 0x27, 0xe9, 0xfa, 0xbc, 0xbb, 0xa7, 0x13, 0x02, 0xfc, 0x12, 0x04, 0x71, 0x5c, 0xe3, 0xfc, 0xb0, 0x90, 0x5b, 0xfa, 0x41, 0x1c, 0x9d, 0x1c, 0x9a, 0xb4, 0xa3, 0x99, 0x54, 0xe5, 0x0b, 0x8e, 0x0c, 0xf7, 0x36, 0xc1, 0x02, 0x89, 0x56, 0x3b, 0xdf, 0xa9, 0x67, 0x55, 0x3c, 0x36, 0xcd, 0x9e, 0x55, 0x5b, 0xc8, 0xcc, 0x56, 0xbe, 0x59, 0x48, 0x47, 0xde, 0x9f, 0x26, 0xf9, };
9590 static const u8 ed25519_417_test_vectors_expected_sig[] = {
9591 	0xf6, 0xee, 0x5e, 0x13, 0xcf, 0xaa, 0x36, 0x2c, 0x89, 0x71, 0xd5, 0xa4, 0xa8, 0x79, 0xa7, 0xe3, 0x69, 0x66, 0x52, 0x5c, 0xcd, 0x86, 0xc5, 0xa4, 0x8c, 0xba, 0x08, 0xd9, 0x13, 0xec, 0xe1, 0xa7, 0x9c, 0x4c, 0xd1, 0x46, 0xb8, 0xe9, 0xc6, 0x51, 0x25, 0xfb, 0xad, 0xf1, 0x7b, 0xac, 0x1c, 0xab, 0xcd, 0xe8, 0xfd, 0x17, 0xcf, 0xd6, 0x8f, 0xa1, 0xf9, 0xc4, 0x4e, 0xa6, 0x1c, 0x08, 0xa4, 0x05, };
9592 static const ec_test_case ed25519_417_test_case = {
9593 	.name = "EDDSA25519-SHA512/wei25519 417",
9594 	.ec_str_p = &wei25519_str_params,
9595 	.priv_key = ed25519_417_test_vectors_priv_key,
9596 	.priv_key_len = sizeof(ed25519_417_test_vectors_priv_key),
9597 	.nn_random = NULL,
9598 	.hash_type = SHA512,
9599 	.msg = (const char *)ed25519_417_test_vectors_message,
9600 	.msglen = sizeof(ed25519_417_test_vectors_message),
9601 	.sig_type = EDDSA25519,
9602 	.exp_sig = ed25519_417_test_vectors_expected_sig,
9603 	.exp_siglen = sizeof(ed25519_417_test_vectors_expected_sig),
9604 	.adata = NULL,
9605 	.adata_len = 0
9606 };
9607 
9608 /************************************************/
9609 static const u8 ed25519_418_test_vectors_priv_key[] = {
9610 	0x38, 0x84, 0xb8, 0xb7, 0x9a, 0xbf, 0xd3, 0xbe, 0x6c, 0x13, 0x98, 0x5e, 0xb8, 0x59, 0xab, 0x74, 0x3f, 0x15, 0x7c, 0xd9, 0xde, 0xb8, 0x1b, 0x2f, 0xe9, 0x7e, 0xa4, 0xd6, 0x17, 0x3e, 0x46, 0xf5, };
9611 static const u8 ed25519_418_test_vectors_message[] = {
9612 	0x12, 0xad, 0xaf, 0xe3, 0x0e, 0xaf, 0x2b, 0x9c, 0x72, 0x03, 0xca, 0x5d, 0x44, 0xb9, 0x7f, 0xfe, 0xd4, 0xbf, 0x65, 0x17, 0xa4, 0x99, 0x88, 0xe4, 0xe6, 0x76, 0xc8, 0xe3, 0x14, 0xad, 0xbd, 0xbe, 0x23, 0xd8, 0xf2, 0xd3, 0xe2, 0xb0, 0x81, 0xa7, 0x02, 0x4f, 0xa5, 0x25, 0xab, 0x5a, 0xae, 0x26, 0xe6, 0x00, 0x57, 0xc1, 0x01, 0xe8, 0xf3, 0x68, 0xd3, 0xad, 0xdb, 0x93, 0x76, 0xc4, 0x68, 0x2c, 0x1f, 0x42, 0x24, 0xd7, 0xf1, 0x49, 0xa8, 0x47, 0x4b, 0xb9, 0xa8, 0xf6, 0x63, 0xef, 0x21, 0x0e, 0x95, 0x72, 0xce, 0x82, 0x9d, 0xa3, 0x88, 0xd8, 0xaa, 0xe7, 0x2a, 0x46, 0x71, 0x41, 0xad, 0xc1, 0x53, 0x47, 0x3b, 0xe3, 0x65, 0x3b, 0xaa, 0xa6, 0x4b, 0x5b, 0x1e, 0x2e, 0x30, 0x68, 0x3f, 0x6f, 0x06, 0xda, 0xc2, 0x78, 0x4d, 0x5b, 0xbf, 0x0d, 0x08, 0x2a, 0xab, 0x47, 0x30, 0x5e, 0xd8, 0xa8, 0xef, 0xd0, 0x88, 0x6c, 0xe6, 0x3a, 0x17, 0x93, 0x15, 0x22, 0x5d, 0x1e, 0x4d, 0x4f, 0xfc, 0xf1, 0xf2, 0x4a, 0xc2, 0xf4, 0x64, 0xcf, 0x5e, 0xd3, 0xa8, 0xb6, 0xd3, 0x99, 0x84, 0x54, 0xf1, 0xc0, 0x2c, 0xdb, 0xf0, 0xa4, 0x44, 0xee, 0x2b, 0x59, 0xdd, 0xbe, 0x0a, 0x17, 0x4a, 0x0d, 0x93, 0x7f, 0xa6, 0x28, 0x65, 0x08, 0x8a, 0xc6, 0x47, 0x49, 0x99, 0x57, 0xd2, 0x81, 0xc6, 0x94, 0x98, 0x03, 0xa5, 0xfb, 0xdf, 0xdd, 0x0d, 0xd9, 0xe9, 0x1b, 0x69, 0x76, 0x86, 0x1f, 0x3c, 0x5f, 0x21, 0x26, 0xf3, 0x9a, 0xac, 0x93, 0x5b, 0xe0, 0x9f, 0x4b, 0x97, 0x15, 0xbd, 0x4f, 0x0d, 0x5c, 0x55, 0xdf, 0x73, 0xa6, 0xb9, 0xf2, 0xc0, 0xad, 0x26, 0xce, 0x49, 0xd8, 0x22, 0xbf, 0x85, 0xbf, 0xa2, 0x34, 0x6f, 0x31, 0x65, 0xb0, 0x38, 0x59, 0xa7, 0x1c, 0x3d, 0x2a, 0x7b, 0x86, 0xdb, 0x6e, 0x9f, 0x2e, 0x5d, 0x7b, 0x16, 0x9a, 0x91, 0x0e, 0xeb, 0x7e, 0xf3, 0x8f, 0xbd, 0xfb, 0xbe, 0xc4, 0x3a, 0x9a, 0x25, 0xf0, 0x4b, 0xc3, 0xac, 0xfd, 0x3b, 0x06, 0x91, 0x54, 0x2a, 0xb6, 0xde, 0x9d, 0xb6, 0xf0, 0x30, 0x58, 0xf9, 0x58, 0x40, 0x24, 0xf9, 0x91, 0x8e, 0xde, 0xcd, 0x90, 0xfb, 0xb8, 0x57, 0x35, 0xd6, 0xdc, 0xec, 0x5b, 0xd5, 0x93, 0xae, 0x63, 0xe2, 0xcc, 0x96, 0x55, 0x35, 0x99, 0xa3, 0x10, 0xf8, 0xf2, 0x00, 0x9b, 0xa9, 0x53, 0x71, 0x19, 0x6b, 0x4d, 0x5b, 0x80, 0xe7, 0x55, 0x96, 0x37, 0xf2, 0x29, 0x26, 0x77, 0x8b, 0xe5, 0xe1, 0xcc, 0xef, 0x51, 0x26, 0xe2, 0x44, 0x3f, 0xa9, 0x39, 0xc2, 0xa5, 0x3d, 0xdd, 0xb0, 0x49, 0x61, 0xee, 0xfd, 0x34, 0xe5, 0x38, 0xcd, 0x8d, 0x7f, 0x0b, 0xec, 0x2b, 0xff, 0x1e, 0xf0, 0xd3, 0xa4, 0xbd, 0xd3, 0x58, 0x31, 0x76, 0x37, 0xf4, 0x2d, 0x59, 0x55, 0x38, 0xc1, 0x12, 0x22, 0x51, 0xa9, 0x4e, 0x96, 0x3d, 0x1f, 0x81, 0xe7, 0xb9, 0xae, 0xb1, 0x64, 0xf9, 0x5d, 0xa9, 0xa4, 0xed, 0x75, 0x29, 0xb8, 0x45, 0xeb, 0xc9, 0x61, 0xb2, 0x7b, 0x5c, 0x19, };
9613 static const u8 ed25519_418_test_vectors_expected_sig[] = {
9614 	0xf4, 0x20, 0x6f, 0xcd, 0x34, 0x50, 0x24, 0x41, 0xd5, 0x4a, 0x73, 0x32, 0x3f, 0x33, 0xa5, 0xdb, 0xb4, 0xc9, 0x85, 0x57, 0x31, 0x9f, 0x21, 0x24, 0x6f, 0x26, 0x0f, 0xfb, 0xbe, 0x58, 0x44, 0x88, 0x6d, 0xb5, 0x67, 0xf4, 0xb6, 0x3c, 0x47, 0x94, 0x3d, 0xbb, 0x78, 0xfc, 0x35, 0x65, 0x7d, 0x7c, 0x04, 0xd4, 0xfe, 0xb0, 0x42, 0xff, 0x85, 0x36, 0xf6, 0x72, 0x92, 0x5c, 0x31, 0x9e, 0xfb, 0x09, };
9615 static const ec_test_case ed25519_418_test_case = {
9616 	.name = "EDDSA25519-SHA512/wei25519 418",
9617 	.ec_str_p = &wei25519_str_params,
9618 	.priv_key = ed25519_418_test_vectors_priv_key,
9619 	.priv_key_len = sizeof(ed25519_418_test_vectors_priv_key),
9620 	.nn_random = NULL,
9621 	.hash_type = SHA512,
9622 	.msg = (const char *)ed25519_418_test_vectors_message,
9623 	.msglen = sizeof(ed25519_418_test_vectors_message),
9624 	.sig_type = EDDSA25519,
9625 	.exp_sig = ed25519_418_test_vectors_expected_sig,
9626 	.exp_siglen = sizeof(ed25519_418_test_vectors_expected_sig),
9627 	.adata = NULL,
9628 	.adata_len = 0
9629 };
9630 
9631 /************************************************/
9632 static const u8 ed25519_419_test_vectors_priv_key[] = {
9633 	0xec, 0xd5, 0x19, 0xf2, 0x87, 0xad, 0x39, 0x50, 0x52, 0xb0, 0xb3, 0x0d, 0xea, 0xc3, 0x41, 0xd2, 0xa9, 0xdf, 0x13, 0xd6, 0x56, 0x7c, 0x89, 0x1c, 0x81, 0x3a, 0x0c, 0x9c, 0xa5, 0x2e, 0x87, 0x1e, };
9634 static const u8 ed25519_419_test_vectors_message[] = {
9635 	0xaa, 0x71, 0xbe, 0x5f, 0x55, 0x7e, 0x10, 0xc9, 0xfb, 0x5f, 0x09, 0x1a, 0x3a, 0x27, 0x44, 0x53, 0x94, 0x7c, 0x07, 0xa0, 0xe2, 0x5b, 0x26, 0xf9, 0x50, 0x92, 0x24, 0x54, 0x1d, 0xff, 0x76, 0xf4, 0xd9, 0x6e, 0xff, 0xd0, 0xd5, 0xa4, 0x1d, 0x31, 0x9b, 0xc9, 0x32, 0x1a, 0x86, 0x66, 0x7d, 0x55, 0xcf, 0x49, 0x43, 0x2f, 0xb5, 0xc3, 0xe7, 0x15, 0x38, 0x8f, 0x3f, 0x10, 0x6c, 0x91, 0x74, 0xb1, 0x61, 0x0c, 0x8f, 0x30, 0x75, 0xd5, 0x93, 0x1c, 0x29, 0x00, 0x99, 0x38, 0x5c, 0xe9, 0x24, 0x9e, 0x23, 0x51, 0x28, 0xe9, 0x07, 0xc5, 0x33, 0x90, 0x03, 0x6f, 0xbf, 0x5d, 0xa9, 0x68, 0xf8, 0xd0, 0x12, 0x33, 0x69, 0x58, 0xde, 0x90, 0xc5, 0xe8, 0xe6, 0xb1, 0x01, 0x6a, 0xd4, 0x3f, 0xb5, 0x7c, 0x8e, 0x28, 0x8d, 0xaf, 0xe1, 0x4e, 0x90, 0xe6, 0x4b, 0x63, 0x79, 0x1e, 0x5c, 0xbe, 0x55, 0x7e, 0x02, 0xdf, 0x8a, 0xc9, 0x37, 0x06, 0x42, 0xa7, 0x1f, 0xaf, 0x85, 0x10, 0x75, 0xe5, 0x56, 0x5f, 0x6f, 0x9a, 0x26, 0x7f, 0x4f, 0x6b, 0x45, 0x4c, 0xe4, 0xc5, 0x47, 0x48, 0x10, 0xb8, 0x04, 0x84, 0x4d, 0xda, 0x38, 0x39, 0x29, 0x39, 0x71, 0x97, 0x93, 0x24, 0x6a, 0xa4, 0x74, 0x54, 0xb9, 0xb0, 0xe8, 0x2e, 0x98, 0x03, 0xc0, 0x99, 0x35, 0xd0, 0x02, 0x7f, 0x39, 0x95, 0xcc, 0xa9, 0x71, 0x30, 0x69, 0xbb, 0x31, 0x02, 0x7f, 0x7b, 0x2a, 0xf1, 0x2f, 0xe5, 0xfe, 0xec, 0x7e, 0xeb, 0x06, 0x84, 0x3d, 0x82, 0x96, 0xec, 0x56, 0x82, 0x26, 0x2a, 0x07, 0xda, 0xe7, 0x47, 0xed, 0x7b, 0xc8, 0x21, 0xec, 0x17, 0x01, 0x8d, 0x89, 0x9f, 0xd1, 0x67, 0xb3, 0x6a, 0x7e, 0x37, 0x73, 0xb4, 0x27, 0x49, 0x9d, 0x99, 0xdc, 0x58, 0x3b, 0xbe, 0x4b, 0x42, 0x9a, 0xfa, 0x6a, 0x26, 0x59, 0x39, 0x53, 0xf9, 0x43, 0xe4, 0x67, 0x3b, 0xdd, 0x0d, 0x2a, 0x84, 0x42, 0x56, 0x13, 0x16, 0x03, 0xcd, 0x09, 0x03, 0x25, 0x6f, 0x33, 0x4d, 0x4f, 0x8e, 0xc8, 0x2d, 0xe1, 0x15, 0xb6, 0xca, 0x53, 0x38, 0xc7, 0x5c, 0x8b, 0xaa, 0x44, 0xb4, 0xba, 0x96, 0x3c, 0x7c, 0x78, 0x51, 0x0d, 0x8d, 0xe9, 0xb2, 0xa5, 0x85, 0x2f, 0x42, 0xf3, 0x46, 0x3c, 0x68, 0x5f, 0xb3, 0xa6, 0xda, 0x61, 0xa8, 0xe0, 0x89, 0x26, 0x62, 0xd6, 0xa2, 0x50, 0xfc, 0xaa, 0x6f, 0xef, 0x74, 0xd4, 0x50, 0xfc, 0x45, 0x7b, 0x98, 0x71, 0xd0, 0x8b, 0xb5, 0xbe, 0x30, 0x11, 0x29, 0x4a, 0xc8, 0x88, 0xfc, 0xe2, 0x15, 0xd5, 0x35, 0xc3, 0xb1, 0xa4, 0x3b, 0xb4, 0x7e, 0xfe, 0x3a, 0xd2, 0x5d, 0xa1, 0x59, 0x19, 0x1a, 0xed, 0x55, 0x19, 0x54, 0x69, 0xc5, 0x90, 0x93, 0xff, 0xb2, 0x4f, 0x65, 0xd6, 0x0c, 0x40, 0x20, 0xbf, 0xbe, 0x64, 0x7f, 0xf5, 0xdb, 0x7a, 0xb8, 0xa0, 0x1d, 0x5e, 0x48, 0x7b, 0x0b, 0x1b, 0x64, 0xef, 0x25, 0xda, 0x15, 0x6d, 0xb1, 0x42, 0xe6, 0xad, 0x87, 0x2a, 0x4d, 0xc1, 0xee, 0x9b, 0xa6, 0x68, 0x46, 0x52, 0x65, 0x37, 0x9e, };
9636 static const u8 ed25519_419_test_vectors_expected_sig[] = {
9637 	0xe8, 0xf5, 0x1b, 0xe7, 0x3f, 0xc4, 0xe0, 0x23, 0x5a, 0xa1, 0x53, 0xa2, 0xe1, 0xb3, 0x54, 0xe9, 0xc5, 0xd2, 0xd3, 0x3a, 0x11, 0xae, 0x0e, 0x33, 0x34, 0x78, 0xde, 0x1d, 0x8e, 0x6c, 0x44, 0x56, 0xd2, 0xe2, 0x50, 0x82, 0x4c, 0x32, 0x46, 0xca, 0x0e, 0x8d, 0x6a, 0xe3, 0xe1, 0x66, 0x77, 0xa9, 0x73, 0x44, 0x14, 0x41, 0x08, 0xc1, 0x3b, 0x95, 0x9e, 0x1d, 0xaf, 0x51, 0xcf, 0x0f, 0xe5, 0x01, };
9638 static const ec_test_case ed25519_419_test_case = {
9639 	.name = "EDDSA25519-SHA512/wei25519 419",
9640 	.ec_str_p = &wei25519_str_params,
9641 	.priv_key = ed25519_419_test_vectors_priv_key,
9642 	.priv_key_len = sizeof(ed25519_419_test_vectors_priv_key),
9643 	.nn_random = NULL,
9644 	.hash_type = SHA512,
9645 	.msg = (const char *)ed25519_419_test_vectors_message,
9646 	.msglen = sizeof(ed25519_419_test_vectors_message),
9647 	.sig_type = EDDSA25519,
9648 	.exp_sig = ed25519_419_test_vectors_expected_sig,
9649 	.exp_siglen = sizeof(ed25519_419_test_vectors_expected_sig),
9650 	.adata = NULL,
9651 	.adata_len = 0
9652 };
9653 
9654 /************************************************/
9655 static const u8 ed25519_420_test_vectors_priv_key[] = {
9656 	0x19, 0x3f, 0x3c, 0x63, 0x0f, 0x0c, 0x85, 0x5b, 0x52, 0x9f, 0x34, 0xa4, 0x4e, 0x94, 0x49, 0x70, 0xf4, 0xa6, 0x97, 0x2e, 0x6c, 0x38, 0x59, 0x35, 0x9c, 0x2e, 0x0c, 0x87, 0x62, 0xba, 0x9e, 0xaf, };
9657 static const u8 ed25519_420_test_vectors_message[] = {
9658 	0x98, 0x62, 0x3f, 0x65, 0x16, 0x98, 0x08, 0x5b, 0xde, 0x02, 0x76, 0x2e, 0x8c, 0x33, 0x21, 0xf1, 0x4d, 0xa1, 0x61, 0x9b, 0x5c, 0x3f, 0x7c, 0x1a, 0x56, 0x8e, 0x8c, 0x26, 0xff, 0x0c, 0x62, 0xfd, 0xcc, 0x41, 0x24, 0x75, 0x91, 0x2e, 0xb8, 0xe8, 0xc4, 0xb0, 0xd3, 0x09, 0x18, 0xb8, 0xff, 0xee, 0xf3, 0x50, 0x93, 0x15, 0xe5, 0x8d, 0xa3, 0x59, 0xcd, 0xc2, 0xf2, 0x6b, 0xeb, 0xfb, 0x57, 0x03, 0x95, 0x3b, 0xe1, 0x6b, 0x8f, 0x3b, 0xeb, 0x1e, 0x54, 0xa1, 0xab, 0xee, 0x0a, 0xeb, 0xe2, 0x4e, 0x64, 0xdb, 0xe8, 0x73, 0x40, 0x2e, 0x15, 0x6f, 0x37, 0xdf, 0xc1, 0x68, 0xea, 0xf8, 0xa1, 0x14, 0xce, 0x08, 0xa6, 0x79, 0x5d, 0x3f, 0x64, 0xf5, 0x15, 0x1e, 0x9a, 0x8b, 0x82, 0x75, 0xcc, 0x7b, 0x49, 0xa6, 0xb8, 0xd8, 0xa6, 0x6b, 0x6d, 0x4b, 0x76, 0x32, 0xef, 0x80, 0x74, 0x0d, 0xc1, 0xc1, 0xb0, 0xa3, 0x8d, 0x1a, 0x28, 0xf7, 0xc1, 0xb2, 0x9f, 0xa4, 0x45, 0x41, 0xc1, 0xaa, 0xd3, 0x54, 0xd4, 0x59, 0x0c, 0x23, 0x1d, 0xae, 0x68, 0x7a, 0x2a, 0x8f, 0xed, 0x09, 0xe8, 0xc1, 0xeb, 0xbf, 0xcc, 0x38, 0xf3, 0x47, 0xbf, 0x06, 0xd9, 0x45, 0x77, 0xe4, 0x9a, 0xd1, 0x39, 0xf7, 0x10, 0xed, 0x8b, 0xb1, 0xfd, 0x07, 0x66, 0x3c, 0x03, 0x20, 0x84, 0x6f, 0xbb, 0x45, 0x5a, 0xb8, 0x37, 0xef, 0x96, 0x4a, 0xe7, 0xd4, 0xec, 0xee, 0xa4, 0x5f, 0xd7, 0xbd, 0x8d, 0x50, 0x9f, 0x82, 0x1e, 0x6e, 0xb0, 0x27, 0x49, 0x4e, 0xfd, 0x8d, 0xd8, 0xe9, 0x92, 0xb8, 0x86, 0x98, 0xee, 0xc2, 0xeb, 0xc5, 0xe0, 0x30, 0x25, 0xbe, 0x78, 0x9c, 0x18, 0x01, 0x3f, 0x20, 0x1f, 0x77, 0xaa, 0x2d, 0x34, 0xf5, 0x68, 0x64, 0x60, 0xe4, 0x3f, 0xb4, 0x89, 0xe0, 0x87, 0x76, 0xf9, 0x8b, 0xcd, 0xe2, 0xce, 0xeb, 0x9d, 0x4f, 0xaf, 0xdf, 0xfe, 0x03, 0x75, 0x60, 0x43, 0x71, 0xec, 0x32, 0xf4, 0x6b, 0x81, 0xfe, 0xc4, 0x74, 0x38, 0x29, 0x08, 0xe9, 0xd2, 0x50, 0xa0, 0xba, 0x27, 0x80, 0xa7, 0xd6, 0xdf, 0x40, 0x7b, 0xd2, 0xb1, 0xeb, 0x12, 0x67, 0x48, 0xd7, 0x25, 0x11, 0xb9, 0xb0, 0x69, 0xeb, 0x1c, 0xd4, 0x42, 0x70, 0xf2, 0x9f, 0xe8, 0x4b, 0x9a, 0x71, 0x77, 0x51, 0x83, 0x1d, 0x04, 0xc2, 0x81, 0x8e, 0x40, 0x8f, 0x22, 0x78, 0x93, 0x76, 0xc6, 0x1c, 0x2c, 0xa4, 0x5e, 0x32, 0xe7, 0x88, 0xea, 0xd3, 0xa7, 0x53, 0x6b, 0xf0, 0x9d, 0xa8, 0xaf, 0x47, 0x03, 0x90, 0x2f, 0x55, 0x16, 0xa0, 0x20, 0xd8, 0x92, 0x63, 0xe9, 0x37, 0x01, 0xa2, 0x56, 0x5e, 0xef, 0x12, 0x70, 0x41, 0x89, 0x25, 0xf3, 0x5a, 0x28, 0x8e, 0x32, 0x7b, 0xab, 0x62, 0x8a, 0xc2, 0xf0, 0x24, 0x8c, 0xfb, 0xca, 0x34, 0x82, 0xe2, 0x65, 0xd1, 0x62, 0x1c, 0xc3, 0x43, 0xc3, 0x1f, 0x65, 0x49, 0x3f, 0x06, 0x4b, 0xad, 0x0d, 0x76, 0x02, 0x46, 0x07, 0x15, 0xfa, 0x48, 0x6f, 0x29, 0x42, 0x63, 0x46, 0xaf, 0x53, 0xe3, 0x33, 0xb7, 0x5f, 0x59, 0x05, };
9659 static const u8 ed25519_420_test_vectors_expected_sig[] = {
9660 	0xb1, 0x25, 0x10, 0xac, 0x5f, 0x2f, 0x6d, 0x33, 0x36, 0x0c, 0xdd, 0xc6, 0x72, 0x91, 0xd6, 0xc2, 0x70, 0xfd, 0x9e, 0xe6, 0x2d, 0xc0, 0x86, 0xb3, 0x8d, 0x93, 0x2d, 0x26, 0x47, 0x3f, 0xe9, 0xa2, 0x4e, 0xfb, 0xd4, 0x24, 0x88, 0x67, 0xea, 0x7e, 0x91, 0x5a, 0x30, 0xc5, 0xbf, 0xb3, 0xb8, 0xb1, 0x9a, 0xa0, 0x1a, 0xa2, 0xfe, 0xbf, 0x0d, 0xac, 0x6c, 0xfd, 0x66, 0x38, 0xa2, 0xba, 0x7e, 0x0c, };
9661 static const ec_test_case ed25519_420_test_case = {
9662 	.name = "EDDSA25519-SHA512/wei25519 420",
9663 	.ec_str_p = &wei25519_str_params,
9664 	.priv_key = ed25519_420_test_vectors_priv_key,
9665 	.priv_key_len = sizeof(ed25519_420_test_vectors_priv_key),
9666 	.nn_random = NULL,
9667 	.hash_type = SHA512,
9668 	.msg = (const char *)ed25519_420_test_vectors_message,
9669 	.msglen = sizeof(ed25519_420_test_vectors_message),
9670 	.sig_type = EDDSA25519,
9671 	.exp_sig = ed25519_420_test_vectors_expected_sig,
9672 	.exp_siglen = sizeof(ed25519_420_test_vectors_expected_sig),
9673 	.adata = NULL,
9674 	.adata_len = 0
9675 };
9676 
9677 /************************************************/
9678 static const u8 ed25519_421_test_vectors_priv_key[] = {
9679 	0xa8, 0x8a, 0xd0, 0x04, 0x8d, 0x38, 0xc4, 0x4c, 0xeb, 0xe7, 0x35, 0xea, 0x38, 0x02, 0xca, 0x57, 0x6e, 0x37, 0x12, 0x1c, 0x7d, 0x4d, 0x76, 0x0d, 0xfd, 0x88, 0xde, 0x16, 0x63, 0x06, 0x4a, 0xbb, };
9680 static const u8 ed25519_421_test_vectors_message[] = {
9681 	0x2c, 0xe8, 0xbc, 0xa2, 0x61, 0x78, 0x91, 0x3b, 0x16, 0x76, 0xe9, 0x0f, 0xfe, 0xfd, 0x94, 0x5b, 0xc5, 0x61, 0x98, 0x26, 0x60, 0xe2, 0xa7, 0x5d, 0x48, 0x2f, 0xf3, 0x0a, 0xab, 0xa1, 0xba, 0x43, 0xf8, 0x2d, 0x2e, 0x6b, 0x90, 0x9e, 0xc1, 0x0f, 0xc0, 0x97, 0x89, 0xff, 0x5c, 0xf3, 0x2a, 0x51, 0x80, 0xb6, 0x01, 0xea, 0x80, 0xfa, 0xde, 0xce, 0x6d, 0x7e, 0x7b, 0xae, 0xef, 0x48, 0x1d, 0xc6, 0x97, 0x9e, 0x2f, 0x65, 0x8a, 0xe0, 0xf6, 0xd8, 0xe4, 0x16, 0xb9, 0x32, 0x98, 0xf7, 0xd3, 0x40, 0x31, 0xbb, 0x76, 0xf7, 0x16, 0xed, 0x99, 0x1a, 0x16, 0xd0, 0x9a, 0x58, 0x2e, 0x58, 0xba, 0x40, 0x03, 0xac, 0x17, 0xbe, 0x8b, 0x44, 0x69, 0xe1, 0xa8, 0x89, 0xb2, 0xfb, 0xb2, 0x28, 0x9e, 0x98, 0xaf, 0x1c, 0x6d, 0x5b, 0xbe, 0xe7, 0x77, 0x56, 0x71, 0x3c, 0x07, 0x78, 0xb0, 0xdc, 0x44, 0x6a, 0x1f, 0x6c, 0x48, 0xc4, 0xd4, 0x08, 0x18, 0xec, 0x79, 0x99, 0x05, 0xf0, 0x69, 0xbc, 0x95, 0x34, 0x16, 0x57, 0xca, 0x5d, 0x02, 0xb7, 0xa5, 0x39, 0xa1, 0x3a, 0x02, 0xcd, 0x03, 0x76, 0xa5, 0x0e, 0x83, 0x43, 0xc0, 0xdc, 0x20, 0x34, 0x6d, 0xe5, 0x27, 0x5b, 0x1d, 0xcd, 0x4a, 0xd7, 0xaf, 0x72, 0x51, 0x31, 0xac, 0x75, 0xe9, 0x54, 0x82, 0x5d, 0x30, 0xea, 0xa5, 0x7a, 0x68, 0xbb, 0x98, 0xdf, 0xc4, 0x1c, 0xaf, 0xe5, 0x71, 0x05, 0x56, 0x64, 0x7b, 0x38, 0x7d, 0x9b, 0x7f, 0xd4, 0xe4, 0x76, 0x51, 0xe5, 0x13, 0x80, 0x50, 0x79, 0x8f, 0x6d, 0x40, 0xf4, 0xee, 0x71, 0x20, 0xb5, 0x8f, 0x74, 0xda, 0x94, 0xd7, 0x3c, 0xac, 0xbf, 0xd3, 0x93, 0xd1, 0x34, 0x73, 0x88, 0xee, 0x00, 0xb7, 0x9b, 0x8d, 0xbf, 0xeb, 0x57, 0x81, 0x41, 0x21, 0xbd, 0xda, 0x60, 0xc6, 0x27, 0xdc, 0xe1, 0x47, 0xd4, 0xd5, 0x68, 0xd7, 0x90, 0x52, 0xe9, 0x7b, 0x9a, 0x5f, 0x3e, 0xb5, 0x40, 0x7c, 0xc4, 0x64, 0x61, 0xa5, 0x5e, 0x18, 0xa9, 0x60, 0xd8, 0x09, 0x4a, 0x5f, 0xea, 0x48, 0xb6, 0x93, 0x75, 0x29, 0xcc, 0x4e, 0xc9, 0x19, 0xcd, 0xbe, 0xdf, 0x91, 0x85, 0x45, 0x6d, 0xc0, 0x0e, 0x8d, 0x98, 0xad, 0x15, 0x37, 0xee, 0x10, 0xa0, 0x57, 0xf4, 0xee, 0xc4, 0xb8, 0x1d, 0xc6, 0x03, 0x92, 0xfc, 0x91, 0x88, 0xd3, 0xe5, 0x61, 0x78, 0x59, 0x65, 0x09, 0x2e, 0x44, 0x31, 0x7f, 0x2a, 0x48, 0xe3, 0x66, 0x05, 0xfc, 0x58, 0x3f, 0xc1, 0x73, 0xb0, 0x5d, 0xb9, 0xdc, 0xbc, 0x75, 0x57, 0xd0, 0x64, 0x87, 0x39, 0x0f, 0xbb, 0xba, 0x77, 0xaf, 0x3a, 0x01, 0x4e, 0x1a, 0xc3, 0x51, 0x39, 0xca, 0xa1, 0xc5, 0x3a, 0x8d, 0x17, 0x34, 0x7f, 0x17, 0x8e, 0x1c, 0x54, 0xd0, 0xf5, 0x2b, 0x40, 0xe9, 0x10, 0x42, 0xc9, 0x3e, 0x7e, 0x48, 0x1d, 0x79, 0x2e, 0x28, 0x8f, 0xc2, 0x7e, 0x4c, 0x2f, 0xcf, 0x11, 0x1f, 0xe9, 0x7d, 0x9e, 0x23, 0x37, 0xd2, 0xfc, 0x1c, 0x30, 0x98, 0xf0, 0x66, 0x84, 0xa3, 0x1d, 0x55, 0xeb, 0xf3, 0x62, 0xc0, 0x27, };
9682 static const u8 ed25519_421_test_vectors_expected_sig[] = {
9683 	0x13, 0x41, 0xa1, 0x48, 0xda, 0x45, 0x93, 0xc8, 0x8e, 0xbc, 0x5a, 0x58, 0x82, 0x1e, 0xef, 0x77, 0xf9, 0x21, 0x86, 0x39, 0x0f, 0xf6, 0x33, 0xe7, 0x62, 0x07, 0x08, 0x4e, 0x78, 0x74, 0xcc, 0xf0, 0xeb, 0x1f, 0x9e, 0xc7, 0x0a, 0x3a, 0x3f, 0x96, 0xb5, 0x89, 0x34, 0xbc, 0xb0, 0x61, 0xff, 0x92, 0x01, 0x24, 0xf7, 0xe5, 0x80, 0xfa, 0x2b, 0x0b, 0x27, 0x95, 0x83, 0xad, 0xf9, 0x23, 0x2d, 0x0c, };
9684 static const ec_test_case ed25519_421_test_case = {
9685 	.name = "EDDSA25519-SHA512/wei25519 421",
9686 	.ec_str_p = &wei25519_str_params,
9687 	.priv_key = ed25519_421_test_vectors_priv_key,
9688 	.priv_key_len = sizeof(ed25519_421_test_vectors_priv_key),
9689 	.nn_random = NULL,
9690 	.hash_type = SHA512,
9691 	.msg = (const char *)ed25519_421_test_vectors_message,
9692 	.msglen = sizeof(ed25519_421_test_vectors_message),
9693 	.sig_type = EDDSA25519,
9694 	.exp_sig = ed25519_421_test_vectors_expected_sig,
9695 	.exp_siglen = sizeof(ed25519_421_test_vectors_expected_sig),
9696 	.adata = NULL,
9697 	.adata_len = 0
9698 };
9699 
9700 /************************************************/
9701 static const u8 ed25519_422_test_vectors_priv_key[] = {
9702 	0x3f, 0x59, 0xd6, 0xa0, 0x18, 0xf5, 0x0a, 0x82, 0x21, 0x17, 0xe5, 0xb4, 0x73, 0x60, 0x9e, 0x30, 0xcd, 0x64, 0x92, 0x0c, 0xa1, 0xc2, 0x75, 0x0d, 0xcb, 0x09, 0xea, 0xab, 0x80, 0x7a, 0x3e, 0xac, };
9703 static const u8 ed25519_422_test_vectors_message[] = {
9704 	0x7d, 0x10, 0x3a, 0x6c, 0x6b, 0xa2, 0xd0, 0x90, 0x87, 0xee, 0xf2, 0x25, 0x4c, 0x1c, 0x90, 0x3f, 0x06, 0x76, 0x95, 0xa5, 0x4c, 0x45, 0x15, 0xe4, 0xd1, 0x3b, 0xc1, 0xfb, 0xfb, 0x54, 0xd6, 0xe7, 0xa1, 0x67, 0x34, 0x9c, 0x14, 0x80, 0x99, 0x76, 0xda, 0x04, 0xa7, 0xe5, 0x8d, 0x96, 0xb4, 0x0a, 0xac, 0x3b, 0x2b, 0xdd, 0x14, 0xb9, 0xb5, 0x03, 0x22, 0xbb, 0x11, 0x64, 0x5f, 0x05, 0xe5, 0xe9, 0x78, 0xbc, 0x7f, 0xbd, 0x02, 0x49, 0x2e, 0xf8, 0x8f, 0x87, 0xd6, 0x68, 0x28, 0x0f, 0xd7, 0x08, 0x37, 0x32, 0x07, 0xff, 0x67, 0x0f, 0xcd, 0xa9, 0x7d, 0xf8, 0x48, 0x5d, 0x5e, 0x46, 0xdc, 0x3b, 0xd0, 0x43, 0x47, 0xf4, 0xd7, 0x52, 0x7e, 0xab, 0x27, 0x18, 0xf7, 0xd9, 0x3d, 0x13, 0x2b, 0xa7, 0x75, 0x82, 0x18, 0x89, 0x4e, 0x75, 0xa7, 0xde, 0xab, 0xe6, 0x93, 0x33, 0x5b, 0xa0, 0xdc, 0x73, 0xbf, 0x26, 0xc2, 0x88, 0xbf, 0xe9, 0xbe, 0x8a, 0x73, 0x6d, 0x75, 0xe5, 0xe0, 0xea, 0xa7, 0xbb, 0xe8, 0xd0, 0xb7, 0x7a, 0xbd, 0xd5, 0x14, 0x6e, 0x0f, 0xc9, 0xb3, 0x0d, 0xb9, 0xf0, 0x7c, 0xf4, 0xbf, 0x36, 0x26, 0x0a, 0x1f, 0x41, 0x41, 0x03, 0x31, 0xf8, 0xb4, 0x7c, 0x6b, 0x38, 0x33, 0x8c, 0x6d, 0xc9, 0xe8, 0x01, 0xff, 0xe1, 0xd5, 0x85, 0xf9, 0xb7, 0xfc, 0x31, 0xe9, 0x77, 0x8b, 0xca, 0x30, 0x27, 0xc2, 0x32, 0xc0, 0x74, 0xcb, 0x18, 0xe5, 0xb7, 0x29, 0x97, 0x00, 0x5f, 0xfe, 0xee, 0x4b, 0xf3, 0x7c, 0x8f, 0x87, 0x4b, 0x1b, 0x24, 0x6a, 0x63, 0x45, 0x41, 0x5d, 0xac, 0xac, 0xa7, 0x07, 0x5a, 0x60, 0x44, 0x3a, 0xc3, 0x31, 0x92, 0x36, 0xe2, 0x3c, 0xf6, 0xb7, 0x54, 0x47, 0x40, 0x80, 0x70, 0x52, 0x11, 0x49, 0x84, 0xb8, 0xd8, 0xf7, 0xe8, 0x57, 0xdc, 0xc6, 0xfa, 0xec, 0x88, 0x69, 0xcf, 0x96, 0xb9, 0x97, 0xdf, 0xa9, 0xaf, 0x91, 0x84, 0xad, 0x62, 0x3f, 0x1d, 0x90, 0xb8, 0xca, 0x75, 0x9b, 0x44, 0x8e, 0xab, 0xfc, 0xe1, 0x8c, 0x17, 0xcf, 0xdf, 0x9a, 0x3e, 0x33, 0x12, 0xe6, 0x3e, 0x5f, 0x08, 0x4c, 0xea, 0x90, 0x4c, 0x1c, 0x90, 0x99, 0x13, 0xcc, 0x4b, 0x19, 0xd0, 0x44, 0xa3, 0x72, 0x00, 0x34, 0x97, 0x3c, 0x73, 0x84, 0x94, 0x9b, 0xd6, 0xf9, 0xba, 0x92, 0x56, 0xf9, 0x8c, 0xd3, 0x94, 0xc5, 0x66, 0xda, 0x83, 0xc3, 0x11, 0x80, 0x10, 0x9f, 0x16, 0xd1, 0x03, 0x47, 0xb7, 0xe3, 0xe9, 0xdd, 0x6b, 0xe3, 0xbd, 0x3c, 0x77, 0xff, 0x1a, 0x79, 0x96, 0xa0, 0x78, 0xdc, 0xf8, 0x9d, 0xcd, 0xce, 0x2d, 0x1b, 0x61, 0x56, 0x95, 0xf4, 0xcc, 0x9f, 0x8f, 0x4f, 0x2a, 0x08, 0x80, 0x46, 0x41, 0xbc, 0xa8, 0x26, 0x62, 0xce, 0x88, 0xfa, 0xa5, 0x31, 0x45, 0xb6, 0xa4, 0x59, 0x55, 0xae, 0xc8, 0xcc, 0x2a, 0xf8, 0x1c, 0xcc, 0xb5, 0xd7, 0xc6, 0x4f, 0x9e, 0xce, 0x1c, 0x99, 0x83, 0x32, 0x64, 0x84, 0xa1, 0xe5, 0xec, 0xe4, 0xce, 0x36, 0x54, 0x4d, 0x63, 0x73, 0x5f, 0x77, 0x76, 0xf2, 0x1a, 0x20, };
9705 static const u8 ed25519_422_test_vectors_expected_sig[] = {
9706 	0xd7, 0x42, 0x5e, 0xa1, 0x94, 0xa6, 0x71, 0x5c, 0x45, 0x2e, 0xc4, 0xf6, 0xd6, 0xc7, 0x6e, 0x6d, 0xd3, 0x74, 0xd3, 0xca, 0x7a, 0xe7, 0xa1, 0x19, 0x95, 0xd0, 0x2b, 0x94, 0x2d, 0x4a, 0x31, 0x87, 0x0d, 0xd7, 0x34, 0xc1, 0x2f, 0xca, 0x89, 0xa8, 0xeb, 0x02, 0x13, 0xeb, 0x13, 0x9c, 0x14, 0xa8, 0x7a, 0x6a, 0x33, 0xe8, 0x18, 0x60, 0x3b, 0x2e, 0x31, 0x30, 0x23, 0xfa, 0x58, 0x73, 0x7d, 0x0e, };
9707 static const ec_test_case ed25519_422_test_case = {
9708 	.name = "EDDSA25519-SHA512/wei25519 422",
9709 	.ec_str_p = &wei25519_str_params,
9710 	.priv_key = ed25519_422_test_vectors_priv_key,
9711 	.priv_key_len = sizeof(ed25519_422_test_vectors_priv_key),
9712 	.nn_random = NULL,
9713 	.hash_type = SHA512,
9714 	.msg = (const char *)ed25519_422_test_vectors_message,
9715 	.msglen = sizeof(ed25519_422_test_vectors_message),
9716 	.sig_type = EDDSA25519,
9717 	.exp_sig = ed25519_422_test_vectors_expected_sig,
9718 	.exp_siglen = sizeof(ed25519_422_test_vectors_expected_sig),
9719 	.adata = NULL,
9720 	.adata_len = 0
9721 };
9722 
9723 /************************************************/
9724 static const u8 ed25519_423_test_vectors_priv_key[] = {
9725 	0xa1, 0x21, 0x2b, 0x34, 0xdb, 0xca, 0x63, 0xb7, 0x09, 0x36, 0x12, 0xd0, 0x5d, 0xab, 0x7b, 0x4c, 0xc8, 0xf7, 0xb6, 0x76, 0xa9, 0x34, 0xad, 0x01, 0xf6, 0x59, 0x85, 0x1b, 0x3b, 0xb4, 0x4e, 0x4e, };
9726 static const u8 ed25519_423_test_vectors_message[] = {
9727 	0x07, 0xc3, 0x7c, 0x46, 0xbe, 0x3c, 0x68, 0xd0, 0x56, 0x89, 0x57, 0x7a, 0xa6, 0x4a, 0x93, 0x2b, 0x90, 0x64, 0x46, 0xb2, 0x9b, 0xaf, 0x12, 0xf6, 0x17, 0x4a, 0x6b, 0x42, 0xbb, 0xae, 0xfd, 0x1f, 0x1f, 0x37, 0x3e, 0x0b, 0xcc, 0xc4, 0x73, 0xdd, 0xfc, 0xee, 0x1a, 0x7f, 0x21, 0xb9, 0x6a, 0x62, 0x60, 0xef, 0x0a, 0xa1, 0xf2, 0xd8, 0xb2, 0x95, 0x9e, 0x71, 0xd1, 0x2c, 0x95, 0x33, 0x58, 0xa2, 0x77, 0x4c, 0xc5, 0xe6, 0xf3, 0x79, 0xa3, 0x13, 0xe4, 0x35, 0xed, 0x69, 0xdf, 0xd6, 0xd4, 0xa5, 0x9a, 0xde, 0xe3, 0xcc, 0x7e, 0xc4, 0xba, 0xcb, 0xdb, 0xb3, 0xfe, 0xe5, 0x43, 0x0b, 0x73, 0xf6, 0x05, 0x1a, 0x60, 0x96, 0xc6, 0x0e, 0x9b, 0xc9, 0x2c, 0xc8, 0xfa, 0x05, 0x9f, 0xac, 0x2a, 0x93, 0xef, 0x70, 0x07, 0xd6, 0x4f, 0xbe, 0x50, 0x06, 0x49, 0x64, 0xd5, 0xa0, 0xad, 0x60, 0x11, 0x75, 0xcd, 0x9c, 0xab, 0xa4, 0x53, 0xf9, 0x10, 0x3b, 0x25, 0x48, 0x55, 0x45, 0xd3, 0x01, 0xf0, 0x3c, 0x5f, 0x9f, 0x94, 0x78, 0xbd, 0xf9, 0xd4, 0x14, 0xbf, 0x1d, 0xca, 0x3b, 0x1c, 0x1d, 0x9d, 0xaa, 0x99, 0x71, 0xf9, 0xe6, 0x17, 0xfb, 0xfa, 0xf5, 0xb0, 0x2a, 0x7f, 0xbd, 0x5d, 0x4f, 0xb8, 0x94, 0xc0, 0x97, 0x5c, 0x54, 0x59, 0x2b, 0x49, 0xa0, 0xfc, 0x85, 0xdd, 0x08, 0x53, 0xf3, 0x0c, 0x51, 0x50, 0x2d, 0x98, 0xfc, 0x1a, 0xb8, 0x5a, 0x17, 0xcc, 0x58, 0x96, 0x1a, 0xae, 0x97, 0x64, 0x57, 0x0b, 0xa5, 0xcb, 0xdb, 0xc9, 0x6d, 0xfc, 0xeb, 0x8d, 0x11, 0xda, 0x53, 0x36, 0x4b, 0x40, 0x25, 0xfe, 0x0b, 0x8b, 0xa8, 0xa3, 0x53, 0xad, 0x23, 0x68, 0x67, 0x20, 0x16, 0x9f, 0xe9, 0x73, 0x43, 0x2f, 0xfe, 0x29, 0x1a, 0x4b, 0x11, 0xde, 0xdd, 0xa0, 0xaa, 0xc7, 0x9a, 0x5e, 0x42, 0x62, 0x0a, 0x64, 0x58, 0x7d, 0x20, 0x59, 0xe7, 0x87, 0x01, 0x3b, 0x40, 0xce, 0xec, 0x59, 0x92, 0x08, 0xf6, 0x6e, 0xd0, 0xca, 0x6e, 0x1b, 0xe9, 0x09, 0x2e, 0xc2, 0x7d, 0xb2, 0x16, 0xee, 0x6d, 0xad, 0xfe, 0xbc, 0x21, 0x70, 0x5b, 0xc4, 0xa8, 0x5a, 0xee, 0x57, 0x7e, 0x57, 0xd2, 0x39, 0xaf, 0x58, 0x6e, 0xfe, 0xec, 0x22, 0xcf, 0x38, 0xd1, 0xcf, 0xb3, 0xcd, 0x74, 0xdd, 0x0d, 0x9a, 0x33, 0x81, 0xaa, 0x81, 0xe6, 0xa2, 0x97, 0xe3, 0x9b, 0x81, 0x91, 0x37, 0xad, 0x27, 0xd4, 0x75, 0xe2, 0xbf, 0x54, 0xaa, 0x42, 0x6d, 0xc2, 0x9c, 0x4c, 0xa8, 0x17, 0x6d, 0xf3, 0x43, 0x13, 0x7a, 0x2d, 0x79, 0xd1, 0x2e, 0xf9, 0xaa, 0x7b, 0xe1, 0xcf, 0x67, 0x75, 0xe5, 0xd8, 0xa4, 0x43, 0x0a, 0x85, 0xc3, 0x3d, 0xb6, 0x1c, 0xd2, 0xf3, 0x51, 0x87, 0xb4, 0xf6, 0xea, 0x9e, 0xbd, 0xd7, 0x53, 0xd1, 0xc4, 0xef, 0x72, 0x47, 0x11, 0x59, 0xff, 0x07, 0xb7, 0x78, 0x70, 0x90, 0x64, 0x96, 0x24, 0x9d, 0x42, 0x78, 0xe3, 0xf3, 0xca, 0x6b, 0xcb, 0xf3, 0x7a, 0x26, 0x5b, 0x89, 0x65, 0x39, 0x19, 0x0f, 0x9a, 0x31, 0xf1, 0xe7, 0xb4, 0xb6, 0x5c, 0xd1, };
9728 static const u8 ed25519_423_test_vectors_expected_sig[] = {
9729 	0xfa, 0x93, 0xed, 0x65, 0x95, 0xbc, 0x95, 0x8d, 0xc0, 0x42, 0xce, 0x16, 0x45, 0x16, 0x7b, 0x79, 0xe8, 0xf6, 0x73, 0x4c, 0x46, 0xf8, 0x0f, 0x63, 0x1f, 0xd5, 0x48, 0x49, 0x08, 0xf5, 0xe5, 0x1a, 0x22, 0x42, 0x7e, 0xe6, 0x86, 0xf5, 0x64, 0xff, 0x98, 0x2f, 0x6e, 0xf4, 0xd2, 0xca, 0x1f, 0x0c, 0xa5, 0x62, 0x49, 0x10, 0xcd, 0xd6, 0x3c, 0x11, 0xa3, 0xc2, 0xb1, 0x6d, 0x40, 0x97, 0x3c, 0x07, };
9730 static const ec_test_case ed25519_423_test_case = {
9731 	.name = "EDDSA25519-SHA512/wei25519 423",
9732 	.ec_str_p = &wei25519_str_params,
9733 	.priv_key = ed25519_423_test_vectors_priv_key,
9734 	.priv_key_len = sizeof(ed25519_423_test_vectors_priv_key),
9735 	.nn_random = NULL,
9736 	.hash_type = SHA512,
9737 	.msg = (const char *)ed25519_423_test_vectors_message,
9738 	.msglen = sizeof(ed25519_423_test_vectors_message),
9739 	.sig_type = EDDSA25519,
9740 	.exp_sig = ed25519_423_test_vectors_expected_sig,
9741 	.exp_siglen = sizeof(ed25519_423_test_vectors_expected_sig),
9742 	.adata = NULL,
9743 	.adata_len = 0
9744 };
9745 
9746 /************************************************/
9747 static const u8 ed25519_424_test_vectors_priv_key[] = {
9748 	0xd9, 0x68, 0x20, 0x86, 0xfe, 0x7d, 0xda, 0x30, 0xb8, 0x71, 0x11, 0x06, 0x01, 0x93, 0xd8, 0x47, 0x56, 0x6a, 0xb9, 0x4c, 0xfd, 0x9c, 0x97, 0xab, 0x6b, 0x43, 0xe7, 0xa8, 0xd3, 0xf7, 0x93, 0x82, };
9749 static const u8 ed25519_424_test_vectors_message[] = {
9750 	0xe8, 0x81, 0x4b, 0xe1, 0x24, 0xbe, 0x3c, 0x63, 0xcc, 0x9a, 0xdb, 0x03, 0xaf, 0x49, 0x3d, 0x44, 0x2f, 0xf2, 0x0d, 0x8b, 0x20, 0x0b, 0x20, 0xcd, 0x24, 0x93, 0x67, 0xf4, 0x17, 0xf9, 0xa9, 0xd8, 0x93, 0xfb, 0xbb, 0xe8, 0x5a, 0x64, 0x2b, 0xe2, 0x70, 0x1d, 0x1d, 0x1b, 0x3c, 0xd4, 0x8a, 0x85, 0xcf, 0x58, 0xf1, 0x59, 0xa1, 0x97, 0x27, 0x31, 0x43, 0xa5, 0x78, 0xf4, 0x2e, 0x8b, 0xcc, 0x8b, 0x62, 0x40, 0xf9, 0x32, 0x71, 0x90, 0x05, 0x38, 0xff, 0xc1, 0x87, 0xc0, 0xaf, 0xc8, 0xdb, 0xcc, 0x49, 0x2b, 0xcd, 0x67, 0x9b, 0xaa, 0xef, 0x3a, 0xf5, 0x08, 0x84, 0x34, 0xa9, 0x45, 0x86, 0xf9, 0x4b, 0x49, 0x97, 0x0b, 0xba, 0x18, 0xf5, 0xea, 0x0e, 0xbf, 0x0d, 0x27, 0xee, 0x48, 0x2a, 0xa8, 0x3a, 0xd0, 0xdd, 0x0e, 0xe6, 0x09, 0xdf, 0x59, 0xd3, 0x7f, 0x81, 0x8b, 0x2c, 0x8d, 0x7c, 0x15, 0xf0, 0xf6, 0xf5, 0x44, 0xdd, 0x4c, 0x7e, 0x7c, 0xb3, 0xa1, 0x67, 0x24, 0x32, 0x4f, 0x77, 0xd5, 0x89, 0x48, 0xf8, 0x47, 0x5a, 0x60, 0xd5, 0x3e, 0x5b, 0xd5, 0x10, 0xc1, 0x71, 0x37, 0xc9, 0x9e, 0x1c, 0xfa, 0x51, 0x5a, 0xf9, 0xbc, 0x85, 0x56, 0x9d, 0x21, 0x2a, 0x21, 0x19, 0x07, 0x29, 0xf2, 0x81, 0x7d, 0xe8, 0xc4, 0x69, 0x15, 0xe0, 0x21, 0xdf, 0x70, 0xff, 0x6d, 0x60, 0x21, 0x5f, 0x61, 0x4f, 0xc2, 0x11, 0x39, 0x90, 0x4d, 0xf3, 0xb2, 0x92, 0xb7, 0x49, 0xdc, 0x4d, 0xea, 0x02, 0x51, 0x8b, 0x62, 0xd1, 0x58, 0x62, 0xc9, 0x2d, 0x2a, 0x4c, 0x99, 0x67, 0x01, 0xcd, 0xec, 0xae, 0xd8, 0x4a, 0xb6, 0x28, 0xee, 0x98, 0x4f, 0xc1, 0x11, 0xee, 0xcb, 0x59, 0xe4, 0x84, 0x44, 0xef, 0xc0, 0xd4, 0x56, 0xe2, 0xc8, 0x52, 0x51, 0x84, 0x41, 0xc3, 0xdb, 0x76, 0x30, 0xdd, 0xd5, 0x15, 0x62, 0x49, 0xa2, 0x87, 0x30, 0x98, 0x38, 0x38, 0xae, 0x59, 0xac, 0x4c, 0xc7, 0x11, 0x0f, 0xd6, 0xde, 0x68, 0x10, 0x1e, 0xa5, 0xb2, 0xff, 0x69, 0xfd, 0x36, 0x4e, 0x3c, 0x94, 0x48, 0xde, 0xfe, 0xfe, 0x17, 0x5b, 0xcb, 0xe1, 0x17, 0xcc, 0x11, 0xb4, 0xff, 0x75, 0x49, 0xc3, 0x3e, 0x10, 0x25, 0xb6, 0xb5, 0x92, 0x04, 0x8a, 0x8e, 0x31, 0x96, 0x9e, 0x81, 0x8d, 0xcc, 0x18, 0x8b, 0xb1, 0x9d, 0x7a, 0x24, 0x40, 0xa3, 0xba, 0xba, 0x4e, 0xb1, 0xb8, 0x1c, 0x45, 0x67, 0x9d, 0xb4, 0x6b, 0x31, 0xbc, 0xde, 0x77, 0x76, 0x75, 0x7d, 0x99, 0x31, 0xec, 0x20, 0x63, 0xfc, 0x6f, 0x1f, 0xcd, 0x76, 0x1e, 0xcc, 0x57, 0xa7, 0xd0, 0x30, 0xa8, 0x5e, 0xa2, 0x73, 0xef, 0x18, 0x25, 0xb0, 0x50, 0x92, 0xab, 0x96, 0x45, 0x35, 0x9a, 0x44, 0x4f, 0xf7, 0xd1, 0x66, 0xb5, 0x75, 0xfa, 0xc2, 0x98, 0x30, 0x8d, 0x9f, 0xaa, 0x68, 0x46, 0x3d, 0x1d, 0x0f, 0x7b, 0x7d, 0xf8, 0xa5, 0x1c, 0x68, 0x15, 0xd3, 0x71, 0x59, 0xad, 0xc0, 0xb5, 0x93, 0x22, 0x4a, 0x81, 0x83, 0x21, 0xd7, 0x21, 0x9f, 0x09, 0x68, 0x6c, 0xfc, 0x95, 0x22, 0x59, 0x71, 0x8d, 0xfc, };
9751 static const u8 ed25519_424_test_vectors_expected_sig[] = {
9752 	0x17, 0x93, 0xe4, 0x97, 0xeb, 0x52, 0x1c, 0xa7, 0x4e, 0x35, 0xd1, 0x4a, 0x63, 0x86, 0x8c, 0xbe, 0x94, 0x99, 0xda, 0x2f, 0x21, 0xb4, 0xeb, 0x52, 0x60, 0x34, 0x0f, 0xca, 0x3c, 0x1f, 0xec, 0xa7, 0x8d, 0xbe, 0x5b, 0x14, 0xac, 0x10, 0xf3, 0xfa, 0x76, 0xfa, 0x2e, 0x71, 0xe4, 0xc9, 0x14, 0x61, 0xaa, 0x75, 0x97, 0x7e, 0x5e, 0x70, 0x79, 0x26, 0x70, 0xef, 0x7f, 0xf0, 0xe6, 0xa2, 0x87, 0x08, };
9753 static const ec_test_case ed25519_424_test_case = {
9754 	.name = "EDDSA25519-SHA512/wei25519 424",
9755 	.ec_str_p = &wei25519_str_params,
9756 	.priv_key = ed25519_424_test_vectors_priv_key,
9757 	.priv_key_len = sizeof(ed25519_424_test_vectors_priv_key),
9758 	.nn_random = NULL,
9759 	.hash_type = SHA512,
9760 	.msg = (const char *)ed25519_424_test_vectors_message,
9761 	.msglen = sizeof(ed25519_424_test_vectors_message),
9762 	.sig_type = EDDSA25519,
9763 	.exp_sig = ed25519_424_test_vectors_expected_sig,
9764 	.exp_siglen = sizeof(ed25519_424_test_vectors_expected_sig),
9765 	.adata = NULL,
9766 	.adata_len = 0
9767 };
9768 
9769 /************************************************/
9770 static const u8 ed25519_425_test_vectors_priv_key[] = {
9771 	0xb5, 0x2b, 0x24, 0x9a, 0x7a, 0xea, 0xe0, 0xfb, 0xd9, 0x4f, 0xfc, 0xf9, 0xa9, 0xfd, 0xe1, 0x0d, 0xe6, 0x1c, 0x3f, 0x4c, 0xbd, 0xa1, 0x4b, 0x28, 0x9f, 0xe0, 0x1f, 0x82, 0x70, 0x73, 0x34, 0xca, };
9772 static const u8 ed25519_425_test_vectors_message[] = {
9773 	0x1d, 0x44, 0x5e, 0x8e, 0xe3, 0x6f, 0x6e, 0x10, 0x64, 0xee, 0x12, 0x81, 0xe6, 0xb4, 0xa4, 0xce, 0xc5, 0x0a, 0x91, 0xc2, 0xb6, 0x67, 0xc8, 0x30, 0x5d, 0x1e, 0x9a, 0x5f, 0x7b, 0x73, 0xa3, 0x44, 0x58, 0x82, 0x58, 0x1f, 0xb0, 0xc1, 0x1e, 0x64, 0xf6, 0xee, 0x92, 0xe8, 0x11, 0xf9, 0xf2, 0xd6, 0xc5, 0x9c, 0x63, 0x44, 0xbe, 0x76, 0x91, 0xd1, 0x16, 0xdd, 0xa4, 0x93, 0xca, 0xde, 0x51, 0xc0, 0xce, 0x77, 0x37, 0x2b, 0x61, 0xa7, 0xc4, 0xfb, 0xb6, 0x33, 0x40, 0x13, 0x33, 0xcb, 0xf7, 0x13, 0x72, 0xad, 0x2f, 0x04, 0x4e, 0x99, 0x2a, 0xc0, 0x35, 0xf5, 0x87, 0x9c, 0x05, 0x30, 0x04, 0xf8, 0x22, 0x3f, 0x23, 0x7a, 0x24, 0xa4, 0x09, 0xb7, 0x89, 0x4f, 0x6a, 0xd5, 0x18, 0xe0, 0x46, 0xb8, 0xa8, 0x4c, 0x3f, 0x4c, 0x62, 0x60, 0xe6, 0x16, 0x9f, 0xd9, 0x44, 0xd5, 0x7f, 0xbc, 0xf9, 0xba, 0x27, 0x75, 0xf2, 0xd6, 0x0e, 0xd7, 0x72, 0xc4, 0x6c, 0xcd, 0x63, 0xc8, 0x50, 0xb8, 0x0d, 0x58, 0x7c, 0x52, 0x08, 0xdf, 0xb1, 0xa2, 0x58, 0x78, 0xc0, 0x2d, 0xec, 0xe3, 0xe6, 0x02, 0xe9, 0x63, 0x2f, 0xc3, 0xc2, 0xc7, 0x9b, 0x25, 0xab, 0x41, 0x03, 0x4c, 0x6e, 0x26, 0xb8, 0x69, 0x25, 0x53, 0x57, 0xa6, 0x86, 0x78, 0x1d, 0xfe, 0x6e, 0x64, 0x4b, 0xeb, 0xa9, 0xb6, 0x27, 0xda, 0x1f, 0xcb, 0x5e, 0xc0, 0xbe, 0x49, 0x7c, 0xf1, 0x88, 0xe1, 0xef, 0x1a, 0xf0, 0x60, 0x1b, 0xf1, 0x6b, 0x29, 0x11, 0xfd, 0x9f, 0xf3, 0x4f, 0x0e, 0x97, 0xac, 0x95, 0xa7, 0xfe, 0x2c, 0xf9, 0x0e, 0xa6, 0xce, 0xd3, 0x3c, 0xcb, 0x0e, 0xd1, 0xef, 0x2d, 0x41, 0x60, 0xef, 0xb0, 0x7c, 0x59, 0x1a, 0x5c, 0xb1, 0x6c, 0x70, 0xca, 0x16, 0x94, 0xfb, 0x36, 0xf2, 0xca, 0x19, 0xeb, 0xa5, 0x2b, 0xe3, 0xd4, 0xad, 0x89, 0x5a, 0xbc, 0xad, 0xa4, 0xb3, 0x6f, 0x02, 0x61, 0xd6, 0x5f, 0x59, 0xe0, 0xcf, 0xd2, 0xa6, 0x14, 0x8a, 0x88, 0x92, 0xdd, 0xbb, 0x45, 0x81, 0x0d, 0xb3, 0xbf, 0x4a, 0x9e, 0x26, 0xe9, 0x2c, 0x15, 0xea, 0x26, 0x18, 0xcf, 0xee, 0xb4, 0x62, 0xd8, 0x62, 0x8f, 0x25, 0x4f, 0x54, 0xd2, 0xaf, 0x27, 0x11, 0x3b, 0xab, 0x4f, 0x9a, 0x7d, 0x06, 0x79, 0x18, 0x11, 0x94, 0x2b, 0xdc, 0x32, 0xf8, 0x45, 0x92, 0x2d, 0x7b, 0x2d, 0xdb, 0xa9, 0x59, 0x14, 0x09, 0x28, 0xf8, 0xc2, 0x8d, 0x98, 0xb4, 0x4e, 0x1d, 0x19, 0xb9, 0x7f, 0xd3, 0x9c, 0xc0, 0xf9, 0xa5, 0x23, 0x6d, 0x34, 0x9f, 0xc8, 0x35, 0xac, 0x49, 0x21, 0x92, 0x46, 0x2e, 0x40, 0xac, 0x62, 0x9b, 0xeb, 0xff, 0xd2, 0xeb, 0xa7, 0x2d, 0x27, 0x88, 0xb2, 0x44, 0xbb, 0x77, 0x7a, 0xd0, 0xf7, 0xb7, 0xf9, 0x6f, 0x23, 0x41, 0x23, 0x99, 0xfc, 0x1d, 0x87, 0xa1, 0xd0, 0x87, 0xba, 0x08, 0x90, 0x27, 0xea, 0xbb, 0xc0, 0x5e, 0xda, 0xfe, 0xe4, 0x33, 0x79, 0xe8, 0x93, 0x29, 0x13, 0x31, 0xb4, 0x60, 0xbf, 0xa7, 0x33, 0x2e, 0x08, 0x42, 0xec, 0x25, 0x73, 0x39, 0x3d, 0xe9, 0x53, 0x06, };
9774 static const u8 ed25519_425_test_vectors_expected_sig[] = {
9775 	0x6f, 0x48, 0xa9, 0xf7, 0xf0, 0xfa, 0x19, 0x2b, 0x66, 0xd1, 0x21, 0x75, 0xa3, 0x33, 0x61, 0x23, 0x03, 0xe1, 0x80, 0xb9, 0xfa, 0xb1, 0x8e, 0xda, 0xbe, 0xbc, 0xdf, 0x66, 0x74, 0xfd, 0xfc, 0xc5, 0x36, 0x07, 0x08, 0x9b, 0xf9, 0x80, 0xce, 0x35, 0x89, 0x4c, 0x2f, 0x9b, 0xab, 0xdc, 0x44, 0x38, 0x66, 0x7a, 0xb3, 0x29, 0x7a, 0x62, 0x48, 0xec, 0x02, 0x69, 0xfa, 0xa9, 0x9c, 0x72, 0x48, 0x07, };
9776 static const ec_test_case ed25519_425_test_case = {
9777 	.name = "EDDSA25519-SHA512/wei25519 425",
9778 	.ec_str_p = &wei25519_str_params,
9779 	.priv_key = ed25519_425_test_vectors_priv_key,
9780 	.priv_key_len = sizeof(ed25519_425_test_vectors_priv_key),
9781 	.nn_random = NULL,
9782 	.hash_type = SHA512,
9783 	.msg = (const char *)ed25519_425_test_vectors_message,
9784 	.msglen = sizeof(ed25519_425_test_vectors_message),
9785 	.sig_type = EDDSA25519,
9786 	.exp_sig = ed25519_425_test_vectors_expected_sig,
9787 	.exp_siglen = sizeof(ed25519_425_test_vectors_expected_sig),
9788 	.adata = NULL,
9789 	.adata_len = 0
9790 };
9791 
9792 /************************************************/
9793 static const u8 ed25519_426_test_vectors_priv_key[] = {
9794 	0x78, 0x2a, 0x93, 0xef, 0xe0, 0xef, 0x06, 0xcb, 0x25, 0x34, 0x33, 0x0e, 0xfd, 0x0e, 0x96, 0x84, 0xe9, 0x96, 0x9b, 0x52, 0x58, 0x12, 0x3e, 0x49, 0x02, 0x39, 0xbf, 0x24, 0xbf, 0x9f, 0x65, 0x23, };
9795 static const u8 ed25519_426_test_vectors_message[] = {
9796 	0x46, 0xa4, 0xe3, 0x19, 0xa6, 0x70, 0xac, 0x99, 0x39, 0x94, 0xa5, 0x33, 0x00, 0xc3, 0xf7, 0x91, 0x44, 0xc2, 0xf7, 0xfe, 0xc1, 0x11, 0x6e, 0xee, 0xb3, 0x62, 0x1c, 0x76, 0xac, 0x35, 0xda, 0x79, 0xdb, 0xff, 0x6e, 0x18, 0x9c, 0xa9, 0xdb, 0xfc, 0x9a, 0xbb, 0xda, 0x05, 0x48, 0x47, 0xb2, 0x97, 0x1b, 0x02, 0xfa, 0xce, 0xbb, 0xe9, 0x26, 0xd4, 0x69, 0xeb, 0x0a, 0x86, 0x03, 0x89, 0xac, 0x74, 0x41, 0x62, 0xbf, 0x6f, 0xb1, 0x3b, 0x42, 0xcb, 0x9b, 0xb8, 0xc9, 0xd7, 0x26, 0x07, 0x13, 0x8e, 0x78, 0x00, 0x12, 0x1e, 0xe0, 0xcd, 0x63, 0x3e, 0xd5, 0x35, 0xc7, 0xae, 0x5f, 0x40, 0x60, 0xbb, 0xdd, 0x27, 0x1c, 0x9d, 0x11, 0x0a, 0xbf, 0xf5, 0xe0, 0x60, 0xea, 0x6e, 0xe8, 0x38, 0x90, 0xb1, 0xe9, 0x2a, 0x92, 0x56, 0xd7, 0xb2, 0xba, 0x98, 0x2a, 0x31, 0x14, 0xbb, 0x6d, 0xef, 0xfe, 0xe2, 0x69, 0x6f, 0x0a, 0x2f, 0x9c, 0x21, 0xaa, 0xa5, 0xb2, 0xde, 0xfa, 0x11, 0xaa, 0xb7, 0x07, 0x6d, 0xe6, 0xe5, 0x7e, 0x86, 0xf2, 0x84, 0xbb, 0x67, 0xf5, 0xa4, 0x9e, 0xe6, 0x85, 0x92, 0x10, 0x32, 0xc9, 0x5b, 0x74, 0xe7, 0xe3, 0xea, 0xc7, 0x23, 0xf1, 0x75, 0xaf, 0x08, 0x2c, 0x85, 0x8e, 0x0d, 0xfa, 0x01, 0x72, 0x8c, 0x38, 0xfb, 0xbb, 0x4c, 0x83, 0x58, 0x1f, 0x81, 0xac, 0xe6, 0xc6, 0x3c, 0x6b, 0xda, 0xac, 0x56, 0x20, 0xeb, 0x9a, 0x56, 0x8e, 0x7e, 0xbb, 0x7b, 0x72, 0xb3, 0xd1, 0xa1, 0x64, 0xef, 0x52, 0x4e, 0x7b, 0x9f, 0x00, 0x79, 0x9a, 0xb0, 0x86, 0x71, 0x59, 0x76, 0xc1, 0x4d, 0x0d, 0xf6, 0x5f, 0x7b, 0x96, 0xbf, 0x9e, 0xbc, 0xda, 0x7f, 0xee, 0xef, 0x11, 0x34, 0x22, 0x00, 0x1a, 0x03, 0xa7, 0x63, 0x3d, 0xf5, 0xe4, 0x99, 0x39, 0xa1, 0x21, 0xdb, 0x89, 0x9d, 0x9b, 0x8a, 0xc2, 0xdb, 0x4f, 0xad, 0x0c, 0x30, 0xcf, 0x0b, 0x8b, 0xdb, 0xc9, 0xe9, 0x80, 0x2a, 0x79, 0x7c, 0x82, 0x38, 0xe4, 0x65, 0x11, 0xff, 0x24, 0x06, 0x8c, 0xad, 0xcf, 0xf2, 0x44, 0x8c, 0xc0, 0xbf, 0xf9, 0x27, 0x69, 0x22, 0x33, 0x48, 0xd4, 0x5d, 0x6b, 0x6f, 0x2c, 0x8f, 0x15, 0x93, 0x38, 0x8c, 0x0b, 0xbb, 0xf4, 0x4b, 0x6d, 0xdb, 0x50, 0xb9, 0x8c, 0xd7, 0xf0, 0x9c, 0x73, 0x0f, 0x7d, 0xe4, 0xd0, 0x08, 0x15, 0x6c, 0xb3, 0xcd, 0xe0, 0xca, 0xb3, 0xad, 0x0a, 0x58, 0xa8, 0x39, 0x54, 0xe2, 0x34, 0xa0, 0xa8, 0xa0, 0x4b, 0x57, 0x3c, 0x9a, 0x8e, 0x9b, 0x92, 0x9e, 0xd3, 0x8b, 0x8b, 0x22, 0x8b, 0xf5, 0x5a, 0x3c, 0x6e, 0x2c, 0x6b, 0x51, 0xf6, 0x82, 0x65, 0x2f, 0xbb, 0x70, 0x8e, 0x74, 0x64, 0x0e, 0x33, 0x13, 0xe1, 0x7b, 0x46, 0x94, 0xd7, 0xfd, 0xf0, 0x11, 0x1f, 0x90, 0x60, 0x8c, 0x1b, 0x5a, 0xf4, 0x22, 0xdc, 0xde, 0xca, 0xd9, 0xdd, 0xb7, 0xf5, 0x0d, 0x1b, 0xf5, 0xbc, 0x63, 0x78, 0xcc, 0xaf, 0xfc, 0x32, 0x01, 0xe6, 0xc7, 0x87, 0xb4, 0x8c, 0x44, 0x3b, 0xa2, 0x40, 0xd9, 0xd5, 0x0f, 0xf6, 0xc0, 0xe9, 0xdf, 0x7f, 0x1a, 0x5b, };
9797 static const u8 ed25519_426_test_vectors_expected_sig[] = {
9798 	0x93, 0xe7, 0x40, 0x5a, 0x40, 0x44, 0x51, 0x01, 0x66, 0xc8, 0xac, 0x26, 0x4c, 0xe3, 0xb5, 0xba, 0x66, 0x65, 0xd6, 0x8b, 0xad, 0x45, 0x87, 0x12, 0xdc, 0x93, 0xc2, 0xc3, 0x90, 0x56, 0x8d, 0x74, 0x02, 0xef, 0x7d, 0x57, 0xf5, 0x49, 0xb8, 0xa1, 0x04, 0x2f, 0x7f, 0x69, 0xa6, 0x79, 0xaa, 0x85, 0x5f, 0x34, 0xf8, 0x01, 0xd5, 0x7d, 0x79, 0x89, 0x5d, 0xeb, 0x8d, 0xea, 0xdb, 0x35, 0x23, 0x08, };
9799 static const ec_test_case ed25519_426_test_case = {
9800 	.name = "EDDSA25519-SHA512/wei25519 426",
9801 	.ec_str_p = &wei25519_str_params,
9802 	.priv_key = ed25519_426_test_vectors_priv_key,
9803 	.priv_key_len = sizeof(ed25519_426_test_vectors_priv_key),
9804 	.nn_random = NULL,
9805 	.hash_type = SHA512,
9806 	.msg = (const char *)ed25519_426_test_vectors_message,
9807 	.msglen = sizeof(ed25519_426_test_vectors_message),
9808 	.sig_type = EDDSA25519,
9809 	.exp_sig = ed25519_426_test_vectors_expected_sig,
9810 	.exp_siglen = sizeof(ed25519_426_test_vectors_expected_sig),
9811 	.adata = NULL,
9812 	.adata_len = 0
9813 };
9814 
9815 /************************************************/
9816 static const u8 ed25519_427_test_vectors_priv_key[] = {
9817 	0x6f, 0xe7, 0xbc, 0xf7, 0xa6, 0x84, 0x42, 0x3d, 0xe1, 0x07, 0x6f, 0xd7, 0x6d, 0xa7, 0x83, 0x42, 0x33, 0x73, 0xb3, 0x81, 0x32, 0x9e, 0xfd, 0x61, 0x57, 0x42, 0x4e, 0xc4, 0xb2, 0x65, 0x5a, 0x94, };
9818 static const u8 ed25519_427_test_vectors_message[] = {
9819 	0x0b, 0xaf, 0x0a, 0xd4, 0x40, 0x61, 0x2b, 0x4c, 0x5a, 0x13, 0x6c, 0x3a, 0x42, 0xbe, 0x1c, 0xa2, 0xb7, 0xc3, 0x19, 0x86, 0x2a, 0x44, 0xa9, 0xfd, 0x50, 0xc4, 0xee, 0x73, 0x54, 0x1c, 0x5e, 0x64, 0x57, 0xef, 0xa8, 0x18, 0x25, 0xb6, 0xdd, 0x4a, 0x72, 0x19, 0x4a, 0x29, 0x68, 0x68, 0x8b, 0xd4, 0x9e, 0x5a, 0x8f, 0x4c, 0x04, 0xdb, 0xaf, 0xc2, 0xe7, 0x88, 0x4c, 0x0c, 0x70, 0xc2, 0x08, 0xd4, 0xe9, 0x54, 0xcd, 0x16, 0x75, 0xda, 0x8e, 0x74, 0xc6, 0x5c, 0x49, 0x7c, 0xf9, 0xdc, 0x69, 0x42, 0x49, 0x65, 0xbd, 0xcb, 0xa5, 0xde, 0x52, 0x93, 0x6f, 0x92, 0x5f, 0x62, 0xe2, 0x01, 0xf9, 0x95, 0x05, 0xd3, 0x77, 0x7b, 0xeb, 0x3c, 0x2e, 0x08, 0xb2, 0xec, 0x9a, 0x87, 0x3e, 0x5a, 0x9c, 0x21, 0xfb, 0x4a, 0x2f, 0x3e, 0x86, 0x1f, 0x3c, 0xf4, 0xd6, 0xb5, 0xdc, 0xd1, 0xc8, 0x8b, 0xcd, 0x91, 0x63, 0x53, 0x9a, 0xc6, 0x2c, 0xd0, 0x65, 0x9f, 0x4e, 0xf2, 0x32, 0xc2, 0xce, 0x57, 0xfc, 0x77, 0xf9, 0x02, 0x85, 0xeb, 0x35, 0x01, 0x69, 0xed, 0xc6, 0xa8, 0x06, 0xff, 0x50, 0xf6, 0x1c, 0x7e, 0x0b, 0xee, 0xeb, 0xec, 0xec, 0x63, 0xbf, 0xc9, 0xd3, 0x98, 0x3f, 0x5b, 0xb4, 0xb2, 0x61, 0xc7, 0x46, 0x47, 0x1f, 0xcb, 0xf2, 0x89, 0x2c, 0x61, 0x08, 0x97, 0x0b, 0x68, 0xdb, 0x5e, 0x43, 0xc4, 0x50, 0x4d, 0xda, 0xe2, 0xd0, 0xff, 0xff, 0xa2, 0x8b, 0x67, 0x59, 0xae, 0x11, 0x28, 0xe1, 0x6f, 0x66, 0xd4, 0x92, 0xad, 0x61, 0xe3, 0x72, 0x2c, 0x96, 0x0f, 0x88, 0x69, 0x2b, 0xe8, 0x1a, 0x9f, 0x41, 0x28, 0x90, 0xff, 0xa3, 0x46, 0xe7, 0x02, 0xc8, 0x67, 0xdf, 0xa2, 0x59, 0x70, 0x3b, 0x73, 0xf5, 0x25, 0x07, 0x4f, 0x32, 0x27, 0xc4, 0x9c, 0xec, 0x1b, 0x64, 0x5a, 0x10, 0x3b, 0xd4, 0x47, 0x1f, 0x33, 0xf9, 0xf1, 0xba, 0xc3, 0x27, 0xd7, 0x91, 0x78, 0x61, 0xd0, 0xad, 0x91, 0xab, 0xee, 0x60, 0x22, 0x2e, 0xa2, 0xa3, 0xc8, 0xca, 0xc0, 0x52, 0xae, 0x9a, 0x2c, 0xbd, 0x90, 0x85, 0x5d, 0x73, 0x3d, 0x53, 0x19, 0x13, 0x3f, 0x95, 0x41, 0xbd, 0x0b, 0x61, 0xf0, 0x99, 0x52, 0x68, 0x35, 0x1e, 0x28, 0x63, 0xc1, 0xca, 0x2c, 0xa5, 0x1e, 0x3c, 0x97, 0x63, 0x83, 0xf5, 0xc4, 0xc1, 0x1f, 0xf4, 0x10, 0x03, 0x6f, 0xd5, 0x1d, 0x5a, 0xc5, 0x6b, 0x02, 0x3c, 0xe9, 0x02, 0x9c, 0x62, 0x0f, 0x22, 0x55, 0x70, 0x19, 0xad, 0x9b, 0x42, 0x64, 0xed, 0x4d, 0x71, 0xb4, 0x34, 0xf4, 0xa4, 0xd1, 0x7a, 0x7d, 0x57, 0x69, 0xfa, 0x1e, 0x14, 0xa6, 0x9f, 0x7a, 0xe4, 0x19, 0xcc, 0xf5, 0x94, 0x7f, 0x8c, 0x76, 0x82, 0x69, 0x71, 0x16, 0xc2, 0x40, 0x5f, 0x5a, 0x19, 0x59, 0xc5, 0x4b, 0x48, 0xf0, 0x87, 0x2f, 0x59, 0x6e, 0xd4, 0x59, 0x64, 0x48, 0x8d, 0xde, 0xc1, 0x2b, 0xdb, 0x63, 0x6d, 0x0b, 0x34, 0x9e, 0x74, 0x9e, 0xb6, 0x60, 0x92, 0xff, 0x45, 0x11, 0xfb, 0xa5, 0x9b, 0x59, 0x62, 0xcb, 0x93, 0xcc, 0x85, 0x51, 0x5c, 0xc8, 0x6a, 0xb0, 0xc6, 0xb2, };
9820 static const u8 ed25519_427_test_vectors_expected_sig[] = {
9821 	0x99, 0x14, 0xcc, 0x50, 0xfe, 0xf0, 0x93, 0x5e, 0xfb, 0x89, 0xb3, 0xd6, 0x4e, 0x3c, 0x1c, 0x34, 0x12, 0xae, 0xd6, 0x59, 0xb9, 0x01, 0x66, 0x22, 0x2c, 0x0d, 0x13, 0xec, 0x1c, 0xe3, 0xa6, 0x8a, 0xe6, 0x28, 0x1b, 0x7e, 0xfd, 0x9d, 0x4e, 0xc6, 0x4b, 0x82, 0xe7, 0x3e, 0x14, 0x47, 0x9f, 0x03, 0xfb, 0xac, 0x8f, 0xa3, 0xab, 0xdb, 0x41, 0xea, 0x42, 0x15, 0xc4, 0xa4, 0xd4, 0x94, 0x9d, 0x09, };
9822 static const ec_test_case ed25519_427_test_case = {
9823 	.name = "EDDSA25519-SHA512/wei25519 427",
9824 	.ec_str_p = &wei25519_str_params,
9825 	.priv_key = ed25519_427_test_vectors_priv_key,
9826 	.priv_key_len = sizeof(ed25519_427_test_vectors_priv_key),
9827 	.nn_random = NULL,
9828 	.hash_type = SHA512,
9829 	.msg = (const char *)ed25519_427_test_vectors_message,
9830 	.msglen = sizeof(ed25519_427_test_vectors_message),
9831 	.sig_type = EDDSA25519,
9832 	.exp_sig = ed25519_427_test_vectors_expected_sig,
9833 	.exp_siglen = sizeof(ed25519_427_test_vectors_expected_sig),
9834 	.adata = NULL,
9835 	.adata_len = 0
9836 };
9837 
9838 /************************************************/
9839 static const u8 ed25519_428_test_vectors_priv_key[] = {
9840 	0xdd, 0xa4, 0x8a, 0x0d, 0x15, 0xa2, 0x9e, 0xba, 0x9a, 0x76, 0x30, 0x5d, 0x36, 0x0e, 0x46, 0x6e, 0x72, 0xd8, 0x04, 0x0e, 0xfe, 0x2e, 0x89, 0xc0, 0x4b, 0x64, 0x61, 0x31, 0x5a, 0x9b, 0x8b, 0xf4, };
9841 static const u8 ed25519_428_test_vectors_message[] = {
9842 	0xf5, 0xac, 0x19, 0xb8, 0x1f, 0x21, 0x11, 0xa0, 0xdb, 0x0a, 0xe3, 0x0d, 0x15, 0x13, 0xed, 0x34, 0x3e, 0x7f, 0x57, 0xf7, 0xf7, 0x7d, 0x65, 0xb8, 0xac, 0x7c, 0xe3, 0xa6, 0x01, 0x17, 0x4b, 0xae, 0xd9, 0xbf, 0xa1, 0x36, 0x03, 0x59, 0x76, 0xf5, 0x16, 0xd5, 0xa8, 0x70, 0xf4, 0x5d, 0xb1, 0x91, 0x9f, 0x1e, 0xb1, 0xcb, 0xec, 0xbe, 0x88, 0xec, 0x32, 0xd1, 0x91, 0xe9, 0x24, 0x88, 0x21, 0xa7, 0xe7, 0x68, 0x1f, 0xe3, 0xab, 0xec, 0x11, 0x58, 0x4b, 0xdb, 0x33, 0xde, 0x1b, 0x4c, 0xa9, 0x48, 0x91, 0xeb, 0x66, 0xdc, 0xb8, 0x53, 0x9a, 0xc4, 0x11, 0x63, 0x73, 0x6c, 0xcf, 0xd6, 0x9a, 0xbb, 0x83, 0x81, 0x4d, 0xd3, 0x8c, 0xd6, 0x03, 0x81, 0x31, 0x87, 0x28, 0x05, 0x2a, 0x25, 0xcb, 0x66, 0x54, 0x71, 0x05, 0x86, 0x50, 0xcc, 0xc7, 0x57, 0x56, 0xdb, 0xee, 0x68, 0x8a, 0xb8, 0x26, 0xec, 0xad, 0x4a, 0xd5, 0xa7, 0xdb, 0x57, 0xe8, 0xf6, 0x5f, 0x1b, 0x64, 0xab, 0xff, 0x82, 0xdd, 0x53, 0x33, 0x4b, 0x79, 0x7a, 0xc4, 0x02, 0x28, 0xdd, 0x81, 0x7f, 0x23, 0x9d, 0x3e, 0xe8, 0x04, 0xa1, 0x9a, 0xea, 0xc8, 0xcf, 0xe3, 0x3e, 0xb6, 0x57, 0xec, 0x9c, 0xe9, 0x23, 0xd6, 0xb3, 0x88, 0x91, 0x4c, 0xfb, 0xa2, 0xe7, 0x2b, 0xfc, 0x2b, 0xc3, 0xd6, 0xf9, 0x85, 0xc0, 0xd9, 0x75, 0x34, 0xdb, 0x95, 0x8e, 0xed, 0xe5, 0x7b, 0x16, 0x49, 0x1f, 0xfb, 0x75, 0x5c, 0x1a, 0x58, 0xd7, 0x8a, 0xb3, 0x77, 0xfa, 0xec, 0x0d, 0x31, 0x18, 0x18, 0xe8, 0x99, 0x26, 0x0e, 0x3e, 0xbd, 0x1c, 0xcd, 0x29, 0x24, 0x6f, 0xa8, 0x2d, 0x0b, 0x76, 0x62, 0x2b, 0x2c, 0x4b, 0xc5, 0x2f, 0x54, 0x9f, 0xee, 0x72, 0xa3, 0x0f, 0x55, 0x4f, 0x33, 0x1f, 0x36, 0xd2, 0xa7, 0x4d, 0x99, 0x9e, 0xc1, 0x0a, 0x08, 0x29, 0x4f, 0x00, 0x2b, 0x43, 0x61, 0xe5, 0x90, 0x27, 0x9c, 0x2f, 0xb1, 0xbd, 0xa4, 0x31, 0x2c, 0xcb, 0x24, 0xd7, 0x52, 0x82, 0xce, 0x7c, 0x06, 0x1a, 0x0c, 0xa5, 0x52, 0x0c, 0x74, 0xf6, 0xf6, 0x33, 0x3b, 0x18, 0xc4, 0xb5, 0x41, 0xcb, 0x6c, 0x51, 0xe0, 0x15, 0x75, 0xba, 0x80, 0x51, 0x2f, 0xfa, 0x7c, 0xe0, 0xac, 0xcd, 0x22, 0xd1, 0x40, 0x27, 0xc5, 0x3a, 0xba, 0x1f, 0x74, 0x37, 0x83, 0x5f, 0x11, 0x14, 0xd6, 0x8e, 0x3a, 0xcf, 0x3f, 0xf8, 0xde, 0x94, 0xc8, 0xe4, 0xef, 0x6d, 0x3a, 0xb3, 0x12, 0xc9, 0x1d, 0x02, 0x97, 0x01, 0x57, 0x50, 0x8f, 0x54, 0xa5, 0x81, 0x6f, 0x46, 0x7a, 0x21, 0x4e, 0x9b, 0x12, 0x84, 0x30, 0x02, 0x89, 0xe6, 0x5f, 0x36, 0x5a, 0x61, 0x0a, 0x8e, 0xa2, 0x84, 0x66, 0x6c, 0xfe, 0x55, 0x18, 0xe4, 0x35, 0xbc, 0xcd, 0x21, 0x62, 0x75, 0x01, 0xc7, 0x25, 0xf0, 0xb8, 0xeb, 0x57, 0x25, 0xe0, 0xe0, 0x6e, 0x0c, 0xef, 0x5d, 0xb2, 0x01, 0xb4, 0x8e, 0xc9, 0x1e, 0xbf, 0x87, 0x8d, 0xd5, 0x7c, 0xe8, 0xda, 0xc7, 0x33, 0x48, 0x48, 0xa1, 0xbc, 0x82, 0xc1, 0x8b, 0x06, 0x59, 0x55, 0xe4, 0xf5, 0x9b, 0xe3, 0x39, 0x85, 0x94, 0xdc, };
9843 static const u8 ed25519_428_test_vectors_expected_sig[] = {
9844 	0xce, 0x71, 0xbc, 0x82, 0xd5, 0x31, 0xd0, 0xf9, 0x3b, 0x57, 0xbf, 0xdc, 0x2f, 0x73, 0x16, 0xcf, 0x40, 0x4e, 0xe0, 0x9a, 0xf8, 0x8f, 0x33, 0xbf, 0x80, 0x6c, 0x7c, 0xad, 0x6b, 0x8f, 0xfa, 0x36, 0x62, 0x36, 0xba, 0x74, 0xe7, 0x5c, 0x15, 0x09, 0x6d, 0xda, 0xa6, 0xe3, 0xa6, 0x2a, 0x8f, 0x5e, 0xb1, 0xc8, 0xc3, 0xf6, 0xb6, 0xc9, 0x4a, 0x6a, 0x34, 0x9f, 0xc7, 0xc0, 0xcb, 0xfb, 0x19, 0x0d, };
9845 static const ec_test_case ed25519_428_test_case = {
9846 	.name = "EDDSA25519-SHA512/wei25519 428",
9847 	.ec_str_p = &wei25519_str_params,
9848 	.priv_key = ed25519_428_test_vectors_priv_key,
9849 	.priv_key_len = sizeof(ed25519_428_test_vectors_priv_key),
9850 	.nn_random = NULL,
9851 	.hash_type = SHA512,
9852 	.msg = (const char *)ed25519_428_test_vectors_message,
9853 	.msglen = sizeof(ed25519_428_test_vectors_message),
9854 	.sig_type = EDDSA25519,
9855 	.exp_sig = ed25519_428_test_vectors_expected_sig,
9856 	.exp_siglen = sizeof(ed25519_428_test_vectors_expected_sig),
9857 	.adata = NULL,
9858 	.adata_len = 0
9859 };
9860 
9861 /************************************************/
9862 static const u8 ed25519_429_test_vectors_priv_key[] = {
9863 	0xec, 0x57, 0xb9, 0x41, 0xad, 0xf3, 0xca, 0x13, 0xe7, 0x7a, 0x78, 0x05, 0x77, 0xcf, 0xd0, 0xdf, 0x5b, 0x49, 0xed, 0xc8, 0x53, 0x51, 0x05, 0x2d, 0xa3, 0x4e, 0x99, 0xf8, 0xa9, 0xbf, 0x32, 0x08, };
9864 static const u8 ed25519_429_test_vectors_message[] = {
9865 	0xd2, 0xbc, 0xbd, 0x1b, 0xc3, 0x61, 0xab, 0x32, 0xc6, 0x6d, 0x72, 0xfd, 0x48, 0xa8, 0xe2, 0x27, 0xdc, 0x6b, 0x8d, 0x6b, 0x15, 0x08, 0x48, 0xba, 0x71, 0x5f, 0xf4, 0x7d, 0xd3, 0x5c, 0x8e, 0x49, 0x38, 0x1b, 0xb4, 0xe2, 0x93, 0x3f, 0x42, 0xcd, 0x26, 0xb7, 0x5b, 0x14, 0xd9, 0xc0, 0x03, 0x92, 0x82, 0xb6, 0x2b, 0x85, 0x56, 0xaa, 0xa1, 0x1c, 0xd6, 0x91, 0xe8, 0x28, 0x38, 0x2b, 0xe3, 0x06, 0x88, 0x9f, 0xc9, 0x20, 0x51, 0x37, 0xb1, 0x69, 0xd3, 0xbf, 0x17, 0xb7, 0xf3, 0x76, 0x93, 0xfc, 0xe2, 0x86, 0x03, 0x9f, 0x03, 0x80, 0x9d, 0x7d, 0x9d, 0x98, 0xc8, 0xfd, 0xe4, 0x6f, 0x11, 0x01, 0x94, 0x2a, 0x27, 0x9c, 0x51, 0x67, 0x06, 0xf5, 0x01, 0x91, 0xa9, 0x11, 0x2f, 0x6a, 0x24, 0x63, 0x0e, 0x1a, 0x26, 0xc3, 0x21, 0xe4, 0x6c, 0x9c, 0xcc, 0x85, 0xb6, 0xef, 0x94, 0x2f, 0x35, 0x3a, 0x64, 0x2b, 0x9e, 0x7e, 0xf9, 0x98, 0xc0, 0xfc, 0xe2, 0xd3, 0xa7, 0x5b, 0x99, 0x9e, 0xeb, 0x77, 0xf3, 0x1f, 0x9b, 0x08, 0x13, 0xa9, 0x7e, 0x30, 0x14, 0xc3, 0xa8, 0x6e, 0x25, 0x58, 0x73, 0x46, 0x21, 0xa3, 0x06, 0x6d, 0xae, 0x35, 0x84, 0x50, 0x31, 0xe3, 0x56, 0x65, 0xf1, 0x92, 0x29, 0x07, 0xdb, 0xb7, 0x39, 0x78, 0x6a, 0x8b, 0x76, 0x58, 0xab, 0x60, 0x27, 0x6f, 0x2d, 0x92, 0x1d, 0x1a, 0x51, 0x23, 0x0f, 0xc7, 0x4d, 0x19, 0xe8, 0x01, 0x84, 0xa4, 0xf1, 0x0e, 0x9e, 0x83, 0x4a, 0xbc, 0x9a, 0x36, 0xc4, 0x29, 0x72, 0x6b, 0xc0, 0x55, 0xdc, 0x8c, 0x06, 0x3f, 0x0e, 0xca, 0x9c, 0x61, 0xa8, 0xa9, 0x70, 0xbd, 0x4b, 0xb5, 0xf4, 0x24, 0xee, 0x4d, 0x04, 0xbf, 0xc2, 0x95, 0xe3, 0xbb, 0x1f, 0x34, 0xbe, 0xcb, 0xd9, 0x92, 0x0f, 0xe2, 0xe7, 0x7f, 0xcf, 0x36, 0x76, 0x3f, 0x32, 0xfc, 0x9c, 0xfd, 0x5e, 0x46, 0x59, 0x79, 0xc1, 0x67, 0xca, 0xbf, 0x5a, 0x12, 0x44, 0xb4, 0x91, 0xfc, 0x06, 0xb8, 0x94, 0x64, 0x19, 0x04, 0x6b, 0xa5, 0x16, 0xc5, 0xb2, 0x33, 0xc4, 0x14, 0xdd, 0xef, 0xb6, 0xda, 0x04, 0xf2, 0xe1, 0x3d, 0xaf, 0xf7, 0xa9, 0xa0, 0xc0, 0x2a, 0x51, 0x8e, 0xde, 0x57, 0xad, 0x95, 0x21, 0xde, 0x64, 0xed, 0xdf, 0x6f, 0x49, 0xa9, 0x67, 0x0f, 0x63, 0x2d, 0x3f, 0x7d, 0x42, 0x42, 0x52, 0x07, 0xd0, 0x53, 0x60, 0x4f, 0xe3, 0x9d, 0x13, 0xb9, 0xf5, 0x2c, 0x8b, 0xc2, 0x92, 0xb0, 0x07, 0x6e, 0xa4, 0x2a, 0x56, 0x00, 0x56, 0xdf, 0x25, 0xde, 0x51, 0xad, 0x35, 0x88, 0x1d, 0x08, 0x54, 0x32, 0x24, 0xd7, 0xfa, 0x5d, 0x70, 0xb8, 0x60, 0x3e, 0xf2, 0x3c, 0xe0, 0x63, 0x39, 0xd6, 0xcd, 0x09, 0xe2, 0x2a, 0x95, 0x74, 0x9e, 0x50, 0xdf, 0xbd, 0x3b, 0x8a, 0xd6, 0x9f, 0xd3, 0x04, 0x96, 0xb9, 0x84, 0xd1, 0xc0, 0xa1, 0x99, 0xc8, 0x59, 0x48, 0x05, 0xf3, 0x8b, 0xa4, 0x46, 0x31, 0xa2, 0xc5, 0x9e, 0xad, 0xc6, 0x55, 0x4d, 0x19, 0xf9, 0xbc, 0x98, 0x36, 0x6d, 0xfd, 0xec, 0x2a, 0x12, 0x1d, 0x0e, 0x48, 0x14, 0xd2, 0xcd, 0x3f, 0x58, 0x71, };
9866 static const u8 ed25519_429_test_vectors_expected_sig[] = {
9867 	0x11, 0x8e, 0x14, 0x62, 0x12, 0x6b, 0x45, 0xb8, 0xc6, 0x80, 0x35, 0x23, 0x75, 0x5c, 0x56, 0xdf, 0xc4, 0xe1, 0x23, 0xe4, 0xac, 0xbb, 0x66, 0xba, 0x0b, 0xa6, 0xfe, 0x3e, 0x05, 0x3d, 0xa4, 0x11, 0x9f, 0x57, 0x19, 0x29, 0x5e, 0x0c, 0x82, 0xac, 0x64, 0xd7, 0xc5, 0xcb, 0x1a, 0xc8, 0x98, 0xdf, 0x26, 0x3d, 0xdf, 0xd3, 0x60, 0xf3, 0x00, 0x8d, 0x91, 0x01, 0x8b, 0x26, 0xf6, 0xa1, 0x73, 0x0a, };
9868 static const ec_test_case ed25519_429_test_case = {
9869 	.name = "EDDSA25519-SHA512/wei25519 429",
9870 	.ec_str_p = &wei25519_str_params,
9871 	.priv_key = ed25519_429_test_vectors_priv_key,
9872 	.priv_key_len = sizeof(ed25519_429_test_vectors_priv_key),
9873 	.nn_random = NULL,
9874 	.hash_type = SHA512,
9875 	.msg = (const char *)ed25519_429_test_vectors_message,
9876 	.msglen = sizeof(ed25519_429_test_vectors_message),
9877 	.sig_type = EDDSA25519,
9878 	.exp_sig = ed25519_429_test_vectors_expected_sig,
9879 	.exp_siglen = sizeof(ed25519_429_test_vectors_expected_sig),
9880 	.adata = NULL,
9881 	.adata_len = 0
9882 };
9883 
9884 /************************************************/
9885 static const u8 ed25519_430_test_vectors_priv_key[] = {
9886 	0xcb, 0xfd, 0x91, 0xd7, 0x69, 0x5c, 0x1f, 0x27, 0x0f, 0x69, 0x24, 0x6a, 0xb3, 0xdf, 0x90, 0xed, 0xb2, 0x14, 0x01, 0x10, 0x1c, 0xa7, 0xf8, 0xf2, 0x6c, 0x6d, 0x00, 0xf4, 0xdc, 0xb7, 0x23, 0x3e, };
9887 static const u8 ed25519_430_test_vectors_message[] = {
9888 	0x26, 0x4a, 0x93, 0x3f, 0x7d, 0x0a, 0xec, 0xba, 0xc1, 0x3e, 0xef, 0x64, 0x4b, 0x0b, 0x53, 0xdd, 0x53, 0xa1, 0x28, 0x09, 0x04, 0x10, 0x0d, 0xbc, 0x1a, 0xb8, 0x7b, 0x51, 0x14, 0x89, 0x98, 0xf9, 0xda, 0x0b, 0x3a, 0x0a, 0x63, 0x37, 0xf5, 0xe3, 0x48, 0x6c, 0x2b, 0x7e, 0x54, 0x8d, 0x21, 0x12, 0x59, 0x39, 0x7a, 0xaa, 0x19, 0x4e, 0xe4, 0x69, 0x5b, 0xf9, 0x8c, 0x2d, 0x5f, 0x44, 0x87, 0x69, 0x9f, 0x73, 0x97, 0xe5, 0xd3, 0xa7, 0xe6, 0xd5, 0xf6, 0x28, 0xfb, 0xd0, 0x54, 0x97, 0xc5, 0x56, 0xa5, 0x0a, 0x4d, 0x05, 0xe2, 0xb7, 0x12, 0xcd, 0xbc, 0x35, 0x10, 0x68, 0xe4, 0x2a, 0xf1, 0x95, 0x38, 0x90, 0x1b, 0x88, 0x25, 0x31, 0x0e, 0x34, 0x3e, 0x1a, 0x17, 0xa1, 0x86, 0x7d, 0xde, 0x0e, 0xb4, 0x7d, 0xda, 0xb4, 0x56, 0xd3, 0x16, 0xf3, 0x52, 0x15, 0x54, 0x93, 0x7b, 0xf8, 0x08, 0xae, 0x4e, 0x4b, 0xc1, 0xc3, 0xc5, 0xb4, 0x75, 0x6e, 0x4a, 0x16, 0x5a, 0xd9, 0xe8, 0x82, 0x7f, 0x53, 0x16, 0xf7, 0x48, 0xca, 0xc6, 0x99, 0x8e, 0xd2, 0xd2, 0x10, 0x4f, 0x26, 0x84, 0x07, 0xc1, 0x35, 0xe6, 0x2f, 0x26, 0xa9, 0x22, 0x46, 0x0e, 0xab, 0x6d, 0x85, 0x16, 0x39, 0xa0, 0x0e, 0x5f, 0x08, 0xb3, 0x47, 0x65, 0xea, 0x02, 0x44, 0xf4, 0x75, 0xbb, 0xfe, 0xac, 0x18, 0x3e, 0x3b, 0x5b, 0xd1, 0xaa, 0xb7, 0x98, 0x52, 0x27, 0x98, 0xa0, 0x8e, 0xc6, 0xbf, 0x22, 0x57, 0xd4, 0x69, 0x2f, 0x5b, 0x03, 0xcd, 0xd0, 0xa2, 0x13, 0x3d, 0xe9, 0x70, 0x60, 0x3e, 0x32, 0x51, 0x47, 0x5a, 0xad, 0x8d, 0x93, 0x4a, 0xf6, 0xb2, 0xbf, 0xc7, 0xa6, 0x50, 0xb9, 0x1b, 0xde, 0xc1, 0x43, 0xf8, 0xad, 0x25, 0x4c, 0xfa, 0x50, 0x6b, 0xbf, 0xf2, 0x8a, 0x03, 0xbe, 0xb6, 0x59, 0xef, 0x5e, 0x5d, 0xdf, 0xfe, 0x76, 0xe2, 0x32, 0x30, 0xc4, 0xcc, 0xd4, 0x63, 0x10, 0xb3, 0x7d, 0xd9, 0x1f, 0xa6, 0xaa, 0x68, 0x16, 0x7f, 0x62, 0xa5, 0x5c, 0x8a, 0x69, 0xf9, 0xed, 0x1e, 0xc6, 0xcd, 0xb1, 0x44, 0xdd, 0x81, 0xab, 0x0b, 0xcb, 0xd6, 0x26, 0x43, 0x42, 0x0b, 0xca, 0xe6, 0x78, 0x69, 0xf6, 0x4c, 0x0b, 0x16, 0x9f, 0x3c, 0xdf, 0x3c, 0x90, 0x58, 0x95, 0xb7, 0xd3, 0x5b, 0x6f, 0xaf, 0xda, 0x25, 0xcc, 0xf2, 0x3c, 0x3d, 0x10, 0xde, 0x32, 0xe7, 0xf2, 0x71, 0xe3, 0x00, 0xd3, 0x95, 0x97, 0xda, 0x8f, 0x84, 0x37, 0x22, 0xef, 0x08, 0x36, 0x4a, 0x5f, 0x7a, 0x10, 0x5b, 0x96, 0x55, 0x17, 0x2d, 0xf7, 0xc8, 0x2d, 0x73, 0x74, 0xf9, 0x82, 0x64, 0xc9, 0xcd, 0xcc, 0xb4, 0x96, 0xf2, 0xe1, 0x0f, 0xd8, 0x26, 0x2f, 0xb1, 0xa9, 0xa9, 0x96, 0x5b, 0x0b, 0x84, 0x1a, 0xc0, 0xd0, 0xe9, 0xc1, 0xa3, 0xd9, 0x49, 0x3e, 0xa7, 0xaa, 0x60, 0x02, 0x05, 0xb8, 0xf9, 0x00, 0xbe, 0x0d, 0x7a, 0xbb, 0x4d, 0x98, 0xa0, 0x65, 0x83, 0xd2, 0x29, 0x5c, 0x27, 0x63, 0x18, 0xbe, 0x28, 0xd4, 0x21, 0x98, 0x2d, 0xed, 0xd5, 0xbf, 0xc3, 0x3b, 0x88, 0x65, 0xd9, 0x4e, 0xf7, 0x47, 0xd6, 0x26, 0xaf, 0x99, };
9889 static const u8 ed25519_430_test_vectors_expected_sig[] = {
9890 	0xf3, 0x36, 0x13, 0x7d, 0xfe, 0x6f, 0x42, 0xa6, 0x66, 0x9b, 0x55, 0xf7, 0x4b, 0x80, 0xb3, 0x03, 0x5a, 0x04, 0x03, 0x67, 0xf9, 0x06, 0x56, 0xfc, 0xef, 0x0a, 0x64, 0x4c, 0x52, 0x27, 0x2d, 0xdc, 0x39, 0x27, 0x3c, 0xd7, 0x72, 0x60, 0x10, 0xeb, 0xcd, 0x8a, 0x30, 0xa0, 0x52, 0x01, 0xab, 0x70, 0xb8, 0xff, 0x97, 0xd0, 0x28, 0x8a, 0x2c, 0xb9, 0x4c, 0xbc, 0x49, 0x02, 0x06, 0x47, 0x39, 0x0b, };
9891 static const ec_test_case ed25519_430_test_case = {
9892 	.name = "EDDSA25519-SHA512/wei25519 430",
9893 	.ec_str_p = &wei25519_str_params,
9894 	.priv_key = ed25519_430_test_vectors_priv_key,
9895 	.priv_key_len = sizeof(ed25519_430_test_vectors_priv_key),
9896 	.nn_random = NULL,
9897 	.hash_type = SHA512,
9898 	.msg = (const char *)ed25519_430_test_vectors_message,
9899 	.msglen = sizeof(ed25519_430_test_vectors_message),
9900 	.sig_type = EDDSA25519,
9901 	.exp_sig = ed25519_430_test_vectors_expected_sig,
9902 	.exp_siglen = sizeof(ed25519_430_test_vectors_expected_sig),
9903 	.adata = NULL,
9904 	.adata_len = 0
9905 };
9906 
9907 /************************************************/
9908 static const u8 ed25519_431_test_vectors_priv_key[] = {
9909 	0x51, 0xa4, 0x19, 0x7a, 0xb7, 0x68, 0x6f, 0x82, 0xf6, 0x00, 0x3a, 0x0c, 0x32, 0xf3, 0x9d, 0x0f, 0x2e, 0x47, 0x55, 0x5f, 0x4e, 0x9f, 0x8d, 0xee, 0xe7, 0x5b, 0xcb, 0x1b, 0xd1, 0xef, 0x69, 0xe5, };
9910 static const u8 ed25519_431_test_vectors_message[] = {
9911 	0x2a, 0xed, 0xb7, 0xe8, 0x2f, 0x1f, 0xe4, 0xce, 0x46, 0x9a, 0xda, 0x48, 0x34, 0x5d, 0x00, 0x6d, 0x1b, 0x3b, 0xff, 0x40, 0xeb, 0x21, 0x86, 0x7f, 0x51, 0xfc, 0xe9, 0x65, 0x64, 0x0c, 0x40, 0x9e, 0xc1, 0x3a, 0xd4, 0xd5, 0x2f, 0x89, 0x1b, 0xd7, 0x90, 0x66, 0xd6, 0xb4, 0xd9, 0x44, 0xca, 0x86, 0x8d, 0x89, 0x86, 0xd2, 0x42, 0xb5, 0x7e, 0xcc, 0xc4, 0xc4, 0xa4, 0x88, 0x29, 0x1b, 0x15, 0x9c, 0x8d, 0xe4, 0x39, 0x2b, 0xe4, 0xb8, 0x6f, 0xeb, 0xaa, 0x75, 0xea, 0xc5, 0xd2, 0x2d, 0x3c, 0x4f, 0x8d, 0x6b, 0xef, 0x79, 0xad, 0xb9, 0xb9, 0x2b, 0x49, 0x14, 0xd5, 0xea, 0x07, 0xc7, 0xf0, 0x21, 0xe2, 0xc2, 0x9f, 0x58, 0xd0, 0x7b, 0xe8, 0xa0, 0x84, 0x10, 0x0b, 0xc1, 0x52, 0xd5, 0x1c, 0xa8, 0x97, 0xd7, 0xc1, 0x31, 0x64, 0x4d, 0x08, 0x95, 0x32, 0x2e, 0x94, 0x40, 0xa8, 0x33, 0x9e, 0x1a, 0xa3, 0x90, 0xa7, 0xf4, 0xfc, 0xb5, 0x1d, 0xdf, 0xb6, 0xdf, 0x48, 0xaa, 0xf5, 0x67, 0x63, 0x37, 0xd8, 0x7d, 0xdd, 0x85, 0xb1, 0xd9, 0x25, 0xe1, 0xa9, 0xc2, 0x9f, 0xe0, 0x81, 0x8f, 0x51, 0x4e, 0xf7, 0x2f, 0x74, 0x7a, 0x67, 0x49, 0x46, 0x47, 0x69, 0x07, 0xa7, 0xca, 0x99, 0xe9, 0xdb, 0x8d, 0x20, 0x96, 0x41, 0x05, 0x7a, 0x7f, 0x44, 0xa3, 0x17, 0xb9, 0x09, 0x74, 0xbc, 0x86, 0xf9, 0x61, 0x7a, 0x96, 0x8a, 0x76, 0xa6, 0xb8, 0x38, 0x7c, 0xf5, 0x85, 0x3e, 0x60, 0x81, 0x90, 0xc1, 0xa7, 0x9f, 0x1e, 0x1d, 0x68, 0x6e, 0x0d, 0xe2, 0x2d, 0xb6, 0xcd, 0x9a, 0xeb, 0x85, 0x32, 0xc5, 0xc8, 0x5c, 0xc9, 0x0b, 0x5a, 0x01, 0x85, 0x79, 0xf2, 0x8e, 0x50, 0x2a, 0x77, 0x0a, 0x4e, 0xc6, 0x75, 0x26, 0x3d, 0x0d, 0xd7, 0x81, 0xb4, 0xfa, 0x53, 0xc9, 0xdb, 0xf8, 0x09, 0x8d, 0x57, 0xb3, 0x3a, 0xe2, 0xaf, 0xba, 0xeb, 0x3e, 0x68, 0x26, 0x6a, 0xd9, 0xaa, 0xb7, 0x17, 0x4b, 0xa6, 0x8c, 0x64, 0x79, 0x88, 0x39, 0x92, 0x67, 0x0c, 0xcf, 0x3e, 0x5a, 0xc6, 0xa1, 0x7e, 0x65, 0xe3, 0x1e, 0x1f, 0xdc, 0x85, 0xe2, 0x69, 0xc8, 0x09, 0x35, 0xef, 0x57, 0x4f, 0x20, 0xd2, 0x39, 0x56, 0x84, 0x86, 0xe7, 0xd9, 0x4a, 0x4f, 0x72, 0x4a, 0xb7, 0x00, 0x60, 0x98, 0xb2, 0x4f, 0x3f, 0x61, 0x58, 0x76, 0x91, 0x43, 0x5c, 0x7f, 0x29, 0xce, 0x4e, 0x5c, 0xa7, 0x1b, 0x2b, 0x18, 0x74, 0x55, 0x64, 0x33, 0xa3, 0x58, 0xc8, 0xc5, 0xef, 0x3c, 0x88, 0x08, 0x43, 0x03, 0x0c, 0x2d, 0x13, 0xd5, 0x1b, 0x78, 0xc9, 0xbf, 0x1a, 0x88, 0x24, 0xe6, 0x2e, 0x11, 0x18, 0x44, 0x39, 0x6f, 0x5a, 0xf2, 0xe2, 0x5c, 0x31, 0x26, 0xef, 0x36, 0x26, 0xe2, 0x6e, 0xfa, 0xfa, 0xcf, 0x99, 0x83, 0x0a, 0xa4, 0x12, 0x12, 0x33, 0x2f, 0x37, 0x8a, 0x16, 0x72, 0x33, 0xa0, 0xb4, 0x22, 0x13, 0xaf, 0xe3, 0x6d, 0x83, 0xdc, 0x45, 0x82, 0xa7, 0x96, 0x93, 0xb9, 0xd5, 0x71, 0xa5, 0x77, 0x12, 0xa0, 0x8b, 0x85, 0x66, 0xd3, 0x61, 0xac, 0x90, 0x26, 0x47, 0xaf, 0xc8, 0x86, 0x60, 0x3e, 0x24, 0x28, 0x3e, 0xfb, };
9912 static const u8 ed25519_431_test_vectors_expected_sig[] = {
9913 	0x2c, 0x07, 0x29, 0x69, 0xff, 0x47, 0x19, 0x21, 0x2a, 0x12, 0x19, 0x38, 0xb5, 0x06, 0xc6, 0x02, 0x99, 0x5b, 0x4d, 0x02, 0xa2, 0x2e, 0x61, 0x98, 0xd6, 0xe8, 0x7d, 0xd6, 0xae, 0x07, 0x62, 0x25, 0xac, 0x70, 0xbb, 0x25, 0xef, 0x8c, 0x0e, 0xe8, 0x1e, 0xb6, 0xfe, 0x95, 0x3d, 0xf6, 0xb1, 0x81, 0x59, 0x49, 0xe8, 0xed, 0x05, 0x06, 0xcb, 0x01, 0x2e, 0x87, 0x3c, 0xd3, 0x6c, 0xd0, 0x9b, 0x0a, };
9914 static const ec_test_case ed25519_431_test_case = {
9915 	.name = "EDDSA25519-SHA512/wei25519 431",
9916 	.ec_str_p = &wei25519_str_params,
9917 	.priv_key = ed25519_431_test_vectors_priv_key,
9918 	.priv_key_len = sizeof(ed25519_431_test_vectors_priv_key),
9919 	.nn_random = NULL,
9920 	.hash_type = SHA512,
9921 	.msg = (const char *)ed25519_431_test_vectors_message,
9922 	.msglen = sizeof(ed25519_431_test_vectors_message),
9923 	.sig_type = EDDSA25519,
9924 	.exp_sig = ed25519_431_test_vectors_expected_sig,
9925 	.exp_siglen = sizeof(ed25519_431_test_vectors_expected_sig),
9926 	.adata = NULL,
9927 	.adata_len = 0
9928 };
9929 
9930 /************************************************/
9931 static const u8 ed25519_432_test_vectors_priv_key[] = {
9932 	0xb1, 0x11, 0x9c, 0x36, 0x11, 0x8b, 0x7a, 0x06, 0x5a, 0x19, 0x5b, 0xfb, 0x8b, 0x79, 0xa5, 0xc2, 0x87, 0xe0, 0x9b, 0xd2, 0x87, 0xc2, 0xda, 0xac, 0x5e, 0x6b, 0x01, 0x16, 0x4c, 0x5d, 0x73, 0x7f, };
9933 static const u8 ed25519_432_test_vectors_message[] = {
9934 	0x88, 0x16, 0xb1, 0xeb, 0x20, 0x6d, 0x5f, 0x6d, 0xcc, 0x2e, 0x4c, 0xc3, 0x91, 0xd2, 0x32, 0x09, 0x00, 0x6d, 0xe9, 0x35, 0xe3, 0x18, 0x15, 0x2e, 0x93, 0xfc, 0x8c, 0x2c, 0xf0, 0x8e, 0x26, 0x43, 0x2b, 0xad, 0x9a, 0xdb, 0x32, 0x03, 0xd8, 0x98, 0xdf, 0x0a, 0x2e, 0x7f, 0x1f, 0x83, 0xdc, 0x2f, 0x3e, 0xd3, 0x20, 0x5b, 0xec, 0x8e, 0xfc, 0xfd, 0x31, 0xad, 0xc1, 0xac, 0xa5, 0x75, 0x5d, 0xb9, 0xbd, 0x4e, 0xfe, 0x54, 0xcc, 0x17, 0x07, 0x30, 0x77, 0xde, 0x4a, 0x3f, 0xdd, 0x11, 0x99, 0x6e, 0x84, 0xb6, 0xa0, 0x52, 0xf0, 0x34, 0xb4, 0x10, 0x99, 0x22, 0x6c, 0x9c, 0x27, 0x2e, 0xae, 0x12, 0x52, 0x8f, 0x16, 0x58, 0x1b, 0x91, 0xb8, 0x12, 0x85, 0x0c, 0x20, 0x71, 0x44, 0xdb, 0xff, 0x3e, 0x85, 0x0c, 0xca, 0x84, 0x8e, 0xc2, 0xb1, 0xdd, 0x16, 0x47, 0x44, 0xd7, 0xb5, 0x93, 0x37, 0xd7, 0xe3, 0xef, 0xef, 0x00, 0x81, 0x62, 0xe6, 0x80, 0xbd, 0x4a, 0x08, 0x99, 0xce, 0xd6, 0x0b, 0x17, 0x1f, 0x8c, 0xbe, 0xb4, 0x8c, 0x51, 0x58, 0xdf, 0x6c, 0xbf, 0xdb, 0x26, 0x24, 0x08, 0x81, 0xbd, 0x58, 0xeb, 0xb8, 0xb6, 0xa0, 0x79, 0x58, 0x72, 0x79, 0x67, 0x9c, 0xb5, 0xad, 0x82, 0xf3, 0x71, 0xb5, 0x3c, 0x80, 0x13, 0x80, 0x4c, 0x35, 0x59, 0x6c, 0x88, 0x7e, 0x43, 0x6d, 0x23, 0x92, 0x6f, 0x99, 0x4e, 0x09, 0xd9, 0x8f, 0xbb, 0x8c, 0xe2, 0x70, 0x41, 0x74, 0xef, 0x38, 0xb6, 0x82, 0x62, 0xa7, 0xf1, 0xa7, 0x12, 0xda, 0x0e, 0xf0, 0xde, 0xc6, 0x39, 0x60, 0x68, 0x14, 0xb3, 0xbd, 0xca, 0xf2, 0x53, 0xff, 0x31, 0xc4, 0x8e, 0x8a, 0x75, 0x2c, 0x11, 0x1b, 0xd7, 0x10, 0x10, 0x31, 0xcc, 0x3d, 0x38, 0xef, 0xb0, 0xc9, 0xc7, 0xf1, 0x9c, 0x59, 0x08, 0x15, 0x84, 0xa0, 0xe0, 0x15, 0xee, 0x7c, 0x75, 0xb1, 0x0a, 0x4c, 0x51, 0xff, 0x54, 0x3a, 0x30, 0xe5, 0x2d, 0x5f, 0x94, 0xd8, 0x18, 0x8c, 0x6b, 0x08, 0xe9, 0xdf, 0x1e, 0x84, 0xa4, 0xe2, 0xc8, 0x07, 0x17, 0x0a, 0xc1, 0x24, 0xa7, 0x71, 0xb9, 0x94, 0x65, 0xa0, 0xd3, 0x8b, 0x1f, 0x1c, 0x63, 0x30, 0x40, 0x3c, 0x82, 0x54, 0x35, 0x82, 0xc5, 0xbb, 0x61, 0xb2, 0x20, 0xde, 0x1b, 0x9e, 0x0e, 0xf6, 0x9b, 0xda, 0xe2, 0x60, 0x23, 0x18, 0x1b, 0xa4, 0xcc, 0x07, 0x7a, 0x5f, 0x0d, 0x42, 0x57, 0x32, 0xac, 0xe1, 0x32, 0xae, 0x0c, 0x6f, 0xf0, 0xbb, 0x18, 0xba, 0xea, 0x83, 0xe8, 0x87, 0x7a, 0xfb, 0xe6, 0x50, 0xfe, 0x0b, 0xd0, 0x20, 0x93, 0xf0, 0x0a, 0x7b, 0x53, 0x65, 0x72, 0x8d, 0xcb, 0x66, 0xfb, 0xb8, 0x81, 0xf5, 0x92, 0x94, 0x50, 0x58, 0xa5, 0xb3, 0x50, 0x66, 0x5a, 0xf9, 0x1c, 0x55, 0x7a, 0x54, 0x72, 0x50, 0xad, 0x29, 0x5e, 0x68, 0xb4, 0xfb, 0x72, 0x45, 0x7c, 0xfb, 0x9d, 0x5e, 0xa1, 0xa7, 0xb2, 0xa3, 0x9c, 0x9a, 0xb7, 0xd7, 0xac, 0xe0, 0xaf, 0x5d, 0x51, 0x66, 0x9c, 0xb6, 0xc2, 0xc4, 0xc0, 0x7b, 0x22, 0x56, 0xd1, 0x0e, 0x5f, 0xfc, 0x6b, 0x97, 0xc6, 0x60, 0x00, 0x63, 0x13, 0xc4, 0xeb, 0x8d, };
9935 static const u8 ed25519_432_test_vectors_expected_sig[] = {
9936 	0x24, 0xec, 0x1e, 0x54, 0xfc, 0x7e, 0x72, 0x2d, 0x37, 0x55, 0x1d, 0x02, 0xcf, 0x13, 0x5d, 0x33, 0xf5, 0xd3, 0xff, 0x53, 0x57, 0x73, 0xe0, 0x29, 0x91, 0xee, 0x85, 0xff, 0xd3, 0xaa, 0x29, 0x99, 0x7f, 0x9c, 0x46, 0x44, 0x70, 0x19, 0x7f, 0xee, 0x81, 0xdc, 0xe1, 0x10, 0x60, 0x9f, 0x87, 0x0b, 0x27, 0xc1, 0x8d, 0xfb, 0xcf, 0xd9, 0x32, 0x05, 0x48, 0x52, 0x5e, 0x93, 0x14, 0x8e, 0x22, 0x05, };
9937 static const ec_test_case ed25519_432_test_case = {
9938 	.name = "EDDSA25519-SHA512/wei25519 432",
9939 	.ec_str_p = &wei25519_str_params,
9940 	.priv_key = ed25519_432_test_vectors_priv_key,
9941 	.priv_key_len = sizeof(ed25519_432_test_vectors_priv_key),
9942 	.nn_random = NULL,
9943 	.hash_type = SHA512,
9944 	.msg = (const char *)ed25519_432_test_vectors_message,
9945 	.msglen = sizeof(ed25519_432_test_vectors_message),
9946 	.sig_type = EDDSA25519,
9947 	.exp_sig = ed25519_432_test_vectors_expected_sig,
9948 	.exp_siglen = sizeof(ed25519_432_test_vectors_expected_sig),
9949 	.adata = NULL,
9950 	.adata_len = 0
9951 };
9952 
9953 /************************************************/
9954 static const u8 ed25519_433_test_vectors_priv_key[] = {
9955 	0xcb, 0xb5, 0x87, 0x51, 0x4e, 0x0a, 0x34, 0xff, 0xc3, 0x4c, 0xbc, 0x04, 0xf2, 0x8c, 0x9b, 0x4f, 0x64, 0x65, 0xf1, 0xeb, 0x22, 0x5c, 0xca, 0x19, 0xb8, 0x64, 0x87, 0x6d, 0xae, 0xf3, 0x7d, 0x7f, };
9956 static const u8 ed25519_433_test_vectors_message[] = {
9957 	0xbd, 0xf7, 0xd1, 0x7c, 0x70, 0x67, 0x96, 0xef, 0xd3, 0x48, 0x95, 0x59, 0xb5, 0x27, 0xb1, 0xc0, 0x58, 0x4b, 0x90, 0x22, 0xc9, 0xcb, 0xda, 0x3a, 0xac, 0x51, 0x46, 0xda, 0x34, 0x0d, 0x9c, 0xea, 0x69, 0xf9, 0x16, 0x03, 0x7c, 0xd2, 0x1b, 0x3e, 0xb1, 0x10, 0x43, 0x48, 0x88, 0x0f, 0xd5, 0xc5, 0xb7, 0xc6, 0x5f, 0xf8, 0x20, 0xf7, 0x49, 0x93, 0x46, 0x01, 0x69, 0x51, 0xcb, 0x71, 0x5d, 0x8d, 0xf2, 0xb4, 0x1c, 0x88, 0xcd, 0x3c, 0x66, 0x10, 0x54, 0x58, 0xb7, 0xb5, 0x90, 0xc2, 0x1c, 0x1a, 0xe2, 0xf6, 0xea, 0x9d, 0xde, 0xa7, 0x47, 0x0f, 0x25, 0xe0, 0x20, 0x27, 0xd1, 0x71, 0xe0, 0xe5, 0x74, 0xa2, 0xbb, 0x21, 0x64, 0x2f, 0x8f, 0x9d, 0xa5, 0x08, 0xe2, 0x1d, 0x8e, 0x73, 0x35, 0xb5, 0xac, 0xe5, 0x93, 0x52, 0x99, 0x40, 0x7b, 0xd1, 0xb0, 0x1b, 0xdd, 0x14, 0x23, 0x13, 0x3e, 0xf0, 0x45, 0x23, 0x4e, 0x70, 0x1f, 0x55, 0x54, 0x94, 0x34, 0xad, 0xe9, 0x4a, 0x60, 0xbe, 0x1e, 0x14, 0x06, 0xca, 0x5c, 0x75, 0x8c, 0x36, 0x79, 0x9c, 0xe1, 0x70, 0x30, 0x84, 0x47, 0x6e, 0x48, 0x4f, 0xb1, 0x74, 0x05, 0x30, 0xae, 0xe8, 0x42, 0x66, 0xd0, 0x7a, 0xdf, 0xb4, 0xcc, 0x68, 0x9f, 0x32, 0x65, 0x13, 0x3a, 0x59, 0xcd, 0xf9, 0x92, 0xfb, 0xb9, 0xa4, 0xb1, 0x2d, 0xef, 0xbe, 0x24, 0x1d, 0xdb, 0xf6, 0x5d, 0x12, 0xb2, 0xfb, 0xdd, 0xfc, 0x05, 0xaf, 0x0f, 0xb8, 0xde, 0x42, 0x08, 0x07, 0x75, 0xba, 0xd2, 0x9c, 0x6b, 0x04, 0x59, 0x84, 0x1c, 0xbb, 0x64, 0x8a, 0x9a, 0x95, 0xe4, 0x8d, 0x6e, 0x36, 0xac, 0x51, 0x44, 0x80, 0xa3, 0xde, 0xb4, 0xb3, 0x65, 0x54, 0xd8, 0xda, 0x62, 0x08, 0x08, 0xae, 0x9d, 0x47, 0x32, 0x97, 0x10, 0xd2, 0x0a, 0xaa, 0x6e, 0x5d, 0x7f, 0x54, 0x7d, 0x81, 0xad, 0x30, 0xf8, 0x4c, 0x0e, 0x3d, 0x23, 0x9c, 0xde, 0x5b, 0x16, 0x9d, 0x9d, 0xdf, 0x29, 0x48, 0x32, 0xd6, 0x7a, 0x80, 0x60, 0xba, 0x32, 0x9c, 0x4e, 0xf3, 0x9b, 0xe9, 0x4a, 0xc4, 0x64, 0x34, 0xdd, 0x21, 0x85, 0x93, 0x1d, 0x12, 0x31, 0xf9, 0xb6, 0xdf, 0x87, 0x8a, 0x5a, 0xf0, 0x83, 0x1e, 0x0e, 0x9d, 0x8a, 0x08, 0xd0, 0x80, 0x69, 0xde, 0xd6, 0xa9, 0x61, 0xef, 0x7f, 0x39, 0xfa, 0xd5, 0x01, 0xff, 0xd1, 0x7d, 0x6d, 0x9b, 0x7c, 0x65, 0x46, 0x53, 0xc1, 0xf5, 0x8f, 0xce, 0xe1, 0xa6, 0xcd, 0x80, 0x3d, 0x2a, 0xef, 0x16, 0x6c, 0x78, 0xef, 0x55, 0x14, 0xa3, 0x27, 0x6d, 0x69, 0x98, 0xdc, 0x7c, 0x09, 0xa3, 0xfa, 0x98, 0x2e, 0x42, 0x7c, 0x78, 0x5a, 0xa6, 0xa9, 0xe2, 0x56, 0xf7, 0xba, 0x72, 0xd5, 0xa6, 0xba, 0x33, 0xeb, 0x46, 0xf1, 0xf9, 0xfe, 0x9b, 0xe2, 0xbf, 0xc1, 0x41, 0x09, 0xf6, 0x47, 0x73, 0xc0, 0x0c, 0x06, 0x3b, 0x4d, 0x5c, 0xb4, 0xf4, 0xf8, 0xa0, 0xbe, 0xca, 0x92, 0xa9, 0xa0, 0x16, 0xc4, 0xf5, 0x40, 0xfe, 0xea, 0x9c, 0x3a, 0x31, 0xe3, 0x13, 0xbb, 0xcb, 0xc2, 0xff, 0x5e, 0xca, 0x99, 0x67, 0x85, 0x7f, 0x5f, 0x8a, 0x90, 0x9a, 0x29, 0xd7, 0xf2, 0x0d, };
9958 static const u8 ed25519_433_test_vectors_expected_sig[] = {
9959 	0x12, 0x74, 0xd6, 0xf3, 0x56, 0xeb, 0x64, 0x14, 0x72, 0xb6, 0xb9, 0xe5, 0xb3, 0xce, 0x65, 0xd2, 0x65, 0x4e, 0x6c, 0xb8, 0x7d, 0x3a, 0x83, 0xfb, 0x49, 0xd0, 0xf7, 0xda, 0x9c, 0x44, 0xbe, 0x2b, 0x53, 0x26, 0x04, 0x46, 0x5f, 0x60, 0x89, 0xd6, 0x80, 0xd2, 0xd9, 0x4b, 0x0e, 0xdd, 0x2b, 0x6b, 0x2b, 0x80, 0x5c, 0x5e, 0x84, 0xc3, 0x79, 0xef, 0xc0, 0x59, 0x67, 0x3d, 0x31, 0x00, 0x7a, 0x09, };
9960 static const ec_test_case ed25519_433_test_case = {
9961 	.name = "EDDSA25519-SHA512/wei25519 433",
9962 	.ec_str_p = &wei25519_str_params,
9963 	.priv_key = ed25519_433_test_vectors_priv_key,
9964 	.priv_key_len = sizeof(ed25519_433_test_vectors_priv_key),
9965 	.nn_random = NULL,
9966 	.hash_type = SHA512,
9967 	.msg = (const char *)ed25519_433_test_vectors_message,
9968 	.msglen = sizeof(ed25519_433_test_vectors_message),
9969 	.sig_type = EDDSA25519,
9970 	.exp_sig = ed25519_433_test_vectors_expected_sig,
9971 	.exp_siglen = sizeof(ed25519_433_test_vectors_expected_sig),
9972 	.adata = NULL,
9973 	.adata_len = 0
9974 };
9975 
9976 /************************************************/
9977 static const u8 ed25519_434_test_vectors_priv_key[] = {
9978 	0x8b, 0xde, 0x3f, 0xf6, 0x1a, 0x16, 0x99, 0x5a, 0xb9, 0xd5, 0x39, 0xf6, 0x05, 0x32, 0x19, 0x08, 0x1b, 0xca, 0xea, 0x1d, 0x45, 0x8e, 0xc3, 0x36, 0x84, 0xfc, 0x1c, 0x01, 0xfb, 0x56, 0x5b, 0xfa, };
9979 static const u8 ed25519_434_test_vectors_message[] = {
9980 	0xa1, 0xf4, 0x0e, 0xc5, 0x80, 0x7e, 0x7a, 0x27, 0x06, 0x9a, 0x43, 0xb1, 0xae, 0xbf, 0xf5, 0x83, 0xef, 0x03, 0x70, 0x28, 0xc0, 0x2c, 0x85, 0x95, 0x25, 0xeb, 0x8f, 0xa4, 0xc3, 0xba, 0x95, 0xa9, 0x01, 0xff, 0x3a, 0xed, 0x78, 0xc4, 0xf8, 0x77, 0x52, 0xfb, 0x79, 0x55, 0x22, 0xf5, 0xbf, 0x71, 0x5b, 0xe7, 0xe3, 0xde, 0xfa, 0xc1, 0x0f, 0xcf, 0x17, 0xe3, 0xfa, 0x5c, 0x54, 0xb2, 0x00, 0x89, 0xa4, 0x72, 0x33, 0x33, 0x27, 0x25, 0x2e, 0xc9, 0x45, 0x71, 0x8f, 0xb4, 0x55, 0xe3, 0xf2, 0x7c, 0xcf, 0xde, 0xf8, 0x23, 0xd1, 0x2d, 0x40, 0x6e, 0x62, 0xa4, 0xae, 0xba, 0x3c, 0xb9, 0xd1, 0xc6, 0x1b, 0x2b, 0x17, 0xe4, 0x9e, 0x20, 0x0a, 0x84, 0x18, 0xf9, 0x35, 0xf2, 0x6e, 0xeb, 0x57, 0x60, 0x2c, 0x7a, 0xa3, 0xb3, 0xa2, 0x4f, 0x7e, 0x62, 0x38, 0xd3, 0xe0, 0x8d, 0x2d, 0x60, 0x9f, 0x2e, 0xad, 0xa0, 0x33, 0x2b, 0xc8, 0xcb, 0x12, 0x91, 0x6c, 0xb0, 0x3b, 0x0d, 0x4f, 0x9c, 0xd6, 0x02, 0x00, 0x25, 0x86, 0xd3, 0xe4, 0xcc, 0x7e, 0x0e, 0x03, 0x81, 0xc0, 0x45, 0xad, 0x2e, 0x1e, 0xe2, 0x82, 0x98, 0xae, 0x7f, 0xcf, 0x0c, 0x10, 0xf2, 0x12, 0x80, 0x85, 0x65, 0x29, 0x6f, 0x15, 0x8d, 0x2c, 0x32, 0xe8, 0xcb, 0x28, 0x15, 0x65, 0x81, 0xaf, 0x52, 0xbf, 0xc3, 0x47, 0x0c, 0x3c, 0x95, 0x82, 0x13, 0x8d, 0x22, 0x55, 0xe8, 0x42, 0x6d, 0x64, 0x8c, 0xa2, 0x37, 0xd7, 0xaa, 0xd2, 0x85, 0x6f, 0x17, 0x16, 0x38, 0x55, 0x82, 0x41, 0xd8, 0xae, 0x3f, 0x62, 0xba, 0x92, 0xdb, 0x59, 0x65, 0x68, 0xed, 0xee, 0x3e, 0xc0, 0xef, 0x37, 0x0f, 0x83, 0x62, 0x6a, 0xa0, 0x44, 0x5a, 0xf0, 0x8f, 0x96, 0x78, 0x63, 0x66, 0x0e, 0x8f, 0xba, 0x5a, 0x41, 0xc8, 0xe8, 0xed, 0xe1, 0xc9, 0x60, 0x51, 0x4a, 0x14, 0x68, 0x7a, 0x4a, 0x81, 0xe7, 0x76, 0xae, 0x0e, 0x8e, 0x77, 0x7f, 0xb0, 0xf2, 0x50, 0xd5, 0x1a, 0x83, 0xb5, 0x5f, 0x8c, 0x1f, 0xfd, 0xd7, 0x8d, 0xf3, 0xbd, 0xc9, 0x7f, 0xf1, 0x77, 0xaf, 0xec, 0xa0, 0x46, 0xc7, 0x2d, 0x72, 0xaf, 0x92, 0x4a, 0xd0, 0xd0, 0xab, 0x2b, 0xfc, 0x11, 0xb7, 0xf4, 0xab, 0xde, 0xd5, 0x1c, 0x39, 0x87, 0xa8, 0xbb, 0x94, 0xd6, 0x40, 0xc8, 0x71, 0x0e, 0x5f, 0xc9, 0xa4, 0x19, 0x0e, 0x8a, 0x00, 0x83, 0x63, 0xd7, 0x41, 0x9c, 0xea, 0x17, 0xc4, 0x0d, 0xea, 0x20, 0xea, 0x51, 0x56, 0x02, 0x9f, 0x3d, 0xeb, 0xf0, 0x52, 0x41, 0x91, 0x8f, 0x54, 0xaf, 0x50, 0x39, 0xe2, 0xc4, 0xcf, 0x2c, 0xa2, 0xe1, 0x39, 0xf6, 0x0e, 0x45, 0xcc, 0x65, 0x59, 0x5c, 0xdf, 0x54, 0xa6, 0x7d, 0x92, 0xb6, 0xac, 0x66, 0xfc, 0x0c, 0x5a, 0x29, 0x04, 0x95, 0xca, 0x57, 0xb0, 0x7e, 0xf5, 0x75, 0x0d, 0x05, 0xf5, 0x7d, 0x87, 0xd0, 0xc2, 0x28, 0xf7, 0xe4, 0xe1, 0x5a, 0xd0, 0xba, 0x01, 0x78, 0x73, 0x0f, 0x95, 0x1c, 0x69, 0x75, 0x83, 0x48, 0x1c, 0x66, 0xcb, 0xfc, 0xd4, 0x80, 0x32, 0x54, 0x4a, 0xa8, 0xd5, 0x09, 0x08, 0x30, 0x4b, 0xd8, 0x19, 0x40, 0x30, 0x87, 0x06, };
9981 static const u8 ed25519_434_test_vectors_expected_sig[] = {
9982 	0x74, 0x64, 0xdf, 0x0b, 0x67, 0xeb, 0x90, 0xb4, 0xb7, 0x3f, 0xf0, 0x82, 0xad, 0x0d, 0x60, 0xeb, 0xfe, 0x06, 0x60, 0xda, 0xe9, 0x70, 0x69, 0xb5, 0x2c, 0x37, 0x27, 0x22, 0x3b, 0xf7, 0x0e, 0x29, 0xe4, 0x87, 0x11, 0xa2, 0xbb, 0xb4, 0x38, 0xf5, 0xf8, 0xd8, 0xa3, 0x3b, 0xb9, 0xc4, 0x8f, 0xe7, 0xb6, 0x28, 0xfa, 0x8a, 0x54, 0x2f, 0xf0, 0xb5, 0xae, 0x36, 0x26, 0x9d, 0x40, 0x07, 0xa5, 0x05, };
9983 static const ec_test_case ed25519_434_test_case = {
9984 	.name = "EDDSA25519-SHA512/wei25519 434",
9985 	.ec_str_p = &wei25519_str_params,
9986 	.priv_key = ed25519_434_test_vectors_priv_key,
9987 	.priv_key_len = sizeof(ed25519_434_test_vectors_priv_key),
9988 	.nn_random = NULL,
9989 	.hash_type = SHA512,
9990 	.msg = (const char *)ed25519_434_test_vectors_message,
9991 	.msglen = sizeof(ed25519_434_test_vectors_message),
9992 	.sig_type = EDDSA25519,
9993 	.exp_sig = ed25519_434_test_vectors_expected_sig,
9994 	.exp_siglen = sizeof(ed25519_434_test_vectors_expected_sig),
9995 	.adata = NULL,
9996 	.adata_len = 0
9997 };
9998 
9999 /************************************************/
10000 static const u8 ed25519_435_test_vectors_priv_key[] = {
10001 	0xda, 0x59, 0xbb, 0xc5, 0x23, 0x40, 0x4f, 0x07, 0x64, 0x6a, 0xdd, 0x79, 0x08, 0x29, 0x49, 0x77, 0xe4, 0x66, 0x45, 0xbc, 0x8a, 0x38, 0xba, 0xd2, 0x80, 0x96, 0x41, 0xa2, 0x3d, 0xe3, 0xb1, 0x5a, };
10002 static const u8 ed25519_435_test_vectors_message[] = {
10003 	0x09, 0x71, 0x06, 0xc3, 0x62, 0x4d, 0x77, 0x4d, 0xde, 0x25, 0x51, 0xe0, 0xc2, 0x7e, 0x19, 0x50, 0x4e, 0x65, 0x18, 0xcc, 0x86, 0x36, 0x9a, 0xb2, 0x6f, 0xf8, 0x10, 0x96, 0x9e, 0x7d, 0xe2, 0x4a, 0xbc, 0x68, 0xb4, 0xb5, 0x3f, 0x11, 0xd9, 0x45, 0xd4, 0x9e, 0xf0, 0x78, 0xeb, 0x4f, 0x6b, 0xa6, 0xbf, 0x25, 0x7f, 0xf7, 0xb6, 0x08, 0xaf, 0xdc, 0xb3, 0x0a, 0x5c, 0x59, 0xa7, 0x56, 0xfd, 0x77, 0xa6, 0xc1, 0x24, 0x7f, 0x6f, 0x2a, 0x41, 0x10, 0x0d, 0x99, 0xfc, 0x52, 0x06, 0xaf, 0x3b, 0xcc, 0x6d, 0xe1, 0xd3, 0xe4, 0x96, 0x8e, 0x28, 0xfb, 0xa0, 0x12, 0x3f, 0x60, 0x45, 0xa1, 0xb5, 0x4d, 0x69, 0x3a, 0x42, 0xbd, 0xfa, 0x07, 0x1b, 0x2b, 0x91, 0x4b, 0x3c, 0x3c, 0x0c, 0x29, 0xb2, 0x59, 0x3d, 0x07, 0xe8, 0xbd, 0xc8, 0x6c, 0xa4, 0x2a, 0xc5, 0x55, 0xb7, 0xdc, 0xd9, 0x43, 0x9d, 0xf9, 0xfb, 0xd4, 0xbb, 0xec, 0x73, 0x0d, 0x63, 0x27, 0xbf, 0xae, 0x4f, 0xc4, 0x1e, 0xd4, 0x98, 0xb4, 0xf0, 0x4a, 0x0e, 0xb1, 0x4c, 0xee, 0x60, 0x82, 0x83, 0xaa, 0xa6, 0xe6, 0xaa, 0x46, 0x67, 0x6b, 0xc8, 0x8a, 0xed, 0x5d, 0x99, 0x39, 0x03, 0x7a, 0xad, 0x49, 0x15, 0x66, 0x1a, 0xf9, 0x4b, 0xb5, 0xf6, 0xe6, 0x53, 0xa2, 0xca, 0xc1, 0x23, 0x28, 0x70, 0x73, 0x27, 0x0e, 0x0b, 0x13, 0xfd, 0xa1, 0xdd, 0x48, 0x71, 0xaf, 0x6a, 0x92, 0xf9, 0x92, 0xf5, 0x39, 0xdf, 0x88, 0x17, 0x12, 0xfe, 0xfb, 0x03, 0x85, 0x40, 0xd4, 0x11, 0x91, 0x12, 0x3b, 0x6b, 0x3b, 0x4b, 0x6f, 0xf8, 0x7f, 0xfc, 0x92, 0x9a, 0x6b, 0xe5, 0x3c, 0x6c, 0xef, 0x02, 0xf4, 0x8f, 0x2f, 0x0c, 0xf2, 0xfe, 0x64, 0xa4, 0x5f, 0xd6, 0x60, 0x25, 0xcc, 0x2d, 0x7e, 0xe5, 0x5e, 0xbe, 0x23, 0x16, 0xc0, 0x00, 0x85, 0x56, 0x61, 0x16, 0x5e, 0x2a, 0x5b, 0xa4, 0x1a, 0xfc, 0x20, 0x97, 0x95, 0x7b, 0x6f, 0xe4, 0xc5, 0x52, 0x21, 0x20, 0x4b, 0x6f, 0xc1, 0xf3, 0x17, 0xdd, 0x3b, 0xa1, 0x3c, 0xac, 0x39, 0x92, 0x40, 0x26, 0xbd, 0xb6, 0x6b, 0xe4, 0x54, 0x22, 0x68, 0x87, 0x56, 0x31, 0xd2, 0x77, 0xf2, 0x10, 0x10, 0x7a, 0x33, 0x76, 0x7f, 0x6d, 0x95, 0x96, 0xe2, 0x57, 0x42, 0xd7, 0xa9, 0x0e, 0xa7, 0x91, 0xea, 0x4b, 0xc9, 0xee, 0x84, 0xa6, 0x7f, 0xd3, 0x28, 0xb8, 0x0f, 0x79, 0x1e, 0xde, 0x96, 0xd8, 0x96, 0x63, 0xe9, 0x37, 0xf0, 0xb7, 0x55, 0xba, 0xa9, 0xd5, 0x2b, 0xda, 0x21, 0x0c, 0xee, 0x1d, 0xb3, 0x39, 0xff, 0x1d, 0x3c, 0x4b, 0x00, 0x0b, 0x65, 0x3b, 0x9b, 0xde, 0x33, 0x80, 0x49, 0xaf, 0x84, 0x36, 0x4e, 0x21, 0x77, 0xf8, 0x0d, 0xd5, 0x1e, 0x2a, 0x16, 0x72, 0xee, 0x55, 0x5d, 0x63, 0x17, 0x58, 0x9f, 0x6f, 0x1d, 0x5a, 0xbe, 0x6c, 0x28, 0x77, 0x35, 0x8b, 0xf9, 0x4b, 0x0b, 0x80, 0x8f, 0xf8, 0x57, 0x36, 0x3f, 0xbf, 0xbe, 0x32, 0xe9, 0x73, 0x37, 0xe4, 0xb8, 0xa8, 0xc2, 0x21, 0xa9, 0xe7, 0x59, 0x62, 0xa8, 0xdc, 0x9b, 0x5a, 0x3d, 0x7c, 0xa5, 0xf9, 0xc9, 0xb6, 0x1c, 0x73, 0xc1, 0x46, 0x9a, 0x72, 0xbd, };
10004 static const u8 ed25519_435_test_vectors_expected_sig[] = {
10005 	0x14, 0x72, 0x45, 0x9c, 0xbb, 0xae, 0x2c, 0xf2, 0x1c, 0xe4, 0x4a, 0x15, 0xba, 0xe9, 0xfc, 0x85, 0xdc, 0xa4, 0x0b, 0x81, 0x82, 0xda, 0x7d, 0x52, 0xcb, 0xf5, 0x6e, 0xd5, 0x38, 0xd1, 0x8e, 0x03, 0x47, 0x7c, 0x14, 0x0a, 0x3d, 0xdd, 0x0e, 0xfb, 0xa4, 0x3c, 0x96, 0xaa, 0x92, 0xf5, 0xf9, 0xbc, 0xdf, 0x34, 0x81, 0x28, 0x6c, 0xe7, 0x62, 0xa7, 0xe2, 0xbd, 0x1e, 0x77, 0x9b, 0xa9, 0x9b, 0x0d, };
10006 static const ec_test_case ed25519_435_test_case = {
10007 	.name = "EDDSA25519-SHA512/wei25519 435",
10008 	.ec_str_p = &wei25519_str_params,
10009 	.priv_key = ed25519_435_test_vectors_priv_key,
10010 	.priv_key_len = sizeof(ed25519_435_test_vectors_priv_key),
10011 	.nn_random = NULL,
10012 	.hash_type = SHA512,
10013 	.msg = (const char *)ed25519_435_test_vectors_message,
10014 	.msglen = sizeof(ed25519_435_test_vectors_message),
10015 	.sig_type = EDDSA25519,
10016 	.exp_sig = ed25519_435_test_vectors_expected_sig,
10017 	.exp_siglen = sizeof(ed25519_435_test_vectors_expected_sig),
10018 	.adata = NULL,
10019 	.adata_len = 0
10020 };
10021 
10022 /************************************************/
10023 static const u8 ed25519_436_test_vectors_priv_key[] = {
10024 	0x40, 0xea, 0x82, 0xda, 0x41, 0xfd, 0x15, 0xb0, 0x6f, 0xfe, 0xb9, 0x9c, 0xd6, 0x16, 0xdc, 0x6b, 0xc8, 0xc1, 0xb2, 0x14, 0x77, 0xea, 0x23, 0x94, 0x66, 0x08, 0x8e, 0x28, 0x49, 0xbf, 0x10, 0x16, };
10025 static const u8 ed25519_436_test_vectors_message[] = {
10026 	0xa0, 0x6c, 0x4e, 0x02, 0xb8, 0x3a, 0xb7, 0xe1, 0x91, 0xad, 0x81, 0x8c, 0xb8, 0x18, 0x7b, 0x52, 0xa8, 0xda, 0x00, 0x4f, 0xe8, 0x38, 0xdb, 0x33, 0x3c, 0x4e, 0x02, 0x54, 0x8d, 0xb6, 0xbd, 0xf7, 0x91, 0x44, 0x46, 0x42, 0xe5, 0x7f, 0xdb, 0xc8, 0x59, 0x4e, 0x59, 0xd7, 0x02, 0x32, 0x80, 0xbb, 0xae, 0x82, 0x98, 0x6f, 0x39, 0x98, 0x05, 0x43, 0x4b, 0xb0, 0x72, 0xc8, 0xa2, 0x7a, 0x2d, 0xcd, 0x5a, 0xa6, 0x2f, 0x06, 0x5b, 0xc5, 0x8b, 0x06, 0x21, 0xfc, 0xd3, 0x65, 0xf6, 0xcd, 0xbf, 0x4d, 0x57, 0xd5, 0x77, 0xd9, 0x11, 0x50, 0x30, 0x1f, 0xa4, 0x8f, 0x18, 0x2f, 0x87, 0xe8, 0xdc, 0xa7, 0xce, 0x45, 0xa7, 0xd6, 0x48, 0x45, 0xff, 0x43, 0x4d, 0x1b, 0xab, 0x05, 0x34, 0xcc, 0xc8, 0x3a, 0xa0, 0x97, 0x4e, 0x88, 0xb3, 0x8f, 0xc2, 0x50, 0x8c, 0xef, 0xcb, 0xbc, 0x82, 0x13, 0x5b, 0x73, 0xb3, 0x84, 0xc8, 0x0e, 0xcc, 0xb8, 0xa0, 0x9e, 0x28, 0x73, 0xcc, 0x07, 0x12, 0x90, 0x21, 0xd8, 0x1c, 0xe1, 0x29, 0xa9, 0xdf, 0x65, 0xe6, 0x13, 0x41, 0x0a, 0xf9, 0x50, 0x19, 0x7d, 0xbf, 0x9a, 0xfc, 0x28, 0xed, 0xc4, 0xe6, 0x5c, 0x3e, 0x84, 0xda, 0x40, 0xd2, 0xef, 0x84, 0x1b, 0x88, 0x6b, 0xc4, 0x47, 0x19, 0xa5, 0xd5, 0x9d, 0xb2, 0xc6, 0xdc, 0x77, 0x64, 0x01, 0xc8, 0x95, 0xe2, 0xb3, 0xc8, 0x37, 0x83, 0xd7, 0x81, 0x7b, 0xba, 0x68, 0xba, 0xff, 0x59, 0x47, 0x0d, 0x60, 0x15, 0xbb, 0xa8, 0xd9, 0x75, 0xf0, 0xeb, 0x71, 0x2f, 0x3b, 0x89, 0x02, 0x91, 0x28, 0x05, 0x52, 0x3a, 0xa7, 0x1c, 0x90, 0x49, 0x9d, 0xe6, 0x89, 0xd3, 0x1a, 0xe4, 0x4e, 0x21, 0x0b, 0x84, 0x46, 0xf2, 0x48, 0x47, 0x27, 0xcc, 0x49, 0x1b, 0x92, 0xa8, 0xe8, 0xb1, 0x99, 0xd6, 0x28, 0xe1, 0xdf, 0x79, 0xa2, 0x8c, 0x56, 0x1e, 0x5a, 0x7d, 0x88, 0x2e, 0x30, 0x78, 0x7d, 0x08, 0xfb, 0x2d, 0x51, 0x96, 0xba, 0x61, 0x19, 0x63, 0x09, 0xb3, 0xbf, 0x0c, 0x58, 0x24, 0xa3, 0x54, 0x8c, 0x70, 0x00, 0x03, 0xfe, 0x99, 0x13, 0xbe, 0xfe, 0x12, 0x22, 0x31, 0x50, 0x01, 0x26, 0x85, 0xe9, 0x07, 0x20, 0xe9, 0xec, 0x6b, 0xc4, 0xdb, 0x60, 0x74, 0x25, 0xae, 0xc5, 0x31, 0xc4, 0xfa, 0x36, 0x08, 0x6d, 0x3b, 0x9b, 0xe3, 0x91, 0xa3, 0xf0, 0x46, 0x35, 0xa8, 0x07, 0x7a, 0x44, 0x7a, 0x16, 0xa6, 0xfd, 0x89, 0xaf, 0xbb, 0x9a, 0x72, 0xd0, 0xd3, 0x55, 0xcb, 0x0b, 0x22, 0xd5, 0x62, 0xf4, 0x3f, 0x59, 0xd4, 0xe3, 0x71, 0x28, 0xb3, 0xe2, 0xd9, 0x06, 0xc8, 0xae, 0x23, 0xd0, 0xaa, 0x59, 0x9c, 0x70, 0xd3, 0x77, 0x8a, 0x07, 0x6c, 0x1a, 0x39, 0x72, 0x8f, 0x1d, 0x69, 0x37, 0xbd, 0x48, 0xb9, 0x78, 0x74, 0x08, 0x50, 0x56, 0x61, 0x38, 0xd3, 0x48, 0x52, 0xb6, 0x30, 0x75, 0xe8, 0x9a, 0x8e, 0x22, 0x80, 0xed, 0xba, 0x6f, 0x4e, 0xe8, 0xf6, 0x15, 0x11, 0xe9, 0xb7, 0x68, 0xe9, 0x5c, 0x78, 0xd1, 0x97, 0xb6, 0x93, 0xb1, 0x09, 0xe8, 0x88, 0x18, 0xb4, 0x86, 0xa9, 0xdf, 0xdb, 0x74, 0xb4, 0xc5, 0x55, 0x0a, 0xcd, 0xfb, 0xd5, };
10027 static const u8 ed25519_436_test_vectors_expected_sig[] = {
10028 	0xd2, 0x98, 0xfc, 0xc9, 0xa8, 0xec, 0xb7, 0x6a, 0x98, 0xd4, 0xa7, 0x1d, 0xfb, 0x01, 0xd2, 0x76, 0xab, 0x2d, 0x96, 0x70, 0xa9, 0x5b, 0xab, 0x34, 0xcf, 0x1d, 0x83, 0x64, 0x51, 0x6d, 0x1e, 0xbd, 0xb2, 0x39, 0x03, 0x46, 0x02, 0x15, 0x30, 0x71, 0x25, 0xaf, 0xd0, 0x9c, 0x75, 0x8e, 0x98, 0x1a, 0x45, 0x2d, 0xa9, 0x5c, 0x0a, 0xc2, 0xc0, 0xb9, 0x58, 0xc6, 0x91, 0x7e, 0x68, 0x74, 0x19, 0x0d, };
10029 static const ec_test_case ed25519_436_test_case = {
10030 	.name = "EDDSA25519-SHA512/wei25519 436",
10031 	.ec_str_p = &wei25519_str_params,
10032 	.priv_key = ed25519_436_test_vectors_priv_key,
10033 	.priv_key_len = sizeof(ed25519_436_test_vectors_priv_key),
10034 	.nn_random = NULL,
10035 	.hash_type = SHA512,
10036 	.msg = (const char *)ed25519_436_test_vectors_message,
10037 	.msglen = sizeof(ed25519_436_test_vectors_message),
10038 	.sig_type = EDDSA25519,
10039 	.exp_sig = ed25519_436_test_vectors_expected_sig,
10040 	.exp_siglen = sizeof(ed25519_436_test_vectors_expected_sig),
10041 	.adata = NULL,
10042 	.adata_len = 0
10043 };
10044 
10045 /************************************************/
10046 static const u8 ed25519_437_test_vectors_priv_key[] = {
10047 	0x28, 0xbb, 0x81, 0xa1, 0x7d, 0x45, 0x84, 0x75, 0x4d, 0x52, 0x81, 0x8c, 0xd0, 0xf1, 0xf2, 0x1b, 0xaa, 0x77, 0x7e, 0x69, 0x58, 0x44, 0xa1, 0x51, 0x22, 0xac, 0x05, 0x34, 0x4d, 0xdd, 0xc0, 0x27, };
10048 static const u8 ed25519_437_test_vectors_message[] = {
10049 	0x92, 0xe8, 0x4c, 0x7a, 0x55, 0xb0, 0xbe, 0xa0, 0x3e, 0x17, 0xcf, 0xb6, 0x5f, 0x70, 0x85, 0xce, 0x3f, 0x44, 0x5b, 0x15, 0x42, 0xba, 0xe9, 0x97, 0xde, 0x5f, 0x09, 0x2a, 0x24, 0xff, 0x24, 0x33, 0x80, 0x28, 0x6d, 0x13, 0x70, 0x91, 0xa5, 0x98, 0xf3, 0x5e, 0x6d, 0xae, 0x1a, 0x1c, 0x64, 0x8f, 0x5a, 0x49, 0x4c, 0x81, 0x9d, 0xfb, 0x24, 0x06, 0x52, 0xff, 0x90, 0x83, 0x81, 0xf3, 0x2d, 0x70, 0xbc, 0x51, 0x31, 0x00, 0xac, 0xa1, 0x6f, 0xe7, 0x22, 0x02, 0x95, 0xb1, 0xc7, 0x18, 0x35, 0xf1, 0x6d, 0x93, 0x10, 0xa9, 0xd2, 0x7a, 0x04, 0xa9, 0x80, 0xac, 0xe2, 0x97, 0xd5, 0xaf, 0x3f, 0x7c, 0xb7, 0xc7, 0x8b, 0x24, 0x99, 0x7c, 0xcb, 0x41, 0xf5, 0x4e, 0xcb, 0xab, 0x50, 0x7e, 0xb7, 0x3e, 0xa6, 0xa3, 0xed, 0x47, 0x0e, 0x49, 0x59, 0x05, 0x09, 0xf5, 0xd1, 0xe6, 0x03, 0x2a, 0x26, 0x05, 0xdb, 0x87, 0xf4, 0xa9, 0xb9, 0xec, 0x91, 0x60, 0x25, 0x83, 0xf1, 0x4e, 0x2f, 0xe1, 0xbd, 0xb9, 0x00, 0xec, 0xb8, 0x97, 0x11, 0x96, 0xb5, 0x5c, 0x0d, 0x43, 0x34, 0x89, 0xf2, 0x6b, 0xe9, 0xca, 0x15, 0x7c, 0xbd, 0x56, 0x57, 0x28, 0x87, 0xba, 0x85, 0x9f, 0x39, 0x67, 0x4a, 0x8e, 0x0c, 0xa0, 0x8f, 0x2d, 0xbb, 0x0f, 0x27, 0x07, 0x35, 0x51, 0xd0, 0xb1, 0x99, 0x06, 0x85, 0x17, 0x8b, 0x1a, 0xe9, 0xe7, 0x88, 0x54, 0x99, 0x14, 0x3d, 0x9d, 0x72, 0xc8, 0x57, 0x1d, 0x11, 0xe0, 0xd8, 0x5b, 0xf5, 0x8d, 0xf9, 0x4e, 0x2a, 0x74, 0xd9, 0xb6, 0x84, 0x65, 0x57, 0xf9, 0x12, 0x5c, 0xa0, 0x94, 0x4c, 0xe5, 0x71, 0x8d, 0x2c, 0xba, 0xe1, 0x67, 0x2b, 0xa0, 0x2b, 0x84, 0x7c, 0x17, 0xa6, 0xf6, 0xb4, 0x45, 0x63, 0x4d, 0x2f, 0x01, 0x75, 0xa7, 0x5c, 0xf6, 0x88, 0x3c, 0x62, 0xe5, 0xb5, 0x21, 0xc5, 0x71, 0x41, 0xf2, 0x18, 0xb2, 0xfb, 0x09, 0x94, 0xb3, 0x72, 0xa7, 0x16, 0xc4, 0xa2, 0x17, 0x43, 0x4b, 0xea, 0xb7, 0x57, 0x40, 0xb8, 0xe9, 0x1c, 0x62, 0x21, 0x87, 0xd0, 0x3c, 0x85, 0xda, 0x00, 0x1e, 0x00, 0x24, 0x73, 0x12, 0xa4, 0x65, 0x22, 0x5f, 0x5d, 0x6a, 0xf2, 0x32, 0x06, 0x4a, 0x42, 0x7d, 0x30, 0x18, 0x70, 0x0d, 0xed, 0x77, 0x4b, 0x90, 0x26, 0x77, 0x7a, 0x52, 0x75, 0xfc, 0x04, 0x75, 0x46, 0x06, 0xc8, 0x66, 0x00, 0x29, 0x7b, 0xf7, 0xb7, 0x1a, 0xaf, 0xf8, 0xb9, 0xa7, 0x46, 0x67, 0x7a, 0x36, 0x62, 0xf3, 0x75, 0x0e, 0x81, 0xb5, 0x01, 0x66, 0xf6, 0x23, 0x70, 0x00, 0x05, 0x1f, 0xfa, 0x15, 0x86, 0x8d, 0xef, 0xdf, 0x09, 0x00, 0x57, 0x72, 0x2a, 0xe2, 0x29, 0x96, 0x4a, 0x4e, 0xa0, 0x85, 0xe0, 0xdb, 0xc0, 0x4c, 0xe1, 0x99, 0x77, 0x22, 0xc5, 0xbb, 0x65, 0xd2, 0xb4, 0x7e, 0xcb, 0x74, 0x6f, 0xd8, 0x3a, 0x9f, 0x6a, 0x69, 0xc8, 0x15, 0x45, 0xa9, 0xb5, 0x02, 0xf5, 0xe7, 0x6d, 0x31, 0x30, 0xc5, 0xaf, 0xcb, 0x1c, 0x9a, 0xf9, 0x9d, 0x91, 0x87, 0x40, 0x83, 0x7c, 0xe8, 0x9d, 0x7c, 0xd2, 0x13, 0xfe, 0xf2, 0xfd, 0x06, 0x2c, 0xe8, 0x85, 0x0f, 0x69, 0x65, 0x9e, 0x4a, 0xd3, 0x27, };
10050 static const u8 ed25519_437_test_vectors_expected_sig[] = {
10051 	0x9c, 0xe4, 0x5a, 0x07, 0xdb, 0xd2, 0x8d, 0x3f, 0x6f, 0x1b, 0x35, 0x63, 0x0a, 0x3f, 0xd5, 0x6f, 0x1d, 0x54, 0x8f, 0x84, 0xff, 0xb1, 0xc6, 0xae, 0x64, 0xb2, 0x14, 0x98, 0xae, 0x38, 0xe5, 0x96, 0x91, 0x6e, 0x77, 0xf7, 0x99, 0x05, 0xe6, 0x09, 0xfb, 0x1a, 0xe0, 0xda, 0x36, 0x13, 0x8a, 0x80, 0xf2, 0x42, 0x12, 0x21, 0x67, 0x06, 0x80, 0x92, 0xcc, 0x60, 0x57, 0x96, 0xc5, 0x66, 0x9e, 0x06, };
10052 static const ec_test_case ed25519_437_test_case = {
10053 	.name = "EDDSA25519-SHA512/wei25519 437",
10054 	.ec_str_p = &wei25519_str_params,
10055 	.priv_key = ed25519_437_test_vectors_priv_key,
10056 	.priv_key_len = sizeof(ed25519_437_test_vectors_priv_key),
10057 	.nn_random = NULL,
10058 	.hash_type = SHA512,
10059 	.msg = (const char *)ed25519_437_test_vectors_message,
10060 	.msglen = sizeof(ed25519_437_test_vectors_message),
10061 	.sig_type = EDDSA25519,
10062 	.exp_sig = ed25519_437_test_vectors_expected_sig,
10063 	.exp_siglen = sizeof(ed25519_437_test_vectors_expected_sig),
10064 	.adata = NULL,
10065 	.adata_len = 0
10066 };
10067 
10068 /************************************************/
10069 static const u8 ed25519_438_test_vectors_priv_key[] = {
10070 	0x24, 0xbf, 0xd4, 0xfc, 0x45, 0xd5, 0x09, 0x35, 0x85, 0x67, 0x81, 0x01, 0xcf, 0x56, 0x3a, 0xb8, 0x01, 0x1f, 0xd6, 0x43, 0x0d, 0xe1, 0x55, 0xf2, 0xa4, 0x25, 0xf0, 0x63, 0x3e, 0xe3, 0xb7, 0xcd, };
10071 static const u8 ed25519_438_test_vectors_message[] = {
10072 	0xba, 0x54, 0x12, 0x8f, 0x45, 0xbe, 0x20, 0x01, 0xdb, 0xb0, 0x60, 0xd5, 0xdc, 0xc4, 0x71, 0x44, 0x99, 0x74, 0x15, 0xd4, 0x29, 0x4f, 0x6e, 0xba, 0x8d, 0xce, 0xba, 0x4f, 0x6c, 0xf2, 0x23, 0x46, 0x83, 0xc4, 0x26, 0x5f, 0x88, 0x03, 0x22, 0x05, 0x29, 0x6e, 0x9b, 0x27, 0xd6, 0x85, 0x06, 0x23, 0x2d, 0x57, 0xb6, 0x88, 0x40, 0x76, 0x48, 0xf8, 0x7c, 0xeb, 0x34, 0x20, 0x52, 0xbd, 0xe9, 0xd0, 0x06, 0x55, 0x42, 0xff, 0x17, 0x15, 0xc9, 0x42, 0x02, 0x7e, 0x67, 0x48, 0x2a, 0xf4, 0xbc, 0x27, 0x8f, 0xf7, 0x19, 0x66, 0xfb, 0x3f, 0x62, 0xa2, 0xa5, 0x32, 0x3c, 0xb1, 0xb4, 0xba, 0xe1, 0xe7, 0xb8, 0xfe, 0xdc, 0xbc, 0x73, 0xea, 0x05, 0xb4, 0x07, 0x64, 0x21, 0xb0, 0xb4, 0xfa, 0xe8, 0xbc, 0x33, 0x37, 0x41, 0x6a, 0x17, 0xfe, 0x12, 0x4e, 0x7e, 0xe4, 0x65, 0xeb, 0xb3, 0x8d, 0x87, 0x92, 0x30, 0x64, 0x29, 0xd8, 0x27, 0x9a, 0x1b, 0xd5, 0x4c, 0x37, 0xbe, 0xe8, 0xf9, 0xc8, 0x5e, 0xeb, 0xe3, 0xaf, 0xd1, 0xf6, 0x44, 0x89, 0xd4, 0xe5, 0x3a, 0xc5, 0xf5, 0x06, 0x57, 0xbb, 0x6f, 0xfb, 0x97, 0x12, 0x07, 0x44, 0xb7, 0x5d, 0x47, 0xc6, 0x22, 0x6d, 0x5a, 0x9c, 0x9c, 0x26, 0x4e, 0xe3, 0xe6, 0xa6, 0xde, 0xd0, 0x50, 0x62, 0xca, 0x10, 0x06, 0x66, 0x91, 0x18, 0x45, 0x45, 0x50, 0x01, 0x09, 0x19, 0xc2, 0x63, 0x3c, 0xf0, 0x86, 0x95, 0x03, 0x45, 0xe5, 0x14, 0xaf, 0x38, 0x43, 0x14, 0x8e, 0x5c, 0x64, 0x35, 0x2e, 0x69, 0x03, 0x7d, 0xfe, 0x60, 0xd4, 0xa8, 0xea, 0xb3, 0xeb, 0x8c, 0xb5, 0x4b, 0xd3, 0x9a, 0xf2, 0xf3, 0x53, 0xd5, 0xde, 0xd2, 0xe2, 0xbc, 0x8b, 0x11, 0xc0, 0x9f, 0x61, 0x2e, 0x12, 0x8c, 0x6e, 0xfa, 0x41, 0xf6, 0xeb, 0x2c, 0x95, 0x80, 0x87, 0xbe, 0x34, 0xc6, 0x33, 0x5a, 0x43, 0x00, 0x5d, 0x11, 0xa9, 0xd3, 0xb5, 0xa5, 0x29, 0xc2, 0xd1, 0xb0, 0x64, 0x2f, 0x77, 0xaf, 0xdd, 0x8c, 0x6b, 0x1d, 0x6f, 0xb2, 0xa9, 0xdc, 0xb6, 0x5f, 0x42, 0xf4, 0xec, 0xa8, 0xea, 0x9a, 0x05, 0x40, 0x58, 0xbe, 0x86, 0x13, 0x66, 0x76, 0x10, 0xe3, 0xee, 0xd8, 0xd1, 0xdf, 0x07, 0x39, 0xec, 0xa1, 0x71, 0x95, 0x41, 0x17, 0x98, 0x9d, 0x1b, 0x12, 0x18, 0x9a, 0xb5, 0x79, 0x04, 0xaa, 0x96, 0x0b, 0x0c, 0xa8, 0x55, 0x41, 0x74, 0x63, 0x85, 0xef, 0xa9, 0x85, 0xbe, 0x9d, 0x97, 0xb5, 0xa9, 0x02, 0x99, 0x89, 0xa9, 0xc7, 0x14, 0x98, 0xdf, 0xab, 0xdb, 0x81, 0x36, 0x81, 0xf5, 0x7e, 0x27, 0x6b, 0x64, 0xdb, 0x49, 0x1b, 0x8f, 0x08, 0x2a, 0x88, 0x51, 0x45, 0x46, 0x9a, 0x53, 0x1b, 0x7f, 0x9f, 0x04, 0xca, 0x0a, 0x2c, 0x2f, 0x8d, 0xff, 0x20, 0xcc, 0xb9, 0x9c, 0x28, 0x61, 0xf5, 0x4e, 0x5e, 0xaf, 0xa9, 0x62, 0xcc, 0x53, 0xea, 0xf1, 0x8d, 0x3d, 0x5e, 0x50, 0xd3, 0x37, 0xaf, 0x48, 0x5f, 0x19, 0x97, 0x5f, 0x05, 0x93, 0x07, 0x00, 0xa8, 0xa7, 0x25, 0x3f, 0x11, 0xf1, 0x84, 0x13, 0x0d, 0x0a, 0xee, 0x70, 0x96, 0x9d, 0x96, 0xfe, 0x08, 0xf2, 0x16, 0x95, 0x1d, 0x9d, 0xce, 0xd5, 0x23, 0x88, };
10073 static const u8 ed25519_438_test_vectors_expected_sig[] = {
10074 	0xdc, 0x93, 0x5b, 0x60, 0xfd, 0xe4, 0x43, 0x59, 0xaf, 0x8f, 0x50, 0xed, 0x7f, 0x91, 0x9f, 0x48, 0x3c, 0xe3, 0xf2, 0x4e, 0x23, 0x20, 0xc5, 0x5b, 0xa9, 0x2f, 0x3e, 0x76, 0x17, 0xc1, 0x9b, 0xfb, 0x54, 0x70, 0x19, 0x03, 0xff, 0x18, 0x3b, 0x42, 0xcb, 0xed, 0xfe, 0xf0, 0x87, 0x5f, 0x42, 0xb1, 0x28, 0x75, 0xd3, 0x6a, 0x0a, 0xee, 0xc7, 0x3f, 0xfd, 0x09, 0x50, 0x9d, 0x92, 0xb2, 0x8b, 0x0d, };
10075 static const ec_test_case ed25519_438_test_case = {
10076 	.name = "EDDSA25519-SHA512/wei25519 438",
10077 	.ec_str_p = &wei25519_str_params,
10078 	.priv_key = ed25519_438_test_vectors_priv_key,
10079 	.priv_key_len = sizeof(ed25519_438_test_vectors_priv_key),
10080 	.nn_random = NULL,
10081 	.hash_type = SHA512,
10082 	.msg = (const char *)ed25519_438_test_vectors_message,
10083 	.msglen = sizeof(ed25519_438_test_vectors_message),
10084 	.sig_type = EDDSA25519,
10085 	.exp_sig = ed25519_438_test_vectors_expected_sig,
10086 	.exp_siglen = sizeof(ed25519_438_test_vectors_expected_sig),
10087 	.adata = NULL,
10088 	.adata_len = 0
10089 };
10090 
10091 /************************************************/
10092 static const u8 ed25519_439_test_vectors_priv_key[] = {
10093 	0x2f, 0xc2, 0xf9, 0xb2, 0x05, 0x0a, 0xd7, 0xd1, 0x39, 0x27, 0x3e, 0x93, 0xe2, 0xa0, 0x45, 0x1c, 0x7b, 0x5c, 0xce, 0x57, 0x59, 0x9a, 0xa6, 0xb0, 0x8d, 0x3e, 0xdc, 0x5b, 0xb0, 0x75, 0x90, 0xc8, };
10094 static const u8 ed25519_439_test_vectors_message[] = {
10095 	0xdc, 0x12, 0x97, 0x99, 0x0c, 0xc0, 0x27, 0xd5, 0x6d, 0x1f, 0xee, 0x26, 0x5c, 0x09, 0xbc, 0xf2, 0x07, 0xa9, 0x58, 0x3e, 0x6b, 0xab, 0x8d, 0x32, 0x47, 0x82, 0x28, 0xe0, 0xbc, 0x30, 0x5b, 0x98, 0x18, 0x15, 0x4c, 0x33, 0x8c, 0xee, 0xc3, 0x4b, 0x04, 0xc4, 0xad, 0xe7, 0xac, 0x61, 0xdc, 0xb0, 0x9b, 0xfa, 0xc8, 0xad, 0xe0, 0x0d, 0x1f, 0x29, 0xde, 0x31, 0x70, 0x60, 0xb8, 0xa4, 0xda, 0xf1, 0x98, 0x7d, 0xe4, 0x09, 0xca, 0x2c, 0x3f, 0xe4, 0x38, 0x00, 0x88, 0x07, 0x3c, 0xcf, 0x48, 0x5e, 0x9a, 0x69, 0x51, 0x6b, 0x5b, 0xbb, 0x41, 0x30, 0xf2, 0x0b, 0xe6, 0x9b, 0x2d, 0xd6, 0xa9, 0xb4, 0x65, 0x15, 0x9c, 0xca, 0x1a, 0xc8, 0x8b, 0x32, 0x8b, 0x80, 0xc5, 0x1b, 0x66, 0xaf, 0x7f, 0x4c, 0x50, 0xf6, 0x22, 0x87, 0x72, 0xf2, 0x87, 0x34, 0x69, 0x3c, 0xe4, 0x80, 0x5a, 0x41, 0x63, 0xdf, 0xf1, 0x4b, 0x4d, 0x03, 0x98, 0x11, 0xee, 0x3f, 0xce, 0x65, 0x93, 0x54, 0x44, 0xa6, 0xea, 0x9a, 0x72, 0xd7, 0x8b, 0x91, 0x5c, 0x9c, 0x3b, 0x76, 0x6c, 0x60, 0xb7, 0xe0, 0x32, 0x9e, 0x43, 0xc9, 0xc5, 0x7e, 0xde, 0x94, 0xb9, 0x15, 0x25, 0xce, 0x5a, 0x07, 0x5a, 0x72, 0x97, 0x21, 0x97, 0x72, 0xef, 0x3c, 0x02, 0x96, 0x49, 0xb5, 0x86, 0xa9, 0x5a, 0x73, 0xbb, 0xdf, 0x16, 0xd8, 0xfc, 0x20, 0x36, 0x8d, 0xe4, 0xba, 0x44, 0xde, 0x10, 0x64, 0xbe, 0x58, 0x26, 0xb3, 0x76, 0xbe, 0x31, 0xa8, 0x6c, 0xa4, 0x78, 0xa5, 0x2e, 0xfb, 0x98, 0xf1, 0xfa, 0x33, 0x31, 0x57, 0x71, 0x9b, 0xd6, 0xe0, 0xda, 0x80, 0xed, 0x68, 0xd0, 0xef, 0xea, 0xfe, 0xe5, 0xa1, 0x3b, 0xcc, 0x3b, 0x45, 0x75, 0x25, 0x25, 0x8f, 0x1f, 0x7e, 0x03, 0x1f, 0x7b, 0x40, 0x3a, 0x46, 0x15, 0x06, 0x92, 0x7b, 0x1e, 0x6c, 0x7d, 0x4a, 0x0c, 0x8d, 0x84, 0xb5, 0xf3, 0xdd, 0x0e, 0xb8, 0xbd, 0xb1, 0x3e, 0xdc, 0x2b, 0x51, 0x4a, 0x81, 0xd0, 0x88, 0xeb, 0x07, 0x7a, 0x52, 0xc8, 0xa8, 0x31, 0x86, 0x1f, 0xee, 0xe8, 0x11, 0x0e, 0x41, 0xa3, 0x25, 0xdc, 0xe2, 0x06, 0xb2, 0xd6, 0x7d, 0x25, 0xf9, 0x0e, 0xf5, 0x7e, 0x0f, 0xde, 0x70, 0x9f, 0x3e, 0x5a, 0x39, 0xc0, 0x4e, 0xed, 0x31, 0xe5, 0x7c, 0x19, 0x3b, 0x28, 0x3e, 0x2d, 0xa7, 0x27, 0x9e, 0xe3, 0xf1, 0xee, 0xd4, 0x82, 0xb3, 0xbb, 0xcd, 0x37, 0x39, 0x02, 0xc1, 0xdf, 0x81, 0x1a, 0xc3, 0x3e, 0x1d, 0xe0, 0x64, 0x29, 0xe8, 0xf8, 0x44, 0x3f, 0x60, 0x20, 0x19, 0x65, 0x0b, 0xdc, 0x2e, 0xe8, 0xd7, 0xf6, 0x50, 0x03, 0x6a, 0x7a, 0x22, 0xb8, 0xfd, 0x88, 0x51, 0x75, 0x11, 0x22, 0x9c, 0x72, 0x9a, 0x32, 0x69, 0xb3, 0xa3, 0xe8, 0xfc, 0x72, 0xb0, 0x1b, 0x5a, 0x4b, 0x3e, 0x33, 0xf5, 0x27, 0x2f, 0x3a, 0xd2, 0x16, 0x29, 0xd0, 0x8b, 0x1f, 0x71, 0x79, 0x35, 0xe9, 0xe1, 0x04, 0xad, 0xd2, 0xf0, 0xf2, 0x03, 0x34, 0x32, 0xbe, 0xc8, 0x2e, 0x21, 0x21, 0xd9, 0x8c, 0x9c, 0x1a, 0x58, 0xe0, 0xda, 0xba, 0x25, 0x53, 0x6a, 0x1b, 0xe8, 0xe5, 0x08, 0x83, 0x47, 0xf4, 0xa1, 0x4e, 0x48, 0xd8, 0xe3, };
10096 static const u8 ed25519_439_test_vectors_expected_sig[] = {
10097 	0x7a, 0xff, 0x16, 0x2a, 0x3c, 0x0d, 0x28, 0xdf, 0xf4, 0x17, 0x15, 0xa9, 0x74, 0xaf, 0x07, 0xec, 0xac, 0x21, 0x32, 0xfc, 0x18, 0xbc, 0x43, 0xa1, 0x98, 0xfe, 0x66, 0x46, 0x59, 0x05, 0x0d, 0xa1, 0x9a, 0xe2, 0x27, 0x58, 0xd5, 0x2c, 0x9c, 0xbb, 0x94, 0xf1, 0x35, 0x8b, 0xb0, 0x26, 0x10, 0xa8, 0xa3, 0x51, 0xc2, 0x11, 0x62, 0x79, 0xe7, 0x24, 0x5a, 0xdf, 0x69, 0x67, 0x5d, 0xfd, 0x36, 0x0a, };
10098 static const ec_test_case ed25519_439_test_case = {
10099 	.name = "EDDSA25519-SHA512/wei25519 439",
10100 	.ec_str_p = &wei25519_str_params,
10101 	.priv_key = ed25519_439_test_vectors_priv_key,
10102 	.priv_key_len = sizeof(ed25519_439_test_vectors_priv_key),
10103 	.nn_random = NULL,
10104 	.hash_type = SHA512,
10105 	.msg = (const char *)ed25519_439_test_vectors_message,
10106 	.msglen = sizeof(ed25519_439_test_vectors_message),
10107 	.sig_type = EDDSA25519,
10108 	.exp_sig = ed25519_439_test_vectors_expected_sig,
10109 	.exp_siglen = sizeof(ed25519_439_test_vectors_expected_sig),
10110 	.adata = NULL,
10111 	.adata_len = 0
10112 };
10113 
10114 /************************************************/
10115 static const u8 ed25519_440_test_vectors_priv_key[] = {
10116 	0x8a, 0xfe, 0x33, 0xa0, 0xc0, 0x8a, 0xa3, 0x48, 0x7a, 0x97, 0xdf, 0x9f, 0x01, 0xf0, 0x5b, 0x23, 0x27, 0x7d, 0xf0, 0xbb, 0x7e, 0x4c, 0xe3, 0x95, 0x22, 0xae, 0xc3, 0xd1, 0x78, 0x16, 0xe4, 0x67, };
10117 static const u8 ed25519_440_test_vectors_message[] = {
10118 	0x86, 0xfb, 0x74, 0x1f, 0x1b, 0x97, 0x08, 0x92, 0x91, 0x95, 0x03, 0x1a, 0xa1, 0x64, 0x5f, 0xb7, 0x09, 0xa8, 0xae, 0x32, 0x3f, 0xff, 0x85, 0xe5, 0x47, 0x01, 0x94, 0x45, 0x2e, 0x11, 0xb7, 0xb1, 0x27, 0x91, 0x94, 0xb5, 0xe2, 0x42, 0x7c, 0xe2, 0x3e, 0x1d, 0x74, 0x9c, 0x3d, 0xdf, 0x91, 0x0b, 0x01, 0x7e, 0x4f, 0x2d, 0xff, 0x86, 0xdb, 0xe4, 0x82, 0xc9, 0x1b, 0xd9, 0x94, 0xe8, 0x49, 0x3f, 0x2e, 0x68, 0x24, 0xbb, 0xa3, 0xbc, 0x7d, 0x7a, 0x84, 0x5f, 0x21, 0x7a, 0xe9, 0x76, 0x0b, 0x3c, 0xd0, 0x02, 0x26, 0xd9, 0xff, 0x26, 0x16, 0xd4, 0x52, 0x75, 0x1a, 0x90, 0xc3, 0xd0, 0xd3, 0xc3, 0x6d, 0x4a, 0xb4, 0xb2, 0x52, 0x0f, 0x67, 0x28, 0x81, 0x71, 0xbd, 0x3a, 0x34, 0xb2, 0xea, 0xca, 0xe8, 0xd4, 0x4c, 0x1e, 0x15, 0x3d, 0xda, 0x1f, 0x90, 0xbc, 0xd3, 0x59, 0x5d, 0xad, 0x37, 0x71, 0x3b, 0x8d, 0x34, 0x01, 0x56, 0xea, 0x90, 0xa4, 0xe1, 0x35, 0x95, 0x1b, 0xa7, 0x16, 0x9a, 0xc1, 0x75, 0x57, 0x8b, 0x81, 0xe9, 0x7a, 0x54, 0x1a, 0xb9, 0xbf, 0xb7, 0x63, 0x28, 0x79, 0x8d, 0x7d, 0x63, 0x1c, 0x14, 0xdf, 0x2a, 0xd6, 0x13, 0xe9, 0xc6, 0xe1, 0x14, 0x7a, 0x0e, 0x84, 0x06, 0x2d, 0xdb, 0xa0, 0x35, 0x85, 0x9d, 0x46, 0xba, 0xde, 0x5f, 0xad, 0xd9, 0xb3, 0x2b, 0x43, 0xda, 0xd4, 0x83, 0xc6, 0xb8, 0x02, 0x3b, 0x32, 0x39, 0x1e, 0x51, 0xef, 0x15, 0x20, 0xc6, 0x8c, 0x61, 0x91, 0x32, 0x6c, 0x49, 0x44, 0x23, 0x08, 0x0c, 0x62, 0x3d, 0xc4, 0xad, 0x0a, 0xa0, 0x74, 0x74, 0x8d, 0x82, 0x6c, 0x29, 0x64, 0x4c, 0x38, 0x98, 0x6a, 0x77, 0x00, 0x2f, 0x0c, 0xab, 0x90, 0x68, 0xe6, 0xc9, 0xec, 0x73, 0xcc, 0x2e, 0x0c, 0x58, 0x4b, 0x80, 0xe0, 0xbc, 0x37, 0x57, 0x21, 0xf7, 0xa8, 0xfc, 0x35, 0x31, 0x7a, 0x5e, 0x24, 0x0e, 0x8c, 0x66, 0x09, 0x2f, 0xb6, 0x30, 0x5b, 0x01, 0x2c, 0x70, 0xe1, 0x7a, 0xea, 0xff, 0x13, 0x38, 0x6d, 0x5e, 0x28, 0xd0, 0x64, 0x30, 0xca, 0x58, 0x5b, 0x0c, 0x85, 0xb2, 0x74, 0xe7, 0xfc, 0xbb, 0x63, 0xe3, 0x42, 0x3a, 0x98, 0x25, 0x79, 0xe5, 0xa6, 0x4a, 0x02, 0x62, 0xc4, 0x19, 0x08, 0xe5, 0x5d, 0xbe, 0x43, 0xda, 0xc1, 0xe5, 0xcc, 0x1b, 0xb7, 0x29, 0x8b, 0xe4, 0x28, 0x72, 0x0a, 0x12, 0xe3, 0xb0, 0x72, 0x55, 0x9e, 0xc2, 0x67, 0x5d, 0x45, 0x7a, 0xaf, 0x8f, 0x13, 0x25, 0x2e, 0x28, 0xaa, 0xd6, 0x3c, 0x15, 0x13, 0xf5, 0xf2, 0x39, 0x56, 0x4d, 0x36, 0x3c, 0x85, 0x05, 0xff, 0xa4, 0xe5, 0x0f, 0x66, 0x48, 0xc1, 0xcb, 0x82, 0xbb, 0xa8, 0x52, 0xbf, 0xf0, 0xac, 0xb0, 0x30, 0xcb, 0xe7, 0x3f, 0x05, 0x9d, 0xd8, 0x7b, 0xbd, 0x73, 0x18, 0xc5, 0x58, 0x6e, 0x70, 0x86, 0x18, 0xa4, 0xf4, 0xc9, 0xf3, 0xbe, 0xc3, 0xf4, 0xf0, 0x7c, 0x60, 0x9e, 0xeb, 0xb2, 0x4b, 0xa8, 0x78, 0xc6, 0xbf, 0x1e, 0x4f, 0x2d, 0x0f, 0xd1, 0x45, 0x0a, 0xb9, 0x4e, 0x31, 0x75, 0x52, 0x17, 0x78, 0x6f, 0xb1, 0x51, 0x82, 0x76, 0x0f, 0xfb, 0xe5, 0xa2, 0x67, 0xcb, 0xe9, 0x98, 0xa4, 0xff, 0x90, 0xa2, };
10119 static const u8 ed25519_440_test_vectors_expected_sig[] = {
10120 	0x63, 0xa8, 0xae, 0xac, 0x02, 0x5f, 0x2d, 0xde, 0x9a, 0x73, 0x28, 0x6e, 0x56, 0xc2, 0xd6, 0x2d, 0xcb, 0x79, 0xa2, 0x41, 0xba, 0x0b, 0x2e, 0x2d, 0xba, 0xca, 0x87, 0x52, 0xed, 0x2f, 0xc8, 0xcc, 0x7a, 0xb8, 0xe6, 0x60, 0x0b, 0x67, 0x64, 0x5f, 0xb5, 0xe8, 0x18, 0xa4, 0xe8, 0x2c, 0x29, 0x18, 0x0a, 0x6b, 0x2c, 0x3f, 0x58, 0xd0, 0x99, 0xcb, 0x63, 0x5c, 0xe5, 0x2b, 0xdc, 0x15, 0x70, 0x04, };
10121 static const ec_test_case ed25519_440_test_case = {
10122 	.name = "EDDSA25519-SHA512/wei25519 440",
10123 	.ec_str_p = &wei25519_str_params,
10124 	.priv_key = ed25519_440_test_vectors_priv_key,
10125 	.priv_key_len = sizeof(ed25519_440_test_vectors_priv_key),
10126 	.nn_random = NULL,
10127 	.hash_type = SHA512,
10128 	.msg = (const char *)ed25519_440_test_vectors_message,
10129 	.msglen = sizeof(ed25519_440_test_vectors_message),
10130 	.sig_type = EDDSA25519,
10131 	.exp_sig = ed25519_440_test_vectors_expected_sig,
10132 	.exp_siglen = sizeof(ed25519_440_test_vectors_expected_sig),
10133 	.adata = NULL,
10134 	.adata_len = 0
10135 };
10136 
10137 /************************************************/
10138 static const u8 ed25519_441_test_vectors_priv_key[] = {
10139 	0x6d, 0xc7, 0xcc, 0xf3, 0x29, 0x37, 0x8e, 0x81, 0x31, 0xb6, 0xde, 0xfc, 0xd8, 0x93, 0x70, 0x30, 0x10, 0x68, 0x94, 0x63, 0x36, 0xb0, 0xb7, 0x62, 0xac, 0x5e, 0xa5, 0x14, 0x87, 0xdb, 0xd3, 0x9e, };
10140 static const u8 ed25519_441_test_vectors_message[] = {
10141 	0x20, 0xce, 0xbb, 0xe9, 0x84, 0x01, 0xac, 0x89, 0x34, 0xc3, 0xe6, 0x5a, 0x57, 0x38, 0xcb, 0x0e, 0xc0, 0xcd, 0xc7, 0x5f, 0xdb, 0x09, 0xdc, 0x96, 0x31, 0x28, 0x94, 0xb1, 0x87, 0xc0, 0xa4, 0x6d, 0x2c, 0x38, 0xf4, 0x85, 0x5b, 0xe3, 0xee, 0xcc, 0xdc, 0xdc, 0xc5, 0x6d, 0x92, 0x6a, 0x8c, 0x08, 0xce, 0x6e, 0x74, 0x8e, 0x2a, 0x85, 0x8f, 0x53, 0x53, 0x2e, 0x7e, 0x5f, 0xc5, 0xf7, 0x01, 0x4c, 0x8c, 0x6f, 0x86, 0x31, 0x0c, 0xc2, 0x6e, 0xfe, 0xf3, 0x0a, 0xe5, 0x25, 0xa5, 0x15, 0x79, 0x40, 0xab, 0x53, 0x5e, 0xd8, 0xe4, 0x03, 0x11, 0x2b, 0x08, 0xe3, 0x5e, 0x2b, 0xb3, 0xdd, 0x91, 0xa9, 0xae, 0x8f, 0x77, 0x2d, 0x2a, 0xff, 0x37, 0xd8, 0xc4, 0x0d, 0x2b, 0x5c, 0xc8, 0x87, 0xa6, 0xf1, 0x50, 0x50, 0xa0, 0xf5, 0xbc, 0xf0, 0x36, 0x0c, 0x3a, 0x9d, 0x12, 0xd5, 0x91, 0x86, 0x55, 0xed, 0xc3, 0xc1, 0x3c, 0x86, 0xba, 0x6f, 0x4a, 0x2f, 0xa3, 0xbf, 0xcd, 0x40, 0x5e, 0xd3, 0x8f, 0x87, 0x1c, 0xf7, 0xdf, 0xf0, 0xf7, 0x5d, 0xaf, 0x2c, 0x32, 0x10, 0x84, 0xee, 0x9f, 0xa8, 0x12, 0x11, 0xad, 0xb1, 0x05, 0xb2, 0x5c, 0x22, 0x88, 0xf0, 0xf2, 0xf7, 0xf9, 0x3e, 0xf6, 0x56, 0xb2, 0xde, 0x19, 0x01, 0x22, 0xe7, 0xa4, 0xbf, 0xd4, 0xa1, 0xbd, 0x98, 0x93, 0xa8, 0x48, 0x5b, 0x50, 0x9f, 0xf0, 0xbc, 0x46, 0xcc, 0x96, 0x10, 0x51, 0xc1, 0xdb, 0x5a, 0x12, 0x49, 0x0c, 0x7e, 0x74, 0x19, 0x22, 0xcc, 0xc0, 0xa6, 0x65, 0x49, 0x64, 0x70, 0x27, 0x6f, 0x69, 0xc7, 0xb7, 0x70, 0x98, 0xc1, 0xe6, 0x70, 0xaf, 0x6b, 0x9f, 0x85, 0x12, 0x52, 0x99, 0x68, 0x75, 0xeb, 0x80, 0x35, 0xa8, 0x17, 0xfa, 0x9b, 0xe0, 0x7f, 0x2b, 0xe0, 0xbb, 0xb1, 0x20, 0x25, 0xe0, 0x56, 0x54, 0x14, 0xc8, 0x17, 0xe9, 0x42, 0x1a, 0xc7, 0x00, 0x37, 0x38, 0x93, 0x86, 0x2f, 0x24, 0xcb, 0x16, 0x5f, 0x9a, 0x27, 0x1a, 0x64, 0xfd, 0x23, 0x05, 0xc6, 0x67, 0x2c, 0x46, 0x76, 0x7f, 0x8f, 0x07, 0x5b, 0xe5, 0xd2, 0xd4, 0x07, 0x9b, 0xfa, 0xdc, 0x39, 0x56, 0x28, 0x8b, 0x02, 0x15, 0x60, 0x53, 0x11, 0xb5, 0xbf, 0x32, 0xf0, 0x03, 0x7b, 0x7c, 0x5a, 0xd5, 0x02, 0x01, 0x3e, 0x82, 0xae, 0x34, 0x19, 0xd9, 0xd8, 0xf3, 0x9c, 0x54, 0x5b, 0x58, 0x88, 0xf4, 0x71, 0x06, 0xc9, 0x4d, 0x5f, 0xd6, 0x08, 0x4d, 0x26, 0x03, 0x4a, 0x99, 0xf5, 0xdc, 0xbf, 0x26, 0xa8, 0x4e, 0xb4, 0xee, 0x14, 0x9c, 0x62, 0xa0, 0x41, 0x0d, 0x8c, 0x70, 0x7b, 0x1a, 0x9b, 0x07, 0x1f, 0x74, 0xed, 0x23, 0x93, 0x25, 0x85, 0x07, 0x2c, 0xe6, 0xcb, 0xd3, 0x3d, 0x4d, 0x54, 0xee, 0x91, 0x79, 0x16, 0xf5, 0xdf, 0xc6, 0x4d, 0x26, 0xa4, 0x98, 0x01, 0x84, 0x38, 0xb4, 0x55, 0x73, 0x93, 0x45, 0xdd, 0x60, 0xae, 0x0f, 0x47, 0x50, 0x62, 0x59, 0x15, 0xcc, 0x82, 0x9a, 0xb6, 0x82, 0x2d, 0x6f, 0x05, 0xf6, 0xd2, 0xbd, 0xa0, 0xa7, 0xbf, 0x56, 0x01, 0xe9, 0xa2, 0xed, 0x6d, 0xe9, 0x60, 0x37, 0x1d, 0x17, 0xe6, 0xf4, 0x37, 0x09, 0xc9, 0x67, 0x8c, 0xa7, 0x43, 0xad, 0xfb, 0xdb, 0x45, };
10142 static const u8 ed25519_441_test_vectors_expected_sig[] = {
10143 	0x04, 0x50, 0x9d, 0xb0, 0x03, 0xa1, 0xa6, 0xed, 0x3f, 0xbc, 0xec, 0x21, 0xac, 0x44, 0xec, 0x10, 0xcc, 0x06, 0xd7, 0x9f, 0x27, 0x14, 0x96, 0x08, 0x82, 0x17, 0x03, 0x16, 0x27, 0x5d, 0xf8, 0x04, 0x23, 0xa1, 0xc1, 0xa1, 0x12, 0xd8, 0x81, 0xfc, 0x24, 0xd2, 0x81, 0x25, 0x26, 0x07, 0x90, 0x58, 0xaa, 0x8b, 0x60, 0x8b, 0xfc, 0x6b, 0x5e, 0x57, 0x63, 0x22, 0x40, 0xc6, 0x36, 0xd6, 0xeb, 0x00, };
10144 static const ec_test_case ed25519_441_test_case = {
10145 	.name = "EDDSA25519-SHA512/wei25519 441",
10146 	.ec_str_p = &wei25519_str_params,
10147 	.priv_key = ed25519_441_test_vectors_priv_key,
10148 	.priv_key_len = sizeof(ed25519_441_test_vectors_priv_key),
10149 	.nn_random = NULL,
10150 	.hash_type = SHA512,
10151 	.msg = (const char *)ed25519_441_test_vectors_message,
10152 	.msglen = sizeof(ed25519_441_test_vectors_message),
10153 	.sig_type = EDDSA25519,
10154 	.exp_sig = ed25519_441_test_vectors_expected_sig,
10155 	.exp_siglen = sizeof(ed25519_441_test_vectors_expected_sig),
10156 	.adata = NULL,
10157 	.adata_len = 0
10158 };
10159 
10160 /************************************************/
10161 static const u8 ed25519_442_test_vectors_priv_key[] = {
10162 	0xcc, 0xae, 0x07, 0xd2, 0xa0, 0x21, 0xfe, 0x3e, 0x6e, 0xe2, 0x38, 0x36, 0xa7, 0x11, 0xb9, 0x7b, 0x04, 0xe0, 0xa4, 0x41, 0xf1, 0x69, 0x60, 0x75, 0x72, 0x73, 0x1c, 0xb0, 0x8c, 0x26, 0x94, 0x88, };
10163 static const u8 ed25519_442_test_vectors_message[] = {
10164 	0xa4, 0xbf, 0x82, 0x97, 0xd0, 0xdc, 0x5e, 0x4c, 0x92, 0xbd, 0x00, 0xad, 0x5b, 0x9c, 0x09, 0xb1, 0x23, 0x8b, 0x50, 0x3d, 0x61, 0x91, 0x16, 0xef, 0x74, 0x26, 0x03, 0x78, 0x34, 0x9a, 0x92, 0x82, 0xb4, 0x1f, 0x3f, 0x46, 0x76, 0xa6, 0x21, 0x5e, 0x3c, 0xe6, 0xd0, 0x22, 0x38, 0x48, 0x0a, 0x96, 0x04, 0x3b, 0x29, 0x42, 0xb3, 0xfe, 0xed, 0x12, 0x62, 0x0b, 0x1f, 0xa9, 0x7f, 0x77, 0x03, 0xb3, 0xeb, 0x68, 0x3c, 0x16, 0x01, 0xbd, 0x2f, 0x51, 0x82, 0x5c, 0x45, 0x0d, 0xf4, 0xfd, 0x1f, 0x33, 0xb0, 0xbf, 0x9c, 0x23, 0xc0, 0x32, 0x23, 0x78, 0x9e, 0x06, 0xe2, 0x4c, 0xf1, 0x36, 0xd3, 0xb5, 0x57, 0x40, 0x3a, 0x66, 0x98, 0x1f, 0x4b, 0x77, 0x7d, 0xcf, 0xe8, 0x90, 0xd2, 0xba, 0x96, 0xda, 0x4a, 0x47, 0x42, 0xae, 0xed, 0xdd, 0x6a, 0x61, 0x1d, 0x05, 0xfc, 0x21, 0x56, 0x94, 0xa5, 0xd8, 0x9a, 0x5d, 0xe6, 0x76, 0x0b, 0x1d, 0x94, 0x15, 0x15, 0x50, 0x44, 0xc0, 0x49, 0xcb, 0x02, 0x29, 0x1a, 0x15, 0x14, 0xfa, 0xa2, 0xe7, 0x7d, 0x2a, 0xe3, 0x3d, 0x44, 0x58, 0x5b, 0xda, 0xc6, 0x36, 0x5b, 0xf4, 0x81, 0xd9, 0xc9, 0x78, 0x33, 0x93, 0x7e, 0xab, 0x63, 0x6e, 0xd6, 0x57, 0x42, 0xa0, 0xd5, 0x97, 0x3b, 0x24, 0xd5, 0x40, 0x89, 0xb2, 0xda, 0xf0, 0x84, 0xd5, 0x41, 0x47, 0x65, 0x10, 0x5e, 0x4e, 0xca, 0x14, 0xaa, 0xad, 0xd1, 0x05, 0x33, 0x38, 0xa8, 0x47, 0x05, 0x05, 0x23, 0x2e, 0x4a, 0xc6, 0x33, 0x34, 0x5c, 0x5c, 0xde, 0xe1, 0xe4, 0x65, 0x3d, 0x1d, 0x93, 0x58, 0x3a, 0xf1, 0x18, 0x54, 0xb1, 0xd9, 0xb6, 0x5f, 0xc2, 0x02, 0x81, 0x83, 0x8c, 0x56, 0xdf, 0x11, 0x48, 0xf3, 0x5c, 0xcf, 0x9b, 0xfe, 0x2f, 0x3f, 0x80, 0xab, 0x73, 0xf5, 0xb7, 0x91, 0xcb, 0xed, 0x2d, 0x92, 0x06, 0x44, 0xcf, 0x03, 0x16, 0xf0, 0xcb, 0x5d, 0x36, 0x62, 0xb9, 0x12, 0x06, 0x47, 0xda, 0x56, 0xaf, 0xbe, 0xb4, 0x7a, 0x95, 0x29, 0x53, 0xbc, 0x1a, 0x37, 0xde, 0x85, 0x7e, 0x4b, 0x39, 0xfd, 0x92, 0xb6, 0x32, 0xb8, 0x51, 0x59, 0xf4, 0x6c, 0xd0, 0x5b, 0x6a, 0xbc, 0x23, 0x38, 0xd4, 0x63, 0x2d, 0x48, 0xe9, 0xa1, 0x78, 0x86, 0x0d, 0xe8, 0xf6, 0x5d, 0x9b, 0xc2, 0x3f, 0x24, 0x50, 0x7b, 0x7c, 0x56, 0x29, 0xe0, 0xbd, 0xaa, 0xc0, 0x67, 0xc4, 0x76, 0xc9, 0xc3, 0x94, 0x1d, 0x86, 0xf7, 0x88, 0x94, 0x4d, 0x74, 0x48, 0x52, 0xa6, 0x1d, 0xa7, 0x16, 0xf9, 0x5f, 0x3b, 0x04, 0xf0, 0x78, 0x3a, 0x56, 0x29, 0x41, 0xbc, 0xdd, 0xa4, 0x39, 0x59, 0x0f, 0xd1, 0x86, 0xb2, 0xa8, 0xeb, 0xf1, 0x9a, 0x5a, 0x7e, 0x4f, 0x4a, 0x3a, 0xaa, 0xb7, 0xa8, 0x7a, 0x43, 0x45, 0x24, 0xfb, 0xc9, 0x79, 0x9c, 0x99, 0x31, 0xeb, 0x8c, 0xe4, 0xe3, 0x4e, 0x99, 0xb6, 0x08, 0xca, 0xc9, 0x4a, 0xb7, 0xe7, 0x44, 0x95, 0x66, 0x8d, 0xf1, 0x36, 0x18, 0x5f, 0x48, 0x7d, 0x9f, 0xbc, 0xb6, 0x60, 0x5a, 0xd7, 0x25, 0x34, 0x54, 0x03, 0xec, 0x57, 0xf3, 0xf6, 0xdb, 0x36, 0x4a, 0x87, 0xf3, 0x8f, 0xea, 0x4b, 0x4c, 0x27, 0x15, 0x52, 0xe9, 0xf2, 0xe4, 0xa1, 0xbe, };
10165 static const u8 ed25519_442_test_vectors_expected_sig[] = {
10166 	0x0e, 0xec, 0x75, 0x41, 0x05, 0x44, 0x7f, 0x97, 0xd4, 0xa9, 0xcd, 0x24, 0x6c, 0x7e, 0xed, 0xe3, 0xfd, 0x06, 0x90, 0x18, 0xf0, 0xd0, 0x1a, 0x41, 0xdf, 0xab, 0xca, 0x3e, 0x90, 0xa7, 0x41, 0x83, 0x5e, 0xa4, 0xa9, 0xd6, 0x82, 0x34, 0x22, 0x67, 0xb2, 0x50, 0xfc, 0x1c, 0x8c, 0x54, 0x7c, 0x89, 0x63, 0x2d, 0x9f, 0x68, 0x9a, 0xf5, 0x36, 0xc7, 0x92, 0x90, 0x04, 0xde, 0xd0, 0xd9, 0x6f, 0x09, };
10167 static const ec_test_case ed25519_442_test_case = {
10168 	.name = "EDDSA25519-SHA512/wei25519 442",
10169 	.ec_str_p = &wei25519_str_params,
10170 	.priv_key = ed25519_442_test_vectors_priv_key,
10171 	.priv_key_len = sizeof(ed25519_442_test_vectors_priv_key),
10172 	.nn_random = NULL,
10173 	.hash_type = SHA512,
10174 	.msg = (const char *)ed25519_442_test_vectors_message,
10175 	.msglen = sizeof(ed25519_442_test_vectors_message),
10176 	.sig_type = EDDSA25519,
10177 	.exp_sig = ed25519_442_test_vectors_expected_sig,
10178 	.exp_siglen = sizeof(ed25519_442_test_vectors_expected_sig),
10179 	.adata = NULL,
10180 	.adata_len = 0
10181 };
10182 
10183 /************************************************/
10184 static const u8 ed25519_443_test_vectors_priv_key[] = {
10185 	0xdb, 0x5d, 0x5f, 0x41, 0xfd, 0xdd, 0x67, 0x68, 0x70, 0x97, 0x47, 0xab, 0x82, 0x39, 0xbb, 0x4f, 0x42, 0xa3, 0x1d, 0x34, 0xb4, 0xfa, 0x88, 0x82, 0x4d, 0x94, 0xbf, 0x78, 0xd3, 0x14, 0x92, 0x64, };
10186 static const u8 ed25519_443_test_vectors_message[] = {
10187 	0x67, 0xee, 0x03, 0xde, 0x45, 0xc3, 0xe7, 0x03, 0x0d, 0xb5, 0x24, 0x6e, 0xe5, 0xb5, 0x1b, 0xf2, 0x98, 0xbb, 0xa3, 0xe4, 0xd0, 0x93, 0x49, 0x37, 0xfc, 0x12, 0xd9, 0xa6, 0x29, 0x60, 0x4c, 0x53, 0xc0, 0x70, 0xe3, 0x0d, 0x61, 0x19, 0x99, 0xa9, 0xcd, 0xda, 0xf2, 0xd9, 0xac, 0xda, 0x6a, 0x9f, 0x67, 0x20, 0x2b, 0x35, 0x23, 0x69, 0xd4, 0x82, 0x60, 0xee, 0xbc, 0xe0, 0xe7, 0x8e, 0x4d, 0x5a, 0xe5, 0x4f, 0x67, 0x75, 0x21, 0xf8, 0x4a, 0x7b, 0xe0, 0x01, 0x7f, 0xab, 0x27, 0x8b, 0x2b, 0x57, 0x27, 0x5e, 0xfc, 0x5f, 0xa5, 0x7c, 0x61, 0x71, 0x86, 0xfc, 0x1b, 0xa4, 0x9e, 0xdf, 0xbd, 0x33, 0x08, 0x63, 0x48, 0x78, 0xd8, 0x64, 0xf2, 0xda, 0x15, 0x83, 0xca, 0x8d, 0x56, 0xce, 0x9f, 0xae, 0x77, 0xc4, 0x62, 0x03, 0x9a, 0xbc, 0x32, 0xd0, 0x53, 0x9c, 0x0a, 0x60, 0xb7, 0xbb, 0xba, 0x50, 0x29, 0xe9, 0x32, 0x9d, 0x27, 0x56, 0x83, 0xd9, 0xc4, 0xce, 0x77, 0xd0, 0xb9, 0x08, 0xad, 0xe9, 0x8b, 0x0e, 0x32, 0xb4, 0x42, 0x0d, 0x9a, 0xee, 0x2c, 0xc1, 0x0e, 0x4b, 0xe9, 0x22, 0xf9, 0x57, 0x25, 0x82, 0xdd, 0x89, 0x67, 0x14, 0x1c, 0x1d, 0x40, 0x2e, 0x21, 0x5f, 0x20, 0xae, 0xe0, 0xa8, 0x90, 0xe2, 0x36, 0x8e, 0x40, 0x6d, 0xea, 0x11, 0xbd, 0x11, 0x17, 0x7f, 0x2e, 0x03, 0x8a, 0xa2, 0xf1, 0xa0, 0xdf, 0xf5, 0x1a, 0x12, 0x8d, 0x95, 0x5d, 0x5e, 0x5f, 0x8d, 0x5d, 0x00, 0x09, 0xaa, 0xa8, 0x24, 0x40, 0xa9, 0x68, 0x64, 0xd6, 0xc6, 0x97, 0xf9, 0x10, 0xd1, 0xdf, 0x23, 0x0f, 0x46, 0x7f, 0x0e, 0x02, 0xa2, 0xe0, 0x2b, 0xf9, 0xe4, 0x5d, 0xa9, 0x5f, 0x25, 0x54, 0x10, 0xcc, 0x5a, 0xab, 0x8d, 0x85, 0xf4, 0x49, 0xa5, 0xde, 0x99, 0xaa, 0xbd, 0x44, 0xfd, 0x76, 0x3e, 0xc1, 0x46, 0x29, 0xf3, 0xdb, 0xab, 0x1a, 0x24, 0x7b, 0xff, 0xb7, 0x17, 0x46, 0x48, 0xe4, 0x3b, 0x9f, 0xb1, 0xeb, 0x0d, 0xf5, 0xe4, 0x10, 0x9b, 0x7a, 0x88, 0xe0, 0x55, 0x12, 0xb2, 0x08, 0x65, 0xba, 0xd3, 0x9f, 0x9e, 0xa7, 0x9d, 0x52, 0xf5, 0x18, 0x8e, 0x7c, 0xa5, 0x19, 0x44, 0x05, 0xbf, 0xb1, 0xa0, 0x97, 0x27, 0x61, 0x7f, 0x3f, 0x6c, 0x88, 0x19, 0x20, 0x08, 0xed, 0xbc, 0x0c, 0x65, 0x85, 0xdb, 0xf2, 0x61, 0xf1, 0x49, 0xdf, 0xfb, 0x59, 0x3d, 0x42, 0x71, 0x6e, 0x5a, 0x57, 0x77, 0xf5, 0x46, 0x2b, 0xee, 0xb1, 0xe9, 0xa5, 0x6a, 0x2c, 0x76, 0xe6, 0xcb, 0x73, 0x51, 0x17, 0xcc, 0x11, 0x83, 0xa3, 0x8d, 0x1e, 0x00, 0xb3, 0x03, 0xd1, 0x74, 0xaa, 0x9c, 0xf5, 0xc7, 0x31, 0xb2, 0xc7, 0x0e, 0xdd, 0x79, 0xcc, 0x5d, 0xc9, 0x6f, 0x40, 0x18, 0xf1, 0xd7, 0x1d, 0x71, 0x98, 0xbb, 0xb7, 0xd1, 0x34, 0xcd, 0x2f, 0xf8, 0xc1, 0x5f, 0x9a, 0x04, 0x28, 0x0d, 0xb2, 0x6a, 0x8f, 0xa9, 0x99, 0x7e, 0xb8, 0x6b, 0x13, 0x3c, 0x02, 0x2e, 0xda, 0x15, 0xd8, 0xad, 0x5e, 0x77, 0xcc, 0x9f, 0x62, 0x61, 0x59, 0x60, 0xba, 0xc2, 0xf9, 0xbb, 0xc3, 0xeb, 0xbd, 0x19, 0x8f, 0x72, 0xc5, 0x72, 0xb9, 0x71, 0x56, 0xfa, 0x7f, 0xa2, 0x29, 0xa9, 0x80, 0x14, 0xe1, 0x70, };
10188 static const u8 ed25519_443_test_vectors_expected_sig[] = {
10189 	0x5b, 0x3d, 0x0d, 0xa7, 0x10, 0x23, 0x55, 0x48, 0x6b, 0xe4, 0xd6, 0x9c, 0xfd, 0x65, 0x88, 0x6c, 0x9d, 0x9c, 0x87, 0x38, 0xb2, 0x93, 0xca, 0xfb, 0x23, 0xb2, 0x10, 0x4b, 0xfd, 0xac, 0x8d, 0x7d, 0x01, 0x29, 0x8e, 0xeb, 0x18, 0xfd, 0xe3, 0xde, 0xd6, 0x49, 0x1d, 0x41, 0xb4, 0x19, 0xcc, 0x66, 0x37, 0x52, 0xc4, 0xe6, 0x7d, 0xbe, 0x89, 0x86, 0x83, 0x3d, 0x20, 0xe4, 0xef, 0x34, 0x18, 0x0b, };
10190 static const ec_test_case ed25519_443_test_case = {
10191 	.name = "EDDSA25519-SHA512/wei25519 443",
10192 	.ec_str_p = &wei25519_str_params,
10193 	.priv_key = ed25519_443_test_vectors_priv_key,
10194 	.priv_key_len = sizeof(ed25519_443_test_vectors_priv_key),
10195 	.nn_random = NULL,
10196 	.hash_type = SHA512,
10197 	.msg = (const char *)ed25519_443_test_vectors_message,
10198 	.msglen = sizeof(ed25519_443_test_vectors_message),
10199 	.sig_type = EDDSA25519,
10200 	.exp_sig = ed25519_443_test_vectors_expected_sig,
10201 	.exp_siglen = sizeof(ed25519_443_test_vectors_expected_sig),
10202 	.adata = NULL,
10203 	.adata_len = 0
10204 };
10205 
10206 /************************************************/
10207 static const u8 ed25519_444_test_vectors_priv_key[] = {
10208 	0x7f, 0x04, 0x8d, 0xfc, 0xc2, 0x65, 0x0c, 0xda, 0x59, 0x49, 0x1d, 0x4c, 0xe2, 0xb2, 0x53, 0x3a, 0xec, 0xc8, 0x9c, 0xc4, 0xb3, 0x36, 0x88, 0x51, 0x94, 0xb7, 0xad, 0x91, 0x7d, 0xb5, 0xcd, 0x14, };
10209 static const u8 ed25519_444_test_vectors_message[] = {
10210 	0x91, 0x75, 0x19, 0xcd, 0xb3, 0x35, 0x19, 0x68, 0x0b, 0xca, 0xe0, 0x4f, 0xaa, 0x79, 0x07, 0x71, 0xce, 0x7d, 0x13, 0x97, 0xc3, 0x45, 0xf1, 0xb0, 0x3d, 0xd7, 0x62, 0x57, 0x76, 0xf3, 0xf1, 0x95, 0x80, 0x99, 0x32, 0x61, 0x8b, 0x1c, 0x64, 0xac, 0xd9, 0x3a, 0xd0, 0x00, 0xea, 0xd0, 0x96, 0x54, 0xa3, 0x3d, 0x14, 0xf7, 0x48, 0xb4, 0x6b, 0x67, 0xaa, 0xe0, 0xff, 0x12, 0xdf, 0x3c, 0xc1, 0x63, 0x28, 0x0f, 0x47, 0xce, 0xdc, 0x16, 0xa8, 0x57, 0x90, 0x34, 0xe4, 0x98, 0x84, 0x29, 0x67, 0x72, 0xec, 0xbd, 0xbb, 0x71, 0xca, 0x29, 0xc1, 0x66, 0x23, 0x35, 0x33, 0xc8, 0xde, 0x54, 0x01, 0x2b, 0x41, 0x2c, 0xa1, 0x3c, 0xc2, 0x58, 0xf7, 0xc5, 0x46, 0x5d, 0x83, 0x42, 0x2f, 0x52, 0x4e, 0x4c, 0x05, 0xf8, 0x06, 0x31, 0x34, 0x78, 0x31, 0x9f, 0xd1, 0x43, 0xcf, 0x50, 0x88, 0xe6, 0x98, 0x37, 0x69, 0x7d, 0x36, 0x15, 0xd8, 0x0a, 0x7f, 0xa7, 0xe7, 0x44, 0x3f, 0xca, 0x65, 0xe7, 0x53, 0xac, 0x1b, 0x11, 0xd8, 0xef, 0xf3, 0x47, 0x66, 0x36, 0xae, 0x02, 0xd7, 0xa2, 0x0f, 0x4b, 0x23, 0x88, 0xda, 0xd6, 0x84, 0x00, 0x2f, 0x5c, 0xe9, 0x57, 0xca, 0xdd, 0xd2, 0x05, 0x3d, 0x0e, 0xd5, 0x33, 0x13, 0x2a, 0x81, 0xca, 0x19, 0xbb, 0x08, 0x0b, 0xd4, 0x3b, 0xe9, 0x32, 0x02, 0x8c, 0xb5, 0xf6, 0xb9, 0x64, 0xf0, 0x08, 0xb5, 0xb1, 0xc1, 0xc5, 0x99, 0x3b, 0xc9, 0xb5, 0x48, 0x5b, 0x22, 0xbb, 0xef, 0x70, 0x1f, 0x0a, 0x26, 0xa3, 0xe6, 0x75, 0xea, 0x31, 0x12, 0x2b, 0xba, 0xe9, 0x1d, 0x86, 0x4b, 0x54, 0xd8, 0x95, 0xaf, 0xdc, 0x79, 0xca, 0x58, 0xd4, 0xfe, 0x44, 0x92, 0x13, 0x35, 0x3b, 0x14, 0x9f, 0x31, 0x43, 0xb5, 0x14, 0x4d, 0x74, 0x7c, 0x5b, 0x46, 0x97, 0x47, 0x9a, 0xe6, 0x85, 0x28, 0x48, 0x53, 0x84, 0x04, 0x4a, 0xa2, 0xc9, 0x9b, 0xa4, 0xb1, 0x7b, 0x18, 0x4e, 0x94, 0x98, 0x22, 0x69, 0xbd, 0xe2, 0xde, 0x0b, 0x17, 0x70, 0x5d, 0x0b, 0xfc, 0x46, 0xd6, 0x90, 0x6a, 0x90, 0xed, 0xef, 0xe8, 0x91, 0x95, 0xde, 0x6b, 0xb8, 0xf3, 0xfb, 0x6a, 0x37, 0x41, 0x86, 0xc7, 0xcd, 0x08, 0x6d, 0x13, 0xd1, 0xb3, 0x52, 0x5a, 0x39, 0x94, 0xdc, 0x80, 0x20, 0xe1, 0xa0, 0x05, 0x54, 0xac, 0x8a, 0x82, 0xd6, 0x04, 0x7c, 0x5b, 0xff, 0x5e, 0x7f, 0x12, 0x45, 0x0f, 0x48, 0x65, 0xda, 0x16, 0x1e, 0x1a, 0x02, 0x1f, 0xd9, 0xbe, 0x8b, 0xd3, 0x3a, 0x32, 0xbb, 0x54, 0xa4, 0xdd, 0xf8, 0x74, 0x51, 0x2e, 0x74, 0xb5, 0xcf, 0xd3, 0xfc, 0x3c, 0xd9, 0xac, 0x11, 0xed, 0xd8, 0x78, 0x43, 0x36, 0x68, 0xe3, 0xfc, 0xc7, 0x82, 0xb9, 0x7b, 0x6d, 0x90, 0x5a, 0xdb, 0x0e, 0xbe, 0xc4, 0x2c, 0x92, 0x54, 0xac, 0x90, 0xf3, 0x58, 0x22, 0xc0, 0x0f, 0x97, 0xff, 0x3f, 0x0c, 0x7c, 0x39, 0xed, 0x3c, 0x7c, 0xb3, 0x92, 0x0f, 0x56, 0x08, 0xbb, 0x45, 0x83, 0x8b, 0xb2, 0x42, 0xa5, 0x2a, 0x86, 0x37, 0xd7, 0xce, 0xcd, 0xcf, 0x48, 0x9f, 0xa1, 0x83, 0xb4, 0x54, 0x51, 0xc6, 0xc9, 0xfc, 0xbb, 0xbf, 0x91, 0x4f, 0x5f, 0x7e, 0x6b, 0x22, 0x3b, 0xcb, 0x46, 0x75, };
10211 static const u8 ed25519_444_test_vectors_expected_sig[] = {
10212 	0x58, 0x33, 0x70, 0x97, 0x1d, 0x24, 0x65, 0x2a, 0xd2, 0x13, 0xc4, 0x26, 0x15, 0x91, 0x19, 0x38, 0xfa, 0x9a, 0xa3, 0xd9, 0xb7, 0x19, 0x69, 0x40, 0xe6, 0xeb, 0x08, 0x15, 0x12, 0x00, 0xc7, 0xb6, 0x72, 0x9d, 0x1e, 0xff, 0x8f, 0x4f, 0x09, 0x04, 0x07, 0x4d, 0xab, 0x3d, 0xdd, 0xa6, 0xaf, 0x1e, 0x4e, 0x56, 0x2b, 0x7d, 0x62, 0x20, 0xc1, 0xa5, 0x62, 0x68, 0x3b, 0xea, 0xb2, 0x68, 0xf8, 0x0e, };
10213 static const ec_test_case ed25519_444_test_case = {
10214 	.name = "EDDSA25519-SHA512/wei25519 444",
10215 	.ec_str_p = &wei25519_str_params,
10216 	.priv_key = ed25519_444_test_vectors_priv_key,
10217 	.priv_key_len = sizeof(ed25519_444_test_vectors_priv_key),
10218 	.nn_random = NULL,
10219 	.hash_type = SHA512,
10220 	.msg = (const char *)ed25519_444_test_vectors_message,
10221 	.msglen = sizeof(ed25519_444_test_vectors_message),
10222 	.sig_type = EDDSA25519,
10223 	.exp_sig = ed25519_444_test_vectors_expected_sig,
10224 	.exp_siglen = sizeof(ed25519_444_test_vectors_expected_sig),
10225 	.adata = NULL,
10226 	.adata_len = 0
10227 };
10228 
10229 /************************************************/
10230 static const u8 ed25519_445_test_vectors_priv_key[] = {
10231 	0x9f, 0xeb, 0x3d, 0xf8, 0x8c, 0x49, 0x4a, 0x99, 0x84, 0x9c, 0x6f, 0xca, 0x19, 0x42, 0x01, 0x47, 0x7a, 0x2f, 0xa7, 0x56, 0x4e, 0x29, 0xfb, 0x06, 0xcb, 0x44, 0xc1, 0x15, 0x4e, 0x8c, 0xea, 0x3a, };
10232 static const u8 ed25519_445_test_vectors_message[] = {
10233 	0x95, 0xfb, 0x75, 0x81, 0xbd, 0x25, 0xff, 0xd4, 0x42, 0xc3, 0xae, 0x38, 0xa1, 0x9b, 0xea, 0x73, 0x49, 0xc7, 0xb7, 0x68, 0x3b, 0xa6, 0x76, 0x7e, 0x14, 0x8f, 0x0a, 0xfc, 0x15, 0x37, 0x3f, 0x67, 0xc1, 0x6d, 0x47, 0x17, 0x81, 0x20, 0x2e, 0x6d, 0xa8, 0x05, 0x4e, 0xd7, 0xfb, 0x9e, 0xe2, 0x04, 0xcc, 0x0f, 0x63, 0xc2, 0x10, 0xa6, 0x70, 0xa5, 0xf9, 0xce, 0xd4, 0x29, 0x45, 0x88, 0x19, 0x63, 0x30, 0xd3, 0x1b, 0x8e, 0x83, 0x92, 0xbe, 0xf6, 0xb4, 0x8f, 0xe3, 0xc9, 0x20, 0x78, 0xfa, 0xe1, 0x12, 0x84, 0xb4, 0xc3, 0xba, 0x20, 0xd9, 0x37, 0xe2, 0x71, 0x9d, 0xe7, 0xbf, 0x67, 0xc0, 0x06, 0x69, 0xad, 0x23, 0xe6, 0x13, 0x84, 0xeb, 0xdf, 0x8c, 0x6e, 0x60, 0x73, 0x54, 0x28, 0xc0, 0x84, 0xfe, 0x21, 0x7f, 0xdb, 0x47, 0x09, 0xcc, 0xb6, 0x08, 0x3f, 0xc0, 0xae, 0x4a, 0x05, 0x27, 0x3e, 0xef, 0x73, 0x90, 0x23, 0xd3, 0x4b, 0xb7, 0x3f, 0x66, 0x2d, 0xac, 0xdf, 0x11, 0x0b, 0x6d, 0xbd, 0x3e, 0x74, 0xfc, 0x14, 0x91, 0xe8, 0xc9, 0x65, 0x96, 0x07, 0x5f, 0xae, 0x5c, 0x36, 0xaa, 0xbe, 0x2a, 0x0a, 0x53, 0x05, 0x2b, 0xf7, 0x7c, 0x44, 0x62, 0x43, 0x80, 0x63, 0xaa, 0x7b, 0xc0, 0xc5, 0x0a, 0xb9, 0x20, 0xc9, 0xeb, 0x28, 0x86, 0x71, 0x56, 0x0c, 0xa5, 0xba, 0x7a, 0xf4, 0x4a, 0x53, 0xdb, 0x2e, 0x2f, 0xf4, 0x3c, 0xa5, 0x60, 0x69, 0xea, 0x55, 0x17, 0xcb, 0x21, 0x4e, 0x76, 0xfa, 0xa5, 0x3d, 0xbd, 0xa1, 0x00, 0x00, 0x3c, 0x4f, 0x61, 0x75, 0x41, 0x40, 0x41, 0xbe, 0x74, 0xde, 0x22, 0xce, 0x15, 0x5d, 0x22, 0x81, 0xb6, 0xf4, 0x03, 0x5b, 0xe3, 0x98, 0x41, 0xaf, 0xdb, 0x96, 0xdd, 0x89, 0xaa, 0x80, 0x8e, 0x68, 0x65, 0xba, 0xe6, 0x2d, 0x6b, 0xed, 0xd9, 0x19, 0xd3, 0xe8, 0x65, 0x10, 0xb9, 0xfa, 0x5f, 0xed, 0xd1, 0x97, 0x7c, 0x41, 0x31, 0xb2, 0xb8, 0x6e, 0x0f, 0x48, 0xd7, 0x21, 0x5e, 0xb1, 0x3d, 0x54, 0x98, 0xca, 0x5d, 0x23, 0x68, 0xf8, 0x18, 0x95, 0xed, 0x85, 0x5a, 0x52, 0x71, 0x24, 0x65, 0x7e, 0xc9, 0x53, 0x9e, 0xfe, 0x3b, 0x24, 0x99, 0xa3, 0xb0, 0xb3, 0x38, 0x26, 0x2f, 0x26, 0x34, 0x0e, 0x22, 0x55, 0x4c, 0x79, 0xf4, 0xfa, 0xd2, 0xb4, 0xe4, 0x19, 0xc7, 0x0b, 0xc1, 0xa2, 0x10, 0x7d, 0x20, 0x64, 0x56, 0xb6, 0x36, 0x87, 0x81, 0xbe, 0x4b, 0x5e, 0x2c, 0x54, 0xda, 0x42, 0xd3, 0x36, 0x04, 0x0f, 0xb7, 0xba, 0x49, 0xc3, 0x2d, 0x75, 0x23, 0x21, 0xad, 0xcd, 0x92, 0x98, 0x6e, 0x78, 0xbe, 0xdb, 0x22, 0x6c, 0xea, 0xc5, 0x02, 0x92, 0x08, 0x9b, 0xb5, 0x79, 0x02, 0x7f, 0x70, 0x22, 0x17, 0x74, 0x5a, 0xfe, 0x06, 0xa5, 0xbe, 0x13, 0x6b, 0x39, 0x98, 0xa3, 0x60, 0x4c, 0x9f, 0xf2, 0xac, 0xd6, 0xfa, 0x3f, 0x3f, 0x71, 0x63, 0x3d, 0x31, 0x02, 0xfb, 0xf0, 0x30, 0x47, 0xc5, 0x48, 0x6f, 0x84, 0xc4, 0xdc, 0x24, 0x47, 0xd8, 0x63, 0x79, 0x63, 0x83, 0xd5, 0x5f, 0x08, 0xc9, 0x81, 0xfd, 0x4d, 0xd7, 0xdc, 0x1c, 0xb7, 0x2b, 0x8b, 0xa4, 0x43, 0x5a, 0xf6, 0xab, 0xdd, 0x74, 0xe6, 0xf6, 0xe6, 0x79, 0x8f, 0x1a, 0xe2, };
10234 static const u8 ed25519_445_test_vectors_expected_sig[] = {
10235 	0xa1, 0xc2, 0x60, 0x78, 0x35, 0xbe, 0xc1, 0xa1, 0xd8, 0x78, 0x72, 0xfd, 0x8e, 0xe4, 0x88, 0xd0, 0xae, 0x9e, 0xd2, 0x3d, 0x49, 0xfd, 0x67, 0x86, 0xfc, 0x49, 0x96, 0x72, 0x5e, 0x49, 0xb3, 0x26, 0x21, 0x18, 0xba, 0xbb, 0x48, 0x34, 0x87, 0x7c, 0x7f, 0x78, 0xfb, 0xea, 0xc0, 0x2d, 0xf4, 0x0a, 0xb0, 0x91, 0xb8, 0xb4, 0x20, 0xdc, 0x99, 0x51, 0x38, 0x1e, 0x3b, 0xcd, 0xa0, 0x67, 0x05, 0x02, };
10236 static const ec_test_case ed25519_445_test_case = {
10237 	.name = "EDDSA25519-SHA512/wei25519 445",
10238 	.ec_str_p = &wei25519_str_params,
10239 	.priv_key = ed25519_445_test_vectors_priv_key,
10240 	.priv_key_len = sizeof(ed25519_445_test_vectors_priv_key),
10241 	.nn_random = NULL,
10242 	.hash_type = SHA512,
10243 	.msg = (const char *)ed25519_445_test_vectors_message,
10244 	.msglen = sizeof(ed25519_445_test_vectors_message),
10245 	.sig_type = EDDSA25519,
10246 	.exp_sig = ed25519_445_test_vectors_expected_sig,
10247 	.exp_siglen = sizeof(ed25519_445_test_vectors_expected_sig),
10248 	.adata = NULL,
10249 	.adata_len = 0
10250 };
10251 
10252 /************************************************/
10253 static const u8 ed25519_446_test_vectors_priv_key[] = {
10254 	0xbf, 0xf6, 0x89, 0x55, 0xdd, 0x6a, 0xe0, 0xe8, 0xba, 0x85, 0xab, 0x0d, 0x0c, 0xda, 0xf0, 0x4a, 0x9f, 0x5b, 0xef, 0xd5, 0xef, 0x60, 0x14, 0xf4, 0x99, 0x94, 0xa7, 0x83, 0x63, 0xdc, 0x17, 0xf7, };
10255 static const u8 ed25519_446_test_vectors_message[] = {
10256 	0xd8, 0xf5, 0x65, 0x0a, 0xa3, 0x58, 0x1c, 0x4d, 0x39, 0xbd, 0x1b, 0x8a, 0xfc, 0x96, 0xc1, 0xad, 0x7c, 0x4b, 0xf7, 0x23, 0x42, 0x6f, 0x9d, 0x7f, 0xab, 0xd1, 0xa5, 0xc8, 0xac, 0x1d, 0x2f, 0xe5, 0x4a, 0x97, 0x1f, 0xac, 0x76, 0x5e, 0x05, 0xaf, 0x6e, 0x40, 0x7d, 0x72, 0x69, 0xba, 0xb6, 0x61, 0xb3, 0x43, 0x22, 0x92, 0xa4, 0x84, 0xf9, 0x52, 0xc1, 0x10, 0x95, 0xbb, 0xd2, 0x0a, 0x15, 0xd7, 0x7c, 0x41, 0xf8, 0xf3, 0x73, 0x1a, 0x50, 0x4d, 0x51, 0x8e, 0xe1, 0x0c, 0xd0, 0x06, 0xc9, 0x6e, 0xe5, 0x73, 0x72, 0xde, 0x5b, 0xea, 0x34, 0x8e, 0xc8, 0xba, 0x15, 0x91, 0x62, 0x17, 0x0c, 0x63, 0xe9, 0x70, 0xf1, 0xc7, 0xa3, 0x46, 0x5a, 0x3d, 0x59, 0x2e, 0x1d, 0x56, 0xc6, 0x54, 0x0f, 0xbd, 0xb6, 0x02, 0x28, 0xe3, 0x40, 0x90, 0x96, 0x46, 0x32, 0x0c, 0x95, 0xf2, 0x56, 0x98, 0xcd, 0x48, 0x96, 0xbd, 0xff, 0x58, 0xe2, 0x56, 0x1e, 0x3b, 0x3d, 0x9a, 0x73, 0xb8, 0x97, 0x47, 0x91, 0x2a, 0x1c, 0xf4, 0x67, 0xd6, 0x3e, 0x41, 0x45, 0x5f, 0xda, 0x77, 0x47, 0x7f, 0x46, 0xfe, 0x69, 0x37, 0xbb, 0x0e, 0x79, 0xd9, 0x2c, 0xcd, 0x52, 0xe8, 0x2d, 0xba, 0x90, 0x8a, 0x05, 0xa5, 0x7c, 0x7e, 0xcf, 0x49, 0x55, 0x4a, 0xb4, 0x4c, 0x0b, 0x71, 0x8e, 0x3b, 0xdd, 0x5f, 0xc0, 0xbf, 0x70, 0x70, 0xd9, 0xc5, 0x8f, 0x86, 0x05, 0x91, 0xc1, 0x8b, 0xca, 0x8b, 0x3a, 0x9a, 0x14, 0x8a, 0x06, 0x54, 0x8e, 0x0f, 0x01, 0x60, 0x2b, 0x1e, 0x6f, 0x68, 0x60, 0x37, 0xc9, 0x4f, 0xf7, 0x32, 0xe1, 0x55, 0xd5, 0x2d, 0x5b, 0x0b, 0x44, 0x70, 0x3b, 0x3d, 0x11, 0x16, 0x3e, 0x3f, 0x56, 0xe3, 0xb9, 0xc1, 0xb8, 0x64, 0x76, 0xe4, 0xdc, 0xbf, 0xc5, 0x3f, 0xa0, 0x59, 0x84, 0xe8, 0xc7, 0x5d, 0xd2, 0x18, 0x43, 0xcf, 0x96, 0xf9, 0xe4, 0x94, 0xab, 0xba, 0xe7, 0x18, 0x4a, 0xa4, 0x27, 0x36, 0x63, 0x3e, 0x38, 0x11, 0xae, 0xff, 0x40, 0x2b, 0x2f, 0xcb, 0x7d, 0x7f, 0x70, 0x2e, 0x44, 0x72, 0x41, 0xe2, 0x2a, 0x58, 0x84, 0x2f, 0xd6, 0xd0, 0xc0, 0x3d, 0x33, 0xff, 0x5b, 0x8c, 0x79, 0x22, 0x00, 0xe1, 0x73, 0xda, 0xa7, 0xb2, 0x17, 0xe4, 0xb2, 0xf4, 0x43, 0x3e, 0x6c, 0x02, 0x0a, 0xcc, 0xe5, 0x01, 0xb9, 0x32, 0x3a, 0xa0, 0x24, 0x11, 0x44, 0x43, 0x4b, 0x08, 0xe9, 0xd2, 0x46, 0x91, 0x39, 0xff, 0x67, 0x34, 0x22, 0x08, 0x90, 0x05, 0x46, 0x20, 0x0f, 0xd9, 0x71, 0xa6, 0x5d, 0xbd, 0x6d, 0xb6, 0xc2, 0x1e, 0x3e, 0xf9, 0x17, 0x2a, 0xbb, 0xa1, 0xea, 0x9e, 0xa2, 0xa2, 0x49, 0xad, 0xdf, 0x1a, 0x1e, 0xaa, 0x3c, 0xe1, 0x19, 0x38, 0xb1, 0x3e, 0x30, 0x91, 0x3c, 0xd0, 0xda, 0xd4, 0x91, 0xfc, 0xbb, 0x32, 0x85, 0xea, 0x37, 0x8b, 0x8e, 0xf9, 0x22, 0x7f, 0x3f, 0xa8, 0x0b, 0x58, 0x6e, 0xcf, 0xea, 0xe1, 0x37, 0x06, 0x6f, 0x84, 0x48, 0xac, 0xdf, 0xb7, 0x8d, 0x6d, 0x3e, 0x9e, 0xf4, 0xa6, 0xb3, 0x62, 0xdf, 0x42, 0x41, 0xad, 0x9a, 0xe2, 0x53, 0xb8, 0xe1, 0x59, 0x7d, 0x65, 0x6e, 0x00, 0x0c, 0xea, 0x44, 0x7a, 0x02, 0xfa, 0x49, 0x33, 0x32, 0x86, 0x09, 0xbb, 0xa0, };
10257 static const u8 ed25519_446_test_vectors_expected_sig[] = {
10258 	0x93, 0x19, 0xee, 0xf7, 0x40, 0x63, 0x3a, 0xda, 0x1a, 0xf0, 0xe1, 0x37, 0x64, 0x4c, 0x61, 0xfb, 0x3e, 0x11, 0xba, 0x4b, 0x01, 0xd3, 0xc6, 0xf2, 0x53, 0x92, 0xdc, 0x93, 0x67, 0x87, 0x2a, 0x23, 0xbe, 0x56, 0x31, 0x0d, 0x31, 0x2e, 0xfc, 0xb9, 0x1b, 0xdb, 0xab, 0x78, 0xa7, 0x5e, 0x57, 0x6e, 0xbe, 0x90, 0x81, 0x97, 0x24, 0x15, 0xf5, 0x62, 0xdb, 0x41, 0xba, 0xf5, 0xe2, 0x33, 0x8b, 0x07, };
10259 static const ec_test_case ed25519_446_test_case = {
10260 	.name = "EDDSA25519-SHA512/wei25519 446",
10261 	.ec_str_p = &wei25519_str_params,
10262 	.priv_key = ed25519_446_test_vectors_priv_key,
10263 	.priv_key_len = sizeof(ed25519_446_test_vectors_priv_key),
10264 	.nn_random = NULL,
10265 	.hash_type = SHA512,
10266 	.msg = (const char *)ed25519_446_test_vectors_message,
10267 	.msglen = sizeof(ed25519_446_test_vectors_message),
10268 	.sig_type = EDDSA25519,
10269 	.exp_sig = ed25519_446_test_vectors_expected_sig,
10270 	.exp_siglen = sizeof(ed25519_446_test_vectors_expected_sig),
10271 	.adata = NULL,
10272 	.adata_len = 0
10273 };
10274 
10275 /************************************************/
10276 static const u8 ed25519_447_test_vectors_priv_key[] = {
10277 	0x1b, 0xa9, 0x19, 0xc0, 0x66, 0xbb, 0x56, 0xe6, 0x40, 0xc3, 0x33, 0x59, 0x68, 0xe1, 0xd1, 0xb5, 0xbc, 0xc0, 0x93, 0x38, 0x3e, 0x2d, 0x7c, 0xf8, 0xb5, 0xff, 0xf5, 0xc6, 0x1e, 0xc4, 0x7a, 0x77, };
10278 static const u8 ed25519_447_test_vectors_message[] = {
10279 	0x87, 0xc5, 0xc7, 0x5d, 0x8a, 0xd0, 0x7d, 0x52, 0xac, 0xd7, 0x81, 0xd1, 0xbb, 0x95, 0xf7, 0x8c, 0x70, 0xe2, 0x1c, 0x2d, 0xd6, 0x6f, 0x7a, 0xa4, 0x42, 0x34, 0x15, 0x2f, 0x98, 0x23, 0x4d, 0x12, 0x83, 0x58, 0xa8, 0xae, 0xe9, 0x8e, 0xa9, 0x03, 0xa7, 0x7b, 0x44, 0x1d, 0xb1, 0x44, 0x7a, 0xe6, 0xff, 0x34, 0x32, 0xdd, 0xd4, 0x57, 0x0f, 0x7f, 0x58, 0x03, 0x61, 0x22, 0xc1, 0xfd, 0xcc, 0x93, 0xcb, 0x21, 0x57, 0x37, 0x39, 0xc1, 0x9c, 0xca, 0xa4, 0x11, 0x50, 0x8e, 0x08, 0xde, 0x26, 0x06, 0xf3, 0xd8, 0xf2, 0xdb, 0x89, 0xdf, 0x6a, 0x44, 0xa4, 0x61, 0x33, 0xd5, 0x70, 0x18, 0x46, 0x26, 0x27, 0xe2, 0x2f, 0x57, 0xef, 0x36, 0xd1, 0xde, 0x02, 0x4d, 0xe3, 0xd4, 0xae, 0x41, 0xb7, 0x52, 0xdf, 0x48, 0x21, 0x15, 0x59, 0x34, 0xb4, 0x47, 0xb2, 0xef, 0xfe, 0x51, 0x24, 0x87, 0x52, 0x1b, 0xe0, 0x35, 0x68, 0x32, 0xa7, 0x4c, 0xe0, 0xe2, 0xd8, 0x30, 0x1b, 0x79, 0xf9, 0x31, 0x75, 0xe8, 0xb6, 0xb9, 0x61, 0xb1, 0xdf, 0x63, 0x7d, 0x8a, 0xca, 0xdc, 0x88, 0x45, 0x43, 0xc6, 0x86, 0x4f, 0x80, 0x25, 0xec, 0xec, 0xec, 0x7c, 0x6e, 0x4f, 0xe0, 0xfe, 0xcf, 0xc4, 0x0d, 0xcd, 0x95, 0xe8, 0xd6, 0xab, 0x93, 0xce, 0x25, 0x59, 0x53, 0x84, 0x43, 0x6b, 0x59, 0x8b, 0x73, 0xc7, 0x4b, 0x03, 0xd4, 0x9e, 0xd5, 0x00, 0x2c, 0x0f, 0x85, 0x8c, 0xfd, 0x9d, 0x0d, 0xf6, 0x1e, 0xde, 0x93, 0x7c, 0xc4, 0x16, 0x59, 0xd6, 0x70, 0x8b, 0x96, 0xfc, 0x5a, 0xaa, 0xde, 0xe1, 0x09, 0xe2, 0xa6, 0x88, 0x46, 0xba, 0xf2, 0xc2, 0x46, 0xdf, 0xcf, 0x3d, 0x27, 0xc2, 0x8b, 0xd1, 0x37, 0x1e, 0x35, 0xfc, 0x94, 0x12, 0x63, 0x14, 0x42, 0xee, 0x75, 0xf3, 0x8c, 0x6e, 0x49, 0x58, 0x07, 0x0a, 0x74, 0xf6, 0xe6, 0xa2, 0x20, 0xf7, 0x5c, 0x72, 0x80, 0xea, 0xb4, 0x73, 0x7d, 0x97, 0xe3, 0x78, 0x82, 0xf3, 0x62, 0x48, 0x11, 0x67, 0x5f, 0x16, 0xca, 0xf6, 0x0c, 0xb9, 0x44, 0xbc, 0xe9, 0x2e, 0x75, 0x88, 0x4c, 0x56, 0x48, 0x3c, 0x61, 0xf2, 0x6b, 0x63, 0x71, 0xb1, 0xb5, 0x12, 0x37, 0x62, 0x1a, 0x06, 0x54, 0x3e, 0xb4, 0xab, 0xea, 0x7b, 0xec, 0xc4, 0xfc, 0x31, 0xdb, 0xb5, 0x47, 0x5b, 0x3d, 0xeb, 0x9b, 0xb3, 0xc8, 0x99, 0x23, 0x87, 0x10, 0x48, 0x30, 0xc6, 0x07, 0x2a, 0xfe, 0x1a, 0xf2, 0x44, 0xbf, 0x68, 0x1a, 0x40, 0x32, 0x9c, 0x9b, 0x37, 0x77, 0x2b, 0x09, 0xc5, 0xe8, 0x8e, 0x78, 0xf7, 0xdf, 0xfb, 0xc0, 0x45, 0x49, 0xff, 0xa1, 0x3b, 0x41, 0x44, 0xdd, 0xfa, 0x53, 0x8f, 0xc4, 0xb3, 0x30, 0x05, 0x40, 0xad, 0x83, 0x02, 0x15, 0xe2, 0x5f, 0x11, 0x44, 0x6d, 0x28, 0x9f, 0x33, 0x12, 0x2c, 0x2c, 0x88, 0x0d, 0xe3, 0xda, 0x71, 0xc4, 0x53, 0xd7, 0xe8, 0x8f, 0x7c, 0xa4, 0xea, 0x3d, 0x12, 0x55, 0xe8, 0x2f, 0x4b, 0xc9, 0xe5, 0x53, 0x3d, 0xc4, 0x01, 0xc3, 0x30, 0x40, 0xe1, 0x69, 0x40, 0xb2, 0xcf, 0x9c, 0xf2, 0x1f, 0xea, 0xca, 0x1c, 0x2c, 0x6c, 0x33, 0x33, 0x7c, 0xf7, 0x5e, 0x18, 0x84, 0xb4, 0x83, 0xbf, 0x80, 0x15, 0x36, 0xd3, 0x04, 0x08, 0x91, 0x15, 0xa0, };
10280 static const u8 ed25519_447_test_vectors_expected_sig[] = {
10281 	0x50, 0x3e, 0xb7, 0xed, 0x6d, 0xe1, 0xb7, 0x76, 0xc9, 0x52, 0xf2, 0x55, 0xbb, 0xd4, 0xbc, 0xfb, 0x0e, 0x48, 0xbc, 0x70, 0xc2, 0xcc, 0x2f, 0x1f, 0x72, 0xbf, 0x68, 0x81, 0x47, 0x90, 0x40, 0xc4, 0x75, 0x24, 0xec, 0x54, 0x2a, 0xe1, 0x3f, 0x60, 0x05, 0xca, 0x50, 0x16, 0xb5, 0x8b, 0x73, 0x6a, 0x50, 0x89, 0x8d, 0xd0, 0x56, 0x9d, 0x4d, 0x38, 0xad, 0x29, 0x86, 0x30, 0xd6, 0x8a, 0xdb, 0x0b, };
10282 static const ec_test_case ed25519_447_test_case = {
10283 	.name = "EDDSA25519-SHA512/wei25519 447",
10284 	.ec_str_p = &wei25519_str_params,
10285 	.priv_key = ed25519_447_test_vectors_priv_key,
10286 	.priv_key_len = sizeof(ed25519_447_test_vectors_priv_key),
10287 	.nn_random = NULL,
10288 	.hash_type = SHA512,
10289 	.msg = (const char *)ed25519_447_test_vectors_message,
10290 	.msglen = sizeof(ed25519_447_test_vectors_message),
10291 	.sig_type = EDDSA25519,
10292 	.exp_sig = ed25519_447_test_vectors_expected_sig,
10293 	.exp_siglen = sizeof(ed25519_447_test_vectors_expected_sig),
10294 	.adata = NULL,
10295 	.adata_len = 0
10296 };
10297 
10298 /************************************************/
10299 static const u8 ed25519_448_test_vectors_priv_key[] = {
10300 	0x9b, 0x36, 0x24, 0x7c, 0x17, 0x71, 0x0e, 0x95, 0x26, 0x1a, 0x7d, 0x70, 0x2f, 0x57, 0xfe, 0x81, 0xf2, 0x97, 0x11, 0x17, 0xa5, 0x0c, 0x87, 0x92, 0x01, 0x93, 0xb3, 0x86, 0xd4, 0x94, 0xca, 0x97, };
10301 static const u8 ed25519_448_test_vectors_message[] = {
10302 	0xe8, 0xd9, 0xd5, 0x3b, 0xa2, 0x7e, 0x98, 0xed, 0xd5, 0x5d, 0xf3, 0xc6, 0xb2, 0x45, 0xea, 0xcd, 0xdc, 0x8a, 0x40, 0xe3, 0xef, 0xb0, 0x07, 0xbc, 0x91, 0x8e, 0xc5, 0xa8, 0x69, 0x17, 0x8a, 0x17, 0x0b, 0xb4, 0xa6, 0x35, 0xb7, 0xf8, 0xf7, 0x42, 0xe3, 0x7a, 0xd4, 0x5d, 0x14, 0xa7, 0x43, 0x44, 0xa6, 0xb5, 0x22, 0x83, 0x0a, 0x52, 0x21, 0x06, 0xeb, 0x96, 0x0d, 0xaf, 0x19, 0x2d, 0xc1, 0xe0, 0xfd, 0x70, 0xf1, 0x61, 0x60, 0xe1, 0x22, 0x51, 0x68, 0x92, 0xd0, 0xe2, 0xab, 0xd0, 0xd4, 0xae, 0x0f, 0x0d, 0x2e, 0x5a, 0xdc, 0xc9, 0x9a, 0xd5, 0x53, 0x02, 0xe2, 0x51, 0xb3, 0xe7, 0xa4, 0xd0, 0xcb, 0x33, 0x77, 0x4a, 0x49, 0x70, 0x49, 0x90, 0x5c, 0x33, 0xde, 0x1f, 0xbb, 0xc1, 0xad, 0x2b, 0x6c, 0x64, 0x52, 0x95, 0xfe, 0x41, 0x6b, 0x4d, 0x12, 0xb2, 0x32, 0xef, 0xe0, 0xa3, 0x3c, 0xd2, 0xad, 0x87, 0x32, 0xeb, 0xa1, 0xc3, 0xcb, 0x0e, 0xae, 0xb0, 0xb2, 0xa5, 0x7f, 0xa0, 0x3e, 0xc5, 0x67, 0xca, 0x29, 0x21, 0x0b, 0xf6, 0xff, 0x95, 0x42, 0xa7, 0x66, 0xf4, 0x96, 0xfe, 0x68, 0x05, 0x8a, 0xa9, 0x83, 0x80, 0x6c, 0xbe, 0x7a, 0xb1, 0x0a, 0x47, 0x92, 0x0b, 0xac, 0x82, 0x48, 0x81, 0x8e, 0x54, 0xa4, 0x15, 0x51, 0xc9, 0xa0, 0x95, 0x9e, 0x89, 0x94, 0xca, 0xc6, 0x0f, 0xc8, 0x68, 0xad, 0x48, 0xb5, 0xa2, 0x4d, 0x5f, 0x24, 0xa7, 0xa5, 0xa3, 0xfd, 0x90, 0xb8, 0x47, 0xe8, 0x17, 0xad, 0x3d, 0xd5, 0xd0, 0xd6, 0xf8, 0xde, 0x2d, 0x20, 0x4f, 0x64, 0x24, 0x83, 0xbd, 0x53, 0x58, 0x5a, 0x92, 0xef, 0x92, 0x54, 0x15, 0xa9, 0xb3, 0x8f, 0xbb, 0xf0, 0x7f, 0xc0, 0xf3, 0x5e, 0x70, 0x75, 0x69, 0xcf, 0x48, 0x8b, 0x20, 0x54, 0x53, 0xce, 0x54, 0x33, 0xeb, 0xa6, 0xfd, 0xe8, 0x78, 0x1a, 0xf7, 0x2b, 0x52, 0xbf, 0xbc, 0xab, 0x85, 0xea, 0xd3, 0x85, 0xd9, 0xd3, 0x17, 0x5e, 0x21, 0xad, 0x33, 0x73, 0xad, 0x53, 0x5c, 0xf0, 0xe3, 0x57, 0xed, 0x6b, 0x53, 0x83, 0xef, 0x38, 0x29, 0xa9, 0xd5, 0x09, 0x5b, 0x87, 0xdc, 0x9a, 0xad, 0xbe, 0x0c, 0xa7, 0xab, 0xad, 0xf3, 0x3e, 0xc3, 0xb6, 0xff, 0xd6, 0xeb, 0x94, 0xaf, 0xdc, 0xc1, 0x2e, 0x8d, 0x66, 0xa6, 0xfc, 0x05, 0xac, 0xf9, 0x73, 0x68, 0xdb, 0x0f, 0x69, 0x56, 0x5d, 0xcd, 0x8f, 0xef, 0x4d, 0x1e, 0x49, 0xd7, 0xdd, 0x4a, 0xc0, 0x53, 0xc2, 0x18, 0xf5, 0x24, 0x0c, 0x81, 0x2d, 0x4e, 0xbb, 0xa4, 0x40, 0xdc, 0x54, 0xca, 0xcd, 0xdb, 0x1c, 0x39, 0x32, 0x9e, 0x5b, 0xd0, 0xc3, 0xc8, 0x0d, 0xc3, 0x25, 0x9a, 0x80, 0xf0, 0x59, 0xf9, 0x46, 0x79, 0xaa, 0x07, 0x94, 0xca, 0x01, 0x15, 0xcc, 0x62, 0xaf, 0x25, 0xe1, 0x24, 0xcb, 0x8a, 0x9d, 0x41, 0x60, 0xea, 0xce, 0x6d, 0x22, 0xc7, 0xb1, 0xc4, 0x45, 0x44, 0xf8, 0x11, 0x42, 0xa1, 0x9e, 0xbb, 0x02, 0xa9, 0xbd, 0xa6, 0x42, 0x9c, 0x50, 0xe7, 0x83, 0xdb, 0x4a, 0x07, 0xf0, 0x21, 0x9e, 0x85, 0x7c, 0x8d, 0x3c, 0x56, 0x55, 0xa5, 0x82, 0x83, 0x1c, 0x8e, 0xab, 0xc3, 0xf1, 0x9b, 0x59, 0xad, 0x8d, 0x2c, 0x71, 0x4a, 0xde, 0xaf, 0x40, 0x39, 0xd5, 0xcf, 0x70, };
10303 static const u8 ed25519_448_test_vectors_expected_sig[] = {
10304 	0x03, 0x59, 0x70, 0xa6, 0x72, 0xe9, 0x3f, 0x87, 0xeb, 0x42, 0xcc, 0x39, 0x6f, 0x6e, 0xa7, 0xe1, 0xb3, 0xdd, 0x5c, 0x59, 0x51, 0x57, 0x28, 0x26, 0xd1, 0x07, 0x5a, 0x15, 0xc2, 0xd7, 0xe4, 0x54, 0xdf, 0x19, 0x5b, 0x51, 0xaa, 0xe8, 0xdc, 0x61, 0xef, 0x7a, 0xb8, 0x95, 0x48, 0x5f, 0x64, 0xe5, 0x98, 0x95, 0x73, 0xd9, 0x8a, 0x06, 0x2e, 0x67, 0xae, 0x73, 0x56, 0xfe, 0x5c, 0x9e, 0x3b, 0x0f, };
10305 static const ec_test_case ed25519_448_test_case = {
10306 	.name = "EDDSA25519-SHA512/wei25519 448",
10307 	.ec_str_p = &wei25519_str_params,
10308 	.priv_key = ed25519_448_test_vectors_priv_key,
10309 	.priv_key_len = sizeof(ed25519_448_test_vectors_priv_key),
10310 	.nn_random = NULL,
10311 	.hash_type = SHA512,
10312 	.msg = (const char *)ed25519_448_test_vectors_message,
10313 	.msglen = sizeof(ed25519_448_test_vectors_message),
10314 	.sig_type = EDDSA25519,
10315 	.exp_sig = ed25519_448_test_vectors_expected_sig,
10316 	.exp_siglen = sizeof(ed25519_448_test_vectors_expected_sig),
10317 	.adata = NULL,
10318 	.adata_len = 0
10319 };
10320 
10321 /************************************************/
10322 static const u8 ed25519_449_test_vectors_priv_key[] = {
10323 	0x6f, 0xed, 0xe7, 0x39, 0x6c, 0x46, 0x20, 0x33, 0x18, 0x9a, 0xcd, 0x23, 0xd2, 0xf9, 0xd0, 0x2b, 0x68, 0x89, 0x8d, 0x35, 0xf3, 0xa0, 0x1a, 0x79, 0x8f, 0xc2, 0x4d, 0x48, 0x8d, 0xe9, 0x3a, 0x78, };
10324 static const u8 ed25519_449_test_vectors_message[] = {
10325 	0x5a, 0xbc, 0xc1, 0x4b, 0x9d, 0x85, 0x78, 0xde, 0x08, 0x32, 0x1d, 0xe0, 0xd4, 0x15, 0xe3, 0xd4, 0x0e, 0x9d, 0xe3, 0x1e, 0x18, 0x88, 0x13, 0x74, 0x75, 0xce, 0x62, 0xbc, 0x6f, 0xbe, 0xe8, 0xfd, 0xd0, 0x3b, 0x9d, 0x47, 0xc7, 0xb8, 0x8b, 0xbc, 0xeb, 0x80, 0x44, 0x44, 0x49, 0x0b, 0xf6, 0xa3, 0xcc, 0xb7, 0xa2, 0x73, 0x26, 0x1e, 0x24, 0x00, 0x4e, 0xa6, 0x7c, 0xef, 0xa3, 0xd5, 0xd1, 0x73, 0x57, 0x6d, 0x01, 0xe3, 0x8f, 0x76, 0xc1, 0xe0, 0xe5, 0x15, 0x08, 0x3c, 0x97, 0xe7, 0x99, 0x14, 0xac, 0xf2, 0xbe, 0x41, 0x60, 0xef, 0x93, 0x60, 0xbb, 0xe9, 0x86, 0xb3, 0x6e, 0x9f, 0xf9, 0x33, 0x46, 0xb0, 0xe7, 0x06, 0x91, 0xd9, 0x34, 0xe4, 0x7f, 0x8a, 0x50, 0x3f, 0xa9, 0x33, 0xab, 0x2a, 0x50, 0x42, 0x69, 0x47, 0xcd, 0xa8, 0xe8, 0x10, 0xc9, 0xeb, 0xe3, 0xb3, 0x69, 0x82, 0xf0, 0x9a, 0xee, 0x60, 0x92, 0x73, 0x9f, 0xa2, 0x35, 0x8b, 0x61, 0x3c, 0x7f, 0x12, 0x9d, 0xb0, 0xdc, 0xbe, 0x36, 0x8b, 0xee, 0x52, 0xf2, 0xf7, 0xf1, 0xdf, 0xe3, 0xd2, 0x43, 0x46, 0x05, 0xb5, 0xaf, 0xcf, 0x25, 0x60, 0x71, 0x71, 0x7d, 0x92, 0x4f, 0xd0, 0x80, 0x3b, 0xbd, 0x0d, 0xd1, 0xf9, 0x55, 0x5c, 0xe8, 0x34, 0xda, 0xc7, 0x81, 0xdf, 0x4c, 0xc7, 0xaa, 0x19, 0xe7, 0xf1, 0x1d, 0xa9, 0xfb, 0x99, 0xcb, 0x9e, 0x6b, 0x9e, 0x1e, 0x6f, 0xb4, 0xf7, 0xe8, 0xdc, 0xb2, 0x23, 0x6c, 0x28, 0xae, 0xb6, 0xcb, 0xc5, 0x5a, 0x13, 0x0e, 0x03, 0xc1, 0xb1, 0x7a, 0x99, 0x1c, 0xca, 0x1b, 0x79, 0x4e, 0x6c, 0x13, 0x73, 0x2d, 0x5b, 0x0a, 0x66, 0xf6, 0xeb, 0xa8, 0x60, 0xec, 0xb9, 0x85, 0x55, 0xaa, 0x4c, 0x21, 0x8d, 0x11, 0x2b, 0x11, 0x6b, 0xce, 0x23, 0x82, 0x95, 0xde, 0x14, 0x27, 0x41, 0xf6, 0x87, 0xbe, 0x0b, 0x24, 0x87, 0xf5, 0x8f, 0xfc, 0x5c, 0x12, 0xa0, 0xa5, 0x19, 0xf1, 0xe2, 0x37, 0x93, 0x24, 0x2e, 0xf8, 0x57, 0xed, 0x39, 0x8a, 0x20, 0x69, 0x9d, 0x43, 0x51, 0x45, 0x3f, 0xc2, 0xf0, 0x92, 0x76, 0x2a, 0xbd, 0xe3, 0x4f, 0x4d, 0xa2, 0xdb, 0xe0, 0xce, 0x2a, 0xab, 0xaf, 0x6b, 0xc4, 0xc0, 0x15, 0x9f, 0x3f, 0xe1, 0xae, 0xa1, 0x6a, 0x03, 0x6f, 0x7e, 0xae, 0xcd, 0x62, 0x95, 0x38, 0xf3, 0xe0, 0xee, 0xd8, 0x3c, 0x9a, 0x4d, 0xc1, 0xab, 0xc2, 0x38, 0xf9, 0x0d, 0xaa, 0xf4, 0x89, 0xfd, 0x61, 0xb3, 0x4d, 0x93, 0x7b, 0x6f, 0x46, 0x07, 0xa7, 0x88, 0xba, 0xa8, 0x20, 0x61, 0x94, 0x3d, 0xba, 0xb2, 0x6c, 0x1d, 0x38, 0x4d, 0x8d, 0x49, 0xf9, 0x93, 0x48, 0x80, 0x0b, 0xf3, 0x61, 0xf8, 0x71, 0xf5, 0xd6, 0xcd, 0xa1, 0x8f, 0x68, 0x99, 0x18, 0xce, 0xc3, 0x1a, 0xd1, 0x58, 0xf1, 0x86, 0x3d, 0x13, 0xff, 0xac, 0x54, 0x05, 0xc1, 0x62, 0xc3, 0x2d, 0xe0, 0x6e, 0x32, 0x99, 0x4c, 0xc4, 0x10, 0x6f, 0x95, 0xbb, 0x4f, 0xff, 0xdb, 0xef, 0xe7, 0xd6, 0x29, 0xec, 0x77, 0x97, 0x39, 0x46, 0x09, 0xfd, 0xbf, 0xea, 0xdb, 0x46, 0x92, 0x73, 0x70, 0xa1, 0x1f, 0xb3, 0x84, 0x71, 0x54, 0x0f, 0x95, 0x1b, 0x93, 0xc6, 0xeb, 0x23, 0x86, 0x68, 0xdc, 0x00, 0x6c, 0x21, 0x66, 0x0b, 0xa2, };
10326 static const u8 ed25519_449_test_vectors_expected_sig[] = {
10327 	0x88, 0xa8, 0x3e, 0x20, 0x12, 0xd2, 0x09, 0xca, 0x03, 0xb8, 0xeb, 0xf6, 0xde, 0x5b, 0xb7, 0xef, 0x4c, 0xcb, 0x5e, 0x3d, 0xf5, 0xca, 0xc7, 0x89, 0x54, 0xaa, 0x69, 0x49, 0x30, 0xe4, 0xde, 0x82, 0x54, 0x4e, 0xf5, 0x08, 0x3c, 0x48, 0x92, 0xdb, 0x9f, 0x05, 0xd7, 0x7b, 0xf6, 0x3f, 0x4f, 0xdf, 0xce, 0x15, 0xa4, 0xd1, 0xc3, 0xf8, 0x5b, 0xae, 0x80, 0x77, 0x06, 0x2b, 0xec, 0x0e, 0x7b, 0x07, };
10328 static const ec_test_case ed25519_449_test_case = {
10329 	.name = "EDDSA25519-SHA512/wei25519 449",
10330 	.ec_str_p = &wei25519_str_params,
10331 	.priv_key = ed25519_449_test_vectors_priv_key,
10332 	.priv_key_len = sizeof(ed25519_449_test_vectors_priv_key),
10333 	.nn_random = NULL,
10334 	.hash_type = SHA512,
10335 	.msg = (const char *)ed25519_449_test_vectors_message,
10336 	.msglen = sizeof(ed25519_449_test_vectors_message),
10337 	.sig_type = EDDSA25519,
10338 	.exp_sig = ed25519_449_test_vectors_expected_sig,
10339 	.exp_siglen = sizeof(ed25519_449_test_vectors_expected_sig),
10340 	.adata = NULL,
10341 	.adata_len = 0
10342 };
10343 
10344 /************************************************/
10345 static const u8 ed25519_450_test_vectors_priv_key[] = {
10346 	0xd5, 0x59, 0x58, 0x01, 0x34, 0xab, 0x05, 0x0a, 0xca, 0x44, 0x6e, 0xa7, 0x75, 0x0e, 0xf6, 0xb3, 0x71, 0xd9, 0x2d, 0x76, 0x45, 0xec, 0x76, 0x35, 0xfe, 0x78, 0x51, 0x10, 0x0b, 0xc4, 0xe5, 0x1e, };
10347 static const u8 ed25519_450_test_vectors_message[] = {
10348 	0x68, 0x42, 0xe3, 0x19, 0x0a, 0x11, 0x0e, 0xee, 0x96, 0xc5, 0x07, 0xd4, 0xbc, 0xb4, 0xc5, 0x48, 0xc3, 0xa0, 0xed, 0x7b, 0x1a, 0x8e, 0xd7, 0x7d, 0xd9, 0x3b, 0x38, 0x61, 0x3b, 0x23, 0xc7, 0x3e, 0x83, 0x0b, 0x20, 0x5e, 0x62, 0x65, 0x19, 0x21, 0xad, 0x82, 0x96, 0xb0, 0x8d, 0x1e, 0x10, 0x08, 0xad, 0x78, 0xf2, 0x99, 0x6e, 0x3c, 0x7f, 0x38, 0x03, 0x2e, 0x46, 0x7c, 0xff, 0xec, 0xd7, 0x7b, 0x85, 0x25, 0xe2, 0x43, 0xce, 0xc0, 0x21, 0xf8, 0x52, 0x96, 0xaf, 0xd5, 0x45, 0xd7, 0xbe, 0x1a, 0x62, 0x56, 0x8b, 0xb0, 0xcf, 0xcd, 0xb9, 0x0d, 0x61, 0x4e, 0xd7, 0x98, 0xbf, 0xb7, 0xef, 0xc6, 0x55, 0x32, 0x68, 0x16, 0xa6, 0x10, 0x82, 0x25, 0x1d, 0xf0, 0x16, 0x13, 0xaa, 0xc8, 0x8e, 0xfc, 0xea, 0x1e, 0x0e, 0xa2, 0x96, 0x1b, 0x8f, 0x92, 0x1e, 0xbe, 0x15, 0x58, 0xde, 0xe8, 0x33, 0x74, 0xa0, 0x11, 0x3a, 0x78, 0xc5, 0x58, 0x57, 0xce, 0x20, 0x55, 0xbb, 0x2c, 0x48, 0xba, 0xdb, 0xd3, 0xd8, 0xf4, 0xcb, 0x19, 0x73, 0x4d, 0x00, 0xd0, 0x60, 0x4b, 0x61, 0x90, 0x73, 0x02, 0x0d, 0x72, 0xa9, 0x9a, 0x19, 0x23, 0xe6, 0x16, 0x0a, 0x09, 0x94, 0x65, 0x67, 0xfd, 0x4b, 0xda, 0x66, 0x44, 0x2e, 0xf5, 0xa7, 0x36, 0x07, 0x86, 0xd1, 0x78, 0xda, 0xe4, 0x49, 0x22, 0xf3, 0x50, 0xce, 0x2e, 0xdc, 0x6a, 0xf7, 0x3d, 0x1b, 0xd8, 0x0d, 0xc0, 0x3e, 0xc3, 0xca, 0x70, 0x05, 0xf4, 0x10, 0x9d, 0x10, 0xc6, 0xd4, 0xf7, 0xd8, 0xfa, 0x61, 0x73, 0x51, 0x10, 0xf8, 0xdb, 0xae, 0xdf, 0x91, 0xa0, 0xba, 0xd7, 0xd7, 0xfb, 0x5c, 0x04, 0xd7, 0x06, 0x37, 0x3c, 0x15, 0xc6, 0x45, 0x06, 0x3f, 0xf4, 0xb4, 0xfb, 0xd2, 0xd5, 0x59, 0xb0, 0xaf, 0xad, 0x43, 0x2d, 0x4c, 0x49, 0x6c, 0xd8, 0xab, 0xfe, 0xa2, 0x86, 0xfa, 0x67, 0x5d, 0xc0, 0x76, 0x72, 0x6e, 0xc5, 0x22, 0xb3, 0xa3, 0xc2, 0xf4, 0x7a, 0xec, 0xc5, 0x39, 0xf4, 0x8a, 0x79, 0x21, 0x69, 0xc4, 0xcc, 0x8c, 0xd4, 0x1c, 0xd2, 0xcb, 0x6b, 0x63, 0xdd, 0xbc, 0x19, 0x37, 0x3a, 0xc9, 0x69, 0x1c, 0x2b, 0xc2, 0xf7, 0x8f, 0x22, 0x60, 0x3d, 0x55, 0x13, 0x71, 0x5a, 0x16, 0xd4, 0x57, 0x4e, 0x7a, 0xcc, 0x4b, 0xea, 0x6d, 0xcd, 0x8c, 0xa7, 0xf1, 0x98, 0x65, 0xa4, 0x9d, 0x36, 0x64, 0xa2, 0x10, 0xdf, 0xad, 0x29, 0x07, 0x74, 0xb1, 0x0b, 0x71, 0x88, 0xf2, 0x55, 0xb3, 0xbe, 0x4d, 0xc8, 0xfa, 0x86, 0xf8, 0xda, 0x3f, 0x73, 0xa4, 0xe7, 0xc9, 0x29, 0x95, 0x1d, 0xf3, 0x0f, 0xe6, 0x6a, 0x17, 0xc8, 0xce, 0xe2, 0x3e, 0x4f, 0x2e, 0xd2, 0x06, 0x3f, 0x0b, 0x02, 0xab, 0x40, 0x37, 0x2c, 0xbe, 0x54, 0xb9, 0xa7, 0x08, 0xdf, 0x7c, 0x48, 0xa0, 0x65, 0x66, 0xd3, 0x9b, 0x19, 0x43, 0x4c, 0x6c, 0x76, 0x69, 0x87, 0xb3, 0xeb, 0xb0, 0x06, 0x75, 0xf4, 0x4c, 0x4b, 0x3c, 0x1e, 0x9f, 0x45, 0x04, 0xe7, 0xa9, 0x27, 0x05, 0x89, 0xc0, 0xd0, 0xf4, 0xcb, 0x73, 0x42, 0x35, 0xa5, 0x8e, 0xf0, 0x74, 0xcf, 0x9d, 0xec, 0xf3, 0x60, 0x1a, 0xee, 0xca, 0x9f, 0x1d, 0x8e, 0x35, 0x6c, 0xb2, 0xdb, 0x5f, 0xce, 0x79, 0xcb, 0xc3, 0x61, 0x43, 0xf3, 0x4b, };
10349 static const u8 ed25519_450_test_vectors_expected_sig[] = {
10350 	0x6f, 0xcb, 0x1a, 0xc9, 0x29, 0x0a, 0xb7, 0x67, 0xd5, 0x9b, 0x59, 0x8c, 0x9a, 0x24, 0xec, 0xdb, 0x6c, 0x05, 0xbb, 0x02, 0x3e, 0xc3, 0x60, 0x14, 0xa4, 0x0d, 0x90, 0x8e, 0xf0, 0xdc, 0x37, 0x8a, 0x45, 0x28, 0xb3, 0x76, 0x0d, 0x88, 0x9a, 0x79, 0x17, 0x4e, 0x21, 0xca, 0xe3, 0x5d, 0xf4, 0x5d, 0x42, 0x7b, 0xa6, 0xea, 0x81, 0x2b, 0xdd, 0xca, 0x16, 0xe3, 0x5a, 0x69, 0xb5, 0xe7, 0x9f, 0x0a, };
10351 static const ec_test_case ed25519_450_test_case = {
10352 	.name = "EDDSA25519-SHA512/wei25519 450",
10353 	.ec_str_p = &wei25519_str_params,
10354 	.priv_key = ed25519_450_test_vectors_priv_key,
10355 	.priv_key_len = sizeof(ed25519_450_test_vectors_priv_key),
10356 	.nn_random = NULL,
10357 	.hash_type = SHA512,
10358 	.msg = (const char *)ed25519_450_test_vectors_message,
10359 	.msglen = sizeof(ed25519_450_test_vectors_message),
10360 	.sig_type = EDDSA25519,
10361 	.exp_sig = ed25519_450_test_vectors_expected_sig,
10362 	.exp_siglen = sizeof(ed25519_450_test_vectors_expected_sig),
10363 	.adata = NULL,
10364 	.adata_len = 0
10365 };
10366 
10367 /************************************************/
10368 static const u8 ed25519_451_test_vectors_priv_key[] = {
10369 	0x9d, 0x4c, 0xe9, 0x75, 0x54, 0x78, 0x76, 0x63, 0x6f, 0xea, 0x25, 0x43, 0x7c, 0x28, 0x80, 0xc9, 0xaa, 0x8e, 0xe6, 0xb2, 0x70, 0xd1, 0xb2, 0xda, 0x19, 0x7c, 0x8d, 0x7f, 0x95, 0xe7, 0xdc, 0xcc, };
10370 static const u8 ed25519_451_test_vectors_message[] = {
10371 	0xea, 0x0f, 0xa3, 0x2a, 0x4a, 0x28, 0x88, 0x11, 0x30, 0x1b, 0x9e, 0xe5, 0x33, 0xfa, 0x35, 0x1f, 0xdf, 0xbf, 0x6b, 0xc1, 0xd0, 0x55, 0x5a, 0x74, 0x02, 0x76, 0x7a, 0x3a, 0x91, 0x98, 0x55, 0x8f, 0x74, 0xbb, 0xa7, 0x03, 0x18, 0x57, 0x99, 0x5b, 0x9f, 0x32, 0x62, 0x26, 0xf1, 0xdd, 0x5d, 0xf1, 0x07, 0xb0, 0x63, 0x42, 0x20, 0x3e, 0xb8, 0xd4, 0x0c, 0x5f, 0x1d, 0xc9, 0x5b, 0x4f, 0x3f, 0x88, 0x97, 0x5a, 0xa2, 0x4a, 0xf8, 0x76, 0x9e, 0x26, 0x70, 0xc4, 0x66, 0x71, 0xbe, 0xbb, 0x7a, 0x0f, 0x1b, 0x75, 0x68, 0x72, 0x9a, 0xee, 0x47, 0x7e, 0x89, 0x88, 0xaf, 0x9c, 0x74, 0x9f, 0x32, 0x02, 0x70, 0x81, 0x71, 0xfd, 0x94, 0xb3, 0x37, 0xae, 0x67, 0xed, 0x21, 0xa6, 0xc4, 0x41, 0x74, 0x01, 0x4b, 0x0b, 0x0e, 0xb5, 0xba, 0x71, 0xc2, 0x77, 0x97, 0x8d, 0x48, 0x8c, 0x24, 0xc4, 0xa7, 0x84, 0x13, 0x09, 0x84, 0x6b, 0x4e, 0x30, 0xa4, 0xfb, 0xbc, 0xfc, 0x45, 0x07, 0x8d, 0x7e, 0x14, 0x01, 0x41, 0x14, 0xb1, 0xac, 0x64, 0xf7, 0xc3, 0x3c, 0x9a, 0xc2, 0x5e, 0xa5, 0x62, 0x6c, 0x2c, 0x81, 0x9f, 0xba, 0xa2, 0xa4, 0xde, 0x8a, 0x2b, 0xf5, 0xf1, 0x36, 0x5d, 0x6b, 0x70, 0x40, 0x7e, 0x80, 0x94, 0xf9, 0x91, 0x97, 0xce, 0x1f, 0x0c, 0x35, 0xe1, 0x1a, 0x98, 0xfb, 0xe3, 0x72, 0x41, 0x4e, 0xa2, 0x06, 0x4a, 0x3a, 0x12, 0xd1, 0xcd, 0x5c, 0x8d, 0xf8, 0xfc, 0x0e, 0x79, 0xf5, 0xb7, 0x70, 0xb5, 0x8f, 0x47, 0x7f, 0x91, 0x97, 0x6c, 0xa0, 0x13, 0x98, 0x95, 0x12, 0x0e, 0x24, 0x6b, 0xaa, 0xb5, 0xa0, 0x26, 0xf2, 0xd3, 0x9c, 0x68, 0x7d, 0xc0, 0x78, 0x83, 0x34, 0xb5, 0xc6, 0x26, 0xd5, 0x2c, 0xde, 0xbe, 0x05, 0xea, 0xf3, 0x08, 0x64, 0xb4, 0x13, 0xee, 0xbd, 0xc5, 0x58, 0x1e, 0xf0, 0x0d, 0x43, 0x92, 0x76, 0xe5, 0x2f, 0x47, 0x9c, 0x9c, 0x05, 0xb1, 0x16, 0x39, 0x58, 0x26, 0xb6, 0x04, 0x90, 0xb3, 0xce, 0x70, 0x0c, 0xc0, 0x02, 0x7f, 0x61, 0xe4, 0x6c, 0xa2, 0xf6, 0xfb, 0xc2, 0xc9, 0xde, 0x2e, 0x80, 0x08, 0x06, 0x55, 0x0a, 0xfb, 0x06, 0xd4, 0xa0, 0x8e, 0xac, 0x7a, 0x75, 0x8e, 0x24, 0x58, 0x2a, 0x4d, 0x6d, 0x42, 0x8b, 0x43, 0x3d, 0x36, 0x5f, 0xc3, 0x1d, 0x44, 0x44, 0x60, 0x7a, 0xfb, 0x64, 0xf1, 0x5e, 0x37, 0x07, 0x94, 0x00, 0x5a, 0x3a, 0x22, 0x44, 0xe6, 0x66, 0xd5, 0xd4, 0xc3, 0x8a, 0xd2, 0x00, 0x9c, 0x76, 0x9a, 0x51, 0xcd, 0xbf, 0x73, 0x8d, 0x23, 0x59, 0x42, 0xf4, 0x12, 0xd0, 0x7f, 0xee, 0xb7, 0x3b, 0x36, 0x57, 0xd0, 0xb0, 0xc9, 0x1c, 0xb5, 0x94, 0x0b, 0xad, 0x6a, 0x70, 0x6e, 0x14, 0xed, 0xcd, 0xc3, 0x42, 0x25, 0xb1, 0xc1, 0xf3, 0x8b, 0x1a, 0xbe, 0xcb, 0x2a, 0xdc, 0xaf, 0x81, 0x91, 0x55, 0xa9, 0x4f, 0xe1, 0x90, 0xfd, 0x55, 0x68, 0x22, 0xd5, 0x59, 0xd9, 0xc4, 0x70, 0x85, 0x4d, 0x3a, 0x43, 0xbf, 0xb8, 0x68, 0xda, 0xdd, 0x6e, 0x44, 0x3d, 0x98, 0xee, 0x87, 0xe4, 0xd8, 0x28, 0x4f, 0x5c, 0xf3, 0xa6, 0xda, 0xfa, 0xf2, 0x95, 0xb9, 0x02, 0x83, 0x6c, 0x64, 0x05, 0x11, 0xe6, 0x10, 0xae, 0x7d, 0x0c, 0xb1, 0xb1, 0xd3, 0xd6, 0x07, 0x9f, 0xe6, };
10372 static const u8 ed25519_451_test_vectors_expected_sig[] = {
10373 	0xbe, 0x17, 0x44, 0x4c, 0xd4, 0x65, 0xa8, 0x7a, 0x97, 0x1d, 0xf8, 0x4e, 0xb1, 0x02, 0xf9, 0xc7, 0xa6, 0x26, 0xa7, 0xc4, 0xff, 0x7a, 0xea, 0x51, 0xd3, 0x2c, 0x81, 0x35, 0x3d, 0x5d, 0xbc, 0x07, 0x39, 0x3c, 0xa0, 0x3d, 0xb8, 0x97, 0xd1, 0xff, 0x09, 0x94, 0x5c, 0x4d, 0x91, 0xd9, 0x8c, 0x9d, 0x91, 0xac, 0xbd, 0xc7, 0xcc, 0x7f, 0x34, 0x14, 0x4d, 0x4d, 0x69, 0xeb, 0x04, 0xd8, 0x1f, 0x0c, };
10374 static const ec_test_case ed25519_451_test_case = {
10375 	.name = "EDDSA25519-SHA512/wei25519 451",
10376 	.ec_str_p = &wei25519_str_params,
10377 	.priv_key = ed25519_451_test_vectors_priv_key,
10378 	.priv_key_len = sizeof(ed25519_451_test_vectors_priv_key),
10379 	.nn_random = NULL,
10380 	.hash_type = SHA512,
10381 	.msg = (const char *)ed25519_451_test_vectors_message,
10382 	.msglen = sizeof(ed25519_451_test_vectors_message),
10383 	.sig_type = EDDSA25519,
10384 	.exp_sig = ed25519_451_test_vectors_expected_sig,
10385 	.exp_siglen = sizeof(ed25519_451_test_vectors_expected_sig),
10386 	.adata = NULL,
10387 	.adata_len = 0
10388 };
10389 
10390 /************************************************/
10391 static const u8 ed25519_452_test_vectors_priv_key[] = {
10392 	0x02, 0x73, 0x86, 0x82, 0x32, 0xf5, 0xbe, 0x48, 0x59, 0x2c, 0xfa, 0x05, 0x13, 0x4e, 0x8d, 0x55, 0x54, 0xed, 0x1f, 0x9a, 0x57, 0xbc, 0x7e, 0x39, 0x82, 0xa3, 0x30, 0xc5, 0x7e, 0x5a, 0x7f, 0x3a, };
10393 static const u8 ed25519_452_test_vectors_message[] = {
10394 	0xf7, 0xa1, 0xd4, 0x61, 0x4c, 0xc6, 0x4a, 0x3b, 0xc4, 0x8f, 0x00, 0xc6, 0x27, 0x63, 0x04, 0xf3, 0x4d, 0x4d, 0xfd, 0x15, 0xe0, 0x61, 0x7b, 0x93, 0xcc, 0xef, 0x12, 0x6c, 0x5c, 0x63, 0x8c, 0x9d, 0x99, 0x53, 0xaa, 0xbb, 0x7d, 0xf4, 0x2d, 0xf4, 0xe0, 0xaa, 0xa7, 0xea, 0xc9, 0x6a, 0x4b, 0x38, 0xc7, 0xba, 0x75, 0x8d, 0x86, 0x0c, 0x90, 0xd0, 0x5e, 0x3d, 0x14, 0xe4, 0x79, 0xe5, 0x45, 0xf3, 0x19, 0xb0, 0xe5, 0xa8, 0x5a, 0xd8, 0xf0, 0x99, 0x1b, 0x43, 0xd6, 0xe4, 0x9c, 0x24, 0xfa, 0x06, 0x0e, 0x3e, 0x5d, 0xf9, 0x5c, 0x98, 0xd9, 0x45, 0x1a, 0xb8, 0x33, 0xe1, 0x2a, 0xa9, 0x7f, 0x40, 0x46, 0x11, 0xbb, 0xa3, 0x59, 0x49, 0x62, 0x65, 0xa6, 0xdb, 0x11, 0x91, 0x7d, 0x0d, 0xa5, 0xc6, 0xa7, 0x02, 0xd0, 0xb1, 0x02, 0xde, 0x36, 0xdd, 0x0c, 0x98, 0xdf, 0x5b, 0x54, 0x80, 0x6c, 0xe6, 0x26, 0xbb, 0x96, 0x37, 0x44, 0x75, 0xf6, 0x8a, 0x60, 0x60, 0xeb, 0x35, 0x0a, 0x7d, 0x2a, 0xae, 0x32, 0x04, 0xb3, 0xdf, 0xdf, 0x9f, 0x1e, 0x31, 0xbe, 0x81, 0xf7, 0x17, 0x0f, 0x8a, 0x1b, 0x93, 0x85, 0x41, 0x3f, 0xf8, 0xf6, 0x88, 0x1e, 0x10, 0xc1, 0xe8, 0xda, 0x4c, 0x88, 0xaf, 0xb5, 0x06, 0x39, 0xab, 0x44, 0x88, 0x7a, 0xca, 0x2a, 0xbe, 0xec, 0xed, 0xf1, 0x10, 0xd2, 0x95, 0x8c, 0x13, 0xfd, 0x33, 0x90, 0xd1, 0xb9, 0x6a, 0x76, 0x2d, 0x16, 0xce, 0x19, 0x69, 0x20, 0xce, 0x85, 0xf6, 0xc4, 0x15, 0xbe, 0xd5, 0x45, 0xb1, 0x44, 0x53, 0x02, 0xa6, 0xf0, 0x01, 0xeb, 0x8d, 0x00, 0xe9, 0x7c, 0x75, 0x18, 0x87, 0x86, 0x8d, 0x48, 0x1a, 0x0b, 0x1e, 0x4d, 0xfa, 0x04, 0xb6, 0xf7, 0x61, 0x08, 0x6e, 0xe8, 0xe6, 0x97, 0xb0, 0x19, 0xe0, 0x17, 0x10, 0x4b, 0xaf, 0xb9, 0x8f, 0xca, 0x24, 0x2e, 0x33, 0x4c, 0x6f, 0x18, 0xf1, 0xdb, 0x5b, 0x6f, 0x29, 0x5f, 0x05, 0xc5, 0x59, 0x36, 0x1c, 0x68, 0x31, 0xda, 0xbc, 0x42, 0xc2, 0x11, 0x07, 0x03, 0xf9, 0xd1, 0xf6, 0x4e, 0x12, 0xdd, 0xf2, 0x6a, 0x86, 0x79, 0x85, 0x4e, 0x9f, 0x8e, 0xf8, 0x47, 0x9e, 0x1f, 0x12, 0xc3, 0x54, 0x47, 0xaa, 0xc0, 0x2e, 0xa7, 0xf2, 0x42, 0xe5, 0x86, 0x32, 0xcf, 0x2f, 0xd0, 0x63, 0xfe, 0x66, 0x50, 0x70, 0x44, 0x5b, 0x80, 0xf3, 0xdc, 0x6a, 0x33, 0x03, 0xbb, 0xa9, 0x6e, 0x05, 0xfa, 0x88, 0xee, 0xc2, 0x01, 0xc5, 0xc2, 0xd0, 0x0c, 0xa8, 0x1b, 0x8d, 0xa6, 0x96, 0x9d, 0x0a, 0x4d, 0xd0, 0x48, 0x3b, 0x34, 0x77, 0xd3, 0x25, 0xa7, 0x1f, 0xac, 0xd6, 0xfa, 0x22, 0x09, 0xb4, 0x8c, 0xb4, 0xf6, 0x52, 0x5d, 0xa7, 0x3c, 0x9c, 0x05, 0xb2, 0xd9, 0x78, 0x9b, 0x01, 0x44, 0x8e, 0x15, 0x27, 0xe5, 0x6a, 0x09, 0xa9, 0xbc, 0x61, 0x36, 0xd9, 0x83, 0x72, 0x43, 0xc2, 0x07, 0x7b, 0x92, 0x5b, 0xbb, 0x93, 0x3f, 0x8f, 0xb1, 0xda, 0xac, 0x96, 0x33, 0x98, 0xc5, 0x80, 0x2a, 0xed, 0xa3, 0xbb, 0xca, 0x8a, 0xe3, 0xb8, 0xf4, 0xa9, 0xa8, 0x71, 0xf7, 0xea, 0x8e, 0x2c, 0x0c, 0xe8, 0x98, 0xc5, 0x66, 0x21, 0x7b, 0x5c, 0x06, 0xff, 0x55, 0xff, 0x9f, 0x4f, 0xe7, 0x83, 0x98, 0xae, 0x79, 0x73, 0x64, 0x1e, 0xaf, 0xb5, 0x21, };
10395 static const u8 ed25519_452_test_vectors_expected_sig[] = {
10396 	0x15, 0xe8, 0xd8, 0xdc, 0x7d, 0x5d, 0x25, 0x35, 0x9d, 0x6a, 0x10, 0xd0, 0x4e, 0xe4, 0x19, 0x18, 0xa9, 0xc9, 0xdf, 0x4c, 0x87, 0xbe, 0x26, 0x9f, 0xa8, 0x32, 0x43, 0x4d, 0x53, 0x01, 0xdb, 0x02, 0x24, 0x81, 0xbf, 0xa3, 0x95, 0xa3, 0xe3, 0x46, 0x6f, 0x95, 0x54, 0xce, 0xee, 0x05, 0x32, 0xa8, 0x18, 0x3a, 0x0d, 0x05, 0x50, 0xe7, 0xd1, 0xab, 0xe9, 0x9f, 0xc6, 0x94, 0xc6, 0xff, 0x93, 0x01, };
10397 static const ec_test_case ed25519_452_test_case = {
10398 	.name = "EDDSA25519-SHA512/wei25519 452",
10399 	.ec_str_p = &wei25519_str_params,
10400 	.priv_key = ed25519_452_test_vectors_priv_key,
10401 	.priv_key_len = sizeof(ed25519_452_test_vectors_priv_key),
10402 	.nn_random = NULL,
10403 	.hash_type = SHA512,
10404 	.msg = (const char *)ed25519_452_test_vectors_message,
10405 	.msglen = sizeof(ed25519_452_test_vectors_message),
10406 	.sig_type = EDDSA25519,
10407 	.exp_sig = ed25519_452_test_vectors_expected_sig,
10408 	.exp_siglen = sizeof(ed25519_452_test_vectors_expected_sig),
10409 	.adata = NULL,
10410 	.adata_len = 0
10411 };
10412 
10413 /************************************************/
10414 static const u8 ed25519_453_test_vectors_priv_key[] = {
10415 	0x33, 0x6a, 0x83, 0xb5, 0x5a, 0xbf, 0x4c, 0x02, 0xe2, 0x5e, 0x54, 0x03, 0x29, 0xb5, 0x27, 0x58, 0x43, 0xc2, 0xec, 0xb8, 0xdf, 0x69, 0x39, 0x5b, 0x5a, 0x5e, 0x24, 0x1b, 0xd0, 0xd8, 0xc1, 0x0d, };
10416 static const u8 ed25519_453_test_vectors_message[] = {
10417 	0x9a, 0xfe, 0xe8, 0xab, 0x48, 0x20, 0x10, 0xe2, 0x92, 0x64, 0xb4, 0x06, 0xd9, 0xb4, 0x94, 0x53, 0xd1, 0xce, 0x6d, 0x55, 0x09, 0x39, 0x07, 0x21, 0x82, 0x86, 0x3e, 0x46, 0x65, 0x28, 0x4a, 0xb0, 0x5d, 0x86, 0x25, 0x8e, 0x06, 0x23, 0xb1, 0x87, 0x54, 0xc4, 0x78, 0x52, 0x38, 0xf6, 0x97, 0xf0, 0x75, 0xad, 0xfb, 0x9e, 0x1d, 0x31, 0xa4, 0x2e, 0x85, 0x93, 0x4e, 0xc0, 0x71, 0xdd, 0xdd, 0xec, 0xc2, 0xe6, 0xc2, 0xf6, 0x13, 0x34, 0xa7, 0x95, 0x26, 0x78, 0x8b, 0x49, 0x52, 0x19, 0x07, 0x16, 0x90, 0x6d, 0xde, 0x17, 0xfb, 0xa5, 0x56, 0xee, 0xa4, 0xc8, 0xb5, 0x97, 0x27, 0x51, 0x4f, 0x6f, 0x56, 0x15, 0xa1, 0x9c, 0xa3, 0x6d, 0xa3, 0x58, 0xfa, 0xe6, 0xa6, 0xc5, 0x4f, 0x7f, 0x4b, 0x7a, 0x92, 0x9e, 0x31, 0xba, 0x7c, 0xc7, 0x1b, 0xde, 0x78, 0x82, 0xfa, 0x9f, 0xfd, 0x87, 0x30, 0x01, 0x36, 0x40, 0x9c, 0xaf, 0x3c, 0xa6, 0x4e, 0xef, 0xea, 0x61, 0x6a, 0xed, 0x58, 0xda, 0x5d, 0xfb, 0xf2, 0x8b, 0x66, 0x8e, 0xc1, 0xcc, 0xcf, 0xfc, 0xef, 0x6e, 0x2e, 0x14, 0xf8, 0x10, 0x9e, 0x9c, 0xbf, 0x76, 0xcf, 0xa4, 0x14, 0xf9, 0x1a, 0xc0, 0x0f, 0x48, 0xe9, 0x3e, 0xad, 0xa3, 0x85, 0xdd, 0x3d, 0x5c, 0x16, 0xe1, 0xa3, 0x9e, 0xa3, 0xdd, 0x55, 0xc7, 0x61, 0xfc, 0xa3, 0x61, 0xb4, 0x28, 0xf5, 0x16, 0xc0, 0x5e, 0x69, 0x4f, 0xe5, 0xc3, 0xc3, 0x45, 0xcd, 0x94, 0x45, 0x71, 0x87, 0xa8, 0xe6, 0x04, 0xb2, 0x00, 0xa1, 0xa0, 0xf9, 0x37, 0xae, 0x89, 0xf4, 0xd6, 0xb5, 0x42, 0x1d, 0xff, 0xcf, 0x7c, 0xa1, 0x5f, 0x2e, 0x2c, 0x25, 0x37, 0x8a, 0x41, 0x13, 0x23, 0x3f, 0x76, 0x13, 0xf4, 0x57, 0x0a, 0xa4, 0xb9, 0x09, 0xa9, 0x13, 0x5e, 0xae, 0x4c, 0x7b, 0x9e, 0xad, 0x45, 0x80, 0x07, 0xae, 0x17, 0x12, 0x6a, 0x11, 0xd1, 0x45, 0x25, 0x8a, 0xf9, 0x56, 0x3d, 0xb2, 0xf7, 0xe8, 0x92, 0x54, 0x31, 0x87, 0x8b, 0x0e, 0xec, 0xa8, 0xaf, 0xfc, 0x01, 0xac, 0x59, 0x13, 0xbf, 0x5b, 0xac, 0x4f, 0xa3, 0xa8, 0x57, 0xc5, 0x4c, 0xc8, 0x90, 0x6d, 0x6a, 0xf7, 0x7d, 0xe6, 0xb9, 0x32, 0x6b, 0x65, 0x06, 0x15, 0x10, 0x99, 0xe8, 0x7e, 0x99, 0xb1, 0xe8, 0x19, 0xc6, 0xfb, 0xe0, 0x82, 0x68, 0x8f, 0x34, 0xb8, 0x03, 0xd5, 0x88, 0xe4, 0x16, 0xd8, 0x53, 0x16, 0x97, 0x65, 0xd6, 0x2f, 0x7e, 0x0b, 0xdf, 0x72, 0xc5, 0xcd, 0x66, 0x66, 0x9a, 0x03, 0x35, 0x56, 0x23, 0x36, 0x73, 0x5e, 0x7e, 0xfb, 0x73, 0x4a, 0x2f, 0xad, 0xa3, 0x27, 0xf8, 0x58, 0xbe, 0xc6, 0x02, 0xd0, 0xda, 0x08, 0xeb, 0xa4, 0x47, 0x9e, 0x7f, 0x6d, 0xc4, 0xde, 0xf6, 0xe4, 0xeb, 0xdb, 0xb7, 0x30, 0xee, 0x91, 0xa3, 0x34, 0x45, 0xca, 0xdc, 0x9d, 0xf5, 0x2c, 0x82, 0x5a, 0xd3, 0x61, 0x49, 0xce, 0xfb, 0xc5, 0x1a, 0xb1, 0x02, 0x03, 0x35, 0x30, 0x81, 0x4b, 0xaf, 0xa7, 0xe8, 0x79, 0x61, 0xb0, 0x63, 0x67, 0xff, 0x89, 0x6f, 0x08, 0xae, 0x33, 0x4a, 0x9b, 0x1a, 0xad, 0x70, 0x3d, 0xa6, 0x86, 0x70, 0x6c, 0x11, 0xa0, 0x49, 0x43, 0xea, 0x75, 0xe1, 0x29, 0x92, 0xdc, 0xf6, 0x10, 0x6e, 0x37, 0x20, 0x77, 0xcd, 0x03, 0x11, 0x02, 0x9f, };
10418 static const u8 ed25519_453_test_vectors_expected_sig[] = {
10419 	0xd2, 0x63, 0xf5, 0x6d, 0x59, 0xcb, 0x9b, 0x28, 0x96, 0xa9, 0x47, 0x26, 0x7c, 0x2e, 0xd7, 0x8a, 0x94, 0x5b, 0xac, 0x5a, 0xbd, 0xbf, 0x3c, 0x14, 0xdc, 0x3a, 0xd0, 0x92, 0xb2, 0x30, 0x8c, 0xb9, 0x31, 0x5c, 0x46, 0x49, 0x42, 0xa0, 0xa2, 0x0b, 0x20, 0x24, 0x51, 0x1d, 0x76, 0x6e, 0x85, 0xc9, 0x36, 0x49, 0x9a, 0x14, 0x9c, 0xd0, 0xbb, 0xb2, 0x09, 0x15, 0x0a, 0x16, 0x43, 0x26, 0x52, 0x00, };
10420 static const ec_test_case ed25519_453_test_case = {
10421 	.name = "EDDSA25519-SHA512/wei25519 453",
10422 	.ec_str_p = &wei25519_str_params,
10423 	.priv_key = ed25519_453_test_vectors_priv_key,
10424 	.priv_key_len = sizeof(ed25519_453_test_vectors_priv_key),
10425 	.nn_random = NULL,
10426 	.hash_type = SHA512,
10427 	.msg = (const char *)ed25519_453_test_vectors_message,
10428 	.msglen = sizeof(ed25519_453_test_vectors_message),
10429 	.sig_type = EDDSA25519,
10430 	.exp_sig = ed25519_453_test_vectors_expected_sig,
10431 	.exp_siglen = sizeof(ed25519_453_test_vectors_expected_sig),
10432 	.adata = NULL,
10433 	.adata_len = 0
10434 };
10435 
10436 /************************************************/
10437 static const u8 ed25519_454_test_vectors_priv_key[] = {
10438 	0x88, 0x40, 0x91, 0x72, 0x61, 0x8b, 0x49, 0x03, 0x93, 0xdb, 0x27, 0xd9, 0x60, 0x17, 0x1c, 0xbc, 0x18, 0x7e, 0xaf, 0x4d, 0xd8, 0xb3, 0x20, 0xb3, 0xd2, 0xf8, 0x24, 0x98, 0x00, 0x43, 0x71, 0x8f, };
10439 static const u8 ed25519_454_test_vectors_message[] = {
10440 	0xfb, 0x3e, 0x82, 0xf1, 0x1b, 0xc2, 0x86, 0x26, 0x7e, 0x12, 0x38, 0x17, 0xad, 0x88, 0x64, 0xe0, 0x77, 0xd9, 0xf7, 0xa8, 0xe7, 0xa1, 0x63, 0xac, 0x7e, 0xea, 0xf9, 0x3d, 0x55, 0xdd, 0x11, 0x1d, 0xe8, 0x08, 0x3b, 0x66, 0xb5, 0x3c, 0xe7, 0xbc, 0x77, 0x1f, 0xc5, 0x07, 0x1a, 0x2d, 0x7a, 0xc2, 0xf8, 0x5d, 0x6f, 0xc6, 0xad, 0xcf, 0xce, 0xc4, 0x46, 0xe1, 0x6a, 0xa1, 0x04, 0x6d, 0xf3, 0x72, 0x09, 0xad, 0x7a, 0x29, 0xcf, 0x96, 0x65, 0xb4, 0x39, 0xa5, 0x4d, 0x6f, 0x8d, 0x94, 0x2f, 0x89, 0xbd, 0xaa, 0x56, 0xf2, 0xf1, 0x12, 0x60, 0xcc, 0x95, 0x99, 0x30, 0x38, 0xb0, 0xe8, 0xfb, 0xdb, 0x32, 0x14, 0xf1, 0x42, 0xe6, 0xc9, 0x0b, 0x61, 0xa1, 0xd2, 0xb1, 0x42, 0x07, 0x62, 0x06, 0xaf, 0x30, 0xac, 0x35, 0x78, 0x4a, 0x6d, 0xc1, 0x5a, 0x1e, 0x79, 0x25, 0x1a, 0x8c, 0x77, 0x31, 0xa1, 0xc5, 0x39, 0x78, 0x03, 0x8f, 0x8d, 0x76, 0xd7, 0x0c, 0x6c, 0x1c, 0xdf, 0x52, 0x9f, 0xbd, 0xb8, 0x4d, 0x15, 0x07, 0xdc, 0xff, 0xdd, 0x42, 0x87, 0x3d, 0xfa, 0x6a, 0x8f, 0xe6, 0xbd, 0x6f, 0x7f, 0xd2, 0x9c, 0x80, 0xe4, 0xb2, 0xf9, 0x33, 0xd2, 0xb6, 0xc9, 0xe6, 0x2c, 0x94, 0x57, 0xe6, 0x65, 0x47, 0x26, 0x55, 0x05, 0x9b, 0x63, 0xb6, 0x18, 0xe2, 0xa9, 0xa8, 0xe5, 0xb9, 0xe4, 0x1c, 0x36, 0x46, 0x17, 0x3a, 0x89, 0x2b, 0x8e, 0x6d, 0x4b, 0xca, 0xd6, 0xa6, 0x2a, 0x6f, 0xcc, 0xd3, 0x45, 0x58, 0x90, 0xb5, 0x8e, 0xc2, 0x68, 0x1a, 0x95, 0xcc, 0x97, 0x76, 0xa9, 0xfc, 0xe8, 0x3c, 0x54, 0xa9, 0xef, 0x31, 0x2a, 0x33, 0x19, 0x59, 0xc7, 0xef, 0x3f, 0x79, 0xee, 0x57, 0x6e, 0xb7, 0xb7, 0x94, 0x69, 0xc9, 0x23, 0x4b, 0x1e, 0xae, 0xf6, 0x09, 0x88, 0x47, 0x08, 0xfe, 0x4b, 0xb0, 0xef, 0xac, 0x66, 0x2d, 0xa8, 0x71, 0xba, 0x61, 0xdd, 0xab, 0xb3, 0xfc, 0xbd, 0xeb, 0x8f, 0x63, 0x56, 0x57, 0xdd, 0x9a, 0x5d, 0x73, 0x11, 0xe6, 0x39, 0xa8, 0x24, 0x85, 0x8b, 0x9a, 0x98, 0x68, 0xd3, 0xf9, 0x38, 0x4d, 0xa6, 0x12, 0xc7, 0xf2, 0xe7, 0x71, 0xa4, 0x6b, 0xd2, 0x62, 0x4c, 0x99, 0xea, 0x2b, 0x6c, 0xcb, 0xca, 0x99, 0x6c, 0x1d, 0x9c, 0x37, 0x55, 0x54, 0xf2, 0xa5, 0x51, 0x61, 0x9c, 0xe6, 0xd5, 0xe6, 0xe4, 0xd6, 0xb8, 0x44, 0xa4, 0xdb, 0xea, 0x83, 0xba, 0x73, 0x23, 0x31, 0xfc, 0xf4, 0x65, 0x72, 0xc1, 0xfb, 0x0e, 0x25, 0x7c, 0xe1, 0x04, 0x1b, 0x26, 0x5d, 0xf0, 0x2e, 0x69, 0x0a, 0x92, 0x81, 0x4b, 0xbf, 0x3b, 0x5e, 0xca, 0xc6, 0x9e, 0xe9, 0x98, 0x76, 0x6a, 0x02, 0xb0, 0xd2, 0xf9, 0x08, 0xb3, 0xc1, 0x5f, 0x95, 0x26, 0x99, 0x61, 0x6f, 0x2c, 0x07, 0xd5, 0x89, 0x19, 0x89, 0x89, 0xe6, 0x05, 0x6c, 0x16, 0x31, 0x9a, 0xab, 0x6c, 0xf8, 0x77, 0x19, 0x02, 0xc0, 0x78, 0x04, 0x6a, 0x88, 0xb2, 0x57, 0x0c, 0x13, 0xbc, 0x5e, 0xde, 0xba, 0x2e, 0xd1, 0xe3, 0xba, 0x13, 0x1d, 0xaf, 0x94, 0xe6, 0x89, 0x18, 0x62, 0xbb, 0x3d, 0xe7, 0xd1, 0x06, 0x3f, 0xe4, 0x05, 0x30, 0x7a, 0x5c, 0xd9, 0x75, 0x69, 0x3e, 0x9d, 0x58, 0xe1, 0x7c, 0x69, 0x0e, 0xee, 0xf4, 0xa2, 0x60, 0x3c, 0xaf, 0xc6, 0x8c, 0x2b, };
10441 static const u8 ed25519_454_test_vectors_expected_sig[] = {
10442 	0x93, 0xb6, 0xe2, 0x9d, 0x63, 0x94, 0x5d, 0x5c, 0x42, 0x73, 0x87, 0xd0, 0x06, 0xc7, 0xf0, 0xb0, 0x19, 0x56, 0xa9, 0x5f, 0xc0, 0x43, 0x6e, 0xd4, 0x2b, 0x46, 0xd0, 0xf1, 0x7b, 0x5b, 0xb1, 0x93, 0xea, 0x8c, 0x0e, 0xbb, 0xf3, 0xd6, 0xd1, 0x3b, 0xb5, 0x39, 0xe3, 0x5c, 0x91, 0xf3, 0xf0, 0xf9, 0xfa, 0x34, 0x14, 0xa0, 0x22, 0x3c, 0x90, 0x60, 0xba, 0xc8, 0x36, 0x53, 0xc6, 0xfc, 0xd9, 0x06, };
10443 static const ec_test_case ed25519_454_test_case = {
10444 	.name = "EDDSA25519-SHA512/wei25519 454",
10445 	.ec_str_p = &wei25519_str_params,
10446 	.priv_key = ed25519_454_test_vectors_priv_key,
10447 	.priv_key_len = sizeof(ed25519_454_test_vectors_priv_key),
10448 	.nn_random = NULL,
10449 	.hash_type = SHA512,
10450 	.msg = (const char *)ed25519_454_test_vectors_message,
10451 	.msglen = sizeof(ed25519_454_test_vectors_message),
10452 	.sig_type = EDDSA25519,
10453 	.exp_sig = ed25519_454_test_vectors_expected_sig,
10454 	.exp_siglen = sizeof(ed25519_454_test_vectors_expected_sig),
10455 	.adata = NULL,
10456 	.adata_len = 0
10457 };
10458 
10459 /************************************************/
10460 static const u8 ed25519_455_test_vectors_priv_key[] = {
10461 	0xe5, 0x71, 0x18, 0x9b, 0x5c, 0xd9, 0xe7, 0x88, 0x30, 0x2d, 0xe3, 0x91, 0x9d, 0x85, 0x0c, 0x22, 0x7d, 0xcb, 0xb6, 0x15, 0x02, 0x2e, 0x56, 0x8b, 0xda, 0xeb, 0x37, 0xac, 0x5b, 0x29, 0x39, 0xc5, };
10462 static const u8 ed25519_455_test_vectors_message[] = {
10463 	0xb6, 0x2c, 0x86, 0x7a, 0xd6, 0x22, 0x74, 0x35, 0xbf, 0xa6, 0xda, 0xb8, 0x30, 0x68, 0x4e, 0x38, 0xd1, 0x96, 0xe1, 0xf8, 0x61, 0xaa, 0xde, 0x0f, 0xd6, 0xa7, 0x69, 0x9b, 0x6d, 0x60, 0x90, 0x1f, 0xef, 0xb2, 0xd7, 0x99, 0xc3, 0x5c, 0x6f, 0x3d, 0x8b, 0xb9, 0x4d, 0xee, 0xe8, 0x34, 0x40, 0x39, 0x81, 0x86, 0x6b, 0xab, 0x84, 0x94, 0x6a, 0xe9, 0x47, 0x6c, 0x75, 0xe9, 0xf1, 0xd3, 0x60, 0x2b, 0x42, 0xcb, 0x2d, 0xb4, 0x37, 0xbf, 0xf3, 0x3a, 0x77, 0x58, 0x22, 0xf0, 0xd6, 0xa2, 0x57, 0xd4, 0xb7, 0x54, 0x00, 0xeb, 0xa5, 0xb8, 0xab, 0xb3, 0x14, 0xb7, 0x1f, 0xc6, 0xb4, 0x6f, 0x8a, 0x34, 0xe8, 0x61, 0xa9, 0xa6, 0x2a, 0xbf, 0x33, 0xde, 0x84, 0x82, 0xf6, 0x3f, 0x9d, 0x71, 0x69, 0xe7, 0x73, 0xa2, 0xdc, 0xeb, 0xee, 0x03, 0x70, 0x5d, 0xac, 0x11, 0x7f, 0xd1, 0x49, 0x9b, 0x68, 0xe7, 0x41, 0x4f, 0x51, 0xff, 0x94, 0x37, 0xf2, 0x53, 0xa1, 0xd9, 0x90, 0x1e, 0xc3, 0xb0, 0xbb, 0xa8, 0x69, 0x65, 0xa1, 0x93, 0x83, 0x65, 0x54, 0x87, 0xb5, 0x80, 0x10, 0xf8, 0x04, 0x90, 0x9d, 0xe1, 0xff, 0xb2, 0x21, 0x2c, 0x02, 0x52, 0xdd, 0xd9, 0xbf, 0x2a, 0x56, 0xac, 0x46, 0xbd, 0x59, 0xc0, 0xc3, 0x4d, 0xd5, 0x9e, 0x46, 0x59, 0x8b, 0x6b, 0xab, 0xd4, 0xe5, 0xf3, 0xff, 0xfd, 0xe5, 0x5e, 0x48, 0xda, 0xb0, 0x39, 0x8c, 0x22, 0xaf, 0x9e, 0x26, 0xba, 0xdd, 0xf7, 0x72, 0x75, 0xe5, 0xf0, 0x17, 0xb3, 0x5a, 0x9b, 0x8f, 0x84, 0x35, 0xf9, 0x63, 0x19, 0x36, 0xb3, 0x91, 0xcb, 0x95, 0xd7, 0xad, 0xf3, 0x5d, 0x1d, 0x85, 0x45, 0xa0, 0xfd, 0x06, 0x64, 0x12, 0xd5, 0x08, 0x96, 0x7b, 0xbe, 0x9a, 0x20, 0x24, 0x5a, 0x26, 0x9e, 0x3b, 0xe2, 0x77, 0x71, 0x17, 0xe7, 0x5f, 0xba, 0xc1, 0x70, 0xdb, 0xa3, 0x52, 0xbe, 0x69, 0xb2, 0x54, 0xd3, 0x53, 0xb3, 0xb2, 0xcb, 0x3b, 0x7e, 0x21, 0xb7, 0x21, 0xaa, 0x9f, 0xe0, 0x44, 0xf8, 0x91, 0x6b, 0x4b, 0x2a, 0x6f, 0x8c, 0x28, 0xf8, 0xab, 0xe6, 0x6a, 0xc9, 0x2b, 0x91, 0x32, 0x3a, 0xc7, 0x3a, 0xfd, 0x93, 0xdf, 0xbe, 0xea, 0xee, 0xf2, 0x6d, 0x19, 0xbd, 0x9f, 0x67, 0xe9, 0x9d, 0x48, 0xcd, 0x2a, 0xd2, 0xd3, 0xe5, 0x5e, 0x45, 0xd2, 0x4d, 0x54, 0xb5, 0x0f, 0x44, 0xa3, 0x9b, 0x90, 0xe2, 0x42, 0xeb, 0xe9, 0xb4, 0x2b, 0xeb, 0xdb, 0x23, 0x0c, 0x47, 0x0b, 0xdf, 0xde, 0x1b, 0xc7, 0x72, 0x1c, 0x31, 0x20, 0x00, 0x84, 0x77, 0x39, 0x3d, 0xcc, 0x2e, 0x15, 0xfd, 0x22, 0xb2, 0x51, 0xfe, 0xb0, 0xe1, 0x8b, 0x02, 0x88, 0x3c, 0x07, 0x8a, 0xee, 0x4f, 0xb7, 0x60, 0x65, 0x5a, 0x67, 0x1d, 0xc7, 0xb8, 0xaa, 0xdb, 0x9a, 0x56, 0x24, 0x20, 0xa3, 0xc2, 0xef, 0xa2, 0xd3, 0x42, 0xe1, 0xe0, 0x09, 0x9d, 0x95, 0x1b, 0x42, 0x24, 0x29, 0x84, 0xf5, 0x94, 0xe6, 0x91, 0x4f, 0xe2, 0x82, 0xb1, 0xee, 0x12, 0x87, 0x35, 0x98, 0x4e, 0xf9, 0x3a, 0x66, 0x9e, 0x6e, 0xcb, 0xa2, 0x6c, 0x9f, 0xcb, 0x9f, 0x09, 0xf0, 0x92, 0x56, 0x64, 0x56, 0x17, 0xf1, 0x39, 0x2d, 0x35, 0x90, 0x89, 0x17, 0xcb, 0x8d, 0x29, 0xe0, 0x89, 0x7c, 0x75, 0x03, 0xcd, 0xdd, 0x5d, 0xe1, 0x95, 0x96, 0x86, };
10464 static const u8 ed25519_455_test_vectors_expected_sig[] = {
10465 	0x7f, 0x79, 0x7a, 0x31, 0x71, 0x5d, 0x7c, 0x35, 0x6f, 0x8f, 0x1f, 0x78, 0x37, 0x00, 0xaa, 0x99, 0x74, 0xbb, 0x93, 0x6d, 0x66, 0x16, 0x61, 0xad, 0x96, 0x8c, 0x7c, 0xde, 0x1a, 0xc9, 0xe7, 0x67, 0xbe, 0x56, 0xa2, 0xdd, 0x49, 0xb9, 0x23, 0x0e, 0x90, 0x11, 0x0c, 0x67, 0xc0, 0xed, 0x18, 0x7c, 0xb7, 0xe7, 0x5c, 0x30, 0x53, 0xec, 0xe8, 0x44, 0x98, 0x4d, 0x29, 0x6f, 0x0d, 0x85, 0xcb, 0x07, };
10466 static const ec_test_case ed25519_455_test_case = {
10467 	.name = "EDDSA25519-SHA512/wei25519 455",
10468 	.ec_str_p = &wei25519_str_params,
10469 	.priv_key = ed25519_455_test_vectors_priv_key,
10470 	.priv_key_len = sizeof(ed25519_455_test_vectors_priv_key),
10471 	.nn_random = NULL,
10472 	.hash_type = SHA512,
10473 	.msg = (const char *)ed25519_455_test_vectors_message,
10474 	.msglen = sizeof(ed25519_455_test_vectors_message),
10475 	.sig_type = EDDSA25519,
10476 	.exp_sig = ed25519_455_test_vectors_expected_sig,
10477 	.exp_siglen = sizeof(ed25519_455_test_vectors_expected_sig),
10478 	.adata = NULL,
10479 	.adata_len = 0
10480 };
10481 
10482 /************************************************/
10483 static const u8 ed25519_456_test_vectors_priv_key[] = {
10484 	0x37, 0x17, 0x44, 0xab, 0x63, 0xc1, 0x15, 0x61, 0x39, 0x29, 0xa3, 0x43, 0x70, 0x9b, 0xb0, 0x19, 0xb7, 0x35, 0x7d, 0xff, 0x72, 0xd2, 0xa1, 0x49, 0xf1, 0xd0, 0xf7, 0x1d, 0x3a, 0x20, 0x1e, 0xfe, };
10485 static const u8 ed25519_456_test_vectors_message[] = {
10486 	0xc2, 0x19, 0xde, 0x1e, 0x8d, 0x7a, 0xd8, 0xdf, 0x08, 0xc4, 0x93, 0x77, 0x39, 0x6f, 0xe7, 0xc1, 0xf2, 0xd5, 0x7b, 0xd2, 0x17, 0x06, 0x33, 0xa0, 0x0d, 0x70, 0x8f, 0xaa, 0xde, 0xe1, 0x80, 0xce, 0xba, 0x92, 0x84, 0x9a, 0x77, 0x78, 0x50, 0x6c, 0xbb, 0x36, 0x68, 0x75, 0xbf, 0x91, 0x24, 0x70, 0x18, 0x94, 0xce, 0xcd, 0xb3, 0x38, 0x51, 0x47, 0xd0, 0x67, 0x18, 0x43, 0x92, 0x2a, 0x64, 0x9a, 0xff, 0x7c, 0x43, 0x5e, 0xb5, 0xa9, 0xc7, 0x49, 0x27, 0x50, 0x30, 0x72, 0xd0, 0x06, 0x79, 0x78, 0x71, 0x6d, 0xc8, 0x0b, 0xe1, 0x54, 0x5a, 0x2d, 0xbf, 0x5a, 0x1c, 0x38, 0x53, 0x6e, 0x12, 0xbd, 0x77, 0x20, 0xc1, 0x96, 0x5d, 0x38, 0x03, 0xa4, 0xe8, 0xaa, 0x55, 0x76, 0x51, 0x92, 0xa1, 0x3b, 0x70, 0x5c, 0xa1, 0x05, 0x9d, 0xed, 0x0e, 0x80, 0x63, 0x62, 0xfc, 0x5b, 0xbe, 0x6c, 0x76, 0xa1, 0xc9, 0x67, 0x4b, 0xb8, 0x53, 0x79, 0x0f, 0x7e, 0x90, 0xaf, 0x00, 0x75, 0x3e, 0x00, 0x43, 0x6d, 0xa4, 0x8c, 0xd0, 0x82, 0xea, 0xd6, 0x4f, 0xdd, 0xb6, 0x89, 0x89, 0x01, 0x62, 0x08, 0x2f, 0x84, 0x82, 0x92, 0x4f, 0x33, 0xac, 0xd6, 0x04, 0x64, 0x0f, 0x69, 0x92, 0x73, 0x52, 0xb4, 0x3f, 0x64, 0x40, 0x2d, 0x27, 0xa8, 0x83, 0xfa, 0x6b, 0x72, 0xaa, 0x70, 0xd2, 0x41, 0xdf, 0xfa, 0xa1, 0x70, 0x1a, 0x25, 0xcf, 0x10, 0x79, 0x35, 0x82, 0x60, 0x79, 0x38, 0x75, 0xf7, 0x6a, 0x29, 0x78, 0xe9, 0xf9, 0xf9, 0xd6, 0x86, 0x34, 0xeb, 0x3f, 0x5f, 0x01, 0xbd, 0xe1, 0xce, 0x49, 0xe5, 0x92, 0x12, 0x52, 0xf9, 0x49, 0xf0, 0x82, 0x79, 0x5e, 0x4e, 0xaf, 0xed, 0x7b, 0xe5, 0xb4, 0x9a, 0x9f, 0x95, 0xed, 0xbb, 0x4a, 0x13, 0x53, 0x2e, 0x3f, 0x3b, 0x3b, 0xe6, 0x2e, 0x26, 0x52, 0x23, 0x12, 0x53, 0xa2, 0x0c, 0x1d, 0x54, 0x77, 0xe8, 0xf4, 0xbc, 0x57, 0xed, 0x76, 0xfa, 0x19, 0xea, 0xf0, 0x3a, 0x11, 0xbb, 0xa4, 0x29, 0xb6, 0x49, 0x6c, 0xe7, 0x62, 0x46, 0x17, 0x0e, 0x04, 0x3b, 0xc1, 0x4f, 0x2d, 0x2f, 0x70, 0x3d, 0x96, 0x8f, 0x1d, 0xeb, 0x09, 0x38, 0x87, 0x15, 0xc3, 0x7c, 0xb4, 0x75, 0x2d, 0xa8, 0xd4, 0x64, 0xe3, 0x48, 0xe0, 0x31, 0x3c, 0x89, 0x93, 0xe2, 0x41, 0x33, 0xa7, 0xc5, 0x45, 0x28, 0x4e, 0x3c, 0x9c, 0x90, 0x7d, 0x01, 0xb2, 0x60, 0xc4, 0x88, 0x3f, 0x9c, 0xb3, 0xe3, 0xdc, 0x5b, 0x6f, 0x7f, 0xb6, 0xd7, 0x55, 0x36, 0x36, 0x5f, 0x21, 0x32, 0xea, 0xed, 0xda, 0xb5, 0x70, 0xe7, 0x27, 0x3a, 0xfa, 0xc0, 0xbf, 0xf5, 0xc9, 0xfc, 0x0b, 0x82, 0x0f, 0x20, 0x78, 0xe0, 0x33, 0x60, 0x52, 0xe1, 0xfe, 0x7b, 0xde, 0xc8, 0x66, 0x74, 0xd0, 0x99, 0x8e, 0xc7, 0x8d, 0xa1, 0xc3, 0xf3, 0x47, 0x51, 0xf8, 0x86, 0x72, 0x76, 0x95, 0xf3, 0x5e, 0xca, 0x13, 0x04, 0xb1, 0x47, 0x34, 0x76, 0x6a, 0xb0, 0x5c, 0x11, 0x86, 0x30, 0x6d, 0xed, 0x9d, 0xb3, 0xee, 0xf6, 0x5d, 0x3c, 0x04, 0x56, 0xcd, 0xae, 0x81, 0x81, 0xaf, 0xee, 0x04, 0xb2, 0x96, 0xc6, 0x72, 0x2a, 0x88, 0xc7, 0xef, 0x30, 0x88, 0xd2, 0x6f, 0x7f, 0xe7, 0x4b, 0xc8, 0x9c, 0xf5, 0x28, 0x5c, 0x68, 0x8f, 0x02, 0x7b, 0x7e, 0x68, 0x60, 0x04, 0x86, 0xaf, };
10487 static const u8 ed25519_456_test_vectors_expected_sig[] = {
10488 	0x5e, 0xae, 0x4a, 0xc7, 0x2a, 0xf0, 0x17, 0x4a, 0xb2, 0x56, 0x52, 0x7b, 0x7c, 0xd3, 0x37, 0xa0, 0xe5, 0x48, 0x2e, 0x61, 0x5a, 0xf0, 0x68, 0xdb, 0x21, 0xda, 0xe3, 0x5a, 0x64, 0x64, 0x07, 0x42, 0x60, 0x4d, 0xf7, 0x3f, 0xd4, 0xca, 0x02, 0xed, 0x95, 0x15, 0xa5, 0x60, 0x8d, 0x73, 0x19, 0x52, 0x30, 0xfa, 0xdc, 0xa7, 0xb4, 0x26, 0xf0, 0x2a, 0x2f, 0xbf, 0xd0, 0x20, 0x61, 0xaf, 0x36, 0x00, };
10489 static const ec_test_case ed25519_456_test_case = {
10490 	.name = "EDDSA25519-SHA512/wei25519 456",
10491 	.ec_str_p = &wei25519_str_params,
10492 	.priv_key = ed25519_456_test_vectors_priv_key,
10493 	.priv_key_len = sizeof(ed25519_456_test_vectors_priv_key),
10494 	.nn_random = NULL,
10495 	.hash_type = SHA512,
10496 	.msg = (const char *)ed25519_456_test_vectors_message,
10497 	.msglen = sizeof(ed25519_456_test_vectors_message),
10498 	.sig_type = EDDSA25519,
10499 	.exp_sig = ed25519_456_test_vectors_expected_sig,
10500 	.exp_siglen = sizeof(ed25519_456_test_vectors_expected_sig),
10501 	.adata = NULL,
10502 	.adata_len = 0
10503 };
10504 
10505 /************************************************/
10506 static const u8 ed25519_457_test_vectors_priv_key[] = {
10507 	0x49, 0x8b, 0x6e, 0xe6, 0x49, 0x2d, 0x53, 0x23, 0x1b, 0x35, 0x32, 0xd1, 0x93, 0x57, 0x8b, 0xa7, 0x5d, 0x6a, 0x89, 0x4e, 0x2e, 0x53, 0x00, 0x34, 0xe2, 0x1a, 0xb8, 0xad, 0x8d, 0x2c, 0x0d, 0x1f, };
10508 static const u8 ed25519_457_test_vectors_message[] = {
10509 	0x04, 0x98, 0xa5, 0x9b, 0x87, 0xcd, 0xae, 0x28, 0x69, 0x55, 0x47, 0xe1, 0x08, 0x63, 0xbc, 0xe8, 0x04, 0xd9, 0x7d, 0xe0, 0xac, 0x80, 0x08, 0xf3, 0xd5, 0xfb, 0x65, 0x2c, 0x17, 0x57, 0x41, 0x9f, 0xdc, 0x9e, 0x0f, 0x97, 0x36, 0xf4, 0xc5, 0x9a, 0x34, 0xf2, 0x1c, 0xfc, 0x74, 0x59, 0x9f, 0xa7, 0x88, 0xfc, 0xc1, 0x0c, 0x67, 0x30, 0xc7, 0xdf, 0x8c, 0x3d, 0x2c, 0x1b, 0x6a, 0x78, 0x6d, 0x12, 0x30, 0xb6, 0x55, 0x85, 0x71, 0x9d, 0x1c, 0xb5, 0xc4, 0x90, 0x35, 0x9b, 0x94, 0x43, 0x5d, 0x6d, 0xd6, 0x71, 0xf5, 0x4d, 0x6e, 0x9a, 0x19, 0xb9, 0xb5, 0xaa, 0xad, 0x7e, 0x0f, 0x23, 0x3f, 0x87, 0x97, 0xdf, 0x99, 0x78, 0x28, 0xd8, 0x8c, 0xd9, 0x2e, 0xf0, 0x89, 0xef, 0x7d, 0xbf, 0x1e, 0x95, 0x27, 0x78, 0x94, 0xa2, 0xf7, 0xc2, 0xfd, 0x0c, 0x8e, 0x4d, 0xfd, 0xfa, 0x6d, 0x3d, 0x14, 0x58, 0x9f, 0xf0, 0x19, 0x16, 0xdb, 0xf9, 0xdd, 0xd8, 0x11, 0xc2, 0xf5, 0xe0, 0x1e, 0x94, 0x29, 0x89, 0x90, 0xa1, 0x45, 0xa6, 0xcf, 0xc2, 0x68, 0x95, 0x61, 0x4c, 0x7c, 0x96, 0x3f, 0xef, 0x30, 0x8a, 0x4e, 0x38, 0x56, 0xc3, 0x2d, 0xd3, 0xe3, 0x59, 0xbc, 0x56, 0xd2, 0xcc, 0xa4, 0x96, 0xad, 0x19, 0x9f, 0xf1, 0xa5, 0x68, 0xd6, 0x43, 0x0a, 0xc5, 0xcd, 0x20, 0x8e, 0x0e, 0x2d, 0x07, 0x80, 0x3c, 0xa5, 0x23, 0xe0, 0xd8, 0x13, 0xad, 0x37, 0x33, 0xab, 0x50, 0xbd, 0xca, 0xdc, 0xb9, 0x88, 0xae, 0xe7, 0x58, 0xea, 0x50, 0x43, 0x9b, 0xf3, 0x8e, 0xe6, 0x49, 0x99, 0x76, 0x04, 0xf1, 0x51, 0xc6, 0x02, 0xc8, 0x29, 0x00, 0xa8, 0x20, 0x5d, 0x8f, 0x6f, 0x67, 0x0c, 0x86, 0x84, 0xbf, 0x5a, 0xbb, 0x5f, 0x75, 0xff, 0x29, 0xa3, 0x7e, 0xb9, 0xbf, 0x81, 0x05, 0x19, 0x9f, 0xbb, 0xfb, 0x47, 0x07, 0xe1, 0x62, 0xe6, 0x4c, 0x71, 0x52, 0x70, 0xf8, 0x53, 0xe6, 0x48, 0xb0, 0xaa, 0x26, 0xfe, 0xa0, 0xf6, 0xdb, 0x56, 0x28, 0x96, 0xbf, 0x42, 0x4a, 0x9f, 0xfc, 0xb2, 0x92, 0xfa, 0xe8, 0x5b, 0x76, 0xce, 0xfb, 0x8b, 0xd5, 0xa4, 0xb3, 0xce, 0x1f, 0xb3, 0x9b, 0xd2, 0xa5, 0x0d, 0x0c, 0x9e, 0x6d, 0x93, 0x3e, 0x16, 0x7f, 0xf6, 0x29, 0xb8, 0xa4, 0x94, 0xf2, 0xa9, 0xb7, 0x74, 0xeb, 0x30, 0x3c, 0x78, 0x1e, 0xa0, 0x2a, 0xff, 0x1a, 0x8a, 0xfa, 0xdc, 0x24, 0x65, 0xcc, 0x61, 0x69, 0x68, 0x01, 0x5e, 0xd6, 0xa5, 0xa3, 0x3c, 0x31, 0x20, 0xb9, 0x45, 0xed, 0x53, 0x51, 0x98, 0x1e, 0x32, 0xfb, 0x9f, 0xb9, 0x6b, 0x22, 0x12, 0xdc, 0xf8, 0xfe, 0x9a, 0xc5, 0x6e, 0x3c, 0xf4, 0x1d, 0xc5, 0x24, 0xf8, 0x00, 0x63, 0x10, 0x20, 0xb0, 0x25, 0x91, 0x91, 0x78, 0xce, 0x07, 0x4e, 0xef, 0x07, 0x8d, 0x68, 0x42, 0x01, 0x2a, 0x27, 0x6e, 0xfa, 0x62, 0x8d, 0xb5, 0x40, 0x58, 0xd1, 0xeb, 0x5b, 0x5b, 0x70, 0x5f, 0x1e, 0x18, 0x18, 0xd2, 0xdf, 0x51, 0x64, 0xba, 0xab, 0xb0, 0xc6, 0x19, 0x56, 0xec, 0xdb, 0x8c, 0x70, 0x6e, 0x56, 0x2f, 0xc4, 0xfd, 0x64, 0x05, 0x28, 0x70, 0x53, 0x0a, 0xe4, 0x25, 0xb2, 0x21, 0xf8, 0x9d, 0xd6, 0xf9, 0x0d, 0xab, 0x88, 0x2e, 0x76, 0x3e, 0x7a, 0x7f, 0xfa, 0x14, 0x1b, 0xba, 0xa8, 0xbf, 0x7a, 0x3f, 0x21, 0xb0, };
10510 static const u8 ed25519_457_test_vectors_expected_sig[] = {
10511 	0x11, 0x2f, 0x5c, 0x6d, 0x3b, 0xcb, 0x3d, 0xd9, 0x93, 0x46, 0xd3, 0x2a, 0xd6, 0x9c, 0xbf, 0xac, 0x3e, 0x65, 0x3b, 0xef, 0x29, 0xc6, 0x8a, 0x33, 0xf4, 0x32, 0x31, 0xf6, 0x6c, 0xea, 0x1d, 0x0a, 0x19, 0x54, 0x27, 0xd6, 0xe1, 0x0c, 0x0e, 0x77, 0xc5, 0xd5, 0x5f, 0xe2, 0x79, 0x42, 0x87, 0xee, 0x32, 0xe5, 0xe2, 0x2b, 0xaf, 0xbb, 0xd8, 0x05, 0x2a, 0xd3, 0x60, 0x6b, 0x90, 0xf9, 0x45, 0x05, };
10512 static const ec_test_case ed25519_457_test_case = {
10513 	.name = "EDDSA25519-SHA512/wei25519 457",
10514 	.ec_str_p = &wei25519_str_params,
10515 	.priv_key = ed25519_457_test_vectors_priv_key,
10516 	.priv_key_len = sizeof(ed25519_457_test_vectors_priv_key),
10517 	.nn_random = NULL,
10518 	.hash_type = SHA512,
10519 	.msg = (const char *)ed25519_457_test_vectors_message,
10520 	.msglen = sizeof(ed25519_457_test_vectors_message),
10521 	.sig_type = EDDSA25519,
10522 	.exp_sig = ed25519_457_test_vectors_expected_sig,
10523 	.exp_siglen = sizeof(ed25519_457_test_vectors_expected_sig),
10524 	.adata = NULL,
10525 	.adata_len = 0
10526 };
10527 
10528 /************************************************/
10529 static const u8 ed25519_458_test_vectors_priv_key[] = {
10530 	0xce, 0xfc, 0xfc, 0xd1, 0xcf, 0xf4, 0xd8, 0x91, 0x07, 0x49, 0x27, 0x91, 0x31, 0x83, 0x0b, 0x1d, 0xa1, 0x9d, 0xfc, 0x52, 0x45, 0xf7, 0x8c, 0xa6, 0x8b, 0x8c, 0x3c, 0x1b, 0x62, 0x2b, 0x45, 0x51, };
10531 static const u8 ed25519_458_test_vectors_message[] = {
10532 	0x5e, 0xc9, 0x4e, 0xd0, 0x6f, 0xc1, 0x25, 0x7a, 0xe9, 0xc1, 0x83, 0xce, 0x56, 0x27, 0x12, 0x07, 0xac, 0xa3, 0x7a, 0x23, 0xfd, 0xb4, 0xb0, 0xe7, 0x4a, 0xc9, 0x30, 0x7a, 0x1b, 0xb1, 0x12, 0xe0, 0x5e, 0xd5, 0xa5, 0xd0, 0x47, 0xc9, 0x31, 0x09, 0xe2, 0xe5, 0x94, 0x77, 0xb0, 0x33, 0x78, 0x34, 0x64, 0x22, 0xde, 0x36, 0x71, 0x4c, 0x29, 0x61, 0xbb, 0x97, 0x36, 0xa5, 0x13, 0xca, 0x36, 0x71, 0xc6, 0x03, 0xa6, 0x8c, 0x2b, 0xe7, 0x31, 0x7b, 0x1b, 0x52, 0xa0, 0x76, 0xda, 0xe2, 0xaf, 0xf7, 0xbc, 0x88, 0xcd, 0x5e, 0xea, 0x0a, 0xa2, 0x68, 0xfa, 0xaa, 0xda, 0xe5, 0x39, 0xc9, 0x38, 0xbb, 0x4f, 0xd4, 0xb6, 0x06, 0x9b, 0x19, 0x45, 0xeb, 0x6a, 0xf0, 0xc9, 0xe6, 0xc8, 0xaa, 0x5e, 0xe4, 0xa4, 0xaf, 0x37, 0xe9, 0x0c, 0x67, 0xe2, 0x48, 0xe8, 0xd2, 0x7b, 0xd7, 0xf9, 0x58, 0x9c, 0x4d, 0x30, 0xe9, 0x05, 0x65, 0x1b, 0xaf, 0x45, 0x36, 0x4f, 0xa0, 0x49, 0x95, 0x7e, 0xa5, 0xd9, 0xb7, 0x14, 0x6c, 0xa6, 0x82, 0x04, 0xe5, 0xe9, 0x73, 0xd0, 0xf1, 0xc9, 0x1a, 0x1c, 0x4b, 0xde, 0xd6, 0x61, 0x15, 0x02, 0x8a, 0x71, 0x11, 0x4f, 0x0f, 0x4f, 0x85, 0x1b, 0xd1, 0x15, 0xfa, 0xeb, 0x95, 0x4e, 0x3f, 0x71, 0xa0, 0x14, 0x70, 0xb2, 0x48, 0x1a, 0x00, 0x98, 0xd9, 0x9f, 0x9d, 0x74, 0x89, 0x8c, 0x8b, 0xa0, 0x28, 0x7c, 0xc7, 0x83, 0x41, 0x55, 0x21, 0x41, 0x73, 0xd1, 0xfc, 0xba, 0xfc, 0xfe, 0x9b, 0x08, 0x25, 0x03, 0x84, 0x43, 0x94, 0x76, 0x05, 0x58, 0x83, 0x83, 0x38, 0x16, 0xc9, 0x52, 0x4c, 0xfd, 0x57, 0x44, 0xaa, 0xa2, 0x59, 0xdb, 0x7e, 0xbd, 0x3a, 0x6a, 0xa2, 0x0b, 0x5a, 0x65, 0x46, 0xda, 0xde, 0xfd, 0x14, 0x06, 0x68, 0xeb, 0x0e, 0xcc, 0xb5, 0xf6, 0x68, 0xdb, 0x9f, 0xc6, 0x29, 0x83, 0xdf, 0x98, 0x08, 0x50, 0xc9, 0xd1, 0x98, 0x82, 0xa1, 0x75, 0x50, 0xd5, 0xdc, 0xa3, 0x54, 0x2c, 0xd3, 0x60, 0x03, 0xa0, 0xd0, 0x3c, 0xff, 0xb0, 0x45, 0x75, 0xa3, 0xe8, 0xe1, 0xd0, 0x70, 0x15, 0xc7, 0xb3, 0x0e, 0xca, 0x91, 0x15, 0xcd, 0x2b, 0x72, 0xe4, 0x6d, 0xfd, 0xdf, 0x6a, 0x4d, 0xda, 0x1f, 0xaa, 0x2d, 0xbd, 0xc8, 0x90, 0x00, 0xd4, 0x33, 0xf6, 0xec, 0x9a, 0xdc, 0x46, 0x14, 0x6d, 0x93, 0x9f, 0x32, 0x12, 0x1b, 0x99, 0xb2, 0x89, 0x83, 0xd9, 0x8b, 0x9d, 0xde, 0x8c, 0x3f, 0x6e, 0x57, 0x79, 0xf2, 0xb0, 0x70, 0x0c, 0xb0, 0x23, 0xdb, 0x13, 0xde, 0x65, 0x6e, 0x0a, 0xed, 0x1d, 0xa2, 0xd5, 0xc6, 0xba, 0x26, 0x52, 0x34, 0x36, 0x48, 0xad, 0x42, 0x0f, 0x6a, 0xb9, 0xe5, 0x5a, 0x97, 0x48, 0x2a, 0x1a, 0x22, 0xb3, 0xbc, 0x2e, 0xe5, 0x98, 0x62, 0x9a, 0xba, 0xd9, 0x54, 0x7e, 0xdb, 0x5f, 0xf7, 0x90, 0x99, 0x05, 0x64, 0xbd, 0x87, 0x1f, 0x81, 0xb2, 0x4b, 0x12, 0xf2, 0xbf, 0x8d, 0xbd, 0xfe, 0x7a, 0x88, 0x37, 0x5f, 0xad, 0x9c, 0xcb, 0xd9, 0xfc, 0x0b, 0xa1, 0xd3, 0xbb, 0xa5, 0xe3, 0xc4, 0x81, 0x3c, 0x18, 0xa0, 0x34, 0x8a, 0xad, 0x83, 0xfb, 0x1b, 0x82, 0x68, 0x90, 0x54, 0xd9, 0x9b, 0x46, 0x00, 0xdd, 0x17, 0x60, 0xd0, 0xdc, 0xce, 0x44, 0x75, 0x74, 0x67, 0xbe, 0xc1, 0x94, 0x64, 0x06, 0xd5, 0x30, };
10533 static const u8 ed25519_458_test_vectors_expected_sig[] = {
10534 	0x7d, 0x83, 0xff, 0x66, 0xec, 0x79, 0x30, 0x7b, 0x1c, 0x0c, 0x09, 0x3f, 0xda, 0x39, 0x68, 0xa9, 0x6c, 0xf6, 0x04, 0x4f, 0x5c, 0x80, 0x28, 0x88, 0x58, 0x40, 0x18, 0x84, 0x5e, 0x7c, 0xaf, 0x2a, 0x13, 0x5a, 0xc6, 0xf1, 0x67, 0x7e, 0x84, 0xd2, 0x2e, 0x45, 0x8e, 0x22, 0x7e, 0x4f, 0x93, 0x02, 0x09, 0x91, 0x9b, 0xc1, 0x1b, 0x12, 0xf7, 0xaa, 0xf2, 0xb8, 0xc9, 0x43, 0x02, 0xd6, 0x42, 0x00, };
10535 static const ec_test_case ed25519_458_test_case = {
10536 	.name = "EDDSA25519-SHA512/wei25519 458",
10537 	.ec_str_p = &wei25519_str_params,
10538 	.priv_key = ed25519_458_test_vectors_priv_key,
10539 	.priv_key_len = sizeof(ed25519_458_test_vectors_priv_key),
10540 	.nn_random = NULL,
10541 	.hash_type = SHA512,
10542 	.msg = (const char *)ed25519_458_test_vectors_message,
10543 	.msglen = sizeof(ed25519_458_test_vectors_message),
10544 	.sig_type = EDDSA25519,
10545 	.exp_sig = ed25519_458_test_vectors_expected_sig,
10546 	.exp_siglen = sizeof(ed25519_458_test_vectors_expected_sig),
10547 	.adata = NULL,
10548 	.adata_len = 0
10549 };
10550 
10551 /************************************************/
10552 static const u8 ed25519_459_test_vectors_priv_key[] = {
10553 	0xd1, 0x07, 0xcf, 0x26, 0xf5, 0x27, 0xdb, 0x71, 0xa2, 0x06, 0xe4, 0x1d, 0x17, 0x95, 0x53, 0x21, 0x01, 0x32, 0x25, 0xbb, 0x20, 0xf9, 0x3e, 0x12, 0xdf, 0x3d, 0xc7, 0x39, 0x9e, 0x72, 0x0c, 0xa3, };
10554 static const u8 ed25519_459_test_vectors_message[] = {
10555 	0x78, 0xeb, 0x9e, 0x13, 0x78, 0x99, 0x28, 0xa7, 0x4f, 0x36, 0x01, 0x41, 0x72, 0x8e, 0xde, 0x98, 0x38, 0x96, 0x85, 0xc8, 0x36, 0xb9, 0x1f, 0xaf, 0xbf, 0x1a, 0x7e, 0x8c, 0x19, 0xcf, 0xbe, 0x21, 0xbd, 0x3c, 0x3d, 0x6c, 0x6e, 0xd8, 0x3c, 0x40, 0x9e, 0xf6, 0x93, 0xf1, 0xd7, 0x35, 0xda, 0x3f, 0xa4, 0x66, 0x49, 0x7e, 0x19, 0xf3, 0x8e, 0x30, 0xfb, 0xa2, 0xa1, 0x02, 0x37, 0x85, 0x45, 0x90, 0x70, 0xe6, 0xe9, 0x2c, 0x1c, 0xb7, 0xc9, 0xbd, 0x0c, 0x9b, 0xa6, 0x12, 0x20, 0x15, 0x78, 0x66, 0xc3, 0xbe, 0xd2, 0xb0, 0x1e, 0x6e, 0x6b, 0x9b, 0x8d, 0xd3, 0xf0, 0xc4, 0x7c, 0x02, 0xf1, 0x81, 0x34, 0x6a, 0x0a, 0x9b, 0x9b, 0x5d, 0x3d, 0x7e, 0x18, 0xa9, 0x4d, 0x69, 0x56, 0x85, 0x5e, 0x16, 0xe8, 0xea, 0xaa, 0xab, 0x71, 0xb1, 0x03, 0x02, 0xf3, 0x5b, 0xd8, 0xfb, 0x1f, 0x9b, 0x58, 0x47, 0x30, 0x41, 0x60, 0x32, 0x49, 0x26, 0x64, 0x5b, 0x05, 0x82, 0xc2, 0xf2, 0xf1, 0x53, 0x3a, 0x24, 0x28, 0x14, 0x61, 0x51, 0x42, 0x41, 0xdb, 0x28, 0x50, 0xef, 0x31, 0xc5, 0x76, 0x3b, 0x2e, 0x3d, 0x4f, 0xb1, 0x8f, 0xc6, 0xd8, 0xc1, 0xd7, 0xe5, 0x2f, 0x7c, 0x13, 0x39, 0x2c, 0x17, 0xe2, 0x70, 0x19, 0xff, 0x60, 0x00, 0x8e, 0x43, 0x1f, 0x17, 0x14, 0x37, 0x0b, 0xc0, 0xef, 0xd9, 0x45, 0x2a, 0x61, 0xf5, 0xc5, 0x64, 0x88, 0xd9, 0x1a, 0x18, 0x50, 0x37, 0xf1, 0xf6, 0x47, 0xf7, 0x2f, 0xa7, 0x85, 0x01, 0x0d, 0x5d, 0x78, 0xf0, 0xa1, 0x15, 0x87, 0xcc, 0xf6, 0x6b, 0x80, 0x88, 0xe0, 0xe6, 0x35, 0xff, 0xf3, 0x77, 0x41, 0x93, 0xb2, 0xed, 0xef, 0xfd, 0x92, 0xd6, 0xe8, 0xa0, 0x32, 0x11, 0x28, 0xae, 0x64, 0xcd, 0xb8, 0x62, 0xe6, 0x31, 0xe2, 0xee, 0x5b, 0xa0, 0xda, 0x44, 0xbb, 0xd5, 0x89, 0xdc, 0x39, 0x2b, 0x5a, 0x11, 0x3b, 0x86, 0xa7, 0x27, 0xa8, 0xdd, 0xb6, 0x98, 0xa3, 0x34, 0xcc, 0x66, 0x8b, 0x39, 0xb1, 0xcd, 0xe1, 0x99, 0xb8, 0x88, 0x37, 0xca, 0x5f, 0x00, 0xf5, 0x53, 0xf8, 0x9c, 0x62, 0x28, 0x34, 0x27, 0x36, 0x41, 0xd3, 0x9b, 0xc1, 0x0c, 0x6a, 0x24, 0xe1, 0xeb, 0x42, 0x58, 0x75, 0x42, 0xf0, 0x3f, 0xc1, 0x62, 0x75, 0x24, 0xed, 0x6b, 0x74, 0x93, 0x91, 0xf1, 0x10, 0x28, 0x70, 0x6c, 0x42, 0x36, 0x44, 0x25, 0xb2, 0xca, 0xf2, 0x01, 0x80, 0xe1, 0xb8, 0x02, 0xc7, 0x44, 0xb4, 0x9b, 0x7b, 0xcd, 0x9b, 0xf7, 0xb1, 0x5c, 0x23, 0xa0, 0xbf, 0x1c, 0x69, 0x65, 0x96, 0x0d, 0x34, 0x15, 0x54, 0xe1, 0x96, 0x6b, 0x6e, 0xf8, 0x2f, 0xcf, 0xbb, 0xe4, 0x1d, 0x1e, 0x09, 0xd7, 0x41, 0xe3, 0x09, 0x25, 0x44, 0x46, 0x77, 0x7f, 0x13, 0xc2, 0x9a, 0x67, 0xb8, 0xbd, 0xeb, 0xc5, 0xf7, 0xf0, 0x4d, 0x16, 0x0d, 0x60, 0xe3, 0x32, 0xe3, 0xd0, 0x44, 0x1a, 0x0f, 0x2f, 0x7b, 0x19, 0x2c, 0x3e, 0x2b, 0xdf, 0x6d, 0xad, 0xec, 0x2a, 0x42, 0x4f, 0x88, 0x66, 0x98, 0x06, 0x23, 0x6e, 0xe0, 0x4d, 0xea, 0x69, 0x2b, 0xd8, 0xbb, 0x6f, 0x91, 0xca, 0x06, 0x82, 0xec, 0xe3, 0x49, 0x14, 0x25, 0x75, 0x35, 0x8b, 0x9b, 0x7b, 0xe7, 0x06, 0x00, 0xb3, 0xcb, 0x81, 0xe1, 0x45, 0x6b, 0xa0, 0x79, 0x9f, 0xdc, 0x01, 0xff, 0xd6, 0x86, 0x23, };
10556 static const u8 ed25519_459_test_vectors_expected_sig[] = {
10557 	0x80, 0x71, 0xd9, 0x7f, 0x32, 0x4f, 0x10, 0x35, 0x8f, 0x13, 0xac, 0x8c, 0x61, 0xd4, 0x24, 0xb4, 0xf3, 0x00, 0xdd, 0x04, 0x19, 0x57, 0x1c, 0x39, 0xe4, 0x0d, 0x99, 0xae, 0xa5, 0xf0, 0x31, 0x40, 0xe6, 0x2a, 0xb4, 0xc9, 0x71, 0x27, 0xab, 0x33, 0xe9, 0x82, 0x69, 0x96, 0x6a, 0xe1, 0xd4, 0x55, 0x7e, 0x45, 0x9b, 0xf7, 0xf5, 0x97, 0xb3, 0x13, 0xf3, 0x51, 0xa2, 0x01, 0x22, 0xf0, 0x66, 0x0e, };
10558 static const ec_test_case ed25519_459_test_case = {
10559 	.name = "EDDSA25519-SHA512/wei25519 459",
10560 	.ec_str_p = &wei25519_str_params,
10561 	.priv_key = ed25519_459_test_vectors_priv_key,
10562 	.priv_key_len = sizeof(ed25519_459_test_vectors_priv_key),
10563 	.nn_random = NULL,
10564 	.hash_type = SHA512,
10565 	.msg = (const char *)ed25519_459_test_vectors_message,
10566 	.msglen = sizeof(ed25519_459_test_vectors_message),
10567 	.sig_type = EDDSA25519,
10568 	.exp_sig = ed25519_459_test_vectors_expected_sig,
10569 	.exp_siglen = sizeof(ed25519_459_test_vectors_expected_sig),
10570 	.adata = NULL,
10571 	.adata_len = 0
10572 };
10573 
10574 /************************************************/
10575 static const u8 ed25519_460_test_vectors_priv_key[] = {
10576 	0xaf, 0x7e, 0xa8, 0xe4, 0x1c, 0x89, 0x37, 0xa4, 0xec, 0x47, 0x5a, 0xd8, 0x13, 0x71, 0xa1, 0x71, 0xd3, 0xd0, 0xf9, 0xfd, 0x75, 0x19, 0xa0, 0x4c, 0x75, 0x1e, 0xd4, 0xad, 0x8f, 0xf8, 0xfe, 0xf9, };
10577 static const u8 ed25519_460_test_vectors_message[] = {
10578 	0x05, 0xf2, 0x26, 0x3f, 0x02, 0x45, 0xec, 0xb9, 0xfa, 0xeb, 0x14, 0xe5, 0x7a, 0xca, 0x43, 0x66, 0x68, 0x30, 0x8c, 0x81, 0x25, 0xdf, 0x31, 0x16, 0xc4, 0xee, 0x20, 0x50, 0x1d, 0x0c, 0xde, 0x70, 0x1b, 0x36, 0x6e, 0x2b, 0x50, 0xa1, 0xc5, 0xed, 0xf4, 0x84, 0x14, 0x4c, 0xe1, 0x6b, 0xfb, 0x1f, 0x7d, 0x26, 0xdc, 0x42, 0x75, 0xea, 0x97, 0x32, 0xe2, 0x64, 0xba, 0x4d, 0x4a, 0x36, 0x2b, 0x40, 0x27, 0x5b, 0xa4, 0x73, 0x77, 0xdb, 0xc3, 0x32, 0xcb, 0x65, 0xe2, 0xf4, 0xc8, 0x85, 0x38, 0x94, 0xaa, 0x87, 0x8a, 0x4c, 0x17, 0x5d, 0xc5, 0xb3, 0xb2, 0xa7, 0x57, 0xff, 0x3c, 0x8d, 0x7d, 0xe6, 0x60, 0x97, 0x3b, 0x89, 0xda, 0xdf, 0x07, 0x6e, 0x2e, 0x4f, 0xc7, 0x62, 0x39, 0xb7, 0xbc, 0x75, 0x2a, 0x22, 0x9d, 0x44, 0xe0, 0x00, 0xce, 0xb6, 0x67, 0x10, 0x4c, 0xb0, 0x74, 0x6b, 0xfc, 0xf5, 0x9d, 0x69, 0x60, 0x3a, 0xe7, 0xfc, 0x1b, 0xcf, 0x11, 0xd2, 0xe3, 0x3f, 0x61, 0xdc, 0x49, 0x7e, 0xc1, 0xb0, 0xbd, 0x5e, 0x4f, 0x1d, 0xbe, 0xf4, 0x35, 0xf2, 0xf2, 0x91, 0xf3, 0x0b, 0x00, 0xa8, 0x5e, 0x83, 0x39, 0x46, 0xc8, 0xb1, 0x04, 0x84, 0xe4, 0xab, 0xd7, 0xd6, 0x0b, 0xdb, 0xb1, 0xfe, 0x6d, 0xff, 0x58, 0x07, 0xa5, 0x3b, 0xb8, 0x93, 0x82, 0x15, 0x30, 0x13, 0xb7, 0x0c, 0xa0, 0x8e, 0xfc, 0x91, 0xb7, 0xe9, 0xfc, 0x5b, 0x5d, 0xbb, 0xb6, 0xaf, 0x12, 0x3b, 0x57, 0xbe, 0x2e, 0x14, 0x0f, 0xc4, 0x71, 0xa4, 0x5d, 0x89, 0xfa, 0x82, 0x84, 0xcc, 0x27, 0xe0, 0xa1, 0xfe, 0x77, 0x1f, 0x55, 0x59, 0x8b, 0xbd, 0xcf, 0x06, 0x8d, 0x50, 0x6d, 0xad, 0x0a, 0x59, 0x21, 0x79, 0xce, 0xca, 0x39, 0xee, 0x95, 0x26, 0xf9, 0xe4, 0xfe, 0x47, 0xbf, 0x2b, 0xb1, 0x4f, 0xb1, 0x48, 0x6a, 0x67, 0x7d, 0x4d, 0x7b, 0x99, 0xa5, 0x20, 0x54, 0x56, 0x76, 0xa0, 0xf1, 0xfa, 0x80, 0x90, 0x49, 0xaa, 0x24, 0x14, 0xae, 0x7b, 0x81, 0x7d, 0x9a, 0x03, 0x6e, 0x5c, 0x15, 0x78, 0x86, 0xe8, 0x34, 0x1d, 0x4e, 0x81, 0x9c, 0x09, 0x2a, 0x3b, 0x48, 0xb3, 0x60, 0x6b, 0x03, 0xac, 0xb7, 0x27, 0xc6, 0xc2, 0x21, 0x7d, 0x0a, 0xf3, 0x01, 0x21, 0x54, 0x6a, 0x94, 0xaf, 0x6b, 0x49, 0xca, 0xa2, 0xa8, 0xc9, 0xb1, 0x78, 0x6f, 0xa0, 0xc2, 0xa5, 0x24, 0xec, 0x7a, 0x02, 0x3e, 0x92, 0x4b, 0x5f, 0x8a, 0x89, 0xa5, 0x37, 0x80, 0xc7, 0xf8, 0x78, 0x1c, 0x5b, 0x8e, 0x86, 0x94, 0x30, 0xca, 0xa0, 0xe6, 0xd0, 0x43, 0x79, 0x67, 0xe3, 0xae, 0xd4, 0x4f, 0x45, 0xc9, 0x01, 0xcb, 0xcf, 0x10, 0x26, 0xfb, 0xbd, 0x4e, 0x3d, 0xd9, 0xa0, 0x91, 0xec, 0xf8, 0xb3, 0x4f, 0x7d, 0xd5, 0x03, 0x8e, 0x54, 0x3d, 0xc7, 0xeb, 0x6a, 0xd5, 0x49, 0x4e, 0xfb, 0x14, 0x5c, 0xf6, 0x3e, 0xc0, 0xd3, 0x55, 0xbb, 0x8e, 0x17, 0x2f, 0x45, 0x5d, 0x8a, 0x6b, 0x13, 0xda, 0xca, 0xad, 0xdb, 0xc5, 0x6e, 0x47, 0xde, 0x3c, 0xf7, 0x62, 0xa1, 0xa7, 0x38, 0xef, 0x09, 0x2f, 0x14, 0x36, 0x68, 0x04, 0x67, 0xb5, 0xcd, 0x82, 0xe9, 0xe3, 0x6e, 0x2d, 0x2b, 0x68, 0x42, 0xb3, 0xbd, 0x5d, 0xce, 0x77, 0x18, 0x0d, 0xda, 0xf0, 0xb6, 0x43, 0x37, 0x8e, 0x69, 0x85, 0x99, 0xdd, 0x47, 0xf5, 0xcd, 0xbb, };
10579 static const u8 ed25519_460_test_vectors_expected_sig[] = {
10580 	0xc0, 0xf1, 0x73, 0x91, 0x67, 0x27, 0x4b, 0xf9, 0x18, 0x31, 0xc7, 0x4b, 0xeb, 0x64, 0x5a, 0xf7, 0x90, 0x45, 0x9b, 0x28, 0xbb, 0x3f, 0x21, 0x32, 0x53, 0x65, 0x13, 0x0f, 0x40, 0x9a, 0xcb, 0x66, 0xdf, 0x1d, 0x22, 0x37, 0x59, 0xa9, 0x75, 0x8e, 0x08, 0xfd, 0x72, 0x53, 0x73, 0x74, 0x84, 0xe2, 0x85, 0xa6, 0xfb, 0x47, 0x40, 0x4a, 0xbe, 0x2e, 0xba, 0x5e, 0xf2, 0x49, 0xfd, 0x02, 0x5c, 0x0a, };
10581 static const ec_test_case ed25519_460_test_case = {
10582 	.name = "EDDSA25519-SHA512/wei25519 460",
10583 	.ec_str_p = &wei25519_str_params,
10584 	.priv_key = ed25519_460_test_vectors_priv_key,
10585 	.priv_key_len = sizeof(ed25519_460_test_vectors_priv_key),
10586 	.nn_random = NULL,
10587 	.hash_type = SHA512,
10588 	.msg = (const char *)ed25519_460_test_vectors_message,
10589 	.msglen = sizeof(ed25519_460_test_vectors_message),
10590 	.sig_type = EDDSA25519,
10591 	.exp_sig = ed25519_460_test_vectors_expected_sig,
10592 	.exp_siglen = sizeof(ed25519_460_test_vectors_expected_sig),
10593 	.adata = NULL,
10594 	.adata_len = 0
10595 };
10596 
10597 /************************************************/
10598 static const u8 ed25519_461_test_vectors_priv_key[] = {
10599 	0x0c, 0x57, 0xcb, 0xfc, 0xeb, 0xde, 0x10, 0xed, 0xe0, 0x2d, 0x1c, 0xb0, 0x1d, 0xf3, 0x60, 0xd4, 0x1f, 0x2e, 0x66, 0xa5, 0x04, 0x43, 0xd5, 0x8b, 0x5d, 0x4f, 0x08, 0x28, 0xc9, 0xa1, 0x8b, 0xb7, };
10600 static const u8 ed25519_461_test_vectors_message[] = {
10601 	0x33, 0x77, 0x03, 0x24, 0x3a, 0xb5, 0xb4, 0xe4, 0xd3, 0x48, 0x1e, 0xe8, 0xdd, 0x1f, 0x44, 0x94, 0x50, 0x71, 0x74, 0x41, 0x26, 0x58, 0xa9, 0x39, 0x88, 0xb5, 0xc3, 0x04, 0x03, 0xa7, 0xb7, 0xed, 0x85, 0x22, 0xce, 0xb4, 0x6f, 0xa1, 0xee, 0x02, 0x75, 0x3a, 0x87, 0x4e, 0xf0, 0x67, 0x5d, 0x39, 0x7c, 0x57, 0x5d, 0xa0, 0xb0, 0x8c, 0xaa, 0x8c, 0xee, 0x33, 0x93, 0x78, 0x4d, 0x0f, 0x0d, 0xb8, 0x45, 0x98, 0x37, 0xaf, 0x90, 0xb9, 0x05, 0x6d, 0xf4, 0xe3, 0x8e, 0x41, 0x7f, 0x3a, 0xd2, 0xeb, 0x1a, 0x10, 0x0e, 0xf2, 0x07, 0xce, 0x2c, 0xa6, 0xc6, 0x10, 0x01, 0x80, 0x21, 0x66, 0x1e, 0x30, 0x70, 0x99, 0xf2, 0xb7, 0xc4, 0xae, 0x87, 0x59, 0x91, 0x14, 0x0b, 0xdd, 0x3f, 0x0f, 0x99, 0xad, 0x2c, 0x5d, 0x55, 0xaa, 0xcb, 0x84, 0xcc, 0x1c, 0xdc, 0xd5, 0x79, 0xe0, 0x80, 0x72, 0xb6, 0x95, 0x1f, 0xd4, 0x5e, 0xd2, 0x89, 0xac, 0x9f, 0xf7, 0xf0, 0x98, 0x6a, 0xc8, 0x8a, 0x4f, 0xbb, 0x9d, 0xc9, 0x20, 0x3d, 0x9b, 0xaf, 0x18, 0x0c, 0x90, 0xed, 0xf9, 0x37, 0x25, 0x8c, 0x9d, 0x0a, 0x6d, 0x48, 0xe2, 0x20, 0xf7, 0x2d, 0x25, 0x0c, 0x7f, 0x2c, 0x77, 0x7e, 0xaa, 0x7f, 0xb9, 0xfa, 0x11, 0xd5, 0x0a, 0x57, 0x98, 0x77, 0x2f, 0x9f, 0xd9, 0x76, 0xb0, 0x05, 0x99, 0xf1, 0xf0, 0x27, 0x6f, 0x3a, 0x2e, 0x4d, 0x98, 0x8a, 0xe9, 0x21, 0x25, 0x46, 0x7a, 0x8d, 0xed, 0xb7, 0xa1, 0x6f, 0x9e, 0x3a, 0x56, 0xe8, 0xd0, 0x06, 0x62, 0xb3, 0xeb, 0x67, 0xa3, 0x5b, 0x9b, 0x60, 0xe7, 0x3b, 0xd9, 0x35, 0x07, 0x7e, 0xe2, 0x38, 0xdf, 0x8f, 0x6e, 0x83, 0x3b, 0x9a, 0x55, 0x23, 0x38, 0x68, 0x26, 0xc1, 0xf2, 0x91, 0x7b, 0x1c, 0x3e, 0xc9, 0x8e, 0x0a, 0x5f, 0xde, 0x89, 0xc4, 0x8b, 0x1d, 0x44, 0x6d, 0xa5, 0xd0, 0xc8, 0x85, 0xfe, 0xf0, 0xe3, 0x74, 0xbf, 0xf3, 0x0a, 0x99, 0x7c, 0x7b, 0xaf, 0xd5, 0xe7, 0x43, 0xc8, 0x5d, 0x0c, 0x6a, 0xaa, 0x6e, 0xf1, 0x0a, 0x06, 0x12, 0x11, 0xa2, 0x32, 0x7c, 0x6d, 0x84, 0xeb, 0x74, 0x7a, 0x56, 0xe9, 0xbf, 0x60, 0xfc, 0xd5, 0xb5, 0x53, 0xb7, 0x98, 0x83, 0x4d, 0x0c, 0x5c, 0xca, 0xdb, 0x9d, 0x4b, 0x54, 0xe7, 0x23, 0x7d, 0x12, 0xc6, 0x79, 0xc1, 0x93, 0xa2, 0x87, 0xbb, 0x2f, 0x51, 0x1c, 0xd4, 0xee, 0x2a, 0x2d, 0x85, 0x49, 0xb4, 0x4b, 0x21, 0xc1, 0x1f, 0xbe, 0x57, 0x23, 0x38, 0x1c, 0x6c, 0x5f, 0x78, 0x46, 0x87, 0xfd, 0x90, 0xce, 0xbc, 0x5b, 0x49, 0x5a, 0xf9, 0xe4, 0x14, 0xf2, 0x96, 0x1b, 0x06, 0xa1, 0xc8, 0x43, 0x3b, 0x9a, 0xa3, 0x29, 0x2b, 0xcf, 0xf4, 0x24, 0x1c, 0x22, 0x71, 0x67, 0xf8, 0xd1, 0xde, 0x05, 0x4b, 0xa3, 0x3a, 0xd8, 0x1d, 0xa3, 0xeb, 0x3e, 0xc6, 0xe4, 0x0a, 0x6e, 0x26, 0x85, 0x4a, 0xf3, 0x49, 0x54, 0x01, 0x71, 0xb7, 0x5d, 0x75, 0xfb, 0x9a, 0x8d, 0x12, 0x93, 0x78, 0x27, 0xfd, 0x59, 0x4d, 0x31, 0x7b, 0x7a, 0x8d, 0x9f, 0x1c, 0x2f, 0xca, 0xbd, 0xa5, 0x63, 0x75, 0x56, 0x8c, 0x3e, 0x9e, 0x51, 0x4c, 0x2e, 0xff, 0xfc, 0x38, 0x78, 0x36, 0x3d, 0xcf, 0xad, 0x9f, 0xd9, 0x54, 0x36, 0xb0, 0x22, 0xe8, 0x77, 0x2a, 0x88, 0xcb, 0x71, 0xe8, 0x03, 0xbf, 0x90, 0x38, 0x19, 0x62, };
10602 static const u8 ed25519_461_test_vectors_expected_sig[] = {
10603 	0x8a, 0xf7, 0xbb, 0xe0, 0x1b, 0x8a, 0xb9, 0x39, 0x51, 0xd1, 0x6f, 0xca, 0x05, 0xa9, 0xc9, 0x67, 0xd1, 0xc5, 0x2c, 0x97, 0x4b, 0xea, 0x15, 0x1e, 0xa7, 0x2e, 0x4c, 0xeb, 0xaa, 0x20, 0xcc, 0x78, 0x3b, 0xb6, 0x1d, 0x8d, 0x69, 0x38, 0x5c, 0xac, 0x5b, 0xc6, 0xd7, 0x2d, 0xbd, 0x16, 0x2b, 0xee, 0xf1, 0xfc, 0xb5, 0xdd, 0x0e, 0x0a, 0x08, 0xb4, 0x8c, 0xa0, 0xb9, 0xf6, 0xd9, 0xa9, 0x88, 0x0c, };
10604 static const ec_test_case ed25519_461_test_case = {
10605 	.name = "EDDSA25519-SHA512/wei25519 461",
10606 	.ec_str_p = &wei25519_str_params,
10607 	.priv_key = ed25519_461_test_vectors_priv_key,
10608 	.priv_key_len = sizeof(ed25519_461_test_vectors_priv_key),
10609 	.nn_random = NULL,
10610 	.hash_type = SHA512,
10611 	.msg = (const char *)ed25519_461_test_vectors_message,
10612 	.msglen = sizeof(ed25519_461_test_vectors_message),
10613 	.sig_type = EDDSA25519,
10614 	.exp_sig = ed25519_461_test_vectors_expected_sig,
10615 	.exp_siglen = sizeof(ed25519_461_test_vectors_expected_sig),
10616 	.adata = NULL,
10617 	.adata_len = 0
10618 };
10619 
10620 /************************************************/
10621 static const u8 ed25519_462_test_vectors_priv_key[] = {
10622 	0xfe, 0x71, 0x72, 0x27, 0x83, 0x64, 0x19, 0x4b, 0xcf, 0xef, 0xb4, 0x78, 0x31, 0x42, 0xb7, 0x9f, 0x59, 0xd5, 0xfd, 0x97, 0x8b, 0x1e, 0x47, 0xc3, 0x14, 0xd7, 0x8d, 0x4c, 0xb3, 0xf6, 0x1c, 0x8a, };
10623 static const u8 ed25519_462_test_vectors_message[] = {
10624 	0x23, 0x50, 0x94, 0x51, 0xa0, 0x59, 0x96, 0x9f, 0x2b, 0x4b, 0xdf, 0xce, 0xe5, 0x38, 0x89, 0x57, 0xe9, 0x45, 0x6d, 0x1f, 0xc0, 0xcd, 0x85, 0x7e, 0x4f, 0x4d, 0x3c, 0x25, 0xa4, 0x15, 0x5d, 0x5e, 0xe9, 0x1c, 0x20, 0x53, 0xd5, 0x58, 0x06, 0x2e, 0xea, 0x68, 0x27, 0x95, 0x0d, 0xe8, 0x63, 0xbc, 0x9c, 0x3d, 0xf9, 0x67, 0x2c, 0xde, 0x8b, 0xa7, 0x41, 0x74, 0x4e, 0xbb, 0xdd, 0xb4, 0x5e, 0xc1, 0xf4, 0x28, 0x45, 0x70, 0xfd, 0x0a, 0xac, 0xd0, 0x7e, 0xa5, 0x8c, 0x58, 0x1b, 0xe2, 0xaf, 0xc9, 0x5a, 0xe4, 0x44, 0xe6, 0x78, 0xed, 0xc2, 0xa0, 0x24, 0x39, 0xf3, 0x87, 0xce, 0xc9, 0x82, 0xea, 0x3a, 0x44, 0x81, 0x4a, 0x8a, 0x30, 0x2b, 0xb3, 0xbf, 0xe8, 0x22, 0x8d, 0x58, 0xde, 0x03, 0x9d, 0xeb, 0xdf, 0x7c, 0x2a, 0x7e, 0xdd, 0xb4, 0xe7, 0x1c, 0xa4, 0x74, 0xf9, 0x4f, 0x7e, 0x2b, 0xd8, 0x9d, 0xc6, 0x5b, 0x16, 0x10, 0x73, 0x3c, 0x91, 0xff, 0xf8, 0x9b, 0xd4, 0x99, 0xf4, 0x01, 0x54, 0xa6, 0x19, 0x8f, 0xdf, 0x5e, 0xc7, 0xad, 0x37, 0x22, 0xd9, 0x25, 0xb2, 0x92, 0x19, 0x6c, 0x42, 0x94, 0x99, 0x07, 0x5b, 0xe0, 0xc5, 0xb6, 0xda, 0x9c, 0x09, 0x0c, 0x07, 0x91, 0xa7, 0x01, 0x9e, 0xb5, 0xe7, 0x36, 0x6b, 0xe6, 0xce, 0x58, 0xab, 0x2f, 0x04, 0xfe, 0xcd, 0x91, 0x27, 0xc4, 0x27, 0x18, 0x04, 0x7b, 0xf4, 0x70, 0x30, 0x69, 0x15, 0x21, 0x31, 0x2c, 0x08, 0x77, 0xaa, 0x3f, 0x36, 0xcc, 0x5f, 0xbc, 0x9c, 0xaa, 0xe0, 0xfd, 0xe3, 0x94, 0x5d, 0x2a, 0x86, 0x8e, 0xe2, 0x50, 0x2a, 0x38, 0x33, 0x20, 0x8e, 0xb8, 0x50, 0xa1, 0x63, 0xcf, 0xcb, 0xf6, 0xda, 0x9e, 0xe6, 0xad, 0x9f, 0xe0, 0x67, 0xfe, 0x24, 0x19, 0x86, 0xfe, 0x44, 0x36, 0xd6, 0xae, 0x4e, 0xdc, 0x61, 0x56, 0x19, 0x38, 0xe2, 0xa3, 0x3f, 0x4a, 0x33, 0xdb, 0x63, 0xf6, 0x9d, 0x3f, 0x1a, 0x88, 0x50, 0xed, 0x40, 0x02, 0x88, 0x69, 0x16, 0x41, 0x03, 0x48, 0x8f, 0xb7, 0x95, 0xcd, 0x82, 0xca, 0x06, 0x7f, 0xe1, 0xb4, 0x89, 0x7c, 0xaa, 0x49, 0xa7, 0xca, 0x9a, 0x80, 0xf3, 0xa8, 0x15, 0x1f, 0xd1, 0x3b, 0xbb, 0x7f, 0xf3, 0x50, 0xe8, 0x57, 0x9f, 0x56, 0x5d, 0xc1, 0xc4, 0xa9, 0xca, 0x93, 0x8d, 0x27, 0xb1, 0x5b, 0x3f, 0x85, 0x8e, 0xf4, 0x5d, 0x3d, 0xd7, 0x8b, 0x2c, 0x35, 0x86, 0x35, 0x35, 0x63, 0x15, 0xf5, 0x5a, 0x97, 0x52, 0x8e, 0xcf, 0xec, 0x5d, 0x11, 0xa5, 0xb7, 0x21, 0x50, 0x31, 0x07, 0xfa, 0xa4, 0x06, 0xc1, 0x70, 0x34, 0xe6, 0x01, 0x47, 0x4b, 0x3b, 0x60, 0xcf, 0x48, 0x69, 0x2e, 0x26, 0x92, 0x61, 0x15, 0x8f, 0xc3, 0x53, 0xd4, 0xdf, 0x42, 0x74, 0x38, 0x13, 0x57, 0x79, 0x0b, 0x77, 0x56, 0x08, 0x7b, 0x00, 0xcc, 0x79, 0xe3, 0xb9, 0xd2, 0x8a, 0x3f, 0x24, 0x39, 0xfe, 0xbf, 0x19, 0x9e, 0x64, 0xa8, 0xb3, 0x7c, 0x91, 0xb5, 0xa4, 0x33, 0x4e, 0x33, 0x54, 0xe8, 0xfa, 0xf3, 0xa3, 0x61, 0xe8, 0x56, 0xc5, 0x4b, 0xda, 0xa4, 0x3b, 0xfd, 0xcd, 0x6e, 0xe6, 0xc9, 0xf9, 0x67, 0x95, 0x88, 0xf6, 0x06, 0x99, 0x50, 0x83, 0x23, 0x48, 0xaa, 0xcb, 0xa2, 0xbf, 0xee, 0xba, 0xca, 0xa2, 0x07, 0x1d, 0xdc, 0x7d, 0x77, 0x89, 0x8e, 0xf0, 0xf6, 0x87, 0x93, 0xcd, 0x25, };
10625 static const u8 ed25519_462_test_vectors_expected_sig[] = {
10626 	0xf6, 0xc2, 0xa4, 0x29, 0x6b, 0x9a, 0x34, 0x07, 0xc6, 0xd7, 0xa5, 0x67, 0x9d, 0xae, 0x86, 0x66, 0xb5, 0x03, 0xd1, 0xa1, 0x7e, 0xac, 0xf7, 0x1d, 0xf4, 0x93, 0x79, 0x1b, 0x8f, 0xf0, 0xc0, 0xaa, 0x8e, 0xed, 0x36, 0xb3, 0x27, 0xa2, 0x9a, 0xb7, 0x82, 0x8f, 0x46, 0xf2, 0x2d, 0xe8, 0x68, 0xb6, 0x28, 0xb1, 0xcf, 0xd5, 0x01, 0xe8, 0x59, 0x9f, 0xa3, 0x16, 0x93, 0xb1, 0x5f, 0x61, 0x08, 0x0f, };
10627 static const ec_test_case ed25519_462_test_case = {
10628 	.name = "EDDSA25519-SHA512/wei25519 462",
10629 	.ec_str_p = &wei25519_str_params,
10630 	.priv_key = ed25519_462_test_vectors_priv_key,
10631 	.priv_key_len = sizeof(ed25519_462_test_vectors_priv_key),
10632 	.nn_random = NULL,
10633 	.hash_type = SHA512,
10634 	.msg = (const char *)ed25519_462_test_vectors_message,
10635 	.msglen = sizeof(ed25519_462_test_vectors_message),
10636 	.sig_type = EDDSA25519,
10637 	.exp_sig = ed25519_462_test_vectors_expected_sig,
10638 	.exp_siglen = sizeof(ed25519_462_test_vectors_expected_sig),
10639 	.adata = NULL,
10640 	.adata_len = 0
10641 };
10642 
10643 /************************************************/
10644 static const u8 ed25519_463_test_vectors_priv_key[] = {
10645 	0xa9, 0x51, 0xe4, 0xe6, 0xba, 0x9f, 0x1f, 0x0b, 0x35, 0x48, 0x31, 0xc9, 0x86, 0x94, 0x24, 0x48, 0xfa, 0xed, 0xe3, 0x7e, 0x11, 0xb0, 0xf2, 0x47, 0xda, 0x27, 0x06, 0xdc, 0xee, 0xf7, 0x3a, 0xc7, };
10646 static const u8 ed25519_463_test_vectors_message[] = {
10647 	0x20, 0x57, 0x7d, 0xca, 0xc8, 0x91, 0x74, 0x88, 0x5e, 0xed, 0xb0, 0x62, 0x48, 0x9c, 0xd5, 0x12, 0xfa, 0x72, 0x86, 0x3e, 0xc5, 0x43, 0x8e, 0x31, 0xe9, 0x58, 0x78, 0xb7, 0x5c, 0xe2, 0x77, 0x2a, 0xee, 0x62, 0x90, 0xa0, 0xba, 0x3c, 0x8f, 0x64, 0x2c, 0x1d, 0x0e, 0xf5, 0x5d, 0xa8, 0xd5, 0xbc, 0x14, 0x84, 0xf8, 0x3b, 0xb9, 0x87, 0x6c, 0x7a, 0x8c, 0x0b, 0x6b, 0x60, 0x9b, 0x94, 0xd1, 0x12, 0xa0, 0x6f, 0xc8, 0x3c, 0xe8, 0xd2, 0xc1, 0xe0, 0x8e, 0xd6, 0xc7, 0x35, 0xe5, 0x7b, 0x24, 0x4a, 0xad, 0x6e, 0xcf, 0x70, 0x75, 0x36, 0x3d, 0x56, 0x5b, 0xa4, 0x78, 0x65, 0x69, 0x5c, 0x84, 0x23, 0x51, 0x09, 0x09, 0xe0, 0xa3, 0xdb, 0x4b, 0x61, 0xed, 0x7a, 0xa6, 0x7a, 0x74, 0x71, 0x33, 0x1e, 0x83, 0xa0, 0xc5, 0x8b, 0x82, 0x20, 0xa6, 0x24, 0x5f, 0x65, 0x66, 0x15, 0x49, 0xc1, 0xa1, 0x2d, 0x4c, 0x0d, 0x50, 0xc3, 0x26, 0xfb, 0x94, 0x91, 0x7c, 0xbd, 0x07, 0xbe, 0x51, 0xe8, 0x3f, 0xe8, 0xbb, 0x3e, 0x46, 0xca, 0x01, 0xb0, 0xa2, 0x60, 0xda, 0xaf, 0x1d, 0x6a, 0xbe, 0x37, 0x03, 0xd6, 0xa9, 0x25, 0x11, 0x3b, 0xb4, 0xd5, 0x7e, 0xa1, 0xa4, 0x8b, 0x4c, 0x7d, 0xbd, 0xaa, 0x03, 0xee, 0xa8, 0x14, 0xa4, 0xb5, 0xf0, 0x2e, 0x1d, 0xfb, 0x54, 0x5c, 0xc6, 0x23, 0xfe, 0x17, 0xa3, 0xbb, 0x18, 0xe4, 0x37, 0x3f, 0x5f, 0x7e, 0xc2, 0xfb, 0x52, 0x17, 0xd2, 0x3e, 0x4f, 0xed, 0x54, 0xa7, 0x72, 0xe1, 0x13, 0x23, 0xe7, 0x30, 0xaa, 0xd7, 0xef, 0xca, 0x8c, 0x46, 0x44, 0x00, 0xe7, 0x67, 0x90, 0x55, 0xfc, 0xc1, 0x25, 0xa8, 0x76, 0xef, 0x7b, 0x8b, 0x9d, 0xe1, 0x86, 0xe2, 0x29, 0xa7, 0xab, 0xf1, 0x91, 0xd0, 0xc5, 0x6d, 0x91, 0x81, 0x5f, 0x67, 0x87, 0x2e, 0x95, 0x7b, 0xfb, 0xc7, 0x63, 0x4a, 0xac, 0x40, 0x35, 0x76, 0xa5, 0x8f, 0x42, 0x7b, 0xdb, 0xb3, 0x0e, 0x8c, 0x4b, 0x6f, 0xc6, 0xc4, 0x47, 0x74, 0x10, 0x24, 0xeb, 0xb5, 0x03, 0xa5, 0xa9, 0x02, 0x51, 0x24, 0xa4, 0x88, 0x7f, 0x82, 0x5a, 0x43, 0xee, 0x94, 0x0f, 0x21, 0x0a, 0x1b, 0xd5, 0xae, 0x4f, 0x67, 0x32, 0xd6, 0x0f, 0x95, 0xf2, 0xb8, 0x32, 0x01, 0xc4, 0xc6, 0xdf, 0xe2, 0x79, 0x41, 0x2d, 0x75, 0x02, 0xa5, 0x21, 0x1f, 0x8f, 0x48, 0xf8, 0x00, 0xdb, 0x30, 0xfc, 0x37, 0x76, 0xc4, 0xed, 0x3a, 0x38, 0xbb, 0x46, 0x34, 0x82, 0x2c, 0x98, 0xa6, 0xd6, 0xdd, 0x32, 0x33, 0xbe, 0x60, 0xe4, 0x2c, 0xca, 0x45, 0xa3, 0x16, 0x3c, 0xc8, 0x4e, 0x9e, 0x8d, 0xa6, 0x47, 0xc0, 0x71, 0x1b, 0xc4, 0xc6, 0xcc, 0xd6, 0x5a, 0xa1, 0xe9, 0x72, 0xc0, 0x74, 0x04, 0xd1, 0x03, 0xe7, 0x4b, 0xcc, 0x31, 0xa7, 0xe2, 0xc3, 0xee, 0xa5, 0xac, 0x92, 0x57, 0xab, 0x42, 0x89, 0x47, 0xab, 0x3d, 0xd3, 0xfb, 0x15, 0x3d, 0x90, 0x69, 0x4a, 0x40, 0x73, 0x37, 0x3c, 0x4d, 0xd9, 0xce, 0xb1, 0x31, 0x15, 0x4f, 0xe8, 0x77, 0x47, 0x3f, 0xd9, 0x96, 0xf4, 0x24, 0xf3, 0x3e, 0x31, 0x6e, 0x4e, 0xb0, 0x2b, 0x8c, 0x75, 0x13, 0xbe, 0x69, 0x98, 0xe5, 0x16, 0xcb, 0xba, 0x54, 0xd9, 0x4c, 0xd0, 0xa4, 0x35, 0xe0, 0xff, 0xcc, 0x2c, 0x0a, 0x8e, 0xf7, 0x2b, 0x63, 0x0e, 0xc2, 0x47, 0x81, 0x06, 0x6a, 0xa5, 0xef, 0xb9, };
10648 static const u8 ed25519_463_test_vectors_expected_sig[] = {
10649 	0x02, 0x78, 0xc8, 0x6a, 0x15, 0x20, 0x8d, 0x9b, 0xe5, 0xb1, 0xe1, 0x57, 0x47, 0x61, 0x86, 0x1b, 0x8a, 0xf7, 0x2a, 0xe0, 0x8d, 0x40, 0xcd, 0xcb, 0xec, 0x35, 0x4e, 0x65, 0xa9, 0xc3, 0xd0, 0xa0, 0x6b, 0x5f, 0xcb, 0xb2, 0x97, 0xd0, 0x9b, 0xef, 0x39, 0x74, 0x62, 0x39, 0x59, 0x86, 0xc3, 0x09, 0x3e, 0xeb, 0x22, 0x64, 0x4c, 0x00, 0x3c, 0x30, 0x78, 0x17, 0x8c, 0xdf, 0x67, 0x4e, 0x99, 0x0a, };
10650 static const ec_test_case ed25519_463_test_case = {
10651 	.name = "EDDSA25519-SHA512/wei25519 463",
10652 	.ec_str_p = &wei25519_str_params,
10653 	.priv_key = ed25519_463_test_vectors_priv_key,
10654 	.priv_key_len = sizeof(ed25519_463_test_vectors_priv_key),
10655 	.nn_random = NULL,
10656 	.hash_type = SHA512,
10657 	.msg = (const char *)ed25519_463_test_vectors_message,
10658 	.msglen = sizeof(ed25519_463_test_vectors_message),
10659 	.sig_type = EDDSA25519,
10660 	.exp_sig = ed25519_463_test_vectors_expected_sig,
10661 	.exp_siglen = sizeof(ed25519_463_test_vectors_expected_sig),
10662 	.adata = NULL,
10663 	.adata_len = 0
10664 };
10665 
10666 /************************************************/
10667 static const u8 ed25519_464_test_vectors_priv_key[] = {
10668 	0x38, 0xa9, 0xb2, 0xd4, 0x9b, 0xa8, 0xb8, 0x2f, 0x30, 0x1a, 0x57, 0x72, 0xce, 0xa0, 0xef, 0xc2, 0x21, 0x84, 0x55, 0xc8, 0xb2, 0x18, 0xb2, 0x2c, 0xba, 0xa2, 0xaa, 0xd2, 0xd7, 0xad, 0x3b, 0x35, };
10669 static const u8 ed25519_464_test_vectors_message[] = {
10670 	0x17, 0x78, 0x16, 0x7c, 0x49, 0xb3, 0xa4, 0x4d, 0x4a, 0x5b, 0xa8, 0x38, 0xb7, 0x38, 0x85, 0x53, 0xb1, 0xe1, 0x3d, 0x36, 0xea, 0x4f, 0x86, 0xd3, 0x02, 0x42, 0xe1, 0xa8, 0x22, 0xa3, 0xbb, 0xaf, 0xf5, 0xce, 0xa6, 0x3e, 0x2a, 0xe2, 0xa4, 0x63, 0x5b, 0xe2, 0x36, 0xfe, 0xf2, 0xb8, 0x13, 0x5d, 0x14, 0xfb, 0x62, 0x1c, 0x0b, 0xb7, 0x73, 0xc9, 0xc1, 0x77, 0x53, 0xf8, 0x09, 0x26, 0xeb, 0x55, 0xd0, 0xf1, 0x15, 0xbd, 0x09, 0xa8, 0x85, 0xd8, 0x44, 0xb8, 0x18, 0xc9, 0xf0, 0x44, 0x89, 0xa3, 0x31, 0xbb, 0x5e, 0x03, 0x2b, 0x8e, 0x58, 0xcd, 0xa3, 0x69, 0x49, 0xc5, 0xa8, 0xd0, 0x8b, 0x55, 0xbb, 0x8d, 0xe9, 0x65, 0xe1, 0xf9, 0x0d, 0x3b, 0x9c, 0xfe, 0xec, 0xfc, 0x6a, 0xd9, 0xa4, 0xee, 0x5c, 0xb4, 0x04, 0x7e, 0x94, 0x50, 0xac, 0xdc, 0x64, 0x64, 0x01, 0x66, 0xa8, 0xc0, 0x69, 0xea, 0x84, 0x9a, 0xeb, 0xdd, 0xac, 0x1a, 0xe4, 0xaf, 0xec, 0x91, 0xdd, 0xd1, 0x7f, 0xa5, 0x55, 0x3f, 0xa8, 0x7c, 0x56, 0xf7, 0xe5, 0x1e, 0xc1, 0xcd, 0x6b, 0x5c, 0xc2, 0x33, 0x51, 0xd0, 0x57, 0xa4, 0xce, 0x4a, 0x89, 0x23, 0xc8, 0xae, 0x6a, 0xc7, 0xa8, 0xaf, 0xdc, 0xc0, 0x88, 0x1c, 0x0e, 0x74, 0xeb, 0xb0, 0x24, 0xef, 0x72, 0x96, 0x16, 0x2c, 0xb9, 0x3c, 0x68, 0xe5, 0x0b, 0xbb, 0x07, 0x4e, 0x65, 0x1a, 0xc8, 0x7d, 0xac, 0x9e, 0xa5, 0x9d, 0x4c, 0x3f, 0xbf, 0x0f, 0xe3, 0x79, 0xf3, 0xe9, 0x7a, 0x24, 0x56, 0x6e, 0xca, 0xe5, 0x43, 0x03, 0xbc, 0xfb, 0x6f, 0x0c, 0xc9, 0xf1, 0x5f, 0x66, 0x39, 0x43, 0x0e, 0x66, 0xb1, 0x9a, 0x42, 0x78, 0x49, 0xfd, 0xff, 0xf8, 0x33, 0xdf, 0x02, 0x68, 0x9e, 0x9d, 0xe4, 0x40, 0x06, 0xc9, 0x03, 0xc5, 0x59, 0x18, 0x34, 0x59, 0xb9, 0xf4, 0xa9, 0x7f, 0x54, 0xa0, 0xf2, 0xa2, 0x8d, 0xf7, 0xb0, 0xe9, 0xde, 0xed, 0xa8, 0x23, 0x9d, 0x7b, 0x51, 0x69, 0x77, 0xf5, 0xe7, 0xd6, 0x97, 0x1b, 0x45, 0x02, 0xe9, 0x88, 0x5f, 0x75, 0x0a, 0xf8, 0xd1, 0xa6, 0x66, 0x9e, 0x25, 0xe7, 0x7d, 0x5f, 0x32, 0x7c, 0x77, 0xc8, 0x7a, 0x86, 0xe0, 0xa1, 0x87, 0x2b, 0xc9, 0x6a, 0x76, 0x06, 0x0f, 0x5f, 0x8a, 0x0c, 0x40, 0xcc, 0x97, 0x3b, 0xfc, 0x7f, 0xe6, 0xed, 0x9b, 0xca, 0x78, 0xf8, 0x84, 0xe6, 0xa2, 0x82, 0x8b, 0x94, 0xd4, 0x89, 0xd3, 0x2a, 0x0f, 0xd3, 0x37, 0xe6, 0x9d, 0xb8, 0x3f, 0xb8, 0x78, 0x9a, 0xfd, 0x4e, 0x8e, 0xf5, 0x4c, 0x22, 0xa7, 0x8c, 0x25, 0x87, 0x46, 0x8b, 0x9a, 0xe0, 0x71, 0xba, 0xe3, 0xb2, 0x02, 0xd3, 0x18, 0x3a, 0xd5, 0xf0, 0xf8, 0xe8, 0x42, 0xe5, 0xa8, 0xde, 0x85, 0xbf, 0xff, 0x49, 0xe0, 0x3c, 0x83, 0x81, 0xbc, 0xa7, 0xfd, 0x42, 0x78, 0xdd, 0xcc, 0xaf, 0x01, 0x34, 0xfb, 0x55, 0x93, 0xa3, 0x95, 0xa7, 0x7a, 0x5c, 0xbd, 0x43, 0x45, 0x93, 0xbc, 0x4a, 0xd0, 0xff, 0x4b, 0x84, 0x00, 0xec, 0x67, 0x4c, 0x4e, 0xca, 0xf1, 0xd5, 0x77, 0x54, 0xbe, 0x0c, 0xb2, 0xfa, 0x9a, 0x64, 0x41, 0xa9, 0xab, 0xad, 0x7b, 0x42, 0x19, 0x7a, 0xd8, 0x2e, 0x50, 0x82, 0x7e, 0x4a, 0x42, 0x45, 0x57, 0x3a, 0x8f, 0x0e, 0xf8, 0x7f, 0x58, 0x22, 0x8a, 0x28, 0x67, 0xf4, 0xb3, 0xb8, 0x34, 0xb6, 0x63, 0x50, 0x37, 0x94, 0x0a, };
10671 static const u8 ed25519_464_test_vectors_expected_sig[] = {
10672 	0xe1, 0x9e, 0x62, 0xac, 0x53, 0x9a, 0x9c, 0xa2, 0x51, 0xd1, 0x2d, 0x4c, 0x71, 0x05, 0x5b, 0x0a, 0x3f, 0x58, 0x1d, 0x19, 0xf2, 0x68, 0x2e, 0x67, 0x24, 0x04, 0xc7, 0x8a, 0xc1, 0xf1, 0x2b, 0xbe, 0xfc, 0x91, 0x51, 0x92, 0x76, 0xa5, 0xcb, 0xe1, 0x6f, 0x52, 0x0c, 0xf7, 0xa7, 0xf6, 0x87, 0xa2, 0x40, 0xf0, 0x32, 0x91, 0x57, 0xc5, 0x9f, 0x50, 0x02, 0x6a, 0x58, 0xdc, 0xdc, 0x50, 0xfc, 0x08, };
10673 static const ec_test_case ed25519_464_test_case = {
10674 	.name = "EDDSA25519-SHA512/wei25519 464",
10675 	.ec_str_p = &wei25519_str_params,
10676 	.priv_key = ed25519_464_test_vectors_priv_key,
10677 	.priv_key_len = sizeof(ed25519_464_test_vectors_priv_key),
10678 	.nn_random = NULL,
10679 	.hash_type = SHA512,
10680 	.msg = (const char *)ed25519_464_test_vectors_message,
10681 	.msglen = sizeof(ed25519_464_test_vectors_message),
10682 	.sig_type = EDDSA25519,
10683 	.exp_sig = ed25519_464_test_vectors_expected_sig,
10684 	.exp_siglen = sizeof(ed25519_464_test_vectors_expected_sig),
10685 	.adata = NULL,
10686 	.adata_len = 0
10687 };
10688 
10689 /************************************************/
10690 static const u8 ed25519_465_test_vectors_priv_key[] = {
10691 	0x9a, 0x17, 0x17, 0x87, 0x36, 0x89, 0xa0, 0x3c, 0x11, 0x2d, 0xd6, 0xb4, 0xd7, 0x6a, 0xe7, 0x3b, 0x89, 0xb4, 0x16, 0xa5, 0x98, 0xce, 0xec, 0x20, 0x9e, 0x27, 0x96, 0x1e, 0x7b, 0xb1, 0xee, 0x8a, };
10692 static const u8 ed25519_465_test_vectors_message[] = {
10693 	0xe2, 0x65, 0x80, 0x47, 0x09, 0x01, 0xa0, 0x7a, 0xb0, 0x93, 0x1a, 0xa2, 0x38, 0x29, 0x80, 0x2c, 0xe0, 0x4d, 0xa5, 0x9f, 0xdc, 0x2f, 0x77, 0x3b, 0xc5, 0x67, 0xf1, 0xe6, 0x5b, 0x4f, 0x2e, 0x2d, 0x4a, 0x1a, 0x6a, 0xec, 0x1f, 0x54, 0x15, 0x8a, 0xdf, 0xce, 0x9b, 0x09, 0x97, 0x90, 0xb5, 0x03, 0xa1, 0x3d, 0x22, 0x09, 0x7a, 0xe2, 0x3e, 0xbc, 0xcf, 0x92, 0x3f, 0x3b, 0xb1, 0x98, 0x6d, 0x6e, 0x49, 0x11, 0x1a, 0x8c, 0xf0, 0xd4, 0xeb, 0x82, 0x36, 0xbf, 0xe0, 0xd7, 0xc9, 0xe9, 0x3a, 0x5e, 0xfc, 0x7f, 0xeb, 0x8e, 0x6a, 0x9c, 0xd1, 0xb8, 0xd9, 0x21, 0xef, 0xa2, 0x1e, 0x44, 0x9f, 0xf4, 0x9e, 0x06, 0xc1, 0xcc, 0xfe, 0xa3, 0x1f, 0x93, 0xe0, 0x33, 0xc3, 0xc2, 0xa5, 0x4d, 0xdb, 0x0f, 0x65, 0x3a, 0x09, 0xfb, 0xd1, 0x8a, 0x70, 0xb5, 0x63, 0x15, 0xf1, 0x93, 0xe7, 0xbe, 0x56, 0xe5, 0x16, 0x8f, 0x59, 0x56, 0x38, 0x21, 0xd4, 0xbc, 0x3b, 0xbb, 0x0e, 0xaa, 0x20, 0x48, 0x28, 0x6b, 0xbe, 0xee, 0x5a, 0xa3, 0xf3, 0xe7, 0x53, 0x6c, 0xf2, 0xb7, 0x50, 0xfd, 0x32, 0x26, 0x02, 0xbb, 0x38, 0x47, 0xce, 0xca, 0x39, 0xb7, 0x54, 0x74, 0x32, 0x2d, 0x76, 0xb1, 0xde, 0x80, 0xfa, 0x2e, 0xad, 0xba, 0x15, 0x2d, 0x6f, 0x8f, 0x02, 0x0d, 0x4d, 0x93, 0x1c, 0x53, 0xf0, 0xa2, 0x80, 0x12, 0x24, 0xd3, 0x5d, 0xeb, 0x6e, 0xc1, 0x3b, 0x01, 0x48, 0x73, 0xe6, 0x89, 0x90, 0x36, 0x07, 0xde, 0x96, 0xd9, 0xb7, 0xa7, 0x43, 0xa8, 0x87, 0xd2, 0xf4, 0x8d, 0xaf, 0x2e, 0xd2, 0xee, 0xfb, 0x20, 0x2a, 0xbf, 0x60, 0x82, 0x79, 0x69, 0x81, 0x12, 0x3b, 0x96, 0x6e, 0x93, 0x6d, 0xcf, 0x34, 0x83, 0xe2, 0xd2, 0x4d, 0x69, 0x4e, 0xcb, 0x86, 0x5f, 0xbe, 0xb6, 0x96, 0x9f, 0x34, 0x70, 0x27, 0xfb, 0x8b, 0x17, 0x5d, 0x24, 0xa4, 0xc0, 0x45, 0xc0, 0xbb, 0x4a, 0xb5, 0xe0, 0x2d, 0xdc, 0xbe, 0x77, 0xd4, 0x75, 0x6c, 0x46, 0xd1, 0x37, 0xb0, 0x94, 0x47, 0x3a, 0x02, 0x30, 0x7a, 0x10, 0x83, 0x40, 0xac, 0xad, 0x9d, 0x03, 0xba, 0xe8, 0x40, 0x3a, 0xf1, 0x99, 0xcb, 0x75, 0xca, 0xe3, 0x16, 0x2f, 0x38, 0x15, 0x81, 0x3c, 0xc6, 0x8b, 0xf2, 0xa5, 0xe4, 0x99, 0xe5, 0x94, 0x92, 0x11, 0x49, 0xf3, 0xbb, 0xd2, 0x14, 0xda, 0x51, 0x37, 0xe7, 0x56, 0x52, 0x15, 0x59, 0xdc, 0x80, 0xd9, 0xa4, 0xb7, 0x4a, 0x0f, 0x49, 0x43, 0x02, 0x2c, 0x7c, 0xd5, 0xfc, 0xa4, 0x23, 0x15, 0xe0, 0xbc, 0xee, 0xae, 0x90, 0x69, 0x61, 0x5c, 0xe6, 0x7a, 0x04, 0x38, 0x24, 0x12, 0x31, 0x3a, 0x31, 0xd6, 0x7b, 0x34, 0x6c, 0x32, 0x9a, 0xd8, 0x2e, 0x74, 0x2c, 0x0a, 0x6c, 0xe0, 0xa6, 0xa0, 0x24, 0x54, 0xc1, 0x13, 0xe5, 0x20, 0x22, 0xf3, 0xcc, 0x03, 0xfd, 0xa6, 0x91, 0xeb, 0xdf, 0xe1, 0x4c, 0x53, 0xc8, 0xce, 0x5c, 0xa9, 0xb9, 0x32, 0xca, 0x1a, 0x38, 0x6e, 0x3e, 0xb4, 0xe9, 0x0a, 0x4d, 0xc6, 0xe8, 0xad, 0x85, 0x33, 0xb5, 0xaf, 0x1a, 0xae, 0xf5, 0x00, 0x31, 0x28, 0x65, 0x5c, 0xa6, 0x4f, 0x67, 0xfc, 0xd9, 0x7c, 0x6a, 0xc8, 0x03, 0x00, 0x24, 0x04, 0x90, 0x0b, 0xc0, 0xfa, 0xe9, 0x84, 0x63, 0xbc, 0xc3, 0x14, 0x09, 0xf9, 0x98, 0x17, 0x48, 0x78, 0x9a, 0xde, 0x2d, 0x07, 0x78, 0x3b, 0xc3, 0x2b, };
10694 static const u8 ed25519_465_test_vectors_expected_sig[] = {
10695 	0x1a, 0xf8, 0xbe, 0x09, 0x55, 0x38, 0x96, 0x58, 0x00, 0xd8, 0xef, 0xf6, 0xd7, 0x23, 0xd0, 0x28, 0xd6, 0x5d, 0x0e, 0x9c, 0x6e, 0xb5, 0xe9, 0xd1, 0x25, 0xbb, 0x3b, 0x17, 0x83, 0xf1, 0x1e, 0xf7, 0x07, 0x9a, 0x49, 0xa8, 0x07, 0xe2, 0x7e, 0xf1, 0x26, 0x0b, 0xe2, 0x6a, 0x3b, 0x23, 0x1d, 0x03, 0xb2, 0xae, 0x15, 0x1e, 0x49, 0xf6, 0xf1, 0x89, 0xf1, 0x5b, 0x1c, 0x83, 0xea, 0xb0, 0x1c, 0x02, };
10696 static const ec_test_case ed25519_465_test_case = {
10697 	.name = "EDDSA25519-SHA512/wei25519 465",
10698 	.ec_str_p = &wei25519_str_params,
10699 	.priv_key = ed25519_465_test_vectors_priv_key,
10700 	.priv_key_len = sizeof(ed25519_465_test_vectors_priv_key),
10701 	.nn_random = NULL,
10702 	.hash_type = SHA512,
10703 	.msg = (const char *)ed25519_465_test_vectors_message,
10704 	.msglen = sizeof(ed25519_465_test_vectors_message),
10705 	.sig_type = EDDSA25519,
10706 	.exp_sig = ed25519_465_test_vectors_expected_sig,
10707 	.exp_siglen = sizeof(ed25519_465_test_vectors_expected_sig),
10708 	.adata = NULL,
10709 	.adata_len = 0
10710 };
10711 
10712 /************************************************/
10713 static const u8 ed25519_466_test_vectors_priv_key[] = {
10714 	0x43, 0xbd, 0x92, 0x4d, 0xb8, 0x15, 0x60, 0x08, 0xc6, 0xb3, 0x99, 0x4a, 0x81, 0x30, 0xd4, 0x27, 0xd5, 0x14, 0xdb, 0x8a, 0x61, 0x3b, 0x84, 0xdf, 0xb0, 0xb8, 0xe0, 0xde, 0x6a, 0xc3, 0x06, 0x76, };
10715 static const u8 ed25519_466_test_vectors_message[] = {
10716 	0x61, 0x84, 0xe6, 0x48, 0x0c, 0x42, 0xe9, 0x6c, 0xc8, 0x77, 0x26, 0x9b, 0x16, 0x37, 0x15, 0x45, 0xff, 0x95, 0x23, 0xc4, 0x5e, 0xa8, 0x8e, 0x76, 0xa1, 0x34, 0x8c, 0x68, 0xae, 0x7f, 0x31, 0x8b, 0x08, 0x8f, 0xe4, 0x61, 0x09, 0x28, 0x23, 0x91, 0x85, 0xb6, 0xb5, 0x5b, 0xfa, 0x0f, 0x43, 0x64, 0x4c, 0x4a, 0x4c, 0x97, 0xc5, 0x6e, 0xd7, 0x7d, 0x08, 0xb1, 0xf4, 0xaa, 0xd2, 0xf4, 0xaa, 0x06, 0x99, 0x94, 0xab, 0xec, 0xa9, 0x6b, 0x7b, 0xf8, 0x1b, 0x80, 0x64, 0xea, 0x43, 0x50, 0xd8, 0xa8, 0xb0, 0x22, 0x97, 0xa5, 0x13, 0x08, 0xb6, 0x1c, 0x57, 0xc8, 0xf1, 0x87, 0x3c, 0x6f, 0x97, 0x00, 0x7a, 0xca, 0x31, 0x80, 0x42, 0x9e, 0x73, 0x0a, 0x66, 0x43, 0xf2, 0x87, 0x33, 0x54, 0x7b, 0xcf, 0x7b, 0x9a, 0xdf, 0xe3, 0x27, 0xe8, 0x57, 0x36, 0xbd, 0x04, 0xaf, 0x7f, 0x1d, 0x9f, 0x4f, 0xb8, 0x4a, 0x7f, 0x3a, 0xff, 0xdf, 0x4e, 0x22, 0xb5, 0x74, 0xec, 0xb4, 0xbc, 0x88, 0x36, 0xb1, 0x0b, 0x84, 0x53, 0xae, 0xaa, 0x5c, 0x1b, 0xf1, 0x32, 0x24, 0x8b, 0x82, 0x6c, 0xc5, 0x23, 0x0f, 0x75, 0xe0, 0x75, 0xfa, 0xc9, 0xf0, 0x37, 0x56, 0x11, 0x36, 0xe0, 0x06, 0x43, 0xd0, 0x82, 0x53, 0xe7, 0xad, 0x65, 0x2f, 0x70, 0x2c, 0x0d, 0x15, 0xb6, 0xd7, 0xd4, 0x8a, 0xa6, 0xf8, 0xe9, 0xb5, 0xf5, 0xcc, 0x14, 0x6e, 0x3f, 0x15, 0x6f, 0xb2, 0x52, 0x27, 0x51, 0xc3, 0x71, 0x00, 0x41, 0xbd, 0x92, 0x2f, 0x37, 0xa5, 0x03, 0x77, 0xe0, 0x28, 0xb0, 0xc4, 0xe4, 0xbc, 0x34, 0x65, 0xd7, 0xc8, 0x4a, 0xf6, 0xa5, 0xfb, 0x42, 0x7a, 0xcb, 0x3b, 0x41, 0x37, 0x8b, 0x10, 0x2b, 0xda, 0x46, 0xd8, 0xf6, 0xf2, 0x03, 0xa5, 0xff, 0xcf, 0x39, 0x5d, 0x43, 0x5e, 0x93, 0x45, 0x8a, 0x0b, 0x0a, 0x4c, 0x2e, 0x77, 0x82, 0xfa, 0xfe, 0x11, 0x9f, 0x76, 0x9f, 0x67, 0x05, 0x8c, 0x66, 0x77, 0xf6, 0xd1, 0x0d, 0x9c, 0xf5, 0xcb, 0x87, 0x48, 0xe1, 0x80, 0x57, 0x98, 0xed, 0x23, 0x3f, 0x6f, 0x93, 0x0e, 0xee, 0x0e, 0x50, 0x75, 0xbc, 0x58, 0xb9, 0x7a, 0xf9, 0x17, 0x7f, 0xda, 0x75, 0xd5, 0x37, 0x08, 0xbe, 0xb0, 0x4d, 0xc4, 0xf1, 0x9a, 0x43, 0xe7, 0x68, 0x07, 0x46, 0x09, 0xf1, 0x40, 0x65, 0xf4, 0x8f, 0xda, 0xd5, 0x07, 0x7c, 0xe1, 0x09, 0xba, 0xcc, 0x35, 0x71, 0x74, 0xa6, 0xb7, 0x95, 0x6f, 0x6e, 0x7f, 0x32, 0xe3, 0x84, 0x15, 0xbe, 0x52, 0x63, 0x70, 0xfa, 0x58, 0xc3, 0xc0, 0xb3, 0x1f, 0x51, 0xe6, 0xcd, 0x4b, 0x2c, 0xf2, 0x7f, 0x8b, 0xcb, 0xc2, 0x12, 0x59, 0xd9, 0xe5, 0xc3, 0xb5, 0xc2, 0x94, 0x6a, 0x9f, 0xc1, 0xb0, 0x0d, 0x9d, 0x15, 0xc3, 0xb7, 0xd8, 0x0b, 0xfd, 0x9d, 0x05, 0xdb, 0x91, 0xd2, 0x49, 0xd3, 0xe4, 0x2d, 0x89, 0x56, 0x68, 0x20, 0x44, 0x54, 0x8d, 0x83, 0xbd, 0xa8, 0xd5, 0xcc, 0x92, 0x12, 0x44, 0x2f, 0x30, 0xb4, 0x5c, 0xf4, 0xae, 0xad, 0x80, 0xcc, 0xe9, 0xb3, 0x51, 0x2c, 0x39, 0xc5, 0xc7, 0x37, 0xd3, 0xf8, 0xd7, 0x47, 0xaf, 0xba, 0xb2, 0x65, 0xaf, 0x5e, 0xee, 0xf8, 0xca, 0x93, 0x62, 0xec, 0x76, 0xe9, 0x43, 0xb0, 0xa0, 0xd7, 0xa3, 0x9f, 0x3d, 0xb1, 0x1e, 0xca, 0x14, 0x45, 0x8a, 0x7b, 0x59, 0x2e, 0x5e, 0x4f, 0xf2, 0x27, 0x5d, 0xd4, 0x8b, 0x28, 0x53, };
10717 static const u8 ed25519_466_test_vectors_expected_sig[] = {
10718 	0xd2, 0xa0, 0x5d, 0x88, 0xd9, 0xd5, 0x43, 0xd9, 0x4d, 0x57, 0xec, 0x88, 0xae, 0x55, 0x68, 0x17, 0x50, 0xf2, 0x0b, 0x9b, 0xe9, 0xc1, 0xe9, 0x18, 0xcd, 0xaf, 0x45, 0x77, 0x67, 0xf2, 0x94, 0x8d, 0xd6, 0x29, 0xe9, 0x4f, 0x06, 0x8e, 0xdc, 0xf3, 0xd9, 0x92, 0x7e, 0x33, 0x02, 0x34, 0xba, 0xdc, 0x3a, 0x02, 0xfa, 0x5a, 0xd3, 0xd9, 0xd8, 0x5e, 0x94, 0x8c, 0xb0, 0xb0, 0xcb, 0x3c, 0xd7, 0x0a, };
10719 static const ec_test_case ed25519_466_test_case = {
10720 	.name = "EDDSA25519-SHA512/wei25519 466",
10721 	.ec_str_p = &wei25519_str_params,
10722 	.priv_key = ed25519_466_test_vectors_priv_key,
10723 	.priv_key_len = sizeof(ed25519_466_test_vectors_priv_key),
10724 	.nn_random = NULL,
10725 	.hash_type = SHA512,
10726 	.msg = (const char *)ed25519_466_test_vectors_message,
10727 	.msglen = sizeof(ed25519_466_test_vectors_message),
10728 	.sig_type = EDDSA25519,
10729 	.exp_sig = ed25519_466_test_vectors_expected_sig,
10730 	.exp_siglen = sizeof(ed25519_466_test_vectors_expected_sig),
10731 	.adata = NULL,
10732 	.adata_len = 0
10733 };
10734 
10735 /************************************************/
10736 static const u8 ed25519_467_test_vectors_priv_key[] = {
10737 	0x8f, 0xb0, 0x86, 0x20, 0x6d, 0xd9, 0x5a, 0x26, 0x21, 0xf5, 0x98, 0x56, 0x0c, 0xcb, 0x28, 0x1f, 0x82, 0x73, 0xc8, 0xfc, 0x72, 0xe2, 0x36, 0x11, 0x08, 0x9b, 0xaa, 0xc8, 0x9d, 0x3c, 0x3c, 0x78, };
10738 static const u8 ed25519_467_test_vectors_message[] = {
10739 	0xf0, 0x29, 0x03, 0xed, 0x42, 0x66, 0xe8, 0x49, 0xa4, 0x48, 0x52, 0x05, 0x95, 0x4f, 0xff, 0xa8, 0xa1, 0x08, 0xc3, 0x23, 0xb7, 0xe3, 0xf8, 0x43, 0x31, 0x04, 0x35, 0x14, 0xe4, 0x85, 0x56, 0xab, 0x01, 0x94, 0x97, 0x23, 0x3a, 0x5a, 0x12, 0x7b, 0xff, 0x3c, 0xd7, 0xc9, 0x70, 0x86, 0xbe, 0xce, 0xf5, 0x38, 0xb3, 0xf3, 0x39, 0xd7, 0xd0, 0x6e, 0x53, 0x2d, 0xc7, 0x32, 0x5e, 0x59, 0x7a, 0xe3, 0x57, 0xf8, 0x16, 0xde, 0xa4, 0x2a, 0x6a, 0x22, 0xc7, 0x9d, 0x22, 0x07, 0x4a, 0x2e, 0x1a, 0xd8, 0x02, 0x3c, 0x42, 0x4b, 0x7e, 0x09, 0x6e, 0x5a, 0xd8, 0x89, 0x7b, 0x05, 0xef, 0x7d, 0x00, 0xd3, 0x0a, 0x04, 0xaa, 0xf2, 0x98, 0x1e, 0xdd, 0xff, 0x2b, 0x34, 0x7f, 0x1e, 0x27, 0xe2, 0x0a, 0xab, 0xbe, 0x7e, 0x7a, 0x95, 0x44, 0x97, 0x8e, 0x09, 0x2b, 0x00, 0xcc, 0xe4, 0x20, 0xab, 0xa0, 0x61, 0x87, 0x37, 0x4f, 0xfb, 0xb3, 0x7b, 0x4c, 0x22, 0xd7, 0x5f, 0x04, 0xe5, 0x75, 0x90, 0xf6, 0x10, 0xa2, 0x73, 0x47, 0x28, 0x6c, 0x29, 0x83, 0x12, 0xa6, 0xc9, 0xb1, 0xbd, 0xf2, 0x4f, 0xbd, 0xa8, 0x51, 0x3c, 0x4f, 0x83, 0x56, 0xcc, 0xf7, 0x57, 0x06, 0x8f, 0xfc, 0x11, 0xbc, 0x65, 0x11, 0x37, 0x83, 0xa5, 0xdd, 0xe7, 0x72, 0x2f, 0xaf, 0x4c, 0xeb, 0x19, 0xfb, 0xb6, 0x2f, 0x40, 0x70, 0x2e, 0x2c, 0x6e, 0x6a, 0x8b, 0xb4, 0x9e, 0xf4, 0x04, 0x46, 0x45, 0x0c, 0x4c, 0x59, 0xa2, 0x99, 0x09, 0x44, 0xda, 0x47, 0x44, 0xf6, 0xee, 0x77, 0x0b, 0x93, 0x0c, 0x24, 0x66, 0x69, 0x81, 0x3c, 0xe5, 0xa9, 0xf5, 0xa4, 0x7d, 0xd8, 0x03, 0x88, 0x98, 0x1b, 0xfc, 0xc3, 0xa5, 0x6b, 0x5b, 0xe2, 0xc4, 0xc7, 0xe6, 0x59, 0xa2, 0xe9, 0x18, 0x2d, 0xec, 0x0a, 0xaa, 0xfe, 0x90, 0x31, 0xaa, 0x39, 0x54, 0xd4, 0xfe, 0x7c, 0x43, 0x11, 0x96, 0xa5, 0x61, 0xa5, 0xb7, 0x8e, 0xab, 0xa6, 0x4f, 0x3d, 0xb1, 0xb5, 0x86, 0xc5, 0x3b, 0x16, 0xf6, 0x79, 0xa8, 0x49, 0x21, 0xa6, 0x42, 0xc2, 0x60, 0xe4, 0x65, 0x3a, 0x61, 0xde, 0x10, 0x8e, 0xbd, 0xe6, 0xf7, 0x05, 0x3a, 0xfa, 0x2c, 0xb3, 0xf3, 0x66, 0x8e, 0xde, 0x12, 0x10, 0x20, 0xdd, 0x1b, 0xac, 0xe8, 0x41, 0x8a, 0xeb, 0xac, 0x3a, 0x5b, 0xd5, 0x14, 0x2f, 0x10, 0x5a, 0xc2, 0x6f, 0xe4, 0x9e, 0x5f, 0xb1, 0x40, 0xc1, 0x9b, 0x22, 0xd5, 0x4a, 0x62, 0x91, 0xdf, 0xc9, 0x54, 0x67, 0x02, 0x47, 0x88, 0x16, 0x46, 0x87, 0x4d, 0xef, 0xad, 0x81, 0x49, 0x95, 0x51, 0x9f, 0x62, 0x60, 0xe9, 0x77, 0x4a, 0x8d, 0x18, 0x5c, 0x37, 0x88, 0x1b, 0x4f, 0x25, 0x43, 0xc4, 0xb6, 0x3f, 0xbf, 0x19, 0x85, 0x01, 0x6a, 0xb4, 0x1c, 0x4d, 0x72, 0x8c, 0xbc, 0x90, 0xb3, 0xab, 0x87, 0x62, 0x67, 0xbe, 0xd4, 0x1d, 0x0c, 0x09, 0x02, 0xf6, 0xb5, 0x0e, 0x8f, 0xa9, 0x06, 0xfc, 0x47, 0x88, 0xf7, 0xb8, 0x20, 0x46, 0x73, 0x06, 0xe0, 0xfe, 0x9e, 0x03, 0x6a, 0x0a, 0x00, 0xf8, 0x04, 0xf9, 0x1c, 0x3c, 0xa7, 0x18, 0xb9, 0x5f, 0xf6, 0xd9, 0xe2, 0x20, 0x4b, 0xc3, 0x16, 0x1b, 0xf7, 0x0f, 0xcc, 0x17, 0xb2, 0x96, 0x4b, 0x56, 0xbc, 0x61, 0x2e, 0x29, 0x40, 0x2d, 0x96, 0xf5, 0x09, 0x86, 0x51, 0x4b, 0xc7, 0xd8, 0x31, 0xd5, 0x8e, 0x42, 0x79, 0x37, 0x86, 0xd5, 0x80, 0x6f, };
10740 static const u8 ed25519_467_test_vectors_expected_sig[] = {
10741 	0xa9, 0x30, 0x5e, 0x00, 0x16, 0x00, 0xd5, 0x97, 0xd0, 0x5e, 0xf6, 0x71, 0x69, 0x9b, 0xf0, 0x9f, 0x0d, 0xcc, 0x0c, 0x44, 0x47, 0x5d, 0x3c, 0xa3, 0x1e, 0x7f, 0xf1, 0xbf, 0xfe, 0xdc, 0x0c, 0x67, 0xda, 0xa1, 0xf3, 0xb7, 0x6a, 0x03, 0x59, 0x48, 0xc5, 0x9c, 0xd8, 0x7f, 0x82, 0x45, 0x3a, 0x40, 0x95, 0x0a, 0x1c, 0x97, 0x03, 0xc2, 0xe7, 0xd9, 0x28, 0x0e, 0x73, 0x03, 0x96, 0x6d, 0xa3, 0x01, };
10742 static const ec_test_case ed25519_467_test_case = {
10743 	.name = "EDDSA25519-SHA512/wei25519 467",
10744 	.ec_str_p = &wei25519_str_params,
10745 	.priv_key = ed25519_467_test_vectors_priv_key,
10746 	.priv_key_len = sizeof(ed25519_467_test_vectors_priv_key),
10747 	.nn_random = NULL,
10748 	.hash_type = SHA512,
10749 	.msg = (const char *)ed25519_467_test_vectors_message,
10750 	.msglen = sizeof(ed25519_467_test_vectors_message),
10751 	.sig_type = EDDSA25519,
10752 	.exp_sig = ed25519_467_test_vectors_expected_sig,
10753 	.exp_siglen = sizeof(ed25519_467_test_vectors_expected_sig),
10754 	.adata = NULL,
10755 	.adata_len = 0
10756 };
10757 
10758 /************************************************/
10759 static const u8 ed25519_468_test_vectors_priv_key[] = {
10760 	0xaf, 0xa1, 0xb8, 0x46, 0xc2, 0x10, 0xb5, 0x23, 0x00, 0xe9, 0x76, 0x96, 0xf8, 0x1b, 0x8e, 0xa7, 0x74, 0xd1, 0xdf, 0x12, 0xe6, 0x12, 0x52, 0x7c, 0x55, 0x74, 0x7f, 0x29, 0xc1, 0x93, 0x73, 0x96, };
10761 static const u8 ed25519_468_test_vectors_message[] = {
10762 	0x4c, 0xac, 0x1b, 0x1f, 0x4b, 0xd4, 0x82, 0x84, 0xdc, 0xc9, 0xaf, 0xc8, 0xb5, 0x95, 0x5b, 0x64, 0xb4, 0x36, 0xdb, 0x70, 0x4b, 0x03, 0x35, 0xd9, 0x75, 0x5c, 0xc1, 0xf9, 0x74, 0x77, 0xf8, 0xd3, 0x23, 0xcb, 0x64, 0x10, 0xef, 0x14, 0x6a, 0xb8, 0xa9, 0xef, 0xb9, 0x52, 0x6d, 0x8b, 0x62, 0xe3, 0xbb, 0xad, 0x1f, 0x72, 0x95, 0xf4, 0x7b, 0xa9, 0xf0, 0xde, 0x95, 0x8f, 0x8e, 0xc9, 0xb7, 0x7a, 0xb4, 0x22, 0x32, 0x43, 0x7e, 0xd9, 0x74, 0x85, 0x64, 0x44, 0xcd, 0x22, 0xe2, 0x0b, 0xe3, 0x5e, 0x91, 0x81, 0x3b, 0xff, 0x4b, 0x01, 0x6f, 0x81, 0x0d, 0x0f, 0x61, 0xd8, 0x9f, 0x6b, 0x61, 0x4d, 0xb3, 0x3f, 0x34, 0xbd, 0x09, 0x98, 0x5b, 0x59, 0x3f, 0xe3, 0xe0, 0x6e, 0x06, 0x5b, 0x7b, 0xc6, 0xcd, 0x39, 0xd5, 0x5c, 0x2c, 0xfb, 0xec, 0x7b, 0x6d, 0x59, 0xc0, 0xb3, 0x7d, 0xd1, 0xd0, 0xd3, 0x51, 0x35, 0xab, 0x1d, 0x1b, 0x04, 0xf2, 0xf3, 0x0c, 0x2f, 0x04, 0xf4, 0xba, 0x2b, 0x36, 0x58, 0x27, 0x38, 0x08, 0x1c, 0xf5, 0x91, 0x90, 0xf5, 0x28, 0x36, 0x3d, 0xb9, 0x44, 0xed, 0x61, 0x29, 0x31, 0xd1, 0xd5, 0x14, 0xc6, 0x21, 0x4f, 0x9a, 0xb9, 0x2a, 0xbb, 0x18, 0x33, 0x92, 0x61, 0x83, 0xac, 0x52, 0xfb, 0xa2, 0xa4, 0x55, 0x1e, 0x20, 0xe4, 0xc0, 0xac, 0x95, 0x9a, 0x49, 0xdd, 0xb1, 0x67, 0xa3, 0x81, 0xe0, 0x24, 0x1d, 0x40, 0xc0, 0x86, 0xe9, 0x0e, 0x52, 0xac, 0xa0, 0x17, 0x25, 0x89, 0x75, 0xdb, 0xab, 0x2b, 0xa4, 0x51, 0xee, 0x53, 0x9a, 0x71, 0x8f, 0x07, 0x6a, 0x58, 0x70, 0x9c, 0x66, 0x97, 0x41, 0x8d, 0x9c, 0x6f, 0x13, 0xe4, 0xd3, 0x91, 0x36, 0x8b, 0xf0, 0xe8, 0xbd, 0x8f, 0x29, 0x32, 0xdd, 0x95, 0xce, 0xaf, 0x7a, 0xac, 0xa1, 0x24, 0x11, 0x47, 0xd3, 0x41, 0xa3, 0xac, 0xd0, 0x8d, 0xc3, 0x29, 0x05, 0x48, 0x35, 0x72, 0xb8, 0x9a, 0x80, 0xcc, 0x47, 0x23, 0x14, 0x68, 0xab, 0x8d, 0xe3, 0x59, 0xdd, 0x52, 0x5a, 0x62, 0x57, 0xcf, 0x19, 0x6c, 0x2e, 0xcb, 0x82, 0xfa, 0x8a, 0x78, 0xaa, 0x3a, 0x85, 0x1c, 0x7c, 0x96, 0xca, 0x25, 0xbf, 0x7c, 0xa3, 0xdc, 0xf3, 0xca, 0x21, 0x45, 0x3d, 0x0d, 0xfd, 0x33, 0x23, 0xd5, 0xa4, 0x22, 0xde, 0xc8, 0x43, 0x16, 0x10, 0x2f, 0x68, 0x4c, 0x35, 0x9f, 0x22, 0x6b, 0xb5, 0x37, 0x79, 0xc0, 0xb9, 0x95, 0x09, 0x39, 0x28, 0x1e, 0xf7, 0x9a, 0x58, 0xc0, 0x11, 0x99, 0x3e, 0xac, 0xe0, 0x85, 0x49, 0x7a, 0xfa, 0x4d, 0xaf, 0x64, 0xc9, 0x68, 0x7b, 0x0a, 0x11, 0xaa, 0x11, 0x6c, 0xfa, 0x7b, 0x03, 0x93, 0x62, 0x41, 0xa5, 0x56, 0x7b, 0x64, 0x6e, 0x7e, 0x42, 0xe9, 0xfb, 0x59, 0x24, 0x05, 0xb8, 0xfa, 0x3c, 0x0a, 0x82, 0x1f, 0xc3, 0x12, 0x1b, 0x45, 0xb1, 0x75, 0x3c, 0xec, 0x9a, 0x83, 0x94, 0x7d, 0x21, 0x1a, 0x45, 0x49, 0x9b, 0xd6, 0x37, 0x90, 0xb8, 0x7f, 0x01, 0x47, 0x2f, 0xe5, 0x66, 0xd8, 0x76, 0x96, 0xef, 0xed, 0xbb, 0x74, 0xed, 0x00, 0x04, 0x8c, 0x38, 0x4b, 0xa7, 0xf0, 0x27, 0xb3, 0xaa, 0x42, 0x98, 0xdc, 0x41, 0x10, 0x34, 0x9f, 0xed, 0xf5, 0x2a, 0x96, 0xcd, 0x05, 0xd0, 0x8b, 0xd6, 0x35, 0x77, 0x1e, 0xd4, 0x51, 0x07, 0x38, 0xd8, 0xf0, 0x7a, 0x60, 0x21, 0x24, 0x4d, 0x19, 0x03, 0x57, 0x9a, 0x3e, 0xa7, 0x39, };
10763 static const u8 ed25519_468_test_vectors_expected_sig[] = {
10764 	0x98, 0xb0, 0xc6, 0x31, 0x3c, 0xec, 0xaf, 0x7c, 0x82, 0xcb, 0xde, 0xb3, 0xd0, 0x28, 0x06, 0x41, 0xc6, 0x1a, 0x06, 0x0f, 0x65, 0xe5, 0x63, 0xaa, 0x93, 0xce, 0x18, 0x30, 0x0a, 0x9b, 0x58, 0x27, 0x2d, 0xc8, 0x68, 0x0b, 0x48, 0x5e, 0x8c, 0xd1, 0x1c, 0xf8, 0x0f, 0xdc, 0xa8, 0x68, 0xfa, 0xb3, 0x65, 0x37, 0x83, 0x84, 0xa1, 0x42, 0x72, 0x7f, 0x2f, 0x84, 0x4f, 0x87, 0xcf, 0xdf, 0x19, 0x05, };
10765 static const ec_test_case ed25519_468_test_case = {
10766 	.name = "EDDSA25519-SHA512/wei25519 468",
10767 	.ec_str_p = &wei25519_str_params,
10768 	.priv_key = ed25519_468_test_vectors_priv_key,
10769 	.priv_key_len = sizeof(ed25519_468_test_vectors_priv_key),
10770 	.nn_random = NULL,
10771 	.hash_type = SHA512,
10772 	.msg = (const char *)ed25519_468_test_vectors_message,
10773 	.msglen = sizeof(ed25519_468_test_vectors_message),
10774 	.sig_type = EDDSA25519,
10775 	.exp_sig = ed25519_468_test_vectors_expected_sig,
10776 	.exp_siglen = sizeof(ed25519_468_test_vectors_expected_sig),
10777 	.adata = NULL,
10778 	.adata_len = 0
10779 };
10780 
10781 /************************************************/
10782 static const u8 ed25519_469_test_vectors_priv_key[] = {
10783 	0xc8, 0x59, 0x13, 0xa6, 0x87, 0x78, 0x77, 0x13, 0x10, 0x01, 0x62, 0x3c, 0xcd, 0xa9, 0xcd, 0xc1, 0x2b, 0x9d, 0x40, 0x43, 0xb8, 0xa8, 0x37, 0x93, 0xc4, 0x46, 0x96, 0x63, 0x2c, 0xd6, 0x42, 0x1c, };
10784 static const u8 ed25519_469_test_vectors_message[] = {
10785 	0x91, 0xb5, 0x00, 0x9e, 0x83, 0xd0, 0xf6, 0x10, 0x33, 0x99, 0xc2, 0xd3, 0xfe, 0xec, 0x00, 0x84, 0x97, 0x3a, 0x30, 0x5b, 0xf4, 0x17, 0x6e, 0xc7, 0x82, 0x53, 0x75, 0x60, 0x47, 0x2d, 0xb1, 0x87, 0xa1, 0x1b, 0x4d, 0xcb, 0x4b, 0x2f, 0xfb, 0x7f, 0x06, 0x44, 0xfe, 0xb3, 0x94, 0xb2, 0x8e, 0x5b, 0xfe, 0x97, 0x24, 0x7c, 0x4a, 0x4a, 0x23, 0x1c, 0xf6, 0xe9, 0x16, 0xbf, 0x99, 0x34, 0x4c, 0xcd, 0xa8, 0x8a, 0x7f, 0x5d, 0x83, 0x1d, 0x6d, 0xe3, 0xd5, 0x63, 0xdd, 0x10, 0x2e, 0xae, 0xb1, 0x08, 0xc5, 0xbd, 0xce, 0x44, 0xe0, 0x63, 0x2d, 0x17, 0xe6, 0xfa, 0x55, 0xb1, 0x80, 0x67, 0xdf, 0x2f, 0xa8, 0xd2, 0x00, 0xa9, 0x86, 0x9f, 0x6a, 0xff, 0x92, 0x0c, 0x51, 0xd4, 0x6a, 0x1c, 0xed, 0x2d, 0x90, 0x3b, 0x1d, 0x9b, 0x6b, 0x07, 0x5f, 0xac, 0xbf, 0x91, 0xcd, 0x05, 0xeb, 0x41, 0xad, 0x81, 0x1a, 0x8e, 0xf4, 0x0d, 0x91, 0x18, 0x26, 0x10, 0x12, 0xc7, 0x2b, 0x89, 0x79, 0xf1, 0x51, 0x53, 0xdb, 0xb8, 0x56, 0x12, 0x93, 0xda, 0x9f, 0x8b, 0x77, 0xc8, 0xff, 0x14, 0xf7, 0x53, 0x87, 0x53, 0x6f, 0x00, 0x36, 0xd1, 0x71, 0x3a, 0x72, 0xce, 0x8c, 0x35, 0xb1, 0x06, 0x2f, 0x2c, 0x67, 0x32, 0xae, 0xbf, 0x32, 0x93, 0x67, 0x99, 0xb5, 0x1c, 0x2c, 0xbc, 0xd6, 0x57, 0x24, 0x13, 0xe7, 0xdf, 0xaa, 0xb8, 0x64, 0x1a, 0x02, 0xc1, 0x50, 0x23, 0x73, 0x81, 0xcf, 0x7a, 0x14, 0xe2, 0x2c, 0x74, 0xc6, 0xc2, 0x00, 0x09, 0xde, 0x7d, 0x3b, 0x7e, 0x69, 0xcd, 0x1b, 0x45, 0x84, 0xac, 0x2c, 0x01, 0xba, 0xba, 0xf9, 0x73, 0xc5, 0x6b, 0x38, 0x14, 0xbb, 0x00, 0x89, 0x72, 0x0e, 0x41, 0x96, 0x81, 0x06, 0xcf, 0x26, 0x50, 0x9d, 0x4a, 0xa5, 0x46, 0xfc, 0xad, 0x55, 0x34, 0xaf, 0x30, 0x3f, 0xfc, 0xa4, 0x2b, 0x16, 0xae, 0x6c, 0x93, 0xee, 0x06, 0xbc, 0x3c, 0xac, 0xe1, 0x2e, 0x4e, 0xc7, 0x18, 0x84, 0x4b, 0xd3, 0x0d, 0x22, 0x24, 0xcc, 0x48, 0x6d, 0x10, 0x6d, 0x1c, 0x45, 0x6b, 0xfa, 0x16, 0x5e, 0xa0, 0x12, 0x0f, 0xab, 0x3d, 0xf2, 0xc5, 0xab, 0x3a, 0x52, 0x3b, 0xbf, 0xa7, 0x89, 0xde, 0xed, 0x44, 0x03, 0x2a, 0xb0, 0xbe, 0x86, 0xeb, 0x7c, 0xc0, 0x9c, 0xdb, 0x7c, 0x07, 0xaa, 0x94, 0x8d, 0xd5, 0x27, 0x7c, 0x3d, 0xf1, 0xd9, 0xd1, 0x84, 0x35, 0x67, 0xde, 0xc8, 0x4f, 0x92, 0x88, 0xe0, 0x85, 0xb0, 0x5a, 0xe4, 0xb8, 0xaf, 0x2c, 0xea, 0x5d, 0x9a, 0x18, 0x4d, 0x50, 0xbe, 0xf8, 0x55, 0x50, 0xc8, 0x36, 0x61, 0x3d, 0x5d, 0x3a, 0xf5, 0xf9, 0xc2, 0x92, 0x8e, 0x6a, 0x89, 0x66, 0x0f, 0xa6, 0x27, 0x19, 0xeb, 0xff, 0x77, 0x3e, 0x46, 0xb7, 0x7e, 0x34, 0xbc, 0x04, 0x70, 0xda, 0x4d, 0x2c, 0xdb, 0xc7, 0x07, 0x1d, 0xa7, 0x58, 0xc4, 0xd3, 0x9f, 0xe6, 0x52, 0x01, 0xc8, 0x8a, 0xaa, 0x8e, 0x66, 0x03, 0xd0, 0xbb, 0xe7, 0xc3, 0xe9, 0xb2, 0xd9, 0xe4, 0x1b, 0x63, 0x46, 0x82, 0x09, 0x2f, 0x14, 0x73, 0x41, 0xad, 0x6d, 0x66, 0x7f, 0x20, 0xc6, 0x4e, 0x81, 0xa6, 0x8d, 0x62, 0x94, 0x67, 0xa5, 0x4d, 0xd8, 0x6e, 0x1c, 0xe1, 0x2c, 0x56, 0x0a, 0x6f, 0x9b, 0x64, 0x51, 0x2d, 0x6f, 0x38, 0x86, 0xcb, 0xb9, 0xf3, 0x7c, 0x37, 0xeb, 0x39, 0x85, 0xc8, 0xac, 0x38, 0xdd, 0x66, 0x82, 0xf4, 0x8f, 0xe1, };
10786 static const u8 ed25519_469_test_vectors_expected_sig[] = {
10787 	0x01, 0xfc, 0xcf, 0xdb, 0x1f, 0xb6, 0x88, 0x8b, 0x03, 0x10, 0xa9, 0x13, 0x17, 0x0f, 0x7e, 0x36, 0x68, 0x16, 0xda, 0xeb, 0xe7, 0x65, 0x0d, 0x72, 0x51, 0x3d, 0x95, 0x06, 0xe6, 0x6f, 0x7d, 0x62, 0x20, 0x8a, 0x49, 0xec, 0xe0, 0xaf, 0x18, 0x71, 0x49, 0x7f, 0x45, 0x41, 0xef, 0x60, 0x5b, 0xde, 0x71, 0x1c, 0x9e, 0x0a, 0x12, 0x05, 0xef, 0x48, 0xf2, 0x6c, 0x03, 0xdc, 0x1a, 0xd4, 0xaf, 0x03, };
10788 static const ec_test_case ed25519_469_test_case = {
10789 	.name = "EDDSA25519-SHA512/wei25519 469",
10790 	.ec_str_p = &wei25519_str_params,
10791 	.priv_key = ed25519_469_test_vectors_priv_key,
10792 	.priv_key_len = sizeof(ed25519_469_test_vectors_priv_key),
10793 	.nn_random = NULL,
10794 	.hash_type = SHA512,
10795 	.msg = (const char *)ed25519_469_test_vectors_message,
10796 	.msglen = sizeof(ed25519_469_test_vectors_message),
10797 	.sig_type = EDDSA25519,
10798 	.exp_sig = ed25519_469_test_vectors_expected_sig,
10799 	.exp_siglen = sizeof(ed25519_469_test_vectors_expected_sig),
10800 	.adata = NULL,
10801 	.adata_len = 0
10802 };
10803 
10804 /************************************************/
10805 static const u8 ed25519_470_test_vectors_priv_key[] = {
10806 	0xfa, 0x1e, 0x11, 0xdc, 0x83, 0x64, 0x20, 0x8d, 0x8e, 0x1c, 0xb6, 0x6a, 0x36, 0x1b, 0xe7, 0xe8, 0x4c, 0x5e, 0x36, 0x81, 0x66, 0x58, 0x7d, 0x4f, 0xdb, 0x06, 0xac, 0xed, 0x7f, 0x62, 0xe1, 0x7c, };
10807 static const u8 ed25519_470_test_vectors_message[] = {
10808 	0x29, 0x4e, 0x63, 0xba, 0xcc, 0xcb, 0x80, 0x1b, 0xbf, 0x04, 0xc1, 0xf1, 0x9d, 0x0a, 0xee, 0x16, 0xf5, 0x65, 0x0a, 0x6e, 0x8e, 0xea, 0x6f, 0xe4, 0x11, 0x10, 0x66, 0x3e, 0xc0, 0x15, 0x32, 0xbd, 0x49, 0x60, 0xa5, 0x27, 0xf1, 0x5e, 0xca, 0x4a, 0xf2, 0xf4, 0xe6, 0xb7, 0xb0, 0xfc, 0x34, 0x0c, 0xf9, 0x7a, 0xa2, 0x34, 0xe9, 0x2c, 0xf7, 0xd6, 0x9d, 0x50, 0xe4, 0x00, 0x9c, 0x24, 0x96, 0xe3, 0xed, 0x4d, 0x9a, 0xff, 0x00, 0x0f, 0x9e, 0x18, 0x52, 0x75, 0xb8, 0x17, 0xd2, 0x6a, 0x0b, 0xab, 0x69, 0xb7, 0xf7, 0xee, 0x1e, 0xa3, 0x0d, 0xae, 0xc8, 0xbc, 0xee, 0x38, 0x7a, 0xe4, 0x6b, 0x4b, 0x29, 0x9c, 0x27, 0xbd, 0xc0, 0x6e, 0xea, 0x63, 0xf2, 0x4d, 0xbe, 0xe9, 0x55, 0xa6, 0xc0, 0x96, 0x90, 0x37, 0xee, 0xf9, 0x1c, 0x34, 0x32, 0x1e, 0x3c, 0x5c, 0x97, 0x2f, 0xde, 0x99, 0x31, 0x83, 0xb7, 0xd2, 0x3f, 0x6e, 0x01, 0x9c, 0x3e, 0x0c, 0xac, 0x75, 0x89, 0xae, 0x4a, 0x15, 0x21, 0xaf, 0x87, 0xea, 0x42, 0xdf, 0x8c, 0x22, 0xc2, 0x27, 0x0e, 0xc2, 0x3d, 0x6d, 0x14, 0x0f, 0x9c, 0xf6, 0xd4, 0xd5, 0x2f, 0xac, 0x1b, 0x9d, 0x6c, 0x89, 0x39, 0xef, 0x81, 0x31, 0xcb, 0x62, 0xa0, 0x35, 0xc5, 0x26, 0x15, 0x38, 0xbc, 0xdf, 0xd6, 0xdb, 0x41, 0x9a, 0x55, 0xef, 0x9f, 0xe5, 0xd7, 0xa5, 0xac, 0x44, 0x57, 0x9d, 0xe7, 0x00, 0x85, 0x8d, 0x74, 0xa3, 0x43, 0x48, 0x44, 0xf2, 0x83, 0x42, 0xc5, 0x65, 0x89, 0x27, 0x22, 0xe2, 0x7f, 0x40, 0x7d, 0x7f, 0x17, 0xb7, 0x4a, 0x59, 0x34, 0xbe, 0x91, 0x5b, 0x20, 0xc2, 0x40, 0x06, 0x43, 0x23, 0x5f, 0x8a, 0xb5, 0x79, 0x5f, 0x32, 0x4e, 0x33, 0xc5, 0x06, 0x44, 0xa0, 0x40, 0x33, 0x54, 0x2c, 0xb3, 0x81, 0x6d, 0x77, 0x0f, 0xa8, 0x99, 0xe7, 0x31, 0x1c, 0x14, 0x30, 0x1c, 0x1b, 0xd0, 0xf5, 0xaa, 0x60, 0xa2, 0xeb, 0x31, 0x65, 0x68, 0x0c, 0x72, 0x0e, 0x1e, 0xfa, 0x80, 0x96, 0xfc, 0x25, 0xd2, 0x77, 0x92, 0x75, 0xf1, 0x84, 0x2b, 0x2d, 0xb5, 0x3b, 0x4d, 0xa0, 0xad, 0x3e, 0x59, 0xc0, 0x75, 0x40, 0xc2, 0x84, 0x60, 0xce, 0xc1, 0xfd, 0xd3, 0xcd, 0xb7, 0xa3, 0x47, 0x8b, 0x91, 0xa9, 0xca, 0xf9, 0xac, 0x89, 0x1c, 0xdf, 0x3a, 0xea, 0xee, 0xca, 0x9a, 0x96, 0x56, 0xac, 0x13, 0x07, 0x25, 0x99, 0x22, 0xfc, 0xa7, 0x4c, 0x5c, 0xc6, 0x9f, 0x7e, 0x25, 0xc6, 0xbf, 0x58, 0x79, 0x73, 0xa4, 0xb7, 0xd3, 0xe3, 0xac, 0x06, 0x35, 0xb0, 0xdb, 0x22, 0xa0, 0x09, 0x3a, 0x79, 0x07, 0x68, 0x81, 0xc7, 0x17, 0x36, 0xee, 0x1d, 0x4d, 0x45, 0xf8, 0xed, 0x2d, 0x29, 0xa0, 0x67, 0x1a, 0x64, 0xe6, 0xca, 0x2f, 0x7a, 0x5e, 0xf4, 0x04, 0xb1, 0xed, 0xeb, 0x84, 0x20, 0x34, 0xf5, 0x71, 0xb6, 0x99, 0xbc, 0x59, 0xe5, 0xa3, 0x7d, 0xf0, 0x20, 0x54, 0xe8, 0x48, 0x2b, 0xf1, 0xe7, 0xb7, 0x7d, 0x8e, 0x83, 0x97, 0xda, 0x15, 0xd8, 0x9d, 0x73, 0x55, 0xa5, 0xdc, 0xe8, 0x6b, 0x16, 0x83, 0xa9, 0xac, 0x4e, 0x40, 0x6c, 0x08, 0xa9, 0x4a, 0x6e, 0xb0, 0x0e, 0x5a, 0xe1, 0x6d, 0x96, 0x72, 0x29, 0x72, 0xe5, 0xc5, 0x0c, 0x7b, 0xee, 0x4a, 0x84, 0xd0, 0x69, 0x7b, 0xbe, 0x67, 0xce, 0xb7, 0xef, 0x29, 0x5f, 0x06, 0xaa, 0xea, 0x5a, 0xbb, 0xa4, 0x44, 0x66, 0xbe, 0x0f, 0x67, };
10809 static const u8 ed25519_470_test_vectors_expected_sig[] = {
10810 	0xe8, 0x57, 0xdb, 0x08, 0x7e, 0x28, 0xd6, 0x75, 0x0b, 0xf5, 0x4e, 0x53, 0x79, 0x72, 0x51, 0xd8, 0x43, 0x99, 0x89, 0x57, 0x6c, 0x12, 0xda, 0x2d, 0x9c, 0x81, 0x1a, 0x14, 0x87, 0x7c, 0x3b, 0xd4, 0x6c, 0x4e, 0xfa, 0xb8, 0x61, 0xa1, 0x0e, 0xeb, 0xe7, 0xda, 0x04, 0xc0, 0xb0, 0xb4, 0x45, 0xc7, 0xa3, 0x90, 0xa5, 0x0c, 0x13, 0xde, 0x36, 0xf3, 0xa3, 0xc7, 0xae, 0x01, 0x57, 0x02, 0x2c, 0x0e, };
10811 static const ec_test_case ed25519_470_test_case = {
10812 	.name = "EDDSA25519-SHA512/wei25519 470",
10813 	.ec_str_p = &wei25519_str_params,
10814 	.priv_key = ed25519_470_test_vectors_priv_key,
10815 	.priv_key_len = sizeof(ed25519_470_test_vectors_priv_key),
10816 	.nn_random = NULL,
10817 	.hash_type = SHA512,
10818 	.msg = (const char *)ed25519_470_test_vectors_message,
10819 	.msglen = sizeof(ed25519_470_test_vectors_message),
10820 	.sig_type = EDDSA25519,
10821 	.exp_sig = ed25519_470_test_vectors_expected_sig,
10822 	.exp_siglen = sizeof(ed25519_470_test_vectors_expected_sig),
10823 	.adata = NULL,
10824 	.adata_len = 0
10825 };
10826 
10827 /************************************************/
10828 static const u8 ed25519_471_test_vectors_priv_key[] = {
10829 	0x24, 0xa9, 0x14, 0xce, 0xb4, 0x99, 0xe3, 0x75, 0xe5, 0xc6, 0x67, 0x77, 0xc1, 0xed, 0x20, 0x43, 0xbe, 0x56, 0x54, 0x9d, 0x5e, 0x50, 0x2a, 0x84, 0x47, 0x10, 0x36, 0x40, 0x42, 0xba, 0x9a, 0xcb, };
10830 static const u8 ed25519_471_test_vectors_message[] = {
10831 	0x3f, 0xf9, 0xf6, 0x6f, 0xa2, 0x64, 0x6e, 0xc6, 0x6a, 0x1b, 0xf9, 0x33, 0xc2, 0xb4, 0xcc, 0x0f, 0xbf, 0x91, 0x2b, 0x4d, 0x6d, 0xb5, 0x05, 0x34, 0x25, 0x7f, 0x97, 0xd0, 0x1e, 0x69, 0x8d, 0x05, 0x48, 0x57, 0x47, 0xde, 0x25, 0x44, 0xe9, 0xf5, 0xa4, 0xa4, 0xa0, 0x75, 0x38, 0x8c, 0xf4, 0x40, 0x0a, 0xb8, 0x9b, 0x03, 0x53, 0xce, 0x86, 0x19, 0x82, 0x02, 0xdb, 0x3a, 0x90, 0x37, 0x67, 0xb8, 0x79, 0xa2, 0xaf, 0x9d, 0xaa, 0x15, 0x58, 0x43, 0x11, 0x1a, 0xf1, 0x5a, 0x2b, 0xc3, 0x5e, 0xfe, 0x41, 0xbc, 0xc9, 0x2c, 0x82, 0x07, 0xe0, 0x01, 0x13, 0xb0, 0x4f, 0x13, 0x03, 0x00, 0x79, 0x49, 0xff, 0xb6, 0xce, 0x8d, 0xf4, 0xb0, 0xb3, 0x42, 0x48, 0xfe, 0xdf, 0x5d, 0x9c, 0xb2, 0xce, 0xe9, 0x4b, 0x81, 0x2e, 0xd5, 0x8e, 0xce, 0x2a, 0x0c, 0xe0, 0x45, 0x4c, 0xf1, 0x4c, 0x20, 0xe4, 0x9e, 0x09, 0xfe, 0x66, 0x4d, 0x6e, 0x25, 0x76, 0x2e, 0x87, 0x89, 0x59, 0x32, 0xcd, 0x5c, 0xd3, 0x2e, 0xb6, 0xa3, 0xab, 0xb3, 0x8e, 0xe1, 0x63, 0x07, 0x8c, 0x13, 0x3e, 0x93, 0x58, 0x87, 0x91, 0xdb, 0xf6, 0xaf, 0x49, 0x9a, 0x31, 0xea, 0x44, 0x53, 0xbb, 0xcc, 0x7a, 0x85, 0xe4, 0x06, 0xc9, 0x84, 0x8a, 0x66, 0x40, 0x52, 0xf1, 0x11, 0x13, 0xfb, 0xb4, 0xff, 0xa7, 0x60, 0xde, 0xe4, 0xc2, 0x61, 0xe3, 0x96, 0x94, 0x24, 0x91, 0x11, 0x9d, 0xa2, 0x9a, 0x33, 0x58, 0x2f, 0x82, 0x1d, 0x41, 0x25, 0xe0, 0xb4, 0x16, 0x2f, 0x28, 0xbe, 0xb0, 0x66, 0x03, 0x1a, 0x65, 0x2d, 0x05, 0x74, 0x9a, 0xa7, 0x24, 0x4d, 0xd4, 0xf3, 0xd3, 0xbb, 0x15, 0xd2, 0x68, 0x32, 0x8d, 0x6a, 0x02, 0xfc, 0xe2, 0x50, 0x18, 0x15, 0x25, 0x7f, 0x8a, 0xd5, 0xaf, 0x4e, 0xcb, 0xe7, 0xcb, 0x8a, 0xe9, 0x66, 0x1e, 0x34, 0x4f, 0x90, 0x72, 0x31, 0x87, 0x91, 0xf3, 0xe8, 0x59, 0x09, 0x11, 0x21, 0xe0, 0x8a, 0xef, 0xca, 0x89, 0x82, 0xea, 0xaf, 0x66, 0x25, 0x9d, 0x9d, 0xe4, 0xf4, 0x6a, 0x31, 0xe7, 0x16, 0xdc, 0x03, 0x3d, 0x0f, 0x95, 0xd1, 0xfa, 0x93, 0x6b, 0x6c, 0x60, 0x79, 0xb1, 0x37, 0xdd, 0x11, 0x58, 0xd1, 0xde, 0xf1, 0x13, 0x01, 0x8c, 0x73, 0xf8, 0xeb, 0xb9, 0x80, 0x7e, 0x0f, 0x74, 0x15, 0x40, 0x4e, 0xa9, 0xc7, 0x85, 0x44, 0xac, 0xe7, 0xce, 0x46, 0x3c, 0xd1, 0xd1, 0xc5, 0x7e, 0x31, 0xf4, 0x09, 0x1b, 0xc0, 0x91, 0x80, 0x4c, 0xbc, 0xdd, 0xad, 0x0e, 0x15, 0xa4, 0x0c, 0xa9, 0x1a, 0xcb, 0xe1, 0xc6, 0x22, 0x4e, 0xd1, 0x3c, 0xaf, 0xb4, 0xdf, 0x2c, 0x84, 0xac, 0x9f, 0x0c, 0x3c, 0x9b, 0x54, 0x60, 0x07, 0xd9, 0xdd, 0x6e, 0x52, 0x4c, 0x46, 0x70, 0x72, 0x56, 0x3d, 0x4a, 0xc0, 0xd7, 0x00, 0xcc, 0x1b, 0xf3, 0x0f, 0xeb, 0xb3, 0x34, 0x31, 0x3d, 0xae, 0x57, 0x61, 0x74, 0x5e, 0xc0, 0xa5, 0xe9, 0xe8, 0x81, 0x50, 0x25, 0x95, 0x8f, 0x00, 0xfa, 0x2e, 0x58, 0x06, 0x0d, 0x7e, 0x9a, 0x5f, 0x2b, 0x72, 0x7f, 0x48, 0x69, 0x9f, 0x92, 0x9c, 0x84, 0x59, 0x93, 0x08, 0x92, 0x57, 0x3f, 0x78, 0x4f, 0xef, 0x56, 0x92, 0x51, 0x8b, 0x5c, 0xa2, 0x68, 0xe2, 0xa7, 0x3e, 0xbe, 0xad, 0x6e, 0xbd, 0xeb, 0x7e, 0xc2, 0x4e, 0xac, 0x92, 0xaa, 0x7d, 0xcb, 0x41, 0xb5, 0x98, 0xbd, 0x6e, 0xff, 0x36, 0x32, 0xd0, 0x69, 0x72, 0x62, 0x91, };
10832 static const u8 ed25519_471_test_vectors_expected_sig[] = {
10833 	0x3a, 0xe0, 0xcc, 0x7b, 0xca, 0x8d, 0x73, 0xbe, 0x83, 0xa9, 0xb8, 0x09, 0xb1, 0x33, 0x38, 0xc1, 0x27, 0x06, 0xaa, 0xef, 0x75, 0xc4, 0xd1, 0xa4, 0x78, 0x17, 0x8f, 0x9d, 0xc5, 0x65, 0x51, 0x4c, 0x75, 0x29, 0xe2, 0x98, 0x04, 0x3e, 0xa7, 0x8d, 0x21, 0xa5, 0xa0, 0x9d, 0xd0, 0x4f, 0x10, 0xae, 0x87, 0x44, 0x1e, 0x56, 0x86, 0xa9, 0x33, 0xc9, 0x2c, 0x75, 0x54, 0x84, 0x27, 0xad, 0x3a, 0x03, };
10834 static const ec_test_case ed25519_471_test_case = {
10835 	.name = "EDDSA25519-SHA512/wei25519 471",
10836 	.ec_str_p = &wei25519_str_params,
10837 	.priv_key = ed25519_471_test_vectors_priv_key,
10838 	.priv_key_len = sizeof(ed25519_471_test_vectors_priv_key),
10839 	.nn_random = NULL,
10840 	.hash_type = SHA512,
10841 	.msg = (const char *)ed25519_471_test_vectors_message,
10842 	.msglen = sizeof(ed25519_471_test_vectors_message),
10843 	.sig_type = EDDSA25519,
10844 	.exp_sig = ed25519_471_test_vectors_expected_sig,
10845 	.exp_siglen = sizeof(ed25519_471_test_vectors_expected_sig),
10846 	.adata = NULL,
10847 	.adata_len = 0
10848 };
10849 
10850 /************************************************/
10851 static const u8 ed25519_472_test_vectors_priv_key[] = {
10852 	0x55, 0x32, 0xe0, 0x9b, 0x93, 0x7f, 0xfd, 0x3d, 0x5f, 0x4c, 0x1d, 0x9f, 0x1f, 0xfc, 0xde, 0xd2, 0x6e, 0xe7, 0x4d, 0x4d, 0xa0, 0x75, 0x26, 0x48, 0x44, 0x69, 0x0b, 0xd9, 0xc8, 0x61, 0x39, 0x94, };
10853 static const u8 ed25519_472_test_vectors_message[] = {
10854 	0xad, 0xd4, 0xd7, 0xa9, 0xce, 0x3f, 0x63, 0xd1, 0xf9, 0x46, 0xe8, 0x67, 0x90, 0x65, 0x54, 0x5d, 0x8c, 0x7b, 0xf0, 0xa2, 0xcc, 0x3a, 0x4c, 0x00, 0xb8, 0xf1, 0x42, 0xf0, 0x94, 0x5a, 0xe3, 0x62, 0xc4, 0xc9, 0x46, 0x2a, 0x75, 0x76, 0xa4, 0x05, 0x9d, 0x57, 0x86, 0x16, 0x62, 0x88, 0x4b, 0xd8, 0x0b, 0x96, 0xd9, 0x0d, 0x27, 0x9a, 0x95, 0x2e, 0xda, 0x95, 0x2d, 0x37, 0xd4, 0xf9, 0x5c, 0xf0, 0xd7, 0x0d, 0xa9, 0x8f, 0x4f, 0xba, 0xca, 0x39, 0xe1, 0x69, 0xf9, 0xd9, 0x45, 0xd4, 0x1f, 0x87, 0x23, 0x97, 0xbb, 0xdd, 0x57, 0x01, 0x45, 0x43, 0x03, 0xd7, 0x7d, 0x31, 0xe8, 0x63, 0x48, 0x27, 0x1d, 0xa4, 0x0a, 0x1b, 0x8f, 0x1e, 0x57, 0xc3, 0x6f, 0xcd, 0x80, 0x3e, 0x14, 0xfa, 0x17, 0x71, 0x6c, 0x56, 0x31, 0xef, 0xa0, 0x1d, 0x3a, 0x79, 0x5d, 0xc2, 0x0b, 0x2b, 0xde, 0x36, 0xab, 0x73, 0xff, 0x6a, 0x2d, 0x53, 0x3b, 0xc1, 0x5c, 0xce, 0x22, 0x32, 0x87, 0x13, 0xc3, 0xc9, 0xcc, 0xd0, 0x72, 0xc3, 0xe4, 0x50, 0xd7, 0xf2, 0x2c, 0x0c, 0x9f, 0x94, 0x91, 0x97, 0x52, 0xcb, 0xfe, 0x45, 0xee, 0x65, 0x5d, 0x1b, 0x53, 0x67, 0x65, 0x93, 0xcd, 0xb4, 0x48, 0x70, 0x41, 0x02, 0x63, 0x1c, 0xaa, 0xa9, 0x76, 0x95, 0x2e, 0xaa, 0x1f, 0x6c, 0x2e, 0x87, 0x65, 0x64, 0xe4, 0x20, 0xf0, 0xc6, 0x46, 0xa0, 0xf8, 0x83, 0x65, 0xf7, 0x64, 0x15, 0xb4, 0x08, 0x5f, 0x60, 0xa3, 0x38, 0xb2, 0x9c, 0x51, 0x63, 0x3e, 0x54, 0x0f, 0x0b, 0xf3, 0x2d, 0x40, 0x87, 0xe7, 0xd0, 0xfb, 0x68, 0x5b, 0xe8, 0x8c, 0x75, 0x95, 0xdc, 0x53, 0x1c, 0x99, 0xb4, 0x89, 0x58, 0x45, 0x60, 0xad, 0x82, 0x34, 0xb1, 0x8e, 0x39, 0xa1, 0x07, 0xcf, 0x5d, 0x84, 0x2d, 0xab, 0xd4, 0x21, 0xe7, 0x7d, 0x26, 0xea, 0x5e, 0x0f, 0x14, 0x05, 0xce, 0x35, 0xfe, 0x79, 0x27, 0x14, 0xeb, 0x4e, 0xe1, 0xa8, 0x01, 0x76, 0x48, 0xac, 0x1a, 0xe7, 0x39, 0xa3, 0x3d, 0x7b, 0x1e, 0x08, 0x91, 0x05, 0xd1, 0xe5, 0xad, 0xd2, 0x7a, 0x62, 0xce, 0x64, 0x15, 0x45, 0x70, 0x34, 0x0a, 0xf9, 0xeb, 0x14, 0xe7, 0xfd, 0xfc, 0x2f, 0x9a, 0x2c, 0x2f, 0xcf, 0xcd, 0xac, 0x3c, 0xc4, 0x22, 0x77, 0x63, 0xf4, 0xd6, 0x29, 0x49, 0x74, 0x79, 0xf8, 0x49, 0x21, 0x6e, 0x5d, 0x90, 0xec, 0x16, 0xdf, 0xa3, 0x6b, 0x72, 0x51, 0x7f, 0x7b, 0x54, 0x86, 0xba, 0xee, 0x7f, 0xda, 0x44, 0x50, 0xc3, 0x52, 0xcf, 0xfb, 0xba, 0xe7, 0x39, 0x26, 0xc8, 0x43, 0x22, 0x4f, 0x8c, 0xe4, 0x4b, 0x38, 0xda, 0xe5, 0x3f, 0x3e, 0xad, 0x21, 0x89, 0x0b, 0x52, 0xa7, 0x80, 0x10, 0x75, 0x29, 0x16, 0x84, 0xfd, 0x59, 0x10, 0xed, 0x86, 0xad, 0x33, 0xe8, 0xa0, 0x07, 0xf6, 0xc3, 0xf8, 0x5c, 0x16, 0xb2, 0x09, 0x29, 0x37, 0x40, 0x18, 0x4f, 0x58, 0x90, 0x87, 0x4d, 0x43, 0x1c, 0xd4, 0xe0, 0xea, 0x40, 0x87, 0xc4, 0x9c, 0x34, 0x71, 0xd7, 0x89, 0xc8, 0x13, 0xc6, 0xdc, 0x9a, 0x78, 0x69, 0x93, 0x63, 0xa1, 0xd8, 0x71, 0x97, 0xd3, 0xb9, 0x2c, 0x02, 0x86, 0x68, 0x93, 0x11, 0x82, 0x3f, 0x4d, 0xf2, 0x2c, 0xe8, 0x03, 0x5e, 0x75, 0x73, 0x2c, 0xde, 0xa7, 0xf5, 0x62, 0x1f, 0x67, 0xdb, 0x0e, 0x2a, 0x4c, 0xa6, 0x61, 0x61, 0x93, 0x22, 0x1c, 0x0a, 0xa3, 0xd6, 0xde, 0x50, 0xd8, 0x52, 0x82, 0xee, };
10855 static const u8 ed25519_472_test_vectors_expected_sig[] = {
10856 	0xd5, 0x27, 0xff, 0x0d, 0x4a, 0x21, 0x9d, 0x61, 0xf4, 0x18, 0x12, 0x12, 0x06, 0xa5, 0x4a, 0xe4, 0x98, 0x58, 0x54, 0xa3, 0x10, 0x48, 0x27, 0x44, 0x48, 0x6e, 0x4d, 0x13, 0x0a, 0x7d, 0xe9, 0x7c, 0x31, 0x9d, 0xf8, 0x37, 0x2c, 0x82, 0x82, 0x8c, 0x93, 0x6e, 0x6a, 0x8a, 0xfd, 0x9c, 0x5d, 0xe1, 0x82, 0x85, 0x73, 0xd8, 0x26, 0x1a, 0xe9, 0x36, 0x5b, 0x8f, 0x23, 0x76, 0x76, 0x18, 0x24, 0x02, };
10857 static const ec_test_case ed25519_472_test_case = {
10858 	.name = "EDDSA25519-SHA512/wei25519 472",
10859 	.ec_str_p = &wei25519_str_params,
10860 	.priv_key = ed25519_472_test_vectors_priv_key,
10861 	.priv_key_len = sizeof(ed25519_472_test_vectors_priv_key),
10862 	.nn_random = NULL,
10863 	.hash_type = SHA512,
10864 	.msg = (const char *)ed25519_472_test_vectors_message,
10865 	.msglen = sizeof(ed25519_472_test_vectors_message),
10866 	.sig_type = EDDSA25519,
10867 	.exp_sig = ed25519_472_test_vectors_expected_sig,
10868 	.exp_siglen = sizeof(ed25519_472_test_vectors_expected_sig),
10869 	.adata = NULL,
10870 	.adata_len = 0
10871 };
10872 
10873 /************************************************/
10874 static const u8 ed25519_473_test_vectors_priv_key[] = {
10875 	0xeb, 0x36, 0x51, 0x10, 0x09, 0xd3, 0x7a, 0x9c, 0x46, 0xc4, 0xd1, 0x37, 0x4d, 0x0b, 0xbd, 0x0d, 0x99, 0x81, 0xe7, 0x8c, 0xee, 0x7d, 0x18, 0x8c, 0x5a, 0xab, 0x98, 0x3e, 0xc2, 0x39, 0xe1, 0x0c, };
10876 static const u8 ed25519_473_test_vectors_message[] = {
10877 	0xba, 0x24, 0x66, 0xe5, 0x6c, 0x1d, 0xf7, 0x7f, 0x22, 0xb6, 0xf0, 0x24, 0x1f, 0xc7, 0x95, 0x2a, 0xe9, 0xbc, 0x24, 0x75, 0x64, 0x19, 0xa9, 0x44, 0x6d, 0xd2, 0xb4, 0x9e, 0x2c, 0xb9, 0xdf, 0x59, 0x4e, 0x5b, 0x6c, 0x77, 0xa9, 0x5a, 0xa5, 0xfb, 0xd9, 0xdc, 0x57, 0xfe, 0xc8, 0x39, 0x62, 0xc7, 0x75, 0x1e, 0xeb, 0xb4, 0xba, 0x21, 0x82, 0x53, 0xf9, 0x16, 0xa9, 0x22, 0xa5, 0x13, 0x96, 0x63, 0xe3, 0x20, 0x3e, 0x3b, 0xe4, 0x82, 0xbe, 0x37, 0x9c, 0xa1, 0x51, 0xc4, 0x63, 0xd9, 0xad, 0xa2, 0x14, 0x46, 0x13, 0x5f, 0x35, 0x69, 0x94, 0xfa, 0x54, 0x49, 0xf0, 0x84, 0x47, 0x8f, 0x5b, 0xb4, 0xf5, 0xba, 0x61, 0x45, 0xc5, 0x15, 0x8e, 0xb7, 0xb1, 0xc4, 0x3c, 0x32, 0xeb, 0xea, 0x25, 0xe0, 0x9c, 0x90, 0x0f, 0x01, 0xef, 0x91, 0xe9, 0x2f, 0x88, 0xc0, 0x3c, 0x76, 0x50, 0x4a, 0xce, 0x96, 0x46, 0x01, 0x6f, 0xfc, 0x27, 0x89, 0x55, 0x9d, 0x0f, 0x3c, 0xc9, 0xd0, 0x0f, 0xb6, 0x1b, 0xdc, 0x6a, 0xf7, 0xd3, 0x94, 0x0f, 0x30, 0x2e, 0x58, 0x8e, 0x04, 0xf7, 0x9f, 0x7b, 0x3d, 0x4b, 0x91, 0xa5, 0xd1, 0x93, 0xa4, 0xf8, 0x22, 0x2b, 0xfe, 0xb6, 0x9b, 0xf0, 0x34, 0x7d, 0x98, 0xad, 0x81, 0xef, 0x99, 0xd1, 0x30, 0xeb, 0xc7, 0xb3, 0x6b, 0x07, 0x83, 0x39, 0x4e, 0xea, 0x92, 0xa3, 0x8d, 0xdd, 0x5e, 0x74, 0x80, 0xd2, 0xad, 0xd4, 0xe4, 0xde, 0xf5, 0x3e, 0xb9, 0x9c, 0x44, 0x9b, 0xff, 0x94, 0xe4, 0x71, 0x8b, 0x09, 0xf2, 0xea, 0x9b, 0x1f, 0x2b, 0x88, 0x65, 0x94, 0xa9, 0x5c, 0x33, 0xa6, 0x9e, 0x03, 0x33, 0x15, 0x4e, 0x44, 0x0a, 0xb3, 0x4b, 0x7b, 0x6c, 0x11, 0x34, 0xd8, 0x17, 0x9b, 0x6f, 0x0c, 0x56, 0x25, 0x1a, 0x9a, 0xd8, 0xe1, 0xb6, 0xb0, 0xf9, 0xb8, 0xa5, 0xc9, 0x70, 0x81, 0xa7, 0xf8, 0xfd, 0x05, 0xd0, 0xb0, 0xaf, 0xfc, 0x82, 0xdb, 0xdd, 0xc8, 0xb0, 0xc0, 0xab, 0x7e, 0x83, 0x3f, 0x30, 0x06, 0x26, 0xd4, 0xb9, 0x73, 0xb3, 0xf6, 0x0f, 0xea, 0xc5, 0x55, 0x71, 0xe8, 0x9c, 0xda, 0x0f, 0x2b, 0x44, 0x1e, 0xd2, 0xfa, 0xa6, 0x69, 0xa7, 0x0d, 0x55, 0x6c, 0xb4, 0x8f, 0x9b, 0x1d, 0x1c, 0xbc, 0xe3, 0x2e, 0xde, 0x5d, 0x16, 0x6b, 0x11, 0x43, 0xe2, 0x64, 0xb1, 0x1e, 0xa3, 0x27, 0x68, 0x1c, 0xb5, 0x59, 0xed, 0xd1, 0x3c, 0x36, 0x4b, 0xd2, 0xba, 0xf1, 0xfd, 0x54, 0xbb, 0x78, 0x18, 0x07, 0xbd, 0x59, 0xc8, 0x68, 0xb0, 0xe4, 0x79, 0x5a, 0x77, 0x9e, 0x67, 0xf0, 0xbd, 0x0d, 0x14, 0xb5, 0xa6, 0xb9, 0xe4, 0x40, 0xb5, 0x7a, 0x58, 0x23, 0x32, 0x8b, 0x59, 0xaf, 0xfb, 0xd0, 0x27, 0xed, 0xa7, 0xdd, 0x78, 0x50, 0x79, 0xc5, 0xf0, 0x2b, 0x5e, 0x32, 0x89, 0x0b, 0x03, 0x87, 0x30, 0x98, 0x6a, 0x39, 0xa5, 0xa9, 0x83, 0x4a, 0x3f, 0xed, 0x86, 0x8b, 0x6f, 0x45, 0xcb, 0xdd, 0x28, 0xac, 0xb2, 0x70, 0x9a, 0xff, 0x55, 0x62, 0x63, 0x86, 0x4f, 0x9a, 0xe1, 0xe7, 0x57, 0xb3, 0x27, 0x8c, 0x28, 0x8d, 0xbe, 0x29, 0x32, 0x82, 0x57, 0x12, 0x77, 0x3e, 0x43, 0x1f, 0x7c, 0x29, 0x32, 0x98, 0x57, 0xfd, 0xae, 0xa7, 0x98, 0xed, 0x93, 0x92, 0x08, 0x93, 0x63, 0x14, 0x02, 0xe6, 0xb1, 0x3b, 0xab, 0x62, 0xb4, 0x85, 0x54, 0x61, 0xed, 0xb9, 0x46, 0x20, 0xf2, 0xd1, 0x75, 0x18, 0x65, 0xf4, 0x45, 0xc4, 0x66, };
10878 static const u8 ed25519_473_test_vectors_expected_sig[] = {
10879 	0x9f, 0x58, 0x37, 0x24, 0xde, 0x55, 0x2e, 0xae, 0x82, 0xf2, 0x54, 0xac, 0x6e, 0x2e, 0xd4, 0x83, 0xec, 0x1a, 0x07, 0x34, 0x62, 0x66, 0x73, 0x5c, 0x49, 0x09, 0x20, 0x69, 0x0c, 0x1e, 0x3f, 0xb2, 0xa9, 0xe9, 0xa3, 0x41, 0x94, 0xed, 0x64, 0x73, 0x73, 0x3b, 0x30, 0x0d, 0x4f, 0x23, 0xc9, 0xae, 0xc0, 0xda, 0x5a, 0x20, 0x22, 0x05, 0x4c, 0xa4, 0x38, 0x85, 0xa1, 0x5a, 0x29, 0x84, 0x32, 0x0e, };
10880 static const ec_test_case ed25519_473_test_case = {
10881 	.name = "EDDSA25519-SHA512/wei25519 473",
10882 	.ec_str_p = &wei25519_str_params,
10883 	.priv_key = ed25519_473_test_vectors_priv_key,
10884 	.priv_key_len = sizeof(ed25519_473_test_vectors_priv_key),
10885 	.nn_random = NULL,
10886 	.hash_type = SHA512,
10887 	.msg = (const char *)ed25519_473_test_vectors_message,
10888 	.msglen = sizeof(ed25519_473_test_vectors_message),
10889 	.sig_type = EDDSA25519,
10890 	.exp_sig = ed25519_473_test_vectors_expected_sig,
10891 	.exp_siglen = sizeof(ed25519_473_test_vectors_expected_sig),
10892 	.adata = NULL,
10893 	.adata_len = 0
10894 };
10895 
10896 /************************************************/
10897 static const u8 ed25519_474_test_vectors_priv_key[] = {
10898 	0x7d, 0xbc, 0x81, 0x90, 0x2e, 0x4e, 0xaa, 0xb3, 0x07, 0x75, 0x40, 0xf5, 0x59, 0x99, 0x5c, 0x38, 0x74, 0x03, 0xca, 0xc3, 0x06, 0xd4, 0x86, 0xe9, 0x59, 0xc5, 0xeb, 0x59, 0xe4, 0x31, 0xc0, 0xa8, };
10899 static const u8 ed25519_474_test_vectors_message[] = {
10900 	0xdf, 0xf7, 0x98, 0xb1, 0x55, 0x7b, 0x17, 0x08, 0x5a, 0x06, 0x34, 0x37, 0x1d, 0xed, 0x5d, 0xdf, 0x7a, 0x5a, 0xcb, 0x99, 0x6e, 0xf9, 0x03, 0x54, 0x75, 0xe6, 0x82, 0x63, 0x36, 0xf6, 0x4a, 0xd8, 0xb8, 0x4b, 0x88, 0x2e, 0x30, 0xba, 0xde, 0xc2, 0xb4, 0xa7, 0x11, 0x99, 0x87, 0x52, 0xf4, 0xa1, 0x57, 0x4b, 0xc1, 0xf8, 0x9d, 0x43, 0x25, 0xcf, 0x2b, 0x39, 0x86, 0x10, 0x44, 0xdd, 0x03, 0x69, 0x1e, 0x71, 0xd0, 0x77, 0x68, 0xb5, 0x93, 0x3a, 0x30, 0x52, 0xcc, 0x7c, 0x81, 0xd5, 0x71, 0xa9, 0xde, 0x06, 0x1d, 0xc1, 0x90, 0x26, 0xc2, 0xf1, 0xe7, 0x01, 0xf2, 0xdc, 0xf2, 0x6a, 0x88, 0xd3, 0x40, 0x1b, 0xc9, 0x9f, 0xb8, 0x15, 0x59, 0xdc, 0xa7, 0x6d, 0x8a, 0x31, 0xa9, 0x20, 0x44, 0xa2, 0x73, 0x58, 0x7d, 0x62, 0x2a, 0x08, 0xd1, 0xcc, 0xe6, 0x1c, 0x8f, 0x94, 0x8a, 0x34, 0xde, 0xd1, 0xac, 0xb3, 0x18, 0x88, 0x1c, 0x9b, 0x49, 0xf6, 0xf3, 0x7c, 0x30, 0xa6, 0x5d, 0x49, 0x5b, 0x02, 0xd5, 0x42, 0x9e, 0x7a, 0xb4, 0x04, 0x0d, 0x8b, 0xeb, 0xeb, 0x78, 0x79, 0x4f, 0xf7, 0x36, 0xd1, 0x51, 0x10, 0x31, 0xa6, 0xd6, 0x7a, 0x22, 0xcd, 0xf3, 0x41, 0xb9, 0x80, 0x81, 0x1c, 0x9d, 0x77, 0x5f, 0xb1, 0x9c, 0x64, 0x78, 0xf0, 0x5e, 0xd9, 0x84, 0x30, 0x10, 0x3e, 0xa2, 0x4c, 0x0f, 0x41, 0x4d, 0x4c, 0xc0, 0x7d, 0x86, 0x0b, 0x72, 0xdc, 0x54, 0x2f, 0xf2, 0x2d, 0x83, 0x84, 0x5a, 0x42, 0xf8, 0xba, 0x45, 0xca, 0x7f, 0xf3, 0xaa, 0xb0, 0xb1, 0xe7, 0xde, 0x2b, 0x10, 0x94, 0xde, 0xac, 0x08, 0xd1, 0x6e, 0xee, 0x01, 0x96, 0x9f, 0x91, 0xbc, 0x16, 0xfe, 0xc2, 0x9c, 0xcc, 0x06, 0x1c, 0x54, 0xdb, 0x53, 0x45, 0xba, 0x64, 0x84, 0x2d, 0xac, 0xc9, 0x9e, 0xe7, 0x72, 0x94, 0x68, 0xd8, 0x0a, 0x3f, 0x09, 0x55, 0x83, 0xd8, 0xe8, 0x01, 0x24, 0x08, 0x51, 0x9d, 0x58, 0x2c, 0xc3, 0xff, 0x9a, 0x2e, 0xb7, 0xae, 0xba, 0xa2, 0x2d, 0xb8, 0x1f, 0xfc, 0x78, 0xee, 0x90, 0xef, 0x4e, 0xc5, 0x89, 0xdc, 0xce, 0x87, 0x11, 0x8d, 0xab, 0x31, 0xa6, 0x32, 0x8e, 0x40, 0x9a, 0xd5, 0x05, 0x9a, 0x51, 0x32, 0xc8, 0x2d, 0xf3, 0xce, 0xfe, 0x2e, 0x40, 0x14, 0xe4, 0x76, 0xf0, 0x4c, 0x3a, 0x70, 0x18, 0xe4, 0x52, 0x67, 0xec, 0x50, 0x18, 0xec, 0xd7, 0xbf, 0xf1, 0xdd, 0xa9, 0x26, 0x7e, 0x90, 0x66, 0x6b, 0x6b, 0x14, 0x17, 0xe8, 0x9d, 0xda, 0xcb, 0x50, 0x85, 0x94, 0x3b, 0xef, 0xc7, 0xad, 0x2f, 0x4d, 0xf5, 0xf1, 0xee, 0x0a, 0xf9, 0x43, 0x1a, 0xee, 0xb6, 0xb2, 0x4a, 0x55, 0x15, 0xb9, 0x3d, 0xbc, 0xf6, 0x86, 0x40, 0xf7, 0xda, 0xf8, 0xc9, 0x61, 0xe5, 0x67, 0xd7, 0x53, 0x49, 0x00, 0x20, 0x5c, 0x3d, 0xf2, 0x18, 0x4b, 0x6a, 0xc2, 0xda, 0x96, 0x1c, 0x4c, 0x1d, 0x2b, 0xc4, 0x9b, 0x4e, 0xa9, 0x6b, 0x81, 0x54, 0xff, 0xd4, 0xef, 0xff, 0xdc, 0x5e, 0x55, 0xa7, 0x11, 0x9c, 0xb8, 0xaf, 0x42, 0x9e, 0x85, 0x10, 0x5d, 0xff, 0xd4, 0x1f, 0xe4, 0xa2, 0xeb, 0xba, 0x48, 0x16, 0x8a, 0xa0, 0x5f, 0xa7, 0xdf, 0x27, 0xc4, 0x29, 0x87, 0x35, 0xff, 0x86, 0x8f, 0x14, 0x96, 0xbe, 0xb4, 0xb2, 0xed, 0x0b, 0x89, 0x80, 0xc7, 0x5f, 0xfd, 0x93, 0x9d, 0xdd, 0x1a, 0x17, 0xe4, 0x4a, 0x44, 0xfe, 0x3b, 0x02, 0x79, 0x53, 0x39, 0xb0, 0x8c, 0x8d, };
10901 static const u8 ed25519_474_test_vectors_expected_sig[] = {
10902 	0x5b, 0x7f, 0x65, 0x2f, 0x08, 0xf2, 0x29, 0xfd, 0xa1, 0xb0, 0xbd, 0x75, 0x93, 0x77, 0xb3, 0xfb, 0x72, 0x6c, 0x1b, 0x9c, 0x9a, 0x10, 0xef, 0x63, 0x42, 0x6d, 0x35, 0x2d, 0xd0, 0x86, 0x9b, 0xd5, 0x4d, 0x87, 0x6c, 0x30, 0x92, 0xf1, 0xcd, 0x41, 0x1c, 0x37, 0x57, 0xd3, 0xc6, 0xb6, 0xea, 0x94, 0x2a, 0xa7, 0x0c, 0x3a, 0xae, 0xb4, 0x21, 0x7a, 0x4c, 0x73, 0x64, 0xd1, 0x8e, 0x76, 0xe5, 0x0f, };
10903 static const ec_test_case ed25519_474_test_case = {
10904 	.name = "EDDSA25519-SHA512/wei25519 474",
10905 	.ec_str_p = &wei25519_str_params,
10906 	.priv_key = ed25519_474_test_vectors_priv_key,
10907 	.priv_key_len = sizeof(ed25519_474_test_vectors_priv_key),
10908 	.nn_random = NULL,
10909 	.hash_type = SHA512,
10910 	.msg = (const char *)ed25519_474_test_vectors_message,
10911 	.msglen = sizeof(ed25519_474_test_vectors_message),
10912 	.sig_type = EDDSA25519,
10913 	.exp_sig = ed25519_474_test_vectors_expected_sig,
10914 	.exp_siglen = sizeof(ed25519_474_test_vectors_expected_sig),
10915 	.adata = NULL,
10916 	.adata_len = 0
10917 };
10918 
10919 /************************************************/
10920 static const u8 ed25519_475_test_vectors_priv_key[] = {
10921 	0x91, 0xb0, 0x95, 0xc8, 0xa9, 0x99, 0xe0, 0x3f, 0x3e, 0xd7, 0x49, 0xcd, 0x9f, 0x2f, 0xaa, 0xcc, 0x00, 0x76, 0xc3, 0xb4, 0x77, 0xa8, 0x7a, 0xb5, 0xcc, 0xd6, 0x63, 0x17, 0x38, 0x76, 0x74, 0x46, };
10922 static const u8 ed25519_475_test_vectors_message[] = {
10923 	0x9b, 0x0d, 0x8b, 0x00, 0x29, 0x98, 0x52, 0xd6, 0x8b, 0xbf, 0x49, 0x7f, 0xe6, 0x03, 0x96, 0x1a, 0x48, 0x54, 0x66, 0xa9, 0x9a, 0x54, 0x84, 0x00, 0x5d, 0xb7, 0x3d, 0x4e, 0x4b, 0xad, 0x81, 0x4e, 0x85, 0x74, 0xef, 0xd5, 0x4d, 0x64, 0x8b, 0xd5, 0xc9, 0x1a, 0xe8, 0x48, 0x3c, 0x54, 0xb2, 0xf9, 0x98, 0xb0, 0x2e, 0x1a, 0xbd, 0x6f, 0x40, 0x1a, 0x25, 0x52, 0x68, 0x43, 0xa5, 0xf2, 0xa2, 0x3a, 0x97, 0xbd, 0x58, 0x9d, 0x1f, 0x7e, 0x1a, 0xb1, 0x49, 0x15, 0xb1, 0xe3, 0x59, 0xa3, 0x96, 0xd3, 0x52, 0xc3, 0x60, 0xae, 0x65, 0x84, 0x32, 0x5a, 0xe4, 0xbb, 0x7d, 0x62, 0x4f, 0x61, 0x25, 0x5c, 0x5c, 0x7b, 0xf0, 0xa6, 0x7a, 0xca, 0xb4, 0x6c, 0x3b, 0x57, 0xb3, 0x45, 0x34, 0xc0, 0xee, 0x84, 0x31, 0xd2, 0x60, 0x57, 0x66, 0x06, 0xcb, 0xd8, 0x4d, 0x8d, 0x18, 0x39, 0xe7, 0x3d, 0xa6, 0xfe, 0x4b, 0x0b, 0x8b, 0x78, 0xf0, 0xf9, 0x58, 0x82, 0x7c, 0x2f, 0x1d, 0x93, 0xba, 0x7a, 0x34, 0x6d, 0xcc, 0x75, 0xcb, 0x56, 0x3d, 0xff, 0xde, 0x26, 0xf9, 0x97, 0x59, 0x8e, 0x8b, 0x5c, 0x2f, 0x16, 0x17, 0xc6, 0xfe, 0xfc, 0x9b, 0xe4, 0xb2, 0x8b, 0x54, 0x01, 0xb0, 0x00, 0x64, 0x13, 0xa2, 0x51, 0x69, 0x0d, 0x12, 0x03, 0xaa, 0xae, 0x4f, 0x6d, 0x8a, 0x3f, 0xb2, 0x1f, 0x24, 0x00, 0x9a, 0xb3, 0xbf, 0xf1, 0x37, 0x37, 0xa8, 0xa7, 0xe6, 0x64, 0x6c, 0x02, 0x73, 0x2d, 0x9e, 0xc5, 0xa4, 0xa5, 0x10, 0x46, 0x9e, 0x2d, 0x29, 0x9e, 0x4c, 0xc1, 0xad, 0x64, 0x80, 0xa4, 0x82, 0xaa, 0x95, 0x6f, 0x89, 0xdd, 0xcc, 0xcc, 0x64, 0xa1, 0x36, 0xfb, 0x15, 0xb8, 0x76, 0xb6, 0xec, 0xd8, 0x8c, 0x7c, 0x86, 0xa4, 0xdf, 0xc6, 0x0e, 0x66, 0x62, 0x07, 0xc6, 0x04, 0x16, 0x7d, 0x16, 0x34, 0x40, 0xca, 0x9a, 0xb9, 0xcf, 0x87, 0xa5, 0xe0, 0xf7, 0xbb, 0xc5, 0x51, 0x7d, 0xe4, 0xde, 0xe8, 0x76, 0xc0, 0x37, 0xf8, 0xcc, 0x9d, 0x95, 0x9c, 0x8f, 0xf5, 0xdb, 0xe9, 0x44, 0xff, 0x54, 0xcd, 0x91, 0xa7, 0x71, 0xe2, 0x92, 0x31, 0xf8, 0xb5, 0xf1, 0x7d, 0x61, 0xde, 0x90, 0x4c, 0x95, 0x5f, 0xe2, 0x02, 0x5d, 0xc5, 0x2e, 0xd4, 0x80, 0xfb, 0x3c, 0xc9, 0x0f, 0x23, 0x24, 0x59, 0xc6, 0x07, 0xef, 0x7e, 0x2a, 0xdb, 0x52, 0xc7, 0x48, 0x2b, 0xec, 0xd6, 0x7a, 0xd2, 0x14, 0x9a, 0x41, 0x28, 0xf9, 0x84, 0x03, 0x8b, 0x58, 0xaa, 0x90, 0x17, 0x67, 0x82, 0x39, 0x36, 0x04, 0xaa, 0xc7, 0x4c, 0x18, 0x20, 0x9a, 0x3d, 0x6a, 0x78, 0x63, 0x0c, 0x01, 0x95, 0x5a, 0x7c, 0xec, 0xe5, 0xda, 0x83, 0x84, 0xda, 0x3b, 0xaf, 0x63, 0xaa, 0x2d, 0xdf, 0x59, 0x63, 0xfa, 0xe0, 0x5b, 0xa3, 0xb8, 0x1c, 0x6a, 0x03, 0xd8, 0x6a, 0x00, 0xef, 0x78, 0xed, 0xb4, 0x18, 0x4f, 0xdc, 0x89, 0xb1, 0xd6, 0xbf, 0xeb, 0x31, 0x0f, 0xd1, 0xb5, 0xfc, 0xce, 0x1e, 0x21, 0x95, 0x24, 0xa3, 0xcf, 0xb2, 0xe9, 0x72, 0x57, 0x7f, 0x06, 0xb1, 0xdd, 0xde, 0xba, 0x00, 0x86, 0x5d, 0xae, 0x49, 0x79, 0x00, 0x0c, 0x00, 0x8a, 0xd9, 0x9f, 0x3b, 0x63, 0x8c, 0xce, 0xb8, 0xe8, 0xc7, 0xa0, 0xf9, 0x98, 0xd3, 0x4d, 0x92, 0x14, 0x3d, 0x81, 0xc0, 0xe1, 0xc0, 0x96, 0xa9, 0x25, 0xce, 0xba, 0x65, 0xc4, 0x30, 0x03, 0xee, 0x18, 0xd4, 0x94, 0xd0, 0x03, 0xe9, 0xc6, 0x1f, 0x77, 0xd6, 0x57, 0x59, };
10924 static const u8 ed25519_475_test_vectors_expected_sig[] = {
10925 	0x64, 0xee, 0x9e, 0xfd, 0xb0, 0xc2, 0x60, 0x1a, 0x83, 0x5f, 0x41, 0x85, 0x20, 0x64, 0x1e, 0x43, 0x6c, 0x7d, 0xd4, 0x7c, 0x33, 0x3d, 0x9f, 0xc3, 0x0c, 0xfb, 0xb9, 0xe3, 0x90, 0xfe, 0x76, 0x45, 0x30, 0x65, 0x47, 0x08, 0xb4, 0x0b, 0x03, 0x58, 0x18, 0x99, 0xa9, 0xac, 0x87, 0x0e, 0xfd, 0x76, 0x6f, 0xfb, 0xb4, 0x63, 0x71, 0x52, 0xf8, 0xff, 0x27, 0x79, 0x64, 0xfe, 0x35, 0x42, 0x52, 0x09, };
10926 static const ec_test_case ed25519_475_test_case = {
10927 	.name = "EDDSA25519-SHA512/wei25519 475",
10928 	.ec_str_p = &wei25519_str_params,
10929 	.priv_key = ed25519_475_test_vectors_priv_key,
10930 	.priv_key_len = sizeof(ed25519_475_test_vectors_priv_key),
10931 	.nn_random = NULL,
10932 	.hash_type = SHA512,
10933 	.msg = (const char *)ed25519_475_test_vectors_message,
10934 	.msglen = sizeof(ed25519_475_test_vectors_message),
10935 	.sig_type = EDDSA25519,
10936 	.exp_sig = ed25519_475_test_vectors_expected_sig,
10937 	.exp_siglen = sizeof(ed25519_475_test_vectors_expected_sig),
10938 	.adata = NULL,
10939 	.adata_len = 0
10940 };
10941 
10942 /************************************************/
10943 static const u8 ed25519_476_test_vectors_priv_key[] = {
10944 	0x8c, 0x56, 0x8b, 0x31, 0x0a, 0xce, 0x7d, 0x1f, 0x0e, 0xde, 0xce, 0xfd, 0x60, 0x3a, 0x88, 0x40, 0x00, 0x54, 0x4c, 0x79, 0x25, 0x65, 0xd4, 0x81, 0xc3, 0xd3, 0xe0, 0x6e, 0x2d, 0x82, 0xca, 0x96, };
10945 static const u8 ed25519_476_test_vectors_message[] = {
10946 	0xb5, 0x9f, 0x5f, 0xe9, 0xbb, 0x4e, 0xcf, 0xf9, 0x28, 0x95, 0x94, 0x72, 0x1f, 0x26, 0x47, 0x04, 0x7b, 0x0d, 0xa5, 0xe0, 0xe4, 0x94, 0x1b, 0xbe, 0x57, 0xc5, 0xb7, 0x22, 0xb4, 0x76, 0x72, 0x3f, 0x0a, 0xc5, 0x97, 0x0b, 0x41, 0x11, 0xf8, 0x93, 0xbc, 0xaa, 0x41, 0x1f, 0x28, 0xfc, 0xeb, 0x4f, 0x58, 0x5a, 0x2a, 0x71, 0x87, 0x01, 0x8a, 0x90, 0x4b, 0x70, 0xef, 0x8f, 0xe1, 0xf6, 0x56, 0x9a, 0x54, 0xd0, 0x0a, 0xda, 0x37, 0xb6, 0x9c, 0xb5, 0xe9, 0xc9, 0xd2, 0x6c, 0x16, 0xa9, 0x03, 0x51, 0x81, 0x48, 0xe0, 0x4a, 0x1b, 0x93, 0x6a, 0x32, 0x32, 0x9c, 0x94, 0xee, 0x1a, 0x8f, 0xb6, 0xb5, 0x91, 0x89, 0x2c, 0x3a, 0xff, 0x00, 0xbf, 0x6e, 0x44, 0xdd, 0x0a, 0x76, 0x2b, 0xab, 0xe8, 0x9d, 0x70, 0x60, 0xc1, 0x7b, 0x90, 0x39, 0x0d, 0x23, 0xbf, 0x9d, 0x36, 0x0a, 0x29, 0x3b, 0x83, 0x08, 0x38, 0x30, 0x86, 0x91, 0x6e, 0x11, 0x82, 0xb1, 0xba, 0x43, 0x36, 0xf0, 0x01, 0xb8, 0xd2, 0x0d, 0xea, 0xe9, 0xa0, 0x29, 0xf7, 0xe8, 0x53, 0x97, 0xa9, 0xae, 0x5c, 0xf3, 0xca, 0x10, 0xc7, 0xf3, 0x87, 0x55, 0x88, 0xb8, 0xff, 0xab, 0xb0, 0x63, 0xc0, 0x0c, 0xa2, 0x6f, 0x58, 0x0f, 0x69, 0xed, 0xc5, 0x27, 0xa1, 0xac, 0xcf, 0x4f, 0x41, 0x39, 0x7b, 0x33, 0x76, 0x6b, 0xcf, 0x6d, 0x55, 0xeb, 0x8d, 0xe0, 0x81, 0xa4, 0x8c, 0x98, 0x1d, 0x05, 0xc0, 0x66, 0x61, 0x7b, 0x80, 0xd8, 0xf6, 0xf5, 0xe6, 0x0e, 0x59, 0xdd, 0x9b, 0x93, 0x0b, 0xc4, 0xd0, 0x45, 0x86, 0x40, 0x3b, 0xb8, 0x68, 0xdf, 0x75, 0x93, 0x3b, 0xdd, 0x86, 0x23, 0x0e, 0x44, 0x70, 0x36, 0xc1, 0x75, 0xa1, 0x0d, 0xe9, 0xbb, 0x39, 0x95, 0x3d, 0xcb, 0x19, 0x66, 0xa1, 0xf1, 0x19, 0x12, 0x07, 0x8e, 0x35, 0x8f, 0x48, 0xc5, 0xb2, 0x09, 0xa6, 0x36, 0xc7, 0xf7, 0x83, 0xf4, 0xd3, 0x6a, 0x93, 0xad, 0x2c, 0xc2, 0xe3, 0x24, 0x45, 0x19, 0x07, 0x8e, 0x99, 0xde, 0x1d, 0x51, 0x58, 0xb3, 0x96, 0x1e, 0x0f, 0xc5, 0xa4, 0xf2, 0x60, 0xc2, 0x5f, 0x45, 0xf5, 0xe8, 0x58, 0x5e, 0x60, 0x1d, 0xb0, 0x8b, 0xa0, 0x58, 0xd2, 0x90, 0x9a, 0x1b, 0xf4, 0x99, 0x5f, 0x48, 0x13, 0x46, 0x0d, 0x36, 0x95, 0x03, 0xc6, 0x87, 0x36, 0x85, 0xeb, 0xcd, 0x33, 0x30, 0xa1, 0x30, 0xb7, 0x5f, 0x23, 0x65, 0xfb, 0x2a, 0x5a, 0x34, 0xea, 0x63, 0xd9, 0x58, 0xa2, 0xa8, 0x67, 0xe9, 0x05, 0x52, 0xd2, 0xce, 0xc8, 0xc3, 0x90, 0x08, 0x4b, 0xe0, 0xc1, 0x08, 0xb0, 0xfd, 0x2d, 0x83, 0xcb, 0x92, 0x84, 0xdb, 0x5b, 0x84, 0x2c, 0xbb, 0x5d, 0x0c, 0x3f, 0x6f, 0x1e, 0x26, 0x03, 0xc9, 0xc3, 0x0c, 0x0f, 0x6a, 0x9b, 0x11, 0x8e, 0x1a, 0x14, 0x3a, 0x15, 0xe3, 0x19, 0xfd, 0x1b, 0x60, 0x71, 0x52, 0xb7, 0xcc, 0x05, 0x47, 0x49, 0x79, 0x54, 0xc1, 0xf7, 0x29, 0x19, 0x9d, 0x0b, 0x23, 0xe5, 0x38, 0x65, 0x40, 0x3b, 0x0a, 0xd6, 0x80, 0xe9, 0xb4, 0x53, 0x69, 0xa6, 0xaa, 0x38, 0xd6, 0x68, 0x5a, 0xbd, 0x39, 0x7f, 0x07, 0xfb, 0xca, 0x40, 0x62, 0x7e, 0xca, 0xf8, 0xd8, 0xd3, 0x01, 0x33, 0xa6, 0xd9, 0xd5, 0xaf, 0x00, 0x91, 0x92, 0x75, 0x1c, 0x9c, 0x45, 0xf7, 0x7c, 0x0b, 0xc0, 0x11, 0x26, 0x88, 0x00, 0xbf, 0x55, 0x25, 0x12, 0x73, 0x0e, 0x69, 0x97, 0x3c, 0x5b, 0xf3, 0x62, 0xab, 0x16, 0x48, 0x94, 0xbf, };
10947 static const u8 ed25519_476_test_vectors_expected_sig[] = {
10948 	0xde, 0xbd, 0xd8, 0xe5, 0xd3, 0x11, 0x2f, 0xd7, 0x7b, 0x39, 0x4a, 0xa0, 0xe3, 0x6e, 0x94, 0x26, 0xba, 0xc9, 0x1d, 0xf1, 0x26, 0xfa, 0x9c, 0x31, 0x7c, 0xea, 0x7c, 0x9d, 0x45, 0x95, 0x7c, 0xdd, 0x96, 0xa4, 0x5a, 0xe3, 0xad, 0x76, 0x04, 0x13, 0xee, 0x12, 0x05, 0xaf, 0xd7, 0x1a, 0x29, 0xf9, 0xc3, 0xcb, 0x58, 0x6c, 0xd2, 0xd7, 0xcd, 0x1e, 0x93, 0xbc, 0x16, 0x52, 0xfc, 0x34, 0xdc, 0x04, };
10949 static const ec_test_case ed25519_476_test_case = {
10950 	.name = "EDDSA25519-SHA512/wei25519 476",
10951 	.ec_str_p = &wei25519_str_params,
10952 	.priv_key = ed25519_476_test_vectors_priv_key,
10953 	.priv_key_len = sizeof(ed25519_476_test_vectors_priv_key),
10954 	.nn_random = NULL,
10955 	.hash_type = SHA512,
10956 	.msg = (const char *)ed25519_476_test_vectors_message,
10957 	.msglen = sizeof(ed25519_476_test_vectors_message),
10958 	.sig_type = EDDSA25519,
10959 	.exp_sig = ed25519_476_test_vectors_expected_sig,
10960 	.exp_siglen = sizeof(ed25519_476_test_vectors_expected_sig),
10961 	.adata = NULL,
10962 	.adata_len = 0
10963 };
10964 
10965 /************************************************/
10966 static const u8 ed25519_477_test_vectors_priv_key[] = {
10967 	0x3d, 0x09, 0xaf, 0xce, 0xe3, 0xc4, 0x32, 0xfd, 0xfb, 0x6b, 0xdc, 0xea, 0xd5, 0x4e, 0x3d, 0xa5, 0xb1, 0xb4, 0x16, 0x5c, 0x50, 0xd6, 0xd3, 0x10, 0xb7, 0xfa, 0xd7, 0x87, 0xb4, 0x44, 0xd6, 0x80, };
10968 static const u8 ed25519_477_test_vectors_message[] = {
10969 	0x76, 0x71, 0x65, 0xca, 0xae, 0x0e, 0x57, 0x8f, 0x16, 0x53, 0x7e, 0x17, 0x50, 0xbe, 0x7d, 0xe8, 0x7a, 0x78, 0x9a, 0x51, 0xff, 0x2d, 0xe1, 0x18, 0x38, 0xf5, 0x64, 0xe2, 0x58, 0x0b, 0x23, 0x91, 0x36, 0x2d, 0x28, 0x68, 0xa5, 0xa4, 0x70, 0x8a, 0xf1, 0x5d, 0x2e, 0x2d, 0xb7, 0xb9, 0xbe, 0x39, 0xc1, 0x6a, 0xdc, 0xc1, 0x20, 0x0b, 0x34, 0xe6, 0xb4, 0xd4, 0x02, 0x7d, 0xdf, 0xfc, 0x1a, 0x2a, 0x35, 0x95, 0xe2, 0x9e, 0x85, 0x5e, 0xc5, 0x26, 0x1b, 0x20, 0xbd, 0x55, 0xc4, 0x28, 0xb0, 0x13, 0x09, 0xba, 0xdb, 0x59, 0xe2, 0xca, 0x3e, 0xdb, 0x96, 0x7f, 0xc2, 0xf4, 0xba, 0xc0, 0x72, 0x9d, 0xdf, 0x54, 0xfb, 0x6c, 0x20, 0x05, 0x7b, 0xdd, 0xa9, 0xe7, 0xaf, 0x7c, 0xbf, 0xc0, 0x92, 0xfb, 0xa8, 0x65, 0xfd, 0x32, 0x75, 0xb9, 0xd3, 0xbc, 0xb0, 0xc3, 0x46, 0xb9, 0x51, 0xd1, 0x70, 0xac, 0x9a, 0xa6, 0x50, 0xa8, 0x6d, 0xf4, 0x98, 0x55, 0xd4, 0x8a, 0x1b, 0x37, 0xce, 0x56, 0xc9, 0xf2, 0x73, 0x89, 0xf5, 0xc8, 0xb1, 0x5f, 0x5c, 0x2c, 0x90, 0x0c, 0x4f, 0x10, 0x7c, 0x06, 0x4f, 0x60, 0x3e, 0x4f, 0x86, 0x7e, 0xf2, 0xe9, 0xc1, 0x0a, 0x1b, 0x74, 0x21, 0x0e, 0x6b, 0x89, 0xbb, 0x01, 0x17, 0x93, 0xaa, 0x85, 0xde, 0xd4, 0x3b, 0x51, 0xb7, 0x49, 0xba, 0x7f, 0x70, 0x28, 0x7b, 0x6b, 0xc1, 0xb8, 0x94, 0x34, 0xdb, 0x8b, 0x8c, 0x8b, 0x5d, 0x73, 0xb2, 0x14, 0xb4, 0x1e, 0x36, 0xb5, 0x28, 0x00, 0x5b, 0xfb, 0xfe, 0x00, 0x2e, 0x21, 0xb1, 0x00, 0x6f, 0xb9, 0xd2, 0x4b, 0xab, 0xd7, 0x21, 0x06, 0xd0, 0x93, 0xe3, 0xc7, 0x09, 0x3b, 0x31, 0x38, 0xae, 0xa7, 0x19, 0xd6, 0x94, 0x79, 0x08, 0x46, 0x47, 0x49, 0x8c, 0xd6, 0xc9, 0xbb, 0xb7, 0x44, 0x50, 0x9c, 0xd7, 0xda, 0x8d, 0xd6, 0x1a, 0x62, 0x71, 0x00, 0xf0, 0x3c, 0x21, 0xe7, 0x50, 0xac, 0xb3, 0xfc, 0xf4, 0x63, 0x1d, 0x7c, 0x0f, 0x61, 0x81, 0x54, 0xd2, 0xe5, 0xfa, 0x66, 0x56, 0xfb, 0x76, 0xf7, 0x4c, 0x24, 0x79, 0x50, 0x47, 0xbb, 0xce, 0x45, 0x79, 0xeb, 0x11, 0x06, 0x43, 0xfa, 0x98, 0xe1, 0xf7, 0x76, 0xca, 0x76, 0xd7, 0xa2, 0xb7, 0xb7, 0xb8, 0x67, 0x81, 0x73, 0xc7, 0x73, 0xf4, 0xbe, 0x7e, 0x18, 0x2f, 0xd2, 0x4d, 0xd7, 0x62, 0x91, 0xac, 0x67, 0xd9, 0xf2, 0x6a, 0x28, 0xc5, 0xe3, 0xcb, 0x02, 0x5c, 0x68, 0x13, 0xa3, 0x78, 0xb3, 0x83, 0x22, 0x46, 0x42, 0xb4, 0xae, 0xfa, 0xd0, 0xc7, 0x6a, 0x65, 0x79, 0x51, 0x7b, 0x8f, 0x36, 0x07, 0x97, 0xdd, 0x22, 0x61, 0x3e, 0xe6, 0x82, 0xb1, 0x79, 0x38, 0x19, 0x50, 0xfb, 0x71, 0x60, 0x9a, 0x5f, 0xb5, 0x49, 0x4d, 0x2d, 0x57, 0xdc, 0xb0, 0x0f, 0x26, 0xd1, 0xe7, 0x29, 0x56, 0xf4, 0xd6, 0x67, 0x28, 0x30, 0xe0, 0x5c, 0x01, 0xb3, 0x77, 0x96, 0x77, 0xc0, 0x7e, 0xa0, 0x09, 0x53, 0xc6, 0xb8, 0xf0, 0xdc, 0x20, 0x4c, 0x8d, 0xbd, 0xcc, 0xb3, 0x81, 0xbc, 0x01, 0xb8, 0x9c, 0x5c, 0x26, 0x1d, 0xb1, 0x89, 0xab, 0x1f, 0x54, 0xe4, 0x6b, 0xc3, 0xed, 0xc4, 0xde, 0x5a, 0xd4, 0xf0, 0xeb, 0x29, 0xc0, 0xa1, 0x20, 0xe4, 0x37, 0xcd, 0x8f, 0x37, 0xac, 0x67, 0xd4, 0x8c, 0x7f, 0x0e, 0x73, 0x02, 0x78, 0x70, 0x8f, 0x02, 0xb5, 0x4a, 0xee, 0x62, 0xb7, 0x29, 0x52, 0xbc, 0x1c, 0x0e, 0xb4, 0x37, 0xca, 0x8b, 0xd5, 0x65, 0x54, 0x37, };
10970 static const u8 ed25519_477_test_vectors_expected_sig[] = {
10971 	0x89, 0x73, 0x9f, 0xe4, 0x41, 0xca, 0x0c, 0xed, 0x08, 0xa6, 0xeb, 0x57, 0x96, 0xe9, 0xbd, 0xda, 0x0e, 0x74, 0xfb, 0x47, 0x35, 0x28, 0xfd, 0x49, 0x07, 0xed, 0xb6, 0x59, 0xaa, 0xb4, 0x4d, 0x33, 0x43, 0x22, 0x90, 0x46, 0x71, 0x63, 0x68, 0xfa, 0xf8, 0x8e, 0x85, 0xc1, 0x64, 0x4a, 0xf6, 0x6f, 0xf2, 0xdc, 0xaf, 0x0b, 0x17, 0xac, 0x93, 0xca, 0x13, 0x81, 0x9f, 0x3f, 0x24, 0x1d, 0xd3, 0x00, };
10972 static const ec_test_case ed25519_477_test_case = {
10973 	.name = "EDDSA25519-SHA512/wei25519 477",
10974 	.ec_str_p = &wei25519_str_params,
10975 	.priv_key = ed25519_477_test_vectors_priv_key,
10976 	.priv_key_len = sizeof(ed25519_477_test_vectors_priv_key),
10977 	.nn_random = NULL,
10978 	.hash_type = SHA512,
10979 	.msg = (const char *)ed25519_477_test_vectors_message,
10980 	.msglen = sizeof(ed25519_477_test_vectors_message),
10981 	.sig_type = EDDSA25519,
10982 	.exp_sig = ed25519_477_test_vectors_expected_sig,
10983 	.exp_siglen = sizeof(ed25519_477_test_vectors_expected_sig),
10984 	.adata = NULL,
10985 	.adata_len = 0
10986 };
10987 
10988 /************************************************/
10989 static const u8 ed25519_478_test_vectors_priv_key[] = {
10990 	0x41, 0xc1, 0xa2, 0xdf, 0x93, 0x69, 0xcd, 0xc9, 0x27, 0x16, 0x4a, 0xa5, 0xad, 0xf7, 0x75, 0x71, 0x36, 0xab, 0xe5, 0x13, 0x95, 0x60, 0x42, 0x66, 0x33, 0x4c, 0xc5, 0x46, 0x0a, 0xd5, 0x68, 0x3e, };
10991 static const u8 ed25519_478_test_vectors_message[] = {
10992 	0xb6, 0x4b, 0x14, 0xba, 0x77, 0xd2, 0x39, 0xe6, 0xf8, 0x1a, 0xbe, 0x06, 0x0a, 0xcc, 0xef, 0x85, 0xf0, 0x44, 0x2b, 0x65, 0x0c, 0x44, 0x01, 0x5e, 0xfc, 0x43, 0xa0, 0xaa, 0x2b, 0xa1, 0x0b, 0xf4, 0x8d, 0x30, 0x18, 0xb1, 0x95, 0x3d, 0xdf, 0xff, 0xbc, 0xda, 0x5b, 0xf3, 0xbb, 0xe0, 0xb6, 0xb3, 0xe4, 0xb0, 0xd9, 0xa3, 0x2c, 0x6b, 0x72, 0x5b, 0xbb, 0x23, 0x1e, 0x0a, 0x27, 0x04, 0x47, 0x1e, 0xe8, 0xbc, 0x1d, 0x59, 0x4f, 0x5c, 0x54, 0x22, 0x6f, 0x5d, 0xd9, 0xdf, 0xa1, 0x63, 0xcf, 0xc1, 0x45, 0x2c, 0x61, 0xf9, 0x3e, 0x4f, 0x81, 0x39, 0xab, 0x4c, 0xe4, 0x47, 0x6f, 0x07, 0xec, 0x93, 0x36, 0x61, 0xea, 0xe9, 0x1b, 0x6d, 0x50, 0x0b, 0xf5, 0x08, 0xac, 0x63, 0xe4, 0xba, 0xaf, 0x1f, 0xfc, 0x8f, 0x00, 0x07, 0xd8, 0x02, 0xe0, 0x05, 0xf1, 0xb4, 0xfc, 0x1c, 0x88, 0xbe, 0xe4, 0xd5, 0xe9, 0xe7, 0x63, 0x84, 0xf5, 0xa7, 0x04, 0x3b, 0xd6, 0x60, 0xcc, 0xe7, 0x1f, 0x3b, 0x67, 0xf0, 0x1f, 0x6a, 0xb8, 0x44, 0x29, 0x85, 0x31, 0xaa, 0xc7, 0x3a, 0x39, 0xd0, 0x45, 0x37, 0x00, 0x88, 0x85, 0x50, 0x05, 0xa0, 0x9c, 0x6d, 0x04, 0x23, 0x8e, 0xa4, 0x78, 0xdf, 0xac, 0xad, 0x1e, 0x6b, 0x22, 0xb2, 0xbe, 0x4c, 0x46, 0xb0, 0xd5, 0x9b, 0x1e, 0xba, 0x1f, 0x06, 0x0b, 0xf7, 0xda, 0x5d, 0x15, 0x66, 0xcf, 0x1f, 0xdb, 0x5c, 0x54, 0x3a, 0x33, 0x92, 0x6a, 0xf6, 0x3f, 0x01, 0xa0, 0xdb, 0x86, 0xe1, 0xa6, 0x71, 0x1c, 0x47, 0x3d, 0xc7, 0x95, 0xab, 0x28, 0x3c, 0x8d, 0x93, 0xfa, 0xcf, 0xb5, 0x70, 0x1f, 0xa2, 0xf2, 0xf6, 0xbb, 0x99, 0xf9, 0xb7, 0xe3, 0x74, 0x9b, 0x07, 0x1d, 0x58, 0x60, 0x7b, 0xe4, 0x4a, 0x70, 0x89, 0xbc, 0xb5, 0x03, 0xec, 0x14, 0x95, 0xb5, 0xfe, 0xed, 0xb3, 0x99, 0x96, 0x1f, 0xd3, 0x67, 0x7d, 0x74, 0x93, 0xea, 0xa3, 0xb3, 0xe9, 0xcc, 0x5e, 0x36, 0x42, 0xf4, 0x0d, 0x47, 0xde, 0x9b, 0xfe, 0xe7, 0xc2, 0x0b, 0x0e, 0x51, 0x9c, 0x4e, 0xb4, 0xa4, 0x0f, 0x4d, 0xa4, 0x46, 0xed, 0x6a, 0xc7, 0xaa, 0xca, 0x05, 0x3e, 0x75, 0x9c, 0x97, 0xda, 0xbe, 0x0a, 0x8e, 0xc2, 0xf5, 0x8e, 0x7f, 0x2f, 0x9b, 0x20, 0x72, 0x76, 0x2f, 0x9f, 0x79, 0x4a, 0x6a, 0x4e, 0x36, 0x06, 0x0b, 0x88, 0x72, 0xbd, 0x2c, 0x18, 0xd0, 0x6a, 0x85, 0xc2, 0xc1, 0x41, 0xa7, 0x82, 0x93, 0x77, 0x3e, 0xe8, 0xcf, 0xbf, 0x15, 0x4b, 0x99, 0x30, 0xcd, 0x39, 0xda, 0x31, 0xb4, 0x97, 0xe7, 0x37, 0xa7, 0x75, 0x0c, 0x90, 0xa1, 0x3f, 0x5a, 0xaa, 0x14, 0x7c, 0xd0, 0xdc, 0x43, 0x11, 0xf2, 0xe3, 0x49, 0x41, 0x25, 0x2e, 0xf1, 0x98, 0xb0, 0xc1, 0xf5, 0x08, 0x27, 0xe5, 0x6c, 0x9f, 0x16, 0xf5, 0x95, 0xac, 0xed, 0x6d, 0x2a, 0x69, 0x34, 0x65, 0x31, 0x49, 0x5a, 0x64, 0x99, 0x77, 0x4d, 0x36, 0x07, 0x66, 0xca, 0x9b, 0xe5, 0xed, 0x88, 0x81, 0xc0, 0xdb, 0x26, 0xed, 0x7c, 0x5e, 0x6f, 0xf3, 0xa4, 0xf9, 0xb7, 0x3c, 0xd8, 0xb6, 0x54, 0x64, 0x0d, 0xc9, 0x6b, 0xf4, 0x3b, 0xd4, 0x26, 0xa0, 0xf2, 0x8c, 0x9b, 0x25, 0xfa, 0x70, 0x4d, 0x62, 0xff, 0x02, 0x88, 0xfc, 0xce, 0xff, 0xaa, 0xeb, 0xd3, 0xea, 0x30, 0x97, 0xbc, 0xbb, 0xd7, 0x78, 0x42, 0x0e, 0xbc, 0x52, 0x0a, 0x41, 0x77, 0x30, 0xa1, 0xb5, 0xb3, 0xb8, 0xc9, 0x6c, 0xda, 0x9f, 0x4e, 0x17, 0x7d, };
10993 static const u8 ed25519_478_test_vectors_expected_sig[] = {
10994 	0xb8, 0xb2, 0x75, 0x2a, 0x09, 0x71, 0x96, 0xc2, 0x89, 0x84, 0x9d, 0x78, 0xf8, 0x11, 0xd9, 0xa6, 0x2f, 0xc7, 0x67, 0x27, 0x8f, 0x0c, 0x46, 0x62, 0x8b, 0x52, 0x1f, 0x62, 0xed, 0x27, 0x59, 0xd7, 0x44, 0x62, 0xa1, 0x75, 0xda, 0x22, 0x40, 0x3f, 0x15, 0x02, 0x04, 0x45, 0xca, 0xe0, 0x6d, 0xa3, 0xed, 0x61, 0xcc, 0xa6, 0x20, 0x3b, 0x70, 0x06, 0x36, 0x2a, 0x0e, 0x19, 0x89, 0x63, 0xd2, 0x0e, };
10995 static const ec_test_case ed25519_478_test_case = {
10996 	.name = "EDDSA25519-SHA512/wei25519 478",
10997 	.ec_str_p = &wei25519_str_params,
10998 	.priv_key = ed25519_478_test_vectors_priv_key,
10999 	.priv_key_len = sizeof(ed25519_478_test_vectors_priv_key),
11000 	.nn_random = NULL,
11001 	.hash_type = SHA512,
11002 	.msg = (const char *)ed25519_478_test_vectors_message,
11003 	.msglen = sizeof(ed25519_478_test_vectors_message),
11004 	.sig_type = EDDSA25519,
11005 	.exp_sig = ed25519_478_test_vectors_expected_sig,
11006 	.exp_siglen = sizeof(ed25519_478_test_vectors_expected_sig),
11007 	.adata = NULL,
11008 	.adata_len = 0
11009 };
11010 
11011 /************************************************/
11012 static const u8 ed25519_479_test_vectors_priv_key[] = {
11013 	0xa0, 0x06, 0x11, 0x48, 0x94, 0x67, 0x12, 0x2c, 0x4c, 0x16, 0x4b, 0xfb, 0x6a, 0x61, 0x6e, 0x6a, 0x61, 0x9b, 0x9f, 0x83, 0xc4, 0x36, 0x72, 0x06, 0xb8, 0x5d, 0x3f, 0xbe, 0xc3, 0x8c, 0xd6, 0x2c, };
11014 static const u8 ed25519_479_test_vectors_message[] = {
11015 	0x34, 0xdb, 0x02, 0xed, 0x75, 0x12, 0xbf, 0x8c, 0x67, 0xd3, 0x59, 0xe7, 0x20, 0x3a, 0x2e, 0xa4, 0x41, 0xe2, 0x0e, 0x72, 0x97, 0x66, 0xc1, 0x5a, 0xa0, 0x0f, 0xa2, 0x49, 0xa3, 0x51, 0x8f, 0xc2, 0x9e, 0xf8, 0x90, 0x5a, 0xa5, 0xb4, 0x67, 0x09, 0x58, 0xc6, 0xa4, 0x60, 0xd7, 0x7b, 0x3a, 0x80, 0xef, 0xcb, 0x47, 0x38, 0x59, 0xbb, 0xaf, 0xf8, 0x62, 0x22, 0x3e, 0xee, 0x52, 0xfe, 0x58, 0xac, 0xfd, 0x33, 0x15, 0xf1, 0x50, 0xf3, 0xc6, 0xc2, 0x7f, 0xf4, 0x8f, 0xca, 0x76, 0x55, 0x2f, 0x98, 0xf6, 0x58, 0x5b, 0x5e, 0x79, 0x33, 0x08, 0xbf, 0x59, 0x76, 0xba, 0xd6, 0xee, 0x32, 0x7b, 0x4a, 0x7a, 0x31, 0x32, 0x14, 0xb9, 0xae, 0x04, 0xb9, 0x65, 0x1b, 0x63, 0xcd, 0x8d, 0x9f, 0x5b, 0x3b, 0xec, 0x68, 0x9e, 0x0f, 0xd0, 0x00, 0xdd, 0x50, 0x17, 0x70, 0xdd, 0x0e, 0x99, 0xb8, 0xf9, 0x9e, 0xaf, 0xa0, 0x9c, 0x39, 0x6a, 0x24, 0x5a, 0x4a, 0x96, 0xe5, 0x68, 0x96, 0xa2, 0x9b, 0x24, 0x19, 0x0b, 0x1e, 0xf1, 0x10, 0x63, 0xf3, 0x9b, 0x63, 0xee, 0x3a, 0x58, 0x6b, 0x07, 0x62, 0x7d, 0xd3, 0x50, 0x0c, 0x4e, 0x17, 0x0b, 0x83, 0x5d, 0xc0, 0xec, 0x23, 0x6f, 0xa5, 0xa3, 0x5c, 0x44, 0x18, 0x47, 0x07, 0x56, 0x5c, 0x4a, 0x50, 0x66, 0x2d, 0x8d, 0xbc, 0xcf, 0xff, 0x7f, 0x9a, 0x7a, 0x68, 0xd0, 0x21, 0xb4, 0xaf, 0x64, 0xd5, 0x32, 0xb7, 0xc3, 0xd2, 0x74, 0x74, 0x18, 0xc2, 0xd7, 0x17, 0xbb, 0x6a, 0xca, 0x6b, 0x58, 0x74, 0x7a, 0xe4, 0xdd, 0x56, 0x41, 0xd8, 0x26, 0xf7, 0x9a, 0x8a, 0x31, 0x5c, 0x38, 0x21, 0x1a, 0x53, 0x8a, 0x92, 0x9e, 0x5b, 0x45, 0x1f, 0x62, 0x3f, 0x4f, 0xcb, 0xbc, 0xac, 0xdb, 0x86, 0xc8, 0x75, 0x2e, 0xa1, 0x3a, 0x61, 0x7a, 0xb4, 0x14, 0xab, 0x65, 0x3e, 0xb2, 0xe6, 0x8d, 0x54, 0x20, 0xdf, 0x7c, 0x6d, 0xf9, 0x24, 0x38, 0x16, 0x8d, 0xcf, 0x9c, 0x06, 0x65, 0x81, 0xdf, 0xe7, 0xb2, 0xc4, 0x68, 0x19, 0x4a, 0x23, 0x70, 0x7d, 0xe4, 0x65, 0x9b, 0xd6, 0x7e, 0xb6, 0x34, 0xff, 0x02, 0x47, 0x41, 0xc5, 0xfc, 0x86, 0x98, 0xfd, 0x4d, 0xc4, 0x1f, 0xe5, 0xdf, 0xc6, 0x29, 0x9b, 0x7a, 0x08, 0xe6, 0xff, 0xca, 0x37, 0x10, 0x9c, 0x02, 0x10, 0xc8, 0xf9, 0x4e, 0xa2, 0xd3, 0xdd, 0xc9, 0x77, 0xff, 0xc0, 0xb3, 0x79, 0x4f, 0xe6, 0xba, 0x43, 0x37, 0xc7, 0xaa, 0xb4, 0x34, 0xa6, 0x8a, 0xc6, 0x65, 0x48, 0x4e, 0xa8, 0x24, 0x3a, 0x84, 0xb7, 0x9a, 0xa1, 0x81, 0xee, 0x6a, 0xb5, 0xaa, 0x37, 0xa3, 0x2d, 0x87, 0x97, 0x25, 0xed, 0xc0, 0x18, 0xf8, 0x55, 0x21, 0x81, 0x81, 0x6d, 0x7d, 0x27, 0x2c, 0xa8, 0x81, 0x8a, 0x7b, 0x92, 0xe6, 0xee, 0x44, 0x54, 0xd1, 0xf7, 0x82, 0x8d, 0xd8, 0xaf, 0xba, 0x1a, 0x79, 0x03, 0x64, 0xb4, 0xff, 0x28, 0xd8, 0x4e, 0x02, 0x85, 0x97, 0x35, 0x3e, 0xbb, 0xef, 0x24, 0x83, 0x7b, 0xc3, 0x19, 0xe1, 0xae, 0x8f, 0x2b, 0x0b, 0x6a, 0x85, 0x1b, 0x48, 0x9c, 0x3e, 0x17, 0x0e, 0xef, 0x53, 0xe0, 0x65, 0xf7, 0x03, 0x26, 0x53, 0xcd, 0x6b, 0x46, 0xd8, 0xe5, 0x7e, 0x4e, 0x11, 0x1b, 0x78, 0x9b, 0xa9, 0x50, 0xc4, 0x23, 0x0a, 0xba, 0x35, 0xe5, 0x69, 0xe0, 0x66, 0x15, 0x40, 0x34, 0x07, 0xbc, 0xe0, 0x36, 0x9a, 0xaa, 0xb4, 0xea, 0xfa, 0xef, 0x0c, 0xae, 0x10, 0x9a, 0xc4, 0xcb, 0x83, 0x8f, 0xb6, 0xc1, };
11016 static const u8 ed25519_479_test_vectors_expected_sig[] = {
11017 	0xc7, 0x71, 0xba, 0x0a, 0x3d, 0x3c, 0x4a, 0x7b, 0x06, 0x4b, 0xd5, 0x1a, 0xd0, 0x5c, 0x9f, 0xf2, 0x7f, 0xd3, 0x26, 0x61, 0x0f, 0xbf, 0xa0, 0x91, 0x83, 0x03, 0x9e, 0x5e, 0xdf, 0x35, 0x47, 0x2d, 0xde, 0xd8, 0xfc, 0x22, 0x75, 0xbb, 0xcc, 0x5d, 0xf1, 0xbf, 0x12, 0x98, 0x60, 0xc0, 0x1a, 0x2c, 0x13, 0x11, 0xda, 0x60, 0x2f, 0xba, 0xff, 0xc8, 0xb7, 0x9c, 0x24, 0x9c, 0x9c, 0xc9, 0x55, 0x02, };
11018 static const ec_test_case ed25519_479_test_case = {
11019 	.name = "EDDSA25519-SHA512/wei25519 479",
11020 	.ec_str_p = &wei25519_str_params,
11021 	.priv_key = ed25519_479_test_vectors_priv_key,
11022 	.priv_key_len = sizeof(ed25519_479_test_vectors_priv_key),
11023 	.nn_random = NULL,
11024 	.hash_type = SHA512,
11025 	.msg = (const char *)ed25519_479_test_vectors_message,
11026 	.msglen = sizeof(ed25519_479_test_vectors_message),
11027 	.sig_type = EDDSA25519,
11028 	.exp_sig = ed25519_479_test_vectors_expected_sig,
11029 	.exp_siglen = sizeof(ed25519_479_test_vectors_expected_sig),
11030 	.adata = NULL,
11031 	.adata_len = 0
11032 };
11033 
11034 /************************************************/
11035 static const u8 ed25519_480_test_vectors_priv_key[] = {
11036 	0xde, 0x16, 0x34, 0xf3, 0x46, 0x0e, 0x02, 0x89, 0x8d, 0xb5, 0x32, 0x98, 0xd6, 0xd3, 0x82, 0x1c, 0x60, 0x85, 0x3a, 0xde, 0xe2, 0xd7, 0xf3, 0xe8, 0xed, 0xd8, 0xb0, 0x23, 0x9a, 0x48, 0xcf, 0xaf, };
11037 static const u8 ed25519_480_test_vectors_message[] = {
11038 	0xd1, 0x0c, 0x3e, 0x4d, 0xe7, 0xfa, 0x29, 0x89, 0xdb, 0xa8, 0x75, 0x37, 0xe0, 0x05, 0x93, 0xd0, 0xee, 0xd4, 0xd7, 0x5e, 0xe6, 0x58, 0x46, 0xda, 0xb1, 0x49, 0x8b, 0x47, 0x49, 0xd6, 0x4f, 0x40, 0xe3, 0x4b, 0x59, 0x11, 0xc5, 0xce, 0x3b, 0x53, 0xa7, 0xe3, 0x7d, 0x2d, 0x02, 0xbb, 0x0d, 0xae, 0x38, 0xed, 0x96, 0x2a, 0x4e, 0xdc, 0x86, 0xc0, 0x02, 0x07, 0xbe, 0xe9, 0xa8, 0xe4, 0x56, 0xec, 0xca, 0xe8, 0xbd, 0xf4, 0xd8, 0x7a, 0x76, 0x74, 0x60, 0x14, 0x20, 0x1a, 0xf6, 0xca, 0xff, 0xe1, 0x05, 0x66, 0xf0, 0x8d, 0x10, 0xda, 0xaf, 0x07, 0x71, 0x60, 0xf0, 0x11, 0xfe, 0xac, 0xa2, 0x5b, 0x9c, 0x1f, 0x6e, 0xca, 0x9f, 0xc5, 0x33, 0x14, 0xa8, 0x05, 0x47, 0x95, 0x17, 0x54, 0x35, 0x55, 0x25, 0x25, 0x7d, 0x09, 0xa7, 0xfd, 0xad, 0x5b, 0xc3, 0x21, 0xb7, 0x2a, 0xa2, 0x8d, 0x1e, 0x02, 0xd8, 0x69, 0x6d, 0x4f, 0x9e, 0xb0, 0xad, 0x3b, 0x21, 0x96, 0xf8, 0xbc, 0xfa, 0xeb, 0x1d, 0x61, 0x48, 0x28, 0x7a, 0x3f, 0xae, 0xfe, 0xf9, 0x1a, 0x7a, 0x3e, 0x06, 0x09, 0xc2, 0x8c, 0xe5, 0x9d, 0x0c, 0xa1, 0x4d, 0x0b, 0x30, 0x50, 0xdd, 0x4f, 0x09, 0x6b, 0x7b, 0xc2, 0x51, 0x39, 0x88, 0xba, 0x21, 0x21, 0x28, 0xd5, 0x02, 0x6d, 0xaa, 0xa7, 0x18, 0x88, 0x46, 0xdb, 0x21, 0xc5, 0xc1, 0xd1, 0x79, 0xab, 0x94, 0x87, 0xc1, 0xa5, 0xbd, 0x34, 0x65, 0x88, 0x12, 0x7c, 0x20, 0x39, 0x8d, 0x36, 0x2d, 0x4c, 0x75, 0x9c, 0xfa, 0xb2, 0xa6, 0x77, 0x75, 0x0b, 0x9e, 0x45, 0x67, 0x6a, 0x1e, 0x7e, 0x09, 0x2e, 0xf0, 0x2e, 0xdb, 0xf2, 0x78, 0xfb, 0x19, 0xa5, 0x8e, 0x9b, 0xf6, 0xc9, 0xe9, 0x96, 0xe2, 0x4e, 0xda, 0xd7, 0x3f, 0x3c, 0xe3, 0x1f, 0xa0, 0x4b, 0x6d, 0x85, 0x33, 0x43, 0x6b, 0xf8, 0x0b, 0x4b, 0x2f, 0x80, 0x5e, 0xd9, 0x1e, 0x7f, 0xcd, 0xa3, 0xbc, 0x2b, 0xab, 0x3b, 0x2b, 0xb1, 0x57, 0x15, 0x8a, 0xf0, 0xea, 0x8e, 0x3f, 0x07, 0x31, 0xdf, 0xad, 0x45, 0x9d, 0x2e, 0x79, 0xb6, 0xd3, 0x71, 0x5f, 0xe7, 0xbf, 0x1e, 0xaf, 0xc5, 0x39, 0x75, 0x93, 0x20, 0x88, 0x57, 0xe5, 0x7b, 0x7f, 0xeb, 0x2f, 0x73, 0x87, 0x94, 0x3a, 0x8e, 0x09, 0x13, 0x47, 0x0c, 0x16, 0x1a, 0xef, 0x4f, 0xe2, 0x05, 0xd3, 0x63, 0x7f, 0x23, 0x17, 0x7f, 0xf2, 0x63, 0x04, 0xa4, 0xf6, 0x4e, 0xba, 0x3f, 0xe6, 0xf7, 0xf2, 0x72, 0xd2, 0x34, 0xa6, 0x72, 0x06, 0xa3, 0x88, 0xdd, 0xd0, 0x36, 0x6e, 0x89, 0x4e, 0xaa, 0x4b, 0xb0, 0x5d, 0x73, 0xa4, 0x75, 0xf1, 0xb3, 0x4c, 0xa2, 0x22, 0xbb, 0xce, 0x16, 0x85, 0xb1, 0xb5, 0x6e, 0x03, 0x4e, 0x43, 0xb3, 0xc4, 0x0e, 0x81, 0xff, 0xf7, 0x96, 0x82, 0xc1, 0x9f, 0x32, 0xaa, 0x3f, 0x2a, 0x89, 0x5c, 0x07, 0x09, 0xf9, 0xf7, 0x4a, 0x4d, 0x59, 0xd3, 0xa4, 0x90, 0x29, 0xec, 0xfc, 0xb2, 0x83, 0x08, 0x2b, 0x06, 0x7f, 0x1a, 0x0d, 0x95, 0x05, 0x75, 0x0f, 0xd8, 0x67, 0x32, 0x19, 0x99, 0x48, 0x42, 0x49, 0xef, 0xa7, 0x25, 0xf5, 0x2c, 0x94, 0xc7, 0x59, 0x62, 0x06, 0xa9, 0x11, 0xf3, 0xf5, 0x05, 0xd6, 0x3f, 0x03, 0x13, 0x25, 0x4b, 0xd4, 0x45, 0xf0, 0x5b, 0xe3, 0x99, 0x6b, 0x58, 0xfe, 0x18, 0x19, 0xaf, 0x87, 0x35, 0x2e, 0x7f, 0x0a, 0x2c, 0xa3, 0x20, 0xd9, 0xcc, 0x00, 0xa5, 0xfe, 0x77, 0xad, 0x41, 0x64, 0x0d, 0x50, 0xbe, 0x84, 0x36, };
11039 static const u8 ed25519_480_test_vectors_expected_sig[] = {
11040 	0xd2, 0x05, 0x06, 0xeb, 0x84, 0x69, 0x23, 0xa0, 0xb1, 0x6f, 0xf8, 0x2f, 0xb2, 0xc3, 0x92, 0x3b, 0x00, 0xc1, 0xb3, 0xbc, 0xc6, 0xe2, 0xf6, 0x48, 0x2f, 0xba, 0x24, 0x80, 0x75, 0x21, 0xe8, 0xe0, 0x22, 0x3f, 0x69, 0x2e, 0x62, 0xea, 0xc9, 0x93, 0xf4, 0x98, 0xf6, 0x71, 0x02, 0xa0, 0x4f, 0xd1, 0xac, 0xf9, 0xc7, 0xe3, 0x88, 0x8d, 0x85, 0x7c, 0x9a, 0x08, 0x0b, 0x8a, 0xf6, 0x36, 0x10, 0x06, };
11041 static const ec_test_case ed25519_480_test_case = {
11042 	.name = "EDDSA25519-SHA512/wei25519 480",
11043 	.ec_str_p = &wei25519_str_params,
11044 	.priv_key = ed25519_480_test_vectors_priv_key,
11045 	.priv_key_len = sizeof(ed25519_480_test_vectors_priv_key),
11046 	.nn_random = NULL,
11047 	.hash_type = SHA512,
11048 	.msg = (const char *)ed25519_480_test_vectors_message,
11049 	.msglen = sizeof(ed25519_480_test_vectors_message),
11050 	.sig_type = EDDSA25519,
11051 	.exp_sig = ed25519_480_test_vectors_expected_sig,
11052 	.exp_siglen = sizeof(ed25519_480_test_vectors_expected_sig),
11053 	.adata = NULL,
11054 	.adata_len = 0
11055 };
11056 
11057 /************************************************/
11058 static const u8 ed25519_481_test_vectors_priv_key[] = {
11059 	0xc7, 0x38, 0xef, 0x5f, 0x09, 0x35, 0x28, 0x1b, 0xa6, 0x25, 0xfa, 0x40, 0x14, 0xd4, 0xa4, 0xd0, 0xbe, 0x7e, 0x28, 0xfe, 0xd7, 0x79, 0xa9, 0xcf, 0x65, 0x8e, 0x21, 0xdb, 0xa4, 0x3c, 0xeb, 0xc1, };
11060 static const u8 ed25519_481_test_vectors_message[] = {
11061 	0x16, 0x8d, 0x0b, 0xc5, 0x59, 0x8b, 0xe0, 0x2f, 0x54, 0x43, 0xbf, 0xe7, 0xdf, 0xb8, 0x82, 0x99, 0x85, 0xca, 0x5d, 0x28, 0x2a, 0xf9, 0xcf, 0x1b, 0x14, 0x82, 0x60, 0x2f, 0x24, 0x3d, 0x48, 0x6b, 0xd8, 0x2b, 0xa0, 0x39, 0xa0, 0x75, 0x09, 0x09, 0xe9, 0xb3, 0xc7, 0xd4, 0xd5, 0xf8, 0xb8, 0xba, 0xf4, 0x57, 0x18, 0xaf, 0x03, 0x11, 0x85, 0x4f, 0x4d, 0x1c, 0x78, 0x37, 0xf3, 0x1d, 0x8e, 0xe6, 0x8d, 0x35, 0x58, 0xe7, 0xe5, 0x1e, 0x0c, 0x64, 0x6a, 0x4a, 0x63, 0x75, 0x96, 0xee, 0x90, 0x05, 0x7b, 0x01, 0xed, 0x0a, 0x17, 0xda, 0xa3, 0x95, 0x0b, 0x81, 0xab, 0x47, 0xae, 0x8b, 0x94, 0xc1, 0x7d, 0x40, 0x74, 0x69, 0x13, 0xc4, 0x6b, 0xa1, 0x47, 0x8b, 0xfc, 0xa5, 0x1b, 0x16, 0x76, 0x28, 0xfc, 0x3e, 0xe1, 0xe2, 0x2f, 0x2f, 0x19, 0xd6, 0xd8, 0xda, 0xf9, 0x3d, 0xf6, 0x54, 0x0c, 0xed, 0xb7, 0xa8, 0x59, 0xd1, 0xa2, 0xba, 0x59, 0x11, 0xba, 0x71, 0x76, 0x6e, 0x8b, 0x7f, 0xce, 0x0c, 0x0e, 0x86, 0x63, 0x61, 0x6d, 0x01, 0x80, 0x69, 0x7d, 0x78, 0xce, 0x30, 0x40, 0xd4, 0x38, 0x13, 0x19, 0x82, 0xf3, 0xf8, 0x11, 0x2a, 0xcc, 0xa2, 0x9a, 0xe5, 0x3e, 0x53, 0x9f, 0xf8, 0xc9, 0xec, 0x41, 0x06, 0xd1, 0x32, 0xf4, 0x02, 0x01, 0x85, 0x18, 0x30, 0x84, 0x85, 0xf2, 0xaa, 0x6c, 0x9e, 0x8d, 0x1e, 0x62, 0xfe, 0xd6, 0x0c, 0xb2, 0x49, 0x45, 0x7d, 0xb3, 0x3c, 0x6f, 0xd1, 0xfe, 0x07, 0x44, 0x53, 0x61, 0xf0, 0x81, 0x94, 0xa2, 0xb5, 0xa0, 0x57, 0xcb, 0x03, 0xcc, 0x75, 0x4e, 0x5c, 0x7d, 0x4a, 0x7e, 0xea, 0x53, 0xa7, 0xf7, 0xd2, 0x07, 0xca, 0xcc, 0xa5, 0xe6, 0x8c, 0xaf, 0xa9, 0x69, 0xa3, 0x52, 0x1d, 0xbb, 0x81, 0x03, 0x99, 0xa1, 0x7f, 0x32, 0x8e, 0xe7, 0x67, 0xcf, 0x55, 0x92, 0x6b, 0x2b, 0xd5, 0xf0, 0x29, 0x54, 0x9d, 0x3b, 0x46, 0x45, 0x79, 0xc4, 0x26, 0x55, 0x26, 0x53, 0x98, 0x47, 0x2e, 0x1c, 0x77, 0xcc, 0x8d, 0xd9, 0xaf, 0xf1, 0x87, 0xf7, 0xac, 0x34, 0xdd, 0x45, 0x6a, 0xce, 0x99, 0x9a, 0x73, 0x6e, 0xcc, 0xa6, 0xd4, 0x05, 0xd4, 0x92, 0x2c, 0x77, 0x9c, 0x60, 0x0c, 0x47, 0xb8, 0x4c, 0x9c, 0x1d, 0xf5, 0xe5, 0xf8, 0xed, 0x3b, 0x28, 0x11, 0xd3, 0x51, 0x33, 0x91, 0x13, 0xf8, 0x45, 0x3c, 0xca, 0x4c, 0x44, 0x11, 0x68, 0x8c, 0xb0, 0x38, 0x82, 0x58, 0xeb, 0xbd, 0x18, 0x72, 0xb8, 0x36, 0x10, 0x04, 0x22, 0x49, 0x49, 0x4e, 0xd5, 0x60, 0xd4, 0xcd, 0xa6, 0xa6, 0x84, 0x55, 0xd9, 0x57, 0xe8, 0x06, 0xdd, 0x0b, 0xdd, 0x83, 0x00, 0x4c, 0x4c, 0xa8, 0x07, 0x74, 0xb8, 0xa0, 0xa1, 0x66, 0x58, 0x66, 0xf1, 0x70, 0x85, 0x01, 0x4e, 0xad, 0xb3, 0xea, 0xe7, 0x38, 0x2f, 0xa8, 0x70, 0xde, 0xb2, 0x9d, 0xd8, 0xc9, 0x31, 0xb5, 0x30, 0x19, 0x62, 0x57, 0x40, 0xe2, 0x83, 0x92, 0xf3, 0x85, 0x75, 0xc0, 0xe2, 0xa9, 0xe5, 0x04, 0xfc, 0x35, 0xbd, 0x95, 0xdf, 0x56, 0x43, 0x9a, 0x89, 0x82, 0x30, 0xa2, 0x39, 0x8c, 0xd2, 0x22, 0x5c, 0x76, 0x6e, 0xf3, 0x6f, 0x12, 0xae, 0x7e, 0x49, 0xb3, 0x0a, 0x9c, 0x0a, 0xad, 0x46, 0x9d, 0x58, 0x95, 0xbb, 0xf7, 0x21, 0xcc, 0x0f, 0xf5, 0x1d, 0x84, 0x0c, 0x80, 0x2d, 0x4a, 0x7e, 0xef, 0xba, 0x84, 0xfe, 0x52, 0x05, 0xa2, 0xc2, 0xf1, 0x40, 0x11, 0x92, 0x2d, 0xde, 0x56, 0x14, 0x56, 0xf7, 0x9e, 0x61, 0x61, };
11062 static const u8 ed25519_481_test_vectors_expected_sig[] = {
11063 	0xf4, 0x43, 0x71, 0xe6, 0xc3, 0x39, 0x16, 0x39, 0xd4, 0x57, 0xed, 0x14, 0x64, 0x81, 0x84, 0x80, 0x94, 0x11, 0xe8, 0x0a, 0x32, 0x01, 0xf8, 0x81, 0x16, 0x70, 0xe5, 0x00, 0xfc, 0xad, 0x92, 0xf3, 0x00, 0xaa, 0xbf, 0x7f, 0xc6, 0x8e, 0x44, 0x01, 0x91, 0xe8, 0x81, 0xd6, 0xc3, 0x47, 0x4e, 0xfd, 0x6d, 0x28, 0xf0, 0x9d, 0xc4, 0x43, 0x12, 0xfc, 0xfc, 0xb8, 0x27, 0x01, 0xba, 0x3c, 0x29, 0x0a, };
11064 static const ec_test_case ed25519_481_test_case = {
11065 	.name = "EDDSA25519-SHA512/wei25519 481",
11066 	.ec_str_p = &wei25519_str_params,
11067 	.priv_key = ed25519_481_test_vectors_priv_key,
11068 	.priv_key_len = sizeof(ed25519_481_test_vectors_priv_key),
11069 	.nn_random = NULL,
11070 	.hash_type = SHA512,
11071 	.msg = (const char *)ed25519_481_test_vectors_message,
11072 	.msglen = sizeof(ed25519_481_test_vectors_message),
11073 	.sig_type = EDDSA25519,
11074 	.exp_sig = ed25519_481_test_vectors_expected_sig,
11075 	.exp_siglen = sizeof(ed25519_481_test_vectors_expected_sig),
11076 	.adata = NULL,
11077 	.adata_len = 0
11078 };
11079 
11080 /************************************************/
11081 static const u8 ed25519_482_test_vectors_priv_key[] = {
11082 	0x5f, 0xea, 0x38, 0x73, 0x9c, 0x61, 0xca, 0x83, 0xbf, 0x7b, 0x4a, 0xd1, 0x75, 0xa2, 0x11, 0x76, 0x27, 0xb9, 0x71, 0xa6, 0x34, 0xa3, 0x05, 0xa8, 0x4f, 0xa5, 0x7f, 0xec, 0xb8, 0x03, 0x56, 0x24, };
11083 static const u8 ed25519_482_test_vectors_message[] = {
11084 	0x10, 0x13, 0xc6, 0x0a, 0x73, 0x95, 0x35, 0x49, 0xe5, 0xed, 0x10, 0x5b, 0xde, 0xa1, 0x50, 0xb9, 0x1e, 0x60, 0xec, 0x39, 0x20, 0x0d, 0x43, 0x72, 0x13, 0x04, 0xbf, 0xc8, 0xec, 0x43, 0x9d, 0x39, 0x60, 0x96, 0x13, 0xc2, 0xd8, 0x78, 0x04, 0x4a, 0x9d, 0xa0, 0x1b, 0x26, 0xd8, 0x6d, 0x6d, 0x65, 0xdb, 0x93, 0xd9, 0x1a, 0x13, 0x7e, 0x9c, 0x48, 0x08, 0xa9, 0x7d, 0x4e, 0xf2, 0x86, 0xa9, 0x03, 0xf3, 0xf1, 0x38, 0x2c, 0xc6, 0xd1, 0x29, 0x42, 0x16, 0xb9, 0xfa, 0xfc, 0x01, 0x3c, 0x86, 0xb9, 0xff, 0x68, 0xb5, 0x5a, 0x50, 0xea, 0x37, 0x66, 0xe6, 0x1d, 0xc1, 0xce, 0x38, 0x34, 0x8e, 0x91, 0xd6, 0x2c, 0xe7, 0x32, 0xc1, 0x52, 0xd7, 0x66, 0xb9, 0x33, 0x5c, 0x68, 0xd6, 0xca, 0xd7, 0x7b, 0xe2, 0xb4, 0xa0, 0xcd, 0x50, 0xb9, 0xa1, 0xec, 0x63, 0x2b, 0xa5, 0x56, 0x48, 0xa6, 0xe7, 0xe1, 0x1a, 0x14, 0xc0, 0x68, 0x53, 0xc0, 0x2a, 0xec, 0x48, 0x09, 0xbd, 0x14, 0x7a, 0x5d, 0xdd, 0x9f, 0xbc, 0x3b, 0xe9, 0xf0, 0xc8, 0x15, 0x8d, 0x84, 0xab, 0x67, 0x95, 0xd7, 0x71, 0xb4, 0x2b, 0x18, 0x14, 0xa1, 0x7a, 0x3c, 0x7a, 0x6c, 0xa0, 0xf4, 0xa8, 0xf7, 0xb3, 0xa0, 0xdb, 0x1c, 0x73, 0xba, 0x13, 0xb1, 0x64, 0x00, 0xdf, 0xec, 0xbd, 0x03, 0xd2, 0x16, 0x65, 0x0e, 0x4d, 0x69, 0x70, 0x4a, 0x70, 0x72, 0x46, 0x44, 0x4d, 0x57, 0x91, 0xfa, 0x27, 0x37, 0x52, 0xf5, 0x9c, 0xb5, 0xae, 0x9f, 0xd4, 0x16, 0xa5, 0x18, 0x66, 0x13, 0xd6, 0x6a, 0xfd, 0xbd, 0x1c, 0xe6, 0x91, 0xa8, 0x7b, 0xd7, 0xd8, 0xb6, 0x71, 0x90, 0xe9, 0xac, 0x68, 0x70, 0x62, 0xa0, 0x80, 0xd2, 0xec, 0x39, 0xfe, 0x76, 0xed, 0x83, 0x35, 0x05, 0x82, 0x51, 0x87, 0x28, 0x39, 0xe8, 0x5e, 0xb6, 0x2f, 0x18, 0xec, 0xe1, 0x87, 0xca, 0xba, 0x55, 0xb5, 0xf7, 0xd5, 0xed, 0xca, 0xde, 0x01, 0xcd, 0xc5, 0x43, 0xcc, 0x67, 0x7e, 0x50, 0x23, 0x8b, 0x89, 0xc5, 0x63, 0x5a, 0xd5, 0xc8, 0xfc, 0x22, 0x0f, 0x5e, 0x0b, 0xe1, 0xbc, 0x66, 0x7d, 0x20, 0x98, 0x97, 0x53, 0xa6, 0xd6, 0x16, 0xfa, 0x69, 0xf8, 0xb1, 0x29, 0x40, 0xb8, 0xca, 0x9e, 0x2c, 0x48, 0x57, 0x71, 0x32, 0xd8, 0x69, 0x1b, 0x05, 0x37, 0x79, 0xa1, 0x52, 0xcb, 0xac, 0xff, 0x3b, 0x8b, 0x1b, 0xd7, 0xaf, 0x69, 0x2e, 0x56, 0xc7, 0x3b, 0xba, 0xe4, 0x63, 0x47, 0x76, 0xcf, 0xc2, 0x13, 0xc9, 0x9b, 0x9a, 0xe4, 0x58, 0xdf, 0x1b, 0xef, 0xc8, 0xc8, 0x77, 0x74, 0x26, 0x64, 0xb0, 0xa0, 0xbb, 0x1f, 0x69, 0x15, 0xc8, 0xda, 0xe3, 0xb3, 0xf5, 0x5d, 0xd7, 0x5a, 0xba, 0x6a, 0x3b, 0xcc, 0x41, 0x76, 0xb4, 0xe3, 0xba, 0x03, 0xd0, 0xc1, 0xc0, 0x4c, 0x3c, 0x64, 0x08, 0x77, 0x8b, 0x2b, 0x8e, 0x5a, 0x8a, 0x3e, 0xb5, 0x2e, 0xd3, 0x2a, 0x74, 0x28, 0xc0, 0x0a, 0x98, 0xa5, 0x89, 0xd8, 0xca, 0x93, 0x90, 0xa2, 0x10, 0xf4, 0xa7, 0xac, 0x00, 0x4f, 0xa1, 0xfe, 0x4c, 0x6d, 0xa6, 0x94, 0xf1, 0x22, 0x76, 0xe3, 0x20, 0xb4, 0x1b, 0x0b, 0x59, 0xf7, 0x5d, 0x26, 0x4a, 0x39, 0x6d, 0x45, 0x0b, 0x63, 0x1a, 0xb3, 0x53, 0xf1, 0x61, 0x27, 0x09, 0xe7, 0xa2, 0xe6, 0xa5, 0x0d, 0x01, 0xcb, 0x11, 0x0e, 0x53, 0x04, 0x05, 0x46, 0xdd, 0x3b, 0x1e, 0x11, 0xd2, 0x57, 0x32, 0x81, 0x3a, 0xa7, 0x6b, 0xe5, 0xe8, 0x1f, 0xcf, 0x7a, 0x57, 0x73, 0xf6, 0x81, 0x5b, 0xbd, };
11085 static const u8 ed25519_482_test_vectors_expected_sig[] = {
11086 	0xf4, 0xe2, 0x74, 0x82, 0x3f, 0x2c, 0x39, 0x6f, 0x3a, 0x32, 0x94, 0x86, 0xaa, 0x64, 0x10, 0xc5, 0xff, 0x19, 0x26, 0x6f, 0x07, 0x70, 0xfd, 0x04, 0xfb, 0x14, 0xa7, 0x60, 0x2d, 0x2b, 0x69, 0xa4, 0xa2, 0xb0, 0x09, 0x28, 0xe9, 0xe1, 0xd9, 0x23, 0x89, 0xf8, 0x03, 0x33, 0x59, 0xed, 0x6f, 0xb2, 0x14, 0x64, 0x67, 0xaa, 0x15, 0x4c, 0xba, 0x59, 0x7d, 0xec, 0x6a, 0x84, 0x17, 0x3f, 0x8d, 0x07, };
11087 static const ec_test_case ed25519_482_test_case = {
11088 	.name = "EDDSA25519-SHA512/wei25519 482",
11089 	.ec_str_p = &wei25519_str_params,
11090 	.priv_key = ed25519_482_test_vectors_priv_key,
11091 	.priv_key_len = sizeof(ed25519_482_test_vectors_priv_key),
11092 	.nn_random = NULL,
11093 	.hash_type = SHA512,
11094 	.msg = (const char *)ed25519_482_test_vectors_message,
11095 	.msglen = sizeof(ed25519_482_test_vectors_message),
11096 	.sig_type = EDDSA25519,
11097 	.exp_sig = ed25519_482_test_vectors_expected_sig,
11098 	.exp_siglen = sizeof(ed25519_482_test_vectors_expected_sig),
11099 	.adata = NULL,
11100 	.adata_len = 0
11101 };
11102 
11103 /************************************************/
11104 static const u8 ed25519_483_test_vectors_priv_key[] = {
11105 	0x60, 0xf9, 0xa1, 0x4c, 0xce, 0x5d, 0x43, 0xfd, 0x9a, 0xab, 0x4e, 0xe8, 0xcc, 0x83, 0x79, 0xd5, 0x75, 0x94, 0x91, 0x52, 0x69, 0x3b, 0xf2, 0x9a, 0x67, 0x90, 0xb0, 0x35, 0xe4, 0x2a, 0x44, 0xde, };
11106 static const u8 ed25519_483_test_vectors_message[] = {
11107 	0xdd, 0x7f, 0x44, 0xf9, 0xeb, 0x72, 0x8a, 0xb4, 0x8d, 0xe5, 0x4e, 0xcd, 0xe6, 0xb6, 0x18, 0x4b, 0xd5, 0xdd, 0xd8, 0x70, 0x75, 0x45, 0xa0, 0x12, 0x9f, 0x2e, 0x90, 0x59, 0x05, 0xb5, 0x5d, 0x3e, 0x7f, 0xd5, 0x7e, 0x28, 0x48, 0x5d, 0x25, 0x81, 0x48, 0xf6, 0x60, 0x5e, 0x23, 0x77, 0xd5, 0xb2, 0x67, 0xd2, 0xea, 0xf4, 0xcd, 0x4b, 0x46, 0xe4, 0x54, 0x96, 0x22, 0x19, 0x86, 0x82, 0x32, 0xb6, 0xf4, 0x1f, 0x88, 0xa7, 0x97, 0xf9, 0xcd, 0xd5, 0xc3, 0x9a, 0xda, 0x51, 0xa6, 0x41, 0x21, 0x4f, 0xb9, 0xdb, 0x2c, 0x2a, 0x9b, 0x5a, 0x5b, 0x16, 0xe3, 0x03, 0x57, 0x53, 0x18, 0xb6, 0x25, 0xcc, 0xa9, 0x70, 0xb7, 0x43, 0x48, 0x72, 0x79, 0x02, 0xa1, 0xcf, 0x26, 0x8b, 0xd1, 0x6e, 0x10, 0x71, 0x13, 0x16, 0x1c, 0x8c, 0xbc, 0x99, 0x30, 0x3c, 0x2b, 0x9f, 0x23, 0x55, 0x41, 0xa7, 0xb3, 0x1e, 0x43, 0x31, 0x20, 0xfe, 0xba, 0x14, 0xfe, 0xbe, 0x4b, 0xcb, 0x0f, 0x5b, 0x93, 0x6c, 0x7e, 0xdd, 0xdd, 0x0e, 0xcf, 0xc7, 0x2c, 0x8d, 0x38, 0xf6, 0x4c, 0xdb, 0x6c, 0xfc, 0x29, 0x10, 0xbc, 0x29, 0xa5, 0x21, 0xc5, 0x0a, 0x51, 0xab, 0xcb, 0xc2, 0xaa, 0xbf, 0x78, 0x9d, 0xe8, 0x22, 0xcb, 0x04, 0xf5, 0x72, 0x8f, 0xee, 0x15, 0x3d, 0xd5, 0x50, 0x1b, 0x2d, 0xb5, 0x9c, 0x59, 0xf5, 0x0c, 0xab, 0x17, 0xc2, 0x92, 0x16, 0xd6, 0x69, 0x51, 0x01, 0x9e, 0x14, 0x5b, 0x36, 0xfd, 0x7e, 0x84, 0x1b, 0xfb, 0xb0, 0xa3, 0x28, 0x55, 0x4b, 0x44, 0xdd, 0x7e, 0xf5, 0x14, 0x68, 0xc3, 0xd5, 0xb7, 0xd3, 0xa1, 0xf7, 0xb9, 0xde, 0xf5, 0x8d, 0x8c, 0xf9, 0xd9, 0xbc, 0xaf, 0xe9, 0x2c, 0x86, 0xcf, 0x6d, 0x61, 0x19, 0xe9, 0x8d, 0xba, 0x6f, 0x38, 0xea, 0x57, 0xe3, 0x22, 0xdd, 0xc9, 0xc2, 0x19, 0x8d, 0x4b, 0xbc, 0x3b, 0x94, 0xea, 0x13, 0x29, 0xdb, 0x0d, 0x45, 0x8e, 0x01, 0xc7, 0x08, 0x1b, 0x33, 0x92, 0x5a, 0x3e, 0x28, 0x7f, 0x59, 0x9a, 0x85, 0x8c, 0x50, 0xc3, 0xa8, 0xf1, 0x8c, 0xc2, 0xaa, 0x63, 0x4d, 0xf6, 0x3e, 0x7f, 0x10, 0xe4, 0x03, 0xad, 0xea, 0xb2, 0xf4, 0x1d, 0xb5, 0x57, 0x87, 0x90, 0xc3, 0xb4, 0xf0, 0x41, 0xa8, 0xb7, 0xa4, 0xf6, 0x9c, 0xd6, 0xe0, 0x62, 0x15, 0xdf, 0x82, 0x01, 0xae, 0x5b, 0x3e, 0x1d, 0x1d, 0x25, 0xa0, 0xa3, 0x9b, 0xfc, 0x3d, 0x04, 0x1a, 0x2f, 0x98, 0x21, 0x3e, 0xf4, 0x14, 0x12, 0x45, 0x79, 0x2a, 0x76, 0xf0, 0x6d, 0x4d, 0xe2, 0x5f, 0x64, 0x67, 0xa0, 0xe5, 0x6f, 0x2f, 0x5c, 0xf6, 0x94, 0x00, 0xd2, 0x21, 0x17, 0xde, 0x7b, 0x46, 0x14, 0x95, 0x54, 0xb7, 0x0c, 0x75, 0xb9, 0xf9, 0x94, 0x84, 0xa4, 0xf6, 0xf0, 0x35, 0xad, 0x3f, 0x10, 0xe3, 0x75, 0x3c, 0xb1, 0x4f, 0x4f, 0x39, 0x8d, 0xcf, 0x6a, 0x64, 0xd1, 0x0c, 0xf6, 0xc4, 0xfa, 0xc0, 0x7c, 0x91, 0x19, 0x3c, 0xc0, 0xf5, 0x4f, 0x0d, 0xe5, 0x8c, 0x63, 0x43, 0xe9, 0xca, 0xaa, 0x6b, 0x4f, 0x47, 0x5e, 0xf9, 0x1a, 0x59, 0xe0, 0x83, 0xf9, 0xf2, 0x11, 0xf5, 0xbc, 0x8e, 0x7e, 0x45, 0x16, 0xb4, 0x5c, 0xf0, 0x6b, 0xf5, 0x0b, 0xeb, 0x8f, 0xc4, 0xab, 0x57, 0x9d, 0x86, 0xd4, 0xa4, 0x19, 0x0e, 0xea, 0xc7, 0x48, 0xd0, 0x6e, 0x08, 0x52, 0xc4, 0xb9, 0xba, 0x8c, 0xfc, 0x50, 0xdd, 0x0a, 0x03, 0x7a, 0x7b, 0xad, 0x7f, 0xad, 0x55, 0xaf, 0x30, 0x9a, 0x5f, 0x13, 0xd4, 0xc9, 0x1e, 0xd3, 0xe0, };
11108 static const u8 ed25519_483_test_vectors_expected_sig[] = {
11109 	0x72, 0xf5, 0x4b, 0xb8, 0xbd, 0xd1, 0x7e, 0x9e, 0x42, 0x2c, 0xd3, 0x39, 0x63, 0x1d, 0xd3, 0x9f, 0x57, 0x35, 0x50, 0x15, 0xd4, 0xcb, 0xd1, 0x5a, 0xca, 0xb7, 0x54, 0x2e, 0xfd, 0x78, 0x4a, 0x32, 0x1c, 0x1f, 0x61, 0x25, 0x76, 0x4c, 0x0d, 0x15, 0x40, 0x45, 0xb3, 0x2e, 0x70, 0xdc, 0x2e, 0x03, 0xfb, 0xfe, 0x11, 0x17, 0x46, 0x8a, 0xc3, 0xe7, 0x31, 0x27, 0xb5, 0xfa, 0xc8, 0xd4, 0x21, 0x02, };
11110 static const ec_test_case ed25519_483_test_case = {
11111 	.name = "EDDSA25519-SHA512/wei25519 483",
11112 	.ec_str_p = &wei25519_str_params,
11113 	.priv_key = ed25519_483_test_vectors_priv_key,
11114 	.priv_key_len = sizeof(ed25519_483_test_vectors_priv_key),
11115 	.nn_random = NULL,
11116 	.hash_type = SHA512,
11117 	.msg = (const char *)ed25519_483_test_vectors_message,
11118 	.msglen = sizeof(ed25519_483_test_vectors_message),
11119 	.sig_type = EDDSA25519,
11120 	.exp_sig = ed25519_483_test_vectors_expected_sig,
11121 	.exp_siglen = sizeof(ed25519_483_test_vectors_expected_sig),
11122 	.adata = NULL,
11123 	.adata_len = 0
11124 };
11125 
11126 /************************************************/
11127 static const u8 ed25519_484_test_vectors_priv_key[] = {
11128 	0xa3, 0x90, 0x53, 0xc5, 0xc5, 0x8b, 0xf3, 0x1d, 0x46, 0x2b, 0x27, 0xa6, 0x20, 0xb0, 0xb3, 0x7b, 0x80, 0x52, 0xc6, 0xb1, 0xc4, 0x10, 0x2b, 0x61, 0x45, 0x66, 0x3a, 0xa1, 0x5e, 0x97, 0x87, 0x18, };
11129 static const u8 ed25519_484_test_vectors_message[] = {
11130 	0xf6, 0x55, 0x40, 0xd3, 0xab, 0xeb, 0x1e, 0xe5, 0xea, 0x98, 0x70, 0x62, 0xc1, 0xb5, 0x79, 0x51, 0x6d, 0x3c, 0x29, 0xc3, 0x9c, 0xbc, 0x6b, 0x09, 0xd6, 0x0e, 0x18, 0xfe, 0x27, 0x4c, 0x2b, 0xef, 0xe0, 0xf5, 0xfe, 0x7d, 0xbd, 0x57, 0xc2, 0xd5, 0x83, 0x52, 0x29, 0xbb, 0x75, 0x4e, 0xc4, 0x34, 0x13, 0x94, 0x76, 0x57, 0x76, 0xd6, 0xa9, 0x17, 0x8c, 0x4e, 0x6a, 0x31, 0x2c, 0xd7, 0x4b, 0xdb, 0xac, 0xa0, 0xe8, 0x82, 0x70, 0x62, 0x8c, 0xd8, 0x41, 0x00, 0xf4, 0x72, 0xb0, 0x75, 0xf9, 0x36, 0x92, 0x83, 0x01, 0x22, 0xf0, 0x0f, 0x9b, 0xd9, 0x1a, 0xc5, 0x82, 0x83, 0x6c, 0x8b, 0xfa, 0x71, 0x4a, 0xa4, 0x8e, 0x97, 0x70, 0x03, 0x55, 0x6e, 0x1b, 0x69, 0x6d, 0xf3, 0x28, 0xef, 0x58, 0x4f, 0x41, 0x3f, 0x8a, 0xb6, 0x14, 0x76, 0x06, 0x99, 0xc4, 0xd1, 0x47, 0xc3, 0xee, 0xa1, 0xda, 0x04, 0x35, 0x83, 0x5c, 0x9b, 0xf7, 0xad, 0x54, 0x60, 0x6f, 0x02, 0x13, 0xeb, 0x74, 0xa1, 0xb4, 0x76, 0x14, 0x15, 0x06, 0xae, 0x2c, 0xd1, 0x24, 0xcd, 0x51, 0xd6, 0x6e, 0x7e, 0x7e, 0x57, 0x95, 0x60, 0x57, 0x63, 0x05, 0xc5, 0xfb, 0xe8, 0x43, 0x0b, 0xe3, 0xeb, 0xeb, 0xaa, 0xcb, 0xa3, 0xf9, 0x98, 0x9d, 0xd7, 0xd1, 0x99, 0xf5, 0xa4, 0x55, 0xa5, 0x0c, 0xdb, 0x37, 0x55, 0x03, 0x7e, 0x1a, 0x70, 0x67, 0x4a, 0x4f, 0xef, 0x40, 0xb4, 0xa3, 0xaa, 0xf7, 0xbd, 0x3c, 0x95, 0xb1, 0xab, 0x41, 0xbb, 0x20, 0x62, 0x11, 0xc3, 0xa1, 0x27, 0x6d, 0x3e, 0x37, 0xd8, 0xa3, 0xa5, 0xc3, 0xd5, 0xd0, 0xf3, 0x6e, 0xf5, 0xb4, 0xf3, 0xde, 0x26, 0xb7, 0xf2, 0x0f, 0x6b, 0x29, 0x00, 0x71, 0x6d, 0xcc, 0x22, 0xab, 0x73, 0x4e, 0xba, 0xf1, 0xe8, 0xd0, 0x00, 0x20, 0xe5, 0xf0, 0x19, 0x55, 0x16, 0x53, 0xb9, 0xc2, 0xf7, 0x0a, 0x40, 0x38, 0xdf, 0xb2, 0xf1, 0x2d, 0x25, 0xd6, 0xd8, 0x4e, 0x79, 0x07, 0x3a, 0x65, 0x48, 0xfe, 0x15, 0xe4, 0x82, 0x8f, 0xe5, 0xde, 0x83, 0xac, 0x3d, 0x8d, 0x98, 0xb7, 0xda, 0xf9, 0x27, 0x10, 0x48, 0x2c, 0x37, 0xf7, 0xbd, 0x24, 0x31, 0xa8, 0x11, 0x4c, 0x61, 0x37, 0x65, 0x7b, 0xb1, 0x77, 0x88, 0x2d, 0x8a, 0x3c, 0x76, 0xba, 0xbf, 0x1c, 0x67, 0x1a, 0x70, 0x55, 0x36, 0x5f, 0xe9, 0x08, 0x66, 0x16, 0x7a, 0x2d, 0x1d, 0xbc, 0x87, 0x0b, 0xe8, 0x3b, 0x36, 0x01, 0xf0, 0x9d, 0x4a, 0x31, 0x7a, 0xe2, 0x54, 0xca, 0xc9, 0xf9, 0x8d, 0xcc, 0x7a, 0xea, 0xd9, 0x22, 0x4c, 0xd9, 0xc9, 0xd8, 0xa2, 0x00, 0xab, 0xc8, 0x0a, 0x2d, 0xd1, 0x08, 0xaf, 0x28, 0xfd, 0x46, 0xad, 0x70, 0x80, 0xae, 0x74, 0x1b, 0x50, 0x05, 0x4b, 0x9b, 0x9a, 0x92, 0x01, 0xef, 0xb7, 0x83, 0x8b, 0xc4, 0xc5, 0xc2, 0xcc, 0x3d, 0x76, 0xba, 0x0f, 0xcc, 0x49, 0xc4, 0x6e, 0x79, 0x2c, 0x26, 0x29, 0x2b, 0x7d, 0x03, 0x12, 0xaf, 0xf9, 0x55, 0xa9, 0xf8, 0xed, 0xf0, 0xc6, 0x96, 0xa7, 0x0a, 0x61, 0x4f, 0x35, 0x53, 0xad, 0x38, 0x69, 0xbf, 0xde, 0x48, 0xd2, 0x6a, 0x4d, 0x36, 0x7b, 0x6c, 0xec, 0x05, 0x7e, 0x62, 0xa4, 0xe5, 0x48, 0x55, 0x4b, 0x48, 0xb5, 0x3e, 0xcd, 0xa7, 0x90, 0xba, 0x7a, 0x0a, 0xb2, 0xe3, 0xde, 0x58, 0x7b, 0xdc, 0x22, 0xb0, 0x2f, 0x59, 0x47, 0x63, 0x4d, 0x73, 0x09, 0x9f, 0x54, 0x7d, 0xb2, 0x2e, 0xc1, 0xbb, 0xf8, 0x23, 0x43, 0xf9, 0xa2, 0xca, 0x38, 0xbc, 0xe4, 0xeb, 0x59, 0xbe, };
11131 static const u8 ed25519_484_test_vectors_expected_sig[] = {
11132 	0xf7, 0x38, 0x3e, 0x96, 0x6c, 0xb2, 0x30, 0x9d, 0xee, 0xdf, 0x86, 0x01, 0x00, 0x18, 0x3a, 0xae, 0xfa, 0xc6, 0x72, 0xca, 0x16, 0xd5, 0x41, 0x9c, 0xd6, 0x42, 0x2c, 0xa7, 0x0e, 0x16, 0xb3, 0x97, 0x6f, 0x5f, 0x16, 0x5a, 0xfc, 0x27, 0x86, 0x11, 0x7c, 0x86, 0x82, 0x34, 0xba, 0x11, 0x09, 0xed, 0xe0, 0x31, 0xf8, 0x97, 0x9b, 0x50, 0xe5, 0x67, 0x35, 0x8b, 0xd4, 0xf8, 0xbd, 0x95, 0x82, 0x02, };
11133 static const ec_test_case ed25519_484_test_case = {
11134 	.name = "EDDSA25519-SHA512/wei25519 484",
11135 	.ec_str_p = &wei25519_str_params,
11136 	.priv_key = ed25519_484_test_vectors_priv_key,
11137 	.priv_key_len = sizeof(ed25519_484_test_vectors_priv_key),
11138 	.nn_random = NULL,
11139 	.hash_type = SHA512,
11140 	.msg = (const char *)ed25519_484_test_vectors_message,
11141 	.msglen = sizeof(ed25519_484_test_vectors_message),
11142 	.sig_type = EDDSA25519,
11143 	.exp_sig = ed25519_484_test_vectors_expected_sig,
11144 	.exp_siglen = sizeof(ed25519_484_test_vectors_expected_sig),
11145 	.adata = NULL,
11146 	.adata_len = 0
11147 };
11148 
11149 /************************************************/
11150 static const u8 ed25519_485_test_vectors_priv_key[] = {
11151 	0xe0, 0xc2, 0x9d, 0xf4, 0xde, 0x45, 0xc4, 0x75, 0x39, 0xe0, 0x89, 0x6b, 0x3a, 0x59, 0xbc, 0x3d, 0xe6, 0xb8, 0x02, 0xfd, 0x14, 0xdb, 0xdc, 0x9f, 0x25, 0xe7, 0x17, 0xac, 0x82, 0xc3, 0x28, 0xf3, };
11152 static const u8 ed25519_485_test_vectors_message[] = {
11153 	0x6a, 0x37, 0xcb, 0x4c, 0x74, 0x9c, 0x58, 0x35, 0x90, 0xc8, 0xd8, 0x49, 0xbc, 0xe3, 0xfa, 0x65, 0x7f, 0x10, 0x00, 0x91, 0x90, 0xca, 0xd9, 0xbe, 0x41, 0xed, 0xe1, 0x9b, 0xf2, 0xfd, 0xb3, 0xc5, 0x62, 0xa6, 0x10, 0x1f, 0x27, 0xbd, 0x37, 0xf2, 0x23, 0xca, 0xb1, 0x3c, 0xed, 0x24, 0x5a, 0x1c, 0xed, 0xf8, 0x52, 0xf5, 0x51, 0xf8, 0x57, 0xaa, 0xd9, 0x72, 0x7f, 0x62, 0xc9, 0x67, 0xc0, 0xa9, 0x21, 0xdf, 0x11, 0x6f, 0x48, 0xa8, 0x0a, 0x60, 0x40, 0xb3, 0xc7, 0x23, 0xab, 0x5c, 0xb5, 0x94, 0xc4, 0x50, 0x7a, 0x3d, 0x20, 0xcd, 0x60, 0x51, 0x4e, 0x22, 0x16, 0x4a, 0x82, 0xb7, 0x4f, 0x19, 0xdc, 0xfd, 0xd8, 0x3c, 0x57, 0xbc, 0x36, 0x52, 0x37, 0x55, 0x17, 0x41, 0x4a, 0xf5, 0xd1, 0x8e, 0x0a, 0x64, 0xcc, 0xab, 0x36, 0x69, 0x97, 0x68, 0xd0, 0x7c, 0xf4, 0x0b, 0x70, 0x63, 0xa8, 0x3e, 0x43, 0xd5, 0xf6, 0x07, 0x96, 0x4b, 0x1b, 0xf0, 0x84, 0x0a, 0x45, 0xad, 0x50, 0xab, 0xf8, 0x3d, 0xbc, 0x84, 0x9f, 0x40, 0xe5, 0xb4, 0xcf, 0xb6, 0xa3, 0x34, 0x7b, 0x29, 0xfe, 0xc5, 0x07, 0x74, 0x04, 0x6a, 0x4b, 0x50, 0x04, 0x10, 0x32, 0xaa, 0x4d, 0x56, 0x7e, 0x85, 0x64, 0xb3, 0xee, 0xd1, 0x64, 0x20, 0x40, 0x68, 0x2d, 0xd8, 0xae, 0x7d, 0x71, 0x79, 0x28, 0x6c, 0xf6, 0xe1, 0x85, 0x3d, 0xc8, 0x7d, 0x27, 0xc3, 0xe9, 0xe6, 0x0f, 0xa4, 0x7c, 0xf8, 0xcb, 0x2d, 0xa0, 0x18, 0x1d, 0x53, 0xee, 0xc4, 0x06, 0x14, 0xb0, 0x73, 0x31, 0xa4, 0xfb, 0x70, 0x28, 0x08, 0x6d, 0x0b, 0x1c, 0xe2, 0xe1, 0x11, 0x5b, 0x73, 0xa1, 0x62, 0xc5, 0x27, 0xbd, 0xd7, 0xca, 0xb5, 0x33, 0x5b, 0x86, 0x3d, 0x10, 0x8b, 0xe0, 0x47, 0xbd, 0xbc, 0xa1, 0x12, 0xcc, 0x6e, 0x77, 0x6b, 0xb4, 0x53, 0xc3, 0x17, 0x31, 0x43, 0x88, 0xbb, 0x96, 0x53, 0xef, 0xb4, 0x44, 0x4b, 0xf5, 0xcf, 0x1e, 0xc8, 0xda, 0x23, 0xb7, 0x11, 0xba, 0x71, 0x79, 0x6c, 0x0a, 0xe0, 0x2b, 0xa1, 0xdc, 0xc8, 0x38, 0x45, 0x50, 0x78, 0xc3, 0x89, 0x7f, 0x07, 0xe9, 0xe1, 0x3b, 0x76, 0xe4, 0x92, 0x74, 0xc2, 0xe2, 0x07, 0x50, 0x6b, 0x00, 0xa0, 0xb5, 0x58, 0x88, 0x3a, 0xa1, 0x22, 0xb6, 0x67, 0xdb, 0x9d, 0x67, 0x05, 0x08, 0x60, 0x6a, 0x3f, 0x54, 0x32, 0x06, 0x36, 0xcd, 0x19, 0xf9, 0x73, 0x91, 0x7f, 0xb1, 0x87, 0x5f, 0x43, 0x63, 0xe2, 0x20, 0xf1, 0xe1, 0x23, 0x98, 0xcc, 0x6a, 0xfd, 0x79, 0x09, 0x47, 0x43, 0x33, 0x84, 0x56, 0x81, 0x3a, 0x58, 0x26, 0xad, 0x3f, 0x1a, 0xba, 0x7c, 0xd7, 0xbe, 0xab, 0x1f, 0xe1, 0x83, 0x85, 0x9c, 0x0c, 0xc9, 0xef, 0x40, 0xa5, 0xea, 0xb9, 0x12, 0xca, 0xf5, 0x15, 0xa8, 0xd4, 0xc3, 0xb9, 0x3d, 0x64, 0x1b, 0x7a, 0xb3, 0xe7, 0x6b, 0x16, 0xc1, 0x29, 0x71, 0xac, 0xe8, 0x8f, 0xf3, 0x3e, 0x5a, 0x1e, 0xd9, 0xb4, 0x4e, 0x45, 0xdb, 0x8f, 0x30, 0x85, 0xdb, 0xf0, 0x70, 0xb2, 0x56, 0xb0, 0xd7, 0x51, 0x2e, 0xe1, 0x06, 0x94, 0x32, 0x60, 0x3d, 0x73, 0x09, 0x5d, 0xb8, 0x74, 0x9c, 0xa5, 0x47, 0x96, 0x3b, 0xd7, 0x1a, 0x8a, 0x68, 0x4a, 0xb8, 0x51, 0x6b, 0x14, 0x6c, 0x41, 0x87, 0x17, 0x63, 0x86, 0xaf, 0xdf, 0x6c, 0xb1, 0x36, 0x8a, 0x3d, 0xd8, 0xfc, 0xb2, 0xcf, 0xff, 0x77, 0x05, 0x6a, 0xaf, 0x78, 0x23, 0xf8, 0x00, 0xb2, 0x66, 0xac, 0xce, 0x72, 0xbf, 0x64, 0x3c, 0x6d, 0x0c, 0x28, 0xf0, 0xab, };
11154 static const u8 ed25519_485_test_vectors_expected_sig[] = {
11155 	0xbb, 0x3b, 0x8c, 0x5c, 0x27, 0x59, 0x1f, 0xd8, 0xb9, 0xc5, 0xba, 0x48, 0x9d, 0x6b, 0x6e, 0xe5, 0xb0, 0xfb, 0x4a, 0x7b, 0x0d, 0xe5, 0x1f, 0x16, 0x39, 0xaf, 0xc6, 0x73, 0xd0, 0xe5, 0xf7, 0x5e, 0x31, 0x3a, 0xa7, 0xe1, 0xd0, 0x00, 0x90, 0x81, 0xdb, 0xca, 0x74, 0x35, 0xb6, 0x87, 0xcc, 0xd1, 0x2f, 0x64, 0xf7, 0x4a, 0x38, 0x6e, 0x77, 0x2b, 0x9e, 0x24, 0x78, 0x1b, 0x92, 0x5c, 0x8c, 0x0c, };
11156 static const ec_test_case ed25519_485_test_case = {
11157 	.name = "EDDSA25519-SHA512/wei25519 485",
11158 	.ec_str_p = &wei25519_str_params,
11159 	.priv_key = ed25519_485_test_vectors_priv_key,
11160 	.priv_key_len = sizeof(ed25519_485_test_vectors_priv_key),
11161 	.nn_random = NULL,
11162 	.hash_type = SHA512,
11163 	.msg = (const char *)ed25519_485_test_vectors_message,
11164 	.msglen = sizeof(ed25519_485_test_vectors_message),
11165 	.sig_type = EDDSA25519,
11166 	.exp_sig = ed25519_485_test_vectors_expected_sig,
11167 	.exp_siglen = sizeof(ed25519_485_test_vectors_expected_sig),
11168 	.adata = NULL,
11169 	.adata_len = 0
11170 };
11171 
11172 /************************************************/
11173 static const u8 ed25519_486_test_vectors_priv_key[] = {
11174 	0x19, 0x8b, 0x5f, 0xd1, 0xc0, 0x38, 0x27, 0xe0, 0x99, 0x4a, 0xd5, 0xbf, 0xee, 0x9b, 0x5b, 0x7b, 0xe9, 0x96, 0x6c, 0x9c, 0x3a, 0x26, 0x7e, 0x4d, 0x74, 0x30, 0x34, 0x37, 0x67, 0x40, 0x3c, 0x67, };
11175 static const u8 ed25519_486_test_vectors_message[] = {
11176 	0x3f, 0xda, 0xa1, 0x5c, 0x46, 0xf2, 0x51, 0x43, 0xdb, 0x97, 0x20, 0x79, 0xd7, 0x01, 0x3c, 0x7f, 0x69, 0xa1, 0x36, 0xf4, 0x5f, 0x3f, 0x6b, 0xa2, 0xce, 0xd8, 0xb8, 0x28, 0x46, 0x8e, 0xb3, 0xda, 0xa6, 0xb5, 0x0b, 0x4f, 0x8d, 0x33, 0x80, 0xfe, 0xc6, 0x4a, 0x03, 0x43, 0xbe, 0x11, 0x6f, 0x6f, 0x83, 0xb6, 0xee, 0x64, 0xcc, 0x4c, 0x1b, 0x1d, 0x08, 0xd5, 0x4f, 0xd4, 0x20, 0x29, 0xe4, 0x28, 0x5c, 0xfc, 0x6c, 0x6d, 0xd5, 0xcd, 0x18, 0x1a, 0xb5, 0x33, 0xff, 0xcd, 0x41, 0x1f, 0x23, 0xa1, 0x00, 0x3d, 0xa9, 0x4e, 0xc9, 0x34, 0x0e, 0x2e, 0xc7, 0x11, 0x99, 0xd6, 0x78, 0x54, 0x0d, 0x51, 0x82, 0xe1, 0x39, 0xff, 0xcb, 0xc5, 0x05, 0xa1, 0x70, 0xb8, 0xf0, 0x7f, 0x4a, 0x7e, 0x69, 0x4c, 0xa9, 0x2f, 0x58, 0x32, 0x0c, 0x0a, 0x07, 0x85, 0x64, 0xce, 0x9d, 0xe9, 0x9b, 0x0f, 0xa8, 0xe6, 0x6b, 0x0d, 0x82, 0x2e, 0x46, 0x7a, 0x5a, 0xeb, 0x83, 0x56, 0x79, 0x96, 0xa4, 0x8b, 0x89, 0xdb, 0x25, 0xca, 0xde, 0x64, 0x57, 0x79, 0x4e, 0x54, 0x14, 0xd6, 0x7e, 0x9d, 0x4a, 0xb7, 0xcd, 0x6c, 0xc2, 0x05, 0x8b, 0xb7, 0xa5, 0x13, 0xab, 0xd7, 0x09, 0xf4, 0xca, 0xf2, 0x4b, 0xb6, 0x7c, 0xe1, 0xc0, 0x3a, 0xb6, 0x2d, 0xbd, 0xfe, 0x30, 0x9e, 0xc7, 0xdb, 0x0f, 0xa3, 0xea, 0x7a, 0xae, 0x82, 0x36, 0xf2, 0x59, 0xb9, 0x22, 0xd4, 0x53, 0x61, 0x15, 0xa6, 0x3b, 0xc8, 0x9a, 0xcb, 0x20, 0x51, 0xd0, 0x9e, 0x73, 0x1c, 0xbb, 0x0d, 0xf1, 0x57, 0xd9, 0xd3, 0x45, 0xbd, 0x91, 0x09, 0x97, 0x3c, 0x2b, 0x59, 0x4f, 0x14, 0x8e, 0xfc, 0x6f, 0x33, 0x77, 0xde, 0x51, 0x63, 0xb7, 0xf6, 0x98, 0x69, 0xff, 0xef, 0x85, 0x3e, 0xae, 0xfe, 0xb4, 0x02, 0xe2, 0x35, 0x29, 0x59, 0x4f, 0xbd, 0x65, 0xca, 0x05, 0xfe, 0x40, 0x62, 0xc5, 0x29, 0xd8, 0xe3, 0x21, 0xab, 0xc0, 0x52, 0x00, 0xca, 0xc1, 0xe8, 0x39, 0xe8, 0x7b, 0x1f, 0xd3, 0xfd, 0xf0, 0x21, 0xd6, 0x8c, 0xbb, 0x3a, 0x41, 0x42, 0xb6, 0x9c, 0xc3, 0xaf, 0x6f, 0x63, 0x2e, 0xdd, 0x65, 0xb8, 0x3f, 0x5a, 0xa4, 0xcb, 0x17, 0xda, 0x5b, 0x6b, 0xa3, 0xfc, 0x03, 0xed, 0xb1, 0x7c, 0x2a, 0x3c, 0xb5, 0xb0, 0x48, 0x36, 0xe7, 0x66, 0x0e, 0x63, 0xc8, 0xa0, 0x48, 0x3e, 0x24, 0x39, 0x83, 0x37, 0x1d, 0xfa, 0x98, 0x39, 0xf9, 0x16, 0x4a, 0xd4, 0xda, 0x0d, 0x59, 0x53, 0x65, 0x5e, 0x3a, 0x95, 0x18, 0xe1, 0x36, 0xda, 0x74, 0x57, 0x37, 0xc7, 0x92, 0x43, 0xc3, 0x55, 0xfc, 0x12, 0x5c, 0xbd, 0xcc, 0x76, 0xae, 0xc9, 0x22, 0x16, 0x84, 0x6c, 0x45, 0x74, 0xf4, 0xf7, 0xf2, 0x98, 0xbc, 0xde, 0x54, 0xfd, 0x24, 0x44, 0xad, 0x30, 0x25, 0x95, 0x5c, 0x10, 0x03, 0x15, 0xde, 0x5a, 0x4e, 0x27, 0xc3, 0x33, 0xa0, 0x02, 0x84, 0xb2, 0xf7, 0x02, 0xfd, 0xd3, 0xde, 0x22, 0xac, 0x6c, 0x24, 0x0d, 0xbc, 0x14, 0xbf, 0x71, 0xe6, 0x2d, 0x13, 0x1b, 0x62, 0xf2, 0xdb, 0x99, 0x24, 0x73, 0xf2, 0xf9, 0x13, 0xf6, 0x0c, 0x91, 0x6e, 0xcf, 0x57, 0xdf, 0x5f, 0x3f, 0x02, 0x1f, 0xb3, 0x30, 0x83, 0x43, 0x95, 0xb7, 0x94, 0x72, 0xca, 0xff, 0x19, 0xfc, 0xfa, 0x0a, 0x27, 0x17, 0x95, 0xc7, 0x6d, 0x69, 0xb4, 0xdb, 0x3f, 0x85, 0xb8, 0xd2, 0xe5, 0xc3, 0x44, 0x19, 0x65, 0x48, 0x4d, 0xcc, 0x39, 0xab, 0xa5, 0x9b, 0x70, 0x12, 0x74, 0xf7, 0xfc, 0x42, 0x52, 0x46, 0x85, 0x60, 0x69, };
11177 static const u8 ed25519_486_test_vectors_expected_sig[] = {
11178 	0xf4, 0x54, 0xf3, 0x5b, 0x18, 0x53, 0x8f, 0x87, 0x7e, 0x5d, 0x61, 0x4a, 0x76, 0xb5, 0x27, 0x6a, 0x27, 0xfc, 0x0b, 0x43, 0x3f, 0x21, 0x5d, 0xc4, 0xe9, 0x63, 0xb3, 0xf0, 0x47, 0x69, 0x4c, 0x78, 0x0c, 0x51, 0x5c, 0x6e, 0xf6, 0xfe, 0x2d, 0xb4, 0xb0, 0x09, 0x00, 0x9b, 0xc2, 0x73, 0x3a, 0xec, 0x4f, 0xd4, 0x6e, 0x61, 0x53, 0x57, 0xcc, 0x0b, 0xcc, 0x9f, 0x1f, 0x7f, 0xc2, 0x1e, 0x3c, 0x02, };
11179 static const ec_test_case ed25519_486_test_case = {
11180 	.name = "EDDSA25519-SHA512/wei25519 486",
11181 	.ec_str_p = &wei25519_str_params,
11182 	.priv_key = ed25519_486_test_vectors_priv_key,
11183 	.priv_key_len = sizeof(ed25519_486_test_vectors_priv_key),
11184 	.nn_random = NULL,
11185 	.hash_type = SHA512,
11186 	.msg = (const char *)ed25519_486_test_vectors_message,
11187 	.msglen = sizeof(ed25519_486_test_vectors_message),
11188 	.sig_type = EDDSA25519,
11189 	.exp_sig = ed25519_486_test_vectors_expected_sig,
11190 	.exp_siglen = sizeof(ed25519_486_test_vectors_expected_sig),
11191 	.adata = NULL,
11192 	.adata_len = 0
11193 };
11194 
11195 /************************************************/
11196 static const u8 ed25519_487_test_vectors_priv_key[] = {
11197 	0x43, 0x92, 0xf7, 0xd4, 0xfb, 0xd6, 0x8f, 0xe1, 0x54, 0xe4, 0xba, 0x38, 0xad, 0x52, 0x07, 0x61, 0x2a, 0x06, 0x48, 0x55, 0x60, 0x56, 0xc3, 0x9a, 0xc1, 0x16, 0xad, 0x46, 0x8f, 0x89, 0xbd, 0x2d, };
11198 static const u8 ed25519_487_test_vectors_message[] = {
11199 	0xcf, 0x17, 0x09, 0xdc, 0x9a, 0x08, 0x67, 0xee, 0x90, 0x87, 0x21, 0xb1, 0x36, 0xcb, 0x93, 0xa8, 0x42, 0x29, 0xe8, 0x3b, 0x46, 0x20, 0x47, 0x77, 0xca, 0x81, 0x94, 0xd0, 0x8b, 0x7a, 0x3c, 0xa9, 0xc9, 0x12, 0xeb, 0x24, 0x3e, 0x5b, 0xda, 0xbf, 0xee, 0xd3, 0x52, 0x34, 0x9d, 0x20, 0xbe, 0x80, 0x1b, 0x72, 0x2a, 0xf0, 0x89, 0x22, 0x38, 0xe7, 0x2e, 0xdf, 0x19, 0x0e, 0x63, 0x61, 0xf5, 0x75, 0x72, 0x78, 0x1a, 0xd3, 0xc2, 0x59, 0x0b, 0x19, 0x73, 0x57, 0x64, 0x1c, 0x80, 0x53, 0x83, 0xba, 0xa1, 0xd4, 0x97, 0x2f, 0x76, 0xc6, 0x54, 0x48, 0x53, 0x2c, 0x11, 0x08, 0x34, 0xa0, 0xba, 0xa8, 0xf4, 0x88, 0x63, 0xe1, 0x66, 0xb7, 0x06, 0x65, 0x37, 0x08, 0xcd, 0x40, 0x57, 0xd3, 0xa4, 0xf9, 0xfc, 0xb2, 0xce, 0xb4, 0x12, 0x00, 0x01, 0x27, 0x7d, 0x38, 0xc4, 0x38, 0x47, 0xd8, 0x22, 0x82, 0x2b, 0x77, 0x7c, 0x2b, 0xb4, 0xda, 0x40, 0x15, 0xa1, 0xc2, 0x4d, 0x41, 0x6d, 0x50, 0x62, 0xa8, 0x71, 0x84, 0x91, 0xd8, 0x55, 0xaa, 0xa5, 0xdb, 0xf5, 0x57, 0x9c, 0x16, 0x4d, 0x8e, 0x52, 0x4a, 0x9f, 0x2f, 0xa3, 0xf2, 0x2e, 0xb0, 0x98, 0x61, 0xff, 0xe6, 0xad, 0x65, 0x9f, 0xe3, 0x6e, 0xb4, 0x04, 0x31, 0x22, 0x2c, 0x22, 0xd7, 0x13, 0x7a, 0x6c, 0xab, 0xca, 0x8d, 0xb7, 0x86, 0xe3, 0x9d, 0x81, 0xf6, 0x61, 0xaf, 0xde, 0x4e, 0x39, 0x58, 0x9b, 0x4d, 0xb4, 0xd3, 0xc5, 0x1c, 0xa5, 0x35, 0x90, 0xa1, 0x4e, 0x11, 0x5d, 0x0a, 0xfc, 0x3a, 0x87, 0x7b, 0x83, 0x9a, 0x96, 0x38, 0xbe, 0xce, 0x80, 0xc3, 0x2c, 0x19, 0xe5, 0x1b, 0x75, 0x32, 0x02, 0x48, 0x45, 0xf7, 0x6c, 0xfe, 0x9b, 0xfb, 0x2a, 0xc0, 0x51, 0x30, 0xf6, 0x75, 0x8b, 0xf7, 0xfe, 0x99, 0x3a, 0xa9, 0x3a, 0xa2, 0x72, 0xe4, 0xe6, 0xbd, 0x0c, 0x75, 0xc1, 0x40, 0x99, 0xd4, 0x3e, 0x65, 0x2a, 0x22, 0x3e, 0x5b, 0xcd, 0x64, 0xc3, 0x62, 0xd4, 0xb8, 0xf4, 0xb9, 0x5e, 0x01, 0x6f, 0x93, 0x50, 0xc7, 0xfa, 0x74, 0xe6, 0x53, 0x52, 0x5d, 0x08, 0x01, 0x15, 0x58, 0xb2, 0xc6, 0xe9, 0xbf, 0x4f, 0xdf, 0x9d, 0xbd, 0x5e, 0xf9, 0xb0, 0x9b, 0xbc, 0x84, 0x6a, 0xfc, 0x2b, 0xcb, 0xc8, 0x6c, 0x4c, 0xcc, 0x31, 0x5f, 0x6d, 0x1c, 0xcd, 0x48, 0x9b, 0x0c, 0xf8, 0xed, 0x0d, 0x93, 0xf2, 0xf5, 0x32, 0xa4, 0x26, 0x26, 0x5c, 0x59, 0x0b, 0xa3, 0xa5, 0x90, 0x23, 0x34, 0x7d, 0x81, 0x9d, 0x9b, 0x28, 0x1e, 0xf8, 0x53, 0x10, 0xb0, 0x53, 0x16, 0xd4, 0x6c, 0x8a, 0x8c, 0x03, 0x65, 0xd0, 0x68, 0xa8, 0x70, 0x86, 0x64, 0xea, 0x4d, 0x77, 0xac, 0x0c, 0xd1, 0x50, 0xa6, 0x5a, 0x56, 0x58, 0x6b, 0xab, 0xd3, 0x4b, 0x74, 0x36, 0x5b, 0xb8, 0xfe, 0x3e, 0x61, 0x87, 0x26, 0x22, 0x84, 0xd6, 0x44, 0x32, 0xe4, 0xc8, 0x1e, 0xa4, 0xc0, 0xe5, 0x7c, 0x1d, 0x71, 0xae, 0x98, 0x0c, 0x7f, 0x4d, 0x1d, 0x87, 0x10, 0x32, 0xe1, 0x88, 0xbb, 0xf9, 0xd1, 0x75, 0x8c, 0xdc, 0x1d, 0xff, 0x98, 0x9f, 0x2d, 0x12, 0x88, 0xfe, 0xf4, 0xe2, 0x05, 0xe9, 0x9e, 0x7c, 0xbf, 0x2c, 0xc3, 0x24, 0xb8, 0xc9, 0x30, 0x46, 0xf4, 0x76, 0xc5, 0x9d, 0x3d, 0x0a, 0x59, 0xdb, 0x6f, 0xe3, 0x73, 0x82, 0xdc, 0x79, 0xc5, 0xec, 0x16, 0x05, 0x6a, 0xb3, 0x93, 0x4a, 0x52, 0xf7, 0xd2, 0x88, 0x0d, 0x04, 0x71, 0xa3, 0x77, 0xb6, 0xa8, 0xae, 0x84, 0xd5, 0x6a, 0xc2, 0x2d, 0x1d, 0x54, 0x55, 0x1c, };
11200 static const u8 ed25519_487_test_vectors_expected_sig[] = {
11201 	0x86, 0xe7, 0xcc, 0xf0, 0x6e, 0x79, 0x36, 0x2d, 0x40, 0xcd, 0xb7, 0xfb, 0x75, 0xa9, 0x89, 0x78, 0xbb, 0xd3, 0x34, 0xa1, 0xdb, 0x75, 0x90, 0x36, 0x7d, 0x60, 0x84, 0x9b, 0xd5, 0x3e, 0x2f, 0xb1, 0xa4, 0xbd, 0xae, 0x59, 0x0d, 0x1f, 0x47, 0xb5, 0x49, 0x0d, 0x87, 0x02, 0xe7, 0xc1, 0xa8, 0x72, 0x68, 0xb8, 0xee, 0x9d, 0xb6, 0x12, 0xde, 0x7b, 0xdc, 0x2e, 0x38, 0xfa, 0x6d, 0xeb, 0x7e, 0x05, };
11202 static const ec_test_case ed25519_487_test_case = {
11203 	.name = "EDDSA25519-SHA512/wei25519 487",
11204 	.ec_str_p = &wei25519_str_params,
11205 	.priv_key = ed25519_487_test_vectors_priv_key,
11206 	.priv_key_len = sizeof(ed25519_487_test_vectors_priv_key),
11207 	.nn_random = NULL,
11208 	.hash_type = SHA512,
11209 	.msg = (const char *)ed25519_487_test_vectors_message,
11210 	.msglen = sizeof(ed25519_487_test_vectors_message),
11211 	.sig_type = EDDSA25519,
11212 	.exp_sig = ed25519_487_test_vectors_expected_sig,
11213 	.exp_siglen = sizeof(ed25519_487_test_vectors_expected_sig),
11214 	.adata = NULL,
11215 	.adata_len = 0
11216 };
11217 
11218 /************************************************/
11219 static const u8 ed25519_488_test_vectors_priv_key[] = {
11220 	0x0b, 0xea, 0x98, 0xab, 0xe7, 0xd6, 0x3f, 0x15, 0x83, 0x90, 0xee, 0x66, 0x8a, 0xa0, 0x50, 0xe8, 0x4a, 0x25, 0xd2, 0x89, 0x3e, 0x49, 0xfc, 0x83, 0xf0, 0x79, 0xf9, 0xbb, 0xa6, 0xa5, 0x5a, 0x75, };
11221 static const u8 ed25519_488_test_vectors_message[] = {
11222 	0xc1, 0x78, 0xe3, 0x8d, 0x4e, 0x83, 0xed, 0x2b, 0xe5, 0x7c, 0xe1, 0xc3, 0xab, 0x64, 0x25, 0x3a, 0x81, 0x71, 0xe6, 0x10, 0x00, 0x81, 0x81, 0xfb, 0xfc, 0x6d, 0x75, 0x22, 0x69, 0xf7, 0xf1, 0xc5, 0xa9, 0xec, 0x62, 0xcb, 0x27, 0xf1, 0x9a, 0xd9, 0x9c, 0xe1, 0xf5, 0x11, 0x6a, 0x36, 0x3d, 0x96, 0xfd, 0xc5, 0xa4, 0x2f, 0x35, 0x8b, 0x6d, 0xbe, 0x7c, 0xab, 0xdf, 0xc9, 0xf6, 0x07, 0x18, 0xe4, 0x01, 0x2c, 0x1b, 0xb1, 0xf8, 0x42, 0xc5, 0x56, 0x08, 0x11, 0xba, 0x83, 0x74, 0xa0, 0x63, 0x77, 0x47, 0xff, 0x92, 0xea, 0xc2, 0x1c, 0xa6, 0x5d, 0xde, 0xaf, 0x43, 0xe9, 0x98, 0x9b, 0x7d, 0xe2, 0xd4, 0x32, 0x52, 0x0a, 0xfe, 0xe3, 0x64, 0xec, 0xfb, 0xa4, 0xda, 0x66, 0x9a, 0xd4, 0x89, 0x3d, 0x0b, 0xf6, 0x9f, 0x9f, 0x81, 0xe7, 0xdf, 0x69, 0x65, 0x7b, 0xe2, 0x2b, 0x92, 0x06, 0x97, 0x45, 0xf2, 0x16, 0xc2, 0x42, 0xcc, 0xd4, 0x6d, 0x02, 0xd3, 0x56, 0x16, 0xe1, 0x6c, 0x75, 0x5e, 0x0e, 0x37, 0xf9, 0x61, 0xa6, 0xf3, 0x63, 0x77, 0x52, 0x53, 0x4f, 0x6d, 0xfa, 0xb8, 0x80, 0x5a, 0xb7, 0x59, 0xa0, 0x32, 0xa4, 0xe7, 0xe4, 0xc8, 0x19, 0x53, 0x32, 0x5a, 0x2f, 0x68, 0x6b, 0xb6, 0x9a, 0x02, 0x9c, 0xe4, 0xe0, 0x3b, 0xec, 0xb3, 0x60, 0x56, 0x37, 0xc5, 0xa6, 0x5b, 0x52, 0xe3, 0x31, 0xc2, 0x6c, 0x92, 0x6e, 0xd4, 0x71, 0x1a, 0x50, 0x4d, 0x37, 0x33, 0xbb, 0x53, 0xc9, 0x7b, 0x80, 0xea, 0xfe, 0x4e, 0x75, 0xdd, 0xd9, 0xf4, 0x15, 0x36, 0x28, 0x88, 0xc3, 0xd4, 0xd3, 0x7b, 0xae, 0x0e, 0x63, 0xfa, 0x11, 0xbf, 0x75, 0x56, 0x66, 0x43, 0x7d, 0x72, 0xf5, 0x8c, 0x91, 0xd7, 0xa2, 0xf8, 0xcb, 0x61, 0x9b, 0x76, 0x20, 0xa0, 0x70, 0xb2, 0x6b, 0x18, 0xb4, 0xd5, 0x01, 0x84, 0xc5, 0x81, 0x87, 0x12, 0x11, 0x0e, 0x36, 0xd3, 0xe2, 0x83, 0x0f, 0x6a, 0x85, 0x76, 0xba, 0x57, 0xf9, 0xcc, 0xcb, 0x8f, 0xff, 0x40, 0x28, 0xbf, 0x8e, 0xf9, 0xcb, 0x81, 0x48, 0x25, 0xbb, 0xca, 0x82, 0x7d, 0x64, 0x95, 0x47, 0xbf, 0x6f, 0x2b, 0xef, 0x93, 0x17, 0x04, 0xca, 0x7f, 0x6d, 0xf1, 0x5f, 0x78, 0x01, 0x55, 0xed, 0x46, 0xea, 0xa7, 0xca, 0x7d, 0x72, 0xe2, 0x24, 0x34, 0xca, 0x04, 0x83, 0xbf, 0xb2, 0xf7, 0x90, 0x2d, 0xc7, 0x87, 0xf6, 0x17, 0xeb, 0x9b, 0xd4, 0x1e, 0xd4, 0x52, 0x0a, 0xdf, 0xd4, 0x30, 0x94, 0x8c, 0x71, 0x08, 0x05, 0xa7, 0x3c, 0x1b, 0xa5, 0x49, 0x2e, 0x96, 0x48, 0x4c, 0x4b, 0xaa, 0x7d, 0xa2, 0x4c, 0x74, 0x35, 0xc4, 0x6a, 0x05, 0x2b, 0xf3, 0x51, 0x5d, 0x33, 0xe4, 0x2d, 0xce, 0xf5, 0x17, 0xca, 0xa4, 0x5f, 0x36, 0xc8, 0x79, 0x12, 0x10, 0x78, 0xc6, 0x88, 0xdd, 0x10, 0xd7, 0x66, 0x56, 0xa1, 0x19, 0x76, 0x2b, 0x6a, 0x83, 0x41, 0x36, 0xfa, 0x1f, 0x8a, 0x64, 0x32, 0x24, 0xb9, 0x22, 0x4c, 0x54, 0x3c, 0xf0, 0x47, 0x0b, 0x3f, 0x8e, 0xe0, 0x17, 0xd6, 0x20, 0xdb, 0xdc, 0xc8, 0x4d, 0x98, 0x51, 0x54, 0xe9, 0xd1, 0xae, 0x80, 0xe5, 0xf1, 0x43, 0x87, 0xb8, 0x8a, 0x0f, 0x6a, 0x5c, 0x35, 0x90, 0x5a, 0xa5, 0x7f, 0xb3, 0xab, 0xeb, 0x0e, 0xa6, 0xec, 0xcd, 0xdb, 0x00, 0x44, 0x74, 0x63, 0x3c, 0xc4, 0x83, 0xb5, 0x6b, 0x8a, 0x8e, 0x20, 0xe8, 0xf2, 0xe0, 0x9e, 0x97, 0x9a, 0xa0, 0x98, 0x93, 0x08, 0x78, 0x75, 0xc6, 0xb1, 0x17, 0xb5, 0xf1, 0x38, 0x47, 0xad, 0x8f, 0xc0, 0x56, 0x04, 0xc4, };
11223 static const u8 ed25519_488_test_vectors_expected_sig[] = {
11224 	0x7e, 0xb3, 0x13, 0x9b, 0x88, 0x0f, 0xdf, 0x66, 0x37, 0x6a, 0x20, 0x90, 0x81, 0x88, 0x40, 0x04, 0x97, 0x67, 0xc8, 0x37, 0xf3, 0xad, 0x00, 0x36, 0xb1, 0x41, 0x66, 0x70, 0x52, 0xb3, 0x36, 0x09, 0x81, 0x7c, 0xa5, 0xe2, 0x40, 0xed, 0x8c, 0xdf, 0x3c, 0xcf, 0x3a, 0xee, 0x29, 0x27, 0x45, 0x34, 0x59, 0x4d, 0xb0, 0xb4, 0xcc, 0xc5, 0xc6, 0xe5, 0xbb, 0xa3, 0x28, 0x0b, 0x87, 0x3f, 0x29, 0x01, };
11225 static const ec_test_case ed25519_488_test_case = {
11226 	.name = "EDDSA25519-SHA512/wei25519 488",
11227 	.ec_str_p = &wei25519_str_params,
11228 	.priv_key = ed25519_488_test_vectors_priv_key,
11229 	.priv_key_len = sizeof(ed25519_488_test_vectors_priv_key),
11230 	.nn_random = NULL,
11231 	.hash_type = SHA512,
11232 	.msg = (const char *)ed25519_488_test_vectors_message,
11233 	.msglen = sizeof(ed25519_488_test_vectors_message),
11234 	.sig_type = EDDSA25519,
11235 	.exp_sig = ed25519_488_test_vectors_expected_sig,
11236 	.exp_siglen = sizeof(ed25519_488_test_vectors_expected_sig),
11237 	.adata = NULL,
11238 	.adata_len = 0
11239 };
11240 
11241 /************************************************/
11242 static const u8 ed25519_489_test_vectors_priv_key[] = {
11243 	0xc2, 0x58, 0x78, 0xb0, 0xd1, 0xe0, 0x92, 0x5c, 0x8f, 0x5f, 0x04, 0xa1, 0xe5, 0x79, 0x90, 0x80, 0x96, 0x3c, 0x41, 0x3a, 0x13, 0x99, 0xc1, 0x18, 0xaf, 0xb1, 0x68, 0x7c, 0x79, 0x7f, 0x48, 0x39, };
11244 static const u8 ed25519_489_test_vectors_message[] = {
11245 	0x68, 0x56, 0xcc, 0x71, 0x44, 0xb6, 0xbd, 0xdc, 0xc4, 0xb5, 0x89, 0x54, 0xd1, 0xa2, 0xe7, 0x10, 0x1d, 0x65, 0x84, 0xb5, 0xd5, 0xe7, 0x19, 0xa0, 0xae, 0xa0, 0xfb, 0xbd, 0xf2, 0x21, 0xc2, 0xa2, 0xaa, 0xcb, 0xac, 0xdc, 0x40, 0x20, 0xc5, 0xc8, 0xce, 0x68, 0x1f, 0xf7, 0x38, 0x1a, 0xcd, 0x60, 0x7b, 0x0f, 0x52, 0x39, 0x69, 0x23, 0x35, 0x70, 0x06, 0x55, 0xbe, 0x2d, 0x94, 0xc5, 0x3d, 0x7b, 0x51, 0x48, 0xe9, 0x2a, 0x2b, 0xc1, 0x63, 0x38, 0xc2, 0xf4, 0xc1, 0xa7, 0xd1, 0xc5, 0x95, 0xaf, 0x62, 0x2c, 0x24, 0x0c, 0xe5, 0x79, 0xa5, 0xe0, 0xf5, 0xb6, 0x51, 0xbf, 0x56, 0x25, 0x18, 0xce, 0xc8, 0xaa, 0x2c, 0xe4, 0xb4, 0xaa, 0xdb, 0x1f, 0x2f, 0xda, 0x6c, 0xf6, 0x29, 0x5b, 0xc3, 0x78, 0x03, 0xb5, 0x37, 0x7d, 0xab, 0x65, 0xc9, 0xb9, 0xa2, 0x94, 0x9f, 0xdd, 0x49, 0xbf, 0x9d, 0xdc, 0x8f, 0x96, 0xd2, 0x60, 0xff, 0x95, 0x1b, 0xf8, 0xe8, 0xcc, 0xf9, 0x82, 0x7e, 0x68, 0x69, 0xc4, 0x4b, 0xfd, 0x97, 0x33, 0x58, 0xce, 0xfd, 0xb0, 0x10, 0xdb, 0x5e, 0x1f, 0xe5, 0xdb, 0xd9, 0xf5, 0xd2, 0xb2, 0xca, 0x39, 0x3c, 0x17, 0xd4, 0x46, 0xf6, 0x37, 0x05, 0x9e, 0x69, 0x2d, 0x7a, 0x91, 0xaa, 0xdc, 0xc7, 0x68, 0x9f, 0x5f, 0x9e, 0x1b, 0x30, 0x52, 0x17, 0x5d, 0x9b, 0x6b, 0x20, 0x8f, 0x90, 0x26, 0x78, 0x7f, 0xdb, 0x66, 0x78, 0x3f, 0x45, 0x37, 0x2a, 0x24, 0x94, 0x6b, 0x1b, 0xd1, 0x68, 0x7b, 0xf0, 0xcf, 0xcc, 0x81, 0x74, 0xeb, 0xe4, 0xd3, 0x2e, 0x43, 0x28, 0x4f, 0xc7, 0x8d, 0x78, 0x44, 0xde, 0x0f, 0xa2, 0x2e, 0x20, 0x65, 0xe0, 0x75, 0x28, 0xba, 0xab, 0xaf, 0x01, 0x5c, 0xb3, 0x4d, 0x62, 0x9c, 0x35, 0x96, 0xad, 0x04, 0x0d, 0xe3, 0x1c, 0x56, 0x20, 0xeb, 0x26, 0x6d, 0xef, 0xa7, 0x53, 0x3a, 0xc0, 0x40, 0x19, 0x98, 0xe5, 0x67, 0x3a, 0x75, 0x43, 0x65, 0x04, 0x7d, 0xeb, 0xfc, 0xf7, 0xe1, 0x37, 0xa2, 0x0d, 0x16, 0xcd, 0xd6, 0xa5, 0x52, 0x19, 0x82, 0xf4, 0x44, 0xcf, 0xc3, 0x42, 0x93, 0x97, 0xc6, 0x41, 0xbd, 0x7e, 0x74, 0xa7, 0x70, 0xbb, 0x11, 0xfc, 0xb2, 0x94, 0x83, 0xe3, 0x37, 0xba, 0xe5, 0x16, 0x9e, 0xe8, 0x2d, 0xa9, 0xa9, 0x1a, 0xdf, 0x3a, 0xf6, 0x7c, 0xd8, 0x14, 0xc2, 0x82, 0x5d, 0x29, 0x01, 0x8e, 0xf0, 0x35, 0xea, 0x86, 0xf8, 0xde, 0x4c, 0x75, 0x63, 0xaa, 0xf6, 0x6e, 0x0c, 0x75, 0xd1, 0x7c, 0xa6, 0x8f, 0x49, 0xf0, 0x75, 0x8e, 0xc2, 0xd9, 0xc5, 0x17, 0x9d, 0x01, 0xaa, 0xed, 0x7d, 0x45, 0x15, 0xe9, 0x1a, 0x22, 0x2b, 0x0b, 0x06, 0xfb, 0xde, 0x4f, 0x07, 0xa7, 0xd9, 0xdf, 0x2d, 0xe3, 0xbc, 0xae, 0x37, 0xca, 0x2c, 0x84, 0x60, 0xc2, 0xa6, 0xb3, 0x74, 0x9e, 0x9b, 0xda, 0x36, 0xd0, 0x8e, 0x66, 0xbc, 0xc3, 0x56, 0xb3, 0x90, 0x43, 0x4b, 0x4a, 0x18, 0xcf, 0xa4, 0x5a, 0xf5, 0x57, 0xdc, 0xa3, 0xd8, 0x57, 0xff, 0x3a, 0xd3, 0x47, 0xcf, 0xb0, 0x7e, 0x23, 0x58, 0xc2, 0xac, 0xfd, 0x5c, 0xd5, 0x3b, 0x3b, 0x0e, 0xa2, 0xa4, 0x1e, 0xe5, 0xc0, 0x80, 0x2f, 0xd4, 0x73, 0xdb, 0x5f, 0x30, 0x52, 0x63, 0x34, 0xda, 0x41, 0xeb, 0x4b, 0xc7, 0x51, 0x83, 0x83, 0x89, 0x8a, 0x0b, 0x75, 0x07, 0xad, 0x4c, 0xa2, 0x89, 0xd6, 0x6c, 0x5e, 0x2e, 0xb7, 0x5c, 0xf2, 0x55, 0xdf, 0xf3, 0x12, 0xcb, 0x1e, 0x04, 0xee, 0xbe, 0xb4, 0x7f, 0x29, 0x30, 0xb9, 0x0d, 0x5e, 0x00, 0x2e, 0xb0, };
11246 static const u8 ed25519_489_test_vectors_expected_sig[] = {
11247 	0x06, 0xf5, 0x51, 0x98, 0xb4, 0x19, 0x19, 0x14, 0xb7, 0x43, 0x06, 0xf3, 0x8e, 0x38, 0x13, 0x16, 0xea, 0xc4, 0x0b, 0x5b, 0x5a, 0xdb, 0x8a, 0x31, 0x24, 0x64, 0xf6, 0x71, 0x75, 0xec, 0xf6, 0x12, 0xe0, 0x14, 0x7b, 0x1c, 0xef, 0x46, 0xc2, 0x51, 0x87, 0x50, 0xa5, 0x60, 0x6b, 0xb0, 0x3b, 0xc6, 0x46, 0x7b, 0xb9, 0x32, 0x15, 0x14, 0xf6, 0x9d, 0xcb, 0xeb, 0xce, 0x8f, 0x69, 0x05, 0x80, 0x02, };
11248 static const ec_test_case ed25519_489_test_case = {
11249 	.name = "EDDSA25519-SHA512/wei25519 489",
11250 	.ec_str_p = &wei25519_str_params,
11251 	.priv_key = ed25519_489_test_vectors_priv_key,
11252 	.priv_key_len = sizeof(ed25519_489_test_vectors_priv_key),
11253 	.nn_random = NULL,
11254 	.hash_type = SHA512,
11255 	.msg = (const char *)ed25519_489_test_vectors_message,
11256 	.msglen = sizeof(ed25519_489_test_vectors_message),
11257 	.sig_type = EDDSA25519,
11258 	.exp_sig = ed25519_489_test_vectors_expected_sig,
11259 	.exp_siglen = sizeof(ed25519_489_test_vectors_expected_sig),
11260 	.adata = NULL,
11261 	.adata_len = 0
11262 };
11263 
11264 /************************************************/
11265 static const u8 ed25519_490_test_vectors_priv_key[] = {
11266 	0x0b, 0x2e, 0xc6, 0x27, 0x63, 0xf6, 0x87, 0x59, 0x31, 0x35, 0xda, 0x19, 0x61, 0xef, 0x29, 0xa2, 0x88, 0x08, 0x96, 0x96, 0xd9, 0x44, 0xb2, 0x65, 0xa5, 0xf9, 0x68, 0x93, 0xcd, 0x2d, 0x82, 0x25, };
11267 static const u8 ed25519_490_test_vectors_message[] = {
11268 	0xa8, 0x34, 0x34, 0xc6, 0x86, 0x93, 0xd5, 0xfc, 0xed, 0x91, 0xbd, 0xa1, 0x02, 0x13, 0xfc, 0xd5, 0x0c, 0x48, 0x92, 0x0b, 0x90, 0xce, 0xe9, 0xb7, 0x3a, 0x9c, 0x61, 0x08, 0x1a, 0x09, 0x74, 0x93, 0x3f, 0x4f, 0xdb, 0x0a, 0x67, 0xe6, 0x71, 0xf8, 0x35, 0x1b, 0x0e, 0xd5, 0xec, 0x0f, 0xe7, 0xb5, 0xfb, 0x0c, 0x87, 0x58, 0x6f, 0xe5, 0x82, 0xff, 0xb1, 0xbf, 0xa2, 0xdb, 0x5f, 0xce, 0xdd, 0x33, 0x02, 0x42, 0x82, 0x34, 0xb2, 0xbb, 0x0e, 0x72, 0x6d, 0xed, 0xf4, 0x5b, 0x13, 0xa7, 0x0c, 0xd3, 0x5a, 0xb3, 0xe2, 0x99, 0xd1, 0x3f, 0x34, 0x50, 0x35, 0x08, 0x27, 0x8c, 0x44, 0x58, 0xee, 0xa5, 0xb7, 0x35, 0x1b, 0x05, 0x83, 0x6b, 0xda, 0xd5, 0xb0, 0x5f, 0x60, 0xe4, 0x45, 0xfc, 0x65, 0x73, 0x7a, 0xe2, 0x7d, 0x2e, 0x52, 0xdf, 0x9c, 0x39, 0xe5, 0xda, 0x02, 0x86, 0x39, 0x2d, 0x08, 0xff, 0xf7, 0xec, 0xb7, 0x06, 0x68, 0x20, 0xfc, 0x90, 0xfc, 0x8a, 0x44, 0xd5, 0x61, 0x65, 0x61, 0xc5, 0x0b, 0x52, 0x71, 0x47, 0x02, 0x30, 0x2b, 0xca, 0x58, 0x74, 0xde, 0x85, 0xdb, 0xa0, 0x45, 0x04, 0x5f, 0x9f, 0x0e, 0x60, 0x4e, 0xb8, 0x6d, 0x6d, 0x7f, 0xbd, 0x77, 0x5f, 0x72, 0xea, 0x49, 0x3b, 0x2c, 0x4e, 0xf7, 0xc3, 0xbe, 0x16, 0xdb, 0x2c, 0xa7, 0xe4, 0xd8, 0xbd, 0x79, 0xeb, 0x20, 0xcf, 0xb5, 0xf0, 0xf6, 0xf0, 0x53, 0x36, 0xb7, 0x5c, 0xc8, 0x6d, 0x21, 0x9f, 0x3b, 0x8f, 0x2e, 0x91, 0xba, 0x7d, 0x52, 0xb6, 0x4f, 0xdd, 0x6a, 0x66, 0x64, 0xf0, 0x4f, 0x2f, 0xba, 0xb7, 0x58, 0xcd, 0xf9, 0x84, 0x16, 0x86, 0x91, 0xc3, 0x2f, 0x53, 0xe8, 0x61, 0x6b, 0x49, 0xf7, 0x6a, 0xb7, 0xb1, 0x92, 0xb9, 0x00, 0x90, 0x30, 0x82, 0xcc, 0x89, 0x65, 0x6a, 0x97, 0x05, 0x80, 0x4c, 0xc9, 0xb9, 0x28, 0x8a, 0x3e, 0x42, 0x17, 0x09, 0x84, 0xf8, 0xdc, 0x45, 0x4e, 0x08, 0x64, 0xb9, 0x34, 0x16, 0x72, 0x68, 0x6a, 0x17, 0x8c, 0x06, 0x00, 0x50, 0x17, 0x8a, 0x36, 0xc6, 0xd9, 0x06, 0xb2, 0xce, 0x07, 0x0d, 0x8f, 0xaa, 0xac, 0xd9, 0xa5, 0x8c, 0x79, 0x4a, 0x5e, 0xa4, 0x10, 0x8b, 0x4a, 0x48, 0x5c, 0x65, 0x81, 0x1c, 0x2d, 0xca, 0x2e, 0xe7, 0xbb, 0x10, 0xbf, 0xff, 0xf7, 0x5d, 0x45, 0x86, 0xb9, 0x90, 0xf4, 0x37, 0x63, 0xa1, 0x6f, 0xbc, 0x0b, 0x48, 0xae, 0x1f, 0xaf, 0xb0, 0x8a, 0x9a, 0x36, 0xfa, 0x43, 0x26, 0x84, 0x5d, 0xba, 0x5b, 0xa2, 0xfb, 0xd3, 0x2b, 0xbf, 0x66, 0x50, 0x5c, 0x5e, 0x86, 0x57, 0xed, 0x01, 0x07, 0xe3, 0xe1, 0x61, 0x44, 0xef, 0x31, 0xfa, 0x6a, 0xae, 0x72, 0xe7, 0x74, 0x09, 0x74, 0x83, 0xf5, 0x48, 0x0a, 0xa4, 0x55, 0x40, 0x56, 0x8f, 0xd0, 0x8c, 0xba, 0x0d, 0x57, 0x77, 0x68, 0x00, 0x4f, 0x58, 0xae, 0x9b, 0x95, 0xbe, 0x37, 0x4e, 0xd7, 0xf0, 0x29, 0x9f, 0xe7, 0x21, 0x27, 0x5e, 0x47, 0x6e, 0x0b, 0x9a, 0xb7, 0x2d, 0xc0, 0x6e, 0xa3, 0x28, 0x38, 0x4e, 0x39, 0xbf, 0x3a, 0xc3, 0x31, 0xc6, 0x25, 0x48, 0x43, 0x12, 0xcd, 0x9b, 0x06, 0xb1, 0x5a, 0x29, 0x54, 0xd3, 0x3e, 0x7a, 0xab, 0xa6, 0xbe, 0x22, 0x61, 0x88, 0x6c, 0xa8, 0x11, 0xdb, 0x96, 0xb1, 0x14, 0x3d, 0x06, 0xdd, 0x6e, 0x0f, 0x3c, 0xba, 0x7a, 0x1a, 0xe9, 0xb9, 0x4e, 0xaf, 0x67, 0x77, 0x1b, 0xb2, 0xd2, 0x4e, 0x2f, 0x94, 0xde, 0x9c, 0x47, 0x0f, 0xcd, 0xe7, 0xbf, 0xdb, 0x32, 0xf4, 0x10, 0x19, 0x8b, 0x5a, 0xa9, 0x69, 0x8e, 0x32, };
11269 static const u8 ed25519_490_test_vectors_expected_sig[] = {
11270 	0xff, 0x70, 0x1f, 0x34, 0xb3, 0x59, 0x4d, 0xe3, 0xb8, 0x00, 0x45, 0xf4, 0x29, 0xe5, 0xe3, 0x2d, 0xd8, 0x8d, 0x60, 0x51, 0xd4, 0x19, 0x5f, 0x16, 0x85, 0xbe, 0x78, 0x37, 0x66, 0xe8, 0x01, 0x19, 0x36, 0x8f, 0x56, 0xb3, 0x74, 0x97, 0x25, 0xb9, 0x13, 0xf1, 0x22, 0x3f, 0x87, 0xfb, 0x0f, 0xb2, 0x4d, 0x9d, 0xfa, 0x08, 0x41, 0xd6, 0xa0, 0xe2, 0xeb, 0x1f, 0xdd, 0xf7, 0x75, 0xc2, 0xd2, 0x05, };
11271 static const ec_test_case ed25519_490_test_case = {
11272 	.name = "EDDSA25519-SHA512/wei25519 490",
11273 	.ec_str_p = &wei25519_str_params,
11274 	.priv_key = ed25519_490_test_vectors_priv_key,
11275 	.priv_key_len = sizeof(ed25519_490_test_vectors_priv_key),
11276 	.nn_random = NULL,
11277 	.hash_type = SHA512,
11278 	.msg = (const char *)ed25519_490_test_vectors_message,
11279 	.msglen = sizeof(ed25519_490_test_vectors_message),
11280 	.sig_type = EDDSA25519,
11281 	.exp_sig = ed25519_490_test_vectors_expected_sig,
11282 	.exp_siglen = sizeof(ed25519_490_test_vectors_expected_sig),
11283 	.adata = NULL,
11284 	.adata_len = 0
11285 };
11286 
11287 /************************************************/
11288 static const u8 ed25519_491_test_vectors_priv_key[] = {
11289 	0x89, 0x60, 0xd7, 0xbe, 0xe8, 0xc6, 0xb3, 0x9c, 0xa5, 0x93, 0x4d, 0x7c, 0xdd, 0xd1, 0x6f, 0x16, 0xb3, 0x66, 0x3e, 0x6e, 0x03, 0xe8, 0x33, 0xc0, 0x57, 0xe2, 0x18, 0x1e, 0x45, 0x97, 0xcb, 0x68, };
11290 static const u8 ed25519_491_test_vectors_message[] = {
11291 	0x30, 0x8d, 0x84, 0xc7, 0xa5, 0xf7, 0x86, 0xe5, 0x63, 0xe5, 0xc1, 0xea, 0x57, 0xaa, 0xb5, 0xe5, 0x55, 0xc0, 0x09, 0x97, 0x74, 0x9d, 0x15, 0xae, 0xe3, 0x54, 0x39, 0xef, 0xa6, 0x45, 0xda, 0x2c, 0x39, 0x67, 0x70, 0x31, 0x15, 0xc6, 0xc6, 0x3e, 0xd7, 0xf9, 0x47, 0x85, 0xc5, 0x47, 0x8f, 0x38, 0x46, 0x7b, 0x86, 0xe7, 0x62, 0x6e, 0x8f, 0xff, 0xa4, 0xd5, 0x1a, 0x2d, 0xc4, 0x5e, 0x6d, 0xf2, 0xa3, 0x5c, 0xec, 0x99, 0x55, 0x5e, 0xab, 0xc9, 0xf7, 0xa9, 0x3e, 0x2e, 0x2b, 0x68, 0x94, 0x59, 0xb4, 0xe0, 0xc9, 0x2b, 0x35, 0x15, 0x62, 0xc4, 0x17, 0xb1, 0x99, 0x71, 0x13, 0x75, 0x4e, 0xa5, 0x9e, 0x4a, 0x91, 0x51, 0x07, 0x28, 0xff, 0x30, 0x71, 0xa2, 0xbb, 0xd1, 0xf4, 0x65, 0xa6, 0x87, 0xf6, 0x7d, 0xae, 0x95, 0x56, 0x15, 0x03, 0x1a, 0x8a, 0xd5, 0x51, 0xfe, 0x73, 0x8a, 0x26, 0x0b, 0xbc, 0x44, 0x6b, 0x48, 0xdc, 0xa1, 0xd9, 0x79, 0x05, 0x1a, 0xb5, 0x84, 0x08, 0x32, 0xe1, 0x9d, 0x47, 0x3b, 0x66, 0x62, 0x17, 0xa9, 0x18, 0x39, 0x80, 0xd6, 0xb2, 0x7e, 0x3d, 0x3c, 0x76, 0xd9, 0x36, 0x65, 0xba, 0x23, 0x93, 0xe6, 0xab, 0x1a, 0x42, 0xc3, 0x90, 0x4d, 0x40, 0x25, 0x93, 0x2d, 0x60, 0x1a, 0x20, 0x2a, 0x59, 0xa4, 0xc4, 0x9f, 0xdb, 0x77, 0xf0, 0xe0, 0x28, 0x68, 0x24, 0x7d, 0xe5, 0xaf, 0xdf, 0xaa, 0x1b, 0x89, 0x42, 0x08, 0xac, 0x00, 0xd7, 0x7c, 0x6b, 0xb5, 0x4c, 0x6b, 0x2a, 0x73, 0xa4, 0x76, 0x57, 0xe4, 0x4c, 0x85, 0x13, 0x79, 0x63, 0xb5, 0x75, 0x21, 0xaf, 0x20, 0x97, 0x62, 0x48, 0xeb, 0x26, 0x14, 0x82, 0x14, 0x7c, 0xdf, 0x7a, 0x14, 0x5c, 0x36, 0x43, 0xe2, 0x9e, 0x05, 0x88, 0xbf, 0xda, 0xe6, 0xa0, 0x82, 0x90, 0x48, 0x53, 0xce, 0x5a, 0x10, 0xd2, 0x49, 0x70, 0xeb, 0xdf, 0xb7, 0xf5, 0x9d, 0x5e, 0xfd, 0xd6, 0xa5, 0xe7, 0xe0, 0xd2, 0x87, 0x97, 0x1c, 0x84, 0x6a, 0xcd, 0x54, 0xd8, 0x4d, 0xd4, 0x54, 0x68, 0xa4, 0x11, 0x0b, 0xab, 0x6e, 0xf8, 0xd9, 0xa5, 0xb4, 0xb2, 0x42, 0x67, 0x88, 0x90, 0x0b, 0x7e, 0x1a, 0xdf, 0xe0, 0x62, 0x43, 0x44, 0xf9, 0x8f, 0xe5, 0x9e, 0xf8, 0xa1, 0xe6, 0xc4, 0x05, 0xb3, 0x44, 0xeb, 0x97, 0xbb, 0x20, 0x47, 0x73, 0x74, 0x4b, 0x6a, 0x2d, 0x8c, 0x6e, 0x65, 0xd1, 0x7c, 0xea, 0x07, 0xde, 0x03, 0xb7, 0xf0, 0xfe, 0x49, 0xf1, 0xa5, 0x5c, 0x33, 0xd5, 0xf1, 0x5c, 0xe5, 0x5d, 0xf7, 0xc9, 0x56, 0x1b, 0x25, 0x1c, 0x6a, 0xc8, 0x07, 0xa9, 0x25, 0x53, 0xe1, 0xce, 0x91, 0x70, 0x12, 0xdc, 0xcf, 0xd6, 0x9e, 0x7d, 0xbd, 0x03, 0x8c, 0x7e, 0xee, 0xca, 0xe9, 0x86, 0x23, 0xf1, 0x8f, 0xbb, 0x65, 0x0e, 0x22, 0x18, 0xa0, 0xbc, 0x0f, 0xff, 0x43, 0xa7, 0x5a, 0x11, 0x64, 0x48, 0xbb, 0x73, 0x62, 0xf5, 0x27, 0xee, 0x6b, 0xc8, 0xe1, 0x07, 0x61, 0xcc, 0xcf, 0x9b, 0xcf, 0xc0, 0xd0, 0x00, 0xf2, 0x12, 0x7b, 0x4c, 0xc1, 0x92, 0x11, 0xd0, 0x95, 0xa0, 0xbd, 0xaa, 0x4e, 0x4b, 0xe4, 0x51, 0x9e, 0x6c, 0x84, 0x45, 0xea, 0xb9, 0xb3, 0x14, 0x4a, 0x45, 0xca, 0xb9, 0x99, 0x61, 0x35, 0xbf, 0x7f, 0x75, 0xa7, 0x8d, 0x22, 0x27, 0x59, 0x00, 0xf4, 0xce, 0x1f, 0x0a, 0x9e, 0xac, 0x13, 0x63, 0x64, 0x10, 0x30, 0x62, 0x89, 0x3d, 0xad, 0x43, 0x90, 0x42, 0x2b, 0x77, 0xe5, 0xf5, 0xd1, 0xd9, 0x4d, 0x70, 0x29, 0xc6, 0x09, 0x7b, 0x35, 0xca, 0x64, 0xa7, 0xa4, 0x76, 0xfc, 0xc7, };
11292 static const u8 ed25519_491_test_vectors_expected_sig[] = {
11293 	0x72, 0x13, 0xdd, 0x4a, 0x79, 0xfd, 0x54, 0xde, 0xc0, 0xc5, 0x48, 0xef, 0x42, 0xe6, 0xca, 0xe0, 0x15, 0xbe, 0x77, 0x80, 0x2b, 0xf5, 0x15, 0xcd, 0x25, 0x82, 0x76, 0x8f, 0x72, 0xf5, 0x63, 0xeb, 0xb2, 0xda, 0x36, 0xaf, 0x4a, 0xae, 0xac, 0x56, 0xbb, 0xff, 0xc9, 0x93, 0x2c, 0x2e, 0x24, 0xec, 0x95, 0xda, 0xff, 0x00, 0xa5, 0xf7, 0xa0, 0xac, 0xab, 0x9c, 0x8b, 0xd3, 0xc2, 0x3b, 0xb4, 0x0c, };
11294 static const ec_test_case ed25519_491_test_case = {
11295 	.name = "EDDSA25519-SHA512/wei25519 491",
11296 	.ec_str_p = &wei25519_str_params,
11297 	.priv_key = ed25519_491_test_vectors_priv_key,
11298 	.priv_key_len = sizeof(ed25519_491_test_vectors_priv_key),
11299 	.nn_random = NULL,
11300 	.hash_type = SHA512,
11301 	.msg = (const char *)ed25519_491_test_vectors_message,
11302 	.msglen = sizeof(ed25519_491_test_vectors_message),
11303 	.sig_type = EDDSA25519,
11304 	.exp_sig = ed25519_491_test_vectors_expected_sig,
11305 	.exp_siglen = sizeof(ed25519_491_test_vectors_expected_sig),
11306 	.adata = NULL,
11307 	.adata_len = 0
11308 };
11309 
11310 /************************************************/
11311 static const u8 ed25519_492_test_vectors_priv_key[] = {
11312 	0xef, 0x6b, 0x9b, 0x51, 0xfd, 0x4f, 0x85, 0x86, 0xca, 0x62, 0x65, 0x8e, 0x04, 0x2f, 0xc0, 0x9a, 0x83, 0xb9, 0x43, 0x03, 0x35, 0x26, 0xff, 0xc3, 0x26, 0xc6, 0x5e, 0xb3, 0xa5, 0xfb, 0x59, 0x4b, };
11313 static const u8 ed25519_492_test_vectors_message[] = {
11314 	0xa8, 0xf3, 0xf1, 0x96, 0x65, 0xde, 0x23, 0x90, 0xd5, 0xcc, 0x52, 0xb0, 0x64, 0xb4, 0x85, 0x12, 0x73, 0x67, 0x74, 0x86, 0xd8, 0xf5, 0x56, 0x3b, 0xb7, 0xc9, 0x5f, 0xa9, 0x4d, 0xb3, 0x35, 0x61, 0x61, 0xee, 0x62, 0x22, 0x21, 0xf1, 0x0c, 0xbb, 0x1f, 0xa1, 0x95, 0xaa, 0xc7, 0x23, 0x1e, 0xa7, 0x16, 0xd7, 0x4b, 0x46, 0xb3, 0x7b, 0xc8, 0x5a, 0x70, 0xdb, 0xa3, 0xdf, 0xaa, 0x16, 0x75, 0x21, 0x7b, 0x35, 0x11, 0x99, 0xe7, 0x4a, 0x97, 0x10, 0x28, 0xf7, 0x29, 0xb7, 0xae, 0x2b, 0x74, 0xae, 0x8c, 0x6b, 0x3a, 0x06, 0x79, 0xc3, 0xe3, 0x29, 0x68, 0x02, 0x84, 0x4a, 0xd5, 0xbb, 0xa3, 0x43, 0xf6, 0xf9, 0xf7, 0xc4, 0x66, 0x1b, 0x4a, 0x29, 0xb4, 0x4f, 0x17, 0xe8, 0x9e, 0x11, 0x4f, 0xb2, 0x20, 0xe9, 0x84, 0xcd, 0x98, 0x0e, 0x94, 0xc3, 0xd2, 0xbf, 0x98, 0x73, 0xe0, 0x60, 0x5c, 0x92, 0x30, 0x17, 0x44, 0xa3, 0x03, 0x5e, 0xf0, 0x46, 0xba, 0xd2, 0x66, 0x6b, 0x5c, 0x63, 0xeb, 0xec, 0xf9, 0x3c, 0xc1, 0x40, 0x29, 0x19, 0x46, 0xc0, 0xfa, 0x17, 0x03, 0x40, 0xce, 0x39, 0x50, 0x92, 0xde, 0xed, 0x79, 0x84, 0x13, 0x52, 0xfb, 0xfe, 0xe0, 0x3a, 0x92, 0x7e, 0xb4, 0x58, 0xf2, 0xa6, 0x33, 0xed, 0x32, 0x71, 0x65, 0x2f, 0x5b, 0x0f, 0x99, 0x60, 0xcd, 0xf9, 0x01, 0x5d, 0x56, 0xfd, 0xab, 0xd8, 0x9e, 0xe7, 0x1e, 0x25, 0x9a, 0xf6, 0xeb, 0x51, 0x4b, 0x4c, 0x1b, 0xd4, 0xa6, 0x66, 0xf5, 0xb5, 0xa3, 0x5c, 0x90, 0xf3, 0x5b, 0x14, 0x94, 0x57, 0xaf, 0x29, 0x44, 0xdd, 0x0a, 0xa8, 0xd9, 0xb5, 0x42, 0x28, 0x3a, 0x7e, 0x54, 0x12, 0xb7, 0x75, 0xe4, 0x21, 0xd2, 0x12, 0x6f, 0x89, 0xbe, 0xbc, 0x3c, 0xa3, 0x7f, 0x73, 0x07, 0x16, 0x21, 0xf1, 0x32, 0x1e, 0xee, 0x52, 0xe9, 0x69, 0x04, 0x86, 0xa3, 0x3c, 0xd7, 0xff, 0x9c, 0x99, 0x67, 0xfb, 0x65, 0xee, 0x4e, 0x90, 0x7b, 0x6b, 0x85, 0x22, 0x11, 0x47, 0x3d, 0x21, 0xe9, 0xd9, 0x1a, 0x93, 0x36, 0x2a, 0xc7, 0x61, 0x76, 0x0e, 0x8c, 0x7b, 0xbe, 0xa4, 0x86, 0xc3, 0xd6, 0x05, 0xf9, 0xe1, 0x1b, 0x86, 0x13, 0x68, 0x19, 0xa7, 0xab, 0x3f, 0x32, 0xf1, 0x3f, 0xfc, 0xa1, 0x68, 0x17, 0xfe, 0xd1, 0x97, 0xff, 0x88, 0x0b, 0x4d, 0x6d, 0x9a, 0x80, 0x8f, 0x7f, 0x87, 0x87, 0x63, 0xa0, 0x45, 0x72, 0x8d, 0xf7, 0x2f, 0xaa, 0xa9, 0x63, 0xe4, 0xcb, 0x1c, 0x09, 0xcc, 0x2b, 0x2d, 0xa9, 0x20, 0x28, 0x0c, 0x83, 0x66, 0xb7, 0xd1, 0x8b, 0xf8, 0x97, 0x2d, 0xf1, 0x6c, 0xc2, 0x34, 0x48, 0xfb, 0xe6, 0xb2, 0xe6, 0xe1, 0x6c, 0xbb, 0xf0, 0x74, 0x51, 0x29, 0x85, 0x40, 0x53, 0x18, 0x96, 0x37, 0xce, 0x11, 0x5d, 0x23, 0x98, 0x43, 0x3c, 0x15, 0xd6, 0xf1, 0x16, 0xa2, 0x05, 0x33, 0x48, 0x24, 0xaf, 0x28, 0x2f, 0xa7, 0x58, 0x49, 0x4c, 0x47, 0x86, 0x8e, 0xa8, 0xf4, 0xdf, 0xad, 0xc7, 0x05, 0xe8, 0x61, 0xaa, 0xd2, 0xeb, 0x8e, 0xf3, 0xdb, 0xbe, 0xd2, 0xa4, 0x56, 0x9e, 0x15, 0x83, 0x4a, 0x76, 0x0c, 0xce, 0x0c, 0xbb, 0xc8, 0x4b, 0x28, 0x9e, 0x77, 0x9b, 0x98, 0x83, 0x46, 0xb9, 0x06, 0x9c, 0x74, 0x4c, 0x97, 0xab, 0x2b, 0xf4, 0x2b, 0x08, 0x6d, 0x2f, 0xb0, 0xa4, 0x11, 0xf5, 0xce, 0x99, 0xf0, 0x81, 0x9a, 0x30, 0x86, 0xb4, 0xfe, 0x9d, 0x96, 0xc7, 0xc9, 0x90, 0x8d, 0xce, 0x28, 0xdf, 0x1d, 0xdd, 0x30, 0xf3, 0x50, 0x1d, 0xda, 0xf7, 0x81, 0x10, 0x73, 0x4f, 0x9d, 0xcd, 0xfe, 0xc3, };
11315 static const u8 ed25519_492_test_vectors_expected_sig[] = {
11316 	0x71, 0xd1, 0x71, 0x07, 0x1c, 0xd0, 0xfe, 0xa1, 0xc6, 0xa9, 0xcf, 0xad, 0x1f, 0x7f, 0xd8, 0x35, 0xe8, 0x5f, 0xf9, 0x06, 0x77, 0x8b, 0xc6, 0x34, 0x5a, 0x4d, 0xec, 0x43, 0x13, 0xec, 0xc2, 0xbf, 0xf7, 0x55, 0xa7, 0x17, 0xeb, 0xd9, 0x12, 0xa5, 0xe0, 0x28, 0x40, 0xac, 0x07, 0x38, 0x42, 0xf9, 0xbf, 0xca, 0xa5, 0x89, 0x13, 0xe2, 0x60, 0xe3, 0xc7, 0x33, 0x93, 0xd3, 0x66, 0x85, 0xc7, 0x0e, };
11317 static const ec_test_case ed25519_492_test_case = {
11318 	.name = "EDDSA25519-SHA512/wei25519 492",
11319 	.ec_str_p = &wei25519_str_params,
11320 	.priv_key = ed25519_492_test_vectors_priv_key,
11321 	.priv_key_len = sizeof(ed25519_492_test_vectors_priv_key),
11322 	.nn_random = NULL,
11323 	.hash_type = SHA512,
11324 	.msg = (const char *)ed25519_492_test_vectors_message,
11325 	.msglen = sizeof(ed25519_492_test_vectors_message),
11326 	.sig_type = EDDSA25519,
11327 	.exp_sig = ed25519_492_test_vectors_expected_sig,
11328 	.exp_siglen = sizeof(ed25519_492_test_vectors_expected_sig),
11329 	.adata = NULL,
11330 	.adata_len = 0
11331 };
11332 
11333 /************************************************/
11334 static const u8 ed25519_493_test_vectors_priv_key[] = {
11335 	0xba, 0xd4, 0x7c, 0xd4, 0xbd, 0x89, 0x84, 0x90, 0x67, 0xcc, 0xe1, 0xe6, 0x3c, 0x3d, 0x91, 0xe9, 0xb7, 0x87, 0xae, 0xa8, 0x58, 0x4e, 0xdb, 0x07, 0xf3, 0x45, 0x1e, 0xf6, 0x7e, 0x7b, 0xd7, 0x9b, };
11336 static const u8 ed25519_493_test_vectors_message[] = {
11337 	0xb5, 0xa6, 0x1e, 0x19, 0xe4, 0x86, 0x3e, 0x0b, 0xb5, 0xf3, 0xfa, 0xb6, 0xc4, 0x97, 0x0d, 0x87, 0x85, 0x96, 0x89, 0x55, 0x21, 0xfa, 0x1e, 0x7f, 0x67, 0x8c, 0xaf, 0xa2, 0xde, 0x53, 0x32, 0x2f, 0xd4, 0x58, 0xa9, 0x8a, 0xa6, 0xe3, 0x58, 0x05, 0x42, 0x9f, 0x65, 0x12, 0x91, 0xb9, 0x5b, 0xd9, 0x95, 0x0e, 0x15, 0x5f, 0x3a, 0xda, 0x0b, 0x60, 0x91, 0x59, 0xa4, 0xab, 0xda, 0x59, 0x90, 0xc0, 0x4b, 0xc2, 0xe7, 0x64, 0x42, 0x2f, 0xb4, 0x9e, 0xf4, 0x2f, 0x12, 0x52, 0x9f, 0xf6, 0xf6, 0xa8, 0x20, 0x29, 0xff, 0x01, 0x85, 0x66, 0x2e, 0x65, 0x8f, 0x83, 0xc5, 0x46, 0xee, 0xd0, 0x9f, 0x06, 0xb5, 0xa6, 0x8e, 0x85, 0x7c, 0xda, 0xd0, 0xeb, 0x9e, 0xc4, 0xee, 0xcb, 0xfd, 0x88, 0xf3, 0x4b, 0xc8, 0x09, 0x90, 0xf8, 0x64, 0x4a, 0x9b, 0xfd, 0xde, 0x1d, 0x9f, 0x3a, 0x90, 0xd5, 0x57, 0xa8, 0xb8, 0x28, 0xd5, 0xce, 0x06, 0xa6, 0x4e, 0x3b, 0x23, 0x85, 0x82, 0xbb, 0x4c, 0xbe, 0xba, 0x30, 0xed, 0xc4, 0x9e, 0x81, 0x22, 0xc5, 0x5e, 0x95, 0xba, 0xdc, 0xf5, 0x02, 0xcc, 0x56, 0x78, 0x69, 0xc0, 0x9e, 0x9f, 0x46, 0xc6, 0xff, 0x3f, 0x68, 0x78, 0x98, 0x6b, 0x1d, 0xe0, 0x0b, 0x72, 0xa1, 0x85, 0x80, 0x46, 0xfc, 0xd3, 0xa6, 0xe9, 0xcd, 0xaf, 0x5b, 0x07, 0x3c, 0x56, 0xf2, 0x02, 0x50, 0x63, 0xa2, 0xd1, 0x78, 0xbd, 0x4c, 0x1e, 0x8c, 0xbc, 0x1e, 0x6e, 0x67, 0x1a, 0xa9, 0x7f, 0xb2, 0xcb, 0x4c, 0xc8, 0xa6, 0x2c, 0x20, 0xbe, 0x41, 0xc7, 0x76, 0x37, 0x2c, 0x8e, 0x7b, 0xe6, 0x3b, 0x48, 0x2e, 0x6c, 0x63, 0xfa, 0x85, 0xd7, 0xcf, 0xfb, 0xc1, 0xb2, 0x82, 0x0b, 0xae, 0x1f, 0xc1, 0x28, 0x34, 0x3a, 0x1e, 0x20, 0xfc, 0xf1, 0xbc, 0x35, 0x02, 0xee, 0xe8, 0x13, 0x58, 0xcc, 0x9a, 0x74, 0xc7, 0x2a, 0xf6, 0x35, 0x30, 0xf9, 0x6a, 0x25, 0xa6, 0x04, 0x64, 0x8f, 0xf5, 0x70, 0xdf, 0x1e, 0xb8, 0x9d, 0x1f, 0xdd, 0xba, 0xb2, 0x86, 0x79, 0xba, 0x2e, 0x9b, 0x41, 0x97, 0x7e, 0x9a, 0x9c, 0x1c, 0xae, 0xcd, 0xbf, 0xc3, 0x61, 0xa1, 0xdd, 0x05, 0x5e, 0xc5, 0x16, 0x20, 0xa9, 0xbb, 0xdb, 0xba, 0xf7, 0x18, 0xc9, 0xcc, 0x13, 0x6d, 0x20, 0x07, 0x71, 0x03, 0x99, 0x53, 0x6d, 0x13, 0x33, 0x24, 0x85, 0xec, 0x38, 0x87, 0x97, 0x85, 0xe0, 0xc9, 0xce, 0x99, 0x15, 0xa8, 0x02, 0x51, 0x37, 0x39, 0x90, 0xa5, 0x9b, 0xce, 0x44, 0x03, 0x26, 0x03, 0x1a, 0xb1, 0xb4, 0x58, 0xbf, 0xa5, 0xb8, 0xa4, 0x79, 0x3d, 0xa4, 0xee, 0x11, 0xab, 0x7a, 0xf2, 0x0d, 0xe2, 0xa1, 0x18, 0xc9, 0xae, 0x52, 0x1a, 0x41, 0x7b, 0x68, 0x20, 0x7f, 0xc8, 0x85, 0xe1, 0x09, 0xd8, 0x46, 0x3e, 0x9f, 0x02, 0x27, 0x87, 0xcc, 0x73, 0x0d, 0xb0, 0xb1, 0xfa, 0xae, 0xd2, 0x57, 0xbe, 0xd9, 0x01, 0x71, 0x08, 0x85, 0xb7, 0x4e, 0x99, 0x4f, 0x54, 0xf6, 0xf2, 0xae, 0xb6, 0x4f, 0x0f, 0x60, 0xb5, 0x9e, 0xfb, 0xf2, 0xe3, 0xbb, 0x65, 0x15, 0x42, 0x46, 0x03, 0xa1, 0x13, 0xc0, 0xb8, 0xa3, 0x1b, 0xa3, 0xc1, 0xe9, 0xa9, 0xb8, 0x11, 0x8c, 0x87, 0xec, 0x69, 0x49, 0xb7, 0x5f, 0x49, 0x62, 0x7e, 0xa7, 0xb1, 0x32, 0x88, 0x89, 0x39, 0x11, 0x04, 0xd4, 0xf4, 0xa3, 0x89, 0x2c, 0xf0, 0x0f, 0x26, 0xa7, 0x3c, 0xda, 0x2a, 0x40, 0xf9, 0xb7, 0x15, 0x7a, 0xfc, 0x40, 0x66, 0x7f, 0x4a, 0x04, 0xf6, 0x47, 0xdb, 0xf9, 0x39, 0x06, 0xb8, 0x4c, 0x9a, 0x35, 0x16, 0x4e, 0x1b, 0xc9, 0x02, };
11338 static const u8 ed25519_493_test_vectors_expected_sig[] = {
11339 	0xe5, 0x72, 0x4a, 0x1d, 0xd4, 0x63, 0xa9, 0x7d, 0x12, 0x22, 0xc5, 0x18, 0xc4, 0x92, 0x5d, 0x32, 0x22, 0x02, 0xd1, 0x0f, 0x04, 0xcd, 0x07, 0x8e, 0x77, 0x1e, 0x0f, 0xb3, 0x95, 0x1d, 0xbc, 0x14, 0x93, 0xa2, 0x34, 0x46, 0x07, 0x54, 0xc3, 0xaa, 0xe3, 0xdf, 0x93, 0x00, 0x8d, 0xbb, 0xfb, 0x31, 0x0c, 0x99, 0x59, 0x2b, 0xed, 0xe7, 0x35, 0xa4, 0xae, 0xab, 0x03, 0x23, 0xa1, 0x21, 0x0d, 0x0e, };
11340 static const ec_test_case ed25519_493_test_case = {
11341 	.name = "EDDSA25519-SHA512/wei25519 493",
11342 	.ec_str_p = &wei25519_str_params,
11343 	.priv_key = ed25519_493_test_vectors_priv_key,
11344 	.priv_key_len = sizeof(ed25519_493_test_vectors_priv_key),
11345 	.nn_random = NULL,
11346 	.hash_type = SHA512,
11347 	.msg = (const char *)ed25519_493_test_vectors_message,
11348 	.msglen = sizeof(ed25519_493_test_vectors_message),
11349 	.sig_type = EDDSA25519,
11350 	.exp_sig = ed25519_493_test_vectors_expected_sig,
11351 	.exp_siglen = sizeof(ed25519_493_test_vectors_expected_sig),
11352 	.adata = NULL,
11353 	.adata_len = 0
11354 };
11355 
11356 /************************************************/
11357 static const u8 ed25519_494_test_vectors_priv_key[] = {
11358 	0xca, 0xba, 0x8e, 0x05, 0x33, 0x11, 0x3a, 0x4b, 0xe1, 0x73, 0x40, 0x8b, 0xa8, 0x3c, 0x0d, 0xb7, 0x42, 0x60, 0x80, 0x2f, 0x91, 0x86, 0xc3, 0x91, 0x40, 0x26, 0x55, 0xac, 0xde, 0x60, 0x15, 0xcb, };
11359 static const u8 ed25519_494_test_vectors_message[] = {
11360 	0x24, 0x13, 0xa3, 0x2b, 0xca, 0x5c, 0xe6, 0xe2, 0x30, 0xe5, 0x65, 0xeb, 0x85, 0x84, 0x93, 0xd5, 0xd0, 0x4e, 0x6d, 0x2e, 0x2a, 0x7a, 0xb1, 0xf8, 0x9a, 0x3b, 0x42, 0x33, 0x11, 0x67, 0x6b, 0xfa, 0x93, 0xc6, 0x7d, 0xaa, 0xfd, 0x1c, 0xfc, 0x71, 0x09, 0xe0, 0x40, 0xba, 0xc5, 0x2c, 0xbf, 0xe0, 0x7c, 0x28, 0x28, 0x0b, 0xb6, 0xac, 0xf6, 0xe3, 0xa3, 0x10, 0x73, 0xda, 0xb2, 0x96, 0x53, 0x78, 0xdd, 0x77, 0xf6, 0x1f, 0xe9, 0x24, 0x71, 0x35, 0xc1, 0xa6, 0x31, 0xb7, 0x9a, 0xd6, 0x68, 0xc9, 0xea, 0x1c, 0xd4, 0x11, 0x2d, 0x8d, 0x3a, 0x06, 0x4c, 0xc2, 0x1d, 0xf3, 0x2a, 0xea, 0xc7, 0xdd, 0x71, 0x8b, 0x09, 0x1f, 0xb6, 0x91, 0x5b, 0x8b, 0xc0, 0x63, 0xbb, 0x58, 0x15, 0xc3, 0x76, 0xe0, 0x14, 0x76, 0x31, 0x2a, 0x2e, 0x54, 0x33, 0x41, 0x7a, 0x7a, 0x93, 0x15, 0xd6, 0x59, 0x99, 0xb0, 0x2f, 0xf4, 0x64, 0xa4, 0x74, 0xa5, 0x97, 0xe5, 0x39, 0x88, 0x77, 0x36, 0x70, 0xec, 0xa4, 0x6a, 0x6e, 0x26, 0xcf, 0x96, 0xe9, 0x48, 0x8e, 0x9e, 0x63, 0x44, 0xbc, 0x78, 0x3d, 0xdf, 0xb5, 0x35, 0xe7, 0x6b, 0xb3, 0xb9, 0xa6, 0x03, 0xff, 0x4c, 0x59, 0xc7, 0xdb, 0xe2, 0xd8, 0xb6, 0x19, 0x8d, 0x5b, 0x24, 0x49, 0x0b, 0x4e, 0xa9, 0x6c, 0x95, 0x95, 0x9f, 0xfb, 0xf3, 0xd8, 0x21, 0x8e, 0x76, 0x0d, 0xaf, 0x20, 0xe0, 0x1e, 0x2f, 0x36, 0xc8, 0x4b, 0xb0, 0x97, 0x11, 0x5a, 0xbd, 0xde, 0xe9, 0x2b, 0xed, 0x82, 0xd1, 0x6b, 0x15, 0xa9, 0xe1, 0x92, 0xe9, 0x89, 0x3a, 0xc6, 0x38, 0x46, 0x1d, 0xf5, 0x07, 0x20, 0x7b, 0x0c, 0xf5, 0x95, 0x88, 0x4d, 0x8a, 0x99, 0xfb, 0x9c, 0x70, 0x45, 0xf9, 0xbf, 0xf7, 0xb7, 0x3f, 0x00, 0xca, 0x3f, 0xd5, 0x95, 0xa5, 0xce, 0xc2, 0x92, 0xad, 0xb4, 0x58, 0xbd, 0x94, 0x63, 0xbe, 0x12, 0x04, 0xd0, 0x16, 0x78, 0xd2, 0xf4, 0x38, 0x9b, 0x87, 0x20, 0x11, 0x5f, 0xa5, 0x97, 0xc4, 0x02, 0xb4, 0xff, 0x69, 0x4b, 0x71, 0xce, 0x4f, 0x3d, 0x33, 0x0d, 0x5e, 0x2f, 0x3c, 0x3a, 0xd6, 0xd9, 0x6a, 0x9b, 0x34, 0x39, 0x23, 0x0f, 0xc5, 0x3a, 0x44, 0x79, 0x4c, 0xda, 0x59, 0x55, 0x57, 0xc4, 0x06, 0xca, 0x15, 0x89, 0xbc, 0x7b, 0xe8, 0x1e, 0x2d, 0x79, 0x63, 0x60, 0x33, 0x25, 0x3f, 0xa7, 0xbd, 0xd6, 0x00, 0xc6, 0x7f, 0xc5, 0x59, 0x36, 0xbd, 0x96, 0xce, 0x04, 0x28, 0xc3, 0xeb, 0x97, 0xba, 0xd1, 0xde, 0x0a, 0x5f, 0xbb, 0x9b, 0x67, 0x51, 0x57, 0xde, 0x5f, 0x18, 0xbc, 0x62, 0xa7, 0xc2, 0x2c, 0x94, 0x83, 0xe2, 0x80, 0x2e, 0x67, 0x9b, 0x5b, 0x8f, 0x89, 0xdb, 0x0f, 0xc3, 0x7f, 0x7c, 0x71, 0x50, 0xad, 0x5a, 0xc8, 0x72, 0x2c, 0xeb, 0x99, 0x9b, 0x24, 0x35, 0xe6, 0x99, 0x72, 0x17, 0x09, 0x23, 0x36, 0xef, 0x1c, 0x8a, 0x22, 0x92, 0xda, 0xb9, 0xa4, 0x6f, 0xf8, 0xa9, 0xe1, 0x0d, 0x33, 0x55, 0x76, 0x5c, 0xac, 0x9d, 0x65, 0x98, 0x77, 0x0f, 0x4f, 0x01, 0xea, 0x63, 0x91, 0x25, 0xfd, 0x03, 0x16, 0x09, 0xdd, 0x1a, 0x50, 0x7d, 0x96, 0x28, 0x0c, 0x7d, 0x01, 0xa3, 0xee, 0x98, 0x7e, 0x9b, 0x21, 0x0e, 0xc8, 0x74, 0x4c, 0xd4, 0x8c, 0x74, 0xf8, 0xaf, 0xee, 0x96, 0x1e, 0x8e, 0xf2, 0x21, 0xf8, 0x26, 0xa1, 0xfe, 0x6e, 0x7d, 0xf0, 0xcb, 0x15, 0xad, 0x7c, 0x7e, 0xf4, 0xa9, 0x1f, 0x9d, 0x0f, 0x4c, 0x2e, 0x1b, 0xde, 0xa6, 0x35, 0xd2, 0x75, 0xfa, 0xc8, 0xc4, 0xbc, 0x06, 0x01, 0xf4, 0x90, 0xdb, 0xdb, 0xc7, 0x34, };
11361 static const u8 ed25519_494_test_vectors_expected_sig[] = {
11362 	0xec, 0x35, 0xec, 0x32, 0xc8, 0xa4, 0x00, 0x88, 0x27, 0xe1, 0x78, 0x49, 0x2b, 0x3b, 0x8b, 0xee, 0x22, 0xa4, 0x95, 0x4f, 0xc6, 0xb2, 0x5f, 0x4f, 0x22, 0x5d, 0xd7, 0xed, 0x23, 0x69, 0x89, 0x00, 0xde, 0x81, 0x56, 0x75, 0x6a, 0x8e, 0xdc, 0x35, 0xc5, 0x1d, 0x10, 0xf8, 0x2b, 0x83, 0x0a, 0x2a, 0x65, 0x96, 0x76, 0xea, 0xc9, 0x11, 0xf9, 0x60, 0x24, 0x47, 0x66, 0xe0, 0xc3, 0xc6, 0x07, 0x05, };
11363 static const ec_test_case ed25519_494_test_case = {
11364 	.name = "EDDSA25519-SHA512/wei25519 494",
11365 	.ec_str_p = &wei25519_str_params,
11366 	.priv_key = ed25519_494_test_vectors_priv_key,
11367 	.priv_key_len = sizeof(ed25519_494_test_vectors_priv_key),
11368 	.nn_random = NULL,
11369 	.hash_type = SHA512,
11370 	.msg = (const char *)ed25519_494_test_vectors_message,
11371 	.msglen = sizeof(ed25519_494_test_vectors_message),
11372 	.sig_type = EDDSA25519,
11373 	.exp_sig = ed25519_494_test_vectors_expected_sig,
11374 	.exp_siglen = sizeof(ed25519_494_test_vectors_expected_sig),
11375 	.adata = NULL,
11376 	.adata_len = 0
11377 };
11378 
11379 /************************************************/
11380 static const u8 ed25519_495_test_vectors_priv_key[] = {
11381 	0x9b, 0xf3, 0xfb, 0xc7, 0x30, 0x8b, 0x46, 0xf6, 0x03, 0x6b, 0xad, 0xe0, 0xc3, 0xca, 0x19, 0x9f, 0xac, 0x66, 0x2b, 0x07, 0xf1, 0x03, 0xbf, 0x75, 0x18, 0x1d, 0x52, 0xba, 0x6a, 0x58, 0xbe, 0x05, };
11382 static const u8 ed25519_495_test_vectors_message[] = {
11383 	0xd6, 0x5e, 0x36, 0xa6, 0xa3, 0x81, 0x95, 0xec, 0xb9, 0x1d, 0xe3, 0xc8, 0x48, 0xb5, 0x1f, 0x63, 0x92, 0x45, 0xfa, 0x2b, 0xab, 0xa8, 0xa6, 0xf8, 0x59, 0x47, 0x15, 0x9d, 0xec, 0x0e, 0xd3, 0xfa, 0xe8, 0x0c, 0x5a, 0x0f, 0x8c, 0x66, 0xff, 0x24, 0x79, 0x3c, 0x89, 0xc0, 0xc6, 0x87, 0x54, 0x3b, 0xc6, 0x33, 0x54, 0x7a, 0x1f, 0x37, 0xf7, 0x30, 0xd9, 0x70, 0x12, 0xeb, 0xbd, 0xc7, 0xac, 0x33, 0x9c, 0x48, 0x90, 0xc0, 0x85, 0x6b, 0xbf, 0xe2, 0xba, 0x29, 0xb2, 0x5a, 0x7a, 0xa6, 0xb0, 0x89, 0xc0, 0x33, 0xfe, 0xcb, 0x76, 0xdb, 0x62, 0xdd, 0x3c, 0x00, 0xf6, 0x42, 0x1b, 0x9e, 0x76, 0xdd, 0x0e, 0xa3, 0x66, 0xeb, 0x2d, 0x4a, 0x05, 0x2e, 0xe6, 0xcc, 0x73, 0x6e, 0x38, 0x19, 0x19, 0x1d, 0x5a, 0xd7, 0xa6, 0x6d, 0x2b, 0xe0, 0x42, 0xcc, 0x65, 0x39, 0xe5, 0xf3, 0x56, 0x52, 0xb1, 0x55, 0xa7, 0x27, 0xf3, 0x88, 0x8d, 0x93, 0xf9, 0x3a, 0x91, 0x02, 0x59, 0x8f, 0x75, 0x38, 0xa9, 0xab, 0x7c, 0x77, 0x7e, 0xec, 0x79, 0x42, 0x6a, 0x60, 0x75, 0xd6, 0xf3, 0x8d, 0x64, 0xc4, 0x85, 0x52, 0x0f, 0x64, 0x13, 0xff, 0x4d, 0x35, 0x8a, 0x8a, 0x9c, 0xbd, 0xab, 0x01, 0xad, 0xf4, 0xdb, 0x02, 0xad, 0xae, 0xa2, 0x64, 0x94, 0xd1, 0xf5, 0xd6, 0x17, 0x63, 0x7f, 0x27, 0x7f, 0x8b, 0x0e, 0x6e, 0x7e, 0x61, 0xe2, 0xee, 0xcc, 0xdd, 0x33, 0x7d, 0xe2, 0xba, 0xf0, 0xca, 0x26, 0x4c, 0x14, 0xc8, 0xcb, 0x83, 0x68, 0x00, 0x0b, 0x9c, 0x71, 0x43, 0x85, 0xf4, 0x13, 0x73, 0x7d, 0x68, 0x16, 0xe2, 0x12, 0xca, 0xe2, 0xae, 0xcf, 0xff, 0xc3, 0x2f, 0xd1, 0x6d, 0x46, 0xc3, 0xec, 0xee, 0x6a, 0xb0, 0x74, 0xc0, 0xd7, 0x68, 0xbd, 0xfe, 0x99, 0xb8, 0x6c, 0xbb, 0xc8, 0xdf, 0x9c, 0x47, 0xcd, 0x58, 0x6d, 0x46, 0x58, 0x71, 0x26, 0x8d, 0x4a, 0x9d, 0x1c, 0x87, 0x72, 0x36, 0xab, 0x78, 0xf8, 0x85, 0x9c, 0x11, 0x4e, 0x25, 0x1c, 0xab, 0xc4, 0xbe, 0x0f, 0x8b, 0xc2, 0x5d, 0x14, 0x8c, 0x5f, 0x54, 0x3e, 0x29, 0x07, 0x45, 0xd1, 0x18, 0x03, 0xe4, 0x9f, 0x5b, 0x53, 0x19, 0x3f, 0xe3, 0x99, 0x69, 0xc0, 0x39, 0xb3, 0xf2, 0x49, 0xb3, 0x2f, 0x2b, 0x85, 0x98, 0xb6, 0xac, 0xf4, 0xed, 0x64, 0xd5, 0x75, 0x2b, 0xb7, 0x72, 0xff, 0x4e, 0xe0, 0x0c, 0xe0, 0xf8, 0x5e, 0xcb, 0xb4, 0xcf, 0xc4, 0xce, 0x07, 0xda, 0xf2, 0x80, 0x98, 0x68, 0xc2, 0x90, 0x3b, 0x78, 0x1e, 0x12, 0xa2, 0x74, 0x10, 0x5f, 0x06, 0x18, 0x10, 0x29, 0xe4, 0x7f, 0x2b, 0xfb, 0x21, 0xf4, 0x94, 0x80, 0xaa, 0x1e, 0x44, 0x47, 0x15, 0xc0, 0xb9, 0xff, 0x07, 0xea, 0xd8, 0x89, 0x75, 0xd9, 0x35, 0x85, 0xd2, 0xff, 0x42, 0x48, 0x32, 0xa9, 0x78, 0x3d, 0x94, 0x90, 0x6a, 0x60, 0xf8, 0x77, 0xae, 0x1c, 0x85, 0xff, 0x15, 0x31, 0x7b, 0xad, 0xca, 0x1e, 0x61, 0x31, 0x74, 0x33, 0xc7, 0xce, 0x96, 0x27, 0x9b, 0x67, 0x8e, 0xc9, 0xd1, 0x74, 0xdd, 0x08, 0x70, 0x08, 0x0b, 0x23, 0x41, 0x54, 0xf6, 0x26, 0xa5, 0x34, 0x62, 0xcf, 0xd5, 0x47, 0x84, 0x2e, 0xab, 0x87, 0x05, 0x60, 0x5b, 0x8e, 0xe8, 0x85, 0x72, 0x9e, 0xe7, 0x8d, 0x18, 0x33, 0xaa, 0x43, 0xf5, 0x5a, 0xc2, 0x27, 0x31, 0x98, 0x9f, 0xde, 0xda, 0x7d, 0xc5, 0xfa, 0x9c, 0x01, 0x98, 0x5f, 0x26, 0x61, 0xe6, 0xc7, 0x32, 0x6d, 0x34, 0x6e, 0x6d, 0xb2, 0x7e, 0x6f, 0x92, 0x1f, 0xae, 0x7c, 0x93, 0xa2, 0x17, 0x0e, 0x10, 0xdd, 0x0c, 0x46, 0x0b, 0xdc, };
11384 static const u8 ed25519_495_test_vectors_expected_sig[] = {
11385 	0x0c, 0x31, 0x36, 0xe0, 0x1f, 0x9b, 0xcd, 0x99, 0xe1, 0x0d, 0x3d, 0x12, 0x4b, 0x0c, 0xdb, 0x07, 0x72, 0xbe, 0xc1, 0x8a, 0x86, 0x4b, 0xe8, 0x1b, 0xd1, 0xda, 0xa4, 0x4d, 0x81, 0x8c, 0x3d, 0x47, 0x0d, 0xfa, 0xa8, 0xab, 0x6e, 0x9a, 0x76, 0x1c, 0xf0, 0x3f, 0x93, 0xef, 0x9c, 0xc7, 0x82, 0x91, 0x09, 0x6e, 0xd6, 0xd1, 0x0c, 0x08, 0xfa, 0x2f, 0xba, 0x3b, 0xac, 0x04, 0xdd, 0xe2, 0x0f, 0x0c, };
11386 static const ec_test_case ed25519_495_test_case = {
11387 	.name = "EDDSA25519-SHA512/wei25519 495",
11388 	.ec_str_p = &wei25519_str_params,
11389 	.priv_key = ed25519_495_test_vectors_priv_key,
11390 	.priv_key_len = sizeof(ed25519_495_test_vectors_priv_key),
11391 	.nn_random = NULL,
11392 	.hash_type = SHA512,
11393 	.msg = (const char *)ed25519_495_test_vectors_message,
11394 	.msglen = sizeof(ed25519_495_test_vectors_message),
11395 	.sig_type = EDDSA25519,
11396 	.exp_sig = ed25519_495_test_vectors_expected_sig,
11397 	.exp_siglen = sizeof(ed25519_495_test_vectors_expected_sig),
11398 	.adata = NULL,
11399 	.adata_len = 0
11400 };
11401 
11402 /************************************************/
11403 static const u8 ed25519_496_test_vectors_priv_key[] = {
11404 	0x64, 0xe8, 0x93, 0x04, 0xa3, 0x35, 0xe9, 0x03, 0xcb, 0x36, 0xc0, 0xbd, 0xf1, 0xa6, 0x41, 0x2e, 0xf3, 0x68, 0x46, 0x80, 0x06, 0xb7, 0x3d, 0x3d, 0x2d, 0x61, 0xcb, 0x03, 0x0c, 0xc5, 0xf8, 0xd1, };
11405 static const u8 ed25519_496_test_vectors_message[] = {
11406 	0x2f, 0x51, 0x07, 0x4d, 0x98, 0x1b, 0xda, 0xfa, 0xfb, 0x02, 0xa4, 0x0f, 0xe8, 0x26, 0xc4, 0x5f, 0x31, 0x71, 0xc1, 0xb3, 0x18, 0x4d, 0x8c, 0x26, 0x0b, 0x82, 0xb8, 0x41, 0x1f, 0xc6, 0x25, 0xcb, 0x02, 0xcc, 0xfe, 0x75, 0x5d, 0xc2, 0x9d, 0xc7, 0x89, 0x5b, 0xf7, 0x59, 0xe6, 0x1b, 0x24, 0x50, 0xda, 0x1a, 0x65, 0x6a, 0x38, 0xd4, 0xf7, 0x0d, 0x2e, 0xe7, 0x48, 0xc5, 0x18, 0xc6, 0x42, 0x03, 0x06, 0xe5, 0xf0, 0x1e, 0xc7, 0xa0, 0xff, 0xe0, 0xe9, 0xdc, 0xeb, 0x93, 0xf6, 0xc0, 0x77, 0xb1, 0x26, 0x62, 0x88, 0x15, 0x84, 0xf9, 0x8c, 0xe6, 0xab, 0x94, 0x5f, 0x87, 0xfc, 0x6d, 0x12, 0x3c, 0x45, 0xd6, 0xcd, 0xfd, 0x82, 0x37, 0xa1, 0xce, 0x36, 0x35, 0xb6, 0x23, 0xa7, 0x9d, 0x02, 0x0d, 0xf4, 0x4c, 0x74, 0xb8, 0x9a, 0xc1, 0x4a, 0x32, 0x1f, 0xbf, 0x33, 0xa8, 0xc0, 0xa2, 0x55, 0x9f, 0xea, 0x1c, 0x2b, 0x15, 0x60, 0x76, 0xb8, 0x13, 0x90, 0x8f, 0x84, 0x2e, 0xbe, 0x4c, 0x2b, 0x94, 0x90, 0x89, 0xe5, 0x2b, 0x1a, 0xe4, 0x0d, 0xc6, 0xe4, 0xb2, 0xab, 0xbc, 0x43, 0x9a, 0x0b, 0xf7, 0x23, 0x69, 0x67, 0x9a, 0xab, 0x6f, 0x4c, 0x00, 0x01, 0x8b, 0xe1, 0x47, 0xf7, 0xc0, 0xa6, 0x7b, 0x96, 0x79, 0xee, 0x88, 0xa5, 0x38, 0x19, 0xc4, 0x9f, 0x7b, 0x67, 0x5e, 0x30, 0xa8, 0xb5, 0xaf, 0x39, 0x66, 0x1e, 0xe8, 0xdb, 0x21, 0x01, 0x04, 0x11, 0x29, 0x49, 0x68, 0xf8, 0x8e, 0x5d, 0x60, 0x4d, 0x0d, 0x88, 0xd7, 0x6a, 0x7e, 0x48, 0x64, 0xfa, 0xd3, 0xa5, 0x6f, 0x5f, 0x62, 0x4b, 0xa1, 0xb3, 0x4e, 0xa9, 0xcb, 0x72, 0x08, 0x50, 0xaa, 0xd3, 0xbd, 0x4f, 0x0a, 0x88, 0x2a, 0x7d, 0x25, 0xfb, 0xec, 0x2b, 0xb7, 0xca, 0x86, 0xda, 0x61, 0x6d, 0xa9, 0x6c, 0x15, 0x62, 0xc6, 0xd6, 0xa1, 0xab, 0xcc, 0x64, 0x1e, 0x1b, 0x58, 0xb2, 0xc1, 0x78, 0xe1, 0xc3, 0xbc, 0x8a, 0x3b, 0x36, 0xec, 0x9e, 0x14, 0x4d, 0xd2, 0xe7, 0x5b, 0x0b, 0xc8, 0xc0, 0x8c, 0xcb, 0x0d, 0x6e, 0x34, 0x27, 0xb0, 0x32, 0x2b, 0x3d, 0x6a, 0xb9, 0x3f, 0x3f, 0x60, 0xb9, 0xcc, 0x5b, 0x61, 0xda, 0xd0, 0x23, 0x85, 0xa1, 0x49, 0x49, 0xf9, 0xb8, 0x7a, 0x8e, 0x3a, 0xf1, 0xe0, 0xe0, 0xfa, 0xb7, 0xa9, 0xa9, 0x28, 0xc7, 0x53, 0xfc, 0x61, 0x10, 0x44, 0x4a, 0xf7, 0xcc, 0xaf, 0x80, 0x27, 0xed, 0x64, 0x1b, 0x9e, 0xd8, 0x7f, 0xa5, 0xd8, 0xe1, 0xf7, 0x6c, 0xae, 0x46, 0x5d, 0x57, 0xa7, 0x0d, 0xad, 0x9e, 0xbf, 0xdd, 0x3c, 0xe7, 0x57, 0x6a, 0xc4, 0xde, 0x89, 0xd9, 0x8f, 0x42, 0xe2, 0x82, 0xad, 0x87, 0xad, 0x6a, 0x50, 0x42, 0x57, 0x7c, 0xbb, 0xbc, 0x4d, 0x95, 0x1e, 0x2a, 0x86, 0x76, 0xfe, 0xdc, 0x8c, 0xb1, 0xb1, 0xbd, 0xf7, 0x6c, 0x3a, 0x38, 0x84, 0x63, 0x85, 0xa8, 0x5a, 0xa2, 0x47, 0x06, 0xc2, 0x0a, 0x8b, 0x38, 0x46, 0x5f, 0xe2, 0xae, 0x0e, 0x41, 0xf7, 0x8e, 0x61, 0x4b, 0x8e, 0x96, 0x42, 0xfe, 0x24, 0x71, 0xa9, 0x01, 0x57, 0x47, 0xdb, 0x97, 0x6e, 0x0c, 0x78, 0x48, 0xc2, 0x3f, 0xf3, 0xf4, 0x17, 0xcb, 0x05, 0xa8, 0xd5, 0xef, 0x40, 0x13, 0x0a, 0xdf, 0x85, 0x5c, 0x99, 0x8a, 0x62, 0x10, 0x4d, 0x7e, 0x2f, 0xb7, 0xc0, 0xf9, 0xaa, 0x2a, 0x49, 0x60, 0x75, 0x62, 0x3c, 0xed, 0x2c, 0x0f, 0x7e, 0xec, 0x10, 0x14, 0x7f, 0xf9, 0x60, 0x8a, 0x8a, 0x04, 0x2e, 0xf9, 0x81, 0x17, 0x45, 0x9b, 0x93, 0x83, 0x7f, 0xd1, 0xb8, 0xd5, 0xef, 0x03, 0x97, 0x8e, 0xad, 0xa7, 0x4c, 0xac, };
11407 static const u8 ed25519_496_test_vectors_expected_sig[] = {
11408 	0x92, 0xeb, 0x44, 0x54, 0x81, 0x40, 0x01, 0xec, 0xfc, 0x18, 0x02, 0x5d, 0x64, 0x21, 0xf6, 0x46, 0x45, 0xa5, 0xbc, 0xbb, 0x5c, 0xb8, 0xfd, 0x85, 0xc1, 0x4d, 0x77, 0x26, 0x17, 0xc5, 0x03, 0xe8, 0xbe, 0x7d, 0x3b, 0xcf, 0x11, 0x7f, 0x5e, 0x68, 0x01, 0xd1, 0xc3, 0xb9, 0x6f, 0x90, 0x90, 0xa6, 0x6d, 0xdc, 0x67, 0xf8, 0xcf, 0x8f, 0xf0, 0xf1, 0xc1, 0x25, 0xb1, 0x6b, 0x15, 0xe2, 0xce, 0x07, };
11409 static const ec_test_case ed25519_496_test_case = {
11410 	.name = "EDDSA25519-SHA512/wei25519 496",
11411 	.ec_str_p = &wei25519_str_params,
11412 	.priv_key = ed25519_496_test_vectors_priv_key,
11413 	.priv_key_len = sizeof(ed25519_496_test_vectors_priv_key),
11414 	.nn_random = NULL,
11415 	.hash_type = SHA512,
11416 	.msg = (const char *)ed25519_496_test_vectors_message,
11417 	.msglen = sizeof(ed25519_496_test_vectors_message),
11418 	.sig_type = EDDSA25519,
11419 	.exp_sig = ed25519_496_test_vectors_expected_sig,
11420 	.exp_siglen = sizeof(ed25519_496_test_vectors_expected_sig),
11421 	.adata = NULL,
11422 	.adata_len = 0
11423 };
11424 
11425 /************************************************/
11426 static const u8 ed25519_497_test_vectors_priv_key[] = {
11427 	0x6f, 0x63, 0x43, 0x87, 0xca, 0x2c, 0x0c, 0xb1, 0x67, 0xa7, 0x40, 0xd6, 0xaf, 0xd8, 0x9e, 0x2a, 0x28, 0xf5, 0x30, 0x71, 0x84, 0xe8, 0x1c, 0xba, 0x3c, 0x03, 0x70, 0x46, 0xa5, 0xed, 0xe2, 0x3c, };
11428 static const u8 ed25519_497_test_vectors_message[] = {
11429 	0x86, 0x5c, 0x20, 0xa9, 0x4a, 0xc3, 0xf2, 0xe3, 0xbd, 0x5c, 0xb8, 0x5b, 0xec, 0x9d, 0x33, 0x72, 0x66, 0x71, 0xfe, 0x01, 0xf9, 0xc5, 0x37, 0x01, 0x7d, 0x59, 0xc8, 0xd5, 0x10, 0x6e, 0x43, 0x36, 0x0b, 0xf7, 0x6f, 0xc0, 0x61, 0x86, 0x70, 0x59, 0x80, 0xc8, 0xa8, 0x7b, 0xa3, 0x63, 0x3a, 0x4a, 0x17, 0x04, 0x26, 0xec, 0xc0, 0xde, 0xfb, 0x6d, 0xb2, 0x67, 0x0f, 0x5f, 0x59, 0x25, 0x33, 0x77, 0x4c, 0xda, 0x50, 0x05, 0x2a, 0xe5, 0x97, 0xd4, 0x8d, 0xea, 0xcc, 0x26, 0x37, 0x06, 0x3b, 0xfd, 0x51, 0x9f, 0x2e, 0x79, 0xba, 0xc8, 0x17, 0x75, 0xbe, 0xcc, 0xb1, 0xab, 0x2f, 0x5b, 0x39, 0x71, 0x2e, 0x2e, 0x82, 0x94, 0x69, 0xb7, 0x5a, 0x2d, 0x2d, 0xbd, 0x08, 0xaa, 0x6d, 0x24, 0x72, 0x34, 0x04, 0xb2, 0x5e, 0xb9, 0x48, 0xa4, 0x83, 0x4c, 0x55, 0x24, 0x6c, 0x80, 0x79, 0xa8, 0x2e, 0xc6, 0x43, 0x54, 0xe8, 0xc2, 0x38, 0x8f, 0x8c, 0x5a, 0x61, 0x6b, 0x3c, 0xdc, 0x37, 0x1e, 0x62, 0x63, 0xfa, 0xbc, 0x9f, 0x60, 0x99, 0x21, 0x9e, 0x86, 0x15, 0x85, 0xfe, 0x82, 0xa6, 0x7d, 0x61, 0x0d, 0xd1, 0xeb, 0x5c, 0x81, 0xc9, 0x6b, 0x5c, 0xb3, 0x54, 0xa6, 0x89, 0xfd, 0x8a, 0xac, 0x8d, 0xb7, 0x6c, 0x43, 0x3f, 0x0c, 0xb0, 0xb3, 0x1c, 0xf1, 0xd8, 0x55, 0xb6, 0xa3, 0x0a, 0x3d, 0x2a, 0x21, 0x2e, 0x9b, 0x4f, 0x7d, 0x7a, 0xfe, 0x61, 0x99, 0x51, 0xf9, 0x8d, 0x2f, 0x1b, 0xa2, 0xc1, 0x01, 0x08, 0x5b, 0xa8, 0x1f, 0x49, 0xb3, 0x60, 0x37, 0xcd, 0x64, 0x57, 0xa7, 0xea, 0xa8, 0xf4, 0xf3, 0xbe, 0xdf, 0x68, 0xd0, 0x9f, 0xc9, 0xfa, 0x25, 0xa9, 0xd7, 0x54, 0xdb, 0x65, 0x36, 0x02, 0x85, 0x41, 0x2d, 0x1a, 0x6d, 0xa5, 0x37, 0x88, 0x90, 0x5f, 0xcf, 0x4e, 0xfa, 0x8a, 0x80, 0xcd, 0x86, 0xca, 0x48, 0xb8, 0x45, 0x63, 0x3d, 0x8c, 0x31, 0xc2, 0xae, 0x06, 0xf1, 0x6c, 0x4c, 0x6b, 0xbb, 0xe9, 0xcd, 0x1a, 0xfb, 0x59, 0xe1, 0x01, 0xbe, 0x50, 0xe0, 0x35, 0x35, 0xdd, 0x8a, 0x65, 0xe4, 0x5b, 0xba, 0x46, 0xd4, 0x5c, 0xb1, 0x4b, 0xad, 0xfc, 0x8e, 0x93, 0xab, 0x52, 0x67, 0xf4, 0xe4, 0x92, 0xab, 0x1f, 0x9a, 0x95, 0xe6, 0x1f, 0xca, 0xb8, 0x1c, 0xbf, 0x2b, 0xd8, 0x67, 0xa3, 0xec, 0x7b, 0x4b, 0xaa, 0x18, 0x9a, 0x0f, 0x08, 0x56, 0x70, 0x75, 0x59, 0x61, 0x29, 0xdc, 0xf9, 0xff, 0x1c, 0x50, 0x2d, 0x32, 0x79, 0xe8, 0xaa, 0x6c, 0xe5, 0x6e, 0xaf, 0x13, 0x45, 0x82, 0xa9, 0xe4, 0x30, 0xa5, 0xaa, 0x8c, 0xa1, 0x0c, 0x3d, 0xa8, 0xbc, 0x79, 0x3d, 0x02, 0x56, 0xad, 0x19, 0xae, 0xa7, 0x14, 0x9f, 0x0e, 0xa7, 0xea, 0x95, 0xfa, 0xcf, 0xac, 0x1c, 0x5c, 0xfd, 0x29, 0xd7, 0xa3, 0xfe, 0x1a, 0x41, 0x79, 0x75, 0x73, 0x9e, 0x14, 0xda, 0x8e, 0xdc, 0x81, 0x99, 0x00, 0x47, 0x2c, 0xa8, 0xc6, 0x97, 0x16, 0x32, 0x8e, 0x8a, 0x29, 0x9f, 0x97, 0x4e, 0xdf, 0xf7, 0x41, 0xaa, 0xbc, 0x1c, 0x07, 0x4a, 0x76, 0x1b, 0x3e, 0xc8, 0x76, 0x1d, 0xda, 0x2e, 0x7e, 0xed, 0x7a, 0xf3, 0x3e, 0xf0, 0x04, 0x09, 0x84, 0x9d, 0x41, 0x54, 0x97, 0xc5, 0xed, 0x5d, 0xfa, 0xa2, 0x25, 0x9a, 0x31, 0xd0, 0x76, 0x39, 0x81, 0x70, 0xb2, 0xd9, 0xd2, 0x10, 0x20, 0x8b, 0x4a, 0x4c, 0x7d, 0xb8, 0xc6, 0x26, 0xd1, 0xc5, 0x33, 0x56, 0x2a, 0x1f, 0x95, 0x48, 0x9f, 0x98, 0x19, 0xe4, 0x98, 0x5f, 0xc4, 0xe1, 0xd1, 0xa7, 0x07, 0xbe, 0x5e, 0x82, 0xb0, 0x05, 0x48, 0x1d, 0x86, 0x37, 0x7f, 0x42, 0x4e, };
11430 static const u8 ed25519_497_test_vectors_expected_sig[] = {
11431 	0xfd, 0x17, 0xc6, 0x18, 0xcd, 0xbb, 0x5d, 0x45, 0x9e, 0xa2, 0xac, 0xa8, 0x86, 0xf0, 0x51, 0x2c, 0x62, 0x32, 0x51, 0x28, 0x4a, 0xae, 0x3a, 0x83, 0xeb, 0x5d, 0x7f, 0x60, 0xda, 0x1d, 0x9b, 0x2b, 0xa0, 0x83, 0xc4, 0x55, 0xa5, 0xe2, 0x58, 0x3a, 0x3c, 0xba, 0x73, 0x6e, 0x7b, 0x96, 0x1b, 0xa1, 0x9c, 0x1c, 0xc8, 0xdd, 0x90, 0x74, 0x5d, 0xa8, 0x2a, 0x15, 0xdf, 0xc6, 0x62, 0xe8, 0xe1, 0x0d, };
11432 static const ec_test_case ed25519_497_test_case = {
11433 	.name = "EDDSA25519-SHA512/wei25519 497",
11434 	.ec_str_p = &wei25519_str_params,
11435 	.priv_key = ed25519_497_test_vectors_priv_key,
11436 	.priv_key_len = sizeof(ed25519_497_test_vectors_priv_key),
11437 	.nn_random = NULL,
11438 	.hash_type = SHA512,
11439 	.msg = (const char *)ed25519_497_test_vectors_message,
11440 	.msglen = sizeof(ed25519_497_test_vectors_message),
11441 	.sig_type = EDDSA25519,
11442 	.exp_sig = ed25519_497_test_vectors_expected_sig,
11443 	.exp_siglen = sizeof(ed25519_497_test_vectors_expected_sig),
11444 	.adata = NULL,
11445 	.adata_len = 0
11446 };
11447 
11448 /************************************************/
11449 static const u8 ed25519_498_test_vectors_priv_key[] = {
11450 	0x4b, 0x2e, 0x1a, 0xe6, 0x0f, 0xa5, 0xd3, 0x83, 0xba, 0xba, 0x54, 0xed, 0xc1, 0x68, 0xb9, 0xb0, 0x5e, 0x0d, 0x05, 0xee, 0x9c, 0x18, 0x13, 0x21, 0xdb, 0xfd, 0xdd, 0x19, 0x83, 0x95, 0x91, 0x54, };
11451 static const u8 ed25519_498_test_vectors_message[] = {
11452 	0xfa, 0xb9, 0x8b, 0x2b, 0xbf, 0x86, 0xae, 0xb0, 0x50, 0x86, 0x81, 0x2a, 0x4b, 0x00, 0x49, 0xa1, 0x04, 0x2a, 0xbb, 0x76, 0xdf, 0x9c, 0xd2, 0x90, 0x87, 0x55, 0x70, 0x63, 0x03, 0xef, 0xed, 0xb1, 0xad, 0x21, 0xe8, 0xbc, 0x8d, 0x75, 0x62, 0x34, 0x9e, 0x1e, 0x98, 0xce, 0x0d, 0x75, 0x2f, 0x4b, 0x3d, 0x99, 0xe6, 0x77, 0x36, 0x8b, 0xd0, 0x8c, 0x78, 0xfe, 0x74, 0x25, 0xec, 0x3b, 0x56, 0x0e, 0x38, 0x3b, 0xd4, 0x2a, 0xf6, 0x49, 0x98, 0x86, 0xc3, 0x5a, 0xdd, 0x80, 0xa5, 0x82, 0x8b, 0x61, 0xd6, 0x64, 0x4d, 0x7d, 0xc4, 0x43, 0xba, 0x2c, 0x06, 0xf9, 0xba, 0xd2, 0xec, 0xcb, 0x98, 0x3d, 0x24, 0x45, 0x8f, 0x6a, 0xda, 0x1b, 0x10, 0xbb, 0x5b, 0x77, 0x17, 0x2c, 0x5c, 0xdd, 0x56, 0xd2, 0x73, 0xd1, 0xe4, 0x10, 0x10, 0xb2, 0x5c, 0xf4, 0x8a, 0x7d, 0x58, 0xd7, 0x25, 0x57, 0x02, 0xac, 0x12, 0xf2, 0xa6, 0xfe, 0x29, 0x18, 0x46, 0x63, 0x95, 0xf4, 0x60, 0xd1, 0x52, 0x36, 0xd0, 0x35, 0xae, 0x94, 0x10, 0xca, 0x86, 0xc4, 0x60, 0x51, 0x28, 0x29, 0x9f, 0xaa, 0xf0, 0x90, 0x15, 0xf1, 0xad, 0xee, 0x77, 0x68, 0xee, 0x1a, 0x8f, 0x8c, 0xa0, 0x6d, 0x10, 0xdd, 0x7f, 0x95, 0xc4, 0x6f, 0xa1, 0x02, 0x53, 0x06, 0x5f, 0x9d, 0x6f, 0x90, 0x29, 0x59, 0x08, 0x80, 0x9f, 0xd7, 0x79, 0x57, 0x1b, 0xe2, 0x9e, 0x0a, 0xe6, 0x6e, 0x0b, 0xcb, 0xde, 0xb7, 0x91, 0x3d, 0x2b, 0xbb, 0x76, 0xac, 0x30, 0x2f, 0x34, 0x52, 0xc5, 0x5e, 0xf1, 0x99, 0xa4, 0x8e, 0xce, 0xb0, 0xe3, 0x59, 0x6c, 0x7b, 0x4c, 0x03, 0x86, 0xda, 0xe7, 0x10, 0x1e, 0xa2, 0x44, 0xa3, 0x3c, 0x4c, 0xdc, 0x83, 0x06, 0x72, 0xdf, 0x83, 0x65, 0x5b, 0x35, 0x33, 0x80, 0x52, 0x30, 0x7b, 0x94, 0xd2, 0x23, 0xca, 0xb1, 0xaf, 0x69, 0xe0, 0x7f, 0x78, 0xe5, 0x8c, 0xbb, 0x0c, 0xb3, 0xc5, 0x35, 0x1e, 0x3a, 0x6b, 0x0c, 0x4a, 0x92, 0x7f, 0x75, 0x62, 0xc5, 0x98, 0xd2, 0xd3, 0xdf, 0x90, 0x56, 0x9f, 0x61, 0xdb, 0x1a, 0x3c, 0xb0, 0x14, 0x0b, 0x56, 0xea, 0x02, 0xcf, 0x77, 0x45, 0xfb, 0xee, 0xc2, 0x02, 0x86, 0x73, 0xd6, 0x7f, 0x1e, 0xc5, 0xf7, 0xda, 0xf9, 0x71, 0x5f, 0x75, 0x4a, 0x9d, 0x8e, 0xd4, 0x6a, 0x7a, 0x63, 0xef, 0x72, 0x2e, 0xe0, 0xd5, 0x89, 0x93, 0x31, 0xb6, 0x3c, 0x97, 0x4f, 0xa8, 0x80, 0x42, 0x94, 0x35, 0x76, 0x7f, 0x96, 0x25, 0x4e, 0xf4, 0x6c, 0x99, 0x68, 0xf3, 0xfe, 0xda, 0xaf, 0xea, 0xf3, 0xe8, 0xf4, 0x56, 0x34, 0xb5, 0x4f, 0x5e, 0x0a, 0x5f, 0xc2, 0xd2, 0x37, 0x3a, 0xb9, 0xe9, 0x8d, 0x9a, 0xcf, 0xe3, 0x69, 0x7e, 0x64, 0x2a, 0x18, 0xe0, 0xdf, 0xd9, 0xfb, 0xc2, 0xf0, 0x94, 0x86, 0x6d, 0x40, 0x1f, 0x0a, 0x4c, 0xa2, 0xa4, 0x56, 0xed, 0xf6, 0xa1, 0xa7, 0x7b, 0x9c, 0x29, 0x6c, 0x39, 0x22, 0x06, 0x7e, 0xb3, 0xd5, 0xa5, 0xca, 0x0a, 0x77, 0xf4, 0x30, 0xe4, 0xc8, 0x61, 0x1d, 0x8f, 0x05, 0xa1, 0xba, 0xac, 0x16, 0x35, 0xef, 0x7b, 0xa8, 0x3d, 0xfc, 0x69, 0xd3, 0x01, 0x94, 0x98, 0x56, 0xbe, 0x4d, 0x2c, 0x8a, 0xb6, 0x1d, 0xe2, 0x9c, 0xf3, 0x92, 0x50, 0xc5, 0x79, 0x4c, 0xbf, 0x57, 0x50, 0xcd, 0xa9, 0x5d, 0x04, 0x68, 0xaf, 0xa2, 0xb7, 0xf2, 0x3d, 0xba, 0x4e, 0xf5, 0xf5, 0x29, 0x5a, 0x3b, 0xf4, 0x14, 0x00, 0x18, 0xb7, 0xed, 0x06, 0x18, 0x84, 0x44, 0x4f, 0x5b, 0xb1, 0xb7, 0xd2, 0x39, 0x31, 0x2d, 0xd7, 0x39, 0x99, 0x95, 0x36, 0xc6, 0x84, 0x45, 0x6e, 0xa0, 0x6b, };
11453 static const u8 ed25519_498_test_vectors_expected_sig[] = {
11454 	0x22, 0x20, 0x11, 0x9e, 0x83, 0xd6, 0x9a, 0x6a, 0x3e, 0xed, 0x95, 0xfa, 0x16, 0x6d, 0x1d, 0x11, 0x28, 0xa3, 0xf2, 0x32, 0xca, 0x1b, 0x78, 0xbc, 0x94, 0xb4, 0xd4, 0x76, 0xc4, 0x77, 0x94, 0x43, 0x61, 0x4b, 0x87, 0x72, 0xaa, 0x22, 0x32, 0xcb, 0x07, 0x20, 0xa0, 0x55, 0xeb, 0x71, 0xd8, 0x40, 0x7f, 0x3a, 0xb1, 0x9b, 0xaa, 0x1d, 0x96, 0x2c, 0x05, 0x2c, 0x84, 0xc0, 0xbd, 0x58, 0x96, 0x08, };
11455 static const ec_test_case ed25519_498_test_case = {
11456 	.name = "EDDSA25519-SHA512/wei25519 498",
11457 	.ec_str_p = &wei25519_str_params,
11458 	.priv_key = ed25519_498_test_vectors_priv_key,
11459 	.priv_key_len = sizeof(ed25519_498_test_vectors_priv_key),
11460 	.nn_random = NULL,
11461 	.hash_type = SHA512,
11462 	.msg = (const char *)ed25519_498_test_vectors_message,
11463 	.msglen = sizeof(ed25519_498_test_vectors_message),
11464 	.sig_type = EDDSA25519,
11465 	.exp_sig = ed25519_498_test_vectors_expected_sig,
11466 	.exp_siglen = sizeof(ed25519_498_test_vectors_expected_sig),
11467 	.adata = NULL,
11468 	.adata_len = 0
11469 };
11470 
11471 /************************************************/
11472 static const u8 ed25519_499_test_vectors_priv_key[] = {
11473 	0xb2, 0x16, 0xce, 0xbf, 0x87, 0x80, 0x24, 0xc2, 0x0d, 0xfc, 0x86, 0xce, 0x4b, 0x37, 0xbd, 0xc4, 0x7a, 0xa2, 0x8f, 0x29, 0x20, 0x3b, 0x5b, 0x44, 0x92, 0x50, 0x65, 0xd9, 0x93, 0xa2, 0x59, 0xfe, };
11474 static const u8 ed25519_499_test_vectors_message[] = {
11475 	0x9c, 0x87, 0x17, 0xcc, 0x86, 0xfe, 0x02, 0x48, 0x0b, 0xfd, 0x9e, 0x92, 0x2b, 0xd7, 0x6b, 0xff, 0xee, 0x21, 0x70, 0xc4, 0xcb, 0x1b, 0x13, 0xdf, 0x83, 0x4a, 0xc0, 0x1d, 0x45, 0x00, 0x60, 0x86, 0x29, 0x7f, 0x1b, 0x8a, 0x26, 0xf2, 0xba, 0x67, 0x4d, 0x33, 0xe1, 0xd1, 0x62, 0xf1, 0x93, 0x67, 0xfe, 0xba, 0x97, 0x35, 0x2b, 0x7d, 0xf2, 0xe7, 0x5b, 0x30, 0x9d, 0x4b, 0x6f, 0x8b, 0x07, 0xcc, 0x0e, 0xb6, 0x77, 0x7e, 0x81, 0xe2, 0x68, 0xe0, 0x2d, 0x07, 0xf2, 0xa0, 0x8f, 0x8f, 0x39, 0xd5, 0xa8, 0x32, 0x0b, 0xfc, 0x01, 0xfc, 0x8c, 0x92, 0x27, 0xd2, 0xcf, 0x05, 0xe1, 0x28, 0x91, 0xff, 0x4d, 0xe8, 0x85, 0xa1, 0xc9, 0x33, 0x71, 0xa0, 0x91, 0x0b, 0xa5, 0x33, 0x92, 0xaf, 0xf9, 0xba, 0x2e, 0xed, 0x9a, 0x20, 0x55, 0x97, 0x7e, 0xc4, 0x15, 0x7b, 0xd6, 0x5b, 0x34, 0xdf, 0x79, 0x37, 0x2f, 0x4d, 0x50, 0xed, 0xbc, 0x48, 0x92, 0x43, 0x53, 0xcf, 0xa1, 0x69, 0x23, 0x19, 0xd8, 0x8a, 0x7a, 0x5b, 0xb7, 0x26, 0x25, 0x4c, 0x20, 0x92, 0x91, 0xe9, 0xb1, 0xd2, 0xc1, 0xa6, 0xc8, 0x23, 0x63, 0x98, 0x10, 0x9c, 0x59, 0xed, 0x42, 0xa0, 0xac, 0x9e, 0x76, 0x33, 0xc5, 0x20, 0x73, 0x4e, 0xcc, 0xfe, 0xa4, 0xfe, 0xa9, 0x5a, 0x47, 0xa8, 0xf0, 0xa0, 0x68, 0xb4, 0x27, 0x50, 0x00, 0x43, 0x9c, 0xc9, 0x7c, 0x57, 0x87, 0x1e, 0x10, 0x5c, 0xc0, 0x79, 0x0e, 0x9d, 0xcc, 0x9c, 0x25, 0xd5, 0xaf, 0x70, 0x63, 0xff, 0xd0, 0x5c, 0x4f, 0x37, 0x80, 0xe7, 0xbc, 0xa4, 0xc4, 0x56, 0xd0, 0x17, 0x0d, 0xa7, 0x09, 0xfc, 0x6c, 0xb3, 0xfa, 0xa7, 0x2b, 0xdc, 0xf5, 0x62, 0x90, 0x8a, 0xe9, 0x34, 0x0a, 0xef, 0x4d, 0x0c, 0x8b, 0x91, 0xf0, 0xfb, 0xcc, 0xbc, 0xf1, 0xcd, 0x89, 0x8b, 0x1c, 0x71, 0x6f, 0x4f, 0x14, 0x74, 0xc3, 0xaa, 0x31, 0x62, 0x42, 0xab, 0xdf, 0x63, 0x68, 0xe5, 0x7a, 0x24, 0x7f, 0xf2, 0xfd, 0x5c, 0xe2, 0x3d, 0x18, 0x7f, 0x69, 0x4f, 0x11, 0xe3, 0x8d, 0xfb, 0xfb, 0xc3, 0xd9, 0xdb, 0x20, 0x90, 0x3b, 0x4e, 0xbb, 0x44, 0x9b, 0x90, 0x49, 0xee, 0x02, 0x0f, 0x6e, 0x2f, 0x50, 0x8e, 0x8b, 0x2b, 0x16, 0x5b, 0xad, 0x74, 0x64, 0xdb, 0xdd, 0x17, 0x8c, 0xbd, 0x42, 0x32, 0x33, 0x76, 0x5d, 0x37, 0x1e, 0x7a, 0xe1, 0xc3, 0xe8, 0x78, 0xcd, 0xb5, 0xb8, 0x24, 0xb2, 0x0c, 0xb3, 0x09, 0x86, 0x7c, 0x0e, 0x47, 0x3c, 0x06, 0x7e, 0x67, 0x44, 0x00, 0x85, 0x27, 0xb6, 0xbc, 0x07, 0x6d, 0x07, 0x7f, 0x48, 0x67, 0x62, 0x2a, 0xee, 0xd1, 0xc2, 0x53, 0xdb, 0xde, 0x7c, 0x6a, 0x76, 0xc7, 0x01, 0x59, 0x62, 0xfb, 0x73, 0x39, 0x16, 0x98, 0x60, 0x0b, 0xb3, 0x18, 0xff, 0xa7, 0xb0, 0x13, 0x6e, 0xe4, 0xcc, 0xb0, 0x7d, 0xaa, 0xf0, 0x1f, 0x40, 0xff, 0x9c, 0x19, 0x4f, 0x98, 0x68, 0x1f, 0x9f, 0xae, 0xf8, 0xb6, 0xf9, 0xe9, 0x9f, 0x95, 0xdf, 0x00, 0x80, 0xda, 0x89, 0x66, 0xa8, 0xba, 0x7a, 0x94, 0x74, 0xc5, 0x37, 0xb9, 0x2d, 0xf9, 0x79, 0x9e, 0x2f, 0xd1, 0x6f, 0x78, 0x8d, 0xad, 0x7a, 0x7b, 0xcc, 0x74, 0x52, 0x26, 0xe1, 0xe6, 0x37, 0x1f, 0x52, 0xeb, 0xcd, 0xbd, 0x14, 0x40, 0x44, 0xdd, 0xfe, 0x63, 0x2d, 0xfc, 0x0a, 0x43, 0xd3, 0xa4, 0x50, 0x92, 0x31, 0x70, 0xeb, 0xc7, 0xae, 0x21, 0x9e, 0x50, 0xe0, 0x78, 0xa5, 0x11, 0xbc, 0x12, 0xef, 0x14, 0xcd, 0x14, 0xb5, 0x30, 0x9f, 0x38, 0xab, 0xd6, 0x5d, 0xb2, 0xb2, 0xa7, 0xaf, 0x22, 0x43, 0xb2, 0x29, 0xc9, 0xfd, 0x2e, };
11476 static const u8 ed25519_499_test_vectors_expected_sig[] = {
11477 	0xb7, 0x38, 0x9e, 0xe7, 0x8d, 0xd9, 0x76, 0x3f, 0x9d, 0x28, 0x92, 0x91, 0x2e, 0xdc, 0xbe, 0x3e, 0x8a, 0x23, 0x6b, 0x8b, 0xdc, 0x25, 0xf4, 0x4b, 0x9c, 0xfd, 0xc8, 0xc4, 0x7c, 0xd5, 0x81, 0x68, 0xab, 0x56, 0xeb, 0x04, 0x02, 0xa5, 0xbd, 0x75, 0x2a, 0xc8, 0xf4, 0x97, 0x8d, 0x2e, 0xa2, 0xb6, 0x5d, 0x2f, 0xa8, 0x52, 0x65, 0x96, 0x6b, 0x9f, 0x57, 0x22, 0x7e, 0xf4, 0xa5, 0x9a, 0xe0, 0x09, };
11478 static const ec_test_case ed25519_499_test_case = {
11479 	.name = "EDDSA25519-SHA512/wei25519 499",
11480 	.ec_str_p = &wei25519_str_params,
11481 	.priv_key = ed25519_499_test_vectors_priv_key,
11482 	.priv_key_len = sizeof(ed25519_499_test_vectors_priv_key),
11483 	.nn_random = NULL,
11484 	.hash_type = SHA512,
11485 	.msg = (const char *)ed25519_499_test_vectors_message,
11486 	.msglen = sizeof(ed25519_499_test_vectors_message),
11487 	.sig_type = EDDSA25519,
11488 	.exp_sig = ed25519_499_test_vectors_expected_sig,
11489 	.exp_siglen = sizeof(ed25519_499_test_vectors_expected_sig),
11490 	.adata = NULL,
11491 	.adata_len = 0
11492 };
11493 
11494 /************************************************/
11495 static const u8 ed25519_500_test_vectors_priv_key[] = {
11496 	0xaf, 0xce, 0xce, 0xa9, 0x24, 0x39, 0xe4, 0x4a, 0x43, 0xed, 0x61, 0xb6, 0x73, 0x04, 0x3d, 0xcb, 0xc4, 0xe3, 0x60, 0xf2, 0xf3, 0x0c, 0xd0, 0x78, 0x96, 0xcd, 0xa2, 0x0c, 0xb9, 0x88, 0xd4, 0xe3, };
11497 static const u8 ed25519_500_test_vectors_message[] = {
11498 	0x0b, 0x05, 0xf8, 0x9e, 0xbb, 0x33, 0x97, 0x94, 0x76, 0x87, 0xaf, 0xbe, 0xf0, 0xed, 0xe8, 0x7c, 0xf3, 0x81, 0x06, 0x76, 0x27, 0x70, 0x37, 0x52, 0x1d, 0x95, 0x2a, 0x3b, 0xbb, 0xbd, 0xc8, 0x56, 0x59, 0x88, 0xa0, 0x95, 0xd8, 0xd4, 0xf6, 0xf5, 0x9b, 0xe5, 0x72, 0xd3, 0xd8, 0x21, 0xdd, 0x78, 0x99, 0x77, 0xef, 0x77, 0xa2, 0xfd, 0x71, 0x10, 0xce, 0xee, 0xd9, 0xf3, 0x75, 0x6e, 0xd8, 0xe1, 0x88, 0x26, 0x7b, 0x97, 0xa3, 0x0e, 0xf8, 0x95, 0x7c, 0x78, 0xae, 0xa3, 0xa2, 0x96, 0x3d, 0xec, 0xa6, 0x18, 0x60, 0x54, 0x5e, 0x0c, 0x40, 0x82, 0x48, 0x81, 0xeb, 0xb1, 0xdb, 0x10, 0xf6, 0x07, 0xe1, 0x0d, 0xdb, 0xdd, 0xce, 0x40, 0x0e, 0xa2, 0x36, 0xba, 0x47, 0x45, 0xaa, 0x99, 0xa0, 0x56, 0x41, 0x97, 0x67, 0x66, 0x78, 0x9e, 0xd0, 0xda, 0x7d, 0xb5, 0x5f, 0xda, 0xb4, 0x59, 0xeb, 0xd4, 0xb4, 0x41, 0xa6, 0x28, 0x2f, 0x7c, 0xfd, 0x5a, 0x20, 0xea, 0x06, 0xef, 0xfa, 0x33, 0x59, 0x55, 0xe5, 0xfd, 0x29, 0x18, 0x16, 0x71, 0xbc, 0x92, 0xc0, 0x00, 0x52, 0xf7, 0xf7, 0x5c, 0x39, 0x27, 0x7c, 0x9a, 0x43, 0xb7, 0x87, 0xac, 0x9f, 0xb1, 0x51, 0x6e, 0x99, 0x62, 0x32, 0xa5, 0x09, 0x77, 0x4d, 0x1d, 0xc2, 0x1d, 0x8c, 0x05, 0x13, 0xf7, 0x84, 0x4b, 0x0a, 0x5b, 0x5f, 0x18, 0x95, 0x75, 0x81, 0xf9, 0x90, 0x44, 0xa1, 0x42, 0x23, 0xcc, 0xda, 0x8a, 0x28, 0x4d, 0xe1, 0x2f, 0xd4, 0x24, 0x26, 0x5f, 0xe5, 0x7b, 0x27, 0x02, 0x15, 0xf8, 0xfa, 0x9f, 0xf2, 0xbe, 0xa5, 0x17, 0x93, 0x4e, 0x48, 0x00, 0xa4, 0x7d, 0x34, 0x6f, 0xb6, 0xc3, 0x61, 0xcf, 0xba, 0xbe, 0xff, 0xab, 0xd9, 0xc4, 0x16, 0x4f, 0x45, 0x15, 0x6e, 0x24, 0x5c, 0x97, 0x7e, 0xdb, 0x47, 0x36, 0x42, 0xc3, 0x94, 0x0b, 0xe5, 0xad, 0x6f, 0xd1, 0xa7, 0x11, 0x9a, 0x7b, 0x18, 0xe9, 0x8d, 0x6d, 0xc8, 0x43, 0xe0, 0xd2, 0x54, 0xc9, 0x3d, 0x01, 0x46, 0xd1, 0x8e, 0x5c, 0x62, 0xed, 0xe1, 0x49, 0x0f, 0x89, 0xa6, 0x05, 0xeb, 0x45, 0x4f, 0x97, 0x47, 0x78, 0xcf, 0xae, 0x20, 0x93, 0x2e, 0x95, 0x47, 0x7b, 0xd0, 0x3b, 0xcd, 0xb9, 0x7d, 0x5b, 0xcb, 0x76, 0x33, 0x59, 0x42, 0xe9, 0x2e, 0xe6, 0x68, 0xf2, 0x31, 0xe6, 0x9c, 0x57, 0x0a, 0xc5, 0x44, 0x6d, 0x0f, 0x77, 0x40, 0x66, 0x73, 0x7f, 0xdf, 0x49, 0xf1, 0x0c, 0xeb, 0x1b, 0x52, 0xd6, 0xd8, 0xa4, 0x63, 0x98, 0x46, 0xa3, 0x37, 0x3a, 0x7c, 0x6f, 0x3b, 0x4b, 0x31, 0x59, 0xfe, 0x2e, 0x7a, 0xf7, 0xee, 0xe2, 0xf0, 0xdf, 0x17, 0x2d, 0x94, 0xd2, 0x55, 0xd0, 0x17, 0x65, 0x1d, 0xa3, 0x00, 0x90, 0x05, 0xe5, 0xea, 0xc3, 0x17, 0x6c, 0x09, 0x38, 0x9e, 0xe4, 0x0d, 0x70, 0x38, 0x3b, 0xd3, 0x71, 0x17, 0xec, 0xa0, 0x83, 0x59, 0x8a, 0x18, 0x01, 0xf5, 0x92, 0xd0, 0x57, 0x18, 0x6e, 0x56, 0x8e, 0x24, 0x7c, 0x25, 0x2b, 0xe4, 0xb1, 0x4f, 0x72, 0x3a, 0xb7, 0xdd, 0xb9, 0x7a, 0xe9, 0x76, 0x8c, 0x26, 0x82, 0xfd, 0x63, 0xac, 0xc3, 0x00, 0x77, 0x9f, 0xe0, 0x4e, 0x2b, 0x88, 0x87, 0x47, 0x51, 0x34, 0x6c, 0x9e, 0x0f, 0x97, 0xa2, 0xa2, 0x16, 0x77, 0x2f, 0xf9, 0x62, 0x5c, 0x33, 0xbd, 0x7e, 0x29, 0xfe, 0xd8, 0x00, 0x3a, 0x08, 0xdb, 0xd3, 0x3b, 0x5d, 0x17, 0x89, 0x9c, 0x94, 0x3c, 0x25, 0xe9, 0x5a, 0xd7, 0x54, 0xfb, 0x63, 0x2e, 0x04, 0x7c, 0x11, 0x2a, 0xf7, 0xf7, 0xce, 0xba, 0x72, 0x36, 0x2e, 0x1a, 0x3d, 0xdd, 0x29, 0x35, 0xaa, 0xf7, 0xf8, 0x18, 0xa2, 0x7c, };
11499 static const u8 ed25519_500_test_vectors_expected_sig[] = {
11500 	0xa6, 0x55, 0x45, 0xcf, 0x3d, 0xf4, 0x56, 0xb2, 0x8d, 0x83, 0xa6, 0xd9, 0x4c, 0x03, 0x6a, 0x19, 0xd0, 0xd2, 0x9f, 0xb0, 0x65, 0xed, 0xc2, 0x7e, 0x5e, 0x93, 0xa1, 0xf4, 0x02, 0x79, 0x89, 0x7e, 0x1c, 0x6f, 0x25, 0x95, 0x9a, 0x72, 0x5a, 0xba, 0xbc, 0x87, 0xcf, 0x2a, 0xe7, 0x27, 0xf3, 0x46, 0x7b, 0x79, 0x57, 0x0e, 0x90, 0x27, 0x11, 0x91, 0x71, 0x91, 0xd9, 0xcb, 0x0d, 0x2d, 0x66, 0x0c, };
11501 static const ec_test_case ed25519_500_test_case = {
11502 	.name = "EDDSA25519-SHA512/wei25519 500",
11503 	.ec_str_p = &wei25519_str_params,
11504 	.priv_key = ed25519_500_test_vectors_priv_key,
11505 	.priv_key_len = sizeof(ed25519_500_test_vectors_priv_key),
11506 	.nn_random = NULL,
11507 	.hash_type = SHA512,
11508 	.msg = (const char *)ed25519_500_test_vectors_message,
11509 	.msglen = sizeof(ed25519_500_test_vectors_message),
11510 	.sig_type = EDDSA25519,
11511 	.exp_sig = ed25519_500_test_vectors_expected_sig,
11512 	.exp_siglen = sizeof(ed25519_500_test_vectors_expected_sig),
11513 	.adata = NULL,
11514 	.adata_len = 0
11515 };
11516 
11517 /************************************************/
11518 static const u8 ed25519_501_test_vectors_priv_key[] = {
11519 	0xb8, 0x34, 0xc6, 0xe0, 0xfa, 0xcb, 0xff, 0x58, 0x0d, 0xd3, 0xb2, 0x37, 0x53, 0x95, 0x9a, 0x4c, 0x21, 0x54, 0xc2, 0x19, 0x52, 0x1b, 0x3d, 0x27, 0x03, 0x5d, 0x07, 0x1f, 0x65, 0x99, 0xbd, 0x02, };
11520 static const u8 ed25519_501_test_vectors_message[] = {
11521 	0x6c, 0xf1, 0x47, 0xb1, 0x60, 0x55, 0x28, 0xa3, 0x6b, 0xe7, 0x57, 0x16, 0xa1, 0x4b, 0x42, 0x0b, 0xcf, 0x06, 0x7c, 0x03, 0xf1, 0xcf, 0xe9, 0xc4, 0x40, 0x2f, 0x14, 0x98, 0x7f, 0xbf, 0xc9, 0xd3, 0xec, 0xc3, 0xcc, 0xf4, 0xf8, 0xd2, 0xd0, 0x3a, 0x55, 0x90, 0x0b, 0x8d, 0xc7, 0x9a, 0xf3, 0xb6, 0xe7, 0x74, 0x36, 0xf6, 0x9b, 0x14, 0x17, 0xad, 0x4b, 0x68, 0xfd, 0x44, 0xe5, 0xe3, 0x33, 0xed, 0x90, 0xea, 0x79, 0x43, 0xfb, 0xd1, 0x12, 0x26, 0x09, 0xec, 0x8f, 0xf6, 0xbb, 0x25, 0xe4, 0x2e, 0x99, 0x14, 0xf5, 0x92, 0x0f, 0xc7, 0x2c, 0x4d, 0x01, 0x3b, 0x6a, 0x96, 0x85, 0xc9, 0x96, 0xfb, 0xd8, 0x35, 0x2a, 0xaf, 0xb1, 0x84, 0xc2, 0x2d, 0x9e, 0x47, 0x87, 0x1a, 0x52, 0x80, 0xe4, 0xab, 0x7d, 0xd6, 0xa5, 0xcf, 0xd1, 0x0a, 0x59, 0x94, 0xa2, 0x00, 0xf6, 0x70, 0xe0, 0xb6, 0x22, 0xa9, 0x39, 0x4d, 0x47, 0x93, 0xd0, 0xa4, 0x20, 0xe7, 0xd8, 0x80, 0x6c, 0xb1, 0x27, 0xc7, 0xac, 0x69, 0x0d, 0x45, 0xa2, 0xe9, 0x41, 0x66, 0xce, 0xa6, 0x72, 0xbc, 0xd9, 0x82, 0xb0, 0xe9, 0xba, 0xad, 0x56, 0x31, 0x2d, 0x25, 0x70, 0xdd, 0xde, 0x7e, 0x0b, 0x9e, 0x7f, 0x47, 0x13, 0x6f, 0x04, 0x81, 0xd0, 0x0f, 0x66, 0xa2, 0xaa, 0xca, 0x4d, 0x1b, 0x09, 0xd7, 0xce, 0x6c, 0x5a, 0x98, 0xa7, 0x6b, 0x68, 0xcd, 0x97, 0xd5, 0x79, 0x39, 0x68, 0xd6, 0x67, 0x07, 0x3f, 0x82, 0x17, 0xf9, 0x05, 0x47, 0x35, 0x34, 0x0f, 0x9b, 0x14, 0x9c, 0x0d, 0xce, 0x84, 0x5b, 0x09, 0x9e, 0x88, 0xd0, 0x70, 0x96, 0x80, 0xf0, 0xf7, 0x76, 0x03, 0xff, 0x0a, 0x23, 0x31, 0xc5, 0x58, 0xfc, 0x36, 0xd5, 0xf2, 0x4d, 0xa9, 0xa6, 0x2d, 0x69, 0xaf, 0x51, 0x90, 0xd2, 0x1b, 0x5c, 0x85, 0x7a, 0x1e, 0x08, 0xf0, 0x14, 0xc6, 0xd4, 0x56, 0x46, 0x86, 0x65, 0xa7, 0xf8, 0x45, 0xc6, 0x6f, 0x91, 0x11, 0xf9, 0xc0, 0x98, 0xc6, 0x89, 0x40, 0xef, 0xcd, 0x87, 0xb6, 0x57, 0x07, 0x0c, 0xb9, 0x16, 0x4b, 0xc9, 0x74, 0x3a, 0xce, 0xb7, 0x43, 0x9a, 0x0d, 0x01, 0xc0, 0x06, 0x2a, 0x11, 0xaf, 0x2e, 0x11, 0x34, 0x93, 0x97, 0xf5, 0xd1, 0x52, 0x87, 0x2b, 0x13, 0xc5, 0xab, 0x32, 0xf5, 0x1c, 0xc5, 0x8f, 0x14, 0x75, 0xec, 0x82, 0xac, 0x67, 0x15, 0x61, 0xdc, 0xbd, 0x34, 0x3c, 0xfb, 0x3c, 0x5f, 0x78, 0xd0, 0xfc, 0x73, 0x05, 0x3c, 0x60, 0x04, 0xb0, 0xa4, 0xca, 0x3f, 0x20, 0x43, 0xff, 0x4b, 0x0c, 0x54, 0x27, 0x5c, 0x4f, 0xcb, 0x9c, 0xad, 0xc6, 0xba, 0xab, 0xe5, 0x7b, 0x1d, 0x5a, 0xcd, 0x53, 0x1e, 0x97, 0x2e, 0xf9, 0x33, 0x51, 0x36, 0xcd, 0x1d, 0x65, 0x51, 0x2b, 0xa1, 0xf5, 0xb6, 0xcc, 0xc4, 0xb6, 0x6b, 0x42, 0x50, 0xaa, 0xfa, 0x29, 0x67, 0xdd, 0x42, 0x11, 0xa2, 0x74, 0x2e, 0x0f, 0x17, 0x7d, 0x8f, 0x40, 0x63, 0x89, 0x9f, 0x61, 0x81, 0x5c, 0xbe, 0x6d, 0x8f, 0xbf, 0xcd, 0xf7, 0x48, 0x12, 0xbd, 0x40, 0xcc, 0x10, 0x08, 0x4e, 0x46, 0xa9, 0x9a, 0xc1, 0x28, 0x05, 0x8e, 0xaf, 0x16, 0xa4, 0x9a, 0x24, 0xb6, 0xae, 0x22, 0x8e, 0xcf, 0x01, 0x09, 0xc5, 0x2d, 0xfc, 0x06, 0xe3, 0x7d, 0x6a, 0x33, 0x3b, 0xcb, 0x24, 0xab, 0xa3, 0x12, 0x16, 0x4c, 0x6c, 0x02, 0x90, 0x48, 0x5d, 0x25, 0x12, 0x80, 0x53, 0x8c, 0xe9, 0x54, 0x1c, 0x09, 0x16, 0x64, 0x0e, 0x36, 0xd6, 0x92, 0x9d, 0xcd, 0x95, 0x88, 0xeb, 0x99, 0x57, 0x7f, 0x5f, 0x6d, 0x82, 0xbc, 0xbb, 0x19, 0x88, 0x26, 0x26, 0x7e, 0x49, 0xf5, 0xda, 0xff, 0x2c, 0x0d, };
11522 static const u8 ed25519_501_test_vectors_expected_sig[] = {
11523 	0x0f, 0x19, 0xb7, 0x06, 0x6d, 0x57, 0x92, 0x32, 0x8a, 0x98, 0x00, 0xd9, 0xd4, 0xf8, 0xf6, 0x7d, 0x5b, 0x08, 0x9b, 0x54, 0x12, 0x26, 0xa1, 0x67, 0xda, 0xcd, 0x43, 0x9f, 0xa4, 0x85, 0xb0, 0x02, 0x5a, 0x5d, 0xc7, 0xf2, 0xc7, 0xe2, 0x3f, 0xc4, 0xa5, 0xc6, 0x86, 0x9e, 0x76, 0x19, 0xd3, 0x56, 0x39, 0x97, 0x00, 0xc9, 0x36, 0x50, 0xe8, 0x9c, 0xd2, 0x5b, 0x90, 0xfb, 0x99, 0x25, 0xe3, 0x04, };
11524 static const ec_test_case ed25519_501_test_case = {
11525 	.name = "EDDSA25519-SHA512/wei25519 501",
11526 	.ec_str_p = &wei25519_str_params,
11527 	.priv_key = ed25519_501_test_vectors_priv_key,
11528 	.priv_key_len = sizeof(ed25519_501_test_vectors_priv_key),
11529 	.nn_random = NULL,
11530 	.hash_type = SHA512,
11531 	.msg = (const char *)ed25519_501_test_vectors_message,
11532 	.msglen = sizeof(ed25519_501_test_vectors_message),
11533 	.sig_type = EDDSA25519,
11534 	.exp_sig = ed25519_501_test_vectors_expected_sig,
11535 	.exp_siglen = sizeof(ed25519_501_test_vectors_expected_sig),
11536 	.adata = NULL,
11537 	.adata_len = 0
11538 };
11539 
11540 /************************************************/
11541 static const u8 ed25519_502_test_vectors_priv_key[] = {
11542 	0x22, 0x69, 0xa5, 0xd8, 0xf7, 0xac, 0x2c, 0xd9, 0x04, 0x8f, 0x5f, 0x49, 0xe3, 0x49, 0xe5, 0xc4, 0x35, 0xa1, 0x59, 0xb3, 0x19, 0xfe, 0x3b, 0x30, 0xbf, 0xac, 0x8d, 0x0d, 0x50, 0x59, 0x43, 0xf4, };
11543 static const u8 ed25519_502_test_vectors_message[] = {
11544 	0x71, 0x53, 0xd4, 0xd9, 0xe6, 0x41, 0xaa, 0x61, 0x92, 0x0d, 0xb0, 0xff, 0x4b, 0xd5, 0x37, 0xa6, 0xd6, 0x13, 0x0a, 0x39, 0x65, 0x54, 0xcc, 0x94, 0x53, 0x76, 0x98, 0xf9, 0xca, 0xd1, 0x6b, 0x99, 0xee, 0xbe, 0xfa, 0x5f, 0x27, 0x76, 0xf2, 0xfe, 0xaf, 0xf6, 0xbd, 0x9a, 0x69, 0x04, 0x12, 0x0c, 0x67, 0xe0, 0x88, 0x3f, 0x6b, 0x96, 0xbb, 0xbb, 0x19, 0x5e, 0x95, 0xae, 0xc7, 0x53, 0xb6, 0x99, 0xba, 0xb3, 0xd0, 0x39, 0x44, 0xc1, 0x3c, 0x72, 0xfc, 0x84, 0xe3, 0xf2, 0xcb, 0xf6, 0x29, 0x6f, 0x64, 0x55, 0x49, 0x11, 0x1c, 0x93, 0xfa, 0xe1, 0xa7, 0x59, 0xbf, 0xcd, 0x16, 0xfc, 0x09, 0xe6, 0x0b, 0xb9, 0x78, 0x55, 0x35, 0xad, 0x27, 0xda, 0x24, 0x4e, 0xf2, 0xf8, 0x57, 0xf2, 0xde, 0x99, 0xa6, 0xe9, 0x21, 0x88, 0x89, 0x0e, 0x45, 0x2c, 0x7f, 0x5b, 0x9e, 0x3a, 0x4b, 0x96, 0x8e, 0x11, 0x74, 0x3b, 0x6f, 0xc7, 0xfa, 0xf1, 0x27, 0x5e, 0x53, 0x60, 0xa5, 0x46, 0x89, 0x41, 0x79, 0x78, 0x94, 0xd7, 0x70, 0xfa, 0x7d, 0xa3, 0x64, 0xa3, 0x37, 0x30, 0x22, 0x39, 0xfe, 0x83, 0xae, 0x0b, 0x0d, 0x08, 0x4a, 0xa1, 0x2a, 0xcd, 0xc6, 0x34, 0x62, 0x52, 0x4e, 0x0e, 0xb1, 0x0f, 0xef, 0xe8, 0x1b, 0xa9, 0x6f, 0x71, 0xf2, 0x75, 0xf3, 0x44, 0x9a, 0x3f, 0x8d, 0xb2, 0x1d, 0x58, 0x74, 0x9a, 0x38, 0x85, 0x3d, 0x39, 0xb0, 0xad, 0x8e, 0x69, 0x89, 0x1b, 0xd2, 0x04, 0xdf, 0xca, 0x8f, 0x6c, 0x23, 0x9d, 0xc9, 0xa0, 0xac, 0x27, 0xf5, 0x4d, 0xb4, 0x23, 0x8d, 0x47, 0x06, 0xdf, 0x11, 0xd6, 0x07, 0x36, 0x9d, 0xc7, 0xf7, 0x04, 0xda, 0x1d, 0x39, 0xf2, 0xe8, 0x2a, 0xf8, 0xc2, 0x83, 0xd2, 0x20, 0xc1, 0x24, 0x31, 0xf5, 0x6d, 0x80, 0x30, 0x69, 0xb4, 0xac, 0xb7, 0x70, 0x81, 0xc0, 0x31, 0xae, 0x33, 0x19, 0xfc, 0x77, 0xfc, 0xa7, 0x84, 0x50, 0x97, 0xfd, 0x72, 0x7a, 0xd0, 0xd0, 0x80, 0x89, 0x5b, 0xba, 0x23, 0xe8, 0x73, 0xd2, 0xde, 0xf8, 0xcd, 0xc2, 0x16, 0xc3, 0xee, 0xd6, 0x1b, 0x08, 0x76, 0x1b, 0xb9, 0xeb, 0xce, 0x02, 0x82, 0xcf, 0x50, 0x2a, 0xaf, 0x6c, 0xe7, 0xe8, 0xc0, 0x58, 0x63, 0x79, 0x58, 0xc3, 0xea, 0x1b, 0x72, 0xfe, 0x6e, 0x8d, 0xf8, 0xd3, 0x7a, 0xc0, 0x55, 0xdb, 0x69, 0x92, 0x58, 0x7f, 0xab, 0xbd, 0xc4, 0x67, 0xf5, 0x24, 0x75, 0x64, 0x4f, 0x91, 0x88, 0x63, 0xaf, 0x62, 0x04, 0x92, 0xf3, 0x46, 0x80, 0xf2, 0x05, 0x6c, 0xbc, 0xab, 0x75, 0xe2, 0x32, 0x36, 0x26, 0xc0, 0x94, 0x75, 0x9c, 0x0e, 0x0e, 0x99, 0xef, 0x19, 0x75, 0x95, 0x27, 0x25, 0x06, 0x46, 0xad, 0x76, 0x01, 0x20, 0xba, 0x38, 0x66, 0x99, 0xd5, 0x39, 0x34, 0xf9, 0x56, 0xb8, 0xbb, 0xc7, 0x39, 0x5b, 0xb4, 0x96, 0xce, 0xb2, 0xdd, 0x22, 0x3c, 0x7b, 0x50, 0x1b, 0x92, 0xd3, 0x6a, 0x95, 0xf8, 0xf0, 0xa0, 0x2e, 0xb5, 0xba, 0x4d, 0xdd, 0xf1, 0x66, 0xb9, 0xb9, 0x5b, 0x4a, 0x59, 0xe7, 0x2a, 0x30, 0xc6, 0x3c, 0xf2, 0x1e, 0x60, 0x85, 0x75, 0x19, 0x23, 0xd5, 0x4b, 0x30, 0x28, 0x1e, 0x52, 0xa0, 0x96, 0x18, 0xe6, 0xf0, 0x23, 0xba, 0x0a, 0x21, 0x67, 0x5e, 0x7f, 0x98, 0x9b, 0x89, 0x91, 0x58, 0x8c, 0x96, 0xc2, 0xb5, 0x6a, 0x78, 0xf5, 0xd2, 0x94, 0x5a, 0x7b, 0xae, 0xb6, 0xa0, 0xc1, 0xbb, 0xd5, 0xd9, 0x5a, 0xf3, 0xee, 0x83, 0x0f, 0x58, 0x09, 0xc7, 0x94, 0xa1, 0x5a, 0xb4, 0xb5, 0xf8, 0x9d, 0xd2, 0xbe, 0x2d, 0xfd, 0xcd, 0x8f, 0xe0, 0x52, 0x0f, 0xda, 0x2b, 0x3f, 0x02, 0xa1, 0xac, 0x01, 0x55, };
11545 static const u8 ed25519_502_test_vectors_expected_sig[] = {
11546 	0xbe, 0x0f, 0xb3, 0x30, 0x8a, 0x07, 0x6a, 0x61, 0xa4, 0xa9, 0x2a, 0x97, 0xf6, 0xac, 0x55, 0x32, 0x71, 0x90, 0xe1, 0x34, 0x1d, 0x6d, 0xd4, 0x10, 0xd8, 0x6b, 0x41, 0xbd, 0xaf, 0x2d, 0x33, 0x74, 0x09, 0x3e, 0xf7, 0x20, 0xbd, 0xb7, 0x7f, 0xeb, 0x70, 0x14, 0xe0, 0xf7, 0x7d, 0x3b, 0x80, 0x96, 0x23, 0xc7, 0xca, 0x53, 0xe2, 0xae, 0x4b, 0x09, 0x71, 0x13, 0xe9, 0x6d, 0xb7, 0x7a, 0x2d, 0x08, };
11547 static const ec_test_case ed25519_502_test_case = {
11548 	.name = "EDDSA25519-SHA512/wei25519 502",
11549 	.ec_str_p = &wei25519_str_params,
11550 	.priv_key = ed25519_502_test_vectors_priv_key,
11551 	.priv_key_len = sizeof(ed25519_502_test_vectors_priv_key),
11552 	.nn_random = NULL,
11553 	.hash_type = SHA512,
11554 	.msg = (const char *)ed25519_502_test_vectors_message,
11555 	.msglen = sizeof(ed25519_502_test_vectors_message),
11556 	.sig_type = EDDSA25519,
11557 	.exp_sig = ed25519_502_test_vectors_expected_sig,
11558 	.exp_siglen = sizeof(ed25519_502_test_vectors_expected_sig),
11559 	.adata = NULL,
11560 	.adata_len = 0
11561 };
11562 
11563 /************************************************/
11564 static const u8 ed25519_503_test_vectors_priv_key[] = {
11565 	0xe9, 0x65, 0xb3, 0xf2, 0x57, 0x35, 0x66, 0x85, 0xc9, 0x8b, 0x42, 0xb9, 0x64, 0xa2, 0x53, 0xfc, 0x49, 0x53, 0x99, 0xcc, 0x94, 0xb0, 0x99, 0xc2, 0x44, 0x5f, 0xc8, 0x1c, 0x75, 0x9c, 0x68, 0xe5, };
11566 static const u8 ed25519_503_test_vectors_message[] = {
11567 	0x6f, 0x20, 0xa9, 0xad, 0x27, 0xe3, 0x0d, 0xac, 0x76, 0xb3, 0x0d, 0x4c, 0x19, 0xa5, 0xbd, 0x6d, 0xfd, 0x6d, 0x04, 0x92, 0x13, 0xf4, 0xbe, 0xcd, 0xd9, 0x63, 0xd7, 0x2b, 0x8b, 0x2d, 0xad, 0x68, 0x7b, 0x00, 0x38, 0x08, 0x20, 0x1d, 0x50, 0xf7, 0xdd, 0x6e, 0x59, 0x9e, 0xf5, 0x8c, 0xeb, 0x60, 0x68, 0xc5, 0x45, 0xed, 0x99, 0xb9, 0xe7, 0x63, 0xf9, 0xb0, 0xec, 0x1d, 0xb5, 0xfc, 0xbd, 0x7d, 0x49, 0x0a, 0x12, 0x1e, 0xce, 0xc6, 0xbb, 0xa1, 0xeb, 0x5e, 0xdb, 0xd6, 0xde, 0x85, 0x36, 0x47, 0x07, 0xc5, 0x5e, 0x30, 0x0c, 0x8b, 0x16, 0xbb, 0x25, 0x30, 0xf7, 0x08, 0x98, 0x13, 0x66, 0x89, 0xc9, 0x88, 0x59, 0x1d, 0x53, 0x91, 0xd9, 0xcc, 0x34, 0x7d, 0x79, 0x31, 0x06, 0x1a, 0x9b, 0x76, 0x96, 0xe2, 0xc9, 0xf3, 0x5b, 0xc0, 0xd3, 0x04, 0xa8, 0x1c, 0x2c, 0xf9, 0x54, 0xd9, 0xc3, 0xa8, 0x8a, 0x22, 0xe1, 0xd6, 0x7b, 0xbe, 0x0a, 0x85, 0x30, 0x84, 0x77, 0xf6, 0x29, 0x18, 0xc2, 0x5d, 0xb5, 0x04, 0xe4, 0x76, 0x2f, 0x0e, 0x3b, 0x42, 0x46, 0x00, 0x79, 0x08, 0xac, 0x70, 0x17, 0x79, 0x00, 0x6b, 0x77, 0xd7, 0x25, 0x10, 0xed, 0xc6, 0x9e, 0x17, 0xd0, 0xf6, 0x39, 0x4c, 0x77, 0xe5, 0x55, 0x18, 0x75, 0xa4, 0x46, 0xf8, 0x12, 0x33, 0x41, 0x5d, 0x0a, 0x91, 0xa0, 0x46, 0x0b, 0x51, 0xc4, 0x13, 0xd6, 0x44, 0xe8, 0x50, 0xf8, 0x55, 0x72, 0x81, 0xc4, 0x66, 0x99, 0xe5, 0x3b, 0x22, 0xa7, 0xc7, 0x3b, 0x06, 0x8e, 0xa3, 0x86, 0x52, 0xcf, 0xf3, 0xb0, 0xa7, 0xb8, 0xba, 0x30, 0x97, 0x1e, 0xab, 0x18, 0xfd, 0xbb, 0xd8, 0x73, 0x9e, 0xe1, 0xee, 0x0c, 0xd5, 0xcb, 0xfb, 0x7d, 0x5d, 0x41, 0x75, 0x7b, 0x63, 0x31, 0x27, 0x1f, 0xb7, 0x80, 0x97, 0x51, 0xe2, 0x03, 0x51, 0x3c, 0x99, 0x70, 0xf6, 0x6d, 0x91, 0xbc, 0x0c, 0xe0, 0x62, 0xf4, 0xfc, 0xb2, 0x8b, 0xe0, 0xa6, 0x99, 0x86, 0x7b, 0x79, 0x59, 0x4c, 0x64, 0x58, 0xa0, 0xd3, 0x07, 0xac, 0xac, 0x91, 0xf4, 0x13, 0xc4, 0x61, 0x58, 0x77, 0xdc, 0x53, 0xe1, 0xb0, 0x18, 0xda, 0x5c, 0xfc, 0xe1, 0xb6, 0x3f, 0x40, 0xbe, 0x1e, 0x55, 0x27, 0x4c, 0x43, 0x74, 0xcd, 0xfc, 0x21, 0x52, 0x44, 0x99, 0xa6, 0x83, 0xa2, 0x31, 0xad, 0xef, 0x77, 0x9d, 0x19, 0x21, 0x44, 0x0e, 0x5d, 0x3f, 0xdb, 0xd5, 0x03, 0x3d, 0xc9, 0x83, 0xcf, 0xc9, 0x31, 0xab, 0xe6, 0x38, 0xc3, 0x5d, 0x5a, 0x95, 0x86, 0x9e, 0x9f, 0xe3, 0xd9, 0x3e, 0xb9, 0x0b, 0xd1, 0x86, 0x1f, 0x85, 0x5c, 0xe1, 0xf6, 0x08, 0xb7, 0xbc, 0xad, 0x6b, 0x5e, 0x1b, 0xd9, 0x7e, 0xdc, 0x95, 0xed, 0x5d, 0xdc, 0xbc, 0xb7, 0x15, 0xd9, 0x19, 0xf5, 0xff, 0x77, 0xdf, 0x2d, 0xa4, 0x38, 0xf7, 0xa3, 0xa9, 0x82, 0x86, 0xdb, 0xd5, 0xb6, 0xe0, 0x43, 0xfc, 0x73, 0x72, 0xf6, 0x97, 0x04, 0xf0, 0x9d, 0x86, 0x55, 0x30, 0xf4, 0xf0, 0xed, 0xd3, 0x30, 0x0f, 0x18, 0x5b, 0x6d, 0x73, 0xd8, 0x71, 0x6d, 0x32, 0xd3, 0x2b, 0x1c, 0x9a, 0xc2, 0xdd, 0xf4, 0xf9, 0x02, 0xd3, 0xf2, 0x16, 0xd3, 0x5a, 0x33, 0xf3, 0x68, 0x09, 0x5d, 0xed, 0x10, 0xbe, 0x94, 0xbb, 0x53, 0xd6, 0xf2, 0x56, 0x56, 0x0f, 0xac, 0x2f, 0x4a, 0xf0, 0xed, 0xf5, 0xc5, 0xc7, 0x02, 0x14, 0x37, 0x77, 0x12, 0x6e, 0x7d, 0xe3, 0x2d, 0x07, 0x49, 0x39, 0x32, 0x66, 0x21, 0x29, 0xba, 0x0e, 0x7f, 0xc7, 0xcf, 0xb3, 0x6f, 0xd2, 0xca, 0x53, 0x16, 0x46, 0xe8, 0xcd, 0x22, 0x11, 0x85, 0x4f, 0xc5, 0x10, 0xaf, 0x3b, 0x1e, 0x8c, 0xaf, 0xde, 0x7a, };
11568 static const u8 ed25519_503_test_vectors_expected_sig[] = {
11569 	0x8d, 0x2b, 0xc4, 0xe1, 0xcd, 0x25, 0x6a, 0xad, 0x8a, 0x15, 0x1d, 0xec, 0x01, 0x0d, 0xc9, 0x3a, 0x5e, 0x5c, 0xca, 0x58, 0x29, 0x8d, 0xec, 0x49, 0xcb, 0xc9, 0xc4, 0x71, 0x7b, 0x5c, 0xfb, 0x54, 0x60, 0xd4, 0x30, 0xbe, 0x72, 0x6b, 0x0f, 0x30, 0x2c, 0xbd, 0x92, 0x6b, 0xee, 0xa1, 0x9a, 0xa3, 0xc9, 0x3a, 0xeb, 0x45, 0x2a, 0x44, 0xf6, 0x00, 0x7a, 0xf4, 0x9a, 0xdf, 0x2f, 0x05, 0xbb, 0x04, };
11570 static const ec_test_case ed25519_503_test_case = {
11571 	.name = "EDDSA25519-SHA512/wei25519 503",
11572 	.ec_str_p = &wei25519_str_params,
11573 	.priv_key = ed25519_503_test_vectors_priv_key,
11574 	.priv_key_len = sizeof(ed25519_503_test_vectors_priv_key),
11575 	.nn_random = NULL,
11576 	.hash_type = SHA512,
11577 	.msg = (const char *)ed25519_503_test_vectors_message,
11578 	.msglen = sizeof(ed25519_503_test_vectors_message),
11579 	.sig_type = EDDSA25519,
11580 	.exp_sig = ed25519_503_test_vectors_expected_sig,
11581 	.exp_siglen = sizeof(ed25519_503_test_vectors_expected_sig),
11582 	.adata = NULL,
11583 	.adata_len = 0
11584 };
11585 
11586 /************************************************/
11587 static const u8 ed25519_504_test_vectors_priv_key[] = {
11588 	0xbc, 0x3b, 0x1e, 0x0b, 0xf8, 0xd6, 0x9e, 0xa5, 0xb4, 0xcb, 0xbf, 0x10, 0xbb, 0x33, 0xfc, 0x95, 0x5a, 0xdc, 0xbe, 0x13, 0xfc, 0x20, 0xaf, 0x8a, 0x10, 0x87, 0x2c, 0xe9, 0xdf, 0x39, 0xd6, 0xbd, };
11589 static const u8 ed25519_504_test_vectors_message[] = {
11590 	0x4c, 0x73, 0xe0, 0x4a, 0xbe, 0x08, 0x19, 0xde, 0x1f, 0x84, 0xd7, 0x05, 0x41, 0xeb, 0x1b, 0xb6, 0x1c, 0x4f, 0x42, 0x92, 0x0e, 0x1f, 0x2d, 0x1d, 0x9e, 0x62, 0x81, 0xa8, 0xa2, 0xe8, 0xb3, 0xeb, 0x45, 0x53, 0x7d, 0x83, 0x96, 0x90, 0x27, 0xf9, 0x9e, 0xf0, 0xea, 0x27, 0xca, 0x08, 0x5b, 0x13, 0xf9, 0xdb, 0x48, 0x0f, 0x00, 0xc0, 0x2f, 0x3f, 0xd7, 0x42, 0x9d, 0xd5, 0x67, 0x70, 0x89, 0x53, 0xbb, 0xf3, 0xb9, 0xe8, 0xe2, 0xc6, 0xac, 0x4d, 0x32, 0x1f, 0xf8, 0xf9, 0xe4, 0xa3, 0x15, 0x47, 0x23, 0x08, 0x5a, 0x54, 0xe9, 0xc9, 0x57, 0x3c, 0xc7, 0x35, 0x0c, 0x09, 0xf8, 0x97, 0x3f, 0x94, 0x8b, 0x08, 0x73, 0x03, 0x73, 0x59, 0x7a, 0x5f, 0xd0, 0x34, 0x98, 0x21, 0xae, 0x0a, 0x3c, 0xd6, 0xc8, 0x49, 0x92, 0xb1, 0x89, 0x12, 0x8f, 0x34, 0x90, 0x98, 0x7e, 0x1e, 0x9a, 0xd4, 0xf6, 0x57, 0x4c, 0xa5, 0x38, 0xfd, 0xfd, 0x83, 0x28, 0x4c, 0x1e, 0xb0, 0x95, 0x3f, 0x24, 0xc0, 0x8f, 0x74, 0x93, 0x2d, 0x43, 0x64, 0xdb, 0xbe, 0xf9, 0x22, 0x54, 0x24, 0x40, 0xda, 0xe8, 0x04, 0x24, 0xa9, 0x2e, 0xae, 0xf2, 0x7c, 0x18, 0x89, 0xbd, 0x08, 0xc4, 0x4f, 0x9d, 0xf0, 0x3a, 0x3a, 0xf3, 0x0d, 0xff, 0xb4, 0x8f, 0xae, 0x44, 0x5e, 0x62, 0x5f, 0x4d, 0x92, 0x65, 0xcf, 0x38, 0x7a, 0x1d, 0xa3, 0x5f, 0xe4, 0xc2, 0x31, 0x50, 0x45, 0x35, 0xdb, 0x72, 0xea, 0x81, 0xa1, 0x86, 0x80, 0x5f, 0x85, 0x6e, 0xbe, 0x6a, 0x6a, 0x65, 0x24, 0x14, 0x32, 0x53, 0x0f, 0xe6, 0xc9, 0x60, 0xc5, 0xf9, 0xbe, 0x6c, 0x22, 0x95, 0x70, 0x60, 0x30, 0x4e, 0x9d, 0xd8, 0xef, 0xbc, 0x1e, 0x48, 0x2e, 0x7d, 0xdb, 0xd8, 0xaf, 0x03, 0xbf, 0x23, 0x82, 0x89, 0x9c, 0x98, 0x6d, 0x91, 0x66, 0x11, 0xe4, 0xf2, 0x7a, 0xe5, 0x2f, 0x81, 0x7e, 0xf0, 0x1b, 0x6a, 0x14, 0x1f, 0xe4, 0xf6, 0x85, 0xd9, 0x4d, 0xc8, 0xcd, 0x52, 0x83, 0x00, 0x43, 0x93, 0x45, 0x87, 0x70, 0x4c, 0x1e, 0x64, 0x2e, 0x8f, 0xe5, 0x6b, 0xe6, 0xd6, 0xb8, 0x5b, 0xf4, 0xa6, 0xfe, 0xb2, 0xb6, 0x85, 0x8f, 0x1f, 0x00, 0x7f, 0x99, 0xd3, 0x9e, 0xa0, 0x4c, 0x9f, 0xe5, 0xfa, 0x7e, 0xf1, 0xb9, 0x1f, 0x49, 0x5e, 0xd0, 0xe7, 0xfa, 0x42, 0x13, 0xdd, 0x68, 0xce, 0xa4, 0x2b, 0x67, 0x29, 0xf9, 0x50, 0x31, 0x90, 0x7e, 0x27, 0xc4, 0x40, 0x98, 0x09, 0x43, 0x86, 0xfa, 0xbf, 0xb0, 0x4a, 0xb9, 0xb4, 0xde, 0x3d, 0x68, 0x61, 0xde, 0x46, 0x23, 0x12, 0xc5, 0x9b, 0x27, 0xc7, 0x6f, 0x7b, 0x6a, 0x4f, 0xc7, 0x1e, 0xa0, 0xd5, 0xda, 0xf6, 0xb7, 0x32, 0x05, 0x21, 0xa6, 0x7e, 0x5c, 0xb3, 0x75, 0x04, 0x97, 0x6a, 0xd7, 0x3d, 0xae, 0x2d, 0x64, 0x9f, 0xeb, 0x75, 0xe2, 0xea, 0xdd, 0x34, 0x01, 0xa7, 0xf2, 0xf3, 0x6e, 0x16, 0xdf, 0xbf, 0xbd, 0xb2, 0xaf, 0x57, 0x16, 0xcb, 0xa1, 0xbc, 0xe2, 0x0c, 0xd4, 0x7c, 0xe1, 0xc1, 0xd7, 0xbe, 0x00, 0x69, 0x70, 0x01, 0xfb, 0xbe, 0xb4, 0x91, 0x5a, 0xa6, 0xe5, 0x39, 0x3b, 0x5a, 0xb2, 0x0e, 0x0f, 0x31, 0xf5, 0x11, 0x91, 0x49, 0xa2, 0xcb, 0x4c, 0x4d, 0x45, 0x2c, 0x81, 0x56, 0x11, 0x3a, 0xc7, 0x82, 0x4f, 0x84, 0xf0, 0x9a, 0xeb, 0x81, 0x20, 0x2e, 0x8d, 0xd3, 0xda, 0xc0, 0xaa, 0x89, 0x39, 0x9b, 0x5a, 0x38, 0xb1, 0xe2, 0x18, 0x30, 0x19, 0x60, 0xa3, 0x7d, 0x52, 0x63, 0x2e, 0xea, 0xef, 0xe3, 0x68, 0x74, 0x55, 0x46, 0x42, 0x88, 0xeb, 0x17, 0xd9, 0xe1, 0x9a, 0x3a, 0x72, 0xed, 0x9d, 0xe3, 0x2c, 0x17, 0xbe, 0x79, 0xa3, 0xb9, };
11591 static const u8 ed25519_504_test_vectors_expected_sig[] = {
11592 	0x6e, 0xf7, 0xf0, 0xe9, 0x1f, 0x2c, 0xc6, 0x71, 0x5f, 0x8e, 0x5a, 0x98, 0x57, 0x4b, 0x44, 0x00, 0xc2, 0x61, 0xa6, 0x43, 0xe0, 0x54, 0x5f, 0xf2, 0x67, 0x47, 0xf8, 0xe1, 0x73, 0x98, 0x99, 0xd7, 0x66, 0x40, 0xb6, 0x45, 0x1c, 0x43, 0xc1, 0xd0, 0x3a, 0x47, 0x75, 0xb5, 0x4f, 0xcf, 0x9b, 0xce, 0x18, 0xed, 0x3f, 0xcc, 0xad, 0x33, 0x8b, 0x77, 0x64, 0x02, 0x4f, 0xdf, 0xa2, 0xde, 0x82, 0x01, };
11593 static const ec_test_case ed25519_504_test_case = {
11594 	.name = "EDDSA25519-SHA512/wei25519 504",
11595 	.ec_str_p = &wei25519_str_params,
11596 	.priv_key = ed25519_504_test_vectors_priv_key,
11597 	.priv_key_len = sizeof(ed25519_504_test_vectors_priv_key),
11598 	.nn_random = NULL,
11599 	.hash_type = SHA512,
11600 	.msg = (const char *)ed25519_504_test_vectors_message,
11601 	.msglen = sizeof(ed25519_504_test_vectors_message),
11602 	.sig_type = EDDSA25519,
11603 	.exp_sig = ed25519_504_test_vectors_expected_sig,
11604 	.exp_siglen = sizeof(ed25519_504_test_vectors_expected_sig),
11605 	.adata = NULL,
11606 	.adata_len = 0
11607 };
11608 
11609 /************************************************/
11610 static const u8 ed25519_505_test_vectors_priv_key[] = {
11611 	0x10, 0x71, 0x8f, 0xa6, 0xe2, 0xd7, 0xf6, 0xed, 0x38, 0xfd, 0x66, 0xcb, 0x6d, 0xbf, 0xa0, 0x87, 0xe8, 0xf1, 0xe8, 0xa8, 0xa2, 0x4f, 0xab, 0x58, 0xd7, 0x9d, 0x79, 0x54, 0xb8, 0x72, 0x0c, 0x3e, };
11612 static const u8 ed25519_505_test_vectors_message[] = {
11613 	0x41, 0x25, 0x9b, 0x6e, 0xef, 0x13, 0xd6, 0xff, 0xe3, 0x3c, 0xdd, 0xe7, 0x99, 0xb9, 0x95, 0xc4, 0x0b, 0xe7, 0x82, 0xcf, 0x97, 0x84, 0x40, 0xb6, 0x6b, 0xe5, 0x1c, 0x44, 0x05, 0x82, 0xab, 0xd4, 0x2f, 0x52, 0x66, 0x96, 0xbb, 0x3c, 0xb9, 0x22, 0x65, 0xb1, 0xed, 0x0e, 0x4b, 0xba, 0x76, 0x4c, 0xae, 0x28, 0x39, 0x83, 0x0a, 0x25, 0x26, 0x35, 0xdc, 0x80, 0xce, 0x5f, 0x73, 0xd5, 0x21, 0xb3, 0xd6, 0xff, 0x03, 0xac, 0x30, 0xe1, 0x98, 0xad, 0x20, 0x56, 0x7e, 0x75, 0xa3, 0x4f, 0xa8, 0x25, 0xeb, 0xf9, 0x84, 0x15, 0x08, 0xda, 0x84, 0xcd, 0x67, 0x42, 0x36, 0xca, 0x7b, 0x43, 0xde, 0x35, 0x64, 0xc9, 0x4a, 0xb0, 0x79, 0x40, 0x8f, 0xd9, 0x41, 0x37, 0xce, 0x3f, 0x90, 0xa5, 0xdd, 0x5d, 0x3a, 0xc3, 0x9a, 0x05, 0xec, 0x86, 0x71, 0x5a, 0x8f, 0x02, 0x5e, 0x45, 0x39, 0xa7, 0x64, 0x0a, 0xb8, 0x88, 0x36, 0xf4, 0xef, 0xba, 0xbd, 0x5e, 0x16, 0x52, 0xc4, 0x9e, 0xa2, 0x16, 0x13, 0xac, 0xfe, 0x34, 0x3a, 0x88, 0x0e, 0xe5, 0xa4, 0x2f, 0x2f, 0x91, 0x34, 0xef, 0x4e, 0x37, 0x16, 0xb1, 0x6d, 0x13, 0x4a, 0x9c, 0x4c, 0x71, 0xc3, 0x9b, 0x3c, 0x1a, 0x85, 0x7d, 0x3c, 0x89, 0x43, 0x97, 0x83, 0xee, 0xf1, 0xed, 0xd7, 0x1b, 0xf4, 0x49, 0x2d, 0x05, 0xfd, 0x18, 0x67, 0x3a, 0x52, 0x42, 0xff, 0x41, 0x87, 0xb9, 0xde, 0x47, 0xad, 0x49, 0x68, 0xda, 0x49, 0xdb, 0xa5, 0xa6, 0x09, 0x2e, 0x95, 0xea, 0x27, 0xdd, 0xfc, 0x74, 0x48, 0xdc, 0xf5, 0x97, 0x2d, 0x9d, 0x22, 0x8d, 0x63, 0xe5, 0x29, 0x1b, 0xa6, 0xe6, 0xfb, 0xd0, 0x7e, 0x32, 0x41, 0xf9, 0x36, 0x6c, 0xa4, 0x97, 0x6b, 0xb0, 0x4b, 0x22, 0xd0, 0x1f, 0x0d, 0xba, 0xe7, 0x94, 0xfa, 0x9c, 0x1d, 0x90, 0x29, 0xf8, 0x8a, 0x83, 0x60, 0x2b, 0x0e, 0x0e, 0xc5, 0x5e, 0x22, 0xc3, 0x7b, 0x20, 0x11, 0x25, 0xca, 0xdb, 0x53, 0x41, 0xef, 0x73, 0xf6, 0xda, 0x1a, 0xbb, 0xe2, 0xb1, 0xc4, 0x75, 0xf0, 0x75, 0x03, 0x45, 0xb1, 0xbe, 0x42, 0x59, 0xd8, 0xc2, 0x85, 0x31, 0xff, 0xe7, 0x78, 0x86, 0x67, 0xc4, 0x10, 0xda, 0xc3, 0x39, 0x91, 0x8c, 0x86, 0x9b, 0x00, 0xab, 0x80, 0xf2, 0x0b, 0xf7, 0x99, 0x0d, 0x36, 0x6f, 0x9b, 0x3d, 0x5e, 0x8e, 0xb2, 0xf4, 0x8d, 0x7e, 0xd0, 0xe6, 0x4b, 0x85, 0xdc, 0x9f, 0xe3, 0xbb, 0x99, 0x8b, 0x1e, 0xec, 0xd1, 0x23, 0x1e, 0x90, 0x2d, 0x2d, 0x15, 0x2e, 0x09, 0xda, 0x2d, 0x25, 0x92, 0xbd, 0xb3, 0x2c, 0x8c, 0xd2, 0xe2, 0xc4, 0x89, 0x49, 0x6b, 0x29, 0x80, 0xc0, 0x3d, 0xbb, 0x09, 0xec, 0x7f, 0x8a, 0x4e, 0xa2, 0xc7, 0x02, 0x0f, 0x2a, 0x0f, 0xaa, 0x65, 0x7c, 0xd6, 0xce, 0xd4, 0x8d, 0x6d, 0xa2, 0x78, 0x64, 0xcf, 0x5e, 0x97, 0xee, 0xa9, 0xb3, 0xc2, 0xf0, 0xf3, 0x4a, 0xbf, 0x8d, 0x87, 0xbd, 0x2a, 0xde, 0xb6, 0x0c, 0x72, 0x72, 0xfc, 0x43, 0x06, 0xd9, 0x55, 0xbd, 0xc8, 0x02, 0x3d, 0x7d, 0x3d, 0xc2, 0xf3, 0xda, 0xfe, 0x9e, 0xbe, 0x8a, 0x8d, 0x13, 0x89, 0x65, 0xa7, 0xf6, 0xce, 0x93, 0x51, 0x7c, 0xd2, 0x09, 0x96, 0x63, 0xf6, 0x7c, 0x34, 0x55, 0x21, 0x76, 0xdd, 0xb5, 0x95, 0xac, 0x6e, 0xa5, 0x60, 0x9f, 0xeb, 0xcf, 0x24, 0xc7, 0xd6, 0x9d, 0x41, 0x27, 0x09, 0xe5, 0x78, 0x67, 0x0a, 0x21, 0xac, 0x8a, 0xfc, 0xcb, 0x8b, 0xf2, 0xb1, 0x8f, 0xf3, 0xaf, 0x7d, 0xe2, 0x1d, 0xc7, 0x1d, 0x50, 0xd6, 0x0d, 0x37, 0xb6, 0xed, 0x72, 0x9d, 0xb0, 0x4b, 0xef, 0xf7, 0xd3, 0x4b, 0x29, 0x20, 0xd8, 0x75, 0x51, 0xce, 0x15, };
11614 static const u8 ed25519_505_test_vectors_expected_sig[] = {
11615 	0xe1, 0x65, 0x91, 0x86, 0xf1, 0xf7, 0x6f, 0xe4, 0x3a, 0xc8, 0xa1, 0x17, 0x03, 0x36, 0x0f, 0xbe, 0xff, 0x53, 0xb5, 0xe5, 0x7b, 0x59, 0x74, 0xaa, 0xa0, 0x8e, 0x25, 0x75, 0x57, 0x9c, 0x27, 0x08, 0x4c, 0xf6, 0x80, 0x2e, 0x7c, 0x20, 0x63, 0x47, 0x31, 0x44, 0x75, 0xb6, 0x03, 0x19, 0x74, 0x94, 0xe7, 0xd6, 0x1f, 0xe4, 0xb1, 0xee, 0x7b, 0x78, 0xe1, 0x8d, 0x94, 0x46, 0x93, 0x52, 0xdf, 0x0c, };
11616 static const ec_test_case ed25519_505_test_case = {
11617 	.name = "EDDSA25519-SHA512/wei25519 505",
11618 	.ec_str_p = &wei25519_str_params,
11619 	.priv_key = ed25519_505_test_vectors_priv_key,
11620 	.priv_key_len = sizeof(ed25519_505_test_vectors_priv_key),
11621 	.nn_random = NULL,
11622 	.hash_type = SHA512,
11623 	.msg = (const char *)ed25519_505_test_vectors_message,
11624 	.msglen = sizeof(ed25519_505_test_vectors_message),
11625 	.sig_type = EDDSA25519,
11626 	.exp_sig = ed25519_505_test_vectors_expected_sig,
11627 	.exp_siglen = sizeof(ed25519_505_test_vectors_expected_sig),
11628 	.adata = NULL,
11629 	.adata_len = 0
11630 };
11631 
11632 /************************************************/
11633 static const u8 ed25519_506_test_vectors_priv_key[] = {
11634 	0xc1, 0xd4, 0x72, 0x4c, 0x6c, 0xb1, 0xbc, 0x67, 0x23, 0xb2, 0xb4, 0x30, 0x34, 0x27, 0x8b, 0x3c, 0x5b, 0x48, 0xfe, 0xd7, 0xf8, 0xa3, 0xcc, 0x23, 0x18, 0x03, 0x3e, 0x75, 0x52, 0x04, 0x73, 0x51, };
11635 static const u8 ed25519_506_test_vectors_message[] = {
11636 	0xde, 0xee, 0x99, 0xd7, 0xa7, 0x7d, 0x43, 0x00, 0xc1, 0x7a, 0xec, 0x1a, 0xb3, 0x23, 0xc5, 0x71, 0xc6, 0xe9, 0xe7, 0x3a, 0x43, 0x49, 0x1a, 0x3c, 0x78, 0x88, 0xb7, 0x6f, 0xc0, 0x3e, 0xc4, 0x3d, 0x07, 0xaf, 0x42, 0xa0, 0x5a, 0x2a, 0xa3, 0x22, 0xd0, 0x0c, 0x85, 0x60, 0xac, 0xef, 0x31, 0x41, 0x06, 0xb1, 0x0b, 0x9b, 0xd1, 0x26, 0x54, 0x35, 0x7f, 0xfa, 0x26, 0xf2, 0x39, 0x00, 0x50, 0xda, 0x63, 0xd6, 0x68, 0xc9, 0xe2, 0xdf, 0x54, 0x8f, 0x87, 0x63, 0x9e, 0x09, 0x6a, 0x35, 0x85, 0x3f, 0x82, 0xe7, 0x61, 0xfd, 0x71, 0x1d, 0x2a, 0x26, 0x54, 0x38, 0xf5, 0xd4, 0xdb, 0x5e, 0x32, 0x77, 0x57, 0x08, 0x15, 0x0d, 0xa6, 0xcb, 0x68, 0x6a, 0x2b, 0x4c, 0xa2, 0x11, 0xd7, 0xf0, 0x0d, 0xc0, 0xab, 0xcb, 0x2c, 0xa1, 0x50, 0xe7, 0x91, 0x11, 0x6a, 0x10, 0xa5, 0xef, 0xcf, 0xf3, 0x51, 0x4d, 0xab, 0x8e, 0xd8, 0x0a, 0x70, 0x92, 0xc3, 0xa0, 0x15, 0x15, 0x2c, 0xb2, 0x5d, 0x9f, 0x86, 0xec, 0x0d, 0x1c, 0xa6, 0x7d, 0xda, 0xb4, 0x4d, 0x64, 0xee, 0xb1, 0xf9, 0x31, 0xbf, 0xab, 0x2a, 0xb1, 0x88, 0x95, 0x6c, 0x74, 0x3d, 0xb4, 0x81, 0x48, 0x08, 0xc5, 0xcd, 0xe1, 0xb0, 0x74, 0x5b, 0x3e, 0xdd, 0x34, 0x0e, 0xb0, 0x3f, 0xfc, 0xc8, 0x0a, 0x78, 0xf3, 0xdb, 0x31, 0x0f, 0x4f, 0x5c, 0x20, 0x00, 0x9f, 0xc0, 0x27, 0x9c, 0x2c, 0x1b, 0xcb, 0x3c, 0xed, 0xf9, 0x90, 0xbd, 0x0e, 0x20, 0xc6, 0xf9, 0xfb, 0x75, 0x15, 0xad, 0x6e, 0x93, 0x3b, 0x07, 0xe9, 0x9d, 0xa6, 0xac, 0x32, 0xb9, 0x71, 0x41, 0x18, 0x7e, 0xf6, 0x3b, 0xdb, 0x10, 0x62, 0xe3, 0x72, 0x20, 0xa4, 0xdc, 0xd4, 0x19, 0xd6, 0x24, 0x4c, 0xdc, 0xc3, 0x4e, 0xa4, 0x1d, 0x0b, 0xcb, 0xc3, 0x13, 0x8b, 0x1d, 0x54, 0xae, 0xfc, 0x01, 0x90, 0xe3, 0x0b, 0x18, 0x7d, 0xb0, 0x73, 0xaa, 0x7d, 0x6c, 0xfe, 0x04, 0xbd, 0x3f, 0xd2, 0xac, 0x00, 0x31, 0x3e, 0x3d, 0xdd, 0x64, 0xa1, 0x81, 0x93, 0x5c, 0xa4, 0xb8, 0xb2, 0xa8, 0x5d, 0x36, 0xbc, 0x27, 0xd9, 0x7b, 0x76, 0x26, 0x76, 0x7b, 0x93, 0xee, 0x38, 0xde, 0xf8, 0xb6, 0xb2, 0xc8, 0xda, 0x9b, 0x00, 0x26, 0x36, 0x14, 0x34, 0x2f, 0xaa, 0x9d, 0x3e, 0x73, 0x8d, 0x27, 0x13, 0xc4, 0x5f, 0xfb, 0xee, 0xf8, 0xc8, 0x4b, 0xcd, 0xbc, 0x8d, 0xa4, 0x30, 0x9c, 0x84, 0x45, 0x53, 0x0f, 0x5c, 0x61, 0x7d, 0xc8, 0x66, 0x25, 0x1f, 0x54, 0x89, 0x50, 0xa1, 0x4f, 0x07, 0x5a, 0xa3, 0x11, 0x7f, 0x96, 0xe4, 0x1f, 0x89, 0x9d, 0xbe, 0x73, 0x40, 0xb1, 0xd9, 0x0a, 0x13, 0x52, 0xd3, 0xb8, 0xfb, 0x41, 0xb7, 0x9f, 0x16, 0xa8, 0x2b, 0xc2, 0xe4, 0xa1, 0x93, 0xb8, 0xa7, 0x23, 0x24, 0x00, 0x99, 0x6b, 0x73, 0xb1, 0xfc, 0x00, 0xb2, 0xec, 0x1c, 0x66, 0x75, 0x77, 0xf8, 0x28, 0x24, 0xd3, 0x9f, 0xb7, 0xf6, 0xe7, 0x69, 0x2d, 0xcd, 0x97, 0xb1, 0xd8, 0xce, 0x94, 0x08, 0x3c, 0xa1, 0x97, 0xe9, 0xa5, 0xd4, 0x0f, 0xad, 0xff, 0x0b, 0x9a, 0xc5, 0x7e, 0x9d, 0xe7, 0x61, 0xc1, 0x56, 0xe6, 0xd3, 0x1d, 0x52, 0xc3, 0x32, 0xd5, 0x13, 0xe9, 0xf5, 0x86, 0x97, 0xdc, 0xbd, 0xd8, 0x0a, 0x5e, 0x42, 0xc5, 0x51, 0x70, 0x2c, 0x3d, 0xe7, 0xbe, 0xcc, 0xc3, 0xdb, 0x84, 0x5b, 0x1a, 0x04, 0xc8, 0xcb, 0xd4, 0x16, 0x95, 0xea, 0x74, 0x28, 0xab, 0xba, 0x89, 0xe0, 0xdc, 0xe3, 0xe3, 0xd9, 0xe7, 0x02, 0x30, 0xae, 0x91, 0x47, 0xc2, 0xb8, 0x85, 0x59, 0xdc, 0x69, 0x5d, 0x68, 0x09, 0xa5, 0x1c, 0xcb, 0xc1, 0xdd, 0x9e, 0x08, 0x9c, 0x58, 0x5f, };
11637 static const u8 ed25519_506_test_vectors_expected_sig[] = {
11638 	0xd3, 0x7a, 0x6e, 0xc8, 0x2e, 0xd4, 0x5c, 0xa9, 0xb4, 0x85, 0x5d, 0xe9, 0xcb, 0x94, 0x25, 0x64, 0xe8, 0x83, 0xff, 0x70, 0xa7, 0x9b, 0x8e, 0x71, 0x2d, 0x5f, 0x60, 0x4e, 0xc8, 0x97, 0x4d, 0xe5, 0x36, 0x3a, 0xc8, 0x49, 0xcb, 0xab, 0x28, 0xe7, 0xae, 0xef, 0xf2, 0x8e, 0xd3, 0xf2, 0xd1, 0x4b, 0x60, 0x8b, 0x31, 0x46, 0xc2, 0xef, 0xe0, 0x73, 0x5a, 0xd8, 0x15, 0xc7, 0xd7, 0x5a, 0x1a, 0x01, };
11639 static const ec_test_case ed25519_506_test_case = {
11640 	.name = "EDDSA25519-SHA512/wei25519 506",
11641 	.ec_str_p = &wei25519_str_params,
11642 	.priv_key = ed25519_506_test_vectors_priv_key,
11643 	.priv_key_len = sizeof(ed25519_506_test_vectors_priv_key),
11644 	.nn_random = NULL,
11645 	.hash_type = SHA512,
11646 	.msg = (const char *)ed25519_506_test_vectors_message,
11647 	.msglen = sizeof(ed25519_506_test_vectors_message),
11648 	.sig_type = EDDSA25519,
11649 	.exp_sig = ed25519_506_test_vectors_expected_sig,
11650 	.exp_siglen = sizeof(ed25519_506_test_vectors_expected_sig),
11651 	.adata = NULL,
11652 	.adata_len = 0
11653 };
11654 
11655 /************************************************/
11656 static const u8 ed25519_507_test_vectors_priv_key[] = {
11657 	0x37, 0xc0, 0x70, 0xd4, 0xa5, 0x3b, 0x13, 0xbe, 0x76, 0x06, 0x35, 0x11, 0x0d, 0x1b, 0xd4, 0xf0, 0x19, 0x20, 0x22, 0x5a, 0xfa, 0xbe, 0xc5, 0x76, 0xfa, 0xae, 0xc9, 0x10, 0xf2, 0x92, 0x6d, 0x1a, };
11658 static const u8 ed25519_507_test_vectors_message[] = {
11659 	0x10, 0xc6, 0x46, 0x44, 0x7f, 0x81, 0xad, 0x94, 0xd0, 0x15, 0xd8, 0x6d, 0x0d, 0x98, 0xb2, 0x45, 0x2d, 0xca, 0x60, 0xa4, 0x7a, 0xb3, 0x52, 0x64, 0x03, 0x5e, 0x33, 0xa0, 0x94, 0x2b, 0x95, 0x4e, 0x3e, 0x23, 0xb9, 0x1d, 0x81, 0x23, 0xb8, 0x59, 0x3c, 0x6a, 0xf7, 0xc8, 0xd3, 0xec, 0xd2, 0x90, 0xe0, 0xe5, 0xee, 0x36, 0xfd, 0x4e, 0x53, 0xb7, 0xbe, 0x63, 0x3a, 0x6c, 0xf0, 0x27, 0xa5, 0xac, 0x3f, 0x0f, 0x67, 0x9e, 0xb1, 0xbd, 0xd2, 0x10, 0xa3, 0x8e, 0xa6, 0xe4, 0x8b, 0x05, 0x58, 0xe3, 0x03, 0x01, 0x0a, 0xf4, 0x74, 0xe7, 0xf6, 0xdf, 0x2a, 0x4e, 0x45, 0x76, 0x99, 0xfc, 0x38, 0xe3, 0x69, 0x38, 0xb0, 0x5f, 0xfc, 0xaa, 0x1b, 0x69, 0x4e, 0x32, 0xf3, 0xd1, 0xb2, 0xcc, 0x5d, 0x00, 0xcf, 0x25, 0x6f, 0x12, 0x18, 0x4c, 0x87, 0x3e, 0x51, 0x90, 0x89, 0xec, 0x1d, 0xf1, 0x5b, 0x0d, 0xc7, 0x6e, 0x7b, 0xfe, 0x90, 0x78, 0x0d, 0xf5, 0x81, 0x36, 0xfe, 0x59, 0x7f, 0xce, 0x89, 0x4c, 0xa5, 0x63, 0xe0, 0x8e, 0xfa, 0x0f, 0x2d, 0x4d, 0x20, 0x8b, 0xed, 0xe9, 0xa8, 0x74, 0x88, 0x28, 0x73, 0xd2, 0x51, 0xba, 0xf0, 0x19, 0xfe, 0x46, 0xd1, 0xd6, 0x50, 0x4b, 0x3b, 0xcd, 0x24, 0x3b, 0x79, 0x53, 0x51, 0xf3, 0x4d, 0x2e, 0x76, 0x06, 0xaa, 0x97, 0x55, 0x28, 0xee, 0x50, 0xd5, 0x9e, 0xfb, 0x6e, 0xe6, 0x99, 0x2a, 0x89, 0xb2, 0x42, 0x69, 0x56, 0xc2, 0xca, 0x42, 0x47, 0xe0, 0xdf, 0x01, 0x29, 0x85, 0x29, 0x83, 0xe9, 0x76, 0x7a, 0x8e, 0xed, 0x1b, 0xc7, 0x33, 0x5f, 0xfc, 0xa8, 0xd0, 0x28, 0x9f, 0x04, 0x80, 0x7f, 0x67, 0xca, 0x7d, 0xa9, 0x71, 0xf5, 0x8d, 0xb8, 0xb9, 0xbc, 0x9f, 0xdb, 0xe4, 0xf8, 0x3c, 0xfe, 0x9a, 0x00, 0xf1, 0xca, 0x58, 0x47, 0x98, 0xbc, 0x71, 0xd8, 0x51, 0xff, 0x7c, 0xd6, 0xc5, 0x1b, 0x89, 0x90, 0xaa, 0xba, 0x4d, 0x38, 0xb4, 0x16, 0xb9, 0x22, 0x40, 0xdf, 0xb7, 0x0e, 0xe3, 0xc1, 0x2b, 0x5e, 0x73, 0x10, 0x57, 0x76, 0x2e, 0xf9, 0x08, 0x23, 0xfb, 0xf6, 0x83, 0xca, 0x06, 0xd0, 0x5c, 0x20, 0xd3, 0xae, 0x2b, 0x97, 0xa8, 0x3e, 0xbe, 0x70, 0xae, 0x17, 0xaf, 0xff, 0x9d, 0x16, 0x60, 0x9d, 0x54, 0x6d, 0x8d, 0x3c, 0x74, 0xbc, 0x28, 0x18, 0x84, 0x89, 0x4f, 0x3d, 0x49, 0xe0, 0x83, 0xf1, 0x0a, 0xe7, 0xc1, 0x1c, 0x1d, 0xca, 0x0e, 0xff, 0xef, 0xcf, 0xa6, 0xe0, 0xf1, 0x53, 0x50, 0x81, 0xfa, 0xc3, 0xa2, 0x81, 0x9f, 0xd2, 0xe3, 0x26, 0x55, 0x27, 0x18, 0x2a, 0xe9, 0xd3, 0x91, 0xb2, 0x32, 0xbb, 0x75, 0x42, 0xe6, 0x84, 0x55, 0xcd, 0x26, 0x77, 0x60, 0xdb, 0x65, 0x2d, 0x19, 0xe2, 0x2f, 0xb2, 0xed, 0x11, 0xcd, 0x13, 0x05, 0xba, 0x8d, 0x98, 0xc1, 0xeb, 0xf2, 0xd1, 0x96, 0x9b, 0x24, 0xd6, 0x4f, 0x3e, 0x31, 0x9a, 0xf7, 0x4e, 0x09, 0x20, 0x06, 0xd2, 0xa3, 0xff, 0x74, 0x48, 0x72, 0xa2, 0x0e, 0xbf, 0x18, 0xd1, 0x77, 0x48, 0xab, 0x71, 0x10, 0x80, 0x50, 0x96, 0xea, 0x13, 0x6b, 0xce, 0x2f, 0x96, 0x8b, 0x20, 0x5e, 0x65, 0x0b, 0x80, 0x3c, 0x53, 0x1d, 0x06, 0x77, 0x5a, 0xe5, 0xce, 0xea, 0x28, 0xbb, 0x92, 0xe9, 0xa0, 0xed, 0xec, 0x89, 0x51, 0xce, 0x20, 0x09, 0xa8, 0x8e, 0xe1, 0xb6, 0x4d, 0x9b, 0x9e, 0x89, 0xf6, 0x90, 0x51, 0x20, 0x33, 0x84, 0x21, 0x0a, 0x10, 0x2a, 0x44, 0xd2, 0xd6, 0x70, 0x31, 0x73, 0xb6, 0x85, 0x07, 0xdc, 0xea, 0xdd, 0x3b, 0xf6, 0x51, 0x0d, 0xf2, 0xa5, 0xce, 0xfd, 0x9c, 0x80, 0xe4, 0xf3, 0x85, 0xb2, 0xf9, 0xe6, 0x21, 0x58, 0x13, 0xed, 0x32, };
11660 static const u8 ed25519_507_test_vectors_expected_sig[] = {
11661 	0x9d, 0xa6, 0x0c, 0xc4, 0xa6, 0x4d, 0x07, 0xde, 0xe1, 0x34, 0x6b, 0xd3, 0xd3, 0x01, 0x09, 0x95, 0xce, 0x27, 0x38, 0x20, 0x8a, 0xb3, 0x5b, 0x34, 0xc2, 0xa8, 0xfd, 0x17, 0x87, 0xae, 0x3a, 0x1e, 0x20, 0x7f, 0xe7, 0x84, 0x52, 0x51, 0x54, 0xfa, 0xe4, 0xf5, 0x79, 0x4c, 0xd8, 0x50, 0x30, 0x45, 0xfe, 0xa8, 0x5c, 0xf7, 0x7f, 0xd9, 0x2f, 0x6a, 0x70, 0xcd, 0x0c, 0x5a, 0x52, 0xc0, 0x81, 0x0e, };
11662 static const ec_test_case ed25519_507_test_case = {
11663 	.name = "EDDSA25519-SHA512/wei25519 507",
11664 	.ec_str_p = &wei25519_str_params,
11665 	.priv_key = ed25519_507_test_vectors_priv_key,
11666 	.priv_key_len = sizeof(ed25519_507_test_vectors_priv_key),
11667 	.nn_random = NULL,
11668 	.hash_type = SHA512,
11669 	.msg = (const char *)ed25519_507_test_vectors_message,
11670 	.msglen = sizeof(ed25519_507_test_vectors_message),
11671 	.sig_type = EDDSA25519,
11672 	.exp_sig = ed25519_507_test_vectors_expected_sig,
11673 	.exp_siglen = sizeof(ed25519_507_test_vectors_expected_sig),
11674 	.adata = NULL,
11675 	.adata_len = 0
11676 };
11677 
11678 /************************************************/
11679 static const u8 ed25519_508_test_vectors_priv_key[] = {
11680 	0x11, 0x26, 0x49, 0x6a, 0x58, 0x2c, 0xe5, 0x8d, 0x3d, 0x61, 0x8d, 0xd8, 0xa3, 0x93, 0x35, 0x47, 0xaa, 0x7a, 0x8a, 0x30, 0xfb, 0x54, 0x06, 0x3b, 0x8d, 0xfd, 0xd3, 0x16, 0x71, 0xc6, 0xc7, 0x3d, };
11681 static const u8 ed25519_508_test_vectors_message[] = {
11682 	0x6a, 0x4b, 0x52, 0xd7, 0x30, 0xdd, 0xab, 0x82, 0x9b, 0x2a, 0x17, 0x95, 0x90, 0xcb, 0xd4, 0xc3, 0x72, 0x49, 0x8e, 0x9f, 0x43, 0x99, 0x77, 0xc0, 0xa1, 0x0d, 0xc1, 0x3c, 0x0a, 0xe1, 0x73, 0x6e, 0xaa, 0xff, 0x06, 0x33, 0x71, 0x43, 0x4f, 0xd0, 0xda, 0x80, 0x36, 0x0e, 0xc5, 0x89, 0x06, 0x07, 0xd2, 0xfa, 0xe1, 0xc9, 0xa2, 0xe1, 0xab, 0x0b, 0x7f, 0x3d, 0x66, 0x7f, 0x5b, 0x1b, 0x9c, 0x41, 0x8f, 0x18, 0xb1, 0x0c, 0x9e, 0x6f, 0xd6, 0x69, 0xd3, 0xeb, 0xec, 0x16, 0x8e, 0xfe, 0xf4, 0x41, 0x63, 0xe5, 0x77, 0xa2, 0xeb, 0xd0, 0xf2, 0xcb, 0x76, 0x8f, 0x80, 0xc2, 0x31, 0x88, 0xe8, 0x60, 0x69, 0xe4, 0xd1, 0x0f, 0x41, 0x03, 0x06, 0xce, 0xdd, 0x7a, 0x34, 0x1a, 0x61, 0xe0, 0xf4, 0xf3, 0xbc, 0x25, 0x04, 0x1b, 0xc2, 0xf9, 0x22, 0xed, 0x07, 0x3e, 0x1e, 0x2f, 0x1b, 0x70, 0x9c, 0x57, 0x9d, 0x10, 0x63, 0x0f, 0x33, 0x07, 0x17, 0x54, 0xd7, 0x07, 0x89, 0x4a, 0x1c, 0x62, 0x19, 0x0d, 0xe1, 0x88, 0x82, 0xc5, 0x64, 0xdc, 0x4c, 0x01, 0xdc, 0x54, 0x5d, 0xd8, 0x96, 0x64, 0x04, 0xed, 0x78, 0xfa, 0x32, 0x67, 0xa9, 0x46, 0x9f, 0x63, 0xb6, 0x12, 0x0a, 0xbb, 0x65, 0xf9, 0xb3, 0xba, 0x3e, 0xee, 0x28, 0xd7, 0x9c, 0x2e, 0xb4, 0xe7, 0x02, 0x0c, 0xc6, 0x98, 0x7d, 0xfc, 0x5c, 0x29, 0x67, 0x2f, 0x8c, 0x0f, 0xa3, 0xe6, 0x90, 0xd5, 0x84, 0xfe, 0x00, 0x0c, 0x64, 0xf3, 0x52, 0x61, 0x01, 0x79, 0x62, 0x1b, 0xfd, 0x5f, 0xf3, 0xeb, 0x30, 0xd1, 0x8f, 0x1a, 0x02, 0x50, 0x41, 0x6d, 0xb9, 0x3b, 0x1c, 0x1e, 0x93, 0xcf, 0x8a, 0x36, 0x46, 0x51, 0x75, 0x60, 0xd1, 0xcc, 0x8f, 0xff, 0x82, 0x2b, 0x51, 0xef, 0x27, 0xb2, 0x00, 0xe9, 0x87, 0xb5, 0x92, 0x39, 0x07, 0x53, 0x45, 0x3e, 0xf1, 0x38, 0xbd, 0x3d, 0x29, 0xdb, 0x7c, 0xb1, 0xb5, 0xf4, 0x5e, 0x47, 0x95, 0xb8, 0x9c, 0x53, 0xf4, 0x97, 0x04, 0x19, 0x27, 0x52, 0x23, 0x7c, 0x6a, 0xb2, 0x74, 0x84, 0x9f, 0x95, 0x94, 0xee, 0x97, 0x77, 0xf6, 0xef, 0xe7, 0x04, 0x83, 0x12, 0x9d, 0x06, 0x7f, 0x97, 0x19, 0x9d, 0x9a, 0xe3, 0x60, 0x90, 0x70, 0x38, 0x64, 0xf7, 0xca, 0x47, 0x50, 0xa6, 0xf3, 0xb6, 0xff, 0x83, 0x82, 0x4c, 0x91, 0x04, 0x84, 0x39, 0x4d, 0x1e, 0x2e, 0xce, 0xba, 0x18, 0x44, 0x6f, 0xe4, 0xe9, 0x94, 0xce, 0x07, 0x43, 0x3a, 0x74, 0x0d, 0xdd, 0x05, 0xf0, 0xe3, 0x96, 0xd4, 0x82, 0x89, 0x4e, 0x6f, 0x14, 0xac, 0xf7, 0xb9, 0x7b, 0xae, 0x6c, 0x7e, 0xb8, 0x87, 0x03, 0x03, 0x9f, 0xa7, 0x85, 0xd6, 0x0a, 0x3a, 0xf7, 0x8b, 0x13, 0x24, 0x3a, 0x4f, 0x88, 0xdd, 0xe1, 0xd9, 0x98, 0x61, 0x7f, 0x2e, 0x3f, 0xa7, 0xea, 0xfc, 0x2f, 0x43, 0x5d, 0xd4, 0xac, 0x1e, 0xa9, 0xc2, 0x38, 0x40, 0x7a, 0xa0, 0x9b, 0x4e, 0xea, 0x8e, 0xd4, 0x34, 0x92, 0x7b, 0x40, 0x66, 0x74, 0xac, 0x27, 0x04, 0x58, 0xcf, 0xb3, 0xbf, 0x29, 0xc3, 0x47, 0xf9, 0x45, 0x59, 0x61, 0x31, 0x79, 0xb9, 0x50, 0x21, 0x92, 0x32, 0x1b, 0x88, 0xe9, 0xaf, 0x0a, 0x90, 0xe9, 0xa4, 0xab, 0x9e, 0xdd, 0xaa, 0xe3, 0x82, 0xe3, 0x73, 0x4d, 0x14, 0x15, 0xeb, 0xe3, 0x24, 0x99, 0xc3, 0x4e, 0x6f, 0xde, 0xaf, 0x15, 0xb0, 0xd9, 0x78, 0x79, 0x85, 0xe0, 0x8d, 0xfe, 0x49, 0x54, 0x60, 0xc5, 0x4f, 0x67, 0x43, 0xd8, 0x1f, 0xf1, 0x68, 0x81, 0xe5, 0xe3, 0x0c, 0x51, 0xf4, 0xb0, 0x92, 0x37, 0x37, 0x83, 0xf1, 0x24, 0x23, 0xc3, 0xe1, 0xae, 0x85, 0x91, 0x13, 0x0a, 0x26, 0x99, 0x80, 0xca, 0xa1, 0xcb, 0x5c, };
11683 static const u8 ed25519_508_test_vectors_expected_sig[] = {
11684 	0xb3, 0x0e, 0xb5, 0x6c, 0xa9, 0xb1, 0x20, 0xbf, 0x84, 0x9a, 0x3a, 0x9d, 0x56, 0xaf, 0x03, 0x3d, 0xe8, 0xa5, 0x90, 0xc9, 0xe1, 0x24, 0x0c, 0x1e, 0x36, 0xdb, 0xc6, 0xcf, 0x0a, 0x71, 0xb7, 0x8a, 0x11, 0xec, 0x14, 0x3f, 0xb9, 0x95, 0x9a, 0x8f, 0x25, 0xb5, 0x77, 0x11, 0xd6, 0xa9, 0x0a, 0x67, 0xe0, 0x1b, 0xe3, 0xa4, 0xda, 0x2b, 0x69, 0x39, 0x48, 0x69, 0xbb, 0x8d, 0x64, 0xb8, 0x7e, 0x0f, };
11685 static const ec_test_case ed25519_508_test_case = {
11686 	.name = "EDDSA25519-SHA512/wei25519 508",
11687 	.ec_str_p = &wei25519_str_params,
11688 	.priv_key = ed25519_508_test_vectors_priv_key,
11689 	.priv_key_len = sizeof(ed25519_508_test_vectors_priv_key),
11690 	.nn_random = NULL,
11691 	.hash_type = SHA512,
11692 	.msg = (const char *)ed25519_508_test_vectors_message,
11693 	.msglen = sizeof(ed25519_508_test_vectors_message),
11694 	.sig_type = EDDSA25519,
11695 	.exp_sig = ed25519_508_test_vectors_expected_sig,
11696 	.exp_siglen = sizeof(ed25519_508_test_vectors_expected_sig),
11697 	.adata = NULL,
11698 	.adata_len = 0
11699 };
11700 
11701 /************************************************/
11702 static const u8 ed25519_509_test_vectors_priv_key[] = {
11703 	0x9c, 0x16, 0x7a, 0xff, 0x3b, 0x1b, 0x78, 0x8f, 0x13, 0x3d, 0x42, 0x2d, 0xe8, 0xca, 0x9a, 0x64, 0x31, 0x64, 0x09, 0xf9, 0xe3, 0x5b, 0xfe, 0x22, 0x03, 0x2e, 0xc4, 0x17, 0xae, 0x9a, 0xbc, 0x6d, };
11704 static const u8 ed25519_509_test_vectors_message[] = {
11705 	0x68, 0xac, 0x0f, 0xc2, 0xb6, 0x07, 0xba, 0x38, 0xe3, 0x77, 0xfa, 0xe8, 0x45, 0xc8, 0x08, 0xc8, 0xf9, 0xfa, 0x61, 0x4e, 0xb1, 0xf3, 0x11, 0x58, 0xa9, 0x62, 0x0a, 0x93, 0x7d, 0x3e, 0x30, 0x1e, 0x85, 0xac, 0xaa, 0x69, 0x14, 0x4b, 0xc3, 0x49, 0xa3, 0x9d, 0xfb, 0x58, 0x20, 0x41, 0xc4, 0xa1, 0x97, 0xae, 0x99, 0xb4, 0xd4, 0xd5, 0x9b, 0x7a, 0x2c, 0xa3, 0xd1, 0x62, 0x28, 0xb5, 0x59, 0x1c, 0xbf, 0x57, 0xc1, 0x8a, 0x78, 0x1e, 0xfd, 0x19, 0x19, 0x3c, 0x47, 0xb1, 0x6c, 0x60, 0x23, 0xa3, 0xa8, 0xba, 0x3d, 0x66, 0x8f, 0x05, 0xa3, 0x7f, 0x1e, 0x83, 0xb0, 0xd7, 0xfe, 0xbd, 0xd1, 0x0f, 0x63, 0xe4, 0x8e, 0xf7, 0xa2, 0x0e, 0x01, 0x5b, 0x1c, 0x67, 0x25, 0xd4, 0xc3, 0x00, 0xa9, 0x86, 0xc6, 0x0e, 0x3a, 0x11, 0x54, 0x69, 0xc8, 0xe5, 0x2b, 0xa0, 0x5b, 0x51, 0xc0, 0x5d, 0x0a, 0xf4, 0x0d, 0x89, 0xfd, 0x9e, 0xd7, 0x6f, 0x36, 0x95, 0x0a, 0xee, 0x3c, 0x78, 0x19, 0x89, 0x8a, 0x90, 0x3c, 0xfe, 0x03, 0x61, 0xa9, 0x1c, 0x69, 0x10, 0x0b, 0x49, 0x51, 0x41, 0xe8, 0x6e, 0xe7, 0x9d, 0x63, 0xd1, 0x74, 0x03, 0xfb, 0x1a, 0x16, 0x29, 0xef, 0x63, 0xcb, 0x7e, 0x9d, 0x27, 0x20, 0xcb, 0xff, 0xf0, 0x00, 0x2b, 0x19, 0x0b, 0xcd, 0xc2, 0x67, 0x94, 0x12, 0x4d, 0xd3, 0x8d, 0x42, 0xbc, 0xaa, 0x71, 0x75, 0x40, 0x5e, 0xb0, 0xbb, 0xcf, 0x8e, 0x37, 0xd6, 0x5d, 0x05, 0xa3, 0x71, 0x95, 0xb4, 0x79, 0x37, 0x1f, 0xa2, 0xbb, 0xbb, 0x16, 0x7d, 0x91, 0xce, 0xe8, 0x82, 0x35, 0xdd, 0x72, 0xea, 0x88, 0xfc, 0x73, 0xce, 0x3c, 0xe4, 0x3d, 0x33, 0xb7, 0x15, 0xf2, 0x5f, 0x19, 0x2e, 0xc2, 0x15, 0xda, 0xc1, 0x24, 0x89, 0x9c, 0x5e, 0x75, 0x86, 0xe8, 0x63, 0x40, 0xd8, 0xcb, 0xe5, 0x37, 0x35, 0xde, 0xfb, 0xe0, 0x2e, 0x4c, 0xc9, 0xfd, 0xe6, 0x9f, 0xb9, 0x79, 0x4d, 0x1d, 0xb7, 0x2b, 0x98, 0xc0, 0xf1, 0x97, 0x66, 0xee, 0x51, 0x38, 0xbb, 0xfa, 0x78, 0x90, 0x9a, 0xa2, 0x99, 0xb4, 0x91, 0x3c, 0x49, 0x9d, 0xea, 0xf5, 0x4b, 0x48, 0x41, 0xd5, 0x04, 0x48, 0x29, 0x98, 0x49, 0x36, 0x70, 0x0d, 0xcf, 0x92, 0xf3, 0x65, 0x42, 0xb2, 0xfc, 0x7e, 0x86, 0x44, 0x1b, 0x99, 0x25, 0xf5, 0xd0, 0xb7, 0x8c, 0x17, 0xa8, 0x5c, 0xfc, 0xfc, 0xb2, 0x0b, 0x0f, 0xd7, 0x51, 0x34, 0x9c, 0x27, 0x46, 0x3a, 0xbd, 0xe4, 0xd2, 0x7d, 0xf7, 0x42, 0x65, 0x28, 0x87, 0x13, 0xf9, 0x6d, 0xea, 0x01, 0x3b, 0x94, 0x55, 0x21, 0x80, 0x8b, 0x49, 0x96, 0xb1, 0xb2, 0xdc, 0x03, 0x38, 0xb6, 0xd2, 0x36, 0xef, 0xd6, 0xd2, 0xb2, 0x7d, 0xaf, 0xda, 0x46, 0xec, 0x5f, 0xa3, 0x2b, 0x96, 0x5e, 0x8b, 0xb5, 0xe8, 0xbb, 0x61, 0xbd, 0x96, 0x6e, 0xde, 0xb7, 0x74, 0x68, 0x1e, 0x0e, 0xa8, 0xc1, 0x7b, 0x8c, 0x99, 0xfa, 0x7d, 0x66, 0x0f, 0x0f, 0x66, 0xc9, 0xbc, 0x6d, 0x95, 0xcb, 0xd7, 0xdc, 0x09, 0x47, 0x24, 0x09, 0x8e, 0xb0, 0x51, 0x91, 0xb5, 0x3a, 0x3d, 0xf6, 0x56, 0x6b, 0x9c, 0x90, 0xe0, 0xd7, 0xdf, 0xf2, 0x94, 0x38, 0x48, 0xb6, 0x1a, 0x20, 0xd4, 0x8c, 0x22, 0xb6, 0xd3, 0xc9, 0x58, 0xe2, 0x93, 0xd7, 0x09, 0xc8, 0xf4, 0x81, 0x10, 0x23, 0x0f, 0xf5, 0x19, 0x18, 0x56, 0x28, 0x77, 0xda, 0xf6, 0xd9, 0x20, 0xc8, 0x5a, 0x82, 0xe0, 0x7c, 0x45, 0x1f, 0xe7, 0xae, 0x97, 0x59, 0xc0, 0xa7, 0x7e, 0x97, 0xbb, 0x29, 0x8b, 0x5d, 0x05, 0x92, 0xa4, 0x1d, 0x08, 0xf6, 0x7a, 0x4e, 0xd5, 0xa1, 0xbb, 0x41, 0xe9, 0x37, 0xb6, 0xa6, 0x8a, 0xeb, 0x38, 0xfd, 0x5b, 0xe9, };
11706 static const u8 ed25519_509_test_vectors_expected_sig[] = {
11707 	0xc9, 0xae, 0x67, 0xfd, 0x64, 0x15, 0xdc, 0xba, 0xb2, 0x92, 0xfa, 0xb3, 0x94, 0xca, 0x6c, 0x3b, 0x7d, 0x90, 0xca, 0x24, 0x4d, 0xc6, 0xa7, 0x76, 0x4e, 0x74, 0xfd, 0x20, 0x2b, 0xf4, 0xb2, 0x90, 0x5b, 0xd2, 0x03, 0x0e, 0x6b, 0xeb, 0x91, 0x4c, 0x3c, 0x23, 0x8d, 0xb3, 0x71, 0xb1, 0xcb, 0xa6, 0xd9, 0x26, 0x1a, 0xa3, 0x92, 0xec, 0x87, 0x1a, 0x4b, 0x8b, 0x12, 0xfe, 0x9c, 0x1c, 0x97, 0x0e, };
11708 static const ec_test_case ed25519_509_test_case = {
11709 	.name = "EDDSA25519-SHA512/wei25519 509",
11710 	.ec_str_p = &wei25519_str_params,
11711 	.priv_key = ed25519_509_test_vectors_priv_key,
11712 	.priv_key_len = sizeof(ed25519_509_test_vectors_priv_key),
11713 	.nn_random = NULL,
11714 	.hash_type = SHA512,
11715 	.msg = (const char *)ed25519_509_test_vectors_message,
11716 	.msglen = sizeof(ed25519_509_test_vectors_message),
11717 	.sig_type = EDDSA25519,
11718 	.exp_sig = ed25519_509_test_vectors_expected_sig,
11719 	.exp_siglen = sizeof(ed25519_509_test_vectors_expected_sig),
11720 	.adata = NULL,
11721 	.adata_len = 0
11722 };
11723 
11724 /************************************************/
11725 static const u8 ed25519_510_test_vectors_priv_key[] = {
11726 	0xe9, 0x94, 0x88, 0x05, 0xeb, 0x34, 0x1b, 0x28, 0x67, 0x47, 0x9c, 0x66, 0x8f, 0xd3, 0x53, 0x2c, 0x30, 0x99, 0x41, 0xc0, 0xad, 0x4c, 0xb2, 0xe5, 0x42, 0x31, 0x75, 0x6e, 0x6a, 0x1b, 0xde, 0xcb, };
11727 static const u8 ed25519_510_test_vectors_message[] = {
11728 	0x91, 0xcf, 0xfd, 0x7e, 0xb1, 0xcf, 0x6b, 0xd4, 0x75, 0x6b, 0xce, 0x6a, 0x30, 0xaf, 0x9d, 0xfb, 0xa2, 0x6d, 0xdd, 0x1c, 0xce, 0x03, 0x94, 0xc1, 0x94, 0xa3, 0xe3, 0x9c, 0xc3, 0xd1, 0xcb, 0xc2, 0x21, 0xb7, 0xeb, 0x70, 0xbe, 0xa1, 0x8d, 0x29, 0xc2, 0x67, 0x45, 0x71, 0x76, 0xa3, 0xc9, 0xe5, 0x3c, 0x18, 0xe4, 0x7d, 0x10, 0xa6, 0x7c, 0x46, 0x45, 0x05, 0x19, 0x77, 0x02, 0xe6, 0xb2, 0x47, 0x0d, 0x38, 0x86, 0x9d, 0xb5, 0x17, 0x4b, 0x15, 0x8f, 0x99, 0x92, 0xe4, 0x43, 0x5d, 0x02, 0x24, 0x6f, 0x54, 0x02, 0x58, 0xde, 0xdd, 0x3c, 0xe3, 0x3d, 0xf5, 0x82, 0x55, 0x5a, 0x68, 0x1f, 0xb7, 0x6e, 0xca, 0xcc, 0xb1, 0xc2, 0x98, 0x9b, 0x17, 0x7e, 0x3b, 0x7e, 0x45, 0x4a, 0xaa, 0x52, 0x9d, 0xe5, 0x9b, 0xf5, 0xa0, 0x31, 0x23, 0xd5, 0x71, 0xdf, 0x2e, 0x7f, 0x7c, 0xb8, 0x30, 0x80, 0x5c, 0x58, 0xb7, 0x4a, 0x65, 0x3b, 0xac, 0x0e, 0x5a, 0x88, 0x8e, 0x08, 0xdc, 0x22, 0x36, 0xd6, 0xcd, 0x49, 0x6a, 0xa0, 0x6d, 0x0d, 0x67, 0xcf, 0x3b, 0x33, 0x5e, 0x21, 0x8c, 0x49, 0xde, 0xda, 0xd8, 0x2f, 0xc1, 0xbe, 0x9e, 0xf2, 0x0c, 0xac, 0x61, 0x90, 0x5c, 0x30, 0xeb, 0x13, 0x2d, 0x73, 0x9b, 0x16, 0xca, 0x8a, 0x8c, 0x90, 0x66, 0x19, 0xc0, 0xe0, 0xd8, 0xb3, 0x39, 0x85, 0x32, 0x7e, 0x36, 0xf3, 0xd4, 0xb8, 0xfd, 0xa3, 0x87, 0xc1, 0x86, 0xcc, 0x50, 0x44, 0x31, 0x04, 0xdb, 0x76, 0x1f, 0x7f, 0xf9, 0x30, 0x12, 0x70, 0x20, 0x4a, 0x71, 0x3e, 0x58, 0x90, 0x21, 0x01, 0xfa, 0xd0, 0x00, 0xce, 0x93, 0x16, 0x47, 0xc5, 0x77, 0xfd, 0xec, 0x14, 0x8d, 0xca, 0x95, 0xcd, 0xc0, 0x89, 0x18, 0xeb, 0xed, 0x03, 0x7c, 0x60, 0x33, 0x2f, 0xad, 0xf0, 0x88, 0xf0, 0x36, 0x08, 0x3e, 0xbc, 0x92, 0xe1, 0x73, 0xb7, 0xdd, 0xcc, 0x30, 0xc4, 0x93, 0xf2, 0x7e, 0x69, 0xcd, 0x17, 0xa2, 0x0d, 0x30, 0xb7, 0x8f, 0x83, 0xa7, 0x2e, 0x4f, 0x5a, 0x74, 0x7d, 0x86, 0xd9, 0x6c, 0x5e, 0x1b, 0xb7, 0xa4, 0x38, 0x16, 0x62, 0x04, 0x01, 0x3e, 0x21, 0x64, 0xd6, 0xaa, 0xbc, 0x0d, 0x56, 0x2f, 0x54, 0x01, 0x5c, 0x36, 0x5c, 0x80, 0x44, 0x56, 0x07, 0x14, 0x5e, 0x56, 0x92, 0xee, 0x34, 0xf6, 0x35, 0x30, 0x77, 0xfa, 0xb7, 0x45, 0x2d, 0x88, 0xce, 0x3e, 0xb0, 0x1d, 0x2b, 0x37, 0x97, 0xdc, 0x91, 0xb3, 0x41, 0xa3, 0xa7, 0x26, 0x30, 0x15, 0x16, 0xba, 0xae, 0x18, 0xe8, 0x51, 0xf7, 0x4d, 0xfb, 0xdf, 0x08, 0x66, 0xbb, 0x23, 0x76, 0x86, 0x7d, 0xe5, 0x52, 0x31, 0xe3, 0x62, 0xc4, 0x72, 0xc5, 0x21, 0x16, 0x54, 0x4c, 0xd4, 0xf8, 0x1e, 0x93, 0x57, 0x1c, 0x4e, 0xc8, 0x20, 0xe7, 0xe6, 0x53, 0xf4, 0xe2, 0x1b, 0xe0, 0xa9, 0x42, 0x57, 0x6c, 0x9d, 0xe9, 0x1e, 0x7d, 0x12, 0x51, 0x68, 0x3d, 0x85, 0x9d, 0xe4, 0x48, 0xf8, 0x22, 0xdc, 0xf3, 0xd2, 0xcf, 0x55, 0xed, 0xe2, 0xf9, 0xc7, 0x1b, 0x60, 0x63, 0xd1, 0x37, 0x30, 0x61, 0xf8, 0xf5, 0x93, 0x6b, 0x69, 0x8d, 0x13, 0x84, 0xe6, 0x54, 0x59, 0xea, 0x2b, 0xc2, 0x6e, 0xc9, 0x67, 0x75, 0xef, 0x42, 0x52, 0x07, 0x43, 0x2d, 0xda, 0x0a, 0xc1, 0xfe, 0x28, 0x52, 0x6c, 0x5e, 0x45, 0x59, 0x34, 0x9c, 0x3d, 0x8d, 0xf9, 0x91, 0x82, 0x30, 0xf4, 0x04, 0x46, 0x83, 0xcc, 0x2c, 0x1b, 0x85, 0x8d, 0x14, 0x1a, 0xb8, 0xd0, 0x80, 0x5b, 0xb9, 0x33, 0x60, 0x67, 0x52, 0x2a, 0xa8, 0x9c, 0x81, 0x0f, 0x3e, 0xaa, 0x7a, 0xc2, 0xd8, 0xdd, 0x28, 0xc3, 0x75, 0x12, 0x25, 0xa1, 0x9e, 0xce, 0xc8, 0xbc, 0xca, 0x52, 0x43, 0x99, 0x46, };
11729 static const u8 ed25519_510_test_vectors_expected_sig[] = {
11730 	0xd3, 0xdc, 0x62, 0xd6, 0xce, 0x9c, 0x76, 0x6f, 0x2a, 0xba, 0xf9, 0xa7, 0xfb, 0xe0, 0x9d, 0x6b, 0xdb, 0x07, 0xa4, 0x74, 0x7b, 0x56, 0x08, 0x0d, 0xb0, 0x9b, 0xeb, 0x4a, 0x4e, 0x80, 0x4a, 0x70, 0xd7, 0xdd, 0xf4, 0x11, 0x94, 0x75, 0xc7, 0xbe, 0x83, 0x4f, 0x31, 0x95, 0x6f, 0x4a, 0x71, 0xda, 0xd0, 0x29, 0xcd, 0xf2, 0x36, 0x3d, 0xd0, 0x36, 0x5c, 0xe2, 0x2d, 0xc2, 0x7f, 0x07, 0x80, 0x03, };
11731 static const ec_test_case ed25519_510_test_case = {
11732 	.name = "EDDSA25519-SHA512/wei25519 510",
11733 	.ec_str_p = &wei25519_str_params,
11734 	.priv_key = ed25519_510_test_vectors_priv_key,
11735 	.priv_key_len = sizeof(ed25519_510_test_vectors_priv_key),
11736 	.nn_random = NULL,
11737 	.hash_type = SHA512,
11738 	.msg = (const char *)ed25519_510_test_vectors_message,
11739 	.msglen = sizeof(ed25519_510_test_vectors_message),
11740 	.sig_type = EDDSA25519,
11741 	.exp_sig = ed25519_510_test_vectors_expected_sig,
11742 	.exp_siglen = sizeof(ed25519_510_test_vectors_expected_sig),
11743 	.adata = NULL,
11744 	.adata_len = 0
11745 };
11746 
11747 /************************************************/
11748 static const u8 ed25519_511_test_vectors_priv_key[] = {
11749 	0xb0, 0x17, 0x53, 0xef, 0xa7, 0x3b, 0xb3, 0xde, 0x7a, 0xa7, 0x78, 0xbe, 0x7a, 0xfc, 0xbf, 0xf6, 0x6a, 0x5d, 0x3e, 0x2c, 0x2f, 0x8b, 0x5a, 0xa2, 0xb0, 0x48, 0x84, 0x40, 0x50, 0x99, 0x69, 0x65, };
11750 static const u8 ed25519_511_test_vectors_message[] = {
11751 	0x68, 0x4e, 0x61, 0x2f, 0x27, 0xee, 0xad, 0x0d, 0x34, 0x84, 0x4c, 0xc8, 0x1b, 0xa9, 0x11, 0xc2, 0x8a, 0xaf, 0x6d, 0x66, 0xe7, 0x12, 0x29, 0xe8, 0xcc, 0x34, 0x62, 0xf7, 0xc7, 0xa0, 0x50, 0xda, 0xa3, 0x0c, 0xb7, 0x44, 0x71, 0x15, 0x0f, 0x07, 0xda, 0xd4, 0x59, 0xb5, 0xa9, 0x13, 0x58, 0x47, 0x6c, 0x05, 0x98, 0x25, 0x5d, 0x8a, 0x64, 0x2d, 0xd7, 0xc0, 0x80, 0x28, 0x11, 0xbd, 0x88, 0xe4, 0xca, 0xc5, 0x97, 0xef, 0xe4, 0x1e, 0xbd, 0x96, 0xcd, 0x0f, 0x3b, 0x5c, 0xe7, 0x2d, 0xb4, 0xbe, 0x1a, 0x3d, 0xbd, 0x6b, 0x84, 0xf5, 0x44, 0x6e, 0x3d, 0xa6, 0x00, 0xd3, 0xb1, 0xd2, 0xb4, 0x60, 0xa0, 0x09, 0xbd, 0x31, 0xca, 0xcd, 0x98, 0xa9, 0x15, 0x18, 0xce, 0x33, 0xe9, 0xa7, 0x03, 0xd4, 0x04, 0x28, 0x87, 0x36, 0xcc, 0xc4, 0x31, 0x03, 0xfc, 0x69, 0xe6, 0x79, 0x74, 0xf3, 0x16, 0x52, 0xfa, 0x3d, 0xad, 0xef, 0x33, 0x37, 0xf6, 0xc8, 0x97, 0xa3, 0xd2, 0x01, 0x30, 0x3c, 0x8f, 0x03, 0x59, 0x7b, 0x4a, 0x87, 0xc9, 0x8f, 0x29, 0x1c, 0xcd, 0x58, 0xa3, 0xf1, 0xe8, 0x98, 0x33, 0x2a, 0xa5, 0x99, 0x3b, 0x47, 0xfc, 0xb5, 0xdd, 0xaa, 0x1c, 0x08, 0x68, 0xb6, 0x43, 0x74, 0x2d, 0x0e, 0x4a, 0x4b, 0x9c, 0xd4, 0x27, 0x03, 0x8b, 0x3b, 0x74, 0x99, 0x9b, 0xc8, 0x9a, 0xc3, 0x48, 0x4c, 0x0c, 0xa1, 0x3f, 0x25, 0xaa, 0xe8, 0xe7, 0x8a, 0xe1, 0xcc, 0xee, 0x62, 0x18, 0xac, 0xca, 0xb8, 0x1a, 0x4f, 0x69, 0x4f, 0x53, 0x24, 0xa3, 0x47, 0x62, 0x9d, 0x49, 0xb5, 0x5e, 0x40, 0x37, 0x50, 0x4a, 0x9a, 0xcc, 0x8d, 0xf5, 0x8c, 0x68, 0x41, 0xdd, 0xdc, 0xd4, 0xfc, 0x43, 0x47, 0xf7, 0xb6, 0xf1, 0xfd, 0x9d, 0xe0, 0x56, 0x45, 0x77, 0xe6, 0xf3, 0x29, 0xed, 0x95, 0x1a, 0x0a, 0x6b, 0x91, 0x24, 0xff, 0x63, 0xe2, 0x2e, 0xb3, 0x6d, 0x3a, 0x88, 0x63, 0xbc, 0x1b, 0xf6, 0x9c, 0xea, 0x24, 0xc6, 0x05, 0x96, 0x7e, 0x7d, 0x89, 0x48, 0x95, 0x3f, 0x27, 0xd5, 0xc4, 0xc7, 0x5f, 0x08, 0x49, 0xf8, 0x72, 0xa3, 0xe3, 0xd1, 0x6d, 0x42, 0x2f, 0xa5, 0xa1, 0x1e, 0x1b, 0x9a, 0x74, 0xdf, 0x6f, 0x38, 0xb9, 0x0f, 0x27, 0x7d, 0x81, 0xfc, 0xe8, 0x43, 0x7a, 0x14, 0xd9, 0x9d, 0x2b, 0xef, 0x18, 0x9d, 0x7c, 0xac, 0x83, 0xdd, 0xc6, 0x13, 0x77, 0xed, 0x34, 0x8b, 0x3c, 0x4f, 0xc0, 0x9e, 0xc2, 0xb9, 0x00, 0x59, 0x25, 0xd0, 0x4a, 0x71, 0xe2, 0x6d, 0x64, 0x16, 0x67, 0xbd, 0xf5, 0x49, 0x29, 0x43, 0x31, 0xc6, 0xea, 0x01, 0xcd, 0x5c, 0x0b, 0xd1, 0xb6, 0xa7, 0xec, 0xfd, 0xa2, 0x0b, 0x0f, 0x19, 0x29, 0x58, 0x2b, 0x74, 0x69, 0x7c, 0xb2, 0x62, 0xc3, 0x92, 0x7d, 0x6b, 0x22, 0x3f, 0x4b, 0x5f, 0x30, 0x43, 0xaa, 0x6e, 0xb4, 0x57, 0x1a, 0x78, 0xe9, 0xda, 0x11, 0xc2, 0xb3, 0x6f, 0x64, 0x55, 0x25, 0x80, 0xca, 0xa7, 0xb5, 0xfa, 0x6b, 0x90, 0xf9, 0x29, 0xe0, 0x16, 0x2e, 0x60, 0x8d, 0x12, 0x40, 0xd7, 0x24, 0x2c, 0xd2, 0xf4, 0x70, 0x25, 0xc0, 0x3d, 0xeb, 0xe0, 0x59, 0xb1, 0xdc, 0x94, 0x77, 0x02, 0x32, 0xbc, 0x67, 0x65, 0x14, 0x84, 0x80, 0xbb, 0x1d, 0x9f, 0x50, 0xda, 0x1e, 0xe6, 0x44, 0x8c, 0xf9, 0xc8, 0x8b, 0x19, 0xdd, 0x45, 0x99, 0x32, 0xc0, 0x6e, 0xd8, 0x11, 0xc4, 0xa6, 0x4a, 0x12, 0xd5, 0x93, 0x8b, 0xd1, 0xc7, 0x57, 0xbc, 0xfa, 0xea, 0xee, 0x89, 0x33, 0xfe, 0x5f, 0xff, 0x21, 0x76, 0x3d, 0xe7, 0x40, 0x48, 0x2b, 0xcf, 0x1b, 0xa5, 0x9a, 0xfd, 0xc8, 0xfc, 0xf8, 0x73, 0xc3, 0xd5, 0x07, 0xbb, 0x39, 0x4e, 0x32, 0xe4, 0x5f, 0x73, 0x65, 0x19, };
11752 static const u8 ed25519_511_test_vectors_expected_sig[] = {
11753 	0x16, 0xb7, 0x42, 0x12, 0x27, 0xae, 0x09, 0x13, 0x06, 0x85, 0xcb, 0xb1, 0xa0, 0xc6, 0x0a, 0xa5, 0x7a, 0x5e, 0x1a, 0xfe, 0x1b, 0xbe, 0x6b, 0xac, 0xea, 0x0c, 0x28, 0x1b, 0xcc, 0x89, 0x98, 0xe6, 0x82, 0x4a, 0x77, 0x2c, 0x32, 0x08, 0xa6, 0xb6, 0xb4, 0xd2, 0x36, 0x69, 0x55, 0x05, 0xc9, 0xbe, 0x82, 0x70, 0x0c, 0xf9, 0x3a, 0x78, 0x39, 0x85, 0xa3, 0x9e, 0x16, 0xe3, 0x77, 0xa7, 0x41, 0x0e, };
11754 static const ec_test_case ed25519_511_test_case = {
11755 	.name = "EDDSA25519-SHA512/wei25519 511",
11756 	.ec_str_p = &wei25519_str_params,
11757 	.priv_key = ed25519_511_test_vectors_priv_key,
11758 	.priv_key_len = sizeof(ed25519_511_test_vectors_priv_key),
11759 	.nn_random = NULL,
11760 	.hash_type = SHA512,
11761 	.msg = (const char *)ed25519_511_test_vectors_message,
11762 	.msglen = sizeof(ed25519_511_test_vectors_message),
11763 	.sig_type = EDDSA25519,
11764 	.exp_sig = ed25519_511_test_vectors_expected_sig,
11765 	.exp_siglen = sizeof(ed25519_511_test_vectors_expected_sig),
11766 	.adata = NULL,
11767 	.adata_len = 0
11768 };
11769 
11770 /************************************************/
11771 static const u8 ed25519_512_test_vectors_priv_key[] = {
11772 	0x4f, 0x4b, 0x20, 0xd8, 0x99, 0x36, 0x6f, 0x2f, 0x23, 0xee, 0x62, 0x8f, 0x22, 0x9b, 0x23, 0x6c, 0xf8, 0x0f, 0x43, 0xba, 0x18, 0x31, 0x77, 0xc9, 0x7e, 0xe3, 0x48, 0x29, 0x54, 0x6f, 0x17, 0x42, };
11773 static const u8 ed25519_512_test_vectors_message[] = {
11774 	0xdb, 0x8e, 0xf0, 0x2e, 0x30, 0x33, 0xe6, 0xb9, 0x6a, 0x56, 0xca, 0xb0, 0x50, 0x82, 0xfb, 0x46, 0x95, 0xf4, 0xa1, 0xc9, 0x16, 0x25, 0x0d, 0xd7, 0x51, 0x73, 0xf4, 0x30, 0xa1, 0x0c, 0x94, 0x68, 0x81, 0x77, 0x09, 0xd3, 0x76, 0x23, 0x34, 0x6a, 0xe8, 0x24, 0x5b, 0x42, 0xbd, 0xa0, 0xda, 0x6b, 0x60, 0x46, 0x2c, 0xcf, 0xdf, 0xc7, 0x5a, 0x9a, 0xb9, 0x94, 0xe6, 0x6c, 0x9a, 0xb9, 0xfe, 0xcd, 0xd8, 0x59, 0x96, 0x10, 0x91, 0x0a, 0xff, 0xe4, 0xf1, 0x02, 0x15, 0xcb, 0x28, 0x0b, 0xf8, 0xf9, 0xf2, 0x70, 0x0a, 0x44, 0x47, 0x96, 0xda, 0xe9, 0x3e, 0x06, 0xc6, 0xbe, 0xa7, 0xd8, 0xb4, 0xfe, 0x13, 0x01, 0xba, 0xa7, 0x9c, 0xce, 0xc7, 0x69, 0x36, 0x8f, 0xeb, 0x24, 0x42, 0xc7, 0xde, 0x84, 0xf0, 0x95, 0xe6, 0xb3, 0xbf, 0xf6, 0x3d, 0x38, 0x8c, 0xba, 0xfb, 0x2b, 0x98, 0x09, 0xdc, 0x38, 0xe9, 0xb1, 0x2e, 0xbd, 0x03, 0x9c, 0x0a, 0x57, 0xf4, 0xd5, 0x22, 0xe9, 0x1e, 0xc8, 0xd1, 0xf2, 0xb8, 0xd2, 0x3a, 0x4a, 0x0a, 0xe0, 0x59, 0xaf, 0x85, 0x39, 0x3b, 0xb0, 0xa1, 0x5f, 0x74, 0x91, 0x10, 0xf6, 0x77, 0x4a, 0x1f, 0xd7, 0x31, 0xa6, 0xec, 0x21, 0x3e, 0x4f, 0xf4, 0x35, 0xda, 0xab, 0x54, 0x6d, 0x31, 0xed, 0x9e, 0xc3, 0xb6, 0xd8, 0xcc, 0x2e, 0xda, 0xce, 0xbf, 0x4f, 0xac, 0xc5, 0x56, 0x65, 0x56, 0xee, 0xa9, 0x2e, 0x5b, 0x3f, 0x25, 0x42, 0x23, 0x9b, 0x25, 0xe2, 0x80, 0x12, 0xdd, 0x4e, 0xf4, 0x00, 0x72, 0xee, 0xbf, 0x83, 0xed, 0x2a, 0x25, 0x51, 0x81, 0xf3, 0xa4, 0x42, 0x18, 0x9d, 0x68, 0xc6, 0xc6, 0x09, 0xf4, 0xdf, 0xdf, 0x3d, 0xb7, 0xd6, 0x7d, 0x08, 0x7a, 0x2f, 0xcd, 0x6d, 0x2d, 0xc5, 0x0b, 0xbf, 0xed, 0x8b, 0xfb, 0xbf, 0xcb, 0x74, 0xd3, 0xc4, 0x1f, 0x02, 0xa8, 0x78, 0x65, 0xb1, 0x3b, 0x8e, 0xfc, 0xf5, 0xc3, 0x58, 0x12, 0x57, 0xbe, 0x0a, 0xa9, 0x13, 0xf6, 0x0c, 0x37, 0x05, 0x27, 0xbd, 0xe1, 0x1a, 0x47, 0x5c, 0x13, 0x6a, 0x17, 0xc5, 0xee, 0xfe, 0xb0, 0x3f, 0x5b, 0xff, 0x28, 0x69, 0x3e, 0xd8, 0x41, 0xe8, 0xed, 0x1f, 0x7c, 0x29, 0x10, 0x2f, 0x55, 0x99, 0xdd, 0x44, 0x40, 0x09, 0xbc, 0xea, 0x6a, 0x92, 0xd5, 0x57, 0x41, 0x52, 0x45, 0x8e, 0x0c, 0xaf, 0x8a, 0x36, 0xaa, 0x72, 0xb5, 0xdc, 0x49, 0x08, 0xa6, 0x46, 0x1c, 0x9b, 0x74, 0x14, 0x53, 0x00, 0x5c, 0x8f, 0xbc, 0xc6, 0x81, 0x13, 0xae, 0x18, 0x42, 0x08, 0xee, 0x14, 0xb8, 0x35, 0x48, 0x0c, 0x6e, 0xfa, 0xfe, 0xd1, 0x8a, 0x76, 0x00, 0x0b, 0x38, 0xe5, 0x85, 0x82, 0x90, 0xf4, 0xd5, 0x1f, 0x52, 0xf0, 0x96, 0xcb, 0xe4, 0x90, 0xe1, 0xeb, 0x5c, 0xac, 0xb2, 0x26, 0xec, 0x49, 0x5a, 0x55, 0xa7, 0xfa, 0x45, 0x78, 0x43, 0xd5, 0x7f, 0xab, 0x67, 0xf8, 0xbe, 0x7e, 0x20, 0x93, 0x34, 0x78, 0x5b, 0xdd, 0x66, 0x5d, 0x7b, 0x63, 0xe4, 0xda, 0xf5, 0x7b, 0x6e, 0x78, 0x92, 0x8b, 0x60, 0x3c, 0x8c, 0x0f, 0x9b, 0xc8, 0x54, 0x64, 0x73, 0x3b, 0x61, 0x27, 0x3e, 0xf9, 0xe2, 0xb8, 0xa0, 0xcd, 0x7c, 0x3b, 0xf8, 0xee, 0x0a, 0x68, 0x72, 0xe3, 0x4d, 0x5a, 0x27, 0xa6, 0x25, 0xe3, 0x5e, 0xaf, 0x7f, 0xf5, 0x44, 0x0b, 0x8b, 0x14, 0x1a, 0xf7, 0x04, 0xdf, 0x70, 0xc9, 0xc1, 0x86, 0x23, 0xbd, 0x11, 0x20, 0x95, 0x13, 0x19, 0x25, 0x05, 0x10, 0x5c, 0xd7, 0xbc, 0xfa, 0x5f, 0x0d, 0x91, 0x9d, 0xa7, 0x06, 0x94, 0x8f, 0xbe, 0x1f, 0x76, 0x1f, 0x31, 0x58, 0x46, 0xaa, 0x3b, 0x48, 0x13, 0xdd, 0x9b, 0xa3, 0xd8, 0x1b, 0x92, 0x04, 0xe5, 0x40, 0x9c, 0x03, 0x82, 0xb6, 0xeb, };
11775 static const u8 ed25519_512_test_vectors_expected_sig[] = {
11776 	0x0f, 0x80, 0xff, 0x5d, 0x17, 0x48, 0x8f, 0xe2, 0x6f, 0x93, 0xc5, 0x43, 0xb0, 0x4e, 0xd9, 0x59, 0xb5, 0xf0, 0x64, 0x3f, 0xc6, 0x1c, 0x7f, 0x2c, 0x3b, 0xc6, 0x01, 0x32, 0xba, 0x9c, 0x62, 0x10, 0xc8, 0xb2, 0x50, 0xea, 0x5e, 0x84, 0xd0, 0x7b, 0x01, 0xde, 0x68, 0xbc, 0x17, 0x44, 0x14, 0xee, 0xeb, 0x31, 0xfd, 0xc2, 0xba, 0x68, 0x23, 0xe2, 0x31, 0xe3, 0x12, 0xa9, 0x1e, 0xde, 0xdd, 0x02, };
11777 static const ec_test_case ed25519_512_test_case = {
11778 	.name = "EDDSA25519-SHA512/wei25519 512",
11779 	.ec_str_p = &wei25519_str_params,
11780 	.priv_key = ed25519_512_test_vectors_priv_key,
11781 	.priv_key_len = sizeof(ed25519_512_test_vectors_priv_key),
11782 	.nn_random = NULL,
11783 	.hash_type = SHA512,
11784 	.msg = (const char *)ed25519_512_test_vectors_message,
11785 	.msglen = sizeof(ed25519_512_test_vectors_message),
11786 	.sig_type = EDDSA25519,
11787 	.exp_sig = ed25519_512_test_vectors_expected_sig,
11788 	.exp_siglen = sizeof(ed25519_512_test_vectors_expected_sig),
11789 	.adata = NULL,
11790 	.adata_len = 0
11791 };
11792 
11793 /************************************************/
11794 static const u8 ed25519_513_test_vectors_priv_key[] = {
11795 	0xd2, 0xe0, 0x1d, 0x25, 0x78, 0xb6, 0x25, 0xa7, 0x06, 0x0a, 0xab, 0xc2, 0x57, 0x65, 0xf1, 0x68, 0xc6, 0x80, 0xce, 0xf7, 0x67, 0xaa, 0x97, 0xca, 0x0e, 0x5e, 0xb3, 0xd6, 0x67, 0x47, 0x4b, 0x2a, };
11796 static const u8 ed25519_513_test_vectors_message[] = {
11797 	0x20, 0xd5, 0xdd, 0x69, 0x9b, 0x28, 0x53, 0x30, 0x2a, 0x68, 0x17, 0x09, 0x4d, 0x5e, 0xa5, 0x12, 0xbd, 0xf8, 0x53, 0x45, 0x04, 0xcb, 0x28, 0x9c, 0x60, 0x24, 0x67, 0x41, 0x07, 0x40, 0xec, 0x7e, 0xb8, 0xea, 0x64, 0x42, 0xc8, 0x0f, 0x14, 0x59, 0x35, 0x06, 0x8f, 0x91, 0x22, 0xfd, 0xf4, 0xa3, 0x9f, 0x20, 0x10, 0xf3, 0x3d, 0xb5, 0x5b, 0x81, 0x4d, 0x97, 0xbf, 0x2e, 0x58, 0x72, 0x32, 0x9f, 0x11, 0x26, 0xd4, 0xeb, 0x95, 0xb8, 0x06, 0xca, 0x19, 0x73, 0x11, 0x31, 0x65, 0xb1, 0x16, 0xbe, 0x87, 0x16, 0x37, 0x1f, 0x81, 0x33, 0x17, 0x79, 0xdc, 0x79, 0xa5, 0xcb, 0x39, 0x42, 0x08, 0x1a, 0xb5, 0xf2, 0x07, 0xf6, 0xb5, 0x3d, 0xb0, 0xe0, 0x03, 0x81, 0x07, 0xd6, 0x3c, 0xa9, 0x77, 0x08, 0x18, 0x19, 0x82, 0xdc, 0xb5, 0xf3, 0xb9, 0x30, 0x10, 0xec, 0x6e, 0xdf, 0xb2, 0xcf, 0xd3, 0x1c, 0xab, 0x00, 0x09, 0x0b, 0x3c, 0x38, 0x51, 0x5f, 0x97, 0x81, 0x76, 0x96, 0x86, 0xcb, 0x17, 0xab, 0x81, 0xd5, 0x4a, 0x8b, 0x77, 0x57, 0x54, 0xd4, 0x2f, 0xba, 0xd0, 0x86, 0xb8, 0x0b, 0x28, 0xd6, 0x36, 0xf7, 0x8b, 0x7e, 0xb7, 0x7e, 0xd9, 0xca, 0x35, 0xb6, 0x84, 0x3a, 0x51, 0x0f, 0x0a, 0xd0, 0xac, 0x1b, 0x20, 0x26, 0x7a, 0x00, 0x03, 0x01, 0xb3, 0xc7, 0x07, 0xa2, 0x0f, 0x02, 0x14, 0xd5, 0x9b, 0x5b, 0x81, 0x99, 0xc2, 0xf9, 0xee, 0x25, 0xd3, 0x20, 0x60, 0xac, 0xe3, 0xe0, 0xf2, 0x59, 0x46, 0x50, 0x41, 0x6a, 0x00, 0x71, 0x6c, 0xd3, 0xf9, 0x86, 0x04, 0xa5, 0xe1, 0x04, 0xb3, 0x33, 0x10, 0xfd, 0xae, 0x94, 0xc3, 0x14, 0x01, 0x3c, 0xdc, 0xa5, 0xba, 0x24, 0x14, 0x40, 0x9e, 0xb7, 0xf1, 0x90, 0x13, 0x94, 0xf0, 0x07, 0xd6, 0xfa, 0x0a, 0x29, 0xdb, 0xe8, 0xec, 0x3d, 0xf9, 0x8c, 0x39, 0x3c, 0x8d, 0x72, 0x69, 0x58, 0x77, 0xcc, 0x9b, 0xaf, 0x49, 0x1e, 0xf3, 0x0e, 0xf7, 0xdb, 0x33, 0x71, 0x60, 0x8c, 0xa9, 0x7c, 0xc6, 0x21, 0x56, 0x25, 0x20, 0xee, 0x58, 0x1d, 0x5d, 0x1c, 0xdb, 0xc7, 0x82, 0x32, 0xd6, 0xc7, 0xe4, 0x39, 0x37, 0xb2, 0xcc, 0x85, 0x49, 0xe6, 0xf1, 0xe0, 0x8d, 0xf5, 0xf2, 0xea, 0xc8, 0x44, 0xfe, 0x0f, 0x82, 0x2b, 0x24, 0x83, 0xad, 0x0a, 0x5d, 0xe3, 0x3b, 0xe6, 0x40, 0x89, 0x49, 0x0e, 0x77, 0xd6, 0x98, 0x00, 0xfa, 0xe2, 0x58, 0x9e, 0xe5, 0x87, 0x12, 0xac, 0x15, 0xa3, 0xf1, 0x9e, 0x6f, 0xfd, 0xbc, 0xa4, 0x2f, 0xe1, 0x89, 0x4e, 0x88, 0x9b, 0x94, 0xc0, 0x4b, 0x04, 0x24, 0x0d, 0xaf, 0xb0, 0xb2, 0x73, 0x0c, 0x23, 0x6b, 0x8c, 0xce, 0xb2, 0xcb, 0x97, 0xaf, 0xd1, 0xd5, 0x15, 0xdc, 0x19, 0xd1, 0x06, 0x7f, 0xd4, 0xab, 0xa8, 0xce, 0x29, 0x7f, 0xd6, 0xd1, 0x10, 0xb3, 0x5a, 0x21, 0xbd, 0x3c, 0x07, 0x5c, 0x57, 0x7d, 0x93, 0xfe, 0x1d, 0xf7, 0x7d, 0x64, 0x8f, 0x71, 0x19, 0x49, 0x20, 0x99, 0xb0, 0x17, 0xaf, 0x44, 0xeb, 0xa0, 0x9c, 0x80, 0x7f, 0x11, 0xa4, 0xc3, 0xf4, 0xa1, 0x1a, 0x2f, 0xff, 0x30, 0x6a, 0x72, 0x8b, 0xa7, 0x89, 0x83, 0x32, 0x3c, 0x92, 0xa2, 0xfd, 0x5f, 0xcc, 0x80, 0xc1, 0x8d, 0x42, 0x34, 0x26, 0xf8, 0x23, 0xa7, 0x3f, 0xe0, 0x40, 0x94, 0x95, 0x52, 0x84, 0x29, 0x3f, 0x5f, 0x6b, 0x3c, 0xa4, 0xff, 0x10, 0x80, 0xdb, 0xb1, 0xe4, 0xc6, 0xf7, 0x4c, 0x1d, 0x93, 0x5e, 0xd2, 0x1e, 0x30, 0x09, 0x4c, 0x7d, 0xe3, 0x36, 0xb8, 0x2d, 0xd8, 0x20, 0x0b, 0x0d, 0x65, 0x95, 0x83, 0xc5, 0xbf, 0xd5, 0x47, 0x0f, 0x9d, 0xb3, 0x42, 0xe7, 0x0e, 0xc4, 0x00, 0x07, 0x42, 0xc5, 0x64, 0x0a, 0x21, 0x4e, 0x3c, 0x2e, };
11798 static const u8 ed25519_513_test_vectors_expected_sig[] = {
11799 	0x87, 0xa0, 0x10, 0x39, 0x4a, 0x9f, 0x2c, 0x90, 0x4e, 0xff, 0xef, 0xca, 0x9f, 0xb4, 0xd5, 0xce, 0x13, 0x79, 0x33, 0x01, 0xa4, 0x92, 0x5b, 0xa5, 0x1d, 0xb1, 0x19, 0x12, 0x3a, 0x4d, 0x73, 0x0a, 0xbf, 0x76, 0x4c, 0xe0, 0x65, 0xe4, 0x8d, 0x90, 0xa7, 0x9d, 0x90, 0x7d, 0x72, 0x54, 0xc4, 0x0c, 0xc3, 0x58, 0x98, 0x7a, 0x46, 0x94, 0x9e, 0x92, 0x8b, 0xbb, 0x3c, 0xd0, 0x85, 0xdf, 0xab, 0x06, };
11800 static const ec_test_case ed25519_513_test_case = {
11801 	.name = "EDDSA25519-SHA512/wei25519 513",
11802 	.ec_str_p = &wei25519_str_params,
11803 	.priv_key = ed25519_513_test_vectors_priv_key,
11804 	.priv_key_len = sizeof(ed25519_513_test_vectors_priv_key),
11805 	.nn_random = NULL,
11806 	.hash_type = SHA512,
11807 	.msg = (const char *)ed25519_513_test_vectors_message,
11808 	.msglen = sizeof(ed25519_513_test_vectors_message),
11809 	.sig_type = EDDSA25519,
11810 	.exp_sig = ed25519_513_test_vectors_expected_sig,
11811 	.exp_siglen = sizeof(ed25519_513_test_vectors_expected_sig),
11812 	.adata = NULL,
11813 	.adata_len = 0
11814 };
11815 
11816 /************************************************/
11817 static const u8 ed25519_514_test_vectors_priv_key[] = {
11818 	0x7c, 0xd7, 0xec, 0x99, 0xdd, 0x03, 0xae, 0xde, 0x1f, 0xf1, 0x07, 0x3e, 0xc2, 0xca, 0x70, 0x10, 0x27, 0x6e, 0x94, 0x7e, 0x2a, 0xa9, 0xb0, 0xe6, 0x5f, 0x87, 0x7e, 0x4c, 0xcf, 0x1b, 0x3a, 0x14, };
11819 static const u8 ed25519_514_test_vectors_message[] = {
11820 	0xa6, 0x03, 0x4a, 0xa3, 0xc2, 0x48, 0x49, 0x23, 0xe8, 0x0e, 0x90, 0xe5, 0xa8, 0xe1, 0x74, 0x83, 0x50, 0xb4, 0xf2, 0xc3, 0xc8, 0x31, 0x9f, 0xaf, 0x1a, 0x2e, 0x32, 0x95, 0x15, 0x0a, 0x68, 0xe1, 0xee, 0xca, 0x1b, 0xc8, 0x49, 0x54, 0xcc, 0x89, 0xd4, 0x73, 0x1a, 0x7f, 0x65, 0x12, 0xaf, 0x01, 0x46, 0x4f, 0xdb, 0xce, 0x5d, 0xf6, 0x8e, 0xe8, 0x06, 0x6a, 0xd9, 0xa2, 0xfd, 0x21, 0xc0, 0x83, 0x5a, 0x76, 0x55, 0x9c, 0xa1, 0xc7, 0x44, 0x9a, 0x93, 0x3b, 0xcb, 0x15, 0xaf, 0x90, 0x22, 0x3d, 0x92, 0x5f, 0xf6, 0x1c, 0xd8, 0x3e, 0xb9, 0x35, 0x69, 0x83, 0x47, 0xa5, 0x70, 0x72, 0x70, 0x9a, 0x86, 0xb4, 0xe5, 0xa7, 0xa6, 0x26, 0xe0, 0x7a, 0x3f, 0x2e, 0x7e, 0x34, 0x1c, 0x77, 0x83, 0xa5, 0x40, 0xf8, 0x4a, 0xa7, 0x3e, 0x91, 0x7e, 0x86, 0x7b, 0xb8, 0x0b, 0xac, 0xe6, 0x25, 0x47, 0x05, 0xa9, 0xd1, 0xa1, 0x18, 0x5d, 0xe5, 0x6e, 0x1a, 0x4e, 0x78, 0xaa, 0xf5, 0x39, 0xe7, 0x49, 0xb8, 0xf7, 0x65, 0xbd, 0x05, 0x2c, 0x4c, 0xd1, 0x5b, 0x63, 0x8b, 0xf8, 0xec, 0xf8, 0x7d, 0x98, 0x14, 0x60, 0x6f, 0xed, 0x5a, 0x69, 0xf4, 0xda, 0xe9, 0xda, 0x47, 0xf3, 0x80, 0x6d, 0xd9, 0x0b, 0xe6, 0x4f, 0xcc, 0xd3, 0x36, 0x5c, 0xbe, 0x9e, 0x01, 0xc5, 0x88, 0xfe, 0x65, 0xd6, 0xb6, 0x03, 0x28, 0x07, 0x40, 0x96, 0x2a, 0xa8, 0xdd, 0xb9, 0x5a, 0x3f, 0x4f, 0x67, 0x4c, 0x03, 0xbc, 0x40, 0x43, 0x09, 0x2c, 0x54, 0x45, 0x95, 0x56, 0x82, 0x70, 0xa2, 0xc2, 0xa8, 0xaa, 0x06, 0xe3, 0xf6, 0x7c, 0x31, 0x99, 0x8c, 0x50, 0xb9, 0xa5, 0x8a, 0xca, 0xd0, 0x06, 0x90, 0xd3, 0x84, 0x81, 0x14, 0xcb, 0x19, 0x32, 0x93, 0xc8, 0xac, 0x21, 0x01, 0x6f, 0xd9, 0x96, 0xf5, 0xc6, 0x42, 0x14, 0x06, 0x4f, 0x82, 0x16, 0x7b, 0x2c, 0x92, 0x0c, 0xd8, 0xa8, 0x39, 0x75, 0x58, 0x52, 0xac, 0x77, 0xc3, 0xd9, 0x05, 0x26, 0xdd, 0x3a, 0xdb, 0x96, 0x83, 0x7c, 0xf4, 0xe7, 0x26, 0xf3, 0x4b, 0xd0, 0x29, 0x55, 0xcb, 0xac, 0x5b, 0x82, 0xc9, 0x2c, 0xf4, 0xaa, 0x8b, 0x54, 0xbb, 0x6e, 0x43, 0x6d, 0xae, 0x9b, 0xf8, 0x93, 0xef, 0x05, 0x0c, 0x6f, 0x13, 0x5a, 0x7e, 0x62, 0xfc, 0xd8, 0x34, 0xda, 0xc1, 0xd2, 0xbe, 0x8b, 0x8e, 0x59, 0xd6, 0x96, 0x13, 0x18, 0x11, 0x70, 0x1c, 0x43, 0x18, 0xbb, 0x6e, 0x9b, 0x5a, 0x20, 0xbe, 0xc6, 0x56, 0xfd, 0x2b, 0xa1, 0x92, 0xe2, 0x73, 0x2f, 0x42, 0x29, 0x63, 0xbe, 0xd4, 0xa4, 0xfd, 0x1e, 0xc9, 0x32, 0x63, 0x98, 0xdc, 0xe2, 0x90, 0xe0, 0x84, 0x8c, 0x70, 0xea, 0x23, 0x6c, 0x04, 0xc7, 0xdb, 0xb3, 0xb6, 0x79, 0x21, 0x44, 0x0c, 0x98, 0xd7, 0x27, 0x53, 0xf6, 0xa3, 0x32, 0xea, 0xad, 0x59, 0xfd, 0x0f, 0x57, 0x74, 0x29, 0x23, 0xfb, 0x62, 0x5f, 0xef, 0x07, 0x0f, 0x34, 0x22, 0x5e, 0xa0, 0x6c, 0x23, 0x63, 0xd1, 0x23, 0x66, 0x6b, 0x99, 0xac, 0x7d, 0x5e, 0x55, 0x0d, 0xa1, 0xe4, 0x04, 0xe5, 0x26, 0xb5, 0xb2, 0x29, 0xcb, 0x13, 0x0b, 0x84, 0xb1, 0x90, 0x3e, 0x43, 0x1c, 0xdb, 0x15, 0xb3, 0x37, 0x70, 0xf5, 0x81, 0x1d, 0x49, 0xfb, 0xd5, 0x0d, 0x60, 0xa3, 0x47, 0x4c, 0x0c, 0x35, 0xfc, 0x02, 0x1d, 0x86, 0x81, 0x81, 0x9e, 0xc7, 0x94, 0xcc, 0x32, 0xa6, 0x34, 0xbc, 0x46, 0xa9, 0x55, 0xaa, 0x02, 0x46, 0xb4, 0xff, 0x11, 0x24, 0x62, 0x3c, 0xba, 0xfb, 0x3c, 0xb9, 0xd3, 0xb9, 0x2a, 0x90, 0xfd, 0xe6, 0x48, 0xe4, 0x14, 0x63, 0x61, 0x92, 0x95, 0x2a, 0x92, 0x29, 0x1e, 0x5f, 0x86, 0xef, 0xdd, 0xb8, 0x9c, 0xa0, 0x78, 0xae, 0xa7, 0x71, 0x7f, 0xc7, };
11821 static const u8 ed25519_514_test_vectors_expected_sig[] = {
11822 	0x6f, 0x99, 0x20, 0x27, 0x70, 0x96, 0x45, 0x35, 0xe4, 0x83, 0xa0, 0xee, 0x01, 0xa5, 0x29, 0x44, 0x2e, 0xb3, 0x21, 0x30, 0x3f, 0xa8, 0x05, 0xd4, 0x75, 0x60, 0x4d, 0x7f, 0xc7, 0x28, 0xa9, 0x10, 0x3f, 0xb7, 0xb5, 0x58, 0xb9, 0x55, 0xf4, 0xd0, 0x37, 0x19, 0xee, 0xfa, 0xa3, 0xb7, 0xed, 0x5b, 0x0d, 0xa7, 0x57, 0x10, 0xbb, 0x98, 0x78, 0x7f, 0x5c, 0x22, 0x82, 0xed, 0x66, 0xe9, 0xf6, 0x0c, };
11823 static const ec_test_case ed25519_514_test_case = {
11824 	.name = "EDDSA25519-SHA512/wei25519 514",
11825 	.ec_str_p = &wei25519_str_params,
11826 	.priv_key = ed25519_514_test_vectors_priv_key,
11827 	.priv_key_len = sizeof(ed25519_514_test_vectors_priv_key),
11828 	.nn_random = NULL,
11829 	.hash_type = SHA512,
11830 	.msg = (const char *)ed25519_514_test_vectors_message,
11831 	.msglen = sizeof(ed25519_514_test_vectors_message),
11832 	.sig_type = EDDSA25519,
11833 	.exp_sig = ed25519_514_test_vectors_expected_sig,
11834 	.exp_siglen = sizeof(ed25519_514_test_vectors_expected_sig),
11835 	.adata = NULL,
11836 	.adata_len = 0
11837 };
11838 
11839 /************************************************/
11840 static const u8 ed25519_515_test_vectors_priv_key[] = {
11841 	0xe3, 0xca, 0x37, 0x13, 0xa2, 0xfd, 0x41, 0x2a, 0xd5, 0x33, 0x6b, 0xc3, 0x56, 0xb7, 0x7b, 0xe0, 0x27, 0xd5, 0xb7, 0x08, 0x15, 0xb3, 0xac, 0x2a, 0xec, 0xd8, 0x34, 0x0e, 0xf5, 0xf8, 0x89, 0xb1, };
11842 static const u8 ed25519_515_test_vectors_message[] = {
11843 	0xdd, 0x99, 0xba, 0xf2, 0x95, 0xe0, 0x13, 0xee, 0xd1, 0x07, 0xba, 0x8a, 0xf8, 0x11, 0x21, 0xaa, 0xf1, 0x83, 0x5a, 0x3c, 0xca, 0x24, 0xf8, 0xe4, 0x64, 0xb4, 0xcf, 0xca, 0xa3, 0xc7, 0xbf, 0xfe, 0x6f, 0x95, 0x36, 0x01, 0x6d, 0x1c, 0x8c, 0xf3, 0x75, 0x03, 0x8c, 0x93, 0x27, 0xe8, 0xe2, 0x1b, 0x00, 0x40, 0x66, 0xf5, 0xea, 0xc0, 0xf7, 0x6a, 0x3e, 0x8e, 0xdf, 0xb0, 0x7b, 0xe8, 0xbd, 0x2f, 0x6b, 0xc7, 0x9c, 0x3b, 0x45, 0x6d, 0xe8, 0x25, 0x95, 0xe2, 0xc2, 0x10, 0x5b, 0xb1, 0xb0, 0xaa, 0xba, 0x5e, 0xee, 0xe1, 0xad, 0xef, 0x75, 0x21, 0x67, 0xd6, 0x33, 0xb3, 0x22, 0xeb, 0xf8, 0xf7, 0xcd, 0x5f, 0xbf, 0x59, 0x50, 0x8f, 0xdb, 0xdb, 0xec, 0xf2, 0x5e, 0x65, 0x7a, 0x9c, 0x70, 0x50, 0xaf, 0x26, 0xa8, 0x0a, 0x08, 0x5b, 0x08, 0x17, 0xc6, 0x21, 0x7e, 0x39, 0xac, 0xd5, 0x4c, 0xb9, 0xfa, 0x09, 0x54, 0x0f, 0xc7, 0xbd, 0xc5, 0x22, 0x6d, 0x6a, 0x27, 0x6d, 0x49, 0x2c, 0xc8, 0xa3, 0xdf, 0xfc, 0x2a, 0xbc, 0x6d, 0x0b, 0x9f, 0xb0, 0x8c, 0xbc, 0xcd, 0xd9, 0x43, 0x2e, 0x44, 0x98, 0x21, 0xa5, 0xdc, 0x98, 0xcf, 0xb3, 0xa4, 0x18, 0xe5, 0x39, 0xc8, 0x90, 0xfe, 0x5a, 0x04, 0x46, 0xb9, 0xf8, 0x1d, 0x30, 0x67, 0x00, 0x92, 0x7a, 0xde, 0x61, 0xcf, 0xdc, 0xc0, 0x62, 0x4f, 0x13, 0xb5, 0x84, 0x07, 0x48, 0x77, 0x46, 0x04, 0x80, 0x57, 0x31, 0xd9, 0x2e, 0x77, 0xd5, 0xde, 0xf6, 0x6b, 0xe4, 0x4c, 0xc8, 0x17, 0x94, 0x6f, 0x1c, 0xd7, 0x58, 0x19, 0x6c, 0xf4, 0x80, 0xf9, 0x9e, 0x71, 0x17, 0x83, 0x5c, 0x4c, 0x87, 0xcb, 0xd6, 0x40, 0x77, 0xa5, 0x62, 0xa8, 0x0c, 0xf1, 0x1d, 0x8c, 0xa6, 0x5b, 0xe7, 0xa9, 0x4d, 0x92, 0xb9, 0xdd, 0xae, 0xa9, 0x97, 0xe9, 0x3f, 0x14, 0x48, 0x57, 0x7e, 0xd6, 0xd8, 0x43, 0x6b, 0x2f, 0x31, 0x44, 0x69, 0x2c, 0x1f, 0xd7, 0xd2, 0x8a, 0x03, 0xe9, 0x27, 0x4b, 0xc9, 0xe8, 0x66, 0x9d, 0x85, 0x75, 0xf5, 0xde, 0x20, 0xcf, 0xbd, 0xbc, 0xb0, 0x4e, 0x9f, 0x39, 0xf3, 0x45, 0x1d, 0x70, 0x48, 0x37, 0x5e, 0x26, 0x98, 0xe7, 0x22, 0x84, 0x6c, 0xb4, 0xf2, 0xd1, 0x9a, 0x81, 0x0c, 0x53, 0xd4, 0xc1, 0xa6, 0xc3, 0xb7, 0x70, 0xfb, 0x40, 0x2d, 0xf0, 0x53, 0x0e, 0x7b, 0x29, 0x07, 0x22, 0x3f, 0xd0, 0x89, 0x9e, 0x00, 0xcb, 0x18, 0x8c, 0xa8, 0x0c, 0x15, 0x31, 0xb4, 0xe3, 0x7f, 0xba, 0x17, 0x6c, 0x17, 0xa2, 0xb8, 0xf5, 0xa3, 0xdd, 0xc7, 0xa9, 0x18, 0x8d, 0x48, 0xff, 0xc2, 0xb2, 0x72, 0xc3, 0xda, 0x9c, 0x9b, 0x89, 0xdf, 0xe5, 0x3f, 0x2f, 0xe7, 0xe3, 0x67, 0x2f, 0x91, 0xd1, 0x18, 0x18, 0x49, 0x1a, 0xce, 0x14, 0x0a, 0xdc, 0xae, 0x98, 0x50, 0x2e, 0x11, 0x4f, 0x4b, 0x35, 0x2b, 0x90, 0xe2, 0xe7, 0xfb, 0xd3, 0x33, 0xb2, 0x45, 0x9e, 0x7f, 0x15, 0xdd, 0x07, 0x64, 0xc9, 0xc3, 0x4e, 0x4c, 0xb7, 0xcc, 0x09, 0x55, 0x00, 0xcd, 0xa0, 0x35, 0xe8, 0xe2, 0xe4, 0xe3, 0xc8, 0xfd, 0x5d, 0xf5, 0xf3, 0xaa, 0x57, 0x9a, 0x73, 0x5d, 0xd8, 0xa9, 0xf1, 0x9e, 0xf3, 0x36, 0xfa, 0x97, 0x11, 0x14, 0xe4, 0x66, 0x18, 0x73, 0x4a, 0x4c, 0x13, 0xd3, 0x0c, 0x81, 0x12, 0x8c, 0xa2, 0x1d, 0xef, 0x47, 0x33, 0x01, 0x03, 0xd2, 0x3d, 0x80, 0xff, 0xe6, 0x74, 0x21, 0xa6, 0xcc, 0xf9, 0xf3, 0x6a, 0x93, 0xf0, 0x56, 0x03, 0xc5, 0x99, 0xee, 0x10, 0xb0, 0x34, 0x51, 0xf3, 0x6b, 0x21, 0x33, 0xc1, 0x87, 0xa7, 0x9a, 0xd9, 0xe6, 0xfd, 0xfb, 0xb1, 0x25, 0x95, 0xab, 0x73, 0xbb, 0x3e, 0x2e, 0x2e, 0x43, 0x03, 0x0f, 0xd3, 0x7e, 0x59, 0x1c, 0xf5, 0x5d, };
11844 static const u8 ed25519_515_test_vectors_expected_sig[] = {
11845 	0xb3, 0x85, 0x7e, 0xa6, 0x1b, 0xaa, 0x9e, 0x62, 0x83, 0x8c, 0x4e, 0x3a, 0x99, 0x65, 0x02, 0xd3, 0x36, 0x4f, 0xe1, 0xec, 0x59, 0x42, 0x58, 0x35, 0x50, 0x73, 0xdd, 0x10, 0xe4, 0x97, 0xc6, 0x00, 0xbe, 0xfb, 0x1f, 0x8f, 0x23, 0x3f, 0xd6, 0xe3, 0xb2, 0xc8, 0x7f, 0x10, 0xdc, 0xb7, 0x26, 0x1a, 0xaf, 0x34, 0x81, 0xbf, 0xd0, 0x90, 0x26, 0x05, 0xac, 0xcc, 0x90, 0x0f, 0xef, 0x84, 0xd4, 0x07, };
11846 static const ec_test_case ed25519_515_test_case = {
11847 	.name = "EDDSA25519-SHA512/wei25519 515",
11848 	.ec_str_p = &wei25519_str_params,
11849 	.priv_key = ed25519_515_test_vectors_priv_key,
11850 	.priv_key_len = sizeof(ed25519_515_test_vectors_priv_key),
11851 	.nn_random = NULL,
11852 	.hash_type = SHA512,
11853 	.msg = (const char *)ed25519_515_test_vectors_message,
11854 	.msglen = sizeof(ed25519_515_test_vectors_message),
11855 	.sig_type = EDDSA25519,
11856 	.exp_sig = ed25519_515_test_vectors_expected_sig,
11857 	.exp_siglen = sizeof(ed25519_515_test_vectors_expected_sig),
11858 	.adata = NULL,
11859 	.adata_len = 0
11860 };
11861 
11862 /************************************************/
11863 static const u8 ed25519_516_test_vectors_priv_key[] = {
11864 	0x29, 0xa6, 0x3d, 0xcd, 0x48, 0xa3, 0x51, 0x77, 0x14, 0x11, 0xfd, 0xdc, 0xab, 0x46, 0xbb, 0x07, 0x1e, 0x91, 0x49, 0x85, 0x76, 0xe8, 0xd0, 0x2f, 0x8b, 0x60, 0x44, 0xf5, 0xbd, 0xd3, 0xed, 0x90, };
11865 static const u8 ed25519_516_test_vectors_message[] = {
11866 	0xff, 0x18, 0xca, 0x0c, 0x20, 0x4c, 0x83, 0x86, 0xa4, 0xaa, 0x74, 0xec, 0x45, 0x73, 0xc7, 0xb6, 0x92, 0x16, 0xb3, 0x14, 0x70, 0xda, 0xed, 0xd9, 0x6a, 0x4f, 0x23, 0x02, 0x11, 0x6c, 0x79, 0x55, 0xd7, 0x2d, 0xac, 0xc8, 0x8e, 0x37, 0x14, 0x55, 0x0c, 0x09, 0xe6, 0xf7, 0xb9, 0xa8, 0x58, 0x62, 0x60, 0xdc, 0x7e, 0x63, 0xda, 0x4c, 0x63, 0x3b, 0xae, 0x01, 0x62, 0xe1, 0x16, 0xe5, 0xc1, 0x79, 0x7b, 0x78, 0xd8, 0x7d, 0x47, 0xff, 0xee, 0xa3, 0xd7, 0x81, 0x9d, 0xf9, 0xc8, 0x52, 0xf0, 0xff, 0x30, 0x93, 0x6a, 0x10, 0x5d, 0x3a, 0xf5, 0x53, 0x1a, 0x8f, 0x89, 0x54, 0x97, 0x11, 0xc1, 0x4c, 0x2d, 0x3e, 0xe1, 0x15, 0x64, 0xe7, 0xc8, 0x52, 0x5b, 0xd5, 0x88, 0x64, 0x00, 0x97, 0x62, 0xa0, 0x55, 0x41, 0xd8, 0xe0, 0x7a, 0xd8, 0x41, 0xa5, 0x5a, 0x6a, 0x9a, 0x00, 0x7e, 0xf2, 0x09, 0xcc, 0xec, 0x4b, 0x56, 0x40, 0xba, 0xbe, 0x35, 0x65, 0x1b, 0x61, 0xdf, 0x42, 0xde, 0x4d, 0x91, 0x0e, 0xe7, 0x3a, 0x93, 0x3c, 0x0b, 0x74, 0xe9, 0x95, 0x75, 0x7e, 0x84, 0xa9, 0x9e, 0xb0, 0x34, 0xf4, 0x18, 0x07, 0x18, 0x3c, 0x90, 0xca, 0x4e, 0xa8, 0xd8, 0x4c, 0xdb, 0xa4, 0x78, 0x61, 0x3c, 0x8e, 0x58, 0x7c, 0xb5, 0xf8, 0xfb, 0x6a, 0x05, 0x50, 0x81, 0xda, 0x6e, 0x90, 0x22, 0x0d, 0x5d, 0x86, 0xe3, 0x4e, 0x5f, 0x91, 0xe4, 0x88, 0xbd, 0x12, 0xc7, 0xa1, 0xa6, 0xb3, 0xc9, 0xfc, 0xe5, 0x30, 0x5e, 0x85, 0x34, 0x66, 0x58, 0xef, 0xfa, 0x81, 0x0d, 0x0e, 0x8a, 0x2a, 0x03, 0x9d, 0xb4, 0xa4, 0xc9, 0x49, 0x65, 0xbe, 0x40, 0x11, 0xf9, 0xd5, 0xe5, 0xda, 0x26, 0x62, 0x33, 0xe6, 0xc4, 0xe1, 0x8e, 0xd4, 0xf8, 0xa2, 0x5a, 0x57, 0xe4, 0x0a, 0x59, 0x1c, 0x7e, 0xd5, 0x90, 0xc0, 0xf8, 0xb1, 0xa1, 0x19, 0xc7, 0xc9, 0x74, 0x7f, 0x69, 0x1b, 0x02, 0x19, 0x6c, 0xd1, 0x8e, 0x69, 0x45, 0x21, 0x3f, 0x1d, 0x4c, 0x8c, 0x95, 0x79, 0xc6, 0xe0, 0xa2, 0xac, 0x45, 0x92, 0x41, 0x28, 0xd6, 0xd9, 0x2c, 0x8e, 0x4c, 0x66, 0x06, 0x53, 0x20, 0x35, 0x3d, 0x48, 0xd1, 0xd5, 0xe1, 0x31, 0x94, 0xd9, 0x05, 0xf8, 0x37, 0x07, 0x8f, 0x8d, 0xac, 0x0b, 0x68, 0xcf, 0x96, 0xae, 0x9e, 0x70, 0x55, 0x4c, 0x14, 0xb2, 0xfa, 0x29, 0xb1, 0x96, 0x30, 0xe4, 0xb0, 0xf5, 0xd2, 0xa7, 0x67, 0xe1, 0x90, 0xef, 0xbc, 0x59, 0x92, 0xc7, 0x09, 0xdc, 0xc9, 0x9a, 0xa0, 0xb5, 0xaa, 0xf4, 0xc4, 0x9d, 0x55, 0x13, 0xe1, 0x74, 0xfd, 0x60, 0x42, 0x36, 0xb0, 0x5b, 0x48, 0xfc, 0xfb, 0x55, 0xc9, 0xaf, 0x10, 0x59, 0x69, 0x27, 0xbc, 0xfa, 0xd3, 0x0b, 0xac, 0xc9, 0x9b, 0x2e, 0x02, 0x61, 0xf9, 0x7c, 0xf2, 0x97, 0xc1, 0x77, 0xf1, 0x92, 0x9d, 0xa1, 0xf6, 0x8d, 0xb9, 0xf9, 0x9a, 0xc6, 0x2f, 0xf2, 0xde, 0x3b, 0xb4, 0x0b, 0x18, 0x6a, 0xa7, 0xe8, 0xc5, 0xd6, 0x12, 0x39, 0x80, 0xd7, 0x59, 0x92, 0x7a, 0x3a, 0x07, 0xaa, 0x20, 0x8b, 0xee, 0xb7, 0x36, 0x79, 0x5a, 0xe5, 0xb8, 0x49, 0xd5, 0xda, 0xe5, 0xe3, 0x57, 0x37, 0x10, 0xaa, 0xa2, 0x4e, 0x96, 0xd5, 0x79, 0x1e, 0x27, 0x30, 0xd0, 0x27, 0x0f, 0x5b, 0x0a, 0x27, 0x05, 0xba, 0x51, 0x5d, 0x14, 0xaa, 0x7e, 0x6f, 0xa6, 0x62, 0x23, 0x75, 0x37, 0x7f, 0x9a, 0xba, 0x64, 0xd0, 0x25, 0x69, 0xa2, 0x09, 0xd3, 0x3d, 0xe6, 0x86, 0xe0, 0x89, 0xec, 0x60, 0x11, 0x8e, 0x48, 0x14, 0xff, 0xc6, 0xc0, 0x77, 0x8c, 0x64, 0x27, 0xbc, 0xe2, 0xb6, 0xb8, 0x44, 0xcf, 0xcd, 0x5a, 0x7c, 0xed, 0x0e, 0x35, 0x30, 0x3f, 0x50, 0xa0, 0xdf, 0xe5, 0xdf, 0x5d, 0xde, 0x1a, 0x2f, 0x23, };
11867 static const u8 ed25519_516_test_vectors_expected_sig[] = {
11868 	0x12, 0xbf, 0x62, 0x95, 0x93, 0xe2, 0xca, 0xad, 0xc9, 0x10, 0xec, 0x40, 0xbf, 0xe2, 0xb7, 0xa6, 0x25, 0x14, 0x12, 0x6b, 0x16, 0xba, 0x3a, 0x43, 0x8d, 0x88, 0xe2, 0xd2, 0x1f, 0x59, 0x5a, 0xae, 0xe8, 0xab, 0xfa, 0x4a, 0xf2, 0xec, 0x87, 0x03, 0x61, 0xd0, 0xea, 0x04, 0xdf, 0xc8, 0xc6, 0xa3, 0x30, 0xfb, 0x28, 0x41, 0xc2, 0xd8, 0x21, 0x1a, 0x64, 0xfa, 0x1e, 0x7e, 0x7d, 0x27, 0x38, 0x00, };
11869 static const ec_test_case ed25519_516_test_case = {
11870 	.name = "EDDSA25519-SHA512/wei25519 516",
11871 	.ec_str_p = &wei25519_str_params,
11872 	.priv_key = ed25519_516_test_vectors_priv_key,
11873 	.priv_key_len = sizeof(ed25519_516_test_vectors_priv_key),
11874 	.nn_random = NULL,
11875 	.hash_type = SHA512,
11876 	.msg = (const char *)ed25519_516_test_vectors_message,
11877 	.msglen = sizeof(ed25519_516_test_vectors_message),
11878 	.sig_type = EDDSA25519,
11879 	.exp_sig = ed25519_516_test_vectors_expected_sig,
11880 	.exp_siglen = sizeof(ed25519_516_test_vectors_expected_sig),
11881 	.adata = NULL,
11882 	.adata_len = 0
11883 };
11884 
11885 /************************************************/
11886 static const u8 ed25519_517_test_vectors_priv_key[] = {
11887 	0xc7, 0x18, 0x8f, 0xdd, 0x80, 0xf4, 0xcd, 0x31, 0x83, 0x9e, 0xc9, 0x58, 0x67, 0x1e, 0x6d, 0xd0, 0x8b, 0x21, 0xf9, 0xd7, 0x52, 0x8c, 0x91, 0x59, 0x14, 0x37, 0x34, 0xf9, 0x4b, 0x16, 0x98, 0x83, };
11888 static const u8 ed25519_517_test_vectors_message[] = {
11889 	0x4a, 0xf5, 0xdf, 0xe3, 0xfe, 0xaa, 0xbe, 0x7f, 0x8f, 0xcd, 0x38, 0x30, 0x8e, 0x0b, 0xd3, 0x85, 0xca, 0xd3, 0x81, 0x1c, 0xbd, 0xc7, 0x9c, 0x94, 0x4e, 0xbf, 0xe3, 0xcd, 0x67, 0x5c, 0xf3, 0xaf, 0xbe, 0xf4, 0x54, 0x2f, 0x54, 0x29, 0x75, 0xc2, 0xe2, 0xa6, 0xe6, 0x6e, 0x26, 0xb3, 0x2a, 0xc3, 0xd7, 0xe1, 0x9e, 0xf7, 0x4c, 0x39, 0xfa, 0x2a, 0x61, 0xc5, 0x68, 0x41, 0xc2, 0xd8, 0x21, 0x2e, 0x2b, 0xd7, 0xfb, 0x49, 0xcf, 0xb2, 0x5c, 0xc3, 0x60, 0x9a, 0x69, 0x3a, 0x6f, 0x2b, 0x9d, 0x4e, 0x22, 0xe2, 0x09, 0x9f, 0x80, 0xb7, 0x77, 0xd3, 0xd0, 0x5f, 0x33, 0xba, 0x7d, 0xb3, 0xc5, 0xab, 0x55, 0x76, 0x6c, 0xeb, 0x1a, 0x13, 0x22, 0xaf, 0x72, 0x6c, 0x56, 0x55, 0x16, 0xce, 0x56, 0x63, 0x29, 0xb9, 0x8f, 0xc5, 0xdc, 0x4c, 0xbd, 0x93, 0xce, 0xfb, 0x62, 0x76, 0x88, 0xc9, 0x77, 0xaf, 0x93, 0x67, 0xb5, 0xc6, 0x96, 0x59, 0xe4, 0x3c, 0xb7, 0xee, 0x75, 0x47, 0x11, 0xd6, 0x65, 0xc0, 0x03, 0x2a, 0xe2, 0x29, 0x34, 0xf4, 0x4c, 0x71, 0xd3, 0x11, 0x78, 0xef, 0x3d, 0x98, 0x10, 0x91, 0x28, 0x74, 0xb6, 0x2f, 0xa5, 0xe4, 0x02, 0x0e, 0x6d, 0x5d, 0x64, 0x58, 0x18, 0x37, 0x32, 0xc1, 0x9e, 0x2e, 0x89, 0x68, 0x5e, 0x04, 0x64, 0xe9, 0x1a, 0x9b, 0x1c, 0x8d, 0x52, 0x51, 0xe2, 0x4e, 0x5f, 0x91, 0x81, 0x3f, 0x50, 0x19, 0xa7, 0x40, 0xa0, 0x4b, 0x5d, 0x91, 0xcb, 0xb8, 0x30, 0x9e, 0x51, 0x61, 0xbb, 0xa7, 0x9d, 0xca, 0xb3, 0x82, 0x39, 0xa0, 0x91, 0xf5, 0x0e, 0x09, 0x9f, 0xf8, 0x19, 0xe3, 0xa7, 0xb5, 0x20, 0x5f, 0xe9, 0x07, 0xcd, 0xfe, 0x9c, 0x0d, 0xc3, 0xee, 0x85, 0xe3, 0x2d, 0x7b, 0xcd, 0x3c, 0xe0, 0x26, 0x35, 0xe2, 0x05, 0x83, 0x88, 0x03, 0x1e, 0x31, 0x7f, 0xbf, 0x22, 0xab, 0x9f, 0x39, 0xf7, 0xf7, 0xe3, 0xcd, 0x1a, 0x11, 0xa9, 0xc1, 0xf4, 0x5f, 0x4e, 0x1e, 0x42, 0xd2, 0x53, 0x6c, 0x12, 0x2c, 0x59, 0x18, 0x37, 0x91, 0x18, 0x47, 0x10, 0x8c, 0xea, 0xfd, 0x99, 0x08, 0x13, 0xc2, 0xb6, 0x34, 0x4c, 0xff, 0xc3, 0x4b, 0xe3, 0x71, 0x61, 0xdd, 0x81, 0x56, 0x26, 0x90, 0x0e, 0x8f, 0xcb, 0x85, 0xc2, 0x1a, 0xfb, 0x4f, 0x6b, 0xe8, 0xad, 0x01, 0x51, 0x6a, 0x31, 0xc2, 0xa6, 0x58, 0x03, 0x15, 0x85, 0x7c, 0x6a, 0x21, 0x67, 0x35, 0xca, 0x99, 0x10, 0x09, 0xdb, 0xc2, 0xea, 0x50, 0x34, 0x16, 0x07, 0x47, 0xa8, 0x69, 0xd5, 0xca, 0xdb, 0x0b, 0x47, 0xff, 0xbd, 0x5d, 0x3a, 0xc9, 0x7f, 0xdd, 0x05, 0x26, 0xca, 0xe6, 0xea, 0xa3, 0x5c, 0xff, 0x7a, 0x16, 0xea, 0xf4, 0xfb, 0x95, 0x0c, 0xa3, 0x15, 0x11, 0x34, 0x6f, 0xea, 0x61, 0x41, 0x99, 0x9a, 0x3f, 0x75, 0x4e, 0x62, 0x81, 0xcf, 0xba, 0x15, 0xe8, 0xa8, 0x26, 0x93, 0x2c, 0x58, 0x9c, 0x5d, 0x24, 0x7c, 0x90, 0x9d, 0x94, 0xb4, 0xea, 0xb7, 0xeb, 0xcb, 0x09, 0x07, 0x76, 0x48, 0xaf, 0x06, 0x5c, 0x2d, 0x86, 0x61, 0x1e, 0xb5, 0x88, 0x45, 0x3e, 0xd7, 0xc2, 0x47, 0x80, 0xd7, 0x3c, 0x68, 0x9c, 0x87, 0x44, 0xaf, 0xd5, 0x33, 0xa8, 0x6d, 0x9e, 0xe9, 0xe3, 0x36, 0x57, 0x32, 0xcb, 0xd0, 0xc3, 0x51, 0xe4, 0x36, 0xf8, 0x98, 0xb7, 0x04, 0x32, 0x92, 0x09, 0x7e, 0x03, 0xe6, 0x08, 0x1a, 0x23, 0xac, 0x86, 0x5e, 0x19, 0xdc, 0x88, 0x58, 0x96, 0x9b, 0x99, 0x9d, 0x01, 0xfa, 0x65, 0xef, 0x20, 0x0c, 0x3f, 0x26, 0x9c, 0x81, 0x8e, 0x30, 0xb9, 0x36, 0x5e, 0xcc, 0x68, 0x3b, 0xcf, 0xe6, 0x9c, 0x20, 0x3b, 0x4e, 0x0a, 0xb6, 0xfe, 0x0b, 0xb8, 0x71, 0xe8, 0xec, 0xaa, 0xae, 0x82, 0xd3, 0xac, 0xd3, 0x5d, 0x5b, 0x50, };
11890 static const u8 ed25519_517_test_vectors_expected_sig[] = {
11891 	0x35, 0xc1, 0x70, 0xdd, 0x0c, 0x6d, 0xc2, 0x92, 0x0a, 0x59, 0x57, 0x75, 0xd8, 0xe2, 0xdd, 0x65, 0x24, 0x3e, 0x9c, 0x1b, 0xf9, 0x6e, 0xf4, 0x27, 0x79, 0x00, 0x1e, 0xd4, 0x5f, 0x01, 0xb7, 0xdf, 0xeb, 0xd6, 0xf6, 0xa7, 0xdc, 0x2d, 0x38, 0x6e, 0xf4, 0xd2, 0xa5, 0x67, 0x79, 0xeb, 0xe7, 0x7f, 0x54, 0xe5, 0xae, 0xcf, 0xda, 0x2d, 0x54, 0xa0, 0x68, 0x47, 0x6b, 0x24, 0xdb, 0xd7, 0x8b, 0x0c, };
11892 static const ec_test_case ed25519_517_test_case = {
11893 	.name = "EDDSA25519-SHA512/wei25519 517",
11894 	.ec_str_p = &wei25519_str_params,
11895 	.priv_key = ed25519_517_test_vectors_priv_key,
11896 	.priv_key_len = sizeof(ed25519_517_test_vectors_priv_key),
11897 	.nn_random = NULL,
11898 	.hash_type = SHA512,
11899 	.msg = (const char *)ed25519_517_test_vectors_message,
11900 	.msglen = sizeof(ed25519_517_test_vectors_message),
11901 	.sig_type = EDDSA25519,
11902 	.exp_sig = ed25519_517_test_vectors_expected_sig,
11903 	.exp_siglen = sizeof(ed25519_517_test_vectors_expected_sig),
11904 	.adata = NULL,
11905 	.adata_len = 0
11906 };
11907 
11908 /************************************************/
11909 static const u8 ed25519_518_test_vectors_priv_key[] = {
11910 	0x38, 0xba, 0x06, 0x21, 0x70, 0x4d, 0x21, 0x55, 0xfc, 0x2f, 0x78, 0x55, 0x51, 0x96, 0x57, 0x5d, 0xe0, 0x6d, 0x80, 0x25, 0x5c, 0x35, 0xe9, 0xdc, 0x96, 0x5b, 0x6f, 0xe9, 0x6a, 0x4d, 0x53, 0x89, };
11911 static const u8 ed25519_518_test_vectors_message[] = {
11912 	0xed, 0x4c, 0x26, 0x83, 0xd6, 0x44, 0xb0, 0x5b, 0x39, 0xb0, 0x48, 0xef, 0x1f, 0x8b, 0x70, 0x25, 0xf2, 0x80, 0xca, 0x7e, 0x8f, 0xf7, 0x2c, 0xb7, 0xed, 0xa9, 0x93, 0x29, 0xfb, 0x79, 0x54, 0xb7, 0x00, 0x40, 0x07, 0x05, 0x27, 0x5f, 0x20, 0xb8, 0x58, 0xcf, 0x7e, 0x34, 0x9a, 0x35, 0x10, 0x66, 0x5b, 0x63, 0x06, 0x09, 0xc5, 0xe2, 0xe6, 0x20, 0x69, 0x26, 0x3a, 0xb9, 0xc5, 0x5e, 0x41, 0x23, 0xa5, 0x64, 0xdc, 0xa6, 0x34, 0x8c, 0x8a, 0x01, 0x33, 0x20, 0x75, 0xe7, 0xa5, 0xbe, 0xc9, 0xc2, 0x0a, 0x03, 0x80, 0x79, 0x57, 0xfe, 0xfa, 0x91, 0x0e, 0x60, 0xc3, 0x5a, 0xe5, 0x79, 0x77, 0x8c, 0xe2, 0xce, 0x42, 0xe6, 0xa6, 0x9a, 0x1b, 0x64, 0x76, 0x81, 0xe4, 0x3e, 0xc4, 0xb6, 0x3b, 0xd5, 0xfb, 0xef, 0xab, 0xb3, 0x17, 0x12, 0xcb, 0x3d, 0x64, 0x19, 0xea, 0xd7, 0x8d, 0xd4, 0x1c, 0x8a, 0x92, 0xaa, 0xce, 0xb6, 0x3c, 0xbf, 0xa8, 0x9d, 0x2a, 0xf3, 0x96, 0x06, 0xde, 0x01, 0x0a, 0x39, 0x7e, 0x30, 0x20, 0x53, 0xa6, 0x15, 0xc1, 0x6e, 0x5e, 0x95, 0xad, 0x99, 0x35, 0xc0, 0x79, 0xa0, 0xb8, 0x10, 0x31, 0x25, 0x78, 0x94, 0x71, 0xa1, 0xe3, 0x57, 0x4f, 0x42, 0x9b, 0x29, 0xe4, 0xd2, 0x25, 0xc7, 0x72, 0x3f, 0xbb, 0x3c, 0xf8, 0x8c, 0xbd, 0x73, 0x82, 0x3d, 0x9f, 0x0b, 0x6c, 0x7d, 0x05, 0xd0, 0x0b, 0xde, 0xb0, 0xfb, 0x0a, 0xd3, 0xd7, 0x13, 0x20, 0x33, 0x18, 0x3e, 0x21, 0xf6, 0xc1, 0xe8, 0xd8, 0xe4, 0xc0, 0xa3, 0xe4, 0xf5, 0x2f, 0x50, 0x01, 0xda, 0x68, 0x71, 0x71, 0x34, 0x5c, 0x6d, 0xc8, 0xb4, 0x2c, 0x42, 0xa6, 0x0d, 0x1f, 0x1f, 0xfa, 0x8f, 0xe3, 0xe7, 0xbc, 0xec, 0xe5, 0x9a, 0x03, 0x58, 0x78, 0xf9, 0xd4, 0xd8, 0x11, 0x27, 0xe2, 0x24, 0x96, 0xa4, 0x9b, 0xfc, 0xf6, 0xbf, 0x8b, 0x46, 0xa8, 0x0b, 0xd5, 0x62, 0xe6, 0x52, 0x55, 0x07, 0x1f, 0x9d, 0x11, 0xa9, 0xeb, 0x04, 0x81, 0xf4, 0x62, 0x6d, 0x4d, 0x71, 0xff, 0xc3, 0x8a, 0xfe, 0x6e, 0x35, 0x8a, 0x4b, 0x28, 0x91, 0x79, 0xcb, 0xce, 0x97, 0x64, 0xd8, 0x6b, 0x57, 0xac, 0x0a, 0x0c, 0x82, 0x7e, 0x8f, 0xf0, 0x78, 0x81, 0x33, 0x06, 0xa1, 0xd5, 0xfa, 0xdd, 0x32, 0xb4, 0x6a, 0x1f, 0xbc, 0xd7, 0x89, 0xff, 0x87, 0x54, 0x06, 0x3e, 0xec, 0xfe, 0x45, 0x31, 0x3b, 0xeb, 0x66, 0x01, 0xc3, 0xa3, 0x01, 0x0e, 0x8e, 0xb9, 0x7c, 0x8e, 0xff, 0xbd, 0x14, 0x0f, 0x1e, 0x68, 0x83, 0x11, 0x09, 0x2d, 0x27, 0x3c, 0x4d, 0xef, 0xca, 0x47, 0xda, 0x6f, 0x1f, 0x08, 0x25, 0x74, 0x46, 0x76, 0xf9, 0xa2, 0x80, 0xb6, 0xc2, 0xa8, 0x14, 0xfa, 0x47, 0xfa, 0xbc, 0x19, 0x80, 0xd0, 0xb3, 0x7f, 0x08, 0x7a, 0x53, 0xca, 0x87, 0x78, 0xf3, 0x9f, 0xfb, 0x47, 0x4f, 0xf5, 0xf1, 0x17, 0x1b, 0x44, 0x2c, 0x76, 0xdd, 0x00, 0x8d, 0x92, 0x18, 0x2f, 0x64, 0x4a, 0x71, 0x4a, 0x0f, 0x01, 0x1e, 0x21, 0x5a, 0x78, 0xb9, 0x7a, 0xf3, 0x7b, 0x33, 0x52, 0x0e, 0xbf, 0x43, 0x37, 0x2a, 0x5a, 0xb0, 0xcf, 0x70, 0xdc, 0xc1, 0xdc, 0x2f, 0x99, 0xd9, 0xe4, 0x43, 0x66, 0x58, 0xf8, 0xe0, 0x7c, 0xdf, 0x0b, 0x9e, 0xa4, 0xdd, 0x62, 0x24, 0xc2, 0x09, 0xe7, 0x52, 0x1b, 0x98, 0x1e, 0xe3, 0x51, 0xc3, 0xc2, 0xdf, 0x3a, 0x50, 0x04, 0x05, 0x27, 0xfc, 0xd7, 0x28, 0x04, 0x17, 0x60, 0x46, 0x40, 0x5d, 0xb7, 0xf6, 0x73, 0x4e, 0x85, 0xc5, 0xd3, 0x90, 0xf5, 0x20, 0xb0, 0xc0, 0x8d, 0xcb, 0xfa, 0x98, 0xb8, 0x74, 0x24, 0x80, 0xd5, 0xe4, 0x6f, 0x9b, 0xe8, 0x93, 0xf6, 0xd6, 0x61, 0x43, 0x40, 0xf8, 0x16, 0x16, 0x11, 0xd5, 0x05, 0x3d, 0xf4, 0x1c, 0xe4, };
11913 static const u8 ed25519_518_test_vectors_expected_sig[] = {
11914 	0x42, 0xbe, 0xd6, 0xa9, 0x87, 0x86, 0xf6, 0x64, 0x71, 0x5f, 0x39, 0xbb, 0x64, 0x3c, 0x40, 0x5a, 0xe1, 0x75, 0x00, 0x56, 0x46, 0x0e, 0x70, 0x04, 0x69, 0xc8, 0x10, 0x38, 0x95, 0x04, 0xc5, 0x1c, 0xff, 0xd9, 0xe1, 0xa9, 0x4c, 0x38, 0xf6, 0x92, 0xfb, 0x31, 0x62, 0x65, 0x31, 0x6d, 0x8f, 0x4d, 0xc3, 0xad, 0x1c, 0xdd, 0x8a, 0x6d, 0x59, 0x91, 0xef, 0x01, 0x0c, 0xd1, 0x48, 0x9d, 0x7c, 0x09, };
11915 static const ec_test_case ed25519_518_test_case = {
11916 	.name = "EDDSA25519-SHA512/wei25519 518",
11917 	.ec_str_p = &wei25519_str_params,
11918 	.priv_key = ed25519_518_test_vectors_priv_key,
11919 	.priv_key_len = sizeof(ed25519_518_test_vectors_priv_key),
11920 	.nn_random = NULL,
11921 	.hash_type = SHA512,
11922 	.msg = (const char *)ed25519_518_test_vectors_message,
11923 	.msglen = sizeof(ed25519_518_test_vectors_message),
11924 	.sig_type = EDDSA25519,
11925 	.exp_sig = ed25519_518_test_vectors_expected_sig,
11926 	.exp_siglen = sizeof(ed25519_518_test_vectors_expected_sig),
11927 	.adata = NULL,
11928 	.adata_len = 0
11929 };
11930 
11931 /************************************************/
11932 static const u8 ed25519_519_test_vectors_priv_key[] = {
11933 	0xae, 0x33, 0x1f, 0xc2, 0xa1, 0x47, 0x59, 0xb7, 0x3f, 0x1c, 0xd9, 0x65, 0xe4, 0x85, 0x14, 0xe1, 0x2b, 0x29, 0xf6, 0x3b, 0x06, 0xcc, 0xfc, 0x0a, 0xd4, 0x9f, 0x36, 0x82, 0x0e, 0x57, 0xec, 0x72, };
11934 static const u8 ed25519_519_test_vectors_message[] = {
11935 	0x57, 0x16, 0x00, 0x33, 0x90, 0xe4, 0xf5, 0x21, 0x65, 0x98, 0xa0, 0x3d, 0x7c, 0x43, 0x0d, 0xbf, 0x49, 0x5e, 0xe3, 0xa7, 0x55, 0x7b, 0x58, 0x06, 0x32, 0xba, 0x59, 0xf1, 0x51, 0x98, 0xb6, 0x18, 0x0a, 0x42, 0x46, 0x9c, 0x23, 0x7d, 0xb5, 0xbc, 0x81, 0xf2, 0x9c, 0xfa, 0xab, 0x0a, 0xff, 0x3c, 0x99, 0x66, 0x30, 0x9a, 0xb0, 0x69, 0x58, 0xc9, 0xd7, 0x12, 0x6a, 0xdd, 0x78, 0xe3, 0xb3, 0x24, 0x59, 0xff, 0x8a, 0x0e, 0x0b, 0xde, 0xf8, 0x74, 0xb5, 0x8e, 0x60, 0x83, 0x66, 0x8f, 0x38, 0xad, 0x7d, 0x63, 0xaa, 0xe1, 0xf1, 0x2e, 0x26, 0xa6, 0x13, 0x34, 0x8f, 0x9f, 0x03, 0xea, 0x5d, 0x20, 0x5f, 0x04, 0x5d, 0x78, 0xcc, 0x89, 0x02, 0xd4, 0x7f, 0x81, 0xe8, 0xb5, 0x22, 0x93, 0xe7, 0x0e, 0x86, 0xc9, 0x80, 0x3d, 0x4d, 0xac, 0xea, 0x86, 0xc3, 0xb6, 0x74, 0x58, 0xae, 0x35, 0x79, 0xbc, 0x11, 0x11, 0x3b, 0x54, 0x90, 0xbc, 0xf3, 0xe1, 0xcd, 0x4e, 0x79, 0x79, 0xc2, 0x64, 0xd8, 0x35, 0x16, 0x1f, 0xd5, 0x5e, 0xfe, 0x95, 0x3b, 0x4c, 0x26, 0x39, 0x5d, 0xd9, 0x2c, 0xa4, 0x93, 0x09, 0x20, 0xe9, 0x04, 0xfa, 0xdc, 0x08, 0x89, 0xbb, 0x78, 0x22, 0xb1, 0xdf, 0xc4, 0x45, 0x26, 0x04, 0x84, 0x0d, 0xf0, 0x24, 0xdb, 0x08, 0x21, 0xd2, 0xd5, 0xe9, 0x67, 0x85, 0xa5, 0xc3, 0x7d, 0xbf, 0xd2, 0xc3, 0x75, 0x98, 0x32, 0x83, 0xe9, 0xb5, 0xb4, 0x3a, 0x32, 0x07, 0xa6, 0xa9, 0xb8, 0x33, 0x94, 0x83, 0x29, 0xd5, 0xde, 0x41, 0xe4, 0x50, 0x08, 0xbc, 0xba, 0xd4, 0x93, 0xde, 0x57, 0x54, 0xdd, 0x83, 0xde, 0xcc, 0x44, 0x0e, 0x51, 0x66, 0xed, 0xaa, 0xe0, 0x20, 0x8f, 0x00, 0x0c, 0x5f, 0x6d, 0x9c, 0x37, 0x21, 0x53, 0x20, 0x9e, 0x5b, 0x75, 0x78, 0x11, 0x6f, 0x89, 0xcf, 0x2f, 0x8b, 0x10, 0x04, 0xd1, 0x30, 0x7e, 0xa7, 0x9e, 0xd3, 0x74, 0x80, 0xf3, 0x19, 0x4a, 0x7e, 0x17, 0x98, 0x3a, 0x23, 0x04, 0x65, 0xcc, 0xc3, 0x0f, 0xcc, 0x1a, 0x62, 0xd2, 0x80, 0xfb, 0xba, 0xcc, 0xf0, 0x06, 0xdc, 0x4d, 0xee, 0x0e, 0xa7, 0x96, 0xb8, 0x1a, 0xcc, 0xc6, 0x1a, 0x06, 0x3e, 0x2c, 0x08, 0x3d, 0xae, 0xc0, 0x39, 0xbd, 0x9a, 0x64, 0xa7, 0x70, 0x24, 0xaf, 0x82, 0xec, 0x1b, 0x08, 0x98, 0xa3, 0x15, 0x43, 0x29, 0xfd, 0xf6, 0x16, 0x73, 0xc3, 0x6e, 0x4c, 0xc8, 0x1f, 0x7a, 0x41, 0x26, 0xe5, 0x62, 0x90, 0xe4, 0xb4, 0x56, 0x81, 0x9b, 0xde, 0xbf, 0x48, 0xcb, 0x5a, 0x40, 0x95, 0x5b, 0xab, 0x29, 0x7c, 0x2b, 0xbc, 0xb0, 0x18, 0xad, 0xbf, 0x24, 0x82, 0x86, 0x60, 0xa5, 0xd1, 0x2a, 0x06, 0x13, 0xbf, 0x3c, 0xcb, 0x5e, 0xeb, 0x9a, 0x17, 0xfb, 0x0a, 0x05, 0x47, 0xdb, 0x8d, 0xa2, 0x4d, 0x2e, 0xfb, 0x87, 0xba, 0x1b, 0x84, 0x31, 0x42, 0xa7, 0x5e, 0x4c, 0xa0, 0xb0, 0xa3, 0x33, 0xe4, 0xa1, 0x4f, 0xab, 0x35, 0xa6, 0x26, 0x69, 0x32, 0x9c, 0xa8, 0x75, 0x3f, 0x01, 0x6a, 0xc7, 0x0c, 0xd9, 0x97, 0xe8, 0xbc, 0x19, 0xee, 0x44, 0x8a, 0xea, 0xf0, 0xf4, 0xbf, 0x3c, 0xe5, 0x23, 0x05, 0x50, 0x57, 0x8a, 0xb6, 0x4c, 0x19, 0x01, 0x94, 0x46, 0xce, 0x2d, 0x9c, 0x01, 0xa0, 0x3d, 0x88, 0x9a, 0x99, 0x09, 0x86, 0x0a, 0xef, 0x76, 0xf0, 0x67, 0xc5, 0x0b, 0x61, 0xc3, 0xd0, 0xf1, 0x2c, 0xc8, 0x68, 0x6f, 0x5c, 0x31, 0xbf, 0x03, 0x2a, 0x84, 0x10, 0x15, 0xcf, 0xef, 0xf1, 0xcf, 0xda, 0xe9, 0x4f, 0x6b, 0x21, 0xda, 0xe9, 0x41, 0xb3, 0x35, 0xdc, 0x82, 0x1f, 0x32, 0x84, 0xce, 0x31, 0x50, 0x8f, 0x5d, 0xb5, 0xc4, 0x48, 0xff, 0xaa, 0x37, 0x73, 0xe9, 0xbe, 0x1a, 0x4c, 0x85, 0xa1, 0xc5, 0x8b, 0x00, 0x9f, 0xa3, };
11936 static const u8 ed25519_519_test_vectors_expected_sig[] = {
11937 	0x75, 0xf7, 0x39, 0x08, 0x88, 0x77, 0xe0, 0x6d, 0xc5, 0x6d, 0xae, 0xc8, 0xf1, 0xe4, 0xd2, 0x11, 0xb7, 0x54, 0xe3, 0xc3, 0xed, 0xbf, 0xa7, 0xed, 0xa4, 0x44, 0xf1, 0x8c, 0x49, 0xb6, 0x9c, 0x5a, 0x14, 0x2d, 0xb4, 0x5a, 0x0a, 0x76, 0x50, 0xe4, 0x7d, 0x10, 0x55, 0x0b, 0xa6, 0x81, 0xff, 0x45, 0xdd, 0x44, 0x63, 0xc4, 0xac, 0x48, 0xbf, 0x44, 0xb7, 0x30, 0x34, 0xbd, 0x56, 0x59, 0x22, 0x0e, };
11938 static const ec_test_case ed25519_519_test_case = {
11939 	.name = "EDDSA25519-SHA512/wei25519 519",
11940 	.ec_str_p = &wei25519_str_params,
11941 	.priv_key = ed25519_519_test_vectors_priv_key,
11942 	.priv_key_len = sizeof(ed25519_519_test_vectors_priv_key),
11943 	.nn_random = NULL,
11944 	.hash_type = SHA512,
11945 	.msg = (const char *)ed25519_519_test_vectors_message,
11946 	.msglen = sizeof(ed25519_519_test_vectors_message),
11947 	.sig_type = EDDSA25519,
11948 	.exp_sig = ed25519_519_test_vectors_expected_sig,
11949 	.exp_siglen = sizeof(ed25519_519_test_vectors_expected_sig),
11950 	.adata = NULL,
11951 	.adata_len = 0
11952 };
11953 
11954 /************************************************/
11955 static const u8 ed25519_520_test_vectors_priv_key[] = {
11956 	0x82, 0x43, 0x5f, 0x39, 0x79, 0x01, 0x06, 0xb3, 0xaf, 0x72, 0xf9, 0x1f, 0x14, 0xc9, 0x28, 0xd2, 0x46, 0x5f, 0x98, 0xcd, 0xd1, 0x00, 0x84, 0xc4, 0xa4, 0x4d, 0x19, 0xaf, 0x71, 0xa1, 0x92, 0x7c, };
11957 static const u8 ed25519_520_test_vectors_message[] = {
11958 	0xf3, 0xd6, 0xc4, 0x6a, 0xc5, 0x24, 0x8d, 0x53, 0x86, 0xb6, 0xb6, 0x84, 0x62, 0x59, 0x7d, 0x64, 0x70, 0x39, 0xf5, 0x44, 0xbb, 0x01, 0xac, 0x2d, 0x10, 0x67, 0xda, 0xaa, 0xa3, 0x97, 0xd2, 0xdb, 0xaf, 0x12, 0x5a, 0x1c, 0xf8, 0xfd, 0xf2, 0x80, 0xa6, 0xaf, 0xec, 0x32, 0x4d, 0x53, 0x11, 0xf5, 0x43, 0x68, 0x8a, 0x15, 0x6c, 0x84, 0x98, 0x19, 0xbb, 0x04, 0x6b, 0x91, 0x1c, 0x42, 0xea, 0x3c, 0xa0, 0x1b, 0x99, 0x80, 0x8c, 0x4d, 0x1f, 0x3b, 0x8b, 0x15, 0xda, 0x3e, 0xfe, 0x2f, 0x32, 0x52, 0x3e, 0xc3, 0xb0, 0x9c, 0x84, 0xb4, 0x8c, 0xff, 0xd1, 0x3c, 0x17, 0xc9, 0xe2, 0x6c, 0x91, 0x2d, 0x9c, 0x3e, 0x93, 0x46, 0xdf, 0xae, 0x3f, 0xd0, 0xc5, 0x6c, 0x88, 0x58, 0x78, 0x07, 0x82, 0xf6, 0x1a, 0x4c, 0x4d, 0xbf, 0xff, 0x1e, 0x9c, 0xb4, 0xb3, 0x62, 0xcd, 0x80, 0x01, 0xf9, 0xcd, 0xfe, 0xb1, 0xa7, 0x20, 0x82, 0xdc, 0xe9, 0xc9, 0xad, 0xe5, 0x2e, 0xff, 0xc9, 0x74, 0x46, 0x88, 0xac, 0x0b, 0x86, 0xc8, 0x82, 0x66, 0xb5, 0x3d, 0x89, 0x5c, 0x17, 0xea, 0xd9, 0xe8, 0x9e, 0xd8, 0xd2, 0x4d, 0x40, 0x64, 0x2f, 0x3a, 0xd3, 0xb9, 0xbf, 0x9b, 0xbc, 0x4d, 0xda, 0x79, 0x66, 0xef, 0x83, 0x28, 0x28, 0x9f, 0xb3, 0x1e, 0x17, 0xc8, 0x1f, 0xd0, 0x28, 0xef, 0x1b, 0xd9, 0xa1, 0xd4, 0xc7, 0x92, 0xe8, 0x6e, 0xc2, 0xdb, 0xdc, 0xe3, 0xf9, 0x37, 0xee, 0xcc, 0x3e, 0xeb, 0x51, 0x88, 0xd3, 0x25, 0x94, 0x19, 0x19, 0xbb, 0xf7, 0x5b, 0x43, 0x88, 0xe2, 0x39, 0x95, 0x07, 0xa3, 0xd7, 0xfb, 0x38, 0x75, 0x02, 0xa9, 0x5f, 0x42, 0x1c, 0x85, 0x82, 0x6c, 0x1c, 0x91, 0x76, 0xc9, 0x23, 0xe3, 0x16, 0x31, 0x0a, 0x4b, 0xa4, 0x5c, 0x8a, 0x5e, 0xf7, 0x55, 0x7c, 0xf8, 0x7b, 0x77, 0x02, 0x0b, 0x24, 0xf5, 0xba, 0x2b, 0xfd, 0x12, 0x28, 0x10, 0x95, 0x66, 0x30, 0x7f, 0xea, 0x65, 0xec, 0x01, 0x50, 0x19, 0x69, 0x12, 0x17, 0xbc, 0xe6, 0x9a, 0xee, 0x16, 0xf7, 0x62, 0x49, 0xc5, 0x8b, 0xb3, 0xe5, 0x21, 0x71, 0xcf, 0xef, 0xd5, 0x25, 0x4e, 0x5e, 0x0f, 0x39, 0x71, 0x69, 0x18, 0x6d, 0xc7, 0xcd, 0x9c, 0x1a, 0x85, 0xc8, 0x10, 0x34, 0xe0, 0x37, 0x18, 0x3d, 0x6e, 0xa2, 0x2a, 0xee, 0x8b, 0xb7, 0x47, 0x20, 0xd3, 0x4a, 0xc7, 0xa5, 0xaf, 0x1e, 0x92, 0xfb, 0x81, 0x85, 0xac, 0xe0, 0x1d, 0x9b, 0xf0, 0xf0, 0xf9, 0x00, 0x61, 0x01, 0xfc, 0xfa, 0xc8, 0xbb, 0xad, 0x17, 0x1b, 0x43, 0x70, 0x36, 0xef, 0x16, 0xcd, 0xae, 0x18, 0x81, 0xfc, 0x32, 0x55, 0xca, 0x35, 0x9b, 0xba, 0x1e, 0x94, 0xf7, 0x9f, 0x64, 0x55, 0x55, 0x95, 0x0c, 0x47, 0x83, 0xba, 0xb0, 0xa9, 0x44, 0xf7, 0xde, 0x8d, 0xf6, 0x92, 0x58, 0xb6, 0xaf, 0xe2, 0xb5, 0x93, 0x22, 0x17, 0x19, 0x5d, 0xa2, 0x45, 0xfe, 0xe1, 0x2a, 0xc3, 0x43, 0x82, 0x4a, 0x0b, 0x64, 0x03, 0xdf, 0xe4, 0x62, 0xd4, 0x3d, 0x28, 0x8d, 0xb3, 0x1f, 0x99, 0x09, 0x7e, 0xc3, 0xed, 0xc6, 0xe7, 0x65, 0x47, 0xa3, 0x74, 0x2f, 0x03, 0xc7, 0x77, 0xef, 0xb1, 0x58, 0xf5, 0x8d, 0x40, 0x53, 0xfa, 0x6c, 0xc8, 0xd6, 0x8b, 0x19, 0x6a, 0xf4, 0xf9, 0xde, 0x51, 0x6f, 0xd9, 0xfb, 0x7a, 0x6d, 0x5d, 0x9e, 0xe4, 0xa8, 0x9f, 0x9b, 0x9b, 0xce, 0x1e, 0x4d, 0xee, 0x35, 0x7a, 0x1e, 0x52, 0xc0, 0x54, 0x4c, 0xfb, 0x35, 0xb7, 0x09, 0x2d, 0x1a, 0xa5, 0xa6, 0xf7, 0xf4, 0xc7, 0x60, 0x26, 0x10, 0xe9, 0xc0, 0x0e, 0xf5, 0xb8, 0x76, 0x1b, 0xc7, 0x22, 0x79, 0xba, 0x22, 0x8a, 0x18, 0xb8, 0x40, 0x0b, 0xd7, 0x6d, 0x5b, 0x2b, 0xfd, 0x7c, 0x3c, 0x04, 0xaa, 0xc4, 0x43, 0x6d, 0xae, 0x2e, 0x98, };
11959 static const u8 ed25519_520_test_vectors_expected_sig[] = {
11960 	0x1d, 0xaa, 0x44, 0xef, 0x06, 0xd4, 0xc1, 0x0d, 0xdb, 0x48, 0x67, 0x84, 0x23, 0xc5, 0xf1, 0x03, 0xa1, 0xb5, 0x68, 0xd4, 0x2b, 0x20, 0xcc, 0x64, 0xaf, 0x11, 0x0f, 0xce, 0x9d, 0x76, 0x79, 0xa2, 0xde, 0xe4, 0x12, 0xb4, 0x98, 0x05, 0x85, 0xc2, 0x6c, 0x32, 0x0d, 0xba, 0xa6, 0x01, 0xc4, 0x72, 0xde, 0xfc, 0x3c, 0x85, 0x41, 0x5d, 0xae, 0xcd, 0xd6, 0xd2, 0xd9, 0xea, 0xca, 0xc8, 0x5e, 0x07, };
11961 static const ec_test_case ed25519_520_test_case = {
11962 	.name = "EDDSA25519-SHA512/wei25519 520",
11963 	.ec_str_p = &wei25519_str_params,
11964 	.priv_key = ed25519_520_test_vectors_priv_key,
11965 	.priv_key_len = sizeof(ed25519_520_test_vectors_priv_key),
11966 	.nn_random = NULL,
11967 	.hash_type = SHA512,
11968 	.msg = (const char *)ed25519_520_test_vectors_message,
11969 	.msglen = sizeof(ed25519_520_test_vectors_message),
11970 	.sig_type = EDDSA25519,
11971 	.exp_sig = ed25519_520_test_vectors_expected_sig,
11972 	.exp_siglen = sizeof(ed25519_520_test_vectors_expected_sig),
11973 	.adata = NULL,
11974 	.adata_len = 0
11975 };
11976 
11977 /************************************************/
11978 static const u8 ed25519_521_test_vectors_priv_key[] = {
11979 	0x1b, 0xea, 0x77, 0x26, 0xd9, 0x12, 0xc5, 0x5e, 0xc7, 0x8b, 0x0c, 0x16, 0x1a, 0x1a, 0xd3, 0xc9, 0xdd, 0x7b, 0xc3, 0x29, 0xf8, 0x5d, 0x26, 0xf6, 0x2b, 0x92, 0xe3, 0x1d, 0x16, 0xd8, 0x3b, 0x48, };
11980 static const u8 ed25519_521_test_vectors_message[] = {
11981 	0xb1, 0x12, 0x83, 0xb1, 0xf0, 0xce, 0x54, 0x9e, 0x58, 0x04, 0x73, 0x0a, 0xc3, 0x20, 0x7a, 0xc0, 0x03, 0x32, 0xd2, 0xaa, 0xcf, 0x9c, 0x31, 0x0d, 0x38, 0x32, 0xd8, 0x79, 0xf9, 0x63, 0x4b, 0xd8, 0xa5, 0x8a, 0xdf, 0x19, 0x9e, 0x4b, 0x86, 0x3b, 0xb1, 0x74, 0x81, 0xd2, 0x8a, 0xcb, 0x2d, 0xa0, 0xe1, 0x55, 0x7b, 0x83, 0x36, 0xa4, 0x00, 0xf6, 0x29, 0x56, 0x25, 0x03, 0x1d, 0x09, 0xe4, 0xdf, 0x4d, 0x31, 0x9b, 0xbc, 0x1e, 0x8f, 0x6e, 0x92, 0x32, 0xd2, 0x30, 0x53, 0xbb, 0x3f, 0xfa, 0xc4, 0xfe, 0x2c, 0x70, 0xce, 0x30, 0x77, 0xfc, 0x00, 0x60, 0xa5, 0xcb, 0x46, 0x92, 0xa1, 0xcf, 0x0b, 0x3e, 0x62, 0xfe, 0x45, 0x48, 0x02, 0xae, 0x10, 0xb8, 0x3d, 0xed, 0x61, 0xb6, 0xbf, 0x45, 0x4c, 0xa7, 0x5e, 0x4c, 0xda, 0xd5, 0x53, 0x2f, 0x20, 0xb7, 0x06, 0x54, 0xf1, 0x2b, 0xa9, 0x06, 0xf0, 0x03, 0xa8, 0xb9, 0xe9, 0x86, 0xf1, 0x5a, 0x39, 0x41, 0x9d, 0xeb, 0x2e, 0xa1, 0xea, 0xd7, 0x59, 0x82, 0x90, 0xee, 0xeb, 0xf9, 0x25, 0x2b, 0x0c, 0x27, 0x60, 0x5a, 0x7a, 0x73, 0xa6, 0xab, 0xeb, 0xb4, 0x22, 0x71, 0xd7, 0x1a, 0x3c, 0x19, 0x7a, 0x46, 0xbc, 0xc8, 0xdb, 0x11, 0xd9, 0x24, 0x28, 0x42, 0xf3, 0x78, 0x36, 0x4a, 0x37, 0xee, 0xca, 0xa3, 0x4e, 0x98, 0x21, 0x35, 0xbe, 0x34, 0x18, 0x2c, 0x69, 0xca, 0x8e, 0x6e, 0x3c, 0x8c, 0x90, 0xe1, 0xb4, 0xb2, 0xb4, 0x75, 0x81, 0x5a, 0x17, 0x83, 0x77, 0xae, 0x01, 0x65, 0xa7, 0x64, 0xc8, 0xba, 0x28, 0x89, 0xb5, 0xab, 0x29, 0x09, 0x49, 0xd8, 0x48, 0x7a, 0x88, 0xe0, 0xd3, 0xd2, 0xbc, 0x7e, 0x25, 0x20, 0x17, 0x6a, 0xa6, 0xff, 0x9f, 0xf0, 0xc4, 0x09, 0xff, 0x80, 0x51, 0x5f, 0x4f, 0x0b, 0x83, 0xc5, 0xe8, 0x2c, 0x23, 0xfd, 0x33, 0x26, 0xcd, 0xd6, 0xb7, 0x62, 0x52, 0xe7, 0xfd, 0xdc, 0xd6, 0xe4, 0x77, 0x09, 0x78, 0xcd, 0x50, 0x3e, 0xd2, 0xd6, 0xb4, 0x80, 0x10, 0x11, 0x67, 0xd3, 0xf1, 0x91, 0xfe, 0xd8, 0xd6, 0xd7, 0x4d, 0x74, 0xa2, 0x00, 0x7d, 0xb1, 0x09, 0x2e, 0x46, 0xa2, 0x3d, 0xde, 0xcd, 0xdc, 0xdb, 0x98, 0x46, 0x64, 0x04, 0x7b, 0x8d, 0xd7, 0xcc, 0x8a, 0x57, 0x6e, 0x1a, 0x80, 0x6f, 0x52, 0xcb, 0x02, 0x7a, 0x94, 0x80, 0xa9, 0x5c, 0xc4, 0x4b, 0x1e, 0x6f, 0x2e, 0x28, 0x6e, 0x9b, 0x7a, 0x6b, 0xf7, 0xb3, 0x96, 0xfa, 0x54, 0x96, 0xb7, 0xa5, 0xb1, 0xc0, 0x3d, 0x9c, 0x5c, 0x27, 0xda, 0x1a, 0x42, 0x99, 0x0d, 0x10, 0xb1, 0x2f, 0xb8, 0x64, 0x0e, 0x15, 0x96, 0xf2, 0x6b, 0x36, 0x6d, 0x27, 0x0b, 0xa6, 0x4f, 0x99, 0xaf, 0xff, 0xe3, 0xfe, 0xce, 0x05, 0xa9, 0xb0, 0x25, 0x4b, 0x20, 0x8c, 0x79, 0x97, 0xcd, 0xb5, 0x12, 0xfc, 0x77, 0x52, 0x79, 0x54, 0xa1, 0xcb, 0x50, 0xfd, 0xab, 0x1c, 0xc9, 0xa4, 0x51, 0x62, 0x74, 0x1f, 0xd6, 0xf9, 0xd3, 0xfd, 0x5f, 0x2e, 0x38, 0x28, 0x53, 0xd7, 0x33, 0x5d, 0xba, 0x1e, 0x6b, 0x29, 0x59, 0xdd, 0x86, 0xe1, 0x25, 0xe6, 0x7b, 0x53, 0xdc, 0x8e, 0x45, 0x3c, 0x81, 0x0b, 0xc0, 0x1b, 0xf2, 0x0b, 0xce, 0x7b, 0x61, 0x8d, 0xd5, 0xd1, 0xed, 0x78, 0x41, 0x06, 0xee, 0x06, 0xa3, 0xec, 0xaf, 0x6b, 0x3b, 0xee, 0x0b, 0x56, 0x83, 0x3b, 0x0b, 0x81, 0x31, 0x39, 0xc5, 0xa6, 0x96, 0x00, 0x0a, 0x44, 0x9c, 0x97, 0x90, 0x6a, 0x2f, 0xbd, 0xdc, 0x2d, 0x9d, 0xe9, 0x40, 0x6e, 0xa2, 0x82, 0xac, 0x4e, 0xe5, 0xef, 0x8b, 0xf3, 0x85, 0x4c, 0x74, 0xa6, 0xb7, 0x17, 0x3d, 0xd2, 0xf7, 0x9c, 0x7a, 0x12, 0x6f, 0x3c, 0x7b, 0x04, 0x33, 0xfd, 0x4e, 0xa2, 0x6e, 0x87, 0x7a, 0x14, 0x83, 0x1d, 0xd4, 0x15, 0xa1, 0x9d, };
11982 static const u8 ed25519_521_test_vectors_expected_sig[] = {
11983 	0xf9, 0xb0, 0x45, 0x17, 0xbd, 0x4f, 0xd8, 0xef, 0x90, 0xf2, 0x14, 0x0f, 0xc9, 0x5d, 0xc1, 0x66, 0x20, 0xd1, 0x60, 0x2a, 0xb3, 0x6c, 0x9b, 0x16, 0x5f, 0xff, 0x3a, 0xba, 0x97, 0x8d, 0x59, 0x76, 0x71, 0x10, 0xbb, 0x4e, 0x07, 0xa4, 0x8f, 0x45, 0x12, 0x14, 0x47, 0xac, 0x0c, 0x1a, 0xba, 0xc5, 0x85, 0xd3, 0x91, 0xd4, 0x04, 0x20, 0x41, 0x89, 0x86, 0x28, 0xa2, 0xd2, 0xdc, 0xc2, 0x51, 0x0d, };
11984 static const ec_test_case ed25519_521_test_case = {
11985 	.name = "EDDSA25519-SHA512/wei25519 521",
11986 	.ec_str_p = &wei25519_str_params,
11987 	.priv_key = ed25519_521_test_vectors_priv_key,
11988 	.priv_key_len = sizeof(ed25519_521_test_vectors_priv_key),
11989 	.nn_random = NULL,
11990 	.hash_type = SHA512,
11991 	.msg = (const char *)ed25519_521_test_vectors_message,
11992 	.msglen = sizeof(ed25519_521_test_vectors_message),
11993 	.sig_type = EDDSA25519,
11994 	.exp_sig = ed25519_521_test_vectors_expected_sig,
11995 	.exp_siglen = sizeof(ed25519_521_test_vectors_expected_sig),
11996 	.adata = NULL,
11997 	.adata_len = 0
11998 };
11999 
12000 /************************************************/
12001 static const u8 ed25519_522_test_vectors_priv_key[] = {
12002 	0xd0, 0x1a, 0x0e, 0xad, 0x9d, 0x69, 0x48, 0x33, 0x28, 0x3b, 0x9c, 0xd7, 0x29, 0x9a, 0x7b, 0xd7, 0x5f, 0xa9, 0x0b, 0x1d, 0x2d, 0x78, 0x84, 0xe4, 0x55, 0x7b, 0x33, 0xc9, 0x98, 0x77, 0x2a, 0x68, };
12003 static const u8 ed25519_522_test_vectors_message[] = {
12004 	0x76, 0x27, 0x53, 0x4e, 0x9a, 0x83, 0xd1, 0xe4, 0x06, 0xab, 0x94, 0x8d, 0x30, 0xd1, 0xda, 0x9c, 0x6a, 0x5d, 0xb0, 0x8e, 0x0f, 0xeb, 0x7f, 0xc5, 0xba, 0x5c, 0xbf, 0x76, 0x84, 0x9e, 0xe8, 0xad, 0xd4, 0x84, 0x7e, 0xf5, 0xca, 0x5a, 0x0d, 0xae, 0x41, 0x1a, 0xca, 0x09, 0x74, 0x51, 0xcb, 0x4c, 0x2b, 0x49, 0x8c, 0x94, 0x70, 0x97, 0x40, 0x70, 0x07, 0x64, 0x0d, 0xc1, 0x9e, 0xd9, 0x38, 0xe3, 0xb9, 0x1b, 0xf5, 0x1c, 0x95, 0x81, 0x16, 0x8d, 0xf8, 0x60, 0xbd, 0x94, 0x75, 0x16, 0x68, 0xda, 0xbd, 0x72, 0x1d, 0xc7, 0x39, 0x98, 0x40, 0x0b, 0xe2, 0x0c, 0x9a, 0x56, 0x3d, 0x50, 0x51, 0xef, 0x70, 0xe3, 0x54, 0x6f, 0xee, 0x67, 0x33, 0x12, 0xb5, 0x2a, 0x27, 0x40, 0x41, 0x05, 0x7e, 0x70, 0x84, 0x8e, 0xb7, 0xc5, 0xa2, 0x16, 0x44, 0xc9, 0x7e, 0x44, 0x8a, 0xbd, 0x76, 0x40, 0x20, 0x7d, 0x7c, 0xda, 0xfc, 0xf4, 0x5d, 0xa6, 0xdf, 0x34, 0x94, 0xd3, 0x58, 0x5b, 0x0e, 0x18, 0xac, 0x5a, 0xc9, 0x08, 0x1c, 0xb7, 0xa4, 0x07, 0xa3, 0x9a, 0x87, 0x77, 0x05, 0xcb, 0xaf, 0x79, 0xa0, 0x1b, 0x91, 0x5f, 0x73, 0x6e, 0xb0, 0x25, 0xc5, 0x8b, 0x4b, 0x5d, 0x80, 0x7f, 0xb7, 0xb7, 0x56, 0x6c, 0x59, 0x69, 0x78, 0x7c, 0x1d, 0x6c, 0xa4, 0xeb, 0xa9, 0x7d, 0x50, 0x9e, 0xf7, 0xfb, 0x35, 0x50, 0xd2, 0x1d, 0x37, 0x7e, 0xce, 0xff, 0xcf, 0x0e, 0xb6, 0x68, 0x18, 0x95, 0xad, 0xbd, 0x24, 0x6e, 0xe7, 0xbf, 0x3c, 0x93, 0x5a, 0x00, 0x64, 0x78, 0xb8, 0x32, 0xec, 0xe4, 0x6d, 0xe6, 0x11, 0x8b, 0x17, 0xe4, 0x66, 0xa2, 0x7f, 0xc2, 0xa4, 0x4a, 0x89, 0x6b, 0xaa, 0xe2, 0x72, 0xf9, 0xec, 0xf0, 0x18, 0xc6, 0x5c, 0xb5, 0x0c, 0xfb, 0xfc, 0x8d, 0x26, 0x09, 0x94, 0xa1, 0x8a, 0x83, 0x2d, 0x97, 0x19, 0x28, 0xc4, 0x49, 0x67, 0x57, 0x24, 0x58, 0x51, 0x31, 0xc8, 0x71, 0x53, 0x3c, 0x98, 0x97, 0xd8, 0xf8, 0x0f, 0x9c, 0x04, 0x16, 0xb7, 0x18, 0x78, 0x6b, 0x10, 0xfe, 0xa8, 0xeb, 0x5b, 0xd8, 0x13, 0xa2, 0x69, 0xa1, 0xb6, 0x77, 0xb7, 0xa2, 0x50, 0x7a, 0x44, 0xb7, 0x13, 0xd7, 0x05, 0x08, 0x65, 0x30, 0x99, 0x5e, 0x59, 0x33, 0x5d, 0xdc, 0x28, 0x55, 0xe8, 0x47, 0xe4, 0xf4, 0xdb, 0x06, 0xc9, 0x1f, 0x1d, 0x54, 0x02, 0x3d, 0x8a, 0x10, 0xf6, 0x9f, 0x9e, 0x61, 0xbd, 0xce, 0x4b, 0x68, 0x6f, 0xb6, 0x17, 0xbd, 0x50, 0x30, 0xe7, 0x55, 0xca, 0xdb, 0x1f, 0x64, 0x4e, 0x1d, 0xdd, 0x91, 0x61, 0x9b, 0x96, 0xec, 0xd6, 0x05, 0xb0, 0x01, 0x98, 0xb9, 0xa6, 0xed, 0xdb, 0x5a, 0x84, 0xeb, 0xd3, 0x69, 0x2b, 0x66, 0x59, 0x79, 0x76, 0x66, 0x37, 0xc6, 0x77, 0x37, 0x8c, 0x1c, 0x77, 0x04, 0x1f, 0xd4, 0xa6, 0xb3, 0x55, 0x5c, 0x1d, 0xc8, 0xa8, 0x3f, 0xe9, 0x01, 0x3b, 0xb6, 0x10, 0x6c, 0xc1, 0x8a, 0x2b, 0x03, 0x7c, 0x93, 0x77, 0xb7, 0xa1, 0xa5, 0xa5, 0xd0, 0xdc, 0xc5, 0x49, 0x18, 0xea, 0xad, 0x7e, 0x32, 0xc8, 0x80, 0x76, 0x7b, 0x26, 0xfd, 0x2e, 0xa2, 0xd6, 0x8b, 0x04, 0x05, 0xf5, 0xe0, 0x74, 0xf5, 0x5a, 0x19, 0xd8, 0xa3, 0x9f, 0xfb, 0xb7, 0xdc, 0x32, 0xfa, 0xee, 0x6a, 0x7f, 0x95, 0x32, 0xae, 0xc8, 0xa0, 0x77, 0x6c, 0x3f, 0xf8, 0x3a, 0xe3, 0xa4, 0x62, 0x77, 0x38, 0x49, 0x6a, 0x37, 0x1e, 0xb9, 0xe0, 0x90, 0xb7, 0x4e, 0x0e, 0xdd, 0xec, 0xfc, 0xd4, 0x1b, 0xed, 0x0c, 0x0c, 0xe5, 0x81, 0x27, 0x52, 0x43, 0x47, 0x2d, 0x26, 0xda, 0x8c, 0x99, 0x8e, 0x4b, 0x6d, 0x6b, 0x44, 0xfc, 0x88, 0xba, 0x2a, 0xb5, 0x46, 0x42, 0x22, 0x54, 0x17, 0x12, 0x02, 0x94, 0x41, 0x78, 0x05, 0x74, 0x2b, 0xdb, 0x33, 0xb7, 0xb1, 0x22, };
12005 static const u8 ed25519_522_test_vectors_expected_sig[] = {
12006 	0x9a, 0x0f, 0xf7, 0xf3, 0x51, 0x74, 0xec, 0x3f, 0x66, 0xd2, 0x2a, 0x6f, 0x06, 0xdf, 0x60, 0xe0, 0x9c, 0x8f, 0x62, 0x3a, 0x5a, 0xca, 0x81, 0x0e, 0x23, 0xa8, 0x8d, 0x0e, 0x6a, 0x31, 0xcb, 0x6f, 0x1c, 0xe1, 0xc1, 0xf9, 0xdc, 0xcc, 0x9e, 0x14, 0x84, 0xb6, 0x8d, 0xd0, 0x04, 0xac, 0x53, 0x59, 0x7e, 0x29, 0xad, 0x6a, 0xb7, 0x2e, 0x8c, 0xe2, 0xb7, 0x5a, 0xd5, 0xb8, 0x0e, 0xb8, 0x48, 0x03, };
12007 static const ec_test_case ed25519_522_test_case = {
12008 	.name = "EDDSA25519-SHA512/wei25519 522",
12009 	.ec_str_p = &wei25519_str_params,
12010 	.priv_key = ed25519_522_test_vectors_priv_key,
12011 	.priv_key_len = sizeof(ed25519_522_test_vectors_priv_key),
12012 	.nn_random = NULL,
12013 	.hash_type = SHA512,
12014 	.msg = (const char *)ed25519_522_test_vectors_message,
12015 	.msglen = sizeof(ed25519_522_test_vectors_message),
12016 	.sig_type = EDDSA25519,
12017 	.exp_sig = ed25519_522_test_vectors_expected_sig,
12018 	.exp_siglen = sizeof(ed25519_522_test_vectors_expected_sig),
12019 	.adata = NULL,
12020 	.adata_len = 0
12021 };
12022 
12023 /************************************************/
12024 static const u8 ed25519_523_test_vectors_priv_key[] = {
12025 	0xdf, 0x64, 0x89, 0x40, 0xb5, 0x78, 0xbc, 0x31, 0xd2, 0xa6, 0x52, 0x96, 0x5f, 0x30, 0x39, 0x1c, 0xaf, 0x06, 0xd5, 0xf2, 0x51, 0x59, 0x9a, 0x73, 0x7c, 0xe1, 0x0b, 0xe5, 0x5f, 0x4a, 0x9d, 0x0d, };
12026 static const u8 ed25519_523_test_vectors_message[] = {
12027 	0x1a, 0xe5, 0x20, 0xbe, 0xeb, 0x4a, 0xd0, 0x72, 0x2b, 0x43, 0x06, 0x7f, 0xa7, 0xcd, 0x28, 0x74, 0xab, 0xcf, 0x34, 0xdd, 0x92, 0x37, 0xb4, 0x47, 0x8e, 0xae, 0x97, 0x72, 0xae, 0xa2, 0x97, 0xa6, 0x7f, 0xb7, 0x9b, 0x33, 0x07, 0x02, 0x04, 0xba, 0xee, 0x44, 0x0b, 0x9c, 0x87, 0xe2, 0xfb, 0xcb, 0xeb, 0x76, 0x80, 0x1d, 0xdd, 0xea, 0x5e, 0x45, 0x30, 0xd8, 0x9e, 0x11, 0x58, 0x31, 0x79, 0x93, 0x9a, 0x00, 0xa3, 0x2f, 0x81, 0x13, 0x32, 0xc5, 0x22, 0x91, 0xcc, 0x7a, 0xc9, 0x1e, 0x5a, 0x97, 0x0c, 0xd5, 0xaa, 0x70, 0x8b, 0x1d, 0xa2, 0x6b, 0xe9, 0xfe, 0x43, 0x2a, 0x9b, 0xbd, 0xa1, 0x31, 0x9e, 0x31, 0xe4, 0xbc, 0xc9, 0xf1, 0x66, 0x6a, 0x05, 0xb5, 0xc0, 0x5b, 0x87, 0x6b, 0xfd, 0x1f, 0x76, 0x66, 0x87, 0xcc, 0xea, 0x4e, 0x44, 0x82, 0xe9, 0x24, 0x32, 0x9a, 0xfa, 0xce, 0x5e, 0xe5, 0x2e, 0x98, 0x79, 0xfd, 0x69, 0xb7, 0x6e, 0x0f, 0x7e, 0x45, 0x2e, 0xc4, 0x71, 0x3b, 0xff, 0x21, 0x6d, 0x00, 0xc8, 0x25, 0x99, 0xd2, 0x7c, 0xa4, 0x81, 0xf7, 0x3a, 0xae, 0x13, 0x6f, 0x08, 0x75, 0xc8, 0x8a, 0x66, 0xb1, 0xb6, 0xf3, 0x4c, 0x50, 0x52, 0x3a, 0xb6, 0x02, 0xe9, 0xd4, 0xeb, 0xb7, 0xee, 0xb9, 0xe0, 0x43, 0xa6, 0x5e, 0x41, 0x89, 0x9d, 0x79, 0x75, 0x2a, 0x27, 0x9d, 0x2e, 0xd4, 0x69, 0x93, 0x92, 0x6f, 0x36, 0x21, 0xe7, 0xc3, 0x2c, 0x9a, 0x9b, 0x3b, 0x59, 0xd8, 0xdd, 0x57, 0xbe, 0xca, 0x39, 0x28, 0x54, 0x34, 0xde, 0x99, 0x1c, 0xbd, 0x2d, 0xfc, 0xbc, 0x5c, 0xa6, 0x2a, 0x77, 0x79, 0xf4, 0x75, 0xd0, 0xce, 0xf2, 0xf3, 0xe5, 0x62, 0xf2, 0x9a, 0xcd, 0x47, 0x4f, 0x3c, 0x99, 0xec, 0x5b, 0xd8, 0xde, 0x01, 0x10, 0x1b, 0xed, 0x2e, 0x0c, 0x9b, 0x60, 0xe2, 0xd7, 0x0f, 0xd4, 0x32, 0xc8, 0x92, 0xfc, 0x66, 0xf8, 0xd4, 0x61, 0x9a, 0x91, 0x1b, 0x56, 0x25, 0x16, 0x3e, 0x9a, 0x42, 0xbf, 0x9e, 0xa3, 0x85, 0x86, 0xd8, 0xe7, 0x64, 0x00, 0x15, 0x64, 0xd3, 0x35, 0x41, 0x12, 0x25, 0xfc, 0xb0, 0xa0, 0x6d, 0xc2, 0xa8, 0x2d, 0xa0, 0x77, 0x9a, 0x3c, 0x44, 0x4e, 0xb7, 0x86, 0x42, 0x01, 0xb4, 0x3e, 0xbb, 0x72, 0xb9, 0x21, 0xf3, 0x4d, 0x3c, 0x13, 0x08, 0x9d, 0xf2, 0xf4, 0xfa, 0xc3, 0x66, 0xff, 0x1e, 0x3c, 0x0b, 0x96, 0xf9, 0x3d, 0x2b, 0x4d, 0x72, 0x6a, 0x5c, 0xe4, 0xd6, 0x91, 0x6d, 0x82, 0xc7, 0x8b, 0xe3, 0x54, 0xa1, 0x23, 0x0c, 0x2c, 0xf0, 0x41, 0x8c, 0x78, 0xa1, 0x91, 0x3e, 0x45, 0x4f, 0x64, 0x8c, 0xc9, 0x2c, 0x8d, 0xd0, 0xe1, 0x84, 0x64, 0x5f, 0xe3, 0x78, 0x1d, 0x26, 0x3c, 0xff, 0x69, 0xf5, 0xc6, 0x0b, 0x1e, 0xbb, 0x52, 0x00, 0x5a, 0x8b, 0x78, 0xa5, 0x15, 0xc7, 0xe8, 0x88, 0x6f, 0xfe, 0x05, 0x4d, 0xab, 0x42, 0x8e, 0x2e, 0x22, 0x1d, 0x9d, 0x76, 0xaf, 0xf4, 0x26, 0x54, 0x16, 0x8d, 0x83, 0x3b, 0x88, 0x17, 0x82, 0x93, 0xe1, 0xfe, 0xdd, 0x15, 0xd4, 0x6c, 0xd6, 0x09, 0x48, 0x31, 0x29, 0xc4, 0xd2, 0xd8, 0x44, 0x32, 0xa9, 0x9d, 0x31, 0xff, 0xe9, 0xbd, 0xb5, 0x66, 0xf8, 0xc7, 0x5c, 0xe6, 0x5e, 0x18, 0x28, 0x8e, 0x4d, 0xf8, 0xc1, 0x67, 0x31, 0xa0, 0xf3, 0xfd, 0xde, 0x1c, 0xca, 0x6d, 0x8e, 0xde, 0x04, 0x35, 0xff, 0x74, 0x36, 0xca, 0x17, 0xd0, 0xae, 0xb8, 0x8e, 0x98, 0xe8, 0x06, 0x5c, 0xbc, 0xbf, 0xd0, 0xff, 0x83, 0x04, 0x3a, 0x35, 0x7c, 0xd1, 0xb0, 0x82, 0xd1, 0x70, 0x3d, 0x46, 0x18, 0x81, 0x87, 0x2c, 0xdf, 0x74, 0x1e, 0x4f, 0x99, 0xbd, 0x14, 0x67, 0x45, 0xba, 0x70, 0x39, 0x74, 0xbe, 0x40, 0xf5, 0x79, 0xbf, 0x5c, 0x4d, 0xba, 0x5b, 0xdb, 0x8c, 0x94, 0x1b, 0xce, };
12028 static const u8 ed25519_523_test_vectors_expected_sig[] = {
12029 	0x62, 0xbc, 0x99, 0x1c, 0x45, 0xba, 0x9b, 0x26, 0xbf, 0x44, 0x01, 0x16, 0x26, 0x41, 0x62, 0xc3, 0x4c, 0x88, 0x59, 0x78, 0x85, 0xe9, 0x60, 0x50, 0x83, 0xc6, 0x04, 0xb5, 0xf5, 0xd8, 0xfa, 0x6f, 0x66, 0x2b, 0xa2, 0x14, 0xf7, 0x6e, 0x6c, 0xf8, 0x4e, 0x5e, 0xc0, 0x4d, 0xf1, 0xbe, 0xef, 0xc5, 0xf2, 0x5d, 0x3a, 0x3b, 0x72, 0xf9, 0x8b, 0x50, 0x69, 0x83, 0x19, 0x16, 0xa6, 0x32, 0x96, 0x01, };
12030 static const ec_test_case ed25519_523_test_case = {
12031 	.name = "EDDSA25519-SHA512/wei25519 523",
12032 	.ec_str_p = &wei25519_str_params,
12033 	.priv_key = ed25519_523_test_vectors_priv_key,
12034 	.priv_key_len = sizeof(ed25519_523_test_vectors_priv_key),
12035 	.nn_random = NULL,
12036 	.hash_type = SHA512,
12037 	.msg = (const char *)ed25519_523_test_vectors_message,
12038 	.msglen = sizeof(ed25519_523_test_vectors_message),
12039 	.sig_type = EDDSA25519,
12040 	.exp_sig = ed25519_523_test_vectors_expected_sig,
12041 	.exp_siglen = sizeof(ed25519_523_test_vectors_expected_sig),
12042 	.adata = NULL,
12043 	.adata_len = 0
12044 };
12045 
12046 /************************************************/
12047 static const u8 ed25519_524_test_vectors_priv_key[] = {
12048 	0xc8, 0xac, 0x23, 0x45, 0x58, 0xaa, 0x69, 0x81, 0x6b, 0x36, 0x8b, 0x77, 0xb7, 0xcc, 0xcb, 0x5c, 0x8d, 0x2a, 0x33, 0xec, 0x53, 0xae, 0xef, 0x2c, 0xe2, 0x28, 0x71, 0x43, 0xbd, 0x98, 0xc1, 0x75, };
12049 static const u8 ed25519_524_test_vectors_message[] = {
12050 	0xce, 0x48, 0x8d, 0x26, 0x97, 0x5c, 0x1c, 0x93, 0x28, 0xb4, 0x7f, 0xa9, 0x2e, 0x19, 0x56, 0x13, 0x30, 0x04, 0x1b, 0x23, 0xa0, 0xe5, 0x7a, 0x4b, 0x8b, 0xca, 0x89, 0xeb, 0x5f, 0x61, 0x5e, 0x73, 0xdd, 0x7f, 0xae, 0x69, 0xc2, 0x38, 0x0e, 0x32, 0x12, 0xf9, 0xb7, 0x33, 0x41, 0xc3, 0x56, 0xdb, 0x75, 0xa6, 0x25, 0x6d, 0x7a, 0x20, 0xa9, 0x7f, 0x75, 0x9d, 0x4c, 0xba, 0x71, 0x97, 0x17, 0x8e, 0xa7, 0x24, 0xdd, 0x93, 0x29, 0x49, 0x36, 0x0e, 0x96, 0xc5, 0x0a, 0x4b, 0x3b, 0xa5, 0x5a, 0x95, 0x33, 0x72, 0xc3, 0x97, 0xb0, 0x96, 0x9c, 0x2b, 0x14, 0xd3, 0x60, 0x9e, 0x0a, 0x85, 0x2d, 0x48, 0x4d, 0xf7, 0x0e, 0xaa, 0xb1, 0x12, 0x49, 0xeb, 0xeb, 0x32, 0x37, 0x92, 0x1f, 0x0a, 0x39, 0xa5, 0x5d, 0x7d, 0xcc, 0xfe, 0xf2, 0x05, 0xd9, 0x4e, 0xc8, 0x0d, 0x9e, 0x1f, 0xd6, 0xa2, 0xc1, 0xef, 0xd2, 0x98, 0x44, 0x10, 0x1d, 0xfe, 0x2c, 0x5f, 0x66, 0x8a, 0xdb, 0x79, 0x75, 0x91, 0x5d, 0xed, 0xd0, 0x86, 0x50, 0x0c, 0xee, 0x2c, 0x1e, 0x23, 0x3e, 0x8e, 0x48, 0x85, 0x5c, 0xc1, 0xa6, 0xf2, 0x87, 0xd6, 0x3d, 0xce, 0x10, 0xad, 0xdd, 0x13, 0xca, 0xc7, 0xb7, 0xa1, 0x87, 0xef, 0xe4, 0x7e, 0x12, 0xd1, 0xc3, 0x5b, 0xb3, 0x97, 0x40, 0x52, 0xb2, 0x3a, 0x73, 0x66, 0x8d, 0x3e, 0x4c, 0x87, 0xdb, 0x48, 0x41, 0xaf, 0x84, 0x6e, 0x80, 0x86, 0x72, 0xc4, 0x3d, 0x0a, 0x15, 0x22, 0xe2, 0x96, 0x5f, 0x08, 0x39, 0x51, 0xb2, 0xb2, 0xb0, 0xc4, 0x09, 0x54, 0x8e, 0xe6, 0x18, 0x2f, 0x0c, 0x98, 0x50, 0x51, 0x4c, 0x9e, 0x6c, 0x10, 0x2f, 0x54, 0xba, 0x41, 0x24, 0xc9, 0x2a, 0x90, 0x27, 0x4f, 0x40, 0x58, 0x91, 0xe6, 0x62, 0xf5, 0xeb, 0xb3, 0x77, 0x1b, 0x85, 0x78, 0x31, 0x56, 0xe9, 0xe5, 0x83, 0x67, 0x34, 0xd0, 0x9d, 0x1b, 0xaf, 0x5b, 0x21, 0x34, 0xc9, 0x31, 0x62, 0xee, 0xc4, 0xbe, 0x03, 0xbd, 0x12, 0xf6, 0x03, 0xcd, 0x27, 0xbe, 0x8b, 0x76, 0xac, 0xcc, 0x6e, 0x8b, 0x8b, 0xac, 0x02, 0x0c, 0xba, 0x34, 0x79, 0x65, 0x1c, 0x9f, 0xfa, 0x53, 0xce, 0x4e, 0xb7, 0x7a, 0x77, 0x31, 0x3b, 0xc1, 0x26, 0x5d, 0xda, 0xb8, 0x03, 0xef, 0x7a, 0x65, 0x63, 0xba, 0x6f, 0x79, 0x9d, 0x1e, 0xf3, 0x0e, 0xf5, 0xa0, 0xb4, 0x12, 0x96, 0x5f, 0xda, 0xc0, 0xb9, 0xda, 0xb8, 0x42, 0xc7, 0x8e, 0xe2, 0xcc, 0x62, 0x8e, 0x3d, 0x7d, 0x40, 0x61, 0xe3, 0x4e, 0xde, 0x37, 0x97, 0xe1, 0x54, 0xb0, 0x6e, 0x8c, 0x66, 0xce, 0xbd, 0xf2, 0xde, 0xd0, 0xf8, 0x1b, 0x60, 0xf9, 0xf5, 0xcd, 0xda, 0x67, 0x5a, 0x43, 0x52, 0x77, 0xba, 0x15, 0x24, 0x55, 0x7e, 0x67, 0xf5, 0xce, 0xfa, 0xfc, 0xe9, 0x29, 0x29, 0x1d, 0xce, 0x89, 0xec, 0xb0, 0x8a, 0x17, 0xb6, 0x7a, 0x60, 0xc5, 0x82, 0xb4, 0x87, 0xbf, 0x2f, 0x61, 0x69, 0x62, 0x66, 0x15, 0xf3, 0xc2, 0xfe, 0x3b, 0x67, 0x38, 0x8b, 0x71, 0x3d, 0x35, 0xb9, 0x06, 0x66, 0x69, 0x96, 0x0d, 0xe4, 0xdb, 0x41, 0x3c, 0xd8, 0x52, 0x8e, 0xe5, 0x6e, 0xd1, 0x73, 0xe9, 0x76, 0xa3, 0xc9, 0x74, 0xac, 0x63, 0x3a, 0x71, 0x34, 0xcc, 0xe3, 0x83, 0x19, 0x73, 0x5f, 0x85, 0x7b, 0x7d, 0x71, 0xba, 0x07, 0xf4, 0x77, 0xef, 0x85, 0x84, 0x8a, 0xa8, 0xf3, 0x9e, 0x11, 0x81, 0x18, 0x77, 0x9e, 0xd8, 0x7b, 0x4f, 0x42, 0xaa, 0x35, 0x8a, 0x89, 0xf7, 0xec, 0x84, 0x4a, 0x45, 0x1e, 0x7e, 0x8f, 0xc0, 0xaf, 0x41, 0x8b, 0x85, 0xbc, 0x9b, 0xf2, 0xf2, 0x6d, 0x1e, 0xa1, 0x37, 0xd3, 0x35, 0xec, 0x7e, 0xe7, 0x57, 0xb7, 0x0a, 0xe2, 0xfd, 0xd9, 0xcc, 0x13, 0x49, 0x32, 0xf0, 0xe5, 0x42, 0x5b, 0xf3, 0x7f, 0xb9, 0x15, 0xe7, 0x9e, };
12051 static const u8 ed25519_524_test_vectors_expected_sig[] = {
12052 	0x32, 0x25, 0x03, 0x61, 0xdf, 0x6e, 0xd2, 0x83, 0x48, 0x5f, 0x95, 0xf3, 0xd3, 0x57, 0xa4, 0xf1, 0xc3, 0x3a, 0x8c, 0xf9, 0x16, 0x58, 0x32, 0x7c, 0xd4, 0x53, 0xd4, 0x9c, 0x95, 0x36, 0x65, 0x51, 0x08, 0x70, 0xaa, 0x45, 0x4c, 0xfa, 0x3b, 0x83, 0x24, 0x52, 0x20, 0xa8, 0x27, 0xd0, 0xec, 0x74, 0x77, 0xf9, 0xec, 0xeb, 0x79, 0xc4, 0xa2, 0x9f, 0x30, 0x1f, 0x95, 0x3c, 0xc8, 0xca, 0xac, 0x07, };
12053 static const ec_test_case ed25519_524_test_case = {
12054 	.name = "EDDSA25519-SHA512/wei25519 524",
12055 	.ec_str_p = &wei25519_str_params,
12056 	.priv_key = ed25519_524_test_vectors_priv_key,
12057 	.priv_key_len = sizeof(ed25519_524_test_vectors_priv_key),
12058 	.nn_random = NULL,
12059 	.hash_type = SHA512,
12060 	.msg = (const char *)ed25519_524_test_vectors_message,
12061 	.msglen = sizeof(ed25519_524_test_vectors_message),
12062 	.sig_type = EDDSA25519,
12063 	.exp_sig = ed25519_524_test_vectors_expected_sig,
12064 	.exp_siglen = sizeof(ed25519_524_test_vectors_expected_sig),
12065 	.adata = NULL,
12066 	.adata_len = 0
12067 };
12068 
12069 /************************************************/
12070 static const u8 ed25519_525_test_vectors_priv_key[] = {
12071 	0x2c, 0x47, 0xf2, 0xb8, 0xb9, 0xd2, 0xce, 0xe9, 0xe6, 0xf6, 0x54, 0xbc, 0x24, 0x65, 0x8f, 0x9e, 0xaf, 0x43, 0x9c, 0x23, 0xbe, 0xaa, 0x0a, 0x79, 0xbf, 0x35, 0xcc, 0x8c, 0xd2, 0xde, 0xba, 0xf4, };
12072 static const u8 ed25519_525_test_vectors_message[] = {
12073 	0x04, 0x4c, 0x8f, 0xaa, 0x8c, 0x8a, 0xaf, 0x9f, 0x2b, 0x81, 0x86, 0xa6, 0xb9, 0xb3, 0x38, 0x47, 0xec, 0x7b, 0x45, 0x24, 0x23, 0xb2, 0x2a, 0x91, 0x74, 0x3d, 0x2e, 0x59, 0x7e, 0xcc, 0x1e, 0x1e, 0x22, 0xae, 0x60, 0x05, 0x3e, 0x9e, 0xe6, 0x23, 0x3b, 0x04, 0x4e, 0x77, 0x59, 0x20, 0xe4, 0xe3, 0xd6, 0x67, 0x19, 0x90, 0x13, 0x25, 0xcf, 0xdd, 0x39, 0xbb, 0x53, 0x2f, 0x8a, 0xa4, 0x69, 0xaa, 0xb4, 0x2e, 0x96, 0x08, 0xc2, 0x12, 0x60, 0xc0, 0x4c, 0x27, 0x41, 0x3a, 0x7a, 0x94, 0xe4, 0x66, 0xf6, 0x3c, 0x49, 0x52, 0xe9, 0x0e, 0xf9, 0x0c, 0x12, 0x81, 0x4b, 0x34, 0x51, 0xb1, 0xca, 0xd7, 0xda, 0x91, 0x47, 0xf8, 0x40, 0x92, 0x20, 0xf6, 0x49, 0x8c, 0xc0, 0xa6, 0x7f, 0xef, 0x4b, 0xc0, 0x4f, 0xc0, 0x6e, 0x1d, 0x89, 0x8a, 0x55, 0x15, 0x59, 0x1e, 0x8b, 0xe0, 0xc4, 0x3d, 0x75, 0xa6, 0xfe, 0x42, 0x5b, 0x7c, 0xbe, 0xfb, 0x1b, 0x91, 0xb1, 0xbd, 0x78, 0xb5, 0xbe, 0xc7, 0x82, 0x90, 0x56, 0x98, 0x2e, 0xfd, 0xc5, 0xbe, 0x24, 0xaf, 0x66, 0x78, 0x00, 0x6a, 0xdc, 0x6f, 0x04, 0x46, 0x20, 0x2e, 0x7e, 0xc3, 0xa2, 0xd6, 0x97, 0x9c, 0xb0, 0xdf, 0x7e, 0x25, 0xd7, 0x42, 0x33, 0x91, 0x4d, 0x9c, 0x58, 0xb8, 0x1c, 0xf5, 0x5b, 0xe0, 0x69, 0x67, 0xd3, 0xa5, 0x95, 0xc1, 0xb9, 0x67, 0x28, 0x69, 0x99, 0x4c, 0xfb, 0xa6, 0x71, 0x62, 0x83, 0x3a, 0x21, 0x43, 0xaa, 0x91, 0xcc, 0x93, 0xac, 0xda, 0xfa, 0x5b, 0x45, 0x20, 0x8d, 0xf3, 0xe8, 0x8c, 0xcc, 0x01, 0xa2, 0xa4, 0xd2, 0x20, 0xe3, 0x60, 0x09, 0x8d, 0x91, 0x54, 0xd2, 0x25, 0xa7, 0xca, 0x5f, 0x2f, 0x1e, 0x52, 0xb1, 0x00, 0x3d, 0x10, 0x66, 0x50, 0xa7, 0x7b, 0x28, 0x3b, 0x95, 0xe4, 0xba, 0xf1, 0xe7, 0x33, 0x6f, 0xa9, 0xa7, 0x47, 0xa2, 0xb3, 0x82, 0x3d, 0x36, 0x09, 0x10, 0x41, 0x2e, 0x76, 0xdb, 0x72, 0x5c, 0xe1, 0xab, 0x1e, 0x1d, 0x18, 0x9d, 0x0d, 0x3a, 0xbe, 0xf8, 0x2d, 0x76, 0x66, 0xbc, 0xf1, 0xb7, 0x66, 0x69, 0xe0, 0x64, 0x3b, 0x44, 0xf7, 0x4e, 0x90, 0xce, 0xaf, 0xa0, 0xc8, 0x37, 0x1b, 0x57, 0xc5, 0x8f, 0x3b, 0x37, 0x0a, 0x54, 0x7c, 0x60, 0x95, 0x8f, 0x0f, 0xcf, 0x46, 0x1b, 0x31, 0x50, 0xf8, 0x48, 0xc4, 0x70, 0xfa, 0x07, 0xe2, 0x9b, 0xf5, 0xf0, 0xd4, 0xb5, 0x9e, 0xfa, 0x5a, 0xb0, 0xd0, 0x34, 0x1e, 0x04, 0x51, 0xd0, 0xab, 0xb2, 0x9d, 0x74, 0x14, 0xcd, 0xdc, 0x46, 0xcc, 0x6d, 0x74, 0xcf, 0x3d, 0xc2, 0x33, 0xd0, 0xd1, 0x70, 0x73, 0x87, 0xbd, 0x8c, 0x77, 0x80, 0xff, 0x78, 0xe5, 0x46, 0xfb, 0x77, 0x29, 0x4d, 0x58, 0xa5, 0xdd, 0xa5, 0xf0, 0x5c, 0x12, 0x97, 0xe3, 0xd1, 0x77, 0x11, 0x56, 0xd2, 0x85, 0x63, 0x5b, 0xf7, 0xec, 0xed, 0xb3, 0x8a, 0x9e, 0x5e, 0x77, 0x44, 0x98, 0x04, 0xf3, 0x89, 0x9e, 0xa4, 0x6a, 0x50, 0x26, 0x6b, 0x25, 0x5a, 0xeb, 0x52, 0xd1, 0x8e, 0x0f, 0xa1, 0x36, 0xe5, 0x35, 0xcc, 0x90, 0x26, 0xf6, 0x78, 0x55, 0x2f, 0xa3, 0xee, 0x21, 0x46, 0x08, 0x1d, 0x99, 0x96, 0x85, 0xe2, 0x4b, 0xf7, 0x80, 0x7c, 0xc4, 0x7c, 0x13, 0x04, 0x36, 0xc5, 0x44, 0xd3, 0x5b, 0x4b, 0x87, 0x5b, 0xd8, 0xaf, 0xa3, 0x12, 0xce, 0x3a, 0xe1, 0x7c, 0xf1, 0xc7, 0xf5, 0xea, 0x1e, 0xce, 0xcb, 0x50, 0xf9, 0x53, 0x44, 0x72, 0x0c, 0xec, 0xf0, 0x88, 0x43, 0x4f, 0xf8, 0xe0, 0xba, 0x04, 0x4e, 0xc1, 0x9c, 0x98, 0xad, 0xa7, 0x78, 0x21, 0x16, 0x30, 0x4c, 0xbe, 0xac, 0x1c, 0x3e, 0x35, 0xf5, 0xa4, 0xf4, 0x43, 0x13, 0x35, 0x4d, 0xc9, 0xa4, 0x0e, 0xce, 0x5a, 0x0f, 0x9a, 0xd3, 0xa2, 0x02, 0x5a, 0xce, 0xf2, 0x62, 0xc5, 0x67, 0x9d, 0x64, };
12074 static const u8 ed25519_525_test_vectors_expected_sig[] = {
12075 	0x85, 0x54, 0xb0, 0x1d, 0x09, 0xed, 0x86, 0xe6, 0x13, 0x95, 0xb9, 0x1a, 0x2b, 0x1e, 0xe1, 0x87, 0x15, 0xc4, 0x2f, 0x9c, 0x7e, 0x7f, 0x07, 0x00, 0xd7, 0x9f, 0xf9, 0xfb, 0x57, 0x81, 0x29, 0x3d, 0x61, 0xc5, 0x58, 0xdd, 0x5b, 0x43, 0x1c, 0x93, 0x71, 0x8d, 0xcc, 0x0f, 0x98, 0xfb, 0x65, 0x2b, 0x59, 0x6f, 0x18, 0xc3, 0x0f, 0x82, 0x21, 0x5e, 0x8e, 0x63, 0xe4, 0xf6, 0x56, 0x8c, 0x88, 0x00, };
12076 static const ec_test_case ed25519_525_test_case = {
12077 	.name = "EDDSA25519-SHA512/wei25519 525",
12078 	.ec_str_p = &wei25519_str_params,
12079 	.priv_key = ed25519_525_test_vectors_priv_key,
12080 	.priv_key_len = sizeof(ed25519_525_test_vectors_priv_key),
12081 	.nn_random = NULL,
12082 	.hash_type = SHA512,
12083 	.msg = (const char *)ed25519_525_test_vectors_message,
12084 	.msglen = sizeof(ed25519_525_test_vectors_message),
12085 	.sig_type = EDDSA25519,
12086 	.exp_sig = ed25519_525_test_vectors_expected_sig,
12087 	.exp_siglen = sizeof(ed25519_525_test_vectors_expected_sig),
12088 	.adata = NULL,
12089 	.adata_len = 0
12090 };
12091 
12092 /************************************************/
12093 static const u8 ed25519_526_test_vectors_priv_key[] = {
12094 	0x88, 0x7f, 0xdb, 0x48, 0x70, 0x68, 0x1d, 0x4f, 0xb0, 0x6a, 0x93, 0x62, 0x59, 0xf7, 0x5c, 0xae, 0x05, 0x17, 0xf5, 0x01, 0xaf, 0x64, 0x6b, 0xc0, 0x7a, 0x4d, 0x72, 0xbe, 0xe7, 0xfb, 0x1c, 0x73, };
12095 static const u8 ed25519_526_test_vectors_message[] = {
12096 	0xc5, 0xdc, 0x77, 0x9f, 0x3f, 0x3f, 0xac, 0x06, 0xdd, 0x28, 0xe5, 0xa6, 0x7e, 0x0e, 0x52, 0x4a, 0xf5, 0xb5, 0xdc, 0x3b, 0x34, 0x40, 0x96, 0x57, 0xb6, 0x3d, 0xfa, 0xce, 0x94, 0x71, 0xe9, 0xa4, 0x1e, 0x11, 0x32, 0x17, 0x5a, 0x0b, 0x56, 0x9c, 0x8f, 0xea, 0x9d, 0x2e, 0xef, 0x2c, 0xf5, 0xd5, 0x96, 0x2c, 0x7e, 0x0b, 0x61, 0x45, 0xa9, 0xe7, 0xa0, 0xc1, 0xaa, 0x33, 0x77, 0x20, 0x44, 0xf9, 0xc3, 0x99, 0x8c, 0x5a, 0x8c, 0x48, 0x86, 0x45, 0x8b, 0x4e, 0x58, 0x6f, 0x93, 0x07, 0x60, 0x83, 0x61, 0xf5, 0x11, 0xe7, 0xab, 0x50, 0x92, 0xac, 0x41, 0xec, 0x76, 0xe0, 0x58, 0x6e, 0xf5, 0xb9, 0xc2, 0x36, 0xfc, 0xf5, 0xca, 0x2f, 0xc8, 0xdd, 0x6a, 0xae, 0xb7, 0x89, 0x36, 0x7f, 0x2e, 0x7c, 0x99, 0x09, 0x32, 0x55, 0x5d, 0xc5, 0x22, 0x61, 0xe4, 0x4e, 0x49, 0x42, 0x34, 0x98, 0xb5, 0x24, 0x41, 0x91, 0x83, 0xb6, 0xc1, 0xf1, 0xd4, 0x2c, 0x45, 0x46, 0x4e, 0xcc, 0xb0, 0xc2, 0xf7, 0xe2, 0x51, 0x77, 0xfe, 0x5c, 0xd4, 0x63, 0x50, 0x2b, 0x40, 0x3e, 0x06, 0xd5, 0x11, 0xfc, 0xf9, 0xdc, 0xb6, 0x40, 0x12, 0xe0, 0xf2, 0x0b, 0x34, 0xc2, 0xea, 0x7c, 0x00, 0x4d, 0x9e, 0x48, 0x4a, 0x7e, 0xd8, 0x1f, 0x32, 0x60, 0xc4, 0x1c, 0x8b, 0x19, 0x53, 0x52, 0x9f, 0x47, 0xf7, 0x1e, 0x86, 0x78, 0x43, 0xcc, 0x3c, 0x33, 0x2a, 0xd0, 0x36, 0x6a, 0x63, 0x81, 0x7e, 0xd1, 0x2d, 0xd4, 0x73, 0x0d, 0x3d, 0xfd, 0xbd, 0x75, 0x72, 0xb9, 0xff, 0x79, 0x80, 0x45, 0x94, 0x0d, 0xd1, 0x9f, 0xad, 0x0c, 0x8a, 0xea, 0x0b, 0x4a, 0xb6, 0x1c, 0x40, 0x16, 0xde, 0x32, 0x79, 0x9c, 0x73, 0xaa, 0x2b, 0x92, 0xd2, 0xc2, 0x5e, 0xe9, 0xb7, 0x2d, 0x46, 0xfe, 0x8f, 0x06, 0x93, 0xc5, 0x87, 0x75, 0xef, 0xb0, 0x5e, 0x9e, 0x17, 0xa5, 0xc3, 0x46, 0xa8, 0x12, 0x65, 0xd3, 0x5b, 0xe6, 0x9a, 0x22, 0xd0, 0x95, 0xde, 0x18, 0x60, 0x66, 0xa5, 0xc6, 0xd8, 0xc0, 0x7a, 0x3d, 0x38, 0xd0, 0x02, 0xa1, 0x0e, 0x5e, 0xfd, 0xb8, 0x66, 0xda, 0x4a, 0x9b, 0xdd, 0x54, 0xf5, 0x09, 0x26, 0x61, 0xb6, 0xc2, 0xd7, 0x43, 0xf5, 0xae, 0xaa, 0x4c, 0x6c, 0x31, 0x8f, 0xb5, 0x93, 0x23, 0x90, 0x30, 0x57, 0xe4, 0x9c, 0x23, 0x7b, 0x45, 0xf6, 0x75, 0x42, 0xa4, 0xf2, 0x7c, 0xaf, 0x65, 0xb5, 0x7c, 0xfc, 0xf8, 0x8b, 0x71, 0x20, 0x3d, 0x43, 0xd7, 0xf9, 0x53, 0x22, 0x16, 0x0f, 0x95, 0xc2, 0x32, 0xdd, 0x10, 0xab, 0xb1, 0x13, 0xb7, 0x21, 0xdd, 0xba, 0x22, 0x26, 0xb0, 0x63, 0x22, 0x9b, 0xb4, 0x41, 0x02, 0x33, 0x6b, 0x10, 0xbf, 0x16, 0x56, 0x55, 0x11, 0x61, 0x24, 0x97, 0x86, 0xd4, 0x54, 0xf4, 0xe0, 0x90, 0x9d, 0x50, 0x00, 0x17, 0xf6, 0xc7, 0x56, 0x4f, 0x73, 0x3c, 0x83, 0x1a, 0xf4, 0xe5, 0xec, 0x94, 0xdf, 0xd3, 0xbf, 0x8f, 0xf5, 0xf3, 0x02, 0x1b, 0x70, 0xa5, 0xca, 0x5d, 0x28, 0xc6, 0xdf, 0xb8, 0xa2, 0xc1, 0x8a, 0x1a, 0x66, 0x2a, 0x33, 0x35, 0x9f, 0x26, 0x4d, 0x16, 0x96, 0x98, 0xc1, 0xab, 0x55, 0x78, 0x3f, 0xac, 0xa7, 0x3b, 0xd6, 0x8c, 0x0f, 0x79, 0xd1, 0xd0, 0x4a, 0xe0, 0xec, 0xdb, 0x52, 0xae, 0x76, 0x18, 0x92, 0xc0, 0x24, 0x93, 0xff, 0x35, 0xf3, 0xd8, 0x4f, 0x66, 0xe2, 0x36, 0xfc, 0x58, 0x13, 0x4a, 0xd6, 0xa7, 0x7d, 0x92, 0x25, 0x49, 0x05, 0xd7, 0x73, 0x90, 0x0d, 0x9d, 0xdf, 0x26, 0x54, 0xc7, 0x0b, 0x46, 0xf3, 0x41, 0xda, 0xcb, 0x47, 0x93, 0xca, 0x51, 0xee, 0xde, 0x45, 0x53, 0x3e, 0xae, 0xeb, 0x6e, 0x33, 0x23, 0xbc, 0x3e, 0x6c, 0x85, 0xa7, 0x94, 0x06, 0x51, 0xc4, 0xf6, 0xf9, 0x81, 0x91, 0xc6, 0x18, 0xc8, 0x91, 0xea, 0x4e, 0x22, 0x0e, 0xa4, };
12097 static const u8 ed25519_526_test_vectors_expected_sig[] = {
12098 	0x41, 0x0a, 0x5a, 0xf3, 0xc5, 0x9b, 0x7c, 0x6b, 0xdb, 0x21, 0x4b, 0x16, 0x6c, 0xb7, 0x9d, 0x96, 0xf8, 0x30, 0xcf, 0x98, 0xbf, 0x52, 0xda, 0xd7, 0xb6, 0xff, 0x29, 0x79, 0xc9, 0x7f, 0xea, 0x4f, 0xed, 0x5e, 0xf7, 0xd3, 0xd4, 0x9f, 0x03, 0x09, 0x72, 0x79, 0xb9, 0xa0, 0x99, 0x22, 0x6e, 0x2a, 0x08, 0xdd, 0x30, 0xc6, 0x07, 0x86, 0x25, 0x4e, 0x2d, 0xa8, 0xde, 0xe2, 0x40, 0xbf, 0xc3, 0x08, };
12099 static const ec_test_case ed25519_526_test_case = {
12100 	.name = "EDDSA25519-SHA512/wei25519 526",
12101 	.ec_str_p = &wei25519_str_params,
12102 	.priv_key = ed25519_526_test_vectors_priv_key,
12103 	.priv_key_len = sizeof(ed25519_526_test_vectors_priv_key),
12104 	.nn_random = NULL,
12105 	.hash_type = SHA512,
12106 	.msg = (const char *)ed25519_526_test_vectors_message,
12107 	.msglen = sizeof(ed25519_526_test_vectors_message),
12108 	.sig_type = EDDSA25519,
12109 	.exp_sig = ed25519_526_test_vectors_expected_sig,
12110 	.exp_siglen = sizeof(ed25519_526_test_vectors_expected_sig),
12111 	.adata = NULL,
12112 	.adata_len = 0
12113 };
12114 
12115 /************************************************/
12116 static const u8 ed25519_527_test_vectors_priv_key[] = {
12117 	0x88, 0xb3, 0xb4, 0x63, 0xdf, 0xc3, 0x0d, 0x01, 0x5e, 0xef, 0xbb, 0xbd, 0xd5, 0x0e, 0x24, 0xa1, 0xf7, 0x27, 0x77, 0x75, 0xbc, 0xef, 0x14, 0xa6, 0xbe, 0x6b, 0x73, 0xc8, 0xc5, 0xc7, 0x30, 0x3e, };
12118 static const u8 ed25519_527_test_vectors_message[] = {
12119 	0x17, 0xc3, 0x17, 0xfa, 0x6b, 0xc9, 0x0c, 0x55, 0x32, 0x32, 0x8f, 0x02, 0xcc, 0xfb, 0x6c, 0x09, 0x9e, 0x6f, 0xe1, 0x00, 0x01, 0x74, 0xf2, 0xaf, 0x3a, 0x3a, 0x93, 0x09, 0x42, 0x85, 0x06, 0x71, 0x7c, 0x5c, 0x43, 0x35, 0xbd, 0xd7, 0xc3, 0x67, 0xff, 0x4e, 0x44, 0x8a, 0x9c, 0x04, 0x75, 0x03, 0xaf, 0xba, 0x68, 0xfd, 0x8f, 0x79, 0x87, 0x23, 0x7b, 0xe7, 0xf7, 0xfb, 0xdc, 0x6d, 0x73, 0xf2, 0x4c, 0x64, 0x21, 0xca, 0xb4, 0x22, 0xb3, 0xfb, 0x25, 0xf6, 0x7b, 0x2d, 0x71, 0x04, 0x2e, 0x71, 0x57, 0x0d, 0xf2, 0xaf, 0x37, 0xbf, 0xe5, 0xc1, 0x14, 0x21, 0x1f, 0xd5, 0x52, 0x4b, 0x6c, 0x1c, 0x6c, 0xc5, 0x2f, 0xab, 0xc3, 0xcd, 0x7f, 0xb4, 0x64, 0xcd, 0x58, 0x0b, 0xb7, 0x40, 0x71, 0xcb, 0x30, 0x0f, 0x8c, 0x9f, 0x8a, 0x46, 0x20, 0x8e, 0x5a, 0xa5, 0xdd, 0xfe, 0xa5, 0xfe, 0x90, 0x69, 0x7a, 0xa2, 0xf1, 0x4c, 0x60, 0x79, 0x50, 0xc9, 0x8f, 0x23, 0x12, 0xa9, 0xe1, 0x6e, 0xf6, 0x34, 0x6a, 0x8f, 0xd1, 0x29, 0x23, 0x27, 0x33, 0x82, 0x7e, 0x15, 0x01, 0xa6, 0x60, 0xc7, 0x7c, 0x29, 0xc5, 0x6d, 0x2f, 0xdd, 0x1c, 0x55, 0x97, 0xf8, 0xbc, 0x89, 0xaa, 0xef, 0xe3, 0x71, 0x37, 0x34, 0xfe, 0x82, 0x85, 0x82, 0x01, 0x89, 0x1a, 0x11, 0x47, 0xef, 0xaf, 0x1d, 0x78, 0xa4, 0x71, 0xf9, 0x20, 0xde, 0xfc, 0x88, 0x03, 0x44, 0x55, 0x3e, 0xb7, 0x16, 0xcc, 0xe3, 0x26, 0x0e, 0x86, 0xa1, 0xbc, 0x0b, 0xe2, 0x83, 0x73, 0xa6, 0xa0, 0x66, 0x11, 0x6e, 0x8e, 0xcb, 0x10, 0xa0, 0xc4, 0xa7, 0x0c, 0xa2, 0xb5, 0x36, 0x4e, 0x11, 0x9f, 0x84, 0xae, 0xc6, 0x0d, 0xec, 0xed, 0x3a, 0x4e, 0xff, 0x1f, 0xe6, 0x88, 0xc5, 0xe3, 0xe2, 0x51, 0x47, 0x0a, 0xb5, 0x16, 0xfa, 0x96, 0x4a, 0x4b, 0x6f, 0x28, 0x36, 0x8d, 0xd1, 0xe2, 0x83, 0x59, 0x79, 0x34, 0x06, 0x4d, 0xc0, 0xc5, 0xb5, 0x69, 0x10, 0x62, 0xcb, 0x2e, 0x26, 0x7b, 0xd1, 0x5f, 0xd4, 0x22, 0xbc, 0xfe, 0xfb, 0x83, 0xcc, 0xef, 0x7a, 0xa9, 0xa2, 0x27, 0x5e, 0xf5, 0x7e, 0x47, 0x31, 0x49, 0x98, 0x8c, 0x15, 0x78, 0xfd, 0x18, 0x70, 0x8d, 0x2f, 0xf6, 0x9f, 0x8e, 0x59, 0x80, 0xaa, 0x82, 0x6a, 0x82, 0xca, 0xb7, 0xd8, 0xb9, 0x2b, 0xb5, 0x3b, 0xdd, 0x46, 0xdb, 0x04, 0x6e, 0xcd, 0xfc, 0x8c, 0xd7, 0xae, 0x5c, 0xe4, 0x4f, 0x3c, 0x5b, 0x8c, 0x05, 0x65, 0xb5, 0xd3, 0xc0, 0x72, 0xc7, 0x6b, 0x95, 0xce, 0x90, 0x0a, 0xc3, 0xee, 0x55, 0x10, 0xdb, 0x0e, 0x75, 0xd3, 0xa4, 0x15, 0x0a, 0x98, 0xf3, 0xcc, 0xcc, 0xc6, 0x9e, 0x93, 0x0c, 0x6b, 0xa7, 0x41, 0xdb, 0xb0, 0xeb, 0x9f, 0xb3, 0x19, 0x68, 0x71, 0xba, 0x20, 0x6a, 0x58, 0xe0, 0xda, 0xe3, 0x9c, 0x8d, 0x6b, 0xb7, 0x2a, 0x82, 0x39, 0x9c, 0x4b, 0x7b, 0x9d, 0xa3, 0x85, 0x77, 0xac, 0x17, 0xff, 0x15, 0x24, 0xd6, 0x53, 0xc0, 0xbf, 0x33, 0x67, 0x93, 0x23, 0xca, 0x7e, 0xef, 0x4e, 0x92, 0x28, 0x72, 0x90, 0x31, 0x56, 0x0e, 0xd8, 0xf2, 0xe5, 0x19, 0x3c, 0x64, 0x0b, 0x2f, 0x5e, 0x60, 0x80, 0x75, 0xa2, 0xed, 0x61, 0x42, 0x8d, 0xfc, 0xcd, 0xc0, 0x00, 0x50, 0xba, 0x4b, 0x99, 0xed, 0x6d, 0x15, 0x36, 0xd5, 0xac, 0x1e, 0x93, 0x96, 0x74, 0xb4, 0x1d, 0x16, 0x31, 0x2a, 0xe5, 0xb0, 0x7d, 0xef, 0x1b, 0xf5, 0x35, 0x89, 0xbe, 0xd4, 0x40, 0x06, 0x02, 0xee, 0x11, 0xb8, 0x50, 0x33, 0x0f, 0x38, 0xaa, 0xd3, 0x3e, 0xf0, 0x41, 0x70, 0xa3, 0x90, 0x5c, 0x28, 0xb5, 0x0e, 0xcc, 0x57, 0xdc, 0xcf, 0x4f, 0x29, 0xd0, 0xc0, 0x0f, 0x71, 0x3d, 0x32, 0xff, 0xc8, 0x57, 0x95, 0x65, 0x88, 0xa6, 0x32, 0x6b, 0x95, 0x49, 0xed, 0xb0, 0xe4, 0xfe, 0x61, 0x85, };
12120 static const u8 ed25519_527_test_vectors_expected_sig[] = {
12121 	0x82, 0x5a, 0xff, 0x71, 0xf7, 0x93, 0x03, 0xbf, 0x45, 0x92, 0xbd, 0x8d, 0xa4, 0xd7, 0xd9, 0x43, 0x7f, 0xf2, 0x67, 0x97, 0x6f, 0x74, 0x64, 0x37, 0x65, 0x59, 0x88, 0xdd, 0xcf, 0x29, 0x37, 0x94, 0x65, 0xa3, 0xb4, 0x8c, 0x9f, 0xb0, 0xf3, 0x1c, 0xef, 0x03, 0xe6, 0x36, 0x88, 0x61, 0xc3, 0x69, 0xb4, 0x36, 0x4f, 0xb8, 0xe4, 0xb0, 0xc7, 0x2e, 0x26, 0xa9, 0xa9, 0xdd, 0xed, 0x1c, 0x25, 0x04, };
12122 static const ec_test_case ed25519_527_test_case = {
12123 	.name = "EDDSA25519-SHA512/wei25519 527",
12124 	.ec_str_p = &wei25519_str_params,
12125 	.priv_key = ed25519_527_test_vectors_priv_key,
12126 	.priv_key_len = sizeof(ed25519_527_test_vectors_priv_key),
12127 	.nn_random = NULL,
12128 	.hash_type = SHA512,
12129 	.msg = (const char *)ed25519_527_test_vectors_message,
12130 	.msglen = sizeof(ed25519_527_test_vectors_message),
12131 	.sig_type = EDDSA25519,
12132 	.exp_sig = ed25519_527_test_vectors_expected_sig,
12133 	.exp_siglen = sizeof(ed25519_527_test_vectors_expected_sig),
12134 	.adata = NULL,
12135 	.adata_len = 0
12136 };
12137 
12138 /************************************************/
12139 static const u8 ed25519_528_test_vectors_priv_key[] = {
12140 	0x42, 0x7d, 0x6e, 0x42, 0x39, 0x17, 0x89, 0x68, 0x31, 0x60, 0x1b, 0x8f, 0x4e, 0x21, 0x56, 0x1d, 0xb6, 0x10, 0x85, 0x71, 0xbe, 0x00, 0x9e, 0x29, 0xdc, 0xa4, 0x9a, 0x59, 0x60, 0xff, 0x31, 0x4b, };
12141 static const u8 ed25519_528_test_vectors_message[] = {
12142 	0x9c, 0x2c, 0xc7, 0xf2, 0x46, 0x2e, 0x09, 0xc4, 0xc5, 0x8c, 0x27, 0x09, 0xab, 0x42, 0x59, 0x88, 0x5a, 0x4e, 0x88, 0x7d, 0x9f, 0xa5, 0x31, 0x88, 0x15, 0x05, 0xaa, 0xf2, 0x03, 0xc1, 0x63, 0xfb, 0x3a, 0x0d, 0xc0, 0x28, 0xf4, 0xad, 0xa6, 0x06, 0x70, 0x63, 0x8d, 0x4a, 0x97, 0x27, 0xa3, 0x90, 0x83, 0xbe, 0xdb, 0xac, 0xed, 0x58, 0xed, 0xb7, 0x79, 0xe1, 0xce, 0x6c, 0xcd, 0xfb, 0x42, 0x8c, 0x36, 0x2b, 0xb1, 0xdb, 0x0c, 0x10, 0x53, 0x00, 0x6b, 0xd8, 0xf4, 0xbe, 0xf8, 0x9a, 0x1a, 0x9d, 0xe0, 0x1c, 0x77, 0x4e, 0x35, 0x7f, 0x91, 0x0e, 0x5c, 0x39, 0xb2, 0x24, 0x77, 0x55, 0x5e, 0x5f, 0x7c, 0x04, 0x98, 0xb5, 0xb2, 0x8f, 0x36, 0x9e, 0x5d, 0x3f, 0xa4, 0x2a, 0xb3, 0x60, 0xe4, 0xf4, 0x51, 0xc6, 0x9f, 0x81, 0xba, 0x0f, 0x3c, 0xce, 0xd4, 0x3a, 0x55, 0x9d, 0xb6, 0x00, 0x10, 0x42, 0x78, 0xf8, 0x68, 0x79, 0x6b, 0x2c, 0x91, 0x1b, 0x3b, 0x03, 0x2b, 0x72, 0x9f, 0x4b, 0x22, 0xac, 0x14, 0x9d, 0xc4, 0x67, 0xa0, 0xca, 0xe4, 0x8d, 0x19, 0xe9, 0xd9, 0x85, 0xb4, 0x2b, 0x62, 0x54, 0x9d, 0xe1, 0x71, 0xff, 0x56, 0x6e, 0x1d, 0x1e, 0x9b, 0xb8, 0xe5, 0x6c, 0xfd, 0x1a, 0xe8, 0xf7, 0xbd, 0xdc, 0xfd, 0x8a, 0x23, 0x41, 0x82, 0x7d, 0xbe, 0x89, 0xc8, 0x82, 0xab, 0x3e, 0x49, 0x83, 0x39, 0xff, 0x68, 0x1c, 0x7d, 0xc1, 0x10, 0x4d, 0xe7, 0x38, 0xb4, 0x80, 0x31, 0x69, 0x43, 0x10, 0x9f, 0x70, 0x3d, 0x47, 0x1a, 0xb8, 0x6e, 0x4c, 0xa4, 0x28, 0x7e, 0x4c, 0xd7, 0x4c, 0x31, 0x2f, 0xf7, 0xd0, 0x37, 0x39, 0x56, 0x06, 0xfb, 0x25, 0xf8, 0x71, 0xe7, 0x27, 0x70, 0x78, 0xa7, 0x87, 0xd0, 0x2f, 0x31, 0xcc, 0x9e, 0x81, 0x5b, 0xe8, 0x60, 0x0a, 0x7c, 0x47, 0xc6, 0xfd, 0xd8, 0x23, 0x31, 0xae, 0x9c, 0x49, 0x6a, 0x54, 0x7b, 0xdb, 0x23, 0x5b, 0x8a, 0x56, 0xd5, 0x32, 0x59, 0xe6, 0x29, 0x61, 0x24, 0xa3, 0x2c, 0x3b, 0x62, 0x5d, 0x20, 0x24, 0x19, 0xd0, 0x64, 0xb9, 0xa4, 0xe8, 0x3e, 0xfa, 0x87, 0xf1, 0x35, 0x37, 0xb4, 0xf5, 0x13, 0xb9, 0x16, 0xa8, 0x4f, 0xc8, 0x66, 0xd8, 0xa8, 0x99, 0x80, 0x4c, 0x78, 0x33, 0xea, 0xa0, 0x19, 0xe0, 0xd7, 0xe0, 0xe8, 0x07, 0x5b, 0xd6, 0xb5, 0xcb, 0x6f, 0xfc, 0x76, 0x64, 0x79, 0xf3, 0xf6, 0xe2, 0x0e, 0x48, 0x1e, 0x6a, 0xb2, 0x7b, 0xd8, 0x08, 0xad, 0x90, 0x6c, 0xdc, 0xc7, 0x82, 0x74, 0x30, 0xe3, 0x12, 0xf7, 0x40, 0xf2, 0x75, 0xdd, 0xf5, 0x1d, 0xd8, 0x32, 0x48, 0xfa, 0x05, 0x7c, 0x43, 0xc9, 0xcb, 0x77, 0x55, 0x7b, 0x2f, 0xd9, 0xc2, 0xd5, 0x28, 0x24, 0xff, 0x9e, 0x14, 0x6d, 0xea, 0xc1, 0xe6, 0x69, 0x1d, 0x45, 0x02, 0x13, 0xbc, 0x59, 0x0a, 0x49, 0xbe, 0xc7, 0x2d, 0x52, 0xe3, 0x8f, 0x6b, 0x4d, 0xc6, 0xcc, 0xa9, 0x51, 0xee, 0xf2, 0x18, 0x4d, 0x24, 0x25, 0x03, 0x1a, 0xd5, 0x9b, 0x24, 0x2e, 0xff, 0xa6, 0x8b, 0x6c, 0x72, 0xc5, 0x4c, 0x9d, 0xfd, 0xb4, 0x19, 0xc0, 0x2e, 0xb4, 0x3e, 0xf3, 0xf3, 0x4d, 0x33, 0x8d, 0x2a, 0x9d, 0xd0, 0x3a, 0x78, 0xcf, 0xdd, 0x01, 0x40, 0x98, 0xe2, 0x49, 0x25, 0x9e, 0x77, 0x28, 0x2e, 0x0c, 0x3f, 0xc1, 0x01, 0x0b, 0x02, 0xa6, 0x7f, 0xf8, 0x51, 0xe9, 0xcf, 0xd9, 0x74, 0x9c, 0x1c, 0xd8, 0xf0, 0x6c, 0xf4, 0x62, 0xe6, 0xad, 0xe9, 0x95, 0xac, 0x46, 0x6f, 0xab, 0x5c, 0x79, 0x5e, 0x9e, 0xff, 0x13, 0xe5, 0x5b, 0x43, 0x50, 0xb9, 0x4c, 0x73, 0x16, 0xaa, 0x49, 0x8d, 0xf9, 0xfd, 0xee, 0x99, 0x58, 0x04, 0x77, 0x93, 0xe3, 0xbb, 0xb8, 0x9f, 0xb8, 0x1d, 0xa8, 0x5f, 0x4b, 0x9d, 0x43, 0xe4, 0xb0, 0xd4, 0x3b, 0x38, 0x1b, 0x94, 0xcd, 0xc9, 0xa9, 0x9d, 0x06, };
12143 static const u8 ed25519_528_test_vectors_expected_sig[] = {
12144 	0xd1, 0xc9, 0xa0, 0x1c, 0x56, 0xe3, 0x39, 0x60, 0xf4, 0x9d, 0xf3, 0x7e, 0xab, 0x96, 0x3b, 0xc5, 0xa9, 0x9f, 0x25, 0xc6, 0x00, 0x44, 0x6c, 0xe2, 0xca, 0x48, 0xd9, 0x13, 0x9d, 0xa5, 0x73, 0x3b, 0x71, 0x8f, 0xbf, 0x1a, 0x98, 0x73, 0x93, 0xf6, 0xe5, 0x82, 0x3c, 0x2d, 0x13, 0x0c, 0x7c, 0xe6, 0x0e, 0xa3, 0xdb, 0x35, 0x43, 0xc8, 0x85, 0x4e, 0xf1, 0x2b, 0x98, 0xd3, 0x3a, 0xdd, 0xe7, 0x05, };
12145 static const ec_test_case ed25519_528_test_case = {
12146 	.name = "EDDSA25519-SHA512/wei25519 528",
12147 	.ec_str_p = &wei25519_str_params,
12148 	.priv_key = ed25519_528_test_vectors_priv_key,
12149 	.priv_key_len = sizeof(ed25519_528_test_vectors_priv_key),
12150 	.nn_random = NULL,
12151 	.hash_type = SHA512,
12152 	.msg = (const char *)ed25519_528_test_vectors_message,
12153 	.msglen = sizeof(ed25519_528_test_vectors_message),
12154 	.sig_type = EDDSA25519,
12155 	.exp_sig = ed25519_528_test_vectors_expected_sig,
12156 	.exp_siglen = sizeof(ed25519_528_test_vectors_expected_sig),
12157 	.adata = NULL,
12158 	.adata_len = 0
12159 };
12160 
12161 /************************************************/
12162 static const u8 ed25519_529_test_vectors_priv_key[] = {
12163 	0xbe, 0x93, 0x52, 0x09, 0xf6, 0x2d, 0xea, 0x60, 0x12, 0xec, 0xda, 0x6a, 0x61, 0x56, 0xcd, 0x16, 0x6a, 0x4d, 0x76, 0x11, 0x50, 0xde, 0xed, 0x45, 0x68, 0x16, 0xea, 0xf0, 0xce, 0x78, 0xa7, 0xf6, };
12164 static const u8 ed25519_529_test_vectors_message[] = {
12165 	0x11, 0x7f, 0x42, 0x7c, 0xb6, 0x81, 0x50, 0xca, 0xfc, 0xfa, 0x46, 0x2c, 0x42, 0x20, 0x61, 0x41, 0x42, 0x7c, 0x4d, 0xce, 0xa1, 0xc8, 0xea, 0xcc, 0x2d, 0x30, 0xbe, 0xd1, 0xe9, 0x02, 0x07, 0xd5, 0xae, 0x30, 0x5e, 0x1f, 0xc1, 0x6c, 0x54, 0xe4, 0xc5, 0x4c, 0xc6, 0x87, 0x8c, 0xdb, 0xed, 0xc9, 0xf5, 0x1f, 0xe1, 0x84, 0x61, 0xec, 0x37, 0xc5, 0x57, 0xb1, 0x15, 0xd1, 0x3c, 0x86, 0x82, 0xc4, 0xe1, 0x5f, 0x50, 0x52, 0x96, 0xa1, 0x76, 0x0e, 0x1e, 0x75, 0xf5, 0xab, 0x27, 0xa5, 0xc1, 0x5a, 0x13, 0x57, 0xd2, 0xc8, 0xc4, 0x0d, 0xd5, 0x35, 0x5f, 0x7c, 0x82, 0xfe, 0xa5, 0xd2, 0x7e, 0x28, 0x87, 0x63, 0x58, 0xc1, 0x2e, 0x91, 0x13, 0xee, 0x29, 0x83, 0xea, 0x6f, 0x09, 0xc6, 0x4e, 0x06, 0xe2, 0x97, 0xdd, 0x96, 0xb3, 0x4d, 0x9b, 0x5e, 0xd4, 0x9f, 0xc4, 0x7a, 0x88, 0x39, 0x54, 0x9c, 0x66, 0xb0, 0x02, 0xfe, 0x94, 0x5e, 0x8f, 0x94, 0xe7, 0xd2, 0x31, 0x5c, 0x50, 0xca, 0x4d, 0xc0, 0x98, 0xbe, 0x4b, 0x32, 0x89, 0x81, 0x2f, 0xbe, 0xa9, 0x6b, 0x47, 0xce, 0x60, 0x45, 0x40, 0xbd, 0xe0, 0xe5, 0xab, 0x0b, 0x1b, 0xc0, 0x36, 0xbe, 0x9b, 0x6a, 0x95, 0xe0, 0x9c, 0x81, 0xe8, 0x98, 0x64, 0x0c, 0x8f, 0x05, 0xd6, 0x0a, 0xd9, 0x42, 0x18, 0xd0, 0xe6, 0x6c, 0xeb, 0x85, 0xa2, 0x6b, 0x78, 0x29, 0x22, 0x20, 0xbf, 0xd0, 0x61, 0xdd, 0x07, 0x35, 0x12, 0x92, 0x3b, 0x90, 0xc7, 0x9d, 0xcf, 0x5a, 0x19, 0x35, 0xfa, 0xfe, 0x8e, 0x01, 0xef, 0x8b, 0xf8, 0x1b, 0x4d, 0x37, 0xc5, 0xa5, 0x71, 0xb5, 0x0c, 0x42, 0x1f, 0x9b, 0xd2, 0x19, 0x4b, 0xef, 0x35, 0x86, 0xfc, 0xb8, 0x58, 0x48, 0x77, 0xbb, 0x7e, 0x04, 0x81, 0x65, 0x5b, 0x05, 0xc7, 0xb6, 0x43, 0xb1, 0xe4, 0x5b, 0x04, 0x03, 0x62, 0x72, 0x84, 0x18, 0x52, 0xe3, 0x19, 0x40, 0xef, 0x8f, 0x3b, 0x6d, 0x4f, 0xeb, 0x5d, 0xf0, 0x79, 0xd1, 0x76, 0xf9, 0x79, 0xc1, 0x8a, 0x11, 0xa6, 0x6d, 0x12, 0x14, 0xe5, 0x2f, 0x68, 0x7e, 0x90, 0x63, 0xc1, 0xc2, 0xb7, 0x27, 0x7b, 0x68, 0x5d, 0x5c, 0x72, 0xad, 0x56, 0x9f, 0x78, 0x73, 0x83, 0x8f, 0x91, 0x02, 0x57, 0xa0, 0x53, 0x13, 0x1c, 0x83, 0xeb, 0xce, 0x86, 0xe6, 0x9d, 0x73, 0x63, 0x62, 0xbe, 0xbc, 0x96, 0xbb, 0xfa, 0x35, 0xfc, 0xba, 0x1c, 0xb5, 0x27, 0xe7, 0x48, 0xe5, 0xf5, 0x79, 0x92, 0x9f, 0xd4, 0x0c, 0x56, 0xb1, 0xa5, 0x1a, 0x22, 0x2e, 0x86, 0x33, 0x02, 0x70, 0x5c, 0x86, 0xf7, 0xb5, 0x4e, 0xbf, 0xbb, 0x94, 0x82, 0xf7, 0xe2, 0x80, 0xf7, 0xbe, 0xc8, 0xca, 0xf3, 0xa6, 0xb5, 0x67, 0x1a, 0xc3, 0x0c, 0xd1, 0xbe, 0x52, 0x92, 0x88, 0x79, 0x7c, 0x01, 0x3c, 0xe5, 0x6b, 0xd1, 0x86, 0xde, 0x7d, 0xfc, 0x18, 0x28, 0x69, 0x14, 0x25, 0xc1, 0x47, 0xc5, 0x17, 0x4a, 0x29, 0x0d, 0x80, 0xcb, 0xd5, 0x9c, 0x19, 0xda, 0x7a, 0xdf, 0x77, 0x91, 0x88, 0x82, 0xa7, 0xb2, 0xa9, 0xa6, 0x4e, 0x6d, 0x76, 0xb4, 0x8b, 0x92, 0xf2, 0xa2, 0x66, 0xee, 0xe6, 0xe2, 0x51, 0xd2, 0xe8, 0x17, 0x65, 0x2b, 0x88, 0xb5, 0x02, 0xde, 0x73, 0x99, 0x78, 0x2d, 0x75, 0x29, 0xa8, 0x1d, 0x0a, 0x36, 0x39, 0x96, 0xb9, 0xdf, 0x68, 0xb1, 0x5a, 0x76, 0x30, 0x90, 0x4c, 0x8c, 0x24, 0x60, 0x81, 0xfa, 0x4f, 0x09, 0x29, 0x9f, 0x15, 0x75, 0x79, 0x58, 0xe0, 0x89, 0xa9, 0x01, 0xc3, 0x56, 0x46, 0x15, 0xc0, 0xf7, 0xcf, 0x27, 0x52, 0xb8, 0xb9, 0xe5, 0x21, 0x33, 0x8d, 0x83, 0x6e, 0x3d, 0xae, 0x4c, 0xe2, 0x37, 0x46, 0x42, 0x25, 0x3c, 0x4c, 0x98, 0x31, 0x97, 0x4e, 0x5d, 0x8c, 0x28, 0x42, 0xf4, 0x90, 0x07, 0xb7, 0x17, 0x75, 0x09, 0x3d, 0xfe, 0x57, 0xf4, 0x44, 0x92, 0xf0, };
12166 static const u8 ed25519_529_test_vectors_expected_sig[] = {
12167 	0x08, 0xe0, 0x98, 0xa7, 0x49, 0xfc, 0xe6, 0xd1, 0x23, 0x54, 0x39, 0x58, 0x78, 0xa8, 0xbe, 0x35, 0xfe, 0x9e, 0xdf, 0x72, 0x68, 0x4d, 0xd8, 0x28, 0x12, 0x24, 0x89, 0x9b, 0x1c, 0xae, 0xa4, 0xed, 0x68, 0x77, 0x85, 0xdf, 0xf5, 0x5a, 0x19, 0x98, 0x9e, 0x03, 0x63, 0x6e, 0x16, 0x66, 0x38, 0x6f, 0x22, 0xc3, 0xf4, 0x43, 0xec, 0xf6, 0xfd, 0x34, 0xd5, 0x99, 0xff, 0x3e, 0xc2, 0xfa, 0xf1, 0x01, };
12168 static const ec_test_case ed25519_529_test_case = {
12169 	.name = "EDDSA25519-SHA512/wei25519 529",
12170 	.ec_str_p = &wei25519_str_params,
12171 	.priv_key = ed25519_529_test_vectors_priv_key,
12172 	.priv_key_len = sizeof(ed25519_529_test_vectors_priv_key),
12173 	.nn_random = NULL,
12174 	.hash_type = SHA512,
12175 	.msg = (const char *)ed25519_529_test_vectors_message,
12176 	.msglen = sizeof(ed25519_529_test_vectors_message),
12177 	.sig_type = EDDSA25519,
12178 	.exp_sig = ed25519_529_test_vectors_expected_sig,
12179 	.exp_siglen = sizeof(ed25519_529_test_vectors_expected_sig),
12180 	.adata = NULL,
12181 	.adata_len = 0
12182 };
12183 
12184 /************************************************/
12185 static const u8 ed25519_530_test_vectors_priv_key[] = {
12186 	0x68, 0x18, 0xc6, 0x0b, 0xb6, 0x43, 0x9a, 0xc2, 0xee, 0xe2, 0xd4, 0xe1, 0x28, 0xe9, 0xd8, 0x69, 0x1d, 0x4a, 0xd5, 0xd3, 0x63, 0xfe, 0xd7, 0xd6, 0x57, 0x7a, 0x62, 0xb6, 0x56, 0x99, 0x94, 0xa4, };
12187 static const u8 ed25519_530_test_vectors_message[] = {
12188 	0xb2, 0xae, 0x65, 0x8b, 0x3c, 0x13, 0xc3, 0xcd, 0xeb, 0x1d, 0xc9, 0x93, 0xb0, 0xf4, 0x5d, 0x63, 0xa2, 0xea, 0x9a, 0xbd, 0x0b, 0x7a, 0x04, 0xf1, 0xf5, 0xce, 0x59, 0x32, 0x80, 0x6c, 0x2c, 0xa9, 0xb7, 0xa2, 0x04, 0xfb, 0xf8, 0xd0, 0x66, 0xb7, 0xf0, 0xfe, 0x6a, 0xe0, 0xd1, 0xda, 0x68, 0xc8, 0x85, 0xee, 0x11, 0xf6, 0xf6, 0xdb, 0x7e, 0x83, 0x20, 0xa2, 0xea, 0x65, 0x0b, 0x53, 0x38, 0x51, 0xcd, 0xd9, 0x9d, 0x90, 0x3a, 0xa0, 0xb3, 0xfa, 0xa3, 0xc9, 0x50, 0xf7, 0x02, 0xf0, 0x4e, 0x86, 0xb4, 0xee, 0xb3, 0xa1, 0xc7, 0xbc, 0x85, 0x4b, 0x25, 0x14, 0xfa, 0x5b, 0x47, 0x66, 0xd3, 0x75, 0xb4, 0xf1, 0xad, 0x61, 0x07, 0x53, 0x78, 0xdd, 0x92, 0xfd, 0x62, 0x6c, 0x2b, 0x47, 0xe0, 0x13, 0x83, 0xea, 0x72, 0x98, 0x79, 0x59, 0x26, 0x2c, 0x56, 0x28, 0x62, 0xb4, 0x5b, 0x75, 0x57, 0x67, 0x14, 0x13, 0xb6, 0x66, 0x14, 0xbc, 0xc9, 0xf7, 0xbd, 0xb9, 0xee, 0x46, 0xcb, 0xed, 0x89, 0x65, 0xbf, 0xa5, 0x05, 0x31, 0x50, 0x90, 0xc7, 0x20, 0x4b, 0xea, 0x89, 0x17, 0x5b, 0xe5, 0xf2, 0x08, 0x02, 0xe3, 0xde, 0xdd, 0xcb, 0xd8, 0xdd, 0x64, 0xcf, 0xef, 0x7e, 0xe6, 0xa6, 0xe3, 0x86, 0x0c, 0xe1, 0xe5, 0x79, 0x9d, 0xf5, 0xd8, 0x10, 0xd5, 0xec, 0xf3, 0x2e, 0x61, 0x5d, 0x16, 0xdf, 0xf8, 0x7a, 0xbd, 0x4a, 0x63, 0x6e, 0xa1, 0x7a, 0xa4, 0xec, 0xe5, 0xb6, 0xb2, 0xc0, 0x46, 0xb6, 0x5b, 0x5a, 0xf7, 0x49, 0x86, 0x2b, 0x45, 0x79, 0x0c, 0x39, 0x17, 0x68, 0x20, 0xb3, 0x69, 0x01, 0xbe, 0x64, 0x9c, 0xf4, 0x16, 0x9d, 0xf7, 0xe9, 0x23, 0x95, 0x6d, 0x96, 0x06, 0x49, 0x50, 0xc5, 0x55, 0xf4, 0x5a, 0xcb, 0x94, 0x50, 0x7c, 0xfd, 0x0c, 0x3b, 0x33, 0xb0, 0x80, 0x78, 0x5e, 0x35, 0xc0, 0xd2, 0xb0, 0xad, 0xdc, 0x4c, 0x0a, 0xd3, 0xfb, 0x21, 0x6a, 0xc2, 0xe6, 0x01, 0xc9, 0xc7, 0xe6, 0x17, 0xda, 0xbd, 0xa3, 0x33, 0xda, 0xe6, 0x03, 0xcc, 0x9d, 0xb1, 0xfc, 0x62, 0xae, 0x4e, 0x0e, 0x45, 0xe3, 0xcc, 0xdd, 0x16, 0x6a, 0x67, 0x81, 0xe2, 0x43, 0xb7, 0xda, 0xa1, 0x38, 0x80, 0x66, 0x32, 0xf5, 0x38, 0x84, 0x4e, 0xe3, 0xd1, 0x40, 0xb7, 0xa8, 0xbb, 0x2b, 0x54, 0x01, 0x00, 0x77, 0x8c, 0x45, 0x8e, 0x06, 0x61, 0x70, 0x70, 0x5e, 0x5f, 0xb2, 0xc8, 0x80, 0x29, 0x09, 0x8b, 0x99, 0x2c, 0x39, 0xbc, 0x9f, 0xf6, 0x33, 0x0b, 0xfc, 0xfe, 0x77, 0x52, 0x32, 0x0e, 0x6e, 0xa0, 0x94, 0x9d, 0x2c, 0x87, 0x1a, 0xed, 0xc1, 0x87, 0xbe, 0x27, 0xfe, 0xf7, 0xdb, 0x5f, 0x72, 0xa6, 0xa7, 0x73, 0xed, 0xde, 0x0d, 0xc5, 0x2a, 0xe2, 0xed, 0x93, 0x1c, 0xb2, 0x68, 0x17, 0xb8, 0x5b, 0x15, 0x45, 0x89, 0x4d, 0x92, 0x29, 0x8a, 0xaf, 0x87, 0xcc, 0xbc, 0x78, 0x3e, 0x8d, 0xd6, 0xd1, 0x64, 0x93, 0xf5, 0x6e, 0xad, 0x2b, 0xa8, 0x52, 0xee, 0x9c, 0x7d, 0x10, 0x07, 0x44, 0x06, 0x44, 0x0d, 0x2a, 0x27, 0x9a, 0xbc, 0x87, 0x4f, 0x15, 0x46, 0x8d, 0xd6, 0x6a, 0x71, 0x7b, 0xac, 0xe3, 0x7b, 0xe7, 0xb7, 0x05, 0x5d, 0xd9, 0x68, 0x1f, 0x8b, 0xe8, 0x13, 0x29, 0xee, 0x7a, 0xf9, 0x7e, 0x3a, 0xbc, 0x43, 0x4a, 0xc1, 0xc9, 0x3a, 0xec, 0x58, 0x2f, 0x23, 0xfd, 0x1e, 0xc0, 0xfa, 0x5a, 0xaf, 0xcf, 0x7b, 0xfb, 0xda, 0x00, 0xff, 0xa9, 0x7a, 0xe3, 0x17, 0xae, 0x91, 0x8d, 0x34, 0x9d, 0x21, 0xa7, 0xf4, 0x61, 0x91, 0x42, 0xba, 0x23, 0xda, 0xce, 0xf7, 0xb3, 0x90, 0xae, 0x26, 0xa1, 0x7e, 0x2e, 0x29, 0x62, 0xae, 0x27, 0x00, 0x53, 0x76, 0xb7, 0x2d, 0x4d, 0xa9, 0xe2, 0x97, 0x96, 0x53, 0xa6, 0x63, 0x25, 0xa1, 0x46, 0x17, 0x63, 0x8d, 0xbe, 0x1a, 0x55, 0x40, 0xb6, 0x83, 0xac, 0x00, 0x17, };
12189 static const u8 ed25519_530_test_vectors_expected_sig[] = {
12190 	0x15, 0x05, 0x96, 0x7a, 0x27, 0xb9, 0xf8, 0x6e, 0x92, 0x42, 0x44, 0x40, 0x02, 0xa1, 0xe3, 0x19, 0x7d, 0x74, 0xdd, 0xcd, 0x89, 0x65, 0x9e, 0xc5, 0x14, 0x02, 0x02, 0xaa, 0xc7, 0x94, 0xb8, 0xad, 0xc1, 0x93, 0xe7, 0xd3, 0x0f, 0x33, 0x82, 0x64, 0x29, 0x90, 0xf6, 0xfe, 0xd7, 0xa9, 0x99, 0xca, 0xc8, 0xc6, 0x1e, 0xaa, 0x39, 0xb7, 0xd9, 0x08, 0x16, 0xf1, 0xd7, 0x38, 0x74, 0x4b, 0xe1, 0x01, };
12191 static const ec_test_case ed25519_530_test_case = {
12192 	.name = "EDDSA25519-SHA512/wei25519 530",
12193 	.ec_str_p = &wei25519_str_params,
12194 	.priv_key = ed25519_530_test_vectors_priv_key,
12195 	.priv_key_len = sizeof(ed25519_530_test_vectors_priv_key),
12196 	.nn_random = NULL,
12197 	.hash_type = SHA512,
12198 	.msg = (const char *)ed25519_530_test_vectors_message,
12199 	.msglen = sizeof(ed25519_530_test_vectors_message),
12200 	.sig_type = EDDSA25519,
12201 	.exp_sig = ed25519_530_test_vectors_expected_sig,
12202 	.exp_siglen = sizeof(ed25519_530_test_vectors_expected_sig),
12203 	.adata = NULL,
12204 	.adata_len = 0
12205 };
12206 
12207 /************************************************/
12208 static const u8 ed25519_531_test_vectors_priv_key[] = {
12209 	0x6d, 0x1d, 0xa5, 0xb4, 0x83, 0xe6, 0x4b, 0x03, 0x65, 0x99, 0x0f, 0xf0, 0x93, 0x81, 0xfb, 0x17, 0x02, 0xfd, 0x8e, 0xc3, 0xa1, 0xa3, 0x69, 0xcd, 0x52, 0xe4, 0xc5, 0x67, 0x13, 0xa3, 0x14, 0xa5, };
12210 static const u8 ed25519_531_test_vectors_message[] = {
12211 	0x79, 0xa2, 0xc3, 0x70, 0x55, 0xf1, 0x89, 0xf3, 0x24, 0x7f, 0x1f, 0x8c, 0xea, 0x19, 0xb2, 0xea, 0x40, 0xd8, 0x58, 0xdb, 0x1f, 0x5d, 0x13, 0x92, 0xee, 0x6d, 0x41, 0x1c, 0x78, 0x02, 0xee, 0x23, 0xde, 0x52, 0xad, 0x02, 0x81, 0x17, 0x25, 0xa9, 0x4d, 0x76, 0x67, 0x5d, 0xa8, 0x9a, 0x96, 0xb5, 0xd0, 0x7a, 0xbc, 0xee, 0x23, 0x3a, 0x1a, 0x2e, 0x1f, 0xa3, 0x24, 0xff, 0xf9, 0xe7, 0x8a, 0x4c, 0x19, 0x61, 0x47, 0xf8, 0x57, 0x0b, 0x0b, 0x13, 0x71, 0x3d, 0x96, 0xaa, 0x5d, 0x75, 0x0a, 0x15, 0xd7, 0xcd, 0x16, 0x2e, 0x7b, 0xa2, 0xe7, 0x53, 0x33, 0x60, 0x7d, 0xd6, 0x98, 0xeb, 0x47, 0x73, 0xc7, 0xe9, 0x1f, 0x76, 0x68, 0xff, 0x8b, 0x62, 0xf0, 0x46, 0x40, 0xeb, 0x12, 0xec, 0xf1, 0x22, 0xfc, 0xe6, 0xb8, 0x32, 0xe0, 0xd0, 0xdf, 0x92, 0x8e, 0xef, 0xd2, 0xc2, 0x00, 0x23, 0x64, 0xaf, 0x6b, 0xb5, 0x52, 0x91, 0xd3, 0xf5, 0x49, 0x29, 0x08, 0x5b, 0xe3, 0x38, 0x34, 0x2f, 0x09, 0xda, 0x73, 0xe2, 0x79, 0xc8, 0x7c, 0x83, 0x24, 0x55, 0x58, 0x19, 0xed, 0x57, 0xe7, 0x8d, 0x7a, 0xc4, 0x09, 0x51, 0xd3, 0x3f, 0x65, 0xb9, 0x4a, 0xa1, 0xe5, 0x55, 0xe9, 0x2a, 0x06, 0x3d, 0x11, 0xf1, 0xff, 0x7b, 0x12, 0x69, 0x43, 0x41, 0xe3, 0xfe, 0x44, 0x49, 0x33, 0xd0, 0x1a, 0xa3, 0x67, 0x53, 0xed, 0x3c, 0xdd, 0xa8, 0x90, 0xbd, 0xf9, 0x5a, 0x82, 0x05, 0xb5, 0xd8, 0x93, 0x22, 0x19, 0x91, 0xc7, 0x95, 0xad, 0x0a, 0x4a, 0x94, 0x6f, 0x58, 0xd4, 0x0a, 0x45, 0x34, 0x51, 0xaf, 0x21, 0x4f, 0xd4, 0x65, 0xe2, 0x8d, 0x3e, 0x2f, 0x0a, 0x56, 0xaa, 0x56, 0xde, 0xf8, 0xdc, 0x04, 0xaa, 0xd3, 0x57, 0x13, 0xab, 0xfc, 0x8b, 0xd7, 0x85, 0x6d, 0x5a, 0x9d, 0xc3, 0xf6, 0x0a, 0x3f, 0x2b, 0xd3, 0xe6, 0x36, 0x6f, 0x1f, 0x24, 0x4e, 0x94, 0x1d, 0x6a, 0xea, 0x89, 0x2f, 0x6a, 0x88, 0x93, 0x1f, 0xe1, 0xc3, 0x13, 0xe0, 0x90, 0x78, 0xe9, 0x0b, 0xc6, 0x39, 0x2d, 0x49, 0x05, 0x33, 0xc9, 0xea, 0x3f, 0xf6, 0xde, 0xaf, 0x3a, 0xad, 0xfa, 0x8d, 0xfd, 0xc4, 0xe9, 0x0f, 0x64, 0xaf, 0x47, 0x58, 0x9e, 0xa6, 0x5a, 0x87, 0xac, 0xd2, 0x19, 0x96, 0x02, 0x35, 0x1d, 0x3a, 0xfc, 0x21, 0x03, 0x19, 0x6e, 0x03, 0x94, 0xed, 0x52, 0x3a, 0xa7, 0x99, 0xd3, 0x1e, 0x11, 0xd3, 0x4f, 0xff, 0x54, 0x6d, 0x44, 0xf4, 0x36, 0xb3, 0x48, 0x59, 0xf9, 0xcf, 0xbc, 0x9c, 0xe4, 0x03, 0xde, 0x5a, 0x98, 0x30, 0xec, 0x3d, 0x45, 0x3f, 0x0d, 0x45, 0x97, 0x0f, 0x57, 0x2c, 0x14, 0x4f, 0x19, 0x1b, 0x2f, 0xbb, 0x2d, 0x0e, 0xa6, 0xcc, 0x9c, 0x8e, 0x24, 0xd9, 0xc0, 0xb2, 0x18, 0x3b, 0x27, 0x80, 0x72, 0xeb, 0xb0, 0xbe, 0x2d, 0x70, 0xd0, 0x37, 0xfd, 0x2e, 0x8e, 0xc1, 0x8d, 0xc4, 0xc9, 0xb2, 0x1a, 0xbd, 0xc6, 0xa4, 0xce, 0x8d, 0x46, 0x68, 0xa2, 0x20, 0xee, 0xbd, 0x69, 0x34, 0xf0, 0x4b, 0xaf, 0x0e, 0x88, 0xa4, 0x88, 0xd2, 0xdf, 0xc7, 0x35, 0xa7, 0xc5, 0xa7, 0x0d, 0xbb, 0x01, 0x66, 0xa2, 0x1a, 0xe0, 0x11, 0xfc, 0x6e, 0x7d, 0xa1, 0x0f, 0xc3, 0x20, 0x33, 0x62, 0x71, 0xd9, 0xee, 0xad, 0x51, 0x0a, 0x6f, 0x70, 0x32, 0xf2, 0x29, 0x66, 0x92, 0xbe, 0x50, 0x80, 0x21, 0xbc, 0x98, 0xc1, 0x70, 0xbe, 0x42, 0x35, 0xf7, 0xce, 0x31, 0xf2, 0xbc, 0xd6, 0x34, 0x11, 0x63, 0x68, 0x33, 0x76, 0xae, 0x2c, 0x56, 0x62, 0xcb, 0x47, 0x70, 0xc9, 0x6e, 0x01, 0x8e, 0xf1, 0xbf, 0x47, 0x91, 0x33, 0x19, 0xc9, 0xa0, 0x9b, 0x9e, 0x96, 0x5a, 0xb5, 0xc3, 0xe9, 0x7b, 0xbc, 0x75, 0x6a, 0x56, 0x66, 0xb4, 0x56, 0x7f, 0x2c, 0xff, 0x2d, 0x0c, 0x3a, 0x6a, 0x40, 0x26, 0x15, 0x8c, 0xb9, 0xf9, 0x0f, 0x95, 0x00, 0x56, };
12212 static const u8 ed25519_531_test_vectors_expected_sig[] = {
12213 	0xa5, 0xb8, 0xb4, 0x4a, 0x91, 0x44, 0x4c, 0x64, 0x37, 0x4b, 0x52, 0x3c, 0xb4, 0xdc, 0xb0, 0xce, 0xf4, 0xce, 0x52, 0x40, 0x8b, 0x98, 0x12, 0x6d, 0x7e, 0x1a, 0xe8, 0xbd, 0xc2, 0x8c, 0xf5, 0x14, 0x70, 0xce, 0x4e, 0x25, 0x3e, 0x0b, 0xe6, 0x2b, 0xd6, 0x8e, 0xbf, 0x5f, 0xa6, 0xbc, 0xe1, 0x58, 0x5e, 0xcc, 0xfa, 0x92, 0x56, 0xc0, 0x73, 0xee, 0x03, 0xe5, 0x4c, 0x52, 0x5b, 0xbe, 0x2d, 0x0a, };
12214 static const ec_test_case ed25519_531_test_case = {
12215 	.name = "EDDSA25519-SHA512/wei25519 531",
12216 	.ec_str_p = &wei25519_str_params,
12217 	.priv_key = ed25519_531_test_vectors_priv_key,
12218 	.priv_key_len = sizeof(ed25519_531_test_vectors_priv_key),
12219 	.nn_random = NULL,
12220 	.hash_type = SHA512,
12221 	.msg = (const char *)ed25519_531_test_vectors_message,
12222 	.msglen = sizeof(ed25519_531_test_vectors_message),
12223 	.sig_type = EDDSA25519,
12224 	.exp_sig = ed25519_531_test_vectors_expected_sig,
12225 	.exp_siglen = sizeof(ed25519_531_test_vectors_expected_sig),
12226 	.adata = NULL,
12227 	.adata_len = 0
12228 };
12229 
12230 /************************************************/
12231 static const u8 ed25519_532_test_vectors_priv_key[] = {
12232 	0x51, 0x46, 0xf5, 0xb7, 0xf1, 0xba, 0xa1, 0x9f, 0xc8, 0xcd, 0x78, 0x5c, 0x89, 0x6e, 0x0f, 0x90, 0xf9, 0xf6, 0x59, 0xb7, 0x7b, 0x1b, 0x9b, 0xb4, 0xad, 0xca, 0xb5, 0xa6, 0x26, 0x72, 0x05, 0xe4, };
12233 static const u8 ed25519_532_test_vectors_message[] = {
12234 	0x97, 0xbd, 0x99, 0xf5, 0x18, 0xee, 0x07, 0x88, 0xd5, 0x76, 0xd9, 0x9c, 0x04, 0x3b, 0x44, 0x9d, 0xfc, 0x24, 0x2a, 0xc5, 0xee, 0xae, 0xc3, 0x44, 0xa1, 0x94, 0x32, 0xb3, 0x45, 0x96, 0x2e, 0xc4, 0x12, 0xce, 0x55, 0x36, 0x2b, 0x3b, 0x85, 0x1d, 0x98, 0x11, 0x9f, 0xce, 0xb9, 0x32, 0x83, 0x47, 0xf6, 0xfc, 0xc6, 0x8d, 0xbf, 0x56, 0xa2, 0x81, 0x4d, 0xb0, 0x9e, 0x93, 0x85, 0x84, 0x3a, 0x93, 0x11, 0x89, 0xea, 0x3e, 0x72, 0xda, 0x9d, 0x79, 0xa4, 0x56, 0x93, 0x05, 0x3c, 0x03, 0x57, 0x01, 0xdc, 0x55, 0x51, 0x24, 0x0f, 0x95, 0xb3, 0x03, 0xfb, 0xa1, 0x6f, 0x89, 0xaa, 0x53, 0xa4, 0x38, 0x82, 0xb0, 0xf1, 0x38, 0x12, 0x02, 0xc7, 0x8f, 0x9c, 0x74, 0x19, 0x89, 0x9f, 0x23, 0x51, 0xec, 0xa9, 0x5e, 0x20, 0xbf, 0xee, 0x76, 0x35, 0x1c, 0x48, 0xd0, 0x04, 0x99, 0xf5, 0x91, 0xda, 0x56, 0xa9, 0x95, 0x24, 0xbb, 0x74, 0xfe, 0x1c, 0x83, 0x4e, 0xe9, 0x10, 0x77, 0x13, 0x9f, 0x1e, 0xdf, 0x67, 0x31, 0x5c, 0x07, 0xa3, 0xfd, 0x97, 0xf8, 0x0b, 0x7c, 0x27, 0x6b, 0x6c, 0xf6, 0xb5, 0xcc, 0x36, 0xbe, 0x36, 0x3b, 0x73, 0x12, 0x17, 0xf6, 0x31, 0x9f, 0x51, 0x29, 0xba, 0x7b, 0x14, 0xd0, 0x54, 0xc8, 0xd8, 0x1d, 0x8e, 0x3a, 0x3f, 0x3b, 0xe6, 0x2a, 0xc3, 0x1f, 0xf6, 0x2d, 0xf6, 0xa3, 0xb2, 0xee, 0x25, 0x96, 0x96, 0x9b, 0x99, 0x17, 0x04, 0xb3, 0x1c, 0x68, 0x99, 0x97, 0xab, 0x46, 0x28, 0xbc, 0x26, 0x60, 0xc6, 0x78, 0x72, 0x13, 0x2e, 0x85, 0xda, 0x0c, 0x4f, 0xcf, 0x56, 0x79, 0x65, 0xf1, 0x25, 0x4a, 0x8f, 0x43, 0x26, 0x92, 0xa1, 0x7b, 0xb8, 0x6c, 0xb3, 0xc1, 0xdc, 0xba, 0xac, 0x93, 0x95, 0x52, 0xf0, 0x9e, 0x50, 0xec, 0x5b, 0x0d, 0xe2, 0xef, 0x85, 0xe0, 0xac, 0x25, 0x3a, 0x41, 0x65, 0x65, 0x5d, 0xb5, 0xb5, 0xc4, 0x98, 0x03, 0x82, 0x1d, 0x85, 0x9c, 0x60, 0x96, 0x1e, 0x06, 0x1d, 0x58, 0x27, 0x8b, 0x82, 0x7d, 0xd4, 0xd3, 0xbc, 0x47, 0xf1, 0xc2, 0x2d, 0xe0, 0x94, 0x90, 0x6b, 0xdb, 0xbf, 0x3b, 0xad, 0xbd, 0xde, 0x22, 0xba, 0x24, 0x25, 0x58, 0x55, 0xeb, 0x86, 0xd1, 0xd7, 0xf3, 0x70, 0x82, 0x05, 0x93, 0x11, 0xdc, 0x07, 0x28, 0xeb, 0xea, 0xf2, 0x6c, 0x44, 0x73, 0xba, 0xd1, 0xfa, 0x9e, 0x61, 0x4b, 0x53, 0x3b, 0x81, 0x1b, 0x6b, 0xcb, 0x06, 0x50, 0xc0, 0x6d, 0x87, 0x9a, 0x52, 0x45, 0x78, 0x8f, 0x34, 0x01, 0xb4, 0x61, 0x97, 0x30, 0x07, 0x74, 0xa9, 0xaa, 0x73, 0xcd, 0x97, 0x8c, 0x05, 0x30, 0xc8, 0x1a, 0x53, 0xbd, 0xb3, 0xfc, 0x93, 0x24, 0x14, 0xb3, 0xe3, 0x04, 0x40, 0xdc, 0x12, 0x74, 0x41, 0xef, 0xf1, 0x60, 0x5e, 0x7f, 0xd9, 0xac, 0x8c, 0x63, 0x2e, 0x82, 0xbf, 0x1b, 0x45, 0x3d, 0x4f, 0x33, 0xa5, 0x7e, 0x4b, 0x67, 0xb0, 0xb6, 0xfc, 0xf6, 0xed, 0x55, 0x55, 0xb5, 0xf5, 0xa3, 0x00, 0xa1, 0x4a, 0x00, 0xd0, 0x38, 0x5a, 0x33, 0x75, 0x05, 0x25, 0xb0, 0x0e, 0xdb, 0x31, 0x2c, 0x6b, 0xfd, 0xd6, 0x4e, 0xdd, 0x3b, 0x53, 0x16, 0xd1, 0x9f, 0x95, 0x8c, 0x51, 0x76, 0x34, 0xf0, 0x13, 0xb0, 0x08, 0x93, 0x6d, 0x34, 0xe9, 0xb5, 0xe1, 0xe9, 0x28, 0x3a, 0x5f, 0x0f, 0xd7, 0x78, 0x33, 0x77, 0xc0, 0xe5, 0x09, 0x06, 0x41, 0xbb, 0x9d, 0x33, 0x8c, 0xf3, 0x13, 0x3a, 0xcd, 0x0b, 0x97, 0x1e, 0x53, 0x79, 0x04, 0xf1, 0x7a, 0xf9, 0x29, 0x11, 0xaf, 0xad, 0x72, 0xee, 0x97, 0xf9, 0xa8, 0x28, 0x3a, 0x16, 0xa7, 0xe2, 0x6a, 0xb4, 0x28, 0x41, 0x6c, 0x10, 0x17, 0xda, 0xe9, 0xb1, 0xa9, 0x9c, 0x4c, 0x33, 0x20, 0xad, 0x16, 0x3b, 0xdc, 0xfc, 0x32, 0x8b, 0xfa, 0xf9, 0xb8, 0xd5, 0xd7, 0xd2, 0x6d, 0x41, 0xd1, 0xef, 0x21, 0xa5, 0x20, 0x8f, 0x01, };
12235 static const u8 ed25519_532_test_vectors_expected_sig[] = {
12236 	0x4b, 0xdb, 0xd7, 0xc6, 0x4f, 0x13, 0xe2, 0x78, 0xc2, 0x39, 0x69, 0xe7, 0xeb, 0x38, 0x6b, 0xbe, 0x49, 0x9d, 0xbd, 0xef, 0xc3, 0xff, 0x4e, 0x30, 0xcf, 0xac, 0x5c, 0xf8, 0x6f, 0x21, 0x6c, 0x24, 0xc9, 0xe6, 0xcd, 0xe2, 0x0e, 0x52, 0x9d, 0x14, 0x7f, 0xb7, 0xea, 0x08, 0xf2, 0x59, 0x3a, 0xd5, 0x09, 0x03, 0xb5, 0xed, 0xbf, 0x86, 0xb4, 0xd2, 0x8f, 0x2e, 0xb3, 0x2e, 0xf1, 0x37, 0xf0, 0x0c, };
12237 static const ec_test_case ed25519_532_test_case = {
12238 	.name = "EDDSA25519-SHA512/wei25519 532",
12239 	.ec_str_p = &wei25519_str_params,
12240 	.priv_key = ed25519_532_test_vectors_priv_key,
12241 	.priv_key_len = sizeof(ed25519_532_test_vectors_priv_key),
12242 	.nn_random = NULL,
12243 	.hash_type = SHA512,
12244 	.msg = (const char *)ed25519_532_test_vectors_message,
12245 	.msglen = sizeof(ed25519_532_test_vectors_message),
12246 	.sig_type = EDDSA25519,
12247 	.exp_sig = ed25519_532_test_vectors_expected_sig,
12248 	.exp_siglen = sizeof(ed25519_532_test_vectors_expected_sig),
12249 	.adata = NULL,
12250 	.adata_len = 0
12251 };
12252 
12253 /************************************************/
12254 static const u8 ed25519_533_test_vectors_priv_key[] = {
12255 	0x5e, 0x6f, 0xda, 0xc9, 0x35, 0x1a, 0x63, 0x7b, 0x99, 0xf3, 0x3a, 0x26, 0x4e, 0x12, 0x87, 0x69, 0x7e, 0x2a, 0xba, 0xb0, 0xcc, 0xa1, 0x66, 0x21, 0x79, 0x24, 0x84, 0xf5, 0x60, 0x6f, 0x44, 0xc1, };
12256 static const u8 ed25519_533_test_vectors_message[] = {
12257 	0x4d, 0x6c, 0xd3, 0xbc, 0x2f, 0x86, 0x26, 0x6b, 0x8b, 0xb1, 0xb6, 0x1d, 0x0e, 0x1c, 0xaa, 0x9b, 0xd2, 0xd4, 0xa1, 0x80, 0x36, 0x1a, 0xef, 0x3a, 0x18, 0xd3, 0x90, 0xb1, 0x0f, 0x7e, 0x86, 0x0f, 0x69, 0x7e, 0x24, 0x7e, 0xb6, 0xc3, 0xe5, 0x1d, 0x3b, 0x97, 0x6b, 0xf0, 0xca, 0x18, 0x3d, 0x01, 0xa6, 0x98, 0x80, 0xf1, 0x5c, 0x94, 0xb8, 0x75, 0x66, 0x8c, 0xa3, 0x0d, 0xad, 0xa0, 0x89, 0x5b, 0xed, 0xd4, 0xd7, 0x05, 0xa0, 0xe0, 0x33, 0x04, 0xd0, 0x63, 0xde, 0xa8, 0x7c, 0x7f, 0xde, 0xc9, 0x8b, 0x89, 0xc0, 0x6f, 0x13, 0x0d, 0xd5, 0xbd, 0x58, 0x6b, 0x54, 0xd9, 0xba, 0x73, 0x78, 0x26, 0xbb, 0x40, 0x5c, 0xd8, 0xac, 0x8b, 0xbc, 0x95, 0x00, 0xac, 0xda, 0x3c, 0x07, 0x46, 0x1d, 0x00, 0x94, 0x40, 0xaf, 0x0b, 0x25, 0x31, 0xe7, 0x2f, 0x3f, 0xf5, 0x01, 0x6a, 0xe2, 0xd8, 0x6d, 0x69, 0xb8, 0x7f, 0xb2, 0x73, 0xd1, 0xe8, 0xdd, 0x5f, 0x6a, 0x26, 0x4b, 0xee, 0xbb, 0x2f, 0x88, 0x59, 0x96, 0x74, 0x1f, 0xfd, 0xa2, 0x77, 0xa0, 0xfb, 0xf8, 0xef, 0x08, 0xf8, 0x1f, 0x22, 0xee, 0x59, 0x61, 0xd9, 0xd3, 0xfc, 0x93, 0x83, 0x62, 0xe1, 0xca, 0x12, 0x00, 0x4a, 0x91, 0xd9, 0xb5, 0xf7, 0xa6, 0x83, 0x3a, 0x6c, 0x22, 0x95, 0x5a, 0xc0, 0xcd, 0xa3, 0x39, 0x06, 0x71, 0x91, 0x0c, 0xbd, 0x51, 0xe6, 0x85, 0xfe, 0x09, 0x59, 0x73, 0xe4, 0x15, 0xfc, 0x2d, 0xb8, 0xad, 0xf1, 0x0b, 0x14, 0x7e, 0xc7, 0x08, 0x0c, 0x3b, 0x8e, 0xbd, 0x07, 0xd2, 0x1b, 0xb9, 0x55, 0x6d, 0xa8, 0x54, 0x30, 0xa2, 0x68, 0xee, 0xd8, 0x48, 0x6b, 0x1e, 0x31, 0xc9, 0x43, 0x13, 0xb0, 0x16, 0x49, 0xfe, 0x91, 0xb2, 0x22, 0xf8, 0x5a, 0xde, 0xe1, 0x5e, 0xb7, 0x77, 0x07, 0xd7, 0x8f, 0xfc, 0xb6, 0x60, 0x92, 0x65, 0x44, 0xd3, 0x3b, 0xe9, 0x99, 0x4a, 0x29, 0x76, 0x20, 0xdc, 0x7a, 0xed, 0x97, 0xf3, 0x92, 0x63, 0x90, 0x53, 0xf3, 0x88, 0xb0, 0xb3, 0xaa, 0x3b, 0xd0, 0xac, 0x5b, 0x03, 0x3c, 0xb4, 0x14, 0xbe, 0x52, 0x0b, 0x43, 0xdf, 0x68, 0x26, 0xb9, 0x76, 0x89, 0x0d, 0x0c, 0x53, 0xb9, 0x7b, 0x6c, 0x92, 0xe7, 0xd1, 0xa1, 0x57, 0x3d, 0x0c, 0x74, 0x94, 0xd7, 0x47, 0xe0, 0xca, 0xd9, 0xbd, 0x8e, 0xa5, 0x38, 0xd6, 0x2a, 0xd5, 0x98, 0x01, 0xad, 0x07, 0x16, 0xf1, 0x70, 0x19, 0x3e, 0x30, 0x09, 0xd9, 0x95, 0x9c, 0x55, 0xd2, 0xff, 0x64, 0x79, 0x9b, 0xd9, 0x59, 0x35, 0x9a, 0xbb, 0x94, 0xca, 0x97, 0x23, 0xb5, 0xff, 0xc2, 0x4c, 0x95, 0x07, 0xf8, 0xc5, 0xfd, 0x6e, 0x88, 0xea, 0xae, 0x7a, 0x70, 0xad, 0xd8, 0x4d, 0x74, 0x4c, 0xcf, 0x8b, 0x98, 0x36, 0x37, 0x88, 0xf0, 0xbf, 0xb1, 0xa0, 0x25, 0x22, 0x02, 0x57, 0x51, 0xe5, 0x34, 0x71, 0x0d, 0x40, 0xa2, 0xd3, 0x8a, 0x79, 0x11, 0x94, 0xeb, 0xa2, 0x93, 0xfd, 0x20, 0x46, 0xcc, 0x14, 0xdd, 0x38, 0x76, 0xd1, 0x68, 0xfc, 0x6e, 0x23, 0x6c, 0xbe, 0x14, 0x6d, 0x63, 0x69, 0xd2, 0x25, 0xbf, 0xa6, 0x7e, 0x53, 0x97, 0x98, 0x65, 0xf7, 0x88, 0x73, 0xa9, 0xfc, 0xf0, 0x3c, 0x18, 0x6f, 0xa8, 0x52, 0x1f, 0x0a, 0x55, 0x45, 0xac, 0xce, 0xe8, 0x0d, 0x1e, 0x55, 0x10, 0x72, 0x21, 0xe2, 0x1f, 0x0f, 0x22, 0x91, 0xc1, 0x43, 0xde, 0x02, 0x3e, 0x88, 0xd7, 0x33, 0x0c, 0xc8, 0x7d, 0x4c, 0x51, 0xff, 0x29, 0xa3, 0x09, 0x06, 0x05, 0xe9, 0x73, 0x94, 0x90, 0xc1, 0xdc, 0xee, 0x71, 0x34, 0x95, 0xf2, 0x31, 0xc2, 0xa3, 0x6b, 0x11, 0xab, 0x23, 0x55, 0x47, 0xfb, 0x63, 0x28, 0xf7, 0x47, 0x33, 0x6d, 0x9b, 0x1e, 0xf2, 0x5a, 0x8a, 0xb9, 0x9c, 0xed, 0xa9, 0x57, 0xb2, 0xdc, 0xce, 0xe4, 0x07, 0x5b, 0x0d, 0x03, 0x38, 0x1b, 0x94, 0xae, 0x18, 0xd0, 0x41, 0xea, };
12258 static const u8 ed25519_533_test_vectors_expected_sig[] = {
12259 	0x98, 0x7e, 0x32, 0xe0, 0x0a, 0x8a, 0x16, 0x32, 0xf4, 0x7b, 0x50, 0x31, 0x94, 0x35, 0x5c, 0x98, 0x0c, 0xb2, 0x2a, 0xde, 0xb3, 0x26, 0xb4, 0xe3, 0x11, 0x5e, 0xca, 0xb0, 0x4b, 0x70, 0x4d, 0x18, 0x6c, 0xd9, 0x2e, 0x3c, 0x3a, 0xc7, 0xb4, 0xe2, 0x93, 0x6c, 0xbd, 0x07, 0xcb, 0x79, 0x4e, 0xc0, 0xcf, 0xe9, 0x1a, 0x97, 0x87, 0x2f, 0xf2, 0xb4, 0x13, 0x76, 0xf5, 0xf1, 0x8f, 0x55, 0xb8, 0x05, };
12260 static const ec_test_case ed25519_533_test_case = {
12261 	.name = "EDDSA25519-SHA512/wei25519 533",
12262 	.ec_str_p = &wei25519_str_params,
12263 	.priv_key = ed25519_533_test_vectors_priv_key,
12264 	.priv_key_len = sizeof(ed25519_533_test_vectors_priv_key),
12265 	.nn_random = NULL,
12266 	.hash_type = SHA512,
12267 	.msg = (const char *)ed25519_533_test_vectors_message,
12268 	.msglen = sizeof(ed25519_533_test_vectors_message),
12269 	.sig_type = EDDSA25519,
12270 	.exp_sig = ed25519_533_test_vectors_expected_sig,
12271 	.exp_siglen = sizeof(ed25519_533_test_vectors_expected_sig),
12272 	.adata = NULL,
12273 	.adata_len = 0
12274 };
12275 
12276 /************************************************/
12277 static const u8 ed25519_534_test_vectors_priv_key[] = {
12278 	0xfc, 0xff, 0xf0, 0x93, 0x2d, 0xc8, 0x6e, 0xa5, 0x90, 0x2a, 0x8d, 0x33, 0x07, 0x33, 0x29, 0x96, 0x0c, 0xd8, 0x18, 0x8a, 0x07, 0x5d, 0xd0, 0xbc, 0xdf, 0xa8, 0x38, 0x2c, 0x20, 0xb0, 0xe7, 0x8f, };
12279 static const u8 ed25519_534_test_vectors_message[] = {
12280 	0x3d, 0x4b, 0x76, 0x12, 0x23, 0x73, 0xe2, 0x12, 0xa3, 0x46, 0xd1, 0x9a, 0x66, 0xbb, 0xfc, 0x4b, 0x62, 0x32, 0x92, 0x64, 0x9b, 0xd0, 0xce, 0x5c, 0xf6, 0xbb, 0x13, 0x56, 0x48, 0xbd, 0x01, 0xdb, 0x74, 0x03, 0xb3, 0xd0, 0xbd, 0xd1, 0x69, 0x7f, 0xf4, 0xe6, 0xe9, 0x08, 0x90, 0x41, 0x16, 0x75, 0x4d, 0x37, 0x0c, 0x40, 0xd7, 0x00, 0xcd, 0xb6, 0x64, 0xc4, 0x6a, 0x91, 0xdd, 0x84, 0xa3, 0x58, 0xb9, 0xd2, 0x38, 0x14, 0x43, 0xe6, 0x0f, 0x2c, 0x3f, 0x56, 0x40, 0x26, 0x1b, 0x6b, 0x85, 0x8b, 0xa8, 0xf8, 0x28, 0xb0, 0x97, 0x1f, 0x41, 0x22, 0xb2, 0x02, 0x88, 0xa2, 0x6b, 0xa2, 0x09, 0x0b, 0xa1, 0x4f, 0xd2, 0x76, 0x36, 0x0c, 0xc6, 0x86, 0x79, 0xcd, 0x84, 0x19, 0xae, 0x19, 0xc6, 0xd4, 0xdc, 0x7b, 0x66, 0x14, 0xc0, 0x6d, 0xf5, 0xe5, 0xc0, 0x51, 0x0e, 0x2c, 0xb6, 0x86, 0xde, 0x0e, 0xbd, 0x75, 0xe5, 0x21, 0x0a, 0x21, 0x55, 0x62, 0x58, 0x9b, 0x28, 0xc9, 0xcc, 0xc7, 0xd2, 0x72, 0xb9, 0x8b, 0xd4, 0xbf, 0x93, 0x49, 0x5e, 0xfe, 0x4f, 0xc5, 0xb7, 0x8d, 0xef, 0xec, 0xfb, 0xca, 0xa9, 0xfe, 0x12, 0x6b, 0xad, 0x30, 0xe8, 0x9b, 0x3a, 0x38, 0x9b, 0x42, 0x56, 0xf6, 0xa4, 0x8a, 0x76, 0xc3, 0x45, 0xde, 0x5a, 0x36, 0xa1, 0x44, 0x9f, 0x08, 0x34, 0x5b, 0x9a, 0x5e, 0x6a, 0x00, 0x1d, 0xa1, 0xff, 0x9c, 0xd4, 0x33, 0x70, 0x93, 0x48, 0xe9, 0xae, 0xfb, 0xc7, 0x8b, 0xa5, 0x2d, 0x3a, 0xb3, 0xb4, 0x69, 0x86, 0x93, 0x5e, 0xba, 0x8e, 0xcf, 0x81, 0xed, 0xc4, 0x3c, 0x5b, 0x2e, 0x3b, 0x5e, 0xb3, 0x8d, 0x9a, 0x16, 0x5e, 0x9e, 0x7f, 0x72, 0xf6, 0x17, 0x60, 0x54, 0x63, 0xbe, 0xdb, 0xa9, 0x73, 0xeb, 0xfd, 0xcd, 0xf2, 0xb0, 0x88, 0x9c, 0x71, 0x41, 0x2f, 0x8f, 0x85, 0x0c, 0x7a, 0x3b, 0x55, 0x18, 0xec, 0xd8, 0x9d, 0x2e, 0x25, 0xc0, 0xc1, 0xc3, 0x0f, 0x08, 0x5a, 0x0f, 0xfe, 0x54, 0x0e, 0xf9, 0xc0, 0xe8, 0x8f, 0xc7, 0xec, 0x4a, 0xf1, 0x94, 0x8a, 0x4e, 0x6f, 0x7a, 0x6e, 0x25, 0x6b, 0x30, 0x7a, 0x11, 0x27, 0xb7, 0x1b, 0xa6, 0x86, 0xef, 0xea, 0xdc, 0xa0, 0xe4, 0x86, 0x09, 0x47, 0xcf, 0x67, 0x4f, 0xce, 0xd6, 0xca, 0xf7, 0x31, 0x0c, 0xcb, 0xaa, 0x8d, 0x90, 0x47, 0xda, 0xed, 0x30, 0xfd, 0x55, 0x85, 0xd4, 0x1d, 0xde, 0xae, 0x4d, 0xf2, 0xfe, 0xd4, 0xb6, 0x22, 0x80, 0x32, 0xc3, 0xe4, 0xae, 0x23, 0x80, 0xe8, 0x7e, 0xc6, 0xcd, 0x72, 0xe4, 0xd7, 0x4b, 0x8b, 0x4c, 0x38, 0x13, 0xfb, 0x04, 0x33, 0x89, 0x39, 0x1e, 0x9c, 0x13, 0xf7, 0xd3, 0x3c, 0x3a, 0xab, 0x5a, 0x78, 0xfc, 0x4c, 0x6a, 0x63, 0x4c, 0x61, 0xa7, 0x0f, 0x02, 0xa9, 0x40, 0x54, 0x8d, 0xa1, 0x77, 0xc6, 0x5d, 0xf6, 0xab, 0x17, 0xcd, 0x96, 0x83, 0xf3, 0x7e, 0xa8, 0x21, 0xc7, 0x40, 0x88, 0x9d, 0x82, 0xe8, 0x8c, 0x83, 0x4e, 0x7d, 0x5d, 0xc1, 0x16, 0x62, 0xea, 0x78, 0xb1, 0x3c, 0x6a, 0x4b, 0x62, 0x18, 0xd3, 0x17, 0x84, 0x21, 0x9a, 0x47, 0x67, 0x59, 0x5b, 0x1a, 0x56, 0x21, 0x65, 0x25, 0xcd, 0x68, 0x93, 0x8b, 0x22, 0xbd, 0xb1, 0xf8, 0xc5, 0xa7, 0xf1, 0x70, 0x1a, 0xfe, 0xb9, 0x61, 0x88, 0x8e, 0x2e, 0x0e, 0xc0, 0xc8, 0x38, 0xcd, 0x62, 0x0c, 0xb7, 0xdd, 0x8a, 0x14, 0x93, 0xa0, 0x2c, 0xd5, 0x6b, 0x54, 0x51, 0x25, 0xe4, 0x70, 0x0c, 0x08, 0x89, 0xfa, 0x26, 0x44, 0xe6, 0x44, 0xa3, 0xaf, 0x53, 0x1d, 0x1c, 0xd6, 0xbc, 0x95, 0xe5, 0xdf, 0x91, 0x75, 0xf1, 0x37, 0xf2, 0x84, 0x08, 0xcb, 0x69, 0x9c, 0x7a, 0xe6, 0x6f, 0x65, 0xd1, 0xd2, 0x93, 0x0f, 0xac, 0x57, 0xca, 0x8a, 0x60, 0xe6, 0x31, 0x1a, 0x40, 0x78, 0x48, 0x8c, 0x9e, 0xa4, 0x04, 0x94, 0x8a, 0x9d, 0xeb, 0xeb, 0x9d, 0x5e, 0x10, };
12281 static const u8 ed25519_534_test_vectors_expected_sig[] = {
12282 	0x37, 0xdd, 0xd8, 0x3f, 0x98, 0xb0, 0x57, 0xb7, 0xcb, 0x32, 0x08, 0xa8, 0x32, 0xc5, 0x8a, 0xa9, 0x06, 0x94, 0x56, 0x3c, 0x23, 0x54, 0x8d, 0x43, 0x22, 0x91, 0x38, 0x0b, 0x73, 0x59, 0x13, 0x01, 0xf2, 0x74, 0xb0, 0x4c, 0xee, 0x2e, 0xf7, 0x8c, 0x06, 0xd9, 0x6c, 0x3d, 0x9b, 0x7c, 0x17, 0x52, 0x1a, 0xae, 0x1a, 0x8c, 0xa5, 0x0d, 0x34, 0x7c, 0x09, 0xc3, 0xcf, 0x70, 0x3b, 0xc8, 0x83, 0x0b, };
12283 static const ec_test_case ed25519_534_test_case = {
12284 	.name = "EDDSA25519-SHA512/wei25519 534",
12285 	.ec_str_p = &wei25519_str_params,
12286 	.priv_key = ed25519_534_test_vectors_priv_key,
12287 	.priv_key_len = sizeof(ed25519_534_test_vectors_priv_key),
12288 	.nn_random = NULL,
12289 	.hash_type = SHA512,
12290 	.msg = (const char *)ed25519_534_test_vectors_message,
12291 	.msglen = sizeof(ed25519_534_test_vectors_message),
12292 	.sig_type = EDDSA25519,
12293 	.exp_sig = ed25519_534_test_vectors_expected_sig,
12294 	.exp_siglen = sizeof(ed25519_534_test_vectors_expected_sig),
12295 	.adata = NULL,
12296 	.adata_len = 0
12297 };
12298 
12299 /************************************************/
12300 static const u8 ed25519_535_test_vectors_priv_key[] = {
12301 	0xa1, 0xe4, 0xfc, 0xfd, 0xe0, 0x44, 0xf1, 0xbb, 0x0e, 0x7b, 0xbc, 0x63, 0x1a, 0x83, 0x1a, 0x8d, 0x07, 0xe9, 0x0a, 0xe0, 0x8a, 0x96, 0x6a, 0xd6, 0x27, 0xb6, 0x20, 0xb1, 0xe2, 0x8c, 0x42, 0xcf, };
12302 static const u8 ed25519_535_test_vectors_message[] = {
12303 	0x8c, 0x14, 0x54, 0xd4, 0xe0, 0x8a, 0x14, 0x01, 0x64, 0x6b, 0xf7, 0xa8, 0x85, 0x9e, 0x8a, 0x14, 0x5e, 0x85, 0xee, 0xeb, 0x40, 0xdb, 0x38, 0xff, 0x01, 0x69, 0x70, 0x96, 0x41, 0x21, 0x2c, 0x81, 0xb6, 0x73, 0x90, 0x74, 0x9c, 0x01, 0xa7, 0x98, 0x07, 0xf3, 0xcc, 0xad, 0xbb, 0xd2, 0x25, 0x6f, 0x36, 0xff, 0xc1, 0x80, 0xcf, 0x9b, 0xa4, 0x4b, 0xf4, 0xa7, 0x61, 0x2d, 0x44, 0x1c, 0x23, 0xb2, 0xe2, 0x5d, 0x33, 0xc4, 0x8a, 0x73, 0xe1, 0x6c, 0xe3, 0x57, 0x56, 0x27, 0x58, 0xad, 0xb0, 0x05, 0x53, 0xc3, 0x14, 0x2f, 0xb8, 0x17, 0x6b, 0x6a, 0xe8, 0xfb, 0x61, 0x0a, 0x60, 0xf9, 0x23, 0xb0, 0x91, 0x18, 0x14, 0xb1, 0x0f, 0x56, 0x79, 0x93, 0x6c, 0x36, 0x77, 0xb7, 0x0e, 0x84, 0x6e, 0x21, 0x8f, 0x58, 0x75, 0x67, 0xf2, 0x01, 0x9c, 0x7d, 0x28, 0x2a, 0x10, 0x7f, 0x3c, 0xc8, 0x47, 0x63, 0xad, 0xae, 0xc8, 0x89, 0x93, 0xc0, 0xcc, 0x50, 0x03, 0xe7, 0x7a, 0xf6, 0x0d, 0x67, 0xdb, 0x53, 0xf8, 0xcb, 0x72, 0x7a, 0xa6, 0x67, 0x2d, 0xe0, 0x04, 0x49, 0x8c, 0x3b, 0x3e, 0x22, 0x2a, 0xa7, 0x08, 0x2d, 0x91, 0xf9, 0x8a, 0x1a, 0x06, 0x83, 0x74, 0xc5, 0x10, 0xff, 0x53, 0xa5, 0xe5, 0x59, 0xcb, 0xe2, 0xd6, 0xc7, 0xc3, 0x44, 0x2d, 0x72, 0x38, 0x90, 0x7c, 0x81, 0x1d, 0x58, 0xaa, 0x7f, 0x5a, 0x46, 0xb8, 0x31, 0x12, 0x44, 0xf0, 0xdb, 0xe1, 0xb9, 0xc0, 0xe9, 0x44, 0xdd, 0xa1, 0xd8, 0x01, 0x08, 0x64, 0x94, 0x9c, 0x59, 0x39, 0x6c, 0x6b, 0x34, 0x6a, 0x11, 0xf3, 0xaa, 0x86, 0x6d, 0x6b, 0xce, 0xad, 0xfc, 0x90, 0x90, 0x38, 0xd2, 0x2e, 0xfb, 0xc8, 0xf1, 0xda, 0xc8, 0x10, 0xa9, 0xf2, 0xfa, 0xfc, 0xce, 0x7c, 0x03, 0x89, 0xeb, 0x0a, 0x56, 0xc0, 0xf6, 0x8c, 0xae, 0x24, 0xae, 0x3d, 0xdb, 0xdf, 0xf7, 0x11, 0x6d, 0x2f, 0xad, 0xeb, 0x9b, 0x0e, 0x75, 0x09, 0x53, 0x6f, 0xdc, 0x3b, 0x83, 0xe7, 0x13, 0x54, 0xda, 0x6a, 0x1a, 0xed, 0x16, 0x88, 0x74, 0x90, 0xdc, 0x2f, 0x4d, 0xf5, 0x7b, 0xba, 0xa7, 0x24, 0x45, 0x28, 0xfa, 0x30, 0x94, 0xb9, 0x9e, 0x86, 0x75, 0x81, 0xac, 0xef, 0x90, 0x62, 0x70, 0xb2, 0xcf, 0x4d, 0xed, 0xa6, 0xb8, 0xfd, 0x9d, 0xbb, 0x79, 0xad, 0xd7, 0xbe, 0xa8, 0xf8, 0x6f, 0xcb, 0x1f, 0x64, 0xdf, 0xd5, 0x0e, 0x38, 0x5b, 0x42, 0x09, 0xec, 0x0b, 0x1a, 0x9f, 0x6d, 0x2e, 0x51, 0x90, 0x68, 0x29, 0x7a, 0x2b, 0x5c, 0x40, 0x5c, 0x21, 0x6b, 0x4a, 0x2e, 0xd9, 0x83, 0xff, 0x69, 0xc5, 0x9b, 0x53, 0x0e, 0xff, 0xa6, 0x0c, 0x03, 0x67, 0x05, 0x12, 0x67, 0xdd, 0x2b, 0xbd, 0x1e, 0x86, 0xa9, 0xab, 0x5a, 0x11, 0x4d, 0xd4, 0xf6, 0x9b, 0x54, 0x0b, 0xfa, 0xbf, 0xe9, 0x7c, 0x04, 0x03, 0xb8, 0xfc, 0xbb, 0x27, 0x62, 0x57, 0x61, 0xed, 0xa3, 0xe2, 0xad, 0x8e, 0x62, 0x5c, 0xfe, 0x4b, 0x61, 0x5b, 0x70, 0x25, 0x53, 0x1a, 0x49, 0x89, 0x18, 0xc2, 0x4e, 0x02, 0xa0, 0x0e, 0x79, 0x7b, 0xba, 0xfd, 0x14, 0xf9, 0xd3, 0xf6, 0x82, 0x7e, 0x39, 0x00, 0x63, 0xc4, 0x36, 0x08, 0x06, 0x88, 0xd0, 0x37, 0xa6, 0xe2, 0x99, 0x3c, 0x56, 0xd3, 0xa8, 0xe9, 0x5f, 0x37, 0x5c, 0x10, 0x04, 0x0b, 0xf0, 0x4f, 0x03, 0x0c, 0x97, 0x26, 0x23, 0xd9, 0xe3, 0x80, 0x1c, 0x13, 0xb4, 0xec, 0x8d, 0x01, 0xcf, 0x18, 0x38, 0x55, 0xf5, 0x93, 0x5f, 0x10, 0xdd, 0xb2, 0xc5, 0x4c, 0x51, 0xc8, 0x0c, 0xbe, 0xd0, 0xc2, 0x4d, 0xb5, 0x6e, 0x1e, 0xd1, 0x48, 0x93, 0x1d, 0x89, 0x16, 0x1c, 0x5e, 0xa3, 0x7c, 0x2f, 0x97, 0x87, 0xf8, 0x8e, 0xf7, 0x33, 0x0e, 0x5d, 0xcd, 0x0e, 0x43, 0xd8, 0x1b, 0xfc, 0x8b, 0xf2, 0x3d, 0xdf, 0x79, 0x83, 0xcc, 0x1d, 0x73, 0x38, 0x43, 0xa3, 0x3c, 0xcb, 0x39, 0x5d, 0xfc, };
12304 static const u8 ed25519_535_test_vectors_expected_sig[] = {
12305 	0xc8, 0x00, 0x15, 0x27, 0xbd, 0x90, 0x2c, 0x15, 0xc3, 0xdd, 0x5a, 0xe1, 0x81, 0x80, 0x52, 0x5b, 0x5e, 0x82, 0x02, 0xbe, 0x66, 0x71, 0x1f, 0x82, 0x88, 0x5c, 0x82, 0x22, 0xa1, 0x5f, 0x06, 0x00, 0x92, 0xa2, 0xa6, 0xe2, 0xf7, 0xd7, 0xe9, 0x80, 0x31, 0x12, 0x09, 0x19, 0x1b, 0x32, 0xb8, 0xad, 0xe4, 0x8d, 0x3e, 0xa9, 0x8c, 0xf2, 0x45, 0xf0, 0xfa, 0xd6, 0x2c, 0x00, 0x9c, 0x5a, 0x71, 0x08, };
12306 static const ec_test_case ed25519_535_test_case = {
12307 	.name = "EDDSA25519-SHA512/wei25519 535",
12308 	.ec_str_p = &wei25519_str_params,
12309 	.priv_key = ed25519_535_test_vectors_priv_key,
12310 	.priv_key_len = sizeof(ed25519_535_test_vectors_priv_key),
12311 	.nn_random = NULL,
12312 	.hash_type = SHA512,
12313 	.msg = (const char *)ed25519_535_test_vectors_message,
12314 	.msglen = sizeof(ed25519_535_test_vectors_message),
12315 	.sig_type = EDDSA25519,
12316 	.exp_sig = ed25519_535_test_vectors_expected_sig,
12317 	.exp_siglen = sizeof(ed25519_535_test_vectors_expected_sig),
12318 	.adata = NULL,
12319 	.adata_len = 0
12320 };
12321 
12322 /************************************************/
12323 static const u8 ed25519_536_test_vectors_priv_key[] = {
12324 	0xbe, 0xd1, 0xbb, 0xca, 0xe1, 0x86, 0x43, 0xd6, 0xf6, 0xaa, 0xc3, 0x4f, 0x3d, 0x9b, 0x6a, 0x14, 0x78, 0x39, 0x4d, 0x02, 0xb9, 0x31, 0xcf, 0xf0, 0x06, 0xd8, 0x5f, 0x21, 0xb7, 0xdb, 0xc7, 0x47, };
12325 static const u8 ed25519_536_test_vectors_message[] = {
12326 	0xff, 0x7c, 0x64, 0x13, 0xe6, 0x18, 0xa0, 0x56, 0xde, 0x40, 0x1e, 0xe1, 0x0c, 0x40, 0xad, 0xe3, 0xd7, 0xc0, 0xe6, 0x86, 0x14, 0x95, 0xd9, 0x7c, 0x26, 0x89, 0xec, 0x6a, 0xbb, 0x69, 0xdd, 0x2a, 0xe7, 0x01, 0xfd, 0xca, 0xc8, 0xf0, 0x83, 0x31, 0xea, 0x5c, 0x5f, 0x5d, 0x80, 0x5b, 0x57, 0x89, 0xee, 0x5e, 0x24, 0x1f, 0xf4, 0xac, 0x8b, 0x96, 0x0f, 0x4f, 0x2b, 0x9f, 0xef, 0x6a, 0x72, 0x7f, 0xad, 0x86, 0xdc, 0xd4, 0x32, 0xde, 0x9f, 0xad, 0x6b, 0xa4, 0x5e, 0x00, 0xaa, 0x36, 0x87, 0xb0, 0xce, 0xeb, 0x2c, 0x0d, 0x43, 0x0b, 0x7d, 0x5f, 0xde, 0x63, 0xb4, 0xf6, 0xb9, 0x82, 0xc4, 0xf9, 0xe0, 0x3c, 0x43, 0x0a, 0xba, 0xd9, 0x04, 0x4d, 0x06, 0xdc, 0x49, 0xe8, 0x9d, 0xf4, 0x81, 0x40, 0x5d, 0x8f, 0xeb, 0xbb, 0x06, 0x53, 0xe9, 0x68, 0x69, 0x48, 0xaa, 0xd2, 0xd9, 0x07, 0x25, 0x44, 0xdf, 0x94, 0x24, 0xfd, 0x48, 0x7f, 0x4e, 0x24, 0xba, 0x7f, 0x24, 0x55, 0xdd, 0xec, 0x41, 0x05, 0x82, 0x8c, 0x39, 0x81, 0xbd, 0xdb, 0xb1, 0xb7, 0xfb, 0xdb, 0xac, 0x15, 0x59, 0x03, 0xe9, 0x60, 0xfc, 0xd9, 0x4c, 0x07, 0x16, 0xe7, 0x36, 0xf5, 0x19, 0x86, 0x7f, 0xbc, 0x52, 0xc5, 0x12, 0x60, 0xf5, 0x71, 0xd7, 0xed, 0xcb, 0x08, 0x1a, 0x23, 0x55, 0x0a, 0xd8, 0xc7, 0x0b, 0xb2, 0x68, 0x86, 0x4a, 0xb2, 0x76, 0xaa, 0x2c, 0xc2, 0xdb, 0xf6, 0x23, 0x83, 0xbb, 0x66, 0x03, 0x0e, 0xbe, 0x94, 0x35, 0x41, 0x74, 0xcc, 0xec, 0x2d, 0x2a, 0x90, 0x75, 0x78, 0x55, 0x64, 0x44, 0x50, 0x7c, 0xbf, 0x84, 0x88, 0xbb, 0x23, 0xc6, 0x24, 0x23, 0xa3, 0xa9, 0x8d, 0xa7, 0xcc, 0x96, 0x8f, 0x59, 0x9d, 0x3d, 0xc8, 0x4d, 0xca, 0x3a, 0xfa, 0xd7, 0xf1, 0x4e, 0xc3, 0x06, 0xe1, 0xdb, 0x53, 0x41, 0x43, 0x21, 0x6a, 0xa2, 0x2a, 0xd1, 0x80, 0x74, 0xc7, 0x19, 0x57, 0x08, 0x05, 0xea, 0x46, 0xbc, 0x86, 0xb7, 0x1a, 0x8f, 0xf5, 0x8e, 0x41, 0xe7, 0x3c, 0xb2, 0x9a, 0xd5, 0x75, 0x0f, 0xcf, 0xc9, 0xa1, 0xc5, 0x42, 0x92, 0xb6, 0x4b, 0x47, 0xec, 0x95, 0x38, 0xf5, 0x38, 0x16, 0xe3, 0x6e, 0xd0, 0xd0, 0xc1, 0xae, 0x5e, 0xad, 0x06, 0xd4, 0x77, 0xaa, 0x97, 0x5e, 0xce, 0xba, 0xf6, 0x2d, 0x90, 0x23, 0xb7, 0x7e, 0x50, 0xe7, 0xb6, 0xd4, 0xab, 0xda, 0xa4, 0x85, 0xea, 0x34, 0xec, 0x76, 0x6b, 0xeb, 0x1d, 0x9b, 0xa0, 0x3c, 0x9c, 0x06, 0x71, 0x86, 0xe2, 0xe3, 0x82, 0x66, 0xc6, 0xe2, 0x53, 0x1e, 0x97, 0x48, 0x02, 0x14, 0x63, 0x8a, 0x2b, 0xb3, 0x14, 0x31, 0xac, 0x20, 0x86, 0x79, 0x71, 0x55, 0xfc, 0x77, 0x5b, 0x3a, 0xad, 0x8d, 0x5a, 0x0b, 0x90, 0x4c, 0x38, 0x1e, 0xdd, 0x0c, 0x6b, 0xc2, 0x3c, 0x66, 0xa1, 0x90, 0x49, 0x55, 0xed, 0x45, 0x0a, 0x9c, 0xbd, 0x16, 0x45, 0x9c, 0x32, 0xf5, 0xca, 0x35, 0x4b, 0xbc, 0x2d, 0xa7, 0xb1, 0xa4, 0xd8, 0x14, 0xf1, 0xb8, 0x71, 0x0a, 0xad, 0xb2, 0xcc, 0xc4, 0xf3, 0x97, 0x75, 0x8b, 0x7e, 0x9d, 0x91, 0xf3, 0xa9, 0x1e, 0x58, 0x25, 0xab, 0x86, 0x82, 0xff, 0x5e, 0x41, 0x70, 0x2e, 0x07, 0x84, 0x1a, 0xc7, 0x69, 0x8c, 0x3d, 0xa9, 0xf5, 0x58, 0xed, 0xd0, 0x1f, 0x86, 0xce, 0x2c, 0x50, 0x6b, 0xf4, 0xc2, 0x14, 0x9a, 0xc9, 0xc1, 0x95, 0xa5, 0x9c, 0x7d, 0xd7, 0xd4, 0xec, 0xf9, 0x3c, 0x90, 0xb4, 0x42, 0x3b, 0x43, 0x50, 0x58, 0x8d, 0x41, 0x67, 0x2c, 0xed, 0xc8, 0x51, 0x0a, 0x7a, 0xd5, 0x3b, 0x4b, 0x7e, 0xdc, 0xaf, 0x23, 0xe4, 0x3e, 0x05, 0x66, 0x9d, 0x27, 0xa1, 0xfe, 0x97, 0xb7, 0x87, 0x30, 0xd3, 0xfc, 0x06, 0x0b, 0xd4, 0xed, 0xd9, 0x87, 0x2c, 0xff, 0xb9, 0x62, 0x85, 0x35, 0x1b, 0xef, 0x14, 0x8e, 0xf7, 0x83, 0xab, 0x39, 0x21, 0x16, 0xbd, 0x7b, 0x90, 0x7b, 0xad, };
12327 static const u8 ed25519_536_test_vectors_expected_sig[] = {
12328 	0x0f, 0xc9, 0x9d, 0xd3, 0xb9, 0xa0, 0xe8, 0xb1, 0xfc, 0x6e, 0x63, 0x5a, 0xf5, 0xc6, 0x40, 0x06, 0xb6, 0x72, 0x00, 0xfe, 0x95, 0x8f, 0x53, 0xcc, 0xe1, 0xb9, 0xb0, 0x91, 0xa4, 0xe7, 0x06, 0x69, 0xb5, 0x93, 0xf1, 0x55, 0x94, 0xbc, 0x08, 0x42, 0xe5, 0x57, 0x62, 0x59, 0xf9, 0xa6, 0x85, 0x9a, 0x0d, 0xb2, 0x2d, 0x74, 0x0f, 0x9f, 0x80, 0x24, 0xb5, 0xba, 0xf1, 0xef, 0x6f, 0x95, 0x8c, 0x05, };
12329 static const ec_test_case ed25519_536_test_case = {
12330 	.name = "EDDSA25519-SHA512/wei25519 536",
12331 	.ec_str_p = &wei25519_str_params,
12332 	.priv_key = ed25519_536_test_vectors_priv_key,
12333 	.priv_key_len = sizeof(ed25519_536_test_vectors_priv_key),
12334 	.nn_random = NULL,
12335 	.hash_type = SHA512,
12336 	.msg = (const char *)ed25519_536_test_vectors_message,
12337 	.msglen = sizeof(ed25519_536_test_vectors_message),
12338 	.sig_type = EDDSA25519,
12339 	.exp_sig = ed25519_536_test_vectors_expected_sig,
12340 	.exp_siglen = sizeof(ed25519_536_test_vectors_expected_sig),
12341 	.adata = NULL,
12342 	.adata_len = 0
12343 };
12344 
12345 /************************************************/
12346 static const u8 ed25519_537_test_vectors_priv_key[] = {
12347 	0xc7, 0x18, 0x82, 0x3f, 0x43, 0xdb, 0x22, 0x17, 0xc6, 0x6a, 0xb2, 0x89, 0x97, 0x04, 0x16, 0x5d, 0x20, 0x85, 0x73, 0xde, 0x60, 0xf3, 0x3b, 0xc0, 0xb9, 0x33, 0x8d, 0x88, 0x0f, 0x19, 0x3f, 0xb5, };
12348 static const u8 ed25519_537_test_vectors_message[] = {
12349 	0x05, 0x0e, 0x68, 0x77, 0xf6, 0x5e, 0xc7, 0x26, 0xee, 0xc7, 0x01, 0x86, 0x3f, 0xab, 0x14, 0x0b, 0x99, 0x4a, 0xa1, 0xe9, 0x2a, 0x48, 0x7d, 0xb1, 0xa1, 0x87, 0x01, 0x31, 0x20, 0x57, 0xdb, 0x44, 0xbf, 0xde, 0x70, 0x91, 0x1e, 0xc2, 0x6e, 0xaa, 0x28, 0x63, 0x2d, 0x03, 0x79, 0x4d, 0x54, 0x5d, 0xfc, 0xb2, 0xae, 0xd4, 0x34, 0x0c, 0xab, 0x7d, 0x09, 0x25, 0x95, 0xcd, 0x59, 0xed, 0x23, 0x99, 0x40, 0x43, 0xf5, 0x0b, 0xa6, 0x96, 0xe9, 0x80, 0x2b, 0xd6, 0x49, 0x90, 0x12, 0x13, 0x97, 0x28, 0x64, 0x57, 0xae, 0x69, 0xd7, 0x6c, 0xb8, 0xe3, 0x4d, 0x7c, 0x1a, 0xb2, 0x45, 0xcb, 0x07, 0xb1, 0xb4, 0x08, 0xf2, 0xbb, 0xbf, 0xdf, 0x33, 0xa1, 0xbd, 0xd5, 0x59, 0x63, 0x67, 0x02, 0xc9, 0x18, 0xf9, 0x82, 0xc2, 0xac, 0x02, 0x21, 0xf7, 0xf9, 0x4d, 0xb9, 0x1e, 0xde, 0xfc, 0xe2, 0x81, 0x18, 0x25, 0x9f, 0x89, 0xd9, 0x94, 0xda, 0xd5, 0xbb, 0x01, 0x3c, 0x67, 0x8c, 0x1c, 0x33, 0x8b, 0x65, 0x39, 0x6b, 0x15, 0xe8, 0x89, 0x9c, 0x16, 0x99, 0x21, 0xf2, 0x78, 0x85, 0x9c, 0xe0, 0xc8, 0x56, 0xd8, 0x89, 0xb8, 0xc6, 0x34, 0x18, 0xeb, 0xc5, 0x73, 0xd2, 0xd6, 0x25, 0xd5, 0xb5, 0x93, 0x88, 0x39, 0xf2, 0xb1, 0x69, 0xb6, 0x91, 0x6d, 0x8e, 0x40, 0xdd, 0xe7, 0x0d, 0x3b, 0x72, 0x88, 0x7a, 0xd2, 0x47, 0x8e, 0xf6, 0xfb, 0x12, 0x84, 0xfa, 0x0e, 0x4f, 0xc5, 0x24, 0xe3, 0xc6, 0xfa, 0x1d, 0xd2, 0x2b, 0xa6, 0xb8, 0x1d, 0xef, 0x82, 0x79, 0xf3, 0x82, 0xbc, 0xb4, 0x50, 0x48, 0x85, 0x1b, 0x17, 0xcd, 0x65, 0x9d, 0x59, 0x40, 0x9f, 0x57, 0x1f, 0xa8, 0xa9, 0x20, 0xa2, 0x09, 0x34, 0xd9, 0xdb, 0xe1, 0x02, 0x2d, 0x63, 0x58, 0x40, 0x96, 0x54, 0x00, 0x24, 0x0f, 0x87, 0x0a, 0xce, 0xff, 0xd5, 0xdb, 0x7c, 0x7d, 0xf0, 0x8a, 0xf8, 0x9e, 0x47, 0xe1, 0xb9, 0xe2, 0x0b, 0xb9, 0x9f, 0x96, 0xab, 0x07, 0x3e, 0xdf, 0x53, 0x69, 0x4c, 0x74, 0x82, 0x89, 0x0e, 0x36, 0x31, 0x34, 0x02, 0x17, 0xe6, 0x87, 0xab, 0x27, 0xc9, 0x84, 0xb6, 0x08, 0x25, 0x16, 0x94, 0x57, 0xd4, 0x35, 0xa5, 0x40, 0x9a, 0xd8, 0xe4, 0x2d, 0xa0, 0xaa, 0x63, 0xe2, 0x0c, 0x2b, 0xc6, 0x7b, 0xd8, 0xb9, 0xa2, 0x67, 0xf3, 0x96, 0x73, 0xa7, 0x7f, 0x7f, 0x31, 0x36, 0xdc, 0x5c, 0xb2, 0xd2, 0x49, 0x48, 0xdb, 0xe7, 0xbc, 0xd7, 0x12, 0x93, 0x18, 0xc6, 0x8c, 0x6f, 0xe9, 0x5d, 0xd4, 0xdd, 0x4f, 0xe9, 0x42, 0x28, 0x68, 0x31, 0xea, 0x53, 0x35, 0x2f, 0xbb, 0x25, 0x2a, 0x12, 0x88, 0xbc, 0xd8, 0x38, 0x92, 0x13, 0x56, 0x78, 0x5d, 0x07, 0x21, 0x34, 0xcb, 0x82, 0x0f, 0x62, 0x79, 0xcc, 0x71, 0x46, 0x1f, 0x43, 0x1b, 0xe9, 0xd3, 0x01, 0x47, 0x24, 0x32, 0x1c, 0x92, 0xfd, 0xc5, 0x76, 0x32, 0x01, 0x37, 0x70, 0x5c, 0xff, 0xb2, 0xc2, 0x36, 0x64, 0xb7, 0x05, 0xe9, 0xbe, 0x60, 0xae, 0x1a, 0x19, 0x0f, 0x3e, 0x34, 0x84, 0xf7, 0x00, 0x58, 0xe7, 0x02, 0x40, 0x7b, 0x05, 0x6d, 0x7f, 0xe5, 0xd3, 0x1c, 0xee, 0x9c, 0x2a, 0x6a, 0xc6, 0xea, 0xda, 0x35, 0x16, 0xab, 0xc5, 0x51, 0x72, 0x56, 0xdf, 0x12, 0x43, 0x78, 0x0a, 0x03, 0xbb, 0x00, 0xba, 0x00, 0xce, 0x24, 0x80, 0x76, 0xee, 0xca, 0x6f, 0xee, 0x91, 0xd5, 0xef, 0x9e, 0xb9, 0x07, 0xb8, 0x01, 0xaf, 0x09, 0x7f, 0x3e, 0x9e, 0xb2, 0x56, 0xbd, 0xcd, 0xe8, 0x1e, 0xfe, 0x4b, 0xaf, 0x81, 0x89, 0xb0, 0x39, 0x9e, 0x36, 0xf1, 0xea, 0xa3, 0xab, 0x62, 0x66, 0x17, 0xcf, 0x3b, 0x47, 0xdd, 0x89, 0xca, 0xf6, 0x9c, 0x64, 0xc5, 0xb8, 0xf6, 0x8b, 0xd9, 0x17, 0xfe, 0x03, 0xe4, 0x66, 0x85, 0x38, 0x46, 0x0a, 0x1b, 0xe8, 0x8d, 0x9a, 0x84, 0x6c, 0xef, 0x39, 0x93, 0x46, 0x27, 0xd4, 0x74, 0x73, 0x4f, };
12350 static const u8 ed25519_537_test_vectors_expected_sig[] = {
12351 	0x4c, 0x9c, 0xdb, 0x1a, 0xd4, 0x65, 0x09, 0x56, 0x0d, 0x87, 0x1d, 0x30, 0x89, 0xaf, 0xb8, 0x73, 0x46, 0x48, 0x20, 0x1b, 0x10, 0xac, 0xc9, 0x53, 0xe8, 0xb6, 0x1f, 0x2c, 0xce, 0x2d, 0xba, 0xe0, 0xfb, 0x9b, 0x86, 0x8a, 0xc9, 0x57, 0x43, 0x2b, 0x72, 0x22, 0xdb, 0xf7, 0xe4, 0xcf, 0x0b, 0xc7, 0x53, 0x09, 0xbe, 0xa3, 0x60, 0xb2, 0x63, 0xab, 0xbd, 0xe1, 0x88, 0x53, 0x2d, 0xda, 0x25, 0x04, };
12352 static const ec_test_case ed25519_537_test_case = {
12353 	.name = "EDDSA25519-SHA512/wei25519 537",
12354 	.ec_str_p = &wei25519_str_params,
12355 	.priv_key = ed25519_537_test_vectors_priv_key,
12356 	.priv_key_len = sizeof(ed25519_537_test_vectors_priv_key),
12357 	.nn_random = NULL,
12358 	.hash_type = SHA512,
12359 	.msg = (const char *)ed25519_537_test_vectors_message,
12360 	.msglen = sizeof(ed25519_537_test_vectors_message),
12361 	.sig_type = EDDSA25519,
12362 	.exp_sig = ed25519_537_test_vectors_expected_sig,
12363 	.exp_siglen = sizeof(ed25519_537_test_vectors_expected_sig),
12364 	.adata = NULL,
12365 	.adata_len = 0
12366 };
12367 
12368 /************************************************/
12369 static const u8 ed25519_538_test_vectors_priv_key[] = {
12370 	0x25, 0x43, 0xd1, 0x66, 0xc9, 0xf5, 0xf7, 0x42, 0x7f, 0xf3, 0x03, 0x4f, 0xfa, 0x81, 0x03, 0xcb, 0x11, 0x7b, 0xf4, 0x72, 0x33, 0x1a, 0x73, 0xd9, 0xa2, 0xf1, 0xbc, 0x0a, 0x02, 0xa6, 0xff, 0x1b, };
12371 static const u8 ed25519_538_test_vectors_message[] = {
12372 	0x74, 0x6d, 0x7a, 0xbf, 0x0b, 0xfb, 0x26, 0x62, 0xc2, 0x5a, 0xb5, 0xc5, 0xe4, 0x61, 0x2c, 0x30, 0x6f, 0x16, 0xd1, 0x3e, 0x44, 0xd0, 0xdb, 0x39, 0x4a, 0x00, 0x15, 0x67, 0x6c, 0xe6, 0x09, 0x78, 0x4f, 0x03, 0x23, 0xda, 0x1d, 0xfa, 0x94, 0xd2, 0xb2, 0xf1, 0xf6, 0xe0, 0x24, 0x44, 0xa9, 0x36, 0xd0, 0x19, 0xb1, 0x43, 0x02, 0x1f, 0x73, 0xc7, 0x9d, 0xf9, 0x30, 0x9e, 0x7b, 0xdf, 0xf3, 0x9d, 0xae, 0xec, 0x4c, 0xac, 0xa0, 0x0c, 0xba, 0x4e, 0xf3, 0x1c, 0x83, 0x10, 0xc1, 0xa0, 0x8e, 0xf4, 0xb3, 0x6f, 0x81, 0xc3, 0x77, 0x84, 0x6b, 0x5b, 0x90, 0xac, 0xd4, 0x11, 0xaa, 0x67, 0x1e, 0xd7, 0xaf, 0x27, 0x8a, 0x24, 0x22, 0x9b, 0x78, 0x93, 0xc1, 0xb4, 0x15, 0xd7, 0x98, 0x88, 0xd7, 0x63, 0x7f, 0x5c, 0xb5, 0xc9, 0xc6, 0xc6, 0x31, 0xae, 0x5f, 0xfa, 0x29, 0xf1, 0x34, 0x0e, 0x44, 0x40, 0x96, 0xab, 0x53, 0x36, 0x17, 0xfd, 0xcb, 0x80, 0xff, 0x81, 0xda, 0x0a, 0x7c, 0x6c, 0x14, 0x2e, 0xe0, 0xfe, 0x5e, 0xa8, 0x2f, 0x68, 0xcc, 0x3e, 0xa3, 0x8b, 0x56, 0xf2, 0x72, 0xb0, 0xd8, 0x0f, 0xd5, 0xf4, 0xf5, 0x5c, 0xa9, 0x34, 0x8c, 0x16, 0x18, 0x81, 0x43, 0x58, 0x13, 0xc3, 0xfa, 0x9f, 0xff, 0x66, 0xa2, 0xee, 0x6d, 0x5b, 0xd3, 0xed, 0xba, 0x0d, 0x2f, 0x9a, 0xa7, 0x4b, 0x1c, 0x44, 0xbf, 0xd0, 0xe6, 0x46, 0x78, 0xd3, 0x71, 0x51, 0x24, 0x96, 0x3a, 0xc5, 0x75, 0xff, 0xb0, 0x9e, 0xe1, 0x64, 0x37, 0xda, 0x48, 0x4b, 0x3b, 0xa5, 0x8e, 0x5a, 0xeb, 0x8e, 0xd8, 0xc5, 0xc0, 0xf4, 0x7b, 0x59, 0x90, 0x8f, 0xe5, 0x80, 0xf3, 0x7e, 0xc1, 0xde, 0x26, 0x6b, 0x29, 0x5d, 0x6b, 0xe8, 0x5e, 0x62, 0x35, 0x8e, 0x9b, 0xbd, 0xc7, 0x89, 0x64, 0xfb, 0x83, 0x7e, 0xea, 0x29, 0xfd, 0xb7, 0xde, 0x86, 0xcc, 0x56, 0xf4, 0x8b, 0xd9, 0xa3, 0xe6, 0xe2, 0xbe, 0x51, 0xd8, 0xa1, 0xdc, 0xff, 0x3c, 0xa4, 0xd5, 0x6e, 0xa9, 0x34, 0xc6, 0x82, 0x77, 0x2b, 0xca, 0xfb, 0x51, 0x49, 0x7b, 0xe5, 0xd0, 0xf2, 0xa2, 0x3d, 0xd4, 0x97, 0x0c, 0x02, 0xc4, 0x4c, 0x09, 0xad, 0x89, 0x7b, 0x42, 0x41, 0xac, 0xd7, 0xd6, 0xab, 0x12, 0xd8, 0xf0, 0x0c, 0x9a, 0xad, 0xc3, 0x34, 0xb4, 0x31, 0xfe, 0xc5, 0xbb, 0x69, 0xa2, 0x85, 0xb7, 0x55, 0x0a, 0x63, 0x9e, 0xce, 0x96, 0x95, 0x26, 0x82, 0xb7, 0x33, 0x4b, 0x68, 0xc6, 0x51, 0x52, 0xe8, 0x93, 0xb1, 0xc8, 0x10, 0x0c, 0x69, 0x4d, 0x8c, 0x5c, 0xfe, 0x26, 0xac, 0x03, 0xc1, 0xf3, 0x91, 0x4e, 0x65, 0xc8, 0x4f, 0x0e, 0x77, 0x72, 0x90, 0xc7, 0x6f, 0x6a, 0xcc, 0xe3, 0x40, 0xbf, 0xf6, 0x6d, 0xa7, 0x22, 0x0f, 0x73, 0x17, 0x5e, 0x94, 0xaf, 0x52, 0xf9, 0xf1, 0x9e, 0x61, 0xf8, 0x0d, 0xc1, 0xf3, 0x57, 0x16, 0xb3, 0xf4, 0x8d, 0xfa, 0x50, 0x25, 0xc9, 0xeb, 0xef, 0x73, 0x82, 0xe0, 0x55, 0x83, 0x0f, 0x5b, 0xbf, 0x15, 0xc6, 0xf6, 0xa9, 0x50, 0x32, 0x90, 0x9c, 0x89, 0x2c, 0x0f, 0x89, 0xc8, 0xc1, 0x5f, 0xc3, 0xea, 0x40, 0xa2, 0x0e, 0xe1, 0xa4, 0x52, 0x9b, 0x52, 0x19, 0x51, 0xdf, 0x44, 0xd9, 0xd7, 0x9d, 0x74, 0xe0, 0xc4, 0xc2, 0xe0, 0xfe, 0xd8, 0x49, 0xb8, 0x78, 0x52, 0x06, 0xdb, 0xe6, 0x2b, 0xfa, 0x2c, 0xa2, 0x10, 0x87, 0xa9, 0x12, 0xe9, 0xb1, 0x84, 0x55, 0x16, 0x59, 0xcd, 0x8a, 0x58, 0x7e, 0x95, 0xb0, 0x43, 0x17, 0x19, 0x25, 0x96, 0xbb, 0x0b, 0x7f, 0xc9, 0xf7, 0xbb, 0xb6, 0xee, 0x04, 0x9c, 0x8b, 0x02, 0xfd, 0xd7, 0x58, 0xb4, 0xe7, 0x98, 0x82, 0x07, 0x3b, 0x71, 0xea, 0xab, 0x18, 0xaa, 0x29, 0x37, 0x01, 0xc1, 0x7d, 0x55, 0xf9, 0xec, 0x46, 0xc5, 0x2d, 0xe1, 0xe8, 0x86, 0xb6, 0x75, 0x0f, 0xb0, 0xfb, 0xcd, 0x64, 0xf4, 0x56, 0x8a, 0x21, 0x0a, 0xe4, 0x51, 0xe9, };
12373 static const u8 ed25519_538_test_vectors_expected_sig[] = {
12374 	0x20, 0xea, 0x93, 0x68, 0xa2, 0xcc, 0xd0, 0x8b, 0xf9, 0xcb, 0xf4, 0x8d, 0x4a, 0x2f, 0x7d, 0x03, 0xf0, 0xdb, 0x08, 0xa5, 0x4b, 0x87, 0x67, 0x9c, 0xda, 0x03, 0xe2, 0x96, 0xaf, 0x9e, 0xf3, 0x78, 0xbe, 0x9b, 0x8f, 0x04, 0xb4, 0x06, 0x5b, 0x00, 0x9d, 0xa6, 0xdb, 0x01, 0x6f, 0x3d, 0xf9, 0xdb, 0x64, 0x82, 0x58, 0x73, 0xe2, 0xfb, 0x4d, 0xe3, 0x04, 0x49, 0x91, 0x5c, 0xd7, 0x3c, 0x46, 0x09, };
12375 static const ec_test_case ed25519_538_test_case = {
12376 	.name = "EDDSA25519-SHA512/wei25519 538",
12377 	.ec_str_p = &wei25519_str_params,
12378 	.priv_key = ed25519_538_test_vectors_priv_key,
12379 	.priv_key_len = sizeof(ed25519_538_test_vectors_priv_key),
12380 	.nn_random = NULL,
12381 	.hash_type = SHA512,
12382 	.msg = (const char *)ed25519_538_test_vectors_message,
12383 	.msglen = sizeof(ed25519_538_test_vectors_message),
12384 	.sig_type = EDDSA25519,
12385 	.exp_sig = ed25519_538_test_vectors_expected_sig,
12386 	.exp_siglen = sizeof(ed25519_538_test_vectors_expected_sig),
12387 	.adata = NULL,
12388 	.adata_len = 0
12389 };
12390 
12391 /************************************************/
12392 static const u8 ed25519_539_test_vectors_priv_key[] = {
12393 	0x85, 0xe0, 0xa8, 0x0f, 0x3b, 0x30, 0xc2, 0x01, 0x99, 0xd9, 0xc1, 0xec, 0x66, 0x2e, 0x39, 0x2f, 0xdf, 0x15, 0x46, 0x37, 0x73, 0x43, 0xf1, 0x24, 0x71, 0xdb, 0x2a, 0x03, 0x10, 0xa7, 0x05, 0xbd, };
12394 static const u8 ed25519_539_test_vectors_message[] = {
12395 	0xd2, 0x80, 0x2f, 0x15, 0x96, 0xf8, 0x38, 0x3b, 0x64, 0xed, 0xbd, 0xc5, 0x94, 0x06, 0x0b, 0xff, 0x0e, 0x70, 0x13, 0xd5, 0xb7, 0xc8, 0x5d, 0x83, 0x0f, 0xae, 0x11, 0xae, 0xb3, 0x4d, 0xd5, 0x94, 0x95, 0x9d, 0xa6, 0x24, 0xe0, 0x44, 0x47, 0x4c, 0x54, 0x09, 0xc0, 0x05, 0x96, 0x73, 0xbd, 0xc6, 0x1a, 0x67, 0x1e, 0xf5, 0xb0, 0xb8, 0xa2, 0x6f, 0x30, 0x10, 0x0b, 0x3b, 0x73, 0x96, 0x8d, 0x8e, 0x4d, 0x83, 0xa7, 0x2f, 0x25, 0xb5, 0x13, 0x44, 0x8d, 0x2f, 0x6b, 0x6a, 0x44, 0x75, 0xfd, 0xf8, 0x9e, 0x31, 0xca, 0x92, 0x68, 0xa3, 0x07, 0x05, 0xaf, 0x3f, 0x64, 0x9e, 0x3f, 0xe0, 0x1d, 0xde, 0x0c, 0xf4, 0xb2, 0x9e, 0xc2, 0xda, 0x54, 0x36, 0x44, 0x4a, 0xf0, 0x91, 0xd6, 0x27, 0x30, 0xac, 0xd4, 0xca, 0xb6, 0x08, 0xf0, 0xdf, 0x26, 0xf0, 0x88, 0xc6, 0xb9, 0xb9, 0x67, 0x37, 0x94, 0xf0, 0x74, 0x7d, 0xab, 0x2c, 0xe1, 0x90, 0xf9, 0x05, 0x92, 0x00, 0x9f, 0xdc, 0xe5, 0x46, 0x4b, 0x36, 0x61, 0xb7, 0xe8, 0x62, 0x0b, 0xad, 0x65, 0x50, 0x9a, 0x6c, 0x75, 0x2b, 0x72, 0x7a, 0x8d, 0xc8, 0xd3, 0xef, 0xa5, 0x84, 0xfd, 0xe0, 0x27, 0x2c, 0x45, 0x1d, 0x65, 0xa9, 0x3b, 0xec, 0xe4, 0xf5, 0x9d, 0x87, 0xdc, 0x6f, 0xbe, 0xb4, 0x51, 0x40, 0x1e, 0x3e, 0x2e, 0x00, 0x3c, 0x6a, 0xca, 0x7b, 0x3d, 0x3f, 0x92, 0x71, 0x91, 0x50, 0xc6, 0x77, 0x8f, 0x01, 0x5a, 0xff, 0x2a, 0x59, 0xbf, 0xbf, 0x2e, 0x91, 0xb2, 0x1b, 0x0a, 0xd6, 0x87, 0x75, 0x36, 0xeb, 0x54, 0x56, 0x70, 0x59, 0xf5, 0x87, 0xf5, 0x4d, 0x4e, 0x2a, 0x6f, 0xe1, 0xfd, 0xcd, 0xd6, 0xa7, 0xfd, 0xcb, 0x85, 0x15, 0x57, 0x5b, 0xcc, 0x37, 0x05, 0xd7, 0x78, 0x59, 0x35, 0x2f, 0xa0, 0xb0, 0x44, 0x16, 0x6e, 0x3c, 0x31, 0x88, 0x46, 0xa5, 0xdf, 0x33, 0x56, 0x30, 0x03, 0xcb, 0x20, 0xbc, 0x94, 0x2d, 0x30, 0x39, 0x10, 0x93, 0xe8, 0xd5, 0x83, 0xe8, 0xe6, 0x4d, 0xec, 0x57, 0x0e, 0xe1, 0xc4, 0x13, 0x87, 0x62, 0xf6, 0x48, 0x38, 0x98, 0xd3, 0x2e, 0x20, 0x32, 0xbd, 0xe9, 0xbb, 0xe0, 0x7e, 0xc2, 0xc3, 0xeb, 0x47, 0xd9, 0x68, 0x76, 0xf0, 0xfc, 0x0f, 0x02, 0x4d, 0x75, 0x3c, 0xeb, 0x34, 0xff, 0x84, 0x80, 0xb4, 0xcf, 0x57, 0x62, 0x30, 0xbb, 0x82, 0x63, 0xdd, 0x80, 0xee, 0xac, 0x66, 0x2e, 0xba, 0x31, 0xd8, 0xa6, 0x1f, 0x30, 0x9e, 0x17, 0x5f, 0x4c, 0x01, 0x43, 0xe2, 0x8a, 0x85, 0x2b, 0x1c, 0x30, 0x61, 0xce, 0x78, 0xef, 0xbd, 0x16, 0xa2, 0x87, 0x3d, 0xd2, 0x81, 0x98, 0xa4, 0x6e, 0xc0, 0xa8, 0x00, 0xb3, 0x0d, 0xc8, 0xa9, 0x3b, 0x8d, 0xbb, 0x81, 0xa7, 0x30, 0xde, 0x45, 0x0b, 0x86, 0x4d, 0xea, 0x76, 0x80, 0xe5, 0x09, 0xd8, 0x00, 0xe8, 0x23, 0x29, 0xc2, 0x61, 0xb0, 0x7e, 0x72, 0xaa, 0x80, 0xee, 0x16, 0xec, 0x37, 0x5d, 0xdb, 0xbb, 0x6f, 0xe3, 0xd8, 0xd4, 0x7b, 0x0e, 0x3c, 0x5a, 0x9f, 0x23, 0xc4, 0xd2, 0x0b, 0x72, 0x4c, 0x1d, 0xf5, 0x98, 0x35, 0xd8, 0x30, 0xdd, 0x22, 0xd1, 0x04, 0x03, 0xd8, 0xf1, 0x5c, 0x10, 0x2c, 0x4b, 0x37, 0x69, 0xc4, 0x16, 0x66, 0xc3, 0xab, 0x8c, 0x7e, 0x80, 0xb9, 0x40, 0xd0, 0xbb, 0xb5, 0x86, 0x52, 0xd1, 0x0a, 0x3f, 0xfe, 0x8d, 0x44, 0xdf, 0x10, 0x12, 0xa3, 0xdd, 0xc4, 0xe1, 0xc5, 0x18, 0xd4, 0x90, 0x19, 0xf7, 0xc5, 0xd3, 0xd9, 0xf9, 0x5e, 0xd9, 0x3a, 0x31, 0x97, 0x46, 0xd1, 0xe5, 0x43, 0xff, 0xa6, 0x9e, 0xdb, 0x49, 0xbb, 0x34, 0x39, 0xf8, 0xa3, 0x25, 0xac, 0x6a, 0x0c, 0xb4, 0xed, 0xd6, 0x5b, 0xa6, 0x00, 0x80, 0xa0, 0x44, 0x7c, 0x67, 0x4f, 0xaa, 0x72, 0xd8, 0xae, 0xbd, 0xb5, 0xd2, 0x54, 0x4f, 0x2f, 0x2d, 0x84, 0x7c, 0x72, 0xc2, 0xdf, 0xa6, 0x05, 0x7a, 0x69, 0x0a, 0xdc, 0x5c, 0x44, 0x1a, };
12396 static const u8 ed25519_539_test_vectors_expected_sig[] = {
12397 	0x18, 0x5e, 0xf2, 0x24, 0x6a, 0xba, 0x2b, 0x1a, 0x56, 0x80, 0x32, 0xc7, 0xdf, 0x93, 0xc6, 0x67, 0x79, 0x9b, 0x8a, 0x52, 0x1a, 0x6f, 0x97, 0x32, 0x1e, 0xad, 0x58, 0x66, 0xb4, 0xcb, 0x9c, 0x65, 0xb6, 0x4a, 0x1c, 0x40, 0xb9, 0xb6, 0xa9, 0x10, 0xe7, 0x42, 0xdc, 0x32, 0xa7, 0xe6, 0x6d, 0x11, 0xea, 0x45, 0xdb, 0xea, 0xac, 0xae, 0x9f, 0x09, 0x51, 0x1b, 0x81, 0x01, 0xf8, 0xaf, 0x0c, 0x0c, };
12398 static const ec_test_case ed25519_539_test_case = {
12399 	.name = "EDDSA25519-SHA512/wei25519 539",
12400 	.ec_str_p = &wei25519_str_params,
12401 	.priv_key = ed25519_539_test_vectors_priv_key,
12402 	.priv_key_len = sizeof(ed25519_539_test_vectors_priv_key),
12403 	.nn_random = NULL,
12404 	.hash_type = SHA512,
12405 	.msg = (const char *)ed25519_539_test_vectors_message,
12406 	.msglen = sizeof(ed25519_539_test_vectors_message),
12407 	.sig_type = EDDSA25519,
12408 	.exp_sig = ed25519_539_test_vectors_expected_sig,
12409 	.exp_siglen = sizeof(ed25519_539_test_vectors_expected_sig),
12410 	.adata = NULL,
12411 	.adata_len = 0
12412 };
12413 
12414 /************************************************/
12415 static const u8 ed25519_540_test_vectors_priv_key[] = {
12416 	0x82, 0xa2, 0xc6, 0x49, 0x3f, 0x11, 0xba, 0x80, 0xe4, 0xb8, 0xb3, 0xb4, 0x38, 0x41, 0xbe, 0x97, 0x0e, 0x2a, 0x10, 0xa9, 0x4d, 0x22, 0x49, 0xd8, 0xac, 0x6f, 0x54, 0x14, 0xcf, 0x5a, 0x3c, 0xb5, };
12417 static const u8 ed25519_540_test_vectors_message[] = {
12418 	0x09, 0x85, 0x4d, 0x13, 0x68, 0x49, 0x50, 0x41, 0x9e, 0x0b, 0xb1, 0x64, 0x64, 0xe0, 0x99, 0x88, 0x90, 0x5c, 0x02, 0x17, 0x18, 0x3a, 0xa1, 0xe4, 0x8a, 0xdb, 0x14, 0x7b, 0xfc, 0xc2, 0xeb, 0x57, 0xc2, 0x30, 0x0b, 0x0d, 0xfc, 0x39, 0xd4, 0x89, 0x66, 0x55, 0xa5, 0x7a, 0xe2, 0x04, 0x15, 0x40, 0x8b, 0xb5, 0xf2, 0xc2, 0x38, 0x01, 0x39, 0x55, 0xf0, 0xa4, 0xfc, 0x78, 0x2e, 0x0c, 0x99, 0x3f, 0xe4, 0x2c, 0xb0, 0x8c, 0xd8, 0xcf, 0x41, 0x5c, 0xcb, 0xd6, 0xcf, 0x1c, 0xee, 0x2e, 0x80, 0x97, 0xf0, 0x4e, 0x8f, 0x09, 0xae, 0x5d, 0xa5, 0xf4, 0x15, 0xb1, 0x6c, 0x2c, 0xb3, 0x0c, 0xb2, 0xab, 0x66, 0x52, 0xba, 0x50, 0xeb, 0xbc, 0xae, 0x4a, 0x59, 0xe3, 0x1f, 0xe1, 0x1e, 0x7e, 0xf3, 0x69, 0x9c, 0xa9, 0x0a, 0xaf, 0xa5, 0x86, 0xbb, 0x24, 0x2c, 0x89, 0xcd, 0x2e, 0x33, 0x2b, 0x2b, 0xfa, 0x2f, 0x81, 0x42, 0xac, 0xca, 0xf4, 0x36, 0xf8, 0x9b, 0x64, 0x53, 0xbb, 0x48, 0x05, 0xa1, 0xe7, 0xf3, 0xab, 0x62, 0x70, 0xf0, 0xda, 0xf8, 0x93, 0x89, 0xe7, 0x17, 0xd1, 0xb7, 0x01, 0x75, 0xec, 0x57, 0x07, 0xc8, 0xf5, 0x12, 0xc4, 0x0a, 0xb9, 0x24, 0xc4, 0x57, 0xe9, 0xf0, 0x91, 0x47, 0x91, 0x75, 0x0d, 0xc2, 0x92, 0xbb, 0x27, 0xd6, 0xf6, 0x3b, 0xa8, 0xcc, 0xf5, 0x4b, 0x90, 0xd3, 0xeb, 0xa7, 0xf1, 0x9e, 0xb3, 0x00, 0xd9, 0xeb, 0x8f, 0x3b, 0x72, 0x03, 0x2b, 0xa9, 0x30, 0x37, 0xf5, 0x52, 0xb4, 0x09, 0xb5, 0x80, 0xa5, 0xf6, 0x51, 0x16, 0xfa, 0xff, 0xe0, 0xfd, 0xfd, 0xc6, 0xdb, 0x38, 0x81, 0x38, 0x6c, 0x3c, 0xbc, 0x16, 0xb6, 0x7e, 0xb2, 0x57, 0x63, 0xd7, 0xae, 0x3a, 0xac, 0x0b, 0x85, 0xaa, 0x1e, 0x9a, 0xa2, 0x2e, 0x49, 0x59, 0x60, 0x9d, 0x43, 0x81, 0xe4, 0xb6, 0xd7, 0x15, 0x9f, 0xf3, 0xe3, 0xb2, 0xd3, 0x7b, 0x64, 0x0f, 0x88, 0xcf, 0xbe, 0x4f, 0x8a, 0x77, 0xf8, 0x01, 0x64, 0x57, 0x22, 0x8b, 0xa6, 0xd3, 0xaf, 0x5c, 0x4e, 0x33, 0x12, 0x5d, 0x48, 0xbc, 0xfc, 0xf3, 0x67, 0x8c, 0x16, 0x3b, 0x69, 0x8e, 0x52, 0xe8, 0x56, 0x17, 0xab, 0x1a, 0x75, 0xff, 0x20, 0xc6, 0x90, 0xab, 0x07, 0x15, 0x5e, 0xe7, 0x57, 0x59, 0x85, 0x78, 0x07, 0x2d, 0x4a, 0x09, 0xdf, 0xc6, 0xc6, 0xc0, 0x94, 0xec, 0x04, 0x85, 0x67, 0xd5, 0x13, 0xce, 0x2b, 0x18, 0x34, 0xe1, 0x63, 0xdf, 0x15, 0x45, 0x31, 0x9d, 0x80, 0x61, 0xe0, 0xe5, 0x7f, 0x58, 0xef, 0x04, 0x1b, 0x7b, 0xff, 0xc4, 0x96, 0x6a, 0xc1, 0x66, 0x03, 0x31, 0xb9, 0x7a, 0xbb, 0xc9, 0x7b, 0xe2, 0x1a, 0xe2, 0xbc, 0x58, 0xc6, 0xc3, 0x27, 0x4a, 0x8a, 0xda, 0xd5, 0xfd, 0x2c, 0x3b, 0xc1, 0x6b, 0x92, 0xe1, 0xf8, 0xde, 0x87, 0x7b, 0x6a, 0x26, 0xf0, 0xc6, 0xab, 0x71, 0x62, 0xe8, 0xaa, 0xb9, 0x3a, 0xf8, 0xd8, 0x59, 0x18, 0xc1, 0x3d, 0x3e, 0x23, 0x5a, 0x27, 0x37, 0x48, 0xc6, 0x2f, 0x0d, 0x22, 0xcb, 0x1c, 0x93, 0xe1, 0x34, 0xa4, 0x95, 0xb1, 0xb5, 0xef, 0x8f, 0x1a, 0x11, 0x34, 0x51, 0x2d, 0x53, 0xb7, 0xa2, 0x11, 0x26, 0x31, 0x77, 0xf7, 0xa6, 0x0b, 0xdf, 0x47, 0x46, 0x91, 0xf2, 0x24, 0xa3, 0xb5, 0xba, 0xc4, 0x00, 0x6d, 0xb3, 0x45, 0xca, 0x67, 0x25, 0xf5, 0xee, 0x70, 0x3e, 0xca, 0x0d, 0xea, 0x10, 0xd7, 0x12, 0x67, 0x6f, 0x63, 0xef, 0x3e, 0x53, 0x7e, 0x63, 0xab, 0xd2, 0x60, 0x8c, 0xb4, 0xfb, 0xe2, 0x00, 0xe1, 0x5f, 0x18, 0x20, 0x91, 0x53, 0x49, 0x60, 0x72, 0x90, 0x80, 0x44, 0xc9, 0x5a, 0x4e, 0x9c, 0x53, 0x56, 0xaa, 0xe8, 0xed, 0x5f, 0x09, 0x59, 0xea, 0xc0, 0x91, 0xe2, 0x27, 0xa0, 0xb8, 0x1f, 0x58, 0x03, 0x27, 0x6b, 0x3b, 0x3b, 0xf4, 0xb6, 0x86, 0x5a, 0x55, 0xfc, 0x67, 0x82, 0xf6, 0x2e, 0xa6, 0xd6, 0x39, 0x90, 0xf9, 0xbe, 0xfe, 0x01, };
12419 static const u8 ed25519_540_test_vectors_expected_sig[] = {
12420 	0x68, 0xa9, 0x1d, 0x4f, 0x8d, 0x24, 0x1c, 0x1d, 0xef, 0xbd, 0x5c, 0xa9, 0xe9, 0xe1, 0xed, 0x82, 0x74, 0x41, 0x95, 0x06, 0x75, 0x1c, 0x96, 0x79, 0x47, 0xb1, 0x0d, 0x50, 0x11, 0x8b, 0xbf, 0xab, 0xc7, 0x65, 0xff, 0xd7, 0xb3, 0x1a, 0x01, 0x67, 0xc4, 0xfd, 0x8b, 0x11, 0x75, 0x33, 0x24, 0x12, 0xdf, 0x19, 0xd8, 0xaa, 0x1a, 0x90, 0x95, 0x90, 0x86, 0x13, 0x20, 0x92, 0x3d, 0xbc, 0xb2, 0x04, };
12421 static const ec_test_case ed25519_540_test_case = {
12422 	.name = "EDDSA25519-SHA512/wei25519 540",
12423 	.ec_str_p = &wei25519_str_params,
12424 	.priv_key = ed25519_540_test_vectors_priv_key,
12425 	.priv_key_len = sizeof(ed25519_540_test_vectors_priv_key),
12426 	.nn_random = NULL,
12427 	.hash_type = SHA512,
12428 	.msg = (const char *)ed25519_540_test_vectors_message,
12429 	.msglen = sizeof(ed25519_540_test_vectors_message),
12430 	.sig_type = EDDSA25519,
12431 	.exp_sig = ed25519_540_test_vectors_expected_sig,
12432 	.exp_siglen = sizeof(ed25519_540_test_vectors_expected_sig),
12433 	.adata = NULL,
12434 	.adata_len = 0
12435 };
12436 
12437 /************************************************/
12438 static const u8 ed25519_541_test_vectors_priv_key[] = {
12439 	0xe5, 0x5b, 0x34, 0x3a, 0x0f, 0xa1, 0xfb, 0x74, 0x71, 0x89, 0xcb, 0x00, 0xdb, 0xc3, 0xa6, 0xaa, 0x2d, 0xcf, 0x5b, 0x86, 0xe5, 0x7d, 0x76, 0x93, 0xf3, 0x07, 0x42, 0x03, 0x89, 0x76, 0x11, 0x53, };
12440 static const u8 ed25519_541_test_vectors_message[] = {
12441 	0x36, 0x28, 0x9b, 0x5e, 0xaf, 0xf2, 0xa8, 0x5a, 0x7c, 0x6d, 0x57, 0x5b, 0xd1, 0x5e, 0xa5, 0x94, 0xb2, 0xfd, 0x85, 0x10, 0x87, 0x4a, 0x46, 0x9b, 0x52, 0x10, 0x91, 0x63, 0x69, 0x6d, 0x85, 0xb6, 0x8c, 0x5b, 0x21, 0x1d, 0x29, 0x64, 0xef, 0xdc, 0x66, 0xe6, 0x25, 0xab, 0xe8, 0xaa, 0xfe, 0x4c, 0xd9, 0x22, 0x0c, 0xdb, 0x34, 0x11, 0x07, 0xff, 0xa8, 0x27, 0x6e, 0xd4, 0xb3, 0x70, 0xfe, 0x37, 0x6c, 0x14, 0x82, 0x68, 0x71, 0x67, 0xdb, 0xc8, 0xf7, 0xb2, 0x05, 0xa3, 0xf3, 0x30, 0x1a, 0x16, 0x64, 0xd9, 0x07, 0x28, 0x77, 0xd9, 0xf9, 0x8b, 0x8f, 0x69, 0x83, 0x13, 0x01, 0xdf, 0x99, 0x94, 0x71, 0x7f, 0xc8, 0x89, 0x69, 0x24, 0x23, 0x91, 0xd9, 0xb0, 0x51, 0x7d, 0x6e, 0xfb, 0x27, 0x17, 0x01, 0xea, 0xb3, 0xf4, 0xa9, 0xb1, 0x20, 0x42, 0x13, 0xe8, 0xcd, 0x13, 0xf9, 0xd0, 0x99, 0x04, 0x8b, 0x82, 0x07, 0x56, 0x2f, 0x2e, 0x4e, 0xbc, 0x65, 0x3c, 0xc6, 0x5e, 0x9d, 0x55, 0x12, 0xd6, 0x5b, 0x41, 0x02, 0x2c, 0x79, 0xb4, 0xeb, 0x37, 0x29, 0x87, 0x69, 0xae, 0xaa, 0x6e, 0xfe, 0xd6, 0x9e, 0x9a, 0x8c, 0xb4, 0x45, 0xc7, 0x01, 0x22, 0x74, 0xde, 0x62, 0xf5, 0x09, 0xf4, 0xe4, 0x81, 0x4a, 0xdc, 0xbf, 0x44, 0x53, 0xb4, 0xfa, 0xb8, 0x5d, 0x7c, 0x8f, 0xd8, 0x45, 0xe0, 0x08, 0x30, 0xef, 0x5b, 0x7b, 0x1e, 0x63, 0xc6, 0x76, 0x13, 0x98, 0x4c, 0xae, 0xfe, 0x91, 0x5a, 0x54, 0x8e, 0x18, 0xe5, 0x05, 0x62, 0x2c, 0xb2, 0xb3, 0x92, 0x99, 0xf4, 0x27, 0xf4, 0xd8, 0x39, 0x83, 0xba, 0x2a, 0xa0, 0x0d, 0x53, 0xbe, 0xe1, 0xf5, 0x9a, 0xec, 0x83, 0x18, 0xc5, 0xea, 0x34, 0x5d, 0x29, 0x42, 0x52, 0x36, 0x97, 0x92, 0x76, 0x2a, 0xdd, 0x3e, 0x56, 0xfc, 0xfa, 0x6e, 0x77, 0x97, 0xf0, 0x28, 0xc7, 0x99, 0x47, 0x90, 0x45, 0xed, 0xb2, 0xe2, 0x05, 0xeb, 0x6d, 0xd6, 0xca, 0x04, 0xee, 0xe5, 0x6f, 0x94, 0x96, 0xd2, 0xbf, 0x26, 0x09, 0x93, 0x57, 0xc9, 0x73, 0x83, 0x5b, 0x99, 0x36, 0x02, 0x49, 0x11, 0xe4, 0x65, 0x5d, 0x3e, 0x22, 0xc8, 0x11, 0xc8, 0xd4, 0xdb, 0xd1, 0xb0, 0x4f, 0x78, 0x97, 0x3f, 0x07, 0x75, 0x23, 0xa3, 0x89, 0xb6, 0xf2, 0x8f, 0x6f, 0x54, 0x21, 0x61, 0x42, 0xcb, 0x93, 0xe3, 0x3d, 0x72, 0xb4, 0xa5, 0x05, 0x2d, 0x27, 0xe4, 0x91, 0x1e, 0x41, 0xe6, 0xce, 0xc7, 0xbe, 0xbe, 0x1b, 0x0a, 0x51, 0x13, 0xe6, 0xb7, 0x0b, 0x47, 0x9d, 0x2a, 0xbe, 0xed, 0xf6, 0x9b, 0x75, 0x64, 0xe5, 0xa5, 0x73, 0xb3, 0x52, 0xd1, 0x6c, 0xec, 0x89, 0x07, 0x01, 0xbb, 0x38, 0x3d, 0x3f, 0x66, 0x56, 0xed, 0xa0, 0x89, 0x2f, 0x8c, 0xcc, 0x70, 0x94, 0x0f, 0x62, 0xdb, 0xe5, 0x28, 0xa6, 0x5e, 0x31, 0xac, 0x53, 0x88, 0x26, 0xc1, 0x38, 0xac, 0x66, 0x52, 0x4e, 0x33, 0x16, 0x37, 0xba, 0x2d, 0x37, 0x73, 0x03, 0x58, 0xe6, 0xc7, 0x32, 0xcf, 0xf8, 0xfe, 0xe9, 0x40, 0xaf, 0xd2, 0x2c, 0x39, 0xae, 0x38, 0x1e, 0x5d, 0x88, 0x26, 0x73, 0x9b, 0x23, 0xfd, 0xc1, 0xb8, 0x0a, 0xea, 0x5a, 0x62, 0xa2, 0xcf, 0x0f, 0xf1, 0x52, 0x5e, 0x44, 0x6c, 0xf3, 0x10, 0x46, 0x19, 0x50, 0x51, 0xd5, 0x85, 0x03, 0xee, 0xd1, 0xbe, 0xfd, 0x79, 0x3e, 0xea, 0xe1, 0xd5, 0xd1, 0xb6, 0x2a, 0x5c, 0x98, 0x45, 0x15, 0x7a, 0x09, 0x5c, 0xdc, 0x08, 0xa1, 0xd7, 0x7b, 0xa4, 0x7e, 0x84, 0xa5, 0xa7, 0x39, 0x98, 0x0f, 0x0f, 0x5b, 0xe7, 0xaa, 0xec, 0x9a, 0x21, 0x5b, 0x20, 0x4b, 0x4b, 0xb7, 0xcb, 0x1b, 0x38, 0x6d, 0xed, 0x58, 0xd7, 0xaa, 0xf7, 0x28, 0x53, 0x41, 0x90, 0x7c, 0x63, 0x33, 0x6e, 0xe3, 0xe6, 0xef, 0x07, 0x7a, 0xd1, 0x11, 0xb9, 0x74, 0xe7, 0x50, 0x4b, 0xd9, 0x89, 0xf5, 0x66, 0xfd, 0xa1, 0xb1, 0xb5, 0x9a, 0xba, 0xa9, 0x1c, 0x78, 0xbb, 0x40, };
12442 static const u8 ed25519_541_test_vectors_expected_sig[] = {
12443 	0x07, 0x26, 0x6c, 0x18, 0x65, 0x0e, 0xcf, 0x06, 0x32, 0xe2, 0x25, 0x62, 0x4e, 0xc4, 0xc9, 0x7f, 0xc3, 0x87, 0xdc, 0x37, 0x46, 0x87, 0xa6, 0x19, 0x56, 0xdc, 0xcc, 0xe7, 0x28, 0x94, 0xee, 0x13, 0x8a, 0xab, 0xc8, 0x0c, 0xfc, 0x90, 0xc9, 0xee, 0xa6, 0xdd, 0x4c, 0x59, 0xaf, 0x45, 0x02, 0xee, 0x29, 0x63, 0x5a, 0x92, 0x88, 0x07, 0x86, 0x67, 0x8b, 0x14, 0xa3, 0x93, 0x1a, 0x69, 0xf9, 0x07, };
12444 static const ec_test_case ed25519_541_test_case = {
12445 	.name = "EDDSA25519-SHA512/wei25519 541",
12446 	.ec_str_p = &wei25519_str_params,
12447 	.priv_key = ed25519_541_test_vectors_priv_key,
12448 	.priv_key_len = sizeof(ed25519_541_test_vectors_priv_key),
12449 	.nn_random = NULL,
12450 	.hash_type = SHA512,
12451 	.msg = (const char *)ed25519_541_test_vectors_message,
12452 	.msglen = sizeof(ed25519_541_test_vectors_message),
12453 	.sig_type = EDDSA25519,
12454 	.exp_sig = ed25519_541_test_vectors_expected_sig,
12455 	.exp_siglen = sizeof(ed25519_541_test_vectors_expected_sig),
12456 	.adata = NULL,
12457 	.adata_len = 0
12458 };
12459 
12460 /************************************************/
12461 static const u8 ed25519_542_test_vectors_priv_key[] = {
12462 	0x39, 0x73, 0x03, 0x8f, 0xa2, 0xef, 0x6a, 0x27, 0x8d, 0x3c, 0x1c, 0xff, 0x9a, 0x22, 0x56, 0x69, 0xe4, 0x65, 0xa6, 0x9d, 0x07, 0x50, 0x50, 0x3d, 0xe7, 0x48, 0xc0, 0x02, 0xdb, 0xf9, 0x27, 0x8a, };
12463 static const u8 ed25519_542_test_vectors_message[] = {
12464 	0x33, 0x92, 0xe0, 0x2f, 0x3c, 0x84, 0x66, 0x1e, 0xaf, 0x81, 0xa5, 0xff, 0x04, 0x35, 0x7f, 0x21, 0x2e, 0x92, 0x36, 0x1c, 0x5c, 0x22, 0x07, 0x39, 0xd9, 0x6b, 0x4d, 0x3d, 0x9c, 0x22, 0xd1, 0x8d, 0xf4, 0x8b, 0xe6, 0xb5, 0x51, 0x26, 0xf5, 0x81, 0x60, 0x1f, 0xfe, 0x0d, 0xa6, 0x3f, 0x38, 0xe1, 0x9c, 0xbb, 0x12, 0x72, 0x6c, 0xa0, 0xa6, 0xaa, 0x32, 0x55, 0x67, 0xa0, 0x03, 0xa7, 0x84, 0x9d, 0x06, 0x78, 0x39, 0x92, 0xeb, 0x9e, 0xb9, 0x28, 0x53, 0x29, 0x7d, 0x72, 0x28, 0xdb, 0xa9, 0x80, 0xb2, 0x50, 0xbb, 0x11, 0x0f, 0x63, 0xd0, 0xb8, 0x46, 0x70, 0xe5, 0xec, 0xb3, 0x19, 0xcb, 0xfd, 0x61, 0x27, 0x8f, 0x1f, 0x4c, 0xab, 0xf1, 0xfc, 0xb3, 0xf7, 0x01, 0xf1, 0x2f, 0x6e, 0xf8, 0xd3, 0xcc, 0x42, 0x82, 0xfc, 0xbe, 0x58, 0x9e, 0xb5, 0x65, 0x95, 0x03, 0xa2, 0xdd, 0xd8, 0xbb, 0xa3, 0x8e, 0x5e, 0xff, 0x09, 0x2d, 0xfa, 0xf5, 0x39, 0xfd, 0x80, 0x4f, 0x21, 0xf7, 0x3a, 0x90, 0xad, 0xf5, 0x69, 0xa0, 0x0b, 0xf9, 0xd2, 0x5a, 0x9a, 0xd3, 0xa6, 0x33, 0x09, 0xcc, 0x60, 0x93, 0x14, 0x24, 0x71, 0xa4, 0x78, 0xf0, 0xb8, 0x99, 0x22, 0x86, 0xde, 0x02, 0x3c, 0x68, 0xef, 0xd4, 0x99, 0x87, 0xec, 0x27, 0x0b, 0xd9, 0x46, 0xf6, 0xdb, 0x48, 0xf6, 0x84, 0xf1, 0xc2, 0xad, 0xee, 0xe2, 0x6d, 0x68, 0xdc, 0xe9, 0x5a, 0x55, 0xe4, 0xcb, 0x27, 0xbc, 0x60, 0x52, 0x30, 0x80, 0xdf, 0x6b, 0xa2, 0xb1, 0x99, 0x99, 0x6b, 0x1f, 0x1d, 0xa6, 0x92, 0x0d, 0x15, 0x59, 0xf7, 0x9b, 0xfd, 0xe9, 0xfa, 0x1a, 0x02, 0xde, 0xae, 0x14, 0x80, 0xc7, 0x6f, 0x94, 0x7f, 0x9d, 0x21, 0x3f, 0xc4, 0x3b, 0xb2, 0x88, 0x0a, 0x1b, 0x4d, 0x03, 0xbb, 0x14, 0xf5, 0xb0, 0x44, 0xa0, 0xfd, 0x83, 0xce, 0x04, 0x92, 0xf4, 0x9c, 0xa3, 0xaf, 0x25, 0x21, 0x1b, 0x86, 0xfa, 0xa5, 0x73, 0x5a, 0xd7, 0xfe, 0xaf, 0x31, 0xa1, 0xa7, 0x49, 0x1e, 0x70, 0x8b, 0x41, 0x82, 0x9d, 0x68, 0xe3, 0x24, 0x14, 0xf6, 0x83, 0x52, 0xb7, 0x1d, 0x1c, 0xd2, 0x3c, 0x8e, 0x12, 0xfb, 0x02, 0xda, 0x71, 0x14, 0x84, 0xf6, 0xef, 0x97, 0x52, 0x8a, 0x00, 0xd2, 0x4f, 0xcf, 0x91, 0xd4, 0xe0, 0x6e, 0x9b, 0xad, 0xae, 0x9a, 0x44, 0xdb, 0xdb, 0x3f, 0x77, 0x80, 0x41, 0x76, 0x8d, 0x86, 0x37, 0x04, 0xd7, 0x36, 0x81, 0x04, 0x00, 0xe7, 0xf2, 0x93, 0x1e, 0xfb, 0x85, 0xc8, 0x72, 0x4a, 0x59, 0x34, 0x26, 0xaa, 0x2a, 0xf1, 0xec, 0x5b, 0x66, 0x4f, 0x85, 0xc2, 0x25, 0x48, 0x96, 0xfd, 0xcf, 0x31, 0x6d, 0xb0, 0x92, 0x4e, 0x11, 0xaa, 0xe8, 0xd6, 0x83, 0xe9, 0xa0, 0x21, 0x92, 0x9d, 0x0a, 0x9d, 0x6f, 0xec, 0xb4, 0x59, 0x4b, 0x1b, 0x3f, 0xbc, 0x16, 0xb1, 0x76, 0xd2, 0x9d, 0x1e, 0xfb, 0x18, 0x19, 0xa4, 0xa4, 0x23, 0xfb, 0xe0, 0xca, 0x05, 0x59, 0xc5, 0x7e, 0x9e, 0x54, 0x49, 0xf1, 0x4b, 0xce, 0x91, 0x36, 0x0d, 0xaf, 0xda, 0x6a, 0x42, 0x7c, 0xe4, 0xa0, 0x99, 0x3d, 0xd0, 0x30, 0x82, 0xdd, 0xee, 0x06, 0x65, 0x33, 0xf6, 0xd3, 0xbd, 0xa5, 0x66, 0x0f, 0x42, 0xfd, 0x77, 0x57, 0x69, 0x0d, 0x67, 0x05, 0x98, 0xec, 0x70, 0x96, 0xf4, 0x75, 0xa0, 0x1a, 0x51, 0x99, 0x50, 0x34, 0x1a, 0x83, 0x1f, 0xc9, 0xa2, 0x81, 0xc0, 0x94, 0x7a, 0x86, 0x3f, 0x1f, 0x6e, 0x03, 0xbb, 0xa7, 0x74, 0xde, 0x77, 0xad, 0xc2, 0x3f, 0xbe, 0x52, 0x5c, 0xae, 0x6c, 0xcc, 0xe4, 0x7a, 0x0e, 0xc4, 0x97, 0x9e, 0x8b, 0xec, 0x86, 0xf3, 0x32, 0xfc, 0x6a, 0x57, 0x36, 0xe3, 0xb9, 0x8f, 0xb3, 0x32, 0xe9, 0xe8, 0x24, 0x4e, 0x68, 0xa1, 0x00, 0x45, 0x5e, 0x64, 0x99, 0xba, 0x8d, 0xba, 0xe9, 0x8b, 0x92, 0xba, 0x3d, 0x9c, 0x6b, 0x4f, 0xf9, 0x80, 0x34, 0x3e, 0x4c, 0x8e, 0xf4, 0xd5, 0xa4, 0xaa, 0xcf, 0x8b, 0x1a, };
12465 static const u8 ed25519_542_test_vectors_expected_sig[] = {
12466 	0xfc, 0x0c, 0x54, 0x53, 0x83, 0x9e, 0xa9, 0x92, 0x96, 0xff, 0xfa, 0x50, 0x1d, 0x58, 0x36, 0x66, 0x28, 0xdf, 0x89, 0xf6, 0x16, 0x76, 0x69, 0x42, 0xd5, 0x04, 0x0a, 0x05, 0x60, 0x56, 0xda, 0xb1, 0x8b, 0x44, 0x05, 0xc0, 0x4a, 0xbf, 0x90, 0x59, 0xc3, 0x08, 0x68, 0xd7, 0x9c, 0x93, 0x6c, 0xcc, 0xc8, 0x4c, 0x4f, 0xbd, 0x6f, 0xd3, 0x0b, 0x60, 0xf8, 0xbc, 0xbd, 0x7a, 0x66, 0x40, 0x42, 0x02, };
12467 static const ec_test_case ed25519_542_test_case = {
12468 	.name = "EDDSA25519-SHA512/wei25519 542",
12469 	.ec_str_p = &wei25519_str_params,
12470 	.priv_key = ed25519_542_test_vectors_priv_key,
12471 	.priv_key_len = sizeof(ed25519_542_test_vectors_priv_key),
12472 	.nn_random = NULL,
12473 	.hash_type = SHA512,
12474 	.msg = (const char *)ed25519_542_test_vectors_message,
12475 	.msglen = sizeof(ed25519_542_test_vectors_message),
12476 	.sig_type = EDDSA25519,
12477 	.exp_sig = ed25519_542_test_vectors_expected_sig,
12478 	.exp_siglen = sizeof(ed25519_542_test_vectors_expected_sig),
12479 	.adata = NULL,
12480 	.adata_len = 0
12481 };
12482 
12483 /************************************************/
12484 static const u8 ed25519_543_test_vectors_priv_key[] = {
12485 	0xc7, 0x1c, 0xc1, 0x0a, 0xd2, 0xd4, 0x43, 0xe0, 0x25, 0xad, 0x06, 0x25, 0x68, 0x6b, 0x12, 0x35, 0x03, 0xe5, 0x90, 0x19, 0x3a, 0x2b, 0xc8, 0xcc, 0x57, 0xa7, 0xb9, 0xb4, 0x15, 0x8d, 0xe6, 0xcb, };
12486 static const u8 ed25519_543_test_vectors_message[] = {
12487 	0x2e, 0x08, 0x46, 0x53, 0x6d, 0xc6, 0xcc, 0xe1, 0x9c, 0xcf, 0x82, 0xdc, 0x2d, 0x0c, 0xd2, 0x1b, 0xd4, 0xe1, 0xca, 0x7b, 0xc3, 0x17, 0x06, 0x7a, 0xf8, 0xd9, 0x0e, 0xe4, 0x81, 0x8c, 0x85, 0x18, 0xbc, 0x3e, 0xf9, 0x60, 0xce, 0x11, 0x2a, 0x41, 0xd2, 0xb9, 0x97, 0x9a, 0x28, 0x2a, 0xe1, 0x3d, 0x70, 0x6a, 0x00, 0x5e, 0x00, 0x34, 0xf0, 0x6b, 0x39, 0xff, 0x4b, 0x0a, 0x5a, 0xfa, 0xed, 0x70, 0xb5, 0x61, 0xbc, 0xce, 0xb1, 0xbb, 0xd2, 0xec, 0x19, 0xf9, 0x74, 0x48, 0xea, 0xed, 0x4b, 0xe6, 0x20, 0xe3, 0x6a, 0x96, 0x2d, 0x87, 0x8c, 0x6f, 0x80, 0x17, 0x2b, 0x9f, 0xad, 0x43, 0xee, 0xd0, 0x7f, 0xf9, 0x3d, 0xb9, 0xb9, 0xca, 0x22, 0x62, 0xd5, 0xa3, 0xc2, 0x29, 0xc5, 0x4e, 0x30, 0xa4, 0x5e, 0x73, 0x66, 0x08, 0x92, 0xf0, 0x48, 0xe3, 0x63, 0xf3, 0x71, 0x44, 0xed, 0x19, 0x21, 0xf7, 0x29, 0x92, 0xb4, 0xd0, 0x15, 0x29, 0x87, 0x0c, 0xfe, 0x37, 0x3b, 0x7e, 0x7c, 0xbe, 0xda, 0xf9, 0x69, 0x26, 0x9f, 0xb7, 0x0a, 0xa7, 0x83, 0xd1, 0xe7, 0x44, 0x17, 0xc7, 0xba, 0xe0, 0xfe, 0x03, 0xd9, 0x51, 0xfd, 0xb8, 0xc7, 0x1c, 0x62, 0xe9, 0xbe, 0x7f, 0xdd, 0x5d, 0x23, 0x3e, 0x39, 0xf4, 0x6f, 0xed, 0x05, 0x7e, 0x49, 0xb6, 0xf3, 0x40, 0x68, 0x45, 0x91, 0x48, 0xda, 0x3d, 0x42, 0x41, 0x61, 0xad, 0x2c, 0x86, 0x95, 0x08, 0x60, 0x2e, 0x9c, 0x0b, 0xb3, 0x0b, 0xfb, 0x88, 0xac, 0xd5, 0xf4, 0xdf, 0xdf, 0xfd, 0x47, 0x35, 0x03, 0xcd, 0xfe, 0xda, 0xbc, 0x44, 0x42, 0xb7, 0x43, 0xbe, 0x07, 0x5e, 0x7c, 0x6f, 0x61, 0x0e, 0x64, 0xff, 0xc2, 0xe5, 0x31, 0x87, 0x74, 0x5c, 0xd7, 0x19, 0x65, 0x8f, 0xc6, 0xe6, 0x2a, 0x5b, 0xe5, 0x18, 0x43, 0x7c, 0x5b, 0xd6, 0xa4, 0xfe, 0xba, 0x94, 0xae, 0x3f, 0x44, 0xf2, 0xf2, 0x93, 0x08, 0xe8, 0x31, 0xfe, 0xef, 0xed, 0x67, 0x69, 0x09, 0xce, 0x5e, 0x80, 0xc8, 0x4c, 0xbd, 0xca, 0xc4, 0x7e, 0x47, 0xd2, 0x7c, 0x97, 0x12, 0xa0, 0x1f, 0x6b, 0xc5, 0xda, 0xed, 0xc0, 0x2e, 0x64, 0x14, 0x40, 0x7e, 0x91, 0x1c, 0x0a, 0x5a, 0x53, 0xe5, 0x32, 0x8a, 0x5a, 0x5f, 0xd9, 0xf0, 0x40, 0xaa, 0x7f, 0xb7, 0x0b, 0x79, 0xb3, 0x1c, 0xd1, 0xb6, 0xfd, 0x9b, 0xd5, 0x02, 0x90, 0x40, 0xbd, 0x22, 0xae, 0x22, 0x2f, 0xd2, 0xf6, 0x87, 0x0d, 0x07, 0xf4, 0x35, 0x32, 0x26, 0x39, 0xcf, 0x31, 0x93, 0xca, 0x57, 0x09, 0xb8, 0x82, 0xb0, 0x7a, 0x58, 0xf9, 0x52, 0xa9, 0x96, 0x3e, 0x56, 0x8f, 0x8c, 0x5a, 0x58, 0x4a, 0x6b, 0x9e, 0x27, 0x5c, 0x5c, 0x07, 0x95, 0x7a, 0x4d, 0x2c, 0xda, 0xa9, 0xf1, 0xeb, 0x44, 0x4e, 0xd1, 0x22, 0x4b, 0xac, 0x65, 0x63, 0xb2, 0xf9, 0x27, 0x3e, 0x80, 0x30, 0x1d, 0x44, 0xd5, 0x0a, 0xe3, 0x83, 0xb5, 0x97, 0x21, 0x3b, 0x00, 0xda, 0x5b, 0xf2, 0x7e, 0x5d, 0x1f, 0xe2, 0x40, 0xcc, 0x3b, 0xb6, 0x5a, 0xa5, 0x03, 0x0d, 0x65, 0x1b, 0x6b, 0x5b, 0x31, 0x76, 0x1d, 0x53, 0xce, 0x0c, 0x6d, 0x74, 0xa1, 0x5d, 0xad, 0x54, 0x79, 0xf3, 0x1c, 0x91, 0x5c, 0xcf, 0x44, 0x66, 0x59, 0x85, 0x3b, 0x89, 0xa5, 0x1a, 0x28, 0xee, 0x89, 0x76, 0x85, 0x35, 0x53, 0xfd, 0x2e, 0x02, 0xfe, 0x72, 0x43, 0x53, 0x8d, 0x00, 0xb4, 0xed, 0x07, 0xd8, 0xb8, 0xa8, 0x0b, 0x5c, 0x16, 0x5c, 0xd4, 0x63, 0x41, 0xff, 0xd8, 0x16, 0x3c, 0x55, 0x57, 0x02, 0x66, 0x3a, 0x4e, 0x6a, 0xb2, 0x95, 0x2b, 0x7e, 0x74, 0x43, 0xd0, 0xf6, 0xb1, 0x23, 0xb6, 0x94, 0x67, 0x21, 0xaa, 0x63, 0xe8, 0x7b, 0x11, 0x55, 0xec, 0xa8, 0xa6, 0xa1, 0xbc, 0x9f, 0xd2, 0x5c, 0x67, 0x62, 0xe5, 0x27, 0x42, 0xc8, 0x6b, 0xca, 0x1b, 0xa9, 0xd8, 0x37, 0x04, 0x15, 0x24, 0x4f, 0x0e, 0xdf, 0xdb, 0xe0, 0x93, 0x2b, 0x5c, 0xa0, 0x61, 0x15, 0x09, 0xc9, };
12488 static const u8 ed25519_543_test_vectors_expected_sig[] = {
12489 	0x2e, 0xb3, 0x3b, 0xc2, 0xd5, 0xde, 0xb7, 0xf3, 0xa2, 0xdc, 0xc3, 0x77, 0xb0, 0xc6, 0xa8, 0x62, 0x13, 0x4b, 0xf3, 0x19, 0x1e, 0xc4, 0x0f, 0xc1, 0x28, 0xac, 0x28, 0xab, 0xf2, 0x31, 0x6e, 0xf1, 0x40, 0x16, 0x49, 0xb8, 0xf4, 0xcf, 0xa1, 0xa9, 0x36, 0xde, 0x79, 0xb5, 0x32, 0xdc, 0x04, 0x3b, 0x6d, 0x36, 0x02, 0x4b, 0x4c, 0x37, 0xbb, 0xa2, 0x92, 0x90, 0xac, 0x9f, 0x44, 0x9b, 0xa6, 0x0d, };
12490 static const ec_test_case ed25519_543_test_case = {
12491 	.name = "EDDSA25519-SHA512/wei25519 543",
12492 	.ec_str_p = &wei25519_str_params,
12493 	.priv_key = ed25519_543_test_vectors_priv_key,
12494 	.priv_key_len = sizeof(ed25519_543_test_vectors_priv_key),
12495 	.nn_random = NULL,
12496 	.hash_type = SHA512,
12497 	.msg = (const char *)ed25519_543_test_vectors_message,
12498 	.msglen = sizeof(ed25519_543_test_vectors_message),
12499 	.sig_type = EDDSA25519,
12500 	.exp_sig = ed25519_543_test_vectors_expected_sig,
12501 	.exp_siglen = sizeof(ed25519_543_test_vectors_expected_sig),
12502 	.adata = NULL,
12503 	.adata_len = 0
12504 };
12505 
12506 /************************************************/
12507 static const u8 ed25519_544_test_vectors_priv_key[] = {
12508 	0x0a, 0x4f, 0x5e, 0x16, 0x70, 0xf1, 0xe2, 0x4b, 0xfa, 0x37, 0xb7, 0x3c, 0x99, 0x43, 0x30, 0xb3, 0x6e, 0x7d, 0xaa, 0xf9, 0x30, 0x16, 0x1b, 0x78, 0xa4, 0xa8, 0x48, 0x66, 0xff, 0x25, 0xe3, 0xd5, };
12509 static const u8 ed25519_544_test_vectors_message[] = {
12510 	0xf4, 0xb0, 0x5b, 0x3e, 0xfd, 0xcb, 0x1d, 0x5c, 0x07, 0xda, 0x95, 0x0c, 0x46, 0x56, 0x55, 0x28, 0x44, 0x0b, 0xb4, 0x88, 0x35, 0xee, 0x4c, 0x13, 0xf4, 0x3d, 0x7a, 0x16, 0x18, 0xde, 0x11, 0x9e, 0xbb, 0xb2, 0x59, 0xea, 0x74, 0x80, 0xa5, 0x04, 0x81, 0x74, 0xfa, 0xec, 0xc1, 0x05, 0x5b, 0x32, 0xdc, 0x01, 0xac, 0x71, 0x56, 0x34, 0x43, 0x21, 0xe8, 0xeb, 0xa6, 0x98, 0xf3, 0x02, 0xee, 0x16, 0x43, 0xb5, 0xf0, 0x4b, 0x8e, 0x7e, 0xcc, 0xa6, 0x3b, 0x91, 0x56, 0x1c, 0xe3, 0x51, 0x4a, 0xbe, 0x78, 0x51, 0xb6, 0xfb, 0x17, 0xfc, 0x94, 0x3b, 0xdc, 0x94, 0xda, 0x30, 0x8c, 0x8e, 0x47, 0x69, 0xfe, 0xc2, 0x0f, 0xad, 0xf4, 0xfa, 0x8e, 0x7f, 0x62, 0xb6, 0xff, 0xb5, 0xf1, 0x70, 0xd6, 0x44, 0xed, 0x29, 0x35, 0x5e, 0xbd, 0x22, 0xcb, 0x3a, 0xa1, 0x48, 0x6b, 0x1e, 0x36, 0x7c, 0x72, 0x9d, 0xd3, 0xf7, 0x9b, 0xcd, 0x40, 0xff, 0xd0, 0x8a, 0xf2, 0x8c, 0xeb, 0xc8, 0xd7, 0x76, 0xe1, 0xa4, 0x83, 0xe9, 0x11, 0xd7, 0x9b, 0xc6, 0x13, 0xe0, 0x9c, 0xc6, 0x21, 0xca, 0xde, 0xb0, 0x34, 0xdd, 0x6f, 0x72, 0x37, 0x47, 0x71, 0x98, 0x51, 0x27, 0xf7, 0xa3, 0xa1, 0xaa, 0x78, 0x6a, 0x52, 0x3a, 0xe6, 0xe3, 0x4e, 0xe4, 0x33, 0xdc, 0x30, 0xc3, 0x75, 0x98, 0x7c, 0xff, 0x50, 0xbd, 0xcb, 0xc9, 0x97, 0xfc, 0xd5, 0x1c, 0x94, 0x56, 0x7a, 0x67, 0xae, 0xfb, 0x6e, 0xf5, 0xed, 0xf9, 0xbd, 0xd6, 0x59, 0x64, 0xd4, 0x64, 0xbe, 0x9e, 0xbd, 0xfb, 0x88, 0xc0, 0xe2, 0x31, 0xb0, 0x7f, 0xf6, 0x40, 0x5c, 0x00, 0xf8, 0x25, 0x31, 0xe9, 0x61, 0xbf, 0xc5, 0xea, 0xd2, 0x66, 0xbc, 0xc0, 0x87, 0x18, 0x87, 0x8c, 0xaf, 0xb1, 0xd3, 0x75, 0x36, 0xf1, 0x83, 0xe4, 0x8b, 0xf3, 0x8d, 0x3f, 0x6b, 0xe9, 0x00, 0x25, 0x2d, 0x1f, 0xb4, 0x19, 0xe6, 0xa2, 0xac, 0x58, 0x96, 0x03, 0x9f, 0x63, 0xc3, 0x14, 0x01, 0xff, 0xf9, 0x32, 0xce, 0x98, 0x14, 0xb0, 0x85, 0xab, 0x20, 0x41, 0x69, 0x72, 0xa2, 0xb3, 0x51, 0xc8, 0x15, 0xa6, 0x2d, 0xe5, 0x09, 0x67, 0x46, 0x28, 0xb0, 0xd3, 0x56, 0x6f, 0xc9, 0xc2, 0xe0, 0xa9, 0x23, 0x7b, 0x93, 0xf9, 0xbb, 0xb2, 0xde, 0xed, 0xf0, 0x2b, 0xff, 0x83, 0xbf, 0x6d, 0x86, 0x8b, 0x63, 0x99, 0x32, 0x6d, 0x48, 0x09, 0xd0, 0x41, 0x9f, 0x31, 0xb2, 0xf3, 0xa4, 0x81, 0x28, 0x5b, 0x94, 0x07, 0x8b, 0x47, 0x06, 0x1c, 0xe9, 0x1d, 0xad, 0x58, 0x3d, 0xd5, 0xb1, 0x3b, 0xd0, 0x10, 0xfb, 0x30, 0xf2, 0x49, 0x5b, 0xb7, 0x04, 0x20, 0x18, 0x3a, 0x93, 0x01, 0x59, 0xe4, 0xdb, 0x19, 0x3d, 0xf6, 0xac, 0xd1, 0x24, 0x42, 0x3e, 0x03, 0x9a, 0x67, 0xf1, 0x56, 0x88, 0xae, 0xc5, 0x0c, 0x59, 0x27, 0xfb, 0x27, 0x18, 0x22, 0xaa, 0xa6, 0x6f, 0x29, 0x4b, 0xc8, 0x05, 0xd3, 0xbc, 0x7c, 0x83, 0x41, 0x87, 0x8a, 0x54, 0x10, 0x09, 0xf3, 0x0d, 0xa9, 0x9f, 0xcc, 0x00, 0x85, 0x07, 0x9c, 0xe7, 0xfc, 0x55, 0xe0, 0x01, 0x16, 0x85, 0x56, 0x2a, 0xbd, 0xb3, 0xa9, 0x47, 0x1f, 0xfd, 0xe6, 0x17, 0x63, 0x00, 0xef, 0x5b, 0x31, 0xe0, 0xdf, 0x60, 0x9a, 0x54, 0xa1, 0xee, 0x66, 0x24, 0x07, 0x0d, 0xa9, 0x9c, 0x87, 0x76, 0x89, 0x1f, 0xdf, 0x6a, 0xa7, 0x8b, 0x4d, 0x55, 0xb1, 0xf5, 0xda, 0xdf, 0xc0, 0x61, 0xad, 0xd5, 0xaf, 0x00, 0xfd, 0x3a, 0xde, 0xdb, 0x44, 0x8c, 0x55, 0x9b, 0xff, 0xf2, 0x04, 0x06, 0x80, 0x43, 0xa5, 0xd1, 0xd6, 0x21, 0x47, 0x48, 0x62, 0x8c, 0x3e, 0xbc, 0x5f, 0x02, 0x24, 0x32, 0x6c, 0xa1, 0x8e, 0xf0, 0x48, 0x42, 0x5d, 0xa9, 0x30, 0x01, 0x33, 0xfb, 0x69, 0x5d, 0x4f, 0x26, 0x31, 0x65, 0xac, 0x22, 0xf3, 0x61, 0x9d, 0x40, 0x5a, 0xf2, 0x71, 0xa7, 0x1a, 0x9a, 0xfb, 0x19, 0x8b, 0xf6, 0x31, 0x24, 0x1d, 0x34, 0x59, 0xb9, 0x53, 0x98, };
12511 static const u8 ed25519_544_test_vectors_expected_sig[] = {
12512 	0xdc, 0xf3, 0x53, 0xb2, 0xb9, 0x9a, 0x4e, 0xf4, 0x5f, 0x3f, 0xdf, 0x65, 0x28, 0x63, 0x2e, 0x8a, 0xbd, 0xc4, 0x33, 0x34, 0x24, 0x76, 0xa8, 0xc2, 0xb3, 0x79, 0x00, 0x40, 0x4a, 0x4e, 0x33, 0x3d, 0x38, 0x78, 0x14, 0x23, 0x57, 0x57, 0xef, 0x7a, 0xd0, 0x38, 0x58, 0xa0, 0xf3, 0x5d, 0x46, 0x15, 0xe8, 0xab, 0xa4, 0x84, 0xfd, 0x64, 0xf1, 0x11, 0x2e, 0xc1, 0xb1, 0xae, 0xd2, 0xcb, 0x64, 0x0e, };
12513 static const ec_test_case ed25519_544_test_case = {
12514 	.name = "EDDSA25519-SHA512/wei25519 544",
12515 	.ec_str_p = &wei25519_str_params,
12516 	.priv_key = ed25519_544_test_vectors_priv_key,
12517 	.priv_key_len = sizeof(ed25519_544_test_vectors_priv_key),
12518 	.nn_random = NULL,
12519 	.hash_type = SHA512,
12520 	.msg = (const char *)ed25519_544_test_vectors_message,
12521 	.msglen = sizeof(ed25519_544_test_vectors_message),
12522 	.sig_type = EDDSA25519,
12523 	.exp_sig = ed25519_544_test_vectors_expected_sig,
12524 	.exp_siglen = sizeof(ed25519_544_test_vectors_expected_sig),
12525 	.adata = NULL,
12526 	.adata_len = 0
12527 };
12528 
12529 /************************************************/
12530 static const u8 ed25519_545_test_vectors_priv_key[] = {
12531 	0xb8, 0x55, 0xc8, 0x18, 0x05, 0xc7, 0x08, 0x74, 0x10, 0xe6, 0x9f, 0x96, 0xb0, 0x24, 0x02, 0x71, 0xdc, 0x76, 0xc1, 0xe4, 0xad, 0xe3, 0x8c, 0x6a, 0x92, 0x78, 0xe3, 0xc9, 0x4f, 0xbe, 0xa2, 0x56, };
12532 static const u8 ed25519_545_test_vectors_message[] = {
12533 	0x85, 0xa9, 0xbd, 0xb7, 0x0a, 0x6c, 0x75, 0x28, 0x97, 0xe4, 0x3a, 0x91, 0x10, 0x6e, 0xe9, 0xa9, 0x9c, 0x2c, 0xa9, 0x4f, 0xf7, 0xb4, 0x46, 0x1a, 0x44, 0xa3, 0x91, 0x74, 0xc1, 0x7e, 0xcd, 0x99, 0xdf, 0x46, 0xee, 0xcd, 0x81, 0xc3, 0xf5, 0x25, 0x13, 0xdc, 0x9d, 0x54, 0x7d, 0xad, 0x37, 0x21, 0xc6, 0xd5, 0xee, 0x1f, 0x8f, 0xac, 0x0b, 0xa5, 0xaf, 0xb3, 0x68, 0x70, 0x44, 0x73, 0x9e, 0xd5, 0x35, 0xb8, 0x44, 0x00, 0x87, 0x04, 0xc0, 0x9f, 0xe1, 0xe5, 0xd7, 0x85, 0xd4, 0xc9, 0xc3, 0xd0, 0xb0, 0x58, 0x89, 0xb9, 0xc2, 0x0f, 0xc3, 0xfd, 0x68, 0xdf, 0x12, 0xdb, 0xeb, 0x2c, 0x34, 0xf6, 0xf7, 0xec, 0x1c, 0x6f, 0xb7, 0xfa, 0x81, 0x1f, 0xf8, 0x46, 0xb5, 0xa6, 0x1f, 0xa5, 0xfe, 0x55, 0x37, 0x9e, 0xe6, 0x3a, 0xbc, 0xd3, 0x73, 0xfe, 0xd0, 0x02, 0x54, 0xeb, 0xd0, 0x6b, 0xc8, 0xb2, 0x2f, 0x7f, 0xbf, 0x2f, 0x72, 0x7a, 0x5f, 0xad, 0x88, 0x51, 0x41, 0x59, 0xe2, 0x6d, 0x78, 0xdf, 0xdb, 0x09, 0x57, 0xf6, 0xef, 0xaf, 0x51, 0xa8, 0xe8, 0x0b, 0x58, 0x5e, 0x83, 0x8b, 0x96, 0x21, 0xd0, 0x51, 0x07, 0x4a, 0x4f, 0x58, 0x67, 0xb4, 0xae, 0x2f, 0x2f, 0xf6, 0xd6, 0x2b, 0x85, 0xbc, 0xce, 0xc0, 0xb4, 0xaa, 0xa4, 0x79, 0x16, 0x37, 0x38, 0x8c, 0x09, 0x01, 0xfd, 0x49, 0xdc, 0xcc, 0xce, 0x72, 0x04, 0x85, 0x9f, 0x81, 0xee, 0xfc, 0x63, 0x9f, 0xed, 0x92, 0x28, 0x04, 0x56, 0xe6, 0x9a, 0x15, 0x09, 0xb4, 0xb1, 0xbd, 0x76, 0x24, 0x44, 0x7d, 0x86, 0x2c, 0x45, 0xa0, 0xc8, 0xb0, 0xc5, 0xbb, 0x2c, 0x4c, 0xa5, 0x12, 0xcb, 0xc0, 0x37, 0xf5, 0x1b, 0x78, 0x09, 0x82, 0xb1, 0x83, 0xa5, 0xca, 0xfa, 0x15, 0x29, 0x75, 0x85, 0xc9, 0x47, 0xa2, 0x5b, 0xe8, 0xc2, 0x24, 0x0e, 0xbf, 0xb6, 0x86, 0x8e, 0xce, 0x5e, 0xa2, 0xaa, 0xb2, 0xc2, 0x39, 0xc8, 0x37, 0x54, 0xc7, 0xd5, 0x94, 0xb3, 0x72, 0x5a, 0xce, 0xef, 0x34, 0x4b, 0xa7, 0xe6, 0xae, 0xf4, 0x9f, 0x7f, 0x31, 0x3b, 0x0a, 0xe8, 0x2c, 0xca, 0xca, 0xd3, 0x87, 0xa6, 0xe9, 0x33, 0x7f, 0x05, 0xf8, 0xc7, 0x99, 0xef, 0xe7, 0x82, 0x9b, 0x27, 0xb4, 0xd5, 0xb2, 0x01, 0xfd, 0x5a, 0xe5, 0x83, 0x43, 0x51, 0x69, 0x07, 0x59, 0xf3, 0xea, 0x17, 0x5f, 0xd4, 0x74, 0x1b, 0xe2, 0x28, 0xd8, 0x07, 0xfb, 0x54, 0xdf, 0x4a, 0x74, 0x10, 0x38, 0xfa, 0xee, 0x47, 0xed, 0xf1, 0xf5, 0x61, 0x65, 0x25, 0x98, 0x60, 0x1f, 0x27, 0x15, 0x5f, 0xc5, 0x0d, 0x9d, 0x50, 0x11, 0x43, 0x37, 0x11, 0xc1, 0x06, 0xd4, 0xb6, 0x07, 0x85, 0xa5, 0xcc, 0x93, 0xb3, 0xfd, 0xd1, 0xda, 0xd7, 0x0c, 0x0c, 0x8e, 0xaa, 0x33, 0xf1, 0x51, 0x2e, 0x35, 0xa5, 0x41, 0x74, 0x5e, 0x37, 0x6c, 0x15, 0x16, 0x7f, 0xa8, 0xf6, 0xb3, 0xb2, 0xc4, 0xc3, 0xa3, 0x66, 0xfc, 0x41, 0x49, 0x7d, 0x29, 0x73, 0x57, 0x81, 0x6a, 0xe7, 0x95, 0xa8, 0x04, 0xc9, 0x80, 0xe7, 0xcb, 0xfb, 0x0c, 0x74, 0xd8, 0x83, 0x5d, 0x92, 0x9a, 0xe3, 0xbb, 0x52, 0xba, 0xb1, 0x29, 0x64, 0x56, 0x6d, 0x74, 0x6b, 0xd2, 0xc1, 0xd1, 0x32, 0xb6, 0x23, 0x3f, 0xa3, 0x4f, 0x75, 0xe2, 0x68, 0xed, 0xee, 0x77, 0x5e, 0xb3, 0xce, 0x13, 0x2e, 0x6b, 0xeb, 0x2e, 0x8d, 0x71, 0xf0, 0xc8, 0x76, 0x29, 0x91, 0xcd, 0xe4, 0xe2, 0x6f, 0x71, 0x43, 0x9d, 0xfa, 0x83, 0x97, 0x8f, 0x99, 0x56, 0x03, 0x86, 0x1b, 0xc0, 0xb1, 0xd9, 0x06, 0x0b, 0xbc, 0xca, 0xcc, 0xf8, 0x6f, 0x87, 0x45, 0xad, 0x96, 0x99, 0x4d, 0x5d, 0x00, 0x7d, 0x52, 0xe8, 0x3a, 0xa5, 0xe6, 0x94, 0x12, 0x96, 0x4b, 0xdb, 0xfb, 0xe4, 0x78, 0x0a, 0xaa, 0x8d, 0xe4, 0x1b, 0xe1, 0x29, 0x8a, 0xbb, 0xe9, 0x89, 0x4c, 0x0d, 0x57, 0xe9, 0x7f, 0xca, 0xcc, 0x2f, 0x9b, 0xbd, 0x63, 0x15, 0xd3, 0xfc, 0xd0, 0xea, 0xf8, 0x2a, };
12534 static const u8 ed25519_545_test_vectors_expected_sig[] = {
12535 	0x3c, 0xaa, 0x81, 0x32, 0x73, 0xe7, 0x53, 0x54, 0x2f, 0xfb, 0xfe, 0xb2, 0x1b, 0xc3, 0xe2, 0xcf, 0x8c, 0xa7, 0xd9, 0x20, 0xfa, 0xac, 0x7c, 0x49, 0xdc, 0x2a, 0xa9, 0x91, 0x17, 0x68, 0xc7, 0xad, 0x43, 0xb3, 0x8b, 0x02, 0x36, 0xdb, 0x27, 0xf3, 0xee, 0xae, 0x0b, 0x12, 0x06, 0x00, 0x1e, 0x66, 0x5a, 0x60, 0x70, 0x78, 0xc5, 0x22, 0xed, 0x7a, 0x9d, 0xc4, 0x68, 0x85, 0x34, 0x63, 0x59, 0x00, };
12536 static const ec_test_case ed25519_545_test_case = {
12537 	.name = "EDDSA25519-SHA512/wei25519 545",
12538 	.ec_str_p = &wei25519_str_params,
12539 	.priv_key = ed25519_545_test_vectors_priv_key,
12540 	.priv_key_len = sizeof(ed25519_545_test_vectors_priv_key),
12541 	.nn_random = NULL,
12542 	.hash_type = SHA512,
12543 	.msg = (const char *)ed25519_545_test_vectors_message,
12544 	.msglen = sizeof(ed25519_545_test_vectors_message),
12545 	.sig_type = EDDSA25519,
12546 	.exp_sig = ed25519_545_test_vectors_expected_sig,
12547 	.exp_siglen = sizeof(ed25519_545_test_vectors_expected_sig),
12548 	.adata = NULL,
12549 	.adata_len = 0
12550 };
12551 
12552 /************************************************/
12553 static const u8 ed25519_546_test_vectors_priv_key[] = {
12554 	0x95, 0xb9, 0xc8, 0xa6, 0xef, 0x80, 0xeb, 0xd5, 0xcb, 0xd4, 0x7a, 0x04, 0xca, 0x54, 0x38, 0x73, 0x73, 0xdf, 0x4d, 0x67, 0xa2, 0xb4, 0x75, 0x59, 0x77, 0x65, 0xac, 0x89, 0xfc, 0xf9, 0x3e, 0x93, };
12555 static const u8 ed25519_546_test_vectors_message[] = {
12556 	0x78, 0x55, 0xbc, 0x39, 0x26, 0x30, 0xcc, 0xf5, 0x31, 0xd3, 0x06, 0x16, 0x06, 0xdd, 0xfc, 0x81, 0xa0, 0xfd, 0x92, 0x94, 0xc5, 0x47, 0x91, 0xb5, 0xf9, 0x55, 0x9b, 0x68, 0x27, 0x25, 0x4a, 0xa1, 0xf2, 0x5c, 0x54, 0x0b, 0x7d, 0x7d, 0xf3, 0xec, 0x9c, 0xdf, 0x14, 0x25, 0x66, 0x29, 0xdb, 0xcf, 0x9b, 0x72, 0x5f, 0xeb, 0x34, 0x12, 0xeb, 0xf3, 0x5f, 0x0e, 0xf9, 0x37, 0x9e, 0x41, 0x31, 0xcc, 0x77, 0xe0, 0xf0, 0xfb, 0x6f, 0x74, 0x59, 0xa7, 0x38, 0x36, 0x1a, 0x99, 0xae, 0x4c, 0xcb, 0x2b, 0x60, 0xa9, 0x9f, 0xe9, 0x2b, 0xd6, 0xc3, 0xa5, 0x3d, 0x6f, 0x45, 0x4e, 0xe9, 0x00, 0x5b, 0xce, 0xc5, 0xae, 0xdc, 0xfa, 0x82, 0x34, 0x73, 0x92, 0xef, 0xcf, 0x11, 0x75, 0xe5, 0x78, 0x39, 0x6a, 0x8d, 0x80, 0x0d, 0xab, 0xa0, 0xf4, 0xc2, 0xcf, 0x4d, 0x49, 0x13, 0xb0, 0x52, 0x86, 0x20, 0xe3, 0xba, 0xa0, 0xf6, 0xd8, 0x6e, 0x06, 0x28, 0xe4, 0x7c, 0x0c, 0xa2, 0x6d, 0xf3, 0xb0, 0xc7, 0x88, 0xc4, 0xe1, 0x65, 0x57, 0xf7, 0xfc, 0x28, 0xdf, 0x82, 0x0c, 0x12, 0xfb, 0xb6, 0xff, 0xbf, 0xec, 0xb9, 0x82, 0x9d, 0xdb, 0x65, 0xef, 0x8d, 0x63, 0xe9, 0x0d, 0x68, 0xfc, 0x71, 0x94, 0xb5, 0xb8, 0x85, 0x91, 0x3f, 0x08, 0xed, 0xee, 0x84, 0x56, 0x76, 0x47, 0xff, 0xa3, 0xf0, 0xd0, 0xd3, 0x25, 0xd0, 0x82, 0x60, 0x0c, 0xe7, 0x1a, 0x23, 0x45, 0xc7, 0x7d, 0x65, 0xbd, 0x96, 0x25, 0x20, 0x03, 0xe5, 0xc1, 0x25, 0xa7, 0x18, 0xa0, 0x73, 0x70, 0xc3, 0x1b, 0x57, 0x08, 0x07, 0x5c, 0xf1, 0x83, 0x7c, 0x69, 0x25, 0x63, 0x5c, 0xc6, 0x8d, 0xd1, 0xb7, 0x51, 0xe4, 0x0a, 0xb6, 0x08, 0xb0, 0xd9, 0xd8, 0x85, 0x2c, 0x18, 0xd3, 0x06, 0x92, 0x19, 0xef, 0x80, 0x7b, 0x76, 0xd2, 0x88, 0xf9, 0x2c, 0x29, 0xa9, 0x3e, 0x3d, 0x75, 0xb5, 0xb2, 0xe5, 0x36, 0x81, 0x67, 0x1d, 0x3a, 0xe0, 0x14, 0x5a, 0xc0, 0x3c, 0xca, 0xd3, 0x16, 0x2e, 0x44, 0x70, 0x3b, 0x04, 0x01, 0xd3, 0xeb, 0x16, 0x7c, 0xd8, 0xdd, 0xc1, 0xe1, 0xa5, 0xa3, 0x26, 0xb7, 0x28, 0xb1, 0xe0, 0xc0, 0x0a, 0x94, 0xd8, 0x6d, 0xe6, 0x13, 0x52, 0xa6, 0x61, 0xe4, 0x08, 0x97, 0x17, 0x5d, 0x28, 0xd3, 0x41, 0xe4, 0xd1, 0xd9, 0x96, 0x2e, 0x35, 0xf4, 0xde, 0x18, 0xa5, 0x40, 0x17, 0x61, 0x1a, 0xd0, 0x53, 0x59, 0xce, 0x08, 0xb9, 0x7b, 0xfe, 0xdb, 0xfb, 0xe3, 0x99, 0x2e, 0xd5, 0x8e, 0xd4, 0x0f, 0x51, 0x7a, 0xab, 0x01, 0xc0, 0xfe, 0xfe, 0x8b, 0x63, 0x64, 0x3d, 0xa1, 0xa4, 0x54, 0x15, 0x27, 0x30, 0xbf, 0x99, 0xaf, 0x87, 0x40, 0xad, 0xf9, 0x8a, 0x77, 0xb8, 0xd7, 0x3a, 0xdb, 0x08, 0xe6, 0x09, 0xe0, 0x0c, 0xe9, 0xb1, 0xcc, 0xdf, 0xef, 0x3e, 0x9a, 0x9b, 0x05, 0xaa, 0x56, 0xe0, 0xbc, 0x79, 0xb6, 0xbb, 0xba, 0x80, 0xdd, 0x8e, 0x46, 0x1a, 0xf7, 0xcb, 0x20, 0x28, 0x92, 0xd8, 0x9b, 0x2d, 0x05, 0xa4, 0x45, 0x8a, 0xb3, 0xfa, 0x54, 0xb4, 0x74, 0xb8, 0xf8, 0xf5, 0x81, 0x79, 0x5d, 0x6c, 0x27, 0x39, 0xe5, 0x9d, 0x0f, 0xe0, 0x62, 0x40, 0x0b, 0xae, 0x2d, 0x2d, 0x53, 0x4b, 0x34, 0x0b, 0xb8, 0xe2, 0x61, 0x57, 0x77, 0xa9, 0xa5, 0x61, 0x5b, 0xb2, 0xcf, 0x43, 0x7b, 0xa5, 0x25, 0xe0, 0x0e, 0x70, 0x38, 0xf2, 0x2a, 0x57, 0x88, 0x2a, 0xc5, 0x20, 0xb3, 0x33, 0xe7, 0x5c, 0x3c, 0x92, 0xa8, 0xb9, 0xf0, 0xe3, 0x7f, 0x67, 0x1c, 0x94, 0xb1, 0x5d, 0xd8, 0x18, 0x2a, 0x08, 0xd7, 0xc1, 0x43, 0xe9, 0x4e, 0x92, 0x62, 0xb3, 0xcc, 0x55, 0x44, 0xc2, 0x94, 0xf5, 0xf3, 0x35, 0xc2, 0xb2, 0x8a, 0xc1, 0x19, 0xfe, 0xa0, 0x0f, 0x96, 0x34, 0xdb, 0x06, 0x39, 0x93, 0x98, 0x8b, 0x5f, 0x15, 0x05, 0x79, 0xc7, 0xcc, 0x25, 0xb6, 0xa1, 0xfb, 0x0d, 0xde, 0x94, 0x80, 0x4f, 0xa6, 0xef, 0x66, 0xff, 0x79, 0xfb, 0x91, 0x07, };
12557 static const u8 ed25519_546_test_vectors_expected_sig[] = {
12558 	0x2c, 0x8b, 0xf5, 0x43, 0xe2, 0xa3, 0xe0, 0x04, 0x15, 0xee, 0x4f, 0x10, 0x7b, 0x2f, 0x5a, 0x66, 0x87, 0x17, 0x6f, 0x5d, 0x52, 0x11, 0x17, 0x75, 0x9c, 0xeb, 0x56, 0x17, 0x51, 0xbc, 0xc7, 0x7d, 0x9b, 0x08, 0xa6, 0xa6, 0x31, 0xf6, 0x44, 0x7c, 0xd9, 0x01, 0xde, 0x96, 0x69, 0x9a, 0xeb, 0xb1, 0x68, 0xbf, 0x97, 0x50, 0x0d, 0xc5, 0x4a, 0x05, 0x43, 0xef, 0x14, 0xe4, 0xb5, 0xa0, 0x81, 0x06, };
12559 static const ec_test_case ed25519_546_test_case = {
12560 	.name = "EDDSA25519-SHA512/wei25519 546",
12561 	.ec_str_p = &wei25519_str_params,
12562 	.priv_key = ed25519_546_test_vectors_priv_key,
12563 	.priv_key_len = sizeof(ed25519_546_test_vectors_priv_key),
12564 	.nn_random = NULL,
12565 	.hash_type = SHA512,
12566 	.msg = (const char *)ed25519_546_test_vectors_message,
12567 	.msglen = sizeof(ed25519_546_test_vectors_message),
12568 	.sig_type = EDDSA25519,
12569 	.exp_sig = ed25519_546_test_vectors_expected_sig,
12570 	.exp_siglen = sizeof(ed25519_546_test_vectors_expected_sig),
12571 	.adata = NULL,
12572 	.adata_len = 0
12573 };
12574 
12575 /************************************************/
12576 static const u8 ed25519_547_test_vectors_priv_key[] = {
12577 	0xb7, 0x86, 0xcc, 0xfb, 0x58, 0x6d, 0x43, 0xb8, 0xc4, 0x6b, 0xb9, 0x7b, 0x96, 0xc9, 0x18, 0x73, 0x1b, 0xc2, 0xcc, 0x11, 0x92, 0x77, 0xf1, 0x23, 0x67, 0x1e, 0x30, 0x14, 0x81, 0x58, 0xd2, 0xed, };
12578 static const u8 ed25519_547_test_vectors_message[] = {
12579 	0xba, 0xbf, 0x48, 0xbd, 0x55, 0xea, 0x91, 0xbd, 0x0c, 0x93, 0xb9, 0x70, 0x24, 0x1b, 0x52, 0x9d, 0x9d, 0xb4, 0x3d, 0x49, 0x27, 0xfe, 0xa5, 0xf1, 0xa1, 0xf7, 0x08, 0x2d, 0xd6, 0xcb, 0x50, 0xa5, 0x2b, 0x09, 0x4b, 0x31, 0x29, 0xfc, 0xd9, 0x03, 0xa4, 0x4f, 0xec, 0x8b, 0xfd, 0xb5, 0xc8, 0x6c, 0x00, 0x2a, 0x2a, 0x45, 0x28, 0x87, 0xca, 0x25, 0xa6, 0x0e, 0xce, 0xb5, 0xe1, 0xf9, 0xf5, 0xc9, 0x3d, 0xc5, 0x94, 0x23, 0xc7, 0xaf, 0xe7, 0x47, 0xc6, 0xbf, 0x40, 0x7c, 0xac, 0xad, 0xec, 0xcf, 0x5d, 0x78, 0x79, 0x70, 0xcb, 0x06, 0x17, 0xbb, 0x3c, 0xfe, 0x7f, 0xd1, 0x75, 0x63, 0xd3, 0xa0, 0xdc, 0x91, 0x63, 0x1f, 0x71, 0xb8, 0x4b, 0xe2, 0x4a, 0xe8, 0x00, 0x11, 0x37, 0x50, 0xf0, 0x31, 0xd0, 0x1f, 0xd0, 0x53, 0x64, 0xb4, 0xf2, 0x7f, 0x86, 0xf8, 0xdc, 0x3a, 0xd7, 0x40, 0x7e, 0x1a, 0xe9, 0xe7, 0x68, 0x15, 0x4e, 0x3d, 0xde, 0x58, 0xe8, 0x67, 0x12, 0x9e, 0x24, 0x74, 0x54, 0x7b, 0x40, 0x82, 0x17, 0x96, 0x48, 0x44, 0x85, 0x8d, 0x05, 0x6b, 0x31, 0xc3, 0x74, 0x99, 0x1b, 0x7f, 0x16, 0x1f, 0x52, 0xf0, 0x88, 0xb8, 0x06, 0xe0, 0xf3, 0x13, 0xd6, 0x8a, 0x15, 0xc5, 0x40, 0x1e, 0xd5, 0x5b, 0x2b, 0x77, 0xde, 0xea, 0x58, 0x6c, 0xb0, 0x54, 0xdc, 0xd7, 0x1a, 0xf2, 0xab, 0x6a, 0xb1, 0x1e, 0x84, 0xb3, 0x0c, 0x53, 0x93, 0x45, 0xde, 0x3e, 0xb4, 0x3f, 0xb7, 0xb3, 0xa3, 0xb4, 0x89, 0x87, 0xc3, 0xbf, 0xa7, 0x06, 0x55, 0xd5, 0x99, 0xf2, 0xe3, 0x1d, 0x12, 0xad, 0x23, 0xcc, 0x96, 0xe8, 0x6d, 0x38, 0x0b, 0xfd, 0xa8, 0x12, 0xfe, 0xff, 0x3d, 0xd3, 0x02, 0x42, 0x92, 0x91, 0x69, 0x07, 0x02, 0x28, 0x91, 0xe1, 0x19, 0xbf, 0xc3, 0xed, 0x9c, 0x25, 0x54, 0x6c, 0xd1, 0x9f, 0xc9, 0x92, 0xd8, 0xa6, 0x1e, 0x60, 0x59, 0xca, 0x3c, 0xe7, 0x80, 0x2a, 0xf1, 0x11, 0x87, 0x56, 0x62, 0x0b, 0x87, 0xa7, 0x24, 0x2b, 0xd8, 0x38, 0x97, 0xc9, 0x4d, 0xd5, 0xa3, 0x6e, 0xd4, 0x0f, 0xc0, 0xf3, 0x4c, 0x2c, 0x93, 0x11, 0x0b, 0x37, 0xd1, 0x7d, 0xd9, 0x6a, 0x22, 0x06, 0x25, 0x90, 0xbc, 0xdb, 0x54, 0x67, 0x42, 0xef, 0x72, 0x18, 0xad, 0xcc, 0xc5, 0xad, 0x28, 0xf4, 0xfc, 0xe6, 0xec, 0xf7, 0x05, 0x83, 0x5f, 0x41, 0x13, 0xd8, 0x2e, 0xa5, 0x33, 0x90, 0x3a, 0xec, 0x8c, 0x38, 0x20, 0xfe, 0x4b, 0x47, 0x15, 0xf3, 0x7e, 0x20, 0xce, 0xbc, 0x1e, 0x71, 0x51, 0x9a, 0xa0, 0xb2, 0x40, 0xb4, 0x84, 0x0a, 0xa4, 0xfd, 0xcf, 0xb5, 0x24, 0x67, 0xfe, 0xdd, 0x8f, 0x4d, 0x1f, 0x9b, 0xc3, 0x3e, 0xe1, 0x14, 0xf3, 0xef, 0x85, 0xf5, 0xfd, 0xb0, 0x9c, 0xa8, 0x84, 0xaf, 0x38, 0x8a, 0xd3, 0xad, 0xf8, 0x4c, 0x79, 0x3f, 0x38, 0x6e, 0xfe, 0x6f, 0xf8, 0xa4, 0x6e, 0xd8, 0x1e, 0x5d, 0x45, 0xa3, 0x7c, 0x25, 0xcd, 0x80, 0xf2, 0xd7, 0x36, 0x3f, 0x43, 0xae, 0x45, 0xe3, 0x77, 0x2c, 0x0d, 0xf8, 0x9f, 0x11, 0x44, 0x79, 0x39, 0x80, 0x6c, 0x09, 0x6e, 0xf9, 0x33, 0xa1, 0x39, 0x44, 0xf0, 0x89, 0x0d, 0x88, 0x7c, 0x2e, 0x5b, 0xbb, 0x6b, 0x12, 0xea, 0x95, 0x0b, 0x09, 0xb8, 0xfe, 0x42, 0x52, 0x89, 0x37, 0x73, 0x52, 0xf3, 0x5f, 0x84, 0xcc, 0x4d, 0xcd, 0x4d, 0x7a, 0x44, 0x94, 0x89, 0xfa, 0x92, 0x51, 0xc0, 0x31, 0x13, 0x48, 0x92, 0x25, 0x80, 0x9c, 0xdf, 0x3c, 0xb6, 0x34, 0x75, 0xf1, 0x0d, 0x34, 0x17, 0x09, 0x37, 0x1c, 0x6f, 0xd4, 0xbb, 0x7a, 0x94, 0x94, 0x83, 0xd1, 0xbc, 0x2b, 0x31, 0xdd, 0xf4, 0xd9, 0x63, 0xa0, 0x7d, 0xe7, 0xea, 0x5c, 0x3f, 0xee, 0x9a, 0x0e, 0x33, 0xf0, 0x76, 0x9f, 0x2f, 0xaa, 0x40, 0x61, 0x2a, 0x54, 0x69, 0x74, 0xbd, 0xe0, 0xb7, 0x33, 0x91, 0x79, 0xe4, 0x12, 0x4a, 0x44, 0x7b, 0xd4, 0x28, 0x79, 0xcc, 0xda, 0x5c, 0x8a, 0xd1, 0x81, 0x9c, 0x53, };
12580 static const u8 ed25519_547_test_vectors_expected_sig[] = {
12581 	0x52, 0xba, 0x96, 0x58, 0xa1, 0xa0, 0xb3, 0xe9, 0x8e, 0xd5, 0x20, 0x9e, 0x39, 0x3e, 0x42, 0x00, 0x66, 0xa3, 0x7d, 0x37, 0x14, 0xda, 0xa7, 0x3d, 0x5c, 0x67, 0x1d, 0x33, 0x07, 0x5a, 0x5f, 0x57, 0x27, 0xfe, 0x4e, 0x08, 0x1e, 0xe0, 0xfa, 0x3c, 0x21, 0x33, 0xdc, 0x95, 0x3a, 0x2d, 0xa6, 0x20, 0x29, 0x13, 0x71, 0xf0, 0x0c, 0xcb, 0x57, 0xd8, 0x79, 0x2e, 0xb5, 0x96, 0xa2, 0xff, 0x81, 0x01, };
12582 static const ec_test_case ed25519_547_test_case = {
12583 	.name = "EDDSA25519-SHA512/wei25519 547",
12584 	.ec_str_p = &wei25519_str_params,
12585 	.priv_key = ed25519_547_test_vectors_priv_key,
12586 	.priv_key_len = sizeof(ed25519_547_test_vectors_priv_key),
12587 	.nn_random = NULL,
12588 	.hash_type = SHA512,
12589 	.msg = (const char *)ed25519_547_test_vectors_message,
12590 	.msglen = sizeof(ed25519_547_test_vectors_message),
12591 	.sig_type = EDDSA25519,
12592 	.exp_sig = ed25519_547_test_vectors_expected_sig,
12593 	.exp_siglen = sizeof(ed25519_547_test_vectors_expected_sig),
12594 	.adata = NULL,
12595 	.adata_len = 0
12596 };
12597 
12598 /************************************************/
12599 static const u8 ed25519_548_test_vectors_priv_key[] = {
12600 	0xdd, 0x1a, 0x97, 0x74, 0xf7, 0x58, 0x4d, 0x85, 0x89, 0xb1, 0x9f, 0x92, 0xab, 0x69, 0x39, 0xac, 0x48, 0x56, 0x02, 0xfe, 0x16, 0x44, 0xce, 0xe2, 0xf6, 0xf3, 0xcd, 0x60, 0xfb, 0xd5, 0x84, 0x00, };
12601 static const u8 ed25519_548_test_vectors_message[] = {
12602 	0xe5, 0xdc, 0x3e, 0xd2, 0x6c, 0x1f, 0x69, 0x3c, 0xf8, 0x52, 0x46, 0x5a, 0x05, 0xe3, 0x04, 0x8b, 0x50, 0x5d, 0xb5, 0x11, 0x6d, 0x9e, 0x31, 0x59, 0x22, 0x05, 0xa9, 0xc3, 0xd4, 0x72, 0x0b, 0xc1, 0x0b, 0x6c, 0x20, 0x63, 0x9a, 0x0e, 0xe2, 0xf0, 0xe1, 0x47, 0x22, 0x5b, 0x5b, 0x19, 0xea, 0x51, 0x1c, 0xfb, 0xa0, 0xc2, 0x1a, 0xac, 0x10, 0x71, 0x5a, 0x2f, 0x23, 0x2f, 0x10, 0xc2, 0xc8, 0xaa, 0xd4, 0x11, 0x12, 0xb6, 0xb0, 0x12, 0xe7, 0x5a, 0x41, 0x55, 0xf8, 0xc6, 0x92, 0x62, 0x53, 0xca, 0x2b, 0x4d, 0xdb, 0x7b, 0xfe, 0x7f, 0x86, 0xe9, 0x0a, 0x53, 0xdb, 0xc0, 0xcb, 0xa8, 0x9e, 0x48, 0x5c, 0xec, 0xa8, 0xfd, 0x26, 0xe5, 0x0c, 0x7f, 0x28, 0x2a, 0x25, 0x35, 0x73, 0xcb, 0x0a, 0x8f, 0xa8, 0x8c, 0xc4, 0x46, 0x23, 0xe8, 0x2e, 0x8f, 0xa2, 0xed, 0xb6, 0xcb, 0xc7, 0x53, 0x8a, 0xc9, 0x2c, 0x11, 0xe4, 0xc5, 0xb1, 0xea, 0x5f, 0x68, 0x96, 0x6d, 0x15, 0xd9, 0x3c, 0x34, 0xf3, 0x96, 0xd2, 0x75, 0x72, 0xf8, 0x64, 0x38, 0x2a, 0xb7, 0x6a, 0x7b, 0xe6, 0x5a, 0x55, 0x7b, 0x13, 0x97, 0x66, 0x36, 0x8a, 0x20, 0x7d, 0x98, 0xbc, 0x0c, 0x20, 0x92, 0x63, 0x70, 0xde, 0xa2, 0x70, 0x48, 0x16, 0x03, 0x63, 0xed, 0x85, 0xf4, 0x09, 0x9e, 0x7c, 0xd6, 0x6d, 0x12, 0xd0, 0x98, 0x8c, 0xfc, 0x9e, 0x2f, 0x16, 0xaa, 0x56, 0x5f, 0x8f, 0x33, 0xb3, 0x9e, 0x97, 0x8c, 0x05, 0x87, 0x37, 0x1f, 0x92, 0xdb, 0x50, 0x56, 0x31, 0x75, 0x64, 0x41, 0x1b, 0xd8, 0xa3, 0xb6, 0xfe, 0xa0, 0x9d, 0x34, 0x87, 0xaa, 0xf7, 0x34, 0x03, 0x49, 0x18, 0xff, 0xed, 0x1c, 0x9f, 0xba, 0x7b, 0xde, 0xc6, 0xfe, 0x68, 0x87, 0x6f, 0xc7, 0x36, 0x0c, 0xc5, 0x62, 0x9b, 0x92, 0x10, 0x40, 0x27, 0xfe, 0x57, 0x59, 0xc5, 0xab, 0x36, 0x53, 0x54, 0x75, 0x1e, 0x79, 0x69, 0x11, 0x6c, 0x3b, 0x9a, 0x21, 0xb1, 0x52, 0x33, 0x0a, 0x96, 0xa9, 0x38, 0x1a, 0xf7, 0x30, 0xd1, 0x78, 0x22, 0xd7, 0x8a, 0xd6, 0xea, 0x86, 0x00, 0x06, 0x91, 0x5b, 0x5c, 0xab, 0x44, 0x7a, 0x75, 0x93, 0x72, 0xe0, 0x5d, 0x49, 0x5e, 0xbb, 0x32, 0x8e, 0x75, 0xd2, 0x48, 0xda, 0xa0, 0x2f, 0x5d, 0x2e, 0xb9, 0x78, 0xd2, 0x71, 0x0c, 0xf1, 0xc5, 0xfb, 0x82, 0x48, 0x76, 0x77, 0x0e, 0x32, 0xca, 0x6d, 0xe2, 0xc7, 0x30, 0x56, 0x48, 0x92, 0x41, 0x5b, 0xcb, 0x53, 0xe5, 0x98, 0x1d, 0x70, 0x7a, 0xdd, 0x96, 0x1c, 0x5f, 0x37, 0xfd, 0xaf, 0xa1, 0x39, 0x9a, 0xf8, 0xae, 0xa9, 0x60, 0x45, 0x8d, 0x2c, 0xa3, 0x10, 0x55, 0x3f, 0x7c, 0x98, 0x66, 0xcc, 0xbe, 0x8e, 0x9d, 0x88, 0xe0, 0x8a, 0x44, 0x68, 0x72, 0xea, 0x66, 0xfc, 0x30, 0x8c, 0x82, 0x45, 0x14, 0xb7, 0xda, 0xce, 0x03, 0x34, 0xdb, 0x73, 0x5e, 0x6f, 0x14, 0xc8, 0x5b, 0x5e, 0x61, 0x9a, 0x5d, 0x60, 0x56, 0x48, 0xa8, 0x81, 0xe8, 0x76, 0xc7, 0x8d, 0xbe, 0x06, 0x57, 0x23, 0x3d, 0x4f, 0x7f, 0x3b, 0xfd, 0xdf, 0x63, 0xb4, 0x45, 0x31, 0x1d, 0x6a, 0xbc, 0x47, 0x63, 0x47, 0xec, 0x4f, 0xb4, 0x3c, 0x89, 0x46, 0xf9, 0xd1, 0x7c, 0x36, 0x93, 0x81, 0xd1, 0xc5, 0x64, 0xff, 0xcf, 0xe2, 0xdc, 0x7b, 0x47, 0x26, 0xfd, 0x57, 0x38, 0x7f, 0x0b, 0x44, 0xdb, 0x8e, 0xf9, 0x5a, 0x0b, 0x4e, 0x32, 0xa7, 0xbe, 0xdf, 0x31, 0x9e, 0x53, 0xa9, 0xe7, 0x12, 0x6c, 0x28, 0x11, 0xf9, 0x82, 0x9d, 0x1f, 0x4a, 0xe9, 0xab, 0xd9, 0xd5, 0xf4, 0x2e, 0xfe, 0xf2, 0x07, 0x5f, 0x47, 0x05, 0x1c, 0x63, 0xa4, 0xf8, 0x20, 0x20, 0x40, 0xec, 0x47, 0x23, 0x68, 0x63, 0x82, 0xc6, 0x03, 0x31, 0x27, 0xc1, 0xfb, 0xff, 0xf4, 0xbc, 0x82, 0x37, 0x35, 0x08, 0x75, 0x2d, 0x43, 0x1d, 0xc4, 0x73, 0xf5, 0x2d, 0xde, 0xab, 0x03, 0x42, 0xdc, 0x4f, 0x54, 0x47, 0xf8, 0xf2, 0x57, 0x38, 0xef, 0x65, 0xd7, 0x85, 0x56, };
12603 static const u8 ed25519_548_test_vectors_expected_sig[] = {
12604 	0x19, 0x59, 0xbd, 0xe0, 0xa6, 0x97, 0xa6, 0x39, 0x93, 0xec, 0x47, 0xd1, 0x58, 0x22, 0x37, 0x39, 0xfe, 0x65, 0x87, 0x1f, 0xa0, 0x58, 0x70, 0xd7, 0xde, 0x0d, 0x38, 0x08, 0x65, 0x91, 0x20, 0x2a, 0x51, 0xb1, 0x74, 0xd1, 0xc6, 0x18, 0x28, 0x08, 0xc6, 0xce, 0x62, 0x63, 0x1d, 0x81, 0xdb, 0xa3, 0x4e, 0xbe, 0xd4, 0xaf, 0x2f, 0x29, 0xb0, 0x6c, 0x00, 0xa5, 0x7a, 0x3c, 0xb6, 0x66, 0x36, 0x06, };
12605 static const ec_test_case ed25519_548_test_case = {
12606 	.name = "EDDSA25519-SHA512/wei25519 548",
12607 	.ec_str_p = &wei25519_str_params,
12608 	.priv_key = ed25519_548_test_vectors_priv_key,
12609 	.priv_key_len = sizeof(ed25519_548_test_vectors_priv_key),
12610 	.nn_random = NULL,
12611 	.hash_type = SHA512,
12612 	.msg = (const char *)ed25519_548_test_vectors_message,
12613 	.msglen = sizeof(ed25519_548_test_vectors_message),
12614 	.sig_type = EDDSA25519,
12615 	.exp_sig = ed25519_548_test_vectors_expected_sig,
12616 	.exp_siglen = sizeof(ed25519_548_test_vectors_expected_sig),
12617 	.adata = NULL,
12618 	.adata_len = 0
12619 };
12620 
12621 /************************************************/
12622 static const u8 ed25519_549_test_vectors_priv_key[] = {
12623 	0x66, 0xf5, 0xea, 0x8c, 0xdb, 0x95, 0xee, 0x1a, 0x75, 0xe3, 0x24, 0x67, 0xd7, 0xc8, 0x3c, 0x59, 0x44, 0x77, 0x42, 0xc8, 0x5d, 0xdd, 0x49, 0x9c, 0x43, 0xc0, 0x86, 0x73, 0xe1, 0x49, 0x05, 0x3a, };
12624 static const u8 ed25519_549_test_vectors_message[] = {
12625 	0xc0, 0xd0, 0x1d, 0xce, 0xb0, 0xa2, 0xd1, 0x71, 0x91, 0x10, 0x18, 0x79, 0xab, 0xb0, 0x93, 0xfb, 0x07, 0x75, 0x71, 0xb5, 0x21, 0xbe, 0x7b, 0x93, 0xa1, 0x17, 0xc6, 0x96, 0xc0, 0x87, 0x2f, 0x70, 0xea, 0x11, 0x39, 0xab, 0x62, 0x83, 0x29, 0xee, 0x56, 0x55, 0xfc, 0x0a, 0xa7, 0x7e, 0x81, 0x11, 0xd2, 0xfc, 0x88, 0x47, 0x48, 0xc1, 0xf2, 0x67, 0xb9, 0xeb, 0x09, 0xdc, 0x26, 0xf5, 0x7f, 0xc4, 0x02, 0xd6, 0x1b, 0xa3, 0x6f, 0x63, 0xf4, 0xd5, 0x89, 0xaa, 0xe6, 0x3c, 0x76, 0xee, 0xee, 0x15, 0xbf, 0x0f, 0x9e, 0x2d, 0xcd, 0xe4, 0xe4, 0xe3, 0xe7, 0x8f, 0xc6, 0xc2, 0x9e, 0x3a, 0x93, 0xf3, 0xff, 0x0e, 0x9a, 0x6e, 0x0b, 0x35, 0x66, 0x45, 0x95, 0x38, 0x90, 0xde, 0xbf, 0x62, 0xdb, 0xea, 0xf4, 0x90, 0x51, 0x78, 0xd4, 0xf0, 0xa5, 0xa5, 0x92, 0xc1, 0x92, 0x94, 0xee, 0xba, 0x7c, 0x21, 0xcf, 0x8f, 0x1b, 0xb3, 0xf4, 0x51, 0x21, 0x87, 0x37, 0x6d, 0xe7, 0x2f, 0x11, 0x36, 0xa4, 0x8a, 0xc2, 0xdf, 0xaf, 0x32, 0xd0, 0xf3, 0x7d, 0xe0, 0x64, 0x59, 0x25, 0x92, 0xb6, 0xe1, 0xbc, 0x0c, 0x51, 0x2c, 0xf4, 0xd2, 0xd8, 0x5d, 0x16, 0x79, 0x78, 0x53, 0xa8, 0x09, 0x33, 0xb0, 0x9c, 0x2f, 0x7b, 0xfb, 0x9e, 0x54, 0xa6, 0x9e, 0x51, 0xa8, 0xe4, 0x23, 0xa9, 0x1c, 0x3e, 0x5f, 0xde, 0xb4, 0x79, 0x05, 0x33, 0xe8, 0x7a, 0x4b, 0x1c, 0x0e, 0x0e, 0x23, 0xa9, 0xdb, 0x95, 0x73, 0xac, 0x17, 0xab, 0x6e, 0xc7, 0x01, 0x4d, 0x8b, 0x7c, 0x44, 0x86, 0xe1, 0x57, 0x25, 0xf8, 0xd2, 0x64, 0xee, 0xa3, 0x05, 0x0e, 0x83, 0x5a, 0xe0, 0xac, 0x44, 0x9d, 0xb3, 0x34, 0x50, 0x2a, 0x6d, 0x97, 0x35, 0x8f, 0xa8, 0x59, 0x10, 0x6a, 0xd0, 0xf6, 0xf4, 0x29, 0x5f, 0x23, 0x44, 0x92, 0x0a, 0xdf, 0x93, 0x55, 0xa6, 0x94, 0x9d, 0x8d, 0x14, 0x5c, 0x25, 0x62, 0x8a, 0x46, 0xa1, 0x04, 0xca, 0x09, 0x9b, 0xd9, 0xdd, 0xe9, 0x41, 0x11, 0x9c, 0x83, 0x82, 0x0c, 0xdc, 0x2c, 0xb2, 0xd0, 0x97, 0x22, 0x69, 0x49, 0x01, 0x04, 0x3c, 0x37, 0xcf, 0x0a, 0xe8, 0x79, 0xbe, 0x20, 0x30, 0xd0, 0x37, 0x31, 0x58, 0xb9, 0xc4, 0xb0, 0x71, 0x82, 0x98, 0xbe, 0x45, 0xf6, 0x30, 0xf6, 0xfc, 0xdc, 0x19, 0x0f, 0x7b, 0x29, 0x26, 0xd8, 0x76, 0x55, 0xa1, 0x8b, 0xb7, 0x97, 0xac, 0x50, 0x75, 0x7f, 0xcd, 0x36, 0x55, 0xc9, 0xe4, 0x1d, 0x51, 0x63, 0x29, 0x3d, 0x9a, 0x13, 0xd9, 0x84, 0xf5, 0x91, 0xf7, 0x5b, 0x7e, 0x4e, 0x5c, 0xad, 0xb6, 0x4c, 0x4c, 0x9f, 0xdf, 0xef, 0x76, 0xca, 0xb6, 0x93, 0x81, 0xd0, 0xf6, 0x0b, 0x48, 0x3f, 0x80, 0x4b, 0xb3, 0xb3, 0x33, 0x64, 0xdf, 0x8c, 0xff, 0xac, 0xb3, 0xc9, 0xb1, 0x3f, 0xf4, 0xc8, 0xd8, 0xd4, 0xea, 0x40, 0x76, 0x6a, 0x7d, 0x42, 0xd8, 0x25, 0x6c, 0x6b, 0x1c, 0x11, 0xc1, 0x91, 0xda, 0xba, 0x1b, 0x8e, 0xf2, 0x15, 0x93, 0xe4, 0x7b, 0x18, 0x85, 0x8e, 0xc1, 0x9d, 0x81, 0x73, 0x58, 0x67, 0x8d, 0x85, 0x48, 0xff, 0x15, 0x35, 0xd5, 0xfc, 0xf4, 0x41, 0x4b, 0x6a, 0x11, 0xd3, 0x4a, 0x37, 0x42, 0xf8, 0xd7, 0x14, 0x9f, 0xa6, 0x81, 0x38, 0x3a, 0x94, 0x08, 0x88, 0x7f, 0x1c, 0x0a, 0x98, 0xed, 0x52, 0x1e, 0x72, 0x79, 0x32, 0x77, 0x82, 0x4d, 0x6f, 0x74, 0x6d, 0x49, 0xb6, 0x3d, 0x44, 0x4e, 0x31, 0x2e, 0x6d, 0x9b, 0x98, 0x66, 0x11, 0x25, 0x81, 0x96, 0xa5, 0xb0, 0x12, 0xb8, 0x8f, 0xaa, 0x29, 0xf9, 0xa6, 0xc6, 0x7e, 0xd2, 0x5d, 0xf8, 0x7b, 0x2d, 0xbf, 0x0d, 0xbd, 0x2d, 0xc3, 0x08, 0x0c, 0x5b, 0x8d, 0x15, 0xa3, 0x7d, 0x34, 0x72, 0x90, 0x98, 0xed, 0x0d, 0xe9, 0x2d, 0x75, 0x80, 0x74, 0x29, 0xb2, 0xca, 0xe5, 0xd7, 0x28, 0x3c, 0x4e, 0x5c, 0x9b, 0xd1, 0x96, 0xd1, 0xad, 0x43, 0x6c, 0x7c, 0x34, 0xf3, 0xc9, 0x46, 0x6e, 0x5c, 0xb3, 0x19, 0x6b, 0x44, 0x3f, 0x4b, };
12626 static const u8 ed25519_549_test_vectors_expected_sig[] = {
12627 	0xec, 0x5c, 0x7e, 0x83, 0x92, 0xfa, 0x8b, 0x61, 0xbc, 0x82, 0x96, 0x81, 0x86, 0x6e, 0x45, 0xac, 0x8b, 0xe4, 0xb5, 0xb7, 0xb6, 0xa8, 0x22, 0xc1, 0xbc, 0xd0, 0xf2, 0xcc, 0x2c, 0x8c, 0x44, 0xc3, 0x3c, 0xf8, 0x3f, 0xa4, 0x2d, 0x43, 0xa2, 0xf1, 0x88, 0x41, 0x41, 0xb4, 0xa5, 0x9a, 0xaf, 0xf4, 0x7f, 0x9b, 0xe0, 0x7e, 0x63, 0x2e, 0x20, 0x18, 0x75, 0x93, 0x24, 0xea, 0xc9, 0xd1, 0x49, 0x00, };
12628 static const ec_test_case ed25519_549_test_case = {
12629 	.name = "EDDSA25519-SHA512/wei25519 549",
12630 	.ec_str_p = &wei25519_str_params,
12631 	.priv_key = ed25519_549_test_vectors_priv_key,
12632 	.priv_key_len = sizeof(ed25519_549_test_vectors_priv_key),
12633 	.nn_random = NULL,
12634 	.hash_type = SHA512,
12635 	.msg = (const char *)ed25519_549_test_vectors_message,
12636 	.msglen = sizeof(ed25519_549_test_vectors_message),
12637 	.sig_type = EDDSA25519,
12638 	.exp_sig = ed25519_549_test_vectors_expected_sig,
12639 	.exp_siglen = sizeof(ed25519_549_test_vectors_expected_sig),
12640 	.adata = NULL,
12641 	.adata_len = 0
12642 };
12643 
12644 /************************************************/
12645 static const u8 ed25519_550_test_vectors_priv_key[] = {
12646 	0xed, 0x25, 0x58, 0xe5, 0xc5, 0x67, 0x84, 0xbc, 0xfb, 0x4f, 0x4d, 0xde, 0xa3, 0xc0, 0xdf, 0xbe, 0xf8, 0xd9, 0x6f, 0xf1, 0xca, 0xbf, 0x15, 0x8e, 0xc4, 0xab, 0xe6, 0x0a, 0xff, 0x66, 0x99, 0x9e, };
12647 static const u8 ed25519_550_test_vectors_message[] = {
12648 	0x2c, 0x64, 0x33, 0xe9, 0xbf, 0xbf, 0x4c, 0xfd, 0x4e, 0x07, 0x1f, 0x15, 0xce, 0x6b, 0x12, 0x9d, 0x78, 0x0a, 0x4b, 0x3d, 0xe0, 0x14, 0xfa, 0xc0, 0x34, 0xe0, 0xd4, 0x4e, 0xf7, 0x72, 0xe2, 0xc8, 0xb0, 0xd6, 0xa3, 0x48, 0x1d, 0x7b, 0x3d, 0xde, 0xb2, 0x37, 0x63, 0x26, 0x73, 0x55, 0x33, 0x13, 0xde, 0xac, 0x1e, 0xfa, 0xfe, 0x37, 0x02, 0xa7, 0xa4, 0x41, 0x1e, 0x12, 0xbd, 0x34, 0x1e, 0x8d, 0x8e, 0x96, 0xc5, 0x9c, 0x5e, 0x30, 0xc3, 0x68, 0x07, 0xa8, 0x38, 0x5a, 0x53, 0x8e, 0x9b, 0x66, 0x90, 0x7d, 0x6a, 0x52, 0x84, 0x00, 0xbd, 0x9f, 0x95, 0xee, 0xdc, 0x52, 0x16, 0xb2, 0x8f, 0xd7, 0x43, 0x7d, 0x8f, 0x4a, 0x02, 0x9f, 0xdb, 0xdc, 0x7c, 0x93, 0x8e, 0x4e, 0xb9, 0x81, 0x2f, 0xec, 0x05, 0xea, 0x69, 0x32, 0x29, 0x62, 0x9a, 0xce, 0x6a, 0xcc, 0x7a, 0xf6, 0xba, 0x4c, 0x23, 0x8e, 0x77, 0x22, 0xf3, 0x12, 0xf7, 0x89, 0x6b, 0x00, 0x49, 0x22, 0xf7, 0x06, 0x7e, 0xde, 0x10, 0x6f, 0x8e, 0x70, 0x15, 0x4d, 0x78, 0x3f, 0xb4, 0x12, 0x91, 0xf3, 0xc7, 0xe2, 0xe4, 0x82, 0x60, 0x45, 0xb5, 0x74, 0x1b, 0xcb, 0x4a, 0x88, 0x38, 0xf8, 0x7a, 0x32, 0xe0, 0x04, 0x97, 0x04, 0xe9, 0xb5, 0x32, 0x34, 0xc2, 0x24, 0xff, 0x89, 0x8a, 0x75, 0x6e, 0x52, 0x91, 0x34, 0xc1, 0xa9, 0xbf, 0x50, 0xfd, 0x02, 0x98, 0x19, 0xb2, 0x23, 0x8b, 0x60, 0xb2, 0xae, 0xc1, 0x12, 0x8f, 0x34, 0xd2, 0x1f, 0x9d, 0x66, 0x98, 0x3b, 0xed, 0x39, 0x86, 0x59, 0xd8, 0x08, 0xb6, 0x7a, 0x2e, 0x50, 0x1b, 0x5a, 0x1f, 0x25, 0xf7, 0x1f, 0x0f, 0x0c, 0x1e, 0xb2, 0xfe, 0xa0, 0xab, 0x42, 0xd8, 0x2f, 0xf3, 0xbc, 0x93, 0x58, 0xbb, 0x20, 0xc2, 0x75, 0x20, 0xc1, 0x44, 0xcf, 0x21, 0x16, 0xf4, 0xa4, 0x9c, 0xbc, 0x61, 0x99, 0x4d, 0x2d, 0x71, 0x05, 0x46, 0x69, 0x4c, 0x4f, 0x60, 0x2d, 0xc4, 0x06, 0xe0, 0xb0, 0xc2, 0x7e, 0x5f, 0x5e, 0x64, 0x66, 0x7e, 0x95, 0xc2, 0xec, 0x9d, 0xf2, 0xd6, 0x52, 0x9c, 0xf5, 0x36, 0x22, 0xea, 0x10, 0xb9, 0x56, 0xb3, 0x45, 0xec, 0x55, 0xb6, 0xc3, 0x9a, 0x1e, 0x6e, 0xd8, 0x8a, 0xe6, 0x6e, 0x5b, 0x45, 0x71, 0x79, 0x42, 0x5d, 0x1a, 0x84, 0x90, 0x37, 0xb0, 0x7c, 0x46, 0xcf, 0x5f, 0x36, 0x33, 0x01, 0x09, 0x58, 0x37, 0xce, 0x81, 0x1b, 0xff, 0x49, 0x60, 0xbf, 0x9c, 0xbd, 0x15, 0x20, 0x1c, 0x1b, 0x67, 0x40, 0xbd, 0x70, 0x10, 0x21, 0x40, 0x74, 0x4c, 0x33, 0x27, 0xac, 0xa9, 0xd6, 0xd6, 0xd1, 0x54, 0x93, 0x67, 0x98, 0xac, 0x38, 0x1f, 0xa6, 0x39, 0xdb, 0x43, 0x6e, 0xe8, 0x16, 0x56, 0x67, 0xd5, 0x38, 0xa6, 0xc7, 0x4a, 0x23, 0x3c, 0x12, 0x4b, 0xf6, 0x04, 0xfd, 0xad, 0x51, 0x98, 0x4c, 0x41, 0x70, 0xb8, 0x20, 0x0d, 0x2d, 0xf7, 0x3c, 0x29, 0xbb, 0x1e, 0x37, 0x6a, 0xff, 0xc3, 0x14, 0xdd, 0xe3, 0xe8, 0x6a, 0xf9, 0xd2, 0xc2, 0xe6, 0xc3, 0xa6, 0x52, 0x4d, 0x32, 0x1b, 0xce, 0x93, 0xe2, 0x1f, 0xc9, 0x65, 0x56, 0x4f, 0xaf, 0x77, 0xd0, 0xcd, 0x1a, 0xcc, 0xb4, 0xd7, 0x62, 0x94, 0x85, 0xf5, 0x64, 0xc7, 0x9f, 0x4d, 0x8a, 0x2f, 0xde, 0xfb, 0x46, 0x54, 0x54, 0x02, 0x8c, 0x6d, 0xd1, 0x42, 0x80, 0x42, 0x80, 0x53, 0x70, 0x74, 0x33, 0x63, 0xbb, 0x18, 0x47, 0x6a, 0x3f, 0x23, 0x20, 0xdb, 0x25, 0x89, 0xc7, 0x21, 0x33, 0xcf, 0x5e, 0x29, 0xda, 0xfb, 0x7d, 0x07, 0xaa, 0x69, 0xa9, 0xb5, 0x81, 0xba, 0xb5, 0xa8, 0x3f, 0x40, 0x3e, 0xef, 0x91, 0x7a, 0xfa, 0x14, 0xb7, 0x64, 0xc3, 0x9a, 0x13, 0xc0, 0xc5, 0xea, 0x70, 0x19, 0xd2, 0xfd, 0xfb, 0xd7, 0xf3, 0xf7, 0xd4, 0x0e, 0xb6, 0x3b, 0x2a, 0x08, 0x4d, 0xa9, 0x21, 0x89, 0x5f, 0xe4, 0x8f, 0x4f, 0xd5, 0x94, 0x01, 0x7f, 0x82, 0x56, 0x9b, 0x46, 0x7a, 0xb9, 0x01, 0x16, 0x9e, 0xb5, 0xda, 0x9c, 0x40, 0x17, 0x1d, 0x5f, };
12649 static const u8 ed25519_550_test_vectors_expected_sig[] = {
12650 	0xab, 0x9e, 0x01, 0x16, 0x65, 0x24, 0xfd, 0x28, 0x8e, 0x5c, 0x68, 0x9e, 0x56, 0xd7, 0x30, 0xd4, 0x98, 0x30, 0x00, 0x55, 0x10, 0x30, 0x49, 0x33, 0x34, 0xa3, 0x98, 0x4e, 0x22, 0x23, 0xdc, 0x9f, 0x7a, 0x5b, 0x91, 0x0c, 0x61, 0x76, 0x0c, 0x61, 0x57, 0x99, 0x0a, 0x4c, 0x33, 0x5e, 0x34, 0x8e, 0x3a, 0x7b, 0xc8, 0x22, 0x3e, 0x09, 0xc1, 0x0c, 0x5e, 0x52, 0x0c, 0x8d, 0x61, 0xaf, 0xf5, 0x00, };
12651 static const ec_test_case ed25519_550_test_case = {
12652 	.name = "EDDSA25519-SHA512/wei25519 550",
12653 	.ec_str_p = &wei25519_str_params,
12654 	.priv_key = ed25519_550_test_vectors_priv_key,
12655 	.priv_key_len = sizeof(ed25519_550_test_vectors_priv_key),
12656 	.nn_random = NULL,
12657 	.hash_type = SHA512,
12658 	.msg = (const char *)ed25519_550_test_vectors_message,
12659 	.msglen = sizeof(ed25519_550_test_vectors_message),
12660 	.sig_type = EDDSA25519,
12661 	.exp_sig = ed25519_550_test_vectors_expected_sig,
12662 	.exp_siglen = sizeof(ed25519_550_test_vectors_expected_sig),
12663 	.adata = NULL,
12664 	.adata_len = 0
12665 };
12666 
12667 /************************************************/
12668 static const u8 ed25519_551_test_vectors_priv_key[] = {
12669 	0xb7, 0x27, 0x98, 0xb8, 0x11, 0xe2, 0x33, 0x84, 0x31, 0x25, 0x6d, 0x24, 0x80, 0xfe, 0x7a, 0x36, 0x63, 0xac, 0xec, 0xbb, 0xe6, 0xe6, 0xc1, 0xb9, 0x19, 0x1e, 0x9d, 0x9a, 0x22, 0x44, 0x79, 0x40, };
12670 static const u8 ed25519_551_test_vectors_message[] = {
12671 	0xa5, 0xd4, 0x62, 0x98, 0xb0, 0x79, 0x06, 0x10, 0xae, 0xdc, 0x09, 0x70, 0xfe, 0xa2, 0xa7, 0x07, 0x50, 0x81, 0x84, 0x72, 0x66, 0xf2, 0x2f, 0x12, 0x47, 0x8b, 0x93, 0xd7, 0xe6, 0x74, 0xc6, 0xc5, 0x17, 0xf3, 0xc1, 0x4e, 0xd0, 0x61, 0x26, 0x9d, 0x17, 0x0a, 0xc3, 0x1e, 0x2a, 0x64, 0xf9, 0x75, 0x4a, 0x56, 0x5b, 0xac, 0x1d, 0xd9, 0x75, 0x73, 0x22, 0xc1, 0x11, 0x32, 0xe7, 0xbb, 0xee, 0x5f, 0x32, 0x81, 0x8e, 0x0e, 0x30, 0x63, 0xab, 0x64, 0xe5, 0x52, 0xd0, 0x9b, 0x0f, 0xd1, 0x75, 0x76, 0x39, 0xb9, 0xb9, 0xd1, 0xc7, 0x70, 0x01, 0x6b, 0x67, 0x74, 0x65, 0x87, 0x2b, 0x66, 0x9d, 0xd4, 0x8b, 0xe0, 0x38, 0x66, 0x57, 0x51, 0x67, 0x4d, 0xd2, 0xf4, 0x0a, 0x96, 0x6a, 0x26, 0x74, 0x8f, 0xd3, 0xe5, 0xdb, 0xfd, 0x92, 0x26, 0x5e, 0xb9, 0x36, 0xf5, 0x5b, 0x09, 0x42, 0x86, 0xc0, 0x10, 0x62, 0x99, 0x04, 0x34, 0x7c, 0xb4, 0xc5, 0x26, 0xe3, 0x77, 0x47, 0x0a, 0xa9, 0x6e, 0x81, 0x69, 0xa6, 0xf2, 0x11, 0x63, 0x38, 0x07, 0xa5, 0x00, 0x30, 0xe7, 0xff, 0x68, 0xe3, 0x89, 0x11, 0xb3, 0x55, 0x5e, 0x72, 0x8e, 0xd8, 0x59, 0x0b, 0x2d, 0xc4, 0x5f, 0xea, 0x69, 0x94, 0x5c, 0xc0, 0xc9, 0xa3, 0xd3, 0xe6, 0xc9, 0x54, 0xb3, 0xe8, 0x01, 0x06, 0xa5, 0xc9, 0x1d, 0x3d, 0x22, 0xe8, 0x9e, 0x8c, 0x0e, 0x1d, 0xe9, 0x02, 0x05, 0x8e, 0x9c, 0xd0, 0xf8, 0xce, 0x80, 0x6e, 0xac, 0x4f, 0x89, 0x3e, 0xe0, 0x42, 0x99, 0x00, 0xfb, 0x54, 0x87, 0xb8, 0xfd, 0x36, 0xdb, 0xdc, 0xb3, 0x4f, 0x2d, 0x54, 0xfc, 0x6c, 0xc7, 0x4a, 0x92, 0x39, 0x51, 0xb8, 0x63, 0xda, 0x70, 0xf1, 0xb6, 0x92, 0xbf, 0x04, 0x38, 0x48, 0x43, 0x66, 0xcd, 0x85, 0xee, 0xb8, 0x80, 0xb2, 0x79, 0xf8, 0xfc, 0xa9, 0xd3, 0x24, 0x2c, 0x55, 0x83, 0x30, 0xf1, 0xca, 0x57, 0xc6, 0xa5, 0x86, 0x08, 0xcd, 0xbc, 0x07, 0x73, 0xe1, 0x60, 0x82, 0xbc, 0xa9, 0x64, 0xdd, 0xc4, 0x03, 0x47, 0xda, 0x8a, 0x36, 0xb2, 0xa9, 0x32, 0x8c, 0x2f, 0x46, 0x60, 0x9e, 0x09, 0x2f, 0xd6, 0x4b, 0x41, 0x34, 0xee, 0xe1, 0xd0, 0x99, 0x81, 0x3e, 0x12, 0x46, 0x48, 0x9e, 0x8e, 0xe5, 0xb1, 0x9b, 0x3d, 0x3b, 0x89, 0x1c, 0x28, 0xf3, 0x0b, 0x38, 0xb6, 0xa2, 0x8e, 0xc1, 0xd3, 0xe9, 0xb0, 0x05, 0xde, 0xc9, 0xc6, 0x3f, 0x8b, 0x98, 0x13, 0xbc, 0x1d, 0xe4, 0xaa, 0xf9, 0x95, 0xf1, 0x77, 0x9d, 0xde, 0xd1, 0x5c, 0x7a, 0x43, 0x0d, 0x70, 0xca, 0x46, 0xe7, 0xca, 0xfd, 0x4e, 0x9a, 0x54, 0x38, 0x04, 0x44, 0x6a, 0xb0, 0x80, 0x7d, 0x64, 0xf2, 0x55, 0xe2, 0x01, 0xef, 0x42, 0x8a, 0x47, 0x4d, 0xae, 0x8a, 0x0a, 0x75, 0x02, 0x1b, 0x62, 0xad, 0x39, 0x88, 0xff, 0xb8, 0x1c, 0xd8, 0x22, 0x1b, 0x24, 0x30, 0x85, 0xa0, 0xad, 0x04, 0x6f, 0xdc, 0x16, 0xc6, 0x7f, 0x17, 0xb9, 0xf8, 0x18, 0x20, 0x09, 0x59, 0x53, 0xa5, 0xb9, 0x8a, 0xcb, 0xdf, 0x93, 0xeb, 0xcf, 0x80, 0xbc, 0x9c, 0x99, 0xaf, 0x5f, 0xbf, 0xfa, 0xcb, 0x61, 0xa9, 0x25, 0x1c, 0x5a, 0xaf, 0xdb, 0x22, 0xb1, 0x12, 0x9b, 0xfc, 0x60, 0xc9, 0x8e, 0x0f, 0x17, 0x52, 0x63, 0xbd, 0xf9, 0x3d, 0xc9, 0xa0, 0x8b, 0x8e, 0xfc, 0x2e, 0x8c, 0xda, 0xf0, 0xf8, 0x3d, 0x6c, 0x49, 0xec, 0x90, 0x16, 0x45, 0xea, 0xc5, 0xa4, 0xff, 0x63, 0x38, 0x5a, 0x6f, 0x1a, 0xf2, 0x07, 0x18, 0x97, 0x66, 0x2a, 0x37, 0x22, 0x19, 0xc9, 0x30, 0x1f, 0x54, 0x5a, 0x2e, 0xbb, 0x8f, 0x59, 0x17, 0xdb, 0x7f, 0x29, 0xca, 0x13, 0xfc, 0x86, 0x1a, 0xf3, 0x8d, 0x90, 0xc3, 0x5c, 0x03, 0xac, 0x91, 0x84, 0xc1, 0x22, 0xe5, 0x7b, 0x05, 0x7c, 0xde, 0x42, 0x6f, 0xd7, 0x6d, 0xca, 0x79, 0xe2, 0x5e, 0x64, 0xdb, 0xb4, 0x1c, 0x84, 0x14, 0xa0, 0x45, 0x0d, 0xa4, 0x90, 0x5b, 0x90, 0x2a, 0xe9, 0x8d, 0x2d, 0xa4, 0xba, 0x79, 0x28, 0x01, };
12672 static const u8 ed25519_551_test_vectors_expected_sig[] = {
12673 	0xdc, 0xfc, 0x6f, 0xd4, 0x77, 0x99, 0xfe, 0xc7, 0x72, 0xc2, 0x09, 0x9b, 0x3c, 0x64, 0x37, 0x24, 0x6c, 0x3a, 0xd0, 0x72, 0x29, 0xfc, 0x74, 0x0e, 0x05, 0x31, 0x1a, 0x20, 0x6b, 0x18, 0xb0, 0x2e, 0xcd, 0xb0, 0x26, 0xc9, 0x26, 0xf4, 0x9c, 0x65, 0x52, 0xe3, 0x47, 0xfd, 0x35, 0xdf, 0xde, 0x06, 0xcb, 0x63, 0x9a, 0x79, 0x7c, 0x50, 0x61, 0x2f, 0x98, 0xe2, 0x47, 0x8a, 0x92, 0xaa, 0xf6, 0x09, };
12674 static const ec_test_case ed25519_551_test_case = {
12675 	.name = "EDDSA25519-SHA512/wei25519 551",
12676 	.ec_str_p = &wei25519_str_params,
12677 	.priv_key = ed25519_551_test_vectors_priv_key,
12678 	.priv_key_len = sizeof(ed25519_551_test_vectors_priv_key),
12679 	.nn_random = NULL,
12680 	.hash_type = SHA512,
12681 	.msg = (const char *)ed25519_551_test_vectors_message,
12682 	.msglen = sizeof(ed25519_551_test_vectors_message),
12683 	.sig_type = EDDSA25519,
12684 	.exp_sig = ed25519_551_test_vectors_expected_sig,
12685 	.exp_siglen = sizeof(ed25519_551_test_vectors_expected_sig),
12686 	.adata = NULL,
12687 	.adata_len = 0
12688 };
12689 
12690 /************************************************/
12691 static const u8 ed25519_552_test_vectors_priv_key[] = {
12692 	0x1f, 0xe7, 0x32, 0x7e, 0xa9, 0x07, 0xd3, 0xff, 0x17, 0x9b, 0x11, 0x78, 0x11, 0xd3, 0x01, 0x93, 0xfc, 0xba, 0x4c, 0x34, 0x7b, 0x90, 0x65, 0x7f, 0xee, 0xd9, 0x8d, 0xee, 0xec, 0xda, 0x9a, 0xc9, };
12693 static const u8 ed25519_552_test_vectors_message[] = {
12694 	0x19, 0xa8, 0x32, 0xf2, 0x6f, 0xbb, 0x02, 0x39, 0xf0, 0xd9, 0xd2, 0x6a, 0x2e, 0xbd, 0xed, 0x24, 0x03, 0xc2, 0xa4, 0x06, 0xdd, 0x1f, 0x68, 0x31, 0x8d, 0x67, 0x7a, 0xfa, 0x64, 0xf3, 0x50, 0x43, 0x31, 0x6a, 0x5e, 0xfd, 0x72, 0x97, 0x83, 0xc7, 0xf9, 0xd1, 0x8c, 0x09, 0x82, 0x46, 0x14, 0x65, 0x20, 0x91, 0x88, 0x6c, 0xc9, 0x54, 0xbe, 0x9f, 0x93, 0x12, 0xd4, 0x58, 0x6b, 0xf3, 0x6f, 0x30, 0x35, 0xac, 0x70, 0x34, 0x38, 0xb0, 0xcf, 0xe3, 0xde, 0xc5, 0x07, 0x78, 0x13, 0xc7, 0x10, 0xd1, 0x44, 0x75, 0x61, 0xab, 0x61, 0x57, 0xbc, 0x7a, 0xd5, 0xea, 0xb5, 0xb0, 0xc0, 0xaf, 0xdc, 0xc9, 0xdb, 0x77, 0xe6, 0x6f, 0xa8, 0x07, 0x13, 0x66, 0x82, 0x9c, 0x50, 0x10, 0x96, 0xc3, 0xd3, 0xa9, 0x38, 0x21, 0x8a, 0x6e, 0x42, 0x07, 0x10, 0x9d, 0x1e, 0xb8, 0x1f, 0x7d, 0x88, 0xbd, 0x6f, 0xbb, 0x2a, 0xef, 0xb1, 0xad, 0xef, 0x35, 0x94, 0xaa, 0xe5, 0x7c, 0x46, 0xb7, 0xb9, 0x84, 0xdb, 0x94, 0x68, 0xcd, 0x96, 0x2c, 0x61, 0x84, 0xfb, 0x97, 0x6f, 0x0e, 0x2a, 0xa8, 0x41, 0x52, 0xde, 0xb1, 0xc7, 0x6a, 0xea, 0x75, 0xae, 0x48, 0x84, 0x42, 0x94, 0x3a, 0x80, 0xba, 0x7d, 0x98, 0xa2, 0x8c, 0xb8, 0x64, 0xb5, 0xe8, 0x7c, 0xdb, 0x28, 0x4a, 0xd6, 0xe8, 0xd7, 0xaa, 0xdc, 0x6b, 0x75, 0xd6, 0x9d, 0x3b, 0xd3, 0x45, 0x78, 0x3b, 0x3e, 0xbb, 0x67, 0x6f, 0xf9, 0x5d, 0x7b, 0x41, 0x91, 0xe5, 0x99, 0x85, 0x1c, 0x96, 0x28, 0x83, 0x5c, 0x7c, 0x01, 0x19, 0x7e, 0x7c, 0x8f, 0x86, 0xf9, 0xc8, 0xfb, 0x49, 0xfe, 0x3e, 0x28, 0x45, 0x8b, 0xa9, 0xb0, 0x23, 0x62, 0x19, 0xbd, 0x46, 0xc2, 0x8d, 0xf6, 0x53, 0x24, 0x96, 0x99, 0x4a, 0xc9, 0xba, 0x73, 0x3c, 0x01, 0x05, 0xa0, 0x2a, 0x26, 0x9a, 0x2b, 0xe8, 0xb7, 0xcb, 0x40, 0x07, 0x4b, 0x88, 0x16, 0x02, 0xef, 0x92, 0x47, 0x05, 0x2d, 0xe9, 0xd6, 0x37, 0x08, 0x91, 0x88, 0xbd, 0x4c, 0x18, 0x5c, 0xca, 0xe2, 0x58, 0xa2, 0xae, 0x98, 0x56, 0xa2, 0xcb, 0xf8, 0x45, 0x11, 0x17, 0x68, 0x3c, 0xe3, 0x41, 0xf8, 0x09, 0x6e, 0x1d, 0x91, 0xe8, 0x74, 0xc5, 0xcb, 0x8a, 0x4e, 0x09, 0x39, 0xeb, 0x77, 0x37, 0x3a, 0x9a, 0x0e, 0xb7, 0x91, 0x64, 0x5b, 0x8f, 0x54, 0x60, 0x47, 0x2d, 0x66, 0x9d, 0x80, 0x14, 0x68, 0x1a, 0x5e, 0x77, 0x87, 0x06, 0xcb, 0x55, 0x66, 0xbb, 0xd4, 0x72, 0x7d, 0x17, 0x16, 0xb2, 0x3c, 0x62, 0x0d, 0x22, 0x8b, 0x5d, 0x4d, 0xc2, 0xb3, 0x52, 0xb4, 0x23, 0x93, 0x1f, 0x8a, 0x7e, 0x8f, 0xb5, 0x9e, 0xda, 0xd8, 0xae, 0x42, 0x45, 0x87, 0x29, 0x86, 0x1a, 0x98, 0xe0, 0xc8, 0x50, 0xa7, 0x7e, 0xd6, 0x55, 0xe7, 0xfc, 0xfe, 0x4f, 0xe3, 0x6f, 0x97, 0x72, 0xdf, 0x1a, 0xc3, 0xc6, 0x43, 0xad, 0x31, 0xdb, 0x56, 0x30, 0xd5, 0x71, 0xdf, 0x9f, 0xcc, 0x9c, 0x50, 0xde, 0x76, 0x22, 0x10, 0x84, 0x11, 0x96, 0x2b, 0xbf, 0x72, 0xde, 0xfb, 0xf4, 0x9e, 0x99, 0x70, 0x59, 0xc7, 0x31, 0x1b, 0xd9, 0xdd, 0xd5, 0xb3, 0x38, 0xa9, 0x85, 0x19, 0x38, 0xd3, 0x7e, 0x7a, 0x26, 0x21, 0x08, 0xa2, 0x91, 0xe2, 0x01, 0x68, 0x03, 0xbb, 0xef, 0xf4, 0xf9, 0xc7, 0x76, 0x12, 0x5c, 0xeb, 0x7e, 0x72, 0x72, 0xb5, 0x1c, 0x7c, 0x33, 0x46, 0x1d, 0x80, 0x89, 0xf8, 0x40, 0x8d, 0x8d, 0xda, 0x92, 0x50, 0x6d, 0x50, 0x02, 0x08, 0x4d, 0x4f, 0x41, 0x4d, 0x8a, 0x4d, 0x28, 0xd3, 0x69, 0x4c, 0x88, 0x63, 0x0e, 0x31, 0x80, 0x19, 0x90, 0xd9, 0x52, 0x71, 0xce, 0xf4, 0x7a, 0xa5, 0xc2, 0x63, 0xf9, 0x7b, 0x7d, 0xac, 0xa1, 0x78, 0x87, 0x01, 0x43, 0x63, 0x29, 0xb5, 0xbf, 0xaf, 0x72, 0x65, 0x3c, 0x16, 0x6d, 0xb0, 0x87, 0x70, 0x81, 0x30, 0xc5, 0xc0, 0xd7, 0x8c, 0xc4, 0xe9, 0x06, 0x4f, 0x86, 0x06, 0x80, 0x27, 0x1a, 0xfe, 0x4c, 0x40, 0x98, 0x53, 0xc2, 0xfa, 0xd6, 0x75, };
12695 static const u8 ed25519_552_test_vectors_expected_sig[] = {
12696 	0x9c, 0x7f, 0xdb, 0x53, 0xfd, 0x60, 0x6b, 0xc7, 0xc9, 0xc2, 0x23, 0xfe, 0x94, 0x31, 0xe1, 0xad, 0x00, 0x95, 0x46, 0xd0, 0x00, 0x98, 0x81, 0x2a, 0x49, 0x51, 0x97, 0xf2, 0x54, 0x1e, 0x87, 0xf8, 0xd6, 0xf5, 0xda, 0x22, 0xec, 0xef, 0xcb, 0xb7, 0xda, 0x56, 0x66, 0x2a, 0x73, 0x09, 0xd1, 0x0a, 0x6c, 0x4a, 0x4f, 0x7f, 0x29, 0x92, 0x78, 0xd5, 0x1b, 0xbd, 0x11, 0xe0, 0xcc, 0x1b, 0x87, 0x09, };
12697 static const ec_test_case ed25519_552_test_case = {
12698 	.name = "EDDSA25519-SHA512/wei25519 552",
12699 	.ec_str_p = &wei25519_str_params,
12700 	.priv_key = ed25519_552_test_vectors_priv_key,
12701 	.priv_key_len = sizeof(ed25519_552_test_vectors_priv_key),
12702 	.nn_random = NULL,
12703 	.hash_type = SHA512,
12704 	.msg = (const char *)ed25519_552_test_vectors_message,
12705 	.msglen = sizeof(ed25519_552_test_vectors_message),
12706 	.sig_type = EDDSA25519,
12707 	.exp_sig = ed25519_552_test_vectors_expected_sig,
12708 	.exp_siglen = sizeof(ed25519_552_test_vectors_expected_sig),
12709 	.adata = NULL,
12710 	.adata_len = 0
12711 };
12712 
12713 /************************************************/
12714 static const u8 ed25519_553_test_vectors_priv_key[] = {
12715 	0x5f, 0x9d, 0xcd, 0x93, 0xfb, 0x14, 0x06, 0x10, 0xb0, 0xe2, 0x11, 0xb3, 0x9a, 0xdd, 0xb1, 0xeb, 0x87, 0xba, 0x97, 0x80, 0x48, 0x77, 0xaf, 0xbc, 0xc3, 0x81, 0x38, 0x8c, 0xad, 0x65, 0x08, 0x45, };
12716 static const u8 ed25519_553_test_vectors_message[] = {
12717 	0xc3, 0x8b, 0x87, 0x4d, 0x3f, 0xf0, 0x10, 0xff, 0xf1, 0xa6, 0x61, 0x3b, 0xfa, 0x13, 0x42, 0x57, 0xb2, 0x48, 0x33, 0xcb, 0x53, 0x6d, 0xe3, 0xe7, 0x49, 0x92, 0xc3, 0xcb, 0x01, 0xfe, 0x3b, 0xbd, 0xee, 0xd9, 0x7d, 0xc3, 0xc4, 0x59, 0x6f, 0xa4, 0x40, 0x61, 0x44, 0x2b, 0xd3, 0x1a, 0x9d, 0x4a, 0xa8, 0xc8, 0x1e, 0x34, 0xad, 0x98, 0x88, 0x71, 0x82, 0x06, 0x63, 0x55, 0x09, 0xb1, 0x33, 0xb1, 0xba, 0x69, 0xcb, 0x1a, 0xa0, 0xe7, 0x5c, 0x7a, 0x18, 0x93, 0xc0, 0x80, 0x16, 0x1d, 0x26, 0x15, 0x2a, 0xce, 0xf4, 0x0f, 0x6e, 0xf4, 0x21, 0x0e, 0x95, 0x2a, 0x49, 0x82, 0x8b, 0x5c, 0xdd, 0xe8, 0x04, 0xbc, 0xb5, 0x36, 0xcd, 0xc3, 0x49, 0xa8, 0xe8, 0x31, 0xb4, 0xb6, 0x9d, 0x37, 0x85, 0xa7, 0x6b, 0xd9, 0xfb, 0x27, 0x08, 0x05, 0x65, 0x97, 0x2d, 0x0b, 0x8f, 0xbd, 0x16, 0xf3, 0xf9, 0x60, 0xa6, 0xbf, 0x3b, 0xa0, 0xc5, 0xb9, 0xc4, 0x04, 0x96, 0x7e, 0xc1, 0xaf, 0xfe, 0x59, 0xb8, 0xc4, 0xec, 0xc6, 0x50, 0xfd, 0xde, 0x1c, 0xb0, 0x6b, 0x70, 0x59, 0x5a, 0xd4, 0xd3, 0x25, 0xda, 0x0f, 0xab, 0x4c, 0x55, 0x40, 0xa7, 0xa8, 0xd5, 0xeb, 0xea, 0xcc, 0x4e, 0x99, 0xbd, 0x0d, 0xc9, 0x6b, 0xde, 0x82, 0xf2, 0xbd, 0x7d, 0x95, 0x86, 0x30, 0x84, 0x65, 0xe5, 0x5b, 0x1c, 0xc3, 0x88, 0xd7, 0x50, 0x48, 0x6b, 0xdd, 0x5c, 0x72, 0x64, 0xd5, 0x4f, 0x56, 0x14, 0xd4, 0x87, 0x26, 0xd9, 0x9e, 0x44, 0xd7, 0x77, 0x8d, 0x9e, 0xd0, 0x32, 0x39, 0x58, 0xab, 0x98, 0x58, 0xe2, 0xb2, 0x5d, 0xf2, 0xbf, 0x99, 0x4b, 0xa3, 0xe6, 0x25, 0xe2, 0x80, 0x3b, 0x6c, 0x69, 0x31, 0xe7, 0xa9, 0x92, 0x6f, 0x1e, 0x61, 0xed, 0x86, 0x24, 0x03, 0xce, 0x39, 0x2a, 0xb8, 0x3b, 0x7d, 0x1b, 0x66, 0x08, 0x5d, 0xcc, 0x06, 0xd8, 0x2d, 0xbf, 0x17, 0x6d, 0x01, 0x6d, 0x9f, 0x44, 0xcd, 0xcb, 0x50, 0x72, 0xd0, 0x04, 0x59, 0x1e, 0x92, 0xd0, 0x45, 0x9e, 0xf0, 0x5a, 0x51, 0xb8, 0xf5, 0x4b, 0xa1, 0x72, 0x51, 0xe1, 0x66, 0x21, 0xeb, 0xb7, 0x53, 0xe5, 0xb1, 0x59, 0x0c, 0x02, 0xd2, 0x1e, 0x40, 0xf4, 0xb7, 0x5e, 0xee, 0x46, 0x02, 0x86, 0x0b, 0x97, 0x41, 0xfb, 0xbc, 0x0d, 0x2e, 0x38, 0x5b, 0x8d, 0xac, 0xa8, 0x3c, 0xce, 0x68, 0xc3, 0x4a, 0x99, 0xbd, 0xe6, 0xa6, 0x0d, 0x13, 0xba, 0x64, 0x34, 0x7d, 0x0a, 0x38, 0xd6, 0x4b, 0x2a, 0xde, 0x25, 0x0f, 0x38, 0x85, 0x2c, 0x4e, 0xda, 0x2e, 0x2e, 0x4f, 0x30, 0x3c, 0x3d, 0xe1, 0xa8, 0xa9, 0xd4, 0xab, 0x33, 0x00, 0xc9, 0xe6, 0x36, 0x22, 0x87, 0x9f, 0xc8, 0x53, 0x7f, 0xfc, 0x63, 0xb1, 0x85, 0x61, 0xfa, 0x1f, 0xff, 0x65, 0x53, 0x12, 0x41, 0x51, 0x5a, 0x62, 0xbb, 0x9b, 0x08, 0xb8, 0x0a, 0xf3, 0x76, 0x67, 0xa6, 0x01, 0xae, 0x04, 0x17, 0x17, 0x93, 0xcc, 0x83, 0xb1, 0x1a, 0xdf, 0x9c, 0x30, 0xca, 0x9f, 0x4d, 0xab, 0xc7, 0xb4, 0x01, 0xe1, 0x6a, 0x18, 0x14, 0xcf, 0xc7, 0x50, 0x24, 0x8c, 0xc2, 0xf7, 0x7e, 0x03, 0xf9, 0xc4, 0x33, 0x44, 0x65, 0xff, 0x6a, 0x2c, 0x83, 0xcb, 0xb5, 0x6d, 0xb4, 0xb7, 0x34, 0x75, 0x10, 0x43, 0x83, 0x2c, 0x40, 0x00, 0x97, 0x2e, 0xe3, 0x23, 0x2f, 0x92, 0x9f, 0x23, 0x33, 0x7e, 0xba, 0x5e, 0x65, 0x1e, 0x34, 0xcb, 0xdd, 0xfe, 0x68, 0xba, 0x21, 0x9b, 0x63, 0x2e, 0x7a, 0xcd, 0xbd, 0x46, 0x30, 0xa0, 0x31, 0xbf, 0x16, 0x89, 0xfb, 0xbc, 0x7f, 0xbb, 0xb2, 0x10, 0xdb, 0xf2, 0x5e, 0xe8, 0x7e, 0x2e, 0xf2, 0xb3, 0xcb, 0xaf, 0x8d, 0x9e, 0xbd, 0x8f, 0xc9, 0x2c, 0x3a, 0x58, 0xd3, 0xc0, 0x5b, 0x13, 0x85, 0xa7, 0x6c, 0x87, 0x79, 0x1d, 0x7c, 0xd3, 0x74, 0x1b, 0x71, 0xb6, 0xc3, 0x29, 0xde, 0x9a, 0x9d, 0x75, 0x08, 0xa0, 0xc1, 0x56, 0xa9, 0x52, 0x1a, 0x90, 0x20, 0x56, 0x30, 0x99, 0xa8, 0x2b, 0x87, 0x70, 0xae, 0x9a, 0x94, 0x4a, 0x7e, 0x94, };
12718 static const u8 ed25519_553_test_vectors_expected_sig[] = {
12719 	0xc1, 0x91, 0x5e, 0x05, 0x2b, 0x66, 0x47, 0x97, 0xe0, 0xd5, 0xfa, 0xad, 0xc7, 0x8f, 0x2a, 0x00, 0x9d, 0x6f, 0xbc, 0xfd, 0xe0, 0x3f, 0x3a, 0xaa, 0xd5, 0x9b, 0x9f, 0x45, 0x88, 0xe7, 0xfc, 0x3b, 0x21, 0x99, 0x0c, 0x52, 0x08, 0xd3, 0xd7, 0x6b, 0x4a, 0xa9, 0x5b, 0xd9, 0x34, 0xe8, 0x8d, 0x3c, 0x98, 0xc5, 0x91, 0x93, 0x0a, 0x59, 0xde, 0x2a, 0x05, 0x67, 0x01, 0xd9, 0xf7, 0x57, 0x74, 0x00, };
12720 static const ec_test_case ed25519_553_test_case = {
12721 	.name = "EDDSA25519-SHA512/wei25519 553",
12722 	.ec_str_p = &wei25519_str_params,
12723 	.priv_key = ed25519_553_test_vectors_priv_key,
12724 	.priv_key_len = sizeof(ed25519_553_test_vectors_priv_key),
12725 	.nn_random = NULL,
12726 	.hash_type = SHA512,
12727 	.msg = (const char *)ed25519_553_test_vectors_message,
12728 	.msglen = sizeof(ed25519_553_test_vectors_message),
12729 	.sig_type = EDDSA25519,
12730 	.exp_sig = ed25519_553_test_vectors_expected_sig,
12731 	.exp_siglen = sizeof(ed25519_553_test_vectors_expected_sig),
12732 	.adata = NULL,
12733 	.adata_len = 0
12734 };
12735 
12736 /************************************************/
12737 static const u8 ed25519_554_test_vectors_priv_key[] = {
12738 	0x92, 0x5e, 0xbe, 0x04, 0xc6, 0xea, 0xc4, 0x9b, 0x26, 0x73, 0x8d, 0x6c, 0x13, 0x00, 0xf3, 0x1f, 0xd4, 0x82, 0x84, 0x78, 0xcb, 0xe9, 0x7d, 0xab, 0x18, 0xbb, 0x88, 0x96, 0x42, 0xe1, 0xe1, 0x10, };
12739 static const u8 ed25519_554_test_vectors_message[] = {
12740 	0xe6, 0xc0, 0xba, 0xd2, 0x3a, 0x92, 0xae, 0x8b, 0x1d, 0x85, 0x77, 0x82, 0x88, 0x15, 0x7a, 0xc6, 0xc6, 0x17, 0xc6, 0x33, 0x63, 0x34, 0x1d, 0x77, 0x78, 0x70, 0x34, 0x1b, 0xb1, 0x0a, 0x8d, 0x3d, 0xfc, 0x89, 0xbe, 0x4f, 0x55, 0xad, 0x4f, 0x64, 0xe8, 0x3b, 0xf2, 0x49, 0x9b, 0x69, 0xfd, 0xf7, 0x21, 0x74, 0xd2, 0x84, 0x4e, 0x6b, 0xd2, 0x89, 0xda, 0xaa, 0x03, 0x5f, 0xec, 0x5b, 0xf7, 0xcf, 0x45, 0x52, 0x21, 0x19, 0xdc, 0x7a, 0x8c, 0x81, 0x1d, 0x79, 0x57, 0x8c, 0x5b, 0xb0, 0xf6, 0xd3, 0x4d, 0xb5, 0x07, 0xad, 0x1f, 0xb6, 0xdb, 0xff, 0xf9, 0x97, 0xb7, 0x9d, 0xac, 0xfb, 0x3d, 0xa5, 0x0a, 0x41, 0x5e, 0x35, 0x0c, 0x99, 0x8c, 0x0a, 0x02, 0x80, 0x0a, 0xa5, 0x0f, 0xfd, 0xfe, 0x5f, 0x42, 0x76, 0xd8, 0xe6, 0xbb, 0x82, 0xeb, 0xf0, 0x47, 0xfe, 0x48, 0x71, 0x1d, 0xaf, 0x7a, 0x89, 0x3b, 0xdc, 0x75, 0x37, 0xbd, 0xae, 0xdf, 0x3d, 0xcb, 0x4d, 0xec, 0x5d, 0x24, 0x58, 0x68, 0x11, 0xf5, 0x9b, 0x25, 0xb1, 0x9e, 0x83, 0xca, 0x61, 0xe5, 0x59, 0x2f, 0xed, 0xc0, 0x8c, 0xa5, 0x44, 0x73, 0xce, 0xa2, 0xec, 0x12, 0x1b, 0xaa, 0x0e, 0x77, 0xfb, 0x2d, 0x9d, 0x76, 0x56, 0x57, 0xde, 0x67, 0x98, 0x0e, 0xd5, 0x7f, 0x2f, 0x17, 0x78, 0x58, 0xb6, 0xde, 0xcf, 0x84, 0xff, 0x90, 0x21, 0x2d, 0x96, 0x47, 0xf4, 0x1e, 0xed, 0x9b, 0x9d, 0x0e, 0xa3, 0xd8, 0xd6, 0x21, 0xe4, 0xbb, 0x40, 0x41, 0xac, 0xc5, 0x14, 0x6e, 0x96, 0xdf, 0xcf, 0x14, 0xea, 0x96, 0x2d, 0x30, 0xc8, 0xcc, 0xb3, 0x9e, 0xa2, 0xbe, 0x95, 0x8c, 0x9b, 0x87, 0x74, 0x45, 0x1b, 0xfe, 0xb7, 0xdd, 0xce, 0x71, 0x6e, 0x94, 0x92, 0x3c, 0xc8, 0x5f, 0xbd, 0x3a, 0x31, 0x30, 0x78, 0x0e, 0x2b, 0x3b, 0x2b, 0xb7, 0x6d, 0xa5, 0x34, 0x19, 0x12, 0xa4, 0xe9, 0x94, 0xca, 0xfa, 0x19, 0xbb, 0xa1, 0x97, 0x32, 0xf2, 0xea, 0x40, 0x2d, 0x71, 0xd3, 0xd8, 0xa9, 0x69, 0x67, 0x9b, 0x9d, 0x10, 0x42, 0x43, 0xd9, 0x83, 0x9c, 0x69, 0xee, 0x9e, 0x95, 0x5e, 0x1c, 0x60, 0x44, 0x97, 0x88, 0xd1, 0xf4, 0xf6, 0x65, 0x1f, 0x4b, 0xc9, 0xb9, 0x4d, 0x73, 0x52, 0x2e, 0xc0, 0xcf, 0x72, 0xca, 0xcf, 0xcf, 0x19, 0xf1, 0xf0, 0x3a, 0xd6, 0x23, 0x21, 0x04, 0xb5, 0x5c, 0xbb, 0x8b, 0x5b, 0xb1, 0xe2, 0x13, 0x44, 0x71, 0x3d, 0x48, 0x27, 0x42, 0xd6, 0xab, 0xc5, 0xa9, 0x57, 0x17, 0x4f, 0x62, 0x3b, 0x84, 0x95, 0x27, 0x2c, 0xc1, 0xe2, 0xb8, 0x31, 0x5e, 0x5c, 0x80, 0xf9, 0x47, 0xf5, 0x00, 0xc8, 0x3d, 0x85, 0x44, 0xf7, 0xcd, 0x4f, 0x65, 0x34, 0x89, 0x49, 0xef, 0x44, 0x20, 0xd7, 0xfc, 0x83, 0x1f, 0xa4, 0xae, 0x2e, 0xe1, 0x8d, 0xbb, 0xa6, 0x14, 0x92, 0x5c, 0xe1, 0xd7, 0x67, 0xc1, 0x77, 0xa6, 0x26, 0xc4, 0x52, 0x7a, 0x81, 0x54, 0xb5, 0x72, 0x92, 0x18, 0x6b, 0x04, 0x4c, 0xbf, 0x92, 0x89, 0x42, 0x53, 0xb0, 0x0f, 0xd9, 0x34, 0x3f, 0x9e, 0x69, 0x7b, 0x14, 0x12, 0xeb, 0xa4, 0x35, 0x97, 0xeb, 0x72, 0xa6, 0x69, 0xaa, 0xa2, 0xd7, 0x7e, 0xac, 0xb9, 0x68, 0xc2, 0x0f, 0xe1, 0x95, 0x05, 0xa3, 0x80, 0x74, 0x15, 0x86, 0x21, 0xb6, 0x06, 0xf7, 0x7d, 0x97, 0xbc, 0x6e, 0xbe, 0x50, 0xe7, 0x58, 0x92, 0x93, 0xdb, 0x27, 0xfc, 0x7d, 0xfe, 0x63, 0x1a, 0x4b, 0xee, 0x83, 0xb2, 0x26, 0x82, 0xa7, 0x73, 0x28, 0xc3, 0x6d, 0x9d, 0x7d, 0x1d, 0x89, 0x1d, 0x65, 0x21, 0x7c, 0xc4, 0x78, 0x64, 0xf6, 0x80, 0xdc, 0x8b, 0x5f, 0xd1, 0xa0, 0x1a, 0x0f, 0x7c, 0x34, 0x43, 0x0f, 0x77, 0x06, 0x0b, 0x69, 0x1a, 0x1a, 0xd2, 0x13, 0xd2, 0x28, 0x68, 0xe6, 0x1b, 0xbd, 0x38, 0xf4, 0x3f, 0x0c, 0x8b, 0x4d, 0xa6, 0x8a, 0x58, 0x31, 0x86, 0x66, 0xc0, 0x99, 0x76, 0x61, 0x70, 0xc2, 0xdb, 0x76, 0x6a, 0xaf, 0x41, 0x7f, 0x55, 0x6c, 0xc9, 0xa0, 0xa3, 0x93, 0x4e, 0x9f, 0xce, 0xf1, };
12741 static const u8 ed25519_554_test_vectors_expected_sig[] = {
12742 	0x2c, 0x4d, 0x69, 0xbe, 0xd5, 0xad, 0x8b, 0x95, 0x84, 0xd8, 0x49, 0xcf, 0x3d, 0xf2, 0xba, 0xc7, 0x22, 0x82, 0xb5, 0xf3, 0x0d, 0xe2, 0x66, 0xb1, 0x4f, 0x53, 0x3c, 0xa9, 0x6e, 0x95, 0x50, 0xc4, 0xb8, 0x54, 0xc1, 0x54, 0xbd, 0xc1, 0x7a, 0xa8, 0x80, 0xcf, 0x00, 0x1a, 0x64, 0x54, 0xff, 0xaf, 0xaa, 0x2e, 0x50, 0x17, 0x8d, 0xe2, 0x12, 0x16, 0xed, 0x12, 0x6b, 0x63, 0xf7, 0x7f, 0x2d, 0x02, };
12743 static const ec_test_case ed25519_554_test_case = {
12744 	.name = "EDDSA25519-SHA512/wei25519 554",
12745 	.ec_str_p = &wei25519_str_params,
12746 	.priv_key = ed25519_554_test_vectors_priv_key,
12747 	.priv_key_len = sizeof(ed25519_554_test_vectors_priv_key),
12748 	.nn_random = NULL,
12749 	.hash_type = SHA512,
12750 	.msg = (const char *)ed25519_554_test_vectors_message,
12751 	.msglen = sizeof(ed25519_554_test_vectors_message),
12752 	.sig_type = EDDSA25519,
12753 	.exp_sig = ed25519_554_test_vectors_expected_sig,
12754 	.exp_siglen = sizeof(ed25519_554_test_vectors_expected_sig),
12755 	.adata = NULL,
12756 	.adata_len = 0
12757 };
12758 
12759 /************************************************/
12760 static const u8 ed25519_555_test_vectors_priv_key[] = {
12761 	0x4d, 0xd3, 0xb4, 0x78, 0xeb, 0xdc, 0x59, 0x47, 0x2b, 0xab, 0x14, 0xa8, 0xcd, 0xd0, 0xc2, 0xfd, 0xac, 0x57, 0x23, 0xee, 0x04, 0xdd, 0x89, 0x17, 0xc7, 0xcf, 0xe7, 0xa5, 0x36, 0x48, 0x5c, 0x77, };
12762 static const u8 ed25519_555_test_vectors_message[] = {
12763 	0x1c, 0xdb, 0xd2, 0x85, 0x56, 0xec, 0x44, 0xe8, 0x70, 0x5a, 0xfd, 0xa9, 0x2b, 0xd5, 0xa5, 0x3f, 0x95, 0xd8, 0xfe, 0x8b, 0x0f, 0xfe, 0x46, 0x33, 0x73, 0x63, 0x33, 0x16, 0xc5, 0x22, 0x74, 0xc1, 0x1e, 0xdc, 0xd6, 0x15, 0x51, 0xe3, 0x19, 0x9e, 0x49, 0x4d, 0xff, 0x6d, 0x90, 0x6a, 0x73, 0x9e, 0x7b, 0x32, 0x43, 0x03, 0xfc, 0x47, 0x82, 0x7e, 0x56, 0xde, 0xf0, 0xbd, 0xcc, 0x46, 0xb8, 0x16, 0x01, 0x7c, 0x71, 0x23, 0x05, 0x37, 0x02, 0x63, 0xba, 0xbd, 0x2c, 0x71, 0xbe, 0x47, 0x8f, 0x41, 0xce, 0x30, 0xb1, 0xdf, 0x63, 0xbe, 0xdd, 0x3b, 0x2e, 0x6a, 0x51, 0x9c, 0x53, 0xdf, 0x51, 0x58, 0x52, 0xc4, 0x13, 0x7b, 0xc1, 0xac, 0xa4, 0x9b, 0xf4, 0xc4, 0x63, 0x1f, 0xd6, 0x56, 0x46, 0x57, 0xd1, 0x1c, 0xd8, 0x3e, 0xa7, 0x3c, 0xc3, 0xd0, 0xcf, 0x9e, 0x3b, 0x3c, 0x3e, 0x7c, 0xa9, 0x9b, 0x4f, 0x12, 0xa9, 0xc9, 0xb6, 0x7c, 0x87, 0x98, 0x14, 0x8e, 0x0a, 0x0d, 0xc1, 0xef, 0x8b, 0xf5, 0x86, 0x42, 0xa1, 0x4f, 0x97, 0xa5, 0x72, 0x13, 0x55, 0x14, 0xc1, 0x0b, 0x19, 0xaa, 0xbe, 0xc2, 0x5a, 0x9c, 0x6b, 0x35, 0xaa, 0x40, 0x34, 0xa5, 0x7a, 0xae, 0x1b, 0x6d, 0x05, 0xbd, 0xe2, 0xb6, 0x33, 0x0f, 0x25, 0x1d, 0x78, 0xdb, 0x09, 0x93, 0xf0, 0xca, 0x4c, 0x26, 0x38, 0x6e, 0x34, 0x89, 0xa2, 0x09, 0x28, 0x33, 0xb8, 0xac, 0xbb, 0xc4, 0xf4, 0x91, 0x7f, 0xd3, 0x09, 0x3d, 0xf5, 0x82, 0xff, 0xf7, 0x1e, 0xce, 0x21, 0x9d, 0x36, 0x72, 0x45, 0x55, 0x82, 0x60, 0x9c, 0x0d, 0xb8, 0xd9, 0x6a, 0x70, 0xfc, 0x8a, 0xed, 0x67, 0x98, 0xde, 0x54, 0xbf, 0xb2, 0xb3, 0xee, 0x6c, 0x5d, 0x32, 0x8d, 0xb1, 0x63, 0x59, 0x3f, 0x58, 0x01, 0x9f, 0x38, 0xf3, 0x39, 0xfd, 0x37, 0x53, 0xf8, 0x96, 0xa4, 0xa2, 0xcc, 0xa8, 0xc1, 0x40, 0x0a, 0x77, 0xea, 0x39, 0x19, 0x35, 0xf3, 0x4e, 0x26, 0x39, 0xc5, 0x60, 0x86, 0x08, 0x10, 0xbb, 0xbe, 0x4b, 0xe1, 0xd1, 0x6e, 0x01, 0x2c, 0x11, 0x49, 0x0a, 0xa8, 0x4f, 0x29, 0x64, 0xc8, 0x77, 0xc2, 0x93, 0xb3, 0x00, 0xf4, 0x3d, 0x37, 0x9f, 0x3e, 0xba, 0x9a, 0xf3, 0x91, 0xde, 0xe5, 0x10, 0x85, 0x6a, 0x4d, 0xdc, 0xf7, 0x6e, 0x0a, 0x0a, 0xe0, 0x6a, 0x6a, 0x7c, 0x0f, 0x9c, 0x5e, 0x3f, 0xa1, 0xb8, 0x35, 0x4f, 0xe8, 0x97, 0x7b, 0x4e, 0xa3, 0xb2, 0x06, 0x61, 0x49, 0x1f, 0xa4, 0x61, 0x3b, 0xa6, 0x2f, 0x55, 0x6d, 0x5d, 0x5d, 0xa8, 0x21, 0x3d, 0x01, 0x21, 0xde, 0x2c, 0x87, 0x25, 0xdf, 0x0a, 0xae, 0x04, 0x8a, 0xc8, 0x91, 0xab, 0xbc, 0x06, 0xbd, 0xce, 0xf3, 0xc3, 0xef, 0xfd, 0xf5, 0xa3, 0x17, 0x49, 0x47, 0x6f, 0x81, 0x4d, 0xb9, 0x45, 0x79, 0x45, 0xf0, 0xd9, 0x1e, 0x14, 0x08, 0x00, 0x56, 0xbe, 0x92, 0x1a, 0x16, 0xaa, 0x96, 0x4a, 0x92, 0x98, 0x22, 0x1b, 0x15, 0x75, 0x94, 0x97, 0x3e, 0x32, 0x96, 0x99, 0x93, 0x31, 0x0c, 0x87, 0x07, 0xe1, 0x9f, 0x31, 0x43, 0xab, 0xc4, 0xfd, 0xa7, 0xc8, 0xad, 0x01, 0x60, 0xac, 0xf0, 0x31, 0xab, 0xa6, 0x52, 0x80, 0x1a, 0xa8, 0x1a, 0x01, 0x6b, 0x31, 0x37, 0x03, 0x9e, 0x27, 0xd6, 0x73, 0x8d, 0x02, 0x80, 0x0a, 0x93, 0xa8, 0x6f, 0x9f, 0x55, 0x85, 0xc5, 0x18, 0xdf, 0xa9, 0xe7, 0xd8, 0xac, 0x72, 0x7f, 0x37, 0x43, 0x7e, 0x56, 0xd2, 0x78, 0x83, 0x86, 0xe1, 0x16, 0x53, 0xa0, 0x4e, 0x16, 0x51, 0x69, 0xf9, 0x03, 0x97, 0x2a, 0x01, 0x48, 0x47, 0x51, 0xe7, 0xcb, 0x38, 0x63, 0x25, 0x90, 0xec, 0x80, 0xd5, 0xfc, 0xe4, 0x54, 0x16, 0x01, 0xa0, 0xe0, 0x95, 0x78, 0x5a, 0x9e, 0xe8, 0xd3, 0x59, 0xed, 0xf2, 0x6b, 0x99, 0x46, 0xe7, 0x98, 0xda, 0x59, 0x98, 0xcb, 0xb7, 0x36, 0xf9, 0x4e, 0xb7, 0x13, 0x46, 0x3f, 0x79, 0xf5, 0x61, 0x75, 0x9b, 0xbc, 0xb4, 0xc4, 0xac, 0x69, 0x3c, 0xab, 0xf2, 0xe1, 0xe0, 0x36, 0xb2, 0xd0, 0xb0, 0x87, 0x9a, };
12764 static const u8 ed25519_555_test_vectors_expected_sig[] = {
12765 	0x57, 0x88, 0xe7, 0x9e, 0x84, 0x3b, 0xde, 0x9e, 0xf1, 0x1a, 0x9d, 0xfa, 0xc9, 0x70, 0x19, 0x6a, 0x56, 0x7c, 0x63, 0x08, 0xc3, 0x48, 0xe5, 0x17, 0x4b, 0x38, 0x77, 0x95, 0x04, 0x6d, 0x59, 0x0a, 0x47, 0x49, 0x1f, 0xd7, 0x1d, 0x97, 0xae, 0xaa, 0x78, 0xc1, 0x61, 0x59, 0x71, 0xb8, 0x34, 0x90, 0xe8, 0x59, 0x28, 0x20, 0xf9, 0x59, 0x2a, 0xc7, 0x62, 0x69, 0xb9, 0xd2, 0xba, 0x70, 0x29, 0x01, };
12766 static const ec_test_case ed25519_555_test_case = {
12767 	.name = "EDDSA25519-SHA512/wei25519 555",
12768 	.ec_str_p = &wei25519_str_params,
12769 	.priv_key = ed25519_555_test_vectors_priv_key,
12770 	.priv_key_len = sizeof(ed25519_555_test_vectors_priv_key),
12771 	.nn_random = NULL,
12772 	.hash_type = SHA512,
12773 	.msg = (const char *)ed25519_555_test_vectors_message,
12774 	.msglen = sizeof(ed25519_555_test_vectors_message),
12775 	.sig_type = EDDSA25519,
12776 	.exp_sig = ed25519_555_test_vectors_expected_sig,
12777 	.exp_siglen = sizeof(ed25519_555_test_vectors_expected_sig),
12778 	.adata = NULL,
12779 	.adata_len = 0
12780 };
12781 
12782 /************************************************/
12783 static const u8 ed25519_556_test_vectors_priv_key[] = {
12784 	0x07, 0x4d, 0x92, 0x18, 0xc1, 0x21, 0x7e, 0x75, 0x82, 0x3c, 0x90, 0xe0, 0x10, 0x48, 0x4c, 0x2a, 0xdb, 0x88, 0xec, 0xcc, 0xd2, 0xbd, 0xf0, 0x12, 0x0a, 0xa3, 0xed, 0xff, 0xcf, 0xcb, 0xd4, 0xbf, };
12785 static const u8 ed25519_556_test_vectors_message[] = {
12786 	0x6b, 0x5a, 0xa4, 0x0e, 0x91, 0x67, 0xbf, 0xdb, 0x84, 0x7d, 0xaa, 0x7d, 0x27, 0x86, 0xe2, 0x8e, 0x75, 0x33, 0xe1, 0xd6, 0xac, 0x53, 0xbe, 0xb6, 0xf6, 0x9b, 0x59, 0x53, 0x79, 0x5a, 0x2b, 0xf5, 0x9b, 0xbf, 0x7d, 0x14, 0x19, 0x26, 0x96, 0x8f, 0x50, 0x96, 0x9b, 0xad, 0x74, 0x2a, 0x4f, 0xb5, 0x79, 0xd3, 0x25, 0x0f, 0xb1, 0xbe, 0x4c, 0x57, 0xeb, 0xf4, 0xf9, 0x11, 0x2c, 0x70, 0xcd, 0x9f, 0x72, 0xa0, 0x0d, 0xb1, 0xc8, 0x89, 0x6f, 0xe2, 0xb5, 0xbd, 0xa7, 0xc7, 0x03, 0x0f, 0x49, 0x7c, 0x0b, 0x00, 0x1e, 0xa2, 0x5b, 0xa0, 0xd4, 0x47, 0xf0, 0x8c, 0x36, 0xdb, 0x8b, 0x90, 0x7c, 0x2f, 0x2a, 0xbb, 0xbb, 0x62, 0x0d, 0x3e, 0x8a, 0x2c, 0x66, 0xe4, 0x17, 0x12, 0x85, 0xad, 0xca, 0xad, 0xd1, 0xc1, 0x4f, 0xe2, 0x39, 0xbc, 0x59, 0x5f, 0x09, 0x83, 0x96, 0xaa, 0x87, 0x80, 0xff, 0xb8, 0x0f, 0xe1, 0x44, 0x6a, 0x07, 0x00, 0x1e, 0xc2, 0x34, 0xd8, 0x2a, 0xbd, 0xcd, 0x81, 0x00, 0x79, 0x39, 0x15, 0xb0, 0xb3, 0xf8, 0x0d, 0x84, 0xe2, 0x0e, 0x51, 0xea, 0xbc, 0x79, 0x78, 0x06, 0xf3, 0xbe, 0x81, 0x08, 0xa4, 0xf4, 0x37, 0x55, 0x0b, 0x06, 0x69, 0x40, 0x50, 0xa8, 0x29, 0x31, 0xac, 0x40, 0xc0, 0xa4, 0x89, 0x77, 0xed, 0xf6, 0xce, 0xd2, 0x42, 0x8d, 0x7c, 0xfe, 0xa8, 0x20, 0x55, 0x06, 0xde, 0x86, 0x40, 0x80, 0x65, 0xd1, 0xa1, 0x98, 0x70, 0xfa, 0x33, 0xa7, 0x08, 0x10, 0x37, 0xb3, 0xee, 0x44, 0x91, 0xb6, 0xe7, 0xf3, 0xd1, 0x0b, 0x14, 0xa3, 0x0c, 0x20, 0x91, 0x59, 0xa1, 0xc8, 0x12, 0x31, 0xa3, 0x5f, 0x03, 0x65, 0xb4, 0x7d, 0x3e, 0x0d, 0xa0, 0x4a, 0x32, 0xc9, 0x5d, 0x98, 0x33, 0x3c, 0x44, 0xf5, 0x72, 0xcd, 0xaa, 0xa9, 0x05, 0xd0, 0x69, 0x19, 0x7f, 0x6e, 0x86, 0x1b, 0x5d, 0xfc, 0xdf, 0xb9, 0xdb, 0x6c, 0x7b, 0x0d, 0x0c, 0xb0, 0x0f, 0x37, 0xc9, 0x16, 0xa1, 0xc4, 0xc0, 0xb8, 0x98, 0x5b, 0x09, 0xf3, 0x34, 0x09, 0x5e, 0x12, 0x83, 0xed, 0xfd, 0xd4, 0xe6, 0x2a, 0x29, 0x41, 0x09, 0x9a, 0x2b, 0x69, 0x36, 0x96, 0x60, 0x4d, 0x99, 0x43, 0x11, 0xe3, 0xd5, 0xf6, 0x10, 0x66, 0x83, 0xe1, 0xd7, 0xa1, 0xc7, 0xe5, 0x3d, 0xf7, 0xb7, 0x90, 0x94, 0x7a, 0x9a, 0x80, 0x1a, 0x0c, 0xcd, 0x48, 0x43, 0x95, 0xf6, 0xcb, 0xfd, 0x9c, 0xa4, 0xd9, 0x80, 0x4f, 0x18, 0xd5, 0x2b, 0xb0, 0xf9, 0x46, 0xd1, 0xa8, 0x9f, 0x97, 0xa6, 0xfb, 0x06, 0x80, 0xa8, 0xc4, 0xc0, 0x57, 0xb6, 0x06, 0x2b, 0x2b, 0x9d, 0xe7, 0xc0, 0x37, 0x48, 0x79, 0xb8, 0xa6, 0xa6, 0xd2, 0xc1, 0x0a, 0xef, 0x78, 0x05, 0x08, 0xeb, 0x28, 0xbb, 0x56, 0x9a, 0x08, 0x35, 0x09, 0x44, 0xc8, 0x2f, 0x6e, 0xf2, 0x8d, 0xb2, 0x30, 0x4d, 0xb6, 0x97, 0xc3, 0xae, 0x1a, 0xf4, 0x3a, 0x50, 0x0b, 0x0b, 0x97, 0x48, 0x03, 0xe9, 0xf4, 0x6e, 0xa2, 0xa0, 0x2e, 0x85, 0xed, 0x27, 0xdd, 0xa6, 0x16, 0xd2, 0x4d, 0x6d, 0xb3, 0xcc, 0x4f, 0x5a, 0xed, 0x82, 0x40, 0xb1, 0xae, 0xa3, 0xdc, 0xf6, 0x9d, 0xee, 0x5f, 0x14, 0xf9, 0x5e, 0x6e, 0x72, 0x98, 0x7b, 0xbe, 0x61, 0x89, 0xbc, 0x20, 0x45, 0xf0, 0xd7, 0x83, 0xa7, 0xb4, 0x7b, 0xfc, 0x19, 0x83, 0x0b, 0xc7, 0xf4, 0xe7, 0x98, 0xab, 0xe9, 0x02, 0x45, 0xfb, 0xd4, 0x3f, 0x37, 0xc3, 0xf0, 0x36, 0xd1, 0xcb, 0xf1, 0xe7, 0x3d, 0xcb, 0x1d, 0x9d, 0xaa, 0x87, 0x37, 0x9b, 0x11, 0x06, 0x97, 0x34, 0x81, 0xa2, 0x15, 0xc1, 0xf4, 0xf4, 0x6c, 0x16, 0x03, 0xa5, 0xd5, 0xcd, 0x97, 0xb7, 0x07, 0x6f, 0x1f, 0x5d, 0xc7, 0x89, 0xaa, 0x6a, 0x71, 0xe7, 0x2e, 0xf5, 0x4e, 0xd3, 0x28, 0xa4, 0xab, 0x64, 0x34, 0x05, 0x39, 0xff, 0xd1, 0x64, 0xd0, 0xec, 0x64, 0x5f, 0x32, 0x2d, 0x1b, 0xc3, 0x71, 0x12, 0xdc, 0x08, 0xd8, 0xc8, 0x07, 0x9d, 0x19, 0xd3, 0x7a, 0xbb, 0x23, 0x53, 0xf4, 0x8b, 0x5c, 0x49, 0x2f, 0x80, 0x6e, 0xd2, };
12787 static const u8 ed25519_556_test_vectors_expected_sig[] = {
12788 	0xb1, 0xf7, 0x1c, 0x3b, 0xd1, 0xb6, 0xbe, 0xc4, 0x33, 0x37, 0xe2, 0x6d, 0xee, 0x65, 0x5a, 0x8d, 0x5f, 0x4a, 0x8d, 0xad, 0x84, 0xa5, 0x11, 0x84, 0xb7, 0x75, 0xb6, 0x86, 0xfa, 0xd3, 0x1d, 0x80, 0x29, 0xe3, 0x87, 0x69, 0x27, 0xf9, 0x57, 0x6e, 0x90, 0xc3, 0x62, 0x48, 0x75, 0xfc, 0x00, 0x29, 0xa5, 0xc1, 0x0a, 0x8a, 0x0a, 0xf7, 0x5d, 0x7a, 0x88, 0x0c, 0x68, 0x44, 0xa4, 0xa8, 0x3a, 0x00, };
12789 static const ec_test_case ed25519_556_test_case = {
12790 	.name = "EDDSA25519-SHA512/wei25519 556",
12791 	.ec_str_p = &wei25519_str_params,
12792 	.priv_key = ed25519_556_test_vectors_priv_key,
12793 	.priv_key_len = sizeof(ed25519_556_test_vectors_priv_key),
12794 	.nn_random = NULL,
12795 	.hash_type = SHA512,
12796 	.msg = (const char *)ed25519_556_test_vectors_message,
12797 	.msglen = sizeof(ed25519_556_test_vectors_message),
12798 	.sig_type = EDDSA25519,
12799 	.exp_sig = ed25519_556_test_vectors_expected_sig,
12800 	.exp_siglen = sizeof(ed25519_556_test_vectors_expected_sig),
12801 	.adata = NULL,
12802 	.adata_len = 0
12803 };
12804 
12805 /************************************************/
12806 static const u8 ed25519_557_test_vectors_priv_key[] = {
12807 	0xd2, 0xea, 0x2d, 0xff, 0x7a, 0xf0, 0xba, 0x2a, 0x6b, 0xed, 0x7f, 0x6c, 0xc6, 0x8c, 0x0d, 0xf6, 0x64, 0xa6, 0xb1, 0x0c, 0xe8, 0x01, 0xc4, 0x2e, 0xd5, 0xbb, 0xe6, 0x17, 0xbc, 0xc8, 0xb8, 0x4a, };
12808 static const u8 ed25519_557_test_vectors_message[] = {
12809 	0x03, 0xab, 0x5d, 0xae, 0xbc, 0x6e, 0x70, 0xd3, 0x52, 0x97, 0x79, 0x32, 0xa0, 0x31, 0x07, 0x87, 0x9b, 0xd5, 0x5d, 0xaf, 0xd0, 0xc6, 0xba, 0x7a, 0xd9, 0x69, 0x7a, 0x17, 0xb1, 0x27, 0xb3, 0xa7, 0x4a, 0x3e, 0xae, 0xba, 0xbd, 0x0f, 0x8e, 0xee, 0xbf, 0xc0, 0x48, 0x3d, 0x63, 0xfe, 0xdd, 0xe5, 0x2d, 0xeb, 0x46, 0xa3, 0x75, 0x24, 0x49, 0xc9, 0xc4, 0x49, 0x5c, 0x51, 0xa1, 0xc9, 0x1f, 0x57, 0xe3, 0xad, 0x2e, 0x6d, 0x01, 0xa1, 0x3d, 0x0c, 0x47, 0x0c, 0x52, 0x91, 0xb8, 0xe9, 0x12, 0x28, 0x83, 0x40, 0x97, 0x0f, 0xbb, 0x85, 0x78, 0x7b, 0x8b, 0x37, 0x6d, 0x72, 0x17, 0x52, 0x50, 0xe8, 0xcd, 0x90, 0xc0, 0x78, 0x88, 0xbf, 0xef, 0x5e, 0xbf, 0x50, 0x86, 0xc8, 0xff, 0x2a, 0xbc, 0xdd, 0x12, 0xd2, 0x14, 0xb9, 0xc4, 0x5d, 0x12, 0x08, 0x73, 0xb4, 0x60, 0x2e, 0x57, 0xa6, 0xaa, 0xb0, 0xb8, 0x28, 0xd1, 0x08, 0x4d, 0xff, 0xaa, 0x36, 0x51, 0xee, 0x35, 0x66, 0x26, 0x95, 0xb7, 0xf3, 0x43, 0x3f, 0x4a, 0xb5, 0x30, 0xc2, 0x9a, 0xc6, 0xcc, 0x5b, 0xb4, 0x3e, 0xcc, 0xd1, 0xb6, 0x89, 0x8b, 0x9e, 0xf7, 0xae, 0xc6, 0xd5, 0xae, 0xc6, 0x8d, 0x5c, 0x11, 0x14, 0xbb, 0x5d, 0xf7, 0x82, 0x09, 0x66, 0x59, 0x4c, 0x99, 0x4d, 0x64, 0x08, 0x91, 0xb8, 0xf2, 0xdc, 0x5d, 0x25, 0x63, 0x8d, 0xe4, 0x35, 0x49, 0xd8, 0x6d, 0x34, 0x30, 0x6f, 0xf3, 0xf5, 0x74, 0x57, 0x51, 0x16, 0x40, 0x5b, 0x9e, 0x8e, 0x28, 0x6e, 0xe0, 0xcd, 0x97, 0x8a, 0x76, 0x00, 0x2c, 0x44, 0x35, 0xfe, 0xaa, 0xc6, 0xe8, 0x4e, 0xae, 0x16, 0x54, 0xf3, 0x39, 0xa5, 0x67, 0xd8, 0xd0, 0x4f, 0xcf, 0xa3, 0xeb, 0x6a, 0x04, 0xb9, 0xad, 0xc6, 0x66, 0x02, 0x13, 0x00, 0xe9, 0xee, 0x59, 0x72, 0xb3, 0xdf, 0x5d, 0x4d, 0x0d, 0xd4, 0xbf, 0x79, 0x21, 0xdc, 0x98, 0xde, 0x82, 0xce, 0xf2, 0xd1, 0xb1, 0xd6, 0x1b, 0x79, 0x7f, 0xc9, 0x96, 0x8e, 0x11, 0x84, 0x84, 0xc4, 0x13, 0x42, 0x41, 0x6d, 0xdc, 0x6a, 0xdc, 0x4e, 0xe5, 0xd6, 0x87, 0xd9, 0x4a, 0x40, 0xce, 0x57, 0x2f, 0x42, 0xa2, 0x04, 0x86, 0x68, 0xc1, 0x75, 0xcf, 0x7b, 0x1f, 0x24, 0xc4, 0xef, 0xd0, 0x20, 0x55, 0x4f, 0xc6, 0xf6, 0x42, 0xe1, 0x4a, 0x57, 0xba, 0xec, 0x23, 0xe9, 0x5c, 0x25, 0x14, 0x30, 0x6d, 0x0a, 0x6d, 0x33, 0x64, 0x88, 0x41, 0x49, 0x7e, 0xac, 0x48, 0xea, 0xbd, 0x96, 0xd0, 0x47, 0x31, 0xba, 0xb0, 0x8b, 0xf5, 0xea, 0x9d, 0x43, 0xe0, 0xcf, 0x9a, 0x37, 0xfa, 0xaf, 0xa7, 0x32, 0x86, 0x9d, 0x68, 0xe7, 0xd5, 0xfe, 0x69, 0x54, 0xf8, 0xa3, 0x19, 0xef, 0x55, 0xda, 0x1e, 0x17, 0x8e, 0x43, 0xe8, 0x4a, 0x3b, 0x9a, 0xa3, 0xad, 0x00, 0xc2, 0x9b, 0x1d, 0x16, 0x11, 0x63, 0xdf, 0x4b, 0x79, 0xf2, 0x88, 0xe9, 0x39, 0x1d, 0x70, 0xa2, 0xf8, 0x81, 0x3d, 0x66, 0x62, 0x2e, 0x8a, 0xc3, 0x33, 0xfa, 0x6a, 0xa5, 0x31, 0x1e, 0xab, 0xec, 0x38, 0x3b, 0xa4, 0xcc, 0x12, 0x28, 0x15, 0xde, 0x00, 0x88, 0x77, 0xef, 0xbe, 0x6e, 0x12, 0xc3, 0x22, 0xc9, 0x75, 0x43, 0x4a, 0xfa, 0xd1, 0x73, 0xeb, 0xe2, 0x42, 0x03, 0xd9, 0x16, 0xd5, 0x75, 0x78, 0xbd, 0x2b, 0xca, 0xcc, 0x78, 0xf6, 0xe2, 0x56, 0x45, 0x13, 0xf8, 0xd1, 0x13, 0xa8, 0x33, 0xc2, 0xc2, 0x26, 0xeb, 0x97, 0xba, 0x2e, 0x23, 0x36, 0x1a, 0x5d, 0x02, 0x66, 0x4a, 0xb3, 0x77, 0xf9, 0x64, 0xc4, 0x30, 0x0b, 0xe2, 0xd7, 0x7b, 0x62, 0xd9, 0x24, 0x08, 0x23, 0xa0, 0x98, 0x84, 0xdf, 0x30, 0x7e, 0xff, 0x3b, 0xe5, 0x66, 0x4d, 0x72, 0xd1, 0x1a, 0xd5, 0x13, 0xe1, 0xbc, 0x56, 0x10, 0xdb, 0xfd, 0x10, 0x09, 0xdb, 0x39, 0xf0, 0xcb, 0xfe, 0x47, 0x05, 0x55, 0xec, 0x1b, 0x56, 0xb8, 0x71, 0x67, 0x07, 0x93, 0xd3, 0xb7, 0x04, 0xfb, 0x06, 0xee, 0x95, 0x0b, 0x1a, 0xd2, 0xa4, 0xd7, 0x29, 0x7c, 0xa5, 0x8b, 0xba, 0xd8, 0x10, 0xc3, 0xfa, 0xd4, };
12810 static const u8 ed25519_557_test_vectors_expected_sig[] = {
12811 	0x9a, 0xbd, 0xb9, 0xdd, 0x2a, 0xb7, 0x7b, 0x6f, 0x5e, 0x1b, 0x91, 0xba, 0x0b, 0x61, 0x3f, 0x5f, 0x36, 0x0e, 0xfb, 0x50, 0x0d, 0x3f, 0xe9, 0x92, 0x90, 0xef, 0x7c, 0xa1, 0x4b, 0xd2, 0xb3, 0x30, 0xf4, 0x05, 0xa4, 0xf7, 0xdc, 0xda, 0xef, 0x49, 0x23, 0xd3, 0x11, 0x1d, 0x40, 0xbf, 0x03, 0x20, 0x35, 0x33, 0x86, 0xf6, 0x34, 0xb4, 0x0d, 0xe6, 0xf0, 0x4d, 0xe9, 0x19, 0x0a, 0xd5, 0x1c, 0x08, };
12812 static const ec_test_case ed25519_557_test_case = {
12813 	.name = "EDDSA25519-SHA512/wei25519 557",
12814 	.ec_str_p = &wei25519_str_params,
12815 	.priv_key = ed25519_557_test_vectors_priv_key,
12816 	.priv_key_len = sizeof(ed25519_557_test_vectors_priv_key),
12817 	.nn_random = NULL,
12818 	.hash_type = SHA512,
12819 	.msg = (const char *)ed25519_557_test_vectors_message,
12820 	.msglen = sizeof(ed25519_557_test_vectors_message),
12821 	.sig_type = EDDSA25519,
12822 	.exp_sig = ed25519_557_test_vectors_expected_sig,
12823 	.exp_siglen = sizeof(ed25519_557_test_vectors_expected_sig),
12824 	.adata = NULL,
12825 	.adata_len = 0
12826 };
12827 
12828 /************************************************/
12829 static const u8 ed25519_558_test_vectors_priv_key[] = {
12830 	0x7a, 0x60, 0xcd, 0xf1, 0x87, 0x04, 0x60, 0xde, 0x8a, 0xe7, 0x78, 0x11, 0x76, 0xd5, 0x12, 0x7e, 0x71, 0x20, 0x7f, 0xaf, 0x2f, 0x21, 0x0b, 0xd4, 0xdc, 0x54, 0x73, 0x85, 0xb6, 0x67, 0xf2, 0xf2, };
12831 static const u8 ed25519_558_test_vectors_message[] = {
12832 	0x9d, 0xc0, 0x23, 0xa5, 0x25, 0xd0, 0x1b, 0xa3, 0x51, 0x37, 0x98, 0xb7, 0x38, 0xc7, 0x91, 0x62, 0x92, 0x6e, 0xbc, 0xcc, 0x0a, 0xdf, 0x1e, 0x57, 0xac, 0x47, 0xc2, 0x0d, 0xea, 0x6c, 0xe1, 0x37, 0x5c, 0x3d, 0x2a, 0xaa, 0x17, 0x33, 0xb7, 0xf0, 0xc3, 0xbd, 0x94, 0x5c, 0x33, 0x5f, 0xf3, 0x57, 0x61, 0x12, 0xbb, 0xdc, 0x10, 0xb6, 0x78, 0x3b, 0xa6, 0x54, 0xe8, 0xc6, 0x10, 0x47, 0xf2, 0x77, 0x3a, 0xa2, 0x29, 0xbf, 0x84, 0x69, 0x22, 0xa8, 0x9c, 0x6a, 0x73, 0xd5, 0xf1, 0x05, 0x1e, 0x8d, 0x96, 0xed, 0x36, 0xd7, 0xd6, 0x74, 0x7e, 0x06, 0x3a, 0x7a, 0xc6, 0x02, 0xf1, 0x9f, 0xc5, 0x2e, 0x02, 0x1a, 0x4b, 0xbc, 0x28, 0xb0, 0x35, 0x14, 0xfb, 0xd5, 0x1c, 0x7b, 0x3f, 0xd6, 0x59, 0xf1, 0x2d, 0x54, 0x7d, 0x05, 0x92, 0xdd, 0x09, 0xf8, 0x73, 0xc9, 0xec, 0xc6, 0x43, 0x9c, 0x7e, 0x93, 0x1a, 0xd0, 0xe4, 0x85, 0x6b, 0xe3, 0x1c, 0x60, 0x5d, 0xef, 0x2e, 0xd9, 0xb5, 0xd1, 0x3c, 0x59, 0x42, 0xb2, 0xf3, 0x25, 0x39, 0x7d, 0xac, 0x6c, 0x97, 0x60, 0xe9, 0xb1, 0xbb, 0x0c, 0x06, 0xf7, 0x13, 0xcb, 0x92, 0x0c, 0x23, 0x4b, 0xcc, 0xfe, 0xe9, 0xf0, 0xb8, 0x5d, 0xd0, 0x20, 0xf7, 0x98, 0x8f, 0x3b, 0xe1, 0xcc, 0x66, 0xe9, 0xe5, 0x1b, 0xab, 0xe2, 0xfe, 0xe2, 0x37, 0xeb, 0x84, 0xec, 0x7e, 0xff, 0x94, 0x09, 0xaa, 0x91, 0xc1, 0x94, 0xe3, 0x0d, 0xb1, 0xe0, 0x65, 0x01, 0x59, 0x55, 0xde, 0x97, 0x46, 0xbb, 0xa0, 0x3f, 0x7e, 0xdf, 0x9a, 0x58, 0x75, 0x12, 0x40, 0x9a, 0x41, 0x61, 0xfa, 0x77, 0xea, 0x62, 0xcc, 0xf4, 0x31, 0x60, 0x2d, 0xcd, 0xcf, 0x36, 0x5e, 0xd6, 0xbf, 0x0a, 0xed, 0xdd, 0x32, 0xf7, 0xc8, 0x44, 0xe3, 0xa3, 0x4d, 0x26, 0x6e, 0x28, 0x38, 0x2f, 0x40, 0x62, 0xfd, 0x4d, 0x6f, 0x82, 0x14, 0x25, 0x21, 0x04, 0xd6, 0x43, 0xa9, 0xbf, 0xd8, 0x07, 0x17, 0x16, 0x37, 0x1c, 0xcb, 0xb5, 0x4c, 0x8c, 0xc8, 0xdb, 0x79, 0xad, 0xd6, 0x5b, 0xcb, 0xce, 0xa0, 0xd0, 0x80, 0xd8, 0x40, 0x28, 0x03, 0xfe, 0x23, 0x2d, 0xf7, 0x0f, 0x76, 0x57, 0x72, 0x47, 0xa6, 0x3d, 0x55, 0x83, 0xbb, 0xd5, 0x64, 0x27, 0x67, 0xbc, 0x63, 0xf3, 0xc5, 0xa7, 0xbb, 0x3a, 0x47, 0xeb, 0x12, 0x98, 0x4e, 0x45, 0x41, 0xf4, 0x1f, 0xdb, 0x55, 0x86, 0x9a, 0x08, 0xfa, 0xde, 0x66, 0xc2, 0x0f, 0x69, 0xa5, 0xa9, 0xde, 0x25, 0xf6, 0xb3, 0x6b, 0xa1, 0x8a, 0xce, 0x5b, 0x4a, 0xc3, 0x36, 0xbb, 0x2a, 0x8e, 0xbf, 0x63, 0x0a, 0xd0, 0x3e, 0x8b, 0xb8, 0x73, 0x1d, 0x01, 0xe8, 0x4b, 0x91, 0xd0, 0x24, 0xd1, 0x17, 0x45, 0x9a, 0x74, 0x89, 0x2e, 0x93, 0xd5, 0x3b, 0x61, 0xe6, 0xb8, 0x06, 0x8e, 0x4f, 0x04, 0xb4, 0x18, 0x1f, 0x03, 0x87, 0xb4, 0x56, 0x7c, 0xcd, 0x45, 0xe1, 0xb8, 0x71, 0x8a, 0x2d, 0x7d, 0x78, 0x78, 0x72, 0xf3, 0xdc, 0xf8, 0x7a, 0x15, 0x93, 0x5a, 0xd7, 0xda, 0xaa, 0x74, 0x4e, 0xd6, 0x8a, 0x28, 0x66, 0x6a, 0x51, 0xa1, 0x0d, 0x39, 0xfc, 0x13, 0x9c, 0xdf, 0xe9, 0xa6, 0x87, 0x30, 0x76, 0xf7, 0xc4, 0x25, 0x00, 0x9c, 0x38, 0xfa, 0xee, 0x13, 0x5e, 0x51, 0x32, 0x07, 0xb0, 0x6e, 0x7b, 0xa3, 0x56, 0x85, 0xf5, 0x07, 0x2d, 0xa3, 0x4b, 0x60, 0x45, 0xb5, 0x7c, 0xd5, 0xd1, 0xb1, 0xa1, 0xfd, 0xf0, 0x17, 0xb8, 0xaa, 0x8e, 0xbd, 0x27, 0x52, 0x2b, 0xc9, 0x5e, 0x47, 0x90, 0x87, 0x34, 0xe4, 0x17, 0x22, 0xa7, 0x67, 0x90, 0x5c, 0x5e, 0xcc, 0x30, 0xc7, 0x24, 0x81, 0xb6, 0xc1, 0x2b, 0xf4, 0xac, 0xe9, 0x4d, 0x5b, 0xb3, 0xa3, 0x15, 0x56, 0x91, 0xb7, 0x07, 0x5b, 0x40, 0xeb, 0xf5, 0x96, 0x8f, 0xdd, 0x90, 0x3d, 0x8f, 0xd3, 0xcc, 0x50, 0xb8, 0xd6, 0x46, 0x48, 0x59, 0xb1, 0x0f, 0x75, 0x51, 0x32, 0xc6, 0xd9, 0xb6, 0xda, 0xd1, 0xd6, 0xf1, 0x4c, 0x41, 0x85, 0xb2, 0x64, 0xd3, 0x49, 0x7a, 0x4e, 0x54, 0x98, 0x77, 0xfe, 0x94, 0x6e, };
12833 static const u8 ed25519_558_test_vectors_expected_sig[] = {
12834 	0xb2, 0xe0, 0x81, 0x42, 0xbd, 0xd6, 0x2b, 0x78, 0x65, 0x92, 0xc0, 0x91, 0xf5, 0xfe, 0x6a, 0x9b, 0x7f, 0x30, 0xce, 0x13, 0x4c, 0x3b, 0x23, 0x6f, 0xbc, 0x6d, 0xfe, 0x67, 0x34, 0xf8, 0x82, 0x70, 0xac, 0x58, 0xf6, 0xd7, 0x4b, 0x4f, 0xd9, 0x9c, 0x22, 0x45, 0x1c, 0xa4, 0x65, 0xa4, 0x2c, 0x00, 0x6d, 0xb2, 0x5a, 0xf2, 0x15, 0xed, 0x24, 0x1a, 0xf1, 0x18, 0x96, 0x27, 0xc6, 0x05, 0x0f, 0x00, };
12835 static const ec_test_case ed25519_558_test_case = {
12836 	.name = "EDDSA25519-SHA512/wei25519 558",
12837 	.ec_str_p = &wei25519_str_params,
12838 	.priv_key = ed25519_558_test_vectors_priv_key,
12839 	.priv_key_len = sizeof(ed25519_558_test_vectors_priv_key),
12840 	.nn_random = NULL,
12841 	.hash_type = SHA512,
12842 	.msg = (const char *)ed25519_558_test_vectors_message,
12843 	.msglen = sizeof(ed25519_558_test_vectors_message),
12844 	.sig_type = EDDSA25519,
12845 	.exp_sig = ed25519_558_test_vectors_expected_sig,
12846 	.exp_siglen = sizeof(ed25519_558_test_vectors_expected_sig),
12847 	.adata = NULL,
12848 	.adata_len = 0
12849 };
12850 
12851 /************************************************/
12852 static const u8 ed25519_559_test_vectors_priv_key[] = {
12853 	0x33, 0x79, 0xd2, 0x5c, 0x11, 0x17, 0xcf, 0x80, 0x2e, 0xc7, 0x9c, 0x06, 0x57, 0x5d, 0x18, 0xe6, 0xbe, 0xce, 0x4c, 0x70, 0x93, 0xdd, 0x43, 0xfd, 0xee, 0x03, 0x68, 0x5c, 0x70, 0xb2, 0xfa, 0x9f, };
12854 static const u8 ed25519_559_test_vectors_message[] = {
12855 	0x7a, 0xcd, 0xb3, 0x9f, 0x12, 0x26, 0xbd, 0x3a, 0xbf, 0xfa, 0x50, 0x35, 0x0a, 0x14, 0x97, 0xd7, 0x61, 0xf8, 0xf0, 0xaa, 0xef, 0xbf, 0xbb, 0xbb, 0x92, 0x5f, 0xf5, 0x63, 0xe3, 0x89, 0x76, 0xaa, 0x17, 0x2d, 0x40, 0x7b, 0x61, 0xff, 0xdf, 0xb1, 0xcd, 0x53, 0x8a, 0x4c, 0xd0, 0x00, 0xb5, 0x78, 0x18, 0xa0, 0xbc, 0x92, 0xc0, 0xe0, 0xcd, 0x0a, 0x5a, 0xbf, 0xcf, 0x57, 0x83, 0x00, 0xf5, 0xf4, 0xe6, 0xce, 0xfa, 0x26, 0x72, 0x75, 0xd1, 0x78, 0x45, 0xda, 0x70, 0x66, 0xfd, 0x4e, 0x18, 0x01, 0x00, 0x27, 0x96, 0x0c, 0xd3, 0x95, 0xe6, 0x82, 0xad, 0x71, 0xaf, 0x34, 0x9b, 0xbd, 0xad, 0x5e, 0xba, 0xa0, 0xf1, 0x1a, 0x77, 0x61, 0xe1, 0x9e, 0xa1, 0xbe, 0xf6, 0x61, 0x07, 0x43, 0x16, 0x4b, 0x17, 0x14, 0x14, 0x53, 0xb4, 0x72, 0xae, 0x2c, 0x8f, 0x36, 0xce, 0x6b, 0x08, 0x0f, 0x1c, 0x07, 0x45, 0x35, 0x24, 0x54, 0xce, 0x5a, 0xea, 0xe1, 0x1c, 0x9d, 0x75, 0xde, 0x3c, 0x08, 0x00, 0x42, 0x65, 0xfc, 0x4c, 0xa8, 0x0d, 0x33, 0xb2, 0x6e, 0xae, 0x14, 0x00, 0xdf, 0xd8, 0x97, 0x7b, 0xf7, 0x23, 0xa6, 0x16, 0xda, 0xeb, 0x6d, 0x42, 0x19, 0x90, 0x10, 0xb7, 0x3e, 0x19, 0x3a, 0xb7, 0x2a, 0x58, 0xbd, 0xd2, 0x48, 0xa7, 0xf4, 0x11, 0x1c, 0xa5, 0x0c, 0x1d, 0xe6, 0x46, 0xbf, 0xea, 0x7b, 0x4d, 0x5b, 0xaf, 0x0f, 0x93, 0xdd, 0x97, 0x3e, 0xe9, 0x36, 0x49, 0xe2, 0x1e, 0xc0, 0xc6, 0xc4, 0xfc, 0xca, 0x8c, 0xd6, 0xff, 0x69, 0xdf, 0x76, 0x16, 0x12, 0x02, 0x1d, 0x85, 0xff, 0x1f, 0xb2, 0xa9, 0x53, 0x37, 0xda, 0x48, 0x05, 0xa7, 0x6d, 0x34, 0x7e, 0xe7, 0x1e, 0xf1, 0x9c, 0x0d, 0xff, 0xb5, 0x9f, 0x15, 0xf6, 0x50, 0x29, 0x3a, 0xbb, 0x97, 0x21, 0x05, 0x3f, 0x74, 0x06, 0x90, 0x5a, 0xe6, 0x83, 0xf9, 0x6c, 0x83, 0xa3, 0xa7, 0x44, 0x7b, 0x1a, 0xfb, 0x14, 0xe1, 0x20, 0x8c, 0x63, 0x9f, 0x37, 0xa9, 0x75, 0x0b, 0xa2, 0x1d, 0xa5, 0x55, 0x2c, 0xc2, 0x04, 0xea, 0xc4, 0x53, 0xca, 0x03, 0x62, 0x82, 0xf7, 0xe0, 0x96, 0x10, 0x93, 0xc3, 0x9e, 0xc1, 0x18, 0x13, 0x8d, 0xcf, 0x71, 0xcf, 0x2d, 0x28, 0xfb, 0x96, 0xa2, 0x49, 0x62, 0xb5, 0x2d, 0x33, 0x93, 0xf8, 0x80, 0x65, 0x3b, 0xcb, 0xa2, 0xc9, 0xb9, 0xd5, 0x7b, 0x77, 0xc5, 0x22, 0xf4, 0x21, 0xfc, 0xf5, 0xad, 0x75, 0xfb, 0xa9, 0xcf, 0x33, 0x89, 0xb1, 0x23, 0xaa, 0x97, 0x52, 0x17, 0x13, 0xff, 0xf8, 0x84, 0x67, 0xde, 0xb8, 0xc8, 0x99, 0x1d, 0x4b, 0x57, 0xc1, 0x43, 0x81, 0x70, 0x53, 0x7c, 0xb5, 0x0c, 0xdc, 0xc6, 0x57, 0xe5, 0x0e, 0x5c, 0x48, 0x0e, 0x12, 0xc0, 0xd4, 0x49, 0x39, 0xb6, 0x39, 0x99, 0x44, 0xe7, 0xc7, 0x1e, 0x18, 0x6c, 0x2a, 0xbb, 0x81, 0xfc, 0x57, 0x34, 0x88, 0x36, 0xd5, 0xe5, 0x7b, 0x72, 0xb2, 0x24, 0xa6, 0xb7, 0x1b, 0x6c, 0xaf, 0x72, 0x1a, 0xca, 0x73, 0x47, 0x8c, 0xb6, 0xcf, 0x5f, 0xb8, 0x90, 0x71, 0xae, 0x3a, 0x39, 0x82, 0x02, 0xdb, 0xb3, 0x8c, 0x30, 0x81, 0x25, 0x63, 0xbb, 0x9a, 0x23, 0x40, 0x66, 0x57, 0xa9, 0x56, 0xd3, 0x05, 0xa3, 0x44, 0x9a, 0x60, 0xcc, 0x86, 0x41, 0xb6, 0x21, 0x75, 0xa7, 0x17, 0x0c, 0x23, 0xbd, 0x5a, 0x25, 0xf0, 0xf1, 0x2e, 0x15, 0xa7, 0xed, 0x91, 0xfa, 0xda, 0x6a, 0x4a, 0x2f, 0x0e, 0x7b, 0x15, 0x5a, 0x3d, 0x64, 0x85, 0xec, 0x03, 0xce, 0x6e, 0x34, 0xdf, 0x7e, 0x21, 0x62, 0x40, 0xbb, 0x28, 0xa2, 0xdd, 0x73, 0x2f, 0xf7, 0x90, 0xd2, 0x28, 0x6e, 0x20, 0x0b, 0x33, 0xc2, 0x9a, 0x31, 0xa5, 0xe1, 0x9a, 0xd2, 0xcd, 0x02, 0x97, 0x4b, 0xad, 0xc4, 0xbc, 0x22, 0xde, 0xb7, 0x50, 0x4c, 0x15, 0x24, 0x1f, 0xc1, 0x06, 0x0c, 0x8a, 0xce, 0xf4, 0xfb, 0xb2, 0x5e, 0xc7, 0x60, 0x2f, 0xce, 0x36, 0xa2, 0x7b, 0xb8, 0x7b, 0x6e, 0x64, 0x23, 0xe6, 0xb4, 0xf6, 0xe3, 0x6f, 0xc7, 0x6d, 0x12, 0x5d, 0xe6, 0xbe, 0x7a, 0xef, 0x5a, };
12856 static const u8 ed25519_559_test_vectors_expected_sig[] = {
12857 	0x4c, 0x36, 0xbf, 0xc8, 0x1e, 0xef, 0x00, 0xb9, 0xcb, 0x3a, 0xb5, 0x14, 0xc6, 0xd4, 0x51, 0xb9, 0x93, 0x36, 0x1e, 0x09, 0xa4, 0xbe, 0x4b, 0x50, 0x40, 0x92, 0x6f, 0xeb, 0x0e, 0x0d, 0x9b, 0x52, 0xf0, 0x3d, 0xe4, 0x68, 0xe7, 0xba, 0xd8, 0x3f, 0x37, 0x91, 0x54, 0xbf, 0x2c, 0x43, 0x7a, 0x71, 0xf7, 0x54, 0xf3, 0xf4, 0x07, 0x98, 0xee, 0xeb, 0xd6, 0x2e, 0x55, 0xf2, 0xbe, 0x77, 0x14, 0x03, };
12858 static const ec_test_case ed25519_559_test_case = {
12859 	.name = "EDDSA25519-SHA512/wei25519 559",
12860 	.ec_str_p = &wei25519_str_params,
12861 	.priv_key = ed25519_559_test_vectors_priv_key,
12862 	.priv_key_len = sizeof(ed25519_559_test_vectors_priv_key),
12863 	.nn_random = NULL,
12864 	.hash_type = SHA512,
12865 	.msg = (const char *)ed25519_559_test_vectors_message,
12866 	.msglen = sizeof(ed25519_559_test_vectors_message),
12867 	.sig_type = EDDSA25519,
12868 	.exp_sig = ed25519_559_test_vectors_expected_sig,
12869 	.exp_siglen = sizeof(ed25519_559_test_vectors_expected_sig),
12870 	.adata = NULL,
12871 	.adata_len = 0
12872 };
12873 
12874 /************************************************/
12875 static const u8 ed25519_560_test_vectors_priv_key[] = {
12876 	0xef, 0x38, 0xc3, 0xfc, 0x74, 0xf0, 0x54, 0xae, 0x43, 0xe8, 0xd2, 0x9d, 0x6b, 0xa6, 0xdc, 0x80, 0xb5, 0xaf, 0x84, 0x82, 0x70, 0xd4, 0xaf, 0x58, 0x84, 0x4d, 0x24, 0xbc, 0xf9, 0x87, 0x41, 0x4e, };
12877 static const u8 ed25519_560_test_vectors_message[] = {
12878 	0xbf, 0x29, 0x0d, 0xb3, 0xdd, 0xa8, 0x76, 0x39, 0x37, 0xae, 0x4c, 0x83, 0x74, 0x67, 0x05, 0x32, 0x72, 0x95, 0xc2, 0xc2, 0x48, 0x06, 0x8f, 0x5a, 0xb8, 0x5c, 0x8b, 0x5d, 0x75, 0x6f, 0x4e, 0x3e, 0x34, 0x06, 0x2b, 0x55, 0x49, 0x38, 0x72, 0x61, 0x47, 0x6b, 0xcb, 0xd1, 0xe7, 0x33, 0x19, 0x90, 0xf1, 0x19, 0x10, 0xd1, 0x1f, 0x94, 0x60, 0x7c, 0x2b, 0x71, 0xf6, 0x5b, 0x77, 0x1a, 0xac, 0xab, 0xdc, 0x10, 0xf4, 0x2a, 0xe9, 0x18, 0xdd, 0x25, 0x94, 0xac, 0x71, 0x05, 0x1c, 0x85, 0xb3, 0x30, 0x77, 0x9c, 0x47, 0xaf, 0x00, 0xa5, 0xb9, 0x81, 0x91, 0xb5, 0x6c, 0xbc, 0xf7, 0xef, 0xe4, 0x1a, 0x27, 0xe8, 0x7c, 0x67, 0x71, 0x68, 0xc8, 0xab, 0xe9, 0x49, 0x6e, 0xb2, 0xe7, 0xab, 0xbd, 0x0b, 0x16, 0x04, 0x28, 0x6e, 0xd1, 0xa1, 0xb1, 0x8d, 0x26, 0x4d, 0x73, 0x3d, 0xe8, 0x7d, 0x0d, 0x3f, 0x80, 0x55, 0x52, 0x8c, 0x4d, 0x42, 0x6d, 0x7f, 0x8e, 0x6e, 0xd0, 0x24, 0xa7, 0x41, 0x40, 0xab, 0xd3, 0x54, 0x00, 0x79, 0x62, 0xa2, 0xa9, 0x7a, 0x5c, 0x2f, 0xf9, 0x76, 0x54, 0x6a, 0x8d, 0x1a, 0xc4, 0x92, 0x4c, 0x09, 0x22, 0x3d, 0x34, 0x8d, 0xdc, 0xd8, 0x71, 0x0a, 0x37, 0x99, 0xf9, 0x1b, 0xb8, 0x70, 0xb3, 0xf4, 0x6d, 0x51, 0xf1, 0xe7, 0xf6, 0x89, 0x2d, 0x6b, 0x08, 0xb9, 0x91, 0x74, 0x8a, 0x03, 0x7a, 0x86, 0x7e, 0xcc, 0x39, 0xee, 0x8d, 0x64, 0x62, 0xa7, 0x61, 0x44, 0x88, 0xed, 0xd3, 0xc2, 0xba, 0x61, 0x5c, 0xa2, 0xe3, 0x78, 0x54, 0x88, 0x94, 0x41, 0xb1, 0x3d, 0xc8, 0x35, 0xc3, 0x6b, 0x38, 0x65, 0x3f, 0x65, 0x98, 0x61, 0x6f, 0x35, 0x78, 0x3e, 0x2e, 0x15, 0x83, 0x84, 0xbb, 0x93, 0x1c, 0x90, 0x1b, 0x70, 0x3a, 0xcb, 0x39, 0x91, 0xfb, 0x7a, 0xa5, 0xba, 0x69, 0xd9, 0xa5, 0xbd, 0x05, 0x70, 0x24, 0x29, 0x61, 0xa7, 0x1a, 0x52, 0x47, 0x03, 0x15, 0xe9, 0x82, 0xe3, 0x41, 0xa6, 0x1c, 0x64, 0xa6, 0x19, 0xbd, 0x16, 0xfe, 0x81, 0x19, 0xaa, 0xe0, 0xd7, 0x50, 0x3c, 0xe7, 0xd7, 0xe9, 0x26, 0x14, 0x6b, 0x91, 0xc2, 0x89, 0x2f, 0x13, 0x16, 0x69, 0xd1, 0xe3, 0x9e, 0x5b, 0x75, 0xe9, 0xc7, 0x24, 0x52, 0x61, 0x80, 0x99, 0xa5, 0x7d, 0xc2, 0xee, 0x37, 0x7b, 0xe6, 0x58, 0x75, 0xee, 0x01, 0xbb, 0x88, 0xed, 0x52, 0x6f, 0xc3, 0x94, 0xe2, 0xf5, 0xc8, 0x12, 0x7a, 0x5f, 0x69, 0x12, 0x5e, 0x67, 0x38, 0x5e, 0xf9, 0x4b, 0x1f, 0x33, 0xad, 0x52, 0x62, 0x9d, 0x72, 0x0e, 0x31, 0xc0, 0x2a, 0xe0, 0xb5, 0x82, 0x33, 0x9f, 0xf0, 0xf0, 0xbb, 0x07, 0xff, 0x2b, 0x03, 0x0f, 0x48, 0xfa, 0x7b, 0x69, 0x27, 0x16, 0x50, 0x1a, 0xd7, 0x77, 0x3a, 0xd3, 0x15, 0x12, 0x04, 0xa2, 0xa5, 0x40, 0xfa, 0x94, 0x36, 0xbd, 0xd4, 0x20, 0x2a, 0x15, 0x73, 0x09, 0xec, 0x36, 0xce, 0xcb, 0xe5, 0x8b, 0x33, 0xef, 0xf5, 0x57, 0xfd, 0x33, 0xe0, 0x3f, 0xd3, 0xeb, 0x19, 0x00, 0x9b, 0xd7, 0xa2, 0xde, 0xa9, 0xef, 0xee, 0xf8, 0x78, 0x55, 0x67, 0xaa, 0xb2, 0xa4, 0xc9, 0x8b, 0xd1, 0xf2, 0xa8, 0x10, 0x11, 0xb3, 0x43, 0xa9, 0xf2, 0x0c, 0x44, 0xc5, 0x77, 0xa4, 0x52, 0xfd, 0x54, 0xba, 0x21, 0x02, 0x9d, 0x47, 0x06, 0x81, 0x3b, 0x29, 0x87, 0xc7, 0x6b, 0xb2, 0x42, 0xab, 0x26, 0x20, 0x84, 0x3c, 0x22, 0x60, 0xb6, 0x69, 0xad, 0x35, 0x8e, 0xfe, 0xe7, 0xf9, 0x83, 0x0d, 0xc9, 0xc7, 0xd4, 0x78, 0xa2, 0xde, 0x4a, 0x2c, 0xf8, 0xc4, 0x3d, 0xa7, 0x70, 0xe2, 0x88, 0xe2, 0xed, 0xbb, 0x6d, 0x73, 0xbc, 0xf2, 0xec, 0xb0, 0x23, 0xde, 0x6b, 0x2d, 0xcc, 0x6b, 0x16, 0x6e, 0x87, 0xa3, 0x85, 0xeb, 0x0a, 0xdc, 0x30, 0x56, 0x65, 0xc5, 0xbf, 0xa5, 0x7f, 0x25, 0x0f, 0xe2, 0x23, 0xad, 0x7f, 0xf4, 0x51, 0x8d, 0xe3, 0x9c, 0x79, 0xe8, 0x7d, 0xc1, 0x01, 0xa9, 0xfa, 0xa6, 0x82, 0x1a, 0x74, 0x44, 0x2b, 0xfc, 0xfd, 0xf0, 0xa9, 0xe6, 0x3a, 0x50, 0x9e, 0x2a, 0x2e, 0x76, };
12879 static const u8 ed25519_560_test_vectors_expected_sig[] = {
12880 	0x1d, 0x3a, 0xc6, 0xb6, 0xbf, 0x18, 0xab, 0x53, 0x09, 0x14, 0x87, 0x99, 0x48, 0x5b, 0x27, 0x6d, 0x20, 0x40, 0x1c, 0x6a, 0xf5, 0xf9, 0xb2, 0xf6, 0x03, 0x23, 0x95, 0xa3, 0xc2, 0xf4, 0xb6, 0x73, 0xb7, 0x14, 0x0c, 0x07, 0xcc, 0x26, 0xf4, 0xfc, 0x56, 0xa5, 0xee, 0x00, 0xb0, 0x74, 0x6b, 0x2a, 0x80, 0xda, 0x6f, 0xda, 0xd1, 0x7e, 0xdd, 0x11, 0x49, 0x20, 0x10, 0x1d, 0x2c, 0x89, 0xc3, 0x0e, };
12881 static const ec_test_case ed25519_560_test_case = {
12882 	.name = "EDDSA25519-SHA512/wei25519 560",
12883 	.ec_str_p = &wei25519_str_params,
12884 	.priv_key = ed25519_560_test_vectors_priv_key,
12885 	.priv_key_len = sizeof(ed25519_560_test_vectors_priv_key),
12886 	.nn_random = NULL,
12887 	.hash_type = SHA512,
12888 	.msg = (const char *)ed25519_560_test_vectors_message,
12889 	.msglen = sizeof(ed25519_560_test_vectors_message),
12890 	.sig_type = EDDSA25519,
12891 	.exp_sig = ed25519_560_test_vectors_expected_sig,
12892 	.exp_siglen = sizeof(ed25519_560_test_vectors_expected_sig),
12893 	.adata = NULL,
12894 	.adata_len = 0
12895 };
12896 
12897 /************************************************/
12898 static const u8 ed25519_561_test_vectors_priv_key[] = {
12899 	0x7e, 0x7b, 0x39, 0xaf, 0x69, 0x38, 0x0c, 0xf4, 0x46, 0x60, 0xe2, 0xc1, 0xff, 0x30, 0x83, 0x34, 0xe8, 0x25, 0x0f, 0xee, 0xb8, 0x8b, 0xe0, 0xd4, 0x3a, 0xab, 0xe5, 0xe6, 0x8b, 0x8e, 0xf1, 0x71, };
12900 static const u8 ed25519_561_test_vectors_message[] = {
12901 	0xd4, 0xa3, 0x97, 0x6d, 0xbf, 0x83, 0x20, 0x18, 0x56, 0x67, 0xb5, 0xa8, 0x23, 0x66, 0x40, 0xf2, 0xeb, 0xc9, 0xe4, 0x5e, 0x6d, 0x5f, 0x2a, 0x8d, 0x92, 0x99, 0x79, 0x27, 0xdd, 0x9b, 0xc5, 0xdb, 0x95, 0xf4, 0x46, 0x34, 0xbd, 0x65, 0x4e, 0xef, 0xec, 0xe1, 0x0d, 0x99, 0xd9, 0x2b, 0x46, 0x71, 0x57, 0x91, 0x64, 0x50, 0x04, 0xac, 0xcc, 0x6d, 0x14, 0x0f, 0x32, 0xa1, 0xc8, 0x72, 0xe5, 0x4a, 0xa9, 0xa7, 0x49, 0x3a, 0xf9, 0x45, 0x88, 0xb7, 0xbb, 0x40, 0x0d, 0x94, 0xd4, 0x58, 0xd4, 0x32, 0x92, 0x30, 0x7c, 0x5a, 0x1a, 0x38, 0x82, 0xa1, 0xc8, 0xa6, 0xa7, 0x8d, 0x9a, 0x94, 0x5f, 0x79, 0xd6, 0x4b, 0x32, 0x94, 0xa2, 0x8c, 0x3d, 0x59, 0xd8, 0x20, 0x22, 0xb0, 0x09, 0xcc, 0x4d, 0x2d, 0xa9, 0x3a, 0x16, 0xb0, 0x71, 0xc9, 0xab, 0x8e, 0xe9, 0xa3, 0x66, 0x3d, 0x72, 0xed, 0x34, 0x4f, 0x15, 0x1d, 0x68, 0xc6, 0x66, 0xa4, 0xb4, 0x96, 0x52, 0xd9, 0x7a, 0x46, 0xd1, 0x42, 0xa4, 0x74, 0x11, 0x27, 0xf3, 0xc5, 0x7f, 0x15, 0x51, 0xc4, 0x09, 0x76, 0xcd, 0x13, 0x81, 0xa8, 0x2a, 0xea, 0xe7, 0xbc, 0x5a, 0xdb, 0x39, 0x87, 0x20, 0xeb, 0x43, 0x3f, 0x08, 0x99, 0x48, 0x7e, 0xd2, 0x37, 0x84, 0x46, 0xb1, 0xa8, 0xdc, 0x6a, 0x33, 0xfc, 0xd4, 0x53, 0x7a, 0x05, 0xfb, 0x60, 0x3e, 0xc0, 0xa9, 0x0a, 0x27, 0x53, 0x23, 0x00, 0x24, 0x2b, 0x20, 0x00, 0x10, 0x86, 0x21, 0xb6, 0x5a, 0xb0, 0x00, 0xbc, 0x06, 0x38, 0x15, 0x30, 0xf6, 0x90, 0xd7, 0xe5, 0x6f, 0x81, 0x60, 0x4d, 0xac, 0xff, 0x19, 0x10, 0x71, 0x50, 0x40, 0x41, 0x0a, 0xa1, 0xf9, 0x44, 0xc9, 0x2d, 0xd9, 0xbb, 0xaa, 0x5b, 0xd0, 0x8e, 0xa0, 0x0c, 0x84, 0x42, 0xdf, 0x94, 0xf0, 0x85, 0xeb, 0x3d, 0xe9, 0x73, 0x35, 0xb6, 0x00, 0x5e, 0x6f, 0x84, 0xf8, 0x23, 0xd4, 0x34, 0x70, 0xab, 0x1c, 0x67, 0xda, 0x12, 0xad, 0x44, 0x99, 0x36, 0xc6, 0xb5, 0x5f, 0x9f, 0xfd, 0x20, 0x3d, 0xfd, 0x6e, 0x3f, 0x33, 0x30, 0x9e, 0x8a, 0x99, 0x45, 0xa5, 0x93, 0x20, 0xe6, 0x67, 0x34, 0xc7, 0x9c, 0x48, 0x14, 0xdb, 0xa5, 0xa1, 0xc1, 0x40, 0x95, 0xc6, 0x29, 0x25, 0xa1, 0xe1, 0x73, 0x3e, 0xfd, 0x94, 0x81, 0x7a, 0x25, 0xef, 0x9e, 0x47, 0x9d, 0xd9, 0xcc, 0xde, 0x6c, 0xa8, 0xad, 0xb7, 0xa8, 0x05, 0x3c, 0x1b, 0x55, 0x13, 0x46, 0x97, 0x50, 0x4a, 0xf8, 0x05, 0x3d, 0x59, 0x5b, 0x84, 0x46, 0x40, 0xb6, 0x1e, 0x93, 0x16, 0x80, 0x75, 0x46, 0x84, 0x50, 0xeb, 0x5d, 0xe0, 0x35, 0x86, 0x97, 0xc1, 0x04, 0xaf, 0xa6, 0xa3, 0x79, 0x6a, 0x50, 0x9c, 0x26, 0xb4, 0xc2, 0x77, 0xc2, 0x3f, 0xff, 0x42, 0xdf, 0x14, 0x6d, 0xe5, 0x5e, 0x95, 0xd0, 0xd4, 0xb8, 0x0a, 0x7a, 0xa1, 0x77, 0xd9, 0x92, 0x27, 0xec, 0xb2, 0xa0, 0x59, 0x4d, 0xee, 0xde, 0xbb, 0x9c, 0xaf, 0xb1, 0xa4, 0x58, 0xac, 0xa8, 0x07, 0x2c, 0xc7, 0xd7, 0x7c, 0x71, 0x75, 0xf6, 0x10, 0xca, 0x30, 0x0e, 0xfd, 0x7a, 0xf9, 0x38, 0x83, 0x46, 0x49, 0x8c, 0x22, 0x99, 0x15, 0x64, 0x50, 0x0e, 0x0b, 0x0a, 0xa4, 0xd2, 0x94, 0x6f, 0x18, 0xe6, 0xf5, 0x37, 0x5a, 0x84, 0x82, 0x86, 0xf3, 0x69, 0x54, 0xc1, 0xca, 0x22, 0x68, 0x4c, 0x69, 0x28, 0xc2, 0xa2, 0x5c, 0x7f, 0xe2, 0x1a, 0xba, 0x4a, 0x71, 0x11, 0xd7, 0xe0, 0x5b, 0xc8, 0xd7, 0x0b, 0x3d, 0xcb, 0x4f, 0x6a, 0xae, 0xc0, 0x64, 0x84, 0x5e, 0xef, 0x55, 0x25, 0xf8, 0x50, 0x24, 0xc2, 0x57, 0x0f, 0x3b, 0x78, 0x69, 0x8c, 0x4b, 0xce, 0xc0, 0xd7, 0x1a, 0xad, 0x53, 0x78, 0xd8, 0x81, 0x9e, 0x1f, 0xac, 0x44, 0xee, 0x41, 0x63, 0x70, 0x21, 0x2d, 0xba, 0xaa, 0xe5, 0x4d, 0x2a, 0xf2, 0x93, 0x9b, 0x82, 0xcb, 0xaa, 0xe7, 0xf4, 0x2f, 0xf4, 0x85, 0xd4, 0x5b, 0x3a, 0xcc, 0x21, 0x09, 0x0f, 0x5b, 0xa4, 0x1e, 0xc0, 0xda, 0x30, 0x9e, 0x52, 0xef, 0x28, 0x38, 0xd1, 0xde, 0x47, 0x1e, 0x0b, 0x7c, 0xf9, 0x85, };
12902 static const u8 ed25519_561_test_vectors_expected_sig[] = {
12903 	0x10, 0x62, 0xa2, 0xdc, 0x9c, 0xd5, 0x37, 0x96, 0x75, 0xc0, 0x4f, 0x5e, 0x21, 0x33, 0x8d, 0xcf, 0xb7, 0x7d, 0xfb, 0xab, 0xce, 0xdd, 0x62, 0xb2, 0x60, 0x71, 0x00, 0xd7, 0x64, 0x9a, 0x05, 0xe8, 0x08, 0x71, 0xe9, 0x61, 0x23, 0x21, 0x4f, 0x80, 0xf4, 0xf7, 0x3b, 0x0d, 0x9b, 0x06, 0xe2, 0xd3, 0x1f, 0x56, 0x11, 0x9c, 0xea, 0x69, 0xda, 0x23, 0x47, 0xda, 0x84, 0xa2, 0x75, 0xb7, 0xb2, 0x07, };
12904 static const ec_test_case ed25519_561_test_case = {
12905 	.name = "EDDSA25519-SHA512/wei25519 561",
12906 	.ec_str_p = &wei25519_str_params,
12907 	.priv_key = ed25519_561_test_vectors_priv_key,
12908 	.priv_key_len = sizeof(ed25519_561_test_vectors_priv_key),
12909 	.nn_random = NULL,
12910 	.hash_type = SHA512,
12911 	.msg = (const char *)ed25519_561_test_vectors_message,
12912 	.msglen = sizeof(ed25519_561_test_vectors_message),
12913 	.sig_type = EDDSA25519,
12914 	.exp_sig = ed25519_561_test_vectors_expected_sig,
12915 	.exp_siglen = sizeof(ed25519_561_test_vectors_expected_sig),
12916 	.adata = NULL,
12917 	.adata_len = 0
12918 };
12919 
12920 /************************************************/
12921 static const u8 ed25519_562_test_vectors_priv_key[] = {
12922 	0xa9, 0x04, 0x8a, 0xf0, 0xc2, 0x0a, 0x12, 0x5f, 0x5d, 0x39, 0xc5, 0x0f, 0x22, 0xb8, 0x05, 0xae, 0x74, 0x2c, 0xf6, 0x4f, 0x1f, 0xe8, 0xdf, 0xbe, 0x8d, 0xfd, 0xaa, 0x51, 0x1a, 0xaa, 0x57, 0x6f, };
12923 static const u8 ed25519_562_test_vectors_message[] = {
12924 	0x8e, 0xef, 0x2d, 0x9f, 0x5d, 0x59, 0x70, 0x99, 0x59, 0xc9, 0x24, 0xf8, 0x7c, 0x22, 0x78, 0x97, 0x67, 0x39, 0x3a, 0x15, 0x5d, 0x5c, 0x87, 0xde, 0x48, 0x8c, 0xef, 0x50, 0xb7, 0xbf, 0x7d, 0xa8, 0x70, 0xe3, 0xad, 0xc3, 0x00, 0xae, 0xe6, 0x60, 0x3b, 0x2e, 0xf0, 0x87, 0x64, 0xd9, 0x9d, 0x9e, 0x77, 0x51, 0xe5, 0xdc, 0xe9, 0x2a, 0xaa, 0x71, 0xaa, 0x18, 0xa6, 0x9c, 0xc8, 0x23, 0x13, 0x4e, 0x85, 0x52, 0xd9, 0x59, 0xa0, 0xdb, 0xb4, 0x11, 0x17, 0xe0, 0xa5, 0x93, 0xc3, 0x18, 0x33, 0xb6, 0xec, 0x21, 0x72, 0xdd, 0xaf, 0xaf, 0x78, 0x48, 0xdd, 0xd1, 0x8d, 0x28, 0xd0, 0xd4, 0xed, 0x33, 0x23, 0x7e, 0xc8, 0x04, 0xf6, 0x59, 0x38, 0xae, 0xd8, 0xe8, 0xa3, 0x28, 0x0d, 0x42, 0xe3, 0x53, 0xd0, 0x1b, 0xe0, 0x18, 0x7b, 0x13, 0x01, 0xf8, 0x3d, 0x89, 0x84, 0x90, 0x67, 0xb0, 0x4a, 0x90, 0x31, 0xf7, 0xe0, 0xf3, 0x3e, 0x34, 0x16, 0x24, 0x0c, 0x53, 0xd9, 0x26, 0x5e, 0xd0, 0x66, 0x39, 0x59, 0x97, 0x1f, 0x41, 0x7c, 0xb5, 0xf2, 0x10, 0xcd, 0xc5, 0xae, 0xbc, 0xb5, 0xe1, 0xdb, 0x7d, 0xfb, 0x82, 0xdf, 0x43, 0x58, 0x76, 0xa6, 0xe9, 0x8f, 0x41, 0x5b, 0x0d, 0xf8, 0x69, 0xf0, 0xd8, 0x85, 0x15, 0x35, 0x37, 0x56, 0x45, 0xee, 0xf7, 0x0f, 0xae, 0xc7, 0x44, 0xee, 0x0d, 0xc3, 0xac, 0xbc, 0xb0, 0x40, 0xf6, 0x8d, 0x50, 0x2c, 0x2c, 0x62, 0xc8, 0xdb, 0x45, 0xeb, 0xe5, 0x48, 0x54, 0xa4, 0xb3, 0x6f, 0x43, 0xfe, 0xb4, 0x9a, 0x6d, 0x1c, 0x2c, 0x2e, 0xa7, 0x99, 0x14, 0xa7, 0xc2, 0x3c, 0x60, 0xba, 0xaa, 0x67, 0xcb, 0x47, 0xb2, 0x17, 0x8e, 0x12, 0xdc, 0xe7, 0x6b, 0x00, 0x4c, 0x87, 0xb7, 0xb8, 0x34, 0x6e, 0xfa, 0xdf, 0x38, 0x0b, 0x9e, 0x1e, 0x41, 0xf6, 0x31, 0x48, 0xda, 0x51, 0x78, 0x1d, 0x75, 0xce, 0xc0, 0x40, 0xe4, 0x26, 0x88, 0x20, 0x21, 0x1f, 0x3c, 0x46, 0x25, 0x01, 0xd8, 0x08, 0x99, 0x89, 0x4e, 0x79, 0xd6, 0x18, 0xde, 0x42, 0x46, 0x1d, 0x78, 0x5a, 0xea, 0xce, 0x53, 0xae, 0x14, 0xb7, 0x9d, 0x33, 0x50, 0x1e, 0xd5, 0x62, 0x9b, 0xbd, 0xd0, 0x71, 0x28, 0x15, 0x6d, 0xb0, 0x72, 0x5f, 0x5b, 0x4b, 0xed, 0x59, 0x3a, 0x95, 0x29, 0x47, 0x83, 0x03, 0x84, 0xf6, 0x1d, 0xf0, 0x0e, 0xe0, 0xaa, 0x09, 0x90, 0x99, 0xc3, 0xcd, 0x97, 0x65, 0xa9, 0xc1, 0xc7, 0xe8, 0xa6, 0xa8, 0x34, 0x30, 0xb8, 0xd9, 0x86, 0x7c, 0x8e, 0x17, 0x92, 0x0a, 0xd0, 0xff, 0x64, 0xd8, 0xcd, 0x2f, 0xf5, 0xf1, 0x14, 0x38, 0x8c, 0xe6, 0xd4, 0x3e, 0xec, 0x17, 0x15, 0xd0, 0x35, 0xf0, 0x22, 0xfa, 0x97, 0x96, 0x9e, 0x1a, 0x5d, 0xd9, 0xf5, 0x8d, 0x89, 0x6b, 0x17, 0xc1, 0x22, 0x1c, 0x9e, 0x6c, 0x85, 0x55, 0x59, 0x72, 0x35, 0xee, 0xda, 0x6e, 0xc4, 0x1b, 0x0c, 0x11, 0x76, 0x12, 0xb0, 0x0c, 0x5f, 0x0e, 0xd1, 0x81, 0x6b, 0x05, 0x73, 0x63, 0x58, 0x27, 0x07, 0xa8, 0xaa, 0x0d, 0x98, 0xd4, 0xd4, 0xbe, 0x5e, 0x8f, 0xa3, 0x2d, 0x6c, 0x9d, 0x27, 0x82, 0x21, 0xef, 0x30, 0x67, 0xb8, 0xba, 0x15, 0x16, 0xd9, 0xe0, 0x51, 0xd2, 0xf6, 0x8b, 0x7d, 0x1b, 0x15, 0x1f, 0x74, 0xa3, 0x53, 0x4e, 0x78, 0x12, 0xc0, 0x51, 0xe5, 0xf2, 0xb6, 0x3b, 0x30, 0x35, 0xf8, 0xe5, 0x70, 0x3b, 0x5f, 0x68, 0xfd, 0x2d, 0x65, 0xbb, 0x75, 0x65, 0xe8, 0xaa, 0x67, 0xbf, 0xd2, 0xa1, 0x2c, 0xaf, 0x0b, 0xc5, 0x48, 0x11, 0x97, 0xa9, 0xff, 0x89, 0xd7, 0x7d, 0xf7, 0xa0, 0xe9, 0x65, 0x5e, 0xf0, 0x29, 0xb4, 0x3d, 0xd9, 0x06, 0xd0, 0xb8, 0x88, 0xe3, 0x13, 0xae, 0x9d, 0x1c, 0x7e, 0x93, 0x68, 0xa0, 0x13, 0x52, 0xd0, 0x0c, 0x66, 0x80, 0xdd, 0x0f, 0x1f, 0x57, 0x4a, 0x58, 0x77, 0x34, 0x8a, 0x7e, 0xa2, 0xc0, 0xb9, 0xe8, 0xe2, 0x72, 0x75, 0x10, 0xbf, 0x0c, 0x9e, 0xf7, 0x44, 0xf3, 0x69, 0xeb, 0x3c, 0x6c, 0x4f, 0xc1, 0x6a, 0xde, 0xb6, 0xe1, 0x94, 0x5b, 0xe8, 0x28, 0x7d, 0x0f, 0x30, };
12925 static const u8 ed25519_562_test_vectors_expected_sig[] = {
12926 	0x18, 0xa3, 0x12, 0xb2, 0x0d, 0x86, 0xac, 0x33, 0x9a, 0x58, 0xef, 0x2b, 0x85, 0x2d, 0x46, 0x7c, 0x23, 0xbb, 0x2c, 0xb1, 0x22, 0x7c, 0xb1, 0x53, 0x38, 0xaf, 0x07, 0xfd, 0x04, 0xb9, 0xa7, 0x11, 0xe8, 0x56, 0xee, 0x5b, 0x2c, 0x82, 0xe3, 0x66, 0xc1, 0x7f, 0x86, 0x17, 0x13, 0xd1, 0x08, 0x8c, 0x1b, 0x21, 0x44, 0xd1, 0xc3, 0x7d, 0x05, 0xbd, 0xc0, 0x0d, 0x73, 0x96, 0x73, 0x85, 0x20, 0x00, };
12927 static const ec_test_case ed25519_562_test_case = {
12928 	.name = "EDDSA25519-SHA512/wei25519 562",
12929 	.ec_str_p = &wei25519_str_params,
12930 	.priv_key = ed25519_562_test_vectors_priv_key,
12931 	.priv_key_len = sizeof(ed25519_562_test_vectors_priv_key),
12932 	.nn_random = NULL,
12933 	.hash_type = SHA512,
12934 	.msg = (const char *)ed25519_562_test_vectors_message,
12935 	.msglen = sizeof(ed25519_562_test_vectors_message),
12936 	.sig_type = EDDSA25519,
12937 	.exp_sig = ed25519_562_test_vectors_expected_sig,
12938 	.exp_siglen = sizeof(ed25519_562_test_vectors_expected_sig),
12939 	.adata = NULL,
12940 	.adata_len = 0
12941 };
12942 
12943 /************************************************/
12944 static const u8 ed25519_563_test_vectors_priv_key[] = {
12945 	0xf8, 0xc9, 0x18, 0x3f, 0x23, 0x10, 0x5f, 0xad, 0x0c, 0x6e, 0x51, 0x03, 0x35, 0x8b, 0x58, 0x32, 0x88, 0xf9, 0xff, 0x6c, 0x7d, 0xfc, 0x91, 0x10, 0x6d, 0x07, 0x98, 0x7f, 0xf6, 0x9c, 0xe1, 0xeb, };
12946 static const u8 ed25519_563_test_vectors_message[] = {
12947 	0xb1, 0xd6, 0x05, 0x95, 0x32, 0x3f, 0xf3, 0xc8, 0x44, 0x87, 0x41, 0x90, 0xe1, 0x83, 0x6e, 0x41, 0x01, 0x40, 0x9c, 0xbc, 0xea, 0xe2, 0x8d, 0x5d, 0xa8, 0x1f, 0xad, 0x29, 0x8f, 0xe4, 0x7f, 0x6b, 0xdf, 0x44, 0x74, 0x5b, 0x7c, 0xd0, 0xd3, 0x71, 0x31, 0xc3, 0xec, 0x36, 0x5b, 0x92, 0xf5, 0xa1, 0xa6, 0x9c, 0x09, 0xfe, 0x2d, 0x9e, 0x81, 0xda, 0x10, 0xcf, 0x19, 0xd8, 0x5f, 0xf5, 0xff, 0x26, 0xf9, 0xe7, 0xdb, 0x9f, 0x07, 0x93, 0xb2, 0x5a, 0xb2, 0x6e, 0x6a, 0x74, 0xf4, 0x4e, 0xb8, 0xc4, 0xf0, 0x78, 0xeb, 0x7a, 0xd1, 0x8e, 0x65, 0xa1, 0x62, 0x10, 0xd5, 0xc8, 0x44, 0xd3, 0xce, 0xf7, 0x5f, 0x1d, 0xaf, 0x44, 0xee, 0xe5, 0x58, 0xf9, 0x0e, 0x52, 0x4a, 0x03, 0x2b, 0x6c, 0xae, 0x6c, 0x8d, 0x23, 0x36, 0x7c, 0x28, 0xce, 0x1c, 0x75, 0xfc, 0x25, 0xac, 0x87, 0x43, 0x39, 0x77, 0xd5, 0x97, 0x53, 0x3c, 0x92, 0xae, 0x65, 0xf2, 0x91, 0x3a, 0x18, 0x90, 0x7a, 0xc7, 0xd9, 0x54, 0x3d, 0xf2, 0x41, 0x27, 0x74, 0x39, 0x43, 0xfe, 0xfd, 0x9c, 0xf8, 0x3e, 0xd8, 0x33, 0xf6, 0x3e, 0xc8, 0x36, 0x72, 0x33, 0xd8, 0x97, 0xbf, 0xa1, 0x2d, 0x46, 0x6d, 0x2c, 0x4a, 0x9a, 0xd7, 0x0d, 0x5a, 0x67, 0x2f, 0xc1, 0x07, 0x75, 0xea, 0x2d, 0x20, 0x4e, 0x63, 0x6d, 0xe7, 0x01, 0x07, 0x88, 0xda, 0x27, 0x1d, 0xf0, 0x38, 0x81, 0xa2, 0x5c, 0x8d, 0xfa, 0x5a, 0xf7, 0x3e, 0xe5, 0x59, 0xf8, 0x1b, 0x52, 0x9b, 0x35, 0xaa, 0x12, 0x7f, 0xdc, 0x0e, 0xe8, 0xfd, 0x36, 0x9c, 0x7a, 0x04, 0x36, 0x62, 0x39, 0x86, 0xaa, 0x64, 0x07, 0xfa, 0x67, 0xa1, 0x42, 0x0c, 0x46, 0xf3, 0x21, 0x1a, 0xb8, 0x4f, 0x84, 0x46, 0x6d, 0xd5, 0x8b, 0xb7, 0x95, 0x08, 0xa1, 0xfe, 0xb0, 0xa5, 0xa5, 0xdc, 0x3b, 0xb0, 0xc1, 0xb2, 0x48, 0x09, 0x82, 0x62, 0xa0, 0x64, 0xf3, 0x7b, 0xb2, 0xf0, 0x19, 0xe2, 0x90, 0xc6, 0x0a, 0xfa, 0xa1, 0x20, 0x66, 0x51, 0xa2, 0x69, 0x7c, 0xaa, 0xcc, 0x3e, 0xcc, 0x02, 0xec, 0xfc, 0x07, 0x7f, 0x27, 0x2e, 0x8f, 0x75, 0xce, 0xa7, 0x1c, 0x3b, 0xc3, 0x35, 0x6d, 0x2b, 0x58, 0x07, 0x27, 0x6f, 0x19, 0x55, 0x00, 0x1c, 0xfe, 0x10, 0xa6, 0x17, 0x16, 0xb4, 0x08, 0x2b, 0xd6, 0xf8, 0x4c, 0xae, 0x4b, 0xb0, 0xd9, 0xa4, 0xb7, 0x5a, 0x4b, 0x57, 0x62, 0xf8, 0x10, 0x79, 0xf1, 0x9d, 0x7d, 0x19, 0xea, 0xff, 0x86, 0x31, 0xc9, 0x24, 0x88, 0x5b, 0xd3, 0xa6, 0x4e, 0x12, 0x9f, 0x4c, 0xf6, 0xb7, 0x9c, 0x7a, 0x98, 0x29, 0x66, 0x55, 0x11, 0xe9, 0xd8, 0x5c, 0x74, 0x5e, 0xb2, 0x2c, 0x1b, 0x7c, 0xb2, 0xa1, 0x7a, 0x49, 0xb6, 0x28, 0x5c, 0xce, 0x37, 0xb3, 0xde, 0x41, 0x59, 0x40, 0x32, 0x83, 0x23, 0xef, 0xe2, 0x4a, 0x1a, 0x07, 0xee, 0x87, 0x46, 0x8f, 0x65, 0x10, 0xe4, 0x2d, 0xd2, 0x06, 0xfe, 0x7f, 0x09, 0xe3, 0xd4, 0x33, 0xfb, 0x52, 0x15, 0x6a, 0xe3, 0x48, 0x38, 0x31, 0x15, 0x64, 0x88, 0x63, 0xe4, 0x5b, 0xf6, 0xa3, 0x71, 0xb1, 0x7e, 0x70, 0xe1, 0x9f, 0x96, 0x27, 0xd7, 0xf0, 0xa5, 0x8b, 0x95, 0xc6, 0xa4, 0x78, 0x8d, 0x5f, 0xd7, 0x86, 0x2f, 0x16, 0x12, 0xc0, 0x34, 0x73, 0x25, 0xb7, 0x97, 0x65, 0x1b, 0xe3, 0x0c, 0x3e, 0x1e, 0x60, 0xea, 0x4a, 0xe6, 0x0b, 0x57, 0x45, 0xa3, 0x8b, 0x6a, 0x9d, 0x4e, 0xb4, 0x93, 0x5d, 0x6f, 0x3c, 0xb8, 0xd7, 0x1a, 0xd3, 0xf3, 0x9a, 0xdd, 0xa5, 0xe4, 0x2e, 0x22, 0x19, 0xde, 0x0d, 0x38, 0x19, 0x09, 0xc9, 0xcd, 0x31, 0x7d, 0xd4, 0x37, 0x94, 0x21, 0xa2, 0xa8, 0x42, 0x68, 0xa7, 0xea, 0x71, 0x80, 0xa6, 0x4c, 0x12, 0x9b, 0xe1, 0xe5, 0xe8, 0xfc, 0xbb, 0xf5, 0xed, 0x65, 0x9e, 0x9f, 0x7e, 0x76, 0x3c, 0xe8, 0x4f, 0x63, 0x0d, 0x54, 0x07, 0x95, 0x4f, 0x9f, 0x75, 0x57, 0x50, 0xa6, 0xdb, 0xf9, 0xf7, 0x66, 0x07, 0x17, 0xde, 0x8e, 0x2a, 0xdc, 0x1e, 0x9a, 0xc9, 0xee, 0x31, 0x65, 0x4d, 0x18, 0x37, 0xce, 0xe3, 0x97, 0x95, };
12948 static const u8 ed25519_563_test_vectors_expected_sig[] = {
12949 	0xc6, 0xa8, 0xbc, 0x7a, 0x0d, 0x5c, 0x61, 0x85, 0xb6, 0xec, 0xd6, 0x03, 0x3e, 0x42, 0x32, 0x1d, 0x5c, 0x87, 0x1b, 0xf8, 0x89, 0xbe, 0x72, 0xbd, 0x54, 0xcc, 0x00, 0x83, 0xed, 0x60, 0xa4, 0x70, 0xb2, 0xcc, 0x0f, 0xb4, 0x68, 0x2c, 0x89, 0x4c, 0x75, 0xb0, 0xdf, 0x95, 0xf1, 0xec, 0xfb, 0xba, 0x2d, 0x5a, 0xce, 0xf3, 0xe1, 0xaa, 0xfe, 0x54, 0xb9, 0xf7, 0xe8, 0x03, 0xa1, 0xd0, 0x15, 0x0a, };
12950 static const ec_test_case ed25519_563_test_case = {
12951 	.name = "EDDSA25519-SHA512/wei25519 563",
12952 	.ec_str_p = &wei25519_str_params,
12953 	.priv_key = ed25519_563_test_vectors_priv_key,
12954 	.priv_key_len = sizeof(ed25519_563_test_vectors_priv_key),
12955 	.nn_random = NULL,
12956 	.hash_type = SHA512,
12957 	.msg = (const char *)ed25519_563_test_vectors_message,
12958 	.msglen = sizeof(ed25519_563_test_vectors_message),
12959 	.sig_type = EDDSA25519,
12960 	.exp_sig = ed25519_563_test_vectors_expected_sig,
12961 	.exp_siglen = sizeof(ed25519_563_test_vectors_expected_sig),
12962 	.adata = NULL,
12963 	.adata_len = 0
12964 };
12965 
12966 /************************************************/
12967 static const u8 ed25519_564_test_vectors_priv_key[] = {
12968 	0x16, 0x08, 0x9a, 0x1b, 0x93, 0x2f, 0x8d, 0x14, 0x99, 0x56, 0x88, 0xb4, 0x8d, 0xd8, 0x41, 0xed, 0xae, 0x3d, 0xa5, 0xcf, 0xd2, 0xcb, 0x16, 0x55, 0x53, 0x06, 0xf3, 0xfe, 0x8b, 0xd3, 0xed, 0xb9, };
12969 static const u8 ed25519_564_test_vectors_message[] = {
12970 	0x58, 0x50, 0x02, 0x32, 0x38, 0x8d, 0x9a, 0xa4, 0xb5, 0xfa, 0xf8, 0x5b, 0x02, 0x33, 0x24, 0x7e, 0x71, 0x7f, 0xd1, 0x68, 0x40, 0xde, 0x9b, 0xfd, 0x0e, 0xf8, 0x6e, 0x01, 0xe6, 0x13, 0x02, 0x77, 0x55, 0x13, 0xe2, 0x24, 0x12, 0x5e, 0x0d, 0x20, 0x42, 0x0e, 0xa9, 0x49, 0xf6, 0xc2, 0x64, 0x25, 0xf7, 0x00, 0x77, 0x91, 0x1f, 0x97, 0x11, 0x31, 0x0c, 0xd6, 0xfd, 0x8b, 0xff, 0x27, 0xcd, 0xea, 0x11, 0x48, 0x0c, 0x73, 0xe8, 0xf8, 0xb3, 0xc3, 0x76, 0x41, 0xe7, 0xe8, 0xdd, 0x86, 0x07, 0xc1, 0x64, 0x02, 0x18, 0xfe, 0xc8, 0x0a, 0x02, 0x09, 0x28, 0xb9, 0x3d, 0x4d, 0x55, 0x7e, 0xbe, 0x82, 0xec, 0x0b, 0xb1, 0x75, 0x38, 0x86, 0x7d, 0x2c, 0xb1, 0x4d, 0x44, 0xd3, 0xea, 0x72, 0x7f, 0xdd, 0x52, 0x82, 0x0b, 0x0d, 0xa9, 0x44, 0xde, 0x21, 0xcd, 0x5d, 0xa3, 0x03, 0xd7, 0x76, 0xfe, 0x99, 0xcb, 0xc2, 0x64, 0x83, 0x65, 0xe6, 0xa0, 0xa9, 0x8d, 0x4d, 0xb1, 0x50, 0x84, 0x26, 0x61, 0x76, 0x8b, 0xe8, 0x4c, 0x68, 0x50, 0x7a, 0x5c, 0x45, 0xd2, 0x07, 0x84, 0x0b, 0x03, 0x35, 0x37, 0x78, 0x6c, 0xb2, 0x1d, 0xad, 0xad, 0x5f, 0xba, 0xb9, 0xc5, 0xcf, 0xc1, 0xe3, 0x54, 0x7d, 0xe5, 0x50, 0xd3, 0x13, 0x63, 0x1d, 0xd4, 0xfb, 0xb7, 0xca, 0x8f, 0x71, 0x93, 0x86, 0x27, 0x60, 0x8d, 0x2e, 0xbf, 0x65, 0x5d, 0xb4, 0x32, 0x5a, 0xbf, 0x3e, 0xd5, 0x04, 0xdc, 0x18, 0x30, 0x58, 0xf9, 0xde, 0x1e, 0x44, 0x93, 0x12, 0xd9, 0x04, 0xc8, 0x46, 0xa1, 0x84, 0xa0, 0x28, 0xf3, 0x64, 0xc0, 0x28, 0xb2, 0x7e, 0xb4, 0x94, 0x64, 0x27, 0xe3, 0x1c, 0x21, 0xe1, 0x05, 0x1d, 0xf3, 0x64, 0xd4, 0x99, 0xf4, 0x77, 0xbf, 0x51, 0xe7, 0xa8, 0x89, 0x31, 0x83, 0xe5, 0xec, 0xf7, 0x7d, 0x51, 0x3a, 0x1a, 0x76, 0xb1, 0xa6, 0xfd, 0xfb, 0x16, 0xbe, 0x90, 0xd7, 0x4b, 0xe4, 0xc4, 0x34, 0x5a, 0x4f, 0x9f, 0x87, 0xee, 0x44, 0x1a, 0x10, 0x22, 0xd6, 0x7e, 0xe8, 0x44, 0x78, 0x9f, 0x21, 0xb0, 0xc3, 0x1a, 0xdc, 0xc0, 0xd9, 0x56, 0x63, 0xcd, 0xfb, 0x40, 0xa8, 0x95, 0xb9, 0x22, 0xdc, 0xe8, 0x06, 0x9b, 0x93, 0x2c, 0x80, 0x2f, 0xd3, 0xab, 0x1e, 0xf0, 0xce, 0x6b, 0xff, 0xdc, 0xc5, 0x65, 0x3b, 0x1c, 0xd5, 0x25, 0x7e, 0x19, 0xa0, 0x95, 0x16, 0x87, 0xe5, 0x45, 0xfa, 0xf4, 0xaa, 0x66, 0x06, 0x5a, 0x55, 0xc4, 0xb4, 0x19, 0x1e, 0x34, 0xe8, 0x04, 0x7d, 0x6a, 0x4a, 0xb5, 0x2d, 0x1b, 0x06, 0xc3, 0x69, 0xa4, 0x26, 0xca, 0x2d, 0x16, 0xb5, 0x1a, 0x02, 0x71, 0xf2, 0x7f, 0x8d, 0x74, 0x4c, 0x71, 0x1f, 0xce, 0x3a, 0xad, 0x9d, 0x4a, 0xc0, 0x38, 0xee, 0x70, 0x0e, 0x4e, 0x97, 0x1b, 0x21, 0xca, 0x48, 0x9f, 0xf2, 0xb8, 0xc7, 0x78, 0xa3, 0x72, 0x1a, 0xdf, 0x47, 0xc1, 0xae, 0x5a, 0x41, 0xb9, 0xa2, 0x7f, 0xa7, 0x42, 0xfd, 0x0f, 0x18, 0x16, 0x4e, 0xf3, 0xc2, 0x6b, 0x8a, 0xe7, 0xd1, 0xfa, 0x29, 0xb7, 0xc0, 0xcc, 0x46, 0x83, 0xbe, 0x65, 0x02, 0x5c, 0x96, 0x53, 0x7a, 0x12, 0xd5, 0xfc, 0xeb, 0xbd, 0x05, 0xe9, 0x30, 0xc3, 0x69, 0x3e, 0xbb, 0xba, 0x0a, 0x78, 0xad, 0xf5, 0x9d, 0x8a, 0x3b, 0x59, 0x8a, 0x34, 0x8e, 0xaa, 0x9f, 0x47, 0xca, 0xf5, 0x31, 0xfe, 0x44, 0x96, 0x52, 0xdb, 0x5b, 0x20, 0xd6, 0x89, 0x94, 0xe3, 0x5a, 0xfe, 0xc2, 0xc2, 0x57, 0x09, 0x05, 0x5a, 0x1d, 0xe2, 0x60, 0x82, 0xe3, 0x91, 0x2d, 0x49, 0x7c, 0x64, 0x77, 0x20, 0xa3, 0xf8, 0x73, 0x62, 0x14, 0x56, 0xe6, 0xa5, 0xb9, 0xeb, 0x61, 0x3a, 0xcb, 0x43, 0xb6, 0x6d, 0x47, 0xd0, 0xb9, 0x54, 0xc6, 0x9e, 0x8f, 0xbf, 0x2c, 0x5e, 0x63, 0x4c, 0x48, 0x6e, 0x57, 0x24, 0x93, 0x0e, 0x0b, 0x56, 0xa5, 0x16, 0x94, 0x0c, 0x8c, 0xb0, 0xe7, 0x75, 0x27, 0x4d, 0xef, 0xf9, 0x7c, 0xbb, 0x77, 0x59, 0xce, 0x90, 0xa2, 0xb9, 0x3e, 0x9e, 0xfa, 0xa6, 0x24, 0xe6, 0xb3, 0x8a, 0x39, 0x84, 0x9d, 0xca, 0x1d, 0xf6, 0x12, 0x73, 0x6f, };
12971 static const u8 ed25519_564_test_vectors_expected_sig[] = {
12972 	0x78, 0x78, 0xab, 0x74, 0x1e, 0xba, 0xe2, 0x74, 0x7c, 0x78, 0x97, 0xcb, 0xb1, 0xd1, 0x05, 0x48, 0x2f, 0x37, 0xbe, 0x2f, 0x5f, 0x91, 0x79, 0x52, 0x32, 0xcd, 0xfb, 0xcc, 0xc5, 0x26, 0x60, 0x89, 0x18, 0xe2, 0x75, 0x6d, 0xdb, 0x75, 0x36, 0xb3, 0x68, 0x0c, 0x16, 0x2c, 0xf8, 0xa1, 0xef, 0x38, 0xa3, 0x41, 0xb9, 0x36, 0x2b, 0xfe, 0x5d, 0x46, 0x8b, 0x4b, 0xce, 0x21, 0xdf, 0x23, 0x4f, 0x0f, };
12973 static const ec_test_case ed25519_564_test_case = {
12974 	.name = "EDDSA25519-SHA512/wei25519 564",
12975 	.ec_str_p = &wei25519_str_params,
12976 	.priv_key = ed25519_564_test_vectors_priv_key,
12977 	.priv_key_len = sizeof(ed25519_564_test_vectors_priv_key),
12978 	.nn_random = NULL,
12979 	.hash_type = SHA512,
12980 	.msg = (const char *)ed25519_564_test_vectors_message,
12981 	.msglen = sizeof(ed25519_564_test_vectors_message),
12982 	.sig_type = EDDSA25519,
12983 	.exp_sig = ed25519_564_test_vectors_expected_sig,
12984 	.exp_siglen = sizeof(ed25519_564_test_vectors_expected_sig),
12985 	.adata = NULL,
12986 	.adata_len = 0
12987 };
12988 
12989 /************************************************/
12990 static const u8 ed25519_565_test_vectors_priv_key[] = {
12991 	0x94, 0xd5, 0x09, 0x15, 0x14, 0x4c, 0x7e, 0x7d, 0xd0, 0xf8, 0x5f, 0xef, 0x87, 0xed, 0xdc, 0x22, 0x06, 0xc1, 0x56, 0x9e, 0xd1, 0x43, 0x1c, 0x8c, 0x5a, 0x15, 0x3e, 0x32, 0xe1, 0xcb, 0x2f, 0xb7, };
12992 static const u8 ed25519_565_test_vectors_message[] = {
12993 	0x4d, 0x91, 0x5f, 0x27, 0x33, 0x2d, 0xd7, 0x50, 0x51, 0x71, 0x9a, 0x24, 0xae, 0x8d, 0x0e, 0x9c, 0x30, 0xda, 0x79, 0x09, 0x99, 0xe2, 0x2d, 0x9b, 0x58, 0x7e, 0xf2, 0x03, 0x21, 0xbe, 0xe4, 0xc0, 0x7d, 0x0a, 0x12, 0x49, 0x4f, 0xfe, 0x59, 0x9f, 0x47, 0xf9, 0x69, 0x25, 0xf5, 0xd9, 0x25, 0x17, 0xfc, 0x3e, 0x5f, 0x04, 0x1d, 0x0c, 0x70, 0x9f, 0x2a, 0x97, 0x83, 0x12, 0x5e, 0xec, 0xa6, 0x65, 0x29, 0x97, 0x20, 0x1c, 0x42, 0x9a, 0xa6, 0xf1, 0xce, 0x2f, 0x07, 0xa0, 0xd4, 0xa0, 0xa1, 0x8c, 0xf2, 0x0b, 0x3e, 0x9a, 0x4f, 0x76, 0x63, 0xea, 0x52, 0x62, 0xca, 0xd8, 0xf9, 0x49, 0x41, 0x1b, 0x05, 0xff, 0x5c, 0x5e, 0xdd, 0x7b, 0x30, 0xb2, 0x17, 0xd7, 0x5d, 0x8c, 0x86, 0xc9, 0x4e, 0x5f, 0x92, 0xc1, 0x67, 0x34, 0x37, 0x4e, 0x8c, 0xea, 0xd6, 0x1b, 0x0b, 0x27, 0xbb, 0x4b, 0xf5, 0xf4, 0x3a, 0x31, 0x3c, 0x1d, 0xd5, 0xb8, 0x3e, 0x0e, 0xa9, 0x33, 0xb6, 0xca, 0xdf, 0xed, 0xd7, 0xa6, 0x4a, 0xa5, 0xdd, 0x5b, 0x5d, 0x02, 0xc6, 0x95, 0xea, 0x20, 0xe0, 0x91, 0xfd, 0xaa, 0x72, 0xef, 0x4e, 0x7c, 0xa4, 0x0f, 0x38, 0x39, 0x5b, 0xe8, 0xbf, 0x7a, 0x25, 0x5c, 0x6d, 0x06, 0xa6, 0x32, 0xd7, 0xd7, 0x85, 0xd9, 0xe0, 0x47, 0xf2, 0x32, 0xaa, 0x50, 0xfa, 0x14, 0x52, 0x9f, 0x98, 0x6f, 0x9e, 0xf9, 0xd7, 0xb5, 0x80, 0xa0, 0x39, 0x65, 0xb0, 0x15, 0x47, 0x88, 0x82, 0x2a, 0x22, 0x5b, 0xb5, 0xab, 0x34, 0x38, 0xb8, 0x9a, 0x5c, 0x28, 0x74, 0x4a, 0xb0, 0xbc, 0x0b, 0x20, 0x14, 0xe5, 0x79, 0x6a, 0xcb, 0x49, 0x35, 0xa8, 0x1b, 0x02, 0xa0, 0x46, 0x32, 0xac, 0xb8, 0x8c, 0xaa, 0x7e, 0x39, 0xe0, 0x69, 0xc7, 0xc8, 0xe1, 0x75, 0x82, 0x91, 0x09, 0x4a, 0x53, 0xe3, 0x62, 0xfc, 0xed, 0xaa, 0xa5, 0x83, 0xec, 0xa7, 0x66, 0xef, 0xeb, 0xf6, 0x9b, 0x38, 0xe8, 0xcd, 0xe9, 0xce, 0x58, 0xe0, 0x12, 0xc6, 0x0e, 0xc8, 0x8e, 0x8c, 0x42, 0xbe, 0xad, 0xfa, 0x83, 0x8c, 0xfe, 0x44, 0x0f, 0xa0, 0xc0, 0x1d, 0x65, 0x9c, 0x96, 0x34, 0x57, 0x6d, 0x7d, 0x7a, 0x2d, 0x3a, 0x04, 0x4f, 0x99, 0xc6, 0xe4, 0x26, 0x3d, 0x4c, 0x0b, 0x37, 0x4a, 0x38, 0x8a, 0x2a, 0xcf, 0x38, 0xef, 0xf2, 0x9c, 0x77, 0x7e, 0x9d, 0xaa, 0x60, 0xd5, 0x98, 0x03, 0x5a, 0x7d, 0x9e, 0xdf, 0x67, 0xa5, 0x02, 0xc3, 0xf5, 0x73, 0x20, 0x7b, 0x11, 0x9c, 0xac, 0xac, 0x3f, 0xa7, 0x1e, 0x2a, 0x02, 0x07, 0xc6, 0x01, 0xcc, 0x0d, 0xd6, 0x37, 0xef, 0x56, 0x2b, 0xac, 0xc3, 0x5c, 0x57, 0x04, 0x27, 0x38, 0xf1, 0xf5, 0x58, 0x15, 0xa5, 0x26, 0x80, 0x82, 0xcd, 0x6a, 0x50, 0x82, 0x92, 0xfa, 0x29, 0xe3, 0x4e, 0x96, 0x45, 0xd8, 0x7a, 0x1a, 0x2b, 0x6e, 0x58, 0xad, 0xb7, 0xf4, 0xa5, 0x7f, 0xbb, 0x53, 0xe9, 0x21, 0x3e, 0xf3, 0xdc, 0x87, 0x3f, 0x29, 0x39, 0x62, 0x58, 0xa1, 0xea, 0x54, 0x6f, 0xb5, 0x95, 0x2c, 0xe3, 0x43, 0xce, 0xe9, 0xbb, 0xb9, 0x0c, 0x1c, 0xda, 0x72, 0xc6, 0x5a, 0x7c, 0x8e, 0x40, 0x31, 0x2b, 0x32, 0x8e, 0x23, 0x19, 0x20, 0xc2, 0x33, 0x07, 0x7d, 0xca, 0x34, 0xd0, 0x4f, 0x9d, 0x89, 0xda, 0xa9, 0xa2, 0xf4, 0x34, 0x59, 0x16, 0x5f, 0xd1, 0x02, 0xff, 0x56, 0x43, 0xc7, 0x17, 0x52, 0x30, 0xb3, 0x9e, 0xc7, 0xc3, 0xc4, 0x75, 0x65, 0x0e, 0xf1, 0x31, 0x60, 0x9d, 0x32, 0x20, 0xf5, 0xa2, 0x94, 0xa4, 0x03, 0xb1, 0xe1, 0xc4, 0x2c, 0xfa, 0x16, 0x2c, 0xd4, 0x26, 0xf0, 0xae, 0x43, 0xfd, 0x6b, 0x7a, 0xb5, 0x47, 0xa6, 0x2b, 0x7d, 0x5f, 0x84, 0x74, 0x03, 0xc4, 0xe5, 0x98, 0x79, 0x53, 0x87, 0x71, 0x58, 0xcf, 0xde, 0xe2, 0x3c, 0x04, 0xf7, 0x51, 0xc7, 0xc8, 0x6d, 0x07, 0x8e, 0x82, 0x4c, 0xa6, 0x3b, 0x5e, 0x65, 0x54, 0x3e, 0x97, 0x8b, 0x6b, 0x0c, 0xc6, 0x89, 0xef, 0x66, 0x44, 0x12, 0xb0, 0x1b, 0x8f, 0xf1, 0x65, 0xe7, 0xdb, 0xde, 0x3c, 0x09, 0x9b, 0xf4, 0xf3, 0x4e, 0xbd, 0xdc, 0xb4, 0xc4, };
12994 static const u8 ed25519_565_test_vectors_expected_sig[] = {
12995 	0x59, 0xa1, 0xce, 0x55, 0xf5, 0xa6, 0xba, 0xdc, 0x1b, 0x93, 0x91, 0x26, 0x36, 0x20, 0x54, 0x2c, 0xfc, 0xae, 0x87, 0xa0, 0xf2, 0xb9, 0x50, 0x22, 0x50, 0xcf, 0xe4, 0xbd, 0xcb, 0xf7, 0x6c, 0x46, 0x19, 0x77, 0xc3, 0x34, 0xa4, 0x8d, 0x91, 0x6e, 0xde, 0xbd, 0x56, 0xc2, 0x1c, 0xe2, 0x17, 0xc3, 0x5a, 0x64, 0x44, 0xcf, 0xbf, 0xd3, 0xb1, 0x1a, 0x3d, 0x48, 0xfa, 0x2e, 0xdb, 0x6e, 0xb4, 0x0f, };
12996 static const ec_test_case ed25519_565_test_case = {
12997 	.name = "EDDSA25519-SHA512/wei25519 565",
12998 	.ec_str_p = &wei25519_str_params,
12999 	.priv_key = ed25519_565_test_vectors_priv_key,
13000 	.priv_key_len = sizeof(ed25519_565_test_vectors_priv_key),
13001 	.nn_random = NULL,
13002 	.hash_type = SHA512,
13003 	.msg = (const char *)ed25519_565_test_vectors_message,
13004 	.msglen = sizeof(ed25519_565_test_vectors_message),
13005 	.sig_type = EDDSA25519,
13006 	.exp_sig = ed25519_565_test_vectors_expected_sig,
13007 	.exp_siglen = sizeof(ed25519_565_test_vectors_expected_sig),
13008 	.adata = NULL,
13009 	.adata_len = 0
13010 };
13011 
13012 /************************************************/
13013 static const u8 ed25519_566_test_vectors_priv_key[] = {
13014 	0x0d, 0x81, 0x92, 0x6f, 0x51, 0x3d, 0xb4, 0xb2, 0x5d, 0xfa, 0x1e, 0x52, 0xb5, 0xdc, 0xa6, 0x78, 0xf8, 0x28, 0xa6, 0x1c, 0x7c, 0x91, 0x3c, 0x82, 0x82, 0x47, 0xc2, 0xeb, 0x04, 0x22, 0xb7, 0xd1, };
13015 static const u8 ed25519_566_test_vectors_message[] = {
13016 	0xa9, 0x38, 0x37, 0x52, 0x2f, 0x7e, 0xc2, 0xe9, 0x3a, 0x2e, 0x4b, 0x4c, 0x8b, 0x46, 0xde, 0x92, 0x6a, 0x81, 0xad, 0xa2, 0xd2, 0x48, 0xbc, 0xd3, 0x3b, 0x39, 0xb6, 0xc9, 0x5f, 0xb6, 0x2a, 0x61, 0xdb, 0xbe, 0xda, 0x1a, 0xa8, 0x5a, 0x21, 0xd9, 0xb9, 0x6a, 0x08, 0x51, 0x0d, 0x8d, 0x3a, 0x65, 0x8c, 0xf3, 0x20, 0xa1, 0x09, 0x28, 0x69, 0x59, 0x99, 0xd2, 0xc0, 0xd6, 0x05, 0xc7, 0xf9, 0x5a, 0x12, 0xf5, 0x6a, 0x87, 0x18, 0x50, 0x7d, 0xb0, 0xf4, 0x97, 0xe3, 0xea, 0xd6, 0x13, 0x13, 0x2a, 0xb0, 0x92, 0xcb, 0xf1, 0x9d, 0x22, 0x60, 0x35, 0x86, 0x30, 0x35, 0x8d, 0x9b, 0x26, 0xe6, 0x8d, 0x50, 0xdd, 0xae, 0x37, 0xc8, 0xaf, 0x0b, 0xb7, 0xd2, 0x74, 0x1f, 0xd2, 0x92, 0x9c, 0x21, 0x27, 0x9a, 0x78, 0xd1, 0x0e, 0x2c, 0x5f, 0x3c, 0x5b, 0xf4, 0xa4, 0x2a, 0x36, 0x17, 0x03, 0x6d, 0x54, 0x74, 0x36, 0x47, 0x76, 0x5a, 0xfd, 0x8c, 0xd9, 0x10, 0xf8, 0x1b, 0x38, 0xce, 0xd7, 0x23, 0x90, 0x63, 0x0e, 0xe6, 0x89, 0x44, 0xa3, 0x7d, 0x29, 0xc2, 0xfe, 0xca, 0xda, 0x1c, 0xc5, 0x9e, 0xc5, 0x44, 0x07, 0x5b, 0xdb, 0xc1, 0x4c, 0x63, 0xc6, 0x23, 0x4b, 0x88, 0x40, 0x49, 0x00, 0x0c, 0x27, 0xc7, 0x34, 0x06, 0x03, 0x56, 0x04, 0xfc, 0xa8, 0x76, 0x0b, 0x49, 0xa5, 0xe2, 0x10, 0x9e, 0xf9, 0x12, 0x85, 0xad, 0xc4, 0xec, 0x48, 0xc8, 0x19, 0xd6, 0x2d, 0x94, 0x8f, 0xac, 0xa9, 0x0f, 0x62, 0xcf, 0xae, 0xf0, 0xb0, 0x7d, 0x6f, 0xe5, 0x76, 0xd7, 0x62, 0xbf, 0xd0, 0xee, 0xf9, 0x4c, 0xf6, 0xb5, 0x33, 0x2c, 0x4d, 0x42, 0x25, 0x11, 0x60, 0x7f, 0x2f, 0xac, 0xc7, 0xac, 0x04, 0x6a, 0x59, 0xb9, 0x61, 0x7e, 0x83, 0x83, 0xd1, 0x02, 0x9c, 0xc9, 0x1a, 0xc5, 0x92, 0xb5, 0x20, 0x84, 0x41, 0x30, 0x32, 0xbe, 0x84, 0x1b, 0xaa, 0x9b, 0xf9, 0x62, 0x51, 0xa6, 0xbd, 0xa6, 0x71, 0xd4, 0xcd, 0x4b, 0x12, 0x5d, 0xa6, 0x58, 0xa4, 0xe5, 0xa5, 0x0f, 0x44, 0x28, 0xee, 0xbf, 0x26, 0x14, 0xfb, 0x0c, 0xe5, 0xfe, 0xbe, 0x80, 0xf7, 0x21, 0xa5, 0xf4, 0xc0, 0x32, 0x55, 0x06, 0xd2, 0x7a, 0x8d, 0x31, 0xe3, 0x3d, 0x86, 0x25, 0x38, 0x70, 0xdd, 0x63, 0xc0, 0x8e, 0xdc, 0x73, 0x02, 0xb2, 0x80, 0xe9, 0xb9, 0xbd, 0xc2, 0x8b, 0xee, 0xf0, 0x5c, 0x7d, 0xcb, 0x30, 0xd4, 0xc1, 0x62, 0xe9, 0xbe, 0x83, 0x2e, 0x1c, 0x78, 0x5e, 0x37, 0x55, 0x12, 0x18, 0x42, 0x1e, 0xec, 0x85, 0x2c, 0x42, 0x98, 0x21, 0x3b, 0x2f, 0x27, 0xf8, 0xf8, 0xc7, 0x06, 0xd3, 0x91, 0xb9, 0xc6, 0x9a, 0x56, 0xdb, 0x7c, 0xe5, 0xd8, 0x15, 0x48, 0xfc, 0xa5, 0xfe, 0xd4, 0x56, 0xf2, 0xd8, 0xaf, 0xd0, 0xb7, 0x5f, 0x79, 0xf8, 0x58, 0x68, 0x31, 0x6f, 0x4a, 0x09, 0x21, 0xf0, 0xc6, 0x63, 0x99, 0x26, 0x51, 0x6b, 0x3c, 0x3e, 0x52, 0xa9, 0xcb, 0x22, 0x55, 0x45, 0x46, 0xef, 0x70, 0xe1, 0x4c, 0x77, 0xec, 0xbd, 0xcd, 0x5c, 0x0d, 0x59, 0xa8, 0x17, 0x69, 0xb3, 0x0d, 0x5d, 0x13, 0x1f, 0x2f, 0xb4, 0x49, 0xc9, 0x96, 0xb8, 0xde, 0x8a, 0xc7, 0xf8, 0x08, 0x4f, 0x84, 0x99, 0xe1, 0xa5, 0x6f, 0x7c, 0xd2, 0x9d, 0xb6, 0xaa, 0xef, 0xcc, 0xae, 0x8a, 0x60, 0xe7, 0x56, 0x16, 0xa1, 0xf7, 0x02, 0xc3, 0xbc, 0x8d, 0xea, 0xa1, 0x00, 0x4a, 0x8d, 0xae, 0x03, 0x92, 0xa5, 0x9c, 0xee, 0x54, 0x81, 0x0c, 0x6e, 0x94, 0x0e, 0xee, 0x25, 0xfb, 0x2e, 0x5d, 0x57, 0x32, 0x67, 0x04, 0x4b, 0x89, 0x3f, 0xfd, 0xe3, 0x78, 0xfe, 0x75, 0xac, 0x26, 0x13, 0x37, 0x3d, 0x84, 0xa0, 0xca, 0x81, 0x87, 0xaf, 0x4a, 0x33, 0x58, 0xe5, 0x0a, 0x99, 0x4e, 0xd0, 0x33, 0x67, 0xde, 0x64, 0x5e, 0x10, 0x39, 0x0f, 0xea, 0x4c, 0x33, 0xbb, 0x1a, 0x6c, 0x0c, 0x39, 0x85, 0x8b, 0x8d, 0xb4, 0xa6, 0x9f, 0xe8, 0x94, 0xa4, 0x22, 0x3d, 0x45, 0xaf, 0x69, 0xb3, 0x6c, 0x61, 0x17, 0xc4, 0xdc, 0x25, 0xde, 0x49, 0xa6, 0x30, 0x17, 0x00, 0x2b, 0xa9, 0xae, 0x55, 0x1e, 0xf9, };
13017 static const u8 ed25519_566_test_vectors_expected_sig[] = {
13018 	0xe0, 0xcb, 0x6c, 0x71, 0xeb, 0xf8, 0xd7, 0x05, 0xe5, 0x0c, 0xad, 0x9f, 0x0b, 0x8c, 0xba, 0x3e, 0xcf, 0x4b, 0x9e, 0x37, 0x93, 0x40, 0x00, 0x92, 0xaa, 0x5b, 0x12, 0x1e, 0x7d, 0xbb, 0xc8, 0xbe, 0xa7, 0x1d, 0xf2, 0x95, 0x28, 0xca, 0x9b, 0x47, 0xab, 0xf8, 0x7c, 0x19, 0x8a, 0x8d, 0xc4, 0xe1, 0x4d, 0x51, 0x80, 0xce, 0x93, 0x2d, 0xd2, 0x11, 0x4a, 0x3c, 0xda, 0xa5, 0x55, 0x2c, 0xc2, 0x05, };
13019 static const ec_test_case ed25519_566_test_case = {
13020 	.name = "EDDSA25519-SHA512/wei25519 566",
13021 	.ec_str_p = &wei25519_str_params,
13022 	.priv_key = ed25519_566_test_vectors_priv_key,
13023 	.priv_key_len = sizeof(ed25519_566_test_vectors_priv_key),
13024 	.nn_random = NULL,
13025 	.hash_type = SHA512,
13026 	.msg = (const char *)ed25519_566_test_vectors_message,
13027 	.msglen = sizeof(ed25519_566_test_vectors_message),
13028 	.sig_type = EDDSA25519,
13029 	.exp_sig = ed25519_566_test_vectors_expected_sig,
13030 	.exp_siglen = sizeof(ed25519_566_test_vectors_expected_sig),
13031 	.adata = NULL,
13032 	.adata_len = 0
13033 };
13034 
13035 /************************************************/
13036 static const u8 ed25519_567_test_vectors_priv_key[] = {
13037 	0x6c, 0x8c, 0x53, 0xb5, 0x6b, 0xbc, 0xb4, 0xc0, 0xa2, 0x5d, 0xc4, 0x0c, 0x18, 0x24, 0x0b, 0x6a, 0x5c, 0x75, 0x76, 0xb8, 0x9d, 0xde, 0x45, 0xef, 0x13, 0xfb, 0x15, 0x8e, 0xa1, 0x7f, 0x8e, 0xd9, };
13038 static const u8 ed25519_567_test_vectors_message[] = {
13039 	0xb6, 0x0d, 0xf2, 0x94, 0x4b, 0xa0, 0x15, 0x75, 0x98, 0x02, 0xd3, 0xc5, 0x87, 0xbc, 0xfe, 0xbe, 0x52, 0x1a, 0x7e, 0x77, 0xb9, 0x98, 0x5b, 0x76, 0x1c, 0x96, 0x76, 0x45, 0x4d, 0x24, 0xa6, 0x64, 0xaf, 0x0b, 0x0d, 0x44, 0x22, 0x5a, 0x55, 0x75, 0x12, 0xe1, 0xc1, 0xcd, 0x7d, 0xd8, 0x33, 0x5c, 0x8f, 0x6a, 0xdf, 0x92, 0x8e, 0x18, 0xf8, 0x9f, 0xd5, 0xee, 0xdf, 0x6f, 0x41, 0x1d, 0xcd, 0xaf, 0x99, 0x69, 0x12, 0xe8, 0xc3, 0xe2, 0x3d, 0x1c, 0xb9, 0x5e, 0xca, 0x4b, 0x9e, 0x24, 0xe7, 0x53, 0x9c, 0x3b, 0x98, 0xbf, 0x3d, 0x07, 0xec, 0x25, 0x13, 0x92, 0x09, 0x6c, 0x19, 0xac, 0x53, 0x74, 0xdc, 0xba, 0x52, 0x61, 0x32, 0xb6, 0xd9, 0xbb, 0x8f, 0x6c, 0x85, 0x9c, 0xe9, 0x85, 0xd5, 0x84, 0xc7, 0xbb, 0xa5, 0xb0, 0x2a, 0x81, 0x03, 0x4b, 0x6d, 0x8b, 0x52, 0x1b, 0xd2, 0x80, 0xe5, 0x0d, 0x77, 0xda, 0xa2, 0xb2, 0x41, 0x3e, 0xd6, 0x79, 0x83, 0x4f, 0x81, 0x61, 0xd5, 0xd0, 0x57, 0x3b, 0xdd, 0x47, 0x6a, 0xc3, 0xcd, 0x0a, 0x3a, 0x7d, 0x8d, 0xb4, 0x53, 0x34, 0xe8, 0x9c, 0x00, 0xab, 0x66, 0xbc, 0x36, 0x8a, 0x07, 0xb4, 0x23, 0xe2, 0x46, 0x43, 0x46, 0x36, 0x27, 0x2a, 0xa4, 0xe4, 0x63, 0x7a, 0x53, 0x06, 0xb2, 0xc3, 0x39, 0x79, 0x92, 0x78, 0x1f, 0x30, 0x23, 0x8d, 0xe7, 0x9e, 0xc1, 0x04, 0xac, 0xc7, 0x20, 0x0d, 0xef, 0xad, 0x96, 0x08, 0x83, 0xd3, 0x91, 0x44, 0x3e, 0x70, 0xef, 0xbd, 0x22, 0xf1, 0xcf, 0xce, 0xec, 0x51, 0x12, 0xfe, 0x9e, 0x8e, 0x13, 0xbb, 0x94, 0x1c, 0x08, 0x34, 0x68, 0xdd, 0x71, 0xff, 0xca, 0x97, 0x6c, 0xd5, 0x1c, 0xe1, 0x61, 0x79, 0x31, 0x10, 0xef, 0x00, 0xaf, 0xf5, 0xee, 0x2c, 0xcb, 0x77, 0x06, 0xa5, 0x12, 0xb8, 0x5b, 0xeb, 0x94, 0xac, 0x49, 0xd1, 0x9a, 0xfb, 0x63, 0x33, 0x65, 0x5c, 0xf3, 0xae, 0xa5, 0x35, 0xa6, 0xf9, 0xc7, 0x5e, 0x03, 0x48, 0x41, 0xe7, 0x63, 0xc5, 0xa2, 0x49, 0xb4, 0x70, 0x4e, 0x1b, 0xe7, 0x8b, 0x0e, 0xca, 0xc6, 0x80, 0x2c, 0x34, 0x3c, 0x1b, 0x7e, 0x7b, 0x57, 0x70, 0xde, 0x4c, 0x93, 0xa3, 0xa7, 0x9c, 0x46, 0xe6, 0x83, 0x5d, 0xa8, 0xae, 0x5d, 0xb3, 0x83, 0x8e, 0x17, 0x96, 0xb5, 0x64, 0xa4, 0x80, 0xa4, 0xf2, 0x90, 0xb6, 0x0a, 0x1c, 0x63, 0xa7, 0x25, 0xff, 0x3f, 0xef, 0x43, 0x4d, 0x2a, 0x0b, 0x3d, 0x89, 0x31, 0x97, 0x87, 0x42, 0xb5, 0x25, 0xc8, 0x3b, 0xae, 0x67, 0x94, 0xae, 0x64, 0x19, 0x37, 0x94, 0xb3, 0x70, 0xc2, 0x89, 0xba, 0x35, 0xed, 0x79, 0xd3, 0x70, 0x72, 0xa8, 0xdc, 0xfc, 0xad, 0xb4, 0x6d, 0x5f, 0xfa, 0xee, 0xba, 0x1b, 0xfd, 0x4f, 0x87, 0xd7, 0x66, 0xb5, 0x04, 0xe6, 0x2b, 0x4a, 0xcd, 0xd7, 0x74, 0x46, 0xe7, 0x9b, 0xa9, 0x94, 0xd6, 0xdb, 0xf4, 0x76, 0x5e, 0xbd, 0x74, 0xb0, 0x36, 0x51, 0x00, 0xda, 0x56, 0x16, 0x2c, 0x36, 0xfe, 0x5a, 0x95, 0x07, 0x7f, 0x6b, 0x42, 0x65, 0xe8, 0x17, 0x96, 0xb4, 0xa5, 0x74, 0x43, 0x78, 0x29, 0x70, 0xb9, 0x6c, 0xb4, 0x56, 0x9b, 0xa9, 0x85, 0xc5, 0x5f, 0xe3, 0xa7, 0x18, 0x38, 0x0b, 0xca, 0x39, 0xf1, 0x66, 0x24, 0xf8, 0xe4, 0x7c, 0xc6, 0x3c, 0x1b, 0x6f, 0xa1, 0xbd, 0xe1, 0xae, 0xba, 0x9c, 0x51, 0xf9, 0x4b, 0x70, 0x2b, 0x13, 0x10, 0x8c, 0xc1, 0x48, 0x1d, 0x42, 0xe6, 0xfa, 0x98, 0x1e, 0x3e, 0xbf, 0xe0, 0x64, 0xd2, 0xdc, 0xa7, 0x42, 0x0c, 0x74, 0x59, 0x57, 0x92, 0x31, 0x2a, 0xe3, 0xfb, 0x91, 0x01, 0xd4, 0xb6, 0x6d, 0x99, 0x16, 0xdf, 0xd6, 0xc1, 0x3a, 0xe8, 0x83, 0xe6, 0x61, 0xc6, 0x28, 0x22, 0x8b, 0xe9, 0x79, 0x4c, 0xf6, 0x03, 0x45, 0x07, 0x6d, 0xb2, 0x61, 0x84, 0xb6, 0x17, 0xe2, 0x72, 0x29, 0x8c, 0xd4, 0x18, 0x3f, 0x27, 0xbd, 0x52, 0xd4, 0x05, 0x10, 0xbb, 0x01, 0x5d, 0x20, 0x97, 0xd4, 0xcc, 0x76, 0xe7, 0x6c, 0x0a, 0x62, 0xbb, 0xfd, 0xaf, 0x53, 0xc7, 0x26, 0x87, 0x75, 0xbb, 0xfb, 0xdb, 0x88, 0x70, 0xeb, 0x9b, 0xab, };
13040 static const u8 ed25519_567_test_vectors_expected_sig[] = {
13041 	0x4b, 0xf1, 0xe7, 0xd4, 0x9c, 0xd4, 0xd5, 0xc3, 0xc1, 0xfd, 0x4a, 0x4b, 0xc4, 0x8f, 0xf6, 0xb6, 0xe5, 0x2f, 0xd9, 0x51, 0x0a, 0x41, 0x18, 0x12, 0x29, 0x69, 0x96, 0xe4, 0xfe, 0xc5, 0x6b, 0xe4, 0x45, 0x14, 0xc5, 0x67, 0xd1, 0xd3, 0x34, 0x77, 0xbd, 0x5d, 0xc0, 0x83, 0xc3, 0x95, 0x8b, 0xd9, 0x5b, 0xfe, 0x59, 0x9c, 0x15, 0x3f, 0x21, 0xae, 0x26, 0x25, 0x29, 0x67, 0xb7, 0x32, 0x60, 0x03, };
13042 static const ec_test_case ed25519_567_test_case = {
13043 	.name = "EDDSA25519-SHA512/wei25519 567",
13044 	.ec_str_p = &wei25519_str_params,
13045 	.priv_key = ed25519_567_test_vectors_priv_key,
13046 	.priv_key_len = sizeof(ed25519_567_test_vectors_priv_key),
13047 	.nn_random = NULL,
13048 	.hash_type = SHA512,
13049 	.msg = (const char *)ed25519_567_test_vectors_message,
13050 	.msglen = sizeof(ed25519_567_test_vectors_message),
13051 	.sig_type = EDDSA25519,
13052 	.exp_sig = ed25519_567_test_vectors_expected_sig,
13053 	.exp_siglen = sizeof(ed25519_567_test_vectors_expected_sig),
13054 	.adata = NULL,
13055 	.adata_len = 0
13056 };
13057 
13058 /************************************************/
13059 static const u8 ed25519_568_test_vectors_priv_key[] = {
13060 	0x69, 0xb3, 0x20, 0xfb, 0xd4, 0x77, 0x40, 0x30, 0xa2, 0x97, 0x67, 0xa0, 0xcc, 0x15, 0x50, 0xd1, 0x0b, 0x74, 0x9b, 0x44, 0xd6, 0x19, 0xd4, 0x1d, 0xce, 0x11, 0x46, 0xf7, 0xac, 0x80, 0xa7, 0x55, };
13061 static const u8 ed25519_568_test_vectors_message[] = {
13062 	0x21, 0x7e, 0x33, 0xf8, 0x86, 0x22, 0xc9, 0x6f, 0x8d, 0x09, 0x2c, 0x9e, 0x26, 0x66, 0x4f, 0xe9, 0xef, 0xc0, 0xd8, 0xd2, 0xeb, 0x59, 0xa0, 0x36, 0xfa, 0x46, 0x4c, 0xee, 0x65, 0xce, 0x44, 0x89, 0xca, 0xf9, 0x03, 0xdc, 0xe1, 0x7a, 0xfa, 0xfb, 0xc4, 0xf1, 0x8d, 0xc9, 0xbb, 0xfd, 0x6c, 0x1a, 0x4b, 0xe7, 0xb8, 0x34, 0x85, 0xa6, 0xca, 0x94, 0x7d, 0xef, 0xb1, 0xd3, 0x51, 0x25, 0xd0, 0x77, 0x39, 0x62, 0xa3, 0x44, 0xa3, 0x8b, 0x6d, 0xca, 0x9a, 0x40, 0xc3, 0x1c, 0x1c, 0x4e, 0xb2, 0xd7, 0xf6, 0x81, 0x8f, 0x97, 0x8e, 0x57, 0x3d, 0x66, 0xb9, 0x90, 0x92, 0x1b, 0x92, 0xb7, 0x77, 0x47, 0x1a, 0x4f, 0x6f, 0x05, 0x47, 0x7e, 0xbc, 0x35, 0x3a, 0xce, 0x1d, 0x86, 0xb0, 0x0c, 0xc2, 0x51, 0x77, 0x7a, 0xaf, 0x6a, 0xf3, 0xaa, 0x11, 0x79, 0xbf, 0xf7, 0x8d, 0xf5, 0x04, 0x8e, 0x5e, 0xf2, 0x99, 0x68, 0x67, 0x0e, 0x53, 0x54, 0x83, 0x56, 0x8d, 0x6b, 0xb1, 0x6d, 0xa8, 0x29, 0x56, 0x8f, 0x81, 0xc7, 0x99, 0xb9, 0xaf, 0xd4, 0xaa, 0xd6, 0xef, 0x08, 0x52, 0x52, 0xc0, 0xce, 0x3a, 0xc0, 0x1a, 0xc2, 0x1a, 0x9e, 0xa6, 0x9b, 0xd5, 0x8e, 0xad, 0xc6, 0x69, 0x68, 0xf5, 0x5d, 0xee, 0x38, 0x6b, 0x65, 0x3f, 0x33, 0x34, 0xef, 0xc3, 0x98, 0xef, 0x3c, 0x37, 0xa3, 0x8c, 0xe9, 0x3b, 0x21, 0xf1, 0x07, 0xcc, 0x54, 0xde, 0xc2, 0x6f, 0x53, 0xfe, 0xe5, 0x60, 0x4e, 0xb0, 0x9a, 0x36, 0xaf, 0xe6, 0xb6, 0x65, 0xb6, 0x32, 0x4a, 0x84, 0xc7, 0xda, 0x7b, 0x7d, 0xd0, 0x1d, 0x92, 0x78, 0xe4, 0x72, 0xf1, 0x5a, 0x5c, 0xe9, 0xff, 0x0f, 0xd9, 0x3d, 0x0a, 0xa0, 0x60, 0x4d, 0xd2, 0xdf, 0x8d, 0x5b, 0xf6, 0xa9, 0x12, 0x73, 0x4e, 0xc5, 0x1d, 0xe7, 0x7f, 0x0c, 0xe0, 0x99, 0xba, 0x11, 0x67, 0x02, 0x10, 0xa6, 0xa2, 0x06, 0x10, 0x6b, 0x0e, 0xde, 0x2d, 0xed, 0x85, 0x8a, 0x6b, 0xc4, 0x11, 0xe7, 0x61, 0x3e, 0x6f, 0x80, 0xe1, 0xaa, 0x52, 0xc3, 0x23, 0xe3, 0x0f, 0xa8, 0x49, 0x95, 0x1c, 0xc9, 0xb7, 0x76, 0xe4, 0xcc, 0x58, 0xc9, 0x0c, 0xfc, 0x8f, 0x44, 0x2d, 0xf6, 0x41, 0x51, 0xa7, 0xfd, 0x4a, 0x3d, 0xd6, 0x1a, 0x43, 0x36, 0xda, 0x21, 0xd0, 0x39, 0x44, 0x63, 0x5d, 0x3f, 0xd6, 0x67, 0xbe, 0x74, 0x1e, 0xf4, 0x5b, 0x1f, 0x7c, 0xb2, 0x76, 0xd9, 0xf4, 0xde, 0x81, 0x07, 0xde, 0x64, 0x58, 0x2f, 0x79, 0x17, 0xc6, 0xea, 0xb3, 0x8e, 0x0a, 0x88, 0x90, 0xa4, 0xbe, 0xe4, 0x8b, 0xc9, 0x26, 0x17, 0xa3, 0x61, 0xcc, 0x7b, 0x1d, 0x25, 0xe0, 0x89, 0x45, 0x3c, 0xe0, 0xa5, 0x25, 0x44, 0xf8, 0x68, 0xdc, 0xb3, 0x24, 0x9d, 0xe7, 0x61, 0xe7, 0x9d, 0xf6, 0x3e, 0xfa, 0x07, 0x94, 0xe3, 0xc4, 0x61, 0x8c, 0x55, 0x47, 0x53, 0xee, 0x28, 0x1c, 0x52, 0xac, 0x8a, 0xd7, 0x8d, 0x53, 0x38, 0xf0, 0xda, 0xc3, 0x60, 0xa7, 0x69, 0x38, 0x1b, 0xb4, 0xa3, 0x9f, 0x19, 0x0b, 0x88, 0x7b, 0x47, 0x23, 0x80, 0x6a, 0xc4, 0xa4, 0xf2, 0xff, 0x30, 0x4b, 0xc6, 0xf9, 0x33, 0x7a, 0xb5, 0x4c, 0x86, 0x6e, 0x6b, 0xa5, 0x1d, 0xf5, 0x0c, 0x43, 0xea, 0xb5, 0x2e, 0x2b, 0x39, 0x79, 0x4c, 0x99, 0x17, 0xe0, 0xc3, 0x14, 0x33, 0xf0, 0x36, 0x81, 0xd2, 0xf1, 0xd9, 0x3a, 0x04, 0x36, 0x01, 0x8c, 0xaa, 0xae, 0x20, 0x20, 0x6a, 0x34, 0x58, 0xad, 0x6c, 0x03, 0x7a, 0xcb, 0x51, 0x1e, 0xf1, 0x28, 0xf6, 0xdc, 0xd0, 0x53, 0x05, 0xf0, 0x70, 0x49, 0xa1, 0x3b, 0x6c, 0x6c, 0x3c, 0x5b, 0x81, 0x70, 0xf1, 0x58, 0xc8, 0xf1, 0x2d, 0x46, 0xe1, 0x60, 0x93, 0x1b, 0xa1, 0x8b, 0xd5, 0x9a, 0xe1, 0x29, 0xec, 0x07, 0xa0, 0x65, 0x5f, 0xa4, 0x82, 0xeb, 0xbd, 0x3b, 0x85, 0x0d, 0x36, 0xb8, 0x32, 0xbb, 0xb7, 0x75, 0xf5, 0x38, 0xe3, 0xc1, 0xb3, 0xa4, 0x3e, 0xcf, 0x94, 0xca, 0x63, 0x0c, 0xa1, 0x5d, 0x50, 0x28, 0x13, 0xee, 0xd3, 0xe3, 0x5e, 0x8f, 0xd2, 0x3d, 0x2a, 0xb6, 0x38, 0x60, 0x04, 0x27, 0xd1, 0x59, 0x7c, 0xb2, 0x9d, 0xa2, 0xa5, };
13063 static const u8 ed25519_568_test_vectors_expected_sig[] = {
13064 	0x69, 0x7d, 0x4d, 0x89, 0x7e, 0x0e, 0x2c, 0xc0, 0x2b, 0xc1, 0xc2, 0xdd, 0xa5, 0x7f, 0x0d, 0xda, 0x62, 0x0b, 0x37, 0xe8, 0x61, 0x82, 0x2b, 0xb7, 0xf1, 0xa7, 0x01, 0x93, 0x5e, 0x95, 0x9e, 0xa0, 0xd8, 0x45, 0x3f, 0x74, 0x6f, 0xb9, 0x2c, 0x08, 0x7e, 0xd6, 0x5d, 0x98, 0x0e, 0xea, 0x1d, 0x6f, 0xdb, 0xf2, 0x3e, 0x99, 0xb2, 0x89, 0xaa, 0xe0, 0xdc, 0xbb, 0x12, 0x8e, 0xf8, 0x36, 0x64, 0x0a, };
13065 static const ec_test_case ed25519_568_test_case = {
13066 	.name = "EDDSA25519-SHA512/wei25519 568",
13067 	.ec_str_p = &wei25519_str_params,
13068 	.priv_key = ed25519_568_test_vectors_priv_key,
13069 	.priv_key_len = sizeof(ed25519_568_test_vectors_priv_key),
13070 	.nn_random = NULL,
13071 	.hash_type = SHA512,
13072 	.msg = (const char *)ed25519_568_test_vectors_message,
13073 	.msglen = sizeof(ed25519_568_test_vectors_message),
13074 	.sig_type = EDDSA25519,
13075 	.exp_sig = ed25519_568_test_vectors_expected_sig,
13076 	.exp_siglen = sizeof(ed25519_568_test_vectors_expected_sig),
13077 	.adata = NULL,
13078 	.adata_len = 0
13079 };
13080 
13081 /************************************************/
13082 static const u8 ed25519_569_test_vectors_priv_key[] = {
13083 	0x66, 0xda, 0x8b, 0x25, 0x4a, 0x37, 0x06, 0x73, 0x78, 0xf6, 0x81, 0x38, 0xaf, 0xed, 0xd6, 0x64, 0x96, 0x59, 0x6a, 0x05, 0x85, 0x52, 0x4c, 0x71, 0x6b, 0xde, 0x2b, 0x31, 0x24, 0xc3, 0xe7, 0xd1, };
13084 static const u8 ed25519_569_test_vectors_message[] = {
13085 	0x3f, 0xae, 0x36, 0x63, 0x88, 0x37, 0xd0, 0xed, 0xc8, 0xdc, 0xee, 0x51, 0x7e, 0x43, 0xc4, 0x88, 0xed, 0x57, 0xfa, 0x6c, 0x98, 0x53, 0xa7, 0x45, 0xaa, 0xed, 0xfb, 0x10, 0x9e, 0xc1, 0x40, 0x9f, 0xb8, 0xa2, 0xfe, 0x51, 0xd2, 0x3e, 0x0d, 0xd9, 0xfb, 0xfd, 0x94, 0xf9, 0x1c, 0x18, 0xe6, 0x11, 0x4d, 0x80, 0x89, 0x01, 0xbf, 0x61, 0x7d, 0x26, 0x67, 0xce, 0xeb, 0xd2, 0x05, 0xc5, 0xc6, 0x6f, 0x5d, 0x75, 0x34, 0xfd, 0x2e, 0xc3, 0x3d, 0xbf, 0xe5, 0x80, 0xad, 0x91, 0x9f, 0x50, 0x42, 0x04, 0xea, 0xf2, 0x42, 0xaf, 0x87, 0x00, 0xb1, 0x38, 0xcf, 0xbe, 0x0f, 0x37, 0x29, 0x19, 0xc0, 0x6b, 0x86, 0x1a, 0x27, 0xd7, 0x20, 0xd0, 0x9d, 0xf2, 0x0f, 0x4f, 0xb7, 0xb7, 0x48, 0xe7, 0x18, 0xb0, 0xfc, 0x48, 0x6d, 0xbd, 0xfc, 0xb6, 0x94, 0xcb, 0x3f, 0x14, 0x20, 0x03, 0x5a, 0xc1, 0xbe, 0x55, 0xd3, 0x1f, 0x30, 0xf9, 0x97, 0xa0, 0x43, 0xd0, 0x47, 0x08, 0xa5, 0xc5, 0x42, 0xee, 0x37, 0xc0, 0xf7, 0xfe, 0x0b, 0x32, 0x11, 0xd1, 0x8a, 0x87, 0x03, 0x3d, 0xcb, 0x15, 0xc7, 0x9e, 0x66, 0x81, 0xc4, 0x97, 0x05, 0x93, 0xd3, 0x2a, 0x13, 0xc4, 0x8f, 0x0a, 0x3a, 0xf8, 0xbf, 0xc1, 0x36, 0xe0, 0xf9, 0xb5, 0x6a, 0x12, 0x3b, 0x86, 0xc4, 0xc6, 0x40, 0xb6, 0x50, 0xcb, 0x7d, 0xee, 0x9a, 0x89, 0xe8, 0x2a, 0xee, 0xee, 0x77, 0x3b, 0x5c, 0xb0, 0x32, 0xfc, 0xa4, 0x1c, 0x20, 0xc4, 0x07, 0x32, 0x8b, 0xfe, 0xd2, 0x92, 0x44, 0xe4, 0x60, 0x55, 0xa8, 0x31, 0x14, 0x61, 0x4d, 0x3d, 0xb5, 0x65, 0x81, 0x60, 0x4b, 0x11, 0x5f, 0xba, 0x14, 0xf6, 0x18, 0xe1, 0x02, 0xa1, 0xe1, 0x6c, 0xb0, 0x36, 0xea, 0x69, 0xdf, 0x92, 0x75, 0xb9, 0x77, 0xa0, 0x85, 0x81, 0x18, 0xc9, 0x1a, 0x34, 0xb9, 0xa8, 0x51, 0x9b, 0xd0, 0xda, 0xc3, 0xb6, 0x14, 0x34, 0xea, 0x08, 0x8f, 0x38, 0x1b, 0xa0, 0x8b, 0xc1, 0x58, 0x31, 0x89, 0xa4, 0xa7, 0xc8, 0xb6, 0xad, 0x18, 0xf7, 0x32, 0xd7, 0x4e, 0xff, 0x3a, 0xce, 0xf4, 0xb6, 0x90, 0x4d, 0xf5, 0x8c, 0x64, 0x69, 0x43, 0x21, 0x51, 0x37, 0x2d, 0xf9, 0x32, 0x7a, 0xe7, 0x1a, 0x0f, 0x35, 0x6c, 0x94, 0x46, 0x8d, 0xcf, 0xc2, 0xe4, 0xa5, 0xc0, 0xe4, 0xec, 0x0b, 0x16, 0x6d, 0x90, 0xcd, 0x46, 0x5f, 0x92, 0x60, 0xeb, 0xd6, 0xa7, 0xa6, 0x2c, 0xe6, 0xc7, 0x15, 0xbc, 0xc7, 0x15, 0xbe, 0x0c, 0x7e, 0x1f, 0x28, 0xc4, 0x45, 0x60, 0x12, 0xd3, 0x31, 0x77, 0xa7, 0xd4, 0x11, 0x3c, 0x9a, 0x5a, 0x22, 0xac, 0xfa, 0xf2, 0xd6, 0xb6, 0x33, 0x09, 0x07, 0x8f, 0xc1, 0xb1, 0xba, 0xa8, 0xf3, 0x6c, 0x7e, 0x86, 0x6c, 0x1f, 0x97, 0x2a, 0x65, 0x00, 0xa5, 0xee, 0xa7, 0x92, 0x01, 0x65, 0x1a, 0x73, 0x05, 0x20, 0x8b, 0x6c, 0x93, 0xc4, 0x92, 0xbc, 0x77, 0xca, 0xcb, 0xc9, 0x9c, 0x9c, 0xde, 0xd1, 0x79, 0xe6, 0x64, 0xa2, 0xf4, 0xe1, 0x69, 0x38, 0xcc, 0x26, 0xfc, 0xa8, 0xb4, 0x33, 0xeb, 0x80, 0x12, 0xf7, 0xb3, 0xad, 0x19, 0xba, 0x1f, 0xb8, 0x58, 0xfe, 0x4a, 0x00, 0xfb, 0x3d, 0x1f, 0x8f, 0xd0, 0xed, 0xdf, 0x0c, 0x37, 0xdc, 0xdb, 0x2e, 0x5d, 0x35, 0xc2, 0x54, 0x6f, 0x22, 0xe8, 0xc0, 0xf8, 0xce, 0x90, 0xe2, 0xdf, 0x8a, 0xbf, 0x24, 0x82, 0x7a, 0x01, 0x9b, 0x2c, 0x33, 0xfc, 0x59, 0x0b, 0xbe, 0x71, 0x2f, 0x01, 0x92, 0x87, 0x00, 0x2b, 0xc2, 0x21, 0x7c, 0x0d, 0xc0, 0x93, 0x1d, 0xc8, 0xed, 0x8f, 0x50, 0xbb, 0x44, 0x2f, 0x8b, 0x2d, 0xe2, 0x78, 0x57, 0x36, 0x2c, 0xe5, 0xa9, 0xfd, 0x97, 0xf0, 0xfd, 0x1b, 0x2b, 0x92, 0x51, 0xca, 0xd2, 0xa4, 0xac, 0xa1, 0xa9, 0x4d, 0xe2, 0xe9, 0x53, 0x90, 0x2d, 0x72, 0x28, 0x14, 0x24, 0x07, 0x44, 0x3b, 0x1d, 0x51, 0x71, 0x07, 0x64, 0x8a, 0x7b, 0xab, 0x83, 0x07, 0x49, 0x87, 0xd0, 0x97, 0x8b, 0xc6, 0x1d, 0x41, 0x9b, 0xc8, 0x45, 0x91, 0xc9, 0x69, 0xc3, 0xd6, 0xf4, 0xe8, 0x6f, 0xc4, 0x73, 0x87, 0x37, 0xbc, 0x05, 0x58, 0x75, 0x5c, 0x11, 0x0a, };
13086 static const u8 ed25519_569_test_vectors_expected_sig[] = {
13087 	0x40, 0x82, 0xa5, 0xbc, 0x73, 0x0f, 0xb5, 0x4b, 0x6b, 0xd0, 0xbc, 0xd2, 0xa0, 0x44, 0xed, 0x5d, 0x3d, 0x32, 0x7d, 0xc1, 0x9c, 0xea, 0xc8, 0x82, 0x5e, 0x62, 0x9b, 0x9e, 0x64, 0x23, 0xcb, 0x1c, 0x61, 0x42, 0x36, 0xf0, 0x97, 0xa6, 0xb7, 0x3d, 0x47, 0x39, 0x47, 0xcb, 0x81, 0xc4, 0xe2, 0x70, 0x85, 0x2e, 0xe5, 0xf1, 0x3a, 0x5b, 0x03, 0xdc, 0x18, 0xe1, 0xc9, 0xc2, 0x7a, 0x9a, 0x68, 0x02, };
13088 static const ec_test_case ed25519_569_test_case = {
13089 	.name = "EDDSA25519-SHA512/wei25519 569",
13090 	.ec_str_p = &wei25519_str_params,
13091 	.priv_key = ed25519_569_test_vectors_priv_key,
13092 	.priv_key_len = sizeof(ed25519_569_test_vectors_priv_key),
13093 	.nn_random = NULL,
13094 	.hash_type = SHA512,
13095 	.msg = (const char *)ed25519_569_test_vectors_message,
13096 	.msglen = sizeof(ed25519_569_test_vectors_message),
13097 	.sig_type = EDDSA25519,
13098 	.exp_sig = ed25519_569_test_vectors_expected_sig,
13099 	.exp_siglen = sizeof(ed25519_569_test_vectors_expected_sig),
13100 	.adata = NULL,
13101 	.adata_len = 0
13102 };
13103 
13104 /************************************************/
13105 static const u8 ed25519_570_test_vectors_priv_key[] = {
13106 	0x27, 0x65, 0x48, 0x29, 0x0f, 0x3e, 0x0f, 0x90, 0x05, 0x15, 0xdc, 0x63, 0x36, 0x6c, 0x03, 0xfe, 0x0f, 0xc6, 0xee, 0x13, 0x0c, 0x21, 0xfb, 0x60, 0xa4, 0xdf, 0x9c, 0xf4, 0x64, 0x79, 0x7c, 0xda, };
13107 static const u8 ed25519_570_test_vectors_message[] = {
13108 	0xf0, 0xdb, 0x44, 0x2d, 0xe2, 0x9a, 0x7a, 0x1d, 0xed, 0x55, 0x0d, 0x12, 0x00, 0x02, 0xcc, 0x12, 0xab, 0xff, 0xf9, 0x8b, 0x1f, 0x57, 0x6d, 0x65, 0xbd, 0xe1, 0x6d, 0xea, 0xba, 0x68, 0x7e, 0x4e, 0x0b, 0x0d, 0x5a, 0x87, 0x48, 0xd7, 0x50, 0x3d, 0xa2, 0x96, 0x9c, 0x64, 0xd6, 0xa7, 0xc2, 0x8d, 0x27, 0xb6, 0xc9, 0x3a, 0xd2, 0x57, 0xce, 0x32, 0xec, 0xda, 0xee, 0x37, 0x5f, 0x43, 0xff, 0xf9, 0x7c, 0x43, 0x2d, 0x45, 0x3f, 0x71, 0x96, 0xc7, 0x09, 0xc3, 0xbd, 0xfb, 0x73, 0x88, 0xd4, 0xd8, 0xea, 0xf1, 0x39, 0xf1, 0x82, 0x94, 0x0c, 0xe1, 0x7b, 0x45, 0x52, 0xe2, 0xd2, 0x0a, 0xed, 0x55, 0x57, 0xba, 0x4d, 0x2a, 0xcb, 0xf8, 0x45, 0x73, 0x0c, 0x0a, 0x66, 0xb4, 0x5b, 0x40, 0x95, 0x0b, 0xaf, 0x6a, 0x94, 0x64, 0x37, 0xaf, 0x6c, 0x9e, 0x3b, 0x33, 0xa7, 0x9e, 0x04, 0xdc, 0xea, 0xe5, 0x7c, 0x2a, 0x54, 0x95, 0x42, 0xea, 0xbd, 0x21, 0x6b, 0xf1, 0x39, 0x48, 0xd4, 0x1f, 0xfb, 0x94, 0x83, 0xfe, 0x29, 0x80, 0x1f, 0xc8, 0xc1, 0x78, 0x28, 0x40, 0xde, 0xeb, 0x3f, 0xb4, 0xda, 0x31, 0x92, 0x78, 0x5b, 0xca, 0x13, 0xed, 0x0a, 0x9e, 0xff, 0x57, 0xd6, 0x13, 0x6b, 0xaf, 0xbf, 0x9d, 0xec, 0x69, 0x7b, 0x83, 0x24, 0x47, 0xb2, 0xb6, 0xe7, 0x30, 0xfa, 0x7f, 0x99, 0x95, 0xba, 0xc6, 0xb7, 0x83, 0x2e, 0xaa, 0x09, 0x90, 0x5e, 0xe4, 0x9d, 0x46, 0x5a, 0x5e, 0xe4, 0x50, 0xf5, 0x2d, 0x1a, 0x6d, 0x36, 0x4c, 0x61, 0x81, 0x44, 0xe8, 0x86, 0xe8, 0xef, 0x63, 0x3d, 0xc7, 0x9d, 0x0a, 0xf8, 0x93, 0xd1, 0x6b, 0x3e, 0xed, 0xa0, 0xfe, 0xfe, 0xfd, 0x87, 0x59, 0xf2, 0xa0, 0xda, 0x19, 0x30, 0x17, 0x0d, 0xd1, 0x9e, 0xb7, 0x8f, 0x0d, 0x7a, 0x7b, 0x74, 0x51, 0x54, 0x03, 0x37, 0x5a, 0x95, 0xbd, 0xbc, 0xce, 0x01, 0x8b, 0xc1, 0xed, 0xb0, 0x8d, 0x89, 0x7b, 0xb7, 0x98, 0xa9, 0x5e, 0x7e, 0x86, 0xa5, 0x2a, 0xf3, 0xd9, 0xb8, 0xa4, 0xa1, 0x4b, 0x03, 0x71, 0xd6, 0x34, 0x98, 0xdc, 0xb2, 0x01, 0x62, 0x48, 0xeb, 0xd0, 0xbe, 0x80, 0x0e, 0x9f, 0x21, 0xd5, 0x49, 0xe5, 0xe0, 0xe7, 0xb4, 0x89, 0x5c, 0xa5, 0xcb, 0x72, 0x5a, 0x0c, 0xab, 0x27, 0xda, 0x8a, 0x8b, 0x12, 0x99, 0xbe, 0x38, 0xa4, 0x26, 0x09, 0x00, 0xae, 0x10, 0xdf, 0x5b, 0xab, 0xa1, 0x1a, 0xe2, 0xba, 0xb7, 0x17, 0x9d, 0xd8, 0x45, 0x39, 0x69, 0x42, 0x9c, 0xcc, 0x4d, 0x41, 0x60, 0x55, 0xf2, 0xbc, 0xb9, 0x3c, 0x1c, 0xac, 0x6d, 0x7e, 0x80, 0x4c, 0xf8, 0x12, 0xdf, 0x14, 0x62, 0xf2, 0x2e, 0xe9, 0xe8, 0x33, 0xa9, 0x76, 0x9e, 0x8e, 0x67, 0x75, 0x50, 0x40, 0x2c, 0x40, 0x94, 0xdf, 0x21, 0x2f, 0xd2, 0xc5, 0xfc, 0xc0, 0x9a, 0x72, 0xc7, 0xce, 0x00, 0x77, 0x51, 0x00, 0x73, 0x09, 0x0d, 0x0e, 0x63, 0xdb, 0x63, 0x7d, 0x43, 0xd4, 0xc2, 0x1f, 0x86, 0x19, 0xd3, 0x4d, 0xa5, 0xdb, 0x08, 0x03, 0x3f, 0x68, 0x6c, 0xe8, 0xb8, 0xa0, 0x82, 0x12, 0x22, 0xf9, 0x54, 0x34, 0xac, 0x4e, 0x6f, 0x70, 0x30, 0x94, 0xed, 0xde, 0xd6, 0xfb, 0x1b, 0x84, 0x6e, 0x97, 0x96, 0x50, 0x97, 0x9d, 0x3c, 0x77, 0x45, 0x3f, 0x40, 0xf7, 0xfe, 0xe7, 0xc3, 0xe8, 0x8a, 0x96, 0xfd, 0x1d, 0x70, 0x2e, 0x81, 0xc2, 0xa4, 0xf3, 0xf3, 0x75, 0x3c, 0x79, 0x64, 0x84, 0x2d, 0xfd, 0x9d, 0x39, 0x58, 0xa7, 0x43, 0xda, 0x06, 0x3d, 0x1d, 0x64, 0x8e, 0x51, 0xb2, 0x10, 0xa2, 0x8e, 0xd2, 0x48, 0x7f, 0x14, 0xd5, 0xf1, 0xbc, 0x6f, 0x33, 0x9b, 0x2d, 0xd1, 0x7a, 0x66, 0x1c, 0x39, 0x73, 0x6d, 0xa9, 0x9e, 0x4a, 0x4f, 0x07, 0x36, 0x03, 0x42, 0xd2, 0x37, 0xe3, 0x81, 0x3e, 0xa3, 0x99, 0x8d, 0x66, 0xeb, 0x31, 0xa2, 0xd7, 0x08, 0xaf, 0x06, 0x5c, 0x32, 0xb9, 0x27, 0xf7, 0x57, 0xc3, 0x7a, 0x80, 0x06, 0x60, 0x67, 0x4e, 0x97, 0x17, 0xba, 0x58, 0xf2, 0x80, 0xeb, 0x2a, 0xa4, 0x64, 0xfa, 0x74, 0x40, 0x21, 0x08, 0xa5, 0xd5, 0x66, 0x2e, 0x8d, 0x0f, 0xea, 0xf3, 0x29, 0x68, 0x7a, };
13109 static const u8 ed25519_570_test_vectors_expected_sig[] = {
13110 	0x88, 0xa1, 0x46, 0x26, 0x1a, 0xd1, 0x11, 0xc8, 0x0f, 0xa4, 0x29, 0x95, 0x77, 0xe7, 0x10, 0xf6, 0x85, 0x9c, 0xf0, 0xd1, 0xca, 0x80, 0xe5, 0x12, 0xa5, 0x52, 0xc7, 0x25, 0xb8, 0x38, 0x40, 0x37, 0xee, 0xcf, 0x64, 0x65, 0xce, 0x97, 0x58, 0x5c, 0x9d, 0x66, 0x0a, 0x41, 0xab, 0x91, 0x04, 0xe5, 0xf7, 0xc9, 0xb2, 0xf8, 0xec, 0x6f, 0xb2, 0x1f, 0x1d, 0xdd, 0x50, 0xd6, 0x5b, 0x9b, 0x66, 0x0e, };
13111 static const ec_test_case ed25519_570_test_case = {
13112 	.name = "EDDSA25519-SHA512/wei25519 570",
13113 	.ec_str_p = &wei25519_str_params,
13114 	.priv_key = ed25519_570_test_vectors_priv_key,
13115 	.priv_key_len = sizeof(ed25519_570_test_vectors_priv_key),
13116 	.nn_random = NULL,
13117 	.hash_type = SHA512,
13118 	.msg = (const char *)ed25519_570_test_vectors_message,
13119 	.msglen = sizeof(ed25519_570_test_vectors_message),
13120 	.sig_type = EDDSA25519,
13121 	.exp_sig = ed25519_570_test_vectors_expected_sig,
13122 	.exp_siglen = sizeof(ed25519_570_test_vectors_expected_sig),
13123 	.adata = NULL,
13124 	.adata_len = 0
13125 };
13126 
13127 /************************************************/
13128 static const u8 ed25519_571_test_vectors_priv_key[] = {
13129 	0x97, 0x2c, 0x06, 0x16, 0x55, 0x6e, 0xf2, 0x2c, 0x21, 0x48, 0x68, 0xfd, 0xd8, 0x22, 0xc5, 0x57, 0x39, 0xe1, 0xf9, 0x6a, 0x93, 0xae, 0x83, 0x51, 0x2a, 0xfd, 0xa9, 0xca, 0x7a, 0xa7, 0x4c, 0xd2, };
13130 static const u8 ed25519_571_test_vectors_message[] = {
13131 	0x86, 0x89, 0xe2, 0xf9, 0x5c, 0x8f, 0xd5, 0x0d, 0xc4, 0x46, 0x64, 0xa1, 0x8f, 0xb1, 0xa9, 0xf2, 0xc8, 0xf3, 0xee, 0x73, 0xc0, 0xf9, 0x58, 0x7e, 0xe2, 0x8b, 0xfa, 0x35, 0xc9, 0x23, 0x1c, 0x75, 0xbf, 0xd3, 0xd9, 0x53, 0x41, 0x74, 0xe5, 0xad, 0x3f, 0xa9, 0xf0, 0x92, 0xf2, 0x59, 0x94, 0x2a, 0x0f, 0xf0, 0xba, 0x2c, 0xa2, 0xcb, 0x59, 0x04, 0x3d, 0x19, 0x2c, 0xa8, 0xe3, 0xc8, 0x86, 0x9b, 0xed, 0xd2, 0x35, 0x4c, 0xbc, 0x5a, 0xc7, 0x82, 0xd7, 0x27, 0xc0, 0xb6, 0x94, 0x07, 0xf6, 0x8d, 0x13, 0x26, 0xdf, 0x65, 0xa6, 0x0c, 0x4d, 0x32, 0xf8, 0x7f, 0x19, 0xa1, 0x0f, 0x3d, 0x76, 0x5f, 0xf9, 0x23, 0x43, 0x4f, 0x55, 0x11, 0xd1, 0x34, 0xd3, 0x97, 0xc4, 0xfe, 0xf6, 0xbb, 0x19, 0x53, 0xab, 0xfc, 0xe6, 0x08, 0x27, 0xc3, 0x59, 0xaa, 0x4b, 0x54, 0xf9, 0x12, 0xaa, 0x8b, 0x17, 0xb8, 0x3d, 0xcc, 0x7e, 0x3b, 0xcb, 0xc5, 0x05, 0xba, 0x04, 0x6f, 0xe5, 0x7c, 0x16, 0xda, 0xcf, 0x4e, 0xe2, 0xfa, 0xd5, 0x38, 0xbc, 0x06, 0x81, 0x7c, 0x9b, 0x9d, 0x8d, 0xbc, 0x5f, 0x9d, 0x9b, 0xbf, 0x9f, 0x4a, 0x93, 0x4f, 0x14, 0xa4, 0x2c, 0x29, 0xe0, 0xe2, 0xf3, 0xa4, 0x9f, 0x46, 0xb2, 0x0e, 0xe7, 0x6c, 0xfe, 0x20, 0xde, 0xa1, 0xe9, 0x74, 0x50, 0xeb, 0x6a, 0x8f, 0xda, 0x04, 0x81, 0x68, 0xdd, 0x82, 0x78, 0x10, 0x20, 0x7f, 0x00, 0x5a, 0x3c, 0xaa, 0x93, 0xca, 0x11, 0xf4, 0xee, 0x60, 0x8a, 0x7a, 0x93, 0x55, 0x49, 0x43, 0x13, 0xae, 0xc8, 0xd7, 0x07, 0x5a, 0xfc, 0x94, 0xc7, 0xcc, 0xcc, 0x75, 0xc2, 0x31, 0x9b, 0xb4, 0x58, 0xc0, 0xce, 0x37, 0x3e, 0x9d, 0x00, 0x7f, 0x75, 0x3b, 0x33, 0xb5, 0x27, 0x93, 0xd5, 0x84, 0x96, 0xb2, 0xd2, 0x5c, 0xd1, 0xdc, 0xd7, 0x83, 0x2a, 0xac, 0x5d, 0xdb, 0x38, 0xf4, 0xdb, 0x19, 0xc4, 0x27, 0x21, 0x9e, 0x1a, 0x04, 0x20, 0xea, 0xd4, 0x7b, 0xa9, 0x5a, 0xb6, 0xd8, 0x9c, 0x65, 0x93, 0x90, 0x41, 0xcc, 0x73, 0x4c, 0x08, 0xeb, 0x6b, 0x47, 0x6c, 0xaf, 0x7f, 0xc7, 0x6c, 0x59, 0x8d, 0x94, 0x7f, 0xf4, 0x44, 0xb1, 0x07, 0x70, 0xf6, 0x29, 0x45, 0xae, 0x65, 0x04, 0x4f, 0x78, 0x09, 0x82, 0x99, 0xe2, 0x62, 0x6b, 0x63, 0x8a, 0x73, 0x28, 0xd1, 0xb7, 0xda, 0xa5, 0x88, 0x9e, 0x8d, 0xb9, 0x4b, 0xbf, 0xf2, 0xde, 0xd6, 0x2e, 0x14, 0x46, 0x37, 0x60, 0x22, 0x7c, 0x3f, 0x32, 0x6e, 0xd4, 0x93, 0x56, 0x5d, 0xdf, 0x0a, 0x17, 0x61, 0xb8, 0xe4, 0xbb, 0x7d, 0x24, 0x10, 0xfa, 0x0f, 0xdb, 0xf3, 0x56, 0x84, 0x39, 0x7e, 0xef, 0xea, 0x95, 0x89, 0x58, 0x89, 0xa0, 0xa9, 0xdf, 0xfc, 0x5e, 0x02, 0xc0, 0x92, 0x38, 0x3b, 0x7c, 0xe7, 0x4d, 0x2d, 0x90, 0x93, 0x99, 0x16, 0xf2, 0x6b, 0x71, 0xaf, 0xd2, 0x65, 0xf8, 0xbe, 0xc7, 0x4f, 0x0d, 0xe2, 0x47, 0xc9, 0x64, 0x39, 0x05, 0x58, 0x3d, 0xf3, 0xce, 0xe2, 0x35, 0x37, 0xd6, 0xb5, 0x68, 0xc8, 0x33, 0x8c, 0xe5, 0xfe, 0xe4, 0x2f, 0x7d, 0xd1, 0x5d, 0xad, 0x52, 0x47, 0xf0, 0x09, 0xac, 0xbf, 0xd5, 0xd7, 0x69, 0xb6, 0x36, 0x69, 0x59, 0xcd, 0x0a, 0xe1, 0x50, 0xf5, 0x8f, 0x7c, 0x80, 0xfa, 0x10, 0xd9, 0x89, 0xed, 0x90, 0x11, 0x93, 0x72, 0xe5, 0xfe, 0xa5, 0xda, 0x48, 0xa4, 0xe8, 0xea, 0x9c, 0x72, 0x78, 0x75, 0xdc, 0x4a, 0x20, 0x05, 0xb0, 0xdc, 0x2e, 0x3f, 0x69, 0x7c, 0x0c, 0xe0, 0xa4, 0xbd, 0xb2, 0xf7, 0x50, 0xc0, 0x4f, 0xbc, 0x0c, 0x27, 0xd0, 0x2d, 0xd8, 0x28, 0x6e, 0x54, 0xc9, 0xc3, 0x95, 0x9b, 0x6f, 0xfb, 0xdb, 0x1d, 0xe2, 0xaf, 0xfe, 0x9e, 0x78, 0x26, 0x51, 0xe5, 0x16, 0x8a, 0x50, 0x0a, 0xfe, 0xd0, 0x37, 0xb3, 0xe1, 0x79, 0x0d, 0xdd, 0x59, 0x38, 0x51, 0xa6, 0xa6, 0xcc, 0xca, 0x9f, 0xff, 0xb4, 0xa9, 0x9e, 0x27, 0xdf, 0x43, 0x81, 0x88, 0x71, 0x53, 0x6a, 0xb0, 0x4f, 0x14, 0xa0, 0x6a, 0x1c, 0x7c, 0xb4, 0x7b, 0xed, 0x62, 0x41, 0xce, 0x74, 0x30, 0xad, 0x3e, 0x64, 0x0a, 0x72, 0x67, 0x52, 0xfa, 0x06, 0xa9, };
13132 static const u8 ed25519_571_test_vectors_expected_sig[] = {
13133 	0x54, 0xdd, 0x06, 0xfb, 0xb3, 0xd7, 0xc6, 0x3f, 0x8c, 0xda, 0xf7, 0x83, 0xc2, 0xd7, 0xba, 0xc1, 0x6b, 0x4c, 0x82, 0x6e, 0x2d, 0x1b, 0x18, 0x07, 0xc8, 0x4e, 0x04, 0x9f, 0x64, 0xe2, 0x71, 0xb2, 0x1c, 0xfa, 0x3e, 0x37, 0xc3, 0x44, 0x26, 0x02, 0x87, 0x80, 0x5d, 0x71, 0x88, 0x06, 0xb6, 0x2c, 0x56, 0xb4, 0x7f, 0x6d, 0x5c, 0x50, 0x81, 0x25, 0xc9, 0xfb, 0x5d, 0x5e, 0xa3, 0x5f, 0xd5, 0x01, };
13134 static const ec_test_case ed25519_571_test_case = {
13135 	.name = "EDDSA25519-SHA512/wei25519 571",
13136 	.ec_str_p = &wei25519_str_params,
13137 	.priv_key = ed25519_571_test_vectors_priv_key,
13138 	.priv_key_len = sizeof(ed25519_571_test_vectors_priv_key),
13139 	.nn_random = NULL,
13140 	.hash_type = SHA512,
13141 	.msg = (const char *)ed25519_571_test_vectors_message,
13142 	.msglen = sizeof(ed25519_571_test_vectors_message),
13143 	.sig_type = EDDSA25519,
13144 	.exp_sig = ed25519_571_test_vectors_expected_sig,
13145 	.exp_siglen = sizeof(ed25519_571_test_vectors_expected_sig),
13146 	.adata = NULL,
13147 	.adata_len = 0
13148 };
13149 
13150 /************************************************/
13151 static const u8 ed25519_572_test_vectors_priv_key[] = {
13152 	0xe0, 0x40, 0x5d, 0x37, 0x89, 0x3e, 0x89, 0xf5, 0x38, 0x11, 0xd6, 0xd4, 0x46, 0xe1, 0xf1, 0x93, 0xf5, 0x1a, 0xfa, 0x1b, 0xbb, 0xa7, 0x25, 0xf9, 0x5e, 0xb4, 0x80, 0x33, 0x42, 0x4a, 0x25, 0x09, };
13153 static const u8 ed25519_572_test_vectors_message[] = {
13154 	0xdf, 0x58, 0xc4, 0xfd, 0x07, 0x02, 0xa2, 0x0f, 0xaf, 0xa3, 0xd1, 0xd4, 0xfe, 0x7d, 0x85, 0x93, 0x8b, 0x12, 0x0f, 0xc1, 0x1e, 0x8d, 0x41, 0xb6, 0x01, 0xf0, 0xe6, 0x0e, 0x42, 0x23, 0x6a, 0x49, 0xf1, 0x26, 0x81, 0x3b, 0xd5, 0x12, 0xee, 0x71, 0x35, 0x90, 0x61, 0xe1, 0x3e, 0xb3, 0x14, 0xd4, 0x17, 0xf5, 0x6d, 0x6d, 0x56, 0x02, 0x85, 0xfa, 0x89, 0x91, 0x21, 0x32, 0x84, 0xc4, 0x2b, 0xc2, 0xce, 0xf2, 0xdc, 0x93, 0x7b, 0xdc, 0x0b, 0x5e, 0x9d, 0xc2, 0x26, 0x9a, 0xfa, 0xb3, 0x2d, 0xb3, 0x0e, 0x68, 0x49, 0x85, 0x59, 0x51, 0xcf, 0xbc, 0x53, 0xec, 0xfa, 0x01, 0x64, 0x38, 0x63, 0xe0, 0x32, 0x89, 0x95, 0xfe, 0x85, 0x0c, 0x0d, 0xb5, 0x54, 0x21, 0xbf, 0xa5, 0x64, 0x60, 0x1b, 0x8c, 0x9d, 0xb7, 0x55, 0x2c, 0x7e, 0x6a, 0xa7, 0xad, 0xfa, 0x15, 0xa5, 0x80, 0x21, 0xa8, 0x42, 0x66, 0xe9, 0x59, 0x5c, 0x65, 0xfc, 0xa4, 0xa1, 0x5f, 0xa7, 0x0f, 0x55, 0xf5, 0xd2, 0x12, 0xc9, 0xe2, 0x77, 0xff, 0xb8, 0x30, 0xf4, 0xca, 0xd1, 0x86, 0x1f, 0x3f, 0x49, 0x5a, 0x9d, 0x67, 0x2f, 0x56, 0x91, 0x31, 0x06, 0x39, 0xc1, 0x2d, 0xcd, 0x07, 0xe3, 0xef, 0x17, 0xa2, 0x37, 0x50, 0xbc, 0xb4, 0x6b, 0x7a, 0xd7, 0xea, 0xc4, 0x62, 0xeb, 0x51, 0x22, 0x25, 0xf3, 0xbe, 0x7e, 0x32, 0xf8, 0xf4, 0x98, 0x7a, 0x11, 0xdf, 0x34, 0x11, 0x66, 0x06, 0x2b, 0x43, 0xc6, 0x3a, 0xb8, 0x58, 0xa6, 0x00, 0x49, 0x76, 0x67, 0xfb, 0xb8, 0x8e, 0x93, 0xc7, 0xe2, 0xe0, 0xaa, 0xb4, 0x1c, 0x09, 0xc0, 0x23, 0xeb, 0x90, 0x2e, 0xc3, 0xba, 0xf6, 0x79, 0xe2, 0x5b, 0x96, 0xe1, 0x06, 0x92, 0x1a, 0x91, 0x4f, 0xd5, 0xde, 0x20, 0x0a, 0x47, 0x88, 0x9d, 0xe2, 0x3e, 0x7b, 0x65, 0xd0, 0xcc, 0xdf, 0x0c, 0x29, 0x03, 0x64, 0x67, 0xa1, 0x21, 0x0c, 0x00, 0x30, 0x30, 0x9a, 0x2d, 0x04, 0xec, 0x25, 0x6d, 0x5a, 0x4d, 0x8b, 0x97, 0xd4, 0x6a, 0x3e, 0x15, 0xf3, 0x45, 0xb6, 0x67, 0x17, 0x08, 0x03, 0xcd, 0xac, 0xf6, 0xcb, 0x48, 0xad, 0xd0, 0xa1, 0x34, 0x62, 0xdd, 0x30, 0xfa, 0x06, 0x2b, 0xd4, 0x56, 0x66, 0x41, 0xda, 0x07, 0xd7, 0xf6, 0x1e, 0x06, 0x36, 0x86, 0xed, 0xd9, 0x6b, 0xfe, 0x8f, 0x97, 0xb9, 0x86, 0xb7, 0xc0, 0xe4, 0x42, 0x49, 0xcd, 0x2d, 0x73, 0x17, 0x47, 0x29, 0x99, 0xb8, 0xee, 0x4e, 0xa8, 0x0c, 0x90, 0x2f, 0x3b, 0x18, 0x89, 0x36, 0x71, 0x2e, 0x89, 0xd8, 0xbf, 0x02, 0xce, 0x8a, 0xe7, 0x7b, 0x6b, 0x31, 0xab, 0xb0, 0x63, 0x20, 0x65, 0x45, 0x5d, 0xdd, 0x9f, 0x9d, 0x1c, 0xd9, 0x53, 0xa4, 0xa4, 0x9a, 0xac, 0x1a, 0x15, 0x16, 0x9e, 0x68, 0x7d, 0x4f, 0xd3, 0xf7, 0xc2, 0xed, 0xfb, 0x3a, 0xab, 0xc3, 0xb6, 0x61, 0x55, 0xf7, 0xd3, 0x15, 0xf8, 0xa2, 0x94, 0xfa, 0xdd, 0xff, 0xdb, 0x49, 0x51, 0x36, 0x7a, 0x0c, 0xb8, 0x70, 0x75, 0x9e, 0x85, 0xa8, 0x38, 0xaf, 0x66, 0xba, 0x3f, 0xc1, 0x03, 0xda, 0x2b, 0xab, 0xc3, 0xf3, 0x81, 0x69, 0x6e, 0xf8, 0x88, 0x2d, 0x85, 0xa8, 0x27, 0x8d, 0x5f, 0xac, 0x3a, 0x72, 0xf1, 0x6e, 0xb1, 0x19, 0xee, 0x99, 0x00, 0xb1, 0xfd, 0x98, 0x6c, 0x2a, 0x9f, 0x94, 0xee, 0xd8, 0xe0, 0xd4, 0xf2, 0x73, 0x69, 0x7e, 0x43, 0x63, 0xa9, 0x75, 0xff, 0x6a, 0x7b, 0x80, 0xd5, 0xb4, 0xec, 0x53, 0x55, 0xbf, 0x63, 0xb4, 0x2b, 0x71, 0xcd, 0x48, 0x42, 0x40, 0x1d, 0x38, 0xb5, 0xe0, 0x0c, 0xc9, 0x7b, 0xfd, 0xa4, 0x0e, 0x45, 0x66, 0x53, 0x68, 0x3b, 0xc8, 0xe6, 0xda, 0xde, 0x7d, 0xcf, 0x98, 0x5a, 0x97, 0xb0, 0xb5, 0x77, 0x6c, 0x4d, 0x72, 0xca, 0x13, 0xa1, 0x47, 0x4e, 0x4e, 0xb2, 0xec, 0xcf, 0xcd, 0x42, 0x87, 0x86, 0xdd, 0xd0, 0x24, 0x6d, 0x73, 0xa6, 0x37, 0x7a, 0x79, 0xcb, 0x8d, 0xa7, 0x20, 0xe2, 0x26, 0xc1, 0x94, 0x89, 0xbd, 0x10, 0xce, 0xdd, 0xe7, 0x4b, 0x49, 0xfa, 0xc2, 0xcf, 0xa2, 0x07, 0x12, 0x9c, 0x6a, 0x10, 0x8a, 0xa1, 0x64, 0xbe, 0x9d, 0x80, 0x9c, 0x4d, 0x31, 0x14, 0x73, 0x60, };
13155 static const u8 ed25519_572_test_vectors_expected_sig[] = {
13156 	0x77, 0xdd, 0xd4, 0x91, 0xca, 0x66, 0x2e, 0xbf, 0xfb, 0x12, 0xf7, 0xf4, 0x92, 0xd7, 0xfb, 0xc1, 0xa1, 0xb4, 0x47, 0xf6, 0xc8, 0x59, 0x98, 0xf2, 0xf7, 0xcc, 0x9a, 0xdc, 0xe6, 0x7d, 0xe6, 0x3b, 0x6e, 0xeb, 0xd0, 0x81, 0x17, 0x84, 0x5a, 0x03, 0x02, 0xf7, 0x34, 0x97, 0x14, 0xba, 0x9d, 0xb2, 0xaf, 0x58, 0x04, 0x8b, 0x85, 0x83, 0x7d, 0x76, 0x60, 0xec, 0x3d, 0xeb, 0xee, 0xe2, 0xd0, 0x0f, };
13157 static const ec_test_case ed25519_572_test_case = {
13158 	.name = "EDDSA25519-SHA512/wei25519 572",
13159 	.ec_str_p = &wei25519_str_params,
13160 	.priv_key = ed25519_572_test_vectors_priv_key,
13161 	.priv_key_len = sizeof(ed25519_572_test_vectors_priv_key),
13162 	.nn_random = NULL,
13163 	.hash_type = SHA512,
13164 	.msg = (const char *)ed25519_572_test_vectors_message,
13165 	.msglen = sizeof(ed25519_572_test_vectors_message),
13166 	.sig_type = EDDSA25519,
13167 	.exp_sig = ed25519_572_test_vectors_expected_sig,
13168 	.exp_siglen = sizeof(ed25519_572_test_vectors_expected_sig),
13169 	.adata = NULL,
13170 	.adata_len = 0
13171 };
13172 
13173 /************************************************/
13174 static const u8 ed25519_573_test_vectors_priv_key[] = {
13175 	0x57, 0x56, 0xe7, 0x52, 0xdf, 0xf6, 0x9e, 0x3e, 0xed, 0x84, 0x8e, 0x4a, 0x49, 0xc7, 0xa8, 0xba, 0xca, 0x12, 0x15, 0x4f, 0x94, 0x31, 0xde, 0xc3, 0x56, 0x26, 0xef, 0x8d, 0x75, 0xa4, 0x45, 0x14, };
13176 static const u8 ed25519_573_test_vectors_message[] = {
13177 	0xeb, 0x21, 0x90, 0xa3, 0x21, 0x9c, 0x79, 0x2b, 0x66, 0x66, 0xb2, 0x75, 0x27, 0x33, 0xad, 0x9f, 0x86, 0xfc, 0x39, 0x01, 0x55, 0xc4, 0xb4, 0x38, 0xbe, 0x19, 0x69, 0x59, 0x38, 0x3b, 0x25, 0xf3, 0xa7, 0x49, 0x53, 0x0d, 0x5a, 0x4b, 0x15, 0xeb, 0xe2, 0xc1, 0x8d, 0x99, 0x17, 0x8e, 0x6d, 0x45, 0xbb, 0x4a, 0xa2, 0x12, 0x0f, 0x95, 0xa3, 0x52, 0xe0, 0x40, 0x6c, 0x63, 0xac, 0x86, 0x72, 0x48, 0xd9, 0xef, 0xba, 0x12, 0x42, 0x31, 0x06, 0x48, 0x73, 0xc8, 0x2f, 0xe9, 0x95, 0xdd, 0x03, 0x1c, 0x7c, 0xbc, 0x7d, 0x15, 0xec, 0x19, 0x1f, 0xbb, 0x6c, 0x47, 0x4d, 0xc4, 0xc7, 0x77, 0xe8, 0xf4, 0x57, 0x84, 0x1e, 0xb4, 0x62, 0x48, 0x41, 0xc1, 0x52, 0xd1, 0x5e, 0xde, 0x26, 0xe7, 0x84, 0x79, 0xa6, 0xa2, 0x5f, 0xfa, 0x33, 0x55, 0x63, 0xf1, 0x06, 0x4e, 0xf0, 0x95, 0x58, 0xb9, 0x10, 0xe2, 0x60, 0x84, 0x18, 0x82, 0x0f, 0x49, 0x55, 0x4b, 0x67, 0x0c, 0x6b, 0xab, 0x34, 0xd1, 0xd6, 0x09, 0x84, 0xde, 0xa5, 0x0e, 0xd6, 0xa3, 0x75, 0xf4, 0x5a, 0x74, 0xbe, 0xad, 0xfb, 0x04, 0xbd, 0x93, 0x00, 0xbd, 0x59, 0x4e, 0x2e, 0x20, 0xea, 0x5d, 0x30, 0x52, 0xbb, 0x7d, 0xdc, 0x51, 0xa9, 0x49, 0xa0, 0x04, 0x79, 0x72, 0x68, 0x2e, 0xbe, 0x66, 0xd3, 0x8a, 0xac, 0x62, 0x92, 0x72, 0x70, 0xde, 0x42, 0x15, 0x0d, 0x58, 0x22, 0x1d, 0x03, 0xb8, 0xac, 0xe3, 0x58, 0x99, 0x33, 0x48, 0x7b, 0xf2, 0x3d, 0x29, 0xc5, 0xc2, 0xc8, 0x43, 0xae, 0xfa, 0x2e, 0x1c, 0xa2, 0x2f, 0x9d, 0x16, 0x80, 0xf8, 0x0c, 0x76, 0x6d, 0x14, 0x3c, 0xe5, 0xec, 0xef, 0x25, 0x3a, 0x74, 0x5c, 0xb7, 0x1e, 0x72, 0xf6, 0x50, 0x4a, 0xd9, 0x11, 0xf7, 0xcb, 0x4a, 0x81, 0x9c, 0xd0, 0x74, 0x86, 0x3a, 0x92, 0x70, 0x69, 0x29, 0xa3, 0x14, 0x2f, 0x8d, 0xb7, 0xac, 0x16, 0x41, 0x02, 0xac, 0x2c, 0xa0, 0xd2, 0xe1, 0x9a, 0x72, 0x5e, 0x1b, 0x5f, 0x81, 0xf4, 0x43, 0xc7, 0x3e, 0x04, 0x84, 0xf2, 0x6a, 0x45, 0xa3, 0xae, 0xf8, 0x4f, 0x1f, 0x3f, 0xa0, 0x4a, 0x4a, 0xc6, 0x95, 0xd2, 0xda, 0xb6, 0xef, 0xba, 0x45, 0x6a, 0x28, 0x1a, 0x39, 0x73, 0xcc, 0x18, 0x6e, 0x68, 0x0a, 0x66, 0xdf, 0x52, 0x1a, 0x4d, 0x1f, 0x9e, 0xdf, 0x4d, 0xfb, 0x27, 0x4a, 0x42, 0x70, 0x97, 0xbf, 0x86, 0x32, 0x81, 0xcf, 0xb0, 0xed, 0x80, 0xf8, 0xd7, 0x67, 0x66, 0x38, 0xd6, 0xcd, 0xac, 0x93, 0x78, 0x43, 0xef, 0xbc, 0xfc, 0xe9, 0x1d, 0xe1, 0xdf, 0x6c, 0x52, 0xb5, 0x94, 0x57, 0x1b, 0x93, 0x15, 0x60, 0x0e, 0x4b, 0x65, 0x52, 0xde, 0xfb, 0x84, 0x37, 0xa8, 0x07, 0xba, 0x21, 0x29, 0x8e, 0x3d, 0x97, 0x22, 0x12, 0xba, 0x31, 0x46, 0x92, 0x91, 0x7f, 0x40, 0x07, 0x53, 0x11, 0xac, 0xd0, 0x09, 0x39, 0x52, 0x41, 0xb9, 0xf1, 0xb2, 0x56, 0xc5, 0x15, 0x73, 0x5d, 0xc6, 0x74, 0xf8, 0xe8, 0x66, 0xd1, 0xee, 0xb4, 0xc3, 0x28, 0x54, 0x8a, 0xee, 0x71, 0x23, 0x1c, 0x4c, 0x9d, 0x5b, 0xd2, 0x2e, 0x39, 0xde, 0x88, 0xd1, 0x9f, 0xab, 0xf4, 0x9f, 0x0b, 0x98, 0x69, 0xcb, 0xf8, 0x35, 0x21, 0x4b, 0x15, 0x52, 0x2a, 0x93, 0xd3, 0xa5, 0x00, 0x7b, 0x11, 0xf0, 0xb5, 0x0e, 0x52, 0x28, 0xd4, 0xee, 0xbb, 0x45, 0x71, 0xb3, 0x5d, 0xa8, 0x4f, 0x4f, 0x68, 0x7e, 0x3f, 0x43, 0x79, 0x3d, 0x54, 0xf3, 0x82, 0x5b, 0x37, 0xa5, 0x09, 0xea, 0x56, 0x4b, 0xdf, 0x21, 0x7f, 0xf4, 0xad, 0xf6, 0x84, 0x7b, 0xbe, 0xa4, 0x31, 0x6a, 0x1d, 0xbc, 0xc7, 0x44, 0x8e, 0xcd, 0x53, 0x63, 0xea, 0xab, 0xc1, 0x28, 0xde, 0xcf, 0x05, 0x4e, 0xe1, 0xa0, 0xee, 0x2d, 0x87, 0x19, 0x79, 0xf8, 0xa6, 0x3b, 0x26, 0x92, 0xb0, 0x9f, 0x6e, 0x98, 0x6a, 0x13, 0x8e, 0x7f, 0x68, 0xf6, 0x0a, 0xa4, 0x26, 0xa1, 0xc9, 0xb0, 0x1a, 0x49, 0x02, 0xe1, 0x3b, 0x17, 0xbc, 0x83, 0x12, 0x41, 0x0c, 0x28, 0xbe, 0xd2, 0x9b, 0x60, 0x1b, 0x0f, 0xc9, 0xf3, 0xbc, 0x2d, 0x22, 0x3f, 0x87, 0x52, 0x51, 0x10, 0x0f, 0x86, 0x9c, 0x6b, 0x58, 0x44, };
13178 static const u8 ed25519_573_test_vectors_expected_sig[] = {
13179 	0x81, 0x57, 0xd8, 0x33, 0x4d, 0xed, 0x1a, 0x32, 0x69, 0x9b, 0x35, 0x0a, 0xc0, 0xd4, 0x12, 0x00, 0x28, 0xcd, 0x8e, 0xf8, 0x18, 0x94, 0x48, 0x93, 0x48, 0x50, 0xe5, 0x0e, 0xe4, 0x99, 0x9d, 0x8f, 0xa2, 0xcd, 0x25, 0x76, 0x46, 0xd9, 0x2f, 0xba, 0x5d, 0x66, 0x2a, 0x82, 0x3e, 0x62, 0x20, 0x8a, 0xb4, 0xfb, 0xe0, 0x17, 0x14, 0xa8, 0x48, 0xa0, 0xb9, 0x0b, 0x55, 0xad, 0xcd, 0x24, 0x69, 0x02, };
13180 static const ec_test_case ed25519_573_test_case = {
13181 	.name = "EDDSA25519-SHA512/wei25519 573",
13182 	.ec_str_p = &wei25519_str_params,
13183 	.priv_key = ed25519_573_test_vectors_priv_key,
13184 	.priv_key_len = sizeof(ed25519_573_test_vectors_priv_key),
13185 	.nn_random = NULL,
13186 	.hash_type = SHA512,
13187 	.msg = (const char *)ed25519_573_test_vectors_message,
13188 	.msglen = sizeof(ed25519_573_test_vectors_message),
13189 	.sig_type = EDDSA25519,
13190 	.exp_sig = ed25519_573_test_vectors_expected_sig,
13191 	.exp_siglen = sizeof(ed25519_573_test_vectors_expected_sig),
13192 	.adata = NULL,
13193 	.adata_len = 0
13194 };
13195 
13196 /************************************************/
13197 static const u8 ed25519_574_test_vectors_priv_key[] = {
13198 	0xb9, 0x04, 0xac, 0xb1, 0x9e, 0x5c, 0xf8, 0x72, 0xd3, 0x64, 0x0c, 0xd1, 0x8d, 0xdf, 0x3c, 0x0b, 0x66, 0x57, 0xe0, 0x11, 0x7c, 0xe6, 0x59, 0xdb, 0xf5, 0x02, 0x59, 0x01, 0x5d, 0x3f, 0xbf, 0x32, };
13199 static const u8 ed25519_574_test_vectors_message[] = {
13200 	0x83, 0xf4, 0x12, 0x4d, 0x5a, 0xf9, 0x55, 0x13, 0x9b, 0x1b, 0xc5, 0x44, 0x1e, 0x97, 0xc5, 0xfa, 0xc4, 0x91, 0xb4, 0xea, 0x91, 0x14, 0x07, 0xe1, 0x54, 0x20, 0xa0, 0x34, 0x7e, 0xd7, 0xfa, 0x1f, 0x88, 0x19, 0xe3, 0x6c, 0x8e, 0xd5, 0x74, 0x0c, 0x99, 0xd4, 0x50, 0x5a, 0x78, 0xb6, 0x19, 0xd5, 0x60, 0x74, 0x9a, 0xf5, 0x0b, 0x05, 0x73, 0x51, 0x08, 0x16, 0xd6, 0x13, 0x22, 0xcd, 0xa9, 0x76, 0xa5, 0xd4, 0xca, 0x32, 0x05, 0xf5, 0xf0, 0xe6, 0x0e, 0x75, 0x9a, 0x5d, 0xf1, 0xa0, 0xbd, 0xf3, 0x6d, 0xfe, 0x97, 0x17, 0x90, 0x6a, 0xc5, 0x7c, 0xbf, 0xc9, 0x70, 0xab, 0x43, 0xb6, 0xfa, 0x18, 0xe6, 0xc0, 0x00, 0x6c, 0x84, 0xfc, 0x72, 0x54, 0x47, 0x0a, 0x0b, 0x77, 0x47, 0x27, 0xbf, 0x5f, 0x8e, 0x67, 0x94, 0x23, 0xa5, 0x31, 0xe4, 0x1c, 0xb5, 0x31, 0x0f, 0x9b, 0xcb, 0xf5, 0xa5, 0x44, 0x5e, 0xbc, 0x39, 0xfb, 0xd9, 0x09, 0xce, 0x11, 0xe9, 0x7b, 0xc2, 0xf6, 0x6a, 0x4a, 0x1b, 0xb6, 0xc2, 0xf1, 0x67, 0xf2, 0xc6, 0xe8, 0x0e, 0xb9, 0xb8, 0xb7, 0x2d, 0xf3, 0xe8, 0xcf, 0xd4, 0xe5, 0x14, 0x48, 0xdc, 0x14, 0xc0, 0xb8, 0x37, 0xf2, 0x94, 0x96, 0x93, 0xd1, 0xd0, 0x54, 0xc8, 0xf9, 0x5b, 0xff, 0x7f, 0x1e, 0x36, 0x45, 0x67, 0xd0, 0x34, 0xf2, 0x22, 0x3e, 0x15, 0x94, 0x77, 0x2a, 0x43, 0xdc, 0xfe, 0x05, 0x97, 0xfd, 0x6d, 0x13, 0x3b, 0x3f, 0x2e, 0x96, 0xff, 0xc5, 0x66, 0x7d, 0xd5, 0x92, 0x8f, 0x23, 0xec, 0x3c, 0x75, 0x0f, 0x84, 0x59, 0x93, 0xa3, 0x4e, 0x97, 0x76, 0x15, 0x9a, 0x68, 0x30, 0xd6, 0xfd, 0x90, 0x13, 0xee, 0x7a, 0xea, 0xa1, 0xfc, 0xcd, 0x69, 0xb9, 0x6d, 0xf2, 0x84, 0x70, 0x4f, 0xd0, 0x88, 0x88, 0xb1, 0x5b, 0x64, 0xe2, 0xe9, 0x0d, 0x57, 0x8c, 0x5c, 0xfc, 0x0f, 0x95, 0x69, 0x3f, 0x6a, 0xb6, 0x5c, 0x69, 0x47, 0x44, 0x6a, 0x85, 0x7c, 0x02, 0x9c, 0x7c, 0xa6, 0x60, 0x80, 0xb7, 0x54, 0xc7, 0x73, 0x4b, 0x78, 0x99, 0x8a, 0xbe, 0x9b, 0x7c, 0xc6, 0xef, 0xd0, 0x9a, 0x44, 0x18, 0x19, 0x4d, 0x88, 0xb3, 0x4e, 0xc6, 0xc3, 0x3a, 0xf6, 0x30, 0xdb, 0x81, 0xde, 0x5b, 0x99, 0xfe, 0x65, 0xaa, 0xc8, 0xb7, 0x33, 0x62, 0x37, 0x91, 0x19, 0xc7, 0x00, 0xd1, 0x07, 0xed, 0xfc, 0x19, 0xf2, 0x70, 0x76, 0x04, 0x68, 0xee, 0x8e, 0x5f, 0x15, 0x5d, 0x9a, 0x34, 0x7e, 0x57, 0xb5, 0x93, 0x0f, 0x32, 0x7a, 0x8d, 0x11, 0xc6, 0x67, 0x4d, 0xdd, 0x02, 0x0f, 0x9e, 0x7d, 0x9b, 0x76, 0x1d, 0xba, 0x5b, 0x83, 0xa8, 0x73, 0x02, 0xf1, 0x83, 0x3e, 0x5a, 0xbd, 0x49, 0x52, 0x6d, 0x66, 0x39, 0x1e, 0x5b, 0xf0, 0xe3, 0x5b, 0x44, 0x53, 0xd6, 0x30, 0xbf, 0x7d, 0x0a, 0xdb, 0xfe, 0x50, 0x1a, 0xef, 0x81, 0xe6, 0xc5, 0x93, 0x8f, 0x92, 0xcb, 0x75, 0x2f, 0x5f, 0x14, 0xd2, 0x80, 0x6f, 0x90, 0xae, 0x15, 0x46, 0x05, 0x1c, 0xcc, 0x7f, 0x91, 0x3c, 0x5d, 0x6a, 0x38, 0xff, 0x3b, 0x7b, 0x9a, 0x23, 0x66, 0x2e, 0xf1, 0xf0, 0x08, 0x08, 0xed, 0xb2, 0xfa, 0x31, 0xec, 0xba, 0x5c, 0x8d, 0x33, 0x87, 0xe8, 0x75, 0x41, 0xcd, 0x06, 0x16, 0xed, 0xbf, 0x3a, 0xaa, 0x35, 0xa5, 0x37, 0x92, 0x28, 0x61, 0xf4, 0x4c, 0xbd, 0x9f, 0x99, 0x2b, 0x82, 0x46, 0xd9, 0xc6, 0x4c, 0x41, 0x98, 0x81, 0x70, 0x1a, 0xb4, 0x3f, 0x7f, 0xd4, 0x64, 0x21, 0x0d, 0x80, 0x2b, 0xa6, 0x56, 0xd9, 0x5c, 0x0f, 0x24, 0xa3, 0x45, 0x99, 0xb2, 0x0b, 0x1e, 0xc2, 0x00, 0x11, 0x48, 0x5c, 0xfc, 0xb3, 0x18, 0x6b, 0x7b, 0xcf, 0x69, 0xd7, 0x45, 0x81, 0xa7, 0xa3, 0xee, 0xd6, 0x13, 0x4c, 0x4e, 0xec, 0xd6, 0x55, 0x74, 0xa4, 0x32, 0x0d, 0x9c, 0x57, 0xa8, 0x49, 0xc4, 0xe7, 0x8c, 0x8a, 0x5c, 0xe8, 0x25, 0x05, 0x00, 0x4a, 0x54, 0xf1, 0x9d, 0x4b, 0xdc, 0x82, 0x23, 0x40, 0x1b, 0x34, 0x94, 0x6b, 0x7d, 0x66, 0xe4, 0x7e, 0x63, 0xcf, 0x9d, 0x0f, 0x57, 0xd0, 0x94, 0x54, 0x91, 0x38, 0x4b, 0xc6, 0x86, 0x8c, 0x4b, 0x47, 0x86, 0x90, 0xe5, 0x50, 0x02, 0x1d, 0xf1, };
13201 static const u8 ed25519_574_test_vectors_expected_sig[] = {
13202 	0x9a, 0xaf, 0x8a, 0xc9, 0x71, 0x40, 0xd5, 0x50, 0x8d, 0x58, 0xf5, 0xac, 0x82, 0xb7, 0xfd, 0x47, 0xe6, 0xb1, 0xf6, 0x8a, 0x7c, 0x78, 0xa2, 0xac, 0x06, 0xf0, 0x41, 0x6e, 0xf8, 0xe9, 0x91, 0x95, 0x3f, 0x62, 0xc4, 0x7f, 0xd5, 0xfb, 0xc6, 0xc1, 0xe0, 0x1b, 0xae, 0x1c, 0x92, 0xa3, 0x3e, 0xf5, 0x2b, 0x7e, 0xfa, 0x5f, 0x17, 0xbb, 0x86, 0x33, 0xbd, 0xc1, 0xae, 0xeb, 0xce, 0x31, 0x8f, 0x0f, };
13203 static const ec_test_case ed25519_574_test_case = {
13204 	.name = "EDDSA25519-SHA512/wei25519 574",
13205 	.ec_str_p = &wei25519_str_params,
13206 	.priv_key = ed25519_574_test_vectors_priv_key,
13207 	.priv_key_len = sizeof(ed25519_574_test_vectors_priv_key),
13208 	.nn_random = NULL,
13209 	.hash_type = SHA512,
13210 	.msg = (const char *)ed25519_574_test_vectors_message,
13211 	.msglen = sizeof(ed25519_574_test_vectors_message),
13212 	.sig_type = EDDSA25519,
13213 	.exp_sig = ed25519_574_test_vectors_expected_sig,
13214 	.exp_siglen = sizeof(ed25519_574_test_vectors_expected_sig),
13215 	.adata = NULL,
13216 	.adata_len = 0
13217 };
13218 
13219 /************************************************/
13220 static const u8 ed25519_575_test_vectors_priv_key[] = {
13221 	0x8a, 0x35, 0x01, 0xb7, 0x69, 0x53, 0x60, 0x3c, 0x90, 0x33, 0xe3, 0xbc, 0xbf, 0x3e, 0xc3, 0x78, 0xd2, 0x57, 0x01, 0x1a, 0x6c, 0x50, 0xb8, 0x97, 0x62, 0xd4, 0x91, 0xea, 0xa7, 0x2c, 0x5e, 0x0d, };
13222 static const u8 ed25519_575_test_vectors_message[] = {
13223 	0xe6, 0x09, 0xf1, 0x22, 0x4a, 0x6a, 0x45, 0x11, 0x40, 0xcb, 0xc0, 0x25, 0x4d, 0x43, 0x2c, 0xe5, 0xfd, 0xdd, 0x08, 0xa8, 0xe9, 0x12, 0xf8, 0x1c, 0x41, 0x2f, 0xdf, 0xd5, 0x18, 0x2f, 0xf6, 0xac, 0x2f, 0x13, 0xc5, 0x76, 0xc8, 0x14, 0x5b, 0x15, 0xf2, 0x5b, 0x40, 0x9d, 0x85, 0x3f, 0x91, 0x44, 0x09, 0xe4, 0xe0, 0x2c, 0xef, 0xc3, 0x9d, 0x9b, 0xef, 0x4a, 0x2a, 0x06, 0x04, 0x98, 0x57, 0x0b, 0x2d, 0x3a, 0x28, 0x38, 0xc9, 0xb0, 0xb8, 0xe3, 0xaf, 0x4f, 0xc3, 0x7e, 0x19, 0x15, 0xf8, 0x04, 0xa8, 0x01, 0x88, 0x58, 0x5b, 0x30, 0xb6, 0x8a, 0x3f, 0xfb, 0x2e, 0x96, 0x0c, 0x73, 0x20, 0xe8, 0x27, 0xd2, 0xfe, 0x36, 0xe6, 0xa3, 0x28, 0xcc, 0x6e, 0x78, 0x06, 0x34, 0x8a, 0xdb, 0x0b, 0x77, 0x3b, 0x78, 0x4d, 0xe5, 0x29, 0xbb, 0x6f, 0x64, 0x75, 0x1b, 0x21, 0x05, 0x85, 0x94, 0x94, 0xfd, 0x49, 0xdb, 0x0b, 0xc7, 0xf6, 0x2d, 0xf4, 0x6b, 0x9d, 0x7c, 0xe6, 0x76, 0x97, 0x5c, 0xc5, 0xf4, 0x38, 0x56, 0x49, 0x84, 0x36, 0x81, 0x2e, 0x04, 0xf2, 0x6f, 0xb8, 0xb8, 0xab, 0x7e, 0xba, 0x12, 0xf1, 0xd5, 0x67, 0x22, 0xeb, 0x82, 0xeb, 0xfa, 0xfa, 0x47, 0x35, 0x97, 0x7a, 0x26, 0x68, 0x1c, 0xb0, 0x3f, 0xa4, 0xbc, 0x69, 0x51, 0xab, 0x9c, 0xbd, 0xf7, 0x87, 0xe3, 0x27, 0x8f, 0x2f, 0x57, 0xf2, 0x9e, 0x12, 0x09, 0x5f, 0x8c, 0xa2, 0xa1, 0x78, 0xcf, 0xa7, 0x57, 0x13, 0x37, 0xf0, 0x27, 0x42, 0x37, 0x66, 0x9f, 0x97, 0x65, 0x7d, 0x4b, 0xad, 0xb3, 0x94, 0x36, 0xd7, 0x86, 0x49, 0x25, 0x80, 0xfd, 0x55, 0xd8, 0x6b, 0xe3, 0xa0, 0xcd, 0x17, 0xd1, 0x60, 0x57, 0x01, 0x7b, 0xaa, 0xae, 0xa0, 0x0c, 0x1e, 0x14, 0x55, 0x21, 0x59, 0xbc, 0xab, 0xc0, 0xe6, 0x66, 0xba, 0xd3, 0x41, 0x8e, 0x4e, 0xc1, 0x3b, 0xfe, 0x16, 0x3b, 0xe2, 0x56, 0xf0, 0xc8, 0x9b, 0xc2, 0x34, 0x4a, 0x8d, 0xdf, 0x99, 0xca, 0x81, 0x60, 0xb1, 0x89, 0x87, 0x5a, 0xd3, 0x22, 0xd9, 0x0f, 0x58, 0x13, 0x25, 0x28, 0x1d, 0x53, 0x89, 0x96, 0x5c, 0x0a, 0x7b, 0x7b, 0xca, 0xe2, 0x29, 0x4a, 0x3c, 0xbe, 0x35, 0xa4, 0xe4, 0xe8, 0x3b, 0x54, 0xc4, 0x27, 0x63, 0x53, 0x96, 0x0f, 0xad, 0x11, 0x85, 0x32, 0xd4, 0x9b, 0x70, 0x76, 0xf2, 0x5a, 0xd1, 0x90, 0xab, 0x56, 0x94, 0x91, 0x4f, 0x71, 0x08, 0xb0, 0xab, 0x69, 0x69, 0xa1, 0x91, 0x28, 0xfb, 0x0a, 0xef, 0x00, 0xe6, 0x5a, 0x04, 0xfc, 0x83, 0x2d, 0x07, 0x69, 0x61, 0x67, 0xb9, 0x34, 0x2b, 0x35, 0x5e, 0xc5, 0x77, 0x37, 0xca, 0x37, 0xcb, 0xff, 0x3b, 0xb3, 0x19, 0x31, 0xcb, 0x58, 0x71, 0x2a, 0x4c, 0x46, 0x89, 0x52, 0xc6, 0x45, 0x9d, 0x56, 0x7a, 0x26, 0xe7, 0x95, 0x01, 0xe4, 0xe3, 0x1b, 0x1b, 0x09, 0x53, 0x53, 0x76, 0x32, 0x02, 0x9e, 0x9b, 0x49, 0x0f, 0x72, 0xe5, 0xa6, 0xe0, 0x57, 0xdd, 0xb4, 0xb3, 0x17, 0x56, 0xfd, 0x97, 0x04, 0x21, 0x8b, 0x1b, 0x8f, 0x4d, 0xcb, 0x54, 0x30, 0xc0, 0x25, 0x04, 0x2f, 0x47, 0x16, 0x9b, 0xfc, 0x7c, 0x80, 0xd7, 0x1c, 0xab, 0x8c, 0xa0, 0x7f, 0x34, 0x0a, 0xfa, 0x00, 0x8a, 0xbb, 0xe2, 0xe3, 0xa0, 0xab, 0xe1, 0x41, 0xda, 0x8d, 0x41, 0xca, 0x6b, 0xd6, 0x9d, 0x36, 0xfd, 0xb1, 0x1a, 0x41, 0xce, 0x0b, 0x72, 0xfa, 0xbc, 0x00, 0xd9, 0x7e, 0xa6, 0x05, 0x27, 0x00, 0x10, 0xb2, 0x59, 0xdf, 0x8e, 0x10, 0xdd, 0x22, 0xdc, 0x17, 0xc1, 0x39, 0x90, 0xa0, 0x5f, 0x02, 0x33, 0xe3, 0xca, 0x85, 0x6b, 0x40, 0x97, 0x1c, 0xb3, 0xe2, 0x1c, 0x8b, 0x39, 0x50, 0xb1, 0x3f, 0xc8, 0x4e, 0x1f, 0x26, 0x6c, 0x2a, 0x6f, 0xbe, 0xce, 0x88, 0xd5, 0x97, 0x25, 0xc3, 0xcf, 0xb2, 0x22, 0x5d, 0xbc, 0x1e, 0xe9, 0x5b, 0x68, 0x6d, 0xb7, 0x04, 0xfc, 0x93, 0x7b, 0x76, 0x6f, 0x0a, 0x9b, 0xfe, 0x95, 0xa4, 0x2b, 0x90, 0x10, 0xf1, 0x22, 0x9c, 0x61, 0x0d, 0x7e, 0xde, 0x09, 0x57, 0x12, 0xc8, 0xf0, 0xf1, 0xfb, 0x00, 0x47, 0xc0, 0x40, 0xa8, 0x70, 0x30, 0x6c, 0xd8, 0xdc, 0x74, 0xc4, 0xda, 0x51, 0xbf, };
13224 static const u8 ed25519_575_test_vectors_expected_sig[] = {
13225 	0xa8, 0xa3, 0x09, 0xba, 0x52, 0x12, 0x5e, 0x76, 0xa4, 0xa6, 0x1e, 0xb4, 0x3f, 0xd4, 0x13, 0x5c, 0x41, 0xab, 0x11, 0x79, 0x9b, 0x91, 0xcc, 0x54, 0xff, 0xc9, 0xc6, 0xa2, 0x0f, 0x05, 0x0c, 0xc5, 0x95, 0xb2, 0x81, 0x43, 0xc8, 0x74, 0xbd, 0xb9, 0x28, 0xbe, 0xed, 0x26, 0x1d, 0x9c, 0x0f, 0x12, 0xaa, 0x19, 0x2e, 0x66, 0x40, 0xbf, 0xda, 0xd5, 0x4b, 0xa0, 0xd4, 0x78, 0x42, 0x6b, 0xce, 0x09, };
13226 static const ec_test_case ed25519_575_test_case = {
13227 	.name = "EDDSA25519-SHA512/wei25519 575",
13228 	.ec_str_p = &wei25519_str_params,
13229 	.priv_key = ed25519_575_test_vectors_priv_key,
13230 	.priv_key_len = sizeof(ed25519_575_test_vectors_priv_key),
13231 	.nn_random = NULL,
13232 	.hash_type = SHA512,
13233 	.msg = (const char *)ed25519_575_test_vectors_message,
13234 	.msglen = sizeof(ed25519_575_test_vectors_message),
13235 	.sig_type = EDDSA25519,
13236 	.exp_sig = ed25519_575_test_vectors_expected_sig,
13237 	.exp_siglen = sizeof(ed25519_575_test_vectors_expected_sig),
13238 	.adata = NULL,
13239 	.adata_len = 0
13240 };
13241 
13242 /************************************************/
13243 static const u8 ed25519_576_test_vectors_priv_key[] = {
13244 	0x42, 0xb5, 0x36, 0x52, 0xd0, 0x8b, 0x5d, 0x76, 0x6e, 0x66, 0xad, 0x8f, 0x3e, 0xbf, 0x69, 0x3c, 0xfd, 0x77, 0x90, 0x7c, 0xad, 0xd9, 0x8b, 0x54, 0x66, 0xdf, 0x77, 0xdf, 0xa2, 0xc6, 0x37, 0xad, };
13245 static const u8 ed25519_576_test_vectors_message[] = {
13246 	0x9e, 0xe9, 0x13, 0xc7, 0x4e, 0xe3, 0xc5, 0xe8, 0xc9, 0x0d, 0x64, 0xb8, 0xae, 0x3a, 0x60, 0x04, 0x9f, 0xc7, 0x65, 0xe1, 0x76, 0x06, 0x0b, 0xcd, 0x1c, 0xd0, 0x9f, 0x0e, 0xda, 0x60, 0xbf, 0x23, 0xba, 0xdb, 0x8a, 0x1c, 0xaa, 0xc3, 0xd6, 0x6e, 0xbc, 0x52, 0x68, 0x14, 0x6e, 0xe4, 0xa5, 0x4e, 0x1e, 0xb2, 0x31, 0xed, 0x25, 0xef, 0xf9, 0x5b, 0x90, 0xa6, 0xe9, 0x83, 0x37, 0xa5, 0x40, 0xa3, 0xf4, 0x84, 0x49, 0x79, 0x4a, 0x48, 0x73, 0xbf, 0xc2, 0xe8, 0x47, 0x28, 0x96, 0x6b, 0xb7, 0xc6, 0xff, 0x67, 0x6a, 0x2f, 0xf5, 0x73, 0x11, 0xc1, 0xc2, 0x5e, 0x15, 0xfb, 0xf3, 0xd4, 0x0e, 0x9f, 0x25, 0xab, 0x5d, 0xb9, 0x1f, 0xdd, 0xb7, 0xa0, 0xae, 0x43, 0x6c, 0x8e, 0xc0, 0x70, 0x75, 0x4b, 0x6d, 0x74, 0x3a, 0xa1, 0xd6, 0x04, 0x8f, 0xb5, 0xbd, 0x7f, 0x5b, 0x8e, 0x4c, 0xca, 0xd2, 0x03, 0x28, 0x38, 0x95, 0x30, 0xf1, 0x13, 0x74, 0xa4, 0x89, 0xb1, 0xd5, 0x05, 0x31, 0xa3, 0x9c, 0x9b, 0x32, 0xb4, 0x03, 0x69, 0x62, 0x60, 0x06, 0xd2, 0x64, 0xa9, 0x9e, 0xec, 0x4f, 0xac, 0x13, 0x41, 0xf4, 0xe7, 0x46, 0x79, 0x45, 0x7b, 0x41, 0x8e, 0x6b, 0xbf, 0xba, 0x23, 0x3f, 0x1c, 0xa1, 0x58, 0xf7, 0xb2, 0x9d, 0x40, 0xd5, 0x03, 0x01, 0xf9, 0xd9, 0x25, 0x36, 0xfd, 0xc5, 0xc2, 0x3f, 0xe5, 0xde, 0xe4, 0xd6, 0xdf, 0x0e, 0xbf, 0x13, 0xdf, 0xa3, 0x75, 0x4a, 0x14, 0xc8, 0x56, 0x00, 0x9a, 0xde, 0xa1, 0xdd, 0xa4, 0x09, 0x30, 0x4c, 0x1f, 0x60, 0xd2, 0x53, 0x30, 0xfb, 0x10, 0x95, 0x79, 0x47, 0xa0, 0x05, 0x08, 0xf2, 0xfd, 0x76, 0x42, 0x2e, 0xac, 0x69, 0x4c, 0xc3, 0x9f, 0xa8, 0xae, 0x7f, 0xcc, 0x77, 0xa0, 0x2f, 0xd9, 0xee, 0x5f, 0x91, 0x0d, 0x93, 0xe8, 0xaa, 0xc6, 0x8f, 0x14, 0x5d, 0xd8, 0x78, 0x87, 0x6b, 0xa8, 0xed, 0xa0, 0xa4, 0x9f, 0xcb, 0x20, 0x9c, 0x34, 0xea, 0x22, 0x0d, 0x4d, 0x06, 0x05, 0x54, 0x6f, 0xc4, 0xa8, 0x09, 0xba, 0xf0, 0x10, 0xd5, 0x33, 0xe4, 0x5d, 0x17, 0xb0, 0xe1, 0x6a, 0x46, 0xe9, 0x1e, 0xa6, 0xfe, 0xc2, 0xcd, 0xc5, 0xa8, 0xb3, 0xec, 0x50, 0x14, 0xb2, 0x5e, 0x92, 0xd8, 0xe5, 0xc9, 0x28, 0xab, 0x06, 0x99, 0x3d, 0x4f, 0xe2, 0x3a, 0xc8, 0xd4, 0x5c, 0x89, 0x03, 0x78, 0xdd, 0x13, 0x3f, 0x00, 0xed, 0xb9, 0x37, 0xc0, 0x71, 0xf7, 0x5c, 0xfc, 0x13, 0xa4, 0x02, 0xe3, 0xe4, 0x29, 0xa8, 0x48, 0x65, 0x2a, 0x17, 0x5c, 0x9b, 0x6f, 0x6e, 0xac, 0x86, 0xf6, 0x18, 0x8a, 0x44, 0x48, 0xa9, 0x6c, 0xe2, 0x87, 0x2e, 0x5f, 0x65, 0xf9, 0xbd, 0xb8, 0x71, 0x66, 0xc9, 0xb8, 0x7a, 0x7e, 0x95, 0x8e, 0x80, 0xbb, 0x65, 0x66, 0xe3, 0xfc, 0xf8, 0x71, 0x19, 0x0c, 0xf4, 0xa8, 0x67, 0xe6, 0x12, 0xcf, 0xc1, 0xe4, 0x37, 0x1d, 0x2b, 0x73, 0xd2, 0xa0, 0xad, 0x0a, 0xa4, 0x00, 0xba, 0x69, 0xe6, 0x63, 0x36, 0x23, 0x3b, 0x0f, 0x3c, 0x52, 0xb8, 0xa6, 0x8b, 0xca, 0x05, 0x12, 0x56, 0x01, 0x25, 0x50, 0x46, 0xe6, 0xf4, 0x9d, 0x68, 0x8d, 0x2d, 0xb8, 0x5c, 0x7b, 0x82, 0x12, 0x70, 0x51, 0x6e, 0x3c, 0x06, 0x13, 0xf3, 0xf2, 0x3f, 0x9c, 0x57, 0xcb, 0x4c, 0x87, 0x14, 0x28, 0x5c, 0xdf, 0x95, 0xe1, 0x06, 0xa3, 0xb5, 0xaf, 0xca, 0xeb, 0x81, 0xb7, 0x2f, 0x34, 0x3e, 0x87, 0xbd, 0x92, 0xf1, 0x58, 0x1d, 0xcf, 0x9a, 0xa9, 0x0a, 0x02, 0x4f, 0xa4, 0xa1, 0x04, 0x80, 0x59, 0xe3, 0x0d, 0xe8, 0xff, 0x0d, 0x16, 0x79, 0x4d, 0xcd, 0x74, 0x5d, 0x2b, 0x2d, 0x53, 0x4c, 0x52, 0x0f, 0x82, 0x78, 0x53, 0x86, 0x74, 0xa9, 0x34, 0xc6, 0xf1, 0x4a, 0x84, 0x28, 0xe3, 0xda, 0x01, 0x8a, 0x36, 0xe4, 0x5a, 0xa5, 0x82, 0x7c, 0xf4, 0xb1, 0x52, 0x84, 0x34, 0x6f, 0xd6, 0x93, 0x63, 0x14, 0x92, 0x19, 0xbb, 0x0d, 0x1b, 0xc9, 0x27, 0xd8, 0xd1, 0x93, 0xc4, 0x82, 0x69, 0x2f, 0x97, 0xdc, 0x88, 0xd8, 0xed, 0x33, 0x7d, 0x0c, 0x9d, 0xc9, 0x9c, 0x7a, 0x5e, 0x11, 0x1d, 0xce, 0xd4, 0x22, 0x50, 0xd5, 0x80, 0xe2, 0x06, 0x92, 0xbb, 0x7b, 0x88, };
13247 static const u8 ed25519_576_test_vectors_expected_sig[] = {
13248 	0x30, 0xc4, 0xb9, 0x9e, 0x68, 0xec, 0x33, 0x51, 0x30, 0x8f, 0xbc, 0x76, 0xd9, 0xca, 0xf0, 0xaf, 0x62, 0x21, 0xb5, 0x96, 0xb7, 0x01, 0x7f, 0xe1, 0x0c, 0xc6, 0x33, 0x02, 0x3b, 0xa9, 0x7f, 0x02, 0x38, 0x96, 0xfe, 0x32, 0x2b, 0xaa, 0x34, 0x76, 0x60, 0x61, 0x0e, 0x05, 0xfa, 0x49, 0x3d, 0x21, 0x8f, 0xa3, 0x60, 0xf1, 0x8d, 0x93, 0xe2, 0x75, 0xd1, 0xef, 0xf6, 0x66, 0xb6, 0x3d, 0xb2, 0x04, };
13249 static const ec_test_case ed25519_576_test_case = {
13250 	.name = "EDDSA25519-SHA512/wei25519 576",
13251 	.ec_str_p = &wei25519_str_params,
13252 	.priv_key = ed25519_576_test_vectors_priv_key,
13253 	.priv_key_len = sizeof(ed25519_576_test_vectors_priv_key),
13254 	.nn_random = NULL,
13255 	.hash_type = SHA512,
13256 	.msg = (const char *)ed25519_576_test_vectors_message,
13257 	.msglen = sizeof(ed25519_576_test_vectors_message),
13258 	.sig_type = EDDSA25519,
13259 	.exp_sig = ed25519_576_test_vectors_expected_sig,
13260 	.exp_siglen = sizeof(ed25519_576_test_vectors_expected_sig),
13261 	.adata = NULL,
13262 	.adata_len = 0
13263 };
13264 
13265 /************************************************/
13266 static const u8 ed25519_577_test_vectors_priv_key[] = {
13267 	0x14, 0xcf, 0xe0, 0x0f, 0xa7, 0x19, 0x0a, 0xe8, 0x10, 0x88, 0x8a, 0xe2, 0xbb, 0xd0, 0xff, 0x64, 0x12, 0xcf, 0x1f, 0xd4, 0x08, 0xa3, 0x08, 0x29, 0x43, 0x83, 0xa1, 0x94, 0x53, 0xb5, 0x90, 0x73, };
13268 static const u8 ed25519_577_test_vectors_message[] = {
13269 	0xbc, 0x66, 0xf8, 0x01, 0xda, 0xa8, 0x29, 0x85, 0x8e, 0x74, 0x02, 0x93, 0xd4, 0xd2, 0x18, 0x7b, 0x8e, 0x1a, 0x5a, 0xfb, 0xa5, 0xfd, 0x67, 0xb1, 0x09, 0x56, 0xc6, 0x53, 0x46, 0xac, 0xa9, 0x44, 0x29, 0xd3, 0x2e, 0x4c, 0xfb, 0x35, 0x84, 0xab, 0x0e, 0x00, 0x5d, 0x0d, 0xd7, 0x42, 0x78, 0x1d, 0x47, 0xe8, 0x94, 0x47, 0xc4, 0xe1, 0xd8, 0x1b, 0xf7, 0xe6, 0x15, 0x4f, 0x8f, 0x73, 0xaf, 0x03, 0x36, 0x1a, 0xd5, 0x6e, 0xa3, 0xc0, 0x60, 0x00, 0x75, 0x4b, 0x9f, 0x32, 0x7d, 0x4e, 0xde, 0xac, 0xc4, 0xd3, 0x48, 0xaf, 0xb5, 0x48, 0x23, 0xe1, 0xc9, 0xd4, 0x9c, 0xd8, 0xff, 0x2b, 0x19, 0xf4, 0x20, 0x21, 0xb4, 0x0d, 0x58, 0x0c, 0x39, 0xce, 0x3d, 0x24, 0x36, 0x61, 0xb8, 0x54, 0x21, 0xfe, 0xc9, 0x15, 0xba, 0x9d, 0xd2, 0x76, 0x2f, 0x85, 0x0b, 0xd2, 0x08, 0xfd, 0xbf, 0x20, 0xff, 0xab, 0xa5, 0x6a, 0x46, 0x86, 0x60, 0xf1, 0x7c, 0x00, 0xfb, 0x1c, 0x0f, 0x4e, 0x85, 0x27, 0xa5, 0x09, 0xdd, 0x4e, 0xec, 0x13, 0x36, 0x0c, 0xf6, 0xe3, 0xca, 0xc5, 0x42, 0xb8, 0x75, 0x18, 0x2f, 0x2a, 0x7c, 0xe7, 0xbe, 0x0a, 0x33, 0x30, 0x2f, 0xe2, 0x6d, 0x36, 0x29, 0x62, 0x93, 0x84, 0xe3, 0x5c, 0x06, 0x78, 0x9d, 0xe6, 0x34, 0xe9, 0x0e, 0x96, 0x4f, 0xbd, 0xa8, 0xcb, 0xba, 0x98, 0x11, 0x1e, 0x22, 0xe8, 0xd0, 0x76, 0x26, 0x84, 0x26, 0x6a, 0xab, 0x76, 0xae, 0xba, 0x4a, 0x38, 0x07, 0x78, 0x69, 0x68, 0x14, 0xa1, 0xe3, 0x11, 0x94, 0x3c, 0xb3, 0x50, 0x58, 0x92, 0x64, 0x0c, 0x44, 0xe3, 0xaa, 0xc4, 0x53, 0x0c, 0x50, 0xac, 0x60, 0x4a, 0x8d, 0x2c, 0xcc, 0x7c, 0xea, 0xbf, 0xfe, 0xa4, 0xaa, 0x3d, 0x7f, 0x48, 0xa6, 0x6d, 0xcd, 0x75, 0x88, 0xb8, 0x02, 0x09, 0xdb, 0xc1, 0x73, 0xf0, 0xc6, 0x63, 0xe8, 0xfc, 0x87, 0xa3, 0x6e, 0x89, 0x2e, 0xc9, 0xa3, 0xff, 0x8f, 0x60, 0xd2, 0xe0, 0xd8, 0x70, 0x4e, 0x5b, 0x6c, 0xbb, 0x87, 0x32, 0x75, 0x15, 0x1a, 0xd4, 0xcc, 0x00, 0x57, 0x16, 0x50, 0x31, 0x90, 0x50, 0x39, 0x65, 0x1c, 0xa1, 0x0a, 0x95, 0xc6, 0xfd, 0xa3, 0xb2, 0x78, 0x27, 0xa6, 0x57, 0xef, 0x9a, 0x5f, 0xc3, 0xeb, 0x5b, 0x53, 0xca, 0xc6, 0x1d, 0xda, 0xf5, 0xa4, 0x17, 0x04, 0xc8, 0x78, 0x57, 0x0c, 0xbc, 0x3c, 0x41, 0xc4, 0x75, 0xb1, 0x17, 0xc0, 0x5e, 0xab, 0x0b, 0xb1, 0x96, 0xbc, 0xb7, 0xc4, 0x33, 0x34, 0xde, 0xbd, 0x64, 0xb9, 0xe3, 0x74, 0x50, 0xd2, 0x3f, 0x5c, 0x10, 0x16, 0x1e, 0xc5, 0xab, 0x4f, 0xcc, 0xd7, 0xcf, 0x30, 0x8e, 0x2a, 0x99, 0x95, 0xcc, 0x9e, 0x57, 0x8b, 0x85, 0xe8, 0x28, 0x5a, 0x52, 0x08, 0xb9, 0xef, 0xd4, 0x2a, 0xf9, 0xcf, 0x2a, 0xc2, 0xb3, 0xb7, 0x46, 0x42, 0x54, 0x88, 0x9a, 0x21, 0x87, 0x31, 0x7e, 0x32, 0x49, 0x97, 0x09, 0xb9, 0x13, 0x95, 0x3a, 0xd4, 0x6f, 0x1c, 0x23, 0xe1, 0xb6, 0xb5, 0x6f, 0x02, 0x4c, 0x4a, 0x7d, 0x48, 0x46, 0x11, 0x92, 0xc0, 0x1c, 0x56, 0xc5, 0x4c, 0x56, 0x47, 0x91, 0xec, 0x0a, 0x67, 0xb6, 0x1a, 0xcb, 0xf9, 0x57, 0xe6, 0xd0, 0xd7, 0xda, 0x80, 0x53, 0xed, 0x13, 0xa4, 0x18, 0x93, 0xd7, 0x67, 0xfc, 0x57, 0x37, 0xcd, 0x19, 0x55, 0x53, 0xda, 0x5d, 0x5b, 0x07, 0x06, 0x5f, 0x47, 0xd7, 0x2a, 0x35, 0xc4, 0x2b, 0x00, 0x1e, 0xb6, 0xdb, 0xd0, 0xf8, 0xe7, 0x7a, 0x4b, 0x76, 0xa6, 0x26, 0x61, 0x92, 0x64, 0x7f, 0x41, 0x55, 0xea, 0x11, 0xbd, 0x12, 0x37, 0xba, 0x77, 0xc8, 0x7c, 0x62, 0xbf, 0x4b, 0x01, 0x14, 0x9f, 0xc5, 0x8b, 0xc2, 0x8f, 0x0b, 0x5a, 0x28, 0x64, 0x85, 0xd3, 0x71, 0x7d, 0x32, 0x39, 0x64, 0x04, 0x62, 0x18, 0xe7, 0x0c, 0x7e, 0x38, 0xb7, 0xd5, 0xe7, 0x4b, 0xa6, 0xb1, 0x2b, 0x02, 0x2f, 0x18, 0x19, 0x7d, 0x92, 0xc1, 0x3b, 0xca, 0x89, 0x33, 0x5c, 0x85, 0x6c, 0xbc, 0x57, 0x56, 0xaa, 0x3b, 0x64, 0xec, 0x1f, 0x46, 0xe3, 0x96, 0xb1, 0x16, 0x1c, 0x87, 0x1c, 0xd2, 0xdf, 0xde, 0xd1, 0xa4, 0xec, 0x91, 0x92, 0x74, 0x29, 0x37, 0xc0, 0x70, 0x45, 0x31, 0xc7, };
13270 static const u8 ed25519_577_test_vectors_expected_sig[] = {
13271 	0xf7, 0x85, 0xa4, 0x6f, 0x69, 0xbb, 0xd0, 0x99, 0xfa, 0x01, 0x11, 0x24, 0xba, 0x90, 0x32, 0xc1, 0x89, 0x74, 0x2c, 0x9e, 0x00, 0x1d, 0xbb, 0x87, 0x81, 0xd8, 0x22, 0x33, 0x45, 0xa9, 0x56, 0x9d, 0xc1, 0x44, 0xca, 0x69, 0x4d, 0x90, 0x24, 0x5e, 0x0e, 0x51, 0x3e, 0x88, 0xab, 0x02, 0x3f, 0x7f, 0x0f, 0x99, 0xb7, 0x41, 0x61, 0x59, 0x75, 0x8d, 0xd0, 0x34, 0xe7, 0xa8, 0x9c, 0xff, 0x36, 0x00, };
13272 static const ec_test_case ed25519_577_test_case = {
13273 	.name = "EDDSA25519-SHA512/wei25519 577",
13274 	.ec_str_p = &wei25519_str_params,
13275 	.priv_key = ed25519_577_test_vectors_priv_key,
13276 	.priv_key_len = sizeof(ed25519_577_test_vectors_priv_key),
13277 	.nn_random = NULL,
13278 	.hash_type = SHA512,
13279 	.msg = (const char *)ed25519_577_test_vectors_message,
13280 	.msglen = sizeof(ed25519_577_test_vectors_message),
13281 	.sig_type = EDDSA25519,
13282 	.exp_sig = ed25519_577_test_vectors_expected_sig,
13283 	.exp_siglen = sizeof(ed25519_577_test_vectors_expected_sig),
13284 	.adata = NULL,
13285 	.adata_len = 0
13286 };
13287 
13288 /************************************************/
13289 static const u8 ed25519_578_test_vectors_priv_key[] = {
13290 	0xac, 0x0f, 0x7f, 0x04, 0x18, 0xde, 0x67, 0xe3, 0x48, 0xfa, 0x6d, 0x56, 0x86, 0xc4, 0x6d, 0x21, 0xca, 0x72, 0x62, 0x2e, 0xe6, 0x9e, 0xaa, 0xbe, 0x00, 0xd5, 0xc9, 0x07, 0x5a, 0x34, 0xf1, 0x79, };
13291 static const u8 ed25519_578_test_vectors_message[] = {
13292 	0xe8, 0xd0, 0xe8, 0x32, 0x53, 0x35, 0xe0, 0xf3, 0x5a, 0x85, 0x46, 0x7b, 0xee, 0xd1, 0xe1, 0x1c, 0x6a, 0x20, 0x78, 0xc3, 0x5a, 0xe4, 0xa4, 0xa1, 0x05, 0x43, 0xed, 0xe4, 0x0c, 0x17, 0x12, 0xbc, 0x95, 0x20, 0x12, 0xd2, 0xf8, 0xfe, 0xc1, 0x05, 0xae, 0xf7, 0xc6, 0xc6, 0x5b, 0x36, 0x34, 0xb4, 0xa7, 0x4b, 0x22, 0xb4, 0x98, 0xb9, 0x13, 0x50, 0x7d, 0x1f, 0x6c, 0xfd, 0xe8, 0x38, 0x58, 0xe6, 0x83, 0x0c, 0x0a, 0xf4, 0xf4, 0x64, 0xa6, 0x89, 0x9d, 0x5c, 0x4e, 0x27, 0x9a, 0xff, 0x36, 0x75, 0x4c, 0x21, 0xda, 0x80, 0xa1, 0xbb, 0xd1, 0xdc, 0xf4, 0x62, 0x20, 0x37, 0x5b, 0x1e, 0x11, 0x2a, 0x5a, 0x72, 0xf1, 0xab, 0x6e, 0x8f, 0x64, 0x19, 0x42, 0xf6, 0x6d, 0x9b, 0xbd, 0xbb, 0x17, 0x9c, 0xf0, 0x13, 0x9e, 0xa8, 0xde, 0xb0, 0xf4, 0xb8, 0x14, 0xf5, 0x0c, 0x51, 0x33, 0x29, 0xa1, 0xa0, 0xe2, 0x67, 0xc4, 0x43, 0x3a, 0x23, 0x31, 0x82, 0xbc, 0x4a, 0x2a, 0xcb, 0x2c, 0x6d, 0x4f, 0x00, 0xb2, 0x40, 0x94, 0xd3, 0xbd, 0xc0, 0xeb, 0x81, 0xcf, 0x37, 0xd3, 0x82, 0x60, 0xc2, 0x10, 0x7d, 0xd9, 0x49, 0x06, 0x13, 0xd2, 0x76, 0xee, 0x1f, 0x72, 0x26, 0x6c, 0x6e, 0x4a, 0xcc, 0xa5, 0x24, 0x98, 0x11, 0xa0, 0xf8, 0xa7, 0xda, 0xe6, 0x6a, 0xed, 0xb7, 0x5c, 0x3d, 0xf4, 0xc8, 0xca, 0x3c, 0xb5, 0xd9, 0xc5, 0x67, 0xba, 0x54, 0x1e, 0xe5, 0xa9, 0x14, 0x0c, 0x50, 0x58, 0x72, 0x72, 0xaf, 0x34, 0x53, 0x0a, 0xb8, 0xb0, 0x8b, 0x9e, 0xc0, 0x32, 0xea, 0xc0, 0x60, 0x39, 0xe6, 0x92, 0x63, 0x0e, 0x2d, 0x55, 0x4d, 0xf7, 0x7c, 0x1a, 0x03, 0x88, 0xb3, 0xca, 0xaa, 0x3b, 0xe3, 0x75, 0x4a, 0x84, 0x96, 0x1f, 0xb2, 0x99, 0xe4, 0x02, 0x22, 0x71, 0x58, 0xce, 0x36, 0x3e, 0xac, 0x26, 0x47, 0x8d, 0x47, 0x97, 0x75, 0xe5, 0x68, 0x5a, 0xdb, 0xf8, 0x28, 0xbb, 0x35, 0x5e, 0x3c, 0x89, 0xcc, 0xe2, 0x41, 0x50, 0x3c, 0x15, 0x36, 0x64, 0x32, 0xba, 0x94, 0xcd, 0x3c, 0xd9, 0x54, 0x79, 0x14, 0x4b, 0x63, 0x6e, 0x0d, 0xe7, 0x0b, 0x3f, 0x16, 0xd1, 0xa3, 0xca, 0x51, 0x8e, 0x39, 0x90, 0x09, 0xa4, 0xc2, 0x47, 0xa7, 0xf9, 0x63, 0x67, 0xc7, 0x14, 0x66, 0x08, 0xaa, 0xcc, 0x00, 0x14, 0xfc, 0x35, 0xb8, 0x4a, 0xf9, 0x93, 0x3f, 0x09, 0xba, 0xbb, 0x89, 0x93, 0x7a, 0xbb, 0x8c, 0xed, 0x11, 0x18, 0x91, 0x34, 0x3d, 0xdb, 0x79, 0xf6, 0x0b, 0x78, 0x89, 0x8a, 0xb5, 0x93, 0x8f, 0x8b, 0xa3, 0x81, 0x4b, 0xd8, 0x00, 0x26, 0x05, 0xb1, 0xdf, 0xd2, 0x97, 0xfa, 0x07, 0xc4, 0x75, 0xa0, 0xd4, 0xf8, 0xf4, 0x45, 0x1a, 0xcd, 0x70, 0x7d, 0xe8, 0xaf, 0x6c, 0x0e, 0x88, 0x18, 0x83, 0x3a, 0x3a, 0xbe, 0x5c, 0x96, 0xd1, 0xa8, 0xc6, 0xc9, 0x6e, 0x2c, 0xb6, 0x33, 0x28, 0xeb, 0xa4, 0x4d, 0xd1, 0xd3, 0x46, 0x84, 0xe4, 0x12, 0xf2, 0x88, 0xe0, 0x65, 0x20, 0x9d, 0x11, 0xeb, 0x80, 0x94, 0xd2, 0x2e, 0x4c, 0xc8, 0x02, 0x62, 0x9c, 0xcb, 0xa3, 0x39, 0x26, 0xbf, 0x1a, 0xd3, 0x6a, 0x62, 0x85, 0x13, 0x8a, 0xbe, 0xe0, 0x5c, 0x5a, 0x39, 0xa4, 0x75, 0xf3, 0xfd, 0xd0, 0xb3, 0xec, 0x8c, 0x37, 0x0c, 0xd9, 0x57, 0xa8, 0x37, 0x9e, 0xc2, 0xcd, 0xaf, 0x03, 0xe8, 0x95, 0xc1, 0xba, 0x12, 0xb4, 0x49, 0xd6, 0xcd, 0x8b, 0xe0, 0xf3, 0x5d, 0x99, 0xe2, 0xb7, 0xfb, 0xaa, 0x92, 0xdd, 0x54, 0xe6, 0x4e, 0x7c, 0x35, 0xce, 0xb8, 0x8a, 0x71, 0xa6, 0x80, 0x52, 0x7c, 0xb3, 0x73, 0xaf, 0xe1, 0x4c, 0xdd, 0x15, 0x8a, 0x0b, 0x90, 0xbf, 0x2d, 0xae, 0xc8, 0x0d, 0x2e, 0xdb, 0xdc, 0x31, 0x28, 0xcd, 0x6b, 0x63, 0xfa, 0x53, 0x2a, 0x1c, 0x27, 0x8c, 0xdf, 0xe0, 0xf8, 0xeb, 0xb4, 0xab, 0xba, 0x5e, 0x1a, 0x82, 0xbc, 0x5c, 0x3f, 0xed, 0x15, 0xc5, 0x79, 0x5b, 0xd9, 0xff, 0xb5, 0x76, 0x08, 0x2c, 0xc4, 0x79, 0xfa, 0x1b, 0x04, 0xc5, 0xc5, 0xaf, 0xca, 0xd2, 0x69, 0xa0, 0xf1, 0xad, 0xdf, 0xe7, 0x60, 0x42, 0xc3, 0xa8, 0xf1, 0xf2, 0x53, 0x77, 0xb6, 0xcb, 0x72, 0xec, 0x16, 0x14, 0xeb, 0x63, 0x83, };
13293 static const u8 ed25519_578_test_vectors_expected_sig[] = {
13294 	0x75, 0x91, 0xcf, 0x82, 0x57, 0xbe, 0xad, 0x39, 0xa1, 0xad, 0x3b, 0xa1, 0x91, 0x8d, 0x51, 0x8e, 0x67, 0x24, 0x35, 0x6b, 0xf6, 0x25, 0xa5, 0x73, 0xea, 0xe5, 0x01, 0xd1, 0xaf, 0x94, 0x6c, 0x13, 0xc2, 0x90, 0xcb, 0x63, 0x15, 0x6e, 0xc9, 0xd3, 0x62, 0x72, 0x6e, 0xe5, 0x0b, 0x39, 0xfc, 0x0a, 0x7a, 0x2b, 0xbd, 0x69, 0xd4, 0xa8, 0x1b, 0x75, 0x93, 0x2a, 0x90, 0xf8, 0xc7, 0xac, 0x7d, 0x03, };
13295 static const ec_test_case ed25519_578_test_case = {
13296 	.name = "EDDSA25519-SHA512/wei25519 578",
13297 	.ec_str_p = &wei25519_str_params,
13298 	.priv_key = ed25519_578_test_vectors_priv_key,
13299 	.priv_key_len = sizeof(ed25519_578_test_vectors_priv_key),
13300 	.nn_random = NULL,
13301 	.hash_type = SHA512,
13302 	.msg = (const char *)ed25519_578_test_vectors_message,
13303 	.msglen = sizeof(ed25519_578_test_vectors_message),
13304 	.sig_type = EDDSA25519,
13305 	.exp_sig = ed25519_578_test_vectors_expected_sig,
13306 	.exp_siglen = sizeof(ed25519_578_test_vectors_expected_sig),
13307 	.adata = NULL,
13308 	.adata_len = 0
13309 };
13310 
13311 /************************************************/
13312 static const u8 ed25519_579_test_vectors_priv_key[] = {
13313 	0xb5, 0xa7, 0xc7, 0x67, 0x93, 0x63, 0x80, 0xb3, 0xe9, 0x87, 0x51, 0xca, 0xfd, 0x3e, 0xa8, 0x9b, 0x38, 0x8a, 0x32, 0xcf, 0x82, 0x8b, 0x32, 0x1c, 0x5b, 0xd0, 0xcc, 0x8d, 0xd8, 0x5b, 0xaf, 0x00, };
13314 static const u8 ed25519_579_test_vectors_message[] = {
13315 	0x6b, 0x67, 0xc7, 0x95, 0xd6, 0x6f, 0xac, 0x7b, 0xac, 0x84, 0x42, 0xa6, 0xc0, 0x99, 0x2c, 0xb5, 0x75, 0x88, 0x43, 0xb3, 0xe3, 0x93, 0x9e, 0x3c, 0x27, 0x6c, 0x6e, 0x90, 0x08, 0xda, 0x82, 0x00, 0x76, 0x77, 0xbf, 0x9e, 0x67, 0xe9, 0xac, 0x5a, 0x1a, 0x0f, 0x48, 0x6b, 0xea, 0xc0, 0xd8, 0x56, 0x19, 0x1f, 0xae, 0x25, 0xa1, 0x27, 0x39, 0x2b, 0xed, 0x46, 0x9b, 0xc7, 0x8d, 0xeb, 0x0c, 0x4b, 0x89, 0x3f, 0x67, 0xf1, 0x71, 0x6d, 0x83, 0x50, 0x90, 0x77, 0xe4, 0xa1, 0xbf, 0xd4, 0x13, 0x6d, 0x03, 0x15, 0x2d, 0xcc, 0x3b, 0x76, 0xd9, 0x52, 0x49, 0x40, 0xa6, 0x06, 0x4c, 0x66, 0x9f, 0xbf, 0x51, 0xf6, 0xb9, 0x10, 0x34, 0xb6, 0xd5, 0xf2, 0x89, 0x86, 0x78, 0xa1, 0x3a, 0x24, 0x70, 0xf6, 0x64, 0x1e, 0xc8, 0x02, 0x45, 0x7c, 0x01, 0x02, 0xc3, 0xeb, 0xf6, 0x34, 0x5c, 0x32, 0x7e, 0x74, 0x1b, 0x80, 0x64, 0x4b, 0x3a, 0x99, 0xbf, 0x72, 0xb5, 0x9a, 0xb8, 0x01, 0x6f, 0x35, 0xd2, 0x51, 0x88, 0xa0, 0x85, 0x75, 0x0d, 0xc0, 0x60, 0xe5, 0xa8, 0xd5, 0x24, 0xae, 0x21, 0x3f, 0x07, 0x8f, 0x28, 0x8c, 0x7b, 0x34, 0xbc, 0x41, 0xf3, 0xce, 0x35, 0x6b, 0xf2, 0xda, 0xfd, 0xd2, 0xe0, 0xdb, 0x4f, 0xb8, 0xd7, 0xc2, 0xc3, 0x19, 0xf9, 0x90, 0x60, 0x05, 0x97, 0x17, 0x02, 0xe4, 0x9c, 0xa6, 0x2e, 0x80, 0x50, 0x54, 0x0d, 0x41, 0x21, 0xd2, 0x42, 0xf2, 0xee, 0xab, 0x1b, 0xd1, 0x34, 0xe6, 0x0b, 0xf1, 0x1b, 0x3e, 0xc7, 0x1f, 0x77, 0x65, 0xa9, 0x7c, 0x0e, 0x09, 0x84, 0x55, 0xe5, 0x9d, 0x22, 0x35, 0xd6, 0xb3, 0x7e, 0x7c, 0x9f, 0x5b, 0x21, 0xfa, 0x11, 0x2c, 0x3b, 0xa3, 0x9e, 0x4e, 0xa2, 0x00, 0x61, 0x4f, 0x58, 0xdf, 0xb3, 0xeb, 0x7b, 0x83, 0x6f, 0x0b, 0xec, 0x1d, 0xdd, 0x43, 0x8d, 0x14, 0x22, 0x45, 0x0a, 0xe7, 0xde, 0xd1, 0xdf, 0x9d, 0x71, 0xe5, 0xd9, 0xbc, 0x8f, 0xa3, 0xb6, 0xe6, 0xf7, 0x84, 0x46, 0xce, 0x7c, 0x79, 0xd0, 0xbc, 0xfb, 0x1c, 0x2d, 0x26, 0xc6, 0xfe, 0xce, 0x68, 0x68, 0x2d, 0xff, 0xc6, 0x0a, 0x9c, 0x6e, 0x0a, 0xd0, 0x5f, 0x2a, 0x09, 0xf2, 0x1d, 0x75, 0x23, 0x25, 0x1c, 0xb0, 0xc3, 0xd0, 0x8e, 0xfb, 0xbf, 0x8a, 0xc1, 0x63, 0x39, 0xd7, 0x17, 0x02, 0x4d, 0x67, 0x60, 0x24, 0xc1, 0xee, 0x3c, 0x1f, 0x62, 0xc5, 0xae, 0xab, 0x7f, 0xff, 0x93, 0x7c, 0x57, 0x45, 0x4d, 0xf7, 0xbd, 0x96, 0xf9, 0x84, 0x4a, 0x2a, 0x39, 0x99, 0x58, 0x41, 0x8a, 0xaa, 0x6f, 0x18, 0x48, 0xbe, 0xbf, 0x7b, 0xf1, 0x29, 0x2c, 0x24, 0xeb, 0x5c, 0xd8, 0xea, 0x56, 0x34, 0x0c, 0x5b, 0xeb, 0x26, 0x88, 0x02, 0x4a, 0x69, 0x53, 0x27, 0x5b, 0xe6, 0xef, 0xd1, 0xb7, 0x1b, 0xa8, 0xbe, 0x6e, 0xb7, 0x7f, 0x0c, 0x65, 0xa7, 0xc5, 0x11, 0x1b, 0x96, 0xc4, 0xc1, 0xf3, 0x9c, 0xb7, 0xaa, 0xf8, 0x3f, 0xda, 0xae, 0x8d, 0x14, 0x8d, 0x7a, 0x8a, 0xf4, 0x0a, 0xe9, 0xe6, 0x51, 0x91, 0x9f, 0x7c, 0xe2, 0x8c, 0x8b, 0x2b, 0x6e, 0x45, 0xe4, 0xd3, 0xd5, 0x6f, 0xdd, 0x54, 0xd0, 0x0c, 0x24, 0x12, 0x79, 0x0c, 0xbd, 0x6f, 0x80, 0xe1, 0x08, 0x19, 0xe0, 0xb8, 0xf3, 0x7c, 0x84, 0xfa, 0x00, 0x49, 0x88, 0xad, 0xaf, 0xcc, 0xbb, 0xc2, 0x1c, 0x63, 0xd6, 0xbf, 0x2e, 0x73, 0x2d, 0x9d, 0xd6, 0x3b, 0xd4, 0x9b, 0x04, 0x12, 0xb9, 0x67, 0x4e, 0x1e, 0x88, 0xf6, 0x14, 0x2f, 0x7f, 0x86, 0x7f, 0x1f, 0x26, 0x89, 0x1b, 0x22, 0x43, 0x04, 0x23, 0xce, 0xc4, 0xdb, 0x91, 0xb6, 0x1c, 0x2a, 0xbc, 0x5c, 0x8f, 0xbd, 0x46, 0xb8, 0xb9, 0x35, 0x96, 0xfc, 0x51, 0x60, 0x68, 0x31, 0x36, 0xe2, 0x11, 0x29, 0x82, 0x27, 0x96, 0xeb, 0x5e, 0xa0, 0x88, 0xe0, 0xa7, 0xd8, 0x12, 0x1b, 0x25, 0x57, 0x2e, 0x3e, 0xc3, 0x77, 0x43, 0xd1, 0xff, 0x6d, 0x8d, 0x1c, 0x35, 0x36, 0x43, 0x9a, 0x10, 0xe8, 0x4a, 0x66, 0x5f, 0x2c, 0x75, 0xee, 0x73, 0xcd, 0xc6, 0xff, 0xac, 0x4c, 0xc2, 0x87, 0x24, 0x46, 0x9f, 0x79, 0x70, 0xb4, 0x75, 0x07, 0xdf, 0x3e, 0x1b, 0x14, 0xd4, 0x77, 0xae, 0xc2, 0xbb, 0x20, };
13316 static const u8 ed25519_579_test_vectors_expected_sig[] = {
13317 	0x60, 0xe4, 0xd2, 0x3f, 0x1f, 0x08, 0xfc, 0xe4, 0x66, 0xc9, 0x91, 0x5d, 0xde, 0xd9, 0x32, 0x56, 0xb5, 0x2b, 0x32, 0x7e, 0x5f, 0x81, 0xfb, 0xb3, 0x1d, 0x1d, 0x10, 0xd3, 0x21, 0xc3, 0x90, 0x36, 0x6e, 0xf0, 0x01, 0xfd, 0x75, 0x9a, 0xa9, 0xd0, 0xa5, 0x51, 0x62, 0xd5, 0x36, 0x4d, 0x91, 0x8b, 0x48, 0xc7, 0x32, 0x7e, 0x77, 0xcf, 0x53, 0x58, 0xbc, 0x43, 0x19, 0xe3, 0x25, 0xcd, 0xd6, 0x08, };
13318 static const ec_test_case ed25519_579_test_case = {
13319 	.name = "EDDSA25519-SHA512/wei25519 579",
13320 	.ec_str_p = &wei25519_str_params,
13321 	.priv_key = ed25519_579_test_vectors_priv_key,
13322 	.priv_key_len = sizeof(ed25519_579_test_vectors_priv_key),
13323 	.nn_random = NULL,
13324 	.hash_type = SHA512,
13325 	.msg = (const char *)ed25519_579_test_vectors_message,
13326 	.msglen = sizeof(ed25519_579_test_vectors_message),
13327 	.sig_type = EDDSA25519,
13328 	.exp_sig = ed25519_579_test_vectors_expected_sig,
13329 	.exp_siglen = sizeof(ed25519_579_test_vectors_expected_sig),
13330 	.adata = NULL,
13331 	.adata_len = 0
13332 };
13333 
13334 /************************************************/
13335 static const u8 ed25519_580_test_vectors_priv_key[] = {
13336 	0xe1, 0x36, 0xf3, 0x98, 0xa6, 0x05, 0xd1, 0x34, 0x57, 0x84, 0x8c, 0xea, 0xd0, 0x7c, 0x72, 0x86, 0xf4, 0x2e, 0x2f, 0x28, 0xdf, 0x8c, 0x12, 0x8a, 0x3d, 0x0b, 0xb7, 0x2b, 0x29, 0xaa, 0xcc, 0x19, };
13337 static const u8 ed25519_580_test_vectors_message[] = {
13338 	0xd3, 0x28, 0x57, 0x9d, 0xe4, 0xc5, 0x37, 0x2f, 0x3b, 0x38, 0x2c, 0x48, 0x01, 0x1b, 0x2d, 0x4c, 0x60, 0x29, 0xf9, 0x04, 0xf3, 0xa3, 0x3e, 0x07, 0xd0, 0x83, 0xd7, 0xe2, 0xb0, 0x37, 0x56, 0xaf, 0x2c, 0x4c, 0x97, 0xa2, 0xd6, 0x6c, 0x10, 0xec, 0x41, 0x54, 0xd8, 0x74, 0x79, 0x20, 0x42, 0xb6, 0x46, 0xe4, 0xaa, 0xe5, 0x10, 0x1d, 0x50, 0x1b, 0xd1, 0xbf, 0x6f, 0x51, 0x17, 0x51, 0xd0, 0xaa, 0xf8, 0x21, 0xcd, 0x7c, 0x0b, 0x3e, 0xe6, 0xd0, 0xd7, 0xc6, 0x90, 0xa2, 0x77, 0x7f, 0xe1, 0x6b, 0xdc, 0x7e, 0x49, 0xb7, 0xda, 0x4b, 0xbb, 0x4c, 0xce, 0x3b, 0x61, 0x8e, 0xe9, 0xb6, 0xf2, 0xe3, 0xa1, 0x92, 0x40, 0xcd, 0xb7, 0x07, 0x33, 0xb9, 0x84, 0xb1, 0xc9, 0x40, 0xec, 0x66, 0x96, 0x0b, 0x72, 0x8c, 0xbb, 0x87, 0x4b, 0x80, 0x64, 0x31, 0x23, 0x72, 0x2d, 0xb9, 0xdb, 0xbe, 0x88, 0x32, 0x20, 0x08, 0x93, 0x1b, 0x1c, 0x89, 0x4e, 0xf5, 0xd2, 0x10, 0x99, 0xe6, 0x3e, 0x7c, 0x65, 0x00, 0x7a, 0xcd, 0x61, 0x78, 0x4d, 0xb4, 0x99, 0x4a, 0x2f, 0xb4, 0x0c, 0x3e, 0xfe, 0x9c, 0x47, 0xfa, 0xd6, 0x37, 0x63, 0xdd, 0xe0, 0x6f, 0xa0, 0x17, 0xa2, 0x6b, 0x82, 0xe7, 0x1b, 0x9d, 0xaa, 0xbc, 0x4f, 0xf0, 0xf6, 0xc7, 0x9b, 0x8c, 0xa7, 0xcc, 0xb4, 0xdc, 0x20, 0x31, 0xbe, 0xf1, 0x08, 0x73, 0x67, 0xc7, 0x08, 0x69, 0x74, 0xa0, 0x05, 0x66, 0xde, 0x41, 0xa7, 0x1e, 0x11, 0xd9, 0x93, 0xab, 0xe4, 0x33, 0x56, 0x98, 0x92, 0xb8, 0xf7, 0x5d, 0x76, 0x37, 0x99, 0x32, 0x45, 0xc8, 0x84, 0x47, 0x8a, 0xbe, 0x3f, 0x95, 0xf4, 0x4b, 0x0a, 0x4b, 0xbe, 0xde, 0xfe, 0xf8, 0x90, 0x6b, 0x75, 0xe0, 0xd3, 0x40, 0x20, 0xae, 0x53, 0x64, 0x55, 0xb0, 0xe0, 0x6f, 0x9b, 0xfe, 0xe1, 0x1e, 0xc9, 0xb8, 0x60, 0x4b, 0xac, 0x2c, 0xc6, 0xeb, 0xe0, 0x8c, 0x8f, 0xd5, 0xf5, 0xcc, 0xcc, 0xcb, 0xc1, 0x61, 0x7b, 0x7c, 0xf6, 0x9a, 0x3c, 0x51, 0x2e, 0x1f, 0x0b, 0xdb, 0x58, 0x5d, 0xf5, 0xe1, 0x27, 0x43, 0x06, 0x1f, 0x7c, 0x20, 0x53, 0xbc, 0x37, 0x14, 0x43, 0x61, 0xc0, 0xb3, 0x5f, 0xd3, 0x9d, 0x56, 0xb1, 0xef, 0xaf, 0x92, 0xc6, 0x10, 0x36, 0x01, 0x93, 0xec, 0x20, 0x59, 0x8b, 0x82, 0x85, 0x80, 0x50, 0xa6, 0xd9, 0x9e, 0x08, 0x2b, 0xce, 0xfd, 0xbd, 0x53, 0x18, 0xee, 0x5e, 0xfb, 0x3b, 0x26, 0x0f, 0x32, 0x76, 0xf3, 0xc7, 0x3f, 0x9c, 0x24, 0xce, 0x0c, 0xda, 0x33, 0xc7, 0xac, 0xc5, 0x0c, 0xa5, 0xdd, 0x61, 0xbd, 0xb8, 0x5d, 0x79, 0x38, 0x25, 0xf6, 0x73, 0x2a, 0x6e, 0x33, 0x0c, 0xe6, 0x72, 0xac, 0x44, 0xfe, 0x6b, 0x2b, 0x9a, 0xfe, 0x6e, 0x2e, 0x96, 0x5c, 0x02, 0xd2, 0xa1, 0xfe, 0x0b, 0x57, 0xcb, 0x1b, 0x31, 0x7c, 0x1d, 0x31, 0x3e, 0xfd, 0xc3, 0x56, 0x49, 0x2f, 0xe8, 0x96, 0xfd, 0x14, 0x9d, 0xae, 0x51, 0xc9, 0x5c, 0xcd, 0xbb, 0x7d, 0x11, 0xf7, 0xd6, 0x10, 0xe0, 0xc6, 0xe2, 0xfd, 0x3e, 0x57, 0xfc, 0xfe, 0xf1, 0xc5, 0x7c, 0x71, 0x19, 0xa0, 0xaf, 0x6c, 0x78, 0x21, 0xfe, 0xcd, 0xb8, 0x9d, 0x80, 0x30, 0x2b, 0x49, 0xfa, 0xd4, 0x17, 0x43, 0xf3, 0xd2, 0xd7, 0xa0, 0x75, 0x15, 0x4b, 0x31, 0x43, 0xe5, 0x1a, 0xeb, 0x94, 0x7d, 0x4b, 0x5e, 0x8b, 0x7e, 0x4c, 0xa8, 0x6f, 0xec, 0x3e, 0x80, 0xbd, 0x9a, 0x78, 0x6e, 0x4e, 0x46, 0xed, 0x1e, 0x6e, 0x9f, 0x7e, 0x0b, 0x63, 0x52, 0x66, 0xd9, 0xfa, 0x09, 0x7a, 0xa9, 0xe2, 0x0f, 0x32, 0xe3, 0xd2, 0x77, 0x2d, 0x7c, 0x1f, 0x00, 0x8b, 0xcd, 0xd3, 0xf9, 0x2c, 0x72, 0x83, 0xc5, 0x77, 0x90, 0xc3, 0x62, 0x2c, 0xba, 0xd3, 0xca, 0x35, 0x80, 0x3c, 0x45, 0xc8, 0x69, 0xdc, 0x37, 0x7f, 0xf3, 0x6b, 0xd7, 0xc0, 0xe6, 0xf1, 0xbb, 0x89, 0x2f, 0x73, 0x29, 0xa6, 0xe0, 0x8d, 0xf1, 0xdb, 0xeb, 0xc8, 0x1d, 0xc7, 0xb1, 0x15, 0xf8, 0x52, 0xe3, 0x6a, 0xe5, 0xd9, 0x28, 0x72, 0x5f, 0xa7, 0xc6, 0xfb, 0x9f, 0x28, 0xb0, 0xfb, 0x39, 0x4f, 0x9e, 0x38, 0xfd, 0x87, 0x62, 0x5c, 0x5f, 0xa2, 0x3a, 0xab, 0xa4, 0x70, 0x54, 0xe8, 0xcf, 0xea, };
13339 static const u8 ed25519_580_test_vectors_expected_sig[] = {
13340 	0x75, 0xa4, 0x5c, 0x6b, 0x95, 0x66, 0x89, 0x98, 0x29, 0xb4, 0x1e, 0xe5, 0x17, 0xb7, 0x04, 0x5a, 0x47, 0x3a, 0x4f, 0x7a, 0x26, 0x41, 0x43, 0x9b, 0x5d, 0x7c, 0x56, 0x73, 0xe0, 0x0d, 0x8f, 0x5c, 0x06, 0x6f, 0x12, 0x91, 0xf8, 0x5d, 0xea, 0xda, 0x05, 0x02, 0xbd, 0x16, 0xe9, 0x70, 0x9f, 0x82, 0x7d, 0x47, 0x51, 0xf2, 0x87, 0x38, 0x62, 0xe8, 0x21, 0x9e, 0x57, 0x74, 0x6a, 0x19, 0xa9, 0x00, };
13341 static const ec_test_case ed25519_580_test_case = {
13342 	.name = "EDDSA25519-SHA512/wei25519 580",
13343 	.ec_str_p = &wei25519_str_params,
13344 	.priv_key = ed25519_580_test_vectors_priv_key,
13345 	.priv_key_len = sizeof(ed25519_580_test_vectors_priv_key),
13346 	.nn_random = NULL,
13347 	.hash_type = SHA512,
13348 	.msg = (const char *)ed25519_580_test_vectors_message,
13349 	.msglen = sizeof(ed25519_580_test_vectors_message),
13350 	.sig_type = EDDSA25519,
13351 	.exp_sig = ed25519_580_test_vectors_expected_sig,
13352 	.exp_siglen = sizeof(ed25519_580_test_vectors_expected_sig),
13353 	.adata = NULL,
13354 	.adata_len = 0
13355 };
13356 
13357 /************************************************/
13358 static const u8 ed25519_581_test_vectors_priv_key[] = {
13359 	0x97, 0xb6, 0x70, 0x2e, 0x24, 0x68, 0x05, 0xdb, 0xcf, 0xc7, 0xfa, 0x42, 0x4a, 0x8c, 0xaa, 0xbc, 0xf2, 0x62, 0xd4, 0x66, 0xa0, 0x5e, 0x0d, 0xd2, 0xd4, 0xe7, 0xc3, 0x74, 0xd5, 0x7d, 0x52, 0x51, };
13360 static const u8 ed25519_581_test_vectors_message[] = {
13361 	0xea, 0xa8, 0x6c, 0xf7, 0x6f, 0xcb, 0x65, 0xc6, 0xf9, 0xfc, 0x20, 0x8a, 0xc3, 0x6f, 0x28, 0xb2, 0x00, 0xd3, 0xb4, 0x03, 0xac, 0xa7, 0x32, 0x07, 0x46, 0x1d, 0x8d, 0x96, 0xaf, 0xa2, 0x46, 0xd7, 0xc6, 0x9d, 0x17, 0xa7, 0xa9, 0xbf, 0x77, 0xf0, 0x55, 0x43, 0x56, 0x3a, 0x7d, 0x3e, 0xca, 0x1d, 0x40, 0x79, 0xe2, 0x29, 0x38, 0xab, 0xa1, 0xf6, 0xe9, 0xe0, 0x4b, 0x49, 0xfb, 0xc8, 0xed, 0x6f, 0x63, 0xb5, 0x99, 0x73, 0x0d, 0xe9, 0x97, 0x98, 0x31, 0xc0, 0x2f, 0x8c, 0xba, 0x61, 0xe5, 0x55, 0x60, 0xd7, 0x11, 0x0d, 0x4c, 0x6e, 0x61, 0x67, 0x97, 0x06, 0xa7, 0x15, 0x5d, 0x5a, 0x67, 0x3c, 0x54, 0xd1, 0x6f, 0xe4, 0xd2, 0x28, 0xc2, 0xec, 0xa7, 0x54, 0x6f, 0xaa, 0x13, 0x39, 0xf2, 0x6d, 0x7a, 0x0b, 0xb4, 0xee, 0x33, 0x96, 0x11, 0xaf, 0xde, 0xc9, 0xa6, 0x8f, 0x5f, 0xf5, 0xb5, 0xd2, 0x03, 0xb6, 0x00, 0x53, 0x3a, 0xd5, 0xa3, 0xb3, 0x68, 0xc8, 0x5d, 0xa1, 0x15, 0x63, 0xf0, 0x98, 0xcc, 0x26, 0x87, 0x1e, 0x7f, 0xa9, 0x9a, 0xef, 0xd3, 0x8c, 0xc2, 0x61, 0x51, 0xdb, 0x3b, 0x0b, 0xae, 0x38, 0xdb, 0x6a, 0x87, 0xb6, 0x78, 0x9e, 0x58, 0x40, 0xb1, 0x08, 0x84, 0xaf, 0x51, 0x1f, 0x3e, 0xcb, 0x3e, 0xcb, 0xf9, 0x4f, 0xf8, 0x6f, 0xdb, 0x90, 0x55, 0x05, 0xa8, 0xc3, 0x4b, 0x2a, 0xa6, 0x1f, 0xf2, 0xec, 0x9e, 0xc8, 0xfe, 0xbd, 0x1d, 0xfe, 0xd0, 0x96, 0x5b, 0x6f, 0xc5, 0xb9, 0xf8, 0x86, 0x9d, 0xc3, 0xa4, 0x75, 0x59, 0x97, 0x4a, 0x88, 0x22, 0x99, 0x67, 0x06, 0xda, 0xef, 0xbc, 0x6c, 0x5b, 0xf9, 0x84, 0xce, 0x06, 0xb0, 0xd3, 0x2b, 0x31, 0xcf, 0x9d, 0x8a, 0xd1, 0x36, 0xae, 0xd4, 0xb0, 0x52, 0x58, 0x6d, 0xce, 0x70, 0x73, 0xb7, 0x67, 0xb2, 0x34, 0xe4, 0xa3, 0x7b, 0xeb, 0xbc, 0x39, 0x3d, 0xd2, 0xe0, 0xf7, 0xd1, 0x55, 0x17, 0x35, 0x48, 0xc3, 0x8a, 0x15, 0x83, 0xef, 0x94, 0xe0, 0xaa, 0x84, 0xe7, 0xfc, 0xe0, 0x4f, 0xcc, 0x9b, 0x4e, 0x30, 0x0a, 0xd0, 0x99, 0x44, 0x9a, 0x49, 0x23, 0x2a, 0xbd, 0xcf, 0x3d, 0x1a, 0x6e, 0x6f, 0xca, 0xb6, 0x96, 0xf5, 0x99, 0x6f, 0x9b, 0xd1, 0xb9, 0x48, 0x5d, 0x07, 0x47, 0x55, 0xac, 0x5b, 0x42, 0x97, 0xfe, 0xe3, 0x12, 0x4c, 0x7c, 0x03, 0x97, 0x6a, 0x40, 0xd5, 0x70, 0xbe, 0xae, 0xc2, 0xfa, 0xc9, 0x92, 0x33, 0x9f, 0x88, 0x5f, 0x74, 0xd4, 0x0e, 0xd4, 0xac, 0x87, 0xa4, 0xf4, 0x0c, 0xef, 0xbc, 0x48, 0x64, 0xf4, 0x4c, 0x36, 0x83, 0xaa, 0x8f, 0x10, 0x26, 0xe2, 0xc3, 0x7a, 0xef, 0xfc, 0xeb, 0xfd, 0xfe, 0x24, 0xdd, 0x0b, 0x01, 0x9c, 0x36, 0xa7, 0x98, 0x88, 0x20, 0x30, 0x04, 0xb2, 0xad, 0x83, 0xe8, 0x92, 0x21, 0xf3, 0xf6, 0x36, 0xf4, 0x55, 0xbb, 0x64, 0xe1, 0x7d, 0x17, 0x54, 0xc7, 0xc6, 0xdd, 0x7f, 0xc0, 0x9a, 0x0d, 0x65, 0xdd, 0xdd, 0xed, 0x46, 0x22, 0xfc, 0x4f, 0x9f, 0xba, 0x07, 0x2b, 0x45, 0x10, 0x34, 0x35, 0xe1, 0x02, 0x20, 0xa5, 0x86, 0xf1, 0x52, 0x26, 0xd2, 0xeb, 0x37, 0x7f, 0x40, 0x64, 0xd3, 0xff, 0x37, 0xcb, 0xb4, 0x70, 0x5a, 0x1f, 0xaa, 0xf5, 0xb3, 0x48, 0xf8, 0xc0, 0xef, 0x7f, 0xd1, 0x56, 0x4d, 0x42, 0x86, 0x88, 0xf5, 0x8f, 0x33, 0x92, 0x96, 0x7c, 0xf3, 0x96, 0xa8, 0xff, 0x2f, 0xd9, 0xe7, 0xb5, 0x17, 0xb7, 0xd6, 0xa5, 0xed, 0xe7, 0x44, 0x03, 0x73, 0xd8, 0xcc, 0x1a, 0x83, 0x99, 0x00, 0xe8, 0x4d, 0x42, 0x25, 0x42, 0x83, 0xd9, 0x69, 0x9c, 0x7c, 0xa3, 0x7e, 0x47, 0x76, 0x92, 0xa3, 0x49, 0x40, 0x08, 0xb8, 0x04, 0x44, 0xc5, 0xcf, 0x61, 0x4c, 0xbb, 0xc1, 0x69, 0xbf, 0xb9, 0x29, 0x63, 0x03, 0xc6, 0x45, 0xe2, 0xce, 0x28, 0xd1, 0x68, 0xdc, 0x6c, 0xba, 0xef, 0xae, 0x9c, 0x73, 0x19, 0x1f, 0x57, 0x15, 0x1a, 0xa4, 0x73, 0x00, 0x9d, 0x29, 0xe1, 0x80, 0x0b, 0x10, 0xf4, 0xc4, 0x98, 0x60, 0x9b, 0xa1, 0x15, 0x20, 0x98, 0x5c, 0x78, 0x09, 0x20, 0x58, 0x69, 0x6f, 0xdb, 0xca, 0x9c, 0x02, 0x0e, 0x2d, 0xfb, 0x8a, 0x04, 0x3a, 0x3d, 0xe8, 0xe4, 0x52, 0xd5, 0x8c, 0xd1, 0xad, };
13362 static const u8 ed25519_581_test_vectors_expected_sig[] = {
13363 	0x90, 0x00, 0x55, 0x41, 0xdc, 0xc1, 0xd7, 0xab, 0x83, 0x7f, 0x4d, 0xe5, 0x39, 0x3f, 0xad, 0xd6, 0xa9, 0x2b, 0x26, 0xa7, 0xd9, 0x3a, 0xf3, 0xf6, 0x69, 0xe0, 0xf1, 0xbf, 0xd6, 0x21, 0xcb, 0xd0, 0x0c, 0x8a, 0x23, 0x05, 0x6d, 0x2d, 0xa6, 0x78, 0x65, 0x57, 0xc8, 0x28, 0xa4, 0x9b, 0xe1, 0xe4, 0x02, 0x1d, 0x99, 0x31, 0x12, 0x35, 0xac, 0x0d, 0x4d, 0x56, 0xee, 0xfc, 0x7c, 0x95, 0x36, 0x05, };
13364 static const ec_test_case ed25519_581_test_case = {
13365 	.name = "EDDSA25519-SHA512/wei25519 581",
13366 	.ec_str_p = &wei25519_str_params,
13367 	.priv_key = ed25519_581_test_vectors_priv_key,
13368 	.priv_key_len = sizeof(ed25519_581_test_vectors_priv_key),
13369 	.nn_random = NULL,
13370 	.hash_type = SHA512,
13371 	.msg = (const char *)ed25519_581_test_vectors_message,
13372 	.msglen = sizeof(ed25519_581_test_vectors_message),
13373 	.sig_type = EDDSA25519,
13374 	.exp_sig = ed25519_581_test_vectors_expected_sig,
13375 	.exp_siglen = sizeof(ed25519_581_test_vectors_expected_sig),
13376 	.adata = NULL,
13377 	.adata_len = 0
13378 };
13379 
13380 /************************************************/
13381 static const u8 ed25519_582_test_vectors_priv_key[] = {
13382 	0xd1, 0x52, 0x8c, 0x14, 0x06, 0xa6, 0xe4, 0x94, 0xa0, 0x2f, 0x63, 0x53, 0x05, 0xfa, 0x74, 0xd7, 0x45, 0xc6, 0x93, 0x27, 0xfd, 0x31, 0xb7, 0xd2, 0xc2, 0x62, 0x3d, 0xe2, 0xc0, 0x30, 0xed, 0x85, };
13383 static const u8 ed25519_582_test_vectors_message[] = {
13384 	0xab, 0xb3, 0x67, 0x3f, 0x3f, 0xa1, 0x7a, 0x33, 0xa7, 0xaf, 0xf7, 0x6e, 0xac, 0x54, 0xe7, 0x68, 0x7c, 0x04, 0xbc, 0x84, 0xf7, 0x66, 0x65, 0x1a, 0x8b, 0x24, 0xba, 0x22, 0x94, 0x79, 0x08, 0xb0, 0x4c, 0xa4, 0x59, 0xfe, 0xb9, 0x8a, 0xce, 0x7c, 0xab, 0x1e, 0x74, 0x33, 0xa6, 0xa6, 0xbe, 0xff, 0xd8, 0xd9, 0x50, 0x4e, 0x29, 0x91, 0xda, 0xa0, 0x64, 0x4d, 0x61, 0xb8, 0xb2, 0xe4, 0x54, 0x48, 0xf5, 0x4d, 0xf8, 0x81, 0x3f, 0x50, 0xc4, 0x18, 0xb4, 0x8f, 0x49, 0xe1, 0x03, 0x4e, 0x85, 0x1c, 0xbe, 0xc3, 0xef, 0x0a, 0x18, 0x50, 0xef, 0x72, 0x67, 0x33, 0xaf, 0xaf, 0x68, 0xe1, 0xa4, 0x61, 0x04, 0x16, 0x51, 0xc1, 0x38, 0xd5, 0x4e, 0x4e, 0xf7, 0x81, 0x87, 0xaf, 0x9a, 0x73, 0x42, 0xf7, 0x12, 0x87, 0x27, 0xf9, 0x03, 0xbf, 0x4f, 0xc5, 0xef, 0x3e, 0x40, 0xc6, 0x4e, 0xc2, 0x6f, 0x89, 0x2f, 0x59, 0xad, 0xd9, 0x8f, 0xe3, 0x94, 0x76, 0x5a, 0xaa, 0x7d, 0x09, 0xca, 0xe8, 0x1b, 0x9f, 0x69, 0x9a, 0x9d, 0xd8, 0xbf, 0x2e, 0x2f, 0xe8, 0xe1, 0xec, 0x78, 0xfc, 0x88, 0x4e, 0xaa, 0x0d, 0x2d, 0xbd, 0xbf, 0xb8, 0xc1, 0x68, 0x83, 0x3e, 0xe0, 0xd2, 0x18, 0x03, 0xcc, 0x35, 0xdc, 0x62, 0x8d, 0x7c, 0x07, 0xe0, 0x44, 0x04, 0xfb, 0x60, 0xe8, 0xc4, 0x90, 0xa8, 0xdd, 0x34, 0xed, 0xbc, 0xba, 0xaf, 0x80, 0xcc, 0xda, 0xe3, 0xf7, 0xd3, 0x73, 0x9e, 0x0e, 0x89, 0x70, 0x23, 0xee, 0xb5, 0xb1, 0xa8, 0xc0, 0x0a, 0x96, 0x73, 0xc5, 0x92, 0x58, 0x24, 0x0d, 0xdd, 0x44, 0x20, 0x65, 0x0f, 0xe5, 0x77, 0x1f, 0x7e, 0x28, 0xcb, 0x23, 0x99, 0xf5, 0xe1, 0xe0, 0x2a, 0xd0, 0xb6, 0x43, 0x2d, 0x9b, 0x49, 0x60, 0x8f, 0xcf, 0x0b, 0x1c, 0x0d, 0x7c, 0x41, 0x2a, 0x44, 0x52, 0x55, 0xb8, 0xba, 0xdc, 0x53, 0x21, 0xc2, 0x4c, 0x1a, 0xc9, 0x2c, 0x79, 0xa0, 0xba, 0xcc, 0xb9, 0xde, 0xff, 0xed, 0x02, 0xd1, 0x2f, 0x55, 0x36, 0xcd, 0x59, 0x5d, 0xc6, 0x60, 0x83, 0xb3, 0x3a, 0x36, 0x03, 0xa9, 0xd1, 0x6e, 0xce, 0xa2, 0xbf, 0x38, 0xc4, 0xf2, 0xaa, 0xf5, 0x70, 0xf3, 0x0d, 0x21, 0x16, 0x2b, 0x2e, 0xfd, 0x7e, 0x4d, 0x5e, 0xbf, 0x1e, 0xca, 0xe9, 0x58, 0x8e, 0xee, 0x36, 0xdd, 0x9d, 0x3d, 0x8e, 0x3b, 0xe7, 0xbc, 0x6d, 0x4b, 0xc2, 0x18, 0x56, 0x22, 0xf1, 0x1d, 0x1d, 0xa7, 0xc4, 0x9c, 0x93, 0xe6, 0x23, 0xac, 0x56, 0xfe, 0xe7, 0xe3, 0x70, 0x6d, 0xb8, 0x31, 0x3c, 0xf9, 0x26, 0xbe, 0x92, 0xe5, 0xc8, 0xa5, 0x39, 0xfd, 0x16, 0xb0, 0xf4, 0x38, 0xda, 0x8e, 0x51, 0xa5, 0x1f, 0x2d, 0x27, 0x64, 0x03, 0x56, 0x12, 0x4e, 0xf7, 0xbe, 0x2f, 0x91, 0xff, 0xa1, 0x79, 0x6a, 0x91, 0xb1, 0x23, 0x01, 0x93, 0x4d, 0xde, 0xf0, 0xc7, 0x93, 0x8a, 0x7a, 0x45, 0xf3, 0x6f, 0x53, 0xb6, 0x32, 0x2d, 0x9c, 0x8f, 0x9d, 0x27, 0x5e, 0x1c, 0xd2, 0xc0, 0xf1, 0x29, 0xf8, 0xab, 0x8d, 0x74, 0x15, 0x5b, 0x5d, 0x9e, 0x5c, 0x15, 0xc0, 0x15, 0xb0, 0xb0, 0x00, 0x03, 0xb2, 0xbd, 0xdf, 0xa0, 0xbc, 0xfc, 0xc6, 0x93, 0xa1, 0xdf, 0xcb, 0x4f, 0x53, 0xda, 0xec, 0x12, 0x6d, 0x16, 0x69, 0xf3, 0x3f, 0x39, 0xad, 0x05, 0x51, 0x9e, 0xf7, 0xc5, 0xce, 0x40, 0xe6, 0xf4, 0x57, 0x3c, 0x24, 0x7a, 0x32, 0xc4, 0xa0, 0x16, 0x28, 0x31, 0x35, 0x2f, 0x6d, 0x55, 0x8f, 0xf5, 0x83, 0x6a, 0x53, 0x17, 0xdb, 0xc4, 0x51, 0x5b, 0x3d, 0xf2, 0x69, 0xa8, 0xac, 0x76, 0xd6, 0x43, 0x6f, 0x26, 0x4b, 0x64, 0x56, 0x1e, 0x79, 0x68, 0xb5, 0x82, 0x21, 0x08, 0x48, 0x7b, 0x04, 0x5c, 0x92, 0xd6, 0xc6, 0x14, 0x2a, 0x1c, 0x28, 0x55, 0xb3, 0x8b, 0xee, 0xbd, 0x64, 0x25, 0x65, 0x12, 0x3c, 0xc8, 0x27, 0xcb, 0x18, 0x31, 0x19, 0x9e, 0x6f, 0x12, 0xa7, 0xe4, 0x23, 0x68, 0x56, 0xb9, 0x4d, 0xad, 0x73, 0x8f, 0x69, 0xd1, 0x10, 0x6e, 0x77, 0x35, 0xd7, 0x11, 0xf7, 0xc6, 0xa3, 0xa3, 0x37, 0x80, 0x41, 0xfc, 0x7a, 0x21, 0x10, 0x3b, 0xbf, 0x86, 0x69, 0x07, 0xd4, 0xed, 0xdd, 0xaf, 0xa0, 0xe7, 0xf1, 0xbb, 0x5f, 0xfd, 0x41, 0xa6, 0x0d, 0x64, };
13385 static const u8 ed25519_582_test_vectors_expected_sig[] = {
13386 	0xb8, 0x39, 0x9b, 0xc3, 0x32, 0x6c, 0xba, 0x0a, 0x93, 0xa4, 0x24, 0x97, 0x16, 0x8b, 0xf5, 0x7f, 0x91, 0x06, 0xee, 0x43, 0xd3, 0x9b, 0xf0, 0xfc, 0x86, 0x68, 0x51, 0x99, 0xdc, 0x6e, 0x0a, 0x13, 0xb9, 0xc7, 0x24, 0xef, 0x17, 0xe7, 0x88, 0x2a, 0xf8, 0xc2, 0xeb, 0x70, 0xf6, 0xc9, 0xe4, 0x2d, 0xfa, 0x2f, 0xbf, 0x0c, 0x1c, 0xb5, 0x00, 0x2b, 0x58, 0xf1, 0x08, 0x66, 0x19, 0x73, 0x3e, 0x02, };
13387 static const ec_test_case ed25519_582_test_case = {
13388 	.name = "EDDSA25519-SHA512/wei25519 582",
13389 	.ec_str_p = &wei25519_str_params,
13390 	.priv_key = ed25519_582_test_vectors_priv_key,
13391 	.priv_key_len = sizeof(ed25519_582_test_vectors_priv_key),
13392 	.nn_random = NULL,
13393 	.hash_type = SHA512,
13394 	.msg = (const char *)ed25519_582_test_vectors_message,
13395 	.msglen = sizeof(ed25519_582_test_vectors_message),
13396 	.sig_type = EDDSA25519,
13397 	.exp_sig = ed25519_582_test_vectors_expected_sig,
13398 	.exp_siglen = sizeof(ed25519_582_test_vectors_expected_sig),
13399 	.adata = NULL,
13400 	.adata_len = 0
13401 };
13402 
13403 /************************************************/
13404 static const u8 ed25519_583_test_vectors_priv_key[] = {
13405 	0x51, 0x23, 0x40, 0xf9, 0x61, 0xf1, 0x42, 0xd1, 0x91, 0x5e, 0x85, 0xfe, 0x4f, 0xa0, 0xf5, 0x51, 0xf8, 0x08, 0x92, 0xe7, 0x5a, 0xcc, 0xce, 0x7c, 0xd1, 0x86, 0x9e, 0x6e, 0x2c, 0x9e, 0x80, 0x15, };
13406 static const u8 ed25519_583_test_vectors_message[] = {
13407 	0xaf, 0x37, 0xb2, 0xc7, 0x58, 0x7a, 0x8d, 0x5b, 0xc8, 0x95, 0xcd, 0x35, 0x77, 0x46, 0xab, 0x03, 0x55, 0x2a, 0x0a, 0x56, 0x1a, 0x29, 0x3d, 0xc7, 0x16, 0x4e, 0x39, 0xb6, 0xa1, 0x33, 0x3a, 0x92, 0x0b, 0xb6, 0xda, 0xca, 0x60, 0x06, 0x67, 0x6e, 0x99, 0xbb, 0x7e, 0x92, 0x8f, 0x9e, 0xa3, 0x91, 0xe5, 0x48, 0x02, 0xa8, 0xd3, 0x15, 0x96, 0x28, 0x9f, 0xb9, 0xbf, 0xe3, 0x00, 0x00, 0xcf, 0x52, 0xeb, 0xf0, 0xc1, 0x24, 0xa5, 0x89, 0x5b, 0xce, 0x33, 0x98, 0xc1, 0xbf, 0x53, 0x56, 0xbe, 0x82, 0x61, 0x9b, 0x8d, 0xdc, 0x15, 0xa7, 0x7c, 0xa9, 0x22, 0x49, 0x4b, 0xdb, 0x04, 0xf5, 0xc2, 0xe1, 0xb6, 0xe8, 0xff, 0x77, 0xae, 0x74, 0x9f, 0xaf, 0x2b, 0x8a, 0x41, 0xd8, 0x22, 0xc1, 0x7c, 0x06, 0xdf, 0xb7, 0xa5, 0xf9, 0x43, 0x4d, 0x8b, 0xd7, 0x15, 0xec, 0x87, 0x78, 0xe8, 0x0b, 0x81, 0xd2, 0xe8, 0xd0, 0x62, 0x98, 0x74, 0x86, 0x90, 0xc6, 0x55, 0x52, 0x83, 0xc9, 0x8b, 0xb9, 0xb1, 0x9b, 0x92, 0x46, 0x66, 0x7b, 0xc4, 0x10, 0x46, 0xff, 0x98, 0xc2, 0xc3, 0x5d, 0x16, 0x1e, 0x1f, 0x4d, 0x69, 0xd2, 0x54, 0xec, 0x5a, 0x07, 0x6f, 0x25, 0xbd, 0x5c, 0x7e, 0x2c, 0x98, 0xca, 0x3c, 0x09, 0xd8, 0x08, 0x33, 0x96, 0x2c, 0xf9, 0x66, 0x02, 0x87, 0x88, 0x40, 0x96, 0xeb, 0x30, 0xc4, 0x6c, 0x54, 0x17, 0x41, 0x06, 0xaf, 0x4e, 0x29, 0x79, 0xa1, 0x12, 0xf3, 0xe8, 0x94, 0x4e, 0xaa, 0xf7, 0x66, 0x9c, 0x40, 0xd5, 0xaf, 0xb9, 0x1a, 0x02, 0x4a, 0xbb, 0xeb, 0x14, 0x66, 0x4e, 0x30, 0x89, 0x03, 0xe4, 0xd2, 0x6d, 0x70, 0x09, 0x44, 0x6e, 0xe2, 0xe8, 0x30, 0xab, 0x5e, 0xca, 0x0d, 0xbb, 0xc5, 0x13, 0xfb, 0x4e, 0x04, 0x35, 0x1d, 0xf2, 0xf6, 0x74, 0x18, 0x64, 0xfb, 0x23, 0x71, 0xb2, 0x50, 0x2b, 0xe4, 0x3d, 0xc1, 0x5f, 0xc0, 0x44, 0x31, 0xff, 0xf5, 0xeb, 0x8d, 0x4b, 0x68, 0xd7, 0x24, 0x62, 0xae, 0x32, 0x2e, 0x57, 0xba, 0x2d, 0x4a, 0xdd, 0xdf, 0x15, 0xa1, 0x90, 0x2c, 0x21, 0x13, 0xae, 0xbd, 0x3b, 0x5d, 0x61, 0x29, 0x17, 0xc1, 0xbb, 0x73, 0xe7, 0x08, 0xad, 0x54, 0x18, 0xe7, 0xd4, 0x5e, 0x4b, 0x72, 0x80, 0xfc, 0x88, 0x96, 0xab, 0x80, 0x85, 0x3f, 0xf5, 0xf8, 0xe9, 0x8f, 0x26, 0x55, 0x3f, 0xc7, 0x8e, 0x30, 0xb3, 0xb0, 0xd7, 0x27, 0xbf, 0x6d, 0x06, 0x4a, 0x8f, 0x32, 0x88, 0x87, 0x68, 0xc5, 0x1e, 0xbb, 0x61, 0xb2, 0xc6, 0x00, 0xb4, 0x02, 0x8a, 0x77, 0x06, 0x0f, 0xeb, 0xbb, 0x02, 0xeb, 0x3d, 0x20, 0x17, 0x80, 0xe7, 0x45, 0x66, 0xc8, 0x6a, 0x34, 0x03, 0x18, 0x36, 0xbc, 0xe9, 0xea, 0xda, 0x81, 0xe5, 0xd0, 0xf3, 0x39, 0x60, 0xcb, 0x2d, 0xf0, 0x8a, 0xff, 0x3c, 0x97, 0x49, 0x21, 0xfc, 0x9b, 0x7d, 0x3a, 0xa7, 0xc8, 0x1e, 0x9c, 0x67, 0x1e, 0xd6, 0xd3, 0x3e, 0x7a, 0xe5, 0xed, 0x03, 0xa5, 0x41, 0x7d, 0x7e, 0x5c, 0xd6, 0xfa, 0xac, 0x91, 0xb5, 0x4b, 0x8f, 0x79, 0x2f, 0x48, 0x28, 0x3c, 0x60, 0x64, 0x7d, 0xe3, 0xda, 0x81, 0x6c, 0xa9, 0x75, 0x6c, 0x5b, 0xfe, 0x1b, 0xb8, 0xb5, 0x97, 0x9e, 0x57, 0x54, 0x01, 0xbd, 0xa3, 0x4e, 0x9c, 0xbc, 0x4d, 0x77, 0xe7, 0x11, 0xd6, 0xb7, 0x3b, 0x82, 0xda, 0x19, 0xda, 0x47, 0x3b, 0x55, 0xe8, 0xe7, 0x2d, 0x34, 0x1b, 0x2d, 0x85, 0x03, 0xe4, 0x86, 0x09, 0xbe, 0x0f, 0xe2, 0x91, 0x44, 0x4c, 0x28, 0x36, 0x69, 0xe5, 0xde, 0xad, 0xea, 0xf5, 0x2a, 0xa8, 0xec, 0x48, 0xda, 0x83, 0xf5, 0x32, 0x8c, 0xc0, 0x99, 0xfb, 0x41, 0xf8, 0x2b, 0xec, 0xdd, 0x58, 0xd0, 0x4b, 0x1d, 0x66, 0x20, 0x3d, 0x73, 0x7b, 0xed, 0x06, 0xcf, 0x21, 0xc9, 0x78, 0x19, 0xac, 0x13, 0xed, 0x71, 0x1c, 0xa2, 0x17, 0xa5, 0x7c, 0xf7, 0xd8, 0x0f, 0xf0, 0x82, 0xaa, 0x1a, 0x1c, 0xf8, 0xfe, 0xa5, 0x55, 0xcd, 0x2e, 0x47, 0xe4, 0xdd, 0xab, 0x5e, 0x3f, 0x99, 0x41, 0xad, 0x4f, 0x77, 0x5f, 0x49, 0x41, 0x9d, 0xca, 0xdb, 0x5b, 0x00, 0x4b, 0x68, 0xca, 0xf4, 0x5b, 0x27, 0xef, 0x49, 0xba, 0x14, 0xfb, 0x52, 0xb0, 0x9f, 0x1b, 0x18, 0x5b, 0xe9, 0xf9, 0xc7, };
13408 static const u8 ed25519_583_test_vectors_expected_sig[] = {
13409 	0x6b, 0xb4, 0xd9, 0x75, 0xaf, 0xae, 0xf4, 0x1e, 0xa9, 0xef, 0x08, 0x5a, 0x68, 0xc5, 0x68, 0xa0, 0x5d, 0xa3, 0x7e, 0xf2, 0x1d, 0xad, 0x46, 0x4e, 0xd8, 0x6a, 0xc0, 0xd4, 0x08, 0x0e, 0x7d, 0x01, 0x29, 0xfb, 0x02, 0x31, 0x31, 0xec, 0xa5, 0xf7, 0xad, 0xb2, 0x58, 0x6a, 0x18, 0xbe, 0x40, 0x56, 0x2f, 0xa2, 0x76, 0x4c, 0xa8, 0x07, 0xe6, 0x70, 0xa0, 0x59, 0x6a, 0x5c, 0x54, 0x7b, 0xc0, 0x01, };
13410 static const ec_test_case ed25519_583_test_case = {
13411 	.name = "EDDSA25519-SHA512/wei25519 583",
13412 	.ec_str_p = &wei25519_str_params,
13413 	.priv_key = ed25519_583_test_vectors_priv_key,
13414 	.priv_key_len = sizeof(ed25519_583_test_vectors_priv_key),
13415 	.nn_random = NULL,
13416 	.hash_type = SHA512,
13417 	.msg = (const char *)ed25519_583_test_vectors_message,
13418 	.msglen = sizeof(ed25519_583_test_vectors_message),
13419 	.sig_type = EDDSA25519,
13420 	.exp_sig = ed25519_583_test_vectors_expected_sig,
13421 	.exp_siglen = sizeof(ed25519_583_test_vectors_expected_sig),
13422 	.adata = NULL,
13423 	.adata_len = 0
13424 };
13425 
13426 /************************************************/
13427 static const u8 ed25519_584_test_vectors_priv_key[] = {
13428 	0xb1, 0xb6, 0x36, 0xe9, 0x57, 0x57, 0x4c, 0x21, 0xa9, 0x57, 0xa4, 0x5b, 0xd1, 0x95, 0xc6, 0xf9, 0xfe, 0x4c, 0xc1, 0xc5, 0x7e, 0x84, 0x13, 0x4d, 0x39, 0xb4, 0x2e, 0x1a, 0x84, 0x32, 0x9e, 0xdb, };
13429 static const u8 ed25519_584_test_vectors_message[] = {
13430 	0xe2, 0x5d, 0x32, 0x9c, 0xad, 0x83, 0x64, 0xd2, 0xde, 0xc2, 0x43, 0x73, 0xe9, 0x2d, 0x9d, 0x50, 0xfc, 0x7a, 0xbe, 0x8f, 0xdc, 0x3d, 0x0b, 0x4e, 0xe5, 0x7e, 0x1c, 0xfa, 0x5b, 0x7c, 0xd5, 0x8c, 0x23, 0xbe, 0x91, 0x8f, 0x05, 0x17, 0x9b, 0xa8, 0x41, 0xb6, 0x1e, 0x18, 0x00, 0x34, 0xca, 0x7e, 0x74, 0xd4, 0x9b, 0x0a, 0x1a, 0x2c, 0xeb, 0xb4, 0xbe, 0x65, 0x34, 0x4c, 0x91, 0x3c, 0x46, 0xd3, 0x26, 0x52, 0x33, 0x6e, 0x6b, 0xda, 0x4e, 0xfa, 0x3f, 0x58, 0x73, 0x0d, 0x39, 0xa6, 0x33, 0xa1, 0x4c, 0xa3, 0xd9, 0xa6, 0x2a, 0xbb, 0x0a, 0x73, 0x98, 0xcc, 0x29, 0xaf, 0xf9, 0x16, 0xee, 0xea, 0x2e, 0x7c, 0xaa, 0xc8, 0x08, 0x45, 0x56, 0x2f, 0x73, 0xd4, 0x03, 0x0f, 0x9c, 0xab, 0x0b, 0xf1, 0xc6, 0x40, 0x7f, 0x54, 0x01, 0x51, 0x3e, 0xf8, 0x7f, 0xe6, 0xdc, 0x09, 0x9d, 0xbc, 0x5d, 0xfc, 0x33, 0x52, 0x91, 0x1c, 0x07, 0xaf, 0x6c, 0x52, 0x3b, 0xef, 0x4c, 0xca, 0x78, 0x37, 0x96, 0x59, 0xe8, 0x80, 0x3f, 0x58, 0x59, 0x04, 0xee, 0x6e, 0xf6, 0xfd, 0xe7, 0x73, 0x66, 0xd9, 0x6d, 0x2c, 0xcf, 0x24, 0x8a, 0x53, 0x20, 0xd9, 0xb8, 0x29, 0x8b, 0x2a, 0x73, 0x36, 0x38, 0x79, 0x10, 0x7a, 0x02, 0xb4, 0x7f, 0x57, 0x21, 0x3a, 0x85, 0x20, 0x3a, 0xbb, 0xca, 0x5a, 0x41, 0x95, 0xf8, 0xaf, 0x3e, 0x35, 0x93, 0xed, 0x2f, 0xa3, 0x50, 0x4b, 0xb7, 0x6a, 0x3e, 0x1b, 0xe2, 0x4b, 0x66, 0xd3, 0x55, 0x66, 0x29, 0x32, 0xcb, 0x67, 0xdc, 0x88, 0x50, 0x3a, 0xfa, 0xf7, 0x62, 0xbf, 0xf7, 0x41, 0xba, 0x1c, 0xac, 0xe9, 0x7a, 0xc5, 0x8b, 0xaf, 0xad, 0x5d, 0x36, 0xc3, 0xaa, 0x02, 0xe0, 0xcb, 0xe2, 0x0e, 0x5f, 0x3d, 0xc8, 0x09, 0x2c, 0x51, 0x2e, 0xaa, 0x9c, 0x49, 0x43, 0x47, 0x4a, 0xad, 0x41, 0x99, 0x00, 0x76, 0x72, 0x1a, 0xd3, 0xf5, 0x3f, 0xb0, 0x8a, 0xc2, 0x29, 0x82, 0xed, 0x9b, 0x15, 0xc7, 0x51, 0xa9, 0xe2, 0x33, 0x82, 0xf6, 0xa6, 0x9c, 0x72, 0xe6, 0xe2, 0x44, 0xe0, 0xeb, 0x68, 0x1e, 0x6d, 0xd2, 0x28, 0xd3, 0x77, 0x4f, 0xcc, 0xb3, 0x7e, 0xb6, 0x23, 0x2f, 0x82, 0x5d, 0x16, 0x9a, 0x2a, 0xc8, 0xb7, 0xe1, 0x8a, 0x42, 0xcd, 0xaa, 0x4f, 0x2c, 0xf0, 0x58, 0x90, 0xbb, 0x0c, 0x59, 0x8c, 0xf8, 0xc3, 0x1f, 0x82, 0x9e, 0xf8, 0xca, 0x24, 0x35, 0xbd, 0xcc, 0xeb, 0x0e, 0x61, 0x93, 0xad, 0xa7, 0x84, 0x1e, 0xe6, 0x92, 0xf3, 0x0a, 0xed, 0xf8, 0x8b, 0x62, 0x73, 0x11, 0xb1, 0x38, 0xac, 0x78, 0xb3, 0x91, 0x3e, 0x06, 0xf7, 0xc3, 0x21, 0xca, 0xfb, 0x39, 0xd9, 0x01, 0xdf, 0xe1, 0x74, 0x30, 0xb1, 0xa2, 0x0b, 0xc4, 0x37, 0xa5, 0x55, 0xa5, 0x78, 0xfa, 0x31, 0xe4, 0xb6, 0x80, 0x79, 0x54, 0x45, 0x6b, 0xd4, 0xb0, 0x4d, 0x5d, 0x88, 0x79, 0x87, 0xbd, 0xf0, 0x4e, 0x0f, 0x14, 0xaf, 0x31, 0x41, 0xb2, 0x4c, 0x3a, 0x7b, 0x9a, 0xc7, 0x5a, 0xa3, 0x2e, 0x2f, 0xcd, 0x21, 0x71, 0xa1, 0x26, 0x09, 0xe1, 0x5e, 0x73, 0x09, 0x4f, 0xd0, 0x92, 0x21, 0xb4, 0xd2, 0x70, 0x90, 0xe7, 0x32, 0x19, 0xb6, 0x48, 0xbc, 0xaa, 0xbf, 0x38, 0x07, 0xc9, 0x28, 0x0b, 0x6c, 0x4a, 0xd7, 0x50, 0xa4, 0x68, 0xbe, 0x0e, 0x1a, 0xd3, 0xe6, 0xe6, 0x30, 0x16, 0xcb, 0x5c, 0xec, 0x3a, 0xad, 0xdc, 0x56, 0x89, 0xc2, 0x95, 0x5a, 0x2a, 0x8d, 0x5b, 0x89, 0x84, 0xd7, 0xc4, 0x43, 0x76, 0xfd, 0xd9, 0x4d, 0x3f, 0x5f, 0xf1, 0x29, 0x8f, 0x78, 0x17, 0x2b, 0x56, 0x59, 0x13, 0x70, 0x4e, 0x90, 0xe5, 0xac, 0x03, 0x8c, 0xb1, 0x72, 0x0e, 0x19, 0xb0, 0x80, 0xf8, 0x1b, 0x53, 0xd6, 0xa4, 0x5d, 0x45, 0x28, 0x53, 0x07, 0x11, 0xb6, 0x3d, 0xfe, 0x1e, 0x47, 0x81, 0xc2, 0x4d, 0x74, 0xae, 0xb2, 0xbd, 0x8a, 0x73, 0xfd, 0x2a, 0x99, 0x3c, 0x5b, 0x08, 0x91, 0x39, 0x21, 0x96, 0xac, 0x32, 0xc5, 0x23, 0x69, 0x99, 0x60, 0xd8, 0xb2, 0x3e, 0x01, 0x66, 0x4c, 0xf9, 0x02, 0x1d, 0x93, 0x92, 0x80, 0x50, 0xca, 0xf9, 0x7f, 0xb9, 0x85, 0x55, 0x45, 0x80, 0xe3, 0x33, 0x36, 0xa4, 0x56, 0x32, 0x47, 0xdf, 0x59, 0xef, 0x6c, 0xae, 0x53, };
13431 static const u8 ed25519_584_test_vectors_expected_sig[] = {
13432 	0x76, 0x3c, 0x7d, 0x0d, 0x46, 0x87, 0x8e, 0x5c, 0x7e, 0xcf, 0x71, 0x04, 0xfc, 0x1f, 0x22, 0x30, 0xe4, 0x61, 0x78, 0xa2, 0x7c, 0x75, 0xf1, 0x96, 0x16, 0x9c, 0x02, 0x79, 0xed, 0xb0, 0x1c, 0x28, 0xfc, 0xde, 0x3b, 0x0d, 0x5b, 0x86, 0x35, 0xcf, 0xe3, 0x39, 0xfb, 0x23, 0x27, 0x74, 0xb2, 0x20, 0x6d, 0xab, 0x8a, 0x46, 0x0c, 0xe4, 0x17, 0xab, 0xf4, 0x90, 0xbb, 0xfa, 0x78, 0x5c, 0x02, 0x05, };
13433 static const ec_test_case ed25519_584_test_case = {
13434 	.name = "EDDSA25519-SHA512/wei25519 584",
13435 	.ec_str_p = &wei25519_str_params,
13436 	.priv_key = ed25519_584_test_vectors_priv_key,
13437 	.priv_key_len = sizeof(ed25519_584_test_vectors_priv_key),
13438 	.nn_random = NULL,
13439 	.hash_type = SHA512,
13440 	.msg = (const char *)ed25519_584_test_vectors_message,
13441 	.msglen = sizeof(ed25519_584_test_vectors_message),
13442 	.sig_type = EDDSA25519,
13443 	.exp_sig = ed25519_584_test_vectors_expected_sig,
13444 	.exp_siglen = sizeof(ed25519_584_test_vectors_expected_sig),
13445 	.adata = NULL,
13446 	.adata_len = 0
13447 };
13448 
13449 /************************************************/
13450 static const u8 ed25519_585_test_vectors_priv_key[] = {
13451 	0x10, 0xca, 0x41, 0x3d, 0x70, 0xeb, 0x3d, 0xb6, 0xe3, 0x37, 0xf0, 0xf1, 0x1a, 0xbc, 0x07, 0x5c, 0x95, 0x85, 0x9e, 0x82, 0x5f, 0x87, 0x61, 0x76, 0x07, 0x69, 0x52, 0xd2, 0xf1, 0x88, 0x80, 0x30, };
13452 static const u8 ed25519_585_test_vectors_message[] = {
13453 	0xea, 0x7f, 0xaf, 0x79, 0xf6, 0xff, 0x5d, 0x78, 0xa8, 0x23, 0xa7, 0x54, 0x34, 0x71, 0x34, 0xf1, 0xb3, 0xc3, 0xe9, 0x1c, 0xe5, 0x18, 0xfd, 0xd6, 0x33, 0xfe, 0xb4, 0xf0, 0x5d, 0x12, 0x5f, 0x05, 0xcb, 0x54, 0x33, 0x6e, 0xf5, 0x60, 0xe9, 0x2d, 0xeb, 0x68, 0x51, 0x12, 0xa5, 0xff, 0xcd, 0x3d, 0xfd, 0x39, 0x64, 0xb2, 0x75, 0x8c, 0xe4, 0x78, 0x5f, 0x6a, 0x34, 0xbf, 0xeb, 0x39, 0x78, 0x4f, 0x0a, 0xee, 0x55, 0x95, 0x5a, 0xeb, 0xd1, 0x2d, 0xdd, 0xa6, 0x41, 0xd0, 0x57, 0x69, 0xf7, 0x44, 0x02, 0xf7, 0x06, 0xda, 0xd2, 0x01, 0xc4, 0x4c, 0x91, 0x08, 0x1c, 0x7d, 0x7f, 0x65, 0xe7, 0xaa, 0x42, 0x46, 0xde, 0x6d, 0xc3, 0xed, 0x64, 0x96, 0xd1, 0x0f, 0x4a, 0x41, 0x20, 0x60, 0xd4, 0x93, 0xba, 0xc9, 0xae, 0xd5, 0xbe, 0x4f, 0x6d, 0x74, 0x22, 0x9e, 0x3c, 0x55, 0xeb, 0x68, 0x76, 0xe3, 0xbb, 0x2e, 0xd4, 0x1f, 0xa4, 0x50, 0x4b, 0x66, 0x70, 0xdd, 0xa8, 0xc7, 0x98, 0xf6, 0xda, 0xa2, 0x80, 0xd1, 0xaa, 0x72, 0x02, 0x11, 0x74, 0xf6, 0xc0, 0x1a, 0xec, 0x49, 0xb3, 0x21, 0xd8, 0x7f, 0x53, 0xac, 0xbc, 0xad, 0xcc, 0x46, 0x07, 0xd5, 0xb1, 0xe4, 0x5d, 0x63, 0xfc, 0x48, 0x1a, 0x6d, 0x90, 0x57, 0x6c, 0x87, 0xc1, 0x88, 0x0b, 0x2e, 0x8f, 0xf3, 0xe5, 0x90, 0xa9, 0x6b, 0xee, 0xe1, 0x80, 0x47, 0x68, 0xc7, 0x56, 0xbe, 0xb8, 0x6b, 0xf1, 0xde, 0x8a, 0xdc, 0x40, 0x8b, 0x1b, 0x8d, 0x66, 0x6f, 0x74, 0xba, 0x28, 0x63, 0x08, 0x22, 0xf9, 0x2d, 0x18, 0xb0, 0x56, 0xae, 0x37, 0xce, 0x02, 0x93, 0xee, 0x61, 0xb9, 0xe8, 0x0f, 0x33, 0xac, 0x26, 0x96, 0x71, 0xbd, 0x62, 0xa4, 0x05, 0x9b, 0x24, 0xf7, 0xc1, 0xa4, 0x40, 0x80, 0x74, 0x40, 0xd5, 0xd5, 0x38, 0xa6, 0x54, 0x58, 0xad, 0xc8, 0x15, 0x87, 0x24, 0xb2, 0x5c, 0x12, 0x12, 0x7a, 0xa0, 0x34, 0x9e, 0x55, 0xf6, 0xe5, 0x5b, 0xc9, 0x20, 0x78, 0xfd, 0x1e, 0xf2, 0x74, 0xc2, 0xaa, 0x79, 0x19, 0x05, 0x76, 0x6b, 0xe3, 0x94, 0xa2, 0x62, 0x8f, 0x7b, 0xbd, 0x1a, 0x32, 0xda, 0x5e, 0x48, 0x74, 0x46, 0xbb, 0xef, 0xae, 0x88, 0xfa, 0x6c, 0xf3, 0xf7, 0xb4, 0x99, 0xf1, 0x31, 0xfa, 0x19, 0x31, 0x3d, 0x13, 0xb2, 0x80, 0xad, 0xca, 0x50, 0xf7, 0x78, 0x02, 0xd1, 0x73, 0x31, 0xb3, 0x81, 0x68, 0x3b, 0x5e, 0x7e, 0xda, 0xb9, 0x94, 0x73, 0xed, 0xd3, 0x1d, 0x77, 0x44, 0x34, 0x88, 0x21, 0x41, 0x35, 0xfd, 0x6f, 0x26, 0x44, 0x50, 0x93, 0xe9, 0xe2, 0xaf, 0xf7, 0xd7, 0xe8, 0x92, 0x33, 0x7f, 0xdc, 0x87, 0x79, 0x06, 0x5d, 0x4d, 0x97, 0xd6, 0xd6, 0x73, 0x57, 0x67, 0x94, 0x95, 0x8d, 0xbf, 0xa6, 0xc5, 0x0b, 0x1b, 0x13, 0xac, 0x39, 0x60, 0x7c, 0x1e, 0x66, 0xef, 0x96, 0x29, 0x76, 0x10, 0x71, 0x15, 0x5f, 0xbc, 0xa6, 0xf3, 0x6e, 0xb0, 0x2c, 0xee, 0xae, 0x16, 0x36, 0x7f, 0xea, 0xc0, 0x74, 0x76, 0x90, 0x8c, 0x84, 0x7c, 0x9a, 0x53, 0x3e, 0xf6, 0x8c, 0x94, 0x31, 0x1f, 0xa0, 0x89, 0xff, 0x28, 0xfb, 0xd8, 0x78, 0x09, 0xb0, 0xd3, 0x87, 0x6b, 0x43, 0x1d, 0x9a, 0x18, 0xb2, 0x02, 0xf9, 0xa4, 0x04, 0x9a, 0x05, 0x77, 0xb8, 0x17, 0x76, 0x10, 0xdd, 0x02, 0xe5, 0xc5, 0x20, 0xec, 0xa9, 0x55, 0xe8, 0x03, 0xc3, 0xad, 0x4f, 0x50, 0x97, 0x6f, 0x7c, 0x2e, 0xa8, 0xaa, 0x3e, 0xe4, 0x83, 0x6a, 0x19, 0x85, 0xdf, 0x0a, 0x4f, 0x16, 0xef, 0x46, 0x98, 0x15, 0x95, 0x41, 0x98, 0x97, 0x99, 0x35, 0x60, 0xaf, 0x82, 0x65, 0x1c, 0x2b, 0x49, 0x4e, 0x68, 0x0b, 0x37, 0x80, 0x2e, 0x75, 0x37, 0xef, 0x68, 0xa5, 0x75, 0xc3, 0x4f, 0x85, 0x88, 0x06, 0x3e, 0xe0, 0x19, 0x72, 0x06, 0xd9, 0xa3, 0x2b, 0xb4, 0x89, 0x0e, 0x7c, 0x21, 0x6a, 0x4d, 0x33, 0xfe, 0xca, 0x36, 0xb5, 0x49, 0xe5, 0x32, 0xfe, 0xa6, 0x85, 0x56, 0xe7, 0x54, 0x0a, 0x4f, 0xb1, 0x69, 0xd4, 0x9f, 0xc5, 0x53, 0xb2, 0xe6, 0x70, 0x0a, 0xe4, 0x2d, 0x9a, 0x51, 0x6e, 0x68, 0x16, 0x0a, 0xcf, 0x6b, 0x27, 0x0c, 0x77, 0xca, 0x5e, 0xc2, 0x6e, 0x5a, 0xd5, 0xdc, 0x75, 0xc2, 0xc3, 0x93, 0xe2, 0x99, };
13454 static const u8 ed25519_585_test_vectors_expected_sig[] = {
13455 	0x6a, 0xec, 0x02, 0xdc, 0x6b, 0xdf, 0xcb, 0x67, 0xf0, 0xef, 0xc1, 0xfd, 0x31, 0xe2, 0x3e, 0x69, 0xe3, 0x71, 0xab, 0x38, 0x02, 0x50, 0x5b, 0x32, 0x01, 0xa9, 0x5d, 0xd5, 0x25, 0x41, 0x7e, 0xd1, 0xa1, 0x28, 0xdb, 0x4e, 0x18, 0x2c, 0xb3, 0x7c, 0x28, 0xf6, 0x28, 0x06, 0x66, 0x70, 0x99, 0xa8, 0xad, 0x48, 0x0b, 0x0a, 0xc9, 0xe9, 0x4c, 0x2a, 0x7d, 0x5a, 0x0e, 0x96, 0xe2, 0xa7, 0x36, 0x0d, };
13456 static const ec_test_case ed25519_585_test_case = {
13457 	.name = "EDDSA25519-SHA512/wei25519 585",
13458 	.ec_str_p = &wei25519_str_params,
13459 	.priv_key = ed25519_585_test_vectors_priv_key,
13460 	.priv_key_len = sizeof(ed25519_585_test_vectors_priv_key),
13461 	.nn_random = NULL,
13462 	.hash_type = SHA512,
13463 	.msg = (const char *)ed25519_585_test_vectors_message,
13464 	.msglen = sizeof(ed25519_585_test_vectors_message),
13465 	.sig_type = EDDSA25519,
13466 	.exp_sig = ed25519_585_test_vectors_expected_sig,
13467 	.exp_siglen = sizeof(ed25519_585_test_vectors_expected_sig),
13468 	.adata = NULL,
13469 	.adata_len = 0
13470 };
13471 
13472 /************************************************/
13473 static const u8 ed25519_586_test_vectors_priv_key[] = {
13474 	0x1f, 0x0a, 0x10, 0xa2, 0xcb, 0x11, 0x19, 0x17, 0xb9, 0xa6, 0x7a, 0x2a, 0x1f, 0x38, 0xfb, 0x86, 0xf8, 0xed, 0x52, 0x60, 0x7d, 0x1d, 0x65, 0x3a, 0x45, 0x7d, 0x7f, 0x47, 0x18, 0xd9, 0xa7, 0xde, };
13475 static const u8 ed25519_586_test_vectors_message[] = {
13476 	0x4f, 0x6a, 0x43, 0x4b, 0xd5, 0xfc, 0x77, 0xf0, 0xf1, 0xb7, 0x04, 0x9c, 0x91, 0x85, 0x3c, 0xcb, 0xd8, 0x94, 0x39, 0x96, 0x2a, 0x60, 0x78, 0xa6, 0x74, 0xb8, 0x67, 0x54, 0x3b, 0x6b, 0x7d, 0x10, 0x55, 0x2e, 0xc1, 0x75, 0x8c, 0x52, 0x83, 0x04, 0x2b, 0xd6, 0xb4, 0xce, 0xa8, 0x8c, 0x95, 0x20, 0xdb, 0x04, 0x74, 0x6f, 0x08, 0x9c, 0xf3, 0xa2, 0x60, 0xfb, 0x0f, 0x33, 0x85, 0x8e, 0xfd, 0x6f, 0x68, 0x0d, 0xe5, 0xb7, 0x2d, 0x98, 0x76, 0x32, 0x4b, 0xa5, 0x90, 0x29, 0x91, 0x38, 0xf8, 0x5a, 0x76, 0xf5, 0xbe, 0x0e, 0x05, 0xe8, 0x85, 0x9c, 0x02, 0xb2, 0x35, 0x12, 0x55, 0x9c, 0x8b, 0xea, 0xfc, 0x9c, 0xfe, 0x90, 0x1b, 0x28, 0x3e, 0x15, 0xd1, 0x6c, 0x79, 0x2e, 0xb0, 0x3b, 0x92, 0x88, 0x0f, 0x6f, 0xf9, 0x7a, 0xa3, 0x8e, 0xee, 0xad, 0x3f, 0x4f, 0xd6, 0xc0, 0xa9, 0x21, 0x43, 0x23, 0xaa, 0x39, 0xa1, 0xc1, 0x65, 0x15, 0xe3, 0x0d, 0xbd, 0x08, 0xb8, 0x33, 0xee, 0x40, 0xa8, 0x14, 0xa2, 0x88, 0x09, 0xc8, 0x70, 0xe1, 0xd0, 0xa6, 0x2c, 0x37, 0x93, 0x2d, 0x54, 0x08, 0xfc, 0x6a, 0xfc, 0x63, 0xe7, 0x9a, 0x65, 0x5c, 0x5f, 0xe3, 0xd4, 0x02, 0x6e, 0xf0, 0x9e, 0x02, 0x99, 0xfb, 0xde, 0x5a, 0xb3, 0x4f, 0xce, 0xab, 0x14, 0x13, 0x0d, 0xc4, 0xbe, 0x00, 0x7e, 0x8e, 0x64, 0x44, 0xd7, 0xaa, 0xae, 0xc6, 0x2c, 0x87, 0x3d, 0xf7, 0x7e, 0x80, 0x10, 0x74, 0x3c, 0x31, 0xe8, 0x75, 0x7f, 0x1e, 0xae, 0x9e, 0xdb, 0x55, 0x97, 0xa1, 0xb5, 0xd8, 0x4b, 0xd7, 0x7a, 0xe7, 0x64, 0x2e, 0x1a, 0xca, 0x99, 0x87, 0x3a, 0x15, 0x2f, 0xfd, 0xe0, 0x68, 0xa8, 0xe4, 0xad, 0x92, 0x40, 0xb9, 0x03, 0x33, 0x27, 0x95, 0xe4, 0x0b, 0xb3, 0x28, 0x65, 0xe5, 0xce, 0x03, 0x43, 0x07, 0xa6, 0xc9, 0xfe, 0x33, 0x9a, 0x1c, 0x93, 0x77, 0x0d, 0xf5, 0xca, 0x46, 0x32, 0x9f, 0x6b, 0x09, 0x41, 0x97, 0x85, 0xcb, 0xf2, 0x84, 0x7b, 0x0c, 0x68, 0x32, 0x83, 0x71, 0x23, 0x85, 0x3a, 0xd9, 0x52, 0x65, 0x32, 0x65, 0xc5, 0xb5, 0x74, 0x0d, 0x19, 0x4e, 0x00, 0xf2, 0x3f, 0x9e, 0x96, 0x67, 0x91, 0xf0, 0x05, 0xf8, 0xbf, 0x55, 0xc3, 0x88, 0xc2, 0xbe, 0x9e, 0x21, 0x53, 0x89, 0x25, 0xf8, 0x55, 0x5e, 0x0d, 0xbd, 0x83, 0xbe, 0x07, 0x3d, 0xf7, 0x65, 0xaf, 0x49, 0x40, 0xe5, 0x9a, 0x37, 0x90, 0xb9, 0x83, 0x6b, 0xab, 0x79, 0x09, 0xe5, 0x67, 0x6f, 0xbf, 0x1c, 0x21, 0x26, 0xfe, 0x22, 0x6d, 0x78, 0x1a, 0x44, 0x33, 0x0c, 0xc0, 0x1d, 0x32, 0x83, 0x0f, 0xf8, 0xae, 0x00, 0xb9, 0x79, 0x2e, 0x39, 0x8c, 0x2c, 0xbb, 0x4f, 0xb8, 0x3a, 0x10, 0x05, 0xc2, 0x45, 0x54, 0x9a, 0x89, 0x06, 0x3f, 0xbe, 0x06, 0xc6, 0x2a, 0x48, 0xda, 0xc4, 0x3c, 0x51, 0x01, 0x24, 0x99, 0x94, 0xe9, 0x5e, 0x37, 0xf2, 0x4c, 0x1d, 0x8b, 0x3b, 0xc6, 0x73, 0x53, 0x8c, 0x46, 0x05, 0x5f, 0x80, 0x0d, 0xb1, 0xc0, 0xf9, 0x56, 0x86, 0x9b, 0x6b, 0x29, 0x7d, 0x99, 0x0f, 0x44, 0xf0, 0x5b, 0x50, 0xc7, 0xad, 0x6b, 0x85, 0x6f, 0x46, 0x21, 0x28, 0x58, 0x47, 0x1d, 0xd0, 0xd3, 0x93, 0x72, 0xb0, 0xdb, 0x75, 0x15, 0x73, 0xdd, 0xb6, 0xb5, 0xb5, 0x6b, 0xa0, 0x1e, 0x37, 0x1c, 0x78, 0xfe, 0x58, 0xdc, 0xd1, 0xbe, 0x53, 0x11, 0x2a, 0x6a, 0x73, 0xda, 0x9a, 0x6b, 0xac, 0x75, 0xd3, 0xc3, 0x9a, 0x1a, 0x70, 0x5a, 0x36, 0xf6, 0x40, 0xfc, 0xfa, 0xd8, 0xcd, 0x04, 0x07, 0x75, 0x94, 0xd5, 0x96, 0x85, 0xf6, 0xe3, 0x0d, 0xe7, 0x1d, 0xfd, 0x4a, 0x44, 0xc4, 0xe7, 0xc0, 0x4d, 0x6e, 0xc7, 0xc2, 0xe8, 0xbe, 0x12, 0x78, 0x5b, 0xb0, 0x5b, 0x29, 0xb3, 0x91, 0x51, 0xd3, 0x29, 0xf5, 0x87, 0xfd, 0xc3, 0x81, 0xc2, 0xdf, 0x0c, 0xef, 0x73, 0xfe, 0x0e, 0x3f, 0xd9, 0x20, 0x8d, 0x7c, 0xcb, 0x6e, 0x08, 0xd0, 0x2f, 0x42, 0xd1, 0xfe, 0xed, 0x27, 0x56, 0x1d, 0x5e, 0x32, 0x3a, 0xa1, 0x48, 0x62, 0x4e, 0x55, 0x2a, 0xbe, 0x87, 0x53, 0x2d, 0xe1, 0x5b, 0x7f, 0x42, 0xc2, 0x2c, 0x98, 0xe4, 0x05, 0x25, 0xb1, 0x74, 0x7c, 0xbd, 0x75, 0x8b, 0xfb, 0x26, 0xfd, 0x3e, 0xed, 0x3b, };
13477 static const u8 ed25519_586_test_vectors_expected_sig[] = {
13478 	0xa4, 0x24, 0x5a, 0xa3, 0x39, 0x5e, 0x7b, 0xad, 0xa2, 0xbc, 0xdf, 0x16, 0x03, 0x14, 0x7c, 0xc5, 0xf3, 0xf0, 0xba, 0x91, 0xf4, 0x0f, 0xda, 0xd8, 0xf6, 0xd3, 0x71, 0xc3, 0xeb, 0xef, 0xb4, 0xc1, 0x50, 0x1d, 0x07, 0x87, 0x5b, 0x57, 0x6f, 0x40, 0x79, 0x78, 0x06, 0xa4, 0x84, 0xc7, 0xa3, 0xf7, 0x05, 0x69, 0xe2, 0x32, 0xb0, 0xc9, 0x9d, 0x29, 0xca, 0x23, 0xa2, 0x33, 0xb6, 0x8e, 0xdb, 0x0c, };
13479 static const ec_test_case ed25519_586_test_case = {
13480 	.name = "EDDSA25519-SHA512/wei25519 586",
13481 	.ec_str_p = &wei25519_str_params,
13482 	.priv_key = ed25519_586_test_vectors_priv_key,
13483 	.priv_key_len = sizeof(ed25519_586_test_vectors_priv_key),
13484 	.nn_random = NULL,
13485 	.hash_type = SHA512,
13486 	.msg = (const char *)ed25519_586_test_vectors_message,
13487 	.msglen = sizeof(ed25519_586_test_vectors_message),
13488 	.sig_type = EDDSA25519,
13489 	.exp_sig = ed25519_586_test_vectors_expected_sig,
13490 	.exp_siglen = sizeof(ed25519_586_test_vectors_expected_sig),
13491 	.adata = NULL,
13492 	.adata_len = 0
13493 };
13494 
13495 /************************************************/
13496 static const u8 ed25519_587_test_vectors_priv_key[] = {
13497 	0x7f, 0x05, 0xba, 0xac, 0xf1, 0x67, 0x58, 0x3c, 0xf2, 0xfe, 0x95, 0x62, 0xa5, 0x06, 0x99, 0x1e, 0xd9, 0x87, 0xf6, 0x8f, 0xfb, 0x71, 0x56, 0x7c, 0x7c, 0xcc, 0xe3, 0xfc, 0xc5, 0x9b, 0x78, 0xb0, };
13498 static const u8 ed25519_587_test_vectors_message[] = {
13499 	0xa2, 0x7d, 0x1e, 0xab, 0x05, 0x15, 0x09, 0x20, 0xde, 0xd1, 0xb1, 0xc2, 0x57, 0x8a, 0xf5, 0x82, 0xb2, 0x94, 0xf7, 0x83, 0x7f, 0xe4, 0xfb, 0x1a, 0x31, 0x69, 0xc2, 0x5e, 0xfb, 0x70, 0x63, 0x4b, 0xa6, 0x6c, 0x7e, 0x29, 0x91, 0xb3, 0xe7, 0x5c, 0xc5, 0x12, 0x48, 0x26, 0xa0, 0x3e, 0x05, 0x72, 0x59, 0xb5, 0xcb, 0x70, 0x62, 0x28, 0x78, 0x0c, 0xbc, 0x82, 0x75, 0xc3, 0x39, 0xf8, 0x34, 0x0e, 0x40, 0x2a, 0x66, 0x50, 0x32, 0xa4, 0xab, 0x65, 0x78, 0x27, 0xb1, 0xc3, 0x48, 0x1f, 0x75, 0x66, 0xd3, 0x69, 0x73, 0x5b, 0x82, 0xdb, 0x76, 0x28, 0xc0, 0x22, 0xb2, 0x12, 0x73, 0x0d, 0xb1, 0xe4, 0x7c, 0x9b, 0x2d, 0x9b, 0xc4, 0xd8, 0x1b, 0x23, 0x42, 0xd8, 0x9c, 0x6e, 0xaf, 0xc3, 0xe0, 0xb6, 0xde, 0x50, 0xd4, 0x84, 0xcc, 0xef, 0x11, 0x23, 0x8c, 0x8e, 0x2d, 0x24, 0x0d, 0xd5, 0x95, 0xdc, 0xef, 0x8b, 0x2f, 0xc5, 0x7b, 0x54, 0xff, 0x9a, 0x8a, 0x74, 0x11, 0x1f, 0x61, 0xf8, 0xa6, 0x52, 0xf2, 0x0e, 0xa0, 0x12, 0xc1, 0xad, 0xe3, 0xe2, 0x80, 0xec, 0xde, 0x29, 0x4c, 0x0e, 0x35, 0x71, 0x71, 0x90, 0x16, 0x2e, 0xc6, 0xa2, 0x26, 0x5e, 0x7e, 0x6f, 0x3f, 0x07, 0x04, 0xcf, 0x8a, 0xb1, 0xa0, 0x3e, 0x5c, 0xc9, 0x53, 0xe2, 0x92, 0x62, 0x91, 0xcc, 0xd4, 0xb0, 0x59, 0x0d, 0x5c, 0x20, 0x56, 0x8f, 0x94, 0xf9, 0xff, 0x0f, 0xe2, 0xab, 0x78, 0xcf, 0x9a, 0xe2, 0xc3, 0x8b, 0xcd, 0x49, 0x1e, 0x51, 0x8f, 0x23, 0xe9, 0xb6, 0x36, 0xf8, 0x80, 0x61, 0x5f, 0xc5, 0x60, 0x78, 0xe5, 0x12, 0xd7, 0x57, 0x7e, 0x09, 0x49, 0x7c, 0x11, 0x83, 0x45, 0x3d, 0x50, 0x81, 0xfd, 0x47, 0x37, 0xf2, 0x80, 0xec, 0x5e, 0x26, 0x7c, 0x45, 0x86, 0xb7, 0x8b, 0x70, 0xff, 0xfd, 0xfd, 0x73, 0x0d, 0x80, 0x9d, 0xf5, 0x60, 0xf2, 0xe3, 0x77, 0x21, 0x91, 0x84, 0x7b, 0xbc, 0x3f, 0x60, 0x4f, 0xb7, 0xf8, 0xca, 0x49, 0xee, 0xd3, 0x18, 0xb5, 0xe7, 0xd1, 0xf2, 0xb8, 0x3a, 0x10, 0xda, 0x0c, 0x85, 0x94, 0xb3, 0x39, 0xb6, 0x87, 0x1a, 0x57, 0x72, 0xdd, 0x64, 0x16, 0x8e, 0xcc, 0x27, 0xe2, 0x40, 0xa4, 0x5c, 0x76, 0x72, 0x5e, 0x7d, 0x55, 0xbe, 0xf3, 0x7e, 0x13, 0x5e, 0x3d, 0x9e, 0x0e, 0x34, 0xe3, 0x6c, 0x16, 0xe3, 0x4d, 0x77, 0x45, 0x9a, 0x55, 0x2f, 0x40, 0x74, 0xd0, 0x67, 0xa3, 0x1a, 0x3e, 0xd2, 0xa4, 0x8c, 0xde, 0xa4, 0x89, 0x5b, 0x10, 0xbd, 0xf1, 0x65, 0x6f, 0x4b, 0x7a, 0x41, 0x3c, 0x6a, 0x08, 0x8c, 0x64, 0x9f, 0xc9, 0xd7, 0xbc, 0x56, 0xab, 0xf6, 0x44, 0x35, 0x49, 0x12, 0x14, 0x19, 0x2a, 0x66, 0x70, 0xcb, 0x8b, 0x9c, 0x91, 0x7f, 0x8e, 0x1b, 0xc7, 0xb2, 0xcf, 0xce, 0x78, 0xd2, 0x8f, 0xbc, 0x3a, 0xfc, 0x2a, 0x50, 0xe9, 0x82, 0x13, 0xe7, 0xe0, 0x26, 0x37, 0x8e, 0x4e, 0xa7, 0x11, 0xd1, 0x51, 0xad, 0xaa, 0xa7, 0x19, 0xbe, 0xb8, 0x97, 0x46, 0x56, 0xc1, 0x0e, 0xbc, 0x7d, 0xe4, 0x6b, 0x19, 0xec, 0x82, 0x95, 0x1e, 0xf4, 0x6a, 0x8c, 0x68, 0xe7, 0xf4, 0x36, 0xe1, 0xb3, 0xeb, 0xed, 0xb2, 0xd0, 0x9b, 0x05, 0x75, 0xc9, 0x91, 0x4e, 0xad, 0x27, 0x96, 0xb5, 0x3e, 0x00, 0x61, 0xe2, 0x12, 0x99, 0x4a, 0xc5, 0x02, 0x6a, 0xea, 0x81, 0xec, 0x37, 0xc8, 0x13, 0x78, 0xf4, 0xcc, 0xfc, 0x46, 0x77, 0x00, 0x08, 0x79, 0x68, 0x59, 0x7d, 0xa3, 0x8f, 0xed, 0x52, 0xfa, 0x48, 0x09, 0x3a, 0xe4, 0xba, 0x10, 0x66, 0xc3, 0x1e, 0x3c, 0x7d, 0x85, 0x08, 0x09, 0x5b, 0xb4, 0x5c, 0x28, 0x01, 0x20, 0xf4, 0xaa, 0x69, 0xa2, 0x4f, 0x3e, 0xfe, 0xf1, 0xf7, 0x67, 0x98, 0x5a, 0xa1, 0xa3, 0x0e, 0x14, 0x08, 0x56, 0xf7, 0x6d, 0x15, 0x20, 0x73, 0x28, 0x78, 0x48, 0x7b, 0xe5, 0x3f, 0x71, 0x2d, 0xbd, 0x7d, 0x77, 0x9e, 0x31, 0x51, 0x01, 0x58, 0x8f, 0xd7, 0xdb, 0xdb, 0x13, 0x2f, 0x92, 0xc2, 0x75, 0x75, 0xac, 0x14, 0x86, 0xf1, 0x76, 0xc7, 0x90, 0x66, 0x1b, 0x01, 0x48, 0x39, 0x4e, 0x92, 0xff, 0xa3, 0xae, 0x6f, 0x8a, 0xfb, 0x2f, 0xaa, 0x2b, 0x7f, 0x4f, 0xbd, 0x0a, 0xd9, 0x1e, 0x75, 0x9a, 0x70, 0x2b, 0x3c, 0x70, 0x2b, 0x4d, };
13500 static const u8 ed25519_587_test_vectors_expected_sig[] = {
13501 	0x0d, 0xee, 0xd2, 0xdf, 0x82, 0xac, 0xf4, 0x52, 0x9c, 0x40, 0x8a, 0x02, 0x93, 0x1f, 0x67, 0x6b, 0xec, 0x5c, 0xb7, 0xad, 0xe8, 0x4e, 0xbd, 0xcd, 0x57, 0x8f, 0x70, 0xf9, 0x71, 0x38, 0x2c, 0xf3, 0x11, 0xbb, 0x83, 0x09, 0x73, 0x00, 0x45, 0x6a, 0x55, 0x8b, 0xc4, 0xc0, 0x9d, 0x89, 0x83, 0xff, 0x13, 0x49, 0x3f, 0xd6, 0x11, 0xeb, 0x66, 0xc0, 0x43, 0xbf, 0x01, 0x9b, 0xad, 0x6f, 0x33, 0x02, };
13502 static const ec_test_case ed25519_587_test_case = {
13503 	.name = "EDDSA25519-SHA512/wei25519 587",
13504 	.ec_str_p = &wei25519_str_params,
13505 	.priv_key = ed25519_587_test_vectors_priv_key,
13506 	.priv_key_len = sizeof(ed25519_587_test_vectors_priv_key),
13507 	.nn_random = NULL,
13508 	.hash_type = SHA512,
13509 	.msg = (const char *)ed25519_587_test_vectors_message,
13510 	.msglen = sizeof(ed25519_587_test_vectors_message),
13511 	.sig_type = EDDSA25519,
13512 	.exp_sig = ed25519_587_test_vectors_expected_sig,
13513 	.exp_siglen = sizeof(ed25519_587_test_vectors_expected_sig),
13514 	.adata = NULL,
13515 	.adata_len = 0
13516 };
13517 
13518 /************************************************/
13519 static const u8 ed25519_588_test_vectors_priv_key[] = {
13520 	0xd0, 0x0c, 0x21, 0x64, 0x26, 0x71, 0x0d, 0x19, 0x4a, 0x3d, 0x11, 0xcf, 0xc9, 0x0a, 0x17, 0xa8, 0x62, 0x12, 0xe7, 0xa0, 0xe5, 0x4b, 0xaa, 0x49, 0xb0, 0x16, 0x9e, 0x57, 0xff, 0xf8, 0x3d, 0x61, };
13521 static const u8 ed25519_588_test_vectors_message[] = {
13522 	0x82, 0xf9, 0x78, 0x41, 0xb3, 0xba, 0x22, 0xdd, 0x9a, 0x44, 0x50, 0x83, 0x7e, 0xa7, 0xbf, 0x8d, 0x27, 0xa9, 0x73, 0x14, 0x70, 0xca, 0xbb, 0x0c, 0x20, 0x78, 0x03, 0x4b, 0xf2, 0x4e, 0x4c, 0x1a, 0x62, 0x90, 0xc0, 0x3f, 0x40, 0x02, 0xb8, 0x6f, 0xa0, 0x9f, 0x07, 0xb5, 0x20, 0x9f, 0x1f, 0x53, 0xd0, 0xec, 0xf4, 0xd9, 0xe9, 0x22, 0x3b, 0xec, 0x12, 0x5a, 0x95, 0x45, 0x51, 0xfe, 0x8b, 0xff, 0x71, 0x8f, 0x5e, 0x26, 0x48, 0x68, 0xe2, 0x07, 0xf7, 0x01, 0x19, 0x4e, 0x41, 0xde, 0x39, 0x97, 0x1f, 0xd3, 0x85, 0xf4, 0x9a, 0x4b, 0x4a, 0xdd, 0xa9, 0x11, 0xeb, 0xa5, 0x52, 0x59, 0xfc, 0x68, 0x36, 0x65, 0x32, 0x73, 0xf6, 0x56, 0xf4, 0xaf, 0x60, 0xb2, 0x06, 0x64, 0x95, 0x6d, 0x4f, 0x21, 0x35, 0xd9, 0x0d, 0x09, 0xe9, 0x03, 0x7d, 0x53, 0x66, 0xa0, 0x25, 0x34, 0x44, 0xe0, 0x22, 0xc7, 0x21, 0x2a, 0xf5, 0xfd, 0x4f, 0xcc, 0xd7, 0x42, 0x37, 0xd2, 0x88, 0x53, 0x38, 0xe2, 0xfd, 0x72, 0x15, 0x22, 0xde, 0x67, 0x63, 0xc2, 0x54, 0x90, 0x28, 0xc6, 0x23, 0xb9, 0xcf, 0x38, 0x7d, 0x23, 0x4a, 0xb5, 0xe7, 0xfc, 0xbe, 0x5a, 0x47, 0xc6, 0x85, 0xb7, 0x9e, 0x75, 0xa5, 0x7b, 0x09, 0x57, 0x40, 0x82, 0xa0, 0x22, 0x21, 0xdf, 0x64, 0xa2, 0xe8, 0x41, 0x61, 0x80, 0x87, 0xe7, 0x22, 0xa2, 0x1b, 0xac, 0x1b, 0xa4, 0xf0, 0xd7, 0xd8, 0x7b, 0xdc, 0x51, 0x0a, 0xaa, 0x8f, 0xbd, 0x10, 0x75, 0x7f, 0x6c, 0x02, 0x9c, 0xa8, 0x20, 0x37, 0x1f, 0xc7, 0x4c, 0x3b, 0xc5, 0x0b, 0xd8, 0x98, 0xc5, 0x5d, 0x81, 0x67, 0xf7, 0x3a, 0xda, 0x37, 0x7a, 0xec, 0xc9, 0x16, 0x29, 0xd6, 0x4c, 0x36, 0x0c, 0x2c, 0x24, 0x1c, 0x5c, 0xb4, 0x2e, 0x3a, 0x51, 0x8c, 0x5d, 0xab, 0xf0, 0xf4, 0x18, 0xb2, 0xa7, 0xf3, 0xd8, 0x2e, 0xef, 0xd9, 0x20, 0x26, 0xd3, 0x1e, 0x8b, 0x81, 0x60, 0x35, 0x8e, 0xae, 0x82, 0x1f, 0x73, 0x0e, 0xca, 0xfe, 0x7a, 0xce, 0x64, 0x7b, 0xff, 0x87, 0x41, 0xde, 0x2f, 0x6a, 0x13, 0x1d, 0x11, 0xc9, 0x69, 0xe9, 0x78, 0x7c, 0xfe, 0x6a, 0x2f, 0xab, 0x37, 0xbf, 0x8d, 0x1c, 0x7f, 0x4a, 0x2f, 0x36, 0x4d, 0x2f, 0x1a, 0x76, 0xef, 0x04, 0x6c, 0x18, 0x43, 0xe6, 0x3e, 0xc0, 0x0c, 0xf7, 0x92, 0x0f, 0xfa, 0xae, 0x56, 0x1e, 0x73, 0x70, 0xb7, 0x19, 0xfc, 0x16, 0xfc, 0xeb, 0xca, 0x3c, 0xfd, 0xfa, 0xba, 0x43, 0xf4, 0xf0, 0x90, 0xc4, 0x6f, 0x47, 0x73, 0x03, 0xa6, 0x60, 0xee, 0x88, 0xdd, 0x4e, 0x89, 0xbf, 0x14, 0xb9, 0xf8, 0x04, 0xb6, 0xfd, 0x49, 0x5c, 0xb1, 0x41, 0x27, 0x53, 0x47, 0x4a, 0x05, 0x6a, 0x0d, 0x89, 0x31, 0xcd, 0x9c, 0xcb, 0xd6, 0x4f, 0x8f, 0xcc, 0x7a, 0x31, 0x23, 0x46, 0x7c, 0x5d, 0x47, 0xf6, 0x90, 0x67, 0x9e, 0x88, 0x71, 0x28, 0x80, 0x93, 0x73, 0x4f, 0xd6, 0xa1, 0x32, 0x60, 0x38, 0x65, 0x81, 0x56, 0x41, 0x36, 0x96, 0x59, 0x4c, 0x13, 0x4d, 0x73, 0x88, 0x7f, 0x34, 0xee, 0x67, 0x60, 0x9a, 0xe8, 0xff, 0xb3, 0x26, 0x6c, 0x16, 0xd8, 0x7f, 0x15, 0x34, 0x5a, 0x47, 0x6f, 0x72, 0x95, 0x0c, 0x15, 0x87, 0x96, 0xa8, 0x8b, 0xbb, 0x44, 0x4f, 0x1a, 0xa8, 0x09, 0xca, 0xd8, 0x75, 0xb8, 0x5f, 0xb9, 0x15, 0x1a, 0x0e, 0x2e, 0xef, 0x2e, 0x00, 0xe8, 0x0d, 0x6b, 0x7a, 0x9b, 0xa4, 0x06, 0xc0, 0x51, 0x9e, 0xff, 0xdd, 0x94, 0x12, 0x62, 0x32, 0xfd, 0xf6, 0xf1, 0xe7, 0xb9, 0xbb, 0xc0, 0x36, 0x2a, 0xa7, 0x75, 0x16, 0xfd, 0xf9, 0x39, 0xe7, 0x90, 0x6a, 0xab, 0x01, 0x30, 0x71, 0x28, 0xcf, 0x82, 0x4c, 0x10, 0x2c, 0x09, 0xb9, 0x29, 0xc9, 0xb2, 0xd7, 0xaf, 0x8f, 0x85, 0xb7, 0xd7, 0xf9, 0xa8, 0x38, 0xb2, 0xae, 0xd0, 0xc6, 0x97, 0xe8, 0xbd, 0xfe, 0xe6, 0x6e, 0xe0, 0x16, 0xbb, 0x1b, 0xf3, 0x5e, 0xff, 0x6b, 0x2f, 0x7e, 0xf4, 0xb9, 0x1b, 0x1f, 0xc0, 0x4f, 0xac, 0x9f, 0x11, 0x6e, 0x2e, 0xdf, 0xf4, 0x0f, 0x95, 0xc1, 0x5b, 0x77, 0xc3, 0x1e, 0xe5, 0x22, 0xf3, 0x93, 0x7c, 0x7f, 0xa0, 0x04, 0x7d, 0x62, 0x25, 0xe0, 0xc8, 0xe5, 0x5e, 0x27, 0x8c, 0x81, 0x03, 0x91, 0x1f, 0xea, 0xb2, 0xb7, 0xf4, };
13523 static const u8 ed25519_588_test_vectors_expected_sig[] = {
13524 	0x15, 0xc4, 0x5c, 0x19, 0x42, 0x97, 0xe8, 0x87, 0x02, 0x9f, 0x49, 0xd8, 0xbd, 0xf9, 0xd6, 0x10, 0xdd, 0x8c, 0x34, 0x79, 0x9e, 0x1e, 0x92, 0x30, 0x26, 0x9e, 0x7a, 0x58, 0x92, 0x89, 0x38, 0xcf, 0x39, 0x6a, 0x02, 0xcd, 0x42, 0x20, 0x54, 0x90, 0x39, 0x1e, 0x1c, 0x64, 0x35, 0x3f, 0xb0, 0x6b, 0x9f, 0x8e, 0x9b, 0x81, 0x8a, 0x9a, 0x36, 0x1c, 0x20, 0x4a, 0x38, 0x69, 0x95, 0xbf, 0x3b, 0x03, };
13525 static const ec_test_case ed25519_588_test_case = {
13526 	.name = "EDDSA25519-SHA512/wei25519 588",
13527 	.ec_str_p = &wei25519_str_params,
13528 	.priv_key = ed25519_588_test_vectors_priv_key,
13529 	.priv_key_len = sizeof(ed25519_588_test_vectors_priv_key),
13530 	.nn_random = NULL,
13531 	.hash_type = SHA512,
13532 	.msg = (const char *)ed25519_588_test_vectors_message,
13533 	.msglen = sizeof(ed25519_588_test_vectors_message),
13534 	.sig_type = EDDSA25519,
13535 	.exp_sig = ed25519_588_test_vectors_expected_sig,
13536 	.exp_siglen = sizeof(ed25519_588_test_vectors_expected_sig),
13537 	.adata = NULL,
13538 	.adata_len = 0
13539 };
13540 
13541 /************************************************/
13542 static const u8 ed25519_589_test_vectors_priv_key[] = {
13543 	0xdd, 0x12, 0x39, 0x72, 0xe6, 0x28, 0x58, 0x4a, 0xcc, 0x46, 0x29, 0x3b, 0x8e, 0x4c, 0xe2, 0xb2, 0xdd, 0x46, 0x9c, 0xc4, 0xed, 0xe1, 0x4e, 0xf3, 0x95, 0x21, 0xcf, 0x08, 0x37, 0x35, 0x85, 0xb3, };
13544 static const u8 ed25519_589_test_vectors_message[] = {
13545 	0x2b, 0x28, 0x57, 0xf4, 0x52, 0x80, 0x17, 0x3e, 0x2e, 0x0e, 0xf9, 0xd5, 0x94, 0xe6, 0x08, 0x3f, 0x1d, 0xc7, 0xa6, 0x54, 0x92, 0x97, 0x5b, 0x83, 0x7d, 0xef, 0x6c, 0xad, 0xd8, 0xc8, 0x54, 0x50, 0x31, 0xee, 0x9d, 0x68, 0x36, 0x9a, 0x93, 0x93, 0xcc, 0x7b, 0x79, 0x2f, 0xeb, 0x98, 0x04, 0x0b, 0x21, 0xf1, 0xeb, 0x84, 0x66, 0x5f, 0x87, 0x85, 0x37, 0xce, 0x41, 0x2e, 0x9d, 0xb6, 0x80, 0xd2, 0x9f, 0xbd, 0x8f, 0xfc, 0x77, 0x31, 0xea, 0xe9, 0x1a, 0x20, 0xb4, 0x75, 0x48, 0x99, 0x62, 0x04, 0xfb, 0x06, 0xad, 0x74, 0x0e, 0x78, 0xf0, 0xfc, 0x59, 0x0b, 0x67, 0x91, 0xdc, 0x7a, 0x0f, 0x26, 0x59, 0x28, 0x6c, 0xc1, 0x6d, 0x02, 0xc5, 0x11, 0x7b, 0x56, 0x58, 0x36, 0xb4, 0xb8, 0x73, 0x8c, 0xf4, 0x0e, 0x28, 0x5c, 0x69, 0xc5, 0x0e, 0x41, 0x29, 0x11, 0x29, 0x23, 0x67, 0x35, 0x2d, 0xfd, 0xae, 0xd9, 0x98, 0x2d, 0x0f, 0x89, 0x9a, 0x23, 0xc0, 0xab, 0x51, 0x81, 0x2b, 0x3e, 0xc6, 0x78, 0xf6, 0x88, 0x2e, 0xa4, 0x27, 0xcd, 0xc9, 0x3a, 0xb4, 0xb2, 0x48, 0x24, 0x37, 0x70, 0x54, 0xaa, 0x25, 0xd8, 0x22, 0x46, 0x65, 0x33, 0x40, 0x07, 0x8c, 0xf1, 0x1d, 0x14, 0xa5, 0x1f, 0x0e, 0x68, 0x6d, 0x7e, 0x01, 0x8b, 0x36, 0x74, 0x16, 0x68, 0xfc, 0xe7, 0x45, 0x8d, 0x16, 0x92, 0x93, 0x36, 0x1d, 0xd1, 0x6b, 0x3d, 0xeb, 0xbe, 0xd1, 0x9e, 0x1b, 0xef, 0x7c, 0x36, 0x93, 0x4e, 0x20, 0xf3, 0x3a, 0x09, 0xad, 0x3e, 0x82, 0xb5, 0x3a, 0xb4, 0xe9, 0x4c, 0x25, 0x5d, 0x04, 0x18, 0x98, 0xb9, 0x77, 0x37, 0xdf, 0x99, 0x58, 0x4a, 0xf1, 0x4e, 0x40, 0x40, 0x58, 0xd0, 0xc9, 0x3b, 0xca, 0xe7, 0xbb, 0xbc, 0x06, 0x39, 0x5a, 0x2a, 0xef, 0xbd, 0xef, 0xa7, 0xb2, 0xed, 0x17, 0xce, 0xbd, 0x15, 0x13, 0xfa, 0x39, 0x0f, 0xe9, 0xa9, 0xb0, 0xce, 0x68, 0xce, 0xcc, 0x2b, 0x9e, 0x12, 0x9b, 0x7a, 0x29, 0xf4, 0x9b, 0x6d, 0x18, 0xc2, 0x8b, 0xac, 0xd3, 0xaf, 0x39, 0xdc, 0x39, 0xca, 0x97, 0x2f, 0x0e, 0x0d, 0x06, 0x85, 0x5d, 0x57, 0xc2, 0xb5, 0xfc, 0xac, 0x2f, 0x79, 0xcb, 0x8c, 0x05, 0x79, 0x9e, 0x4f, 0x65, 0x73, 0x46, 0x68, 0xda, 0xd6, 0xaa, 0x7a, 0x43, 0xa1, 0x18, 0x56, 0xe2, 0x3b, 0x1e, 0x73, 0x2d, 0x00, 0xe5, 0xfe, 0x38, 0x85, 0xb7, 0xda, 0xd4, 0x2e, 0xc1, 0x8a, 0xc8, 0xe0, 0x96, 0xa0, 0x80, 0xf7, 0xd5, 0x50, 0x70, 0xfd, 0xcf, 0xf6, 0x07, 0xbc, 0x0b, 0x85, 0x2d, 0x8a, 0x08, 0x0d, 0x2a, 0x74, 0x05, 0xd5, 0x94, 0x14, 0x69, 0x5f, 0x2e, 0xb7, 0xfb, 0x0a, 0xca, 0x23, 0xc8, 0x63, 0x57, 0x42, 0xf8, 0xae, 0x57, 0xf1, 0x37, 0x80, 0x31, 0x6e, 0x28, 0x08, 0x72, 0x37, 0x4e, 0x69, 0x29, 0x59, 0x8d, 0x02, 0x8a, 0x33, 0xc0, 0x5d, 0x83, 0x1c, 0xda, 0xbd, 0x02, 0x94, 0x93, 0xc3, 0xcc, 0x85, 0x9f, 0xff, 0x1a, 0x67, 0xd5, 0x62, 0x16, 0xf0, 0x2a, 0x22, 0x95, 0x66, 0x53, 0x65, 0x88, 0x7a, 0x35, 0x0a, 0x80, 0xaf, 0xaa, 0x0c, 0x36, 0x7a, 0x74, 0xd3, 0x70, 0x1a, 0xe8, 0x8f, 0x59, 0xd8, 0xa9, 0xd3, 0xa1, 0xdc, 0xe0, 0xcf, 0xd2, 0xea, 0xbe, 0x2a, 0xf5, 0x06, 0x5a, 0x1c, 0x7f, 0xca, 0x4a, 0xad, 0xcf, 0x8e, 0x51, 0xe7, 0x56, 0x12, 0xa1, 0x37, 0x1b, 0x4d, 0xc8, 0xff, 0xc0, 0xc0, 0xb9, 0xc4, 0xfa, 0xdb, 0x2f, 0x08, 0x1e, 0x2e, 0x03, 0x2d, 0x96, 0x81, 0x8e, 0x55, 0x73, 0x7a, 0xdd, 0xe3, 0xe1, 0xac, 0x12, 0x1f, 0x56, 0xcc, 0x86, 0xfb, 0x58, 0xa0, 0xa5, 0x82, 0x69, 0x2f, 0x62, 0xce, 0x58, 0xac, 0xce, 0x17, 0xaa, 0xfe, 0xc7, 0xbc, 0xb7, 0xe4, 0x4f, 0x83, 0x92, 0x58, 0xcd, 0x4a, 0x85, 0x1f, 0xc0, 0x13, 0x44, 0xee, 0x9f, 0x1b, 0xd0, 0x3e, 0xb9, 0x43, 0x44, 0xf4, 0x77, 0x86, 0x93, 0xc1, 0x71, 0xdd, 0x28, 0x92, 0xb2, 0x42, 0x6a, 0x88, 0x29, 0xab, 0x0c, 0xfe, 0x33, 0xa7, 0xd4, 0xa3, 0x6e, 0xb4, 0x01, 0x7f, 0x7f, 0xcf, 0xd2, 0x41, 0x34, 0xab, 0x8a, 0x45, 0xf2, 0x37, 0x17, 0xcd, 0x13, 0x8a, 0xa6, 0x00, 0x01, 0x72, 0xe3, 0x7b, 0x40, 0x64, 0xdc, 0x9b, 0x6d, 0x1e, 0x1e, 0xf3, 0xaf, 0x84, 0x97, 0x1d, };
13546 static const u8 ed25519_589_test_vectors_expected_sig[] = {
13547 	0x89, 0x65, 0xa8, 0x89, 0xd5, 0x4c, 0xd8, 0x07, 0x6d, 0x35, 0xbc, 0x2e, 0x12, 0xb0, 0x09, 0xd5, 0x6b, 0x07, 0x04, 0xc8, 0x94, 0xf9, 0x12, 0xa0, 0xd1, 0xd3, 0x07, 0x20, 0xc2, 0x32, 0xfe, 0x44, 0x04, 0xbf, 0x30, 0x09, 0x54, 0x1e, 0x8f, 0x32, 0x83, 0xe8, 0x9e, 0xa8, 0x6f, 0x67, 0x8a, 0xfb, 0xdf, 0x1c, 0x21, 0xc9, 0x24, 0xb2, 0x3a, 0x52, 0xb4, 0xca, 0x6d, 0x63, 0xf4, 0x8f, 0xc2, 0x03, };
13548 static const ec_test_case ed25519_589_test_case = {
13549 	.name = "EDDSA25519-SHA512/wei25519 589",
13550 	.ec_str_p = &wei25519_str_params,
13551 	.priv_key = ed25519_589_test_vectors_priv_key,
13552 	.priv_key_len = sizeof(ed25519_589_test_vectors_priv_key),
13553 	.nn_random = NULL,
13554 	.hash_type = SHA512,
13555 	.msg = (const char *)ed25519_589_test_vectors_message,
13556 	.msglen = sizeof(ed25519_589_test_vectors_message),
13557 	.sig_type = EDDSA25519,
13558 	.exp_sig = ed25519_589_test_vectors_expected_sig,
13559 	.exp_siglen = sizeof(ed25519_589_test_vectors_expected_sig),
13560 	.adata = NULL,
13561 	.adata_len = 0
13562 };
13563 
13564 /************************************************/
13565 static const u8 ed25519_590_test_vectors_priv_key[] = {
13566 	0x33, 0x35, 0xea, 0x92, 0x81, 0x17, 0xcf, 0xee, 0xfb, 0xee, 0xae, 0x14, 0x60, 0x03, 0x88, 0x1b, 0xdc, 0x88, 0x89, 0xd6, 0x58, 0x0e, 0xed, 0x13, 0x52, 0x37, 0x08, 0x20, 0xad, 0x1f, 0x58, 0x4f, };
13567 static const u8 ed25519_590_test_vectors_message[] = {
13568 	0x0f, 0xa7, 0xf6, 0xa6, 0xfc, 0xa9, 0x81, 0x42, 0x9b, 0x57, 0x2a, 0x67, 0x04, 0x87, 0x1b, 0xed, 0x14, 0x0d, 0xab, 0x93, 0xee, 0x19, 0x92, 0x00, 0x6e, 0x9a, 0x3b, 0xb2, 0xe6, 0xcc, 0x9a, 0x09, 0xd4, 0xc9, 0xcf, 0x17, 0x06, 0x6b, 0x32, 0xff, 0x7e, 0xf5, 0xb6, 0xb2, 0xe7, 0x91, 0x11, 0x78, 0xed, 0x74, 0x62, 0xc4, 0xc1, 0x75, 0x60, 0x31, 0x71, 0xca, 0x61, 0x36, 0x68, 0xb3, 0xbe, 0x19, 0x3d, 0x94, 0xc3, 0x52, 0x1e, 0x58, 0x89, 0x13, 0xb5, 0x94, 0x8b, 0x55, 0x0b, 0xe9, 0x9d, 0x82, 0xd9, 0x66, 0x19, 0x7d, 0x71, 0x0a, 0xcf, 0xd9, 0x59, 0x14, 0xcf, 0x3e, 0x19, 0x75, 0x36, 0xe8, 0x3e, 0x68, 0x23, 0x0d, 0xc3, 0xd6, 0x7e, 0x67, 0xdc, 0xdb, 0xde, 0xe0, 0x4f, 0x0d, 0x9c, 0x48, 0x02, 0x37, 0xec, 0xd2, 0x8f, 0x74, 0x33, 0x8d, 0xb5, 0xf3, 0xf6, 0x97, 0xd3, 0xd0, 0x7f, 0xf3, 0x36, 0x13, 0xbb, 0xce, 0x54, 0x2a, 0xcc, 0x9a, 0x7f, 0xed, 0x5d, 0x12, 0x49, 0x0b, 0x9b, 0xfe, 0x1d, 0x10, 0x95, 0x40, 0xf8, 0x63, 0x80, 0x0d, 0xd3, 0x56, 0xda, 0x84, 0x1a, 0x45, 0xa3, 0xcd, 0x8a, 0x08, 0xa9, 0x45, 0xbf, 0xa3, 0xaa, 0x98, 0xe1, 0x71, 0x23, 0x12, 0xc4, 0xc0, 0xf0, 0xd9, 0xdd, 0x64, 0xf6, 0xef, 0xcf, 0x73, 0x6b, 0xd9, 0x7d, 0xea, 0xfc, 0xa9, 0xdc, 0xaa, 0x3f, 0x06, 0xd8, 0x7f, 0x2e, 0xd7, 0x2a, 0xeb, 0x6a, 0x94, 0xf3, 0x28, 0x00, 0x00, 0xc4, 0xbf, 0x72, 0x8a, 0x01, 0xc1, 0x86, 0x2d, 0xaf, 0xd9, 0xfc, 0x5c, 0x7d, 0x5a, 0x46, 0xec, 0x7d, 0x3a, 0x87, 0xaf, 0x59, 0xa1, 0x1d, 0x87, 0xf7, 0xff, 0x84, 0x40, 0x7d, 0x37, 0x01, 0x0e, 0x1d, 0x94, 0x6c, 0xf2, 0x25, 0xd6, 0xb3, 0xb1, 0xed, 0xee, 0x2e, 0x8b, 0xbf, 0x1e, 0x07, 0x9e, 0x47, 0xfb, 0x1f, 0x66, 0x66, 0x93, 0x94, 0xfb, 0xf2, 0xfa, 0x68, 0xfc, 0x56, 0xfc, 0x89, 0x82, 0x0a, 0x68, 0x09, 0xc2, 0x51, 0xdd, 0x62, 0xf5, 0xb8, 0x65, 0xc5, 0x47, 0xb1, 0x4f, 0xbd, 0x3a, 0x19, 0x50, 0x42, 0x44, 0xff, 0xbc, 0x7e, 0x52, 0x40, 0xf8, 0x8d, 0x43, 0x60, 0xf9, 0xca, 0xca, 0xaf, 0x5f, 0x82, 0x43, 0x3d, 0x33, 0x44, 0xfc, 0xae, 0xe0, 0xac, 0xde, 0xb7, 0xbe, 0xb9, 0xc0, 0xb3, 0xc7, 0x69, 0xea, 0xc9, 0x20, 0xef, 0x4f, 0x09, 0xab, 0xc2, 0xa2, 0x09, 0x55, 0x12, 0x04, 0x59, 0x43, 0xec, 0xcc, 0x53, 0xb1, 0xc0, 0x3e, 0xd2, 0x4e, 0x56, 0x7f, 0x3d, 0x7a, 0x71, 0x97, 0x7c, 0xab, 0x98, 0x40, 0xce, 0x89, 0x8e, 0xe5, 0x8e, 0xd5, 0xc7, 0x3f, 0x6a, 0xde, 0xa8, 0x23, 0x39, 0x4c, 0x5c, 0x8e, 0x36, 0x58, 0xa6, 0xbf, 0x5a, 0xcb, 0xbf, 0x00, 0x55, 0x99, 0x2c, 0x31, 0x2c, 0x26, 0xc7, 0x9c, 0x5c, 0xfb, 0xea, 0x38, 0x60, 0xb8, 0x76, 0x4a, 0x6d, 0x8f, 0xfe, 0x44, 0x91, 0xf8, 0xa5, 0xb8, 0xa2, 0x15, 0xe0, 0x11, 0x7a, 0x9a, 0x68, 0x16, 0x4a, 0xee, 0x25, 0xf8, 0xc0, 0xbb, 0x38, 0x11, 0x95, 0xb2, 0x40, 0x0b, 0xcb, 0x46, 0x44, 0xeb, 0xce, 0x1c, 0xde, 0x5a, 0x9a, 0x26, 0x58, 0x2c, 0xab, 0x9d, 0xc7, 0xf4, 0x3c, 0x33, 0xea, 0xe3, 0x50, 0xdb, 0x65, 0xaa, 0x7d, 0xd2, 0x2a, 0x07, 0x9b, 0xdd, 0xdc, 0xf5, 0x6d, 0x84, 0x8d, 0xeb, 0x0c, 0xfa, 0x50, 0xb3, 0xbd, 0x73, 0x2d, 0x9d, 0xa9, 0xe8, 0xd8, 0xab, 0x79, 0xe9, 0x34, 0x69, 0xde, 0x58, 0x02, 0xb6, 0xdf, 0xf5, 0xac, 0x2a, 0xa8, 0x48, 0x2b, 0xb0, 0xb0, 0x36, 0xd8, 0xf9, 0xd5, 0x95, 0xb8, 0xea, 0xd9, 0x4b, 0xb8, 0xd7, 0x41, 0x8e, 0x2e, 0xa4, 0x31, 0x92, 0xef, 0xcb, 0xfc, 0x05, 0xc4, 0x67, 0xbd, 0xe0, 0xa8, 0x68, 0xa5, 0x16, 0xa7, 0xc1, 0x4a, 0x88, 0x9b, 0x72, 0xc5, 0xb7, 0x3e, 0x7d, 0x85, 0xc2, 0xba, 0xe9, 0x02, 0xe4, 0xe6, 0x8d, 0x1f, 0x3c, 0xea, 0xb2, 0xb2, 0x77, 0x3a, 0xf5, 0xbb, 0xae, 0xe6, 0xa0, 0x0d, 0x08, 0x06, 0x3e, 0x78, 0x33, 0xcd, 0x4e, 0x29, 0x53, 0x47, 0xe5, 0x8f, 0x5d, 0x1b, 0x33, 0x97, 0xf6, 0x40, 0xc1, 0x59, 0xcc, 0x60, 0xa6, 0x74, 0xa2, 0x27, 0xb4, 0xcd, 0x8c, 0x10, 0xf1, 0xdb, 0xae, 0xd5, 0x16, 0xcc, 0xac, 0xdd, 0x29, 0x5f, 0x11, 0xb0, 0x81, 0x47, };
13569 static const u8 ed25519_590_test_vectors_expected_sig[] = {
13570 	0xf7, 0xc3, 0x9f, 0x92, 0x47, 0xd2, 0x2f, 0x01, 0x89, 0x99, 0x24, 0x7f, 0x0e, 0x00, 0x05, 0xcd, 0x63, 0x07, 0x6c, 0xcf, 0x2f, 0xee, 0x41, 0x63, 0x42, 0x1f, 0x86, 0x40, 0x7a, 0x41, 0x69, 0x8c, 0x40, 0x58, 0x16, 0x64, 0x73, 0x51, 0xc0, 0x4e, 0x93, 0xb5, 0x44, 0x15, 0xb6, 0x2f, 0xc0, 0x3f, 0xc8, 0xc2, 0x5e, 0x20, 0xf7, 0x54, 0x1d, 0xab, 0x03, 0x19, 0x7d, 0xc9, 0x00, 0xb2, 0x9c, 0x0c, };
13571 static const ec_test_case ed25519_590_test_case = {
13572 	.name = "EDDSA25519-SHA512/wei25519 590",
13573 	.ec_str_p = &wei25519_str_params,
13574 	.priv_key = ed25519_590_test_vectors_priv_key,
13575 	.priv_key_len = sizeof(ed25519_590_test_vectors_priv_key),
13576 	.nn_random = NULL,
13577 	.hash_type = SHA512,
13578 	.msg = (const char *)ed25519_590_test_vectors_message,
13579 	.msglen = sizeof(ed25519_590_test_vectors_message),
13580 	.sig_type = EDDSA25519,
13581 	.exp_sig = ed25519_590_test_vectors_expected_sig,
13582 	.exp_siglen = sizeof(ed25519_590_test_vectors_expected_sig),
13583 	.adata = NULL,
13584 	.adata_len = 0
13585 };
13586 
13587 /************************************************/
13588 static const u8 ed25519_591_test_vectors_priv_key[] = {
13589 	0x32, 0xa1, 0x88, 0x3e, 0xff, 0x57, 0xa3, 0xa7, 0xec, 0xdb, 0x31, 0x02, 0x21, 0xee, 0x83, 0xc4, 0xde, 0x92, 0xb7, 0x22, 0x15, 0x96, 0x13, 0xec, 0xf8, 0x16, 0xe3, 0x82, 0x43, 0x7b, 0x60, 0xb9, };
13590 static const u8 ed25519_591_test_vectors_message[] = {
13591 	0xed, 0x2b, 0x12, 0x3b, 0x5d, 0xd7, 0xf5, 0xe7, 0x18, 0xe0, 0x26, 0xc7, 0x9c, 0xfa, 0x61, 0x11, 0x92, 0x49, 0x02, 0xd1, 0x89, 0xa4, 0x06, 0xef, 0x2b, 0x2e, 0x56, 0xa9, 0xee, 0x55, 0x73, 0xa7, 0x6d, 0xdd, 0x1d, 0x06, 0x29, 0xeb, 0xcd, 0xec, 0xf2, 0xaa, 0xa7, 0x4e, 0x84, 0xfc, 0xd0, 0x20, 0x8f, 0x14, 0xee, 0xa2, 0xe1, 0x71, 0xe7, 0xc8, 0x60, 0x8b, 0x81, 0x8f, 0xef, 0xf4, 0xdb, 0xea, 0x52, 0xdb, 0x35, 0x42, 0x27, 0xd0, 0x23, 0x25, 0x0b, 0x1f, 0x01, 0xcb, 0x4c, 0xc8, 0xc5, 0x21, 0x32, 0xa9, 0x8d, 0x4a, 0xcf, 0x55, 0xa5, 0x4f, 0xee, 0x81, 0xe0, 0x94, 0xae, 0xd6, 0x6f, 0xa0, 0xd6, 0xb6, 0xa2, 0x00, 0xb6, 0xb8, 0x74, 0x14, 0x40, 0x22, 0x78, 0x53, 0x8b, 0x90, 0x52, 0x9a, 0x8c, 0x60, 0x3d, 0x92, 0x7e, 0xdd, 0xda, 0x97, 0xbc, 0x4b, 0x8c, 0xb9, 0x5d, 0x04, 0xb5, 0x33, 0x7f, 0xa2, 0x2c, 0xea, 0xfc, 0x8b, 0x34, 0x0c, 0x46, 0xfe, 0xf6, 0x71, 0x98, 0xd1, 0xfd, 0x98, 0xd8, 0x9c, 0x65, 0xcd, 0x08, 0x9e, 0x23, 0xf5, 0x3d, 0xbd, 0xca, 0x96, 0x77, 0x98, 0xb5, 0xcd, 0x92, 0x32, 0x05, 0xad, 0x51, 0x1e, 0xdf, 0x70, 0x6f, 0x12, 0x25, 0xf4, 0x64, 0x8c, 0x98, 0x5e, 0x00, 0x9e, 0xf8, 0xa2, 0xf6, 0xa0, 0x11, 0x7c, 0xdb, 0xe1, 0x4e, 0x75, 0x31, 0x2d, 0x8a, 0xc1, 0xf0, 0x3d, 0x04, 0x6b, 0x37, 0xcd, 0xee, 0x7d, 0x69, 0xc0, 0xf2, 0x5c, 0xcf, 0x18, 0x14, 0x5a, 0x68, 0x8a, 0x8b, 0x3c, 0xa8, 0x87, 0x5f, 0xe8, 0xd9, 0x0b, 0xaf, 0x86, 0xd4, 0x39, 0x69, 0xe4, 0xd6, 0x10, 0x21, 0x4f, 0x1a, 0xc5, 0xdb, 0xba, 0x87, 0xa1, 0xef, 0x10, 0x37, 0x7e, 0x40, 0xd7, 0x80, 0x6f, 0xd9, 0xd2, 0x34, 0x57, 0xfc, 0x9d, 0xf2, 0x98, 0x99, 0x23, 0x9f, 0xd1, 0xd2, 0x78, 0x84, 0x96, 0x81, 0xa9, 0x43, 0xad, 0x9c, 0x91, 0xfd, 0x1b, 0xbd, 0x92, 0xb7, 0x3c, 0xb1, 0x77, 0xa8, 0x78, 0xf9, 0x05, 0x9e, 0xe0, 0x7a, 0xf7, 0xa8, 0x73, 0x16, 0x13, 0xe3, 0x3d, 0x59, 0xdf, 0x3d, 0x97, 0x79, 0x60, 0x79, 0xd5, 0x63, 0x1e, 0xd8, 0x5e, 0xb2, 0x24, 0x51, 0x06, 0xa5, 0xff, 0x6a, 0x2b, 0xca, 0x40, 0xdf, 0x5c, 0x6e, 0x87, 0x47, 0x3b, 0x2c, 0x08, 0xc2, 0x21, 0x2f, 0x56, 0xfc, 0x29, 0x33, 0xa9, 0x69, 0xa3, 0xc9, 0x58, 0xd3, 0x7c, 0x53, 0x43, 0xba, 0x27, 0x60, 0xc8, 0x13, 0xa7, 0xa5, 0x16, 0x5d, 0x23, 0x1c, 0x5f, 0xea, 0xae, 0x62, 0xb7, 0x55, 0xdf, 0x49, 0xfe, 0xca, 0x80, 0x04, 0x1a, 0x65, 0x35, 0xf7, 0xe0, 0x3b, 0xc4, 0x8e, 0x5f, 0x27, 0xf9, 0xbe, 0x26, 0xef, 0x53, 0x67, 0x3e, 0xb7, 0xc3, 0x7a, 0x2b, 0x64, 0x74, 0x4a, 0x6c, 0xf1, 0x7e, 0x88, 0x77, 0x34, 0xae, 0x01, 0x0b, 0xf4, 0x0e, 0xea, 0x03, 0xcd, 0xa2, 0x12, 0xf5, 0x12, 0xfb, 0xa0, 0x58, 0x59, 0x47, 0x17, 0x96, 0x40, 0xbc, 0xc4, 0x54, 0x4b, 0x8d, 0xeb, 0x4e, 0xad, 0x12, 0x9b, 0xc3, 0x32, 0x28, 0x00, 0xad, 0xf9, 0x88, 0x18, 0xf9, 0x95, 0x74, 0xbe, 0xfd, 0x9b, 0x00, 0x16, 0xd4, 0xee, 0xc8, 0x1a, 0x8e, 0x78, 0xdc, 0x3a, 0x2a, 0xf1, 0x3c, 0xab, 0x01, 0x64, 0x9a, 0xe2, 0xe3, 0x3d, 0x51, 0x6b, 0x9d, 0x42, 0x08, 0xad, 0x66, 0x13, 0xd8, 0xe2, 0x78, 0xc3, 0x93, 0xba, 0xa8, 0x82, 0x34, 0x0e, 0xf4, 0x61, 0xff, 0x4f, 0x94, 0x42, 0x3d, 0x55, 0xcf, 0x3c, 0xed, 0xd2, 0xa6, 0xb5, 0x6e, 0x88, 0x36, 0x55, 0x31, 0xdd, 0x29, 0xd6, 0x82, 0x73, 0xad, 0xbf, 0xe3, 0x69, 0x40, 0x2e, 0x6a, 0x7c, 0xee, 0x05, 0x3d, 0xa1, 0xf1, 0x00, 0x54, 0x00, 0x91, 0xa0, 0x09, 0x29, 0x25, 0x29, 0x83, 0x44, 0x90, 0x24, 0xb1, 0xc3, 0x39, 0x11, 0x10, 0x65, 0x00, 0x82, 0xf0, 0xe7, 0xdf, 0xdd, 0xb8, 0xed, 0xc2, 0x04, 0x2f, 0x3c, 0x17, 0x13, 0xc6, 0x94, 0x4b, 0xa5, 0x14, 0xee, 0x74, 0x07, 0xd3, 0x2b, 0xf0, 0x6c, 0x85, 0x8e, 0xfe, 0xc4, 0x2a, 0x78, 0xbe, 0xe9, 0x77, 0x46, 0xe5, 0xb4, 0x87, 0x91, 0x41, 0xa1, 0x3d, 0x9f, 0xc5, 0xcb, 0x12, 0x3b, 0x78, 0x32, 0x73, 0xb8, 0x4d, 0x57, 0xad, 0x35, 0x26, 0xb7, 0xda, 0x3c, 0x68, 0xb8, 0x39, 0xef, 0xd2, 0x3f, 0x5f, };
13592 static const u8 ed25519_591_test_vectors_expected_sig[] = {
13593 	0x83, 0x09, 0xcb, 0xe7, 0x2f, 0x80, 0x4b, 0xd9, 0x52, 0x1d, 0xef, 0x5d, 0xad, 0x4d, 0x8b, 0xc1, 0x38, 0x86, 0xb1, 0xd4, 0xf6, 0x62, 0xc9, 0xbb, 0x5b, 0x97, 0xba, 0x47, 0x90, 0xf4, 0x4b, 0x80, 0x1f, 0x31, 0x95, 0xea, 0xd0, 0xd4, 0xdd, 0xb6, 0x60, 0x81, 0x8e, 0xcb, 0xf9, 0xa6, 0x83, 0xca, 0xcf, 0x85, 0xf1, 0xdc, 0xc9, 0xe8, 0x2c, 0x09, 0x11, 0x6d, 0x73, 0x36, 0x58, 0x09, 0x1a, 0x00, };
13594 static const ec_test_case ed25519_591_test_case = {
13595 	.name = "EDDSA25519-SHA512/wei25519 591",
13596 	.ec_str_p = &wei25519_str_params,
13597 	.priv_key = ed25519_591_test_vectors_priv_key,
13598 	.priv_key_len = sizeof(ed25519_591_test_vectors_priv_key),
13599 	.nn_random = NULL,
13600 	.hash_type = SHA512,
13601 	.msg = (const char *)ed25519_591_test_vectors_message,
13602 	.msglen = sizeof(ed25519_591_test_vectors_message),
13603 	.sig_type = EDDSA25519,
13604 	.exp_sig = ed25519_591_test_vectors_expected_sig,
13605 	.exp_siglen = sizeof(ed25519_591_test_vectors_expected_sig),
13606 	.adata = NULL,
13607 	.adata_len = 0
13608 };
13609 
13610 /************************************************/
13611 static const u8 ed25519_592_test_vectors_priv_key[] = {
13612 	0x22, 0xec, 0xef, 0x6d, 0xab, 0xe5, 0x8c, 0x06, 0x69, 0xb8, 0x04, 0x66, 0x49, 0x73, 0xe4, 0x57, 0xc0, 0x5e, 0x47, 0x77, 0xf7, 0x81, 0xc5, 0x25, 0x22, 0xaf, 0x76, 0xb9, 0x54, 0x81, 0xa9, 0x14, };
13613 static const u8 ed25519_592_test_vectors_message[] = {
13614 	0xc5, 0x35, 0xc1, 0x3d, 0x77, 0x9f, 0xc0, 0x98, 0x59, 0x73, 0xd6, 0xbc, 0xd5, 0x52, 0xd8, 0x17, 0x34, 0xe9, 0x2b, 0xdf, 0x10, 0x99, 0x4b, 0x00, 0xcd, 0x4d, 0x53, 0xce, 0x36, 0x5f, 0xad, 0x8c, 0x7c, 0xfa, 0x96, 0x20, 0x6a, 0xdb, 0x62, 0xd4, 0x56, 0x7b, 0xe5, 0xe4, 0x66, 0x31, 0x32, 0x38, 0x53, 0xe3, 0x8c, 0xe4, 0xbd, 0xc1, 0x6d, 0x7b, 0x8f, 0x63, 0x2a, 0x3a, 0xd9, 0xe0, 0x26, 0x19, 0xef, 0xf3, 0x71, 0x74, 0xea, 0xc3, 0xf0, 0xbf, 0x2f, 0x7a, 0x75, 0x17, 0xd4, 0xb8, 0x2d, 0xe6, 0xaa, 0x1a, 0xf0, 0x06, 0x38, 0x19, 0xd5, 0xe1, 0xf9, 0x27, 0x8f, 0xb4, 0xf2, 0x4c, 0x8c, 0xc0, 0x02, 0xaf, 0xb1, 0x5f, 0x33, 0x4c, 0x04, 0xfa, 0xdb, 0x00, 0x30, 0x30, 0x13, 0xc0, 0x16, 0x67, 0xf4, 0x93, 0x2a, 0x6c, 0x4b, 0x97, 0xd3, 0x9c, 0xd4, 0xa4, 0x59, 0x85, 0x06, 0xc0, 0xbd, 0x74, 0x0e, 0xa9, 0xf1, 0x16, 0x96, 0x35, 0x7d, 0x7d, 0x17, 0xfe, 0x4d, 0x75, 0xf9, 0xd7, 0x42, 0x41, 0xa7, 0xaf, 0x71, 0xf9, 0xd8, 0x69, 0xef, 0x6c, 0xd6, 0x95, 0x68, 0x7c, 0x03, 0xfc, 0x34, 0xad, 0x65, 0xa6, 0x8a, 0x48, 0x88, 0xa1, 0xa7, 0x41, 0x26, 0xcb, 0x55, 0xcf, 0x7d, 0xa9, 0xcb, 0x4a, 0x67, 0x17, 0xf6, 0xeb, 0x88, 0x48, 0x40, 0x89, 0xd2, 0xc5, 0x18, 0x9a, 0xe3, 0x81, 0xf2, 0x5e, 0x7b, 0x3b, 0xc3, 0xb2, 0x3d, 0x0c, 0x9d, 0x9f, 0x9c, 0xdb, 0xbe, 0xec, 0xfd, 0x1e, 0x72, 0xa0, 0x5e, 0x67, 0xbb, 0x48, 0x3a, 0x97, 0x64, 0xd9, 0xfc, 0x75, 0xad, 0x69, 0xe4, 0xab, 0x12, 0x70, 0xfb, 0x40, 0xf3, 0x95, 0x8f, 0xea, 0x4d, 0xa5, 0x59, 0xb4, 0x39, 0x80, 0xb2, 0x46, 0x81, 0x31, 0x3e, 0x85, 0x91, 0xe6, 0x85, 0x46, 0xa3, 0xbf, 0x76, 0xee, 0x34, 0xb3, 0x39, 0x70, 0x92, 0x95, 0xa8, 0xd4, 0x6f, 0xb2, 0x43, 0x2d, 0xda, 0x2f, 0x22, 0x18, 0x12, 0xdf, 0x69, 0x28, 0x95, 0xe6, 0x7c, 0xb2, 0x9c, 0xbf, 0x6f, 0xf4, 0x50, 0x2b, 0x43, 0x9a, 0x4e, 0x9e, 0x43, 0x63, 0x9e, 0xc0, 0x67, 0xbc, 0x90, 0xae, 0x81, 0x4a, 0x29, 0x3a, 0x7b, 0xd4, 0x69, 0x68, 0xe6, 0x56, 0x78, 0x76, 0x42, 0x30, 0x0a, 0x0f, 0xf2, 0x69, 0x7e, 0x33, 0x13, 0xf6, 0xa4, 0x18, 0xd3, 0xd1, 0x2a, 0x5f, 0x7c, 0x51, 0xa4, 0xc5, 0x7b, 0x63, 0x38, 0x5f, 0x2d, 0x2a, 0x21, 0xd5, 0xd1, 0xd7, 0x63, 0xfc, 0x8d, 0x1b, 0x93, 0xc1, 0x34, 0x35, 0xf9, 0xe4, 0x7e, 0xe7, 0xa4, 0x25, 0x98, 0x0a, 0x6a, 0xe6, 0xf1, 0xa9, 0xd0, 0x07, 0x60, 0x74, 0x76, 0x78, 0x3c, 0x6d, 0x0c, 0x78, 0x87, 0x38, 0x0f, 0x86, 0x8c, 0x65, 0xb3, 0x82, 0xd4, 0xcc, 0x8c, 0x04, 0x47, 0x8b, 0xbd, 0x79, 0xa1, 0xd9, 0xa9, 0x64, 0xb7, 0x81, 0x71, 0xd6, 0xbc, 0xf0, 0xb8, 0xee, 0xc5, 0x0a, 0x06, 0xa4, 0xea, 0x23, 0x4d, 0x1c, 0x23, 0x46, 0x5d, 0x3e, 0x75, 0xb8, 0x8b, 0xc5, 0x40, 0xda, 0xde, 0x74, 0xed, 0x42, 0x67, 0x5b, 0x07, 0xf7, 0xcf, 0x07, 0x82, 0x11, 0xe9, 0x07, 0xf8, 0x6d, 0x0d, 0xc4, 0xb9, 0x78, 0x62, 0x3d, 0x9f, 0x08, 0x73, 0x8a, 0xf9, 0x28, 0x69, 0x5e, 0x54, 0x2e, 0xc2, 0x98, 0x0e, 0x55, 0xa1, 0xde, 0x49, 0xe2, 0x52, 0x47, 0xfa, 0x0a, 0x09, 0x67, 0x81, 0x18, 0xe3, 0x93, 0x0b, 0xc4, 0xd2, 0x4b, 0x32, 0x14, 0xd6, 0xdc, 0xfb, 0x6e, 0xbd, 0xf4, 0x90, 0x6c, 0x92, 0x8d, 0xeb, 0x37, 0xbb, 0x9b, 0xa2, 0x9c, 0x8d, 0xe1, 0xbb, 0x94, 0x18, 0xdb, 0x71, 0x8b, 0x28, 0x53, 0xba, 0x57, 0xad, 0x8c, 0xae, 0x46, 0x77, 0xad, 0xdf, 0xd1, 0x8b, 0x6c, 0x7e, 0x8c, 0x24, 0x26, 0x21, 0xb3, 0x5c, 0x7f, 0x0e, 0xfe, 0x8d, 0xd5, 0xeb, 0x26, 0xff, 0x75, 0xfd, 0x57, 0x48, 0xb1, 0xd7, 0x83, 0xf6, 0xd6, 0x8a, 0x7d, 0x9d, 0x56, 0xda, 0x2c, 0x1a, 0x97, 0x8a, 0xc2, 0x5f, 0x84, 0xfb, 0xb2, 0xbe, 0x55, 0x68, 0xd9, 0x1e, 0x70, 0x93, 0x82, 0x21, 0xc1, 0x02, 0xae, 0xe6, 0x04, 0x09, 0xbc, 0xbe, 0xc0, 0xc8, 0x2e, 0x12, 0xdd, 0xb4, 0x25, 0xee, 0xb6, 0xec, 0xd1, 0x15, 0x51, 0xec, 0xd1, 0xd3, 0x3d, 0xda, 0xe8, 0x71, 0xae, 0x0c, 0x8f, 0x24, 0xd0, 0xd1, 0x80, 0x18, 0x73, 0x2b, 0x5e, 0x0e, };
13615 static const u8 ed25519_592_test_vectors_expected_sig[] = {
13616 	0x5d, 0x0d, 0x2a, 0xf6, 0x78, 0xb3, 0xd1, 0xb6, 0x77, 0x51, 0x6d, 0x08, 0xa7, 0x9a, 0xaf, 0xd3, 0x6e, 0xc6, 0x7c, 0x14, 0xca, 0xf5, 0xbc, 0xda, 0xae, 0xaa, 0xcc, 0x51, 0xa1, 0x4f, 0xb8, 0x05, 0xcf, 0x29, 0x04, 0xe8, 0x72, 0x1d, 0xb2, 0x71, 0xb2, 0x0d, 0xf7, 0x09, 0xbe, 0xe1, 0xa4, 0xfb, 0xfe, 0x62, 0x56, 0x50, 0x73, 0xb2, 0xa7, 0xe9, 0x42, 0x72, 0x44, 0x61, 0xf9, 0x27, 0x93, 0x0d, };
13617 static const ec_test_case ed25519_592_test_case = {
13618 	.name = "EDDSA25519-SHA512/wei25519 592",
13619 	.ec_str_p = &wei25519_str_params,
13620 	.priv_key = ed25519_592_test_vectors_priv_key,
13621 	.priv_key_len = sizeof(ed25519_592_test_vectors_priv_key),
13622 	.nn_random = NULL,
13623 	.hash_type = SHA512,
13624 	.msg = (const char *)ed25519_592_test_vectors_message,
13625 	.msglen = sizeof(ed25519_592_test_vectors_message),
13626 	.sig_type = EDDSA25519,
13627 	.exp_sig = ed25519_592_test_vectors_expected_sig,
13628 	.exp_siglen = sizeof(ed25519_592_test_vectors_expected_sig),
13629 	.adata = NULL,
13630 	.adata_len = 0
13631 };
13632 
13633 /************************************************/
13634 static const u8 ed25519_593_test_vectors_priv_key[] = {
13635 	0x8d, 0xe8, 0x63, 0x30, 0xb2, 0x56, 0x09, 0x5e, 0x11, 0x14, 0xb6, 0x52, 0x9b, 0xed, 0xce, 0x18, 0x2c, 0x16, 0x6f, 0x67, 0xa9, 0x15, 0x39, 0xce, 0xbc, 0x4b, 0xec, 0x25, 0xad, 0xd7, 0xa4, 0xa9, };
13636 static const u8 ed25519_593_test_vectors_message[] = {
13637 	0x39, 0xe6, 0x1e, 0x0e, 0xcc, 0xec, 0x92, 0x9c, 0x87, 0xb8, 0xb2, 0x2d, 0x4f, 0xd1, 0x8a, 0xea, 0xbf, 0x42, 0xe9, 0xce, 0x7b, 0x01, 0x5f, 0x2a, 0x8c, 0xac, 0x92, 0xa5, 0x24, 0x48, 0xa4, 0x2f, 0xed, 0x4c, 0xba, 0xdc, 0x08, 0x5b, 0xbb, 0x4c, 0x03, 0x71, 0x2a, 0xe7, 0x2c, 0xfc, 0xb8, 0x00, 0xb9, 0x78, 0x35, 0x06, 0x69, 0xb0, 0x99, 0x00, 0x84, 0xf2, 0xda, 0xb7, 0x6e, 0xca, 0x60, 0x6d, 0x1a, 0x49, 0xfc, 0x55, 0xc5, 0x29, 0xe1, 0xe7, 0xda, 0xdf, 0x39, 0x12, 0x2d, 0xd5, 0xbd, 0x73, 0x38, 0x93, 0x85, 0x8b, 0x05, 0x23, 0xef, 0x62, 0xdf, 0x4f, 0x13, 0x4c, 0xf6, 0xc2, 0x6e, 0xed, 0x02, 0xfd, 0xbc, 0xb3, 0x0c, 0xe4, 0x74, 0xb1, 0xad, 0xa3, 0xf0, 0x60, 0x76, 0x9f, 0x93, 0x4b, 0xbe, 0x68, 0x6c, 0xce, 0xbd, 0x60, 0x88, 0x3e, 0xce, 0xc9, 0xce, 0x3f, 0xfb, 0x8a, 0xc4, 0xa0, 0x67, 0x8c, 0xdc, 0x5b, 0x00, 0x5a, 0xe3, 0xdb, 0xa7, 0xe4, 0xfe, 0x8b, 0xc0, 0x45, 0x73, 0x99, 0x57, 0xd8, 0x49, 0xf6, 0x9c, 0x14, 0x74, 0x05, 0x7b, 0x42, 0x8c, 0x54, 0x25, 0xf3, 0xcc, 0x25, 0x16, 0xe8, 0xbb, 0xe3, 0xbe, 0x81, 0xaf, 0xd4, 0xe7, 0xb5, 0x75, 0xab, 0xe8, 0x8c, 0x87, 0xf2, 0xf0, 0x3b, 0x56, 0xf6, 0x9f, 0x9e, 0x3b, 0x61, 0xb3, 0x78, 0x81, 0x20, 0xda, 0xa4, 0x95, 0xef, 0x0e, 0x50, 0xeb, 0x97, 0x0a, 0x64, 0x5c, 0x13, 0xd2, 0x13, 0xc7, 0xcf, 0xb7, 0xd0, 0xad, 0x55, 0x5c, 0x92, 0x0a, 0x1e, 0x5d, 0xbc, 0xb4, 0x67, 0x97, 0xd9, 0x39, 0xfe, 0x04, 0x01, 0xf5, 0x47, 0xbf, 0xd1, 0x75, 0x43, 0x22, 0x1a, 0x53, 0x01, 0x0d, 0xe0, 0x1f, 0x25, 0xb6, 0x45, 0x19, 0xc8, 0xf0, 0x39, 0x63, 0xe4, 0xb9, 0xca, 0x58, 0xb0, 0x11, 0x36, 0x27, 0xc0, 0x5b, 0x96, 0x08, 0xee, 0xaa, 0x7b, 0x9a, 0xe6, 0x30, 0x5c, 0x96, 0x18, 0x81, 0x60, 0x00, 0x0e, 0xe3, 0xa7, 0xad, 0xe9, 0x6e, 0x0b, 0x4b, 0xde, 0x9d, 0x0e, 0xd6, 0xa0, 0xce, 0xd7, 0x65, 0xd7, 0x86, 0x84, 0x0a, 0x48, 0x17, 0x5a, 0x6e, 0x09, 0x0a, 0x38, 0xaf, 0x6a, 0xde, 0xaa, 0x14, 0x86, 0xa9, 0xcb, 0x5c, 0x8c, 0x8c, 0x92, 0x23, 0xee, 0x0a, 0xe4, 0xc6, 0xc0, 0x26, 0x91, 0xa3, 0x54, 0x7e, 0x32, 0x58, 0x2a, 0x5b, 0x70, 0x59, 0xd2, 0xee, 0x66, 0xfa, 0x9c, 0xd9, 0x65, 0x61, 0x5c, 0x31, 0x5b, 0x47, 0x6f, 0xd8, 0x61, 0x27, 0x9c, 0xd1, 0xdd, 0x76, 0x07, 0x74, 0x3f, 0xc5, 0x56, 0x12, 0x96, 0x31, 0x2f, 0x11, 0xe4, 0x65, 0xca, 0x40, 0xbc, 0xe3, 0xcf, 0x0b, 0x1f, 0x1d, 0x5a, 0x30, 0xaf, 0x60, 0x87, 0xde, 0x4d, 0xe9, 0x6c, 0xe4, 0x39, 0x65, 0xa4, 0x6c, 0x4f, 0xcc, 0xa1, 0x5f, 0x28, 0x11, 0x49, 0xb5, 0xc1, 0xa0, 0xc8, 0x8f, 0xdb, 0xf2, 0x74, 0x09, 0xa1, 0x34, 0xed, 0x4f, 0x1f, 0xb7, 0x30, 0xfa, 0x19, 0x18, 0x16, 0xea, 0x78, 0x4d, 0x98, 0x6c, 0xc9, 0xec, 0x4b, 0x69, 0x44, 0x02, 0xde, 0x1d, 0xcc, 0xa9, 0xcc, 0xc6, 0x4f, 0xbd, 0x07, 0xb0, 0x7e, 0x54, 0xe9, 0x31, 0xde, 0x82, 0x7a, 0x84, 0x24, 0x60, 0xca, 0x0b, 0xf6, 0xb0, 0x4e, 0xbb, 0x57, 0x1f, 0xa7, 0x77, 0x87, 0xe3, 0x88, 0x4b, 0xe2, 0x2f, 0x1e, 0x40, 0x2c, 0xf2, 0xb8, 0xa9, 0x6a, 0x5d, 0x39, 0x77, 0x0e, 0xc4, 0xa8, 0x43, 0x03, 0x61, 0x42, 0xa0, 0xbe, 0x97, 0x0b, 0xb1, 0xab, 0x16, 0x5a, 0x63, 0x74, 0xdc, 0xf4, 0x3d, 0xeb, 0x8b, 0x98, 0x30, 0xb2, 0xc4, 0x9d, 0xb9, 0xcd, 0xfe, 0x4b, 0x52, 0x42, 0xe3, 0x6f, 0x95, 0xe0, 0xc3, 0xe0, 0x77, 0xe8, 0xd2, 0x38, 0xfa, 0x6a, 0x8a, 0xc0, 0xd5, 0x86, 0xbf, 0x61, 0xb8, 0x24, 0x8f, 0xb3, 0xa7, 0x9a, 0x27, 0x0a, 0xb2, 0x2b, 0xe8, 0xa9, 0xda, 0x05, 0x5f, 0xf3, 0xd5, 0xbb, 0x2d, 0x1c, 0xa9, 0xbc, 0x25, 0xf7, 0x01, 0x4b, 0x96, 0x40, 0x77, 0x19, 0xde, 0x34, 0x4c, 0x3e, 0x73, 0xb8, 0xc1, 0x14, 0xf7, 0x92, 0x07, 0x5a, 0x5c, 0x22, 0xfd, 0xd4, 0x16, 0x15, 0x4d, 0x34, 0x94, 0xec, 0x3f, 0x02, 0xfb, 0x11, 0x2e, 0xe5, 0x73, 0x7f, 0x70, 0x70, 0x4c, 0x1b, 0x6b, 0x07, 0xea, 0xcb, 0xf9, 0x45, 0x62, 0xca, 0x7b, 0x90, 0xdd, 0x84, 0xd9, 0x8c, 0x3e, 0xdf, };
13638 static const u8 ed25519_593_test_vectors_expected_sig[] = {
13639 	0x6d, 0x01, 0xd2, 0x37, 0xdd, 0x2b, 0xb4, 0x18, 0x8d, 0x29, 0xbf, 0xde, 0xc3, 0x87, 0x97, 0x6a, 0x71, 0xbe, 0x7a, 0xdf, 0xbf, 0x9e, 0x23, 0x63, 0x9b, 0x21, 0x6d, 0x0a, 0xa0, 0xc1, 0x19, 0x32, 0x23, 0x5e, 0xdc, 0xcb, 0x3b, 0x42, 0xad, 0xcd, 0xb6, 0x29, 0x1a, 0x0d, 0x29, 0x9a, 0xed, 0x64, 0x8d, 0xe8, 0xb1, 0x95, 0x79, 0x49, 0xb9, 0xd1, 0xcf, 0x2e, 0x50, 0x49, 0x30, 0x30, 0xa4, 0x0f, };
13640 static const ec_test_case ed25519_593_test_case = {
13641 	.name = "EDDSA25519-SHA512/wei25519 593",
13642 	.ec_str_p = &wei25519_str_params,
13643 	.priv_key = ed25519_593_test_vectors_priv_key,
13644 	.priv_key_len = sizeof(ed25519_593_test_vectors_priv_key),
13645 	.nn_random = NULL,
13646 	.hash_type = SHA512,
13647 	.msg = (const char *)ed25519_593_test_vectors_message,
13648 	.msglen = sizeof(ed25519_593_test_vectors_message),
13649 	.sig_type = EDDSA25519,
13650 	.exp_sig = ed25519_593_test_vectors_expected_sig,
13651 	.exp_siglen = sizeof(ed25519_593_test_vectors_expected_sig),
13652 	.adata = NULL,
13653 	.adata_len = 0
13654 };
13655 
13656 /************************************************/
13657 static const u8 ed25519_594_test_vectors_priv_key[] = {
13658 	0xba, 0xb5, 0xfa, 0x49, 0x18, 0x7d, 0xa1, 0xca, 0xb1, 0xd2, 0x91, 0x90, 0x00, 0x19, 0xe6, 0xcb, 0xaf, 0xec, 0xcd, 0x27, 0xbf, 0x7e, 0xcb, 0xf1, 0x26, 0x2a, 0x70, 0x05, 0x16, 0xe7, 0xc2, 0x9f, };
13659 static const u8 ed25519_594_test_vectors_message[] = {
13660 	0x5c, 0xf8, 0xff, 0x58, 0x7e, 0x52, 0xcc, 0xcd, 0x29, 0x84, 0xf3, 0x47, 0x91, 0xee, 0x68, 0x43, 0xe7, 0x70, 0x17, 0xc3, 0xb5, 0x5a, 0xd4, 0x5c, 0x44, 0x45, 0x09, 0x65, 0xb7, 0x5d, 0x83, 0x6e, 0x78, 0xfb, 0xd7, 0xa1, 0xd1, 0x72, 0x9e, 0xff, 0x6d, 0x6d, 0x34, 0x0a, 0x90, 0x3f, 0x3c, 0xf1, 0x7d, 0x9e, 0x2a, 0xec, 0xaa, 0xff, 0x2a, 0x32, 0x1f, 0xcd, 0xde, 0x0a, 0xbc, 0xfb, 0xbc, 0xbc, 0xc0, 0x9f, 0x40, 0x86, 0xf8, 0x12, 0xc4, 0x6e, 0xfb, 0x01, 0xb7, 0x83, 0x43, 0xaf, 0xbe, 0x48, 0x30, 0x9f, 0x91, 0x74, 0x78, 0x45, 0x5f, 0x32, 0x00, 0x0c, 0x6a, 0x69, 0xf7, 0x9f, 0xe2, 0x11, 0xb9, 0x9f, 0x03, 0x7f, 0x59, 0x56, 0xd7, 0x22, 0x75, 0xa7, 0xfe, 0x7b, 0x45, 0x29, 0x6b, 0x5f, 0x73, 0x9a, 0xa4, 0x51, 0xff, 0x05, 0x75, 0xbc, 0x70, 0x58, 0x85, 0xaa, 0x56, 0x31, 0xb0, 0xd0, 0x85, 0x0b, 0xc2, 0xb1, 0x2c, 0x41, 0x92, 0x43, 0x5a, 0xe5, 0xd2, 0xf5, 0x2b, 0xc5, 0x43, 0x86, 0x49, 0x7c, 0x4a, 0x24, 0xb8, 0xb6, 0xdb, 0x51, 0x6b, 0xe0, 0x9d, 0x8c, 0xcf, 0x1e, 0xca, 0x78, 0x5b, 0xde, 0x97, 0xe9, 0xbe, 0x1a, 0xc0, 0x64, 0xf0, 0x94, 0xe2, 0xaf, 0xcc, 0x30, 0x7c, 0x0e, 0x06, 0xb4, 0xc5, 0x64, 0xcd, 0x9a, 0x9a, 0x95, 0x30, 0x5b, 0x37, 0xb8, 0x1f, 0x43, 0x46, 0x11, 0xdc, 0xa5, 0x5c, 0xaa, 0xa0, 0x31, 0xe8, 0x84, 0x95, 0xd5, 0xdc, 0x5a, 0x04, 0xff, 0x5f, 0xaf, 0xdf, 0x0a, 0x82, 0xa0, 0xc0, 0x3a, 0xff, 0x1b, 0xfb, 0xf4, 0xff, 0xeb, 0xae, 0x71, 0x82, 0x4e, 0x35, 0xe7, 0x51, 0xb0, 0x92, 0x70, 0x00, 0x76, 0x69, 0x86, 0x0b, 0x58, 0x00, 0x35, 0x65, 0x9e, 0x23, 0xac, 0xe7, 0x6b, 0x3b, 0x36, 0x9f, 0xa3, 0x06, 0xf2, 0xbe, 0xd9, 0x57, 0x99, 0xfa, 0xfa, 0xbc, 0x2e, 0x69, 0xc1, 0x41, 0xbe, 0xb0, 0xba, 0xca, 0xc7, 0xea, 0xa3, 0x47, 0xe7, 0x7b, 0xe5, 0xaf, 0x3f, 0xcd, 0xbe, 0x7b, 0x36, 0x4a, 0x7f, 0x9a, 0x66, 0xd5, 0xe1, 0x7a, 0x07, 0xdf, 0x62, 0x02, 0xfd, 0x98, 0xc1, 0x4b, 0xfe, 0xe2, 0xca, 0x6f, 0x07, 0x45, 0x65, 0x1f, 0x0c, 0x85, 0x50, 0xf9, 0xff, 0xff, 0xca, 0xfb, 0x96, 0xff, 0xb3, 0xf1, 0x03, 0xe6, 0x52, 0xe7, 0x8f, 0x53, 0x91, 0x6c, 0xd6, 0xf1, 0xdd, 0x05, 0xb3, 0xfe, 0x99, 0xb3, 0x42, 0x01, 0xb0, 0x7e, 0xac, 0x26, 0x52, 0xf5, 0x25, 0x35, 0x71, 0xfd, 0x38, 0x22, 0xc6, 0x95, 0xd2, 0x65, 0xc7, 0xdf, 0xdd, 0x6c, 0x6b, 0x14, 0xa8, 0x0b, 0x6e, 0x87, 0x18, 0x3e, 0x6e, 0x03, 0x2e, 0x5f, 0x24, 0x01, 0xcd, 0x23, 0x8c, 0xdd, 0x37, 0x69, 0xbb, 0x6e, 0x39, 0x08, 0x23, 0x43, 0x8f, 0x56, 0x73, 0xea, 0x9a, 0x47, 0x9e, 0x5c, 0x63, 0xfe, 0x07, 0xa0, 0x7f, 0x4e, 0x14, 0xf5, 0x77, 0x57, 0xc4, 0xd7, 0xd2, 0x2b, 0x35, 0xd7, 0x1c, 0x44, 0xea, 0xad, 0x48, 0x73, 0xc8, 0xec, 0xa6, 0xf6, 0xb2, 0x1d, 0xcf, 0xa9, 0x55, 0x20, 0xff, 0x96, 0x14, 0xab, 0xf7, 0xa0, 0xe1, 0x88, 0x53, 0x09, 0xf2, 0xce, 0xd3, 0xbc, 0xdf, 0xc3, 0x19, 0x36, 0x3a, 0x2d, 0xa4, 0x6d, 0xed, 0x79, 0xa5, 0xcc, 0x7b, 0x6f, 0x69, 0x38, 0x3f, 0x94, 0xab, 0x35, 0xc2, 0x50, 0x62, 0x9c, 0xb9, 0x15, 0xd6, 0x67, 0xb6, 0x28, 0x11, 0x86, 0x75, 0x48, 0x95, 0x80, 0x3e, 0x4b, 0x95, 0xe7, 0x41, 0x82, 0x89, 0xa6, 0xac, 0x3b, 0xcd, 0xb6, 0xe1, 0xe7, 0xf6, 0xf1, 0xdc, 0x38, 0xe7, 0x7d, 0x28, 0x19, 0x14, 0xcc, 0x40, 0x4f, 0x97, 0xcf, 0xf1, 0x4f, 0xb2, 0xc4, 0xfd, 0x81, 0x41, 0x2d, 0x10, 0x1c, 0x1b, 0xfb, 0x36, 0x8c, 0xe5, 0x93, 0x11, 0xe8, 0x92, 0xa8, 0xb9, 0xcd, 0xca, 0x86, 0x93, 0x6f, 0x3b, 0xca, 0x7e, 0xc7, 0x91, 0x63, 0xed, 0xdf, 0x1c, 0xee, 0x68, 0xf4, 0x9f, 0x1e, 0xba, 0xa2, 0x7e, 0xc5, 0x0f, 0x49, 0x0d, 0x61, 0x60, 0x1c, 0xa3, 0x5f, 0x8d, 0x6e, 0xd2, 0x66, 0x05, 0x4a, 0xeb, 0x9b, 0x19, 0x9f, 0x93, 0x3b, 0xff, 0xd6, 0xe0, 0x05, 0x0f, 0x26, 0x1b, 0x4e, 0x13, 0xd5, 0xeb, 0xfe, 0x2c, 0xaa, 0x65, 0x57, 0xc3, 0x2d, 0xde, 0xae, 0xeb, 0xc2, 0xa1, 0x1f, 0x0a, 0xa2, 0x33, 0x24, 0x0d, 0xa1, 0xc7, 0xe4, 0x0f, 0x76, };
13661 static const u8 ed25519_594_test_vectors_expected_sig[] = {
13662 	0xe3, 0x16, 0x03, 0x8d, 0x6a, 0xa1, 0x5b, 0x1c, 0x1b, 0x61, 0xc1, 0xa1, 0x6b, 0x36, 0x90, 0x4f, 0xe8, 0xa2, 0x89, 0xc8, 0xd6, 0x02, 0xbe, 0xcc, 0x51, 0x4d, 0x99, 0x22, 0x00, 0x86, 0xb2, 0x67, 0x85, 0x9f, 0x5b, 0xf6, 0xe9, 0xc0, 0x86, 0x35, 0x59, 0xac, 0x62, 0x3a, 0x56, 0xd7, 0x53, 0x23, 0x44, 0xe8, 0xd2, 0xf2, 0x8b, 0x3f, 0x9d, 0xf9, 0x20, 0x89, 0x70, 0x8b, 0x1b, 0x05, 0x90, 0x08, };
13663 static const ec_test_case ed25519_594_test_case = {
13664 	.name = "EDDSA25519-SHA512/wei25519 594",
13665 	.ec_str_p = &wei25519_str_params,
13666 	.priv_key = ed25519_594_test_vectors_priv_key,
13667 	.priv_key_len = sizeof(ed25519_594_test_vectors_priv_key),
13668 	.nn_random = NULL,
13669 	.hash_type = SHA512,
13670 	.msg = (const char *)ed25519_594_test_vectors_message,
13671 	.msglen = sizeof(ed25519_594_test_vectors_message),
13672 	.sig_type = EDDSA25519,
13673 	.exp_sig = ed25519_594_test_vectors_expected_sig,
13674 	.exp_siglen = sizeof(ed25519_594_test_vectors_expected_sig),
13675 	.adata = NULL,
13676 	.adata_len = 0
13677 };
13678 
13679 /************************************************/
13680 static const u8 ed25519_595_test_vectors_priv_key[] = {
13681 	0x74, 0xca, 0x12, 0x2a, 0xb6, 0x0d, 0xe5, 0x0c, 0xdc, 0x04, 0xa8, 0xe2, 0xed, 0xa4, 0x5d, 0x96, 0x31, 0x06, 0x1b, 0xf1, 0x87, 0xd3, 0x16, 0xbe, 0x5b, 0x7c, 0xc0, 0x6f, 0x02, 0x0c, 0x48, 0x3e, };
13682 static const u8 ed25519_595_test_vectors_message[] = {
13683 	0xa8, 0x0b, 0x46, 0x07, 0x9f, 0xa7, 0x75, 0xf8, 0xc1, 0xa1, 0x9f, 0xa0, 0x82, 0x9b, 0xe6, 0x66, 0xbd, 0xfd, 0xca, 0x07, 0x9c, 0xad, 0x43, 0xd7, 0x0e, 0x08, 0x42, 0x18, 0x3b, 0xc0, 0xdb, 0x95, 0x46, 0x8a, 0x53, 0x9f, 0x0d, 0xb2, 0xae, 0xa3, 0xab, 0x9c, 0x70, 0x73, 0xb4, 0x5d, 0x22, 0x8a, 0x9b, 0xde, 0x23, 0x28, 0x97, 0xa6, 0xeb, 0x6f, 0xc9, 0xed, 0xf7, 0x36, 0x5e, 0x71, 0x01, 0xba, 0x97, 0xc4, 0x46, 0xa5, 0x19, 0xa3, 0x64, 0x9c, 0xf5, 0x27, 0xc8, 0xa6, 0xde, 0x72, 0x51, 0xb9, 0x28, 0x06, 0x81, 0x5a, 0xc2, 0xfa, 0x00, 0x82, 0xef, 0xf7, 0x5e, 0x25, 0x82, 0xcb, 0xca, 0x7e, 0x1e, 0x4d, 0xa2, 0xa4, 0x46, 0xea, 0x23, 0x3e, 0x7c, 0xf7, 0xce, 0xdf, 0xb0, 0xe2, 0x39, 0x8e, 0xb6, 0xe1, 0x1b, 0xba, 0xef, 0xe3, 0xf7, 0xec, 0x89, 0xf5, 0xd7, 0x3d, 0xd3, 0x4b, 0xd4, 0x7f, 0xbc, 0xb4, 0xd7, 0xb2, 0x2f, 0x2a, 0xae, 0xe3, 0x73, 0x78, 0x56, 0x51, 0x84, 0x11, 0x35, 0xcd, 0x86, 0x61, 0xa7, 0x01, 0xb2, 0x10, 0x84, 0xa3, 0x16, 0xde, 0xac, 0x30, 0x74, 0xe2, 0x4a, 0x2e, 0x35, 0xa0, 0x33, 0x0f, 0x7d, 0x14, 0x79, 0xb9, 0x32, 0xf2, 0x85, 0x27, 0x7c, 0x18, 0xa4, 0x41, 0x78, 0x72, 0x24, 0xfb, 0xbe, 0x46, 0xc6, 0x2e, 0x83, 0x4a, 0x18, 0x51, 0xed, 0x23, 0x79, 0x98, 0xd4, 0x8d, 0xce, 0x20, 0xba, 0x11, 0x4d, 0x11, 0xe9, 0x41, 0xbe, 0x29, 0xd5, 0x6d, 0x02, 0xf7, 0x37, 0x0c, 0x8f, 0x6d, 0x6d, 0x7e, 0x50, 0x24, 0x8d, 0xcd, 0x8e, 0xc8, 0x9d, 0x3b, 0x22, 0xf4, 0xf5, 0x87, 0x78, 0x12, 0x9f, 0xaf, 0xd4, 0xbb, 0x92, 0xed, 0xe1, 0x77, 0x14, 0xbf, 0x02, 0x2a, 0x5b, 0xf9, 0x2b, 0xe4, 0x79, 0xf1, 0x8e, 0x63, 0x85, 0x2e, 0xcd, 0xcf, 0x8c, 0x42, 0x11, 0xf5, 0x30, 0xdd, 0x30, 0xf7, 0x9c, 0xbf, 0x4b, 0xfa, 0x57, 0x37, 0xf0, 0xba, 0xd3, 0xb0, 0x10, 0x60, 0x67, 0xf4, 0x13, 0x27, 0xc3, 0x18, 0x9e, 0x6f, 0x20, 0x6f, 0x0d, 0x4f, 0x3c, 0x70, 0x4b, 0xf2, 0xbd, 0x0b, 0x16, 0x1f, 0x01, 0x8f, 0xd2, 0x1c, 0xdd, 0xfb, 0x41, 0x8b, 0xac, 0x4d, 0x52, 0xef, 0x02, 0xc4, 0x1c, 0x87, 0x92, 0xe4, 0x13, 0xb0, 0x4f, 0x08, 0x36, 0xce, 0xa1, 0xf8, 0x6c, 0x92, 0xe5, 0xd5, 0x70, 0x3b, 0xee, 0x2b, 0x5c, 0x58, 0x99, 0xe2, 0x85, 0x99, 0x20, 0x24, 0xf6, 0x4e, 0x0d, 0x16, 0xc6, 0x0a, 0xd0, 0xfd, 0x92, 0x54, 0x79, 0x32, 0xd0, 0xc5, 0xcb, 0x98, 0xd8, 0xda, 0x22, 0xfe, 0xeb, 0xdb, 0xba, 0x8d, 0x1d, 0xe1, 0xe7, 0xe9, 0xbb, 0x21, 0x9a, 0x92, 0xeb, 0x6c, 0x1c, 0x69, 0x8d, 0x3b, 0x33, 0xa3, 0x7f, 0x9b, 0x81, 0x97, 0xd2, 0x6b, 0x55, 0x0f, 0xeb, 0xd2, 0x60, 0x1e, 0x7a, 0x64, 0x3e, 0xa7, 0xe1, 0xd9, 0xe4, 0x48, 0xae, 0x03, 0x7f, 0x62, 0x9a, 0x30, 0x6c, 0xe4, 0x17, 0xae, 0xb7, 0x9f, 0x2e, 0x3c, 0xa4, 0x4d, 0x8d, 0xb3, 0x84, 0x8a, 0x81, 0x1f, 0x18, 0x46, 0x81, 0x1c, 0xbc, 0xb8, 0x74, 0xf8, 0xaf, 0x09, 0xe0, 0xfd, 0x01, 0x73, 0xcf, 0x17, 0x5f, 0x30, 0x41, 0x15, 0x47, 0x6b, 0xf2, 0xc6, 0xc2, 0xd2, 0xf3, 0x32, 0xeb, 0xa5, 0x34, 0xf4, 0x6a, 0xae, 0x80, 0x1c, 0x26, 0x92, 0xc2, 0xd2, 0xfa, 0xdd, 0xfe, 0xac, 0xc0, 0xf1, 0xda, 0xce, 0x44, 0x0a, 0xbc, 0x2a, 0xe5, 0xe5, 0xa4, 0x9d, 0x57, 0x8f, 0xd7, 0xf9, 0xde, 0x2a, 0x84, 0x1a, 0xd6, 0xb6, 0x76, 0x9c, 0x32, 0xb1, 0x44, 0xce, 0xea, 0x16, 0xd0, 0xf3, 0xc0, 0xcb, 0x3a, 0x8e, 0xe6, 0x94, 0xc3, 0x8c, 0x28, 0x07, 0x35, 0x95, 0x09, 0x6c, 0x81, 0x37, 0x62, 0xcc, 0x2c, 0x5e, 0xc4, 0xb0, 0xd8, 0xd7, 0x23, 0xdd, 0x66, 0x08, 0x53, 0x27, 0x8f, 0xc7, 0x2f, 0xd6, 0xbd, 0x9d, 0x12, 0x72, 0x93, 0x3d, 0xd2, 0xa3, 0x8e, 0xd9, 0xd0, 0x4b, 0x13, 0x90, 0xff, 0xe4, 0xb2, 0x94, 0xa6, 0xff, 0xfa, 0x72, 0x1e, 0xe3, 0xbb, 0xa3, 0x3a, 0x03, 0xa1, 0x49, 0xc4, 0xa0, 0x34, 0x52, 0x65, 0xc0, 0x1c, 0xe0, 0x15, 0xe9, 0x4d, 0xb4, 0x19, 0xcf, 0xf7, 0x04, 0x98, 0x52, 0xee, 0x00, 0x00, 0x48, 0xa8, 0x57, 0x58, 0xf6, 0xd7, 0xb1, 0xc5, 0x9c, 0x50, 0x89, 0xee, 0x01, 0x8e, 0xd0, 0x9b, 0x52, };
13684 static const u8 ed25519_595_test_vectors_expected_sig[] = {
13685 	0xbc, 0xb4, 0xb8, 0x50, 0x69, 0x60, 0x11, 0x99, 0x7e, 0xb5, 0xdf, 0xe1, 0x43, 0xf1, 0xa3, 0xd5, 0x62, 0x8e, 0xf1, 0xa5, 0x40, 0x76, 0x91, 0xee, 0x48, 0xc7, 0x9d, 0x69, 0xab, 0xe4, 0xd5, 0x33, 0xf8, 0x17, 0xad, 0x73, 0x13, 0xb5, 0x79, 0x5e, 0x46, 0xe5, 0x95, 0xf3, 0xae, 0x3a, 0x91, 0x65, 0xb1, 0xb6, 0xfd, 0xda, 0xe8, 0x61, 0x64, 0xff, 0xcb, 0xa3, 0x76, 0x24, 0x98, 0x37, 0xf6, 0x09, };
13686 static const ec_test_case ed25519_595_test_case = {
13687 	.name = "EDDSA25519-SHA512/wei25519 595",
13688 	.ec_str_p = &wei25519_str_params,
13689 	.priv_key = ed25519_595_test_vectors_priv_key,
13690 	.priv_key_len = sizeof(ed25519_595_test_vectors_priv_key),
13691 	.nn_random = NULL,
13692 	.hash_type = SHA512,
13693 	.msg = (const char *)ed25519_595_test_vectors_message,
13694 	.msglen = sizeof(ed25519_595_test_vectors_message),
13695 	.sig_type = EDDSA25519,
13696 	.exp_sig = ed25519_595_test_vectors_expected_sig,
13697 	.exp_siglen = sizeof(ed25519_595_test_vectors_expected_sig),
13698 	.adata = NULL,
13699 	.adata_len = 0
13700 };
13701 
13702 /************************************************/
13703 static const u8 ed25519_596_test_vectors_priv_key[] = {
13704 	0x65, 0xee, 0xa9, 0xff, 0xb7, 0x56, 0x12, 0xbd, 0xe1, 0xd9, 0xba, 0x3e, 0xa4, 0xfb, 0x5e, 0xda, 0x0a, 0xa6, 0xf2, 0x55, 0x6a, 0xb1, 0x5b, 0xf1, 0x81, 0x7c, 0xee, 0x3b, 0x95, 0xbb, 0xba, 0x12, };
13705 static const u8 ed25519_596_test_vectors_message[] = {
13706 	0xc0, 0x69, 0x36, 0x32, 0x3c, 0xe3, 0x25, 0x3c, 0xac, 0x5a, 0xb4, 0xf6, 0xb8, 0x32, 0x70, 0xcd, 0x4c, 0xfe, 0x85, 0xd0, 0xbf, 0x8b, 0xac, 0x1e, 0x1b, 0x8d, 0x5f, 0x0b, 0x15, 0x3f, 0x54, 0x1c, 0x8e, 0x8e, 0xd9, 0x5f, 0x28, 0xd5, 0xc8, 0x5a, 0x23, 0x15, 0xcd, 0x93, 0x1b, 0x7c, 0xf3, 0xed, 0xae, 0x50, 0xf9, 0x28, 0x30, 0x59, 0x91, 0x62, 0x80, 0x4b, 0x13, 0x63, 0xd3, 0xac, 0x0d, 0xa0, 0xab, 0xd0, 0x97, 0x51, 0x02, 0x3b, 0xdd, 0xc1, 0x62, 0x88, 0x94, 0x4e, 0x61, 0x6d, 0x21, 0xd9, 0x12, 0x71, 0x97, 0x8b, 0xb7, 0x82, 0xd3, 0xeb, 0xed, 0x7f, 0xa6, 0x12, 0x84, 0xc7, 0x49, 0x0d, 0x27, 0x59, 0x3c, 0xa8, 0xa3, 0xd5, 0xb4, 0x75, 0x62, 0x33, 0x07, 0x01, 0x0a, 0xbc, 0x1f, 0xbf, 0x79, 0x3a, 0x81, 0x6a, 0xaa, 0xb5, 0xe0, 0x92, 0x4d, 0xec, 0x79, 0xd6, 0x04, 0x98, 0x96, 0x5c, 0xf7, 0xf8, 0x0a, 0xb5, 0x9f, 0xc0, 0x29, 0xf7, 0x82, 0x16, 0x67, 0x55, 0xb7, 0x2b, 0x86, 0x90, 0x75, 0x43, 0x4a, 0xb6, 0x06, 0xcc, 0x87, 0x0a, 0x7c, 0x0b, 0xc8, 0xbf, 0x29, 0xae, 0xe0, 0x33, 0xfa, 0x9c, 0xc1, 0x22, 0xed, 0x7c, 0x8e, 0x06, 0x9b, 0x54, 0x7d, 0xba, 0xe2, 0x59, 0x01, 0xb9, 0xe2, 0x49, 0xb4, 0x1f, 0xea, 0x0b, 0xf8, 0xda, 0xf3, 0x82, 0x68, 0x66, 0xbc, 0xae, 0xd2, 0x75, 0x3b, 0x5e, 0x91, 0xae, 0x93, 0x7e, 0x71, 0x7b, 0x50, 0x8a, 0x0a, 0xcf, 0x4c, 0x3b, 0x06, 0x1f, 0xf0, 0xcb, 0x9c, 0xfd, 0x38, 0x0e, 0x24, 0x94, 0x50, 0x09, 0x51, 0xa6, 0x62, 0xfd, 0x49, 0x28, 0xfc, 0x5f, 0xca, 0xf6, 0xc1, 0x8e, 0x84, 0xb1, 0xd3, 0x78, 0xe4, 0x9b, 0xd9, 0xd5, 0x96, 0x86, 0xd0, 0x87, 0xeb, 0xd5, 0x52, 0xd0, 0x7f, 0xa9, 0xba, 0x81, 0x6f, 0xa5, 0x40, 0x2c, 0xa9, 0xe7, 0x25, 0x2a, 0x64, 0x8d, 0x10, 0x6c, 0xfe, 0x6c, 0x43, 0x1c, 0xc2, 0xa0, 0x53, 0xe2, 0x29, 0x46, 0x37, 0xcd, 0xb9, 0x9d, 0x96, 0xab, 0xe6, 0x89, 0xed, 0xab, 0xc5, 0xca, 0x07, 0x0f, 0x77, 0xc1, 0xec, 0xd1, 0xd5, 0x2d, 0x53, 0x85, 0x28, 0x9f, 0x17, 0xce, 0xd7, 0x68, 0xc3, 0x97, 0x16, 0x71, 0xb9, 0xc0, 0xb2, 0xf8, 0x55, 0xb8, 0x46, 0x1c, 0x1e, 0x74, 0x6c, 0x7b, 0x38, 0xf7, 0x78, 0x96, 0xb8, 0x5a, 0xfb, 0xbe, 0xdd, 0x08, 0x37, 0x5f, 0xe9, 0x22, 0x98, 0x46, 0x14, 0xdd, 0x84, 0x9f, 0xe2, 0xcb, 0x89, 0xae, 0x71, 0x49, 0xdc, 0xd1, 0xd3, 0x7f, 0x49, 0x36, 0xe6, 0x7b, 0x14, 0x40, 0xbe, 0x72, 0xe0, 0x09, 0x39, 0x8b, 0xe6, 0xf0, 0x83, 0xbf, 0x96, 0x11, 0x48, 0x0b, 0x59, 0x2f, 0xe2, 0xf0, 0x11, 0x8e, 0x25, 0x3d, 0xb5, 0xd2, 0xe9, 0xe4, 0xb4, 0x54, 0x1c, 0x11, 0xda, 0x00, 0xf7, 0x16, 0x1a, 0x73, 0x6e, 0x5f, 0x0b, 0xb9, 0x34, 0x20, 0x8e, 0x3e, 0xf4, 0xe0, 0xb9, 0xa5, 0x22, 0x58, 0x20, 0x3f, 0x06, 0x0d, 0x18, 0xa1, 0x95, 0x15, 0x9e, 0x5e, 0x26, 0x8a, 0xa2, 0x80, 0x53, 0xc8, 0x34, 0xf7, 0xbd, 0x5d, 0xb9, 0xbd, 0x71, 0xf5, 0x07, 0xd9, 0x13, 0x70, 0xb3, 0xff, 0xca, 0xbb, 0xd4, 0xac, 0xb3, 0x07, 0x1d, 0x3f, 0x6d, 0x52, 0xc3, 0x49, 0xac, 0xf3, 0x50, 0x95, 0x34, 0x8c, 0xeb, 0xf5, 0xa8, 0x6f, 0x8c, 0x59, 0xdd, 0xc9, 0x65, 0xef, 0xf6, 0x10, 0xac, 0x42, 0x58, 0x04, 0xc0, 0xe2, 0xf6, 0xbe, 0x42, 0x85, 0x3f, 0x5b, 0x46, 0x43, 0x4a, 0x2c, 0x31, 0xd9, 0xac, 0x99, 0x53, 0x9b, 0xfd, 0xc0, 0x4e, 0xcf, 0x2f, 0xef, 0xd0, 0x45, 0x98, 0xfa, 0x63, 0xc1, 0x39, 0xff, 0x6c, 0x6d, 0x88, 0x41, 0x0e, 0x73, 0xbd, 0x32, 0x8c, 0xc4, 0x34, 0x9a, 0xb4, 0xbb, 0x86, 0xf2, 0xe2, 0xed, 0x7c, 0x73, 0xde, 0x96, 0x52, 0x0e, 0xf7, 0x73, 0x0e, 0xf3, 0x83, 0x45, 0xe0, 0xf9, 0x72, 0xa8, 0x4c, 0x53, 0x88, 0x10, 0x36, 0x87, 0xe6, 0x8c, 0x50, 0xf9, 0xd8, 0xc9, 0xaf, 0x90, 0x3b, 0xc6, 0x32, 0xd4, 0x32, 0x04, 0x06, 0x2a, 0x4f, 0x50, 0x2e, 0x21, 0x4c, 0x07, 0x05, 0x9c, 0x2c, 0xbe, 0xf7, 0x2a, 0x54, 0x11, 0x0d, 0xbf, 0x73, 0xe4, 0x25, 0x40, 0x2d, 0x17, 0xe9, 0x78, 0xec, 0x19, 0x9b, 0x51, 0x8c, 0xec, 0x03, 0x10, 0xbf, 0xbf, 0x7d, 0x9a, 0xd3, 0x00, 0x43, 0x4a, 0x4a, };
13707 static const u8 ed25519_596_test_vectors_expected_sig[] = {
13708 	0xba, 0xa7, 0x11, 0x31, 0x55, 0x35, 0x8c, 0x92, 0x4f, 0xed, 0x57, 0x48, 0x8a, 0x65, 0x67, 0xf8, 0x72, 0x38, 0x50, 0xa9, 0xf5, 0xc0, 0x3a, 0x0d, 0x7d, 0xe8, 0x5f, 0xcc, 0xd8, 0xfb, 0x4d, 0x17, 0xd7, 0x75, 0x35, 0x23, 0xb0, 0x0c, 0x0d, 0x8a, 0xdb, 0x88, 0x4d, 0xc0, 0xc8, 0xa7, 0xa4, 0x4d, 0xc2, 0xa6, 0x00, 0x83, 0xaa, 0x5b, 0x3c, 0x5b, 0x94, 0xa8, 0xd8, 0x80, 0xf2, 0xa9, 0x4d, 0x09, };
13709 static const ec_test_case ed25519_596_test_case = {
13710 	.name = "EDDSA25519-SHA512/wei25519 596",
13711 	.ec_str_p = &wei25519_str_params,
13712 	.priv_key = ed25519_596_test_vectors_priv_key,
13713 	.priv_key_len = sizeof(ed25519_596_test_vectors_priv_key),
13714 	.nn_random = NULL,
13715 	.hash_type = SHA512,
13716 	.msg = (const char *)ed25519_596_test_vectors_message,
13717 	.msglen = sizeof(ed25519_596_test_vectors_message),
13718 	.sig_type = EDDSA25519,
13719 	.exp_sig = ed25519_596_test_vectors_expected_sig,
13720 	.exp_siglen = sizeof(ed25519_596_test_vectors_expected_sig),
13721 	.adata = NULL,
13722 	.adata_len = 0
13723 };
13724 
13725 /************************************************/
13726 static const u8 ed25519_597_test_vectors_priv_key[] = {
13727 	0x08, 0xda, 0xbd, 0x4e, 0x5c, 0x11, 0x9e, 0xa9, 0x07, 0xce, 0x45, 0xf0, 0xa7, 0xaf, 0x9e, 0x62, 0xc0, 0xc3, 0xf1, 0xc9, 0xec, 0x61, 0xad, 0x10, 0x56, 0x7d, 0x79, 0x36, 0x28, 0x54, 0xc5, 0x57, };
13728 static const u8 ed25519_597_test_vectors_message[] = {
13729 	0x6c, 0x47, 0x19, 0xa5, 0xa2, 0xa6, 0x89, 0x48, 0x35, 0xc4, 0xac, 0x1e, 0xd6, 0x91, 0x59, 0xe5, 0xeb, 0xb5, 0x69, 0x2a, 0xd8, 0xea, 0xad, 0xa4, 0x39, 0xf7, 0x9e, 0x96, 0x68, 0x4b, 0x36, 0xce, 0xcf, 0xb4, 0x4b, 0x89, 0x01, 0x56, 0x31, 0x66, 0x3e, 0x06, 0x44, 0xf6, 0xc7, 0xab, 0x71, 0x39, 0x89, 0xd7, 0x42, 0xda, 0x27, 0x42, 0x72, 0x53, 0x31, 0x8a, 0x52, 0x43, 0x2d, 0xfa, 0xb2, 0x12, 0x1d, 0x1e, 0x92, 0x33, 0xea, 0xd7, 0x19, 0xe2, 0xc8, 0x6a, 0x6b, 0xe0, 0x73, 0x63, 0xd0, 0x02, 0x17, 0x3f, 0x20, 0x54, 0x46, 0xca, 0x95, 0xfc, 0x17, 0xb2, 0x46, 0x35, 0x82, 0x7f, 0xe3, 0x15, 0xf2, 0x22, 0x40, 0x8e, 0x45, 0xe8, 0x33, 0xf2, 0x9f, 0xf0, 0x8f, 0xf3, 0x1d, 0xac, 0x58, 0x3a, 0x4b, 0xec, 0x70, 0x76, 0xd5, 0xcc, 0x78, 0xcf, 0xc9, 0x44, 0x51, 0xcb, 0xf4, 0xf7, 0xe2, 0xfc, 0x5b, 0x5e, 0xd8, 0x07, 0x0f, 0x4e, 0xf8, 0x08, 0xbe, 0x1d, 0x8a, 0x68, 0x0e, 0xcd, 0xff, 0x59, 0x01, 0x0f, 0x39, 0xb1, 0xde, 0x80, 0xbe, 0xf1, 0x71, 0x9f, 0x1e, 0x21, 0x8e, 0x0c, 0xe0, 0xa1, 0xe3, 0x93, 0xa5, 0x66, 0xc5, 0x17, 0x64, 0xd2, 0x37, 0x0d, 0x95, 0xa6, 0x11, 0x91, 0xd8, 0xf7, 0xaf, 0x74, 0x0d, 0xc2, 0x08, 0xfa, 0x78, 0x31, 0xb2, 0x10, 0x67, 0x05, 0x12, 0xcd, 0x73, 0x76, 0x6e, 0x60, 0x9e, 0x9b, 0x78, 0x00, 0x21, 0xeb, 0xb2, 0x0c, 0xc8, 0x79, 0x0d, 0x8d, 0xa5, 0xf1, 0x0f, 0x5b, 0x6a, 0x11, 0x4a, 0x1d, 0xb8, 0x8f, 0x66, 0x76, 0x65, 0x01, 0x80, 0x2d, 0x9c, 0x36, 0x6e, 0xa3, 0xfa, 0x6f, 0x1b, 0x1e, 0x1e, 0x8b, 0x04, 0x20, 0x94, 0x34, 0x13, 0xcc, 0x6f, 0xea, 0xb2, 0x8c, 0x6b, 0x68, 0x3c, 0xd2, 0xb3, 0x33, 0x06, 0x9c, 0x89, 0x51, 0xbc, 0x45, 0xe8, 0xa1, 0x3b, 0xd5, 0x22, 0x57, 0x83, 0x51, 0xc8, 0x82, 0xf7, 0xc3, 0x42, 0xfe, 0x43, 0x31, 0xb9, 0x21, 0xf5, 0x33, 0xc9, 0x2e, 0xc0, 0x4a, 0x49, 0xb2, 0x92, 0xbc, 0x56, 0x9d, 0xdc, 0xef, 0xca, 0xb5, 0x72, 0x7f, 0x9b, 0x56, 0x25, 0xb1, 0x67, 0xa9, 0x02, 0xdc, 0x89, 0x6d, 0x8b, 0xc7, 0xd8, 0xe9, 0x99, 0x20, 0xf5, 0xdb, 0x8d, 0xd7, 0x67, 0x83, 0x9c, 0x43, 0xe3, 0xcd, 0xf9, 0x47, 0x08, 0x0d, 0xec, 0x95, 0x42, 0x14, 0xa6, 0xfb, 0xbe, 0x04, 0x87, 0xa2, 0xf3, 0x2c, 0xd1, 0x7a, 0x6b, 0x00, 0x03, 0x70, 0xbd, 0x41, 0x44, 0x84, 0xfb, 0x73, 0xc5, 0x10, 0xea, 0x01, 0x24, 0xc6, 0xcf, 0x0f, 0xe5, 0x6c, 0x08, 0x46, 0xa7, 0x9b, 0xfc, 0x59, 0x77, 0x9d, 0x3b, 0x07, 0xa1, 0xbd, 0x2c, 0x7f, 0xb7, 0xe2, 0xd0, 0x03, 0x9f, 0x0b, 0xd2, 0x1c, 0x8a, 0x30, 0x8f, 0xb0, 0xf5, 0x8f, 0xdb, 0xf9, 0x4e, 0xfa, 0x08, 0x57, 0xac, 0x3b, 0xdd, 0xdd, 0x86, 0xd5, 0x76, 0x3e, 0x20, 0x5e, 0xe1, 0xb2, 0x21, 0xf0, 0x60, 0xce, 0xdb, 0x8b, 0xc0, 0x5f, 0x03, 0x1b, 0x60, 0x6c, 0xc7, 0x4d, 0xad, 0xc5, 0xdb, 0x04, 0x23, 0x27, 0x48, 0x86, 0x5a, 0x73, 0xd6, 0xcc, 0xdd, 0xb4, 0xd5, 0xe9, 0x30, 0xd5, 0x28, 0x34, 0x8c, 0x5b, 0xe9, 0x08, 0x8b, 0xfe, 0x34, 0x45, 0x84, 0x87, 0xa6, 0x7b, 0x19, 0xa1, 0x8e, 0xca, 0x25, 0xc0, 0xd3, 0xfb, 0xe2, 0x19, 0x5e, 0xb9, 0x17, 0x07, 0xb6, 0x5d, 0x91, 0x61, 0xea, 0x93, 0xed, 0xdd, 0x64, 0xa6, 0x34, 0xb2, 0x32, 0x80, 0x19, 0x5f, 0xdb, 0x0d, 0x13, 0x88, 0xf6, 0x99, 0x8e, 0x18, 0x58, 0xa4, 0x5b, 0x88, 0x69, 0x99, 0xb8, 0x44, 0xe6, 0x79, 0x5d, 0x83, 0xd3, 0x18, 0x37, 0xe4, 0x41, 0x1f, 0x71, 0x69, 0x92, 0x26, 0xde, 0x1b, 0xa0, 0x24, 0x56, 0x08, 0x00, 0x0d, 0xcf, 0x22, 0x3d, 0xd1, 0x83, 0x59, 0xb7, 0xc6, 0xd4, 0x59, 0xa6, 0x5d, 0xbe, 0x66, 0xc9, 0x0f, 0x5c, 0xb8, 0xc0, 0x91, 0x22, 0x18, 0x7a, 0x30, 0x46, 0xa1, 0x6d, 0xd1, 0x79, 0xc3, 0xf4, 0x37, 0x3e, 0x57, 0xcf, 0x5e, 0xe0, 0xea, 0xb6, 0xa2, 0x12, 0xcc, 0x9e, 0xd8, 0xb5, 0x4b, 0xf3, 0x7f, 0x1d, 0x27, 0xfb, 0xd7, 0x98, 0x48, 0xe4, 0xec, 0x1f, 0x56, 0x72, 0x43, 0xab, 0x87, 0x40, 0xa0, 0x51, 0x49, 0xd9, 0x60, 0x2e, 0xad, 0xa9, 0x20, 0xa4, 0x6d, 0x61, 0x0d, 0x3c, 0xc8, 0x23, 0xb5, 0x64, 0x98, };
13730 static const u8 ed25519_597_test_vectors_expected_sig[] = {
13731 	0x33, 0xad, 0xbf, 0xcd, 0x4e, 0xd4, 0xfa, 0x67, 0xc5, 0x8b, 0x5c, 0xb5, 0x9e, 0x16, 0x98, 0x71, 0x48, 0x69, 0x78, 0x12, 0x66, 0x0b, 0x35, 0x31, 0xff, 0x6a, 0x21, 0xc7, 0x49, 0xb9, 0x60, 0x16, 0x60, 0xba, 0xee, 0xe2, 0x48, 0x9b, 0x82, 0xb4, 0xcd, 0xe1, 0x32, 0xb6, 0xe6, 0x2f, 0x2f, 0x90, 0xd8, 0xf9, 0x92, 0x78, 0x60, 0xaa, 0xad, 0x25, 0x28, 0x1d, 0x03, 0xeb, 0x17, 0xa9, 0x52, 0x0f, };
13732 static const ec_test_case ed25519_597_test_case = {
13733 	.name = "EDDSA25519-SHA512/wei25519 597",
13734 	.ec_str_p = &wei25519_str_params,
13735 	.priv_key = ed25519_597_test_vectors_priv_key,
13736 	.priv_key_len = sizeof(ed25519_597_test_vectors_priv_key),
13737 	.nn_random = NULL,
13738 	.hash_type = SHA512,
13739 	.msg = (const char *)ed25519_597_test_vectors_message,
13740 	.msglen = sizeof(ed25519_597_test_vectors_message),
13741 	.sig_type = EDDSA25519,
13742 	.exp_sig = ed25519_597_test_vectors_expected_sig,
13743 	.exp_siglen = sizeof(ed25519_597_test_vectors_expected_sig),
13744 	.adata = NULL,
13745 	.adata_len = 0
13746 };
13747 
13748 /************************************************/
13749 static const u8 ed25519_598_test_vectors_priv_key[] = {
13750 	0xe0, 0xf7, 0xd0, 0x08, 0x24, 0xc5, 0xf3, 0x70, 0x1e, 0x55, 0x17, 0xa4, 0xab, 0xc1, 0x3e, 0x2f, 0x2c, 0x0b, 0x13, 0x8c, 0x83, 0x69, 0x77, 0x84, 0x3b, 0xbd, 0x1e, 0xef, 0xfa, 0xbd, 0x96, 0x8a, };
13751 static const u8 ed25519_598_test_vectors_message[] = {
13752 	0xb3, 0x9e, 0x3a, 0xc7, 0x5a, 0x22, 0x1a, 0xdc, 0xce, 0xd0, 0x9a, 0x85, 0x91, 0xac, 0x5e, 0x2f, 0xe1, 0x5d, 0xfe, 0xd5, 0xb9, 0x19, 0xcb, 0xaf, 0x14, 0xc6, 0x5e, 0xb7, 0xcd, 0x93, 0x08, 0x6d, 0xde, 0xe3, 0xf7, 0x47, 0x25, 0x47, 0xe6, 0x6d, 0xdc, 0x70, 0x06, 0x2b, 0x97, 0x62, 0x97, 0xd1, 0xa3, 0xc1, 0x70, 0xee, 0x52, 0x5c, 0x9c, 0x53, 0xba, 0x93, 0xa4, 0xc4, 0xfd, 0xb2, 0x35, 0x72, 0xb7, 0xca, 0x6e, 0xd1, 0x38, 0x53, 0xe7, 0x0d, 0xb1, 0xd7, 0x2e, 0xde, 0xb9, 0x94, 0x4b, 0xbc, 0x35, 0x4a, 0x52, 0x0e, 0x77, 0xae, 0x59, 0x1f, 0x31, 0x80, 0x92, 0xef, 0xd5, 0xe6, 0x6d, 0x9c, 0x09, 0x81, 0xc4, 0xa4, 0xbd, 0xa9, 0x8a, 0xa4, 0xe5, 0x90, 0x45, 0xff, 0x9c, 0x4b, 0x4c, 0xa3, 0xac, 0xb2, 0xff, 0xd8, 0x93, 0x20, 0x1c, 0x70, 0xb3, 0x4a, 0x77, 0xf2, 0x4e, 0xda, 0x54, 0x54, 0x9d, 0xc8, 0x4a, 0xd1, 0x34, 0xa3, 0x55, 0x32, 0x55, 0x38, 0x15, 0x88, 0x8a, 0xe3, 0xdd, 0x9e, 0x24, 0x1e, 0xc4, 0xeb, 0xbf, 0xf8, 0x6f, 0x8c, 0x1e, 0x8a, 0xdb, 0xaa, 0xc4, 0xb9, 0x1a, 0xfd, 0x18, 0x22, 0x8c, 0xbb, 0xd5, 0xdd, 0x80, 0x5a, 0xca, 0xbf, 0x0a, 0x1e, 0x29, 0x0c, 0xe5, 0xdd, 0xa0, 0x25, 0x1a, 0xdf, 0xb3, 0x7c, 0xb7, 0x14, 0xc1, 0x39, 0xb5, 0xa3, 0x24, 0x2d, 0x88, 0xc6, 0x44, 0x84, 0xa3, 0x76, 0x55, 0xcc, 0x8f, 0xcb, 0xec, 0xff, 0xa9, 0x7f, 0xbd, 0x14, 0xd6, 0x4d, 0x51, 0x2b, 0xf8, 0xf6, 0x30, 0x5f, 0x89, 0xc5, 0x09, 0x22, 0xde, 0x54, 0x16, 0x92, 0x15, 0x8f, 0xb5, 0x47, 0xfd, 0x53, 0x9f, 0x1e, 0x58, 0x77, 0xcc, 0x64, 0x94, 0x95, 0x16, 0x63, 0x32, 0xea, 0x2b, 0x68, 0x5c, 0xfa, 0x3f, 0x60, 0x20, 0x19, 0xdf, 0x2a, 0xb2, 0xc2, 0x5e, 0xd9, 0x6b, 0x68, 0x74, 0x5e, 0x9a, 0xe8, 0x9c, 0x94, 0x8d, 0xa1, 0x1a, 0xd8, 0xa8, 0x30, 0xdf, 0x8b, 0x00, 0xf2, 0xe6, 0x68, 0x19, 0x2d, 0xad, 0xf2, 0xc5, 0x62, 0x0d, 0x35, 0xc6, 0xe8, 0x1a, 0x28, 0x53, 0xf8, 0x41, 0xe3, 0x75, 0xa0, 0xd9, 0xfc, 0xa2, 0xd2, 0x96, 0xef, 0xce, 0x2a, 0xc3, 0x8d, 0x40, 0xb0, 0x30, 0xb5, 0x75, 0x60, 0xae, 0x6e, 0x83, 0x41, 0x33, 0x9b, 0x3d, 0x3c, 0x2d, 0x06, 0x11, 0x64, 0x12, 0x43, 0x19, 0x59, 0x86, 0x88, 0xfc, 0xa6, 0x18, 0xfc, 0x64, 0xc9, 0xe8, 0xf5, 0xf8, 0x31, 0x09, 0x7a, 0x05, 0x3a, 0xf1, 0x9d, 0x7d, 0xbd, 0x61, 0x21, 0x8d, 0x92, 0x67, 0x42, 0xc2, 0xe9, 0xa4, 0x2a, 0x79, 0xcc, 0x1b, 0x14, 0x89, 0x12, 0x72, 0x2d, 0x8c, 0xd5, 0xca, 0x79, 0x3a, 0x1a, 0xd7, 0x3b, 0x5f, 0x14, 0x1b, 0x41, 0x80, 0x9c, 0x2f, 0xc0, 0x53, 0x0b, 0x76, 0x30, 0xe8, 0x03, 0x90, 0xc6, 0xb3, 0x38, 0xc7, 0x18, 0x68, 0xda, 0xcc, 0x59, 0xbf, 0x46, 0x3f, 0xfc, 0x48, 0x90, 0x16, 0xbf, 0x67, 0xf9, 0xc9, 0xd5, 0x55, 0x3c, 0x1e, 0xde, 0x17, 0x15, 0x28, 0x13, 0xfe, 0x0b, 0x26, 0x4b, 0x65, 0xdc, 0xa1, 0xb2, 0xb3, 0x8e, 0x4b, 0x80, 0x9f, 0x8c, 0x97, 0x25, 0xac, 0x5b, 0x1d, 0x8d, 0x2e, 0x56, 0xbe, 0xc9, 0x64, 0x9f, 0xe5, 0x5c, 0x75, 0x83, 0xff, 0x23, 0xb0, 0x43, 0xd6, 0xf3, 0x76, 0x86, 0x28, 0xf1, 0xf0, 0x51, 0x63, 0x37, 0x82, 0x4a, 0x5a, 0x56, 0xb4, 0x09, 0x52, 0x0a, 0x6a, 0x6c, 0xb7, 0x7e, 0x4f, 0x5f, 0xc2, 0x0b, 0x9f, 0x68, 0x99, 0xe0, 0x0a, 0xb2, 0x2d, 0xb1, 0x0d, 0x18, 0x2f, 0x09, 0xb8, 0x1e, 0x94, 0xf3, 0xad, 0x56, 0x8a, 0x0b, 0x81, 0x24, 0x4d, 0xf3, 0xf1, 0x85, 0x5c, 0x6e, 0xf2, 0x22, 0xa4, 0x1a, 0x51, 0xb6, 0x2a, 0x46, 0x49, 0xbb, 0x82, 0x69, 0x0a, 0xb6, 0x5f, 0xac, 0xac, 0x0d, 0x81, 0xd6, 0xfe, 0x02, 0x60, 0x11, 0x70, 0xa8, 0xdb, 0x62, 0xcb, 0xc5, 0xec, 0x99, 0x55, 0xd7, 0x71, 0x1a, 0x1c, 0x39, 0x65, 0x6a, 0x9f, 0x6e, 0x1f, 0xb6, 0xbc, 0x18, 0x3d, 0x9b, 0xea, 0x15, 0x03, 0x53, 0x1f, 0x17, 0x36, 0x27, 0x68, 0xbb, 0x84, 0x1f, 0x9d, 0x21, 0xf1, 0x3a, 0x2c, 0x99, 0x1e, 0x55, 0xdf, 0xf7, 0xf2, 0xb3, 0x36, 0xe2, 0x9e, 0xb2, 0x95, 0x07, 0x63, 0x8b, 0xdc, 0xad, 0x7b, 0xb3, 0x1c, 0x69, 0xe9, 0x09, 0x20, 0x7e, 0xba, 0xbc, 0xc6, 0x53, 0xff, };
13753 static const u8 ed25519_598_test_vectors_expected_sig[] = {
13754 	0xcc, 0xdf, 0xe1, 0x8a, 0xd6, 0xd0, 0xb6, 0x5d, 0x08, 0x6d, 0x63, 0x2f, 0x83, 0xcc, 0x46, 0xff, 0x3b, 0x3f, 0x2c, 0x07, 0xbb, 0x8e, 0x76, 0x9d, 0x0f, 0xb4, 0xe8, 0x2d, 0xf8, 0xa3, 0x87, 0x3f, 0x9a, 0xee, 0x35, 0xfd, 0xd1, 0x8a, 0x57, 0x83, 0x60, 0x31, 0x80, 0xa9, 0x5c, 0x9f, 0x74, 0xce, 0xd9, 0xdb, 0x51, 0x46, 0xaf, 0xcf, 0xbb, 0xdd, 0x40, 0xdf, 0x29, 0xe0, 0x42, 0x01, 0x20, 0x0c, };
13755 static const ec_test_case ed25519_598_test_case = {
13756 	.name = "EDDSA25519-SHA512/wei25519 598",
13757 	.ec_str_p = &wei25519_str_params,
13758 	.priv_key = ed25519_598_test_vectors_priv_key,
13759 	.priv_key_len = sizeof(ed25519_598_test_vectors_priv_key),
13760 	.nn_random = NULL,
13761 	.hash_type = SHA512,
13762 	.msg = (const char *)ed25519_598_test_vectors_message,
13763 	.msglen = sizeof(ed25519_598_test_vectors_message),
13764 	.sig_type = EDDSA25519,
13765 	.exp_sig = ed25519_598_test_vectors_expected_sig,
13766 	.exp_siglen = sizeof(ed25519_598_test_vectors_expected_sig),
13767 	.adata = NULL,
13768 	.adata_len = 0
13769 };
13770 
13771 /************************************************/
13772 static const u8 ed25519_599_test_vectors_priv_key[] = {
13773 	0x6a, 0xcd, 0x93, 0x9e, 0x42, 0x22, 0x26, 0xcc, 0x54, 0x43, 0xd4, 0xaa, 0xbf, 0x58, 0xc1, 0x1a, 0xf6, 0x50, 0xcb, 0x40, 0xb9, 0x64, 0x8b, 0x4d, 0xa3, 0x8b, 0x92, 0x7b, 0xff, 0x9a, 0x58, 0xdb, };
13774 static const u8 ed25519_599_test_vectors_message[] = {
13775 	0x82, 0x50, 0xd5, 0x31, 0xcf, 0x2b, 0x66, 0xaa, 0xc2, 0xb3, 0x78, 0xd5, 0x4b, 0xc5, 0x7f, 0xd3, 0x29, 0xad, 0x5a, 0x41, 0x4a, 0x59, 0x92, 0x55, 0x89, 0x8b, 0x3c, 0x3b, 0x45, 0xbf, 0x9c, 0x0d, 0x2c, 0x77, 0x54, 0x75, 0x66, 0xb6, 0x60, 0xee, 0xcc, 0x76, 0xa6, 0x95, 0xa2, 0xd6, 0x08, 0xab, 0xf1, 0x1a, 0x5f, 0x6d, 0xb3, 0xe6, 0x07, 0xfd, 0x5a, 0x21, 0x71, 0x4b, 0x0f, 0xad, 0x5d, 0x81, 0x4c, 0x01, 0x5e, 0xbf, 0x48, 0xbb, 0x73, 0xad, 0x75, 0xda, 0x9c, 0x03, 0xc4, 0xaf, 0x54, 0x89, 0xe7, 0x82, 0xb6, 0xbf, 0x79, 0x08, 0xa1, 0xbd, 0x52, 0x8d, 0x7c, 0xe7, 0x88, 0xa1, 0x8b, 0xa3, 0x52, 0x8e, 0x35, 0x37, 0xaa, 0x7b, 0xbf, 0x75, 0xf6, 0x52, 0x4b, 0xbd, 0x19, 0xa5, 0x30, 0x4b, 0xa2, 0xa4, 0xa3, 0xee, 0x58, 0xc4, 0x1f, 0xec, 0x31, 0x32, 0xee, 0x65, 0x01, 0x64, 0x12, 0x15, 0xef, 0xf7, 0x46, 0xd7, 0x80, 0x0c, 0x4d, 0x33, 0xf5, 0x2b, 0xe8, 0x35, 0x7e, 0x0e, 0xe7, 0x58, 0x04, 0x1d, 0x91, 0xcf, 0xe4, 0x3c, 0x60, 0xc3, 0xce, 0xdc, 0x09, 0xb0, 0xd4, 0x6d, 0x4c, 0xfb, 0x9a, 0xe2, 0xa0, 0x23, 0x9b, 0x6f, 0x33, 0xc6, 0x94, 0x1c, 0xff, 0x35, 0x37, 0x26, 0x70, 0xee, 0xf5, 0xc8, 0x85, 0x9a, 0xb6, 0x5b, 0x6e, 0x9f, 0x7e, 0xbc, 0xe3, 0x2f, 0xa1, 0x5a, 0x9a, 0x47, 0x7a, 0xec, 0xdc, 0x96, 0x83, 0xa1, 0xe3, 0x3a, 0x1e, 0xdc, 0xdc, 0x90, 0xd4, 0x20, 0xa3, 0x1e, 0x78, 0xc1, 0x53, 0xd2, 0x60, 0x20, 0x87, 0x1d, 0xaa, 0x4f, 0xff, 0x28, 0xac, 0xc3, 0xf1, 0x1a, 0x72, 0x06, 0x78, 0x88, 0x06, 0xb6, 0xfa, 0x02, 0x34, 0x68, 0xea, 0x5a, 0x3d, 0x18, 0x6d, 0x10, 0xf0, 0xdd, 0x56, 0x77, 0x96, 0x66, 0x3b, 0xa3, 0x7c, 0x83, 0x2f, 0xe7, 0x5a, 0xae, 0x7d, 0xcc, 0xeb, 0xf3, 0x19, 0xf9, 0x36, 0x00, 0xc4, 0x6a, 0x22, 0xf5, 0x72, 0x23, 0x81, 0x2d, 0xdd, 0x0a, 0x68, 0xd7, 0x6b, 0xaf, 0x5e, 0x27, 0xa9, 0xfc, 0x8b, 0xd6, 0x8c, 0xc1, 0x0b, 0x5b, 0x51, 0x51, 0xd6, 0x2b, 0x41, 0xf9, 0x34, 0x8e, 0x21, 0xb7, 0x15, 0x35, 0x2f, 0x26, 0x30, 0xb6, 0x17, 0xf8, 0x13, 0xb0, 0xc2, 0x89, 0x96, 0x28, 0x59, 0x04, 0xcf, 0x29, 0x4e, 0x9c, 0x28, 0x56, 0xb1, 0x7b, 0xa3, 0x5f, 0x9a, 0x82, 0x19, 0x8b, 0x82, 0x14, 0xa0, 0x35, 0xe2, 0x89, 0x6d, 0x65, 0x68, 0xbe, 0x42, 0x39, 0x2c, 0xce, 0xf3, 0x2c, 0xd4, 0xeb, 0xfe, 0xeb, 0xf1, 0x2b, 0xe0, 0x12, 0x52, 0x06, 0xbb, 0xe8, 0x93, 0x36, 0xd3, 0xe7, 0x62, 0x99, 0x1d, 0xfa, 0xb6, 0x8f, 0xc9, 0x9d, 0xc1, 0x64, 0x9b, 0x89, 0x13, 0x83, 0xdb, 0x31, 0xfa, 0xb6, 0x49, 0xe6, 0x28, 0x82, 0x3f, 0x45, 0x98, 0xcb, 0x63, 0x6a, 0x38, 0xfe, 0x1d, 0xf7, 0x3e, 0x68, 0xd7, 0x42, 0x5f, 0xc5, 0xd2, 0xeb, 0x55, 0xa0, 0xfd, 0x1b, 0xc9, 0xf5, 0xce, 0xaa, 0xbd, 0x6d, 0xd4, 0x1f, 0x23, 0xe4, 0xf0, 0x86, 0xc6, 0x92, 0x63, 0x3d, 0xc3, 0xc4, 0x61, 0x9a, 0x97, 0xab, 0x0e, 0xad, 0xa1, 0x71, 0xf8, 0x4a, 0xdf, 0x20, 0xec, 0xc8, 0xec, 0xd4, 0x7c, 0x51, 0xcc, 0xa3, 0xe5, 0x9d, 0xd8, 0x09, 0xb0, 0xae, 0xaa, 0x73, 0x0d, 0xf9, 0x4b, 0xe3, 0xba, 0xcf, 0xd8, 0xee, 0x88, 0x8b, 0xba, 0x9d, 0x57, 0x08, 0x50, 0x65, 0x2c, 0xd4, 0xd5, 0xe6, 0xc5, 0x52, 0xa5, 0x7e, 0x9f, 0x48, 0xa2, 0xb0, 0x6a, 0xac, 0xdc, 0x70, 0x8d, 0x84, 0xa3, 0x76, 0xfb, 0xc6, 0xc9, 0x4b, 0xa6, 0xbf, 0x64, 0xa5, 0xf0, 0x18, 0x80, 0x0a, 0x7c, 0xc8, 0x51, 0x24, 0x5a, 0xed, 0xb2, 0x03, 0x78, 0xb3, 0x29, 0xac, 0xeb, 0xb2, 0x97, 0x7c, 0x13, 0x98, 0x08, 0x2b, 0x3a, 0x0e, 0x5e, 0x2a, 0x9c, 0x24, 0x84, 0xfa, 0x30, 0x1d, 0x30, 0x37, 0xa8, 0x22, 0x4d, 0xdc, 0xc0, 0x95, 0xb1, 0xdb, 0xd8, 0xa2, 0x31, 0x5b, 0x55, 0xbf, 0x33, 0x18, 0xc2, 0x78, 0x10, 0xef, 0xc3, 0xd8, 0xe2, 0x5f, 0xa7, 0xa8, 0x78, 0x9b, 0x73, 0xa4, 0xf5, 0x50, 0x59, 0x08, 0x0b, 0x08, 0xab, 0xb3, 0x69, 0x9b, 0x7b, 0x86, 0x26, 0xcb, 0x2a, 0x78, 0x0d, 0x97, 0xcc, 0x1c, 0xa8, 0x03, 0x28, 0x51, 0xba, 0xf4, 0xed, 0x8b, 0x64, 0xfc, 0x43, 0x30, 0x86, 0x5f, 0x84, 0xcc, 0xb1, 0x2a, 0x3d, 0xae, };
13776 static const u8 ed25519_599_test_vectors_expected_sig[] = {
13777 	0x79, 0x99, 0x58, 0x77, 0xed, 0x24, 0xc7, 0x91, 0x68, 0x4f, 0x29, 0x84, 0xbd, 0xf9, 0x60, 0x9c, 0x3f, 0x7b, 0x57, 0x6c, 0x57, 0xd1, 0x62, 0xee, 0x62, 0x2d, 0x4c, 0xe8, 0xf3, 0x6d, 0x9c, 0x55, 0x73, 0x16, 0x9d, 0x88, 0x01, 0x21, 0x6f, 0x1c, 0x46, 0xff, 0xe2, 0xf6, 0xe2, 0xc0, 0x90, 0x48, 0xe4, 0x7d, 0x4b, 0xeb, 0x99, 0x7e, 0x9a, 0xbc, 0x4a, 0xbb, 0x12, 0x9f, 0x9b, 0x79, 0x69, 0x0a, };
13778 static const ec_test_case ed25519_599_test_case = {
13779 	.name = "EDDSA25519-SHA512/wei25519 599",
13780 	.ec_str_p = &wei25519_str_params,
13781 	.priv_key = ed25519_599_test_vectors_priv_key,
13782 	.priv_key_len = sizeof(ed25519_599_test_vectors_priv_key),
13783 	.nn_random = NULL,
13784 	.hash_type = SHA512,
13785 	.msg = (const char *)ed25519_599_test_vectors_message,
13786 	.msglen = sizeof(ed25519_599_test_vectors_message),
13787 	.sig_type = EDDSA25519,
13788 	.exp_sig = ed25519_599_test_vectors_expected_sig,
13789 	.exp_siglen = sizeof(ed25519_599_test_vectors_expected_sig),
13790 	.adata = NULL,
13791 	.adata_len = 0
13792 };
13793 
13794 /************************************************/
13795 static const u8 ed25519_600_test_vectors_priv_key[] = {
13796 	0x4d, 0xef, 0xf6, 0x47, 0xcb, 0xc4, 0x5e, 0xca, 0xed, 0xc3, 0xf7, 0xdd, 0xf2, 0x2c, 0x16, 0x7a, 0xf2, 0x4e, 0x3d, 0x63, 0xda, 0x22, 0xb0, 0xe6, 0xa5, 0xb8, 0x43, 0x9c, 0x0f, 0x3b, 0x19, 0x34, };
13797 static const u8 ed25519_600_test_vectors_message[] = {
13798 	0xd6, 0x20, 0x1e, 0xbc, 0x21, 0xce, 0xc1, 0xe9, 0xbc, 0x28, 0xf9, 0x57, 0xc9, 0xd0, 0x29, 0xcc, 0x38, 0xf9, 0xe8, 0x5e, 0x06, 0xdf, 0xc9, 0x0b, 0xf2, 0x97, 0xe6, 0x1f, 0x2b, 0x73, 0xb4, 0x07, 0xd9, 0x82, 0xa6, 0x6b, 0x91, 0xe9, 0x4a, 0x24, 0xe9, 0x1d, 0x06, 0xab, 0x8a, 0x5c, 0x07, 0x9d, 0x0f, 0x69, 0xbe, 0x57, 0x88, 0xea, 0x8f, 0xea, 0xce, 0xbd, 0x91, 0x72, 0x91, 0x19, 0x22, 0x33, 0x86, 0x2e, 0x6a, 0xcd, 0xa1, 0xe8, 0xcf, 0x9a, 0x48, 0xbf, 0xfb, 0x54, 0x91, 0xdd, 0x65, 0xaf, 0x54, 0x1b, 0x6c, 0x72, 0xaf, 0x68, 0x1a, 0x81, 0x82, 0x3d, 0x98, 0xa0, 0xab, 0xee, 0xb6, 0xba, 0x9f, 0x95, 0x46, 0x5b, 0x84, 0x11, 0xf9, 0x9e, 0x11, 0x9c, 0xd2, 0x84, 0x79, 0xda, 0x98, 0x42, 0x59, 0xbd, 0xf8, 0x6c, 0x9f, 0xef, 0x3c, 0xca, 0x34, 0xe2, 0x24, 0x69, 0x1f, 0x18, 0x3c, 0xf0, 0x95, 0x03, 0x77, 0x27, 0xda, 0x9c, 0xad, 0x29, 0xf2, 0x42, 0xf8, 0x3e, 0xb4, 0xf7, 0x36, 0xe2, 0x7f, 0xdf, 0x67, 0x01, 0x8d, 0x71, 0x1b, 0x74, 0xc4, 0x5b, 0x29, 0x55, 0xa6, 0xa7, 0x6e, 0xc1, 0x53, 0x30, 0xdf, 0x5b, 0xad, 0x80, 0x30, 0xc6, 0xb3, 0xa8, 0x8d, 0x72, 0xf2, 0x84, 0x47, 0x65, 0x2a, 0xc8, 0x90, 0x2b, 0x5b, 0x76, 0xcb, 0xf6, 0xb9, 0x45, 0xce, 0xab, 0xfe, 0xc0, 0x4a, 0x9b, 0x8c, 0xb3, 0x0f, 0x43, 0xd9, 0xeb, 0x77, 0x3e, 0x67, 0x05, 0x59, 0x4f, 0x0d, 0xe1, 0xb7, 0x0f, 0x1a, 0x20, 0xc9, 0x9f, 0xc4, 0xb1, 0x22, 0x1f, 0x8c, 0x81, 0xb0, 0xbc, 0x30, 0xda, 0x12, 0xcd, 0x5d, 0xea, 0x8f, 0x4d, 0x90, 0xf1, 0x3a, 0x81, 0x1a, 0x2c, 0xc1, 0x1a, 0x96, 0x84, 0x6a, 0xaf, 0xb4, 0xc4, 0x2a, 0x00, 0xe9, 0xae, 0x7d, 0xa2, 0x56, 0xa0, 0xd2, 0x2b, 0x19, 0x8a, 0xfc, 0x25, 0xcc, 0x10, 0x41, 0xd2, 0x4e, 0x05, 0x6c, 0xf3, 0x87, 0x60, 0x1d, 0x7b, 0xf7, 0xeb, 0x31, 0x82, 0xd6, 0x05, 0xfe, 0x5e, 0x63, 0xb1, 0x8d, 0x53, 0x1a, 0x5f, 0x84, 0xe5, 0xdb, 0xd0, 0x18, 0x4a, 0x76, 0xc6, 0xc4, 0x67, 0xa8, 0x26, 0x3a, 0x98, 0xb5, 0xc0, 0x05, 0xfc, 0xb2, 0xaa, 0xf9, 0x89, 0xf5, 0xcb, 0xd0, 0xa9, 0xd9, 0x03, 0xfc, 0xfc, 0x60, 0x9d, 0x6e, 0x57, 0xd9, 0xc4, 0x39, 0x02, 0x1c, 0xea, 0x93, 0xe4, 0xc4, 0xe9, 0x91, 0xf1, 0x93, 0xca, 0xf3, 0x24, 0x37, 0x70, 0xb3, 0x25, 0x78, 0x74, 0x80, 0x76, 0xb7, 0xf4, 0xcb, 0x97, 0xf1, 0x7c, 0x17, 0xa7, 0x9b, 0x82, 0x25, 0x3c, 0x24, 0x23, 0xdb, 0x69, 0x8c, 0xd0, 0xa3, 0x3a, 0xb3, 0x3b, 0xb0, 0x9b, 0x0b, 0x08, 0xcb, 0x8c, 0xea, 0xdc, 0xa1, 0xe2, 0x9c, 0x5d, 0xe2, 0xfc, 0x12, 0xb2, 0x40, 0x7b, 0x6c, 0xc5, 0xaf, 0x5a, 0xe9, 0x76, 0xdd, 0x3e, 0xc6, 0x30, 0xd8, 0x33, 0x9b, 0x7d, 0xd1, 0x1f, 0xa3, 0x4c, 0xaa, 0xc1, 0x50, 0xc7, 0xc4, 0x79, 0x1d, 0x8c, 0x42, 0x7b, 0x0a, 0xd9, 0x2e, 0x05, 0x29, 0x06, 0x7a, 0x88, 0xd5, 0x20, 0x11, 0xe1, 0xe0, 0xa1, 0x82, 0x99, 0xb9, 0x69, 0x89, 0x6f, 0x8b, 0x83, 0x60, 0xf7, 0x5c, 0x45, 0xc4, 0x96, 0xda, 0x47, 0xb0, 0x9b, 0x45, 0x0f, 0x98, 0x22, 0xbc, 0xbc, 0xd4, 0x3f, 0x42, 0x93, 0xc5, 0x16, 0x80, 0x2b, 0xf7, 0x47, 0xc4, 0xab, 0xee, 0xdf, 0xaa, 0x3e, 0x79, 0xcb, 0x91, 0x03, 0xd3, 0x77, 0x0f, 0x56, 0x07, 0xb7, 0x75, 0x16, 0xe5, 0xb1, 0xce, 0x0f, 0x64, 0xb6, 0xee, 0xc7, 0xbe, 0xc3, 0xc6, 0x47, 0xc0, 0x06, 0x95, 0x6d, 0xc5, 0x5b, 0x6c, 0x79, 0xf6, 0xaf, 0xb3, 0x9d, 0x1f, 0xc3, 0xec, 0xf1, 0x1b, 0x97, 0x4b, 0x44, 0xae, 0xdb, 0x72, 0xae, 0xd1, 0x31, 0x66, 0x35, 0x08, 0x3c, 0x21, 0x24, 0x50, 0x2e, 0x5c, 0x72, 0xd8, 0x6e, 0xca, 0xb6, 0xac, 0x90, 0x24, 0x3e, 0xb3, 0x9a, 0x6a, 0xa9, 0xcb, 0x94, 0x80, 0xda, 0x38, 0xe1, 0xed, 0xb8, 0xd2, 0x8f, 0xf9, 0x09, 0x24, 0xc0, 0x5d, 0x5d, 0x21, 0xaf, 0x5a, 0xf9, 0x59, 0x57, 0xb8, 0x02, 0x07, 0x81, 0x37, 0x87, 0x11, 0xa2, 0x9d, 0x09, 0x20, 0xac, 0xad, 0x8c, 0xcb, 0x39, 0xa3, 0x11, 0x69, 0x32, 0x78, 0xc9, 0x90, 0x0b, 0x47, 0x0d, 0xa2, 0xbd, 0x4c, 0x12, 0xa0, 0x1d, 0x73, 0x96, 0x26, 0x44, 0x01, 0x7b, 0x60, 0x34, 0x71, 0x3b, 0x2a, };
13799 static const u8 ed25519_600_test_vectors_expected_sig[] = {
13800 	0xdd, 0x54, 0x89, 0xfd, 0xe4, 0xba, 0x87, 0xd1, 0x17, 0x3d, 0x4c, 0xee, 0x06, 0x82, 0xaf, 0xdd, 0x4b, 0xad, 0x80, 0xdd, 0x77, 0x0e, 0xa7, 0xd0, 0xdc, 0xeb, 0xaf, 0x21, 0xac, 0xc6, 0x1d, 0xd6, 0x32, 0x4a, 0xca, 0x29, 0x5e, 0xd0, 0xe2, 0x3a, 0x91, 0x5e, 0xcf, 0xda, 0xd5, 0x0f, 0x17, 0x5e, 0xbc, 0x51, 0x6f, 0x1b, 0xe5, 0xb6, 0xd8, 0x7d, 0x90, 0xbb, 0xe3, 0x86, 0x22, 0x49, 0x53, 0x02, };
13801 static const ec_test_case ed25519_600_test_case = {
13802 	.name = "EDDSA25519-SHA512/wei25519 600",
13803 	.ec_str_p = &wei25519_str_params,
13804 	.priv_key = ed25519_600_test_vectors_priv_key,
13805 	.priv_key_len = sizeof(ed25519_600_test_vectors_priv_key),
13806 	.nn_random = NULL,
13807 	.hash_type = SHA512,
13808 	.msg = (const char *)ed25519_600_test_vectors_message,
13809 	.msglen = sizeof(ed25519_600_test_vectors_message),
13810 	.sig_type = EDDSA25519,
13811 	.exp_sig = ed25519_600_test_vectors_expected_sig,
13812 	.exp_siglen = sizeof(ed25519_600_test_vectors_expected_sig),
13813 	.adata = NULL,
13814 	.adata_len = 0
13815 };
13816 
13817 /************************************************/
13818 static const u8 ed25519_601_test_vectors_priv_key[] = {
13819 	0x5a, 0x19, 0xbf, 0x6c, 0x94, 0x1f, 0x39, 0x4e, 0x93, 0xbd, 0x36, 0x25, 0xfb, 0x81, 0xcd, 0x9d, 0xa8, 0x1c, 0x90, 0x20, 0xb1, 0xc5, 0x31, 0x25, 0x7a, 0x7b, 0x59, 0x57, 0xbb, 0x07, 0x92, 0x11, };
13820 static const u8 ed25519_601_test_vectors_message[] = {
13821 	0xf7, 0x21, 0xca, 0x3a, 0x32, 0xc1, 0xe8, 0x1c, 0x9c, 0x6f, 0x46, 0xd5, 0xe1, 0xfb, 0x50, 0xe7, 0xce, 0x2f, 0x4e, 0x70, 0x93, 0x33, 0xca, 0x2b, 0x55, 0x0d, 0x52, 0x13, 0xb6, 0x77, 0x3d, 0x67, 0x0c, 0xa5, 0x9a, 0x2b, 0x50, 0x86, 0xa4, 0x43, 0x84, 0x3a, 0xc5, 0x08, 0x13, 0xb2, 0x44, 0xc9, 0xc9, 0xfa, 0xc6, 0xd1, 0x19, 0x69, 0x89, 0x27, 0x81, 0x35, 0x12, 0xc8, 0x4f, 0xe3, 0x0a, 0x89, 0x55, 0x30, 0x10, 0x13, 0x8f, 0x91, 0xe8, 0x17, 0x6f, 0x5c, 0xf2, 0x57, 0x89, 0xd7, 0x28, 0x1d, 0xdb, 0x83, 0xa2, 0x46, 0x70, 0x5d, 0xcc, 0xb9, 0x99, 0xc4, 0xcd, 0x0a, 0xe2, 0x19, 0xc6, 0x45, 0xf6, 0xd7, 0x1d, 0x45, 0x1a, 0xe1, 0xf8, 0xd2, 0xf9, 0x89, 0x1a, 0xf8, 0xcc, 0xce, 0x03, 0xf4, 0x38, 0x55, 0x9f, 0xb8, 0x36, 0x67, 0xb8, 0x07, 0x7f, 0xbe, 0x43, 0x5a, 0x74, 0x4a, 0xf0, 0x19, 0xd6, 0xd1, 0x39, 0x9f, 0xd2, 0x13, 0x7f, 0x5a, 0xfb, 0x8e, 0xf3, 0xf4, 0x7b, 0xcf, 0x73, 0x5e, 0x7c, 0x9e, 0xd8, 0xa5, 0x4b, 0xa0, 0xc1, 0xc6, 0x56, 0xb6, 0x65, 0x0b, 0xb3, 0x0a, 0xdb, 0x1d, 0x57, 0xec, 0xd2, 0x07, 0x46, 0x39, 0x49, 0x42, 0x31, 0xa2, 0xe9, 0xe2, 0xf9, 0x85, 0xed, 0x84, 0x22, 0xee, 0x03, 0xcb, 0x3f, 0xd7, 0x38, 0xc7, 0x35, 0xa1, 0xb8, 0x28, 0x06, 0x04, 0x74, 0x60, 0xed, 0x84, 0xf7, 0x46, 0x8c, 0x3c, 0x64, 0xb3, 0x5d, 0xb0, 0x6b, 0xc5, 0x8d, 0xe4, 0xbb, 0xa4, 0x63, 0xe6, 0x38, 0xa9, 0x41, 0x33, 0xdf, 0x10, 0x6a, 0xc4, 0xf4, 0x70, 0x36, 0x1c, 0xcd, 0xe4, 0x41, 0x57, 0x29, 0x9d, 0x22, 0x5b, 0x17, 0x79, 0x88, 0x91, 0xba, 0xf5, 0x92, 0x19, 0x86, 0xa2, 0xba, 0xe3, 0x26, 0xdd, 0xa0, 0xb8, 0x96, 0x17, 0xc6, 0x77, 0xbd, 0x14, 0x08, 0xba, 0x27, 0x48, 0xba, 0xa6, 0x7c, 0x8a, 0x2c, 0x5a, 0x96, 0x9b, 0xc0, 0x0c, 0xb4, 0x0d, 0xbf, 0x49, 0x0e, 0x07, 0xe2, 0x2c, 0x91, 0x3a, 0xfd, 0xde, 0x63, 0x04, 0xa0, 0x7f, 0xc9, 0xe6, 0x08, 0x46, 0x99, 0x24, 0x56, 0xbf, 0xb0, 0x66, 0x3a, 0x09, 0xde, 0xf6, 0x8d, 0xef, 0x67, 0xa1, 0x6d, 0x29, 0xe9, 0x8c, 0x7b, 0x55, 0x35, 0x18, 0x48, 0xa8, 0xcf, 0x92, 0x31, 0x0c, 0x74, 0x63, 0xc4, 0x75, 0xf2, 0x49, 0xc6, 0xf7, 0x55, 0x7f, 0xd0, 0xd7, 0x55, 0xca, 0x88, 0xf8, 0x77, 0x84, 0x7f, 0xe0, 0x76, 0x57, 0x56, 0xac, 0x34, 0xa2, 0x3f, 0x78, 0x40, 0xd9, 0x5c, 0x3d, 0x29, 0x4e, 0x66, 0x3b, 0xb1, 0x51, 0x8b, 0x75, 0x92, 0x7c, 0x41, 0x07, 0x57, 0xe0, 0xf5, 0xc0, 0x7c, 0x5a, 0x7f, 0xb2, 0x15, 0xdc, 0x72, 0x07, 0x43, 0x3e, 0xbf, 0x79, 0x1e, 0xdf, 0xce, 0xc9, 0x0e, 0x93, 0x0f, 0x8e, 0x3b, 0xa9, 0xdb, 0xbb, 0x98, 0x54, 0x13, 0xc2, 0x23, 0xbe, 0x87, 0x87, 0x3b, 0xd3, 0x23, 0x99, 0x75, 0x81, 0x80, 0x4d, 0x88, 0x96, 0xda, 0x38, 0x6a, 0x6e, 0x91, 0x20, 0x05, 0x0a, 0x0e, 0xae, 0xd3, 0x12, 0x40, 0xaa, 0x17, 0xc7, 0xb6, 0x69, 0x4c, 0x30, 0xcb, 0xcc, 0x3c, 0x69, 0x56, 0xa6, 0x82, 0x0f, 0xc9, 0xab, 0x21, 0x87, 0x55, 0x33, 0x96, 0x3d, 0xc3, 0xb0, 0xd8, 0x83, 0x58, 0x27, 0x12, 0x76, 0xc6, 0x05, 0x65, 0x28, 0x91, 0x0d, 0xd9, 0x89, 0xae, 0x0c, 0x33, 0x0d, 0x17, 0x98, 0xf7, 0xd8, 0xe7, 0xd1, 0x18, 0x4b, 0x84, 0xa8, 0x14, 0x34, 0x32, 0x5b, 0x8c, 0x30, 0x2e, 0xdf, 0x60, 0x1d, 0xc5, 0xe6, 0xf8, 0x47, 0xfb, 0xac, 0xbd, 0xee, 0xff, 0x78, 0xc6, 0x62, 0x1d, 0x1d, 0xaf, 0xdc, 0x23, 0x9b, 0x18, 0xb8, 0xc1, 0xaf, 0xdc, 0xb4, 0xb9, 0xda, 0xbd, 0x5d, 0x3a, 0x92, 0xa9, 0x32, 0xea, 0x15, 0x99, 0x54, 0x6e, 0x62, 0x5f, 0x96, 0xd6, 0xec, 0x6f, 0xb1, 0xcc, 0xcb, 0x76, 0xb4, 0x76, 0xb3, 0x30, 0xac, 0x59, 0x25, 0x9c, 0x63, 0x4f, 0xac, 0x9b, 0x3f, 0xa7, 0xde, 0x7a, 0xe7, 0x05, 0x37, 0x73, 0xb5, 0xbe, 0xfa, 0x00, 0x1b, 0x04, 0x92, 0x9f, 0x74, 0xb7, 0x12, 0x41, 0xe1, 0xb2, 0x57, 0x69, 0x6d, 0x65, 0xa2, 0x6c, 0x1b, 0x4a, 0xc8, 0x6b, 0x7b, 0x1f, 0xbd, 0x69, 0x57, 0xfb, 0x9b, 0x95, 0x08, 0x4c, 0xe7, 0xd7, 0x00, 0x90, 0xf5, 0x5d, 0x44, 0x53, 0x46, 0x94, 0x30, 0x5e, 0x91, 0x76, 0x9a, 0x82, 0x94, 0x13, 0x04, };
13822 static const u8 ed25519_601_test_vectors_expected_sig[] = {
13823 	0x2a, 0x2f, 0xd6, 0x05, 0x4e, 0xf4, 0xe7, 0x9b, 0x72, 0x19, 0x1a, 0x0c, 0xcb, 0xd2, 0xb1, 0x8a, 0xeb, 0xab, 0xe8, 0xb9, 0xa7, 0x18, 0x61, 0xde, 0xd9, 0x8b, 0x7c, 0xdc, 0xb6, 0xa6, 0x25, 0x53, 0x28, 0xbc, 0x1a, 0xec, 0xb0, 0xc9, 0x33, 0x57, 0x21, 0xa9, 0xa9, 0x6e, 0xe4, 0xb5, 0xb4, 0x3f, 0x90, 0xd3, 0x22, 0xec, 0xf8, 0x35, 0xf7, 0x8b, 0x26, 0x4d, 0xae, 0x6e, 0x38, 0x7b, 0xfb, 0x04, };
13824 static const ec_test_case ed25519_601_test_case = {
13825 	.name = "EDDSA25519-SHA512/wei25519 601",
13826 	.ec_str_p = &wei25519_str_params,
13827 	.priv_key = ed25519_601_test_vectors_priv_key,
13828 	.priv_key_len = sizeof(ed25519_601_test_vectors_priv_key),
13829 	.nn_random = NULL,
13830 	.hash_type = SHA512,
13831 	.msg = (const char *)ed25519_601_test_vectors_message,
13832 	.msglen = sizeof(ed25519_601_test_vectors_message),
13833 	.sig_type = EDDSA25519,
13834 	.exp_sig = ed25519_601_test_vectors_expected_sig,
13835 	.exp_siglen = sizeof(ed25519_601_test_vectors_expected_sig),
13836 	.adata = NULL,
13837 	.adata_len = 0
13838 };
13839 
13840 /************************************************/
13841 static const u8 ed25519_602_test_vectors_priv_key[] = {
13842 	0xb5, 0x06, 0xc0, 0x1d, 0x69, 0x74, 0x6e, 0xb4, 0xbc, 0x63, 0x58, 0x72, 0x0e, 0x43, 0x8a, 0xd3, 0x30, 0xc8, 0x8b, 0x60, 0x5a, 0xad, 0x65, 0x2f, 0x47, 0x99, 0x57, 0x3a, 0xb0, 0xa1, 0xaa, 0xf9, };
13843 static const u8 ed25519_602_test_vectors_message[] = {
13844 	0xf7, 0xfc, 0x18, 0x06, 0x6e, 0xd0, 0x4b, 0x30, 0xe6, 0x33, 0xd9, 0x86, 0x5d, 0xa3, 0x21, 0x4b, 0xec, 0xa6, 0x0b, 0xd7, 0x96, 0x01, 0x9c, 0xd7, 0xec, 0xc9, 0x18, 0x66, 0xf9, 0xef, 0x24, 0x46, 0xc1, 0xfa, 0xb0, 0x6d, 0x86, 0x51, 0xbe, 0x7f, 0x10, 0x1a, 0xec, 0x7b, 0xb8, 0x4e, 0xe2, 0x1e, 0x71, 0xad, 0x02, 0x02, 0x15, 0xfc, 0xfb, 0x36, 0xf2, 0xd1, 0x1e, 0x45, 0x79, 0xac, 0x39, 0xf8, 0xe2, 0xb1, 0x29, 0x0e, 0x38, 0x96, 0xd5, 0x22, 0xbc, 0xf5, 0x13, 0xaa, 0xa0, 0x67, 0x71, 0xf8, 0x6e, 0xe2, 0x28, 0xcf, 0xf3, 0xa2, 0x0a, 0x1f, 0x10, 0xc5, 0x64, 0x33, 0x95, 0x89, 0xbb, 0xa9, 0x60, 0x53, 0x44, 0xc0, 0xa6, 0xe6, 0x82, 0xad, 0x5b, 0xa4, 0x0d, 0x10, 0x41, 0x94, 0x1b, 0xc4, 0x6f, 0x98, 0xb9, 0xd0, 0x9c, 0xa1, 0x7f, 0x8f, 0x04, 0x4e, 0x98, 0x3b, 0x8a, 0x49, 0x08, 0x93, 0x3d, 0xf2, 0x26, 0x3c, 0xf7, 0x88, 0x11, 0xc2, 0x4c, 0x8f, 0x48, 0x14, 0x35, 0x4f, 0x6f, 0x4c, 0x68, 0xb7, 0xee, 0x7b, 0x78, 0x30, 0x82, 0x93, 0xbf, 0x78, 0xfd, 0x0f, 0xf1, 0x22, 0xf0, 0x95, 0xc1, 0x4a, 0x73, 0xa5, 0x97, 0x97, 0x17, 0x2a, 0xe0, 0x5c, 0xfc, 0xec, 0x19, 0x56, 0x3e, 0xb1, 0x8d, 0x2b, 0xc5, 0x30, 0x0e, 0xd4, 0xbf, 0x6b, 0xdc, 0x44, 0x3e, 0xa9, 0xb8, 0xbc, 0x1c, 0xbe, 0xde, 0x94, 0xca, 0xb9, 0x05, 0xed, 0xa5, 0xa6, 0xa9, 0x31, 0x59, 0x7d, 0xe4, 0x02, 0x14, 0x6f, 0xac, 0x9c, 0xf8, 0xcd, 0x6a, 0x8d, 0x10, 0x46, 0x69, 0xf9, 0x13, 0xfa, 0x83, 0x40, 0x01, 0xca, 0x4d, 0x09, 0x0f, 0xb7, 0x94, 0x9d, 0x31, 0x09, 0xa6, 0x3c, 0x05, 0x49, 0xb0, 0x3f, 0x15, 0x1b, 0x71, 0x17, 0xc4, 0xf4, 0x69, 0x74, 0xba, 0x59, 0xc6, 0x82, 0x96, 0xed, 0xfd, 0xde, 0x76, 0x92, 0xee, 0x43, 0x2a, 0xce, 0xf7, 0x61, 0x06, 0x47, 0xe0, 0x95, 0x78, 0x65, 0xe6, 0x2c, 0x1a, 0x0c, 0xf0, 0x56, 0x59, 0x82, 0x3a, 0x55, 0x45, 0x2d, 0xd5, 0xe4, 0x71, 0xb3, 0x1c, 0x5a, 0x49, 0xab, 0x05, 0xb5, 0xaa, 0xfd, 0x5a, 0x0e, 0x53, 0x0e, 0x89, 0x6b, 0x58, 0xcc, 0x52, 0x2e, 0xcf, 0x19, 0xe5, 0x2e, 0xc8, 0x2f, 0xa1, 0x47, 0xf9, 0xe3, 0x85, 0x17, 0x4c, 0x7e, 0xc3, 0x3d, 0x1d, 0x9b, 0x86, 0x93, 0x4a, 0xeb, 0x4f, 0x6c, 0x57, 0x00, 0xf7, 0xd5, 0xeb, 0x33, 0xff, 0x73, 0xc9, 0xfc, 0x6a, 0xa4, 0x7d, 0xf5, 0x1e, 0x09, 0x22, 0x9e, 0x6a, 0xe8, 0x94, 0xe8, 0x6c, 0x81, 0x8b, 0xef, 0x06, 0x5f, 0x82, 0x59, 0x71, 0xa4, 0xcb, 0x90, 0xad, 0xfe, 0xfb, 0x31, 0xeb, 0xd9, 0xd1, 0xb7, 0x94, 0x22, 0xdc, 0x98, 0x68, 0xf9, 0xf7, 0x4e, 0x7a, 0x32, 0xcd, 0x40, 0x71, 0xef, 0xb6, 0x9b, 0x27, 0x23, 0x3e, 0x6e, 0x5c, 0x60, 0xde, 0xdc, 0xd5, 0x32, 0x1c, 0x03, 0x0a, 0x46, 0xcd, 0x26, 0xf5, 0x60, 0x2c, 0xac, 0x74, 0x7e, 0xe4, 0xb5, 0x22, 0xd8, 0x57, 0xa3, 0x32, 0x1a, 0x03, 0xf4, 0x03, 0xa6, 0x00, 0x62, 0x50, 0x40, 0x63, 0x61, 0xe4, 0x88, 0x15, 0xaf, 0xba, 0x77, 0xce, 0x08, 0x90, 0x34, 0x41, 0x84, 0x5b, 0xa8, 0x72, 0x25, 0xd8, 0xb2, 0x40, 0x46, 0x74, 0x5d, 0x40, 0x65, 0x64, 0x5a, 0x1b, 0x98, 0x41, 0x0c, 0xac, 0x48, 0xd1, 0x37, 0xcb, 0xbb, 0x8a, 0xb1, 0xeb, 0xa5, 0x0d, 0xa9, 0xc2, 0x31, 0xe9, 0xac, 0xf3, 0x22, 0xa6, 0xdb, 0xec, 0x0e, 0xf4, 0x16, 0xa4, 0x46, 0xc3, 0xb6, 0x10, 0xd9, 0x35, 0x69, 0xfd, 0xf4, 0x5a, 0xa6, 0xcd, 0xc1, 0xb6, 0x40, 0xd8, 0xf3, 0x01, 0xd7, 0x86, 0x93, 0xb2, 0x82, 0x6c, 0xc6, 0xed, 0x46, 0x85, 0x68, 0xad, 0x9a, 0x0f, 0x94, 0xaa, 0x9b, 0x9f, 0xb9, 0x2f, 0x7e, 0x78, 0xd4, 0x84, 0xfd, 0xf5, 0xd8, 0xd4, 0x5c, 0x99, 0x1e, 0x28, 0x07, 0x4d, 0xcd, 0xd6, 0x80, 0xd3, 0xb1, 0xf1, 0x89, 0xef, 0x6b, 0xdc, 0x32, 0x0e, 0xe6, 0xe6, 0x4d, 0xd1, 0xf8, 0x0d, 0x92, 0x64, 0xd8, 0x30, 0x42, 0xd2, 0xc4, 0x3d, 0x83, 0x58, 0x1e, 0xf0, 0x39, 0x4b, 0x1b, 0x5d, 0x1f, 0x69, 0xf3, 0xbb, 0xbf, 0x04, 0xb7, 0xc8, 0x08, 0xba, 0x34, 0xc1, 0x58, 0x0f, 0x16, 0xf7, 0x65, 0x37, 0xb6, 0xa7, 0xeb, 0xd0, 0xa1, 0x90, 0x8b, 0xe9, 0x49, 0x4d, 0x3f, 0xca, 0xa9, 0x87, 0x1d, 0xb1, 0x57, 0x50, };
13845 static const u8 ed25519_602_test_vectors_expected_sig[] = {
13846 	0x17, 0xa1, 0x9d, 0x26, 0x91, 0xb7, 0xb0, 0x46, 0xd7, 0xb1, 0x96, 0x69, 0xad, 0x73, 0x14, 0x0d, 0xb9, 0x2f, 0x0c, 0x97, 0x8c, 0x7f, 0x61, 0xbc, 0x38, 0x67, 0xd9, 0x2c, 0xa9, 0xd4, 0x75, 0x80, 0xa0, 0x38, 0x0b, 0x59, 0x01, 0xba, 0xd8, 0x2a, 0xf4, 0x5f, 0x67, 0x6f, 0x74, 0x28, 0x73, 0x01, 0x98, 0x0f, 0x71, 0x87, 0x1a, 0x42, 0x26, 0x1d, 0xbe, 0x08, 0x02, 0x95, 0x03, 0x36, 0xe6, 0x0b, };
13847 static const ec_test_case ed25519_602_test_case = {
13848 	.name = "EDDSA25519-SHA512/wei25519 602",
13849 	.ec_str_p = &wei25519_str_params,
13850 	.priv_key = ed25519_602_test_vectors_priv_key,
13851 	.priv_key_len = sizeof(ed25519_602_test_vectors_priv_key),
13852 	.nn_random = NULL,
13853 	.hash_type = SHA512,
13854 	.msg = (const char *)ed25519_602_test_vectors_message,
13855 	.msglen = sizeof(ed25519_602_test_vectors_message),
13856 	.sig_type = EDDSA25519,
13857 	.exp_sig = ed25519_602_test_vectors_expected_sig,
13858 	.exp_siglen = sizeof(ed25519_602_test_vectors_expected_sig),
13859 	.adata = NULL,
13860 	.adata_len = 0
13861 };
13862 
13863 /************************************************/
13864 static const u8 ed25519_603_test_vectors_priv_key[] = {
13865 	0xe1, 0xcc, 0xb8, 0x0a, 0x26, 0x2f, 0xf8, 0xaf, 0x1e, 0xda, 0x07, 0x5c, 0x97, 0x2c, 0x8e, 0x94, 0x1e, 0x77, 0xce, 0xf5, 0x7b, 0xdb, 0x0a, 0x82, 0x57, 0x2c, 0x28, 0x20, 0x0b, 0x49, 0x3c, 0xa3, };
13866 static const u8 ed25519_603_test_vectors_message[] = {
13867 	0xcf, 0xdc, 0x54, 0x97, 0xb0, 0x23, 0xaf, 0xa6, 0x2a, 0x7f, 0xe5, 0x92, 0xca, 0xa9, 0x2b, 0x87, 0x5c, 0x77, 0x05, 0x74, 0x78, 0x34, 0x00, 0x2f, 0x77, 0x84, 0xff, 0x16, 0x61, 0x89, 0x39, 0x88, 0x15, 0xd4, 0xe8, 0xa7, 0xa0, 0x03, 0x8e, 0x1f, 0xda, 0xdd, 0xde, 0xba, 0x51, 0x05, 0x73, 0x27, 0xad, 0x19, 0x60, 0xe8, 0x59, 0xce, 0xe5, 0x65, 0x26, 0xbb, 0xb4, 0x12, 0x7b, 0x6a, 0x5f, 0x90, 0xd0, 0x4d, 0x08, 0xb1, 0x5e, 0xee, 0x66, 0xc9, 0xcc, 0xf8, 0x8b, 0x4b, 0x7d, 0x1e, 0xe9, 0xd3, 0xb8, 0xb8, 0xc6, 0xf4, 0x2d, 0xb3, 0xc3, 0x4e, 0x59, 0x04, 0x8a, 0x15, 0xc6, 0x04, 0x1f, 0x14, 0x2c, 0x40, 0x79, 0x36, 0x8b, 0x7b, 0x11, 0xe2, 0x99, 0x70, 0x11, 0x8b, 0x99, 0xe5, 0x67, 0x0a, 0xe3, 0x1f, 0xcc, 0xfd, 0xff, 0x13, 0x99, 0x14, 0x2e, 0xe0, 0x6b, 0x2e, 0x3e, 0x2b, 0x3c, 0x97, 0x07, 0xdd, 0x64, 0x11, 0x97, 0x86, 0xe2, 0xfa, 0xb4, 0x7e, 0x0b, 0xad, 0x2c, 0xc8, 0xb5, 0x58, 0xd9, 0x63, 0xbb, 0x48, 0xa4, 0x9a, 0xd2, 0xc6, 0x37, 0xdd, 0x35, 0xb2, 0x5d, 0xb5, 0x4b, 0xc5, 0xa2, 0x63, 0x02, 0x22, 0xfa, 0x2a, 0xce, 0xce, 0x9c, 0xe1, 0x2a, 0xb0, 0x81, 0x30, 0x77, 0xf7, 0x65, 0x9f, 0x50, 0x74, 0x42, 0x9c, 0xa6, 0xb4, 0x94, 0x33, 0x10, 0x32, 0xae, 0x79, 0x2a, 0x59, 0x9c, 0x42, 0x5e, 0xe2, 0x97, 0x45, 0x1d, 0xcf, 0x5e, 0xe1, 0x95, 0x29, 0x03, 0x12, 0x74, 0x2e, 0x64, 0x7a, 0x77, 0x95, 0xb8, 0x4d, 0xcc, 0x66, 0x4d, 0xda, 0xe2, 0xa1, 0xfb, 0xf8, 0xc4, 0x54, 0x8a, 0x37, 0xfd, 0x82, 0xd8, 0x10, 0xe2, 0x14, 0x5f, 0x01, 0xdf, 0x1a, 0x6d, 0x3b, 0xcc, 0x42, 0xa9, 0x1a, 0x10, 0x76, 0x8e, 0x09, 0x1f, 0x3d, 0x69, 0x32, 0x9a, 0x7b, 0xad, 0x6c, 0x07, 0x2c, 0xac, 0x6d, 0x89, 0xaf, 0xa3, 0x1c, 0x02, 0x90, 0x56, 0xd6, 0xb6, 0x22, 0x12, 0x16, 0x5c, 0xeb, 0xcd, 0x49, 0xac, 0x67, 0x2e, 0x38, 0x30, 0x26, 0x7a, 0xf9, 0xf2, 0x8e, 0xa3, 0x19, 0xbd, 0x04, 0x2f, 0x6c, 0x59, 0xde, 0x47, 0x01, 0xe5, 0x82, 0x48, 0x73, 0x6c, 0x8d, 0x97, 0x6a, 0xcf, 0x93, 0xb9, 0x9d, 0x2f, 0x46, 0x47, 0xa5, 0x47, 0xd3, 0x92, 0x44, 0x7a, 0x48, 0xda, 0xc1, 0x11, 0x81, 0xe1, 0x6b, 0x15, 0x01, 0xa9, 0x4c, 0x93, 0x16, 0xe5, 0xa6, 0x7c, 0x99, 0x0b, 0x35, 0x81, 0x0b, 0x4c, 0xda, 0x04, 0x73, 0xa6, 0xa4, 0xe5, 0x76, 0x14, 0x21, 0x58, 0x68, 0xe2, 0xe0, 0x02, 0xc6, 0x05, 0x8b, 0x42, 0xe4, 0xee, 0xec, 0x84, 0x13, 0x9d, 0xc1, 0x9e, 0xdf, 0x5f, 0x80, 0xae, 0xef, 0xfa, 0x4f, 0x5b, 0x07, 0xe8, 0xfd, 0x23, 0x13, 0x9e, 0xdd, 0xa3, 0x18, 0x99, 0xeb, 0xe6, 0xfe, 0xe7, 0x86, 0x43, 0xce, 0x68, 0x6b, 0x29, 0x63, 0xa3, 0x20, 0x72, 0xbd, 0x3b, 0x3b, 0xba, 0x68, 0x48, 0x5a, 0x05, 0xc2, 0xcc, 0x04, 0x56, 0xc3, 0xda, 0x50, 0xc7, 0xc8, 0xc6, 0x51, 0xa3, 0x06, 0x6d, 0x13, 0xa3, 0x66, 0x0b, 0xd4, 0x7a, 0xb6, 0xdf, 0xec, 0x49, 0xe0, 0x15, 0x57, 0xa6, 0x74, 0x28, 0x96, 0xaa, 0x4b, 0xc6, 0x36, 0x3a, 0x79, 0x7d, 0xba, 0xd1, 0xa4, 0x09, 0xcd, 0x4a, 0x50, 0x91, 0x1e, 0x70, 0xea, 0x00, 0x7a, 0xf8, 0xe9, 0xb1, 0xbb, 0x7e, 0x3a, 0xb5, 0x62, 0x15, 0xa5, 0x75, 0xc9, 0x0f, 0x73, 0x9c, 0x2d, 0x48, 0xb3, 0xb3, 0x46, 0x94, 0xb5, 0xac, 0xdf, 0x07, 0x98, 0x0a, 0xe5, 0x28, 0xde, 0x06, 0x21, 0xed, 0xfa, 0xc8, 0xb8, 0xfa, 0x84, 0x95, 0x4d, 0x56, 0xdb, 0xb4, 0xd0, 0x30, 0x82, 0xb9, 0x84, 0xf1, 0x3e, 0x5d, 0xbe, 0x9c, 0x71, 0x12, 0xff, 0x97, 0x16, 0xf5, 0x50, 0x53, 0x06, 0x46, 0x62, 0xce, 0x0f, 0xb8, 0x1e, 0xa3, 0x5f, 0x98, 0xfd, 0x2c, 0xd5, 0x11, 0x37, 0xa4, 0x6f, 0x64, 0xe0, 0xc1, 0xca, 0xf4, 0x4e, 0x54, 0x07, 0xdc, 0x96, 0x17, 0x60, 0xb2, 0x59, 0x7f, 0x7f, 0x92, 0x00, 0x61, 0x7d, 0x47, 0x13, 0x40, 0xcf, 0x15, 0x17, 0x6c, 0x3d, 0xa8, 0x80, 0xfe, 0x4e, 0x0e, 0x93, 0xa7, 0x2f, 0xb9, 0x49, 0x26, 0xfa, 0xed, 0x86, 0x5d, 0xfd, 0xc7, 0x72, 0xe1, 0x85, 0x29, 0x2c, 0x1e, 0x36, 0xb1, 0x21, 0x17, 0x81, 0xc3, 0xe9, 0x38, 0xe3, 0xd4, 0xf2, 0x4e, 0x29, 0xaf, 0x51, 0x7a, 0x37, 0x96, 0x83, };
13868 static const u8 ed25519_603_test_vectors_expected_sig[] = {
13869 	0xfd, 0xa3, 0x4b, 0x65, 0x2b, 0x79, 0x74, 0x6f, 0x89, 0x7e, 0x22, 0x2d, 0x37, 0xb7, 0x7a, 0xa2, 0x50, 0xd0, 0x2c, 0x52, 0x7c, 0x48, 0x33, 0xdf, 0x80, 0xea, 0x41, 0xd5, 0x21, 0x89, 0xd5, 0x07, 0x00, 0xe1, 0x28, 0xb7, 0x8e, 0xe8, 0x14, 0x9c, 0x9b, 0x19, 0xf3, 0xab, 0xf7, 0x55, 0xac, 0xef, 0x53, 0x48, 0xf5, 0xfb, 0xaf, 0x1c, 0xeb, 0x41, 0xc0, 0x38, 0x90, 0x6a, 0xc5, 0x94, 0x60, 0x01, };
13870 static const ec_test_case ed25519_603_test_case = {
13871 	.name = "EDDSA25519-SHA512/wei25519 603",
13872 	.ec_str_p = &wei25519_str_params,
13873 	.priv_key = ed25519_603_test_vectors_priv_key,
13874 	.priv_key_len = sizeof(ed25519_603_test_vectors_priv_key),
13875 	.nn_random = NULL,
13876 	.hash_type = SHA512,
13877 	.msg = (const char *)ed25519_603_test_vectors_message,
13878 	.msglen = sizeof(ed25519_603_test_vectors_message),
13879 	.sig_type = EDDSA25519,
13880 	.exp_sig = ed25519_603_test_vectors_expected_sig,
13881 	.exp_siglen = sizeof(ed25519_603_test_vectors_expected_sig),
13882 	.adata = NULL,
13883 	.adata_len = 0
13884 };
13885 
13886 /************************************************/
13887 static const u8 ed25519_604_test_vectors_priv_key[] = {
13888 	0x4f, 0xc5, 0x12, 0xef, 0xd8, 0x6e, 0x3a, 0x63, 0xb3, 0x95, 0xea, 0xff, 0x1b, 0xa0, 0x11, 0xe1, 0x59, 0x0f, 0xb9, 0x32, 0x6a, 0xd3, 0xff, 0xed, 0xe7, 0x87, 0x6d, 0xcc, 0x3e, 0x9f, 0xab, 0xdc, };
13889 static const u8 ed25519_604_test_vectors_message[] = {
13890 	0x07, 0xcd, 0x1e, 0x9b, 0xfa, 0x38, 0xa7, 0xd8, 0x85, 0x34, 0x65, 0xa9, 0x3c, 0x77, 0xab, 0x4f, 0x30, 0xfa, 0xf9, 0x14, 0xe4, 0x8b, 0xc4, 0x76, 0x3b, 0xa0, 0x7b, 0xf9, 0x6b, 0xa8, 0x08, 0xc1, 0xf5, 0x9a, 0xd4, 0xce, 0x9b, 0x7d, 0x92, 0x1f, 0xbb, 0xc7, 0x79, 0x65, 0x9d, 0x7c, 0xa3, 0x6e, 0xdb, 0x7d, 0xd3, 0xac, 0xf7, 0xa2, 0x94, 0x52, 0xa8, 0x45, 0xb4, 0x9f, 0xb6, 0x54, 0x3a, 0x3b, 0x6c, 0x5c, 0x1c, 0x29, 0x3a, 0xff, 0x61, 0x84, 0x85, 0xa1, 0x0e, 0xea, 0x60, 0xee, 0x96, 0x49, 0xac, 0x9d, 0x48, 0x1e, 0x69, 0x49, 0x96, 0x7d, 0x39, 0x38, 0xb5, 0x2f, 0xe0, 0x9c, 0x36, 0xb9, 0xad, 0xe0, 0x75, 0x81, 0xdb, 0x4e, 0xb5, 0x42, 0xa9, 0x7f, 0x5a, 0xc8, 0xac, 0x73, 0xd3, 0xee, 0xa1, 0x84, 0x72, 0x25, 0x56, 0x76, 0x0c, 0xf4, 0x83, 0x09, 0x05, 0x64, 0x55, 0x30, 0x61, 0xb9, 0x0a, 0x0b, 0x6d, 0x2d, 0xff, 0x47, 0x07, 0xbe, 0x76, 0x39, 0x37, 0xa1, 0x05, 0x94, 0xa8, 0x2b, 0x76, 0x6b, 0xb2, 0xcf, 0x6d, 0xaa, 0x52, 0xfa, 0x8d, 0x7b, 0x48, 0xf3, 0x21, 0x27, 0xc4, 0x31, 0xad, 0x9a, 0xae, 0xd3, 0xbf, 0xde, 0xb9, 0x9a, 0xd4, 0x21, 0x18, 0xa1, 0xb4, 0xde, 0x7b, 0x99, 0x21, 0x34, 0xed, 0x9c, 0xda, 0xd0, 0xb5, 0x29, 0x6d, 0x19, 0x7a, 0x48, 0x5e, 0x49, 0x3e, 0xcf, 0xec, 0xa3, 0x65, 0x3a, 0xd2, 0xce, 0x0f, 0x92, 0x41, 0xaa, 0xbc, 0x09, 0x6d, 0x7c, 0x4b, 0xa6, 0x03, 0xba, 0x7d, 0xdd, 0x07, 0xa8, 0xb2, 0x57, 0xfe, 0x52, 0x32, 0x76, 0x41, 0x70, 0x73, 0xa6, 0x5f, 0xa4, 0x43, 0x42, 0x56, 0xfd, 0x1f, 0x23, 0x9e, 0xc1, 0xde, 0x5d, 0xa1, 0xa0, 0xa8, 0xc5, 0xe6, 0x86, 0xee, 0x14, 0xd9, 0xdf, 0xa4, 0x38, 0xc5, 0x3b, 0x99, 0xc9, 0x54, 0xaf, 0xab, 0x2f, 0x79, 0xe6, 0x0b, 0x71, 0x26, 0xf2, 0xcb, 0x58, 0xa2, 0x6e, 0x29, 0x0d, 0xa1, 0xdc, 0xcf, 0xc3, 0x01, 0xf2, 0x39, 0x74, 0x8e, 0xde, 0x7b, 0xcf, 0x1b, 0xb7, 0xcc, 0xb4, 0x72, 0x0e, 0x69, 0x2f, 0x57, 0xe5, 0x3e, 0x6f, 0x59, 0x07, 0x53, 0x99, 0xe1, 0x08, 0x0a, 0xc8, 0xaa, 0x9a, 0x61, 0xa5, 0x68, 0xc4, 0xc5, 0x69, 0xd3, 0x6e, 0x76, 0xa2, 0xd7, 0x27, 0x1f, 0x2c, 0x44, 0xde, 0x4e, 0x36, 0x3a, 0x8c, 0x91, 0x6a, 0x4e, 0x44, 0x6b, 0x02, 0x7b, 0x64, 0x39, 0x2e, 0x90, 0xce, 0xab, 0xf6, 0xb6, 0x07, 0x1b, 0xc4, 0x7a, 0x13, 0x79, 0xb6, 0xaa, 0x63, 0x44, 0x76, 0x3b, 0x2a, 0x0e, 0x7f, 0xf7, 0xc4, 0xa2, 0x7b, 0xff, 0x31, 0x06, 0x72, 0x1c, 0x25, 0x3e, 0x4c, 0x1d, 0x67, 0xc3, 0x7f, 0xa3, 0xd7, 0xc1, 0xec, 0xd0, 0x55, 0xb8, 0xe9, 0x29, 0xd5, 0x2a, 0x8e, 0x45, 0xed, 0x89, 0xfb, 0x18, 0x0f, 0x74, 0xb5, 0x52, 0xfe, 0x06, 0xf0, 0x66, 0xc7, 0xe4, 0x31, 0x8c, 0xa2, 0xf9, 0x15, 0x94, 0x6e, 0x83, 0x20, 0xd5, 0x80, 0x65, 0x61, 0x47, 0x2f, 0xb8, 0xff, 0x7f, 0xa8, 0x07, 0x2d, 0x8e, 0x6f, 0xd1, 0xce, 0x63, 0xcf, 0x87, 0x38, 0x2f, 0x7b, 0x94, 0x04, 0x54, 0x0c, 0x1d, 0x40, 0x6c, 0x70, 0xb2, 0x26, 0x85, 0x36, 0x77, 0x09, 0x26, 0x45, 0xce, 0x99, 0x69, 0x22, 0xe7, 0x34, 0x5d, 0xc0, 0x7f, 0xb7, 0x33, 0x9f, 0x9a, 0x54, 0xff, 0x07, 0x35, 0x2d, 0xd2, 0xb9, 0x93, 0x06, 0x3c, 0x2c, 0x83, 0xd1, 0x28, 0x1a, 0x4f, 0xd1, 0x78, 0xe5, 0xa5, 0xf8, 0x0a, 0x5b, 0x33, 0xc2, 0x29, 0xd0, 0x57, 0x83, 0x67, 0xd4, 0x41, 0x92, 0xe9, 0xa4, 0xd2, 0x1e, 0x97, 0x34, 0xd3, 0xbd, 0xa0, 0x83, 0xb7, 0x0f, 0x47, 0x10, 0x3f, 0xd1, 0x25, 0x17, 0x70, 0x21, 0xdf, 0x3e, 0x53, 0xd7, 0x99, 0x86, 0xef, 0xea, 0x2d, 0xc0, 0x4f, 0x02, 0xc0, 0xac, 0x27, 0x87, 0x88, 0x31, 0x9e, 0xf3, 0xa9, 0x13, 0x2e, 0x62, 0x32, 0xea, 0x6d, 0xb3, 0x9c, 0xa5, 0x87, 0x08, 0x55, 0xf9, 0x59, 0x2f, 0xff, 0x6c, 0x20, 0x9a, 0xd2, 0xf1, 0xc2, 0x9d, 0xd1, 0x68, 0x55, 0x28, 0x98, 0x97, 0x9e, 0xcf, 0xf8, 0xc8, 0x11, 0x27, 0x24, 0x8f, 0x83, 0x10, 0x51, 0x53, 0x00, 0x65, 0x61, 0x29, 0xd9, 0xb7, 0xac, 0xbb, 0x7e, 0xd1, 0xe4, 0x6b, 0xc9, 0x8c, 0x04, 0xd1, 0xa3, 0x5b, 0x18, 0x91, 0x37, 0x38, 0xe9, 0xdd, 0xe4, 0xd2, 0xb0, 0x65, 0xf4, 0x18, 0x42, 0x42, 0xd8, };
13891 static const u8 ed25519_604_test_vectors_expected_sig[] = {
13892 	0x82, 0xc8, 0x24, 0xa7, 0xd1, 0x13, 0x9e, 0xc7, 0x3a, 0xe1, 0xd0, 0x23, 0xad, 0xf6, 0x28, 0x11, 0x44, 0x1e, 0x96, 0x82, 0x87, 0xf1, 0xa5, 0x80, 0xb8, 0x59, 0xcd, 0x66, 0xcb, 0x33, 0xb5, 0x8e, 0x40, 0x9b, 0xde, 0xb2, 0xa8, 0x74, 0xbf, 0x4c, 0x23, 0x61, 0x0b, 0xd4, 0x4f, 0x69, 0x31, 0x47, 0xf2, 0xf7, 0xc2, 0x9d, 0x44, 0x3a, 0x90, 0x50, 0x84, 0xf3, 0xea, 0xaf, 0xd9, 0x33, 0x0e, 0x04, };
13893 static const ec_test_case ed25519_604_test_case = {
13894 	.name = "EDDSA25519-SHA512/wei25519 604",
13895 	.ec_str_p = &wei25519_str_params,
13896 	.priv_key = ed25519_604_test_vectors_priv_key,
13897 	.priv_key_len = sizeof(ed25519_604_test_vectors_priv_key),
13898 	.nn_random = NULL,
13899 	.hash_type = SHA512,
13900 	.msg = (const char *)ed25519_604_test_vectors_message,
13901 	.msglen = sizeof(ed25519_604_test_vectors_message),
13902 	.sig_type = EDDSA25519,
13903 	.exp_sig = ed25519_604_test_vectors_expected_sig,
13904 	.exp_siglen = sizeof(ed25519_604_test_vectors_expected_sig),
13905 	.adata = NULL,
13906 	.adata_len = 0
13907 };
13908 
13909 /************************************************/
13910 static const u8 ed25519_605_test_vectors_priv_key[] = {
13911 	0x0b, 0x7d, 0xfa, 0xd0, 0x5b, 0xa6, 0x65, 0x11, 0x1e, 0x16, 0x81, 0xbd, 0xc0, 0xbc, 0x8b, 0xa9, 0x73, 0x76, 0x7c, 0xb8, 0x58, 0x77, 0x02, 0x0a, 0x2d, 0xbf, 0x91, 0x83, 0x25, 0x57, 0x1d, 0x9f, };
13912 static const u8 ed25519_605_test_vectors_message[] = {
13913 	0xc4, 0x3f, 0xd3, 0x4b, 0xb1, 0x42, 0x4c, 0xca, 0x4e, 0x4d, 0xfb, 0xa7, 0x5c, 0x28, 0xbe, 0x80, 0x18, 0x44, 0x44, 0x6c, 0xa0, 0x89, 0x02, 0x08, 0x85, 0xc7, 0x48, 0x38, 0x25, 0x47, 0x16, 0x4a, 0x9d, 0x4a, 0x7f, 0x95, 0x70, 0xd3, 0xd1, 0x71, 0xad, 0x69, 0x81, 0xab, 0x50, 0xee, 0xee, 0x08, 0xa4, 0xa6, 0xc6, 0x6d, 0x76, 0x99, 0xd2, 0x3e, 0xdb, 0xe1, 0xfa, 0xaf, 0x44, 0x66, 0x0c, 0x72, 0xf4, 0x55, 0x2d, 0x87, 0xd2, 0x65, 0xac, 0xe8, 0x79, 0x28, 0x23, 0x47, 0x4b, 0x90, 0xa5, 0xd7, 0xf7, 0x40, 0x1d, 0xeb, 0x93, 0x77, 0x62, 0x7f, 0x60, 0xb0, 0x36, 0xb3, 0x6e, 0x04, 0x4e, 0xb7, 0x6b, 0xf1, 0x32, 0xfd, 0xdf, 0xcc, 0x0e, 0xf5, 0x70, 0x4a, 0x63, 0x3d, 0x84, 0x5e, 0x96, 0x2b, 0x47, 0x51, 0x7f, 0x0b, 0xaa, 0x34, 0xd3, 0xd6, 0xe9, 0xa8, 0xb9, 0xf8, 0x16, 0x8b, 0xcd, 0xc8, 0x4c, 0x6d, 0x2b, 0x30, 0xc6, 0xf3, 0x43, 0xe7, 0x53, 0x57, 0xf7, 0xf2, 0xc0, 0x03, 0x9b, 0xd2, 0x54, 0xb2, 0x44, 0xd3, 0x6c, 0xd6, 0x16, 0x75, 0x58, 0x1f, 0xb8, 0x34, 0x57, 0x0e, 0xd4, 0x11, 0x3a, 0x78, 0xe6, 0x06, 0xf1, 0x45, 0xa1, 0x11, 0x99, 0x2c, 0x2c, 0x6b, 0x61, 0xc4, 0x26, 0x76, 0x28, 0xec, 0x87, 0xcd, 0x88, 0xc3, 0x6a, 0x3c, 0x84, 0x70, 0x6e, 0x44, 0xae, 0x96, 0xa9, 0x6e, 0x0c, 0x84, 0x80, 0x31, 0x85, 0x46, 0xd6, 0xea, 0x6a, 0x6d, 0xf1, 0x8a, 0x2b, 0x4f, 0x19, 0xf8, 0x36, 0x0c, 0xfb, 0xce, 0x4e, 0x9d, 0x1c, 0xf1, 0x01, 0x1f, 0xfe, 0xa5, 0x63, 0x3a, 0x66, 0x61, 0x9a, 0xa4, 0xa6, 0x5c, 0xf6, 0x9b, 0xe4, 0x45, 0x96, 0x17, 0x94, 0x5e, 0x43, 0x59, 0xa9, 0xd4, 0x32, 0x60, 0xca, 0x1a, 0x20, 0xf4, 0xed, 0x7c, 0x1a, 0xe5, 0xff, 0xff, 0x3b, 0xd9, 0x22, 0x94, 0xea, 0x70, 0xab, 0xba, 0xe0, 0x38, 0x5b, 0x09, 0x35, 0xcd, 0x1c, 0x0e, 0xb5, 0x18, 0x30, 0x29, 0xc5, 0x85, 0xa0, 0x29, 0x4b, 0x79, 0x99, 0xe3, 0x2e, 0xf7, 0xa2, 0x90, 0xfc, 0xb0, 0x95, 0x67, 0x5d, 0xc4, 0xf6, 0x01, 0xe8, 0xf2, 0xc9, 0x6f, 0x35, 0xb7, 0x34, 0x9a, 0x37, 0x05, 0x75, 0x09, 0xf4, 0xec, 0x70, 0xc9, 0xf5, 0x0f, 0x60, 0x11, 0xf1, 0xf5, 0xe6, 0xb0, 0x61, 0xc0, 0x91, 0xd1, 0x1c, 0x0e, 0xd5, 0xde, 0xc8, 0xec, 0xe8, 0x81, 0xaa, 0x34, 0x05, 0x08, 0xf6, 0x96, 0xd9, 0xe9, 0xcc, 0x72, 0x98, 0xe6, 0xbc, 0xcd, 0x7c, 0x21, 0x0e, 0x2c, 0xe0, 0xde, 0xd8, 0x35, 0x92, 0xa3, 0xcf, 0xa1, 0x3e, 0x80, 0x78, 0xfd, 0xb3, 0x25, 0x8b, 0x39, 0xf1, 0xd1, 0x1c, 0xdf, 0xe0, 0x96, 0x70, 0xc1, 0xe6, 0x0a, 0x39, 0x10, 0xa4, 0xff, 0xf5, 0x1c, 0x6c, 0x7f, 0x7d, 0x66, 0x24, 0xf4, 0xc9, 0x3d, 0xf8, 0x88, 0x8c, 0x52, 0x6f, 0x48, 0x4f, 0x9b, 0x13, 0xe0, 0xa7, 0xf6, 0x29, 0x64, 0x78, 0x39, 0x78, 0x68, 0x4e, 0x29, 0x26, 0x79, 0x80, 0x0e, 0xd5, 0xeb, 0x28, 0x0e, 0x28, 0x7c, 0x7e, 0x63, 0x9e, 0x85, 0xfa, 0xa5, 0x3f, 0xba, 0x2f, 0xa2, 0x04, 0x5c, 0xe2, 0x7d, 0x8f, 0xb3, 0x08, 0x36, 0x07, 0x26, 0x55, 0x0d, 0xf9, 0x75, 0x2d, 0xb3, 0x05, 0xf8, 0xf0, 0x66, 0x47, 0x97, 0x0d, 0x01, 0x46, 0x91, 0x99, 0x9a, 0xfa, 0x97, 0xb6, 0x19, 0x3f, 0xfc, 0xc6, 0xd5, 0x32, 0xf4, 0xfa, 0x69, 0xe1, 0x33, 0xa1, 0xd1, 0x0f, 0x30, 0x47, 0xfc, 0x00, 0x38, 0x1f, 0x49, 0x97, 0xbb, 0x84, 0xe5, 0xb6, 0xcd, 0x60, 0x28, 0xc6, 0x21, 0x32, 0xcf, 0xc0, 0x24, 0xbf, 0xeb, 0x98, 0x03, 0x01, 0xf2, 0x95, 0x12, 0xbb, 0xd1, 0x09, 0xd0, 0x89, 0xac, 0xe1, 0x82, 0xcf, 0x9c, 0x2f, 0xfa, 0xb1, 0xb1, 0x7e, 0xb0, 0x0b, 0x6e, 0xb4, 0x6a, 0xe1, 0x98, 0xda, 0x99, 0x3f, 0x5e, 0xfe, 0x7c, 0x1d, 0xc2, 0x2d, 0x25, 0x04, 0x7c, 0x1e, 0xe5, 0x24, 0x65, 0x17, 0xe7, 0xf5, 0x75, 0x8f, 0x99, 0x6a, 0xbd, 0x83, 0xf1, 0x3d, 0xa2, 0x2c, 0x13, 0xdd, 0x20, 0x5e, 0xe1, 0x91, 0xb5, 0x5a, 0xfd, 0x48, 0x31, 0xef, 0x07, 0x8b, 0xb6, 0xea, 0x07, 0x3a, 0x62, 0x5b, 0xc9, 0x7c, 0x81, 0x29, 0x61, 0x60, 0xbb, 0xf2, 0x55, 0x9b, 0x27, 0x5c, 0xc3, 0x7c, 0xcf, 0x01, 0xb9, 0x1f, 0xd8, 0x7d, 0x4d, 0x99, 0xa3, 0x67, 0xaa, 0x99, 0x78, 0xda, 0xdd, 0x06, 0x89, 0xf8, 0xa6, };
13914 static const u8 ed25519_605_test_vectors_expected_sig[] = {
13915 	0x41, 0x5a, 0xdb, 0xb2, 0xf2, 0xb9, 0x84, 0x05, 0x77, 0xfd, 0x18, 0x41, 0xf9, 0xaa, 0xe2, 0x52, 0xaf, 0xe8, 0xf5, 0xa7, 0x22, 0x36, 0x01, 0x7d, 0x50, 0xdb, 0x22, 0xd2, 0x28, 0xcd, 0xee, 0x9f, 0x5b, 0x3e, 0x8f, 0xe9, 0xa1, 0x7a, 0x4d, 0x4e, 0x98, 0xb7, 0x34, 0x13, 0x81, 0xe8, 0xd8, 0x62, 0x5c, 0xdc, 0xea, 0x95, 0x6d, 0x25, 0x3b, 0x74, 0xe0, 0x2d, 0xac, 0xb8, 0x49, 0x20, 0xa0, 0x09, };
13916 static const ec_test_case ed25519_605_test_case = {
13917 	.name = "EDDSA25519-SHA512/wei25519 605",
13918 	.ec_str_p = &wei25519_str_params,
13919 	.priv_key = ed25519_605_test_vectors_priv_key,
13920 	.priv_key_len = sizeof(ed25519_605_test_vectors_priv_key),
13921 	.nn_random = NULL,
13922 	.hash_type = SHA512,
13923 	.msg = (const char *)ed25519_605_test_vectors_message,
13924 	.msglen = sizeof(ed25519_605_test_vectors_message),
13925 	.sig_type = EDDSA25519,
13926 	.exp_sig = ed25519_605_test_vectors_expected_sig,
13927 	.exp_siglen = sizeof(ed25519_605_test_vectors_expected_sig),
13928 	.adata = NULL,
13929 	.adata_len = 0
13930 };
13931 
13932 /************************************************/
13933 static const u8 ed25519_606_test_vectors_priv_key[] = {
13934 	0x78, 0x18, 0x8d, 0xf8, 0xc7, 0x54, 0x78, 0x56, 0x21, 0xe2, 0x7a, 0xe5, 0x8e, 0x10, 0x0d, 0x50, 0x80, 0xe1, 0x6e, 0x0a, 0x15, 0xe2, 0x77, 0x05, 0x1f, 0x95, 0xf0, 0x80, 0x90, 0x0e, 0xc0, 0xd3, };
13935 static const u8 ed25519_606_test_vectors_message[] = {
13936 	0xcf, 0x70, 0xcc, 0xa5, 0x7f, 0xeb, 0x1b, 0xee, 0xfe, 0x98, 0x5a, 0xd5, 0xaf, 0x9d, 0x43, 0x48, 0xd3, 0xa4, 0x6a, 0x63, 0xde, 0x10, 0x75, 0x38, 0x1f, 0xb3, 0x63, 0x9a, 0x04, 0x4f, 0xd6, 0xe6, 0x09, 0x1f, 0x5d, 0xb9, 0xc9, 0x4d, 0x39, 0xbe, 0x0f, 0x13, 0xad, 0xe6, 0xd9, 0xa0, 0x74, 0xe6, 0x7b, 0xa7, 0x06, 0xb3, 0xa8, 0x80, 0x62, 0x95, 0xf6, 0xb6, 0x54, 0x86, 0x57, 0x28, 0xc5, 0x8c, 0xa6, 0xe9, 0x41, 0x9d, 0x5d, 0x04, 0x3f, 0x21, 0x10, 0x81, 0x4b, 0xbf, 0x36, 0xfc, 0x40, 0x70, 0xe4, 0xd9, 0x45, 0x49, 0x65, 0xc2, 0x51, 0x20, 0x2c, 0xa3, 0x95, 0xef, 0xe3, 0xfd, 0xbd, 0x54, 0x4f, 0xeb, 0x18, 0x7e, 0x34, 0xca, 0x3c, 0x80, 0x79, 0x51, 0x79, 0x55, 0x2f, 0xce, 0x9a, 0xa8, 0x04, 0x43, 0x0e, 0x5b, 0x6c, 0x86, 0x85, 0x34, 0x1e, 0x91, 0xd5, 0x88, 0x9f, 0xbf, 0x3f, 0x98, 0x19, 0x04, 0x62, 0x0f, 0xfe, 0x70, 0x13, 0xf5, 0x3b, 0x93, 0x9e, 0x17, 0x44, 0x3d, 0x61, 0x4e, 0x7e, 0x6b, 0xb5, 0x7a, 0xd6, 0x74, 0xf3, 0xb4, 0xb0, 0x01, 0x63, 0x05, 0x26, 0xcf, 0x73, 0x02, 0xa7, 0xd0, 0xaf, 0xe7, 0xdc, 0x24, 0xd6, 0xda, 0xde, 0xf6, 0xfe, 0xba, 0x3f, 0x96, 0x97, 0x3a, 0xa5, 0xb8, 0xd6, 0x27, 0x52, 0x62, 0xe4, 0x30, 0xa8, 0x2f, 0x67, 0x86, 0x96, 0x97, 0x1a, 0x8b, 0x60, 0xe3, 0x8d, 0x3b, 0x2b, 0xcc, 0x17, 0x0d, 0x5b, 0xc2, 0x03, 0x02, 0xa3, 0x9c, 0x59, 0x6d, 0x27, 0xfe, 0xe3, 0x9e, 0x5d, 0xa5, 0xb1, 0x0e, 0xa9, 0xf3, 0x82, 0x29, 0x9e, 0x19, 0x81, 0x97, 0x17, 0xa7, 0x18, 0xd3, 0x7d, 0x15, 0x5f, 0x13, 0x92, 0x31, 0x82, 0xb5, 0xb7, 0xa1, 0xc5, 0x4c, 0xa1, 0x09, 0xb2, 0x2c, 0xa8, 0xe8, 0xb2, 0x6c, 0xa5, 0xca, 0x3f, 0x3b, 0x90, 0x62, 0x21, 0x94, 0x61, 0xba, 0xce, 0x97, 0xe8, 0x90, 0xc9, 0x4e, 0x41, 0xca, 0x3d, 0x84, 0x58, 0x7f, 0xbd, 0xf6, 0xe2, 0x40, 0xc3, 0x5c, 0xca, 0xb7, 0x1d, 0x58, 0x47, 0x7d, 0x28, 0x16, 0x8e, 0x93, 0x37, 0x26, 0x86, 0xd4, 0x2a, 0xad, 0x32, 0x4a, 0x3f, 0x16, 0xaf, 0xe0, 0xe9, 0xb8, 0x9e, 0xe2, 0x0e, 0x48, 0x5f, 0xe6, 0xc8, 0x64, 0xb5, 0x01, 0x3b, 0xa8, 0x83, 0x99, 0xee, 0xaa, 0x15, 0x98, 0x35, 0xa8, 0xb2, 0xbb, 0x2f, 0x25, 0xf5, 0x79, 0xca, 0x3b, 0xae, 0x67, 0x5c, 0x63, 0xda, 0x1b, 0x50, 0xd9, 0x9d, 0x4e, 0xd9, 0x78, 0x69, 0x2e, 0x56, 0x00, 0x23, 0x3f, 0x38, 0xab, 0x7e, 0x7a, 0x5a, 0xe0, 0xfb, 0xf8, 0xc0, 0xb6, 0x9c, 0xc3, 0x8b, 0xd3, 0x0e, 0xab, 0xd9, 0x77, 0xef, 0xa0, 0x5e, 0xe2, 0xc8, 0x35, 0x14, 0x30, 0x2b, 0xd4, 0x0c, 0x4b, 0xdc, 0xe7, 0xa4, 0x11, 0x0a, 0xfb, 0xb6, 0x57, 0x9c, 0x62, 0x0e, 0x97, 0xf8, 0xcf, 0x2e, 0x9b, 0xab, 0x2d, 0xcc, 0x7c, 0x33, 0xf1, 0x96, 0xe5, 0x7f, 0xe7, 0x61, 0xa0, 0x50, 0x12, 0x28, 0x94, 0xb7, 0xa7, 0x5a, 0x92, 0x95, 0x31, 0x99, 0x6d, 0xda, 0xad, 0x78, 0xde, 0x1d, 0x4d, 0x92, 0x4c, 0xd9, 0x3a, 0x61, 0xdf, 0x22, 0x77, 0x76, 0xbc, 0x1c, 0x39, 0xfb, 0xb8, 0xde, 0x1c, 0x44, 0x38, 0x86, 0x8b, 0x6a, 0x3a, 0x2c, 0xd9, 0x4c, 0x07, 0xb2, 0x9e, 0x3f, 0x6b, 0x23, 0xcc, 0x7e, 0x0b, 0x63, 0x68, 0x90, 0x09, 0xd9, 0xd0, 0xba, 0xe1, 0x60, 0x6b, 0xaf, 0xc7, 0xa8, 0x08, 0xf2, 0xd2, 0xfa, 0x25, 0x62, 0xb8, 0xdc, 0x09, 0x38, 0x42, 0xc0, 0x1f, 0xdb, 0x84, 0x0d, 0xa4, 0x86, 0x0a, 0xce, 0xd3, 0xfc, 0x52, 0x5c, 0xa3, 0x34, 0xed, 0xcf, 0x65, 0x94, 0x8b, 0xc4, 0x16, 0xf9, 0x8c, 0x45, 0x0f, 0x00, 0x12, 0xa6, 0x10, 0x7d, 0xd7, 0xf8, 0xed, 0xe4, 0x0e, 0x1c, 0x48, 0xc9, 0xe8, 0xa5, 0x65, 0xa8, 0x10, 0xb9, 0xcf, 0xd2, 0x03, 0x56, 0xdb, 0x19, 0xf1, 0xdb, 0xde, 0x59, 0x89, 0x21, 0x33, 0x2e, 0x0d, 0x81, 0x3f, 0x0c, 0xb8, 0x76, 0x84, 0x37, 0x03, 0x88, 0x77, 0x2f, 0xf3, 0xcb, 0xfc, 0xbf, 0xa2, 0x99, 0xc1, 0x98, 0xc9, 0x7b, 0xfb, 0x96, 0x17, 0x76, 0x8a, 0x05, 0x16, 0x1f, 0x41, 0x69, 0xff, 0x5d, 0xe5, 0xd9, 0xf4, 0x00, 0x62, 0x09, 0x0f, 0xb8, 0x82, 0x98, 0x4d, 0x9d, 0x5c, 0x7a, 0xa7, 0x8e, 0xdd, 0xcb, 0x96, 0x34, 0xe4, 0x66, 0xb8, 0x85, 0x3d, 0x51, 0x2b, 0x4a, 0x54, 0x6d, 0x74, 0x23, };
13937 static const u8 ed25519_606_test_vectors_expected_sig[] = {
13938 	0xb9, 0x41, 0x14, 0xed, 0xa4, 0x6c, 0xcf, 0xc2, 0x2a, 0x44, 0x71, 0xa6, 0x4d, 0x79, 0x08, 0x92, 0xe5, 0x9c, 0x5d, 0x50, 0x56, 0x18, 0xeb, 0x0e, 0x70, 0x13, 0x92, 0xc7, 0x09, 0x61, 0x3e, 0x2d, 0x50, 0x3a, 0x5c, 0x2b, 0x66, 0x60, 0x1e, 0x63, 0x6a, 0x3c, 0x1c, 0x7d, 0x49, 0xb1, 0xac, 0x79, 0x8d, 0x90, 0x89, 0xb0, 0xf9, 0xcc, 0xd0, 0x57, 0x9b, 0xb9, 0x06, 0x34, 0xd0, 0xbd, 0x75, 0x0e, };
13939 static const ec_test_case ed25519_606_test_case = {
13940 	.name = "EDDSA25519-SHA512/wei25519 606",
13941 	.ec_str_p = &wei25519_str_params,
13942 	.priv_key = ed25519_606_test_vectors_priv_key,
13943 	.priv_key_len = sizeof(ed25519_606_test_vectors_priv_key),
13944 	.nn_random = NULL,
13945 	.hash_type = SHA512,
13946 	.msg = (const char *)ed25519_606_test_vectors_message,
13947 	.msglen = sizeof(ed25519_606_test_vectors_message),
13948 	.sig_type = EDDSA25519,
13949 	.exp_sig = ed25519_606_test_vectors_expected_sig,
13950 	.exp_siglen = sizeof(ed25519_606_test_vectors_expected_sig),
13951 	.adata = NULL,
13952 	.adata_len = 0
13953 };
13954 
13955 /************************************************/
13956 static const u8 ed25519_607_test_vectors_priv_key[] = {
13957 	0x73, 0xcb, 0x02, 0xb0, 0xbf, 0x26, 0xa0, 0x15, 0xda, 0x1d, 0xc3, 0x01, 0xfc, 0x12, 0x5d, 0x7e, 0x6c, 0x30, 0xb6, 0x3c, 0x9e, 0x6e, 0xee, 0x9e, 0x06, 0x5d, 0x4e, 0x84, 0x71, 0x32, 0xc3, 0x25, };
13958 static const u8 ed25519_607_test_vectors_message[] = {
13959 	0x0a, 0x2b, 0x61, 0xba, 0x35, 0xe9, 0x6e, 0x58, 0x19, 0xb8, 0x8b, 0xfd, 0xb2, 0x8b, 0x7c, 0xe0, 0x2e, 0x64, 0xae, 0x9c, 0xf5, 0x72, 0xb2, 0x1f, 0x13, 0x55, 0x2c, 0x0d, 0xb1, 0x0f, 0x39, 0x60, 0xd4, 0x4b, 0xa3, 0x47, 0x2f, 0x43, 0xab, 0xc4, 0xe6, 0x29, 0x5b, 0xdf, 0x79, 0x0b, 0xd9, 0x33, 0xba, 0x39, 0x75, 0xfd, 0x44, 0x65, 0xfa, 0x3e, 0x2f, 0xe2, 0xdb, 0x02, 0xb6, 0x37, 0x77, 0x52, 0x22, 0x3d, 0xec, 0x98, 0xfc, 0xb2, 0x40, 0x4f, 0x3a, 0xba, 0x43, 0x26, 0x5a, 0x6f, 0xa7, 0x97, 0x6b, 0x6c, 0x6c, 0xb6, 0x86, 0x8b, 0x88, 0x1b, 0xd6, 0xf3, 0xd2, 0x5c, 0xd9, 0xd6, 0xf7, 0x0e, 0x51, 0x2f, 0x80, 0x89, 0xc8, 0xef, 0x26, 0xfd, 0x58, 0x24, 0x50, 0x53, 0x77, 0x9e, 0x59, 0xc4, 0x72, 0x5a, 0xef, 0xa2, 0x64, 0x67, 0xc9, 0xf5, 0x00, 0xe1, 0x7f, 0x3e, 0x15, 0x73, 0xf1, 0xa8, 0x55, 0xe9, 0xb8, 0xb2, 0x19, 0x25, 0xea, 0x05, 0x27, 0xf3, 0xce, 0x8d, 0x88, 0xfb, 0x54, 0xa4, 0x7a, 0xbe, 0xed, 0x14, 0xf3, 0x99, 0xcc, 0x2d, 0x9f, 0x1f, 0xe5, 0x46, 0x65, 0xfa, 0xe0, 0xa8, 0xf0, 0xc6, 0x88, 0x72, 0xa6, 0x00, 0x04, 0x6d, 0x1d, 0xc3, 0x63, 0x97, 0xd3, 0x10, 0xce, 0x39, 0x3f, 0xce, 0xaf, 0xe8, 0x7c, 0x17, 0xeb, 0xe1, 0x22, 0xfd, 0xb5, 0x43, 0xae, 0xa7, 0x10, 0x85, 0xba, 0xec, 0x98, 0x27, 0x3f, 0x41, 0xac, 0x96, 0x69, 0x8c, 0x15, 0x0c, 0xf9, 0x11, 0xd0, 0xe5, 0xde, 0x23, 0x92, 0xd8, 0x48, 0x41, 0xd0, 0x12, 0x76, 0xae, 0xfb, 0xfe, 0x99, 0x95, 0xe1, 0x0a, 0x6d, 0x46, 0xef, 0xdc, 0x26, 0x78, 0xd4, 0x56, 0xc9, 0xf3, 0x6b, 0x2e, 0x10, 0x11, 0x4d, 0x11, 0x87, 0xe7, 0xac, 0xa7, 0x39, 0x03, 0x7e, 0xa5, 0x1f, 0x85, 0xfd, 0x62, 0xa2, 0x94, 0x29, 0xba, 0x52, 0x9c, 0xdd, 0x8a, 0xd9, 0x13, 0x47, 0x49, 0x74, 0x87, 0xed, 0x7e, 0x87, 0x09, 0xd4, 0x77, 0x6e, 0xf6, 0x86, 0x70, 0x79, 0x2d, 0x06, 0x15, 0xbc, 0x96, 0xda, 0x51, 0x78, 0xd6, 0x06, 0xdb, 0x63, 0xe4, 0xe5, 0xcb, 0x17, 0x2a, 0xcf, 0xbc, 0x1c, 0xbe, 0x20, 0x26, 0x93, 0x50, 0xf1, 0xb6, 0x05, 0xf3, 0x5d, 0xcd, 0x47, 0x91, 0x35, 0xbd, 0x30, 0xfb, 0x4b, 0x5a, 0x39, 0x17, 0x6c, 0xff, 0x74, 0x4d, 0xdb, 0xb3, 0x06, 0xc9, 0xe7, 0xb4, 0x16, 0x7d, 0xe0, 0x37, 0x9a, 0x61, 0x66, 0xbe, 0x5a, 0xaa, 0x74, 0xd7, 0x15, 0x7f, 0xac, 0x95, 0x7d, 0x88, 0xdc, 0x57, 0x59, 0x7c, 0xfe, 0xf2, 0x3e, 0xb5, 0x10, 0x8b, 0x3c, 0xe5, 0x3f, 0xc6, 0x32, 0xda, 0xd1, 0xb9, 0x72, 0xa2, 0x9d, 0xa5, 0xde, 0x32, 0xd2, 0x0d, 0x8e, 0xce, 0xde, 0x67, 0xff, 0x00, 0xda, 0x4a, 0x08, 0xa0, 0xcc, 0x1a, 0x98, 0xbe, 0xe7, 0xa9, 0x4e, 0x3c, 0xb3, 0x2f, 0xee, 0x94, 0xae, 0x25, 0xa4, 0x13, 0x54, 0x47, 0x02, 0xc3, 0x7b, 0x3e, 0x17, 0x78, 0xa0, 0x70, 0xcd, 0xd4, 0x84, 0x0b, 0xd3, 0x9f, 0x5f, 0x45, 0x79, 0x51, 0x92, 0xa8, 0x67, 0x86, 0x38, 0x76, 0xed, 0x0d, 0x13, 0x0d, 0x46, 0xe2, 0x91, 0x39, 0x35, 0x08, 0x28, 0x09, 0xf7, 0xe1, 0x5a, 0x49, 0x67, 0x10, 0xf2, 0x55, 0xd7, 0x83, 0xda, 0x3d, 0x01, 0x6a, 0x65, 0x4c, 0x15, 0xff, 0x5d, 0xf9, 0x07, 0xa3, 0xcc, 0xaf, 0x37, 0xcf, 0xe1, 0x1c, 0x8c, 0x3d, 0x49, 0x65, 0x07, 0xd6, 0x76, 0x0c, 0x05, 0x38, 0x20, 0xf0, 0xf5, 0x94, 0xc3, 0xd0, 0x1c, 0xa2, 0x69, 0x17, 0x8a, 0xca, 0x52, 0x5a, 0xb2, 0x82, 0x1e, 0xf5, 0x5f, 0x92, 0xd8, 0x5f, 0xe6, 0x85, 0xea, 0x34, 0x47, 0x2e, 0xd1, 0x39, 0x81, 0x71, 0x06, 0x4d, 0x74, 0xa4, 0x22, 0xec, 0x91, 0xd1, 0xa6, 0x70, 0x61, 0x8f, 0xc9, 0xf3, 0x24, 0x24, 0xbc, 0xb1, 0x1a, 0x77, 0xf6, 0xfb, 0x4e, 0x2f, 0xef, 0xd2, 0xc4, 0xe8, 0xa7, 0x3c, 0x45, 0x28, 0x86, 0xe9, 0x31, 0x66, 0x4d, 0x1a, 0x83, 0xbd, 0x92, 0x73, 0x29, 0xc0, 0x4d, 0x25, 0x0b, 0x83, 0x52, 0x1d, 0x7d, 0xc1, 0x3c, 0x91, 0xce, 0xe1, 0xec, 0x05, 0x0e, 0x11, 0xd4, 0x2a, 0x4b, 0x0c, 0x8c, 0x06, 0x9b, 0x61, 0xc4, 0x42, 0x2d, 0x3a, 0x49, 0xc0, 0x7e, 0xff, 0x29, 0x05, 0xb7, 0xbc, 0x7f, 0x4a, 0x5b, 0x43, 0xe6, 0xb0, 0xd6, 0x1d, 0xfb, 0x50, 0xe4, 0xee, 0xa2, 0xe9, 0x0d, 0x29, 0x8a, 0x78, 0x1d, 0x05, };
13960 static const u8 ed25519_607_test_vectors_expected_sig[] = {
13961 	0x1a, 0x5d, 0xd4, 0xc8, 0x91, 0xc8, 0xe1, 0x32, 0x57, 0x01, 0x87, 0xc2, 0x3b, 0x9a, 0x1e, 0x4b, 0x26, 0xf0, 0x54, 0x60, 0xe8, 0x75, 0x67, 0x38, 0x19, 0x39, 0x6d, 0xf5, 0x61, 0xc8, 0xaf, 0x0e, 0x48, 0x33, 0x3b, 0x62, 0xc7, 0x77, 0x29, 0xd4, 0x9f, 0xc4, 0x0e, 0x17, 0x4a, 0x7f, 0x3c, 0x21, 0xf8, 0x5e, 0xf4, 0xd3, 0x39, 0xce, 0xb8, 0x0b, 0xd2, 0xe0, 0x37, 0xd8, 0x03, 0xaf, 0x56, 0x0e, };
13962 static const ec_test_case ed25519_607_test_case = {
13963 	.name = "EDDSA25519-SHA512/wei25519 607",
13964 	.ec_str_p = &wei25519_str_params,
13965 	.priv_key = ed25519_607_test_vectors_priv_key,
13966 	.priv_key_len = sizeof(ed25519_607_test_vectors_priv_key),
13967 	.nn_random = NULL,
13968 	.hash_type = SHA512,
13969 	.msg = (const char *)ed25519_607_test_vectors_message,
13970 	.msglen = sizeof(ed25519_607_test_vectors_message),
13971 	.sig_type = EDDSA25519,
13972 	.exp_sig = ed25519_607_test_vectors_expected_sig,
13973 	.exp_siglen = sizeof(ed25519_607_test_vectors_expected_sig),
13974 	.adata = NULL,
13975 	.adata_len = 0
13976 };
13977 
13978 /************************************************/
13979 static const u8 ed25519_608_test_vectors_priv_key[] = {
13980 	0xdb, 0x05, 0x60, 0x63, 0x56, 0xba, 0xcf, 0x23, 0xaf, 0xf6, 0xcd, 0xdd, 0x42, 0xb2, 0xc6, 0x94, 0x35, 0x2b, 0x5a, 0x0f, 0xec, 0x56, 0x0a, 0xff, 0x54, 0xd9, 0xbd, 0x97, 0x10, 0xef, 0xe0, 0x6a, };
13981 static const u8 ed25519_608_test_vectors_message[] = {
13982 	0x1b, 0xc9, 0xc2, 0x83, 0x3f, 0x37, 0xcd, 0xf1, 0x35, 0x6f, 0xad, 0x16, 0x67, 0x68, 0x64, 0x27, 0x17, 0x70, 0x1b, 0x38, 0xa0, 0xab, 0x0c, 0x2f, 0x58, 0x1a, 0x26, 0xd2, 0x22, 0xd6, 0x5c, 0xce, 0xe4, 0xbf, 0x0f, 0x6d, 0xfe, 0x64, 0xd3, 0x3b, 0xc0, 0x23, 0x9f, 0x71, 0xd4, 0xb8, 0x26, 0x44, 0xb0, 0x16, 0x25, 0xa1, 0xa3, 0x5f, 0xe7, 0x98, 0x67, 0x62, 0x39, 0xe0, 0xca, 0x77, 0x9e, 0xf2, 0x31, 0x38, 0xee, 0xbe, 0x3b, 0xd1, 0x9d, 0xe2, 0xd8, 0xf7, 0xc1, 0x5b, 0x4d, 0x96, 0xf1, 0x3e, 0x51, 0xbc, 0x63, 0x3b, 0xea, 0x5d, 0x61, 0x22, 0x5b, 0xca, 0x1d, 0x63, 0x39, 0xba, 0x53, 0xe8, 0x1f, 0x7d, 0x8d, 0x24, 0xc5, 0xd6, 0x0f, 0x04, 0xce, 0x8c, 0x72, 0x67, 0x61, 0xd2, 0x64, 0x58, 0x4f, 0x1c, 0x7e, 0x5b, 0x5b, 0x69, 0x92, 0x45, 0x6c, 0x1c, 0x76, 0x89, 0x2d, 0x63, 0x52, 0x11, 0x1e, 0x3b, 0x92, 0x6f, 0xe0, 0x25, 0xc0, 0x00, 0x9d, 0xb6, 0x7c, 0xe0, 0xdd, 0xc7, 0xf7, 0x64, 0xe0, 0xc9, 0xad, 0xb0, 0x48, 0x1b, 0xc2, 0x79, 0x54, 0x84, 0xd9, 0x63, 0x73, 0xa9, 0x62, 0xa7, 0xb7, 0x4a, 0x55, 0x96, 0xf5, 0x27, 0xa7, 0x34, 0x76, 0x49, 0x8c, 0x78, 0x23, 0xdf, 0xfa, 0x6c, 0x85, 0x43, 0xb0, 0x79, 0x71, 0xb5, 0xaa, 0x27, 0x1c, 0x12, 0x25, 0x5e, 0x09, 0x18, 0xdd, 0x73, 0xf5, 0x0c, 0x30, 0xc9, 0xa8, 0x5a, 0xc7, 0xc2, 0x99, 0x3d, 0xd6, 0x55, 0xda, 0x59, 0x43, 0x12, 0x63, 0xf5, 0x91, 0x4b, 0xe7, 0x06, 0x37, 0x4b, 0xe9, 0xc0, 0x75, 0x85, 0xc2, 0x87, 0x13, 0x28, 0xb4, 0xdb, 0xc3, 0x94, 0x01, 0xc9, 0x57, 0x07, 0x38, 0x7e, 0x6e, 0x06, 0x9d, 0x44, 0xb9, 0xd8, 0xfb, 0x05, 0x8f, 0x22, 0xe3, 0x15, 0xaa, 0x0d, 0x5b, 0x4f, 0x11, 0x68, 0xfc, 0x10, 0x79, 0x62, 0xb0, 0x64, 0xf7, 0xd8, 0x45, 0xaf, 0x8e, 0x21, 0x31, 0x95, 0x1d, 0x1c, 0xd6, 0x6d, 0xc8, 0x4d, 0xba, 0x46, 0xd2, 0x00, 0xaf, 0x4f, 0x4c, 0x5f, 0x51, 0x22, 0x1b, 0xc9, 0xb2, 0x19, 0x69, 0x42, 0xf8, 0xb4, 0x0e, 0x7d, 0xdb, 0xc9, 0xae, 0xb3, 0xd9, 0xaf, 0xc0, 0x71, 0x25, 0x95, 0x13, 0x13, 0x5a, 0x01, 0x6f, 0x28, 0x66, 0x09, 0x9f, 0xa1, 0x0f, 0x4c, 0x3b, 0x73, 0x50, 0x0b, 0xd5, 0x5c, 0x47, 0x7b, 0x24, 0x15, 0xe1, 0x0a, 0x27, 0x9b, 0xa1, 0x10, 0xd2, 0x94, 0xf3, 0xdd, 0x18, 0x42, 0x17, 0x7d, 0x0b, 0x4b, 0xfb, 0x17, 0x34, 0xdd, 0x0c, 0xcb, 0x7e, 0x39, 0x4b, 0x43, 0xd1, 0x6f, 0x0b, 0x75, 0x48, 0x36, 0x22, 0x80, 0xf4, 0x34, 0x76, 0x4d, 0xa5, 0x7f, 0x19, 0xed, 0x3e, 0x30, 0x2e, 0x53, 0x70, 0xfb, 0xa4, 0x96, 0x64, 0xc2, 0x30, 0x05, 0x74, 0x33, 0xcc, 0x64, 0x7e, 0xb2, 0x7c, 0xd2, 0xc7, 0xc1, 0x8c, 0x7d, 0x66, 0x90, 0x6f, 0x08, 0x82, 0x46, 0xc2, 0x2f, 0x7f, 0x79, 0x03, 0x99, 0xde, 0xb4, 0xc5, 0xfb, 0xb9, 0x06, 0x18, 0x17, 0x69, 0xbe, 0xf5, 0xaf, 0xbe, 0x8a, 0xd1, 0xf5, 0xde, 0x55, 0xbe, 0x58, 0x8f, 0x52, 0xf6, 0x9c, 0x54, 0xd4, 0xef, 0x5a, 0x96, 0x9a, 0x0d, 0x99, 0x5c, 0x27, 0x40, 0x7b, 0x23, 0xed, 0xd9, 0x24, 0x3d, 0x24, 0x99, 0xfd, 0xf2, 0x94, 0x73, 0xb1, 0x95, 0x5c, 0x84, 0xb3, 0xf7, 0xcb, 0xdc, 0xd8, 0x1b, 0x76, 0x56, 0xec, 0x0b, 0xe9, 0xe0, 0xfd, 0xb3, 0x38, 0x13, 0x56, 0x96, 0x0f, 0xd0, 0xca, 0x70, 0xe7, 0xea, 0x74, 0xb6, 0x46, 0xfc, 0xd3, 0x13, 0x94, 0x8e, 0x6d, 0xdb, 0x47, 0x60, 0x94, 0x76, 0xfb, 0x6f, 0xa4, 0x84, 0x2f, 0xa7, 0x88, 0xa0, 0xd5, 0x7b, 0xe3, 0xb0, 0xa6, 0xca, 0x18, 0x19, 0xf7, 0x16, 0x14, 0x76, 0x00, 0x43, 0xec, 0x49, 0x04, 0x88, 0x19, 0x39, 0x96, 0x8a, 0x43, 0xb5, 0xd1, 0x92, 0x8f, 0x84, 0xa5, 0x91, 0x90, 0x93, 0xbc, 0x38, 0x41, 0x58, 0x81, 0x71, 0xa9, 0xcd, 0x39, 0x0f, 0x8f, 0xcd, 0x61, 0x53, 0x8b, 0x54, 0xe6, 0xef, 0x99, 0x77, 0x05, 0x73, 0xe1, 0x98, 0x6d, 0x15, 0x0f, 0xa9, 0x6b, 0x7a, 0x07, 0xe1, 0xd1, 0x94, 0xaf, 0x1c, 0x0b, 0x40, 0x55, 0x00, 0xac, 0xb3, 0xd1, 0x0e, 0x3b, 0xe6, 0x47, 0xc8, 0x98, 0x62, 0x00, 0x6f, 0xa7, 0x85, 0x83, 0xe7, 0x61, 0x66, 0x84, 0x29, 0x20, 0x16, 0x0e, 0xb5, 0x7f, 0x0b, 0x2a, 0x6e, 0xdf, 0x19, 0x3c, 0x44, 0xc5, 0xee, 0xac, 0xf4, };
13983 static const u8 ed25519_608_test_vectors_expected_sig[] = {
13984 	0x53, 0x09, 0x9b, 0x76, 0x6a, 0xdf, 0x29, 0x44, 0xb6, 0x82, 0x13, 0x74, 0x84, 0x2c, 0x25, 0xd6, 0xe6, 0x7b, 0x0c, 0xcd, 0xe9, 0xc6, 0x37, 0xfe, 0xcb, 0x11, 0xb8, 0xb8, 0xb0, 0x72, 0x03, 0xe3, 0x07, 0x57, 0x32, 0x80, 0x5f, 0x4f, 0x14, 0xae, 0xae, 0x73, 0xbd, 0x62, 0xe3, 0x08, 0xb5, 0x88, 0x7d, 0x68, 0x9e, 0x29, 0xcd, 0x89, 0xb2, 0x3a, 0x47, 0x69, 0x43, 0x11, 0x07, 0x17, 0xb1, 0x00, };
13985 static const ec_test_case ed25519_608_test_case = {
13986 	.name = "EDDSA25519-SHA512/wei25519 608",
13987 	.ec_str_p = &wei25519_str_params,
13988 	.priv_key = ed25519_608_test_vectors_priv_key,
13989 	.priv_key_len = sizeof(ed25519_608_test_vectors_priv_key),
13990 	.nn_random = NULL,
13991 	.hash_type = SHA512,
13992 	.msg = (const char *)ed25519_608_test_vectors_message,
13993 	.msglen = sizeof(ed25519_608_test_vectors_message),
13994 	.sig_type = EDDSA25519,
13995 	.exp_sig = ed25519_608_test_vectors_expected_sig,
13996 	.exp_siglen = sizeof(ed25519_608_test_vectors_expected_sig),
13997 	.adata = NULL,
13998 	.adata_len = 0
13999 };
14000 
14001 /************************************************/
14002 static const u8 ed25519_609_test_vectors_priv_key[] = {
14003 	0x1d, 0x13, 0x9b, 0x1a, 0xd0, 0xc3, 0xaf, 0x1d, 0x5b, 0x8b, 0xe3, 0x1a, 0x4e, 0xcb, 0x87, 0x8e, 0xc6, 0x67, 0x73, 0x6f, 0x7d, 0x4f, 0xa8, 0x36, 0x3a, 0x98, 0x09, 0xb6, 0xd1, 0xda, 0xbf, 0xe3, };
14004 static const u8 ed25519_609_test_vectors_message[] = {
14005 	0x8d, 0xf2, 0xd2, 0xdf, 0x9b, 0x98, 0x4d, 0xa8, 0x44, 0x33, 0x48, 0x6a, 0x81, 0x3c, 0x98, 0xc5, 0x97, 0x3a, 0x69, 0x6c, 0x11, 0x62, 0x46, 0x10, 0xb2, 0x3a, 0xa4, 0x38, 0x08, 0x34, 0x64, 0xf6, 0x5a, 0x76, 0x79, 0x66, 0x15, 0xb7, 0x28, 0xc2, 0xed, 0x4e, 0x60, 0x71, 0x58, 0x55, 0xaf, 0xc2, 0x39, 0x45, 0x0d, 0x5b, 0xc0, 0x91, 0x1f, 0xf2, 0xa8, 0x52, 0x30, 0x20, 0x5c, 0x6f, 0x13, 0x49, 0xba, 0x5b, 0xd8, 0x7e, 0xa6, 0xf7, 0x20, 0xdb, 0x6b, 0xa7, 0x0b, 0x77, 0x42, 0x17, 0x88, 0xe0, 0xc6, 0x54, 0xae, 0xbc, 0x23, 0x07, 0x4c, 0x5f, 0x41, 0xd2, 0x29, 0x07, 0x72, 0x14, 0x0d, 0x98, 0x1a, 0x6b, 0xc4, 0xfe, 0x70, 0x9a, 0x26, 0x8e, 0x64, 0x17, 0x2a, 0x02, 0x6b, 0x27, 0x01, 0x18, 0xb4, 0xdb, 0x51, 0xab, 0x6a, 0x13, 0xc9, 0x9b, 0x06, 0x31, 0x86, 0xd8, 0xd5, 0xb3, 0x38, 0xe9, 0x77, 0xed, 0xdc, 0x6b, 0xb5, 0xfd, 0x7d, 0xd5, 0x7d, 0x98, 0x45, 0xa3, 0xc3, 0xfe, 0x76, 0x17, 0x7d, 0x57, 0x38, 0xdc, 0xa1, 0x6a, 0x8f, 0x91, 0x02, 0x85, 0x75, 0x00, 0x17, 0x4f, 0x23, 0xff, 0x4c, 0x3b, 0xf3, 0xc8, 0x53, 0x6f, 0x11, 0x58, 0x0e, 0xf8, 0x51, 0x4a, 0x40, 0x9f, 0x5b, 0xbc, 0x9c, 0x02, 0x96, 0xf1, 0x2e, 0x34, 0x78, 0xd4, 0x08, 0x7f, 0x95, 0xef, 0xaa, 0x6c, 0x63, 0x60, 0x71, 0xd2, 0x11, 0x57, 0xbf, 0x11, 0x77, 0x4b, 0xbf, 0xe7, 0x69, 0x33, 0x06, 0xca, 0x72, 0x13, 0xda, 0x47, 0x13, 0xeb, 0xaa, 0xab, 0x35, 0x54, 0xed, 0xf0, 0x80, 0x11, 0xa5, 0xff, 0x73, 0xda, 0x12, 0x03, 0x75, 0xae, 0xd1, 0x96, 0x28, 0x67, 0x0f, 0x28, 0xab, 0x24, 0xb6, 0xf5, 0xd5, 0xa1, 0xd5, 0x70, 0x48, 0x0f, 0x65, 0xd3, 0xc1, 0x52, 0xbf, 0xf1, 0xb4, 0x7b, 0xf0, 0x66, 0x69, 0x29, 0xcb, 0x7c, 0x99, 0xd9, 0x03, 0x3f, 0xaa, 0xe8, 0x53, 0x4f, 0xc3, 0x5d, 0xa7, 0x30, 0xb8, 0x11, 0xeb, 0xcc, 0x25, 0xae, 0x10, 0xa1, 0x95, 0xaa, 0xb1, 0x2c, 0x32, 0x6a, 0xa4, 0x5b, 0xf8, 0x05, 0xc6, 0x2d, 0xd4, 0xcd, 0x5f, 0x86, 0x86, 0x23, 0xc0, 0x4a, 0x8e, 0x1c, 0x6a, 0xa7, 0x2f, 0x1e, 0xa4, 0x40, 0x0c, 0x60, 0x86, 0x7d, 0xff, 0x62, 0x2f, 0x31, 0x64, 0x34, 0xf1, 0xec, 0x89, 0x50, 0x3c, 0x6f, 0x9f, 0x65, 0xc1, 0x37, 0xb4, 0x94, 0x4c, 0xbc, 0xb3, 0x5f, 0x08, 0x6c, 0x74, 0xcc, 0xea, 0xfa, 0x22, 0x42, 0xac, 0xca, 0x6f, 0xfe, 0x61, 0x1c, 0x4b, 0x55, 0x87, 0xf5, 0xb7, 0x5f, 0xfa, 0xd3, 0x49, 0xf0, 0x0b, 0xf9, 0x6e, 0x4a, 0x58, 0x0a, 0x87, 0x5b, 0x92, 0x65, 0x40, 0x69, 0xb6, 0x2e, 0xea, 0xc0, 0xbf, 0x78, 0xe5, 0xae, 0xdd, 0x71, 0x86, 0x9e, 0xe0, 0x5b, 0x9a, 0x94, 0xe1, 0xc9, 0x8e, 0x35, 0xa9, 0x78, 0x00, 0xa4, 0xa2, 0x12, 0x20, 0xb0, 0x39, 0xcd, 0x5e, 0xbb, 0xb7, 0x56, 0xd4, 0x0b, 0x40, 0x42, 0xe2, 0xc8, 0x4a, 0x2a, 0xe9, 0x81, 0x82, 0x51, 0x1d, 0xae, 0x8e, 0xd3, 0xb8, 0x9f, 0x4f, 0xa0, 0x0f, 0xb8, 0xed, 0x94, 0x63, 0x16, 0x45, 0x97, 0x10, 0x05, 0x2a, 0xd4, 0xc0, 0x2f, 0x63, 0xdf, 0x05, 0xd3, 0xbb, 0x1a, 0xce, 0x33, 0x67, 0x21, 0x51, 0xbd, 0xf5, 0xda, 0xb4, 0x6c, 0x7b, 0x58, 0x3d, 0xb3, 0x73, 0x89, 0x9d, 0x4f, 0x03, 0x5b, 0x6c, 0x11, 0x12, 0x58, 0xb4, 0xe5, 0xa9, 0xe7, 0x07, 0xa1, 0x1d, 0x21, 0x5e, 0x44, 0xe6, 0x8e, 0xf1, 0xa6, 0xf0, 0x53, 0x80, 0x9a, 0xa5, 0x1b, 0xd9, 0x02, 0xe1, 0x3c, 0xa9, 0x9c, 0x1b, 0x1c, 0xec, 0xc8, 0x3b, 0x9c, 0x23, 0x5c, 0x71, 0x0e, 0x79, 0x7d, 0x2b, 0x1a, 0x24, 0x9b, 0x2e, 0xa0, 0x79, 0xb5, 0xc1, 0x67, 0x4e, 0xd7, 0x16, 0x9f, 0x1b, 0x6e, 0x67, 0xf1, 0xac, 0x77, 0xf8, 0x6b, 0x74, 0x32, 0x98, 0x96, 0x93, 0x35, 0xa7, 0x72, 0x44, 0x0f, 0x7f, 0xbf, 0xa7, 0x25, 0x13, 0x50, 0x0d, 0x84, 0x16, 0x61, 0x14, 0xa8, 0xfd, 0x54, 0x13, 0x94, 0x64, 0xd4, 0x2b, 0x99, 0x55, 0x30, 0xd3, 0x23, 0x70, 0xb6, 0x9b, 0xff, 0xc7, 0x58, 0x9d, 0x6d, 0xcc, 0x97, 0xe0, 0xbf, 0x17, 0x85, 0x6c, 0xc3, 0xbf, 0x41, 0x64, 0xdb, 0xec, 0xcc, 0x8a, 0x88, 0x1d, 0x41, 0x4d, 0x6a, 0x62, 0x02, 0x92, 0x76, 0xc5, 0xf8, 0x13, 0x7c, 0x0b, 0x3c, 0x68, 0xbc, 0x8f, 0x4b, 0xd4, 0xe7, 0xcf, 0xf6, 0x5e, 0xf2, };
14006 static const u8 ed25519_609_test_vectors_expected_sig[] = {
14007 	0xdd, 0x64, 0x5e, 0x51, 0xed, 0xab, 0x04, 0xdb, 0x31, 0xe3, 0x31, 0x72, 0xcf, 0x27, 0xac, 0xee, 0xed, 0xcc, 0x04, 0x63, 0xa9, 0x63, 0x91, 0x4a, 0x0e, 0xac, 0x8e, 0xfd, 0x5a, 0x34, 0x34, 0x1f, 0x6b, 0xbc, 0x52, 0xe0, 0x42, 0xba, 0xaf, 0x3b, 0x40, 0xc8, 0x9a, 0x57, 0xef, 0xb6, 0x45, 0x74, 0xe6, 0x96, 0x77, 0xfc, 0xe9, 0x55, 0x24, 0x6c, 0x1f, 0xc0, 0xf2, 0x69, 0xef, 0x81, 0x90, 0x00, };
14008 static const ec_test_case ed25519_609_test_case = {
14009 	.name = "EDDSA25519-SHA512/wei25519 609",
14010 	.ec_str_p = &wei25519_str_params,
14011 	.priv_key = ed25519_609_test_vectors_priv_key,
14012 	.priv_key_len = sizeof(ed25519_609_test_vectors_priv_key),
14013 	.nn_random = NULL,
14014 	.hash_type = SHA512,
14015 	.msg = (const char *)ed25519_609_test_vectors_message,
14016 	.msglen = sizeof(ed25519_609_test_vectors_message),
14017 	.sig_type = EDDSA25519,
14018 	.exp_sig = ed25519_609_test_vectors_expected_sig,
14019 	.exp_siglen = sizeof(ed25519_609_test_vectors_expected_sig),
14020 	.adata = NULL,
14021 	.adata_len = 0
14022 };
14023 
14024 /************************************************/
14025 static const u8 ed25519_610_test_vectors_priv_key[] = {
14026 	0x4d, 0x22, 0xe3, 0x31, 0xe0, 0xcf, 0x6f, 0x6a, 0x27, 0x2d, 0xb4, 0xd2, 0x06, 0x87, 0xff, 0xb0, 0x59, 0xf1, 0x22, 0x5d, 0x81, 0xe4, 0x11, 0x23, 0xb8, 0xc8, 0x9b, 0x07, 0x4d, 0xe7, 0x6a, 0x3b, };
14027 static const u8 ed25519_610_test_vectors_message[] = {
14028 	0x9c, 0x8e, 0x3f, 0x5b, 0x4d, 0x70, 0x40, 0x30, 0xe1, 0xba, 0x71, 0xf0, 0x2e, 0xfc, 0x4b, 0x87, 0xd6, 0xff, 0xfb, 0x55, 0xbc, 0x3d, 0x8d, 0x03, 0x81, 0x8f, 0x91, 0x56, 0x24, 0xfc, 0xf7, 0x01, 0xc5, 0x4a, 0xdf, 0xaf, 0xa2, 0xb6, 0x94, 0xb8, 0x77, 0x51, 0xcb, 0x9f, 0x69, 0x91, 0x8c, 0x0f, 0x05, 0x0f, 0x4c, 0x10, 0x5d, 0x5c, 0xcb, 0x40, 0x10, 0x0b, 0x28, 0xdf, 0xd4, 0xf4, 0x11, 0xd5, 0x91, 0xc1, 0x20, 0x19, 0x17, 0x6a, 0xc2, 0x01, 0x6b, 0xfb, 0xfd, 0xf0, 0xdd, 0xf1, 0x1d, 0xb8, 0xa7, 0xe3, 0x9a, 0xa7, 0xb9, 0xe2, 0x16, 0xf6, 0x67, 0xc0, 0xa1, 0x5f, 0xb9, 0x77, 0xea, 0xa9, 0xba, 0x3b, 0xc4, 0x55, 0xcc, 0x58, 0x94, 0x5f, 0x3e, 0x94, 0x4b, 0x8a, 0xc2, 0xfb, 0xf4, 0xd2, 0x4f, 0xe7, 0xe1, 0xe6, 0x19, 0xcd, 0xbe, 0xee, 0x3e, 0x5e, 0x12, 0xa9, 0xa5, 0x27, 0xd2, 0x8f, 0x5f, 0xd7, 0xcf, 0xd9, 0x22, 0x0f, 0x13, 0x08, 0xd8, 0x97, 0xb6, 0xd4, 0x31, 0x4a, 0x5a, 0x01, 0x87, 0x86, 0x4a, 0x2d, 0x62, 0x1c, 0xf1, 0xb2, 0x84, 0x42, 0x61, 0x24, 0x7b, 0xf5, 0x20, 0xba, 0xfa, 0x9b, 0xf2, 0x26, 0xe1, 0x15, 0x68, 0x1e, 0xcd, 0x77, 0x42, 0x79, 0x80, 0xcd, 0x12, 0xb0, 0x8c, 0x35, 0x9c, 0xec, 0xd1, 0xde, 0x3f, 0x55, 0x45, 0xf8, 0x07, 0xf8, 0x1e, 0xd7, 0x63, 0x02, 0xff, 0xd6, 0x47, 0x7f, 0x89, 0xb9, 0x58, 0xcd, 0xf1, 0x29, 0x54, 0xcf, 0x70, 0xc1, 0x42, 0x53, 0x29, 0x93, 0x83, 0x16, 0x47, 0xea, 0xca, 0xb0, 0xb4, 0x80, 0x7b, 0xfd, 0xad, 0xb4, 0x38, 0x9d, 0x7d, 0xff, 0x2c, 0x4e, 0xf0, 0xef, 0x5a, 0x5c, 0x61, 0xd0, 0xdf, 0x76, 0x2e, 0x2e, 0x90, 0x80, 0xa7, 0x18, 0x1c, 0xec, 0xd0, 0x6a, 0x53, 0x19, 0x9f, 0x0d, 0xfe, 0xf7, 0x02, 0x62, 0x7a, 0xde, 0xcf, 0x5f, 0xcd, 0x9b, 0x3e, 0x68, 0xc7, 0x23, 0x33, 0x16, 0x17, 0x27, 0xf8, 0x71, 0xc7, 0xd1, 0xc4, 0x30, 0x51, 0xff, 0x1c, 0x92, 0x1f, 0xd5, 0x3b, 0x64, 0x22, 0x38, 0xb9, 0x78, 0x80, 0xd6, 0x4e, 0x25, 0xfa, 0xc5, 0x12, 0xab, 0x95, 0x4b, 0xed, 0xbc, 0xa5, 0x40, 0xf5, 0xb2, 0x00, 0x91, 0xec, 0x72, 0xe6, 0x7f, 0x88, 0x77, 0x0a, 0xfc, 0x32, 0xf2, 0x12, 0x5c, 0xa0, 0xda, 0x4f, 0xe8, 0x7b, 0x56, 0xaa, 0xc9, 0x17, 0x7f, 0x1f, 0x4f, 0x67, 0xc8, 0x51, 0x72, 0x5c, 0x5e, 0x8a, 0xfe, 0x64, 0xf6, 0x64, 0x79, 0x98, 0x33, 0xfd, 0x79, 0x10, 0x0b, 0x77, 0xea, 0xd2, 0x58, 0x38, 0x87, 0x9f, 0xff, 0x47, 0x47, 0xaa, 0x0d, 0x56, 0x72, 0xec, 0x0a, 0x94, 0x34, 0x81, 0x34, 0xbd, 0xbd, 0x4b, 0xb3, 0x9b, 0x0c, 0x67, 0xa0, 0xcd, 0x30, 0x60, 0x2e, 0xdf, 0x4f, 0xec, 0x6f, 0x7a, 0xf0, 0xcc, 0x2b, 0xda, 0xe1, 0x26, 0xce, 0xa8, 0x42, 0xdf, 0xaa, 0x43, 0x91, 0xdc, 0x5d, 0xde, 0xa9, 0x38, 0xe1, 0x79, 0x21, 0x68, 0x24, 0x0c, 0x2d, 0x8b, 0x25, 0x35, 0x2f, 0x9f, 0x3a, 0x64, 0x42, 0x35, 0xce, 0x36, 0xfe, 0xfe, 0xb6, 0x99, 0x2a, 0xd8, 0x8e, 0x28, 0x7a, 0xd2, 0xd8, 0x5b, 0xd8, 0x50, 0x39, 0x6f, 0xc2, 0xe5, 0x17, 0xa1, 0x52, 0x09, 0xf5, 0x92, 0x0a, 0xc9, 0x8c, 0x53, 0x2b, 0x1f, 0x4d, 0x86, 0x9b, 0xeb, 0x08, 0xbb, 0x03, 0xcf, 0x7c, 0x91, 0xaf, 0x3f, 0xfc, 0xed, 0x68, 0xd5, 0xfb, 0xfe, 0xf8, 0x6f, 0xf9, 0x4e, 0xce, 0x6e, 0x2e, 0xad, 0x34, 0x84, 0xce, 0x08, 0x0d, 0xb1, 0x7b, 0xbe, 0x40, 0xf1, 0xdb, 0x43, 0x2e, 0xc1, 0x65, 0x0e, 0xd2, 0x4f, 0xdd, 0x25, 0x0f, 0x33, 0x45, 0x74, 0x5c, 0x9b, 0x7b, 0x91, 0x98, 0xc9, 0x10, 0x9a, 0x37, 0x26, 0x1f, 0xc5, 0xec, 0xbb, 0xb1, 0x2f, 0x83, 0xa0, 0xe1, 0x22, 0x0a, 0x18, 0x67, 0xd4, 0x5f, 0xdd, 0xfe, 0xa8, 0x1d, 0xcf, 0x75, 0xf4, 0xec, 0x7f, 0xdb, 0x52, 0x50, 0xe5, 0x77, 0x54, 0xd6, 0xde, 0xa2, 0x70, 0xb6, 0x28, 0xa7, 0x95, 0x30, 0xec, 0x28, 0xb6, 0x19, 0xbc, 0xa9, 0x49, 0x3e, 0x63, 0x05, 0xcf, 0xc4, 0x41, 0x4c, 0x1c, 0x1d, 0xe3, 0x38, 0x9e, 0x89, 0x01, 0x97, 0xc8, 0x5f, 0x28, 0x40, 0x4f, 0x3f, 0xa9, 0x6a, 0x1e, 0x2f, 0xd9, 0x20, 0x6b, 0x47, 0x2e, 0x8a, 0x0a, 0x0d, 0x32, 0xaf, 0x55, 0x60, 0x6b, 0xb0, 0x83, 0xf7, 0x6a, 0x19, 0xb8, 0xea, 0xe3, 0x47, 0x9a, 0xe5, 0x1d, 0x98, 0xa9, 0x9a, 0x62, };
14029 static const u8 ed25519_610_test_vectors_expected_sig[] = {
14030 	0xc3, 0x66, 0xb8, 0x02, 0xf6, 0x82, 0xfc, 0xd7, 0x05, 0x25, 0x26, 0x4f, 0xb1, 0xa3, 0xcb, 0xcd, 0x0e, 0xe3, 0x5e, 0xcf, 0xf5, 0x97, 0x7c, 0x2a, 0x55, 0x4d, 0xa9, 0x39, 0x22, 0x9f, 0x17, 0x81, 0x9a, 0x96, 0x1e, 0xa7, 0x4c, 0x3d, 0x7a, 0x78, 0x81, 0xac, 0x5c, 0x1f, 0xa1, 0x6b, 0xf9, 0x84, 0xd9, 0x45, 0x6a, 0x13, 0x88, 0xd3, 0x46, 0x3c, 0x44, 0x94, 0x42, 0x9b, 0x1d, 0xc4, 0x54, 0x02, };
14031 static const ec_test_case ed25519_610_test_case = {
14032 	.name = "EDDSA25519-SHA512/wei25519 610",
14033 	.ec_str_p = &wei25519_str_params,
14034 	.priv_key = ed25519_610_test_vectors_priv_key,
14035 	.priv_key_len = sizeof(ed25519_610_test_vectors_priv_key),
14036 	.nn_random = NULL,
14037 	.hash_type = SHA512,
14038 	.msg = (const char *)ed25519_610_test_vectors_message,
14039 	.msglen = sizeof(ed25519_610_test_vectors_message),
14040 	.sig_type = EDDSA25519,
14041 	.exp_sig = ed25519_610_test_vectors_expected_sig,
14042 	.exp_siglen = sizeof(ed25519_610_test_vectors_expected_sig),
14043 	.adata = NULL,
14044 	.adata_len = 0
14045 };
14046 
14047 /************************************************/
14048 static const u8 ed25519_611_test_vectors_priv_key[] = {
14049 	0xa5, 0x22, 0x8f, 0xf9, 0xbb, 0xb6, 0xf2, 0x32, 0x32, 0x7e, 0xb8, 0xd8, 0x79, 0xd7, 0xf8, 0xb2, 0x77, 0xca, 0x72, 0xba, 0xe1, 0xf9, 0xa9, 0xd0, 0xe2, 0x60, 0xdd, 0x90, 0x57, 0x1d, 0xb4, 0xf9, };
14050 static const u8 ed25519_611_test_vectors_message[] = {
14051 	0x1d, 0xf7, 0xa6, 0x83, 0x5e, 0x33, 0x10, 0x98, 0x3e, 0xe7, 0xec, 0x73, 0x11, 0x25, 0xf5, 0xb5, 0xcf, 0x11, 0x7a, 0xf0, 0xe3, 0x6b, 0x36, 0x85, 0xbf, 0x54, 0xac, 0xe1, 0xc4, 0x8c, 0x46, 0x30, 0x05, 0x60, 0xa4, 0x5e, 0x9f, 0x9b, 0xdd, 0x96, 0xa0, 0xbc, 0x4d, 0x14, 0xe8, 0x9d, 0x4b, 0x57, 0x21, 0xa2, 0xca, 0xff, 0x66, 0x18, 0xb1, 0x82, 0xed, 0xb1, 0x20, 0x2f, 0x3d, 0x0c, 0x5d, 0x11, 0x8d, 0x09, 0xb6, 0x18, 0x12, 0xc0, 0x10, 0xe8, 0xb1, 0x96, 0x34, 0x45, 0x41, 0xcd, 0xee, 0xfe, 0x5f, 0xd1, 0xf9, 0x61, 0xc5, 0xdd, 0x75, 0x45, 0x95, 0x55, 0xab, 0x72, 0xef, 0x2a, 0xa7, 0xa7, 0x59, 0xa4, 0xf3, 0xad, 0x3c, 0xae, 0xd4, 0x4f, 0x4c, 0x9a, 0x8e, 0xf9, 0x5b, 0x76, 0xed, 0x9a, 0x99, 0xb5, 0x5d, 0xd8, 0xa2, 0x60, 0xba, 0x08, 0x01, 0x0d, 0x29, 0xff, 0x81, 0x9f, 0x2a, 0xf3, 0x51, 0x3c, 0x1a, 0x64, 0x0d, 0x6c, 0xcd, 0xde, 0x49, 0x99, 0x20, 0x5f, 0x9f, 0xca, 0x88, 0x57, 0x11, 0x5d, 0x8b, 0x5d, 0xb9, 0xf7, 0x0a, 0x62, 0xe5, 0xee, 0xa0, 0xd5, 0xaf, 0x06, 0x5d, 0xe1, 0x53, 0xf2, 0xed, 0xed, 0xee, 0xc6, 0x3e, 0x15, 0xc8, 0xe0, 0x9a, 0x92, 0x58, 0x21, 0x82, 0xac, 0x07, 0xd8, 0x1c, 0xa6, 0x3c, 0xa4, 0xaa, 0x59, 0x7a, 0x22, 0x20, 0xe7, 0x04, 0x81, 0x95, 0x7d, 0x41, 0x52, 0x64, 0xe2, 0x58, 0xbc, 0x26, 0x3e, 0x1c, 0xc3, 0x6e, 0x53, 0x47, 0x8a, 0xac, 0x5c, 0xa0, 0x16, 0x94, 0xcc, 0xb0, 0x9b, 0x4f, 0xfd, 0x84, 0x73, 0x99, 0x72, 0xc7, 0xdc, 0xcf, 0x3d, 0xef, 0xea, 0xfd, 0xed, 0xe1, 0x62, 0xab, 0x6c, 0x58, 0xa1, 0xdf, 0x27, 0x37, 0x1e, 0x3f, 0x54, 0x93, 0x06, 0x7f, 0xc9, 0xe2, 0x06, 0x7e, 0x57, 0x96, 0x23, 0xc0, 0x09, 0xfc, 0x82, 0x5e, 0xef, 0x0e, 0x01, 0x0f, 0xd1, 0xcc, 0xf2, 0xa8, 0xd3, 0xfb, 0xbb, 0x31, 0x56, 0xf9, 0xdf, 0xde, 0x0c, 0x7c, 0xbb, 0xaf, 0x84, 0x33, 0x09, 0x85, 0x17, 0x49, 0x1b, 0x78, 0xdb, 0x96, 0x98, 0x61, 0x4e, 0xa4, 0x0e, 0x0b, 0x1e, 0x6a, 0x1e, 0x36, 0xb9, 0x00, 0x45, 0x3a, 0x16, 0xea, 0x27, 0x6f, 0x34, 0x42, 0xbb, 0xd2, 0x7a, 0x7e, 0xcb, 0x98, 0x15, 0x11, 0xf5, 0xc9, 0x20, 0x9e, 0xb0, 0x96, 0xe2, 0x85, 0x88, 0xb6, 0x5b, 0x96, 0xb5, 0x01, 0x88, 0xc0, 0x38, 0x1f, 0xf7, 0x12, 0xbc, 0x06, 0xb2, 0xc6, 0x55, 0xcc, 0xa0, 0x75, 0x1c, 0x09, 0x5d, 0x80, 0x16, 0x25, 0x15, 0x85, 0x85, 0x1e, 0x67, 0x74, 0x34, 0xdc, 0x3e, 0xfd, 0x08, 0x7a, 0x12, 0x68, 0x0f, 0xc2, 0x2e, 0x5b, 0x83, 0x10, 0xa1, 0x0e, 0x32, 0xca, 0xac, 0x9b, 0x71, 0xc8, 0x76, 0xee, 0xd3, 0x1e, 0xf0, 0x9f, 0x7f, 0xa0, 0x12, 0xba, 0x08, 0xdf, 0xd2, 0xad, 0x68, 0xc1, 0xe1, 0x47, 0xf5, 0x05, 0x98, 0xe5, 0x50, 0x46, 0x7e, 0xf9, 0x9f, 0x29, 0x5a, 0x31, 0x8f, 0xaa, 0x50, 0x7e, 0xbe, 0x77, 0x6c, 0xe5, 0x5c, 0x4d, 0xa1, 0x64, 0x32, 0x3c, 0x30, 0xa5, 0xe7, 0x2d, 0xbe, 0x02, 0x7c, 0x3c, 0xcf, 0x96, 0xc7, 0x01, 0x97, 0xa6, 0xfb, 0x1b, 0x74, 0xaf, 0x13, 0x3a, 0x8b, 0xe2, 0xb0, 0x3c, 0x1b, 0x99, 0xfd, 0x25, 0xb3, 0xce, 0xd5, 0x1f, 0xe3, 0x88, 0x20, 0x21, 0xa3, 0xaf, 0xd9, 0x22, 0x9f, 0x64, 0x1b, 0xc6, 0xca, 0xd4, 0xe1, 0xd3, 0xcb, 0x6e, 0xd9, 0xb6, 0xb6, 0x8a, 0x25, 0xf1, 0xe1, 0x39, 0x72, 0x89, 0x98, 0x1f, 0x78, 0x92, 0x4b, 0xff, 0x24, 0xc8, 0xde, 0xe6, 0xa1, 0x8a, 0x04, 0x21, 0xfa, 0x32, 0xae, 0x3a, 0xb6, 0x0a, 0x0d, 0x93, 0x3a, 0x6a, 0xf4, 0xff, 0x70, 0x48, 0x74, 0xb0, 0x9b, 0x07, 0x39, 0xe2, 0xf2, 0x9d, 0x8f, 0x25, 0x2d, 0x79, 0x05, 0x5f, 0x89, 0xd3, 0xbf, 0xf1, 0x0a, 0x22, 0xc5, 0x4a, 0xc3, 0xd8, 0xaf, 0xee, 0xce, 0x81, 0x83, 0x53, 0xa6, 0xab, 0xe2, 0xb7, 0xfb, 0x8e, 0x8e, 0x0d, 0xa5, 0xb7, 0xac, 0x1c, 0xfc, 0x98, 0x5d, 0xf9, 0x75, 0x80, 0xb1, 0x82, 0x11, 0xa4, 0xe3, 0xed, 0xff, 0x95, 0xaf, 0xdd, 0xa0, 0x61, 0x54, 0x7d, 0x3a, 0xe0, 0x40, 0x6d, 0x32, 0x86, 0xcd, 0x30, 0x5b, 0xdf, 0xd2, 0xc3, 0xab, 0xf8, 0xf7, 0x4a, 0xf9, 0xa0, 0x34, 0x20, 0xe5, 0xb0, 0x3f, 0x82, 0x5e, 0x9c, 0x53, 0x90, 0x7e, 0x13, 0xa5, 0x81, 0x21, 0x74, 0xbe, 0x42, 0x89, 0x86, 0x45, 0x14, 0x9d, };
14052 static const u8 ed25519_611_test_vectors_expected_sig[] = {
14053 	0x97, 0x65, 0x0f, 0xae, 0x3f, 0x59, 0xca, 0x76, 0x47, 0x7f, 0x25, 0x47, 0x16, 0x77, 0x49, 0xc5, 0x83, 0x02, 0x48, 0x88, 0x32, 0x25, 0xe3, 0x54, 0xff, 0x46, 0xc7, 0xe3, 0x81, 0x96, 0x52, 0x20, 0xd9, 0xbe, 0xf2, 0xc2, 0x05, 0x7c, 0x7d, 0x19, 0x90, 0xf0, 0x8b, 0xca, 0x4c, 0xfd, 0xe8, 0x77, 0xff, 0xf2, 0xb4, 0xaa, 0x81, 0x3d, 0x9c, 0x4b, 0x84, 0xfb, 0x79, 0xec, 0xed, 0x81, 0xef, 0x05, };
14054 static const ec_test_case ed25519_611_test_case = {
14055 	.name = "EDDSA25519-SHA512/wei25519 611",
14056 	.ec_str_p = &wei25519_str_params,
14057 	.priv_key = ed25519_611_test_vectors_priv_key,
14058 	.priv_key_len = sizeof(ed25519_611_test_vectors_priv_key),
14059 	.nn_random = NULL,
14060 	.hash_type = SHA512,
14061 	.msg = (const char *)ed25519_611_test_vectors_message,
14062 	.msglen = sizeof(ed25519_611_test_vectors_message),
14063 	.sig_type = EDDSA25519,
14064 	.exp_sig = ed25519_611_test_vectors_expected_sig,
14065 	.exp_siglen = sizeof(ed25519_611_test_vectors_expected_sig),
14066 	.adata = NULL,
14067 	.adata_len = 0
14068 };
14069 
14070 /************************************************/
14071 static const u8 ed25519_612_test_vectors_priv_key[] = {
14072 	0xc0, 0x4d, 0xc0, 0x9f, 0x11, 0x9d, 0x67, 0x0f, 0xb1, 0xea, 0xe0, 0x13, 0x6f, 0xcc, 0x06, 0x08, 0x5f, 0x29, 0x0f, 0x4a, 0xd1, 0xaa, 0x1f, 0xfc, 0x9c, 0x16, 0x0e, 0xa5, 0xcf, 0x47, 0xf0, 0x9d, };
14073 static const u8 ed25519_612_test_vectors_message[] = {
14074 	0x1e, 0x42, 0x29, 0x7f, 0x8a, 0xee, 0xf2, 0x9a, 0x84, 0x2e, 0x0e, 0x21, 0xf5, 0xdb, 0xae, 0x06, 0x8e, 0x2c, 0x9d, 0xda, 0xa6, 0xfd, 0x34, 0x8e, 0x48, 0x88, 0x1f, 0x0d, 0x42, 0xc5, 0x0b, 0xf0, 0xec, 0xf1, 0x70, 0x6b, 0x94, 0xa5, 0xd1, 0x98, 0x17, 0xca, 0x02, 0xd8, 0x3e, 0x9a, 0xb2, 0xf9, 0x9d, 0x8b, 0xfa, 0xaa, 0x5c, 0x85, 0xad, 0x39, 0xa1, 0x50, 0xb2, 0x25, 0xad, 0x3e, 0xaf, 0xa0, 0x67, 0x81, 0x5b, 0x74, 0x67, 0x2f, 0xe0, 0x26, 0xc3, 0xcc, 0xc6, 0x77, 0x25, 0x54, 0x40, 0xb6, 0x84, 0xa7, 0x6e, 0x12, 0x8c, 0xa2, 0xcc, 0xc4, 0x29, 0xf1, 0x52, 0x57, 0x7d, 0x25, 0xb6, 0x9f, 0x40, 0xdb, 0x58, 0x2d, 0x49, 0x47, 0x9a, 0xfa, 0xe6, 0x80, 0x71, 0x2d, 0xc0, 0xfd, 0x1f, 0xe1, 0x41, 0x88, 0x39, 0x68, 0x7c, 0xa6, 0x0c, 0xdd, 0xe9, 0x74, 0x14, 0x04, 0x62, 0xf9, 0x61, 0x48, 0x29, 0x5d, 0xf1, 0xce, 0x43, 0xa9, 0x77, 0x35, 0x1c, 0x77, 0xf2, 0xf0, 0xb0, 0x9a, 0x6b, 0x26, 0xd6, 0xfe, 0x96, 0x5f, 0xce, 0xae, 0x17, 0xd7, 0xb8, 0x62, 0x03, 0x71, 0x40, 0x24, 0x28, 0x54, 0x4f, 0xdf, 0x91, 0x69, 0x0b, 0x44, 0xe9, 0xaf, 0xc2, 0xe9, 0x08, 0x8c, 0x83, 0xca, 0x48, 0xdc, 0x85, 0x76, 0xf6, 0x28, 0x72, 0x47, 0x98, 0xdc, 0x90, 0x32, 0x31, 0x74, 0xc4, 0x49, 0x96, 0x59, 0x65, 0x02, 0xa3, 0x5d, 0xf8, 0xb9, 0x82, 0xc5, 0x70, 0xa6, 0xcb, 0x51, 0xb9, 0xa1, 0x97, 0xd4, 0x31, 0xaf, 0x33, 0xf0, 0x2b, 0x80, 0x01, 0x15, 0x67, 0xfe, 0x50, 0xcf, 0x45, 0xac, 0x11, 0x1b, 0x3d, 0x55, 0x6f, 0x8c, 0x8c, 0xe5, 0xae, 0x8c, 0x99, 0x72, 0xf2, 0xa9, 0x93, 0x6b, 0x1a, 0x01, 0x2b, 0x9c, 0x33, 0x9e, 0x30, 0xc9, 0x73, 0x12, 0xb6, 0x5e, 0xa5, 0x9c, 0x10, 0x0f, 0x79, 0xd7, 0x95, 0xb8, 0xa2, 0x4b, 0x31, 0xa0, 0xa9, 0x7d, 0xc2, 0x5c, 0xce, 0xd6, 0xb8, 0xff, 0x5a, 0xe1, 0x45, 0x33, 0x9a, 0x04, 0x8c, 0xa1, 0x2a, 0x57, 0x90, 0x17, 0xfa, 0xe8, 0xd5, 0xcb, 0xcb, 0x61, 0xd5, 0x2e, 0x31, 0x4d, 0xd7, 0xc2, 0xe7, 0x20, 0x10, 0xc4, 0x72, 0x17, 0xb1, 0xd0, 0x68, 0x78, 0xbf, 0x28, 0x18, 0xca, 0x18, 0x8e, 0x8e, 0x30, 0x79, 0x60, 0xc1, 0x68, 0x9d, 0x7d, 0xfc, 0x02, 0x02, 0x97, 0x3c, 0xd2, 0x9f, 0x2f, 0x7b, 0xa7, 0x43, 0x46, 0x9e, 0x68, 0x5e, 0x0e, 0x70, 0x4b, 0x04, 0xba, 0xca, 0x4f, 0xab, 0x54, 0x88, 0x44, 0x8a, 0x92, 0x2e, 0xab, 0xf4, 0x0b, 0xe5, 0x81, 0xc1, 0x99, 0x4d, 0x74, 0xd1, 0x3a, 0x36, 0x6c, 0xe8, 0x57, 0xfb, 0x40, 0xa6, 0xe0, 0x5d, 0xa8, 0x55, 0x36, 0x94, 0x17, 0x2c, 0xc3, 0xfd, 0x28, 0x06, 0x2f, 0x53, 0x82, 0x50, 0xaa, 0x8c, 0x11, 0xf6, 0x81, 0x39, 0xe7, 0x9c, 0xd1, 0x19, 0x1b, 0xa3, 0x31, 0x4b, 0x5c, 0xea, 0x08, 0x64, 0x43, 0x7e, 0xd2, 0xe4, 0xb6, 0xfb, 0xd7, 0x5b, 0x9d, 0xed, 0x09, 0x87, 0xb4, 0x1c, 0x20, 0x2a, 0x58, 0xec, 0x02, 0x54, 0xd9, 0xd3, 0x71, 0xa7, 0x95, 0xf1, 0xdb, 0xec, 0xdd, 0xac, 0x11, 0x2b, 0xe8, 0xd0, 0x9e, 0x2d, 0x7b, 0x9c, 0xa5, 0x75, 0x2f, 0x40, 0x6c, 0xff, 0xb9, 0x11, 0xca, 0x36, 0x45, 0x0b, 0xc0, 0x5f, 0x1e, 0xc1, 0xca, 0x3c, 0xa8, 0xd3, 0x51, 0x24, 0xd1, 0x28, 0x6c, 0x55, 0xf1, 0x0f, 0x61, 0x33, 0x4e, 0x46, 0xec, 0xe4, 0x18, 0x3b, 0x92, 0x21, 0x9a, 0x9d, 0xcd, 0x0e, 0x5e, 0x78, 0xef, 0x2a, 0x76, 0xcf, 0xe9, 0xa9, 0xab, 0x37, 0x95, 0xdf, 0xdc, 0xb4, 0x4f, 0x63, 0xd4, 0x5f, 0x5f, 0x48, 0xff, 0xb4, 0x15, 0x61, 0x33, 0xad, 0x2e, 0x99, 0x50, 0x88, 0x4c, 0x5b, 0xbd, 0x2c, 0x1c, 0xb8, 0x72, 0x9e, 0x40, 0xa8, 0x78, 0x7f, 0x78, 0x49, 0x69, 0xfa, 0x88, 0x0c, 0x07, 0xff, 0xcc, 0x97, 0xd5, 0xc0, 0xd2, 0xd4, 0x88, 0x08, 0x5e, 0x91, 0x16, 0xd7, 0x10, 0x7c, 0xd5, 0xdb, 0x16, 0xce, 0xcc, 0xde, 0xad, 0x55, 0x02, 0x5e, 0xea, 0x2e, 0xde, 0xe9, 0x3c, 0x1b, 0x10, 0x64, 0x27, 0x61, 0x8e, 0xe0, 0x9d, 0xc3, 0xda, 0xd1, 0xe0, 0x56, 0x76, 0xa2, 0x36, 0x80, 0x69, 0xc8, 0x04, 0x5c, 0x3e, 0xbc, 0x6c, 0x67, 0xaf, 0xa5, 0x2d, 0x59, 0x39, 0x82, 0x48, 0xef, 0xcf, 0x15, 0xe9, 0x04, 0xc7, 0x14, 0x23, 0x04, 0xff, 0x61, 0x97, 0x1f, 0x4d, 0x9b, 0xf6, 0x46, 0x0c, 0x1d, 0x64, 0x17, };
14075 static const u8 ed25519_612_test_vectors_expected_sig[] = {
14076 	0x4b, 0xd1, 0x9f, 0x3d, 0x9c, 0x51, 0x16, 0xec, 0x6a, 0xe0, 0x02, 0x4d, 0x0f, 0x24, 0x6d, 0x2c, 0xe2, 0x50, 0xd9, 0xe0, 0x63, 0x4a, 0x23, 0x2b, 0xa0, 0x6f, 0xd3, 0x56, 0x6a, 0xed, 0x55, 0xcb, 0xe5, 0x9f, 0x12, 0x33, 0x2c, 0xba, 0xd6, 0x5d, 0x43, 0x49, 0xa9, 0xd2, 0x2e, 0x7d, 0x6e, 0x46, 0xd2, 0xfb, 0xdc, 0x71, 0xd5, 0xc8, 0xf9, 0xda, 0x15, 0xdf, 0xbf, 0x17, 0xba, 0x22, 0x51, 0x07, };
14077 static const ec_test_case ed25519_612_test_case = {
14078 	.name = "EDDSA25519-SHA512/wei25519 612",
14079 	.ec_str_p = &wei25519_str_params,
14080 	.priv_key = ed25519_612_test_vectors_priv_key,
14081 	.priv_key_len = sizeof(ed25519_612_test_vectors_priv_key),
14082 	.nn_random = NULL,
14083 	.hash_type = SHA512,
14084 	.msg = (const char *)ed25519_612_test_vectors_message,
14085 	.msglen = sizeof(ed25519_612_test_vectors_message),
14086 	.sig_type = EDDSA25519,
14087 	.exp_sig = ed25519_612_test_vectors_expected_sig,
14088 	.exp_siglen = sizeof(ed25519_612_test_vectors_expected_sig),
14089 	.adata = NULL,
14090 	.adata_len = 0
14091 };
14092 
14093 /************************************************/
14094 static const u8 ed25519_613_test_vectors_priv_key[] = {
14095 	0x67, 0x91, 0xbd, 0x74, 0xd3, 0xb4, 0x62, 0x0e, 0xf5, 0xf1, 0xff, 0x56, 0x40, 0x64, 0x32, 0xc2, 0x6a, 0xb6, 0x46, 0xf6, 0xd5, 0xe9, 0xdd, 0xa6, 0x84, 0x2e, 0xd6, 0x90, 0x52, 0x27, 0x53, 0x92, };
14096 static const u8 ed25519_613_test_vectors_message[] = {
14097 	0x36, 0xa2, 0x0e, 0x66, 0xbb, 0x29, 0x15, 0x51, 0x61, 0xad, 0x85, 0xee, 0xfe, 0x89, 0x3b, 0x53, 0xac, 0x5a, 0xde, 0x16, 0x5f, 0x08, 0x9a, 0x77, 0x19, 0x0b, 0x0c, 0x23, 0x9d, 0xec, 0x8a, 0x20, 0x16, 0x85, 0xb0, 0x76, 0xb4, 0xde, 0xd4, 0xa1, 0x0a, 0xa4, 0x59, 0xb9, 0x80, 0xa8, 0xcc, 0xa4, 0x7d, 0x5f, 0x8d, 0xe4, 0xd2, 0xa6, 0x62, 0xe4, 0x46, 0xd5, 0xf7, 0xfb, 0x70, 0xed, 0x9b, 0xe0, 0x5d, 0xb1, 0xcc, 0xea, 0xdd, 0x13, 0x0b, 0x33, 0x46, 0xd9, 0x40, 0x9f, 0x9d, 0x6e, 0xf5, 0x28, 0x24, 0xc7, 0x64, 0xac, 0x6f, 0xb1, 0xcd, 0x15, 0x6d, 0xbd, 0x6a, 0x47, 0x3a, 0xe7, 0x22, 0xd0, 0xeb, 0xb2, 0x56, 0x38, 0xc5, 0x12, 0x65, 0xa2, 0x2f, 0xeb, 0xbb, 0x14, 0x96, 0x7d, 0x6d, 0xd8, 0x25, 0x3c, 0x1d, 0x03, 0x88, 0x95, 0xc6, 0x73, 0x7f, 0x06, 0x7c, 0x8f, 0x73, 0xc3, 0xc1, 0xcb, 0xe6, 0xcd, 0xa4, 0x36, 0x96, 0x32, 0xd7, 0xf4, 0xc9, 0xac, 0xeb, 0xe8, 0x7d, 0x05, 0x71, 0xc8, 0x1a, 0x58, 0xcf, 0xd7, 0x2c, 0xce, 0x4a, 0x5c, 0xf5, 0x3a, 0x1e, 0x75, 0x25, 0x9f, 0x4c, 0x99, 0x3e, 0x67, 0xef, 0xc8, 0xd9, 0xc3, 0x57, 0x6c, 0x43, 0xaf, 0x04, 0xa5, 0xca, 0xf3, 0x3d, 0x85, 0x6f, 0x7f, 0x27, 0x55, 0xd3, 0xa9, 0x75, 0xab, 0x2b, 0x68, 0x5c, 0x6f, 0x65, 0x68, 0x0c, 0xba, 0x9a, 0xc8, 0x79, 0xf3, 0xa8, 0xc9, 0xa4, 0x76, 0x5b, 0x87, 0x9c, 0x0a, 0xde, 0x1e, 0x4b, 0xd0, 0xd4, 0xa7, 0x0b, 0xb6, 0xf9, 0x2b, 0x24, 0xd4, 0x29, 0xdc, 0x74, 0x6c, 0xc7, 0x8f, 0x84, 0x81, 0x1f, 0x07, 0x6f, 0x32, 0xc6, 0x1e, 0x35, 0x85, 0xcc, 0x8a, 0xad, 0xe9, 0xb0, 0xca, 0x15, 0x22, 0x4b, 0xfb, 0xfe, 0x18, 0xbe, 0x10, 0xa3, 0x36, 0x43, 0x60, 0x0f, 0x66, 0x12, 0xbf, 0x01, 0x3f, 0x0e, 0xfc, 0xca, 0x83, 0x72, 0x46, 0xa0, 0xee, 0x5b, 0x03, 0xc0, 0x2f, 0x15, 0x73, 0x62, 0x4c, 0x4a, 0x44, 0xa9, 0x0f, 0x9e, 0x42, 0x3d, 0x4e, 0x56, 0x06, 0x1a, 0x71, 0xd0, 0x14, 0x4f, 0x5a, 0x88, 0x7a, 0x8c, 0xd4, 0xa9, 0xd6, 0xf2, 0x47, 0x90, 0x4e, 0x26, 0x79, 0x59, 0x51, 0x95, 0x9d, 0xa1, 0x21, 0xc8, 0x3c, 0x6c, 0x94, 0x1e, 0x2b, 0x6b, 0x9a, 0xb7, 0x62, 0x09, 0xff, 0xe9, 0x17, 0x85, 0x91, 0xea, 0xd6, 0x82, 0x30, 0xb9, 0x4a, 0xe9, 0x7d, 0xf5, 0x8f, 0x9f, 0x17, 0x24, 0x28, 0xc9, 0x50, 0x67, 0x59, 0x8a, 0xc5, 0x82, 0xff, 0xb9, 0x50, 0x84, 0x0d, 0x82, 0x66, 0x30, 0xc4, 0x62, 0x5f, 0x5d, 0xea, 0xdd, 0xec, 0x13, 0x05, 0x20, 0x3b, 0x4d, 0xb6, 0xb9, 0x45, 0xf9, 0x91, 0xed, 0x7c, 0xd3, 0xd6, 0xfa, 0xbc, 0xa5, 0x1e, 0x21, 0x66, 0xad, 0xad, 0x0a, 0xad, 0x51, 0x17, 0x33, 0x6d, 0x52, 0xd5, 0x94, 0x22, 0xf0, 0x13, 0x5c, 0x8f, 0xa8, 0xcd, 0xd0, 0x88, 0x4b, 0xe7, 0x35, 0x86, 0xbf, 0x28, 0x4e, 0x5d, 0xdd, 0xdb, 0xcb, 0x95, 0xb4, 0x11, 0xf9, 0x85, 0x68, 0x52, 0x6f, 0xbe, 0x71, 0xa5, 0x59, 0x2b, 0x56, 0xad, 0x5a, 0x73, 0x45, 0xf2, 0x87, 0x4d, 0xb1, 0xd5, 0x7b, 0xea, 0xb4, 0x3e, 0x8c, 0xc6, 0x95, 0x47, 0x52, 0x06, 0x29, 0xf0, 0xee, 0x76, 0xdb, 0xf4, 0x32, 0xa3, 0x76, 0xfa, 0xd2, 0x8b, 0xfc, 0x77, 0xe1, 0x4d, 0x84, 0x0f, 0x0c, 0x02, 0xd4, 0x78, 0xf1, 0xe2, 0x33, 0x7c, 0x23, 0xb8, 0x9e, 0x73, 0xe5, 0x27, 0x91, 0x08, 0xb5, 0x60, 0x9b, 0x18, 0xe8, 0x0d, 0xb0, 0xde, 0x11, 0xcf, 0xa9, 0x4e, 0xcf, 0x72, 0x39, 0xbc, 0xff, 0x59, 0xc5, 0x41, 0x18, 0xe4, 0xed, 0xe4, 0xfb, 0xfc, 0x08, 0x23, 0xae, 0x54, 0x60, 0x16, 0xf7, 0x74, 0xc5, 0x21, 0x98, 0xa9, 0x63, 0xb5, 0x54, 0x5a, 0x34, 0x89, 0xb8, 0x9d, 0xf7, 0x62, 0x6f, 0xd1, 0x1e, 0xd4, 0x65, 0x8d, 0x71, 0x5a, 0x46, 0x57, 0x99, 0x40, 0x35, 0xd4, 0x03, 0xb3, 0x37, 0x0d, 0x14, 0xee, 0xd9, 0x71, 0x8d, 0x59, 0x8d, 0xb6, 0x75, 0xf0, 0x42, 0x59, 0x2f, 0xea, 0x89, 0x05, 0x65, 0x44, 0xb3, 0x2e, 0x5b, 0x9c, 0x80, 0x62, 0x82, 0x8a, 0xaa, 0x3c, 0xf5, 0x9c, 0xb4, 0x76, 0xad, 0x36, 0xdb, 0x1d, 0xaa, 0x24, 0x82, 0x22, 0x7a, 0x9b, 0x7a, 0xfb, 0xc1, 0x53, 0xce, 0x93, 0x25, 0x3d, 0x1b, 0x39, 0xda, 0x95, 0xeb, 0x96, 0xf8, 0x31, 0x28, 0xff, 0x25, 0x54, 0xa5, 0x47, 0xe3, 0x4e, 0xea, 0x4a, 0x00, 0x00, };
14098 static const u8 ed25519_613_test_vectors_expected_sig[] = {
14099 	0xb1, 0xe8, 0xd4, 0x81, 0x06, 0x5b, 0xd5, 0x12, 0x1b, 0xb3, 0xbf, 0x56, 0x96, 0x00, 0xbc, 0xc2, 0x6d, 0xf4, 0x0c, 0x49, 0x9f, 0xba, 0xa9, 0x54, 0xb3, 0x9a, 0x61, 0x9d, 0xc4, 0x0b, 0x95, 0x90, 0xc3, 0x17, 0x56, 0xb8, 0xb6, 0x3f, 0x86, 0x01, 0x51, 0x69, 0x4b, 0x95, 0x76, 0x5d, 0x69, 0x7b, 0x2e, 0x1a, 0xde, 0x08, 0x06, 0xe9, 0x2a, 0x06, 0xc4, 0xa5, 0x59, 0xe9, 0x0f, 0xcf, 0xa5, 0x06, };
14100 static const ec_test_case ed25519_613_test_case = {
14101 	.name = "EDDSA25519-SHA512/wei25519 613",
14102 	.ec_str_p = &wei25519_str_params,
14103 	.priv_key = ed25519_613_test_vectors_priv_key,
14104 	.priv_key_len = sizeof(ed25519_613_test_vectors_priv_key),
14105 	.nn_random = NULL,
14106 	.hash_type = SHA512,
14107 	.msg = (const char *)ed25519_613_test_vectors_message,
14108 	.msglen = sizeof(ed25519_613_test_vectors_message),
14109 	.sig_type = EDDSA25519,
14110 	.exp_sig = ed25519_613_test_vectors_expected_sig,
14111 	.exp_siglen = sizeof(ed25519_613_test_vectors_expected_sig),
14112 	.adata = NULL,
14113 	.adata_len = 0
14114 };
14115 
14116 /************************************************/
14117 static const u8 ed25519_614_test_vectors_priv_key[] = {
14118 	0x23, 0x4c, 0xe4, 0xd3, 0x9b, 0x5e, 0xba, 0xbe, 0x9a, 0x2c, 0x1e, 0x71, 0x97, 0x0d, 0x71, 0x81, 0x38, 0xdc, 0xb5, 0x30, 0xcf, 0xd2, 0x96, 0x02, 0x34, 0x27, 0xd8, 0x92, 0xbf, 0x88, 0xf8, 0xa4, };
14119 static const u8 ed25519_614_test_vectors_message[] = {
14120 	0x77, 0x73, 0x0c, 0xf8, 0xc8, 0xf9, 0x6b, 0x91, 0x87, 0x90, 0x2a, 0xcf, 0xf9, 0xff, 0x0b, 0x21, 0x74, 0x6c, 0xca, 0xf0, 0xa3, 0x82, 0xa7, 0xb3, 0x43, 0xd1, 0xc7, 0x20, 0x27, 0xae, 0x3c, 0x31, 0x68, 0xa7, 0x3a, 0x6b, 0x8f, 0x49, 0xbc, 0x87, 0x98, 0x14, 0x1e, 0x15, 0xc2, 0x73, 0x2b, 0x6a, 0x6b, 0x3f, 0x75, 0x7f, 0x8a, 0x8e, 0x86, 0xc7, 0xa4, 0xba, 0xcb, 0x39, 0x55, 0x1c, 0x54, 0x87, 0x4d, 0x6b, 0xf7, 0x16, 0x89, 0x7e, 0xe4, 0xaf, 0x13, 0x25, 0x3a, 0xa5, 0xbb, 0x79, 0xa1, 0x92, 0x10, 0x4f, 0x44, 0xdc, 0xb3, 0xde, 0x96, 0x07, 0x45, 0xa8, 0xe6, 0xaa, 0x98, 0x80, 0x52, 0x4a, 0x62, 0x9f, 0xb5, 0x10, 0xa4, 0xce, 0x4c, 0xbd, 0xa7, 0xe2, 0x95, 0x7d, 0xff, 0x1d, 0x62, 0xe7, 0x05, 0x60, 0x6a, 0x2c, 0xc8, 0x4f, 0x91, 0x85, 0x0b, 0xea, 0xac, 0x5e, 0x58, 0x46, 0xe1, 0x42, 0x0b, 0xc9, 0x1d, 0xcd, 0xd2, 0x42, 0x7b, 0x69, 0xcf, 0xa4, 0x6a, 0xe3, 0x8a, 0x4f, 0xef, 0x41, 0x46, 0xea, 0xe3, 0x5f, 0x9c, 0x22, 0xe9, 0x67, 0xcb, 0x14, 0xa1, 0xaf, 0x9c, 0xab, 0xf8, 0x3b, 0x18, 0x04, 0x65, 0xbe, 0xd6, 0xef, 0x2c, 0xda, 0x38, 0x2a, 0x84, 0xd9, 0x99, 0x4a, 0xad, 0x65, 0x5d, 0x89, 0x52, 0xe0, 0xfb, 0xb0, 0xf9, 0x6f, 0xc8, 0x08, 0x9f, 0x2e, 0x74, 0x89, 0x49, 0x7f, 0xac, 0xdc, 0xd6, 0x56, 0xa8, 0xa4, 0x51, 0xb9, 0x28, 0xc1, 0x1e, 0x7a, 0x40, 0x75, 0x07, 0x2a, 0xaf, 0xbf, 0x17, 0xd8, 0xf1, 0x05, 0x4c, 0x91, 0x96, 0x28, 0x8d, 0xed, 0x3a, 0xe2, 0x1f, 0x9a, 0xfd, 0x58, 0x10, 0xa1, 0x00, 0xd8, 0xe4, 0xd8, 0x4c, 0x4a, 0x35, 0xa9, 0x8b, 0x30, 0xd3, 0xe1, 0x85, 0x24, 0x43, 0x8d, 0xd4, 0x40, 0x2d, 0xfd, 0x8e, 0x76, 0x75, 0xf0, 0x9d, 0x08, 0x0c, 0xd9, 0x15, 0xf1, 0x4a, 0xf4, 0x37, 0x2f, 0x7c, 0xe5, 0x83, 0x84, 0x97, 0x2d, 0x5d, 0x11, 0x10, 0x79, 0x65, 0x1b, 0x2a, 0xcf, 0x39, 0xd2, 0xa1, 0x67, 0xc6, 0xa0, 0x0b, 0x2b, 0x17, 0xce, 0x0b, 0x26, 0x87, 0x91, 0xbd, 0x2b, 0xe5, 0x17, 0x8f, 0xe0, 0xf8, 0x2d, 0x64, 0xda, 0xcd, 0xde, 0x37, 0x7a, 0x1e, 0x8b, 0xe9, 0xe7, 0xd8, 0xdf, 0xc8, 0x2b, 0x08, 0x64, 0x45, 0x37, 0xbd, 0xc8, 0x70, 0xc5, 0x81, 0x92, 0x86, 0xfd, 0x51, 0xf6, 0x79, 0x2d, 0xc5, 0xf6, 0x7b, 0x54, 0xbe, 0x33, 0x6d, 0x44, 0xd5, 0x4f, 0xeb, 0xf8, 0x1b, 0x8d, 0xf8, 0xde, 0xc5, 0xd8, 0x68, 0x6d, 0xb1, 0x2f, 0x16, 0x4d, 0x0e, 0x8f, 0xf1, 0xaa, 0x2c, 0x16, 0xba, 0xcc, 0x98, 0x06, 0x01, 0x0e, 0xc8, 0xe9, 0x11, 0x96, 0x59, 0x7e, 0xf0, 0x6a, 0x4c, 0xf1, 0x70, 0x7d, 0xef, 0x50, 0x67, 0xa0, 0x48, 0x89, 0xd8, 0xe4, 0x8a, 0x9b, 0xc2, 0xc0, 0xbe, 0xf6, 0x64, 0xf5, 0xac, 0xd1, 0xb4, 0xf5, 0xbc, 0x2d, 0xa7, 0xda, 0x43, 0xdc, 0xb5, 0xf9, 0x63, 0x24, 0x5b, 0xa5, 0x52, 0xfd, 0x49, 0x30, 0x01, 0xd8, 0x70, 0xa9, 0x51, 0x7a, 0x17, 0x9c, 0x2f, 0x0d, 0xe8, 0x5b, 0xe0, 0xc6, 0x82, 0xd0, 0x57, 0x48, 0x8e, 0x35, 0xc7, 0x81, 0x6f, 0xf4, 0xba, 0x52, 0x9a, 0xef, 0xd7, 0xc6, 0x60, 0x91, 0xf2, 0x06, 0xf5, 0xf4, 0xd7, 0x5c, 0xac, 0x8b, 0xd2, 0x09, 0xec, 0x2f, 0xa5, 0x5b, 0xe7, 0x4a, 0xf2, 0x31, 0xe2, 0xf3, 0x89, 0xdc, 0xc2, 0xd6, 0x68, 0xbf, 0x69, 0x5e, 0xd2, 0x67, 0xc3, 0x59, 0x4b, 0xad, 0x9e, 0xfc, 0x00, 0x21, 0x7c, 0x7a, 0x0e, 0x9e, 0x7b, 0x6a, 0x56, 0xa3, 0x30, 0x79, 0xa3, 0x0e, 0x73, 0xc3, 0x73, 0x3f, 0x2d, 0x24, 0xef, 0xec, 0xdd, 0xe8, 0x7f, 0x72, 0xf9, 0x48, 0xd2, 0x77, 0xd6, 0xb6, 0xd5, 0xb0, 0x35, 0xb4, 0xc5, 0x31, 0x80, 0xd2, 0x3d, 0x66, 0xcc, 0x0f, 0xf1, 0x7c, 0x15, 0xdd, 0x46, 0x85, 0x85, 0xe3, 0x89, 0xd9, 0x1a, 0x4c, 0x97, 0xfd, 0x80, 0x11, 0x0b, 0x21, 0x8a, 0x0b, 0xf7, 0xa5, 0xe0, 0x35, 0x3f, 0x46, 0x09, 0xd2, 0xcf, 0x01, 0x8a, 0x06, 0x55, 0x71, 0x00, 0x1c, 0x78, 0x88, 0x55, 0x5e, 0xed, 0xbd, 0x36, 0x22, 0xc3, 0xb1, 0x76, 0x9c, 0xd1, 0x3f, 0x33, 0x37, 0x47, 0x72, 0xaa, 0x6c, 0x8a, 0x8f, 0x58, 0x81, 0x02, 0x01, 0x7d, 0x4e, 0xe4, 0xe5, 0x0d, 0xcb, 0xbd, 0xb1, 0xd6, 0x10, 0xc3, 0x26, 0x70, 0x93, 0x4a, 0x6d, 0x9e, 0x6d, 0x9b, 0x78, 0x4b, 0xbf, 0xe7, 0x18, 0x62, 0xbb, 0x38, };
14121 static const u8 ed25519_614_test_vectors_expected_sig[] = {
14122 	0xf6, 0xd0, 0x60, 0xed, 0x7d, 0x18, 0x27, 0x3f, 0x18, 0xf7, 0xa6, 0x9c, 0xd1, 0xd8, 0x12, 0x6e, 0x47, 0x8e, 0x88, 0xa1, 0xd7, 0x29, 0x4f, 0xf6, 0x04, 0x08, 0x46, 0xd4, 0x61, 0x07, 0xc3, 0xe4, 0x1a, 0x42, 0x3b, 0xab, 0xb2, 0x41, 0x71, 0x39, 0xfe, 0x58, 0x7d, 0x29, 0x10, 0x27, 0x1a, 0x35, 0x7f, 0xe5, 0xbf, 0x57, 0xc9, 0x2e, 0xe3, 0xa7, 0xb7, 0x75, 0x33, 0x72, 0x9d, 0x0a, 0xc2, 0x0d, };
14123 static const ec_test_case ed25519_614_test_case = {
14124 	.name = "EDDSA25519-SHA512/wei25519 614",
14125 	.ec_str_p = &wei25519_str_params,
14126 	.priv_key = ed25519_614_test_vectors_priv_key,
14127 	.priv_key_len = sizeof(ed25519_614_test_vectors_priv_key),
14128 	.nn_random = NULL,
14129 	.hash_type = SHA512,
14130 	.msg = (const char *)ed25519_614_test_vectors_message,
14131 	.msglen = sizeof(ed25519_614_test_vectors_message),
14132 	.sig_type = EDDSA25519,
14133 	.exp_sig = ed25519_614_test_vectors_expected_sig,
14134 	.exp_siglen = sizeof(ed25519_614_test_vectors_expected_sig),
14135 	.adata = NULL,
14136 	.adata_len = 0
14137 };
14138 
14139 /************************************************/
14140 static const u8 ed25519_615_test_vectors_priv_key[] = {
14141 	0x10, 0x3d, 0x11, 0x8c, 0x7d, 0xd6, 0x5d, 0x07, 0xe8, 0xd5, 0x58, 0x2e, 0x45, 0x04, 0x2a, 0x75, 0x79, 0x24, 0x17, 0xc6, 0x92, 0x00, 0x1e, 0xe6, 0xbd, 0x9a, 0x92, 0x7b, 0x2b, 0x3d, 0x90, 0x16, };
14142 static const u8 ed25519_615_test_vectors_message[] = {
14143 	0x5a, 0x8e, 0xe0, 0x79, 0x18, 0x6b, 0x51, 0xcf, 0x46, 0x29, 0x83, 0x4d, 0xe0, 0xc6, 0xbd, 0x73, 0x34, 0x85, 0x50, 0x39, 0xa7, 0x63, 0x1d, 0x68, 0x87, 0x65, 0x2a, 0x77, 0x28, 0x99, 0x59, 0x72, 0xe3, 0x62, 0xc1, 0xc4, 0x09, 0xf0, 0x84, 0xf5, 0xaa, 0xf2, 0x98, 0x6a, 0xe3, 0xf5, 0x36, 0xbe, 0x00, 0x70, 0xc4, 0xba, 0xf4, 0x59, 0xef, 0x60, 0xa0, 0x15, 0xef, 0x9d, 0x70, 0xdf, 0xa3, 0xea, 0x96, 0x71, 0x1c, 0xbb, 0x18, 0xe9, 0x2a, 0xf5, 0x0c, 0x52, 0x7d, 0x7e, 0xd4, 0x57, 0x87, 0x7a, 0x07, 0xab, 0x83, 0x72, 0x15, 0x18, 0xc8, 0x9f, 0x7a, 0x86, 0x41, 0x91, 0xb1, 0xe9, 0x74, 0x33, 0xb7, 0xc6, 0xcd, 0x63, 0x4a, 0x83, 0x2e, 0x19, 0x89, 0x1e, 0x76, 0xc6, 0x21, 0x22, 0xa4, 0x9d, 0xbf, 0xfd, 0x83, 0x49, 0x8a, 0xa4, 0x16, 0xac, 0xcc, 0xb7, 0x73, 0x7f, 0xe7, 0x5f, 0x4f, 0xb2, 0xc3, 0x53, 0x28, 0xe6, 0xf6, 0xec, 0xec, 0xaa, 0xa4, 0x2e, 0x43, 0xdb, 0xa5, 0xbc, 0x96, 0x89, 0x67, 0x3d, 0xab, 0x96, 0xf0, 0xbe, 0xfa, 0x3c, 0x83, 0xeb, 0x41, 0xd4, 0xd8, 0x87, 0xb3, 0xa1, 0x17, 0xd0, 0x55, 0xe3, 0x0b, 0xb8, 0x7f, 0xbe, 0x7c, 0x71, 0x94, 0x72, 0xf6, 0xc7, 0xa4, 0xcc, 0x45, 0xf6, 0x28, 0xf5, 0xfa, 0xdd, 0xc4, 0x8c, 0xa3, 0x44, 0xf7, 0x7b, 0x73, 0x3c, 0x0e, 0x3b, 0x9f, 0x50, 0x79, 0xdb, 0xd0, 0x7a, 0xf3, 0xa3, 0x84, 0x7a, 0xf1, 0x41, 0x71, 0x9c, 0xca, 0x2f, 0x6a, 0x76, 0x65, 0x52, 0xb4, 0x5d, 0x0f, 0xdc, 0xdb, 0x98, 0x68, 0xf2, 0xc7, 0x62, 0xb6, 0xd4, 0x93, 0x3b, 0xa1, 0x08, 0x36, 0xf9, 0x5b, 0xff, 0x71, 0xcb, 0x88, 0x04, 0x00, 0x24, 0xc9, 0x05, 0x34, 0xc4, 0xd7, 0xa9, 0x5a, 0x23, 0x03, 0xb0, 0x4c, 0x29, 0x61, 0x01, 0x2a, 0xf5, 0x8b, 0xc7, 0x84, 0xa9, 0x63, 0x27, 0xbb, 0xfe, 0xd0, 0x39, 0xd0, 0x80, 0x2a, 0x05, 0x26, 0x2d, 0x8e, 0x66, 0x3b, 0x78, 0x50, 0x8e, 0x92, 0x50, 0x8b, 0xc1, 0xf2, 0xea, 0x2b, 0x9b, 0xe7, 0x58, 0x0b, 0xde, 0x10, 0xa4, 0xd6, 0x63, 0xd0, 0xd2, 0x5b, 0x0e, 0x97, 0x3b, 0x8c, 0x5d, 0xed, 0x59, 0xde, 0xbf, 0x19, 0xbb, 0x04, 0x4a, 0xff, 0x1c, 0x60, 0xc7, 0x0e, 0xa1, 0xae, 0xfe, 0x85, 0xf6, 0xd1, 0x5c, 0x2c, 0x1b, 0x84, 0x75, 0x3b, 0x59, 0x57, 0x6a, 0x49, 0x47, 0x3d, 0x65, 0xaf, 0x3e, 0xd9, 0x41, 0xa3, 0xd5, 0x14, 0xb5, 0xc4, 0x52, 0x2c, 0x14, 0x1b, 0xdb, 0xee, 0xd9, 0xcb, 0x33, 0x96, 0x95, 0xb2, 0xe0, 0x2d, 0xc0, 0x70, 0x00, 0x86, 0x7f, 0x1b, 0xf8, 0xed, 0x8c, 0xfd, 0x3b, 0x1a, 0xfe, 0x68, 0x8f, 0xbc, 0xa8, 0x0e, 0x2f, 0x9b, 0xa5, 0xc0, 0xb1, 0x88, 0xa1, 0x9a, 0xda, 0xff, 0x66, 0x86, 0xca, 0x0f, 0xf0, 0xed, 0xd4, 0x44, 0x66, 0x12, 0x91, 0xfa, 0x27, 0xca, 0x1f, 0xc5, 0x29, 0x42, 0x9a, 0x5d, 0x8f, 0xf7, 0x9e, 0xd2, 0x02, 0x7c, 0x60, 0xff, 0xe3, 0xb2, 0xc0, 0x3f, 0xb8, 0xa6, 0x6a, 0x39, 0x85, 0x41, 0x7b, 0xa4, 0xac, 0xe7, 0xd1, 0x4f, 0xd0, 0xe2, 0x37, 0x1e, 0xdf, 0x5d, 0x71, 0xbc, 0x02, 0xb9, 0x05, 0x27, 0x67, 0xc7, 0xf7, 0x2c, 0x4e, 0x6f, 0x3f, 0x30, 0xe0, 0x63, 0x82, 0x76, 0xb9, 0xc4, 0x20, 0xaa, 0x43, 0x33, 0x09, 0x5d, 0x31, 0x31, 0x30, 0x33, 0x09, 0x05, 0x82, 0xe3, 0xac, 0x4d, 0x9f, 0xd3, 0x20, 0x31, 0x20, 0xba, 0x25, 0x14, 0x97, 0x3a, 0xb9, 0xd1, 0xc7, 0xfc, 0x42, 0x29, 0x01, 0x16, 0xb5, 0x1d, 0xae, 0x9f, 0xd5, 0x79, 0x41, 0x0a, 0xe0, 0x78, 0xed, 0x32, 0x0a, 0x5a, 0x1b, 0x49, 0xaa, 0x7b, 0x5f, 0xef, 0xcd, 0x75, 0x63, 0x95, 0x21, 0x3a, 0xf8, 0x64, 0x1e, 0x29, 0xb0, 0xeb, 0xb5, 0xb8, 0x3e, 0x37, 0x80, 0xe5, 0xd1, 0x0e, 0x9d, 0x3d, 0x11, 0x99, 0x81, 0x48, 0xf6, 0xc6, 0xf8, 0x6c, 0x4d, 0x4e, 0xb2, 0x52, 0xe2, 0x8c, 0x70, 0xfa, 0x3a, 0x55, 0xc4, 0x3d, 0x4d, 0x7f, 0xaa, 0xfc, 0xbc, 0xdd, 0x45, 0xad, 0x26, 0x37, 0xf2, 0x15, 0xe8, 0x15, 0x49, 0xeb, 0x8a, 0x4c, 0xde, 0x47, 0x15, 0xb7, 0x10, 0x72, 0x07, 0x50, 0x3a, 0x79, 0x59, 0x50, 0x60, 0xb8, 0x3a, 0xce, 0x8f, 0xeb, 0x67, 0x3b, 0x99, 0x79, 0x68, 0x46, 0x9d, 0xd9, 0xb4, 0xad, 0x6a, 0x7e, 0xa8, 0x1c, 0x6e, 0x61, 0x81, 0x00, 0x33, 0xf3, 0xed, 0xfc, 0x13, 0x7d, 0x97, 0x42, 0x09, 0x57, 0x5c, };
14144 static const u8 ed25519_615_test_vectors_expected_sig[] = {
14145 	0x2f, 0xaf, 0xc1, 0x3c, 0x43, 0xaf, 0xe5, 0x05, 0x43, 0x72, 0xb9, 0x23, 0xd2, 0x4f, 0x29, 0x2b, 0x28, 0x3a, 0xfc, 0xa3, 0xac, 0xa3, 0xb3, 0xe4, 0x32, 0x38, 0x06, 0x84, 0x96, 0x17, 0x13, 0xc8, 0xd2, 0x3e, 0x86, 0xb3, 0x58, 0x04, 0x95, 0xdf, 0xba, 0xe4, 0x24, 0xb7, 0x67, 0xe4, 0x79, 0x5a, 0x0f, 0x92, 0x2f, 0x71, 0xb5, 0x0f, 0x5d, 0x7a, 0x36, 0x9a, 0xb8, 0xc6, 0xe8, 0x80, 0x42, 0x0c, };
14146 static const ec_test_case ed25519_615_test_case = {
14147 	.name = "EDDSA25519-SHA512/wei25519 615",
14148 	.ec_str_p = &wei25519_str_params,
14149 	.priv_key = ed25519_615_test_vectors_priv_key,
14150 	.priv_key_len = sizeof(ed25519_615_test_vectors_priv_key),
14151 	.nn_random = NULL,
14152 	.hash_type = SHA512,
14153 	.msg = (const char *)ed25519_615_test_vectors_message,
14154 	.msglen = sizeof(ed25519_615_test_vectors_message),
14155 	.sig_type = EDDSA25519,
14156 	.exp_sig = ed25519_615_test_vectors_expected_sig,
14157 	.exp_siglen = sizeof(ed25519_615_test_vectors_expected_sig),
14158 	.adata = NULL,
14159 	.adata_len = 0
14160 };
14161 
14162 /************************************************/
14163 static const u8 ed25519_616_test_vectors_priv_key[] = {
14164 	0x47, 0xee, 0xe2, 0x02, 0x4d, 0xbe, 0x09, 0x95, 0x3e, 0x98, 0x1f, 0x69, 0x86, 0x52, 0x0f, 0x66, 0x60, 0x82, 0xaa, 0x9e, 0xf4, 0x89, 0x2d, 0xfd, 0xfb, 0xdb, 0xd2, 0x50, 0xd2, 0xa1, 0xdf, 0x28, };
14165 static const u8 ed25519_616_test_vectors_message[] = {
14166 	0xc1, 0x33, 0xf0, 0x33, 0xcf, 0x3b, 0xec, 0x6c, 0xd1, 0x92, 0x12, 0xea, 0x47, 0xdb, 0xec, 0xb1, 0x3f, 0x2c, 0x60, 0x18, 0xf9, 0xe0, 0x87, 0x8a, 0xc8, 0x84, 0xbf, 0xb5, 0x75, 0xc0, 0xf5, 0xd3, 0xfc, 0x5b, 0x49, 0x99, 0x58, 0x0e, 0xb8, 0xac, 0xbc, 0xaa, 0xc8, 0x3a, 0xe9, 0xac, 0x9b, 0x44, 0x3e, 0x6d, 0x1c, 0xff, 0x44, 0x9c, 0x36, 0x89, 0xb4, 0x33, 0xd5, 0x09, 0x00, 0xb2, 0xe8, 0xb7, 0x1d, 0x00, 0xe1, 0x19, 0xc8, 0xb8, 0x75, 0x09, 0x4b, 0xda, 0xb9, 0x16, 0xad, 0xaa, 0xb7, 0x5b, 0xcc, 0x85, 0x29, 0x59, 0xd8, 0xd7, 0x59, 0x79, 0x5b, 0xbd, 0x6b, 0x36, 0x0e, 0xe4, 0x84, 0xaf, 0xe4, 0x7b, 0x1a, 0xd2, 0x83, 0x91, 0xf2, 0x5a, 0xfb, 0x8d, 0x4e, 0x3a, 0xfe, 0x0c, 0x5b, 0x60, 0x04, 0x98, 0xa1, 0x28, 0x33, 0xfe, 0x2a, 0x1a, 0x54, 0x83, 0xdf, 0x94, 0x0b, 0x17, 0x3b, 0xa0, 0xd9, 0xd8, 0xc4, 0xd1, 0x32, 0x1f, 0xa4, 0xb7, 0x33, 0x33, 0x4b, 0x0f, 0x6d, 0x87, 0x8a, 0x0e, 0x5a, 0x76, 0xf4, 0xf1, 0x80, 0xac, 0x11, 0x9a, 0x82, 0x08, 0x2a, 0xcb, 0x14, 0x88, 0xe4, 0x9b, 0xbc, 0xa7, 0xa0, 0x36, 0x9c, 0x19, 0x1b, 0xd6, 0xd0, 0xc5, 0xd4, 0x45, 0x65, 0x68, 0x21, 0xa9, 0x9c, 0xcb, 0xc9, 0x45, 0x94, 0x9e, 0xca, 0x81, 0x36, 0xcc, 0x6e, 0x12, 0x7d, 0x9d, 0xe9, 0x2e, 0xf6, 0x4f, 0x17, 0x4a, 0x6c, 0x04, 0xc8, 0xb5, 0xe5, 0x24, 0x95, 0xf0, 0xdd, 0x67, 0x4b, 0xb5, 0xca, 0x12, 0x8a, 0x92, 0x09, 0x96, 0x8f, 0xd4, 0x50, 0xdc, 0xe3, 0x19, 0x91, 0x3f, 0xd6, 0xa3, 0x0c, 0x33, 0x82, 0x79, 0x81, 0x63, 0xe6, 0x58, 0x5f, 0x58, 0xef, 0x20, 0x8b, 0xe4, 0xd0, 0xc6, 0xa2, 0x51, 0x3a, 0x75, 0x23, 0x88, 0x39, 0x7a, 0x4a, 0xe4, 0x44, 0x83, 0x8c, 0x84, 0x66, 0xdb, 0xc3, 0x6f, 0xbc, 0x36, 0xae, 0x08, 0xbe, 0xc8, 0x8e, 0xed, 0xa1, 0x31, 0xc1, 0x4d, 0x06, 0x36, 0x6b, 0x67, 0x31, 0x51, 0x45, 0x41, 0x00, 0xde, 0xa1, 0x11, 0x81, 0x50, 0xfb, 0xe4, 0x41, 0xb1, 0xe7, 0x82, 0x6e, 0x54, 0x5d, 0x98, 0x68, 0x24, 0x2e, 0x89, 0x9f, 0x5e, 0xa5, 0x3e, 0x43, 0x4c, 0x37, 0x93, 0x6c, 0xe6, 0xfd, 0x06, 0x14, 0x62, 0x83, 0xe8, 0xfb, 0xd5, 0x36, 0x48, 0x0d, 0xe5, 0x5a, 0x16, 0x10, 0x2c, 0x44, 0x75, 0x4b, 0xc5, 0x54, 0xd5, 0xbc, 0x2d, 0xe2, 0xf2, 0x5e, 0x19, 0xe5, 0x67, 0xa0, 0x23, 0xdf, 0x46, 0x40, 0xe7, 0x4f, 0xf3, 0xa4, 0x9e, 0x4d, 0xd3, 0x0e, 0x0e, 0x25, 0x58, 0xb3, 0xdb, 0xc2, 0xaa, 0xb9, 0x2f, 0xdd, 0x5e, 0x79, 0x42, 0x5e, 0xcb, 0xc4, 0xc6, 0x99, 0xfe, 0x1f, 0x16, 0x19, 0x65, 0xf1, 0xd0, 0xb4, 0x5d, 0x8b, 0xda, 0xb5, 0x2e, 0xc9, 0xbf, 0x7a, 0x69, 0xd8, 0xaa, 0x0b, 0xd1, 0x71, 0xe7, 0x55, 0xce, 0x7b, 0x8d, 0x07, 0x18, 0xf7, 0x26, 0x7a, 0xfb, 0x73, 0x3e, 0xfc, 0xa5, 0x4b, 0x21, 0x3e, 0x6f, 0x5a, 0xda, 0xb4, 0xc9, 0xd7, 0x6c, 0x86, 0x7f, 0xcb, 0x69, 0xae, 0x05, 0xc7, 0x4b, 0xd2, 0x15, 0x16, 0xcf, 0x34, 0x2c, 0x61, 0x61, 0xf6, 0xfc, 0x9e, 0xcc, 0xac, 0xf9, 0x70, 0xeb, 0xce, 0x54, 0x0c, 0xd8, 0x92, 0xbc, 0x10, 0x6c, 0x6b, 0xd5, 0x63, 0x61, 0x02, 0x98, 0xb7, 0x09, 0x68, 0xf0, 0x91, 0xbc, 0xc6, 0xe1, 0xf7, 0xab, 0x4a, 0x5b, 0x2c, 0x63, 0x74, 0xa1, 0x90, 0x3f, 0x4d, 0x3a, 0xd5, 0xe1, 0xbd, 0x86, 0x43, 0xa9, 0xc2, 0xf8, 0x78, 0xc3, 0xd7, 0xa4, 0xdc, 0x49, 0xef, 0x31, 0x97, 0xed, 0xbc, 0xda, 0x7b, 0xb9, 0x1e, 0x7e, 0x06, 0x60, 0x60, 0x87, 0xd4, 0xe9, 0x81, 0xbf, 0xab, 0x93, 0xa6, 0x02, 0x49, 0x77, 0x96, 0x2e, 0x45, 0x26, 0x25, 0x17, 0xf3, 0x38, 0xb6, 0x85, 0x7e, 0xec, 0x21, 0x58, 0xa2, 0x97, 0xb2, 0xaa, 0x91, 0x52, 0x4b, 0x67, 0x7a, 0x21, 0xaa, 0xc5, 0x7b, 0xe0, 0xb6, 0x3a, 0x80, 0x74, 0xfe, 0x54, 0xe7, 0xa9, 0xdc, 0x70, 0xc5, 0xa5, 0xc3, 0xde, 0x72, 0x8b, 0x9c, 0x17, 0xec, 0x12, 0x12, 0xab, 0x11, 0x30, 0xeb, 0x17, 0x62, 0x2c, 0xd7, 0xb2, 0x2a, 0xb6, 0xeb, 0xa9, 0x18, 0x5e, 0x8d, 0x67, 0xbe, 0x6c, 0x47, 0xa2, 0xe5, 0xad, 0xc6, 0x63, 0xd4, 0x64, 0x2c, 0xc1, 0x20, 0x22, 0x2e, 0x29, 0x9f, 0xe1, 0x34, 0xfd, 0x7f, 0xcd, 0x00, 0xad, 0xab, 0xcf, 0xaa, 0x64, 0x2f, 0xe2, 0xe0, 0x8d, 0xd5, 0x2e, 0x2c, 0x3f, 0x32, };
14167 static const u8 ed25519_616_test_vectors_expected_sig[] = {
14168 	0x5d, 0xef, 0xae, 0x0e, 0x17, 0x3e, 0xcc, 0x18, 0xd5, 0xf0, 0x1e, 0xc9, 0x29, 0x1b, 0xe1, 0x60, 0xd5, 0xea, 0xbf, 0xf6, 0x3f, 0xd5, 0x42, 0x3f, 0x2b, 0xc6, 0x6e, 0x3f, 0x64, 0x08, 0xc1, 0x96, 0x35, 0x35, 0x02, 0xdc, 0xef, 0x21, 0xef, 0xfa, 0x4b, 0x9c, 0x14, 0xbf, 0x27, 0xb6, 0x87, 0xd1, 0xb6, 0xe8, 0x6b, 0x2a, 0x20, 0x5a, 0x89, 0xeb, 0x35, 0xc3, 0x76, 0xa3, 0xa3, 0x25, 0x69, 0x0d, };
14169 static const ec_test_case ed25519_616_test_case = {
14170 	.name = "EDDSA25519-SHA512/wei25519 616",
14171 	.ec_str_p = &wei25519_str_params,
14172 	.priv_key = ed25519_616_test_vectors_priv_key,
14173 	.priv_key_len = sizeof(ed25519_616_test_vectors_priv_key),
14174 	.nn_random = NULL,
14175 	.hash_type = SHA512,
14176 	.msg = (const char *)ed25519_616_test_vectors_message,
14177 	.msglen = sizeof(ed25519_616_test_vectors_message),
14178 	.sig_type = EDDSA25519,
14179 	.exp_sig = ed25519_616_test_vectors_expected_sig,
14180 	.exp_siglen = sizeof(ed25519_616_test_vectors_expected_sig),
14181 	.adata = NULL,
14182 	.adata_len = 0
14183 };
14184 
14185 /************************************************/
14186 static const u8 ed25519_617_test_vectors_priv_key[] = {
14187 	0xb6, 0xc8, 0x8b, 0x4c, 0x90, 0xfd, 0x19, 0xa1, 0x49, 0xd3, 0x81, 0x67, 0x19, 0x53, 0xb9, 0xb1, 0x6d, 0x42, 0x8f, 0x63, 0x61, 0xcf, 0x50, 0x3a, 0x11, 0x04, 0x77, 0xe2, 0x97, 0xf8, 0xd2, 0xf8, };
14188 static const u8 ed25519_617_test_vectors_message[] = {
14189 	0x7f, 0x4b, 0xf4, 0xf5, 0x21, 0x73, 0xef, 0xf0, 0x72, 0xf8, 0x18, 0xd0, 0xaa, 0x97, 0xe6, 0x93, 0x5d, 0x8b, 0xac, 0xcf, 0x48, 0x39, 0x66, 0x32, 0x53, 0xb2, 0x41, 0x4f, 0xe6, 0xb1, 0xf3, 0x4c, 0xf4, 0x3a, 0xb1, 0x20, 0x15, 0x5a, 0x1a, 0x3a, 0xea, 0x7b, 0x48, 0x19, 0xdd, 0xd1, 0x03, 0x16, 0x73, 0xb8, 0xa7, 0xa6, 0xbd, 0x0b, 0x9d, 0xda, 0x4a, 0xde, 0xfe, 0x69, 0x2a, 0x56, 0x16, 0x2c, 0x64, 0x61, 0x80, 0x79, 0x42, 0x64, 0xc5, 0x12, 0x21, 0x15, 0xeb, 0x90, 0xa6, 0xd3, 0x05, 0x4f, 0x08, 0x43, 0x02, 0xdc, 0xe3, 0xd8, 0x36, 0xac, 0x3d, 0xe8, 0x20, 0x63, 0x8b, 0xd8, 0x9a, 0x86, 0xbf, 0x0a, 0x4c, 0x01, 0x54, 0x7c, 0xfd, 0xc5, 0x43, 0xd6, 0x76, 0xfe, 0x16, 0x39, 0xef, 0x72, 0xc5, 0xb8, 0x45, 0xc4, 0x94, 0xe0, 0x78, 0x14, 0xce, 0xc8, 0xa4, 0x7d, 0x03, 0xdf, 0x73, 0xbe, 0x4e, 0x33, 0xc0, 0x5a, 0xfe, 0x9a, 0x19, 0x0d, 0xda, 0x04, 0x33, 0x60, 0x49, 0x6b, 0xe4, 0xcf, 0x3a, 0x63, 0x19, 0xda, 0x9a, 0xb0, 0x64, 0x81, 0x67, 0x7f, 0x1a, 0x43, 0x74, 0xd6, 0x0d, 0x3d, 0x3b, 0x63, 0x94, 0xf8, 0x84, 0x3c, 0x86, 0x9b, 0x0f, 0x41, 0xa1, 0xe8, 0x1c, 0x2b, 0x1a, 0x54, 0xbf, 0x5a, 0xac, 0xbd, 0x98, 0x20, 0x7c, 0x8d, 0xba, 0xcb, 0x36, 0x42, 0x2a, 0x3a, 0xa0, 0x13, 0xd5, 0xe8, 0x49, 0xe0, 0x44, 0xaf, 0x92, 0x85, 0x45, 0xc0, 0x46, 0x09, 0x7c, 0xaf, 0x14, 0x9d, 0x97, 0x02, 0x15, 0x11, 0x5d, 0xea, 0x0b, 0x5a, 0x85, 0x40, 0x1f, 0xf6, 0x72, 0xe0, 0x2e, 0xd4, 0x0b, 0xd0, 0xf5, 0xa4, 0x40, 0xcd, 0x56, 0x49, 0x40, 0x53, 0xc8, 0x96, 0xc3, 0xbd, 0x32, 0x60, 0x63, 0x49, 0xf7, 0xcb, 0xe7, 0xec, 0xe2, 0xa2, 0x23, 0x0c, 0xf2, 0x36, 0xda, 0xc5, 0x9f, 0x78, 0x17, 0x96, 0x5f, 0x3f, 0xa8, 0x0f, 0xb4, 0x8a, 0xa3, 0x0b, 0x0b, 0x19, 0xef, 0xa9, 0xa9, 0x65, 0x91, 0x64, 0x6b, 0xd2, 0x5e, 0x67, 0xc1, 0x85, 0xf7, 0x7e, 0x21, 0xd6, 0x63, 0x0b, 0x28, 0x8d, 0x4e, 0x55, 0x14, 0x6b, 0x2a, 0xbc, 0x15, 0xe9, 0x50, 0x88, 0xd9, 0x36, 0x08, 0x07, 0x75, 0x61, 0x81, 0x54, 0xbb, 0xdd, 0xa1, 0x15, 0x70, 0x2a, 0x2a, 0xfd, 0x6f, 0xd5, 0xf5, 0x6b, 0x92, 0x3e, 0x18, 0x88, 0x33, 0xec, 0x44, 0x89, 0x44, 0xd3, 0x02, 0x83, 0xe3, 0x37, 0x25, 0x42, 0x42, 0xc5, 0x81, 0x2d, 0x72, 0x45, 0xa4, 0xe9, 0x26, 0x70, 0xbc, 0xe3, 0x54, 0x6e, 0xfa, 0xed, 0x22, 0xd2, 0x74, 0xe1, 0xe6, 0x04, 0x8b, 0x5a, 0x0f, 0x01, 0xef, 0xbf, 0x89, 0x5d, 0xc4, 0x24, 0x94, 0xba, 0xf1, 0x74, 0x71, 0x85, 0xcb, 0x1a, 0x4b, 0x88, 0xfd, 0xf1, 0xe6, 0x09, 0x9b, 0xaa, 0xbc, 0x6a, 0x5a, 0xb5, 0xa2, 0x72, 0x7b, 0x1e, 0x24, 0x87, 0x89, 0xd1, 0x70, 0xca, 0xa2, 0x44, 0x96, 0x71, 0xa8, 0xf6, 0xe0, 0x94, 0xc1, 0x13, 0x32, 0xea, 0x0a, 0xc2, 0xaf, 0xe8, 0x81, 0x32, 0xc6, 0x44, 0xff, 0x88, 0x3d, 0x0c, 0x49, 0x9a, 0xd7, 0x6a, 0x93, 0xdf, 0x47, 0x2f, 0xa0, 0x13, 0xea, 0xa2, 0x7a, 0xb4, 0xda, 0xd6, 0x79, 0xd2, 0x51, 0x1b, 0x50, 0x49, 0xc4, 0xe9, 0x8b, 0xaa, 0x2e, 0x7b, 0x00, 0xa5, 0x34, 0x89, 0x1e, 0x29, 0x02, 0x65, 0xed, 0xb0, 0x76, 0xf7, 0xdc, 0xa8, 0xe6, 0xfe, 0xf3, 0xf4, 0x33, 0x03, 0x4a, 0x16, 0x57, 0x5f, 0x0e, 0x53, 0xda, 0x45, 0x77, 0xe6, 0xb1, 0x3f, 0x0c, 0xb0, 0xd7, 0x85, 0x87, 0x0d, 0x0d, 0x09, 0x8d, 0x5d, 0x80, 0xf4, 0x13, 0xa2, 0x68, 0xba, 0x84, 0xe0, 0x43, 0x1a, 0x78, 0x69, 0x23, 0x77, 0x13, 0x78, 0xcd, 0x57, 0xb8, 0x19, 0x22, 0x58, 0xe2, 0x63, 0x3c, 0xdb, 0xe0, 0x3c, 0xc3, 0x16, 0xa0, 0x95, 0x09, 0x70, 0x52, 0x6f, 0xd3, 0xe0, 0x93, 0x76, 0xbc, 0xef, 0x0d, 0x03, 0xb7, 0x07, 0x4e, 0x59, 0xa5, 0xa8, 0x4f, 0xc6, 0x4e, 0x79, 0x5a, 0x81, 0x21, 0x56, 0xd9, 0x60, 0x56, 0x76, 0x50, 0xbb, 0x1e, 0x14, 0x24, 0xb3, 0xcc, 0x9a, 0x4d, 0x99, 0xd5, 0x7b, 0xa8, 0x58, 0xdd, 0x1a, 0x0c, 0xad, 0x35, 0x32, 0xe9, 0x98, 0x14, 0x6e, 0x79, 0x26, 0x40, 0x45, 0xe2, 0x8e, 0xbb, 0xfd, 0x75, 0xa4, 0x26, 0xb0, 0xbb, 0x85, 0x1a, 0x24, 0x4a, 0xd6, 0xbe, 0x7b, 0xd5, 0x76, 0x5a, 0xf4, 0x93, 0xdf, 0xc4, 0x4e, 0xe3, 0x78, 0xcd, 0x04, 0xda, 0xf3, 0x91, 0x7e, 0xef, 0x2a, 0x62, 0x06, };
14190 static const u8 ed25519_617_test_vectors_expected_sig[] = {
14191 	0x74, 0x47, 0xa2, 0x01, 0x81, 0xb0, 0x2c, 0xf1, 0xb6, 0xad, 0x52, 0x95, 0x69, 0xce, 0x43, 0x7c, 0x2a, 0x05, 0x08, 0x11, 0x6f, 0x50, 0x20, 0x5c, 0x41, 0xe6, 0x37, 0x8b, 0x74, 0xfe, 0x2f, 0xc5, 0x36, 0x30, 0xaa, 0x0d, 0xc4, 0xb8, 0x0c, 0x31, 0xcb, 0x26, 0xc8, 0xf0, 0x9b, 0xf8, 0xfa, 0xb2, 0x7e, 0x3a, 0xbc, 0x8f, 0x1f, 0x60, 0x4a, 0x5e, 0xc0, 0x66, 0x31, 0xa8, 0x4f, 0x6f, 0x2e, 0x06, };
14192 static const ec_test_case ed25519_617_test_case = {
14193 	.name = "EDDSA25519-SHA512/wei25519 617",
14194 	.ec_str_p = &wei25519_str_params,
14195 	.priv_key = ed25519_617_test_vectors_priv_key,
14196 	.priv_key_len = sizeof(ed25519_617_test_vectors_priv_key),
14197 	.nn_random = NULL,
14198 	.hash_type = SHA512,
14199 	.msg = (const char *)ed25519_617_test_vectors_message,
14200 	.msglen = sizeof(ed25519_617_test_vectors_message),
14201 	.sig_type = EDDSA25519,
14202 	.exp_sig = ed25519_617_test_vectors_expected_sig,
14203 	.exp_siglen = sizeof(ed25519_617_test_vectors_expected_sig),
14204 	.adata = NULL,
14205 	.adata_len = 0
14206 };
14207 
14208 /************************************************/
14209 static const u8 ed25519_618_test_vectors_priv_key[] = {
14210 	0x79, 0x49, 0xa9, 0x47, 0x2f, 0x72, 0x5c, 0xe7, 0xc6, 0x8d, 0x7e, 0xa8, 0xfc, 0x16, 0xe1, 0x3d, 0x9e, 0x0e, 0x0a, 0x58, 0xf5, 0x8c, 0x24, 0xf9, 0x22, 0x8c, 0x88, 0xe8, 0x02, 0x64, 0x09, 0x0d, };
14211 static const u8 ed25519_618_test_vectors_message[] = {
14212 	0x95, 0x53, 0x86, 0xb9, 0x2d, 0xd6, 0xbf, 0x92, 0x60, 0x1b, 0xf8, 0x1e, 0x84, 0xd2, 0x51, 0x44, 0xb5, 0xfc, 0x0b, 0xcd, 0x7d, 0x23, 0xc7, 0x6e, 0x7d, 0xeb, 0x5f, 0x5b, 0xa6, 0x31, 0x6b, 0xb6, 0x1a, 0x5d, 0x8e, 0x74, 0x18, 0x5b, 0x01, 0x29, 0x67, 0xf0, 0xa4, 0x43, 0x8b, 0x53, 0x16, 0x96, 0xde, 0xb4, 0xb8, 0x10, 0x10, 0x89, 0xe0, 0xc0, 0x48, 0x2a, 0xdf, 0x13, 0xc0, 0x61, 0x31, 0x91, 0xb9, 0x77, 0xf7, 0x7b, 0x04, 0x19, 0x81, 0x41, 0x47, 0xf5, 0xda, 0x64, 0xa1, 0xd3, 0xbe, 0xb1, 0x27, 0x5b, 0x98, 0x49, 0xd1, 0x29, 0x7b, 0xa8, 0x53, 0x2a, 0xe0, 0xa6, 0x47, 0xa8, 0xac, 0xe3, 0x95, 0xae, 0x0e, 0xd0, 0x0f, 0x67, 0x34, 0x8c, 0x5e, 0xe5, 0xea, 0x19, 0xb5, 0xf1, 0xc5, 0xbd, 0x2e, 0x62, 0x28, 0x18, 0xe8, 0xad, 0xcb, 0xa3, 0xc1, 0x7c, 0x27, 0x98, 0x7e, 0x4e, 0x3d, 0x6d, 0x91, 0x0a, 0x56, 0xc7, 0xe5, 0x14, 0x9d, 0x3f, 0x55, 0x74, 0xfc, 0x06, 0x00, 0x9b, 0xf4, 0xdd, 0x3e, 0x37, 0xcf, 0xe3, 0xeb, 0xda, 0x2c, 0x21, 0x16, 0xd3, 0x66, 0xdd, 0x88, 0xce, 0x5e, 0xa7, 0x2a, 0xb3, 0x87, 0x49, 0x05, 0x85, 0x44, 0x3b, 0x08, 0x6e, 0x8a, 0xa3, 0x8d, 0x11, 0xd3, 0x82, 0x0b, 0x72, 0xc6, 0x58, 0xe4, 0x63, 0xcd, 0xb5, 0x9c, 0x53, 0x93, 0x01, 0x1d, 0x4a, 0x8f, 0x4c, 0xb6, 0xa1, 0x95, 0x22, 0x93, 0x04, 0xe7, 0x62, 0x39, 0xfa, 0x5e, 0x8c, 0x2c, 0xbe, 0x0f, 0x39, 0xdc, 0xad, 0x13, 0x8a, 0x0e, 0xcb, 0x3c, 0x51, 0x57, 0x9e, 0xc9, 0xa1, 0x20, 0xa5, 0x16, 0x07, 0xee, 0xfe, 0xbf, 0xa5, 0x9a, 0x44, 0x62, 0x0e, 0xa5, 0xb1, 0x91, 0x60, 0x87, 0xea, 0x33, 0x85, 0x33, 0xfc, 0x13, 0x2f, 0xf2, 0xe4, 0xa4, 0x3d, 0x05, 0x2f, 0xd0, 0x8b, 0x6b, 0x1b, 0x24, 0xfb, 0x67, 0x2f, 0x73, 0xc9, 0xb9, 0xba, 0x20, 0xb7, 0xc1, 0xc4, 0x1e, 0xa2, 0x4d, 0x91, 0x2d, 0xe9, 0xb5, 0x55, 0xb6, 0xe5, 0x68, 0x2b, 0x97, 0x06, 0x08, 0xff, 0x22, 0x9a, 0xd3, 0x08, 0x6f, 0x43, 0x1f, 0x9b, 0xe1, 0x90, 0xec, 0x39, 0x22, 0x4b, 0xa2, 0xed, 0x8a, 0xcb, 0x4c, 0x8e, 0xac, 0x85, 0x82, 0xe2, 0x3a, 0xaa, 0x79, 0x82, 0x7c, 0x44, 0xe2, 0x48, 0xc5, 0xba, 0x09, 0x2d, 0xda, 0xc0, 0xf2, 0xf7, 0x96, 0x84, 0xaa, 0x93, 0xfc, 0x06, 0x10, 0x73, 0xe1, 0x82, 0x1a, 0x56, 0xaf, 0xb9, 0xbf, 0xec, 0x95, 0x2d, 0xf2, 0x71, 0x9a, 0x9c, 0x7a, 0x40, 0x3e, 0x6a, 0x93, 0xf7, 0xa6, 0x56, 0xd7, 0x4b, 0x61, 0xc1, 0xd1, 0x90, 0x83, 0xf8, 0xd3, 0xf1, 0x9e, 0x65, 0x9f, 0xa2, 0xb7, 0x18, 0xe0, 0xbd, 0x04, 0xb6, 0x93, 0xd6, 0x3d, 0xaf, 0xb8, 0x6a, 0xdb, 0xee, 0x5d, 0x87, 0xc7, 0x5b, 0x7d, 0x12, 0x91, 0x22, 0xf1, 0x78, 0xa0, 0xe6, 0x69, 0xeb, 0x03, 0x5c, 0xa4, 0xd8, 0xeb, 0x45, 0x39, 0x7f, 0x18, 0x51, 0x26, 0x4e, 0x2c, 0xf0, 0xa0, 0xcd, 0xd3, 0x07, 0x20, 0xc5, 0xe1, 0x39, 0xcd, 0x6a, 0x57, 0x3f, 0x1f, 0xa2, 0x41, 0xca, 0xe9, 0x42, 0x58, 0x05, 0xac, 0x79, 0x60, 0x3e, 0x8d, 0xe3, 0x50, 0xef, 0xdb, 0x0b, 0x9b, 0xc9, 0x5b, 0xa7, 0xb0, 0x85, 0xc1, 0xed, 0x92, 0xc1, 0x2a, 0xcf, 0x53, 0xf5, 0xd4, 0xa1, 0x13, 0x75, 0x98, 0x00, 0x8f, 0x2a, 0x36, 0x72, 0xc8, 0x4e, 0x5f, 0x76, 0x9a, 0x25, 0xc7, 0xa4, 0xa1, 0x65, 0x79, 0xd8, 0x62, 0x88, 0x77, 0x49, 0x72, 0x60, 0x6e, 0x4e, 0x7d, 0x85, 0x26, 0x3a, 0xd2, 0x17, 0xe0, 0xdb, 0xcf, 0x34, 0x3f, 0xe5, 0x54, 0xc1, 0x09, 0xc5, 0xd9, 0x40, 0x9b, 0x79, 0x39, 0x07, 0x3a, 0xc5, 0x5a, 0x03, 0x42, 0x0f, 0xec, 0x28, 0x9b, 0x11, 0x4a, 0x5c, 0x54, 0xc2, 0x0b, 0x45, 0xea, 0x69, 0x93, 0x85, 0x33, 0xad, 0xe7, 0xb3, 0xae, 0x85, 0xe1, 0xa7, 0x83, 0xdd, 0x97, 0x89, 0x7c, 0x3a, 0xe8, 0x25, 0x41, 0x83, 0xcc, 0x54, 0x04, 0x5c, 0x2a, 0x18, 0xec, 0xbe, 0x52, 0x16, 0x91, 0xf2, 0x61, 0x9d, 0x9b, 0x8f, 0x1f, 0xb3, 0x47, 0xca, 0x05, 0x5a, 0x7b, 0x0b, 0x4c, 0x24, 0xf6, 0x4d, 0x17, 0x73, 0xe0, 0x14, 0x16, 0x44, 0x1e, 0xfe, 0x15, 0x99, 0x23, 0x21, 0x7a, 0x84, 0x87, 0x4b, 0x9c, 0x4e, 0xc2, 0x65, 0xcd, 0xaa, 0xb6, 0x43, 0x90, 0x80, 0x68, 0x49, 0x78, 0x12, 0xc1, 0xaf, 0x15, 0xc1, 0x88, 0x07, 0x1e, 0x78, 0xf5, 0x97, 0xfe, 0xdf, 0xce, 0x91, 0xc5, 0xd4, 0xc6, };
14213 static const u8 ed25519_618_test_vectors_expected_sig[] = {
14214 	0xe0, 0x28, 0x98, 0xcc, 0x7c, 0x30, 0xee, 0x01, 0x64, 0x82, 0x47, 0x49, 0x7b, 0xe8, 0xa9, 0xc6, 0x37, 0x85, 0x93, 0xdc, 0x88, 0x20, 0xbf, 0x7c, 0x17, 0xff, 0xcd, 0x18, 0x11, 0x8a, 0xf0, 0x98, 0x79, 0xa7, 0x69, 0xf5, 0x39, 0xdd, 0x92, 0x37, 0xe9, 0x68, 0x21, 0x16, 0x66, 0x34, 0x99, 0x8f, 0x94, 0x6d, 0xa6, 0x5e, 0x6d, 0xba, 0xd8, 0x27, 0x15, 0x11, 0x66, 0x9e, 0x2d, 0x6c, 0xad, 0x02, };
14215 static const ec_test_case ed25519_618_test_case = {
14216 	.name = "EDDSA25519-SHA512/wei25519 618",
14217 	.ec_str_p = &wei25519_str_params,
14218 	.priv_key = ed25519_618_test_vectors_priv_key,
14219 	.priv_key_len = sizeof(ed25519_618_test_vectors_priv_key),
14220 	.nn_random = NULL,
14221 	.hash_type = SHA512,
14222 	.msg = (const char *)ed25519_618_test_vectors_message,
14223 	.msglen = sizeof(ed25519_618_test_vectors_message),
14224 	.sig_type = EDDSA25519,
14225 	.exp_sig = ed25519_618_test_vectors_expected_sig,
14226 	.exp_siglen = sizeof(ed25519_618_test_vectors_expected_sig),
14227 	.adata = NULL,
14228 	.adata_len = 0
14229 };
14230 
14231 /************************************************/
14232 static const u8 ed25519_619_test_vectors_priv_key[] = {
14233 	0xd6, 0x8a, 0x5e, 0x3c, 0x47, 0xee, 0xdb, 0x30, 0x99, 0xdf, 0xfc, 0x80, 0x4c, 0xf1, 0x9c, 0x5e, 0x74, 0xbf, 0x7b, 0xf5, 0xf0, 0x1f, 0x54, 0xd4, 0xd9, 0x1d, 0x75, 0x74, 0xf3, 0xd3, 0xdc, 0x7c, };
14234 static const u8 ed25519_619_test_vectors_message[] = {
14235 	0x59, 0x6c, 0x03, 0xd0, 0x87, 0x3f, 0x57, 0x2f, 0x45, 0xc3, 0xb1, 0x6f, 0x0e, 0xf4, 0xb5, 0x2a, 0xd2, 0xbf, 0x59, 0xec, 0x76, 0xd3, 0xc0, 0xe5, 0x34, 0xd6, 0x2c, 0x1f, 0x84, 0x16, 0x4d, 0xda, 0xa4, 0x25, 0xfb, 0x85, 0xc9, 0x54, 0x84, 0x85, 0xb7, 0x06, 0x46, 0x77, 0xe9, 0x9d, 0x04, 0xc3, 0x9b, 0x6e, 0xba, 0x04, 0xc9, 0x66, 0x39, 0x7b, 0xa6, 0xa5, 0xf4, 0xeb, 0xaa, 0x69, 0xa2, 0x41, 0xdf, 0x95, 0xa6, 0xe4, 0x45, 0x02, 0x50, 0x9d, 0x63, 0x50, 0x55, 0x7e, 0xbf, 0xea, 0x60, 0x26, 0x4b, 0x62, 0xad, 0x7f, 0x74, 0xd1, 0x6e, 0x5d, 0x25, 0xd4, 0x59, 0x70, 0xcf, 0xeb, 0xeb, 0x33, 0xe7, 0xb1, 0xba, 0xc3, 0x34, 0x8d, 0xd0, 0x3a, 0x8e, 0x99, 0x13, 0x3b, 0x26, 0xbb, 0xfd, 0x7a, 0xa7, 0x22, 0xc2, 0x58, 0x7f, 0x72, 0xd5, 0x52, 0x6e, 0x98, 0x0d, 0xa9, 0xee, 0xbd, 0xf1, 0x08, 0x21, 0x1d, 0xae, 0x50, 0xbb, 0xe8, 0xc6, 0x5f, 0x9a, 0xbe, 0xe6, 0x9a, 0x1b, 0xbf, 0x84, 0xc0, 0x3e, 0x40, 0x44, 0x8b, 0xab, 0xad, 0x03, 0xd3, 0xcf, 0x3b, 0x7d, 0xe4, 0x88, 0x7d, 0x2b, 0x47, 0x73, 0x77, 0x02, 0x79, 0x64, 0x82, 0xd2, 0x26, 0x5c, 0x56, 0x6b, 0x0f, 0x62, 0x3b, 0x53, 0xc8, 0x67, 0x1b, 0xd3, 0x71, 0x9e, 0xde, 0xc0, 0xff, 0xd5, 0xf4, 0x9b, 0x49, 0xb0, 0x72, 0xc1, 0x56, 0x4a, 0x57, 0xf9, 0xba, 0xb6, 0xb9, 0x2d, 0x1f, 0x06, 0x8d, 0x75, 0x66, 0x39, 0xa4, 0x33, 0x14, 0x52, 0xe6, 0x1a, 0xa7, 0xb2, 0x18, 0xa8, 0x8b, 0x9d, 0xb7, 0x7a, 0x19, 0xfb, 0x82, 0xf1, 0x3e, 0x98, 0x68, 0xed, 0xb7, 0x98, 0xd5, 0xbe, 0xec, 0xa5, 0x5d, 0x1a, 0xb0, 0x95, 0xb3, 0x16, 0x22, 0x5f, 0x3f, 0x63, 0x90, 0xf8, 0x95, 0x78, 0xf0, 0x16, 0x04, 0x28, 0x74, 0x7b, 0xcd, 0x21, 0xbe, 0x6a, 0xe1, 0xd8, 0x69, 0x91, 0xb4, 0x8e, 0xf8, 0x0d, 0x56, 0x92, 0x50, 0x85, 0x8f, 0xeb, 0xf3, 0x27, 0x6b, 0xd5, 0xde, 0x3d, 0xb6, 0x5a, 0x24, 0x5c, 0x8b, 0xdc, 0xf1, 0x48, 0x8c, 0x48, 0x25, 0x96, 0x89, 0x45, 0x78, 0x6b, 0xed, 0x63, 0xf3, 0xd1, 0x3f, 0x14, 0x09, 0x36, 0x3b, 0x94, 0x85, 0x60, 0x47, 0x68, 0x58, 0xb3, 0x96, 0xbc, 0xe5, 0x88, 0xe4, 0x0b, 0x31, 0x1d, 0xdf, 0xc2, 0x2a, 0xd6, 0x22, 0xca, 0x7d, 0x1e, 0x69, 0x56, 0x14, 0x64, 0xdd, 0xa5, 0x00, 0x9e, 0x63, 0x8a, 0xa5, 0xec, 0x9f, 0x4c, 0x03, 0x92, 0x93, 0xaa, 0xec, 0x75, 0x00, 0x1f, 0xfc, 0x68, 0xa7, 0xcb, 0x3a, 0xe0, 0x18, 0x74, 0xdc, 0x7f, 0x39, 0xd7, 0x50, 0x27, 0xf5, 0x9a, 0x28, 0x96, 0x5f, 0xc1, 0x95, 0x30, 0xc0, 0x75, 0x2f, 0xe9, 0x9b, 0x15, 0x3d, 0xa7, 0xc0, 0xe5, 0x42, 0xbd, 0xa7, 0x6c, 0xa1, 0xe1, 0x0b, 0x7e, 0xa1, 0x58, 0xef, 0xb4, 0xd8, 0x21, 0xfb, 0xc6, 0x5e, 0x72, 0x71, 0xad, 0x99, 0x41, 0x09, 0x53, 0x15, 0x44, 0x7a, 0xbc, 0xad, 0x08, 0x80, 0xa0, 0x07, 0x5d, 0xd0, 0x4b, 0x13, 0x25, 0xc7, 0x26, 0x33, 0xac, 0xbc, 0xb2, 0x61, 0xfc, 0xb4, 0x07, 0xc2, 0x64, 0xa3, 0x4d, 0x70, 0xbf, 0x1f, 0x04, 0x4f, 0xee, 0xad, 0x06, 0x9a, 0xf5, 0xa8, 0x7d, 0xd3, 0x52, 0xf4, 0xbd, 0x81, 0x10, 0xfa, 0x17, 0x8a, 0xdb, 0xd8, 0xdb, 0xf2, 0x3c, 0x6b, 0x57, 0x5c, 0xdd, 0x5d, 0xf2, 0x2c, 0xc9, 0xa5, 0xcd, 0xd3, 0x7d, 0x9c, 0x8f, 0xaa, 0xb8, 0x1a, 0x4c, 0xb3, 0xfb, 0x5c, 0x4f, 0xe7, 0xff, 0x62, 0x9d, 0xba, 0xa9, 0xfc, 0x06, 0xb8, 0x0c, 0x1f, 0xb6, 0x91, 0xc2, 0x86, 0x55, 0x95, 0x5c, 0xfe, 0x5c, 0xa4, 0x41, 0x49, 0xb1, 0x50, 0xb3, 0xcf, 0x14, 0x0d, 0x9a, 0xca, 0xcb, 0x14, 0x31, 0x3a, 0x72, 0xc8, 0x40, 0x98, 0xde, 0x72, 0xba, 0xcc, 0x02, 0x72, 0xd7, 0x9e, 0xd6, 0x61, 0x7f, 0x72, 0xde, 0xc8, 0x8e, 0x19, 0xb8, 0x44, 0x25, 0x49, 0x2a, 0x42, 0x9e, 0xc6, 0xd2, 0xec, 0x08, 0xb8, 0x63, 0x46, 0xdf, 0xbf, 0x20, 0xea, 0x2a, 0x36, 0x19, 0xe7, 0x7b, 0x6a, 0xc6, 0x42, 0x30, 0xeb, 0xe2, 0x5f, 0xa0, 0x06, 0x7a, 0xbb, 0x5f, 0x33, 0xee, 0x49, 0xad, 0xc7, 0xc4, 0x4b, 0xda, 0x70, 0x46, 0xd7, 0xf2, 0x24, 0xf2, 0xe7, 0xa4, 0x89, 0x56, 0x83, 0xfc, 0xa8, 0x68, 0x4e, 0xd6, 0xa0, 0x31, 0x84, 0x4f, 0x57, 0x86, 0xbc, 0xda, 0x48, 0xb5, 0x04, 0x23, 0x94, 0x48, 0x7b, 0x52, 0x40, 0x2a, 0x09, 0x90, 0x77, 0x88, 0xa1, 0xe1, 0x40, };
14236 static const u8 ed25519_619_test_vectors_expected_sig[] = {
14237 	0x89, 0x6f, 0xc3, 0xca, 0xba, 0x7f, 0xd3, 0xfc, 0x28, 0x5d, 0x5e, 0xdd, 0xdd, 0xc0, 0x12, 0x0c, 0xd4, 0x6d, 0xa7, 0xc6, 0xef, 0xab, 0xe6, 0x6b, 0x15, 0x0b, 0x00, 0x27, 0x60, 0xb8, 0x41, 0x4a, 0x89, 0xac, 0x9e, 0x7f, 0x1f, 0x7b, 0x7c, 0x7b, 0x33, 0x59, 0x8f, 0x61, 0xf4, 0x57, 0x18, 0xe4, 0xff, 0x4a, 0xc3, 0x68, 0xff, 0x12, 0x96, 0x14, 0xb4, 0xfe, 0x92, 0x19, 0xf2, 0x37, 0xb0, 0x09, };
14238 static const ec_test_case ed25519_619_test_case = {
14239 	.name = "EDDSA25519-SHA512/wei25519 619",
14240 	.ec_str_p = &wei25519_str_params,
14241 	.priv_key = ed25519_619_test_vectors_priv_key,
14242 	.priv_key_len = sizeof(ed25519_619_test_vectors_priv_key),
14243 	.nn_random = NULL,
14244 	.hash_type = SHA512,
14245 	.msg = (const char *)ed25519_619_test_vectors_message,
14246 	.msglen = sizeof(ed25519_619_test_vectors_message),
14247 	.sig_type = EDDSA25519,
14248 	.exp_sig = ed25519_619_test_vectors_expected_sig,
14249 	.exp_siglen = sizeof(ed25519_619_test_vectors_expected_sig),
14250 	.adata = NULL,
14251 	.adata_len = 0
14252 };
14253 
14254 /************************************************/
14255 static const u8 ed25519_620_test_vectors_priv_key[] = {
14256 	0x31, 0xe8, 0x2b, 0xc1, 0xcc, 0x5c, 0xed, 0x21, 0xcd, 0xc8, 0xbf, 0xc2, 0xdb, 0xbb, 0x97, 0x6b, 0x08, 0x78, 0x0a, 0xfc, 0x69, 0x44, 0xaf, 0x7e, 0x88, 0xe5, 0x0e, 0x67, 0x87, 0x4d, 0x84, 0xf1, };
14257 static const u8 ed25519_620_test_vectors_message[] = {
14258 	0x69, 0xd4, 0x61, 0xb6, 0xb7, 0xa8, 0x66, 0xe9, 0x4c, 0xd5, 0x9a, 0x5a, 0x23, 0xbb, 0xa4, 0xa1, 0x27, 0x66, 0x02, 0xf0, 0x42, 0xba, 0xa8, 0x50, 0xd5, 0xb2, 0x92, 0x49, 0xd6, 0x74, 0x3a, 0xda, 0x04, 0xd3, 0xd9, 0x38, 0x21, 0x9a, 0xbb, 0xc2, 0x2a, 0xda, 0x66, 0xa1, 0x77, 0x81, 0x97, 0xf7, 0x0b, 0xf8, 0x0b, 0x59, 0x7a, 0x8b, 0x4a, 0xe0, 0x0b, 0xdb, 0x87, 0x68, 0x12, 0xd3, 0xab, 0x4e, 0xc0, 0x11, 0xdf, 0x73, 0x34, 0x1c, 0x85, 0x05, 0x3e, 0xeb, 0xcc, 0x2d, 0xf0, 0xac, 0xfc, 0x21, 0x54, 0x82, 0x83, 0xb5, 0x53, 0xec, 0xde, 0x01, 0x54, 0x82, 0x8e, 0xd5, 0xaf, 0x47, 0x57, 0x19, 0x85, 0xf8, 0x97, 0x67, 0xb0, 0x05, 0xb6, 0x22, 0xc9, 0xe7, 0xc0, 0x79, 0xdd, 0xe6, 0x94, 0xe4, 0x9d, 0xc0, 0x55, 0x0c, 0x79, 0x18, 0xcc, 0x51, 0x5c, 0x27, 0x4d, 0xbd, 0x9c, 0x54, 0x69, 0xd2, 0xf1, 0x8e, 0xcd, 0x90, 0xde, 0x66, 0x4e, 0x03, 0xca, 0x41, 0xe5, 0x3b, 0xe2, 0x0b, 0x96, 0xe2, 0x5a, 0xf4, 0x0c, 0x54, 0xab, 0x0f, 0x7c, 0xbe, 0x9e, 0x05, 0xca, 0x3f, 0xa5, 0xa3, 0x7c, 0x1a, 0xa8, 0xeb, 0xfb, 0x64, 0x44, 0xa3, 0x2c, 0x49, 0x6e, 0xfc, 0x68, 0x15, 0x7c, 0x69, 0xf3, 0x58, 0xc1, 0x5f, 0x6a, 0xc0, 0x9d, 0x46, 0xef, 0xef, 0x9a, 0x68, 0x5d, 0xf7, 0xe8, 0xdd, 0x63, 0xb3, 0x04, 0xbd, 0x3c, 0x63, 0x8c, 0xcf, 0x53, 0x2f, 0xe9, 0x01, 0xf1, 0x1c, 0xf9, 0x7c, 0x5b, 0x1c, 0xbe, 0xd3, 0x3c, 0x70, 0x63, 0x7c, 0x72, 0x1b, 0x02, 0x89, 0xad, 0xf6, 0xbb, 0x6d, 0x87, 0xc3, 0x04, 0x79, 0xfa, 0x92, 0x6e, 0x04, 0x30, 0x74, 0x30, 0x2b, 0x76, 0xf1, 0x15, 0x7d, 0x0a, 0x81, 0xde, 0xc4, 0x93, 0xe8, 0x7a, 0x3c, 0x64, 0x3e, 0x7a, 0x20, 0xb7, 0xa4, 0x15, 0x25, 0xa3, 0x8d, 0xb0, 0x4e, 0x78, 0xda, 0xe5, 0xe7, 0x79, 0x70, 0x66, 0xbf, 0xae, 0x2c, 0xf4, 0x48, 0xa4, 0x47, 0xe9, 0x00, 0x4c, 0xce, 0x8e, 0x41, 0xf0, 0x98, 0x79, 0x91, 0xfa, 0xd3, 0x03, 0x11, 0xdd, 0xaa, 0x45, 0x9a, 0x26, 0x44, 0xf4, 0xb9, 0x41, 0xc0, 0x68, 0xc0, 0xd6, 0xc0, 0x77, 0x1a, 0xfc, 0xf4, 0x2b, 0xf9, 0x13, 0x9a, 0x68, 0x4d, 0xa2, 0x98, 0x48, 0x6e, 0xcf, 0x67, 0x52, 0x3b, 0xf8, 0x50, 0x9a, 0x45, 0xba, 0x5c, 0xb8, 0xb3, 0x86, 0x4a, 0xd2, 0x2c, 0x0c, 0x6a, 0x82, 0x8c, 0x6d, 0xb7, 0x2e, 0x37, 0x1d, 0xe4, 0x10, 0xb4, 0x7d, 0xac, 0x49, 0xae, 0x9d, 0x3b, 0x57, 0x02, 0xb1, 0x73, 0x9b, 0x8d, 0x76, 0x0c, 0xe9, 0x86, 0x11, 0xc0, 0x7d, 0x88, 0xdf, 0x5f, 0x04, 0x68, 0x38, 0x08, 0xa2, 0x1a, 0xfc, 0x2e, 0x61, 0x71, 0x3f, 0xc2, 0xc0, 0x25, 0xcb, 0x25, 0xfc, 0xc4, 0xee, 0x94, 0x18, 0x41, 0x08, 0x3b, 0x22, 0xf6, 0x1e, 0x26, 0x56, 0xfb, 0x3b, 0x8d, 0xad, 0x41, 0xc2, 0x62, 0xc8, 0x9d, 0x2f, 0x17, 0x61, 0x03, 0x09, 0xf2, 0xd5, 0xc2, 0x95, 0x89, 0xa2, 0xdf, 0x61, 0xe5, 0x51, 0x49, 0x89, 0x50, 0x32, 0xca, 0x98, 0x1e, 0x45, 0x57, 0xe1, 0x30, 0xa2, 0x37, 0xfc, 0x08, 0x26, 0xfc, 0x87, 0x25, 0x29, 0x86, 0x1b, 0xbb, 0x83, 0x28, 0xd6, 0x73, 0xf3, 0x9b, 0x58, 0xb7, 0x3d, 0x06, 0x0e, 0xc5, 0x96, 0xbf, 0x22, 0xe7, 0xee, 0x08, 0x1f, 0x44, 0xe9, 0x2c, 0x02, 0xa5, 0x67, 0x76, 0x79, 0x52, 0x0e, 0x2a, 0x2b, 0x4d, 0x22, 0xc7, 0x7f, 0x2b, 0x21, 0x2d, 0x5a, 0xaf, 0x05, 0x0b, 0xf2, 0xc1, 0x41, 0xe3, 0xe2, 0x8b, 0x85, 0x71, 0xd4, 0x32, 0x19, 0x37, 0x42, 0x62, 0x35, 0xc7, 0xa6, 0x46, 0xd6, 0x47, 0xe3, 0xef, 0xe1, 0x83, 0xc2, 0x7b, 0x74, 0x92, 0x56, 0x5e, 0xca, 0xcd, 0x7f, 0x43, 0xc6, 0x7a, 0x74, 0x45, 0x3f, 0x47, 0x80, 0xe8, 0x87, 0x11, 0xba, 0x2d, 0xd4, 0xa3, 0x94, 0x1b, 0x12, 0xdd, 0xd3, 0x90, 0x92, 0x70, 0xfb, 0x3d, 0xeb, 0xd4, 0x22, 0x43, 0x6a, 0xb6, 0x16, 0x6f, 0x08, 0xc9, 0x9c, 0x88, 0x6c, 0xc0, 0xe8, 0xe3, 0xce, 0xcd, 0x06, 0x42, 0xe4, 0x42, 0x85, 0xb8, 0x86, 0x4a, 0xa4, 0x16, 0x94, 0x3c, 0x5a, 0x18, 0x69, 0x74, 0xf4, 0x64, 0x53, 0x5a, 0x87, 0x0a, 0x01, 0x28, 0x61, 0xbc, 0x2e, 0x58, 0x71, 0x49, 0xca, 0xe9, 0x71, 0x62, 0x4e, 0x61, 0xc3, 0x1d, 0x8a, 0x50, 0x7e, 0x3a, 0xd8, 0x27, 0x73, 0xe7, 0x23, 0xbc, 0xb7, 0x5d, 0xf5, 0x4b, 0xef, 0x84, 0x7a, 0x40, 0x7b, 0xcb, 0x7b, 0x1d, 0x57, };
14259 static const u8 ed25519_620_test_vectors_expected_sig[] = {
14260 	0x24, 0x07, 0x02, 0xac, 0x6c, 0x68, 0xd5, 0x97, 0xd2, 0x22, 0xda, 0x94, 0x9d, 0x0c, 0x47, 0xd1, 0x6b, 0x39, 0x0a, 0x47, 0x7d, 0x1f, 0xb5, 0x79, 0xe9, 0xd8, 0x94, 0x8a, 0xdf, 0x9b, 0x3b, 0x6a, 0x7f, 0xd4, 0x45, 0x8a, 0xe6, 0x38, 0x5b, 0x7e, 0x2b, 0x68, 0x4a, 0x05, 0xb5, 0x5c, 0x63, 0xfa, 0x6c, 0xd0, 0x87, 0xbb, 0x90, 0x11, 0x3c, 0xba, 0xb8, 0xe4, 0xaf, 0x14, 0x2f, 0xcf, 0x81, 0x0e, };
14261 static const ec_test_case ed25519_620_test_case = {
14262 	.name = "EDDSA25519-SHA512/wei25519 620",
14263 	.ec_str_p = &wei25519_str_params,
14264 	.priv_key = ed25519_620_test_vectors_priv_key,
14265 	.priv_key_len = sizeof(ed25519_620_test_vectors_priv_key),
14266 	.nn_random = NULL,
14267 	.hash_type = SHA512,
14268 	.msg = (const char *)ed25519_620_test_vectors_message,
14269 	.msglen = sizeof(ed25519_620_test_vectors_message),
14270 	.sig_type = EDDSA25519,
14271 	.exp_sig = ed25519_620_test_vectors_expected_sig,
14272 	.exp_siglen = sizeof(ed25519_620_test_vectors_expected_sig),
14273 	.adata = NULL,
14274 	.adata_len = 0
14275 };
14276 
14277 /************************************************/
14278 static const u8 ed25519_621_test_vectors_priv_key[] = {
14279 	0xcc, 0x56, 0xbc, 0x7c, 0xdf, 0xa6, 0x11, 0x92, 0x4e, 0x72, 0xb0, 0x7f, 0x68, 0xab, 0xc6, 0xca, 0x5b, 0x85, 0xff, 0x8b, 0xba, 0xcd, 0xff, 0x40, 0x6e, 0x51, 0xba, 0x72, 0x0d, 0x09, 0xa8, 0x66, };
14280 static const u8 ed25519_621_test_vectors_message[] = {
14281 	0x08, 0x83, 0x04, 0xf2, 0x2e, 0x1a, 0x28, 0x60, 0x62, 0xde, 0xfb, 0xeb, 0xb1, 0x82, 0x7a, 0x64, 0xb7, 0x6a, 0x14, 0xe8, 0x70, 0x15, 0xe7, 0xf6, 0x46, 0x17, 0x87, 0x77, 0xab, 0xa7, 0x97, 0x04, 0x68, 0x8d, 0x7b, 0xf3, 0x2e, 0x1e, 0xfa, 0xc9, 0x7a, 0x9f, 0xc3, 0x39, 0x81, 0x0e, 0xbd, 0x3d, 0xf9, 0x3e, 0x4e, 0xa0, 0x24, 0x68, 0x69, 0x53, 0xed, 0x91, 0xfa, 0x6d, 0x2a, 0xb6, 0xe0, 0x7e, 0xc7, 0x81, 0x1a, 0x6d, 0x91, 0xca, 0x91, 0xb0, 0x98, 0xdb, 0x47, 0x25, 0xdf, 0x65, 0x84, 0x6a, 0x95, 0xb8, 0x08, 0x63, 0x5a, 0x8d, 0x0c, 0x5f, 0xe5, 0xac, 0xe2, 0x5f, 0x07, 0x80, 0xe8, 0x96, 0x17, 0x7b, 0xc1, 0xbb, 0xa1, 0xcd, 0xb4, 0x44, 0x92, 0x51, 0xc0, 0x1b, 0x48, 0x2f, 0x02, 0x38, 0x62, 0xf8, 0x8e, 0x07, 0x2e, 0x79, 0xcd, 0xe5, 0xdb, 0xd6, 0xc1, 0xd9, 0xad, 0x9c, 0x07, 0xc6, 0x06, 0xf5, 0xdf, 0x85, 0xa6, 0xec, 0xa2, 0x96, 0x6c, 0xbf, 0xe0, 0xa1, 0x67, 0x39, 0x68, 0x11, 0x2f, 0x26, 0xa3, 0x17, 0x05, 0x3f, 0x16, 0x7f, 0x61, 0x1a, 0xf2, 0x97, 0xef, 0xa8, 0x02, 0xe0, 0xa9, 0x4b, 0x3e, 0x1f, 0x33, 0xa2, 0x7b, 0x73, 0xe5, 0x59, 0x7a, 0xbb, 0x22, 0x41, 0x15, 0xeb, 0xe7, 0x5e, 0x29, 0x4a, 0x1b, 0xcd, 0xcd, 0x97, 0x92, 0x55, 0xb0, 0xa8, 0x02, 0x65, 0xc0, 0x89, 0xaa, 0xa7, 0xd6, 0xbe, 0xd2, 0xe3, 0xd0, 0xc9, 0x18, 0xf5, 0x6f, 0x4a, 0x55, 0xf4, 0x48, 0xd8, 0x63, 0x36, 0x5c, 0x6c, 0x58, 0x46, 0xfb, 0x9b, 0x2b, 0x9b, 0xb5, 0x5f, 0x6b, 0x7c, 0x6d, 0xff, 0x58, 0x47, 0xb7, 0x1b, 0xfd, 0xd4, 0xbb, 0x5b, 0x9b, 0xb2, 0xe4, 0x24, 0x9b, 0xc0, 0x24, 0x3a, 0x02, 0xab, 0x4d, 0x22, 0xba, 0x78, 0xa4, 0x3d, 0x18, 0x21, 0x95, 0xae, 0xd7, 0x8f, 0xec, 0xe8, 0x4c, 0xb1, 0xdd, 0xae, 0xb9, 0xef, 0xf6, 0x81, 0x56, 0x04, 0x5b, 0x29, 0x32, 0xe6, 0x38, 0xd7, 0x73, 0x1d, 0x0e, 0x8b, 0x4c, 0x9c, 0x8c, 0x38, 0x3b, 0x0d, 0x6d, 0x39, 0x2d, 0x21, 0xfc, 0x64, 0x07, 0x62, 0xc8, 0x7d, 0x36, 0x92, 0xb1, 0x81, 0x0b, 0xcc, 0x4a, 0x42, 0x39, 0x2f, 0xf1, 0x3d, 0x45, 0x16, 0x9e, 0xcb, 0xf0, 0x13, 0x50, 0x55, 0x09, 0x31, 0x05, 0x09, 0x8c, 0x86, 0x9b, 0x68, 0x88, 0x7e, 0x93, 0x4e, 0x2b, 0x9d, 0xa5, 0x23, 0x2a, 0xc6, 0xc9, 0x37, 0x38, 0x00, 0xf7, 0x0b, 0x64, 0xec, 0x64, 0xa4, 0xaa, 0x0c, 0xa0, 0x44, 0xc0, 0x77, 0x7c, 0xa3, 0xa3, 0xac, 0xaa, 0x13, 0x8c, 0x14, 0x24, 0x96, 0x72, 0xa5, 0x5b, 0x24, 0xdd, 0xfe, 0x4d, 0xc3, 0x57, 0x57, 0x32, 0x41, 0xe1, 0x4a, 0xd0, 0xac, 0x16, 0x47, 0x5a, 0x8e, 0x38, 0x67, 0x88, 0x6d, 0x41, 0xee, 0xa3, 0x5f, 0xe7, 0x93, 0x2b, 0xa9, 0xae, 0xaa, 0x0c, 0x86, 0xc9, 0xeb, 0x6d, 0xb7, 0x80, 0x80, 0x49, 0xad, 0xe7, 0xb5, 0xcc, 0x1a, 0x40, 0x82, 0x2c, 0x66, 0xde, 0xa9, 0x3a, 0xd2, 0x2d, 0x44, 0xb9, 0xe4, 0x29, 0x04, 0xb5, 0xb8, 0x36, 0x84, 0xae, 0x29, 0x31, 0xfe, 0x36, 0xc6, 0x08, 0xff, 0x70, 0x96, 0xf1, 0xb0, 0x9f, 0x81, 0x1b, 0x02, 0x67, 0x28, 0x04, 0x40, 0x6e, 0x08, 0xed, 0x9e, 0x77, 0x45, 0x67, 0x6c, 0xe0, 0x47, 0xf0, 0xf7, 0xf6, 0x47, 0x08, 0xe4, 0x9b, 0xb7, 0x87, 0x54, 0x72, 0x0b, 0x8a, 0xa2, 0x26, 0xf5, 0x55, 0x6a, 0xbf, 0x05, 0xb5, 0x65, 0x84, 0x64, 0x52, 0x92, 0xda, 0xd0, 0x8e, 0x24, 0x73, 0x63, 0x9a, 0x8c, 0xe5, 0x47, 0x5e, 0x0c, 0xe9, 0x19, 0x2f, 0x8b, 0xa2, 0xdd, 0x32, 0xce, 0x14, 0xc9, 0x19, 0x75, 0xab, 0x60, 0x2f, 0x7c, 0x13, 0x53, 0x8c, 0x52, 0x95, 0x2d, 0x03, 0x96, 0x15, 0x8c, 0x7c, 0xc6, 0xb9, 0x42, 0xbe, 0x7d, 0x92, 0x3e, 0xeb, 0x52, 0x3a, 0x73, 0xb5, 0xb4, 0x11, 0x96, 0x6d, 0x14, 0xac, 0x96, 0xe5, 0xb0, 0x96, 0xa5, 0x29, 0x32, 0xa4, 0x16, 0x29, 0x2e, 0xcc, 0xdd, 0xb9, 0x10, 0x71, 0xc8, 0x85, 0x60, 0xe7, 0x0e, 0xcd, 0x4f, 0xe2, 0xfe, 0x24, 0xd5, 0x23, 0xfa, 0xfc, 0xb9, 0x8e, 0x40, 0x21, 0x50, 0x2f, 0x41, 0x90, 0xa0, 0x51, 0x5e, 0xdc, 0xb2, 0x40, 0x19, 0xea, 0xca, 0x09, 0xec, 0x26, 0x15, 0xa9, 0xbf, 0xde, 0xb6, 0x0e, 0xb3, 0x54, 0xc8, 0x4a, 0x1f, 0x3c, 0xec, 0x7f, 0xfd, 0x7e, 0x65, 0xa5, 0x51, 0x5d, 0x47, 0x95, 0x9a, 0x4c, 0x4e, 0xc4, 0x8d, 0x80, 0x21, 0xb1, 0x75, 0x4a, 0xe2, 0xbf, 0x84, };
14282 static const u8 ed25519_621_test_vectors_expected_sig[] = {
14283 	0x9b, 0x86, 0xa1, 0x92, 0xb6, 0x4f, 0x4f, 0x04, 0x4f, 0xfb, 0xf8, 0x7b, 0x41, 0xc7, 0xee, 0x52, 0xf7, 0xa7, 0x21, 0xaa, 0x32, 0x0e, 0x7b, 0xad, 0x64, 0x25, 0x99, 0x59, 0x90, 0x31, 0x5c, 0xdd, 0x50, 0x2b, 0xe4, 0xe1, 0x11, 0x60, 0x19, 0xd1, 0x31, 0xa9, 0x21, 0x8d, 0x19, 0x61, 0x4a, 0xd9, 0x55, 0x43, 0xb1, 0x88, 0x9a, 0xf0, 0xa9, 0x7e, 0xd4, 0xd2, 0x56, 0xdc, 0x33, 0xd7, 0x6e, 0x08, };
14284 static const ec_test_case ed25519_621_test_case = {
14285 	.name = "EDDSA25519-SHA512/wei25519 621",
14286 	.ec_str_p = &wei25519_str_params,
14287 	.priv_key = ed25519_621_test_vectors_priv_key,
14288 	.priv_key_len = sizeof(ed25519_621_test_vectors_priv_key),
14289 	.nn_random = NULL,
14290 	.hash_type = SHA512,
14291 	.msg = (const char *)ed25519_621_test_vectors_message,
14292 	.msglen = sizeof(ed25519_621_test_vectors_message),
14293 	.sig_type = EDDSA25519,
14294 	.exp_sig = ed25519_621_test_vectors_expected_sig,
14295 	.exp_siglen = sizeof(ed25519_621_test_vectors_expected_sig),
14296 	.adata = NULL,
14297 	.adata_len = 0
14298 };
14299 
14300 /************************************************/
14301 static const u8 ed25519_622_test_vectors_priv_key[] = {
14302 	0x7a, 0x57, 0xf2, 0xdd, 0xa0, 0xad, 0x03, 0x38, 0xab, 0x9a, 0x13, 0xc9, 0xa3, 0x49, 0x7e, 0x9c, 0x75, 0x23, 0x8c, 0x15, 0x31, 0x58, 0x97, 0x89, 0x22, 0x7c, 0xd2, 0x74, 0x9b, 0xc6, 0xe9, 0x50, };
14303 static const u8 ed25519_622_test_vectors_message[] = {
14304 	0x8c, 0x85, 0x75, 0xa1, 0x1d, 0x2f, 0xf2, 0xc2, 0x38, 0xe4, 0x19, 0xcc, 0xb0, 0x06, 0x33, 0xd0, 0x4e, 0x8b, 0x8b, 0xd7, 0x74, 0x29, 0x01, 0xd5, 0x88, 0xdd, 0x6a, 0x2f, 0x00, 0xaa, 0x12, 0xf0, 0x8a, 0xe4, 0x1d, 0xca, 0xa9, 0x33, 0x8f, 0x8c, 0x47, 0xe9, 0x53, 0x12, 0x19, 0x2c, 0xf6, 0xb2, 0x45, 0xa0, 0x0c, 0xe6, 0x88, 0xa0, 0x29, 0xda, 0x56, 0xdd, 0x1b, 0x1d, 0xeb, 0x0d, 0x34, 0xb5, 0x41, 0x4f, 0xe1, 0xc2, 0x1d, 0x6b, 0x63, 0xd0, 0x6b, 0x85, 0x34, 0xac, 0xe8, 0xe8, 0x66, 0xc9, 0x33, 0xfd, 0x7c, 0x5a, 0x65, 0xed, 0xa9, 0x5a, 0x17, 0x37, 0xa9, 0xec, 0xdb, 0x17, 0x85, 0x91, 0x49, 0xac, 0x69, 0x69, 0x51, 0xb8, 0x2c, 0x23, 0x0e, 0x82, 0x75, 0xe9, 0x6d, 0xd0, 0x2f, 0xd4, 0x55, 0xea, 0x67, 0x53, 0x79, 0xe6, 0x7b, 0xa6, 0x34, 0x84, 0xb6, 0x28, 0x38, 0x31, 0xfe, 0x3f, 0xfe, 0x52, 0xd6, 0xec, 0x49, 0xb7, 0x09, 0x10, 0x67, 0x05, 0xc9, 0xd1, 0x9b, 0x85, 0x9d, 0xe9, 0xfd, 0x20, 0x08, 0x87, 0xcb, 0x44, 0xd8, 0xfd, 0xfe, 0x69, 0x61, 0xfa, 0x4c, 0xa2, 0x34, 0x09, 0x44, 0xc7, 0x64, 0xc7, 0x04, 0x49, 0x12, 0x08, 0x25, 0x7e, 0x73, 0x54, 0x82, 0xaf, 0x8c, 0xb6, 0x90, 0x41, 0xdd, 0xe6, 0x85, 0x24, 0x1d, 0x3f, 0xbf, 0x46, 0xfd, 0xa0, 0x57, 0x24, 0x8b, 0x89, 0x87, 0xbe, 0x1f, 0x80, 0xb5, 0x4e, 0xb5, 0x40, 0x09, 0xf3, 0x24, 0xdc, 0x45, 0x0e, 0x88, 0x6e, 0x79, 0xf9, 0x12, 0x58, 0x5b, 0x91, 0xc9, 0xdf, 0xaf, 0xe9, 0x01, 0x22, 0x62, 0xc4, 0x71, 0x40, 0x3b, 0x1e, 0x8b, 0x5c, 0x31, 0xfc, 0x53, 0x75, 0xa1, 0xdd, 0xf9, 0x9b, 0x68, 0xed, 0xf9, 0xed, 0x70, 0xaf, 0x85, 0x94, 0xf7, 0xd8, 0x4b, 0x2c, 0xc4, 0x91, 0x1f, 0xe9, 0x05, 0x00, 0xc6, 0xee, 0xbf, 0xba, 0xc0, 0x85, 0x55, 0x35, 0x50, 0xe3, 0x5b, 0xd2, 0xe5, 0x25, 0x14, 0xe9, 0x79, 0xe7, 0x24, 0x1e, 0x9f, 0x8e, 0x34, 0xcd, 0xf8, 0x51, 0x3a, 0xbe, 0x72, 0x51, 0x0d, 0xff, 0x3c, 0xfe, 0xc7, 0xe2, 0xbc, 0x64, 0x88, 0x64, 0x1c, 0xfd, 0x0a, 0x65, 0xae, 0x0e, 0x09, 0xeb, 0xe9, 0x9b, 0x15, 0xb2, 0x9d, 0x45, 0xea, 0x67, 0xa5, 0x7a, 0xad, 0x55, 0x4d, 0x4f, 0x8b, 0xfc, 0xe1, 0x38, 0x6a, 0xce, 0x22, 0x88, 0x39, 0xe3, 0xa8, 0xa5, 0x34, 0x14, 0x0e, 0xec, 0x3d, 0x37, 0xd5, 0x1b, 0xe3, 0x61, 0xf5, 0xea, 0x18, 0x83, 0x73, 0x9f, 0x56, 0x61, 0x5f, 0x75, 0xb0, 0x55, 0xa0, 0x6a, 0x91, 0x47, 0x1b, 0xe9, 0x8b, 0xc9, 0x45, 0x37, 0x83, 0xc3, 0x58, 0x38, 0x2b, 0xd0, 0x55, 0x5a, 0xe9, 0xeb, 0x0b, 0xdc, 0xd6, 0x66, 0x29, 0xa6, 0x11, 0xfc, 0x1a, 0x11, 0xc6, 0x53, 0xc8, 0x22, 0x14, 0x58, 0x7d, 0xec, 0x12, 0xba, 0x12, 0x0e, 0x25, 0x13, 0x07, 0x0f, 0xe6, 0x9e, 0x98, 0x2f, 0x7a, 0x80, 0xad, 0x15, 0x9f, 0x6a, 0x32, 0x5d, 0x97, 0x7d, 0x01, 0xd0, 0x50, 0xd1, 0x16, 0xa6, 0x2a, 0x4f, 0x8a, 0xca, 0xb6, 0xc3, 0xd6, 0x9f, 0xf6, 0xc8, 0x78, 0x21, 0x3c, 0x60, 0xa9, 0x48, 0x45, 0xca, 0xe1, 0x06, 0xde, 0x6c, 0x5d, 0x6f, 0xe2, 0x50, 0x8d, 0x94, 0x56, 0x5b, 0x7b, 0xa7, 0x5d, 0x58, 0xd1, 0xad, 0x47, 0xd7, 0x6a, 0x20, 0xde, 0xfa, 0x75, 0x68, 0xcb, 0x7f, 0xd6, 0x6f, 0x57, 0xcf, 0x37, 0x74, 0xa2, 0x1d, 0x3f, 0xfa, 0x7d, 0x8a, 0xa6, 0xd8, 0x6d, 0xc2, 0x84, 0xb7, 0x0e, 0x0f, 0x17, 0xe7, 0x63, 0x0b, 0xfc, 0x10, 0xcd, 0x1f, 0xc9, 0xa8, 0xd9, 0xc5, 0x92, 0xd3, 0x9f, 0x24, 0xa7, 0xb5, 0xc8, 0xe8, 0xaf, 0xf3, 0x53, 0x57, 0x7e, 0x6a, 0xc9, 0x00, 0x86, 0x90, 0xc7, 0xa1, 0x59, 0xa7, 0xe8, 0x3b, 0xe5, 0xa6, 0xae, 0x8f, 0xca, 0x96, 0x44, 0xbd, 0xdf, 0xa3, 0x7a, 0x92, 0xb0, 0x70, 0x55, 0xf9, 0xfa, 0xc9, 0xfa, 0x97, 0xfb, 0x3e, 0x8f, 0x5f, 0x4d, 0x91, 0x7d, 0xda, 0x5c, 0x6d, 0xc6, 0xea, 0x34, 0xb6, 0x4d, 0x30, 0x24, 0x05, 0xbc, 0x38, 0x06, 0x2e, 0x07, 0xce, 0x93, 0xa1, 0xa8, 0x8a, 0xed, 0x5f, 0xba, 0xf9, 0x95, 0xa0, 0x9b, 0x45, 0xb2, 0x8a, 0xd4, 0xa6, 0xb2, 0x73, 0xde, 0xc1, 0x41, 0x3c, 0x54, 0x04, 0x52, 0x9d, 0x82, 0x5b, 0x5e, 0xdc, 0x2e, 0x27, 0xa3, 0x90, 0xeb, 0x7e, 0x8c, 0x2b, 0x43, 0x90, 0x5e, 0x11, 0x6d, 0x88, 0x7a, 0xb5, 0xfb, 0x99, 0x3d, 0xfe, 0x15, 0x0e, 0xbd, 0xcf, 0x81, 0x7a, 0xe6, 0x2e, 0x03, };
14305 static const u8 ed25519_622_test_vectors_expected_sig[] = {
14306 	0x98, 0x91, 0x23, 0x76, 0x1d, 0x93, 0x56, 0x32, 0x78, 0xfd, 0x0a, 0x78, 0xae, 0xd6, 0x4e, 0x2d, 0xe6, 0xf4, 0xa7, 0x00, 0xfc, 0x9a, 0x70, 0xd2, 0x18, 0x77, 0x48, 0xac, 0x06, 0xd9, 0xc2, 0xc3, 0x77, 0xd1, 0x99, 0x5f, 0x89, 0xc7, 0x72, 0x7f, 0xe2, 0xf1, 0x20, 0x78, 0x4e, 0x41, 0x71, 0xc4, 0x2d, 0x63, 0x53, 0xac, 0x3d, 0x4e, 0x3f, 0x62, 0x0c, 0x63, 0x9c, 0x75, 0x78, 0x6c, 0x46, 0x0a, };
14307 static const ec_test_case ed25519_622_test_case = {
14308 	.name = "EDDSA25519-SHA512/wei25519 622",
14309 	.ec_str_p = &wei25519_str_params,
14310 	.priv_key = ed25519_622_test_vectors_priv_key,
14311 	.priv_key_len = sizeof(ed25519_622_test_vectors_priv_key),
14312 	.nn_random = NULL,
14313 	.hash_type = SHA512,
14314 	.msg = (const char *)ed25519_622_test_vectors_message,
14315 	.msglen = sizeof(ed25519_622_test_vectors_message),
14316 	.sig_type = EDDSA25519,
14317 	.exp_sig = ed25519_622_test_vectors_expected_sig,
14318 	.exp_siglen = sizeof(ed25519_622_test_vectors_expected_sig),
14319 	.adata = NULL,
14320 	.adata_len = 0
14321 };
14322 
14323 /************************************************/
14324 static const u8 ed25519_623_test_vectors_priv_key[] = {
14325 	0x32, 0xef, 0x6d, 0x78, 0x9a, 0x1e, 0xa3, 0x93, 0xf1, 0xbf, 0x9f, 0x11, 0xde, 0x34, 0xf5, 0x7d, 0x65, 0x3c, 0x4e, 0x77, 0xd5, 0x1e, 0x60, 0x50, 0xfe, 0xf4, 0xe8, 0xd7, 0xbf, 0x18, 0x3d, 0xb5, };
14326 static const u8 ed25519_623_test_vectors_message[] = {
14327 	0x11, 0xa9, 0xc3, 0xc1, 0xba, 0x7c, 0xfb, 0x61, 0xad, 0x10, 0x33, 0x05, 0xc2, 0x58, 0x86, 0xde, 0x9f, 0x88, 0x15, 0xc6, 0xc2, 0x1f, 0x17, 0xa8, 0x73, 0x3a, 0x02, 0x4f, 0x94, 0x97, 0xda, 0x05, 0x40, 0xdb, 0x36, 0x03, 0xa6, 0x71, 0xaa, 0xe8, 0x37, 0xdb, 0xbb, 0xa1, 0x9e, 0x19, 0xf8, 0x2d, 0xdf, 0xc8, 0xaf, 0x85, 0x59, 0x80, 0xa7, 0x01, 0x25, 0xfc, 0x61, 0xcd, 0x7f, 0xfd, 0x10, 0x77, 0x7e, 0x36, 0x6e, 0x5e, 0x95, 0x69, 0x92, 0x7a, 0xf0, 0xf2, 0x45, 0xd4, 0xf3, 0x9b, 0x3f, 0xd0, 0xf4, 0x58, 0x79, 0xc2, 0x53, 0x40, 0x14, 0x12, 0x85, 0x5e, 0x57, 0x61, 0x90, 0x5e, 0xd6, 0xef, 0x31, 0x8b, 0x6a, 0x06, 0xea, 0x6e, 0x9f, 0x90, 0x6f, 0x9b, 0xd0, 0x16, 0xbc, 0xb6, 0x94, 0xa0, 0xdf, 0x65, 0xa0, 0x16, 0xbd, 0xfe, 0x84, 0x5a, 0x09, 0xf2, 0x3e, 0x50, 0x86, 0xc5, 0xaa, 0xf3, 0x75, 0xef, 0xeb, 0x86, 0xda, 0x51, 0x23, 0x9d, 0xdc, 0x35, 0x0b, 0xac, 0x0c, 0xdb, 0x03, 0xb8, 0x74, 0xdb, 0x15, 0x07, 0xe6, 0xad, 0x4e, 0x2c, 0x9f, 0x46, 0x02, 0x8c, 0xa2, 0x38, 0x83, 0x63, 0x54, 0x14, 0x93, 0xb6, 0xcb, 0x92, 0xc1, 0xdf, 0xca, 0xa3, 0xef, 0xd6, 0x8c, 0x6b, 0x4e, 0x91, 0xef, 0xb4, 0x67, 0x51, 0xd2, 0x3f, 0x4c, 0x48, 0xa9, 0x73, 0xf0, 0xa5, 0xc7, 0xc6, 0xfe, 0x2a, 0x12, 0x69, 0xd2, 0xa6, 0x9e, 0x9f, 0xc4, 0xab, 0x8b, 0xa3, 0xb9, 0x2f, 0x79, 0x64, 0x49, 0xba, 0x3d, 0xc7, 0x02, 0x45, 0xed, 0x50, 0x5c, 0xc0, 0xee, 0xee, 0x16, 0x36, 0x64, 0x7a, 0x68, 0xc7, 0x67, 0x9d, 0x0b, 0x6d, 0x65, 0x1b, 0xba, 0x35, 0xc2, 0x9b, 0x81, 0x47, 0x8d, 0x17, 0xca, 0x36, 0x85, 0x70, 0x7a, 0xd6, 0x16, 0xe6, 0xe5, 0x60, 0x43, 0x81, 0xf8, 0x4e, 0xe5, 0x2b, 0x25, 0xad, 0x02, 0xfc, 0x0d, 0xfb, 0x85, 0x43, 0x2e, 0xfb, 0x1f, 0xec, 0xd0, 0x90, 0xc0, 0x2a, 0xd0, 0x02, 0xc1, 0x85, 0x7f, 0xce, 0xd8, 0x8f, 0xdf, 0xb2, 0xff, 0x26, 0xdd, 0x0f, 0x50, 0x18, 0xfb, 0x47, 0xd8, 0x13, 0x58, 0x1f, 0x65, 0x08, 0xca, 0x63, 0x7c, 0x73, 0x65, 0x17, 0x7c, 0x51, 0x3d, 0x1e, 0xe0, 0x58, 0x79, 0xa6, 0x5c, 0x5b, 0x67, 0x6b, 0x3a, 0xa8, 0x73, 0xa1, 0x93, 0x5c, 0x54, 0x37, 0xea, 0xdc, 0xb6, 0x6d, 0xfb, 0x05, 0x2a, 0x5e, 0x7c, 0x3e, 0x81, 0xd4, 0x4b, 0x3d, 0xaf, 0x69, 0x8f, 0x42, 0x24, 0x4e, 0xe2, 0xee, 0x4b, 0x6e, 0xd2, 0xb7, 0xe6, 0xe5, 0x6e, 0x61, 0xff, 0x9c, 0xb4, 0x5e, 0x71, 0x9f, 0xd7, 0x46, 0x19, 0x8b, 0xf2, 0xa7, 0xde, 0x6d, 0x25, 0xaf, 0x3b, 0xc6, 0xc7, 0xb0, 0xed, 0x8a, 0xbe, 0x3c, 0xb3, 0x89, 0xaf, 0xd8, 0x4f, 0xfa, 0x2a, 0x23, 0x0d, 0x93, 0xbc, 0x0c, 0x29, 0xd5, 0xa9, 0x41, 0x9c, 0xbf, 0xf1, 0x1b, 0x78, 0x83, 0x32, 0x99, 0x21, 0x48, 0x0b, 0x58, 0x44, 0x65, 0x5d, 0x99, 0x6c, 0x7c, 0xab, 0x29, 0xdf, 0xb2, 0xa3, 0x92, 0x7b, 0x82, 0xba, 0x7c, 0x30, 0x6c, 0x45, 0x77, 0xb6, 0xf8, 0xb5, 0xdb, 0xe2, 0xaf, 0xaf, 0x9b, 0xf1, 0x4a, 0x8f, 0x95, 0x54, 0xcd, 0x01, 0xa6, 0x9a, 0x99, 0x1b, 0xf2, 0x12, 0x82, 0x8d, 0xe1, 0xe6, 0x31, 0x72, 0xe8, 0x33, 0xde, 0x06, 0x69, 0x8c, 0xdb, 0x3b, 0x28, 0x71, 0x63, 0x80, 0x31, 0x45, 0x72, 0xbf, 0x5b, 0xcf, 0xd3, 0x4e, 0xf5, 0x2a, 0x6f, 0xad, 0xda, 0x87, 0xba, 0xbe, 0x6b, 0xac, 0xdb, 0x20, 0xce, 0x63, 0xc7, 0x25, 0xcb, 0x0f, 0xf6, 0x1f, 0xe3, 0x0c, 0x1b, 0x51, 0xdb, 0xda, 0x2c, 0x26, 0x25, 0xf9, 0x9d, 0xfe, 0xb0, 0x29, 0xa3, 0xe5, 0x8c, 0xba, 0x7d, 0x01, 0x90, 0x51, 0x11, 0xca, 0xf4, 0x2f, 0x27, 0x02, 0x5e, 0x72, 0x0e, 0x18, 0xee, 0xb0, 0x7d, 0xae, 0x91, 0x55, 0xc5, 0x5a, 0xa3, 0x00, 0xe2, 0x2e, 0xb5, 0xe9, 0x4d, 0xc7, 0xa0, 0xa8, 0x4e, 0xe6, 0x7d, 0x91, 0xa9, 0x60, 0xae, 0x08, 0xca, 0x63, 0x2d, 0xbb, 0x17, 0x37, 0xfc, 0x9a, 0x43, 0xdb, 0xcf, 0xb3, 0xa8, 0x79, 0xeb, 0x9f, 0xbf, 0xfd, 0x72, 0x99, 0x33, 0x8e, 0x26, 0x4b, 0xc1, 0x23, 0x7a, 0xb6, 0xa5, 0xbc, 0x2a, 0x26, 0x3c, 0xfa, 0x99, 0xe8, 0x54, 0x44, 0x39, 0xd9, 0x63, 0x31, 0x63, 0x9f, 0xe9, 0x40, 0x8e, 0x54, 0xa3, 0x50, 0x61, 0x0f, 0xf0, 0x1d, 0xe3, 0xf8, 0x57, 0x99, 0xad, 0xeb, 0x73, 0xd8, 0x2b, 0xe9, 0x38, 0x07, 0x4d, 0xea, 0x85, 0x8e, 0xa6, 0x36, 0xb6, 0x3a, 0xbd, };
14328 static const u8 ed25519_623_test_vectors_expected_sig[] = {
14329 	0x88, 0xf3, 0xa6, 0xe0, 0xbb, 0xaa, 0x3e, 0x06, 0x0b, 0xc9, 0xd9, 0x1f, 0xe2, 0x96, 0x8c, 0x61, 0x12, 0x6b, 0x20, 0x31, 0x7f, 0x59, 0x84, 0x2e, 0x4a, 0xe4, 0x87, 0x11, 0xcd, 0xba, 0xf6, 0x2c, 0x6c, 0x02, 0x07, 0x40, 0x5d, 0x1c, 0x48, 0x49, 0x95, 0x02, 0x71, 0xf0, 0xaa, 0xa7, 0x59, 0x30, 0x91, 0x10, 0x9e, 0x47, 0x8d, 0x13, 0xf3, 0x56, 0x96, 0x4f, 0x7d, 0xba, 0xb7, 0x29, 0xaf, 0x00, };
14330 static const ec_test_case ed25519_623_test_case = {
14331 	.name = "EDDSA25519-SHA512/wei25519 623",
14332 	.ec_str_p = &wei25519_str_params,
14333 	.priv_key = ed25519_623_test_vectors_priv_key,
14334 	.priv_key_len = sizeof(ed25519_623_test_vectors_priv_key),
14335 	.nn_random = NULL,
14336 	.hash_type = SHA512,
14337 	.msg = (const char *)ed25519_623_test_vectors_message,
14338 	.msglen = sizeof(ed25519_623_test_vectors_message),
14339 	.sig_type = EDDSA25519,
14340 	.exp_sig = ed25519_623_test_vectors_expected_sig,
14341 	.exp_siglen = sizeof(ed25519_623_test_vectors_expected_sig),
14342 	.adata = NULL,
14343 	.adata_len = 0
14344 };
14345 
14346 /************************************************/
14347 static const u8 ed25519_624_test_vectors_priv_key[] = {
14348 	0x0a, 0x55, 0x25, 0xa4, 0x59, 0x8f, 0x60, 0x99, 0x2f, 0x86, 0xba, 0x1a, 0xb9, 0xee, 0xe6, 0xe2, 0x67, 0x56, 0x22, 0xf9, 0x43, 0x28, 0x4f, 0xc0, 0x55, 0x3e, 0x44, 0x46, 0xac, 0x5a, 0x4c, 0x53, };
14349 static const u8 ed25519_624_test_vectors_message[] = {
14350 	0xf7, 0x87, 0x32, 0x1b, 0x42, 0xc0, 0x8d, 0x40, 0x52, 0x44, 0x9a, 0x48, 0x85, 0x93, 0xd8, 0x85, 0xb4, 0xe0, 0xc3, 0x4a, 0x5d, 0x64, 0x14, 0x9f, 0xa8, 0xb9, 0xc8, 0x5e, 0xe5, 0x4b, 0xcb, 0xec, 0xb5, 0x09, 0x09, 0xb2, 0xa8, 0x6b, 0x88, 0x25, 0x8a, 0x10, 0xe0, 0x7e, 0x8f, 0x8c, 0x2d, 0x06, 0x8a, 0x89, 0xfb, 0x16, 0x5a, 0x6a, 0xce, 0x7e, 0x64, 0x99, 0x8b, 0xa5, 0x7d, 0x89, 0xd9, 0xbf, 0x2b, 0x8b, 0x38, 0xa1, 0xf6, 0xd8, 0x36, 0x4a, 0xee, 0x05, 0xce, 0x33, 0x48, 0xbe, 0xd4, 0x8b, 0x88, 0xc2, 0x47, 0x3b, 0xf5, 0xf2, 0x66, 0x5f, 0x51, 0xca, 0x07, 0x3a, 0x53, 0x05, 0x35, 0x8e, 0xaa, 0xd4, 0x36, 0x5d, 0x58, 0xb8, 0x3b, 0xc9, 0x81, 0x4e, 0x25, 0xf5, 0x4c, 0x37, 0xcd, 0x9b, 0x68, 0xa8, 0x08, 0xa5, 0x7d, 0x6c, 0x2d, 0x7d, 0x7b, 0x6d, 0xeb, 0x5f, 0xe2, 0x0f, 0x4f, 0x96, 0xfe, 0x72, 0x5f, 0x8d, 0xe6, 0x5c, 0x29, 0xa4, 0xf1, 0xcc, 0xef, 0xd7, 0xc2, 0xc6, 0xf2, 0xfc, 0x01, 0x16, 0xd5, 0x86, 0x76, 0xac, 0xbc, 0x58, 0x69, 0x1c, 0x79, 0xc2, 0xb0, 0x06, 0x78, 0x5a, 0x09, 0x75, 0xa3, 0x1d, 0x8d, 0x3c, 0x94, 0x91, 0x61, 0x59, 0x6a, 0x06, 0x8a, 0xaf, 0x22, 0x26, 0xab, 0x84, 0x25, 0x50, 0xe9, 0xc0, 0xb2, 0x61, 0x0a, 0x29, 0x53, 0x1d, 0x1f, 0x3f, 0x7f, 0x00, 0x82, 0x6b, 0xb6, 0xc7, 0xdb, 0xe0, 0x4e, 0x28, 0xae, 0x1b, 0x9f, 0xf6, 0xf8, 0x88, 0xa4, 0x9d, 0x82, 0x81, 0x2f, 0x45, 0x2e, 0x1b, 0x32, 0x74, 0x0b, 0x23, 0x4d, 0xdd, 0x96, 0x42, 0xe1, 0x8f, 0x32, 0xad, 0x9a, 0x9a, 0xf7, 0xf8, 0x95, 0x25, 0x28, 0x67, 0x4a, 0x2c, 0xda, 0x25, 0xb4, 0xf7, 0xba, 0x86, 0x70, 0x07, 0xff, 0xa7, 0xf7, 0x8f, 0x16, 0x3d, 0xb8, 0xf3, 0x69, 0x14, 0x95, 0x6b, 0xfa, 0xec, 0xd5, 0x0f, 0x6d, 0x1a, 0xf4, 0xee, 0x13, 0x32, 0x75, 0xa8, 0xea, 0xab, 0x94, 0xbb, 0xc0, 0xae, 0x52, 0xb6, 0xd9, 0xb2, 0x83, 0x26, 0x34, 0x23, 0x2e, 0xc0, 0xe8, 0xb5, 0xf8, 0x02, 0x2d, 0x3e, 0xf1, 0xea, 0xd9, 0xb7, 0x9e, 0xf9, 0xa1, 0x65, 0x64, 0x27, 0x71, 0x94, 0xf2, 0x38, 0x0d, 0x90, 0x21, 0xe1, 0xf1, 0x7b, 0x18, 0x4b, 0x8d, 0x3a, 0x7a, 0x34, 0xd1, 0x51, 0x39, 0xa3, 0x9c, 0x77, 0x28, 0xc2, 0x2e, 0x1a, 0x3a, 0x67, 0xa2, 0x7a, 0x6c, 0xa4, 0xb8, 0xa8, 0xa0, 0x63, 0x6c, 0x60, 0x54, 0xd0, 0xf7, 0x41, 0xf0, 0x46, 0x67, 0x36, 0x19, 0xfc, 0x6b, 0x07, 0x0e, 0x62, 0xff, 0x48, 0x62, 0xf5, 0x9d, 0x26, 0x90, 0x07, 0xf3, 0x43, 0x13, 0x39, 0x63, 0x7a, 0x89, 0xf5, 0x64, 0xc0, 0xdb, 0x3d, 0x9b, 0xcf, 0xcd, 0x19, 0xfc, 0x25, 0x13, 0x8a, 0xc6, 0x6d, 0x47, 0x4d, 0x80, 0xf4, 0xad, 0x79, 0xf6, 0xd1, 0xe7, 0x84, 0x44, 0x08, 0xe8, 0x80, 0x34, 0xee, 0xaf, 0xf4, 0xa7, 0x90, 0x33, 0x8d, 0x54, 0x6b, 0xfc, 0xd7, 0x42, 0x4c, 0x11, 0x9e, 0x21, 0x1f, 0x36, 0x3c, 0xb8, 0x9c, 0x88, 0x87, 0x49, 0x34, 0x6a, 0x89, 0xd3, 0x2f, 0x02, 0x3b, 0xb6, 0xb0, 0x36, 0x6a, 0x1e, 0xde, 0x43, 0x25, 0x03, 0x2a, 0xa3, 0x5f, 0x52, 0xe9, 0xdf, 0x93, 0x8a, 0x50, 0x27, 0xeb, 0xee, 0x96, 0x88, 0xae, 0x48, 0x0d, 0xde, 0x1a, 0x9c, 0x9b, 0x42, 0xd1, 0xa9, 0xc0, 0x8f, 0x71, 0x92, 0x23, 0xdf, 0xae, 0x1c, 0xfc, 0xd4, 0x9d, 0xd1, 0x05, 0x3a, 0xaa, 0x38, 0x1c, 0x24, 0xcc, 0x9c, 0x7a, 0xbf, 0xcf, 0x8f, 0x6d, 0x86, 0xd6, 0xaf, 0x72, 0xee, 0xf0, 0x53, 0x04, 0x41, 0x2f, 0x3d, 0xb2, 0x58, 0x5a, 0xa9, 0xe0, 0xf3, 0xa4, 0xf1, 0xb6, 0xd7, 0x10, 0xd0, 0x2a, 0xb1, 0x1d, 0xb1, 0xfc, 0x90, 0xad, 0x4d, 0xe2, 0x5d, 0x04, 0x29, 0x9f, 0x31, 0x29, 0xc2, 0x12, 0xe9, 0xcb, 0x73, 0xc0, 0x04, 0x79, 0x53, 0x45, 0x5b, 0xf9, 0x8e, 0xc8, 0xfd, 0x26, 0x74, 0xe4, 0x7b, 0x94, 0x99, 0x57, 0xde, 0xed, 0xa0, 0x18, 0xba, 0xdc, 0x9f, 0x2f, 0x68, 0xa1, 0xb1, 0x8e, 0xf5, 0xc5, 0x83, 0xb0, 0x95, 0xe0, 0x8d, 0xd9, 0x06, 0xda, 0x5f, 0x22, 0x0d, 0xa0, 0x29, 0xb9, 0xc4, 0x00, 0xe3, 0xca, 0x91, 0xc7, 0xcb, 0xd8, 0x7f, 0x34, 0x30, 0xc7, 0x42, 0x33, 0x7f, 0x61, 0xcf, 0x54, 0x74, 0x5b, 0x06, 0x22, 0xbc, 0xb9, 0x07, 0x62, 0xc6, 0xba, 0xfe, 0xf8, 0x7e, 0x1e, 0xc8, 0x88, 0xc3, 0x64, 0xfa, 0xd6, 0x46, 0xc3, 0x3a, 0xcc, 0x22, 0xaf, 0x54, 0x38, 0xb8, 0x4c, 0xd5, };
14351 static const u8 ed25519_624_test_vectors_expected_sig[] = {
14352 	0x8f, 0xa6, 0xb0, 0xae, 0xac, 0x71, 0x13, 0x2a, 0xd8, 0x82, 0x97, 0x58, 0x68, 0xf1, 0xbd, 0xb8, 0xc1, 0x1f, 0x1a, 0x6c, 0x1b, 0x9c, 0x54, 0x59, 0x4e, 0x0e, 0x46, 0x28, 0x6e, 0xa6, 0xc9, 0xa5, 0xd6, 0xd5, 0xb0, 0xea, 0xea, 0xca, 0x9a, 0xe3, 0xaf, 0x74, 0xe7, 0x23, 0x26, 0xb3, 0xb6, 0xf2, 0xea, 0xa8, 0x93, 0xc0, 0xec, 0x42, 0xa4, 0x9c, 0x56, 0xef, 0x51, 0x4f, 0x75, 0xc7, 0x7f, 0x01, };
14353 static const ec_test_case ed25519_624_test_case = {
14354 	.name = "EDDSA25519-SHA512/wei25519 624",
14355 	.ec_str_p = &wei25519_str_params,
14356 	.priv_key = ed25519_624_test_vectors_priv_key,
14357 	.priv_key_len = sizeof(ed25519_624_test_vectors_priv_key),
14358 	.nn_random = NULL,
14359 	.hash_type = SHA512,
14360 	.msg = (const char *)ed25519_624_test_vectors_message,
14361 	.msglen = sizeof(ed25519_624_test_vectors_message),
14362 	.sig_type = EDDSA25519,
14363 	.exp_sig = ed25519_624_test_vectors_expected_sig,
14364 	.exp_siglen = sizeof(ed25519_624_test_vectors_expected_sig),
14365 	.adata = NULL,
14366 	.adata_len = 0
14367 };
14368 
14369 /************************************************/
14370 static const u8 ed25519_625_test_vectors_priv_key[] = {
14371 	0x2d, 0x5d, 0xdf, 0xfa, 0x2e, 0x58, 0xc9, 0x04, 0x51, 0xea, 0x05, 0xde, 0x47, 0xb8, 0xc4, 0x92, 0x34, 0xe2, 0x6c, 0xed, 0x54, 0x85, 0x4e, 0x3a, 0xce, 0xf1, 0x1d, 0x8e, 0xe6, 0x85, 0x2d, 0xa7, };
14372 static const u8 ed25519_625_test_vectors_message[] = {
14373 	0x4f, 0x1c, 0x5b, 0x4e, 0x6f, 0xac, 0x3b, 0xaa, 0x3e, 0x90, 0x10, 0xf3, 0xbf, 0x29, 0x3c, 0x77, 0x9e, 0x61, 0xfd, 0x7b, 0xbe, 0x05, 0xa5, 0x86, 0xf5, 0xaa, 0xf0, 0x80, 0x26, 0x37, 0x16, 0x27, 0xa2, 0x09, 0xac, 0xd1, 0x88, 0xaf, 0xb2, 0xdb, 0xe0, 0x31, 0x15, 0x47, 0x94, 0x05, 0x59, 0x71, 0x16, 0x40, 0xf7, 0x8a, 0xea, 0x9a, 0x62, 0x81, 0x89, 0x62, 0xf4, 0x45, 0xa8, 0xe7, 0xed, 0x6f, 0xe6, 0xc5, 0xf4, 0x91, 0x62, 0xe7, 0x43, 0x5d, 0x1b, 0x62, 0x5b, 0x88, 0xba, 0x39, 0xda, 0xb0, 0xad, 0x56, 0xfd, 0x2c, 0x0a, 0xd6, 0x51, 0x26, 0x61, 0x36, 0x2b, 0xf7, 0x8a, 0xfe, 0x5a, 0x14, 0x16, 0xb6, 0x47, 0xf3, 0xb8, 0x8a, 0x05, 0x6c, 0x9e, 0x72, 0x89, 0xc9, 0xb0, 0xcc, 0x3a, 0xfb, 0x43, 0x40, 0x21, 0x98, 0x56, 0x34, 0x93, 0xe7, 0x37, 0xb1, 0xda, 0x05, 0x25, 0x06, 0xb6, 0xc9, 0x30, 0x6d, 0x75, 0xad, 0x66, 0x93, 0xdb, 0x6d, 0x15, 0x71, 0xf9, 0x6f, 0x6f, 0x52, 0x99, 0x0c, 0x4d, 0xf1, 0x96, 0x65, 0xa6, 0xbb, 0x63, 0x07, 0x3f, 0xdd, 0x9f, 0x55, 0x59, 0x68, 0x96, 0xa2, 0xe9, 0xc2, 0x62, 0x2f, 0x2b, 0x0c, 0x2c, 0xc9, 0x9d, 0xdd, 0x1b, 0x64, 0x9f, 0xb0, 0x31, 0x80, 0x58, 0xd7, 0x47, 0x94, 0xe3, 0x8e, 0xc6, 0x57, 0xeb, 0xc8, 0x2a, 0xbd, 0x5b, 0xed, 0xf8, 0xb3, 0xf4, 0xbb, 0xa3, 0xbb, 0x6c, 0x99, 0x35, 0xfd, 0xf6, 0x82, 0x65, 0x02, 0xb7, 0x69, 0x04, 0x6b, 0x36, 0xd9, 0x6d, 0xc6, 0x95, 0xd7, 0xc8, 0x54, 0x04, 0x28, 0x4d, 0x2a, 0x2a, 0xb7, 0xfc, 0xf3, 0xb0, 0x2f, 0x68, 0xa1, 0x49, 0x3d, 0xd3, 0x83, 0xca, 0x63, 0x39, 0xfa, 0xc1, 0xcd, 0xe4, 0x7f, 0x53, 0xc5, 0xe0, 0x26, 0xd0, 0x86, 0x9f, 0xaf, 0xfe, 0x40, 0xab, 0xdb, 0x98, 0x19, 0x52, 0x30, 0xf1, 0x7d, 0x0c, 0xfa, 0xa5, 0x33, 0x31, 0x5a, 0xfd, 0xbf, 0xe7, 0xd1, 0xaf, 0xc3, 0xa6, 0x15, 0xb4, 0xf7, 0x50, 0x90, 0x23, 0x3a, 0x50, 0x3f, 0x88, 0x61, 0xe3, 0x23, 0x74, 0xe1, 0xea, 0x95, 0x57, 0x67, 0x42, 0x31, 0xd9, 0xd7, 0x37, 0xd4, 0x77, 0xb3, 0x3f, 0xf8, 0x2a, 0xc0, 0xb2, 0xc0, 0xba, 0x93, 0xc1, 0x1f, 0xb5, 0x23, 0xe6, 0x13, 0x61, 0x8e, 0xd3, 0x70, 0x52, 0x4a, 0x60, 0xf4, 0xd4, 0xc8, 0x36, 0x94, 0xc0, 0x33, 0x60, 0x6d, 0x1d, 0x06, 0x9d, 0x54, 0x4d, 0xcc, 0xd3, 0x90, 0x0c, 0x37, 0xa3, 0xb3, 0x36, 0x3e, 0xfb, 0xcf, 0x66, 0x97, 0xf9, 0xf7, 0x62, 0xb3, 0x3b, 0x12, 0x94, 0x58, 0x39, 0x53, 0xfc, 0x53, 0x77, 0x3e, 0xf5, 0x67, 0x26, 0xee, 0xb4, 0x70, 0xeb, 0xe9, 0x21, 0x49, 0xb7, 0x36, 0x48, 0xa1, 0x61, 0x61, 0xd4, 0x94, 0x12, 0x0a, 0x31, 0x8b, 0xfb, 0x08, 0x0c, 0xc3, 0x8e, 0x49, 0x96, 0xf4, 0xb2, 0x63, 0xff, 0xe7, 0x8c, 0x78, 0x77, 0xfe, 0x13, 0xc2, 0xfc, 0x55, 0x21, 0x9f, 0x44, 0x26, 0x0e, 0x8f, 0x25, 0x3b, 0xdd, 0x37, 0x9d, 0x87, 0x0e, 0x6c, 0x91, 0x04, 0x8b, 0x1d, 0x8d, 0x4e, 0x88, 0xb8, 0x82, 0x18, 0xb2, 0xb0, 0x49, 0xfe, 0xf5, 0x3b, 0x2a, 0xe1, 0xf8, 0xc9, 0x21, 0xed, 0x2b, 0xcb, 0x43, 0x46, 0x69, 0xe3, 0x97, 0x5d, 0xcc, 0x3f, 0xe4, 0x52, 0x0c, 0xa8, 0x02, 0x48, 0x42, 0xf7, 0xff, 0x2b, 0xa1, 0xe2, 0x2c, 0xfe, 0xb5, 0xd4, 0xc9, 0xe4, 0x35, 0xea, 0xda, 0x60, 0x1f, 0xf1, 0x83, 0xb2, 0x63, 0x64, 0xee, 0xe1, 0xfa, 0xa5, 0x9d, 0x19, 0xe6, 0xaa, 0x4f, 0x09, 0x75, 0x23, 0x84, 0x96, 0xa7, 0x09, 0xe4, 0x6b, 0xf6, 0x83, 0x36, 0xb0, 0x68, 0xbd, 0x80, 0xb3, 0x46, 0xf1, 0x1f, 0xaa, 0x38, 0x17, 0xa0, 0x7d, 0x1c, 0xbd, 0x84, 0x38, 0x2b, 0x21, 0x02, 0x98, 0x6f, 0x29, 0x5a, 0x13, 0x98, 0x07, 0x7b, 0xa2, 0x91, 0xd6, 0xb5, 0xf5, 0xbd, 0x86, 0x0e, 0xc6, 0x17, 0x72, 0x73, 0x46, 0x8f, 0x0e, 0xe0, 0xf2, 0x59, 0x1b, 0x57, 0x5c, 0x43, 0x66, 0xe1, 0x89, 0xb2, 0x24, 0xe9, 0xff, 0xa3, 0x5b, 0xc7, 0x8a, 0x4a, 0xa8, 0xc0, 0x69, 0x54, 0xfe, 0x33, 0xd0, 0x80, 0xff, 0xc0, 0xb2, 0x3e, 0x20, 0x9f, 0xd0, 0xe7, 0x94, 0x21, 0xf1, 0xbd, 0xe8, 0x18, 0xa8, 0x68, 0x90, 0xcf, 0x17, 0x22, 0x36, 0xdb, 0x21, 0x16, 0x57, 0xd1, 0x00, 0x31, 0x19, 0xfe, 0x91, 0xd4, 0xe2, 0x7c, 0x52, 0x4c, 0xcc, 0x11, 0xfa, 0xde, 0x0a, 0x25, 0xf5, 0x7a, 0x7a, 0x1d, 0x67, 0x7e, 0x1d, 0xa0, 0xb9, 0xc0, 0x43, 0xd0, 0x2f, 0xca, 0x38, };
14374 static const u8 ed25519_625_test_vectors_expected_sig[] = {
14375 	0xce, 0xd9, 0xd6, 0x10, 0x10, 0x33, 0x9c, 0x47, 0x1d, 0xdf, 0x9f, 0xef, 0xca, 0xa8, 0x2d, 0x1e, 0xab, 0x3a, 0x2e, 0x0e, 0x60, 0x27, 0x85, 0x53, 0xb4, 0xdd, 0x9f, 0x39, 0x5b, 0xe5, 0x81, 0x49, 0xc9, 0x15, 0x94, 0xe5, 0x61, 0x8b, 0x0b, 0x10, 0xbf, 0x3a, 0xab, 0x94, 0xf1, 0x59, 0xb5, 0x30, 0xf6, 0x44, 0x63, 0xee, 0xd6, 0x6f, 0xa2, 0xac, 0xe5, 0x4f, 0xd9, 0x25, 0x72, 0xa0, 0x6a, 0x0e, };
14376 static const ec_test_case ed25519_625_test_case = {
14377 	.name = "EDDSA25519-SHA512/wei25519 625",
14378 	.ec_str_p = &wei25519_str_params,
14379 	.priv_key = ed25519_625_test_vectors_priv_key,
14380 	.priv_key_len = sizeof(ed25519_625_test_vectors_priv_key),
14381 	.nn_random = NULL,
14382 	.hash_type = SHA512,
14383 	.msg = (const char *)ed25519_625_test_vectors_message,
14384 	.msglen = sizeof(ed25519_625_test_vectors_message),
14385 	.sig_type = EDDSA25519,
14386 	.exp_sig = ed25519_625_test_vectors_expected_sig,
14387 	.exp_siglen = sizeof(ed25519_625_test_vectors_expected_sig),
14388 	.adata = NULL,
14389 	.adata_len = 0
14390 };
14391 
14392 /************************************************/
14393 static const u8 ed25519_626_test_vectors_priv_key[] = {
14394 	0x4d, 0xf5, 0xe1, 0x1d, 0xec, 0x80, 0xec, 0xd8, 0x82, 0x83, 0x75, 0x54, 0xfa, 0x31, 0x35, 0xb9, 0xd5, 0x02, 0x9d, 0xf4, 0x20, 0x27, 0xaa, 0x3b, 0x3c, 0x92, 0x92, 0x46, 0x32, 0x9f, 0xee, 0x96, };
14395 static const u8 ed25519_626_test_vectors_message[] = {
14396 	0xfb, 0xd6, 0xf3, 0x71, 0xb4, 0xc8, 0xb1, 0x52, 0xc9, 0xce, 0x0c, 0x63, 0x96, 0xa7, 0x7c, 0x0f, 0xe4, 0x80, 0xbc, 0x02, 0x00, 0x7f, 0x33, 0x6a, 0xc5, 0x8f, 0xd4, 0xad, 0xdd, 0xa9, 0xd6, 0x98, 0x55, 0xac, 0x9e, 0x93, 0xa4, 0x5d, 0x3e, 0x35, 0x0f, 0x41, 0xff, 0x50, 0x2a, 0xa1, 0xd8, 0xfe, 0x15, 0x9c, 0xe8, 0x9b, 0x06, 0x48, 0x02, 0xa0, 0xa1, 0x89, 0x0f, 0x6a, 0x40, 0xa7, 0xef, 0x57, 0xc6, 0xe5, 0xe5, 0xed, 0x04, 0x02, 0x80, 0xdf, 0x07, 0xe7, 0xf4, 0x8f, 0xe8, 0x19, 0xbe, 0x63, 0x17, 0x67, 0x10, 0x75, 0x7c, 0xb6, 0xe4, 0x40, 0xb4, 0xf7, 0x8b, 0x57, 0x59, 0xdc, 0xe0, 0x28, 0xbf, 0x58, 0x5b, 0x3c, 0x3f, 0xec, 0xa1, 0xcf, 0x59, 0x81, 0xda, 0xda, 0xdf, 0xd2, 0x7e, 0xa1, 0x24, 0xaf, 0x45, 0xef, 0x63, 0x85, 0x42, 0xa8, 0x61, 0x7f, 0xf4, 0x9f, 0x94, 0x70, 0xac, 0x22, 0x85, 0x94, 0x3c, 0x7c, 0x3b, 0x11, 0x63, 0xb9, 0x03, 0x95, 0x5a, 0xb9, 0x9b, 0x6e, 0xab, 0x17, 0xf4, 0xd4, 0x9f, 0xfa, 0x87, 0x20, 0x7a, 0xbb, 0xfc, 0x11, 0x1c, 0x4b, 0x91, 0xf5, 0x41, 0x3d, 0xfc, 0x9b, 0xea, 0x31, 0x84, 0x3d, 0x11, 0x5d, 0xde, 0xb1, 0xda, 0x40, 0xb4, 0x5f, 0x58, 0xf4, 0x7c, 0x41, 0x7b, 0x5e, 0x77, 0xd5, 0x81, 0x89, 0x34, 0xe7, 0x30, 0xeb, 0xa9, 0xc4, 0x55, 0x7b, 0xbf, 0x48, 0xcb, 0x7f, 0xd4, 0xe6, 0x64, 0x55, 0x8a, 0xf4, 0xfb, 0x44, 0xee, 0x3d, 0x94, 0xc1, 0x6e, 0x88, 0x36, 0x31, 0xf3, 0x84, 0x76, 0xf4, 0x83, 0x7d, 0xb9, 0x4d, 0x54, 0x12, 0x2f, 0xa1, 0x34, 0xca, 0x51, 0xa5, 0x25, 0xaa, 0xd5, 0xe2, 0x4b, 0x76, 0x01, 0x8f, 0xee, 0x9a, 0x2e, 0x8f, 0x60, 0xe2, 0xbb, 0x48, 0xd2, 0x4a, 0xb8, 0xb1, 0x46, 0xf8, 0x4f, 0xfa, 0x98, 0x20, 0x12, 0x0e, 0x7c, 0x50, 0xd4, 0x5c, 0x0c, 0xfb, 0xe3, 0x5c, 0x8c, 0x31, 0x41, 0x9b, 0x07, 0x8e, 0x90, 0x71, 0x2c, 0xfe, 0x93, 0x4c, 0x3b, 0xe3, 0xa9, 0x4f, 0xf2, 0x15, 0x88, 0x73, 0xae, 0xfe, 0x34, 0xdc, 0x6e, 0x36, 0x90, 0x2b, 0x16, 0x75, 0xe1, 0xa4, 0x7c, 0xb6, 0x08, 0xdf, 0xe9, 0x60, 0xfb, 0x4d, 0xa8, 0xd2, 0xa8, 0x49, 0x0c, 0xc3, 0x8e, 0xba, 0xdc, 0x73, 0xa1, 0x00, 0x3c, 0x49, 0x41, 0xfd, 0xa8, 0xfa, 0xe9, 0x44, 0xa1, 0xde, 0x8e, 0x3b, 0x10, 0xef, 0x6d, 0x9e, 0x67, 0xce, 0xec, 0x74, 0x59, 0x77, 0xd3, 0x33, 0xac, 0x9e, 0x71, 0x21, 0x41, 0x21, 0xed, 0xe8, 0x89, 0x22, 0x95, 0xe2, 0x77, 0x99, 0xf2, 0x06, 0x67, 0x5a, 0x9d, 0x54, 0xac, 0x12, 0x15, 0x9d, 0x3a, 0x1f, 0x95, 0x4f, 0xd0, 0xee, 0xff, 0xbd, 0x30, 0xa3, 0x19, 0x04, 0xfb, 0x2e, 0xee, 0x77, 0xa8, 0xaa, 0x9d, 0xc4, 0xcc, 0xbb, 0xe2, 0x85, 0x10, 0x96, 0x14, 0x6a, 0x4c, 0xe0, 0xe8, 0x1f, 0xb9, 0xc6, 0x24, 0x98, 0xdb, 0xd8, 0x3b, 0xf8, 0x3b, 0x55, 0x02, 0x9a, 0x5e, 0x90, 0x00, 0x86, 0xb9, 0x53, 0x1c, 0xe3, 0x24, 0x7a, 0x98, 0xf8, 0x65, 0x4e, 0xfd, 0x8f, 0xe7, 0xa8, 0x36, 0x43, 0x1f, 0x75, 0xda, 0xf0, 0x86, 0x8f, 0x01, 0x08, 0x32, 0x6e, 0x23, 0x02, 0x6d, 0x2d, 0xb4, 0xa7, 0x21, 0x24, 0xec, 0x4e, 0x39, 0xd4, 0xbb, 0xf3, 0xd8, 0x46, 0xc9, 0xf5, 0x1c, 0xa3, 0xcc, 0x31, 0xeb, 0x1d, 0x02, 0xc2, 0xba, 0x32, 0x1e, 0x46, 0x19, 0xf2, 0xb6, 0x59, 0xc0, 0xbf, 0x0f, 0xe5, 0xc1, 0x9b, 0x21, 0x3f, 0x3c, 0x79, 0x12, 0x4f, 0x36, 0x43, 0xf7, 0x4d, 0xd0, 0xff, 0x9c, 0xe5, 0xd2, 0x77, 0x27, 0xbe, 0x6c, 0x69, 0x58, 0x15, 0x9c, 0x16, 0x44, 0x04, 0xf4, 0x33, 0x01, 0xfe, 0x17, 0x42, 0xe2, 0x79, 0xde, 0x9e, 0xfd, 0x44, 0x1e, 0x73, 0xe4, 0xea, 0x7a, 0x84, 0x25, 0x87, 0xa7, 0x9d, 0x11, 0x5d, 0x36, 0xec, 0xa9, 0xc0, 0x3c, 0x90, 0xff, 0x0d, 0x14, 0x74, 0x74, 0x10, 0x9f, 0xc2, 0x0a, 0x91, 0xd7, 0xb3, 0xcc, 0x22, 0xeb, 0xcb, 0xb8, 0xc7, 0xf7, 0x1b, 0xd6, 0x1e, 0x8c, 0xae, 0x47, 0xc5, 0x05, 0x0c, 0xec, 0x1d, 0x48, 0x49, 0xa1, 0xd4, 0xa8, 0xe7, 0xa6, 0xf8, 0x45, 0x54, 0x84, 0x37, 0x70, 0x6c, 0x25, 0x33, 0x1c, 0x9e, 0x57, 0xc2, 0xcc, 0x6d, 0xa1, 0x17, 0xf2, 0xe5, 0xa0, 0xf4, 0xb3, 0x68, 0xc4, 0xcb, 0x20, 0x62, 0x65, 0xc4, 0x17, 0x8e, 0x06, 0x55, 0xff, 0x67, 0x5f, 0xfc, 0x1d, 0x4c, 0x58, 0xec, 0xeb, 0x9e, 0xdb, 0x4d, 0xa3, 0xad, 0x2c, 0x5f, 0x62, 0xcd, 0x13, 0xab, 0x48, };
14397 static const u8 ed25519_626_test_vectors_expected_sig[] = {
14398 	0x62, 0x54, 0x5e, 0x6c, 0x07, 0x80, 0x1f, 0xde, 0x95, 0xb4, 0x61, 0xe2, 0xe7, 0x53, 0xc4, 0xb6, 0xc8, 0x4c, 0x25, 0x12, 0x4e, 0xb3, 0x30, 0xa2, 0x72, 0x59, 0x89, 0xd5, 0xe3, 0x40, 0xdc, 0xef, 0x0c, 0x74, 0x56, 0xd4, 0xc7, 0xc6, 0xa1, 0x78, 0xa2, 0x21, 0xb6, 0x32, 0x83, 0x48, 0x25, 0x3d, 0xb7, 0x87, 0xa9, 0xe5, 0x51, 0x0a, 0xb9, 0xcc, 0x27, 0x85, 0x15, 0xae, 0x3e, 0x58, 0xfb, 0x01, };
14399 static const ec_test_case ed25519_626_test_case = {
14400 	.name = "EDDSA25519-SHA512/wei25519 626",
14401 	.ec_str_p = &wei25519_str_params,
14402 	.priv_key = ed25519_626_test_vectors_priv_key,
14403 	.priv_key_len = sizeof(ed25519_626_test_vectors_priv_key),
14404 	.nn_random = NULL,
14405 	.hash_type = SHA512,
14406 	.msg = (const char *)ed25519_626_test_vectors_message,
14407 	.msglen = sizeof(ed25519_626_test_vectors_message),
14408 	.sig_type = EDDSA25519,
14409 	.exp_sig = ed25519_626_test_vectors_expected_sig,
14410 	.exp_siglen = sizeof(ed25519_626_test_vectors_expected_sig),
14411 	.adata = NULL,
14412 	.adata_len = 0
14413 };
14414 
14415 /************************************************/
14416 static const u8 ed25519_627_test_vectors_priv_key[] = {
14417 	0x85, 0xd3, 0x23, 0x30, 0xe2, 0xe0, 0x73, 0xa4, 0x60, 0x30, 0xca, 0x0e, 0xe2, 0xdf, 0x2f, 0x8e, 0xb8, 0x74, 0xa9, 0xfd, 0xdf, 0x56, 0x24, 0xc8, 0x03, 0x17, 0x75, 0x11, 0x1f, 0x11, 0xee, 0xa2, };
14418 static const u8 ed25519_627_test_vectors_message[] = {
14419 	0xae, 0x61, 0x07, 0xf3, 0x8f, 0xf9, 0x4e, 0xd0, 0x32, 0x79, 0x03, 0xcb, 0xaf, 0x6c, 0x3e, 0x3a, 0x34, 0x98, 0xc4, 0x7a, 0xbb, 0x29, 0x89, 0xa8, 0xb3, 0x7b, 0x3a, 0x19, 0xdf, 0x88, 0xc6, 0xde, 0x79, 0x0a, 0xcc, 0xb4, 0xb7, 0x25, 0x81, 0x77, 0xb9, 0x15, 0x1d, 0x1f, 0xe0, 0x40, 0x63, 0x57, 0x7d, 0x3c, 0x3a, 0xcd, 0xb4, 0xc9, 0x29, 0x96, 0x8a, 0xfd, 0xad, 0x6f, 0x25, 0x2a, 0x67, 0xed, 0x4c, 0xa8, 0x9d, 0x06, 0x0f, 0x1a, 0x46, 0x53, 0x98, 0x3f, 0x7a, 0xb5, 0x8d, 0xdb, 0x93, 0xe2, 0x87, 0x8f, 0xba, 0xb0, 0x63, 0x7d, 0xbb, 0xeb, 0x95, 0xd2, 0x5c, 0x59, 0x86, 0x83, 0x9d, 0xe2, 0x74, 0x8d, 0x9f, 0x34, 0x02, 0x7a, 0xee, 0xbf, 0x1d, 0x9e, 0xb9, 0x36, 0xcb, 0x67, 0x70, 0xe0, 0x8d, 0x45, 0xb8, 0x09, 0x5b, 0xac, 0x9c, 0xbb, 0x71, 0xdb, 0x14, 0xe8, 0xa3, 0x42, 0x22, 0xb1, 0xf2, 0x23, 0x7b, 0x9f, 0x0b, 0xc9, 0x76, 0x6a, 0x23, 0x1a, 0x6d, 0x10, 0x27, 0x99, 0xf7, 0xc0, 0x81, 0xd5, 0x00, 0xfb, 0xea, 0xde, 0x60, 0x3c, 0xdc, 0xdd, 0x7d, 0x5b, 0x96, 0x5f, 0xba, 0xce, 0x4b, 0xe5, 0xc2, 0xcd, 0x93, 0x2d, 0xcf, 0x5f, 0x6e, 0xd3, 0x17, 0x22, 0xf4, 0x1d, 0x5a, 0x36, 0x3b, 0x34, 0xba, 0xbf, 0x3f, 0x63, 0x6f, 0xb3, 0x03, 0x82, 0x4a, 0xa7, 0x01, 0xdf, 0xe1, 0xd3, 0xe4, 0x12, 0x63, 0x07, 0x8c, 0x1e, 0xbb, 0xdc, 0xb1, 0xf7, 0x3f, 0x12, 0x45, 0xb8, 0x3e, 0x3f, 0xa7, 0x0a, 0xb8, 0xe3, 0xf1, 0x41, 0x3e, 0x6b, 0x06, 0xbd, 0xae, 0x02, 0x2b, 0x71, 0x4d, 0x60, 0xa4, 0x01, 0xd5, 0x74, 0x80, 0xdc, 0x64, 0xe7, 0xaa, 0xc6, 0xd3, 0xde, 0x85, 0xfc, 0x94, 0xd8, 0x53, 0xca, 0x13, 0xb7, 0xe6, 0x74, 0x15, 0x57, 0x9d, 0x5c, 0x67, 0x21, 0x23, 0xa5, 0xaf, 0x19, 0x4b, 0xee, 0x14, 0xae, 0x35, 0xdc, 0x27, 0x24, 0xff, 0x20, 0x9f, 0x11, 0x66, 0x63, 0x86, 0x61, 0xf8, 0x81, 0xb1, 0x19, 0x4a, 0xa4, 0xe3, 0x1b, 0x42, 0xa5, 0x27, 0x96, 0x47, 0x81, 0x59, 0x15, 0x04, 0xba, 0x76, 0x10, 0x3f, 0x97, 0xb7, 0xf5, 0x52, 0x03, 0x15, 0x47, 0x3e, 0xc9, 0x4b, 0xb0, 0x17, 0xa1, 0x66, 0x67, 0xb2, 0x2a, 0x85, 0x76, 0xa7, 0xcc, 0x2a, 0xc0, 0xb7, 0x75, 0x63, 0x03, 0xc7, 0x56, 0xf0, 0xdd, 0xaa, 0xe9, 0xd0, 0x18, 0x9e, 0x6c, 0x8d, 0xe3, 0x49, 0xf9, 0x19, 0x57, 0xc7, 0x2a, 0x52, 0x9e, 0x9f, 0x7e, 0x9b, 0x94, 0x56, 0x52, 0x48, 0x40, 0xba, 0x02, 0x34, 0x4f, 0x55, 0xad, 0x3c, 0x11, 0xa0, 0xb2, 0x59, 0x90, 0x14, 0x39, 0xf2, 0x65, 0x5a, 0xb9, 0xf8, 0xc6, 0xc8, 0xe8, 0xe9, 0x60, 0xc0, 0x57, 0xd9, 0xc7, 0xda, 0xfe, 0x42, 0x5c, 0x75, 0xd4, 0xa3, 0x3b, 0x80, 0x1d, 0x45, 0x47, 0xcd, 0x05, 0x51, 0xa6, 0x80, 0x2a, 0x80, 0x05, 0xdd, 0x72, 0x42, 0x47, 0x64, 0xdc, 0xf5, 0x7e, 0x4a, 0xa2, 0x22, 0x90, 0xea, 0x4f, 0x5b, 0xaa, 0xc5, 0x1d, 0x79, 0x39, 0xc0, 0x53, 0x42, 0x88, 0x2e, 0xe1, 0x43, 0x80, 0xef, 0x2d, 0x47, 0x04, 0xb4, 0x19, 0x49, 0xb2, 0x28, 0x2a, 0x1e, 0x1a, 0x3f, 0xa7, 0xdd, 0xea, 0x9f, 0xe8, 0x3b, 0x9f, 0xc5, 0x1d, 0x4e, 0xef, 0xa2, 0xeb, 0xac, 0x72, 0x2e, 0x4c, 0x0a, 0x7c, 0x59, 0x9b, 0x69, 0x25, 0xf0, 0x1b, 0x8a, 0x20, 0x66, 0xdc, 0x0c, 0x26, 0xf9, 0x21, 0x96, 0xf4, 0xf5, 0x03, 0xe8, 0x87, 0xc1, 0xe6, 0xef, 0xb0, 0x93, 0xf1, 0x53, 0x13, 0x87, 0xbd, 0x88, 0xc6, 0x91, 0x99, 0x7b, 0x9b, 0x89, 0xe3, 0xcd, 0xf7, 0xda, 0x12, 0xd3, 0x73, 0x41, 0x83, 0xa4, 0xb6, 0x12, 0x6b, 0xe9, 0xe0, 0x77, 0x47, 0x04, 0xb5, 0x29, 0x65, 0x9b, 0x55, 0x48, 0xf1, 0xb8, 0x75, 0x12, 0xcc, 0x18, 0x78, 0xca, 0x4e, 0xf5, 0x59, 0x90, 0xb4, 0x83, 0xc9, 0xaf, 0x6a, 0xa9, 0x76, 0x35, 0xf4, 0xf0, 0x79, 0x49, 0x72, 0x70, 0x65, 0xab, 0xf2, 0x1e, 0x21, 0xe3, 0x29, 0x90, 0xb1, 0xa7, 0xd0, 0x7d, 0x74, 0xe0, 0x2d, 0x9b, 0x07, 0xec, 0x63, 0x99, 0x31, 0xbf, 0x9e, 0x2c, 0xa3, 0x94, 0x1f, 0x2b, 0xa6, 0xb5, 0xef, 0x14, 0xdc, 0xc2, 0xa2, 0x47, 0xd2, 0x11, 0x7e, 0x9c, 0xb4, 0x1e, 0xfa, 0x3f, 0xcc, 0xa2, 0x47, 0x16, 0x64, 0x14, 0x52, 0xbe, 0xed, 0x2f, 0x92, 0x65, 0x7c, 0x2f, 0xb7, 0x31, 0xf0, 0xb9, 0x4e, 0x8c, 0x89, 0x2a, 0x81, 0xbb, 0xa9, 0x1f, 0x63, 0x9d, 0xf4, 0x37, 0x96, 0xac, 0xd3, 0x01, 0x3a, 0xc0, 0x44, 0xf6, 0x08, };
14420 static const u8 ed25519_627_test_vectors_expected_sig[] = {
14421 	0x41, 0x43, 0x63, 0xfe, 0xad, 0x6e, 0x59, 0xa3, 0x43, 0x8c, 0xe5, 0xa3, 0xa2, 0x77, 0xd6, 0x2b, 0xdd, 0x00, 0xfa, 0x2e, 0xfa, 0xc6, 0x46, 0x3d, 0xd1, 0x3f, 0xcd, 0xde, 0xd9, 0x3a, 0x7f, 0x10, 0x8a, 0xe1, 0xf5, 0x28, 0xff, 0xc8, 0xff, 0x4e, 0xca, 0x33, 0x1d, 0xab, 0x91, 0xae, 0x5b, 0x14, 0x16, 0xe2, 0xdd, 0xb7, 0x3b, 0x6d, 0xaf, 0x85, 0x3b, 0x03, 0xc8, 0x1e, 0x99, 0x36, 0x56, 0x0a, };
14422 static const ec_test_case ed25519_627_test_case = {
14423 	.name = "EDDSA25519-SHA512/wei25519 627",
14424 	.ec_str_p = &wei25519_str_params,
14425 	.priv_key = ed25519_627_test_vectors_priv_key,
14426 	.priv_key_len = sizeof(ed25519_627_test_vectors_priv_key),
14427 	.nn_random = NULL,
14428 	.hash_type = SHA512,
14429 	.msg = (const char *)ed25519_627_test_vectors_message,
14430 	.msglen = sizeof(ed25519_627_test_vectors_message),
14431 	.sig_type = EDDSA25519,
14432 	.exp_sig = ed25519_627_test_vectors_expected_sig,
14433 	.exp_siglen = sizeof(ed25519_627_test_vectors_expected_sig),
14434 	.adata = NULL,
14435 	.adata_len = 0
14436 };
14437 
14438 /************************************************/
14439 static const u8 ed25519_628_test_vectors_priv_key[] = {
14440 	0x66, 0x59, 0x0d, 0x36, 0x99, 0x84, 0xc6, 0xf5, 0xad, 0x3a, 0x89, 0xc7, 0x8d, 0xdf, 0xca, 0x10, 0xa0, 0xa7, 0x65, 0x79, 0x95, 0xdc, 0x01, 0x88, 0xb6, 0xb5, 0x7a, 0xc3, 0x16, 0x47, 0x31, 0xa4, };
14441 static const u8 ed25519_628_test_vectors_message[] = {
14442 	0x2e, 0xc1, 0xc6, 0xb0, 0x82, 0x97, 0x37, 0x83, 0x2c, 0x9c, 0x79, 0x8a, 0x92, 0xeb, 0x49, 0x0b, 0x23, 0xd3, 0x34, 0xc3, 0xbb, 0xe6, 0x27, 0xcb, 0x58, 0x2d, 0x17, 0xa9, 0xe4, 0x29, 0x60, 0xef, 0xcd, 0xc7, 0xd3, 0x47, 0x50, 0xe0, 0xb4, 0xaa, 0x86, 0x4c, 0x20, 0x4f, 0xb8, 0xd6, 0x2b, 0x47, 0x99, 0x2e, 0x91, 0xdb, 0xfc, 0xfd, 0x69, 0xf5, 0x1d, 0x93, 0x7d, 0xc0, 0x6c, 0x48, 0xc0, 0xad, 0x43, 0xe8, 0x59, 0x83, 0x71, 0xcd, 0x0e, 0x3b, 0xbc, 0xe4, 0x16, 0xbf, 0xd4, 0x4b, 0x09, 0x44, 0xb9, 0x93, 0xaa, 0x29, 0x93, 0xfd, 0xea, 0x48, 0x71, 0x34, 0xcd, 0xe4, 0x22, 0x77, 0x72, 0x3e, 0x06, 0x83, 0xec, 0x98, 0xe6, 0x95, 0x95, 0xe9, 0xb7, 0xb1, 0x4c, 0x8c, 0xf9, 0x61, 0x7a, 0x1e, 0x30, 0xdd, 0xb8, 0x06, 0x0e, 0xac, 0xba, 0x48, 0xd8, 0x82, 0x53, 0xb1, 0x65, 0x33, 0x61, 0x08, 0xde, 0x0c, 0xb0, 0x2f, 0xf2, 0x0f, 0x54, 0x24, 0xb5, 0x67, 0x83, 0x08, 0x69, 0xc9, 0xb4, 0x32, 0x9c, 0x99, 0x45, 0xf0, 0xbf, 0x2f, 0x3c, 0x7a, 0xcd, 0x1e, 0x77, 0x43, 0x58, 0x93, 0x0c, 0xd8, 0x90, 0xfd, 0x9c, 0xb8, 0x64, 0xd9, 0x50, 0x93, 0x5a, 0xd8, 0xa4, 0xa3, 0xbe, 0xcc, 0xae, 0x8f, 0x83, 0x3f, 0x63, 0x56, 0x19, 0x13, 0x71, 0xc3, 0x26, 0x33, 0xdc, 0xf8, 0x82, 0x70, 0x9b, 0x0d, 0x98, 0xbd, 0x80, 0x7b, 0x38, 0x3a, 0xed, 0x8d, 0x7b, 0xb0, 0x97, 0xb6, 0xe2, 0x62, 0xef, 0x70, 0x0c, 0x9d, 0x76, 0x8f, 0x4b, 0x56, 0x90, 0xe3, 0xa1, 0xa8, 0xf2, 0x17, 0x55, 0xd6, 0x58, 0xdb, 0x2d, 0x1b, 0xfd, 0x2f, 0x70, 0x71, 0xe0, 0xca, 0xec, 0x7c, 0x2c, 0x53, 0x81, 0xc5, 0xef, 0x5c, 0x2c, 0x22, 0x81, 0xc6, 0xbc, 0xed, 0xc8, 0x67, 0x39, 0x0b, 0x90, 0xf3, 0xb2, 0x7b, 0x0f, 0x0f, 0x64, 0xa3, 0x36, 0x58, 0x57, 0x8a, 0x5c, 0x0d, 0x66, 0xe2, 0x11, 0xe6, 0xff, 0xf6, 0xe8, 0x64, 0x88, 0xac, 0xf8, 0x2b, 0xc0, 0xf5, 0xe2, 0x66, 0x4b, 0x83, 0x69, 0x90, 0x46, 0x03, 0x7c, 0x0d, 0x33, 0xd3, 0x40, 0xff, 0x98, 0xed, 0x62, 0x63, 0x35, 0x4c, 0x24, 0x27, 0x31, 0x36, 0xff, 0x0e, 0x4f, 0x0f, 0x23, 0x3a, 0x6c, 0x82, 0x54, 0xfc, 0x0c, 0x90, 0x76, 0x43, 0x30, 0xe3, 0xb1, 0x05, 0x7b, 0x1e, 0x66, 0x6d, 0x5e, 0xcd, 0x5a, 0x2e, 0xfe, 0xaa, 0x6a, 0x10, 0x5b, 0xfc, 0x85, 0x84, 0x31, 0xb8, 0x8e, 0xd7, 0xfe, 0x55, 0x1e, 0xb3, 0x2a, 0xc0, 0xaf, 0x27, 0xc6, 0x6a, 0x98, 0x03, 0xa3, 0xbc, 0xf8, 0x76, 0x34, 0xc6, 0x6c, 0x70, 0x66, 0xdd, 0x01, 0x97, 0xa3, 0xcb, 0xd2, 0xd6, 0xf4, 0xe6, 0x5c, 0xfd, 0xb8, 0xf3, 0xda, 0xf9, 0xf3, 0xca, 0x5c, 0x4f, 0x4e, 0x0a, 0xdd, 0x45, 0xf5, 0x54, 0x1a, 0xa1, 0x8d, 0x04, 0x1f, 0x70, 0x6e, 0x4f, 0xa8, 0x7c, 0x34, 0xe9, 0xa2, 0x23, 0xd8, 0x85, 0x72, 0xeb, 0x50, 0x08, 0x3e, 0xe8, 0xc7, 0xc4, 0x75, 0xdf, 0x56, 0x8b, 0xc7, 0x3b, 0xd0, 0x8c, 0x0f, 0x0d, 0xea, 0xa3, 0x74, 0xaf, 0xb1, 0xc1, 0x78, 0xd0, 0xdd, 0xdb, 0x23, 0x6e, 0x15, 0xa8, 0xbc, 0x23, 0x85, 0xed, 0x3f, 0x52, 0xb8, 0x76, 0x1e, 0x63, 0x78, 0x87, 0x40, 0x7a, 0x20, 0xae, 0xc3, 0xe9, 0x9e, 0xc8, 0x30, 0xda, 0xe3, 0x16, 0x7e, 0xf0, 0xcd, 0xb3, 0xf3, 0xff, 0xd2, 0x00, 0xd8, 0x3b, 0x75, 0xb7, 0x49, 0x69, 0x0b, 0x9e, 0x25, 0xe2, 0x17, 0x1d, 0x07, 0x2c, 0xa5, 0x6f, 0x71, 0xba, 0xec, 0xd2, 0x1f, 0x7d, 0x45, 0xa1, 0x2c, 0x91, 0xb2, 0xc0, 0xfb, 0x3f, 0xea, 0x3b, 0x15, 0x8e, 0x54, 0x64, 0x82, 0x84, 0xbb, 0x00, 0x95, 0xb3, 0x62, 0x44, 0xb0, 0xb1, 0x21, 0xf9, 0xf1, 0x38, 0x4c, 0xe9, 0x00, 0x43, 0x65, 0xe7, 0x77, 0x2f, 0xa3, 0x08, 0x28, 0x25, 0x0f, 0x51, 0x98, 0x5f, 0x1b, 0x17, 0xb2, 0xd2, 0xf8, 0x0a, 0x33, 0xe8, 0xfc, 0x6d, 0x85, 0x65, 0xea, 0x15, 0xcd, 0xaa, 0xcd, 0x42, 0xa8, 0x7b, 0xd7, 0xc9, 0x40, 0x8b, 0x1f, 0xe1, 0xc7, 0x70, 0x66, 0x5b, 0xdd, 0xed, 0x75, 0x4b, 0xc2, 0xff, 0x2e, 0xf9, 0x1b, 0x97, 0x3a, 0x86, 0xb9, 0x9f, 0x10, 0x59, 0xc6, 0xf2, 0x27, 0x24, 0x6a, 0x69, 0x8b, 0x38, 0x54, 0x15, 0x09, 0xdd, 0x54, 0x49, 0xfc, 0xe6, 0x0d, 0x38, 0x62, 0x24, 0x18, 0x3b, 0x7d, 0xce, 0x1b, 0x38, 0x84, 0xf7, 0xba, 0xe1, 0xc2, 0xe4, 0xeb, 0x59, 0x45, 0x10, 0xb5, 0xca, 0x58, 0x52, 0x79, 0xd9, 0x04, 0x1d, 0xf8, 0x81, 0x7b, 0x06, 0x19, };
14443 static const u8 ed25519_628_test_vectors_expected_sig[] = {
14444 	0xf0, 0xdb, 0x63, 0xa1, 0xbc, 0x76, 0x24, 0x16, 0x1c, 0xa0, 0x06, 0x38, 0x53, 0xb2, 0xde, 0xe4, 0x5f, 0xcc, 0xd2, 0x24, 0x71, 0xe0, 0x12, 0x36, 0x6f, 0x86, 0x8a, 0x4a, 0x9c, 0x74, 0x65, 0x4e, 0x13, 0xf1, 0xa3, 0x15, 0xad, 0x83, 0x91, 0x6e, 0xbf, 0xb8, 0xdc, 0x31, 0xa4, 0x20, 0xf8, 0x3c, 0xf6, 0x45, 0xc4, 0xc9, 0xd1, 0x6b, 0xb4, 0xd5, 0xd9, 0x9d, 0x23, 0xc7, 0xb4, 0x3e, 0x23, 0x00, };
14445 static const ec_test_case ed25519_628_test_case = {
14446 	.name = "EDDSA25519-SHA512/wei25519 628",
14447 	.ec_str_p = &wei25519_str_params,
14448 	.priv_key = ed25519_628_test_vectors_priv_key,
14449 	.priv_key_len = sizeof(ed25519_628_test_vectors_priv_key),
14450 	.nn_random = NULL,
14451 	.hash_type = SHA512,
14452 	.msg = (const char *)ed25519_628_test_vectors_message,
14453 	.msglen = sizeof(ed25519_628_test_vectors_message),
14454 	.sig_type = EDDSA25519,
14455 	.exp_sig = ed25519_628_test_vectors_expected_sig,
14456 	.exp_siglen = sizeof(ed25519_628_test_vectors_expected_sig),
14457 	.adata = NULL,
14458 	.adata_len = 0
14459 };
14460 
14461 /************************************************/
14462 static const u8 ed25519_629_test_vectors_priv_key[] = {
14463 	0x41, 0xcf, 0x07, 0x1f, 0x48, 0x42, 0xec, 0xd4, 0x94, 0x19, 0x1b, 0x8c, 0xf2, 0x8c, 0xc0, 0x92, 0x31, 0x85, 0xef, 0x1b, 0x07, 0x45, 0x8a, 0x79, 0xa5, 0x9a, 0x29, 0x6d, 0x35, 0x49, 0x82, 0x2e, };
14464 static const u8 ed25519_629_test_vectors_message[] = {
14465 	0xda, 0xeb, 0x5f, 0x0e, 0x84, 0xf1, 0x59, 0x0b, 0xca, 0x2b, 0x9d, 0x97, 0x19, 0xef, 0x5d, 0x1c, 0xfa, 0x79, 0xe0, 0x58, 0x34, 0x46, 0x33, 0x2f, 0x18, 0xe9, 0xe4, 0xfe, 0xb0, 0xb1, 0xf1, 0x53, 0x40, 0x29, 0x7a, 0xc9, 0xad, 0x67, 0x24, 0xc8, 0x5b, 0xb1, 0x65, 0x58, 0xea, 0x54, 0xeb, 0x5d, 0x70, 0x2a, 0x47, 0x24, 0x8b, 0xad, 0xc6, 0x25, 0x2a, 0x80, 0x43, 0x71, 0xb7, 0x4c, 0xfe, 0x10, 0x62, 0xd1, 0xdb, 0xa1, 0xec, 0x68, 0xfd, 0x1d, 0x4d, 0xd0, 0x29, 0xcb, 0x55, 0x03, 0x4b, 0xbf, 0x61, 0x06, 0x82, 0x51, 0xef, 0xf3, 0x98, 0x36, 0x36, 0xf6, 0xde, 0xbd, 0x57, 0x27, 0xbe, 0x91, 0x99, 0x3b, 0x3e, 0x4d, 0x0a, 0xbc, 0x96, 0xec, 0x19, 0x64, 0x21, 0xa4, 0x7b, 0x78, 0x93, 0xf8, 0x39, 0x86, 0xd6, 0xc0, 0x32, 0x3f, 0x0d, 0x19, 0xaa, 0xf2, 0xcd, 0xe9, 0xd3, 0x56, 0x5c, 0x10, 0x4c, 0x9d, 0x31, 0x76, 0xec, 0xb5, 0xed, 0x5e, 0x17, 0x3f, 0xee, 0x52, 0xb5, 0xa0, 0xc4, 0x2b, 0x6a, 0xb2, 0xfc, 0xb1, 0xcc, 0xba, 0x96, 0x49, 0xc2, 0xc6, 0x7c, 0x52, 0x0e, 0x9b, 0x96, 0xce, 0xa6, 0x93, 0xdf, 0x3e, 0x58, 0x60, 0x9a, 0xd6, 0xa0, 0xbd, 0x52, 0x2e, 0xfa, 0xaf, 0x03, 0x85, 0x8d, 0x24, 0x5d, 0xd0, 0xa3, 0x8f, 0x84, 0xa2, 0xfb, 0x10, 0x20, 0xf4, 0xdd, 0x97, 0xc3, 0xae, 0xef, 0x0e, 0x24, 0x47, 0x7d, 0x30, 0xd2, 0x56, 0x70, 0x1e, 0x90, 0x0b, 0xef, 0x26, 0xa8, 0xa6, 0x26, 0x9a, 0xb6, 0x60, 0xd7, 0x42, 0x93, 0xa2, 0xbf, 0x1d, 0x20, 0xc2, 0xcf, 0xae, 0xbb, 0x7c, 0x28, 0x20, 0xf5, 0xf5, 0xb0, 0x74, 0x53, 0xbb, 0x69, 0xee, 0x76, 0x9b, 0x52, 0x39, 0x15, 0x39, 0xf0, 0xc6, 0x06, 0xd2, 0x2e, 0xb3, 0x92, 0x3e, 0xe6, 0xf5, 0xa1, 0xd4, 0x60, 0x50, 0xaf, 0x90, 0xf0, 0x11, 0xf8, 0x51, 0xac, 0xe7, 0x63, 0x27, 0xd3, 0xd1, 0x8c, 0x48, 0x17, 0x0a, 0x9a, 0x25, 0xb0, 0x4b, 0x77, 0x0f, 0xd9, 0x38, 0xef, 0x8a, 0x30, 0xb7, 0xbd, 0x03, 0x39, 0x1d, 0xd3, 0x6c, 0x51, 0x6b, 0x62, 0xf0, 0xcb, 0x78, 0x67, 0x07, 0x40, 0xe0, 0x0e, 0x69, 0x59, 0x5c, 0x41, 0x8d, 0x96, 0x72, 0x53, 0x82, 0x0b, 0x75, 0x4c, 0x4f, 0xd6, 0x66, 0xe3, 0xcc, 0xe1, 0x6e, 0xe0, 0xc9, 0x41, 0x83, 0xbb, 0xea, 0x70, 0x6f, 0xe2, 0x98, 0xe1, 0xc9, 0x9d, 0xdb, 0x82, 0x12, 0x17, 0xed, 0x90, 0x08, 0xcc, 0x8e, 0x8b, 0x83, 0xbc, 0x8b, 0x81, 0x99, 0x15, 0xb0, 0x7b, 0x14, 0x6f, 0xe7, 0x45, 0x02, 0x4a, 0xc3, 0xc4, 0x61, 0x16, 0xcb, 0x4c, 0xce, 0x5e, 0x32, 0xec, 0x5d, 0x75, 0x24, 0xa2, 0x38, 0x8d, 0x9f, 0xe2, 0x97, 0xeb, 0x02, 0x81, 0x1a, 0xf4, 0x54, 0x6f, 0xcd, 0x58, 0x60, 0xe1, 0x4c, 0x0d, 0x13, 0xf0, 0x3d, 0xd7, 0x5a, 0x42, 0x49, 0x61, 0x59, 0x00, 0x07, 0x8a, 0x3c, 0x35, 0x8c, 0x53, 0x42, 0x96, 0x2b, 0xc1, 0xbe, 0xac, 0xf6, 0x8c, 0x24, 0x68, 0x21, 0xa4, 0x59, 0xab, 0x53, 0x21, 0xec, 0x9f, 0x57, 0x4f, 0x49, 0xd1, 0x03, 0x89, 0xf4, 0x0f, 0x14, 0xdd, 0xfc, 0x85, 0x13, 0xff, 0xe3, 0xde, 0xaa, 0x73, 0x36, 0x03, 0x5a, 0x67, 0x5f, 0xa5, 0x85, 0x8b, 0x49, 0x0c, 0x5d, 0x24, 0x77, 0x80, 0x06, 0x4a, 0xdb, 0xaf, 0x75, 0xa7, 0x63, 0x35, 0xee, 0xc9, 0xab, 0x91, 0x87, 0x71, 0xb0, 0xb1, 0xdf, 0x51, 0x47, 0x64, 0x2a, 0xef, 0x4a, 0x16, 0x6a, 0xb1, 0x72, 0xed, 0x60, 0x1f, 0xed, 0x21, 0x0f, 0x6c, 0x0c, 0xff, 0xd9, 0x18, 0x69, 0xf7, 0x49, 0x0b, 0x57, 0xe7, 0xc6, 0x52, 0x41, 0x86, 0x3e, 0x7e, 0x8c, 0x0a, 0x26, 0xeb, 0xa6, 0x3b, 0x53, 0x42, 0xd0, 0xfd, 0x82, 0x14, 0xac, 0x73, 0x1e, 0x1c, 0x43, 0x8d, 0x01, 0x77, 0x11, 0x5f, 0x6a, 0x19, 0xe0, 0x93, 0x5c, 0x7a, 0xf6, 0xbc, 0x7d, 0xbe, 0xb7, 0x55, 0x11, 0xd9, 0xbd, 0x8e, 0x63, 0xe3, 0xe2, 0xf4, 0x7a, 0xb0, 0xdd, 0x1c, 0xed, 0xd7, 0xb1, 0x80, 0xd7, 0x4a, 0x4b, 0x44, 0xd4, 0x61, 0x19, 0x7a, 0xef, 0xdd, 0x36, 0x20, 0x46, 0x51, 0x66, 0xa3, 0x9b, 0x45, 0x39, 0x50, 0x43, 0xce, 0x88, 0x74, 0xcd, 0xd7, 0x2c, 0x60, 0x2b, 0xd3, 0xd2, 0xee, 0xcb, 0xad, 0x34, 0x66, 0xb5, 0xcb, 0x1a, 0xa4, 0x1a, 0xe9, 0x2a, 0x8a, 0xfe, 0xf2, 0xd7, 0x64, 0xce, 0xc0, 0xc4, 0x49, 0xd2, 0x7e, 0xfa, 0xc4, 0x37, 0x93, 0x8f, 0x28, 0x0b, 0xea, 0x9c, 0x50, 0xa5, 0x82, 0xe5, 0x7c, 0x27, 0xf9, 0xb3, 0xde, 0x87, 0x2f, 0x0c, };
14466 static const u8 ed25519_629_test_vectors_expected_sig[] = {
14467 	0x41, 0x05, 0x2b, 0xc4, 0x17, 0xb2, 0x4d, 0xc4, 0x83, 0x83, 0x96, 0x6a, 0xf0, 0x14, 0x3f, 0x9c, 0x0b, 0xa8, 0x5b, 0xbe, 0xfb, 0xda, 0xf7, 0x91, 0xb1, 0x6a, 0x4d, 0xad, 0x1f, 0x57, 0x0e, 0xb8, 0x07, 0x03, 0xc0, 0xa2, 0xcd, 0xeb, 0x2f, 0x7a, 0xd6, 0xdc, 0xd3, 0xfa, 0x7b, 0xdb, 0x5c, 0x22, 0x5e, 0x86, 0x9c, 0xd8, 0xfb, 0x27, 0x8d, 0xff, 0x06, 0x67, 0xd3, 0x8a, 0xcc, 0xf3, 0xdb, 0x08, };
14468 static const ec_test_case ed25519_629_test_case = {
14469 	.name = "EDDSA25519-SHA512/wei25519 629",
14470 	.ec_str_p = &wei25519_str_params,
14471 	.priv_key = ed25519_629_test_vectors_priv_key,
14472 	.priv_key_len = sizeof(ed25519_629_test_vectors_priv_key),
14473 	.nn_random = NULL,
14474 	.hash_type = SHA512,
14475 	.msg = (const char *)ed25519_629_test_vectors_message,
14476 	.msglen = sizeof(ed25519_629_test_vectors_message),
14477 	.sig_type = EDDSA25519,
14478 	.exp_sig = ed25519_629_test_vectors_expected_sig,
14479 	.exp_siglen = sizeof(ed25519_629_test_vectors_expected_sig),
14480 	.adata = NULL,
14481 	.adata_len = 0
14482 };
14483 
14484 /************************************************/
14485 static const u8 ed25519_630_test_vectors_priv_key[] = {
14486 	0xa2, 0xc8, 0xe1, 0x61, 0xa8, 0xd9, 0xd6, 0xe8, 0x88, 0xc3, 0xd0, 0x9b, 0x0b, 0x97, 0x27, 0x37, 0x30, 0x7a, 0x2c, 0xbd, 0x2a, 0xcd, 0x7c, 0xcd, 0x80, 0x4d, 0x24, 0x31, 0xac, 0x6c, 0x58, 0xd2, };
14487 static const u8 ed25519_630_test_vectors_message[] = {
14488 	0x83, 0xa3, 0xbe, 0xbc, 0xac, 0x5f, 0x28, 0xc5, 0x43, 0x3e, 0x3c, 0x4f, 0x1e, 0x7b, 0xf5, 0xd2, 0xe4, 0xdc, 0xd2, 0xf5, 0xe5, 0x9d, 0xbe, 0xe0, 0xa8, 0x3b, 0x07, 0x02, 0x57, 0x15, 0x35, 0x07, 0x46, 0xf8, 0x56, 0x75, 0xf1, 0xdf, 0xea, 0x37, 0x4a, 0xa7, 0xd7, 0x94, 0x28, 0x7b, 0x89, 0x2e, 0xf9, 0x09, 0x7f, 0xf6, 0xd2, 0xe1, 0x22, 0xf0, 0xa6, 0x56, 0xfb, 0xa0, 0x79, 0x8c, 0xdc, 0xfc, 0xb3, 0x64, 0x5d, 0xfc, 0xfd, 0x78, 0x8c, 0x74, 0x0c, 0x0f, 0xd0, 0x45, 0x20, 0xe7, 0xa0, 0x6a, 0x02, 0xa0, 0x58, 0x29, 0x63, 0x0a, 0x2b, 0xf0, 0xcd, 0xfe, 0x2e, 0xcc, 0xa0, 0x09, 0xec, 0x44, 0x04, 0x99, 0x46, 0xbb, 0x1d, 0x23, 0x26, 0xdd, 0xd6, 0x1d, 0x7e, 0xc6, 0x40, 0xbf, 0x69, 0xeb, 0x44, 0xfb, 0x23, 0xcc, 0x1f, 0xf4, 0x78, 0xc5, 0x70, 0xc7, 0x5d, 0xb7, 0xe7, 0x66, 0xe3, 0x5b, 0x7c, 0x43, 0xdb, 0x73, 0x68, 0x0d, 0x14, 0x07, 0xa9, 0x43, 0x99, 0xfb, 0x62, 0x1b, 0xaf, 0x38, 0x45, 0x74, 0x5c, 0x1c, 0x4e, 0xd0, 0xb9, 0xf0, 0xb4, 0x85, 0xbe, 0x2d, 0x53, 0xc5, 0x68, 0x54, 0x5d, 0xdf, 0x18, 0x77, 0x5a, 0x83, 0x7a, 0x05, 0xd9, 0xc9, 0x15, 0x7b, 0x08, 0x4e, 0x8c, 0xd0, 0x1f, 0xc3, 0x24, 0xf0, 0x7f, 0x11, 0x68, 0x77, 0xe4, 0x07, 0x5d, 0xba, 0x24, 0x32, 0xc8, 0xa7, 0x75, 0x2e, 0x9e, 0x93, 0x95, 0x86, 0xad, 0x93, 0xf0, 0xc0, 0xaa, 0x5e, 0xda, 0xc9, 0x4b, 0x8d, 0x82, 0xe5, 0x44, 0x99, 0x97, 0xb1, 0x5b, 0x8c, 0x89, 0x61, 0x58, 0x9c, 0x44, 0x28, 0x21, 0xaa, 0x83, 0xb6, 0x02, 0x39, 0xec, 0x5f, 0x15, 0x8c, 0x3f, 0x5e, 0x9e, 0xc5, 0xbe, 0xa5, 0x11, 0x5d, 0x5f, 0xed, 0x61, 0x91, 0x8e, 0x8f, 0xcd, 0x5b, 0xce, 0x61, 0xc7, 0x77, 0xf2, 0x0b, 0x6b, 0xfe, 0x80, 0x3a, 0x69, 0xc6, 0xfc, 0x79, 0x4a, 0xb8, 0xc5, 0x7d, 0xf2, 0x71, 0xda, 0x86, 0x38, 0x72, 0xa6, 0x13, 0x35, 0xb1, 0xfa, 0x29, 0xf4, 0x60, 0x8f, 0xf0, 0x37, 0xf7, 0x12, 0x06, 0x98, 0x09, 0xca, 0x64, 0x2a, 0x03, 0x07, 0xc7, 0x9a, 0xa9, 0x2e, 0x10, 0xcb, 0x89, 0x3a, 0x29, 0xd1, 0x72, 0x01, 0xa0, 0xb6, 0xd1, 0xb4, 0x6a, 0x72, 0x12, 0xb3, 0xba, 0xec, 0x97, 0x03, 0xc0, 0xb0, 0x39, 0x2b, 0xa6, 0xb7, 0x6e, 0x5c, 0x9c, 0x10, 0xf8, 0x35, 0x99, 0xb8, 0x1e, 0xa2, 0x22, 0x83, 0xf9, 0x54, 0x7a, 0xac, 0xda, 0xa7, 0xf3, 0x08, 0x96, 0xd1, 0xff, 0x73, 0x1e, 0x11, 0xfb, 0x9e, 0x56, 0xad, 0x06, 0x03, 0x04, 0x17, 0x11, 0x98, 0x05, 0xba, 0xb6, 0x35, 0x21, 0x49, 0x6c, 0x3b, 0xb9, 0x2a, 0x12, 0xf5, 0xe5, 0x5a, 0xfc, 0xf6, 0x0e, 0xd4, 0x21, 0x77, 0x37, 0xf3, 0x04, 0x6b, 0x16, 0xca, 0x50, 0x66, 0x57, 0xa6, 0xd6, 0x96, 0xd7, 0x5a, 0x6d, 0x8e, 0x18, 0xe9, 0xef, 0xe2, 0xb0, 0x8c, 0x8b, 0x1f, 0xa0, 0x72, 0x82, 0x38, 0xe2, 0x7c, 0xfb, 0x32, 0x21, 0x66, 0xee, 0xe4, 0xee, 0x76, 0x96, 0x8b, 0x77, 0x7b, 0x50, 0xee, 0x6a, 0x2b, 0x80, 0x4e, 0x1e, 0x9b, 0x46, 0x01, 0x66, 0x20, 0x13, 0x2b, 0x65, 0x88, 0x71, 0x8d, 0x97, 0x8c, 0xa2, 0xc0, 0x02, 0x69, 0x79, 0xc4, 0x00, 0xd3, 0xc5, 0x33, 0x67, 0x51, 0x21, 0x0f, 0x0b, 0x00, 0xd2, 0x69, 0xec, 0x8f, 0x4e, 0x2f, 0x95, 0x59, 0xe1, 0x80, 0x33, 0x2d, 0xd2, 0x70, 0xe5, 0x0c, 0xc9, 0x46, 0x5c, 0x55, 0x58, 0x93, 0x63, 0x55, 0x52, 0x1b, 0xc3, 0xc9, 0x56, 0x0f, 0xc1, 0x9e, 0xc1, 0x42, 0x42, 0x12, 0x1e, 0x6b, 0xb2, 0xff, 0xf8, 0xf5, 0x03, 0x37, 0xfc, 0x26, 0x4a, 0xcf, 0x1a, 0xc1, 0x70, 0x43, 0x28, 0x33, 0x4b, 0x3b, 0x52, 0xcb, 0xa9, 0x6d, 0x93, 0x03, 0xb1, 0xb5, 0xdb, 0x85, 0x9d, 0xae, 0x31, 0xd8, 0x0f, 0x17, 0x11, 0xfb, 0xa2, 0x51, 0xe1, 0x0b, 0x4d, 0x12, 0x21, 0x28, 0xf9, 0xfa, 0xff, 0x68, 0x72, 0xd0, 0xc0, 0xb8, 0x1e, 0xef, 0x59, 0x54, 0x1f, 0x83, 0x2b, 0x0a, 0x9d, 0xf3, 0xa4, 0xcd, 0xd5, 0x91, 0xc8, 0x77, 0x36, 0xb1, 0xae, 0xcf, 0x24, 0x2c, 0x27, 0x5a, 0x10, 0xc3, 0xfd, 0x67, 0x83, 0x9d, 0xad, 0x4e, 0xf3, 0x99, 0xb9, 0x49, 0x4e, 0xcd, 0x77, 0xf7, 0xba, 0x5b, 0x5d, 0x4f, 0x2c, 0xa3, 0x04, 0xe5, 0xb2, 0x29, 0x21, 0x30, 0x7c, 0xb1, 0x8f, 0xa6, 0x4a, 0xa3, 0xd0, 0x1c, 0x44, 0x11, 0xc8, 0x36, 0x9c, 0xce, 0xde, 0x46, 0x5e, 0xe3, 0x69, 0xee, 0x63, 0x7d, 0x43, 0xd2, 0x88, 0x26, 0xbf, 0x60, 0xdd, 0xde, };
14489 static const u8 ed25519_630_test_vectors_expected_sig[] = {
14490 	0x56, 0x0d, 0x01, 0xb9, 0x4d, 0xf1, 0x1d, 0x83, 0x34, 0x77, 0x52, 0xff, 0x51, 0xb3, 0x54, 0x5e, 0xf5, 0x5c, 0x56, 0x32, 0xae, 0x7c, 0x8e, 0xfb, 0x11, 0xaa, 0xdd, 0x83, 0x12, 0xde, 0xf7, 0x25, 0x62, 0xe8, 0xf5, 0xd7, 0x5e, 0xce, 0x10, 0xad, 0x46, 0xbc, 0x96, 0xc8, 0x60, 0xde, 0xec, 0xe3, 0x9e, 0x63, 0x4a, 0x5f, 0x50, 0x65, 0x4d, 0x4c, 0xdb, 0xa8, 0x4a, 0x8e, 0x6f, 0x70, 0x24, 0x0a, };
14491 static const ec_test_case ed25519_630_test_case = {
14492 	.name = "EDDSA25519-SHA512/wei25519 630",
14493 	.ec_str_p = &wei25519_str_params,
14494 	.priv_key = ed25519_630_test_vectors_priv_key,
14495 	.priv_key_len = sizeof(ed25519_630_test_vectors_priv_key),
14496 	.nn_random = NULL,
14497 	.hash_type = SHA512,
14498 	.msg = (const char *)ed25519_630_test_vectors_message,
14499 	.msglen = sizeof(ed25519_630_test_vectors_message),
14500 	.sig_type = EDDSA25519,
14501 	.exp_sig = ed25519_630_test_vectors_expected_sig,
14502 	.exp_siglen = sizeof(ed25519_630_test_vectors_expected_sig),
14503 	.adata = NULL,
14504 	.adata_len = 0
14505 };
14506 
14507 /************************************************/
14508 static const u8 ed25519_631_test_vectors_priv_key[] = {
14509 	0xd3, 0xd1, 0x88, 0xb3, 0x90, 0xba, 0xcc, 0xd9, 0x50, 0x24, 0x52, 0x61, 0x46, 0xb8, 0x2b, 0x91, 0x84, 0xe1, 0x97, 0xe4, 0x6a, 0x93, 0x40, 0xa0, 0xe6, 0xec, 0x18, 0xbf, 0x75, 0xbe, 0x7f, 0xc5, };
14510 static const u8 ed25519_631_test_vectors_message[] = {
14511 	0x5e, 0x65, 0x65, 0x8e, 0x42, 0x03, 0x75, 0x43, 0x3f, 0xd7, 0xc1, 0xf6, 0xbe, 0x67, 0x88, 0x41, 0xe5, 0x81, 0x04, 0xf1, 0x0b, 0x4c, 0x67, 0x63, 0x59, 0xd8, 0x4f, 0xce, 0x79, 0x92, 0xf5, 0xc5, 0x75, 0x57, 0xd7, 0x38, 0xf8, 0x30, 0xb5, 0x05, 0xfa, 0x0c, 0x2b, 0x9e, 0xab, 0xf8, 0xd1, 0xa9, 0xf8, 0x1f, 0xe8, 0xf3, 0x15, 0xd6, 0x62, 0xe2, 0xb8, 0x4c, 0xe9, 0x52, 0x99, 0xeb, 0xf4, 0xe5, 0x03, 0xb5, 0xe1, 0xf7, 0xf8, 0xcd, 0xb6, 0x68, 0xae, 0x73, 0x3f, 0x3d, 0x0c, 0xdd, 0x4c, 0x74, 0x2a, 0xb5, 0xf2, 0x72, 0xbe, 0xa4, 0xf1, 0x8d, 0x18, 0x3e, 0x89, 0x23, 0x84, 0x76, 0x62, 0xf9, 0xa3, 0x9c, 0xd4, 0xb1, 0x4e, 0xc7, 0x6d, 0x11, 0x03, 0x2f, 0xe5, 0x73, 0xc2, 0x62, 0x01, 0xae, 0xf6, 0x66, 0x01, 0xce, 0xc6, 0x83, 0xe3, 0x4b, 0x89, 0xaf, 0xd9, 0x64, 0xe9, 0x87, 0x80, 0x1c, 0x70, 0x6a, 0x85, 0xe2, 0x7b, 0xab, 0x33, 0x70, 0x1c, 0xd1, 0x09, 0xbc, 0xf0, 0x7b, 0x27, 0xca, 0x67, 0xf0, 0x22, 0xc4, 0x94, 0xa0, 0x4c, 0xbe, 0x5a, 0x9c, 0x6d, 0x63, 0xaa, 0xd9, 0x36, 0xcd, 0xf1, 0xa1, 0x80, 0xfd, 0x05, 0x86, 0x51, 0x98, 0xb9, 0x6f, 0x06, 0xa7, 0x8d, 0xa9, 0x57, 0x99, 0xd3, 0xaa, 0x4d, 0xf3, 0xb1, 0x70, 0x03, 0x3c, 0x69, 0xe8, 0xfb, 0x04, 0x28, 0x8c, 0x35, 0x46, 0x55, 0x3b, 0x57, 0x9c, 0x0a, 0xe3, 0x93, 0x80, 0x62, 0xd3, 0xd8, 0x42, 0x1c, 0xfa, 0x66, 0x26, 0x85, 0x29, 0xbe, 0xc0, 0x27, 0x1e, 0x53, 0xb4, 0xee, 0x7d, 0x09, 0x9e, 0x71, 0x48, 0xa8, 0x02, 0xdf, 0x80, 0xfe, 0x5e, 0xed, 0xee, 0x1c, 0x90, 0x3a, 0xe8, 0xed, 0x4d, 0x64, 0x0e, 0xad, 0x76, 0x12, 0x62, 0xdd, 0x40, 0x14, 0xf2, 0x5f, 0x93, 0x97, 0xba, 0x3f, 0x1c, 0x08, 0xd8, 0x3a, 0x3c, 0x48, 0x5c, 0xfb, 0x55, 0xf8, 0x99, 0x19, 0xaa, 0x97, 0x2d, 0x6b, 0x7e, 0x77, 0x11, 0xbe, 0x9e, 0x30, 0xc1, 0xeb, 0x96, 0xa0, 0xc3, 0x84, 0x53, 0x09, 0xfb, 0x23, 0xdb, 0xc7, 0x5b, 0x69, 0x91, 0xdd, 0x6e, 0x48, 0xcd, 0xde, 0x90, 0xe0, 0x4f, 0x22, 0x8e, 0x8c, 0xcf, 0x3b, 0xa2, 0x3f, 0x27, 0x47, 0xcf, 0xb9, 0xd3, 0x38, 0x1a, 0x93, 0x05, 0xf8, 0x16, 0xf2, 0x6c, 0xdd, 0xe4, 0x1c, 0x02, 0x20, 0xfa, 0xd2, 0x28, 0xff, 0x6a, 0x8b, 0x09, 0x5c, 0x77, 0xb6, 0xba, 0xe8, 0xfa, 0x33, 0x68, 0x14, 0x27, 0x24, 0xbf, 0x1f, 0x5e, 0x0f, 0x6f, 0xbc, 0xa5, 0x32, 0x0c, 0x21, 0x5b, 0x6b, 0xa8, 0x6b, 0x91, 0xe3, 0xa8, 0xac, 0xf7, 0x50, 0xe9, 0x3f, 0xa7, 0xea, 0xa6, 0x5c, 0x4f, 0x78, 0x5e, 0xf8, 0x42, 0x1a, 0x19, 0xc1, 0xe2, 0x7b, 0xc2, 0x4b, 0x42, 0x8e, 0x08, 0xa9, 0x02, 0x42, 0xab, 0xac, 0x9b, 0xd4, 0xaa, 0x03, 0xc6, 0x56, 0xf8, 0xf4, 0x6d, 0xc4, 0x0b, 0x36, 0x15, 0x2c, 0x1b, 0xd0, 0xde, 0xf1, 0xac, 0xfc, 0x0d, 0xa1, 0x0a, 0x2f, 0xa1, 0xdc, 0x3d, 0xa7, 0xac, 0xe5, 0xa8, 0xfd, 0x76, 0x22, 0x7b, 0xb1, 0xa6, 0x02, 0x39, 0x0f, 0xe5, 0x7a, 0xfd, 0x32, 0xef, 0xe2, 0x81, 0xf2, 0xea, 0x6b, 0x2e, 0x4d, 0x25, 0x45, 0xcb, 0x88, 0xd2, 0x30, 0x8d, 0x72, 0x69, 0x1c, 0x9a, 0x52, 0xb4, 0xca, 0x25, 0x23, 0x1a, 0x01, 0x07, 0xf2, 0x5d, 0x11, 0x7c, 0xc9, 0x35, 0x39, 0x76, 0x21, 0xc6, 0x83, 0xbd, 0xc8, 0xf2, 0x2e, 0x81, 0x03, 0x40, 0xf2, 0xcb, 0xac, 0x4c, 0xea, 0xa3, 0x46, 0x86, 0x65, 0x26, 0x18, 0x79, 0xf0, 0x07, 0x42, 0x00, 0x74, 0x3e, 0x0d, 0xe5, 0xf3, 0xe5, 0x83, 0x08, 0xb9, 0x8b, 0x04, 0xb8, 0xc7, 0x14, 0x8a, 0x4e, 0x00, 0x4e, 0x66, 0x7e, 0x83, 0x2b, 0x00, 0x84, 0xb5, 0xf2, 0xbd, 0xc6, 0xfd, 0xc9, 0x59, 0xf2, 0xfc, 0x28, 0xa8, 0xd3, 0x1d, 0x9a, 0x9e, 0x78, 0xe5, 0xd5, 0xf9, 0xc0, 0xb1, 0x19, 0xe5, 0xff, 0x1f, 0x68, 0xf7, 0xc0, 0xda, 0xf0, 0xc0, 0xf1, 0x69, 0x47, 0xcc, 0xa5, 0xb7, 0xce, 0xd0, 0x96, 0x01, 0xe2, 0xeb, 0xed, 0x28, 0x2e, 0xf2, 0xbf, 0x8f, 0xe9, 0xa2, 0x7e, 0xd2, 0x7f, 0xc5, 0xbc, 0xda, 0x8a, 0xed, 0x6c, 0x71, 0xbe, 0xe3, 0xe7, 0x75, 0x10, 0x04, 0x47, 0x26, 0x89, 0xbb, 0xf6, 0xd9, 0xd0, 0x79, 0x52, 0xa2, 0x42, 0xff, 0x87, 0x0d, 0x7c, 0x3f, 0x5e, 0x1f, 0xfc, 0x2c, 0x1f, 0x40, 0xfc, 0x9a, 0xb7, 0x57, 0x9b, 0x39, 0x2b, 0x55, 0x4f, 0x3d, 0xc5, 0x88, 0xc0, 0x3a, 0xb9, 0x57, 0x43, 0x1f, 0xe5, 0xd0, 0x2c, 0xbc, 0x71, 0x1a, 0xd4, 0x89, 0xfe, };
14512 static const u8 ed25519_631_test_vectors_expected_sig[] = {
14513 	0x16, 0x97, 0x6b, 0x26, 0x7d, 0xe9, 0x6e, 0x38, 0xdd, 0xdc, 0x84, 0x78, 0x07, 0x5f, 0x6b, 0xdd, 0x71, 0x59, 0xe5, 0x63, 0x34, 0xb2, 0xd2, 0xd1, 0x92, 0x09, 0x46, 0x29, 0x4f, 0x33, 0xcd, 0x6b, 0x7f, 0x9c, 0x50, 0xf8, 0x05, 0x7f, 0x49, 0x6c, 0xab, 0x5d, 0x94, 0xbb, 0x4d, 0xca, 0x26, 0x2f, 0x9f, 0x0f, 0xdf, 0x9b, 0x1b, 0x64, 0x74, 0x1f, 0x4b, 0x72, 0x2d, 0x32, 0xef, 0xa8, 0x22, 0x03, };
14514 static const ec_test_case ed25519_631_test_case = {
14515 	.name = "EDDSA25519-SHA512/wei25519 631",
14516 	.ec_str_p = &wei25519_str_params,
14517 	.priv_key = ed25519_631_test_vectors_priv_key,
14518 	.priv_key_len = sizeof(ed25519_631_test_vectors_priv_key),
14519 	.nn_random = NULL,
14520 	.hash_type = SHA512,
14521 	.msg = (const char *)ed25519_631_test_vectors_message,
14522 	.msglen = sizeof(ed25519_631_test_vectors_message),
14523 	.sig_type = EDDSA25519,
14524 	.exp_sig = ed25519_631_test_vectors_expected_sig,
14525 	.exp_siglen = sizeof(ed25519_631_test_vectors_expected_sig),
14526 	.adata = NULL,
14527 	.adata_len = 0
14528 };
14529 
14530 /************************************************/
14531 static const u8 ed25519_632_test_vectors_priv_key[] = {
14532 	0x61, 0x91, 0x7a, 0x97, 0x5c, 0xb7, 0xec, 0x56, 0x4c, 0x70, 0x8a, 0x56, 0x53, 0x88, 0xc5, 0x72, 0x36, 0xa6, 0x6b, 0x69, 0x7d, 0xcd, 0x5a, 0x7f, 0x10, 0xba, 0xe6, 0x71, 0x57, 0x2a, 0xc7, 0xf0, };
14533 static const u8 ed25519_632_test_vectors_message[] = {
14534 	0x6e, 0x97, 0x0e, 0x0b, 0x1c, 0x92, 0xa7, 0xf4, 0x96, 0xa8, 0x2d, 0x8a, 0xe8, 0x0c, 0xfd, 0x0c, 0xce, 0xf1, 0xd2, 0xc7, 0x99, 0xd4, 0x17, 0x28, 0xf3, 0x5d, 0xdc, 0xd6, 0x03, 0xb4, 0x21, 0xc2, 0xa5, 0xab, 0x3b, 0x48, 0x9e, 0x78, 0xf4, 0xb6, 0x22, 0x97, 0xde, 0x43, 0x7c, 0x5a, 0xd1, 0xa9, 0x68, 0x3f, 0xf8, 0x7f, 0xa2, 0x8e, 0xb3, 0xcc, 0x38, 0xce, 0x24, 0x2a, 0xf5, 0x94, 0x19, 0xf9, 0xfd, 0x43, 0xfc, 0xaa, 0x54, 0xfc, 0x39, 0x89, 0x92, 0xf8, 0xc8, 0xe3, 0x1f, 0x2b, 0x33, 0xdc, 0xcc, 0xd0, 0xee, 0x11, 0xba, 0x7b, 0x38, 0x8e, 0x8d, 0x2a, 0x36, 0xea, 0xd0, 0x67, 0xc6, 0xbe, 0xce, 0xd5, 0x89, 0x0a, 0xb7, 0xd4, 0xa9, 0x4f, 0x55, 0xda, 0xb9, 0x21, 0x28, 0xa0, 0xf8, 0x14, 0xc0, 0xe6, 0x89, 0x71, 0xdf, 0x57, 0xbd, 0x50, 0x78, 0xa7, 0x40, 0x31, 0x75, 0xc7, 0xc2, 0xfd, 0xd4, 0xa5, 0x24, 0x47, 0x15, 0x3a, 0xb3, 0x74, 0x56, 0x72, 0x9a, 0xee, 0x33, 0xe5, 0xfc, 0x93, 0xdb, 0x8e, 0x7f, 0x48, 0x03, 0x09, 0x87, 0x5e, 0xcf, 0x6d, 0xb0, 0x7c, 0xe7, 0xf3, 0xca, 0xc5, 0xde, 0x49, 0xe3, 0x61, 0x27, 0x5c, 0xa5, 0x0b, 0x6b, 0x71, 0x9f, 0x4b, 0x71, 0x5b, 0x3e, 0x30, 0x86, 0x3c, 0xbb, 0x3b, 0x71, 0x64, 0xba, 0x9e, 0xb9, 0x6e, 0xf3, 0x30, 0x4b, 0x19, 0xad, 0x4d, 0x74, 0xdc, 0xe4, 0xbd, 0x25, 0xe7, 0x7b, 0xbb, 0xbe, 0xff, 0x1e, 0xe7, 0xd1, 0xfb, 0x55, 0xb9, 0xc4, 0xf7, 0xfc, 0x4c, 0xd9, 0xbd, 0x55, 0x10, 0x8a, 0xfc, 0xf9, 0x9c, 0x1a, 0x41, 0xcd, 0x6f, 0x6b, 0x1a, 0xdb, 0x29, 0x7b, 0x10, 0x6c, 0x8b, 0xa2, 0x4e, 0x31, 0x34, 0xf8, 0x7d, 0xd8, 0xef, 0xe5, 0xcf, 0x85, 0x49, 0x22, 0x91, 0xb9, 0x4d, 0x66, 0x00, 0x95, 0x8c, 0x28, 0xb9, 0x12, 0x2f, 0xe6, 0xe0, 0x1b, 0xd3, 0xe3, 0x29, 0xe4, 0x2d, 0x19, 0x26, 0xb8, 0x9f, 0x7a, 0x8c, 0x40, 0xa4, 0x98, 0x67, 0xe5, 0xaa, 0x3a, 0xd7, 0x49, 0xbd, 0x98, 0xda, 0xe7, 0xd0, 0x06, 0xb4, 0x53, 0x60, 0x9e, 0x7d, 0xae, 0x26, 0x36, 0x4d, 0x91, 0x72, 0xbe, 0x72, 0x83, 0x33, 0x01, 0x21, 0xed, 0x2b, 0x40, 0x27, 0xe0, 0x88, 0x51, 0x18, 0x74, 0x3a, 0x6e, 0xa0, 0xcb, 0x7d, 0xc2, 0x74, 0x09, 0xa9, 0xb2, 0x82, 0x0b, 0xcc, 0x24, 0x2e, 0xa1, 0x0a, 0x00, 0x93, 0x7b, 0xf8, 0x49, 0x20, 0x1e, 0x0f, 0xb6, 0x19, 0x94, 0x21, 0xf1, 0x63, 0xe9, 0x79, 0x4f, 0x2d, 0xd4, 0xb3, 0x32, 0x01, 0x4a, 0x09, 0xd3, 0xee, 0x80, 0x71, 0xda, 0x78, 0x77, 0x47, 0xf9, 0x90, 0xf5, 0x17, 0x99, 0x19, 0x02, 0x7d, 0xdf, 0xf7, 0xca, 0xb0, 0xf5, 0x5e, 0x9a, 0xfa, 0x8e, 0xcc, 0xb1, 0x6c, 0xc2, 0xdd, 0x3c, 0xbb, 0xea, 0xd7, 0xff, 0x7e, 0xc8, 0x18, 0xc2, 0x53, 0x39, 0x3f, 0x74, 0x87, 0x41, 0xf5, 0x54, 0x07, 0xf7, 0x40, 0x8e, 0xe3, 0x3a, 0x42, 0xae, 0x2d, 0x6e, 0xcb, 0x3f, 0xb6, 0x00, 0xa7, 0x1f, 0x30, 0xab, 0x63, 0x06, 0x06, 0xe5, 0x53, 0xb4, 0x36, 0x78, 0xe5, 0x98, 0x54, 0xf3, 0xa2, 0x94, 0x7b, 0xcf, 0x4e, 0xa0, 0xfc, 0xfe, 0xdc, 0x31, 0x4d, 0x83, 0x70, 0xd1, 0x26, 0x63, 0x95, 0xfd, 0xa3, 0xc9, 0x10, 0x5e, 0x97, 0x59, 0x52, 0xf6, 0x0e, 0x30, 0x86, 0xbb, 0x82, 0x48, 0x15, 0x13, 0xd6, 0xfe, 0x8a, 0xdb, 0x4f, 0x95, 0xef, 0xb9, 0xa9, 0x5b, 0x66, 0xd4, 0x80, 0xd2, 0xbb, 0x17, 0x10, 0x78, 0xcf, 0x40, 0x68, 0x4a, 0xc6, 0x9a, 0x78, 0x9c, 0x7f, 0xb7, 0xfa, 0x42, 0x53, 0x33, 0xd7, 0x05, 0xdb, 0x00, 0x06, 0x67, 0x55, 0xdf, 0x72, 0x8d, 0xe0, 0x2d, 0xf2, 0x5b, 0xae, 0x34, 0xf1, 0xd7, 0xd4, 0x9c, 0xaf, 0xfc, 0x51, 0xe9, 0xba, 0x2b, 0x10, 0xb9, 0x8f, 0xe4, 0xcd, 0x9d, 0x22, 0xb7, 0x76, 0x4e, 0xd9, 0x31, 0xed, 0xb5, 0xf0, 0xb5, 0x54, 0x49, 0x6e, 0x99, 0x53, 0x91, 0xe0, 0xaf, 0x0b, 0x8d, 0x1c, 0x7a, 0x82, 0x95, 0xa8, 0xd1, 0x5a, 0x7c, 0x65, 0x56, 0xd2, 0x9c, 0xb1, 0x9e, 0x08, 0x55, 0xca, 0x50, 0x5a, 0xd0, 0x1d, 0x2a, 0xa3, 0x09, 0x28, 0xa8, 0x4b, 0xc4, 0x89, 0x59, 0x57, 0x6d, 0x81, 0x2d, 0x9b, 0x27, 0xb8, 0xe8, 0x88, 0x79, 0xfa, 0xa2, 0x80, 0x6c, 0x08, 0x41, 0x36, 0x0e, 0xcd, 0x0f, 0xe8, 0x3f, 0x5b, 0x84, 0x8f, 0xc1, 0x2f, 0x65, 0x8f, 0x1e, 0x7f, 0x40, 0xe5, 0x61, 0xc2, 0xe7, 0x8d, 0x3b, 0x01, 0x25, 0x21, 0x0a, 0x92, 0x06, 0x1c, 0x2d, 0xb2, 0x1b, 0xa6, 0x60, 0xe8, 0x60, 0x8f, 0xf5, };
14535 static const u8 ed25519_632_test_vectors_expected_sig[] = {
14536 	0x6a, 0xbb, 0x3e, 0x37, 0x7b, 0x5c, 0x80, 0xb7, 0x4f, 0x77, 0x21, 0x9c, 0x1a, 0x9e, 0x09, 0x6f, 0xba, 0x0e, 0xb6, 0x89, 0x90, 0x81, 0x7a, 0xcf, 0xf1, 0x2d, 0xba, 0x7f, 0x61, 0xc7, 0x7c, 0xcf, 0x59, 0x5f, 0xb6, 0x60, 0x85, 0x52, 0x00, 0x3c, 0xea, 0xd0, 0x6c, 0xa1, 0x31, 0x7c, 0x9c, 0xd5, 0x1a, 0xc4, 0x72, 0x4b, 0x29, 0xf4, 0x09, 0x21, 0xfb, 0x92, 0x84, 0x33, 0x76, 0x87, 0x64, 0x01, };
14537 static const ec_test_case ed25519_632_test_case = {
14538 	.name = "EDDSA25519-SHA512/wei25519 632",
14539 	.ec_str_p = &wei25519_str_params,
14540 	.priv_key = ed25519_632_test_vectors_priv_key,
14541 	.priv_key_len = sizeof(ed25519_632_test_vectors_priv_key),
14542 	.nn_random = NULL,
14543 	.hash_type = SHA512,
14544 	.msg = (const char *)ed25519_632_test_vectors_message,
14545 	.msglen = sizeof(ed25519_632_test_vectors_message),
14546 	.sig_type = EDDSA25519,
14547 	.exp_sig = ed25519_632_test_vectors_expected_sig,
14548 	.exp_siglen = sizeof(ed25519_632_test_vectors_expected_sig),
14549 	.adata = NULL,
14550 	.adata_len = 0
14551 };
14552 
14553 /************************************************/
14554 static const u8 ed25519_633_test_vectors_priv_key[] = {
14555 	0x7b, 0xa2, 0x5f, 0x27, 0x97, 0xa2, 0x83, 0x6f, 0x37, 0x9d, 0x6b, 0xbc, 0xbe, 0x9a, 0xbf, 0x4f, 0x2d, 0xef, 0x5e, 0x52, 0xf7, 0x2b, 0xd9, 0xe0, 0xb0, 0x06, 0x57, 0x10, 0x22, 0xfa, 0xc2, 0xf3, };
14556 static const u8 ed25519_633_test_vectors_message[] = {
14557 	0x17, 0x1a, 0x34, 0x09, 0x87, 0x80, 0x97, 0xb3, 0xb2, 0x2b, 0x2c, 0x00, 0x66, 0x0b, 0x46, 0xe5, 0x42, 0xc2, 0x16, 0x4c, 0x00, 0xbb, 0xee, 0x54, 0x55, 0x48, 0x37, 0x94, 0x0e, 0x70, 0xf0, 0x3d, 0xa9, 0x91, 0x6a, 0x40, 0xf9, 0xbd, 0xe8, 0x28, 0x8f, 0x45, 0xe4, 0x7b, 0xef, 0x7f, 0xfe, 0x4e, 0x55, 0x7c, 0xd4, 0x47, 0x40, 0x45, 0xe7, 0x40, 0xfd, 0x95, 0x9d, 0x98, 0x4f, 0x4e, 0xc8, 0x1d, 0xa8, 0x8d, 0x44, 0xa3, 0x73, 0xc1, 0xed, 0xa0, 0xcf, 0xc6, 0xb0, 0x8e, 0x35, 0x13, 0x73, 0xd3, 0xb8, 0x2a, 0xb0, 0x90, 0x2d, 0xf8, 0x06, 0x3f, 0xd9, 0x08, 0xe7, 0x03, 0xe0, 0xcb, 0xec, 0x41, 0x0a, 0xb5, 0xcd, 0xfe, 0xaa, 0xe0, 0x01, 0x88, 0xce, 0x2a, 0xd4, 0x2b, 0x8b, 0xf0, 0x4f, 0x7d, 0xaa, 0x5f, 0x0e, 0xe3, 0x33, 0xa6, 0xf9, 0x31, 0x1b, 0x4a, 0xd9, 0x81, 0x09, 0x52, 0xd5, 0xd5, 0xa6, 0x4b, 0x20, 0xf3, 0x7e, 0x84, 0x54, 0x15, 0xfc, 0x3c, 0xdd, 0x61, 0x6f, 0xeb, 0xec, 0x50, 0xdb, 0x29, 0x6f, 0xb3, 0xf3, 0xbb, 0x7f, 0x6b, 0x36, 0x6b, 0xbe, 0x52, 0xe4, 0x89, 0x7a, 0x05, 0x61, 0x7b, 0xf7, 0xc9, 0x81, 0xa6, 0x2e, 0xdc, 0xbb, 0xbe, 0x5d, 0xa4, 0xc3, 0x9c, 0xaf, 0xa8, 0x69, 0xaa, 0x2b, 0x27, 0x34, 0xe6, 0xcf, 0xed, 0x90, 0xed, 0x8b, 0xe7, 0x59, 0x49, 0x39, 0x0e, 0xe4, 0x45, 0x66, 0x89, 0x24, 0x55, 0xb8, 0x90, 0xcf, 0x56, 0x8b, 0x94, 0x5a, 0xab, 0xb7, 0x58, 0xd3, 0x85, 0x4b, 0xe6, 0x53, 0x9f, 0x3b, 0x86, 0xbf, 0x01, 0xd1, 0x88, 0xe4, 0x8c, 0xf2, 0x62, 0x6a, 0x0d, 0x7d, 0x38, 0x17, 0x03, 0xbe, 0x6e, 0xd1, 0x29, 0x0d, 0xfb, 0x94, 0x7b, 0xc2, 0xe0, 0xf8, 0x3d, 0xbc, 0x58, 0x70, 0x30, 0x80, 0xd7, 0xf5, 0xb9, 0xef, 0x19, 0xae, 0xf9, 0x30, 0x90, 0x8f, 0x68, 0xf0, 0xc8, 0x00, 0x10, 0xa9, 0x40, 0x1b, 0x30, 0x3a, 0x9f, 0x6d, 0xa8, 0x05, 0xbb, 0x8a, 0x0e, 0xd0, 0xf3, 0x94, 0x13, 0xee, 0xfe, 0xdf, 0x91, 0x9f, 0xfd, 0x8e, 0xa6, 0x39, 0x1b, 0xf9, 0x5d, 0x42, 0x29, 0x60, 0x4e, 0x49, 0x45, 0x7b, 0x8e, 0x23, 0xbe, 0xc6, 0x11, 0x48, 0x4c, 0xc7, 0xf9, 0x83, 0x2d, 0xd9, 0x5b, 0xdc, 0x3a, 0xd1, 0x77, 0xc0, 0x50, 0xf4, 0xab, 0x63, 0x3d, 0xcd, 0xb3, 0xe6, 0x91, 0xf5, 0x90, 0x28, 0x73, 0xb3, 0x8c, 0xb0, 0x72, 0x0b, 0x91, 0x13, 0x35, 0x7f, 0xe0, 0xcf, 0xb9, 0x8a, 0x68, 0xcc, 0xcb, 0x5d, 0x5f, 0x08, 0x09, 0xd5, 0x9a, 0x37, 0x5c, 0xf7, 0xb5, 0xa2, 0x75, 0xd4, 0x3c, 0x4c, 0x34, 0xff, 0x68, 0xe4, 0x48, 0x52, 0x6e, 0x8e, 0x1a, 0xad, 0x44, 0xe2, 0x00, 0x08, 0xa2, 0x32, 0xaf, 0xbc, 0xf5, 0x32, 0xa4, 0x2b, 0x50, 0xa0, 0x25, 0xa1, 0xb2, 0xee, 0x4e, 0x07, 0x7e, 0xb0, 0x12, 0x5a, 0x59, 0x3d, 0x51, 0xa2, 0x00, 0xec, 0x20, 0xd8, 0x72, 0xc0, 0x58, 0x38, 0xad, 0x36, 0xaa, 0xae, 0xec, 0xcc, 0x3e, 0xd9, 0xef, 0x41, 0xf6, 0xd1, 0x22, 0x67, 0x02, 0x17, 0xd5, 0xc0, 0x8f, 0x6e, 0x13, 0xc1, 0x72, 0x19, 0x45, 0x89, 0xac, 0xc3, 0xc5, 0x9f, 0x7e, 0xf7, 0x90, 0xc7, 0xc8, 0x5a, 0xa6, 0xd5, 0xeb, 0x69, 0xd4, 0xc8, 0x9a, 0x72, 0xf5, 0xe7, 0xc9, 0x24, 0x69, 0x85, 0xc1, 0xac, 0x0c, 0x5d, 0x19, 0x7f, 0x76, 0xa7, 0x3e, 0x37, 0x74, 0x83, 0x9d, 0x4a, 0xa2, 0x09, 0x6a, 0xca, 0x19, 0x0a, 0x30, 0xf4, 0xaa, 0xc5, 0x40, 0x57, 0xb6, 0x4f, 0x35, 0x8e, 0x0e, 0x06, 0x40, 0x0c, 0x0d, 0xf2, 0xf8, 0x76, 0x41, 0x2d, 0x34, 0x48, 0x4c, 0x43, 0x44, 0xf4, 0xd7, 0xc8, 0x66, 0x51, 0x7d, 0x3e, 0xfb, 0xa4, 0xa9, 0x0f, 0xa7, 0x14, 0x4c, 0x9b, 0xa5, 0xdb, 0x33, 0x61, 0xdb, 0x57, 0x69, 0x40, 0x3e, 0xc8, 0x16, 0x26, 0xa5, 0x11, 0xf9, 0x3e, 0x30, 0xf8, 0x58, 0x6e, 0xad, 0xfc, 0xaf, 0xd9, 0xa3, 0x6e, 0xcf, 0xf8, 0xd2, 0x4b, 0x42, 0x07, 0x9a, 0xda, 0x8e, 0x57, 0x9a, 0xc3, 0x08, 0x51, 0x17, 0x7b, 0xce, 0x90, 0x38, 0xb0, 0xe1, 0x30, 0x00, 0x72, 0xd6, 0x8e, 0xfd, 0xd7, 0x23, 0xf6, 0x35, 0x50, 0x64, 0x84, 0x32, 0x75, 0x81, 0x5a, 0x66, 0xb9, 0xd7, 0x3a, 0x12, 0x99, 0xaa, 0x59, 0xa1, 0x81, 0x2f, 0x64, 0x52, 0xfb, 0x41, 0x15, 0xea, 0x2b, 0x1f, 0x9f, 0xf4, 0xa9, 0x96, 0x90, 0x59, 0x6e, 0x3f, 0x20, 0x22, 0xd8, 0x1e, 0xd8, 0x74, 0xdd, 0x67, 0xe6, 0x18, 0x9c, 0xa0, 0xe6, 0x8b, 0x93, 0x04, 0xe9, 0x93, 0xa9, 0x5b, 0x66, 0x66, 0x5e, 0x0d, 0x07, 0x4c, };
14558 static const u8 ed25519_633_test_vectors_expected_sig[] = {
14559 	0xf1, 0xf5, 0x90, 0xa9, 0x07, 0xba, 0x98, 0x0e, 0xb0, 0xd6, 0x48, 0xab, 0x4d, 0xed, 0x5f, 0x92, 0xfa, 0xf7, 0xcb, 0x85, 0x1d, 0x81, 0xd8, 0x58, 0xa7, 0x8f, 0xa6, 0xb7, 0x7c, 0xbb, 0xe1, 0x2f, 0x64, 0xd2, 0x0d, 0xf5, 0x27, 0x71, 0xa7, 0xd5, 0xe5, 0x39, 0xa1, 0x52, 0xd7, 0x31, 0xe1, 0x90, 0x3d, 0x42, 0x11, 0xfd, 0xcf, 0xef, 0x9a, 0x48, 0xb4, 0x6c, 0x8f, 0xd5, 0x39, 0x4c, 0xa0, 0x09, };
14560 static const ec_test_case ed25519_633_test_case = {
14561 	.name = "EDDSA25519-SHA512/wei25519 633",
14562 	.ec_str_p = &wei25519_str_params,
14563 	.priv_key = ed25519_633_test_vectors_priv_key,
14564 	.priv_key_len = sizeof(ed25519_633_test_vectors_priv_key),
14565 	.nn_random = NULL,
14566 	.hash_type = SHA512,
14567 	.msg = (const char *)ed25519_633_test_vectors_message,
14568 	.msglen = sizeof(ed25519_633_test_vectors_message),
14569 	.sig_type = EDDSA25519,
14570 	.exp_sig = ed25519_633_test_vectors_expected_sig,
14571 	.exp_siglen = sizeof(ed25519_633_test_vectors_expected_sig),
14572 	.adata = NULL,
14573 	.adata_len = 0
14574 };
14575 
14576 /************************************************/
14577 static const u8 ed25519_634_test_vectors_priv_key[] = {
14578 	0xd1, 0xe1, 0xb2, 0x2d, 0xe5, 0xe0, 0x4c, 0x9b, 0xe4, 0x65, 0x1d, 0xd7, 0x39, 0x95, 0xa3, 0x66, 0x6c, 0xb5, 0x35, 0x2c, 0x65, 0xac, 0x7b, 0x70, 0x51, 0xb3, 0x66, 0xfe, 0x1a, 0xc0, 0xc3, 0x10, };
14579 static const u8 ed25519_634_test_vectors_message[] = {
14580 	0xc7, 0xf2, 0x18, 0xb5, 0xaa, 0x7a, 0xae, 0x17, 0x99, 0x62, 0x5a, 0x56, 0xc4, 0xd7, 0xd7, 0xb0, 0x26, 0x37, 0xe5, 0x72, 0xf1, 0x41, 0x1a, 0x61, 0x22, 0xf1, 0x13, 0x79, 0x1a, 0xa3, 0xc6, 0x28, 0xe8, 0x19, 0x60, 0x2f, 0xb4, 0xf0, 0x33, 0x5a, 0x61, 0x23, 0x01, 0x3f, 0xa6, 0x4e, 0x9f, 0xdc, 0x4e, 0x4a, 0xe4, 0x97, 0xbd, 0x16, 0x9c, 0x2f, 0xa7, 0x7b, 0xc2, 0x36, 0x12, 0x97, 0x17, 0xf4, 0x62, 0x88, 0x6b, 0x41, 0x08, 0x93, 0xfa, 0x78, 0x09, 0xcb, 0xfd, 0xc8, 0x92, 0x22, 0x3b, 0x40, 0xee, 0x04, 0x1e, 0xbd, 0x4e, 0xc7, 0xdd, 0xab, 0x55, 0xbe, 0x60, 0x81, 0xa1, 0x64, 0x66, 0x43, 0xa9, 0x12, 0x0b, 0xaa, 0x46, 0x28, 0x9a, 0xcb, 0xa1, 0x5b, 0x3b, 0x48, 0xaf, 0x3b, 0x7a, 0xde, 0xcd, 0x69, 0xf4, 0x3e, 0xed, 0xe7, 0x9d, 0x9b, 0x19, 0x57, 0xe1, 0xd8, 0xc3, 0x12, 0x9e, 0x0f, 0xa0, 0x57, 0x9d, 0x3d, 0x39, 0x53, 0x70, 0x46, 0x1b, 0x0e, 0x12, 0x55, 0xc9, 0xca, 0xa9, 0x4e, 0x47, 0x25, 0x60, 0x1c, 0xb9, 0xd0, 0xe2, 0xd6, 0x02, 0x44, 0xd1, 0x5b, 0x64, 0xe1, 0xf7, 0xbc, 0x90, 0x15, 0x59, 0x0a, 0xd0, 0x99, 0x1f, 0x12, 0xf8, 0x26, 0x73, 0x11, 0x20, 0x6e, 0x9e, 0xb5, 0xd1, 0x6a, 0xdd, 0x0b, 0xa5, 0x21, 0x8f, 0xce, 0x5f, 0xff, 0xe1, 0xc9, 0xce, 0x5f, 0xfe, 0x1f, 0x73, 0x11, 0x32, 0xf4, 0xb1, 0x2c, 0xac, 0xb0, 0x2f, 0x97, 0x45, 0x17, 0x10, 0x84, 0x6b, 0x7f, 0x82, 0x4f, 0x4f, 0xa9, 0xe0, 0x89, 0x19, 0x26, 0x64, 0x69, 0x78, 0x9c, 0x00, 0xce, 0x0d, 0x94, 0xd3, 0x8f, 0xa8, 0xfe, 0xc3, 0xf5, 0x1f, 0x2f, 0x88, 0x6e, 0x9d, 0xb0, 0x9b, 0x80, 0x44, 0x70, 0xb1, 0x9e, 0xc9, 0xe8, 0x06, 0x63, 0xf1, 0x55, 0xb4, 0x98, 0x4d, 0x2b, 0xbd, 0x0b, 0x2c, 0xe9, 0x93, 0x02, 0xe0, 0x6c, 0x64, 0x44, 0x4b, 0x69, 0x6e, 0x31, 0x29, 0xfc, 0xef, 0x34, 0xc3, 0xdd, 0x00, 0xf7, 0xab, 0x5b, 0xed, 0xa7, 0x47, 0xa3, 0xfc, 0x63, 0x39, 0x19, 0x2b, 0x74, 0x0f, 0x35, 0x69, 0xb6, 0x7d, 0xbd, 0x6f, 0xfa, 0x39, 0xe2, 0x71, 0xfa, 0xa4, 0x00, 0xd9, 0x61, 0x6b, 0xff, 0x86, 0xec, 0x49, 0xa6, 0x59, 0xde, 0xf2, 0xe7, 0xf5, 0xd4, 0x51, 0xf2, 0xa2, 0xb3, 0x5e, 0x66, 0x2a, 0x6e, 0x7c, 0xc2, 0x2f, 0x1e, 0x5c, 0xdc, 0xde, 0x8a, 0x59, 0x98, 0x81, 0x35, 0xb7, 0xe7, 0x65, 0x62, 0x74, 0x3c, 0x1e, 0x6a, 0x09, 0x99, 0x01, 0xb3, 0xef, 0x97, 0xcb, 0xff, 0x23, 0xf2, 0x09, 0xbd, 0x70, 0x88, 0xc2, 0xf0, 0x32, 0x45, 0x27, 0x9a, 0x1d, 0xc7, 0x8d, 0xdd, 0xc1, 0xbb, 0x0c, 0x1d, 0x35, 0x10, 0x03, 0x57, 0x88, 0x21, 0x26, 0xb3, 0x28, 0xd3, 0xd9, 0x4e, 0x08, 0x71, 0xb6, 0x0b, 0xe2, 0x53, 0xfd, 0x1b, 0x6e, 0xcf, 0x03, 0xc1, 0xdb, 0x73, 0x1d, 0x9e, 0xed, 0x0e, 0xdf, 0x2b, 0x26, 0x43, 0x23, 0x07, 0x80, 0xa4, 0xd6, 0x6e, 0x99, 0x17, 0x9a, 0xad, 0x1b, 0x82, 0x40, 0x2e, 0x55, 0xf6, 0xd7, 0x85, 0xeb, 0xc8, 0x0f, 0x8d, 0xd2, 0xfd, 0x2b, 0xeb, 0x09, 0xf3, 0x10, 0x35, 0xdf, 0x62, 0xc1, 0x7f, 0x42, 0x8e, 0xd0, 0xb2, 0xd5, 0x65, 0x08, 0xdb, 0x31, 0xe6, 0xd2, 0xdd, 0x5f, 0xb6, 0x9e, 0xbe, 0xee, 0xa3, 0x25, 0x70, 0x70, 0xcf, 0x2f, 0xe6, 0x7d, 0x42, 0xd2, 0x88, 0x16, 0xa5, 0x5d, 0xba, 0xe0, 0xb1, 0x85, 0xdb, 0x44, 0x21, 0xbb, 0xfd, 0xae, 0xfc, 0x79, 0xc0, 0x8c, 0xdc, 0x1a, 0xcc, 0xf7, 0x16, 0x42, 0x56, 0x2e, 0xc7, 0x00, 0x36, 0xda, 0x2b, 0xba, 0xfa, 0x4a, 0x89, 0x19, 0x54, 0xc4, 0xee, 0x40, 0x49, 0xb5, 0x5c, 0x64, 0x0e, 0x91, 0x93, 0x0e, 0x39, 0xe3, 0xef, 0x10, 0x18, 0xdc, 0x16, 0x47, 0xf2, 0x69, 0x42, 0xc6, 0xdb, 0xdf, 0x4d, 0x56, 0xe4, 0x1e, 0xb2, 0xc8, 0x98, 0xc8, 0x21, 0xfa, 0xc1, 0x7c, 0xc2, 0x73, 0xe8, 0xe4, 0xaa, 0x56, 0x08, 0xa8, 0x12, 0xcf, 0x4b, 0x82, 0xf9, 0x60, 0x19, 0xc2, 0x52, 0xd5, 0x6e, 0x78, 0x05, 0x29, 0x8c, 0xcb, 0xe8, 0xce, 0x40, 0xb0, 0xbd, 0x0f, 0x93, 0x3b, 0x88, 0x4c, 0x0f, 0xaf, 0x97, 0xa9, 0x58, 0xb2, 0x04, 0x08, 0xb8, 0xa5, 0x29, 0x7c, 0xce, 0x55, 0x27, 0xb2, 0xca, 0x21, 0x28, 0x06, 0xe7, 0x2a, 0x32, 0x64, 0x45, 0x7a, 0x7f, 0xac, 0x86, 0x62, 0xb8, 0x2c, 0xa2, 0x33, 0xe1, 0xc7, 0x75, 0x8d, 0xc6, 0xe4, 0xf1, 0xb9, 0x99, 0x58, 0x63, 0xf2, 0x5f, 0x74, 0x7b, 0xce, 0xe4, 0x3b, 0x63, 0x9b, 0x1f, 0x8f, 0x20, 0x26, 0xd2, 0xd2, };
14581 static const u8 ed25519_634_test_vectors_expected_sig[] = {
14582 	0xab, 0xaa, 0xb4, 0xfa, 0x6a, 0xeb, 0x0a, 0x0b, 0x34, 0xee, 0x0d, 0x61, 0x3a, 0x0a, 0xf0, 0x49, 0xed, 0xb4, 0xce, 0xdb, 0xfe, 0x9d, 0x3b, 0xeb, 0xe9, 0xc0, 0x06, 0x18, 0xb1, 0x15, 0xb9, 0xd1, 0xfa, 0x52, 0x4e, 0xc3, 0x49, 0x5e, 0x13, 0x30, 0xb0, 0x93, 0x61, 0x81, 0xea, 0xbb, 0x14, 0x29, 0x9f, 0xac, 0xcc, 0x40, 0xea, 0xa8, 0xcc, 0xa5, 0x7e, 0xd3, 0x24, 0xb7, 0xa6, 0x42, 0x0c, 0x0e, };
14583 static const ec_test_case ed25519_634_test_case = {
14584 	.name = "EDDSA25519-SHA512/wei25519 634",
14585 	.ec_str_p = &wei25519_str_params,
14586 	.priv_key = ed25519_634_test_vectors_priv_key,
14587 	.priv_key_len = sizeof(ed25519_634_test_vectors_priv_key),
14588 	.nn_random = NULL,
14589 	.hash_type = SHA512,
14590 	.msg = (const char *)ed25519_634_test_vectors_message,
14591 	.msglen = sizeof(ed25519_634_test_vectors_message),
14592 	.sig_type = EDDSA25519,
14593 	.exp_sig = ed25519_634_test_vectors_expected_sig,
14594 	.exp_siglen = sizeof(ed25519_634_test_vectors_expected_sig),
14595 	.adata = NULL,
14596 	.adata_len = 0
14597 };
14598 
14599 /************************************************/
14600 static const u8 ed25519_635_test_vectors_priv_key[] = {
14601 	0xdf, 0x29, 0x4e, 0x47, 0x7b, 0x1b, 0x91, 0xc5, 0xac, 0x5b, 0x98, 0xc3, 0x30, 0xd2, 0x22, 0xd7, 0xcd, 0x2d, 0x53, 0xe7, 0xd0, 0xbc, 0x0c, 0xa4, 0x03, 0xdf, 0x4e, 0xc7, 0x53, 0x27, 0xa2, 0x74, };
14602 static const u8 ed25519_635_test_vectors_message[] = {
14603 	0x3e, 0x42, 0xd6, 0x68, 0x40, 0x96, 0x30, 0xcb, 0xb8, 0x48, 0x12, 0xac, 0x7f, 0xf1, 0x15, 0x4f, 0x70, 0xfc, 0xa8, 0xbd, 0xff, 0x3f, 0x1a, 0x04, 0x0f, 0xa3, 0xaf, 0x86, 0x8a, 0xa1, 0xc4, 0xe9, 0x15, 0x08, 0xb1, 0xae, 0xfd, 0xf5, 0xc3, 0xa8, 0xb4, 0xb0, 0x77, 0xa4, 0xd1, 0x62, 0xd2, 0xc0, 0x5b, 0xd3, 0x64, 0xfb, 0xbe, 0x8c, 0x5a, 0x08, 0x31, 0x4c, 0x2e, 0x07, 0xdf, 0xfb, 0xd6, 0xe8, 0xdd, 0x2e, 0x08, 0xa0, 0xdc, 0xc9, 0x6e, 0xa9, 0x2d, 0xdd, 0x4c, 0x97, 0xf7, 0x9d, 0xb9, 0x42, 0x5a, 0x6c, 0x6b, 0x34, 0xc4, 0x60, 0x43, 0xd0, 0x9a, 0x68, 0xb7, 0x68, 0x72, 0x36, 0xa9, 0x18, 0xd2, 0x1a, 0x56, 0x16, 0x10, 0xa1, 0x3a, 0xc5, 0xe4, 0x46, 0xe0, 0x88, 0x1b, 0xb2, 0x6c, 0xc8, 0xe2, 0x8a, 0xad, 0x16, 0x54, 0xf8, 0x67, 0xad, 0x82, 0xae, 0x33, 0xf8, 0xf7, 0xa7, 0x8a, 0x65, 0xbe, 0x57, 0x69, 0x94, 0x75, 0x51, 0x6a, 0x1a, 0x87, 0x46, 0x84, 0x3e, 0x93, 0xa1, 0xa2, 0x94, 0x35, 0x46, 0x24, 0xfa, 0xc0, 0x4d, 0x45, 0x2c, 0xcf, 0xbe, 0x4f, 0xdd, 0x92, 0xa9, 0x51, 0xaa, 0xa0, 0x7d, 0x26, 0x67, 0x6d, 0x5c, 0xb0, 0x77, 0xa5, 0x00, 0x0d, 0x43, 0x9c, 0x12, 0x42, 0x76, 0xc0, 0xdb, 0xcf, 0x86, 0xe7, 0xaa, 0x15, 0x3c, 0xc2, 0x4b, 0x5a, 0xff, 0x67, 0x7c, 0x6b, 0xad, 0xc2, 0x61, 0xc2, 0x89, 0xf4, 0xa4, 0xae, 0x51, 0x9b, 0x2e, 0x2f, 0xff, 0x31, 0x2f, 0xbf, 0x0f, 0x5b, 0x4c, 0x46, 0x98, 0xf6, 0xae, 0xdd, 0x8f, 0xcb, 0x1d, 0x23, 0x48, 0x94, 0x2d, 0xe3, 0xfb, 0x73, 0xba, 0x27, 0xf6, 0xdb, 0x14, 0xc2, 0xf0, 0x91, 0x80, 0x35, 0x6e, 0x5f, 0xca, 0xe1, 0xad, 0xf6, 0x5e, 0x22, 0x42, 0x5f, 0x8c, 0x27, 0xf1, 0x9e, 0x98, 0x94, 0x83, 0x50, 0x6e, 0x5d, 0xf5, 0x7a, 0x1b, 0x61, 0x3a, 0x22, 0xe3, 0x45, 0x03, 0x8b, 0x3e, 0xa9, 0x1c, 0x0f, 0x78, 0xff, 0xff, 0x46, 0x38, 0x3f, 0x38, 0xc7, 0x22, 0x25, 0x35, 0x8a, 0x34, 0x57, 0x0d, 0x6f, 0x66, 0x4a, 0x17, 0x45, 0x4a, 0x15, 0x16, 0x13, 0xf0, 0x1c, 0xba, 0x77, 0x7f, 0x62, 0xec, 0x83, 0x18, 0x75, 0xec, 0x5e, 0x27, 0xd2, 0x57, 0xf1, 0x80, 0xb6, 0x36, 0x6c, 0xb1, 0x83, 0x10, 0x7c, 0x40, 0xf5, 0x0b, 0x01, 0xb2, 0xb9, 0xbf, 0x91, 0xb3, 0xb5, 0x54, 0x9e, 0xd9, 0x31, 0xa3, 0x53, 0x7a, 0xa4, 0x16, 0x89, 0xf7, 0x2b, 0x25, 0x7a, 0x6a, 0xa3, 0x9c, 0xdc, 0x6f, 0xce, 0xdf, 0x14, 0x39, 0x83, 0xbe, 0x5b, 0xff, 0xe3, 0xae, 0x2b, 0x29, 0xf8, 0x2f, 0x88, 0x21, 0x22, 0xd6, 0x6a, 0x79, 0x25, 0xf5, 0xa7, 0x10, 0x82, 0x6c, 0x0d, 0xad, 0xb7, 0xe4, 0xfa, 0x4e, 0xc0, 0x79, 0xba, 0x2e, 0x76, 0xda, 0xda, 0x43, 0x3f, 0x30, 0x77, 0xcb, 0x1e, 0xf7, 0x46, 0x13, 0xfc, 0x5d, 0xbf, 0x82, 0x58, 0xb6, 0xda, 0x7c, 0x73, 0xc8, 0x66, 0x37, 0x24, 0x57, 0xed, 0x50, 0x0f, 0x97, 0xf9, 0x90, 0x7e, 0x1f, 0xc2, 0x63, 0x53, 0xc7, 0x0b, 0xa3, 0xbd, 0x9c, 0x36, 0x15, 0x1d, 0x46, 0x86, 0x5d, 0x2c, 0x65, 0x98, 0x65, 0x62, 0x48, 0x5c, 0xf8, 0x42, 0x1f, 0xeb, 0xbe, 0x77, 0x7c, 0x73, 0xe6, 0xcd, 0x00, 0x26, 0xd6, 0x6d, 0x35, 0x12, 0x8b, 0x9f, 0x8f, 0x33, 0x26, 0x4a, 0xeb, 0x56, 0xbd, 0x3e, 0x4b, 0x8d, 0x1f, 0x52, 0x66, 0x41, 0x1e, 0xf3, 0xb2, 0x3b, 0x76, 0xb3, 0x6d, 0x4c, 0x9d, 0xf3, 0xc5, 0x12, 0xfd, 0x56, 0x0c, 0x2b, 0xe5, 0x2a, 0xc5, 0x23, 0xc1, 0x93, 0x77, 0xad, 0x2a, 0xdc, 0x0e, 0x8c, 0x30, 0x9c, 0xf5, 0xbb, 0xf7, 0x2d, 0x9e, 0xb8, 0x5d, 0x65, 0xa9, 0x48, 0x47, 0xd4, 0x97, 0xd8, 0xd1, 0x02, 0x42, 0x4f, 0xb8, 0x43, 0x81, 0x66, 0x6e, 0xcb, 0x1c, 0x35, 0xa3, 0x72, 0x5d, 0x7d, 0x9e, 0x92, 0x84, 0xfd, 0xeb, 0xb6, 0xb3, 0x62, 0xaa, 0x6a, 0x9c, 0x6f, 0xb3, 0x7a, 0xba, 0x87, 0x35, 0x7f, 0x57, 0x4c, 0x0e, 0x63, 0xb4, 0x49, 0x7d, 0x49, 0x8f, 0xfb, 0xb7, 0xd0, 0x69, 0x2d, 0x78, 0x4b, 0x4b, 0x18, 0xce, 0x9f, 0x91, 0x50, 0xc1, 0x46, 0xd3, 0xd1, 0x8c, 0x38, 0x2e, 0xda, 0x04, 0x93, 0x8c, 0x69, 0xd0, 0x77, 0x8f, 0x29, 0x02, 0xd5, 0x23, 0x5a, 0x56, 0x52, 0xb9, 0x7c, 0xef, 0x6d, 0x5f, 0x60, 0xda, 0x6b, 0xd7, 0xed, 0x4f, 0xf9, 0x7c, 0xd9, 0x4d, 0x49, 0x39, 0xca, 0xca, 0x3b, 0x6b, 0xaa, 0x3c, 0xfd, 0xac, 0x04, 0xcd, 0xa9, 0x55, 0x96, 0xf4, 0x67, 0xcb, 0xc6, 0xcb, 0xcd, 0x92, 0x64, 0x16, 0x77, 0x43, 0xea, 0xc1, };
14604 static const u8 ed25519_635_test_vectors_expected_sig[] = {
14605 	0x99, 0x45, 0xab, 0x73, 0xb5, 0x85, 0x62, 0xb3, 0x55, 0xda, 0xbc, 0x4e, 0x2b, 0x6b, 0xe7, 0xe0, 0x5f, 0x37, 0xf8, 0x95, 0x71, 0x44, 0x0c, 0xcc, 0x32, 0xc1, 0xa9, 0x47, 0x37, 0x09, 0x5b, 0x78, 0x66, 0x74, 0x7d, 0x21, 0x00, 0x70, 0x00, 0xa0, 0xf0, 0xe3, 0x51, 0x11, 0x4b, 0x88, 0xe0, 0x13, 0x8b, 0x55, 0xdf, 0x44, 0xfe, 0x72, 0xeb, 0xe9, 0x59, 0x14, 0x10, 0xe7, 0x07, 0xfa, 0x9d, 0x02, };
14606 static const ec_test_case ed25519_635_test_case = {
14607 	.name = "EDDSA25519-SHA512/wei25519 635",
14608 	.ec_str_p = &wei25519_str_params,
14609 	.priv_key = ed25519_635_test_vectors_priv_key,
14610 	.priv_key_len = sizeof(ed25519_635_test_vectors_priv_key),
14611 	.nn_random = NULL,
14612 	.hash_type = SHA512,
14613 	.msg = (const char *)ed25519_635_test_vectors_message,
14614 	.msglen = sizeof(ed25519_635_test_vectors_message),
14615 	.sig_type = EDDSA25519,
14616 	.exp_sig = ed25519_635_test_vectors_expected_sig,
14617 	.exp_siglen = sizeof(ed25519_635_test_vectors_expected_sig),
14618 	.adata = NULL,
14619 	.adata_len = 0
14620 };
14621 
14622 /************************************************/
14623 static const u8 ed25519_636_test_vectors_priv_key[] = {
14624 	0x70, 0xc6, 0x85, 0x9f, 0x08, 0xcf, 0x42, 0xb4, 0xbd, 0xa9, 0xeb, 0x62, 0x97, 0x9d, 0xff, 0xb7, 0xcb, 0x08, 0xeb, 0x3d, 0xab, 0xe9, 0x3f, 0xe9, 0x4b, 0x01, 0x38, 0x46, 0x17, 0xcf, 0x67, 0x30, };
14625 static const u8 ed25519_636_test_vectors_message[] = {
14626 	0xdd, 0x06, 0x09, 0xea, 0x15, 0x99, 0x21, 0x39, 0x5d, 0x11, 0xfb, 0x2d, 0xa8, 0xea, 0x4f, 0x74, 0x7d, 0x7f, 0x74, 0xb5, 0x80, 0x52, 0xe0, 0x1c, 0xad, 0x40, 0xa2, 0x71, 0xfa, 0x0b, 0xbe, 0xed, 0x91, 0x02, 0x0f, 0x4f, 0x0c, 0x08, 0x46, 0xc4, 0xf0, 0x77, 0x78, 0xa6, 0xaa, 0x76, 0x8e, 0xb5, 0x17, 0x12, 0x29, 0x4e, 0x9e, 0x1f, 0x32, 0xa6, 0x02, 0xb1, 0x52, 0x51, 0x4f, 0x5e, 0x6d, 0x39, 0xf9, 0xe0, 0x8f, 0x7a, 0x78, 0x12, 0xbd, 0x90, 0x0c, 0x10, 0xa9, 0x14, 0x69, 0xe4, 0x7e, 0x8a, 0x78, 0xe5, 0x4c, 0xd4, 0xbd, 0x7c, 0xfe, 0xde, 0xde, 0xc1, 0x71, 0xef, 0x37, 0x3f, 0x1c, 0x4f, 0x9b, 0xbc, 0x2c, 0x81, 0x40, 0x2f, 0xb1, 0x4e, 0xd0, 0xbf, 0xac, 0x8d, 0x04, 0x3f, 0x11, 0x7d, 0x61, 0x24, 0x52, 0x1a, 0xfa, 0xe0, 0x91, 0x6a, 0x51, 0x0d, 0x56, 0x8a, 0xcf, 0xa3, 0xaa, 0x33, 0x01, 0xbc, 0x97, 0x9a, 0xc2, 0x8d, 0x55, 0x1d, 0xbb, 0xea, 0x6c, 0xea, 0xc4, 0xc2, 0x12, 0xaa, 0x8c, 0x84, 0x92, 0xb3, 0x61, 0x3a, 0xe7, 0x39, 0x5d, 0xd4, 0x12, 0x5f, 0xc4, 0xc2, 0x5d, 0x5b, 0x4d, 0x99, 0x23, 0x08, 0x21, 0xd4, 0xb1, 0x7e, 0xc2, 0xee, 0x6b, 0xe7, 0xd6, 0x04, 0x19, 0x5a, 0x21, 0x54, 0x33, 0x3b, 0x97, 0x35, 0x26, 0x58, 0x0c, 0xa7, 0xef, 0x9e, 0x30, 0xc6, 0xc1, 0xdd, 0x42, 0xef, 0x2a, 0xfe, 0x42, 0xb1, 0x1b, 0x1a, 0xa4, 0x9b, 0x9c, 0xca, 0xba, 0xca, 0x17, 0x09, 0x1e, 0xeb, 0x38, 0x0e, 0xc5, 0xe3, 0x4a, 0xd1, 0xe3, 0x82, 0x7c, 0xc6, 0x0d, 0xac, 0xf1, 0x44, 0x28, 0x6c, 0x78, 0x92, 0x59, 0x0b, 0xd2, 0x67, 0x1a, 0x8d, 0xc5, 0xf3, 0xa7, 0x02, 0xc1, 0xde, 0x7c, 0xd3, 0xb4, 0x2c, 0x1b, 0x15, 0x0b, 0x09, 0xc3, 0xe5, 0x8e, 0xf6, 0x94, 0x3b, 0x45, 0xd8, 0x9d, 0x41, 0xdf, 0x36, 0x1f, 0x1d, 0x5c, 0x25, 0x56, 0x55, 0x91, 0xb6, 0xac, 0x8d, 0xea, 0xa7, 0x36, 0x76, 0x53, 0x1f, 0x6e, 0x5a, 0xbe, 0x58, 0x04, 0xb0, 0x09, 0x7f, 0x8d, 0x45, 0xea, 0x29, 0x39, 0x17, 0x73, 0x33, 0xca, 0xce, 0xf1, 0x2e, 0x4b, 0x71, 0xfe, 0x49, 0x36, 0xba, 0xfe, 0x00, 0x74, 0x7a, 0x89, 0x30, 0xbc, 0xea, 0x55, 0xb8, 0xfd, 0x84, 0xa0, 0x1f, 0x6d, 0xf8, 0x4e, 0x7a, 0xcb, 0x93, 0x1f, 0xc7, 0xc0, 0x1d, 0xdf, 0xd6, 0x3d, 0xee, 0xc3, 0xad, 0x3e, 0x69, 0xdf, 0xa2, 0xb7, 0x35, 0x50, 0x58, 0x3d, 0x57, 0x47, 0xee, 0xe9, 0x6c, 0x55, 0x36, 0x36, 0x87, 0x97, 0xe2, 0x47, 0xf2, 0x3f, 0x53, 0x7d, 0x79, 0x07, 0x9a, 0xb6, 0xda, 0x31, 0x41, 0x02, 0xc7, 0x44, 0x3d, 0x41, 0x96, 0x0e, 0x3a, 0x3d, 0x8c, 0x35, 0x9c, 0x4a, 0x4e, 0xc6, 0x26, 0xfc, 0xc4, 0x4e, 0x11, 0x0e, 0xa7, 0x44, 0xd4, 0x17, 0xaa, 0x85, 0x0d, 0xb8, 0xec, 0xdb, 0xfe, 0x34, 0x0a, 0x96, 0x2d, 0xb0, 0xd8, 0xc5, 0x7d, 0xc5, 0x17, 0xbe, 0x8b, 0x40, 0xd1, 0x4d, 0xe9, 0x7b, 0x1e, 0x9e, 0x04, 0x26, 0x44, 0x7f, 0xde, 0x0a, 0x04, 0xe5, 0x06, 0x79, 0xc5, 0x3b, 0xa1, 0xaa, 0x3c, 0xdc, 0x38, 0xc7, 0xed, 0xe6, 0xdb, 0x6c, 0x05, 0x4b, 0x1e, 0x9c, 0xe7, 0xde, 0xad, 0xaf, 0x93, 0xeb, 0xdd, 0x47, 0x07, 0x91, 0x53, 0x5f, 0x3e, 0xcf, 0xab, 0xf3, 0x41, 0x63, 0x55, 0xf7, 0xa1, 0x8a, 0x38, 0xaf, 0xe6, 0xbf, 0xe5, 0x07, 0xef, 0x08, 0xc4, 0x37, 0x3a, 0x4a, 0x69, 0xde, 0xe1, 0xfc, 0xb6, 0x5b, 0x16, 0x31, 0xa0, 0xde, 0x14, 0x88, 0x64, 0x9d, 0x0b, 0xb2, 0x67, 0x9a, 0x9a, 0x45, 0xf6, 0x78, 0x20, 0xb2, 0xa4, 0xa1, 0xe5, 0xa5, 0x48, 0x07, 0x2d, 0xa7, 0x03, 0x2d, 0x17, 0x25, 0x55, 0xe7, 0x88, 0xcc, 0x98, 0x60, 0xeb, 0xb3, 0xc0, 0xc3, 0x59, 0x49, 0x37, 0x51, 0xb0, 0xc2, 0xc9, 0x50, 0xa7, 0xfc, 0xf4, 0x80, 0x3c, 0x14, 0x7f, 0x93, 0x40, 0xfc, 0x93, 0xd8, 0x5f, 0x1e, 0xfa, 0x57, 0xb3, 0x90, 0x81, 0xb9, 0x2d, 0x93, 0x47, 0x3f, 0xd2, 0x35, 0x16, 0xc4, 0x95, 0x0e, 0xd4, 0xb2, 0x9a, 0x2e, 0xd3, 0xa0, 0x42, 0xae, 0x3d, 0x92, 0xa1, 0xe5, 0x2c, 0xb7, 0x09, 0x63, 0x6f, 0xc7, 0x27, 0x2f, 0xd7, 0x47, 0x20, 0x8b, 0xee, 0x2b, 0x16, 0xd1, 0x91, 0xe4, 0xc6, 0xde, 0xb2, 0x76, 0x72, 0xaa, 0x34, 0xe4, 0x39, 0x14, 0xcf, 0xf2, 0x05, 0x5c, 0xa4, 0xee, 0x8b, 0xa3, 0xe1, 0xdc, 0x58, 0xa6, 0x79, 0xc7, 0xf7, 0xde, 0xe2, 0xc1, 0xd5, 0x3e, 0x28, 0x75, 0x09, 0x70, 0xf5, 0x7d, 0x85, 0xea, 0xb1, 0xc2, 0x6b, 0x89, 0xbb, 0x73, 0xe0, 0xb1, };
14627 static const u8 ed25519_636_test_vectors_expected_sig[] = {
14628 	0x0f, 0x03, 0xa4, 0xf1, 0x5c, 0x33, 0x9b, 0x4f, 0x7b, 0x88, 0xb4, 0xe2, 0x1a, 0xd9, 0xe3, 0xd6, 0xbb, 0xf3, 0xef, 0xfb, 0x7b, 0x67, 0x8f, 0xfa, 0x50, 0x0d, 0x47, 0x38, 0x3b, 0x71, 0xa7, 0x45, 0x4f, 0x62, 0x90, 0x7b, 0x56, 0xf5, 0x9f, 0x9b, 0x9a, 0xf6, 0xd5, 0xb2, 0xa0, 0xfc, 0x1c, 0x73, 0x7a, 0x64, 0x10, 0x51, 0x95, 0x08, 0x98, 0x99, 0xf5, 0x7a, 0x2c, 0x9d, 0xba, 0x50, 0x9e, 0x0a, };
14629 static const ec_test_case ed25519_636_test_case = {
14630 	.name = "EDDSA25519-SHA512/wei25519 636",
14631 	.ec_str_p = &wei25519_str_params,
14632 	.priv_key = ed25519_636_test_vectors_priv_key,
14633 	.priv_key_len = sizeof(ed25519_636_test_vectors_priv_key),
14634 	.nn_random = NULL,
14635 	.hash_type = SHA512,
14636 	.msg = (const char *)ed25519_636_test_vectors_message,
14637 	.msglen = sizeof(ed25519_636_test_vectors_message),
14638 	.sig_type = EDDSA25519,
14639 	.exp_sig = ed25519_636_test_vectors_expected_sig,
14640 	.exp_siglen = sizeof(ed25519_636_test_vectors_expected_sig),
14641 	.adata = NULL,
14642 	.adata_len = 0
14643 };
14644 
14645 /************************************************/
14646 static const u8 ed25519_637_test_vectors_priv_key[] = {
14647 	0xc5, 0x96, 0x29, 0x61, 0x81, 0x5b, 0x57, 0xcd, 0x16, 0x24, 0x03, 0xce, 0x08, 0xe4, 0x10, 0x5d, 0xdb, 0x8a, 0xae, 0x2d, 0x3f, 0x53, 0x3f, 0xb4, 0x9c, 0xc2, 0x36, 0xb5, 0xff, 0x50, 0x4d, 0x6e, };
14648 static const u8 ed25519_637_test_vectors_message[] = {
14649 	0x4a, 0xe4, 0x14, 0x8d, 0x79, 0xca, 0x94, 0x25, 0x59, 0x2a, 0xa2, 0x40, 0xbd, 0x15, 0x34, 0x24, 0xa3, 0xbf, 0x4a, 0xe2, 0x73, 0x95, 0x87, 0x2c, 0xe5, 0x72, 0x8a, 0xc7, 0x61, 0x35, 0x96, 0xa7, 0x7d, 0x5c, 0xe8, 0x56, 0x5d, 0x8d, 0x6e, 0x1b, 0x59, 0x35, 0xb3, 0x90, 0x6c, 0xaf, 0xe1, 0xff, 0x88, 0x8e, 0xbc, 0x98, 0x15, 0xe0, 0x4a, 0x62, 0x4d, 0xfc, 0x4c, 0x69, 0x07, 0xb8, 0x5f, 0x6f, 0x1a, 0x0d, 0xbd, 0xdf, 0xf6, 0x2e, 0x91, 0x51, 0x22, 0x0d, 0x47, 0x44, 0x62, 0xcb, 0x9f, 0x13, 0xd8, 0x9d, 0x3a, 0x93, 0xa0, 0x0b, 0xa2, 0xb6, 0x0f, 0x7e, 0x7c, 0xa6, 0x3d, 0xa1, 0x7a, 0x63, 0x79, 0xd6, 0x73, 0x55, 0x1e, 0x79, 0x0b, 0x59, 0x11, 0x72, 0x7c, 0x90, 0x6d, 0xc9, 0x4f, 0x86, 0xd8, 0x27, 0x75, 0x46, 0xc1, 0x56, 0x4a, 0x45, 0x57, 0x3a, 0x77, 0x43, 0xbb, 0x8a, 0x13, 0x8c, 0xde, 0x87, 0xb3, 0xb2, 0xf2, 0x8e, 0x5e, 0x24, 0x59, 0x40, 0xa5, 0x1e, 0x7c, 0x45, 0x8c, 0xf8, 0xc5, 0xf0, 0xa7, 0x02, 0x75, 0x96, 0x25, 0x53, 0xe0, 0xd2, 0x39, 0x0d, 0x17, 0x1d, 0xb4, 0x4c, 0x2f, 0x7a, 0x5c, 0x9e, 0x9f, 0x93, 0xb9, 0x0f, 0x7a, 0x5f, 0x54, 0xf1, 0x91, 0xb0, 0xd8, 0x75, 0xba, 0xd7, 0xe0, 0xbe, 0xb9, 0x80, 0xc2, 0xa3, 0x36, 0x5c, 0xd7, 0xb9, 0x20, 0x87, 0x24, 0xf4, 0x65, 0x44, 0x18, 0x11, 0x7e, 0x16, 0xef, 0x71, 0x34, 0xe3, 0xe2, 0x79, 0x4b, 0x6f, 0x9e, 0x80, 0xec, 0xab, 0xec, 0xa3, 0x25, 0x4e, 0x70, 0x4c, 0x21, 0xb7, 0xad, 0x30, 0xc5, 0xde, 0xe0, 0x17, 0xea, 0x25, 0x33, 0xfc, 0xd9, 0x42, 0x51, 0xe5, 0x5a, 0xe7, 0x5a, 0x8c, 0xc6, 0xdb, 0x66, 0x74, 0xb3, 0x9c, 0x88, 0xca, 0x42, 0x00, 0x60, 0x43, 0xd6, 0xbd, 0x9b, 0x00, 0xec, 0xf6, 0x4c, 0xea, 0xfe, 0xeb, 0x40, 0x2b, 0x1f, 0x22, 0xfd, 0x89, 0x1f, 0x2d, 0x11, 0xc5, 0x15, 0xc1, 0xab, 0xa6, 0xa2, 0xd4, 0xc0, 0xbd, 0x21, 0x81, 0xa4, 0x8e, 0x43, 0xfd, 0x1c, 0x0a, 0xf9, 0x1f, 0x9b, 0x7b, 0x7d, 0x37, 0xf3, 0xdc, 0xd9, 0xe4, 0xc0, 0xa7, 0x59, 0x74, 0x84, 0x67, 0xd3, 0x48, 0xa8, 0xb1, 0x16, 0xdf, 0x6a, 0x4e, 0xac, 0xf1, 0x78, 0xae, 0xcc, 0xcd, 0x30, 0x66, 0xe9, 0x2d, 0xca, 0x45, 0xda, 0x7a, 0x3e, 0x31, 0x9f, 0x37, 0x71, 0xeb, 0x34, 0x90, 0x02, 0x21, 0x93, 0xc5, 0xb6, 0x52, 0xf0, 0x45, 0x68, 0x7e, 0x17, 0x05, 0xf2, 0xe5, 0x69, 0x1c, 0x13, 0x4b, 0xe4, 0x00, 0x63, 0x53, 0xd7, 0xec, 0xd0, 0xe9, 0x18, 0xd5, 0xde, 0x0f, 0x3b, 0x87, 0x80, 0x9f, 0xca, 0x4a, 0xcf, 0xab, 0x94, 0xe1, 0x14, 0x8f, 0xf7, 0xcf, 0x07, 0xf7, 0xcf, 0xd0, 0xc7, 0x45, 0xdd, 0x2b, 0xe0, 0x1a, 0x24, 0xa5, 0xe0, 0x69, 0x28, 0x06, 0x98, 0xbc, 0x3f, 0x54, 0x00, 0xa6, 0xdc, 0xd0, 0x8e, 0x44, 0x59, 0x5c, 0x03, 0x88, 0xe4, 0x48, 0x33, 0x76, 0x8f, 0xc4, 0x91, 0x04, 0xee, 0x11, 0x5b, 0xdc, 0xb0, 0x2b, 0xfb, 0xda, 0x17, 0x9d, 0x16, 0x4c, 0xe9, 0x69, 0x93, 0x66, 0x29, 0xf2, 0x33, 0x56, 0x01, 0xb5, 0x6f, 0xe8, 0xf7, 0x85, 0xcc, 0xa3, 0x80, 0x5f, 0x04, 0x03, 0x87, 0x2c, 0x62, 0xf7, 0x3c, 0x3c, 0xe8, 0x05, 0x63, 0xd0, 0x70, 0xe9, 0x76, 0xd8, 0xec, 0xc5, 0x11, 0x24, 0xe2, 0xca, 0xce, 0x7e, 0xe1, 0x86, 0x99, 0x04, 0x7c, 0xb0, 0xf8, 0xfb, 0x8d, 0x9c, 0x59, 0xb8, 0xa6, 0x0d, 0x12, 0xc0, 0x8a, 0x09, 0xfc, 0xe5, 0x8f, 0xd9, 0x2c, 0xd3, 0x6d, 0xb6, 0xa8, 0xe8, 0x9d, 0x11, 0x8c, 0xf8, 0x8a, 0x92, 0xdc, 0x8a, 0x26, 0x00, 0xbd, 0x95, 0xf5, 0xa8, 0xe8, 0x5d, 0xb5, 0xcd, 0xbb, 0x24, 0x9c, 0xa8, 0x12, 0xca, 0x20, 0x9c, 0x76, 0x18, 0x05, 0x1c, 0x45, 0x64, 0xa3, 0xa0, 0xe1, 0x92, 0xb7, 0xe4, 0x59, 0x92, 0x45, 0x6c, 0x87, 0xd1, 0x74, 0x12, 0xc1, 0x1a, 0xde, 0xad, 0x52, 0x6a, 0xb8, 0xdb, 0x21, 0x45, 0x2f, 0x74, 0x71, 0xd1, 0x7f, 0x2e, 0xbc, 0x90, 0x01, 0x54, 0x50, 0xed, 0xf4, 0xf0, 0xa4, 0x4f, 0xb2, 0xf4, 0x90, 0x5f, 0x74, 0xd7, 0x02, 0x75, 0xcc, 0xd8, 0x9b, 0x93, 0xa6, 0x50, 0x47, 0x3c, 0x02, 0xa7, 0xda, 0x0c, 0xbc, 0x67, 0x91, 0x5c, 0xeb, 0x7a, 0x1e, 0xa5, 0x9f, 0xa8, 0x88, 0x44, 0x72, 0xdc, 0x91, 0x7e, 0xe9, 0xd2, 0x46, 0x33, 0x9c, 0x59, 0x26, 0x84, 0x3e, 0xcf, 0x53, 0xfa, 0xfd, 0xc5, 0x6a, 0x69, 0x56, 0x01, 0xa2, 0x76, 0xc2, 0x3a, 0x84, 0x3e, 0x4d, 0x30, 0xf8, 0x9c, 0x97, 0xc9, 0xee, 0xe6, 0xdf, 0xc7, };
14650 static const u8 ed25519_637_test_vectors_expected_sig[] = {
14651 	0x81, 0x01, 0xba, 0xef, 0x00, 0x4e, 0xb6, 0xf5, 0xad, 0x4d, 0xe0, 0x97, 0x9f, 0xf3, 0x6d, 0x34, 0x39, 0xb8, 0x21, 0x2b, 0xdc, 0x92, 0x89, 0x42, 0xe4, 0x31, 0x91, 0x5b, 0x3f, 0xd1, 0x8b, 0xc2, 0xad, 0x67, 0xb2, 0x6f, 0x18, 0x94, 0x1d, 0xcb, 0x16, 0xd2, 0xc2, 0x91, 0x91, 0x42, 0x1e, 0x77, 0x9f, 0xed, 0x62, 0x2f, 0xd9, 0xf5, 0x82, 0x64, 0x4e, 0xaa, 0xdb, 0x3f, 0xe5, 0xc0, 0x98, 0x03, };
14652 static const ec_test_case ed25519_637_test_case = {
14653 	.name = "EDDSA25519-SHA512/wei25519 637",
14654 	.ec_str_p = &wei25519_str_params,
14655 	.priv_key = ed25519_637_test_vectors_priv_key,
14656 	.priv_key_len = sizeof(ed25519_637_test_vectors_priv_key),
14657 	.nn_random = NULL,
14658 	.hash_type = SHA512,
14659 	.msg = (const char *)ed25519_637_test_vectors_message,
14660 	.msglen = sizeof(ed25519_637_test_vectors_message),
14661 	.sig_type = EDDSA25519,
14662 	.exp_sig = ed25519_637_test_vectors_expected_sig,
14663 	.exp_siglen = sizeof(ed25519_637_test_vectors_expected_sig),
14664 	.adata = NULL,
14665 	.adata_len = 0
14666 };
14667 
14668 /************************************************/
14669 static const u8 ed25519_638_test_vectors_priv_key[] = {
14670 	0xde, 0xe6, 0x86, 0x6c, 0x78, 0x74, 0xc1, 0x27, 0x02, 0x9e, 0x96, 0xe0, 0x25, 0xbf, 0xfd, 0x35, 0xfc, 0xfd, 0xf4, 0xdc, 0x36, 0x96, 0x6c, 0x15, 0xee, 0x62, 0x93, 0x36, 0x80, 0x13, 0xd3, 0x79, };
14671 static const u8 ed25519_638_test_vectors_message[] = {
14672 	0xf1, 0xaa, 0x19, 0x77, 0xf5, 0x31, 0x1b, 0x53, 0x8b, 0x94, 0x0a, 0xe4, 0x42, 0xa3, 0xab, 0xc8, 0x9a, 0xac, 0xcd, 0xcd, 0x0a, 0x79, 0x38, 0x0a, 0x24, 0x25, 0x8d, 0x4a, 0x9f, 0x1c, 0xe6, 0x38, 0xfc, 0x2f, 0x5b, 0xa2, 0xe5, 0x3f, 0x8e, 0x1f, 0xa6, 0x17, 0x6f, 0x17, 0x8d, 0x90, 0x24, 0xa7, 0x78, 0x94, 0xc2, 0x8c, 0xad, 0x42, 0xd6, 0x29, 0xc7, 0x93, 0xd6, 0x8a, 0x02, 0xbe, 0x94, 0x11, 0xb5, 0x27, 0xac, 0xad, 0xae, 0x7e, 0x5c, 0x38, 0x51, 0xba, 0xbb, 0x45, 0xb5, 0xfe, 0xce, 0x32, 0x9e, 0x29, 0x03, 0x4c, 0xd4, 0x25, 0x71, 0x08, 0x37, 0x27, 0xf3, 0x5a, 0xec, 0xad, 0x7c, 0x9b, 0xe5, 0x95, 0x4e, 0xc6, 0x4e, 0x8f, 0x6e, 0xca, 0xb7, 0xcc, 0x05, 0x90, 0xe5, 0x41, 0x56, 0xa4, 0xe1, 0xa4, 0x53, 0x03, 0x84, 0x9f, 0x78, 0x97, 0xe7, 0x2c, 0xf2, 0xfb, 0xcd, 0x84, 0xf5, 0x6c, 0x72, 0xf9, 0x41, 0xdb, 0xb0, 0xb0, 0x9a, 0x32, 0xe6, 0x38, 0x6f, 0xbe, 0x18, 0xa4, 0x3b, 0xb9, 0xbd, 0x8b, 0x79, 0x3e, 0x4b, 0x9e, 0xdd, 0x53, 0x21, 0x03, 0xea, 0xb5, 0x4d, 0x62, 0x71, 0x17, 0xd2, 0x81, 0x39, 0xb6, 0x4e, 0x60, 0xfb, 0x0b, 0x81, 0xd0, 0x90, 0x01, 0xbb, 0x24, 0x04, 0xd9, 0x25, 0xe2, 0x65, 0xba, 0xbd, 0xc6, 0x9f, 0x96, 0xb1, 0x35, 0xe9, 0xe6, 0xab, 0x7f, 0xeb, 0xb1, 0xed, 0x30, 0x75, 0xd6, 0xaa, 0x2a, 0xbd, 0x2b, 0xbf, 0x9b, 0x65, 0xfa, 0x9b, 0x3b, 0x71, 0x91, 0xef, 0x37, 0xb6, 0x33, 0x60, 0x59, 0x10, 0xee, 0x88, 0xf6, 0x6e, 0xad, 0xa7, 0x9f, 0x00, 0xf5, 0x36, 0xd3, 0x80, 0xb8, 0x2f, 0x2f, 0x4b, 0x59, 0x85, 0x11, 0x2d, 0xe0, 0x04, 0xa5, 0x66, 0x03, 0xf4, 0x43, 0x6d, 0x8f, 0xf3, 0x00, 0xf4, 0x2b, 0xf5, 0xac, 0xdc, 0x7a, 0x4b, 0xf1, 0xea, 0x9d, 0x41, 0x96, 0xc4, 0x80, 0x49, 0x5b, 0xac, 0xb0, 0x06, 0x76, 0x30, 0xfc, 0xc0, 0x00, 0xb4, 0xf2, 0x79, 0xdd, 0x3f, 0x30, 0xf3, 0x53, 0x27, 0x60, 0x92, 0xd1, 0x52, 0xc3, 0xf4, 0x3e, 0xfd, 0xc0, 0x41, 0xde, 0xaa, 0x0b, 0xc5, 0xaa, 0xab, 0xa7, 0xf8, 0xbb, 0xd8, 0x5e, 0x69, 0xc1, 0x37, 0x42, 0xd6, 0x78, 0xdb, 0xb6, 0x53, 0x60, 0xaa, 0xf7, 0xb5, 0x48, 0xa0, 0x44, 0xc0, 0xec, 0x60, 0xa5, 0x7a, 0xf6, 0x50, 0xbc, 0x31, 0x97, 0x3f, 0x83, 0x2f, 0x96, 0x12, 0x65, 0xbc, 0x23, 0x18, 0xf8, 0x07, 0x75, 0xaf, 0xd5, 0x1f, 0x55, 0x19, 0x4c, 0x42, 0x42, 0x3f, 0x7b, 0xf4, 0xe0, 0x05, 0x2f, 0x98, 0xcb, 0x20, 0x69, 0x13, 0xff, 0xea, 0x48, 0x86, 0xec, 0xd2, 0x7a, 0x41, 0x79, 0xb1, 0x37, 0x73, 0xf9, 0x47, 0x50, 0x2e, 0x18, 0x1b, 0xf1, 0xa1, 0xf2, 0xc6, 0x2c, 0x6f, 0x08, 0xc2, 0x03, 0x59, 0xf0, 0x6d, 0xf2, 0xb1, 0x81, 0x27, 0x04, 0x3b, 0x10, 0x70, 0xd0, 0x19, 0x4e, 0xf5, 0xe5, 0xbf, 0xd3, 0x7d, 0x22, 0x79, 0x84, 0xcf, 0xb1, 0x09, 0x89, 0xf2, 0x1c, 0x71, 0xad, 0x0f, 0xe3, 0xb8, 0x12, 0x27, 0xd3, 0xa7, 0x17, 0x89, 0x45, 0x5e, 0xda, 0x38, 0x3c, 0x22, 0xf4, 0xd2, 0xfc, 0xc7, 0x25, 0x79, 0xf4, 0x65, 0xe0, 0x66, 0xf3, 0xd3, 0x8b, 0xef, 0xc0, 0x24, 0xef, 0xef, 0x6c, 0x2e, 0x32, 0x96, 0x49, 0xce, 0x43, 0x4d, 0x62, 0x73, 0x67, 0xa9, 0x00, 0xd0, 0x7f, 0xe6, 0x23, 0x42, 0x35, 0xc8, 0x46, 0x56, 0xea, 0xc5, 0xdd, 0x0d, 0x78, 0x8c, 0xf4, 0xcb, 0x31, 0x87, 0x18, 0x24, 0xd6, 0x6a, 0xe4, 0xbc, 0x89, 0xed, 0xeb, 0xa1, 0xb3, 0x67, 0x01, 0x29, 0x84, 0x53, 0xe8, 0xda, 0x1e, 0x69, 0xcf, 0xb8, 0x68, 0x09, 0x5c, 0x3b, 0xe6, 0xed, 0x21, 0x82, 0xda, 0x1c, 0xff, 0x49, 0x05, 0xaf, 0xd2, 0x07, 0x31, 0xac, 0x1e, 0xd9, 0x84, 0x16, 0x47, 0x37, 0x90, 0x3c, 0x7d, 0x8b, 0xb0, 0xad, 0x16, 0xae, 0xcf, 0x2f, 0xae, 0x33, 0x74, 0x04, 0xfe, 0x35, 0x66, 0x45, 0x15, 0xd9, 0x3b, 0x70, 0x1e, 0x2f, 0x87, 0x86, 0x64, 0x45, 0x4c, 0x0d, 0xec, 0xd1, 0xc6, 0x55, 0x8a, 0xda, 0xce, 0x3c, 0xdb, 0x22, 0x75, 0x07, 0xa5, 0x16, 0x06, 0xf0, 0xa5, 0x4d, 0xf8, 0xdf, 0xaa, 0x42, 0x02, 0x05, 0xdd, 0x57, 0xc6, 0x52, 0x42, 0xff, 0x24, 0xa4, 0x05, 0xef, 0x85, 0xc9, 0x2d, 0x60, 0x28, 0x86, 0x93, 0x2b, 0x35, 0xfa, 0xbe, 0x9c, 0x3b, 0xce, 0xbf, 0xc6, 0x23, 0x56, 0x39, 0xe8, 0x73, 0xfc, 0x2d, 0xd0, 0x84, 0xc5, 0x2c, 0xd6, 0xa7, 0x41, 0x3b, 0x83, 0x1d, 0x1c, 0xc9, 0x99, 0x31, 0x37, 0x3a, 0xab, 0xd8, 0x47, 0x62, 0x0e, 0xb6, 0x9b, 0xb0, 0xfa, };
14673 static const u8 ed25519_638_test_vectors_expected_sig[] = {
14674 	0xb7, 0x8e, 0xbd, 0x6d, 0x65, 0xb1, 0x75, 0xd4, 0xbb, 0xd3, 0xd9, 0xa2, 0x08, 0x2a, 0x0e, 0xfe, 0x6e, 0x99, 0x1c, 0xb2, 0xe4, 0x03, 0x52, 0x1e, 0xec, 0xe0, 0x0f, 0x41, 0x8f, 0x2e, 0x95, 0x6b, 0x66, 0x90, 0x78, 0x80, 0x65, 0x8b, 0x9e, 0x8e, 0x47, 0x69, 0x96, 0x53, 0xd1, 0x59, 0x13, 0x23, 0x80, 0xd9, 0xce, 0x11, 0x09, 0xaf, 0x9c, 0x27, 0x57, 0xda, 0xf4, 0xcd, 0xf1, 0x8c, 0x9c, 0x0a, };
14675 static const ec_test_case ed25519_638_test_case = {
14676 	.name = "EDDSA25519-SHA512/wei25519 638",
14677 	.ec_str_p = &wei25519_str_params,
14678 	.priv_key = ed25519_638_test_vectors_priv_key,
14679 	.priv_key_len = sizeof(ed25519_638_test_vectors_priv_key),
14680 	.nn_random = NULL,
14681 	.hash_type = SHA512,
14682 	.msg = (const char *)ed25519_638_test_vectors_message,
14683 	.msglen = sizeof(ed25519_638_test_vectors_message),
14684 	.sig_type = EDDSA25519,
14685 	.exp_sig = ed25519_638_test_vectors_expected_sig,
14686 	.exp_siglen = sizeof(ed25519_638_test_vectors_expected_sig),
14687 	.adata = NULL,
14688 	.adata_len = 0
14689 };
14690 
14691 /************************************************/
14692 static const u8 ed25519_639_test_vectors_priv_key[] = {
14693 	0x52, 0x36, 0x23, 0x55, 0x59, 0x95, 0xba, 0xaf, 0x2a, 0x27, 0xad, 0xcb, 0x1e, 0xba, 0xfa, 0xa8, 0x02, 0xd2, 0x3e, 0xf7, 0xab, 0xfa, 0x97, 0x75, 0xf2, 0xc9, 0xbf, 0xa0, 0x7d, 0x64, 0xe0, 0xac, };
14694 static const u8 ed25519_639_test_vectors_message[] = {
14695 	0x05, 0x53, 0xe6, 0x9e, 0xf2, 0x11, 0x65, 0x2d, 0x62, 0xbf, 0x28, 0x1b, 0xfb, 0xdd, 0x37, 0xbe, 0x22, 0x76, 0x9d, 0x81, 0x97, 0x46, 0x36, 0x1c, 0x7d, 0x65, 0xdd, 0xd0, 0xfa, 0xd6, 0x77, 0xcc, 0x04, 0x38, 0xb3, 0x01, 0xd1, 0x51, 0x45, 0x78, 0xe0, 0xda, 0x58, 0xe5, 0x5f, 0x72, 0x9f, 0xa8, 0xe6, 0x6d, 0xde, 0xb7, 0xf9, 0x73, 0xa8, 0x18, 0xd2, 0x4e, 0xd8, 0xfe, 0x02, 0x7b, 0x84, 0x91, 0x17, 0x9d, 0x07, 0x77, 0x3f, 0xb5, 0xd2, 0xbb, 0x96, 0xaa, 0x85, 0xd6, 0xb3, 0x75, 0x04, 0x54, 0xe5, 0x0d, 0xe9, 0x1f, 0x9b, 0x88, 0xae, 0xe8, 0xaa, 0x68, 0xe6, 0xbb, 0x53, 0xed, 0xc6, 0x66, 0x77, 0xb4, 0x1e, 0x60, 0x1a, 0x46, 0xab, 0x4b, 0xb1, 0xe6, 0x56, 0xe7, 0xfa, 0x5f, 0x01, 0x79, 0x93, 0x36, 0x80, 0xa6, 0xec, 0x95, 0x04, 0x27, 0x5e, 0x7a, 0xdf, 0x7a, 0x32, 0x48, 0xe6, 0x3a, 0x0f, 0xc9, 0xc1, 0xea, 0x5a, 0xe9, 0x6c, 0xd0, 0xc6, 0x5a, 0x89, 0xa7, 0x7c, 0xec, 0x2b, 0x1f, 0xd8, 0xf4, 0x53, 0x7e, 0x82, 0xc1, 0xc4, 0x88, 0xa6, 0x9a, 0x0e, 0xf6, 0x4f, 0x58, 0x73, 0x4d, 0x9e, 0x73, 0x47, 0x8e, 0x1d, 0x1f, 0x12, 0x31, 0x14, 0xef, 0x66, 0x08, 0x5e, 0x0b, 0xa3, 0x19, 0xcb, 0x81, 0x0b, 0x66, 0xaf, 0x96, 0xd1, 0x30, 0x8b, 0x1a, 0x2b, 0xd9, 0x2b, 0xa2, 0xc2, 0x65, 0xaa, 0x30, 0x9e, 0xcd, 0x55, 0x57, 0xd4, 0x02, 0xc3, 0x80, 0x2c, 0xae, 0x8d, 0x7e, 0x95, 0x00, 0x7f, 0xe6, 0x10, 0xc2, 0xaa, 0x75, 0xfc, 0x66, 0x19, 0x6c, 0x3f, 0xad, 0xfe, 0x99, 0x7d, 0x6d, 0x59, 0x98, 0xe1, 0x8d, 0x26, 0x0e, 0x9d, 0xa3, 0x1d, 0xa9, 0x21, 0x8c, 0xba, 0xd1, 0x03, 0xcb, 0xfc, 0x2c, 0x75, 0x47, 0x76, 0x5d, 0x67, 0xe8, 0x1f, 0x24, 0xac, 0x83, 0x02, 0x2e, 0xf5, 0x1c, 0x6c, 0xc5, 0x08, 0x64, 0x36, 0x6a, 0x35, 0xf6, 0xb9, 0xb9, 0xaf, 0x94, 0xe8, 0x4c, 0xaa, 0x9f, 0xd3, 0xd7, 0x67, 0xc8, 0x31, 0xf0, 0x96, 0x7a, 0x61, 0x46, 0x2f, 0xbc, 0xfc, 0xc8, 0x03, 0xf1, 0x2e, 0x37, 0x39, 0x03, 0x9a, 0xcd, 0x5d, 0xbe, 0x93, 0x66, 0xf0, 0x5a, 0x33, 0xdb, 0xea, 0xf3, 0x60, 0xe2, 0xdd, 0xcb, 0xe5, 0xc4, 0x43, 0xf8, 0x0e, 0xf2, 0xad, 0x62, 0xe0, 0x3c, 0x1d, 0x5b, 0x70, 0xcd, 0xea, 0xb4, 0xa7, 0xdd, 0x41, 0x55, 0x30, 0x64, 0xc8, 0xd1, 0x52, 0x70, 0x9d, 0xef, 0xf8, 0x20, 0x76, 0xb9, 0x07, 0x11, 0x92, 0x37, 0x6f, 0x51, 0xd4, 0xc2, 0xc7, 0x1a, 0x84, 0xe8, 0x9f, 0x2d, 0x94, 0x01, 0x32, 0x0c, 0x2e, 0x45, 0x9b, 0x3e, 0x24, 0x3c, 0xca, 0x7c, 0x26, 0xfd, 0x09, 0x8c, 0x26, 0x4a, 0xc8, 0x8e, 0xf6, 0x38, 0x92, 0x1d, 0x98, 0x0b, 0x0a, 0xe9, 0xe5, 0x12, 0xd3, 0x72, 0x03, 0x7d, 0x81, 0xad, 0xc4, 0x81, 0x26, 0xd7, 0xc9, 0xe4, 0xb5, 0xaf, 0xa5, 0x7e, 0xc2, 0x65, 0xd4, 0x01, 0xb9, 0x65, 0x3e, 0x92, 0x8a, 0xfb, 0x7d, 0xff, 0x9b, 0x48, 0xe2, 0x95, 0xe4, 0x70, 0xd6, 0xb5, 0x2e, 0x88, 0xb3, 0x9d, 0x0a, 0x40, 0xcb, 0x8e, 0xba, 0x24, 0x9f, 0x8b, 0x13, 0xd8, 0x11, 0x13, 0xdb, 0x1d, 0x3e, 0x01, 0xef, 0x75, 0xc7, 0x22, 0xf2, 0x69, 0x48, 0x8e, 0x96, 0x3c, 0xc8, 0x18, 0x27, 0x04, 0xf8, 0xca, 0x01, 0x8e, 0x73, 0xdc, 0x07, 0x14, 0xe9, 0xa9, 0xfc, 0x79, 0xbc, 0x43, 0x63, 0xc2, 0x8c, 0xb3, 0x98, 0x43, 0x74, 0xf7, 0x3b, 0x2a, 0xa8, 0x78, 0x6e, 0x74, 0xe0, 0x15, 0x95, 0x07, 0xa2, 0x98, 0x83, 0xfe, 0x0e, 0xd1, 0xc6, 0x00, 0xf5, 0x25, 0x88, 0x5f, 0x2f, 0x10, 0xea, 0x00, 0x6c, 0x39, 0xe5, 0x9b, 0x92, 0x5b, 0x76, 0x5b, 0x1e, 0xde, 0x53, 0x42, 0x57, 0xa1, 0xf4, 0x0f, 0x28, 0x46, 0x58, 0x4f, 0x06, 0x97, 0x46, 0xb5, 0x2f, 0x56, 0x00, 0x43, 0x0a, 0x28, 0x63, 0xd7, 0x93, 0x60, 0x95, 0xfb, 0xc2, 0x2a, 0x6a, 0xda, 0x67, 0x4d, 0x41, 0xb3, 0x74, 0xe2, 0xb8, 0xb9, 0xa1, 0x9f, 0xa7, 0x12, 0xb5, 0x94, 0x45, 0x33, 0xbb, 0x6d, 0x6e, 0xc4, 0x3b, 0x89, 0xd4, 0x97, 0x1b, 0x70, 0x20, 0x5a, 0x6a, 0xcd, 0x72, 0xa8, 0x99, 0xda, 0x12, 0x61, 0x82, 0x04, 0xdb, 0x0c, 0x3e, 0x82, 0x67, 0xb8, 0x45, 0x79, 0x16, 0x93, 0xe0, 0xae, 0x6a, 0x35, 0xf1, 0x4d, 0xa1, 0xf8, 0xf4, 0xdd, 0x17, 0x4b, 0xce, 0x03, 0x18, 0xfb, 0x5a, 0x00, 0xf6, 0x72, 0xed, 0xe4, 0x23, 0x04, 0xcf, 0x04, 0xa6, 0x27, 0x60, 0x57, 0x75, 0x90, 0xf2, 0x7e, 0x2d, 0xfa, 0x6e, 0x5e, 0x27, 0x95, 0xd6, 0x60, 0x53, 0xb3, 0x0a, 0xf7, 0xf1, 0xbf, };
14696 static const u8 ed25519_639_test_vectors_expected_sig[] = {
14697 	0xb1, 0x87, 0x17, 0x29, 0xfe, 0xc8, 0x3a, 0xea, 0x0a, 0xaa, 0x47, 0x2b, 0x70, 0x0a, 0xcd, 0x09, 0x48, 0x13, 0xfb, 0x7d, 0x57, 0xb9, 0x09, 0xe0, 0xea, 0xaf, 0x21, 0xee, 0x93, 0x18, 0x47, 0xad, 0xde, 0xdd, 0x2b, 0xe8, 0x53, 0x3d, 0x0c, 0x30, 0x5c, 0xb9, 0xcf, 0xe5, 0x08, 0x0e, 0x76, 0xc2, 0x80, 0x8b, 0x6e, 0x51, 0xc9, 0x82, 0x62, 0x90, 0xdd, 0xb7, 0xb9, 0x4b, 0x6f, 0x7d, 0x58, 0x0b, };
14698 static const ec_test_case ed25519_639_test_case = {
14699 	.name = "EDDSA25519-SHA512/wei25519 639",
14700 	.ec_str_p = &wei25519_str_params,
14701 	.priv_key = ed25519_639_test_vectors_priv_key,
14702 	.priv_key_len = sizeof(ed25519_639_test_vectors_priv_key),
14703 	.nn_random = NULL,
14704 	.hash_type = SHA512,
14705 	.msg = (const char *)ed25519_639_test_vectors_message,
14706 	.msglen = sizeof(ed25519_639_test_vectors_message),
14707 	.sig_type = EDDSA25519,
14708 	.exp_sig = ed25519_639_test_vectors_expected_sig,
14709 	.exp_siglen = sizeof(ed25519_639_test_vectors_expected_sig),
14710 	.adata = NULL,
14711 	.adata_len = 0
14712 };
14713 
14714 /************************************************/
14715 static const u8 ed25519_640_test_vectors_priv_key[] = {
14716 	0x57, 0x5f, 0x8f, 0xb6, 0xc7, 0x46, 0x5e, 0x92, 0xc2, 0x50, 0xca, 0xee, 0xc1, 0x78, 0x62, 0x24, 0xbc, 0x3e, 0xed, 0x72, 0x9e, 0x46, 0x39, 0x53, 0xa3, 0x94, 0xc9, 0x84, 0x9c, 0xba, 0x90, 0x8f, };
14717 static const u8 ed25519_640_test_vectors_message[] = {
14718 	0x2c, 0xc3, 0x72, 0xe2, 0x5e, 0x53, 0xa1, 0x38, 0x79, 0x30, 0x64, 0x61, 0x0e, 0x7e, 0xf2, 0x5d, 0x9d, 0x74, 0x22, 0xe1, 0x8e, 0x24, 0x96, 0x75, 0xa7, 0x2e, 0x79, 0x16, 0x7f, 0x43, 0xba, 0xf4, 0x52, 0xcb, 0xac, 0xb5, 0x01, 0x82, 0xfa, 0xf8, 0x07, 0x98, 0xcc, 0x38, 0x59, 0x7a, 0x44, 0xb3, 0x07, 0xa5, 0x36, 0x36, 0x0b, 0x0b, 0xc1, 0x03, 0x0f, 0x83, 0x97, 0xb9, 0x4c, 0xbf, 0x14, 0x73, 0x53, 0xdd, 0x2d, 0x67, 0x1c, 0xb8, 0xca, 0xb2, 0x19, 0xa2, 0xd7, 0xb9, 0xeb, 0x82, 0x8e, 0x96, 0x35, 0xd2, 0xea, 0xb6, 0xeb, 0x08, 0x18, 0x2c, 0xb0, 0x35, 0x57, 0x78, 0x3f, 0xd2, 0x82, 0xaa, 0xf7, 0xb4, 0x71, 0x74, 0x7c, 0x84, 0xac, 0xf7, 0x2d, 0xeb, 0xe4, 0x51, 0x45, 0x24, 0xf8, 0x44, 0x7b, 0xaf, 0xcc, 0xcc, 0xec, 0x0a, 0x84, 0x0f, 0xec, 0xa9, 0x75, 0x5f, 0xf9, 0xad, 0xb6, 0x03, 0x01, 0xc2, 0xf2, 0x5d, 0x4e, 0x3b, 0xa6, 0x21, 0xdf, 0x5a, 0xd7, 0x21, 0x00, 0xc4, 0x5d, 0x7a, 0x4b, 0x91, 0x55, 0x9c, 0x72, 0x5a, 0xb5, 0x6b, 0xb2, 0x98, 0x30, 0xe3, 0x5f, 0x5a, 0x6f, 0xaf, 0x87, 0xdb, 0x23, 0x00, 0x1f, 0x11, 0xff, 0xba, 0x9c, 0x0c, 0x15, 0x44, 0x03, 0x02, 0x06, 0x58, 0x27, 0xa7, 0xd7, 0xaa, 0xae, 0xab, 0x7b, 0x44, 0x6a, 0xbc, 0xe3, 0x33, 0xc0, 0xd3, 0x0c, 0x3e, 0xae, 0x9c, 0x9d, 0xa6, 0x3e, 0xb1, 0xc0, 0x39, 0x1d, 0x42, 0x69, 0xb1, 0x2c, 0x45, 0xb6, 0x60, 0x29, 0x06, 0x11, 0xac, 0x29, 0xc9, 0x1d, 0xbd, 0x80, 0xdc, 0x6e, 0xd3, 0x02, 0xa4, 0xd1, 0x91, 0xf2, 0x92, 0x39, 0x22, 0xf0, 0x32, 0xab, 0x1a, 0xc1, 0x0c, 0xa7, 0x32, 0x3b, 0x52, 0x41, 0xc5, 0x75, 0x1c, 0x3c, 0x00, 0x4a, 0xc3, 0x9e, 0xb1, 0x26, 0x7a, 0xa1, 0x00, 0x17, 0xed, 0x2d, 0xac, 0x6c, 0x93, 0x4a, 0x25, 0x0d, 0xda, 0x8c, 0xb0, 0x6d, 0x5b, 0xe9, 0xf5, 0x63, 0xb8, 0x27, 0xbf, 0x3c, 0x8d, 0x95, 0xfd, 0x7d, 0x2a, 0x7e, 0x7c, 0xc3, 0xac, 0xbe, 0xe9, 0x25, 0x38, 0xbd, 0x7d, 0xdf, 0xba, 0x3a, 0xb2, 0xdc, 0x9f, 0x79, 0x1f, 0xac, 0x76, 0xcd, 0xf9, 0xcd, 0x6a, 0x69, 0x23, 0x53, 0x4c, 0xf3, 0xe0, 0x67, 0x10, 0x8f, 0x6a, 0xa0, 0x3e, 0x32, 0x0d, 0x95, 0x40, 0x85, 0xc2, 0x18, 0x03, 0x8a, 0x70, 0xcc, 0x76, 0x8b, 0x97, 0x2e, 0x49, 0x95, 0x2b, 0x9f, 0xe1, 0x71, 0xee, 0x1b, 0xe2, 0xa5, 0x2c, 0xd4, 0x69, 0xb8, 0xd3, 0x6b, 0x84, 0xee, 0x90, 0x2c, 0xd9, 0x41, 0x0d, 0xb2, 0x77, 0x71, 0x92, 0xe9, 0x00, 0x70, 0xd2, 0xe7, 0xc5, 0x6c, 0xb6, 0xa4, 0x5f, 0x0a, 0x83, 0x9c, 0x78, 0xc2, 0x19, 0x20, 0x3b, 0x6f, 0x1b, 0x33, 0xcb, 0x45, 0x04, 0xc6, 0xa7, 0x99, 0x64, 0x27, 0x74, 0x1e, 0x68, 0x74, 0xcf, 0x45, 0xc5, 0xfa, 0x5a, 0x38, 0x76, 0x5a, 0x1e, 0xbf, 0x17, 0x96, 0xce, 0x16, 0xe6, 0x3e, 0xe5, 0x09, 0x61, 0x2c, 0x40, 0xf0, 0x88, 0xcb, 0xce, 0xff, 0xa3, 0xaf, 0xfb, 0xc1, 0x3b, 0x75, 0xa1, 0xb9, 0xc0, 0x2c, 0x61, 0xa1, 0x80, 0xa7, 0xe8, 0x3b, 0x17, 0x88, 0x4f, 0xe0, 0xec, 0x0f, 0x2f, 0xe5, 0x7c, 0x47, 0xe7, 0x3a, 0x22, 0xf7, 0x53, 0xea, 0xf5, 0x0f, 0xca, 0x65, 0x5e, 0xbb, 0x19, 0x89, 0x6b, 0x82, 0x7a, 0x34, 0x74, 0x91, 0x1c, 0x67, 0x85, 0x3c, 0x58, 0xb4, 0xa7, 0x8f, 0xd0, 0x85, 0xa2, 0x32, 0x39, 0xb9, 0x73, 0x7e, 0xf8, 0xa7, 0xba, 0xff, 0x11, 0xdd, 0xce, 0x5f, 0x2c, 0xae, 0x05, 0x43, 0xf8, 0xb4, 0x5d, 0x14, 0x4a, 0xe6, 0x91, 0x8b, 0x9a, 0x75, 0x29, 0x3e, 0xc7, 0x8e, 0xa6, 0x18, 0xcd, 0x2c, 0xd0, 0x8c, 0x97, 0x13, 0x01, 0xcd, 0xfa, 0x0a, 0x92, 0x75, 0xc1, 0xbf, 0x44, 0x1d, 0x4c, 0x1f, 0x87, 0x8a, 0x2e, 0x73, 0x3c, 0xe0, 0xa3, 0x3b, 0x6e, 0xcd, 0xac, 0xbb, 0xf0, 0xbd, 0xb5, 0xc3, 0x64, 0x3f, 0xa4, 0x5a, 0x01, 0x39, 0x79, 0xcd, 0x01, 0x39, 0x69, 0x62, 0x89, 0x74, 0x21, 0x12, 0x9a, 0x88, 0x75, 0x7c, 0x0d, 0x88, 0xb5, 0xac, 0x7e, 0x44, 0xfd, 0xbd, 0x93, 0x8b, 0xa4, 0xbc, 0x37, 0xde, 0x49, 0x29, 0xd5, 0x37, 0x51, 0xfb, 0xb4, 0x3d, 0x4e, 0x09, 0xa8, 0x0e, 0x73, 0x52, 0x44, 0xac, 0xad, 0xa8, 0xe6, 0x74, 0x9f, 0x77, 0x78, 0x7f, 0x33, 0x76, 0x3c, 0x74, 0x72, 0xdf, 0x52, 0x93, 0x45, 0x91, 0x59, 0x1f, 0xb2, 0x26, 0xc5, 0x03, 0xc8, 0xbe, 0x61, 0xa9, 0x20, 0xa7, 0xd3, 0x7e, 0xb1, 0x68, 0x6b, 0x62, 0x21, 0x69, 0x57, 0x84, 0x4c, 0x43, 0xc4, 0x84, 0xe5, 0x87, 0x45, 0x77, 0x55, 0x53, };
14719 static const u8 ed25519_640_test_vectors_expected_sig[] = {
14720 	0x90, 0x3b, 0x48, 0x4c, 0xb2, 0x4b, 0xc5, 0x03, 0xcd, 0xce, 0xd8, 0x44, 0x61, 0x40, 0x73, 0x25, 0x6c, 0x6d, 0x5a, 0xa4, 0x5f, 0x1f, 0x9f, 0x62, 0xc7, 0xf2, 0x2e, 0x56, 0x49, 0x21, 0x2b, 0xc1, 0xd6, 0xef, 0x9e, 0xaa, 0x61, 0x7b, 0x6b, 0x83, 0x5a, 0x6d, 0xe2, 0xbe, 0xff, 0x2f, 0xaa, 0xc8, 0x3d, 0x37, 0xa4, 0xa5, 0xfc, 0x5c, 0xc3, 0xb5, 0x56, 0xf5, 0x6e, 0xdd, 0xe2, 0x65, 0x1f, 0x02, };
14721 static const ec_test_case ed25519_640_test_case = {
14722 	.name = "EDDSA25519-SHA512/wei25519 640",
14723 	.ec_str_p = &wei25519_str_params,
14724 	.priv_key = ed25519_640_test_vectors_priv_key,
14725 	.priv_key_len = sizeof(ed25519_640_test_vectors_priv_key),
14726 	.nn_random = NULL,
14727 	.hash_type = SHA512,
14728 	.msg = (const char *)ed25519_640_test_vectors_message,
14729 	.msglen = sizeof(ed25519_640_test_vectors_message),
14730 	.sig_type = EDDSA25519,
14731 	.exp_sig = ed25519_640_test_vectors_expected_sig,
14732 	.exp_siglen = sizeof(ed25519_640_test_vectors_expected_sig),
14733 	.adata = NULL,
14734 	.adata_len = 0
14735 };
14736 
14737 /************************************************/
14738 static const u8 ed25519_641_test_vectors_priv_key[] = {
14739 	0x03, 0x74, 0x9c, 0xa2, 0x04, 0x58, 0xa3, 0x5a, 0x37, 0xa8, 0xd7, 0xa2, 0x6f, 0x95, 0x9f, 0x0d, 0x59, 0xf6, 0xdc, 0x99, 0x73, 0xfa, 0x36, 0x3c, 0x1f, 0xf8, 0xca, 0x4e, 0x63, 0x8c, 0x2c, 0xd3, };
14740 static const u8 ed25519_641_test_vectors_message[] = {
14741 	0xee, 0xf5, 0xce, 0xeb, 0xd0, 0x44, 0x5e, 0x9c, 0x91, 0x81, 0xaf, 0xf9, 0xc6, 0xf2, 0x66, 0x01, 0x28, 0xfc, 0xfb, 0x63, 0x69, 0x1a, 0x42, 0xcf, 0xa4, 0x43, 0xd6, 0xa6, 0x49, 0xef, 0xc5, 0xfa, 0xd8, 0xc2, 0x08, 0x03, 0x76, 0x3e, 0xe9, 0x7d, 0x1d, 0xba, 0x08, 0xe6, 0x3e, 0x08, 0xa2, 0x61, 0x6d, 0xa0, 0x50, 0x77, 0x48, 0x9f, 0x2f, 0xa2, 0xc5, 0x6b, 0x75, 0x34, 0xf9, 0x40, 0x26, 0x19, 0x25, 0x1f, 0xdf, 0x9c, 0x32, 0x0d, 0xe7, 0xaf, 0x10, 0x9e, 0x2f, 0xd8, 0xb2, 0x56, 0x5c, 0xe8, 0xa7, 0x52, 0x4c, 0x94, 0x05, 0xec, 0x0f, 0x8f, 0xca, 0xa7, 0x14, 0x9a, 0x6d, 0x21, 0x0e, 0xfd, 0xe8, 0x3b, 0x11, 0x1c, 0xf8, 0x2d, 0xc0, 0x83, 0x5c, 0xf9, 0x4f, 0x20, 0xcd, 0xb0, 0x21, 0xb7, 0x3b, 0xd2, 0x62, 0x66, 0x65, 0x55, 0xe6, 0xd6, 0x27, 0x07, 0xb4, 0x6e, 0xe4, 0x2f, 0xa9, 0x00, 0xb4, 0xf4, 0xf7, 0x05, 0xde, 0x33, 0xd3, 0xdb, 0xdc, 0x68, 0xa8, 0x8d, 0x1a, 0x4d, 0x0a, 0xe9, 0x33, 0x56, 0x6d, 0xb6, 0xc6, 0x23, 0x7e, 0xc8, 0xab, 0xe1, 0x02, 0x4d, 0xac, 0x4b, 0x7f, 0x46, 0xd4, 0x07, 0xbe, 0x16, 0x59, 0x4d, 0x90, 0x46, 0xc7, 0x31, 0x2d, 0xda, 0x66, 0x14, 0xd9, 0xbc, 0xdb, 0x01, 0xfb, 0x83, 0x24, 0xfc, 0x62, 0xb8, 0xee, 0xaf, 0x0a, 0xbc, 0x23, 0xcd, 0x57, 0x0e, 0x30, 0x4f, 0xca, 0x08, 0xe8, 0x8c, 0x73, 0x5e, 0x5d, 0x31, 0x59, 0x24, 0x09, 0xce, 0xb5, 0x83, 0x86, 0x2e, 0x6b, 0x0a, 0x76, 0x77, 0x29, 0xf7, 0x55, 0x6f, 0xa2, 0xc0, 0x53, 0x64, 0x4d, 0x36, 0xc8, 0x33, 0x7c, 0x02, 0x74, 0xe7, 0x49, 0x20, 0x29, 0x82, 0xfb, 0x4a, 0x17, 0x1a, 0xca, 0xc1, 0x96, 0xc0, 0x2b, 0x7f, 0x16, 0xa8, 0xda, 0x49, 0x07, 0x1c, 0x8a, 0xb8, 0x07, 0x6d, 0xd5, 0xd3, 0xab, 0xad, 0xfe, 0x3a, 0xf8, 0x2c, 0xa8, 0x5d, 0xa0, 0x2d, 0xcc, 0x1c, 0x4a, 0x6f, 0x2e, 0x19, 0x30, 0xbe, 0xe2, 0x00, 0x9e, 0xee, 0x0d, 0x97, 0x1e, 0x40, 0xdd, 0x12, 0x17, 0x5c, 0x8d, 0x00, 0x69, 0x4f, 0x03, 0x25, 0xa3, 0xb3, 0x13, 0x3c, 0x0d, 0x0b, 0xd3, 0x82, 0xa5, 0x19, 0x4f, 0xb2, 0x14, 0x22, 0xce, 0x67, 0xc7, 0x8a, 0x5a, 0x6e, 0x15, 0x37, 0xe3, 0xb9, 0x7d, 0x5e, 0x20, 0x4e, 0x5d, 0x19, 0x56, 0x96, 0x39, 0x0f, 0x77, 0xd1, 0x90, 0x24, 0xc1, 0xbf, 0x6b, 0x51, 0x25, 0xa0, 0xcd, 0xbf, 0x7b, 0x98, 0x80, 0x03, 0x61, 0x81, 0xc9, 0x8e, 0x1a, 0xc2, 0xe5, 0x16, 0x5b, 0xd4, 0x96, 0xcf, 0x99, 0x74, 0x51, 0xa1, 0xc1, 0x21, 0x02, 0xe6, 0x69, 0x46, 0xb1, 0x67, 0x6a, 0xbd, 0x4c, 0xbd, 0xd2, 0xc1, 0x16, 0x73, 0xf4, 0xf2, 0xcd, 0x5f, 0x3c, 0x9a, 0x43, 0x4d, 0x74, 0x7f, 0xa0, 0x5b, 0x40, 0xfb, 0xc7, 0x22, 0x68, 0xb4, 0xeb, 0x28, 0x42, 0xe4, 0x74, 0x1f, 0x51, 0xb7, 0x70, 0x9b, 0x6a, 0xcc, 0xc4, 0x7f, 0xca, 0xf7, 0x0d, 0x9c, 0x1c, 0x4c, 0x35, 0x86, 0x71, 0x19, 0xd8, 0x1c, 0xb3, 0xff, 0x1f, 0x16, 0x08, 0x11, 0x33, 0xf1, 0x65, 0x9a, 0xed, 0x85, 0xf6, 0x3b, 0xc9, 0x01, 0x98, 0x9e, 0x26, 0x17, 0xfc, 0xce, 0x15, 0x3c, 0x29, 0x78, 0xd7, 0x08, 0xfd, 0x02, 0x44, 0x9a, 0xe4, 0xd5, 0x38, 0xd1, 0x22, 0xdd, 0xb8, 0x52, 0x7c, 0x0a, 0x76, 0xa1, 0x02, 0xee, 0xff, 0x6e, 0xdb, 0x65, 0xdb, 0xa2, 0x98, 0xd3, 0xc2, 0x17, 0xf6, 0x55, 0x18, 0x14, 0xed, 0xde, 0xec, 0xe1, 0xae, 0xf5, 0xf3, 0x71, 0xa5, 0x4f, 0x12, 0xbf, 0xfd, 0x6b, 0x49, 0x61, 0x81, 0x9a, 0x0f, 0x24, 0x4f, 0xf0, 0xd7, 0xd8, 0x69, 0x4c, 0x14, 0x42, 0x2d, 0xe9, 0x82, 0x2c, 0x13, 0x17, 0x9e, 0x4e, 0xeb, 0x81, 0x59, 0x50, 0x79, 0xb9, 0xdd, 0x2a, 0xd1, 0xe7, 0xc3, 0x9b, 0xd3, 0x03, 0xcc, 0x44, 0xae, 0x3f, 0x36, 0x34, 0x88, 0x15, 0x77, 0xa2, 0x66, 0xfd, 0x6b, 0xb7, 0x91, 0x78, 0x12, 0xb9, 0x99, 0xdc, 0x80, 0x9d, 0xc0, 0x9c, 0x3d, 0x70, 0x19, 0xda, 0xcd, 0x28, 0xe4, 0x30, 0x13, 0xa2, 0xf9, 0xe4, 0xf9, 0x4b, 0xb0, 0xbf, 0x71, 0x24, 0xef, 0x09, 0x17, 0x83, 0xf7, 0x96, 0x39, 0x7f, 0x64, 0x63, 0xbf, 0x1e, 0xfb, 0x39, 0xcd, 0x46, 0xf3, 0x79, 0x0a, 0x1d, 0x9b, 0x6a, 0x7c, 0x30, 0xf1, 0x49, 0xb5, 0xe6, 0x6c, 0x29, 0x37, 0xe3, 0x9c, 0xb9, 0x74, 0x4d, 0xdc, 0x66, 0xab, 0x56, 0x1b, 0xad, 0x4e, 0x6f, 0xa8, 0x53, 0x4d, 0x69, 0x88, 0x38, 0x22, 0x64, 0x3d, 0x63, 0xd8, 0xbd, 0x7b, 0x18, 0x16, 0x21, 0xa2, 0x67, 0xe9, 0x55, 0xe7, 0x58, 0xd1, 0x79, 0x2b, 0x44, };
14742 static const u8 ed25519_641_test_vectors_expected_sig[] = {
14743 	0x78, 0xa3, 0x87, 0x7e, 0x02, 0xbd, 0xfd, 0x01, 0x5e, 0x7f, 0x86, 0xa3, 0x27, 0xa4, 0x8c, 0xc3, 0xa5, 0x23, 0x0b, 0xbd, 0xb1, 0x24, 0x3f, 0x1a, 0x8c, 0xf2, 0x27, 0xf7, 0x8a, 0xb5, 0xe7, 0x68, 0x0d, 0xe3, 0x01, 0xa9, 0x15, 0xdc, 0x11, 0xb3, 0x36, 0xfb, 0x5f, 0x65, 0x66, 0x84, 0x8b, 0x42, 0x50, 0x0a, 0xdb, 0x5d, 0x67, 0x39, 0x69, 0x12, 0x2b, 0xa8, 0xf0, 0x05, 0x3c, 0xd3, 0x06, 0x0b, };
14744 static const ec_test_case ed25519_641_test_case = {
14745 	.name = "EDDSA25519-SHA512/wei25519 641",
14746 	.ec_str_p = &wei25519_str_params,
14747 	.priv_key = ed25519_641_test_vectors_priv_key,
14748 	.priv_key_len = sizeof(ed25519_641_test_vectors_priv_key),
14749 	.nn_random = NULL,
14750 	.hash_type = SHA512,
14751 	.msg = (const char *)ed25519_641_test_vectors_message,
14752 	.msglen = sizeof(ed25519_641_test_vectors_message),
14753 	.sig_type = EDDSA25519,
14754 	.exp_sig = ed25519_641_test_vectors_expected_sig,
14755 	.exp_siglen = sizeof(ed25519_641_test_vectors_expected_sig),
14756 	.adata = NULL,
14757 	.adata_len = 0
14758 };
14759 
14760 /************************************************/
14761 static const u8 ed25519_642_test_vectors_priv_key[] = {
14762 	0x53, 0xcb, 0xd6, 0xf6, 0x8c, 0xee, 0x27, 0xb9, 0xf7, 0xbc, 0x05, 0x9b, 0x80, 0x3b, 0x44, 0x79, 0x49, 0xbb, 0xc9, 0xc5, 0xd5, 0xa3, 0x86, 0x52, 0xd7, 0x78, 0x9c, 0xa1, 0x54, 0x20, 0xde, 0xa1, };
14763 static const u8 ed25519_642_test_vectors_message[] = {
14764 	0x30, 0x6f, 0x8e, 0x1d, 0xf0, 0xa4, 0xca, 0x78, 0xbd, 0x77, 0xe8, 0xe1, 0x19, 0x1c, 0x94, 0xde, 0xaa, 0x82, 0x64, 0x83, 0x55, 0xc2, 0xae, 0xcb, 0x7e, 0x82, 0xfc, 0x56, 0xd6, 0x4c, 0x50, 0x46, 0x19, 0x24, 0x7e, 0x7c, 0xf8, 0x94, 0x33, 0x28, 0xd1, 0x1f, 0x3d, 0xb4, 0xb1, 0xdc, 0x14, 0x8e, 0x8e, 0xf6, 0xf6, 0xc3, 0xbc, 0x35, 0x59, 0x69, 0x66, 0x2a, 0x28, 0x1a, 0x65, 0x57, 0x63, 0x91, 0x24, 0x2b, 0x7b, 0xd5, 0xa6, 0x2f, 0x8f, 0xa7, 0xac, 0xb6, 0x04, 0xe3, 0xa3, 0x44, 0xae, 0x1a, 0x9d, 0x73, 0x2a, 0x25, 0x43, 0x15, 0xf3, 0x1a, 0x04, 0x64, 0xc1, 0xe6, 0x58, 0x74, 0x62, 0xd2, 0x92, 0x12, 0xc4, 0x0e, 0x5e, 0xcf, 0x06, 0x1e, 0x26, 0x9a, 0xa0, 0xb9, 0x03, 0x90, 0xba, 0x41, 0x04, 0x07, 0x21, 0x68, 0x4b, 0xf2, 0xaa, 0x95, 0x82, 0xd8, 0x30, 0x66, 0x22, 0x1d, 0xb6, 0x0d, 0x0f, 0x7a, 0xe2, 0xf1, 0x49, 0xa3, 0x6e, 0x16, 0x95, 0x27, 0x04, 0xfb, 0x1f, 0x3a, 0x98, 0x2e, 0xac, 0x6b, 0x45, 0x83, 0x66, 0x5c, 0x63, 0xe5, 0xa8, 0x99, 0x6f, 0x24, 0xa5, 0x66, 0xdd, 0x50, 0x6a, 0x33, 0xd4, 0xec, 0x8a, 0x02, 0xb2, 0xbd, 0x34, 0xb7, 0x14, 0xc7, 0x45, 0x00, 0x0c, 0x01, 0x28, 0xa3, 0xc8, 0x9d, 0x94, 0x25, 0x06, 0xd1, 0x2f, 0x4b, 0xeb, 0x90, 0x0e, 0x29, 0x03, 0xcd, 0xb3, 0x4b, 0x35, 0xca, 0x9b, 0x6d, 0x3a, 0xd9, 0xb3, 0x50, 0xac, 0x99, 0xf4, 0x1d, 0xb3, 0xac, 0xfe, 0x7f, 0xe5, 0x5a, 0x28, 0xc0, 0xf0, 0x06, 0xb8, 0x44, 0xc9, 0xdc, 0x48, 0x53, 0xfd, 0x98, 0x53, 0x5a, 0xda, 0x79, 0x41, 0x6d, 0xca, 0x5f, 0xee, 0x58, 0x03, 0xa2, 0xd9, 0xf5, 0xd6, 0x8e, 0x6b, 0x80, 0x53, 0x9f, 0xf3, 0x02, 0xe9, 0x73, 0xf2, 0x4e, 0x9b, 0xc8, 0x8b, 0x7c, 0x41, 0x94, 0x11, 0x7d, 0xdb, 0x9f, 0x93, 0x2b, 0x32, 0xd5, 0xec, 0x74, 0x86, 0x8a, 0x13, 0x63, 0x1e, 0xce, 0x68, 0x81, 0x4b, 0x93, 0x14, 0x21, 0xdc, 0x89, 0x02, 0x49, 0x57, 0x03, 0x41, 0xf4, 0xb4, 0x23, 0xe8, 0x6e, 0x8e, 0xe0, 0x81, 0xb2, 0x27, 0x02, 0xf6, 0x49, 0xa6, 0xc7, 0xa0, 0xb7, 0xbd, 0xf5, 0xfb, 0x75, 0x62, 0x02, 0xbd, 0x10, 0xb0, 0xbb, 0x22, 0x15, 0xc7, 0xd6, 0x59, 0x7e, 0xff, 0xd8, 0x52, 0xf0, 0xb8, 0x9a, 0xbe, 0xc1, 0x5e, 0xa8, 0x22, 0x57, 0x68, 0x9d, 0xf8, 0x1e, 0x33, 0x82, 0x54, 0xf9, 0x3e, 0x81, 0xcb, 0xf0, 0x61, 0x72, 0x9d, 0x48, 0x3e, 0xb5, 0xcf, 0x64, 0x98, 0x05, 0xd7, 0x8e, 0xd8, 0x92, 0xdd, 0x0b, 0xd2, 0x48, 0xca, 0x1e, 0x25, 0x2b, 0xea, 0x51, 0x84, 0x7e, 0x1e, 0x82, 0xd3, 0x9a, 0xf5, 0x80, 0x50, 0xdc, 0x4a, 0xfb, 0xf9, 0x11, 0x5a, 0x3a, 0x60, 0x49, 0x3e, 0x8c, 0x0b, 0xa2, 0xe8, 0x6e, 0x08, 0x98, 0xcd, 0x0d, 0x43, 0x08, 0x91, 0xb9, 0xeb, 0x0a, 0x40, 0xf8, 0x74, 0x31, 0xe2, 0x5f, 0x41, 0x53, 0x8a, 0x03, 0x0f, 0x88, 0x4f, 0xab, 0x36, 0xad, 0x11, 0x16, 0x5d, 0x26, 0x7e, 0x8d, 0xd9, 0x4d, 0xcb, 0x05, 0xb9, 0x3a, 0x5a, 0xe7, 0x79, 0x69, 0x43, 0x0e, 0x18, 0x10, 0x13, 0x4e, 0x15, 0x72, 0x51, 0xb9, 0x82, 0xdf, 0x34, 0x3d, 0xff, 0xae, 0x61, 0x23, 0xa9, 0x9a, 0xa0, 0x56, 0x2d, 0x5d, 0xf7, 0x24, 0x08, 0xf1, 0xa6, 0xe2, 0x9c, 0x40, 0x59, 0xa5, 0xa8, 0xaa, 0xa4, 0xe6, 0x21, 0x52, 0x8f, 0xc6, 0x3a, 0x9c, 0xbe, 0x1f, 0x4c, 0x0f, 0xef, 0x25, 0xfe, 0x3f, 0x8e, 0x18, 0x15, 0x77, 0x74, 0x09, 0x7a, 0x9d, 0x91, 0x02, 0x0a, 0x90, 0x06, 0xb6, 0xc8, 0x60, 0xec, 0x1e, 0xe1, 0x0d, 0x52, 0x1d, 0x20, 0x3a, 0x1f, 0x8b, 0xb8, 0x25, 0x61, 0x29, 0x6f, 0xaa, 0xd4, 0xb2, 0x20, 0x3d, 0xa5, 0x3b, 0x20, 0x7a, 0x45, 0x9b, 0x29, 0xc1, 0x8b, 0xc0, 0x64, 0x93, 0x32, 0xb1, 0x80, 0x7c, 0x13, 0xca, 0x61, 0xac, 0xfa, 0xf9, 0x07, 0x79, 0xfe, 0xbb, 0xc7, 0xf3, 0x24, 0x21, 0x64, 0x79, 0x7e, 0x6f, 0x57, 0x2c, 0xb1, 0x5a, 0x9b, 0xe5, 0x88, 0x73, 0x43, 0x45, 0x5e, 0x26, 0xb9, 0x10, 0xc8, 0xbe, 0xfe, 0xe4, 0x2a, 0xeb, 0x04, 0x7f, 0x9a, 0xbe, 0x6b, 0x37, 0x50, 0xdb, 0xd7, 0xde, 0x99, 0x20, 0x2a, 0x0b, 0xb5, 0x76, 0xce, 0x14, 0x89, 0xe6, 0x1c, 0x1f, 0x5d, 0x27, 0xc6, 0x79, 0x2e, 0x63, 0x21, 0x8e, 0xdb, 0xfd, 0xb9, 0xb3, 0xdc, 0x51, 0x5b, 0x42, 0x54, 0xd8, 0x2c, 0x85, 0x9e, 0x52, 0xce, 0x6b, 0xd7, 0xad, 0x29, 0x6d, 0xd0, 0xe3, 0x70, 0x9d, 0x4c, 0x46, 0x63, 0x62, 0xf9, 0x02, 0x65, 0xe9, 0x9d, 0xa7, 0xd0, 0xb7, 0x01, };
14765 static const u8 ed25519_642_test_vectors_expected_sig[] = {
14766 	0xd8, 0x25, 0x04, 0x40, 0x5f, 0xf1, 0x6b, 0xa6, 0x44, 0x3d, 0xc4, 0x82, 0x36, 0x72, 0x63, 0xa8, 0xe2, 0x00, 0x36, 0x0a, 0xca, 0xaa, 0x83, 0xfc, 0x4e, 0x4b, 0x72, 0xbd, 0x24, 0x9f, 0x16, 0x10, 0x3e, 0xc7, 0xe5, 0xa7, 0xe9, 0xca, 0x17, 0x19, 0x8f, 0x88, 0x8e, 0xac, 0xa1, 0x6b, 0x74, 0x0c, 0xc3, 0xf5, 0xc3, 0xb7, 0xb6, 0x17, 0xa3, 0x4b, 0x94, 0x91, 0xc3, 0xed, 0x76, 0xaa, 0xb3, 0x0d, };
14767 static const ec_test_case ed25519_642_test_case = {
14768 	.name = "EDDSA25519-SHA512/wei25519 642",
14769 	.ec_str_p = &wei25519_str_params,
14770 	.priv_key = ed25519_642_test_vectors_priv_key,
14771 	.priv_key_len = sizeof(ed25519_642_test_vectors_priv_key),
14772 	.nn_random = NULL,
14773 	.hash_type = SHA512,
14774 	.msg = (const char *)ed25519_642_test_vectors_message,
14775 	.msglen = sizeof(ed25519_642_test_vectors_message),
14776 	.sig_type = EDDSA25519,
14777 	.exp_sig = ed25519_642_test_vectors_expected_sig,
14778 	.exp_siglen = sizeof(ed25519_642_test_vectors_expected_sig),
14779 	.adata = NULL,
14780 	.adata_len = 0
14781 };
14782 
14783 /************************************************/
14784 static const u8 ed25519_643_test_vectors_priv_key[] = {
14785 	0x8b, 0x65, 0x74, 0xf6, 0xd7, 0x39, 0x69, 0x81, 0xe2, 0x23, 0xa4, 0x83, 0x7b, 0xc3, 0x39, 0xc3, 0xfd, 0x65, 0x94, 0x19, 0x84, 0x5a, 0x21, 0x21, 0xbf, 0x85, 0xbe, 0x2e, 0x69, 0x5d, 0x86, 0x0d, };
14786 static const u8 ed25519_643_test_vectors_message[] = {
14787 	0xa4, 0x8a, 0xac, 0xc0, 0x49, 0x5f, 0xa0, 0xf1, 0x25, 0x9b, 0x27, 0x86, 0x5d, 0x3d, 0x75, 0xdc, 0x52, 0xc2, 0xc8, 0x28, 0xea, 0x8c, 0x4c, 0x2a, 0xd7, 0x85, 0x77, 0x07, 0x2f, 0xef, 0x72, 0x70, 0xf6, 0xa4, 0xd5, 0x82, 0xbb, 0x7b, 0x96, 0x2f, 0x4c, 0x3f, 0xd1, 0x49, 0xa6, 0x0a, 0x06, 0xbc, 0x8e, 0xfd, 0x29, 0x70, 0xef, 0x03, 0x14, 0x8d, 0xdf, 0x61, 0x98, 0xb9, 0xb6, 0x95, 0xa6, 0x9f, 0xad, 0xb5, 0x34, 0x09, 0x51, 0xcb, 0x75, 0x39, 0x8a, 0xc5, 0x1a, 0x4f, 0xd5, 0x54, 0x30, 0x37, 0x8c, 0xd5, 0xda, 0x88, 0x85, 0x21, 0x0b, 0xfd, 0x21, 0x46, 0xf9, 0x5c, 0x62, 0x76, 0x32, 0xfe, 0x8b, 0xe0, 0x6d, 0xe0, 0x1a, 0x7c, 0x27, 0xb8, 0x9d, 0xee, 0xfd, 0x67, 0xef, 0xc6, 0x9c, 0x9b, 0x5c, 0x62, 0xb3, 0x81, 0x08, 0xf7, 0x76, 0x22, 0x91, 0x43, 0xda, 0xe6, 0x60, 0xc1, 0x0c, 0xbe, 0xa3, 0xcd, 0x4f, 0x7e, 0xe5, 0x3d, 0xc3, 0x69, 0x2e, 0xd0, 0x11, 0x77, 0xe4, 0xa6, 0xf7, 0xe4, 0x24, 0xb5, 0x66, 0x6f, 0x7f, 0x49, 0x5f, 0x2a, 0x65, 0x60, 0x2c, 0x7d, 0x08, 0xc5, 0xd5, 0x72, 0x23, 0x4a, 0x56, 0x7c, 0xb6, 0xc3, 0x8a, 0xfd, 0x79, 0xca, 0xb5, 0xc4, 0x03, 0x6d, 0x62, 0x63, 0x7a, 0xef, 0xab, 0x55, 0x88, 0x76, 0x9a, 0x44, 0x8a, 0xb4, 0xc6, 0x5e, 0x24, 0x55, 0x4b, 0xd4, 0x15, 0x80, 0x50, 0xe0, 0x9e, 0xb5, 0x8f, 0x99, 0xab, 0x40, 0x77, 0x7b, 0x03, 0x56, 0x70, 0x9b, 0x7c, 0x02, 0x5a, 0xe5, 0xae, 0x54, 0x22, 0xac, 0xf8, 0x74, 0x44, 0x93, 0x1a, 0xe4, 0xd9, 0xa8, 0xb3, 0xd9, 0x44, 0x76, 0x88, 0x11, 0x28, 0xba, 0x1e, 0xb7, 0x32, 0x8f, 0xaf, 0xc7, 0x5f, 0x6b, 0x9d, 0xac, 0xc9, 0x6d, 0x3b, 0x64, 0x87, 0xdd, 0xef, 0x7c, 0x59, 0x26, 0x2d, 0xca, 0xda, 0x42, 0x6a, 0xac, 0xb1, 0x39, 0x22, 0x93, 0x54, 0x11, 0x56, 0x62, 0x35, 0xe0, 0x58, 0x37, 0x26, 0x22, 0xd8, 0x85, 0xbd, 0x0c, 0xc0, 0x49, 0x58, 0xdc, 0xfb, 0x17, 0xe0, 0x8f, 0xcd, 0x7f, 0x14, 0x7e, 0x20, 0x15, 0x6c, 0x8e, 0x26, 0xaf, 0x85, 0x53, 0x0f, 0x55, 0x11, 0xa6, 0x8d, 0xb4, 0x3d, 0xaf, 0xc4, 0xe6, 0xa2, 0x3f, 0x66, 0x7d, 0xf3, 0x74, 0x3e, 0xed, 0xd7, 0x1a, 0x3f, 0x07, 0xf7, 0x6f, 0x94, 0xd1, 0x68, 0x8a, 0xfc, 0x84, 0x63, 0xbf, 0xa5, 0xa4, 0x39, 0xae, 0x31, 0x14, 0x69, 0x94, 0x8e, 0x74, 0x47, 0x06, 0x4f, 0x0b, 0x05, 0x06, 0xf3, 0x67, 0x19, 0xc1, 0x34, 0x66, 0xa1, 0xb9, 0x87, 0x76, 0xd9, 0x67, 0xec, 0x58, 0x20, 0x8b, 0xa6, 0x74, 0x03, 0x73, 0x03, 0xdf, 0xc6, 0x19, 0x0d, 0xa7, 0x83, 0xff, 0x27, 0x30, 0x3b, 0x86, 0xb5, 0xfc, 0x32, 0x11, 0xf0, 0x1c, 0x91, 0x5e, 0x83, 0xa6, 0xad, 0x01, 0x21, 0x44, 0x79, 0x11, 0xcb, 0xe1, 0xcf, 0x69, 0x6f, 0x61, 0x8f, 0x60, 0x23, 0x66, 0x43, 0xf2, 0xe9, 0x4e, 0x15, 0x5d, 0xb6, 0x57, 0x18, 0x29, 0x44, 0xc1, 0xa4, 0x3b, 0xdc, 0x7b, 0xd5, 0xea, 0xf3, 0x48, 0x1f, 0xe1, 0x28, 0x40, 0x92, 0xcb, 0x37, 0x89, 0xa8, 0x92, 0xbd, 0x79, 0xa1, 0x11, 0xfd, 0x41, 0x01, 0x43, 0xcf, 0x91, 0xae, 0x33, 0x28, 0x60, 0xb1, 0xd2, 0x9a, 0xa0, 0x41, 0xd1, 0x77, 0xb5, 0x0d, 0x6c, 0xc2, 0xb9, 0x66, 0x0d, 0x32, 0x8c, 0x0f, 0x23, 0x0a, 0x35, 0x15, 0xe6, 0xa0, 0xd6, 0x88, 0x70, 0x9c, 0x0c, 0xd3, 0x47, 0xad, 0x2f, 0xf3, 0x2d, 0x61, 0xd1, 0xe1, 0xe9, 0xba, 0x76, 0xf8, 0x1e, 0x87, 0x3a, 0x6c, 0x42, 0x0f, 0x17, 0x07, 0xf3, 0x84, 0x1d, 0xb5, 0x19, 0x6c, 0xb5, 0x3f, 0x50, 0x6f, 0x00, 0x06, 0x35, 0x2c, 0x7c, 0x44, 0xc0, 0x80, 0xf3, 0x09, 0x68, 0x01, 0xa5, 0x7a, 0x49, 0xcf, 0xe8, 0x42, 0x05, 0xbd, 0xd7, 0xa9, 0x80, 0x1f, 0x84, 0x3c, 0xf2, 0x6b, 0x95, 0x58, 0xa2, 0xdb, 0x78, 0x8e, 0xf1, 0xb2, 0x37, 0x91, 0x5d, 0x58, 0x7b, 0x9b, 0xa9, 0x77, 0x98, 0x90, 0xf6, 0x1f, 0xdc, 0x91, 0xe0, 0x3e, 0x4f, 0x4c, 0xdb, 0xef, 0xe4, 0x17, 0xcc, 0x22, 0xd5, 0x22, 0xa8, 0x6a, 0xdd, 0xdb, 0x53, 0xf3, 0x74, 0x74, 0x50, 0xab, 0x62, 0xb5, 0x76, 0x56, 0x5d, 0xb3, 0x2e, 0x0c, 0xd4, 0x42, 0x76, 0x54, 0x7d, 0x9a, 0x16, 0x65, 0x3c, 0x27, 0x96, 0x59, 0xdd, 0x4d, 0x17, 0xec, 0x04, 0x82, 0x7c, 0x53, 0x3e, 0x33, 0x39, 0x0f, 0xe9, 0x4f, 0x79, 0x35, 0x09, 0x25, 0x6d, 0xb6, 0x75, 0x31, 0x73, 0x6a, 0xb3, 0xfc, 0xee, 0x2a, 0x30, 0x1a, 0xc3, 0xf0, 0xa2, 0x4d, 0x3b, 0x10, 0x8d, 0x7e, 0x75, 0xc3, 0x2a, 0x5a, 0xba, 0x36, 0xd6, };
14788 static const u8 ed25519_643_test_vectors_expected_sig[] = {
14789 	0x2f, 0xd0, 0x90, 0x54, 0x75, 0xa2, 0xce, 0xc3, 0xe7, 0x6f, 0x99, 0x09, 0xb8, 0xaf, 0xd8, 0x3b, 0xeb, 0x8d, 0xae, 0xfa, 0x77, 0xaf, 0xcd, 0xa3, 0x4c, 0xb4, 0xf1, 0x17, 0x28, 0xef, 0x15, 0xfc, 0x9c, 0x1d, 0x7f, 0x6f, 0x6a, 0xff, 0xfc, 0x28, 0xf3, 0x87, 0x4f, 0x91, 0x3e, 0x17, 0x98, 0x0f, 0x0e, 0x8e, 0x3d, 0x5a, 0xd2, 0x39, 0x51, 0xdf, 0x2b, 0x32, 0xef, 0xaf, 0x62, 0x19, 0xce, 0x0d, };
14790 static const ec_test_case ed25519_643_test_case = {
14791 	.name = "EDDSA25519-SHA512/wei25519 643",
14792 	.ec_str_p = &wei25519_str_params,
14793 	.priv_key = ed25519_643_test_vectors_priv_key,
14794 	.priv_key_len = sizeof(ed25519_643_test_vectors_priv_key),
14795 	.nn_random = NULL,
14796 	.hash_type = SHA512,
14797 	.msg = (const char *)ed25519_643_test_vectors_message,
14798 	.msglen = sizeof(ed25519_643_test_vectors_message),
14799 	.sig_type = EDDSA25519,
14800 	.exp_sig = ed25519_643_test_vectors_expected_sig,
14801 	.exp_siglen = sizeof(ed25519_643_test_vectors_expected_sig),
14802 	.adata = NULL,
14803 	.adata_len = 0
14804 };
14805 
14806 /************************************************/
14807 static const u8 ed25519_644_test_vectors_priv_key[] = {
14808 	0x29, 0xb2, 0x88, 0x1b, 0x8c, 0xaa, 0xdb, 0x33, 0x6e, 0x78, 0x80, 0xc5, 0x10, 0xb8, 0x00, 0x85, 0xf4, 0xb1, 0x22, 0x18, 0x60, 0xb3, 0x01, 0xeb, 0x45, 0x25, 0x65, 0x07, 0x52, 0xa6, 0xd2, 0x89, };
14809 static const u8 ed25519_644_test_vectors_message[] = {
14810 	0x19, 0x74, 0xa2, 0xe2, 0xb4, 0x79, 0x49, 0xf4, 0x67, 0xa9, 0x31, 0xd1, 0xd9, 0xdd, 0x5c, 0xe1, 0x16, 0xe9, 0xf5, 0x03, 0x0a, 0xd0, 0x9a, 0x8c, 0xc7, 0x28, 0xd1, 0xae, 0xb1, 0x48, 0xbb, 0xf9, 0xac, 0xf5, 0x98, 0x74, 0xda, 0x80, 0xe7, 0x08, 0xd5, 0x3c, 0x66, 0x8f, 0x2f, 0x14, 0xd7, 0x52, 0x20, 0x71, 0xe9, 0x09, 0x80, 0x84, 0x27, 0xb2, 0xab, 0x5a, 0x05, 0xf8, 0xb9, 0x4f, 0x21, 0x50, 0x5c, 0xd2, 0x6a, 0xbc, 0x53, 0x45, 0x89, 0x78, 0xc7, 0x84, 0xd4, 0x79, 0xea, 0x6d, 0xab, 0x10, 0x5c, 0x4f, 0x79, 0x84, 0xa0, 0xfb, 0x97, 0x90, 0xe5, 0x06, 0x24, 0xf4, 0x73, 0x4b, 0x55, 0x19, 0x05, 0xaa, 0x5f, 0xfa, 0x60, 0x18, 0x4c, 0xd2, 0x01, 0xcf, 0x2b, 0x26, 0xc9, 0x79, 0x5d, 0xa6, 0xe7, 0xe0, 0x8d, 0x6a, 0x0b, 0xc7, 0x72, 0x24, 0x00, 0xfe, 0xf9, 0x4f, 0xc2, 0x10, 0x38, 0xbe, 0x89, 0xd3, 0x4b, 0xcd, 0x14, 0xc4, 0x27, 0xb8, 0x5b, 0x68, 0x66, 0x73, 0x71, 0x96, 0x15, 0x2d, 0x4e, 0xeb, 0x66, 0xd0, 0x5b, 0x24, 0x5a, 0xe8, 0x4b, 0xdc, 0x77, 0x87, 0xc1, 0x4a, 0x8b, 0xec, 0x2e, 0xea, 0x53, 0x60, 0xf0, 0x42, 0x43, 0x3d, 0x70, 0x79, 0x44, 0x67, 0xd4, 0x73, 0x93, 0xb9, 0x37, 0x57, 0xf3, 0x31, 0xcf, 0x2b, 0x53, 0xc6, 0x60, 0xd7, 0x1c, 0x29, 0x58, 0x2a, 0xee, 0xa7, 0x9b, 0x12, 0x52, 0x7a, 0x28, 0xb0, 0xc5, 0xe1, 0x10, 0xdf, 0x6f, 0x85, 0x4e, 0xea, 0xd9, 0xa2, 0xb0, 0x0d, 0x42, 0x54, 0x2c, 0xa8, 0x27, 0x6b, 0xb8, 0xbf, 0x98, 0x8b, 0xaa, 0xb8, 0x56, 0x59, 0x96, 0xfe, 0xe5, 0x0c, 0xf3, 0x1b, 0x24, 0x59, 0xc4, 0xc5, 0x0a, 0xb4, 0x75, 0x26, 0x5e, 0x83, 0xe2, 0x28, 0x5d, 0x43, 0xfe, 0x1f, 0x75, 0x2a, 0x55, 0xb2, 0xdb, 0xc4, 0x9f, 0xca, 0x04, 0xa8, 0x10, 0xf0, 0x41, 0x3b, 0xf6, 0xbd, 0x81, 0xb7, 0x9a, 0xc6, 0x4e, 0xe1, 0xf8, 0x9b, 0x97, 0xbd, 0x7d, 0x26, 0xd6, 0x25, 0x12, 0x27, 0x3e, 0x24, 0xa6, 0xba, 0xb2, 0xd5, 0xf7, 0xd2, 0x22, 0x6b, 0xaa, 0xab, 0x7b, 0x11, 0x12, 0x09, 0xbb, 0x03, 0x73, 0x3d, 0x8a, 0x60, 0xdf, 0xa3, 0x1a, 0x51, 0x6f, 0x4a, 0x8c, 0x76, 0x99, 0xd8, 0x28, 0x5c, 0x10, 0x65, 0x15, 0x9a, 0x6c, 0x73, 0x31, 0xc1, 0xde, 0xfb, 0x47, 0xa3, 0x0e, 0xf5, 0x85, 0x8c, 0x50, 0xb7, 0xd0, 0x45, 0x12, 0x4a, 0x09, 0x81, 0x3d, 0x1c, 0xfd, 0xa5, 0xc9, 0xcc, 0x3b, 0xb5, 0xbf, 0xae, 0x73, 0xc9, 0x84, 0x19, 0x7f, 0x8f, 0x85, 0x7f, 0x18, 0x6c, 0x41, 0xab, 0x87, 0xfb, 0x79, 0x62, 0xb6, 0x31, 0xf4, 0xd0, 0x07, 0xcf, 0xbe, 0xe2, 0x21, 0xfc, 0x65, 0x72, 0x78, 0x4a, 0x55, 0x11, 0x94, 0xc1, 0x97, 0x77, 0xb0, 0x8e, 0x6b, 0x59, 0x67, 0x57, 0xe7, 0xcb, 0xa7, 0xa0, 0xe2, 0x7f, 0xe4, 0x53, 0xf9, 0x0d, 0xc5, 0x9c, 0xc0, 0x8c, 0x64, 0x72, 0x43, 0x1c, 0x02, 0x0e, 0x8d, 0xd0, 0x91, 0x75, 0x90, 0xe7, 0x9c, 0x1f, 0x20, 0x73, 0x83, 0xaf, 0xb3, 0x90, 0x76, 0xad, 0x24, 0xda, 0x8e, 0xe5, 0x24, 0x86, 0x73, 0x94, 0x53, 0xa2, 0x59, 0x0e, 0x51, 0xbf, 0xc8, 0x9b, 0x13, 0xc2, 0x03, 0x3c, 0xfa, 0x5f, 0x89, 0x03, 0xcb, 0xe9, 0x96, 0x1a, 0x85, 0x98, 0xba, 0x55, 0x62, 0x32, 0x86, 0x9d, 0xfa, 0xb4, 0xd5, 0x6e, 0xdf, 0x4f, 0x05, 0xe8, 0xb7, 0x7d, 0x05, 0x87, 0x18, 0x95, 0xe6, 0x3b, 0x53, 0x51, 0xf7, 0x6c, 0xb2, 0xd2, 0xc8, 0x38, 0x5c, 0x10, 0x9d, 0x73, 0x06, 0x19, 0x2a, 0x25, 0x44, 0x6e, 0x4d, 0x62, 0xdc, 0x7d, 0x62, 0x4f, 0x0c, 0x66, 0x73, 0x98, 0x6b, 0xe0, 0x62, 0x8b, 0x2c, 0x2d, 0x73, 0xeb, 0x94, 0x1d, 0x35, 0xa3, 0x43, 0x30, 0x90, 0xf5, 0x9b, 0x28, 0xa5, 0x97, 0x9d, 0x56, 0xdb, 0xc9, 0xfd, 0x69, 0x73, 0xf6, 0x36, 0x47, 0x64, 0x2c, 0xd9, 0x03, 0xb0, 0xcf, 0x7a, 0x6a, 0xcd, 0x33, 0x0d, 0x87, 0xe2, 0x29, 0x27, 0x10, 0xde, 0x99, 0xe0, 0xc1, 0x79, 0xca, 0x78, 0x92, 0x9c, 0xca, 0xec, 0xfa, 0xed, 0xbf, 0x27, 0x42, 0x41, 0x4f, 0x17, 0x6b, 0x60, 0x90, 0xc0, 0xd5, 0x9a, 0x9d, 0xb7, 0x81, 0xc9, 0x96, 0x7e, 0x28, 0xfa, 0x4e, 0x77, 0xd2, 0xa0, 0x82, 0xe4, 0x2f, 0x52, 0x16, 0x91, 0x67, 0xe9, 0x2d, 0x4f, 0xdd, 0x82, 0xe2, 0xcc, 0x05, 0xdd, 0x91, 0x84, 0xc7, 0xdf, 0xee, 0x49, 0x0a, 0x23, 0x7f, 0xda, 0xd4, 0xdf, 0xeb, 0xc0, 0x18, 0x68, 0xe0, 0xa4, 0x35, 0x3a, 0x29, 0x54, 0xd0, 0x90, 0x92, 0x84, 0x61, 0x82, 0x1a, 0x7a, 0x84, 0x8d, 0x1b, 0x60, 0x81, 0x7f, 0xc3, 0xbd, 0xef, 0xa1, };
14811 static const u8 ed25519_644_test_vectors_expected_sig[] = {
14812 	0x99, 0xe9, 0x96, 0xe8, 0x5a, 0x49, 0x4f, 0x19, 0x80, 0xcb, 0x07, 0xde, 0x9c, 0xa6, 0x16, 0x5e, 0x7d, 0xe1, 0x04, 0xd3, 0x9f, 0xe3, 0xc3, 0x22, 0x67, 0x35, 0xc5, 0xda, 0xa5, 0x69, 0x51, 0x6f, 0xca, 0xf1, 0xb6, 0xe4, 0xdf, 0xad, 0x0d, 0x38, 0x9b, 0x6d, 0xb0, 0xec, 0x8a, 0x8f, 0x20, 0xdd, 0x2c, 0x60, 0x26, 0x56, 0xb5, 0xe7, 0x61, 0xc8, 0xf3, 0xa6, 0x55, 0x83, 0x82, 0x15, 0x19, 0x09, };
14813 static const ec_test_case ed25519_644_test_case = {
14814 	.name = "EDDSA25519-SHA512/wei25519 644",
14815 	.ec_str_p = &wei25519_str_params,
14816 	.priv_key = ed25519_644_test_vectors_priv_key,
14817 	.priv_key_len = sizeof(ed25519_644_test_vectors_priv_key),
14818 	.nn_random = NULL,
14819 	.hash_type = SHA512,
14820 	.msg = (const char *)ed25519_644_test_vectors_message,
14821 	.msglen = sizeof(ed25519_644_test_vectors_message),
14822 	.sig_type = EDDSA25519,
14823 	.exp_sig = ed25519_644_test_vectors_expected_sig,
14824 	.exp_siglen = sizeof(ed25519_644_test_vectors_expected_sig),
14825 	.adata = NULL,
14826 	.adata_len = 0
14827 };
14828 
14829 /************************************************/
14830 static const u8 ed25519_645_test_vectors_priv_key[] = {
14831 	0x42, 0xaf, 0xe8, 0x9d, 0xac, 0x83, 0xe7, 0xd3, 0x89, 0x96, 0xc0, 0xdb, 0xce, 0x0c, 0x98, 0x74, 0xc0, 0x09, 0x27, 0xba, 0xbd, 0x77, 0xca, 0x8c, 0xea, 0xc3, 0x4e, 0x56, 0x44, 0x74, 0x28, 0x2b, };
14832 static const u8 ed25519_645_test_vectors_message[] = {
14833 	0xe7, 0x10, 0xa1, 0x63, 0xad, 0x28, 0x85, 0xae, 0xb7, 0x65, 0x8e, 0xb3, 0x74, 0xf1, 0x18, 0xb7, 0x68, 0x42, 0xec, 0x36, 0xef, 0x3b, 0x01, 0x0c, 0x3c, 0x6b, 0x95, 0x59, 0xe8, 0xb1, 0x60, 0xc2, 0x62, 0x8d, 0xed, 0x0b, 0x85, 0x11, 0xeb, 0x49, 0x07, 0x18, 0x0d, 0xa4, 0xb6, 0x21, 0xe9, 0xaa, 0x4a, 0x32, 0x22, 0x88, 0x88, 0x8a, 0x1c, 0x09, 0x13, 0x0f, 0x69, 0xf8, 0x90, 0x59, 0x7a, 0x92, 0x93, 0xe7, 0x4f, 0x92, 0x89, 0xbd, 0xaa, 0x5c, 0x91, 0xb6, 0xfd, 0x24, 0xaa, 0x04, 0x4a, 0xb9, 0xfc, 0xb3, 0x40, 0x2f, 0x7a, 0xbc, 0x48, 0xd2, 0xab, 0x7b, 0x38, 0x80, 0xa0, 0x48, 0xda, 0xa4, 0x48, 0x64, 0x5a, 0xd2, 0xec, 0xb5, 0x5b, 0x3c, 0xae, 0xe2, 0xd6, 0x8a, 0x8b, 0xed, 0xb5, 0xd1, 0x86, 0x5d, 0x5e, 0x21, 0x1d, 0xe3, 0x9b, 0x0e, 0xaf, 0x22, 0xe5, 0xda, 0xf1, 0x0f, 0x71, 0x68, 0x20, 0x3a, 0xa1, 0x5b, 0x85, 0xaa, 0x47, 0xbb, 0xd3, 0xcc, 0x41, 0x69, 0xcb, 0xc1, 0xfe, 0x80, 0xb4, 0x70, 0x0b, 0x62, 0x58, 0x71, 0xed, 0xab, 0xcd, 0x4f, 0xe7, 0x4a, 0x3e, 0x96, 0x55, 0x69, 0xce, 0x24, 0x5c, 0xfc, 0xde, 0x42, 0x09, 0xcc, 0x8a, 0xbc, 0xd6, 0x79, 0x7d, 0x44, 0x18, 0x5b, 0x4f, 0x96, 0xc0, 0x18, 0x1b, 0xbd, 0x27, 0x00, 0x87, 0x83, 0xe9, 0x35, 0x8a, 0x53, 0x94, 0xfe, 0x3a, 0x34, 0xa0, 0x68, 0x71, 0xd3, 0x79, 0xda, 0x35, 0xb2, 0x0b, 0xb5, 0x7e, 0xef, 0x9e, 0x55, 0x24, 0xee, 0x79, 0x12, 0xa6, 0xf4, 0x1b, 0x4a, 0x1f, 0x68, 0x4c, 0x39, 0x19, 0xcf, 0xcd, 0xc0, 0x0f, 0x45, 0x80, 0xba, 0xf9, 0xe0, 0x9d, 0x31, 0x6c, 0xef, 0xa0, 0xf4, 0x65, 0xdc, 0xa5, 0xd8, 0xee, 0xc5, 0x14, 0xe9, 0x5e, 0x5a, 0x57, 0xbb, 0xcd, 0x27, 0xe4, 0x1f, 0x81, 0x19, 0xb2, 0x64, 0xae, 0x14, 0xa3, 0x19, 0xd8, 0xc3, 0x85, 0x9b, 0xab, 0xf1, 0xf4, 0xa6, 0xb6, 0xb7, 0x7e, 0x44, 0x2c, 0x86, 0x1d, 0x6e, 0xe2, 0x8a, 0xd1, 0x2b, 0x82, 0x36, 0x2e, 0x90, 0xdb, 0x0c, 0x36, 0x72, 0xb0, 0xe0, 0xd9, 0xff, 0x58, 0x14, 0x6f, 0xd1, 0x59, 0xaa, 0x8f, 0xa9, 0x9d, 0xc7, 0x55, 0xfc, 0x85, 0xb9, 0x0c, 0xf9, 0x41, 0x92, 0x79, 0xc0, 0x62, 0x4b, 0x93, 0xe7, 0x5e, 0xda, 0x0e, 0xf7, 0xc0, 0x96, 0x95, 0xae, 0x93, 0xbd, 0x72, 0x82, 0x41, 0x93, 0x77, 0xb7, 0x6c, 0xa8, 0xbd, 0xc0, 0x52, 0x1c, 0xfe, 0xe6, 0xf6, 0xd7, 0x29, 0xc3, 0xad, 0xff, 0x89, 0x46, 0x87, 0xb1, 0x77, 0xef, 0x19, 0x52, 0x9a, 0x6b, 0xda, 0xce, 0x70, 0xb6, 0x85, 0xc6, 0xd7, 0xa5, 0xd7, 0x4a, 0x08, 0xe2, 0xa9, 0xe7, 0x24, 0x03, 0x59, 0x75, 0xc8, 0x0d, 0x18, 0xcb, 0x36, 0x94, 0x70, 0xde, 0x72, 0x99, 0xcb, 0xd6, 0xb0, 0xa2, 0x7c, 0x92, 0x32, 0xc7, 0xea, 0xba, 0xc8, 0x6d, 0x50, 0x93, 0xa6, 0x5f, 0xfe, 0x0b, 0x40, 0xd4, 0x0b, 0xef, 0xe8, 0x0b, 0x68, 0xcd, 0x9d, 0xce, 0x1e, 0xa1, 0xe6, 0x57, 0xe4, 0x5e, 0x9c, 0x49, 0x9d, 0x0b, 0x69, 0x0f, 0x74, 0x45, 0x5f, 0xb4, 0x70, 0x96, 0xed, 0x8c, 0x18, 0xd1, 0x51, 0x7f, 0x90, 0x44, 0x29, 0x01, 0xa6, 0xc4, 0x10, 0xb7, 0xf6, 0x41, 0x5f, 0x20, 0xae, 0x48, 0xc5, 0x8a, 0xde, 0x8d, 0x67, 0x5b, 0x6c, 0x05, 0x8d, 0xf1, 0x6a, 0xe7, 0x69, 0x8f, 0xce, 0xae, 0x95, 0xaa, 0x77, 0x1b, 0x4c, 0xd8, 0x8a, 0x0b, 0x3f, 0x22, 0xc5, 0x1f, 0x98, 0xc7, 0x1c, 0x1e, 0xb4, 0x6b, 0x26, 0x4b, 0xf9, 0x7a, 0x30, 0x0e, 0xcb, 0x1f, 0xd2, 0x62, 0x26, 0xad, 0x8e, 0x87, 0xa0, 0x58, 0xcf, 0x3e, 0x70, 0x8e, 0x26, 0x0f, 0x56, 0x6b, 0x68, 0x53, 0x14, 0x04, 0x51, 0x33, 0xf4, 0xa5, 0xe8, 0xfb, 0xc3, 0x45, 0x61, 0xb9, 0xa0, 0xf1, 0xff, 0x93, 0x39, 0xf5, 0x52, 0x31, 0x07, 0x6b, 0x73, 0x6b, 0x6e, 0x11, 0x52, 0x43, 0x19, 0xa2, 0x72, 0xbd, 0x44, 0x53, 0xa0, 0xaf, 0x14, 0x93, 0xda, 0xa0, 0x91, 0x67, 0xe8, 0x46, 0x43, 0xd2, 0x07, 0xa0, 0x2f, 0xee, 0x98, 0xfb, 0x22, 0x3b, 0x01, 0xa9, 0x9a, 0xa5, 0xce, 0xf2, 0xb7, 0x00, 0x1e, 0x47, 0x0f, 0x6f, 0x94, 0xa5, 0xdc, 0x20, 0x8e, 0xdf, 0xc0, 0xcb, 0x8c, 0xf3, 0x11, 0x4a, 0x91, 0x96, 0x00, 0xf0, 0x61, 0x17, 0x2f, 0x0e, 0xfe, 0x03, 0x90, 0x36, 0xbf, 0x4d, 0xdd, 0xbf, 0xd0, 0xd4, 0x5f, 0x91, 0x44, 0x3b, 0xf2, 0x6f, 0x8e, 0x15, 0xed, 0x7d, 0xb8, 0xe5, 0x5f, 0x08, 0x6a, 0x4a, 0x45, 0x83, 0xf4, 0xbd, 0xa0, 0xf5, 0x56, 0x28, 0x4d, 0xcf, 0x71, 0x29, 0x2f, 0xe7, 0x0f, 0xca, 0xa8, 0x25, 0x9b, 0x9f, 0xaf, 0xf3, };
14834 static const u8 ed25519_645_test_vectors_expected_sig[] = {
14835 	0x4f, 0xba, 0x2d, 0x6c, 0xc1, 0xb7, 0x19, 0x3d, 0x35, 0x62, 0xf8, 0xc8, 0xbf, 0xe6, 0x90, 0x5c, 0x82, 0x9d, 0xb2, 0x65, 0xa5, 0x42, 0x7c, 0x5c, 0x26, 0x57, 0x14, 0x78, 0x5b, 0x83, 0xf6, 0x95, 0x14, 0xc5, 0xe3, 0x0e, 0x28, 0xb5, 0x66, 0x84, 0xc8, 0x2d, 0xae, 0x26, 0x37, 0x58, 0x1b, 0xf3, 0xf4, 0xef, 0x27, 0x14, 0x20, 0xbc, 0x7e, 0x60, 0x10, 0x61, 0x3a, 0x38, 0xfa, 0x10, 0x1a, 0x0d, };
14836 static const ec_test_case ed25519_645_test_case = {
14837 	.name = "EDDSA25519-SHA512/wei25519 645",
14838 	.ec_str_p = &wei25519_str_params,
14839 	.priv_key = ed25519_645_test_vectors_priv_key,
14840 	.priv_key_len = sizeof(ed25519_645_test_vectors_priv_key),
14841 	.nn_random = NULL,
14842 	.hash_type = SHA512,
14843 	.msg = (const char *)ed25519_645_test_vectors_message,
14844 	.msglen = sizeof(ed25519_645_test_vectors_message),
14845 	.sig_type = EDDSA25519,
14846 	.exp_sig = ed25519_645_test_vectors_expected_sig,
14847 	.exp_siglen = sizeof(ed25519_645_test_vectors_expected_sig),
14848 	.adata = NULL,
14849 	.adata_len = 0
14850 };
14851 
14852 /************************************************/
14853 static const u8 ed25519_646_test_vectors_priv_key[] = {
14854 	0x10, 0xf0, 0x09, 0xaa, 0x88, 0x7d, 0x91, 0xce, 0xd8, 0x09, 0xaf, 0xe1, 0x92, 0xd7, 0x8e, 0x47, 0x99, 0xd9, 0x03, 0x77, 0x62, 0xf4, 0xa9, 0xd3, 0xa4, 0x29, 0xfd, 0xe0, 0xf3, 0x9f, 0x7b, 0x7a, };
14855 static const u8 ed25519_646_test_vectors_message[] = {
14856 	0x2e, 0xdf, 0x14, 0xd6, 0xcd, 0x56, 0x89, 0x6e, 0xea, 0xa7, 0x70, 0x21, 0x1c, 0x49, 0x84, 0xbe, 0xd8, 0x0e, 0xca, 0x8d, 0x65, 0x34, 0xd5, 0xd5, 0x10, 0x88, 0x4f, 0x55, 0xf1, 0x1f, 0x99, 0xff, 0xa9, 0xf8, 0x9b, 0x58, 0x6f, 0xfe, 0x7b, 0x1e, 0xc7, 0xea, 0xab, 0x6a, 0x9d, 0xc1, 0xa2, 0x4a, 0x3e, 0xe3, 0xc7, 0xa6, 0xab, 0x44, 0xad, 0xe9, 0x91, 0x78, 0x83, 0x26, 0x4e, 0xde, 0x2f, 0x13, 0x61, 0xbe, 0x7d, 0x7a, 0x38, 0x17, 0xf2, 0x9d, 0xec, 0x95, 0x81, 0xc3, 0x19, 0xf1, 0x8f, 0x95, 0xd5, 0xbe, 0x26, 0xd9, 0x11, 0x8b, 0xe6, 0x78, 0x34, 0x00, 0x37, 0xa6, 0x8a, 0xbf, 0xc5, 0xef, 0xbb, 0x9a, 0x3f, 0x3f, 0x38, 0x78, 0xaa, 0xe3, 0x72, 0x1f, 0xfe, 0xf5, 0xbb, 0x6a, 0x26, 0xc7, 0xb1, 0xa3, 0xa5, 0x6d, 0x2b, 0xda, 0x6c, 0x6e, 0x86, 0x0e, 0xb4, 0x1f, 0xd8, 0xd8, 0x37, 0x11, 0x74, 0xd9, 0x1c, 0x74, 0xc5, 0xeb, 0x67, 0xc3, 0x85, 0x5c, 0x63, 0x0d, 0x64, 0x1d, 0x2e, 0x57, 0x1a, 0x9a, 0x51, 0xc6, 0x40, 0x2c, 0xfe, 0x18, 0x42, 0xce, 0xf3, 0x89, 0x80, 0xcb, 0x8d, 0x0a, 0x64, 0xbc, 0xc8, 0x9b, 0xe3, 0x18, 0x9e, 0x68, 0x11, 0xf4, 0x7e, 0x8f, 0x4d, 0x00, 0x63, 0xa5, 0xb1, 0x60, 0x1f, 0x44, 0xfd, 0xa2, 0x0c, 0x1c, 0x4c, 0x2f, 0xc4, 0x9c, 0xbe, 0x27, 0xa4, 0x13, 0x7d, 0xc4, 0x63, 0x8c, 0x2a, 0xd2, 0xd0, 0xa5, 0x47, 0x47, 0x47, 0x22, 0x9c, 0x56, 0x8e, 0x38, 0x05, 0x43, 0x1f, 0xa3, 0x6e, 0xeb, 0xa7, 0x85, 0xf7, 0xb9, 0x78, 0x44, 0xb5, 0xe3, 0x19, 0xfa, 0x6a, 0x09, 0xcc, 0x5a, 0xe8, 0x40, 0x34, 0x74, 0xbb, 0x91, 0xdd, 0x89, 0x6c, 0x1e, 0xc2, 0xba, 0xc7, 0x3d, 0x2e, 0x50, 0x5e, 0xfc, 0x62, 0xbd, 0x50, 0x2b, 0x5c, 0xeb, 0x08, 0xd1, 0x6e, 0x83, 0x2e, 0xc5, 0xdc, 0x4f, 0x98, 0xb5, 0x1b, 0x9d, 0x07, 0x38, 0xb9, 0xfb, 0x28, 0xf3, 0xab, 0xe8, 0x96, 0x6b, 0xf2, 0x23, 0x75, 0xa0, 0xb2, 0x2c, 0x47, 0x1a, 0x9e, 0x58, 0xe3, 0xfd, 0x70, 0x0d, 0xe1, 0x5c, 0x52, 0x96, 0x37, 0x3c, 0x1b, 0xc9, 0xd4, 0x64, 0x0e, 0xb7, 0x81, 0x6e, 0x1d, 0xc9, 0xc8, 0xce, 0x86, 0x19, 0xa8, 0x11, 0x83, 0x00, 0x9e, 0xc9, 0x74, 0x87, 0x1e, 0x8f, 0x0a, 0x97, 0x72, 0xed, 0xe0, 0xa6, 0x38, 0xb3, 0x57, 0x4b, 0xf7, 0x5d, 0x8f, 0x55, 0x98, 0x7f, 0x3c, 0xfa, 0x6f, 0xec, 0x68, 0x97, 0x0b, 0xfe, 0x00, 0xb2, 0x3b, 0x59, 0xfb, 0x5b, 0xf4, 0x99, 0x6e, 0xa5, 0xd7, 0x70, 0x4f, 0xcf, 0x2e, 0xff, 0xcc, 0x0f, 0xd7, 0xf3, 0xd8, 0xe6, 0x05, 0x60, 0x08, 0x09, 0x7f, 0x26, 0xca, 0xff, 0xd5, 0x41, 0x5a, 0x28, 0x2a, 0x27, 0x6a, 0x9b, 0x26, 0x45, 0xe5, 0xca, 0xb1, 0x29, 0x68, 0x87, 0x2e, 0xb0, 0x52, 0xf4, 0xd7, 0xc1, 0x0c, 0xc7, 0xc2, 0x1d, 0x51, 0x61, 0x81, 0x8b, 0xb4, 0x4c, 0xc8, 0x56, 0xb0, 0xde, 0x76, 0x9d, 0x55, 0x9c, 0x55, 0xdf, 0x64, 0xad, 0x9a, 0xdc, 0x16, 0xc0, 0xac, 0x65, 0x83, 0x8f, 0x66, 0x0d, 0xa8, 0x13, 0x86, 0xb7, 0x0b, 0x93, 0x52, 0x5e, 0xc2, 0xf4, 0x0f, 0x6f, 0x63, 0xf8, 0xea, 0x5d, 0x48, 0x30, 0xb9, 0x64, 0x6c, 0x46, 0x18, 0x3b, 0xb4, 0xe6, 0xf2, 0x70, 0x47, 0xbd, 0xa2, 0xa5, 0x46, 0xbd, 0x34, 0xbd, 0x4d, 0xb5, 0xfb, 0x88, 0xfd, 0x8a, 0xb7, 0xc7, 0x5f, 0x65, 0x2e, 0x15, 0xd5, 0xaa, 0xa6, 0xb4, 0x6a, 0x8a, 0xcf, 0x6e, 0x44, 0x8b, 0xf2, 0xdd, 0x64, 0xde, 0xe3, 0xc1, 0x05, 0x64, 0x7c, 0x7f, 0x83, 0xad, 0x20, 0x0d, 0x80, 0x97, 0xc4, 0x44, 0xa1, 0x58, 0xd8, 0x5a, 0x54, 0xf0, 0xe5, 0xdb, 0xb1, 0x2b, 0x43, 0xde, 0x94, 0x3a, 0xf1, 0xa8, 0x18, 0x56, 0xac, 0x96, 0x9f, 0x52, 0xa0, 0xbd, 0x45, 0x43, 0x81, 0xbd, 0x26, 0x50, 0x41, 0xa2, 0x69, 0x1d, 0x1a, 0x4a, 0x0d, 0x81, 0x9f, 0xa7, 0x90, 0x92, 0xc8, 0x80, 0x35, 0x21, 0xfa, 0x53, 0x68, 0x9a, 0xb8, 0x52, 0xf1, 0xfb, 0xab, 0xe0, 0x0c, 0x94, 0xb7, 0xf6, 0x82, 0xd1, 0x21, 0xcf, 0xf5, 0x43, 0x91, 0x32, 0x25, 0x29, 0xc8, 0xd5, 0xad, 0x7b, 0xbb, 0x98, 0xea, 0xfe, 0x30, 0x0a, 0xb9, 0x22, 0xf1, 0xc8, 0x92, 0x40, 0xa1, 0xe6, 0x33, 0xcf, 0x56, 0xa7, 0xb0, 0x2f, 0x74, 0xa2, 0x92, 0x14, 0xe5, 0x69, 0xa0, 0x57, 0xbd, 0x58, 0x5e, 0x40, 0x4d, 0x7c, 0xd5, 0x35, 0x20, 0x41, 0x45, 0x6e, 0x6c, 0xf9, 0x0c, 0x15, 0x34, 0x2e, 0x02, 0x56, 0x70, 0xf4, 0xfc, 0xcd, 0xf9, 0x87, 0x83, 0xb6, 0x85, 0x32, 0x14, 0xca, 0xc3, 0xfa, 0x80, 0x8a, 0x66, 0xc2, 0x7b, 0x65, 0x3c, };
14857 static const u8 ed25519_646_test_vectors_expected_sig[] = {
14858 	0xc3, 0x7b, 0xb7, 0xb7, 0x3b, 0x11, 0x05, 0xbe, 0x08, 0x6f, 0xf3, 0x07, 0x69, 0x72, 0x07, 0x72, 0x62, 0xdf, 0x4d, 0x73, 0x32, 0xf6, 0x08, 0xc7, 0xb2, 0xb9, 0xd9, 0x78, 0xd4, 0x74, 0xcb, 0xbc, 0x27, 0x10, 0x46, 0x08, 0x00, 0x35, 0xf3, 0x96, 0xee, 0x36, 0x47, 0x9b, 0x7a, 0x67, 0x11, 0xc6, 0x8e, 0x25, 0x61, 0xc7, 0x41, 0xc0, 0xec, 0x5f, 0xc9, 0xec, 0xa1, 0x73, 0x4e, 0x81, 0x1f, 0x04, };
14859 static const ec_test_case ed25519_646_test_case = {
14860 	.name = "EDDSA25519-SHA512/wei25519 646",
14861 	.ec_str_p = &wei25519_str_params,
14862 	.priv_key = ed25519_646_test_vectors_priv_key,
14863 	.priv_key_len = sizeof(ed25519_646_test_vectors_priv_key),
14864 	.nn_random = NULL,
14865 	.hash_type = SHA512,
14866 	.msg = (const char *)ed25519_646_test_vectors_message,
14867 	.msglen = sizeof(ed25519_646_test_vectors_message),
14868 	.sig_type = EDDSA25519,
14869 	.exp_sig = ed25519_646_test_vectors_expected_sig,
14870 	.exp_siglen = sizeof(ed25519_646_test_vectors_expected_sig),
14871 	.adata = NULL,
14872 	.adata_len = 0
14873 };
14874 
14875 /************************************************/
14876 static const u8 ed25519_647_test_vectors_priv_key[] = {
14877 	0x45, 0x78, 0xc6, 0x5a, 0x7c, 0xa4, 0x8f, 0x27, 0x74, 0x05, 0x0a, 0x7b, 0x0c, 0xe7, 0xa4, 0xfd, 0x5a, 0xd4, 0xe6, 0x96, 0xb2, 0xb8, 0xaf, 0x23, 0x96, 0x16, 0x4a, 0x1c, 0x7e, 0x1b, 0x7b, 0xd7, };
14878 static const u8 ed25519_647_test_vectors_message[] = {
14879 	0x50, 0x6f, 0x32, 0xb9, 0x68, 0x14, 0x24, 0x3e, 0x4d, 0xd8, 0x87, 0x0a, 0x8f, 0xd6, 0x0d, 0xde, 0xf0, 0x9b, 0xb8, 0xc5, 0x63, 0x15, 0x10, 0x70, 0xd9, 0xbc, 0xb2, 0xb1, 0x60, 0xa3, 0xea, 0xbd, 0x71, 0xa0, 0x44, 0xd7, 0x1e, 0xc9, 0x3f, 0xba, 0x95, 0x28, 0x8e, 0xd6, 0xfe, 0x1a, 0x7b, 0x92, 0x16, 0x51, 0x60, 0x43, 0x07, 0xd6, 0x5a, 0x45, 0xec, 0x5d, 0x3f, 0x26, 0x31, 0xac, 0xe4, 0x0e, 0x58, 0xd5, 0x3c, 0x72, 0xe5, 0x26, 0x88, 0x6e, 0x16, 0x97, 0x2f, 0x6e, 0x0d, 0xb9, 0x4d, 0x57, 0xb5, 0x56, 0x34, 0xfd, 0x39, 0xd5, 0x5e, 0x9b, 0xb7, 0xf2, 0x12, 0xaf, 0xab, 0x00, 0xf7, 0x74, 0x64, 0x09, 0x26, 0x7e, 0x8d, 0x56, 0x5f, 0xf5, 0xc2, 0x25, 0x73, 0x33, 0xc3, 0xd0, 0x41, 0x52, 0x17, 0x4f, 0xe1, 0x2d, 0xe6, 0xa5, 0x7b, 0xea, 0x05, 0x7d, 0xc2, 0x19, 0xe2, 0xfb, 0xa5, 0xf1, 0x91, 0xed, 0x81, 0x41, 0xc0, 0x18, 0x96, 0x9d, 0xe1, 0x94, 0x72, 0xd6, 0xaa, 0xf7, 0x63, 0xf1, 0x9e, 0xc5, 0x54, 0x70, 0x2b, 0xb3, 0xdc, 0xbe, 0x13, 0xca, 0x9b, 0x23, 0xb2, 0x41, 0x8c, 0x99, 0xe7, 0x18, 0x38, 0xa8, 0x8c, 0xf4, 0x54, 0x72, 0x8c, 0xf9, 0x20, 0x8a, 0x16, 0xc8, 0x4e, 0xa3, 0x98, 0x29, 0xb4, 0xba, 0x9b, 0x4c, 0x77, 0xe1, 0x76, 0x11, 0x2b, 0xfe, 0x1b, 0xf3, 0x5f, 0x95, 0xc4, 0x02, 0x8c, 0x7d, 0xb8, 0x0b, 0x36, 0xfa, 0xa2, 0x9d, 0x2b, 0x89, 0xe9, 0xe8, 0x62, 0xf3, 0x10, 0x00, 0x06, 0x5f, 0x13, 0x9b, 0x3d, 0xa7, 0x7d, 0x9d, 0x86, 0x85, 0x30, 0x57, 0x4b, 0x7e, 0x39, 0x1e, 0xd9, 0x7b, 0x34, 0xf8, 0x78, 0x16, 0x4f, 0x6b, 0x8d, 0x87, 0xb4, 0x06, 0xc7, 0xdc, 0x78, 0x60, 0xa5, 0x17, 0x5f, 0x92, 0x0e, 0x5a, 0x62, 0xdc, 0x1f, 0xc8, 0x2e, 0xd8, 0x45, 0x25, 0x43, 0xb1, 0x07, 0x36, 0x0d, 0x35, 0xd2, 0xb4, 0xc4, 0x23, 0x9e, 0xab, 0x46, 0x6d, 0x32, 0xbf, 0xda, 0x34, 0xf5, 0x10, 0x37, 0xa6, 0xfa, 0xe7, 0x6f, 0x6d, 0x8b, 0x83, 0xe8, 0xf7, 0xf4, 0x89, 0xdd, 0x4c, 0x1b, 0x49, 0xc3, 0x8f, 0x53, 0x57, 0x6e, 0x62, 0x17, 0x2c, 0x17, 0xde, 0xe3, 0x66, 0x5f, 0xde, 0x8c, 0xbf, 0x01, 0x5a, 0xf9, 0x66, 0x5b, 0x0f, 0x1d, 0xa2, 0xfb, 0x77, 0xb1, 0x34, 0xf0, 0x4b, 0xe2, 0x71, 0xe4, 0x02, 0xf3, 0x15, 0x37, 0xc2, 0xfc, 0x05, 0xc2, 0xf9, 0xb6, 0xfc, 0x3f, 0xfe, 0x47, 0xde, 0x33, 0x69, 0x13, 0x38, 0x67, 0xc6, 0x9d, 0x10, 0xe7, 0xf5, 0x37, 0xba, 0xe4, 0x56, 0x7d, 0x46, 0x8e, 0x0f, 0x2e, 0xd8, 0x06, 0xfe, 0x33, 0x5f, 0x93, 0x9c, 0x75, 0x99, 0x4f, 0x36, 0x3c, 0xe3, 0xb7, 0x0d, 0xaa, 0x7d, 0x5b, 0xd2, 0x31, 0x7c, 0x83, 0x38, 0x51, 0xfd, 0x8c, 0xc9, 0x72, 0x51, 0xec, 0x41, 0x90, 0x23, 0xd9, 0xd0, 0x17, 0x4d, 0x84, 0xd5, 0x60, 0x9a, 0x69, 0x18, 0xa1, 0x74, 0x0e, 0xb1, 0xe3, 0x09, 0xbd, 0x12, 0x73, 0x66, 0xde, 0xb9, 0xc5, 0xab, 0x12, 0x99, 0x2e, 0x99, 0x02, 0xe0, 0x15, 0xfe, 0x58, 0xd6, 0xad, 0xbf, 0x52, 0xd2, 0x2a, 0x76, 0x0a, 0xcd, 0x63, 0xe1, 0xed, 0xd8, 0xf1, 0x38, 0xe9, 0xfb, 0x01, 0x37, 0x18, 0x86, 0x01, 0xe1, 0x97, 0x8e, 0x7d, 0x04, 0xfb, 0x2a, 0xda, 0x2b, 0x2a, 0xee, 0x12, 0xf4, 0x9f, 0x28, 0x36, 0xc6, 0x84, 0x2d, 0x88, 0xcf, 0x48, 0xc8, 0x66, 0xe3, 0xd3, 0x3f, 0xcd, 0x26, 0x9c, 0x27, 0x5c, 0x89, 0xc2, 0x5e, 0x36, 0x69, 0xca, 0x90, 0xde, 0x7b, 0x67, 0xa7, 0xe7, 0xa3, 0x82, 0xcb, 0x7e, 0xfa, 0x47, 0xe9, 0xc2, 0xbf, 0x76, 0x57, 0x1c, 0x79, 0xa2, 0x50, 0x85, 0xef, 0x02, 0x04, 0x87, 0x15, 0x2f, 0x06, 0xbf, 0xa1, 0x33, 0x01, 0x5a, 0x1b, 0x8f, 0x1c, 0x0f, 0x6a, 0x9f, 0x0e, 0xae, 0x1b, 0xa6, 0x2b, 0xf1, 0x04, 0xf1, 0xc1, 0x6a, 0xc1, 0x4e, 0x1e, 0x96, 0xc4, 0xeb, 0xdf, 0x06, 0x1e, 0x0c, 0xc7, 0x10, 0x1d, 0x38, 0xda, 0x7e, 0x9e, 0x09, 0x94, 0xda, 0xf0, 0xf3, 0x22, 0xaa, 0x3c, 0xfe, 0xf9, 0x1b, 0x61, 0x6c, 0x2d, 0x00, 0x06, 0x89, 0xab, 0x18, 0xed, 0x45, 0x26, 0x8d, 0xcd, 0x27, 0x50, 0x94, 0xf6, 0x56, 0xba, 0x3c, 0xf5, 0x15, 0x26, 0x10, 0x24, 0x74, 0x1f, 0x74, 0x44, 0xab, 0x7f, 0xc4, 0xde, 0xcc, 0xe1, 0x67, 0x56, 0x03, 0x2a, 0x1b, 0xe2, 0x70, 0xff, 0x0b, 0x03, 0x17, 0x54, 0x2b, 0xa0, 0x26, 0x62, 0x26, 0x0a, 0x37, 0x6f, 0xc9, 0x12, 0xcb, 0xb0, 0x29, 0xca, 0xc5, 0x45, 0x15, 0xf5, 0xa5, 0x51, 0x36, 0x4f, 0x6a, 0x99, 0xff, 0xad, 0x0b, 0x9c, 0xbc, 0xd0, 0xe6, 0x93, 0xb7, 0xa5, 0x21, 0xcb, };
14880 static const u8 ed25519_647_test_vectors_expected_sig[] = {
14881 	0xa1, 0xc2, 0x42, 0xb4, 0x5e, 0x94, 0xfd, 0x18, 0x0f, 0x05, 0x4c, 0x71, 0x01, 0xe5, 0x5b, 0x39, 0x65, 0x68, 0xf4, 0x83, 0xdb, 0x6f, 0x0d, 0xfc, 0x41, 0x68, 0xb6, 0x9b, 0x59, 0xd3, 0x85, 0x81, 0x4c, 0x19, 0xeb, 0x30, 0x75, 0x23, 0x7d, 0x1f, 0xbb, 0x1f, 0xee, 0xbb, 0xfe, 0xa5, 0x0c, 0x56, 0x81, 0x3c, 0x8c, 0x39, 0xc2, 0x27, 0x52, 0xe0, 0x2d, 0xb7, 0xe5, 0x7f, 0x3e, 0x3f, 0xbf, 0x0d, };
14882 static const ec_test_case ed25519_647_test_case = {
14883 	.name = "EDDSA25519-SHA512/wei25519 647",
14884 	.ec_str_p = &wei25519_str_params,
14885 	.priv_key = ed25519_647_test_vectors_priv_key,
14886 	.priv_key_len = sizeof(ed25519_647_test_vectors_priv_key),
14887 	.nn_random = NULL,
14888 	.hash_type = SHA512,
14889 	.msg = (const char *)ed25519_647_test_vectors_message,
14890 	.msglen = sizeof(ed25519_647_test_vectors_message),
14891 	.sig_type = EDDSA25519,
14892 	.exp_sig = ed25519_647_test_vectors_expected_sig,
14893 	.exp_siglen = sizeof(ed25519_647_test_vectors_expected_sig),
14894 	.adata = NULL,
14895 	.adata_len = 0
14896 };
14897 
14898 /************************************************/
14899 static const u8 ed25519_648_test_vectors_priv_key[] = {
14900 	0xc2, 0x1e, 0x70, 0xc4, 0x6e, 0xde, 0x66, 0xe6, 0x8a, 0x88, 0x73, 0xbb, 0xc6, 0x4b, 0xa5, 0x12, 0x09, 0x30, 0x3a, 0x0a, 0xc4, 0xfc, 0x49, 0xb1, 0xd8, 0x3e, 0x81, 0x93, 0xad, 0x46, 0xc0, 0x37, };
14901 static const u8 ed25519_648_test_vectors_message[] = {
14902 	0xf5, 0x5a, 0xa5, 0x70, 0xce, 0x4f, 0xc9, 0x5f, 0x73, 0xf5, 0x17, 0x20, 0xd2, 0x54, 0xe4, 0x69, 0x5f, 0xcd, 0xc8, 0x1a, 0xaa, 0x04, 0x01, 0x30, 0xc7, 0x68, 0x7f, 0x03, 0x9b, 0x8b, 0xa5, 0x9e, 0xd8, 0x57, 0xce, 0xb2, 0x9c, 0x12, 0x10, 0x25, 0xa8, 0x57, 0xfe, 0xac, 0xb4, 0xa0, 0x1f, 0x38, 0xe0, 0x11, 0x78, 0x31, 0x0a, 0xe6, 0xe3, 0x5c, 0x99, 0x8e, 0xbf, 0x89, 0xdd, 0x79, 0x05, 0x7b, 0x4a, 0xfc, 0x6d, 0xb3, 0x40, 0x60, 0x1c, 0x81, 0x70, 0x3c, 0x87, 0xa8, 0xc4, 0x0e, 0x5c, 0xeb, 0xb0, 0x44, 0x1d, 0xf7, 0x8a, 0x6d, 0xe1, 0x3a, 0x44, 0x7c, 0xb0, 0x16, 0xc6, 0x5e, 0x74, 0x1b, 0xb7, 0xdf, 0x30, 0x4d, 0x83, 0x05, 0x6b, 0x72, 0xc6, 0x82, 0xc7, 0x31, 0xfa, 0xc0, 0xa0, 0xc7, 0x0b, 0x78, 0x11, 0xca, 0x14, 0xa5, 0x01, 0x54, 0x61, 0x30, 0x99, 0xc2, 0xc4, 0x37, 0x52, 0x1c, 0x40, 0x4b, 0x63, 0x61, 0xde, 0x36, 0x21, 0xf8, 0xea, 0x56, 0xb0, 0x8e, 0xbf, 0xdb, 0x07, 0xb4, 0xf2, 0xbb, 0x8b, 0xa2, 0xec, 0xc1, 0x64, 0x33, 0x6d, 0xa8, 0xef, 0xc9, 0x42, 0x76, 0x6e, 0xf0, 0xc7, 0x4d, 0xfd, 0x3b, 0x49, 0xe0, 0x87, 0xe9, 0xa2, 0x7a, 0xe5, 0x4a, 0x7a, 0x2b, 0x98, 0x28, 0x1b, 0x9a, 0xf9, 0x3d, 0xc1, 0x1a, 0xa2, 0xf0, 0x92, 0x24, 0xab, 0x5a, 0x73, 0x0f, 0x02, 0x18, 0xf4, 0xa6, 0xe1, 0xea, 0x48, 0x85, 0xa7, 0x7f, 0xbd, 0x93, 0xa1, 0xc5, 0x82, 0x77, 0xd9, 0xe0, 0x1b, 0xe7, 0x3a, 0x25, 0xcd, 0xa9, 0x18, 0xfc, 0x27, 0xdd, 0xdb, 0x45, 0x3a, 0x5d, 0xa6, 0x90, 0x2a, 0xd0, 0x2b, 0xa0, 0x57, 0x75, 0xc6, 0x7e, 0x07, 0xbe, 0xa4, 0xdf, 0x86, 0x91, 0x34, 0x66, 0x74, 0x43, 0x65, 0xc1, 0x32, 0x6e, 0x0a, 0xb5, 0xe1, 0x25, 0x4c, 0x17, 0x96, 0x74, 0x47, 0xd5, 0x91, 0xba, 0x5e, 0xd1, 0xb6, 0x3a, 0x42, 0x54, 0x3b, 0x87, 0xfe, 0xd4, 0x14, 0x59, 0xa0, 0x89, 0xbc, 0xea, 0xff, 0x21, 0x98, 0x02, 0xa8, 0x7a, 0x87, 0x2a, 0x76, 0x3e, 0x69, 0x23, 0x33, 0xce, 0x1c, 0xc7, 0x39, 0x78, 0x25, 0x08, 0x4b, 0x2b, 0x83, 0x1e, 0x93, 0xd8, 0x0d, 0x67, 0x37, 0xf3, 0x29, 0x80, 0xf2, 0xf3, 0xae, 0x82, 0xc6, 0x21, 0x90, 0xfe, 0x3f, 0xa7, 0x00, 0xc5, 0xb7, 0x32, 0x9d, 0x6d, 0x50, 0x04, 0x2b, 0xdf, 0x83, 0x1f, 0x37, 0x54, 0x8f, 0xcc, 0x80, 0xb1, 0x1f, 0x57, 0xcf, 0x20, 0xf6, 0x7a, 0x3b, 0xb6, 0x51, 0xa7, 0xbe, 0xff, 0xcc, 0x48, 0xb7, 0x0d, 0x17, 0xeb, 0x60, 0xf7, 0x25, 0x9c, 0xc5, 0x3b, 0xf7, 0xff, 0x60, 0x80, 0xeb, 0x2b, 0xd0, 0x92, 0x3b, 0x04, 0x83, 0xaa, 0x30, 0x65, 0xa8, 0x95, 0x5f, 0x01, 0xd2, 0x3b, 0xa8, 0x09, 0x51, 0xe0, 0xae, 0xfd, 0x2a, 0x93, 0x72, 0x19, 0x15, 0x72, 0xbc, 0x52, 0x91, 0x6a, 0xa2, 0x2a, 0x2a, 0xec, 0x39, 0x37, 0x67, 0xfa, 0xfd, 0x08, 0x68, 0x39, 0xe2, 0x36, 0xfe, 0x04, 0x60, 0xce, 0x6d, 0x63, 0x9c, 0x7c, 0xe6, 0x9f, 0xe7, 0xf9, 0xd3, 0xaa, 0xd2, 0x13, 0x05, 0x73, 0x44, 0x35, 0x70, 0x44, 0x3b, 0xe6, 0xba, 0xb9, 0x3a, 0x06, 0xa5, 0x4b, 0x8a, 0xc2, 0x9b, 0xf3, 0x3f, 0xf9, 0x94, 0x9b, 0xc9, 0x21, 0x58, 0xe6, 0x92, 0x4b, 0x6b, 0x68, 0xec, 0xda, 0x5f, 0x6f, 0x3a, 0xaf, 0x42, 0xb3, 0xd2, 0x2d, 0xf6, 0xd5, 0xe6, 0x7d, 0x5c, 0xb3, 0xab, 0x71, 0xeb, 0x8e, 0xe0, 0xb0, 0xe6, 0x67, 0x32, 0xe1, 0xda, 0xca, 0x6c, 0xd6, 0x0d, 0x9a, 0xa7, 0x43, 0x05, 0xfc, 0xd5, 0x70, 0x07, 0x6d, 0x22, 0x8d, 0x44, 0x6d, 0x5e, 0xe5, 0x42, 0xb1, 0x04, 0x88, 0xbf, 0x8a, 0xa9, 0x88, 0xf4, 0x51, 0xfa, 0xeb, 0xe7, 0x4a, 0xb6, 0x69, 0xd6, 0x04, 0xd9, 0xdd, 0xb1, 0x51, 0x06, 0x62, 0x0e, 0xa0, 0x2e, 0x8d, 0xb3, 0x8c, 0xe6, 0x39, 0xb5, 0x74, 0x78, 0x12, 0xbb, 0x90, 0x48, 0xee, 0x8b, 0xf7, 0x2b, 0x1a, 0x95, 0x1a, 0x05, 0xdf, 0xfa, 0xc9, 0x54, 0x17, 0xcb, 0x43, 0xb0, 0x6d, 0xce, 0x61, 0xee, 0x3d, 0xa6, 0xf2, 0x83, 0x2e, 0xe8, 0x3b, 0x2e, 0x72, 0x88, 0xdd, 0xd6, 0x2e, 0xeb, 0x58, 0x93, 0xf7, 0xf2, 0xf6, 0xc8, 0x09, 0x0d, 0x99, 0xe3, 0x36, 0xc9, 0xf9, 0x06, 0x9e, 0x18, 0x15, 0x98, 0x58, 0x41, 0xbd, 0xd5, 0x05, 0xb5, 0xf8, 0x3d, 0x89, 0x5e, 0x87, 0x95, 0x93, 0xda, 0xde, 0xe7, 0x2c, 0xeb, 0x97, 0x65, 0x69, 0x9b, 0xf8, 0x0b, 0xd0, 0x6a, 0x5c, 0x55, 0x33, 0x1b, 0x25, 0x45, 0x52, 0x7d, 0x0c, 0x7c, 0xae, 0xce, 0x96, 0x58, 0x4c, 0xe3, 0xec, 0x7f, 0xe0, 0x22, 0x60, 0xf2, 0x0b, 0x8a, 0x1c, 0x06, 0x35, 0x76, 0x3f, 0xf4, };
14903 static const u8 ed25519_648_test_vectors_expected_sig[] = {
14904 	0x0a, 0xe3, 0x43, 0xbb, 0x84, 0xe3, 0xa2, 0x99, 0x07, 0x8e, 0x24, 0x34, 0xba, 0x22, 0x00, 0x22, 0xf3, 0x16, 0x0f, 0x96, 0x8a, 0xc0, 0x44, 0x82, 0xbf, 0x8c, 0xad, 0x13, 0xb4, 0x23, 0xf2, 0x67, 0x0f, 0x01, 0xfb, 0x5f, 0x7b, 0x32, 0xc5, 0x97, 0x52, 0x0f, 0x84, 0x60, 0x7e, 0x0f, 0x79, 0xc0, 0x75, 0xfa, 0x70, 0x78, 0xe6, 0xe6, 0x9d, 0x3c, 0xec, 0x31, 0x92, 0x65, 0xd4, 0x66, 0x08, 0x0b, };
14905 static const ec_test_case ed25519_648_test_case = {
14906 	.name = "EDDSA25519-SHA512/wei25519 648",
14907 	.ec_str_p = &wei25519_str_params,
14908 	.priv_key = ed25519_648_test_vectors_priv_key,
14909 	.priv_key_len = sizeof(ed25519_648_test_vectors_priv_key),
14910 	.nn_random = NULL,
14911 	.hash_type = SHA512,
14912 	.msg = (const char *)ed25519_648_test_vectors_message,
14913 	.msglen = sizeof(ed25519_648_test_vectors_message),
14914 	.sig_type = EDDSA25519,
14915 	.exp_sig = ed25519_648_test_vectors_expected_sig,
14916 	.exp_siglen = sizeof(ed25519_648_test_vectors_expected_sig),
14917 	.adata = NULL,
14918 	.adata_len = 0
14919 };
14920 
14921 /************************************************/
14922 static const u8 ed25519_649_test_vectors_priv_key[] = {
14923 	0xf2, 0xc1, 0x05, 0x77, 0xf7, 0xdf, 0x77, 0xf0, 0xc1, 0x15, 0x7a, 0x8c, 0x33, 0x1a, 0x7b, 0xd2, 0xae, 0x63, 0x86, 0x67, 0x0e, 0xb6, 0x5f, 0x0f, 0xae, 0x12, 0x23, 0x31, 0x69, 0x0f, 0x82, 0x8a, };
14924 static const u8 ed25519_649_test_vectors_message[] = {
14925 	0x38, 0xea, 0x1e, 0x02, 0x8a, 0x49, 0x3d, 0x1c, 0x60, 0xec, 0x70, 0x74, 0x9f, 0x14, 0xd4, 0x36, 0xeb, 0x3a, 0x2b, 0x2d, 0xe5, 0x4f, 0x21, 0x3d, 0x01, 0xa6, 0x45, 0xb5, 0x80, 0x43, 0x0e, 0xcd, 0x8e, 0xce, 0x6b, 0x55, 0x69, 0xcc, 0x01, 0x7a, 0x49, 0x43, 0xe5, 0x59, 0x5c, 0x5e, 0xd6, 0xe4, 0x8c, 0x94, 0x43, 0xf2, 0xfa, 0x5e, 0xb2, 0x22, 0x7f, 0xfe, 0x56, 0xd2, 0x11, 0xf2, 0x69, 0xbc, 0x8f, 0x6f, 0xa9, 0xee, 0x8c, 0xd5, 0x6f, 0x6b, 0x84, 0x70, 0x53, 0x92, 0x08, 0xaf, 0xe2, 0x9a, 0xb0, 0xa1, 0x95, 0x04, 0x4d, 0x95, 0x7b, 0x31, 0xf9, 0x3e, 0x18, 0x4a, 0x9c, 0xbe, 0xf1, 0xa1, 0x4e, 0x14, 0xf8, 0x08, 0xbb, 0xf5, 0x89, 0xac, 0x77, 0x70, 0x08, 0x4f, 0x99, 0x8e, 0x1b, 0x25, 0x4d, 0xa5, 0x9c, 0xa6, 0xd3, 0xe6, 0x2e, 0x7b, 0xe1, 0x79, 0x07, 0x16, 0xd2, 0x56, 0x0f, 0x01, 0x5f, 0x39, 0x9c, 0xbb, 0xce, 0x48, 0xcf, 0xd0, 0x39, 0x1e, 0xad, 0x19, 0x93, 0x44, 0x6f, 0x6b, 0x24, 0x93, 0x97, 0x7d, 0x93, 0xd7, 0xb0, 0x9a, 0x07, 0xa7, 0x9a, 0x59, 0xce, 0x15, 0xdc, 0xe7, 0xa1, 0xda, 0x9c, 0x64, 0x6f, 0x45, 0xaf, 0x2c, 0xca, 0xd5, 0x5b, 0xa1, 0x58, 0xe6, 0x38, 0xc4, 0xa3, 0x0c, 0x5d, 0x30, 0xe9, 0xac, 0x6e, 0x3a, 0x33, 0x39, 0xc2, 0x43, 0x42, 0x6d, 0x86, 0x49, 0x1b, 0x2d, 0x92, 0xda, 0xc1, 0x47, 0x8e, 0x8d, 0x74, 0xff, 0x0b, 0xf1, 0x49, 0xbd, 0xb5, 0xe0, 0x9e, 0x3f, 0xb6, 0xb8, 0x26, 0x2e, 0xb0, 0x68, 0x79, 0x81, 0x55, 0x4a, 0xe2, 0xcb, 0x47, 0x19, 0x63, 0x39, 0x07, 0x9d, 0xa0, 0xa1, 0xa5, 0x72, 0x39, 0xc1, 0x9b, 0xf7, 0x81, 0xf6, 0x2f, 0xda, 0xf4, 0xe3, 0x15, 0x60, 0xa8, 0x43, 0x17, 0xef, 0x03, 0x04, 0x92, 0xcf, 0x1b, 0xb1, 0x30, 0x5b, 0xa8, 0x51, 0x8e, 0xba, 0xf2, 0xb4, 0x34, 0xd3, 0x64, 0x16, 0x72, 0xc8, 0xf6, 0xea, 0x2d, 0xef, 0xa6, 0x96, 0xdc, 0x7e, 0x4f, 0x39, 0xef, 0xc0, 0x8d, 0x28, 0x8d, 0x1c, 0x96, 0x6a, 0x6c, 0x71, 0x48, 0xc0, 0x12, 0xee, 0xc4, 0x39, 0xf7, 0xe1, 0x2d, 0xba, 0xb5, 0xb8, 0x7c, 0xfa, 0x44, 0xc9, 0xae, 0x19, 0x00, 0xf8, 0x38, 0x6f, 0x24, 0x44, 0x4e, 0x10, 0x92, 0xb2, 0x3a, 0x27, 0x4c, 0x13, 0x8e, 0x95, 0xc6, 0x61, 0xe9, 0x37, 0x7e, 0x8a, 0xd2, 0xd1, 0xfc, 0xaf, 0x19, 0x39, 0xec, 0x9a, 0x63, 0x2a, 0x87, 0x3f, 0x7e, 0xad, 0xbe, 0x68, 0x7b, 0x4a, 0x03, 0x3b, 0x92, 0xa4, 0x77, 0xf2, 0xe0, 0x2e, 0x9e, 0xd9, 0x2c, 0xe4, 0xf9, 0x5c, 0xf1, 0x70, 0xb3, 0x90, 0x15, 0x18, 0xa0, 0x62, 0x14, 0x3e, 0x56, 0xdb, 0x05, 0x4d, 0xf4, 0xe4, 0x43, 0x15, 0x44, 0x78, 0x5a, 0x6d, 0xfa, 0x24, 0xee, 0xc0, 0xf0, 0xde, 0x7a, 0x69, 0x9c, 0xcf, 0x28, 0x6d, 0xad, 0xfa, 0xd8, 0x59, 0x03, 0x61, 0x22, 0x50, 0x76, 0x4f, 0x25, 0xcd, 0xea, 0x81, 0x27, 0xd0, 0x07, 0x8d, 0x55, 0x48, 0x25, 0xea, 0x6e, 0x73, 0x71, 0xc4, 0x38, 0xbc, 0x46, 0xf2, 0x9f, 0xb8, 0x93, 0x7f, 0x8d, 0x9a, 0x39, 0xcf, 0x88, 0x49, 0x05, 0x2d, 0x43, 0xec, 0xbf, 0xf6, 0xc4, 0xa3, 0x76, 0x2a, 0x5f, 0x40, 0x0c, 0x15, 0x14, 0xe8, 0x5e, 0x91, 0x38, 0x4f, 0xef, 0x9b, 0x40, 0xf4, 0x31, 0x4e, 0x22, 0x3a, 0x9d, 0x68, 0xc5, 0x26, 0xac, 0xc7, 0x02, 0x27, 0xd6, 0x2b, 0x8b, 0x63, 0x7a, 0x34, 0x2d, 0xf1, 0x13, 0xd3, 0x18, 0x20, 0x2c, 0x51, 0xed, 0xd3, 0xc1, 0xef, 0xd1, 0xff, 0x20, 0xb1, 0xff, 0x07, 0x8b, 0x32, 0x06, 0x8e, 0x79, 0x4d, 0x92, 0x81, 0x33, 0x03, 0x7f, 0x1e, 0x3a, 0x34, 0x68, 0x9e, 0x62, 0x9e, 0x43, 0xfd, 0x2b, 0x8e, 0x88, 0xea, 0xb5, 0x0d, 0x7e, 0x7a, 0xb0, 0x64, 0x70, 0x14, 0xab, 0x5e, 0x4a, 0xd5, 0x82, 0x00, 0x65, 0x67, 0xef, 0xf7, 0x2b, 0x5a, 0xf2, 0xda, 0xc5, 0x36, 0x89, 0x2c, 0xcc, 0x87, 0x1f, 0x8a, 0x80, 0xb5, 0xcb, 0x79, 0xd9, 0x0b, 0xcc, 0x6b, 0x77, 0xd4, 0xcd, 0x08, 0xf8, 0x76, 0x18, 0x4e, 0xf5, 0x8c, 0x06, 0x4a, 0xe4, 0x30, 0xbb, 0x79, 0xa6, 0xb9, 0xe9, 0x6b, 0x0a, 0xd8, 0x73, 0x68, 0xaa, 0x83, 0x8a, 0x8d, 0xcc, 0xff, 0xac, 0x0c, 0xd8, 0xce, 0x9e, 0xa0, 0xd0, 0xec, 0x4c, 0x4b, 0x0f, 0x42, 0x67, 0x34, 0x16, 0x65, 0x9c, 0x98, 0x49, 0x92, 0xcf, 0x53, 0xb1, 0xe4, 0x45, 0x43, 0x10, 0x07, 0x64, 0x0d, 0x47, 0xec, 0xe2, 0x6d, 0xee, 0x4a, 0x29, 0x43, 0xaa, 0x70, 0x97, 0xdd, 0x35, 0x6c, 0xff, 0x47, 0x54, 0xf2, 0x1a, 0xc0, 0x7f, 0x6b, 0x3f, 0x73, 0xc4, 0x69, 0x05, 0x55, 0x12, 0xf3, 0x7a, 0xba, };
14926 static const u8 ed25519_649_test_vectors_expected_sig[] = {
14927 	0x60, 0xb7, 0x03, 0x11, 0x5a, 0x32, 0x2a, 0xb8, 0x92, 0xc2, 0x76, 0xbf, 0xd1, 0x8f, 0x70, 0xa9, 0xeb, 0x0c, 0x73, 0x23, 0xe2, 0xc0, 0xa6, 0xeb, 0x5f, 0xc7, 0xe3, 0x30, 0xb0, 0xbc, 0x3b, 0x07, 0xa5, 0x78, 0xa0, 0x82, 0x84, 0x62, 0x64, 0xf0, 0x32, 0xc6, 0x19, 0x1d, 0x04, 0x0b, 0xd9, 0x8e, 0x5d, 0x5a, 0x4d, 0x4f, 0x07, 0x6f, 0xb9, 0x06, 0x2a, 0xcd, 0x36, 0xbe, 0xa4, 0x0c, 0x91, 0x02, };
14928 static const ec_test_case ed25519_649_test_case = {
14929 	.name = "EDDSA25519-SHA512/wei25519 649",
14930 	.ec_str_p = &wei25519_str_params,
14931 	.priv_key = ed25519_649_test_vectors_priv_key,
14932 	.priv_key_len = sizeof(ed25519_649_test_vectors_priv_key),
14933 	.nn_random = NULL,
14934 	.hash_type = SHA512,
14935 	.msg = (const char *)ed25519_649_test_vectors_message,
14936 	.msglen = sizeof(ed25519_649_test_vectors_message),
14937 	.sig_type = EDDSA25519,
14938 	.exp_sig = ed25519_649_test_vectors_expected_sig,
14939 	.exp_siglen = sizeof(ed25519_649_test_vectors_expected_sig),
14940 	.adata = NULL,
14941 	.adata_len = 0
14942 };
14943 
14944 /************************************************/
14945 static const u8 ed25519_650_test_vectors_priv_key[] = {
14946 	0x04, 0x1a, 0x97, 0x90, 0x6b, 0x59, 0x56, 0xb9, 0xd3, 0x40, 0xf2, 0xe0, 0xd7, 0xa1, 0xdc, 0xbf, 0xef, 0xe6, 0x63, 0xe9, 0xbb, 0x40, 0x26, 0xf8, 0xcc, 0x1a, 0xe7, 0xe2, 0xa1, 0x4d, 0xe2, 0x7e, };
14947 static const u8 ed25519_650_test_vectors_message[] = {
14948 	0x71, 0xa7, 0x59, 0x57, 0x41, 0x15, 0x44, 0x97, 0x5a, 0x48, 0xcf, 0x10, 0x3a, 0xa1, 0xf8, 0xe2, 0xad, 0x15, 0x24, 0x44, 0x59, 0xcd, 0xc0, 0xe3, 0x36, 0x96, 0x6e, 0xb8, 0xb2, 0x6c, 0x97, 0xf2, 0x16, 0x9e, 0x5d, 0x78, 0x53, 0x70, 0x37, 0xef, 0xc0, 0x77, 0xe8, 0x6f, 0x06, 0xe0, 0x5e, 0x9c, 0x1d, 0xc3, 0x41, 0x82, 0x88, 0xc0, 0xa2, 0xbe, 0x6b, 0xa3, 0x4b, 0x3a, 0x04, 0xab, 0x20, 0xba, 0xe7, 0xf3, 0x62, 0x10, 0x94, 0xb8, 0x7d, 0x78, 0xa7, 0xea, 0xcb, 0x86, 0x4d, 0x40, 0x78, 0xcb, 0x4e, 0xfc, 0xba, 0xc5, 0xad, 0xd9, 0x37, 0xa2, 0xc6, 0x01, 0x2e, 0xe1, 0xa8, 0xb2, 0x56, 0xcc, 0x27, 0x6b, 0x65, 0xd5, 0xe9, 0x2b, 0x4d, 0x00, 0xb9, 0xb1, 0x1f, 0xad, 0x88, 0x49, 0x91, 0xde, 0xc4, 0xc1, 0xcb, 0x9d, 0xce, 0x18, 0x63, 0xc8, 0xb0, 0xa2, 0x10, 0x16, 0x1a, 0xe6, 0xb3, 0xf8, 0xbf, 0x9c, 0xc4, 0xdc, 0xe4, 0xad, 0xfd, 0xc8, 0xed, 0x57, 0xd8, 0x3e, 0x95, 0xab, 0x9d, 0xd2, 0xd9, 0x26, 0x58, 0xdf, 0xbd, 0x3a, 0xfa, 0x99, 0xe3, 0xf8, 0x95, 0x1e, 0x2a, 0xd7, 0x4a, 0x14, 0x8f, 0x6f, 0x59, 0x7e, 0xb2, 0xc9, 0x45, 0xc1, 0xf1, 0xb9, 0x44, 0x61, 0xae, 0x07, 0x45, 0x48, 0x1f, 0xd0, 0xed, 0xf8, 0x38, 0xc6, 0x28, 0x60, 0x35, 0xe3, 0x6f, 0x01, 0x12, 0x38, 0x87, 0x5d, 0xbb, 0xa2, 0x28, 0x9d, 0x3d, 0x6a, 0x39, 0x42, 0xa7, 0xf9, 0x55, 0x4c, 0x64, 0x43, 0x05, 0x24, 0x4d, 0xdb, 0x77, 0xc1, 0x17, 0xcb, 0x4b, 0x56, 0x23, 0x77, 0x29, 0xdd, 0xe4, 0x28, 0xb8, 0xbb, 0x42, 0xdf, 0x9c, 0xe2, 0x9e, 0x14, 0x4d, 0xfc, 0x96, 0xcf, 0x6c, 0x67, 0x67, 0xb1, 0xee, 0x6d, 0x05, 0x3c, 0xe4, 0xf8, 0xbb, 0x20, 0x56, 0xab, 0x78, 0x10, 0xaa, 0x13, 0x68, 0xa8, 0x91, 0x0f, 0x2f, 0x69, 0xe0, 0x61, 0xc1, 0x9d, 0x88, 0x47, 0x18, 0x4f, 0xed, 0x53, 0x4f, 0x98, 0x75, 0x8d, 0x70, 0x3a, 0x76, 0x88, 0x5f, 0x91, 0xeb, 0x75, 0x2a, 0x21, 0x95, 0x4a, 0x10, 0xc6, 0xf6, 0xb4, 0xda, 0x10, 0x46, 0x4d, 0xed, 0x36, 0xb0, 0x00, 0x89, 0xf6, 0x62, 0x91, 0x54, 0x21, 0xbf, 0xda, 0xd4, 0x96, 0x75, 0x36, 0x89, 0xcc, 0xd0, 0x3b, 0x62, 0x40, 0x21, 0x08, 0x07, 0x61, 0xe6, 0x81, 0x76, 0xb1, 0x06, 0x97, 0xda, 0xc8, 0x78, 0xe4, 0xc3, 0xdb, 0x2f, 0xd0, 0xb2, 0x8c, 0x65, 0x53, 0x35, 0xd9, 0x80, 0x16, 0xf1, 0x9f, 0x26, 0x5b, 0xb0, 0xb2, 0x43, 0x4c, 0xb4, 0x63, 0x78, 0x44, 0xd9, 0x1e, 0xd0, 0xce, 0x05, 0xed, 0x25, 0x91, 0xfd, 0x99, 0x89, 0x65, 0xf8, 0x3f, 0x31, 0x97, 0xd1, 0x0e, 0xef, 0x44, 0x88, 0x50, 0xe7, 0x92, 0x03, 0x27, 0x24, 0x70, 0x1d, 0xa3, 0x05, 0xcb, 0x6d, 0x79, 0x46, 0x69, 0x48, 0x3f, 0xc3, 0xdc, 0x6f, 0x68, 0x6b, 0x18, 0x3e, 0x29, 0x99, 0x13, 0x0c, 0x8f, 0xc0, 0x05, 0x8d, 0xca, 0xbb, 0xc9, 0x18, 0x8f, 0x26, 0xb2, 0xd6, 0x3e, 0xbd, 0x6c, 0xb1, 0xe1, 0x8a, 0x09, 0x7c, 0x77, 0x04, 0xa5, 0x9b, 0x5e, 0x18, 0x7e, 0x01, 0x42, 0x59, 0x3b, 0x70, 0x83, 0xf7, 0x40, 0x0a, 0xfa, 0x9b, 0x1b, 0xf0, 0xc1, 0xcc, 0x6c, 0x35, 0x6b, 0xc4, 0x33, 0x4a, 0xf7, 0x72, 0xe6, 0x71, 0x53, 0xb4, 0x5b, 0x33, 0x1b, 0x99, 0x09, 0x20, 0xc2, 0x4e, 0xed, 0xe2, 0xc6, 0xe3, 0x23, 0x70, 0x3f, 0x52, 0xec, 0xd6, 0x07, 0x35, 0xb2, 0x3b, 0xf2, 0x2b, 0x81, 0xee, 0x77, 0x59, 0x27, 0xc3, 0x7e, 0x53, 0xda, 0xd7, 0x59, 0x6e, 0xa6, 0x5a, 0x73, 0xbb, 0x96, 0x77, 0x5f, 0x3b, 0x87, 0xc8, 0xb3, 0xc0, 0x88, 0xec, 0x69, 0x5b, 0xc3, 0xa7, 0x50, 0x2c, 0x0c, 0x51, 0x0f, 0x02, 0x0b, 0xf9, 0xac, 0xa3, 0xcb, 0xb7, 0xa2, 0xc0, 0x11, 0xc6, 0x7f, 0xf2, 0x7d, 0x63, 0x4c, 0xaf, 0x1d, 0xcf, 0xc5, 0x8e, 0x5e, 0x39, 0x7e, 0x66, 0x58, 0x25, 0x22, 0x72, 0x01, 0x1c, 0x8f, 0xfd, 0xd6, 0x42, 0x30, 0xa9, 0x32, 0x41, 0xff, 0xf6, 0x83, 0x72, 0xc4, 0xba, 0x85, 0x38, 0x2b, 0xbb, 0x22, 0x93, 0x09, 0x65, 0x29, 0x22, 0xdb, 0x68, 0x83, 0x66, 0x31, 0xe5, 0x5b, 0xe6, 0x9a, 0xb6, 0xad, 0xb8, 0xe4, 0x33, 0x53, 0x57, 0xfc, 0x92, 0x3e, 0xfe, 0x15, 0x4a, 0xfc, 0xc2, 0x22, 0xd6, 0x0d, 0x07, 0xf5, 0x69, 0x90, 0xa3, 0xe5, 0xa2, 0x14, 0xb2, 0x27, 0xae, 0xcf, 0xf2, 0xcd, 0x1b, 0xb6, 0xf0, 0xc7, 0x9f, 0xf5, 0x45, 0xf7, 0x0a, 0x61, 0x61, 0x41, 0xa9, 0xd5, 0x3f, 0x92, 0x2a, 0x02, 0x44, 0x3f, 0x7d, 0x2a, 0x46, 0x89, 0xc3, 0x5b, 0x09, 0x5d, 0xd3, 0x94, 0xd5, 0x0b, 0xf4, 0x9f, 0x96, 0x80, 0xa5, 0xf7, 0xd9, };
14949 static const u8 ed25519_650_test_vectors_expected_sig[] = {
14950 	0xa2, 0x3f, 0x03, 0x2e, 0x66, 0x92, 0xa0, 0xe8, 0xbf, 0xee, 0x5b, 0x2d, 0x30, 0xb4, 0x14, 0xcb, 0x16, 0xc3, 0x5a, 0xd0, 0x8d, 0xa3, 0x1f, 0x69, 0x6d, 0x46, 0x1a, 0x02, 0x85, 0x78, 0x22, 0xc4, 0xef, 0x35, 0x7f, 0x0c, 0xcf, 0x31, 0x02, 0x5a, 0x4d, 0xc9, 0x5c, 0xed, 0x30, 0xa9, 0x94, 0xf4, 0x1e, 0xdd, 0x1d, 0x08, 0x7a, 0xfc, 0xaa, 0xf3, 0xe8, 0xe8, 0x75, 0x70, 0x83, 0x20, 0xf8, 0x0c, };
14951 static const ec_test_case ed25519_650_test_case = {
14952 	.name = "EDDSA25519-SHA512/wei25519 650",
14953 	.ec_str_p = &wei25519_str_params,
14954 	.priv_key = ed25519_650_test_vectors_priv_key,
14955 	.priv_key_len = sizeof(ed25519_650_test_vectors_priv_key),
14956 	.nn_random = NULL,
14957 	.hash_type = SHA512,
14958 	.msg = (const char *)ed25519_650_test_vectors_message,
14959 	.msglen = sizeof(ed25519_650_test_vectors_message),
14960 	.sig_type = EDDSA25519,
14961 	.exp_sig = ed25519_650_test_vectors_expected_sig,
14962 	.exp_siglen = sizeof(ed25519_650_test_vectors_expected_sig),
14963 	.adata = NULL,
14964 	.adata_len = 0
14965 };
14966 
14967 /************************************************/
14968 static const u8 ed25519_651_test_vectors_priv_key[] = {
14969 	0x4b, 0xc5, 0xe0, 0x5a, 0xa0, 0x03, 0xa4, 0x49, 0x2f, 0x4b, 0xad, 0x10, 0x2a, 0x53, 0x90, 0xf7, 0xce, 0xba, 0xb3, 0xd3, 0xec, 0xa9, 0x15, 0x21, 0x42, 0xad, 0x5e, 0xf7, 0xd8, 0x40, 0x30, 0xae, };
14970 static const u8 ed25519_651_test_vectors_message[] = {
14971 	0xa8, 0xf7, 0x94, 0xdb, 0x17, 0x95, 0x66, 0x7d, 0x28, 0xd2, 0x4b, 0x70, 0xac, 0x22, 0x00, 0xa6, 0x23, 0x9a, 0x34, 0xe2, 0x43, 0x8c, 0xed, 0x1d, 0x03, 0xf9, 0x7e, 0xd4, 0x8b, 0xeb, 0x4d, 0x6b, 0xea, 0x67, 0xc1, 0x43, 0x38, 0xf7, 0x73, 0x64, 0x19, 0xdc, 0xd2, 0xa2, 0xa7, 0x97, 0x37, 0x26, 0x57, 0x2e, 0x6a, 0xfe, 0x7e, 0xdf, 0xef, 0x22, 0xc9, 0x9b, 0xe8, 0xb0, 0x69, 0xf0, 0x4f, 0x6d, 0xc6, 0x1a, 0x13, 0xb3, 0x43, 0xc6, 0xe5, 0x85, 0xab, 0xad, 0x22, 0x14, 0xd8, 0x5c, 0x36, 0xf0, 0x29, 0x96, 0xfa, 0xbb, 0x46, 0xbb, 0x91, 0xb5, 0x17, 0x6a, 0xc7, 0x08, 0xe4, 0x9a, 0x0b, 0x05, 0x30, 0x17, 0x04, 0x8f, 0xbb, 0x55, 0x45, 0x3f, 0x2b, 0x82, 0x08, 0xd6, 0x67, 0x8d, 0x1a, 0x8c, 0xf6, 0xa1, 0xee, 0x9a, 0xd7, 0xa9, 0x1e, 0x38, 0x03, 0x25, 0x63, 0x5d, 0x1e, 0x23, 0x6a, 0x6c, 0xa1, 0xd6, 0xcc, 0x7f, 0x6b, 0x59, 0xf2, 0xa2, 0xbf, 0x18, 0x4f, 0x5e, 0xe4, 0x51, 0xd6, 0x79, 0x9f, 0x69, 0xba, 0x11, 0xa0, 0xcd, 0x6b, 0xc0, 0x4b, 0xe8, 0xa3, 0x51, 0xa8, 0x0e, 0x72, 0x5b, 0x5f, 0xc4, 0x56, 0x3e, 0x45, 0xbd, 0x47, 0x49, 0xec, 0xbc, 0x45, 0x20, 0x52, 0x29, 0x10, 0x5b, 0x9d, 0xe7, 0x32, 0x61, 0x49, 0x85, 0x27, 0xf3, 0xd4, 0xec, 0xfb, 0xb5, 0x83, 0xff, 0x53, 0x27, 0x53, 0xd0, 0x7c, 0x38, 0x52, 0x6b, 0xb4, 0x82, 0xd1, 0x71, 0xa2, 0x61, 0xb9, 0xcf, 0x89, 0x90, 0x6a, 0x7d, 0xea, 0x8c, 0xbd, 0x7e, 0x72, 0x6b, 0xa3, 0x1e, 0xa6, 0x88, 0x03, 0xa6, 0xb0, 0x04, 0xf6, 0xdc, 0xd1, 0x9e, 0x67, 0x19, 0x50, 0x46, 0x37, 0x38, 0xcc, 0xa7, 0x8b, 0xb0, 0xdf, 0xfa, 0x3d, 0x64, 0x57, 0xe4, 0xae, 0xca, 0x65, 0x7e, 0xc6, 0x49, 0xb9, 0x7e, 0xe3, 0x0e, 0x97, 0xc8, 0xcb, 0xe6, 0xce, 0x43, 0xc2, 0xaa, 0x9a, 0x69, 0x95, 0x8e, 0x9d, 0xc8, 0x81, 0xe4, 0xaa, 0x7b, 0x32, 0x78, 0x07, 0x4e, 0x78, 0x7a, 0xce, 0x5f, 0xb6, 0x01, 0xd7, 0xfa, 0xf7, 0xca, 0x51, 0x03, 0xec, 0xbb, 0xd3, 0xbd, 0x55, 0x4e, 0xb1, 0xb0, 0x66, 0xf8, 0x29, 0x6d, 0x2c, 0xc5, 0x7e, 0x8c, 0x8a, 0x32, 0xe9, 0xc0, 0xe6, 0xa9, 0x26, 0x96, 0x4d, 0x6d, 0xf2, 0xd8, 0x64, 0x58, 0x64, 0xb3, 0x22, 0xc3, 0x22, 0xf1, 0xca, 0x80, 0x73, 0xce, 0xdf, 0x2b, 0x55, 0x67, 0x11, 0xa7, 0xa2, 0x0b, 0x77, 0xc0, 0xa1, 0xed, 0x27, 0x7a, 0x9a, 0x6c, 0xa2, 0xc0, 0x71, 0x54, 0xe8, 0x63, 0xfe, 0xf5, 0xa4, 0x04, 0xe3, 0xe8, 0x9f, 0x0d, 0x7f, 0x30, 0xf2, 0x18, 0xec, 0x4d, 0xe7, 0xa5, 0x3a, 0xeb, 0x9c, 0x41, 0xee, 0xaa, 0xf6, 0xce, 0x74, 0x96, 0x49, 0xc9, 0x99, 0x8f, 0xd6, 0x2b, 0xcb, 0xa2, 0x87, 0x23, 0x38, 0xe1, 0x9c, 0x94, 0xe5, 0x9d, 0xd5, 0xe2, 0xdd, 0x77, 0x6f, 0x53, 0x71, 0x9d, 0x21, 0x74, 0x69, 0x76, 0x93, 0x2e, 0xf1, 0x1a, 0xbf, 0x7a, 0x32, 0xae, 0x6b, 0x07, 0x44, 0x66, 0x5d, 0x0e, 0x0c, 0xe5, 0x13, 0x95, 0x5a, 0x9e, 0x68, 0x53, 0x1d, 0x8e, 0xe4, 0xde, 0x9a, 0x8d, 0x35, 0xdd, 0xfb, 0x88, 0xeb, 0x5a, 0x48, 0x6a, 0xd6, 0x31, 0x37, 0xe8, 0x89, 0x2f, 0xd7, 0xc6, 0x89, 0xd4, 0xf9, 0xe7, 0x02, 0x1b, 0x11, 0x73, 0xbb, 0x37, 0x52, 0xa5, 0xee, 0xcf, 0x29, 0x92, 0xe3, 0xfd, 0x46, 0x42, 0x26, 0x3c, 0x7b, 0x3d, 0x81, 0x5c, 0x29, 0xb4, 0x66, 0xab, 0x69, 0x28, 0x5f, 0xfe, 0x4b, 0x8d, 0xaf, 0xcb, 0xf3, 0xd0, 0x1d, 0x63, 0x55, 0x53, 0xab, 0x75, 0x75, 0xa7, 0xa3, 0x47, 0x1e, 0xdc, 0x7b, 0xe4, 0x12, 0xd3, 0xd0, 0x1e, 0x6f, 0xe8, 0xe3, 0xcd, 0xc3, 0xfa, 0x04, 0xd2, 0xa7, 0x59, 0x93, 0x81, 0xe2, 0x2b, 0xba, 0x49, 0xc5, 0x53, 0x9d, 0x79, 0xc6, 0x2b, 0x52, 0xbb, 0x0e, 0xca, 0x33, 0xf7, 0x42, 0x55, 0xe4, 0x1a, 0x95, 0x26, 0xa8, 0x92, 0x89, 0xb1, 0x5f, 0x18, 0x50, 0xd9, 0xaf, 0xa8, 0x7e, 0x6b, 0x6f, 0xa1, 0x27, 0x10, 0x1c, 0x1a, 0x6d, 0x88, 0xd4, 0x33, 0xe0, 0xc8, 0x6a, 0xa6, 0x0b, 0xba, 0x8f, 0xe7, 0x10, 0x0e, 0xd6, 0x1d, 0x5a, 0x9d, 0x00, 0xa0, 0x07, 0x64, 0x51, 0x3e, 0xb1, 0xc7, 0xf5, 0xf5, 0xc3, 0xb3, 0xef, 0xc4, 0x53, 0x2a, 0x36, 0xb4, 0x07, 0xfe, 0x2d, 0x17, 0xcf, 0xb4, 0xe6, 0xfc, 0xd6, 0x04, 0x9c, 0xff, 0x3a, 0x35, 0x56, 0x23, 0xa3, 0xa4, 0x13, 0x90, 0xea, 0x48, 0xf4, 0x21, 0x20, 0xd8, 0x97, 0x94, 0x91, 0x11, 0xbe, 0x3d, 0x16, 0x9b, 0x2d, 0x2e, 0xf4, 0x5b, 0xdb, 0x89, 0x4f, 0xe2, 0x0b, 0x1a, 0x95, 0xef, 0x66, 0x14, 0x94, 0x27, 0xa9, 0xd8, 0xf8, 0x0a, 0x9b, 0x2e, };
14972 static const u8 ed25519_651_test_vectors_expected_sig[] = {
14973 	0xa2, 0x4f, 0xee, 0x11, 0xf7, 0xec, 0x6d, 0xa3, 0xe9, 0xdf, 0xaf, 0x6c, 0x85, 0x8a, 0xc0, 0x04, 0xb4, 0x53, 0x1a, 0xbd, 0x1c, 0x9d, 0x3b, 0xb6, 0x4f, 0x40, 0xdd, 0x24, 0x7f, 0x00, 0x35, 0x93, 0x50, 0xe4, 0x3b, 0x2d, 0x4b, 0x8f, 0xbe, 0xc5, 0xf6, 0xb2, 0x41, 0xec, 0xf9, 0xf1, 0x10, 0x14, 0x85, 0xcf, 0x41, 0x87, 0x35, 0xb0, 0x5f, 0x71, 0x20, 0x18, 0x33, 0x5b, 0x20, 0x06, 0x83, 0x08, };
14974 static const ec_test_case ed25519_651_test_case = {
14975 	.name = "EDDSA25519-SHA512/wei25519 651",
14976 	.ec_str_p = &wei25519_str_params,
14977 	.priv_key = ed25519_651_test_vectors_priv_key,
14978 	.priv_key_len = sizeof(ed25519_651_test_vectors_priv_key),
14979 	.nn_random = NULL,
14980 	.hash_type = SHA512,
14981 	.msg = (const char *)ed25519_651_test_vectors_message,
14982 	.msglen = sizeof(ed25519_651_test_vectors_message),
14983 	.sig_type = EDDSA25519,
14984 	.exp_sig = ed25519_651_test_vectors_expected_sig,
14985 	.exp_siglen = sizeof(ed25519_651_test_vectors_expected_sig),
14986 	.adata = NULL,
14987 	.adata_len = 0
14988 };
14989 
14990 /************************************************/
14991 static const u8 ed25519_652_test_vectors_priv_key[] = {
14992 	0xa3, 0xbe, 0xd9, 0xfe, 0x23, 0x54, 0xbd, 0x28, 0x60, 0x14, 0x9a, 0x3d, 0xb7, 0x5a, 0x85, 0xb1, 0x29, 0xcf, 0x83, 0xe9, 0xd7, 0x3e, 0x63, 0x17, 0xba, 0x70, 0x54, 0x52, 0x19, 0x33, 0xf8, 0x96, };
14993 static const u8 ed25519_652_test_vectors_message[] = {
14994 	0xdb, 0x85, 0x38, 0x08, 0x68, 0x6d, 0x6d, 0x21, 0xf4, 0xc5, 0x7b, 0x54, 0x1e, 0x5a, 0xd6, 0x33, 0x94, 0xd4, 0x65, 0xe6, 0x00, 0x78, 0x64, 0x3c, 0xab, 0x1e, 0x06, 0x5c, 0x9f, 0x30, 0x6c, 0x50, 0x00, 0x78, 0xf0, 0xcc, 0x41, 0xef, 0x0f, 0x95, 0x42, 0xb5, 0xfe, 0x35, 0x6a, 0xec, 0x47, 0x77, 0xef, 0x8a, 0x95, 0x55, 0x4c, 0x97, 0xb6, 0xa4, 0x40, 0x99, 0xe9, 0xbd, 0x64, 0x04, 0xfb, 0x0b, 0x2e, 0x41, 0xf9, 0x19, 0x14, 0xb0, 0x74, 0xd1, 0x22, 0x37, 0xcd, 0x44, 0x2e, 0xbd, 0x40, 0xb5, 0x1b, 0x8b, 0xc8, 0xbb, 0xe4, 0x37, 0xa2, 0xc5, 0x33, 0x32, 0xd2, 0xbe, 0xb2, 0x28, 0x1b, 0xf7, 0x32, 0x4a, 0x0c, 0xf5, 0xb7, 0x41, 0xbb, 0xf9, 0x8d, 0x1e, 0xb9, 0x85, 0x8b, 0xe9, 0x26, 0xe9, 0x15, 0xa7, 0x8e, 0x8d, 0x31, 0x4b, 0x41, 0x44, 0xf3, 0xd2, 0x0d, 0xfc, 0x6c, 0xb7, 0xf4, 0x8c, 0x23, 0xaf, 0x90, 0xf8, 0x71, 0xc6, 0xcd, 0xa9, 0x08, 0x45, 0xa4, 0x1a, 0xff, 0x17, 0x07, 0xa8, 0x7b, 0x4e, 0x55, 0x16, 0xf1, 0x8e, 0x8b, 0xd7, 0x68, 0x3c, 0xfd, 0x74, 0x07, 0x08, 0x03, 0xe8, 0x88, 0x33, 0x8c, 0x9a, 0x18, 0xf7, 0x92, 0xc8, 0xd3, 0xa7, 0x04, 0x17, 0x0f, 0xf9, 0x82, 0xbf, 0xfc, 0x9e, 0x8e, 0xc9, 0xea, 0x5d, 0x1a, 0x62, 0x59, 0x2f, 0x16, 0x88, 0xd4, 0xf2, 0xb0, 0x1e, 0x11, 0xf9, 0xf8, 0x87, 0x74, 0xc4, 0x7a, 0xc1, 0xd5, 0x8f, 0x69, 0x0b, 0xcf, 0x28, 0x8c, 0xf8, 0xa4, 0x73, 0xd3, 0x50, 0xa8, 0x23, 0x9d, 0xf9, 0xd3, 0xa6, 0x28, 0x81, 0xda, 0xdd, 0x33, 0x85, 0x31, 0xfd, 0xce, 0x76, 0x15, 0x80, 0x7c, 0xe9, 0x65, 0x49, 0x6d, 0x6f, 0x35, 0xd6, 0xc0, 0x42, 0xf0, 0xce, 0x7f, 0x21, 0xef, 0xe5, 0xce, 0x64, 0x25, 0x18, 0x59, 0x41, 0xed, 0x56, 0x36, 0xb8, 0xae, 0x91, 0x3a, 0x75, 0xd2, 0x1a, 0xb9, 0xdb, 0xdb, 0x3c, 0x3b, 0x66, 0x87, 0xa4, 0x5e, 0x04, 0x49, 0x38, 0xa9, 0xf1, 0xc1, 0x3a, 0x33, 0x0e, 0xa9, 0x76, 0x1e, 0x28, 0x3e, 0x61, 0xd4, 0xa3, 0x20, 0xe1, 0xf5, 0x59, 0x88, 0x2f, 0x34, 0xb6, 0x07, 0xfe, 0xfe, 0x32, 0xc3, 0x43, 0x17, 0x4a, 0xbc, 0xdc, 0x77, 0xb0, 0x65, 0xa9, 0x29, 0x04, 0xb4, 0x2d, 0x96, 0x1d, 0xb8, 0xed, 0x91, 0x6c, 0x01, 0x46, 0x4f, 0xfd, 0x43, 0xf9, 0x3c, 0x10, 0x77, 0xf1, 0xdf, 0x7e, 0xe6, 0x50, 0x31, 0xcf, 0xe0, 0x5d, 0x78, 0x0d, 0x01, 0xd0, 0x8e, 0xe0, 0x36, 0xf2, 0x2a, 0x2b, 0x05, 0x12, 0x19, 0x3b, 0x0c, 0x0f, 0x38, 0x01, 0xe0, 0xa0, 0x20, 0x8e, 0xef, 0x24, 0x5c, 0x9e, 0x51, 0x93, 0x52, 0xd2, 0xb0, 0x09, 0x63, 0x82, 0xf2, 0xcb, 0xa0, 0x6e, 0xb2, 0xa0, 0x1d, 0xac, 0xf6, 0x19, 0xea, 0xbb, 0xc8, 0x83, 0xc5, 0xd4, 0xf2, 0xfd, 0x7c, 0x34, 0x23, 0x17, 0x9c, 0x0f, 0x5f, 0xfd, 0xaf, 0x8c, 0xaf, 0xff, 0x5c, 0x46, 0xb3, 0x4a, 0x09, 0xc3, 0xc5, 0x0e, 0x29, 0x49, 0xc0, 0x60, 0x00, 0x20, 0x7d, 0x70, 0xd3, 0x7d, 0x65, 0xa7, 0x43, 0x07, 0x5f, 0xdc, 0x2b, 0xe6, 0x2d, 0x41, 0x2a, 0xa6, 0x3e, 0x36, 0x37, 0x06, 0xca, 0x90, 0xe6, 0xef, 0x44, 0xe1, 0x52, 0xea, 0x4d, 0xc5, 0xc2, 0x89, 0x3e, 0xcd, 0x08, 0xd7, 0x96, 0xd4, 0x1f, 0x17, 0x22, 0x54, 0xc3, 0xd1, 0xd1, 0x4b, 0xb0, 0x67, 0xb5, 0x3a, 0x08, 0x97, 0xbb, 0xd7, 0x3c, 0x99, 0x54, 0xd9, 0x64, 0x8b, 0x2a, 0xf1, 0x0d, 0x9c, 0x27, 0x03, 0xe3, 0x8b, 0x6c, 0x62, 0x46, 0x9f, 0x6f, 0x95, 0x8a, 0x1c, 0xa0, 0xa3, 0x20, 0xc1, 0x23, 0x39, 0xe9, 0x0c, 0xf7, 0x68, 0xc8, 0x7b, 0x47, 0x38, 0xc2, 0x19, 0xf8, 0x09, 0x3b, 0xff, 0x4c, 0x2c, 0xfd, 0x29, 0x45, 0x9f, 0x6d, 0x32, 0x81, 0x34, 0x93, 0x78, 0xe9, 0x15, 0xa3, 0xb0, 0xe7, 0x24, 0xc7, 0x4d, 0x2b, 0xd7, 0xa8, 0x51, 0xac, 0x7c, 0x6b, 0x48, 0xe8, 0xaf, 0xc7, 0x12, 0x4f, 0xdc, 0xbc, 0xab, 0x5f, 0xf8, 0x0d, 0x1d, 0xee, 0x30, 0xa6, 0xc0, 0x24, 0xcb, 0x43, 0x31, 0x97, 0x23, 0x66, 0xeb, 0xab, 0x26, 0xbb, 0xb9, 0xf6, 0x08, 0xca, 0xac, 0x7e, 0x51, 0x91, 0x4d, 0xf0, 0x58, 0xb9, 0xb3, 0x74, 0x5d, 0x98, 0xc5, 0xd2, 0x7e, 0x97, 0x10, 0x54, 0x75, 0xec, 0x01, 0x73, 0x77, 0xe6, 0x31, 0x61, 0x98, 0xec, 0xe4, 0xec, 0x59, 0x09, 0xf0, 0x4f, 0xc2, 0x7e, 0x7b, 0x38, 0x2e, 0x66, 0xad, 0xb6, 0x2a, 0xc8, 0xa9, 0x77, 0xf3, 0x76, 0xfd, 0x5d, 0xae, 0x43, 0x4f, 0xb5, 0x51, 0x75, 0x24, 0x9c, 0xa1, 0xab, 0x6b, 0xb0, 0x2d, 0xec, 0x06, 0x96, 0xf0, 0x89, 0xbe, 0x34, 0x54, 0x88, 0x7a, 0x0c, 0x32, 0x36, 0x1d, 0x17, 0x2b, 0xd2, };
14995 static const u8 ed25519_652_test_vectors_expected_sig[] = {
14996 	0x33, 0xbc, 0x1e, 0x0b, 0xf1, 0xb4, 0x93, 0xe0, 0xcf, 0xb7, 0xea, 0x40, 0x48, 0x0a, 0x14, 0x23, 0xe0, 0x91, 0xf7, 0x14, 0x57, 0x45, 0x01, 0x31, 0x73, 0x78, 0x7d, 0xf4, 0x7a, 0x10, 0xdb, 0x24, 0xc1, 0x65, 0xd0, 0x05, 0x96, 0xfa, 0xb7, 0x0e, 0x68, 0xc9, 0x4c, 0x10, 0x4e, 0x8a, 0x74, 0x07, 0xcf, 0x69, 0x5c, 0xd3, 0xfb, 0xe5, 0x85, 0xb5, 0xb1, 0x76, 0xb8, 0x5c, 0xcc, 0xa4, 0xfd, 0x08, };
14997 static const ec_test_case ed25519_652_test_case = {
14998 	.name = "EDDSA25519-SHA512/wei25519 652",
14999 	.ec_str_p = &wei25519_str_params,
15000 	.priv_key = ed25519_652_test_vectors_priv_key,
15001 	.priv_key_len = sizeof(ed25519_652_test_vectors_priv_key),
15002 	.nn_random = NULL,
15003 	.hash_type = SHA512,
15004 	.msg = (const char *)ed25519_652_test_vectors_message,
15005 	.msglen = sizeof(ed25519_652_test_vectors_message),
15006 	.sig_type = EDDSA25519,
15007 	.exp_sig = ed25519_652_test_vectors_expected_sig,
15008 	.exp_siglen = sizeof(ed25519_652_test_vectors_expected_sig),
15009 	.adata = NULL,
15010 	.adata_len = 0
15011 };
15012 
15013 /************************************************/
15014 static const u8 ed25519_653_test_vectors_priv_key[] = {
15015 	0x88, 0xa2, 0x4f, 0x0d, 0xf3, 0xae, 0x29, 0x14, 0xdf, 0x79, 0xda, 0x50, 0xec, 0xf8, 0xec, 0xb4, 0x2f, 0x68, 0xc7, 0xba, 0xad, 0x3b, 0x6c, 0x3a, 0x2e, 0x0c, 0xc9, 0xc2, 0x5d, 0x09, 0xd1, 0x42, };
15016 static const u8 ed25519_653_test_vectors_message[] = {
15017 	0x65, 0x4e, 0x9e, 0xdc, 0x69, 0xfe, 0x63, 0x4c, 0x23, 0x08, 0xba, 0x8c, 0x46, 0xa9, 0x55, 0xe8, 0x82, 0x45, 0x62, 0x86, 0xea, 0xe3, 0x59, 0x3c, 0xae, 0x73, 0x9c, 0x44, 0x86, 0x6c, 0x0d, 0xe9, 0xed, 0xcb, 0xbf, 0x0d, 0xb1, 0xc4, 0x41, 0x49, 0x66, 0x84, 0x67, 0x70, 0x9d, 0xc9, 0x70, 0x62, 0x98, 0xdd, 0x2e, 0xac, 0x33, 0x01, 0xda, 0xba, 0xd5, 0xbd, 0x8e, 0x93, 0xc5, 0xe8, 0xa9, 0x3f, 0x19, 0x4e, 0x0f, 0xc1, 0xd9, 0xf3, 0x76, 0xc1, 0x44, 0xc2, 0x93, 0xae, 0xfd, 0xa0, 0x86, 0xb2, 0x21, 0x8f, 0x2e, 0x9d, 0xfd, 0x7c, 0x2d, 0xc5, 0x2b, 0xa3, 0x3e, 0xb2, 0x29, 0xdc, 0xf7, 0xbb, 0x68, 0xce, 0x0f, 0x87, 0x6c, 0x5f, 0xd4, 0xe8, 0x1a, 0xfd, 0x80, 0x16, 0x9f, 0x73, 0xcf, 0x26, 0x4e, 0x5d, 0xc0, 0xce, 0x16, 0xe1, 0xb8, 0x76, 0xcd, 0x11, 0xc7, 0xad, 0x89, 0x05, 0x8e, 0xe0, 0x82, 0x0c, 0x40, 0x00, 0x5d, 0x01, 0xf1, 0x19, 0xf8, 0xbe, 0x6f, 0x1a, 0xfb, 0xe2, 0x4c, 0xa4, 0xae, 0xdc, 0x18, 0xe9, 0x78, 0x96, 0x82, 0x7c, 0x3e, 0xd6, 0x7f, 0xc4, 0x56, 0x30, 0xe7, 0x90, 0x3b, 0x7f, 0xee, 0x9c, 0x99, 0x0e, 0x36, 0x19, 0x37, 0xbf, 0x4e, 0xa0, 0xa4, 0xd8, 0xd1, 0x6c, 0xf6, 0xd9, 0xcf, 0x03, 0x81, 0xe9, 0x06, 0x5e, 0x36, 0x25, 0x14, 0x8f, 0x8a, 0xe0, 0x49, 0x1a, 0x03, 0x41, 0xd0, 0xff, 0x9f, 0x72, 0x7b, 0xe1, 0xf3, 0x10, 0xca, 0x1e, 0xc3, 0xf0, 0x10, 0x4a, 0xa0, 0x54, 0x32, 0x17, 0x84, 0xdd, 0x24, 0xd5, 0x3c, 0x98, 0x5b, 0x28, 0xd4, 0x40, 0x82, 0xf8, 0xe1, 0xc1, 0x08, 0xa4, 0x41, 0x09, 0x63, 0x8f, 0xf5, 0x11, 0x6e, 0xdd, 0x85, 0xae, 0xb8, 0x6b, 0x6e, 0xa5, 0x12, 0xa1, 0x9b, 0x60, 0x2e, 0xdd, 0x9d, 0x21, 0x10, 0x70, 0xd0, 0x44, 0xaf, 0x5b, 0xed, 0xb6, 0xc8, 0x52, 0x7b, 0xa3, 0x49, 0x1e, 0x34, 0x5b, 0xac, 0xc1, 0x30, 0xb3, 0x69, 0x60, 0x28, 0x2a, 0xe7, 0x37, 0xb8, 0x5c, 0x76, 0x92, 0x74, 0xf0, 0xf7, 0xc5, 0x88, 0xf4, 0x0e, 0x66, 0x25, 0xb2, 0x36, 0xbd, 0xc1, 0xa3, 0xb8, 0x73, 0x20, 0x46, 0x0e, 0xee, 0xad, 0xa2, 0x78, 0x12, 0x4b, 0x56, 0x68, 0x87, 0x4f, 0x39, 0xf5, 0x9c, 0x2e, 0x6a, 0xa2, 0x08, 0xc3, 0xb6, 0xa9, 0xb8, 0x45, 0xc4, 0xd0, 0xa2, 0x7a, 0x05, 0x46, 0x78, 0x6f, 0xa1, 0x3e, 0x51, 0xcc, 0x98, 0xb7, 0x3f, 0xd7, 0xee, 0x32, 0x7b, 0x62, 0x15, 0xec, 0x6b, 0x62, 0x9f, 0x4c, 0xc7, 0xe4, 0xbd, 0x3c, 0x0a, 0x3d, 0xb7, 0x8a, 0x21, 0xff, 0xfe, 0x24, 0xc7, 0x04, 0x38, 0x71, 0x6b, 0xc3, 0x7b, 0x8d, 0xa7, 0xc5, 0xff, 0x7c, 0x36, 0x88, 0xa9, 0x03, 0x39, 0xc2, 0x2e, 0xb5, 0x0b, 0x7c, 0x2c, 0xd3, 0x6b, 0x68, 0x83, 0x1f, 0xd5, 0x93, 0x91, 0x75, 0x68, 0x9b, 0xd3, 0xe2, 0x2c, 0x38, 0x81, 0xaf, 0x33, 0x7e, 0xe1, 0x44, 0x35, 0x70, 0x9e, 0x35, 0x10, 0x40, 0xef, 0x3d, 0xa9, 0x55, 0x72, 0x4e, 0x51, 0xc2, 0x4a, 0x5e, 0x2c, 0x09, 0xf8, 0x91, 0x80, 0x83, 0x93, 0xfb, 0xf8, 0xef, 0x7f, 0x1f, 0x5f, 0x02, 0x98, 0xde, 0xeb, 0xdc, 0xd8, 0xd6, 0x66, 0xcb, 0xcf, 0x3e, 0x86, 0x6c, 0x71, 0x89, 0x99, 0xab, 0x6b, 0x1f, 0xee, 0xc9, 0xc4, 0x7e, 0x02, 0xe7, 0xd6, 0x35, 0x40, 0xf8, 0x99, 0x63, 0xd5, 0x42, 0xc5, 0xd0, 0x1f, 0xb6, 0xfc, 0x30, 0x76, 0x89, 0x68, 0xae, 0x81, 0xb2, 0x0c, 0x35, 0x4b, 0x40, 0x00, 0xc1, 0x32, 0x77, 0x47, 0x64, 0xd6, 0xd4, 0x43, 0xad, 0xd6, 0x4f, 0x6d, 0xd7, 0x48, 0xf5, 0xfb, 0x5b, 0x7f, 0x6e, 0xba, 0x40, 0x1d, 0xb4, 0x31, 0x8b, 0xe9, 0x93, 0x98, 0x9f, 0xcc, 0x25, 0x77, 0x96, 0x1f, 0xa5, 0xad, 0x31, 0xf6, 0xa2, 0xa9, 0xd6, 0xa7, 0x55, 0x28, 0x58, 0x65, 0xcd, 0x5d, 0xc3, 0xa8, 0x8c, 0xfb, 0x5a, 0xba, 0x7d, 0x92, 0x3b, 0xaf, 0x78, 0xb5, 0xd1, 0x31, 0xb4, 0xc2, 0x14, 0xdf, 0x55, 0xb6, 0x17, 0x1f, 0x45, 0x20, 0x9e, 0x21, 0xca, 0x66, 0x45, 0x49, 0x0d, 0x3a, 0x36, 0x44, 0xdd, 0xa6, 0xdc, 0x92, 0x9c, 0x7c, 0x40, 0x95, 0x76, 0xd3, 0x71, 0x64, 0x75, 0x5e, 0xf8, 0xaa, 0xf3, 0xdc, 0xd4, 0xd2, 0x27, 0x75, 0xee, 0x7d, 0xea, 0x0e, 0x56, 0x5b, 0xd5, 0x47, 0x27, 0x92, 0x1c, 0x64, 0x9b, 0xc5, 0x1f, 0x20, 0xc1, 0xf6, 0x8c, 0x1f, 0xde, 0xac, 0x45, 0x5c, 0x67, 0xd7, 0x1a, 0x1c, 0xb8, 0x83, 0x7f, 0x46, 0x91, 0x44, 0x8b, 0xf0, 0xbf, 0x04, 0x4a, 0x46, 0xf1, 0x68, 0x5f, 0xbe, 0x22, 0xb1, 0xe0, 0x18, 0x77, 0xf7, 0x47, 0x7d, 0x34, 0x99, 0x40, 0x8c, 0x4c, 0x31, 0x65, 0x10, 0xce, 0x2e, 0x55, 0xb9, 0x80, 0x05, };
15018 static const u8 ed25519_653_test_vectors_expected_sig[] = {
15019 	0x17, 0x07, 0xcc, 0x00, 0x91, 0x86, 0xbf, 0x3f, 0x03, 0xf7, 0xbb, 0x9e, 0x3c, 0xd4, 0xcf, 0x6b, 0x73, 0x7b, 0x7a, 0x6b, 0xaa, 0xde, 0x7f, 0xc6, 0xc3, 0xff, 0x5c, 0x12, 0x25, 0xdb, 0xb2, 0xba, 0xf5, 0x4f, 0x47, 0xc8, 0x5e, 0xaf, 0xa1, 0x32, 0xc3, 0x1e, 0xac, 0xa0, 0x3e, 0x6a, 0xec, 0x14, 0x47, 0x73, 0x3f, 0xac, 0xd3, 0x71, 0x49, 0xb7, 0xc6, 0xcf, 0x0c, 0xd4, 0x1f, 0x61, 0x14, 0x04, };
15020 static const ec_test_case ed25519_653_test_case = {
15021 	.name = "EDDSA25519-SHA512/wei25519 653",
15022 	.ec_str_p = &wei25519_str_params,
15023 	.priv_key = ed25519_653_test_vectors_priv_key,
15024 	.priv_key_len = sizeof(ed25519_653_test_vectors_priv_key),
15025 	.nn_random = NULL,
15026 	.hash_type = SHA512,
15027 	.msg = (const char *)ed25519_653_test_vectors_message,
15028 	.msglen = sizeof(ed25519_653_test_vectors_message),
15029 	.sig_type = EDDSA25519,
15030 	.exp_sig = ed25519_653_test_vectors_expected_sig,
15031 	.exp_siglen = sizeof(ed25519_653_test_vectors_expected_sig),
15032 	.adata = NULL,
15033 	.adata_len = 0
15034 };
15035 
15036 /************************************************/
15037 static const u8 ed25519_654_test_vectors_priv_key[] = {
15038 	0x18, 0x4d, 0x0c, 0xe2, 0xe9, 0xdb, 0x7f, 0x25, 0x7a, 0x8b, 0xf4, 0x64, 0x6d, 0x16, 0xd2, 0xc5, 0xef, 0xc2, 0x70, 0x2c, 0xed, 0x02, 0x6b, 0x69, 0x06, 0xd3, 0xc8, 0xc0, 0x11, 0x8f, 0x22, 0x61, };
15039 static const u8 ed25519_654_test_vectors_message[] = {
15040 	0x6a, 0x9b, 0x87, 0x6b, 0x0b, 0xf4, 0x18, 0x9b, 0x3c, 0xc1, 0x5f, 0x9e, 0xb4, 0xfb, 0xe7, 0x93, 0x2b, 0x55, 0x77, 0x89, 0x2a, 0x22, 0x20, 0x0c, 0xe1, 0x07, 0x15, 0x68, 0x53, 0xd6, 0xd3, 0xca, 0x36, 0x3f, 0x02, 0x5a, 0xd7, 0xa2, 0xd8, 0x62, 0xaa, 0xdc, 0x74, 0x2d, 0x94, 0x15, 0xbd, 0x8d, 0x1f, 0xca, 0x13, 0xc9, 0xdc, 0xa3, 0x58, 0x60, 0x44, 0xe5, 0x5a, 0x8c, 0xf5, 0xde, 0xe1, 0xce, 0x56, 0x45, 0x76, 0xe3, 0xe8, 0xe3, 0x65, 0x54, 0x05, 0x46, 0x50, 0x1b, 0x34, 0xca, 0x67, 0x5c, 0xf2, 0x00, 0xe0, 0x77, 0x1a, 0x81, 0x8c, 0x73, 0xd3, 0x7f, 0xcd, 0xa8, 0xcb, 0x15, 0xe4, 0x8d, 0x5a, 0x0b, 0x9e, 0xa3, 0xbe, 0xec, 0x0f, 0xf6, 0x61, 0x0b, 0x2a, 0x8a, 0x21, 0x4c, 0xa4, 0xf7, 0xef, 0xac, 0x0e, 0x71, 0x38, 0x10, 0x52, 0xd9, 0xbf, 0x3c, 0x00, 0xc3, 0x29, 0x59, 0x34, 0x74, 0xeb, 0xd0, 0xa6, 0x87, 0xa0, 0xb4, 0x1d, 0x14, 0x4b, 0x5e, 0x7a, 0xb1, 0x41, 0x2b, 0x97, 0x0a, 0x74, 0xba, 0xba, 0x4d, 0x27, 0x4b, 0xb0, 0xdb, 0xfd, 0xb0, 0x2b, 0x11, 0xf7, 0xf6, 0x39, 0x64, 0xba, 0x6f, 0x3b, 0xa0, 0xad, 0x23, 0x34, 0x1d, 0x08, 0x3b, 0x91, 0xa4, 0x30, 0x82, 0x39, 0xe3, 0x3d, 0x50, 0x82, 0x43, 0x96, 0x12, 0x65, 0x88, 0xde, 0x72, 0xa2, 0x39, 0x0c, 0x1c, 0x0f, 0xc0, 0x67, 0x47, 0xc2, 0x87, 0x72, 0xf6, 0x30, 0xbf, 0x4d, 0x14, 0x3f, 0x7a, 0x11, 0x59, 0xf0, 0x28, 0xc0, 0x93, 0x40, 0x48, 0x94, 0xe6, 0xd1, 0x6f, 0x63, 0x46, 0x35, 0xd4, 0xfc, 0x33, 0x0f, 0x3d, 0x7a, 0x73, 0x13, 0xef, 0x75, 0x6f, 0x5d, 0x49, 0xd8, 0xf6, 0x20, 0x5e, 0xb1, 0xc7, 0x92, 0xa9, 0x49, 0x5d, 0xa1, 0x31, 0xb4, 0x33, 0x45, 0xa0, 0x09, 0x0c, 0x12, 0xca, 0x56, 0xe6, 0xad, 0xac, 0x5b, 0xe0, 0xcb, 0xca, 0xc3, 0x60, 0x9d, 0x69, 0xf7, 0x24, 0x15, 0xf6, 0xc3, 0x7f, 0x3c, 0xfb, 0x2c, 0xf7, 0x6b, 0x3e, 0x65, 0xf3, 0xc9, 0x3a, 0xc9, 0x2b, 0x63, 0xf2, 0xba, 0xa4, 0x66, 0x24, 0x90, 0x75, 0xbc, 0xa6, 0x9d, 0x4c, 0x1d, 0x1f, 0x3a, 0xde, 0x24, 0xab, 0x31, 0xef, 0xfc, 0xb9, 0x04, 0x69, 0xc2, 0x4b, 0xb4, 0x10, 0xab, 0x47, 0x23, 0xe1, 0xb7, 0xe1, 0xc8, 0x8b, 0x3a, 0x36, 0x43, 0x35, 0x63, 0xf7, 0x1a, 0x99, 0xaa, 0xd5, 0x8f, 0xe8, 0x05, 0x68, 0xf9, 0xc1, 0x02, 0xda, 0x89, 0xba, 0xd9, 0x79, 0x63, 0xe7, 0x7d, 0x66, 0x22, 0x48, 0x31, 0x66, 0xf3, 0xae, 0x26, 0x1f, 0x32, 0xa5, 0x2a, 0x86, 0x10, 0x1e, 0xbd, 0x64, 0x5f, 0x61, 0x42, 0xc9, 0x82, 0xe2, 0xcd, 0x36, 0x25, 0xcf, 0x8b, 0x46, 0xb9, 0xb2, 0x89, 0x12, 0x46, 0x92, 0x0f, 0x69, 0x7f, 0xca, 0xed, 0x39, 0x7c, 0xb9, 0x22, 0xc2, 0x74, 0x94, 0x51, 0x67, 0xa0, 0xe6, 0x19, 0xb0, 0xb5, 0x06, 0x37, 0x76, 0x06, 0xdb, 0x04, 0x57, 0x83, 0xb0, 0xb8, 0x8e, 0xa0, 0x4e, 0x93, 0x2d, 0x21, 0xff, 0xc0, 0x64, 0xa1, 0x2a, 0x40, 0xeb, 0xe9, 0xb4, 0x80, 0xf1, 0xa2, 0xc7, 0xdd, 0xd3, 0x95, 0xa9, 0xb1, 0x5e, 0xfd, 0xc4, 0x95, 0xc9, 0x71, 0x4f, 0x36, 0xfa, 0x99, 0x6f, 0x79, 0xf8, 0xeb, 0x8e, 0xfa, 0x52, 0xd9, 0x9a, 0x24, 0xab, 0xfe, 0xf4, 0x3b, 0x32, 0xa2, 0x37, 0xc5, 0xbc, 0x00, 0x18, 0xda, 0x3b, 0x16, 0x2f, 0x59, 0xb8, 0xd3, 0xd4, 0x74, 0xe2, 0xce, 0x08, 0xfa, 0x80, 0x24, 0xc5, 0x8a, 0xcc, 0x0a, 0x99, 0xff, 0x61, 0x4e, 0x6c, 0xd7, 0xfd, 0xd9, 0xca, 0x4e, 0x8f, 0x41, 0xa1, 0x44, 0x9a, 0xa6, 0x18, 0xd0, 0x33, 0x37, 0xe8, 0xa3, 0x74, 0xd5, 0x60, 0x55, 0xb2, 0x07, 0xa9, 0xdb, 0xe6, 0x9f, 0x59, 0x48, 0xf9, 0x01, 0xca, 0x7d, 0xb0, 0x41, 0x0f, 0x01, 0xaa, 0x37, 0x3d, 0x9e, 0x02, 0x27, 0x62, 0x35, 0x99, 0xbc, 0x21, 0x28, 0x45, 0xb0, 0x06, 0xe9, 0x42, 0xfa, 0xbc, 0x58, 0x2c, 0xd7, 0x26, 0xdb, 0x5c, 0x44, 0x3e, 0xb2, 0xdf, 0xfb, 0xc9, 0xe3, 0xe7, 0xf0, 0xe5, 0xcb, 0x67, 0x44, 0xf7, 0xad, 0x71, 0x60, 0x50, 0xfd, 0xf2, 0xc6, 0x0c, 0x7c, 0x77, 0xc2, 0x53, 0xab, 0x74, 0x5d, 0xb9, 0xc8, 0x55, 0x26, 0x55, 0x68, 0x3e, 0xa7, 0xea, 0x68, 0x0a, 0xa4, 0xaf, 0x34, 0xdf, 0x13, 0x25, 0xc2, 0x9b, 0x88, 0x74, 0xb6, 0x1b, 0xe2, 0x3d, 0xe4, 0xff, 0xba, 0x25, 0x42, 0x4f, 0x46, 0x19, 0xec, 0x68, 0x2c, 0x26, 0xb3, 0xa6, 0x7b, 0xda, 0x9b, 0xc4, 0xc9, 0x4b, 0x79, 0xa9, 0xfc, 0x4d, 0x82, 0xd3, 0x40, 0x49, 0x5b, 0x43, 0x7a, 0x1c, 0xbd, 0x6b, 0x60, 0x30, 0x7c, 0xfc, 0xb1, 0x00, 0x26, 0xf9, 0x64, 0xa0, 0x17, 0x62, 0x3e, 0x33, 0xdb, 0xf2, 0x33, };
15041 static const u8 ed25519_654_test_vectors_expected_sig[] = {
15042 	0xb1, 0xe3, 0xbf, 0x5f, 0xa7, 0x4d, 0x7e, 0x44, 0x2c, 0xed, 0x9a, 0x98, 0xd9, 0x27, 0xd8, 0xc4, 0x5e, 0x0e, 0x64, 0xd8, 0x74, 0xf8, 0xea, 0x59, 0x20, 0xa3, 0x60, 0xa4, 0xbf, 0x42, 0xd8, 0x3c, 0xe1, 0x8a, 0x92, 0x4a, 0xc7, 0x96, 0xe1, 0xa7, 0x7d, 0x1b, 0x02, 0x08, 0x29, 0x4b, 0x50, 0xf8, 0x22, 0x17, 0x7f, 0xdb, 0xdd, 0x45, 0x8c, 0x74, 0x35, 0x6f, 0xcf, 0x6b, 0xd7, 0x94, 0x51, 0x06, };
15043 static const ec_test_case ed25519_654_test_case = {
15044 	.name = "EDDSA25519-SHA512/wei25519 654",
15045 	.ec_str_p = &wei25519_str_params,
15046 	.priv_key = ed25519_654_test_vectors_priv_key,
15047 	.priv_key_len = sizeof(ed25519_654_test_vectors_priv_key),
15048 	.nn_random = NULL,
15049 	.hash_type = SHA512,
15050 	.msg = (const char *)ed25519_654_test_vectors_message,
15051 	.msglen = sizeof(ed25519_654_test_vectors_message),
15052 	.sig_type = EDDSA25519,
15053 	.exp_sig = ed25519_654_test_vectors_expected_sig,
15054 	.exp_siglen = sizeof(ed25519_654_test_vectors_expected_sig),
15055 	.adata = NULL,
15056 	.adata_len = 0
15057 };
15058 
15059 /************************************************/
15060 static const u8 ed25519_655_test_vectors_priv_key[] = {
15061 	0xd0, 0x2b, 0xbf, 0x70, 0xd5, 0x13, 0x51, 0xe3, 0xb4, 0x7a, 0xd8, 0xe5, 0xed, 0x26, 0x3d, 0xbf, 0x55, 0x6d, 0x14, 0x98, 0xfa, 0x9b, 0xd5, 0xdb, 0xd9, 0x9f, 0xb4, 0x26, 0x90, 0x09, 0xdc, 0xed, };
15062 static const u8 ed25519_655_test_vectors_message[] = {
15063 	0x55, 0x45, 0x60, 0xf7, 0xa7, 0xfd, 0x1a, 0xe7, 0x75, 0x8a, 0x2f, 0xce, 0x7d, 0x78, 0x0f, 0x6b, 0x3f, 0x04, 0x3d, 0x3a, 0xf8, 0x9d, 0x4f, 0x19, 0xef, 0x57, 0x3c, 0x34, 0x99, 0x75, 0x54, 0xdf, 0x24, 0x3f, 0xaf, 0x2a, 0xaa, 0xb6, 0x5b, 0x2a, 0xfd, 0xd2, 0x86, 0x10, 0xd4, 0xa5, 0x1e, 0x9a, 0x4b, 0x46, 0x4d, 0xb6, 0xdb, 0x09, 0xeb, 0xf7, 0x3b, 0x7d, 0x24, 0x05, 0x4c, 0xc9, 0xb1, 0x28, 0x14, 0xbb, 0x29, 0xee, 0x99, 0xe1, 0xa7, 0x3b, 0xd6, 0x03, 0x89, 0x83, 0x60, 0xf9, 0xdc, 0xf0, 0x1e, 0x67, 0x08, 0x36, 0x28, 0x6f, 0x82, 0x36, 0xed, 0x8c, 0xef, 0x07, 0x5f, 0x3d, 0x56, 0x33, 0x12, 0xc1, 0x6c, 0x73, 0xfc, 0x37, 0xee, 0xdf, 0x25, 0x2f, 0x8f, 0x42, 0xd3, 0x0a, 0x13, 0xe7, 0xfb, 0xa3, 0xb1, 0x65, 0x23, 0x8c, 0x7f, 0x81, 0xea, 0xae, 0xb5, 0x31, 0x90, 0xf3, 0xec, 0x3b, 0x5d, 0x63, 0xf0, 0xee, 0x03, 0xe3, 0x98, 0x7e, 0x39, 0x0d, 0x1d, 0x81, 0xe8, 0x27, 0x7e, 0x9f, 0x6c, 0x1e, 0xe6, 0xec, 0x4e, 0xc3, 0xfa, 0x0d, 0x72, 0x0e, 0x9f, 0x53, 0xf9, 0xc2, 0x6f, 0x04, 0xaa, 0x2e, 0xd2, 0xb5, 0xef, 0x31, 0x60, 0x89, 0x59, 0x99, 0xea, 0xce, 0x29, 0xcf, 0x5d, 0xc2, 0x54, 0xad, 0x71, 0x10, 0x6b, 0xb7, 0xe8, 0xbc, 0x29, 0xa5, 0xb1, 0xd2, 0x41, 0x25, 0x93, 0xd0, 0x81, 0x94, 0xe8, 0x8e, 0x16, 0x59, 0xa7, 0x31, 0x59, 0xa2, 0xa2, 0x20, 0x33, 0xab, 0x06, 0x6e, 0x8d, 0x3d, 0x8c, 0x3b, 0xc8, 0x6b, 0x7b, 0x01, 0xde, 0x81, 0xa8, 0xc6, 0x60, 0x47, 0xb0, 0x7f, 0xe2, 0x4e, 0xd2, 0x40, 0x31, 0x8b, 0xa3, 0x7b, 0xa3, 0xef, 0xb6, 0xcf, 0x63, 0x26, 0x04, 0xca, 0x4f, 0x44, 0x6a, 0x75, 0xfd, 0x8e, 0x70, 0xc4, 0x53, 0xf0, 0xc6, 0x0e, 0xe1, 0x6e, 0xca, 0xf5, 0x24, 0xe7, 0x03, 0xf4, 0x7d, 0xf5, 0xc2, 0x82, 0xca, 0x32, 0x89, 0xb3, 0xaf, 0x61, 0xde, 0xe4, 0x70, 0x9e, 0xe0, 0x85, 0x32, 0x3b, 0x1e, 0x5c, 0x8a, 0x6b, 0xc0, 0x76, 0x62, 0x01, 0xc6, 0x35, 0x03, 0x14, 0x46, 0x89, 0x1f, 0x34, 0x94, 0xe9, 0xdb, 0x20, 0xdd, 0x4e, 0x9e, 0x08, 0x38, 0x24, 0x9a, 0x67, 0xe1, 0x38, 0xd1, 0x3e, 0xe2, 0xc9, 0x6f, 0x61, 0xe7, 0x71, 0x06, 0x15, 0x42, 0xaa, 0x16, 0xef, 0x20, 0xd8, 0x1e, 0x3a, 0x0f, 0x4e, 0x45, 0x21, 0xa6, 0xcd, 0x6c, 0x92, 0xfc, 0x26, 0xfe, 0xef, 0x03, 0xb6, 0x6c, 0x70, 0xe0, 0x35, 0xca, 0xfc, 0xc1, 0x9c, 0x96, 0xfb, 0x9d, 0x82, 0x91, 0x8f, 0xe1, 0x97, 0x78, 0x0e, 0xff, 0x0e, 0xda, 0x6e, 0x25, 0x12, 0xc5, 0x6e, 0x2a, 0x73, 0xd7, 0x70, 0x32, 0xb7, 0x68, 0x91, 0x9b, 0xea, 0x97, 0x72, 0xf5, 0x98, 0x9c, 0x8b, 0x6c, 0x65, 0xc3, 0xd1, 0xe9, 0x7a, 0x21, 0x80, 0xcc, 0x3a, 0x37, 0x57, 0x9d, 0xa7, 0x0c, 0xe9, 0x80, 0x6a, 0xc1, 0x28, 0x5a, 0x3e, 0xab, 0x41, 0x5c, 0x06, 0x07, 0xd8, 0x8c, 0xb8, 0x65, 0x42, 0xea, 0xb9, 0x0b, 0x9d, 0x2d, 0x67, 0xfa, 0xff, 0xfc, 0xad, 0x23, 0xa7, 0x14, 0x00, 0x0e, 0xe5, 0x9e, 0xd6, 0x8c, 0x95, 0x6e, 0x81, 0xc4, 0x45, 0x42, 0x88, 0x82, 0xf9, 0x7a, 0xf7, 0x4d, 0xb3, 0x62, 0xe4, 0x5c, 0x0d, 0x1b, 0xd8, 0x85, 0x6e, 0xed, 0x16, 0x6e, 0x4a, 0xec, 0x4b, 0xfd, 0xf9, 0x5e, 0xad, 0xb2, 0x51, 0xe2, 0xa1, 0xef, 0x80, 0x48, 0x52, 0xa9, 0xea, 0x77, 0xd3, 0x45, 0x77, 0xfe, 0x70, 0x83, 0x1a, 0x92, 0x8b, 0x10, 0x1b, 0x60, 0xac, 0x61, 0x3e, 0x7b, 0xa2, 0xe6, 0xba, 0x0a, 0x94, 0x01, 0x3a, 0x64, 0xc2, 0xf8, 0x21, 0x9f, 0xd3, 0x0b, 0xff, 0x40, 0x90, 0x99, 0x66, 0x7a, 0x78, 0x6f, 0x99, 0x32, 0x7b, 0xb0, 0x3e, 0x2f, 0x21, 0x87, 0xf4, 0x45, 0xb4, 0x6b, 0xee, 0xda, 0xb6, 0xd3, 0x25, 0xaf, 0xd9, 0x04, 0xe3, 0x95, 0x43, 0xe9, 0x3f, 0x4b, 0x6c, 0x54, 0x43, 0x24, 0x9d, 0x74, 0x4b, 0x2d, 0x1a, 0x43, 0xe1, 0x41, 0xe4, 0x76, 0x8b, 0xd4, 0x0a, 0xab, 0xe4, 0x05, 0x72, 0x44, 0xe1, 0xea, 0xdd, 0x9d, 0xae, 0xc1, 0x75, 0x71, 0x9e, 0x51, 0xa0, 0x93, 0xac, 0xe3, 0x2f, 0xe8, 0x2b, 0x2e, 0xac, 0xb5, 0xec, 0xb0, 0xda, 0x6c, 0x1f, 0xfe, 0x98, 0xc8, 0xce, 0xe7, 0x88, 0x6e, 0x30, 0x16, 0x70, 0xdf, 0xf8, 0x71, 0x13, 0xef, 0xed, 0x42, 0x82, 0x47, 0x1a, 0xfb, 0x6b, 0x8a, 0x0f, 0xdb, 0x50, 0x5e, 0x2e, 0x8e, 0x7d, 0xbc, 0x1a, 0x08, 0xa2, 0x2e, 0x96, 0x80, 0xbd, 0x09, 0x8b, 0xf1, 0x27, 0x58, 0x02, 0xbd, 0xb4, 0x59, 0x41, 0x3a, 0x3b, 0x23, 0x7d, 0x77, 0x13, 0xa1, 0xbb, 0xf5, 0x97, 0xe6, 0xad, 0xf2, 0xb6, 0x0e, 0xaf, 0x82, 0x37, 0x91, 0xb3, };
15064 static const u8 ed25519_655_test_vectors_expected_sig[] = {
15065 	0x6e, 0x7c, 0x66, 0xac, 0xc9, 0x54, 0xff, 0xd9, 0xdd, 0x4c, 0x1c, 0x63, 0x35, 0xab, 0x4f, 0xe7, 0x9d, 0xbb, 0xed, 0x78, 0x2c, 0x4a, 0x47, 0xec, 0x30, 0xd8, 0x48, 0xd8, 0xbb, 0x2b, 0x4f, 0x10, 0x69, 0xdc, 0x62, 0xe5, 0x22, 0xa1, 0xe8, 0x01, 0x7f, 0x54, 0xa6, 0x34, 0x5e, 0x17, 0x28, 0xc0, 0x73, 0xaf, 0x64, 0x47, 0x85, 0x6d, 0x8c, 0x1e, 0xd3, 0x58, 0x78, 0xb5, 0x71, 0xe5, 0x23, 0x0d, };
15066 static const ec_test_case ed25519_655_test_case = {
15067 	.name = "EDDSA25519-SHA512/wei25519 655",
15068 	.ec_str_p = &wei25519_str_params,
15069 	.priv_key = ed25519_655_test_vectors_priv_key,
15070 	.priv_key_len = sizeof(ed25519_655_test_vectors_priv_key),
15071 	.nn_random = NULL,
15072 	.hash_type = SHA512,
15073 	.msg = (const char *)ed25519_655_test_vectors_message,
15074 	.msglen = sizeof(ed25519_655_test_vectors_message),
15075 	.sig_type = EDDSA25519,
15076 	.exp_sig = ed25519_655_test_vectors_expected_sig,
15077 	.exp_siglen = sizeof(ed25519_655_test_vectors_expected_sig),
15078 	.adata = NULL,
15079 	.adata_len = 0
15080 };
15081 
15082 /************************************************/
15083 static const u8 ed25519_656_test_vectors_priv_key[] = {
15084 	0xaa, 0x0f, 0xda, 0xe2, 0xa5, 0xa4, 0xc9, 0xc0, 0x45, 0x21, 0x91, 0x30, 0x04, 0xcd, 0x89, 0xef, 0xbc, 0x88, 0xb2, 0xda, 0xdf, 0x5a, 0xbb, 0x24, 0x6f, 0x3c, 0xa7, 0xf6, 0x92, 0x35, 0x44, 0xaf, };
15085 static const u8 ed25519_656_test_vectors_message[] = {
15086 	0xb1, 0x41, 0x84, 0xcf, 0xdc, 0x4a, 0x5f, 0x0c, 0x7f, 0x83, 0xf9, 0x4a, 0x83, 0x2f, 0x58, 0x85, 0x07, 0xe2, 0xd7, 0x2a, 0x89, 0x32, 0x98, 0x70, 0x07, 0x85, 0x71, 0xd2, 0x08, 0xa0, 0xc4, 0x96, 0x0c, 0x2f, 0xdc, 0x4c, 0x23, 0x6c, 0xf8, 0x82, 0x29, 0x98, 0x1d, 0x12, 0xb1, 0x0a, 0x1b, 0x68, 0x84, 0xc8, 0x65, 0x0d, 0xda, 0xf1, 0xd4, 0xb2, 0xeb, 0x98, 0x15, 0x75, 0xb1, 0xe0, 0x19, 0xfe, 0x3f, 0x60, 0x42, 0x36, 0x76, 0xf8, 0x85, 0x6a, 0x99, 0x2c, 0xce, 0x36, 0xd6, 0xd0, 0xa3, 0xd0, 0x26, 0x63, 0x1c, 0x8c, 0x1e, 0x1f, 0xfe, 0x34, 0x13, 0x4b, 0x29, 0x6f, 0x40, 0x84, 0x2b, 0x6d, 0xf4, 0xf8, 0x6f, 0x83, 0x3e, 0x01, 0x75, 0xba, 0xe5, 0x0e, 0x86, 0xbf, 0x85, 0x6d, 0x1e, 0xe7, 0x99, 0x25, 0xf4, 0x34, 0xb8, 0xbf, 0x2c, 0x84, 0x51, 0x9f, 0x1f, 0x5d, 0x25, 0x38, 0x60, 0x49, 0xce, 0x3c, 0xa6, 0x17, 0x77, 0xe3, 0x0b, 0x70, 0x0a, 0x60, 0x2d, 0x39, 0x52, 0x50, 0xb6, 0x0f, 0xc6, 0x4a, 0xc6, 0xf8, 0xdb, 0x02, 0x7e, 0x8d, 0xa8, 0xb9, 0x55, 0x0f, 0x24, 0xed, 0x11, 0xa1, 0x1d, 0x9f, 0x9f, 0x9c, 0x5e, 0x0a, 0xf1, 0x45, 0xb8, 0x65, 0x97, 0x51, 0xac, 0x6b, 0x55, 0x86, 0x1f, 0x63, 0x88, 0xa6, 0x43, 0x36, 0xb3, 0x1e, 0xfe, 0x45, 0xc0, 0x80, 0x2d, 0x76, 0xa5, 0x34, 0x86, 0xa8, 0x1e, 0xba, 0x07, 0x31, 0x4b, 0x4d, 0x96, 0x1c, 0x14, 0x1a, 0xb3, 0x4e, 0x2f, 0x76, 0xed, 0xac, 0x0e, 0x6d, 0xe3, 0x14, 0x22, 0xdf, 0x79, 0x2a, 0xf0, 0x81, 0xe7, 0x69, 0xc7, 0xed, 0x05, 0xda, 0x9a, 0x5a, 0xf2, 0xfd, 0xf3, 0x6f, 0x14, 0x17, 0x69, 0x90, 0x8b, 0x70, 0x09, 0x37, 0xf0, 0xe1, 0x06, 0x8c, 0x13, 0x1f, 0x17, 0x6e, 0xb9, 0x6c, 0x67, 0xaf, 0xdb, 0xe7, 0x8f, 0x40, 0xd8, 0x60, 0x07, 0xfb, 0xcd, 0x47, 0xe4, 0x9e, 0x2e, 0x4c, 0x4c, 0xe0, 0x49, 0x93, 0x6a, 0xdf, 0xf1, 0xce, 0x3e, 0xac, 0x42, 0xb9, 0x6b, 0x34, 0x29, 0xb5, 0x62, 0x6b, 0x1a, 0xa6, 0x2a, 0xcd, 0xe0, 0x7f, 0x45, 0xa1, 0x3c, 0xe1, 0xbd, 0x21, 0x1f, 0x32, 0xbd, 0x7e, 0xfe, 0x47, 0x90, 0xc8, 0x37, 0x1e, 0xbf, 0x87, 0xc1, 0x64, 0x47, 0x7a, 0x5c, 0x9f, 0xa3, 0xe7, 0x8c, 0x2f, 0x88, 0x07, 0x7b, 0x09, 0x73, 0x44, 0xcf, 0xfa, 0x03, 0x1c, 0x44, 0x29, 0xc7, 0xf4, 0x2d, 0xca, 0x07, 0x73, 0x78, 0x50, 0xee, 0x7a, 0x76, 0x9b, 0x36, 0xd0, 0xf0, 0x62, 0x5a, 0xdf, 0x12, 0x0e, 0xa2, 0x3f, 0xf4, 0xe3, 0x93, 0xa4, 0xfd, 0xcb, 0x65, 0x58, 0xdb, 0xf9, 0xb2, 0x66, 0xa0, 0x32, 0xe3, 0xb0, 0x59, 0x9b, 0x9d, 0x66, 0x92, 0xfc, 0xeb, 0xd8, 0x15, 0xa3, 0x89, 0x76, 0x07, 0x85, 0x63, 0x25, 0xfc, 0xd0, 0x11, 0x5d, 0xc3, 0x10, 0xdb, 0x3a, 0x87, 0x92, 0xfb, 0xeb, 0xd3, 0x99, 0x49, 0x4c, 0x83, 0x71, 0xe5, 0x85, 0x72, 0x7b, 0x3d, 0x63, 0x24, 0x14, 0x49, 0x68, 0x93, 0xd0, 0x38, 0x13, 0xba, 0x1f, 0x99, 0x66, 0x1b, 0xce, 0xb9, 0xdc, 0x18, 0xec, 0x5d, 0xc2, 0x7f, 0x52, 0x67, 0x03, 0x18, 0x68, 0x77, 0x69, 0xfc, 0x67, 0x8d, 0xdc, 0x7e, 0x40, 0x22, 0x7c, 0x20, 0x05, 0x22, 0x01, 0x3f, 0x5c, 0x0e, 0xec, 0x0e, 0x47, 0x81, 0xe6, 0xfc, 0x15, 0x3a, 0x0c, 0x2f, 0x4f, 0x3f, 0x95, 0xe5, 0x17, 0xc8, 0x41, 0x99, 0x24, 0xab, 0x39, 0x99, 0x2a, 0xf8, 0xc1, 0x94, 0x65, 0x05, 0x7f, 0x13, 0x44, 0x86, 0x69, 0x6b, 0xa7, 0xfd, 0x46, 0x51, 0x76, 0x8b, 0x4e, 0x74, 0x9e, 0xf3, 0x6f, 0x02, 0x44, 0x46, 0x17, 0xcf, 0x97, 0xf0, 0xa4, 0x23, 0xe4, 0xc1, 0x3b, 0x7b, 0x66, 0xba, 0x2b, 0x6c, 0x45, 0x68, 0x78, 0xb0, 0xb5, 0x0c, 0xe2, 0xee, 0x5e, 0xc5, 0x64, 0xed, 0x88, 0x54, 0xf7, 0x82, 0xaa, 0x1d, 0x1c, 0x6a, 0xa7, 0x60, 0xf2, 0x52, 0x2c, 0x7d, 0x97, 0xb9, 0xb1, 0xab, 0xe0, 0xba, 0x81, 0x09, 0x59, 0xd7, 0xaa, 0x40, 0x3a, 0x99, 0x37, 0x5a, 0xa3, 0xe3, 0x9a, 0x11, 0x5d, 0x1f, 0xc6, 0xfe, 0xdd, 0x00, 0x2f, 0x38, 0x30, 0xa5, 0x0a, 0x83, 0x7d, 0xc7, 0x20, 0x32, 0x9e, 0xc0, 0xc7, 0x3d, 0x5b, 0xfd, 0x50, 0x03, 0x85, 0xc7, 0x36, 0x83, 0x82, 0x87, 0xe1, 0x92, 0x01, 0x52, 0x5d, 0x18, 0x9c, 0x3a, 0x08, 0x4c, 0xd5, 0xa3, 0xf3, 0x59, 0x87, 0x5e, 0x3b, 0x83, 0x25, 0x28, 0x9c, 0xed, 0x18, 0xb6, 0x3b, 0x00, 0xff, 0x9c, 0xd0, 0x70, 0xc3, 0xe6, 0x74, 0x44, 0xbd, 0x3d, 0x83, 0x46, 0x17, 0x40, 0x85, 0xcc, 0x45, 0x13, 0x5c, 0xaa, 0x0c, 0x67, 0xb3, 0x22, 0x6e, 0x4a, 0x52, 0xe9, 0xa1, 0xc5, 0x5a, 0xed, 0x7e, 0xc5, 0xfa, 0xde, 0x6b, 0xf1, 0x6c, 0x19, };
15087 static const u8 ed25519_656_test_vectors_expected_sig[] = {
15088 	0xf9, 0x37, 0x29, 0x89, 0x69, 0xca, 0x34, 0xd9, 0x75, 0x84, 0x44, 0x89, 0x07, 0x35, 0x8b, 0x0f, 0x47, 0x84, 0x1f, 0x30, 0x23, 0xaf, 0xc7, 0xef, 0x76, 0x81, 0x52, 0x1c, 0x5b, 0xe0, 0xf5, 0xe5, 0x62, 0x8a, 0x8f, 0x60, 0x7e, 0x2f, 0x31, 0x63, 0x6e, 0xf6, 0x36, 0x46, 0xb0, 0xe9, 0x89, 0x8a, 0x72, 0xad, 0x35, 0x57, 0x06, 0xd2, 0xc8, 0x06, 0x0f, 0xbc, 0x64, 0x0e, 0xfb, 0x3d, 0x66, 0x05, };
15089 static const ec_test_case ed25519_656_test_case = {
15090 	.name = "EDDSA25519-SHA512/wei25519 656",
15091 	.ec_str_p = &wei25519_str_params,
15092 	.priv_key = ed25519_656_test_vectors_priv_key,
15093 	.priv_key_len = sizeof(ed25519_656_test_vectors_priv_key),
15094 	.nn_random = NULL,
15095 	.hash_type = SHA512,
15096 	.msg = (const char *)ed25519_656_test_vectors_message,
15097 	.msglen = sizeof(ed25519_656_test_vectors_message),
15098 	.sig_type = EDDSA25519,
15099 	.exp_sig = ed25519_656_test_vectors_expected_sig,
15100 	.exp_siglen = sizeof(ed25519_656_test_vectors_expected_sig),
15101 	.adata = NULL,
15102 	.adata_len = 0
15103 };
15104 
15105 /************************************************/
15106 static const u8 ed25519_657_test_vectors_priv_key[] = {
15107 	0x71, 0x62, 0xfe, 0xf0, 0xac, 0xa4, 0x97, 0x4b, 0x09, 0x4a, 0x6a, 0x08, 0x05, 0x43, 0x95, 0xf8, 0x77, 0xff, 0x94, 0x33, 0xf1, 0xe3, 0x3e, 0x20, 0xe8, 0x8e, 0xaa, 0x90, 0xf9, 0x38, 0x99, 0x7d, };
15108 static const u8 ed25519_657_test_vectors_message[] = {
15109 	0xc9, 0x0f, 0x45, 0x0b, 0xda, 0x1c, 0x6e, 0xfd, 0x8d, 0x12, 0x78, 0xde, 0xbd, 0x7a, 0xe0, 0x3e, 0x2e, 0xac, 0x27, 0x40, 0xa5, 0xa9, 0x63, 0xfc, 0xf9, 0x6c, 0x50, 0x4e, 0x31, 0xd4, 0xd6, 0xfc, 0xc5, 0xe2, 0xb5, 0x2a, 0x25, 0x18, 0xd2, 0x74, 0x1c, 0x55, 0xe9, 0x59, 0x18, 0x67, 0xb2, 0x42, 0x32, 0x28, 0xf9, 0xc1, 0x9f, 0x33, 0xc6, 0xf3, 0x87, 0x05, 0xc6, 0x20, 0x36, 0xd4, 0x80, 0xff, 0x53, 0xdf, 0x12, 0x07, 0x7e, 0x38, 0xfd, 0xb0, 0x73, 0xc6, 0x73, 0x10, 0x5d, 0xa1, 0xe1, 0x16, 0x19, 0xba, 0x53, 0x21, 0xa7, 0x1b, 0x5f, 0x49, 0x93, 0x23, 0x4a, 0x11, 0x94, 0x8e, 0xa1, 0x10, 0xcf, 0xa2, 0x42, 0xbc, 0x23, 0xfa, 0xc9, 0xaa, 0xe4, 0x62, 0x60, 0x6e, 0x39, 0x64, 0x1c, 0xa7, 0x14, 0x7e, 0xeb, 0xba, 0x1e, 0xec, 0x55, 0x3f, 0xce, 0x94, 0xe5, 0x3e, 0x4e, 0x01, 0xb0, 0x73, 0xdd, 0x78, 0x0a, 0x2f, 0xf6, 0x78, 0xb3, 0x15, 0x72, 0xca, 0x11, 0xee, 0x08, 0x77, 0xe7, 0x56, 0xbc, 0xdb, 0x66, 0x53, 0xe5, 0xe1, 0xb4, 0xcb, 0xfb, 0x56, 0x9a, 0x9d, 0x60, 0xe3, 0xee, 0x33, 0x61, 0x82, 0xdc, 0xb9, 0xb2, 0x5d, 0x1b, 0xe6, 0xdb, 0xf9, 0xb5, 0xc7, 0x14, 0x6d, 0x77, 0x55, 0x85, 0x83, 0x4c, 0xab, 0xde, 0x02, 0x78, 0xae, 0xe5, 0xd5, 0x7c, 0x85, 0xe9, 0x83, 0xf8, 0x4d, 0x88, 0x33, 0xa9, 0xe1, 0x5b, 0xcc, 0x11, 0x19, 0x8e, 0x1c, 0x1d, 0xa6, 0xba, 0x59, 0x28, 0x21, 0x29, 0xf1, 0xdb, 0x96, 0x6f, 0x54, 0x60, 0xc8, 0xfb, 0x65, 0x30, 0xfb, 0xc3, 0xa9, 0x8a, 0x31, 0xfc, 0x0f, 0x4e, 0x9b, 0x33, 0x73, 0x66, 0xee, 0xc1, 0xdc, 0xe1, 0x08, 0xc8, 0x26, 0xd4, 0x90, 0x45, 0xab, 0xfa, 0x12, 0xee, 0x88, 0x79, 0x7f, 0x08, 0xf0, 0x68, 0x3f, 0xef, 0x77, 0xed, 0xaa, 0x35, 0x43, 0xb9, 0x1c, 0xb1, 0x18, 0xe4, 0x24, 0xd9, 0xc4, 0x08, 0xda, 0x54, 0x74, 0x31, 0x12, 0x51, 0x07, 0xd9, 0xb0, 0x74, 0x4c, 0x24, 0x43, 0xce, 0x99, 0x17, 0xe1, 0xe3, 0x28, 0xd8, 0x18, 0x50, 0xba, 0xbb, 0xc9, 0x4d, 0x92, 0x0a, 0x1d, 0x06, 0xe5, 0x24, 0xdb, 0xb6, 0xc2, 0x3d, 0xd8, 0x2e, 0x17, 0x87, 0x82, 0x2d, 0x71, 0xc4, 0xcd, 0xc4, 0x09, 0xae, 0x85, 0xba, 0x4d, 0xeb, 0x58, 0x1f, 0x93, 0x47, 0x48, 0xf7, 0x5e, 0x7a, 0x76, 0x9b, 0x9d, 0x68, 0xc4, 0x58, 0x9e, 0x59, 0x4e, 0x65, 0xcb, 0x6c, 0x8f, 0x49, 0x03, 0xff, 0xba, 0xbd, 0x5a, 0x32, 0x6e, 0x89, 0x44, 0x1a, 0x54, 0x2f, 0x8a, 0xc2, 0x64, 0xcc, 0xc6, 0x4e, 0x95, 0xa8, 0x98, 0x2a, 0x71, 0x0b, 0x6c, 0x56, 0xff, 0x7d, 0x10, 0x91, 0x6a, 0xfc, 0x40, 0x9e, 0xa8, 0xa4, 0x1b, 0x74, 0x67, 0x9d, 0xd6, 0xa7, 0x66, 0xf5, 0x9c, 0x52, 0xb9, 0x30, 0x5b, 0xa7, 0x33, 0xb1, 0x3c, 0x9e, 0x81, 0x1e, 0xe1, 0x30, 0x83, 0x92, 0x5f, 0x42, 0x00, 0x68, 0x2b, 0xd0, 0x5d, 0xea, 0x33, 0x95, 0x32, 0x52, 0x29, 0x70, 0xaa, 0x14, 0x9d, 0x00, 0x4a, 0x2e, 0xa2, 0x0f, 0xf4, 0x61, 0xe9, 0xec, 0x0f, 0x3b, 0x62, 0x56, 0x5c, 0x1a, 0x10, 0x62, 0x59, 0xc8, 0x36, 0x60, 0x5c, 0xc2, 0x7c, 0xad, 0xc9, 0x51, 0x5c, 0xb9, 0x97, 0x9e, 0x89, 0xaf, 0x28, 0x7c, 0x02, 0x7d, 0x75, 0xed, 0xbf, 0x87, 0xd5, 0xcf, 0xf6, 0x3a, 0x7f, 0xec, 0x9b, 0xd1, 0x0e, 0x78, 0x77, 0xab, 0x9b, 0xf8, 0x68, 0xd7, 0x34, 0xbd, 0x3a, 0x23, 0x74, 0xce, 0xf7, 0x02, 0x5c, 0xc4, 0xda, 0xb7, 0x10, 0xe2, 0x54, 0x80, 0x66, 0x85, 0xa1, 0x36, 0xec, 0xd0, 0x3e, 0x36, 0x77, 0x03, 0x46, 0x51, 0x3a, 0x15, 0x14, 0x5b, 0x89, 0x0e, 0xee, 0xf4, 0x7b, 0x80, 0xea, 0x08, 0xe4, 0x6c, 0x81, 0xd2, 0x02, 0xe5, 0x33, 0xe9, 0xa0, 0x6a, 0x38, 0xa6, 0xf7, 0x6e, 0xf5, 0x7a, 0x9c, 0x73, 0x6e, 0xc7, 0x8d, 0x00, 0xb8, 0x08, 0xe3, 0xff, 0xd9, 0xc7, 0x9b, 0x9d, 0xc7, 0xa2, 0xe5, 0x89, 0x90, 0x76, 0x56, 0xc9, 0x32, 0xab, 0x8a, 0x8b, 0x57, 0xda, 0x1a, 0x49, 0x5b, 0xa7, 0x45, 0x20, 0x15, 0xe7, 0x92, 0x4b, 0x52, 0x69, 0xab, 0x1f, 0x67, 0xbd, 0xb4, 0x3a, 0x35, 0x83, 0x14, 0x87, 0xab, 0x90, 0x02, 0xf5, 0x2d, 0x78, 0xb1, 0x34, 0xcd, 0x37, 0x51, 0x92, 0x5a, 0xaa, 0xb0, 0xb4, 0x5c, 0x8e, 0x6b, 0x0f, 0x2b, 0xf0, 0xcc, 0x9a, 0x46, 0x59, 0x31, 0x71, 0x08, 0xfb, 0xa9, 0x13, 0x6a, 0xab, 0xb0, 0x92, 0x1a, 0x58, 0xfb, 0xb9, 0xb5, 0x0e, 0x51, 0x24, 0x3f, 0x9b, 0x53, 0x18, 0x47, 0xdc, 0x96, 0x57, 0xe9, 0x6f, 0xba, 0xf7, 0xaa, 0x69, 0x8f, 0xe6, 0xfe, 0x44, 0xf9, 0x05, 0x90, 0x14, 0x4c, 0x70, 0x33, 0x72, 0x50, 0xc5, 0x8b, 0xc5, 0xdd, };
15110 static const u8 ed25519_657_test_vectors_expected_sig[] = {
15111 	0xae, 0x16, 0x1c, 0xce, 0x95, 0x40, 0x33, 0x84, 0xb6, 0x5c, 0x6b, 0xc9, 0xb3, 0x93, 0xeb, 0x07, 0x25, 0x64, 0xc3, 0x5f, 0x3a, 0x6c, 0x04, 0xfa, 0x51, 0x7a, 0xb0, 0x68, 0xbc, 0xd2, 0x37, 0x67, 0xcc, 0x0c, 0x8e, 0xdd, 0x92, 0xb1, 0xa1, 0x3a, 0xe9, 0xa9, 0xce, 0x48, 0x64, 0x13, 0x7f, 0xb8, 0x9c, 0x1f, 0x37, 0xb7, 0x48, 0xcf, 0xc9, 0x13, 0x4b, 0x67, 0x41, 0xba, 0x1b, 0x22, 0x28, 0x0d, };
15112 static const ec_test_case ed25519_657_test_case = {
15113 	.name = "EDDSA25519-SHA512/wei25519 657",
15114 	.ec_str_p = &wei25519_str_params,
15115 	.priv_key = ed25519_657_test_vectors_priv_key,
15116 	.priv_key_len = sizeof(ed25519_657_test_vectors_priv_key),
15117 	.nn_random = NULL,
15118 	.hash_type = SHA512,
15119 	.msg = (const char *)ed25519_657_test_vectors_message,
15120 	.msglen = sizeof(ed25519_657_test_vectors_message),
15121 	.sig_type = EDDSA25519,
15122 	.exp_sig = ed25519_657_test_vectors_expected_sig,
15123 	.exp_siglen = sizeof(ed25519_657_test_vectors_expected_sig),
15124 	.adata = NULL,
15125 	.adata_len = 0
15126 };
15127 
15128 /************************************************/
15129 static const u8 ed25519_658_test_vectors_priv_key[] = {
15130 	0xde, 0xa1, 0x80, 0xc9, 0x1b, 0x53, 0x3a, 0xaf, 0x73, 0x6b, 0xc5, 0xd3, 0xc8, 0xe4, 0x74, 0xd5, 0xe5, 0xd4, 0x75, 0xb7, 0x5b, 0x92, 0xcd, 0xe6, 0xbd, 0x1d, 0x10, 0xf3, 0xb8, 0xf5, 0x5a, 0xd4, };
15131 static const u8 ed25519_658_test_vectors_message[] = {
15132 	0x60, 0x61, 0x44, 0xb7, 0xd4, 0xf9, 0x6b, 0xef, 0x7f, 0x11, 0x2b, 0x6d, 0x41, 0xbc, 0xb5, 0x00, 0xd2, 0x13, 0x6c, 0x13, 0x4c, 0xed, 0xa2, 0x20, 0xe2, 0x4d, 0x0f, 0x15, 0x24, 0xec, 0xa1, 0x2c, 0x30, 0xf2, 0xb1, 0x02, 0xc7, 0xf3, 0x78, 0xd6, 0xbb, 0xa2, 0x59, 0xc5, 0xb4, 0xa5, 0xef, 0x8e, 0xc9, 0x30, 0x9d, 0x5c, 0x8d, 0xa7, 0xe8, 0xd2, 0xde, 0xd3, 0x79, 0x2a, 0xee, 0xea, 0x21, 0x08, 0xf7, 0x7d, 0x66, 0xb2, 0x30, 0x45, 0x93, 0x8e, 0xd6, 0x47, 0x51, 0xf2, 0x0d, 0x48, 0x32, 0x6b, 0xe2, 0xfb, 0x99, 0x62, 0x8c, 0xfb, 0x18, 0x73, 0xd7, 0xdd, 0x27, 0x58, 0x1c, 0x10, 0x5e, 0xc1, 0x32, 0x49, 0xa9, 0x52, 0xa5, 0x07, 0x84, 0xb8, 0xb3, 0x4c, 0xb3, 0xb2, 0xc1, 0xa0, 0x04, 0xfa, 0x8b, 0x62, 0x8a, 0x07, 0x67, 0xfa, 0x9a, 0xbf, 0x05, 0x8d, 0x95, 0x5d, 0xf8, 0x5d, 0x13, 0x4a, 0x0f, 0xc7, 0xf4, 0xb7, 0xd7, 0xfb, 0x0c, 0x8d, 0x31, 0xbc, 0xe3, 0x45, 0xdd, 0x0a, 0x42, 0x82, 0x14, 0x5a, 0xfb, 0x2f, 0xf1, 0x97, 0x51, 0xf2, 0xcc, 0x3a, 0x1c, 0xae, 0xa2, 0x42, 0xba, 0xaf, 0x53, 0x87, 0x49, 0xbf, 0x38, 0x80, 0x00, 0xe3, 0xdc, 0x1d, 0x73, 0x93, 0x59, 0xdf, 0xeb, 0xae, 0x64, 0xae, 0x1e, 0x10, 0xfb, 0x6f, 0xc1, 0x7c, 0xc9, 0xfb, 0x95, 0x05, 0x35, 0xc2, 0xde, 0x12, 0x95, 0x87, 0xa8, 0x68, 0x59, 0xb7, 0xbe, 0x36, 0xdf, 0xe9, 0xb6, 0xc1, 0x14, 0x1b, 0x25, 0xe0, 0x91, 0x5c, 0x8d, 0x4a, 0xa1, 0xcc, 0xea, 0xe7, 0x04, 0x6b, 0x3d, 0x7c, 0xfa, 0x94, 0x0b, 0xc9, 0x8d, 0x4d, 0x69, 0xfc, 0x5a, 0x30, 0xdd, 0xe1, 0xde, 0xe4, 0x2f, 0xb5, 0x27, 0x22, 0x81, 0xbf, 0x8f, 0x8e, 0x7f, 0x3e, 0x1a, 0x04, 0x39, 0x7f, 0xb4, 0xf3, 0xad, 0xef, 0xc5, 0x75, 0x32, 0xdd, 0xbd, 0xe3, 0x68, 0x33, 0xa6, 0x76, 0xe6, 0xf3, 0x9c, 0x82, 0xaf, 0xf6, 0xbf, 0x48, 0x32, 0xec, 0x97, 0x1e, 0x03, 0xbe, 0x38, 0x29, 0xc0, 0x2a, 0x20, 0x3c, 0x82, 0xd9, 0xeb, 0x8c, 0x16, 0x30, 0xee, 0x96, 0x93, 0xf4, 0x5d, 0x26, 0xf5, 0xf5, 0x1a, 0x31, 0x03, 0xca, 0x64, 0xd4, 0x68, 0xec, 0xea, 0xc1, 0xb2, 0x9a, 0xf4, 0xc4, 0x2e, 0xb2, 0x16, 0xd7, 0x6e, 0xc8, 0x99, 0x48, 0x36, 0xb4, 0xbe, 0xc7, 0x64, 0x89, 0xca, 0x50, 0x70, 0x68, 0x0c, 0x2c, 0x2e, 0xb4, 0x57, 0x21, 0x0a, 0x77, 0xc4, 0x7f, 0xdc, 0xbf, 0x60, 0x01, 0x72, 0x07, 0x3a, 0x53, 0xf1, 0x45, 0x3b, 0xb5, 0xc8, 0x04, 0x39, 0xc8, 0x82, 0xf0, 0x73, 0x6d, 0xe4, 0x06, 0x37, 0xb4, 0xf5, 0xab, 0x1f, 0x76, 0x1f, 0xf3, 0x55, 0xc6, 0xe9, 0xbd, 0x4a, 0xbd, 0xe7, 0x56, 0x0d, 0x5f, 0xc1, 0x13, 0xc8, 0x30, 0x15, 0x9a, 0x1b, 0x77, 0xc4, 0xe8, 0x7b, 0xc2, 0xc6, 0x98, 0x80, 0xa4, 0x0c, 0x58, 0x05, 0xec, 0xc8, 0xaa, 0xaf, 0x57, 0x57, 0x5b, 0xcc, 0xd8, 0x17, 0x7f, 0xc6, 0xb8, 0x35, 0x69, 0x23, 0x3c, 0x0f, 0x5c, 0xa2, 0x23, 0xac, 0x40, 0x13, 0xca, 0x10, 0x6c, 0xac, 0x28, 0x54, 0x70, 0x6a, 0xea, 0xd7, 0x14, 0xfa, 0x29, 0xf2, 0x86, 0x0a, 0x5f, 0x97, 0x53, 0x26, 0x8a, 0x36, 0x71, 0xd9, 0xf5, 0x9c, 0xde, 0x60, 0x48, 0xcf, 0x0b, 0x89, 0x86, 0x05, 0x0f, 0x7f, 0x54, 0x9e, 0x4f, 0xd7, 0x55, 0x7f, 0x2f, 0xc3, 0xfc, 0xdc, 0xcd, 0xdc, 0xef, 0xda, 0x58, 0x6a, 0x64, 0xb3, 0x00, 0x6e, 0x58, 0x25, 0xf2, 0x7c, 0xa3, 0x16, 0x87, 0xca, 0xf6, 0x63, 0xbd, 0x90, 0xa0, 0x5b, 0x11, 0x52, 0xd7, 0xc8, 0x8d, 0x7f, 0x10, 0x51, 0xa9, 0xd7, 0x91, 0x74, 0x86, 0x51, 0xd8, 0x88, 0xa6, 0xa1, 0x2f, 0x22, 0xd6, 0xc8, 0xc3, 0xf7, 0x8c, 0x2b, 0x86, 0xea, 0xf5, 0x39, 0x4b, 0x4e, 0xf7, 0xee, 0xfb, 0x89, 0x79, 0x7b, 0x25, 0xe5, 0x42, 0xdc, 0x93, 0x10, 0x2d, 0x02, 0x1a, 0x1d, 0x0b, 0xed, 0x6a, 0x7d, 0xcd, 0xd8, 0x10, 0x2b, 0x8f, 0x04, 0x30, 0xa0, 0xbc, 0x21, 0xd9, 0x04, 0xa3, 0xc9, 0x34, 0x6c, 0x01, 0x83, 0x43, 0xdd, 0x99, 0x37, 0xcb, 0x35, 0x25, 0x00, 0x07, 0xa2, 0x84, 0x82, 0x5d, 0xb0, 0x8e, 0x9a, 0x11, 0xfe, 0xe3, 0x1c, 0xff, 0x7a, 0x31, 0x4c, 0x48, 0xc4, 0x2d, 0x8b, 0x31, 0x4a, 0xcc, 0x27, 0x82, 0x2a, 0xf0, 0x3d, 0x19, 0x54, 0xc7, 0xcc, 0x8b, 0xf9, 0xad, 0x4e, 0x9e, 0x98, 0xf4, 0xad, 0x4e, 0xfb, 0x35, 0x52, 0x88, 0xda, 0xa8, 0xc9, 0x0d, 0xe9, 0x03, 0x7e, 0x64, 0xa7, 0x86, 0x1f, 0x5e, 0xe4, 0x3a, 0xda, 0x9f, 0x0f, 0xcc, 0xde, 0x34, 0xd0, 0xbc, 0xf5, 0x02, 0x88, 0x55, 0x0f, 0x70, 0x0f, 0x21, 0x5a, 0x79, 0x44, 0xa5, 0x38, 0x0e, 0x2a, 0x8e, 0x3f, 0x04, 0xf2, 0xb4, 0xf5, };
15133 static const u8 ed25519_658_test_vectors_expected_sig[] = {
15134 	0xd0, 0x83, 0x33, 0x3f, 0xb8, 0x4e, 0x79, 0xc9, 0xb3, 0x3e, 0x55, 0xe8, 0x19, 0x2d, 0x57, 0x1f, 0xfc, 0x8d, 0xc5, 0x07, 0x45, 0xb6, 0xb5, 0xfd, 0xd8, 0xc4, 0x4d, 0x92, 0xa6, 0x3f, 0xd1, 0x78, 0xc4, 0xe5, 0x7c, 0x2a, 0xb3, 0xa1, 0x21, 0x1c, 0x0b, 0xa2, 0xd3, 0x9d, 0xa3, 0x0b, 0x06, 0x62, 0x9d, 0x8d, 0x1c, 0xc1, 0xd9, 0xf2, 0x59, 0x32, 0x63, 0xd5, 0x24, 0xfa, 0x5a, 0x2e, 0xbc, 0x03, };
15135 static const ec_test_case ed25519_658_test_case = {
15136 	.name = "EDDSA25519-SHA512/wei25519 658",
15137 	.ec_str_p = &wei25519_str_params,
15138 	.priv_key = ed25519_658_test_vectors_priv_key,
15139 	.priv_key_len = sizeof(ed25519_658_test_vectors_priv_key),
15140 	.nn_random = NULL,
15141 	.hash_type = SHA512,
15142 	.msg = (const char *)ed25519_658_test_vectors_message,
15143 	.msglen = sizeof(ed25519_658_test_vectors_message),
15144 	.sig_type = EDDSA25519,
15145 	.exp_sig = ed25519_658_test_vectors_expected_sig,
15146 	.exp_siglen = sizeof(ed25519_658_test_vectors_expected_sig),
15147 	.adata = NULL,
15148 	.adata_len = 0
15149 };
15150 
15151 /************************************************/
15152 static const u8 ed25519_659_test_vectors_priv_key[] = {
15153 	0x9d, 0xaf, 0x6d, 0xbb, 0x7f, 0x76, 0x29, 0x66, 0xe7, 0xa5, 0x7c, 0x2e, 0xc1, 0x99, 0x6e, 0x9f, 0x5b, 0x55, 0x5b, 0x98, 0x66, 0xb8, 0xe3, 0x1d, 0xea, 0xab, 0x43, 0x56, 0xeb, 0x13, 0x81, 0x6e, };
15154 static const u8 ed25519_659_test_vectors_message[] = {
15155 	0x54, 0x45, 0x23, 0x90, 0x0d, 0xaa, 0x67, 0x78, 0xc0, 0x39, 0x1a, 0xe4, 0x04, 0x4a, 0x51, 0xc0, 0xc4, 0xa5, 0xe4, 0x44, 0x13, 0x3f, 0xbd, 0x77, 0x47, 0xd5, 0x39, 0xa7, 0x44, 0xfa, 0x60, 0xab, 0x5d, 0xc5, 0x4e, 0x18, 0x19, 0xdc, 0x8e, 0x56, 0x89, 0x9c, 0x56, 0xef, 0xd7, 0xef, 0x3d, 0xa3, 0x41, 0x79, 0x0e, 0xcc, 0x49, 0x64, 0x5e, 0xf3, 0x25, 0xc6, 0x56, 0x8a, 0xe9, 0x71, 0xd3, 0x0d, 0x21, 0xbb, 0x7f, 0x23, 0x46, 0x4f, 0x46, 0xa2, 0x4b, 0x80, 0xd4, 0x9b, 0xb9, 0x3c, 0x6e, 0x91, 0xde, 0x79, 0xb2, 0x43, 0x31, 0xd0, 0x70, 0x7f, 0x43, 0xd0, 0x66, 0x5d, 0x01, 0x97, 0x74, 0x3a, 0xdf, 0xf6, 0x90, 0xd6, 0x15, 0xa1, 0xc9, 0x25, 0x87, 0x77, 0xfc, 0x47, 0xd0, 0x21, 0x71, 0x42, 0x42, 0x6a, 0x47, 0x34, 0x89, 0x2e, 0xb6, 0x22, 0xab, 0x8e, 0x50, 0xbb, 0x12, 0x8e, 0xc3, 0xa8, 0x95, 0x26, 0x6a, 0x38, 0x61, 0xa3, 0x97, 0x68, 0xbc, 0x76, 0x09, 0x6f, 0x58, 0x1f, 0xd0, 0x82, 0xdf, 0x9b, 0x72, 0x23, 0xe8, 0x5a, 0x8a, 0xfb, 0xdb, 0x5c, 0xaa, 0x49, 0x22, 0xaf, 0x2a, 0x01, 0x4b, 0xf8, 0xa5, 0xcd, 0x11, 0xe5, 0xc5, 0xea, 0x93, 0xe9, 0x1c, 0xd4, 0x6d, 0x5a, 0x1b, 0x99, 0xb8, 0x5a, 0x26, 0x70, 0xe3, 0x21, 0xde, 0x2e, 0x32, 0x25, 0x5a, 0xfd, 0x67, 0xfe, 0x2c, 0x37, 0xfd, 0x93, 0x2c, 0xac, 0xa2, 0x2d, 0x24, 0x1f, 0xaf, 0x4c, 0xce, 0xfe, 0xff, 0x58, 0xd6, 0xbd, 0x04, 0xcf, 0xaf, 0x11, 0xde, 0xdd, 0x29, 0xc8, 0x71, 0x9f, 0xfc, 0xb0, 0x2e, 0xf6, 0x5c, 0x5d, 0x3e, 0xb7, 0x8b, 0x4f, 0xc0, 0xd1, 0x70, 0xa2, 0xe3, 0x43, 0x2c, 0xc8, 0x12, 0xf0, 0xd0, 0x41, 0xd9, 0x76, 0x0c, 0x13, 0xc1, 0x2f, 0x7c, 0x7f, 0x2f, 0x84, 0xfe, 0x5e, 0x0f, 0x70, 0x0c, 0x10, 0xb1, 0xa6, 0x9c, 0xa4, 0x66, 0xa7, 0x0b, 0xde, 0xff, 0x8d, 0xbe, 0xc7, 0xd3, 0x18, 0xfb, 0x09, 0xdd, 0xd8, 0x27, 0xef, 0x61, 0xca, 0xa6, 0x91, 0x0b, 0xbc, 0x06, 0x1c, 0xbd, 0xa2, 0xb5, 0x27, 0xef, 0x2e, 0x59, 0xed, 0x4c, 0x17, 0x22, 0x99, 0x72, 0xf8, 0x95, 0x67, 0xd7, 0x05, 0xde, 0x92, 0x31, 0x92, 0x4b, 0x41, 0xbb, 0x6e, 0x7c, 0x01, 0xfe, 0x85, 0x42, 0x64, 0x47, 0x4f, 0xa7, 0x6b, 0x1f, 0x88, 0xcd, 0x57, 0xea, 0xc3, 0x11, 0x17, 0x1a, 0xf1, 0x03, 0xd2, 0x30, 0x78, 0x42, 0x4a, 0x12, 0x67, 0x5f, 0x2f, 0xa3, 0x6c, 0x2d, 0xe0, 0xbf, 0x53, 0xc2, 0x95, 0xfe, 0xeb, 0x31, 0x57, 0xde, 0x95, 0x89, 0x22, 0x98, 0x6e, 0x32, 0x51, 0x3d, 0xfa, 0x33, 0xb3, 0x5e, 0x15, 0xc3, 0x94, 0xa1, 0x1c, 0x0f, 0xcc, 0x55, 0xb8, 0x2d, 0x6d, 0xd0, 0x59, 0x7c, 0xdd, 0xd2, 0x7e, 0xde, 0x7d, 0xe1, 0x29, 0x85, 0xa6, 0x16, 0xe6, 0x40, 0x26, 0xbe, 0xfb, 0x5d, 0x69, 0x04, 0x82, 0xb3, 0xff, 0x22, 0xc0, 0xdd, 0x21, 0xf2, 0x7a, 0x08, 0x6d, 0x37, 0xa0, 0x49, 0x9e, 0xa3, 0x6f, 0xe2, 0xc4, 0xb5, 0xa9, 0x59, 0xd1, 0x0e, 0x9a, 0x61, 0x0c, 0xab, 0x1f, 0xe0, 0xd2, 0x8c, 0xf1, 0x01, 0x3d, 0xca, 0xe6, 0x3d, 0x8f, 0xde, 0xe0, 0xec, 0xbd, 0x8b, 0x4e, 0x19, 0xd5, 0xd0, 0x40, 0xe2, 0xfa, 0xd7, 0xd0, 0x41, 0x3a, 0x38, 0xe8, 0xc4, 0xe7, 0x35, 0x52, 0xad, 0x46, 0x04, 0x7b, 0x5b, 0xbd, 0xd1, 0x5c, 0x09, 0xcc, 0x0d, 0x34, 0xe4, 0x8b, 0x91, 0xfd, 0xba, 0xe2, 0xa9, 0xd1, 0x62, 0xd4, 0xb2, 0x1e, 0xe2, 0x0a, 0x1e, 0xf5, 0x35, 0xea, 0x88, 0x35, 0x95, 0xbc, 0x49, 0x51, 0x69, 0x2a, 0x67, 0x16, 0x34, 0x54, 0xc7, 0x36, 0x7f, 0x13, 0x4b, 0xf6, 0x45, 0xd4, 0x8f, 0x99, 0x69, 0xe3, 0xd4, 0xf0, 0xf9, 0xea, 0xf4, 0x14, 0x4c, 0xe9, 0x80, 0xa0, 0xa2, 0xe3, 0x34, 0x2c, 0x74, 0x6c, 0x2b, 0xdc, 0x3c, 0xcd, 0xc2, 0xf8, 0xa7, 0xda, 0x57, 0xa0, 0xe8, 0x02, 0x87, 0x82, 0xd3, 0x0a, 0xf5, 0x85, 0x7d, 0x9e, 0xfb, 0x37, 0x66, 0x6d, 0xf6, 0x5d, 0x7c, 0xc3, 0x84, 0x71, 0x66, 0x61, 0xe6, 0x1f, 0xf5, 0xc0, 0x97, 0x52, 0x59, 0x5e, 0x94, 0x11, 0x2c, 0xa1, 0xa8, 0x40, 0xd6, 0xe4, 0xf6, 0xec, 0x0e, 0x55, 0x49, 0x4c, 0x5b, 0x44, 0xf7, 0xc0, 0xf0, 0xd4, 0xa9, 0x9c, 0xd7, 0x09, 0x05, 0xbf, 0x84, 0x85, 0x56, 0x17, 0x48, 0xf4, 0xdc, 0x0f, 0xd7, 0xa4, 0x4a, 0x1b, 0x13, 0x91, 0x13, 0xc3, 0x8a, 0x1e, 0x8e, 0xb5, 0xc7, 0xa2, 0x0f, 0x3e, 0x95, 0x2e, 0xae, 0xa8, 0xce, 0x38, 0xb2, 0x07, 0xc2, 0x8e, 0xd9, 0x72, 0x71, 0x8f, 0x03, 0x1f, 0x47, 0x7c, 0x62, 0x07, 0xce, 0x43, 0x3c, 0x51, 0x5f, 0x5a, 0xc2, 0x84, 0x0f, 0x49, 0x74, 0xf1, 0xf1, 0x69, 0x89, 0x62, 0x6c, 0x76, 0xbc, 0x98, };
15156 static const u8 ed25519_659_test_vectors_expected_sig[] = {
15157 	0x49, 0xb6, 0xbc, 0x46, 0xb7, 0xab, 0xb5, 0x69, 0x4d, 0xa9, 0x42, 0x15, 0xef, 0xc4, 0xb3, 0x0e, 0xea, 0x04, 0xae, 0x2e, 0x73, 0xeb, 0x2d, 0xa8, 0xe8, 0xc9, 0xef, 0x9b, 0xe2, 0x22, 0x24, 0x98, 0xb1, 0x7e, 0x13, 0x93, 0x96, 0x46, 0xc2, 0x9e, 0x32, 0xd6, 0x45, 0x58, 0x46, 0x40, 0x64, 0x15, 0x90, 0xb1, 0xbb, 0xdb, 0xfe, 0x24, 0xf3, 0x6c, 0x6f, 0x69, 0x4b, 0xf8, 0x72, 0x38, 0xee, 0x04, };
15158 static const ec_test_case ed25519_659_test_case = {
15159 	.name = "EDDSA25519-SHA512/wei25519 659",
15160 	.ec_str_p = &wei25519_str_params,
15161 	.priv_key = ed25519_659_test_vectors_priv_key,
15162 	.priv_key_len = sizeof(ed25519_659_test_vectors_priv_key),
15163 	.nn_random = NULL,
15164 	.hash_type = SHA512,
15165 	.msg = (const char *)ed25519_659_test_vectors_message,
15166 	.msglen = sizeof(ed25519_659_test_vectors_message),
15167 	.sig_type = EDDSA25519,
15168 	.exp_sig = ed25519_659_test_vectors_expected_sig,
15169 	.exp_siglen = sizeof(ed25519_659_test_vectors_expected_sig),
15170 	.adata = NULL,
15171 	.adata_len = 0
15172 };
15173 
15174 /************************************************/
15175 static const u8 ed25519_660_test_vectors_priv_key[] = {
15176 	0x71, 0x86, 0xf8, 0xd1, 0x68, 0xd9, 0xdd, 0xf1, 0x7e, 0xdb, 0xaf, 0x0e, 0x7b, 0x1a, 0xbc, 0xb2, 0x6d, 0xa3, 0xe4, 0xc0, 0x27, 0x2d, 0x98, 0x79, 0xc7, 0xfd, 0xff, 0x64, 0x21, 0xc4, 0xea, 0x50, };
15177 static const u8 ed25519_660_test_vectors_message[] = {
15178 	0xa3, 0xe6, 0xcb, 0x6b, 0x84, 0xcc, 0x5c, 0xf1, 0xfb, 0x1a, 0x84, 0x8b, 0x4b, 0x8e, 0xa7, 0xcb, 0x7c, 0x87, 0xe0, 0x44, 0x57, 0x50, 0xc6, 0x1f, 0x9a, 0xa5, 0xd7, 0x7d, 0xed, 0xdf, 0x94, 0x94, 0x63, 0xec, 0xd3, 0x9b, 0xfc, 0x71, 0xf2, 0x61, 0x0c, 0x2a, 0x94, 0x24, 0x84, 0x7f, 0xb7, 0x6f, 0x84, 0xc5, 0xda, 0x1f, 0xa1, 0x0e, 0xf7, 0x18, 0xa3, 0x45, 0x66, 0xce, 0xc1, 0xb3, 0xe8, 0x99, 0xe7, 0x25, 0x2e, 0x8d, 0x4d, 0x34, 0x60, 0x16, 0x49, 0x8f, 0xf1, 0x19, 0x97, 0x27, 0x50, 0x06, 0x16, 0x60, 0xba, 0xed, 0x31, 0x28, 0x27, 0x58, 0x31, 0x81, 0x07, 0x3d, 0x1d, 0xc7, 0x4b, 0x76, 0xc4, 0x30, 0xca, 0x30, 0xd4, 0x09, 0xe4, 0xe8, 0x43, 0x9c, 0x0f, 0xc4, 0x8c, 0x00, 0x68, 0x06, 0x29, 0xd4, 0x3a, 0xe2, 0xa7, 0x7d, 0x69, 0x22, 0x8f, 0x7f, 0x8a, 0x12, 0x53, 0xaf, 0x15, 0xbd, 0x2c, 0xb6, 0xbb, 0x1c, 0x16, 0x96, 0x55, 0x0c, 0x4c, 0x79, 0x0f, 0x44, 0x98, 0x69, 0x63, 0x0a, 0xb9, 0x2b, 0x9c, 0x11, 0xcd, 0xe1, 0xf9, 0x61, 0xaa, 0x21, 0x03, 0xec, 0x23, 0xf7, 0xd9, 0xf0, 0xfe, 0x9c, 0x3c, 0x41, 0x32, 0x58, 0x2e, 0xfa, 0x79, 0xa6, 0x6a, 0xe3, 0x42, 0x6e, 0x51, 0x05, 0xb8, 0x0b, 0xfe, 0x5e, 0x04, 0xdc, 0x8b, 0xb1, 0xe3, 0x8a, 0x31, 0x10, 0xcd, 0x72, 0x98, 0x4b, 0x3e, 0xf0, 0x2a, 0x0c, 0xa6, 0x2a, 0xb6, 0x38, 0xcb, 0xcf, 0xbc, 0x8a, 0x6b, 0x59, 0x3d, 0x26, 0x13, 0xdc, 0x06, 0xec, 0x86, 0xfe, 0xe3, 0x4f, 0x65, 0x18, 0xd4, 0xa3, 0xfb, 0xdc, 0x15, 0x72, 0x37, 0x17, 0x45, 0x64, 0xda, 0xeb, 0x66, 0x74, 0xcd, 0xc3, 0x4f, 0x4d, 0x65, 0x37, 0xcf, 0x81, 0xd8, 0xaa, 0x9b, 0xdd, 0xbf, 0x3a, 0xed, 0xa3, 0x12, 0xda, 0xae, 0xee, 0x33, 0x6f, 0x9e, 0xd8, 0xbf, 0xf8, 0x1e, 0x29, 0x4b, 0xc7, 0xd4, 0x4d, 0x25, 0xcd, 0x78, 0x70, 0x72, 0xe6, 0xcb, 0x41, 0x4b, 0x65, 0xfb, 0x7a, 0x84, 0x6f, 0xc0, 0x65, 0x36, 0x7b, 0xa8, 0xe3, 0x7b, 0xef, 0xfd, 0xf0, 0xb7, 0xba, 0x8f, 0x98, 0xcd, 0xf1, 0xeb, 0x87, 0x0f, 0x4e, 0x8b, 0x71, 0x30, 0xfa, 0x34, 0x29, 0xd2, 0xe2, 0x4b, 0xce, 0x59, 0x94, 0xda, 0xf1, 0xaa, 0x65, 0xe5, 0xf6, 0x03, 0xb6, 0x31, 0x05, 0x3d, 0xc5, 0x10, 0xb2, 0xf0, 0x97, 0xe8, 0x6e, 0x9b, 0x9b, 0x55, 0x23, 0x02, 0x75, 0x79, 0x68, 0xd0, 0x13, 0x6e, 0xe6, 0x75, 0x4c, 0x42, 0xa3, 0x2c, 0x99, 0x0a, 0xdd, 0x9c, 0xb5, 0x29, 0xbc, 0x89, 0x75, 0x1d, 0xfa, 0x4e, 0x5e, 0x3a, 0x0b, 0xad, 0xaf, 0x4c, 0xc4, 0x0b, 0x6a, 0x09, 0x50, 0x7f, 0x9f, 0xcd, 0x24, 0xc3, 0xca, 0x72, 0x25, 0x95, 0x99, 0xc6, 0xee, 0x58, 0xd8, 0x57, 0xb3, 0xa1, 0x89, 0xe0, 0x48, 0x90, 0x2e, 0x88, 0x5a, 0x36, 0x07, 0x42, 0x60, 0x93, 0xcb, 0x0f, 0xab, 0x43, 0x7c, 0x0f, 0xb0, 0xed, 0x2f, 0x1e, 0x96, 0xe9, 0x44, 0x1a, 0x7e, 0x95, 0x4f, 0xe3, 0xef, 0x76, 0x46, 0xe2, 0x6a, 0x39, 0xa0, 0x70, 0x33, 0xd0, 0xa1, 0x55, 0x5d, 0xfe, 0xed, 0x9a, 0x6f, 0x57, 0x79, 0x4a, 0xf3, 0xa2, 0xab, 0xf0, 0x05, 0x7e, 0x9f, 0x85, 0x3a, 0xe5, 0xc3, 0x01, 0x38, 0xfd, 0x80, 0xe2, 0xf2, 0x9c, 0x2f, 0x4a, 0x93, 0xad, 0x31, 0x45, 0xda, 0x10, 0xa3, 0xe3, 0x1c, 0xe9, 0xff, 0x97, 0x86, 0xac, 0x65, 0xd8, 0x60, 0x37, 0xd9, 0x8b, 0x7a, 0xa6, 0xd1, 0x1d, 0xe8, 0x80, 0x00, 0x10, 0xe1, 0x33, 0x86, 0x9e, 0xb6, 0x7a, 0x50, 0x39, 0xb9, 0xb8, 0xfe, 0xb6, 0xef, 0x90, 0x3d, 0x0c, 0xc7, 0x46, 0x41, 0x26, 0x07, 0xda, 0x72, 0x5c, 0xe2, 0xdc, 0x6a, 0x35, 0x21, 0x09, 0xdb, 0xc6, 0xa5, 0xe4, 0x0b, 0x17, 0x0c, 0x23, 0x05, 0x0b, 0xc4, 0xfb, 0x1e, 0xfa, 0x0c, 0x34, 0xfe, 0xc0, 0x0e, 0xae, 0x32, 0x19, 0xc2, 0x90, 0x40, 0xe8, 0xf5, 0x97, 0x8c, 0x93, 0x84, 0xee, 0x91, 0x5d, 0x8c, 0x93, 0x98, 0xdd, 0x12, 0x0d, 0x5c, 0x3c, 0xba, 0x38, 0xf8, 0x52, 0x6b, 0x06, 0x19, 0x7c, 0xb2, 0xc2, 0x61, 0xde, 0xc7, 0xd7, 0x26, 0xae, 0x13, 0x0f, 0x9b, 0xee, 0x17, 0x26, 0x17, 0x00, 0xe9, 0x99, 0x31, 0xfa, 0xc4, 0xb4, 0xdc, 0xa0, 0xf7, 0x58, 0x70, 0x1a, 0xcb, 0xf3, 0x70, 0x7d, 0x47, 0xdf, 0x53, 0x21, 0x13, 0x0e, 0xc1, 0x0b, 0xb3, 0xb1, 0x30, 0x78, 0xc4, 0xdc, 0x5d, 0xe3, 0x47, 0x0f, 0x15, 0x8b, 0x57, 0xdb, 0xeb, 0x87, 0x8b, 0x3a, 0x85, 0x24, 0xe0, 0xed, 0x2c, 0x95, 0x47, 0x54, 0x5f, 0x0f, 0xdd, 0xf1, 0x31, 0x25, 0xe4, 0x5b, 0xb2, 0x3d, 0x6a, 0x7b, 0x38, 0x3a, 0x18, 0x7f, 0x4c, 0x5d, 0x54, 0xa7, 0xb4, 0xc8, 0x3d, 0x59, 0x57, 0xf2, 0xcd, 0x7e, 0x6f, 0xbc, };
15179 static const u8 ed25519_660_test_vectors_expected_sig[] = {
15180 	0xa9, 0xc0, 0x49, 0x9f, 0xc2, 0x16, 0xa1, 0x45, 0x32, 0xd7, 0x36, 0x36, 0x5c, 0x63, 0x55, 0xf9, 0x38, 0xf8, 0xd8, 0x19, 0x4f, 0xa1, 0x13, 0x28, 0x48, 0xf8, 0x3e, 0x49, 0x04, 0x54, 0xd4, 0xbb, 0xf6, 0x92, 0x69, 0xf1, 0x22, 0x59, 0xfc, 0x6c, 0x07, 0x4c, 0x10, 0x15, 0xe4, 0x25, 0xe4, 0xf4, 0xf2, 0x7c, 0x02, 0x9c, 0x93, 0x33, 0x49, 0x51, 0x36, 0x1a, 0x35, 0xad, 0x11, 0x76, 0x54, 0x0e, };
15181 static const ec_test_case ed25519_660_test_case = {
15182 	.name = "EDDSA25519-SHA512/wei25519 660",
15183 	.ec_str_p = &wei25519_str_params,
15184 	.priv_key = ed25519_660_test_vectors_priv_key,
15185 	.priv_key_len = sizeof(ed25519_660_test_vectors_priv_key),
15186 	.nn_random = NULL,
15187 	.hash_type = SHA512,
15188 	.msg = (const char *)ed25519_660_test_vectors_message,
15189 	.msglen = sizeof(ed25519_660_test_vectors_message),
15190 	.sig_type = EDDSA25519,
15191 	.exp_sig = ed25519_660_test_vectors_expected_sig,
15192 	.exp_siglen = sizeof(ed25519_660_test_vectors_expected_sig),
15193 	.adata = NULL,
15194 	.adata_len = 0
15195 };
15196 
15197 /************************************************/
15198 static const u8 ed25519_661_test_vectors_priv_key[] = {
15199 	0xe8, 0x6e, 0x8c, 0x62, 0x56, 0x6e, 0x15, 0x75, 0x3b, 0xd5, 0x57, 0x7e, 0xaa, 0xe7, 0xf2, 0x41, 0x05, 0xb7, 0x40, 0x55, 0xa2, 0x56, 0x29, 0x58, 0x07, 0x08, 0xbf, 0xc8, 0x3a, 0xeb, 0xf0, 0x6c, };
15200 static const u8 ed25519_661_test_vectors_message[] = {
15201 	0x12, 0xfa, 0x63, 0x1b, 0x0e, 0x48, 0x2e, 0x9b, 0x9d, 0x63, 0x3e, 0x94, 0xb8, 0x2d, 0x8a, 0xb4, 0x36, 0xfe, 0x54, 0x8e, 0x5b, 0x95, 0xda, 0x92, 0x62, 0x46, 0x23, 0xd1, 0x3f, 0x2c, 0x70, 0xda, 0x77, 0x5b, 0xa1, 0x36, 0xc5, 0x22, 0x9c, 0x16, 0xa0, 0xc7, 0xa6, 0xfa, 0x91, 0x4b, 0x2f, 0xed, 0xa5, 0x64, 0xe1, 0x72, 0x19, 0xe4, 0x73, 0x70, 0xf9, 0x51, 0x5b, 0xb1, 0xd5, 0x9d, 0xe6, 0xe9, 0x58, 0x62, 0x04, 0xd9, 0x43, 0xdc, 0x56, 0x0d, 0x73, 0xe2, 0xe7, 0x57, 0xf7, 0xeb, 0x39, 0xbb, 0xc7, 0x11, 0x1b, 0xb4, 0x6b, 0xc6, 0x43, 0xc1, 0x3f, 0x60, 0x21, 0x12, 0x73, 0x9b, 0xec, 0x77, 0x8d, 0x7d, 0x4f, 0x49, 0xd0, 0x92, 0x56, 0x3d, 0x68, 0xf5, 0x77, 0x6e, 0x43, 0x0e, 0x3b, 0x0b, 0xf2, 0xdc, 0x1b, 0x01, 0xbe, 0xb3, 0x04, 0x01, 0x96, 0xda, 0x63, 0x02, 0x90, 0x8b, 0xfe, 0x91, 0xe0, 0xfc, 0x38, 0xe0, 0x4c, 0x15, 0x0e, 0xf9, 0x07, 0xdc, 0x73, 0x6c, 0x44, 0x5f, 0xf2, 0x1f, 0xdb, 0xd2, 0xdc, 0x1e, 0xac, 0x0a, 0x0f, 0x5d, 0x00, 0xa3, 0x0a, 0xf0, 0x28, 0xaf, 0xe2, 0xff, 0x61, 0x16, 0x2b, 0x75, 0x8c, 0x7d, 0xa9, 0xa7, 0x76, 0x66, 0x6a, 0x11, 0x23, 0x59, 0x43, 0x1c, 0x48, 0x85, 0x6a, 0x87, 0xca, 0x82, 0xd3, 0xdd, 0x1c, 0x8a, 0xf3, 0x76, 0x59, 0x86, 0x35, 0x43, 0x2b, 0xf8, 0x91, 0xbe, 0xcb, 0xc3, 0x3a, 0x8f, 0xda, 0x44, 0xce, 0x88, 0x3e, 0xa8, 0xaf, 0x4a, 0xd8, 0xb9, 0x1a, 0x92, 0x61, 0xce, 0x76, 0xb9, 0xe9, 0x39, 0xc4, 0x61, 0xfa, 0xc5, 0x3a, 0xe0, 0xf0, 0x76, 0xe8, 0x2d, 0x87, 0x9a, 0xac, 0xe8, 0xf3, 0x8f, 0x12, 0x0b, 0xc9, 0xb0, 0x4d, 0x81, 0x25, 0xed, 0x24, 0xbc, 0xd7, 0x79, 0xd9, 0xd2, 0x43, 0x86, 0xb1, 0xdd, 0x20, 0x17, 0xeb, 0xee, 0x81, 0x97, 0x37, 0x6e, 0x8c, 0x36, 0xfa, 0x3a, 0xef, 0x8c, 0x1e, 0x71, 0x3e, 0x2b, 0x8b, 0xce, 0x49, 0x66, 0xd8, 0x48, 0x88, 0x68, 0x1b, 0xa7, 0x84, 0x95, 0xfb, 0xd1, 0xd6, 0xcc, 0xa5, 0x86, 0x26, 0xe6, 0x85, 0x4c, 0xda, 0x60, 0x6b, 0x83, 0xd6, 0x29, 0x3d, 0x01, 0xe8, 0xe3, 0xe1, 0x3b, 0xbf, 0x4a, 0xac, 0x85, 0x1d, 0x9a, 0x1e, 0x00, 0xd0, 0x02, 0x4e, 0x26, 0x99, 0x3b, 0x0b, 0x30, 0x91, 0xbe, 0x7e, 0x80, 0x61, 0xbc, 0xbb, 0x3c, 0xbb, 0x23, 0x02, 0xce, 0xab, 0x96, 0x89, 0x7a, 0x8e, 0x1f, 0xf3, 0x67, 0xec, 0x86, 0x25, 0x69, 0x3c, 0xf3, 0x15, 0x34, 0x12, 0x4a, 0x9d, 0x5d, 0x72, 0x5b, 0xca, 0xe0, 0x01, 0xd6, 0x7b, 0xc2, 0x11, 0x1d, 0x0a, 0xb8, 0x11, 0x1f, 0xa1, 0xd2, 0x4e, 0x4e, 0xd0, 0x6d, 0x63, 0x58, 0x3c, 0xe6, 0x90, 0xf2, 0xa0, 0x46, 0x26, 0xd7, 0x91, 0xd2, 0x9e, 0x3e, 0x31, 0x5a, 0x41, 0x5b, 0xf2, 0xe8, 0x53, 0xa5, 0xf2, 0x97, 0x4c, 0x83, 0x3a, 0x3f, 0xe2, 0xe2, 0x90, 0x9c, 0xf6, 0x69, 0xc7, 0x3c, 0x1f, 0x59, 0x39, 0x2d, 0x30, 0xc3, 0x7f, 0x3b, 0x9c, 0x5a, 0x3d, 0xdc, 0xfd, 0x75, 0x62, 0x1f, 0xda, 0x36, 0xe4, 0xba, 0x2f, 0x16, 0x14, 0x78, 0x58, 0xf6, 0xf2, 0x06, 0xb9, 0xa1, 0x40, 0xf1, 0xdd, 0xc1, 0x46, 0x6c, 0x9a, 0x53, 0xed, 0x73, 0xf8, 0x24, 0x90, 0xbc, 0x95, 0x32, 0x2c, 0x95, 0x5f, 0x61, 0xd1, 0x1c, 0xb5, 0x1d, 0x5e, 0x8a, 0x58, 0xc6, 0xb3, 0xcb, 0x0f, 0xdf, 0x04, 0x19, 0x76, 0x32, 0x01, 0xbe, 0xea, 0x93, 0xa8, 0x51, 0x2b, 0x14, 0x05, 0x24, 0x5b, 0xfc, 0x38, 0x41, 0x55, 0xad, 0xc5, 0xce, 0x77, 0x8a, 0xa7, 0x4d, 0x00, 0xa3, 0x22, 0x72, 0x64, 0x65, 0x11, 0x9a, 0xf7, 0x95, 0x01, 0xf0, 0x40, 0xdd, 0x0a, 0x7a, 0x84, 0x06, 0x00, 0x01, 0xca, 0x89, 0xd2, 0xfe, 0x5e, 0x9c, 0xf9, 0x77, 0x9a, 0x54, 0x7e, 0x3e, 0xbd, 0x3b, 0xf8, 0x64, 0x29, 0x90, 0xa3, 0x69, 0x0e, 0x2b, 0x2c, 0x3e, 0x54, 0xcb, 0x7e, 0xee, 0xea, 0xbc, 0x24, 0x2b, 0x4d, 0xd9, 0x92, 0x74, 0xc4, 0x25, 0xa8, 0x67, 0x93, 0x1c, 0x92, 0x9c, 0xa7, 0x08, 0x08, 0x60, 0x1c, 0x39, 0x08, 0xcf, 0xd7, 0x88, 0x86, 0x7d, 0x68, 0x7d, 0xc3, 0x66, 0xe9, 0x76, 0x35, 0x0c, 0x9e, 0x70, 0x58, 0x4b, 0xd3, 0x90, 0xd6, 0x7e, 0xeb, 0x7c, 0xfe, 0xa2, 0x6c, 0x42, 0x68, 0x6d, 0x3d, 0x96, 0x20, 0xf6, 0x2f, 0x64, 0x10, 0x4e, 0xf4, 0x1e, 0xd1, 0xd1, 0x30, 0xd7, 0x9e, 0x32, 0x59, 0x38, 0x48, 0x62, 0x96, 0xb7, 0xab, 0x2d, 0x2a, 0xdb, 0x78, 0x52, 0x67, 0x43, 0xe4, 0x00, 0xac, 0xb2, 0xb7, 0xaf, 0x09, 0x62, 0x8d, 0x68, 0xcf, 0x94, 0x75, 0x10, 0x16, 0x25, 0xc2, 0x0e, 0x1d, 0xc0, 0x51, 0xd7, 0x3c, 0x99, 0x7c, 0x95, 0x2e, 0x12, 0x81, 0x2c, 0x80, 0x5b, 0x68, 0xff, };
15202 static const u8 ed25519_661_test_vectors_expected_sig[] = {
15203 	0x54, 0xd2, 0xfd, 0x44, 0xac, 0xf9, 0xe2, 0x09, 0xbc, 0x7e, 0x43, 0x33, 0x72, 0xbd, 0x73, 0x07, 0x4d, 0x07, 0x80, 0x6a, 0x77, 0xc6, 0xce, 0x22, 0x8e, 0x9b, 0xe9, 0x94, 0x41, 0x8b, 0x00, 0xc7, 0xec, 0xbc, 0xb7, 0xac, 0x00, 0x6c, 0x29, 0x4a, 0xec, 0x9d, 0xe6, 0x68, 0x57, 0x2a, 0xdd, 0x51, 0x7c, 0x06, 0xb4, 0xeb, 0x4f, 0xe2, 0xff, 0x35, 0x23, 0xbf, 0x04, 0x3d, 0xf4, 0x4d, 0x3d, 0x0d, };
15204 static const ec_test_case ed25519_661_test_case = {
15205 	.name = "EDDSA25519-SHA512/wei25519 661",
15206 	.ec_str_p = &wei25519_str_params,
15207 	.priv_key = ed25519_661_test_vectors_priv_key,
15208 	.priv_key_len = sizeof(ed25519_661_test_vectors_priv_key),
15209 	.nn_random = NULL,
15210 	.hash_type = SHA512,
15211 	.msg = (const char *)ed25519_661_test_vectors_message,
15212 	.msglen = sizeof(ed25519_661_test_vectors_message),
15213 	.sig_type = EDDSA25519,
15214 	.exp_sig = ed25519_661_test_vectors_expected_sig,
15215 	.exp_siglen = sizeof(ed25519_661_test_vectors_expected_sig),
15216 	.adata = NULL,
15217 	.adata_len = 0
15218 };
15219 
15220 /************************************************/
15221 static const u8 ed25519_662_test_vectors_priv_key[] = {
15222 	0xa5, 0xca, 0xb2, 0x72, 0x7e, 0x2f, 0x13, 0x1a, 0x4d, 0x63, 0xfa, 0xce, 0xe7, 0x99, 0x33, 0x66, 0x63, 0x93, 0x0a, 0xa0, 0x7a, 0xfd, 0xa6, 0xbd, 0x5a, 0x8e, 0x98, 0x5a, 0x02, 0xde, 0xb1, 0xea, };
15223 static const u8 ed25519_662_test_vectors_message[] = {
15224 	0x48, 0x34, 0x39, 0x15, 0x4d, 0xd5, 0xe5, 0xd1, 0x09, 0x85, 0x7c, 0x24, 0xd1, 0xc4, 0xe7, 0xfb, 0xbe, 0xfd, 0x2f, 0x38, 0x65, 0x1d, 0xa8, 0x12, 0x89, 0xf2, 0xad, 0x3d, 0x61, 0x54, 0x30, 0x65, 0x38, 0xb8, 0x2a, 0xc7, 0xdb, 0xa9, 0x21, 0x0e, 0x74, 0x07, 0x76, 0xed, 0xe4, 0xcc, 0xf5, 0x1d, 0x4f, 0x63, 0x09, 0x4b, 0x03, 0xe4, 0x6a, 0xd3, 0xaa, 0x3c, 0x31, 0x94, 0x7d, 0x8c, 0x36, 0xce, 0x6f, 0x94, 0xe8, 0x52, 0x96, 0xbd, 0xed, 0xcc, 0x1e, 0xad, 0x62, 0xea, 0xa1, 0x44, 0x1e, 0xcd, 0xe0, 0xa2, 0x25, 0xd0, 0xbf, 0x02, 0xed, 0xca, 0xcf, 0x86, 0x50, 0x14, 0x89, 0x9a, 0xf6, 0x6d, 0x98, 0x08, 0x04, 0x0c, 0x2d, 0x02, 0x00, 0x0a, 0x0f, 0x5c, 0xe4, 0xf1, 0x68, 0x3c, 0x1a, 0x49, 0x52, 0x76, 0xd9, 0xc4, 0xd7, 0x28, 0xc9, 0xec, 0xd6, 0xf0, 0x78, 0xdb, 0x8a, 0x0c, 0xfc, 0x26, 0x71, 0x87, 0x23, 0x85, 0x62, 0xab, 0x1a, 0x1e, 0xa2, 0x81, 0x3f, 0xb4, 0xf1, 0x2e, 0x87, 0x8e, 0x1b, 0xa1, 0x43, 0xf4, 0xd0, 0x6a, 0x3b, 0xc8, 0x10, 0x0c, 0x35, 0x50, 0x11, 0x8d, 0x69, 0xda, 0xe6, 0x7b, 0x55, 0xed, 0x69, 0x2a, 0xcf, 0x94, 0x44, 0xda, 0xa5, 0xc3, 0xe3, 0xc0, 0xa9, 0x8e, 0xe2, 0x8c, 0xf1, 0x72, 0xde, 0x0c, 0x58, 0x4c, 0x9f, 0x2e, 0xc9, 0xbb, 0x6e, 0x9b, 0x57, 0xf5, 0x72, 0xa8, 0x6f, 0xf8, 0x72, 0x9f, 0x65, 0xf4, 0xc6, 0x5b, 0x7f, 0xea, 0xcc, 0xaa, 0x21, 0x72, 0x0e, 0xd7, 0x9e, 0x90, 0x61, 0x8b, 0xca, 0xfb, 0xfd, 0x95, 0x33, 0xda, 0x85, 0x23, 0x2b, 0x45, 0x08, 0x83, 0xaa, 0x91, 0x9f, 0x82, 0x7f, 0x04, 0xc4, 0xa9, 0x7b, 0xf5, 0x13, 0x90, 0xd4, 0xf8, 0x56, 0x9c, 0x19, 0x17, 0x26, 0xf4, 0x4f, 0x7e, 0x39, 0xfb, 0x3d, 0xb7, 0x3b, 0xfc, 0x41, 0x5b, 0x6f, 0xfc, 0xa8, 0xb9, 0x1a, 0xca, 0xad, 0x69, 0x23, 0x85, 0x72, 0xf1, 0x4b, 0x49, 0x98, 0x5e, 0xa0, 0x3c, 0x98, 0xd7, 0xb1, 0xd4, 0x4b, 0x3a, 0x65, 0x54, 0x76, 0x5b, 0x19, 0xab, 0xf9, 0xb2, 0x52, 0x74, 0xe9, 0x7e, 0x46, 0x34, 0xe4, 0xb0, 0xf9, 0xe8, 0x02, 0xeb, 0x6f, 0x74, 0x3f, 0xff, 0x95, 0x07, 0x57, 0xee, 0x01, 0x3a, 0x69, 0x88, 0x22, 0x18, 0x81, 0xa7, 0x44, 0x3f, 0x1f, 0x32, 0xbc, 0xcb, 0x00, 0x7e, 0x99, 0x37, 0x9c, 0x7c, 0xa4, 0xf9, 0x06, 0xd5, 0xfe, 0x11, 0xcb, 0x12, 0xf6, 0x6b, 0x53, 0xa3, 0xd2, 0x1a, 0xc9, 0x47, 0xbe, 0x0c, 0x81, 0x50, 0xbc, 0xd0, 0x4f, 0x1c, 0x81, 0x6b, 0x3f, 0x0c, 0x07, 0xc5, 0xfb, 0xc0, 0x90, 0x5a, 0x71, 0x36, 0x95, 0x68, 0x49, 0xda, 0x03, 0x83, 0x6d, 0xae, 0xc2, 0x5c, 0x3e, 0x1a, 0x06, 0xec, 0x3a, 0xeb, 0x20, 0x56, 0x48, 0x17, 0x6f, 0x89, 0xf4, 0xa2, 0x91, 0xfa, 0xc4, 0xf1, 0xd3, 0x89, 0x9f, 0x56, 0xc9, 0x06, 0x5e, 0xeb, 0xb8, 0x76, 0x8b, 0x84, 0xb3, 0x1b, 0x7c, 0xc0, 0x31, 0x08, 0xbd, 0x08, 0x88, 0x33, 0x8d, 0x17, 0x74, 0x99, 0x49, 0x70, 0x29, 0x2d, 0x93, 0x50, 0x31, 0xfe, 0xa3, 0x35, 0xd9, 0xe7, 0x90, 0x8f, 0xe0, 0x25, 0x48, 0x89, 0xc0, 0xb1, 0x71, 0xcf, 0xe0, 0xaf, 0x2e, 0x6f, 0xde, 0x7a, 0x5e, 0xa3, 0xde, 0x1f, 0xdc, 0xda, 0xe5, 0x37, 0xb6, 0x31, 0x31, 0x19, 0xc2, 0x7f, 0x77, 0x20, 0x24, 0xef, 0x36, 0xe4, 0x5c, 0x8b, 0x89, 0xf2, 0x6c, 0x93, 0xd9, 0xee, 0xa1, 0x37, 0x25, 0xe1, 0x2d, 0x81, 0x0c, 0xf9, 0x82, 0x4a, 0xea, 0x04, 0xcb, 0x80, 0x2d, 0xa7, 0xe4, 0x58, 0xe8, 0x42, 0xca, 0x37, 0x5e, 0x36, 0x71, 0x34, 0x6e, 0x00, 0x89, 0xde, 0xc5, 0x71, 0xbe, 0x16, 0x9b, 0x0d, 0x90, 0x96, 0x6b, 0xf3, 0x68, 0xfe, 0x36, 0x98, 0xfd, 0x3e, 0x72, 0xbf, 0x16, 0x24, 0x9d, 0xd9, 0x00, 0xaf, 0x6d, 0x29, 0xff, 0xa4, 0x83, 0x51, 0x36, 0x0f, 0x12, 0x24, 0x17, 0x14, 0x58, 0x5f, 0x7a, 0x9b, 0x4c, 0x7b, 0xaf, 0xc9, 0x52, 0x22, 0x67, 0x35, 0xde, 0x14, 0x62, 0x74, 0x3d, 0x78, 0xab, 0xad, 0x0f, 0x67, 0x11, 0xf2, 0x49, 0x5f, 0x33, 0x13, 0xad, 0x4e, 0x0b, 0xa2, 0x16, 0xb0, 0xde, 0xa5, 0xdc, 0x15, 0x16, 0xa9, 0x54, 0x9f, 0x7d, 0xfc, 0xfe, 0xb9, 0x3e, 0x59, 0x1a, 0xbe, 0xda, 0x5e, 0xa3, 0xc7, 0x04, 0x59, 0x06, 0x52, 0x3b, 0x40, 0x86, 0x8c, 0xa5, 0x73, 0x5d, 0x6a, 0x33, 0x71, 0xc3, 0xc2, 0x94, 0xc1, 0x11, 0x26, 0xd0, 0x97, 0xf4, 0xc7, 0x08, 0xe9, 0x04, 0x64, 0xc1, 0xad, 0x91, 0x42, 0xfa, 0x0b, 0xed, 0xf0, 0x7d, 0xfc, 0x5f, 0x4c, 0xb6, 0x7d, 0x6e, 0xd8, 0x0f, 0x1b, 0xfe, 0x72, 0x68, 0x3c, 0xfb, 0x2a, 0xd6, 0x65, 0x30, 0xdc, 0x43, 0xd7, 0x02, 0x3f, 0x37, 0x90, 0xff, 0x42, 0xd9, 0x5b, 0xd8, };
15225 static const u8 ed25519_662_test_vectors_expected_sig[] = {
15226 	0x13, 0x8c, 0x7a, 0x8e, 0xca, 0x5b, 0x5c, 0x37, 0x15, 0x88, 0x13, 0x84, 0x3c, 0x9a, 0x90, 0x4e, 0x5f, 0x53, 0x0a, 0xd9, 0x71, 0xee, 0x43, 0x2a, 0x44, 0xf3, 0x44, 0xf8, 0xc6, 0x4b, 0xbf, 0xaf, 0x10, 0x2f, 0xf4, 0x1d, 0xaa, 0x5c, 0xf7, 0x22, 0xa4, 0xbc, 0x66, 0x40, 0x58, 0x87, 0x59, 0xb8, 0xf3, 0x6f, 0x9c, 0x05, 0x9e, 0xab, 0x93, 0x6c, 0xc4, 0x5e, 0xd4, 0x79, 0x63, 0x94, 0xa0, 0x02, };
15227 static const ec_test_case ed25519_662_test_case = {
15228 	.name = "EDDSA25519-SHA512/wei25519 662",
15229 	.ec_str_p = &wei25519_str_params,
15230 	.priv_key = ed25519_662_test_vectors_priv_key,
15231 	.priv_key_len = sizeof(ed25519_662_test_vectors_priv_key),
15232 	.nn_random = NULL,
15233 	.hash_type = SHA512,
15234 	.msg = (const char *)ed25519_662_test_vectors_message,
15235 	.msglen = sizeof(ed25519_662_test_vectors_message),
15236 	.sig_type = EDDSA25519,
15237 	.exp_sig = ed25519_662_test_vectors_expected_sig,
15238 	.exp_siglen = sizeof(ed25519_662_test_vectors_expected_sig),
15239 	.adata = NULL,
15240 	.adata_len = 0
15241 };
15242 
15243 /************************************************/
15244 static const u8 ed25519_663_test_vectors_priv_key[] = {
15245 	0xcb, 0x63, 0x19, 0x61, 0x37, 0x79, 0xa4, 0xef, 0x66, 0xbe, 0x14, 0x14, 0x4b, 0x28, 0x40, 0xad, 0x01, 0x67, 0xc0, 0x3f, 0x3b, 0x8d, 0x04, 0xff, 0x59, 0x2c, 0xd1, 0xd2, 0xd7, 0x22, 0xe3, 0x30, };
15246 static const u8 ed25519_663_test_vectors_message[] = {
15247 	0x87, 0x4a, 0x6c, 0x81, 0xd6, 0xdb, 0x71, 0x33, 0xa7, 0x91, 0x69, 0x76, 0x0c, 0x84, 0xd3, 0x6e, 0xea, 0x3d, 0x42, 0xea, 0x08, 0x92, 0xb7, 0xc8, 0xdd, 0xe8, 0x44, 0xa3, 0xa6, 0xb6, 0x0a, 0xa9, 0xf2, 0x66, 0x07, 0x26, 0xc9, 0xc4, 0xdd, 0x26, 0xa0, 0x1f, 0x4e, 0xd0, 0xdc, 0x1c, 0x53, 0xba, 0x60, 0x05, 0x46, 0x3f, 0x7e, 0xa6, 0x4a, 0x1e, 0xc6, 0x39, 0x53, 0xbc, 0x3d, 0x81, 0x05, 0x2a, 0x2f, 0x10, 0x84, 0x38, 0x9a, 0x77, 0x06, 0xdf, 0x74, 0xed, 0x41, 0x36, 0x08, 0x2a, 0xb5, 0xc6, 0xe8, 0xc7, 0xf4, 0x11, 0xdf, 0x9d, 0x3a, 0x0f, 0x3c, 0x40, 0xf5, 0xa6, 0x0e, 0x2d, 0x21, 0xa8, 0x54, 0x8e, 0x7a, 0x25, 0xde, 0xe3, 0x40, 0x30, 0xb3, 0xc3, 0xe7, 0x5c, 0xaa, 0x93, 0xdd, 0xaa, 0x9c, 0x19, 0x0c, 0xb6, 0xde, 0xda, 0x24, 0x13, 0xd5, 0x4e, 0x37, 0x3d, 0x43, 0x53, 0xdb, 0xa4, 0x3d, 0x39, 0x49, 0x1a, 0x2f, 0x56, 0xc8, 0xb3, 0x6d, 0x45, 0x01, 0x6f, 0x77, 0xd7, 0x47, 0x16, 0x91, 0x63, 0x45, 0x39, 0xe7, 0x6c, 0x4f, 0xb4, 0x19, 0x13, 0x47, 0x2b, 0x0a, 0x23, 0x05, 0x4f, 0x54, 0x8f, 0x54, 0xb1, 0xe7, 0x10, 0x9c, 0x8b, 0x65, 0x21, 0xb5, 0x7a, 0xe9, 0x81, 0xd0, 0x50, 0x31, 0x6a, 0x33, 0xc4, 0x9c, 0x71, 0x16, 0x26, 0x8d, 0xcc, 0x4b, 0x78, 0xc2, 0xba, 0xe5, 0x3a, 0x3a, 0xe4, 0xdd, 0x17, 0x8b, 0xb8, 0xb7, 0x6b, 0xb3, 0xbe, 0xfe, 0x19, 0xe4, 0x1a, 0x2c, 0xf1, 0x2c, 0xeb, 0xb7, 0x11, 0x68, 0xf9, 0x71, 0xf2, 0x02, 0x46, 0x1c, 0x63, 0xf7, 0xd6, 0xee, 0xf1, 0x07, 0xf5, 0xb1, 0x03, 0x0e, 0xdd, 0x4e, 0x75, 0x00, 0x9e, 0x91, 0x16, 0xc3, 0xcd, 0x0e, 0x8b, 0xdd, 0xc2, 0x99, 0xb4, 0x1f, 0x1a, 0x45, 0xe7, 0x84, 0xef, 0xa6, 0x46, 0xda, 0xda, 0x64, 0x06, 0x8e, 0x92, 0x48, 0xec, 0x98, 0x8f, 0x23, 0x26, 0x34, 0xad, 0x3d, 0x5a, 0xab, 0x19, 0x56, 0x0e, 0x83, 0x0a, 0x5b, 0xd6, 0x65, 0x45, 0x7c, 0x94, 0x29, 0x5e, 0x1a, 0xf0, 0x16, 0x0f, 0xbc, 0xe2, 0x72, 0xef, 0x48, 0x45, 0xdd, 0xf0, 0xc4, 0xf2, 0x4d, 0x97, 0x6f, 0x51, 0x86, 0x90, 0xea, 0x1f, 0x82, 0xff, 0x4d, 0xfa, 0x48, 0x13, 0x64, 0x1a, 0x67, 0x59, 0x8e, 0xa9, 0x84, 0x01, 0xe0, 0xff, 0x10, 0xa0, 0xe5, 0x82, 0xe2, 0xb9, 0x08, 0x67, 0xb4, 0xe6, 0x23, 0x2c, 0x34, 0xea, 0x49, 0x9c, 0x16, 0x99, 0x09, 0xa4, 0x41, 0x26, 0xf3, 0x77, 0xd8, 0xcc, 0x1c, 0x11, 0x90, 0x58, 0x66, 0x34, 0x0e, 0xfd, 0x1e, 0x7b, 0x07, 0x7d, 0xc7, 0x45, 0x6d, 0x59, 0xc9, 0xb9, 0x6a, 0x12, 0x4a, 0xac, 0x3b, 0x33, 0xbb, 0x22, 0x74, 0x41, 0xbb, 0x7a, 0x52, 0xe6, 0xc3, 0x14, 0x0d, 0x7a, 0x4f, 0x67, 0xca, 0x05, 0xbb, 0xc9, 0x3c, 0x93, 0x77, 0x5b, 0x92, 0x91, 0x19, 0xa2, 0x24, 0xed, 0x8f, 0x39, 0x00, 0x58, 0x20, 0xf4, 0x20, 0xcc, 0x6c, 0x53, 0x0e, 0x61, 0xe2, 0x0a, 0xdc, 0xa0, 0x1e, 0x93, 0x9c, 0xc0, 0x31, 0xdf, 0x49, 0xcd, 0xb1, 0xec, 0x8f, 0xf4, 0x93, 0xc9, 0xef, 0xbc, 0xad, 0x34, 0xc5, 0x71, 0x08, 0xef, 0xd7, 0x64, 0x55, 0x89, 0x66, 0xfb, 0x14, 0x70, 0xb0, 0x74, 0x5e, 0x69, 0x66, 0x19, 0x1a, 0x9a, 0x9e, 0x44, 0x58, 0x1b, 0x09, 0xfa, 0xf4, 0x69, 0xf9, 0x51, 0x53, 0x72, 0x03, 0xd9, 0x26, 0xbc, 0x8a, 0x55, 0xd0, 0x80, 0xa8, 0x05, 0x18, 0x1d, 0xd7, 0x29, 0x6e, 0xd2, 0x0a, 0x81, 0x82, 0x68, 0xf7, 0x55, 0xea, 0xa6, 0x6b, 0x08, 0x22, 0x42, 0xf4, 0xd0, 0x20, 0xf7, 0xcd, 0x67, 0x20, 0x89, 0x04, 0x84, 0xc0, 0x1c, 0x75, 0x7f, 0xe3, 0x5d, 0x87, 0xb5, 0xbc, 0x90, 0x6d, 0xea, 0xcc, 0x2e, 0x30, 0x71, 0xde, 0x46, 0x01, 0xbc, 0xf0, 0xdd, 0x6b, 0x83, 0x7c, 0x43, 0x31, 0x06, 0x04, 0x7f, 0xd8, 0xec, 0x9b, 0xd0, 0xe9, 0x8c, 0x9e, 0xe8, 0x06, 0xf7, 0xec, 0x8c, 0x5a, 0x10, 0xea, 0x21, 0x36, 0xf1, 0xf9, 0x0f, 0x90, 0x0b, 0x85, 0x3f, 0x95, 0x3f, 0x00, 0xb0, 0x76, 0xbd, 0x1e, 0xbd, 0x92, 0x9d, 0x08, 0xa3, 0x8b, 0xec, 0x68, 0xd8, 0x66, 0x43, 0x50, 0x47, 0xbc, 0xb6, 0x72, 0x1e, 0x06, 0xb6, 0x40, 0x85, 0xdc, 0x05, 0x58, 0xc1, 0xfa, 0x85, 0xa2, 0xc8, 0x3b, 0x0c, 0xaf, 0x4c, 0x81, 0x60, 0x84, 0xf1, 0x0a, 0x4c, 0x58, 0x85, 0x29, 0x5b, 0xca, 0x15, 0xff, 0x7c, 0x18, 0xe5, 0x96, 0xc6, 0x2c, 0x92, 0xee, 0x99, 0x21, 0xa2, 0x7c, 0x29, 0xd1, 0x95, 0xbd, 0x28, 0x22, 0x13, 0xff, 0x36, 0x60, 0xb6, 0xe7, 0x54, 0x6b, 0x4e, 0xaa, 0x77, 0x7c, 0xe3, 0x9f, 0xc5, 0xd2, 0x04, 0x84, 0xc7, 0x1e, 0xd6, 0xca, 0x06, 0xf9, 0xb7, 0x7a, 0xb1, 0xd8, 0x72, 0x39, 0x3a, 0xb2, 0xd1, 0x02, 0x55, };
15248 static const u8 ed25519_663_test_vectors_expected_sig[] = {
15249 	0xc1, 0xb3, 0x99, 0xcd, 0xc1, 0x98, 0xe9, 0xa1, 0x59, 0xe6, 0x84, 0xfc, 0x26, 0x68, 0x6d, 0xe6, 0x60, 0xda, 0x54, 0xcf, 0xe3, 0x12, 0xca, 0x73, 0x45, 0xdf, 0x0c, 0x7d, 0x15, 0xa3, 0x57, 0x43, 0x01, 0x44, 0x10, 0xbd, 0x2f, 0x6c, 0xd1, 0x1e, 0xef, 0x33, 0xa8, 0x9b, 0x3d, 0x15, 0xcb, 0xc1, 0x7c, 0x7a, 0x35, 0x89, 0x37, 0xfd, 0x99, 0x72, 0x05, 0x05, 0x1f, 0x92, 0x57, 0xc2, 0x56, 0x09, };
15250 static const ec_test_case ed25519_663_test_case = {
15251 	.name = "EDDSA25519-SHA512/wei25519 663",
15252 	.ec_str_p = &wei25519_str_params,
15253 	.priv_key = ed25519_663_test_vectors_priv_key,
15254 	.priv_key_len = sizeof(ed25519_663_test_vectors_priv_key),
15255 	.nn_random = NULL,
15256 	.hash_type = SHA512,
15257 	.msg = (const char *)ed25519_663_test_vectors_message,
15258 	.msglen = sizeof(ed25519_663_test_vectors_message),
15259 	.sig_type = EDDSA25519,
15260 	.exp_sig = ed25519_663_test_vectors_expected_sig,
15261 	.exp_siglen = sizeof(ed25519_663_test_vectors_expected_sig),
15262 	.adata = NULL,
15263 	.adata_len = 0
15264 };
15265 
15266 /************************************************/
15267 static const u8 ed25519_664_test_vectors_priv_key[] = {
15268 	0xb2, 0x98, 0xad, 0xf3, 0x8a, 0x67, 0x08, 0xf8, 0xd1, 0x8f, 0xf1, 0xed, 0x96, 0xbf, 0xba, 0xb4, 0x21, 0x54, 0x0d, 0x09, 0x6c, 0x4e, 0x43, 0x51, 0xb9, 0x22, 0x09, 0xb5, 0xe6, 0xaa, 0xab, 0x65, };
15269 static const u8 ed25519_664_test_vectors_message[] = {
15270 	0x9d, 0xf4, 0xd5, 0xd7, 0x56, 0x5d, 0x2c, 0x05, 0x22, 0x62, 0xdd, 0x34, 0xd6, 0x00, 0x7d, 0x86, 0xd9, 0xc0, 0xf0, 0x7c, 0x70, 0x89, 0xaf, 0x61, 0x19, 0xe3, 0x04, 0xf4, 0xd8, 0x01, 0x1d, 0x7e, 0xaa, 0xd7, 0x7b, 0x3e, 0xf7, 0x0c, 0xc2, 0x80, 0x84, 0x7d, 0x59, 0xf2, 0x97, 0x20, 0x2b, 0x7e, 0x18, 0x61, 0xae, 0xf3, 0x34, 0xbf, 0x38, 0xde, 0x14, 0x74, 0x0e, 0x80, 0x73, 0xc9, 0x55, 0xa8, 0x51, 0xd2, 0xcf, 0x3d, 0xad, 0xc3, 0xed, 0xce, 0x15, 0xbe, 0x49, 0x0e, 0xaa, 0x84, 0x5b, 0xa5, 0x53, 0xfc, 0x6e, 0x87, 0x46, 0xe5, 0x29, 0x15, 0xe6, 0x55, 0xaf, 0x4b, 0x86, 0xc6, 0x29, 0xd4, 0xc5, 0x22, 0x78, 0x36, 0x35, 0xd4, 0x64, 0xa2, 0x82, 0x57, 0x77, 0xd8, 0x9d, 0x70, 0x97, 0x67, 0x7e, 0xf0, 0xe5, 0xee, 0xae, 0x38, 0x53, 0x7e, 0xcb, 0x65, 0x6e, 0x3b, 0x28, 0xdd, 0x07, 0x35, 0x8f, 0xd9, 0xfb, 0x2c, 0xd4, 0x62, 0x51, 0x72, 0x86, 0x65, 0x9a, 0xef, 0xc7, 0x9d, 0x37, 0x4d, 0x1d, 0x13, 0xed, 0x93, 0x96, 0x7c, 0x53, 0x0c, 0xde, 0xa4, 0xf3, 0x14, 0xa0, 0xf9, 0x1d, 0x62, 0x89, 0xb4, 0xc7, 0xa4, 0x27, 0x9b, 0x6f, 0x4c, 0x4a, 0xbc, 0xa3, 0x33, 0x57, 0xf6, 0x9e, 0xd8, 0x4b, 0x91, 0x19, 0x63, 0x7a, 0xdb, 0x7c, 0x18, 0xe6, 0x94, 0xcb, 0x3c, 0x56, 0xe7, 0x36, 0x37, 0xda, 0x91, 0x07, 0x35, 0xd4, 0x3c, 0x38, 0xaa, 0x80, 0x86, 0x67, 0x5a, 0x06, 0xad, 0x37, 0x0e, 0x57, 0x26, 0x88, 0x1d, 0xa5, 0xe1, 0xa1, 0xdc, 0x61, 0x44, 0xd6, 0xa6, 0x2a, 0xff, 0x7f, 0xb0, 0xc3, 0x52, 0xd8, 0x8d, 0xc9, 0x71, 0xa3, 0xd7, 0x2d, 0x30, 0x71, 0xe1, 0x4b, 0x47, 0x42, 0x53, 0x56, 0xaf, 0x1b, 0x01, 0x92, 0x33, 0x53, 0x82, 0x61, 0x45, 0x1a, 0x99, 0xa6, 0xcf, 0x4a, 0x07, 0xce, 0x9a, 0xb1, 0xc3, 0x99, 0x0d, 0xe6, 0xab, 0x8d, 0xe2, 0x11, 0x6c, 0x75, 0x61, 0x05, 0xc5, 0x12, 0xb7, 0xa3, 0xee, 0xb3, 0x15, 0x7b, 0x15, 0x8b, 0x32, 0x1e, 0x44, 0x4e, 0x80, 0x6d, 0x89, 0x0b, 0x38, 0x90, 0xed, 0x9d, 0xdc, 0x86, 0x9f, 0x17, 0x11, 0x72, 0x3b, 0xb9, 0x9a, 0x72, 0xbd, 0xb9, 0x23, 0xd1, 0x31, 0xba, 0x4e, 0xdb, 0xfb, 0xb6, 0xda, 0xe9, 0x9a, 0x5c, 0x7b, 0x32, 0x8d, 0x31, 0x0d, 0xf9, 0xa6, 0xd1, 0xdc, 0xd8, 0x59, 0x18, 0x96, 0x28, 0x33, 0xe8, 0x9e, 0x20, 0xf5, 0xc5, 0xe6, 0x33, 0x3a, 0xc8, 0x61, 0x09, 0x4a, 0xe9, 0xe7, 0x99, 0xc8, 0x64, 0x1b, 0x9b, 0xae, 0xa1, 0x1a, 0x2e, 0x0e, 0xc2, 0x34, 0xbe, 0x59, 0x30, 0xe0, 0x28, 0x80, 0x85, 0x9c, 0xde, 0xc0, 0xd9, 0x78, 0x23, 0x7c, 0xbe, 0xa5, 0xc7, 0xc3, 0x2c, 0x11, 0x1b, 0xaf, 0xdd, 0x4b, 0xfb, 0xff, 0xe4, 0xfb, 0x34, 0x85, 0xef, 0xfe, 0xcd, 0x51, 0xbd, 0x19, 0x5a, 0x71, 0x40, 0x4c, 0xa5, 0xb5, 0x9a, 0xfa, 0x25, 0x2d, 0x7b, 0x5f, 0xf9, 0xd0, 0x30, 0xf4, 0x8c, 0x6f, 0xaa, 0xdb, 0xdb, 0xa9, 0x18, 0xf2, 0x1a, 0x0c, 0xd3, 0x9a, 0xf5, 0x69, 0x66, 0xdc, 0xcf, 0xa2, 0x5f, 0xb5, 0xa5, 0xcf, 0x9a, 0x4b, 0x26, 0xa7, 0xf5, 0x44, 0x1d, 0xf6, 0xe3, 0x20, 0xe3, 0x4b, 0x27, 0x39, 0x3d, 0xe2, 0xec, 0xfb, 0xd6, 0x9a, 0x15, 0x94, 0x90, 0x9a, 0x6c, 0x68, 0x5e, 0xc6, 0x45, 0xfc, 0xf3, 0x04, 0x8d, 0x01, 0x48, 0xfa, 0x38, 0xd3, 0xe8, 0xa6, 0x4d, 0xc3, 0xc2, 0x1a, 0xe4, 0x4d, 0xa7, 0xe4, 0x6a, 0x5e, 0xa7, 0x93, 0x6c, 0x2b, 0xa0, 0x83, 0x68, 0x9a, 0x78, 0xca, 0x3a, 0xc6, 0x0b, 0x87, 0xbe, 0x6d, 0x23, 0xea, 0x40, 0xf5, 0x96, 0x15, 0x83, 0x74, 0x28, 0x42, 0xe3, 0x75, 0x25, 0xa4, 0x9c, 0x5f, 0xe8, 0xfd, 0x15, 0xd7, 0xb0, 0xc9, 0xe8, 0xfc, 0xcd, 0x07, 0x93, 0x6d, 0x19, 0x53, 0x82, 0x12, 0xf7, 0x37, 0x3d, 0xbb, 0xf3, 0xdf, 0x7d, 0x46, 0xad, 0xf9, 0xd9, 0xf5, 0xdb, 0x09, 0x52, 0x4c, 0x65, 0xb8, 0x83, 0xae, 0x6f, 0x6c, 0xef, 0xa2, 0x4b, 0x19, 0xec, 0x48, 0xce, 0x28, 0xcf, 0xa7, 0x34, 0xd9, 0xbd, 0x6e, 0x77, 0x83, 0x7d, 0x1a, 0x14, 0xd6, 0xa1, 0x9d, 0x34, 0x5b, 0xfb, 0xea, 0x55, 0x9e, 0x7e, 0x6b, 0xfb, 0x71, 0xdd, 0xad, 0x83, 0xcd, 0x8d, 0xee, 0xab, 0x68, 0x7f, 0xe7, 0x3c, 0x05, 0x74, 0x88, 0xf8, 0xf2, 0xb3, 0xe2, 0xe2, 0x6d, 0x13, 0x00, 0x9f, 0x4d, 0x23, 0xe6, 0x61, 0x9a, 0x23, 0xc0, 0x69, 0x2a, 0xf7, 0x66, 0x69, 0x21, 0x7d, 0x5e, 0xbd, 0x46, 0x08, 0x5b, 0x39, 0x88, 0x90, 0xe5, 0xc9, 0x1f, 0xdb, 0x4d, 0xb5, 0xba, 0x40, 0xe7, 0x77, 0x3d, 0x51, 0x8d, 0x3c, 0xf0, 0x0c, 0x0a, 0x5b, 0x5a, 0x4b, 0x0f, 0x1b, 0x85, 0xd6, 0x29, 0x16, 0xa5, 0x9e, 0x56, 0x07, 0xb7, 0xb1, 0xeb, 0x80, };
15271 static const u8 ed25519_664_test_vectors_expected_sig[] = {
15272 	0xe5, 0x5f, 0x8d, 0x30, 0x41, 0x22, 0xdc, 0x17, 0x5c, 0xf0, 0x27, 0x46, 0x74, 0xfc, 0x9d, 0xed, 0xfe, 0xc2, 0xb5, 0xf8, 0xa2, 0xee, 0xb1, 0xe3, 0xe7, 0xf8, 0xe0, 0xdf, 0xba, 0x0d, 0xac, 0x2d, 0x32, 0xf4, 0xe7, 0x04, 0xce, 0x91, 0xcd, 0x59, 0x91, 0x84, 0x13, 0x3c, 0x3b, 0xf1, 0x06, 0x3d, 0x2f, 0xae, 0x63, 0xd7, 0x3a, 0xcc, 0x57, 0x72, 0xd7, 0x18, 0xd8, 0x11, 0x83, 0x31, 0x86, 0x02, };
15273 static const ec_test_case ed25519_664_test_case = {
15274 	.name = "EDDSA25519-SHA512/wei25519 664",
15275 	.ec_str_p = &wei25519_str_params,
15276 	.priv_key = ed25519_664_test_vectors_priv_key,
15277 	.priv_key_len = sizeof(ed25519_664_test_vectors_priv_key),
15278 	.nn_random = NULL,
15279 	.hash_type = SHA512,
15280 	.msg = (const char *)ed25519_664_test_vectors_message,
15281 	.msglen = sizeof(ed25519_664_test_vectors_message),
15282 	.sig_type = EDDSA25519,
15283 	.exp_sig = ed25519_664_test_vectors_expected_sig,
15284 	.exp_siglen = sizeof(ed25519_664_test_vectors_expected_sig),
15285 	.adata = NULL,
15286 	.adata_len = 0
15287 };
15288 
15289 /************************************************/
15290 static const u8 ed25519_665_test_vectors_priv_key[] = {
15291 	0xe9, 0xcf, 0x16, 0xd6, 0x96, 0xf6, 0x3b, 0x59, 0xe5, 0xe2, 0x5c, 0x9e, 0xe2, 0xd7, 0x5b, 0xb0, 0x5e, 0xd2, 0xba, 0xa5, 0x91, 0xa7, 0x55, 0x7f, 0x9f, 0xb1, 0x29, 0xcf, 0x98, 0x3d, 0xe0, 0xba, };
15292 static const u8 ed25519_665_test_vectors_message[] = {
15293 	0xa1, 0x0f, 0xea, 0x8f, 0xc9, 0x3e, 0xcc, 0xfe, 0x2a, 0x6b, 0x78, 0x26, 0x07, 0x95, 0x63, 0xad, 0xf8, 0xaa, 0x9a, 0x66, 0x64, 0x44, 0x93, 0x22, 0x00, 0xcc, 0xa9, 0x44, 0x7d, 0xd0, 0x27, 0xc5, 0xc7, 0x20, 0x4e, 0xa6, 0x2b, 0xf8, 0xf5, 0xe2, 0xe3, 0x91, 0x45, 0xac, 0x39, 0x48, 0xab, 0x3f, 0x31, 0x86, 0x88, 0x7b, 0x30, 0xbc, 0x60, 0x23, 0x30, 0x24, 0xb4, 0x83, 0xf3, 0xf5, 0x19, 0x03, 0x6a, 0x3e, 0x94, 0xc8, 0xd7, 0x51, 0x0a, 0x85, 0x3a, 0xc6, 0xe2, 0x0c, 0x6e, 0x52, 0x6e, 0xe3, 0xcd, 0xb7, 0x6d, 0xe6, 0x63, 0xf6, 0x73, 0x05, 0xad, 0x80, 0xdf, 0x23, 0x42, 0xc8, 0x50, 0x1b, 0x4f, 0x4a, 0x8e, 0xe3, 0x66, 0x5a, 0x79, 0x8f, 0xc4, 0x37, 0xdd, 0x81, 0x4e, 0x4e, 0x47, 0xe7, 0xa4, 0x66, 0x89, 0x0e, 0x0f, 0xfa, 0x8f, 0x51, 0x0f, 0x3e, 0x6e, 0x19, 0xc9, 0xc9, 0x69, 0xf7, 0x0a, 0x76, 0xe5, 0xcf, 0x30, 0x54, 0xd1, 0x7d, 0xe4, 0x59, 0xac, 0x8e, 0xe9, 0x95, 0x50, 0xbd, 0x38, 0x31, 0x9f, 0x36, 0xe4, 0x33, 0x43, 0x4a, 0x92, 0x6a, 0xd6, 0x8b, 0x96, 0x1e, 0x0c, 0xa1, 0x0a, 0xdd, 0x4b, 0xa9, 0x92, 0xb3, 0x65, 0x06, 0x60, 0xa2, 0xc3, 0xc2, 0x6f, 0x5d, 0x74, 0x0a, 0x31, 0xaf, 0xb7, 0x76, 0x3f, 0x54, 0x2f, 0x72, 0x3b, 0x8a, 0x3c, 0x92, 0xd8, 0xae, 0x92, 0xa5, 0x67, 0x76, 0x4e, 0xfc, 0x70, 0x53, 0x03, 0x12, 0xba, 0xab, 0xdd, 0x3f, 0xbb, 0xd5, 0x27, 0xfe, 0x0f, 0xcb, 0xca, 0x3f, 0x6a, 0x70, 0x64, 0xcd, 0xde, 0x18, 0x56, 0xe9, 0x7a, 0xb7, 0x86, 0xaf, 0x7d, 0x70, 0x22, 0xa9, 0xd4, 0x6a, 0x33, 0x8e, 0x8e, 0x17, 0x54, 0xaf, 0xd9, 0xad, 0xac, 0x85, 0x6a, 0x38, 0xde, 0x2a, 0x4c, 0x97, 0x66, 0xde, 0xe8, 0xdb, 0xc7, 0x09, 0xb0, 0x67, 0x1a, 0x6a, 0x6e, 0x6e, 0x1e, 0x5d, 0x12, 0x07, 0x4d, 0x22, 0x24, 0x5c, 0xd7, 0x3b, 0xee, 0xeb, 0x1b, 0xd8, 0xec, 0xfc, 0x1e, 0x85, 0xa2, 0x1b, 0xde, 0x25, 0x3f, 0x7c, 0x46, 0x5a, 0xbc, 0x1f, 0xea, 0xa9, 0x61, 0xc0, 0xff, 0x5c, 0xff, 0x2d, 0x89, 0x64, 0x72, 0xae, 0x17, 0xab, 0x84, 0x88, 0xe3, 0x3f, 0xfe, 0xfd, 0xb7, 0x2c, 0x10, 0x5e, 0x20, 0x4f, 0x94, 0x4a, 0xda, 0x51, 0xee, 0x13, 0x98, 0x1a, 0x13, 0x6c, 0x0f, 0x38, 0x42, 0x6e, 0x3e, 0x49, 0xb0, 0xe9, 0x18, 0x41, 0xc3, 0x27, 0x94, 0xd5, 0x2f, 0x13, 0x35, 0xdf, 0xa6, 0x37, 0xf1, 0x51, 0xc7, 0xe4, 0x0f, 0x9b, 0x83, 0x0a, 0xed, 0x53, 0x9a, 0xc5, 0x73, 0x1b, 0x81, 0xcd, 0xe3, 0x26, 0x4d, 0x22, 0xbe, 0xad, 0x31, 0xa6, 0xcc, 0x68, 0xd1, 0xa7, 0x31, 0x43, 0xb5, 0xba, 0x48, 0x16, 0x13, 0x92, 0x32, 0xf3, 0xf7, 0xf9, 0x79, 0x83, 0xf4, 0xec, 0xba, 0x64, 0xc4, 0x95, 0x53, 0xbe, 0x9d, 0x6d, 0x94, 0x3f, 0x91, 0xdf, 0xe0, 0x3d, 0x1e, 0xe8, 0x61, 0x8c, 0xd4, 0x0d, 0x2f, 0xb7, 0x23, 0x8a, 0x31, 0xd1, 0xbc, 0x38, 0xe7, 0x6a, 0x55, 0x1f, 0x9e, 0xee, 0x22, 0xe7, 0x3a, 0x27, 0xd7, 0xa4, 0x8b, 0x40, 0x87, 0x72, 0xea, 0x72, 0xc3, 0xed, 0x63, 0x7b, 0xb4, 0xb1, 0x68, 0xf9, 0xd7, 0xae, 0xad, 0x94, 0xea, 0x03, 0xbc, 0x11, 0x10, 0x99, 0x01, 0xc8, 0x89, 0x92, 0x7d, 0x51, 0xcd, 0xac, 0xf9, 0x62, 0x12, 0x59, 0x62, 0x55, 0x99, 0x79, 0xd3, 0xe4, 0xc8, 0xe3, 0xb5, 0xae, 0x58, 0x2f, 0x2d, 0xba, 0xd4, 0x99, 0x88, 0x02, 0x85, 0x6c, 0x4d, 0xf6, 0x9e, 0x8f, 0xb5, 0x49, 0x17, 0xe2, 0xf3, 0x6b, 0xb6, 0x7a, 0x19, 0xa2, 0x6e, 0x9a, 0x9a, 0x94, 0x85, 0xbc, 0xe9, 0x8d, 0xbf, 0xff, 0x0d, 0x2b, 0x02, 0xb9, 0x37, 0x7a, 0x91, 0x37, 0xa7, 0x34, 0xe5, 0x7b, 0x5c, 0xe6, 0x65, 0x05, 0x30, 0x17, 0xe9, 0x92, 0x67, 0x7a, 0x1a, 0xa0, 0x79, 0x24, 0x0d, 0x2c, 0xf9, 0x63, 0xcd, 0xf9, 0xbf, 0xea, 0x8d, 0x46, 0x00, 0x91, 0x23, 0x2d, 0xaf, 0x89, 0x80, 0x1f, 0xd7, 0x51, 0x71, 0xa6, 0x19, 0x5a, 0x5c, 0x04, 0x68, 0x15, 0x91, 0x4b, 0xe1, 0xf6, 0x28, 0x68, 0x78, 0x3d, 0x6f, 0x2c, 0xf2, 0x8a, 0xf9, 0x37, 0x8d, 0x6c, 0x68, 0x93, 0xe7, 0x5d, 0xe6, 0x41, 0x11, 0x1c, 0x68, 0x47, 0x27, 0xef, 0xfa, 0x31, 0xb8, 0xbc, 0x9b, 0x0a, 0x01, 0xdb, 0x9c, 0x9e, 0x81, 0xcc, 0xd8, 0xf4, 0xd4, 0xe8, 0x75, 0xd4, 0xbd, 0x90, 0xd2, 0x53, 0xf5, 0x89, 0x89, 0xa8, 0xa5, 0x2a, 0x20, 0x3a, 0x77, 0xa4, 0x96, 0xd6, 0x97, 0x98, 0x6b, 0x03, 0x1e, 0x9f, 0x69, 0x9b, 0xc6, 0xa1, 0x6c, 0xd5, 0xf9, 0xc3, 0x60, 0x18, 0xeb, 0xda, 0xa3, 0x6b, 0xad, 0x0e, 0x01, 0x4f, 0x4c, 0xf3, 0xb4, 0xb7, 0x46, 0x17, 0x1b, 0xf8, 0x93, 0x14, 0xe8, 0xb7, 0x2c, 0xbd, 0x47, 0xcc, 0x61, 0x6a, };
15294 static const u8 ed25519_665_test_vectors_expected_sig[] = {
15295 	0x81, 0x12, 0xac, 0x37, 0xea, 0xfb, 0x74, 0x9d, 0x3f, 0x4a, 0x1e, 0xa1, 0x48, 0x43, 0x79, 0xdf, 0x3e, 0x38, 0x3b, 0x01, 0x9c, 0x12, 0xde, 0x85, 0x15, 0xe3, 0x49, 0xe4, 0xf6, 0xf9, 0x98, 0x63, 0x2e, 0x30, 0x96, 0x83, 0x47, 0xa1, 0xd1, 0x5b, 0x09, 0xda, 0x2e, 0xb8, 0x00, 0xb0, 0x3d, 0x81, 0x9d, 0x20, 0x2b, 0xd1, 0x0a, 0x6a, 0x46, 0x3b, 0xb0, 0x2b, 0x36, 0x6d, 0x68, 0x55, 0xfe, 0x0e, };
15296 static const ec_test_case ed25519_665_test_case = {
15297 	.name = "EDDSA25519-SHA512/wei25519 665",
15298 	.ec_str_p = &wei25519_str_params,
15299 	.priv_key = ed25519_665_test_vectors_priv_key,
15300 	.priv_key_len = sizeof(ed25519_665_test_vectors_priv_key),
15301 	.nn_random = NULL,
15302 	.hash_type = SHA512,
15303 	.msg = (const char *)ed25519_665_test_vectors_message,
15304 	.msglen = sizeof(ed25519_665_test_vectors_message),
15305 	.sig_type = EDDSA25519,
15306 	.exp_sig = ed25519_665_test_vectors_expected_sig,
15307 	.exp_siglen = sizeof(ed25519_665_test_vectors_expected_sig),
15308 	.adata = NULL,
15309 	.adata_len = 0
15310 };
15311 
15312 /************************************************/
15313 static const u8 ed25519_666_test_vectors_priv_key[] = {
15314 	0x23, 0x8a, 0x6d, 0x49, 0x79, 0x32, 0x1a, 0x14, 0xa9, 0x97, 0x23, 0x6f, 0x45, 0x85, 0x04, 0x6c, 0xf7, 0xa0, 0x5c, 0x0a, 0xdc, 0x6b, 0xa1, 0xfd, 0xb1, 0x9e, 0xc2, 0xa3, 0x2f, 0x62, 0xbe, 0xeb, };
15315 static const u8 ed25519_666_test_vectors_message[] = {
15316 	0x97, 0xcd, 0x61, 0x9a, 0x22, 0x51, 0xed, 0xa9, 0x16, 0x64, 0x64, 0x31, 0xd4, 0xcd, 0x15, 0x98, 0xc2, 0xd4, 0x4d, 0x06, 0xaf, 0x3e, 0x48, 0xbd, 0x18, 0xe3, 0xde, 0x7f, 0xb4, 0xbd, 0x4f, 0x78, 0xe0, 0x0a, 0x69, 0xee, 0xab, 0xde, 0x3f, 0x82, 0x06, 0x5c, 0xfe, 0xe6, 0xcd, 0x71, 0x1f, 0x07, 0xd2, 0x26, 0x37, 0x16, 0x1f, 0xf6, 0x85, 0xf6, 0x5a, 0x7d, 0xdf, 0x54, 0x55, 0x31, 0x97, 0xfd, 0x31, 0xc5, 0xc6, 0xb7, 0x1d, 0x9e, 0x36, 0x5a, 0x94, 0x1d, 0xce, 0x4c, 0x3e, 0x22, 0x5d, 0x19, 0xcc, 0x63, 0x3a, 0x7e, 0x12, 0x86, 0x2c, 0xd2, 0x3e, 0xbb, 0x7c, 0x74, 0xa7, 0x04, 0x85, 0x0f, 0x76, 0x1a, 0xc0, 0x24, 0x1b, 0xe5, 0x17, 0xce, 0x7c, 0x36, 0x09, 0x36, 0xce, 0x07, 0x25, 0x0d, 0x9f, 0x2e, 0xb2, 0x78, 0x71, 0x15, 0xee, 0xc3, 0x77, 0xe1, 0x13, 0x4d, 0xc0, 0x8f, 0x44, 0xeb, 0x0a, 0x2a, 0x2a, 0x27, 0x16, 0xf0, 0x01, 0x44, 0xa4, 0x9f, 0x01, 0x2a, 0x57, 0xb3, 0xcd, 0x06, 0xef, 0xeb, 0x3f, 0xae, 0x92, 0x0f, 0x28, 0x5c, 0xff, 0xd9, 0xa4, 0x01, 0xa0, 0xb9, 0x86, 0x59, 0x4e, 0x17, 0xb2, 0xc9, 0xc8, 0xfd, 0xab, 0x83, 0x5d, 0x9f, 0x3f, 0x5d, 0x47, 0x4b, 0xe7, 0x33, 0xc1, 0x92, 0x5e, 0xe6, 0xf0, 0x93, 0x86, 0x71, 0x10, 0x66, 0xc3, 0xfc, 0xd6, 0x45, 0xee, 0xb0, 0xfb, 0xe7, 0x05, 0x41, 0x69, 0xeb, 0x70, 0x9d, 0x4a, 0x3f, 0x0d, 0x16, 0xf2, 0x8a, 0x1f, 0xf5, 0x06, 0x6c, 0x84, 0x2b, 0xc6, 0x3e, 0x35, 0x9e, 0x92, 0x48, 0x5b, 0x38, 0x75, 0x7f, 0xf4, 0x6c, 0x27, 0xf7, 0x9d, 0x0c, 0xdc, 0xf0, 0xe1, 0x6e, 0x97, 0xe3, 0xc7, 0xb7, 0xe2, 0x17, 0x8d, 0xff, 0xd2, 0x70, 0x28, 0x2d, 0xd6, 0x12, 0x05, 0xd5, 0x85, 0x4d, 0x84, 0x1f, 0x0e, 0x3f, 0xc0, 0xe4, 0x82, 0xcc, 0x1e, 0xe4, 0x85, 0x52, 0xcf, 0xe6, 0x58, 0x93, 0x5b, 0x54, 0x27, 0xc3, 0x66, 0x23, 0x0a, 0xef, 0x79, 0xae, 0xf4, 0x02, 0x1d, 0x6f, 0xab, 0x5f, 0x18, 0x75, 0xcc, 0x84, 0x9e, 0x32, 0x1a, 0x75, 0x50, 0x0e, 0x9e, 0x1b, 0xa5, 0xdd, 0x59, 0x6b, 0x43, 0x8c, 0xf8, 0x8b, 0x23, 0x5b, 0x01, 0xa6, 0x76, 0x25, 0xc4, 0xbf, 0x84, 0xd0, 0x72, 0x4a, 0xe6, 0x88, 0x0a, 0x37, 0x85, 0xe3, 0x3b, 0xd9, 0x23, 0x5f, 0xd0, 0xf5, 0x98, 0x18, 0x04, 0xd2, 0x1c, 0xbd, 0x63, 0x3c, 0xb1, 0x80, 0xf3, 0x44, 0x56, 0x46, 0x02, 0x07, 0xa2, 0x90, 0xa2, 0x54, 0xd9, 0xfe, 0x61, 0x06, 0x3d, 0x40, 0x63, 0x4c, 0xa3, 0x87, 0x2f, 0x09, 0x35, 0xfa, 0x28, 0x32, 0x87, 0x95, 0xca, 0x41, 0xb0, 0x06, 0xa2, 0x11, 0x1f, 0xc5, 0x93, 0x2b, 0x1e, 0x77, 0x9c, 0xe9, 0x66, 0xcc, 0x47, 0xad, 0xb7, 0xc0, 0xdd, 0x98, 0x73, 0x33, 0xba, 0x75, 0x29, 0xa1, 0xa4, 0x99, 0x6c, 0xe9, 0xf5, 0x6e, 0x05, 0x19, 0x81, 0xfe, 0x1f, 0x55, 0x3e, 0x57, 0x8f, 0x43, 0xc3, 0xba, 0x94, 0xbe, 0xac, 0xc9, 0x3c, 0x3e, 0x73, 0x96, 0x67, 0xc7, 0xa7, 0xc6, 0xfa, 0x27, 0xe1, 0xe0, 0x81, 0x69, 0x5d, 0x20, 0xba, 0x70, 0x5c, 0x3f, 0x10, 0xb2, 0x0d, 0xf5, 0x30, 0xcb, 0xb0, 0xec, 0xb8, 0x74, 0x56, 0x50, 0x11, 0x09, 0x68, 0x70, 0x19, 0x31, 0x84, 0x52, 0x78, 0x5d, 0x38, 0xe7, 0x66, 0xb3, 0xcd, 0x35, 0xb0, 0x07, 0xd7, 0xe3, 0xcf, 0xe0, 0xb2, 0xcc, 0xa8, 0xaa, 0x6e, 0xf7, 0x39, 0x55, 0x99, 0xdc, 0xb9, 0xc4, 0xd2, 0x8b, 0xcc, 0x35, 0xc7, 0x6d, 0xfc, 0x35, 0x34, 0x3c, 0xb1, 0x34, 0x8b, 0xa3, 0xe9, 0x62, 0xf1, 0x0e, 0xe8, 0x6f, 0x86, 0xf5, 0xb6, 0xd4, 0xca, 0xe2, 0xe8, 0xc2, 0xb1, 0x85, 0xe3, 0xea, 0xa1, 0xae, 0xb8, 0x7b, 0xcf, 0xcf, 0x2f, 0xb7, 0x6c, 0xc7, 0xfc, 0xc6, 0x89, 0x50, 0x71, 0xb1, 0x68, 0xe8, 0xb7, 0xf6, 0xca, 0xa0, 0xfd, 0x63, 0x98, 0xe7, 0x78, 0xcc, 0x07, 0x91, 0x2f, 0xf5, 0xd6, 0xe6, 0x10, 0x21, 0xa8, 0xa5, 0x9a, 0xe0, 0x35, 0x21, 0x60, 0xf5, 0x6d, 0x54, 0x88, 0xfe, 0x2f, 0x2a, 0xcc, 0x94, 0x03, 0xda, 0x9a, 0x9f, 0xfc, 0x66, 0x1c, 0x1e, 0x9d, 0xc5, 0xbe, 0x88, 0xc4, 0x20, 0xdb, 0x0f, 0xd7, 0x7d, 0x84, 0x5d, 0xc8, 0xdd, 0x9d, 0x8e, 0x58, 0xf9, 0x96, 0x1b, 0x79, 0xaf, 0xc6, 0x86, 0x24, 0xba, 0xa8, 0x6a, 0xa6, 0x43, 0xa8, 0xa3, 0xc7, 0xed, 0xf7, 0x1d, 0x55, 0x3c, 0xc0, 0xd3, 0x22, 0x4a, 0x60, 0x69, 0xec, 0x67, 0x4f, 0x52, 0xda, 0x29, 0xa1, 0xcb, 0x60, 0xc4, 0x19, 0x23, 0x01, 0xa2, 0x43, 0x47, 0xa8, 0xaa, 0x83, 0x26, 0x26, 0x9e, 0x0a, 0x14, 0x78, 0x0c, 0x95, 0x83, 0xcd, 0xff, 0x51, 0x59, 0x27, 0xfd, 0x5b, 0xef, 0x52, 0x8f, 0x9d, 0x23, 0x78, 0x7a, 0xeb, 0x80, 0x3d, 0x70, 0xeb, 0x91, 0x6b, };
15317 static const u8 ed25519_666_test_vectors_expected_sig[] = {
15318 	0x29, 0x42, 0xf7, 0x08, 0xc0, 0xed, 0xe4, 0xcb, 0x0d, 0xde, 0xf1, 0x3b, 0x85, 0xd7, 0x1d, 0x72, 0x13, 0xe0, 0x38, 0x3d, 0xd2, 0x94, 0xf5, 0x34, 0x13, 0x5f, 0xd6, 0x9c, 0xaf, 0xbc, 0xfc, 0x0e, 0x33, 0x09, 0x0a, 0x2a, 0x0c, 0xa3, 0xfa, 0x57, 0x2c, 0x72, 0xcd, 0xf5, 0x59, 0x2d, 0xe9, 0x03, 0xb1, 0x58, 0x44, 0x95, 0xab, 0x63, 0x99, 0x81, 0x50, 0xf2, 0xb3, 0x93, 0xa3, 0xb3, 0x40, 0x0c, };
15319 static const ec_test_case ed25519_666_test_case = {
15320 	.name = "EDDSA25519-SHA512/wei25519 666",
15321 	.ec_str_p = &wei25519_str_params,
15322 	.priv_key = ed25519_666_test_vectors_priv_key,
15323 	.priv_key_len = sizeof(ed25519_666_test_vectors_priv_key),
15324 	.nn_random = NULL,
15325 	.hash_type = SHA512,
15326 	.msg = (const char *)ed25519_666_test_vectors_message,
15327 	.msglen = sizeof(ed25519_666_test_vectors_message),
15328 	.sig_type = EDDSA25519,
15329 	.exp_sig = ed25519_666_test_vectors_expected_sig,
15330 	.exp_siglen = sizeof(ed25519_666_test_vectors_expected_sig),
15331 	.adata = NULL,
15332 	.adata_len = 0
15333 };
15334 
15335 /************************************************/
15336 static const u8 ed25519_667_test_vectors_priv_key[] = {
15337 	0x59, 0xd5, 0x01, 0x39, 0x3d, 0xc5, 0x99, 0x97, 0x23, 0x81, 0x07, 0x06, 0xfa, 0xd7, 0xd6, 0xef, 0xd1, 0x63, 0xc4, 0x47, 0x10, 0xc7, 0x41, 0xc1, 0x85, 0xc2, 0x7e, 0x04, 0x25, 0xe3, 0xc0, 0x5b, };
15338 static const u8 ed25519_667_test_vectors_message[] = {
15339 	0x56, 0x4e, 0xd2, 0x2c, 0x17, 0x2f, 0x5c, 0x3a, 0xfb, 0xb0, 0xb9, 0x5a, 0xd2, 0xfc, 0x64, 0xe4, 0xbe, 0x6d, 0x4d, 0xb1, 0xeb, 0xb8, 0xd3, 0x99, 0xc4, 0x3a, 0x5e, 0x16, 0x04, 0x8e, 0x7f, 0x87, 0x32, 0x18, 0x1e, 0x5d, 0x0e, 0xed, 0x8e, 0x63, 0x8e, 0xf2, 0xa5, 0x5a, 0xa0, 0xd7, 0xb6, 0x81, 0xfe, 0x02, 0xbb, 0x54, 0x23, 0xaf, 0x94, 0xbd, 0x35, 0x2d, 0x3c, 0x2d, 0xde, 0xc0, 0xf8, 0x47, 0x60, 0xa4, 0x11, 0x2b, 0x4f, 0xe0, 0x17, 0xcf, 0xbc, 0x50, 0x2f, 0x95, 0x43, 0xcf, 0xa4, 0x1f, 0xb2, 0xaa, 0xe7, 0x5a, 0x3a, 0x08, 0x1f, 0x8c, 0x49, 0x90, 0x33, 0xd1, 0xfa, 0xe5, 0xd9, 0xc5, 0x0c, 0xb4, 0x4d, 0xbc, 0x63, 0x60, 0x5a, 0x54, 0x39, 0x8f, 0xbf, 0x07, 0x98, 0x52, 0xeb, 0xa8, 0x6f, 0x2f, 0xdf, 0xc2, 0x72, 0xd0, 0xc4, 0x17, 0x9d, 0x7c, 0x13, 0xcb, 0xc1, 0xc2, 0xa3, 0xda, 0x0b, 0x82, 0x84, 0x5c, 0xf1, 0xa4, 0x6e, 0xbb, 0xe3, 0x1e, 0x79, 0xb6, 0x00, 0x97, 0x33, 0xc7, 0xbf, 0xe7, 0xaa, 0x4f, 0x9f, 0xfd, 0x71, 0x9c, 0x77, 0xdc, 0x7d, 0x74, 0x8e, 0x49, 0x2e, 0x14, 0xee, 0x5e, 0x41, 0x79, 0xbf, 0xa9, 0xe6, 0x49, 0xcf, 0x0d, 0x89, 0x53, 0x41, 0x86, 0x38, 0x5e, 0xe9, 0x94, 0x10, 0x05, 0x1d, 0x66, 0x56, 0xe6, 0x23, 0x43, 0x8c, 0xc7, 0xb2, 0xe7, 0x07, 0xe4, 0x8c, 0x84, 0x91, 0x55, 0x49, 0xae, 0x8d, 0x67, 0xa3, 0x06, 0xc6, 0x7b, 0x10, 0x6b, 0x7a, 0x25, 0xf4, 0x5f, 0x8e, 0x10, 0xdd, 0x7d, 0xd3, 0xea, 0xac, 0x31, 0xf1, 0x05, 0x22, 0x57, 0xeb, 0x6a, 0x75, 0x76, 0xb6, 0x85, 0xcb, 0x9e, 0x6c, 0x1c, 0xd0, 0xd7, 0x3c, 0x7a, 0x3c, 0xed, 0x5a, 0x8d, 0xd2, 0x73, 0x08, 0xae, 0x00, 0xf9, 0x5e, 0xab, 0xda, 0xe9, 0xd1, 0xc4, 0xaa, 0x89, 0x34, 0xe2, 0x42, 0x4c, 0x93, 0x28, 0xa5, 0x22, 0x8f, 0x4f, 0x82, 0xdd, 0x4a, 0x66, 0x55, 0x6d, 0x82, 0x17, 0xc5, 0xa2, 0x2b, 0x2b, 0xeb, 0x86, 0xa2, 0xa4, 0x34, 0x13, 0xee, 0x5e, 0x10, 0xf8, 0x83, 0xf2, 0xcd, 0x6c, 0x2e, 0x87, 0x49, 0xb5, 0x50, 0x88, 0x42, 0xec, 0xae, 0x5f, 0xfc, 0xcb, 0x79, 0x6d, 0x96, 0x33, 0xe8, 0x7e, 0xf4, 0xa9, 0x6c, 0x0d, 0xf7, 0xef, 0x47, 0xb2, 0x83, 0xd0, 0x96, 0x72, 0x3b, 0xa3, 0x13, 0x5b, 0xad, 0x75, 0xb2, 0xe1, 0x9e, 0xc0, 0x4f, 0x70, 0xa4, 0x78, 0x42, 0x8a, 0xd5, 0xd0, 0xaa, 0xc0, 0xdd, 0x2a, 0xb9, 0x90, 0x59, 0x13, 0xe7, 0xe5, 0xad, 0xe4, 0x08, 0x80, 0x1d, 0x5d, 0x3c, 0x54, 0xd9, 0xcf, 0x7b, 0x8f, 0x0f, 0x0c, 0x5e, 0xb0, 0x54, 0xc1, 0x47, 0x5c, 0xc2, 0x10, 0xa2, 0xc7, 0x98, 0xd8, 0xbd, 0x89, 0x93, 0x2f, 0xf9, 0xf3, 0x60, 0x42, 0x18, 0x58, 0x05, 0x3a, 0x70, 0x7b, 0x8b, 0xbd, 0x32, 0x05, 0x5c, 0x44, 0xb2, 0x07, 0x12, 0xa2, 0x67, 0x8a, 0x9a, 0x6a, 0xf9, 0xe3, 0x6d, 0x04, 0xdc, 0xff, 0x44, 0xf4, 0x31, 0xcf, 0x19, 0x30, 0xcd, 0x18, 0xfc, 0x93, 0x5d, 0x22, 0x67, 0x77, 0x5c, 0x69, 0x09, 0x67, 0x25, 0xed, 0x89, 0xa2, 0x91, 0xdd, 0x60, 0xe2, 0x1a, 0xc0, 0xb0, 0x12, 0x87, 0x34, 0x07, 0x29, 0x92, 0x82, 0x3e, 0xf8, 0x7b, 0x5e, 0xfa, 0x6c, 0xc5, 0xb0, 0x50, 0x17, 0x7f, 0x55, 0xf4, 0xce, 0xc9, 0x2a, 0x08, 0xa6, 0x5b, 0xca, 0xdc, 0xab, 0x9a, 0x41, 0xc3, 0x60, 0x86, 0x37, 0x0b, 0x7b, 0x9d, 0xd6, 0x29, 0x8a, 0xc7, 0xb0, 0xae, 0x6a, 0x09, 0xc9, 0x71, 0x0a, 0xbb, 0x46, 0x76, 0xa8, 0xfc, 0x87, 0xa3, 0x65, 0x12, 0x90, 0x14, 0x4b, 0x6b, 0x30, 0xef, 0x4f, 0x6f, 0xbe, 0x5b, 0x9a, 0xd2, 0x52, 0x37, 0xfe, 0x06, 0x05, 0xe3, 0xb9, 0xf1, 0x8a, 0x77, 0x18, 0xac, 0x9f, 0xca, 0x6f, 0x32, 0x5e, 0xa5, 0x5f, 0x49, 0xa8, 0x07, 0xfb, 0x80, 0xa2, 0x40, 0x2a, 0xe1, 0x34, 0x23, 0x08, 0x0d, 0x32, 0x77, 0x58, 0x64, 0x90, 0x23, 0x79, 0x8d, 0x57, 0x28, 0xe0, 0xdc, 0x64, 0xac, 0x88, 0xa6, 0xe2, 0x94, 0x5d, 0xbb, 0x3e, 0x3f, 0xfa, 0x9f, 0xdb, 0x4c, 0x7b, 0x58, 0xfb, 0xa3, 0xf5, 0xfb, 0xd6, 0x7c, 0x68, 0x6b, 0x29, 0x71, 0xbb, 0xd8, 0xba, 0x4d, 0x27, 0x5d, 0x57, 0x3e, 0xb7, 0x96, 0xeb, 0x91, 0x46, 0x77, 0x5d, 0x8c, 0xdc, 0xd5, 0xfd, 0x3e, 0xb5, 0xa8, 0x8e, 0xa5, 0xa9, 0x30, 0xec, 0x32, 0x44, 0xe6, 0xa3, 0x7c, 0x81, 0xf6, 0xa2, 0x55, 0x4e, 0x5b, 0xa7, 0x87, 0xf0, 0xe4, 0x53, 0x19, 0xfe, 0x4b, 0x8a, 0x2f, 0xfb, 0xfe, 0xd5, 0x07, 0x70, 0xe7, 0x82, 0x7b, 0x3e, 0x7b, 0xc2, 0xb4, 0x4c, 0xe5, 0x12, 0xae, 0x60, 0x51, 0xb6, 0xf9, 0xf1, 0x39, 0x31, 0xea, 0x6a, 0xcc, 0x09, 0x6b, 0x8d, 0xcb, 0x01, 0x96, 0xbe, 0x42, 0x24, 0x84, 0xdb, 0x5f, 0xcb, 0x29, 0x9d, };
15340 static const u8 ed25519_667_test_vectors_expected_sig[] = {
15341 	0xe6, 0x46, 0xf1, 0x64, 0xcf, 0xed, 0x8c, 0x2e, 0x06, 0x07, 0x10, 0xdc, 0xfb, 0xc3, 0xe9, 0xfa, 0x5e, 0xb3, 0x96, 0x37, 0x68, 0x13, 0x19, 0x01, 0x84, 0xe3, 0x46, 0xf5, 0x2b, 0xb0, 0xba, 0x57, 0x46, 0xcc, 0xb6, 0xb5, 0x95, 0x22, 0xb1, 0xaf, 0xf9, 0x83, 0x0f, 0x2f, 0x98, 0xb9, 0xe5, 0xda, 0xfc, 0xd8, 0x32, 0x07, 0x78, 0x83, 0xc4, 0x4e, 0x8a, 0x35, 0x38, 0x8f, 0x71, 0x8b, 0xf4, 0x0c, };
15342 static const ec_test_case ed25519_667_test_case = {
15343 	.name = "EDDSA25519-SHA512/wei25519 667",
15344 	.ec_str_p = &wei25519_str_params,
15345 	.priv_key = ed25519_667_test_vectors_priv_key,
15346 	.priv_key_len = sizeof(ed25519_667_test_vectors_priv_key),
15347 	.nn_random = NULL,
15348 	.hash_type = SHA512,
15349 	.msg = (const char *)ed25519_667_test_vectors_message,
15350 	.msglen = sizeof(ed25519_667_test_vectors_message),
15351 	.sig_type = EDDSA25519,
15352 	.exp_sig = ed25519_667_test_vectors_expected_sig,
15353 	.exp_siglen = sizeof(ed25519_667_test_vectors_expected_sig),
15354 	.adata = NULL,
15355 	.adata_len = 0
15356 };
15357 
15358 /************************************************/
15359 static const u8 ed25519_668_test_vectors_priv_key[] = {
15360 	0x83, 0x9f, 0xb1, 0x32, 0xe6, 0x92, 0x50, 0xca, 0x1a, 0xd9, 0x45, 0x10, 0x08, 0x7f, 0x92, 0xce, 0x06, 0x87, 0x69, 0x21, 0x3a, 0x19, 0xb2, 0xa6, 0xc8, 0x94, 0x90, 0xf1, 0xf5, 0x78, 0x80, 0x7a, };
15361 static const u8 ed25519_668_test_vectors_message[] = {
15362 	0xc5, 0x72, 0x32, 0xfe, 0x32, 0xf1, 0x1e, 0x89, 0x4b, 0x43, 0x7d, 0x40, 0x45, 0x62, 0x07, 0xcc, 0x30, 0x6d, 0xb4, 0x81, 0x69, 0xb2, 0x0e, 0x07, 0x81, 0x10, 0x3a, 0xff, 0xe8, 0x02, 0xf5, 0xaa, 0xbe, 0x85, 0x82, 0x95, 0x2c, 0xa8, 0xe9, 0x57, 0x45, 0xe9, 0x94, 0x0d, 0x53, 0x5e, 0x00, 0xff, 0x65, 0xab, 0x3c, 0x64, 0xbe, 0xd3, 0xd1, 0x17, 0x3a, 0x0f, 0x3d, 0x70, 0xce, 0x4e, 0xbe, 0x2b, 0x50, 0xd0, 0x48, 0xbb, 0x47, 0x16, 0x4d, 0x2a, 0x2c, 0xd9, 0xd9, 0x5a, 0x10, 0xcf, 0x0d, 0x07, 0x3e, 0xd1, 0xc4, 0x1b, 0x3d, 0xe3, 0x33, 0x52, 0x8e, 0xe3, 0x29, 0x68, 0x22, 0x3a, 0x0d, 0x84, 0x7c, 0xad, 0xbb, 0x5b, 0x69, 0xf3, 0x82, 0x16, 0x4e, 0x9a, 0x28, 0xd2, 0x3e, 0xc9, 0xbd, 0xe9, 0xa8, 0x28, 0xe8, 0x77, 0x1c, 0x9e, 0xb4, 0x92, 0x20, 0xaf, 0x54, 0x18, 0x55, 0x08, 0xaa, 0x07, 0x3a, 0x83, 0x91, 0x95, 0xf1, 0x03, 0xbc, 0x2f, 0x32, 0xfe, 0x04, 0xf9, 0x51, 0xca, 0x45, 0xbf, 0xbf, 0x30, 0xd2, 0xfb, 0x81, 0x14, 0x05, 0x6a, 0x73, 0x6a, 0xdd, 0xf2, 0x7e, 0xcd, 0x9a, 0xf0, 0xf6, 0xe5, 0xe9, 0x7e, 0x57, 0x73, 0xc4, 0xfa, 0x90, 0x22, 0x68, 0xc3, 0x2a, 0x15, 0x14, 0x10, 0x95, 0x5f, 0x3c, 0x76, 0xaa, 0xe2, 0x55, 0x54, 0x9e, 0x0f, 0x03, 0x3f, 0x89, 0xe1, 0xa7, 0x8f, 0x26, 0x5c, 0xba, 0xb6, 0xbe, 0xb7, 0x51, 0x6d, 0x4b, 0xad, 0xc4, 0x9c, 0xda, 0x45, 0x88, 0x31, 0x62, 0x25, 0xb4, 0xc8, 0x5e, 0xa9, 0xfa, 0x99, 0xc7, 0xd6, 0x76, 0x6e, 0x94, 0x90, 0xc4, 0x9d, 0xe5, 0x9d, 0xa7, 0x17, 0xf6, 0x67, 0x65, 0x35, 0x30, 0x07, 0x1d, 0xd2, 0xf0, 0xc5, 0x3e, 0x31, 0xd8, 0x76, 0x81, 0x56, 0xfe, 0xb0, 0x8f, 0xaf, 0x00, 0xdb, 0x0a, 0x04, 0x53, 0x3d, 0xf9, 0x79, 0x57, 0xa8, 0x4a, 0xa4, 0x6a, 0xeb, 0x7e, 0x36, 0xc0, 0xb0, 0xbe, 0x69, 0x01, 0x89, 0x46, 0xf1, 0x53, 0x8a, 0x6a, 0xea, 0x71, 0xdf, 0x53, 0x6f, 0x14, 0x42, 0xc2, 0x44, 0x4a, 0x43, 0xa0, 0x43, 0xd0, 0x46, 0xab, 0xde, 0x1a, 0x78, 0x2b, 0x0f, 0x4f, 0x5c, 0x6a, 0xa7, 0x20, 0xaa, 0x60, 0xaf, 0xed, 0x94, 0x7c, 0x0c, 0xee, 0x47, 0x7d, 0xbe, 0xc0, 0x05, 0x57, 0xb3, 0x72, 0x12, 0xd9, 0x33, 0x57, 0xca, 0x2b, 0x6b, 0x6f, 0x82, 0x71, 0x5b, 0xa0, 0xe4, 0x84, 0xf6, 0xda, 0xf2, 0xd0, 0xb7, 0xa9, 0x8c, 0x03, 0x35, 0x19, 0xce, 0x38, 0x26, 0x35, 0x86, 0x79, 0x6d, 0x5d, 0x31, 0xcb, 0x2b, 0xc3, 0xd1, 0x12, 0x5b, 0xc0, 0xcc, 0xd3, 0x29, 0xa5, 0xc2, 0x1f, 0xd2, 0x7a, 0x21, 0x8d, 0xed, 0x60, 0x7a, 0x0e, 0x75, 0x15, 0xb5, 0x71, 0xf1, 0x92, 0xc3, 0x3f, 0x5f, 0xba, 0x51, 0x4a, 0xfe, 0x4d, 0x45, 0x81, 0x00, 0xf3, 0xcc, 0xba, 0x3f, 0x38, 0xeb, 0x43, 0x0b, 0x4f, 0xc8, 0x8f, 0xae, 0xf9, 0x99, 0xfa, 0x71, 0xee, 0xe4, 0x88, 0x22, 0x89, 0x03, 0xbe, 0x29, 0xf2, 0x4d, 0xf8, 0x1d, 0xc9, 0x11, 0x04, 0x4e, 0x92, 0x4c, 0xda, 0xa0, 0x17, 0xcc, 0x7d, 0x87, 0xe5, 0x6a, 0x6c, 0xba, 0x87, 0x60, 0x85, 0x9b, 0xd6, 0x3d, 0xd2, 0xd4, 0xf5, 0x81, 0xb9, 0x55, 0xec, 0x92, 0x4a, 0x49, 0xaf, 0xb4, 0x7c, 0xa0, 0xd6, 0x3e, 0x78, 0x26, 0xfd, 0xc7, 0x12, 0xb4, 0x94, 0x3b, 0x73, 0x9e, 0x18, 0x57, 0x75, 0x5a, 0x33, 0xc6, 0x50, 0x36, 0x75, 0xfd, 0xde, 0xae, 0x06, 0x27, 0x06, 0xe3, 0x4f, 0x74, 0x4f, 0xd9, 0x32, 0x64, 0x8a, 0x56, 0x08, 0xce, 0x60, 0x8a, 0x61, 0x99, 0x57, 0x83, 0xf3, 0x33, 0x9c, 0xa3, 0xfe, 0x10, 0x7e, 0x19, 0x72, 0x74, 0x4b, 0xf6, 0xd4, 0xed, 0xaf, 0xbf, 0x47, 0xce, 0x02, 0x1e, 0x05, 0x82, 0x1f, 0xb1, 0x24, 0xc7, 0x08, 0x39, 0x30, 0xe6, 0x8e, 0x6f, 0x5c, 0x32, 0xd2, 0xd9, 0xfc, 0x4a, 0x88, 0x4c, 0x0b, 0xc8, 0x84, 0x04, 0xe4, 0xcf, 0xe3, 0xc1, 0xa2, 0x42, 0x0d, 0x41, 0x82, 0x3a, 0x38, 0x5f, 0xb3, 0x28, 0x8d, 0xb6, 0x5c, 0x89, 0x54, 0x5f, 0x6e, 0x73, 0xf0, 0xd8, 0x00, 0x4b, 0x2b, 0xa1, 0x2a, 0x4e, 0x07, 0x72, 0x75, 0x23, 0xef, 0x08, 0x56, 0x70, 0xda, 0xff, 0xaf, 0x41, 0xc2, 0x8a, 0x4c, 0x11, 0x57, 0xbd, 0xd2, 0x45, 0xe6, 0x87, 0x50, 0xdd, 0x20, 0x0e, 0x02, 0x3a, 0xf9, 0x0c, 0x67, 0x56, 0x1e, 0x0f, 0xe4, 0xba, 0x34, 0x0c, 0x43, 0x3f, 0x75, 0x5e, 0xef, 0xab, 0xd4, 0xb0, 0x39, 0xbf, 0xc3, 0x23, 0xdc, 0x11, 0xad, 0xb7, 0x5a, 0xec, 0xc4, 0x48, 0xa8, 0x69, 0xc7, 0xf2, 0xa5, 0x8b, 0x9d, 0x86, 0x17, 0xc6, 0x4b, 0x8f, 0x89, 0xfc, 0x58, 0x3f, 0x8c, 0x94, 0x8e, 0x2d, 0xf0, 0x25, 0x1a, 0x6c, 0x7d, 0x8c, 0x73, 0x8c, 0x3b, 0x5a, 0x42, 0xb7, 0x49, 0xad, 0x5e, 0x8e, 0x98, 0x6b, 0xd8, };
15363 static const u8 ed25519_668_test_vectors_expected_sig[] = {
15364 	0x66, 0x43, 0x7b, 0x6b, 0xc0, 0x5e, 0x75, 0xdd, 0x16, 0x26, 0xc3, 0xc4, 0xff, 0x1f, 0x72, 0xe6, 0xdb, 0x38, 0x1b, 0xa1, 0x59, 0x09, 0x48, 0xf8, 0xf1, 0x6a, 0xd4, 0xd6, 0x6e, 0x59, 0x91, 0x65, 0x9a, 0xa8, 0x44, 0x05, 0x56, 0x8c, 0xfb, 0xc0, 0xa7, 0x7c, 0x02, 0x5e, 0x59, 0xe4, 0x3f, 0xd5, 0x3a, 0xb9, 0xff, 0xab, 0xba, 0x7b, 0x25, 0x8f, 0x78, 0x79, 0x62, 0x39, 0xf9, 0x0d, 0x45, 0x01, };
15365 static const ec_test_case ed25519_668_test_case = {
15366 	.name = "EDDSA25519-SHA512/wei25519 668",
15367 	.ec_str_p = &wei25519_str_params,
15368 	.priv_key = ed25519_668_test_vectors_priv_key,
15369 	.priv_key_len = sizeof(ed25519_668_test_vectors_priv_key),
15370 	.nn_random = NULL,
15371 	.hash_type = SHA512,
15372 	.msg = (const char *)ed25519_668_test_vectors_message,
15373 	.msglen = sizeof(ed25519_668_test_vectors_message),
15374 	.sig_type = EDDSA25519,
15375 	.exp_sig = ed25519_668_test_vectors_expected_sig,
15376 	.exp_siglen = sizeof(ed25519_668_test_vectors_expected_sig),
15377 	.adata = NULL,
15378 	.adata_len = 0
15379 };
15380 
15381 /************************************************/
15382 static const u8 ed25519_669_test_vectors_priv_key[] = {
15383 	0xad, 0xc1, 0xe5, 0x6c, 0x3a, 0xc9, 0x4e, 0x6c, 0xda, 0x04, 0x11, 0xcb, 0xc3, 0xce, 0x2a, 0xf1, 0x28, 0xd1, 0x85, 0xa2, 0xa2, 0x73, 0xbd, 0xb2, 0xaf, 0x8d, 0x7e, 0x50, 0xfb, 0x96, 0xb5, 0x26, };
15384 static const u8 ed25519_669_test_vectors_message[] = {
15385 	0xd4, 0xf9, 0x59, 0x47, 0x4e, 0x0b, 0x89, 0xe2, 0xdc, 0xd0, 0x20, 0x66, 0x98, 0x4f, 0x88, 0xd7, 0x39, 0xdd, 0x11, 0x34, 0xa3, 0x33, 0x09, 0xf0, 0xa8, 0xb7, 0x80, 0x2e, 0xaf, 0x01, 0x33, 0x03, 0xc1, 0x35, 0x15, 0xdf, 0xeb, 0x46, 0x1e, 0xa3, 0xd2, 0x48, 0xe9, 0x98, 0xb9, 0xa4, 0xe5, 0x4d, 0xae, 0x5b, 0x00, 0x19, 0x0a, 0x45, 0xe7, 0x0d, 0xc6, 0x7e, 0x98, 0xf3, 0xd4, 0xcf, 0x90, 0x6c, 0x21, 0x4d, 0x4f, 0x63, 0x6d, 0x29, 0x52, 0x92, 0x5e, 0x22, 0xb1, 0xa8, 0x6a, 0x1a, 0xab, 0xb3, 0xa8, 0x92, 0xa9, 0xf8, 0xed, 0x45, 0x4f, 0x39, 0xc6, 0x3d, 0x35, 0xb7, 0x1e, 0x87, 0xa2, 0xda, 0x55, 0xa8, 0xe1, 0x67, 0xac, 0x83, 0xa8, 0x66, 0xad, 0x16, 0x7a, 0x17, 0xae, 0xd1, 0x83, 0xc0, 0x85, 0x18, 0xc1, 0x5e, 0x6b, 0xe3, 0x48, 0x58, 0xb4, 0xce, 0xe2, 0xb8, 0x42, 0x73, 0x14, 0x76, 0x0f, 0xff, 0xdd, 0xd5, 0x92, 0x38, 0x54, 0xb1, 0x74, 0x7f, 0x79, 0x6e, 0x1a, 0x52, 0x49, 0xfb, 0x30, 0x44, 0x89, 0x4e, 0xd6, 0x46, 0x82, 0x9f, 0x65, 0x43, 0x16, 0xee, 0x52, 0xf4, 0x01, 0x0c, 0x8d, 0xd3, 0x21, 0xfa, 0x1d, 0xec, 0x39, 0x7e, 0x50, 0x14, 0x5e, 0xd9, 0xe3, 0x16, 0x86, 0xfd, 0x52, 0x03, 0xf7, 0x23, 0x3b, 0x8d, 0xa7, 0x80, 0xac, 0xaa, 0x91, 0xee, 0x0b, 0x5b, 0x47, 0x20, 0x78, 0x66, 0xaa, 0xd8, 0x5f, 0x83, 0x7e, 0x03, 0xb4, 0xe6, 0xf6, 0xde, 0x8c, 0x04, 0xac, 0xaf, 0xd7, 0x07, 0xbd, 0xc1, 0xdd, 0x45, 0x50, 0x0a, 0xb5, 0x64, 0x80, 0x1b, 0xee, 0x9a, 0x58, 0xec, 0xe3, 0x60, 0xd0, 0x04, 0x82, 0x8b, 0xaa, 0xf5, 0x23, 0xe2, 0xf5, 0xab, 0x69, 0x32, 0x6a, 0x03, 0xaa, 0xbe, 0x01, 0x08, 0x78, 0xfd, 0x43, 0xff, 0xaa, 0x56, 0x87, 0x22, 0x44, 0xd7, 0x68, 0x1f, 0x16, 0x18, 0xe6, 0x23, 0xe3, 0xd4, 0x74, 0xc7, 0x3a, 0xf8, 0xb0, 0x80, 0xa6, 0x18, 0x21, 0xa5, 0x74, 0xef, 0x2f, 0xd7, 0x52, 0xd2, 0x3b, 0x60, 0x5e, 0xc5, 0x21, 0xc1, 0x9c, 0x15, 0x50, 0xde, 0x98, 0x0c, 0x09, 0x4d, 0x05, 0xe0, 0x23, 0x8f, 0x3e, 0x00, 0x8e, 0x6b, 0x19, 0x5a, 0xbf, 0xdd, 0x40, 0x28, 0xee, 0x1e, 0xe1, 0xd6, 0xc6, 0x6a, 0x76, 0xf1, 0x78, 0xf0, 0xb4, 0x31, 0xe4, 0xaf, 0x44, 0xdd, 0xcc, 0xfc, 0x52, 0x90, 0xed, 0xff, 0x36, 0xec, 0xe6, 0x3e, 0x83, 0x85, 0x56, 0x70, 0x13, 0xf4, 0x3a, 0x2a, 0xeb, 0xb6, 0x7e, 0x3e, 0xf4, 0x06, 0x30, 0x8c, 0x20, 0x48, 0x8a, 0x76, 0xd5, 0x8a, 0x21, 0x4f, 0x31, 0x39, 0xd9, 0x83, 0xb1, 0x9a, 0xfb, 0x12, 0xe3, 0x28, 0x36, 0x07, 0xfd, 0x75, 0x10, 0x7b, 0xd3, 0x1f, 0xeb, 0x62, 0x56, 0x17, 0x4b, 0x7a, 0x18, 0xae, 0xca, 0xc9, 0xf8, 0x56, 0x25, 0x82, 0x01, 0x8b, 0x0e, 0x6d, 0xe4, 0x05, 0x35, 0xe3, 0x5b, 0xef, 0x2b, 0x56, 0x25, 0x53, 0x88, 0x51, 0x29, 0x39, 0x75, 0x62, 0x90, 0x0d, 0x34, 0x17, 0xf9, 0x8c, 0xdd, 0x1e, 0x29, 0xd7, 0x31, 0xff, 0x48, 0x93, 0x3f, 0x29, 0x52, 0x95, 0x81, 0x63, 0xba, 0x67, 0xd5, 0x95, 0x61, 0x81, 0x1b, 0x83, 0x77, 0x2b, 0xd0, 0x57, 0x10, 0xb6, 0xe3, 0xcc, 0x04, 0x34, 0x60, 0x99, 0x37, 0x50, 0x72, 0x23, 0xab, 0xb7, 0x1a, 0x6a, 0x8c, 0x83, 0x8f, 0xec, 0xdb, 0x1d, 0x2d, 0x37, 0xc9, 0x5d, 0xc8, 0x06, 0xf6, 0x5f, 0x3f, 0x96, 0x63, 0xd9, 0x9f, 0x06, 0xe6, 0xc0, 0xf3, 0xc3, 0x2e, 0x95, 0xaf, 0x1d, 0xd7, 0x08, 0xe8, 0x11, 0x08, 0x63, 0x6a, 0x26, 0xb9, 0x68, 0xe9, 0x83, 0x39, 0xc7, 0x41, 0x28, 0xb6, 0xcf, 0x67, 0x13, 0x35, 0x88, 0x4a, 0xc7, 0x2f, 0x75, 0xb6, 0x37, 0x19, 0x5e, 0xa9, 0xec, 0xa0, 0x53, 0x60, 0x89, 0x96, 0xc3, 0x2e, 0xd4, 0x45, 0x41, 0x0f, 0x67, 0xfa, 0x10, 0x4b, 0x39, 0xf0, 0xfd, 0xf3, 0xc9, 0xb5, 0xc6, 0x15, 0x7b, 0x76, 0x80, 0x37, 0x56, 0xb2, 0x7f, 0x4c, 0x3b, 0xa1, 0xb4, 0x7f, 0x32, 0x85, 0x76, 0x24, 0x8e, 0x9b, 0xc5, 0x3e, 0x7b, 0x8a, 0xb0, 0xb2, 0xed, 0x97, 0xc2, 0xf9, 0x99, 0x8b, 0xcc, 0x7d, 0xfe, 0x39, 0xe2, 0x64, 0xaa, 0xd3, 0x0c, 0x6c, 0xfe, 0xf2, 0xb5, 0x55, 0x3f, 0xfb, 0x5a, 0x69, 0x9a, 0xa4, 0xbd, 0x0e, 0xab, 0xe4, 0x38, 0xce, 0x05, 0x22, 0xcc, 0x91, 0xfe, 0x4e, 0x72, 0xbf, 0x7e, 0xac, 0xba, 0x47, 0x71, 0xcc, 0xf6, 0x3a, 0x37, 0xaa, 0xfc, 0xad, 0xbf, 0xbf, 0x99, 0xdd, 0x76, 0xb8, 0x5b, 0x80, 0xee, 0x07, 0x5d, 0x3a, 0x7d, 0x1a, 0x90, 0xa5, 0x5b, 0x77, 0x29, 0xa5, 0x41, 0x6e, 0x5b, 0xe6, 0x96, 0xbf, 0x9f, 0xb7, 0xf3, 0x15, 0x8c, 0xfd, 0xb5, 0xcf, 0xda, 0xcd, 0xde, 0x81, 0x72, 0xee, 0x1a, 0xb9, 0x48, 0x6e, 0x24, 0xcc, 0xea, 0xd2, 0x9b, 0x45, 0x7a, 0xcf, 0x43, };
15386 static const u8 ed25519_669_test_vectors_expected_sig[] = {
15387 	0xf0, 0x2e, 0x5d, 0xbc, 0xb6, 0x87, 0x04, 0xaf, 0xad, 0x03, 0xac, 0xa8, 0x10, 0x61, 0xdb, 0xdb, 0x99, 0x85, 0x70, 0x04, 0x9f, 0x10, 0xce, 0x65, 0x0e, 0xc7, 0xa2, 0xef, 0xf1, 0x5c, 0x79, 0x3d, 0xdf, 0x5a, 0x27, 0x2c, 0xb6, 0x83, 0xc2, 0x2c, 0x87, 0x25, 0x7c, 0x59, 0xbd, 0xef, 0x39, 0xef, 0xea, 0x79, 0xbd, 0x67, 0x95, 0x56, 0xea, 0x15, 0x05, 0xed, 0x00, 0x36, 0xcb, 0x46, 0x04, 0x0c, };
15388 static const ec_test_case ed25519_669_test_case = {
15389 	.name = "EDDSA25519-SHA512/wei25519 669",
15390 	.ec_str_p = &wei25519_str_params,
15391 	.priv_key = ed25519_669_test_vectors_priv_key,
15392 	.priv_key_len = sizeof(ed25519_669_test_vectors_priv_key),
15393 	.nn_random = NULL,
15394 	.hash_type = SHA512,
15395 	.msg = (const char *)ed25519_669_test_vectors_message,
15396 	.msglen = sizeof(ed25519_669_test_vectors_message),
15397 	.sig_type = EDDSA25519,
15398 	.exp_sig = ed25519_669_test_vectors_expected_sig,
15399 	.exp_siglen = sizeof(ed25519_669_test_vectors_expected_sig),
15400 	.adata = NULL,
15401 	.adata_len = 0
15402 };
15403 
15404 /************************************************/
15405 static const u8 ed25519_670_test_vectors_priv_key[] = {
15406 	0xdb, 0x89, 0xdf, 0x6a, 0x23, 0xd8, 0x90, 0xb7, 0xf0, 0x02, 0x60, 0xe8, 0x1f, 0x4a, 0xd9, 0x8f, 0xd0, 0x94, 0x40, 0x36, 0x51, 0x31, 0xe8, 0x5e, 0x22, 0xc7, 0x95, 0x1a, 0x18, 0x7b, 0x02, 0x18, };
15407 static const u8 ed25519_670_test_vectors_message[] = {
15408 	0x54, 0xc1, 0xc5, 0x11, 0x1e, 0x08, 0xc9, 0x82, 0x45, 0xba, 0x4f, 0x13, 0x18, 0xba, 0x1d, 0xb1, 0xdc, 0xc7, 0x4d, 0x14, 0xa5, 0xc9, 0x8a, 0xb9, 0x68, 0x9c, 0xba, 0x1c, 0x80, 0x2c, 0x68, 0xbc, 0xfc, 0x81, 0xfd, 0x87, 0xff, 0xc6, 0x1c, 0xaa, 0x94, 0x2f, 0x66, 0xd7, 0xe5, 0x15, 0x7f, 0x65, 0x53, 0x8c, 0x7e, 0x7b, 0x33, 0x17, 0x04, 0x84, 0xb4, 0xb6, 0x54, 0x3f, 0x36, 0x20, 0xff, 0x29, 0x63, 0x8b, 0x64, 0xd4, 0xda, 0xe7, 0xb0, 0x22, 0x21, 0xcf, 0x77, 0x83, 0xf1, 0x87, 0xec, 0x42, 0x31, 0xe6, 0xb6, 0x94, 0x6d, 0x82, 0x76, 0x20, 0x74, 0xf0, 0x9c, 0x32, 0x78, 0x1c, 0x2f, 0x38, 0x46, 0xde, 0x3e, 0x82, 0x17, 0xf6, 0xe1, 0xb6, 0xe0, 0xd2, 0xb5, 0x59, 0x5d, 0x74, 0x2e, 0x2c, 0x4e, 0x32, 0x5a, 0x28, 0x41, 0x92, 0x40, 0x44, 0xdf, 0xcf, 0x12, 0xb4, 0x79, 0xeb, 0x69, 0xf1, 0xbb, 0xd4, 0x0e, 0xab, 0xdd, 0xd1, 0xff, 0x54, 0xa9, 0x18, 0x4d, 0x36, 0x6d, 0xff, 0x9d, 0x8f, 0x2d, 0x86, 0x3e, 0x37, 0x8a, 0x41, 0xf1, 0x0c, 0xd1, 0xda, 0xe9, 0x22, 0xcd, 0x7f, 0xbb, 0x2a, 0x54, 0x4e, 0x47, 0xea, 0xbf, 0x47, 0xca, 0x0a, 0x38, 0xab, 0xba, 0x34, 0x45, 0x49, 0x19, 0xbb, 0x9a, 0x4e, 0xf0, 0x44, 0xbf, 0xb9, 0x7b, 0x70, 0x8c, 0x2f, 0x74, 0x28, 0xd6, 0x8f, 0x9c, 0x57, 0xc0, 0xee, 0x7e, 0x79, 0x25, 0xf7, 0xa2, 0xb5, 0xc6, 0xe7, 0xdf, 0x82, 0xbb, 0x26, 0x80, 0xc8, 0x62, 0xdc, 0x7c, 0xc6, 0x8b, 0x0f, 0x54, 0x53, 0x0e, 0x64, 0xaf, 0xe2, 0x76, 0x3d, 0x9c, 0x7b, 0xaf, 0x45, 0xcc, 0x6f, 0xe6, 0x12, 0xd1, 0xf7, 0x82, 0x77, 0x39, 0xc4, 0x41, 0x13, 0x98, 0x88, 0x8f, 0x73, 0x67, 0xc3, 0xd4, 0x37, 0x79, 0x07, 0xac, 0xc0, 0x6a, 0x06, 0xf9, 0x3f, 0x88, 0x72, 0x26, 0x79, 0x8f, 0x48, 0xaa, 0x54, 0x64, 0xf6, 0x01, 0xc2, 0xc1, 0xed, 0xda, 0x77, 0xed, 0xfe, 0xb9, 0xb9, 0xb5, 0xd5, 0xf9, 0xcb, 0x6f, 0xed, 0x37, 0x90, 0x05, 0x47, 0x47, 0x7f, 0xca, 0x1d, 0x09, 0xab, 0x52, 0xd6, 0x3e, 0x49, 0x1f, 0xeb, 0x12, 0xfd, 0x6d, 0xc8, 0x05, 0xa7, 0x8c, 0xee, 0x3b, 0xaa, 0xde, 0x43, 0x52, 0x98, 0x20, 0x61, 0xde, 0xa5, 0xa2, 0x65, 0x3d, 0xb8, 0xe7, 0x60, 0x77, 0x72, 0xe8, 0x34, 0xb3, 0xa5, 0x05, 0xc1, 0x6d, 0xd6, 0xe7, 0xc7, 0x1b, 0x91, 0x1e, 0x84, 0x2e, 0xba, 0x92, 0x5d, 0x77, 0xa3, 0x3c, 0x5c, 0x57, 0xce, 0x11, 0x84, 0x09, 0x80, 0x78, 0xca, 0x2e, 0x6a, 0x3f, 0x69, 0xaa, 0x6a, 0x14, 0x63, 0x9d, 0xc9, 0x7b, 0x4b, 0x30, 0xc9, 0x9d, 0xc4, 0xfa, 0x3e, 0x2c, 0xf6, 0x3c, 0x70, 0x1c, 0x30, 0x6c, 0x5e, 0x25, 0x3c, 0x51, 0x13, 0x85, 0x4c, 0x18, 0x5e, 0xbc, 0x8b, 0x47, 0x98, 0xf6, 0x8d, 0x1f, 0xd7, 0x80, 0x05, 0x4d, 0x3e, 0xed, 0x2f, 0x39, 0x4c, 0x45, 0x43, 0x04, 0x96, 0x6b, 0xdd, 0xbd, 0x12, 0x28, 0x08, 0x34, 0xec, 0x9b, 0x40, 0xc1, 0xe9, 0x8b, 0xc2, 0xd9, 0x8f, 0x48, 0x45, 0xf6, 0xeb, 0x44, 0xf2, 0x53, 0x15, 0xee, 0xdb, 0x3b, 0x79, 0xff, 0xca, 0x41, 0x80, 0xc1, 0xbd, 0xdd, 0x97, 0xd0, 0xc9, 0xaf, 0xfb, 0xac, 0x58, 0x81, 0x49, 0x37, 0x68, 0x26, 0x80, 0x07, 0x6f, 0xe5, 0xa3, 0xba, 0xbb, 0x65, 0xd2, 0x8f, 0x25, 0x17, 0x03, 0x6c, 0x0c, 0xfb, 0x42, 0xf0, 0x29, 0x3e, 0xb2, 0xac, 0xb1, 0x39, 0x49, 0xfe, 0x91, 0xe0, 0xad, 0x06, 0x78, 0xaa, 0x24, 0x3d, 0x77, 0x34, 0xa8, 0x9d, 0x99, 0x78, 0x70, 0xbf, 0x9a, 0x6a, 0x58, 0x4e, 0xd6, 0xe6, 0x28, 0x16, 0x3e, 0x39, 0xd8, 0xaa, 0x61, 0x0d, 0x46, 0xb9, 0x28, 0x5b, 0x9e, 0x1d, 0xd7, 0xe8, 0xf8, 0x07, 0xfd, 0xf5, 0xca, 0x2b, 0xbf, 0x6d, 0xe5, 0xe5, 0xe6, 0x8a, 0xf7, 0xcb, 0x7e, 0xbd, 0x43, 0xec, 0xce, 0x22, 0x7c, 0xd7, 0x0c, 0x7b, 0xf4, 0xee, 0x14, 0x33, 0xed, 0xfc, 0xfe, 0x88, 0x66, 0x14, 0x67, 0x0c, 0xdd, 0x19, 0x63, 0x43, 0xfb, 0x91, 0xe1, 0x54, 0x16, 0xd2, 0xf6, 0xac, 0xba, 0xe3, 0xea, 0xdc, 0x03, 0x02, 0x31, 0xee, 0x9d, 0x2e, 0xcc, 0x52, 0xa8, 0x8c, 0xe8, 0xdc, 0x7d, 0x09, 0x8e, 0x7f, 0xac, 0x77, 0x68, 0x5b, 0x4e, 0xb5, 0x40, 0xe3, 0x01, 0x93, 0x07, 0x14, 0x32, 0x21, 0xb8, 0xef, 0x77, 0xf3, 0x63, 0x2c, 0x89, 0x3d, 0x55, 0x6e, 0x0b, 0xb7, 0x43, 0xa1, 0x96, 0x3e, 0xc1, 0x58, 0x86, 0xc8, 0x54, 0x5e, 0x87, 0xc9, 0x5c, 0xc8, 0x25, 0xf2, 0x00, 0xd0, 0xf3, 0xcf, 0x4f, 0x55, 0xa3, 0xd6, 0x60, 0xa5, 0x36, 0xa2, 0x3a, 0xef, 0xcc, 0x42, 0x8a, 0x43, 0x20, 0x34, 0x85, 0xee, 0x84, 0x34, 0x2f, 0x5c, 0x00, 0x1e, 0xe8, 0x40, 0x4e, 0x75, 0x90, 0x17, 0x00, 0x62, 0x82, 0xab, 0x8b, 0xa8, 0x90, 0x3e, };
15409 static const u8 ed25519_670_test_vectors_expected_sig[] = {
15410 	0x80, 0xb7, 0xfc, 0x8b, 0x6a, 0xe6, 0xee, 0xce, 0x81, 0x66, 0xb7, 0xea, 0x53, 0x4c, 0xb5, 0xb2, 0x14, 0xc9, 0xea, 0x99, 0x73, 0x92, 0x1e, 0xd0, 0x5d, 0xe4, 0x0c, 0x78, 0xe1, 0x4f, 0x16, 0x2b, 0x09, 0xe9, 0x78, 0xca, 0x6d, 0x86, 0xee, 0x43, 0x4d, 0x98, 0x4b, 0x8b, 0x00, 0x70, 0x40, 0x9d, 0xd2, 0xad, 0x11, 0xb5, 0x31, 0x78, 0xe2, 0x39, 0xda, 0xb5, 0xbc, 0x39, 0xc7, 0xba, 0x46, 0x0d, };
15411 static const ec_test_case ed25519_670_test_case = {
15412 	.name = "EDDSA25519-SHA512/wei25519 670",
15413 	.ec_str_p = &wei25519_str_params,
15414 	.priv_key = ed25519_670_test_vectors_priv_key,
15415 	.priv_key_len = sizeof(ed25519_670_test_vectors_priv_key),
15416 	.nn_random = NULL,
15417 	.hash_type = SHA512,
15418 	.msg = (const char *)ed25519_670_test_vectors_message,
15419 	.msglen = sizeof(ed25519_670_test_vectors_message),
15420 	.sig_type = EDDSA25519,
15421 	.exp_sig = ed25519_670_test_vectors_expected_sig,
15422 	.exp_siglen = sizeof(ed25519_670_test_vectors_expected_sig),
15423 	.adata = NULL,
15424 	.adata_len = 0
15425 };
15426 
15427 /************************************************/
15428 static const u8 ed25519_671_test_vectors_priv_key[] = {
15429 	0x00, 0xe6, 0xbb, 0x17, 0xaf, 0x3c, 0x2d, 0xf6, 0x52, 0xb3, 0x4f, 0x9a, 0xbe, 0x19, 0xf9, 0x90, 0x19, 0x07, 0x42, 0x33, 0x68, 0x6c, 0x71, 0x14, 0xe3, 0xa0, 0xed, 0xf0, 0x83, 0x09, 0x93, 0x4f, };
15430 static const u8 ed25519_671_test_vectors_message[] = {
15431 	0x06, 0x32, 0x81, 0xe4, 0x1e, 0x8b, 0xa9, 0x70, 0x3e, 0xd0, 0x9e, 0xf3, 0xbf, 0x0e, 0xa4, 0x6e, 0x4c, 0xab, 0xdd, 0x6e, 0xbd, 0x76, 0x9d, 0x05, 0xdc, 0x04, 0x5d, 0x4f, 0x99, 0x0d, 0x69, 0xfc, 0x55, 0x41, 0x30, 0xa4, 0xe6, 0x1a, 0xa2, 0x1e, 0x2d, 0xe4, 0xc9, 0x2d, 0xb4, 0x8a, 0x20, 0xa3, 0x7b, 0x17, 0x47, 0xa7, 0xea, 0xc5, 0xeb, 0xb2, 0x73, 0x5a, 0x89, 0x38, 0x19, 0x7f, 0x13, 0x9f, 0xad, 0x14, 0x97, 0xb3, 0x51, 0xad, 0x06, 0x4c, 0x0f, 0x18, 0xf8, 0xfa, 0xf1, 0xfe, 0x11, 0xf6, 0x39, 0x79, 0xa6, 0x99, 0x68, 0xe2, 0x4c, 0xf9, 0x1e, 0x58, 0xa3, 0xab, 0x03, 0x26, 0x69, 0xe4, 0xef, 0xee, 0x27, 0x4f, 0x96, 0xb5, 0x8b, 0xe7, 0xd9, 0xe3, 0x91, 0xf3, 0x6f, 0xcf, 0x07, 0x09, 0xb2, 0xcb, 0x2d, 0x22, 0x69, 0x4a, 0x6c, 0xeb, 0x17, 0x24, 0x69, 0x45, 0xeb, 0xb3, 0xbc, 0x7f, 0x0f, 0x03, 0xbf, 0x0b, 0x08, 0xdc, 0x96, 0x26, 0xe3, 0xe7, 0x15, 0xc9, 0x91, 0x67, 0x1d, 0x53, 0xeb, 0xb9, 0xae, 0x83, 0xa7, 0xd0, 0x8d, 0x44, 0xf6, 0x36, 0x35, 0xc4, 0x0f, 0x8d, 0x48, 0x17, 0xf5, 0x8d, 0xe9, 0xeb, 0x77, 0xcb, 0x25, 0xb2, 0xac, 0xd6, 0xde, 0xf9, 0x69, 0xab, 0x56, 0x9e, 0x97, 0x4a, 0x8a, 0xda, 0xc1, 0x1a, 0x86, 0xb5, 0x8f, 0xe6, 0xc1, 0x00, 0x67, 0x49, 0x9f, 0xc9, 0x14, 0xdf, 0xf5, 0x69, 0x02, 0xcb, 0xc3, 0x93, 0xa7, 0x1c, 0xc2, 0x5e, 0x8f, 0x05, 0xc0, 0x3c, 0x94, 0xf1, 0x3b, 0x84, 0xa2, 0xb0, 0x1a, 0x58, 0xc1, 0x0d, 0xbc, 0xbb, 0x60, 0xeb, 0xce, 0xe4, 0x87, 0xf5, 0x29, 0x17, 0x74, 0x66, 0x29, 0x99, 0x25, 0xda, 0x50, 0xe2, 0xda, 0x5b, 0x55, 0x57, 0xf0, 0xae, 0xee, 0x3f, 0xd7, 0xf4, 0x7b, 0x5c, 0x2e, 0x3f, 0x84, 0xce, 0xfa, 0xb4, 0x67, 0x96, 0x91, 0x39, 0x4d, 0xd1, 0x22, 0x30, 0x3b, 0xb7, 0x69, 0xaf, 0xb3, 0xad, 0xfe, 0x83, 0x58, 0xb0, 0x2b, 0x67, 0x92, 0x73, 0xb3, 0x5a, 0xbd, 0xc6, 0x40, 0x25, 0x76, 0xcc, 0xce, 0x5e, 0x10, 0x44, 0x2a, 0x13, 0x7e, 0xf9, 0x45, 0x69, 0x39, 0xb2, 0x89, 0xef, 0x4e, 0x41, 0x7b, 0x1c, 0xc6, 0x23, 0x9f, 0x7c, 0xee, 0xdd, 0x68, 0xf1, 0xa8, 0x26, 0x41, 0x80, 0xe0, 0x68, 0xb4, 0x96, 0x6f, 0xd6, 0x7f, 0x2b, 0xad, 0x6e, 0xdd, 0x8b, 0x4a, 0x1e, 0x8d, 0x2b, 0x54, 0x2d, 0xaf, 0x26, 0xdb, 0x83, 0x1f, 0x1f, 0xb5, 0x1e, 0xb8, 0x6f, 0xfa, 0xde, 0xcc, 0xd9, 0xac, 0x3d, 0x66, 0x4f, 0x34, 0x6e, 0x7d, 0x04, 0x6c, 0x33, 0xa5, 0x72, 0x84, 0x1e, 0xa8, 0x33, 0x4e, 0x7f, 0x2f, 0x41, 0x7a, 0x05, 0x71, 0x2a, 0x9e, 0x33, 0x4e, 0x48, 0x7f, 0xd3, 0xae, 0x17, 0x54, 0x55, 0x16, 0x2f, 0xe8, 0xf4, 0x9c, 0xc0, 0x26, 0xa6, 0x40, 0xc6, 0xcf, 0x93, 0xcf, 0x58, 0x87, 0x50, 0x52, 0xf4, 0x1c, 0xc9, 0x82, 0x06, 0x15, 0x65, 0x3e, 0xa2, 0xd0, 0x84, 0xc8, 0x96, 0xea, 0xfe, 0x5a, 0xd4, 0x72, 0x55, 0x79, 0x65, 0x30, 0x84, 0x99, 0x4f, 0x95, 0x6d, 0x5c, 0x94, 0x59, 0x0a, 0x24, 0x09, 0x58, 0x1b, 0x6f, 0xc8, 0x6e, 0x40, 0xaa, 0x58, 0xbf, 0x6e, 0x60, 0x57, 0xa6, 0xf9, 0x0a, 0xf3, 0xb8, 0x7a, 0xea, 0xf3, 0x29, 0x94, 0xa5, 0x5a, 0x54, 0xf7, 0x9b, 0xdf, 0x3d, 0xbb, 0xf5, 0xce, 0x0f, 0xf8, 0x12, 0xe4, 0x86, 0xb0, 0x54, 0x5d, 0x9e, 0x9c, 0x2b, 0x0b, 0xce, 0x0d, 0x4c, 0x36, 0x47, 0xb1, 0x82, 0x72, 0x62, 0x49, 0x88, 0x34, 0xe1, 0x98, 0xa3, 0xec, 0x70, 0xf3, 0xb0, 0x3d, 0x6a, 0xad, 0x2c, 0x49, 0xeb, 0x80, 0xb5, 0xe2, 0x05, 0x14, 0x39, 0x22, 0x5f, 0xd9, 0xce, 0x94, 0x68, 0xd6, 0x9a, 0xf7, 0x0a, 0x26, 0x2e, 0xe3, 0xb8, 0xb6, 0x2a, 0x8e, 0x5b, 0x41, 0x34, 0x6d, 0xa3, 0x01, 0x2f, 0xfb, 0x45, 0x81, 0x6b, 0x7b, 0xec, 0xb0, 0xe7, 0x9a, 0x60, 0xbf, 0xf7, 0x16, 0x36, 0xa3, 0xe4, 0xbb, 0x1b, 0x35, 0xca, 0xf1, 0x95, 0xf5, 0x51, 0x17, 0x28, 0x0f, 0x78, 0x72, 0x17, 0xb3, 0xca, 0xa2, 0xe7, 0x93, 0x72, 0x6f, 0xc5, 0xa7, 0x4d, 0x11, 0x60, 0xdc, 0xad, 0x86, 0x89, 0x04, 0xc1, 0x97, 0x38, 0x11, 0x34, 0xed, 0x8c, 0x3d, 0xb3, 0x75, 0x0b, 0x75, 0x56, 0xf6, 0x9c, 0xcc, 0xe1, 0x8b, 0x77, 0x38, 0x8b, 0x58, 0xc5, 0xb8, 0x11, 0x3e, 0x59, 0x0a, 0xd6, 0xea, 0xc5, 0xb9, 0x1e, 0xce, 0x5a, 0x67, 0x05, 0x02, 0x5c, 0x80, 0x35, 0x3c, 0xeb, 0x1e, 0xd8, 0x4a, 0xaa, 0x1c, 0xc4, 0x8a, 0x41, 0x6b, 0xc0, 0x16, 0xae, 0xf1, 0x73, 0xbb, 0x80, 0xb2, 0xba, 0x28, 0xc5, 0x79, 0x60, 0xc6, 0xb0, 0x11, 0xb6, 0xb4, 0x95, 0xa3, 0xf3, 0x31, 0x1e, 0x79, 0xfe, 0x46, 0xbd, 0xb6, 0xa4, 0xc3, 0x81, 0xfb, 0x9d, 0xc4, 0x62, 0x8b, 0x0a, 0x83, 0x02, 0x35, 0x58, 0xf1, };
15432 static const u8 ed25519_671_test_vectors_expected_sig[] = {
15433 	0x04, 0xb3, 0xb8, 0x50, 0x1e, 0x39, 0x6c, 0x4a, 0x78, 0x8e, 0x14, 0xac, 0x49, 0xf6, 0x17, 0x4c, 0xdb, 0x5c, 0x85, 0x5e, 0x65, 0x12, 0x03, 0xcf, 0x68, 0xd1, 0xef, 0xa8, 0x9a, 0xa5, 0x86, 0x78, 0xd4, 0xd1, 0xf3, 0x03, 0xa9, 0x87, 0x7a, 0x37, 0x86, 0xd2, 0x03, 0xc3, 0x55, 0xb0, 0x9d, 0x52, 0x86, 0xc1, 0xca, 0x0d, 0xf0, 0x4a, 0x89, 0xaa, 0x06, 0xcc, 0x3f, 0x9d, 0x0f, 0xd3, 0x05, 0x04, };
15434 static const ec_test_case ed25519_671_test_case = {
15435 	.name = "EDDSA25519-SHA512/wei25519 671",
15436 	.ec_str_p = &wei25519_str_params,
15437 	.priv_key = ed25519_671_test_vectors_priv_key,
15438 	.priv_key_len = sizeof(ed25519_671_test_vectors_priv_key),
15439 	.nn_random = NULL,
15440 	.hash_type = SHA512,
15441 	.msg = (const char *)ed25519_671_test_vectors_message,
15442 	.msglen = sizeof(ed25519_671_test_vectors_message),
15443 	.sig_type = EDDSA25519,
15444 	.exp_sig = ed25519_671_test_vectors_expected_sig,
15445 	.exp_siglen = sizeof(ed25519_671_test_vectors_expected_sig),
15446 	.adata = NULL,
15447 	.adata_len = 0
15448 };
15449 
15450 /************************************************/
15451 static const u8 ed25519_672_test_vectors_priv_key[] = {
15452 	0xfb, 0xdd, 0xf6, 0xe6, 0x1e, 0x20, 0xd8, 0x06, 0xe5, 0x59, 0x17, 0x75, 0x6d, 0xe6, 0x0d, 0x0c, 0x9a, 0x99, 0x97, 0x6f, 0x64, 0x67, 0x16, 0xff, 0x2f, 0xf1, 0x31, 0x2c, 0x54, 0xdd, 0x97, 0x1d, };
15453 static const u8 ed25519_672_test_vectors_message[] = {
15454 	0x3e, 0x99, 0x53, 0xca, 0x55, 0xd0, 0xcd, 0x23, 0x3b, 0x98, 0x83, 0x3e, 0xb1, 0xbc, 0x79, 0xd3, 0xb5, 0x5f, 0x18, 0xc8, 0xfa, 0x1c, 0x42, 0x02, 0x7b, 0xca, 0x25, 0x57, 0x91, 0x53, 0xb5, 0x5d, 0xa0, 0xc5, 0xa1, 0x78, 0xb8, 0x38, 0x69, 0x56, 0xd9, 0xa5, 0x41, 0x83, 0xb2, 0x4c, 0x91, 0xdc, 0x4b, 0xe9, 0x94, 0x84, 0x72, 0x37, 0xd3, 0x66, 0x6a, 0x0a, 0x01, 0x30, 0xfe, 0x19, 0x92, 0x4b, 0xc0, 0xee, 0x50, 0x89, 0x6c, 0x35, 0xa2, 0xe1, 0x6a, 0x29, 0xe2, 0xe2, 0xac, 0xf1, 0x80, 0xbd, 0xd9, 0x37, 0x93, 0x54, 0x68, 0x7f, 0x0e, 0xce, 0x68, 0x82, 0xd2, 0x6e, 0x98, 0x0e, 0x68, 0x66, 0x98, 0x04, 0x3b, 0xb1, 0xb0, 0x12, 0x13, 0xaa, 0x64, 0x4a, 0x4f, 0x8d, 0x61, 0xf9, 0xb6, 0x13, 0xe6, 0x2e, 0xaa, 0x35, 0x76, 0xce, 0xa0, 0xb0, 0xb8, 0x3f, 0x05, 0xce, 0x25, 0x58, 0xff, 0x63, 0x56, 0x49, 0x5c, 0x45, 0xed, 0xe4, 0xa8, 0xf6, 0x5b, 0x81, 0x4a, 0xb8, 0xa7, 0x30, 0x94, 0x03, 0xdf, 0xd4, 0x3c, 0xbe, 0xa9, 0x08, 0x93, 0x93, 0x9b, 0x78, 0x00, 0xaa, 0x00, 0x23, 0x2b, 0x5f, 0x6b, 0x77, 0x14, 0xeb, 0xdc, 0xd8, 0xbc, 0xf3, 0x4a, 0x5a, 0x7e, 0x82, 0x2a, 0xc7, 0xb1, 0xb0, 0x99, 0xac, 0x61, 0x5f, 0x13, 0x5f, 0x8c, 0x35, 0x1d, 0xc4, 0x1a, 0xe5, 0xf6, 0x6d, 0x5f, 0x9c, 0x26, 0x00, 0x45, 0x4c, 0xa0, 0x1c, 0x00, 0x9b, 0xa6, 0xde, 0x04, 0x16, 0x2a, 0xe5, 0xf1, 0xf2, 0x70, 0x89, 0x3c, 0xa3, 0x90, 0x7a, 0xff, 0x7f, 0x78, 0xe0, 0x33, 0x96, 0xe3, 0x2b, 0x62, 0x2f, 0xf3, 0x40, 0x53, 0x7b, 0xf1, 0x23, 0xe5, 0x59, 0x95, 0xe9, 0x20, 0x96, 0x09, 0x33, 0x0b, 0x2e, 0xee, 0x51, 0x12, 0x74, 0x84, 0xa4, 0x0e, 0x25, 0x07, 0x00, 0x82, 0x3f, 0xeb, 0x0b, 0xc9, 0x7b, 0xb5, 0x09, 0xff, 0x73, 0x26, 0x75, 0xde, 0xc3, 0x2e, 0xcb, 0x63, 0x5e, 0xd9, 0x2c, 0x7d, 0x78, 0xfe, 0x30, 0x50, 0x20, 0x0c, 0xf1, 0xd9, 0x41, 0xd6, 0xb3, 0x88, 0x80, 0x0a, 0x84, 0x19, 0xd9, 0x6a, 0x59, 0x5e, 0xce, 0xd5, 0xec, 0x4e, 0xfd, 0xcb, 0x6f, 0x98, 0x7f, 0x54, 0x72, 0xa5, 0xc4, 0x30, 0x58, 0xd3, 0xa3, 0xa7, 0xbb, 0x56, 0xd7, 0x98, 0x03, 0x65, 0xed, 0x43, 0xdb, 0xc2, 0xbe, 0x48, 0xf1, 0xd1, 0x8c, 0xe7, 0x6a, 0x89, 0x18, 0x54, 0x26, 0xfd, 0x5c, 0x69, 0xdf, 0x7e, 0x92, 0x91, 0xab, 0x78, 0x23, 0xc2, 0x3a, 0x76, 0x94, 0x1e, 0xd3, 0x83, 0x6a, 0xac, 0x7b, 0x58, 0xc0, 0xd5, 0xfb, 0x6b, 0x63, 0x6c, 0x42, 0x47, 0x1a, 0x4d, 0x17, 0x03, 0x51, 0x6f, 0x03, 0xe9, 0x35, 0xf3, 0x1f, 0x19, 0x54, 0x50, 0xe5, 0x37, 0xb2, 0xa0, 0x7d, 0x54, 0x5b, 0xa4, 0xb6, 0x8a, 0xfb, 0x06, 0x38, 0xc6, 0x5b, 0xb0, 0xff, 0xaa, 0x0c, 0xfd, 0x69, 0xd7, 0x10, 0x48, 0x19, 0x79, 0x66, 0x19, 0xd4, 0x83, 0xa0, 0x24, 0x5b, 0x4f, 0xd9, 0x01, 0x7f, 0x62, 0xa7, 0xd3, 0xa5, 0xfc, 0x3b, 0x72, 0x89, 0xd7, 0x57, 0x35, 0xf2, 0x87, 0xca, 0x0a, 0x95, 0x1a, 0xd5, 0x83, 0x44, 0xb2, 0xab, 0x7d, 0x7d, 0xf8, 0xdb, 0xd7, 0x92, 0x2a, 0x5a, 0xbb, 0x8d, 0x7c, 0x2e, 0x79, 0x14, 0x7e, 0x6d, 0x36, 0xee, 0x31, 0xf9, 0x30, 0x47, 0x3b, 0x07, 0x27, 0xdc, 0xfd, 0x58, 0xd6, 0x44, 0xd7, 0xd7, 0x0a, 0x0e, 0xd3, 0x1c, 0xa6, 0xa1, 0x3e, 0xd9, 0xdb, 0xd2, 0x24, 0x49, 0x2e, 0xfd, 0xa1, 0x9e, 0x4f, 0x8e, 0xed, 0x46, 0x18, 0x0f, 0xe7, 0x50, 0xf0, 0x7b, 0xbe, 0x8e, 0x99, 0x85, 0x4d, 0x13, 0xf5, 0x8b, 0xa9, 0x68, 0xce, 0x38, 0x59, 0xd6, 0x11, 0x89, 0xcd, 0x2b, 0x66, 0x7f, 0x3b, 0x2d, 0x06, 0x65, 0xb5, 0x74, 0xc4, 0xba, 0xc1, 0x9d, 0x9e, 0x37, 0xe5, 0xb7, 0xa8, 0x0e, 0xb3, 0x34, 0xe3, 0x68, 0x10, 0x53, 0x0a, 0xa5, 0xd1, 0x76, 0x63, 0x93, 0xf8, 0x11, 0x5a, 0x52, 0x09, 0x0c, 0x91, 0x82, 0x34, 0x28, 0xc8, 0x97, 0xa5, 0xf3, 0x5e, 0x12, 0xa8, 0xaf, 0x2c, 0xd4, 0xfb, 0x13, 0x90, 0x7c, 0xa6, 0x60, 0x3a, 0x4f, 0x76, 0xf5, 0xc2, 0xe0, 0x23, 0x74, 0xa8, 0xdc, 0x3a, 0x47, 0xc1, 0xbe, 0x6f, 0x1d, 0x1c, 0x8e, 0xbc, 0x59, 0xb3, 0x6d, 0x1c, 0xfa, 0x0a, 0xb2, 0x3e, 0x9b, 0x0a, 0xe9, 0xb0, 0xe6, 0x37, 0xee, 0xed, 0xb9, 0xc6, 0x6b, 0xea, 0x62, 0xdc, 0x63, 0x0c, 0xde, 0xfa, 0x71, 0x82, 0x39, 0x61, 0x7e, 0x31, 0x18, 0xe5, 0xb6, 0xde, 0xb7, 0xc2, 0x94, 0x47, 0x52, 0x82, 0xe8, 0xab, 0xe2, 0x4f, 0xd5, 0xa5, 0x4b, 0x78, 0x6f, 0xff, 0x90, 0x28, 0xc5, 0xa0, 0x33, 0x38, 0x4e, 0x4b, 0xc8, 0x01, 0x4d, 0xec, 0x8d, 0xa1, 0x00, 0xa9, 0x4b, 0x17, 0x8e, 0xf8, 0x8e, 0xc3, 0x57, 0xb6, 0x6d, 0x2b, 0x90, 0x98, 0xab, 0x64, 0x79, 0x16, 0x96, 0xb1, 0xa6, 0x6b, };
15455 static const u8 ed25519_672_test_vectors_expected_sig[] = {
15456 	0x8c, 0x9b, 0x77, 0xaa, 0x0f, 0x1c, 0xf5, 0x2e, 0x8f, 0x7a, 0x91, 0x8b, 0x21, 0xb4, 0x68, 0xe6, 0x23, 0x35, 0x91, 0x1b, 0xc5, 0x93, 0x06, 0xb3, 0x0c, 0xe7, 0x7b, 0xf6, 0x92, 0xc1, 0x10, 0x59, 0xb0, 0xee, 0x9c, 0x5d, 0xaa, 0xf6, 0x83, 0x9b, 0xb8, 0x13, 0x73, 0xc6, 0x1d, 0x28, 0xd0, 0x72, 0x70, 0x2b, 0x59, 0x5e, 0x4d, 0xce, 0x28, 0xcb, 0x99, 0x38, 0x22, 0xb2, 0x48, 0x13, 0x04, 0x0b, };
15457 static const ec_test_case ed25519_672_test_case = {
15458 	.name = "EDDSA25519-SHA512/wei25519 672",
15459 	.ec_str_p = &wei25519_str_params,
15460 	.priv_key = ed25519_672_test_vectors_priv_key,
15461 	.priv_key_len = sizeof(ed25519_672_test_vectors_priv_key),
15462 	.nn_random = NULL,
15463 	.hash_type = SHA512,
15464 	.msg = (const char *)ed25519_672_test_vectors_message,
15465 	.msglen = sizeof(ed25519_672_test_vectors_message),
15466 	.sig_type = EDDSA25519,
15467 	.exp_sig = ed25519_672_test_vectors_expected_sig,
15468 	.exp_siglen = sizeof(ed25519_672_test_vectors_expected_sig),
15469 	.adata = NULL,
15470 	.adata_len = 0
15471 };
15472 
15473 /************************************************/
15474 static const u8 ed25519_673_test_vectors_priv_key[] = {
15475 	0x8a, 0x55, 0xe7, 0x7b, 0xb0, 0xc8, 0x74, 0x0b, 0x8c, 0x2e, 0x8d, 0xdf, 0xdf, 0xdb, 0x40, 0xf2, 0x7e, 0x45, 0xfe, 0x81, 0xfe, 0x45, 0x71, 0x11, 0xbf, 0x1c, 0x87, 0x30, 0xea, 0xb6, 0x16, 0xb4, };
15476 static const u8 ed25519_673_test_vectors_message[] = {
15477 	0x20, 0xfb, 0x41, 0x4e, 0x26, 0x4a, 0x95, 0x47, 0x84, 0xf1, 0x12, 0xba, 0xce, 0x7e, 0x04, 0x74, 0xb3, 0x9c, 0xb3, 0xc9, 0xe5, 0x3d, 0xee, 0x0a, 0x21, 0xf4, 0xcf, 0x6d, 0x4a, 0x99, 0xb9, 0x34, 0x7d, 0xdf, 0xfb, 0xe2, 0x81, 0xa6, 0xc2, 0x30, 0xa7, 0x5d, 0x63, 0xa7, 0x2f, 0xd0, 0x5f, 0x6d, 0xb5, 0x3e, 0xa7, 0x01, 0x4e, 0xf7, 0x70, 0x9d, 0x18, 0xff, 0x97, 0x0f, 0x48, 0x5f, 0xe8, 0x3b, 0xa1, 0xd3, 0x71, 0x47, 0x33, 0x8a, 0xde, 0xd6, 0xda, 0x4c, 0xfd, 0xac, 0xc1, 0xe6, 0x9d, 0x2f, 0x3e, 0x0e, 0xf3, 0x62, 0xf4, 0x7b, 0x5b, 0xcf, 0xb7, 0x8a, 0x1e, 0x17, 0x9e, 0xb5, 0xc5, 0xb1, 0x06, 0xc8, 0xd8, 0x2a, 0x0a, 0x0b, 0x29, 0x0d, 0xf0, 0x75, 0xab, 0x27, 0x43, 0x69, 0x29, 0xcd, 0xe6, 0x56, 0xf0, 0x23, 0x09, 0xf9, 0x57, 0x50, 0xeb, 0x67, 0x65, 0x83, 0x26, 0x2e, 0x5f, 0x2f, 0x69, 0xf0, 0xff, 0x72, 0xa8, 0xe0, 0x57, 0x26, 0x63, 0x82, 0x26, 0x92, 0x05, 0x31, 0x87, 0x40, 0xbf, 0xe0, 0x6b, 0xf5, 0xc2, 0xcb, 0x45, 0x33, 0x90, 0x8e, 0xf9, 0xf9, 0xf2, 0x86, 0x9a, 0x75, 0xb9, 0x53, 0x35, 0x79, 0x82, 0x0e, 0x3b, 0xc0, 0xca, 0xff, 0xd6, 0x46, 0x17, 0x1c, 0x82, 0x86, 0xc3, 0xa4, 0xab, 0xa1, 0xff, 0x09, 0x15, 0xd9, 0x36, 0x11, 0x20, 0x5e, 0x23, 0x0f, 0x39, 0xff, 0x4c, 0x4c, 0xaf, 0x3f, 0x33, 0x3e, 0x75, 0x3f, 0xce, 0x2b, 0x71, 0x21, 0x3e, 0x53, 0xd6, 0x08, 0x41, 0x5e, 0xe1, 0x7f, 0xd4, 0x82, 0x12, 0xee, 0xdd, 0x88, 0x40, 0xf3, 0x37, 0x10, 0x1e, 0xf0, 0xd0, 0xb6, 0xf7, 0xbe, 0x4b, 0xff, 0xc0, 0x6e, 0xee, 0xfe, 0x80, 0x66, 0xdd, 0x27, 0xa0, 0x54, 0x1a, 0x46, 0x88, 0x31, 0xac, 0xdd, 0xc4, 0x90, 0x2e, 0x2f, 0xef, 0xef, 0xbe, 0xd1, 0x9c, 0x30, 0x8e, 0x56, 0x21, 0xe0, 0xbf, 0x46, 0xbc, 0xd5, 0x38, 0xaa, 0x13, 0xfa, 0xf0, 0x4d, 0x38, 0x07, 0x59, 0xc0, 0xe1, 0x07, 0xe9, 0x12, 0x00, 0x18, 0x39, 0xdf, 0xd0, 0xb6, 0x35, 0x44, 0x0e, 0x96, 0x38, 0xf5, 0x37, 0x7c, 0xa8, 0x45, 0x0f, 0x35, 0x0c, 0x01, 0x12, 0x9e, 0xe3, 0x37, 0x64, 0x41, 0x5c, 0x53, 0xcb, 0x2f, 0xfb, 0xf9, 0x68, 0xdf, 0x78, 0xb7, 0x42, 0xfd, 0x06, 0x65, 0xe7, 0x8a, 0x34, 0xab, 0xf4, 0xde, 0xcd, 0x1f, 0xd3, 0x86, 0x28, 0x9a, 0x13, 0x64, 0xe6, 0x45, 0x55, 0xee, 0xc5, 0x8b, 0x0a, 0xf9, 0xa4, 0xcd, 0x6b, 0x36, 0xd1, 0xd5, 0xc6, 0x11, 0xa2, 0x84, 0x6d, 0xfb, 0x55, 0x89, 0x34, 0x4b, 0xbb, 0xb0, 0x25, 0x60, 0x24, 0x1b, 0x74, 0xb9, 0x93, 0xa2, 0x5b, 0xef, 0x50, 0xfb, 0x1e, 0x73, 0x19, 0x08, 0x6e, 0x6a, 0x23, 0x98, 0x63, 0x00, 0x83, 0x4e, 0xd2, 0xdb, 0xa9, 0x8a, 0x16, 0x87, 0x21, 0xc2, 0xf7, 0x84, 0xdf, 0xb8, 0xd3, 0x80, 0x0d, 0x06, 0xa0, 0x54, 0xae, 0xf1, 0x4d, 0x17, 0x72, 0xb6, 0xc5, 0x74, 0xaf, 0x25, 0x63, 0xd1, 0x93, 0xef, 0x2e, 0x51, 0xbd, 0xc6, 0x2d, 0x2a, 0xbc, 0xe2, 0xee, 0xbe, 0xad, 0xa7, 0x92, 0x03, 0x49, 0x8e, 0x66, 0x86, 0xc2, 0x87, 0xf3, 0x7b, 0xd8, 0x8a, 0xeb, 0x16, 0x6f, 0x7d, 0xff, 0xc3, 0xe6, 0xad, 0x02, 0x94, 0x11, 0x7e, 0xf6, 0xee, 0x9d, 0xa8, 0x47, 0x9e, 0xd8, 0xa1, 0x6f, 0xe9, 0xbe, 0x24, 0x6d, 0x26, 0x68, 0x04, 0xf2, 0x96, 0x58, 0xdb, 0x75, 0xe7, 0xa0, 0x87, 0x3b, 0xe7, 0x1d, 0xc7, 0xd4, 0x07, 0xe3, 0x9f, 0xab, 0xd6, 0x6f, 0x98, 0x8b, 0x45, 0x74, 0x77, 0x42, 0x7f, 0xad, 0x81, 0x30, 0xf0, 0x9a, 0xb6, 0x65, 0xf1, 0x59, 0x7c, 0x90, 0x46, 0xe7, 0x37, 0x3a, 0xf9, 0xa8, 0x35, 0x2a, 0x86, 0x83, 0x0c, 0xb9, 0x2a, 0x80, 0x44, 0x88, 0x70, 0x0f, 0xe6, 0x89, 0x19, 0x24, 0xfe, 0x2a, 0x72, 0x01, 0x73, 0x3d, 0x95, 0xe5, 0x91, 0xee, 0x0a, 0x1f, 0xef, 0x1c, 0x26, 0x36, 0x07, 0x8d, 0x37, 0x0e, 0x7a, 0xd3, 0xb6, 0xa9, 0x44, 0xfe, 0xd2, 0xcf, 0x2b, 0x30, 0xab, 0xa2, 0xd5, 0x6f, 0x34, 0x95, 0xb2, 0x84, 0x9c, 0x03, 0xbb, 0x61, 0x4f, 0x48, 0xbc, 0x4e, 0x50, 0x7c, 0x39, 0x5a, 0x6c, 0x35, 0xd3, 0xee, 0xd4, 0xc7, 0xbe, 0x8e, 0x68, 0x0f, 0x2d, 0x45, 0xa3, 0x10, 0xb1, 0x87, 0xeb, 0x88, 0xcf, 0x0e, 0x8e, 0xd4, 0xde, 0x7d, 0x37, 0x24, 0x6a, 0x50, 0xa6, 0x36, 0x7b, 0x97, 0xee, 0x37, 0x84, 0x32, 0x2c, 0x0b, 0x71, 0x13, 0x1a, 0x28, 0x31, 0x98, 0xda, 0x48, 0x04, 0xde, 0x75, 0x1d, 0xcf, 0x70, 0xc4, 0xba, 0xd0, 0x0d, 0xd9, 0x8d, 0x87, 0x3a, 0x69, 0xdd, 0x1a, 0x09, 0xcf, 0x69, 0xdd, 0xfa, 0xd7, 0xae, 0x60, 0x35, 0x00, 0xb6, 0xa4, 0x62, 0x25, 0x80, 0x98, 0xd8, 0xb6, 0x6b, 0x85, 0x29, 0x35, 0x94, 0xe2, 0x08, 0x82, 0x9b, 0x52, 0x28, 0xfa, 0xe2, 0xfa, 0xfc, 0x39, };
15478 static const u8 ed25519_673_test_vectors_expected_sig[] = {
15479 	0x8a, 0xae, 0xba, 0x53, 0x5c, 0x51, 0x1c, 0x31, 0xd3, 0xf8, 0xe9, 0x5c, 0xb0, 0x77, 0xa9, 0xa7, 0xec, 0x7d, 0x08, 0x44, 0x1e, 0x53, 0x42, 0xa6, 0xab, 0xe0, 0xbf, 0x2a, 0x5d, 0x7f, 0xc9, 0x30, 0xb4, 0x3d, 0xac, 0x3d, 0x1e, 0x8e, 0xf2, 0xcb, 0x03, 0x45, 0x52, 0xeb, 0x4d, 0x08, 0x39, 0xbc, 0x8b, 0xf2, 0x94, 0x55, 0x1d, 0xd2, 0xd8, 0x0c, 0x53, 0xfd, 0x62, 0x79, 0x35, 0x1a, 0xc2, 0x0c, };
15480 static const ec_test_case ed25519_673_test_case = {
15481 	.name = "EDDSA25519-SHA512/wei25519 673",
15482 	.ec_str_p = &wei25519_str_params,
15483 	.priv_key = ed25519_673_test_vectors_priv_key,
15484 	.priv_key_len = sizeof(ed25519_673_test_vectors_priv_key),
15485 	.nn_random = NULL,
15486 	.hash_type = SHA512,
15487 	.msg = (const char *)ed25519_673_test_vectors_message,
15488 	.msglen = sizeof(ed25519_673_test_vectors_message),
15489 	.sig_type = EDDSA25519,
15490 	.exp_sig = ed25519_673_test_vectors_expected_sig,
15491 	.exp_siglen = sizeof(ed25519_673_test_vectors_expected_sig),
15492 	.adata = NULL,
15493 	.adata_len = 0
15494 };
15495 
15496 /************************************************/
15497 static const u8 ed25519_674_test_vectors_priv_key[] = {
15498 	0x16, 0x3b, 0x0c, 0xb6, 0xa1, 0x2e, 0x8f, 0x07, 0xb0, 0xc2, 0x9d, 0x6a, 0x63, 0xf6, 0xa6, 0x52, 0xce, 0x49, 0x72, 0x70, 0xb5, 0xe4, 0x6f, 0xcf, 0x83, 0x3c, 0x99, 0xbd, 0x84, 0x3f, 0x8c, 0x64, };
15499 static const u8 ed25519_674_test_vectors_message[] = {
15500 	0x56, 0xa1, 0x60, 0x3f, 0x72, 0x5b, 0xe0, 0x76, 0x13, 0x05, 0x8c, 0xdb, 0x3a, 0xcd, 0xc5, 0x23, 0x54, 0xe3, 0xbb, 0x1f, 0xf2, 0xbe, 0xd1, 0x3f, 0x89, 0x51, 0x75, 0xb1, 0x5c, 0x8c, 0x5a, 0x90, 0xff, 0xbe, 0x46, 0xb1, 0x1a, 0x06, 0xcf, 0xe3, 0x62, 0xda, 0xdf, 0x73, 0x23, 0xc9, 0x40, 0x41, 0x72, 0x55, 0xaa, 0x7a, 0xa5, 0x43, 0x12, 0x10, 0x3e, 0x71, 0x46, 0x3d, 0xaa, 0x0b, 0x5c, 0xda, 0xeb, 0xd0, 0xbe, 0x72, 0x3c, 0x73, 0x22, 0x73, 0xe3, 0xc3, 0xf5, 0xbf, 0x7a, 0xa3, 0x51, 0x9d, 0x69, 0xdf, 0x6f, 0x47, 0x70, 0xda, 0xa1, 0xdf, 0x82, 0x80, 0xbb, 0x3c, 0xd2, 0xc7, 0x14, 0xac, 0x03, 0x02, 0x00, 0x54, 0x65, 0x79, 0xf5, 0x6c, 0x60, 0xb9, 0x1a, 0xe1, 0x1f, 0x4c, 0xf8, 0x74, 0xa3, 0x5f, 0xc5, 0x9b, 0x35, 0x4b, 0xed, 0x80, 0xf5, 0x6e, 0x11, 0xa6, 0xcd, 0x62, 0xa8, 0x8c, 0xe6, 0xb4, 0xf6, 0xbf, 0x39, 0xd6, 0x4c, 0xe3, 0xd8, 0x04, 0x09, 0x82, 0x5f, 0x90, 0x16, 0x2c, 0x3d, 0x96, 0xd1, 0x0e, 0x47, 0x86, 0x07, 0x36, 0x5f, 0x7a, 0x24, 0x1e, 0x71, 0xaf, 0x98, 0x00, 0x42, 0xfe, 0xc2, 0xd6, 0x88, 0x91, 0xe0, 0xc8, 0xa3, 0x7c, 0x58, 0xec, 0x4e, 0x60, 0x0f, 0xd5, 0x81, 0xe7, 0x90, 0xb0, 0xaa, 0xe8, 0xe0, 0x9f, 0x35, 0xd4, 0xcc, 0x18, 0x76, 0xdf, 0x43, 0x4b, 0x80, 0xee, 0xe0, 0x53, 0x69, 0xf8, 0x48, 0xfc, 0x49, 0x30, 0x57, 0x7d, 0x16, 0x84, 0x27, 0x58, 0x88, 0xf3, 0x25, 0x9c, 0xb4, 0x73, 0x76, 0xc5, 0x16, 0x9c, 0x99, 0x37, 0xf8, 0x55, 0xa9, 0x6a, 0x9e, 0x74, 0x8a, 0xd0, 0xa6, 0x9a, 0xe4, 0xab, 0x2f, 0x2f, 0x17, 0x44, 0xa3, 0x92, 0xf9, 0xac, 0xc6, 0x20, 0x99, 0x75, 0xb7, 0x84, 0x98, 0x4c, 0xb1, 0x2f, 0x98, 0x29, 0x2c, 0x36, 0xa5, 0x32, 0x21, 0x99, 0x4a, 0xbc, 0x56, 0xf9, 0xa6, 0x6d, 0xae, 0x45, 0x60, 0xb7, 0x93, 0x56, 0xff, 0x47, 0xe1, 0x28, 0xc0, 0x79, 0x6a, 0x7f, 0xb0, 0xe0, 0xbb, 0xc9, 0x60, 0x0a, 0xf4, 0x8e, 0x49, 0xea, 0xa9, 0x42, 0x7c, 0xf6, 0xeb, 0x66, 0x20, 0xb1, 0x0c, 0xd2, 0xc0, 0x85, 0xb0, 0xb3, 0x42, 0x00, 0x4d, 0x5b, 0x0d, 0x3e, 0xdc, 0x11, 0xd2, 0x92, 0x42, 0xa4, 0x63, 0x87, 0x80, 0x76, 0x2c, 0x9d, 0xc6, 0x06, 0x9b, 0x66, 0xbd, 0x84, 0x97, 0x3b, 0x50, 0x11, 0x96, 0x1c, 0xe5, 0x6d, 0xb5, 0x8b, 0xda, 0xf4, 0x8e, 0x6b, 0xe1, 0x2a, 0xb9, 0xad, 0x24, 0x41, 0x62, 0x97, 0x00, 0x4d, 0x02, 0x91, 0x4b, 0x95, 0x9f, 0x54, 0xe0, 0x92, 0xf8, 0xcd, 0x43, 0x65, 0xfa, 0x6a, 0xb7, 0x8d, 0xdb, 0xff, 0x4c, 0xe8, 0xda, 0xd4, 0xe2, 0xf5, 0x3a, 0x05, 0xc0, 0xcc, 0x49, 0x9b, 0xfb, 0x47, 0x81, 0x4a, 0x27, 0x13, 0x55, 0x1d, 0xcd, 0x19, 0xd4, 0x47, 0xf6, 0x27, 0x57, 0x6e, 0xa4, 0xea, 0x4b, 0xbd, 0xa8, 0xba, 0xe1, 0x8a, 0x64, 0x65, 0xce, 0xd7, 0x47, 0xea, 0x17, 0x18, 0x0b, 0x00, 0x9f, 0x01, 0x21, 0x21, 0x60, 0x48, 0x2b, 0x04, 0x33, 0xaa, 0xc6, 0x8e, 0x67, 0x64, 0x4d, 0x00, 0xf4, 0x1f, 0xdf, 0x99, 0x90, 0xb9, 0xe1, 0x11, 0x17, 0x63, 0x4d, 0xeb, 0x13, 0x9b, 0x1a, 0x40, 0xad, 0x3f, 0xce, 0x42, 0x99, 0xa1, 0x7f, 0xe1, 0xdd, 0x22, 0x53, 0x01, 0xc7, 0xf8, 0xd8, 0x01, 0x0a, 0x79, 0x6d, 0xc7, 0x9c, 0x13, 0x30, 0x7d, 0x3f, 0xf9, 0x92, 0xa8, 0x8b, 0xe6, 0x64, 0xd4, 0xc8, 0x86, 0xd6, 0x8c, 0xa9, 0xe4, 0x47, 0x0c, 0xfb, 0xe6, 0x3e, 0xbf, 0xfc, 0x42, 0x40, 0x10, 0xe3, 0x72, 0xb6, 0x92, 0x2a, 0xa9, 0x5c, 0x80, 0x1d, 0x1e, 0x94, 0x06, 0xda, 0x4b, 0xc1, 0x88, 0xca, 0x82, 0x06, 0x64, 0x05, 0xbc, 0xdb, 0x3e, 0xaf, 0xc9, 0x37, 0x62, 0x9b, 0x32, 0x63, 0xdc, 0x7d, 0x50, 0xee, 0x52, 0x78, 0xcc, 0xec, 0x6f, 0x11, 0xd5, 0x51, 0x7f, 0x56, 0xbc, 0x26, 0x9c, 0x87, 0x36, 0x91, 0xe7, 0xeb, 0x53, 0xfa, 0xef, 0xf0, 0x75, 0x64, 0xab, 0x46, 0xb4, 0x03, 0xf1, 0x5d, 0x9e, 0x0e, 0x69, 0x24, 0x86, 0xee, 0x09, 0x8e, 0x7b, 0x51, 0xb4, 0x28, 0x13, 0x46, 0x9b, 0x82, 0x35, 0x04, 0x22, 0x33, 0xca, 0x3f, 0x9c, 0x4f, 0x8f, 0xf2, 0x4a, 0x57, 0x1f, 0x47, 0xe0, 0xad, 0xf9, 0x14, 0x4a, 0xea, 0x48, 0x8a, 0x2d, 0x2d, 0xd0, 0x01, 0xe3, 0x1f, 0xc9, 0x61, 0xe0, 0x5c, 0x3e, 0x85, 0xf0, 0xd9, 0x81, 0x40, 0x7c, 0x87, 0x31, 0x58, 0xbb, 0x0d, 0x35, 0xba, 0xfe, 0x4b, 0x60, 0x42, 0x2e, 0x67, 0x55, 0x1e, 0x97, 0x01, 0x65, 0xce, 0x3f, 0xc5, 0x99, 0xd0, 0xfc, 0xc9, 0x2b, 0x16, 0xac, 0x36, 0xa9, 0x2b, 0x2c, 0x1d, 0xc6, 0xb3, 0xf0, 0x33, 0xfe, 0x31, 0x0c, 0xd1, 0x96, 0xda, 0x04, 0xa4, 0xe6, 0x39, 0x03, 0x11, 0x77, 0xcd, 0x27, 0xd7, 0xc2, 0xfb, 0xec, 0x65, 0xa0, 0x0b, };
15501 static const u8 ed25519_674_test_vectors_expected_sig[] = {
15502 	0x17, 0x73, 0x8f, 0x57, 0x26, 0x55, 0x07, 0x80, 0x65, 0x1d, 0x60, 0x19, 0x9f, 0xda, 0x39, 0xd9, 0xc4, 0x76, 0x8d, 0xb5, 0x91, 0x7e, 0x32, 0x39, 0x36, 0x31, 0xc5, 0x4a, 0x41, 0x9d, 0x59, 0xf1, 0x8e, 0xf9, 0x60, 0xdd, 0xd4, 0x39, 0x38, 0x0d, 0xab, 0xc3, 0x14, 0x76, 0x1b, 0xd0, 0xcd, 0xb5, 0x7c, 0xce, 0x48, 0x1e, 0x61, 0x09, 0xfe, 0xd0, 0x95, 0xde, 0xa6, 0xe8, 0x65, 0xaa, 0x67, 0x0b, };
15503 static const ec_test_case ed25519_674_test_case = {
15504 	.name = "EDDSA25519-SHA512/wei25519 674",
15505 	.ec_str_p = &wei25519_str_params,
15506 	.priv_key = ed25519_674_test_vectors_priv_key,
15507 	.priv_key_len = sizeof(ed25519_674_test_vectors_priv_key),
15508 	.nn_random = NULL,
15509 	.hash_type = SHA512,
15510 	.msg = (const char *)ed25519_674_test_vectors_message,
15511 	.msglen = sizeof(ed25519_674_test_vectors_message),
15512 	.sig_type = EDDSA25519,
15513 	.exp_sig = ed25519_674_test_vectors_expected_sig,
15514 	.exp_siglen = sizeof(ed25519_674_test_vectors_expected_sig),
15515 	.adata = NULL,
15516 	.adata_len = 0
15517 };
15518 
15519 /************************************************/
15520 static const u8 ed25519_675_test_vectors_priv_key[] = {
15521 	0x8c, 0x83, 0x93, 0x81, 0xb6, 0xa7, 0xce, 0x26, 0x49, 0xc1, 0xea, 0x46, 0x4a, 0xe3, 0xc2, 0xd3, 0xfd, 0xb1, 0xec, 0x66, 0x6d, 0x7b, 0x4b, 0xe4, 0xe2, 0xa9, 0x41, 0xab, 0x6d, 0x65, 0x57, 0xa7, };
15522 static const u8 ed25519_675_test_vectors_message[] = {
15523 	0xcb, 0xcf, 0x89, 0xc3, 0x54, 0x89, 0x64, 0xc3, 0x8d, 0x70, 0xfd, 0x8f, 0x68, 0xe8, 0xec, 0xe3, 0x6c, 0xc3, 0x97, 0x55, 0xc9, 0x71, 0xd1, 0x4d, 0x7e, 0x05, 0x6f, 0x39, 0xb0, 0x23, 0xef, 0x16, 0x6d, 0x17, 0xf2, 0x43, 0x85, 0x22, 0xf0, 0x10, 0xd6, 0xd8, 0x35, 0xd8, 0x86, 0xe7, 0x1f, 0x47, 0x4c, 0x67, 0x27, 0xa4, 0x22, 0x1f, 0xd0, 0x3a, 0x75, 0x74, 0x57, 0x82, 0x89, 0xed, 0x54, 0x93, 0xac, 0x4c, 0x09, 0x47, 0xe3, 0xf4, 0x28, 0xd8, 0xfe, 0x06, 0x40, 0x06, 0xa2, 0x56, 0xce, 0xf2, 0x18, 0x11, 0xd7, 0x26, 0x78, 0xf5, 0xdf, 0xc6, 0xba, 0x66, 0xac, 0x29, 0xec, 0xd1, 0xb3, 0x2f, 0xf5, 0x55, 0x7c, 0xb0, 0x8c, 0x5f, 0x13, 0x05, 0x59, 0x21, 0x7a, 0x04, 0x13, 0xb7, 0x59, 0xc2, 0x4d, 0x83, 0x38, 0x8a, 0x2b, 0xb9, 0xb2, 0x9b, 0x6b, 0x91, 0xd1, 0xf3, 0x10, 0x1e, 0xd6, 0x25, 0x21, 0x1e, 0x4d, 0x73, 0x80, 0x51, 0x93, 0x47, 0x8c, 0xf9, 0x95, 0x39, 0x6c, 0x10, 0xb1, 0xc5, 0xaf, 0xfa, 0xcb, 0x00, 0x89, 0x9d, 0xa0, 0x4e, 0x3c, 0xce, 0x19, 0x3b, 0x49, 0x4e, 0x2a, 0x93, 0x3c, 0x4e, 0xeb, 0xe0, 0xa3, 0x7b, 0xfb, 0x8f, 0x1b, 0x83, 0x71, 0xbd, 0xe5, 0xfd, 0xa0, 0x9e, 0x80, 0x4e, 0x94, 0x0f, 0x34, 0x48, 0x96, 0xa5, 0x29, 0x46, 0x7a, 0xde, 0xe4, 0x5a, 0x8f, 0xeb, 0xf8, 0x5a, 0xb0, 0x36, 0xca, 0xb8, 0x80, 0x14, 0x3b, 0xe4, 0xf5, 0x9b, 0x77, 0x41, 0xd8, 0xe4, 0x50, 0x27, 0x8b, 0x06, 0x36, 0x55, 0x78, 0xd4, 0x0b, 0x19, 0xdc, 0xec, 0xc6, 0xe1, 0xee, 0x3d, 0xa3, 0x4a, 0xb2, 0x90, 0x13, 0xfa, 0x3a, 0xf7, 0x72, 0x92, 0x72, 0x96, 0x21, 0x10, 0xe3, 0x85, 0xab, 0x9a, 0x02, 0x2f, 0xae, 0x41, 0x46, 0xf8, 0x97, 0x16, 0xf7, 0xba, 0xb9, 0xd3, 0xdc, 0x68, 0x2f, 0x4f, 0xac, 0x77, 0x36, 0xd3, 0xe0, 0x89, 0x73, 0xc6, 0x85, 0xbb, 0xb2, 0x75, 0xbb, 0xf8, 0xf2, 0x17, 0x41, 0x9e, 0x5c, 0xae, 0x02, 0x19, 0xeb, 0xa5, 0x16, 0x6a, 0x5d, 0xe1, 0xb1, 0x1e, 0x3f, 0x9a, 0x90, 0x8b, 0x8a, 0xc7, 0xe6, 0x5b, 0xcd, 0x62, 0x3f, 0x8c, 0x18, 0xbb, 0x02, 0x4f, 0x60, 0x5d, 0xcb, 0xac, 0xda, 0x79, 0x0d, 0x83, 0x62, 0x95, 0x74, 0x44, 0xa9, 0x5c, 0x13, 0x0a, 0x37, 0xee, 0x9d, 0x56, 0x3d, 0x0c, 0xbb, 0x4c, 0xb2, 0xb0, 0xff, 0x71, 0x59, 0x1d, 0x93, 0x90, 0xb6, 0xc8, 0xfc, 0x28, 0x75, 0x3a, 0x0e, 0x40, 0x2d, 0x64, 0x87, 0xcf, 0xac, 0x60, 0x71, 0x35, 0x92, 0x7d, 0x89, 0x26, 0x75, 0x12, 0xb3, 0x4f, 0x87, 0x70, 0x57, 0xd9, 0x27, 0x1b, 0xcc, 0xc0, 0x24, 0xdf, 0xed, 0xcc, 0xc6, 0xc3, 0x2e, 0xdf, 0x75, 0xc8, 0xb7, 0x55, 0x1c, 0xdf, 0x80, 0x15, 0x4e, 0xe8, 0xe0, 0x8a, 0x0c, 0xc4, 0x30, 0x44, 0xe1, 0x03, 0x6b, 0xae, 0x01, 0x7e, 0xb4, 0x8b, 0x65, 0x02, 0xc7, 0xa9, 0xd6, 0x0c, 0x8b, 0x37, 0x0c, 0xf3, 0x79, 0x9c, 0x46, 0x4f, 0x96, 0x4a, 0x69, 0xee, 0x65, 0x95, 0x01, 0x22, 0x3e, 0x78, 0x9a, 0x64, 0x97, 0xb6, 0x34, 0x96, 0xdf, 0x1a, 0xda, 0x2e, 0x80, 0x8d, 0x24, 0x34, 0xfc, 0x8b, 0xb9, 0x79, 0x4e, 0x5e, 0x2a, 0x20, 0xbb, 0xf4, 0xd6, 0x92, 0x5c, 0xb3, 0xc5, 0xbb, 0x14, 0x84, 0x2f, 0x19, 0x20, 0x09, 0x05, 0xba, 0x93, 0x54, 0xe0, 0x0d, 0xc3, 0x3c, 0xff, 0x5b, 0x42, 0xd4, 0xe9, 0xd9, 0x66, 0x8b, 0x34, 0xe6, 0x61, 0xd4, 0x4b, 0xef, 0x76, 0xfe, 0xfe, 0x2e, 0xd5, 0x1f, 0x94, 0x42, 0x3a, 0x93, 0x3a, 0xc9, 0x4f, 0x15, 0x23, 0xbf, 0x37, 0x82, 0x3a, 0x23, 0x8d, 0x61, 0x6c, 0x6b, 0x17, 0x97, 0x34, 0x41, 0xe3, 0x5f, 0x94, 0x05, 0xa0, 0x4d, 0x99, 0xea, 0xa8, 0xf5, 0x04, 0x53, 0x4c, 0x8b, 0x5f, 0xa5, 0xe8, 0xe3, 0x35, 0xc7, 0x43, 0xbc, 0xf2, 0x1f, 0x5d, 0x49, 0x2b, 0x71, 0x12, 0xe0, 0x0f, 0xd8, 0x64, 0x2c, 0xb1, 0x2b, 0xfe, 0xc8, 0x49, 0xdf, 0x62, 0x12, 0x0d, 0xbb, 0x06, 0xbf, 0xc2, 0x94, 0x6a, 0x56, 0x01, 0xe2, 0x5b, 0xe7, 0x50, 0x11, 0xc6, 0xf0, 0x0c, 0x65, 0xd3, 0x5f, 0x44, 0xa4, 0x6a, 0xf9, 0xe4, 0xf7, 0x80, 0x9e, 0x57, 0x89, 0xa3, 0xa6, 0x1b, 0xa0, 0xa3, 0xb2, 0x13, 0x89, 0x04, 0x97, 0x29, 0x6c, 0x81, 0xe4, 0x2e, 0x88, 0xf0, 0xec, 0x0f, 0x5d, 0xef, 0xc1, 0xf5, 0xd3, 0x9f, 0xf2, 0xa4, 0x8b, 0x7e, 0x30, 0x26, 0xc9, 0xe5, 0x47, 0x20, 0x2e, 0xdc, 0x7e, 0xb7, 0x38, 0xc3, 0x4a, 0xd3, 0xa1, 0x5d, 0x37, 0x3e, 0xf8, 0x2a, 0x4c, 0x1d, 0x18, 0x1f, 0x28, 0x5a, 0x98, 0xbd, 0x33, 0x14, 0xc2, 0xc1, 0x94, 0x7c, 0x9e, 0x2c, 0x60, 0xac, 0xa5, 0x17, 0x50, 0xee, 0x7f, 0x94, 0x3c, 0xaf, 0x0c, 0x4e, 0x1e, 0x5c, 0x7d, 0xf7, 0x29, 0x1e, 0x97, 0x3b, 0x1f, 0x93, 0x6b, 0x73, 0x70, 0x76, 0x19, };
15524 static const u8 ed25519_675_test_vectors_expected_sig[] = {
15525 	0x5d, 0x21, 0x10, 0xd1, 0xd2, 0xf3, 0xed, 0xd6, 0x83, 0xbd, 0xfd, 0xbe, 0xa3, 0xff, 0xa7, 0xcf, 0x55, 0x28, 0xa4, 0x0b, 0x8b, 0x3d, 0x8d, 0x8c, 0x9b, 0xfd, 0x22, 0xae, 0xac, 0x28, 0xba, 0xd4, 0x71, 0x66, 0x6e, 0x06, 0x2f, 0x7d, 0x38, 0xce, 0xda, 0x8b, 0xb3, 0x73, 0x97, 0xa1, 0xc5, 0xc3, 0xf7, 0x33, 0xb5, 0x37, 0x96, 0x70, 0x45, 0x70, 0x64, 0x78, 0x43, 0x7d, 0x4d, 0x18, 0x7a, 0x0a, };
15526 static const ec_test_case ed25519_675_test_case = {
15527 	.name = "EDDSA25519-SHA512/wei25519 675",
15528 	.ec_str_p = &wei25519_str_params,
15529 	.priv_key = ed25519_675_test_vectors_priv_key,
15530 	.priv_key_len = sizeof(ed25519_675_test_vectors_priv_key),
15531 	.nn_random = NULL,
15532 	.hash_type = SHA512,
15533 	.msg = (const char *)ed25519_675_test_vectors_message,
15534 	.msglen = sizeof(ed25519_675_test_vectors_message),
15535 	.sig_type = EDDSA25519,
15536 	.exp_sig = ed25519_675_test_vectors_expected_sig,
15537 	.exp_siglen = sizeof(ed25519_675_test_vectors_expected_sig),
15538 	.adata = NULL,
15539 	.adata_len = 0
15540 };
15541 
15542 /************************************************/
15543 static const u8 ed25519_676_test_vectors_priv_key[] = {
15544 	0xaa, 0xbb, 0xb2, 0xef, 0xed, 0xb5, 0x99, 0x42, 0x4a, 0x5f, 0x3e, 0x08, 0xf9, 0x0f, 0xa8, 0x82, 0x6c, 0x5c, 0x92, 0x17, 0x0b, 0xe5, 0x01, 0xa1, 0x18, 0x1f, 0xe8, 0xe8, 0xdf, 0x97, 0x4e, 0x0e, };
15545 static const u8 ed25519_676_test_vectors_message[] = {
15546 	0xfc, 0xc1, 0x5c, 0xc5, 0x79, 0x70, 0x56, 0x9e, 0x9c, 0xcf, 0xa5, 0xa7, 0x78, 0xfc, 0x7a, 0xed, 0x71, 0x97, 0x8a, 0x3f, 0x56, 0x24, 0x57, 0x7b, 0x6f, 0x57, 0xfa, 0x3f, 0x16, 0x7e, 0xa2, 0x23, 0xef, 0x31, 0x76, 0x4c, 0x48, 0x8d, 0x05, 0x9d, 0x06, 0x53, 0x1d, 0x01, 0x6b, 0xcb, 0x17, 0xd5, 0x44, 0xd4, 0x69, 0x77, 0xaa, 0x24, 0x1f, 0x8e, 0x07, 0xaf, 0x47, 0x87, 0xa0, 0x81, 0x0f, 0x98, 0xd7, 0x66, 0x46, 0x0c, 0x08, 0x41, 0xad, 0x81, 0xb8, 0x8f, 0x4d, 0x5d, 0x81, 0x64, 0x48, 0x5a, 0x12, 0x58, 0xa9, 0x46, 0x22, 0xc5, 0x49, 0x24, 0x28, 0xd6, 0xd5, 0x75, 0x94, 0x37, 0x15, 0x76, 0x6c, 0x2b, 0x0a, 0x86, 0x5b, 0xed, 0xba, 0x16, 0x7d, 0x5d, 0x34, 0x0e, 0xdb, 0x57, 0x9c, 0x47, 0xaa, 0x32, 0x45, 0x9b, 0x8f, 0xc9, 0x8a, 0x79, 0xbb, 0x0b, 0xed, 0x1c, 0x96, 0x0b, 0x4c, 0xcb, 0x7f, 0x2d, 0x4b, 0x56, 0x81, 0xa2, 0xa7, 0x0d, 0x50, 0x5b, 0x85, 0xb8, 0x1e, 0x3d, 0x99, 0x67, 0x27, 0x14, 0xe4, 0xea, 0xb4, 0x1f, 0x3a, 0xb0, 0xca, 0x87, 0x4f, 0x41, 0x71, 0x86, 0xfe, 0xb6, 0x9e, 0xd1, 0x3f, 0xb9, 0x11, 0xf4, 0x9d, 0x15, 0x84, 0x75, 0x8b, 0x2d, 0x18, 0xb4, 0x67, 0x3e, 0xdf, 0xae, 0x49, 0x5e, 0x68, 0xda, 0xd5, 0x13, 0xa7, 0xac, 0x0d, 0x47, 0xb2, 0x75, 0x3c, 0xb4, 0xed, 0xa7, 0x8f, 0xb4, 0x31, 0xf0, 0x4d, 0xda, 0x8f, 0xe8, 0x03, 0x0d, 0x7b, 0xb4, 0xe8, 0xdb, 0xcc, 0xb9, 0x69, 0xd7, 0xf5, 0x80, 0xd9, 0xc1, 0xef, 0x93, 0x5d, 0x07, 0x4d, 0x7a, 0x41, 0xd1, 0xf8, 0xb9, 0xdc, 0x45, 0xc9, 0xa2, 0xe4, 0x10, 0x6a, 0x55, 0x29, 0xa9, 0x8b, 0x95, 0x52, 0x9a, 0xb0, 0xed, 0xea, 0x0b, 0x57, 0x22, 0xdd, 0x68, 0x6f, 0x5a, 0x7f, 0x3c, 0xd8, 0xfb, 0x26, 0x24, 0xab, 0x26, 0xc4, 0x2d, 0xf1, 0x1f, 0x51, 0x0a, 0x10, 0x3d, 0x8a, 0x92, 0x98, 0x30, 0xad, 0x85, 0xf5, 0x21, 0x24, 0xe3, 0xd5, 0x82, 0x7b, 0xa6, 0x0b, 0xfb, 0xcd, 0x73, 0x6c, 0xb6, 0xc5, 0x90, 0xee, 0x77, 0x7e, 0xad, 0x7a, 0xa2, 0x22, 0x4d, 0x7a, 0xe4, 0x6d, 0x25, 0x7a, 0x90, 0x40, 0x72, 0x47, 0x96, 0x0c, 0x9c, 0xb0, 0x38, 0x60, 0xae, 0xaa, 0x7f, 0x54, 0xc1, 0xa8, 0xe1, 0x11, 0x60, 0xd1, 0x1b, 0xb4, 0x73, 0x06, 0x5e, 0x19, 0xb7, 0x07, 0x21, 0xc8, 0xf0, 0x72, 0xe1, 0x90, 0x9d, 0x53, 0x9e, 0x9a, 0xc9, 0x41, 0x85, 0x90, 0x4b, 0xbb, 0xfe, 0x54, 0x87, 0x37, 0x54, 0xae, 0x1c, 0xa7, 0xbc, 0xed, 0x6f, 0x40, 0x56, 0x1a, 0xf4, 0xb5, 0x05, 0xf0, 0x3a, 0xc9, 0x72, 0xa6, 0xf0, 0xbf, 0xa7, 0x3b, 0x5f, 0x83, 0x2f, 0xe2, 0x3b, 0x89, 0x8b, 0x2b, 0xbb, 0x05, 0x74, 0xa6, 0x66, 0x2e, 0xe9, 0x3b, 0x3b, 0x36, 0x0d, 0xa1, 0xec, 0x7e, 0x83, 0x8e, 0xb2, 0xc7, 0x7c, 0x7c, 0xb7, 0xfc, 0x16, 0x4f, 0x7c, 0x46, 0x27, 0x01, 0x04, 0x89, 0xc8, 0x58, 0x90, 0x07, 0x52, 0xc9, 0x2d, 0x9d, 0x75, 0xad, 0x54, 0x71, 0x67, 0xe4, 0xbd, 0xd1, 0x1a, 0x07, 0xd2, 0x8b, 0x65, 0x1a, 0xa3, 0x0f, 0x16, 0xa8, 0x50, 0xe0, 0x60, 0xdd, 0x28, 0x82, 0xfb, 0x82, 0x09, 0x19, 0xa3, 0x98, 0xe8, 0x05, 0xeb, 0x63, 0x69, 0x9f, 0x4f, 0xf5, 0x95, 0xf9, 0x91, 0x52, 0x47, 0x31, 0x64, 0x1e, 0xce, 0x25, 0xfb, 0x3f, 0x8e, 0x89, 0xad, 0xa5, 0x01, 0x19, 0x2b, 0x1e, 0xdd, 0xae, 0xcb, 0xac, 0xc8, 0xb8, 0x98, 0x52, 0x8f, 0x2d, 0x5b, 0x33, 0x12, 0x69, 0x4f, 0x5e, 0xc2, 0xdc, 0x91, 0x42, 0xe1, 0x51, 0x3f, 0x77, 0x7a, 0x5c, 0x83, 0x34, 0x09, 0xc1, 0x71, 0x63, 0x3f, 0xf9, 0xfa, 0x26, 0x09, 0xd0, 0x49, 0x7f, 0x5d, 0xf4, 0xfb, 0xf4, 0x8e, 0xf2, 0xb7, 0x7d, 0x55, 0xe2, 0x55, 0x19, 0xd2, 0xee, 0x79, 0xb5, 0xfe, 0x9d, 0x8f, 0xa4, 0x60, 0x00, 0xde, 0xcd, 0xb4, 0xf2, 0x5d, 0xfb, 0x3f, 0x2b, 0xaf, 0xb1, 0x9f, 0xbe, 0x2c, 0xbd, 0xac, 0x00, 0x2a, 0x35, 0x9a, 0x95, 0x4b, 0xc6, 0x9b, 0xdf, 0xe2, 0xfb, 0x36, 0xad, 0xfd, 0x9a, 0x15, 0x09, 0xf3, 0xe3, 0xa4, 0xc6, 0xb1, 0xf3, 0xf3, 0x6e, 0x7c, 0xf8, 0x0d, 0x58, 0x3d, 0x44, 0x0f, 0xf2, 0xa1, 0x44, 0x64, 0x30, 0x98, 0x97, 0x4d, 0x71, 0x49, 0x3e, 0xcb, 0x64, 0x17, 0xc0, 0xb8, 0x06, 0x5b, 0xd2, 0xc2, 0x1c, 0x1e, 0x34, 0xaf, 0x09, 0x24, 0x3f, 0xb4, 0x9e, 0x9d, 0x35, 0x29, 0x7e, 0xb0, 0xa5, 0x2d, 0x56, 0xdd, 0x27, 0x0f, 0xea, 0x6d, 0xc5, 0xc0, 0x80, 0xa0, 0x55, 0x99, 0xf7, 0x85, 0x81, 0xe9, 0x0f, 0xd8, 0xcc, 0x4c, 0xd1, 0x1a, 0x50, 0x5e, 0xdd, 0xe8, 0x4b, 0x89, 0x2d, 0x89, 0x53, 0xbd, 0xbb, 0x23, 0x79, 0xd3, 0x3a, 0xad, 0x64, 0x65, 0x8a, 0xe2, 0x06, 0x07, 0xdd, 0x35, 0xb0, 0xbf, 0x3a, 0x26, 0x37, 0xd2, 0x0c, 0x3f, 0x86, };
15547 static const u8 ed25519_676_test_vectors_expected_sig[] = {
15548 	0xa0, 0xb1, 0x9c, 0xfa, 0x6c, 0x80, 0xde, 0x77, 0xbf, 0xcd, 0x32, 0x10, 0x30, 0xbf, 0x8c, 0x03, 0x89, 0x3e, 0x2b, 0x21, 0xac, 0xe6, 0xc6, 0xba, 0x1f, 0xf7, 0x40, 0x8e, 0x6f, 0xf0, 0x7d, 0x84, 0x7e, 0x6b, 0x2b, 0x68, 0x8d, 0x4f, 0xd5, 0x1a, 0xa9, 0x32, 0x70, 0x1d, 0xb6, 0x40, 0x2e, 0xf2, 0x23, 0x22, 0xe6, 0xe9, 0xfc, 0x7e, 0x32, 0x0a, 0xbb, 0x4d, 0x24, 0xe1, 0xac, 0xc6, 0xcf, 0x06, };
15549 static const ec_test_case ed25519_676_test_case = {
15550 	.name = "EDDSA25519-SHA512/wei25519 676",
15551 	.ec_str_p = &wei25519_str_params,
15552 	.priv_key = ed25519_676_test_vectors_priv_key,
15553 	.priv_key_len = sizeof(ed25519_676_test_vectors_priv_key),
15554 	.nn_random = NULL,
15555 	.hash_type = SHA512,
15556 	.msg = (const char *)ed25519_676_test_vectors_message,
15557 	.msglen = sizeof(ed25519_676_test_vectors_message),
15558 	.sig_type = EDDSA25519,
15559 	.exp_sig = ed25519_676_test_vectors_expected_sig,
15560 	.exp_siglen = sizeof(ed25519_676_test_vectors_expected_sig),
15561 	.adata = NULL,
15562 	.adata_len = 0
15563 };
15564 
15565 /************************************************/
15566 static const u8 ed25519_677_test_vectors_priv_key[] = {
15567 	0xc2, 0xe0, 0x74, 0xfa, 0xa2, 0x34, 0xe9, 0x9a, 0xb2, 0x0a, 0xdb, 0xbe, 0xae, 0x11, 0xb8, 0x10, 0x97, 0x23, 0xb7, 0x08, 0xc5, 0x45, 0x86, 0xdf, 0x65, 0x2b, 0x40, 0x2c, 0x35, 0xcd, 0xd1, 0x27, };
15568 static const u8 ed25519_677_test_vectors_message[] = {
15569 	0x31, 0x29, 0x03, 0x38, 0xe4, 0x6d, 0x1c, 0xc2, 0x5c, 0xe9, 0x9c, 0xba, 0xcc, 0x40, 0x16, 0x03, 0x41, 0xb7, 0x85, 0x82, 0x3c, 0x82, 0x3c, 0x4a, 0xb9, 0xba, 0xee, 0x3b, 0x61, 0x25, 0x79, 0xf1, 0xc0, 0x11, 0x71, 0x67, 0x96, 0xe5, 0x6e, 0x26, 0x93, 0xf6, 0xdd, 0xad, 0x43, 0x92, 0x2a, 0xa7, 0x84, 0x7c, 0xbb, 0x41, 0x48, 0x10, 0x16, 0x51, 0xbb, 0xe6, 0x2d, 0x50, 0xbe, 0x90, 0x82, 0x5e, 0x8e, 0xab, 0x77, 0x7a, 0xa4, 0xb8, 0x02, 0x6d, 0xc5, 0x38, 0x5a, 0x97, 0xd3, 0xdf, 0x76, 0x16, 0x01, 0x91, 0xf9, 0x22, 0xcd, 0xd2, 0xf0, 0x7b, 0xa5, 0xf8, 0x5e, 0x95, 0xf4, 0x5d, 0xb2, 0x29, 0x28, 0xf9, 0x07, 0x34, 0xff, 0x52, 0x0c, 0x44, 0xdc, 0x8f, 0xe3, 0x90, 0x3b, 0x4c, 0x51, 0xcd, 0x23, 0xe0, 0x64, 0xf0, 0x1c, 0x82, 0x9e, 0xc7, 0x4f, 0xbf, 0xfe, 0x25, 0xfd, 0x0d, 0x36, 0x9d, 0x27, 0x65, 0x74, 0x0f, 0x43, 0x85, 0x6b, 0xd7, 0x39, 0x8a, 0x19, 0x11, 0xad, 0x74, 0x98, 0x36, 0x16, 0x0f, 0xd9, 0x8d, 0x04, 0xb2, 0x8e, 0xe8, 0x7e, 0x11, 0x1d, 0x40, 0x71, 0x8b, 0x5a, 0x16, 0x6f, 0x05, 0xc9, 0xa4, 0x71, 0xa4, 0x15, 0x66, 0x55, 0x70, 0x69, 0xf7, 0xa1, 0x4d, 0xe9, 0x88, 0xbb, 0xbf, 0x67, 0x77, 0x52, 0x1f, 0xcb, 0xa6, 0xdd, 0x65, 0xde, 0x4c, 0x06, 0x67, 0x4a, 0x11, 0x85, 0x3a, 0xf8, 0x3a, 0xcc, 0xb7, 0x0f, 0xb3, 0x28, 0xdd, 0x8f, 0xd6, 0x10, 0x5a, 0x7d, 0xf5, 0x26, 0x9c, 0x9f, 0xae, 0xc8, 0xd9, 0x00, 0x14, 0x7e, 0x92, 0x8d, 0x97, 0x0c, 0x36, 0xcd, 0x83, 0x4b, 0xd6, 0x05, 0x4f, 0x70, 0x65, 0x0d, 0xfa, 0xce, 0x94, 0xb7, 0x62, 0x9d, 0x16, 0xe3, 0x70, 0x3d, 0x76, 0x6c, 0xe7, 0x63, 0x8d, 0x0a, 0xd1, 0xe1, 0x7b, 0x77, 0x46, 0x9b, 0x95, 0x8d, 0x2b, 0xa2, 0xa1, 0xe6, 0x31, 0xa1, 0x63, 0x5e, 0xfd, 0xcb, 0x00, 0x6e, 0xbc, 0x6e, 0x5d, 0x8b, 0x9f, 0xaf, 0x7e, 0x5f, 0xb9, 0x89, 0xdc, 0x08, 0x96, 0xc5, 0x61, 0xa2, 0x6f, 0x3c, 0x25, 0xf0, 0x55, 0x71, 0x6b, 0x36, 0x71, 0x38, 0xea, 0x5d, 0xa1, 0xf8, 0x1d, 0xc7, 0x2c, 0xff, 0x7a, 0x55, 0xaf, 0xae, 0xe5, 0x83, 0x9e, 0xf5, 0xaa, 0x82, 0x2b, 0x29, 0x70, 0xaa, 0x18, 0xa8, 0x98, 0x21, 0x63, 0xbf, 0x5e, 0xed, 0x1b, 0x67, 0x7c, 0xca, 0xac, 0x12, 0x24, 0xff, 0x6c, 0x6c, 0xf2, 0x56, 0x37, 0x47, 0x80, 0xae, 0x65, 0x80, 0x3b, 0xf5, 0xc6, 0xe2, 0x3c, 0x80, 0xba, 0xcd, 0x76, 0xec, 0x3e, 0x2d, 0xdd, 0x3a, 0xb7, 0x19, 0x97, 0x50, 0x64, 0x48, 0xe1, 0x9d, 0xb1, 0x98, 0xef, 0xad, 0xc9, 0xf7, 0x57, 0x49, 0x1f, 0x1b, 0x09, 0x72, 0xc8, 0x2d, 0xb2, 0x94, 0x10, 0xe1, 0xe8, 0xbb, 0x67, 0xbb, 0xb2, 0x3d, 0x53, 0x56, 0x3b, 0x88, 0x07, 0xe5, 0xe0, 0xc2, 0xe3, 0x2e, 0xe5, 0x96, 0xb5, 0xb4, 0x40, 0x23, 0x28, 0xf9, 0xe1, 0x79, 0xe9, 0xce, 0x85, 0x6d, 0x3b, 0xd1, 0x99, 0xd5, 0x8d, 0xe6, 0xc5, 0xc2, 0x52, 0xe7, 0xa6, 0x12, 0x4d, 0x81, 0xfc, 0x9e, 0xea, 0xf2, 0x3d, 0x34, 0x7d, 0x2a, 0xb8, 0x89, 0x17, 0xaa, 0x68, 0x44, 0x50, 0xdd, 0x58, 0x30, 0x35, 0x16, 0xc1, 0xa4, 0xd2, 0xbd, 0xcd, 0xde, 0x22, 0x0c, 0x9a, 0xe3, 0x79, 0x0f, 0x29, 0x8d, 0x7d, 0x38, 0x4b, 0x70, 0xc2, 0xfe, 0x25, 0x88, 0x07, 0x84, 0x8f, 0xc3, 0x53, 0x20, 0xb5, 0x78, 0xb3, 0x35, 0x03, 0xb7, 0x5f, 0x38, 0xa1, 0xdf, 0x63, 0x0b, 0xd3, 0x3e, 0x6a, 0x85, 0xa4, 0xdd, 0x4d, 0xf9, 0xf6, 0xe5, 0x5a, 0x6e, 0x68, 0x67, 0xc7, 0x38, 0x01, 0xe5, 0x93, 0xe1, 0xd5, 0x91, 0xdb, 0x89, 0xba, 0x9a, 0x9a, 0xf0, 0xfc, 0x29, 0x2e, 0x06, 0xfb, 0x51, 0x5a, 0xc8, 0xa5, 0xe8, 0xe3, 0x43, 0xa8, 0x21, 0x33, 0x55, 0x75, 0xba, 0x48, 0xfb, 0xaa, 0xe3, 0xfb, 0x12, 0xde, 0xea, 0xae, 0xe6, 0x0f, 0x4b, 0x3d, 0x31, 0x7e, 0xc0, 0xa5, 0x54, 0xdd, 0xd4, 0x25, 0xc8, 0x49, 0x32, 0xc2, 0x7a, 0x7a, 0x12, 0xf2, 0x9d, 0x63, 0x71, 0x51, 0x07, 0x83, 0xbd, 0x75, 0xe6, 0x0e, 0x2f, 0x6d, 0xa2, 0x00, 0x52, 0x06, 0x9e, 0xd7, 0x1e, 0x69, 0x5a, 0x94, 0x31, 0x82, 0x19, 0x3c, 0xb6, 0x85, 0x1a, 0x7d, 0x2f, 0xa3, 0xc6, 0x66, 0xc1, 0x93, 0x02, 0x80, 0x15, 0xac, 0x8b, 0x7e, 0x7d, 0xaa, 0x6c, 0x52, 0x04, 0xf7, 0x7a, 0x62, 0x32, 0xb8, 0x8b, 0x4a, 0xbf, 0xfc, 0x53, 0x62, 0xfd, 0xe7, 0xde, 0xc3, 0x6b, 0x9d, 0x45, 0x48, 0x80, 0x84, 0x92, 0x83, 0xb1, 0x15, 0x63, 0x39, 0xea, 0x2e, 0x8c, 0x3b, 0x10, 0xe5, 0x1b, 0xfa, 0xbd, 0xf7, 0x25, 0x78, 0xc7, 0x26, 0x41, 0x9a, 0x38, 0x54, 0x2c, 0xf8, 0x64, 0x9d, 0xf9, 0xa0, 0x90, 0x9f, 0x58, 0x2d, 0xeb, 0xad, 0x5f, 0xd8, 0x9d, 0x8c, 0x81, 0xf8, 0x3d, 0x9e, 0x42, 0x3e, 0x75, 0x03, };
15570 static const u8 ed25519_677_test_vectors_expected_sig[] = {
15571 	0x65, 0x7c, 0x38, 0x26, 0xb3, 0x48, 0x3f, 0xd4, 0x2a, 0xb6, 0xdf, 0x86, 0x9d, 0x1b, 0x77, 0xa8, 0xc4, 0xdf, 0x67, 0xa6, 0xa5, 0x90, 0xc7, 0xc6, 0x77, 0x29, 0x69, 0xe3, 0xdf, 0x33, 0x12, 0xae, 0x06, 0x54, 0xfb, 0x83, 0x84, 0x7a, 0xf2, 0x21, 0x93, 0x5a, 0x05, 0x12, 0x29, 0x16, 0x36, 0xec, 0x05, 0x95, 0x70, 0x08, 0x79, 0xeb, 0xdb, 0xa8, 0xa1, 0x46, 0x7c, 0x53, 0xd4, 0x0c, 0x23, 0x06, };
15572 static const ec_test_case ed25519_677_test_case = {
15573 	.name = "EDDSA25519-SHA512/wei25519 677",
15574 	.ec_str_p = &wei25519_str_params,
15575 	.priv_key = ed25519_677_test_vectors_priv_key,
15576 	.priv_key_len = sizeof(ed25519_677_test_vectors_priv_key),
15577 	.nn_random = NULL,
15578 	.hash_type = SHA512,
15579 	.msg = (const char *)ed25519_677_test_vectors_message,
15580 	.msglen = sizeof(ed25519_677_test_vectors_message),
15581 	.sig_type = EDDSA25519,
15582 	.exp_sig = ed25519_677_test_vectors_expected_sig,
15583 	.exp_siglen = sizeof(ed25519_677_test_vectors_expected_sig),
15584 	.adata = NULL,
15585 	.adata_len = 0
15586 };
15587 
15588 /************************************************/
15589 static const u8 ed25519_678_test_vectors_priv_key[] = {
15590 	0xb9, 0xda, 0x4e, 0x6a, 0xf0, 0x7e, 0x39, 0x8a, 0xb4, 0xd2, 0x17, 0x52, 0xa3, 0x2c, 0x8f, 0xfa, 0x9b, 0xe0, 0xc3, 0x10, 0xd3, 0x50, 0x59, 0xfb, 0x66, 0x1b, 0xd7, 0x3a, 0xfa, 0x97, 0xe2, 0xa8, };
15591 static const u8 ed25519_678_test_vectors_message[] = {
15592 	0x6b, 0x95, 0xaf, 0x0e, 0xeb, 0xb6, 0xa0, 0x8a, 0xfa, 0xda, 0xa1, 0x96, 0x21, 0xf7, 0x6a, 0x83, 0x9b, 0xe8, 0x08, 0x51, 0xc6, 0xdd, 0x31, 0x5e, 0x82, 0x76, 0xf5, 0x01, 0x99, 0x5d, 0x4c, 0xe6, 0xd1, 0x34, 0xdf, 0x5e, 0x79, 0x8e, 0xd5, 0x17, 0xa2, 0xf0, 0xe6, 0x2a, 0xa1, 0xd6, 0xc9, 0x8c, 0x36, 0xef, 0x14, 0xbb, 0x1e, 0x5d, 0xdf, 0xc9, 0x8d, 0x5a, 0x7f, 0xcc, 0x81, 0x14, 0x0a, 0x13, 0xc2, 0x0d, 0x2c, 0xa0, 0xc4, 0xb4, 0x0e, 0x6e, 0x6a, 0x03, 0xee, 0xd8, 0xc8, 0x99, 0xf9, 0xd1, 0xf7, 0x92, 0x46, 0x81, 0x52, 0x19, 0x9f, 0x4b, 0x95, 0xa4, 0x32, 0x66, 0x89, 0x47, 0xa5, 0x1d, 0x7b, 0x8e, 0x10, 0x4d, 0x8d, 0x1f, 0x12, 0xaa, 0xcd, 0x96, 0x7e, 0x08, 0xb0, 0x8c, 0x41, 0xc3, 0xc8, 0xca, 0x3f, 0xee, 0xda, 0xa5, 0xb8, 0xb6, 0x3b, 0xce, 0xc0, 0x61, 0x38, 0x64, 0xd9, 0x53, 0xd8, 0x11, 0x43, 0xec, 0x81, 0x42, 0x5b, 0xde, 0x29, 0x16, 0x4a, 0x08, 0x76, 0xf2, 0x3f, 0x37, 0xac, 0x9a, 0xc9, 0x47, 0x36, 0x72, 0xce, 0x11, 0xa0, 0x8b, 0xd5, 0x47, 0x6f, 0x6f, 0x66, 0xd6, 0x65, 0xe9, 0xad, 0x61, 0x7e, 0x34, 0xeb, 0x32, 0xee, 0x56, 0xff, 0xa4, 0x59, 0xf2, 0x0d, 0x1b, 0x93, 0x53, 0xd7, 0x82, 0x12, 0x98, 0x54, 0x57, 0x50, 0xc6, 0xef, 0xf3, 0xe7, 0xd4, 0x07, 0x3d, 0xc3, 0x18, 0x5e, 0xde, 0x03, 0x91, 0xcc, 0xe0, 0x57, 0x5f, 0x8b, 0xa6, 0x37, 0xd8, 0x00, 0x06, 0x8d, 0x9d, 0x7e, 0x54, 0x03, 0xba, 0x70, 0x38, 0xd2, 0xdb, 0x77, 0xda, 0x14, 0x47, 0x84, 0xf2, 0xe8, 0xea, 0x76, 0xae, 0xdf, 0xe5, 0x21, 0xe7, 0xdc, 0x6a, 0x67, 0x4e, 0xde, 0x35, 0x57, 0x95, 0x95, 0x99, 0x3f, 0xb2, 0x0d, 0x44, 0xb4, 0x05, 0x27, 0x83, 0xf5, 0x6c, 0x8c, 0x0b, 0xbd, 0x04, 0x40, 0xb6, 0x9e, 0xab, 0xde, 0x84, 0x46, 0x8d, 0xd1, 0x3c, 0x67, 0x1f, 0xb1, 0xbb, 0xd5, 0xcb, 0x02, 0x2c, 0x2a, 0x4f, 0xcf, 0x35, 0x42, 0xd8, 0xb3, 0xbb, 0x51, 0x8e, 0x5a, 0xde, 0xbd, 0xdc, 0x84, 0xe7, 0x14, 0xb1, 0x3b, 0xe5, 0x2c, 0x56, 0xb2, 0x82, 0xb4, 0x2a, 0xc0, 0x89, 0x2a, 0x54, 0x59, 0x28, 0x1b, 0xe7, 0x16, 0x07, 0x29, 0xf4, 0x11, 0x2c, 0x7d, 0x99, 0xdf, 0x9b, 0xe5, 0x43, 0x4f, 0x82, 0x3a, 0x9c, 0xe0, 0x50, 0x17, 0x89, 0xde, 0x1d, 0x55, 0x0a, 0xd5, 0x0b, 0xb1, 0x8c, 0x8d, 0x89, 0xa3, 0x36, 0x68, 0x27, 0x0b, 0xff, 0x7b, 0x91, 0xff, 0x11, 0x8f, 0x5c, 0xd9, 0x90, 0x9a, 0xdd, 0xde, 0x90, 0xc0, 0x24, 0xa3, 0xad, 0x71, 0x39, 0x15, 0x17, 0x46, 0x74, 0xf2, 0x8a, 0xaa, 0x9f, 0x94, 0xa3, 0x22, 0xba, 0xa5, 0x43, 0x73, 0x8e, 0xda, 0xb4, 0x97, 0x33, 0x12, 0xb5, 0xbf, 0xa1, 0x21, 0x55, 0xde, 0xbc, 0xee, 0x16, 0x3c, 0xfe, 0x2b, 0x04, 0xac, 0x9c, 0x12, 0x2a, 0xc8, 0xa4, 0xe1, 0xbc, 0x41, 0x8c, 0x14, 0x95, 0x5d, 0x96, 0x10, 0x45, 0x5b, 0xd9, 0x45, 0xe9, 0x79, 0x3b, 0x91, 0x62, 0x67, 0xc9, 0xc5, 0xf9, 0xe5, 0x3a, 0xc0, 0x45, 0x18, 0x92, 0x6e, 0xc9, 0x8e, 0xcb, 0x84, 0xa4, 0xf0, 0x44, 0x5d, 0xcb, 0x12, 0x36, 0xc7, 0x6c, 0x3a, 0x67, 0x8c, 0x69, 0xab, 0xe4, 0xe9, 0x2c, 0x22, 0x97, 0x1d, 0x62, 0x21, 0x72, 0x01, 0xa1, 0xbd, 0xf0, 0x5c, 0x04, 0xdf, 0x84, 0x20, 0xa3, 0xde, 0x6a, 0x91, 0x7a, 0x85, 0xe7, 0x1e, 0x2b, 0x97, 0x25, 0xe7, 0x7b, 0x52, 0x29, 0x15, 0xd4, 0xc9, 0x94, 0x60, 0x77, 0x63, 0x7c, 0x2d, 0x88, 0x13, 0xf0, 0x10, 0xb9, 0x49, 0x1c, 0xf0, 0xed, 0xdc, 0x3d, 0x46, 0x68, 0xcc, 0x0f, 0x8b, 0xc8, 0xa6, 0x83, 0x57, 0x9b, 0xe5, 0x43, 0x93, 0x4d, 0xa2, 0x85, 0x3a, 0x16, 0xf5, 0x71, 0x57, 0x24, 0xf7, 0x79, 0x81, 0x9f, 0x44, 0x43, 0x9e, 0x1d, 0xeb, 0xca, 0xa4, 0x27, 0x0d, 0x9b, 0x85, 0x94, 0xba, 0x4c, 0x86, 0xe1, 0x06, 0x3b, 0x3c, 0xe4, 0x79, 0xd7, 0x1a, 0x54, 0x09, 0xbe, 0xf2, 0x7e, 0xf4, 0xe5, 0xc1, 0xd1, 0xc9, 0x6e, 0x8b, 0xe1, 0x38, 0x65, 0xaf, 0x7b, 0xb4, 0x3f, 0x09, 0x16, 0x2c, 0xcb, 0xc8, 0x3a, 0x2c, 0xa9, 0xe9, 0xb8, 0xa2, 0x32, 0x4e, 0x6d, 0x99, 0x65, 0x75, 0xee, 0xfe, 0xd3, 0x7e, 0xf4, 0x99, 0x08, 0x18, 0x57, 0x38, 0xb8, 0xea, 0xe4, 0x3f, 0x8a, 0xdc, 0xa3, 0x30, 0xc9, 0x9b, 0xc6, 0x6c, 0xc1, 0xfd, 0x52, 0xc5, 0x30, 0xd7, 0x37, 0x1c, 0x60, 0x86, 0x9c, 0xe4, 0x2c, 0x19, 0x7d, 0xca, 0x0a, 0xd1, 0x28, 0xb8, 0x5f, 0x61, 0xc8, 0x75, 0x8f, 0x0d, 0x54, 0x2f, 0x3d, 0x32, 0x98, 0xb6, 0x5e, 0x93, 0xc6, 0xe8, 0xa6, 0x8f, 0xa0, 0xe9, 0xa1, 0xd5, 0xe8, 0xc5, 0xfe, 0xc8, 0x05, 0xb8, 0x3a, 0xff, 0x43, 0x90, 0xe1, 0x15, 0xeb, 0x64, 0xf3, 0xf0, 0x78, 0xa0, 0xb9, 0xb6, 0x6c, 0x27, 0x38, 0x43, 0xfc, 0x6c, };
15593 static const u8 ed25519_678_test_vectors_expected_sig[] = {
15594 	0x62, 0x5e, 0x1f, 0x42, 0xc8, 0x74, 0x34, 0xa2, 0x5d, 0x62, 0x2d, 0x80, 0xd1, 0x25, 0x32, 0x80, 0x6a, 0xfb, 0x25, 0x09, 0x33, 0x24, 0x49, 0xe6, 0x96, 0xb6, 0x5e, 0x1e, 0x58, 0x88, 0x50, 0x8f, 0x11, 0xc4, 0xac, 0x25, 0xf5, 0x9b, 0x8d, 0x94, 0xd0, 0xbf, 0x27, 0xe4, 0xc8, 0xd1, 0x86, 0x70, 0x07, 0xc4, 0x08, 0xda, 0x57, 0x30, 0x82, 0xdc, 0xf1, 0x9d, 0x15, 0xa9, 0xd5, 0xcc, 0xcb, 0x0c, };
15595 static const ec_test_case ed25519_678_test_case = {
15596 	.name = "EDDSA25519-SHA512/wei25519 678",
15597 	.ec_str_p = &wei25519_str_params,
15598 	.priv_key = ed25519_678_test_vectors_priv_key,
15599 	.priv_key_len = sizeof(ed25519_678_test_vectors_priv_key),
15600 	.nn_random = NULL,
15601 	.hash_type = SHA512,
15602 	.msg = (const char *)ed25519_678_test_vectors_message,
15603 	.msglen = sizeof(ed25519_678_test_vectors_message),
15604 	.sig_type = EDDSA25519,
15605 	.exp_sig = ed25519_678_test_vectors_expected_sig,
15606 	.exp_siglen = sizeof(ed25519_678_test_vectors_expected_sig),
15607 	.adata = NULL,
15608 	.adata_len = 0
15609 };
15610 
15611 /************************************************/
15612 static const u8 ed25519_679_test_vectors_priv_key[] = {
15613 	0x14, 0x3f, 0x7b, 0x42, 0x47, 0xd5, 0x49, 0xf6, 0xb7, 0xc0, 0x91, 0x72, 0x66, 0xc5, 0x0f, 0x96, 0x2c, 0x28, 0xa2, 0xea, 0x24, 0x76, 0x2f, 0x53, 0x7a, 0xa0, 0x6a, 0xd1, 0x5e, 0x40, 0xb3, 0x5a, };
15614 static const u8 ed25519_679_test_vectors_message[] = {
15615 	0xe2, 0x74, 0x20, 0x23, 0x47, 0xa0, 0xd0, 0x57, 0xa4, 0x8b, 0xf2, 0xa1, 0xf6, 0xe9, 0xf6, 0xcb, 0x42, 0x56, 0x07, 0x9d, 0x80, 0x03, 0x74, 0x09, 0x3c, 0x02, 0x0c, 0xbf, 0x52, 0x0e, 0x5f, 0xa2, 0x7f, 0xe9, 0x96, 0xff, 0x07, 0xf3, 0x3a, 0xd3, 0xb2, 0x1f, 0x74, 0xab, 0x0c, 0xd9, 0x3c, 0x86, 0x47, 0x5f, 0xf3, 0x7c, 0xf6, 0x22, 0xd3, 0xf9, 0xfa, 0x4d, 0x13, 0xbc, 0x99, 0xf0, 0x13, 0xe8, 0x50, 0x2b, 0x24, 0xe4, 0x6c, 0xc8, 0x7c, 0x47, 0xe6, 0xb2, 0xc3, 0x66, 0x2b, 0x50, 0xe9, 0x79, 0xa0, 0xf3, 0x45, 0xb7, 0x84, 0xff, 0x21, 0xa8, 0xa4, 0xd9, 0x2a, 0xdc, 0x65, 0xe8, 0x6e, 0x33, 0xb4, 0xdb, 0xe1, 0x7f, 0x52, 0x8c, 0xcd, 0xf5, 0xb4, 0x86, 0x46, 0x64, 0xba, 0x94, 0xff, 0xdb, 0x7c, 0x7d, 0x24, 0x12, 0xb4, 0x38, 0xe6, 0xe4, 0x3f, 0xa9, 0x66, 0x81, 0x47, 0xee, 0x33, 0x28, 0x22, 0x4d, 0x1f, 0x52, 0xa3, 0xf5, 0xb5, 0x43, 0x59, 0xb4, 0xf7, 0xfe, 0xf6, 0x9a, 0xf8, 0xf8, 0x67, 0xb4, 0x78, 0xf1, 0x30, 0xa1, 0x47, 0xbe, 0xa4, 0x2e, 0xd3, 0x98, 0x03, 0xbc, 0xbc, 0x25, 0x57, 0xbc, 0xa8, 0xc3, 0x99, 0x9f, 0x1d, 0x24, 0xf0, 0xa6, 0xb0, 0x3c, 0x98, 0x84, 0x60, 0x11, 0xf9, 0xec, 0x74, 0xf6, 0x66, 0x41, 0x7b, 0x95, 0x02, 0x0e, 0xb1, 0xfb, 0x2f, 0xb8, 0x8b, 0x63, 0x12, 0xe5, 0x00, 0x8c, 0xff, 0x03, 0xe2, 0xd7, 0x7a, 0x26, 0xaa, 0x53, 0x2d, 0x17, 0x80, 0xb5, 0x07, 0x7f, 0x9e, 0x8b, 0x82, 0x86, 0x74, 0x45, 0x5d, 0x6b, 0xc9, 0x57, 0x97, 0x5f, 0x7b, 0x2a, 0x50, 0xe7, 0xfd, 0x7c, 0x16, 0x12, 0xce, 0x02, 0x36, 0x2e, 0xfa, 0x4c, 0x55, 0x5a, 0x1e, 0xef, 0x68, 0xec, 0x34, 0xa5, 0xc0, 0x06, 0xa6, 0xda, 0x00, 0x8a, 0x31, 0xd4, 0x19, 0x3d, 0xc2, 0xcc, 0x64, 0x76, 0x85, 0xad, 0x3c, 0xfa, 0x3b, 0xd7, 0xc5, 0x60, 0xb7, 0xae, 0xd4, 0x5f, 0x0f, 0x1a, 0x3d, 0x1b, 0x5b, 0x36, 0x22, 0x68, 0xde, 0x53, 0x28, 0x57, 0x05, 0x5a, 0xb9, 0xd1, 0xd5, 0xd8, 0x58, 0xd9, 0xae, 0x9a, 0x75, 0x9a, 0x51, 0xbb, 0x94, 0x78, 0xe8, 0xf0, 0xee, 0x93, 0xc9, 0x84, 0xb5, 0x76, 0xb8, 0xb4, 0xab, 0x46, 0x02, 0x80, 0xbe, 0x3d, 0xe2, 0x05, 0xa3, 0x2f, 0x1d, 0xc3, 0xd5, 0x72, 0x92, 0x3f, 0xb2, 0x13, 0xac, 0x15, 0x12, 0xd8, 0x0e, 0xb5, 0xad, 0x5c, 0x18, 0x94, 0x4b, 0xe7, 0x7f, 0xc1, 0x7d, 0xef, 0x13, 0xa6, 0x1b, 0xbd, 0x31, 0xbc, 0x71, 0xac, 0xc2, 0x3d, 0x25, 0x0e, 0xc5, 0x89, 0x4e, 0xbc, 0x21, 0x4c, 0xfe, 0xc0, 0xc1, 0xb9, 0x06, 0x51, 0x6d, 0x32, 0xd8, 0x36, 0xad, 0xc8, 0x38, 0x80, 0x2e, 0x8d, 0xe3, 0x0d, 0xd7, 0x6d, 0xf6, 0xe6, 0x1c, 0x1b, 0xc4, 0x38, 0xb6, 0x8d, 0x2b, 0x02, 0x5a, 0x84, 0xf2, 0x11, 0xfa, 0xcf, 0x3f, 0x13, 0x84, 0xd2, 0x61, 0x2d, 0x0f, 0xae, 0xf5, 0xd1, 0x71, 0x31, 0xcf, 0xe0, 0xcf, 0xe8, 0x33, 0xfe, 0x95, 0x0e, 0x47, 0x9b, 0xc2, 0x9c, 0xbe, 0x7f, 0xd6, 0xda, 0x0c, 0xce, 0x30, 0x7c, 0xf0, 0xb1, 0xbd, 0x92, 0xc8, 0x0e, 0x87, 0x8e, 0x43, 0x2f, 0x63, 0x6e, 0xa0, 0xcd, 0x42, 0x48, 0x0c, 0x07, 0xe8, 0xb8, 0xe5, 0x7e, 0x69, 0xb2, 0xf9, 0x38, 0xb7, 0x81, 0x20, 0xf6, 0xaf, 0x4a, 0xbe, 0xbf, 0x7d, 0x4b, 0x05, 0xca, 0xcd, 0x6e, 0xed, 0x85, 0x44, 0x91, 0xc0, 0x29, 0x75, 0x5c, 0x4e, 0x66, 0x33, 0x89, 0x93, 0xed, 0x2a, 0xc2, 0x5d, 0x19, 0xa0, 0xc5, 0xb4, 0x0f, 0x5e, 0x32, 0xc8, 0xa8, 0xb1, 0xbc, 0xe3, 0x69, 0x71, 0x81, 0x86, 0xc9, 0x1d, 0x60, 0xed, 0xff, 0x24, 0xa8, 0x37, 0x7a, 0x99, 0x69, 0x75, 0x75, 0x99, 0x06, 0x7d, 0xd3, 0x12, 0x63, 0xa0, 0x6d, 0x6a, 0x61, 0x15, 0x47, 0x81, 0xf2, 0x96, 0x11, 0xab, 0x81, 0x2f, 0xf8, 0x2e, 0x81, 0x37, 0x39, 0x64, 0x62, 0x63, 0x70, 0x4c, 0xd6, 0x04, 0x63, 0x57, 0xa2, 0x3c, 0x04, 0x5e, 0x24, 0x07, 0xb7, 0xa8, 0x95, 0x08, 0x25, 0x93, 0x91, 0x31, 0x4f, 0x2f, 0xbe, 0xe4, 0x9a, 0xef, 0x08, 0x55, 0xc6, 0xe5, 0xe6, 0x3d, 0x91, 0x2a, 0x19, 0xdf, 0x15, 0xb1, 0x1e, 0xce, 0x34, 0xe2, 0x76, 0xdc, 0xb8, 0x8b, 0xf2, 0xf2, 0xe4, 0x75, 0x63, 0x58, 0xf3, 0x4a, 0x0e, 0xe3, 0x95, 0x2b, 0x68, 0x6f, 0xcd, 0x17, 0x57, 0x8a, 0x88, 0x41, 0x76, 0xd3, 0x4e, 0xa2, 0x91, 0x6c, 0x5d, 0x9f, 0xcd, 0x00, 0xeb, 0x9e, 0x0a, 0xa9, 0xf2, 0xcf, 0x0f, 0x16, 0xe2, 0x56, 0x4b, 0xfd, 0x28, 0xb6, 0xab, 0x59, 0x68, 0xb8, 0x44, 0x8f, 0x06, 0x83, 0x20, 0xe4, 0x18, 0x71, 0x60, 0xf8, 0x66, 0x57, 0x81, 0xb1, 0xe2, 0xed, 0x9d, 0x04, 0x9e, 0x1b, 0x54, 0xa7, 0xd7, 0x27, 0x20, 0xff, 0x9d, 0x4f, 0x07, 0x30, 0x51, 0x99, 0x6a, 0x9d, 0xb6, 0xf0, 0xc6, 0x82, 0x1c, 0x42, 0x4f, 0xa5, 0x1d, };
15616 static const u8 ed25519_679_test_vectors_expected_sig[] = {
15617 	0xc1, 0xcf, 0xae, 0x58, 0x51, 0x57, 0x13, 0xea, 0x72, 0x8c, 0xfa, 0x09, 0x09, 0x0e, 0x89, 0x42, 0xf8, 0xdf, 0x18, 0x62, 0x1b, 0xa7, 0x09, 0x0e, 0x3a, 0x33, 0x76, 0xc3, 0x80, 0x27, 0x75, 0xa1, 0xec, 0xaf, 0x43, 0x6b, 0x18, 0x49, 0x78, 0x04, 0x1e, 0xbb, 0x75, 0x22, 0x6f, 0x97, 0x0d, 0xf7, 0x1d, 0x6a, 0xd3, 0x53, 0xc0, 0xfb, 0x46, 0x50, 0x23, 0xf9, 0xe2, 0x98, 0xf6, 0x4a, 0x70, 0x02, };
15618 static const ec_test_case ed25519_679_test_case = {
15619 	.name = "EDDSA25519-SHA512/wei25519 679",
15620 	.ec_str_p = &wei25519_str_params,
15621 	.priv_key = ed25519_679_test_vectors_priv_key,
15622 	.priv_key_len = sizeof(ed25519_679_test_vectors_priv_key),
15623 	.nn_random = NULL,
15624 	.hash_type = SHA512,
15625 	.msg = (const char *)ed25519_679_test_vectors_message,
15626 	.msglen = sizeof(ed25519_679_test_vectors_message),
15627 	.sig_type = EDDSA25519,
15628 	.exp_sig = ed25519_679_test_vectors_expected_sig,
15629 	.exp_siglen = sizeof(ed25519_679_test_vectors_expected_sig),
15630 	.adata = NULL,
15631 	.adata_len = 0
15632 };
15633 
15634 /************************************************/
15635 static const u8 ed25519_680_test_vectors_priv_key[] = {
15636 	0x0d, 0x1f, 0xe9, 0xd8, 0xb9, 0xa2, 0xf0, 0x4c, 0x22, 0xbb, 0xb0, 0xed, 0xea, 0x38, 0x33, 0xa0, 0xce, 0x43, 0x33, 0x93, 0x47, 0x53, 0x1f, 0xdb, 0x67, 0xed, 0x51, 0x3a, 0x13, 0xd3, 0x6b, 0x39, };
15637 static const u8 ed25519_680_test_vectors_message[] = {
15638 	0x64, 0x21, 0x7a, 0xc8, 0x41, 0xfd, 0x4d, 0x64, 0x59, 0xbf, 0xc4, 0xa4, 0x9b, 0x88, 0x01, 0xd6, 0x92, 0x9b, 0xf1, 0x9b, 0x40, 0x8e, 0x8a, 0x53, 0x79, 0x0c, 0xeb, 0x51, 0xec, 0x34, 0x1f, 0x9b, 0x46, 0xa3, 0x51, 0xe8, 0xc2, 0xe5, 0x9d, 0x88, 0x7e, 0x1e, 0xac, 0xcb, 0x91, 0x42, 0x31, 0xcd, 0xca, 0x1d, 0x3e, 0x5c, 0x47, 0xd1, 0x66, 0xb4, 0xcd, 0xb9, 0xb5, 0x8c, 0x01, 0x3c, 0x59, 0xa3, 0xbd, 0x28, 0x3a, 0xd1, 0x0f, 0x6b, 0xd6, 0x2c, 0x0f, 0x15, 0xf7, 0x64, 0xce, 0x14, 0xf3, 0xb2, 0x65, 0xf5, 0x37, 0xc6, 0x3e, 0x73, 0xb6, 0xc4, 0xfa, 0x65, 0xe0, 0x6c, 0xe1, 0xe1, 0xf4, 0xae, 0x0d, 0x11, 0x48, 0x9d, 0xd2, 0x60, 0x2f, 0x95, 0xfc, 0x40, 0x2b, 0x77, 0x12, 0x05, 0x2a, 0xbc, 0x84, 0xbd, 0xc7, 0x78, 0xc1, 0x9f, 0x10, 0x00, 0x1b, 0x4e, 0x0d, 0x5f, 0xbe, 0x46, 0x30, 0x90, 0xe8, 0x3e, 0xf4, 0x38, 0xfe, 0x06, 0x8f, 0x3b, 0xb6, 0xfb, 0xc2, 0xc1, 0x39, 0xaf, 0x06, 0x78, 0xed, 0x2a, 0x11, 0xfa, 0xa1, 0xb9, 0xe4, 0x9a, 0xaa, 0x46, 0x20, 0xab, 0xfc, 0x08, 0x43, 0x9f, 0xbf, 0xe2, 0xc6, 0x18, 0x40, 0x76, 0x9e, 0x5f, 0xda, 0x26, 0x77, 0xf8, 0xe2, 0xf0, 0xa1, 0x45, 0x64, 0xf9, 0xf5, 0x04, 0x23, 0x2a, 0x9f, 0xc0, 0xd9, 0xda, 0x47, 0x1e, 0x67, 0xfb, 0xc5, 0x74, 0xc3, 0xd5, 0x6d, 0x2a, 0xeb, 0x93, 0x7a, 0x58, 0x6e, 0xd5, 0x58, 0x35, 0x56, 0x30, 0x8a, 0x99, 0x8e, 0xb1, 0xdc, 0x47, 0x6a, 0x01, 0x4f, 0x5a, 0x08, 0x22, 0x8d, 0xbe, 0xd9, 0x5a, 0x12, 0x08, 0xbc, 0x1d, 0x1f, 0x5d, 0x76, 0xb4, 0xe8, 0xd0, 0xb2, 0x43, 0x4b, 0x99, 0x5a, 0xd4, 0x58, 0xe4, 0x29, 0xee, 0x61, 0x42, 0xa0, 0xc9, 0x71, 0x76, 0x8c, 0xc4, 0x0c, 0x40, 0xbc, 0xb0, 0x8e, 0x96, 0x03, 0xf0, 0x96, 0x11, 0x47, 0x44, 0x71, 0xb3, 0x85, 0x9d, 0x7f, 0xd5, 0x84, 0x21, 0x9f, 0x02, 0x65, 0x7b, 0x43, 0x0e, 0x9e, 0x56, 0x95, 0x5b, 0x34, 0x67, 0xac, 0x56, 0xff, 0x2e, 0xab, 0x22, 0xcc, 0x49, 0x84, 0x89, 0x03, 0x6a, 0x57, 0x41, 0x20, 0xe2, 0xdb, 0x76, 0x9a, 0x3b, 0x21, 0x50, 0x03, 0x89, 0x14, 0x2c, 0x78, 0xa8, 0x7d, 0x06, 0x9f, 0x0e, 0x25, 0x76, 0xca, 0xfd, 0xa8, 0xcd, 0xdd, 0x79, 0x15, 0xa9, 0x22, 0x87, 0x73, 0xd2, 0xac, 0x9a, 0x07, 0x5c, 0xb3, 0x87, 0xf2, 0xa8, 0x98, 0x61, 0x72, 0x13, 0xb2, 0xcc, 0x50, 0x59, 0xd1, 0x19, 0x41, 0xbc, 0x4f, 0xe5, 0x86, 0x41, 0xe7, 0xc1, 0x75, 0x02, 0x67, 0xe5, 0x3e, 0x99, 0xc4, 0x21, 0xcb, 0x4c, 0xf2, 0x1d, 0x09, 0x8c, 0xa2, 0xd1, 0xf4, 0x16, 0x44, 0xf7, 0x90, 0x89, 0x83, 0xeb, 0x17, 0x4a, 0x23, 0xa7, 0x81, 0xcf, 0x15, 0xef, 0x38, 0xeb, 0x91, 0x16, 0xed, 0xa4, 0x12, 0x3a, 0x15, 0x22, 0xf5, 0x3b, 0x81, 0xfb, 0x73, 0x68, 0xe8, 0x07, 0x5f, 0xb8, 0x38, 0x59, 0xd2, 0xcf, 0x98, 0xd9, 0x21, 0x53, 0x5a, 0x70, 0x9f, 0xaf, 0xa9, 0x87, 0x3c, 0x4a, 0x03, 0x9a, 0xae, 0x68, 0x2f, 0x7e, 0x62, 0x86, 0xb8, 0x99, 0x25, 0x7c, 0x09, 0x24, 0x01, 0x6c, 0xa5, 0xbf, 0x6d, 0x31, 0x69, 0x09, 0x92, 0x11, 0xa9, 0xa4, 0xa6, 0x74, 0x5c, 0xdd, 0x31, 0x98, 0xf1, 0x33, 0x7f, 0x60, 0x92, 0x82, 0x27, 0xce, 0x3c, 0x7d, 0x60, 0x96, 0x0b, 0x53, 0xde, 0xdf, 0x01, 0x1a, 0x89, 0x40, 0xf5, 0xc4, 0x68, 0x20, 0x7a, 0x38, 0x94, 0xbb, 0x08, 0x72, 0xb3, 0x33, 0xcc, 0xde, 0xc9, 0xd5, 0xec, 0xd9, 0x11, 0xec, 0xbb, 0xb9, 0x6c, 0x9b, 0xc4, 0xbd, 0x48, 0x75, 0x32, 0x0e, 0x4d, 0x3e, 0x9c, 0x02, 0xd9, 0xdc, 0x76, 0x10, 0x9e, 0xc4, 0x5e, 0x61, 0xd1, 0xcf, 0x5a, 0xc7, 0x29, 0xf2, 0xe3, 0x4a, 0x96, 0x47, 0xb9, 0x5b, 0xce, 0x70, 0xb0, 0xc6, 0x33, 0x17, 0x1a, 0xda, 0xf0, 0xdf, 0xdb, 0x5a, 0xfb, 0xa4, 0x03, 0x5b, 0x3c, 0xce, 0x8c, 0xb7, 0x14, 0x1a, 0xd1, 0x42, 0xbb, 0x7a, 0xdd, 0x4f, 0xc3, 0xf9, 0x61, 0xd4, 0x2d, 0x72, 0x03, 0x75, 0x4a, 0x4e, 0x31, 0x32, 0x21, 0xd4, 0x87, 0x83, 0x1e, 0x32, 0x94, 0x7d, 0xa9, 0x11, 0x38, 0xab, 0x64, 0x8b, 0x59, 0x52, 0xef, 0x69, 0x56, 0xe2, 0x7a, 0xa5, 0xd2, 0xc1, 0x75, 0x79, 0x4b, 0xf8, 0x1e, 0xf2, 0x77, 0xfa, 0xa6, 0xb9, 0x05, 0xe1, 0x45, 0x02, 0x86, 0x68, 0x87, 0xd8, 0x78, 0x80, 0x60, 0x6e, 0x81, 0xb2, 0x7a, 0xf0, 0x1b, 0xb2, 0x63, 0xec, 0xf2, 0xc5, 0x82, 0x05, 0x85, 0xea, 0x6c, 0xe8, 0xd8, 0xb3, 0x91, 0xd8, 0x6f, 0xce, 0xda, 0xdc, 0xd1, 0x1f, 0xdb, 0xb5, 0x66, 0xfd, 0xf1, 0x47, 0xf4, 0x02, 0x01, 0x0f, 0xc3, 0x5f, 0x51, 0x57, 0xe0, 0x36, 0x14, 0x6b, 0x37, 0x36, 0xc8, 0xa4, 0x33, 0x59, 0x12, 0x7c, 0x26, 0x1f, 0x6b, 0xf0, 0xca, 0xd3, 0xbd, 0x8a, 0x34, 0xcb, 0x15, 0x09, 0xf7, };
15639 static const u8 ed25519_680_test_vectors_expected_sig[] = {
15640 	0xb0, 0x57, 0x25, 0xe7, 0x37, 0x1e, 0xd0, 0xa9, 0x1e, 0xbc, 0x89, 0xf3, 0xc3, 0x0b, 0xaa, 0x99, 0x18, 0x37, 0x63, 0xed, 0xb4, 0xce, 0x34, 0xfe, 0x90, 0x1a, 0xf3, 0x73, 0x1e, 0x00, 0x1c, 0xc5, 0x4f, 0x28, 0x71, 0x18, 0x91, 0x5e, 0x90, 0x36, 0x5d, 0x91, 0xac, 0xa8, 0xfe, 0xb1, 0x70, 0x87, 0x69, 0xf9, 0xf1, 0xd6, 0xee, 0xf5, 0xaa, 0x11, 0x3b, 0xee, 0x00, 0xb5, 0xef, 0xab, 0x27, 0x04, };
15641 static const ec_test_case ed25519_680_test_case = {
15642 	.name = "EDDSA25519-SHA512/wei25519 680",
15643 	.ec_str_p = &wei25519_str_params,
15644 	.priv_key = ed25519_680_test_vectors_priv_key,
15645 	.priv_key_len = sizeof(ed25519_680_test_vectors_priv_key),
15646 	.nn_random = NULL,
15647 	.hash_type = SHA512,
15648 	.msg = (const char *)ed25519_680_test_vectors_message,
15649 	.msglen = sizeof(ed25519_680_test_vectors_message),
15650 	.sig_type = EDDSA25519,
15651 	.exp_sig = ed25519_680_test_vectors_expected_sig,
15652 	.exp_siglen = sizeof(ed25519_680_test_vectors_expected_sig),
15653 	.adata = NULL,
15654 	.adata_len = 0
15655 };
15656 
15657 /************************************************/
15658 static const u8 ed25519_681_test_vectors_priv_key[] = {
15659 	0xc1, 0x0b, 0x5a, 0xc6, 0x05, 0x5a, 0x1d, 0xdb, 0xca, 0x28, 0x55, 0x2e, 0x5c, 0x72, 0xeb, 0xd0, 0x52, 0x78, 0xc9, 0x22, 0x39, 0xb2, 0xfc, 0xd0, 0xc1, 0x35, 0x36, 0x51, 0xa8, 0xe5, 0x59, 0xa0, };
15660 static const u8 ed25519_681_test_vectors_message[] = {
15661 	0x35, 0x94, 0x90, 0x5f, 0x9e, 0xa4, 0x64, 0x61, 0x5f, 0x41, 0xb8, 0x7a, 0xbb, 0x9d, 0x16, 0x73, 0x37, 0xf2, 0x9d, 0x45, 0xd9, 0x7f, 0x7a, 0x14, 0x64, 0xec, 0x9f, 0x2e, 0xe5, 0x0f, 0x90, 0xf2, 0xe6, 0x73, 0x39, 0x87, 0x4d, 0x3f, 0x20, 0x93, 0xbe, 0x92, 0x26, 0x10, 0x77, 0x01, 0xec, 0x1a, 0xab, 0x94, 0x1c, 0x4e, 0x05, 0x9f, 0x1b, 0xb2, 0x6c, 0xe8, 0x6e, 0x14, 0x8d, 0x1d, 0x9f, 0x0d, 0xa2, 0xa2, 0xa0, 0xf9, 0x82, 0x9a, 0x36, 0x4f, 0xb4, 0xf1, 0x3f, 0x58, 0xb9, 0x60, 0xd0, 0xf8, 0xd7, 0x23, 0x23, 0x28, 0x3c, 0x44, 0x90, 0xef, 0xdf, 0x57, 0x87, 0x86, 0x45, 0x89, 0x0f, 0xf7, 0xbc, 0x50, 0x65, 0xda, 0xd6, 0xe5, 0x1d, 0xd1, 0xe5, 0xb9, 0xa5, 0x07, 0x51, 0x50, 0x97, 0x8b, 0x33, 0x67, 0xf1, 0xba, 0x84, 0xe4, 0x5f, 0xf1, 0xf1, 0x27, 0x6c, 0x57, 0x6e, 0x4b, 0xc7, 0x2b, 0xe8, 0xaa, 0x8e, 0x40, 0x5f, 0xc2, 0xb2, 0x7f, 0x81, 0x46, 0xb9, 0x99, 0x84, 0x5f, 0xaa, 0xa0, 0x59, 0x5d, 0x3c, 0xb7, 0x0e, 0x5d, 0x37, 0x12, 0xed, 0x54, 0xa0, 0xfb, 0x3e, 0x32, 0x2d, 0x45, 0x38, 0x0b, 0x5d, 0xe3, 0x60, 0x9b, 0x96, 0x7b, 0x95, 0x9b, 0xca, 0x5a, 0x58, 0x3c, 0xc5, 0x20, 0xcd, 0xcb, 0x7b, 0xcb, 0xb8, 0x29, 0xaa, 0x25, 0xd7, 0x93, 0x20, 0x95, 0xec, 0xb3, 0x03, 0x92, 0x3c, 0x25, 0x60, 0xaf, 0xc3, 0xfd, 0x73, 0x24, 0xb7, 0xb7, 0xac, 0xd0, 0x89, 0xa9, 0xf0, 0x0c, 0x03, 0xa7, 0x3d, 0x04, 0x3d, 0xc0, 0xcf, 0x0b, 0xa0, 0xd8, 0x41, 0x1e, 0x2b, 0x1b, 0x18, 0xd2, 0x1d, 0x2a, 0x32, 0xa7, 0x26, 0xa5, 0x30, 0x59, 0x14, 0x0f, 0x78, 0x4f, 0x7c, 0xed, 0xf2, 0xf3, 0x3c, 0xec, 0x66, 0xfe, 0x4a, 0xd5, 0xcc, 0x9e, 0xac, 0xcb, 0xe4, 0xae, 0x10, 0x03, 0x6a, 0xc3, 0x52, 0x3b, 0xac, 0x70, 0x0a, 0x11, 0x3a, 0x98, 0xb5, 0x98, 0xe6, 0xdf, 0x03, 0x04, 0xc6, 0xfa, 0x32, 0x12, 0xac, 0xc0, 0x4c, 0x4e, 0x3c, 0x7f, 0x66, 0x87, 0x36, 0x2e, 0xf8, 0x6d, 0x61, 0x7c, 0x6d, 0xd4, 0x83, 0xf8, 0xd8, 0x0c, 0xea, 0x66, 0xd1, 0x95, 0x11, 0x27, 0x42, 0x8a, 0x61, 0xc1, 0xe1, 0x55, 0xa6, 0x85, 0x0b, 0xb2, 0xaf, 0xb7, 0xf9, 0x1c, 0x82, 0xd7, 0x3e, 0xb2, 0xb0, 0x54, 0x3e, 0xe8, 0xfc, 0x1f, 0x38, 0xe1, 0xdc, 0xdb, 0x3c, 0x50, 0x3d, 0xdc, 0x9b, 0xa0, 0x81, 0x24, 0x56, 0xa5, 0xce, 0x2e, 0x11, 0xd5, 0x56, 0x48, 0x7a, 0x64, 0x69, 0x74, 0xa7, 0xbb, 0xf8, 0x6e, 0x80, 0x6c, 0x58, 0xc6, 0x8c, 0x42, 0x69, 0xa7, 0xc9, 0xbb, 0xca, 0xc0, 0xff, 0xef, 0x98, 0x35, 0xb3, 0x3d, 0xc4, 0x49, 0xa7, 0x54, 0x79, 0xec, 0xd2, 0x3f, 0x6d, 0x14, 0x9c, 0x1e, 0x5e, 0xa8, 0xb6, 0x92, 0x08, 0xff, 0x36, 0xe5, 0xfb, 0xd6, 0x82, 0x95, 0x55, 0x03, 0x18, 0xbf, 0xa0, 0xd3, 0xb1, 0xd6, 0xc1, 0xad, 0x42, 0x70, 0xbc, 0xab, 0x09, 0x04, 0xae, 0x53, 0x49, 0x1f, 0x9b, 0x1c, 0xa5, 0x02, 0xe0, 0x12, 0xee, 0xd7, 0x7c, 0x42, 0x7d, 0x49, 0xa0, 0x96, 0x2f, 0x10, 0x55, 0x12, 0x5d, 0xd7, 0xb5, 0x37, 0x33, 0xd8, 0x52, 0x89, 0x34, 0xb5, 0x58, 0x0d, 0xd5, 0xfd, 0x5b, 0xbe, 0x85, 0x49, 0x78, 0xba, 0xe3, 0xd2, 0x5b, 0xb4, 0xae, 0x94, 0x4e, 0x90, 0x65, 0xe8, 0xe2, 0xe0, 0x79, 0x46, 0x51, 0x8a, 0x6f, 0x54, 0x8e, 0x36, 0xe0, 0x56, 0xbe, 0x82, 0x4d, 0x9e, 0x02, 0xa7, 0xa3, 0xea, 0xad, 0xd3, 0x79, 0x29, 0xf5, 0x81, 0x01, 0xcb, 0x18, 0x53, 0xbe, 0x3d, 0x75, 0x47, 0xf5, 0x8f, 0x49, 0xe3, 0x8b, 0x01, 0x8a, 0x74, 0x8d, 0x3f, 0x19, 0xc4, 0x85, 0x82, 0xab, 0xbd, 0xbe, 0x95, 0x3a, 0x8a, 0x25, 0xba, 0x9d, 0x36, 0x5d, 0xea, 0x83, 0x59, 0x35, 0x89, 0x9c, 0x19, 0xfb, 0x0b, 0x51, 0x90, 0x6a, 0xa9, 0x72, 0xc5, 0xac, 0x45, 0xe9, 0x9c, 0x40, 0xb3, 0xb7, 0x6e, 0x35, 0xd3, 0x27, 0xe3, 0x21, 0xe8, 0xae, 0x23, 0x06, 0xa6, 0xeb, 0x3d, 0x8c, 0xb6, 0xec, 0x2f, 0xa5, 0x39, 0x9a, 0xdd, 0x19, 0xea, 0x00, 0x28, 0xa0, 0x17, 0x92, 0xc0, 0x8e, 0x27, 0xc1, 0x6c, 0xf4, 0xf8, 0x5a, 0xaa, 0xae, 0x72, 0xf9, 0x86, 0xb0, 0x99, 0xf9, 0xeb, 0xe4, 0xad, 0x0b, 0x25, 0xd0, 0x6d, 0x3d, 0xe4, 0x4a, 0x8b, 0xfa, 0x52, 0x84, 0x4b, 0xe4, 0xa9, 0x39, 0x44, 0x83, 0x3c, 0xe2, 0xad, 0xd5, 0x1b, 0xb5, 0x54, 0xb3, 0x56, 0xa7, 0xdc, 0x49, 0x74, 0x8d, 0xd4, 0x5a, 0xe7, 0xec, 0x9e, 0x8d, 0xb4, 0x26, 0xc9, 0x7a, 0x25, 0xda, 0x5e, 0xdd, 0x3b, 0x62, 0x1e, 0x4a, 0xdb, 0xde, 0x48, 0x19, 0x7a, 0x33, 0x14, 0xde, 0x1c, 0x50, 0xf4, 0xd6, 0x00, 0x20, 0x27, 0xdd, 0x75, 0x19, 0xdd, 0xe3, 0xe1, 0x57, 0x29, 0xe4, 0x86, 0x95, 0x5a, 0xc4, 0x0d, 0x9d, 0x66, 0x87, 0x6f, 0x90, 0x66, 0x8c, 0x68, 0x9d, 0x8a, 0xb5, 0x98, };
15662 static const u8 ed25519_681_test_vectors_expected_sig[] = {
15663 	0x8a, 0x9a, 0x32, 0x17, 0xfd, 0xf0, 0x64, 0x3a, 0xaa, 0xa5, 0xc8, 0xfb, 0x2a, 0x88, 0xa5, 0x56, 0x39, 0x88, 0x59, 0xb8, 0xfe, 0xef, 0xbc, 0xb4, 0x8c, 0xcd, 0x88, 0xe5, 0x85, 0xa1, 0x67, 0xc9, 0x4d, 0xbb, 0x5c, 0x0c, 0xad, 0x24, 0xd1, 0x5b, 0xca, 0xbb, 0xc1, 0xed, 0xb2, 0x1f, 0x02, 0xa8, 0xc4, 0x57, 0xc5, 0x61, 0x20, 0xa3, 0x23, 0x4a, 0xc3, 0x35, 0x77, 0xb9, 0xaf, 0x2d, 0xdc, 0x01, };
15664 static const ec_test_case ed25519_681_test_case = {
15665 	.name = "EDDSA25519-SHA512/wei25519 681",
15666 	.ec_str_p = &wei25519_str_params,
15667 	.priv_key = ed25519_681_test_vectors_priv_key,
15668 	.priv_key_len = sizeof(ed25519_681_test_vectors_priv_key),
15669 	.nn_random = NULL,
15670 	.hash_type = SHA512,
15671 	.msg = (const char *)ed25519_681_test_vectors_message,
15672 	.msglen = sizeof(ed25519_681_test_vectors_message),
15673 	.sig_type = EDDSA25519,
15674 	.exp_sig = ed25519_681_test_vectors_expected_sig,
15675 	.exp_siglen = sizeof(ed25519_681_test_vectors_expected_sig),
15676 	.adata = NULL,
15677 	.adata_len = 0
15678 };
15679 
15680 /************************************************/
15681 static const u8 ed25519_682_test_vectors_priv_key[] = {
15682 	0x06, 0x1b, 0xdd, 0xab, 0x28, 0x0b, 0x0f, 0xdc, 0xb2, 0x6b, 0xfd, 0x9a, 0x0f, 0xc7, 0x21, 0xf6, 0x8f, 0x88, 0x34, 0x3b, 0x5d, 0x39, 0x83, 0xa1, 0x6b, 0x6d, 0xfa, 0xa5, 0xe7, 0x69, 0x69, 0xf3, };
15683 static const u8 ed25519_682_test_vectors_message[] = {
15684 	0xee, 0x76, 0xb4, 0x0c, 0xd4, 0x29, 0xea, 0xc7, 0xbc, 0x12, 0x83, 0x9c, 0xa2, 0xf7, 0xcd, 0x31, 0xf1, 0xe0, 0x09, 0x8a, 0x39, 0xc5, 0xfc, 0x19, 0x80, 0x5b, 0xe0, 0x33, 0x1f, 0x44, 0x79, 0x9e, 0x31, 0x8d, 0x12, 0x57, 0x1f, 0x06, 0xe2, 0x99, 0x37, 0x53, 0xa3, 0x68, 0x5c, 0xd2, 0xa9, 0x6b, 0x23, 0x01, 0xe2, 0x00, 0x24, 0x20, 0x9a, 0xdc, 0x5a, 0xdf, 0x74, 0x79, 0xff, 0x90, 0xc4, 0x77, 0xc3, 0x69, 0x5a, 0xbb, 0x99, 0xbd, 0x28, 0x57, 0x9d, 0xbc, 0x78, 0x31, 0xa1, 0x92, 0xbe, 0xed, 0x0c, 0xe1, 0x7b, 0x03, 0x8b, 0x20, 0x76, 0x48, 0x00, 0x65, 0x3a, 0xf7, 0xaf, 0x02, 0x4e, 0x2a, 0x10, 0x4e, 0xd0, 0xf3, 0xe5, 0x2d, 0x4b, 0xbd, 0x3e, 0x10, 0x9c, 0xf1, 0x26, 0x29, 0x1f, 0x49, 0xb0, 0xa2, 0x1b, 0xe4, 0x33, 0xc1, 0xc5, 0xa2, 0x58, 0x9e, 0xa5, 0x72, 0x99, 0x7f, 0x63, 0xd2, 0xbb, 0x39, 0x72, 0xd5, 0x32, 0xbe, 0x35, 0xa0, 0x47, 0x1e, 0xf0, 0x57, 0x3d, 0x79, 0x5c, 0x07, 0x2b, 0x6a, 0x86, 0x85, 0xb9, 0x5e, 0x47, 0xb0, 0x9e, 0xa9, 0xf4, 0x75, 0xd9, 0x3b, 0xf1, 0x2b, 0xbd, 0x77, 0xb7, 0xd2, 0xbf, 0x5d, 0x5b, 0xdd, 0xf0, 0xae, 0x02, 0x37, 0x53, 0x71, 0xd1, 0xd7, 0x99, 0xea, 0x92, 0x04, 0xbe, 0x38, 0x9e, 0x6a, 0x8e, 0x5d, 0xee, 0xdc, 0xd4, 0x92, 0x02, 0xe9, 0x2d, 0xf7, 0xc3, 0xe7, 0x61, 0xf9, 0x2e, 0xf8, 0xd7, 0x9f, 0xa7, 0x38, 0xd2, 0xc5, 0xbc, 0x28, 0x0e, 0xd3, 0x28, 0x79, 0x83, 0x2f, 0xf2, 0xb0, 0x26, 0x42, 0x45, 0x89, 0xcd, 0xbd, 0x52, 0xd1, 0x5b, 0x60, 0xf2, 0xaa, 0x35, 0x26, 0xb8, 0x98, 0x84, 0x9a, 0x34, 0xa8, 0x5f, 0xf1, 0xc4, 0x7d, 0xc6, 0x55, 0x4b, 0x85, 0xac, 0x76, 0xaa, 0x79, 0x35, 0xcb, 0xf3, 0xf7, 0xbc, 0x80, 0xad, 0x00, 0x91, 0x92, 0xa8, 0x75, 0xca, 0x20, 0x9b, 0x40, 0xfe, 0xb0, 0x47, 0xcc, 0x44, 0x69, 0x68, 0xf9, 0x70, 0xda, 0x47, 0xb8, 0xcd, 0x67, 0xda, 0x7e, 0xb4, 0xe5, 0x4a, 0x0e, 0x5a, 0xb2, 0x0c, 0xb3, 0x5b, 0xc6, 0xfb, 0x7f, 0x13, 0x30, 0x7c, 0xe6, 0x7e, 0xb6, 0x20, 0x4a, 0x67, 0xce, 0x9b, 0xb1, 0xd1, 0x39, 0xc1, 0xb4, 0xbd, 0x5d, 0xbe, 0xd5, 0x80, 0x10, 0xc8, 0x7b, 0xf8, 0x31, 0xe6, 0x52, 0x2e, 0xe1, 0x82, 0xda, 0xd9, 0x45, 0x80, 0x4b, 0x76, 0x7c, 0x4d, 0xf2, 0x55, 0x4f, 0x15, 0xb9, 0xe9, 0xaf, 0xd2, 0x59, 0x9e, 0xf2, 0x58, 0xc6, 0x7a, 0x22, 0xca, 0xeb, 0x92, 0xa5, 0x79, 0x88, 0x00, 0x6b, 0xbc, 0x72, 0xc1, 0x04, 0xfa, 0xc7, 0xe5, 0x41, 0x3c, 0xd3, 0xd3, 0xb8, 0x02, 0xc8, 0x3e, 0x63, 0x9e, 0xaf, 0xe2, 0x12, 0xa3, 0x8b, 0xb7, 0xef, 0x77, 0x9a, 0xf1, 0xa9, 0x4e, 0xe1, 0x37, 0xf6, 0xc6, 0x06, 0x67, 0xbc, 0x48, 0xf2, 0x7b, 0xf4, 0xa2, 0x22, 0x41, 0xbc, 0x44, 0xbb, 0x60, 0x33, 0x83, 0x62, 0x39, 0xbd, 0x6e, 0xaf, 0x3e, 0x2e, 0x22, 0x31, 0x87, 0x84, 0x1e, 0x46, 0x41, 0xb0, 0xf4, 0xe9, 0xff, 0x8d, 0x5a, 0x41, 0xdd, 0xbe, 0xab, 0xb4, 0x13, 0x8f, 0x6b, 0x58, 0x5a, 0xce, 0x0f, 0xb6, 0xb5, 0x3d, 0xc3, 0xc9, 0xed, 0xc0, 0x37, 0x3b, 0x60, 0x47, 0xf2, 0x7d, 0x83, 0x5e, 0x8e, 0x24, 0x66, 0x44, 0xfd, 0x83, 0x2c, 0xcf, 0xe0, 0xdf, 0x25, 0xc3, 0xd7, 0xda, 0x18, 0x7c, 0x9f, 0xa0, 0x54, 0x20, 0xd4, 0x34, 0x55, 0xf2, 0xd0, 0x8b, 0x57, 0x19, 0x29, 0x38, 0x6b, 0x59, 0xc6, 0xe0, 0xe1, 0x0a, 0x35, 0x60, 0x1d, 0xa8, 0x99, 0xb1, 0xb4, 0xdc, 0x3d, 0x95, 0xb6, 0x7d, 0xd9, 0xa8, 0x38, 0x18, 0xb0, 0xa3, 0x18, 0xbf, 0xdd, 0xa0, 0x64, 0x64, 0xb4, 0xa4, 0x2d, 0x3c, 0xb9, 0x85, 0xf3, 0x0e, 0xc9, 0x7d, 0x6a, 0x2a, 0xf1, 0x32, 0x91, 0x15, 0x5d, 0x60, 0xce, 0xc5, 0x7c, 0xbd, 0x58, 0xd5, 0xcf, 0xcb, 0x35, 0xc1, 0x85, 0x35, 0xe8, 0xd2, 0x99, 0xb5, 0xb0, 0x07, 0x59, 0x08, 0x92, 0xea, 0x94, 0x9d, 0x1b, 0x13, 0x7a, 0x62, 0xb3, 0x9a, 0x43, 0x6c, 0xd7, 0xe5, 0xb9, 0xf8, 0xd1, 0xb6, 0x93, 0x8d, 0xba, 0xa6, 0x2c, 0x22, 0x68, 0xd4, 0x59, 0xc6, 0x22, 0x0a, 0x3e, 0x6f, 0xcb, 0xf8, 0x0b, 0xa0, 0x11, 0x8a, 0xcd, 0x23, 0x42, 0x56, 0x3f, 0xbd, 0xbc, 0x1f, 0x7c, 0x9d, 0xba, 0x7e, 0xa2, 0xc0, 0x72, 0xaf, 0xc8, 0xae, 0x21, 0x28, 0xe3, 0xeb, 0xca, 0x06, 0x44, 0xff, 0xd8, 0x16, 0x3e, 0x80, 0xa1, 0xa5, 0x57, 0xd9, 0xd3, 0x90, 0x34, 0xcc, 0xd9, 0xdb, 0xd1, 0x2c, 0x88, 0x55, 0xa6, 0xf9, 0x16, 0x5b, 0x08, 0x01, 0x83, 0x9c, 0xf6, 0xe0, 0x7a, 0x9f, 0xba, 0x4c, 0x64, 0xd9, 0xc0, 0x99, 0xe1, 0x54, 0x10, 0xe2, 0x90, 0xe6, 0x77, 0x03, 0x1b, 0x65, 0xcf, 0x7d, 0xeb, 0x00, 0x79, 0xbd, 0xad, 0xc5, 0x73, 0xcc, 0x05, 0x6d, 0x76, 0x66, 0xd9, 0x5d, 0x03, 0x3a, 0x0b, 0x6b, 0xdb, 0xa7, 0xec, };
15685 static const u8 ed25519_682_test_vectors_expected_sig[] = {
15686 	0xb8, 0x32, 0x97, 0xcc, 0xdd, 0x6d, 0x00, 0x98, 0xeb, 0xf5, 0xd1, 0x32, 0xd1, 0x74, 0xde, 0x19, 0x58, 0x31, 0x1a, 0x76, 0x6b, 0xcc, 0x4d, 0xa1, 0x5f, 0x86, 0x4d, 0x80, 0x1f, 0x38, 0xe0, 0x9d, 0x61, 0x3e, 0x7a, 0xa8, 0xc3, 0x36, 0x30, 0x27, 0x35, 0xd7, 0x5b, 0xe4, 0x16, 0x6d, 0x73, 0xb0, 0x18, 0x4b, 0x0e, 0x0b, 0xc5, 0xef, 0x39, 0xed, 0xbc, 0xcb, 0x6e, 0x0e, 0x61, 0xaf, 0xeb, 0x0c, };
15687 static const ec_test_case ed25519_682_test_case = {
15688 	.name = "EDDSA25519-SHA512/wei25519 682",
15689 	.ec_str_p = &wei25519_str_params,
15690 	.priv_key = ed25519_682_test_vectors_priv_key,
15691 	.priv_key_len = sizeof(ed25519_682_test_vectors_priv_key),
15692 	.nn_random = NULL,
15693 	.hash_type = SHA512,
15694 	.msg = (const char *)ed25519_682_test_vectors_message,
15695 	.msglen = sizeof(ed25519_682_test_vectors_message),
15696 	.sig_type = EDDSA25519,
15697 	.exp_sig = ed25519_682_test_vectors_expected_sig,
15698 	.exp_siglen = sizeof(ed25519_682_test_vectors_expected_sig),
15699 	.adata = NULL,
15700 	.adata_len = 0
15701 };
15702 
15703 /************************************************/
15704 static const u8 ed25519_683_test_vectors_priv_key[] = {
15705 	0x2c, 0xab, 0x5b, 0xf5, 0x5f, 0xfa, 0x91, 0x4e, 0x9a, 0xd0, 0x76, 0x22, 0x19, 0x0d, 0x34, 0x3e, 0xc5, 0x5c, 0x13, 0xcd, 0x91, 0xb3, 0x88, 0xcb, 0x75, 0x00, 0xff, 0xe0, 0x6d, 0xf7, 0xc1, 0x80, };
15706 static const u8 ed25519_683_test_vectors_message[] = {
15707 	0x2c, 0x2d, 0x04, 0xdc, 0x3a, 0xd1, 0x98, 0x23, 0x59, 0xec, 0xd5, 0xbc, 0x3e, 0xe0, 0x35, 0xf3, 0x49, 0x8e, 0xed, 0xff, 0x61, 0x04, 0xa9, 0x3c, 0x60, 0x2a, 0xf2, 0x17, 0x9a, 0xeb, 0x2c, 0xb1, 0xf4, 0x1c, 0x5c, 0xdb, 0x0a, 0x77, 0xb1, 0x24, 0xf9, 0x46, 0xaa, 0x8a, 0x82, 0x4a, 0xa3, 0x07, 0x6c, 0x2e, 0x1a, 0xcf, 0xd4, 0x8f, 0x68, 0x07, 0x0b, 0x26, 0x27, 0x6a, 0x65, 0x6b, 0x4a, 0x47, 0x58, 0xab, 0x15, 0x1a, 0x6a, 0x9c, 0x41, 0xbd, 0x74, 0xe0, 0x9b, 0xbd, 0x9a, 0xdc, 0xce, 0x1e, 0x87, 0xa0, 0xa8, 0x0d, 0x17, 0xfd, 0x92, 0xe8, 0x5e, 0x4b, 0xda, 0x47, 0x2c, 0x98, 0x8b, 0x6b, 0xb1, 0x18, 0x3b, 0x7e, 0xe5, 0x9a, 0x09, 0xd8, 0x05, 0x70, 0x46, 0x6d, 0xb9, 0x0d, 0xd3, 0x74, 0x95, 0x79, 0xc4, 0xeb, 0x19, 0xab, 0x75, 0xfc, 0x15, 0x2e, 0xcd, 0xcd, 0x68, 0xcd, 0x10, 0x78, 0xef, 0x06, 0xe5, 0x93, 0xc7, 0x35, 0x16, 0xfa, 0x82, 0x91, 0x48, 0x1a, 0x66, 0x7d, 0x3f, 0x95, 0xbf, 0xeb, 0x14, 0x4b, 0xab, 0x59, 0xd6, 0xdd, 0xc7, 0x3a, 0x27, 0x95, 0xc1, 0x01, 0x7e, 0x09, 0x53, 0x6b, 0x31, 0x62, 0xe4, 0xbc, 0x58, 0xf8, 0xea, 0xd3, 0x89, 0x57, 0x01, 0x8c, 0xfe, 0xc7, 0x2b, 0xad, 0xbf, 0x22, 0x81, 0x9a, 0xb0, 0xb4, 0x06, 0xc6, 0x47, 0x30, 0xfc, 0x73, 0xfd, 0x9e, 0xe6, 0x1f, 0x74, 0x18, 0x7e, 0xda, 0x91, 0xed, 0x4e, 0x79, 0x93, 0xe6, 0x68, 0x84, 0xaf, 0x43, 0xef, 0x4c, 0x6b, 0xf7, 0xf7, 0xc3, 0x79, 0xe8, 0xf0, 0xf6, 0x3d, 0xcb, 0x80, 0x41, 0xe2, 0x6b, 0x8b, 0x82, 0x92, 0xb6, 0xb6, 0xd1, 0x90, 0xe4, 0xad, 0xf4, 0x30, 0xfa, 0x82, 0xdd, 0x74, 0xc5, 0x73, 0x85, 0xb9, 0x19, 0xc4, 0x46, 0xdb, 0x37, 0xb5, 0xe8, 0x76, 0x7e, 0x4a, 0x0c, 0x95, 0x01, 0x3b, 0xe8, 0x9b, 0x2b, 0xc4, 0xe9, 0xfd, 0x62, 0x75, 0x4a, 0x84, 0x44, 0x18, 0x40, 0x09, 0x68, 0xae, 0xd2, 0xdd, 0x32, 0x8d, 0x7b, 0x1d, 0xc9, 0x1e, 0x1a, 0x2b, 0x30, 0x09, 0xdc, 0x7a, 0xd1, 0x40, 0xa0, 0x68, 0x6f, 0x67, 0x31, 0x68, 0xa6, 0x0e, 0x88, 0xd8, 0x0c, 0x52, 0x0f, 0xc2, 0xdc, 0xfc, 0x56, 0xca, 0x9d, 0x4b, 0x0c, 0x88, 0x85, 0x90, 0x99, 0x23, 0x07, 0x14, 0xde, 0xc8, 0x3d, 0x26, 0xb4, 0x63, 0x05, 0x54, 0xdc, 0xb9, 0xc4, 0x90, 0x18, 0x95, 0xf7, 0x8f, 0x38, 0x34, 0xb0, 0x97, 0x66, 0xb6, 0x7a, 0x46, 0x5d, 0xe8, 0xc9, 0x49, 0x00, 0x65, 0xbf, 0x56, 0x83, 0x39, 0x24, 0x33, 0x99, 0xfd, 0xc9, 0xd5, 0x10, 0x03, 0x24, 0x66, 0x7c, 0x5a, 0xb2, 0x8f, 0x35, 0xc0, 0x0f, 0x61, 0x25, 0x63, 0x8e, 0x61, 0xda, 0xb7, 0x0d, 0x1e, 0xec, 0x48, 0x95, 0x1d, 0xe0, 0xfb, 0x3f, 0x7b, 0x23, 0xd3, 0xcd, 0x98, 0x24, 0x37, 0xc6, 0x34, 0x73, 0x41, 0x5b, 0xef, 0x37, 0x4a, 0x66, 0x32, 0x96, 0xf2, 0x98, 0x6b, 0x1a, 0xe9, 0x57, 0x9b, 0x9f, 0xfc, 0xe7, 0x1e, 0xc3, 0x5e, 0xec, 0xa1, 0x16, 0xd1, 0x94, 0xf8, 0xfb, 0xa9, 0xa4, 0x5a, 0x91, 0xba, 0xe2, 0x7a, 0xc4, 0x55, 0xdb, 0x71, 0xa6, 0xb0, 0x1a, 0x72, 0x9d, 0x0c, 0x13, 0x5f, 0xcd, 0xcb, 0xc2, 0x3e, 0x50, 0x4a, 0x29, 0x43, 0xc0, 0x0a, 0xa4, 0x20, 0x70, 0x51, 0x9d, 0x9c, 0xd7, 0x7a, 0xe6, 0x75, 0x4f, 0x31, 0xeb, 0x46, 0xa3, 0xe5, 0xbe, 0x9e, 0xeb, 0x3f, 0xc8, 0xd3, 0x1f, 0xf1, 0x82, 0xda, 0x9b, 0x08, 0x7b, 0xe3, 0x46, 0x2c, 0x84, 0x59, 0x12, 0x6e, 0x86, 0x29, 0x09, 0x23, 0x2f, 0xd5, 0xf2, 0xd8, 0x9c, 0x01, 0x81, 0x59, 0x57, 0x61, 0x1e, 0x6a, 0xe7, 0xca, 0xa9, 0x8b, 0x60, 0x53, 0x77, 0x6a, 0x77, 0x15, 0xc2, 0xf9, 0x3c, 0xcf, 0x03, 0x08, 0x87, 0x03, 0x0c, 0x56, 0xc2, 0xb8, 0x22, 0x6d, 0xae, 0x29, 0x77, 0x99, 0x5a, 0x6d, 0x3f, 0x1e, 0x9d, 0x79, 0x11, 0xa9, 0xc9, 0xd2, 0xa3, 0x03, 0xf0, 0xe0, 0x1f, 0x32, 0x33, 0x8e, 0xfd, 0xaf, 0x8e, 0xe6, 0x3f, 0xc4, 0x1b, 0x25, 0x39, 0x9c, 0xff, 0xd0, 0xb3, 0x5f, 0x7e, 0xe5, 0x67, 0x6b, 0xd8, 0xfd, 0x3d, 0xa2, 0xcb, 0xee, 0x4a, 0xe2, 0xea, 0x98, 0x08, 0xd7, 0xe7, 0x35, 0x83, 0xd9, 0x94, 0x33, 0x99, 0x31, 0x46, 0x67, 0x4a, 0x40, 0x40, 0xf4, 0x2f, 0x63, 0xd1, 0xb3, 0x13, 0x5c, 0xc7, 0x97, 0xa8, 0xd8, 0xf0, 0xb8, 0x85, 0x73, 0xa3, 0x28, 0x90, 0x69, 0x6c, 0xac, 0x94, 0x39, 0xd1, 0xe1, 0x5d, 0x19, 0x6d, 0x90, 0x90, 0xb6, 0x2b, 0x6d, 0xb7, 0xe6, 0x3c, 0x96, 0x47, 0x2d, 0x94, 0x6e, 0x66, 0x8c, 0xbd, 0xa1, 0xf4, 0xdb, 0x88, 0x93, 0x00, 0xcd, 0xcc, 0x25, 0xe8, 0x4c, 0x9f, 0x38, 0x57, 0xd1, 0xd9, 0xe5, 0x32, 0x41, 0xcf, 0x62, 0x5f, 0x39, 0x09, 0xaf, 0x1c, 0x8a, 0xaf, 0xf4, 0x30, 0x9f, 0x68, 0xf6, 0x54, 0xb7, 0xa1, 0x5b, 0x67, 0x71, 0x1c, 0x5b, 0x7f, 0x9d, 0xe7, 0x67, 0x75, };
15708 static const u8 ed25519_683_test_vectors_expected_sig[] = {
15709 	0x4c, 0xf0, 0x8f, 0x4f, 0xab, 0xbd, 0x06, 0xdc, 0xcb, 0xcc, 0xe2, 0xa7, 0xa5, 0x94, 0x1f, 0xe9, 0xaf, 0xdd, 0xc4, 0xd2, 0xd0, 0xbc, 0x80, 0x80, 0x2e, 0x93, 0xb1, 0x2c, 0xb1, 0x35, 0xd3, 0xac, 0xf6, 0x51, 0x1e, 0x0f, 0xe4, 0x11, 0x3c, 0x5e, 0x3c, 0x55, 0x41, 0xb2, 0x7d, 0x3a, 0x21, 0x50, 0xa7, 0x57, 0x74, 0x2a, 0xc6, 0x5f, 0x95, 0xa9, 0xce, 0x66, 0x73, 0xff, 0x0c, 0xd2, 0x1c, 0x0f, };
15710 static const ec_test_case ed25519_683_test_case = {
15711 	.name = "EDDSA25519-SHA512/wei25519 683",
15712 	.ec_str_p = &wei25519_str_params,
15713 	.priv_key = ed25519_683_test_vectors_priv_key,
15714 	.priv_key_len = sizeof(ed25519_683_test_vectors_priv_key),
15715 	.nn_random = NULL,
15716 	.hash_type = SHA512,
15717 	.msg = (const char *)ed25519_683_test_vectors_message,
15718 	.msglen = sizeof(ed25519_683_test_vectors_message),
15719 	.sig_type = EDDSA25519,
15720 	.exp_sig = ed25519_683_test_vectors_expected_sig,
15721 	.exp_siglen = sizeof(ed25519_683_test_vectors_expected_sig),
15722 	.adata = NULL,
15723 	.adata_len = 0
15724 };
15725 
15726 /************************************************/
15727 static const u8 ed25519_684_test_vectors_priv_key[] = {
15728 	0xdd, 0x7b, 0x59, 0xa3, 0x3d, 0x97, 0x0b, 0xef, 0x62, 0xe0, 0xe2, 0x1a, 0x7b, 0x6e, 0x4c, 0x30, 0x96, 0x06, 0x86, 0xf1, 0x7f, 0x49, 0xaf, 0xdb, 0x4a, 0x9f, 0x4e, 0x80, 0x8e, 0x35, 0x5c, 0x7f, };
15729 static const u8 ed25519_684_test_vectors_message[] = {
15730 	0x75, 0x58, 0x03, 0x67, 0x93, 0x05, 0x18, 0x16, 0x8b, 0x0a, 0x76, 0x4d, 0x09, 0x58, 0xbe, 0xc4, 0xfc, 0x46, 0xcf, 0x59, 0x19, 0x99, 0xeb, 0x37, 0x37, 0xe4, 0x2a, 0x02, 0xea, 0x72, 0xd2, 0x10, 0xda, 0xad, 0x53, 0xe5, 0x4a, 0x7c, 0x2c, 0x13, 0x4a, 0x6d, 0x47, 0x83, 0x37, 0xd2, 0x63, 0x33, 0x68, 0x54, 0x81, 0x70, 0xed, 0xef, 0x0d, 0x85, 0x17, 0x9f, 0x30, 0x23, 0xe1, 0x50, 0x38, 0x68, 0xa6, 0xe5, 0xe2, 0x77, 0x5e, 0x41, 0x2a, 0xc0, 0x5f, 0x05, 0x89, 0xd4, 0x2a, 0x37, 0x7e, 0x75, 0xaa, 0x6b, 0x8f, 0x52, 0x20, 0xa7, 0x69, 0x9a, 0xe8, 0xaf, 0xf0, 0x10, 0x94, 0xec, 0x46, 0x9d, 0x63, 0x61, 0xd3, 0xe8, 0xf3, 0x86, 0x15, 0xed, 0xcd, 0xa4, 0xd2, 0xd5, 0x28, 0x9a, 0xcf, 0x73, 0xdb, 0x64, 0x56, 0x98, 0x57, 0x80, 0xc9, 0x2e, 0x07, 0xf6, 0x2c, 0x77, 0xa9, 0x09, 0xfb, 0x6e, 0xf5, 0x98, 0x82, 0x20, 0x62, 0xbd, 0x57, 0x2b, 0xf7, 0x05, 0x8d, 0xcb, 0x83, 0x5e, 0xf3, 0x44, 0x3d, 0x3e, 0x47, 0xb5, 0xc6, 0x03, 0xd9, 0x27, 0x36, 0xdd, 0x1d, 0xf2, 0x6b, 0xe4, 0xb9, 0x28, 0x3b, 0x76, 0xe3, 0x21, 0xd5, 0x5c, 0xe2, 0xb6, 0x38, 0xcd, 0xe2, 0x25, 0x77, 0xca, 0x59, 0xc9, 0x63, 0xc2, 0x47, 0x95, 0x56, 0xc5, 0x75, 0xcc, 0xb0, 0xd6, 0xd1, 0x8c, 0x80, 0x4e, 0x2e, 0xb0, 0x1f, 0xf5, 0x35, 0x81, 0xeb, 0x04, 0x0f, 0xfd, 0x2c, 0xc4, 0x67, 0x60, 0x73, 0x7a, 0x74, 0x67, 0x2e, 0xa6, 0xbf, 0x78, 0x05, 0x8a, 0x6a, 0x0a, 0x1f, 0x5e, 0xbf, 0x56, 0xde, 0xcb, 0xf9, 0x4b, 0x54, 0xaf, 0xb2, 0x3c, 0x11, 0xd3, 0x41, 0x79, 0xbf, 0x09, 0x76, 0xb4, 0x15, 0x80, 0x17, 0xd4, 0x07, 0xc9, 0x5a, 0x40, 0x1f, 0xa6, 0xf9, 0x62, 0x4d, 0x77, 0x13, 0x5e, 0xae, 0x81, 0x41, 0xeb, 0xea, 0x9f, 0x35, 0xd5, 0xf5, 0x1b, 0x3d, 0xed, 0x99, 0x5c, 0x7f, 0x70, 0xc0, 0x25, 0xb0, 0x94, 0xad, 0xef, 0x2b, 0x07, 0x1f, 0x97, 0x11, 0x55, 0xd7, 0x79, 0x6d, 0x61, 0x3a, 0x55, 0x0d, 0x09, 0xe7, 0xf4, 0xdf, 0xc3, 0x45, 0x17, 0xb3, 0xf8, 0xfa, 0x43, 0x93, 0x28, 0x6a, 0x2b, 0x22, 0x80, 0x17, 0xda, 0xf2, 0xe0, 0x15, 0x38, 0x7e, 0x13, 0x52, 0x7f, 0x63, 0x66, 0x1d, 0x3c, 0x13, 0xe7, 0x8e, 0x90, 0xfb, 0x29, 0x55, 0xee, 0xe3, 0x45, 0x73, 0x91, 0x19, 0xb7, 0x91, 0xf0, 0x5b, 0x07, 0xc8, 0xf4, 0x2a, 0x43, 0x6e, 0xfc, 0xad, 0x1e, 0xc5, 0xea, 0x10, 0xf3, 0x08, 0xf8, 0xe2, 0x3c, 0xa9, 0x8b, 0xc6, 0x5a, 0x5f, 0xd9, 0x39, 0x3e, 0xfa, 0xaf, 0xe5, 0xcd, 0xef, 0xba, 0x81, 0x05, 0x81, 0x70, 0xcc, 0x54, 0x93, 0xc0, 0x0c, 0xed, 0xf2, 0x54, 0x09, 0x74, 0x35, 0xd2, 0xe2, 0xfd, 0xe5, 0x5f, 0x86, 0x6b, 0xb8, 0x2d, 0xbd, 0xfb, 0x91, 0x54, 0x34, 0x49, 0x74, 0x86, 0x63, 0x59, 0x16, 0x7b, 0x46, 0x6c, 0xaa, 0x90, 0x9b, 0x91, 0x53, 0x0c, 0x9c, 0x7e, 0xe8, 0xc5, 0x3f, 0xa9, 0x01, 0x64, 0xbb, 0xd0, 0xb1, 0xfa, 0xdb, 0xdc, 0xd0, 0x81, 0x27, 0xf1, 0x9b, 0xe5, 0x03, 0x30, 0x71, 0x51, 0x8d, 0x3c, 0xf1, 0x0a, 0xe6, 0xbd, 0x6f, 0x98, 0x27, 0xe1, 0x20, 0x6f, 0x5e, 0xc0, 0x95, 0xc1, 0x98, 0x61, 0x70, 0xe8, 0xd5, 0xd8, 0xe7, 0x2e, 0x57, 0xd4, 0x22, 0x87, 0x01, 0xdf, 0x2a, 0x48, 0xc9, 0x54, 0x87, 0x30, 0x56, 0xcf, 0xdf, 0xba, 0xaf, 0xb1, 0x0e, 0x46, 0xa0, 0xc1, 0xf1, 0x44, 0xb1, 0xa0, 0xea, 0xcd, 0xd2, 0xcb, 0x66, 0xbb, 0x91, 0x2a, 0xc4, 0x71, 0x78, 0x7d, 0xab, 0xe4, 0x83, 0x53, 0x85, 0x91, 0x20, 0xb0, 0x34, 0x03, 0x56, 0x7c, 0x41, 0x5d, 0xdb, 0x88, 0xfc, 0x0d, 0x7f, 0xba, 0x40, 0x69, 0xbb, 0xfe, 0xf4, 0x06, 0xee, 0xd7, 0x24, 0xa1, 0x1a, 0xbc, 0x04, 0x1e, 0x8e, 0x7b, 0xeb, 0x66, 0x3d, 0x0d, 0xc9, 0x9d, 0xce, 0xf3, 0xac, 0x6a, 0x14, 0x90, 0x07, 0xb4, 0x2d, 0xd1, 0xf2, 0x2a, 0x77, 0xdd, 0x52, 0x90, 0x18, 0x14, 0x32, 0x51, 0x72, 0x22, 0x4a, 0x27, 0x78, 0xf3, 0x66, 0xfb, 0x9e, 0xb0, 0x2c, 0x81, 0x2b, 0x84, 0x2a, 0x42, 0x84, 0x25, 0x61, 0xc6, 0x8f, 0x2a, 0xc2, 0x31, 0xc2, 0x6c, 0xe9, 0xe8, 0xb1, 0x9a, 0xe9, 0x1e, 0xbf, 0xad, 0x3c, 0x0e, 0x9f, 0x66, 0x36, 0x3a, 0x13, 0xec, 0xd8, 0xb8, 0x97, 0xa3, 0xd0, 0x0a, 0x26, 0xd2, 0x57, 0x64, 0x8d, 0x56, 0xc6, 0x74, 0x74, 0x41, 0xca, 0x1c, 0x6e, 0xe9, 0x9f, 0x08, 0xdd, 0xad, 0x25, 0xd1, 0x16, 0xdf, 0xad, 0xab, 0x03, 0x83, 0x00, 0x0d, 0x3d, 0x72, 0x25, 0xcf, 0x2e, 0xff, 0x70, 0x76, 0xb2, 0xad, 0xab, 0x95, 0x22, 0x29, 0x25, 0x55, 0xf3, 0x19, 0x32, 0x06, 0x78, 0x60, 0x00, 0xd4, 0x2c, 0xa3, 0x4d, 0x70, 0x8d, 0xc0, 0x42, 0x84, 0xa9, 0x4d, 0x17, 0x4c, 0xc9, 0x2f, 0x10, 0x2e, 0xfd, 0xdf, 0x31, 0x48, 0xc2, 0x99, 0x69, 0x16, 0xd4, };
15731 static const u8 ed25519_684_test_vectors_expected_sig[] = {
15732 	0x87, 0x29, 0x4d, 0x22, 0xd4, 0xad, 0x0d, 0x08, 0x14, 0xe2, 0xd6, 0xd5, 0xfa, 0xf5, 0x57, 0x49, 0xe9, 0xb3, 0x98, 0x03, 0xb4, 0xd4, 0xb7, 0x87, 0x9e, 0x60, 0xb7, 0x77, 0xc1, 0xfc, 0x41, 0x58, 0x4f, 0xe1, 0x51, 0x35, 0xba, 0x11, 0x23, 0xff, 0x5f, 0x20, 0x0d, 0xb3, 0x5a, 0x34, 0x68, 0xdd, 0x4d, 0x58, 0xda, 0xd7, 0x7b, 0xd9, 0x6e, 0xe2, 0xb8, 0x88, 0xa5, 0xa8, 0xb1, 0x8c, 0x32, 0x04, };
15733 static const ec_test_case ed25519_684_test_case = {
15734 	.name = "EDDSA25519-SHA512/wei25519 684",
15735 	.ec_str_p = &wei25519_str_params,
15736 	.priv_key = ed25519_684_test_vectors_priv_key,
15737 	.priv_key_len = sizeof(ed25519_684_test_vectors_priv_key),
15738 	.nn_random = NULL,
15739 	.hash_type = SHA512,
15740 	.msg = (const char *)ed25519_684_test_vectors_message,
15741 	.msglen = sizeof(ed25519_684_test_vectors_message),
15742 	.sig_type = EDDSA25519,
15743 	.exp_sig = ed25519_684_test_vectors_expected_sig,
15744 	.exp_siglen = sizeof(ed25519_684_test_vectors_expected_sig),
15745 	.adata = NULL,
15746 	.adata_len = 0
15747 };
15748 
15749 /************************************************/
15750 static const u8 ed25519_685_test_vectors_priv_key[] = {
15751 	0xd8, 0x80, 0xd2, 0xfb, 0x06, 0x26, 0x2f, 0x57, 0xab, 0x87, 0x78, 0xe3, 0x3d, 0x16, 0xb4, 0x73, 0x06, 0x09, 0x78, 0xa6, 0x54, 0x9c, 0xdb, 0xcd, 0x55, 0x86, 0xba, 0x81, 0x05, 0xf5, 0xac, 0xa8, };
15752 static const u8 ed25519_685_test_vectors_message[] = {
15753 	0x11, 0x47, 0x43, 0xe8, 0x2a, 0x09, 0x93, 0xce, 0xc9, 0x70, 0x50, 0x67, 0xab, 0xd7, 0x7c, 0x16, 0x8b, 0x53, 0x67, 0x7e, 0xde, 0x5c, 0x15, 0x9f, 0xad, 0x36, 0xf0, 0x6f, 0xc1, 0xa1, 0x4a, 0xcd, 0x77, 0xf8, 0x83, 0x79, 0x9e, 0xd9, 0x88, 0x3f, 0x99, 0x15, 0xae, 0xa6, 0x38, 0xec, 0x17, 0x41, 0xf3, 0xf4, 0x21, 0x58, 0x55, 0xfb, 0x5b, 0x07, 0xdf, 0x37, 0x93, 0xbb, 0xe5, 0xb5, 0x68, 0xeb, 0x35, 0x94, 0x39, 0x1a, 0x9e, 0xf5, 0x72, 0x7f, 0xab, 0x93, 0xe5, 0x74, 0x69, 0xb3, 0x7d, 0xe1, 0x25, 0xb1, 0xe9, 0xf2, 0xe6, 0xfe, 0x2c, 0x3d, 0x1a, 0x10, 0xec, 0xf8, 0x7b, 0x6c, 0x0a, 0x66, 0x5c, 0x6d, 0x46, 0x0a, 0x17, 0x0e, 0xef, 0xb9, 0xbf, 0x71, 0x6c, 0xd8, 0xfa, 0xea, 0x97, 0x64, 0xf5, 0x79, 0xff, 0x34, 0xeb, 0xfa, 0x9c, 0x4c, 0xfb, 0x34, 0x70, 0x6d, 0x8d, 0xd7, 0xc9, 0xeb, 0x1d, 0x10, 0xb2, 0xdf, 0x46, 0x0a, 0x46, 0xbb, 0x57, 0x89, 0x43, 0x0b, 0xf4, 0x49, 0x15, 0x8b, 0x58, 0x24, 0xf2, 0xa3, 0xa7, 0xb9, 0x18, 0xb3, 0x3a, 0xcf, 0x2d, 0x9e, 0xbe, 0x90, 0x21, 0x6d, 0x1b, 0x7c, 0xbf, 0x4a, 0xf7, 0x70, 0xc5, 0xdb, 0x95, 0xfc, 0x62, 0xff, 0x3a, 0x3c, 0x38, 0x5c, 0x3a, 0x82, 0x17, 0x85, 0x3b, 0x73, 0x46, 0x63, 0x4a, 0xaf, 0x30, 0x60, 0x72, 0x88, 0xdb, 0x0c, 0x48, 0x3b, 0xd4, 0xc2, 0x22, 0xeb, 0x33, 0x2c, 0xb8, 0x9d, 0xc4, 0xa2, 0x17, 0xe6, 0x33, 0x4a, 0x26, 0x84, 0x13, 0xa3, 0x90, 0xbb, 0x37, 0x1a, 0xec, 0x35, 0x5f, 0xbe, 0x4c, 0x73, 0x6f, 0x7d, 0xa7, 0x5f, 0x9c, 0x88, 0x75, 0x41, 0xa2, 0xb7, 0xd0, 0xda, 0xc0, 0x18, 0xb6, 0x13, 0x8f, 0x02, 0x1e, 0x77, 0x26, 0x6d, 0xde, 0xce, 0x84, 0x68, 0x45, 0x2a, 0xda, 0x39, 0xf5, 0xe6, 0x3d, 0x02, 0x09, 0xb9, 0xd6, 0xda, 0xbf, 0x97, 0x54, 0x13, 0x25, 0x6d, 0xca, 0xa1, 0x5a, 0xc1, 0x4b, 0x60, 0x68, 0xe1, 0x77, 0x05, 0x6c, 0x7b, 0xf0, 0xf0, 0xf7, 0xc8, 0x84, 0xa3, 0x40, 0x20, 0x32, 0x29, 0x8c, 0xd5, 0x59, 0xa6, 0x31, 0x20, 0x39, 0x40, 0x06, 0x32, 0x32, 0x7f, 0x9c, 0x0e, 0x76, 0x3e, 0x52, 0x79, 0x8c, 0xb1, 0x77, 0xda, 0x44, 0x75, 0xe4, 0xb2, 0x40, 0x5c, 0x15, 0x7c, 0xa4, 0x27, 0x74, 0x11, 0x08, 0xd3, 0x3e, 0xd0, 0xb7, 0xa3, 0xf5, 0x34, 0x38, 0xce, 0x6b, 0x72, 0x5c, 0x6d, 0xd5, 0x81, 0x4a, 0xf5, 0x1c, 0xfa, 0x45, 0xdb, 0xce, 0xd5, 0x57, 0xf7, 0x26, 0xdb, 0x13, 0x0d, 0x55, 0xcd, 0xe7, 0x53, 0x3b, 0xc2, 0x09, 0x2d, 0x6b, 0x69, 0x9c, 0x2c, 0x87, 0x0a, 0xf2, 0x82, 0x73, 0x1e, 0x18, 0xd6, 0x51, 0xae, 0x85, 0xb3, 0xdb, 0x4b, 0xa0, 0x28, 0x53, 0xf8, 0xc8, 0x7f, 0xd5, 0xe3, 0xab, 0x69, 0xbc, 0x57, 0xb0, 0x8b, 0x81, 0xf8, 0x3c, 0x23, 0x9c, 0xcf, 0x22, 0xe8, 0x17, 0xe2, 0xad, 0xa4, 0xd0, 0xad, 0x14, 0x48, 0x7e, 0xd1, 0x46, 0x12, 0xc8, 0xb0, 0x97, 0x3e, 0xc0, 0x65, 0x0a, 0x55, 0xf6, 0xbf, 0x9a, 0xf4, 0xae, 0x92, 0x56, 0xad, 0x35, 0x46, 0xa3, 0xf6, 0x7d, 0xd3, 0x5d, 0x98, 0x7e, 0xf2, 0x19, 0x09, 0xa9, 0x4c, 0x50, 0xf0, 0xef, 0x06, 0x40, 0xe7, 0x55, 0xb1, 0xc4, 0xe1, 0xa0, 0x12, 0xaf, 0x0d, 0x31, 0x76, 0x6e, 0xeb, 0x5d, 0xf3, 0x1c, 0xd1, 0x04, 0xc6, 0x4e, 0xb6, 0x2e, 0xb4, 0xef, 0xb1, 0x39, 0xcf, 0x30, 0x57, 0x69, 0x40, 0x1d, 0x21, 0x3f, 0x96, 0xa4, 0x88, 0xd5, 0xee, 0x7e, 0x3c, 0xe3, 0x2b, 0x01, 0x92, 0xee, 0x8f, 0x08, 0x31, 0xbf, 0xbe, 0x8f, 0xe9, 0x5d, 0xe9, 0x56, 0x88, 0x6b, 0x52, 0x4d, 0x33, 0x19, 0xb7, 0x3f, 0xd5, 0x6d, 0xc6, 0x0e, 0x9f, 0x1c, 0x72, 0xd7, 0x81, 0x55, 0xa9, 0x7c, 0x6f, 0x43, 0x69, 0x7b, 0x20, 0x46, 0x6b, 0x3e, 0x7a, 0xeb, 0xd3, 0x57, 0xb9, 0x16, 0x96, 0xe7, 0x34, 0x8f, 0x45, 0x99, 0xb3, 0x4f, 0x35, 0x91, 0xed, 0xdf, 0xce, 0x2a, 0x7b, 0xd8, 0x49, 0xab, 0x16, 0xf7, 0xb4, 0x3e, 0xbb, 0x16, 0xe2, 0x3d, 0x6f, 0x52, 0x10, 0xef, 0xa3, 0x0a, 0xb3, 0xba, 0x8d, 0x32, 0xc4, 0x06, 0x62, 0xb8, 0x66, 0x2f, 0xd9, 0x11, 0x54, 0x4b, 0xc2, 0x45, 0x8c, 0x65, 0x69, 0xef, 0x75, 0xa9, 0xb9, 0xdf, 0x6a, 0x0f, 0x6d, 0x80, 0xd6, 0x58, 0xba, 0x86, 0xb2, 0x41, 0xca, 0x19, 0xce, 0x9a, 0x6f, 0xcf, 0x01, 0xd3, 0xda, 0xa9, 0x5a, 0xfb, 0x59, 0xc3, 0xd8, 0x9a, 0x18, 0xb9, 0x48, 0x62, 0x13, 0x94, 0x32, 0x7f, 0xc5, 0xe9, 0x20, 0xa7, 0x5f, 0x98, 0xf5, 0xe2, 0xb3, 0xd6, 0xc9, 0x5f, 0xd8, 0x52, 0xad, 0xf5, 0x67, 0xb6, 0xd3, 0x7c, 0x54, 0xd2, 0x97, 0x08, 0x56, 0xa5, 0x99, 0xf7, 0x49, 0xe2, 0xc5, 0x5d, 0xac, 0x7c, 0x23, 0xe3, 0xfb, 0x1a, 0x63, 0xbb, 0x4c, 0xc4, 0x7b, 0x8b, 0x94, 0xf3, 0xd5, 0x89, 0xac, 0x4b, 0xee, 0xf0, 0xaa, 0xd4, 0xe6, 0x29, 0x2f, };
15754 static const u8 ed25519_685_test_vectors_expected_sig[] = {
15755 	0x4c, 0x00, 0xa7, 0x16, 0x68, 0xd3, 0x21, 0x3c, 0x29, 0xc7, 0x04, 0x1c, 0x5a, 0x03, 0x7e, 0xdf, 0x13, 0xc6, 0x51, 0x4b, 0xd0, 0xeb, 0xc8, 0x80, 0xc9, 0x09, 0xca, 0xff, 0x15, 0x06, 0xa4, 0x5d, 0x27, 0x80, 0x9f, 0xb7, 0x4e, 0x66, 0x02, 0xea, 0x2a, 0xad, 0x0f, 0x84, 0x28, 0x31, 0xb7, 0x4f, 0xb3, 0xd6, 0x90, 0x0c, 0xcc, 0x52, 0x06, 0x52, 0xda, 0x28, 0x36, 0x8f, 0xd9, 0x0c, 0xa3, 0x0e, };
15756 static const ec_test_case ed25519_685_test_case = {
15757 	.name = "EDDSA25519-SHA512/wei25519 685",
15758 	.ec_str_p = &wei25519_str_params,
15759 	.priv_key = ed25519_685_test_vectors_priv_key,
15760 	.priv_key_len = sizeof(ed25519_685_test_vectors_priv_key),
15761 	.nn_random = NULL,
15762 	.hash_type = SHA512,
15763 	.msg = (const char *)ed25519_685_test_vectors_message,
15764 	.msglen = sizeof(ed25519_685_test_vectors_message),
15765 	.sig_type = EDDSA25519,
15766 	.exp_sig = ed25519_685_test_vectors_expected_sig,
15767 	.exp_siglen = sizeof(ed25519_685_test_vectors_expected_sig),
15768 	.adata = NULL,
15769 	.adata_len = 0
15770 };
15771 
15772 /************************************************/
15773 static const u8 ed25519_686_test_vectors_priv_key[] = {
15774 	0x58, 0x58, 0x71, 0x94, 0x1c, 0xc2, 0x82, 0xe3, 0x33, 0xd5, 0x7b, 0xbf, 0xc3, 0xd4, 0xae, 0xda, 0x86, 0x2c, 0xfa, 0x0a, 0x37, 0x50, 0x30, 0xcd, 0x59, 0x4b, 0x36, 0x92, 0x84, 0x8c, 0x5f, 0x00, };
15775 static const u8 ed25519_686_test_vectors_message[] = {
15776 	0x65, 0x1c, 0x10, 0x1b, 0x3e, 0x2d, 0xfe, 0xf0, 0x78, 0x3c, 0xe9, 0xf6, 0x1b, 0xd0, 0xa8, 0xbd, 0xc9, 0x30, 0x7a, 0xc0, 0x48, 0x8b, 0x9d, 0xd7, 0x0c, 0xd9, 0x0a, 0x7e, 0xd8, 0xf1, 0x79, 0xa7, 0x89, 0x35, 0x55, 0x62, 0x95, 0xb9, 0x1c, 0xc2, 0xb9, 0x72, 0x11, 0xe3, 0xb9, 0x81, 0xb8, 0xda, 0xfc, 0xb3, 0xd0, 0x6b, 0x76, 0xd0, 0xb6, 0xed, 0xa7, 0xfc, 0x61, 0x94, 0x5c, 0x0e, 0xe2, 0x65, 0x2c, 0x5a, 0xc4, 0x54, 0x25, 0x64, 0x96, 0xcb, 0x82, 0xf9, 0x8c, 0xc1, 0xcc, 0x92, 0xd8, 0x18, 0x93, 0xb1, 0x08, 0x2b, 0x31, 0xb4, 0x7e, 0x6d, 0x22, 0xa2, 0xde, 0x60, 0x9d, 0xe4, 0xce, 0x8d, 0x7c, 0xc4, 0xf4, 0xa1, 0x52, 0xc4, 0x7f, 0x41, 0x0d, 0x7f, 0xc3, 0x7d, 0x38, 0xcc, 0xd6, 0x29, 0xa4, 0xb3, 0x3e, 0x62, 0x21, 0x89, 0x60, 0x81, 0x79, 0x7d, 0x07, 0x53, 0xdd, 0x4f, 0xaa, 0x8a, 0x8b, 0x44, 0xd6, 0xc4, 0x67, 0x71, 0x66, 0xdf, 0xb4, 0xd5, 0x21, 0x54, 0x46, 0x36, 0x0a, 0x3c, 0x28, 0xd8, 0xf6, 0x8e, 0x38, 0xab, 0x54, 0x60, 0x8b, 0x98, 0x82, 0x1b, 0x83, 0xc1, 0x87, 0xb5, 0x39, 0x3a, 0xd8, 0x74, 0xa7, 0x6f, 0x4f, 0x5d, 0x72, 0x94, 0x93, 0xa1, 0xfd, 0x74, 0xcc, 0x77, 0x19, 0xca, 0xea, 0x99, 0x1d, 0x22, 0x9c, 0x5d, 0x0c, 0x8c, 0x4c, 0x5f, 0x89, 0xd8, 0xe4, 0x34, 0x5f, 0x4f, 0x52, 0x21, 0x43, 0x13, 0x41, 0x0b, 0x8c, 0x06, 0xb3, 0x31, 0x5f, 0x45, 0xed, 0x0c, 0x2f, 0x91, 0x38, 0xab, 0x96, 0x6a, 0xec, 0x0a, 0x64, 0x5b, 0x6d, 0xba, 0x76, 0x38, 0x0a, 0x53, 0x91, 0x23, 0xe0, 0xf3, 0x3b, 0x97, 0xf3, 0xd0, 0x60, 0x39, 0x4a, 0x30, 0x53, 0x58, 0x1f, 0xfd, 0xef, 0x3e, 0x6d, 0x36, 0x53, 0x11, 0x66, 0xb5, 0x53, 0xa9, 0xdd, 0xe0, 0x31, 0x05, 0xc0, 0x4a, 0xf6, 0x97, 0xd9, 0x5e, 0x95, 0x21, 0x7f, 0xd6, 0xdc, 0x96, 0x8b, 0xf3, 0xb4, 0x48, 0xd5, 0xf3, 0xa8, 0xe4, 0xf5, 0xae, 0x7e, 0xdc, 0x30, 0xec, 0x78, 0xb1, 0xae, 0xa4, 0xf0, 0xdb, 0x18, 0x9a, 0x94, 0x9a, 0x12, 0x21, 0x38, 0xcd, 0xfb, 0x5f, 0x96, 0x93, 0xdb, 0x00, 0x4b, 0xae, 0xd1, 0xa4, 0x21, 0xdc, 0x44, 0x12, 0x2f, 0x32, 0x72, 0x87, 0xf7, 0x27, 0xcf, 0x98, 0x9f, 0xca, 0xe3, 0xcf, 0x3b, 0xe3, 0xe3, 0xdd, 0x9b, 0x9f, 0x53, 0x50, 0x2c, 0xf5, 0xd9, 0xfb, 0x18, 0x6d, 0xe7, 0x91, 0xd3, 0x10, 0xd1, 0x22, 0x86, 0x9c, 0x9f, 0xc3, 0xb6, 0x95, 0xde, 0xc1, 0x60, 0x74, 0x77, 0xf3, 0xe1, 0x49, 0xe5, 0x2b, 0x63, 0xcf, 0xdf, 0xb0, 0xd9, 0x83, 0xe8, 0x9a, 0xf2, 0xf7, 0x5a, 0x8f, 0x48, 0x98, 0x43, 0xec, 0x05, 0xc5, 0xea, 0x5f, 0x0e, 0x72, 0x1a, 0xca, 0xb3, 0x87, 0xc6, 0x80, 0x25, 0xf2, 0x0a, 0xbe, 0x0d, 0x27, 0xb4, 0xce, 0x29, 0xf4, 0xa6, 0x4f, 0xb7, 0xf8, 0xe8, 0xa3, 0x32, 0x87, 0x3d, 0x3e, 0xd1, 0x21, 0xfb, 0x49, 0x34, 0x14, 0xb8, 0xcb, 0x0c, 0x00, 0xad, 0x3a, 0xb6, 0x16, 0xc5, 0xbe, 0x52, 0x41, 0x47, 0x1a, 0xde, 0xe9, 0xf8, 0xf4, 0x69, 0x74, 0xea, 0xe8, 0x4a, 0x4a, 0x8c, 0xe6, 0xfa, 0xbb, 0x7f, 0x5d, 0x9a, 0x6b, 0x75, 0xa7, 0xe6, 0x70, 0x45, 0x6f, 0xcd, 0xcd, 0x1d, 0x98, 0x2e, 0x8f, 0x82, 0x7a, 0x4b, 0xbb, 0x69, 0xde, 0xc7, 0xe3, 0x05, 0x3d, 0xfe, 0x83, 0x5b, 0x70, 0x30, 0x1b, 0x7b, 0x76, 0x3f, 0x00, 0x04, 0xbc, 0x90, 0x6e, 0x14, 0x55, 0x42, 0xf4, 0x87, 0xb4, 0xdb, 0xa2, 0xed, 0x56, 0x1b, 0xd1, 0xa2, 0x03, 0x06, 0x23, 0x6a, 0xf4, 0xb3, 0x6e, 0x40, 0x68, 0xe8, 0xc0, 0x07, 0xb9, 0x45, 0x4f, 0x87, 0x41, 0xa5, 0xf8, 0xf0, 0x79, 0xec, 0x1d, 0xb8, 0x83, 0x5e, 0xb6, 0x54, 0x42, 0x90, 0xd6, 0xad, 0xb5, 0x2a, 0x70, 0xd7, 0x67, 0x5d, 0x85, 0xdf, 0x4a, 0x9a, 0x12, 0x55, 0xbf, 0xd9, 0x36, 0xc3, 0x31, 0xfe, 0x51, 0xc0, 0x97, 0x7d, 0x12, 0x4b, 0x5a, 0x50, 0x6d, 0x29, 0xc6, 0xee, 0xc3, 0x3c, 0xaa, 0x25, 0xd8, 0xeb, 0x28, 0x95, 0x2d, 0x6f, 0xfb, 0x9d, 0x6e, 0x3d, 0xa8, 0x90, 0x38, 0x2d, 0x88, 0x87, 0x96, 0xd3, 0x74, 0x60, 0x7f, 0x66, 0x43, 0xb8, 0x9e, 0x73, 0x26, 0xd9, 0xed, 0xc4, 0x9a, 0x0f, 0x53, 0xbd, 0xcb, 0x8c, 0xc7, 0x6f, 0xfd, 0x39, 0x3a, 0x77, 0x06, 0x52, 0x2d, 0x04, 0x17, 0x00, 0x36, 0xcc, 0xb6, 0x63, 0x30, 0xdb, 0xac, 0x9d, 0xa7, 0xe6, 0x16, 0x8c, 0xaa, 0x88, 0xcb, 0x62, 0x18, 0x1e, 0x55, 0xa7, 0xb6, 0xd5, 0x21, 0xa2, 0x11, 0x5e, 0x23, 0xe2, 0x02, 0xee, 0x24, 0x80, 0xb5, 0x87, 0xbe, 0x45, 0x01, 0x44, 0x79, 0x79, 0xa8, 0xd7, 0x36, 0xf9, 0x01, 0x2e, 0xcf, 0x00, 0xe6, 0x7b, 0x31, 0xe8, 0x10, 0x4f, 0x6e, 0x7d, 0xf0, 0x8a, 0x96, 0x83, 0xcd, 0xc8, 0x9c, 0x03, 0xa4, 0xe3, 0x7e, 0xe2, 0x29, 0x28, 0xd4, 0x5f, 0xa1, 0x90, 0x94, 0xe0, 0xd6, 0xe7, 0xb4, 0x0b, };
15777 static const u8 ed25519_686_test_vectors_expected_sig[] = {
15778 	0x29, 0x88, 0x56, 0xe5, 0x70, 0x18, 0x8a, 0xef, 0xca, 0xd8, 0x1b, 0xb9, 0x70, 0xf0, 0x76, 0x96, 0x57, 0x70, 0xc2, 0x67, 0x62, 0xfe, 0x29, 0xe6, 0x55, 0x4d, 0xc7, 0xaf, 0xcd, 0xb8, 0x01, 0x72, 0x3b, 0xf6, 0xc7, 0x63, 0xb4, 0xcc, 0xd6, 0x5f, 0x4e, 0x15, 0xd7, 0xd8, 0xea, 0x38, 0xfc, 0xf6, 0x7e, 0xa9, 0xd2, 0x85, 0x90, 0xc7, 0x92, 0x55, 0xc1, 0xcf, 0xeb, 0xa7, 0xb5, 0xe4, 0x5a, 0x00, };
15779 static const ec_test_case ed25519_686_test_case = {
15780 	.name = "EDDSA25519-SHA512/wei25519 686",
15781 	.ec_str_p = &wei25519_str_params,
15782 	.priv_key = ed25519_686_test_vectors_priv_key,
15783 	.priv_key_len = sizeof(ed25519_686_test_vectors_priv_key),
15784 	.nn_random = NULL,
15785 	.hash_type = SHA512,
15786 	.msg = (const char *)ed25519_686_test_vectors_message,
15787 	.msglen = sizeof(ed25519_686_test_vectors_message),
15788 	.sig_type = EDDSA25519,
15789 	.exp_sig = ed25519_686_test_vectors_expected_sig,
15790 	.exp_siglen = sizeof(ed25519_686_test_vectors_expected_sig),
15791 	.adata = NULL,
15792 	.adata_len = 0
15793 };
15794 
15795 /************************************************/
15796 static const u8 ed25519_687_test_vectors_priv_key[] = {
15797 	0x05, 0x88, 0xac, 0xd4, 0xe0, 0x9b, 0xa9, 0x02, 0x74, 0xc8, 0xf3, 0xd1, 0x57, 0x5b, 0x2b, 0xf3, 0x64, 0xa7, 0x76, 0x88, 0x4a, 0x9a, 0xeb, 0x41, 0x03, 0x41, 0x5e, 0x16, 0x3b, 0xa0, 0xbf, 0x81, };
15798 static const u8 ed25519_687_test_vectors_message[] = {
15799 	0xf8, 0x28, 0xf8, 0xc9, 0xda, 0xd2, 0x98, 0xc5, 0xb7, 0x19, 0xda, 0xa8, 0x52, 0xb1, 0x7e, 0x76, 0x25, 0x98, 0xa7, 0x0f, 0x4e, 0xcd, 0x16, 0xa2, 0xfc, 0x59, 0x6e, 0xb0, 0x26, 0x38, 0x99, 0xe9, 0x83, 0xd4, 0x4e, 0xdc, 0xc7, 0xbd, 0x24, 0x0c, 0xb0, 0x76, 0x10, 0x60, 0x0a, 0xe9, 0x6a, 0xac, 0x0d, 0xfc, 0x3b, 0xe3, 0x87, 0xb6, 0x16, 0x85, 0x08, 0x99, 0xb5, 0xcf, 0x44, 0xe1, 0x76, 0x7f, 0xfa, 0xca, 0x3d, 0xf3, 0x81, 0x58, 0x59, 0x84, 0x24, 0xf8, 0x07, 0x14, 0x14, 0xc7, 0x04, 0xe6, 0x0b, 0x42, 0x2a, 0xd7, 0x73, 0x77, 0xfa, 0x7f, 0x6a, 0x8c, 0x5d, 0x0e, 0xbc, 0x02, 0x35, 0xe2, 0xd4, 0x3a, 0x98, 0x4f, 0x3a, 0xdf, 0x75, 0x9e, 0xb1, 0x04, 0x47, 0xf3, 0xc2, 0xf6, 0xb8, 0x0d, 0x5a, 0x11, 0xef, 0x41, 0xd3, 0xa0, 0x98, 0x52, 0xc0, 0x93, 0x2a, 0x1b, 0x9a, 0xc2, 0x3e, 0x6f, 0x40, 0xa1, 0x67, 0xde, 0x21, 0x04, 0x1b, 0xec, 0x88, 0x85, 0xf9, 0x43, 0x3e, 0xb8, 0x0b, 0x95, 0xc9, 0x78, 0x59, 0x58, 0x04, 0x6c, 0xdb, 0x7b, 0xf1, 0x47, 0xa7, 0x99, 0x47, 0x82, 0x3b, 0x41, 0x49, 0xae, 0x05, 0x21, 0xd7, 0xe5, 0xaa, 0xbc, 0x15, 0x64, 0xfa, 0x40, 0x44, 0x10, 0x6e, 0x2e, 0x39, 0x2e, 0x9c, 0x34, 0x44, 0x57, 0xe9, 0x92, 0x93, 0x76, 0xea, 0x9b, 0x42, 0x29, 0xc6, 0xe7, 0x73, 0x8f, 0xe7, 0x90, 0x08, 0xd5, 0x54, 0xc4, 0x29, 0x39, 0x69, 0x14, 0xc3, 0x63, 0x87, 0xf5, 0x79, 0xb4, 0x6b, 0xab, 0x14, 0x6f, 0x6a, 0x95, 0x10, 0xeb, 0x6f, 0x8c, 0x85, 0x55, 0x1c, 0xbd, 0x84, 0xc7, 0xdc, 0x0d, 0x0b, 0x1c, 0x01, 0x0c, 0xcb, 0xa5, 0x96, 0x3a, 0x7f, 0x39, 0xf1, 0x81, 0xe4, 0x4d, 0xbc, 0x98, 0xe4, 0x95, 0xaa, 0x63, 0xc0, 0x10, 0x59, 0xcb, 0xe6, 0xa9, 0x9b, 0x07, 0xb4, 0x49, 0xe7, 0x75, 0x9c, 0x9a, 0xf9, 0xe0, 0xf8, 0xd9, 0x05, 0x4a, 0x67, 0xa3, 0x48, 0xfa, 0x19, 0xd7, 0xf9, 0x1e, 0xc0, 0xa4, 0xd4, 0xf2, 0xc7, 0x02, 0x6c, 0x3b, 0x84, 0x92, 0x59, 0xa3, 0x50, 0x41, 0x7f, 0xd8, 0x6c, 0xab, 0x21, 0x42, 0xe4, 0xcf, 0xe3, 0xc0, 0xaf, 0xbf, 0x25, 0x18, 0x2a, 0x2d, 0x52, 0xbd, 0x2e, 0x0b, 0xc9, 0x20, 0xe8, 0x50, 0x80, 0x83, 0x2b, 0x91, 0xb9, 0x27, 0xb6, 0x29, 0x48, 0xa6, 0x7c, 0x31, 0x7e, 0xb0, 0x90, 0x91, 0x46, 0x1d, 0x49, 0x3e, 0xea, 0x5f, 0xfc, 0x47, 0xbf, 0x08, 0x55, 0x82, 0x96, 0x82, 0x58, 0xa3, 0xc8, 0xdd, 0x81, 0xa8, 0x58, 0x27, 0x0b, 0xdd, 0xaf, 0xe7, 0x92, 0x56, 0x84, 0xa1, 0x5f, 0xfb, 0x51, 0xbc, 0xfa, 0xab, 0x93, 0x1a, 0xfa, 0x46, 0x5e, 0x30, 0x90, 0xe8, 0x6b, 0xe4, 0x1e, 0x35, 0x47, 0xcb, 0xa2, 0x34, 0xb8, 0x5f, 0xe7, 0xdb, 0x70, 0x04, 0x96, 0xa5, 0x05, 0x00, 0x2d, 0xf3, 0xca, 0x4e, 0xae, 0xc7, 0xb9, 0x62, 0x78, 0xc7, 0xd1, 0xa7, 0x7d, 0xb8, 0x34, 0xa9, 0x17, 0x97, 0xbb, 0xb8, 0x26, 0xd0, 0x92, 0xaa, 0x28, 0xb4, 0x95, 0x45, 0xed, 0x3b, 0x1e, 0xda, 0x23, 0xbe, 0x11, 0xa3, 0xf5, 0x28, 0xb9, 0x55, 0xcb, 0x0c, 0x4f, 0xa6, 0x6e, 0x16, 0xe9, 0x57, 0xe5, 0x70, 0x4c, 0xf3, 0x19, 0xe5, 0xf7, 0x9c, 0xc0, 0x9f, 0x2d, 0x05, 0x4e, 0x6d, 0xaf, 0x19, 0xe2, 0x92, 0x6b, 0x11, 0xe1, 0xe4, 0x13, 0xff, 0x82, 0x2c, 0xa1, 0x41, 0xf7, 0xc3, 0xd3, 0x85, 0xae, 0x95, 0xdd, 0x20, 0xb3, 0x46, 0xe5, 0x83, 0xcf, 0xb0, 0xc2, 0x29, 0xec, 0x39, 0xcf, 0x88, 0x9a, 0x54, 0x19, 0xcd, 0x37, 0xbc, 0x18, 0x4e, 0xf5, 0xfb, 0x14, 0x46, 0x22, 0x08, 0x0a, 0x30, 0x2d, 0x9d, 0x77, 0x45, 0xc4, 0x51, 0xf7, 0xd8, 0x82, 0x42, 0xcc, 0x26, 0xb9, 0x16, 0xa3, 0x56, 0x9a, 0xbc, 0x7d, 0x1f, 0x21, 0x6d, 0x57, 0x79, 0x7a, 0x47, 0x2b, 0xc6, 0x21, 0x76, 0x17, 0x58, 0xe8, 0x40, 0xeb, 0x8e, 0x29, 0xbc, 0x8e, 0xfc, 0xb7, 0xaa, 0xfc, 0x7c, 0xf8, 0xf4, 0xe5, 0x93, 0x30, 0xd3, 0x5e, 0xe1, 0x07, 0x49, 0x6d, 0xec, 0x6e, 0x71, 0x4b, 0x1f, 0xa4, 0x30, 0x98, 0x37, 0xbb, 0x47, 0xeb, 0x3a, 0x06, 0xb4, 0x60, 0x4d, 0xd2, 0x07, 0x33, 0xcc, 0x0e, 0xaa, 0xc2, 0x64, 0x9e, 0x18, 0xc0, 0x73, 0x42, 0xef, 0x55, 0xd1, 0x9b, 0x8d, 0x03, 0x95, 0x91, 0xac, 0x28, 0x69, 0xac, 0xc3, 0x4b, 0x6c, 0x3c, 0x1c, 0xa3, 0xcf, 0x26, 0x3f, 0xf8, 0x4c, 0xa4, 0x3a, 0x5f, 0x64, 0x65, 0xba, 0x34, 0x88, 0x8c, 0x10, 0x90, 0x13, 0xb3, 0x2b, 0xfc, 0x0d, 0x0d, 0x15, 0xf5, 0xa7, 0x6c, 0xec, 0x27, 0x0a, 0xb3, 0xac, 0x9a, 0x10, 0x63, 0x31, 0x31, 0x2f, 0x5a, 0x0a, 0x84, 0x28, 0x2c, 0x3a, 0x3d, 0x4a, 0xea, 0x1e, 0x7c, 0xf5, 0x3d, 0xbf, 0x8b, 0x24, 0x0b, 0xdd, 0x11, 0x1c, 0x34, 0xd2, 0xa9, 0x3d, 0xfd, 0x12, 0x58, 0xfe, 0x92, 0x67, 0x13, 0x3f, 0x75, 0x54, 0xdc, 0xc2, 0x1a, 0x8f, 0x43, 0x9c, 0x16, 0x5d, };
15800 static const u8 ed25519_687_test_vectors_expected_sig[] = {
15801 	0xa1, 0x11, 0xb9, 0x70, 0x6d, 0x24, 0x2c, 0xd3, 0x6d, 0x6e, 0x87, 0x41, 0xcb, 0xb0, 0x97, 0xb9, 0xe2, 0xff, 0xfa, 0x40, 0xf4, 0x3f, 0xd6, 0xf2, 0xd3, 0xd9, 0x16, 0x93, 0x66, 0x73, 0x32, 0xb5, 0xf2, 0xdb, 0x5e, 0xe3, 0xea, 0x20, 0xb8, 0x32, 0x91, 0xb8, 0x40, 0x57, 0x95, 0xb7, 0x4d, 0x63, 0x3d, 0x46, 0xf4, 0x75, 0xab, 0x7c, 0x47, 0x61, 0x71, 0x18, 0x53, 0x5b, 0x80, 0x51, 0xd9, 0x07, };
15802 static const ec_test_case ed25519_687_test_case = {
15803 	.name = "EDDSA25519-SHA512/wei25519 687",
15804 	.ec_str_p = &wei25519_str_params,
15805 	.priv_key = ed25519_687_test_vectors_priv_key,
15806 	.priv_key_len = sizeof(ed25519_687_test_vectors_priv_key),
15807 	.nn_random = NULL,
15808 	.hash_type = SHA512,
15809 	.msg = (const char *)ed25519_687_test_vectors_message,
15810 	.msglen = sizeof(ed25519_687_test_vectors_message),
15811 	.sig_type = EDDSA25519,
15812 	.exp_sig = ed25519_687_test_vectors_expected_sig,
15813 	.exp_siglen = sizeof(ed25519_687_test_vectors_expected_sig),
15814 	.adata = NULL,
15815 	.adata_len = 0
15816 };
15817 
15818 /************************************************/
15819 static const u8 ed25519_688_test_vectors_priv_key[] = {
15820 	0x7d, 0x14, 0x02, 0x3e, 0xb4, 0x8b, 0xbd, 0x43, 0x76, 0x49, 0xa2, 0x41, 0x87, 0x79, 0x05, 0xa3, 0xc9, 0x32, 0xf1, 0x46, 0x40, 0xf2, 0x9a, 0x0f, 0xb1, 0x34, 0x11, 0x4e, 0x8f, 0x33, 0xf5, 0x82, };
15821 static const u8 ed25519_688_test_vectors_message[] = {
15822 	0x90, 0x01, 0xdb, 0x31, 0xf2, 0x79, 0xbe, 0x50, 0x53, 0x19, 0xb8, 0xe7, 0x2b, 0xde, 0x11, 0x99, 0x51, 0x29, 0x80, 0xdf, 0x65, 0xf0, 0xd8, 0xa9, 0xb4, 0x93, 0x04, 0x67, 0x41, 0x3a, 0x99, 0x7b, 0x97, 0xa3, 0x62, 0xb5, 0x72, 0xa4, 0xb4, 0x4b, 0xc9, 0x40, 0x48, 0x7f, 0x18, 0xb2, 0x08, 0xce, 0x6a, 0xc5, 0xc6, 0x87, 0x16, 0xd3, 0xaf, 0x1b, 0xce, 0xf1, 0x70, 0x38, 0x3b, 0x5c, 0x4b, 0x5c, 0x47, 0xe4, 0x47, 0x37, 0x72, 0x6f, 0x93, 0x83, 0xbc, 0x4f, 0x14, 0x47, 0x68, 0xbf, 0x5c, 0xaf, 0xb4, 0xe9, 0xdf, 0xe3, 0x97, 0x61, 0xe6, 0xed, 0x47, 0x89, 0x71, 0xd1, 0xc7, 0x0e, 0x6d, 0xab, 0x2f, 0xd0, 0x49, 0x9d, 0xff, 0x92, 0x93, 0xb2, 0x39, 0xd1, 0x6c, 0x96, 0x02, 0x61, 0xc6, 0x82, 0x18, 0xb9, 0xf5, 0xb1, 0xbe, 0xe6, 0x90, 0xf0, 0xd2, 0x40, 0xc1, 0xb3, 0xdb, 0x71, 0x1f, 0x9e, 0x82, 0x1f, 0x08, 0x09, 0xbb, 0xeb, 0x9a, 0xaf, 0x24, 0x9c, 0xcb, 0x16, 0x8c, 0x67, 0xd9, 0x65, 0x56, 0x2d, 0x24, 0xf8, 0x48, 0x51, 0x61, 0x40, 0xbf, 0xd9, 0xfc, 0x05, 0x0d, 0x4f, 0x20, 0xda, 0x5a, 0x17, 0x94, 0x46, 0x8a, 0x9c, 0x07, 0x25, 0xea, 0x5c, 0x66, 0x9d, 0x5c, 0x63, 0x0d, 0x93, 0x10, 0xe5, 0x74, 0x51, 0x07, 0xda, 0xd3, 0x72, 0x61, 0xb5, 0xd9, 0x1e, 0x38, 0xe0, 0x85, 0x12, 0xe6, 0xf3, 0x73, 0xec, 0x5d, 0xca, 0xd5, 0xca, 0x09, 0x07, 0x29, 0x07, 0xc8, 0xfb, 0x7b, 0xf3, 0xb9, 0x26, 0xc3, 0x33, 0x94, 0x90, 0xb3, 0xf5, 0x1f, 0x76, 0x44, 0xe7, 0x3a, 0xe2, 0xec, 0x01, 0xd6, 0x1b, 0xe7, 0xc6, 0x52, 0x65, 0x36, 0xb4, 0xff, 0xd1, 0xab, 0x68, 0x49, 0xfe, 0x0c, 0x2f, 0x40, 0xd3, 0xbd, 0xa2, 0xa4, 0x9e, 0x55, 0x50, 0xb8, 0xdf, 0x97, 0x90, 0x81, 0xda, 0x85, 0x16, 0x8d, 0x0f, 0x71, 0x58, 0x2b, 0x90, 0x36, 0x77, 0x52, 0x6d, 0x1f, 0x1b, 0x15, 0x11, 0xe1, 0x38, 0xb6, 0x84, 0xfc, 0x46, 0xaa, 0xc8, 0xbd, 0x80, 0xc3, 0xde, 0xf7, 0xee, 0x81, 0x38, 0x19, 0x04, 0x61, 0x80, 0x7c, 0x55, 0x36, 0x12, 0x5c, 0xb0, 0xe2, 0xc3, 0xd0, 0x83, 0xa1, 0x87, 0xc7, 0x26, 0x9c, 0xb5, 0x31, 0xec, 0x36, 0x78, 0x78, 0x7b, 0x32, 0x55, 0x5c, 0xf0, 0x4a, 0xb0, 0x93, 0xc9, 0x00, 0x2e, 0x7d, 0x79, 0x2b, 0x4d, 0x93, 0x3f, 0x2e, 0x30, 0x70, 0xf3, 0x9a, 0xc8, 0xcc, 0xf8, 0xd5, 0xf5, 0x45, 0x5f, 0x12, 0x10, 0x9d, 0x8a, 0x8a, 0xeb, 0x4e, 0x21, 0x2f, 0xad, 0x4a, 0x70, 0xb1, 0x47, 0xc0, 0x4a, 0x7b, 0x91, 0x84, 0x60, 0xb1, 0x31, 0x63, 0x76, 0xe6, 0x40, 0x20, 0x85, 0x95, 0x17, 0xeb, 0x7e, 0xe3, 0x0c, 0x29, 0x0b, 0xe8, 0xb8, 0xd6, 0xf9, 0x67, 0x39, 0x15, 0x25, 0x6c, 0x3b, 0x04, 0xb9, 0xd9, 0x05, 0x4b, 0x52, 0x33, 0x8e, 0x0d, 0x36, 0x07, 0x85, 0xe4, 0x6a, 0x18, 0x28, 0x44, 0xc5, 0xc3, 0x76, 0x6a, 0xea, 0x8e, 0xd3, 0x11, 0xb2, 0xd4, 0x81, 0xc0, 0xb7, 0xb2, 0x11, 0x4e, 0x41, 0x8e, 0xd1, 0x7f, 0x8d, 0xeb, 0xf0, 0x1a, 0x83, 0xff, 0x37, 0x51, 0x70, 0x24, 0xee, 0x9e, 0x28, 0xe0, 0xc9, 0x0d, 0xce, 0x6d, 0x05, 0x9f, 0xfe, 0xe4, 0x13, 0xd2, 0x7c, 0xd6, 0x27, 0x83, 0xa8, 0xb8, 0xb5, 0x01, 0x6a, 0xd2, 0x76, 0xe3, 0x9d, 0xfd, 0x8f, 0x8f, 0x3d, 0xdf, 0xc4, 0x28, 0x10, 0x18, 0x18, 0xce, 0x50, 0x7f, 0x00, 0x3e, 0xb5, 0x8c, 0x9a, 0x5c, 0xc8, 0xb1, 0xaf, 0xf0, 0x5a, 0xab, 0x8f, 0x0d, 0x7f, 0x1d, 0x1f, 0x6d, 0x4b, 0x87, 0x1d, 0xbc, 0xed, 0x1f, 0x3d, 0x28, 0x66, 0x23, 0x97, 0x52, 0xfb, 0x13, 0xf6, 0xe1, 0x80, 0x34, 0xbb, 0x2b, 0x5a, 0x66, 0x35, 0xca, 0xa6, 0xec, 0xc4, 0x62, 0xe0, 0x58, 0xeb, 0xe2, 0xfa, 0x65, 0x1d, 0x3d, 0x0f, 0x36, 0xe2, 0x0a, 0x31, 0xf7, 0x65, 0xe4, 0xb9, 0x58, 0x27, 0x0b, 0xd8, 0x25, 0xc6, 0x81, 0x8a, 0xac, 0x1a, 0xd7, 0x56, 0x31, 0x35, 0xae, 0xed, 0xf1, 0x4a, 0x2b, 0x6d, 0x39, 0x8b, 0x6e, 0x34, 0x00, 0x84, 0x01, 0xb2, 0x18, 0x46, 0x18, 0x20, 0x07, 0x1c, 0x5a, 0xf7, 0x78, 0x46, 0xcb, 0x9c, 0x32, 0x81, 0x90, 0xc0, 0x61, 0xd5, 0xaa, 0x6e, 0x0e, 0xcd, 0xe7, 0xef, 0x58, 0x56, 0xb0, 0xe6, 0x81, 0x4f, 0x83, 0x3f, 0x70, 0x40, 0x96, 0xdf, 0x08, 0x25, 0xfa, 0x4b, 0x46, 0xdc, 0xda, 0xcf, 0xa2, 0x7c, 0xd8, 0x7b, 0xd7, 0xbf, 0xef, 0xf7, 0xf8, 0xca, 0xe1, 0x66, 0xa3, 0xa0, 0x4d, 0x43, 0x7c, 0x7b, 0xe7, 0x16, 0xc4, 0x90, 0x45, 0xc7, 0xbd, 0x3d, 0x13, 0x49, 0x62, 0x7c, 0x9c, 0xbd, 0x04, 0xc1, 0x5f, 0x00, 0xa6, 0x96, 0xe3, 0xcf, 0xfb, 0xb4, 0x5a, 0xf2, 0x91, 0x22, 0x62, 0x7e, 0x7e, 0xd3, 0x3b, 0x42, 0x49, 0x91, 0x3b, 0xec, 0x00, 0xf0, 0xe2, 0x8a, 0xa1, 0x12, 0x98, 0xcc, 0xe8, 0xb6, 0x49, 0x08, 0x1f, 0xe3, 0xb1, 0x69, 0xb4, 0xaa, 0xea, 0xca, 0x48, 0x5b, 0xda, };
15823 static const u8 ed25519_688_test_vectors_expected_sig[] = {
15824 	0x31, 0x33, 0x9d, 0xce, 0x23, 0x33, 0x6d, 0xf5, 0xb2, 0xb1, 0x93, 0x52, 0x2a, 0xa3, 0xdd, 0x2d, 0x41, 0x14, 0xa6, 0x6a, 0xf1, 0x65, 0x62, 0x89, 0xc9, 0x52, 0xbc, 0x11, 0xc9, 0xb2, 0x10, 0xf7, 0x7a, 0x54, 0xd4, 0x61, 0x61, 0xf4, 0xe0, 0xc5, 0x2b, 0x30, 0x13, 0xe4, 0x0b, 0x9e, 0x9e, 0x84, 0x27, 0xd8, 0x51, 0x32, 0x5b, 0xd7, 0x1c, 0x4d, 0x99, 0x35, 0x3e, 0xee, 0xd7, 0x51, 0x08, 0x0d, };
15825 static const ec_test_case ed25519_688_test_case = {
15826 	.name = "EDDSA25519-SHA512/wei25519 688",
15827 	.ec_str_p = &wei25519_str_params,
15828 	.priv_key = ed25519_688_test_vectors_priv_key,
15829 	.priv_key_len = sizeof(ed25519_688_test_vectors_priv_key),
15830 	.nn_random = NULL,
15831 	.hash_type = SHA512,
15832 	.msg = (const char *)ed25519_688_test_vectors_message,
15833 	.msglen = sizeof(ed25519_688_test_vectors_message),
15834 	.sig_type = EDDSA25519,
15835 	.exp_sig = ed25519_688_test_vectors_expected_sig,
15836 	.exp_siglen = sizeof(ed25519_688_test_vectors_expected_sig),
15837 	.adata = NULL,
15838 	.adata_len = 0
15839 };
15840 
15841 /************************************************/
15842 static const u8 ed25519_689_test_vectors_priv_key[] = {
15843 	0xe8, 0x30, 0x6b, 0xad, 0xa6, 0xd5, 0x5e, 0xb1, 0x88, 0xd9, 0xf7, 0x5c, 0x81, 0x5c, 0xc9, 0x14, 0xe9, 0x3c, 0x9c, 0x72, 0x22, 0x39, 0x1c, 0x15, 0xbb, 0xae, 0xaf, 0x93, 0x54, 0x43, 0x79, 0x35, };
15844 static const u8 ed25519_689_test_vectors_message[] = {
15845 	0xd7, 0x04, 0x38, 0x09, 0xc3, 0xe3, 0xdc, 0x00, 0xb1, 0x7e, 0xfd, 0x52, 0xc9, 0x13, 0x0b, 0x11, 0xb7, 0x86, 0xf1, 0xe2, 0x57, 0xb5, 0xe2, 0x2f, 0x81, 0xa7, 0xfa, 0xae, 0x60, 0x0b, 0xbc, 0xdf, 0xd5, 0x18, 0x53, 0x7f, 0xe8, 0x52, 0xc6, 0x42, 0x35, 0x97, 0x62, 0xfb, 0x75, 0xe8, 0xad, 0x85, 0x92, 0x49, 0xe6, 0xab, 0x49, 0xce, 0x1b, 0xb0, 0x4f, 0x24, 0x92, 0xf2, 0xaa, 0xc3, 0x54, 0x46, 0xba, 0x6e, 0xb0, 0x3e, 0x76, 0xde, 0x3a, 0xbd, 0x2d, 0x5f, 0xc7, 0xe6, 0x14, 0x68, 0x43, 0xad, 0xd0, 0x42, 0x86, 0x0a, 0x4a, 0x16, 0xb5, 0x9b, 0xdd, 0x7d, 0x03, 0x83, 0x78, 0xa3, 0x5e, 0x1a, 0x04, 0xb1, 0x21, 0x7a, 0x55, 0x71, 0x0d, 0x93, 0x7e, 0x2c, 0x90, 0x32, 0x23, 0x2e, 0xa2, 0xcd, 0xd1, 0xd2, 0x5a, 0x0b, 0xff, 0x71, 0xef, 0x5d, 0x3e, 0x0c, 0x05, 0x6b, 0x29, 0xcb, 0x92, 0xf6, 0xdf, 0x69, 0x2b, 0xde, 0x14, 0xdf, 0xa5, 0x0e, 0x13, 0x2b, 0xeb, 0xd8, 0x9e, 0x9f, 0x18, 0x33, 0x88, 0x0b, 0x65, 0x7a, 0x78, 0x1e, 0x94, 0xec, 0xb6, 0x03, 0x04, 0x17, 0x56, 0xe5, 0x51, 0x7d, 0x44, 0x23, 0xc5, 0x6f, 0xad, 0xc1, 0x3e, 0x2b, 0x31, 0x80, 0x88, 0xfe, 0xdd, 0xf3, 0xb5, 0xc8, 0x3c, 0x20, 0xb4, 0x6f, 0xdd, 0xbb, 0xa9, 0x23, 0x05, 0xe4, 0x86, 0x06, 0xda, 0xb7, 0x48, 0xce, 0x38, 0x48, 0xb8, 0x43, 0xf4, 0x71, 0x1f, 0x37, 0x0c, 0x3e, 0xc7, 0xd5, 0xe1, 0x9a, 0xb4, 0xc0, 0xac, 0x1a, 0xe1, 0x5a, 0xaa, 0xf2, 0x3d, 0x65, 0xfe, 0xce, 0xda, 0xbc, 0x08, 0x04, 0x9b, 0x9e, 0x29, 0x11, 0x3e, 0x57, 0x61, 0xed, 0x9d, 0x1c, 0x62, 0xeb, 0x07, 0x5c, 0xab, 0xb2, 0x67, 0x4c, 0xdb, 0xe1, 0xe3, 0xa8, 0x89, 0xba, 0xe4, 0xb1, 0xdd, 0x31, 0xb6, 0xa5, 0xb2, 0xea, 0x1b, 0x8d, 0xed, 0xcc, 0x3c, 0x51, 0x5e, 0xdc, 0x44, 0x67, 0xc3, 0x02, 0x31, 0x17, 0x6c, 0xd4, 0x4b, 0xec, 0x8a, 0x05, 0x79, 0x51, 0xab, 0x5c, 0xd3, 0x9a, 0x96, 0x23, 0xf8, 0xaf, 0x84, 0x73, 0xcd, 0x27, 0xd9, 0x33, 0x02, 0xbf, 0x8a, 0xa6, 0x24, 0xc9, 0xc3, 0xc5, 0x79, 0x9d, 0xa1, 0xdc, 0x49, 0x44, 0x94, 0xef, 0x8f, 0xf1, 0xdb, 0xe0, 0x18, 0x7e, 0xa5, 0x16, 0x26, 0x70, 0xb8, 0xd0, 0x98, 0xc3, 0xa9, 0x49, 0x19, 0x39, 0x8d, 0xad, 0xf7, 0x9e, 0x6c, 0x24, 0x91, 0xc4, 0x44, 0x39, 0x2c, 0x29, 0xcd, 0x50, 0xd5, 0x74, 0x35, 0x06, 0x32, 0x90, 0x84, 0x2b, 0xfa, 0x0e, 0x85, 0x30, 0xfa, 0xeb, 0xc0, 0x06, 0xd6, 0xea, 0x78, 0x01, 0x11, 0x7e, 0x0a, 0x3f, 0x01, 0x9e, 0xe2, 0x8f, 0xb3, 0x79, 0x22, 0x35, 0x40, 0x2e, 0x2f, 0x69, 0xb8, 0x7a, 0x43, 0xdc, 0x22, 0x7f, 0x9d, 0xe3, 0x16, 0x02, 0x97, 0x56, 0xc3, 0x16, 0x7d, 0x64, 0xa3, 0xa3, 0xf6, 0xd7, 0x31, 0x60, 0x33, 0x1d, 0x5a, 0x18, 0xee, 0xe5, 0xb0, 0xe6, 0xe2, 0x2a, 0x66, 0x3e, 0xfd, 0xcc, 0x8d, 0x67, 0xaf, 0x3b, 0xce, 0xd0, 0x41, 0xea, 0x84, 0x3a, 0x56, 0x41, 0x60, 0x3e, 0xc7, 0x2e, 0xfd, 0x64, 0x4e, 0x17, 0x3d, 0x19, 0x9a, 0x8c, 0x83, 0x0b, 0x2e, 0xa5, 0xfe, 0xc0, 0x37, 0x80, 0x27, 0xc3, 0x72, 0x25, 0xaf, 0xcb, 0x60, 0x4c, 0x4c, 0xdc, 0xf4, 0x09, 0xbe, 0x1c, 0x50, 0x9c, 0x9a, 0x37, 0x7b, 0xe0, 0xd0, 0x52, 0x41, 0x07, 0xc6, 0xd9, 0x2b, 0x5f, 0x09, 0xa2, 0x9e, 0xfb, 0x71, 0x09, 0x29, 0x56, 0x70, 0xbb, 0x1a, 0x1d, 0xd3, 0xea, 0x00, 0x8b, 0xb7, 0x91, 0x85, 0xf0, 0x9b, 0x98, 0xf0, 0x20, 0xc4, 0x3f, 0x14, 0x39, 0x68, 0x5b, 0x96, 0xf6, 0x19, 0x93, 0x11, 0xa0, 0x90, 0x87, 0x0f, 0x0d, 0x9b, 0x10, 0xd4, 0x95, 0xcd, 0x41, 0x0a, 0xa9, 0x5b, 0x7e, 0x53, 0x74, 0x9b, 0xe3, 0xa6, 0xc0, 0xfb, 0xc7, 0x29, 0xf9, 0x6c, 0xf8, 0x56, 0x43, 0x97, 0xb0, 0x9c, 0x13, 0x51, 0x40, 0x16, 0x82, 0x5f, 0x72, 0xf1, 0x4e, 0xb9, 0x32, 0x94, 0xd7, 0x01, 0x0a, 0xcc, 0xfd, 0x11, 0xf1, 0x7a, 0x6a, 0xc8, 0xf5, 0x44, 0x26, 0x3d, 0x60, 0x38, 0xd5, 0xc7, 0xdb, 0x29, 0x48, 0x62, 0x91, 0xb3, 0x0e, 0xa4, 0x9b, 0x6b, 0x54, 0xcf, 0x88, 0x82, 0x6d, 0xd2, 0x52, 0xcd, 0x9d, 0xbb, 0x57, 0xd8, 0x41, 0xb5, 0xa4, 0xcf, 0x70, 0x2a, 0x32, 0x64, 0xfa, 0xa4, 0xdc, 0xcc, 0x86, 0xab, 0x14, 0xda, 0xf1, 0x24, 0xef, 0x3d, 0x53, 0x35, 0xa6, 0x87, 0x8d, 0x06, 0x5c, 0x6b, 0xa2, 0x99, 0x91, 0x04, 0x57, 0x65, 0xee, 0x55, 0x42, 0xcc, 0x9f, 0x5d, 0x9f, 0x35, 0x4d, 0xcd, 0x2c, 0x6e, 0x0c, 0xf7, 0xff, 0x3a, 0x30, 0xf6, 0x49, 0xb5, 0x91, 0x2d, 0x97, 0x1d, 0x63, 0x35, 0x78, 0xf1, 0xe9, 0xf2, 0x63, 0x87, 0x4d, 0x05, 0x65, 0xc2, 0x47, 0x30, 0x1d, 0xcb, 0xd1, 0x5d, 0x76, 0x21, 0x1a, 0xe2, 0xd3, 0xd5, 0x06, 0xfc, 0x64, 0xde, 0xb7, 0xe0, 0x42, 0x56, 0x5d, 0x43, 0x8e, 0x2b, 0xfb, 0x24, 0x92, 0x43, 0xb7, };
15846 static const u8 ed25519_689_test_vectors_expected_sig[] = {
15847 	0xcc, 0x66, 0x27, 0x30, 0x8e, 0x2f, 0x42, 0x43, 0x83, 0xfa, 0x70, 0x59, 0x4f, 0x57, 0x57, 0x91, 0x60, 0x05, 0x40, 0x02, 0x7a, 0x27, 0x51, 0x61, 0x9b, 0x28, 0x3a, 0xff, 0xea, 0xeb, 0xc9, 0xc9, 0xd2, 0x9a, 0xc6, 0xdb, 0x28, 0x6d, 0xd2, 0xc1, 0xb5, 0x96, 0x58, 0x7b, 0x87, 0x8d, 0x1d, 0xf4, 0x78, 0x1d, 0x43, 0x6b, 0xb5, 0x70, 0xc1, 0xc0, 0xf0, 0xd3, 0x33, 0x68, 0xdc, 0x66, 0x52, 0x0b, };
15848 static const ec_test_case ed25519_689_test_case = {
15849 	.name = "EDDSA25519-SHA512/wei25519 689",
15850 	.ec_str_p = &wei25519_str_params,
15851 	.priv_key = ed25519_689_test_vectors_priv_key,
15852 	.priv_key_len = sizeof(ed25519_689_test_vectors_priv_key),
15853 	.nn_random = NULL,
15854 	.hash_type = SHA512,
15855 	.msg = (const char *)ed25519_689_test_vectors_message,
15856 	.msglen = sizeof(ed25519_689_test_vectors_message),
15857 	.sig_type = EDDSA25519,
15858 	.exp_sig = ed25519_689_test_vectors_expected_sig,
15859 	.exp_siglen = sizeof(ed25519_689_test_vectors_expected_sig),
15860 	.adata = NULL,
15861 	.adata_len = 0
15862 };
15863 
15864 /************************************************/
15865 static const u8 ed25519_690_test_vectors_priv_key[] = {
15866 	0x36, 0x3c, 0x1e, 0xa7, 0xc3, 0x2e, 0xa3, 0x28, 0xa0, 0x55, 0xaf, 0x7b, 0xd8, 0xb3, 0xbf, 0xd2, 0x04, 0xfb, 0x0b, 0xbd, 0x4b, 0xf4, 0x2f, 0xfe, 0x26, 0x2f, 0x3a, 0x5e, 0xbd, 0x54, 0xda, 0x55, };
15867 static const u8 ed25519_690_test_vectors_message[] = {
15868 	0xc4, 0x1c, 0x1e, 0x1f, 0xb7, 0x59, 0x54, 0xa0, 0xae, 0x0e, 0xbc, 0x29, 0x09, 0x0b, 0x9f, 0xc5, 0x33, 0xe6, 0x93, 0xe7, 0xc7, 0x10, 0x5c, 0xfe, 0x40, 0xef, 0x52, 0x6e, 0x4e, 0x12, 0xa7, 0x40, 0x52, 0x21, 0xf2, 0x18, 0xc7, 0xac, 0x01, 0x9e, 0x1d, 0x4c, 0x92, 0xda, 0x28, 0x53, 0xf2, 0xd7, 0x26, 0xaa, 0x62, 0x27, 0x79, 0x24, 0xdf, 0x0c, 0x34, 0x3f, 0xc3, 0xd4, 0x7c, 0xd5, 0xa9, 0x9a, 0x3e, 0x27, 0x9b, 0x26, 0xa1, 0xb1, 0x3b, 0x1f, 0x2a, 0xa3, 0x6f, 0x7c, 0xcb, 0x4b, 0x54, 0xfb, 0xef, 0x18, 0xbd, 0x87, 0xa5, 0x5f, 0x1b, 0xc4, 0x0c, 0xe7, 0xb2, 0x02, 0x91, 0x45, 0xee, 0x7a, 0xab, 0x39, 0x17, 0x95, 0xac, 0x68, 0xde, 0x61, 0x99, 0xf5, 0x05, 0x94, 0xfc, 0x79, 0x61, 0x1b, 0x85, 0x13, 0x1c, 0x14, 0x30, 0x21, 0xf2, 0x6f, 0xa3, 0x58, 0xda, 0x0c, 0x7c, 0x6a, 0x65, 0xdd, 0xe0, 0x76, 0xda, 0xb4, 0x88, 0x67, 0x5b, 0x72, 0x23, 0x09, 0xe5, 0xed, 0x97, 0x46, 0xd1, 0x8a, 0x89, 0x30, 0x99, 0x06, 0xa7, 0xa9, 0xdf, 0x23, 0x7d, 0xd2, 0x7b, 0xd5, 0x90, 0xcc, 0xc7, 0x7c, 0x40, 0x2e, 0xf6, 0xe1, 0x9c, 0xa6, 0x3c, 0xc8, 0x6b, 0x85, 0x16, 0x03, 0x30, 0xee, 0x6e, 0x1f, 0x1f, 0x47, 0xa2, 0xff, 0x80, 0x7e, 0xef, 0xad, 0xc0, 0x09, 0x63, 0x52, 0x0a, 0x1c, 0x60, 0x0a, 0x3e, 0x45, 0xaa, 0x7f, 0xb2, 0x55, 0x4f, 0x47, 0xd8, 0x97, 0xbd, 0x86, 0xd8, 0x1c, 0x3b, 0x08, 0x77, 0x10, 0x12, 0x22, 0xfa, 0x78, 0x50, 0xb8, 0x0c, 0xe3, 0xbc, 0x06, 0xc9, 0xe5, 0x8c, 0x0c, 0x96, 0xe3, 0x2f, 0xec, 0x85, 0x30, 0xc9, 0xfa, 0x1e, 0x41, 0x63, 0xf0, 0xef, 0x84, 0x56, 0x95, 0x2b, 0xf6, 0xdd, 0x58, 0x04, 0x5a, 0x36, 0x3d, 0x61, 0x88, 0x0e, 0x9a, 0xc9, 0x76, 0xa3, 0x60, 0x3e, 0xf7, 0x7a, 0x4c, 0x39, 0x5e, 0x6a, 0x07, 0xe3, 0x42, 0xf6, 0x02, 0x3b, 0x8a, 0xf1, 0x02, 0x25, 0xcf, 0xf2, 0x40, 0xef, 0xc0, 0x36, 0x6a, 0x79, 0x9f, 0xd8, 0x6e, 0x9d, 0x06, 0x20, 0x60, 0xd8, 0x72, 0x40, 0x33, 0xbd, 0xf6, 0x75, 0x88, 0xcd, 0x73, 0xac, 0x28, 0x4d, 0xe4, 0xc6, 0x94, 0x3c, 0xf4, 0x5e, 0xe4, 0xf7, 0x5f, 0x59, 0x37, 0xd9, 0x7d, 0x78, 0x10, 0x5f, 0x0b, 0xbe, 0xce, 0x04, 0xd3, 0xdc, 0xb5, 0xe4, 0x24, 0xef, 0xf8, 0x9b, 0x77, 0x3e, 0x5d, 0x6b, 0x4f, 0x37, 0xef, 0xa9, 0xa0, 0x65, 0x4c, 0xb3, 0xef, 0x34, 0x52, 0x78, 0xa6, 0x2d, 0x87, 0x6c, 0xfe, 0xf9, 0xa3, 0xdc, 0xdc, 0xeb, 0x70, 0x81, 0x44, 0x18, 0x77, 0xeb, 0xd5, 0xfa, 0x30, 0xc9, 0xd9, 0x54, 0xe3, 0x68, 0x4f, 0xa4, 0x76, 0xa4, 0xf4, 0x85, 0xd4, 0x26, 0xfd, 0x3c, 0x8c, 0x32, 0xbe, 0xa0, 0xf9, 0xcc, 0x20, 0xb1, 0x5e, 0x8f, 0xdf, 0xc3, 0xca, 0x4b, 0x30, 0x2c, 0x07, 0x4f, 0x50, 0x81, 0x32, 0xd1, 0x5d, 0xe6, 0x25, 0xc1, 0x0a, 0xe0, 0x73, 0x78, 0x11, 0x46, 0x3d, 0xcc, 0x55, 0xfc, 0xc4, 0x01, 0x4b, 0x20, 0x20, 0x8f, 0xff, 0xce, 0xfa, 0x9d, 0xd4, 0x52, 0x11, 0x9b, 0x16, 0x52, 0xde, 0x41, 0x34, 0x8f, 0x69, 0xf2, 0xc4, 0x88, 0xf5, 0xcc, 0x18, 0x56, 0xd6, 0xe7, 0x8a, 0x5c, 0xbe, 0x3e, 0x37, 0x3d, 0xd4, 0x59, 0x8e, 0x2d, 0x39, 0xf8, 0x76, 0xeb, 0x94, 0xe0, 0xb0, 0x1b, 0x21, 0xfa, 0x91, 0x29, 0xef, 0x41, 0xb6, 0x39, 0xf4, 0xe0, 0x5e, 0x69, 0xde, 0xb1, 0x83, 0x5e, 0xd4, 0x4b, 0x91, 0x12, 0xa6, 0x86, 0x2a, 0x5b, 0xce, 0xa0, 0x72, 0xc6, 0xe1, 0xb8, 0xf0, 0xf0, 0x58, 0xf4, 0x6b, 0xac, 0x2a, 0x84, 0x5a, 0x58, 0x2d, 0x14, 0x8f, 0x17, 0x76, 0x0b, 0x9e, 0x0a, 0x2b, 0xa6, 0x0b, 0xbb, 0xf3, 0x88, 0x4a, 0xf9, 0x4d, 0xd4, 0xc7, 0xec, 0x9d, 0xb0, 0x8e, 0x9a, 0x5b, 0xcc, 0x6d, 0xde, 0x13, 0x46, 0x44, 0x2e, 0xe1, 0xf4, 0x70, 0x7d, 0x1f, 0x79, 0xb6, 0x9b, 0xa8, 0x67, 0xf4, 0x18, 0xdc, 0x27, 0x91, 0x73, 0xf7, 0x7a, 0xdb, 0xc5, 0x8a, 0xb8, 0x5e, 0xa3, 0x93, 0xb9, 0xdc, 0x68, 0x26, 0x19, 0x00, 0xc1, 0xca, 0xa8, 0x2d, 0x2f, 0x50, 0x47, 0x4c, 0x42, 0xae, 0xc9, 0x11, 0x31, 0x42, 0x78, 0xc0, 0xaf, 0xfa, 0x2a, 0x6b, 0x6c, 0x36, 0xd1, 0xff, 0x88, 0xf3, 0xb4, 0x9f, 0xb2, 0xb7, 0xc3, 0x39, 0xd2, 0xa7, 0xc2, 0xb3, 0x04, 0x9f, 0x8c, 0x0a, 0x08, 0xd1, 0x6a, 0x9e, 0x8d, 0xf9, 0x3d, 0x13, 0x0d, 0xa4, 0x84, 0xbd, 0xba, 0x6d, 0xbe, 0xc5, 0x34, 0xcd, 0x51, 0x09, 0x7a, 0x04, 0x82, 0x21, 0x10, 0x6b, 0xab, 0x48, 0xd6, 0x7f, 0x95, 0x1b, 0x75, 0x05, 0xa1, 0x48, 0x48, 0x92, 0xb8, 0x57, 0x79, 0xc5, 0xa3, 0x11, 0x17, 0x02, 0x12, 0x4d, 0x95, 0x7a, 0xcf, 0x2d, 0xc3, 0x52, 0xef, 0x9b, 0xa2, 0x47, 0xbc, 0x80, 0xe2, 0xce, 0x96, 0x26, 0x9c, 0xe8, 0x5e, 0x78, 0xb9, 0xeb, 0xda, 0x98, 0x90, 0x76, 0xdd, 0x5f, 0xf7, 0x3e, 0x1e, 0xb2, 0x75, 0xe5, 0xd7, };
15869 static const u8 ed25519_690_test_vectors_expected_sig[] = {
15870 	0x5f, 0xd1, 0xe5, 0xf9, 0x92, 0x2a, 0x12, 0xf6, 0x36, 0xb7, 0x2a, 0x7d, 0x62, 0x17, 0x09, 0x1f, 0x94, 0x8a, 0x55, 0xbc, 0xb1, 0x82, 0x6b, 0x8f, 0xca, 0xf9, 0x9d, 0x26, 0x41, 0x6c, 0x7a, 0xb1, 0x35, 0x1c, 0x10, 0xf4, 0x09, 0x3f, 0xfd, 0x8a, 0x2a, 0xf8, 0x69, 0x14, 0xa0, 0xa9, 0x81, 0x84, 0xec, 0x7e, 0x06, 0xd2, 0xde, 0xe8, 0x7f, 0xdc, 0x0f, 0x4a, 0x47, 0xf8, 0xc6, 0x3c, 0xf5, 0x01, };
15871 static const ec_test_case ed25519_690_test_case = {
15872 	.name = "EDDSA25519-SHA512/wei25519 690",
15873 	.ec_str_p = &wei25519_str_params,
15874 	.priv_key = ed25519_690_test_vectors_priv_key,
15875 	.priv_key_len = sizeof(ed25519_690_test_vectors_priv_key),
15876 	.nn_random = NULL,
15877 	.hash_type = SHA512,
15878 	.msg = (const char *)ed25519_690_test_vectors_message,
15879 	.msglen = sizeof(ed25519_690_test_vectors_message),
15880 	.sig_type = EDDSA25519,
15881 	.exp_sig = ed25519_690_test_vectors_expected_sig,
15882 	.exp_siglen = sizeof(ed25519_690_test_vectors_expected_sig),
15883 	.adata = NULL,
15884 	.adata_len = 0
15885 };
15886 
15887 /************************************************/
15888 static const u8 ed25519_691_test_vectors_priv_key[] = {
15889 	0xdb, 0x22, 0x28, 0xff, 0xff, 0xa9, 0xd2, 0x53, 0x4a, 0xef, 0x91, 0x8f, 0xb8, 0x5b, 0x82, 0x1a, 0xd3, 0x60, 0xe2, 0xd3, 0x9d, 0xec, 0x5a, 0xeb, 0x2d, 0xb0, 0xdf, 0x02, 0x49, 0x7f, 0x94, 0x16, };
15890 static const u8 ed25519_691_test_vectors_message[] = {
15891 	0xfc, 0x07, 0xcd, 0x99, 0x04, 0x0f, 0x13, 0xe5, 0xa8, 0x4f, 0x94, 0x74, 0x6d, 0x6b, 0xb8, 0x68, 0xf7, 0x52, 0xb4, 0x48, 0xb6, 0x2d, 0x99, 0x59, 0x3e, 0xf2, 0x9e, 0x43, 0xcc, 0x82, 0x45, 0xf0, 0x47, 0x0f, 0x65, 0x55, 0x2d, 0x64, 0x32, 0x20, 0xf6, 0x71, 0x92, 0x85, 0xe1, 0x5c, 0x37, 0xa6, 0xd1, 0x74, 0xae, 0xf7, 0x60, 0x88, 0xcc, 0xda, 0x5f, 0x88, 0x68, 0x5b, 0x52, 0xda, 0xe2, 0x84, 0xc6, 0x5b, 0x38, 0x0d, 0xa3, 0x45, 0xa2, 0xe1, 0xaf, 0x2e, 0xd7, 0x64, 0x80, 0xd2, 0x69, 0xcb, 0x93, 0x4b, 0x43, 0x17, 0x62, 0x0b, 0x79, 0x2e, 0xbb, 0x39, 0xb2, 0xa6, 0x78, 0x24, 0x7d, 0x6d, 0x81, 0x5f, 0x2a, 0x5c, 0xb9, 0xaa, 0x56, 0x0e, 0x4b, 0xf6, 0xde, 0xba, 0x4c, 0x0a, 0x0d, 0xdc, 0x82, 0xd0, 0xe5, 0xa5, 0xa6, 0x5a, 0xcb, 0xc4, 0x78, 0xe1, 0xec, 0x6b, 0x06, 0x4d, 0x7b, 0xb7, 0x38, 0x8a, 0x73, 0xf6, 0xed, 0xa3, 0x0b, 0x0b, 0x6b, 0x73, 0xdd, 0x8f, 0x87, 0x92, 0x63, 0xad, 0x1a, 0x03, 0x48, 0x67, 0x1d, 0xcf, 0x21, 0x1c, 0xb9, 0x6e, 0xd0, 0x8e, 0xd5, 0x2f, 0x33, 0x17, 0xda, 0x68, 0x18, 0x5d, 0x6b, 0xb2, 0x58, 0x9d, 0xc1, 0x1d, 0x75, 0x5d, 0x47, 0xa3, 0xb6, 0xf6, 0xa0, 0x38, 0x6a, 0x85, 0x94, 0xd9, 0x57, 0x0b, 0x2e, 0x9b, 0x0d, 0x4b, 0x5e, 0x13, 0xdc, 0xcd, 0x9b, 0xb7, 0xac, 0xbe, 0xf0, 0xab, 0x27, 0x6a, 0x7a, 0xeb, 0xe1, 0x29, 0x31, 0xbe, 0x67, 0xf1, 0x0d, 0xe2, 0x67, 0xa0, 0x29, 0x89, 0x53, 0x01, 0xf5, 0x66, 0x25, 0x30, 0xad, 0x8a, 0xb3, 0xd2, 0x30, 0xb3, 0xb6, 0xd7, 0x09, 0x3a, 0xcd, 0xfb, 0xf2, 0x74, 0x75, 0x7a, 0x90, 0x78, 0xe2, 0x0c, 0x23, 0xbc, 0x82, 0x2d, 0xef, 0xfa, 0x61, 0x00, 0x54, 0x86, 0x10, 0x2c, 0x01, 0xab, 0x82, 0xbd, 0xc8, 0xcd, 0xcf, 0x1b, 0xb3, 0x7f, 0x9b, 0x56, 0xd3, 0x9e, 0x50, 0xfd, 0x5a, 0x68, 0x95, 0x41, 0x6e, 0x76, 0x7f, 0x4e, 0x36, 0xc1, 0xa4, 0x17, 0x78, 0x90, 0x81, 0x25, 0xb5, 0xca, 0x3f, 0x92, 0xa9, 0x0d, 0xa9, 0xad, 0xdf, 0xf1, 0x55, 0xfb, 0x1f, 0xd7, 0x76, 0x88, 0x08, 0xa8, 0x0f, 0x20, 0x3e, 0xd7, 0x37, 0xef, 0x00, 0x77, 0x63, 0xbd, 0x2f, 0xea, 0x9f, 0xf2, 0x8c, 0x84, 0xb4, 0x35, 0x51, 0xc9, 0xfc, 0x43, 0x8f, 0xfc, 0x47, 0xfc, 0xfc, 0xf6, 0x4d, 0xc7, 0x70, 0x06, 0x13, 0xaa, 0x8b, 0x3a, 0xf8, 0x63, 0x3a, 0xe8, 0xb6, 0x98, 0x74, 0x37, 0xc0, 0xaa, 0x47, 0x81, 0xbe, 0x1e, 0x82, 0x13, 0x96, 0xc5, 0x36, 0xcb, 0x30, 0x05, 0xd0, 0x55, 0x49, 0xb1, 0xcb, 0xa7, 0x01, 0x35, 0xaf, 0xb7, 0xfe, 0x30, 0x68, 0x96, 0x1c, 0xad, 0x3a, 0x14, 0x63, 0xcc, 0x0b, 0x55, 0x60, 0x68, 0x4e, 0x27, 0xbb, 0xa7, 0x7a, 0xef, 0x41, 0x9d, 0x82, 0x38, 0x68, 0xe0, 0xce, 0xba, 0xd1, 0xf1, 0xce, 0x0a, 0xe9, 0x02, 0x74, 0x4a, 0x15, 0x2d, 0xd2, 0x94, 0x51, 0xa1, 0x7e, 0x28, 0xa8, 0x9a, 0x71, 0x58, 0xa1, 0x83, 0x6e, 0xfc, 0xe4, 0xa3, 0xe5, 0xc7, 0xd1, 0xfa, 0xa4, 0xc3, 0x87, 0x5b, 0xc4, 0x6c, 0x4d, 0x9b, 0xe2, 0x2d, 0x66, 0xd3, 0x66, 0xac, 0x6f, 0x59, 0x53, 0x8a, 0x00, 0xb2, 0x75, 0xb0, 0x2f, 0xac, 0x6d, 0xa7, 0x55, 0xa8, 0x54, 0x08, 0x19, 0x97, 0xd5, 0xd1, 0xd0, 0xe6, 0xe5, 0x68, 0xa5, 0x95, 0x8c, 0xf3, 0x34, 0xc5, 0x18, 0xcd, 0x51, 0x7a, 0xb9, 0xd7, 0x3c, 0x48, 0xd6, 0xcb, 0xc4, 0xae, 0x4e, 0xea, 0x43, 0x53, 0x11, 0x3e, 0x7e, 0x4a, 0x7c, 0x05, 0x92, 0x0e, 0x68, 0x6b, 0xf0, 0x7a, 0xfb, 0xfb, 0x8d, 0xd2, 0xec, 0x4f, 0x18, 0xfa, 0x71, 0x38, 0xe5, 0x7d, 0x33, 0x2c, 0xd7, 0xa4, 0x22, 0x8f, 0xea, 0x73, 0xbc, 0x09, 0x25, 0x2f, 0x24, 0x42, 0x72, 0x94, 0xeb, 0xd3, 0x64, 0x5e, 0xe0, 0x99, 0x6c, 0x2e, 0x85, 0x1a, 0x8a, 0xa5, 0x1a, 0x7c, 0xd9, 0xfc, 0x2e, 0xab, 0x47, 0xc0, 0xab, 0x21, 0x3f, 0x4f, 0x51, 0xd2, 0x16, 0x09, 0x1e, 0xd0, 0x89, 0xe4, 0x59, 0x2e, 0x9b, 0xb0, 0x82, 0x8b, 0x85, 0x8f, 0x84, 0xf6, 0x0b, 0x93, 0xad, 0x84, 0xa0, 0xa2, 0x28, 0x27, 0xcb, 0xd2, 0x74, 0x14, 0xb7, 0x81, 0x32, 0x2a, 0x04, 0xd3, 0x96, 0x08, 0x28, 0xf6, 0x38, 0xdf, 0x28, 0x34, 0xc7, 0xf7, 0x83, 0x9d, 0x70, 0xdb, 0x12, 0x6b, 0xee, 0x5a, 0xf2, 0xee, 0x75, 0x59, 0xa8, 0xac, 0x4c, 0x01, 0xa6, 0xc3, 0x91, 0x39, 0x6a, 0xf9, 0x3f, 0xa0, 0x60, 0x89, 0x40, 0x29, 0x7d, 0xdf, 0x89, 0x00, 0xc5, 0xdd, 0xb4, 0x66, 0x34, 0x0a, 0xe5, 0x1c, 0x60, 0xc7, 0xea, 0xd7, 0x62, 0x44, 0x7e, 0x76, 0xd8, 0xbc, 0xcb, 0x57, 0x39, 0x97, 0xcf, 0x66, 0x14, 0xd1, 0x88, 0xa0, 0xb9, 0xa2, 0xf5, 0x6e, 0xed, 0x9b, 0x0f, 0x9d, 0x46, 0x3a, 0x19, 0x78, 0x7f, 0x40, 0x92, 0x58, 0x1a, 0x65, 0xc6, 0xbf, 0x78, 0x1b, 0x93, 0xc5, 0x60, 0x87, 0xe5, 0x4e, 0xe1, 0x34, 0x3a, 0xab, };
15892 static const u8 ed25519_691_test_vectors_expected_sig[] = {
15893 	0x82, 0x18, 0x9d, 0x34, 0x0b, 0xc1, 0x1c, 0xea, 0xa4, 0x00, 0x41, 0x0e, 0x08, 0xba, 0xe9, 0xd9, 0x01, 0xaf, 0x05, 0x91, 0x25, 0xe9, 0x53, 0x78, 0x6f, 0x8a, 0x04, 0x3d, 0xdf, 0x11, 0xf7, 0xb2, 0xf8, 0xe3, 0xb6, 0x17, 0xac, 0xcd, 0x78, 0xe2, 0x93, 0x9a, 0xdf, 0xab, 0xf2, 0xd2, 0x47, 0x1f, 0xaf, 0xd6, 0xf5, 0xbc, 0x45, 0xb1, 0x40, 0x75, 0xb3, 0x28, 0xe3, 0x4d, 0x80, 0x75, 0xb2, 0x07, };
15894 static const ec_test_case ed25519_691_test_case = {
15895 	.name = "EDDSA25519-SHA512/wei25519 691",
15896 	.ec_str_p = &wei25519_str_params,
15897 	.priv_key = ed25519_691_test_vectors_priv_key,
15898 	.priv_key_len = sizeof(ed25519_691_test_vectors_priv_key),
15899 	.nn_random = NULL,
15900 	.hash_type = SHA512,
15901 	.msg = (const char *)ed25519_691_test_vectors_message,
15902 	.msglen = sizeof(ed25519_691_test_vectors_message),
15903 	.sig_type = EDDSA25519,
15904 	.exp_sig = ed25519_691_test_vectors_expected_sig,
15905 	.exp_siglen = sizeof(ed25519_691_test_vectors_expected_sig),
15906 	.adata = NULL,
15907 	.adata_len = 0
15908 };
15909 
15910 /************************************************/
15911 static const u8 ed25519_692_test_vectors_priv_key[] = {
15912 	0x66, 0xb5, 0x0f, 0x69, 0x2e, 0x39, 0x5e, 0xb8, 0x33, 0x86, 0xe0, 0x27, 0xc8, 0x2c, 0xe3, 0xfd, 0xee, 0x3b, 0xd8, 0x99, 0xb0, 0xd3, 0x17, 0x9d, 0xb0, 0x86, 0xfb, 0xf5, 0x24, 0xf5, 0x74, 0x59, };
15913 static const u8 ed25519_692_test_vectors_message[] = {
15914 	0x74, 0x28, 0xa9, 0x64, 0x21, 0x2b, 0xcb, 0xe8, 0xdf, 0x7d, 0x59, 0xe4, 0x8e, 0x92, 0x34, 0x80, 0xaa, 0x0e, 0xe0, 0x9b, 0x91, 0x0d, 0x04, 0xef, 0xb6, 0x90, 0x36, 0x62, 0xef, 0xc3, 0x10, 0x7a, 0xc8, 0xfd, 0xc0, 0xc5, 0xf3, 0x92, 0x72, 0x74, 0x0c, 0xd8, 0x77, 0xe1, 0x6c, 0xd7, 0x1c, 0x54, 0x92, 0x38, 0xc3, 0x37, 0x22, 0x0c, 0xe2, 0xf6, 0xb5, 0xa1, 0xfc, 0x6f, 0x7b, 0x0a, 0x1c, 0xd4, 0xed, 0x21, 0xd9, 0x38, 0x89, 0x08, 0x1e, 0x34, 0xfb, 0x7f, 0xde, 0xcf, 0x41, 0x78, 0xbb, 0xd4, 0x31, 0xe6, 0x11, 0xe5, 0x39, 0xd9, 0x00, 0xc3, 0xd0, 0xac, 0x3d, 0xc7, 0x10, 0x7b, 0x36, 0xb4, 0x1d, 0x6d, 0x0d, 0x5d, 0x32, 0xc1, 0x97, 0x27, 0xf9, 0x08, 0xb6, 0xeb, 0x36, 0x7f, 0xeb, 0xb3, 0x52, 0xa4, 0x93, 0x58, 0x1f, 0xf1, 0x28, 0xb5, 0x6c, 0x4c, 0xaf, 0x6f, 0xb8, 0xe0, 0x99, 0x81, 0xf0, 0xd3, 0x79, 0x57, 0xd1, 0x28, 0x20, 0x17, 0xfb, 0xb8, 0x07, 0x61, 0x4c, 0x20, 0xf4, 0x65, 0xdc, 0x02, 0xb0, 0xcd, 0x96, 0x99, 0x83, 0xbd, 0x5a, 0xe1, 0xeb, 0xf6, 0x57, 0x8d, 0x7f, 0xf3, 0xce, 0xff, 0x32, 0x0e, 0x25, 0x56, 0x21, 0x99, 0xde, 0xe9, 0x34, 0x75, 0x7c, 0xc1, 0xf5, 0x8d, 0x55, 0x40, 0xc4, 0x1a, 0xac, 0x1c, 0xe4, 0xf2, 0x11, 0xf0, 0xb8, 0xec, 0x41, 0x07, 0x17, 0x40, 0x30, 0xe7, 0x02, 0xbc, 0x6a, 0x8a, 0x9c, 0x85, 0xc5, 0x05, 0xc9, 0x31, 0x6a, 0xef, 0xea, 0x3e, 0x43, 0x72, 0x24, 0x2d, 0xe0, 0x19, 0xb3, 0x5e, 0x2b, 0xd3, 0xc5, 0xa9, 0x56, 0x52, 0x19, 0x71, 0xc1, 0x06, 0xa3, 0xad, 0xbb, 0xc1, 0x3c, 0xdc, 0x4f, 0x7f, 0x9d, 0x3c, 0x58, 0xb9, 0x6a, 0x34, 0x4b, 0x4a, 0xc3, 0xef, 0x6b, 0xd8, 0xac, 0xa6, 0xed, 0x98, 0x76, 0xb4, 0x3e, 0x64, 0x97, 0xfa, 0xf7, 0xfa, 0x4c, 0xf2, 0x7f, 0xbc, 0xb6, 0x65, 0x73, 0x0c, 0x09, 0x1e, 0x13, 0xaa, 0xf7, 0xe9, 0xef, 0xe7, 0xdd, 0x10, 0xe1, 0x4e, 0xb1, 0x9a, 0x92, 0x00, 0x42, 0x42, 0x10, 0xec, 0x8b, 0x8f, 0xba, 0x7e, 0x69, 0x44, 0x4c, 0xe1, 0xa9, 0xe3, 0xa7, 0xb2, 0x6c, 0x11, 0xf6, 0xb7, 0x14, 0x5b, 0x69, 0x83, 0xa7, 0x80, 0x57, 0x76, 0x48, 0x40, 0x31, 0xbf, 0xf5, 0x2e, 0x81, 0xae, 0x76, 0x9b, 0x70, 0xa2, 0x82, 0xb0, 0x94, 0xff, 0xb5, 0xfb, 0x55, 0x25, 0xdc, 0x1a, 0x87, 0x2e, 0x20, 0x7e, 0x82, 0x7a, 0x2e, 0x11, 0xf4, 0xec, 0xf7, 0xb5, 0x30, 0x8c, 0x74, 0x8a, 0x92, 0x78, 0xea, 0x7b, 0xd6, 0x61, 0x88, 0x19, 0x44, 0x00, 0x43, 0x0c, 0x8c, 0xd5, 0x96, 0xeb, 0xb8, 0x72, 0x21, 0xe5, 0x36, 0xf6, 0xaf, 0xe1, 0xf1, 0x50, 0x5d, 0x6a, 0x59, 0xf4, 0x1d, 0x16, 0xa2, 0xf0, 0x14, 0xe1, 0xcf, 0xa5, 0x13, 0xf7, 0xa6, 0x97, 0x31, 0xd7, 0xbf, 0xdb, 0x2a, 0xff, 0xce, 0xfe, 0x05, 0x37, 0xd4, 0x2c, 0x79, 0x6e, 0x3f, 0xd2, 0x7e, 0x41, 0xb7, 0xca, 0x72, 0x05, 0x1b, 0xef, 0x28, 0xbb, 0x7b, 0xde, 0x70, 0x10, 0xdc, 0xfe, 0xd8, 0xaa, 0x16, 0xef, 0x67, 0x6d, 0xb6, 0xe5, 0x20, 0xc3, 0xce, 0xf8, 0xd6, 0xf5, 0x8a, 0x9a, 0x28, 0x13, 0xcf, 0xf0, 0xf7, 0x04, 0x1f, 0x87, 0xfb, 0xfb, 0x84, 0x31, 0xe0, 0x20, 0xed, 0xe1, 0xd4, 0xea, 0xf1, 0x9e, 0x23, 0xb9, 0x83, 0x44, 0x5c, 0x59, 0x15, 0xb5, 0x4a, 0xdf, 0xb5, 0x57, 0xfc, 0x20, 0xd0, 0x05, 0x8f, 0x40, 0xf5, 0xe0, 0x98, 0x25, 0xdb, 0xa8, 0xd8, 0xf2, 0x0c, 0x00, 0xf4, 0x3b, 0x3a, 0xee, 0xbb, 0x61, 0x57, 0xbe, 0x32, 0xec, 0x54, 0x62, 0x7d, 0x5d, 0x42, 0xab, 0x81, 0x3c, 0xf9, 0x7f, 0x09, 0x5d, 0x26, 0xdb, 0x80, 0x36, 0xc1, 0x2e, 0x82, 0xcb, 0x96, 0x3e, 0x80, 0x01, 0x16, 0x7e, 0x61, 0xab, 0x39, 0x3b, 0x4c, 0xca, 0x75, 0x5e, 0xce, 0xa8, 0x69, 0x95, 0x4e, 0x32, 0x3f, 0xa5, 0x26, 0x2c, 0x5f, 0xda, 0x3e, 0x0b, 0xe9, 0xa5, 0x1e, 0x5a, 0xf5, 0x1f, 0xa6, 0x44, 0x48, 0x24, 0xfb, 0x83, 0x7c, 0xc6, 0x7b, 0xe5, 0x37, 0xa8, 0x75, 0x69, 0xc3, 0x0c, 0xf0, 0x11, 0x4d, 0x39, 0xa0, 0x39, 0x42, 0xde, 0x4e, 0x1c, 0xd5, 0x23, 0x35, 0x5d, 0xab, 0x1a, 0xf3, 0x60, 0x80, 0xa9, 0xa9, 0xa5, 0x48, 0xbe, 0x1c, 0x2a, 0x7f, 0xbe, 0x54, 0x33, 0x77, 0x23, 0x15, 0xd2, 0x83, 0xe5, 0x15, 0x6d, 0xf6, 0x48, 0xbe, 0xe4, 0xb7, 0xdc, 0xda, 0x74, 0xf1, 0x59, 0x05, 0xd5, 0x42, 0xbe, 0x54, 0x87, 0x3c, 0x15, 0xc5, 0x3f, 0xf4, 0x2a, 0xca, 0xbf, 0x8c, 0x56, 0xf2, 0x57, 0xd7, 0x64, 0x72, 0x2d, 0xb4, 0xe9, 0xc7, 0x18, 0xe1, 0x20, 0x98, 0xa3, 0x45, 0x74, 0x86, 0xa6, 0xc9, 0x47, 0xac, 0x2d, 0xe0, 0xaf, 0x53, 0xe8, 0x2c, 0xf9, 0x50, 0xbb, 0x37, 0xca, 0x29, 0xc8, 0xda, 0xdf, 0xa3, 0x64, 0x6d, 0xb4, 0x98, 0x2a, 0xf5, 0x72, 0xd3, 0x9b, 0x26, 0x8c, 0x7f, 0x96, 0xb0, 0x3e, 0xf6, 0xb6, 0x53, 0xc8, 0x79, 0x45, 0xf2, 0x9b, 0xc5, };
15915 static const u8 ed25519_692_test_vectors_expected_sig[] = {
15916 	0xbd, 0x13, 0xf6, 0x36, 0x2c, 0x07, 0x07, 0x89, 0x22, 0xf3, 0x0c, 0x63, 0x30, 0x75, 0x1b, 0xf6, 0xe7, 0xcf, 0x42, 0xa7, 0x69, 0x16, 0xee, 0x65, 0x3e, 0xb1, 0x7a, 0xcc, 0xff, 0x1f, 0xbb, 0xca, 0x35, 0x25, 0x8c, 0x4c, 0xbc, 0x58, 0x2a, 0x5e, 0x8c, 0xc9, 0x4f, 0xd2, 0xc7, 0xed, 0xeb, 0x53, 0x76, 0x2f, 0x1f, 0xc2, 0x31, 0x23, 0xd7, 0xf4, 0xf1, 0x45, 0x40, 0x9b, 0x31, 0xcd, 0x38, 0x02, };
15917 static const ec_test_case ed25519_692_test_case = {
15918 	.name = "EDDSA25519-SHA512/wei25519 692",
15919 	.ec_str_p = &wei25519_str_params,
15920 	.priv_key = ed25519_692_test_vectors_priv_key,
15921 	.priv_key_len = sizeof(ed25519_692_test_vectors_priv_key),
15922 	.nn_random = NULL,
15923 	.hash_type = SHA512,
15924 	.msg = (const char *)ed25519_692_test_vectors_message,
15925 	.msglen = sizeof(ed25519_692_test_vectors_message),
15926 	.sig_type = EDDSA25519,
15927 	.exp_sig = ed25519_692_test_vectors_expected_sig,
15928 	.exp_siglen = sizeof(ed25519_692_test_vectors_expected_sig),
15929 	.adata = NULL,
15930 	.adata_len = 0
15931 };
15932 
15933 /************************************************/
15934 static const u8 ed25519_693_test_vectors_priv_key[] = {
15935 	0x55, 0x32, 0x8b, 0xe4, 0xb3, 0x70, 0x82, 0x27, 0x33, 0xff, 0x39, 0x89, 0xa6, 0xa3, 0x28, 0x2d, 0x65, 0xfe, 0x8f, 0x20, 0x7a, 0xb7, 0x27, 0x0d, 0x7c, 0x2e, 0x72, 0x7c, 0xa3, 0xcf, 0xaa, 0xc4, };
15936 static const u8 ed25519_693_test_vectors_message[] = {
15937 	0x6c, 0x24, 0xc9, 0xaf, 0xbb, 0xf1, 0x2d, 0xca, 0xee, 0x6f, 0x10, 0xe4, 0x08, 0x92, 0x52, 0xf2, 0xc6, 0x0b, 0x2a, 0xb9, 0x3a, 0x02, 0xc1, 0x60, 0x2f, 0xb5, 0xde, 0x4c, 0xe3, 0xbd, 0x92, 0x3e, 0xb0, 0x2f, 0xe1, 0x03, 0x9f, 0xdc, 0x15, 0x99, 0x6a, 0x44, 0x69, 0x15, 0xe7, 0x67, 0xde, 0xe0, 0x17, 0x6d, 0xdd, 0xb7, 0x8e, 0x9d, 0x6b, 0xbf, 0x06, 0x96, 0x75, 0x77, 0x5a, 0x82, 0x9d, 0xd8, 0x08, 0xd3, 0x76, 0xb0, 0xcf, 0x79, 0x20, 0xbf, 0x1a, 0x66, 0xe1, 0x30, 0x3b, 0xa5, 0x24, 0x19, 0x78, 0x5f, 0x25, 0xf2, 0x8b, 0xb3, 0x38, 0x99, 0xeb, 0xde, 0x84, 0x0c, 0x0a, 0xb1, 0x4b, 0x91, 0x9a, 0x65, 0x80, 0xcb, 0xaa, 0xc3, 0xa8, 0x05, 0x62, 0x7b, 0x9c, 0x4a, 0x77, 0xba, 0xa1, 0x6f, 0x82, 0x5a, 0x9e, 0xac, 0x2d, 0x6d, 0x36, 0x41, 0x65, 0x14, 0x93, 0x37, 0x0e, 0x50, 0xee, 0xe9, 0x4c, 0x74, 0x04, 0x97, 0x64, 0x36, 0x56, 0x05, 0xab, 0x4d, 0xac, 0x1a, 0x03, 0x02, 0x27, 0xa3, 0x30, 0xaa, 0x17, 0x8f, 0x2f, 0x8d, 0xa3, 0x77, 0xaf, 0x73, 0xf0, 0xbb, 0x04, 0x0b, 0xac, 0x12, 0x36, 0x6e, 0x65, 0xe0, 0x59, 0x10, 0x55, 0xf9, 0xf2, 0x3e, 0xac, 0xa3, 0x5e, 0x96, 0x88, 0xd8, 0x37, 0xa3, 0xc0, 0xd9, 0x9c, 0x16, 0x8f, 0xd8, 0x86, 0xac, 0xc9, 0x22, 0xcf, 0x37, 0xa7, 0x11, 0x8e, 0xf8, 0xa4, 0x4b, 0xb0, 0xa4, 0xfa, 0x42, 0x88, 0x04, 0x93, 0x09, 0xa7, 0xdc, 0x1b, 0xed, 0x80, 0x62, 0x1e, 0x10, 0x63, 0xe3, 0xe5, 0x92, 0xc0, 0xfb, 0xa4, 0x2d, 0x73, 0x98, 0xeb, 0x15, 0xf7, 0x40, 0x28, 0xac, 0x15, 0xd7, 0xed, 0x65, 0xa6, 0x36, 0x8a, 0x13, 0xb7, 0xf9, 0x56, 0xd1, 0x95, 0x47, 0xeb, 0x50, 0x6c, 0xe7, 0xec, 0x90, 0x73, 0x4e, 0xb9, 0x49, 0xcf, 0xf1, 0xd9, 0x8c, 0xe4, 0x14, 0xf1, 0x0a, 0xdc, 0xba, 0x8c, 0x00, 0x73, 0x20, 0x01, 0x87, 0x50, 0xa7, 0x1b, 0xd3, 0x6d, 0x3b, 0x6b, 0xfd, 0x61, 0x27, 0x05, 0x45, 0x08, 0xe3, 0xef, 0x65, 0xd9, 0x98, 0x48, 0x51, 0x4d, 0x33, 0xd6, 0x8b, 0x58, 0xe3, 0xa4, 0xb2, 0x24, 0xf7, 0x9b, 0x6e, 0x34, 0xdd, 0x48, 0x03, 0x40, 0x46, 0x7f, 0xe7, 0xf0, 0x25, 0xcc, 0x88, 0x21, 0x3d, 0x80, 0x8f, 0xbb, 0x5b, 0x91, 0xe2, 0xe4, 0x3c, 0xf9, 0xd9, 0x50, 0x64, 0x07, 0x98, 0x65, 0x92, 0x73, 0xd4, 0x7a, 0x25, 0xf1, 0xf0, 0x13, 0x2f, 0x68, 0x82, 0xfa, 0xad, 0xba, 0xfb, 0xa2, 0x8f, 0xee, 0x5f, 0xa1, 0x72, 0x72, 0xc1, 0xa9, 0x00, 0x11, 0x72, 0xb3, 0xab, 0x6f, 0xf2, 0xc3, 0x15, 0xf2, 0x6c, 0x07, 0x73, 0x44, 0x05, 0xb5, 0xee, 0x8b, 0x5e, 0x4f, 0x08, 0xe1, 0xe3, 0xb8, 0xae, 0xa0, 0x19, 0x46, 0x7f, 0xb0, 0x71, 0x88, 0x7f, 0x19, 0x19, 0x01, 0xa2, 0x1c, 0x59, 0x76, 0xc1, 0xca, 0x8a, 0xaf, 0x0a, 0x1d, 0x4a, 0x2e, 0x69, 0x8e, 0x76, 0x23, 0xe9, 0xbb, 0xe9, 0xca, 0x2a, 0x67, 0xa1, 0x53, 0xa1, 0x6f, 0x89, 0x5e, 0x6d, 0xd9, 0xea, 0x92, 0x44, 0x41, 0xb4, 0xbd, 0x0b, 0x67, 0x45, 0x52, 0xe3, 0x98, 0xb8, 0xd9, 0x70, 0x34, 0x3a, 0x9b, 0xc7, 0x76, 0xa3, 0xa3, 0xfc, 0x1a, 0x86, 0x60, 0xc5, 0x62, 0x5d, 0x60, 0x81, 0xb5, 0xd8, 0x7f, 0x0f, 0x8a, 0xc9, 0xf0, 0x7a, 0xb5, 0xab, 0xe7, 0x7c, 0xdb, 0x8e, 0x30, 0xd2, 0xfd, 0x1f, 0x6f, 0x46, 0x52, 0x5c, 0x75, 0xdd, 0x0d, 0xd1, 0xca, 0x32, 0x81, 0xcc, 0x89, 0x34, 0x6f, 0xb3, 0xe6, 0xd7, 0x38, 0x8e, 0xbe, 0xe1, 0x54, 0xcb, 0x59, 0xbd, 0x9e, 0x95, 0xed, 0x6a, 0x41, 0xd5, 0xdf, 0x66, 0x8b, 0x59, 0xea, 0x13, 0x78, 0x68, 0xeb, 0x12, 0x0b, 0x8a, 0x2c, 0xfd, 0xf4, 0x67, 0x44, 0x14, 0xfd, 0x27, 0x96, 0x99, 0xf2, 0x8b, 0x5a, 0x5c, 0xcc, 0x2e, 0x2f, 0xc8, 0x02, 0xa4, 0xc9, 0xe0, 0xb8, 0x5b, 0x76, 0xf2, 0x0f, 0x6b, 0xce, 0x2a, 0x49, 0x54, 0x88, 0x6f, 0xc4, 0x02, 0x67, 0x0a, 0x71, 0xef, 0xd2, 0x61, 0xf5, 0xdd, 0x7b, 0xca, 0x16, 0x88, 0x4a, 0x28, 0x7c, 0x62, 0x2f, 0xd4, 0x45, 0xf6, 0x8d, 0x44, 0x15, 0x1c, 0xc0, 0x13, 0x4b, 0x22, 0x9d, 0xa3, 0x8d, 0xaa, 0xab, 0x81, 0xb5, 0xc9, 0x60, 0xd5, 0x77, 0x00, 0xca, 0x92, 0xb2, 0x6d, 0x0b, 0x14, 0x21, 0x34, 0xce, 0x94, 0xb7, 0xbe, 0x6c, 0x18, 0x61, 0x0e, 0xa2, 0x13, 0x6f, 0x8b, 0xa8, 0x32, 0x9a, 0x2e, 0x8c, 0x00, 0x0b, 0x8f, 0x02, 0xfe, 0x05, 0xbc, 0xf7, 0x2c, 0xb7, 0x1f, 0x8c, 0x72, 0x53, 0x5f, 0xfc, 0xd8, 0x18, 0xe3, 0x8e, 0x79, 0x92, 0xa8, 0xf0, 0xc3, 0x2a, 0xc6, 0x21, 0x77, 0xd1, 0x52, 0x2a, 0xe5, 0x52, 0xc6, 0x0c, 0x1e, 0xe6, 0x16, 0xb7, 0x5e, 0x4b, 0x34, 0x42, 0xe7, 0x96, 0x57, 0xe4, 0xa3, 0x33, 0xc0, 0xb3, 0xd7, 0x44, 0xea, 0xf2, 0x60, 0xd0, 0xc3, 0x36, 0x93, 0x16, 0x86, 0xa6, 0xd6, 0x68, 0xc6, 0x4f, 0xef, 0x44, 0x00, 0x52, 0x35, 0x2c, 0x2b, 0x25, 0x8c, 0xfb, 0x65, };
15938 static const u8 ed25519_693_test_vectors_expected_sig[] = {
15939 	0xf5, 0x8d, 0xb1, 0x9f, 0xd8, 0x34, 0xe1, 0x51, 0x94, 0xc3, 0xc0, 0xf8, 0xa6, 0xa5, 0x0e, 0xbc, 0x4c, 0xf0, 0x74, 0xe8, 0x0e, 0xa2, 0xe7, 0x0c, 0xda, 0xf1, 0xe1, 0x69, 0xbd, 0x51, 0xeb, 0xd0, 0x99, 0x0b, 0xad, 0x77, 0xc4, 0xfa, 0x20, 0x8b, 0x8d, 0xd1, 0xe2, 0xc8, 0x57, 0x4c, 0x01, 0xb5, 0xf5, 0x96, 0xc8, 0xdf, 0xa6, 0xbb, 0x8e, 0x6a, 0xe3, 0xa4, 0x7f, 0xf4, 0x12, 0xe7, 0xe2, 0x09, };
15940 static const ec_test_case ed25519_693_test_case = {
15941 	.name = "EDDSA25519-SHA512/wei25519 693",
15942 	.ec_str_p = &wei25519_str_params,
15943 	.priv_key = ed25519_693_test_vectors_priv_key,
15944 	.priv_key_len = sizeof(ed25519_693_test_vectors_priv_key),
15945 	.nn_random = NULL,
15946 	.hash_type = SHA512,
15947 	.msg = (const char *)ed25519_693_test_vectors_message,
15948 	.msglen = sizeof(ed25519_693_test_vectors_message),
15949 	.sig_type = EDDSA25519,
15950 	.exp_sig = ed25519_693_test_vectors_expected_sig,
15951 	.exp_siglen = sizeof(ed25519_693_test_vectors_expected_sig),
15952 	.adata = NULL,
15953 	.adata_len = 0
15954 };
15955 
15956 /************************************************/
15957 static const u8 ed25519_694_test_vectors_priv_key[] = {
15958 	0x7d, 0xa0, 0x5f, 0x04, 0xe5, 0xd3, 0x8b, 0x98, 0x9b, 0x83, 0xf7, 0x2f, 0x7a, 0xb2, 0x6c, 0x13, 0x87, 0x76, 0x75, 0x8f, 0x4f, 0x57, 0x7e, 0x49, 0xdc, 0x73, 0xd6, 0x01, 0x3f, 0xf4, 0x37, 0x59, };
15959 static const u8 ed25519_694_test_vectors_message[] = {
15960 	0xa6, 0xa8, 0x61, 0xd8, 0x94, 0x7c, 0x5c, 0xd6, 0xad, 0x08, 0x19, 0x60, 0x2e, 0x32, 0xea, 0x76, 0x81, 0xc8, 0xf7, 0x30, 0x10, 0xee, 0xe5, 0x53, 0xe5, 0xde, 0xfb, 0xf7, 0x98, 0x20, 0x98, 0xb5, 0xf7, 0xb3, 0x99, 0x24, 0xbb, 0x79, 0x59, 0xad, 0x64, 0xc3, 0x03, 0x26, 0xbe, 0xd5, 0x60, 0xbf, 0x51, 0xe9, 0x98, 0x3c, 0xda, 0x5d, 0xff, 0x4f, 0x31, 0x1e, 0xea, 0x24, 0xcb, 0xe6, 0x8c, 0x61, 0x06, 0xce, 0xac, 0x9b, 0x84, 0x3a, 0xa4, 0xe2, 0xad, 0x1b, 0x6f, 0x8a, 0xe1, 0xe4, 0xf9, 0x68, 0x71, 0xfc, 0x02, 0x5b, 0xe4, 0xa6, 0x16, 0x38, 0x5f, 0xf2, 0xd4, 0xb7, 0xf5, 0x68, 0x29, 0xab, 0xef, 0xaf, 0x6a, 0xac, 0xbb, 0x78, 0x0d, 0x6c, 0xbb, 0xc9, 0x51, 0xb6, 0xe0, 0x5a, 0x78, 0x7f, 0x88, 0x5e, 0x33, 0x25, 0x61, 0x16, 0x65, 0xec, 0xc9, 0x24, 0x27, 0x4a, 0xa5, 0x31, 0xbc, 0x13, 0x3f, 0x62, 0xc7, 0x6c, 0xb3, 0xad, 0x14, 0x8f, 0x3c, 0x95, 0x79, 0xa8, 0x15, 0xa1, 0x42, 0x00, 0xb7, 0x64, 0x8d, 0xae, 0x0b, 0x07, 0xb3, 0x27, 0xd3, 0xbf, 0xcc, 0xdb, 0x6f, 0xe3, 0xb6, 0xcb, 0xd7, 0x0e, 0xa6, 0x5e, 0x6c, 0x0c, 0xc2, 0x51, 0x6a, 0x89, 0x66, 0x96, 0xd0, 0x7b, 0x2e, 0x77, 0x71, 0x3b, 0x0b, 0xee, 0x3b, 0x92, 0xfb, 0x1b, 0x6f, 0x75, 0xb0, 0x82, 0x0a, 0x5c, 0xb6, 0x2c, 0x5f, 0xe6, 0x20, 0x40, 0x03, 0x94, 0x3e, 0x24, 0x85, 0x71, 0x66, 0xfb, 0xdf, 0x57, 0x1f, 0x11, 0x5d, 0x45, 0xf4, 0x2e, 0x75, 0x90, 0x1d, 0xf8, 0xb1, 0x2c, 0x32, 0x61, 0x8a, 0xac, 0xb0, 0xd2, 0x42, 0x86, 0xc8, 0xd3, 0x03, 0x96, 0x05, 0x1f, 0xc2, 0x72, 0xaa, 0x17, 0xf4, 0xd2, 0xd4, 0x74, 0x61, 0x15, 0x2a, 0xac, 0xd3, 0xfa, 0xa2, 0xb7, 0xb2, 0x08, 0x31, 0x22, 0x78, 0xe8, 0x09, 0x24, 0x05, 0x92, 0xd1, 0xd1, 0xaa, 0x58, 0x5c, 0x56, 0x28, 0x0e, 0x66, 0xff, 0xd9, 0x2b, 0x57, 0x17, 0xd0, 0xcd, 0x1e, 0xb9, 0xfb, 0x74, 0x01, 0xde, 0xf8, 0x79, 0x48, 0x7c, 0x37, 0x4e, 0x5c, 0x53, 0x0b, 0x6f, 0xeb, 0xf9, 0x11, 0x12, 0x25, 0x74, 0xd2, 0x4f, 0xe1, 0x04, 0xb4, 0xf4, 0x5c, 0x7c, 0x60, 0x1e, 0x6c, 0x91, 0x7d, 0x3c, 0x18, 0x82, 0xc1, 0xad, 0x3c, 0x55, 0x5d, 0x8f, 0x2c, 0xe9, 0x55, 0xb5, 0xa1, 0x0d, 0xb0, 0xd5, 0xa8, 0xb8, 0xac, 0x7a, 0x62, 0x66, 0xb2, 0xe6, 0xb2, 0x7a, 0xd0, 0xee, 0x34, 0xf4, 0x7a, 0xd8, 0x57, 0x36, 0x7d, 0x52, 0xf7, 0x09, 0x6d, 0x4b, 0xac, 0xef, 0x0e, 0x46, 0x72, 0x54, 0x88, 0x42, 0x4b, 0x93, 0xb8, 0x9a, 0xcd, 0x42, 0x9f, 0xfb, 0x5e, 0xf3, 0x3a, 0x0b, 0x08, 0x1d, 0xd0, 0x94, 0x79, 0x67, 0x91, 0x96, 0x02, 0x3c, 0x39, 0x67, 0xf4, 0x4a, 0xd4, 0x1e, 0xb1, 0xa2, 0x39, 0x55, 0x27, 0xfd, 0x3b, 0x79, 0x76, 0x8f, 0x1b, 0x88, 0x5f, 0x04, 0x29, 0xb4, 0x95, 0xab, 0x60, 0x52, 0x56, 0x91, 0xbe, 0x84, 0x65, 0x06, 0x32, 0xa2, 0xf6, 0x6c, 0xb6, 0x3a, 0xd5, 0xbf, 0x2f, 0x6a, 0xe7, 0x0b, 0x66, 0x8c, 0x5a, 0x19, 0x3f, 0x74, 0x99, 0xfc, 0x4f, 0xc4, 0x2c, 0xf8, 0xcb, 0x30, 0x8c, 0xe5, 0x02, 0x9a, 0x50, 0x27, 0xba, 0xbe, 0xf5, 0x5d, 0x19, 0x25, 0xec, 0xfb, 0xa9, 0xf2, 0x7e, 0xb6, 0x08, 0x16, 0x19, 0xed, 0x0d, 0xf8, 0x56, 0x9f, 0xd8, 0x0e, 0x9d, 0xa1, 0x04, 0xdb, 0x39, 0xb5, 0xb8, 0x14, 0x0b, 0xfe, 0xbe, 0xbd, 0x29, 0x08, 0x54, 0x40, 0x06, 0x58, 0x19, 0xde, 0xba, 0x8d, 0x46, 0x9a, 0xe8, 0xb3, 0xea, 0x6d, 0x3b, 0xac, 0x58, 0x91, 0xf9, 0xa4, 0xdd, 0xfb, 0x7f, 0x1f, 0x06, 0xd1, 0x3c, 0x31, 0xa0, 0x7e, 0xe5, 0x3f, 0xb5, 0x4b, 0xc9, 0x7b, 0xd0, 0x86, 0x96, 0x39, 0x4c, 0x38, 0xe7, 0xf3, 0x68, 0x0c, 0x0f, 0x02, 0xf9, 0x75, 0xf4, 0x69, 0x92, 0x11, 0x47, 0xa4, 0x09, 0x85, 0x90, 0x97, 0x81, 0x3b, 0x4c, 0x3f, 0xa4, 0x3d, 0x17, 0x4a, 0xc4, 0x02, 0xf1, 0xa5, 0x28, 0xcb, 0x5f, 0xc4, 0xb8, 0x07, 0x51, 0x84, 0x32, 0xef, 0xf3, 0x34, 0x07, 0xa1, 0x11, 0xca, 0x3a, 0x3d, 0x7e, 0x9e, 0x84, 0x13, 0x5a, 0xba, 0xc8, 0xa8, 0xf5, 0x2e, 0xa6, 0x31, 0xc8, 0x6d, 0x74, 0xa1, 0xc6, 0xe5, 0x74, 0x9e, 0xdd, 0x14, 0x91, 0xc0, 0x02, 0x4e, 0x7d, 0xe7, 0xfe, 0x52, 0x85, 0x68, 0x29, 0xb7, 0x2f, 0xd1, 0x3d, 0xa6, 0x3a, 0x1a, 0x23, 0x43, 0x34, 0x9d, 0xf6, 0x62, 0xab, 0x31, 0x63, 0x53, 0x60, 0x32, 0x34, 0x6e, 0x53, 0x47, 0xf0, 0x43, 0xff, 0xf5, 0x28, 0xbf, 0x67, 0x15, 0x09, 0x22, 0xff, 0xf2, 0x02, 0x6b, 0xab, 0x74, 0x2d, 0xb9, 0xca, 0xe7, 0xcb, 0x2e, 0x3c, 0x74, 0x58, 0x07, 0x19, 0x65, 0x2c, 0x28, 0x44, 0x7c, 0x5e, 0x20, 0x98, 0x23, 0x17, 0x97, 0xee, 0x6e, 0xf1, 0x23, 0x1f, 0x57, 0x92, 0x05, 0x4b, 0xc3, 0x35, 0x9a, 0x32, 0xc8, 0x6d, 0x2f, 0x94, 0xf8, 0x5f, 0xa7, 0xd4, 0xa7, 0x41, 0x9d, 0xd2, 0x41, 0xff, 0x66, 0x2a, };
15961 static const u8 ed25519_694_test_vectors_expected_sig[] = {
15962 	0x05, 0xf1, 0x17, 0xf9, 0xbc, 0x3e, 0xa5, 0x5d, 0x45, 0x5e, 0x9e, 0xf1, 0x35, 0xe9, 0x2e, 0x76, 0x65, 0xd1, 0x80, 0x70, 0xd8, 0xf5, 0xe3, 0x75, 0xdf, 0x67, 0xbe, 0x18, 0x17, 0xce, 0x14, 0x35, 0x7a, 0x55, 0xe7, 0x01, 0x66, 0xf3, 0x26, 0xb7, 0x7d, 0x85, 0x24, 0x32, 0x27, 0xcf, 0x67, 0xd8, 0xf2, 0xe0, 0xbf, 0x84, 0x40, 0xca, 0xbf, 0xb0, 0x52, 0x75, 0xb3, 0x73, 0xf1, 0xe1, 0x19, 0x0e, };
15963 static const ec_test_case ed25519_694_test_case = {
15964 	.name = "EDDSA25519-SHA512/wei25519 694",
15965 	.ec_str_p = &wei25519_str_params,
15966 	.priv_key = ed25519_694_test_vectors_priv_key,
15967 	.priv_key_len = sizeof(ed25519_694_test_vectors_priv_key),
15968 	.nn_random = NULL,
15969 	.hash_type = SHA512,
15970 	.msg = (const char *)ed25519_694_test_vectors_message,
15971 	.msglen = sizeof(ed25519_694_test_vectors_message),
15972 	.sig_type = EDDSA25519,
15973 	.exp_sig = ed25519_694_test_vectors_expected_sig,
15974 	.exp_siglen = sizeof(ed25519_694_test_vectors_expected_sig),
15975 	.adata = NULL,
15976 	.adata_len = 0
15977 };
15978 
15979 /************************************************/
15980 static const u8 ed25519_695_test_vectors_priv_key[] = {
15981 	0x1b, 0x8e, 0xc6, 0x58, 0x80, 0xed, 0xbf, 0x03, 0x9a, 0x13, 0xe9, 0x70, 0xb1, 0x5a, 0xa6, 0x7e, 0x19, 0x2a, 0xa0, 0x2c, 0xa6, 0x5c, 0xff, 0x9a, 0xda, 0x17, 0xd4, 0x55, 0x8f, 0x40, 0x13, 0x7d, };
15982 static const u8 ed25519_695_test_vectors_message[] = {
15983 	0x37, 0xf1, 0x8b, 0x7f, 0x64, 0xc5, 0x13, 0x34, 0x79, 0xd6, 0xda, 0xe3, 0xbe, 0xf6, 0x79, 0xcd, 0xc2, 0x1e, 0xce, 0x3f, 0x5b, 0x57, 0x9a, 0x6a, 0x9c, 0x3f, 0xa2, 0xe5, 0x9e, 0x9b, 0xe8, 0x7d, 0x20, 0x09, 0xf7, 0x4e, 0x1c, 0xfd, 0xac, 0xcb, 0x1c, 0xe3, 0x7d, 0x00, 0x70, 0x23, 0x69, 0xbd, 0x16, 0x9d, 0x94, 0xfd, 0xcf, 0x85, 0xaf, 0x9f, 0xa3, 0x21, 0x7d, 0x27, 0xe6, 0xed, 0x6d, 0x1d, 0x8e, 0x5d, 0xf7, 0x61, 0x5e, 0x8e, 0x37, 0xea, 0x55, 0xde, 0x1f, 0xd0, 0xb0, 0x6d, 0x77, 0xb4, 0xc8, 0x3b, 0x92, 0x9d, 0x80, 0x58, 0x6f, 0xa0, 0x69, 0x4b, 0xe7, 0x2e, 0xc8, 0xb3, 0x65, 0xad, 0x2c, 0xbc, 0xdd, 0x2b, 0x1a, 0xd8, 0xcf, 0x7f, 0x03, 0x6d, 0xfa, 0x4d, 0xaa, 0x1a, 0x90, 0x36, 0xcd, 0xb1, 0x20, 0x43, 0x22, 0x27, 0xb1, 0xf0, 0x7b, 0x88, 0x66, 0xb1, 0x22, 0x12, 0x03, 0x09, 0xeb, 0x91, 0x4a, 0xb8, 0x4c, 0xdd, 0xeb, 0xa1, 0xde, 0xc4, 0x8a, 0xb9, 0x26, 0x36, 0x72, 0x85, 0x88, 0xfe, 0xdb, 0x3a, 0xaa, 0xd7, 0xe7, 0xdb, 0xb2, 0xac, 0x30, 0xe6, 0x3c, 0x6f, 0x5f, 0x90, 0xfc, 0x6c, 0xe6, 0x2d, 0x6d, 0x3b, 0xd8, 0x8b, 0x0d, 0x5a, 0xac, 0xfa, 0x61, 0xde, 0x9f, 0x32, 0x67, 0xb3, 0x00, 0x91, 0x7b, 0x57, 0xa4, 0x80, 0x36, 0xab, 0x20, 0xc9, 0xa0, 0x54, 0x46, 0xb8, 0x76, 0x74, 0x94, 0xaf, 0x24, 0x9e, 0x7d, 0xe7, 0xbc, 0x50, 0x7a, 0x22, 0x07, 0xcc, 0x95, 0x6f, 0x71, 0x84, 0x55, 0x5a, 0x7d, 0x5d, 0x88, 0x83, 0xbb, 0x4b, 0x3e, 0x93, 0xf2, 0xdc, 0xfc, 0x57, 0xb0, 0xda, 0x86, 0x38, 0x65, 0x8d, 0xcd, 0xce, 0x88, 0x5d, 0x44, 0xd9, 0xcc, 0x68, 0xb1, 0xd8, 0x17, 0x0a, 0x36, 0x77, 0xcc, 0x5e, 0x50, 0xcb, 0xf3, 0x3d, 0x54, 0x3e, 0xba, 0xe4, 0x47, 0x7d, 0x92, 0x39, 0xcf, 0x83, 0x38, 0x4e, 0xc5, 0x9b, 0x42, 0x33, 0xe8, 0xff, 0x33, 0x43, 0xf0, 0x6f, 0x30, 0x18, 0x77, 0x72, 0x9a, 0x53, 0xd4, 0x20, 0xbf, 0x01, 0xc6, 0x2e, 0x66, 0xab, 0x7f, 0xe5, 0x5d, 0xd8, 0x7e, 0xe8, 0x23, 0xa5, 0x8f, 0xcb, 0x87, 0x87, 0x0e, 0x1f, 0x52, 0xe8, 0x79, 0x17, 0x7c, 0xd4, 0x39, 0xc5, 0x33, 0xf5, 0xa2, 0x23, 0xe5, 0xa3, 0x43, 0x6f, 0xe9, 0xd6, 0x42, 0x65, 0x48, 0xda, 0xcf, 0xc8, 0x6a, 0x08, 0x46, 0xd3, 0xed, 0x23, 0xac, 0x04, 0x25, 0x63, 0xe8, 0x87, 0xff, 0x46, 0xaa, 0xd0, 0x05, 0xf4, 0xe1, 0xde, 0xe3, 0xee, 0x0e, 0xe4, 0xc2, 0x7a, 0x72, 0x51, 0x70, 0x9a, 0xe4, 0x0a, 0xbc, 0x5e, 0x25, 0x68, 0x64, 0xe4, 0x78, 0x5a, 0x4e, 0xdd, 0x8b, 0x2a, 0xdf, 0x1b, 0xc5, 0xb4, 0x01, 0x8e, 0x28, 0xd0, 0xb1, 0x75, 0x86, 0x7b, 0x02, 0xd0, 0x52, 0xa6, 0xe1, 0x7e, 0x41, 0x1a, 0x3d, 0x8b, 0xeb, 0x2a, 0x42, 0x08, 0xb7, 0x6c, 0xc6, 0x21, 0xfd, 0x18, 0xbe, 0x14, 0x8e, 0x23, 0x5d, 0x55, 0xaa, 0x71, 0x27, 0x70, 0x65, 0x57, 0xde, 0xc0, 0x53, 0xa1, 0x3f, 0x1a, 0x47, 0xdf, 0xda, 0x40, 0x5b, 0x3f, 0xe5, 0xbd, 0x28, 0xef, 0x5d, 0x34, 0x86, 0x19, 0xf5, 0x1e, 0x59, 0x5e, 0xf5, 0x05, 0x5f, 0x83, 0x9e, 0xfa, 0xf1, 0x10, 0xe4, 0x90, 0x16, 0x31, 0xac, 0x31, 0xa0, 0x2f, 0x4f, 0x7e, 0xe4, 0x24, 0xa3, 0xa2, 0xc3, 0xe0, 0x0d, 0x26, 0x02, 0xd2, 0xcc, 0x1e, 0x49, 0x29, 0x06, 0xee, 0xa4, 0x20, 0xa9, 0x26, 0x82, 0x38, 0xac, 0x66, 0x22, 0xa0, 0x89, 0x74, 0xe5, 0x73, 0x02, 0x92, 0xe6, 0xed, 0x51, 0x02, 0x56, 0xef, 0xde, 0x66, 0x7e, 0x0d, 0x9a, 0x0f, 0xf2, 0x21, 0x3f, 0x54, 0x12, 0x0c, 0xcd, 0x81, 0xff, 0xaa, 0x6b, 0x7c, 0xc4, 0x81, 0x41, 0xa2, 0xb7, 0x29, 0x85, 0x2a, 0xf5, 0x83, 0xd2, 0x6a, 0xa5, 0x1f, 0xbd, 0xe6, 0x7b, 0xe4, 0xdf, 0x14, 0xe5, 0x20, 0xc2, 0x25, 0x7a, 0x73, 0xc5, 0xc2, 0xe3, 0xc3, 0xd8, 0x7d, 0xfb, 0x25, 0x36, 0x11, 0x75, 0xfd, 0x18, 0xab, 0xd7, 0xe9, 0x9a, 0xa0, 0x9b, 0x85, 0xf8, 0x8f, 0x19, 0xc8, 0xd8, 0x2d, 0x45, 0x85, 0x8f, 0x31, 0x44, 0xc5, 0xdf, 0xb7, 0xa4, 0x9e, 0xde, 0x45, 0xb4, 0xef, 0xd8, 0x71, 0x05, 0x92, 0xa3, 0x72, 0x06, 0x36, 0xe7, 0xe8, 0x89, 0xc7, 0xe2, 0x2a, 0xd1, 0x3b, 0x2d, 0x44, 0xbb, 0x7e, 0x2b, 0x47, 0xb2, 0x96, 0x3a, 0x5f, 0xa3, 0xf2, 0x55, 0x7b, 0x85, 0xbc, 0x0c, 0x69, 0x3d, 0xe3, 0xd2, 0x2e, 0xf9, 0x46, 0x4f, 0x7b, 0x81, 0x4a, 0x20, 0xa4, 0x67, 0x6a, 0xd2, 0x6f, 0xca, 0xa0, 0x35, 0x44, 0xc6, 0xaa, 0xd4, 0x12, 0x83, 0x09, 0x5f, 0xcd, 0x12, 0x10, 0xaa, 0x8c, 0xc0, 0x29, 0xff, 0x5a, 0x26, 0x00, 0x5a, 0x89, 0x12, 0x26, 0xc2, 0x98, 0xe9, 0x4a, 0x52, 0xaa, 0x71, 0x33, 0x91, 0x3e, 0xc9, 0xd2, 0x2a, 0x5b, 0x2a, 0xc0, 0xbc, 0x6f, 0x15, 0xb2, 0x51, 0xd0, 0xb9, 0x38, 0x89, 0x21, 0x3c, 0xd1, 0xb1, 0xe5, 0xc6, 0xfd, 0x08, 0xf1, 0xa8, 0xf5, 0xcb, 0xd4, 0x21, 0x53, 0x29, 0xa3, };
15984 static const u8 ed25519_695_test_vectors_expected_sig[] = {
15985 	0xbf, 0xf2, 0x69, 0xa3, 0x5d, 0x6c, 0x8e, 0x55, 0x2c, 0xe7, 0x16, 0xd1, 0x63, 0x81, 0x81, 0xce, 0x85, 0x83, 0xb4, 0x5c, 0x0e, 0xc5, 0x93, 0xb4, 0xe5, 0x8c, 0x40, 0xac, 0x76, 0xe7, 0xf8, 0x5c, 0xa1, 0xda, 0xff, 0xfd, 0x68, 0x54, 0x1e, 0x62, 0x3a, 0x1e, 0x35, 0xa7, 0xc0, 0x97, 0x26, 0x88, 0xb2, 0x5e, 0xed, 0x72, 0xf4, 0xda, 0x57, 0xec, 0xa1, 0x68, 0x57, 0xa8, 0x26, 0x3c, 0xaa, 0x0b, };
15986 static const ec_test_case ed25519_695_test_case = {
15987 	.name = "EDDSA25519-SHA512/wei25519 695",
15988 	.ec_str_p = &wei25519_str_params,
15989 	.priv_key = ed25519_695_test_vectors_priv_key,
15990 	.priv_key_len = sizeof(ed25519_695_test_vectors_priv_key),
15991 	.nn_random = NULL,
15992 	.hash_type = SHA512,
15993 	.msg = (const char *)ed25519_695_test_vectors_message,
15994 	.msglen = sizeof(ed25519_695_test_vectors_message),
15995 	.sig_type = EDDSA25519,
15996 	.exp_sig = ed25519_695_test_vectors_expected_sig,
15997 	.exp_siglen = sizeof(ed25519_695_test_vectors_expected_sig),
15998 	.adata = NULL,
15999 	.adata_len = 0
16000 };
16001 
16002 /************************************************/
16003 static const u8 ed25519_696_test_vectors_priv_key[] = {
16004 	0xe7, 0x53, 0x88, 0x02, 0x6a, 0x6a, 0x6d, 0x6c, 0x6d, 0x19, 0x9e, 0x36, 0x29, 0x93, 0xa5, 0xb1, 0x04, 0x49, 0x01, 0xe1, 0x8a, 0x76, 0xc2, 0xfa, 0xc7, 0x26, 0x1a, 0x6d, 0x1c, 0x19, 0xa4, 0xf3, };
16005 static const u8 ed25519_696_test_vectors_message[] = {
16006 	0xb9, 0x9c, 0xdc, 0x84, 0x72, 0x11, 0xc0, 0x66, 0x42, 0xdd, 0x11, 0x1b, 0xc5, 0xe0, 0xbe, 0xca, 0x53, 0xa7, 0x4f, 0xfb, 0xa2, 0xe3, 0xac, 0x93, 0xaf, 0xb4, 0xb0, 0x94, 0x75, 0x18, 0xe8, 0x32, 0x35, 0x27, 0x33, 0x0a, 0x4e, 0xfe, 0xfb, 0xe4, 0xba, 0xfa, 0x00, 0xba, 0xfe, 0xcb, 0x43, 0x4a, 0xb1, 0xe5, 0xb7, 0xce, 0x65, 0x65, 0x6f, 0x7a, 0x4f, 0xd8, 0x56, 0xaa, 0x6c, 0x38, 0x5e, 0xd8, 0xd7, 0xbd, 0x62, 0x85, 0x58, 0x0d, 0x7d, 0xd6, 0x08, 0x82, 0xe6, 0x9c, 0x19, 0xda, 0x07, 0x69, 0x09, 0xd6, 0x47, 0xde, 0x09, 0x5a, 0x80, 0xe9, 0x8a, 0xd8, 0x9b, 0x81, 0x4a, 0xad, 0xcb, 0xbf, 0x6f, 0x03, 0x3c, 0x49, 0x20, 0x2f, 0x65, 0x6c, 0x09, 0x10, 0x50, 0x39, 0x59, 0xcf, 0x97, 0xcd, 0x0f, 0xa8, 0x2d, 0x5f, 0x6d, 0x22, 0xfb, 0xa3, 0x38, 0x99, 0x51, 0x29, 0x4c, 0x4f, 0x7c, 0xdc, 0x21, 0xeb, 0x82, 0x44, 0xbd, 0x65, 0x60, 0x63, 0x7a, 0x5e, 0xca, 0x62, 0xa8, 0xeb, 0xa1, 0xf4, 0xa9, 0x33, 0xd1, 0x87, 0xa7, 0x5f, 0x86, 0x71, 0x16, 0x43, 0xaf, 0x35, 0x88, 0x31, 0xc8, 0xc1, 0x6a, 0x9a, 0x0f, 0x09, 0xe2, 0x53, 0xb2, 0x39, 0x5e, 0x9c, 0xb3, 0x71, 0x61, 0x1e, 0xec, 0xdd, 0x66, 0xb4, 0xab, 0x52, 0x1a, 0xa9, 0x4b, 0x3f, 0x20, 0x23, 0x7e, 0xae, 0x41, 0xcd, 0x10, 0xc5, 0xe2, 0x1a, 0x45, 0x2d, 0x48, 0xe7, 0x48, 0x18, 0x7f, 0x35, 0x4a, 0x67, 0xad, 0xf6, 0x81, 0xb0, 0xfe, 0x61, 0xcd, 0xae, 0xc9, 0x4a, 0x5e, 0xaf, 0x01, 0x26, 0x9f, 0xce, 0xb5, 0x70, 0xd5, 0x14, 0xff, 0x3c, 0x55, 0xff, 0x1d, 0xba, 0x2f, 0xd2, 0xdf, 0x17, 0xf8, 0x6a, 0x8a, 0xeb, 0x74, 0x78, 0x38, 0x11, 0x3d, 0xee, 0x94, 0xa4, 0x3b, 0x13, 0x84, 0xcb, 0xe1, 0x33, 0xcd, 0xf6, 0x42, 0x7e, 0x8d, 0x12, 0x2e, 0x4e, 0x93, 0x37, 0x04, 0xda, 0x6e, 0x26, 0xcf, 0xce, 0xe9, 0x7f, 0xe3, 0xf6, 0x29, 0xb6, 0x0b, 0x91, 0xb2, 0xdd, 0x86, 0x38, 0x67, 0xfa, 0x79, 0x80, 0x1e, 0x2b, 0x91, 0x6e, 0xc4, 0xc0, 0xfb, 0x62, 0xe0, 0x71, 0x59, 0x42, 0x1e, 0x65, 0x79, 0x74, 0x30, 0x7a, 0x1d, 0x02, 0xf7, 0xf2, 0xed, 0x47, 0x24, 0xa8, 0xb5, 0x21, 0xa8, 0x61, 0xf5, 0x5f, 0x35, 0x52, 0x1e, 0x8b, 0x2e, 0x1a, 0x84, 0x90, 0x4c, 0x42, 0x8c, 0xfc, 0x5b, 0x60, 0x14, 0xbb, 0x0f, 0x8b, 0xa8, 0x43, 0x4c, 0x22, 0x09, 0xbd, 0x40, 0xac, 0xa3, 0x11, 0x30, 0xdb, 0x97, 0x74, 0x33, 0x33, 0x59, 0x7d, 0x23, 0x51, 0xd5, 0xf6, 0x81, 0x17, 0x41, 0xf6, 0x26, 0x88, 0x97, 0x3b, 0xd7, 0x73, 0xd3, 0x02, 0x66, 0xfd, 0x1e, 0xfb, 0xd8, 0x9d, 0x47, 0xa9, 0x64, 0xf9, 0xd0, 0x19, 0x97, 0x15, 0x3d, 0x08, 0x7d, 0x92, 0x69, 0x66, 0x16, 0xdd, 0x10, 0x3a, 0x93, 0x4c, 0xcb, 0xac, 0x4c, 0x1d, 0x14, 0x2f, 0x20, 0x75, 0xd4, 0xe2, 0x2c, 0x3d, 0xa4, 0xa0, 0xe9, 0x73, 0xb2, 0x38, 0x63, 0x19, 0x62, 0x87, 0xb7, 0x91, 0x74, 0xfa, 0x29, 0x75, 0x5f, 0xc6, 0xd9, 0xb5, 0xe1, 0x00, 0xac, 0xe0, 0xa4, 0x59, 0x75, 0xe5, 0x03, 0xb2, 0x54, 0xd3, 0xf1, 0x95, 0xc2, 0x61, 0x71, 0x09, 0x10, 0xfe, 0xf1, 0x06, 0x89, 0x2c, 0x08, 0xbb, 0x29, 0x6d, 0x23, 0x0c, 0xde, 0xa9, 0xf5, 0xa1, 0x1f, 0x91, 0xac, 0xaa, 0x6e, 0x7c, 0x05, 0xe9, 0x2c, 0x28, 0x1d, 0x2b, 0x31, 0x55, 0xfe, 0x44, 0x80, 0xb0, 0xaa, 0x5e, 0x0d, 0xb4, 0x1d, 0x10, 0xe0, 0x5c, 0xfd, 0xef, 0xa4, 0x36, 0x40, 0x51, 0xcb, 0x75, 0x5d, 0xc7, 0x2f, 0xfa, 0x97, 0x8c, 0x00, 0xb9, 0x4a, 0x5f, 0x21, 0x2d, 0xc6, 0x91, 0xf8, 0x39, 0xb4, 0x9d, 0xe9, 0x7e, 0x01, 0x39, 0xd6, 0x5e, 0x8d, 0x73, 0xb2, 0xb2, 0x89, 0xb2, 0x6a, 0x12, 0xc6, 0xcc, 0xd8, 0xed, 0xc0, 0x4a, 0xdb, 0x45, 0x2a, 0xf7, 0xff, 0x09, 0x4a, 0xa9, 0x01, 0xea, 0xf5, 0x76, 0x51, 0xeb, 0x1b, 0x87, 0xb8, 0x33, 0xd0, 0xa0, 0x9b, 0x4a, 0x4a, 0x64, 0x62, 0xf4, 0x06, 0x64, 0x62, 0x37, 0x69, 0xe9, 0x50, 0x79, 0xf3, 0xc9, 0x62, 0x85, 0x0c, 0xc3, 0xb4, 0x01, 0xbb, 0x00, 0x58, 0xb8, 0x47, 0x5b, 0x10, 0xc8, 0x62, 0xf3, 0x2f, 0x30, 0x0a, 0x2b, 0x14, 0x3b, 0x3d, 0xea, 0x26, 0x9d, 0xdc, 0xbe, 0xa7, 0xbe, 0x7d, 0xd2, 0x42, 0x6d, 0x0d, 0x42, 0x04, 0xeb, 0x66, 0xa3, 0x9f, 0x13, 0x18, 0x82, 0x2d, 0xcb, 0x9c, 0x56, 0x13, 0x98, 0x63, 0x7f, 0x4a, 0xb8, 0xde, 0x19, 0x67, 0x68, 0xac, 0xe7, 0x4f, 0x34, 0x8c, 0x01, 0x2d, 0xd1, 0xba, 0xbe, 0xc1, 0x7f, 0x53, 0x00, 0xff, 0xe0, 0xd7, 0xaa, 0xae, 0xaf, 0xef, 0x7d, 0xb6, 0x50, 0xa8, 0xf2, 0xf3, 0x09, 0xa9, 0x79, 0x3f, 0x52, 0xc6, 0x85, 0xc7, 0xe1, 0xd5, 0x13, 0x32, 0x74, 0x91, 0x57, 0x84, 0x89, 0x9c, 0x48, 0x1d, 0x48, 0x5c, 0x9b, 0xd3, 0x0e, 0x99, 0xfc, 0xdc, 0x97, 0xd9, 0x6e, 0xf0, 0x74, 0x87, 0xda, 0x66, 0x3b, 0xef, 0xe6, 0x82, 0x99, 0xdf, };
16007 static const u8 ed25519_696_test_vectors_expected_sig[] = {
16008 	0x6d, 0x0f, 0x83, 0xd9, 0xc5, 0x5d, 0x84, 0xbc, 0xf9, 0xa8, 0x61, 0x47, 0xd9, 0xb6, 0xba, 0x9a, 0xd5, 0x37, 0x83, 0x2f, 0xd0, 0xf9, 0x9d, 0xae, 0x7e, 0x72, 0xc8, 0x13, 0x9a, 0xfc, 0xb3, 0x0c, 0x7b, 0x24, 0xf6, 0xb2, 0x92, 0xe3, 0x2f, 0x98, 0x47, 0x09, 0x75, 0x51, 0xb7, 0xfb, 0xfd, 0x51, 0x0c, 0x84, 0xe8, 0x9b, 0xe9, 0x82, 0x54, 0x44, 0x14, 0x57, 0xbd, 0x08, 0xe5, 0xf0, 0x53, 0x02, };
16009 static const ec_test_case ed25519_696_test_case = {
16010 	.name = "EDDSA25519-SHA512/wei25519 696",
16011 	.ec_str_p = &wei25519_str_params,
16012 	.priv_key = ed25519_696_test_vectors_priv_key,
16013 	.priv_key_len = sizeof(ed25519_696_test_vectors_priv_key),
16014 	.nn_random = NULL,
16015 	.hash_type = SHA512,
16016 	.msg = (const char *)ed25519_696_test_vectors_message,
16017 	.msglen = sizeof(ed25519_696_test_vectors_message),
16018 	.sig_type = EDDSA25519,
16019 	.exp_sig = ed25519_696_test_vectors_expected_sig,
16020 	.exp_siglen = sizeof(ed25519_696_test_vectors_expected_sig),
16021 	.adata = NULL,
16022 	.adata_len = 0
16023 };
16024 
16025 /************************************************/
16026 static const u8 ed25519_697_test_vectors_priv_key[] = {
16027 	0x5b, 0x32, 0x3f, 0xc0, 0x1a, 0x16, 0xc4, 0x5d, 0x10, 0x64, 0x66, 0x7d, 0x2e, 0xa4, 0xa7, 0xea, 0x59, 0xd2, 0x03, 0x42, 0x56, 0x2d, 0x12, 0xfb, 0xc5, 0x98, 0xd5, 0xaa, 0x73, 0x00, 0x68, 0x8e, };
16028 static const u8 ed25519_697_test_vectors_message[] = {
16029 	0xad, 0x24, 0x66, 0x9e, 0xf5, 0x5c, 0x54, 0x0a, 0x8e, 0xd1, 0x62, 0xce, 0x1d, 0x28, 0xf0, 0x17, 0x60, 0xa6, 0x07, 0x19, 0xa0, 0x37, 0x73, 0x36, 0xeb, 0x00, 0xb1, 0xec, 0xbe, 0x6f, 0x61, 0x60, 0x1c, 0xd5, 0x64, 0xf9, 0x2c, 0x95, 0x68, 0x04, 0xf9, 0xbe, 0xd4, 0xe1, 0x47, 0x6b, 0x94, 0xe5, 0xea, 0x8c, 0xca, 0x80, 0xcb, 0x49, 0xa3, 0x04, 0xef, 0x85, 0x1f, 0x7f, 0x67, 0x5a, 0xbe, 0x58, 0xe6, 0x68, 0x1d, 0xc0, 0x12, 0xad, 0x55, 0xe5, 0x1b, 0x02, 0x1d, 0x98, 0x28, 0x56, 0x9d, 0x0b, 0xcc, 0x9e, 0x05, 0x27, 0xa3, 0xfc, 0x03, 0xc8, 0x91, 0xd1, 0x7a, 0x90, 0xe6, 0x33, 0x7a, 0x1e, 0xa6, 0x7f, 0x2f, 0x08, 0x81, 0x05, 0x87, 0x69, 0x38, 0x37, 0x08, 0x1e, 0x4c, 0x08, 0xa3, 0xd7, 0x2c, 0x53, 0x6c, 0x21, 0x40, 0xda, 0x20, 0x0b, 0xa4, 0x56, 0xc3, 0x76, 0xf6, 0x1d, 0x05, 0x65, 0x1f, 0x0c, 0x5f, 0x39, 0x57, 0x11, 0xf4, 0x1c, 0x0d, 0x6e, 0xae, 0x98, 0xc9, 0x06, 0x76, 0x4d, 0x1e, 0xbe, 0xf3, 0xf9, 0x04, 0x6c, 0xb7, 0xc8, 0x62, 0x26, 0x40, 0xfc, 0xaf, 0xaf, 0xbf, 0xb8, 0xf6, 0x2e, 0x1c, 0xd3, 0x2c, 0x66, 0xee, 0x1c, 0x55, 0x50, 0x94, 0x89, 0xa5, 0x38, 0xab, 0x61, 0x29, 0x99, 0xe7, 0x99, 0x7b, 0x77, 0x9c, 0x64, 0x22, 0xef, 0xf1, 0x09, 0xda, 0x4d, 0xf8, 0x29, 0x20, 0x93, 0x0d, 0x8d, 0x36, 0x3d, 0x78, 0x30, 0x90, 0x87, 0x95, 0xa3, 0x88, 0x8f, 0x25, 0xd6, 0x67, 0xe1, 0x4d, 0x15, 0x5e, 0xd4, 0x45, 0x81, 0xbe, 0x43, 0x0f, 0x79, 0x73, 0xb5, 0x74, 0xe2, 0xbc, 0x0b, 0x13, 0x4c, 0xf1, 0x39, 0xfb, 0x4b, 0xb0, 0x1d, 0xbd, 0xa4, 0x1b, 0x67, 0xb9, 0x81, 0x47, 0xd8, 0x01, 0x2f, 0x40, 0x67, 0x7f, 0x4b, 0x80, 0xce, 0x4a, 0x53, 0x4c, 0x90, 0xad, 0xea, 0xbf, 0x48, 0x4b, 0x21, 0xfa, 0x99, 0x4b, 0x7a, 0x17, 0x5f, 0x8a, 0x8b, 0x8a, 0x40, 0x75, 0x56, 0x44, 0x78, 0xdd, 0xb0, 0x50, 0x24, 0x58, 0x0b, 0xab, 0x03, 0x8c, 0xd9, 0xea, 0xa1, 0xdf, 0xda, 0x55, 0x2f, 0xb3, 0x12, 0x29, 0x42, 0x9b, 0x61, 0x4f, 0xa1, 0xd8, 0x0c, 0x52, 0x61, 0x4e, 0x84, 0xfa, 0xa2, 0x21, 0x7f, 0x26, 0x0f, 0xf7, 0xcc, 0xea, 0x8c, 0x7b, 0x06, 0xe3, 0xd7, 0x7f, 0xf8, 0x74, 0xeb, 0x81, 0xfc, 0x85, 0x97, 0xe5, 0xfc, 0xdc, 0xec, 0x95, 0x1b, 0x5f, 0xe6, 0x4a, 0x1a, 0xf8, 0x6e, 0x73, 0x19, 0x3a, 0x88, 0x24, 0x69, 0xeb, 0x3b, 0xa3, 0xc3, 0x82, 0x73, 0x4b, 0x28, 0x87, 0xb4, 0x19, 0x31, 0x6e, 0xa4, 0x48, 0xaf, 0xc2, 0x82, 0x47, 0x8c, 0x25, 0xf7, 0xbc, 0xa1, 0x84, 0x29, 0xcb, 0xbf, 0xfd, 0x88, 0x71, 0x17, 0x7c, 0x5e, 0xcc, 0x7d, 0x8a, 0xa9, 0xa1, 0xb9, 0xec, 0x87, 0x19, 0x2d, 0x29, 0xa5, 0x25, 0x39, 0xc0, 0x81, 0xc3, 0x59, 0x33, 0x32, 0x44, 0x4c, 0xbe, 0x66, 0x87, 0x2c, 0xf3, 0xd0, 0xe1, 0x97, 0x29, 0x2b, 0x82, 0xb0, 0xbe, 0x5f, 0xcd, 0x85, 0x8c, 0xd6, 0xca, 0x48, 0xb5, 0x3e, 0xe5, 0xb6, 0x16, 0x41, 0xbc, 0xaa, 0xf3, 0x1d, 0x81, 0x9c, 0x7e, 0x1c, 0xed, 0xaf, 0x9e, 0xe6, 0xb0, 0x7e, 0x09, 0xca, 0xed, 0xfb, 0x30, 0xb9, 0x20, 0x4a, 0x1d, 0x4d, 0xdb, 0x70, 0x56, 0x0c, 0xbe, 0x1e, 0xb0, 0xc0, 0xec, 0x43, 0xf1, 0xd1, 0x78, 0x20, 0x1b, 0x29, 0x08, 0x19, 0xfc, 0xdc, 0x92, 0xc6, 0x3e, 0x0d, 0xb6, 0x0f, 0xb8, 0x7d, 0xff, 0x00, 0xe5, 0x12, 0x64, 0x8c, 0x89, 0x58, 0xa8, 0x47, 0xef, 0xc3, 0x63, 0x46, 0x07, 0x3f, 0x1a, 0x4f, 0x1f, 0x23, 0x17, 0x06, 0x0f, 0x1c, 0x54, 0x3e, 0x6f, 0x01, 0xb4, 0x24, 0x85, 0xbe, 0xeb, 0x56, 0xca, 0xb3, 0xba, 0xb2, 0x6e, 0x6a, 0x0c, 0xa6, 0x93, 0x58, 0x02, 0xc7, 0x62, 0xb7, 0x99, 0x15, 0x9e, 0x32, 0x0f, 0x36, 0xb5, 0xe8, 0x3d, 0x4a, 0xca, 0x89, 0x62, 0xaa, 0x2c, 0x3c, 0x2b, 0x7a, 0x38, 0x70, 0xe9, 0xe0, 0x47, 0x31, 0xf3, 0x94, 0x8c, 0xf9, 0x41, 0xe2, 0x1d, 0x50, 0x96, 0x4e, 0x5d, 0x63, 0x5a, 0x35, 0xa5, 0x3e, 0x29, 0x98, 0x11, 0xb8, 0xca, 0xdf, 0xcb, 0x44, 0x16, 0xc5, 0x75, 0x98, 0xa3, 0xfd, 0x05, 0x41, 0x09, 0x10, 0xdb, 0xc0, 0xea, 0x2c, 0x78, 0xfd, 0xb9, 0x25, 0x74, 0x99, 0x7d, 0x58, 0x79, 0x62, 0x79, 0xea, 0xaa, 0x78, 0xb3, 0x6d, 0xce, 0xf1, 0xc9, 0xa1, 0x29, 0xee, 0xff, 0x82, 0x39, 0x9a, 0x26, 0xd0, 0x08, 0xff, 0xa3, 0xbf, 0x04, 0x18, 0xff, 0x7d, 0x39, 0xb6, 0x42, 0x7f, 0x34, 0x18, 0x95, 0x02, 0x4d, 0x16, 0xe2, 0x2a, 0x0c, 0x62, 0xa8, 0x2b, 0xeb, 0xa2, 0xe2, 0xba, 0xc2, 0x3d, 0xee, 0x18, 0xcf, 0xcd, 0x5d, 0xb2, 0x39, 0x7f, 0x37, 0x8c, 0x53, 0x67, 0x30, 0x90, 0x82, 0xc4, 0x4e, 0xb4, 0x3c, 0xed, 0xc1, 0x52, 0x20, 0x25, 0x3a, 0x62, 0x32, 0x03, 0x99, 0x66, 0x5f, 0x71, 0x34, 0x9c, 0xc1, 0xb9, 0x44, 0xf5, 0x8c, 0x73, 0xa1, 0x0a, 0x0b, 0xbf, 0xd4, 0xca, 0xf1, 0x28, 0x91, 0xe3, };
16030 static const u8 ed25519_697_test_vectors_expected_sig[] = {
16031 	0xe2, 0xef, 0xf6, 0x07, 0xf0, 0x22, 0x7a, 0x29, 0xd5, 0x82, 0xd6, 0x9f, 0x34, 0x58, 0xac, 0xad, 0xd3, 0x22, 0x6f, 0xce, 0xaa, 0xc0, 0xab, 0xbd, 0xae, 0xd5, 0x26, 0x75, 0xc5, 0x16, 0x30, 0x07, 0x3c, 0xd3, 0xa9, 0x01, 0x70, 0x7e, 0xcf, 0x05, 0xe8, 0x93, 0xf2, 0xc3, 0x6d, 0xaa, 0xf0, 0xcc, 0x49, 0x01, 0x11, 0x69, 0x46, 0xb5, 0x77, 0x0d, 0xc0, 0x38, 0x12, 0x5f, 0x6d, 0x13, 0x1b, 0x09, };
16032 static const ec_test_case ed25519_697_test_case = {
16033 	.name = "EDDSA25519-SHA512/wei25519 697",
16034 	.ec_str_p = &wei25519_str_params,
16035 	.priv_key = ed25519_697_test_vectors_priv_key,
16036 	.priv_key_len = sizeof(ed25519_697_test_vectors_priv_key),
16037 	.nn_random = NULL,
16038 	.hash_type = SHA512,
16039 	.msg = (const char *)ed25519_697_test_vectors_message,
16040 	.msglen = sizeof(ed25519_697_test_vectors_message),
16041 	.sig_type = EDDSA25519,
16042 	.exp_sig = ed25519_697_test_vectors_expected_sig,
16043 	.exp_siglen = sizeof(ed25519_697_test_vectors_expected_sig),
16044 	.adata = NULL,
16045 	.adata_len = 0
16046 };
16047 
16048 /************************************************/
16049 static const u8 ed25519_698_test_vectors_priv_key[] = {
16050 	0xbe, 0x1c, 0x11, 0x2f, 0x78, 0xcf, 0x13, 0xae, 0xfc, 0x5c, 0xe7, 0xe3, 0x37, 0x64, 0xac, 0xa4, 0x48, 0x1f, 0x9f, 0x88, 0xb0, 0x18, 0xe1, 0x22, 0xdb, 0x9f, 0x8d, 0xac, 0x14, 0x62, 0x46, 0x05, };
16051 static const u8 ed25519_698_test_vectors_message[] = {
16052 	0xd7, 0x7f, 0x9a, 0xee, 0xa0, 0xfe, 0x98, 0xed, 0x7f, 0xb7, 0x4d, 0x58, 0x2a, 0x40, 0x2b, 0xcb, 0x79, 0x31, 0x47, 0x4b, 0x4a, 0x95, 0xd5, 0x23, 0xf3, 0xfb, 0x76, 0x9f, 0xb7, 0x09, 0x7d, 0x2b, 0xe4, 0xc6, 0xec, 0x10, 0x52, 0x14, 0x01, 0x63, 0x22, 0x25, 0x53, 0xaa, 0x8f, 0x4f, 0x89, 0xe4, 0x21, 0x73, 0x00, 0x14, 0xec, 0x73, 0x46, 0x97, 0x20, 0xce, 0xa9, 0x67, 0xf8, 0x8b, 0x6a, 0x48, 0xd0, 0x2a, 0x2d, 0xdc, 0x1a, 0x12, 0x1f, 0xdf, 0xfb, 0x8a, 0xe1, 0x27, 0x73, 0x8e, 0x29, 0x3c, 0x4d, 0x6b, 0x1b, 0x74, 0xad, 0x03, 0x84, 0x4d, 0xe6, 0xbf, 0xe8, 0x21, 0x50, 0x6b, 0x3a, 0x7a, 0x81, 0xd1, 0x9c, 0x37, 0xa7, 0xf0, 0x1c, 0xa4, 0x81, 0x47, 0x12, 0x19, 0xef, 0xe2, 0xa7, 0xb9, 0x2c, 0x4b, 0xd2, 0xac, 0x07, 0x74, 0x3b, 0x49, 0x75, 0x69, 0x64, 0x41, 0x71, 0x4b, 0x84, 0xd6, 0x3c, 0x54, 0x9d, 0x7a, 0x6f, 0xb6, 0x1f, 0x16, 0xfb, 0xcd, 0xb7, 0x2b, 0x91, 0x4d, 0x78, 0x82, 0xd0, 0x91, 0xf9, 0x70, 0x6d, 0xa3, 0x8c, 0x1a, 0x81, 0xa1, 0xc6, 0xa4, 0x0f, 0xbe, 0xc0, 0xd8, 0xe2, 0x38, 0xb5, 0xd5, 0x6d, 0x46, 0x0e, 0x90, 0x9f, 0x85, 0x47, 0x9f, 0x7a, 0xd8, 0xb1, 0x19, 0xf3, 0x54, 0x55, 0xe3, 0x40, 0x10, 0xca, 0xa7, 0xe5, 0xd0, 0x1f, 0x38, 0xe3, 0x01, 0xad, 0x37, 0xe8, 0x00, 0x5f, 0x6e, 0xd2, 0x9e, 0x4a, 0x10, 0x2d, 0xb3, 0xf6, 0x1d, 0x84, 0x09, 0x3f, 0x78, 0xc4, 0x9a, 0x96, 0x48, 0xc9, 0x77, 0xbf, 0x4d, 0x5b, 0x68, 0x9f, 0x71, 0xf4, 0x06, 0xf8, 0xad, 0x7b, 0x9a, 0xeb, 0x1a, 0xe2, 0x21, 0x33, 0xa8, 0x4c, 0xe1, 0xb2, 0x78, 0xb2, 0xcd, 0xde, 0x46, 0x59, 0x01, 0xb2, 0x3a, 0x17, 0x9d, 0x07, 0x2a, 0x80, 0x87, 0x9d, 0x0a, 0x24, 0xd2, 0xaf, 0x19, 0x7b, 0x32, 0x2a, 0x07, 0xbf, 0x5d, 0x40, 0xee, 0xab, 0x3a, 0xf1, 0x21, 0x17, 0xf1, 0x30, 0x21, 0xdf, 0xc1, 0x68, 0x1a, 0xba, 0x5c, 0x08, 0x3f, 0x25, 0x96, 0xe3, 0x7f, 0x11, 0x23, 0x42, 0x2b, 0xbd, 0xca, 0x3b, 0x2c, 0x32, 0xcb, 0x59, 0x4f, 0x56, 0xc3, 0x25, 0xe0, 0xc5, 0x64, 0xa1, 0x73, 0x32, 0x88, 0x05, 0x34, 0x59, 0xc6, 0x24, 0x88, 0x92, 0x5c, 0xd8, 0x0e, 0x7c, 0x94, 0x4d, 0xb9, 0x98, 0xc3, 0xc7, 0xbe, 0x54, 0x6b, 0xf8, 0x9d, 0x7a, 0x51, 0x1c, 0xcd, 0xba, 0x4b, 0x80, 0x9e, 0xee, 0x0f, 0xc2, 0x87, 0x3d, 0xad, 0x72, 0xb4, 0xcf, 0x3b, 0xa0, 0x51, 0x28, 0x9b, 0xb3, 0xf4, 0xe9, 0x92, 0x57, 0x32, 0xe4, 0x5a, 0xe7, 0x74, 0x10, 0x58, 0xc8, 0xfd, 0x11, 0x59, 0x9d, 0xd8, 0x43, 0x92, 0x7e, 0x3d, 0x14, 0x59, 0x8b, 0xb8, 0x30, 0x52, 0xd3, 0x35, 0x69, 0xcf, 0xb0, 0x2a, 0xf0, 0xc8, 0x8f, 0xa7, 0xae, 0xa4, 0xbb, 0x46, 0x84, 0x1c, 0xd2, 0xdd, 0xbd, 0xf5, 0x98, 0x8f, 0xcf, 0x32, 0x5f, 0xf1, 0x04, 0xa5, 0xdf, 0xc4, 0xa3, 0x0d, 0x26, 0x9d, 0x2a, 0x94, 0x97, 0x30, 0xc3, 0x61, 0x3b, 0xdd, 0xd3, 0x67, 0x3b, 0x42, 0xf6, 0x09, 0x0e, 0x6a, 0x60, 0xe4, 0xa2, 0x53, 0x06, 0x24, 0x63, 0xa6, 0x5d, 0x7e, 0x7f, 0xc0, 0x03, 0x0b, 0xba, 0x76, 0x9c, 0xa3, 0x44, 0xbf, 0xa9, 0xac, 0x82, 0x3f, 0x58, 0xcb, 0x5c, 0xee, 0x8a, 0x5f, 0xc0, 0xca, 0x37, 0x22, 0x8d, 0xe5, 0xa4, 0xd9, 0x3e, 0x0e, 0xcf, 0x7f, 0x10, 0x82, 0x16, 0x59, 0xa2, 0x26, 0x1f, 0x7e, 0xf1, 0x59, 0x6e, 0xda, 0x4e, 0x41, 0x1c, 0xf3, 0xc9, 0x66, 0x9d, 0x81, 0xde, 0x74, 0x54, 0x7c, 0xe4, 0xbf, 0x83, 0x3e, 0xb4, 0x32, 0xf3, 0x85, 0xce, 0x90, 0x38, 0xfe, 0x84, 0x8a, 0x8c, 0x96, 0xda, 0x7f, 0x01, 0xfd, 0x95, 0xbe, 0xa0, 0x6d, 0x1d, 0x74, 0x7c, 0x8a, 0xe7, 0x36, 0x49, 0x5b, 0xba, 0x22, 0x85, 0xbe, 0x5c, 0x32, 0xaf, 0xea, 0x44, 0x95, 0x20, 0xcf, 0xe8, 0xe1, 0xce, 0x25, 0xf9, 0x07, 0x7e, 0xd0, 0xec, 0x0f, 0x65, 0x98, 0xa9, 0xb8, 0xf7, 0x38, 0x6f, 0x15, 0x35, 0x81, 0x70, 0xcc, 0xef, 0xc3, 0xd5, 0xff, 0xb0, 0x09, 0x28, 0x81, 0x54, 0xde, 0x87, 0x7c, 0x24, 0x09, 0xae, 0x5f, 0xd8, 0xfe, 0xf0, 0x09, 0x3f, 0x1c, 0x36, 0xb3, 0xa8, 0xf5, 0x47, 0x43, 0x2c, 0xd0, 0xf6, 0x2c, 0x40, 0x33, 0x24, 0x2a, 0xd9, 0x92, 0x1a, 0x8f, 0x11, 0xc0, 0x0f, 0x36, 0x6d, 0xa9, 0x39, 0x69, 0x30, 0xa8, 0x0c, 0x99, 0x7d, 0xf4, 0x29, 0xa4, 0xf5, 0xf4, 0xe4, 0x5c, 0x7a, 0x6d, 0x7e, 0x02, 0xaf, 0x03, 0x31, 0x86, 0x75, 0x7c, 0x73, 0xcb, 0xe6, 0x4d, 0x2d, 0x4e, 0x78, 0xea, 0xaf, 0xe2, 0x75, 0x39, 0x52, 0x80, 0x35, 0xf2, 0xcf, 0xcf, 0x8e, 0xaf, 0x0a, 0x42, 0xbd, 0x25, 0xf8, 0x8b, 0x2f, 0xc6, 0x9e, 0x42, 0x66, 0x8f, 0xae, 0x66, 0x77, 0xc9, 0xac, 0x90, 0x91, 0xd9, 0xd1, 0x5a, 0x41, 0xf3, 0xac, 0xe6, 0x5d, 0x90, 0xa0, 0x22, 0x98, 0x73, 0xdc, 0xf2, 0x54, 0x25, 0x6c, 0xca, 0x44, 0x9e, 0xd4, 0xc1, 0x7d, 0x54, 0x35, 0xba, 0xe4, };
16053 static const u8 ed25519_698_test_vectors_expected_sig[] = {
16054 	0xf5, 0xfc, 0x5a, 0xcb, 0x17, 0xe9, 0x95, 0x7e, 0xa3, 0x04, 0xf1, 0x23, 0xb6, 0x50, 0xe1, 0x44, 0xc9, 0xe4, 0x37, 0x72, 0x83, 0x50, 0x9d, 0x43, 0x1d, 0xa6, 0xa2, 0xbb, 0xd5, 0x27, 0xbe, 0xb3, 0x82, 0xc9, 0xf5, 0x87, 0x45, 0xa3, 0xe5, 0x6d, 0xcc, 0x65, 0x5b, 0xd2, 0xeb, 0xb7, 0xae, 0xef, 0xc9, 0x3e, 0xdc, 0x3f, 0x20, 0xd8, 0xd3, 0xc3, 0x79, 0x23, 0x03, 0x1e, 0xec, 0x0c, 0xb4, 0x07, };
16055 static const ec_test_case ed25519_698_test_case = {
16056 	.name = "EDDSA25519-SHA512/wei25519 698",
16057 	.ec_str_p = &wei25519_str_params,
16058 	.priv_key = ed25519_698_test_vectors_priv_key,
16059 	.priv_key_len = sizeof(ed25519_698_test_vectors_priv_key),
16060 	.nn_random = NULL,
16061 	.hash_type = SHA512,
16062 	.msg = (const char *)ed25519_698_test_vectors_message,
16063 	.msglen = sizeof(ed25519_698_test_vectors_message),
16064 	.sig_type = EDDSA25519,
16065 	.exp_sig = ed25519_698_test_vectors_expected_sig,
16066 	.exp_siglen = sizeof(ed25519_698_test_vectors_expected_sig),
16067 	.adata = NULL,
16068 	.adata_len = 0
16069 };
16070 
16071 /************************************************/
16072 static const u8 ed25519_699_test_vectors_priv_key[] = {
16073 	0xbd, 0x85, 0x23, 0xed, 0xa8, 0x99, 0xb9, 0x84, 0x23, 0x0e, 0x32, 0x88, 0x75, 0xb9, 0x67, 0x2e, 0xdc, 0x9f, 0xcd, 0x24, 0xea, 0x5c, 0xc1, 0x2d, 0x7b, 0x57, 0x2d, 0xa4, 0xbe, 0x01, 0xfb, 0x7b, };
16074 static const u8 ed25519_699_test_vectors_message[] = {
16075 	0x16, 0xc2, 0x16, 0xc9, 0xbe, 0x9f, 0x0d, 0x4b, 0x11, 0x54, 0x10, 0xbd, 0xfd, 0x15, 0x93, 0xc8, 0xe2, 0x62, 0x22, 0x1a, 0xb9, 0x7a, 0x2a, 0x39, 0x5a, 0x12, 0x19, 0x8f, 0x95, 0xc3, 0x02, 0x05, 0xb0, 0x89, 0x62, 0xd4, 0x89, 0x31, 0x18, 0xba, 0x9f, 0xf9, 0x9a, 0xb1, 0xc7, 0xa6, 0xe1, 0xf2, 0xf1, 0x75, 0x19, 0x10, 0x70, 0xac, 0x94, 0x53, 0x27, 0xad, 0x6c, 0x47, 0x0b, 0xab, 0xf7, 0x92, 0x8b, 0x07, 0xdd, 0x78, 0x8c, 0x85, 0xb6, 0x4b, 0x71, 0x2e, 0x0a, 0xae, 0x6c, 0x0e, 0xa2, 0x02, 0x81, 0xe4, 0x2f, 0xd5, 0x61, 0xe8, 0x3e, 0x3f, 0xba, 0xc6, 0x7f, 0x14, 0x00, 0x0e, 0xe5, 0x6d, 0x98, 0x1d, 0x2a, 0x2f, 0x0b, 0x9c, 0xa0, 0x0a, 0x9e, 0xa4, 0x7c, 0xa2, 0xf6, 0xfc, 0x8d, 0xca, 0x10, 0x35, 0xfc, 0xeb, 0x14, 0x2c, 0x3f, 0x26, 0xf2, 0x0e, 0x3c, 0x73, 0x22, 0x07, 0xff, 0xff, 0x11, 0xb7, 0x96, 0x95, 0xbd, 0xaf, 0xa4, 0x15, 0x21, 0x4a, 0x44, 0x99, 0x30, 0x23, 0x26, 0x60, 0x5c, 0xf0, 0xb8, 0xc8, 0x2f, 0x2b, 0x11, 0x39, 0x2e, 0xcc, 0x90, 0xcd, 0x74, 0xa7, 0xb4, 0x11, 0xb6, 0xd9, 0x07, 0xa3, 0xd5, 0xc1, 0x30, 0xc8, 0x79, 0xb7, 0xcf, 0x88, 0x0f, 0x22, 0xbb, 0xd7, 0xf0, 0xe9, 0x59, 0x33, 0x71, 0x8e, 0x96, 0xd7, 0xd1, 0x6c, 0xae, 0xa9, 0xf2, 0xc3, 0x9e, 0x89, 0xb1, 0x3c, 0xd5, 0x22, 0x66, 0x27, 0x36, 0x04, 0xa9, 0x6b, 0x51, 0xd6, 0xe3, 0x4f, 0x70, 0x67, 0x35, 0xdd, 0xd9, 0xfc, 0xa4, 0x4d, 0x09, 0xcd, 0x86, 0xbb, 0x72, 0x17, 0x60, 0x0e, 0x0d, 0x34, 0xd4, 0x16, 0xac, 0x24, 0x9f, 0x2e, 0x41, 0xbd, 0x0f, 0x4a, 0xbc, 0xbd, 0x25, 0x80, 0xad, 0xae, 0x21, 0xd7, 0xeb, 0xa5, 0xfa, 0x44, 0xf3, 0x9d, 0x78, 0x0f, 0x17, 0xeb, 0x85, 0xcc, 0xbe, 0xf5, 0x8f, 0xef, 0x90, 0x3a, 0x28, 0x0d, 0x95, 0xf8, 0xf3, 0x21, 0x07, 0x89, 0xfa, 0x12, 0xe1, 0x20, 0xe2, 0x1b, 0x6e, 0x8c, 0xad, 0x91, 0x78, 0x35, 0xbb, 0xdc, 0xc3, 0xb0, 0x7e, 0x84, 0x69, 0x39, 0x54, 0xe2, 0x3a, 0x94, 0xf9, 0x9f, 0x93, 0x7d, 0xdb, 0x0d, 0x4a, 0x18, 0xd4, 0x2c, 0x3e, 0xa8, 0xfc, 0xa7, 0xd1, 0xea, 0x6e, 0xd5, 0x3a, 0x00, 0x24, 0x6f, 0x99, 0xea, 0x52, 0x0e, 0x64, 0x05, 0xbd, 0x2a, 0xa5, 0x49, 0xb0, 0x6e, 0x7d, 0xa7, 0x22, 0xc1, 0xba, 0x74, 0xaa, 0x1c, 0x13, 0x6e, 0x8e, 0xa5, 0x8b, 0xaa, 0xf8, 0xd3, 0x76, 0x58, 0x69, 0x3f, 0x3e, 0x0b, 0x44, 0xf6, 0x31, 0xdd, 0x6d, 0x08, 0xff, 0xdf, 0x4f, 0x09, 0x18, 0x9d, 0x30, 0x35, 0xa3, 0xf0, 0x34, 0x68, 0xe2, 0x96, 0x96, 0xef, 0x05, 0xe0, 0x2c, 0xc1, 0xaa, 0xbf, 0xec, 0xbd, 0xa2, 0x30, 0x1b, 0x54, 0x0c, 0xb0, 0xeb, 0x0a, 0x75, 0xbc, 0xce, 0x73, 0xdb, 0x92, 0x73, 0xa9, 0x16, 0x1a, 0x98, 0xad, 0x89, 0x8f, 0xcd, 0x65, 0x79, 0xfb, 0x7e, 0x4b, 0x32, 0x79, 0x54, 0x4f, 0x2e, 0x0b, 0xd7, 0x74, 0xdd, 0x1a, 0x81, 0x57, 0xda, 0xa8, 0x8a, 0x70, 0x32, 0x11, 0x67, 0x70, 0x3c, 0x60, 0xa6, 0x08, 0xa4, 0xb5, 0x42, 0x16, 0x59, 0x03, 0x75, 0xe5, 0x97, 0xfe, 0x21, 0xae, 0xa9, 0x7b, 0x52, 0x18, 0x5d, 0x0e, 0x37, 0xa5, 0x3b, 0x63, 0x88, 0xa7, 0x07, 0xa2, 0xbc, 0x24, 0xac, 0xf9, 0x44, 0x25, 0xf8, 0x4f, 0x3d, 0x56, 0xbc, 0x9f, 0x7e, 0xe7, 0x41, 0x2a, 0x9e, 0x18, 0x33, 0xad, 0x55, 0xb7, 0xea, 0xe6, 0xda, 0x58, 0x16, 0x98, 0x16, 0x63, 0x83, 0xa2, 0xeb, 0xa8, 0xb6, 0xf5, 0x39, 0x20, 0xf5, 0x17, 0xa5, 0xc8, 0x0b, 0xd3, 0xe0, 0x3f, 0xaa, 0xd4, 0x08, 0x7e, 0x3e, 0xe8, 0xfe, 0xc9, 0xa7, 0x9a, 0x01, 0xc7, 0x79, 0x51, 0x21, 0x33, 0xd7, 0xb6, 0xe5, 0xf1, 0xde, 0xc7, 0x66, 0x30, 0x0d, 0xc4, 0x05, 0xcc, 0x21, 0xa8, 0xc5, 0x83, 0xfb, 0x73, 0xbc, 0x90, 0xcf, 0x24, 0x38, 0x5b, 0x08, 0x60, 0x49, 0xd3, 0xbf, 0x20, 0xc3, 0x00, 0x98, 0x3c, 0x0b, 0x35, 0x15, 0x38, 0xdc, 0xcb, 0x22, 0x7a, 0x14, 0xfa, 0xfd, 0x23, 0xac, 0x4b, 0x26, 0xbe, 0x81, 0xa2, 0xb1, 0x20, 0xcf, 0x21, 0x6f, 0xc5, 0x83, 0x54, 0xf9, 0xdc, 0xbf, 0x05, 0xf6, 0x63, 0x39, 0xad, 0x6d, 0xdc, 0x2c, 0xac, 0x14, 0x67, 0x7b, 0x90, 0xe2, 0x47, 0xeb, 0xb6, 0xc5, 0xc2, 0x29, 0x00, 0x7d, 0xc6, 0x0f, 0x37, 0x4a, 0x06, 0xd4, 0x04, 0xeb, 0x23, 0xeb, 0x1e, 0xc4, 0x99, 0x07, 0xc6, 0xe8, 0x81, 0x62, 0x9e, 0x18, 0x67, 0x26, 0x8c, 0xa6, 0xff, 0xfa, 0x59, 0xaa, 0x3c, 0xa8, 0xf6, 0xc2, 0x95, 0x16, 0x2b, 0x95, 0x36, 0xc2, 0xbe, 0x22, 0xbb, 0xe3, 0xb7, 0x23, 0x80, 0xef, 0x11, 0xb6, 0x1b, 0x35, 0x7a, 0x62, 0x53, 0x10, 0x0e, 0x30, 0xa5, 0x86, 0x81, 0x8b, 0xa0, 0x03, 0xfa, 0x3f, 0xfd, 0x1f, 0xc9, 0x19, 0x88, 0x1c, 0x05, 0x02, 0x2f, 0x94, 0x84, 0x85, 0x98, 0xf2, 0x17, 0xfe, 0xa2, 0x22, 0x50, 0x72, 0x20, 0xd1, 0x08, 0xa2, 0x8f, 0xc7, 0xbc, 0x39, 0xa8, 0xa1, 0x1c, };
16076 static const u8 ed25519_699_test_vectors_expected_sig[] = {
16077 	0xfc, 0xfc, 0xdb, 0x08, 0x8d, 0xcb, 0xd0, 0xa5, 0x1b, 0xd3, 0x01, 0xe3, 0xe1, 0x56, 0x16, 0x71, 0x93, 0x5d, 0x8b, 0x6f, 0x71, 0x9c, 0x5d, 0x92, 0x69, 0x06, 0x40, 0xd3, 0xc9, 0x1e, 0x77, 0x5b, 0xf4, 0x05, 0x41, 0x32, 0xef, 0xc0, 0x5a, 0x21, 0x22, 0xfc, 0x20, 0x9d, 0xb3, 0xc3, 0x34, 0x32, 0x33, 0xff, 0x8a, 0xec, 0xeb, 0xd5, 0x2d, 0xaa, 0x2b, 0x3b, 0x21, 0xee, 0xb1, 0x5f, 0xd1, 0x02, };
16078 static const ec_test_case ed25519_699_test_case = {
16079 	.name = "EDDSA25519-SHA512/wei25519 699",
16080 	.ec_str_p = &wei25519_str_params,
16081 	.priv_key = ed25519_699_test_vectors_priv_key,
16082 	.priv_key_len = sizeof(ed25519_699_test_vectors_priv_key),
16083 	.nn_random = NULL,
16084 	.hash_type = SHA512,
16085 	.msg = (const char *)ed25519_699_test_vectors_message,
16086 	.msglen = sizeof(ed25519_699_test_vectors_message),
16087 	.sig_type = EDDSA25519,
16088 	.exp_sig = ed25519_699_test_vectors_expected_sig,
16089 	.exp_siglen = sizeof(ed25519_699_test_vectors_expected_sig),
16090 	.adata = NULL,
16091 	.adata_len = 0
16092 };
16093 
16094 /************************************************/
16095 static const u8 ed25519_700_test_vectors_priv_key[] = {
16096 	0x33, 0xa8, 0x5a, 0xe1, 0x50, 0xbb, 0xf5, 0x52, 0xf4, 0x16, 0x63, 0xb2, 0x15, 0x21, 0xc2, 0x96, 0xd2, 0x46, 0xdd, 0x6c, 0xf8, 0x19, 0x5d, 0xf8, 0x51, 0xc6, 0x95, 0xbd, 0x15, 0xf4, 0xa5, 0x02, };
16097 static const u8 ed25519_700_test_vectors_message[] = {
16098 	0x93, 0x7e, 0x05, 0xf2, 0xf1, 0xfd, 0xbd, 0x41, 0x73, 0x15, 0x53, 0xe7, 0x7c, 0xf1, 0x81, 0xb5, 0x07, 0x97, 0x58, 0x94, 0x0a, 0xee, 0x8e, 0x92, 0x62, 0x3f, 0xb1, 0xd5, 0xf0, 0x71, 0x28, 0xb7, 0xd7, 0xf1, 0x7e, 0x48, 0x42, 0x70, 0x7a, 0x56, 0x2c, 0x45, 0xba, 0x69, 0x26, 0x4c, 0x0f, 0x73, 0x0a, 0x82, 0x1c, 0x7d, 0xb6, 0xbf, 0x82, 0x99, 0x0d, 0xc6, 0x51, 0x26, 0x9b, 0x29, 0x6c, 0x33, 0x51, 0x79, 0x11, 0x30, 0x53, 0xd6, 0xf8, 0x5b, 0xb0, 0x96, 0xb2, 0x91, 0x11, 0x65, 0xfa, 0x39, 0x00, 0xcb, 0x10, 0x24, 0x16, 0x48, 0x7b, 0xa8, 0x07, 0x86, 0x79, 0xc6, 0xb3, 0x36, 0xdf, 0xf3, 0x87, 0x63, 0xc0, 0x8d, 0xcd, 0x20, 0xfa, 0x66, 0xdd, 0xa4, 0x5c, 0x57, 0x5d, 0xf1, 0x50, 0xd8, 0x51, 0x16, 0x5a, 0x48, 0x04, 0x97, 0x38, 0x30, 0xf4, 0x36, 0xdf, 0x60, 0xb8, 0x13, 0x19, 0xf9, 0xcf, 0xb5, 0x64, 0xc0, 0x65, 0x28, 0x96, 0xed, 0x5f, 0x18, 0x49, 0xcb, 0x33, 0x54, 0xf5, 0x0f, 0x00, 0x12, 0xf2, 0x86, 0xe8, 0xa3, 0x0c, 0x21, 0x35, 0x28, 0x69, 0x34, 0x74, 0x00, 0x4e, 0x85, 0x04, 0x01, 0x2b, 0x94, 0x55, 0x60, 0xc0, 0x74, 0xa6, 0xa1, 0x63, 0x43, 0x2c, 0xf4, 0xac, 0x4b, 0xa7, 0x17, 0x5c, 0xf2, 0x60, 0x05, 0xdb, 0x71, 0x99, 0xee, 0x96, 0xd8, 0x93, 0xcd, 0x1a, 0xad, 0x3f, 0xdf, 0x5d, 0x57, 0x46, 0x0e, 0xf0, 0x2d, 0xda, 0x6d, 0x3a, 0x14, 0x08, 0x25, 0x19, 0x6f, 0x3f, 0x8e, 0x2f, 0x37, 0xda, 0x36, 0xb6, 0xfd, 0xad, 0x18, 0x4f, 0x27, 0x40, 0xf1, 0x16, 0xde, 0x75, 0x8a, 0x92, 0x91, 0x70, 0x30, 0xc5, 0xfb, 0x80, 0xf0, 0x26, 0x24, 0x96, 0xd2, 0xdf, 0x93, 0xc7, 0xe2, 0x76, 0xf2, 0x5d, 0xa7, 0xdb, 0xed, 0x8e, 0xb8, 0xdd, 0x4c, 0x56, 0x3a, 0xba, 0x55, 0xb8, 0x2a, 0xf6, 0xba, 0x3a, 0x70, 0xca, 0x5f, 0x85, 0x8b, 0x44, 0xa0, 0x33, 0xcf, 0xb7, 0x95, 0x60, 0x4d, 0xde, 0xe7, 0x46, 0xe7, 0xc8, 0xae, 0x79, 0xd2, 0x72, 0xfb, 0x9a, 0x23, 0x41, 0xa2, 0xa2, 0x02, 0xdf, 0x5e, 0xac, 0x08, 0xde, 0x75, 0xad, 0x80, 0xc6, 0x58, 0x0d, 0x92, 0xb1, 0x69, 0xf2, 0xe1, 0x31, 0x88, 0x57, 0xb1, 0xb1, 0x42, 0x1c, 0x30, 0xf3, 0xdd, 0x46, 0x10, 0x93, 0xde, 0x2d, 0x34, 0x5e, 0xde, 0x74, 0x04, 0xb7, 0x2a, 0x45, 0x0d, 0xe0, 0x7b, 0x16, 0xee, 0xe6, 0x8c, 0xe6, 0x28, 0x87, 0xb6, 0xea, 0xa4, 0x36, 0xee, 0xe6, 0x84, 0xbe, 0x75, 0xce, 0x0e, 0x1f, 0x96, 0x26, 0x3e, 0x8d, 0x87, 0x36, 0xf9, 0xba, 0x00, 0x0d, 0x88, 0xe9, 0xe5, 0x86, 0x0f, 0x32, 0x8a, 0xe1, 0xe2, 0xdc, 0x73, 0x09, 0x9d, 0x32, 0xfc, 0xeb, 0x1b, 0xd2, 0xc0, 0x12, 0x36, 0x98, 0xa4, 0x9b, 0xea, 0xd1, 0x90, 0xa0, 0x0e, 0xc9, 0xa6, 0xf8, 0x71, 0x33, 0xed, 0xdd, 0x45, 0x31, 0x6f, 0x65, 0xeb, 0x0d, 0x32, 0x9b, 0x07, 0xb9, 0xa6, 0x6b, 0xb9, 0xfe, 0x42, 0x58, 0x8b, 0xf7, 0xb8, 0xd0, 0x6e, 0xfe, 0xc1, 0x98, 0x6b, 0x82, 0xa0, 0x81, 0xed, 0x3f, 0x68, 0x02, 0xe9, 0xbe, 0x73, 0x46, 0x47, 0x84, 0x55, 0x9a, 0x4f, 0x2c, 0x09, 0x7b, 0xa1, 0x4b, 0x0b, 0xfd, 0x5d, 0x7e, 0x0a, 0xff, 0x65, 0xcb, 0x69, 0xab, 0xd0, 0x3f, 0x86, 0x16, 0xcd, 0x7e, 0xdf, 0x7e, 0xc3, 0x68, 0x21, 0x9e, 0xdc, 0xf8, 0x93, 0xe9, 0xee, 0x71, 0xda, 0xd9, 0xf1, 0x8d, 0x79, 0xe5, 0x68, 0x26, 0x5d, 0xdc, 0x67, 0x16, 0x22, 0x32, 0x13, 0x23, 0x5b, 0xb9, 0x28, 0xe9, 0x08, 0xde, 0xa8, 0x27, 0x78, 0x4c, 0xd1, 0xaf, 0x39, 0x6d, 0x59, 0x0c, 0x81, 0xf4, 0xea, 0xcd, 0xfc, 0xf8, 0x9c, 0x5c, 0xac, 0x96, 0xfa, 0x05, 0x00, 0x64, 0xa2, 0x28, 0x41, 0xea, 0x71, 0x5f, 0x8c, 0x89, 0xd6, 0xd5, 0xaf, 0xbf, 0x59, 0x7a, 0x4d, 0x00, 0x5d, 0xbc, 0x6b, 0x13, 0x85, 0x6d, 0x33, 0x5b, 0x42, 0xa9, 0xa8, 0x2e, 0xdc, 0xb9, 0x49, 0x83, 0x5c, 0xca, 0x20, 0xb0, 0xa2, 0x3d, 0xe5, 0x1c, 0xc3, 0xae, 0xc3, 0x55, 0x66, 0xef, 0xf0, 0xc5, 0xae, 0x1a, 0xb3, 0x75, 0x13, 0x20, 0xd2, 0xc3, 0x10, 0x49, 0x52, 0x38, 0xed, 0xa3, 0x83, 0xc3, 0x8a, 0x41, 0x63, 0x15, 0x2b, 0x88, 0x15, 0x69, 0x0b, 0x8f, 0xf0, 0x15, 0x03, 0x5d, 0x1d, 0x00, 0xea, 0x4a, 0x0d, 0x6c, 0xaf, 0x32, 0x4b, 0xb7, 0x1a, 0x66, 0x4a, 0x1b, 0xed, 0x31, 0x48, 0x07, 0x84, 0xa6, 0x8f, 0x43, 0x8c, 0xaa, 0x35, 0x9e, 0x8d, 0x26, 0x73, 0xc8, 0x57, 0xd4, 0xb8, 0xc0, 0xb6, 0xc6, 0x95, 0x84, 0x7b, 0x86, 0x80, 0x0e, 0xa3, 0xd7, 0x34, 0xb5, 0xec, 0xc4, 0xd5, 0x2b, 0x50, 0x7a, 0xc6, 0x9b, 0x3a, 0x67, 0x78, 0x91, 0x60, 0x16, 0xeb, 0xc2, 0x31, 0x5f, 0x44, 0xc9, 0x0b, 0xf0, 0xc3, 0xe7, 0xda, 0xe0, 0x1d, 0x49, 0xcb, 0xc3, 0x03, 0x40, 0x2b, 0xbc, 0x63, 0x4a, 0xe1, 0x19, 0x1f, 0x3f, 0x6f, 0xd6, 0x3d, 0x30, 0x3b, 0x0c, 0x0b, 0xe0, 0x33, 0xa4, 0x7b, 0x90, 0xf8, 0xd3, 0xa7, 0x7f, 0x0a, 0x44, };
16099 static const u8 ed25519_700_test_vectors_expected_sig[] = {
16100 	0xbb, 0xe4, 0xcd, 0x63, 0x67, 0x6e, 0x26, 0xd6, 0x75, 0xa1, 0x91, 0x15, 0x1d, 0x30, 0xdb, 0x72, 0xb5, 0xb8, 0x4d, 0x46, 0x1e, 0xec, 0x65, 0x64, 0xaf, 0x86, 0x7a, 0xb4, 0x1b, 0xae, 0x99, 0x31, 0x14, 0x78, 0x85, 0x51, 0x9e, 0xc9, 0xd7, 0xe6, 0xc8, 0x18, 0x74, 0x3c, 0x8e, 0xf6, 0xd5, 0x16, 0x7b, 0x35, 0xb4, 0x21, 0x36, 0x3c, 0x09, 0xb3, 0x57, 0x36, 0x7f, 0xe8, 0xde, 0x44, 0x3a, 0x06, };
16101 static const ec_test_case ed25519_700_test_case = {
16102 	.name = "EDDSA25519-SHA512/wei25519 700",
16103 	.ec_str_p = &wei25519_str_params,
16104 	.priv_key = ed25519_700_test_vectors_priv_key,
16105 	.priv_key_len = sizeof(ed25519_700_test_vectors_priv_key),
16106 	.nn_random = NULL,
16107 	.hash_type = SHA512,
16108 	.msg = (const char *)ed25519_700_test_vectors_message,
16109 	.msglen = sizeof(ed25519_700_test_vectors_message),
16110 	.sig_type = EDDSA25519,
16111 	.exp_sig = ed25519_700_test_vectors_expected_sig,
16112 	.exp_siglen = sizeof(ed25519_700_test_vectors_expected_sig),
16113 	.adata = NULL,
16114 	.adata_len = 0
16115 };
16116 
16117 /************************************************/
16118 static const u8 ed25519_701_test_vectors_priv_key[] = {
16119 	0xba, 0x9e, 0x68, 0x62, 0x04, 0x97, 0x5c, 0x3b, 0xde, 0xd4, 0xc1, 0xe9, 0xf7, 0x4c, 0x7e, 0x4c, 0x7a, 0x7e, 0x3c, 0x99, 0x81, 0xd0, 0x1b, 0xfc, 0xa0, 0xad, 0x01, 0x15, 0xc3, 0xf0, 0xf5, 0xc3, };
16120 static const u8 ed25519_701_test_vectors_message[] = {
16121 	0x46, 0xbb, 0x48, 0x95, 0x2a, 0xe5, 0x8f, 0x2b, 0xf5, 0x8f, 0x5b, 0xe8, 0xdf, 0x4f, 0x31, 0x6b, 0x50, 0xf3, 0x63, 0xec, 0x84, 0xee, 0xd8, 0xf8, 0x2f, 0xf4, 0xc0, 0x4b, 0x06, 0x92, 0xd0, 0x3a, 0xef, 0x26, 0xe8, 0xe1, 0xe6, 0xc9, 0x54, 0x9a, 0x22, 0x47, 0xd5, 0x40, 0xa6, 0xe2, 0x2f, 0xeb, 0x11, 0xe5, 0x7f, 0x4b, 0x80, 0x8a, 0x20, 0x97, 0xe8, 0xa7, 0xb6, 0xb3, 0xb7, 0xaf, 0x37, 0x69, 0xe6, 0xd8, 0x1d, 0x64, 0x88, 0x6e, 0x69, 0x62, 0x37, 0x2f, 0x4f, 0x39, 0xe4, 0x9c, 0xd4, 0x6c, 0x1b, 0x5f, 0x73, 0x5f, 0x38, 0x0f, 0x7c, 0x27, 0x7d, 0x09, 0x97, 0x76, 0xed, 0x1a, 0xea, 0xa5, 0x7a, 0x35, 0x9c, 0x0a, 0xa8, 0xc7, 0x2f, 0x40, 0xeb, 0x91, 0xa1, 0xbf, 0x07, 0xea, 0x15, 0x7f, 0x5d, 0xdb, 0x30, 0x40, 0x9d, 0x6e, 0x3a, 0xf9, 0x89, 0x90, 0xce, 0x7f, 0x30, 0xaf, 0xfd, 0xac, 0x5e, 0x22, 0x01, 0x06, 0x46, 0xdc, 0xa9, 0x6a, 0x54, 0x00, 0x60, 0xfc, 0x90, 0x8a, 0x31, 0x25, 0xb0, 0x00, 0xad, 0x1e, 0xd3, 0xa0, 0xf2, 0x55, 0xcd, 0x34, 0xf1, 0x5d, 0x7d, 0xd1, 0xfd, 0x68, 0x1c, 0x3c, 0x35, 0xa1, 0xcd, 0x65, 0x20, 0x56, 0xec, 0xc5, 0x26, 0x4d, 0x39, 0xaa, 0xf7, 0x2a, 0x9b, 0xb8, 0x3a, 0x55, 0x1c, 0xc9, 0x34, 0x88, 0x7a, 0xe1, 0x07, 0xaf, 0xdf, 0xef, 0x06, 0x32, 0x17, 0x27, 0x0d, 0x95, 0x96, 0x89, 0x14, 0x18, 0xbd, 0x46, 0x1b, 0xba, 0x63, 0xde, 0x65, 0xbe, 0x06, 0x7b, 0x1b, 0x78, 0x64, 0xfe, 0x46, 0x48, 0x4c, 0x7c, 0x9e, 0x96, 0x34, 0x9a, 0x7c, 0x03, 0xa8, 0x0f, 0xa0, 0x55, 0x05, 0x0a, 0xa1, 0x8a, 0xce, 0x2a, 0x44, 0xb4, 0xa0, 0x3c, 0x94, 0x78, 0x24, 0x17, 0x2b, 0x30, 0xe2, 0x10, 0x11, 0x15, 0x94, 0x43, 0xca, 0x3c, 0xef, 0xaf, 0x69, 0x6a, 0x7a, 0xa8, 0xf9, 0x80, 0x11, 0x26, 0x0c, 0x94, 0x36, 0xbf, 0x48, 0x99, 0x1f, 0x41, 0xd4, 0xd5, 0x07, 0xb9, 0x6c, 0xe7, 0x32, 0x3e, 0x53, 0x1a, 0xdc, 0xf6, 0x63, 0x47, 0xc5, 0x5c, 0x88, 0x55, 0x67, 0x3a, 0x9f, 0x2e, 0xc8, 0x9b, 0x5c, 0x80, 0x24, 0x46, 0x06, 0x17, 0xec, 0x72, 0x71, 0x77, 0x3b, 0x36, 0xd6, 0x4f, 0xc1, 0x4e, 0xb5, 0xd8, 0x26, 0x52, 0xc5, 0x3a, 0x30, 0x31, 0x45, 0x72, 0x27, 0x09, 0x3d, 0x11, 0x8f, 0xd8, 0xeb, 0x93, 0x84, 0xe8, 0x02, 0x29, 0x04, 0x1a, 0x96, 0xa6, 0x49, 0x34, 0x50, 0xf9, 0x7e, 0x67, 0x36, 0x26, 0x3a, 0xbf, 0x1e, 0xcd, 0x9e, 0x9f, 0xb9, 0xa4, 0xf0, 0xf6, 0xd6, 0x67, 0xfa, 0x82, 0x41, 0x51, 0x48, 0x5e, 0xdc, 0x37, 0xb3, 0x4a, 0xcf, 0x3d, 0x8c, 0x35, 0xf9, 0xc1, 0xbe, 0x48, 0xb5, 0xe9, 0x6a, 0x12, 0xaf, 0x8e, 0x2d, 0x35, 0xc2, 0x3a, 0x03, 0x58, 0x0f, 0x21, 0x1d, 0xa6, 0x31, 0x6b, 0x34, 0xc5, 0x6b, 0xee, 0x87, 0x2d, 0x47, 0x64, 0x1b, 0xca, 0x77, 0xda, 0x64, 0x0f, 0xdb, 0xba, 0xd5, 0xa9, 0xad, 0x8a, 0xb9, 0xdc, 0x79, 0x57, 0x91, 0x3d, 0xa7, 0x34, 0xad, 0x37, 0x49, 0x2b, 0xa4, 0xde, 0x8c, 0xf1, 0x36, 0xcc, 0xcd, 0xeb, 0x6b, 0xa3, 0xf1, 0xbd, 0x3f, 0x00, 0x3b, 0xe7, 0x26, 0x3c, 0x4f, 0x2a, 0x40, 0xc3, 0x3f, 0x24, 0xca, 0x33, 0x39, 0x59, 0x6e, 0x6c, 0x34, 0x28, 0x33, 0x81, 0x00, 0xeb, 0xcc, 0x07, 0x22, 0xd4, 0xf5, 0x0d, 0x30, 0xb3, 0x3b, 0x91, 0x2d, 0x4e, 0x7c, 0x1a, 0x9f, 0xe6, 0x5f, 0x66, 0x58, 0xa6, 0xf2, 0x39, 0x14, 0x0a, 0x62, 0xc3, 0x26, 0x1e, 0x10, 0x39, 0x2e, 0xd1, 0x93, 0x0a, 0xa9, 0x17, 0x65, 0x2d, 0x3b, 0xd2, 0xbe, 0x4e, 0x8a, 0x08, 0xab, 0x97, 0xe1, 0x45, 0xb9, 0x20, 0xab, 0xb3, 0x1e, 0xe4, 0xbc, 0xd5, 0xa0, 0xd7, 0x1f, 0x63, 0x81, 0x80, 0xf6, 0x1c, 0x24, 0x58, 0x23, 0xa3, 0x99, 0xa7, 0x34, 0xa4, 0xdc, 0xde, 0x09, 0x97, 0x88, 0x02, 0x45, 0xed, 0x71, 0xeb, 0x9b, 0xc6, 0x5e, 0x3c, 0x6f, 0xc9, 0x5a, 0xb9, 0x20, 0xb8, 0x02, 0x4c, 0x17, 0xd4, 0x4c, 0xed, 0x00, 0x37, 0xd0, 0x4a, 0x13, 0x3c, 0x26, 0x41, 0x78, 0x2f, 0x1d, 0x62, 0x2d, 0xf4, 0x52, 0x69, 0xb4, 0x91, 0xd3, 0xfa, 0x2a, 0x12, 0x27, 0x57, 0x9e, 0xaa, 0x38, 0x6d, 0xe3, 0xe7, 0xde, 0x7b, 0xc4, 0x55, 0xc6, 0xa1, 0x54, 0xee, 0xe5, 0x72, 0x7f, 0xff, 0x04, 0x37, 0xa2, 0x00, 0x76, 0xc5, 0xc3, 0xb0, 0x57, 0x7c, 0xac, 0x5b, 0x4b, 0x69, 0x34, 0xe2, 0x69, 0x38, 0x02, 0x22, 0x46, 0x1a, 0x60, 0xf9, 0x54, 0xe4, 0x89, 0x79, 0xc0, 0x67, 0x12, 0x17, 0xf1, 0x6f, 0x70, 0x27, 0x98, 0x30, 0x34, 0x12, 0x10, 0x93, 0x18, 0x6c, 0x78, 0x70, 0x5f, 0xc2, 0x7d, 0xc9, 0x2e, 0x2e, 0xda, 0x41, 0x16, 0xa6, 0xbf, 0x7d, 0x23, 0xe0, 0x54, 0x8d, 0x62, 0xb6, 0x7b, 0x25, 0xc4, 0x1e, 0xd0, 0x61, 0x92, 0xbc, 0x26, 0xef, 0x13, 0x97, 0xbf, 0x16, 0x01, 0xf3, 0xa6, 0xe2, 0xa0, 0xe7, 0xf6, 0x61, 0xfb, 0x05, 0x05, 0xee, 0x38, 0x2f, 0x27, 0xae, 0xc2, 0x80, 0x5a, 0x3e, 0x21, 0x17, };
16122 static const u8 ed25519_701_test_vectors_expected_sig[] = {
16123 	0xc7, 0xd2, 0x3a, 0x58, 0xe2, 0xfb, 0x2a, 0x8d, 0x4b, 0x8e, 0xd1, 0xe9, 0xea, 0xe9, 0x1e, 0x11, 0x29, 0xc2, 0xaf, 0x8b, 0xd0, 0x5f, 0x0b, 0xd5, 0x72, 0xab, 0xeb, 0xbe, 0x0f, 0x30, 0x82, 0x59, 0x25, 0xf0, 0xdf, 0x71, 0xcf, 0xb7, 0x21, 0x8c, 0x68, 0x6e, 0x55, 0x48, 0xd9, 0x42, 0x77, 0x10, 0xa6, 0x90, 0x36, 0x6b, 0xa8, 0x55, 0x41, 0xc7, 0x91, 0x01, 0xa5, 0x8a, 0x10, 0xe8, 0xaf, 0x0a, };
16124 static const ec_test_case ed25519_701_test_case = {
16125 	.name = "EDDSA25519-SHA512/wei25519 701",
16126 	.ec_str_p = &wei25519_str_params,
16127 	.priv_key = ed25519_701_test_vectors_priv_key,
16128 	.priv_key_len = sizeof(ed25519_701_test_vectors_priv_key),
16129 	.nn_random = NULL,
16130 	.hash_type = SHA512,
16131 	.msg = (const char *)ed25519_701_test_vectors_message,
16132 	.msglen = sizeof(ed25519_701_test_vectors_message),
16133 	.sig_type = EDDSA25519,
16134 	.exp_sig = ed25519_701_test_vectors_expected_sig,
16135 	.exp_siglen = sizeof(ed25519_701_test_vectors_expected_sig),
16136 	.adata = NULL,
16137 	.adata_len = 0
16138 };
16139 
16140 /************************************************/
16141 static const u8 ed25519_702_test_vectors_priv_key[] = {
16142 	0x59, 0x07, 0xa8, 0xc0, 0x84, 0x04, 0x38, 0x75, 0x23, 0x8e, 0xdb, 0xdc, 0xb7, 0x83, 0x2f, 0xbb, 0xa4, 0xc0, 0x5e, 0xa3, 0xc5, 0xf8, 0x8a, 0x96, 0xf1, 0xfb, 0xf9, 0x50, 0x40, 0x1e, 0xc1, 0x64, };
16143 static const u8 ed25519_702_test_vectors_message[] = {
16144 	0x43, 0x3b, 0x24, 0x78, 0xe1, 0x8f, 0xad, 0x5c, 0xb8, 0x10, 0x67, 0x06, 0x1d, 0x22, 0x55, 0x28, 0x22, 0x97, 0x78, 0x30, 0x78, 0x85, 0x47, 0x54, 0x60, 0xfb, 0xe3, 0x13, 0x7a, 0x5b, 0x44, 0x02, 0x48, 0x94, 0xdd, 0xbe, 0x56, 0xfa, 0x6e, 0xd0, 0x21, 0x49, 0x6f, 0x07, 0x86, 0xe4, 0x2b, 0xc6, 0xc2, 0xd2, 0x79, 0x7e, 0xa0, 0xa6, 0xbf, 0x35, 0x5e, 0x88, 0x11, 0x5f, 0xaa, 0x55, 0xcd, 0x92, 0xed, 0x42, 0x13, 0x3d, 0x9d, 0xcd, 0xa6, 0xb9, 0xeb, 0xf6, 0x3c, 0xe4, 0xa9, 0x94, 0xd1, 0xa8, 0x2d, 0x2a, 0x49, 0x26, 0x75, 0x58, 0xbe, 0x54, 0x18, 0x2a, 0x6f, 0x85, 0x11, 0x2b, 0xd1, 0x2b, 0x24, 0x7a, 0xda, 0xcf, 0x14, 0x05, 0xfc, 0x7e, 0xc7, 0xa0, 0x15, 0xd4, 0x3a, 0xb4, 0x0b, 0x82, 0xc6, 0x77, 0xf7, 0xf8, 0x5a, 0x0e, 0x48, 0x19, 0x7c, 0x5b, 0x96, 0x57, 0x61, 0x99, 0xf4, 0xc3, 0x34, 0x3f, 0xf7, 0x65, 0x4d, 0x52, 0x3a, 0x30, 0xc4, 0x3a, 0x05, 0x4c, 0x3e, 0x46, 0x44, 0x51, 0x27, 0x80, 0x34, 0xb7, 0xf1, 0x96, 0xc3, 0x66, 0x76, 0x8c, 0x62, 0x8a, 0xf9, 0x4f, 0xc0, 0xcc, 0xfc, 0x9a, 0x29, 0x55, 0xf9, 0xd3, 0x23, 0x38, 0xb9, 0x44, 0x78, 0x0f, 0x8e, 0x32, 0x70, 0x85, 0xb1, 0x03, 0x78, 0x18, 0x68, 0xe4, 0xfb, 0x79, 0xd5, 0x61, 0x22, 0xd7, 0xf3, 0xf5, 0xab, 0x30, 0x9e, 0x5d, 0x63, 0x4a, 0xdd, 0x15, 0xda, 0x38, 0x2c, 0x0d, 0x23, 0x58, 0xe6, 0x47, 0x18, 0x2b, 0xe4, 0xde, 0x6e, 0x9a, 0x9e, 0x43, 0xe6, 0xa3, 0xa3, 0xb8, 0x21, 0x5b, 0x20, 0x4d, 0x95, 0x07, 0x61, 0x0d, 0x46, 0x16, 0x21, 0x00, 0x0f, 0xb1, 0x89, 0x37, 0x07, 0xaf, 0x7d, 0x25, 0x95, 0xbf, 0xef, 0x8a, 0x8c, 0x5c, 0x5c, 0xd0, 0x8f, 0x30, 0x9a, 0x5f, 0xb5, 0x5e, 0x45, 0x51, 0x9a, 0xea, 0x9b, 0x84, 0x74, 0x8c, 0xa5, 0xc6, 0x72, 0xbf, 0xec, 0xd3, 0x0d, 0x25, 0x65, 0x12, 0x34, 0xa3, 0xcc, 0x31, 0x9b, 0x43, 0xdf, 0xce, 0xfc, 0x1a, 0x07, 0xb5, 0x5b, 0x4a, 0xca, 0x71, 0x4c, 0x2e, 0x7e, 0xf9, 0x63, 0x8f, 0xe7, 0x88, 0x4a, 0x77, 0xb2, 0x22, 0x53, 0xa0, 0x1a, 0x22, 0x29, 0x50, 0x0e, 0x9c, 0xe1, 0x0f, 0xda, 0x73, 0xa8, 0x43, 0xc1, 0x9c, 0xc0, 0x96, 0x26, 0xd2, 0x45, 0x6c, 0x22, 0xa9, 0xc9, 0x01, 0x88, 0x1d, 0x52, 0x1f, 0x4b, 0x15, 0xd2, 0xf6, 0x13, 0xcb, 0x46, 0x9d, 0x30, 0x4d, 0x57, 0x92, 0x23, 0xbc, 0x5f, 0xf7, 0x38, 0x04, 0xdf, 0x63, 0x71, 0x51, 0x7e, 0xba, 0xa5, 0xb6, 0x77, 0xea, 0x91, 0x0f, 0xf1, 0xa0, 0x2a, 0x26, 0xfa, 0xfe, 0x48, 0xfe, 0xf4, 0x69, 0xed, 0x79, 0x9b, 0xed, 0x6d, 0x56, 0xce, 0x96, 0x18, 0x34, 0xa2, 0xed, 0xc2, 0xe2, 0x3c, 0x0d, 0x94, 0x26, 0xec, 0xcd, 0xcc, 0x93, 0x4f, 0x4c, 0x22, 0x0e, 0x37, 0x81, 0x5f, 0x7c, 0x33, 0x4b, 0x73, 0x83, 0x60, 0x7d, 0x43, 0x05, 0x20, 0x94, 0x6a, 0x88, 0x1a, 0x08, 0x32, 0x5b, 0x41, 0x64, 0x97, 0x9d, 0x5e, 0x82, 0xcd, 0x81, 0x34, 0xd7, 0x8c, 0xec, 0x48, 0x61, 0xc0, 0x19, 0xf6, 0xde, 0x30, 0x1c, 0x1b, 0x9a, 0xec, 0x52, 0xbb, 0x98, 0x20, 0x33, 0xfb, 0x79, 0xb2, 0xe9, 0x73, 0x1b, 0xab, 0x29, 0x68, 0xbc, 0x3f, 0x93, 0xfa, 0x56, 0x04, 0xb8, 0x93, 0xc6, 0x02, 0x8c, 0x20, 0x4c, 0x36, 0xbb, 0x8c, 0x6b, 0x07, 0x4b, 0xe2, 0x8c, 0x96, 0x4d, 0x28, 0x49, 0xb5, 0xbb, 0x19, 0xd7, 0xe0, 0xba, 0x24, 0xe2, 0x2a, 0x20, 0x4d, 0x4f, 0xda, 0x83, 0xb1, 0x01, 0x31, 0xd3, 0x83, 0xf1, 0x0b, 0x13, 0x6b, 0xd0, 0xdb, 0xa3, 0x9e, 0xc2, 0x6a, 0xf3, 0x0e, 0x3f, 0xfb, 0x4d, 0xbc, 0x0c, 0x92, 0x1f, 0x0c, 0xc9, 0x91, 0x07, 0x15, 0xd5, 0x1c, 0x81, 0xfe, 0x4c, 0x62, 0x95, 0x0e, 0x85, 0x55, 0x49, 0xa1, 0x7c, 0xd7, 0x3a, 0x09, 0xac, 0x91, 0xe0, 0x6d, 0x46, 0x15, 0x18, 0x37, 0x6d, 0x0f, 0xcf, 0xa1, 0x23, 0xdf, 0x0a, 0x83, 0x71, 0x03, 0x45, 0x8d, 0x9c, 0xe2, 0x21, 0x80, 0x8d, 0x1f, 0x9e, 0xf2, 0xed, 0xc5, 0xcd, 0x2e, 0x68, 0x23, 0x14, 0x5b, 0x52, 0x48, 0x94, 0xea, 0x48, 0x52, 0x6d, 0x98, 0x5e, 0xef, 0xd3, 0xf6, 0x06, 0x79, 0x39, 0x95, 0x48, 0xe1, 0xed, 0xea, 0xdb, 0x53, 0x95, 0xb4, 0x3d, 0x87, 0x04, 0x4b, 0x2b, 0xfe, 0x7c, 0x60, 0x37, 0x02, 0x9b, 0x34, 0x6a, 0x40, 0x22, 0x27, 0xea, 0xb8, 0x1f, 0x33, 0x3e, 0x10, 0xe7, 0x7f, 0x1d, 0xbc, 0x06, 0xa2, 0x11, 0xd4, 0x3b, 0x82, 0x55, 0x86, 0x76, 0xc2, 0xdc, 0xff, 0x90, 0x82, 0xb1, 0xdd, 0x53, 0x36, 0x8d, 0xf0, 0x02, 0xde, 0x13, 0x29, 0xaf, 0x30, 0x00, 0xb1, 0x71, 0xa6, 0x91, 0x43, 0x89, 0xbb, 0x80, 0xec, 0x0c, 0x9f, 0x3e, 0x41, 0x2a, 0x44, 0x1b, 0x80, 0x0a, 0xfc, 0xeb, 0x04, 0x86, 0x70, 0x9a, 0xda, 0xc6, 0x6c, 0xaf, 0xee, 0xf2, 0x48, 0x83, 0x93, 0x31, 0xf5, 0xd8, 0x92, 0x19, 0x7e, 0x25, 0x42, 0x0f, 0x1e, 0x37, 0xd7, 0xc0, 0x24, 0x7f, 0x66, 0x9f, 0x5f, 0xcb, 0xf0, };
16145 static const u8 ed25519_702_test_vectors_expected_sig[] = {
16146 	0x8c, 0x49, 0x12, 0xc0, 0xf8, 0x85, 0xd7, 0x6c, 0x91, 0x40, 0x59, 0x50, 0x53, 0x73, 0xa6, 0x4b, 0xdd, 0xd6, 0x7d, 0xd4, 0x68, 0x36, 0x9a, 0xb9, 0x18, 0xf2, 0x3e, 0xa2, 0x8e, 0x04, 0xc1, 0x91, 0x77, 0xa8, 0xd4, 0x61, 0x14, 0x4f, 0x0a, 0x8b, 0x51, 0xd2, 0x15, 0x17, 0x6c, 0xb0, 0x8b, 0xd6, 0x53, 0x01, 0xc3, 0xc4, 0x62, 0x37, 0xb6, 0x1b, 0xb1, 0x49, 0x8c, 0xa7, 0x9d, 0x4b, 0xe7, 0x0e, };
16147 static const ec_test_case ed25519_702_test_case = {
16148 	.name = "EDDSA25519-SHA512/wei25519 702",
16149 	.ec_str_p = &wei25519_str_params,
16150 	.priv_key = ed25519_702_test_vectors_priv_key,
16151 	.priv_key_len = sizeof(ed25519_702_test_vectors_priv_key),
16152 	.nn_random = NULL,
16153 	.hash_type = SHA512,
16154 	.msg = (const char *)ed25519_702_test_vectors_message,
16155 	.msglen = sizeof(ed25519_702_test_vectors_message),
16156 	.sig_type = EDDSA25519,
16157 	.exp_sig = ed25519_702_test_vectors_expected_sig,
16158 	.exp_siglen = sizeof(ed25519_702_test_vectors_expected_sig),
16159 	.adata = NULL,
16160 	.adata_len = 0
16161 };
16162 
16163 /************************************************/
16164 static const u8 ed25519_703_test_vectors_priv_key[] = {
16165 	0x60, 0x20, 0xae, 0x27, 0x3e, 0x0e, 0x05, 0x37, 0xba, 0xc8, 0x81, 0xd7, 0x54, 0x9d, 0x92, 0x3e, 0xb1, 0xcc, 0x20, 0x0d, 0x49, 0xca, 0x65, 0xd4, 0xbe, 0x63, 0x5e, 0x39, 0x17, 0x3d, 0xf9, 0xda, };
16166 static const u8 ed25519_703_test_vectors_message[] = {
16167 	0x6a, 0x80, 0x11, 0xde, 0x09, 0xaa, 0xc0, 0x0d, 0xb1, 0x6f, 0xf7, 0xe5, 0x5c, 0x2d, 0xe6, 0x7d, 0x8c, 0x98, 0x83, 0xfc, 0xb2, 0x04, 0x0d, 0xed, 0xbc, 0x1e, 0x32, 0x1c, 0xab, 0xa7, 0xbb, 0x03, 0x69, 0x71, 0x53, 0x01, 0x76, 0xd1, 0xdb, 0xba, 0xa9, 0x27, 0x52, 0x0b, 0xdf, 0xcc, 0xbe, 0xd8, 0x84, 0x01, 0x26, 0x04, 0x3e, 0xdc, 0x44, 0xcb, 0xb7, 0xfa, 0x35, 0x28, 0x68, 0x0e, 0x5f, 0x1b, 0x56, 0x64, 0x95, 0x1d, 0xc9, 0x01, 0x09, 0xae, 0xa4, 0xb9, 0xc3, 0x36, 0xca, 0x04, 0x3d, 0x82, 0x21, 0xa4, 0xc8, 0xd2, 0x01, 0x16, 0x56, 0xbf, 0x94, 0x4e, 0xfd, 0x36, 0xba, 0x0a, 0x10, 0xa4, 0xb3, 0x89, 0x19, 0x60, 0x55, 0x75, 0x0b, 0x0e, 0x38, 0x8f, 0xb5, 0x28, 0x70, 0xbb, 0xec, 0x8c, 0x55, 0x19, 0x81, 0x31, 0x44, 0x39, 0x45, 0xc0, 0x9f, 0x3a, 0xac, 0xe3, 0xe6, 0x91, 0x50, 0x14, 0x37, 0x40, 0x73, 0x26, 0x6f, 0x34, 0x88, 0x74, 0x42, 0xd7, 0x4f, 0x46, 0x8f, 0x8d, 0x70, 0x78, 0xbb, 0xa0, 0xbd, 0x81, 0x4c, 0xd6, 0xdd, 0x42, 0x3c, 0x97, 0xb5, 0x69, 0x05, 0x58, 0x7b, 0x15, 0x2d, 0x1f, 0xcf, 0xba, 0x0e, 0xb9, 0xfd, 0xe2, 0x11, 0x26, 0x91, 0xda, 0xfa, 0xf4, 0xf9, 0x21, 0x56, 0x2f, 0x24, 0x1b, 0x62, 0x84, 0x10, 0x01, 0x83, 0x4f, 0x6c, 0xe3, 0x66, 0x85, 0xf8, 0x2a, 0x8f, 0xaa, 0x3b, 0x7a, 0xfa, 0xd7, 0x3a, 0x5e, 0x59, 0xbf, 0x5f, 0x9e, 0x71, 0x3e, 0x59, 0x16, 0x3f, 0x31, 0xdb, 0xe6, 0x96, 0x11, 0x8a, 0xf3, 0x35, 0x06, 0xd2, 0xff, 0xea, 0x3d, 0x9c, 0x15, 0x56, 0xfb, 0x15, 0x2f, 0xd2, 0xb3, 0x21, 0xc3, 0x17, 0x57, 0xd0, 0xc3, 0xc0, 0xf6, 0x0e, 0xe1, 0x13, 0xed, 0xac, 0x02, 0xd6, 0x7e, 0xfb, 0xb3, 0x03, 0xdc, 0xe6, 0xfa, 0x88, 0xf7, 0xb9, 0x74, 0x6c, 0xa1, 0x10, 0xe6, 0xa0, 0xcd, 0x09, 0x9c, 0x08, 0x31, 0xf5, 0x3c, 0x55, 0xc2, 0x8b, 0x6c, 0x82, 0xaf, 0x44, 0x64, 0x56, 0xb8, 0x42, 0xb2, 0xc9, 0x50, 0xa5, 0x53, 0xee, 0x2c, 0x76, 0x5e, 0x97, 0x29, 0xe6, 0xb0, 0xc5, 0x46, 0xbf, 0xc2, 0x6b, 0xd6, 0xd4, 0x2d, 0x06, 0xb2, 0xed, 0x5d, 0x4c, 0x8c, 0xbb, 0xc7, 0x5f, 0x2a, 0x3a, 0xd8, 0x12, 0x93, 0x95, 0x79, 0x3d, 0x97, 0x9c, 0x03, 0x1f, 0xce, 0x7e, 0x20, 0xb3, 0x8b, 0xd8, 0x9c, 0x9b, 0x62, 0x47, 0x48, 0xb2, 0x01, 0x34, 0x23, 0xce, 0xba, 0xda, 0x02, 0xcd, 0xe2, 0x05, 0x2d, 0xa5, 0x66, 0x4c, 0x6c, 0x64, 0x26, 0xcb, 0xfc, 0x88, 0xf8, 0x4f, 0xf6, 0x02, 0xe2, 0xe2, 0x0d, 0xf9, 0x67, 0x8f, 0xbb, 0xa5, 0x77, 0xa4, 0xc1, 0x34, 0x51, 0x7e, 0xe0, 0x50, 0x68, 0x11, 0x51, 0x58, 0x0f, 0x7c, 0x5c, 0x97, 0x87, 0xb9, 0x6e, 0x55, 0xc4, 0x07, 0x5a, 0x26, 0xf4, 0xf8, 0xcc, 0xff, 0xbb, 0xb6, 0xea, 0x18, 0xde, 0x1b, 0x2c, 0xc8, 0xc4, 0x49, 0x6b, 0x16, 0x04, 0x27, 0x70, 0xb7, 0xec, 0x6e, 0xb5, 0x42, 0x9e, 0x7a, 0xc1, 0x89, 0x12, 0x32, 0xaa, 0x4e, 0x47, 0x46, 0x7f, 0x4e, 0x9a, 0x98, 0x5d, 0x80, 0x54, 0x7e, 0xcc, 0x4c, 0x6f, 0xd9, 0xf5, 0x97, 0x63, 0xed, 0xe9, 0x16, 0x71, 0xf2, 0xaa, 0x57, 0x36, 0xa5, 0xd1, 0x48, 0xe3, 0xa8, 0xff, 0xc8, 0x8e, 0x61, 0x25, 0x3a, 0x85, 0xb0, 0x95, 0x36, 0x54, 0x95, 0x8e, 0xb2, 0xd6, 0x94, 0x01, 0xcb, 0xea, 0xe7, 0x75, 0xf8, 0xcb, 0x8c, 0x3c, 0xa4, 0x2d, 0x21, 0x69, 0x3e, 0xbe, 0x29, 0x88, 0x38, 0xdf, 0x94, 0xc1, 0xd7, 0x7b, 0x12, 0x6a, 0x12, 0x05, 0xcc, 0x47, 0xd5, 0x0d, 0x53, 0x67, 0xb6, 0xf2, 0x76, 0xec, 0x8d, 0xb6, 0xb9, 0x53, 0x24, 0xa3, 0x1e, 0x8f, 0xd2, 0xed, 0x2e, 0x43, 0x42, 0x0c, 0x4a, 0xd0, 0x2e, 0xa2, 0x77, 0xdd, 0x94, 0x8a, 0x55, 0x19, 0x3d, 0x0f, 0x0b, 0x4d, 0x1c, 0xf2, 0x83, 0x86, 0xc7, 0x25, 0x97, 0x5c, 0xe5, 0xc1, 0x2d, 0x2a, 0x6f, 0x35, 0x67, 0x3c, 0xc2, 0x2a, 0x06, 0x94, 0xcc, 0xa4, 0xda, 0xf6, 0xaf, 0xbf, 0xd3, 0x26, 0xd8, 0x8c, 0x18, 0x50, 0xf8, 0x34, 0xc4, 0x2f, 0xf0, 0xe2, 0x92, 0xba, 0x4f, 0x13, 0xe5, 0xef, 0x07, 0x74, 0xa5, 0x96, 0xd3, 0x39, 0x04, 0xc0, 0x26, 0x2d, 0x31, 0xdf, 0x2c, 0x58, 0x4a, 0x0a, 0x4f, 0x45, 0x3f, 0x6a, 0xe4, 0xa8, 0x8a, 0x27, 0x5f, 0x7d, 0xe7, 0x9c, 0x13, 0xae, 0x1a, 0x73, 0x11, 0x5b, 0xe0, 0x2f, 0x42, 0x5c, 0x6f, 0x17, 0x7a, 0x1e, 0xc4, 0x63, 0x9c, 0x42, 0xa7, 0x92, 0x80, 0x9a, 0x2b, 0x09, 0x19, 0xeb, 0xd3, 0x21, 0xe3, 0x16, 0x00, 0x1d, 0x5b, 0x2f, 0x84, 0x89, 0x4f, 0xce, 0xbd, 0x50, 0xa1, 0xdc, 0xf4, 0x4d, 0x70, 0x2b, 0x92, 0x45, 0x32, 0xfc, 0x0e, 0x4d, 0x3f, 0x9f, 0xf8, 0x48, 0x6c, 0x0e, 0xd1, 0x80, 0xee, 0xcc, 0x3e, 0x09, 0xe2, 0x27, 0x2a, 0x94, 0xdc, 0x7d, 0x24, 0xa4, 0xe8, 0x7a, 0x93, 0x1f, 0xe2, 0x49, 0x5c, 0xbf, 0x99, 0x2c, 0x0a, 0xae, 0x92, 0x01, 0xe0, 0x79, 0x62, 0x98, 0xf9, 0x36, 0x3d, 0xba, 0xc4, 0x75, 0xe8, 0xed, };
16168 static const u8 ed25519_703_test_vectors_expected_sig[] = {
16169 	0xb1, 0xba, 0x88, 0xfe, 0xd7, 0xe5, 0xf4, 0xb7, 0x57, 0xf3, 0xfa, 0x4d, 0x1e, 0xd9, 0xb1, 0x9e, 0x49, 0x8e, 0x5d, 0x2f, 0x5e, 0x6c, 0xd4, 0x6e, 0x42, 0x6f, 0xe8, 0xf0, 0x39, 0x88, 0x2f, 0x1b, 0xe7, 0x7a, 0xc9, 0xe5, 0xa9, 0x26, 0x5c, 0xbf, 0x7e, 0x3c, 0xd2, 0xa9, 0xe9, 0x92, 0x6c, 0x18, 0x19, 0x91, 0x43, 0x79, 0x8d, 0xa5, 0xbe, 0x47, 0xa4, 0x08, 0x64, 0x40, 0x49, 0x6b, 0xa0, 0x0f, };
16170 static const ec_test_case ed25519_703_test_case = {
16171 	.name = "EDDSA25519-SHA512/wei25519 703",
16172 	.ec_str_p = &wei25519_str_params,
16173 	.priv_key = ed25519_703_test_vectors_priv_key,
16174 	.priv_key_len = sizeof(ed25519_703_test_vectors_priv_key),
16175 	.nn_random = NULL,
16176 	.hash_type = SHA512,
16177 	.msg = (const char *)ed25519_703_test_vectors_message,
16178 	.msglen = sizeof(ed25519_703_test_vectors_message),
16179 	.sig_type = EDDSA25519,
16180 	.exp_sig = ed25519_703_test_vectors_expected_sig,
16181 	.exp_siglen = sizeof(ed25519_703_test_vectors_expected_sig),
16182 	.adata = NULL,
16183 	.adata_len = 0
16184 };
16185 
16186 /************************************************/
16187 static const u8 ed25519_704_test_vectors_priv_key[] = {
16188 	0x93, 0x2a, 0x20, 0x0e, 0xce, 0xe7, 0x22, 0x3f, 0x24, 0x14, 0x62, 0x83, 0xa4, 0x04, 0x8c, 0x67, 0xa6, 0xa2, 0xd2, 0xfc, 0x4b, 0xa0, 0xf9, 0x24, 0x8b, 0xdf, 0xfd, 0x82, 0xc6, 0xcc, 0xe3, 0xcb, };
16189 static const u8 ed25519_704_test_vectors_message[] = {
16190 	0xdf, 0x95, 0x32, 0x07, 0x04, 0x82, 0x13, 0xaf, 0xb8, 0xe2, 0xaf, 0x45, 0x2c, 0x88, 0x9a, 0x21, 0xca, 0x13, 0x6a, 0x68, 0xc9, 0x29, 0xbd, 0xc8, 0x24, 0xf9, 0xa8, 0x9a, 0xc5, 0x96, 0xdc, 0xb9, 0x00, 0x19, 0xa4, 0x6f, 0xb6, 0x82, 0xbc, 0xfd, 0x96, 0x2f, 0xcc, 0xb2, 0x7d, 0x00, 0xba, 0xf8, 0xec, 0xca, 0xf9, 0xd9, 0xa7, 0xd8, 0x18, 0x3c, 0xab, 0xd7, 0xdf, 0xa5, 0x06, 0xf7, 0xba, 0xfb, 0x49, 0x35, 0xab, 0x04, 0x59, 0x31, 0xff, 0x8f, 0xae, 0xb7, 0x16, 0x31, 0xf9, 0xed, 0x6b, 0xb8, 0xf8, 0x47, 0x3a, 0xd6, 0x29, 0x0d, 0x7c, 0xf5, 0x19, 0xdb, 0x31, 0x0a, 0x44, 0x42, 0xc4, 0x61, 0x11, 0x8f, 0x67, 0xd1, 0xa6, 0xd1, 0x03, 0xba, 0xe6, 0xf2, 0x69, 0x7c, 0x94, 0xb7, 0x42, 0x6d, 0x9e, 0x02, 0xe3, 0xcb, 0x95, 0x22, 0xfd, 0x0b, 0x44, 0xae, 0xf6, 0x00, 0xc9, 0x62, 0xfe, 0xff, 0x58, 0x73, 0xd9, 0x8c, 0x27, 0x90, 0x88, 0x7b, 0x8e, 0x88, 0xd1, 0x60, 0x82, 0x4f, 0x1b, 0xba, 0x22, 0x01, 0x76, 0x39, 0xf8, 0xdc, 0xe6, 0x8f, 0x74, 0x34, 0x80, 0xde, 0xea, 0x1f, 0x92, 0xaa, 0x1f, 0xd4, 0x13, 0x5d, 0xd0, 0x64, 0x57, 0xa6, 0x0f, 0x36, 0xb7, 0xd7, 0xf5, 0x17, 0xd4, 0x0c, 0x94, 0xc0, 0xdd, 0xdc, 0x2e, 0x46, 0x58, 0x47, 0xd9, 0x09, 0xb9, 0xf6, 0x82, 0x45, 0xff, 0x2b, 0x42, 0x1d, 0x59, 0x19, 0x00, 0x1a, 0xae, 0x5a, 0xef, 0x24, 0xe0, 0x2c, 0x00, 0x2d, 0xa9, 0x07, 0xe8, 0x60, 0x5f, 0x16, 0x0e, 0xa6, 0x09, 0x6b, 0x58, 0x0b, 0x75, 0xce, 0xa0, 0x22, 0xd4, 0x02, 0xf7, 0xf5, 0xfd, 0xc4, 0x64, 0xf8, 0x7f, 0x78, 0xc7, 0x90, 0x6a, 0x01, 0xe8, 0xe4, 0x8f, 0xb5, 0xb3, 0x51, 0x74, 0x61, 0x2b, 0x48, 0xac, 0x8b, 0xc7, 0x50, 0xe0, 0xf3, 0xae, 0xb0, 0xa1, 0x2f, 0x7d, 0xfc, 0x09, 0xb0, 0x84, 0x2c, 0x17, 0x80, 0xa5, 0xfd, 0x9c, 0x54, 0xaf, 0xb9, 0x39, 0x9b, 0x94, 0x08, 0xba, 0xac, 0xcd, 0xa2, 0x0a, 0xfb, 0xe3, 0xd6, 0x82, 0x24, 0x8d, 0x7b, 0xf1, 0xef, 0xde, 0xf4, 0x90, 0x5a, 0x31, 0x9b, 0x0f, 0xfb, 0x10, 0x8b, 0x75, 0x3b, 0x71, 0xcc, 0x97, 0xe9, 0xe2, 0x1e, 0xc9, 0xb3, 0xdd, 0x28, 0xce, 0xe0, 0x39, 0xd9, 0x41, 0x8a, 0x11, 0x35, 0xf0, 0xad, 0xd0, 0x92, 0xaa, 0x66, 0x31, 0x2e, 0xa2, 0x91, 0x33, 0x00, 0xd1, 0xcc, 0x89, 0x16, 0x52, 0x43, 0x02, 0xbd, 0x3d, 0x1b, 0x09, 0xe6, 0xb2, 0x9c, 0x68, 0x57, 0xcb, 0xdc, 0x56, 0xef, 0x4b, 0x3f, 0x35, 0xd8, 0xee, 0x67, 0x72, 0x08, 0xef, 0xfa, 0x84, 0x6f, 0xdb, 0x06, 0x6b, 0x05, 0xeb, 0x71, 0x7b, 0x4d, 0x45, 0x12, 0x0c, 0xab, 0x72, 0xa7, 0xdb, 0x7a, 0x7c, 0xa8, 0x46, 0xe8, 0x7b, 0x16, 0xb6, 0x90, 0x47, 0xeb, 0x76, 0xd8, 0xf1, 0x8d, 0xa8, 0xe1, 0x39, 0x9e, 0xc0, 0xa8, 0xc9, 0xc3, 0x28, 0xcb, 0xe6, 0x0e, 0x0b, 0xf4, 0x20, 0x44, 0xd2, 0xeb, 0xf2, 0x81, 0x8b, 0x3c, 0x04, 0x75, 0x88, 0x45, 0x2f, 0xcd, 0x2b, 0x3e, 0xfc, 0x1e, 0x10, 0x09, 0xae, 0x07, 0x68, 0x87, 0x27, 0xdb, 0x8f, 0xb6, 0xdf, 0x2a, 0x2f, 0xe7, 0x5d, 0x1c, 0xf2, 0x2f, 0x32, 0xba, 0xc0, 0x9c, 0x82, 0xa6, 0xa3, 0xd7, 0xee, 0xd7, 0xd0, 0x05, 0x08, 0xcb, 0xe5, 0xb7, 0x24, 0x60, 0xec, 0xfc, 0xdd, 0x3e, 0xe9, 0x11, 0xef, 0xe5, 0x89, 0x8d, 0xbd, 0x8e, 0x4c, 0xe8, 0x59, 0x13, 0x26, 0xdd, 0x15, 0x22, 0xf9, 0xd2, 0x55, 0xda, 0x86, 0x1b, 0xf9, 0xeb, 0x2a, 0x1d, 0x57, 0x25, 0xd7, 0xd5, 0xd4, 0x27, 0x34, 0x03, 0x41, 0x94, 0x5e, 0x7b, 0xca, 0x8c, 0xf2, 0xff, 0x8a, 0x99, 0x74, 0x50, 0x95, 0x3e, 0x77, 0xd2, 0x03, 0x68, 0x3e, 0x4b, 0x0d, 0xaf, 0xc3, 0x30, 0xe0, 0x56, 0x72, 0xd2, 0xec, 0xd1, 0x3a, 0x3f, 0x44, 0x2d, 0xf1, 0x37, 0x04, 0x4e, 0x0f, 0x55, 0x6f, 0xfb, 0xce, 0xff, 0xea, 0x26, 0xcb, 0xae, 0x26, 0xcb, 0xa6, 0xf2, 0x56, 0x8c, 0xf3, 0x9f, 0x90, 0x84, 0x89, 0xe1, 0xa9, 0x2e, 0x76, 0xaf, 0xbf, 0x29, 0x79, 0x95, 0xda, 0x4b, 0x2c, 0xb1, 0xab, 0xc9, 0xee, 0x1f, 0xe4, 0xdc, 0xa5, 0xaa, 0x83, 0x8b, 0x2f, 0xbd, 0xc1, 0x09, 0xe8, 0x9b, 0xef, 0x3c, 0xe5, 0xa3, 0x6e, 0x5b, 0x2f, 0x71, 0x2a, 0xc4, 0xc8, 0x89, 0x43, 0x82, 0x48, 0xfa, 0x5a, 0x21, 0x50, 0xca, 0xc6, 0xc9, 0x77, 0xb5, 0xe0, 0x54, 0x3f, 0x40, 0x10, 0xb7, 0x31, 0x47, 0x32, 0xfd, 0x18, 0xe7, 0xfd, 0x59, 0x82, 0xe8, 0x32, 0x76, 0x51, 0x9e, 0x78, 0x72, 0x5e, 0x5a, 0x5e, 0xeb, 0x86, 0xf4, 0x89, 0x20, 0x84, 0xae, 0x52, 0xda, 0x38, 0x49, 0xc2, 0x28, 0xc8, 0x09, 0xed, 0xbf, 0x69, 0xa2, 0xcc, 0x47, 0xc4, 0x78, 0xd1, 0x87, 0x19, 0xf1, 0x11, 0xd7, 0x37, 0x88, 0x7c, 0x7a, 0x2e, 0xb3, 0x25, 0x08, 0x98, 0xdb, 0x34, 0xe5, 0xe5, 0x07, 0x6f, 0xab, 0x9f, 0x4a, 0x9e, 0x6e, 0x19, 0x29, 0xa3, 0x48, 0x08, 0x36, 0xde, 0xa0, 0x7b, 0xa4, 0xd6, 0x3f, 0xce, 0xfc, 0xe5, 0x54, 0x34, 0x30, 0xa8, };
16191 static const u8 ed25519_704_test_vectors_expected_sig[] = {
16192 	0xcd, 0x1e, 0x4b, 0xdf, 0x4a, 0x3e, 0x4a, 0x31, 0xd6, 0x52, 0x54, 0x33, 0x3c, 0x8c, 0xc4, 0x08, 0x7e, 0x4c, 0xc4, 0x0b, 0x02, 0xe2, 0xa3, 0x47, 0xd0, 0x9a, 0x3d, 0xde, 0x69, 0x84, 0x90, 0xc0, 0x87, 0xd7, 0x10, 0x9a, 0xd0, 0x20, 0x9c, 0x53, 0xe9, 0x87, 0x58, 0x9c, 0xbf, 0x3c, 0xe2, 0x64, 0x12, 0xa2, 0xb0, 0x2c, 0xb8, 0xa3, 0xbc, 0x93, 0xfe, 0xc7, 0x5a, 0xb5, 0xd2, 0xc3, 0x87, 0x03, };
16193 static const ec_test_case ed25519_704_test_case = {
16194 	.name = "EDDSA25519-SHA512/wei25519 704",
16195 	.ec_str_p = &wei25519_str_params,
16196 	.priv_key = ed25519_704_test_vectors_priv_key,
16197 	.priv_key_len = sizeof(ed25519_704_test_vectors_priv_key),
16198 	.nn_random = NULL,
16199 	.hash_type = SHA512,
16200 	.msg = (const char *)ed25519_704_test_vectors_message,
16201 	.msglen = sizeof(ed25519_704_test_vectors_message),
16202 	.sig_type = EDDSA25519,
16203 	.exp_sig = ed25519_704_test_vectors_expected_sig,
16204 	.exp_siglen = sizeof(ed25519_704_test_vectors_expected_sig),
16205 	.adata = NULL,
16206 	.adata_len = 0
16207 };
16208 
16209 /************************************************/
16210 static const u8 ed25519_705_test_vectors_priv_key[] = {
16211 	0x5c, 0x48, 0x3e, 0x83, 0x7e, 0xb0, 0x1e, 0xd5, 0xa4, 0xad, 0x5d, 0xb3, 0x79, 0x26, 0x99, 0x82, 0x4d, 0xf1, 0x3e, 0x57, 0x6b, 0xe9, 0x67, 0xd1, 0x21, 0x15, 0xc8, 0x5e, 0x02, 0x86, 0xe6, 0x28, };
16212 static const u8 ed25519_705_test_vectors_message[] = {
16213 	0x58, 0xd5, 0xe2, 0xcd, 0x89, 0x9b, 0xa9, 0x85, 0x37, 0x8b, 0x3e, 0xc3, 0x3e, 0x9a, 0x86, 0x98, 0x22, 0xb2, 0x3d, 0x5d, 0x89, 0x6a, 0x28, 0xf4, 0x24, 0xfc, 0xd6, 0xe4, 0xcc, 0x28, 0xb8, 0x0d, 0x4a, 0xaf, 0x2d, 0xe8, 0x04, 0x36, 0x7e, 0xfd, 0xf5, 0xe4, 0x23, 0xb1, 0x23, 0x4d, 0x82, 0x1d, 0x63, 0xac, 0x05, 0xea, 0xed, 0x12, 0xc7, 0x3e, 0x8e, 0x36, 0x08, 0xaf, 0x0d, 0xdc, 0xcc, 0x83, 0x86, 0xb7, 0xd8, 0x42, 0xb1, 0x2e, 0x60, 0xd3, 0x0c, 0xed, 0xe3, 0x25, 0x53, 0x94, 0x5e, 0x78, 0x29, 0xe9, 0xb2, 0x3f, 0x5c, 0xcc, 0x2e, 0x71, 0x03, 0xa0, 0x8f, 0x2c, 0xdd, 0x9e, 0x75, 0xa7, 0xb3, 0x6f, 0x5e, 0x63, 0x72, 0x0e, 0xf0, 0xd4, 0x9b, 0x25, 0x92, 0xbe, 0xf3, 0x74, 0x02, 0x68, 0xc8, 0x9c, 0x86, 0xa6, 0xcb, 0xdf, 0xe2, 0x01, 0xde, 0x0d, 0xb9, 0x98, 0x5c, 0xeb, 0x19, 0x39, 0x9c, 0x9a, 0x1d, 0x5b, 0xb0, 0x58, 0x6a, 0xf3, 0xc8, 0xcd, 0xf2, 0x71, 0x32, 0x99, 0xeb, 0x04, 0x43, 0xa5, 0x41, 0xa4, 0x73, 0x84, 0x60, 0x72, 0x43, 0xc5, 0x4a, 0x05, 0x91, 0x50, 0x58, 0x36, 0x7d, 0x3f, 0x2d, 0xb3, 0x80, 0xed, 0x31, 0x7a, 0x8c, 0x12, 0xc7, 0xa6, 0x3e, 0x80, 0x9c, 0x2e, 0x84, 0xd4, 0xac, 0xb9, 0xd9, 0xee, 0xf5, 0x4c, 0x6f, 0x5a, 0xf7, 0xab, 0x59, 0xcb, 0x91, 0x68, 0xb1, 0x06, 0x8f, 0x9d, 0x2c, 0xcd, 0x97, 0x8f, 0xe7, 0x21, 0xba, 0xd6, 0x8a, 0x66, 0x9f, 0xfe, 0xde, 0xa3, 0xe9, 0x2c, 0x76, 0xb3, 0x2e, 0x31, 0x66, 0x65, 0x8e, 0xe3, 0xbd, 0x0d, 0xeb, 0x1b, 0x08, 0x41, 0x94, 0xce, 0x35, 0xd9, 0xa7, 0x41, 0xc5, 0x7f, 0xc2, 0x24, 0x1e, 0x68, 0xef, 0xaa, 0x65, 0x32, 0x0b, 0x23, 0xa1, 0xdd, 0x19, 0xea, 0x8b, 0x7e, 0xc8, 0x1e, 0x76, 0xf1, 0xe9, 0x16, 0x3f, 0x95, 0x92, 0xee, 0xee, 0x5a, 0xf8, 0xec, 0xed, 0x02, 0x72, 0xf3, 0x35, 0x12, 0xd0, 0xd4, 0xca, 0x06, 0x7f, 0x05, 0x55, 0x1b, 0x26, 0x53, 0x96, 0xe1, 0x00, 0x14, 0x78, 0x3c, 0xac, 0xac, 0x79, 0x43, 0x7b, 0x19, 0x84, 0x2d, 0xe6, 0xab, 0x91, 0xb9, 0xd9, 0x23, 0xbb, 0xeb, 0x50, 0x33, 0x25, 0xbc, 0x54, 0x86, 0x9f, 0x66, 0x3e, 0x6e, 0xa4, 0xae, 0x68, 0x97, 0x70, 0x1b, 0xe7, 0xe1, 0x1d, 0x16, 0xcd, 0xfa, 0xe0, 0xee, 0xe8, 0x61, 0x86, 0x20, 0x00, 0xe7, 0xa4, 0x16, 0x07, 0x81, 0x54, 0x7e, 0x42, 0x52, 0x6a, 0xf5, 0x1b, 0xa9, 0x69, 0x8d, 0x23, 0x4a, 0xaf, 0x51, 0x0d, 0xa8, 0x1a, 0x0d, 0xbf, 0x26, 0x43, 0x66, 0x15, 0x3d, 0x7a, 0x6d, 0x5e, 0xb3, 0xfb, 0x08, 0xb9, 0xbb, 0x5e, 0xa0, 0x65, 0xc2, 0xf5, 0xe5, 0xb6, 0xbb, 0x67, 0x9d, 0x2e, 0x21, 0x0b, 0x5b, 0x40, 0xe2, 0xbc, 0x82, 0xf7, 0x8d, 0xc9, 0xab, 0x58, 0x24, 0xb7, 0x4a, 0xad, 0xad, 0xd8, 0x9b, 0xf8, 0xa8, 0xb7, 0x3a, 0x0a, 0x2f, 0x43, 0xac, 0x74, 0x83, 0x78, 0x92, 0x1a, 0x73, 0xa2, 0x52, 0x70, 0x4a, 0x4a, 0xdb, 0xf7, 0x40, 0xcb, 0x99, 0xc1, 0xe1, 0x59, 0x4c, 0x37, 0xac, 0x9a, 0xcc, 0x19, 0xf5, 0x23, 0x15, 0xc6, 0xa8, 0x46, 0xa5, 0x7b, 0x36, 0x12, 0x8c, 0x64, 0xd7, 0x67, 0xaf, 0x44, 0xe9, 0xc8, 0x63, 0x05, 0xbf, 0x18, 0xba, 0x7c, 0xd5, 0x26, 0x80, 0x52, 0x3a, 0x3b, 0x10, 0x2f, 0xba, 0x6f, 0xe5, 0x55, 0x67, 0x06, 0x9d, 0x20, 0x47, 0xcb, 0xdd, 0x96, 0x05, 0xea, 0x12, 0xc8, 0x87, 0x7d, 0x39, 0x9c, 0x1e, 0x66, 0xe3, 0x38, 0x17, 0x73, 0x1f, 0x50, 0xb8, 0x4f, 0x81, 0x7d, 0x1f, 0x07, 0x60, 0xa4, 0x0f, 0x97, 0x46, 0x86, 0x18, 0x93, 0x41, 0x05, 0xeb, 0x00, 0xec, 0x50, 0xc7, 0x6d, 0xb3, 0xc5, 0x3f, 0xcf, 0x43, 0xfe, 0x17, 0x02, 0x90, 0x7d, 0x9a, 0x75, 0x6b, 0xcf, 0x43, 0x9f, 0x88, 0x31, 0xd0, 0xbf, 0xac, 0x92, 0xe7, 0x05, 0x8f, 0xb1, 0x57, 0xbe, 0x3e, 0x59, 0x1d, 0x37, 0xeb, 0x34, 0x16, 0x5e, 0x3c, 0x6f, 0xc6, 0x0e, 0x72, 0x29, 0x4c, 0x08, 0x3e, 0x47, 0x76, 0x26, 0xf9, 0x00, 0x1c, 0x1d, 0x73, 0x7c, 0x29, 0x03, 0x77, 0xdf, 0xa5, 0x8e, 0xa4, 0xea, 0xd3, 0x02, 0x8f, 0xc7, 0x62, 0xce, 0x8a, 0x3a, 0xfe, 0xc2, 0xe6, 0xe1, 0x32, 0xc6, 0x62, 0xdf, 0x60, 0x34, 0xab, 0x55, 0x4f, 0x93, 0xef, 0xac, 0x65, 0x7a, 0xd3, 0x4f, 0x61, 0x07, 0xd3, 0x47, 0xfc, 0x5c, 0x5e, 0x53, 0xf3, 0x73, 0x3e, 0x17, 0x8b, 0x76, 0x01, 0x4d, 0x2f, 0x9b, 0xbd, 0x06, 0xef, 0x2d, 0xfe, 0x60, 0xe2, 0x08, 0x3d, 0x88, 0x65, 0xf7, 0xf5, 0xb2, 0xac, 0xc0, 0x25, 0xd9, 0x12, 0xe5, 0xcf, 0x6c, 0xda, 0x6e, 0x79, 0x81, 0x43, 0xe9, 0xdb, 0xbc, 0x70, 0xa0, 0x21, 0x1d, 0x8e, 0x40, 0x03, 0xd7, 0x8b, 0x38, 0x3d, 0x66, 0xa6, 0xad, 0x29, 0x71, 0x7c, 0xa2, 0x4e, 0xdd, 0xef, 0x7d, 0xf7, 0xcd, 0x3a, 0x7e, 0xf6, 0x52, 0xab, 0xa5, 0x48, 0x7a, 0xfe, 0x5d, 0x02, 0x6c, 0x9b, 0x10, 0x28, 0x07, 0x29, 0x4e, 0xb2, 0x7d, 0x98, 0x24, 0xee, 0xb6, 0xb4, 0x0f, 0x08, 0x3d, 0xe7, };
16214 static const u8 ed25519_705_test_vectors_expected_sig[] = {
16215 	0xc1, 0x7c, 0x2f, 0xbf, 0x8c, 0x00, 0xbc, 0xea, 0x30, 0x35, 0xbf, 0x0a, 0x62, 0xd3, 0x02, 0x29, 0xdb, 0x74, 0x2c, 0xab, 0x11, 0x99, 0x67, 0x7c, 0x7e, 0xb4, 0xeb, 0x0e, 0xf5, 0xc7, 0xb5, 0x1a, 0xd4, 0x87, 0xa4, 0x97, 0x1b, 0x63, 0x1e, 0x79, 0x4a, 0x58, 0xbb, 0x08, 0x23, 0xcc, 0x0f, 0xe6, 0x26, 0x10, 0xfd, 0xa6, 0xa9, 0xe0, 0x3f, 0x8c, 0x4c, 0x33, 0x81, 0xcb, 0x15, 0x4c, 0xef, 0x0b, };
16216 static const ec_test_case ed25519_705_test_case = {
16217 	.name = "EDDSA25519-SHA512/wei25519 705",
16218 	.ec_str_p = &wei25519_str_params,
16219 	.priv_key = ed25519_705_test_vectors_priv_key,
16220 	.priv_key_len = sizeof(ed25519_705_test_vectors_priv_key),
16221 	.nn_random = NULL,
16222 	.hash_type = SHA512,
16223 	.msg = (const char *)ed25519_705_test_vectors_message,
16224 	.msglen = sizeof(ed25519_705_test_vectors_message),
16225 	.sig_type = EDDSA25519,
16226 	.exp_sig = ed25519_705_test_vectors_expected_sig,
16227 	.exp_siglen = sizeof(ed25519_705_test_vectors_expected_sig),
16228 	.adata = NULL,
16229 	.adata_len = 0
16230 };
16231 
16232 /************************************************/
16233 static const u8 ed25519_706_test_vectors_priv_key[] = {
16234 	0xb0, 0xd0, 0xab, 0xdd, 0x84, 0x44, 0xe1, 0x0f, 0x29, 0x37, 0x54, 0xac, 0x9f, 0x16, 0xe3, 0x1b, 0xdc, 0xdd, 0x97, 0xb7, 0x06, 0x71, 0x28, 0xaa, 0xe8, 0xe4, 0xd7, 0xf1, 0x12, 0x89, 0xe2, 0xcd, };
16235 static const u8 ed25519_706_test_vectors_message[] = {
16236 	0xaa, 0x27, 0x6c, 0xc5, 0x43, 0xfc, 0xc6, 0x2d, 0x70, 0xa7, 0x04, 0x60, 0x8d, 0x98, 0xce, 0x51, 0xb6, 0x45, 0xb5, 0xc2, 0x4a, 0x64, 0x0a, 0x5d, 0xf1, 0x0a, 0x55, 0x91, 0x41, 0x7d, 0x10, 0x89, 0x26, 0xdf, 0x3f, 0x0c, 0xe1, 0xb9, 0x21, 0x03, 0x33, 0x09, 0xeb, 0x8d, 0x86, 0x59, 0xf4, 0x89, 0xfd, 0x6f, 0x79, 0xaa, 0x1b, 0xf4, 0x88, 0x2d, 0x72, 0xac, 0x69, 0xcc, 0x58, 0xd3, 0xbc, 0xe0, 0xfa, 0x89, 0xb1, 0x64, 0x11, 0xe9, 0x75, 0x3e, 0xb4, 0x0c, 0x6c, 0x4d, 0x59, 0x8d, 0xc8, 0xf4, 0xab, 0xb0, 0xbc, 0x48, 0xf1, 0x37, 0x03, 0x71, 0x32, 0x6c, 0x9a, 0x86, 0xbb, 0xc2, 0xac, 0x62, 0x14, 0x47, 0x8e, 0x78, 0xa3, 0x84, 0x08, 0xbd, 0xda, 0xfa, 0xa9, 0x59, 0x26, 0x00, 0xc4, 0x9a, 0x12, 0x9c, 0x05, 0x39, 0x2f, 0x8a, 0x7d, 0x64, 0x2b, 0x49, 0x13, 0x7a, 0x20, 0xf3, 0xfe, 0x9f, 0x11, 0xee, 0x17, 0xcf, 0xa3, 0xaf, 0xd2, 0xaf, 0x71, 0x56, 0x5e, 0x9c, 0x40, 0x08, 0x0b, 0x60, 0xcd, 0x0d, 0xbc, 0x37, 0x8e, 0xda, 0x06, 0x2c, 0x7c, 0xbc, 0x7f, 0xe9, 0x72, 0xbd, 0xe4, 0x50, 0x9a, 0x1d, 0xe9, 0x5f, 0x14, 0xdf, 0x48, 0x2f, 0x48, 0xaa, 0xcc, 0x46, 0x3c, 0xd5, 0x94, 0xf6, 0x6d, 0x64, 0x8d, 0x37, 0x94, 0x73, 0x8a, 0xd6, 0xab, 0x49, 0x6e, 0x2d, 0xa5, 0x0b, 0x0d, 0xb2, 0xba, 0x7b, 0x65, 0x91, 0x85, 0xe4, 0x58, 0x7f, 0x18, 0x2e, 0x83, 0x3d, 0xe7, 0x50, 0xfa, 0xac, 0xdd, 0xf2, 0x1a, 0xf5, 0xe0, 0xcf, 0x4c, 0x9a, 0xf3, 0x85, 0xb0, 0x4f, 0x7b, 0xe2, 0x31, 0x49, 0x8a, 0xd0, 0xb7, 0x42, 0xd5, 0xa8, 0x7c, 0x06, 0x11, 0x5d, 0xb2, 0x30, 0x97, 0x3a, 0x51, 0x42, 0x7f, 0x20, 0x2f, 0xa3, 0x9a, 0xfb, 0x98, 0x28, 0xb5, 0xf0, 0x3f, 0xa3, 0x27, 0xcb, 0xd5, 0x2d, 0xfe, 0xc6, 0x6d, 0x71, 0xea, 0x31, 0x98, 0x65, 0xdc, 0xf6, 0x81, 0x0f, 0x18, 0x58, 0x47, 0x2d, 0x8b, 0xea, 0x3e, 0x44, 0x7a, 0xdf, 0xb4, 0xb6, 0x07, 0x58, 0xe8, 0x6b, 0x48, 0x13, 0x37, 0x09, 0x73, 0x2d, 0x2b, 0xcf, 0x51, 0xc7, 0x6c, 0xaa, 0x84, 0x7b, 0x65, 0x37, 0xfc, 0xb0, 0x5b, 0xb8, 0xc8, 0x7d, 0xc5, 0xe9, 0xfb, 0x02, 0x2b, 0x32, 0x60, 0xc1, 0xd7, 0x1b, 0x14, 0x98, 0x59, 0xc9, 0x66, 0x3d, 0xbd, 0xae, 0x6a, 0x7b, 0xbf, 0xd6, 0xde, 0xb9, 0xd1, 0x23, 0x80, 0x9c, 0x24, 0x14, 0x01, 0xaf, 0x10, 0x71, 0x9c, 0xf9, 0x1a, 0x6b, 0xed, 0x16, 0x08, 0x4c, 0x44, 0x46, 0x07, 0x35, 0x9e, 0xd8, 0xf0, 0x18, 0xdb, 0x11, 0x15, 0x11, 0x89, 0x2b, 0x46, 0xbd, 0xac, 0x6c, 0x9c, 0x61, 0x38, 0x41, 0xde, 0xd8, 0x86, 0xb9, 0xde, 0xc0, 0x6c, 0x01, 0xe8, 0x04, 0x87, 0xe4, 0x8f, 0xbe, 0x77, 0x8e, 0x9e, 0x97, 0x50, 0x8f, 0xfd, 0xa0, 0x57, 0x78, 0x53, 0xaa, 0xbd, 0xca, 0xca, 0x8b, 0x0b, 0xab, 0x6c, 0xe4, 0x15, 0x57, 0xaa, 0xb9, 0x63, 0x1c, 0x96, 0xd6, 0x09, 0x77, 0xe3, 0x57, 0x18, 0xb6, 0x05, 0x95, 0x27, 0x3f, 0xdb, 0xa1, 0x40, 0xf5, 0x50, 0x0a, 0x8d, 0x35, 0x76, 0xf5, 0xa9, 0xfc, 0x8f, 0x3c, 0xa4, 0xc0, 0x2c, 0x16, 0x7a, 0xf2, 0xe0, 0x3d, 0x25, 0x75, 0x0b, 0x42, 0xad, 0xb0, 0x3b, 0x14, 0x17, 0xf2, 0xb6, 0xd2, 0x19, 0xbe, 0x5f, 0x84, 0x29, 0x33, 0x1a, 0x26, 0xa4, 0x49, 0xb5, 0xd4, 0xdb, 0x2b, 0x1a, 0x09, 0x15, 0x2e, 0xea, 0x2b, 0x25, 0xd2, 0xdf, 0x7e, 0xf6, 0xfe, 0x0a, 0x32, 0xe2, 0x5f, 0xae, 0x79, 0x36, 0x0a, 0x9a, 0xee, 0x15, 0x11, 0xfd, 0xa8, 0x06, 0x45, 0x50, 0x93, 0x7a, 0x71, 0x30, 0x97, 0x19, 0x30, 0xc6, 0x73, 0xbb, 0x35, 0x8e, 0x5f, 0x55, 0x95, 0x1f, 0x50, 0xb1, 0x46, 0xd8, 0x5d, 0x38, 0x3f, 0x3e, 0x01, 0xc1, 0x51, 0xec, 0xe6, 0xc0, 0x6d, 0x83, 0x67, 0x01, 0x25, 0x32, 0x80, 0xfd, 0xcf, 0xf4, 0xe1, 0x39, 0xd3, 0x31, 0x9a, 0xb2, 0xe2, 0xca, 0x71, 0xbc, 0xc3, 0xfa, 0x0f, 0xaf, 0x7c, 0x70, 0x2c, 0x9c, 0x60, 0x4e, 0x56, 0x51, 0xde, 0x4a, 0xf5, 0x70, 0x0e, 0x9e, 0xde, 0x72, 0x58, 0xb9, 0xbc, 0x14, 0x8d, 0x55, 0x95, 0xcd, 0x34, 0x17, 0x0e, 0x3e, 0x5c, 0xf2, 0x92, 0x82, 0x83, 0x90, 0x90, 0x8f, 0xda, 0x96, 0x1f, 0x22, 0x30, 0xac, 0x0b, 0x8c, 0xac, 0x64, 0x73, 0x97, 0x32, 0x70, 0x6c, 0xe2, 0xd5, 0xe5, 0x9a, 0xbd, 0x6d, 0x5e, 0x20, 0x7b, 0xda, 0xfe, 0xa7, 0x4d, 0x28, 0xd7, 0xa7, 0x58, 0xf2, 0x20, 0x0e, 0x4e, 0x00, 0xa0, 0xbc, 0xf0, 0x30, 0x6a, 0x3c, 0xab, 0xda, 0x47, 0x02, 0x4f, 0xab, 0xea, 0xe4, 0x88, 0xab, 0x5c, 0x32, 0x37, 0x15, 0xcf, 0x3c, 0xa7, 0x72, 0x0a, 0xf9, 0xeb, 0xbf, 0x85, 0x82, 0xe1, 0x15, 0x8a, 0x09, 0x9d, 0x73, 0x6b, 0x56, 0x9b, 0x9d, 0x40, 0x29, 0x58, 0x17, 0xea, 0x25, 0x54, 0x06, 0x8b, 0xef, 0x32, 0x44, 0x2c, 0x11, 0x1e, 0xc8, 0x14, 0xc6, 0xed, 0x41, 0x59, 0x19, 0xba, 0x73, 0x52, 0x63, 0x34, 0xdf, 0x30, 0xba, 0xc6, 0x66, 0x08, 0x4e, 0x56, 0x01, 0xc2, 0x28, 0x1c, };
16237 static const u8 ed25519_706_test_vectors_expected_sig[] = {
16238 	0x64, 0x40, 0x8b, 0xdd, 0x2d, 0x0f, 0xc8, 0x92, 0xa5, 0xb6, 0x2b, 0x5a, 0xcf, 0x8e, 0x3b, 0x3c, 0x73, 0xc0, 0xb5, 0xc4, 0xfa, 0x2a, 0x72, 0xe3, 0x9d, 0xd6, 0x08, 0xd4, 0x93, 0x7f, 0x93, 0x32, 0xf7, 0x3e, 0x14, 0xd0, 0x8b, 0xad, 0xc6, 0x27, 0x01, 0x14, 0xd1, 0xf1, 0xa5, 0x56, 0xcc, 0x6e, 0xe8, 0x48, 0x8a, 0xbb, 0x90, 0x7f, 0x79, 0xae, 0x17, 0x5c, 0x35, 0x2e, 0x9f, 0x11, 0xee, 0x05, };
16239 static const ec_test_case ed25519_706_test_case = {
16240 	.name = "EDDSA25519-SHA512/wei25519 706",
16241 	.ec_str_p = &wei25519_str_params,
16242 	.priv_key = ed25519_706_test_vectors_priv_key,
16243 	.priv_key_len = sizeof(ed25519_706_test_vectors_priv_key),
16244 	.nn_random = NULL,
16245 	.hash_type = SHA512,
16246 	.msg = (const char *)ed25519_706_test_vectors_message,
16247 	.msglen = sizeof(ed25519_706_test_vectors_message),
16248 	.sig_type = EDDSA25519,
16249 	.exp_sig = ed25519_706_test_vectors_expected_sig,
16250 	.exp_siglen = sizeof(ed25519_706_test_vectors_expected_sig),
16251 	.adata = NULL,
16252 	.adata_len = 0
16253 };
16254 
16255 /************************************************/
16256 static const u8 ed25519_707_test_vectors_priv_key[] = {
16257 	0x49, 0x84, 0x97, 0xfd, 0xcc, 0x6a, 0x10, 0x58, 0x91, 0xe0, 0x23, 0xff, 0x32, 0xd7, 0x5f, 0x7c, 0x37, 0x48, 0xd8, 0xc5, 0x2d, 0x87, 0xdd, 0x3b, 0x27, 0x75, 0xae, 0xfd, 0x81, 0x60, 0xa1, 0x43, };
16258 static const u8 ed25519_707_test_vectors_message[] = {
16259 	0xbe, 0x38, 0xbc, 0x8c, 0xdf, 0x46, 0x19, 0x0e, 0x30, 0x4a, 0xb5, 0x3d, 0xd2, 0x9c, 0x2b, 0xc4, 0x09, 0x54, 0xfd, 0x4c, 0x6d, 0x2b, 0xb9, 0x90, 0xf9, 0x3b, 0x2b, 0x5c, 0x69, 0x1f, 0xdf, 0x05, 0x27, 0xc2, 0x60, 0xf5, 0x06, 0x61, 0x87, 0xf2, 0xd0, 0xf3, 0x1f, 0x43, 0xa0, 0x8b, 0x36, 0x0e, 0xa1, 0xed, 0x82, 0x00, 0x65, 0x17, 0x64, 0xb8, 0xfa, 0x49, 0x59, 0x5a, 0x15, 0x94, 0x10, 0x9e, 0x49, 0x67, 0x59, 0xab, 0x66, 0x23, 0xfa, 0x33, 0x37, 0x8d, 0x80, 0x0e, 0x61, 0x17, 0xe0, 0x79, 0xe1, 0x3f, 0xe8, 0x5c, 0x81, 0xb6, 0x3e, 0xbe, 0x24, 0x7b, 0x3d, 0xf6, 0xc1, 0x58, 0x4b, 0xc7, 0xcf, 0xfb, 0xdf, 0xa4, 0x5f, 0x2a, 0x2c, 0xe7, 0xc2, 0x37, 0xaa, 0xaf, 0xef, 0x8c, 0xbc, 0xa7, 0x0b, 0xca, 0xbc, 0xe0, 0xb8, 0x47, 0xd5, 0x51, 0xf4, 0x6a, 0x7d, 0x15, 0xce, 0x2a, 0x0d, 0x3d, 0x54, 0x5a, 0xba, 0xcc, 0x59, 0x30, 0x01, 0x0c, 0x53, 0x64, 0x88, 0x87, 0xd4, 0x76, 0xe0, 0xd1, 0x3a, 0x34, 0xfc, 0x1c, 0x54, 0xdf, 0x09, 0xd1, 0x06, 0xed, 0x75, 0x8d, 0xee, 0xdc, 0x76, 0x1d, 0x55, 0x7a, 0x73, 0xb2, 0xbc, 0xdd, 0xde, 0xfb, 0xa4, 0xed, 0x00, 0x59, 0x97, 0xb1, 0x92, 0x79, 0xb9, 0xd2, 0xde, 0x37, 0xd0, 0x41, 0xfe, 0x01, 0x3e, 0xef, 0x05, 0xa2, 0xe1, 0x1c, 0x9a, 0x23, 0x4e, 0x87, 0xcc, 0x0e, 0x16, 0xc0, 0xc6, 0xda, 0x42, 0xaa, 0xa5, 0xbf, 0x99, 0x64, 0x17, 0xbf, 0x64, 0xe5, 0xb7, 0x85, 0xd6, 0x7d, 0xc3, 0x25, 0x47, 0xc1, 0xf0, 0x52, 0x17, 0x8d, 0x69, 0x4c, 0xf2, 0x0f, 0x16, 0x98, 0x58, 0x9e, 0x7e, 0xd4, 0x9b, 0xe2, 0x9d, 0xd5, 0x9f, 0xd5, 0xc0, 0x1b, 0xa1, 0xd9, 0xf5, 0xfb, 0x06, 0xa7, 0x58, 0x95, 0xb7, 0xb1, 0xe1, 0x58, 0x95, 0x09, 0x7e, 0xbd, 0xe8, 0x4c, 0xad, 0x63, 0x03, 0xaa, 0x0a, 0x86, 0xdb, 0xc3, 0x24, 0x74, 0x7d, 0x97, 0x24, 0x5d, 0x70, 0xc5, 0x20, 0x3b, 0xe0, 0x1b, 0x06, 0xcb, 0xde, 0x06, 0xae, 0x03, 0x72, 0x04, 0xd2, 0x37, 0x30, 0xcd, 0x69, 0x61, 0x89, 0xf7, 0xac, 0x26, 0x7c, 0xf2, 0x02, 0x17, 0x99, 0x29, 0xce, 0x54, 0x10, 0xe0, 0xe3, 0xad, 0xe5, 0x13, 0xd2, 0x20, 0x1b, 0xfd, 0x20, 0xfe, 0xfa, 0x40, 0xb4, 0x47, 0x6f, 0x27, 0xbf, 0x90, 0x7c, 0x76, 0x2e, 0xb7, 0x26, 0x2a, 0x5b, 0xe1, 0x3c, 0xfc, 0x04, 0x7a, 0x84, 0x6d, 0x20, 0xa9, 0xf2, 0x31, 0x1b, 0x64, 0x69, 0xb0, 0x6a, 0xb5, 0x45, 0xf0, 0xec, 0x9f, 0xc4, 0x46, 0xea, 0x25, 0x0c, 0xd3, 0xb7, 0x3a, 0x7b, 0x6b, 0x96, 0x0c, 0x10, 0xca, 0x4c, 0x2d, 0x6c, 0x64, 0xa1, 0x56, 0xa1, 0x8c, 0x9f, 0xb8, 0x10, 0xe4, 0x9a, 0xfd, 0x0c, 0x36, 0xda, 0xab, 0x8b, 0x8b, 0x85, 0x66, 0x43, 0xa4, 0xcc, 0xaf, 0xa9, 0xad, 0x88, 0x6e, 0x91, 0xe5, 0x44, 0x53, 0x5b, 0x8e, 0xdd, 0xa2, 0x7c, 0x90, 0xc0, 0x6a, 0xb6, 0xbc, 0xc5, 0x36, 0x28, 0xbe, 0x18, 0xd7, 0xd6, 0x36, 0x9c, 0xa1, 0x80, 0x1f, 0x91, 0xc2, 0xe0, 0xb9, 0x5f, 0x36, 0xd7, 0x02, 0xf7, 0x72, 0x34, 0xb4, 0x10, 0x07, 0x19, 0xc0, 0x59, 0x95, 0x1e, 0x45, 0xb1, 0xf9, 0x16, 0x98, 0x39, 0x34, 0xe3, 0x2b, 0x4d, 0x4d, 0x8f, 0x29, 0xc0, 0xa3, 0x73, 0xf8, 0xd8, 0xf0, 0x91, 0x8b, 0x96, 0x78, 0x65, 0xcd, 0x0e, 0x4b, 0xec, 0xa0, 0x13, 0x27, 0xc9, 0x9d, 0x5f, 0xde, 0xd4, 0xc1, 0xa6, 0x9a, 0xc2, 0xd4, 0xd9, 0xb7, 0x8f, 0xfb, 0x83, 0x05, 0x67, 0x00, 0x21, 0x04, 0x02, 0x50, 0xcc, 0x27, 0x73, 0x7e, 0x75, 0xdf, 0x75, 0x76, 0x0f, 0xec, 0x8b, 0x8d, 0x30, 0xb2, 0x45, 0x65, 0x4f, 0x3c, 0x12, 0xf1, 0xf7, 0xce, 0xa0, 0xbc, 0xe7, 0x8a, 0xb3, 0x69, 0x35, 0x78, 0xaf, 0x3e, 0xa6, 0x1f, 0xfc, 0xcd, 0xf9, 0xba, 0xf7, 0xc3, 0xea, 0x65, 0xb8, 0x8f, 0xc8, 0x54, 0x12, 0x81, 0x26, 0x47, 0x67, 0x96, 0x89, 0x2c, 0x66, 0x3b, 0xd1, 0x45, 0x18, 0xc9, 0x91, 0x86, 0x29, 0xa1, 0x09, 0x5f, 0x61, 0x4e, 0x04, 0x92, 0x44, 0x6c, 0x3d, 0x84, 0xb1, 0x6e, 0xc9, 0x4f, 0x7e, 0xca, 0xda, 0xeb, 0x6b, 0x65, 0x9b, 0xbb, 0x48, 0x67, 0xb5, 0x79, 0x06, 0x17, 0x14, 0xfd, 0x5b, 0xb0, 0xfa, 0xa4, 0xad, 0x6b, 0xe0, 0xff, 0xb3, 0x88, 0x8b, 0xea, 0x44, 0x7e, 0x4e, 0x34, 0x38, 0xc8, 0xf0, 0xea, 0xe6, 0x44, 0xfb, 0xd4, 0x5a, 0x38, 0x02, 0xdc, 0x40, 0xec, 0x45, 0x1b, 0x21, 0x2b, 0xd5, 0x92, 0xda, 0xcd, 0x4d, 0xa9, 0x66, 0x86, 0xdc, 0x8b, 0x20, 0x24, 0x25, 0x7f, 0x25, 0xe9, 0xc8, 0x30, 0xbf, 0xf7, 0x95, 0xee, 0xe8, 0x5d, 0x87, 0xa0, 0x90, 0xc1, 0xa4, 0x23, 0x21, 0xe7, 0x10, 0x55, 0x57, 0x64, 0xed, 0x82, 0x57, 0xc9, 0x41, 0x5c, 0x7f, 0x22, 0x4b, 0x53, 0x75, 0x58, 0xce, 0xfd, 0xc6, 0x15, 0x12, 0x9f, 0x28, 0x35, 0x02, 0x67, 0xc0, 0x1b, 0xa0, 0x40, 0x3e, 0x07, 0xf5, 0xc6, 0x06, 0x7f, 0x91, 0xc8, 0x5a, 0x2c, 0x50, 0xc8, 0x66, 0xdc, 0x43, 0x88, 0xaf, 0x38, 0xd2, 0x16, 0x02, 0x03, };
16260 static const u8 ed25519_707_test_vectors_expected_sig[] = {
16261 	0xb0, 0xa3, 0x6a, 0x2c, 0x93, 0x47, 0x56, 0x34, 0x8e, 0xb4, 0x7c, 0x25, 0xa3, 0x2c, 0x3f, 0x2a, 0x5d, 0xdb, 0xd5, 0x8f, 0xcc, 0x72, 0xa0, 0x8c, 0x3c, 0xea, 0xd1, 0xa2, 0xd9, 0x00, 0x33, 0x5c, 0x30, 0x01, 0xe3, 0x5b, 0xfe, 0x1f, 0x3f, 0xb5, 0xa5, 0x55, 0x00, 0x9b, 0xa8, 0xe9, 0x68, 0x74, 0x49, 0x4b, 0x97, 0xe8, 0xb0, 0x97, 0x00, 0xed, 0xcb, 0x1f, 0x25, 0x84, 0xb9, 0xd0, 0xfe, 0x03, };
16262 static const ec_test_case ed25519_707_test_case = {
16263 	.name = "EDDSA25519-SHA512/wei25519 707",
16264 	.ec_str_p = &wei25519_str_params,
16265 	.priv_key = ed25519_707_test_vectors_priv_key,
16266 	.priv_key_len = sizeof(ed25519_707_test_vectors_priv_key),
16267 	.nn_random = NULL,
16268 	.hash_type = SHA512,
16269 	.msg = (const char *)ed25519_707_test_vectors_message,
16270 	.msglen = sizeof(ed25519_707_test_vectors_message),
16271 	.sig_type = EDDSA25519,
16272 	.exp_sig = ed25519_707_test_vectors_expected_sig,
16273 	.exp_siglen = sizeof(ed25519_707_test_vectors_expected_sig),
16274 	.adata = NULL,
16275 	.adata_len = 0
16276 };
16277 
16278 /************************************************/
16279 static const u8 ed25519_708_test_vectors_priv_key[] = {
16280 	0xd9, 0x62, 0xa6, 0x71, 0x9e, 0x5c, 0xc7, 0x72, 0x4c, 0xa4, 0xa1, 0xd5, 0x59, 0x53, 0x68, 0x12, 0xb4, 0xe2, 0x2a, 0xa7, 0xbc, 0xb1, 0x3e, 0x4f, 0xb1, 0x72, 0x2d, 0x28, 0xe0, 0x45, 0x21, 0x7c, };
16281 static const u8 ed25519_708_test_vectors_message[] = {
16282 	0xa6, 0xaa, 0x7a, 0x19, 0x0d, 0x00, 0x3a, 0xb1, 0x75, 0x33, 0x2b, 0x8f, 0x58, 0xe7, 0xca, 0xeb, 0x69, 0x08, 0x54, 0xd9, 0xdb, 0x56, 0xdb, 0xb6, 0x95, 0x7b, 0x3f, 0xb6, 0x54, 0xe2, 0xe0, 0xda, 0x99, 0x1f, 0x31, 0x54, 0x21, 0x42, 0x04, 0x13, 0x5d, 0xf1, 0xe1, 0x10, 0x43, 0x17, 0xc9, 0xe3, 0xc5, 0x8e, 0xed, 0xff, 0x1f, 0xc6, 0x1a, 0xba, 0x57, 0x74, 0x4c, 0x0c, 0x7e, 0xf4, 0x86, 0x00, 0x0a, 0x70, 0xb2, 0xc1, 0x42, 0xeb, 0xad, 0xdc, 0x07, 0xab, 0x06, 0x5e, 0x2a, 0x85, 0x5d, 0xaf, 0x19, 0x8a, 0x68, 0x03, 0xac, 0x24, 0xef, 0x37, 0x24, 0x48, 0x7c, 0x13, 0x51, 0xdd, 0xed, 0xa0, 0x51, 0x39, 0x13, 0x45, 0x7d, 0x76, 0x86, 0x0d, 0x78, 0xa9, 0xb6, 0xbc, 0x3d, 0xba, 0x66, 0xc4, 0x0e, 0x5f, 0xc3, 0x49, 0xa8, 0x73, 0xad, 0x60, 0x65, 0xce, 0x7d, 0x7f, 0xdc, 0x2c, 0xc4, 0x83, 0xb3, 0xae, 0xfb, 0xf2, 0xf0, 0x3d, 0xd6, 0x69, 0xbd, 0x9c, 0xb8, 0xf6, 0x3c, 0xee, 0x47, 0x78, 0x5c, 0xac, 0xb0, 0x9d, 0x87, 0x2c, 0x9a, 0xeb, 0x83, 0xe9, 0x86, 0x84, 0x05, 0x25, 0x43, 0x24, 0x03, 0x79, 0x82, 0xe0, 0x86, 0x13, 0x45, 0x5d, 0x95, 0x21, 0xd8, 0x8e, 0xa2, 0xfd, 0xa0, 0x20, 0xbe, 0x73, 0x0c, 0xfc, 0x8c, 0x07, 0xcb, 0x0b, 0x37, 0x61, 0x4c, 0xcb, 0xa2, 0xfa, 0x3e, 0xc4, 0x98, 0xb8, 0x15, 0xbb, 0x5a, 0xdb, 0x99, 0x6e, 0x84, 0x8b, 0x38, 0xc0, 0x15, 0xa6, 0xa5, 0xc7, 0x52, 0xeb, 0xda, 0xc7, 0xb9, 0xee, 0xd8, 0xb6, 0x96, 0x19, 0xd8, 0xc8, 0x46, 0xb6, 0x6f, 0x78, 0x16, 0xd1, 0xdf, 0x1e, 0xbc, 0x21, 0x07, 0x1c, 0xef, 0x0b, 0x25, 0x1e, 0x2e, 0xab, 0x59, 0x82, 0x7f, 0x6d, 0x60, 0x55, 0x08, 0x43, 0x70, 0xfd, 0x27, 0xc2, 0x03, 0xe8, 0x6a, 0x18, 0x9f, 0x1e, 0xe1, 0x1e, 0x84, 0x03, 0xab, 0xdc, 0xbd, 0x1f, 0x45, 0x34, 0x1a, 0x82, 0x05, 0x25, 0xd8, 0x63, 0x7d, 0xc4, 0x84, 0xa5, 0x18, 0x5d, 0x65, 0x51, 0xcb, 0x88, 0x2a, 0x96, 0xb9, 0x98, 0x1a, 0x5f, 0x1a, 0x82, 0x1f, 0x27, 0xb6, 0x56, 0xff, 0xf9, 0x0e, 0x7f, 0x69, 0xbf, 0x28, 0x6f, 0x75, 0x2f, 0x97, 0x0f, 0xfc, 0xa5, 0xc5, 0x3e, 0x08, 0x50, 0xb2, 0x0b, 0x94, 0xf9, 0x43, 0x16, 0x27, 0x09, 0x4a, 0xce, 0xa9, 0x12, 0xa8, 0x80, 0xb7, 0x49, 0xa6, 0xf8, 0x0b, 0xb2, 0x06, 0xcc, 0xaa, 0x74, 0x6f, 0xa7, 0x0c, 0x83, 0x3c, 0x9f, 0x32, 0x30, 0x89, 0xce, 0x05, 0x58, 0xc9, 0xdc, 0x20, 0x0d, 0x57, 0x39, 0xd1, 0xe4, 0x99, 0x63, 0x4f, 0x2c, 0x16, 0xe5, 0x4b, 0x7f, 0x6d, 0x78, 0x19, 0xc4, 0x70, 0x71, 0xb6, 0x0b, 0xd5, 0x4d, 0xd0, 0xf2, 0x73, 0xa3, 0x19, 0x75, 0x0f, 0xd3, 0xc5, 0x10, 0xa4, 0x9a, 0xb5, 0x6f, 0x63, 0x0c, 0x7c, 0xe6, 0xd8, 0x02, 0x3d, 0x97, 0x86, 0x23, 0x46, 0x85, 0x9b, 0xc0, 0xb4, 0xd6, 0x05, 0x22, 0x49, 0x69, 0x70, 0x89, 0x03, 0x76, 0x03, 0x01, 0x40, 0x9c, 0x60, 0xab, 0x25, 0x17, 0x56, 0x11, 0xf0, 0xbe, 0x98, 0xb2, 0x3a, 0x8c, 0xd8, 0xac, 0x53, 0x5e, 0x35, 0x13, 0xbc, 0x77, 0xe1, 0x45, 0x21, 0x93, 0xda, 0xdf, 0x44, 0x35, 0xe6, 0x3c, 0x36, 0x29, 0xb6, 0x66, 0xa5, 0xea, 0x4c, 0x4b, 0xad, 0x36, 0xea, 0xca, 0xd2, 0x60, 0x14, 0x04, 0xea, 0xbd, 0x8d, 0x9a, 0x07, 0x95, 0x6e, 0xc2, 0xb4, 0xb7, 0xbb, 0x63, 0x36, 0xed, 0x75, 0xb8, 0xdf, 0x8f, 0x16, 0xde, 0x42, 0xc0, 0xfc, 0xae, 0x93, 0x65, 0x2e, 0x3c, 0x40, 0x7c, 0xbd, 0x45, 0xe8, 0xd4, 0x13, 0xef, 0x51, 0xe8, 0x54, 0x2d, 0xf6, 0x25, 0x12, 0xee, 0x79, 0x3e, 0x41, 0x35, 0x8a, 0x1d, 0xe1, 0x92, 0x46, 0xc6, 0x58, 0x6b, 0x3c, 0x14, 0x07, 0x41, 0x04, 0x21, 0xf6, 0xe8, 0x65, 0xc7, 0x5a, 0x9f, 0x4a, 0x6a, 0x47, 0x88, 0xf8, 0x4a, 0x9c, 0x78, 0x1d, 0x8f, 0x80, 0x24, 0xbf, 0xdb, 0xe2, 0x5b, 0xdc, 0x7d, 0x4b, 0x69, 0xcb, 0xaa, 0x77, 0x19, 0x62, 0x8c, 0x0b, 0x07, 0xec, 0x2c, 0x4a, 0x23, 0x4f, 0xff, 0x4a, 0xc3, 0xd4, 0x93, 0x5b, 0x9c, 0xe4, 0xc8, 0xa1, 0x69, 0x47, 0xab, 0xe7, 0x95, 0x1f, 0xf8, 0xd9, 0xac, 0x92, 0x15, 0xe3, 0x38, 0xfa, 0x0f, 0xe9, 0x12, 0x41, 0x76, 0xd1, 0x7b, 0xac, 0x1e, 0x05, 0x59, 0x2c, 0x43, 0x98, 0x68, 0xae, 0x5a, 0x4f, 0x75, 0xfd, 0x1e, 0xa8, 0x2a, 0xa4, 0x54, 0xc2, 0x0a, 0x93, 0x9d, 0xed, 0xa7, 0x29, 0xa0, 0xe1, 0x96, 0x46, 0xce, 0xbd, 0x82, 0x20, 0x49, 0xc8, 0x25, 0xc7, 0xe3, 0x1c, 0x6e, 0xfa, 0xd4, 0x5e, 0x30, 0x6f, 0x2d, 0x9f, 0x05, 0x69, 0xe0, 0x71, 0x73, 0x31, 0xf4, 0x80, 0x04, 0xc2, 0x6e, 0xbf, 0xe6, 0x8f, 0x38, 0x43, 0xe9, 0x0f, 0x80, 0x67, 0x03, 0x2d, 0x21, 0xe7, 0x86, 0xc8, 0x53, 0x9e, 0x01, 0xbe, 0x3c, 0xea, 0xc5, 0x95, 0x4a, 0x05, 0x46, 0xc8, 0x4b, 0x73, 0x4d, 0x99, 0x94, 0x56, 0xa7, 0xc4, 0x5f, 0x8c, 0xeb, 0xaa, 0x47, 0x8e, 0x54, 0x80, 0x07, 0xf9, 0xd3, 0xaf, 0x83, 0x6f, 0x75, 0x4d, 0xe4, 0x12, 0x3f, 0x2f, };
16283 static const u8 ed25519_708_test_vectors_expected_sig[] = {
16284 	0xdf, 0xb9, 0xb6, 0x35, 0xac, 0x0e, 0xdf, 0x83, 0xb7, 0xb5, 0x9d, 0x0b, 0x84, 0x09, 0xaf, 0x47, 0x5f, 0x66, 0xfc, 0x99, 0x46, 0xaf, 0x0b, 0x7c, 0x63, 0xab, 0x8c, 0xf5, 0x92, 0x9d, 0x47, 0x01, 0xa1, 0xbf, 0x66, 0x95, 0x9c, 0xde, 0x62, 0xfb, 0xcf, 0x59, 0xa4, 0x8a, 0xb3, 0xbb, 0xaf, 0x0b, 0x9a, 0x61, 0xb6, 0xe0, 0x0b, 0x21, 0x81, 0xeb, 0x93, 0x42, 0x82, 0x07, 0x0a, 0x5d, 0x53, 0x00, };
16285 static const ec_test_case ed25519_708_test_case = {
16286 	.name = "EDDSA25519-SHA512/wei25519 708",
16287 	.ec_str_p = &wei25519_str_params,
16288 	.priv_key = ed25519_708_test_vectors_priv_key,
16289 	.priv_key_len = sizeof(ed25519_708_test_vectors_priv_key),
16290 	.nn_random = NULL,
16291 	.hash_type = SHA512,
16292 	.msg = (const char *)ed25519_708_test_vectors_message,
16293 	.msglen = sizeof(ed25519_708_test_vectors_message),
16294 	.sig_type = EDDSA25519,
16295 	.exp_sig = ed25519_708_test_vectors_expected_sig,
16296 	.exp_siglen = sizeof(ed25519_708_test_vectors_expected_sig),
16297 	.adata = NULL,
16298 	.adata_len = 0
16299 };
16300 
16301 /************************************************/
16302 static const u8 ed25519_709_test_vectors_priv_key[] = {
16303 	0xe1, 0xd1, 0x41, 0x65, 0x18, 0x92, 0x1d, 0x07, 0xc8, 0xc3, 0x9e, 0x29, 0x73, 0xd8, 0xea, 0x12, 0x49, 0xca, 0xa8, 0xbf, 0x65, 0x9c, 0xc3, 0x6c, 0x79, 0x37, 0xf8, 0x4e, 0xce, 0x7a, 0xd4, 0xfc, };
16304 static const u8 ed25519_709_test_vectors_message[] = {
16305 	0x3d, 0x26, 0x3d, 0xe1, 0xab, 0x91, 0xe8, 0xdd, 0x7b, 0x31, 0x7f, 0x7a, 0x27, 0xfb, 0x60, 0xa6, 0xe1, 0x83, 0x8c, 0x0c, 0x79, 0x3b, 0x03, 0xab, 0xbe, 0x70, 0x82, 0xb6, 0xbd, 0xa0, 0xc7, 0xc4, 0x60, 0x62, 0x26, 0x21, 0x92, 0xc8, 0x8b, 0x65, 0xc0, 0x26, 0xc1, 0x74, 0x58, 0x4d, 0x29, 0x64, 0x97, 0x10, 0x42, 0x9a, 0xe4, 0x4a, 0x46, 0x14, 0x0b, 0x4c, 0x82, 0xc8, 0xa0, 0xb7, 0x4d, 0x56, 0xa0, 0x04, 0xf8, 0xe2, 0xf5, 0xc1, 0x8f, 0x84, 0xf0, 0x46, 0x41, 0x53, 0x77, 0x2f, 0x83, 0x12, 0x63, 0x3f, 0xc6, 0xad, 0x28, 0xa7, 0xd9, 0xfb, 0x55, 0xf7, 0xd7, 0x8c, 0xd6, 0x48, 0x8c, 0xa5, 0x81, 0x17, 0xea, 0xf9, 0x23, 0xfa, 0x28, 0x87, 0x5e, 0x2b, 0x31, 0x89, 0x89, 0x31, 0x85, 0xaa, 0x3c, 0xcd, 0x04, 0x4d, 0x3f, 0x11, 0x0e, 0x2e, 0x7c, 0xab, 0xdf, 0x6f, 0x81, 0x4b, 0x9f, 0xdd, 0x67, 0x33, 0xbd, 0x5f, 0x30, 0x7a, 0x87, 0xbc, 0x73, 0xb6, 0x25, 0x0d, 0x58, 0x83, 0x93, 0x6d, 0xeb, 0x1d, 0xb0, 0xe0, 0xaf, 0x1b, 0xe7, 0xab, 0x32, 0x9b, 0x5c, 0x6b, 0xd9, 0x35, 0xbd, 0x8f, 0x8d, 0xc8, 0x88, 0xf0, 0xd1, 0xc4, 0x64, 0xed, 0xbc, 0x02, 0x3c, 0xbc, 0x08, 0x07, 0x53, 0xee, 0x8f, 0x79, 0x9f, 0x10, 0x72, 0xba, 0xd1, 0x14, 0x4d, 0xfa, 0xa6, 0x15, 0xa5, 0x9e, 0x2a, 0xed, 0xc6, 0x62, 0xe8, 0x3c, 0xb1, 0xf8, 0xe5, 0x20, 0x96, 0xa7, 0xee, 0x48, 0x3b, 0xf8, 0x73, 0xb2, 0x5a, 0x0c, 0x04, 0xc1, 0x85, 0x1a, 0x0e, 0x87, 0x37, 0x50, 0x63, 0xaa, 0x1a, 0x94, 0xfa, 0x83, 0x5c, 0x05, 0x26, 0x40, 0x36, 0x6b, 0x79, 0xf7, 0x35, 0xd3, 0x28, 0x61, 0x97, 0xab, 0x32, 0xeb, 0xdb, 0x51, 0x23, 0xf6, 0xb4, 0x7a, 0xd3, 0xf4, 0x42, 0xc4, 0x4c, 0x53, 0x0a, 0x68, 0xf8, 0x51, 0x27, 0x59, 0xe9, 0xcf, 0x38, 0x6f, 0xba, 0x07, 0xb8, 0x06, 0x4b, 0xc8, 0xfe, 0x83, 0xe2, 0x45, 0x49, 0x5e, 0xc4, 0x5f, 0x89, 0x38, 0xf8, 0x25, 0x9d, 0xc8, 0x01, 0x62, 0x05, 0xf7, 0x8d, 0x39, 0x54, 0x44, 0x2e, 0xc1, 0xb4, 0x45, 0xd8, 0x3d, 0x95, 0xad, 0x18, 0x05, 0xa5, 0xe0, 0xe8, 0xb3, 0xd5, 0x6b, 0x87, 0x0a, 0x20, 0xda, 0x18, 0xd7, 0x4f, 0x26, 0xf5, 0x50, 0xa9, 0xc7, 0x53, 0x4a, 0x41, 0x44, 0xdc, 0xbc, 0x1c, 0x3c, 0xdb, 0xbe, 0x47, 0x0c, 0xc1, 0x53, 0x90, 0x50, 0x43, 0x08, 0x8f, 0xac, 0xf1, 0xd3, 0x03, 0x55, 0x9d, 0xe4, 0x1e, 0x96, 0xc0, 0xab, 0x40, 0x9b, 0xb3, 0x6d, 0xcf, 0x38, 0xcc, 0x90, 0x38, 0xa6, 0xa4, 0x90, 0x8d, 0xea, 0x82, 0xa6, 0x53, 0x19, 0x5c, 0x16, 0xf2, 0x90, 0xa7, 0xc3, 0xac, 0x48, 0x76, 0x36, 0xcc, 0x5b, 0xcb, 0x18, 0xd1, 0x5a, 0x14, 0xac, 0x62, 0x4c, 0x70, 0xb6, 0xf6, 0x46, 0x2b, 0xf2, 0x49, 0xe0, 0x00, 0xce, 0xe9, 0x24, 0x01, 0x8b, 0xdf, 0x7d, 0xde, 0x39, 0x11, 0x4c, 0xb4, 0xf6, 0x52, 0xe1, 0x22, 0xe8, 0x74, 0x4d, 0xa2, 0x8b, 0x05, 0x89, 0xe1, 0x28, 0x4d, 0x70, 0xd9, 0xf1, 0x06, 0xde, 0x16, 0xd0, 0x73, 0x64, 0x80, 0x80, 0xe6, 0x43, 0x7f, 0xf3, 0x84, 0xe6, 0x81, 0x77, 0xd5, 0xcb, 0x71, 0x8e, 0x2c, 0xe3, 0xf1, 0x7b, 0xa1, 0xe9, 0x90, 0xae, 0x3c, 0xe9, 0x40, 0x66, 0x01, 0x30, 0xe9, 0x37, 0x50, 0xb8, 0x2e, 0x2f, 0xb4, 0x1a, 0xa3, 0x69, 0x77, 0x45, 0x68, 0xd7, 0xcf, 0x28, 0x67, 0x25, 0xe3, 0xc5, 0x8f, 0x63, 0xe7, 0x3f, 0x86, 0x97, 0xae, 0xec, 0xc7, 0x17, 0xc5, 0xcf, 0x1a, 0xf7, 0xad, 0x74, 0xf4, 0x46, 0x29, 0x2c, 0x90, 0x5d, 0x84, 0xe2, 0x2b, 0x23, 0xd4, 0xe0, 0xd2, 0x60, 0x4b, 0xff, 0x48, 0xfe, 0xfc, 0x40, 0xc6, 0x20, 0x4b, 0x5e, 0x34, 0xc0, 0x42, 0x29, 0x2e, 0x53, 0xbe, 0xc9, 0x36, 0x01, 0x59, 0xa5, 0xcd, 0x97, 0xb2, 0xdf, 0x57, 0x86, 0xb8, 0xf5, 0xa2, 0x92, 0xc0, 0xb3, 0x9d, 0x14, 0xa8, 0x70, 0xa4, 0x58, 0x8e, 0x67, 0xbd, 0x12, 0xb2, 0xc2, 0xf7, 0xa4, 0x40, 0x84, 0x62, 0x85, 0x1d, 0x2a, 0xa7, 0x87, 0x97, 0x1d, 0x93, 0x15, 0x19, 0x0f, 0x42, 0xcc, 0x58, 0x8a, 0xf0, 0xd2, 0xdc, 0xd9, 0x1f, 0x31, 0xbb, 0x71, 0x5e, 0x92, 0x50, 0xf1, 0x19, 0x28, 0x14, 0xf7, 0xb8, 0xa2, 0x1f, 0xef, 0x45, 0x17, 0xb0, 0xcf, 0x8b, 0xb8, 0xa1, 0xa1, 0xa5, 0xf5, 0x00, 0xee, 0x21, 0x9d, 0xfb, 0x46, 0x13, 0x2e, 0xfe, 0x8e, 0x90, 0xbc, 0x49, 0x09, 0x3a, 0x55, 0x59, 0xf9, 0x68, 0x1b, 0x4f, 0xb5, 0x9e, 0x5b, 0xa9, 0xef, 0x3f, 0x05, 0xd3, 0x4e, 0xed, 0x03, 0x4c, 0x14, 0xd7, 0x7e, 0xe9, 0x5e, 0xbd, 0x76, 0xff, 0xa5, 0xaf, 0x0b, 0xef, 0xcb, 0xa1, 0x8f, 0xdf, 0x93, 0x2a, 0xf4, 0x85, 0x45, 0x10, 0xb7, 0x5d, 0xb0, 0x0a, 0x72, 0x57, 0xb2, 0x34, 0x88, 0x7d, 0x49, 0x60, 0x7d, 0xfd, 0x16, 0x18, 0x0d, 0xb5, 0x16, 0xc7, 0xa2, 0x0c, 0xcf, 0xca, 0xed, 0xa6, 0xae, 0xdf, 0xb6, 0xa2, 0x37, 0x7f, 0xbf, 0x31, 0xe6, 0x7b, 0x51, 0x76, 0x55, 0xdb, 0x73, 0xca, 0x29, 0xe1, 0x18, 0x62, 0x4d, 0x60, 0x80, };
16306 static const u8 ed25519_709_test_vectors_expected_sig[] = {
16307 	0x42, 0x32, 0xd2, 0xa4, 0x81, 0x08, 0x4d, 0x11, 0x96, 0xdb, 0x62, 0xf2, 0x2d, 0xc7, 0x4c, 0xf2, 0xea, 0xf2, 0xdb, 0x0d, 0xf0, 0x5a, 0xd7, 0xcd, 0xde, 0x67, 0xbf, 0xc2, 0x9b, 0xff, 0x56, 0xcd, 0xe0, 0x19, 0xac, 0x9f, 0x03, 0xd8, 0x1f, 0x18, 0x27, 0xeb, 0x1e, 0x3b, 0x0a, 0xbe, 0x02, 0x04, 0xca, 0x7f, 0x77, 0xfa, 0x87, 0x4a, 0xb5, 0x26, 0x83, 0x54, 0xff, 0x08, 0xbb, 0x7f, 0x48, 0x00, };
16308 static const ec_test_case ed25519_709_test_case = {
16309 	.name = "EDDSA25519-SHA512/wei25519 709",
16310 	.ec_str_p = &wei25519_str_params,
16311 	.priv_key = ed25519_709_test_vectors_priv_key,
16312 	.priv_key_len = sizeof(ed25519_709_test_vectors_priv_key),
16313 	.nn_random = NULL,
16314 	.hash_type = SHA512,
16315 	.msg = (const char *)ed25519_709_test_vectors_message,
16316 	.msglen = sizeof(ed25519_709_test_vectors_message),
16317 	.sig_type = EDDSA25519,
16318 	.exp_sig = ed25519_709_test_vectors_expected_sig,
16319 	.exp_siglen = sizeof(ed25519_709_test_vectors_expected_sig),
16320 	.adata = NULL,
16321 	.adata_len = 0
16322 };
16323 
16324 /************************************************/
16325 static const u8 ed25519_710_test_vectors_priv_key[] = {
16326 	0x2b, 0xf7, 0x4f, 0x00, 0x4d, 0x7d, 0x0a, 0xf7, 0x3a, 0x83, 0xea, 0x20, 0x8c, 0xc2, 0x06, 0x72, 0x3d, 0x18, 0x8f, 0x4c, 0xf6, 0x07, 0xbc, 0xad, 0x4b, 0x69, 0x80, 0x26, 0x8f, 0xf2, 0x1f, 0xa7, };
16327 static const u8 ed25519_710_test_vectors_message[] = {
16328 	0x89, 0x8e, 0x43, 0x03, 0xea, 0x5b, 0xeb, 0xd2, 0x00, 0xa5, 0xf7, 0x56, 0x2b, 0xe5, 0xf5, 0x03, 0x26, 0x40, 0xa3, 0xf5, 0xcc, 0xfa, 0x76, 0x42, 0x92, 0x04, 0x5a, 0x1a, 0x36, 0x8d, 0x02, 0xaa, 0x59, 0x10, 0x77, 0xd8, 0xf3, 0x04, 0xf7, 0x4d, 0xbd, 0xfc, 0x28, 0x07, 0x34, 0x45, 0x4e, 0xd8, 0xc2, 0x72, 0x7a, 0xff, 0x39, 0x2c, 0x10, 0x8c, 0x52, 0x6e, 0x52, 0x7e, 0x67, 0x2c, 0x53, 0x97, 0xb2, 0xd7, 0x7c, 0x01, 0xf7, 0x74, 0x1e, 0xf8, 0xdc, 0xc2, 0x51, 0x0e, 0xe8, 0x41, 0xb5, 0x9d, 0xd1, 0x0f, 0x4e, 0x1d, 0x3a, 0xc5, 0x01, 0xaf, 0x7c, 0xbd, 0xb8, 0x5b, 0xa3, 0x11, 0x29, 0xc2, 0x62, 0xfd, 0xe1, 0xa0, 0xc8, 0xbc, 0x83, 0xd6, 0xff, 0x94, 0x4b, 0x6b, 0xae, 0x3f, 0xa7, 0xfb, 0x62, 0x58, 0x7c, 0x68, 0x1d, 0x8e, 0x34, 0x29, 0x65, 0xc5, 0x70, 0x5f, 0xd1, 0xa6, 0xab, 0x39, 0xe5, 0xa0, 0x77, 0x0e, 0xe7, 0x79, 0x8d, 0x9f, 0xb6, 0xc0, 0x01, 0x8a, 0x51, 0x4d, 0x53, 0xaf, 0x84, 0x8d, 0xb6, 0x04, 0x7c, 0xd0, 0x2d, 0xb3, 0x52, 0xd5, 0x56, 0x3b, 0x53, 0x66, 0x23, 0x73, 0xb9, 0x71, 0x93, 0x5a, 0x1a, 0xc2, 0xb7, 0xb6, 0x36, 0x1d, 0xac, 0x67, 0x48, 0x77, 0x18, 0x13, 0xf7, 0x74, 0x93, 0x16, 0x69, 0x49, 0x61, 0xb9, 0x40, 0xff, 0x38, 0x05, 0x81, 0x1a, 0x49, 0xfa, 0x27, 0xa9, 0xba, 0x45, 0x7a, 0xd2, 0x88, 0x48, 0xc6, 0x97, 0x05, 0x0e, 0x01, 0x88, 0xd0, 0x77, 0x3e, 0x17, 0xfb, 0x52, 0x19, 0x4e, 0x19, 0x0a, 0x78, 0x72, 0xa3, 0x98, 0xf3, 0x1c, 0x0f, 0x0a, 0xe0, 0x65, 0x37, 0xa2, 0x73, 0xff, 0xb5, 0x0c, 0x2c, 0x81, 0x64, 0x45, 0xab, 0x88, 0x28, 0x11, 0x92, 0x2c, 0x06, 0x21, 0x55, 0x6c, 0x46, 0xa3, 0xa0, 0xec, 0x40, 0xbf, 0xed, 0xb4, 0x11, 0xe9, 0x0b, 0x6d, 0xb1, 0xdd, 0xd4, 0xbb, 0xeb, 0xb5, 0x7d, 0x10, 0xdf, 0x56, 0x6a, 0x63, 0xd7, 0x26, 0xa3, 0x33, 0x08, 0x51, 0x4c, 0xe3, 0xb4, 0x99, 0xd5, 0xe5, 0x26, 0xc2, 0x2b, 0x95, 0x6d, 0x8b, 0x99, 0x91, 0x3d, 0xcb, 0x13, 0xe4, 0x37, 0xe9, 0x47, 0xb6, 0x66, 0xc4, 0x1c, 0x54, 0xd8, 0xb3, 0xae, 0x23, 0x56, 0x64, 0x7e, 0x80, 0x17, 0xab, 0x67, 0x83, 0x86, 0xc9, 0x27, 0x21, 0x9a, 0xe7, 0xbd, 0xdc, 0x0d, 0x82, 0x12, 0x65, 0xf9, 0xdc, 0x4f, 0xf3, 0xf8, 0xce, 0x5b, 0xe6, 0x0f, 0x8e, 0x9d, 0xef, 0xc5, 0xca, 0x33, 0x50, 0x68, 0xee, 0x29, 0xfe, 0x83, 0x04, 0x91, 0x7b, 0x78, 0x87, 0x84, 0xa2, 0x38, 0x8a, 0x32, 0x01, 0x92, 0xf9, 0x32, 0x5d, 0x0e, 0x6c, 0xff, 0xfe, 0xa2, 0x1e, 0x6e, 0xaa, 0x29, 0xe7, 0x70, 0x7f, 0x63, 0xa9, 0xea, 0x4f, 0xbb, 0x25, 0x58, 0xe3, 0xd0, 0x83, 0x5b, 0xab, 0x1f, 0x52, 0x36, 0x10, 0x37, 0xae, 0x59, 0xe5, 0x03, 0xee, 0x96, 0xb9, 0xd7, 0x08, 0xa4, 0x7a, 0x3a, 0xe4, 0xba, 0xd1, 0x13, 0xe2, 0xa4, 0x60, 0xa2, 0x69, 0xcc, 0xf2, 0x5a, 0x00, 0x03, 0xcb, 0x3e, 0x68, 0xa5, 0x51, 0x86, 0x4e, 0x59, 0x84, 0x09, 0x14, 0x79, 0x11, 0x26, 0xf9, 0x54, 0x78, 0x8b, 0x25, 0xb5, 0xaf, 0x5a, 0xaf, 0x58, 0x6e, 0xbb, 0x87, 0xfa, 0x5f, 0x37, 0x7b, 0x4d, 0x7d, 0x7f, 0x84, 0xc0, 0x00, 0xdd, 0x2c, 0xb4, 0x40, 0xe2, 0x14, 0xd3, 0x8d, 0x5e, 0xcf, 0x70, 0xf2, 0x0e, 0x98, 0x81, 0x82, 0x8e, 0xda, 0xa1, 0xdb, 0xec, 0x37, 0x09, 0x3d, 0xb9, 0x60, 0x68, 0x6c, 0xa1, 0x23, 0xf1, 0xec, 0xba, 0x63, 0x36, 0xb3, 0x7f, 0x46, 0xcf, 0x76, 0x5b, 0xe2, 0x81, 0x4b, 0x9e, 0x67, 0x05, 0xbc, 0x9d, 0x6a, 0x49, 0x31, 0x81, 0x18, 0xc7, 0x52, 0x9b, 0x37, 0xc8, 0x4e, 0xc8, 0x8d, 0x58, 0xa8, 0x45, 0x3d, 0xcb, 0x69, 0x2c, 0x9a, 0x36, 0x01, 0x6b, 0x94, 0x8e, 0xbe, 0x6f, 0xb2, 0xc1, 0xd0, 0xad, 0xf5, 0xf1, 0x98, 0xee, 0x30, 0x97, 0xa6, 0xff, 0x0b, 0x8e, 0xeb, 0xba, 0xd8, 0xb0, 0x76, 0x93, 0x30, 0xb1, 0x86, 0x89, 0x51, 0x6b, 0xc0, 0xfe, 0x66, 0x8b, 0x0d, 0x05, 0xe3, 0xa5, 0x84, 0xfc, 0xf8, 0x9c, 0x49, 0xdb, 0x50, 0x1d, 0x61, 0xc2, 0xde, 0xf7, 0xed, 0x37, 0x22, 0x07, 0x01, 0x93, 0xa5, 0xb6, 0x83, 0xc5, 0x08, 0x7e, 0xf2, 0x74, 0xce, 0x6a, 0x19, 0x3d, 0xd4, 0xa3, 0x03, 0x53, 0x6c, 0x67, 0x93, 0x4b, 0x46, 0x60, 0xa8, 0x41, 0xee, 0x1b, 0x44, 0x6a, 0x68, 0x92, 0xb1, 0x4d, 0x0b, 0x0a, 0xa3, 0xe9, 0x8f, 0xdf, 0xfd, 0x43, 0xc7, 0x97, 0xad, 0xd3, 0x65, 0x83, 0xf7, 0x4c, 0x94, 0xd0, 0xe2, 0xd6, 0x8e, 0x2d, 0xe8, 0x18, 0xd9, 0xaf, 0x20, 0x05, 0x98, 0xf0, 0xb2, 0xbe, 0xae, 0x16, 0x9c, 0x8d, 0xfb, 0xc4, 0xd3, 0x97, 0xe6, 0xd1, 0xce, 0xb6, 0xda, 0xa6, 0xc9, 0xf6, 0xbb, 0xf4, 0xf8, 0x31, 0x1b, 0xa2, 0x6f, 0xfb, 0x19, 0x4d, 0x44, 0x21, 0x6c, 0x51, 0x30, 0x52, 0x67, 0x07, 0x4e, 0x85, 0x6a, 0x1d, 0x6e, 0x92, 0x27, 0x80, 0xf4, 0x79, 0x8e, 0x2f, 0x22, 0x02, 0x23, 0xff, 0xf1, 0xdc, 0x37, 0x0c, 0x8e, 0x34, 0x51, 0x4a, 0xba, 0x42, 0xdf, 0x51, };
16329 static const u8 ed25519_710_test_vectors_expected_sig[] = {
16330 	0x3e, 0xb5, 0xb3, 0x39, 0xe1, 0x91, 0xa3, 0xb6, 0x16, 0x85, 0x45, 0xda, 0x5f, 0xb0, 0xca, 0x9b, 0xe2, 0x09, 0x04, 0x39, 0x19, 0xb9, 0xc7, 0x0a, 0x07, 0xb4, 0xa7, 0xa3, 0xbf, 0x64, 0xb1, 0x02, 0xf6, 0xff, 0xd6, 0xd2, 0xb0, 0x25, 0x59, 0xdc, 0x68, 0x1e, 0xd3, 0xb9, 0xc8, 0x22, 0x97, 0xb2, 0x01, 0xdc, 0x25, 0xc4, 0x97, 0x38, 0x80, 0xe1, 0x55, 0xe1, 0x3a, 0x29, 0x42, 0x6e, 0xb4, 0x0d, };
16331 static const ec_test_case ed25519_710_test_case = {
16332 	.name = "EDDSA25519-SHA512/wei25519 710",
16333 	.ec_str_p = &wei25519_str_params,
16334 	.priv_key = ed25519_710_test_vectors_priv_key,
16335 	.priv_key_len = sizeof(ed25519_710_test_vectors_priv_key),
16336 	.nn_random = NULL,
16337 	.hash_type = SHA512,
16338 	.msg = (const char *)ed25519_710_test_vectors_message,
16339 	.msglen = sizeof(ed25519_710_test_vectors_message),
16340 	.sig_type = EDDSA25519,
16341 	.exp_sig = ed25519_710_test_vectors_expected_sig,
16342 	.exp_siglen = sizeof(ed25519_710_test_vectors_expected_sig),
16343 	.adata = NULL,
16344 	.adata_len = 0
16345 };
16346 
16347 /************************************************/
16348 static const u8 ed25519_711_test_vectors_priv_key[] = {
16349 	0xf5, 0xf7, 0xd5, 0xb7, 0x3c, 0x5a, 0x65, 0x30, 0x1b, 0x5b, 0x4c, 0x67, 0x10, 0xed, 0x12, 0xc1, 0x6e, 0x79, 0x03, 0x17, 0x7d, 0xb7, 0x92, 0xca, 0x71, 0x5e, 0x23, 0x38, 0x9d, 0x05, 0xd8, 0x3e, };
16350 static const u8 ed25519_711_test_vectors_message[] = {
16351 	0x7c, 0x93, 0x18, 0xd5, 0x6e, 0x63, 0xf1, 0x65, 0x35, 0x43, 0x6f, 0xa4, 0x5a, 0xfe, 0x27, 0x8e, 0x74, 0xe6, 0x18, 0x81, 0xbb, 0x46, 0x89, 0x97, 0xd0, 0x41, 0x8b, 0xc7, 0x20, 0xb6, 0x30, 0xda, 0xdb, 0x81, 0x28, 0xb4, 0xb6, 0x5c, 0xa6, 0xe9, 0x21, 0xe5, 0x01, 0x81, 0x3d, 0xf9, 0xfe, 0x03, 0xb4, 0xef, 0x0a, 0xae, 0x80, 0x35, 0xdd, 0x08, 0xc5, 0xf8, 0x20, 0xce, 0x5d, 0xf1, 0x2e, 0xe1, 0x18, 0xd9, 0xc3, 0x6d, 0x3b, 0x15, 0x1a, 0x52, 0xc3, 0xf9, 0x6a, 0xe1, 0xca, 0x4c, 0x82, 0xfd, 0x19, 0xda, 0x66, 0x9d, 0xdb, 0xa9, 0x4f, 0xeb, 0xf8, 0xea, 0xc8, 0xc4, 0x2b, 0x44, 0x7b, 0xab, 0xc8, 0xa6, 0x0b, 0x36, 0xe8, 0x03, 0x62, 0x4f, 0x7d, 0x20, 0x47, 0xbd, 0x8d, 0x8a, 0x15, 0x36, 0x87, 0xf1, 0x0d, 0xc1, 0xca, 0x82, 0x10, 0x0b, 0x7c, 0x87, 0xd3, 0x23, 0x70, 0xec, 0x8f, 0x26, 0x71, 0xed, 0x7d, 0x06, 0x7c, 0xc8, 0x05, 0x87, 0xca, 0xb8, 0xdb, 0x3a, 0x71, 0xce, 0x5e, 0x40, 0x63, 0x27, 0xf7, 0x63, 0xec, 0x1b, 0x3c, 0x16, 0x67, 0x70, 0xa7, 0x55, 0x36, 0x63, 0x0c, 0x81, 0x5f, 0xd8, 0x26, 0x75, 0x82, 0xd1, 0xb5, 0x05, 0x1f, 0x0f, 0x82, 0x1c, 0x02, 0x15, 0x0b, 0x2e, 0xef, 0x34, 0x9b, 0x50, 0x59, 0x03, 0x14, 0xaa, 0x25, 0x70, 0x79, 0x3f, 0xa6, 0x4a, 0x76, 0xed, 0x2e, 0xd8, 0x3d, 0x2b, 0xa1, 0xf9, 0xb9, 0xf1, 0x16, 0x31, 0x54, 0x61, 0x2b, 0x49, 0xa6, 0x4a, 0xd8, 0xd5, 0x57, 0x3c, 0x25, 0xb1, 0xcd, 0x37, 0xc4, 0x1a, 0x44, 0xe3, 0xdf, 0x78, 0xf1, 0x05, 0x3d, 0x90, 0xb0, 0x68, 0xf0, 0xd3, 0x7a, 0xe0, 0x0c, 0x4a, 0x32, 0xb1, 0xa3, 0xff, 0x87, 0x4c, 0x41, 0xda, 0x4a, 0x70, 0x43, 0x39, 0x2f, 0x18, 0xef, 0xe5, 0x51, 0x8d, 0x76, 0xe8, 0x8b, 0x41, 0xce, 0xd6, 0x9e, 0x6f, 0x4c, 0x01, 0x4f, 0x06, 0xeb, 0xc5, 0x14, 0x6e, 0x61, 0xe8, 0x2f, 0xae, 0x1c, 0x49, 0xc3, 0x7c, 0x39, 0x4f, 0xea, 0x34, 0x19, 0x9a, 0xb8, 0x6c, 0x11, 0xa4, 0x46, 0x7a, 0x37, 0x4e, 0x40, 0x25, 0x5a, 0x05, 0xd4, 0x26, 0x97, 0x14, 0x30, 0xd5, 0x6c, 0xdb, 0xa2, 0x5a, 0x21, 0xad, 0x77, 0x9c, 0xc7, 0xf6, 0x2d, 0x22, 0xcd, 0x87, 0xb6, 0x0f, 0x08, 0x91, 0xbd, 0x85, 0x6a, 0x51, 0x7e, 0x14, 0xb7, 0x2a, 0x9a, 0xc7, 0x67, 0x2e, 0x4e, 0x8f, 0xb3, 0x74, 0xa9, 0x75, 0x8a, 0xb0, 0xc4, 0xe5, 0x96, 0x4a, 0xae, 0x03, 0x22, 0x89, 0x73, 0xf1, 0x73, 0xa5, 0xd4, 0x2a, 0xef, 0x9d, 0xb3, 0x37, 0x36, 0xc3, 0xe1, 0x8d, 0x8e, 0xec, 0x20, 0x4a, 0x1a, 0x17, 0xb9, 0xd0, 0x45, 0x93, 0xde, 0xa4, 0xd8, 0x04, 0xcb, 0xc8, 0x1b, 0x9a, 0xc5, 0x45, 0x80, 0x50, 0x49, 0x55, 0x39, 0x99, 0x9a, 0x99, 0x85, 0x48, 0x7e, 0x7c, 0xa1, 0x1c, 0x37, 0x58, 0x2e, 0xf8, 0x5c, 0x84, 0x1e, 0x8f, 0x06, 0x5e, 0xa9, 0x8f, 0xdd, 0x6b, 0x1c, 0x60, 0xde, 0xa1, 0xec, 0x28, 0x83, 0x52, 0x15, 0x68, 0x85, 0x6a, 0x6e, 0xbb, 0x27, 0x49, 0xf2, 0x07, 0x2e, 0xb4, 0x34, 0x48, 0xbe, 0x07, 0x05, 0xed, 0x47, 0x7c, 0xf4, 0xb2, 0x00, 0x48, 0x65, 0x21, 0x7d, 0xe5, 0xfa, 0xdb, 0xe2, 0xa0, 0xf9, 0xd6, 0xb8, 0x4b, 0x3f, 0xe7, 0xf7, 0xbf, 0x6c, 0x77, 0x53, 0x74, 0x96, 0x24, 0x6e, 0xc7, 0x96, 0xb8, 0xef, 0x2c, 0x04, 0xf6, 0x8a, 0xb5, 0xb1, 0x4f, 0xce, 0x0c, 0x6d, 0x28, 0x7b, 0x83, 0x62, 0x27, 0xd9, 0xf0, 0x8f, 0xa0, 0xee, 0x19, 0x72, 0x2f, 0x67, 0x98, 0xa5, 0xd8, 0x28, 0x0d, 0x10, 0x7c, 0xfc, 0x1b, 0xd5, 0x92, 0xd9, 0xdd, 0xc7, 0x24, 0xea, 0x86, 0xfc, 0x39, 0xdc, 0x94, 0xa3, 0x94, 0x01, 0x9e, 0x3a, 0x3d, 0xe9, 0xe0, 0xd1, 0xc7, 0x35, 0xe8, 0x62, 0xde, 0x2b, 0xb9, 0x52, 0x5b, 0x5f, 0xb4, 0xbd, 0x12, 0x12, 0x12, 0xbf, 0xaf, 0xf9, 0xff, 0x58, 0x6a, 0xc3, 0xc7, 0x5c, 0x5a, 0xce, 0x74, 0x6d, 0x9c, 0xa3, 0x07, 0xf7, 0x95, 0xff, 0x26, 0x97, 0xf2, 0xb4, 0x1a, 0x63, 0x46, 0xed, 0x23, 0x39, 0x7e, 0xb3, 0x88, 0x98, 0x69, 0x1e, 0x6f, 0x66, 0x84, 0x16, 0x37, 0xd0, 0xab, 0x0d, 0x96, 0x83, 0x09, 0xe0, 0x19, 0x40, 0x02, 0x30, 0x90, 0x15, 0x41, 0x6e, 0x74, 0x47, 0x2f, 0xe3, 0x24, 0x25, 0xd4, 0x5f, 0x07, 0xc7, 0x71, 0x19, 0x18, 0xb1, 0xe5, 0x79, 0x0f, 0x57, 0x2c, 0xe4, 0x44, 0x10, 0x42, 0xd4, 0x26, 0x03, 0x37, 0x92, 0x29, 0x7b, 0x5f, 0x81, 0xe0, 0x80, 0x9b, 0xd9, 0x69, 0x1f, 0x0a, 0x50, 0x5e, 0x32, 0x59, 0xfc, 0x03, 0xc9, 0xff, 0x10, 0x7e, 0xb9, 0xb4, 0x87, 0x95, 0xf4, 0x9f, 0xb0, 0x9c, 0x1b, 0xab, 0x56, 0x59, 0xd3, 0x9f, 0xfe, 0xcb, 0xdc, 0xc4, 0x03, 0xe3, 0x80, 0x3d, 0xc0, 0x12, 0x43, 0x8c, 0x2f, 0xb3, 0x6f, 0x68, 0x30, 0x15, 0xc5, 0xdf, 0x04, 0x82, 0xcb, 0x7d, 0x7f, 0xc5, 0x75, 0x73, 0x64, 0xa0, 0xa3, 0xc1, 0x0d, 0x0e, 0x12, 0x59, 0xc0, 0x1f, 0xcc, 0x4d, 0xd5, 0x49, 0x4b, 0x52, 0x90, 0xa6, 0x94, 0xae, 0xa3, 0xf6, 0xfa, 0xe5, 0x47, 0xac, 0x57, 0x6f, };
16352 static const u8 ed25519_711_test_vectors_expected_sig[] = {
16353 	0x58, 0xfb, 0x39, 0x2f, 0x82, 0xd5, 0xe5, 0x2f, 0xf0, 0x72, 0xcc, 0x77, 0xef, 0xe0, 0x48, 0xf2, 0x23, 0x52, 0x50, 0xc7, 0x11, 0x25, 0xee, 0x82, 0x1c, 0x5f, 0x3b, 0x39, 0x3b, 0xcf, 0x2f, 0xa4, 0x6b, 0xe4, 0xc5, 0xd8, 0xca, 0xf1, 0x3c, 0xb5, 0x19, 0xef, 0xe0, 0xc2, 0xfa, 0xd9, 0xee, 0x23, 0x1a, 0xe9, 0xb6, 0xfd, 0x1f, 0xd5, 0x09, 0xc9, 0x8c, 0x69, 0xc2, 0xd3, 0x6c, 0x75, 0x3e, 0x0e, };
16354 static const ec_test_case ed25519_711_test_case = {
16355 	.name = "EDDSA25519-SHA512/wei25519 711",
16356 	.ec_str_p = &wei25519_str_params,
16357 	.priv_key = ed25519_711_test_vectors_priv_key,
16358 	.priv_key_len = sizeof(ed25519_711_test_vectors_priv_key),
16359 	.nn_random = NULL,
16360 	.hash_type = SHA512,
16361 	.msg = (const char *)ed25519_711_test_vectors_message,
16362 	.msglen = sizeof(ed25519_711_test_vectors_message),
16363 	.sig_type = EDDSA25519,
16364 	.exp_sig = ed25519_711_test_vectors_expected_sig,
16365 	.exp_siglen = sizeof(ed25519_711_test_vectors_expected_sig),
16366 	.adata = NULL,
16367 	.adata_len = 0
16368 };
16369 
16370 /************************************************/
16371 static const u8 ed25519_712_test_vectors_priv_key[] = {
16372 	0x43, 0xd4, 0xbe, 0x6d, 0xe9, 0xcb, 0x00, 0x89, 0x8e, 0x99, 0xdd, 0xcc, 0x2e, 0x15, 0x30, 0x11, 0x0f, 0xa2, 0xcb, 0xc4, 0x37, 0x6c, 0x48, 0x5e, 0x9c, 0xa5, 0x7f, 0xd6, 0x55, 0x86, 0xd8, 0xa3, };
16373 static const u8 ed25519_712_test_vectors_message[] = {
16374 	0xd9, 0xd5, 0x5d, 0xab, 0x0f, 0xa6, 0xda, 0x76, 0xb6, 0x8e, 0x84, 0x1c, 0x24, 0xd9, 0x71, 0xba, 0xc1, 0xf7, 0x9a, 0xf5, 0x13, 0xd8, 0x34, 0xe4, 0x26, 0xa5, 0xd0, 0x81, 0x14, 0xce, 0x8b, 0x54, 0xce, 0x8b, 0x7a, 0xfe, 0x01, 0x6b, 0x0f, 0xad, 0x03, 0xee, 0x74, 0x50, 0xc6, 0xc3, 0x09, 0x71, 0x73, 0x68, 0x1a, 0x4b, 0x2e, 0xb9, 0xf9, 0xc1, 0x79, 0xa8, 0x8e, 0x7c, 0xc3, 0x68, 0x13, 0xf2, 0xf5, 0xd1, 0x5f, 0x79, 0x98, 0xaf, 0xa9, 0xfd, 0x4e, 0x54, 0x6c, 0x73, 0xbb, 0x42, 0xe7, 0xf9, 0x52, 0x2b, 0xe6, 0xaf, 0xab, 0xca, 0x8c, 0x7b, 0x64, 0xfe, 0xd0, 0xe2, 0x92, 0xe4, 0x37, 0x5f, 0x3e, 0x1e, 0x5f, 0xd9, 0xfc, 0xb5, 0x39, 0xf4, 0xe5, 0xe5, 0x43, 0xfb, 0x6a, 0x11, 0xa0, 0xdf, 0x32, 0x1e, 0x70, 0x08, 0x4a, 0xaa, 0xbb, 0x70, 0xa9, 0x95, 0x0c, 0xee, 0xe3, 0xd8, 0x79, 0xc3, 0x86, 0xef, 0xca, 0x1e, 0x59, 0xc3, 0xcb, 0x7c, 0x45, 0xb5, 0x60, 0x09, 0x5e, 0x7a, 0xf0, 0x0f, 0xf5, 0x2f, 0x8a, 0x1a, 0xaa, 0x9c, 0xcf, 0x09, 0x2f, 0x0b, 0xb8, 0x06, 0xd9, 0x76, 0x10, 0x74, 0x2a, 0xc5, 0x82, 0xa3, 0xab, 0xbe, 0xdd, 0xf3, 0x9f, 0x49, 0xd2, 0x29, 0xd3, 0x2a, 0x11, 0x86, 0xd0, 0x21, 0x51, 0x8d, 0x74, 0x72, 0x8d, 0x13, 0xd9, 0x62, 0x63, 0x5d, 0x63, 0xba, 0xa6, 0x74, 0x3b, 0x12, 0x6b, 0xf4, 0x58, 0xfa, 0x2a, 0xc7, 0x56, 0xfb, 0xf8, 0x80, 0x96, 0xc8, 0xd3, 0x34, 0x0c, 0x62, 0x23, 0x90, 0x53, 0x4a, 0x74, 0x3f, 0x18, 0x64, 0xd5, 0x4d, 0xea, 0xb5, 0xe5, 0x53, 0x63, 0x72, 0xce, 0x5a, 0xc9, 0x37, 0x62, 0x28, 0x74, 0x14, 0xea, 0xe1, 0x58, 0xa7, 0x6b, 0xf8, 0x1d, 0xf5, 0x41, 0x7c, 0xf4, 0xc0, 0x47, 0xbe, 0x3a, 0xc1, 0x47, 0x5c, 0x51, 0x7e, 0xbd, 0x3a, 0xc1, 0xd1, 0xd1, 0xbd, 0xda, 0x11, 0xb3, 0xf9, 0x9c, 0x18, 0x17, 0x3e, 0x03, 0x0a, 0xcd, 0x51, 0xd2, 0xb5, 0xcf, 0x79, 0x51, 0x65, 0x09, 0x41, 0x54, 0x05, 0x07, 0x75, 0x11, 0xbd, 0xd9, 0xcb, 0xe1, 0x7d, 0x04, 0xf4, 0x78, 0x05, 0xe9, 0x8d, 0x0d, 0x14, 0x5e, 0x60, 0xa5, 0xd0, 0xe0, 0xf4, 0x53, 0xcd, 0x9b, 0x5c, 0x1a, 0x24, 0xf1, 0x2b, 0x75, 0xe8, 0xcc, 0x34, 0xd5, 0xe0, 0x06, 0x91, 0xff, 0xac, 0xbf, 0xf7, 0x88, 0xfe, 0xa8, 0x34, 0xd9, 0xd7, 0x79, 0xc1, 0xe6, 0x10, 0x29, 0x4d, 0xce, 0x19, 0x17, 0x0d, 0x28, 0x16, 0x0c, 0xff, 0x90, 0x9b, 0xea, 0x5a, 0x0a, 0xa7, 0x49, 0x40, 0x17, 0x40, 0xea, 0x3a, 0xf5, 0x1e, 0x48, 0xb2, 0x7c, 0x2b, 0x09, 0xf0, 0x25, 0x44, 0x42, 0x76, 0xc1, 0x88, 0xc0, 0x67, 0x1a, 0x6d, 0xa9, 0x4b, 0x43, 0xd1, 0xe5, 0x25, 0xe6, 0xa4, 0xa8, 0xa1, 0xa7, 0x3d, 0xfe, 0xdf, 0x12, 0x40, 0x18, 0x46, 0xba, 0x43, 0x06, 0x8a, 0x04, 0x09, 0x2b, 0x12, 0x91, 0x22, 0x70, 0xd2, 0xb6, 0x0d, 0xf6, 0x09, 0x97, 0x79, 0x75, 0x6b, 0x8b, 0xbb, 0x49, 0xec, 0xe8, 0x2d, 0x55, 0xf0, 0xf8, 0xdb, 0x1b, 0x80, 0xfb, 0x4b, 0x59, 0xbb, 0xa8, 0x60, 0xbd, 0x18, 0xc7, 0x5d, 0x6c, 0x83, 0x4d, 0x69, 0x44, 0x2a, 0xe0, 0x31, 0x4c, 0xf2, 0x39, 0x9f, 0x53, 0x92, 0xa3, 0xc6, 0x72, 0x8c, 0x63, 0xe5, 0xc5, 0x16, 0xc4, 0x22, 0x2a, 0xac, 0x60, 0xf9, 0x16, 0xdd, 0x63, 0xd1, 0xd0, 0x51, 0x7e, 0x8e, 0xb1, 0x0b, 0xd0, 0xe1, 0x5e, 0xb9, 0x06, 0x14, 0xde, 0xb2, 0x96, 0x40, 0x3a, 0xd1, 0x5b, 0x8c, 0x12, 0xb9, 0xe9, 0x71, 0xef, 0x2f, 0x01, 0xe5, 0x9f, 0xc3, 0x5d, 0x90, 0xc5, 0x5a, 0x8e, 0x20, 0xe9, 0x43, 0x7d, 0xd4, 0x34, 0xb2, 0x6d, 0x5c, 0x2c, 0x6e, 0xc2, 0xd5, 0x3a, 0xce, 0xc1, 0x7e, 0x81, 0xe4, 0x78, 0x31, 0xdc, 0x2d, 0xe8, 0x21, 0x83, 0xd7, 0x13, 0xb5, 0x9a, 0x4d, 0x1f, 0x46, 0x96, 0x9d, 0xdc, 0xdd, 0xaf, 0x27, 0xf4, 0x4e, 0x5a, 0x31, 0x1a, 0xaa, 0xc3, 0x9c, 0x3d, 0x5a, 0x97, 0xbc, 0x90, 0xca, 0xd7, 0x12, 0xf4, 0x6f, 0x85, 0xe6, 0xc8, 0xfb, 0xf5, 0xd5, 0x8d, 0x8b, 0xc3, 0xec, 0x27, 0xd3, 0x10, 0xa9, 0xea, 0xf2, 0xc3, 0x69, 0xcb, 0x00, 0x64, 0x97, 0x70, 0x39, 0x0a, 0x3f, 0x98, 0x8f, 0x36, 0x2e, 0xfc, 0x15, 0x5f, 0x56, 0xa1, 0x46, 0xa6, 0x26, 0x50, 0x54, 0x7e, 0x91, 0x53, 0x25, 0x07, 0x01, 0xee, 0xad, 0x1b, 0xd0, 0x1c, 0x89, 0x46, 0x22, 0x72, 0xdf, 0xaf, 0x0a, 0x43, 0x1a, 0xf4, 0xbd, 0x7c, 0x3d, 0xb4, 0x51, 0xad, 0xa6, 0x03, 0x23, 0x3f, 0xda, 0xd3, 0xaa, 0x89, 0x99, 0xaa, 0x21, 0xe2, 0xd3, 0xa4, 0x3b, 0x0b, 0x56, 0xfc, 0x6a, 0x91, 0x24, 0xd3, 0x35, 0x98, 0xb3, 0x73, 0x7f, 0x4e, 0x5c, 0xb2, 0x58, 0xbe, 0xda, 0x75, 0x6a, 0xd2, 0xe1, 0x7d, 0x06, 0x91, 0xd1, 0x5d, 0x41, 0x6b, 0xb7, 0xcb, 0x07, 0xec, 0x8d, 0x8c, 0x7a, 0xf5, 0xde, 0x80, 0xe5, 0xb9, 0x39, 0x4e, 0x32, 0x0c, 0x4c, 0x6e, 0x43, 0xef, 0xaa, 0xe6, 0x84, 0xad, 0x00, 0xf6, 0xdd, 0x20, 0xa8, 0x75, 0x0e, 0x95, 0x9c, 0x2f, 0x04, 0x20, 0x6f, 0xc0, 0x23, 0xaa, 0x19, 0x0c, };
16375 static const u8 ed25519_712_test_vectors_expected_sig[] = {
16376 	0x86, 0xae, 0x93, 0x25, 0xf8, 0x0b, 0x98, 0x86, 0xc8, 0x38, 0x1f, 0x96, 0xa1, 0x8c, 0x21, 0x20, 0xe6, 0xdb, 0x01, 0x6a, 0x0d, 0x6c, 0xa2, 0x82, 0xed, 0x93, 0xba, 0x9b, 0x61, 0xca, 0xec, 0x02, 0xde, 0x88, 0xef, 0xca, 0x8b, 0x8e, 0x91, 0x6a, 0x4b, 0x16, 0xa5, 0x85, 0x25, 0xa2, 0xf6, 0x8d, 0x21, 0xe5, 0xfb, 0xe6, 0x7d, 0xb4, 0xc4, 0xd6, 0x20, 0x95, 0x95, 0xc4, 0xab, 0xc3, 0x2b, 0x09, };
16377 static const ec_test_case ed25519_712_test_case = {
16378 	.name = "EDDSA25519-SHA512/wei25519 712",
16379 	.ec_str_p = &wei25519_str_params,
16380 	.priv_key = ed25519_712_test_vectors_priv_key,
16381 	.priv_key_len = sizeof(ed25519_712_test_vectors_priv_key),
16382 	.nn_random = NULL,
16383 	.hash_type = SHA512,
16384 	.msg = (const char *)ed25519_712_test_vectors_message,
16385 	.msglen = sizeof(ed25519_712_test_vectors_message),
16386 	.sig_type = EDDSA25519,
16387 	.exp_sig = ed25519_712_test_vectors_expected_sig,
16388 	.exp_siglen = sizeof(ed25519_712_test_vectors_expected_sig),
16389 	.adata = NULL,
16390 	.adata_len = 0
16391 };
16392 
16393 /************************************************/
16394 static const u8 ed25519_713_test_vectors_priv_key[] = {
16395 	0x7d, 0x01, 0x0d, 0x76, 0x0f, 0x24, 0xe5, 0xa2, 0xde, 0x34, 0x08, 0x9c, 0x9f, 0xdb, 0x19, 0xc3, 0x3b, 0x15, 0x5b, 0x0a, 0x37, 0xca, 0x45, 0x5a, 0x5e, 0x5b, 0x1d, 0xae, 0x7a, 0x07, 0x31, 0x76, };
16396 static const u8 ed25519_713_test_vectors_message[] = {
16397 	0x86, 0xe2, 0x11, 0x55, 0x72, 0xbf, 0x4c, 0x01, 0x3e, 0x6b, 0x4b, 0x04, 0xd0, 0xb0, 0x3e, 0x60, 0x6e, 0xe7, 0x0d, 0x92, 0x9c, 0xb8, 0xec, 0x36, 0xf4, 0xe2, 0xf3, 0x55, 0xdb, 0x3b, 0x5e, 0x15, 0x73, 0xd6, 0x58, 0xd1, 0x7b, 0xb1, 0xa3, 0x10, 0xc1, 0x69, 0x89, 0xa1, 0x6b, 0x95, 0x58, 0x92, 0x2e, 0xe4, 0x93, 0xf3, 0x59, 0x04, 0x21, 0x03, 0xc4, 0xdc, 0x1b, 0x40, 0xdf, 0xf7, 0x70, 0x99, 0x01, 0xfd, 0x58, 0x30, 0x13, 0x3f, 0x42, 0xc4, 0x65, 0x1e, 0xca, 0x00, 0x8b, 0x49, 0x9e, 0xe4, 0xf8, 0x4c, 0xd4, 0xec, 0x1e, 0xda, 0xa7, 0x82, 0x56, 0xed, 0xb6, 0x2f, 0x24, 0x02, 0x1a, 0x00, 0x76, 0x25, 0x69, 0x19, 0xe4, 0xe2, 0xce, 0x0a, 0x5a, 0x20, 0xf9, 0x21, 0xc2, 0x78, 0xcc, 0x29, 0x91, 0x59, 0x64, 0x4b, 0x5e, 0x3a, 0x3b, 0xbd, 0x08, 0x9d, 0xcb, 0xbe, 0xba, 0xd3, 0x76, 0x6a, 0xea, 0x77, 0xe9, 0xf0, 0x8e, 0xe5, 0xf7, 0xd4, 0xc1, 0x9d, 0x81, 0x70, 0xbc, 0x3d, 0xe1, 0xba, 0x77, 0x9a, 0x76, 0x99, 0x14, 0xf9, 0x65, 0xdb, 0xde, 0x2b, 0x61, 0xba, 0xd2, 0x14, 0xc5, 0x08, 0x18, 0x60, 0x41, 0xf7, 0x6c, 0x25, 0xbe, 0x95, 0x76, 0x56, 0xf5, 0xcf, 0xb7, 0x33, 0x4e, 0xb8, 0x38, 0xa3, 0xcf, 0xbc, 0x55, 0xcf, 0xba, 0xb6, 0x7a, 0xdf, 0x15, 0x52, 0x61, 0x99, 0x41, 0xb8, 0x35, 0xcd, 0x3e, 0x34, 0x10, 0x3b, 0x18, 0xb4, 0x91, 0x31, 0xe8, 0x20, 0x96, 0xf0, 0x5f, 0x57, 0x0b, 0x89, 0x98, 0x04, 0xba, 0xb8, 0xb6, 0xcb, 0xad, 0xdb, 0xbc, 0x02, 0xf9, 0xf3, 0xb5, 0x59, 0x73, 0x6d, 0x99, 0xca, 0x7b, 0x02, 0xd3, 0x26, 0x8f, 0xa2, 0x73, 0x99, 0x6f, 0xcf, 0x05, 0x71, 0x97, 0x7d, 0x1c, 0xc3, 0x00, 0x8c, 0x4e, 0xf8, 0x48, 0x97, 0x0e, 0xe3, 0x50, 0xb1, 0x58, 0xc4, 0x7e, 0xc2, 0x77, 0xad, 0xd4, 0x74, 0x2f, 0xa2, 0xbc, 0xbe, 0xa9, 0xbd, 0x55, 0x49, 0xc7, 0xbc, 0xa0, 0x38, 0x02, 0x0e, 0xce, 0x68, 0xf1, 0x88, 0xc1, 0xea, 0x3a, 0x62, 0xdd, 0x9a, 0x07, 0x3d, 0x4c, 0x13, 0x8c, 0xa8, 0xa9, 0xac, 0x04, 0x08, 0xdc, 0xfd, 0x46, 0xe3, 0x6b, 0xdf, 0xf7, 0x39, 0x88, 0xa5, 0x8b, 0x96, 0x17, 0xca, 0xa0, 0x8b, 0xd4, 0x1b, 0xf3, 0xe8, 0x12, 0xe7, 0x82, 0x4f, 0x0f, 0x7e, 0x81, 0x46, 0xa4, 0x44, 0xf3, 0x6b, 0xf5, 0x3a, 0x1c, 0xd8, 0x92, 0x03, 0x9c, 0xcd, 0x33, 0x5f, 0x5a, 0x2e, 0x79, 0x74, 0x5e, 0xac, 0x96, 0x14, 0x8c, 0x2a, 0x29, 0x99, 0x47, 0xf1, 0xb2, 0xe3, 0x28, 0xa3, 0x78, 0x9b, 0xf1, 0x3c, 0x6d, 0x73, 0x50, 0x6f, 0x3b, 0xdc, 0x68, 0xea, 0x48, 0xab, 0xf0, 0x02, 0x27, 0x0f, 0xe4, 0xee, 0x9e, 0xf9, 0xed, 0x6b, 0x10, 0xc2, 0xfb, 0xb4, 0xff, 0x12, 0x75, 0xb9, 0xd7, 0xdd, 0x35, 0xd8, 0xa5, 0x2e, 0x37, 0x17, 0x58, 0x57, 0x4c, 0xb4, 0x66, 0xc5, 0x7b, 0x5a, 0xbc, 0x24, 0x29, 0x76, 0xbe, 0xfc, 0x8d, 0x98, 0xa0, 0x13, 0x1b, 0x9b, 0xb8, 0x46, 0xb2, 0x19, 0xe4, 0x66, 0x91, 0x86, 0xa8, 0x3c, 0x05, 0x6c, 0xd8, 0x08, 0x06, 0x61, 0xde, 0x16, 0xb5, 0x1c, 0xe5, 0x76, 0x7b, 0x22, 0xe9, 0xa9, 0x32, 0x42, 0xbf, 0x8d, 0x32, 0x05, 0xc6, 0x6a, 0x67, 0x3c, 0xe7, 0x83, 0xd1, 0xc0, 0xd3, 0x7b, 0x63, 0x00, 0xfb, 0xf0, 0xd6, 0x12, 0x79, 0x40, 0xf8, 0x8f, 0x18, 0x19, 0xc4, 0x50, 0xdc, 0xc9, 0x05, 0x43, 0xed, 0x79, 0x4f, 0x1f, 0xd4, 0x4e, 0x65, 0x39, 0xfe, 0xba, 0xf1, 0x9a, 0x4c, 0xc9, 0x88, 0x70, 0x01, 0x4d, 0x7c, 0xca, 0xd7, 0x4d, 0x18, 0x76, 0xa1, 0x23, 0xec, 0xd1, 0x45, 0x51, 0x6c, 0x74, 0x3b, 0x4b, 0xba, 0x62, 0xd8, 0x21, 0xca, 0x9a, 0x79, 0x51, 0xe0, 0xdf, 0xb2, 0x3f, 0x38, 0xd9, 0xe3, 0xa3, 0x65, 0xfd, 0x83, 0x22, 0xf2, 0xee, 0x47, 0x99, 0xe9, 0xff, 0x11, 0xe1, 0xc5, 0xc3, 0x0b, 0x55, 0xa3, 0x55, 0xc8, 0xa5, 0xde, 0xea, 0x81, 0xa5, 0x45, 0xe3, 0x47, 0x05, 0xab, 0x56, 0xd1, 0x7b, 0x1f, 0xa0, 0x6e, 0xd7, 0x64, 0x15, 0x55, 0x67, 0x02, 0xf3, 0x64, 0x80, 0x82, 0x46, 0xf8, 0x63, 0xc3, 0x19, 0xf7, 0x5c, 0xdf, 0x6b, 0xd7, 0x48, 0x43, 0x8d, 0x1a, 0x2e, 0xaf, 0x42, 0x06, 0xc5, 0x60, 0xbf, 0xaf, 0xc2, 0x35, 0x67, 0x9a, 0xd6, 0x04, 0x9c, 0x1a, 0x01, 0x52, 0x6f, 0xcb, 0x9a, 0x3c, 0xe1, 0xb1, 0xd3, 0x9b, 0xe4, 0xdf, 0x18, 0xb1, 0x5f, 0xa0, 0xea, 0x55, 0x27, 0x2b, 0x17, 0xeb, 0xde, 0xdf, 0x6c, 0x30, 0x49, 0x8a, 0x8a, 0x14, 0xf2, 0x04, 0x2b, 0xe1, 0xc2, 0xcd, 0xb0, 0x9e, 0x9e, 0xf3, 0x84, 0x6d, 0x66, 0x59, 0xa9, 0xf6, 0xd6, 0x73, 0xdf, 0x9a, 0xfb, 0x7e, 0xde, 0xd0, 0x4b, 0x79, 0x3d, 0x97, 0x31, 0xf0, 0xac, 0xcc, 0x41, 0x46, 0x8d, 0xc1, 0xf3, 0x23, 0x6c, 0x99, 0xac, 0xad, 0xee, 0x62, 0x39, 0xc3, 0x61, 0xb8, 0xbd, 0x7e, 0x2d, 0x0c, 0xfe, 0x8b, 0xb7, 0xc0, 0x66, 0x87, 0xe0, 0x8e, 0x76, 0xb7, 0x1a, 0xd5, 0x7a, 0x03, 0x61, 0x79, 0xf2, 0x91, 0xd0, 0x96, 0xae, 0x2f, 0xa0, 0x81, 0x8e, 0xf4, 0xbf, 0x48, 0x66, };
16398 static const u8 ed25519_713_test_vectors_expected_sig[] = {
16399 	0x55, 0x70, 0x61, 0x38, 0x79, 0xae, 0x22, 0x77, 0x8b, 0xd5, 0x4f, 0x14, 0xfb, 0x6e, 0x8c, 0x02, 0x56, 0xa7, 0x1f, 0x3d, 0x79, 0xc3, 0xe5, 0xcd, 0x8e, 0x41, 0xae, 0xa8, 0xcf, 0x77, 0x3e, 0x24, 0xd2, 0x9f, 0x1f, 0x1b, 0x24, 0xf8, 0xc8, 0x0d, 0x29, 0x49, 0xe8, 0x20, 0x14, 0x65, 0xdb, 0xde, 0x89, 0x40, 0xb1, 0xfa, 0xb6, 0x48, 0x3b, 0x08, 0x5d, 0x41, 0x8e, 0x25, 0x10, 0x14, 0x20, 0x0c, };
16400 static const ec_test_case ed25519_713_test_case = {
16401 	.name = "EDDSA25519-SHA512/wei25519 713",
16402 	.ec_str_p = &wei25519_str_params,
16403 	.priv_key = ed25519_713_test_vectors_priv_key,
16404 	.priv_key_len = sizeof(ed25519_713_test_vectors_priv_key),
16405 	.nn_random = NULL,
16406 	.hash_type = SHA512,
16407 	.msg = (const char *)ed25519_713_test_vectors_message,
16408 	.msglen = sizeof(ed25519_713_test_vectors_message),
16409 	.sig_type = EDDSA25519,
16410 	.exp_sig = ed25519_713_test_vectors_expected_sig,
16411 	.exp_siglen = sizeof(ed25519_713_test_vectors_expected_sig),
16412 	.adata = NULL,
16413 	.adata_len = 0
16414 };
16415 
16416 /************************************************/
16417 static const u8 ed25519_714_test_vectors_priv_key[] = {
16418 	0xaa, 0xaa, 0xbb, 0x7c, 0xe4, 0xff, 0xfe, 0x4d, 0xc3, 0x57, 0x47, 0xba, 0xea, 0x2b, 0xc5, 0xf0, 0x50, 0xbe, 0xf0, 0x6e, 0xe0, 0xc1, 0xfd, 0x63, 0x2a, 0x06, 0x7f, 0xec, 0xe1, 0xef, 0x4f, 0xb5, };
16419 static const u8 ed25519_714_test_vectors_message[] = {
16420 	0xf9, 0xd2, 0x85, 0x97, 0xa3, 0xe2, 0xb6, 0x4b, 0xa3, 0x27, 0xac, 0x5c, 0xd2, 0x9f, 0x08, 0x1e, 0x74, 0xbf, 0x46, 0x1b, 0x2e, 0xb2, 0xd3, 0xcf, 0xd9, 0xd5, 0xe9, 0x21, 0x58, 0xd2, 0x1d, 0x1d, 0x2a, 0x47, 0xab, 0x50, 0x98, 0x1c, 0xb1, 0x9f, 0xe3, 0xf8, 0xc6, 0xfe, 0x48, 0x82, 0x49, 0xb1, 0xc4, 0x9f, 0xb8, 0x97, 0xa0, 0xfe, 0x21, 0xab, 0x54, 0x04, 0x41, 0x4f, 0xd9, 0x14, 0x87, 0x5c, 0x22, 0x0f, 0x1c, 0xbc, 0x12, 0xf5, 0xc3, 0x8c, 0xfb, 0xa7, 0x9f, 0x7a, 0xc3, 0x03, 0xa5, 0x23, 0x1a, 0x37, 0x2b, 0x02, 0xfa, 0xd6, 0xc8, 0x46, 0x2f, 0x8c, 0xc4, 0x9f, 0x0f, 0x64, 0x96, 0x5b, 0x65, 0x1d, 0xcc, 0xef, 0x0b, 0xb9, 0x60, 0x82, 0x15, 0x09, 0x08, 0x49, 0x17, 0x7b, 0xe4, 0x7b, 0x2d, 0x30, 0x72, 0x94, 0x4d, 0x36, 0xe8, 0x56, 0xda, 0x18, 0x5c, 0x7b, 0x3a, 0x68, 0x9f, 0x7e, 0xde, 0xf9, 0x88, 0x33, 0x8e, 0x09, 0x63, 0xed, 0x31, 0xa6, 0xb0, 0xa8, 0x0d, 0x5c, 0xb0, 0xb1, 0xcc, 0xcf, 0x6f, 0x39, 0x48, 0x37, 0xaa, 0x6f, 0x8b, 0x2f, 0x3d, 0xa5, 0xef, 0xbd, 0xf4, 0xd3, 0x60, 0xd4, 0xbf, 0x4d, 0xd7, 0x08, 0xce, 0x64, 0x45, 0x58, 0x7d, 0x94, 0x2b, 0x79, 0x76, 0x1c, 0xe9, 0x51, 0xb1, 0xbb, 0x4d, 0x90, 0x50, 0x70, 0x36, 0x18, 0xa6, 0xd9, 0x30, 0xa8, 0x0c, 0x69, 0x57, 0x6f, 0xc4, 0xaf, 0x30, 0x6a, 0x2a, 0x56, 0xdb, 0xd8, 0x84, 0xa0, 0x5a, 0x1e, 0x4e, 0x9f, 0x31, 0x36, 0xcd, 0x0b, 0x55, 0xae, 0x47, 0x4b, 0xb5, 0xd3, 0xd0, 0xfb, 0xc9, 0xb0, 0x33, 0x9c, 0xec, 0x34, 0x4f, 0xdd, 0x08, 0x5c, 0x19, 0x28, 0x10, 0x14, 0x81, 0xc6, 0x87, 0x94, 0xf5, 0xc8, 0x90, 0x13, 0x71, 0x08, 0xce, 0xa7, 0x91, 0xd2, 0x1f, 0x81, 0x68, 0x3d, 0x3e, 0x1a, 0x9e, 0xec, 0x66, 0xac, 0xe5, 0xc0, 0x14, 0xd8, 0x9e, 0x69, 0x80, 0x8e, 0x5f, 0xa8, 0x3d, 0x38, 0x12, 0xee, 0x68, 0x0f, 0x5a, 0x99, 0x71, 0x68, 0x1b, 0x8a, 0xdc, 0xd4, 0xa1, 0x6e, 0x9a, 0x4c, 0x16, 0x5b, 0x5e, 0xf9, 0x93, 0x2c, 0x5e, 0xd8, 0x25, 0x23, 0x7f, 0xd5, 0x03, 0x7b, 0xcb, 0xef, 0xe4, 0xcb, 0x11, 0x56, 0x4f, 0xa7, 0x07, 0xc8, 0xa9, 0x32, 0x90, 0x75, 0x14, 0x14, 0x89, 0x1b, 0x1e, 0xdd, 0x33, 0x13, 0xc6, 0x5f, 0x8b, 0x91, 0xc2, 0xe9, 0x25, 0xa3, 0xc1, 0x2a, 0x9d, 0x3a, 0xa4, 0x5f, 0xd5, 0xa6, 0x67, 0xb7, 0x83, 0x93, 0xc3, 0xe3, 0x9d, 0xf8, 0x8a, 0x8f, 0x0d, 0x11, 0x48, 0xb5, 0x31, 0x1e, 0x3d, 0x87, 0xc4, 0xa9, 0x2e, 0x0a, 0x3f, 0xb9, 0x15, 0xbc, 0x90, 0xd5, 0x55, 0x8d, 0x05, 0xb4, 0x75, 0xa8, 0x83, 0x47, 0x78, 0xaa, 0x94, 0x3e, 0xa3, 0x9b, 0x8e, 0xaa, 0x95, 0xad, 0x18, 0x32, 0xe5, 0x91, 0x6e, 0xa3, 0x10, 0x2d, 0x7d, 0xe0, 0xb8, 0x36, 0xcd, 0xe8, 0xf3, 0x75, 0x9d, 0xbb, 0x3b, 0x9d, 0x56, 0xea, 0x81, 0x7b, 0x3e, 0x49, 0xc9, 0x83, 0x21, 0x02, 0x77, 0xc2, 0xc7, 0xc5, 0xb0, 0xdb, 0x18, 0x74, 0x22, 0x53, 0x2f, 0xca, 0x98, 0xa2, 0x8b, 0x3b, 0x65, 0x9c, 0x6b, 0x81, 0x5a, 0xc1, 0x26, 0xfa, 0xdb, 0xe2, 0xf4, 0x00, 0xc7, 0x3e, 0x9d, 0x2d, 0xed, 0xcb, 0xbd, 0x2d, 0x3a, 0x36, 0x5f, 0xfa, 0xd7, 0xe6, 0x66, 0xc8, 0x96, 0xe3, 0x1e, 0x61, 0xb3, 0x84, 0xed, 0x3a, 0x9f, 0xcf, 0x12, 0x90, 0x53, 0x8d, 0xf1, 0x1b, 0x94, 0x74, 0xc6, 0x28, 0x1c, 0xc5, 0x92, 0xc7, 0x1c, 0x88, 0x08, 0x86, 0x8b, 0x42, 0x92, 0xc1, 0x7e, 0xce, 0x6b, 0x3e, 0xdf, 0x5e, 0x35, 0x42, 0xa7, 0x0b, 0x91, 0x15, 0x93, 0xe9, 0x3f, 0x35, 0xec, 0xd9, 0x72, 0x9b, 0xd8, 0x88, 0x0a, 0x24, 0xea, 0xf4, 0x1f, 0xbc, 0x65, 0x74, 0xdf, 0xe1, 0x67, 0xec, 0x2d, 0x0e, 0x7a, 0xb3, 0xdf, 0x5e, 0xc3, 0x4b, 0x8b, 0x55, 0xd5, 0x48, 0xab, 0x93, 0x73, 0x8a, 0x2e, 0xea, 0xf2, 0x1c, 0x88, 0x4c, 0x5c, 0x85, 0x51, 0xdb, 0x2e, 0xdf, 0x2b, 0x04, 0x9f, 0x1a, 0x2a, 0x84, 0xfa, 0x72, 0xac, 0x89, 0x78, 0xa4, 0xc2, 0x78, 0x09, 0xf2, 0x09, 0xc1, 0xb2, 0x19, 0x5a, 0xff, 0x50, 0x4f, 0x69, 0x98, 0x56, 0xcc, 0x4f, 0x22, 0xd4, 0x4e, 0xbd, 0xd0, 0xfe, 0x50, 0x37, 0x44, 0x68, 0xd0, 0xb1, 0x79, 0x2e, 0x57, 0x4b, 0x51, 0x10, 0xa1, 0xf4, 0xcd, 0x0e, 0x22, 0x1e, 0x82, 0x4a, 0x78, 0xdd, 0xc4, 0x84, 0x5f, 0xeb, 0x46, 0xd6, 0x6d, 0x63, 0x3d, 0x23, 0xcd, 0x23, 0xf4, 0xb6, 0xfb, 0xe4, 0xc8, 0xce, 0x16, 0xcd, 0x1a, 0xf6, 0x15, 0x36, 0xda, 0x5f, 0xa6, 0x7b, 0x10, 0xac, 0x75, 0x55, 0xa6, 0x8c, 0x0e, 0x0b, 0xdb, 0xf2, 0xf8, 0xd7, 0x23, 0x09, 0xd9, 0x95, 0x51, 0x6b, 0x81, 0x18, 0xbf, 0x43, 0x83, 0x5d, 0x0a, 0x01, 0xc0, 0x8f, 0xfe, 0xba, 0x3e, 0xa3, 0xed, 0x05, 0xcd, 0x2d, 0x54, 0xf0, 0xea, 0xbc, 0xda, 0x05, 0xd0, 0x03, 0x7d, 0x52, 0xca, 0xed, 0x3b, 0x19, 0x37, 0x4f, 0xaf, 0x73, 0x99, 0x90, 0x94, 0xf7, 0x90, 0x55, 0x92, 0x4b, 0xea, 0x9a, 0xec, 0x44, 0x70, 0x13, 0x5f, 0x5e, 0x8b, 0xf1, 0x83, 0xc9, 0xd1, 0xc9, };
16421 static const u8 ed25519_714_test_vectors_expected_sig[] = {
16422 	0x05, 0x0a, 0xe8, 0xae, 0xce, 0xec, 0x96, 0x27, 0xb8, 0x01, 0x37, 0x35, 0x7a, 0x22, 0x96, 0x2a, 0xc8, 0xb4, 0x50, 0x48, 0x66, 0x17, 0x08, 0xd3, 0x94, 0xd0, 0xa5, 0x1a, 0xad, 0xc3, 0x81, 0xfe, 0x85, 0x35, 0x02, 0x3d, 0x6e, 0x1b, 0xda, 0x0e, 0x72, 0xb3, 0x49, 0xb5, 0x0b, 0x26, 0xda, 0x7c, 0x3a, 0x30, 0x85, 0xe8, 0x1e, 0x9d, 0xd6, 0xcf, 0x12, 0x78, 0x68, 0xfc, 0x5b, 0xae, 0xab, 0x01, };
16423 static const ec_test_case ed25519_714_test_case = {
16424 	.name = "EDDSA25519-SHA512/wei25519 714",
16425 	.ec_str_p = &wei25519_str_params,
16426 	.priv_key = ed25519_714_test_vectors_priv_key,
16427 	.priv_key_len = sizeof(ed25519_714_test_vectors_priv_key),
16428 	.nn_random = NULL,
16429 	.hash_type = SHA512,
16430 	.msg = (const char *)ed25519_714_test_vectors_message,
16431 	.msglen = sizeof(ed25519_714_test_vectors_message),
16432 	.sig_type = EDDSA25519,
16433 	.exp_sig = ed25519_714_test_vectors_expected_sig,
16434 	.exp_siglen = sizeof(ed25519_714_test_vectors_expected_sig),
16435 	.adata = NULL,
16436 	.adata_len = 0
16437 };
16438 
16439 /************************************************/
16440 static const u8 ed25519_715_test_vectors_priv_key[] = {
16441 	0xe9, 0x5c, 0xc2, 0xa4, 0xd1, 0x19, 0x3b, 0x75, 0x39, 0xfc, 0xbb, 0xea, 0xae, 0xed, 0x98, 0x5b, 0x6f, 0xb9, 0x02, 0xdd, 0x0e, 0xfb, 0xd6, 0x38, 0x74, 0x57, 0x55, 0x0d, 0x0d, 0x6a, 0x2f, 0xea, };
16442 static const u8 ed25519_715_test_vectors_message[] = {
16443 	0x84, 0x26, 0x74, 0x39, 0x20, 0x1b, 0x05, 0x91, 0xdb, 0x60, 0xc0, 0xf1, 0x7a, 0x9c, 0x15, 0xe4, 0x54, 0x09, 0x29, 0x56, 0x52, 0xd5, 0xf5, 0x5b, 0x87, 0xfb, 0x35, 0x19, 0x67, 0xc8, 0x46, 0xa5, 0x67, 0xf5, 0xce, 0xba, 0xae, 0xd1, 0x76, 0x2b, 0xff, 0x54, 0x85, 0xf0, 0x48, 0x53, 0xca, 0x92, 0x69, 0xf4, 0x64, 0x09, 0x4e, 0x51, 0x2d, 0xf1, 0xf0, 0x2e, 0x13, 0xe5, 0x17, 0xb1, 0xda, 0xa5, 0x8d, 0x34, 0xca, 0xa2, 0xd5, 0xff, 0x9f, 0x9e, 0x79, 0xbc, 0xaf, 0xb4, 0xce, 0x96, 0xe8, 0xa0, 0x89, 0x25, 0x8a, 0xd6, 0x13, 0x43, 0xb4, 0x46, 0x62, 0x8e, 0xbc, 0x4f, 0x5b, 0x2a, 0x84, 0xd0, 0x3b, 0x72, 0xef, 0x3f, 0x73, 0x85, 0x89, 0xfa, 0x13, 0xc4, 0x25, 0x19, 0xa8, 0x28, 0x29, 0x9a, 0x3f, 0xae, 0xc0, 0x35, 0x03, 0x7b, 0xc1, 0x0b, 0x44, 0xe3, 0xbd, 0xfe, 0xd9, 0xe0, 0x87, 0x07, 0x17, 0xcb, 0xaf, 0x31, 0xbe, 0xf8, 0xb2, 0x2c, 0x4e, 0xa1, 0x6e, 0x81, 0x57, 0xfc, 0xbc, 0x63, 0xee, 0xfa, 0x39, 0xed, 0x82, 0x2e, 0xfd, 0x42, 0x15, 0xc2, 0x47, 0xdd, 0xa4, 0x87, 0x86, 0x27, 0x7e, 0xc0, 0x30, 0xa8, 0x6c, 0x0e, 0xf4, 0x85, 0x1d, 0x67, 0x3c, 0xfe, 0x75, 0x2d, 0x06, 0x77, 0x88, 0x3c, 0x2c, 0x45, 0x20, 0x38, 0x97, 0x0c, 0x09, 0xbd, 0x48, 0x17, 0x14, 0xbc, 0x3f, 0xbe, 0xcf, 0xa4, 0xff, 0x2a, 0x3c, 0x24, 0x56, 0x95, 0xd7, 0xec, 0xc2, 0xf4, 0xde, 0xc7, 0xf5, 0xed, 0xe0, 0x4f, 0xf6, 0xdb, 0x43, 0xe2, 0xbb, 0x91, 0xc0, 0x66, 0xb6, 0x49, 0xef, 0x73, 0xfd, 0x3b, 0xe8, 0x60, 0xcb, 0x83, 0xfa, 0x80, 0xb0, 0x74, 0x14, 0x9f, 0x43, 0x1e, 0xeb, 0xb9, 0x17, 0xec, 0x84, 0x78, 0xda, 0x87, 0x0c, 0x11, 0xe3, 0x17, 0x70, 0x38, 0x59, 0xf9, 0xf2, 0xf4, 0x00, 0x8a, 0x6c, 0x7c, 0x75, 0x4b, 0x06, 0xe1, 0xf7, 0xd2, 0x47, 0x96, 0x89, 0xda, 0x84, 0xe8, 0x89, 0x22, 0xf3, 0x82, 0x74, 0x98, 0x5e, 0x11, 0xce, 0x13, 0xcd, 0xbd, 0xb0, 0xf2, 0xec, 0xe6, 0x8f, 0xb6, 0x02, 0xad, 0xe0, 0x3d, 0xd5, 0x49, 0xa3, 0x62, 0x49, 0x1f, 0x4a, 0x20, 0x3f, 0xf8, 0x07, 0x44, 0xf6, 0x63, 0xc5, 0x23, 0xa0, 0x26, 0xb4, 0x31, 0xaa, 0xd4, 0x5c, 0x58, 0x29, 0xe0, 0x29, 0xad, 0x62, 0x56, 0xd1, 0x27, 0x6f, 0xd7, 0xb7, 0xa1, 0x2d, 0xdb, 0xf1, 0x72, 0x7d, 0x9e, 0x23, 0x3f, 0xb5, 0x34, 0x45, 0x73, 0x70, 0xa4, 0x26, 0xe5, 0x6f, 0xb3, 0x9c, 0xf4, 0x04, 0xa3, 0xec, 0xbf, 0x0c, 0x4b, 0x50, 0xbb, 0x52, 0x2d, 0xce, 0x98, 0x1e, 0x08, 0x30, 0xfd, 0x84, 0x06, 0xe6, 0xd9, 0x72, 0x5c, 0xeb, 0x1d, 0xdd, 0x3a, 0x19, 0x47, 0x93, 0x7d, 0x90, 0xe0, 0x4d, 0x76, 0x8a, 0xe1, 0xd1, 0x26, 0xe2, 0xae, 0xac, 0x21, 0xb8, 0xc9, 0xef, 0xc5, 0x4c, 0x40, 0x96, 0x1b, 0x7f, 0x4e, 0x9e, 0x88, 0x02, 0x5f, 0x7e, 0x0b, 0x9d, 0xe9, 0x01, 0xeb, 0xf0, 0x04, 0x9e, 0x74, 0x1b, 0x79, 0x79, 0x97, 0xd8, 0xdb, 0x78, 0xe9, 0x28, 0x3b, 0xbb, 0x5f, 0x90, 0xf3, 0x5a, 0x2c, 0x4d, 0xee, 0x27, 0x31, 0x42, 0xec, 0x25, 0x8c, 0x02, 0xad, 0x0e, 0xcc, 0x61, 0xcc, 0x5c, 0x9f, 0x12, 0x13, 0x2d, 0xb2, 0x8a, 0xf4, 0x1c, 0x1f, 0xb7, 0x8e, 0x52, 0x4b, 0xe5, 0x32, 0x7b, 0x5f, 0xfc, 0x35, 0x96, 0x27, 0x79, 0xfb, 0x11, 0xff, 0x0c, 0x5d, 0x3e, 0xe0, 0xa3, 0x1f, 0xf4, 0x7e, 0x73, 0xb1, 0x72, 0x9d, 0xfa, 0x46, 0xe8, 0x98, 0x6b, 0x1b, 0x89, 0xab, 0xc8, 0x8a, 0xd0, 0x6a, 0xbd, 0x5b, 0x6f, 0x76, 0x6d, 0x23, 0xab, 0xf6, 0x42, 0x25, 0x78, 0x94, 0xeb, 0xdf, 0xa7, 0x9e, 0x63, 0x09, 0xf1, 0x27, 0x23, 0x74, 0xee, 0x94, 0x33, 0x67, 0x7b, 0xa1, 0x3e, 0x45, 0x1b, 0xaa, 0x95, 0x33, 0x0e, 0x66, 0x0c, 0x80, 0x52, 0xae, 0x87, 0x2e, 0x0e, 0x32, 0xe2, 0xb2, 0xd1, 0x28, 0x6d, 0x01, 0xa0, 0xab, 0x58, 0x10, 0x42, 0x4e, 0xd8, 0xb9, 0x40, 0x54, 0x65, 0xbd, 0xeb, 0xa0, 0x3b, 0x69, 0x83, 0x84, 0x67, 0x6f, 0xe5, 0xea, 0x46, 0x4a, 0x03, 0x44, 0x6c, 0x4f, 0x7c, 0xd7, 0xb4, 0x33, 0x12, 0xec, 0xf1, 0x51, 0x36, 0x04, 0x64, 0x57, 0x1a, 0xd2, 0x86, 0x10, 0x58, 0x1f, 0xba, 0xdb, 0x94, 0x5a, 0x1d, 0x68, 0x18, 0x1d, 0xeb, 0x40, 0x3a, 0xa5, 0x6e, 0xba, 0x0b, 0xb8, 0x40, 0x32, 0x8e, 0xee, 0x36, 0x10, 0x3c, 0x7d, 0xe0, 0x73, 0xa6, 0x87, 0x9c, 0x94, 0x1c, 0x75, 0x54, 0xc6, 0xf6, 0xf2, 0xa0, 0x80, 0x80, 0x9e, 0xb0, 0xe5, 0xbd, 0x0e, 0x13, 0x0f, 0x29, 0xa2, 0x29, 0xe9, 0x30, 0xdb, 0x01, 0xfe, 0xca, 0xc2, 0xe0, 0x36, 0xbd, 0xf0, 0xe0, 0x01, 0xe2, 0xa8, 0xea, 0x32, 0x64, 0xf8, 0x64, 0x9d, 0x5b, 0x60, 0xc2, 0x91, 0x03, 0xf0, 0xb4, 0x9c, 0x24, 0xc9, 0x7f, 0xac, 0xaf, 0x7e, 0x81, 0x06, 0x9a, 0x2b, 0x26, 0xab, 0x3f, 0x93, 0x3f, 0x42, 0x7d, 0x81, 0x27, 0x2c, 0x6c, 0x8b, 0x7c, 0xd0, 0xdf, 0xb7, 0xc6, 0xbb, 0xe9, 0xc0, 0xea, 0xab, 0x32, 0xbb, 0xda, 0x22, 0x18, 0xb9, 0x62, 0x3a, 0x21, 0x19, 0xaa, 0xb1, 0xf3, 0xeb, };
16444 static const u8 ed25519_715_test_vectors_expected_sig[] = {
16445 	0x1b, 0x8d, 0x7c, 0xc2, 0xad, 0xf3, 0x6c, 0xae, 0x16, 0x31, 0x25, 0x0c, 0x82, 0x43, 0x1b, 0xd8, 0x84, 0x37, 0x16, 0x3a, 0x63, 0x49, 0xad, 0x96, 0xe7, 0xa8, 0x64, 0x44, 0x7e, 0x9f, 0xee, 0x75, 0x3a, 0xc3, 0x65, 0x5c, 0x98, 0x35, 0xb4, 0xd1, 0xec, 0xbb, 0x30, 0x6c, 0x63, 0x8b, 0xa5, 0x40, 0x2a, 0xd0, 0x2b, 0xa6, 0xd2, 0x25, 0xd9, 0x68, 0x82, 0x88, 0x9f, 0xe8, 0xd2, 0x04, 0xa6, 0x04, };
16446 static const ec_test_case ed25519_715_test_case = {
16447 	.name = "EDDSA25519-SHA512/wei25519 715",
16448 	.ec_str_p = &wei25519_str_params,
16449 	.priv_key = ed25519_715_test_vectors_priv_key,
16450 	.priv_key_len = sizeof(ed25519_715_test_vectors_priv_key),
16451 	.nn_random = NULL,
16452 	.hash_type = SHA512,
16453 	.msg = (const char *)ed25519_715_test_vectors_message,
16454 	.msglen = sizeof(ed25519_715_test_vectors_message),
16455 	.sig_type = EDDSA25519,
16456 	.exp_sig = ed25519_715_test_vectors_expected_sig,
16457 	.exp_siglen = sizeof(ed25519_715_test_vectors_expected_sig),
16458 	.adata = NULL,
16459 	.adata_len = 0
16460 };
16461 
16462 /************************************************/
16463 static const u8 ed25519_716_test_vectors_priv_key[] = {
16464 	0x77, 0xad, 0x0f, 0x94, 0x2c, 0x37, 0xf0, 0x31, 0x3e, 0x6b, 0x04, 0x56, 0xda, 0xba, 0xec, 0x81, 0xb2, 0xd6, 0x1f, 0x6c, 0x11, 0x8d, 0xdb, 0x29, 0xea, 0xf3, 0xac, 0x5b, 0xf1, 0x95, 0x04, 0xd4, };
16465 static const u8 ed25519_716_test_vectors_message[] = {
16466 	0x87, 0xe6, 0xde, 0xad, 0x2c, 0x85, 0x54, 0x9e, 0x3d, 0x8d, 0x25, 0x88, 0xa0, 0xa3, 0x36, 0x06, 0x03, 0xa6, 0x24, 0xfb, 0x65, 0xae, 0xbb, 0xc1, 0x01, 0xbf, 0x7f, 0x1f, 0xec, 0x18, 0xd0, 0xb2, 0x8f, 0xbd, 0x5d, 0xba, 0xee, 0xd3, 0x87, 0x52, 0xcd, 0xf6, 0x35, 0x5c, 0xe8, 0xdc, 0x84, 0xe1, 0x8a, 0xc1, 0xa4, 0x39, 0x3d, 0x2a, 0xb8, 0x88, 0x88, 0x2c, 0x4f, 0xf1, 0xc9, 0xc8, 0x13, 0x7f, 0x83, 0xbe, 0xe3, 0x63, 0x36, 0xbc, 0xbf, 0xbb, 0x72, 0xd5, 0x04, 0x9e, 0x0a, 0x40, 0x08, 0x74, 0x51, 0x4f, 0xdc, 0x36, 0x33, 0x04, 0x6e, 0x89, 0x38, 0x3d, 0xde, 0xd9, 0x3c, 0xa3, 0x1f, 0xde, 0x0d, 0x89, 0x8e, 0x11, 0xe9, 0x26, 0x8d, 0x3d, 0x5c, 0x24, 0x06, 0x66, 0xed, 0x55, 0x27, 0x61, 0x3d, 0xa7, 0x9f, 0xb7, 0xe4, 0x96, 0x25, 0xb4, 0x4c, 0xde, 0x78, 0xb4, 0x1c, 0x67, 0x90, 0x2e, 0xb0, 0x21, 0x6b, 0x3a, 0x7a, 0x3e, 0x56, 0x0e, 0x26, 0x1d, 0x71, 0xd7, 0x64, 0xaa, 0xcf, 0x15, 0x95, 0x9c, 0x17, 0xfc, 0xd6, 0x17, 0x6f, 0xb2, 0x5e, 0x24, 0x9e, 0xe6, 0xbb, 0x1b, 0x3b, 0xd7, 0xbd, 0x90, 0xf6, 0x0b, 0x0b, 0x0f, 0xfa, 0x03, 0x15, 0xa0, 0x65, 0xa2, 0x4b, 0xba, 0xe8, 0xf2, 0x55, 0xbf, 0x29, 0x8d, 0x7e, 0x4d, 0x44, 0xf0, 0xb4, 0x30, 0xc4, 0x15, 0xb4, 0xfb, 0x36, 0xcf, 0xa6, 0x62, 0x6a, 0x83, 0xf4, 0x9a, 0x25, 0x67, 0xf6, 0x24, 0x4f, 0x40, 0xe9, 0x23, 0xad, 0xd1, 0xd4, 0x9a, 0x72, 0xf5, 0x7b, 0x15, 0x30, 0xf5, 0xb3, 0x79, 0xde, 0x3a, 0x91, 0xc2, 0xe9, 0xa1, 0xac, 0x79, 0xab, 0x37, 0xbc, 0x3b, 0x9b, 0xa7, 0x3d, 0x88, 0x28, 0x13, 0x6b, 0xcc, 0x87, 0xd2, 0xc0, 0x11, 0x90, 0xde, 0x54, 0x57, 0xfa, 0xcd, 0x90, 0xf3, 0x69, 0x55, 0x3f, 0x7a, 0xc5, 0x21, 0xc5, 0x67, 0x2b, 0x08, 0x67, 0xdf, 0xa8, 0xda, 0x3b, 0x95, 0x2a, 0xd9, 0x5b, 0x67, 0xda, 0xb9, 0x9b, 0x48, 0x20, 0x57, 0x2f, 0x2d, 0x4a, 0x29, 0x8e, 0x95, 0x18, 0x63, 0x77, 0x79, 0x28, 0x9c, 0x03, 0x1b, 0x79, 0x3d, 0xee, 0x85, 0x9c, 0xde, 0x7b, 0x24, 0xad, 0xd6, 0x49, 0xff, 0xf8, 0x71, 0x24, 0x8a, 0x66, 0x02, 0xd2, 0x51, 0x62, 0x79, 0xda, 0x60, 0x58, 0xcb, 0xb6, 0x96, 0xfa, 0x8b, 0x1d, 0x89, 0xa2, 0x0d, 0x20, 0x99, 0xe6, 0x46, 0x44, 0x32, 0x10, 0x48, 0x3e, 0x5d, 0x41, 0x34, 0xe9, 0x28, 0xfa, 0xeb, 0x38, 0xa3, 0xb5, 0x08, 0x19, 0x9e, 0x0d, 0x69, 0xbb, 0x55, 0xee, 0x34, 0x77, 0x42, 0x05, 0xc0, 0xa6, 0x12, 0x05, 0xb5, 0x0b, 0x08, 0xfe, 0xbe, 0xaa, 0x40, 0x1e, 0x6e, 0x3a, 0x51, 0xa2, 0xbf, 0x98, 0xef, 0xac, 0x78, 0xb7, 0xae, 0x2b, 0x85, 0x2c, 0x53, 0x95, 0xa1, 0x2c, 0x40, 0xe2, 0xc7, 0xdd, 0x1b, 0x20, 0x25, 0x04, 0xb5, 0xa7, 0xd2, 0xf7, 0xe4, 0xfd, 0x4f, 0x86, 0x10, 0x93, 0x0d, 0x28, 0x68, 0xcb, 0xa8, 0x86, 0x43, 0x39, 0xe0, 0x41, 0xda, 0x21, 0xc0, 0x71, 0x5f, 0x41, 0xb2, 0xb2, 0x3d, 0x14, 0xd0, 0xb5, 0x45, 0x48, 0x0b, 0xc3, 0xbd, 0x7d, 0x72, 0x15, 0xcf, 0x2f, 0x81, 0x6a, 0x33, 0x32, 0x08, 0x1e, 0xca, 0xa0, 0x8c, 0x0f, 0x8b, 0x99, 0x52, 0x52, 0x51, 0xf5, 0x72, 0x31, 0xb6, 0x75, 0x0c, 0x2d, 0xbd, 0x11, 0x09, 0xac, 0x41, 0x60, 0x48, 0x6b, 0x76, 0x83, 0x24, 0xb6, 0xba, 0xc8, 0x7e, 0xf5, 0xa2, 0x26, 0x44, 0x8c, 0x43, 0x12, 0x40, 0x32, 0x8f, 0x42, 0xcc, 0xa5, 0x86, 0xbe, 0x7a, 0xff, 0x3c, 0xbe, 0x76, 0x05, 0xfa, 0x34, 0x15, 0x14, 0xfc, 0xcf, 0xb9, 0x66, 0xaf, 0x3d, 0x45, 0x30, 0xe8, 0xcd, 0x90, 0x37, 0xa1, 0x1c, 0xe5, 0x93, 0xc2, 0xd3, 0x83, 0xe1, 0x03, 0x5a, 0x0c, 0x2e, 0xda, 0x09, 0x8d, 0xe9, 0x0d, 0x50, 0xc5, 0x18, 0x4a, 0x9c, 0x01, 0xb5, 0x7f, 0x26, 0xb9, 0x4d, 0xed, 0xd1, 0x45, 0x4c, 0x34, 0x06, 0x37, 0xec, 0xcc, 0xee, 0x70, 0x62, 0x57, 0x54, 0xa3, 0x28, 0xc6, 0x5f, 0x42, 0x64, 0x5b, 0x5e, 0x1a, 0x56, 0x55, 0xee, 0xf9, 0x7d, 0xfb, 0x1c, 0x63, 0x08, 0xed, 0xf4, 0x9f, 0xa3, 0x68, 0xd1, 0x7d, 0x17, 0xe0, 0x6a, 0xdc, 0x51, 0x2b, 0x39, 0x73, 0xea, 0x65, 0x2a, 0xc4, 0x0a, 0x99, 0x78, 0xe1, 0xbb, 0x1b, 0x2f, 0x86, 0xc5, 0xa9, 0xff, 0xbf, 0x60, 0xdc, 0xc4, 0xf6, 0xbb, 0xc9, 0x8a, 0x64, 0xf4, 0xde, 0x65, 0xe7, 0xec, 0x61, 0x72, 0x1e, 0xde, 0xb0, 0xe5, 0x23, 0x84, 0x56, 0xf7, 0x61, 0xd2, 0xd1, 0x29, 0x3a, 0xf0, 0xde, 0x9f, 0x79, 0x3b, 0x11, 0xd8, 0xca, 0xdf, 0x01, 0xa9, 0x43, 0x19, 0xa0, 0x2a, 0x42, 0x73, 0xff, 0xc4, 0xd3, 0xff, 0xa7, 0xb3, 0x4d, 0x74, 0xfd, 0x2e, 0x0b, 0x10, 0x0f, 0xca, 0x58, 0xb5, 0x32, 0x5f, 0x90, 0x7a, 0x74, 0x91, 0x93, 0xe7, 0x51, 0xd6, 0xc1, 0x16, 0x68, 0x7a, 0xee, 0x37, 0x47, 0xb5, 0x94, 0x60, 0xd4, 0xef, 0x15, 0x6e, 0x72, 0x47, 0x6e, 0xae, 0x1b, 0x84, 0x55, 0xd7, 0x6e, 0x71, 0xb3, 0x06, 0xb9, 0x81, 0x29, 0xb7, 0x2f, 0xe1, 0xcb, 0x5e, 0xb4, 0x05, 0xa7, 0xc2, 0xf4, 0x32, 0x7f, 0x38, 0x62, 0xd4, };
16467 static const u8 ed25519_716_test_vectors_expected_sig[] = {
16468 	0x69, 0x6b, 0xd5, 0x52, 0xdd, 0x01, 0xdb, 0x80, 0xb3, 0xd6, 0x7d, 0x61, 0xee, 0xb7, 0xec, 0xc5, 0x68, 0x78, 0x40, 0x4a, 0xb1, 0x19, 0x44, 0x2a, 0x1c, 0x74, 0x22, 0x99, 0x2c, 0xfa, 0x35, 0xae, 0xa9, 0x20, 0x82, 0x5d, 0x2d, 0xaf, 0xd8, 0x92, 0xad, 0x7e, 0xb6, 0x82, 0x5a, 0xd9, 0x99, 0xae, 0xe5, 0xc8, 0x3b, 0x7b, 0x50, 0x79, 0x06, 0x53, 0x4f, 0x91, 0xac, 0xe7, 0x59, 0xc5, 0x51, 0x0c, };
16469 static const ec_test_case ed25519_716_test_case = {
16470 	.name = "EDDSA25519-SHA512/wei25519 716",
16471 	.ec_str_p = &wei25519_str_params,
16472 	.priv_key = ed25519_716_test_vectors_priv_key,
16473 	.priv_key_len = sizeof(ed25519_716_test_vectors_priv_key),
16474 	.nn_random = NULL,
16475 	.hash_type = SHA512,
16476 	.msg = (const char *)ed25519_716_test_vectors_message,
16477 	.msglen = sizeof(ed25519_716_test_vectors_message),
16478 	.sig_type = EDDSA25519,
16479 	.exp_sig = ed25519_716_test_vectors_expected_sig,
16480 	.exp_siglen = sizeof(ed25519_716_test_vectors_expected_sig),
16481 	.adata = NULL,
16482 	.adata_len = 0
16483 };
16484 
16485 /************************************************/
16486 static const u8 ed25519_717_test_vectors_priv_key[] = {
16487 	0x29, 0x32, 0x14, 0x69, 0xee, 0x9f, 0x2b, 0xb1, 0x65, 0xa0, 0x69, 0x64, 0x03, 0x32, 0xb4, 0x89, 0xbf, 0x5c, 0x3f, 0xab, 0x68, 0x2e, 0x93, 0xda, 0xe9, 0xd8, 0x63, 0x17, 0xbf, 0x50, 0xc5, 0x2c, };
16488 static const u8 ed25519_717_test_vectors_message[] = {
16489 	0x9c, 0x71, 0x2c, 0x83, 0xd5, 0x4f, 0x2e, 0x99, 0x3c, 0xa6, 0x8a, 0x96, 0x32, 0x84, 0x60, 0x04, 0x49, 0x9c, 0x51, 0x95, 0x44, 0x8d, 0xdc, 0x49, 0x1c, 0x3a, 0x0d, 0x2e, 0x3a, 0x66, 0x6d, 0x6b, 0x33, 0x09, 0x8e, 0x48, 0x64, 0xfd, 0xf8, 0x6e, 0x61, 0x9d, 0x50, 0xf1, 0x0b, 0x7c, 0xc6, 0xc3, 0x9b, 0x3f, 0xf2, 0x80, 0x1a, 0x94, 0x91, 0xf6, 0xfa, 0x97, 0xc5, 0xf1, 0xc4, 0xaf, 0xa7, 0xae, 0xff, 0x31, 0xd7, 0x38, 0xf9, 0xa7, 0x68, 0xa7, 0x9c, 0x73, 0xb2, 0x55, 0x77, 0x31, 0x0f, 0xb0, 0xad, 0x4f, 0xaf, 0x85, 0x43, 0xa0, 0x98, 0xf8, 0x59, 0x57, 0x1b, 0x61, 0x48, 0xe8, 0xb5, 0x29, 0x26, 0x44, 0x57, 0x57, 0xd5, 0x54, 0x9f, 0xd2, 0x5a, 0x26, 0x51, 0x85, 0x31, 0x56, 0x63, 0x79, 0xd1, 0xc2, 0x74, 0xe6, 0xc6, 0xa9, 0xd6, 0x41, 0x32, 0xe4, 0xac, 0x25, 0xac, 0x9a, 0xf9, 0x38, 0x1b, 0xcb, 0x88, 0x53, 0x32, 0x11, 0x3f, 0x43, 0x01, 0x4a, 0x13, 0x9a, 0x81, 0xf8, 0xd4, 0x3c, 0x8a, 0x6a, 0xb5, 0x4c, 0x11, 0xa5, 0xc9, 0x2e, 0x06, 0x19, 0x1c, 0x1e, 0x51, 0xb7, 0x57, 0xac, 0x9f, 0x11, 0xe3, 0xdc, 0x15, 0xdb, 0x44, 0x86, 0xd1, 0x67, 0xff, 0x9f, 0x2d, 0x65, 0xe2, 0x3e, 0x6c, 0x96, 0x22, 0x3d, 0x9a, 0xff, 0x8d, 0x10, 0xd1, 0x50, 0x2c, 0xf3, 0xdb, 0xce, 0x5e, 0x35, 0x7e, 0x6b, 0x12, 0xdb, 0xe9, 0xb7, 0xe9, 0x97, 0xc3, 0xd0, 0xa5, 0x07, 0xd3, 0xba, 0xe3, 0xcf, 0xef, 0x1f, 0xfc, 0x8d, 0x05, 0x6e, 0xf7, 0xdc, 0x72, 0xdd, 0xc1, 0xc8, 0x1e, 0x31, 0x0a, 0xd2, 0x05, 0xbe, 0x16, 0xe7, 0x7f, 0x27, 0x38, 0x35, 0x4b, 0x10, 0xb4, 0x84, 0xd3, 0x07, 0x6c, 0x27, 0xe6, 0xb4, 0xf1, 0x66, 0x38, 0x85, 0x81, 0xf3, 0x50, 0xbe, 0xfe, 0x22, 0xfb, 0xb0, 0x82, 0xb5, 0x41, 0x21, 0xee, 0x59, 0xec, 0xc7, 0xae, 0x5d, 0xec, 0xe8, 0x98, 0x82, 0xac, 0xf2, 0x6c, 0xb7, 0x47, 0xff, 0xaa, 0x3e, 0x2d, 0x05, 0xa6, 0x96, 0xf6, 0x0f, 0xd9, 0xe8, 0x29, 0xc7, 0x09, 0xd8, 0xf0, 0x2d, 0xaf, 0x53, 0x7b, 0x23, 0x69, 0xb8, 0x91, 0xfe, 0x6c, 0xcb, 0xf8, 0xdf, 0xcd, 0xd7, 0xf4, 0xa3, 0x64, 0xb1, 0x99, 0x85, 0xbe, 0x7e, 0xde, 0xc6, 0x7d, 0xdc, 0x1d, 0xb7, 0x13, 0xc0, 0xa9, 0x0f, 0xaf, 0xa4, 0x88, 0x37, 0x77, 0x25, 0x62, 0xde, 0xac, 0xc2, 0xd2, 0xa0, 0xe7, 0x89, 0xe1, 0x8a, 0x8b, 0x5b, 0x3b, 0xd9, 0xe0, 0x83, 0xea, 0x92, 0xff, 0xfc, 0x31, 0x83, 0xd5, 0xd4, 0x14, 0x15, 0x32, 0x59, 0xb3, 0x3a, 0x43, 0x29, 0xcf, 0xc8, 0x08, 0x24, 0xeb, 0xcb, 0xe0, 0x44, 0xa7, 0xe3, 0x3a, 0xb8, 0xa2, 0x4f, 0xde, 0x54, 0xbd, 0x95, 0x20, 0xae, 0xa2, 0x84, 0xb0, 0xc4, 0xc4, 0xfa, 0x94, 0x27, 0xd2, 0x51, 0xc0, 0xdd, 0xd0, 0x13, 0xec, 0xdd, 0x82, 0x90, 0xef, 0x55, 0x65, 0xf6, 0x08, 0x50, 0x8e, 0x36, 0x35, 0x89, 0xe5, 0x29, 0xd8, 0x4f, 0xf0, 0xf2, 0x6f, 0x9e, 0xcb, 0x03, 0x05, 0x2d, 0x58, 0x97, 0xfa, 0xbc, 0x91, 0x7e, 0x56, 0xe6, 0x01, 0xb6, 0x4a, 0xbf, 0xe5, 0xa1, 0x7c, 0x39, 0x50, 0x28, 0x9d, 0x0c, 0xdc, 0xaf, 0x1f, 0x60, 0x05, 0xa9, 0xf8, 0x10, 0x6f, 0x43, 0xe1, 0x7a, 0xdc, 0xaa, 0x2d, 0x1e, 0x26, 0x91, 0x66, 0x76, 0x2f, 0x80, 0x54, 0xde, 0x05, 0x13, 0x5d, 0x5d, 0x13, 0x93, 0xd7, 0x00, 0x0a, 0x15, 0xb8, 0x7b, 0xd6, 0x88, 0x46, 0xa8, 0x9d, 0x5b, 0xc2, 0x28, 0x63, 0x32, 0x51, 0x51, 0xaa, 0xc8, 0x43, 0xf7, 0x22, 0x78, 0xae, 0x6f, 0x4a, 0xf7, 0x2a, 0x4e, 0x44, 0x9a, 0xdb, 0x7e, 0xae, 0x6d, 0x43, 0x6a, 0x1e, 0xc7, 0xe5, 0x8e, 0x59, 0xb7, 0xb8, 0xbb, 0x9e, 0xf0, 0xdd, 0xaa, 0xa0, 0x01, 0x82, 0x6f, 0x8d, 0xcb, 0x44, 0x64, 0x79, 0xde, 0xaf, 0xd8, 0xb8, 0xd5, 0x42, 0x04, 0x1c, 0x19, 0xa0, 0x5b, 0x1e, 0x0e, 0xe4, 0x7b, 0x46, 0x40, 0x91, 0x0c, 0x31, 0x93, 0x0c, 0xa4, 0xe2, 0x0b, 0x10, 0x57, 0x58, 0xec, 0x75, 0xf1, 0x95, 0x03, 0x56, 0x94, 0x7f, 0x62, 0x61, 0xd0, 0x03, 0x7f, 0xe3, 0x07, 0x73, 0xa3, 0xec, 0xe6, 0xa9, 0x6c, 0x8d, 0x54, 0x33, 0x33, 0x3d, 0x82, 0x2c, 0x27, 0x77, 0xef, 0x7f, 0xf8, 0xbe, 0x60, 0x33, 0x34, 0x5b, 0x50, 0x55, 0xd5, 0x8f, 0x5e, 0xb3, 0x72, 0x9a, 0xf5, 0xae, 0x88, 0x24, 0xf3, 0x31, 0xee, 0x07, 0x31, 0xc8, 0x9b, 0x20, 0xac, 0x11, 0x8f, 0x55, 0x04, 0x27, 0xcd, 0x95, 0x8a, 0x55, 0xf6, 0xb1, 0xa2, 0x88, 0x8a, 0x08, 0x7b, 0xb7, 0xdb, 0x55, 0xbf, 0xc7, 0x3b, 0x29, 0x42, 0x9b, 0x44, 0x48, 0xdb, 0xe9, 0x11, 0x9c, 0x45, 0xa8, 0x73, 0x39, 0xb4, 0x49, 0x7a, 0x69, 0xa4, 0xcf, 0x83, 0x3e, 0x8f, 0x37, 0x70, 0xcc, 0xe5, 0xe0, 0x1f, 0xaf, 0x5e, 0x73, 0xbb, 0xaf, 0x62, 0x76, 0x83, 0xc0, 0xa2, 0x8c, 0x73, 0x05, 0x2f, 0xbe, 0xce, 0x20, 0x30, 0x43, 0x38, 0x9d, 0xfb, 0xfd, 0x45, 0x49, 0x5e, 0x51, 0xda, 0xb8, 0x6a, 0x25, 0x2e, 0x5b, 0xc1, 0xb4, 0xb7, 0xfe, 0x28, 0x07, 0xe3, 0xd0, 0xe2, 0x36, 0x3b, 0xea, 0xb5, 0x1c, 0x67, 0xfb, 0x31, };
16490 static const u8 ed25519_717_test_vectors_expected_sig[] = {
16491 	0x4e, 0x1a, 0xff, 0x84, 0x63, 0xbc, 0xa1, 0xb7, 0xde, 0xb1, 0xd3, 0x77, 0x3d, 0xf2, 0xe7, 0xa0, 0x68, 0x64, 0x11, 0x1b, 0x6d, 0xc4, 0x2a, 0x62, 0xae, 0x98, 0xde, 0xb2, 0x31, 0x39, 0x43, 0xb3, 0x15, 0x3e, 0xe4, 0x66, 0x96, 0xb1, 0x5c, 0x24, 0xef, 0xc2, 0xa8, 0x08, 0xaa, 0xba, 0x81, 0xc7, 0x8e, 0x3d, 0xfa, 0x4d, 0xfb, 0x50, 0xca, 0x9f, 0xe8, 0x44, 0x45, 0xea, 0x68, 0xbc, 0x8e, 0x0a, };
16492 static const ec_test_case ed25519_717_test_case = {
16493 	.name = "EDDSA25519-SHA512/wei25519 717",
16494 	.ec_str_p = &wei25519_str_params,
16495 	.priv_key = ed25519_717_test_vectors_priv_key,
16496 	.priv_key_len = sizeof(ed25519_717_test_vectors_priv_key),
16497 	.nn_random = NULL,
16498 	.hash_type = SHA512,
16499 	.msg = (const char *)ed25519_717_test_vectors_message,
16500 	.msglen = sizeof(ed25519_717_test_vectors_message),
16501 	.sig_type = EDDSA25519,
16502 	.exp_sig = ed25519_717_test_vectors_expected_sig,
16503 	.exp_siglen = sizeof(ed25519_717_test_vectors_expected_sig),
16504 	.adata = NULL,
16505 	.adata_len = 0
16506 };
16507 
16508 /************************************************/
16509 static const u8 ed25519_718_test_vectors_priv_key[] = {
16510 	0x04, 0x65, 0x77, 0x50, 0x49, 0x7e, 0x68, 0x15, 0x2c, 0x43, 0xce, 0x34, 0xa5, 0x8d, 0x21, 0x06, 0xe6, 0x4c, 0x55, 0x7c, 0xd7, 0xa8, 0x4e, 0xf0, 0x5d, 0x9e, 0xb8, 0x2e, 0x6b, 0xcb, 0x05, 0xf5, };
16511 static const u8 ed25519_718_test_vectors_message[] = {
16512 	0x29, 0x48, 0x22, 0x7a, 0x89, 0x0f, 0x6f, 0x84, 0x5b, 0x77, 0x5e, 0x62, 0xc5, 0x3a, 0xf3, 0x80, 0x50, 0x64, 0xa1, 0x57, 0x64, 0x46, 0xf0, 0x85, 0xd9, 0x0f, 0x8b, 0x9a, 0x5e, 0xd6, 0x8d, 0xf1, 0xea, 0x39, 0x3c, 0xe4, 0x79, 0xc4, 0x41, 0x41, 0x49, 0xa9, 0xec, 0x5a, 0x17, 0x10, 0x36, 0x42, 0x4d, 0xff, 0x03, 0x44, 0xb4, 0x95, 0x8f, 0x61, 0x32, 0x29, 0x8d, 0x0e, 0x24, 0xc9, 0x26, 0xd2, 0x8a, 0xd9, 0xd7, 0x9f, 0x98, 0xc6, 0xe6, 0xbc, 0xf1, 0xc5, 0x76, 0x76, 0x06, 0xec, 0xd2, 0x91, 0xc6, 0xad, 0x47, 0xb4, 0xf9, 0xfb, 0x2b, 0x02, 0x01, 0x15, 0x5a, 0xda, 0x62, 0x7b, 0x7a, 0x1f, 0xd5, 0xb0, 0x74, 0x19, 0x87, 0x40, 0x83, 0x05, 0x9e, 0xb5, 0x2b, 0x2f, 0x6e, 0xc2, 0x28, 0x18, 0xb7, 0x82, 0x46, 0x22, 0x8f, 0x3f, 0xe6, 0x35, 0x5d, 0xfd, 0xa7, 0x0e, 0xbb, 0x9b, 0xbe, 0x73, 0x22, 0x93, 0x78, 0x73, 0x63, 0x99, 0x55, 0x7c, 0xe2, 0x4b, 0x30, 0xbf, 0x64, 0x5a, 0x14, 0xe2, 0x25, 0x6f, 0x70, 0x01, 0x9b, 0x33, 0x36, 0xb2, 0x03, 0xfb, 0x77, 0xc6, 0xec, 0x94, 0xa7, 0xa2, 0x63, 0x48, 0x88, 0xfe, 0xea, 0xd4, 0xd7, 0x2c, 0x23, 0x91, 0xe9, 0x9e, 0x8c, 0x8d, 0x53, 0x3f, 0xd8, 0xa4, 0x2b, 0x08, 0xc1, 0x1f, 0x88, 0x7a, 0xb2, 0xde, 0xb6, 0xeb, 0xbf, 0xe3, 0xd2, 0x51, 0xde, 0x63, 0x53, 0x6c, 0x36, 0xcd, 0x53, 0x42, 0x23, 0x98, 0xe5, 0x44, 0xcf, 0xf8, 0x7b, 0x07, 0xa6, 0x33, 0x49, 0xfc, 0x50, 0x85, 0xdd, 0xe9, 0x3a, 0x1b, 0xfd, 0x71, 0x71, 0x13, 0x3a, 0x20, 0x43, 0x98, 0x1f, 0x60, 0x75, 0x22, 0xc8, 0x13, 0x3c, 0x63, 0x42, 0x8d, 0x1b, 0x92, 0x62, 0x6c, 0x79, 0xb7, 0x35, 0x8e, 0x70, 0x21, 0xcf, 0x1f, 0x41, 0x2a, 0x78, 0xaf, 0xa7, 0xcb, 0x3f, 0x59, 0xff, 0xef, 0x92, 0x79, 0x88, 0x5a, 0x5b, 0xdb, 0x24, 0x66, 0xac, 0xd3, 0x4c, 0xd5, 0x15, 0x80, 0x83, 0x0b, 0x83, 0x51, 0xeb, 0xd4, 0x40, 0xa9, 0x66, 0x23, 0x90, 0x7a, 0xd1, 0xf4, 0xb5, 0x62, 0x03, 0xf5, 0xe1, 0x59, 0xa4, 0x29, 0xe3, 0x54, 0x6e, 0xad, 0x0c, 0x01, 0x1d, 0xbe, 0xd0, 0x90, 0x28, 0x71, 0x7e, 0x3c, 0x3d, 0xfe, 0xd3, 0x91, 0x97, 0x76, 0x4d, 0x4d, 0x24, 0x5e, 0xf2, 0x28, 0xb9, 0x80, 0x44, 0x71, 0x8e, 0xf4, 0xd8, 0x82, 0x2f, 0x21, 0xb2, 0xc5, 0x68, 0x50, 0x38, 0x47, 0x3b, 0xf9, 0x3d, 0xc0, 0x93, 0x74, 0x51, 0xeb, 0x02, 0xd3, 0x1a, 0x46, 0xc8, 0xdc, 0x7e, 0x94, 0xc3, 0xe8, 0x67, 0x8c, 0x83, 0xb9, 0x8a, 0x43, 0x81, 0x8f, 0x12, 0x5b, 0x52, 0x8b, 0x47, 0x6a, 0xad, 0x31, 0xd1, 0x58, 0x4f, 0xfd, 0x48, 0xf1, 0x49, 0xe5, 0x73, 0x6e, 0x58, 0xf9, 0x42, 0x05, 0xd3, 0x88, 0x9e, 0x56, 0x7e, 0x4d, 0xd1, 0xea, 0xc2, 0xfa, 0xc1, 0xf8, 0xf4, 0xdc, 0x54, 0x0e, 0x53, 0x22, 0x46, 0x0f, 0xb9, 0x40, 0xe1, 0x2e, 0x93, 0xc4, 0xc9, 0x8d, 0xed, 0x19, 0x41, 0xc1, 0x90, 0x4f, 0x96, 0x7f, 0xb4, 0x64, 0x36, 0x84, 0xc1, 0x9a, 0x4d, 0x5c, 0x44, 0x1d, 0x60, 0xb0, 0xe9, 0xf4, 0x08, 0x55, 0xe5, 0x23, 0xfe, 0x7f, 0x99, 0x10, 0x76, 0x57, 0xa6, 0x80, 0x76, 0x27, 0x5b, 0xf8, 0x4b, 0x7c, 0x69, 0xa3, 0xf2, 0xb3, 0x85, 0x5b, 0xc8, 0x02, 0x6b, 0xa9, 0xb0, 0x0b, 0xc6, 0xfe, 0x34, 0xb9, 0x9d, 0xa0, 0x63, 0x17, 0x00, 0xa6, 0x7f, 0x52, 0xb3, 0x4e, 0x17, 0x96, 0x33, 0x98, 0x87, 0xa4, 0x83, 0x05, 0x12, 0x1d, 0x53, 0xab, 0x44, 0x40, 0xfc, 0x4b, 0x5c, 0x9b, 0xf7, 0x23, 0x94, 0xd5, 0xed, 0x37, 0x2f, 0xf1, 0x8c, 0xa3, 0xf0, 0x07, 0xbd, 0x02, 0xdf, 0x65, 0x1d, 0xc3, 0xac, 0x43, 0x82, 0x75, 0xf1, 0xa3, 0xe5, 0x24, 0x22, 0xb8, 0x6c, 0x45, 0x86, 0x76, 0x6a, 0x21, 0xcd, 0x89, 0xf8, 0x05, 0x80, 0x5d, 0xbb, 0x44, 0xfd, 0x89, 0xfe, 0x24, 0xfb, 0x2c, 0x0b, 0x40, 0xd1, 0xb7, 0x54, 0xc3, 0x35, 0xdb, 0xaf, 0xfc, 0x3b, 0x3b, 0xb8, 0xbb, 0x46, 0xc7, 0x4c, 0x36, 0x37, 0x45, 0x04, 0x04, 0x2d, 0x86, 0x78, 0x92, 0x27, 0x59, 0x98, 0x62, 0x31, 0x2e, 0x99, 0xca, 0x89, 0xeb, 0x50, 0x4c, 0xc3, 0xd7, 0x5d, 0x19, 0x49, 0x5a, 0xa8, 0x6b, 0x20, 0xb2, 0x73, 0x6b, 0x12, 0x1b, 0xb2, 0x07, 0x5c, 0x88, 0xed, 0x4a, 0x3f, 0xbd, 0xaa, 0x6b, 0x2c, 0x3f, 0x76, 0xd1, 0xff, 0x55, 0x25, 0xd3, 0xa2, 0x86, 0x3e, 0x4d, 0x83, 0xc7, 0x2b, 0xfe, 0x01, 0xe1, 0x02, 0x78, 0x80, 0x94, 0x74, 0xe1, 0x82, 0x2d, 0xe2, 0xd9, 0x62, 0x83, 0x48, 0x93, 0x20, 0x02, 0x96, 0x11, 0xaa, 0x9d, 0xff, 0xc4, 0x82, 0x9d, 0x66, 0x86, 0x9e, 0x63, 0x49, 0x4f, 0x9a, 0xad, 0xe7, 0x0b, 0x77, 0xa7, 0xb8, 0x0f, 0xbc, 0x93, 0xe3, 0xde, 0x4d, 0x93, 0x59, 0x13, 0x75, 0x2d, 0x04, 0x5e, 0x13, 0xb3, 0x12, 0xc5, 0xd0, 0x82, 0xf6, 0x24, 0x2d, 0x49, 0x85, 0xb0, 0x53, 0xb3, 0x78, 0x3e, 0xb0, 0x2c, 0x66, 0x14, 0x96, 0x3d, 0xc0, 0xd5, 0x5d, 0x4c, 0xbe, 0x88, 0x7b, 0xae, 0x29, 0xcc, 0x18, 0x97, 0x9e, 0x5e, 0x2e, 0xa9, 0x45, 0xbc, 0xd4, 0x0d, 0x89, };
16513 static const u8 ed25519_718_test_vectors_expected_sig[] = {
16514 	0x7e, 0x2e, 0xae, 0x5a, 0x29, 0x3f, 0x41, 0x83, 0x91, 0xf6, 0xd8, 0x5a, 0x79, 0x94, 0xb0, 0x7c, 0x45, 0x22, 0x80, 0x01, 0x7e, 0xe6, 0x53, 0xbf, 0x61, 0x7a, 0x8d, 0x5b, 0xe2, 0x4c, 0xbb, 0x5d, 0x0e, 0xfd, 0xfb, 0x7f, 0x7f, 0x00, 0x13, 0x12, 0x26, 0x0f, 0x34, 0x4e, 0x6f, 0xb9, 0x15, 0xad, 0x8d, 0x7d, 0xe9, 0xc0, 0x51, 0x98, 0x27, 0xc0, 0x57, 0x26, 0xf9, 0xce, 0x25, 0x45, 0xdd, 0x0b, };
16515 static const ec_test_case ed25519_718_test_case = {
16516 	.name = "EDDSA25519-SHA512/wei25519 718",
16517 	.ec_str_p = &wei25519_str_params,
16518 	.priv_key = ed25519_718_test_vectors_priv_key,
16519 	.priv_key_len = sizeof(ed25519_718_test_vectors_priv_key),
16520 	.nn_random = NULL,
16521 	.hash_type = SHA512,
16522 	.msg = (const char *)ed25519_718_test_vectors_message,
16523 	.msglen = sizeof(ed25519_718_test_vectors_message),
16524 	.sig_type = EDDSA25519,
16525 	.exp_sig = ed25519_718_test_vectors_expected_sig,
16526 	.exp_siglen = sizeof(ed25519_718_test_vectors_expected_sig),
16527 	.adata = NULL,
16528 	.adata_len = 0
16529 };
16530 
16531 /************************************************/
16532 static const u8 ed25519_719_test_vectors_priv_key[] = {
16533 	0x8b, 0xd9, 0x90, 0x70, 0xc5, 0x0a, 0x9f, 0xa4, 0x18, 0xef, 0x7f, 0x75, 0xc0, 0x01, 0x29, 0x91, 0x6a, 0x41, 0xc8, 0x60, 0x70, 0x96, 0x1c, 0xcb, 0x2b, 0x20, 0x2b, 0xe1, 0x8c, 0x2d, 0x10, 0xd7, };
16534 static const u8 ed25519_719_test_vectors_message[] = {
16535 	0x48, 0x5f, 0x8d, 0x68, 0x0f, 0x79, 0xee, 0x2d, 0x82, 0x8b, 0xe7, 0xd0, 0x18, 0xa6, 0x5e, 0x0b, 0x64, 0xb0, 0xf0, 0x18, 0x48, 0x19, 0x86, 0x3e, 0x71, 0x10, 0xee, 0xa8, 0xf2, 0x99, 0xa7, 0x2c, 0x4d, 0xc8, 0x7f, 0x8e, 0xe8, 0xa8, 0xae, 0xaa, 0x81, 0xaf, 0x91, 0xdc, 0x71, 0xad, 0xea, 0x79, 0xfc, 0x97, 0x97, 0x42, 0x1c, 0xcc, 0x64, 0x6e, 0x6c, 0xd5, 0xdd, 0x48, 0xb4, 0xde, 0xc1, 0xde, 0x96, 0x86, 0x93, 0xfb, 0xce, 0x0d, 0x00, 0x21, 0xa3, 0xd9, 0x8d, 0x38, 0xa8, 0xbb, 0xc5, 0x81, 0x95, 0xe6, 0xdf, 0xc3, 0xb5, 0xe1, 0x46, 0x1b, 0x2a, 0x59, 0x41, 0x03, 0xe8, 0x0a, 0x29, 0x44, 0x1d, 0x5a, 0xaa, 0xf8, 0x89, 0xe3, 0x1c, 0xc8, 0x65, 0x14, 0x1f, 0x0c, 0x6b, 0x2c, 0x8c, 0x81, 0xf7, 0x21, 0x67, 0x9e, 0xa2, 0x39, 0x4e, 0xc6, 0xe4, 0x08, 0x1e, 0xc2, 0x03, 0xc2, 0xea, 0x39, 0x7d, 0x94, 0x84, 0x75, 0x7a, 0x7a, 0x0e, 0xcd, 0x53, 0xe6, 0x52, 0xdb, 0x9d, 0xf1, 0x7b, 0xea, 0x0e, 0x32, 0xfe, 0x8b, 0x2c, 0xbc, 0xe0, 0xd1, 0xd9, 0x7b, 0x96, 0x1e, 0xd7, 0x4e, 0x8e, 0x62, 0x2b, 0xcd, 0xd3, 0x55, 0x8b, 0x7c, 0x48, 0x69, 0x5a, 0xdf, 0x18, 0xaa, 0xe6, 0x11, 0x0e, 0xa9, 0xa3, 0x39, 0xb9, 0xda, 0x40, 0x7a, 0x9e, 0xda, 0xf2, 0xab, 0x08, 0x1a, 0x68, 0x1e, 0x18, 0x32, 0xcc, 0x21, 0x5b, 0x1f, 0x08, 0xa6, 0x7d, 0x55, 0x9a, 0x47, 0x44, 0xaf, 0x7c, 0xd5, 0x03, 0x18, 0xc2, 0x06, 0xee, 0x91, 0x15, 0x75, 0x82, 0xf8, 0x2e, 0xb6, 0xc0, 0xfc, 0x29, 0x02, 0x7b, 0x44, 0x61, 0xc3, 0x07, 0x33, 0xb8, 0x16, 0x9d, 0x14, 0x81, 0x32, 0x2c, 0x48, 0x60, 0x50, 0x9b, 0xa0, 0x96, 0xba, 0xcb, 0x71, 0xa5, 0x79, 0x24, 0x67, 0x51, 0xd5, 0x67, 0x54, 0x0e, 0x41, 0x43, 0x1e, 0x14, 0xf1, 0xb4, 0x6e, 0xf1, 0x6e, 0xba, 0x27, 0x61, 0x04, 0xbc, 0x01, 0x65, 0x0d, 0x5c, 0x49, 0x26, 0xe4, 0x7c, 0x9c, 0x60, 0x40, 0x78, 0x4b, 0x04, 0x3c, 0xd0, 0xaa, 0x48, 0x54, 0xef, 0xe8, 0x79, 0x7f, 0xd0, 0x46, 0x2d, 0x45, 0x39, 0xf3, 0x80, 0x35, 0xae, 0xf0, 0x8b, 0x45, 0x77, 0xc1, 0xa9, 0x11, 0x8d, 0x00, 0x4b, 0x6d, 0x01, 0x86, 0x2f, 0x52, 0x76, 0x77, 0x6d, 0xfe, 0xf1, 0x37, 0x18, 0x64, 0xf1, 0x55, 0xac, 0x0f, 0x07, 0x83, 0x89, 0xc2, 0x05, 0xcf, 0x05, 0x38, 0xd8, 0x5f, 0xa3, 0x48, 0x24, 0x4d, 0x7a, 0x42, 0x29, 0x11, 0x31, 0x0f, 0xf6, 0xc1, 0x01, 0x32, 0xb1, 0x59, 0x8b, 0xb4, 0x45, 0xc7, 0xe2, 0x07, 0x7b, 0x76, 0x3c, 0x47, 0x3d, 0x1e, 0x7a, 0x61, 0xa3, 0x8b, 0x64, 0x92, 0x9a, 0x64, 0x8b, 0x60, 0xb2, 0xe5, 0x43, 0x54, 0x37, 0x39, 0x22, 0x4b, 0x40, 0xfb, 0xf6, 0xd8, 0x7f, 0x10, 0x79, 0xc3, 0x0b, 0xc8, 0x73, 0xac, 0x38, 0x99, 0x1d, 0x51, 0xb8, 0x9e, 0x9d, 0x26, 0x1c, 0x4b, 0xcc, 0xb3, 0x75, 0x35, 0x5c, 0x07, 0x2c, 0x1e, 0xa2, 0x0e, 0x4f, 0xf9, 0x1d, 0x55, 0xd9, 0xf7, 0x54, 0x4e, 0x90, 0xd1, 0xc6, 0x64, 0x6c, 0x59, 0xaf, 0x72, 0x42, 0x4d, 0x8a, 0xaa, 0x8e, 0x0a, 0xed, 0x07, 0xb3, 0x88, 0x9d, 0x4e, 0x45, 0x0c, 0x12, 0x09, 0x68, 0x4c, 0xe1, 0x38, 0xd0, 0xc9, 0xda, 0x07, 0x95, 0x25, 0xf5, 0xaa, 0x02, 0x05, 0x0a, 0xf5, 0x70, 0xe4, 0x31, 0x5c, 0x2f, 0xa8, 0xb0, 0x99, 0xb7, 0x76, 0x5b, 0xfb, 0xb8, 0x94, 0xfa, 0xd3, 0x59, 0xb8, 0xe2, 0x48, 0x04, 0xec, 0xe0, 0x52, 0xac, 0x22, 0xa1, 0x91, 0x70, 0x53, 0x35, 0xe9, 0x88, 0x40, 0xa6, 0x24, 0xe4, 0xcb, 0xf3, 0xa1, 0xa1, 0xa3, 0x27, 0x81, 0x27, 0x85, 0xb2, 0xc0, 0xf5, 0xd6, 0x38, 0x14, 0x57, 0xb7, 0x2f, 0xdb, 0x63, 0x3e, 0x81, 0x93, 0x8b, 0xbb, 0x54, 0xb8, 0xc3, 0x7c, 0xcc, 0xb5, 0xd5, 0x9c, 0x58, 0x27, 0xc7, 0x68, 0x3a, 0x52, 0x47, 0x54, 0x49, 0x77, 0xe9, 0x84, 0x44, 0x21, 0x78, 0xd0, 0x85, 0x29, 0x06, 0xca, 0x6f, 0x94, 0x5c, 0x42, 0x29, 0xeb, 0x08, 0xad, 0x27, 0xe6, 0xc2, 0x75, 0xd7, 0xb4, 0xec, 0x8d, 0xc2, 0x5f, 0xb2, 0x81, 0x93, 0x37, 0xe5, 0x3e, 0xad, 0x6c, 0x7a, 0xa7, 0x87, 0xf9, 0x1a, 0x7d, 0xc6, 0xdd, 0xaf, 0xd5, 0x36, 0xee, 0xfc, 0xbd, 0xec, 0x2c, 0x50, 0x16, 0x7b, 0xe3, 0x43, 0x06, 0xa8, 0x2e, 0x16, 0xd5, 0xd5, 0x2b, 0x3b, 0x1b, 0xe0, 0x08, 0xa7, 0xa6, 0x11, 0x27, 0x4c, 0xe2, 0xcf, 0x8d, 0x62, 0xe3, 0xb9, 0x00, 0xc0, 0x99, 0x43, 0xbe, 0x70, 0xcc, 0xc7, 0x7b, 0x07, 0x06, 0x37, 0xc2, 0x50, 0x61, 0xd6, 0x1b, 0xe9, 0x10, 0xee, 0xf5, 0x0d, 0xf1, 0x87, 0x44, 0xc3, 0x3e, 0x76, 0xf6, 0x70, 0x1e, 0x0a, 0x8f, 0xf6, 0x29, 0x7f, 0xa6, 0x7e, 0x4b, 0x41, 0x08, 0xc1, 0x37, 0x56, 0x72, 0x7a, 0x9d, 0x74, 0xbc, 0x9e, 0x17, 0x98, 0x3e, 0xec, 0x08, 0xf8, 0x66, 0xb7, 0xc7, 0xff, 0xb3, 0x7f, 0x3c, 0xcb, 0x01, 0x41, 0xa8, 0x0f, 0xef, 0xf6, 0x32, 0x2b, 0x2a, 0xc6, 0x2b, 0x84, 0xce, 0x27, 0x97, 0xfd, 0x98, 0xd6, 0xff, 0x26, 0x9a, 0x41, 0xa0, 0xc3, 0x84, 0x82, 0xdb, 0x67, 0x98, 0x62, 0xa3, 0x8c, 0xd2, };
16536 static const u8 ed25519_719_test_vectors_expected_sig[] = {
16537 	0xb1, 0x4a, 0x7b, 0x26, 0x20, 0x12, 0xc5, 0x90, 0x9e, 0x21, 0xd5, 0x87, 0xfb, 0x4f, 0x29, 0xa9, 0x09, 0x3c, 0x8e, 0x1c, 0x29, 0x99, 0x81, 0x6a, 0x82, 0x11, 0x8f, 0xef, 0xbf, 0x10, 0xe6, 0x8e, 0xa8, 0x98, 0xbf, 0x0d, 0xa1, 0x8e, 0xbf, 0xd0, 0x34, 0x1e, 0xa8, 0xf8, 0x2a, 0x18, 0x44, 0xc8, 0xe0, 0xdd, 0x53, 0x06, 0xe5, 0x09, 0xb9, 0xd0, 0xc3, 0x5b, 0x47, 0x3a, 0x7d, 0x20, 0x95, 0x07, };
16538 static const ec_test_case ed25519_719_test_case = {
16539 	.name = "EDDSA25519-SHA512/wei25519 719",
16540 	.ec_str_p = &wei25519_str_params,
16541 	.priv_key = ed25519_719_test_vectors_priv_key,
16542 	.priv_key_len = sizeof(ed25519_719_test_vectors_priv_key),
16543 	.nn_random = NULL,
16544 	.hash_type = SHA512,
16545 	.msg = (const char *)ed25519_719_test_vectors_message,
16546 	.msglen = sizeof(ed25519_719_test_vectors_message),
16547 	.sig_type = EDDSA25519,
16548 	.exp_sig = ed25519_719_test_vectors_expected_sig,
16549 	.exp_siglen = sizeof(ed25519_719_test_vectors_expected_sig),
16550 	.adata = NULL,
16551 	.adata_len = 0
16552 };
16553 
16554 /************************************************/
16555 static const u8 ed25519_720_test_vectors_priv_key[] = {
16556 	0x1a, 0xf4, 0xcf, 0x6d, 0x24, 0xab, 0x37, 0x82, 0x86, 0x7d, 0x96, 0xa1, 0xc2, 0x75, 0xce, 0xeb, 0x02, 0x2c, 0x69, 0x1a, 0x30, 0x8e, 0x62, 0x45, 0x66, 0x5d, 0x61, 0x6b, 0xf6, 0x7c, 0x2c, 0x32, };
16557 static const u8 ed25519_720_test_vectors_message[] = {
16558 	0xf4, 0x45, 0xfd, 0xcf, 0xe2, 0x8c, 0x17, 0xbd, 0x44, 0x27, 0xae, 0xa5, 0x67, 0x6c, 0x0e, 0x12, 0x80, 0x84, 0x15, 0x97, 0xe9, 0xd6, 0x6d, 0xe7, 0xd7, 0xa7, 0x17, 0x23, 0x11, 0x09, 0x39, 0xbe, 0xd0, 0x0f, 0x4e, 0xba, 0xf9, 0x60, 0x3d, 0x53, 0xc9, 0xcb, 0xf6, 0x27, 0x1b, 0xe5, 0x47, 0xaf, 0x29, 0xb2, 0xa0, 0x45, 0xec, 0x41, 0x28, 0x8a, 0x7b, 0xb7, 0x9d, 0x66, 0x2d, 0xc2, 0x10, 0xe2, 0x15, 0x95, 0x7f, 0xa8, 0x46, 0x88, 0xc9, 0x16, 0x54, 0x3e, 0x56, 0x17, 0xf5, 0x60, 0xe4, 0xd3, 0x8f, 0x73, 0xba, 0xef, 0xc3, 0x7e, 0x11, 0x91, 0x4e, 0x47, 0xc5, 0x15, 0x06, 0x78, 0x51, 0xe8, 0xed, 0x21, 0x39, 0x3e, 0x13, 0xdd, 0x19, 0xed, 0x9b, 0x73, 0xd9, 0x89, 0x45, 0xfc, 0x82, 0x6a, 0x25, 0x8e, 0x95, 0x7d, 0xc0, 0x83, 0xdd, 0x8e, 0x53, 0x5c, 0x30, 0xa5, 0x4b, 0x42, 0x66, 0xdd, 0x71, 0xd1, 0x13, 0xce, 0x85, 0x6b, 0x46, 0x28, 0x2a, 0x18, 0x03, 0x36, 0x27, 0xa9, 0x8e, 0x64, 0x72, 0xcc, 0xb4, 0x63, 0xed, 0x3d, 0x96, 0xfa, 0x7b, 0x35, 0x5d, 0x3b, 0x2c, 0x2a, 0x2b, 0x60, 0x10, 0xdd, 0x14, 0xf4, 0xea, 0x39, 0x65, 0xdd, 0x87, 0xbe, 0x1c, 0x42, 0x9b, 0xde, 0xa8, 0x30, 0x0b, 0x4b, 0x0b, 0x44, 0x45, 0x86, 0x35, 0xb4, 0x97, 0x9f, 0x5e, 0x3e, 0x8e, 0xb5, 0xc6, 0x18, 0xd4, 0xe1, 0x3e, 0x1d, 0x68, 0x8b, 0xf8, 0x8c, 0x7e, 0x4a, 0x3d, 0x93, 0x8e, 0x84, 0x33, 0x6d, 0x67, 0xbe, 0x68, 0xdf, 0x34, 0x35, 0xc5, 0xc9, 0x90, 0x86, 0x32, 0x1c, 0x02, 0xe1, 0x3b, 0x4a, 0x12, 0x52, 0x4b, 0x34, 0xe4, 0x6a, 0x0b, 0x4d, 0x27, 0xf3, 0x0d, 0x7e, 0xd4, 0xf5, 0xce, 0xcb, 0x36, 0xde, 0xad, 0xf0, 0x9e, 0x7e, 0xfc, 0xc7, 0x55, 0xca, 0x66, 0x75, 0x68, 0x29, 0x79, 0x14, 0xc6, 0xbc, 0x24, 0x06, 0x27, 0xd9, 0xd0, 0x9a, 0xac, 0xf8, 0x54, 0x15, 0x41, 0x2c, 0x06, 0x35, 0x62, 0x34, 0x53, 0x27, 0x8d, 0x9b, 0xf0, 0xe1, 0x0e, 0xec, 0x65, 0xfc, 0x72, 0xaf, 0xff, 0xfa, 0x93, 0x92, 0xdc, 0x78, 0x81, 0xd1, 0xe5, 0xc7, 0x60, 0xa4, 0x02, 0x80, 0xf1, 0x6b, 0x14, 0x75, 0x12, 0x7b, 0x91, 0xb6, 0x9c, 0xcb, 0x65, 0xdc, 0x4b, 0x35, 0xde, 0x10, 0xf9, 0x43, 0x25, 0xc0, 0xcb, 0xe1, 0xc4, 0x70, 0x19, 0xa2, 0xea, 0xf2, 0xb4, 0xba, 0x92, 0xd7, 0x85, 0x22, 0x9a, 0xac, 0xfa, 0xd1, 0x82, 0x6e, 0xbb, 0xde, 0xbe, 0xfb, 0x7d, 0xad, 0x4b, 0x05, 0xf8, 0x82, 0x43, 0xe1, 0x5f, 0x27, 0x97, 0x66, 0xe3, 0x32, 0x1d, 0xd8, 0xdb, 0xa6, 0x50, 0x44, 0x4d, 0x81, 0xfb, 0x08, 0x78, 0x76, 0x7a, 0x9c, 0x63, 0x53, 0x4b, 0xb4, 0xba, 0x21, 0x28, 0x5a, 0x24, 0x16, 0xcb, 0x8f, 0x85, 0x6d, 0x11, 0xa9, 0x6e, 0x0a, 0x8c, 0x8d, 0xe1, 0xe1, 0xa7, 0x51, 0x32, 0xf1, 0x56, 0x4c, 0xd9, 0x94, 0x99, 0x56, 0x90, 0xbb, 0xed, 0x2e, 0xe1, 0x54, 0x53, 0x7f, 0xb6, 0xf2, 0x79, 0xfb, 0x09, 0xc8, 0xde, 0xa6, 0xf6, 0xaf, 0xab, 0xc6, 0x28, 0x56, 0xe3, 0xd1, 0x28, 0xfd, 0xfa, 0x79, 0xfc, 0x49, 0x76, 0x19, 0x3b, 0xb9, 0xb3, 0x36, 0x86, 0x1e, 0x47, 0xb5, 0x6d, 0xc2, 0x58, 0x23, 0x93, 0xd2, 0xe5, 0x44, 0x65, 0x1a, 0xc8, 0x5b, 0xc5, 0x8e, 0x9e, 0x6a, 0x94, 0xdc, 0x4c, 0x39, 0xc4, 0xef, 0x72, 0x53, 0x8a, 0x14, 0xf8, 0x56, 0xcd, 0x95, 0xc3, 0xe2, 0x79, 0x0a, 0xde, 0xe0, 0x3a, 0xb2, 0xe5, 0x2c, 0xa0, 0xae, 0x47, 0x1d, 0xe5, 0x02, 0xcb, 0x19, 0xe6, 0x76, 0xaf, 0x35, 0xf5, 0xf9, 0x3d, 0x84, 0x0f, 0xef, 0x96, 0x06, 0xcb, 0xe9, 0x2d, 0x8b, 0xc2, 0x50, 0x06, 0x10, 0x5d, 0x92, 0x34, 0x45, 0x88, 0x83, 0x88, 0x42, 0xc3, 0xbe, 0x50, 0x5c, 0x73, 0x50, 0xe3, 0x51, 0xb7, 0x35, 0xe6, 0xcc, 0x6f, 0xb7, 0x92, 0x75, 0xb2, 0x7b, 0xd9, 0xeb, 0xd3, 0x6b, 0xa4, 0xd0, 0x60, 0xac, 0xee, 0x73, 0xb5, 0xa3, 0x15, 0xce, 0xff, 0xab, 0x86, 0xd0, 0x6f, 0x21, 0x68, 0xa6, 0x70, 0x65, 0x57, 0x81, 0x96, 0xa0, 0xed, 0x04, 0xa4, 0xdd, 0x71, 0xd6, 0x73, 0x48, 0x37, 0xdb, 0x08, 0x38, 0x57, 0xab, 0x1e, 0xb5, 0xe0, 0xee, 0xc4, 0xff, 0xba, 0xc9, 0x54, 0x4f, 0x4e, 0xc1, 0x9b, 0xde, 0x19, 0x4d, 0xf8, 0x4b, 0x1c, 0x84, 0x83, 0x41, 0x57, 0x4b, 0xf1, 0x0d, 0xae, 0xe8, 0x5b, 0x81, 0x78, 0x19, 0x6f, 0xb6, 0x08, 0x12, 0x3a, 0x80, 0x81, 0x71, 0xd7, 0x3c, 0xe4, 0x20, 0x6a, 0xd6, 0x52, 0x16, 0xad, 0x1a, 0x5c, 0xbd, 0xe4, 0x0b, 0x19, 0xd6, 0xae, 0x7f, 0x40, 0xdf, 0x97, 0xab, 0x84, 0x32, 0xe2, 0xc5, 0x3a, 0x50, 0x4e, 0xd1, 0x22, 0xe2, 0x5f, 0xb7, 0xa5, 0x1c, 0x14, 0x35, 0x4a, 0xb3, 0x92, 0x8e, 0xde, 0xb3, 0x9c, 0x29, 0xeb, 0x24, 0x6b, 0x74, 0xa0, 0x76, 0xf8, 0x9d, 0x03, 0x50, 0x4f, 0x40, 0x1b, 0xd1, 0x76, 0xb5, 0xcf, 0xfe, 0xe4, 0xb9, 0xdb, 0x09, 0x7c, 0x45, 0x76, 0x4f, 0x51, 0xaa, 0x37, 0x67, 0x04, 0xb5, 0xa7, 0xf2, 0x10, 0xb3, 0xf1, 0xa9, 0x05, 0xe2, 0x5d, 0x67, 0x00, 0x2f, 0x65, 0x57, 0xeb, 0xb7, 0x49, 0x73, 0x7c, 0xda, 0x31, };
16559 static const u8 ed25519_720_test_vectors_expected_sig[] = {
16560 	0x7e, 0xb4, 0x6c, 0xd0, 0xde, 0x31, 0x55, 0xb4, 0x37, 0x47, 0xd7, 0x32, 0xf1, 0x04, 0x5d, 0x8e, 0xf7, 0x44, 0x92, 0xad, 0x82, 0x7a, 0x22, 0x45, 0xbd, 0x17, 0x10, 0x28, 0x28, 0x44, 0x2e, 0x43, 0xa0, 0xce, 0x7e, 0x8b, 0x26, 0x8e, 0xd7, 0xfd, 0x8d, 0x3e, 0x7b, 0x28, 0xf0, 0x72, 0x79, 0x5d, 0xa3, 0xe0, 0x70, 0xf1, 0x2b, 0xc4, 0xe2, 0x3e, 0xae, 0xf5, 0x7b, 0x85, 0x3c, 0xee, 0x88, 0x0a, };
16561 static const ec_test_case ed25519_720_test_case = {
16562 	.name = "EDDSA25519-SHA512/wei25519 720",
16563 	.ec_str_p = &wei25519_str_params,
16564 	.priv_key = ed25519_720_test_vectors_priv_key,
16565 	.priv_key_len = sizeof(ed25519_720_test_vectors_priv_key),
16566 	.nn_random = NULL,
16567 	.hash_type = SHA512,
16568 	.msg = (const char *)ed25519_720_test_vectors_message,
16569 	.msglen = sizeof(ed25519_720_test_vectors_message),
16570 	.sig_type = EDDSA25519,
16571 	.exp_sig = ed25519_720_test_vectors_expected_sig,
16572 	.exp_siglen = sizeof(ed25519_720_test_vectors_expected_sig),
16573 	.adata = NULL,
16574 	.adata_len = 0
16575 };
16576 
16577 /************************************************/
16578 static const u8 ed25519_721_test_vectors_priv_key[] = {
16579 	0x2a, 0xac, 0xc8, 0x19, 0x7f, 0xf8, 0xfa, 0xe1, 0xc1, 0xcf, 0x38, 0x62, 0xe3, 0xc0, 0x4a, 0x21, 0x78, 0x29, 0x51, 0xf8, 0xe4, 0x8e, 0x40, 0xb5, 0x88, 0xf8, 0xbc, 0x74, 0x60, 0xc3, 0x0a, 0x03, };
16580 static const u8 ed25519_721_test_vectors_message[] = {
16581 	0x5d, 0x82, 0x75, 0x2c, 0xe5, 0xda, 0x31, 0x80, 0xfa, 0xf4, 0x78, 0x7a, 0xed, 0xfb, 0x19, 0x29, 0x4b, 0x43, 0x48, 0xa1, 0xd9, 0x20, 0x2c, 0x85, 0x39, 0x83, 0x31, 0x32, 0x3e, 0x0f, 0x42, 0xb0, 0x83, 0x52, 0x27, 0xe6, 0x8e, 0x11, 0x56, 0xf2, 0xd4, 0xba, 0x2f, 0xe4, 0x50, 0xe6, 0xd6, 0xef, 0x2b, 0x92, 0xd8, 0x9b, 0xbb, 0xe4, 0x09, 0x6e, 0x12, 0xca, 0x83, 0x97, 0xeb, 0x2f, 0x45, 0xe6, 0x76, 0xf1, 0x67, 0x3a, 0xa4, 0x1c, 0x95, 0x9f, 0xcd, 0x30, 0xd5, 0x57, 0x88, 0x53, 0xb5, 0xdb, 0xd1, 0xc0, 0xd5, 0xb3, 0xa0, 0xf0, 0xd8, 0x70, 0xec, 0xa7, 0x1e, 0xa1, 0x33, 0x90, 0x11, 0x1b, 0x25, 0x8f, 0x65, 0x48, 0xb3, 0x2f, 0x37, 0xa0, 0x5e, 0x97, 0x44, 0xa6, 0x56, 0xfd, 0x77, 0x8d, 0x65, 0x72, 0x19, 0x65, 0xc6, 0xd9, 0xb3, 0x28, 0x60, 0x0b, 0x45, 0x70, 0x47, 0x70, 0xe0, 0x4b, 0x09, 0x97, 0x90, 0xaa, 0x78, 0x84, 0xf0, 0x0d, 0x7b, 0xb7, 0x65, 0x9e, 0x33, 0x72, 0x10, 0xbd, 0xc2, 0x3e, 0xaa, 0x71, 0xd7, 0xb0, 0x16, 0x03, 0x0a, 0xca, 0x62, 0x23, 0xb5, 0x56, 0x9b, 0xdf, 0xc2, 0x90, 0x81, 0x1a, 0xac, 0x40, 0x95, 0x24, 0xdc, 0xcb, 0xf9, 0xba, 0xbc, 0xbe, 0x4b, 0xf2, 0x09, 0x46, 0xb5, 0x44, 0x31, 0x7c, 0xa6, 0xf2, 0xf9, 0x18, 0x31, 0xc7, 0x9f, 0xb2, 0x73, 0xb6, 0x40, 0x4e, 0xb4, 0xe6, 0x1e, 0x1f, 0x7b, 0x10, 0x6e, 0xbd, 0x0d, 0xb9, 0xf2, 0xb1, 0x97, 0x4d, 0x2f, 0x03, 0x1b, 0xce, 0x25, 0x80, 0x36, 0x06, 0x55, 0x2c, 0x34, 0x41, 0x65, 0x5e, 0xfc, 0xf2, 0xc7, 0xea, 0x52, 0xad, 0xcb, 0x30, 0x99, 0x3d, 0x85, 0xf2, 0xdd, 0xa7, 0x96, 0x03, 0xe9, 0x41, 0x5a, 0x02, 0x32, 0x45, 0xa6, 0x6c, 0x07, 0xa9, 0x56, 0x93, 0x31, 0x46, 0xf5, 0x3c, 0x99, 0x3c, 0x08, 0x89, 0x18, 0x08, 0xb8, 0x16, 0x6b, 0x30, 0x72, 0x1f, 0xbd, 0x1f, 0x8a, 0x1b, 0x93, 0x7d, 0x14, 0x07, 0x0d, 0x78, 0x6e, 0x9e, 0xb4, 0x51, 0xf2, 0xab, 0x51, 0x42, 0xf8, 0x3a, 0x60, 0xf3, 0x5d, 0x76, 0xad, 0x8b, 0x81, 0xd6, 0xa5, 0x7c, 0xf3, 0x68, 0xfc, 0x6f, 0xca, 0xcc, 0x0c, 0x47, 0x58, 0x44, 0x0d, 0x9c, 0xd5, 0x95, 0xb1, 0xb0, 0x94, 0x2a, 0x36, 0x55, 0xe2, 0x50, 0xda, 0x98, 0x3b, 0x72, 0x41, 0x54, 0x6d, 0xcf, 0xbe, 0x0a, 0xe8, 0x10, 0x77, 0x65, 0x02, 0x95, 0x40, 0x9f, 0xf9, 0xe9, 0x09, 0x77, 0xfb, 0x99, 0x60, 0xcb, 0xf4, 0x0a, 0x2a, 0xf5, 0x17, 0x74, 0x02, 0xba, 0x2f, 0xaf, 0x50, 0xdb, 0x6f, 0x1a, 0x73, 0x65, 0xcf, 0x99, 0xe9, 0x92, 0x42, 0x9e, 0x38, 0xdb, 0x43, 0xea, 0x83, 0xfd, 0xdc, 0x95, 0xa6, 0x48, 0x67, 0x6c, 0x0b, 0x16, 0xbc, 0x95, 0x2b, 0x15, 0xde, 0x99, 0xd5, 0x2f, 0x6b, 0x52, 0x33, 0xda, 0x4e, 0xae, 0x19, 0x78, 0xe8, 0xba, 0x25, 0xe6, 0x23, 0x5a, 0xfb, 0xc5, 0x11, 0xc7, 0x6c, 0x4c, 0x87, 0x4c, 0x92, 0x37, 0x92, 0x2b, 0x1c, 0xef, 0x08, 0x47, 0xd0, 0x7a, 0x80, 0x20, 0x0c, 0xba, 0xe3, 0xc7, 0xc8, 0x1f, 0xcb, 0xd0, 0xd1, 0x72, 0x52, 0xed, 0x8c, 0x61, 0xad, 0x19, 0x54, 0xfc, 0x86, 0x2e, 0x1e, 0x04, 0x44, 0x4c, 0x32, 0x08, 0x6f, 0xee, 0x38, 0x0d, 0x1c, 0x17, 0x54, 0x13, 0x22, 0xb9, 0xa6, 0x0d, 0xa6, 0x62, 0x35, 0x2e, 0x21, 0x0e, 0x9a, 0xe2, 0x15, 0xe3, 0x53, 0x29, 0x6d, 0xb9, 0x22, 0x33, 0x9a, 0xa1, 0x7d, 0x21, 0x73, 0xec, 0x31, 0xf1, 0xc5, 0x30, 0xa2, 0x4b, 0x1f, 0x34, 0x8a, 0x31, 0x57, 0x2e, 0x14, 0x69, 0xca, 0xac, 0x80, 0x8f, 0x9c, 0x76, 0xec, 0x27, 0x31, 0x87, 0x3b, 0x80, 0x3e, 0xad, 0x3e, 0x54, 0xea, 0x24, 0xbc, 0x24, 0x49, 0x9b, 0x97, 0x04, 0xb3, 0xbd, 0xce, 0x81, 0x38, 0x9b, 0x9d, 0x14, 0xd4, 0x95, 0x27, 0xc0, 0x4b, 0x3b, 0xb9, 0xe3, 0xba, 0x6d, 0x94, 0x6c, 0xea, 0x58, 0xcf, 0x78, 0x6d, 0x4d, 0x28, 0xb8, 0x9b, 0x41, 0xc5, 0x82, 0x74, 0x03, 0x5a, 0x86, 0x90, 0x5a, 0xd9, 0x57, 0x58, 0xc3, 0x16, 0x13, 0x66, 0xab, 0x93, 0xda, 0x81, 0xe6, 0xb4, 0xc8, 0x08, 0x36, 0x4e, 0x08, 0x7d, 0xae, 0xea, 0x4c, 0x4c, 0x5c, 0x2a, 0xa6, 0x87, 0x19, 0x37, 0xc5, 0xfe, 0xab, 0xa2, 0x14, 0x9f, 0x01, 0xf7, 0x38, 0xf4, 0x53, 0x96, 0xe6, 0x6e, 0xa8, 0x06, 0x32, 0x21, 0xe1, 0xc8, 0x1c, 0x05, 0x25, 0x5b, 0xa5, 0x64, 0xad, 0x44, 0x0c, 0xb5, 0xd0, 0x7c, 0xbd, 0x4b, 0xab, 0x94, 0x1e, 0xa5, 0x93, 0x24, 0x49, 0x30, 0xbc, 0x5c, 0x28, 0x9b, 0x31, 0x65, 0xd3, 0xec, 0x88, 0x47, 0xeb, 0xc4, 0xb6, 0x74, 0xc0, 0xa4, 0x9f, 0x91, 0x69, 0xad, 0xef, 0x78, 0x6d, 0x77, 0x67, 0xbc, 0x8f, 0x21, 0x3d, 0xb7, 0xd9, 0x5c, 0x06, 0xe9, 0x9b, 0xc1, 0x1e, 0x20, 0x00, 0x55, 0xb6, 0x5e, 0xb7, 0x9a, 0xda, 0xa0, 0x1b, 0xcd, 0x2c, 0x85, 0xda, 0x43, 0xce, 0x63, 0x70, 0xe1, 0x2e, 0x34, 0x9b, 0xf6, 0xd4, 0x75, 0x48, 0x7a, 0xff, 0xdf, 0x92, 0xe2, 0x0a, 0x3a, 0xcd, 0xed, 0x1d, 0x76, 0xf9, 0xe8, 0x3e, 0x91, 0x9e, 0x98, 0xde, 0xf1, 0x95, 0x07, 0x2a, 0x50, 0xd0, 0xc5, 0x71, 0xdd, 0x25, };
16582 static const u8 ed25519_721_test_vectors_expected_sig[] = {
16583 	0x64, 0x7c, 0xdd, 0x6c, 0x1a, 0x67, 0x29, 0x0e, 0x57, 0x67, 0x6a, 0x78, 0x11, 0x3a, 0xaa, 0xdc, 0xa6, 0x9a, 0xc5, 0x7b, 0x99, 0x77, 0x15, 0xc5, 0x09, 0x89, 0x5b, 0x8c, 0x5c, 0x94, 0xe8, 0x2c, 0x0b, 0x6a, 0xce, 0xcc, 0xf3, 0xba, 0x8b, 0xd7, 0xcf, 0x61, 0x75, 0x2b, 0x1b, 0x19, 0xd1, 0x3b, 0x49, 0xf1, 0x5f, 0x8b, 0xfa, 0x04, 0x6e, 0xb4, 0x42, 0xa5, 0x5c, 0xd5, 0xba, 0xb1, 0x42, 0x02, };
16584 static const ec_test_case ed25519_721_test_case = {
16585 	.name = "EDDSA25519-SHA512/wei25519 721",
16586 	.ec_str_p = &wei25519_str_params,
16587 	.priv_key = ed25519_721_test_vectors_priv_key,
16588 	.priv_key_len = sizeof(ed25519_721_test_vectors_priv_key),
16589 	.nn_random = NULL,
16590 	.hash_type = SHA512,
16591 	.msg = (const char *)ed25519_721_test_vectors_message,
16592 	.msglen = sizeof(ed25519_721_test_vectors_message),
16593 	.sig_type = EDDSA25519,
16594 	.exp_sig = ed25519_721_test_vectors_expected_sig,
16595 	.exp_siglen = sizeof(ed25519_721_test_vectors_expected_sig),
16596 	.adata = NULL,
16597 	.adata_len = 0
16598 };
16599 
16600 /************************************************/
16601 static const u8 ed25519_722_test_vectors_priv_key[] = {
16602 	0xff, 0x86, 0x21, 0x56, 0xc7, 0xea, 0xb6, 0x81, 0xc9, 0x5e, 0xff, 0xf8, 0x00, 0x3e, 0x00, 0xa1, 0x4f, 0x1f, 0x0d, 0x50, 0x5d, 0x55, 0x07, 0xe6, 0xe5, 0xb3, 0x91, 0x79, 0xdf, 0x9b, 0x1c, 0xda, };
16603 static const u8 ed25519_722_test_vectors_message[] = {
16604 	0xb3, 0xd1, 0xdb, 0x72, 0xa6, 0xa9, 0x85, 0xec, 0xd7, 0x0a, 0x2c, 0xff, 0x6c, 0x18, 0xc1, 0x79, 0xe2, 0x17, 0xd4, 0xf4, 0x10, 0xfd, 0x39, 0x34, 0x96, 0x96, 0x85, 0x90, 0x1b, 0xd0, 0x71, 0xbc, 0xe6, 0xc2, 0xfb, 0x67, 0x63, 0xe1, 0x0c, 0x6f, 0xa1, 0x6e, 0x75, 0xa1, 0x17, 0x60, 0x66, 0xb8, 0xec, 0x81, 0xae, 0x3a, 0x80, 0x39, 0xe7, 0x1d, 0xc2, 0xcd, 0xc6, 0x4a, 0x40, 0xfd, 0x62, 0xb7, 0xce, 0xe7, 0xbe, 0x4b, 0xa0, 0x33, 0x2f, 0xe4, 0x5d, 0x0b, 0x60, 0x15, 0x86, 0x52, 0xe3, 0x3f, 0x8d, 0x3a, 0xff, 0x3c, 0xb4, 0xd6, 0xb0, 0x21, 0x74, 0x4d, 0x0d, 0xd1, 0x78, 0xb1, 0xbf, 0x0a, 0x1c, 0xc1, 0xd3, 0xfe, 0x93, 0x21, 0xbe, 0x28, 0x42, 0x1e, 0xb8, 0x82, 0x63, 0xa1, 0x24, 0xf4, 0x97, 0x92, 0xd0, 0x79, 0x47, 0x5a, 0x8c, 0x55, 0x5f, 0xf5, 0x69, 0x08, 0x73, 0x51, 0x4b, 0x5d, 0x48, 0x3e, 0x53, 0x21, 0x7e, 0x0c, 0xbb, 0x12, 0x86, 0x2b, 0x85, 0x0f, 0xe3, 0x90, 0xc8, 0xf8, 0x30, 0x08, 0x08, 0x6e, 0x64, 0x9a, 0xc9, 0x04, 0xb0, 0x18, 0x35, 0x0a, 0xb4, 0x91, 0x57, 0xee, 0x9b, 0xca, 0xe6, 0xc0, 0x7a, 0x4b, 0x87, 0x8b, 0x48, 0xe2, 0x5e, 0x98, 0x4f, 0xbb, 0x4d, 0x36, 0xb6, 0x1d, 0x68, 0x9b, 0x13, 0x46, 0x8a, 0x28, 0xd1, 0xe3, 0x87, 0xe0, 0xe8, 0x86, 0x57, 0xf8, 0xc8, 0xac, 0x95, 0x86, 0xa6, 0xe2, 0x6c, 0xf9, 0x4d, 0xff, 0x6f, 0x82, 0x64, 0xe3, 0xff, 0x62, 0x58, 0x86, 0x5c, 0x6d, 0xcf, 0x85, 0x7b, 0x00, 0x14, 0x78, 0x86, 0xe1, 0x75, 0xdf, 0x04, 0x32, 0xe3, 0x2f, 0x04, 0x40, 0x0e, 0x29, 0x9f, 0x21, 0x18, 0x83, 0x12, 0xb3, 0x2d, 0xfc, 0x05, 0x0e, 0x7b, 0x7e, 0x87, 0xee, 0xaa, 0x0c, 0xba, 0xac, 0x6b, 0xe9, 0x93, 0x7a, 0x5e, 0x0c, 0xc3, 0x11, 0x13, 0xde, 0x7c, 0x8b, 0x23, 0x3e, 0x1c, 0xe8, 0xe5, 0xd9, 0xc5, 0x64, 0xfb, 0xe9, 0xf3, 0x7b, 0xbd, 0x41, 0x1d, 0xf7, 0xa5, 0xe4, 0x4e, 0x6c, 0x7e, 0xbb, 0x67, 0x6d, 0x85, 0x89, 0x4d, 0xcc, 0xf4, 0x86, 0x5e, 0x4d, 0xda, 0x0c, 0xad, 0xef, 0x2b, 0xbc, 0x55, 0x00, 0x0b, 0x3a, 0x29, 0xf1, 0xf7, 0x1e, 0xf4, 0x46, 0x1d, 0xdc, 0x3b, 0x33, 0x1d, 0x91, 0x56, 0x65, 0x34, 0xc5, 0xd6, 0xd8, 0x4c, 0x73, 0x13, 0x76, 0x29, 0x53, 0x20, 0xf8, 0x0a, 0xdc, 0x90, 0x28, 0x8f, 0x99, 0x53, 0x55, 0x4f, 0xcd, 0xf9, 0x21, 0x3d, 0xe6, 0xa9, 0x05, 0x21, 0x0d, 0x4c, 0x80, 0x64, 0xaf, 0x91, 0xcd, 0x98, 0x32, 0x5e, 0xf9, 0x18, 0x98, 0xd3, 0x3d, 0x70, 0x03, 0x82, 0x02, 0xe3, 0x2f, 0xb6, 0x70, 0x9c, 0xa3, 0xd7, 0x88, 0xfe, 0xcb, 0xd1, 0xb8, 0x41, 0xfa, 0x4e, 0x5e, 0x90, 0x62, 0xd6, 0x42, 0x67, 0xc3, 0x5c, 0xfd, 0x44, 0x4f, 0xb6, 0x9e, 0x2f, 0x60, 0x47, 0xf5, 0x8b, 0x1c, 0x2a, 0xf4, 0xcc, 0x7e, 0x4c, 0xac, 0x2f, 0x89, 0x08, 0x88, 0x36, 0x05, 0x92, 0x11, 0x3e, 0x96, 0xad, 0x3a, 0x85, 0x7e, 0xd0, 0x5e, 0xaa, 0xba, 0x6f, 0x91, 0x53, 0xef, 0x89, 0xb9, 0x3e, 0x00, 0xe8, 0x74, 0x37, 0x33, 0xec, 0x47, 0x2d, 0x9b, 0x0e, 0xec, 0x1c, 0xd8, 0xfa, 0x52, 0x42, 0x5c, 0x4a, 0x26, 0xbd, 0x7d, 0xf7, 0x3a, 0x27, 0x12, 0xbe, 0xbe, 0x51, 0xae, 0x3b, 0x25, 0xeb, 0x78, 0xdb, 0x82, 0x14, 0x90, 0x31, 0xfe, 0x7b, 0x28, 0x1a, 0xf6, 0xcb, 0x77, 0x14, 0xed, 0xf8, 0x9d, 0xe9, 0x15, 0xf3, 0x47, 0x0f, 0x15, 0x3e, 0xed, 0x7f, 0x45, 0x62, 0x43, 0xbb, 0x90, 0x34, 0x2e, 0x19, 0x0e, 0x64, 0x7f, 0x39, 0xe0, 0x46, 0x88, 0x3c, 0xe2, 0x8a, 0x89, 0x20, 0x03, 0x31, 0x5e, 0xa3, 0x79, 0x42, 0x9e, 0x95, 0x82, 0xa9, 0x35, 0xeb, 0x78, 0x96, 0x33, 0x96, 0xd1, 0x36, 0x84, 0x5f, 0x86, 0xc4, 0x66, 0xe8, 0xfa, 0xf2, 0x27, 0x2f, 0x43, 0xff, 0xef, 0xc2, 0xad, 0xa5, 0x60, 0x1f, 0x8a, 0x6b, 0x2a, 0xc4, 0xcc, 0x6b, 0x92, 0x82, 0x09, 0x17, 0xf2, 0xe0, 0x39, 0x3c, 0x8f, 0xaf, 0x98, 0x2d, 0x6c, 0x5f, 0x4f, 0x23, 0x0e, 0x27, 0xce, 0x22, 0x78, 0xa7, 0x23, 0x77, 0x47, 0xfa, 0x85, 0xa9, 0xc8, 0x57, 0xbf, 0x18, 0x02, 0xc3, 0xea, 0xe0, 0xd2, 0x35, 0xb5, 0xad, 0x58, 0x49, 0x7d, 0x66, 0xa0, 0xd3, 0xa9, 0xba, 0xeb, 0xcc, 0x41, 0x7f, 0x18, 0x33, 0xe9, 0xcc, 0x44, 0x60, 0xf9, 0x75, 0xd7, 0x28, 0x58, 0xcd, 0x11, 0x8d, 0x7a, 0xaf, 0xaf, 0x1c, 0x87, 0x82, 0x97, 0xca, 0xcf, 0x71, 0xac, 0x75, 0x67, 0x6d, 0xc1, 0xb4, 0xfb, 0x51, 0xc1, 0x77, 0x58, 0x10, 0xd0, 0x35, 0x37, 0xf2, 0xd7, 0x66, 0x27, 0x8b, 0x99, 0x71, 0xbb, 0x97, 0xd3, 0xc4, 0x9b, 0x51, 0xfe, 0xb2, 0x6d, 0x37, 0x5e, 0x0c, 0xb9, 0x10, 0x95, 0x74, 0xa8, 0x16, 0xf8, 0x4e, 0x76, 0xfc, 0x7e, 0xf0, 0x72, 0xd5, 0x79, 0x3c, 0x2f, 0x65, 0xab, 0x2e, 0xfd, 0x90, 0x52, 0xe6, 0xb8, 0x56, 0x9f, 0x28, 0x05, 0x86, 0x1c, 0x31, 0xa7, 0x34, 0x4a, 0x3c, 0x44, 0x06, 0x9a, 0x94, 0x32, 0x0d, 0x27, 0x4e, 0x27, 0x12, 0x71, 0xea, 0xfa, 0x3b, 0xfe, 0x64, 0xde, 0x75, 0x37, 0x84, 0x6a, 0x01, 0xe5, 0x1f, 0xda, 0xe0, };
16605 static const u8 ed25519_722_test_vectors_expected_sig[] = {
16606 	0x4b, 0x81, 0x37, 0x04, 0x2d, 0x67, 0x84, 0x75, 0x7d, 0x4a, 0x9c, 0x06, 0xbc, 0x74, 0x32, 0xf4, 0x80, 0x9b, 0x1c, 0x6a, 0x90, 0x35, 0x42, 0x73, 0x6d, 0x9a, 0x57, 0x66, 0x8c, 0x20, 0x84, 0x5c, 0x17, 0xd4, 0x68, 0x55, 0x70, 0x85, 0xc5, 0x7f, 0xb6, 0x32, 0x13, 0xda, 0xd3, 0xbe, 0x0f, 0xa3, 0x6a, 0x11, 0x8f, 0x7c, 0x1a, 0xef, 0xf2, 0x56, 0x2f, 0xf4, 0xb8, 0x88, 0x8c, 0x26, 0x90, 0x0e, };
16607 static const ec_test_case ed25519_722_test_case = {
16608 	.name = "EDDSA25519-SHA512/wei25519 722",
16609 	.ec_str_p = &wei25519_str_params,
16610 	.priv_key = ed25519_722_test_vectors_priv_key,
16611 	.priv_key_len = sizeof(ed25519_722_test_vectors_priv_key),
16612 	.nn_random = NULL,
16613 	.hash_type = SHA512,
16614 	.msg = (const char *)ed25519_722_test_vectors_message,
16615 	.msglen = sizeof(ed25519_722_test_vectors_message),
16616 	.sig_type = EDDSA25519,
16617 	.exp_sig = ed25519_722_test_vectors_expected_sig,
16618 	.exp_siglen = sizeof(ed25519_722_test_vectors_expected_sig),
16619 	.adata = NULL,
16620 	.adata_len = 0
16621 };
16622 
16623 /************************************************/
16624 static const u8 ed25519_723_test_vectors_priv_key[] = {
16625 	0x58, 0x26, 0x19, 0xab, 0x3c, 0xf5, 0xa3, 0xae, 0x77, 0x66, 0x88, 0xbf, 0x6d, 0xba, 0xcb, 0x36, 0x33, 0x0a, 0x35, 0xad, 0x75, 0x24, 0xe4, 0x9e, 0xf6, 0x63, 0x68, 0x77, 0x64, 0xcf, 0x6e, 0xc7, };
16626 static const u8 ed25519_723_test_vectors_message[] = {
16627 	0xca, 0x74, 0x28, 0x4f, 0x11, 0xc5, 0x6e, 0x25, 0x98, 0xd7, 0x8a, 0x4e, 0xcd, 0x03, 0xb4, 0x0e, 0x01, 0x7a, 0x55, 0x81, 0x76, 0x01, 0x2b, 0x26, 0xfd, 0xf6, 0x95, 0xc3, 0xde, 0x98, 0xa7, 0x4f, 0x8f, 0x40, 0xa4, 0x7d, 0x79, 0x78, 0xed, 0xc2, 0x4e, 0xe8, 0x09, 0x2b, 0xfe, 0x5e, 0x61, 0x59, 0x68, 0x34, 0xde, 0xed, 0x1d, 0x9d, 0x34, 0xa0, 0xf5, 0xcd, 0xae, 0xbe, 0x34, 0x21, 0xaa, 0x19, 0xe0, 0x12, 0xde, 0x86, 0x5b, 0x9e, 0xe1, 0xb7, 0x34, 0x79, 0xb2, 0xbd, 0x1a, 0xc9, 0x82, 0xf9, 0x7e, 0xd9, 0xc7, 0xcd, 0x20, 0x45, 0x9c, 0x60, 0xfb, 0xb1, 0x1e, 0x1e, 0x2b, 0x4e, 0xac, 0x5d, 0xb6, 0x84, 0x4c, 0x71, 0xd7, 0x29, 0x49, 0x50, 0x2b, 0xba, 0x50, 0x3a, 0xce, 0xc9, 0x05, 0xad, 0xba, 0x25, 0xf6, 0xb1, 0x19, 0xea, 0xf9, 0x63, 0x9f, 0xa8, 0xab, 0xb3, 0x02, 0xdf, 0xf9, 0x93, 0x2d, 0x85, 0x0c, 0xc4, 0x4c, 0x57, 0xcf, 0x90, 0xb2, 0xe5, 0x8a, 0x8b, 0x52, 0x51, 0xc1, 0x26, 0xa9, 0xe2, 0x8f, 0x5c, 0x76, 0x1b, 0x62, 0x80, 0xe2, 0xcd, 0xdd, 0x79, 0xcb, 0xd6, 0x8e, 0x53, 0xff, 0x4a, 0x62, 0x26, 0xd3, 0xbd, 0x4c, 0x96, 0x1b, 0x9b, 0x9e, 0x43, 0x45, 0xa2, 0x54, 0x58, 0x62, 0xc7, 0x97, 0x38, 0x66, 0xf0, 0x42, 0x0b, 0x89, 0x8e, 0x7b, 0xae, 0xa9, 0x0e, 0xa4, 0xee, 0x00, 0x40, 0x42, 0xef, 0x38, 0xa1, 0xfd, 0x95, 0x6a, 0x72, 0xfd, 0xf6, 0xfd, 0x43, 0x25, 0x7d, 0xa9, 0xfd, 0xb9, 0x66, 0x80, 0xef, 0x4f, 0xdf, 0x9e, 0x94, 0x3d, 0x26, 0x5c, 0xdc, 0xf2, 0xe5, 0x2e, 0x32, 0x01, 0xd5, 0x40, 0x8b, 0xc6, 0xce, 0x10, 0xe5, 0x70, 0x0a, 0xdf, 0x12, 0xb5, 0x5b, 0xa1, 0x4a, 0xa8, 0x29, 0xd8, 0x69, 0x1c, 0x31, 0xf2, 0x4f, 0xc4, 0xa5, 0x1c, 0xe6, 0xfa, 0xa1, 0xf3, 0xef, 0x2e, 0xad, 0x78, 0xe5, 0xe7, 0x53, 0x44, 0x6a, 0xd3, 0xfa, 0x4a, 0x84, 0xc1, 0x93, 0x97, 0x9a, 0xeb, 0xc8, 0x30, 0x9b, 0xad, 0x60, 0x81, 0x4f, 0x48, 0x59, 0xb9, 0x31, 0xd7, 0x04, 0x14, 0x76, 0x44, 0x91, 0xc6, 0xc9, 0xed, 0x8d, 0xb6, 0x73, 0xc5, 0x43, 0xd3, 0x51, 0x85, 0xcd, 0x28, 0x88, 0xaa, 0x21, 0xc1, 0xa9, 0x20, 0x34, 0x27, 0xe0, 0xac, 0x0b, 0x1f, 0xe3, 0x4c, 0x0e, 0x4a, 0x40, 0x01, 0xe0, 0x95, 0x6c, 0x13, 0xcb, 0x59, 0xa3, 0xba, 0xf8, 0x7c, 0x21, 0x09, 0xa8, 0x88, 0xa4, 0xc9, 0xe7, 0xaa, 0x48, 0x17, 0x67, 0xd8, 0x02, 0x0f, 0xf3, 0x5d, 0xd7, 0xc5, 0xcc, 0xec, 0x7c, 0x08, 0xe9, 0x71, 0xa7, 0xe2, 0x18, 0x13, 0x8c, 0x90, 0x54, 0x6a, 0x7d, 0xdf, 0x36, 0xad, 0x11, 0x4b, 0xe5, 0x85, 0x57, 0x43, 0x2c, 0x2d, 0xdf, 0x34, 0xce, 0xd3, 0x37, 0x9f, 0x70, 0xd4, 0x40, 0x7e, 0x58, 0x79, 0xf9, 0x84, 0x2f, 0x38, 0x17, 0x17, 0x05, 0x1b, 0x16, 0x85, 0xaa, 0x7a, 0xb0, 0xad, 0x38, 0x54, 0x1e, 0xc1, 0x68, 0xf5, 0x1c, 0xb6, 0x88, 0xf3, 0xcd, 0x1a, 0x01, 0x9a, 0x33, 0x6c, 0x9f, 0x4f, 0x3f, 0x82, 0xde, 0x78, 0x5c, 0x07, 0x48, 0x67, 0xfd, 0xc8, 0x80, 0x0f, 0xc7, 0x6f, 0xba, 0x04, 0xc8, 0xad, 0x8d, 0xe1, 0x0d, 0x2e, 0x9b, 0x43, 0x05, 0x81, 0xbe, 0x44, 0xc4, 0x1e, 0xcc, 0x8f, 0xc8, 0xa6, 0x16, 0x31, 0x43, 0x99, 0xd1, 0x8c, 0x64, 0x79, 0xf5, 0x7e, 0x57, 0x3b, 0x22, 0xa6, 0xee, 0x5c, 0xe2, 0xdc, 0xc0, 0x89, 0x48, 0xa0, 0xde, 0x1f, 0x0d, 0xd2, 0x5b, 0x65, 0x71, 0x5a, 0xb1, 0x8c, 0x70, 0xc7, 0x62, 0xfc, 0x3d, 0x7d, 0x60, 0x0c, 0xad, 0x63, 0x22, 0x60, 0x38, 0x50, 0x9c, 0x19, 0xab, 0x35, 0xb5, 0x49, 0x3e, 0xee, 0x73, 0xa7, 0x03, 0x73, 0x1e, 0xc5, 0x35, 0xc9, 0x0c, 0x6f, 0x06, 0xd9, 0x4d, 0x3e, 0x5f, 0x7e, 0x51, 0xa0, 0x9f, 0x9f, 0x8f, 0x42, 0xc5, 0x01, 0xb8, 0x50, 0x46, 0x86, 0x36, 0x5c, 0xee, 0xe9, 0xe0, 0xfe, 0x00, 0x13, 0x29, 0xf3, 0x03, 0x52, 0x21, 0x46, 0x71, 0x7c, 0x6a, 0x12, 0x58, 0xd0, 0xf1, 0x57, 0xcb, 0xea, 0x4b, 0x5a, 0x5e, 0x3d, 0x13, 0xbc, 0x90, 0x7e, 0x95, 0xfd, 0x6e, 0x8a, 0x71, 0x89, 0x6a, 0x02, 0xc3, 0x10, 0x6b, 0xd2, 0x6a, 0x51, 0x00, 0x51, 0xf1, 0xb3, 0x02, 0x58, 0xab, 0x27, 0xf8, 0x75, 0x67, 0x3b, 0x13, 0x37, 0xee, 0x36, 0xb7, 0x1a, 0x37, 0x6e, 0x0f, 0x9e, 0x78, 0x09, 0xa6, 0x7c, 0x67, 0xd9, 0xac, 0xc1, 0x6c, 0x25, 0x1d, 0xcb, 0x8c, 0x92, 0x6c, 0x8e, 0x93, 0x25, 0x16, 0xd3, 0x8b, 0x72, 0x33, 0xea, 0xc6, 0x15, 0x9c, 0x59, 0xca, 0xd0, 0x30, 0x7c, 0x59, 0x0e, 0x71, 0x31, 0xb6, 0x22, 0x19, 0x14, 0x5a, 0xaa, 0x35, 0x5b, 0xfb, 0x4a, 0xcb, 0x6a, 0xf0, 0xa5, 0x50, 0x00, 0x06, 0xcd, 0xd8, 0xb8, 0x13, 0xfe, 0x19, 0x08, 0x60, 0x2e, 0x08, 0x74, 0xc9, 0x62, 0x2b, 0xb3, 0x76, 0x73, 0xba, 0x1a, 0xcb, 0xa4, 0x14, 0x23, 0x16, 0x67, 0xbc, 0xc4, 0x90, 0x7a, 0xc8, 0x71, 0xf8, 0x7e, 0x6c, 0xe3, 0xf5, 0x91, 0xc1, 0x91, 0x71, 0x05, 0x7a, 0x9f, 0x45, 0x7f, 0x53, 0x62, 0xae, 0xda, 0x10, 0x5d, 0x18, 0xfb, 0x84, 0xf7, 0xd0, 0xf0, 0xa7, 0xda, 0x7e, 0xf8, 0xda, 0x91, 0x14, };
16628 static const u8 ed25519_723_test_vectors_expected_sig[] = {
16629 	0xfe, 0x97, 0x01, 0xda, 0x1a, 0xa8, 0x1c, 0x55, 0xba, 0xc3, 0x36, 0x38, 0xf7, 0x75, 0x54, 0x2b, 0x80, 0x44, 0x80, 0xf3, 0x4b, 0x7b, 0xfc, 0x78, 0xda, 0x99, 0x16, 0xe5, 0x24, 0x6a, 0x60, 0x4d, 0x39, 0x0b, 0xf9, 0x20, 0xc8, 0x72, 0xa7, 0x79, 0x24, 0x24, 0x6e, 0xe8, 0xd0, 0x39, 0x3b, 0x20, 0x2e, 0x7b, 0x25, 0xb2, 0x48, 0x4f, 0x65, 0x4a, 0xc3, 0x67, 0xcb, 0x09, 0x25, 0xec, 0xe3, 0x05, };
16630 static const ec_test_case ed25519_723_test_case = {
16631 	.name = "EDDSA25519-SHA512/wei25519 723",
16632 	.ec_str_p = &wei25519_str_params,
16633 	.priv_key = ed25519_723_test_vectors_priv_key,
16634 	.priv_key_len = sizeof(ed25519_723_test_vectors_priv_key),
16635 	.nn_random = NULL,
16636 	.hash_type = SHA512,
16637 	.msg = (const char *)ed25519_723_test_vectors_message,
16638 	.msglen = sizeof(ed25519_723_test_vectors_message),
16639 	.sig_type = EDDSA25519,
16640 	.exp_sig = ed25519_723_test_vectors_expected_sig,
16641 	.exp_siglen = sizeof(ed25519_723_test_vectors_expected_sig),
16642 	.adata = NULL,
16643 	.adata_len = 0
16644 };
16645 
16646 /************************************************/
16647 static const u8 ed25519_724_test_vectors_priv_key[] = {
16648 	0x2b, 0xbd, 0x83, 0x0c, 0xe7, 0xde, 0xf3, 0xfe, 0xce, 0xa1, 0xec, 0xd6, 0xea, 0x0a, 0xe9, 0xc9, 0xf4, 0xfa, 0x8f, 0xfc, 0x3b, 0x1f, 0x19, 0x38, 0xc5, 0x05, 0x05, 0x1b, 0xab, 0x40, 0xcf, 0x7a, };
16649 static const u8 ed25519_724_test_vectors_message[] = {
16650 	0x5f, 0x1e, 0xde, 0xaa, 0x3c, 0x0b, 0x2a, 0x63, 0x31, 0x1d, 0x97, 0xf1, 0xc5, 0x4e, 0x7e, 0x2f, 0x68, 0x71, 0x70, 0xe6, 0xb4, 0x6e, 0x21, 0x69, 0xcb, 0xf5, 0x6c, 0x66, 0xf2, 0x31, 0xbf, 0xc4, 0xa5, 0x76, 0xbd, 0x2b, 0x84, 0x20, 0xbf, 0x35, 0x7d, 0x3a, 0x90, 0xf8, 0xf3, 0x2e, 0xa1, 0xad, 0x99, 0x39, 0xb4, 0x67, 0x25, 0x4b, 0x66, 0xa1, 0xdf, 0x1f, 0x5b, 0x4c, 0xba, 0xc6, 0x3a, 0x5c, 0x27, 0x24, 0x26, 0x0d, 0x24, 0xd8, 0xdf, 0x8e, 0xdb, 0x58, 0xae, 0x24, 0x7a, 0x25, 0x91, 0xe9, 0x20, 0xb1, 0xa4, 0x20, 0xcf, 0x8d, 0x85, 0x39, 0xea, 0x57, 0xdb, 0x0d, 0xad, 0xff, 0x1a, 0xd3, 0xe9, 0x8c, 0x31, 0x72, 0xd0, 0x33, 0x16, 0x3c, 0xb4, 0x34, 0xa7, 0x66, 0xb0, 0xc1, 0x18, 0xa5, 0x6a, 0xbd, 0xcc, 0xe7, 0x9c, 0x82, 0xaf, 0x7b, 0xac, 0x74, 0xed, 0x0e, 0xa0, 0x24, 0xac, 0x4c, 0xe0, 0x22, 0x2d, 0x0a, 0xa9, 0x14, 0xf4, 0x32, 0x09, 0x2b, 0x1b, 0x51, 0x78, 0x04, 0xdb, 0x59, 0x18, 0xa8, 0x45, 0xe9, 0xcc, 0xa5, 0x5a, 0x87, 0xdb, 0x7c, 0x28, 0x52, 0xf7, 0xdd, 0x2e, 0x48, 0x36, 0x01, 0x85, 0xcc, 0x44, 0x2c, 0x79, 0x30, 0xaf, 0xe1, 0x5d, 0xd6, 0x22, 0xcc, 0x02, 0xbc, 0xd1, 0xee, 0x77, 0x8b, 0x59, 0x70, 0x5f, 0x14, 0x33, 0x32, 0x41, 0x58, 0x8a, 0x52, 0x2d, 0xe2, 0x44, 0x07, 0xe8, 0xe6, 0xe1, 0x0d, 0x5e, 0xf3, 0xa8, 0x8e, 0x3a, 0x3c, 0x44, 0x38, 0xc1, 0x7f, 0x75, 0x04, 0x67, 0x4f, 0xd7, 0xe4, 0x18, 0xcb, 0x2f, 0x77, 0xad, 0x0a, 0x56, 0xd2, 0x38, 0x67, 0x03, 0x15, 0x5e, 0x9a, 0x40, 0x1c, 0x43, 0xdd, 0xb5, 0x1e, 0xad, 0x55, 0x20, 0xaa, 0x7b, 0xa0, 0x38, 0xe7, 0xde, 0x53, 0x31, 0x41, 0x8a, 0xd5, 0x52, 0xbd, 0xcd, 0x18, 0x5f, 0x50, 0x3a, 0x85, 0x48, 0xf5, 0x5b, 0x63, 0x86, 0xe4, 0x68, 0x7c, 0xa5, 0x15, 0xf7, 0xc0, 0xee, 0xa5, 0x70, 0x98, 0x3b, 0xfb, 0x24, 0xbe, 0x16, 0xf7, 0xb3, 0x00, 0x3f, 0xb7, 0x56, 0xe3, 0x26, 0x56, 0x2f, 0x2a, 0x32, 0xfe, 0x65, 0xff, 0x84, 0x4c, 0x39, 0x84, 0xc7, 0x2e, 0x40, 0xdd, 0x49, 0xe4, 0xf3, 0xae, 0x8c, 0x0f, 0x81, 0x9a, 0x79, 0x39, 0xb2, 0xe7, 0x36, 0xe3, 0x81, 0xf5, 0x82, 0x3c, 0xbc, 0x61, 0xb2, 0xed, 0x01, 0xd9, 0xb0, 0x5c, 0xf8, 0xb1, 0x46, 0x48, 0xa4, 0x8b, 0x0d, 0x7c, 0xbe, 0x88, 0x2a, 0xc1, 0x6c, 0xad, 0xd8, 0xc4, 0x2a, 0xa2, 0xc7, 0x02, 0x46, 0x34, 0x7b, 0x4d, 0x84, 0x95, 0x36, 0xa7, 0xac, 0x22, 0xc7, 0x20, 0xda, 0x3c, 0xf1, 0x78, 0x72, 0x5e, 0xe5, 0x57, 0xa9, 0x2c, 0x25, 0xb1, 0x2b, 0x8b, 0x95, 0x6d, 0x3b, 0xf4, 0x80, 0x2e, 0x9e, 0x8a, 0x15, 0xb5, 0xab, 0x75, 0x42, 0x35, 0xcc, 0xa0, 0xe5, 0xb7, 0xe5, 0x5e, 0x4a, 0xec, 0xe4, 0x5a, 0x47, 0xe0, 0x84, 0xce, 0x14, 0x47, 0x44, 0x05, 0x98, 0xef, 0x5d, 0x4f, 0x5f, 0xdc, 0x2c, 0x98, 0xa5, 0xad, 0x13, 0x6c, 0xff, 0xbf, 0x87, 0xd3, 0xcf, 0x52, 0xf6, 0x73, 0x8c, 0xca, 0x79, 0x48, 0x35, 0x60, 0x92, 0x07, 0x8f, 0xdf, 0x25, 0x45, 0x77, 0xf5, 0x59, 0x69, 0xa0, 0xc6, 0x52, 0x46, 0xda, 0xc8, 0x09, 0xa2, 0xfc, 0xa1, 0xf6, 0x0a, 0x1d, 0x92, 0x98, 0x77, 0xb9, 0xa6, 0x54, 0x0e, 0x88, 0xa9, 0xe6, 0xe9, 0x15, 0x59, 0x38, 0xd2, 0x2c, 0x68, 0x7e, 0x63, 0xb3, 0x87, 0x53, 0x4d, 0x38, 0x5e, 0x89, 0x61, 0xe5, 0x88, 0x67, 0x43, 0xf9, 0x5f, 0x4a, 0x70, 0x80, 0xd9, 0x16, 0x62, 0x45, 0x17, 0xb1, 0x53, 0x36, 0x03, 0x0a, 0x46, 0x71, 0x4b, 0x16, 0x8b, 0x83, 0xd6, 0xf9, 0xcc, 0xe0, 0x60, 0x66, 0x49, 0xc0, 0x1f, 0x0a, 0x1d, 0x0a, 0x2a, 0x53, 0xf5, 0xe3, 0x78, 0xf6, 0xaa, 0x98, 0xc3, 0x84, 0xaa, 0xfb, 0x3e, 0xef, 0xdb, 0x34, 0x21, 0xfa, 0x3a, 0xc9, 0x8a, 0x0d, 0x3a, 0x9c, 0x02, 0x9c, 0x23, 0x00, 0xae, 0x02, 0x41, 0x06, 0x7d, 0x1a, 0x4f, 0xc9, 0x2e, 0x43, 0x86, 0x88, 0xea, 0x88, 0x9f, 0xcb, 0x1a, 0x1a, 0x9e, 0x86, 0x34, 0xb9, 0x16, 0xc6, 0x0b, 0xaa, 0x0c, 0x18, 0xbf, 0xcd, 0x13, 0x9b, 0xfe, 0x30, 0x17, 0xbf, 0xbe, 0x16, 0x29, 0x13, 0x43, 0xce, 0x86, 0x05, 0xbb, 0x78, 0x72, 0x55, 0x8c, 0x6b, 0x5f, 0xd5, 0x6d, 0xfd, 0x22, 0x15, 0x77, 0xed, 0xcf, 0xfa, 0xa8, 0xbd, 0xa3, 0x4d, 0x7a, 0x11, 0xab, 0x8c, 0xb2, 0x78, 0x28, 0x8e, 0x58, 0x34, 0x84, 0x26, 0x76, 0xfc, 0xcf, 0xfa, 0xa9, 0x11, 0x1b, 0xce, 0xd2, 0xb3, 0x57, 0x5f, 0xdd, 0x49, 0x62, 0x1b, 0x76, 0xe8, 0xd1, 0x29, 0xb6, 0x17, 0x00, 0xee, 0xab, 0x03, 0x14, 0xef, 0x94, 0xd5, 0x50, 0x50, 0x6a, 0x4b, 0x8d, 0x1e, 0xe6, 0x55, 0x08, 0xd8, 0x9d, 0x0e, 0x99, 0xe9, 0x33, 0x6b, 0x41, 0xd9, 0xf7, 0x4a, 0xa4, 0xd7, 0x22, 0x11, 0x4d, 0xe0, 0xf3, 0x1e, 0xcf, 0x00, 0xb0, 0x97, 0xf5, 0x3c, 0x9a, 0xca, 0x9c, 0x7a, 0x28, 0x5b, 0x58, 0xa3, 0x5d, 0x70, 0x29, 0x8c, 0x5c, 0x34, 0xf7, 0x4b, 0x4a, 0x70, 0x53, 0x08, 0x03, 0x31, 0x00, 0x34, 0x9f, 0x0c, 0x62, 0xf9, 0xc2, 0xeb, 0xf7, 0xde, 0xad, 0x0a, 0x77, 0xb2, 0x98, 0xeb, };
16651 static const u8 ed25519_724_test_vectors_expected_sig[] = {
16652 	0x13, 0xeb, 0xc9, 0x79, 0xa8, 0x87, 0x10, 0xe3, 0xc5, 0xf3, 0x45, 0xcf, 0xbb, 0x82, 0x48, 0x13, 0xb3, 0x08, 0xa9, 0xd5, 0xc6, 0xde, 0xe3, 0x28, 0xbf, 0xd2, 0x35, 0xa9, 0x7d, 0xe7, 0xb3, 0x26, 0xde, 0x6c, 0x73, 0x8f, 0x96, 0xf6, 0x98, 0x31, 0x94, 0x92, 0x09, 0x99, 0x68, 0x52, 0xdd, 0x9c, 0x09, 0x8d, 0x58, 0x08, 0x41, 0x87, 0x09, 0xf2, 0xbf, 0x51, 0x0d, 0x46, 0xb7, 0xf0, 0x36, 0x06, };
16653 static const ec_test_case ed25519_724_test_case = {
16654 	.name = "EDDSA25519-SHA512/wei25519 724",
16655 	.ec_str_p = &wei25519_str_params,
16656 	.priv_key = ed25519_724_test_vectors_priv_key,
16657 	.priv_key_len = sizeof(ed25519_724_test_vectors_priv_key),
16658 	.nn_random = NULL,
16659 	.hash_type = SHA512,
16660 	.msg = (const char *)ed25519_724_test_vectors_message,
16661 	.msglen = sizeof(ed25519_724_test_vectors_message),
16662 	.sig_type = EDDSA25519,
16663 	.exp_sig = ed25519_724_test_vectors_expected_sig,
16664 	.exp_siglen = sizeof(ed25519_724_test_vectors_expected_sig),
16665 	.adata = NULL,
16666 	.adata_len = 0
16667 };
16668 
16669 /************************************************/
16670 static const u8 ed25519_725_test_vectors_priv_key[] = {
16671 	0x1a, 0x7a, 0x3c, 0x2f, 0x54, 0x81, 0x13, 0x1b, 0xe5, 0xf8, 0x68, 0x45, 0x6a, 0xa2, 0xfa, 0x90, 0xe5, 0x6d, 0x52, 0xcb, 0x72, 0x1c, 0x71, 0x84, 0xeb, 0xff, 0x06, 0xfe, 0xd2, 0xfe, 0x68, 0x5d, };
16672 static const u8 ed25519_725_test_vectors_message[] = {
16673 	0xc6, 0x28, 0x34, 0xd9, 0xd5, 0x5d, 0x1a, 0x44, 0x03, 0xe9, 0x25, 0xd0, 0xa5, 0xb5, 0x52, 0xda, 0x17, 0x4c, 0x02, 0xf4, 0xe9, 0x45, 0xde, 0xc3, 0x38, 0xc1, 0xbb, 0xb2, 0xae, 0xb4, 0xff, 0x40, 0x02, 0x0e, 0xf7, 0x0f, 0xf5, 0x05, 0x20, 0x5c, 0xf8, 0x81, 0xb6, 0x29, 0x96, 0x0a, 0xbd, 0x62, 0x76, 0x4e, 0x5a, 0x54, 0xf2, 0xb5, 0x10, 0x56, 0x67, 0xb1, 0x1c, 0x7d, 0x5b, 0x7a, 0x4c, 0xcc, 0x3f, 0x48, 0x8b, 0xdd, 0xdb, 0x95, 0x8a, 0x7b, 0xe9, 0x54, 0x62, 0x07, 0xe6, 0xc4, 0x67, 0x18, 0x97, 0xc0, 0x53, 0x50, 0x8e, 0x1f, 0xd8, 0x32, 0x22, 0x13, 0x0a, 0x79, 0x33, 0x97, 0x6d, 0x2b, 0xec, 0x61, 0x4e, 0xd8, 0xf9, 0xb6, 0xa6, 0xb9, 0xf4, 0xef, 0xb2, 0xa5, 0x8b, 0x9d, 0x00, 0x5b, 0x94, 0x3e, 0x42, 0xf1, 0x71, 0xb7, 0x09, 0xa7, 0x31, 0x30, 0x70, 0xcb, 0x2e, 0x06, 0x8d, 0xa3, 0x9c, 0xf9, 0x99, 0x22, 0xb6, 0x9e, 0x28, 0x5c, 0x82, 0xad, 0x97, 0xf2, 0xd6, 0xc7, 0x79, 0x22, 0xca, 0xe2, 0xb5, 0xe3, 0x20, 0xe8, 0x35, 0x77, 0xc0, 0xd0, 0x88, 0x76, 0x1e, 0xc8, 0x81, 0x52, 0xc2, 0x97, 0x49, 0x29, 0x78, 0xa9, 0xd7, 0xa3, 0xff, 0x67, 0xed, 0xe4, 0x4c, 0x2a, 0x70, 0x7c, 0xf3, 0xe2, 0x35, 0x2e, 0x23, 0x2f, 0x53, 0xc8, 0x78, 0x2b, 0xa4, 0x89, 0x28, 0xa9, 0x7f, 0x8a, 0x36, 0xb2, 0x0a, 0x41, 0x68, 0x16, 0xe9, 0x45, 0x79, 0xb9, 0xd7, 0x25, 0x0a, 0x29, 0xdc, 0x84, 0x70, 0xf6, 0x3a, 0x70, 0x58, 0xe2, 0xd2, 0xa9, 0x9d, 0x6f, 0x0c, 0xcb, 0x53, 0x0d, 0xf5, 0x96, 0x95, 0x05, 0xef, 0x5c, 0x78, 0x44, 0xeb, 0x16, 0x7d, 0x20, 0xf4, 0x12, 0xa5, 0x08, 0xfa, 0xb1, 0xf8, 0xcd, 0x9c, 0x20, 0xc5, 0xeb, 0x9a, 0x41, 0x7a, 0x54, 0x12, 0xb5, 0xda, 0x6a, 0x57, 0x13, 0x57, 0x59, 0xfa, 0xb1, 0x7f, 0x63, 0x14, 0xf6, 0x8d, 0xf3, 0x5b, 0x17, 0x72, 0x42, 0x14, 0x43, 0x67, 0x6f, 0x31, 0x25, 0x79, 0xaf, 0x6b, 0x14, 0x11, 0x53, 0x5a, 0xda, 0x8f, 0x76, 0x01, 0x2b, 0x69, 0xbb, 0xeb, 0x60, 0xb2, 0x89, 0x7e, 0xe6, 0x60, 0x7c, 0xb3, 0x69, 0xcd, 0xf5, 0x2f, 0x4f, 0x6d, 0xdf, 0x88, 0xcd, 0xb2, 0x63, 0x0d, 0x78, 0x89, 0x6f, 0x13, 0x61, 0xfe, 0xa2, 0x2a, 0xe6, 0x34, 0x21, 0x76, 0x96, 0xff, 0x11, 0x4f, 0xb4, 0x2d, 0xbe, 0x4f, 0x43, 0x46, 0xf1, 0xbe, 0x5b, 0x57, 0xad, 0xb3, 0x84, 0xae, 0x7e, 0x49, 0xb4, 0x1f, 0x74, 0xb3, 0x1b, 0x9a, 0x62, 0xbc, 0x69, 0xdc, 0xa1, 0x65, 0x89, 0xc6, 0x34, 0xeb, 0x9d, 0x7c, 0x6c, 0x94, 0xf8, 0xec, 0xe4, 0x4b, 0x60, 0x62, 0x8f, 0x98, 0xe1, 0x02, 0x4c, 0xf3, 0x2e, 0x3e, 0x3d, 0xd6, 0xdc, 0xe5, 0x5a, 0x12, 0x22, 0x53, 0x2f, 0x49, 0x0d, 0x63, 0xe6, 0xa2, 0x75, 0x28, 0x1c, 0x0f, 0x3a, 0x6c, 0x10, 0x18, 0x91, 0xb8, 0xd5, 0x7a, 0x45, 0xde, 0x11, 0xde, 0x35, 0xeb, 0xb1, 0x51, 0xc0, 0xdc, 0xd7, 0x5e, 0x6c, 0x05, 0x0b, 0x3c, 0xd8, 0xba, 0xba, 0xe8, 0x45, 0xc3, 0x9f, 0x66, 0xc3, 0x6c, 0x77, 0xcd, 0xe0, 0x5b, 0x68, 0x3e, 0x4f, 0xb0, 0x10, 0x3d, 0x93, 0xe7, 0x65, 0x93, 0x35, 0xc8, 0x7f, 0xc0, 0xe3, 0x23, 0x5b, 0x2e, 0x82, 0x48, 0x8c, 0xda, 0xbe, 0xb5, 0xc5, 0xc8, 0x75, 0x80, 0x87, 0x45, 0xee, 0xa9, 0x2d, 0xe8, 0x6b, 0x8e, 0xfc, 0xb6, 0x3e, 0x16, 0xd0, 0x82, 0x91, 0x9a, 0xee, 0x2e, 0x92, 0x89, 0x9c, 0xb0, 0xbc, 0xf1, 0xc1, 0x42, 0x15, 0x77, 0xa4, 0xa0, 0xd9, 0xdb, 0x09, 0xee, 0x1f, 0x9f, 0xeb, 0x92, 0xa5, 0x38, 0x21, 0x03, 0xcf, 0x7c, 0x32, 0xcf, 0xe4, 0x63, 0x72, 0x5a, 0xe4, 0x86, 0x6d, 0xaa, 0xfe, 0xda, 0x05, 0x34, 0xc1, 0x69, 0xf8, 0xf9, 0xbe, 0x40, 0x4f, 0x3b, 0xaa, 0xe1, 0x23, 0xfa, 0x76, 0x8a, 0xce, 0x46, 0x17, 0x8d, 0x4b, 0x9b, 0xbc, 0x5b, 0xd7, 0xae, 0xec, 0x79, 0x03, 0xb0, 0xa5, 0xbc, 0x57, 0x53, 0x89, 0x86, 0xee, 0x09, 0xe0, 0x7e, 0x32, 0x07, 0x7b, 0x3b, 0x9d, 0xe5, 0x0d, 0xd1, 0x96, 0x7a, 0x37, 0x2c, 0x38, 0x5a, 0xc8, 0x86, 0x28, 0x7c, 0x18, 0x45, 0x1a, 0x64, 0xef, 0xb3, 0x7d, 0x05, 0x6f, 0x9f, 0x41, 0x94, 0xc0, 0x8b, 0x1e, 0x3e, 0xc9, 0x70, 0x22, 0x26, 0x7b, 0xf0, 0x04, 0x3c, 0x13, 0xd2, 0x6b, 0x9c, 0xe1, 0xf5, 0x39, 0x05, 0xf6, 0xe4, 0x1b, 0x3d, 0x99, 0xdc, 0x81, 0xb3, 0x31, 0x90, 0x9b, 0x72, 0x26, 0x66, 0xef, 0x24, 0x32, 0xe6, 0xaf, 0x8a, 0x45, 0x31, 0x07, 0x53, 0x12, 0x30, 0xce, 0x4a, 0x1a, 0xf8, 0xee, 0xd6, 0x26, 0xda, 0x22, 0x3d, 0xa7, 0x6b, 0x46, 0x50, 0x7e, 0x33, 0xd7, 0xcd, 0xbd, 0xe0, 0x2d, 0x41, 0x10, 0x40, 0xc8, 0x9a, 0x11, 0xd9, 0x51, 0x56, 0xed, 0x4a, 0xc2, 0x60, 0x5b, 0x82, 0x69, 0x39, 0xc6, 0xcf, 0x87, 0x7b, 0x4e, 0xe7, 0x36, 0xc5, 0xda, 0x77, 0xcf, 0x46, 0x50, 0xa9, 0x99, 0x7a, 0x3b, 0x9c, 0xf4, 0x6a, 0x82, 0xba, 0x2b, 0xc0, 0x13, 0x33, 0xc0, 0x44, 0x78, 0xb5, 0xc9, 0x2e, 0x24, 0x98, 0xbd, 0x00, 0x2f, 0x01, 0x31, 0x40, 0xae, 0xdb, 0x30, 0x1b, 0x95, 0x99, 0x3d, 0x1d, 0x75, 0x08, 0x70, 0xd9, 0x88, };
16674 static const u8 ed25519_725_test_vectors_expected_sig[] = {
16675 	0x97, 0x61, 0x60, 0xfb, 0x5b, 0xbd, 0xab, 0xe5, 0xc8, 0x96, 0x2f, 0x23, 0xba, 0xba, 0xcf, 0x0b, 0x0a, 0xb4, 0x1c, 0x2b, 0xb1, 0x3e, 0x9c, 0x0d, 0x44, 0x90, 0x67, 0xb7, 0xde, 0xcc, 0x7d, 0xb4, 0xe9, 0x4e, 0x76, 0xa7, 0x1b, 0x9c, 0x0a, 0xc4, 0xd6, 0xaf, 0x38, 0x7a, 0x72, 0xa8, 0xcd, 0x73, 0xe3, 0xbc, 0x63, 0xb7, 0xed, 0x65, 0x0b, 0xee, 0xbf, 0x17, 0x42, 0x4c, 0x49, 0x0b, 0xd6, 0x0d, };
16676 static const ec_test_case ed25519_725_test_case = {
16677 	.name = "EDDSA25519-SHA512/wei25519 725",
16678 	.ec_str_p = &wei25519_str_params,
16679 	.priv_key = ed25519_725_test_vectors_priv_key,
16680 	.priv_key_len = sizeof(ed25519_725_test_vectors_priv_key),
16681 	.nn_random = NULL,
16682 	.hash_type = SHA512,
16683 	.msg = (const char *)ed25519_725_test_vectors_message,
16684 	.msglen = sizeof(ed25519_725_test_vectors_message),
16685 	.sig_type = EDDSA25519,
16686 	.exp_sig = ed25519_725_test_vectors_expected_sig,
16687 	.exp_siglen = sizeof(ed25519_725_test_vectors_expected_sig),
16688 	.adata = NULL,
16689 	.adata_len = 0
16690 };
16691 
16692 /************************************************/
16693 static const u8 ed25519_726_test_vectors_priv_key[] = {
16694 	0x19, 0x1a, 0x1d, 0x90, 0x32, 0x1c, 0x7f, 0x4e, 0x74, 0x94, 0xbb, 0x98, 0x29, 0x09, 0xa9, 0xeb, 0x40, 0xc3, 0x34, 0x1d, 0xd3, 0x2a, 0xe4, 0xd9, 0x67, 0x50, 0xb7, 0xd0, 0x29, 0x66, 0xb4, 0x0f, };
16695 static const u8 ed25519_726_test_vectors_message[] = {
16696 	0x85, 0x89, 0x0d, 0xb4, 0xe2, 0xfb, 0xce, 0x09, 0x3d, 0xde, 0x5a, 0x80, 0xbf, 0x8f, 0xe0, 0x9a, 0x98, 0x4b, 0x83, 0xa4, 0x9b, 0x7c, 0xcb, 0x5d, 0x4b, 0x06, 0xcd, 0xaf, 0xdd, 0xd3, 0x82, 0xe4, 0xb8, 0xa8, 0xa5, 0x05, 0x30, 0xe8, 0x2c, 0x20, 0x06, 0x12, 0xc9, 0xd7, 0xd8, 0xa0, 0x89, 0xbc, 0x8a, 0xa8, 0x45, 0xc3, 0xcf, 0xcc, 0x38, 0xa6, 0x19, 0x5d, 0x21, 0xc2, 0x61, 0x8c, 0x3d, 0xba, 0x2b, 0x57, 0x09, 0x20, 0xec, 0xcf, 0xcd, 0x23, 0x6f, 0x17, 0xf0, 0x8d, 0x81, 0x42, 0x68, 0xf8, 0x82, 0x24, 0x2d, 0xdf, 0x07, 0x02, 0xda, 0x87, 0x85, 0xf4, 0x07, 0xaa, 0x8f, 0x86, 0xfe, 0xcf, 0xa9, 0x03, 0xc4, 0x8d, 0xa8, 0x3f, 0x83, 0x97, 0x77, 0xeb, 0x6b, 0x4a, 0x2b, 0xbf, 0x5d, 0xf7, 0xa4, 0xda, 0x53, 0x47, 0x5a, 0xf1, 0xff, 0xe4, 0x4b, 0x5f, 0xe0, 0x07, 0x2b, 0x8f, 0xbf, 0x3d, 0x26, 0xe6, 0xd8, 0x9e, 0xa6, 0x7d, 0x8a, 0xc8, 0x45, 0x94, 0x92, 0x89, 0x0a, 0xda, 0x65, 0x7e, 0xb3, 0xdc, 0x24, 0x92, 0xb8, 0x8d, 0xe1, 0x75, 0xb4, 0xbb, 0xa1, 0xa5, 0x08, 0x06, 0x4d, 0x61, 0x96, 0x74, 0xaa, 0xae, 0x2a, 0xf0, 0x9d, 0x31, 0xa5, 0xc2, 0x7c, 0x8d, 0x5d, 0x5a, 0x29, 0xb0, 0x37, 0x79, 0xf4, 0x28, 0x6b, 0x89, 0x66, 0xce, 0x40, 0x7e, 0x6f, 0xf6, 0x92, 0xfb, 0x94, 0x25, 0x20, 0xa9, 0x93, 0x8d, 0x69, 0xcc, 0x70, 0xac, 0xb0, 0x6b, 0x01, 0x4b, 0x6d, 0xfc, 0x19, 0x83, 0x42, 0x06, 0xcf, 0x1a, 0xc6, 0xc4, 0x48, 0xae, 0x6f, 0x07, 0x80, 0x25, 0xb5, 0x5f, 0x3d, 0x82, 0x72, 0x01, 0x26, 0x8a, 0x92, 0xad, 0xd9, 0xad, 0x17, 0x8e, 0xf7, 0x6a, 0x29, 0x89, 0xfe, 0xdc, 0x6e, 0x39, 0xf4, 0xeb, 0xb9, 0xf9, 0x6c, 0x9b, 0x83, 0x52, 0x69, 0x4f, 0xa5, 0x4f, 0xa0, 0x22, 0x01, 0x9c, 0x0e, 0xc0, 0x01, 0x2d, 0x0d, 0x76, 0x9e, 0x23, 0x67, 0x80, 0x3f, 0x92, 0x5f, 0x17, 0x5f, 0x9f, 0xb9, 0xcb, 0xec, 0x4a, 0x0c, 0x9c, 0x1e, 0x2c, 0x83, 0xea, 0x57, 0xe6, 0xa9, 0x2a, 0x17, 0xf5, 0x55, 0xca, 0xb9, 0x34, 0x27, 0x1e, 0x72, 0xc8, 0xcc, 0x32, 0x15, 0xfc, 0xb8, 0x7c, 0x20, 0x53, 0x9b, 0xf1, 0x42, 0x77, 0xb1, 0xbf, 0xbd, 0x6e, 0x58, 0x80, 0xef, 0x95, 0x3f, 0xc7, 0x5f, 0x23, 0xc0, 0xdd, 0x4f, 0xcc, 0x1e, 0x0b, 0xe3, 0x40, 0xaf, 0x94, 0x7d, 0xe0, 0x2e, 0x87, 0x7f, 0xd5, 0xc7, 0x7d, 0xd1, 0xdf, 0x7b, 0x41, 0x4b, 0x5c, 0x0b, 0x40, 0xc7, 0x49, 0x56, 0xa5, 0x45, 0xa1, 0x15, 0xb0, 0xc6, 0x99, 0x3a, 0xb2, 0x33, 0xb7, 0xe7, 0x2c, 0x82, 0x2b, 0x6b, 0x33, 0x81, 0xbb, 0x1f, 0xc1, 0x08, 0x75, 0xbf, 0xfe, 0x3e, 0x2e, 0xd1, 0x19, 0x0f, 0xa3, 0x3f, 0xc1, 0x5d, 0xa0, 0x83, 0x79, 0x4f, 0xcc, 0x2c, 0x5b, 0xf5, 0xa0, 0x79, 0x09, 0x06, 0x3c, 0xb2, 0x89, 0xa0, 0x8a, 0x2c, 0x8a, 0x33, 0xd3, 0x43, 0x84, 0x2c, 0x2d, 0x6a, 0x3c, 0xfa, 0x2a, 0x16, 0xca, 0x2e, 0xaf, 0xca, 0xb7, 0xea, 0x10, 0x0d, 0x1c, 0x71, 0x4b, 0xaa, 0xbb, 0x71, 0x49, 0xf0, 0x7e, 0x25, 0xde, 0xe3, 0x23, 0xe7, 0x80, 0x75, 0x7d, 0xfa, 0x80, 0x16, 0xfa, 0xa7, 0xc0, 0x62, 0x62, 0x22, 0xc3, 0x65, 0xf8, 0xf2, 0xf6, 0x68, 0x7d, 0x1d, 0xed, 0x23, 0x4f, 0x79, 0x9c, 0xc5, 0x0d, 0x1c, 0xd2, 0x6b, 0x4c, 0xfa, 0x40, 0x45, 0x91, 0x70, 0x56, 0xfc, 0x79, 0xc3, 0xb8, 0x8b, 0x2b, 0x19, 0x08, 0xe3, 0x72, 0xdf, 0x66, 0xda, 0xc8, 0x73, 0x46, 0x31, 0x64, 0x83, 0x49, 0xbc, 0x37, 0xfa, 0x34, 0xb2, 0x5f, 0xff, 0x3b, 0x07, 0x47, 0xb6, 0xbc, 0x16, 0xb9, 0x4e, 0x3e, 0x58, 0x95, 0xe4, 0xbb, 0xd9, 0x3d, 0x47, 0x8a, 0x6c, 0x1f, 0x75, 0xe4, 0xfa, 0x30, 0xfa, 0xa9, 0x22, 0x04, 0x9e, 0xd4, 0xc5, 0x0f, 0x12, 0xf4, 0xb3, 0x12, 0xa8, 0x97, 0x4d, 0x0f, 0xed, 0x8d, 0x44, 0x25, 0x5d, 0xcb, 0x2b, 0xf0, 0xfe, 0xbe, 0x47, 0xfb, 0x3f, 0xb8, 0xed, 0x99, 0x03, 0xb5, 0xba, 0x4c, 0xa1, 0x8e, 0x3c, 0xc6, 0x76, 0x2c, 0xfa, 0x1e, 0xaf, 0x04, 0xdf, 0xa9, 0x44, 0xd4, 0x96, 0xe0, 0xfe, 0x8b, 0xb7, 0xdc, 0x04, 0x54, 0x51, 0x39, 0x6b, 0xfa, 0xba, 0x54, 0x85, 0xd9, 0xd5, 0xf3, 0x91, 0xa9, 0x54, 0xc3, 0x71, 0x42, 0x53, 0xcc, 0xd9, 0xb1, 0x99, 0x64, 0xd4, 0x28, 0x06, 0x80, 0x72, 0x07, 0x83, 0x03, 0x6b, 0x3a, 0xbf, 0xaf, 0x28, 0x84, 0x58, 0x3e, 0xa5, 0xbd, 0xbc, 0xf6, 0x9d, 0x08, 0x89, 0x7a, 0xb2, 0x88, 0x31, 0x46, 0x35, 0xab, 0xb4, 0xc2, 0x96, 0x4b, 0x71, 0xad, 0x92, 0x91, 0xfe, 0xb5, 0xb6, 0x1f, 0x80, 0xe9, 0xb0, 0xcc, 0x07, 0xf9, 0x12, 0xa8, 0xe5, 0x59, 0x8d, 0x55, 0x48, 0xde, 0xfe, 0x0e, 0xea, 0x1c, 0x44, 0x85, 0x73, 0x71, 0x0a, 0xac, 0xdd, 0xb1, 0x52, 0xf9, 0x3c, 0x7c, 0x6f, 0xd3, 0xf7, 0xe4, 0xed, 0x9f, 0x74, 0x42, 0xa6, 0xb9, 0x00, 0xf2, 0x3c, 0x3c, 0x54, 0x4c, 0xe5, 0xc9, 0xba, 0x5f, 0x5e, 0x92, 0xaa, 0xfd, 0x11, 0xc9, 0xff, 0x5f, 0x79, 0xc0, 0x8b, 0x9d, 0x04, 0x5f, 0xef, 0x07, 0x97, 0x06, 0x25, 0xf6, 0x2e, 0x2f, 0x43, 0x34, 0xa4, 0xd6, 0x64, 0xca, 0xf7, };
16697 static const u8 ed25519_726_test_vectors_expected_sig[] = {
16698 	0x74, 0xcb, 0x02, 0x8d, 0xc6, 0xb7, 0x5b, 0x37, 0xa1, 0xda, 0xea, 0x1c, 0xf8, 0x84, 0x65, 0xdb, 0x83, 0xa0, 0x09, 0x3f, 0xec, 0xb2, 0x2d, 0x99, 0xba, 0x85, 0x5e, 0x9a, 0xb5, 0x9d, 0x05, 0xcb, 0x22, 0xc8, 0x7d, 0x0b, 0x09, 0xdf, 0x7c, 0x11, 0x62, 0x13, 0xba, 0xa8, 0xf1, 0x89, 0xb2, 0x70, 0x3f, 0xf9, 0x53, 0xcd, 0x20, 0x2e, 0xb9, 0xde, 0xa3, 0x97, 0x6e, 0xe8, 0x8f, 0x5f, 0xa7, 0x03, };
16699 static const ec_test_case ed25519_726_test_case = {
16700 	.name = "EDDSA25519-SHA512/wei25519 726",
16701 	.ec_str_p = &wei25519_str_params,
16702 	.priv_key = ed25519_726_test_vectors_priv_key,
16703 	.priv_key_len = sizeof(ed25519_726_test_vectors_priv_key),
16704 	.nn_random = NULL,
16705 	.hash_type = SHA512,
16706 	.msg = (const char *)ed25519_726_test_vectors_message,
16707 	.msglen = sizeof(ed25519_726_test_vectors_message),
16708 	.sig_type = EDDSA25519,
16709 	.exp_sig = ed25519_726_test_vectors_expected_sig,
16710 	.exp_siglen = sizeof(ed25519_726_test_vectors_expected_sig),
16711 	.adata = NULL,
16712 	.adata_len = 0
16713 };
16714 
16715 /************************************************/
16716 static const u8 ed25519_727_test_vectors_priv_key[] = {
16717 	0x62, 0x85, 0x63, 0xaa, 0x3e, 0xe2, 0xfc, 0x61, 0x1b, 0xcf, 0xf7, 0x8b, 0xfb, 0x2a, 0x75, 0xe9, 0xfd, 0x87, 0x80, 0xe8, 0x7a, 0x93, 0x94, 0x99, 0xa6, 0x1b, 0xea, 0xa6, 0xa4, 0xb7, 0x19, 0x13, };
16718 static const u8 ed25519_727_test_vectors_message[] = {
16719 	0x05, 0x6f, 0xb9, 0x54, 0xfb, 0xe6, 0xa6, 0x01, 0x4f, 0xad, 0xac, 0x1e, 0x1a, 0x9f, 0x56, 0xcc, 0x08, 0xaf, 0x37, 0x34, 0x8e, 0xba, 0xf6, 0x92, 0x06, 0x83, 0x38, 0x4e, 0xfa, 0x47, 0x62, 0x6c, 0xcd, 0xdf, 0xea, 0xd2, 0xd5, 0xe9, 0xe8, 0xcf, 0xff, 0x45, 0xf7, 0xac, 0x63, 0xde, 0x63, 0xf6, 0x9d, 0x12, 0x84, 0x8c, 0xe3, 0xc0, 0xef, 0x1f, 0x53, 0x0a, 0xde, 0x43, 0x0f, 0x0a, 0xfd, 0x5d, 0x8e, 0xcf, 0xd9, 0xff, 0xd6, 0x0a, 0x79, 0x74, 0x6a, 0x2c, 0x5b, 0xee, 0xdd, 0x3e, 0x67, 0x24, 0x99, 0x82, 0xf8, 0xb6, 0x09, 0x2e, 0xe2, 0xd3, 0x40, 0x47, 0xaf, 0x88, 0xa8, 0x1f, 0xea, 0xb5, 0xd5, 0x2b, 0x47, 0xd5, 0xb3, 0xf7, 0x6c, 0x20, 0x41, 0x72, 0x5f, 0x6f, 0x81, 0x32, 0x93, 0x05, 0x0a, 0xaa, 0x83, 0x4b, 0x01, 0xa3, 0xa5, 0x8f, 0x69, 0xaa, 0x4a, 0x8c, 0xa6, 0x1f, 0x5b, 0x74, 0x6f, 0x60, 0x0f, 0x3d, 0x45, 0x2c, 0x62, 0x82, 0xff, 0xdc, 0xa4, 0x42, 0x9b, 0x93, 0x38, 0x96, 0x7b, 0xa3, 0xa7, 0x26, 0x66, 0x90, 0xae, 0xc7, 0x5e, 0xbf, 0xbf, 0x7b, 0xe9, 0x8d, 0x99, 0x9b, 0x03, 0xed, 0xdc, 0x72, 0x92, 0x58, 0x1b, 0x0d, 0x69, 0xe3, 0x0a, 0x03, 0x51, 0xa1, 0x51, 0xdb, 0x70, 0x41, 0x2b, 0x0b, 0xfd, 0x43, 0xd3, 0xba, 0xa9, 0xd4, 0x56, 0xcb, 0x3e, 0x0b, 0x4f, 0xc1, 0x9c, 0xb0, 0x9e, 0x6c, 0xad, 0xcb, 0x6d, 0x3f, 0x3b, 0xe5, 0x13, 0x7c, 0xc7, 0xa8, 0xd3, 0x21, 0x9e, 0xc2, 0x03, 0x6e, 0xc6, 0x70, 0xed, 0x7e, 0xc5, 0x23, 0xb1, 0xb1, 0xc6, 0x87, 0xb5, 0x46, 0x53, 0x07, 0x88, 0x2f, 0xe3, 0x8d, 0x74, 0x72, 0xd0, 0xba, 0x87, 0xa4, 0x71, 0x86, 0x83, 0x09, 0xd2, 0xf7, 0x73, 0xff, 0x24, 0xc8, 0x7d, 0x39, 0xc1, 0x6b, 0x70, 0x8a, 0x4e, 0xd9, 0xaf, 0x43, 0xf7, 0x4c, 0x8d, 0x85, 0xcf, 0xe8, 0xab, 0x54, 0x06, 0x90, 0x7e, 0x94, 0x1a, 0x14, 0x97, 0x0e, 0x20, 0x9c, 0x29, 0xff, 0x7e, 0xd8, 0xa2, 0xf9, 0x35, 0xae, 0x41, 0x70, 0x9f, 0x27, 0x0d, 0x0d, 0x08, 0x55, 0x5e, 0xf7, 0xaf, 0x2e, 0xdf, 0xe4, 0x0d, 0xf3, 0x99, 0x22, 0x3c, 0x78, 0x5a, 0x43, 0xe7, 0xf3, 0x69, 0x15, 0x89, 0xe2, 0xea, 0x4c, 0x03, 0x6f, 0x11, 0xd0, 0x3d, 0x7d, 0x1e, 0xea, 0x14, 0xf6, 0x20, 0x03, 0x53, 0x25, 0xcf, 0x2b, 0x33, 0xba, 0xf3, 0x86, 0x39, 0x3e, 0x8a, 0x97, 0x2a, 0x7a, 0xf6, 0xcd, 0x9b, 0x85, 0x43, 0xb3, 0x2e, 0x25, 0x33, 0xd1, 0xfc, 0xc3, 0x17, 0x7f, 0xd9, 0x6d, 0x1e, 0x13, 0xbf, 0x8b, 0x68, 0xde, 0xb2, 0x22, 0xf9, 0x44, 0x97, 0x26, 0x5d, 0x3c, 0xcb, 0x34, 0x57, 0x51, 0xbd, 0x5b, 0x66, 0x90, 0x78, 0x08, 0x19, 0x98, 0xd6, 0x08, 0xca, 0x5f, 0xdc, 0x13, 0x48, 0x39, 0xd4, 0xed, 0x2b, 0xeb, 0xb2, 0x95, 0x2f, 0xea, 0x5a, 0x39, 0xc6, 0xf0, 0x33, 0xc1, 0x55, 0x8f, 0x69, 0x8c, 0xe4, 0x94, 0x6e, 0x4f, 0x6c, 0x08, 0xaf, 0x87, 0x4f, 0x27, 0x35, 0x7f, 0x87, 0x0e, 0xbe, 0xeb, 0x21, 0x99, 0x97, 0x6f, 0xfa, 0xef, 0xac, 0x95, 0x1f, 0x8e, 0x17, 0xfe, 0x7d, 0x08, 0x21, 0xe1, 0xb9, 0x2a, 0x90, 0xaa, 0x4e, 0x9d, 0xef, 0xd3, 0xfa, 0xfd, 0xa0, 0x52, 0xa4, 0x44, 0x47, 0x6d, 0xb1, 0xce, 0x38, 0xa9, 0xe1, 0x76, 0xe8, 0x41, 0x18, 0x9a, 0xbd, 0x8f, 0xec, 0xde, 0x0f, 0xbc, 0x5c, 0xb5, 0x5f, 0x51, 0x1f, 0x5f, 0xde, 0x07, 0xea, 0x97, 0xde, 0xb3, 0x9b, 0x7a, 0xa8, 0xdc, 0x84, 0xa3, 0x94, 0x6a, 0x6c, 0xf9, 0x26, 0xd3, 0x9b, 0x95, 0xc1, 0x1a, 0xf9, 0xd6, 0x4d, 0x98, 0xb8, 0x07, 0xf4, 0x70, 0x4d, 0x0a, 0x2b, 0xda, 0x97, 0xda, 0xd9, 0x88, 0x1a, 0xda, 0x1b, 0xf6, 0x63, 0x63, 0x66, 0xe6, 0x0a, 0x52, 0x2b, 0x48, 0x21, 0x04, 0x78, 0x61, 0xc7, 0xaa, 0xe2, 0x14, 0x6a, 0x02, 0xee, 0xf6, 0xb2, 0x5d, 0x51, 0x37, 0x1a, 0x0f, 0x17, 0xd2, 0x4b, 0xc1, 0x87, 0xdc, 0xdd, 0x05, 0xd5, 0x41, 0xc2, 0xf7, 0x22, 0x01, 0x42, 0x79, 0x15, 0xa3, 0x92, 0x8c, 0xd3, 0x78, 0x68, 0x91, 0x03, 0xac, 0x50, 0xb3, 0x3f, 0x87, 0xa4, 0x7e, 0x8c, 0xdf, 0xa6, 0x87, 0xa5, 0xf0, 0xaf, 0x8a, 0x56, 0x73, 0x1d, 0xab, 0xe6, 0x62, 0xf4, 0xf2, 0x83, 0x6d, 0xe0, 0xba, 0x8f, 0xaf, 0xd8, 0x6a, 0x38, 0x54, 0xbc, 0xa0, 0x12, 0xd7, 0x08, 0x8a, 0x00, 0xb9, 0x85, 0x4c, 0x2d, 0x3c, 0x70, 0x8d, 0xdf, 0x58, 0xfa, 0xa3, 0x55, 0xa8, 0x9a, 0xfc, 0x2c, 0x80, 0xf3, 0xf5, 0x33, 0x6d, 0xa0, 0x1d, 0x72, 0xa2, 0x77, 0x1a, 0x05, 0x58, 0x13, 0xfb, 0x35, 0x33, 0x0f, 0x7d, 0x2e, 0x01, 0xb1, 0xd1, 0x2d, 0xaa, 0x95, 0xed, 0x55, 0xd3, 0xbd, 0xc5, 0xdf, 0x77, 0x39, 0xcb, 0xc3, 0xca, 0x09, 0x7a, 0x41, 0xb6, 0xb2, 0xbd, 0x7f, 0x0f, 0xf9, 0xdd, 0x1d, 0x86, 0x58, 0x98, 0x3b, 0xa3, 0xff, 0x79, 0x20, 0xc1, 0x5f, 0x29, 0x2a, 0x1e, 0xf9, 0xfc, 0xad, 0xa1, 0xc6, 0x07, 0xec, 0xb4, 0x5d, 0x3a, 0x73, 0xc9, 0xff, 0xd4, 0x2f, 0x3e, 0x16, 0x02, 0x2f, 0xdf, 0xe1, 0x27, 0x44, 0x92, 0x63, 0x95, 0xf7, 0x4f, 0xb3, 0x11, 0x17, 0x93, 0xfa, 0x92, 0x81, 0x82, 0x1a, 0x66, 0xa0, 0x1d, };
16720 static const u8 ed25519_727_test_vectors_expected_sig[] = {
16721 	0xc9, 0xa6, 0xaa, 0xa9, 0xb4, 0xe1, 0xcc, 0xe1, 0xb5, 0x84, 0x45, 0x72, 0x5f, 0x61, 0xf5, 0x52, 0xc8, 0xfb, 0x45, 0x83, 0x1f, 0x03, 0x48, 0x27, 0x98, 0xf0, 0x1f, 0x66, 0x3e, 0x99, 0x83, 0xdb, 0x1a, 0x82, 0xfd, 0x33, 0xab, 0xa3, 0xec, 0xcb, 0x96, 0x22, 0x64, 0x26, 0xd5, 0x0a, 0xe1, 0x7c, 0xc5, 0x12, 0x74, 0xce, 0x18, 0xa3, 0x88, 0x60, 0xf4, 0x0b, 0x2f, 0x82, 0x36, 0x1b, 0x5c, 0x03, };
16722 static const ec_test_case ed25519_727_test_case = {
16723 	.name = "EDDSA25519-SHA512/wei25519 727",
16724 	.ec_str_p = &wei25519_str_params,
16725 	.priv_key = ed25519_727_test_vectors_priv_key,
16726 	.priv_key_len = sizeof(ed25519_727_test_vectors_priv_key),
16727 	.nn_random = NULL,
16728 	.hash_type = SHA512,
16729 	.msg = (const char *)ed25519_727_test_vectors_message,
16730 	.msglen = sizeof(ed25519_727_test_vectors_message),
16731 	.sig_type = EDDSA25519,
16732 	.exp_sig = ed25519_727_test_vectors_expected_sig,
16733 	.exp_siglen = sizeof(ed25519_727_test_vectors_expected_sig),
16734 	.adata = NULL,
16735 	.adata_len = 0
16736 };
16737 
16738 /************************************************/
16739 static const u8 ed25519_728_test_vectors_priv_key[] = {
16740 	0x91, 0x41, 0xf7, 0x9e, 0xd3, 0x0b, 0xf6, 0x00, 0x61, 0x1a, 0x13, 0xf3, 0x67, 0xb4, 0x03, 0x96, 0xf2, 0xec, 0x83, 0x9c, 0x56, 0x12, 0xbb, 0xf1, 0xe6, 0xe4, 0x97, 0xf8, 0x39, 0x54, 0xbc, 0x88, };
16741 static const u8 ed25519_728_test_vectors_message[] = {
16742 	0x8f, 0xec, 0xaa, 0x7a, 0xe9, 0xa3, 0xd4, 0xa4, 0x85, 0x1a, 0x66, 0x36, 0x2b, 0x36, 0x6e, 0x16, 0x7b, 0x9f, 0x43, 0x00, 0xfd, 0xab, 0x20, 0x56, 0x54, 0x75, 0x19, 0x87, 0xf0, 0x85, 0xde, 0x61, 0xbe, 0xc9, 0x34, 0x4a, 0xa8, 0x6f, 0x5e, 0x5c, 0x64, 0x77, 0x51, 0x4c, 0x28, 0x04, 0xce, 0xd7, 0xac, 0x0c, 0xd0, 0x62, 0x85, 0x29, 0xa3, 0xa1, 0x59, 0x92, 0x36, 0xed, 0x67, 0xbe, 0xbe, 0x1f, 0x2e, 0x95, 0xaa, 0x15, 0x1f, 0xe0, 0xf3, 0xb3, 0x01, 0x1a, 0x1d, 0x4b, 0xe9, 0x90, 0x1c, 0xaf, 0xab, 0x2f, 0x18, 0x91, 0x90, 0x4d, 0x4b, 0xff, 0x01, 0x28, 0xc1, 0xd3, 0x5e, 0xce, 0xcb, 0x32, 0x2b, 0x3c, 0xc0, 0x1d, 0xac, 0xc5, 0xae, 0x3d, 0xca, 0x69, 0x14, 0xa7, 0xd3, 0x4d, 0xa8, 0xc9, 0x65, 0x7b, 0x95, 0x0f, 0x89, 0xd1, 0xd6, 0xae, 0xc3, 0x29, 0x9b, 0xb6, 0x90, 0x11, 0x10, 0x71, 0xfa, 0x87, 0x28, 0x27, 0x74, 0x94, 0x3d, 0x96, 0xa4, 0xab, 0x7c, 0x3d, 0x6d, 0xe7, 0xd1, 0xbf, 0x11, 0x93, 0x63, 0x06, 0x8c, 0xc8, 0x2d, 0x45, 0xe4, 0xb7, 0x64, 0x54, 0xc6, 0x08, 0xbc, 0x35, 0x66, 0xb7, 0xf9, 0xb3, 0x85, 0xcc, 0x7e, 0xb3, 0x8e, 0xe4, 0x29, 0xaf, 0xc2, 0xda, 0x99, 0x66, 0x9f, 0xc5, 0xc1, 0xbe, 0x82, 0x16, 0x1a, 0x1b, 0x0c, 0x33, 0xf7, 0xba, 0x9a, 0xd4, 0x41, 0x9d, 0x20, 0x62, 0x97, 0x19, 0x01, 0xdb, 0x00, 0x3b, 0xfa, 0x23, 0xc4, 0x47, 0x14, 0x99, 0x5c, 0xb0, 0x6b, 0xfa, 0x96, 0x6e, 0x50, 0x23, 0xaa, 0x93, 0x46, 0xfd, 0x37, 0x5a, 0xe2, 0xa1, 0xe8, 0x40, 0x84, 0x31, 0x4d, 0xf3, 0xf0, 0x8c, 0xe2, 0x08, 0x00, 0xc2, 0xc2, 0xad, 0xfb, 0xb8, 0x13, 0x66, 0xf6, 0xb1, 0x04, 0x24, 0x3d, 0x62, 0xd5, 0x04, 0x1e, 0x72, 0x73, 0x43, 0x3f, 0x17, 0x58, 0x1b, 0xf9, 0x3f, 0x4c, 0x61, 0x46, 0xfa, 0x96, 0x6f, 0x63, 0x8a, 0xb0, 0x7e, 0xa1, 0x66, 0x94, 0xa7, 0xce, 0x30, 0x5c, 0xc6, 0x09, 0xa6, 0xe1, 0x06, 0x23, 0xff, 0x7f, 0x6c, 0x79, 0x16, 0xb6, 0xe4, 0xdb, 0xde, 0xbb, 0x7b, 0x52, 0xec, 0xa7, 0xf0, 0xd5, 0x18, 0x7f, 0xf6, 0x64, 0xd7, 0xc3, 0x70, 0xed, 0x22, 0x88, 0x6a, 0xa2, 0x67, 0x13, 0x29, 0xd9, 0x28, 0xe0, 0xa3, 0xbe, 0xa3, 0xb4, 0x71, 0x1a, 0x12, 0x8b, 0x9a, 0xab, 0x90, 0x26, 0x6f, 0x86, 0x51, 0xd2, 0x20, 0xb9, 0xcc, 0x1c, 0xbf, 0x5b, 0x1c, 0xe7, 0x26, 0x59, 0x31, 0x80, 0x36, 0x90, 0xd3, 0x29, 0x1c, 0x01, 0xea, 0xd4, 0xdb, 0xc3, 0x32, 0x9a, 0x97, 0xe8, 0x5c, 0x4f, 0xe1, 0xd3, 0x56, 0x60, 0x8c, 0xc9, 0xe6, 0x0b, 0x05, 0xbc, 0x14, 0x83, 0x8a, 0x86, 0x08, 0x27, 0x9a, 0x00, 0x61, 0xde, 0x28, 0xff, 0x7b, 0x8e, 0x81, 0xf5, 0x9c, 0x8a, 0x8c, 0x55, 0x23, 0x92, 0x4c, 0x4c, 0x48, 0x5e, 0x6e, 0xa8, 0x0a, 0xc8, 0x17, 0x50, 0xbb, 0x0e, 0x41, 0x9e, 0xfc, 0x78, 0x58, 0xcd, 0x4a, 0xf5, 0x0c, 0x8b, 0x8c, 0x80, 0x65, 0x0f, 0xac, 0xab, 0x4d, 0x82, 0x58, 0xf9, 0xca, 0xfa, 0x03, 0x10, 0xa0, 0x07, 0xcc, 0xcb, 0xc4, 0x18, 0x5c, 0x82, 0xfd, 0x14, 0x6d, 0xf1, 0xd8, 0x11, 0x87, 0x9d, 0xa3, 0x65, 0x0d, 0x57, 0x16, 0xf1, 0x00, 0x4b, 0x71, 0xd2, 0xc7, 0xf2, 0xbd, 0x65, 0x03, 0xc3, 0x54, 0x58, 0x9f, 0x86, 0x02, 0xc9, 0x50, 0xa1, 0xf5, 0x13, 0x9f, 0x81, 0x14, 0x60, 0x75, 0x28, 0x80, 0xa3, 0x41, 0x11, 0x66, 0x30, 0xe4, 0xff, 0x84, 0x94, 0x8e, 0x74, 0xa9, 0xeb, 0x35, 0x0d, 0x64, 0xd8, 0x29, 0x30, 0x02, 0x20, 0x02, 0x33, 0xf2, 0x09, 0xb1, 0x7d, 0x78, 0x89, 0x7c, 0x7c, 0xe6, 0xce, 0x29, 0xe2, 0x9f, 0x82, 0xd4, 0xad, 0x6c, 0x61, 0xeb, 0x79, 0xf5, 0x73, 0x9c, 0xb6, 0x68, 0xb2, 0x1a, 0x74, 0x55, 0x55, 0xc9, 0x6e, 0x19, 0x52, 0x68, 0x45, 0xe8, 0x2c, 0x6e, 0xd2, 0xb1, 0xc6, 0xbd, 0xd6, 0x36, 0x4b, 0x8f, 0xc7, 0x9b, 0xa9, 0xa3, 0x2d, 0xbd, 0x3f, 0x8b, 0x97, 0x5e, 0xb9, 0x23, 0x62, 0x39, 0x58, 0xae, 0x0d, 0xaa, 0x4f, 0xfa, 0x13, 0x92, 0x17, 0xc0, 0x0e, 0x02, 0x1f, 0x93, 0x7e, 0x9b, 0x79, 0x1c, 0x37, 0x99, 0x1a, 0x35, 0xe5, 0x23, 0x1a, 0x19, 0x14, 0xc0, 0x45, 0xa7, 0x87, 0x43, 0x2f, 0x97, 0xb8, 0xe2, 0x06, 0x3d, 0xb1, 0x05, 0xe1, 0x4d, 0xa9, 0x79, 0xc1, 0xc4, 0xcb, 0xa7, 0x85, 0x21, 0x0e, 0xb0, 0x20, 0x11, 0x33, 0x4b, 0x23, 0x0c, 0xfb, 0x68, 0x31, 0x99, 0x8c, 0xcc, 0xe2, 0x53, 0x86, 0xf4, 0xf3, 0xba, 0x0d, 0xce, 0x20, 0x06, 0xe9, 0xc3, 0x94, 0x0b, 0x4d, 0x5a, 0x56, 0xaa, 0xcc, 0xdc, 0xab, 0x02, 0x71, 0x86, 0x89, 0x81, 0x63, 0x60, 0xf1, 0x88, 0x52, 0xfd, 0x19, 0x98, 0xa9, 0x9f, 0xce, 0x9a, 0x04, 0xda, 0x3f, 0x5e, 0x23, 0xaf, 0x94, 0xc6, 0xe8, 0xa5, 0xba, 0xdf, 0xd3, 0x93, 0x04, 0xb9, 0xe2, 0xa3, 0x76, 0xa1, 0xf9, 0xba, 0xc0, 0x9a, 0x85, 0xbd, 0x04, 0x24, 0x76, 0xe2, 0x6b, 0x58, 0xec, 0x73, 0xf1, 0x23, 0x6d, 0x41, 0xab, 0x4b, 0x4e, 0x7a, 0x54, 0xde, 0xf9, 0xd6, 0x6a, 0x38, 0xf8, 0xe5, 0x46, 0xde, 0x7b, 0x38, 0x8e, 0x1e, 0x7d, 0x66, 0x81, 0xe5, 0xe2, 0xa0, 0x96, 0xf1, 0x60, };
16743 static const u8 ed25519_728_test_vectors_expected_sig[] = {
16744 	0xcf, 0x20, 0x2d, 0x7f, 0x2f, 0x9e, 0xd1, 0x17, 0xf4, 0x29, 0x50, 0x2b, 0x2a, 0x5a, 0xff, 0x54, 0xa7, 0xf7, 0x51, 0xd2, 0x17, 0x15, 0x15, 0xa4, 0xd2, 0x03, 0x75, 0x34, 0x46, 0xdf, 0x0e, 0xba, 0xc8, 0x69, 0x84, 0xc8, 0x8b, 0xd4, 0x2b, 0xd1, 0xfb, 0x8d, 0xcb, 0x40, 0x87, 0x76, 0x72, 0x2a, 0x38, 0xf3, 0x2c, 0xce, 0xb2, 0x5f, 0x32, 0xa2, 0x5d, 0x73, 0x93, 0xf1, 0x38, 0xee, 0xdf, 0x0a, };
16745 static const ec_test_case ed25519_728_test_case = {
16746 	.name = "EDDSA25519-SHA512/wei25519 728",
16747 	.ec_str_p = &wei25519_str_params,
16748 	.priv_key = ed25519_728_test_vectors_priv_key,
16749 	.priv_key_len = sizeof(ed25519_728_test_vectors_priv_key),
16750 	.nn_random = NULL,
16751 	.hash_type = SHA512,
16752 	.msg = (const char *)ed25519_728_test_vectors_message,
16753 	.msglen = sizeof(ed25519_728_test_vectors_message),
16754 	.sig_type = EDDSA25519,
16755 	.exp_sig = ed25519_728_test_vectors_expected_sig,
16756 	.exp_siglen = sizeof(ed25519_728_test_vectors_expected_sig),
16757 	.adata = NULL,
16758 	.adata_len = 0
16759 };
16760 
16761 /************************************************/
16762 static const u8 ed25519_729_test_vectors_priv_key[] = {
16763 	0x69, 0x5c, 0x96, 0x0b, 0xbb, 0x0d, 0xd5, 0x7f, 0xfa, 0x36, 0x15, 0x1c, 0x85, 0xde, 0x73, 0x51, 0x54, 0xfe, 0x5a, 0xd5, 0xf5, 0xfc, 0x77, 0xd0, 0x05, 0xa0, 0xa3, 0x20, 0x11, 0xde, 0xb3, 0x0c, };
16764 static const u8 ed25519_729_test_vectors_message[] = {
16765 	0x37, 0x06, 0x69, 0x6c, 0x7a, 0x90, 0x66, 0x90, 0xd0, 0xd3, 0xb7, 0x1e, 0x7e, 0x21, 0x1c, 0x7b, 0x06, 0x71, 0x68, 0xf3, 0xa8, 0xf1, 0xed, 0x98, 0x4a, 0x0a, 0x5e, 0x60, 0x78, 0x59, 0x76, 0x62, 0xe4, 0xe7, 0x88, 0x9d, 0x52, 0xdb, 0x0f, 0x78, 0xe0, 0xd5, 0xef, 0x0e, 0x5f, 0x7a, 0x0a, 0x0f, 0x42, 0x63, 0xb6, 0x84, 0x8b, 0x07, 0x25, 0xca, 0xa4, 0xb1, 0xce, 0xa6, 0x98, 0x74, 0x09, 0x51, 0x1c, 0x8e, 0x5e, 0x98, 0x2d, 0x3f, 0x5b, 0x82, 0xbb, 0x56, 0xa4, 0xa7, 0x94, 0x71, 0x21, 0x93, 0x7f, 0x8e, 0x10, 0x5c, 0x5a, 0x14, 0xb5, 0x3e, 0x6c, 0x37, 0xcc, 0x71, 0x6b, 0x1e, 0xba, 0x92, 0x24, 0x21, 0x82, 0x8b, 0x04, 0x6f, 0x68, 0x56, 0xc4, 0x4f, 0xab, 0xf1, 0x3a, 0x75, 0x16, 0xc6, 0x2a, 0x5f, 0xf9, 0x85, 0x68, 0x45, 0x0c, 0xee, 0x78, 0xb1, 0x40, 0x33, 0x50, 0x47, 0xbf, 0x1c, 0xa7, 0x7e, 0x15, 0x49, 0xa8, 0x94, 0xfe, 0xeb, 0x07, 0x80, 0x45, 0xe4, 0x64, 0x18, 0x32, 0x25, 0x3b, 0xf6, 0x95, 0x48, 0x54, 0x52, 0xec, 0x36, 0x90, 0x65, 0xa6, 0x00, 0x29, 0xa6, 0xc9, 0x07, 0x7a, 0x37, 0x9d, 0xb2, 0x04, 0x85, 0xea, 0x2e, 0xdb, 0x6c, 0x96, 0x95, 0x47, 0xbb, 0x26, 0x53, 0x28, 0x9b, 0xc6, 0xe8, 0x1f, 0xfc, 0xb8, 0x4b, 0xdb, 0xf7, 0x73, 0xdd, 0xea, 0x4b, 0x37, 0x50, 0xe9, 0xa7, 0x23, 0x95, 0xd1, 0x17, 0xf6, 0x44, 0xb0, 0xe2, 0x20, 0x61, 0xd4, 0xf3, 0xbb, 0x7c, 0x5b, 0x61, 0x2e, 0x4b, 0x70, 0x39, 0x5e, 0x07, 0x79, 0x51, 0x6b, 0x46, 0x65, 0x91, 0x16, 0x90, 0x2f, 0xd0, 0xfb, 0xcd, 0x23, 0x40, 0xee, 0xa4, 0x5e, 0x9c, 0x23, 0xdb, 0x25, 0x64, 0xa5, 0xe1, 0x1d, 0xc7, 0x9e, 0x8f, 0x4b, 0x33, 0x2a, 0x44, 0x3e, 0xc3, 0x5a, 0xad, 0x96, 0x04, 0xfe, 0x79, 0x12, 0x52, 0x08, 0x82, 0x95, 0xe8, 0x4f, 0x65, 0xa3, 0x07, 0x31, 0x25, 0x50, 0xd9, 0xeb, 0xf6, 0x1f, 0x36, 0x7e, 0x4a, 0x0f, 0x2b, 0x56, 0x23, 0xe5, 0x3e, 0xf6, 0xbc, 0x13, 0x28, 0x25, 0xfc, 0x24, 0xeb, 0xee, 0x4e, 0xbf, 0x33, 0x8c, 0xbf, 0xb5, 0xdf, 0x69, 0xb3, 0x2d, 0x03, 0x0d, 0x44, 0x7c, 0x44, 0xf3, 0x13, 0xba, 0x96, 0xfe, 0x07, 0xbb, 0xfe, 0x5b, 0x01, 0x66, 0xea, 0xec, 0xbc, 0x61, 0x9b, 0xb6, 0xb2, 0xe5, 0x92, 0x40, 0x10, 0xba, 0x3e, 0xc1, 0x50, 0xff, 0x6a, 0x69, 0xfe, 0xc4, 0xde, 0xd9, 0xc4, 0x42, 0xf9, 0x8c, 0x15, 0xe7, 0x7f, 0x31, 0x9b, 0x48, 0x43, 0xb3, 0xb7, 0x48, 0xb5, 0xd2, 0x60, 0x89, 0xa7, 0x6c, 0x2b, 0x83, 0x4f, 0xf9, 0x3c, 0x41, 0x3e, 0x04, 0xca, 0x95, 0x50, 0xcd, 0x21, 0x1c, 0xe2, 0xd6, 0xa5, 0x83, 0xd7, 0x82, 0x57, 0x50, 0x66, 0xdb, 0x6d, 0xd3, 0x3e, 0x8d, 0x5e, 0x83, 0x74, 0x35, 0x5d, 0x06, 0x8a, 0x5e, 0xb9, 0x6f, 0x8b, 0x3d, 0xa8, 0xdd, 0xdf, 0xb5, 0xba, 0xf5, 0xc5, 0x96, 0xda, 0xaf, 0x55, 0x6a, 0x8f, 0x2c, 0xb5, 0x78, 0x1e, 0x50, 0x42, 0x32, 0x7f, 0x92, 0xae, 0x06, 0x21, 0xea, 0xe0, 0x88, 0xb5, 0xf0, 0x13, 0x59, 0x2e, 0x77, 0x87, 0x3a, 0x81, 0xd7, 0xe0, 0x68, 0xd7, 0xb8, 0x33, 0x7d, 0xb9, 0xf1, 0x09, 0xa8, 0x35, 0xb4, 0x75, 0xe5, 0xca, 0xf7, 0xce, 0xa5, 0xaf, 0x3b, 0x4a, 0xd6, 0xd9, 0x0b, 0xaa, 0xf1, 0xc7, 0x36, 0x55, 0xec, 0x67, 0x67, 0x47, 0xfc, 0xdd, 0x41, 0x77, 0x5b, 0x4f, 0xbe, 0x39, 0x24, 0xc3, 0xf4, 0x1d, 0x8a, 0x73, 0x75, 0x28, 0xd1, 0x2d, 0x61, 0x56, 0x65, 0x3a, 0x22, 0x35, 0x8c, 0x68, 0x21, 0x42, 0x6b, 0x2c, 0x0a, 0x33, 0xe1, 0x63, 0x4c, 0x62, 0xc7, 0xc8, 0x38, 0x56, 0x49, 0xbc, 0x23, 0x3e, 0x7d, 0xaf, 0x94, 0x39, 0xf0, 0x9d, 0xb9, 0xbd, 0x11, 0xea, 0x01, 0xe2, 0x8b, 0x77, 0xec, 0xbb, 0xc4, 0x59, 0x0e, 0x29, 0xfd, 0xcf, 0x0f, 0xdd, 0xe1, 0x52, 0xf6, 0x47, 0x81, 0x32, 0xfe, 0x4c, 0x3a, 0x5b, 0x45, 0xa7, 0x30, 0x5a, 0xf6, 0xe3, 0x81, 0xca, 0xdd, 0x72, 0x49, 0x6e, 0x66, 0xbb, 0xb8, 0x66, 0xce, 0xa4, 0x7f, 0x7e, 0x7d, 0x7e, 0x63, 0x34, 0x16, 0x00, 0xaf, 0x3f, 0x49, 0xce, 0x9c, 0x9e, 0x4e, 0x37, 0x39, 0x4d, 0xf5, 0xdf, 0x71, 0xdc, 0x10, 0xcd, 0x39, 0x1f, 0xdc, 0xb8, 0xa1, 0x93, 0xdc, 0x98, 0xfc, 0x19, 0x05, 0x9f, 0xa3, 0xac, 0x23, 0x0e, 0xc5, 0x47, 0x6b, 0xf9, 0x4d, 0x85, 0x55, 0x6a, 0xce, 0x6e, 0x1b, 0xa3, 0x24, 0x21, 0xbf, 0x59, 0xdc, 0xbe, 0x05, 0xc5, 0xe1, 0x5d, 0x34, 0xc6, 0x64, 0x4e, 0x27, 0xd0, 0xa0, 0x2b, 0xe9, 0x7f, 0xa8, 0x38, 0x7e, 0xe0, 0x37, 0x06, 0xf2, 0x2a, 0x8f, 0x4b, 0x3b, 0x40, 0x40, 0xad, 0x7d, 0x3f, 0x8a, 0x86, 0x97, 0x1a, 0x20, 0xa0, 0x9e, 0xc8, 0x1b, 0x76, 0x96, 0xd8, 0x34, 0xc5, 0x26, 0xb8, 0xe5, 0x1c, 0xb9, 0x7d, 0x27, 0x64, 0x3f, 0x9a, 0xbf, 0x5e, 0x29, 0xff, 0xd0, 0x33, 0x3f, 0x95, 0xde, 0x15, 0xd1, 0x10, 0xc2, 0x06, 0x4c, 0xa4, 0x94, 0x67, 0xc1, 0x4e, 0xf2, 0x27, 0xf4, 0xba, 0xbf, 0x1a, 0x55, 0xe7, 0xb1, 0xcd, 0xa0, 0x42, 0x9c, 0xff, 0x25, 0x6b, 0xe3, 0x1c, 0xf1, 0x16, 0x71, 0x9a, 0x81, 0xb9, 0xc5, 0xfb, 0x75, 0xfd, 0xf6, 0x4e, };
16766 static const u8 ed25519_729_test_vectors_expected_sig[] = {
16767 	0x4a, 0xf4, 0x1c, 0x55, 0x4d, 0x99, 0x08, 0x12, 0x68, 0x6c, 0x32, 0x9a, 0x87, 0x5c, 0x41, 0xee, 0x24, 0xb4, 0xa7, 0xfd, 0x7b, 0x3d, 0x4f, 0x8c, 0x8d, 0x52, 0x75, 0xf2, 0xe7, 0xcb, 0x24, 0x2b, 0x25, 0x8b, 0x58, 0x58, 0xa4, 0x66, 0xde, 0x59, 0x5c, 0xe2, 0xa2, 0x17, 0x7e, 0x35, 0x1c, 0x7f, 0x08, 0xc7, 0xfc, 0x4e, 0x0b, 0xf9, 0x7e, 0xc5, 0xfb, 0x2d, 0xcb, 0x82, 0x52, 0xd2, 0xc9, 0x0a, };
16768 static const ec_test_case ed25519_729_test_case = {
16769 	.name = "EDDSA25519-SHA512/wei25519 729",
16770 	.ec_str_p = &wei25519_str_params,
16771 	.priv_key = ed25519_729_test_vectors_priv_key,
16772 	.priv_key_len = sizeof(ed25519_729_test_vectors_priv_key),
16773 	.nn_random = NULL,
16774 	.hash_type = SHA512,
16775 	.msg = (const char *)ed25519_729_test_vectors_message,
16776 	.msglen = sizeof(ed25519_729_test_vectors_message),
16777 	.sig_type = EDDSA25519,
16778 	.exp_sig = ed25519_729_test_vectors_expected_sig,
16779 	.exp_siglen = sizeof(ed25519_729_test_vectors_expected_sig),
16780 	.adata = NULL,
16781 	.adata_len = 0
16782 };
16783 
16784 /************************************************/
16785 static const u8 ed25519_730_test_vectors_priv_key[] = {
16786 	0x25, 0xcb, 0x17, 0xfc, 0x33, 0xd2, 0xbf, 0x83, 0x84, 0xae, 0x4d, 0xf2, 0x0c, 0x1f, 0xad, 0x5c, 0x35, 0xfd, 0x76, 0x5a, 0xff, 0xde, 0x04, 0xb5, 0x25, 0x6d, 0x4d, 0xe0, 0x1c, 0xa8, 0xde, 0x14, };
16787 static const u8 ed25519_730_test_vectors_message[] = {
16788 	0x4b, 0x4a, 0x71, 0xcb, 0xf8, 0xcb, 0xaf, 0x57, 0xa7, 0x7d, 0x4e, 0xa1, 0x88, 0xa6, 0xf9, 0x64, 0x84, 0x0f, 0x0d, 0x71, 0x4a, 0x5f, 0x38, 0xa0, 0x95, 0xa1, 0x3b, 0x4e, 0x57, 0x12, 0x97, 0xa8, 0x8b, 0x79, 0x24, 0x17, 0xd1, 0x61, 0x84, 0x42, 0x7f, 0x90, 0xe0, 0x43, 0xdd, 0x8a, 0x55, 0xb7, 0xf1, 0xc1, 0x3e, 0x00, 0xdf, 0xa6, 0x05, 0x16, 0x44, 0x5c, 0xbe, 0x77, 0x06, 0x8c, 0x79, 0xc8, 0xc3, 0x5e, 0xbe, 0xac, 0x33, 0x0c, 0x33, 0xf1, 0x12, 0x1d, 0x05, 0x73, 0x1a, 0x8f, 0x51, 0x32, 0xd6, 0x48, 0x00, 0x73, 0x27, 0x46, 0x41, 0x19, 0x5a, 0x75, 0x20, 0x21, 0x16, 0xff, 0xf1, 0xc3, 0x18, 0x81, 0x71, 0x78, 0xfd, 0xd7, 0x68, 0xbb, 0xdf, 0x10, 0x5f, 0xa0, 0x69, 0xc7, 0xa3, 0xd1, 0x43, 0xfd, 0xf5, 0xd1, 0x7b, 0xfa, 0xd7, 0xc0, 0x62, 0x4e, 0x52, 0x92, 0x06, 0x8f, 0xd7, 0xbb, 0x6d, 0x30, 0x3b, 0x4a, 0x27, 0xcb, 0x20, 0xa4, 0xe6, 0x18, 0x75, 0x07, 0x67, 0x87, 0xd1, 0x9f, 0xa6, 0xf7, 0x29, 0xc9, 0x4d, 0xc0, 0xba, 0x9b, 0x8c, 0x0b, 0xfd, 0x98, 0x66, 0xda, 0x5c, 0xb2, 0xe7, 0xa2, 0xcd, 0x2e, 0xdb, 0xdc, 0x95, 0xac, 0x34, 0x9e, 0x5e, 0x5c, 0x21, 0x72, 0xe5, 0xa4, 0xcf, 0x7b, 0xd9, 0x0c, 0xab, 0xe2, 0xc6, 0xe2, 0x24, 0x59, 0x80, 0xbd, 0x72, 0xd0, 0xf6, 0xf5, 0x47, 0x98, 0x81, 0xe8, 0xc4, 0xc3, 0x54, 0xf6, 0x8a, 0xa7, 0x28, 0x41, 0xd0, 0xc7, 0x3b, 0x98, 0x6b, 0xa5, 0x10, 0x21, 0x20, 0x31, 0x61, 0x02, 0x6e, 0xe3, 0xd7, 0x29, 0xdd, 0xf1, 0xa0, 0x49, 0xff, 0xe9, 0xeb, 0x25, 0x43, 0x98, 0x02, 0xf0, 0x30, 0x11, 0xd1, 0x44, 0xe5, 0x0b, 0x02, 0xbd, 0x4a, 0xca, 0x5e, 0x55, 0x06, 0xd3, 0x2f, 0xcf, 0x69, 0xe3, 0x2f, 0x54, 0x25, 0x44, 0x79, 0x8f, 0x4e, 0x87, 0xf7, 0x2b, 0xdf, 0x24, 0x33, 0xb1, 0xff, 0x32, 0x59, 0x29, 0x2e, 0x1d, 0x90, 0x81, 0x2c, 0xff, 0xd7, 0x9f, 0x6a, 0x54, 0x32, 0x70, 0xba, 0xf2, 0x4a, 0x3c, 0x39, 0xdd, 0x35, 0x98, 0xe1, 0xc6, 0x61, 0x61, 0x29, 0x22, 0x52, 0x2f, 0x38, 0x7d, 0x51, 0x59, 0x76, 0x92, 0xf3, 0x14, 0xc4, 0xd5, 0xac, 0x4b, 0xf1, 0x88, 0x3a, 0x61, 0x46, 0x36, 0x33, 0x6a, 0x55, 0x44, 0xd5, 0x9f, 0xf4, 0x1d, 0x1e, 0x0d, 0xbc, 0xf8, 0xe6, 0x62, 0x7e, 0x7c, 0x80, 0x85, 0x64, 0x63, 0x22, 0xdf, 0xc2, 0x0c, 0x33, 0x2c, 0xbd, 0xf3, 0x53, 0x70, 0xd4, 0x7d, 0xca, 0xbb, 0x80, 0x2e, 0x17, 0xca, 0x84, 0x78, 0x0e, 0xec, 0x66, 0x1c, 0x90, 0x4d, 0x5b, 0xfb, 0xc2, 0x40, 0xad, 0x6a, 0x14, 0xa7, 0x53, 0x3f, 0x71, 0xa2, 0x75, 0x00, 0xc6, 0x1d, 0xd3, 0xe4, 0x73, 0x98, 0x38, 0x87, 0xa8, 0x68, 0x35, 0x18, 0x7a, 0xbb, 0x0d, 0xf0, 0x8f, 0xa6, 0x2c, 0xda, 0x69, 0xdc, 0xe8, 0x6e, 0x21, 0xfa, 0x5a, 0xe9, 0x54, 0xc2, 0x2e, 0xdd, 0xb6, 0x0e, 0xe3, 0x13, 0x15, 0x04, 0xa6, 0x9b, 0x50, 0x48, 0x6a, 0x17, 0x76, 0x70, 0x91, 0x88, 0x37, 0x60, 0x63, 0x8a, 0x29, 0xc3, 0x80, 0x30, 0xe1, 0xe0, 0x5f, 0xdb, 0x28, 0xe1, 0x58, 0x63, 0x30, 0x10, 0x38, 0x5a, 0x62, 0x06, 0x13, 0xcc, 0x10, 0xd5, 0xa5, 0xf3, 0x50, 0x95, 0x5f, 0x4a, 0x34, 0x7c, 0x65, 0xed, 0xdd, 0xb7, 0xe2, 0x51, 0x59, 0xda, 0x8d, 0xcc, 0x26, 0x55, 0x92, 0x8a, 0xd6, 0xf6, 0xd8, 0xc4, 0xc1, 0xab, 0xb8, 0x17, 0xd7, 0xfe, 0xf3, 0xba, 0xe5, 0xde, 0x04, 0x02, 0xed, 0xde, 0xe7, 0xb5, 0x15, 0x21, 0xce, 0x28, 0x0a, 0x66, 0xb7, 0x96, 0x14, 0x0f, 0x56, 0xaf, 0x9b, 0xc2, 0x0e, 0x46, 0x58, 0x75, 0xce, 0x26, 0x28, 0xa8, 0xa1, 0x04, 0x77, 0xce, 0x9b, 0x2e, 0xac, 0xc7, 0xd8, 0x6f, 0x88, 0x27, 0x24, 0x57, 0xbf, 0xd4, 0x43, 0xe7, 0x12, 0x52, 0x69, 0x96, 0x25, 0x43, 0x80, 0xf0, 0x13, 0x52, 0x27, 0xe9, 0xfc, 0x15, 0x1c, 0x86, 0x95, 0xe9, 0xcc, 0x64, 0xd2, 0x72, 0xb2, 0x56, 0xab, 0x95, 0xc9, 0xa9, 0xf5, 0x68, 0xe9, 0x37, 0x16, 0xe0, 0xe5, 0x3d, 0x29, 0x88, 0x2e, 0x3c, 0xe7, 0x42, 0x61, 0x25, 0x7a, 0x02, 0xcd, 0x49, 0x7c, 0x37, 0xd7, 0x64, 0xd9, 0x0f, 0x7f, 0xd4, 0x78, 0xa1, 0x7a, 0x89, 0x0a, 0x8b, 0x2e, 0xa6, 0x1a, 0xb8, 0x1f, 0x68, 0x69, 0xb1, 0x20, 0xa2, 0xf6, 0x48, 0x4a, 0x88, 0xc1, 0x51, 0x95, 0x33, 0x91, 0xec, 0xa4, 0x45, 0x01, 0x53, 0x77, 0xb3, 0xa5, 0xdf, 0xfe, 0x4c, 0xfb, 0xac, 0xfb, 0x5b, 0xab, 0x2c, 0x47, 0xf6, 0x54, 0xf7, 0x2a, 0x9d, 0x19, 0xcb, 0xc4, 0xd2, 0x95, 0x37, 0x19, 0x84, 0x05, 0xe3, 0xa0, 0x4b, 0x4b, 0xfe, 0x11, 0xbc, 0xdb, 0x5c, 0x1f, 0x30, 0xd9, 0xac, 0x02, 0xf5, 0x48, 0x49, 0xc5, 0x7a, 0xa9, 0x6f, 0x7b, 0x56, 0x63, 0x61, 0x16, 0xf2, 0xbb, 0x6f, 0x25, 0x83, 0xd9, 0xaf, 0x94, 0xc8, 0x6a, 0xff, 0x5c, 0x13, 0x7f, 0x63, 0xce, 0x54, 0xe8, 0xf0, 0xc2, 0x1b, 0x6c, 0x25, 0xc1, 0xf0, 0x47, 0x2a, 0x22, 0x9c, 0x90, 0x81, 0x7e, 0x61, 0x62, 0xea, 0xc7, 0x1c, 0xcd, 0xa3, 0x09, 0xa1, 0x64, 0x3b, 0xd6, 0x31, 0x2a, 0x52, 0x63, 0xa2, 0xef, 0xe6, 0x46, 0xdf, 0xfe, 0x79, 0xeb, 0xd8, 0x15, 0x7a, 0x28, };
16789 static const u8 ed25519_730_test_vectors_expected_sig[] = {
16790 	0x8c, 0xcb, 0x0d, 0xbc, 0xf7, 0xcc, 0x03, 0xe8, 0x3e, 0x21, 0xc5, 0x74, 0x74, 0xaf, 0xd3, 0xad, 0x88, 0x98, 0x09, 0x7b, 0x97, 0x2e, 0xde, 0x17, 0x5a, 0xca, 0xae, 0x48, 0xe3, 0xec, 0x17, 0xb2, 0xdb, 0x06, 0xfc, 0x82, 0x77, 0x6b, 0x07, 0x51, 0xc0, 0xf9, 0x56, 0xfd, 0x71, 0x96, 0xf3, 0xd1, 0xc9, 0x63, 0x21, 0xa6, 0xcf, 0x3d, 0x89, 0x24, 0x15, 0xd8, 0xf8, 0xee, 0xb4, 0xa1, 0x41, 0x08, };
16791 static const ec_test_case ed25519_730_test_case = {
16792 	.name = "EDDSA25519-SHA512/wei25519 730",
16793 	.ec_str_p = &wei25519_str_params,
16794 	.priv_key = ed25519_730_test_vectors_priv_key,
16795 	.priv_key_len = sizeof(ed25519_730_test_vectors_priv_key),
16796 	.nn_random = NULL,
16797 	.hash_type = SHA512,
16798 	.msg = (const char *)ed25519_730_test_vectors_message,
16799 	.msglen = sizeof(ed25519_730_test_vectors_message),
16800 	.sig_type = EDDSA25519,
16801 	.exp_sig = ed25519_730_test_vectors_expected_sig,
16802 	.exp_siglen = sizeof(ed25519_730_test_vectors_expected_sig),
16803 	.adata = NULL,
16804 	.adata_len = 0
16805 };
16806 
16807 /************************************************/
16808 static const u8 ed25519_731_test_vectors_priv_key[] = {
16809 	0x49, 0xe2, 0x4d, 0x16, 0x99, 0x83, 0x37, 0x26, 0xb1, 0x8c, 0x78, 0xea, 0x65, 0x68, 0x40, 0x1a, 0x97, 0x1e, 0x1c, 0xa3, 0x9d, 0xd0, 0x6d, 0x75, 0x63, 0xac, 0x8b, 0x42, 0x50, 0xd4, 0xa9, 0xf5, };
16810 static const u8 ed25519_731_test_vectors_message[] = {
16811 	0x6d, 0x26, 0x05, 0xf6, 0x1e, 0x1a, 0x04, 0xb6, 0xae, 0x18, 0xc2, 0xc2, 0x5a, 0xe1, 0x00, 0xdd, 0x42, 0xa6, 0x1e, 0x66, 0x4e, 0x2d, 0xb5, 0xc3, 0x4d, 0x7a, 0xd1, 0xf8, 0x4a, 0xc5, 0x07, 0x55, 0x2b, 0x74, 0x1c, 0x20, 0x86, 0xc1, 0x7c, 0x85, 0x2b, 0xab, 0xe0, 0x7a, 0x91, 0xe1, 0x29, 0xa5, 0x06, 0xee, 0x59, 0xed, 0xb9, 0xce, 0x73, 0xbe, 0x1b, 0x1d, 0x06, 0xd1, 0x20, 0xec, 0x36, 0xa1, 0xe9, 0x4c, 0x62, 0x81, 0x05, 0x4e, 0x78, 0xce, 0xb1, 0xbd, 0xef, 0xfb, 0xcb, 0xf4, 0xf0, 0x10, 0x51, 0xed, 0x38, 0x1b, 0xfc, 0x8a, 0xd1, 0x76, 0x9f, 0x41, 0xe2, 0x40, 0xbf, 0x60, 0x59, 0xd9, 0x70, 0x4c, 0xac, 0xec, 0x66, 0x66, 0x11, 0xf4, 0x1e, 0x4d, 0xd4, 0x38, 0xb7, 0xf5, 0x02, 0x42, 0xea, 0x86, 0x75, 0x6b, 0xb1, 0xf8, 0x1e, 0x59, 0x42, 0xc0, 0x92, 0x12, 0x9f, 0xbc, 0x6d, 0xe4, 0x95, 0x5d, 0x28, 0xdf, 0xf3, 0x52, 0x37, 0xdb, 0x30, 0xe4, 0xa5, 0x03, 0x6a, 0x99, 0x14, 0xc9, 0xf8, 0x4d, 0xbd, 0x8c, 0xcf, 0x82, 0xba, 0x2b, 0x1b, 0x3b, 0x55, 0x54, 0xa2, 0xb7, 0xa7, 0x4c, 0xb0, 0xb2, 0xa1, 0xe1, 0x96, 0x33, 0x45, 0x28, 0x6e, 0x25, 0x8d, 0xc8, 0xe7, 0xd5, 0x67, 0x18, 0x03, 0x5f, 0x95, 0xf3, 0x13, 0x81, 0x1c, 0xfb, 0xd8, 0x52, 0xa0, 0xf8, 0xf4, 0x9a, 0x29, 0xef, 0x93, 0x3e, 0x7c, 0xda, 0x7e, 0xd9, 0xc7, 0xe8, 0xb1, 0x62, 0xcd, 0xba, 0x1a, 0x82, 0x26, 0x2c, 0xd4, 0xdf, 0x7c, 0xf8, 0xea, 0x4b, 0x58, 0x6d, 0xb4, 0x3d, 0xcc, 0x1e, 0x37, 0x64, 0x59, 0x8e, 0x9c, 0xa4, 0x66, 0x73, 0x82, 0x2b, 0xaa, 0x2a, 0xd8, 0x7f, 0xb1, 0x4b, 0x6f, 0xdb, 0x9e, 0x20, 0x32, 0xd0, 0xca, 0x51, 0xc2, 0x6c, 0x5e, 0xf3, 0xd9, 0xf7, 0x97, 0x85, 0xfa, 0xc2, 0x49, 0x1c, 0xdb, 0xf7, 0xc3, 0x99, 0xf3, 0xcd, 0x17, 0x74, 0xc1, 0xa6, 0xb1, 0xe4, 0xa6, 0x7f, 0x54, 0x36, 0xd8, 0x0d, 0xb0, 0x25, 0xf8, 0xfb, 0x64, 0x09, 0xe2, 0x75, 0xbd, 0x0e, 0xd5, 0x08, 0xb5, 0xe0, 0x39, 0xed, 0x2e, 0x4e, 0xec, 0x8b, 0x0f, 0x4d, 0x5b, 0xe9, 0x9d, 0xca, 0xfa, 0x6a, 0x14, 0x01, 0x25, 0x27, 0x32, 0xa6, 0x5b, 0x37, 0xc9, 0x43, 0xc0, 0x7e, 0xf3, 0xac, 0xbc, 0xfb, 0xb3, 0xdc, 0x06, 0xda, 0xd0, 0xa8, 0x8f, 0x2f, 0x5e, 0xb5, 0x51, 0xa3, 0x99, 0x7a, 0xd6, 0xc6, 0xee, 0xd9, 0x5e, 0xdd, 0x9a, 0x0a, 0xf4, 0xa2, 0x88, 0xd5, 0xe4, 0x32, 0x86, 0xb2, 0xac, 0x07, 0x29, 0x77, 0xc4, 0x36, 0xb7, 0xc5, 0xff, 0x7a, 0xb6, 0x1c, 0x94, 0x84, 0xf2, 0x57, 0xf5, 0x8e, 0x01, 0x0c, 0x9b, 0x6a, 0xd4, 0x15, 0x81, 0xd7, 0x42, 0xcd, 0x19, 0x75, 0x2c, 0xde, 0x54, 0xd2, 0xb4, 0x20, 0xd6, 0x43, 0x65, 0x4e, 0x90, 0x96, 0xa8, 0x1e, 0xb9, 0xdc, 0xf8, 0x04, 0xc7, 0xc2, 0xed, 0x0e, 0x38, 0xd1, 0x3a, 0x5c, 0xe3, 0x99, 0x78, 0xcd, 0xd0, 0x2b, 0x25, 0x35, 0x09, 0x45, 0xde, 0x78, 0xfe, 0xec, 0xc0, 0xc2, 0xc2, 0x2f, 0xfd, 0x70, 0x5c, 0x3b, 0xa8, 0x11, 0x32, 0x65, 0xc7, 0xb9, 0xa7, 0xc8, 0xdd, 0xb5, 0x91, 0x78, 0xbd, 0x21, 0xd7, 0xf6, 0xc3, 0x1c, 0x6b, 0xe2, 0xc3, 0x67, 0x49, 0xee, 0x0f, 0x9a, 0xb8, 0xbc, 0x1d, 0xcf, 0x5d, 0xa5, 0xcb, 0x2d, 0x2d, 0x59, 0x62, 0x35, 0x8f, 0x71, 0xf9, 0x6a, 0xb3, 0x79, 0x2a, 0x25, 0x2a, 0x51, 0x9e, 0x41, 0x53, 0x51, 0xf4, 0x3e, 0x7e, 0x12, 0x03, 0x5b, 0x03, 0x28, 0xf2, 0x82, 0x08, 0xcf, 0x4b, 0xe5, 0x29, 0xd2, 0x99, 0xaa, 0x5c, 0x12, 0x8c, 0x9d, 0x5e, 0xd5, 0x75, 0xbf, 0x90, 0xc5, 0x35, 0x05, 0x69, 0xea, 0xa6, 0xf2, 0xd5, 0x52, 0x1d, 0xe1, 0x18, 0x03, 0x09, 0xf6, 0x86, 0xc9, 0x7e, 0x9a, 0xd6, 0xfa, 0x1e, 0xc1, 0xdd, 0x86, 0x27, 0xae, 0x89, 0x51, 0x58, 0x1c, 0xf6, 0x04, 0xb8, 0xb9, 0x17, 0xc5, 0xba, 0x43, 0x4a, 0x63, 0x7b, 0xe1, 0xbc, 0x8b, 0x79, 0xf4, 0xac, 0xaf, 0x77, 0x95, 0xf4, 0xe5, 0x1a, 0xab, 0xdb, 0x88, 0x50, 0x77, 0xbc, 0x4f, 0x3c, 0x68, 0xfc, 0x33, 0x18, 0xde, 0x58, 0x23, 0xd7, 0xe0, 0x80, 0x4e, 0xe9, 0x95, 0xb7, 0x03, 0x87, 0x95, 0x0f, 0x79, 0x93, 0x53, 0x68, 0x23, 0x00, 0xd4, 0xe7, 0x97, 0xf3, 0xca, 0xd6, 0x11, 0xb4, 0xc5, 0x62, 0xc8, 0x64, 0x0f, 0xf2, 0xb3, 0xfe, 0x29, 0x29, 0x16, 0xa9, 0x70, 0xfb, 0x98, 0xc1, 0x47, 0x5c, 0x1f, 0x4e, 0x27, 0xb9, 0xb3, 0x3c, 0xfe, 0x0d, 0x3a, 0xd9, 0x32, 0xa1, 0xeb, 0xe6, 0xa2, 0x7f, 0xc3, 0xb4, 0x46, 0x62, 0x29, 0x54, 0xae, 0xe1, 0x68, 0x36, 0x68, 0xc8, 0xbd, 0x4a, 0x3f, 0x90, 0x3b, 0xe5, 0xc7, 0x7d, 0xfd, 0xb8, 0xe8, 0x91, 0x4c, 0xed, 0xc5, 0x1f, 0x65, 0xfe, 0xd2, 0xd9, 0xc4, 0xd0, 0x3e, 0x13, 0xa6, 0x68, 0xd4, 0xc7, 0xea, 0x5e, 0x31, 0x88, 0x3e, 0x1b, 0x3d, 0xb6, 0x43, 0x63, 0xe2, 0xac, 0x5c, 0xc5, 0x4b, 0x54, 0xce, 0x69, 0xc6, 0xad, 0x52, 0xf8, 0x74, 0x99, 0x9b, 0x5d, 0xd2, 0xc5, 0x78, 0x2f, 0x03, 0xc3, 0xd5, 0x15, 0x05, 0xdf, 0x53, 0x6a, 0x1f, 0xe0, 0xd8, 0x60, 0xd3, 0x3e, 0xab, 0xed, 0x64, 0x1a, 0x94, 0x00, 0x89, 0xf1, 0x29, 0x7d, 0xd0, 0xf5, 0x7f, };
16812 static const u8 ed25519_731_test_vectors_expected_sig[] = {
16813 	0xa0, 0xb6, 0xa2, 0xaf, 0x15, 0xb6, 0xbe, 0x9e, 0x95, 0x1e, 0xf3, 0xf3, 0x2c, 0xbd, 0x1c, 0x67, 0x02, 0xe8, 0xe0, 0x17, 0xfb, 0xd3, 0x15, 0xa3, 0xf2, 0x59, 0x9c, 0x3f, 0x1a, 0x11, 0x86, 0x5d, 0x46, 0xe7, 0x84, 0x59, 0xa0, 0xd7, 0xf7, 0xbe, 0x04, 0x6a, 0xae, 0x29, 0x3c, 0xad, 0x09, 0x13, 0x7e, 0xc8, 0x47, 0xe2, 0x69, 0x28, 0x10, 0x6d, 0x9a, 0xa3, 0x5e, 0x09, 0x82, 0xb9, 0x92, 0x02, };
16814 static const ec_test_case ed25519_731_test_case = {
16815 	.name = "EDDSA25519-SHA512/wei25519 731",
16816 	.ec_str_p = &wei25519_str_params,
16817 	.priv_key = ed25519_731_test_vectors_priv_key,
16818 	.priv_key_len = sizeof(ed25519_731_test_vectors_priv_key),
16819 	.nn_random = NULL,
16820 	.hash_type = SHA512,
16821 	.msg = (const char *)ed25519_731_test_vectors_message,
16822 	.msglen = sizeof(ed25519_731_test_vectors_message),
16823 	.sig_type = EDDSA25519,
16824 	.exp_sig = ed25519_731_test_vectors_expected_sig,
16825 	.exp_siglen = sizeof(ed25519_731_test_vectors_expected_sig),
16826 	.adata = NULL,
16827 	.adata_len = 0
16828 };
16829 
16830 /************************************************/
16831 static const u8 ed25519_732_test_vectors_priv_key[] = {
16832 	0xf8, 0xff, 0x97, 0x03, 0x2a, 0x34, 0xcf, 0x99, 0x99, 0x08, 0x80, 0x58, 0xaf, 0x56, 0xff, 0x70, 0xb6, 0xac, 0xb2, 0xed, 0xf7, 0x59, 0xe1, 0x31, 0xfa, 0xec, 0x84, 0x40, 0xfd, 0xec, 0xf6, 0xc4, };
16833 static const u8 ed25519_732_test_vectors_message[] = {
16834 	0xdf, 0xb4, 0x1f, 0xb9, 0xd5, 0x37, 0x02, 0xcb, 0x2b, 0x9e, 0x3f, 0xfc, 0xad, 0x4e, 0xa6, 0x02, 0x71, 0x6f, 0x71, 0x8a, 0x7e, 0xa3, 0x3e, 0x21, 0x84, 0x3e, 0x2a, 0x6c, 0x05, 0x2c, 0x70, 0xc6, 0xc5, 0x14, 0x85, 0xd7, 0x2b, 0x53, 0xa5, 0xbb, 0x4e, 0x34, 0xe0, 0x3e, 0x3e, 0x1d, 0x1a, 0x52, 0x51, 0x8e, 0xb3, 0xe7, 0xf1, 0x8f, 0x2a, 0x1e, 0x1c, 0xaf, 0x78, 0xac, 0xb2, 0x11, 0x60, 0x89, 0xbe, 0xd4, 0xc6, 0x17, 0x13, 0x8e, 0x71, 0x6a, 0x91, 0x43, 0x1f, 0x2c, 0xf6, 0x44, 0xa1, 0x21, 0x0f, 0x6d, 0x19, 0x20, 0xd2, 0x85, 0x99, 0x42, 0x64, 0xd6, 0x46, 0x6b, 0x0d, 0x8d, 0x2c, 0x62, 0x63, 0x80, 0x44, 0x61, 0x6f, 0x57, 0x6e, 0xdc, 0x7d, 0x0d, 0x93, 0xcb, 0x66, 0x01, 0x31, 0xd4, 0xbb, 0x50, 0x87, 0x5e, 0x15, 0x36, 0x40, 0x12, 0x3a, 0x96, 0xf1, 0x5b, 0x75, 0xa5, 0xbc, 0xee, 0x46, 0xd5, 0xcc, 0x5e, 0xb1, 0xa4, 0x31, 0xc5, 0x9d, 0x2e, 0xad, 0xdf, 0xd5, 0x53, 0x15, 0x02, 0xfe, 0xb1, 0x55, 0x1b, 0xf7, 0x79, 0x1c, 0xd5, 0x98, 0x9d, 0x17, 0xd1, 0x02, 0x96, 0xd0, 0x1b, 0xa3, 0xae, 0x3e, 0x38, 0x4c, 0x67, 0x45, 0x26, 0xca, 0xb6, 0x2a, 0x7c, 0x24, 0xc0, 0xff, 0x67, 0x7d, 0xe7, 0x1c, 0xa1, 0x72, 0x62, 0x1a, 0x28, 0xa8, 0x5e, 0x01, 0xee, 0xfe, 0x07, 0xf6, 0xee, 0xf9, 0xc3, 0xec, 0xfd, 0x7f, 0x94, 0x98, 0xac, 0x42, 0xf4, 0x6a, 0x43, 0x71, 0x6f, 0x61, 0x53, 0x18, 0xa3, 0xb2, 0x87, 0x57, 0xc3, 0xa1, 0x5f, 0x4f, 0x1c, 0x38, 0x22, 0xae, 0x7a, 0x75, 0xc2, 0x03, 0xa2, 0x98, 0x25, 0x8d, 0x75, 0x36, 0x38, 0xcf, 0x42, 0x5e, 0x15, 0xbb, 0xc4, 0x62, 0x02, 0xb0, 0x93, 0xb8, 0xe4, 0xf3, 0xe6, 0x70, 0xfb, 0xb6, 0x63, 0xdb, 0x2b, 0x69, 0xc8, 0xfb, 0x0f, 0x62, 0x50, 0x74, 0xd8, 0x5a, 0x44, 0xd3, 0x50, 0xe0, 0x42, 0xbb, 0x1b, 0x74, 0x02, 0x1d, 0x19, 0x29, 0x97, 0xa2, 0xc2, 0x7d, 0xd6, 0xc8, 0x63, 0x48, 0x41, 0xd1, 0x00, 0xa0, 0x34, 0x4b, 0xae, 0xd7, 0x50, 0xa3, 0x9f, 0xf5, 0xdc, 0xd9, 0x84, 0x8d, 0xfc, 0xf0, 0x9e, 0x5c, 0x8c, 0x47, 0x96, 0x7b, 0x96, 0x55, 0x6e, 0x23, 0x32, 0xca, 0x17, 0xd8, 0xe4, 0x2d, 0xd8, 0xf3, 0x93, 0xa5, 0x44, 0x5a, 0x37, 0x22, 0x44, 0x60, 0x0b, 0x30, 0x01, 0xb8, 0xfe, 0x86, 0xc4, 0x5e, 0xaf, 0xc6, 0xe7, 0x38, 0xaa, 0x7e, 0x11, 0x7b, 0x4a, 0x79, 0xfa, 0x2e, 0x6b, 0x00, 0xf4, 0x64, 0x92, 0x8d, 0x18, 0x56, 0xc8, 0x3e, 0xcf, 0xe8, 0x7d, 0xd3, 0x4d, 0x15, 0x8f, 0x5c, 0xb4, 0xe4, 0xf4, 0xd6, 0x10, 0xf5, 0x97, 0x17, 0xec, 0x79, 0x0b, 0xd3, 0xff, 0x87, 0x20, 0x40, 0xb6, 0x7e, 0x8d, 0x39, 0x39, 0xe8, 0x04, 0xe3, 0xb5, 0xdb, 0x98, 0x5a, 0x09, 0x56, 0x21, 0xcb, 0xcc, 0xd6, 0x86, 0xc0, 0x93, 0x4e, 0xce, 0x3e, 0x27, 0xab, 0x2c, 0x6c, 0xe3, 0x3f, 0xb5, 0x2b, 0x11, 0x1f, 0x48, 0xe4, 0xf2, 0x74, 0xbd, 0xf3, 0x20, 0xd0, 0xb0, 0x23, 0x84, 0xc8, 0x3c, 0x49, 0xe1, 0xa0, 0x41, 0xbd, 0x23, 0x19, 0x10, 0x9c, 0x85, 0xa0, 0x6d, 0x80, 0x48, 0xa9, 0x93, 0x35, 0x7a, 0xbf, 0xd8, 0x11, 0xac, 0x2f, 0x38, 0x05, 0x9d, 0x07, 0x7a, 0xcb, 0xc3, 0x6a, 0xa9, 0x66, 0xc0, 0x28, 0x90, 0x37, 0x48, 0x62, 0x5f, 0x92, 0xe8, 0xf7, 0x9d, 0x51, 0xbd, 0xa1, 0x0f, 0x78, 0x52, 0x29, 0x77, 0xf7, 0x6e, 0xc4, 0xe8, 0x85, 0xe4, 0x9a, 0x46, 0xc6, 0x8d, 0xe0, 0x9f, 0x3d, 0xa8, 0xf8, 0x6b, 0x71, 0xae, 0x64, 0x23, 0xbd, 0x29, 0xde, 0xef, 0x1c, 0xc6, 0xa1, 0x13, 0xea, 0xc1, 0x15, 0xa6, 0xcd, 0xe2, 0xcc, 0xd0, 0x11, 0xfc, 0x1c, 0x0f, 0x0e, 0x34, 0x27, 0xf4, 0x3c, 0x3e, 0x96, 0xfc, 0x41, 0x56, 0xed, 0xf6, 0x2d, 0xdf, 0xb7, 0xb0, 0x83, 0x6b, 0x88, 0x8b, 0xab, 0x3c, 0x43, 0x45, 0x05, 0x5a, 0x6c, 0x41, 0x78, 0xe9, 0xe2, 0x28, 0x29, 0xfd, 0x8c, 0xfc, 0xe3, 0x9b, 0x0b, 0x84, 0x44, 0xeb, 0x26, 0x48, 0x7c, 0xc9, 0xdc, 0x82, 0x60, 0x6f, 0xea, 0xad, 0xaf, 0x49, 0x78, 0x69, 0x4e, 0x65, 0x64, 0xf2, 0x72, 0x9c, 0x1b, 0x13, 0xab, 0x37, 0xc9, 0x07, 0x2d, 0xb4, 0xe9, 0xde, 0x94, 0x0e, 0xe5, 0xf1, 0xd0, 0x58, 0x84, 0xae, 0x7f, 0xd9, 0xd9, 0xec, 0x9c, 0xb7, 0xde, 0x56, 0x34, 0x76, 0x00, 0xa8, 0x8d, 0xea, 0x92, 0x08, 0xa6, 0x34, 0x19, 0xfc, 0xe2, 0x9e, 0xe5, 0x00, 0x55, 0xa3, 0x74, 0xa8, 0xf2, 0x2f, 0x9a, 0xe2, 0xbe, 0x98, 0x05, 0xa9, 0xf4, 0x76, 0x15, 0xaa, 0x59, 0x57, 0x6b, 0x44, 0x04, 0x2f, 0xf1, 0x26, 0xa8, 0x98, 0x24, 0xe3, 0x6a, 0xd6, 0xbc, 0x58, 0xe0, 0x6b, 0xb9, 0x0f, 0xbe, 0xef, 0xba, 0xe5, 0xd6, 0xd7, 0xd6, 0x24, 0x30, 0xf3, 0x73, 0xb6, 0x29, 0x6f, 0xbf, 0xcd, 0x4d, 0x66, 0x20, 0x16, 0x83, 0x53, 0x58, 0x3f, 0xbd, 0x3d, 0x5a, 0x29, 0x2b, 0x95, 0x72, 0x51, 0x75, 0x34, 0xe2, 0xfb, 0x0b, 0xee, 0xf2, 0xfa, 0x98, 0xa4, 0x64, 0xe5, 0x91, 0x03, 0xe7, 0xa0, 0x42, 0x87, 0xf1, 0x5d, 0xad, 0x0f, 0xac, 0x54, 0x97, 0x0e, 0x77, 0x15, 0x07, 0x8d, 0x63, 0xec, 0x26, 0x36, 0x2f, 0x6f, 0xba, 0xbc, 0xdd, 0xea, 0xf7, };
16835 static const u8 ed25519_732_test_vectors_expected_sig[] = {
16836 	0x50, 0x9e, 0x9e, 0xad, 0xfe, 0x8d, 0xde, 0x79, 0x14, 0xac, 0x20, 0xca, 0xfc, 0x0b, 0x0a, 0xf2, 0x2b, 0x84, 0xdd, 0x8a, 0x21, 0x0a, 0x48, 0x12, 0xcd, 0x8c, 0xae, 0x39, 0xb0, 0xa2, 0x72, 0xe5, 0x3e, 0x02, 0x24, 0x6d, 0xc8, 0x93, 0x9e, 0x92, 0x26, 0x92, 0x03, 0x36, 0xe1, 0x40, 0xb3, 0x15, 0x32, 0xd0, 0x68, 0x13, 0x7a, 0x34, 0x16, 0x1e, 0x59, 0x9a, 0x86, 0x94, 0xa9, 0x5d, 0xdf, 0x01, };
16837 static const ec_test_case ed25519_732_test_case = {
16838 	.name = "EDDSA25519-SHA512/wei25519 732",
16839 	.ec_str_p = &wei25519_str_params,
16840 	.priv_key = ed25519_732_test_vectors_priv_key,
16841 	.priv_key_len = sizeof(ed25519_732_test_vectors_priv_key),
16842 	.nn_random = NULL,
16843 	.hash_type = SHA512,
16844 	.msg = (const char *)ed25519_732_test_vectors_message,
16845 	.msglen = sizeof(ed25519_732_test_vectors_message),
16846 	.sig_type = EDDSA25519,
16847 	.exp_sig = ed25519_732_test_vectors_expected_sig,
16848 	.exp_siglen = sizeof(ed25519_732_test_vectors_expected_sig),
16849 	.adata = NULL,
16850 	.adata_len = 0
16851 };
16852 
16853 /************************************************/
16854 static const u8 ed25519_733_test_vectors_priv_key[] = {
16855 	0x2e, 0x4c, 0x39, 0x21, 0x9f, 0xc9, 0x2a, 0x53, 0x8e, 0x48, 0xe9, 0x5f, 0xbf, 0xcf, 0xef, 0x30, 0xf5, 0xa2, 0x1b, 0x78, 0x94, 0x0b, 0x81, 0x05, 0x3b, 0xda, 0xd4, 0x60, 0x2b, 0x4c, 0x96, 0x90, };
16856 static const u8 ed25519_733_test_vectors_message[] = {
16857 	0xc8, 0x7d, 0x1f, 0xba, 0x9d, 0x94, 0xa6, 0xa5, 0x40, 0x89, 0x80, 0xfc, 0x80, 0x83, 0x98, 0x0f, 0xd2, 0xd2, 0x52, 0xfa, 0xe5, 0x40, 0xf6, 0xee, 0xc1, 0x9e, 0xd6, 0x74, 0x6c, 0x29, 0xe3, 0x39, 0xa1, 0xc2, 0x9f, 0x6f, 0x53, 0xbc, 0x23, 0xfd, 0x6b, 0xfa, 0x43, 0x85, 0x07, 0xef, 0xf5, 0xda, 0xf9, 0x03, 0x40, 0x3c, 0xda, 0x70, 0x7b, 0x4d, 0xc5, 0xe8, 0x44, 0x80, 0x5d, 0x6b, 0x1c, 0xeb, 0x4a, 0xff, 0xf4, 0xb2, 0x32, 0xe8, 0xe6, 0x9d, 0x7d, 0x27, 0x1f, 0x3c, 0x06, 0x7c, 0x48, 0x54, 0xf3, 0xd9, 0x4f, 0x27, 0xfe, 0x32, 0x55, 0x81, 0xfa, 0xca, 0x79, 0xd1, 0xf0, 0x2a, 0x26, 0x29, 0x0a, 0xd2, 0x3a, 0xf7, 0x11, 0x00, 0xc1, 0x2c, 0x09, 0x15, 0x76, 0x47, 0xca, 0x9d, 0xa4, 0x3d, 0x76, 0x90, 0xdd, 0xcd, 0x94, 0xdb, 0x65, 0xe0, 0x00, 0x98, 0x9c, 0x87, 0x8b, 0x75, 0xa0, 0xff, 0x22, 0xd2, 0xc7, 0x09, 0x62, 0x59, 0x4c, 0x9b, 0x08, 0x08, 0xf2, 0x78, 0x46, 0xcc, 0xac, 0x85, 0x67, 0xbc, 0xe5, 0xd2, 0xe3, 0xb7, 0x60, 0x28, 0x09, 0xf2, 0x3b, 0x59, 0xcd, 0x71, 0x8a, 0x08, 0x05, 0xd1, 0x08, 0xf3, 0x1a, 0x63, 0x2a, 0x05, 0xb8, 0xdf, 0xa5, 0x03, 0x5a, 0xb9, 0x46, 0x1a, 0xeb, 0xa4, 0x16, 0x00, 0x9d, 0x74, 0xfd, 0xf9, 0xe0, 0x07, 0x20, 0x28, 0x56, 0x89, 0x0d, 0x2c, 0xff, 0x80, 0xfa, 0x24, 0x0b, 0x97, 0x8a, 0x48, 0x27, 0x0f, 0xcb, 0x2f, 0x47, 0x36, 0x97, 0xbc, 0xba, 0x8e, 0x73, 0x0a, 0x55, 0xc2, 0x87, 0x61, 0x91, 0x9a, 0x23, 0xbe, 0x41, 0xda, 0x27, 0xff, 0xea, 0x09, 0xe3, 0x55, 0x9c, 0xaa, 0xab, 0xf9, 0x51, 0x9e, 0xc0, 0x8e, 0x1f, 0xfa, 0x86, 0x81, 0x7a, 0xa3, 0xe8, 0x87, 0x4f, 0xa8, 0x16, 0xe7, 0x71, 0x8c, 0x5b, 0x2f, 0x34, 0x49, 0x67, 0xba, 0x1b, 0xc2, 0x81, 0x9c, 0x4f, 0x04, 0x5a, 0x97, 0xb4, 0x05, 0x44, 0xea, 0x61, 0xd7, 0x17, 0x08, 0x3c, 0xca, 0xf1, 0x1e, 0x9d, 0xdc, 0x04, 0xa3, 0x59, 0x8e, 0xf1, 0x81, 0xe7, 0xbe, 0xf4, 0xac, 0xef, 0x45, 0xb6, 0x55, 0x1b, 0x47, 0x8a, 0x0d, 0x77, 0x31, 0xc4, 0xf0, 0x8c, 0xe5, 0x80, 0x2f, 0x78, 0x25, 0x8d, 0x41, 0x90, 0x17, 0x66, 0x10, 0x76, 0xd7, 0xd6, 0xd2, 0xef, 0x39, 0xe5, 0x7c, 0xf9, 0xcd, 0x93, 0x97, 0xdc, 0xc5, 0xde, 0xbf, 0x64, 0xab, 0x82, 0xb6, 0x61, 0x59, 0xf5, 0x78, 0x31, 0x6e, 0x74, 0xcd, 0x49, 0xf5, 0xad, 0x2c, 0x6f, 0xef, 0x83, 0xcf, 0x08, 0x68, 0x3b, 0x95, 0x70, 0xa9, 0x46, 0xad, 0x49, 0x03, 0xdf, 0x4e, 0x96, 0xec, 0x00, 0x8e, 0x14, 0xa5, 0x01, 0xfa, 0x93, 0x86, 0xbd, 0xaf, 0x2a, 0x63, 0x99, 0x3c, 0x6c, 0x9b, 0xdf, 0x23, 0x1f, 0xd0, 0x9e, 0xa6, 0xf9, 0x6e, 0xf4, 0xd4, 0xe2, 0x9a, 0x3a, 0x33, 0x27, 0xcb, 0xf7, 0x4e, 0xa8, 0x31, 0x05, 0x4e, 0x66, 0xca, 0x86, 0x68, 0x0c, 0x6c, 0xe5, 0x3b, 0x66, 0xf9, 0x46, 0x5d, 0x06, 0xb3, 0xfa, 0x07, 0x98, 0xbb, 0x69, 0x05, 0xae, 0x38, 0x45, 0x59, 0x34, 0xf2, 0xfb, 0x7e, 0x0b, 0xa4, 0x72, 0x32, 0x89, 0x89, 0xf0, 0x01, 0x30, 0x86, 0x71, 0xcc, 0xcb, 0x56, 0x6d, 0x22, 0x2c, 0x72, 0x16, 0x5b, 0xb3, 0xa7, 0x44, 0xfb, 0x98, 0xe2, 0x21, 0x0f, 0x96, 0x20, 0x68, 0x0d, 0xf3, 0xe3, 0xcd, 0x14, 0xa8, 0xbd, 0x94, 0xb5, 0x74, 0x5c, 0x00, 0x16, 0xdd, 0xa7, 0x7f, 0x05, 0x9f, 0x26, 0x05, 0x3b, 0x64, 0xcf, 0x45, 0x23, 0xc3, 0xd4, 0x29, 0x11, 0x2f, 0xb6, 0xb3, 0x28, 0x39, 0x8b, 0xc6, 0x30, 0xa2, 0xe9, 0x06, 0xb9, 0x5a, 0x6c, 0x57, 0x80, 0xcf, 0xdc, 0x06, 0x41, 0xbe, 0x47, 0x51, 0xbe, 0xbd, 0xdf, 0x77, 0x24, 0xdc, 0x9c, 0x27, 0xe7, 0x8d, 0x60, 0xed, 0x0f, 0xd7, 0x36, 0xd5, 0xab, 0xd8, 0x89, 0x29, 0xc1, 0x79, 0x5d, 0x47, 0x3a, 0xbd, 0x2b, 0x03, 0x20, 0xc5, 0x40, 0x47, 0x57, 0x28, 0x82, 0x18, 0x67, 0xa4, 0x09, 0xa2, 0xff, 0x13, 0xcc, 0x44, 0xce, 0x35, 0xe5, 0x98, 0x1e, 0x9f, 0x6b, 0x87, 0xa2, 0x8d, 0x4f, 0xa8, 0xb8, 0x67, 0x5e, 0x50, 0x3f, 0xae, 0xfc, 0xa7, 0xc1, 0xd7, 0x98, 0x47, 0x37, 0x87, 0x1f, 0xe9, 0x19, 0xac, 0x41, 0x4e, 0xea, 0x26, 0x5e, 0xe3, 0x1f, 0x9f, 0x78, 0xf5, 0x21, 0xf3, 0xf4, 0xf8, 0xd0, 0x0c, 0x3f, 0xb7, 0x91, 0x71, 0xf3, 0xc6, 0xa5, 0xdb, 0xf5, 0xe1, 0xac, 0x8b, 0xf6, 0x3b, 0x4c, 0x3d, 0x8d, 0x8b, 0xc1, 0x21, 0x03, 0x6e, 0x9e, 0x55, 0xbb, 0x70, 0x2e, 0xa6, 0xc8, 0x6e, 0x92, 0x5e, 0xc0, 0xb9, 0x84, 0xde, 0xd2, 0xc7, 0x1f, 0x3b, 0xfd, 0x49, 0x32, 0xe6, 0xc4, 0x1b, 0x58, 0x2f, 0xd0, 0x2c, 0xa5, 0x9f, 0x53, 0xce, 0x29, 0x74, 0x45, 0x78, 0x5c, 0xc4, 0xca, 0xc2, 0x47, 0xb0, 0xb8, 0x4e, 0x7f, 0xa0, 0xbc, 0xdc, 0xf7, 0x9b, 0x3e, 0x4a, 0x15, 0x5f, 0x98, 0x78, 0xc1, 0xf6, 0x43, 0xbe, 0x9c, 0x42, 0xf7, 0xa4, 0xf2, 0x72, 0x60, 0x44, 0x45, 0x05, 0xc1, 0x84, 0x5b, 0xd5, 0x3b, 0x55, 0x0a, 0x31, 0xd7, 0x95, 0x3c, 0xc7, 0x38, 0x86, 0x1f, 0x46, 0xbd, 0xf4, 0x87, 0x0f, 0x3a, 0x77, 0xac, 0xe1, 0x91, 0xab, 0xd6, 0x3c, 0x45, 0xad, 0xb1, 0x53, 0x90, 0x9f, 0xb5, 0x9a, 0xb5, 0xdb, 0x9b, };
16858 static const u8 ed25519_733_test_vectors_expected_sig[] = {
16859 	0x39, 0x45, 0x20, 0x12, 0x2b, 0xb0, 0xa5, 0x64, 0x64, 0x8a, 0x7a, 0x8b, 0xc8, 0xdc, 0x73, 0x63, 0x6c, 0x51, 0x77, 0x46, 0xa3, 0xc8, 0xa0, 0x5b, 0x90, 0x1e, 0x72, 0x52, 0xfe, 0xf0, 0xe5, 0x02, 0x3d, 0x90, 0x99, 0x1e, 0x31, 0x1b, 0x53, 0x82, 0xd4, 0x91, 0x00, 0xe5, 0x26, 0x33, 0xc7, 0x0f, 0xe9, 0xc2, 0x6c, 0x14, 0x50, 0xe0, 0x60, 0x3e, 0x6d, 0x45, 0x22, 0x99, 0xaf, 0x4d, 0xae, 0x07, };
16860 static const ec_test_case ed25519_733_test_case = {
16861 	.name = "EDDSA25519-SHA512/wei25519 733",
16862 	.ec_str_p = &wei25519_str_params,
16863 	.priv_key = ed25519_733_test_vectors_priv_key,
16864 	.priv_key_len = sizeof(ed25519_733_test_vectors_priv_key),
16865 	.nn_random = NULL,
16866 	.hash_type = SHA512,
16867 	.msg = (const char *)ed25519_733_test_vectors_message,
16868 	.msglen = sizeof(ed25519_733_test_vectors_message),
16869 	.sig_type = EDDSA25519,
16870 	.exp_sig = ed25519_733_test_vectors_expected_sig,
16871 	.exp_siglen = sizeof(ed25519_733_test_vectors_expected_sig),
16872 	.adata = NULL,
16873 	.adata_len = 0
16874 };
16875 
16876 /************************************************/
16877 static const u8 ed25519_734_test_vectors_priv_key[] = {
16878 	0xf0, 0x92, 0xe6, 0xbe, 0x8d, 0x2d, 0x9a, 0xd0, 0x69, 0xa3, 0xe2, 0xb9, 0x76, 0xd2, 0x44, 0xe3, 0x4c, 0x15, 0xc2, 0x8c, 0x48, 0xd3, 0x2f, 0x55, 0x60, 0xa5, 0x41, 0x85, 0xd1, 0x50, 0x15, 0x02, };
16879 static const u8 ed25519_734_test_vectors_message[] = {
16880 	0x2c, 0x25, 0x5f, 0xb2, 0x5d, 0x45, 0xb0, 0x86, 0xc0, 0x71, 0xe0, 0x3e, 0x52, 0x5b, 0x4d, 0x72, 0x85, 0x78, 0xfb, 0xb6, 0xb0, 0xc6, 0x0d, 0xa9, 0x41, 0xe6, 0xbf, 0x2a, 0x48, 0x98, 0xb2, 0xd5, 0xb6, 0x98, 0x8c, 0x53, 0x30, 0x27, 0x85, 0xab, 0x7a, 0x3b, 0xc4, 0xbb, 0x2c, 0x20, 0x5a, 0xcd, 0x27, 0xd6, 0xa4, 0xcb, 0xdd, 0x1a, 0x0c, 0x08, 0x89, 0xde, 0xd7, 0x84, 0x26, 0x4c, 0xb7, 0xc0, 0x28, 0x89, 0xc5, 0xc7, 0x11, 0x3f, 0xc9, 0x0b, 0xbb, 0xcd, 0x31, 0xff, 0x00, 0x14, 0x32, 0xc0, 0x53, 0xf9, 0x71, 0x07, 0x3c, 0xf6, 0x71, 0x2f, 0x66, 0x7f, 0xce, 0x46, 0x98, 0x77, 0x6b, 0x98, 0xcc, 0x54, 0x44, 0xc6, 0x92, 0xab, 0xd1, 0x28, 0x81, 0x98, 0xbe, 0x5a, 0xd5, 0x67, 0x46, 0x09, 0xf7, 0xe1, 0x39, 0xad, 0x1b, 0x9c, 0xcb, 0x94, 0x3f, 0x8d, 0xfd, 0x9d, 0x12, 0xc5, 0x4e, 0xce, 0xe2, 0x78, 0x34, 0x1b, 0x2e, 0xe1, 0x27, 0x79, 0x91, 0xca, 0x62, 0xcd, 0x3b, 0xfe, 0x12, 0x8d, 0x13, 0x92, 0x96, 0x4e, 0x95, 0x88, 0xe2, 0xf9, 0x7c, 0x32, 0x17, 0x04, 0xa3, 0xde, 0x10, 0x61, 0x88, 0xc5, 0xeb, 0x33, 0x5a, 0xa5, 0xa1, 0x9a, 0xcc, 0x90, 0x67, 0xb4, 0xa9, 0x41, 0x29, 0xb9, 0xd1, 0xa6, 0x16, 0x7c, 0x4b, 0xbf, 0xb5, 0x6f, 0xb9, 0x76, 0x84, 0xcb, 0xbd, 0x72, 0x0c, 0x86, 0x86, 0x9e, 0x00, 0x20, 0xab, 0x07, 0x76, 0xcd, 0xc9, 0x95, 0x4f, 0xeb, 0xa8, 0x62, 0x12, 0x4b, 0x07, 0x3f, 0xba, 0x8d, 0xe9, 0xea, 0x9a, 0x38, 0xea, 0xcf, 0xa0, 0x03, 0xae, 0x4f, 0x1c, 0xdc, 0xbf, 0x15, 0xc3, 0x2f, 0xb6, 0xb9, 0x70, 0xc7, 0x31, 0x15, 0xdd, 0xff, 0xcd, 0x4f, 0xa3, 0xb7, 0x18, 0x46, 0x11, 0x0e, 0xde, 0xc2, 0x57, 0xfc, 0xae, 0xd6, 0x11, 0x36, 0x04, 0xf7, 0x19, 0x25, 0x72, 0x57, 0x72, 0x64, 0xb9, 0x90, 0x5c, 0xa6, 0xae, 0xd8, 0xda, 0xec, 0x13, 0x84, 0x03, 0xca, 0x41, 0xaa, 0x95, 0x42, 0x78, 0xa5, 0x72, 0x0b, 0x26, 0x7b, 0x90, 0xca, 0x16, 0x3a, 0x9b, 0xdf, 0x44, 0x7e, 0xad, 0xe8, 0xde, 0xb7, 0x69, 0xa3, 0xb4, 0x92, 0x37, 0xa7, 0x35, 0x16, 0x97, 0x7c, 0x28, 0x73, 0x45, 0x55, 0xdd, 0x23, 0x4c, 0xa7, 0xde, 0x49, 0x99, 0x26, 0x1b, 0xc7, 0x96, 0x0f, 0x53, 0x6b, 0xa8, 0xa3, 0x5a, 0xd3, 0xd0, 0x2c, 0x75, 0xf1, 0xc2, 0xbe, 0xa0, 0xa0, 0x61, 0x2e, 0x7d, 0x49, 0xc4, 0x03, 0x97, 0xdd, 0x6a, 0xf5, 0xff, 0x58, 0xba, 0xe6, 0xa6, 0x4b, 0x6a, 0x77, 0xe9, 0x81, 0xf9, 0x2d, 0x15, 0x9e, 0x0b, 0x2b, 0xd2, 0x05, 0xab, 0x15, 0x70, 0x52, 0xf4, 0x70, 0x17, 0xa3, 0xe1, 0x8a, 0xec, 0x94, 0x4d, 0x04, 0x65, 0xee, 0x00, 0x17, 0xe9, 0x61, 0x48, 0xa6, 0x12, 0x9f, 0x74, 0xd3, 0xcc, 0xb4, 0x89, 0xfe, 0xa1, 0x3a, 0x15, 0xa9, 0xb9, 0xac, 0xed, 0x58, 0xc6, 0xee, 0x0e, 0x6e, 0x84, 0xe0, 0x5f, 0xda, 0xdf, 0xae, 0x07, 0xb3, 0x34, 0xa9, 0x8f, 0xc3, 0x7f, 0x7e, 0x51, 0x1c, 0xd5, 0xa4, 0x4e, 0x9c, 0x74, 0xe4, 0x78, 0xd3, 0x49, 0xe3, 0x0e, 0x29, 0xae, 0xb4, 0x6a, 0x4d, 0xf0, 0x1e, 0x43, 0x07, 0xfe, 0x65, 0xe1, 0x39, 0x4a, 0x75, 0x8f, 0x6a, 0xda, 0x2f, 0xb1, 0x20, 0x22, 0x5c, 0xcd, 0x50, 0xa4, 0x90, 0x13, 0xe6, 0xc9, 0xf1, 0x75, 0xaf, 0x90, 0xf3, 0xfc, 0x8c, 0x57, 0xe7, 0xa6, 0xa9, 0x69, 0xa9, 0x16, 0xc3, 0xf1, 0xaa, 0xcc, 0x22, 0xf3, 0xe0, 0x1a, 0x07, 0x0c, 0xc4, 0x8e, 0x6f, 0xd8, 0x78, 0xe2, 0xbd, 0x07, 0x3d, 0xf9, 0xee, 0x6f, 0x05, 0x9b, 0x98, 0x56, 0x84, 0x04, 0xfc, 0x7e, 0xae, 0x7d, 0x4b, 0xf6, 0xfa, 0x16, 0xc0, 0xc8, 0x03, 0xc6, 0xbe, 0x84, 0xe8, 0xb7, 0x9c, 0x67, 0xaf, 0xfc, 0x8c, 0x88, 0xca, 0xbd, 0xee, 0xbc, 0x11, 0x34, 0xbb, 0x23, 0x86, 0xe2, 0x2b, 0xa4, 0xd2, 0xe9, 0xe0, 0xf3, 0xe1, 0xab, 0x3a, 0x0d, 0xac, 0x7c, 0x80, 0xdd, 0xee, 0xd7, 0x73, 0xcd, 0xa0, 0xc4, 0x1d, 0xc9, 0xde, 0xfa, 0x67, 0xfe, 0xa3, 0x77, 0x69, 0xcb, 0x4a, 0x1e, 0x15, 0x22, 0xd7, 0xe0, 0xb3, 0xd7, 0xc4, 0x63, 0x8b, 0xcd, 0x98, 0x31, 0x53, 0xd4, 0x78, 0xbe, 0x5e, 0xcf, 0x2b, 0x6a, 0xb1, 0xb4, 0x01, 0x24, 0xe4, 0x22, 0x2b, 0x8c, 0xaa, 0x46, 0x47, 0xbd, 0x50, 0xd7, 0x4d, 0x20, 0x39, 0x43, 0xab, 0x20, 0x93, 0x8d, 0x5f, 0x27, 0xd9, 0x08, 0xa6, 0x73, 0x67, 0x40, 0x46, 0xce, 0x2e, 0xf1, 0x8e, 0x85, 0x8b, 0x0a, 0x01, 0xa7, 0xe7, 0x53, 0x0d, 0xed, 0x0f, 0x8c, 0xc8, 0x9e, 0xf0, 0x9b, 0x73, 0xca, 0x59, 0x7c, 0xf7, 0x3a, 0xfb, 0xc9, 0xa2, 0x71, 0xa4, 0xd2, 0x3c, 0x92, 0xfe, 0x59, 0x18, 0x83, 0xc4, 0x40, 0x10, 0x9c, 0x4e, 0xf4, 0x16, 0x67, 0x0b, 0x7f, 0x2c, 0x59, 0x05, 0xb7, 0x7f, 0x65, 0xf5, 0x6d, 0x09, 0xd4, 0x02, 0x50, 0x35, 0x6f, 0x9b, 0x1d, 0xbc, 0xaf, 0x1e, 0xe2, 0xc0, 0xb6, 0x36, 0x96, 0xf8, 0x4d, 0x68, 0xdd, 0xbe, 0xa1, 0x60, 0x08, 0x51, 0x51, 0xa9, 0x52, 0x62, 0x74, 0xd7, 0xb8, 0x46, 0xcc, 0xeb, 0x6c, 0x43, 0x48, 0x09, 0x84, 0x84, 0xde, 0x3b, 0xb7, 0x23, 0xae, 0x5e, 0x85, 0x27, 0x6d, 0xf4, 0x9f, 0x56, 0x34, 0x13, 0x0f, 0xf9, 0x05, 0x75, 0x4f, };
16881 static const u8 ed25519_734_test_vectors_expected_sig[] = {
16882 	0x63, 0xcd, 0x4c, 0x0b, 0xa3, 0xbe, 0x93, 0x97, 0xcc, 0x0f, 0x3c, 0x1a, 0xf3, 0x48, 0xec, 0x4b, 0x8a, 0x91, 0xe4, 0x2f, 0xee, 0x67, 0x5d, 0xa1, 0xd0, 0x59, 0x00, 0xb9, 0xa8, 0x6c, 0x13, 0x8f, 0x91, 0x74, 0xeb, 0x99, 0x6b, 0xbd, 0xf3, 0x1c, 0x42, 0x95, 0xe0, 0xc5, 0x78, 0xac, 0x0f, 0x9d, 0x53, 0x76, 0x41, 0xa2, 0xaf, 0xd5, 0xdf, 0xf9, 0x3a, 0x39, 0xc5, 0xcd, 0x9d, 0x3c, 0x48, 0x0b, };
16883 static const ec_test_case ed25519_734_test_case = {
16884 	.name = "EDDSA25519-SHA512/wei25519 734",
16885 	.ec_str_p = &wei25519_str_params,
16886 	.priv_key = ed25519_734_test_vectors_priv_key,
16887 	.priv_key_len = sizeof(ed25519_734_test_vectors_priv_key),
16888 	.nn_random = NULL,
16889 	.hash_type = SHA512,
16890 	.msg = (const char *)ed25519_734_test_vectors_message,
16891 	.msglen = sizeof(ed25519_734_test_vectors_message),
16892 	.sig_type = EDDSA25519,
16893 	.exp_sig = ed25519_734_test_vectors_expected_sig,
16894 	.exp_siglen = sizeof(ed25519_734_test_vectors_expected_sig),
16895 	.adata = NULL,
16896 	.adata_len = 0
16897 };
16898 
16899 /************************************************/
16900 static const u8 ed25519_735_test_vectors_priv_key[] = {
16901 	0x01, 0xa2, 0x47, 0x94, 0x3a, 0xfe, 0x83, 0xf0, 0x36, 0xb6, 0xb6, 0x0f, 0x23, 0xd9, 0x77, 0x74, 0xfd, 0x23, 0x20, 0x8e, 0xdc, 0x31, 0xcf, 0x3d, 0x88, 0x20, 0xe9, 0xdc, 0x63, 0x66, 0x11, 0x03, };
16902 static const u8 ed25519_735_test_vectors_message[] = {
16903 	0x08, 0xd8, 0x14, 0x95, 0xda, 0x77, 0xf4, 0x07, 0x25, 0x5c, 0xc4, 0x1a, 0x81, 0x8e, 0xef, 0xa7, 0x27, 0xe2, 0xc4, 0x7a, 0xe4, 0x11, 0xf4, 0xb5, 0x41, 0xf0, 0x1f, 0x81, 0x1d, 0x90, 0x6d, 0x55, 0xfb, 0x1e, 0x3c, 0x9c, 0x48, 0x4d, 0xf3, 0x05, 0x65, 0x36, 0x4d, 0xe9, 0xdc, 0xb9, 0xfe, 0xa0, 0xaf, 0x66, 0x11, 0x2f, 0xe7, 0x5f, 0xd1, 0x1a, 0xe8, 0x1d, 0x26, 0x41, 0xb5, 0x47, 0x58, 0x9f, 0x8b, 0x97, 0x4a, 0x97, 0xe7, 0x97, 0x6e, 0xd6, 0x92, 0xaa, 0xd6, 0x40, 0xed, 0xd2, 0x88, 0xbd, 0x86, 0x3d, 0x11, 0xc4, 0xca, 0x98, 0x36, 0xf9, 0xd7, 0xc1, 0x15, 0xc3, 0xd9, 0x88, 0x30, 0xd6, 0x42, 0x47, 0xcb, 0x6f, 0x8f, 0xb6, 0x03, 0xc6, 0x98, 0x11, 0x33, 0x55, 0x2a, 0x32, 0x04, 0x04, 0x19, 0x61, 0xbd, 0xd8, 0x3e, 0x2f, 0x9d, 0xeb, 0xa7, 0x70, 0xc0, 0x39, 0x4f, 0x9b, 0x60, 0x2a, 0x45, 0x35, 0x51, 0x07, 0x49, 0x21, 0xa3, 0xde, 0x28, 0x32, 0x13, 0x69, 0xd7, 0xf8, 0xca, 0x64, 0x0c, 0x45, 0x10, 0x9e, 0x8f, 0x52, 0x2c, 0x97, 0xed, 0x9f, 0x35, 0xb9, 0x27, 0x7a, 0x35, 0x0e, 0x29, 0x59, 0x31, 0xb4, 0x2e, 0x01, 0x35, 0xe9, 0x4a, 0x92, 0xfe, 0xd3, 0x63, 0xd6, 0xca, 0xe3, 0x92, 0xf7, 0xc4, 0x51, 0x99, 0x32, 0x7e, 0x24, 0xb4, 0xcf, 0xa5, 0x89, 0x8a, 0xb5, 0x99, 0xae, 0x7b, 0xd5, 0x0b, 0xd3, 0xa0, 0x0c, 0x0d, 0x00, 0x7e, 0x95, 0xfa, 0xf8, 0xf2, 0xae, 0x10, 0x38, 0x02, 0xca, 0x7e, 0x53, 0xb2, 0x79, 0x18, 0x4d, 0x06, 0x90, 0x5f, 0x57, 0x48, 0xca, 0x8b, 0xe1, 0xf7, 0x2e, 0x66, 0x8c, 0xb8, 0x32, 0x83, 0xdd, 0x00, 0x40, 0x64, 0x91, 0xf8, 0xb9, 0xb4, 0xe5, 0xa9, 0xd4, 0xa5, 0x43, 0x8b, 0x2f, 0xa4, 0x37, 0x1e, 0x0b, 0x05, 0x68, 0x6f, 0x87, 0x57, 0x5b, 0xaa, 0x79, 0x6e, 0x30, 0x2f, 0x08, 0xff, 0xc4, 0x25, 0x66, 0x27, 0x50, 0xa3, 0x3a, 0x0c, 0x9c, 0xfa, 0xa4, 0xb4, 0xd7, 0x04, 0x1f, 0x92, 0x64, 0xfe, 0xd7, 0xbe, 0x4f, 0x9f, 0xde, 0x2c, 0xac, 0x68, 0xa2, 0x15, 0x82, 0x36, 0xf6, 0xac, 0x43, 0x04, 0x7e, 0x91, 0x1f, 0x4c, 0x4e, 0x8b, 0xc6, 0x63, 0xfd, 0xd5, 0x05, 0x17, 0xdf, 0xaa, 0x8f, 0xbc, 0xd2, 0x19, 0xdd, 0x7a, 0x0e, 0x93, 0x69, 0xf4, 0x3d, 0x0d, 0xd2, 0x5b, 0x4f, 0x0c, 0xf9, 0x30, 0xf2, 0x0b, 0x7b, 0x7c, 0x6d, 0xb9, 0xd5, 0xbe, 0x0c, 0x6e, 0x19, 0x60, 0x94, 0x1a, 0x3e, 0x04, 0xd1, 0x41, 0xc0, 0x3e, 0x59, 0x61, 0xaa, 0x33, 0xe9, 0x02, 0x44, 0x77, 0xd5, 0x33, 0xc9, 0x95, 0x37, 0x87, 0x96, 0xbf, 0x22, 0x92, 0xad, 0xe9, 0x22, 0x69, 0x5b, 0x14, 0x56, 0x9f, 0xc3, 0x39, 0xb3, 0xd9, 0x08, 0x5c, 0x63, 0xfc, 0x6e, 0x5b, 0xef, 0x4d, 0x99, 0x0c, 0x80, 0x33, 0x3a, 0x6b, 0x57, 0xaf, 0x47, 0x8f, 0x93, 0x8e, 0x3e, 0xe7, 0x38, 0xb1, 0xd1, 0x29, 0xbd, 0x97, 0x6a, 0xfe, 0x68, 0x61, 0x28, 0xbc, 0xac, 0x08, 0xcc, 0xbe, 0xb0, 0x34, 0x9b, 0x9b, 0x53, 0x73, 0x13, 0xbc, 0x7b, 0xf5, 0x91, 0xc6, 0x5d, 0x4a, 0x71, 0x23, 0xad, 0x30, 0xbd, 0xbe, 0x14, 0x86, 0xb4, 0x28, 0x08, 0x47, 0x48, 0xb6, 0x50, 0x7f, 0x6f, 0x5e, 0xf6, 0x7c, 0x26, 0xca, 0x86, 0x2c, 0xf7, 0x26, 0xaa, 0xc1, 0x40, 0xb8, 0x61, 0xae, 0x0d, 0xc7, 0x4b, 0xb3, 0xc0, 0xb4, 0x89, 0x78, 0x9f, 0x17, 0x14, 0x5e, 0x9a, 0x85, 0x5a, 0x3e, 0x2b, 0x5d, 0xaa, 0xc4, 0x18, 0xd8, 0x35, 0x37, 0x33, 0x23, 0x9e, 0xf6, 0x9c, 0x7b, 0x56, 0x5b, 0x53, 0x03, 0xeb, 0x87, 0xbd, 0x7f, 0x64, 0x9a, 0xbf, 0x40, 0xa2, 0xf1, 0x35, 0xa2, 0x9e, 0xd2, 0x7e, 0x3b, 0xe4, 0xc1, 0x2c, 0xd6, 0xdd, 0xd2, 0xe5, 0x41, 0x8a, 0x99, 0x97, 0x43, 0x83, 0x66, 0x3f, 0x58, 0x49, 0xbf, 0x3c, 0xe5, 0x53, 0x2b, 0xf6, 0x4a, 0x80, 0xaa, 0x52, 0x11, 0x91, 0xd2, 0x53, 0x90, 0xbc, 0x19, 0xa4, 0x5e, 0xed, 0x1d, 0x3f, 0xec, 0xa1, 0xd9, 0xfc, 0xc0, 0xdb, 0x03, 0x1b, 0xfb, 0x48, 0xe4, 0x50, 0xbe, 0x3d, 0x45, 0x93, 0x35, 0x6d, 0x5b, 0xa0, 0xf3, 0x10, 0x47, 0xb4, 0x57, 0x74, 0x5f, 0x21, 0xe3, 0x2e, 0xbe, 0xa3, 0xca, 0x6c, 0x35, 0xf0, 0x5d, 0x78, 0xd8, 0xc3, 0x16, 0x40, 0xb0, 0xfe, 0xcb, 0x94, 0x01, 0x16, 0x56, 0x75, 0xc7, 0xf9, 0xcb, 0xb1, 0x9b, 0xc4, 0xb5, 0x67, 0x7c, 0x2c, 0xce, 0xdc, 0x4e, 0x7a, 0xaf, 0xb8, 0x41, 0x84, 0xc1, 0x91, 0x99, 0xac, 0xa0, 0xdb, 0x21, 0xcf, 0x50, 0x67, 0xdc, 0x3a, 0xf7, 0x69, 0xbc, 0xc6, 0x29, 0x35, 0x5f, 0xf7, 0x25, 0x7a, 0x9e, 0xfd, 0x71, 0xa6, 0xa9, 0x2d, 0x13, 0x0d, 0x35, 0xab, 0xee, 0x6e, 0x70, 0x60, 0x5b, 0x5c, 0xab, 0x93, 0xc0, 0x28, 0xfa, 0xc3, 0xaa, 0x23, 0x44, 0xba, 0x86, 0x1a, 0xc1, 0xe8, 0xce, 0x9a, 0x4b, 0x07, 0x0c, 0x3d, 0xf7, 0x40, 0xd2, 0x8c, 0x5e, 0xce, 0x0f, 0x1b, 0xc3, 0x1c, 0x2d, 0x7d, 0x1e, 0x5e, 0xcc, 0x76, 0x10, 0x44, 0x80, 0x93, 0x91, 0x33, 0xa1, 0x86, 0x60, 0xe4, 0xa3, 0xe4, 0x84, 0x6b, 0x25, 0x17, 0xbe, 0x3b, 0x8e, 0x7a, 0xfa, 0xfe, 0x07, 0x83, 0x91, 0xd8, 0xaa, 0x8e, 0x5c, 0x30, 0x13, 0x7e, 0x85, 0xd9, 0x4d, 0x64, 0xa2, 0x79, 0xfb, 0xee, };
16904 static const u8 ed25519_735_test_vectors_expected_sig[] = {
16905 	0xed, 0x2c, 0xed, 0x1a, 0x4f, 0xdd, 0xb3, 0x44, 0x2a, 0x63, 0x73, 0x48, 0x17, 0x9a, 0x6a, 0x5b, 0xee, 0xdc, 0xb4, 0x4c, 0x8e, 0x98, 0x8c, 0xa2, 0x6f, 0x78, 0x93, 0x6d, 0x2c, 0x8d, 0xb5, 0xc5, 0x16, 0xd5, 0x4b, 0x8c, 0x4f, 0x08, 0xd9, 0x1d, 0xd7, 0x04, 0x2a, 0xb6, 0xab, 0x26, 0xd8, 0x7f, 0x23, 0x0e, 0xb2, 0xb2, 0x15, 0x6f, 0x3c, 0xe2, 0x99, 0x4f, 0xce, 0x7c, 0x2b, 0x0f, 0x10, 0x0e, };
16906 static const ec_test_case ed25519_735_test_case = {
16907 	.name = "EDDSA25519-SHA512/wei25519 735",
16908 	.ec_str_p = &wei25519_str_params,
16909 	.priv_key = ed25519_735_test_vectors_priv_key,
16910 	.priv_key_len = sizeof(ed25519_735_test_vectors_priv_key),
16911 	.nn_random = NULL,
16912 	.hash_type = SHA512,
16913 	.msg = (const char *)ed25519_735_test_vectors_message,
16914 	.msglen = sizeof(ed25519_735_test_vectors_message),
16915 	.sig_type = EDDSA25519,
16916 	.exp_sig = ed25519_735_test_vectors_expected_sig,
16917 	.exp_siglen = sizeof(ed25519_735_test_vectors_expected_sig),
16918 	.adata = NULL,
16919 	.adata_len = 0
16920 };
16921 
16922 /************************************************/
16923 static const u8 ed25519_736_test_vectors_priv_key[] = {
16924 	0x91, 0xfd, 0xef, 0xcd, 0xbc, 0x99, 0x0d, 0x3e, 0x8e, 0xeb, 0x60, 0x17, 0x04, 0x34, 0xda, 0x10, 0x83, 0x1b, 0x03, 0x08, 0x1f, 0x6a, 0xfd, 0x0d, 0x7e, 0x12, 0xb1, 0x00, 0x11, 0xe0, 0x2a, 0xef, };
16925 static const u8 ed25519_736_test_vectors_message[] = {
16926 	0x5b, 0x0c, 0x1a, 0x3a, 0x95, 0xe0, 0xba, 0x74, 0x74, 0x76, 0x6c, 0x9b, 0xad, 0xfa, 0xe3, 0x4a, 0xb8, 0x60, 0xe0, 0xa6, 0xc0, 0x33, 0xa2, 0x2f, 0xba, 0x72, 0x11, 0x27, 0xf5, 0xbb, 0xee, 0xe8, 0xe2, 0xcb, 0xde, 0x1a, 0x1d, 0xfe, 0xb1, 0x8d, 0x55, 0x1c, 0x95, 0x99, 0x4d, 0x21, 0xe3, 0xeb, 0xc6, 0x8a, 0xfa, 0xe6, 0x85, 0x44, 0x4a, 0x3a, 0x41, 0x95, 0xbc, 0x75, 0x55, 0x38, 0x90, 0x3a, 0xcf, 0xa6, 0x71, 0x55, 0x92, 0xdd, 0xe2, 0x56, 0xe7, 0xa1, 0xb4, 0xc3, 0x63, 0xec, 0xa7, 0x1e, 0xf0, 0xf3, 0xa4, 0x8a, 0xe3, 0x44, 0x2d, 0x50, 0xd5, 0x66, 0x1b, 0x39, 0x40, 0x96, 0xb7, 0xec, 0x27, 0xbb, 0xf5, 0x29, 0x53, 0xf3, 0x04, 0x0c, 0xd2, 0x5b, 0x78, 0xce, 0x47, 0x55, 0x27, 0xe0, 0xcc, 0x59, 0xf1, 0xef, 0x9a, 0xe2, 0xe0, 0x59, 0x04, 0x31, 0x58, 0x2b, 0x2d, 0xf8, 0x14, 0x14, 0x99, 0x82, 0x9a, 0x2c, 0x5f, 0x7b, 0xbe, 0x35, 0x98, 0xe4, 0xc9, 0x6c, 0xc0, 0x1e, 0xde, 0x2f, 0x43, 0xb6, 0x56, 0x05, 0xb4, 0x88, 0x59, 0x37, 0x09, 0xc0, 0x94, 0xb5, 0xa0, 0x42, 0xb2, 0x85, 0x55, 0xfb, 0x52, 0x27, 0xa6, 0xd1, 0x56, 0x37, 0x6f, 0x3f, 0xf0, 0x7b, 0xd5, 0xc8, 0xbc, 0x68, 0x04, 0xd3, 0x9a, 0x32, 0x82, 0xac, 0x59, 0x70, 0xba, 0x08, 0xae, 0xbf, 0x75, 0x42, 0xb8, 0x45, 0xf6, 0xb5, 0xc2, 0x38, 0xc2, 0xce, 0x20, 0x44, 0x3f, 0x7f, 0x77, 0x55, 0xd7, 0x5f, 0xe4, 0xfa, 0x16, 0xb9, 0x64, 0x4c, 0xa3, 0xe2, 0x1d, 0x91, 0xa9, 0xa8, 0x7c, 0x68, 0x61, 0x15, 0x74, 0x8a, 0x16, 0xc0, 0xae, 0x4a, 0xe4, 0xe1, 0x6d, 0x1c, 0x71, 0xae, 0x60, 0x0b, 0x39, 0xcd, 0x25, 0xe5, 0x63, 0x3b, 0x39, 0x9f, 0xee, 0x7f, 0xf2, 0xe3, 0x62, 0xbe, 0xd2, 0x51, 0x25, 0xc6, 0xfd, 0x5c, 0x7f, 0x5f, 0xfa, 0x2d, 0xa2, 0x35, 0x3f, 0xd3, 0x5b, 0x78, 0x4a, 0x1b, 0x1b, 0x03, 0x19, 0x77, 0x47, 0x58, 0xb7, 0x39, 0x0c, 0x44, 0xdc, 0xc9, 0x2f, 0xca, 0x42, 0x01, 0xdf, 0xe1, 0xa3, 0x75, 0x69, 0xde, 0x05, 0xf0, 0x66, 0x4d, 0x08, 0xb9, 0x0d, 0x6e, 0x2b, 0xad, 0xc2, 0x1b, 0x92, 0xf9, 0xce, 0x87, 0x21, 0x42, 0x35, 0x7b, 0x96, 0x15, 0x08, 0x0a, 0xb7, 0x65, 0x9a, 0x24, 0x6f, 0xf0, 0x85, 0x2a, 0xdb, 0x17, 0xdf, 0xda, 0x70, 0xcf, 0x17, 0x54, 0x15, 0x7b, 0x13, 0xbc, 0x03, 0x2b, 0x4c, 0x5d, 0xeb, 0x8e, 0x10, 0x68, 0xb4, 0x69, 0x2b, 0x93, 0x16, 0x5d, 0xa3, 0x5e, 0xfc, 0x9d, 0xa8, 0x6a, 0xcb, 0xe6, 0xf8, 0x0f, 0x01, 0xbb, 0xc2, 0x6f, 0x57, 0x5e, 0xc5, 0xaf, 0x5b, 0x05, 0x0e, 0x98, 0x28, 0xaf, 0xde, 0x6c, 0x3b, 0x78, 0xe7, 0x33, 0xeb, 0x5a, 0x91, 0x24, 0x92, 0xf7, 0x65, 0xbc, 0xad, 0x73, 0x1b, 0x95, 0xe3, 0xab, 0x88, 0x96, 0xb6, 0x17, 0x58, 0xbf, 0x91, 0x3b, 0x9a, 0x15, 0x68, 0xf9, 0xc5, 0xb4, 0x60, 0x33, 0xcf, 0x45, 0xdc, 0xc1, 0x75, 0x0d, 0xa2, 0x06, 0x6c, 0x60, 0x8d, 0xc3, 0xd3, 0x43, 0x73, 0x8e, 0x84, 0x8d, 0xc3, 0x90, 0xcd, 0x47, 0x44, 0x32, 0xe9, 0x91, 0xd7, 0xaa, 0x2c, 0x5b, 0x27, 0x81, 0x42, 0x1e, 0xfe, 0x55, 0xe3, 0x6b, 0x0b, 0x42, 0xc1, 0xf4, 0x9a, 0xe2, 0x77, 0x48, 0x0b, 0x0f, 0xc5, 0xff, 0x68, 0x5b, 0xb5, 0xa3, 0x1b, 0xe3, 0xa0, 0xfa, 0x44, 0x82, 0x38, 0x16, 0x07, 0x70, 0x37, 0x54, 0x8a, 0x5c, 0x9b, 0x0e, 0x1c, 0xc6, 0xc6, 0x35, 0x04, 0xa4, 0x07, 0x57, 0x9a, 0x36, 0x32, 0xb3, 0xc9, 0x6f, 0xcd, 0x0d, 0xe5, 0xea, 0x1e, 0x4d, 0x6e, 0x87, 0xc0, 0xca, 0xf7, 0xb6, 0xca, 0xe3, 0x12, 0x0d, 0xb8, 0xb1, 0xf4, 0x61, 0x5c, 0xe6, 0xa7, 0x5a, 0x81, 0x65, 0x4f, 0x39, 0x04, 0x28, 0xb6, 0x4c, 0x21, 0x3e, 0x72, 0x7e, 0xec, 0x3a, 0xe7, 0xf9, 0xf4, 0x2d, 0xb9, 0x06, 0xf4, 0xde, 0x1f, 0xda, 0xdd, 0x34, 0xa3, 0xda, 0x2a, 0xeb, 0x12, 0xb4, 0xd9, 0xa1, 0x85, 0xf4, 0xa6, 0x0c, 0xb0, 0xc2, 0x67, 0x45, 0xf5, 0x30, 0xb4, 0x81, 0xfc, 0x97, 0x6a, 0x09, 0x3c, 0xe2, 0x4a, 0x30, 0x91, 0x6a, 0xf6, 0x05, 0xee, 0x94, 0xb0, 0x87, 0x85, 0x19, 0x3a, 0x94, 0x9d, 0x56, 0x9c, 0x4b, 0x7e, 0xf5, 0x96, 0x03, 0xbb, 0x62, 0x43, 0x60, 0xe7, 0xb4, 0x08, 0xd9, 0x8c, 0xa5, 0x09, 0xda, 0xf5, 0xa9, 0x2a, 0x6d, 0x40, 0x15, 0xbd, 0xb6, 0xf9, 0x7a, 0xd4, 0xff, 0x0c, 0xf0, 0x5c, 0x8f, 0x0c, 0xd5, 0x47, 0x6a, 0x93, 0x44, 0x26, 0xa0, 0x59, 0xf2, 0x44, 0x44, 0x46, 0xe5, 0x86, 0x4f, 0x08, 0x9e, 0x0f, 0x06, 0x75, 0x61, 0x59, 0x10, 0x66, 0x2d, 0x7c, 0x1e, 0x79, 0xa6, 0xc7, 0x5f, 0xa3, 0x14, 0xb7, 0xba, 0x2c, 0x64, 0x3b, 0x0d, 0x37, 0x65, 0x3e, 0xef, 0xe5, 0x93, 0x17, 0x2d, 0x1d, 0x33, 0x2c, 0x8d, 0xd6, 0x44, 0x92, 0xea, 0xf1, 0x04, 0xfb, 0x19, 0x57, 0xba, 0xa5, 0x20, 0x49, 0x44, 0x2d, 0x10, 0xb5, 0x6a, 0xf8, 0xea, 0xe8, 0xff, 0x82, 0xcd, 0x8f, 0x46, 0xa0, 0x49, 0x4b, 0xec, 0x2f, 0xcb, 0x9f, 0xad, 0xf1, 0x0c, 0xf7, 0x1a, 0x6e, 0xec, 0xd0, 0x54, 0x7d, 0xaf, 0xdc, 0x7a, 0xdb, 0xaa, 0x45, 0x03, 0x78, 0x3f, 0x94, 0x3a, 0x46, 0xb4, 0xad, 0x0e, 0x6d, 0xd7, 0xf2, 0xca, 0xb5, 0x56, 0x17, };
16927 static const u8 ed25519_736_test_vectors_expected_sig[] = {
16928 	0x51, 0x01, 0x12, 0x22, 0x3b, 0x33, 0xa5, 0xab, 0x15, 0x64, 0xf7, 0x53, 0x71, 0x91, 0xcd, 0x29, 0x2a, 0x9d, 0xbd, 0x5a, 0x32, 0x3d, 0x7a, 0xdd, 0x05, 0x84, 0xc1, 0xb0, 0xad, 0x00, 0xd0, 0xac, 0x71, 0x99, 0xc3, 0xfb, 0x75, 0x8e, 0x91, 0x3f, 0xf3, 0xd7, 0x16, 0xc2, 0xe9, 0x0d, 0xd9, 0x0d, 0x4e, 0x8f, 0x59, 0x95, 0x1e, 0x87, 0xef, 0x8b, 0x78, 0x21, 0x4a, 0x51, 0x75, 0xc4, 0xe6, 0x08, };
16929 static const ec_test_case ed25519_736_test_case = {
16930 	.name = "EDDSA25519-SHA512/wei25519 736",
16931 	.ec_str_p = &wei25519_str_params,
16932 	.priv_key = ed25519_736_test_vectors_priv_key,
16933 	.priv_key_len = sizeof(ed25519_736_test_vectors_priv_key),
16934 	.nn_random = NULL,
16935 	.hash_type = SHA512,
16936 	.msg = (const char *)ed25519_736_test_vectors_message,
16937 	.msglen = sizeof(ed25519_736_test_vectors_message),
16938 	.sig_type = EDDSA25519,
16939 	.exp_sig = ed25519_736_test_vectors_expected_sig,
16940 	.exp_siglen = sizeof(ed25519_736_test_vectors_expected_sig),
16941 	.adata = NULL,
16942 	.adata_len = 0
16943 };
16944 
16945 /************************************************/
16946 static const u8 ed25519_737_test_vectors_priv_key[] = {
16947 	0xef, 0x00, 0xb3, 0xc1, 0x81, 0xf6, 0x32, 0x7d, 0x02, 0x25, 0x67, 0x51, 0xcb, 0x51, 0xc2, 0xc3, 0x6c, 0x0c, 0x0a, 0x78, 0x07, 0x63, 0x40, 0x54, 0x8f, 0x5b, 0xc0, 0x70, 0xd8, 0x6d, 0x9e, 0x26, };
16948 static const u8 ed25519_737_test_vectors_message[] = {
16949 	0x7d, 0x6a, 0xbe, 0xc7, 0xa1, 0x1a, 0xf6, 0x73, 0x24, 0xce, 0x17, 0xb1, 0xd2, 0x0b, 0xb4, 0x0c, 0x66, 0x8a, 0x21, 0x9b, 0xc9, 0x5d, 0xf0, 0x5e, 0x32, 0x5d, 0x86, 0xf8, 0x87, 0x95, 0xe2, 0x64, 0xd4, 0x54, 0xfc, 0x5f, 0xa7, 0xd9, 0xc8, 0xaa, 0xfe, 0x77, 0xe9, 0x0a, 0x6a, 0xf6, 0xb5, 0x74, 0x53, 0xd8, 0x5b, 0x97, 0x0b, 0x55, 0x2a, 0x85, 0x6b, 0xa6, 0x59, 0xab, 0x31, 0xbd, 0x8a, 0x66, 0x0e, 0xb7, 0xd3, 0x58, 0x7b, 0x45, 0x3e, 0x5c, 0x5f, 0xc6, 0xb7, 0x94, 0x72, 0xb2, 0x6e, 0x8f, 0xf7, 0xdd, 0x6d, 0xb6, 0xbe, 0x35, 0x72, 0x54, 0x8b, 0x0d, 0x75, 0x4e, 0xd4, 0xd9, 0x85, 0xb8, 0xd9, 0x96, 0x5f, 0x88, 0xb9, 0x52, 0xfc, 0x4f, 0xa3, 0xb7, 0x61, 0xcc, 0xff, 0xc3, 0x53, 0x54, 0xdb, 0x0e, 0xb9, 0xc5, 0xa1, 0x71, 0x71, 0x8a, 0x8a, 0x55, 0x92, 0x87, 0x02, 0x13, 0x82, 0x7d, 0x36, 0x91, 0xba, 0xe7, 0xfd, 0x9c, 0x63, 0xf2, 0x05, 0x03, 0xe0, 0x43, 0x19, 0xb5, 0xe9, 0x53, 0x57, 0x9d, 0xe4, 0x7e, 0x3e, 0xf8, 0xe1, 0x62, 0x85, 0x49, 0x50, 0x3c, 0xb4, 0xf6, 0x87, 0x1b, 0xa2, 0x5d, 0xb8, 0x73, 0x47, 0x08, 0x0e, 0x53, 0x1a, 0x51, 0x7a, 0x8b, 0x72, 0x21, 0xe6, 0xad, 0x84, 0xdf, 0xf8, 0x32, 0x56, 0xd9, 0xab, 0x9a, 0x43, 0x3d, 0xe8, 0x71, 0xb9, 0xcb, 0x9c, 0x50, 0x44, 0x58, 0x9e, 0x67, 0x20, 0x6b, 0x31, 0x7a, 0x52, 0x06, 0xae, 0xba, 0x96, 0xc9, 0x2f, 0xd6, 0x09, 0x40, 0x71, 0xc6, 0x44, 0xfe, 0x52, 0x65, 0x8d, 0xed, 0x92, 0x20, 0xcf, 0x6a, 0xbd, 0x50, 0xe2, 0x30, 0x5a, 0x1c, 0x90, 0xfd, 0x66, 0xaa, 0xcf, 0xb3, 0x8e, 0xb0, 0x5e, 0xaf, 0xf6, 0xca, 0x5f, 0x85, 0xf4, 0x29, 0xcd, 0x57, 0x71, 0x6e, 0xb8, 0x77, 0x39, 0xa0, 0x2b, 0x64, 0xcf, 0xfa, 0x08, 0xc4, 0xf6, 0x85, 0xb0, 0x03, 0x10, 0xb5, 0xb4, 0x84, 0x49, 0x20, 0xdf, 0x21, 0x5a, 0x9f, 0x24, 0xa1, 0x76, 0x13, 0xae, 0xf8, 0x5f, 0xec, 0x94, 0xf5, 0x11, 0xdc, 0x8a, 0x42, 0x94, 0xed, 0xdc, 0xea, 0x11, 0xc0, 0x8c, 0x0b, 0x39, 0x9a, 0x23, 0xd9, 0x16, 0x38, 0x3e, 0x29, 0xad, 0xeb, 0x98, 0xc6, 0x5d, 0x41, 0xc7, 0x05, 0xa5, 0x7f, 0x84, 0x05, 0x20, 0xfa, 0x80, 0x8d, 0x7f, 0xd2, 0x5f, 0xdc, 0xe1, 0x59, 0xf7, 0xa0, 0x84, 0xd0, 0x62, 0x97, 0x4b, 0x30, 0x13, 0x2a, 0x57, 0x12, 0x42, 0xba, 0xff, 0x41, 0x96, 0x24, 0x6d, 0x6d, 0x75, 0x7b, 0x31, 0x2e, 0x9d, 0x60, 0x85, 0x53, 0xd2, 0xdc, 0x53, 0xb6, 0x23, 0xb2, 0xe9, 0x5c, 0x75, 0x38, 0xfb, 0xc5, 0xde, 0xb6, 0x2b, 0xa7, 0x37, 0x76, 0xd8, 0x5e, 0x51, 0x18, 0xfa, 0x1a, 0x30, 0x2d, 0x4d, 0x07, 0x6d, 0x99, 0xe1, 0x00, 0xf0, 0xdf, 0x11, 0x9c, 0x33, 0xfc, 0x66, 0xcd, 0xfe, 0x6f, 0xd4, 0x4d, 0x71, 0x99, 0x7b, 0x78, 0xc8, 0xf7, 0x89, 0x0c, 0x70, 0x73, 0x46, 0x05, 0x62, 0x20, 0xd1, 0xe9, 0xde, 0x88, 0xbc, 0x17, 0x3c, 0xf0, 0xb7, 0x6c, 0xb3, 0x02, 0x87, 0x7e, 0xc1, 0x6a, 0xf4, 0x6e, 0x4c, 0x31, 0x63, 0x9f, 0x54, 0xee, 0xdc, 0x16, 0xda, 0x9d, 0x9e, 0xb0, 0xad, 0x95, 0xbd, 0xa5, 0x45, 0xdf, 0xc4, 0xa7, 0x32, 0xb6, 0xda, 0x98, 0x14, 0x13, 0x6a, 0xb1, 0xb9, 0x39, 0x2a, 0x07, 0x1b, 0x02, 0x24, 0x73, 0xb3, 0x49, 0x05, 0x57, 0x69, 0x8b, 0x77, 0xe7, 0x44, 0x7a, 0xc8, 0x59, 0x0d, 0xca, 0xf4, 0xf2, 0x42, 0xad, 0x3d, 0xfb, 0xc0, 0xdf, 0x71, 0x6c, 0xc0, 0xea, 0x75, 0x36, 0x26, 0x97, 0x3d, 0xf0, 0x8d, 0x93, 0x5d, 0x17, 0x8e, 0x33, 0x12, 0xfb, 0xe2, 0xa7, 0xba, 0x9c, 0x50, 0x93, 0xc5, 0x3b, 0x92, 0x55, 0xea, 0xca, 0x29, 0xb7, 0x25, 0x78, 0xe3, 0xba, 0x1b, 0xdf, 0xaf, 0x0c, 0x9e, 0xce, 0x21, 0xa5, 0xdf, 0xf6, 0xea, 0x42, 0x15, 0x24, 0xf7, 0x0f, 0xc1, 0x90, 0x4e, 0x9a, 0x2c, 0xf7, 0xc5, 0x18, 0xbf, 0xcc, 0x7e, 0x36, 0x73, 0xee, 0x87, 0xff, 0x27, 0xe1, 0xca, 0x2a, 0xc3, 0x2b, 0xcb, 0x40, 0x91, 0xcb, 0x34, 0xa8, 0x2a, 0x71, 0x56, 0x3f, 0xf6, 0xa6, 0xa1, 0x5d, 0xa0, 0xeb, 0xd5, 0xbd, 0x10, 0x25, 0x6c, 0xe9, 0x60, 0xf4, 0xea, 0xa7, 0xfe, 0x35, 0xe1, 0x28, 0x88, 0x60, 0x50, 0xd0, 0x49, 0xfe, 0xc3, 0xa4, 0xab, 0x16, 0xd5, 0xb0, 0xc1, 0x07, 0x26, 0x7e, 0xae, 0x1a, 0xb8, 0x01, 0xea, 0x5b, 0x91, 0x98, 0x38, 0x39, 0xda, 0x1c, 0x48, 0x8c, 0x12, 0xf8, 0x64, 0xd7, 0xc3, 0xa7, 0x7f, 0x2b, 0x6a, 0xe2, 0x7d, 0x54, 0x01, 0x09, 0xf6, 0x8d, 0x78, 0x36, 0x4b, 0xb6, 0x27, 0x18, 0x3b, 0xd5, 0x03, 0x91, 0x75, 0x47, 0xaa, 0xf3, 0xb3, 0xa1, 0x80, 0x9d, 0xa0, 0x25, 0x77, 0xb3, 0xf0, 0x3a, 0x9a, 0x3f, 0x5a, 0xf4, 0x8c, 0x88, 0x02, 0xe2, 0x97, 0xc8, 0xbb, 0x63, 0xdb, 0x6a, 0x86, 0xd3, 0xea, 0x72, 0x7a, 0x6d, 0x71, 0x48, 0xb3, 0xaa, 0x44, 0x4b, 0x8d, 0x16, 0x8f, 0x38, 0xc6, 0xc8, 0xf2, 0x40, 0x88, 0xa4, 0x9a, 0xf3, 0x31, 0x77, 0xa3, 0x44, 0xad, 0xab, 0x2c, 0xf6, 0xe0, 0x8e, 0x0c, 0xb0, 0x37, 0x1e, 0xd5, 0x2b, 0xde, 0xad, 0x13, 0x2f, 0x77, 0xe7, 0xae, 0x3e, 0xe5, 0xd8, 0xfb, 0x17, 0xaf, 0xc0, 0xa0, 0xbb, 0x73, 0x11, 0xb9, 0x56, 0x0b, 0x67, };
16950 static const u8 ed25519_737_test_vectors_expected_sig[] = {
16951 	0x13, 0x9f, 0x9c, 0xb9, 0x9b, 0x99, 0x5b, 0xe6, 0x58, 0x8c, 0xdd, 0xb5, 0x05, 0x16, 0x94, 0x83, 0x8f, 0x9d, 0x82, 0xa6, 0x07, 0x61, 0xfd, 0xe3, 0x04, 0xb0, 0x02, 0x7f, 0xf8, 0x65, 0x84, 0xbf, 0x65, 0xc7, 0x3c, 0xc6, 0xd2, 0x53, 0xe5, 0x60, 0xf6, 0x55, 0x25, 0xdf, 0x04, 0xbf, 0xe1, 0x46, 0xc8, 0x3b, 0x42, 0x26, 0x9c, 0xf3, 0x78, 0x0f, 0x8b, 0xc3, 0x92, 0x43, 0x78, 0x94, 0xae, 0x01, };
16952 static const ec_test_case ed25519_737_test_case = {
16953 	.name = "EDDSA25519-SHA512/wei25519 737",
16954 	.ec_str_p = &wei25519_str_params,
16955 	.priv_key = ed25519_737_test_vectors_priv_key,
16956 	.priv_key_len = sizeof(ed25519_737_test_vectors_priv_key),
16957 	.nn_random = NULL,
16958 	.hash_type = SHA512,
16959 	.msg = (const char *)ed25519_737_test_vectors_message,
16960 	.msglen = sizeof(ed25519_737_test_vectors_message),
16961 	.sig_type = EDDSA25519,
16962 	.exp_sig = ed25519_737_test_vectors_expected_sig,
16963 	.exp_siglen = sizeof(ed25519_737_test_vectors_expected_sig),
16964 	.adata = NULL,
16965 	.adata_len = 0
16966 };
16967 
16968 /************************************************/
16969 static const u8 ed25519_738_test_vectors_priv_key[] = {
16970 	0xd0, 0x71, 0xd8, 0xc5, 0x57, 0x8d, 0x02, 0x59, 0x49, 0x93, 0x2a, 0xa6, 0xbf, 0x6a, 0x80, 0xb1, 0xcc, 0x41, 0x2f, 0x10, 0x6f, 0x91, 0x57, 0x4e, 0xe2, 0x46, 0x54, 0xb4, 0x45, 0xee, 0x9a, 0x97, };
16971 static const u8 ed25519_738_test_vectors_message[] = {
16972 	0x3e, 0x8e, 0xe7, 0x0e, 0x51, 0xe5, 0x6e, 0xf5, 0x7f, 0x6e, 0x66, 0xb3, 0xa8, 0x84, 0xaa, 0x04, 0xa7, 0xb4, 0xd4, 0x59, 0x9f, 0xb9, 0xb4, 0x39, 0x96, 0xb3, 0x93, 0xa8, 0x68, 0x09, 0x35, 0x12, 0xea, 0x74, 0x1a, 0x0c, 0x6a, 0x94, 0xf4, 0x0c, 0xe4, 0x98, 0x62, 0xd2, 0xfd, 0x1f, 0x75, 0x51, 0xf4, 0x64, 0x7a, 0xbd, 0x80, 0x75, 0xbc, 0x1b, 0x74, 0x2a, 0xd4, 0x0e, 0x29, 0xa6, 0x04, 0x61, 0x30, 0x12, 0x24, 0xfe, 0x8f, 0x76, 0x92, 0xb1, 0x47, 0x72, 0x78, 0x2b, 0x4e, 0x89, 0x6b, 0x63, 0xfe, 0x05, 0xab, 0xd5, 0xff, 0x53, 0x14, 0xf9, 0xec, 0x80, 0x75, 0xf2, 0x8d, 0x90, 0x8c, 0xca, 0xaa, 0xce, 0x5e, 0x90, 0x5e, 0xa7, 0xf5, 0x7a, 0x49, 0x1b, 0x99, 0xb3, 0x59, 0x1e, 0xea, 0x54, 0xa6, 0xb7, 0x81, 0x91, 0x67, 0x74, 0x9d, 0x38, 0xa0, 0x47, 0x62, 0x06, 0x76, 0xa1, 0xa7, 0xaf, 0x11, 0xf4, 0x85, 0xa5, 0x5b, 0x7c, 0x87, 0x9e, 0x68, 0x50, 0x38, 0x08, 0x58, 0xc8, 0xf4, 0x5c, 0x0c, 0x1c, 0xcb, 0xd7, 0x40, 0x6e, 0xd0, 0x99, 0xd8, 0x4a, 0x74, 0x71, 0xb9, 0x35, 0x0c, 0x4d, 0xdb, 0x28, 0x47, 0x0b, 0xf5, 0xbf, 0x32, 0x7d, 0x5b, 0x3c, 0x22, 0xd8, 0x99, 0xb4, 0xc6, 0x60, 0x83, 0x9e, 0x10, 0x4a, 0x06, 0x22, 0xae, 0x85, 0xc8, 0x4a, 0xa9, 0xfc, 0x7f, 0x0a, 0x2c, 0x7c, 0xeb, 0x6e, 0x69, 0x1c, 0x49, 0xc0, 0x64, 0xb5, 0x31, 0x34, 0x99, 0x68, 0x3e, 0x8e, 0x03, 0xb2, 0x11, 0x5e, 0xda, 0x7d, 0xda, 0xd5, 0x5a, 0x49, 0xf9, 0xfb, 0xe6, 0x25, 0x44, 0xf9, 0x14, 0x51, 0x1c, 0xfb, 0xec, 0x6b, 0x84, 0xdb, 0xde, 0x7e, 0x80, 0x90, 0x9b, 0x45, 0xfb, 0x10, 0x50, 0x2e, 0x2c, 0xaa, 0xa7, 0x21, 0x24, 0xfd, 0x94, 0x56, 0xa3, 0x87, 0x2f, 0x95, 0x92, 0x70, 0x7e, 0x9a, 0x4c, 0x50, 0x12, 0xda, 0xa9, 0x72, 0xea, 0xf6, 0x5f, 0xab, 0xe5, 0x53, 0xde, 0xbe, 0x82, 0x57, 0x01, 0xef, 0xef, 0x5c, 0x75, 0x6b, 0xb4, 0x65, 0xe9, 0x66, 0xab, 0x68, 0xdd, 0x52, 0xf3, 0xdd, 0x00, 0xa4, 0x5c, 0xf6, 0xdc, 0x3f, 0x19, 0xb8, 0x6b, 0xb0, 0xdb, 0x4a, 0x86, 0xe4, 0x66, 0x98, 0x85, 0xa0, 0x74, 0x69, 0x6a, 0x67, 0xd8, 0xea, 0x21, 0x18, 0xc7, 0x66, 0xef, 0x62, 0x5f, 0x8a, 0x98, 0x02, 0x6f, 0x9f, 0x4a, 0x3c, 0x5c, 0xcc, 0xf9, 0x84, 0x6f, 0xdc, 0x90, 0xed, 0x93, 0xec, 0x7c, 0x1f, 0x3c, 0x70, 0x86, 0x95, 0x4f, 0xa2, 0xf0, 0xa4, 0xca, 0x96, 0xd4, 0x01, 0x84, 0xaa, 0x57, 0x54, 0x55, 0x27, 0xa1, 0xf9, 0x65, 0xc1, 0x1d, 0x84, 0x3c, 0x90, 0xc5, 0xa5, 0xe0, 0x8d, 0x7c, 0x11, 0xf2, 0xd5, 0x61, 0x00, 0x4e, 0x90, 0x57, 0x48, 0x52, 0xeb, 0x50, 0x46, 0xaa, 0x1e, 0xa7, 0xb6, 0x10, 0x09, 0xfd, 0x5d, 0xd7, 0xd6, 0x24, 0x2a, 0x8d, 0xf5, 0x8a, 0x9e, 0x8e, 0x55, 0x5c, 0x7f, 0x4c, 0xdc, 0x13, 0x0d, 0x69, 0x01, 0xbf, 0xe6, 0x79, 0x7f, 0xdc, 0x6c, 0x39, 0xbe, 0xec, 0xfb, 0xba, 0xb6, 0x62, 0x5b, 0x2e, 0x4f, 0xb9, 0xd8, 0x00, 0x02, 0x76, 0xd4, 0xa9, 0x4f, 0xc6, 0xfc, 0x10, 0x51, 0xfe, 0xff, 0xf5, 0xad, 0xeb, 0x72, 0x4b, 0x87, 0x09, 0x0d, 0xb0, 0xa2, 0xc6, 0x97, 0xd0, 0x56, 0x66, 0x4d, 0x99, 0x1f, 0xad, 0x80, 0xdc, 0x80, 0xfa, 0xb7, 0x00, 0xb1, 0xf1, 0xf2, 0xee, 0x27, 0x73, 0x4e, 0xbc, 0x26, 0xb2, 0xa6, 0x41, 0xc3, 0x2a, 0x0c, 0x91, 0x1b, 0x27, 0x0a, 0xc7, 0x6b, 0x0d, 0xa5, 0xc0, 0x89, 0x14, 0x97, 0x1c, 0x91, 0x12, 0x46, 0x3a, 0x70, 0x70, 0x9c, 0x0d, 0xda, 0xc7, 0x91, 0x00, 0x16, 0xf9, 0x13, 0xf6, 0x21, 0x00, 0x86, 0xd7, 0x25, 0x5c, 0xef, 0x11, 0x95, 0x57, 0x10, 0xf6, 0x51, 0x88, 0x9c, 0x83, 0x62, 0x1d, 0xd8, 0xa4, 0xfc, 0xd5, 0x36, 0x63, 0x02, 0xd6, 0xc9, 0xb5, 0x6e, 0xef, 0xcf, 0xac, 0x85, 0xc1, 0x4a, 0x94, 0x78, 0xb6, 0xd7, 0x18, 0x07, 0x54, 0x28, 0x80, 0x07, 0x60, 0x51, 0x5c, 0xab, 0x5f, 0x3d, 0x44, 0x55, 0xe2, 0xb9, 0x70, 0xdf, 0x9f, 0xe4, 0xbe, 0x83, 0x83, 0xd7, 0x04, 0x83, 0xbb, 0xdd, 0x75, 0x60, 0x71, 0xf5, 0x3b, 0x2f, 0x9c, 0x27, 0x5c, 0x7c, 0x85, 0x12, 0xd1, 0x63, 0x51, 0x8f, 0xe5, 0x55, 0x83, 0x75, 0x14, 0xc8, 0x67, 0x76, 0xc9, 0x47, 0xf2, 0x9a, 0x77, 0x57, 0x02, 0x87, 0x44, 0x6b, 0x69, 0xbe, 0x40, 0xc8, 0xd4, 0xab, 0xbd, 0x65, 0xef, 0x25, 0x07, 0x24, 0x9b, 0x5a, 0xec, 0x33, 0xac, 0xb7, 0xb8, 0xbd, 0x3f, 0x35, 0xbc, 0x85, 0x9b, 0xa4, 0xe3, 0x7b, 0xdb, 0x49, 0xcf, 0x91, 0x3d, 0x93, 0x98, 0x9c, 0x44, 0x38, 0xd2, 0xab, 0xcf, 0xa3, 0x88, 0xcc, 0x89, 0xd7, 0x8a, 0xc0, 0x62, 0x70, 0x65, 0x64, 0x92, 0xe7, 0x52, 0x8f, 0x29, 0xbd, 0xfe, 0x8c, 0xbb, 0x9b, 0xfa, 0x9e, 0x73, 0xc1, 0xda, 0x01, 0x3f, 0xc3, 0xce, 0x21, 0x05, 0x65, 0x76, 0x13, 0xff, 0x62, 0xbb, 0x0c, 0x3b, 0xf4, 0xde, 0xe3, 0xb0, 0xd2, 0x65, 0x9c, 0x72, 0x6e, 0x7b, 0xcd, 0x9e, 0x97, 0xec, 0xce, 0x92, 0x47, 0xd4, 0x60, 0x0d, 0xfe, 0xaf, 0x60, 0x44, 0x4e, 0xd8, 0x62, 0xb0, 0x0b, 0xa1, 0x1e, 0x70, 0xea, 0x88, 0xd4, 0xf0, 0xb6, 0xb5, 0x39, 0xfc, 0x9f, 0x36, 0xbb, 0x2a, 0x1a, 0x9e, 0xd2, 0xb3, };
16973 static const u8 ed25519_738_test_vectors_expected_sig[] = {
16974 	0x0c, 0x29, 0x7a, 0xbe, 0x0f, 0xd8, 0xeb, 0xcc, 0x6b, 0x77, 0x19, 0x98, 0x75, 0x5e, 0x2c, 0x6b, 0xe0, 0x7c, 0x81, 0x2b, 0x5a, 0x80, 0x54, 0x49, 0x57, 0x06, 0x31, 0x70, 0xca, 0x69, 0x43, 0x2e, 0x72, 0xb6, 0x0d, 0xaa, 0xe3, 0x22, 0x95, 0x8a, 0x22, 0x38, 0xcd, 0x6a, 0x46, 0x28, 0x94, 0xa3, 0x87, 0xee, 0xf6, 0x5b, 0xf9, 0x6f, 0x63, 0xf5, 0x4c, 0x08, 0x56, 0x87, 0xa5, 0x02, 0x75, 0x0e, };
16975 static const ec_test_case ed25519_738_test_case = {
16976 	.name = "EDDSA25519-SHA512/wei25519 738",
16977 	.ec_str_p = &wei25519_str_params,
16978 	.priv_key = ed25519_738_test_vectors_priv_key,
16979 	.priv_key_len = sizeof(ed25519_738_test_vectors_priv_key),
16980 	.nn_random = NULL,
16981 	.hash_type = SHA512,
16982 	.msg = (const char *)ed25519_738_test_vectors_message,
16983 	.msglen = sizeof(ed25519_738_test_vectors_message),
16984 	.sig_type = EDDSA25519,
16985 	.exp_sig = ed25519_738_test_vectors_expected_sig,
16986 	.exp_siglen = sizeof(ed25519_738_test_vectors_expected_sig),
16987 	.adata = NULL,
16988 	.adata_len = 0
16989 };
16990 
16991 /************************************************/
16992 static const u8 ed25519_739_test_vectors_priv_key[] = {
16993 	0xe9, 0xd4, 0x86, 0xc2, 0x9a, 0xe8, 0x11, 0xb9, 0x42, 0xe1, 0x0d, 0x81, 0xf0, 0xa6, 0x71, 0x63, 0x17, 0xb8, 0x42, 0xc2, 0xc5, 0xbf, 0xde, 0xf5, 0x5c, 0xc4, 0x32, 0xb7, 0xfc, 0xae, 0xb8, 0x18, };
16994 static const u8 ed25519_739_test_vectors_message[] = {
16995 	0x14, 0xfe, 0x1e, 0xd5, 0xbb, 0xbd, 0x76, 0xcc, 0x73, 0xdc, 0x56, 0x50, 0xbd, 0xa9, 0x2d, 0xe8, 0x63, 0x26, 0xe2, 0x4d, 0x2f, 0x1f, 0x62, 0x24, 0xba, 0x85, 0x68, 0x94, 0x4d, 0x6f, 0xe3, 0x44, 0x26, 0x75, 0xdb, 0x96, 0xf1, 0xd8, 0x49, 0x8f, 0x16, 0x34, 0xff, 0x9b, 0x6e, 0x50, 0xcb, 0xa9, 0xdb, 0x4e, 0xb0, 0xb0, 0xb0, 0x21, 0xb2, 0xbe, 0xcf, 0xce, 0x4b, 0xef, 0x33, 0xc4, 0xce, 0x0e, 0x32, 0xc8, 0xa9, 0x83, 0x89, 0xec, 0xa9, 0xe0, 0x59, 0xa6, 0x62, 0xd6, 0xf0, 0x37, 0xc5, 0x4a, 0xa4, 0x0c, 0x76, 0xcd, 0xee, 0xe8, 0x56, 0x50, 0xf0, 0x89, 0xea, 0x56, 0xe1, 0x38, 0x3a, 0xb0, 0xf5, 0xc3, 0x6f, 0x6d, 0x66, 0x45, 0xff, 0x7e, 0x87, 0x66, 0x73, 0x01, 0xf9, 0x44, 0xfd, 0xc2, 0xed, 0x35, 0xb0, 0xd2, 0xc3, 0x5c, 0xb2, 0xe4, 0xb4, 0x56, 0x36, 0xe7, 0x49, 0x8e, 0x92, 0x7f, 0x58, 0x46, 0xb3, 0xe1, 0xed, 0xfb, 0xd1, 0x60, 0xa4, 0xae, 0xf3, 0x32, 0x0c, 0x34, 0x28, 0x49, 0x6b, 0xda, 0xaf, 0x7d, 0x3e, 0xd5, 0x6e, 0xf0, 0xb7, 0x25, 0x4a, 0xc5, 0x97, 0xbe, 0x58, 0x9a, 0x70, 0x58, 0x44, 0x16, 0x30, 0x0c, 0x1a, 0xdc, 0xfb, 0xa4, 0xf2, 0x2c, 0xfd, 0x4c, 0xd6, 0x61, 0xe1, 0xf5, 0x0f, 0x15, 0x5d, 0x17, 0x2f, 0xa5, 0x74, 0x8d, 0x29, 0x6b, 0x29, 0xcd, 0xd7, 0xeb, 0x81, 0x21, 0x48, 0x3f, 0xf1, 0xd9, 0xfe, 0x95, 0x3f, 0x94, 0x51, 0xc7, 0xc7, 0xa5, 0x42, 0x00, 0x72, 0x85, 0xee, 0x72, 0x46, 0xbc, 0x0f, 0xde, 0xa9, 0x38, 0x81, 0x40, 0x29, 0xab, 0xce, 0x05, 0x7a, 0x0e, 0xcb, 0x97, 0x4b, 0x12, 0xd3, 0x60, 0xea, 0xb6, 0xaf, 0xd3, 0x07, 0x97, 0xd6, 0x14, 0x45, 0xad, 0x2b, 0xac, 0x7e, 0x52, 0xbc, 0xe4, 0x34, 0x63, 0x15, 0xf7, 0x8e, 0xb8, 0x75, 0x42, 0xd5, 0x95, 0x28, 0xb2, 0xf6, 0xc5, 0x6d, 0x66, 0x24, 0x1c, 0xb4, 0x42, 0x03, 0x3f, 0x64, 0x3d, 0x3d, 0x2a, 0x67, 0xcb, 0x63, 0x7d, 0x8d, 0xa9, 0x5d, 0x4f, 0xd1, 0x23, 0x4b, 0x03, 0x1a, 0x3e, 0x51, 0x72, 0x3a, 0x1d, 0x26, 0xe6, 0xf5, 0xca, 0x07, 0x98, 0x73, 0x21, 0xad, 0x11, 0xa9, 0x0f, 0xcc, 0x1d, 0x4e, 0x2b, 0x0b, 0x89, 0x66, 0x50, 0xc3, 0xa7, 0x51, 0x8d, 0x56, 0x55, 0x29, 0xbe, 0xa8, 0x06, 0xa0, 0x5d, 0x44, 0x7e, 0x08, 0xd2, 0xa6, 0xa3, 0xdb, 0xf1, 0xa3, 0x69, 0x15, 0xb2, 0x95, 0x7c, 0xa5, 0xb4, 0x0e, 0x58, 0xb9, 0x7a, 0xd0, 0x36, 0x97, 0x35, 0xc4, 0x28, 0xbd, 0x6d, 0x69, 0xbd, 0x21, 0x00, 0x44, 0xb6, 0x51, 0x41, 0x8d, 0x98, 0xb0, 0x59, 0xd9, 0x0c, 0x83, 0xe4, 0x60, 0x11, 0xf4, 0x1c, 0x03, 0x2c, 0x56, 0x55, 0xa5, 0xef, 0x21, 0xac, 0x2c, 0x8c, 0x2b, 0xc9, 0x4b, 0xe0, 0x7e, 0x45, 0x42, 0x6a, 0x7a, 0xe5, 0xd4, 0x7b, 0x45, 0xf2, 0x7c, 0xf4, 0x28, 0x9c, 0xa4, 0xdd, 0xab, 0xe0, 0x8a, 0x12, 0xb9, 0x10, 0x20, 0x7d, 0xab, 0xb3, 0x4a, 0x46, 0xab, 0x75, 0xce, 0x69, 0xb5, 0x8e, 0x7e, 0x17, 0x66, 0x4b, 0xf3, 0x35, 0x9a, 0x8f, 0xb6, 0x8e, 0xb0, 0x32, 0xc9, 0xea, 0xa6, 0xdf, 0x87, 0x38, 0x29, 0xf0, 0xe0, 0x84, 0x85, 0x53, 0xf7, 0x32, 0xe1, 0xc3, 0xc0, 0x84, 0xb3, 0x2b, 0x7a, 0xf7, 0x50, 0x74, 0xe7, 0xbb, 0xaa, 0x4e, 0xb5, 0xd7, 0xea, 0xd7, 0xaf, 0xf9, 0x75, 0x80, 0x10, 0x9b, 0x60, 0xf4, 0xc7, 0x92, 0xf9, 0xe2, 0xa6, 0x51, 0x37, 0xb0, 0xaa, 0x48, 0x17, 0x5b, 0x81, 0x15, 0xd9, 0x13, 0x05, 0xf4, 0xc7, 0x7e, 0x2d, 0x08, 0xe7, 0xe8, 0xd7, 0xe7, 0x78, 0x5c, 0x96, 0x68, 0x42, 0xc2, 0xe3, 0x50, 0xfe, 0xd4, 0xf9, 0xe3, 0x3b, 0xf6, 0xe1, 0x84, 0xc5, 0x50, 0xb4, 0xb0, 0x6e, 0x95, 0x74, 0x14, 0xed, 0xf5, 0x2f, 0xa0, 0x79, 0xe8, 0x19, 0x73, 0x45, 0x84, 0x61, 0xfb, 0xb9, 0xb7, 0xd7, 0xd3, 0x4b, 0xef, 0x15, 0x03, 0x57, 0xf4, 0x32, 0xca, 0xac, 0x3a, 0xe9, 0xf3, 0xdc, 0x96, 0xeb, 0x5a, 0x2d, 0x12, 0x3e, 0x09, 0xed, 0xa1, 0x70, 0x2e, 0x1d, 0x10, 0x70, 0x17, 0x7b, 0xb2, 0x20, 0xc4, 0x23, 0xc0, 0x96, 0xec, 0x24, 0x42, 0x43, 0x85, 0xc6, 0x79, 0xbe, 0x02, 0xef, 0x84, 0xd0, 0x9e, 0xd1, 0x02, 0xf4, 0x9c, 0xad, 0x3b, 0x1f, 0xd6, 0x70, 0x67, 0x9a, 0x39, 0x71, 0x4f, 0xf1, 0xd6, 0xe4, 0x22, 0x8d, 0x8d, 0x7d, 0x0e, 0x19, 0xed, 0x0e, 0xba, 0x13, 0x2f, 0x21, 0x28, 0xd4, 0x7b, 0xaa, 0x56, 0x9a, 0x8e, 0xcb, 0x7b, 0xd4, 0x8a, 0x82, 0x62, 0x82, 0xf9, 0xcf, 0xcb, 0xf6, 0x0d, 0xde, 0xce, 0xaf, 0x1d, 0x02, 0x13, 0x2c, 0x8a, 0xff, 0xed, 0x3a, 0x03, 0xd2, 0x34, 0x0d, 0xeb, 0x78, 0x7c, 0xd6, 0x49, 0xc5, 0x1c, 0x6e, 0xcb, 0x9f, 0xf7, 0x5d, 0x7a, 0x7b, 0x4e, 0xf9, 0xb1, 0x51, 0x39, 0xcf, 0xea, 0x27, 0x62, 0xab, 0x18, 0x61, 0x51, 0x97, 0xa6, 0xb5, 0x1f, 0x6e, 0x75, 0xdb, 0xd0, 0x45, 0x73, 0xa2, 0x44, 0x80, 0x94, 0xd0, 0xcd, 0xeb, 0x0f, 0xe4, 0x58, 0x58, 0x83, 0xff, 0x9b, 0x68, 0x82, 0x4a, 0x04, 0xb8, 0x3e, 0xc9, 0x1c, 0xf8, 0x4a, 0xcd, 0x6a, 0x74, 0x46, 0xcb, 0x1f, 0x5e, 0xe3, 0x7d, 0x5d, 0xf8, 0x0f, 0x17, 0xcb, 0x2b, 0xdc, 0x3f, 0x31, 0x22, 0xa8, 0xfa, 0xf7, 0x6e, 0xbd, 0x06, 0xcf, 0xe8, 0x17, };
16996 static const u8 ed25519_739_test_vectors_expected_sig[] = {
16997 	0x65, 0x19, 0x1a, 0xa8, 0x85, 0xdd, 0xab, 0x9f, 0x67, 0x27, 0x18, 0x79, 0x95, 0x2f, 0xc6, 0xaf, 0xfe, 0x41, 0xca, 0x20, 0xeb, 0x3b, 0xcd, 0x86, 0x67, 0x31, 0x61, 0xb0, 0x3b, 0x53, 0x26, 0x94, 0xd6, 0xdd, 0x88, 0x90, 0x8e, 0xb1, 0xb1, 0xee, 0xc0, 0x03, 0xcf, 0xcb, 0xe6, 0x14, 0x6b, 0x45, 0x38, 0xe2, 0x1d, 0xf5, 0x59, 0x69, 0x91, 0x2a, 0x0d, 0x7d, 0x88, 0x18, 0xad, 0x79, 0x59, 0x0d, };
16998 static const ec_test_case ed25519_739_test_case = {
16999 	.name = "EDDSA25519-SHA512/wei25519 739",
17000 	.ec_str_p = &wei25519_str_params,
17001 	.priv_key = ed25519_739_test_vectors_priv_key,
17002 	.priv_key_len = sizeof(ed25519_739_test_vectors_priv_key),
17003 	.nn_random = NULL,
17004 	.hash_type = SHA512,
17005 	.msg = (const char *)ed25519_739_test_vectors_message,
17006 	.msglen = sizeof(ed25519_739_test_vectors_message),
17007 	.sig_type = EDDSA25519,
17008 	.exp_sig = ed25519_739_test_vectors_expected_sig,
17009 	.exp_siglen = sizeof(ed25519_739_test_vectors_expected_sig),
17010 	.adata = NULL,
17011 	.adata_len = 0
17012 };
17013 
17014 /************************************************/
17015 static const u8 ed25519_740_test_vectors_priv_key[] = {
17016 	0xe6, 0xfa, 0x10, 0xdb, 0xb4, 0x78, 0xe1, 0xe3, 0x6b, 0x35, 0xdf, 0xeb, 0x02, 0x50, 0xf6, 0x3c, 0x08, 0x51, 0x50, 0x70, 0xae, 0x79, 0xb2, 0x2f, 0x04, 0x7e, 0x27, 0x17, 0x08, 0xd6, 0x4f, 0x5c, };
17017 static const u8 ed25519_740_test_vectors_message[] = {
17018 	0xad, 0x31, 0x60, 0x75, 0x8d, 0x8c, 0x08, 0xa6, 0x61, 0x52, 0x5c, 0x95, 0x28, 0x0a, 0x37, 0x18, 0x87, 0x49, 0x69, 0x85, 0x9f, 0x1c, 0xc9, 0x18, 0xe3, 0x4f, 0xec, 0x00, 0x8a, 0xcf, 0x23, 0xb8, 0x89, 0x6e, 0x8d, 0x50, 0xc3, 0xc0, 0x51, 0x23, 0x31, 0xdc, 0x89, 0x78, 0x0f, 0x8b, 0x10, 0xfc, 0x34, 0x9c, 0x67, 0x5c, 0x4c, 0xd8, 0x2a, 0x5d, 0xf8, 0x58, 0x6b, 0x43, 0xc8, 0x64, 0x44, 0x8f, 0xac, 0x00, 0xb8, 0x47, 0xb9, 0xc9, 0x80, 0x54, 0xab, 0x79, 0x3f, 0x63, 0xc7, 0x1a, 0xa5, 0xe5, 0x24, 0x8e, 0x22, 0xd0, 0x69, 0xbd, 0x3f, 0x85, 0x2a, 0x3b, 0x8c, 0x6e, 0x2a, 0xc8, 0xef, 0x86, 0x1d, 0x90, 0xbc, 0xd9, 0x84, 0xbf, 0xca, 0x87, 0x58, 0x3e, 0x59, 0xe9, 0xa7, 0x46, 0x8f, 0x29, 0xb8, 0x08, 0xdc, 0x2f, 0xe5, 0x30, 0x2a, 0x98, 0x9d, 0x6f, 0x2e, 0xcd, 0xe7, 0x58, 0x5c, 0xd9, 0xbe, 0x4e, 0x4c, 0x76, 0x1c, 0x4d, 0x4b, 0x3e, 0xea, 0xf4, 0x69, 0x9f, 0x65, 0x56, 0xef, 0x03, 0x9a, 0xf2, 0xb8, 0x0f, 0x94, 0x07, 0x60, 0x5a, 0xc3, 0x97, 0x35, 0x1d, 0xd8, 0x55, 0x95, 0x58, 0x44, 0x95, 0xba, 0xa1, 0x77, 0xb0, 0x8c, 0x88, 0xd2, 0xec, 0x1f, 0xc4, 0xe3, 0x2d, 0x1c, 0x0b, 0x8d, 0x7e, 0x7a, 0xc5, 0x83, 0x9d, 0xfb, 0x92, 0x3f, 0x09, 0xb3, 0x23, 0xe7, 0x8e, 0xce, 0xb7, 0xe9, 0x6c, 0x06, 0x04, 0xb0, 0x1a, 0x19, 0xe4, 0x9c, 0x9b, 0xea, 0xf4, 0xf2, 0x5e, 0xc4, 0xa8, 0x4c, 0x1a, 0x08, 0xf2, 0x38, 0x0e, 0xdd, 0xc3, 0xa7, 0xf0, 0x12, 0x18, 0x49, 0x59, 0xcc, 0xd1, 0x9e, 0xcb, 0xba, 0xc6, 0x5e, 0xac, 0xa1, 0x55, 0xce, 0xe9, 0xec, 0xfe, 0xc1, 0x1e, 0x7f, 0xee, 0x05, 0x8e, 0x17, 0x4f, 0xc4, 0xed, 0x7c, 0x67, 0x9f, 0x2c, 0x15, 0x63, 0x1d, 0x4e, 0x15, 0x27, 0xbc, 0xdb, 0x0e, 0x3b, 0xb0, 0x81, 0x5f, 0xfd, 0xff, 0xc0, 0xc8, 0x56, 0xbe, 0xf0, 0xdc, 0x0f, 0x5c, 0x82, 0x37, 0xf7, 0x09, 0x8e, 0x26, 0xbd, 0xb6, 0x9e, 0x87, 0x82, 0xd1, 0xca, 0x51, 0x11, 0xec, 0x3c, 0x7e, 0xdb, 0x42, 0x5d, 0xff, 0x80, 0x32, 0x02, 0x6c, 0xba, 0x3d, 0x2e, 0x08, 0x1b, 0x71, 0x31, 0x0d, 0xb9, 0xba, 0xda, 0xd1, 0xad, 0x02, 0xf1, 0xec, 0xcc, 0x53, 0x7d, 0x87, 0x4c, 0xd1, 0x8c, 0x6b, 0xb0, 0x12, 0x21, 0xf7, 0x1e, 0xe6, 0x62, 0x50, 0xd9, 0x4c, 0xf8, 0xec, 0xce, 0xaa, 0x96, 0xd3, 0xc5, 0x7e, 0xea, 0x2b, 0x0a, 0x8e, 0xc7, 0x24, 0x29, 0xd7, 0x60, 0x64, 0x88, 0xbd, 0xf1, 0x9e, 0xc3, 0xbb, 0x16, 0xe5, 0x08, 0x67, 0xc7, 0x93, 0x7d, 0xef, 0x09, 0xfc, 0x78, 0x3f, 0x20, 0xa2, 0xa5, 0xec, 0x99, 0x25, 0x3d, 0x6b, 0x24, 0x0d, 0xf4, 0x67, 0x7d, 0xd2, 0xd5, 0x27, 0x7b, 0x01, 0xc5, 0xb8, 0xe5, 0xbd, 0x6c, 0x7d, 0xf0, 0x87, 0x42, 0x05, 0xbc, 0x8c, 0x2f, 0xff, 0xdb, 0xa1, 0x31, 0x46, 0x74, 0xd3, 0x1c, 0x9b, 0x2c, 0x91, 0x99, 0x22, 0x8e, 0x19, 0xe0, 0x42, 0x18, 0x34, 0xc1, 0x65, 0x7d, 0x06, 0x98, 0x28, 0x69, 0x16, 0xc7, 0xe3, 0x92, 0xf0, 0xab, 0xd5, 0x54, 0x5b, 0x96, 0x3a, 0xc1, 0xff, 0xa9, 0x97, 0x21, 0x61, 0x6c, 0x23, 0x79, 0x6f, 0x85, 0xc3, 0x4a, 0x5c, 0x66, 0x4a, 0xe8, 0x1d, 0x16, 0xb2, 0x16, 0xa5, 0xb0, 0xcf, 0x5b, 0xc6, 0xb5, 0xa9, 0x08, 0x29, 0x72, 0x85, 0xd6, 0x16, 0x44, 0x12, 0x8f, 0x88, 0x6f, 0x38, 0xaf, 0x9e, 0xdd, 0x25, 0x19, 0x3d, 0x7e, 0xcc, 0x77, 0xa7, 0x99, 0x94, 0x27, 0x8d, 0xa0, 0x71, 0xf5, 0x44, 0x95, 0x93, 0x7f, 0xee, 0xf5, 0xa5, 0x19, 0x57, 0x52, 0x7c, 0x3e, 0xec, 0x7c, 0xb0, 0xb4, 0xe8, 0xaa, 0x7a, 0x4e, 0x85, 0x6d, 0xef, 0xd5, 0x7d, 0xd9, 0x23, 0x34, 0x15, 0x1b, 0x98, 0x6a, 0xa6, 0x9c, 0xa6, 0x92, 0x60, 0xd1, 0xe2, 0xd7, 0xb5, 0x3c, 0x05, 0x67, 0x7e, 0xe0, 0xd2, 0x16, 0xb2, 0x8d, 0x03, 0x62, 0x52, 0xdd, 0x30, 0x06, 0xde, 0xbe, 0x1b, 0x65, 0x74, 0xa2, 0x5e, 0x6b, 0x19, 0xdf, 0xb4, 0x8f, 0xa6, 0x43, 0x16, 0xaf, 0x8f, 0xd6, 0x8d, 0x78, 0x93, 0xb3, 0x97, 0xe7, 0xdb, 0x57, 0x80, 0xab, 0x27, 0xbf, 0x87, 0x26, 0xff, 0xf6, 0x05, 0xd3, 0xb4, 0x6d, 0x80, 0x05, 0x95, 0xb4, 0x62, 0x4b, 0xee, 0x30, 0x2c, 0x96, 0x43, 0x26, 0x03, 0x4b, 0x52, 0x34, 0xd1, 0x75, 0xdf, 0xdc, 0xc2, 0xce, 0x88, 0x2e, 0x65, 0xb3, 0xd9, 0x3a, 0x04, 0x38, 0xf6, 0x92, 0xe9, 0x69, 0x5d, 0xe1, 0xf2, 0x4c, 0x70, 0xa7, 0x9b, 0xee, 0xd2, 0x54, 0x15, 0xec, 0x5a, 0xae, 0xcf, 0x33, 0x91, 0x95, 0x3b, 0x2f, 0xfd, 0x45, 0x3a, 0x8f, 0x04, 0x67, 0x56, 0x1a, 0x4a, 0x47, 0xee, 0x14, 0x4a, 0x43, 0xfd, 0xff, 0x83, 0xdf, 0x2b, 0xea, 0x5f, 0x66, 0xa7, 0x22, 0xb5, 0x2a, 0xbe, 0x86, 0x13, 0xf2, 0x0c, 0x59, 0x4a, 0xf0, 0x98, 0x2e, 0xb3, 0xf0, 0x45, 0x05, 0xa5, 0x24, 0x61, 0xdd, 0x03, 0x4d, 0xa8, 0x6c, 0x36, 0xca, 0x16, 0x21, 0x77, 0x05, 0xc0, 0x48, 0x23, 0x91, 0x1d, 0x72, 0xa2, 0x47, 0x69, 0x51, 0x76, 0x33, 0x56, 0x28, 0x86, 0xf2, 0x50, 0xf2, 0xcf, 0x78, 0x8b, 0x8f, 0x32, 0x86, 0x4a, 0x94, 0x74, 0xf5, 0x7e, 0x62, 0xe5, 0x7d, 0xe8, 0xfd, 0xaf, 0x95, 0x9a, 0x6b, 0x72, 0x28, 0x74, 0x40, 0xa8, };
17019 static const u8 ed25519_740_test_vectors_expected_sig[] = {
17020 	0xc0, 0x3c, 0x47, 0x03, 0x59, 0x12, 0x7e, 0x9d, 0xe3, 0xaf, 0x0e, 0x0e, 0xd7, 0xd3, 0xb1, 0x9f, 0xae, 0xe0, 0xec, 0x14, 0x0b, 0x79, 0xc2, 0x99, 0xe2, 0xcb, 0x6d, 0xac, 0x0a, 0x3e, 0x7e, 0x31, 0x41, 0x41, 0xcc, 0x85, 0x4b, 0x45, 0x96, 0xce, 0x4c, 0x51, 0xc7, 0xb0, 0xde, 0xc8, 0xa5, 0xc8, 0xcf, 0x09, 0x36, 0x20, 0x53, 0x61, 0xd5, 0x36, 0x5f, 0x4b, 0xcc, 0x07, 0xc4, 0x28, 0x7c, 0x07, };
17021 static const ec_test_case ed25519_740_test_case = {
17022 	.name = "EDDSA25519-SHA512/wei25519 740",
17023 	.ec_str_p = &wei25519_str_params,
17024 	.priv_key = ed25519_740_test_vectors_priv_key,
17025 	.priv_key_len = sizeof(ed25519_740_test_vectors_priv_key),
17026 	.nn_random = NULL,
17027 	.hash_type = SHA512,
17028 	.msg = (const char *)ed25519_740_test_vectors_message,
17029 	.msglen = sizeof(ed25519_740_test_vectors_message),
17030 	.sig_type = EDDSA25519,
17031 	.exp_sig = ed25519_740_test_vectors_expected_sig,
17032 	.exp_siglen = sizeof(ed25519_740_test_vectors_expected_sig),
17033 	.adata = NULL,
17034 	.adata_len = 0
17035 };
17036 
17037 /************************************************/
17038 static const u8 ed25519_741_test_vectors_priv_key[] = {
17039 	0x05, 0x8e, 0x36, 0x80, 0xb8, 0xfc, 0xc0, 0xaa, 0x14, 0x90, 0x08, 0x9c, 0x11, 0x24, 0x67, 0x7f, 0x98, 0xd7, 0x4b, 0x1b, 0xfb, 0x71, 0xee, 0x86, 0x63, 0xf0, 0x25, 0xf0, 0xd9, 0x46, 0xcd, 0x20, };
17040 static const u8 ed25519_741_test_vectors_message[] = {
17041 	0xe6, 0x3d, 0x14, 0xf5, 0xbe, 0xa7, 0xa1, 0xab, 0xb8, 0xfe, 0xe6, 0x97, 0x74, 0x6c, 0x22, 0x80, 0xdf, 0xd0, 0x62, 0x2d, 0xe7, 0x35, 0x72, 0x26, 0xcc, 0x07, 0x42, 0x72, 0x2a, 0x32, 0x29, 0xbe, 0x12, 0x6b, 0x08, 0x3e, 0x86, 0x8a, 0xea, 0xf0, 0x7d, 0x2f, 0xc9, 0x7a, 0xdc, 0x33, 0x42, 0x70, 0x96, 0x74, 0x19, 0x3c, 0xa2, 0x81, 0x74, 0x4e, 0x85, 0x0e, 0xa1, 0x54, 0x40, 0x05, 0x0a, 0xec, 0x93, 0x0e, 0x45, 0xd7, 0xa8, 0x7b, 0x8a, 0xc8, 0x01, 0x5c, 0x89, 0x67, 0xc2, 0x00, 0x33, 0xa5, 0x32, 0xd2, 0x95, 0x91, 0xb1, 0x35, 0x58, 0x6c, 0xe0, 0xfd, 0xd2, 0xe6, 0x68, 0xb5, 0xc8, 0x64, 0xb3, 0xbd, 0xe7, 0x0c, 0x7e, 0x71, 0x9a, 0xd2, 0x41, 0x93, 0x12, 0x51, 0x86, 0x19, 0x33, 0xff, 0xbf, 0xa9, 0x64, 0x83, 0xff, 0x82, 0x85, 0x67, 0x48, 0xc5, 0x6d, 0xc2, 0x6e, 0x25, 0x7d, 0x69, 0x2e, 0x51, 0x34, 0xd8, 0x2f, 0xc7, 0x19, 0x1c, 0x11, 0x0d, 0x95, 0x90, 0xd3, 0xfc, 0x75, 0x1c, 0xd6, 0x36, 0xb0, 0xc4, 0x6f, 0x44, 0xf8, 0x80, 0x3e, 0x59, 0xe2, 0xf9, 0x3f, 0xa0, 0xcb, 0xe2, 0x47, 0xa1, 0xa6, 0x25, 0xb4, 0xbc, 0x2c, 0x7b, 0x1f, 0xdc, 0xeb, 0x5a, 0x2b, 0x22, 0x59, 0x1f, 0xa6, 0x13, 0x7c, 0x54, 0x04, 0xdf, 0xec, 0x6a, 0x69, 0x63, 0x9e, 0x3f, 0x63, 0x2b, 0x59, 0x76, 0xab, 0x9f, 0xe1, 0xc6, 0x3a, 0xa3, 0xda, 0x9d, 0x52, 0xb0, 0x44, 0x00, 0x8f, 0x3a, 0xe4, 0x4b, 0x7c, 0x36, 0x4f, 0x08, 0x56, 0x64, 0x32, 0x3a, 0x88, 0xeb, 0x45, 0x83, 0xe8, 0x71, 0x40, 0xf7, 0x63, 0x78, 0x2b, 0xff, 0x88, 0x19, 0xcf, 0x74, 0x1a, 0x87, 0x5d, 0x50, 0x6c, 0x92, 0x9d, 0x34, 0xbb, 0xd4, 0x30, 0x07, 0xde, 0x4b, 0x18, 0xf6, 0x87, 0xa7, 0x58, 0x11, 0x11, 0x28, 0xb1, 0xdb, 0x86, 0xfc, 0x5a, 0xd2, 0xfb, 0x9f, 0xca, 0xd1, 0x2c, 0x9d, 0xd2, 0x8f, 0xee, 0x5a, 0xd1, 0x0d, 0xe0, 0x73, 0x9f, 0x8e, 0xfd, 0x9b, 0xff, 0x66, 0xf8, 0x40, 0xb1, 0x1b, 0x3f, 0x91, 0xc5, 0xe0, 0x7c, 0x21, 0x45, 0x2c, 0xab, 0x24, 0x24, 0x2b, 0x6e, 0x32, 0x16, 0x5c, 0xd1, 0xe6, 0x95, 0x72, 0xbf, 0x21, 0x6e, 0x86, 0x04, 0x53, 0xda, 0xd2, 0xfd, 0x12, 0x9c, 0x33, 0x37, 0x58, 0x58, 0x0b, 0xb7, 0xd0, 0xf1, 0x95, 0x09, 0x74, 0x5e, 0x85, 0x14, 0x63, 0xd1, 0x27, 0xa5, 0xf9, 0xbe, 0x21, 0xfe, 0x54, 0x9c, 0xae, 0x55, 0xd5, 0x6b, 0x8b, 0xea, 0x80, 0xbf, 0xaf, 0xda, 0xc1, 0x0a, 0xcd, 0x83, 0x8e, 0xa8, 0xaf, 0x31, 0xc0, 0x07, 0xdc, 0x32, 0xbf, 0xd7, 0x40, 0x82, 0xd9, 0x11, 0x0a, 0x3e, 0x91, 0xe6, 0x1e, 0x03, 0x57, 0x58, 0x7e, 0x4e, 0xd3, 0x28, 0x27, 0xad, 0xe9, 0xb6, 0x91, 0x0a, 0x98, 0x8c, 0x1d, 0x3b, 0x2d, 0xd2, 0x2c, 0x0e, 0xe7, 0x6e, 0xf3, 0x5f, 0xe1, 0x5e, 0x09, 0x94, 0x04, 0xa4, 0x5d, 0x4b, 0x2a, 0xca, 0xb9, 0x12, 0x3e, 0xcc, 0x45, 0x55, 0x0a, 0x40, 0xfa, 0xf8, 0x33, 0x6b, 0x46, 0xc6, 0x30, 0xa9, 0x08, 0x03, 0x58, 0xff, 0x8b, 0x8e, 0x58, 0xaf, 0x0b, 0xcc, 0xbd, 0x35, 0x01, 0x0c, 0x1e, 0xcc, 0x12, 0x81, 0x66, 0x55, 0xa5, 0xec, 0xeb, 0xa9, 0x5a, 0xd3, 0xf5, 0x03, 0xa1, 0x8e, 0xc5, 0xbe, 0xce, 0x3a, 0x33, 0xf4, 0x69, 0xdf, 0xe9, 0x17, 0xe1, 0xc5, 0x5e, 0xf1, 0xd8, 0x1e, 0x5a, 0x75, 0x56, 0x1e, 0x6b, 0xbd, 0x99, 0xc6, 0x53, 0xa6, 0xd0, 0x95, 0xb9, 0xf3, 0x87, 0x91, 0x1e, 0x40, 0x33, 0x2f, 0x62, 0x16, 0xf9, 0x56, 0xa3, 0x5c, 0xf7, 0xd9, 0x9a, 0x9f, 0xdd, 0x0c, 0x44, 0xc5, 0x1e, 0x90, 0xa5, 0x64, 0xf1, 0xc3, 0x6b, 0xf3, 0xd4, 0x0a, 0x7f, 0xaf, 0x4b, 0xa2, 0x8b, 0x1a, 0x12, 0x0b, 0x32, 0x05, 0xfb, 0xac, 0x1a, 0x98, 0x56, 0x92, 0x90, 0xbe, 0x37, 0xc5, 0x8b, 0xbd, 0x74, 0x5c, 0xe0, 0xfb, 0x74, 0x83, 0x52, 0x70, 0xab, 0xa2, 0x25, 0x2a, 0xda, 0xec, 0x15, 0x7d, 0xc4, 0x24, 0x61, 0x22, 0x1a, 0x2c, 0xff, 0x68, 0x7b, 0x9e, 0x65, 0xce, 0xb5, 0x7c, 0x2d, 0x77, 0x70, 0x0a, 0xea, 0x63, 0x20, 0x48, 0x6c, 0x5b, 0x1b, 0xec, 0x9c, 0xc5, 0x3e, 0x7e, 0xf9, 0xe4, 0x8f, 0xcd, 0x1b, 0x77, 0x83, 0xac, 0xbe, 0x75, 0xa6, 0xbe, 0x02, 0x67, 0x27, 0x88, 0x12, 0xdb, 0xf3, 0xd2, 0x57, 0x6c, 0xf7, 0xad, 0x39, 0x11, 0x27, 0x1a, 0xce, 0xbe, 0x0f, 0x2c, 0x04, 0x60, 0x2a, 0x08, 0x0c, 0x8b, 0x96, 0xc1, 0x20, 0xfd, 0x86, 0xfd, 0xa2, 0x82, 0xaa, 0x4e, 0x1c, 0x13, 0x1f, 0xe9, 0x7c, 0x90, 0x7c, 0x15, 0x85, 0x5f, 0x87, 0x75, 0x5f, 0x51, 0x1c, 0x03, 0x7b, 0xef, 0xad, 0x0f, 0x56, 0xb3, 0x9f, 0x32, 0xa2, 0x13, 0x3a, 0x22, 0xf3, 0xd5, 0xa9, 0xbe, 0xc3, 0x44, 0x3f, 0x29, 0xa6, 0x94, 0xe9, 0x7f, 0xe0, 0x5e, 0x10, 0xfb, 0x8e, 0xf9, 0x99, 0x13, 0x02, 0xb9, 0xe0, 0xd8, 0x4d, 0x92, 0x9a, 0x19, 0xeb, 0x03, 0x47, 0x1f, 0x3a, 0x86, 0x13, 0xd3, 0x93, 0x68, 0xe1, 0x58, 0x83, 0xa7, 0xe4, 0x97, 0x0b, 0x53, 0xcb, 0xaf, 0x29, 0x29, 0xd8, 0xde, 0x43, 0x1b, 0x48, 0xb4, 0x35, 0xd7, 0x53, 0x3c, 0xaa, 0x2e, 0x36, 0xce, 0xab, 0x6c, 0xdd, 0xb3, 0x46, 0xe5, 0x35, 0xe5, 0x15, 0xc4, 0xb3, 0xdb, 0x76, 0xde, 0x07, 0xd9, 0x85, 0x54, 0x14, };
17042 static const u8 ed25519_741_test_vectors_expected_sig[] = {
17043 	0x57, 0x34, 0xec, 0x50, 0xa7, 0xf8, 0x2e, 0x48, 0x53, 0x6b, 0xdc, 0x43, 0x70, 0xcf, 0xef, 0x2e, 0x15, 0x0a, 0x63, 0x1d, 0xab, 0xaf, 0x89, 0xed, 0xcf, 0x0f, 0xda, 0xbe, 0x4f, 0x58, 0x39, 0xf4, 0xf5, 0xfb, 0xd8, 0xdf, 0x8e, 0xc4, 0xa3, 0xac, 0xd4, 0x0a, 0x8b, 0xfb, 0x96, 0x3d, 0x18, 0x55, 0xff, 0x92, 0x74, 0xdb, 0xc3, 0x31, 0x65, 0xb5, 0xe6, 0xd3, 0x7a, 0x23, 0x9d, 0xac, 0xe9, 0x03, };
17044 static const ec_test_case ed25519_741_test_case = {
17045 	.name = "EDDSA25519-SHA512/wei25519 741",
17046 	.ec_str_p = &wei25519_str_params,
17047 	.priv_key = ed25519_741_test_vectors_priv_key,
17048 	.priv_key_len = sizeof(ed25519_741_test_vectors_priv_key),
17049 	.nn_random = NULL,
17050 	.hash_type = SHA512,
17051 	.msg = (const char *)ed25519_741_test_vectors_message,
17052 	.msglen = sizeof(ed25519_741_test_vectors_message),
17053 	.sig_type = EDDSA25519,
17054 	.exp_sig = ed25519_741_test_vectors_expected_sig,
17055 	.exp_siglen = sizeof(ed25519_741_test_vectors_expected_sig),
17056 	.adata = NULL,
17057 	.adata_len = 0
17058 };
17059 
17060 /************************************************/
17061 static const u8 ed25519_742_test_vectors_priv_key[] = {
17062 	0x51, 0xba, 0x3a, 0x4f, 0x3d, 0x85, 0xd1, 0x54, 0x8c, 0x2f, 0x24, 0x94, 0xa3, 0x51, 0x1f, 0x3b, 0x95, 0x15, 0x66, 0x3d, 0x7e, 0x85, 0x37, 0x0f, 0xb6, 0x15, 0x02, 0x37, 0xe9, 0xbc, 0x98, 0x0b, };
17063 static const u8 ed25519_742_test_vectors_message[] = {
17064 	0xd1, 0x8d, 0x0c, 0xbf, 0xc1, 0x6d, 0x0f, 0x9b, 0x67, 0xf2, 0x53, 0x9a, 0xd6, 0x20, 0x7c, 0xd9, 0x21, 0x7a, 0xd5, 0xed, 0x03, 0x33, 0xcd, 0xdb, 0x10, 0x41, 0xe0, 0xac, 0x2b, 0xdd, 0x92, 0x02, 0x76, 0x62, 0x96, 0x52, 0xb4, 0x9c, 0xbc, 0x98, 0x02, 0x59, 0x3e, 0xc3, 0x64, 0xea, 0x79, 0x5a, 0xbc, 0xd1, 0x58, 0x20, 0x85, 0xf5, 0x5b, 0xc6, 0x6c, 0x48, 0xfd, 0x3e, 0xed, 0xe6, 0x18, 0xd6, 0x36, 0x96, 0x17, 0x10, 0x0e, 0xae, 0xcc, 0xc1, 0x5f, 0x24, 0x9d, 0x6e, 0xee, 0x5b, 0xb2, 0xc4, 0x3c, 0x01, 0xb0, 0x62, 0x3f, 0xe6, 0x03, 0xce, 0xee, 0xe4, 0x9b, 0x40, 0xfb, 0x7c, 0x53, 0xfc, 0x68, 0x47, 0x36, 0x73, 0xc0, 0x9b, 0x1a, 0xc7, 0x7e, 0xa9, 0xbe, 0xb7, 0xe8, 0x53, 0x03, 0x79, 0xa8, 0x6d, 0x69, 0xec, 0xd1, 0xff, 0x11, 0x81, 0x3f, 0xbb, 0x88, 0xf6, 0x92, 0xf0, 0x5e, 0xf1, 0x32, 0x07, 0x42, 0xb4, 0xfe, 0x7e, 0x06, 0xd5, 0xba, 0x71, 0x65, 0x66, 0x46, 0xcd, 0x75, 0x00, 0xde, 0x19, 0xbb, 0x93, 0xd8, 0x44, 0x53, 0x66, 0x03, 0xf4, 0x0b, 0xd4, 0xae, 0xea, 0xf0, 0xc4, 0xdb, 0xc0, 0xac, 0xfd, 0x20, 0x2b, 0x28, 0x6b, 0x64, 0xaf, 0xb8, 0x3d, 0x4a, 0x37, 0x8d, 0xd4, 0x5e, 0xe3, 0xc1, 0xdf, 0x6b, 0x3e, 0xf1, 0x6b, 0x8b, 0x1a, 0xcc, 0xbc, 0x04, 0x06, 0x32, 0x50, 0xec, 0x47, 0xb8, 0x6a, 0xe5, 0xa7, 0x1d, 0x1d, 0xab, 0x38, 0xb5, 0xeb, 0x80, 0xd6, 0x63, 0xfa, 0xa7, 0x88, 0xf8, 0xb5, 0x9a, 0x75, 0x4c, 0x0f, 0x9c, 0x9f, 0x6d, 0x90, 0x62, 0x52, 0xaf, 0x46, 0xab, 0x1f, 0xff, 0xed, 0x27, 0x6d, 0x23, 0x88, 0xdb, 0xe7, 0x0d, 0x96, 0xba, 0x67, 0x47, 0xd1, 0xfe, 0xd4, 0xfc, 0x0b, 0x55, 0x29, 0x3d, 0x5f, 0x78, 0x7b, 0xda, 0x0c, 0x0d, 0xf4, 0x6a, 0x73, 0xf4, 0xaa, 0x7d, 0x29, 0xe1, 0xc9, 0xcc, 0x85, 0xcd, 0x04, 0x3e, 0x3d, 0xff, 0xe0, 0x57, 0x46, 0x2c, 0xa5, 0xfe, 0x5c, 0x64, 0x70, 0xe7, 0x39, 0x27, 0x6f, 0x8b, 0x53, 0x4c, 0x01, 0x72, 0xe4, 0x60, 0xf3, 0x40, 0x48, 0x7a, 0x56, 0x94, 0x68, 0xaa, 0x58, 0x90, 0xcc, 0x14, 0xf2, 0x0d, 0x67, 0xd7, 0x9c, 0x66, 0x1e, 0x87, 0xfe, 0xba, 0xc6, 0x27, 0x59, 0x71, 0xc3, 0x73, 0x08, 0x07, 0xeb, 0xf1, 0x75, 0xe0, 0xde, 0x10, 0x49, 0xbe, 0xe6, 0x7c, 0x89, 0x5e, 0x57, 0xb7, 0x1a, 0xb8, 0xa2, 0xf3, 0xcf, 0x36, 0x41, 0xfd, 0x54, 0x8d, 0x09, 0x41, 0x4f, 0x5f, 0xc3, 0x02, 0x6a, 0x0a, 0x35, 0xf6, 0xba, 0x95, 0x16, 0x73, 0x94, 0x49, 0x41, 0xcb, 0x23, 0x6f, 0x3d, 0x19, 0x76, 0xdc, 0x69, 0x07, 0x7d, 0x95, 0x14, 0x50, 0xe7, 0x66, 0x03, 0x16, 0x98, 0x8f, 0x6f, 0x2a, 0x6f, 0xbb, 0xff, 0x3b, 0x37, 0xce, 0xaa, 0x02, 0xfd, 0x6f, 0x02, 0x73, 0xbd, 0x80, 0x31, 0x85, 0xa1, 0x09, 0x03, 0x9c, 0x63, 0xf2, 0x51, 0x9b, 0x98, 0x3d, 0xaf, 0x65, 0x54, 0x25, 0x3b, 0xed, 0x54, 0x97, 0xc0, 0xb0, 0xbd, 0xaa, 0x0b, 0xd4, 0xa1, 0xfa, 0xc9, 0x00, 0x26, 0xad, 0xe3, 0xe4, 0x0c, 0x55, 0x4c, 0xff, 0x2c, 0xcb, 0x36, 0x99, 0x0e, 0x71, 0x55, 0x67, 0x08, 0xc5, 0xc4, 0x03, 0x92, 0x56, 0xff, 0xc7, 0x33, 0x7e, 0x5f, 0xea, 0x11, 0xf5, 0xe9, 0x0d, 0x3e, 0x4d, 0x93, 0x35, 0x91, 0x79, 0x11, 0x6a, 0x85, 0xc2, 0x41, 0x36, 0xca, 0x34, 0x83, 0x5c, 0xd3, 0x40, 0x12, 0xe4, 0xd7, 0xdd, 0xc7, 0xb7, 0x21, 0xc2, 0x46, 0xc7, 0x37, 0x00, 0xe2, 0x76, 0xdc, 0x2f, 0xf9, 0xf2, 0x77, 0x0b, 0x43, 0xc8, 0xe8, 0x0a, 0x17, 0xf0, 0x1d, 0x32, 0x68, 0x0b, 0xae, 0x22, 0x8e, 0x64, 0x23, 0xa8, 0x80, 0xc3, 0xfb, 0x99, 0x6a, 0xb8, 0xd2, 0x21, 0xbc, 0x62, 0x74, 0xac, 0x5f, 0xa7, 0x70, 0xd2, 0x05, 0xfc, 0x87, 0x8f, 0xba, 0x9b, 0xbd, 0x77, 0x6a, 0x3d, 0x79, 0xed, 0x77, 0x04, 0x89, 0x50, 0xf3, 0x6d, 0xc0, 0xaa, 0x3c, 0xcd, 0x28, 0xe4, 0x75, 0x6a, 0x99, 0x19, 0x04, 0xae, 0x05, 0x1b, 0x8a, 0x4b, 0x7d, 0xe3, 0xa1, 0xf2, 0xad, 0x0f, 0xb4, 0x5a, 0x33, 0xd0, 0xc6, 0x82, 0x25, 0x84, 0x1f, 0x8e, 0xb6, 0x5b, 0x6a, 0x16, 0xe9, 0x5f, 0x89, 0x35, 0x91, 0xe1, 0xaa, 0x73, 0xa6, 0x4f, 0x0d, 0x2e, 0xe9, 0x38, 0xab, 0x69, 0xad, 0xcc, 0x8c, 0x59, 0x51, 0x8b, 0xec, 0x50, 0x1c, 0x39, 0xf1, 0x39, 0x17, 0x4b, 0xbb, 0x00, 0x69, 0x9e, 0x1a, 0x0f, 0x0e, 0x0d, 0x88, 0x9a, 0xae, 0x54, 0x3a, 0x55, 0xe6, 0xac, 0x56, 0xd5, 0x20, 0x4c, 0x1a, 0xde, 0x1f, 0x27, 0xd8, 0x2a, 0x6a, 0x95, 0xe1, 0x4b, 0x2d, 0x69, 0x09, 0xdd, 0xa7, 0xbf, 0xaa, 0x7f, 0x48, 0x7f, 0xb6, 0x19, 0x59, 0x01, 0x4b, 0x78, 0x79, 0x5c, 0xb4, 0x63, 0x9f, 0x09, 0xf0, 0xd3, 0x29, 0xfe, 0xb3, 0x5c, 0xcf, 0x52, 0xed, 0xc2, 0xdb, 0x72, 0x19, 0x14, 0xe4, 0x23, 0x30, 0x68, 0x89, 0xa4, 0x83, 0xfe, 0xe8, 0x76, 0x36, 0x0e, 0xe3, 0x26, 0x33, 0x53, 0x19, 0x07, 0x0c, 0x56, 0x4f, 0x3a, 0x8b, 0x95, 0x3f, 0x52, 0xf4, 0x15, 0x13, 0xa2, 0x26, 0x08, 0x83, 0xc3, 0x8d, 0xd9, 0x78, 0xa2, 0x48, 0x60, 0x4a, 0x41, 0xbd, 0x4b, 0xfc, 0x9e, 0x84, 0x18, 0x4d, 0xc9, 0xe8, 0x4d, 0x25, 0x89, 0xf4, 0xaf, 0xff, 0x84, 0x17, 0x82, 0x4c, 0xe5, 0xad, 0xba, };
17065 static const u8 ed25519_742_test_vectors_expected_sig[] = {
17066 	0x16, 0xfb, 0x29, 0x0c, 0x91, 0x3b, 0x20, 0xeb, 0x1c, 0x3d, 0x7b, 0x79, 0x82, 0x49, 0xeb, 0x84, 0x59, 0xd4, 0xbe, 0xe8, 0x12, 0x5d, 0xb2, 0xb3, 0xf1, 0xda, 0xab, 0x8a, 0xf9, 0xd9, 0xa7, 0x00, 0xed, 0x79, 0x8a, 0xdd, 0xd8, 0x02, 0xdf, 0xcd, 0x29, 0x7a, 0x41, 0x25, 0x93, 0xcd, 0xa7, 0xbe, 0x99, 0x79, 0xa1, 0xf0, 0x93, 0x50, 0xe8, 0x6f, 0x69, 0x8a, 0xc3, 0x38, 0x0e, 0x34, 0x1d, 0x07, };
17067 static const ec_test_case ed25519_742_test_case = {
17068 	.name = "EDDSA25519-SHA512/wei25519 742",
17069 	.ec_str_p = &wei25519_str_params,
17070 	.priv_key = ed25519_742_test_vectors_priv_key,
17071 	.priv_key_len = sizeof(ed25519_742_test_vectors_priv_key),
17072 	.nn_random = NULL,
17073 	.hash_type = SHA512,
17074 	.msg = (const char *)ed25519_742_test_vectors_message,
17075 	.msglen = sizeof(ed25519_742_test_vectors_message),
17076 	.sig_type = EDDSA25519,
17077 	.exp_sig = ed25519_742_test_vectors_expected_sig,
17078 	.exp_siglen = sizeof(ed25519_742_test_vectors_expected_sig),
17079 	.adata = NULL,
17080 	.adata_len = 0
17081 };
17082 
17083 /************************************************/
17084 static const u8 ed25519_743_test_vectors_priv_key[] = {
17085 	0x7d, 0xde, 0xc5, 0x26, 0xa4, 0x97, 0x1d, 0x89, 0x12, 0xa6, 0xbd, 0x43, 0xc6, 0x9f, 0x92, 0xed, 0x86, 0x44, 0x2b, 0x15, 0xf4, 0x2f, 0xba, 0xbb, 0xf2, 0xd1, 0x7e, 0xff, 0x98, 0x99, 0x31, 0x61, };
17086 static const u8 ed25519_743_test_vectors_message[] = {
17087 	0xe8, 0x77, 0x4a, 0x45, 0xd4, 0xd8, 0xf8, 0x6d, 0xda, 0x5c, 0x08, 0x80, 0x2b, 0xa2, 0x47, 0x2e, 0xf3, 0xc8, 0xd3, 0x6c, 0x7f, 0x38, 0x3a, 0xc0, 0x46, 0x12, 0xa4, 0x64, 0x38, 0x2e, 0x9d, 0x6c, 0x07, 0xd8, 0xd3, 0x58, 0x22, 0xc5, 0x3f, 0x43, 0x88, 0xf5, 0x15, 0x36, 0x14, 0xfe, 0xfa, 0xf4, 0x63, 0x74, 0x74, 0x7b, 0x9d, 0x4f, 0xd4, 0x46, 0xa8, 0x64, 0x76, 0x9a, 0x4c, 0xad, 0xe8, 0x43, 0xc1, 0xea, 0xb8, 0x57, 0x43, 0x19, 0x11, 0x2f, 0x01, 0x79, 0xd2, 0xea, 0x9e, 0x3c, 0x19, 0x5d, 0xc0, 0x68, 0xf0, 0x69, 0x74, 0x62, 0xb9, 0xe0, 0x7c, 0x87, 0x94, 0x87, 0x0f, 0x8f, 0xb8, 0xff, 0xc0, 0x81, 0xe4, 0x58, 0x6a, 0xfb, 0xcd, 0xba, 0x7a, 0x4f, 0x59, 0x25, 0xe9, 0xfd, 0x9e, 0xc9, 0x42, 0xd8, 0x43, 0x47, 0x33, 0xc2, 0xdd, 0xd5, 0xe2, 0x9b, 0xbd, 0xfc, 0x73, 0x42, 0xb9, 0x28, 0x68, 0x71, 0x9b, 0x54, 0x40, 0x88, 0xa4, 0x8e, 0xba, 0x4c, 0x82, 0xf1, 0x87, 0xdd, 0xca, 0x8f, 0x47, 0x46, 0x25, 0xa7, 0x1c, 0xf6, 0xb7, 0xaa, 0x5f, 0x08, 0x1c, 0x74, 0xf7, 0x40, 0x8f, 0x53, 0xb7, 0x81, 0x63, 0x6e, 0x7e, 0x9d, 0x29, 0xb0, 0x7f, 0xdb, 0x6d, 0x9c, 0x35, 0xe5, 0xeb, 0x38, 0x2d, 0xb7, 0xa3, 0x1a, 0x8b, 0xa5, 0x16, 0x91, 0x5d, 0xf8, 0xde, 0xe9, 0xe1, 0xad, 0x3f, 0x18, 0x28, 0x43, 0x68, 0x3e, 0x8d, 0x1d, 0xc5, 0xd8, 0x66, 0x9d, 0xbf, 0xcf, 0x09, 0x54, 0x1a, 0x43, 0xc0, 0xa0, 0x46, 0x13, 0x38, 0x1a, 0x5b, 0x5e, 0x4e, 0x71, 0xb2, 0x3c, 0x5a, 0xd0, 0x9b, 0x8e, 0xaa, 0x51, 0xcb, 0x93, 0x8d, 0x0c, 0x75, 0x2c, 0xc3, 0xd3, 0xa1, 0x0f, 0x10, 0xb4, 0x2b, 0xe8, 0xee, 0x7f, 0x6b, 0xda, 0xc8, 0x07, 0x85, 0x68, 0x43, 0x49, 0x46, 0xbb, 0xf5, 0x6d, 0xa7, 0x0e, 0x7d, 0x54, 0x15, 0x7a, 0x6e, 0xfd, 0x48, 0x46, 0xeb, 0x15, 0x52, 0x78, 0xc9, 0x4c, 0x38, 0x88, 0x65, 0x8a, 0x7a, 0x2f, 0x8e, 0xa3, 0xba, 0xc1, 0x47, 0xaa, 0x89, 0x16, 0x92, 0xae, 0x8b, 0x23, 0xf1, 0xaf, 0xe7, 0x1e, 0xcf, 0xde, 0xca, 0xa6, 0xc1, 0x13, 0xb5, 0xca, 0xaa, 0xa1, 0x93, 0x98, 0xc7, 0xdf, 0xe7, 0x3f, 0xac, 0xb4, 0x15, 0x5f, 0xd6, 0xba, 0xc1, 0x8d, 0x5d, 0xf2, 0x12, 0x9e, 0x8b, 0x29, 0x07, 0xec, 0xee, 0x15, 0x1b, 0xdd, 0x14, 0x7a, 0x7c, 0x3e, 0x46, 0xea, 0x72, 0x75, 0x4d, 0xe3, 0x2c, 0xeb, 0x06, 0x6d, 0x9d, 0xb1, 0xc2, 0x6e, 0x80, 0xdf, 0x36, 0x31, 0x29, 0x2b, 0x16, 0x17, 0x4c, 0xfa, 0x6f, 0x1d, 0x9c, 0x08, 0x28, 0xb8, 0x49, 0xc2, 0x2d, 0x29, 0x65, 0x1a, 0x73, 0xe9, 0x10, 0xd9, 0x27, 0x58, 0x77, 0xf4, 0x64, 0xce, 0x93, 0x26, 0xc6, 0xe4, 0xed, 0x6b, 0x07, 0xdc, 0xb3, 0xa3, 0x53, 0x63, 0xc1, 0xaa, 0x64, 0x72, 0xe0, 0x2c, 0x5c, 0xd8, 0x55, 0xe3, 0x8a, 0xab, 0xe9, 0x65, 0xac, 0xe9, 0xf3, 0xf5, 0xa4, 0xf5, 0xde, 0x03, 0x00, 0x86, 0x94, 0xcb, 0x90, 0xaf, 0xe4, 0x16, 0xc9, 0xd4, 0x86, 0x88, 0xde, 0x7f, 0x75, 0xcf, 0xe2, 0x43, 0xff, 0x7f, 0x41, 0xe0, 0x59, 0x31, 0x09, 0x34, 0x90, 0x3d, 0xb5, 0x68, 0x84, 0x45, 0x08, 0x26, 0x2c, 0x89, 0x9d, 0xfa, 0x75, 0x0c, 0xd6, 0xa2, 0x82, 0x98, 0x24, 0xba, 0x02, 0x7a, 0xea, 0x1b, 0x6d, 0x01, 0x77, 0x72, 0x6a, 0x34, 0x3a, 0xdd, 0x4e, 0xcd, 0xc5, 0xf7, 0xe6, 0xe9, 0x09, 0xab, 0x7d, 0xe6, 0x15, 0xef, 0x28, 0x07, 0xf9, 0xe7, 0xd7, 0x1c, 0xe2, 0xf7, 0x8a, 0xcf, 0xf5, 0x7e, 0xba, 0x79, 0xc3, 0xf5, 0xe0, 0x7c, 0x8b, 0x66, 0x1c, 0x1e, 0x30, 0x27, 0xf8, 0x17, 0x6d, 0x28, 0xbf, 0xef, 0x76, 0x7d, 0xd6, 0x8d, 0x4e, 0x5d, 0x62, 0x8f, 0xec, 0x0b, 0xfe, 0x88, 0x79, 0x93, 0x41, 0xf3, 0x06, 0x12, 0x87, 0x34, 0xfa, 0xd2, 0x02, 0xaa, 0xfc, 0x9f, 0x11, 0x12, 0x3f, 0xb3, 0xe3, 0x63, 0xd1, 0x0a, 0xee, 0x0d, 0xb5, 0xe2, 0x7a, 0x15, 0x70, 0xdf, 0xae, 0xe4, 0x7e, 0x24, 0xda, 0x47, 0x3b, 0x07, 0xfe, 0xe5, 0x9a, 0x6c, 0x93, 0xf0, 0x98, 0x1d, 0xbe, 0x32, 0x5c, 0xd8, 0xcc, 0x2d, 0x2e, 0xd7, 0xdc, 0x17, 0x16, 0x6b, 0x26, 0x7c, 0x1b, 0x11, 0x05, 0x36, 0xf2, 0x63, 0x6b, 0xba, 0x34, 0x75, 0x1a, 0x78, 0xf7, 0xf6, 0x29, 0x81, 0x82, 0x44, 0x2d, 0x83, 0xc1, 0x23, 0xbb, 0xee, 0x4f, 0x50, 0xc5, 0xb0, 0xfa, 0xcf, 0xf0, 0x3e, 0x7c, 0x55, 0x6e, 0xd9, 0xe6, 0x4c, 0xa2, 0x7c, 0x4b, 0xca, 0x5a, 0xb0, 0xde, 0x0d, 0x5f, 0x9c, 0x2c, 0xbb, 0x54, 0xcc, 0x2d, 0x94, 0x73, 0xa3, 0x2d, 0xf9, 0x99, 0x39, 0x0a, 0xc2, 0xff, 0xee, 0xd3, 0xd4, 0xcb, 0xa3, 0x49, 0x73, 0xdc, 0xec, 0x3f, 0xba, 0xba, 0xfc, 0x4d, 0x54, 0xca, 0xe4, 0xe7, 0xe8, 0x5d, 0x4a, 0x6e, 0x8a, 0xfe, 0x45, 0xca, 0xcd, 0x71, 0xe0, 0xf2, 0xe6, 0xd0, 0x4b, 0x4f, 0x9d, 0x3b, 0xcf, 0x43, 0xd3, 0xfa, 0x41, 0xe9, 0x98, 0xcc, 0xbe, 0xd0, 0xf1, 0x50, 0xd5, 0xca, 0x1d, 0x52, 0x72, 0x93, 0x2d, 0x93, 0xec, 0xa1, 0x04, 0x95, 0xc6, 0x83, 0x34, 0xfa, 0x32, 0x68, 0xf3, 0x1d, 0xe5, 0x22, 0xcb, 0x12, 0xa7, 0x44, 0x9f, 0xfb, 0x5c, 0xb5, 0xe8, 0xf1, 0x46, 0x2c, 0xd9, 0xb5, 0x17, 0x70, 0xcc, 0xaf, 0x58, 0xb1, 0xe0, 0xd8, 0x2e, 0xf9, 0x29, };
17088 static const u8 ed25519_743_test_vectors_expected_sig[] = {
17089 	0x9e, 0x60, 0x3b, 0x01, 0x5f, 0x42, 0x87, 0x1b, 0x78, 0xeb, 0x27, 0x52, 0x3f, 0xbb, 0x7c, 0xe9, 0x62, 0xfc, 0xa3, 0x2a, 0xe2, 0x70, 0xe8, 0xe1, 0x2d, 0xca, 0xdd, 0x25, 0xaa, 0x85, 0x2b, 0x89, 0x1f, 0x6f, 0xef, 0x77, 0xb5, 0x9a, 0x54, 0x6c, 0x9a, 0x7a, 0x7c, 0xac, 0xb5, 0x5e, 0x1d, 0x32, 0xad, 0xc8, 0x05, 0xae, 0x5f, 0x61, 0xa6, 0x9e, 0x67, 0x64, 0xc7, 0xc0, 0x82, 0x92, 0xeb, 0x03, };
17090 static const ec_test_case ed25519_743_test_case = {
17091 	.name = "EDDSA25519-SHA512/wei25519 743",
17092 	.ec_str_p = &wei25519_str_params,
17093 	.priv_key = ed25519_743_test_vectors_priv_key,
17094 	.priv_key_len = sizeof(ed25519_743_test_vectors_priv_key),
17095 	.nn_random = NULL,
17096 	.hash_type = SHA512,
17097 	.msg = (const char *)ed25519_743_test_vectors_message,
17098 	.msglen = sizeof(ed25519_743_test_vectors_message),
17099 	.sig_type = EDDSA25519,
17100 	.exp_sig = ed25519_743_test_vectors_expected_sig,
17101 	.exp_siglen = sizeof(ed25519_743_test_vectors_expected_sig),
17102 	.adata = NULL,
17103 	.adata_len = 0
17104 };
17105 
17106 /************************************************/
17107 static const u8 ed25519_744_test_vectors_priv_key[] = {
17108 	0x0b, 0x65, 0x90, 0xdd, 0x7c, 0x2f, 0x15, 0xf9, 0x4a, 0x56, 0xe2, 0x40, 0x16, 0x93, 0x63, 0xc2, 0x67, 0x32, 0x30, 0x2b, 0x9d, 0x44, 0x0b, 0x53, 0x27, 0x23, 0x00, 0x2e, 0x15, 0x5d, 0x02, 0xd9, };
17109 static const u8 ed25519_744_test_vectors_message[] = {
17110 	0x71, 0xfe, 0x0f, 0xd5, 0x5d, 0x5e, 0xd1, 0x20, 0x6f, 0x28, 0xee, 0x16, 0xe4, 0x19, 0xfa, 0xb6, 0xfa, 0x66, 0xa2, 0x51, 0xfa, 0x6b, 0x06, 0x01, 0xda, 0x26, 0x1e, 0x42, 0x9f, 0x55, 0xb8, 0xd5, 0xae, 0x3f, 0x3c, 0x52, 0xa1, 0x7f, 0xe1, 0xec, 0x73, 0x4b, 0x81, 0x0a, 0xb6, 0x3a, 0xad, 0xe4, 0x44, 0x70, 0x39, 0xca, 0x0a, 0xe4, 0x68, 0x7c, 0x24, 0x35, 0xf5, 0x61, 0xe4, 0x6c, 0x5b, 0x30, 0x97, 0x17, 0xab, 0x31, 0xe0, 0xf6, 0x40, 0x76, 0xb2, 0x16, 0x92, 0x11, 0x57, 0x2b, 0x74, 0xe1, 0x8a, 0x1f, 0x45, 0x25, 0xa6, 0x4f, 0xa7, 0x17, 0xa5, 0xed, 0xf1, 0x49, 0x75, 0x81, 0x29, 0xcb, 0x04, 0x03, 0x5e, 0x7e, 0x20, 0xba, 0x40, 0x05, 0xb7, 0x48, 0x09, 0xde, 0xc6, 0x44, 0x50, 0x4c, 0x24, 0x54, 0xa7, 0x7f, 0x99, 0xb2, 0x0c, 0x53, 0x74, 0xf3, 0xce, 0xe7, 0xd8, 0xc6, 0xb6, 0x8b, 0x24, 0x3c, 0xaf, 0xb3, 0x00, 0x98, 0xdc, 0xe9, 0x04, 0x90, 0xfd, 0xc3, 0xb9, 0x2f, 0x54, 0x94, 0x8f, 0x42, 0x46, 0x39, 0xe1, 0x9f, 0x8f, 0x20, 0x20, 0xd1, 0x55, 0x13, 0xda, 0xef, 0xad, 0xd9, 0xe9, 0xb1, 0x2a, 0x84, 0x76, 0x1e, 0x5e, 0xce, 0xa0, 0x88, 0xad, 0x56, 0x1f, 0x06, 0x20, 0x9f, 0xd4, 0x42, 0x3f, 0xcd, 0x00, 0x3f, 0xbc, 0xd1, 0x87, 0x3e, 0xa5, 0x49, 0x63, 0xa2, 0xfa, 0x07, 0xc7, 0x47, 0x6b, 0x13, 0x88, 0xf9, 0x01, 0x5d, 0x9e, 0xac, 0x30, 0x5b, 0xea, 0x5a, 0x3d, 0xe1, 0x94, 0xf5, 0x5a, 0x17, 0xb4, 0x2d, 0x59, 0x9e, 0x5c, 0xe6, 0x2c, 0x8b, 0x7c, 0x19, 0xe7, 0xe7, 0x09, 0x61, 0x37, 0xb9, 0xd0, 0xa6, 0x5e, 0x63, 0xc1, 0xa3, 0xb8, 0x45, 0x38, 0xca, 0x65, 0x36, 0x9a, 0x20, 0xe8, 0x82, 0x2f, 0xff, 0x5e, 0xcb, 0x57, 0xfc, 0x09, 0xb4, 0xe6, 0x84, 0x5b, 0x4f, 0x24, 0xd4, 0x88, 0x69, 0x71, 0xac, 0x1a, 0xc2, 0x8c, 0x77, 0x58, 0x0e, 0xa5, 0x67, 0x2a, 0xd1, 0x4c, 0xe4, 0x44, 0x17, 0x19, 0xc2, 0x14, 0x54, 0x6d, 0x07, 0x36, 0xcb, 0x7a, 0xd0, 0xbd, 0x9f, 0xb5, 0xb2, 0x6c, 0x6d, 0x9c, 0x53, 0x6b, 0xf8, 0xc8, 0x57, 0xae, 0x42, 0x57, 0x7b, 0x36, 0x34, 0x1d, 0x39, 0x2b, 0x43, 0x32, 0x3b, 0xda, 0xe7, 0xdf, 0xaa, 0x49, 0x19, 0x86, 0x87, 0x2a, 0x23, 0xd8, 0x27, 0xc6, 0xef, 0x8b, 0x57, 0xe7, 0xd0, 0x0f, 0xea, 0xe3, 0x83, 0x4c, 0x46, 0x64, 0x00, 0xaa, 0xd1, 0xd3, 0x67, 0x82, 0x39, 0x84, 0xaa, 0x02, 0xd2, 0xef, 0x49, 0x29, 0x14, 0xae, 0x11, 0x27, 0xe7, 0x55, 0x1b, 0x81, 0x25, 0x59, 0x37, 0x83, 0x05, 0xe4, 0xfd, 0x52, 0xd8, 0xbc, 0x7e, 0x41, 0x57, 0xec, 0xca, 0x45, 0x1f, 0x43, 0xee, 0x9f, 0x54, 0xc8, 0x21, 0x53, 0xc7, 0xdb, 0xfa, 0xf7, 0xec, 0x35, 0x23, 0x87, 0x73, 0x05, 0x1b, 0x4e, 0x58, 0x7d, 0xb1, 0x36, 0x95, 0x7e, 0xc5, 0x71, 0x38, 0x2b, 0x90, 0x59, 0x0b, 0x5d, 0x10, 0x26, 0x02, 0x45, 0x80, 0x96, 0x6b, 0x72, 0x52, 0xd2, 0xcd, 0x3f, 0x4f, 0x16, 0x25, 0xc4, 0x85, 0xba, 0x90, 0x6b, 0xff, 0x17, 0x59, 0x92, 0x18, 0x89, 0x78, 0xf2, 0xd6, 0x27, 0x4f, 0x3a, 0x03, 0x17, 0x49, 0xba, 0x7e, 0x70, 0x2f, 0x56, 0x54, 0x7e, 0xdc, 0x96, 0xec, 0x26, 0x7b, 0x84, 0x89, 0x28, 0x80, 0xd7, 0x50, 0xd7, 0x31, 0x0e, 0xbf, 0x6d, 0xb2, 0x41, 0x25, 0x3c, 0xab, 0xe4, 0xb2, 0x5a, 0x97, 0x74, 0x58, 0xc6, 0xff, 0xc9, 0xe3, 0x53, 0xe6, 0x2a, 0xdf, 0x05, 0xe6, 0xef, 0xc0, 0xfc, 0x1e, 0xbe, 0x89, 0xf5, 0x27, 0x70, 0x5b, 0xcc, 0x26, 0xb7, 0x01, 0x28, 0x56, 0x10, 0xd9, 0x8a, 0xa3, 0xbf, 0x23, 0x87, 0x2b, 0x69, 0x96, 0xd3, 0xde, 0x48, 0x0e, 0x8d, 0x09, 0xd7, 0x83, 0xc4, 0xa0, 0x8c, 0xd3, 0x83, 0xc9, 0x01, 0x26, 0x35, 0xaa, 0x68, 0x97, 0x8b, 0x50, 0x06, 0x81, 0x8b, 0xbd, 0xe4, 0x4f, 0x29, 0x87, 0x47, 0x9b, 0xcb, 0x2b, 0x71, 0x1c, 0x1b, 0xee, 0xed, 0x27, 0xcf, 0x09, 0x97, 0x0a, 0x16, 0x4e, 0x45, 0x4f, 0x71, 0x08, 0x22, 0xee, 0xf5, 0x55, 0xc1, 0xc7, 0xbf, 0x9f, 0x76, 0xd5, 0x25, 0x4c, 0xe2, 0x20, 0xc9, 0xaa, 0xa7, 0x16, 0x84, 0x7a, 0x24, 0x94, 0x88, 0xf9, 0xcd, 0xb4, 0x4c, 0x48, 0xf4, 0x52, 0xab, 0x52, 0xc4, 0x0f, 0x6d, 0x03, 0xad, 0xc8, 0xbf, 0x3f, 0x19, 0x7b, 0x25, 0xe3, 0xd1, 0x27, 0x83, 0x0e, 0x74, 0xfd, 0x81, 0xeb, 0x14, 0xf7, 0x54, 0x20, 0x5b, 0x3a, 0x48, 0x44, 0xc5, 0x96, 0xb6, 0xe3, 0xa9, 0x93, 0x6a, 0xd6, 0xfd, 0x9e, 0x80, 0xa1, 0x63, 0x20, 0xb3, 0x81, 0xc3, 0xff, 0xc7, 0xb6, 0x9e, 0xab, 0x54, 0x53, 0x6f, 0x55, 0xab, 0xe2, 0x2c, 0x91, 0xd8, 0x98, 0x40, 0x8e, 0x88, 0x0c, 0x6d, 0xbf, 0x0f, 0xa5, 0x64, 0x8d, 0x51, 0x77, 0x72, 0xca, 0xa5, 0x35, 0x3b, 0x25, 0xdb, 0x60, 0x50, 0xd7, 0x53, 0xfa, 0xf1, 0x98, 0xec, 0x1d, 0x37, 0x5d, 0xe0, 0xfa, 0x72, 0x18, 0x0a, 0x93, 0xba, 0xb0, 0x3d, 0xed, 0x77, 0x16, 0xcb, 0x87, 0x50, 0x5b, 0x68, 0xac, 0x6a, 0x35, 0xe7, 0x3d, 0x0f, 0xcf, 0x34, 0x45, 0x7e, 0xff, 0x82, 0x17, 0x89, 0x52, 0x14, 0x2c, 0x7b, 0xac, 0x9d, 0xfd, 0x87, 0x2a, 0x9a, 0x82, 0xf8, 0x5b, 0x24, 0xb8, 0x8f, 0xa4, 0x2d, 0x4b, 0xe0, 0xa0, 0xca, 0x0b, 0x2c, 0x70, 0xf4, 0xc6, 0x22, };
17111 static const u8 ed25519_744_test_vectors_expected_sig[] = {
17112 	0x64, 0x2d, 0x81, 0xac, 0xf3, 0x8c, 0xf0, 0x99, 0xa8, 0x33, 0xa7, 0x4f, 0x2d, 0x80, 0xb8, 0x54, 0x48, 0xec, 0x2b, 0x1a, 0x5d, 0xdc, 0x64, 0x47, 0x0b, 0x21, 0x3d, 0x54, 0xb7, 0xbe, 0x61, 0x33, 0x68, 0x9a, 0x71, 0x94, 0xf5, 0xd8, 0x97, 0x92, 0xe1, 0x6e, 0x5d, 0xf7, 0x55, 0xa4, 0xfd, 0x9e, 0xf4, 0x68, 0x9e, 0xa9, 0x52, 0x92, 0x6e, 0x0e, 0x4e, 0xcb, 0x3b, 0xd4, 0x81, 0xfd, 0x91, 0x02, };
17113 static const ec_test_case ed25519_744_test_case = {
17114 	.name = "EDDSA25519-SHA512/wei25519 744",
17115 	.ec_str_p = &wei25519_str_params,
17116 	.priv_key = ed25519_744_test_vectors_priv_key,
17117 	.priv_key_len = sizeof(ed25519_744_test_vectors_priv_key),
17118 	.nn_random = NULL,
17119 	.hash_type = SHA512,
17120 	.msg = (const char *)ed25519_744_test_vectors_message,
17121 	.msglen = sizeof(ed25519_744_test_vectors_message),
17122 	.sig_type = EDDSA25519,
17123 	.exp_sig = ed25519_744_test_vectors_expected_sig,
17124 	.exp_siglen = sizeof(ed25519_744_test_vectors_expected_sig),
17125 	.adata = NULL,
17126 	.adata_len = 0
17127 };
17128 
17129 /************************************************/
17130 static const u8 ed25519_745_test_vectors_priv_key[] = {
17131 	0xc6, 0xd9, 0xac, 0xc5, 0x17, 0x5f, 0xa2, 0xb8, 0x96, 0x5c, 0x15, 0x8c, 0x56, 0xba, 0x0a, 0x5a, 0x66, 0x6a, 0xd2, 0xc7, 0x40, 0xcd, 0x5b, 0xb6, 0x79, 0xbb, 0xa9, 0xb1, 0xdc, 0x50, 0x92, 0x84, };
17132 static const u8 ed25519_745_test_vectors_message[] = {
17133 	0xf2, 0x45, 0x10, 0x0c, 0xd2, 0xd3, 0x16, 0x48, 0xf5, 0xf3, 0x51, 0xbd, 0xa5, 0x64, 0xc9, 0xdb, 0x4a, 0x35, 0x82, 0x0c, 0xc3, 0x0e, 0xf6, 0x51, 0x33, 0x7c, 0x4c, 0xd8, 0x88, 0x07, 0x05, 0x69, 0xd1, 0x17, 0xa9, 0x34, 0xb9, 0xc9, 0x18, 0xe5, 0xdf, 0x8b, 0x37, 0x44, 0xdd, 0x66, 0x20, 0xcc, 0xbc, 0x49, 0xf6, 0xb3, 0xe5, 0x78, 0x2a, 0x30, 0x33, 0x9d, 0xbb, 0x9c, 0xbe, 0xd0, 0x5d, 0xd2, 0xb3, 0xb8, 0xc5, 0xbf, 0x15, 0x46, 0xe7, 0x0a, 0xf6, 0x36, 0xe6, 0x61, 0x5c, 0x48, 0xb2, 0xc3, 0xc2, 0xd1, 0x9f, 0xe3, 0x54, 0x20, 0xdf, 0x53, 0x14, 0xf6, 0x3c, 0x48, 0x12, 0xb5, 0x8e, 0x82, 0xa2, 0xa6, 0x0b, 0x18, 0x02, 0xf3, 0x8e, 0x50, 0x5c, 0xe7, 0x48, 0x01, 0x7a, 0xfa, 0x97, 0x7d, 0x3f, 0x9b, 0x1b, 0x6b, 0xea, 0x21, 0x92, 0xac, 0xec, 0x73, 0xbd, 0xce, 0x12, 0xd6, 0x5e, 0x68, 0x4d, 0xa4, 0xd8, 0xb4, 0x1f, 0xa9, 0xa8, 0x6f, 0x11, 0x08, 0x6e, 0xdc, 0x2d, 0x52, 0x96, 0xf6, 0x7e, 0xfc, 0x53, 0xac, 0x84, 0x07, 0x0f, 0xde, 0x13, 0x69, 0x3e, 0xb2, 0x31, 0x8f, 0x5a, 0x8c, 0x3b, 0x11, 0x7c, 0x23, 0x34, 0x22, 0xad, 0xcd, 0xd3, 0x52, 0xf3, 0x28, 0xf0, 0xec, 0x69, 0x9a, 0x46, 0x50, 0xc9, 0x3f, 0x9b, 0x4a, 0x7d, 0x79, 0x5d, 0x7f, 0xc2, 0x62, 0x2a, 0x03, 0xd9, 0x9b, 0x64, 0xf7, 0xb3, 0xdc, 0x31, 0x94, 0xf6, 0xc3, 0xb1, 0xb6, 0x9d, 0x99, 0x07, 0xce, 0x09, 0x24, 0x01, 0x07, 0x3f, 0x47, 0xa2, 0x8f, 0x47, 0x99, 0xd2, 0x29, 0x09, 0x2a, 0x1b, 0x07, 0x41, 0x29, 0x95, 0x4b, 0xe8, 0x0c, 0xa4, 0xa3, 0xe6, 0x58, 0x2e, 0xe0, 0x5c, 0x30, 0x2c, 0xac, 0xb7, 0x43, 0x1d, 0x1c, 0xa6, 0xa4, 0x51, 0xaa, 0xed, 0x72, 0x78, 0xab, 0xc7, 0xf7, 0x85, 0x75, 0x24, 0x1c, 0x2a, 0x2e, 0xea, 0x2e, 0x84, 0xcb, 0xf9, 0xa3, 0x34, 0xdf, 0x40, 0x21, 0x09, 0xc0, 0x28, 0xe3, 0x45, 0x47, 0x3a, 0x13, 0xaf, 0x9b, 0x00, 0x8e, 0x20, 0xbc, 0x8c, 0xf0, 0xbc, 0xef, 0xbb, 0x7a, 0xa7, 0x27, 0xec, 0x85, 0x6e, 0x99, 0x25, 0xb4, 0xdd, 0xd9, 0x9d, 0xeb, 0xa8, 0xf2, 0x52, 0x91, 0x1a, 0x59, 0x01, 0x54, 0xb5, 0x79, 0xa8, 0xaa, 0xa3, 0x1f, 0x07, 0xdd, 0x50, 0x25, 0xdf, 0x5c, 0xd8, 0xa0, 0x9f, 0x74, 0x29, 0x64, 0xcc, 0x8c, 0x36, 0x5d, 0x8a, 0xff, 0x4e, 0xb1, 0xd7, 0x9f, 0x6e, 0x5a, 0x07, 0xda, 0xc5, 0xf4, 0xed, 0xe9, 0x2b, 0x4e, 0x2e, 0x61, 0xd3, 0x4c, 0xc2, 0xd4, 0xf0, 0xaa, 0xaa, 0xb0, 0x37, 0xad, 0x5f, 0xdb, 0x95, 0xde, 0x6c, 0xd5, 0x98, 0x4e, 0xba, 0xf7, 0xcc, 0xe7, 0xf0, 0x8d, 0x0c, 0xa0, 0xdb, 0xbe, 0x48, 0x3c, 0xe3, 0xcb, 0x35, 0xcd, 0x79, 0x0c, 0xa0, 0x42, 0x70, 0x65, 0xa3, 0x4d, 0xf7, 0xf4, 0xc2, 0xaf, 0x86, 0xef, 0xe9, 0xb7, 0x65, 0x71, 0x3a, 0xff, 0x25, 0x7f, 0x5c, 0x1d, 0x54, 0x70, 0x95, 0x27, 0xad, 0x18, 0xac, 0x33, 0xab, 0xcd, 0xee, 0xdb, 0x20, 0x80, 0x64, 0xeb, 0xae, 0xa4, 0x83, 0x5b, 0xe4, 0x94, 0x2b, 0x8f, 0xc6, 0x66, 0xad, 0x1b, 0x79, 0xb6, 0x65, 0x13, 0x09, 0xe5, 0xea, 0x1d, 0xa3, 0x02, 0xd7, 0xfb, 0xa2, 0xe9, 0x9f, 0x0e, 0x63, 0x19, 0xe8, 0x2b, 0x99, 0x05, 0xa1, 0xea, 0x48, 0x2b, 0xa0, 0x43, 0xb6, 0x80, 0x0b, 0x33, 0x0d, 0xc4, 0x8b, 0x33, 0x13, 0xf5, 0x9b, 0xb2, 0xf9, 0xe8, 0xa7, 0xf0, 0x7e, 0xb1, 0x80, 0x0a, 0x70, 0x27, 0x45, 0xdb, 0x14, 0xc6, 0x29, 0x9a, 0x98, 0x2d, 0xad, 0x89, 0x79, 0x54, 0x44, 0x5b, 0x7d, 0x98, 0xeb, 0x58, 0x37, 0xfd, 0x70, 0xbf, 0x19, 0x0c, 0x64, 0x95, 0x52, 0xc8, 0xe8, 0x6f, 0xeb, 0x7f, 0xf5, 0xb3, 0xed, 0x8e, 0x0a, 0x06, 0x70, 0x4d, 0x45, 0x53, 0xa3, 0xc2, 0xdd, 0x74, 0xf1, 0x8e, 0xa8, 0x23, 0x3a, 0xe0, 0xa5, 0x0d, 0x91, 0x4f, 0xe0, 0x8f, 0xbc, 0xd3, 0xa1, 0x43, 0x5f, 0xed, 0x56, 0xa9, 0xf3, 0xa7, 0xef, 0xfa, 0x14, 0x0f, 0xb5, 0x52, 0xdd, 0xd2, 0x1d, 0xff, 0xff, 0x7f, 0xa4, 0x73, 0x32, 0xdd, 0xfc, 0x1e, 0x53, 0x17, 0xf4, 0x17, 0x7d, 0x5e, 0x2f, 0x11, 0xa0, 0x6e, 0xc8, 0x4c, 0xcf, 0xb8, 0x9b, 0x65, 0x4e, 0xa8, 0x1b, 0xd4, 0x2d, 0x7e, 0x07, 0xa3, 0x87, 0x30, 0x1d, 0x0f, 0x40, 0x26, 0x4a, 0xbb, 0xf9, 0xf9, 0x10, 0x7b, 0x30, 0xed, 0xe8, 0x64, 0xcc, 0x76, 0x90, 0xc0, 0x6d, 0x2e, 0x24, 0x7a, 0x06, 0x0b, 0xb2, 0x24, 0x4a, 0xd7, 0x8e, 0xd5, 0xc5, 0x51, 0x5a, 0x1a, 0x2a, 0x61, 0x2d, 0x61, 0xe3, 0xd9, 0x31, 0xe2, 0x8b, 0xc9, 0x39, 0xb4, 0xd3, 0x43, 0x5e, 0xee, 0x4f, 0x73, 0x31, 0xb1, 0xf0, 0xf8, 0x53, 0x75, 0xd8, 0x2a, 0xc9, 0xa7, 0x7c, 0x43, 0x74, 0x00, 0x32, 0x05, 0x17, 0x46, 0xdc, 0x92, 0x69, 0x45, 0x8c, 0x14, 0x7d, 0x18, 0x8d, 0x84, 0x40, 0x19, 0x54, 0xa4, 0x89, 0xcb, 0x4f, 0xbf, 0x9b, 0xf8, 0x4b, 0xa7, 0xd8, 0xf1, 0x00, 0x90, 0x3c, 0xe6, 0x78, 0x31, 0xb4, 0x05, 0x4d, 0x0f, 0x58, 0xcd, 0x88, 0x3d, 0x54, 0x2c, 0x49, 0x33, 0x10, 0x3f, 0xf0, 0x70, 0xcd, 0xfc, 0x9d, 0xbb, 0x0f, 0xcc, 0x31, 0xef, 0xca, 0x46, 0x6e, 0x77, 0xa3, 0x3f, 0x1a, 0x81, 0x3d, 0xa6, 0xdc, 0x0c, 0x7c, 0x31, 0x58, 0x5e, 0x8f, 0x4f, 0xef, 0x1e, 0xbf, 0x42, 0xfb, 0xd1, };
17134 static const u8 ed25519_745_test_vectors_expected_sig[] = {
17135 	0x4d, 0x2c, 0xe7, 0x07, 0x09, 0x0b, 0x0f, 0x3f, 0x41, 0x46, 0x2f, 0xd7, 0x5b, 0xd6, 0x09, 0xa2, 0x72, 0x4f, 0xad, 0xfe, 0x5c, 0xa3, 0x90, 0xe3, 0x13, 0xa4, 0x2c, 0xab, 0x42, 0x86, 0x8e, 0xd6, 0xe9, 0xa8, 0x91, 0x4d, 0xc1, 0x39, 0x09, 0xc0, 0xd6, 0xf6, 0x1e, 0x63, 0x71, 0x29, 0x57, 0xc7, 0x6f, 0x3b, 0xd8, 0xb7, 0xf5, 0x53, 0x49, 0x71, 0x5a, 0x3a, 0x31, 0x75, 0x15, 0xc0, 0x71, 0x08, };
17136 static const ec_test_case ed25519_745_test_case = {
17137 	.name = "EDDSA25519-SHA512/wei25519 745",
17138 	.ec_str_p = &wei25519_str_params,
17139 	.priv_key = ed25519_745_test_vectors_priv_key,
17140 	.priv_key_len = sizeof(ed25519_745_test_vectors_priv_key),
17141 	.nn_random = NULL,
17142 	.hash_type = SHA512,
17143 	.msg = (const char *)ed25519_745_test_vectors_message,
17144 	.msglen = sizeof(ed25519_745_test_vectors_message),
17145 	.sig_type = EDDSA25519,
17146 	.exp_sig = ed25519_745_test_vectors_expected_sig,
17147 	.exp_siglen = sizeof(ed25519_745_test_vectors_expected_sig),
17148 	.adata = NULL,
17149 	.adata_len = 0
17150 };
17151 
17152 /************************************************/
17153 static const u8 ed25519_746_test_vectors_priv_key[] = {
17154 	0x7d, 0xfa, 0xe4, 0x16, 0x41, 0x9d, 0x7b, 0x0d, 0x4f, 0xc1, 0xf8, 0x23, 0x84, 0x0c, 0x3e, 0x4b, 0xd4, 0xad, 0xcd, 0x4d, 0xc2, 0xdc, 0x17, 0xb3, 0x86, 0x37, 0xac, 0xed, 0xac, 0xbd, 0xbb, 0x45, };
17155 static const u8 ed25519_746_test_vectors_message[] = {
17156 	0xec, 0x84, 0x3d, 0xc4, 0xdd, 0xa6, 0xe9, 0x02, 0xe9, 0xbe, 0x31, 0xb7, 0x0f, 0x11, 0x76, 0x3b, 0x75, 0x7a, 0xb6, 0xce, 0x73, 0x34, 0xdc, 0x00, 0x76, 0x4b, 0x2d, 0x08, 0x4e, 0x9d, 0xaf, 0x24, 0x84, 0x48, 0x59, 0x84, 0xee, 0x28, 0xa2, 0x83, 0x0f, 0xcb, 0x94, 0xc5, 0x41, 0xcb, 0x46, 0x94, 0x40, 0x03, 0x67, 0x31, 0xde, 0x80, 0xff, 0x56, 0x0f, 0x53, 0x0c, 0x9d, 0x9e, 0x6e, 0x1f, 0x7d, 0x9c, 0x4c, 0x5b, 0xdf, 0x50, 0xb0, 0x4f, 0x54, 0x03, 0xc2, 0x9f, 0x76, 0xd7, 0xe3, 0x6e, 0x00, 0xbb, 0xea, 0x35, 0xdb, 0x1c, 0xc6, 0x0d, 0xa8, 0xd7, 0x76, 0x52, 0x62, 0x66, 0xc3, 0x32, 0x4c, 0xe7, 0xef, 0xec, 0x64, 0x50, 0x85, 0x96, 0x09, 0x26, 0x68, 0x56, 0xd7, 0x01, 0xa4, 0x7a, 0x48, 0xde, 0xe8, 0xbf, 0x37, 0x40, 0x95, 0x65, 0xc7, 0xfb, 0xfa, 0x99, 0xa2, 0x04, 0xe5, 0x53, 0x0c, 0x97, 0x1c, 0x60, 0x5b, 0x44, 0x30, 0x5d, 0x5c, 0x74, 0x67, 0x89, 0x41, 0x14, 0x25, 0x3c, 0xf4, 0x3c, 0xdd, 0xf1, 0x8b, 0x62, 0x96, 0xdd, 0x25, 0x4a, 0x4d, 0x96, 0xac, 0x70, 0x00, 0x91, 0x81, 0x86, 0xdf, 0xd4, 0xbf, 0x45, 0x4e, 0xd3, 0x09, 0x74, 0xc5, 0x53, 0xd0, 0xae, 0x15, 0x1a, 0xd4, 0xcf, 0x54, 0x0c, 0xec, 0xaa, 0xa0, 0xb5, 0x94, 0x8b, 0x09, 0x85, 0xa9, 0xc7, 0xb6, 0xe7, 0x81, 0x59, 0x32, 0xba, 0xc1, 0x17, 0x32, 0xfc, 0x7d, 0x10, 0x26, 0x7f, 0x6b, 0xf8, 0xf1, 0xe7, 0xc0, 0x8d, 0x65, 0x0e, 0x56, 0x7b, 0x4e, 0xdd, 0x15, 0xae, 0x79, 0x58, 0x41, 0x0e, 0x42, 0xf1, 0xf5, 0x37, 0xfa, 0x73, 0x2f, 0x72, 0x7a, 0x26, 0x83, 0x88, 0x32, 0x1d, 0x53, 0x44, 0xc4, 0xe7, 0x8b, 0xb9, 0xa7, 0x4e, 0xab, 0x9d, 0x6a, 0xbf, 0x96, 0x89, 0x65, 0xc6, 0x66, 0x93, 0xd5, 0xf1, 0x12, 0xdd, 0x4c, 0x14, 0xfd, 0xfd, 0xd9, 0x60, 0x05, 0xea, 0xa6, 0x75, 0x7f, 0xa2, 0xcc, 0x10, 0x13, 0xfe, 0x43, 0x27, 0xab, 0x09, 0x99, 0xd1, 0x17, 0xf3, 0xdb, 0xf3, 0x25, 0xb0, 0x7c, 0xd4, 0x54, 0xd4, 0xb1, 0x41, 0x99, 0x1e, 0xf7, 0xe2, 0x3d, 0xb5, 0xee, 0x24, 0xbe, 0xda, 0x35, 0x88, 0x4a, 0xa3, 0x70, 0x48, 0x08, 0x64, 0x8a, 0xa4, 0x3c, 0xd6, 0x25, 0x62, 0x59, 0xf7, 0xd3, 0xdb, 0x5e, 0x05, 0x53, 0x11, 0xf2, 0x53, 0xe8, 0xb5, 0x7a, 0x4c, 0xda, 0x5a, 0xfe, 0x0b, 0x0a, 0xdf, 0xc3, 0x64, 0xe1, 0x60, 0xca, 0x37, 0xe8, 0xde, 0xc6, 0xb9, 0x5a, 0xa6, 0x15, 0x2e, 0x5d, 0x5d, 0xa6, 0xeb, 0x91, 0xbe, 0x0e, 0x44, 0xff, 0xe8, 0xe4, 0x95, 0x33, 0x26, 0x7b, 0x7e, 0xb7, 0x95, 0xf5, 0xf8, 0xe0, 0xb2, 0xc3, 0x5b, 0x29, 0xdf, 0xbc, 0x87, 0x58, 0x5f, 0x22, 0xbd, 0x5b, 0x90, 0x9d, 0xfd, 0x6a, 0x5e, 0xdc, 0x0e, 0x3a, 0x9d, 0x97, 0xb0, 0xc4, 0xf3, 0xad, 0xc5, 0x1e, 0x96, 0x99, 0x37, 0xc0, 0x8f, 0xd6, 0x5f, 0x53, 0x7a, 0xac, 0xda, 0x8f, 0x11, 0x27, 0x5a, 0xf0, 0x2c, 0x33, 0x54, 0x54, 0x26, 0x30, 0xf3, 0x92, 0x0c, 0x39, 0x3f, 0x5c, 0x42, 0xb9, 0xfc, 0x63, 0x3d, 0xe9, 0xd9, 0x4c, 0x72, 0xe3, 0xf2, 0x00, 0x02, 0x34, 0x9a, 0xd0, 0x41, 0x80, 0x35, 0xb3, 0xf2, 0x5f, 0x02, 0xca, 0x92, 0x8e, 0x5b, 0x2d, 0x40, 0xa7, 0x7a, 0x1c, 0x3e, 0x56, 0x22, 0x1f, 0x4b, 0x9d, 0xb0, 0xc2, 0x5b, 0x09, 0x6d, 0x6e, 0x5d, 0x0f, 0xe7, 0x58, 0xda, 0x2c, 0x69, 0x05, 0x3e, 0x8d, 0x08, 0x6d, 0xef, 0x4e, 0xdc, 0x6e, 0x34, 0x53, 0x78, 0x3f, 0xfc, 0x63, 0xa4, 0x96, 0x01, 0x22, 0xd9, 0x23, 0x67, 0x1a, 0x90, 0x60, 0x08, 0xba, 0xc1, 0x05, 0x61, 0xae, 0x62, 0x19, 0xd2, 0xb5, 0x1d, 0x53, 0x67, 0xbf, 0x13, 0xcc, 0xab, 0xf5, 0x93, 0x1b, 0x9f, 0x18, 0x6e, 0xb1, 0x09, 0xba, 0xcd, 0xe4, 0x0e, 0x1a, 0xf2, 0xb5, 0x64, 0x81, 0xe0, 0xc6, 0xdc, 0x6f, 0x5c, 0x54, 0x73, 0xf8, 0x00, 0x1c, 0xf3, 0x71, 0x91, 0x9a, 0xcb, 0x40, 0xce, 0xc5, 0xb9, 0x62, 0xeb, 0xba, 0x80, 0xe3, 0x2d, 0x6e, 0xba, 0xc4, 0x80, 0x6d, 0x04, 0xd2, 0x47, 0x68, 0xc2, 0xad, 0x2e, 0x3f, 0x92, 0xa8, 0xcb, 0xe4, 0x77, 0x54, 0xf9, 0xbf, 0x61, 0x59, 0x53, 0x52, 0x2b, 0x26, 0x3d, 0xc2, 0x49, 0x37, 0xfb, 0xd9, 0x32, 0xc8, 0xc4, 0x59, 0xeb, 0x8b, 0x10, 0x94, 0x43, 0xaf, 0x6c, 0x19, 0x5a, 0x59, 0xfd, 0x27, 0x21, 0xb0, 0x12, 0x56, 0x28, 0xf2, 0xb8, 0x14, 0x3c, 0xf3, 0xc1, 0x28, 0xbc, 0xec, 0x13, 0x92, 0xef, 0xd1, 0x6b, 0x73, 0x4c, 0x10, 0x71, 0x6d, 0x96, 0xba, 0x7d, 0x1f, 0x41, 0x39, 0x17, 0xcc, 0xaf, 0xa5, 0xbf, 0x5f, 0x83, 0xf5, 0x24, 0xfe, 0x84, 0x06, 0xa1, 0x52, 0x11, 0x5e, 0xa7, 0x70, 0xe1, 0x74, 0x5e, 0x82, 0xe8, 0xb5, 0x1d, 0x75, 0x2b, 0x8b, 0xd7, 0x85, 0xdf, 0x48, 0xbf, 0xc1, 0x20, 0x41, 0xbf, 0x87, 0x4f, 0xc7, 0x3a, 0xfb, 0x42, 0xca, 0x5d, 0x69, 0xc6, 0x41, 0x64, 0x79, 0xce, 0xb4, 0xaa, 0xa0, 0x49, 0x2b, 0x6f, 0xf2, 0x1e, 0xe1, 0x2d, 0xb2, 0x21, 0x3a, 0x42, 0x86, 0xfd, 0x56, 0x05, 0xc9, 0x3a, 0x7b, 0xb8, 0xa3, 0xb0, 0x71, 0xb0, 0xb2, 0x5f, 0xb0, 0x1d, 0x77, 0xab, 0xbc, 0x87, 0x71, 0x48, 0x94, 0x70, 0xa1, 0x07, 0xaa, 0xda, 0xe9, 0xf6, 0x40, 0xc2, 0x4d, 0xfd, 0x53, 0x28, 0xf6, 0x0f, 0x4b, 0x7d, };
17157 static const u8 ed25519_746_test_vectors_expected_sig[] = {
17158 	0xda, 0x34, 0xb1, 0x98, 0x3e, 0x8c, 0x55, 0xe4, 0x1f, 0xda, 0x8e, 0xc8, 0xab, 0xf2, 0x3b, 0x36, 0x7a, 0x0d, 0xa6, 0x06, 0xc8, 0xcd, 0xbb, 0x1e, 0x8b, 0x57, 0xe0, 0x34, 0x3c, 0x05, 0x57, 0xa5, 0xf0, 0xe8, 0x15, 0xe7, 0xf2, 0x2f, 0x86, 0x05, 0xae, 0x93, 0xb2, 0x7d, 0x03, 0x77, 0x6a, 0xc1, 0xf7, 0xde, 0x3d, 0x79, 0x2e, 0xa2, 0x93, 0x3a, 0xc2, 0x2d, 0x2d, 0xc2, 0x3b, 0x32, 0x3d, 0x0c, };
17159 static const ec_test_case ed25519_746_test_case = {
17160 	.name = "EDDSA25519-SHA512/wei25519 746",
17161 	.ec_str_p = &wei25519_str_params,
17162 	.priv_key = ed25519_746_test_vectors_priv_key,
17163 	.priv_key_len = sizeof(ed25519_746_test_vectors_priv_key),
17164 	.nn_random = NULL,
17165 	.hash_type = SHA512,
17166 	.msg = (const char *)ed25519_746_test_vectors_message,
17167 	.msglen = sizeof(ed25519_746_test_vectors_message),
17168 	.sig_type = EDDSA25519,
17169 	.exp_sig = ed25519_746_test_vectors_expected_sig,
17170 	.exp_siglen = sizeof(ed25519_746_test_vectors_expected_sig),
17171 	.adata = NULL,
17172 	.adata_len = 0
17173 };
17174 
17175 /************************************************/
17176 static const u8 ed25519_747_test_vectors_priv_key[] = {
17177 	0x70, 0x94, 0x16, 0x07, 0x49, 0x97, 0xb9, 0xc9, 0xaf, 0x4d, 0x37, 0xa0, 0x11, 0x39, 0xe8, 0xa3, 0xf9, 0xf2, 0xce, 0x5d, 0x72, 0xa5, 0x7d, 0x80, 0x5e, 0x82, 0x2a, 0x81, 0x18, 0x6d, 0x01, 0x7e, };
17178 static const u8 ed25519_747_test_vectors_message[] = {
17179 	0xed, 0xda, 0xa3, 0x69, 0xc0, 0xe3, 0x1a, 0x1f, 0xcc, 0x1d, 0xa4, 0x6f, 0x65, 0x36, 0x24, 0x42, 0xa0, 0xcc, 0x21, 0xc7, 0xdc, 0xdd, 0x5c, 0xd9, 0x0e, 0x0a, 0x2e, 0xe9, 0xf2, 0x51, 0x10, 0x81, 0x2b, 0xa1, 0x14, 0x93, 0x1c, 0x86, 0x8a, 0x70, 0x86, 0x07, 0xac, 0x16, 0x08, 0x4d, 0x79, 0x71, 0x5d, 0x13, 0xb3, 0x38, 0xc0, 0x5c, 0x6a, 0xef, 0x73, 0x43, 0xe7, 0xda, 0xd2, 0x82, 0xf9, 0x6f, 0xe2, 0x81, 0x93, 0x18, 0x8f, 0x0c, 0xc8, 0x93, 0xc7, 0xdc, 0xe8, 0x05, 0xfd, 0x3a, 0x7c, 0xd2, 0x68, 0xb7, 0x28, 0x94, 0x16, 0x0b, 0x52, 0x45, 0xfe, 0xd9, 0xfa, 0x99, 0x43, 0xb7, 0xc8, 0x0a, 0xdb, 0x3c, 0x2d, 0x1a, 0x35, 0x3d, 0x8f, 0x12, 0xdf, 0x25, 0xa3, 0x1d, 0xde, 0x7f, 0xa3, 0x85, 0xbb, 0xec, 0x35, 0x1d, 0xa6, 0x6f, 0x15, 0x30, 0x32, 0xe1, 0x77, 0x56, 0x27, 0x3f, 0x8d, 0x54, 0xe9, 0xa3, 0xb9, 0xea, 0x25, 0xae, 0x67, 0xd1, 0xe9, 0xc1, 0x8c, 0xc6, 0x8b, 0xe6, 0x01, 0xe3, 0xd6, 0x82, 0x82, 0x81, 0x8c, 0xe0, 0xe7, 0xcf, 0x88, 0xa4, 0xd1, 0x33, 0x64, 0x53, 0x02, 0x17, 0x32, 0xf0, 0x8d, 0x9e, 0x76, 0xcd, 0x23, 0x63, 0x79, 0x29, 0xb0, 0x91, 0x1d, 0x5f, 0x86, 0x14, 0xf4, 0x84, 0x2e, 0x67, 0x0c, 0x14, 0x28, 0x60, 0xaf, 0xc2, 0x65, 0xc5, 0x01, 0x72, 0xb1, 0x3b, 0xfd, 0x35, 0xad, 0x8f, 0xc5, 0x4b, 0x28, 0x65, 0x7d, 0xa3, 0x2b, 0xac, 0x15, 0x3b, 0xa9, 0xaf, 0xfc, 0x89, 0x7a, 0xfb, 0x3c, 0x72, 0x1f, 0x48, 0xca, 0xa4, 0x62, 0x40, 0x58, 0x57, 0x10, 0xb0, 0xf2, 0xd2, 0x4d, 0x5f, 0xf4, 0x96, 0x5d, 0x1d, 0x10, 0xf1, 0xa0, 0x7b, 0x06, 0xab, 0xea, 0x6a, 0x08, 0xe1, 0xd6, 0xf1, 0x50, 0x0d, 0xa1, 0x2c, 0x43, 0x4a, 0x6d, 0x77, 0x8c, 0x94, 0x10, 0x67, 0x10, 0x80, 0x00, 0x47, 0x5c, 0xe8, 0x31, 0xbc, 0xfe, 0x2d, 0x0a, 0xfe, 0x40, 0xb7, 0x41, 0x9d, 0x07, 0x05, 0x9b, 0xc0, 0xcd, 0x8d, 0xce, 0x4b, 0xe9, 0x58, 0x7f, 0xf2, 0x9a, 0xd8, 0xbf, 0x0b, 0x26, 0x8a, 0xe2, 0x3c, 0xe0, 0xda, 0x5b, 0xb5, 0xbf, 0x74, 0xff, 0x0b, 0x2b, 0x31, 0xb8, 0x21, 0x12, 0xa9, 0xfd, 0x5a, 0xbd, 0x9b, 0xfd, 0x0a, 0x90, 0xe6, 0xf4, 0x72, 0x35, 0x48, 0xc6, 0xbb, 0x2f, 0x99, 0xdc, 0x06, 0x1b, 0xa3, 0x2e, 0xba, 0x2d, 0x53, 0xe6, 0xbc, 0x79, 0xbf, 0x44, 0x1b, 0x23, 0xfb, 0x74, 0x60, 0xde, 0x04, 0xe8, 0xe8, 0xef, 0xbc, 0xd4, 0xd4, 0xcc, 0x73, 0x55, 0xde, 0x9e, 0x3b, 0x08, 0x61, 0xa6, 0x81, 0xb9, 0x83, 0x83, 0x9d, 0x44, 0x88, 0xe5, 0x51, 0x75, 0x1f, 0x23, 0xe9, 0xa6, 0xe2, 0xe4, 0xd4, 0x43, 0x27, 0x3b, 0x9e, 0x0f, 0xe6, 0x4d, 0x8a, 0xcd, 0x1c, 0x74, 0x8b, 0x55, 0x59, 0x43, 0x82, 0x23, 0xdd, 0x21, 0xb5, 0x18, 0x31, 0x89, 0xe0, 0xf3, 0xc0, 0xe8, 0xed, 0x41, 0x4c, 0x03, 0x56, 0xba, 0xb7, 0x7a, 0x65, 0x4d, 0xe1, 0xa5, 0x77, 0x14, 0x62, 0xef, 0x14, 0x34, 0x49, 0x70, 0xa4, 0x91, 0x51, 0x1a, 0x72, 0x29, 0x14, 0xf4, 0xa8, 0x9f, 0x4f, 0x1a, 0x82, 0x7e, 0x18, 0xcd, 0x84, 0x47, 0x9c, 0xc9, 0x25, 0x92, 0xea, 0xdf, 0x8d, 0xe2, 0xdf, 0x82, 0x4b, 0x97, 0x6d, 0xcb, 0xd2, 0x84, 0xa3, 0xba, 0x64, 0xbc, 0xdb, 0x0d, 0xf1, 0x5e, 0x8f, 0x41, 0xc0, 0xb2, 0x47, 0x15, 0x86, 0xb2, 0x6a, 0x06, 0x35, 0x3d, 0x90, 0x50, 0x28, 0x23, 0x5c, 0x1c, 0x6e, 0x5c, 0x45, 0x87, 0x22, 0x27, 0x25, 0xaf, 0x08, 0x3e, 0x11, 0xe7, 0x9c, 0x94, 0x3a, 0xa4, 0x44, 0xd4, 0xaa, 0x41, 0x21, 0x8d, 0x3e, 0x97, 0x43, 0x36, 0xe3, 0x72, 0x81, 0x3e, 0x99, 0xe2, 0xb0, 0xc5, 0xf0, 0xae, 0x81, 0x0f, 0xfe, 0xd9, 0xa7, 0xa3, 0xd6, 0xcb, 0x74, 0xc5, 0x47, 0x3d, 0x99, 0x0a, 0x59, 0x11, 0x32, 0x9b, 0x8e, 0x82, 0xec, 0x6b, 0xf2, 0xbd, 0x43, 0x21, 0xbb, 0x48, 0x73, 0x70, 0xf8, 0x73, 0x9e, 0x7a, 0x2a, 0x4a, 0x53, 0x43, 0x08, 0x33, 0xd4, 0x5b, 0x9f, 0xe3, 0xde, 0xb9, 0x3f, 0x79, 0xfc, 0x6a, 0x51, 0xd5, 0x63, 0x69, 0x5e, 0xcd, 0xb9, 0x78, 0x58, 0xd2, 0x13, 0xda, 0x58, 0x44, 0x34, 0xb7, 0xc7, 0x15, 0x46, 0xaa, 0xe8, 0xd9, 0x67, 0xe1, 0xc6, 0xd0, 0x08, 0x2b, 0x10, 0xd4, 0xa7, 0x2d, 0xe1, 0x74, 0x2e, 0x53, 0xc4, 0xb2, 0xf9, 0x2e, 0xb8, 0xb5, 0xc8, 0xc3, 0x5a, 0xb6, 0x53, 0x5e, 0xa8, 0x10, 0x0b, 0x37, 0x92, 0x4a, 0x0a, 0x91, 0xd2, 0xa7, 0x28, 0xd0, 0xf5, 0x64, 0x24, 0x37, 0xaa, 0x66, 0xc8, 0x2a, 0xb7, 0x4b, 0x5d, 0x07, 0x45, 0xec, 0x08, 0xf7, 0x70, 0x5c, 0xb8, 0x1f, 0xa0, 0x79, 0xd8, 0x9e, 0xcd, 0xc9, 0xaa, 0x1f, 0x8d, 0x7d, 0x82, 0xdc, 0x77, 0x46, 0xd3, 0x46, 0x15, 0x34, 0x3a, 0x69, 0x25, 0xdc, 0x31, 0x8f, 0x35, 0x2a, 0x2b, 0x45, 0x01, 0x24, 0x38, 0x42, 0x4f, 0x90, 0x98, 0xfd, 0xdf, 0x6e, 0x61, 0xfd, 0x1f, 0x8f, 0xb4, 0x9d, 0xa4, 0x0b, 0x3e, 0xec, 0xe8, 0x9a, 0x1a, 0xf1, 0x99, 0x6d, 0xe7, 0x0c, 0xd1, 0x69, 0x6c, 0xbf, 0xd9, 0xe3, 0x01, 0xea, 0x5f, 0x44, 0x37, 0xc7, 0x1a, 0xc2, 0xa0, 0x32, 0x25, 0x4c, 0x14, 0x0a, 0x90, 0xe8, 0x5f, 0xb8, 0xff, 0xc4, 0x66, 0x7f, 0xa1, 0x39, 0xc1, 0xee, 0x9b, 0xbf, 0x12, 0xee, 0xd9, 0x06, 0xa9, 0x67, 0xbc, 0x09, 0x21, };
17180 static const u8 ed25519_747_test_vectors_expected_sig[] = {
17181 	0x8e, 0x4b, 0x41, 0xf0, 0x97, 0xd8, 0x36, 0x14, 0x18, 0x4b, 0xa7, 0xf5, 0x2b, 0xa2, 0xfd, 0x9f, 0x05, 0x65, 0xf8, 0xa6, 0x37, 0x21, 0xef, 0x55, 0xf9, 0x31, 0x62, 0x82, 0x6b, 0x9f, 0x0a, 0xc0, 0x70, 0xc0, 0xe2, 0x86, 0x4b, 0x5f, 0xfd, 0x8e, 0xcc, 0xc1, 0x8e, 0xfa, 0xd1, 0x8b, 0x2c, 0xe8, 0x4b, 0xe5, 0x7c, 0x0b, 0x4a, 0x41, 0xc5, 0x2e, 0x20, 0xef, 0x37, 0x72, 0x23, 0x77, 0xc6, 0x0f, };
17182 static const ec_test_case ed25519_747_test_case = {
17183 	.name = "EDDSA25519-SHA512/wei25519 747",
17184 	.ec_str_p = &wei25519_str_params,
17185 	.priv_key = ed25519_747_test_vectors_priv_key,
17186 	.priv_key_len = sizeof(ed25519_747_test_vectors_priv_key),
17187 	.nn_random = NULL,
17188 	.hash_type = SHA512,
17189 	.msg = (const char *)ed25519_747_test_vectors_message,
17190 	.msglen = sizeof(ed25519_747_test_vectors_message),
17191 	.sig_type = EDDSA25519,
17192 	.exp_sig = ed25519_747_test_vectors_expected_sig,
17193 	.exp_siglen = sizeof(ed25519_747_test_vectors_expected_sig),
17194 	.adata = NULL,
17195 	.adata_len = 0
17196 };
17197 
17198 /************************************************/
17199 static const u8 ed25519_748_test_vectors_priv_key[] = {
17200 	0x3d, 0xcb, 0x7a, 0xe7, 0xd9, 0xf0, 0xf1, 0x41, 0xf1, 0xd9, 0xf0, 0x78, 0x83, 0x63, 0x5b, 0x91, 0x3e, 0xd2, 0x9f, 0xb6, 0x1d, 0x0f, 0x74, 0x1c, 0x9a, 0xfd, 0x05, 0xa2, 0x7b, 0x04, 0x5b, 0x06, };
17201 static const u8 ed25519_748_test_vectors_message[] = {
17202 	0x38, 0x11, 0x6a, 0x57, 0x26, 0x69, 0x07, 0x0d, 0xd5, 0x86, 0x32, 0x18, 0xc9, 0x1a, 0x77, 0xa4, 0xab, 0x47, 0x55, 0x36, 0x88, 0x48, 0x8c, 0x79, 0x28, 0x38, 0x50, 0x9e, 0x9a, 0xba, 0x25, 0x06, 0x7a, 0xdb, 0x7e, 0xa4, 0x24, 0x98, 0x48, 0x00, 0x9d, 0x91, 0x4a, 0xe9, 0x87, 0xa6, 0x03, 0x23, 0x48, 0xc1, 0xc0, 0x68, 0x1c, 0xf9, 0x77, 0xa9, 0x55, 0x2d, 0xd6, 0xbb, 0xf4, 0xe6, 0xff, 0x32, 0xac, 0xc9, 0xfa, 0x61, 0xcb, 0xee, 0x25, 0xa3, 0x93, 0x07, 0x65, 0x0f, 0x8b, 0xa6, 0xa7, 0xce, 0x42, 0x1e, 0xf2, 0xf7, 0x1b, 0xcc, 0xc0, 0x95, 0x81, 0x38, 0xf9, 0x32, 0x4c, 0x86, 0xbf, 0x2e, 0x52, 0x8f, 0xa3, 0xe4, 0xd1, 0xb1, 0x9f, 0x9f, 0x2c, 0xa5, 0x26, 0x84, 0x09, 0xb8, 0xcc, 0x19, 0xc6, 0x2d, 0xd9, 0x79, 0xb8, 0x96, 0x97, 0xe4, 0x57, 0xed, 0x2d, 0x98, 0xbd, 0x20, 0x96, 0xf6, 0x2d, 0x3d, 0x9e, 0x24, 0x73, 0x88, 0x79, 0x59, 0x27, 0x80, 0x3e, 0x79, 0xab, 0x71, 0xd4, 0xf7, 0x2f, 0x56, 0x8e, 0x94, 0x5a, 0x8a, 0x16, 0x21, 0x59, 0xd9, 0xb8, 0x48, 0x36, 0xe4, 0x58, 0x56, 0x44, 0xd4, 0x97, 0x9f, 0x61, 0x4a, 0xad, 0xa7, 0x3a, 0xd4, 0x13, 0xa8, 0x33, 0x91, 0xe9, 0xcf, 0x88, 0x0c, 0x42, 0xac, 0x2a, 0x98, 0x34, 0x3b, 0x6a, 0x82, 0xcd, 0x2b, 0x61, 0x58, 0x14, 0x56, 0xf6, 0xde, 0x5c, 0xeb, 0x24, 0xfe, 0x46, 0xb7, 0x62, 0x5d, 0x52, 0xab, 0x2c, 0x2c, 0x32, 0x4a, 0xc7, 0x47, 0x03, 0xd1, 0x5e, 0x15, 0xf1, 0xae, 0xff, 0x80, 0x55, 0xd2, 0xf7, 0x39, 0xf7, 0x36, 0x3e, 0x16, 0xec, 0x1d, 0x78, 0xbe, 0x2c, 0x62, 0x99, 0x43, 0x6c, 0x8c, 0x8d, 0x33, 0x6b, 0xd2, 0x92, 0x71, 0xa8, 0x97, 0xa6, 0xec, 0x93, 0x2e, 0xd0, 0x87, 0x25, 0xbe, 0x21, 0xb2, 0x8f, 0x9a, 0xa1, 0x4e, 0xaf, 0x4f, 0x71, 0x85, 0x31, 0x54, 0xdb, 0x14, 0x58, 0x7c, 0x93, 0x0a, 0xb3, 0xeb, 0x02, 0x27, 0xad, 0x7f, 0xfb, 0x45, 0xb3, 0xba, 0xa6, 0xa9, 0x99, 0x49, 0x9c, 0xc8, 0xa6, 0xe4, 0x5b, 0x1a, 0xb4, 0xd0, 0xb3, 0x39, 0x78, 0x2b, 0xcd, 0x9c, 0xfb, 0xcf, 0x88, 0xcf, 0x7e, 0xae, 0x89, 0x1c, 0xc8, 0x41, 0xe9, 0xc8, 0x8a, 0x1f, 0x6a, 0x69, 0x1f, 0x39, 0x48, 0xa6, 0xbc, 0x85, 0xba, 0x7f, 0x46, 0x11, 0x64, 0x2e, 0x84, 0x22, 0x3c, 0x3b, 0x17, 0x89, 0x46, 0xdd, 0xbe, 0xdd, 0xcf, 0xcd, 0xef, 0x4a, 0xe4, 0xc4, 0xe1, 0xa8, 0x14, 0xb9, 0xb1, 0xf0, 0x2b, 0x1e, 0xaa, 0x82, 0x4d, 0xb9, 0x3f, 0x44, 0xb2, 0x7d, 0x14, 0x20, 0x6b, 0x34, 0x04, 0x65, 0xa1, 0xce, 0xfc, 0xf5, 0x35, 0xc6, 0x3e, 0x55, 0xc4, 0x28, 0x72, 0x24, 0x26, 0x27, 0x33, 0xd9, 0x8a, 0xaa, 0xa1, 0x54, 0xf3, 0xad, 0x42, 0xcd, 0x85, 0x46, 0xa4, 0x61, 0xce, 0x0d, 0x46, 0xd8, 0x86, 0xd3, 0x46, 0x1a, 0x21, 0x50, 0xcb, 0x45, 0xdb, 0xe5, 0x64, 0x73, 0xff, 0x63, 0xd3, 0xdc, 0x7a, 0x2b, 0x95, 0x7b, 0x82, 0x39, 0x69, 0xf1, 0x9b, 0x59, 0x68, 0xe8, 0xb4, 0x24, 0xc8, 0x79, 0x74, 0x19, 0x26, 0xd8, 0x2c, 0x63, 0x86, 0x75, 0x3b, 0x0f, 0xa1, 0xf0, 0x80, 0x28, 0x4e, 0x55, 0x78, 0x94, 0x23, 0x63, 0xaa, 0xde, 0xb2, 0x1f, 0x8e, 0x1e, 0x89, 0x09, 0xfa, 0x6c, 0x38, 0x07, 0x64, 0x14, 0x9b, 0xc9, 0x15, 0xb2, 0x28, 0x60, 0x4e, 0xfc, 0x56, 0xd9, 0x2e, 0x4b, 0xeb, 0x72, 0x0e, 0xdc, 0x74, 0xc4, 0xd7, 0x8f, 0x92, 0x5d, 0x6c, 0xfd, 0xf7, 0xba, 0x2f, 0x14, 0xb5, 0x62, 0x37, 0x75, 0x81, 0x0d, 0x2d, 0x07, 0xbd, 0x38, 0x8c, 0x57, 0x3e, 0x36, 0x52, 0x3f, 0x21, 0x57, 0x38, 0xe6, 0x91, 0x14, 0xdc, 0xf8, 0xd8, 0x0f, 0x17, 0x0b, 0xfa, 0x67, 0x6e, 0x31, 0xfb, 0x62, 0x6a, 0x7d, 0x44, 0x9e, 0xd9, 0x66, 0x47, 0x36, 0x34, 0x75, 0x97, 0x0c, 0x8c, 0x47, 0x80, 0x97, 0x09, 0xbc, 0xb5, 0xe7, 0x20, 0x0f, 0x2a, 0x22, 0x7c, 0x7c, 0x8e, 0x7b, 0x00, 0x0f, 0x30, 0xc0, 0xbd, 0xe6, 0x1d, 0x67, 0xbd, 0x68, 0x95, 0x36, 0x16, 0x29, 0xa3, 0x6c, 0x8f, 0xdd, 0x5a, 0x56, 0xb8, 0x1e, 0xfb, 0xac, 0xf1, 0x5c, 0x1b, 0x35, 0x30, 0xa0, 0x8c, 0xde, 0xd5, 0xb1, 0xfd, 0x45, 0x7f, 0xbd, 0x2f, 0x03, 0x04, 0x2f, 0x56, 0xf1, 0xb3, 0x7e, 0xd1, 0x5c, 0xdb, 0x91, 0x2f, 0xa0, 0x29, 0x8c, 0x27, 0x67, 0x25, 0x08, 0x7e, 0xe2, 0x7d, 0x3c, 0xf2, 0x55, 0x0f, 0xe6, 0xe8, 0xa0, 0x33, 0x0a, 0xf4, 0x17, 0xf4, 0xf5, 0xba, 0xf0, 0x36, 0x27, 0xed, 0x67, 0xc5, 0xf8, 0x32, 0x33, 0x63, 0xab, 0xac, 0x5a, 0x1f, 0xe3, 0x48, 0x23, 0x18, 0x0e, 0x3e, 0x0e, 0x20, 0x80, 0xf7, 0x5b, 0xfd, 0x91, 0xc2, 0x07, 0xcf, 0x6b, 0xaa, 0x9a, 0x22, 0x9c, 0xf4, 0x43, 0xdd, 0x44, 0x2c, 0x59, 0x02, 0xe0, 0x67, 0x3f, 0x32, 0x52, 0xb8, 0x52, 0x63, 0x46, 0x58, 0x58, 0x72, 0xf6, 0xcd, 0x36, 0x60, 0x25, 0xa5, 0x69, 0x92, 0xb7, 0x0e, 0xde, 0x39, 0xbc, 0x8d, 0x32, 0x2f, 0x9c, 0x22, 0xa1, 0xdc, 0x59, 0x9e, 0x9f, 0x0d, 0x52, 0x4c, 0xb6, 0xd2, 0xea, 0x5a, 0xe2, 0x87, 0x8e, 0xf6, 0xbe, 0xd4, 0xb7, 0x02, 0x80, 0x7f, 0x1e, 0x1e, 0x73, 0xeb, 0xf2, 0x90, 0xeb, 0x6c, 0x0e, 0xeb, 0x85, 0xc1, 0x37, 0x16, 0xf6, 0x26, 0xaa, 0x90, 0xd3, 0x64, 0xb4, 0x90, 0x48, 0x37, 0xce, 0x05, };
17203 static const u8 ed25519_748_test_vectors_expected_sig[] = {
17204 	0x09, 0xa1, 0xe6, 0xfe, 0xdf, 0x97, 0x1b, 0x3e, 0xdb, 0xfa, 0xef, 0xbe, 0xb8, 0x9a, 0xa5, 0x39, 0xca, 0x0b, 0x02, 0xb3, 0x7e, 0x7a, 0xc4, 0xea, 0x89, 0x20, 0xd6, 0xd4, 0x34, 0x8e, 0xe0, 0xcf, 0x9a, 0x2d, 0x5e, 0x96, 0xfc, 0xe5, 0x17, 0xc6, 0x65, 0xe7, 0xc3, 0x83, 0x68, 0xba, 0xf2, 0x49, 0x79, 0x24, 0x9a, 0x95, 0xb7, 0x0e, 0xa7, 0x43, 0x6c, 0x00, 0x78, 0x5f, 0x16, 0xa3, 0xae, 0x09, };
17205 static const ec_test_case ed25519_748_test_case = {
17206 	.name = "EDDSA25519-SHA512/wei25519 748",
17207 	.ec_str_p = &wei25519_str_params,
17208 	.priv_key = ed25519_748_test_vectors_priv_key,
17209 	.priv_key_len = sizeof(ed25519_748_test_vectors_priv_key),
17210 	.nn_random = NULL,
17211 	.hash_type = SHA512,
17212 	.msg = (const char *)ed25519_748_test_vectors_message,
17213 	.msglen = sizeof(ed25519_748_test_vectors_message),
17214 	.sig_type = EDDSA25519,
17215 	.exp_sig = ed25519_748_test_vectors_expected_sig,
17216 	.exp_siglen = sizeof(ed25519_748_test_vectors_expected_sig),
17217 	.adata = NULL,
17218 	.adata_len = 0
17219 };
17220 
17221 /************************************************/
17222 static const u8 ed25519_749_test_vectors_priv_key[] = {
17223 	0x29, 0x73, 0x11, 0xdd, 0xef, 0xfe, 0xc9, 0xd2, 0xbe, 0x68, 0xef, 0x7b, 0x2a, 0x20, 0xfe, 0x2d, 0x27, 0x7e, 0x1d, 0x8e, 0x51, 0x64, 0x8b, 0x03, 0x57, 0x2a, 0xda, 0x27, 0xec, 0x1f, 0x9f, 0x43, };
17224 static const u8 ed25519_749_test_vectors_message[] = {
17225 	0x26, 0x52, 0xac, 0xfc, 0x3b, 0xdf, 0x09, 0xa5, 0x99, 0xec, 0x67, 0x86, 0xbb, 0xd9, 0x4f, 0xe5, 0x77, 0xcf, 0x57, 0x8e, 0x02, 0x63, 0xcc, 0x68, 0xd9, 0xf5, 0x7a, 0x6c, 0x83, 0x45, 0x8f, 0x80, 0xac, 0xd8, 0xa7, 0x5e, 0xf0, 0x30, 0x40, 0xa6, 0x35, 0x67, 0x2b, 0x96, 0x8f, 0xf2, 0xaf, 0xdb, 0x28, 0x8d, 0x28, 0xb9, 0x99, 0x6f, 0x64, 0x15, 0xb2, 0xf3, 0x17, 0x5e, 0x9e, 0xa3, 0x7a, 0xeb, 0x05, 0xdf, 0x81, 0x81, 0x2e, 0x38, 0xa4, 0xc9, 0x76, 0xeb, 0x92, 0x85, 0x6c, 0xed, 0xb9, 0x1a, 0x26, 0x9a, 0x46, 0xfc, 0xa5, 0xdf, 0x9b, 0xd7, 0x30, 0xfd, 0x84, 0x45, 0x2b, 0x4b, 0xd9, 0x35, 0x77, 0xc6, 0x1f, 0x42, 0xc1, 0x41, 0x13, 0x97, 0x98, 0x82, 0xa8, 0x6a, 0x9f, 0xe6, 0x32, 0xe4, 0x75, 0x6a, 0xfd, 0x89, 0x81, 0x6f, 0xc4, 0x67, 0x0a, 0x31, 0x05, 0x03, 0xfd, 0xaa, 0xd2, 0xdb, 0x76, 0x4c, 0x37, 0x21, 0x21, 0x3c, 0x3e, 0x60, 0xf2, 0x9c, 0x26, 0x68, 0xd4, 0xde, 0x8f, 0x42, 0xb0, 0x87, 0xf2, 0x5c, 0xd5, 0x6c, 0x69, 0xa4, 0xe4, 0x8f, 0x13, 0x4f, 0x55, 0x98, 0xcf, 0x14, 0x5b, 0xe6, 0x38, 0xa5, 0xc2, 0x31, 0x88, 0x63, 0x32, 0x90, 0x61, 0x72, 0x9a, 0xac, 0x91, 0xda, 0x6a, 0x19, 0x1f, 0xd7, 0x74, 0x88, 0x0c, 0xf9, 0xcb, 0x55, 0x5e, 0xec, 0x15, 0xb0, 0x04, 0x4f, 0x10, 0xe5, 0x43, 0x3f, 0xb4, 0x6a, 0x9b, 0x88, 0x92, 0xda, 0x8f, 0x6d, 0x24, 0xf1, 0x42, 0x58, 0x8b, 0x70, 0xff, 0x0b, 0x49, 0x20, 0x0c, 0x50, 0x6b, 0x88, 0xbe, 0xd4, 0x49, 0xad, 0x10, 0xd3, 0xf9, 0x2c, 0x2b, 0xae, 0xda, 0x6b, 0xbf, 0x58, 0x67, 0x6c, 0x5b, 0xbc, 0x67, 0xd3, 0x1f, 0x64, 0xfb, 0x12, 0xe8, 0xd5, 0xe7, 0x88, 0x76, 0xd5, 0xc8, 0x49, 0xfc, 0x31, 0x4b, 0x2c, 0xf8, 0x01, 0x0c, 0x51, 0x02, 0x04, 0xc8, 0x63, 0x3d, 0x0c, 0xc3, 0x18, 0x56, 0xec, 0x6a, 0x11, 0x4e, 0xa8, 0xa8, 0x9c, 0x48, 0x92, 0x7b, 0x07, 0xa3, 0x1a, 0xb8, 0x42, 0xc9, 0xb8, 0x35, 0x2d, 0x93, 0x67, 0x34, 0x51, 0x41, 0xa9, 0x9b, 0x40, 0x04, 0x9d, 0x5c, 0x48, 0xe7, 0xd2, 0x7c, 0xab, 0x42, 0x7a, 0xde, 0xfd, 0x1f, 0x0f, 0xc1, 0x13, 0x6b, 0x35, 0x3c, 0xb0, 0x1c, 0x3d, 0xef, 0x91, 0xff, 0xfe, 0xe8, 0xad, 0x91, 0xe8, 0x8f, 0x4b, 0xb7, 0xd2, 0x61, 0x5c, 0x0d, 0xcc, 0x95, 0x34, 0x4c, 0xd0, 0x19, 0x50, 0x93, 0x8e, 0xcb, 0x14, 0xb8, 0x44, 0x6b, 0x56, 0xa0, 0x6b, 0xf2, 0xf2, 0xf6, 0x5f, 0xb8, 0x73, 0x5e, 0x8a, 0x7b, 0xc9, 0x6b, 0xb4, 0x6c, 0xe9, 0xca, 0xc7, 0x1a, 0x88, 0xeb, 0x8f, 0xda, 0x5e, 0x69, 0xd6, 0x9e, 0xb2, 0x9a, 0xa4, 0x2a, 0x01, 0x6b, 0x85, 0x83, 0x89, 0x3e, 0x9d, 0x72, 0x77, 0xcb, 0x13, 0x59, 0xc5, 0x68, 0x7e, 0xed, 0xcd, 0x59, 0x9d, 0x8a, 0x46, 0xe6, 0xc1, 0x49, 0x63, 0x63, 0x7d, 0xb0, 0x4a, 0x92, 0x9f, 0x4b, 0xc7, 0x93, 0x04, 0xac, 0x2d, 0xae, 0x73, 0x3b, 0x3a, 0x83, 0x9e, 0xb7, 0x4f, 0xbe, 0x3d, 0xe5, 0x04, 0x2f, 0xd6, 0x55, 0xea, 0xec, 0xb1, 0x5f, 0x39, 0xb2, 0xfe, 0x16, 0xda, 0xd8, 0xa6, 0xff, 0x8d, 0xbc, 0x05, 0x4f, 0xed, 0x51, 0x28, 0x2a, 0x85, 0x6e, 0x9d, 0xa6, 0x31, 0x6f, 0xac, 0x6d, 0xb5, 0xd5, 0x6f, 0x77, 0xf1, 0x8d, 0xa8, 0x41, 0x2e, 0xb3, 0x77, 0xe5, 0xb1, 0xb8, 0xf4, 0xcb, 0x13, 0x54, 0xec, 0xfe, 0x8f, 0xe8, 0xfd, 0x54, 0xe6, 0x2d, 0x76, 0x7a, 0x80, 0xde, 0x04, 0xcb, 0x76, 0x20, 0x22, 0x9a, 0x88, 0x31, 0xdb, 0xc9, 0xec, 0xd4, 0x57, 0x8f, 0xfa, 0x2f, 0xf0, 0x6b, 0x54, 0x45, 0xe4, 0x40, 0xd6, 0x9a, 0xab, 0xc9, 0x4c, 0x47, 0xbd, 0x17, 0xf2, 0x2b, 0x69, 0xf5, 0x2e, 0xea, 0xe5, 0xcf, 0xcd, 0x01, 0xa5, 0xca, 0xfe, 0x05, 0x80, 0x07, 0x2a, 0xe9, 0x16, 0x6b, 0x95, 0x74, 0x3d, 0x68, 0xc3, 0x56, 0x4c, 0x5a, 0x7e, 0x46, 0xf2, 0x4b, 0xc4, 0x8a, 0x89, 0x8a, 0x1a, 0xb2, 0xeb, 0xe6, 0x3f, 0x36, 0x85, 0x1d, 0x2a, 0xac, 0xfa, 0x0c, 0x4f, 0x32, 0xd9, 0x93, 0x77, 0x1d, 0x31, 0x4e, 0x72, 0x5a, 0x43, 0xd9, 0x80, 0x5d, 0x13, 0x71, 0xcf, 0x72, 0x3e, 0xf1, 0x61, 0xd4, 0x2e, 0x63, 0xff, 0xca, 0x68, 0x8d, 0x7f, 0x0e, 0x21, 0xef, 0x5b, 0x3f, 0x9a, 0x56, 0x1a, 0x62, 0x10, 0x70, 0x2b, 0x85, 0xfb, 0xd1, 0xf8, 0xca, 0x75, 0x38, 0x9c, 0xc7, 0xa2, 0x27, 0x39, 0xba, 0xe4, 0xde, 0xd9, 0x37, 0x57, 0xf1, 0x52, 0x0d, 0xc3, 0x88, 0x44, 0xa1, 0xa8, 0x8b, 0xe8, 0xe0, 0x96, 0x45, 0x05, 0x91, 0x48, 0x80, 0x7b, 0x93, 0x37, 0x70, 0x87, 0x8c, 0xb8, 0xa9, 0xad, 0x92, 0x11, 0x31, 0x71, 0x31, 0xe6, 0x93, 0x24, 0x53, 0x2f, 0xd0, 0x27, 0x9b, 0x83, 0x18, 0x5b, 0x62, 0x8f, 0xc2, 0xf9, 0xe2, 0x15, 0x00, 0x38, 0x46, 0x93, 0xfa, 0x29, 0xf2, 0x6b, 0xd1, 0xb9, 0xc3, 0x01, 0x60, 0x13, 0x67, 0x66, 0x5f, 0x05, 0xf3, 0x72, 0xda, 0xb4, 0xe3, 0x10, 0x77, 0x26, 0xcd, 0x3f, 0x63, 0x9c, 0xa6, 0x2b, 0xf6, 0x3a, 0x75, 0xf7, 0x7e, 0xaa, 0x75, 0xf7, 0x13, 0x61, 0x57, 0xad, 0xa2, 0x37, 0x4e, 0x65, 0xfb, 0x4f, 0xd3, 0x49, 0xb4, 0x5e, 0x25, 0x44, 0x1f, 0xd2, 0x1b, 0x13, 0xe6, 0x91, 0x13, 0x66, 0xb9, 0x7c, 0xfb, 0x4d, 0x6a, 0xd5, 0x22, 0xb8, 0x50, 0xad, 0xf4, 0x0c, };
17226 static const u8 ed25519_749_test_vectors_expected_sig[] = {
17227 	0x4b, 0xf0, 0xb9, 0x2c, 0x6e, 0xe4, 0xea, 0xce, 0x5e, 0x8e, 0xb1, 0x03, 0x70, 0xff, 0x9d, 0x9c, 0x68, 0xa5, 0x74, 0x9d, 0x59, 0x89, 0x9d, 0x04, 0x32, 0x7a, 0xaa, 0x38, 0xf8, 0xf8, 0x25, 0xe0, 0x32, 0xe5, 0x97, 0x42, 0xb3, 0x7d, 0xe2, 0x31, 0x07, 0xa3, 0xec, 0xdd, 0x3f, 0x7a, 0x0d, 0x08, 0x12, 0x26, 0x14, 0xb7, 0x8f, 0xdd, 0x37, 0x29, 0x3c, 0x8d, 0x05, 0xe2, 0x8f, 0x5f, 0x71, 0x08, };
17228 static const ec_test_case ed25519_749_test_case = {
17229 	.name = "EDDSA25519-SHA512/wei25519 749",
17230 	.ec_str_p = &wei25519_str_params,
17231 	.priv_key = ed25519_749_test_vectors_priv_key,
17232 	.priv_key_len = sizeof(ed25519_749_test_vectors_priv_key),
17233 	.nn_random = NULL,
17234 	.hash_type = SHA512,
17235 	.msg = (const char *)ed25519_749_test_vectors_message,
17236 	.msglen = sizeof(ed25519_749_test_vectors_message),
17237 	.sig_type = EDDSA25519,
17238 	.exp_sig = ed25519_749_test_vectors_expected_sig,
17239 	.exp_siglen = sizeof(ed25519_749_test_vectors_expected_sig),
17240 	.adata = NULL,
17241 	.adata_len = 0
17242 };
17243 
17244 /************************************************/
17245 static const u8 ed25519_750_test_vectors_priv_key[] = {
17246 	0x4d, 0xb2, 0xb5, 0x81, 0x44, 0xa8, 0xd2, 0xd0, 0xec, 0x03, 0xbb, 0x9b, 0xc2, 0x9b, 0x4c, 0xa8, 0x93, 0x85, 0x4c, 0x80, 0xb6, 0x4a, 0xfa, 0x4a, 0xf7, 0xa9, 0xc9, 0x36, 0x93, 0x5e, 0xcb, 0x04, };
17247 static const u8 ed25519_750_test_vectors_message[] = {
17248 	0xc8, 0xd1, 0xdb, 0xc9, 0x36, 0x91, 0x1e, 0x12, 0x2c, 0xee, 0x18, 0xf9, 0x2b, 0x16, 0xa3, 0x9a, 0x2e, 0xef, 0x08, 0x23, 0xb2, 0x27, 0xf8, 0x98, 0xcd, 0xf5, 0x84, 0x2b, 0x93, 0xd5, 0x9f, 0xc0, 0x02, 0xed, 0xb5, 0x49, 0x8a, 0x20, 0x87, 0x2e, 0x19, 0x55, 0x4e, 0xf7, 0x39, 0x99, 0xeb, 0x3a, 0x7b, 0x3e, 0x2f, 0xdd, 0x90, 0x70, 0xe1, 0xef, 0xa9, 0x22, 0x8e, 0x9e, 0x93, 0xb2, 0x9a, 0x86, 0x8a, 0xe3, 0x79, 0x9e, 0x4e, 0x57, 0x23, 0x24, 0x83, 0x6b, 0x1a, 0xd5, 0xaa, 0x81, 0x2b, 0xf0, 0x0f, 0x84, 0x5b, 0xc2, 0x17, 0xeb, 0xbc, 0x3f, 0xab, 0xdc, 0x4e, 0x1b, 0x6e, 0x51, 0xef, 0x9e, 0xfa, 0xc2, 0x77, 0x0a, 0xa0, 0xa4, 0xa1, 0x1e, 0xe5, 0x2a, 0xb9, 0x56, 0xac, 0x64, 0x48, 0xaa, 0x26, 0x29, 0xcb, 0x61, 0xdb, 0xb1, 0xf1, 0xed, 0xb3, 0xbd, 0xe9, 0x9b, 0x48, 0x76, 0xda, 0x39, 0x2a, 0x6e, 0x0b, 0x9a, 0x0c, 0x31, 0x84, 0x9a, 0x58, 0x90, 0xae, 0xa9, 0x52, 0x2f, 0x56, 0xd0, 0x15, 0xa1, 0x93, 0x50, 0x15, 0xb9, 0x1b, 0xf4, 0xc6, 0xa0, 0x01, 0x1d, 0x23, 0x77, 0xd6, 0x71, 0xc3, 0xd0, 0xd7, 0x53, 0xc2, 0x7f, 0x8c, 0x76, 0xe4, 0x05, 0xd0, 0x23, 0x0f, 0x1f, 0x4b, 0x9b, 0x88, 0xfc, 0xeb, 0xba, 0x1e, 0xaf, 0x13, 0x77, 0x72, 0x35, 0xe5, 0x53, 0x24, 0xb7, 0xd3, 0xf8, 0x1e, 0x68, 0x61, 0x09, 0xd9, 0x1c, 0xe6, 0x89, 0x53, 0x0b, 0x90, 0xd2, 0xc5, 0xc7, 0x1d, 0xd1, 0x87, 0x72, 0xb3, 0x85, 0xd6, 0x2c, 0xcb, 0xfd, 0x2e, 0x08, 0x9a, 0x1b, 0x67, 0x09, 0x83, 0xf6, 0x0c, 0x21, 0xc4, 0x45, 0x5c, 0xb9, 0xd1, 0xa0, 0xdc, 0xaa, 0x74, 0xc8, 0x74, 0xe3, 0x52, 0x11, 0xf8, 0x22, 0x7f, 0xf7, 0xc2, 0x34, 0xdf, 0xf8, 0x5e, 0xc0, 0xb0, 0x7e, 0x36, 0x8c, 0xfa, 0x50, 0xa3, 0x43, 0x57, 0x83, 0x95, 0xa1, 0x4c, 0x68, 0xf1, 0xf8, 0x9b, 0xd4, 0xec, 0xbc, 0x17, 0x2e, 0xf8, 0x05, 0xe5, 0x83, 0x1e, 0xc8, 0x94, 0x75, 0xfc, 0xc8, 0xd6, 0x85, 0xca, 0x92, 0x55, 0xa7, 0x7e, 0x3b, 0xa3, 0xc1, 0x47, 0x50, 0x8e, 0xc9, 0x2d, 0x7b, 0xcc, 0xe8, 0x79, 0xaf, 0x0a, 0xbd, 0xd2, 0x41, 0x6b, 0x67, 0xb5, 0xf5, 0x05, 0x07, 0x33, 0x79, 0x14, 0xf3, 0x90, 0xbb, 0xe0, 0xb4, 0x50, 0xb6, 0xa2, 0xf1, 0x15, 0x93, 0x72, 0xc4, 0xbc, 0xce, 0xa3, 0x82, 0xce, 0x3d, 0x6d, 0x9f, 0xb2, 0x51, 0x5e, 0xcf, 0x79, 0x30, 0x05, 0x9a, 0x05, 0x52, 0xb7, 0x5f, 0x97, 0x88, 0x62, 0xbf, 0x97, 0xe8, 0x32, 0x5a, 0xf2, 0x4d, 0x1b, 0x8c, 0xe9, 0x51, 0x2b, 0xfc, 0x7c, 0xef, 0x88, 0x42, 0x32, 0x04, 0x23, 0x41, 0xd8, 0x2f, 0x9b, 0x5d, 0xad, 0x2e, 0x50, 0x2a, 0xc6, 0xac, 0x79, 0x5f, 0x99, 0xda, 0xc7, 0xfc, 0x60, 0xe3, 0xb8, 0x63, 0x9d, 0x0e, 0x15, 0x00, 0xde, 0xad, 0x4e, 0x78, 0xac, 0xa1, 0x09, 0x95, 0x7d, 0x57, 0x7a, 0x13, 0xc1, 0x92, 0x5d, 0x74, 0x03, 0xc1, 0xac, 0xf9, 0x89, 0xa9, 0xde, 0x67, 0x11, 0xe2, 0x3c, 0x67, 0xbf, 0x87, 0x22, 0xf5, 0x51, 0xb7, 0x74, 0xca, 0xda, 0x93, 0x1b, 0x5f, 0xd9, 0x73, 0x43, 0x4e, 0x3b, 0x71, 0x72, 0x81, 0x98, 0x83, 0xe7, 0x0c, 0x52, 0x78, 0x5e, 0x3b, 0x49, 0xd3, 0x23, 0xd0, 0x56, 0x36, 0x64, 0x11, 0x58, 0x64, 0x0d, 0xcf, 0x6a, 0x4c, 0x20, 0x0e, 0xb2, 0xc1, 0x3b, 0x1b, 0xee, 0xb2, 0xdc, 0x36, 0x03, 0x52, 0x47, 0x0d, 0x15, 0x38, 0x6e, 0x59, 0xe6, 0xfa, 0x60, 0x36, 0x7e, 0x5e, 0x7f, 0x17, 0x2b, 0x21, 0x15, 0x9d, 0x5e, 0xe7, 0xca, 0xb0, 0xd7, 0xf5, 0x86, 0x82, 0x39, 0x85, 0x8e, 0x2a, 0x93, 0x55, 0x04, 0x80, 0xfe, 0x8f, 0xb4, 0xdc, 0xaf, 0x4f, 0x22, 0x4c, 0x4b, 0x2a, 0xd5, 0x44, 0x87, 0x91, 0x63, 0x2d, 0xf3, 0x0e, 0x8e, 0x5f, 0xb9, 0x98, 0xb3, 0x5e, 0xa9, 0xae, 0xc8, 0xc9, 0x34, 0xa4, 0x40, 0x3a, 0xef, 0x82, 0x18, 0x7c, 0xa1, 0xab, 0xf8, 0x2a, 0x34, 0x4d, 0x00, 0xff, 0xb9, 0x93, 0xd9, 0xff, 0x34, 0x61, 0xd6, 0xfe, 0xcd, 0xaf, 0x5d, 0x3b, 0x48, 0x1e, 0x0d, 0x31, 0x15, 0x3d, 0xbf, 0x6a, 0xed, 0x28, 0x8c, 0x8a, 0xdd, 0x06, 0x4e, 0x83, 0x31, 0x55, 0x01, 0x41, 0xbd, 0x5f, 0x7a, 0x7e, 0x04, 0x7b, 0x86, 0x07, 0xd8, 0x46, 0xa6, 0xbf, 0xb7, 0x2d, 0x68, 0x34, 0x46, 0xa4, 0x45, 0x11, 0x46, 0x06, 0x25, 0x0d, 0x8d, 0x2d, 0x3a, 0x8b, 0x95, 0x08, 0xbb, 0x07, 0xd4, 0x62, 0x3c, 0xdf, 0x17, 0x88, 0xb5, 0x49, 0x9e, 0x9c, 0xb9, 0xa1, 0x37, 0x98, 0x49, 0xbf, 0xa1, 0x9c, 0x9a, 0x9f, 0x4c, 0xd3, 0xd9, 0x25, 0x3a, 0xdf, 0xfd, 0xa2, 0x5f, 0x47, 0xc8, 0x11, 0xbe, 0x83, 0x3b, 0x02, 0xf3, 0x32, 0x7e, 0xbb, 0xa8, 0x37, 0x30, 0x19, 0x5d, 0x61, 0x4b, 0xae, 0x6f, 0xe4, 0xe7, 0xa3, 0x83, 0x08, 0x15, 0xd2, 0xaf, 0x40, 0x0d, 0x20, 0xa9, 0x41, 0x7a, 0x09, 0x5e, 0x7e, 0x8e, 0xea, 0x10, 0x44, 0x91, 0x7c, 0xbe, 0x51, 0x2c, 0x40, 0x18, 0xd6, 0x56, 0xe2, 0xdb, 0x67, 0xbb, 0x98, 0x9c, 0x00, 0xe1, 0xe5, 0x07, 0x62, 0x3e, 0x82, 0x78, 0xd7, 0x29, 0x92, 0x5b, 0x84, 0xfb, 0x5c, 0x18, 0x6a, 0x7b, 0xac, 0x18, 0x9e, 0x6d, 0x6a, 0xb1, 0x4f, 0xd7, 0xb6, 0x2f, 0xdc, 0x63, 0x2b, 0xeb, 0xb5, 0xf7, 0x7c, 0xb5, 0xcc, 0x2f, 0x70, 0x7d, 0xf4, 0x05, 0x30, 0x99, };
17249 static const u8 ed25519_750_test_vectors_expected_sig[] = {
17250 	0x42, 0x45, 0x17, 0xaa, 0xdd, 0x85, 0x3c, 0xe3, 0x98, 0x57, 0x59, 0xa3, 0x27, 0xe7, 0x76, 0x0d, 0x91, 0x56, 0xd3, 0xb2, 0x73, 0x45, 0x38, 0x3f, 0x0e, 0x4a, 0xd6, 0x66, 0x1e, 0xe4, 0xa3, 0x72, 0x4d, 0x18, 0xd8, 0x20, 0xf6, 0xc5, 0x57, 0xf8, 0x27, 0x97, 0xbe, 0xb6, 0x2d, 0x2f, 0x08, 0x54, 0x33, 0x74, 0x4f, 0x89, 0xa2, 0xd8, 0x52, 0x93, 0x79, 0x64, 0x81, 0x86, 0x2e, 0xf8, 0xa4, 0x0f, };
17251 static const ec_test_case ed25519_750_test_case = {
17252 	.name = "EDDSA25519-SHA512/wei25519 750",
17253 	.ec_str_p = &wei25519_str_params,
17254 	.priv_key = ed25519_750_test_vectors_priv_key,
17255 	.priv_key_len = sizeof(ed25519_750_test_vectors_priv_key),
17256 	.nn_random = NULL,
17257 	.hash_type = SHA512,
17258 	.msg = (const char *)ed25519_750_test_vectors_message,
17259 	.msglen = sizeof(ed25519_750_test_vectors_message),
17260 	.sig_type = EDDSA25519,
17261 	.exp_sig = ed25519_750_test_vectors_expected_sig,
17262 	.exp_siglen = sizeof(ed25519_750_test_vectors_expected_sig),
17263 	.adata = NULL,
17264 	.adata_len = 0
17265 };
17266 
17267 /************************************************/
17268 static const u8 ed25519_751_test_vectors_priv_key[] = {
17269 	0xc8, 0x20, 0x41, 0x3c, 0x24, 0x56, 0x74, 0x71, 0x04, 0x66, 0x2e, 0xf4, 0xdf, 0xf3, 0xac, 0x23, 0x3a, 0xc4, 0xb9, 0x1a, 0x76, 0xd3, 0xc4, 0xea, 0x75, 0x44, 0x90, 0xbc, 0x9b, 0x1e, 0x29, 0x1f, };
17270 static const u8 ed25519_751_test_vectors_message[] = {
17271 	0xd2, 0x99, 0x2f, 0x83, 0x92, 0x4a, 0x59, 0x48, 0x87, 0xe6, 0xef, 0x13, 0xf2, 0xae, 0x80, 0x8f, 0xc8, 0x63, 0x9c, 0x7b, 0x2c, 0x99, 0x4f, 0xaf, 0x0f, 0x79, 0x5e, 0x36, 0x01, 0x6d, 0xab, 0x77, 0x00, 0xa0, 0xee, 0x53, 0x01, 0x70, 0xf0, 0xb9, 0xfe, 0x98, 0xab, 0x75, 0x88, 0xce, 0x03, 0xbc, 0x50, 0xc2, 0xba, 0xe6, 0x5e, 0x05, 0x26, 0x47, 0xe7, 0x56, 0x73, 0x5b, 0x35, 0xd0, 0xb5, 0x9c, 0x96, 0x4e, 0x91, 0x7d, 0x8c, 0x83, 0xe2, 0xf9, 0xfe, 0xcc, 0x4c, 0xb0, 0x55, 0x64, 0x28, 0x7f, 0x0e, 0x34, 0xc9, 0x49, 0x40, 0x05, 0xe2, 0x5b, 0x1a, 0x8b, 0x1b, 0x94, 0x2b, 0x54, 0xd8, 0x90, 0x35, 0xf1, 0xb1, 0xc3, 0xc9, 0x45, 0xfc, 0xc8, 0x4e, 0x4a, 0x39, 0xef, 0xa2, 0xca, 0x50, 0x95, 0x9b, 0x45, 0x9a, 0xf7, 0x4d, 0x21, 0xb6, 0x24, 0x2e, 0x2f, 0x56, 0x51, 0x8f, 0x70, 0xe8, 0x67, 0x92, 0x57, 0xc0, 0x89, 0xd2, 0x6c, 0x3b, 0xb7, 0x92, 0x68, 0x7c, 0x92, 0x33, 0x55, 0xb2, 0xc1, 0x8e, 0xe2, 0x13, 0x6d, 0x40, 0xcb, 0xa4, 0x5a, 0xcb, 0x64, 0x24, 0x0d, 0x96, 0x67, 0xf3, 0x9d, 0xba, 0x36, 0x39, 0xb6, 0x51, 0x6d, 0x4c, 0x49, 0x47, 0x57, 0x3e, 0xf4, 0xce, 0xd8, 0x76, 0xb5, 0xb2, 0xea, 0x34, 0x89, 0xea, 0xea, 0x53, 0x9f, 0x55, 0x7f, 0x58, 0xda, 0x20, 0x46, 0x91, 0xa7, 0x6e, 0x29, 0xc9, 0x4b, 0x8b, 0x05, 0x38, 0x23, 0x2c, 0x5f, 0x7d, 0x0b, 0xb0, 0xfd, 0xd0, 0x16, 0x91, 0x04, 0x31, 0x35, 0x4b, 0x3e, 0x1e, 0x7c, 0xe6, 0x2a, 0xd4, 0x36, 0x91, 0x7c, 0xd5, 0xc3, 0x15, 0xa5, 0xbe, 0x9b, 0x97, 0x1c, 0x80, 0xf9, 0x7b, 0xc9, 0xd5, 0xc1, 0x56, 0xff, 0xd6, 0x4f, 0xd4, 0xe3, 0x1d, 0xa5, 0x60, 0x83, 0xe0, 0x2a, 0x0c, 0x8f, 0xce, 0x55, 0x4d, 0xb6, 0x86, 0x74, 0xcb, 0x62, 0x70, 0x0b, 0xa9, 0x51, 0x75, 0x2b, 0x82, 0x9b, 0x03, 0xc5, 0x42, 0x32, 0x74, 0x12, 0xee, 0xc9, 0xcc, 0xc6, 0xa5, 0x0a, 0xdf, 0x47, 0xbb, 0xee, 0x15, 0x44, 0x66, 0x82, 0xda, 0x2f, 0xea, 0x42, 0x04, 0x89, 0x36, 0xd7, 0x63, 0x06, 0x0c, 0xd8, 0xf5, 0x39, 0x65, 0x26, 0x16, 0xdf, 0xa8, 0x08, 0xd6, 0x23, 0xff, 0x77, 0x7b, 0x41, 0x13, 0x65, 0x2e, 0x78, 0x9e, 0xc0, 0x25, 0xb8, 0x5e, 0x04, 0xef, 0xe8, 0xad, 0x4c, 0x96, 0x0b, 0x19, 0x0b, 0xf4, 0xa5, 0xa6, 0x32, 0x4d, 0x6f, 0x57, 0xc1, 0xad, 0x22, 0x01, 0x8c, 0x83, 0xcd, 0x7e, 0x7e, 0x09, 0x7f, 0xc6, 0x7b, 0x80, 0x26, 0x9c, 0x13, 0xb4, 0xdd, 0x97, 0x01, 0xca, 0x98, 0xf9, 0x87, 0x69, 0x58, 0xba, 0x76, 0x89, 0xc6, 0xf6, 0xf1, 0x0a, 0x73, 0x2a, 0x64, 0xbe, 0xf2, 0x2e, 0x8b, 0x98, 0xbd, 0x30, 0x4d, 0x5d, 0xbf, 0x4f, 0xb1, 0xf9, 0xe4, 0xca, 0x53, 0x9a, 0x5c, 0x4a, 0xa6, 0x19, 0xc4, 0x4d, 0x6f, 0x58, 0xf8, 0x24, 0xb2, 0xdb, 0xae, 0x77, 0xb7, 0xe8, 0x3b, 0x56, 0xdb, 0x5e, 0x5a, 0xa7, 0xb0, 0xae, 0x9c, 0xe1, 0xcd, 0x10, 0xa6, 0x9f, 0x04, 0xa8, 0x0f, 0x13, 0x79, 0xeb, 0x0c, 0x47, 0x4e, 0x47, 0x82, 0xdf, 0x0e, 0x3b, 0xa6, 0xa1, 0x48, 0x22, 0x6b, 0xd1, 0xa6, 0x62, 0xd9, 0x5e, 0xe2, 0xd6, 0x7c, 0x52, 0x07, 0x33, 0x3c, 0xb1, 0xd5, 0x41, 0x76, 0xd9, 0xe5, 0x06, 0x45, 0x94, 0x79, 0x02, 0x9f, 0x31, 0xdc, 0xac, 0xe2, 0x69, 0x93, 0x8f, 0x6b, 0xc5, 0x62, 0x78, 0x78, 0x41, 0xdc, 0xfe, 0x10, 0x1f, 0x4d, 0xb6, 0x0b, 0xd6, 0x60, 0x16, 0xe1, 0xee, 0xbb, 0x6b, 0xfb, 0xd9, 0xcd, 0x83, 0x04, 0x2d, 0xd1, 0x37, 0x9a, 0x46, 0x4f, 0x40, 0x5a, 0xaa, 0xe3, 0xc1, 0x18, 0x07, 0x84, 0x8c, 0xc4, 0xf9, 0x5c, 0x3c, 0xc6, 0xfa, 0x92, 0xab, 0x4e, 0xa5, 0x30, 0x58, 0x34, 0xeb, 0x86, 0xb8, 0x73, 0xfa, 0x30, 0xed, 0x1f, 0x7f, 0x47, 0x0b, 0xf6, 0x63, 0xf1, 0xa7, 0x0c, 0xf9, 0xe6, 0x0a, 0xb6, 0x80, 0xcd, 0x1d, 0xbb, 0xd0, 0x3a, 0xc0, 0x43, 0x3b, 0x3d, 0x4b, 0xb4, 0x82, 0xf8, 0xb3, 0x44, 0xd4, 0x6b, 0x3a, 0xa9, 0x34, 0xb8, 0x63, 0x3f, 0x57, 0x09, 0x0b, 0xea, 0x5f, 0xcc, 0xca, 0x64, 0x88, 0x79, 0x98, 0x35, 0xf1, 0x33, 0xf8, 0xbc, 0xf6, 0xe8, 0x87, 0xca, 0x59, 0xd1, 0x90, 0x76, 0xd6, 0xca, 0x19, 0xd4, 0xe2, 0x83, 0x49, 0x05, 0x1e, 0x01, 0x6b, 0x03, 0xe9, 0xa9, 0x20, 0xf4, 0x12, 0x0f, 0xb5, 0x23, 0xd1, 0x37, 0x1d, 0x0e, 0x38, 0x46, 0x73, 0x19, 0x54, 0x3f, 0x12, 0x7e, 0xd9, 0x14, 0xb4, 0x3a, 0xd0, 0x62, 0x22, 0x6a, 0x53, 0x65, 0x82, 0xdb, 0x72, 0x8c, 0xcd, 0x76, 0xe9, 0x83, 0xf1, 0x17, 0x66, 0xa8, 0x86, 0x3c, 0x2f, 0x42, 0x4f, 0x65, 0x50, 0x8d, 0xcb, 0x26, 0xfe, 0x0c, 0x5a, 0x80, 0x0c, 0x35, 0x09, 0x39, 0x60, 0xa1, 0x21, 0x97, 0x6e, 0x30, 0x51, 0xe2, 0xef, 0x1a, 0x2a, 0x99, 0xc1, 0x2f, 0xb7, 0xbd, 0x8b, 0xc0, 0x37, 0xa4, 0x39, 0x68, 0x68, 0x06, 0xeb, 0x72, 0x01, 0x7a, 0x07, 0x1a, 0x91, 0xb3, 0xe3, 0x9c, 0x90, 0xe8, 0x6b, 0xc3, 0x35, 0xf9, 0xbb, 0x54, 0x3b, 0x12, 0x7c, 0x98, 0x86, 0x73, 0x8c, 0xb5, 0x38, 0x06, 0xb9, 0xcb, 0x3c, 0x25, 0x94, 0xc7, 0xef, 0xfc, 0x2a, 0x59, 0x20, 0xaa, 0x83, 0x4b, 0xe6, 0x5c, 0x49, 0xf4, 0x79, 0x64, 0xe8, 0x9e, 0xec, 0x74, 0x72, 0x8d, 0xe7, 0x71, 0xf3, 0xd6, 0x75, 0xde, 0x9d, 0x1e, };
17272 static const u8 ed25519_751_test_vectors_expected_sig[] = {
17273 	0x7e, 0xf7, 0x0e, 0x4a, 0x14, 0x95, 0x4d, 0x50, 0x9f, 0x11, 0x7f, 0x4b, 0xd0, 0x1b, 0x22, 0x0b, 0xcc, 0x19, 0x2d, 0x3b, 0x5f, 0xdf, 0xc3, 0x48, 0x2f, 0xbb, 0xc3, 0xb6, 0x9d, 0xc0, 0x68, 0xa7, 0xc4, 0x76, 0x1d, 0x1b, 0xeb, 0xc2, 0x31, 0x7d, 0x6d, 0xb7, 0x4f, 0x90, 0x6a, 0x15, 0x56, 0x42, 0xb0, 0xa3, 0xc6, 0x59, 0x2b, 0xdc, 0x72, 0xe6, 0x4e, 0xac, 0x6f, 0x20, 0x3f, 0xb7, 0x4e, 0x02, };
17274 static const ec_test_case ed25519_751_test_case = {
17275 	.name = "EDDSA25519-SHA512/wei25519 751",
17276 	.ec_str_p = &wei25519_str_params,
17277 	.priv_key = ed25519_751_test_vectors_priv_key,
17278 	.priv_key_len = sizeof(ed25519_751_test_vectors_priv_key),
17279 	.nn_random = NULL,
17280 	.hash_type = SHA512,
17281 	.msg = (const char *)ed25519_751_test_vectors_message,
17282 	.msglen = sizeof(ed25519_751_test_vectors_message),
17283 	.sig_type = EDDSA25519,
17284 	.exp_sig = ed25519_751_test_vectors_expected_sig,
17285 	.exp_siglen = sizeof(ed25519_751_test_vectors_expected_sig),
17286 	.adata = NULL,
17287 	.adata_len = 0
17288 };
17289 
17290 /************************************************/
17291 static const u8 ed25519_752_test_vectors_priv_key[] = {
17292 	0x67, 0x69, 0xcc, 0x8e, 0x12, 0x56, 0x17, 0xc2, 0x2c, 0xe5, 0x72, 0x37, 0xa4, 0xfc, 0xa1, 0x50, 0x7f, 0x94, 0x12, 0x34, 0x66, 0x1d, 0xf7, 0x43, 0x28, 0xd0, 0x4a, 0xb6, 0x2e, 0xf8, 0x6c, 0x47, };
17293 static const u8 ed25519_752_test_vectors_message[] = {
17294 	0x68, 0x54, 0x89, 0x73, 0x9b, 0x98, 0x56, 0x47, 0x49, 0x58, 0x7f, 0xf1, 0xac, 0x96, 0xba, 0x68, 0x2d, 0xa3, 0x0b, 0x40, 0xa4, 0xde, 0x24, 0xf5, 0x4e, 0xc8, 0xb0, 0x83, 0xdd, 0xa4, 0x53, 0x33, 0x16, 0x21, 0x67, 0xcb, 0x3f, 0x97, 0xb2, 0xc7, 0x31, 0x4c, 0xe7, 0xa3, 0xf3, 0xf3, 0xd3, 0x19, 0xcc, 0xc3, 0x5b, 0xb6, 0xa9, 0xf0, 0x07, 0x7d, 0x56, 0x31, 0x61, 0xe2, 0x81, 0x46, 0x9c, 0xf0, 0x89, 0x68, 0xd9, 0xdc, 0xf7, 0xae, 0x5f, 0xff, 0x83, 0x0a, 0x5d, 0xb0, 0x0b, 0xc3, 0x80, 0x10, 0xe6, 0x66, 0x2d, 0x49, 0x4f, 0x3c, 0x86, 0x47, 0xc4, 0xf7, 0x0c, 0xe2, 0xd2, 0x9a, 0x9d, 0xa8, 0x46, 0x10, 0xa0, 0x80, 0xb5, 0x75, 0x9a, 0x3b, 0x58, 0x20, 0x52, 0xdf, 0xde, 0x66, 0xe4, 0xa7, 0xfa, 0x5f, 0xb2, 0x7f, 0x06, 0x50, 0x73, 0xfe, 0x72, 0x3d, 0x83, 0x70, 0x1d, 0x5b, 0xac, 0x06, 0xca, 0x43, 0xb4, 0x6d, 0x1e, 0x58, 0x09, 0x76, 0x70, 0xc1, 0x94, 0xa1, 0x3a, 0xf8, 0xb5, 0x73, 0xa3, 0x79, 0x1a, 0x96, 0x61, 0x55, 0x7c, 0xbc, 0x04, 0x27, 0x57, 0xab, 0x8a, 0xdd, 0x0e, 0xf7, 0xcf, 0x4f, 0x35, 0x43, 0x5a, 0x42, 0x12, 0x35, 0x3f, 0xcb, 0x3c, 0x20, 0x3c, 0x73, 0xdb, 0xc9, 0xd2, 0x68, 0x52, 0xd0, 0xe9, 0x17, 0x32, 0xe3, 0x62, 0x1c, 0xe8, 0x28, 0x92, 0x9c, 0xdc, 0xa4, 0xd9, 0x19, 0x20, 0x48, 0x75, 0x19, 0x22, 0xed, 0x22, 0x5e, 0xab, 0x29, 0x00, 0xcf, 0xf9, 0x71, 0xa2, 0xa2, 0xd3, 0x42, 0x46, 0x36, 0x48, 0xbb, 0xb1, 0x94, 0x43, 0x19, 0xa8, 0xef, 0x6d, 0x43, 0xdb, 0x62, 0x48, 0x0f, 0xbf, 0x1d, 0x72, 0x57, 0xd2, 0x26, 0x94, 0x53, 0x97, 0x93, 0xf2, 0x5c, 0x92, 0x79, 0x17, 0xca, 0xab, 0x25, 0xc1, 0x19, 0x3a, 0x2d, 0x2b, 0x23, 0xbb, 0x5c, 0xb8, 0x56, 0x9a, 0xef, 0xff, 0x4f, 0x0c, 0xa4, 0x23, 0xd1, 0x9b, 0xbd, 0x46, 0xfc, 0x5e, 0xf7, 0x52, 0x4f, 0xf8, 0xcb, 0x70, 0x6f, 0xfc, 0x47, 0x07, 0x65, 0x09, 0xc0, 0x5a, 0x81, 0x58, 0xaf, 0x77, 0xf9, 0x8d, 0xf6, 0xa9, 0xb5, 0xcb, 0x32, 0x44, 0xab, 0xa4, 0xb5, 0xc5, 0xf9, 0xce, 0x59, 0x7e, 0x7d, 0x29, 0xba, 0x07, 0x01, 0x3d, 0xca, 0xc1, 0x91, 0x1b, 0x6d, 0xe7, 0x11, 0x3c, 0x73, 0x6a, 0x40, 0x05, 0xc4, 0x59, 0x99, 0x29, 0x79, 0x01, 0x9a, 0x45, 0xb2, 0xdd, 0x80, 0x2a, 0x07, 0x66, 0x09, 0x09, 0xeb, 0x4c, 0xe2, 0x05, 0x40, 0x81, 0x70, 0xd8, 0x25, 0x45, 0xda, 0xcb, 0xa8, 0x68, 0x6d, 0xbd, 0xe9, 0x27, 0xdb, 0xc9, 0xc7, 0xd9, 0x62, 0x05, 0x8e, 0x9a, 0x95, 0xea, 0x66, 0xb8, 0xdf, 0xd3, 0xea, 0x43, 0x53, 0x57, 0xa9, 0x3c, 0x73, 0x94, 0x8c, 0xd3, 0x55, 0xf6, 0xac, 0x65, 0x52, 0x32, 0x3f, 0x17, 0xc2, 0xa6, 0x78, 0x66, 0x2b, 0xc0, 0xe9, 0x72, 0x6a, 0xd5, 0xa5, 0x25, 0x1d, 0xd2, 0x76, 0x47, 0x40, 0x4c, 0xbf, 0xe6, 0x1c, 0xea, 0xaf, 0xdc, 0xfc, 0x08, 0xa4, 0x75, 0xff, 0xd8, 0x7c, 0xb7, 0xf5, 0x97, 0xe5, 0x6a, 0xc1, 0x67, 0x04, 0x09, 0xdd, 0x94, 0x08, 0xae, 0x47, 0x70, 0x42, 0x0c, 0x6e, 0x5e, 0x6d, 0xd8, 0xe7, 0x48, 0xfe, 0x03, 0xa7, 0x2d, 0xc1, 0x28, 0x03, 0xd0, 0x27, 0x71, 0xd9, 0x2f, 0x47, 0xe6, 0xe7, 0x17, 0xcc, 0xc1, 0x44, 0xfc, 0x03, 0x72, 0x75, 0xb6, 0xf7, 0x45, 0xdd, 0x30, 0xda, 0x1a, 0x45, 0xd2, 0x9d, 0xb6, 0xd9, 0x07, 0x3e, 0xee, 0x50, 0x09, 0xcf, 0xd5, 0x46, 0x27, 0x33, 0x41, 0x4a, 0x49, 0x5f, 0x34, 0x9d, 0xb0, 0xb6, 0xdb, 0xf2, 0xce, 0xa9, 0xcc, 0xd5, 0x72, 0x38, 0xed, 0x5e, 0xe9, 0x1a, 0xd8, 0xbc, 0x86, 0x17, 0x9a, 0xd5, 0x69, 0x5a, 0x85, 0xa5, 0x04, 0x84, 0xe6, 0x17, 0x75, 0x1d, 0xe5, 0xef, 0x7a, 0x7d, 0x8a, 0x8d, 0xb9, 0x50, 0xa9, 0x8a, 0x6b, 0x7f, 0x7d, 0xee, 0x9d, 0x42, 0xa5, 0xdf, 0x69, 0x2f, 0xcc, 0xf5, 0x55, 0xc9, 0x40, 0xdc, 0x39, 0xcf, 0x2e, 0xac, 0x48, 0xcb, 0x9d, 0x15, 0xcd, 0xa1, 0x4d, 0xd2, 0xa7, 0xec, 0xc0, 0xb7, 0x6e, 0xbe, 0xc6, 0x8a, 0xd4, 0x17, 0x7d, 0x11, 0x17, 0xe0, 0x77, 0x66, 0xc4, 0x85, 0x90, 0xd4, 0x3c, 0xa7, 0x66, 0x28, 0x68, 0xeb, 0x97, 0x90, 0xac, 0x29, 0xf4, 0xf2, 0x39, 0x2b, 0x9a, 0x93, 0xf8, 0x97, 0x59, 0xe7, 0xba, 0x54, 0x6b, 0x92, 0x5b, 0xd8, 0x6f, 0x80, 0x7d, 0x8d, 0x16, 0xc7, 0xe6, 0x37, 0xdc, 0xc6, 0x66, 0xe9, 0x05, 0x90, 0xbf, 0x43, 0x0d, 0x98, 0x6a, 0x67, 0xf1, 0xb0, 0xc7, 0xc2, 0xc9, 0x49, 0x30, 0x84, 0x58, 0x69, 0xed, 0x8d, 0x8a, 0xdd, 0xe1, 0x8f, 0xc1, 0x88, 0x74, 0x56, 0x88, 0x1b, 0x4b, 0x26, 0xb5, 0x3d, 0xcb, 0xa7, 0xa5, 0x26, 0xf0, 0xec, 0xa1, 0x4e, 0x8b, 0xb6, 0x89, 0xd6, 0x6f, 0x0a, 0xa1, 0xb2, 0x53, 0xc3, 0xdc, 0xfc, 0xf5, 0x95, 0x40, 0xd5, 0xd2, 0xf5, 0xad, 0x61, 0x7f, 0x52, 0xc3, 0x09, 0x38, 0xa5, 0xa9, 0x2e, 0xa3, 0x85, 0x07, 0x7d, 0x75, 0xaa, 0x4a, 0xc0, 0x7a, 0xfc, 0x2b, 0x35, 0xfb, 0x8c, 0x1d, 0x5e, 0x78, 0xeb, 0x29, 0x5f, 0xc2, 0x0f, 0xe3, 0x7c, 0x41, 0xac, 0x06, 0x95, 0x9d, 0x3a, 0x17, 0x97, 0x84, 0x3a, 0xd7, 0x05, 0x6c, 0x1b, 0x41, 0x2d, 0xd0, 0xb4, 0x80, 0xaa, 0x3b, 0x39, 0xbc, 0xc2, 0x05, 0x87, 0xd9, 0xa0, 0xfe, 0xf9, 0x2c, 0x6c, 0x95, 0x0e, 0xbc, 0x5b, 0xb8, 0xe1, 0x42, };
17295 static const u8 ed25519_752_test_vectors_expected_sig[] = {
17296 	0xd3, 0x9d, 0x85, 0x3d, 0x2c, 0x2c, 0x5d, 0x21, 0xb5, 0x87, 0x1e, 0xa5, 0xa7, 0x5c, 0x04, 0x10, 0x48, 0xd9, 0x3a, 0x47, 0xdc, 0x59, 0x9a, 0x5f, 0xdd, 0xc0, 0x85, 0x62, 0x85, 0xce, 0x63, 0x6f, 0xcd, 0xfd, 0x85, 0x64, 0x08, 0x3d, 0x06, 0xff, 0x28, 0x4a, 0x52, 0x4b, 0xc6, 0x33, 0xcf, 0xdf, 0xc3, 0xb0, 0x37, 0x16, 0x3d, 0x67, 0x4c, 0xb9, 0xbb, 0x5b, 0xa3, 0xbc, 0x25, 0xbe, 0xd0, 0x0e, };
17297 static const ec_test_case ed25519_752_test_case = {
17298 	.name = "EDDSA25519-SHA512/wei25519 752",
17299 	.ec_str_p = &wei25519_str_params,
17300 	.priv_key = ed25519_752_test_vectors_priv_key,
17301 	.priv_key_len = sizeof(ed25519_752_test_vectors_priv_key),
17302 	.nn_random = NULL,
17303 	.hash_type = SHA512,
17304 	.msg = (const char *)ed25519_752_test_vectors_message,
17305 	.msglen = sizeof(ed25519_752_test_vectors_message),
17306 	.sig_type = EDDSA25519,
17307 	.exp_sig = ed25519_752_test_vectors_expected_sig,
17308 	.exp_siglen = sizeof(ed25519_752_test_vectors_expected_sig),
17309 	.adata = NULL,
17310 	.adata_len = 0
17311 };
17312 
17313 /************************************************/
17314 static const u8 ed25519_753_test_vectors_priv_key[] = {
17315 	0x1d, 0xf7, 0xac, 0xfb, 0x96, 0x33, 0x04, 0xe5, 0x1e, 0xc4, 0x71, 0xca, 0xf1, 0x81, 0x10, 0x25, 0x56, 0x78, 0x3c, 0xb7, 0xd9, 0x1e, 0xad, 0x30, 0xbd, 0xc2, 0x53, 0x4d, 0x07, 0x8a, 0x14, 0x88, };
17316 static const u8 ed25519_753_test_vectors_message[] = {
17317 	0xb0, 0xc3, 0xee, 0xb5, 0x7f, 0x14, 0x60, 0x6a, 0xb7, 0xab, 0xea, 0xb2, 0xee, 0x05, 0x73, 0x84, 0x3c, 0xa2, 0x2e, 0x6d, 0xb2, 0xfd, 0xf2, 0xc9, 0x06, 0x4c, 0xea, 0x51, 0x98, 0xdc, 0x58, 0x30, 0xeb, 0x15, 0x8d, 0xa8, 0xe2, 0xda, 0xa8, 0x88, 0x57, 0xaf, 0x8b, 0x8e, 0xef, 0xcc, 0xf0, 0xc2, 0x6c, 0x3e, 0xc0, 0xf3, 0x30, 0xe9, 0x2c, 0xff, 0x06, 0xbc, 0x05, 0xa2, 0x9b, 0xfc, 0x99, 0xf9, 0x40, 0xb6, 0x1f, 0x3c, 0xfb, 0x29, 0x64, 0xb3, 0x37, 0x09, 0x7a, 0x65, 0x50, 0xa3, 0xe9, 0xa3, 0x28, 0xc8, 0x5b, 0xe6, 0xf1, 0x60, 0xd2, 0xc0, 0xa5, 0x7f, 0xf6, 0xf1, 0xb3, 0xc5, 0xff, 0xcc, 0xa8, 0x90, 0x89, 0x42, 0x5a, 0xb6, 0xbe, 0x01, 0x72, 0xe1, 0x75, 0xba, 0xf4, 0x0c, 0xf1, 0x2b, 0x24, 0xa8, 0x15, 0xf7, 0x0f, 0x29, 0xa3, 0xa4, 0xcd, 0x0a, 0x6a, 0x13, 0x2f, 0x12, 0x00, 0x97, 0x75, 0x2f, 0x4b, 0xc7, 0x43, 0xed, 0xe0, 0x8f, 0x5f, 0x21, 0xd4, 0x2f, 0x28, 0x2f, 0x76, 0x71, 0xf7, 0x78, 0x3e, 0x27, 0xb2, 0xa8, 0xe2, 0xc1, 0x46, 0x92, 0xf1, 0xe0, 0xe5, 0xde, 0x82, 0x85, 0x5d, 0xab, 0xf9, 0x8a, 0x1a, 0x63, 0x97, 0x60, 0x06, 0xff, 0xbf, 0xe5, 0xf5, 0xa5, 0x79, 0xb4, 0x60, 0xe2, 0x6d, 0x06, 0xbd, 0x54, 0x28, 0x42, 0xa5, 0xf9, 0x26, 0x1b, 0xbf, 0x26, 0x04, 0x51, 0xd2, 0x32, 0x1c, 0x50, 0x89, 0x32, 0x01, 0x3c, 0xc6, 0xe9, 0x04, 0xf7, 0x9b, 0x5e, 0x46, 0x86, 0xd0, 0x33, 0xe1, 0x2c, 0x7b, 0xbd, 0x7e, 0xb1, 0xc9, 0x23, 0x79, 0xc5, 0xec, 0x34, 0x1b, 0xf6, 0x45, 0x7a, 0x3f, 0x17, 0x26, 0x4a, 0x7c, 0x27, 0x8b, 0x27, 0x50, 0x1e, 0xca, 0xed, 0xc3, 0x61, 0xeb, 0xa8, 0x44, 0x44, 0x23, 0x42, 0xb4, 0xb1, 0x0f, 0xa9, 0x4d, 0x26, 0x58, 0x65, 0x11, 0x6a, 0xcf, 0x43, 0xfc, 0xbe, 0xc9, 0x65, 0xd2, 0xab, 0x4b, 0xbb, 0xe6, 0x14, 0xc4, 0xf9, 0x0a, 0xb6, 0xb3, 0xe0, 0xd5, 0x38, 0x3f, 0xa0, 0x49, 0x88, 0xbf, 0xbb, 0x26, 0x03, 0x07, 0xdd, 0xe2, 0x2d, 0x84, 0x09, 0x8b, 0x63, 0x31, 0xd1, 0x55, 0x14, 0x1a, 0x92, 0x7b, 0xb7, 0x8d, 0x66, 0x4b, 0x34, 0x1d, 0x2f, 0x2a, 0x93, 0xe2, 0x91, 0xcf, 0x79, 0xba, 0xae, 0xcd, 0x26, 0x12, 0xf6, 0xb1, 0x04, 0xf3, 0xfc, 0x81, 0x37, 0x3a, 0x7c, 0x6a, 0x04, 0x5b, 0x59, 0x24, 0xbf, 0x95, 0x0c, 0xd5, 0x42, 0xf7, 0xb7, 0xac, 0xce, 0xf3, 0xaa, 0x7d, 0x72, 0x5d, 0xe0, 0x53, 0x05, 0x5d, 0x95, 0x1b, 0xd7, 0x68, 0x11, 0x13, 0x92, 0x59, 0x66, 0x38, 0xae, 0x09, 0x71, 0x70, 0xf4, 0x49, 0x2b, 0xa5, 0x0a, 0x46, 0x8f, 0x8e, 0x34, 0x77, 0x63, 0xdb, 0x61, 0x2d, 0x3c, 0x7d, 0xe7, 0xe5, 0x64, 0x59, 0xb2, 0x6e, 0xe0, 0x29, 0xc6, 0x30, 0x82, 0x7a, 0x35, 0x3a, 0xee, 0x73, 0xde, 0x68, 0xd6, 0xd7, 0x2b, 0x27, 0xaf, 0xd7, 0x5d, 0x22, 0x16, 0x45, 0x27, 0x94, 0x5c, 0x72, 0x26, 0x84, 0x4f, 0xab, 0x15, 0xb8, 0xdc, 0xc9, 0x14, 0x34, 0x9e, 0x31, 0x41, 0xc6, 0x13, 0x16, 0xad, 0xc8, 0x94, 0xde, 0xdc, 0xdc, 0x84, 0x39, 0x84, 0xd9, 0xc7, 0xfe, 0xae, 0x39, 0xdb, 0x33, 0x2d, 0xc3, 0x93, 0xe9, 0xe8, 0x96, 0x1b, 0xbd, 0xe0, 0x71, 0xc3, 0xd2, 0x85, 0x8b, 0x3c, 0xb5, 0xf3, 0x3b, 0x16, 0x4a, 0x15, 0x61, 0x6c, 0x6f, 0xe1, 0xbb, 0xc2, 0x4a, 0x35, 0xf2, 0x13, 0x36, 0xd2, 0x61, 0xc5, 0xd8, 0xcf, 0x75, 0x9e, 0x27, 0xe2, 0x2c, 0x91, 0x01, 0xc4, 0xae, 0xbd, 0xe3, 0xe1, 0x26, 0xcf, 0x64, 0x6c, 0xa7, 0xb2, 0xe0, 0x31, 0x28, 0x09, 0x5c, 0x59, 0x76, 0xbf, 0x3f, 0x6e, 0x49, 0x1a, 0xf0, 0xf0, 0xb6, 0x40, 0xc7, 0x31, 0x09, 0x66, 0xac, 0x59, 0xc5, 0x9f, 0xbc, 0x5b, 0xfe, 0x05, 0x48, 0xf8, 0x8e, 0xe6, 0x1a, 0xd9, 0xec, 0x40, 0xc1, 0xc0, 0x6d, 0xd2, 0x9d, 0x79, 0x4c, 0x44, 0xa3, 0xea, 0x22, 0xc3, 0xd4, 0x76, 0x26, 0x22, 0xec, 0x1e, 0x8b, 0x33, 0x3e, 0x45, 0x07, 0x4d, 0xb9, 0x37, 0x41, 0xfd, 0xa1, 0x93, 0xc9, 0x11, 0xf6, 0xdb, 0x58, 0x79, 0xe5, 0x5e, 0xe3, 0x6e, 0xf6, 0x02, 0x61, 0x4a, 0xe6, 0x4a, 0x5c, 0xde, 0x9d, 0x83, 0x06, 0xd2, 0x2f, 0xbc, 0x4a, 0xe9, 0xc8, 0x81, 0xa5, 0x94, 0xbd, 0xe6, 0x79, 0x61, 0x25, 0xfc, 0xb6, 0x28, 0xb9, 0xf3, 0xb6, 0xfb, 0x3f, 0xfd, 0x51, 0x1b, 0x35, 0x3f, 0x14, 0x6a, 0x27, 0x27, 0x2a, 0xfd, 0x3e, 0x5d, 0x28, 0xb7, 0x7f, 0x58, 0xa6, 0x7f, 0x1f, 0xd2, 0x72, 0x85, 0xc2, 0x5e, 0xcc, 0x1c, 0xcf, 0x64, 0xe3, 0x8d, 0x21, 0xf3, 0xb9, 0xff, 0x22, 0xe0, 0x0e, 0xe9, 0x00, 0x62, 0x9e, 0xf1, 0xa6, 0x3e, 0x71, 0x3f, 0x25, 0x88, 0x83, 0xdd, 0x91, 0x1f, 0x30, 0xc0, 0xd3, 0x98, 0xb7, 0x4b, 0xd7, 0x97, 0x14, 0x9b, 0xe5, 0xe2, 0x69, 0x67, 0x22, 0xda, 0x09, 0xd5, 0x2d, 0x4e, 0xbf, 0x3c, 0x67, 0x39, 0x29, 0xd2, 0x98, 0xaa, 0xc3, 0x4c, 0xe0, 0x5b, 0xea, 0x08, 0xea, 0x9a, 0x42, 0x4e, 0x93, 0x45, 0x9c, 0x2e, 0xb8, 0xfc, 0x22, 0x22, 0xc3, 0x1c, 0xc1, 0x3d, 0x80, 0x3b, 0x90, 0xa8, 0xa7, 0x0b, 0xcd, 0x0a, 0x30, 0xc2, 0x09, 0x21, 0x1d, 0xc2, 0xcc, 0xc8, 0x5b, 0x0b, 0xcd, 0x45, 0x82, 0xc6, 0x95, 0xf5, 0x8d, 0x80, 0xbf, 0x6e, 0xc4, 0x71, 0xa2, 0x50, 0x5f, 0x68, 0x84, 0x7a, 0x75, 0xf6, 0xe9, 0x11, 0xfd, 0x87, };
17318 static const u8 ed25519_753_test_vectors_expected_sig[] = {
17319 	0xb1, 0x81, 0x93, 0x8d, 0xe1, 0x01, 0x42, 0xf3, 0x24, 0x07, 0xb4, 0xe7, 0x86, 0xcd, 0xdd, 0xe9, 0x32, 0xeb, 0x11, 0xdb, 0xc0, 0xbf, 0x0e, 0x5a, 0xc5, 0x09, 0xfa, 0xe7, 0xa5, 0xbc, 0xc3, 0x29, 0x61, 0xfe, 0x34, 0x48, 0xf9, 0x12, 0xc8, 0x50, 0x0f, 0xc6, 0xdb, 0x4e, 0x1d, 0x32, 0x62, 0xa8, 0x3c, 0x9d, 0xbe, 0x76, 0x9b, 0xb8, 0xc3, 0xa7, 0x61, 0x00, 0x0f, 0xe3, 0x6c, 0x0d, 0x71, 0x04, };
17320 static const ec_test_case ed25519_753_test_case = {
17321 	.name = "EDDSA25519-SHA512/wei25519 753",
17322 	.ec_str_p = &wei25519_str_params,
17323 	.priv_key = ed25519_753_test_vectors_priv_key,
17324 	.priv_key_len = sizeof(ed25519_753_test_vectors_priv_key),
17325 	.nn_random = NULL,
17326 	.hash_type = SHA512,
17327 	.msg = (const char *)ed25519_753_test_vectors_message,
17328 	.msglen = sizeof(ed25519_753_test_vectors_message),
17329 	.sig_type = EDDSA25519,
17330 	.exp_sig = ed25519_753_test_vectors_expected_sig,
17331 	.exp_siglen = sizeof(ed25519_753_test_vectors_expected_sig),
17332 	.adata = NULL,
17333 	.adata_len = 0
17334 };
17335 
17336 /************************************************/
17337 static const u8 ed25519_754_test_vectors_priv_key[] = {
17338 	0x7e, 0xd8, 0x7c, 0x36, 0xdf, 0xdb, 0xae, 0x60, 0xc9, 0x40, 0xa3, 0xb3, 0x25, 0xc1, 0x9f, 0xde, 0xd8, 0x14, 0xd7, 0x6a, 0x54, 0x48, 0x20, 0xa3, 0x2f, 0x28, 0x6a, 0x5c, 0x0a, 0xd7, 0x1d, 0x72, };
17339 static const u8 ed25519_754_test_vectors_message[] = {
17340 	0x62, 0xd3, 0x13, 0x91, 0x2a, 0xbb, 0xb0, 0x06, 0xb7, 0x77, 0x4a, 0x67, 0x37, 0x71, 0x4a, 0x34, 0x99, 0x70, 0xce, 0x04, 0x21, 0x11, 0x2f, 0x40, 0x04, 0x63, 0xd3, 0xdb, 0x0e, 0x2f, 0x7f, 0x12, 0x8d, 0x7b, 0x96, 0x93, 0x9f, 0x43, 0xc1, 0xe7, 0x10, 0x7b, 0x51, 0x18, 0xa7, 0x7c, 0x11, 0x96, 0x83, 0xd8, 0x66, 0xb7, 0xe3, 0xd7, 0x2a, 0xc2, 0x1f, 0x6b, 0x42, 0x72, 0xb4, 0xbe, 0x92, 0x89, 0xb6, 0x55, 0x6f, 0xe3, 0x1b, 0x60, 0x51, 0xa0, 0xb4, 0x2e, 0xd5, 0xea, 0x0c, 0xf3, 0x47, 0x69, 0x6d, 0x30, 0xfb, 0x8b, 0xff, 0x6b, 0x8b, 0x57, 0x27, 0x19, 0xde, 0x19, 0xa2, 0x31, 0xcc, 0x85, 0x45, 0x9a, 0x99, 0x0c, 0x37, 0x80, 0x1f, 0x08, 0x37, 0x18, 0x6c, 0xef, 0xbb, 0x55, 0x21, 0x56, 0x96, 0x66, 0x96, 0x7c, 0xd4, 0x24, 0x3d, 0x73, 0x07, 0xf1, 0xb0, 0xb2, 0x4c, 0x8e, 0x2b, 0x9b, 0x69, 0x23, 0x17, 0x30, 0x4f, 0xbe, 0x3d, 0xd0, 0xa2, 0x63, 0x65, 0x01, 0x91, 0xb3, 0x52, 0x16, 0xf5, 0x29, 0x16, 0x57, 0x3a, 0xf9, 0x05, 0x24, 0xf9, 0x1d, 0xb1, 0xa9, 0x24, 0x71, 0xd7, 0x58, 0xc9, 0x2d, 0xc6, 0xd1, 0x4d, 0x1a, 0x4b, 0x26, 0xf4, 0x1b, 0x40, 0x40, 0x3c, 0xa8, 0x7d, 0xcf, 0xab, 0xdc, 0xa4, 0x7b, 0x9f, 0xc2, 0x53, 0x35, 0x78, 0xf1, 0x61, 0xf3, 0xb0, 0x19, 0x9b, 0x5c, 0x69, 0x8e, 0x08, 0x07, 0x04, 0xb2, 0x1c, 0x9e, 0x61, 0x52, 0x69, 0xfc, 0xd0, 0xd4, 0x04, 0x39, 0xed, 0x8b, 0xc3, 0xbd, 0xfb, 0xc9, 0xaf, 0xb4, 0x4c, 0x11, 0xfa, 0x89, 0x27, 0x5f, 0x0e, 0xaa, 0xa5, 0xd0, 0x8f, 0xa9, 0x59, 0xd6, 0x37, 0x8d, 0x0d, 0xb8, 0x99, 0x10, 0xd4, 0x8f, 0x2d, 0x86, 0xa1, 0xeb, 0xfc, 0x5c, 0xbf, 0x10, 0xeb, 0x2d, 0x5a, 0xad, 0xf5, 0x1b, 0xbd, 0x83, 0x44, 0xff, 0x8b, 0xbb, 0x5b, 0x8a, 0xfe, 0x05, 0xa4, 0x50, 0x11, 0xb5, 0xe4, 0xb7, 0x2e, 0xb8, 0x64, 0xad, 0x26, 0x3e, 0x8a, 0x03, 0xa6, 0xc7, 0xf9, 0x8a, 0xee, 0xb3, 0x54, 0xf7, 0x30, 0xa3, 0x18, 0xaa, 0x30, 0xfb, 0x56, 0xd3, 0x3d, 0x80, 0x74, 0x8c, 0x98, 0xeb, 0xec, 0x15, 0x87, 0x8c, 0xcf, 0x3c, 0xe8, 0x22, 0xf6, 0x9d, 0x34, 0x56, 0x84, 0x3c, 0x40, 0x0d, 0xc5, 0x6b, 0x48, 0x1a, 0x95, 0xe6, 0x88, 0xb8, 0xa4, 0x73, 0x5b, 0xf3, 0x84, 0x3f, 0x58, 0x33, 0xdd, 0xa0, 0xef, 0xe0, 0x9e, 0x71, 0x75, 0xb5, 0x67, 0xc6, 0x61, 0x38, 0x7a, 0xfd, 0x2e, 0xbc, 0x07, 0x9a, 0x48, 0xe3, 0x49, 0x67, 0xec, 0x97, 0xb9, 0x27, 0xdf, 0xa5, 0x81, 0x88, 0x8f, 0x23, 0x1a, 0x98, 0xa7, 0xed, 0x33, 0x10, 0x3b, 0xfa, 0x8e, 0x8f, 0x9b, 0xa6, 0x51, 0x35, 0x27, 0x90, 0x0b, 0x39, 0xb8, 0x62, 0x31, 0xda, 0x79, 0x11, 0xa2, 0xfc, 0x93, 0x58, 0x88, 0xa7, 0x5f, 0x11, 0x29, 0x58, 0x4a, 0xff, 0xf2, 0x02, 0x52, 0x49, 0xc4, 0x18, 0x8f, 0x09, 0x05, 0x2f, 0x85, 0x68, 0x77, 0x06, 0xd0, 0x5e, 0x29, 0x91, 0x44, 0xd4, 0x0d, 0xe8, 0x89, 0x8b, 0x7c, 0x8b, 0x2d, 0xfe, 0xf0, 0xc3, 0x70, 0x85, 0x73, 0xd8, 0xb0, 0x56, 0x3a, 0x6b, 0xd0, 0xa5, 0x04, 0xc0, 0xb6, 0x74, 0x57, 0x02, 0xb1, 0xb5, 0x71, 0x21, 0xc6, 0xf0, 0x40, 0xaf, 0xf2, 0x71, 0x98, 0x94, 0x8b, 0xa6, 0x9c, 0x21, 0x25, 0x3a, 0x28, 0xd3, 0x9e, 0xba, 0x72, 0x62, 0x19, 0xbe, 0xda, 0x1f, 0x82, 0x09, 0xfb, 0x83, 0xe9, 0xad, 0xb0, 0x7a, 0xd4, 0x09, 0xfb, 0xd6, 0xd2, 0x55, 0x65, 0x88, 0x9a, 0xb4, 0x51, 0x23, 0xf9, 0xd9, 0x45, 0xec, 0xd7, 0xd9, 0xca, 0x70, 0x28, 0xec, 0xe0, 0x92, 0xe3, 0x5f, 0xbb, 0x7c, 0xb3, 0xf3, 0x28, 0x12, 0x6e, 0xfd, 0xda, 0xc5, 0xd8, 0x59, 0xf2, 0xb2, 0xc6, 0xeb, 0x09, 0x01, 0x33, 0x69, 0x0e, 0x20, 0xc1, 0x7d, 0xea, 0xf3, 0x88, 0x26, 0x85, 0xf0, 0x7e, 0x9e, 0xd2, 0x65, 0x3b, 0x80, 0x3b, 0x9b, 0x38, 0x3b, 0x70, 0x74, 0x8a, 0x1f, 0xa9, 0x2c, 0x86, 0xf8, 0x6d, 0x6c, 0x47, 0xea, 0x87, 0xb1, 0x0b, 0x12, 0xe3, 0x63, 0xba, 0x50, 0x80, 0x60, 0xf4, 0x7c, 0xe2, 0xa2, 0xf3, 0xb6, 0xa3, 0xee, 0xfc, 0xd4, 0xda, 0xcf, 0xc7, 0x1c, 0x41, 0xf4, 0x36, 0xfe, 0x0c, 0x2b, 0xc3, 0x4d, 0x4b, 0xaa, 0xd4, 0x95, 0x74, 0xe7, 0x44, 0x3c, 0x12, 0x6a, 0x58, 0x9f, 0x6e, 0xf7, 0xbc, 0xa4, 0x49, 0x54, 0xf0, 0xbb, 0x28, 0xec, 0x71, 0x51, 0xb0, 0x51, 0x1c, 0x23, 0xc6, 0xbc, 0x42, 0xd5, 0xe8, 0x59, 0x83, 0xec, 0x16, 0xbb, 0x5f, 0x50, 0xa3, 0x82, 0xd6, 0x88, 0x15, 0x0a, 0x49, 0x60, 0x9c, 0xbd, 0xe5, 0x69, 0x8e, 0x86, 0xdc, 0xbf, 0x02, 0x12, 0xc2, 0x29, 0x22, 0x99, 0xdc, 0x4d, 0xcf, 0x87, 0x42, 0x9f, 0x6c, 0xd2, 0xee, 0xc8, 0x09, 0x48, 0xce, 0x86, 0x7e, 0x25, 0xc9, 0x45, 0x84, 0xcd, 0xc6, 0x4b, 0x09, 0x90, 0x29, 0xeb, 0x85, 0x4e, 0xdc, 0x26, 0xea, 0x21, 0x42, 0x1e, 0xff, 0x48, 0xcf, 0x4e, 0x41, 0xf4, 0x9e, 0x2d, 0x89, 0x47, 0x8d, 0xef, 0x06, 0xc4, 0x2b, 0xea, 0x22, 0x0a, 0x13, 0x3e, 0x50, 0xf5, 0xc7, 0x44, 0x64, 0xc7, 0xe7, 0x3f, 0xb1, 0xc1, 0xa7, 0x7c, 0x50, 0x7c, 0xf6, 0xcd, 0xa8, 0x5b, 0xe4, 0x02, 0xb7, 0xe6, 0xd6, 0xd2, 0x1e, 0x81, 0x0d, 0x6d, 0x0b, 0x59, 0x72, 0xb9, 0xfe, 0x77, 0xe5, 0x4e, 0x74, 0xae, 0xe1, 0xf3, 0xbb, 0xfd, 0x6e, 0x7d, 0xe6, 0xb5, 0xc0, };
17341 static const u8 ed25519_754_test_vectors_expected_sig[] = {
17342 	0x57, 0x9b, 0x38, 0x12, 0x4b, 0xd0, 0x59, 0x1a, 0x59, 0x7c, 0xc9, 0xa3, 0x89, 0x12, 0x7c, 0xea, 0xf5, 0x51, 0x56, 0x07, 0x73, 0x63, 0xed, 0xb8, 0x11, 0xd0, 0xb6, 0x55, 0x52, 0xac, 0xfc, 0xc6, 0x77, 0xb2, 0x72, 0x94, 0x21, 0x99, 0xca, 0x25, 0xab, 0x79, 0x0d, 0xe6, 0xe0, 0x84, 0x60, 0x3a, 0xd1, 0x05, 0x2e, 0xc2, 0x10, 0xcf, 0x6f, 0xcb, 0x14, 0x17, 0x28, 0x90, 0x67, 0xce, 0x3c, 0x08, };
17343 static const ec_test_case ed25519_754_test_case = {
17344 	.name = "EDDSA25519-SHA512/wei25519 754",
17345 	.ec_str_p = &wei25519_str_params,
17346 	.priv_key = ed25519_754_test_vectors_priv_key,
17347 	.priv_key_len = sizeof(ed25519_754_test_vectors_priv_key),
17348 	.nn_random = NULL,
17349 	.hash_type = SHA512,
17350 	.msg = (const char *)ed25519_754_test_vectors_message,
17351 	.msglen = sizeof(ed25519_754_test_vectors_message),
17352 	.sig_type = EDDSA25519,
17353 	.exp_sig = ed25519_754_test_vectors_expected_sig,
17354 	.exp_siglen = sizeof(ed25519_754_test_vectors_expected_sig),
17355 	.adata = NULL,
17356 	.adata_len = 0
17357 };
17358 
17359 /************************************************/
17360 static const u8 ed25519_755_test_vectors_priv_key[] = {
17361 	0x6a, 0x29, 0xf8, 0x1b, 0x8d, 0x9a, 0xa4, 0x8a, 0x1b, 0x23, 0x36, 0x4e, 0xac, 0x8f, 0x6a, 0x4b, 0xdd, 0x60, 0x7a, 0x84, 0xcf, 0xe8, 0xe8, 0x8d, 0x90, 0x17, 0x5d, 0x80, 0x64, 0x3a, 0x58, 0xa8, };
17362 static const u8 ed25519_755_test_vectors_message[] = {
17363 	0x78, 0x76, 0xa3, 0xf4, 0xeb, 0x69, 0xbb, 0x7e, 0x54, 0xe9, 0xff, 0x95, 0x4e, 0xbd, 0x3b, 0x10, 0xb9, 0x3a, 0x4c, 0x1a, 0xfe, 0xae, 0x92, 0xfa, 0x03, 0xc1, 0x03, 0xcb, 0x63, 0x13, 0xa2, 0x01, 0xc5, 0xb3, 0x3a, 0x9a, 0x72, 0x23, 0x75, 0x5c, 0xb5, 0x10, 0xe2, 0x5e, 0xc5, 0x82, 0xb5, 0x4e, 0x81, 0xb8, 0x49, 0x56, 0xf6, 0xc5, 0x3f, 0x1f, 0x08, 0xa6, 0x3b, 0xf0, 0xc4, 0xa2, 0x61, 0xaf, 0x45, 0x0e, 0x52, 0x3f, 0xe8, 0xf6, 0x1d, 0xdb, 0x3c, 0x0e, 0xea, 0xb8, 0x75, 0x10, 0x72, 0x68, 0x88, 0x01, 0xb2, 0xa4, 0x73, 0xb7, 0x1a, 0x2e, 0x38, 0x70, 0x8d, 0xa6, 0x8c, 0x2f, 0x37, 0x92, 0x5c, 0xb0, 0x5a, 0x20, 0xc4, 0x28, 0x3b, 0x3a, 0xf9, 0x7b, 0x6f, 0x0b, 0xa6, 0x5a, 0x54, 0x03, 0x55, 0x43, 0x75, 0xe2, 0x15, 0xd9, 0xe3, 0xaa, 0x1b, 0x0f, 0x9f, 0xdb, 0x0f, 0x84, 0x99, 0x23, 0xed, 0xbd, 0xaa, 0x0a, 0xb4, 0x81, 0xc5, 0x45, 0xa5, 0xdf, 0x8f, 0x51, 0xd1, 0xf6, 0x8b, 0x22, 0x35, 0x07, 0xea, 0x0e, 0xcc, 0xfa, 0xeb, 0xb5, 0xfc, 0xcf, 0x5e, 0x3d, 0xfa, 0x65, 0xa4, 0x4e, 0xea, 0x50, 0x45, 0x68, 0xa8, 0x81, 0x80, 0xa0, 0x60, 0xbb, 0x06, 0xc5, 0x15, 0x57, 0xb8, 0x1e, 0x66, 0x7b, 0x4b, 0x04, 0xe3, 0x21, 0x0f, 0xa4, 0xc3, 0x79, 0x87, 0x6c, 0x49, 0xf3, 0xe5, 0x6b, 0xf2, 0xbe, 0x1c, 0xf5, 0x19, 0xa7, 0x41, 0x83, 0x93, 0xd2, 0x40, 0xdc, 0x8a, 0x22, 0x4c, 0x6c, 0x38, 0xac, 0x2a, 0xb9, 0xd8, 0xfa, 0xdf, 0xc5, 0x36, 0x20, 0x30, 0xc7, 0x93, 0x0c, 0x3c, 0xe7, 0x79, 0x5b, 0x14, 0x7c, 0x26, 0xc8, 0xa2, 0x8c, 0x65, 0x34, 0x29, 0xd9, 0x0a, 0x17, 0x3a, 0x86, 0xa8, 0xb1, 0x8a, 0x00, 0x9e, 0x62, 0xae, 0xf6, 0xec, 0xa9, 0x5d, 0x39, 0xbd, 0xbe, 0x45, 0x64, 0x77, 0x78, 0xa2, 0x53, 0x2a, 0x41, 0x5a, 0xe1, 0x9b, 0xad, 0x23, 0x11, 0x29, 0x12, 0x78, 0x42, 0xfe, 0x1d, 0x0f, 0x11, 0xfa, 0xb4, 0xa1, 0xcf, 0x0b, 0x17, 0xe4, 0x98, 0xcd, 0x59, 0x52, 0xc9, 0x39, 0xe0, 0x90, 0x09, 0x02, 0x87, 0xb1, 0x44, 0x89, 0x5d, 0xff, 0x00, 0xce, 0xc8, 0xd6, 0xae, 0xda, 0xf6, 0x24, 0x81, 0xa4, 0x17, 0x83, 0xe0, 0x21, 0x08, 0x2c, 0xe3, 0x52, 0x06, 0x3e, 0x62, 0x81, 0x1f, 0xd9, 0x99, 0x90, 0x10, 0x4d, 0x8a, 0x46, 0xcd, 0xca, 0xee, 0x2b, 0xab, 0x45, 0x8e, 0x52, 0x47, 0xfb, 0x02, 0x3e, 0x92, 0x33, 0x30, 0xa4, 0x28, 0xc7, 0xbc, 0xfd, 0x20, 0xb0, 0x8f, 0x52, 0x0e, 0x89, 0x46, 0xdd, 0x65, 0x83, 0x47, 0x35, 0x2a, 0xe0, 0xc4, 0xbe, 0x73, 0xc3, 0xd5, 0xec, 0xcd, 0x11, 0x14, 0x9f, 0x3a, 0xb7, 0xb8, 0x05, 0x2c, 0xfd, 0x95, 0xc3, 0x5d, 0x41, 0x64, 0x54, 0x6f, 0x5d, 0x8f, 0x37, 0x75, 0x17, 0xa7, 0xf4, 0x32, 0xc0, 0xd5, 0x56, 0x3a, 0x7b, 0xcc, 0x7b, 0xd1, 0x19, 0xd3, 0x42, 0x1d, 0xfe, 0xba, 0xae, 0x84, 0x45, 0x99, 0xb2, 0x9b, 0x38, 0x3b, 0xb8, 0xd5, 0xdb, 0xf1, 0x40, 0xd9, 0xbd, 0x47, 0xa0, 0x78, 0xb7, 0xae, 0x7c, 0x6a, 0xa8, 0x7b, 0x1e, 0x29, 0x23, 0x6c, 0x9f, 0xcf, 0xd6, 0x54, 0xb7, 0xf8, 0x09, 0x79, 0x4c, 0xcc, 0xb2, 0x61, 0x58, 0x8e, 0x18, 0xde, 0xc6, 0xc4, 0x04, 0x6a, 0x93, 0x40, 0x67, 0xd0, 0xdf, 0xa0, 0x37, 0x91, 0xd0, 0x3d, 0x83, 0xb7, 0x18, 0xac, 0x4d, 0x24, 0xdc, 0xe7, 0x85, 0xa3, 0x02, 0x8d, 0xe0, 0xc9, 0x59, 0x2d, 0xba, 0x7c, 0x5c, 0x58, 0x45, 0x18, 0x4a, 0xfc, 0x9c, 0x0d, 0xfc, 0xf9, 0x40, 0x95, 0x86, 0x0f, 0x0e, 0xb8, 0x02, 0xeb, 0xea, 0x20, 0x17, 0x8e, 0x78, 0xb5, 0x64, 0x2e, 0x5d, 0xd6, 0x1c, 0x33, 0xb3, 0x97, 0x69, 0x05, 0x2d, 0x9d, 0x85, 0x4d, 0xce, 0x90, 0x2f, 0x47, 0x6e, 0x21, 0xf9, 0x6c, 0x65, 0x0b, 0x46, 0x3b, 0x7b, 0xc3, 0xd0, 0xff, 0x29, 0x96, 0xb6, 0x5c, 0x57, 0x83, 0x1f, 0x8b, 0x7c, 0x0f, 0xb9, 0x15, 0xf4, 0xdd, 0x72, 0x26, 0xac, 0x95, 0x5c, 0xbc, 0x7d, 0xfb, 0x03, 0xf9, 0xb7, 0x58, 0xdd, 0x3e, 0x0d, 0xfc, 0xe2, 0xe0, 0xe5, 0x80, 0xc9, 0x1a, 0x30, 0xc7, 0x83, 0xff, 0x56, 0x7b, 0x17, 0xf1, 0x2d, 0xfd, 0x5d, 0x31, 0x37, 0x64, 0x6e, 0x20, 0x01, 0x1c, 0xdc, 0xaa, 0xe1, 0x11, 0x02, 0xdc, 0x71, 0x68, 0x86, 0xcb, 0xf1, 0x23, 0xc0, 0x94, 0x88, 0xb1, 0x73, 0x63, 0x6a, 0xbd, 0x54, 0xe9, 0x62, 0xca, 0xee, 0xc9, 0x7d, 0x5e, 0xb9, 0x40, 0x68, 0x2e, 0x70, 0x3b, 0x73, 0x0f, 0x61, 0x56, 0x2c, 0xd1, 0x4b, 0x9e, 0x65, 0x61, 0xb5, 0xe9, 0x3f, 0x60, 0xcd, 0x0e, 0x1e, 0x86, 0xd1, 0xa1, 0xb4, 0x71, 0x9c, 0x5b, 0x50, 0x82, 0x42, 0xbd, 0x6b, 0x2d, 0x9a, 0x54, 0x8f, 0x59, 0xbb, 0xb8, 0x75, 0x07, 0x59, 0x69, 0xef, 0x20, 0x32, 0xf3, 0x19, 0x6b, 0x8a, 0xec, 0xcc, 0x45, 0xa4, 0x4d, 0x9d, 0xbd, 0xaf, 0x87, 0x8e, 0xd1, 0x6f, 0x1d, 0x85, 0x5e, 0x89, 0x18, 0xed, 0x65, 0xa4, 0x5e, 0xe5, 0xc7, 0xfa, 0x32, 0xa1, 0xec, 0x69, 0x32, 0xa1, 0x59, 0xcf, 0xb5, 0x0f, 0xfc, 0x87, 0xbe, 0x06, 0xdf, 0xcf, 0x72, 0x28, 0xae, 0x88, 0x70, 0xcc, 0xd3, 0x57, 0xfc, 0x65, 0x6e, 0x33, 0xfa, 0x4b, 0x6b, 0x8b, 0x7d, 0x1a, 0x72, 0x15, 0x55, 0x3c, 0xab, 0xac, 0xc7, 0x0a, 0x39, 0xc9, 0x80, 0xb9, 0x71, 0xe5, 0x1a, 0x17, 0xed, 0x63, 0x18, 0xb4, 0x3b, 0x29, 0xbb, };
17364 static const u8 ed25519_755_test_vectors_expected_sig[] = {
17365 	0xdf, 0x09, 0xcb, 0x9b, 0x87, 0x8d, 0x3d, 0xc9, 0xe5, 0x42, 0xdb, 0xac, 0x28, 0x94, 0x3e, 0x28, 0xe4, 0x1d, 0xce, 0xcb, 0x92, 0xcb, 0x7e, 0xa4, 0x40, 0x09, 0x88, 0x5e, 0x46, 0x49, 0x97, 0x43, 0x33, 0x05, 0x61, 0xba, 0x1d, 0x36, 0xae, 0xdd, 0x46, 0x76, 0x75, 0xfd, 0xca, 0x2b, 0xaa, 0xa4, 0x70, 0x1b, 0x6f, 0xad, 0x97, 0x9f, 0xd8, 0x39, 0xc4, 0x70, 0xd1, 0x3c, 0x82, 0xda, 0xa9, 0x05, };
17366 static const ec_test_case ed25519_755_test_case = {
17367 	.name = "EDDSA25519-SHA512/wei25519 755",
17368 	.ec_str_p = &wei25519_str_params,
17369 	.priv_key = ed25519_755_test_vectors_priv_key,
17370 	.priv_key_len = sizeof(ed25519_755_test_vectors_priv_key),
17371 	.nn_random = NULL,
17372 	.hash_type = SHA512,
17373 	.msg = (const char *)ed25519_755_test_vectors_message,
17374 	.msglen = sizeof(ed25519_755_test_vectors_message),
17375 	.sig_type = EDDSA25519,
17376 	.exp_sig = ed25519_755_test_vectors_expected_sig,
17377 	.exp_siglen = sizeof(ed25519_755_test_vectors_expected_sig),
17378 	.adata = NULL,
17379 	.adata_len = 0
17380 };
17381 
17382 /************************************************/
17383 static const u8 ed25519_756_test_vectors_priv_key[] = {
17384 	0xef, 0x12, 0xdf, 0x47, 0x9d, 0x98, 0x3a, 0xd9, 0x6e, 0x8b, 0xa6, 0x53, 0x30, 0xb3, 0x6d, 0x49, 0xaa, 0xdb, 0x98, 0x31, 0x64, 0xe1, 0xc0, 0xb4, 0x52, 0xb5, 0x60, 0xde, 0xd1, 0xd0, 0x8d, 0x60, };
17385 static const u8 ed25519_756_test_vectors_message[] = {
17386 	0xe5, 0x8f, 0x34, 0xda, 0xea, 0x75, 0x5a, 0xc4, 0xe4, 0x13, 0x33, 0xd6, 0xf0, 0xed, 0x01, 0x35, 0xf7, 0xdb, 0xce, 0x50, 0x30, 0x9b, 0xb1, 0x95, 0x6b, 0xc7, 0x1a, 0xcb, 0x12, 0xc7, 0x70, 0x67, 0xa6, 0x47, 0xff, 0xd8, 0x6a, 0xa5, 0x87, 0x0c, 0x0c, 0x00, 0x07, 0xe8, 0xf9, 0x95, 0xa2, 0x2b, 0x88, 0xc4, 0x67, 0xde, 0x22, 0x54, 0x44, 0x54, 0x42, 0x01, 0xc5, 0x57, 0x49, 0x5e, 0x25, 0x3e, 0x33, 0x19, 0xcc, 0x5c, 0xa3, 0x76, 0xd3, 0xe7, 0xcc, 0x1e, 0xb4, 0x67, 0x34, 0x6e, 0x52, 0xad, 0x95, 0x6a, 0x6f, 0xa7, 0x33, 0x72, 0x0b, 0x17, 0x11, 0x7b, 0x5b, 0x75, 0x85, 0xe4, 0xd5, 0x59, 0x40, 0x9a, 0xae, 0xfa, 0x95, 0x58, 0x0f, 0x91, 0xe5, 0x02, 0x01, 0x5f, 0x49, 0x7c, 0x5c, 0xdc, 0xb7, 0xd4, 0xd5, 0x61, 0xf5, 0x44, 0xef, 0xa3, 0x5c, 0x1e, 0x2a, 0x53, 0xb7, 0x2b, 0xdd, 0xec, 0xee, 0xc2, 0xd1, 0x05, 0x0f, 0x17, 0x7d, 0x48, 0x0f, 0x68, 0x74, 0x05, 0x66, 0x4d, 0xfd, 0xde, 0xc0, 0x6e, 0xee, 0x4b, 0xd1, 0x47, 0xa9, 0x12, 0xfd, 0xbf, 0x74, 0xf2, 0xa9, 0x5d, 0x1f, 0xd1, 0xe1, 0x12, 0x68, 0x69, 0x4c, 0xe4, 0xd4, 0xec, 0x4f, 0xff, 0xd6, 0xdd, 0xb3, 0x25, 0x4d, 0x36, 0x0f, 0x23, 0x6f, 0xab, 0x4d, 0x1a, 0x17, 0xf8, 0xd0, 0xd1, 0xa5, 0x11, 0xf9, 0x44, 0x69, 0x2f, 0x23, 0x96, 0x39, 0xae, 0x03, 0xd6, 0x4f, 0xac, 0xec, 0x65, 0x38, 0x42, 0x7a, 0xb7, 0x1f, 0x71, 0x27, 0xf4, 0xa2, 0x76, 0xf9, 0xbc, 0x45, 0xbb, 0xa6, 0x11, 0xdf, 0xcc, 0xe6, 0x44, 0x6c, 0xc1, 0x39, 0x68, 0x97, 0x6c, 0x8b, 0xb6, 0xd6, 0xfe, 0x21, 0x06, 0xd7, 0x05, 0x92, 0x2d, 0xca, 0xc9, 0x56, 0x96, 0x6a, 0x76, 0xd4, 0x8f, 0x2a, 0xff, 0x4b, 0x86, 0x51, 0x4e, 0x39, 0xa6, 0x7e, 0x16, 0x43, 0xfc, 0xc3, 0x21, 0x85, 0x80, 0x24, 0xe6, 0x93, 0x18, 0x98, 0x33, 0xc8, 0xad, 0x59, 0xb4, 0xb6, 0x25, 0x29, 0x8e, 0xba, 0xfe, 0x64, 0x62, 0x6b, 0x48, 0x0f, 0x32, 0x6f, 0x13, 0x40, 0x72, 0x3c, 0xb3, 0xd3, 0x83, 0xf4, 0xfc, 0xcb, 0xfc, 0x23, 0x7a, 0x3f, 0x4c, 0x4f, 0x7e, 0xcf, 0x0b, 0xa4, 0x36, 0xb3, 0x2c, 0x2f, 0xe3, 0x51, 0x79, 0xda, 0x93, 0x11, 0x1b, 0x48, 0xcc, 0x9e, 0xa2, 0x42, 0x02, 0xbd, 0xc1, 0xb2, 0xfb, 0x60, 0xa4, 0x31, 0x9d, 0xfd, 0x98, 0x64, 0x47, 0x0f, 0x73, 0xf5, 0x41, 0x37, 0x20, 0x6e, 0x0b, 0xf0, 0x07, 0xf5, 0xae, 0x88, 0xa8, 0x87, 0x47, 0x00, 0x8a, 0x60, 0xf4, 0x78, 0x9a, 0xd1, 0x67, 0x72, 0x4f, 0x17, 0x9c, 0x02, 0xb6, 0x3a, 0xed, 0x00, 0x25, 0x73, 0xd2, 0x8a, 0x6b, 0xcf, 0x88, 0xe0, 0x7c, 0xe8, 0xda, 0xea, 0x5d, 0x5f, 0x1a, 0xcf, 0x48, 0x7b, 0x4c, 0x5c, 0x16, 0xc2, 0xbf, 0xe1, 0x12, 0x31, 0xea, 0x5e, 0xa7, 0x63, 0xe8, 0xf3, 0x32, 0xcc, 0x73, 0xda, 0x1b, 0x2f, 0x8c, 0x19, 0x8e, 0xa8, 0x17, 0x3f, 0xd3, 0x3d, 0x4b, 0x2a, 0xe6, 0x9e, 0x5d, 0x4d, 0x1a, 0xad, 0xdd, 0xf2, 0xfd, 0x82, 0x1b, 0x85, 0xbe, 0x45, 0x15, 0x19, 0x62, 0xd1, 0xf9, 0x9d, 0xf8, 0x13, 0x08, 0x61, 0x88, 0x52, 0xad, 0x7c, 0xf4, 0x1d, 0x72, 0xda, 0x08, 0xa1, 0xb3, 0x9d, 0xf7, 0xd8, 0xb9, 0x94, 0xb4, 0xdd, 0xff, 0x37, 0xf9, 0xdf, 0xe8, 0xf3, 0x8c, 0xe3, 0x0e, 0x91, 0x06, 0x1d, 0x95, 0xd5, 0x8f, 0x7a, 0xe8, 0x26, 0xb0, 0x23, 0x85, 0x27, 0x2e, 0xc0, 0x9f, 0x01, 0xa7, 0xb3, 0xe4, 0xb3, 0x91, 0xd0, 0x9b, 0xce, 0xd6, 0x65, 0xda, 0xd6, 0x95, 0x05, 0xb4, 0x19, 0xda, 0x84, 0x81, 0xbc, 0x37, 0x92, 0xbf, 0x8b, 0x8e, 0x7a, 0xd6, 0x4b, 0x63, 0xf2, 0x45, 0x66, 0x6c, 0x8c, 0x32, 0xfd, 0x5c, 0x1b, 0x1b, 0x48, 0xc9, 0x95, 0x1e, 0x1c, 0x21, 0xa1, 0xeb, 0x5f, 0x50, 0x7c, 0xff, 0x13, 0x7c, 0xfb, 0x86, 0x2c, 0x2c, 0xc9, 0x87, 0x66, 0xe8, 0x78, 0xc9, 0x30, 0xa0, 0x83, 0x82, 0x8c, 0x9d, 0x8d, 0xb1, 0x8b, 0xf1, 0x67, 0x16, 0x68, 0x5f, 0x39, 0xd6, 0x57, 0x2a, 0x8c, 0xa8, 0xb2, 0xa5, 0x14, 0xf7, 0x70, 0x03, 0xd4, 0xe7, 0x5b, 0xc1, 0x54, 0xae, 0xbf, 0x14, 0x10, 0x37, 0x78, 0xf3, 0x65, 0xb1, 0xc3, 0xf0, 0x35, 0x41, 0xdd, 0xbd, 0x07, 0xd6, 0xe2, 0x3e, 0x56, 0x76, 0x2d, 0x97, 0x1e, 0xb0, 0x29, 0x83, 0xe9, 0x3c, 0x4e, 0x01, 0xba, 0x4b, 0x8a, 0x21, 0x78, 0x92, 0x8c, 0x43, 0x37, 0xd3, 0x02, 0xf3, 0x1c, 0x9c, 0xcb, 0x75, 0xb2, 0x49, 0xa8, 0x2d, 0xc9, 0x68, 0x21, 0xe9, 0x5a, 0x03, 0xab, 0x6b, 0x77, 0x0d, 0xf2, 0xc3, 0xdf, 0xdb, 0xf1, 0xfe, 0x97, 0x73, 0xf8, 0xbc, 0x1b, 0xc5, 0xb3, 0xaf, 0xa0, 0x44, 0x0b, 0x10, 0x25, 0x78, 0xf3, 0xd2, 0x13, 0xc8, 0xd0, 0x19, 0xcf, 0xf1, 0x24, 0xf7, 0x5c, 0xe4, 0xac, 0xcc, 0x8c, 0x66, 0x7f, 0xeb, 0x27, 0xc7, 0x51, 0xa6, 0x12, 0x00, 0x74, 0x81, 0x31, 0x04, 0xe0, 0xcd, 0x07, 0x0c, 0x9f, 0x5e, 0x45, 0x1d, 0xcc, 0xff, 0x4c, 0x80, 0xd7, 0x11, 0x07, 0xc9, 0x75, 0xab, 0xfa, 0xc0, 0x7d, 0x4d, 0x27, 0x0c, 0x72, 0x7d, 0x8a, 0x2f, 0xec, 0x34, 0x9b, 0x53, 0x39, 0x68, 0xe2, 0x71, 0x89, 0x2d, 0x2b, 0x62, 0xc1, 0x25, 0xfb, 0x79, 0x74, 0x60, 0x3c, 0x30, 0x5e, 0xa3, 0xbf, 0xa3, 0x0f, 0xb6, 0x10, 0xfc, 0x5a, 0x23, 0xeb, 0x68, 0xa8, 0x40, 0x64, 0x44, 0x39, 0x1a, 0x52, 0x13, 0x37, };
17387 static const u8 ed25519_756_test_vectors_expected_sig[] = {
17388 	0x4c, 0x80, 0x10, 0x86, 0x6d, 0x91, 0x15, 0xf0, 0x52, 0x93, 0xb9, 0x34, 0xca, 0xc6, 0x81, 0x04, 0xcc, 0x2c, 0x34, 0x37, 0x56, 0x8c, 0xb9, 0xd5, 0xc5, 0x70, 0xb1, 0xa8, 0xbe, 0xe7, 0x06, 0x60, 0x30, 0x75, 0x53, 0x70, 0x33, 0xbd, 0x70, 0x8a, 0x9c, 0x9f, 0x3d, 0x1e, 0x25, 0x19, 0xa9, 0x15, 0xb1, 0xc4, 0xae, 0x4c, 0xcd, 0xdf, 0xcf, 0x0e, 0xd0, 0xc0, 0x49, 0xd3, 0x42, 0xa0, 0x2e, 0x02, };
17389 static const ec_test_case ed25519_756_test_case = {
17390 	.name = "EDDSA25519-SHA512/wei25519 756",
17391 	.ec_str_p = &wei25519_str_params,
17392 	.priv_key = ed25519_756_test_vectors_priv_key,
17393 	.priv_key_len = sizeof(ed25519_756_test_vectors_priv_key),
17394 	.nn_random = NULL,
17395 	.hash_type = SHA512,
17396 	.msg = (const char *)ed25519_756_test_vectors_message,
17397 	.msglen = sizeof(ed25519_756_test_vectors_message),
17398 	.sig_type = EDDSA25519,
17399 	.exp_sig = ed25519_756_test_vectors_expected_sig,
17400 	.exp_siglen = sizeof(ed25519_756_test_vectors_expected_sig),
17401 	.adata = NULL,
17402 	.adata_len = 0
17403 };
17404 
17405 /************************************************/
17406 static const u8 ed25519_757_test_vectors_priv_key[] = {
17407 	0xf7, 0x31, 0x31, 0x7c, 0xf5, 0xaf, 0xfe, 0x58, 0x70, 0x4c, 0x4d, 0x94, 0x97, 0xae, 0x86, 0x0b, 0xbf, 0x73, 0x9d, 0x0f, 0xd9, 0x6b, 0x7c, 0x02, 0xef, 0xb6, 0x77, 0x7b, 0x3c, 0x85, 0x8a, 0x19, };
17408 static const u8 ed25519_757_test_vectors_message[] = {
17409 	0x16, 0xf5, 0x1c, 0x59, 0xe9, 0xae, 0xfc, 0x26, 0xb0, 0xda, 0x5e, 0x00, 0x85, 0xeb, 0x2e, 0x2f, 0x1f, 0x85, 0x6d, 0xef, 0x97, 0x25, 0x76, 0x9e, 0x3a, 0xf1, 0x2f, 0x86, 0x09, 0x05, 0xae, 0x13, 0x3f, 0x65, 0x07, 0x4d, 0xa7, 0x6d, 0xbf, 0x25, 0xc6, 0x7f, 0x62, 0x57, 0xd2, 0xdc, 0x66, 0xc0, 0x5f, 0x9b, 0x31, 0xae, 0x17, 0x7b, 0x69, 0x92, 0x9f, 0xc1, 0x83, 0xb5, 0x88, 0xc5, 0x19, 0xbc, 0xa1, 0x47, 0x96, 0xa0, 0x89, 0x6d, 0x29, 0x05, 0xfd, 0x94, 0x2d, 0x7a, 0xb4, 0xa3, 0xfd, 0x95, 0x41, 0xa5, 0x52, 0x9f, 0x72, 0x9c, 0x58, 0x51, 0x41, 0x9b, 0x5f, 0xbe, 0xf7, 0xb1, 0x34, 0xd6, 0x76, 0x2e, 0xb9, 0x7e, 0x8a, 0x95, 0x1a, 0x8f, 0xf5, 0x2a, 0xa0, 0xd7, 0xe6, 0x74, 0x44, 0xd0, 0x6b, 0x07, 0xaa, 0x55, 0xe4, 0xeb, 0x9a, 0xb8, 0x92, 0xf4, 0x7b, 0xfd, 0x11, 0x1d, 0xf5, 0xb6, 0x2f, 0x6f, 0x3f, 0xd1, 0xa5, 0xed, 0x84, 0x12, 0x5f, 0xee, 0xbb, 0x77, 0xda, 0x63, 0x7c, 0x05, 0xd5, 0x26, 0x5c, 0xed, 0x11, 0x3d, 0xfe, 0x87, 0x82, 0xdb, 0xd1, 0xce, 0xcd, 0x2c, 0x6c, 0x03, 0x2b, 0x8f, 0xa8, 0x85, 0x5b, 0x3a, 0xe7, 0x8d, 0xe7, 0x4f, 0xaa, 0x5a, 0xa2, 0x0a, 0x76, 0x14, 0x63, 0xc2, 0xa3, 0x0b, 0xe6, 0x6b, 0xd3, 0x8c, 0xde, 0xc7, 0x5f, 0x89, 0x57, 0xcb, 0x94, 0xc1, 0x13, 0xa4, 0x5d, 0x54, 0x6d, 0xaf, 0x47, 0x5d, 0x89, 0xaa, 0x14, 0x82, 0xf8, 0xd2, 0x80, 0x3a, 0x23, 0xc9, 0x39, 0x20, 0x20, 0x15, 0xa0, 0x8e, 0x94, 0xb1, 0x32, 0x72, 0x8f, 0xbe, 0x8f, 0x60, 0x19, 0xd7, 0x16, 0x8a, 0x08, 0xa5, 0x93, 0x01, 0x70, 0xe5, 0x63, 0x9d, 0x11, 0x0e, 0x47, 0x39, 0xdb, 0x85, 0xe6, 0x1e, 0x64, 0x49, 0x59, 0x44, 0xb5, 0x42, 0x3a, 0x74, 0xad, 0x5a, 0x8a, 0x0a, 0x51, 0x06, 0x12, 0xec, 0xe6, 0x55, 0xce, 0x18, 0x86, 0x40, 0x51, 0x52, 0x5b, 0x90, 0x8e, 0x0b, 0x19, 0x29, 0x0a, 0xbe, 0x8b, 0x11, 0x82, 0xc4, 0x8c, 0x70, 0x0d, 0x35, 0x05, 0x15, 0xfd, 0x34, 0x99, 0x56, 0xe8, 0x08, 0x73, 0x27, 0xf3, 0x0b, 0x6f, 0xc3, 0xf1, 0x31, 0xc2, 0x14, 0x4a, 0xbb, 0x3f, 0x0e, 0x9c, 0xa3, 0x31, 0x17, 0x2b, 0x35, 0x06, 0x4a, 0x82, 0x81, 0x1a, 0x68, 0xe2, 0xcf, 0x36, 0xb4, 0x3e, 0x3a, 0xd2, 0xe8, 0xdf, 0xa5, 0xb1, 0xce, 0xf5, 0x0e, 0x2a, 0x60, 0x29, 0x3f, 0xc5, 0xf6, 0x35, 0xc9, 0xa9, 0x99, 0x8d, 0x8c, 0x1a, 0xd2, 0x96, 0xe7, 0xc7, 0x8f, 0xc0, 0x58, 0x20, 0x22, 0xd6, 0x30, 0x67, 0x18, 0x6b, 0x65, 0xe7, 0x64, 0x82, 0x8c, 0xc0, 0xf5, 0xf7, 0x63, 0x2d, 0x5e, 0xef, 0x86, 0x3e, 0x6c, 0x6d, 0x90, 0xe3, 0x8c, 0xcc, 0x87, 0xd7, 0xb7, 0x47, 0xfa, 0xc8, 0x49, 0x1d, 0x63, 0x2c, 0xf7, 0xf5, 0x4b, 0x9a, 0x9e, 0xed, 0x16, 0xee, 0xbe, 0xc0, 0x1b, 0x6c, 0xc3, 0x3d, 0x24, 0x63, 0xf7, 0xf9, 0x50, 0xd8, 0x28, 0xb5, 0x5e, 0xe3, 0xf7, 0x7c, 0xbe, 0x97, 0x4f, 0x48, 0x94, 0x8e, 0xb7, 0x57, 0xae, 0xd4, 0xe0, 0xdb, 0xb0, 0x0a, 0xd9, 0x5e, 0xe0, 0x13, 0x23, 0x48, 0x6e, 0xba, 0x3c, 0x8d, 0xa8, 0x86, 0xed, 0x7f, 0x57, 0xbb, 0x40, 0x0d, 0x63, 0xa1, 0xb2, 0xeb, 0xea, 0xa2, 0xe7, 0x0a, 0xdf, 0x03, 0x79, 0xe3, 0x39, 0x30, 0x01, 0xba, 0x62, 0x6c, 0x0d, 0xd5, 0x4b, 0x7f, 0x0c, 0x9a, 0x25, 0xaa, 0xe6, 0xc9, 0x87, 0x5d, 0x4e, 0x76, 0x22, 0xf3, 0xed, 0x42, 0x8f, 0xb3, 0x12, 0x4b, 0x29, 0xc5, 0xdb, 0x9a, 0x7e, 0xf1, 0x6e, 0xbd, 0xdd, 0x68, 0x05, 0xf0, 0x95, 0xf5, 0xe7, 0x69, 0x82, 0x3c, 0x43, 0xf2, 0x62, 0x86, 0x8f, 0xf4, 0x3e, 0x3e, 0x05, 0x25, 0x74, 0x6d, 0x94, 0x97, 0xaf, 0x12, 0x4a, 0x01, 0xdf, 0xf6, 0x1e, 0xc7, 0x18, 0xaf, 0x3b, 0x5b, 0xb7, 0x46, 0xfc, 0xc0, 0x8a, 0xeb, 0xd1, 0x66, 0x84, 0xd4, 0x56, 0xae, 0x79, 0x32, 0xff, 0x5e, 0xd7, 0xd6, 0xb0, 0xf1, 0xb2, 0x5c, 0x7a, 0xde, 0xef, 0x59, 0x8b, 0x5d, 0x58, 0x87, 0x75, 0x90, 0xac, 0x1d, 0xc0, 0x59, 0x75, 0x15, 0x67, 0x96, 0x99, 0x87, 0x74, 0x08, 0x1e, 0x5b, 0x66, 0x82, 0x2a, 0x94, 0xa6, 0xa8, 0x02, 0xc3, 0xa2, 0xcd, 0x9f, 0x48, 0x9e, 0x16, 0x28, 0xaa, 0xf4, 0x65, 0x2b, 0xe1, 0x18, 0x4b, 0x0f, 0xc7, 0xc5, 0xee, 0x7f, 0x97, 0xce, 0x08, 0xb9, 0x23, 0x3b, 0x4b, 0x83, 0xd9, 0x36, 0x7b, 0xe5, 0xf4, 0xaa, 0xe9, 0x78, 0x25, 0x93, 0xa3, 0x52, 0x65, 0x15, 0x4d, 0xea, 0x4c, 0x37, 0x5c, 0x16, 0xf0, 0xca, 0xf6, 0xdc, 0x45, 0x94, 0xd2, 0xbd, 0xbf, 0xc3, 0x37, 0x5b, 0xb2, 0xa0, 0x43, 0x2c, 0x48, 0x2f, 0x13, 0x94, 0x1c, 0xe2, 0xaa, 0xab, 0x4d, 0x83, 0xe7, 0x4d, 0x11, 0x6f, 0x5d, 0xe4, 0xab, 0x28, 0xf8, 0xdc, 0x3d, 0x1c, 0xd1, 0x9d, 0x27, 0x1e, 0x56, 0xe1, 0x03, 0x98, 0xbd, 0x1d, 0xf5, 0xc8, 0x70, 0xfc, 0xbf, 0x93, 0xa7, 0xd1, 0xdf, 0x39, 0x39, 0x54, 0x7c, 0x10, 0x7b, 0xfd, 0x90, 0x64, 0x3f, 0x6f, 0x50, 0x01, 0xae, 0x7e, 0x06, 0x39, 0x7a, 0xe1, 0xa2, 0x71, 0xbb, 0x82, 0xa1, 0xf3, 0x8e, 0x09, 0x7b, 0xec, 0x66, 0x74, 0x66, 0xb8, 0x0e, 0xe3, 0xe5, 0x0d, 0xd4, 0xfc, 0x9d, 0x5d, 0x54, 0xf1, 0x8f, 0xaf, 0x7a, 0x5b, 0x55, 0xa8, 0x83, 0x45, 0x94, 0xef, 0x0c, 0xb7, 0xe5, 0x08, 0xbb, 0xd2, 0x8f, 0x71, 0xfd, 0x34, 0x23, 0x5b, 0xbf, 0xd3, };
17410 static const u8 ed25519_757_test_vectors_expected_sig[] = {
17411 	0x2a, 0x4f, 0xea, 0x98, 0xf9, 0x24, 0x01, 0x71, 0xa1, 0x82, 0x3f, 0x2f, 0x69, 0x35, 0x20, 0x62, 0x67, 0x2e, 0x6c, 0x6e, 0x66, 0x52, 0xd3, 0x88, 0xa8, 0x77, 0x14, 0xd6, 0x47, 0x99, 0x5d, 0xf7, 0x5b, 0x6e, 0x1e, 0xd1, 0x74, 0x6a, 0xf2, 0xad, 0xf4, 0xe8, 0x06, 0x13, 0x5d, 0x60, 0x75, 0x4e, 0x60, 0xfe, 0xa0, 0x32, 0x12, 0x8e, 0x35, 0xab, 0xc1, 0xf1, 0x61, 0x51, 0x81, 0x12, 0x5f, 0x0b, };
17412 static const ec_test_case ed25519_757_test_case = {
17413 	.name = "EDDSA25519-SHA512/wei25519 757",
17414 	.ec_str_p = &wei25519_str_params,
17415 	.priv_key = ed25519_757_test_vectors_priv_key,
17416 	.priv_key_len = sizeof(ed25519_757_test_vectors_priv_key),
17417 	.nn_random = NULL,
17418 	.hash_type = SHA512,
17419 	.msg = (const char *)ed25519_757_test_vectors_message,
17420 	.msglen = sizeof(ed25519_757_test_vectors_message),
17421 	.sig_type = EDDSA25519,
17422 	.exp_sig = ed25519_757_test_vectors_expected_sig,
17423 	.exp_siglen = sizeof(ed25519_757_test_vectors_expected_sig),
17424 	.adata = NULL,
17425 	.adata_len = 0
17426 };
17427 
17428 /************************************************/
17429 static const u8 ed25519_758_test_vectors_priv_key[] = {
17430 	0x49, 0x8e, 0x5a, 0x21, 0xa9, 0xb0, 0xc3, 0x47, 0xba, 0x83, 0xa4, 0x7a, 0xc1, 0x00, 0x69, 0x45, 0x7f, 0x57, 0x83, 0xc2, 0xe1, 0xe6, 0xe4, 0x64, 0x00, 0x45, 0xe5, 0x94, 0xb1, 0xc6, 0x93, 0x32, };
17431 static const u8 ed25519_758_test_vectors_message[] = {
17432 	0xe4, 0xfb, 0xea, 0x86, 0x4a, 0xa5, 0x11, 0x90, 0x82, 0x66, 0x45, 0xd2, 0xf7, 0x72, 0xcb, 0x0f, 0x9e, 0xdd, 0xd3, 0x03, 0x44, 0x73, 0xfa, 0x31, 0x77, 0xc7, 0xaf, 0x9a, 0x5d, 0x41, 0xe1, 0xa7, 0x3a, 0xd5, 0x78, 0x4c, 0x70, 0x96, 0x55, 0x9f, 0xcd, 0xdb, 0x7b, 0x7c, 0x85, 0x89, 0x1c, 0xf2, 0x4e, 0x82, 0xc5, 0x88, 0xd7, 0x47, 0x74, 0xff, 0xca, 0xc0, 0xc6, 0xb4, 0xee, 0xbc, 0x2f, 0x3f, 0xa4, 0x3e, 0x9d, 0x45, 0xf2, 0x59, 0xd6, 0x75, 0x64, 0x03, 0x0c, 0xfe, 0xea, 0xb9, 0x23, 0x6c, 0x66, 0x5b, 0x65, 0x0a, 0xf0, 0xc9, 0x2c, 0x87, 0x51, 0x89, 0xf5, 0xf9, 0x38, 0x35, 0x04, 0xb1, 0x53, 0x60, 0xa0, 0xb9, 0xa5, 0xa0, 0x0d, 0xa3, 0x1f, 0x63, 0x5b, 0x96, 0xf6, 0xc7, 0x3e, 0xf4, 0x7b, 0x6b, 0x06, 0xf0, 0x28, 0x11, 0xd1, 0xd1, 0x9c, 0x2e, 0x8e, 0x53, 0x55, 0x0c, 0xe2, 0x2e, 0x42, 0xec, 0x50, 0xa1, 0xeb, 0x2e, 0xa2, 0xf4, 0xcd, 0x03, 0xc4, 0x42, 0xd4, 0xaa, 0x43, 0x68, 0x94, 0x23, 0x8c, 0xeb, 0x18, 0x35, 0xfe, 0x99, 0xb2, 0x40, 0x35, 0x8a, 0xa0, 0x56, 0x2c, 0x24, 0x96, 0x98, 0xa3, 0xf1, 0x23, 0xc2, 0xc1, 0x7e, 0x59, 0x10, 0x10, 0xbd, 0x6f, 0xdf, 0xcb, 0xd7, 0xdb, 0xe7, 0x0b, 0x04, 0x52, 0x05, 0x02, 0xec, 0xe3, 0x7a, 0x9a, 0x1d, 0xfa, 0x1a, 0xe3, 0x37, 0x04, 0x17, 0xb0, 0x04, 0x21, 0x7a, 0x5b, 0x8f, 0xe9, 0x90, 0x3c, 0x9a, 0x3b, 0x9f, 0x4b, 0x6d, 0x5c, 0x46, 0xc0, 0xed, 0x0c, 0x53, 0x8c, 0xec, 0x22, 0xf2, 0xdf, 0xcb, 0x2a, 0x28, 0x0a, 0x42, 0xad, 0xc4, 0x89, 0xcf, 0x2e, 0x06, 0x29, 0x12, 0xbe, 0x99, 0x28, 0xf0, 0xc0, 0x60, 0x89, 0x1e, 0x43, 0x20, 0x91, 0x17, 0x75, 0x26, 0xf1, 0xb3, 0xa9, 0x68, 0x06, 0x9d, 0x4a, 0x57, 0xad, 0xe8, 0x28, 0x55, 0x98, 0x10, 0xae, 0x03, 0x60, 0x68, 0x1f, 0xf9, 0x93, 0x29, 0xfa, 0x0f, 0x59, 0xe7, 0xe5, 0x9c, 0xdf, 0x87, 0xf9, 0xf3, 0x3c, 0x40, 0xe9, 0x70, 0x31, 0xb9, 0xf8, 0x1d, 0x48, 0xfc, 0x12, 0x28, 0x6e, 0xfb, 0xb3, 0xd4, 0xe5, 0xa6, 0x2e, 0xf5, 0x7b, 0xc0, 0xd5, 0x2d, 0x53, 0x3b, 0x99, 0xc5, 0x10, 0x6a, 0xa7, 0x9c, 0xfe, 0x17, 0x93, 0xa9, 0x08, 0x51, 0x85, 0x96, 0xc3, 0x83, 0x48, 0x3e, 0xc4, 0x9f, 0xf9, 0x8e, 0xc5, 0x57, 0xbf, 0xff, 0x74, 0x90, 0xa4, 0x6d, 0xaf, 0x67, 0x14, 0xf2, 0xc2, 0xc3, 0x2f, 0x57, 0x93, 0x2c, 0xa0, 0xd7, 0x30, 0xf0, 0x3f, 0x38, 0x1d, 0x69, 0xde, 0xcd, 0xbd, 0x9a, 0x7a, 0x6d, 0x4a, 0xfc, 0x62, 0x40, 0x65, 0x43, 0xc8, 0xeb, 0xe9, 0x0a, 0xc7, 0x6e, 0x6a, 0xfa, 0xbd, 0xb8, 0x24, 0x92, 0xa2, 0x06, 0xa3, 0x69, 0xe0, 0x42, 0x86, 0xd3, 0x13, 0xe1, 0x11, 0x07, 0xd8, 0xcd, 0x9b, 0x4b, 0xf6, 0x8f, 0x81, 0x5d, 0xba, 0x4e, 0x99, 0x0b, 0x04, 0x9d, 0x79, 0x21, 0x6d, 0x36, 0x53, 0x13, 0x83, 0x42, 0xcd, 0x11, 0x8b, 0x13, 0x0f, 0x66, 0xb0, 0x06, 0xf3, 0xd8, 0x9a, 0xc3, 0xcf, 0x89, 0x83, 0x70, 0x48, 0xb0, 0xf8, 0xa6, 0x2d, 0x94, 0x05, 0x1d, 0x2e, 0xab, 0x89, 0x1a, 0xc5, 0xf4, 0x78, 0x88, 0x87, 0x9d, 0x88, 0xe5, 0x46, 0x67, 0x6d, 0x1d, 0xae, 0xeb, 0x4d, 0x17, 0x5d, 0x3f, 0x04, 0xa9, 0xd7, 0x4f, 0xfc, 0xdd, 0x47, 0x74, 0x60, 0x16, 0xf8, 0x4a, 0xd0, 0xd1, 0x12, 0xaf, 0xb5, 0x9a, 0xd1, 0x21, 0x87, 0xe9, 0x4f, 0x22, 0x53, 0x5d, 0x77, 0xe9, 0xe0, 0x51, 0x6f, 0xa4, 0x21, 0x85, 0xc1, 0x97, 0xba, 0x77, 0x4b, 0x39, 0x32, 0x27, 0xf7, 0x41, 0xfe, 0x68, 0x27, 0x3f, 0x42, 0x3f, 0xb0, 0xe0, 0xe0, 0x47, 0x4b, 0xfd, 0xaf, 0x2d, 0xa7, 0x8a, 0xeb, 0x1c, 0xd5, 0xb9, 0x8c, 0x1d, 0xc0, 0x83, 0x21, 0x24, 0x74, 0x2a, 0x47, 0x54, 0x12, 0x5f, 0xc7, 0x8b, 0x19, 0xc5, 0x59, 0xa5, 0xb3, 0xf7, 0x71, 0x1e, 0x06, 0x8c, 0x44, 0x0c, 0xc0, 0x46, 0x9a, 0x1c, 0xfa, 0x5c, 0x18, 0x64, 0xbe, 0x18, 0x73, 0x5a, 0xa8, 0xbc, 0xd4, 0x06, 0xc4, 0x37, 0x1e, 0xb8, 0x57, 0x75, 0x4d, 0x90, 0x8b, 0xf3, 0x79, 0xb9, 0x1f, 0xcb, 0x24, 0xe3, 0x43, 0x96, 0xbf, 0x87, 0xc1, 0x9a, 0x04, 0xa8, 0x3d, 0x59, 0xda, 0xe7, 0x1f, 0x3f, 0x38, 0x39, 0x82, 0x9d, 0x06, 0x22, 0x13, 0x01, 0xef, 0x59, 0x56, 0x96, 0xe7, 0x19, 0xd5, 0x6b, 0x79, 0x52, 0x0a, 0x0e, 0x50, 0x99, 0x29, 0x83, 0x3b, 0x1d, 0x80, 0x4a, 0x6a, 0x0e, 0xa4, 0x04, 0x00, 0xbb, 0x45, 0x02, 0x8c, 0xe5, 0xd3, 0x69, 0x33, 0x88, 0x3e, 0x17, 0x40, 0x6e, 0x27, 0xa8, 0x10, 0x90, 0x57, 0xb1, 0xa1, 0xa5, 0xe5, 0xda, 0x21, 0x0a, 0x69, 0x21, 0x99, 0x4f, 0x46, 0x7a, 0xb4, 0x1a, 0xa8, 0xf0, 0xd8, 0x87, 0x75, 0xa8, 0xa8, 0xeb, 0xb4, 0xec, 0x77, 0xd7, 0xc8, 0x0e, 0x45, 0xa7, 0xbb, 0x42, 0x2a, 0x4c, 0x00, 0xc9, 0x05, 0x83, 0x91, 0x14, 0x65, 0xe6, 0xb5, 0xf0, 0xfd, 0xcd, 0xea, 0xb7, 0x28, 0x71, 0xca, 0x54, 0x2e, 0x1d, 0x1a, 0x2c, 0xa9, 0x4d, 0xf4, 0xed, 0x2e, 0xab, 0xf9, 0x0d, 0xed, 0x00, 0x45, 0x29, 0x03, 0x24, 0xa9, 0xff, 0xfb, 0x30, 0x14, 0x54, 0x70, 0x20, 0x9f, 0x38, 0x26, 0x58, 0x09, 0x89, 0x34, 0x91, 0x99, 0xdc, 0x5a, 0xb8, 0xd4, 0xa2, 0x5d, 0xf7, 0xa0, 0x52, 0x9c, 0xf9, 0x14, 0x71, 0xe3, 0x08, 0x42, 0xab, 0xfa, 0xcd, 0x44, 0xab, 0x78, 0x1d, 0xfc, 0x13, 0x95, };
17433 static const u8 ed25519_758_test_vectors_expected_sig[] = {
17434 	0x28, 0x60, 0x83, 0x0c, 0xcd, 0x1d, 0x41, 0xd9, 0x50, 0x76, 0x81, 0x6a, 0x39, 0x84, 0x24, 0xf7, 0xb7, 0x39, 0xc4, 0x9f, 0xda, 0xcf, 0x56, 0x54, 0x52, 0x9d, 0xa8, 0x5f, 0xe3, 0x56, 0x55, 0x84, 0xf6, 0xaa, 0xc2, 0x61, 0x4c, 0x63, 0xf7, 0x74, 0xb6, 0x1d, 0xb9, 0x08, 0x1f, 0x14, 0x10, 0xfb, 0xa8, 0xe5, 0x0a, 0xb3, 0xb4, 0xc3, 0x9d, 0xc0, 0x63, 0x14, 0x24, 0x3f, 0x3f, 0x0d, 0x8e, 0x0f, };
17435 static const ec_test_case ed25519_758_test_case = {
17436 	.name = "EDDSA25519-SHA512/wei25519 758",
17437 	.ec_str_p = &wei25519_str_params,
17438 	.priv_key = ed25519_758_test_vectors_priv_key,
17439 	.priv_key_len = sizeof(ed25519_758_test_vectors_priv_key),
17440 	.nn_random = NULL,
17441 	.hash_type = SHA512,
17442 	.msg = (const char *)ed25519_758_test_vectors_message,
17443 	.msglen = sizeof(ed25519_758_test_vectors_message),
17444 	.sig_type = EDDSA25519,
17445 	.exp_sig = ed25519_758_test_vectors_expected_sig,
17446 	.exp_siglen = sizeof(ed25519_758_test_vectors_expected_sig),
17447 	.adata = NULL,
17448 	.adata_len = 0
17449 };
17450 
17451 /************************************************/
17452 static const u8 ed25519_759_test_vectors_priv_key[] = {
17453 	0xc2, 0x4c, 0xbf, 0x40, 0x1a, 0xd0, 0x3b, 0xd8, 0x8d, 0xcc, 0x7b, 0x51, 0x9e, 0xcf, 0x62, 0x4d, 0xb2, 0x22, 0x3e, 0x99, 0x02, 0x89, 0x30, 0x9e, 0x1e, 0x9f, 0x1f, 0x8f, 0x61, 0x27, 0xc6, 0xc9, };
17454 static const u8 ed25519_759_test_vectors_message[] = {
17455 	0xe7, 0xfa, 0x35, 0x9e, 0x6a, 0x09, 0xb2, 0xc5, 0x4a, 0xab, 0xed, 0x3b, 0xba, 0xbf, 0xb7, 0x28, 0x53, 0xa8, 0x05, 0xaa, 0xbc, 0xf4, 0xd1, 0x8d, 0xda, 0xd3, 0x9f, 0x03, 0xf3, 0x46, 0x01, 0xe5, 0x5b, 0x6c, 0xe2, 0x63, 0xc9, 0xa3, 0xca, 0x6a, 0x3e, 0x5f, 0x14, 0x25, 0xc8, 0x21, 0x92, 0x8c, 0x61, 0xe7, 0xf7, 0x50, 0x91, 0x9b, 0xd3, 0xaf, 0x32, 0xbc, 0xb7, 0xb9, 0x4d, 0x45, 0x9a, 0x7a, 0x9a, 0x35, 0xf6, 0x1c, 0x94, 0x17, 0x92, 0xe2, 0xcc, 0x2e, 0x43, 0x27, 0xbe, 0xb3, 0x44, 0xa8, 0x41, 0xa0, 0x7f, 0x32, 0x06, 0x8a, 0xf1, 0x02, 0xb3, 0xde, 0x61, 0xea, 0xb6, 0x4e, 0xf6, 0xd5, 0xe6, 0x90, 0x62, 0xe3, 0x93, 0xab, 0x5e, 0xdf, 0x6a, 0xc9, 0xef, 0x7b, 0x38, 0xd4, 0x9a, 0x01, 0xbe, 0xf0, 0x00, 0x3f, 0x42, 0x11, 0x74, 0xc8, 0x88, 0x59, 0x75, 0xc0, 0x18, 0x32, 0x89, 0x9c, 0x31, 0x35, 0xe7, 0xa8, 0x6e, 0x5b, 0x55, 0xd9, 0xb1, 0x32, 0x8b, 0xb4, 0x28, 0x9b, 0x5c, 0x40, 0x20, 0x0f, 0x49, 0xe5, 0x52, 0x3b, 0x3c, 0x46, 0x1d, 0xc7, 0x17, 0x5e, 0x14, 0x65, 0x02, 0x22, 0x97, 0xc3, 0xd3, 0x80, 0xf2, 0xb1, 0xfe, 0xf3, 0x9c, 0xb8, 0x2c, 0x00, 0xfd, 0x16, 0x0f, 0x44, 0x7e, 0xb5, 0x12, 0x63, 0xfa, 0x25, 0xb4, 0xdf, 0x0f, 0xca, 0x41, 0xec, 0x0c, 0xa2, 0xec, 0xe7, 0x47, 0x22, 0x01, 0xaf, 0x86, 0xc3, 0x03, 0x8c, 0x49, 0xdf, 0x09, 0x9a, 0x9a, 0xef, 0xa1, 0xf8, 0x8d, 0x0e, 0xdf, 0xd1, 0x7c, 0x0b, 0x3c, 0x86, 0x04, 0x66, 0x29, 0xc0, 0x94, 0x54, 0x05, 0x4a, 0xa0, 0xfb, 0x2c, 0x69, 0x49, 0xdd, 0x9c, 0x13, 0x01, 0x85, 0xdf, 0xa5, 0xd9, 0x03, 0x89, 0x1e, 0x08, 0x74, 0x2c, 0xd0, 0x42, 0x94, 0x03, 0xf5, 0x7f, 0x40, 0x52, 0x15, 0x8b, 0x2f, 0x40, 0x1d, 0xa4, 0x75, 0x68, 0x54, 0xe4, 0xaa, 0xf0, 0x24, 0x22, 0x1e, 0x37, 0x51, 0x3c, 0xf6, 0x77, 0xee, 0x6a, 0x0b, 0x15, 0x9f, 0x50, 0x1d, 0x37, 0x7e, 0xa3, 0x2e, 0xb7, 0x1e, 0x77, 0x80, 0x04, 0xf2, 0x72, 0x03, 0xcd, 0x6d, 0x55, 0x3f, 0xda, 0x5d, 0x65, 0xe1, 0x87, 0x94, 0x77, 0x04, 0x6f, 0x3e, 0xa3, 0xd1, 0xd7, 0x5c, 0x9d, 0x0d, 0x30, 0x31, 0x14, 0x56, 0x70, 0x9c, 0xc7, 0xf6, 0xab, 0x68, 0xc7, 0xb0, 0xd5, 0x2b, 0xe4, 0x0f, 0x04, 0xcf, 0x65, 0x56, 0x55, 0x32, 0x32, 0x85, 0x31, 0x83, 0x29, 0xe8, 0x4c, 0x6a, 0x5b, 0x07, 0xe0, 0xce, 0xed, 0x5f, 0x78, 0xf7, 0xf1, 0xfa, 0x62, 0x29, 0xbe, 0xf8, 0x78, 0x79, 0x3c, 0x58, 0x47, 0x28, 0xab, 0xf4, 0x51, 0x0b, 0x7f, 0x27, 0x79, 0x4b, 0x59, 0x42, 0x91, 0x62, 0x54, 0xc5, 0x89, 0xa0, 0x9c, 0x8e, 0x91, 0x1f, 0x0b, 0x95, 0x42, 0x11, 0xa6, 0x36, 0x99, 0xa7, 0x52, 0x14, 0x7f, 0x2a, 0x4e, 0x1a, 0x18, 0x95, 0x66, 0x44, 0xbe, 0xa2, 0xca, 0x26, 0x92, 0xba, 0x18, 0x22, 0x80, 0xe0, 0x4a, 0x72, 0xdd, 0x89, 0xb0, 0xd1, 0x26, 0x85, 0x00, 0x93, 0x8f, 0x34, 0x7b, 0xf4, 0x3f, 0x2a, 0x24, 0x2e, 0xe9, 0xb9, 0xa6, 0xba, 0xac, 0x9b, 0x35, 0x0d, 0x65, 0x6f, 0xb1, 0x9e, 0xc8, 0x34, 0xab, 0xe3, 0x16, 0x44, 0x40, 0xf2, 0xd2, 0x07, 0x1f, 0xe5, 0xe3, 0x2c, 0x8e, 0x4c, 0xf9, 0x05, 0x53, 0x9b, 0x83, 0x9c, 0xee, 0xca, 0x26, 0x20, 0xfc, 0xb2, 0xa0, 0x87, 0xf7, 0x80, 0xe6, 0xc7, 0xf5, 0xe0, 0x5c, 0x50, 0x68, 0x88, 0x25, 0x0e, 0xa7, 0xc8, 0x56, 0xfb, 0x30, 0x98, 0x32, 0x00, 0xaa, 0x8f, 0x78, 0xfc, 0x17, 0x71, 0x05, 0x4a, 0xda, 0x0f, 0x3f, 0xac, 0x38, 0xae, 0x2f, 0x33, 0xdc, 0x4a, 0x4f, 0x85, 0x1b, 0x76, 0xed, 0x74, 0x0c, 0x09, 0x62, 0xa7, 0x6a, 0x4d, 0xe4, 0x40, 0x80, 0xdc, 0x62, 0x0a, 0x44, 0xad, 0x8f, 0x23, 0xd3, 0x46, 0x2b, 0x79, 0x2a, 0xb3, 0xaf, 0xb1, 0x9c, 0xb8, 0xa9, 0xf4, 0xd9, 0xe5, 0x9a, 0xd7, 0x65, 0xa7, 0x71, 0x89, 0x9d, 0xa8, 0xcb, 0xec, 0x89, 0xe5, 0x07, 0x7e, 0x85, 0xc0, 0xc9, 0x31, 0x26, 0x37, 0x6c, 0x94, 0x1b, 0xef, 0x1f, 0x8b, 0xb9, 0x92, 0xd3, 0xa3, 0x5f, 0x27, 0x07, 0x25, 0x84, 0x6f, 0xb2, 0x52, 0xf8, 0xb5, 0xfb, 0xb7, 0x56, 0x7e, 0x40, 0x6a, 0x1b, 0x53, 0xb6, 0x19, 0x76, 0x9e, 0x63, 0x2b, 0x2b, 0x40, 0x87, 0xcd, 0x4c, 0x27, 0x6e, 0x5d, 0x58, 0xff, 0x2b, 0x56, 0xe8, 0x9e, 0xde, 0xc4, 0x8c, 0xe5, 0x3a, 0x52, 0xe3, 0x29, 0xca, 0x15, 0x59, 0x53, 0x8f, 0x10, 0x90, 0x2c, 0x01, 0xa8, 0x5f, 0xbb, 0x3c, 0xd7, 0x2e, 0x6b, 0x82, 0x91, 0xe5, 0xfe, 0x63, 0x9b, 0xee, 0x9d, 0x47, 0xd3, 0x4c, 0x24, 0x9a, 0x7a, 0x07, 0xd7, 0xa1, 0x42, 0x7a, 0x01, 0xf6, 0x3d, 0x60, 0x98, 0x4c, 0x45, 0x0b, 0xef, 0x81, 0x9b, 0x19, 0xf6, 0x5e, 0x26, 0x14, 0xfd, 0x9c, 0x2f, 0xae, 0x7b, 0x92, 0x31, 0xa0, 0xbc, 0xa4, 0x14, 0xed, 0x94, 0xa5, 0xee, 0x7e, 0x66, 0x32, 0x7d, 0x2a, 0x99, 0xc8, 0x48, 0x78, 0xb7, 0xbe, 0xe0, 0x87, 0xe8, 0x91, 0xf2, 0x53, 0xfa, 0x1f, 0xec, 0xe3, 0x13, 0x64, 0x8c, 0x06, 0xc4, 0x5d, 0xb2, 0xd9, 0xf3, 0xbc, 0x85, 0x99, 0x93, 0x7b, 0x75, 0x2d, 0x38, 0xce, 0x50, 0x63, 0xd0, 0xed, 0x9a, 0x43, 0xec, 0x9d, 0x40, 0x15, 0x89, 0x3d, 0x43, 0xbf, 0x5b, 0x2d, 0x1c, 0x60, 0x47, 0x85, 0x10, 0x46, 0x89, 0x68, 0xb7, 0x96, 0xf0, 0x15, 0x37, 0x89, 0x59, 0x54, 0x41, 0x72, 0x2a, };
17456 static const u8 ed25519_759_test_vectors_expected_sig[] = {
17457 	0x58, 0x1e, 0x6c, 0x85, 0xae, 0xc6, 0x23, 0xb6, 0x2b, 0x3d, 0x4c, 0x9b, 0xc9, 0xc7, 0x77, 0x59, 0xd5, 0x49, 0x27, 0x22, 0xe2, 0x52, 0xd4, 0x4c, 0x1f, 0x8a, 0xda, 0x9d, 0xa2, 0xec, 0xc6, 0x7c, 0x17, 0x08, 0x32, 0x73, 0xaa, 0x09, 0x1b, 0xba, 0xc0, 0x46, 0xae, 0x63, 0xc7, 0x88, 0x93, 0x15, 0x2e, 0x14, 0xd9, 0x26, 0xc4, 0x1a, 0xe3, 0x5f, 0x0e, 0x6e, 0x39, 0x59, 0x49, 0x6b, 0x13, 0x06, };
17458 static const ec_test_case ed25519_759_test_case = {
17459 	.name = "EDDSA25519-SHA512/wei25519 759",
17460 	.ec_str_p = &wei25519_str_params,
17461 	.priv_key = ed25519_759_test_vectors_priv_key,
17462 	.priv_key_len = sizeof(ed25519_759_test_vectors_priv_key),
17463 	.nn_random = NULL,
17464 	.hash_type = SHA512,
17465 	.msg = (const char *)ed25519_759_test_vectors_message,
17466 	.msglen = sizeof(ed25519_759_test_vectors_message),
17467 	.sig_type = EDDSA25519,
17468 	.exp_sig = ed25519_759_test_vectors_expected_sig,
17469 	.exp_siglen = sizeof(ed25519_759_test_vectors_expected_sig),
17470 	.adata = NULL,
17471 	.adata_len = 0
17472 };
17473 
17474 /************************************************/
17475 static const u8 ed25519_760_test_vectors_priv_key[] = {
17476 	0x8b, 0x3d, 0xcd, 0xe4, 0xab, 0xbf, 0x4e, 0x62, 0x11, 0xc4, 0xa5, 0x1c, 0x4b, 0x02, 0x68, 0x00, 0xa8, 0xa2, 0xa0, 0x61, 0xcb, 0x38, 0xa2, 0xec, 0xc7, 0xc9, 0xcf, 0x11, 0x3f, 0x92, 0x70, 0xbf, };
17477 static const u8 ed25519_760_test_vectors_message[] = {
17478 	0x48, 0x14, 0x25, 0x02, 0x7d, 0xa6, 0x72, 0xb6, 0xf2, 0x6c, 0x91, 0xb8, 0x0e, 0x55, 0x58, 0x2c, 0xae, 0xf4, 0x7b, 0xb1, 0x5a, 0x2d, 0xe8, 0xfc, 0xa8, 0x52, 0x22, 0x17, 0x85, 0x18, 0x0b, 0x20, 0xa7, 0xfd, 0x6d, 0x49, 0x07, 0xb5, 0x88, 0x1c, 0xc1, 0xd6, 0xe3, 0x9a, 0xb9, 0x61, 0x2c, 0xc7, 0x4d, 0x69, 0x77, 0xe9, 0x14, 0x1f, 0x70, 0x87, 0xbb, 0x27, 0xab, 0x30, 0x84, 0xa2, 0x62, 0x85, 0x58, 0x6f, 0x84, 0x11, 0xdb, 0x1f, 0x50, 0x3a, 0xdf, 0x52, 0xdc, 0xb2, 0x5a, 0xb8, 0xff, 0xfd, 0x2e, 0xc1, 0x50, 0x4c, 0x17, 0x77, 0xb9, 0xd6, 0xdd, 0x4a, 0x29, 0xe2, 0x01, 0x9e, 0x5c, 0xba, 0xe1, 0xb7, 0xeb, 0x26, 0xf9, 0x5b, 0xbe, 0x07, 0xd9, 0x0c, 0x2f, 0x6f, 0xb0, 0x88, 0x4a, 0x59, 0xa8, 0xd5, 0x8d, 0xde, 0x51, 0x16, 0xed, 0xc3, 0xbc, 0x34, 0x9d, 0x37, 0xc1, 0x60, 0xb2, 0x7b, 0xef, 0xbe, 0x5a, 0x5c, 0x18, 0x1c, 0xe7, 0x25, 0x63, 0x92, 0x35, 0x4d, 0x22, 0x1b, 0x58, 0xc4, 0x7e, 0xb0, 0xbb, 0x10, 0x92, 0x9e, 0x74, 0x21, 0x79, 0x5f, 0x4b, 0x7a, 0x7c, 0x27, 0x5e, 0xdd, 0x08, 0xc0, 0x88, 0x56, 0x87, 0x72, 0xe9, 0x93, 0x21, 0x8d, 0xd6, 0xf3, 0xc2, 0xcb, 0x4a, 0xc6, 0x57, 0xa0, 0xa3, 0xf9, 0x1f, 0x31, 0x26, 0xb9, 0x91, 0xad, 0xf6, 0xcb, 0xe7, 0xd1, 0xb1, 0x9b, 0x8c, 0xd8, 0x3b, 0xe3, 0x60, 0x2e, 0xd1, 0x8f, 0x03, 0x96, 0x33, 0xfb, 0xd2, 0x38, 0x7b, 0xda, 0x69, 0xe2, 0xcf, 0x03, 0x87, 0xd8, 0x64, 0x4d, 0x97, 0xb3, 0x03, 0xfb, 0x00, 0x63, 0x9a, 0xee, 0xe7, 0xae, 0x46, 0x3f, 0x6f, 0xe1, 0xa2, 0xc4, 0xb8, 0x9a, 0xeb, 0xa3, 0xe9, 0x09, 0x4c, 0x11, 0xfc, 0x29, 0x11, 0x4b, 0x20, 0x28, 0x3f, 0x28, 0x7c, 0x6d, 0xd2, 0x8c, 0xb0, 0x98, 0xda, 0xe8, 0xda, 0xbc, 0x48, 0xe8, 0x5b, 0xb5, 0x9c, 0x0d, 0xc6, 0xe7, 0x8c, 0x95, 0x66, 0x05, 0xcb, 0x7c, 0xf0, 0x69, 0x42, 0x35, 0x3e, 0x7a, 0x22, 0xe9, 0x6f, 0x80, 0xa3, 0x7a, 0x66, 0xf7, 0x18, 0xd9, 0xe4, 0xdb, 0x8c, 0x52, 0x45, 0x2a, 0xa0, 0xa3, 0x57, 0x72, 0xe8, 0x1b, 0xa2, 0xb3, 0x03, 0x20, 0x5b, 0x41, 0x2d, 0xd2, 0xbf, 0xc1, 0x5c, 0xe9, 0xb4, 0x36, 0xf9, 0x9f, 0xbb, 0x32, 0x12, 0x6b, 0x63, 0xce, 0x9c, 0xb4, 0x31, 0x99, 0xf1, 0x57, 0xd8, 0x17, 0x51, 0xa7, 0xc4, 0x93, 0x7d, 0x13, 0xaf, 0x4c, 0x58, 0x29, 0x52, 0xb5, 0xd6, 0x06, 0xb5, 0x55, 0xb0, 0x46, 0xbf, 0x1d, 0xe0, 0x6c, 0xf3, 0x9b, 0x63, 0xa8, 0x02, 0x87, 0x37, 0x18, 0x03, 0x60, 0x9a, 0x38, 0x7e, 0xe8, 0x0f, 0x3a, 0x5d, 0x88, 0xb9, 0xd6, 0x21, 0x96, 0x50, 0xed, 0x17, 0xd3, 0xcc, 0x18, 0x3b, 0x2c, 0x70, 0xd5, 0xeb, 0x94, 0xe3, 0xbc, 0x52, 0xae, 0xa7, 0xaa, 0x7f, 0x53, 0xbe, 0x0e, 0x20, 0xb8, 0x97, 0x2f, 0x14, 0x3d, 0x8e, 0x20, 0x16, 0x2e, 0x80, 0x3e, 0xdb, 0x4a, 0xa8, 0x3d, 0x55, 0x53, 0xfd, 0xd5, 0x53, 0x39, 0x8b, 0x0f, 0xa1, 0x76, 0xb9, 0x59, 0xcb, 0xa1, 0x40, 0xd6, 0xe9, 0x80, 0xc9, 0x25, 0x1b, 0x0f, 0xa0, 0xb6, 0x5e, 0x90, 0x84, 0x17, 0xf8, 0x2f, 0x45, 0x1f, 0xf9, 0xf2, 0xde, 0x6b, 0x9c, 0xa5, 0xe3, 0xb5, 0xf4, 0x1b, 0xa4, 0x0d, 0x05, 0xa5, 0x4f, 0x3d, 0xab, 0x48, 0x86, 0xaa, 0xcc, 0xa0, 0x5c, 0x9c, 0x27, 0x98, 0x13, 0x9a, 0x4c, 0xb3, 0x3e, 0x96, 0xa9, 0x14, 0x94, 0x74, 0x99, 0x10, 0xa1, 0x7c, 0xe8, 0xb3, 0x92, 0xfc, 0x0f, 0xc7, 0x76, 0x29, 0x74, 0xd7, 0x9d, 0x33, 0xdb, 0x92, 0x4b, 0xfe, 0xf8, 0x65, 0x5a, 0x72, 0x37, 0x76, 0xff, 0x87, 0xf9, 0x50, 0xfd, 0xc5, 0x68, 0xb1, 0xe5, 0x26, 0x53, 0x45, 0x41, 0xf5, 0x72, 0x72, 0x3b, 0x84, 0x06, 0x63, 0xc1, 0x91, 0x88, 0xc4, 0x24, 0xf7, 0xc4, 0x89, 0x23, 0x5a, 0x42, 0x4b, 0x09, 0xfe, 0x25, 0xc3, 0x07, 0x27, 0xea, 0x1c, 0xb0, 0x49, 0x53, 0xd7, 0x06, 0xd6, 0x8b, 0xfe, 0x12, 0x10, 0x0e, 0xf6, 0xf6, 0x4c, 0x35, 0xc6, 0xb8, 0xde, 0x67, 0xed, 0xf0, 0xe3, 0xad, 0x01, 0x4a, 0x40, 0x0e, 0x82, 0x1e, 0xa3, 0x40, 0x24, 0x32, 0x19, 0x99, 0x86, 0x7b, 0x43, 0xc8, 0x2c, 0x45, 0x01, 0x84, 0xb7, 0x8f, 0x74, 0x25, 0xce, 0xbd, 0x73, 0x19, 0xdc, 0x6f, 0x65, 0xd3, 0x60, 0x66, 0x5d, 0xfb, 0xe7, 0xc3, 0x66, 0x74, 0xda, 0xc3, 0xa5, 0x4e, 0x96, 0xda, 0x91, 0x0c, 0x02, 0xd3, 0x64, 0x07, 0x80, 0xb2, 0x2d, 0x51, 0x2c, 0xa0, 0xe3, 0xca, 0x35, 0x87, 0xb9, 0x4e, 0xa9, 0xfc, 0xd7, 0xa3, 0x1b, 0x4a, 0xf6, 0x9f, 0xd6, 0x20, 0x7c, 0x68, 0xfe, 0xd2, 0x5f, 0x89, 0x92, 0x1c, 0x1c, 0xdc, 0xde, 0xfd, 0x1c, 0x09, 0x02, 0x04, 0x49, 0x2b, 0xff, 0x9b, 0xbb, 0x52, 0xe0, 0x88, 0x85, 0x82, 0x9d, 0x01, 0x2b, 0xc2, 0xdf, 0xb4, 0xfe, 0x8c, 0x35, 0xe5, 0x9c, 0xd1, 0x3b, 0xcb, 0x8e, 0xad, 0x34, 0x19, 0x3c, 0x40, 0xb0, 0x3e, 0xe4, 0xd8, 0x25, 0xee, 0x13, 0x22, 0xff, 0x4e, 0xf0, 0x71, 0x27, 0x95, 0x74, 0xcb, 0xae, 0xe7, 0xc0, 0x7f, 0x14, 0xbe, 0x60, 0x6b, 0x9c, 0xd0, 0xe2, 0x61, 0x11, 0x1e, 0xf2, 0x0d, 0x96, 0x81, 0xd7, 0x6c, 0xf7, 0x8c, 0x89, 0xa8, 0xc3, 0x97, 0xd6, 0xb8, 0xdc, 0x77, 0x8f, 0x49, 0x84, 0x16, 0x6a, 0xd5, 0xdf, 0x3a, 0x81, 0xaa, 0xf2, 0xe6, 0xde, 0x09, 0xf7, 0x00, 0x19, 0x5a, 0xe2, 0xc1, 0xd4, 0x60, 0x96, 0x47, };
17479 static const u8 ed25519_760_test_vectors_expected_sig[] = {
17480 	0x4f, 0x3d, 0x4d, 0x22, 0x85, 0x03, 0x01, 0x7e, 0x74, 0xa6, 0xbb, 0x58, 0xaa, 0xfa, 0xe3, 0x5c, 0x3f, 0x37, 0xbd, 0xee, 0x4f, 0xf6, 0xbe, 0x2e, 0x62, 0x40, 0xb5, 0x08, 0x2f, 0xed, 0xdb, 0x22, 0x27, 0x35, 0xe1, 0x2f, 0x31, 0xe0, 0x56, 0xfa, 0x68, 0x54, 0x47, 0xe5, 0x38, 0x48, 0x03, 0x00, 0x7e, 0xa7, 0x91, 0x0e, 0x60, 0x5c, 0x1b, 0x78, 0x11, 0x8c, 0xd5, 0xac, 0xc5, 0x87, 0xa6, 0x06, };
17481 static const ec_test_case ed25519_760_test_case = {
17482 	.name = "EDDSA25519-SHA512/wei25519 760",
17483 	.ec_str_p = &wei25519_str_params,
17484 	.priv_key = ed25519_760_test_vectors_priv_key,
17485 	.priv_key_len = sizeof(ed25519_760_test_vectors_priv_key),
17486 	.nn_random = NULL,
17487 	.hash_type = SHA512,
17488 	.msg = (const char *)ed25519_760_test_vectors_message,
17489 	.msglen = sizeof(ed25519_760_test_vectors_message),
17490 	.sig_type = EDDSA25519,
17491 	.exp_sig = ed25519_760_test_vectors_expected_sig,
17492 	.exp_siglen = sizeof(ed25519_760_test_vectors_expected_sig),
17493 	.adata = NULL,
17494 	.adata_len = 0
17495 };
17496 
17497 /************************************************/
17498 static const u8 ed25519_761_test_vectors_priv_key[] = {
17499 	0xd4, 0xa7, 0xa9, 0x52, 0x4d, 0x30, 0xa6, 0x33, 0x7c, 0x0a, 0x0b, 0xe9, 0x5c, 0xa9, 0x05, 0x91, 0xde, 0x98, 0x88, 0x03, 0x8e, 0x3e, 0x59, 0xe1, 0xb2, 0x5a, 0x41, 0x81, 0xef, 0x94, 0x66, 0x29, };
17500 static const u8 ed25519_761_test_vectors_message[] = {
17501 	0x17, 0x19, 0x80, 0xc0, 0x3f, 0xdf, 0x7a, 0x72, 0x7b, 0xd5, 0xba, 0xb3, 0xba, 0x09, 0x45, 0xe6, 0xad, 0x5f, 0xaf, 0x0a, 0x7f, 0x50, 0x6a, 0x56, 0xd1, 0xd0, 0xed, 0xd9, 0xa3, 0x06, 0xb3, 0x15, 0x8d, 0x84, 0x32, 0x66, 0xd3, 0x09, 0x1f, 0xc1, 0xe4, 0x22, 0x81, 0xdf, 0x97, 0x55, 0x9a, 0x22, 0x01, 0xf5, 0xbd, 0xdd, 0xfe, 0x68, 0x3d, 0x0e, 0x10, 0x28, 0xd1, 0xd9, 0x5b, 0x2f, 0x31, 0x3b, 0x48, 0x4c, 0x39, 0x2f, 0xfd, 0xb1, 0xcd, 0xf8, 0x85, 0x08, 0xaf, 0xde, 0x3d, 0x6f, 0xd2, 0xa1, 0x28, 0x88, 0xba, 0xce, 0xde, 0xb7, 0x9f, 0xf3, 0xdb, 0x40, 0xc9, 0xac, 0x0e, 0xc3, 0xfb, 0x90, 0x1b, 0x22, 0x86, 0x98, 0xad, 0xf8, 0xd8, 0x45, 0xff, 0x4f, 0xce, 0x10, 0xde, 0x55, 0xd4, 0x24, 0x36, 0xdc, 0xe9, 0x30, 0x97, 0x3a, 0x34, 0xbe, 0x05, 0xd1, 0x40, 0x1f, 0x33, 0x4d, 0x4c, 0xe8, 0xe3, 0xa7, 0x93, 0x79, 0x9e, 0xaf, 0xdb, 0x94, 0xd0, 0xf2, 0xab, 0x09, 0x50, 0xb0, 0x79, 0xe6, 0x65, 0x3e, 0xeb, 0x49, 0x9f, 0xc7, 0x44, 0x7c, 0xcb, 0xee, 0xed, 0x8d, 0xbd, 0x54, 0x56, 0x80, 0x8c, 0xd7, 0xa3, 0x8f, 0x9a, 0x15, 0xa2, 0xa9, 0xc7, 0x38, 0xd6, 0x13, 0x34, 0xca, 0xb8, 0xce, 0xeb, 0xbb, 0xf4, 0xa4, 0x81, 0x4d, 0x94, 0xc6, 0x18, 0x59, 0x17, 0x87, 0x84, 0x60, 0x4e, 0x0c, 0x21, 0x54, 0x59, 0x7e, 0x72, 0xcf, 0x58, 0x7c, 0xd1, 0xf5, 0xda, 0xfe, 0x59, 0x22, 0x05, 0x18, 0x90, 0xe7, 0x6d, 0x61, 0x6d, 0x8c, 0xd5, 0xb0, 0x5d, 0x64, 0x78, 0xd0, 0x62, 0x6e, 0xa8, 0x3c, 0xe8, 0x08, 0xc4, 0x61, 0x43, 0xe6, 0xfb, 0x06, 0xb4, 0x18, 0x2d, 0x22, 0x8d, 0xa8, 0xf6, 0xd4, 0x13, 0x9e, 0xca, 0x5b, 0x8f, 0x3b, 0x1b, 0x98, 0xaf, 0x68, 0xc5, 0x9b, 0x4b, 0x5a, 0x53, 0xc1, 0x36, 0xee, 0x90, 0x43, 0x2a, 0xca, 0x2b, 0xb9, 0x15, 0x52, 0x9d, 0x26, 0x36, 0x79, 0x49, 0x82, 0x62, 0x33, 0xb4, 0x3e, 0x55, 0x80, 0x4b, 0x55, 0xfc, 0x9f, 0x21, 0x5e, 0xb0, 0xb0, 0xb7, 0x92, 0x91, 0x46, 0x5b, 0xb3, 0x4e, 0xda, 0xea, 0xdf, 0xfa, 0xbf, 0xe6, 0xcf, 0x41, 0xbc, 0x07, 0xb5, 0xdd, 0x4d, 0x01, 0x42, 0xf0, 0x36, 0x1f, 0x05, 0x8e, 0xe1, 0xb3, 0xb9, 0xfc, 0xc1, 0x96, 0xeb, 0x9b, 0x35, 0xb1, 0x34, 0xbe, 0x3d, 0x1d, 0x23, 0x20, 0x04, 0x48, 0x9e, 0x8f, 0x69, 0x93, 0xf6, 0x25, 0xa6, 0x30, 0x15, 0xbc, 0xd3, 0xf1, 0xe8, 0x75, 0x88, 0x32, 0x48, 0x58, 0xcc, 0xfb, 0x77, 0x0d, 0xdd, 0xd8, 0x94, 0xbf, 0x29, 0x7b, 0xd7, 0x63, 0xef, 0x58, 0x28, 0xe2, 0x1f, 0x5c, 0x89, 0xaa, 0x98, 0xcf, 0xbc, 0x1c, 0x08, 0x2d, 0xd7, 0xfb, 0xaa, 0x43, 0x07, 0xbd, 0xa4, 0x0b, 0x4a, 0x75, 0x8c, 0xa8, 0xf3, 0x9f, 0x4e, 0x4a, 0xae, 0xd3, 0x09, 0x04, 0x12, 0x68, 0xdb, 0xcf, 0x0a, 0xf3, 0x2d, 0xe0, 0xd7, 0xfa, 0x90, 0xa5, 0x23, 0x96, 0x3b, 0x78, 0x0b, 0x6a, 0x93, 0x2c, 0xf8, 0x94, 0x99, 0x02, 0x5f, 0x0e, 0x0d, 0x04, 0x74, 0xc7, 0x43, 0x48, 0x94, 0x75, 0x10, 0xe6, 0xc5, 0xec, 0x7c, 0x9e, 0x05, 0x06, 0x6e, 0xeb, 0x4a, 0x73, 0x52, 0x0c, 0x3d, 0x92, 0x7c, 0x39, 0xac, 0x26, 0xad, 0x75, 0x96, 0x32, 0x5b, 0x2c, 0xc4, 0x7c, 0x5e, 0x82, 0xa7, 0x75, 0x45, 0x5b, 0x7a, 0xf0, 0x31, 0x20, 0xb1, 0xcf, 0xbf, 0xd6, 0xec, 0x3f, 0xc0, 0xc3, 0xbe, 0x60, 0x78, 0xb0, 0x0c, 0xfd, 0xf8, 0x34, 0x2a, 0xe8, 0xbf, 0x14, 0x71, 0x59, 0xf5, 0x0e, 0x9d, 0x56, 0x4e, 0x2f, 0x68, 0x30, 0x6d, 0xae, 0x3c, 0xae, 0xdd, 0x10, 0x19, 0xf3, 0x23, 0xc4, 0x78, 0xa1, 0xe1, 0xf6, 0x75, 0x98, 0xdd, 0x83, 0x4b, 0xd1, 0xd1, 0xa8, 0x73, 0x3f, 0xd7, 0xfd, 0xd8, 0xa8, 0x76, 0x52, 0x6c, 0x53, 0x15, 0x18, 0x93, 0x6e, 0xdb, 0x72, 0xd0, 0x16, 0x56, 0xb3, 0x44, 0xc7, 0xd6, 0x5a, 0xc1, 0xce, 0xe3, 0x7c, 0xe5, 0x99, 0x7b, 0xa4, 0x8d, 0x3f, 0x4d, 0x06, 0x4d, 0x88, 0x05, 0x7e, 0xfe, 0x9a, 0x48, 0x2d, 0x9e, 0x00, 0xab, 0x5c, 0xae, 0xb5, 0xac, 0xa2, 0xd6, 0x60, 0xe3, 0x37, 0xbd, 0x15, 0x48, 0x73, 0x65, 0x69, 0x79, 0x56, 0xa5, 0xe4, 0x7b, 0x02, 0xab, 0xdc, 0x30, 0xd8, 0xe3, 0x53, 0xfe, 0xd4, 0xe1, 0xac, 0x41, 0xd2, 0xbc, 0x21, 0x20, 0x02, 0x11, 0x43, 0x63, 0x59, 0x35, 0xc6, 0x20, 0x18, 0x6a, 0x52, 0x2b, 0xde, 0x54, 0xbe, 0x04, 0x46, 0xfb, 0xd2, 0xdc, 0x88, 0xb5, 0x63, 0x04, 0xb3, 0xa6, 0x42, 0x27, 0xd0, 0xac, 0xd5, 0xf8, 0x5a, 0x6b, 0x67, 0x87, 0xa3, 0xad, 0xcf, 0x2d, 0x7c, 0xfc, 0x86, 0xc6, 0x34, 0xb4, 0xd7, 0xab, 0x43, 0x15, 0xb9, 0x7d, 0xe9, 0xe6, 0x66, 0xcf, 0xf3, 0xff, 0x1b, 0x88, 0xf3, 0x29, 0x5e, 0x7b, 0xab, 0x9e, 0x9f, 0xd4, 0x6f, 0xaf, 0xdd, 0xb4, 0xf5, 0xfa, 0xc5, 0x1c, 0xc0, 0x17, 0x01, 0x29, 0xc6, 0x51, 0xb4, 0xef, 0x4d, 0x39, 0x50, 0xd6, 0x94, 0x2f, 0xf0, 0x20, 0xd1, 0x66, 0x8a, 0x52, 0x8b, 0xde, 0x1d, 0xa9, 0x36, 0xc0, 0xec, 0x1a, 0xe0, 0x9e, 0x84, 0xf8, 0x20, 0x58, 0x61, 0xff, 0xf4, 0x91, 0x50, 0x2a, 0x87, 0x2c, 0x81, 0x54, 0xa9, 0x6e, 0x7e, 0xa2, 0x5e, 0xda, 0x95, 0x5a, 0x7f, 0xd2, 0xe4, 0xb4, 0xc7, 0xa8, 0xd2, 0x73, 0xf6, 0x0b, 0xc7, 0x4f, 0xab, 0x7b, 0x49, 0x68, 0xca, 0x6f, 0x75, 0xda, 0xea, 0x50, 0x40, 0xf8, 0x39, 0xfd, 0x56, 0xc2, 0xa9, 0x80, };
17502 static const u8 ed25519_761_test_vectors_expected_sig[] = {
17503 	0xd1, 0x57, 0x88, 0xbc, 0xd8, 0x8d, 0x1d, 0x81, 0xb9, 0xe6, 0x1d, 0x4f, 0xe2, 0x6e, 0xa4, 0x9e, 0x66, 0x81, 0x9a, 0x59, 0xd2, 0xae, 0x48, 0x32, 0x32, 0x1b, 0x81, 0x4d, 0x50, 0x62, 0xfa, 0xdb, 0x87, 0x80, 0x7d, 0xb6, 0x85, 0x2e, 0x1d, 0x82, 0x95, 0xe3, 0x1a, 0x29, 0x1b, 0x1e, 0x78, 0x5d, 0x01, 0xd8, 0x34, 0x89, 0x5f, 0x88, 0xf4, 0x00, 0xdf, 0x88, 0x32, 0xc1, 0x60, 0x7b, 0x5b, 0x0c, };
17504 static const ec_test_case ed25519_761_test_case = {
17505 	.name = "EDDSA25519-SHA512/wei25519 761",
17506 	.ec_str_p = &wei25519_str_params,
17507 	.priv_key = ed25519_761_test_vectors_priv_key,
17508 	.priv_key_len = sizeof(ed25519_761_test_vectors_priv_key),
17509 	.nn_random = NULL,
17510 	.hash_type = SHA512,
17511 	.msg = (const char *)ed25519_761_test_vectors_message,
17512 	.msglen = sizeof(ed25519_761_test_vectors_message),
17513 	.sig_type = EDDSA25519,
17514 	.exp_sig = ed25519_761_test_vectors_expected_sig,
17515 	.exp_siglen = sizeof(ed25519_761_test_vectors_expected_sig),
17516 	.adata = NULL,
17517 	.adata_len = 0
17518 };
17519 
17520 /************************************************/
17521 static const u8 ed25519_762_test_vectors_priv_key[] = {
17522 	0xd0, 0x8f, 0x4b, 0xab, 0xba, 0x3b, 0x53, 0x65, 0xfa, 0xf7, 0x38, 0x79, 0x5c, 0x9d, 0xa4, 0x5d, 0xb1, 0x86, 0x2c, 0xb2, 0x8b, 0x93, 0xeb, 0x66, 0x35, 0xd1, 0x32, 0x0d, 0xa0, 0xf4, 0xd9, 0x37, };
17523 static const u8 ed25519_762_test_vectors_message[] = {
17524 	0xa3, 0x94, 0xd8, 0x85, 0x4c, 0xeb, 0x5c, 0x43, 0xaf, 0xee, 0x1a, 0x48, 0x92, 0x6b, 0xbd, 0x66, 0x85, 0xaa, 0x8a, 0xec, 0xfd, 0xcf, 0x85, 0x41, 0x33, 0x33, 0x39, 0x74, 0xd6, 0x24, 0xbf, 0x2f, 0x1f, 0x9c, 0x30, 0xf0, 0x05, 0xbb, 0xf3, 0x4c, 0xee, 0x3a, 0xfe, 0x2b, 0x29, 0x06, 0x00, 0xee, 0xae, 0x6f, 0x1d, 0xd1, 0x2a, 0x0c, 0x34, 0x6f, 0xbb, 0x2a, 0xb9, 0xc9, 0x16, 0xc5, 0xd5, 0xd8, 0x0d, 0xcd, 0x87, 0x88, 0x78, 0x75, 0xa0, 0xac, 0x84, 0x76, 0x78, 0x03, 0x9f, 0xdc, 0xd3, 0xa9, 0x79, 0x35, 0x41, 0xf5, 0xd6, 0x75, 0x14, 0x3a, 0x6a, 0xba, 0xdc, 0x3b, 0x18, 0xf0, 0xfe, 0xf5, 0x10, 0x8c, 0x19, 0xc2, 0xdb, 0xfb, 0x59, 0x71, 0x0e, 0xef, 0x98, 0x66, 0xa4, 0xf3, 0xf2, 0x97, 0xa0, 0x9e, 0xe4, 0x8c, 0x68, 0x03, 0x00, 0x7d, 0xd6, 0xba, 0x8f, 0xd4, 0xbe, 0x84, 0x1c, 0xfb, 0x10, 0xff, 0x05, 0x14, 0xc3, 0x0f, 0xc4, 0xdd, 0x49, 0xa3, 0xcd, 0x43, 0xbb, 0xd1, 0x6e, 0x46, 0x04, 0x43, 0xa1, 0x1a, 0xfe, 0x64, 0x9e, 0x90, 0x1d, 0x63, 0xd8, 0x9a, 0xf5, 0x98, 0xaa, 0x68, 0x6b, 0x2f, 0x60, 0x7e, 0xc1, 0x1f, 0x35, 0xe1, 0x7a, 0x79, 0x8a, 0x42, 0x13, 0xb7, 0x5a, 0x38, 0x78, 0x8d, 0xa4, 0xf2, 0x7c, 0xf2, 0xb0, 0x2c, 0xad, 0xdf, 0xe6, 0x1c, 0x37, 0x29, 0xa8, 0x7e, 0xc6, 0xe6, 0xb0, 0x98, 0xf6, 0x8e, 0x7a, 0xed, 0x28, 0xa8, 0x00, 0xc4, 0x84, 0xdf, 0xa0, 0x13, 0x04, 0x01, 0x20, 0x8f, 0x98, 0x6d, 0x79, 0x2f, 0x54, 0x63, 0x5a, 0xdd, 0x28, 0x48, 0xe1, 0x51, 0x26, 0x2a, 0x36, 0x5e, 0xb2, 0x1e, 0x27, 0x27, 0x19, 0x1e, 0x1f, 0x70, 0x0f, 0x3b, 0xf5, 0xc7, 0x3b, 0x0f, 0xb4, 0xc5, 0x46, 0xd0, 0x04, 0x8a, 0x15, 0x5c, 0x18, 0x71, 0x79, 0x20, 0xfc, 0x04, 0x25, 0xc8, 0xc8, 0xfa, 0x8f, 0x16, 0x7c, 0x43, 0xa2, 0x77, 0xbb, 0x36, 0x6e, 0x0a, 0xd7, 0x02, 0xc8, 0x9b, 0xc5, 0xaa, 0x06, 0xfd, 0x47, 0x09, 0x43, 0xbe, 0x05, 0xcb, 0x9e, 0x32, 0x59, 0x78, 0x72, 0x29, 0x71, 0x4c, 0x30, 0xa4, 0xe8, 0x7b, 0x00, 0xa6, 0x33, 0xaa, 0xf7, 0xbe, 0x6b, 0x58, 0x75, 0x01, 0x0d, 0x12, 0xe1, 0x07, 0xc9, 0xa5, 0x26, 0x1c, 0xa5, 0x62, 0xd6, 0x70, 0x25, 0xbe, 0xa0, 0xfe, 0x22, 0x34, 0x63, 0xed, 0xb9, 0x2e, 0xa0, 0x1c, 0xca, 0x92, 0xc4, 0x4f, 0xf2, 0x4d, 0xa9, 0xd8, 0xa8, 0x0a, 0x64, 0x21, 0xf3, 0xd4, 0x13, 0x5d, 0x64, 0x7d, 0x1b, 0xb0, 0xfd, 0x98, 0x8c, 0x46, 0xc8, 0xa1, 0x70, 0xce, 0xb4, 0xf3, 0x3f, 0xff, 0x9c, 0x0f, 0xfb, 0x6a, 0xba, 0xd1, 0x09, 0x2c, 0x84, 0xdf, 0xad, 0x82, 0x90, 0x89, 0x8b, 0x24, 0x95, 0x16, 0xa2, 0x92, 0xe8, 0xda, 0x96, 0xfd, 0x51, 0xa8, 0x10, 0x05, 0xee, 0xcf, 0xde, 0xbb, 0x05, 0x93, 0x30, 0x99, 0x27, 0x7d, 0x07, 0x3a, 0x48, 0x0c, 0x3f, 0x9e, 0xb8, 0xaa, 0x11, 0x96, 0x8c, 0x4d, 0x8d, 0xc0, 0x78, 0x7a, 0x9a, 0xec, 0x3e, 0x05, 0x27, 0xb7, 0xfe, 0x4c, 0x06, 0x35, 0x41, 0x13, 0x35, 0xa1, 0x81, 0x16, 0x89, 0xe8, 0x8f, 0x6d, 0x5c, 0xed, 0x0d, 0x40, 0xd6, 0xb4, 0x8b, 0x7f, 0x2d, 0x99, 0x29, 0x52, 0x93, 0x48, 0x94, 0x15, 0x30, 0x76, 0xa8, 0xd3, 0x73, 0x72, 0xfa, 0x00, 0xd9, 0xce, 0xfc, 0x5c, 0xf8, 0xc2, 0x6a, 0xdb, 0x5a, 0xcf, 0x32, 0x5a, 0x01, 0xcd, 0x00, 0x5a, 0xb8, 0xd4, 0x74, 0xa5, 0x2d, 0x67, 0x11, 0x40, 0x78, 0xc6, 0x51, 0x6a, 0xef, 0x80, 0x4b, 0xba, 0x19, 0xb8, 0x87, 0xa2, 0x8e, 0xd5, 0xe4, 0x6e, 0xe9, 0x99, 0x5e, 0x5a, 0xd3, 0xa8, 0x2f, 0xb9, 0xcd, 0x93, 0x28, 0x34, 0x33, 0x68, 0x09, 0x21, 0x11, 0x4b, 0x4d, 0x9a, 0xf8, 0xfc, 0xb6, 0xb2, 0xb5, 0x35, 0x83, 0x9c, 0x36, 0xde, 0x8d, 0xf1, 0x2b, 0x17, 0xea, 0x6d, 0xdc, 0xfc, 0xb3, 0x33, 0x4f, 0xf4, 0x0e, 0x6c, 0xf0, 0x4c, 0xcd, 0x5c, 0xa6, 0x40, 0x3b, 0xa0, 0xb6, 0x2b, 0x4c, 0xb7, 0x1b, 0xbd, 0xe9, 0x1d, 0x8b, 0xab, 0xda, 0x69, 0x15, 0x2c, 0x9c, 0x93, 0xae, 0x76, 0x9b, 0x55, 0x29, 0xc8, 0xd5, 0x2f, 0xd9, 0xa6, 0x90, 0x9a, 0x15, 0xe1, 0xa0, 0x60, 0x1a, 0x71, 0x46, 0x49, 0xc9, 0x6e, 0xc9, 0x96, 0xc1, 0x70, 0x6d, 0x10, 0x21, 0xb9, 0x74, 0x87, 0x98, 0x0d, 0x7b, 0x2c, 0x2a, 0x39, 0xbb, 0xb0, 0xe4, 0x70, 0xd8, 0xe4, 0x6a, 0xc4, 0xaa, 0x60, 0x9a, 0x09, 0x22, 0xc9, 0xbd, 0xc0, 0x16, 0x12, 0xea, 0xde, 0xac, 0xcd, 0x5f, 0xa5, 0x23, 0xb2, 0xa8, 0xd0, 0xe6, 0x2f, 0xfe, 0x56, 0x28, 0x16, 0x47, 0xd6, 0x1f, 0xff, 0xbb, 0xc8, 0x40, 0x53, 0x57, 0x45, 0xd1, 0x44, 0x25, 0x9c, 0xc8, 0x13, 0x00, 0xfe, 0x99, 0xdf, 0xbf, 0xfe, 0xa6, 0xb0, 0xb9, 0xbc, 0xd2, 0x84, 0x73, 0x98, 0x2d, 0x32, 0xe9, 0x3e, 0xd4, 0x66, 0x34, 0xa9, 0x98, 0x79, 0x06, 0xd6, 0xf4, 0x89, 0x39, 0xd8, 0xdf, 0xbf, 0xb3, 0x7d, 0x33, 0xb8, 0x88, 0xdb, 0x60, 0x8c, 0xb2, 0xff, 0xe3, 0x9a, 0x8c, 0xf6, 0x7b, 0x72, 0x64, 0x46, 0x11, 0xc7, 0xd3, 0x2a, 0x4a, 0x8d, 0xf6, 0x12, 0x46, 0x8c, 0xd5, 0xe5, 0xd7, 0x5f, 0xbb, 0xa7, 0x9e, 0x63, 0x8a, 0xa1, 0xda, 0xa2, 0x8c, 0x4e, 0x0e, 0xeb, 0x9a, 0x63, 0x7f, 0xf8, 0xa0, 0x8b, 0x65, 0xf7, 0xa7, 0x61, 0x24, 0x14, 0xdf, 0x76, 0xbc, 0x7b, 0x0b, 0x56, 0xb5, 0x53, 0x7d, 0x66, 0x6f, 0xac, 0xfd, 0xda, 0xf6, 0x5a, 0xf1, };
17525 static const u8 ed25519_762_test_vectors_expected_sig[] = {
17526 	0xac, 0xeb, 0xe4, 0xc8, 0x6f, 0xa9, 0xfe, 0x2c, 0x1a, 0x5c, 0x57, 0x6a, 0xc0, 0x50, 0x1e, 0x8a, 0xb0, 0xf6, 0x40, 0xfa, 0x40, 0x38, 0x05, 0x36, 0xfc, 0xf9, 0x50, 0x59, 0xd5, 0x3d, 0x4a, 0x35, 0x55, 0xd2, 0x20, 0xac, 0x36, 0x35, 0x87, 0x17, 0x5e, 0x4b, 0xde, 0x16, 0x3c, 0x0d, 0x00, 0x65, 0x0a, 0x12, 0x96, 0x3d, 0x46, 0x76, 0x6c, 0x99, 0xbb, 0x62, 0xbf, 0x75, 0x73, 0xe2, 0x87, 0x0c, };
17527 static const ec_test_case ed25519_762_test_case = {
17528 	.name = "EDDSA25519-SHA512/wei25519 762",
17529 	.ec_str_p = &wei25519_str_params,
17530 	.priv_key = ed25519_762_test_vectors_priv_key,
17531 	.priv_key_len = sizeof(ed25519_762_test_vectors_priv_key),
17532 	.nn_random = NULL,
17533 	.hash_type = SHA512,
17534 	.msg = (const char *)ed25519_762_test_vectors_message,
17535 	.msglen = sizeof(ed25519_762_test_vectors_message),
17536 	.sig_type = EDDSA25519,
17537 	.exp_sig = ed25519_762_test_vectors_expected_sig,
17538 	.exp_siglen = sizeof(ed25519_762_test_vectors_expected_sig),
17539 	.adata = NULL,
17540 	.adata_len = 0
17541 };
17542 
17543 /************************************************/
17544 static const u8 ed25519_763_test_vectors_priv_key[] = {
17545 	0x8f, 0x47, 0x4f, 0x88, 0xcf, 0x86, 0x3c, 0x48, 0x54, 0x56, 0xa5, 0xa2, 0x15, 0x52, 0x81, 0xff, 0x27, 0xb2, 0x84, 0x59, 0xf6, 0x3b, 0xc4, 0xf1, 0xdb, 0x00, 0xe0, 0x03, 0x10, 0x64, 0xf6, 0x49, };
17546 static const u8 ed25519_763_test_vectors_message[] = {
17547 	0x84, 0x08, 0x91, 0xd9, 0x48, 0xec, 0x19, 0xc8, 0xc7, 0xf7, 0xc9, 0xd3, 0xc4, 0x77, 0x53, 0x62, 0xa5, 0x44, 0xa0, 0xec, 0x97, 0x45, 0x7a, 0xb5, 0xd1, 0x4e, 0x12, 0x5d, 0xc5, 0x4b, 0x59, 0xc8, 0xdc, 0x9a, 0x63, 0x5e, 0x7b, 0xad, 0xb6, 0xbe, 0x73, 0xc3, 0xa5, 0x8d, 0xc0, 0xe9, 0x92, 0x9f, 0x2b, 0x42, 0x0d, 0x83, 0x56, 0xd6, 0x17, 0xc3, 0xd4, 0x1b, 0xfe, 0x69, 0xb4, 0xe1, 0x58, 0xd4, 0xbf, 0x08, 0xfb, 0x17, 0xe6, 0x88, 0xd3, 0xcf, 0x3c, 0x94, 0x8b, 0x69, 0xb3, 0x5f, 0x0b, 0x6d, 0xb6, 0x62, 0x72, 0xa8, 0xeb, 0x2b, 0xd4, 0x10, 0xd6, 0x50, 0x9f, 0x6c, 0x82, 0x8b, 0x6a, 0x20, 0xd6, 0x58, 0x6e, 0xaf, 0x85, 0x76, 0x01, 0xed, 0x9d, 0x60, 0x54, 0x79, 0x9c, 0x25, 0x32, 0x0e, 0xba, 0x80, 0x77, 0xfe, 0x1a, 0xe2, 0x26, 0x71, 0xb3, 0x3a, 0x15, 0x88, 0xff, 0x2b, 0x23, 0x5d, 0x3c, 0x71, 0xa2, 0x7c, 0xe5, 0xc6, 0xc6, 0x6e, 0x18, 0x88, 0x91, 0x98, 0xd1, 0x16, 0x93, 0x36, 0x76, 0xbc, 0x4f, 0xb0, 0x71, 0x0d, 0xb7, 0xff, 0x1a, 0xc2, 0xf2, 0x0c, 0xe3, 0x69, 0xbe, 0xf5, 0x6b, 0x43, 0xcd, 0x1d, 0x40, 0x6c, 0xef, 0xda, 0xcf, 0x00, 0xf1, 0xf3, 0x48, 0xb8, 0xca, 0x7a, 0xa6, 0x14, 0xdb, 0x11, 0xa3, 0xa6, 0x40, 0xfd, 0xb5, 0x93, 0x89, 0xd1, 0xa6, 0xa3, 0x94, 0x75, 0x5c, 0x13, 0x3f, 0x1b, 0x01, 0x9c, 0x83, 0x08, 0xca, 0x5a, 0x95, 0x1e, 0x73, 0xb8, 0x10, 0xa1, 0x80, 0xf6, 0xff, 0x25, 0xb2, 0x9d, 0xbb, 0xcc, 0xef, 0x4c, 0x13, 0xa9, 0x75, 0x03, 0x39, 0x39, 0x07, 0xa2, 0xdb, 0xa0, 0x96, 0xa8, 0xce, 0x5c, 0x86, 0xc0, 0xee, 0x6f, 0x97, 0xc1, 0x44, 0x1b, 0x8d, 0x63, 0x31, 0xcb, 0xa5, 0x3b, 0x19, 0x60, 0x6b, 0x42, 0x1a, 0xf5, 0x2f, 0x65, 0xf9, 0xc6, 0x63, 0xe6, 0x3d, 0x39, 0x82, 0x71, 0x8f, 0x94, 0x8c, 0x6b, 0xae, 0x96, 0x1b, 0x8e, 0x4b, 0xf8, 0xcd, 0x9e, 0x31, 0xcd, 0x09, 0x92, 0x8e, 0x4e, 0x80, 0x61, 0x65, 0x97, 0xcc, 0xfa, 0xdc, 0xb8, 0xa6, 0x14, 0x15, 0x49, 0x33, 0xbc, 0x37, 0x58, 0x9c, 0x85, 0xc7, 0x76, 0xe3, 0x4e, 0x5a, 0x90, 0x66, 0x0f, 0x59, 0xa6, 0x5b, 0x5e, 0x93, 0xad, 0x43, 0x88, 0x42, 0xf9, 0x82, 0xd0, 0x2b, 0x04, 0x1e, 0x6d, 0xbd, 0xdf, 0x17, 0x10, 0x99, 0xf8, 0xdb, 0x70, 0x99, 0x57, 0x31, 0xa0, 0xdb, 0x8c, 0x46, 0x25, 0xc9, 0xbc, 0xa7, 0x10, 0x80, 0x59, 0x61, 0xfb, 0x17, 0x6d, 0xae, 0x81, 0x97, 0x68, 0xfc, 0xad, 0x7f, 0xf9, 0xbf, 0xce, 0x36, 0x40, 0x3c, 0xa7, 0xf7, 0x83, 0xe7, 0x61, 0x37, 0x26, 0xd7, 0xdc, 0x59, 0xf2, 0x4e, 0x24, 0x7c, 0xf1, 0x50, 0x68, 0xff, 0x3b, 0x19, 0xc7, 0x25, 0xfa, 0xd6, 0x5e, 0xa8, 0xe8, 0xa7, 0xf7, 0x22, 0xd5, 0x28, 0xc9, 0x5f, 0xce, 0xf1, 0xc0, 0xcc, 0x79, 0xd1, 0x8e, 0xf0, 0x7c, 0xee, 0x8b, 0x01, 0x1e, 0xea, 0xbd, 0x99, 0x21, 0x63, 0x4d, 0x76, 0xa6, 0x1a, 0x8a, 0x3c, 0x89, 0x31, 0xb8, 0x27, 0xe8, 0x18, 0x98, 0x81, 0xf8, 0x1f, 0x7a, 0x17, 0x5f, 0x21, 0xfb, 0x03, 0x78, 0xb8, 0x18, 0x8e, 0x58, 0xbd, 0xb2, 0x01, 0x7b, 0xef, 0x39, 0x0f, 0x18, 0x00, 0xd9, 0xd7, 0x4f, 0x26, 0x3a, 0x81, 0xdf, 0x8e, 0x67, 0x52, 0x2d, 0x09, 0x2e, 0x77, 0x5d, 0x01, 0xe0, 0x04, 0xe7, 0xf8, 0xd8, 0x28, 0x1a, 0xe2, 0xc2, 0xfd, 0xf8, 0xc3, 0xa4, 0x45, 0xf9, 0xef, 0xf7, 0xfd, 0xf1, 0x3f, 0x26, 0x1a, 0x77, 0x3d, 0xdf, 0x2d, 0xd9, 0xcc, 0x6b, 0xa5, 0x58, 0x5d, 0x99, 0x0c, 0x99, 0x5e, 0x6e, 0xb8, 0x9d, 0xff, 0xd9, 0xff, 0x0a, 0x9d, 0xbb, 0x76, 0xce, 0x5e, 0x10, 0xdd, 0x02, 0x72, 0xd5, 0x00, 0x14, 0x97, 0x88, 0x13, 0x66, 0xf5, 0xd6, 0x36, 0xa9, 0xcc, 0xea, 0xa2, 0x83, 0x22, 0x8d, 0x3a, 0xc6, 0x14, 0xdb, 0x21, 0x7a, 0xb8, 0x91, 0xd6, 0x68, 0x9d, 0xbe, 0xb9, 0x50, 0xe1, 0x20, 0x0c, 0x3d, 0xe5, 0x3b, 0xc5, 0xda, 0x07, 0xf1, 0xd3, 0x63, 0xda, 0xe9, 0xbe, 0x6e, 0xc3, 0x6e, 0xda, 0x6e, 0x68, 0x7d, 0x26, 0x29, 0x0f, 0x7a, 0xbc, 0xa2, 0x68, 0xa7, 0xfa, 0x03, 0xd9, 0x31, 0x88, 0x64, 0xed, 0xa9, 0xa1, 0x1e, 0x3b, 0x26, 0x14, 0x06, 0x05, 0x92, 0x0a, 0xc1, 0x3a, 0xde, 0xc1, 0xb5, 0x54, 0x8c, 0x9a, 0x7a, 0x32, 0x15, 0xa5, 0x87, 0x6b, 0x7e, 0x94, 0x1a, 0xfa, 0x1c, 0xb5, 0xd7, 0xf7, 0xf0, 0xc1, 0x16, 0x30, 0xcd, 0x42, 0x9f, 0x3b, 0x2b, 0x37, 0xdc, 0x76, 0xc6, 0xcb, 0xea, 0x4f, 0x3b, 0x72, 0x6a, 0xa8, 0xa5, 0xf8, 0xb9, 0xf7, 0x05, 0xb0, 0x5d, 0x7e, 0x94, 0x51, 0x95, 0x6f, 0x8a, 0xf1, 0x3c, 0xe0, 0xa8, 0x59, 0x55, 0xc7, 0x13, 0x5d, 0x64, 0xad, 0xe5, 0x49, 0x6e, 0xa5, 0x42, 0xe7, 0x0f, 0x8d, 0xa5, 0xb5, 0x73, 0xaa, 0xf1, 0x37, 0x08, 0x5d, 0xc9, 0x6c, 0x69, 0x27, 0x09, 0x96, 0x95, 0x67, 0x26, 0x68, 0xb3, 0xc7, 0xc6, 0xf9, 0x3c, 0x97, 0x7a, 0x4e, 0x8e, 0x9e, 0x77, 0x02, 0x95, 0xf2, 0x0d, 0x52, 0xdf, 0xf1, 0x87, 0xf8, 0xdb, 0xb2, 0x5e, 0xe7, 0xe7, 0x74, 0x02, 0x4e, 0xb9, 0xbe, 0x08, 0x12, 0x1e, 0xd7, 0x4b, 0x6d, 0x54, 0x62, 0xf4, 0xbb, 0x7d, 0xc2, 0x00, 0x38, 0x74, 0xca, 0xa3, 0x1b, 0xb7, 0x59, 0x5c, 0xd9, 0x3a, 0x99, 0xeb, 0xe1, 0xef, 0xf9, 0x28, 0xbb, 0x5f, 0xcb, 0x9e, 0x9c, 0x89, 0xdd, 0x31, 0xd4, 0x87, 0xfc, 0x0e, 0x20, 0xbb, 0xe1, 0x50, };
17548 static const u8 ed25519_763_test_vectors_expected_sig[] = {
17549 	0xf6, 0x1f, 0x78, 0x07, 0xc3, 0x3e, 0x19, 0x6d, 0x0f, 0xe1, 0x82, 0xef, 0xa4, 0xd4, 0x51, 0x6a, 0x98, 0x15, 0xdd, 0xd4, 0x49, 0x53, 0x8b, 0xba, 0xa6, 0xb8, 0x6b, 0x69, 0x01, 0xa0, 0x5f, 0x5d, 0xdd, 0xa0, 0x60, 0x1e, 0xc9, 0x0f, 0x39, 0xf1, 0x55, 0x47, 0x79, 0xdb, 0x7a, 0x09, 0xa6, 0x05, 0x72, 0xef, 0xfd, 0x4d, 0x12, 0x8d, 0x0d, 0x3c, 0x2d, 0xd4, 0xe8, 0x83, 0x57, 0x4b, 0xc6, 0x0b, };
17550 static const ec_test_case ed25519_763_test_case = {
17551 	.name = "EDDSA25519-SHA512/wei25519 763",
17552 	.ec_str_p = &wei25519_str_params,
17553 	.priv_key = ed25519_763_test_vectors_priv_key,
17554 	.priv_key_len = sizeof(ed25519_763_test_vectors_priv_key),
17555 	.nn_random = NULL,
17556 	.hash_type = SHA512,
17557 	.msg = (const char *)ed25519_763_test_vectors_message,
17558 	.msglen = sizeof(ed25519_763_test_vectors_message),
17559 	.sig_type = EDDSA25519,
17560 	.exp_sig = ed25519_763_test_vectors_expected_sig,
17561 	.exp_siglen = sizeof(ed25519_763_test_vectors_expected_sig),
17562 	.adata = NULL,
17563 	.adata_len = 0
17564 };
17565 
17566 /************************************************/
17567 static const u8 ed25519_764_test_vectors_priv_key[] = {
17568 	0xe4, 0x2b, 0x30, 0xd4, 0x9c, 0x43, 0xc4, 0xfa, 0xd8, 0x3d, 0xd5, 0x1f, 0xdc, 0x2a, 0x4a, 0xc5, 0x90, 0x13, 0x27, 0xad, 0xd8, 0x00, 0xb6, 0x69, 0x72, 0xc8, 0xc7, 0x0b, 0xde, 0x18, 0x0a, 0xdc, };
17569 static const u8 ed25519_764_test_vectors_message[] = {
17570 	0x0d, 0x49, 0x70, 0x51, 0x86, 0x1e, 0x22, 0xd8, 0xa9, 0xc6, 0x0e, 0x5f, 0x7d, 0xe6, 0xc8, 0x95, 0xcb, 0xa3, 0x35, 0xb2, 0xe8, 0x2e, 0x60, 0x21, 0x18, 0xad, 0x83, 0x42, 0xb4, 0xd4, 0xed, 0xaa, 0x80, 0xf9, 0x5e, 0xfb, 0xb5, 0x9c, 0xfd, 0xa1, 0xfc, 0xc0, 0x29, 0x17, 0x25, 0x70, 0x0e, 0x8a, 0x81, 0xbb, 0x12, 0xa0, 0xb8, 0x62, 0x3b, 0x1f, 0xe2, 0x89, 0x1b, 0x8d, 0x98, 0xf7, 0xa8, 0x4c, 0x59, 0xfd, 0x92, 0xf8, 0xa7, 0xad, 0xfc, 0x06, 0x50, 0x42, 0xf7, 0xf4, 0xfd, 0x7e, 0x1a, 0x79, 0xf5, 0x5a, 0x1d, 0x4d, 0x5e, 0x54, 0xe0, 0x4e, 0x67, 0x2f, 0x1c, 0x9e, 0x4c, 0x4c, 0xd8, 0xd0, 0x00, 0x3f, 0x3c, 0xd5, 0x4b, 0x76, 0xe2, 0x16, 0x3d, 0xd7, 0x37, 0xac, 0xb2, 0xde, 0x5c, 0x26, 0x3a, 0xc1, 0x02, 0xa4, 0x8f, 0x69, 0x6b, 0x60, 0xca, 0xf9, 0xbe, 0x39, 0xc6, 0x65, 0xcc, 0xe1, 0xe0, 0xf3, 0xd4, 0x98, 0x55, 0x3f, 0x57, 0x90, 0x61, 0x88, 0x9a, 0x5e, 0xc5, 0x60, 0x3e, 0x4d, 0x14, 0x1c, 0xfd, 0xed, 0xe8, 0xe7, 0x31, 0x75, 0x72, 0xcf, 0xe7, 0x6a, 0x0f, 0x48, 0xe4, 0xae, 0x06, 0x06, 0x2c, 0x91, 0x57, 0xb5, 0xea, 0xac, 0x34, 0x68, 0x93, 0x81, 0x92, 0xdb, 0x4b, 0x16, 0x10, 0x5c, 0x73, 0x64, 0xa9, 0x44, 0x32, 0xb2, 0x15, 0xa7, 0x17, 0x97, 0xfe, 0xe1, 0x4c, 0x3c, 0x9c, 0xe2, 0xf7, 0x46, 0xed, 0x79, 0x03, 0x02, 0xfc, 0x41, 0xdc, 0x49, 0x2d, 0x37, 0xd9, 0xef, 0x02, 0x4a, 0xb5, 0x1d, 0xa3, 0xbd, 0xaf, 0x0f, 0x81, 0xd9, 0xa9, 0x30, 0xaa, 0x0e, 0x02, 0x5c, 0x04, 0xfd, 0x71, 0x02, 0x6b, 0x6a, 0xfe, 0xb7, 0xed, 0x01, 0xa9, 0x1a, 0x1e, 0xfd, 0x6c, 0x39, 0xf5, 0xe4, 0x47, 0xc6, 0x6d, 0xd3, 0x8a, 0x76, 0x56, 0xc6, 0x13, 0xd0, 0x21, 0x26, 0xf3, 0x58, 0x5d, 0xfa, 0xa0, 0x2d, 0xf9, 0x30, 0x25, 0x3f, 0x83, 0xbd, 0x42, 0x19, 0x64, 0x63, 0xeb, 0xc5, 0x0f, 0x8c, 0xfc, 0x94, 0x9e, 0xd3, 0x50, 0x39, 0x2e, 0x61, 0xce, 0xec, 0x13, 0x09, 0xda, 0x15, 0xa4, 0x32, 0xf8, 0x0d, 0xfe, 0x94, 0x8e, 0x26, 0x1c, 0xe6, 0xd8, 0x42, 0x1c, 0x54, 0x59, 0xcd, 0x21, 0xf3, 0xff, 0xa2, 0xed, 0xb5, 0x00, 0x98, 0x2b, 0x2a, 0xbf, 0xa5, 0x2e, 0x82, 0x43, 0x7c, 0xa2, 0x30, 0xf6, 0x09, 0x11, 0x63, 0x20, 0xd9, 0x89, 0x3e, 0xb8, 0x2a, 0x14, 0xdf, 0x72, 0xb7, 0x73, 0x66, 0x67, 0x51, 0x6f, 0xc0, 0x12, 0xb2, 0x8a, 0x03, 0xc9, 0xdd, 0x88, 0xea, 0x43, 0x08, 0xd8, 0xce, 0xea, 0x44, 0xcc, 0x60, 0x44, 0x54, 0xcd, 0xfa, 0x2c, 0x79, 0x76, 0x15, 0xbc, 0x0a, 0x6b, 0x3e, 0x00, 0x89, 0xaf, 0x0a, 0x81, 0xbe, 0x54, 0xd1, 0xb1, 0x10, 0xa1, 0x3a, 0xb9, 0x11, 0xb4, 0x52, 0xc3, 0x42, 0x80, 0x0c, 0xee, 0x2a, 0xd2, 0x39, 0xa2, 0xb1, 0x88, 0xa7, 0xfa, 0x87, 0x5e, 0x94, 0x1d, 0xaa, 0xeb, 0xcf, 0xc8, 0x8b, 0x70, 0xae, 0x4b, 0x1c, 0x57, 0x5c, 0xdb, 0x6e, 0x6d, 0x89, 0x44, 0x81, 0x36, 0xf6, 0x0e, 0xe8, 0x1c, 0x70, 0x3c, 0x47, 0x82, 0x2d, 0x2c, 0x0e, 0x50, 0xc7, 0xf1, 0xe8, 0xb7, 0xfc, 0x7e, 0xbd, 0x80, 0x78, 0x9f, 0xcd, 0x7e, 0x06, 0xc7, 0xe5, 0x0b, 0x5f, 0xc8, 0xb7, 0x76, 0xe8, 0xb9, 0xa4, 0xcd, 0x59, 0x05, 0xa2, 0x90, 0x69, 0xbc, 0x3a, 0x55, 0x8d, 0x7c, 0xab, 0xce, 0x2a, 0xf4, 0xf3, 0x10, 0x76, 0x7d, 0x5b, 0x11, 0x7e, 0x30, 0x76, 0xb3, 0xa0, 0xd5, 0x27, 0x17, 0x55, 0x43, 0xb2, 0xcc, 0xea, 0x28, 0xd5, 0xf7, 0x16, 0xfa, 0xc3, 0x2e, 0xfe, 0xd3, 0xd2, 0xe0, 0x27, 0x6b, 0xe4, 0x4a, 0x89, 0x56, 0xfc, 0x82, 0x40, 0xf2, 0xdb, 0x33, 0x97, 0x61, 0x4f, 0x2f, 0x2d, 0xa0, 0x21, 0x66, 0x69, 0x4e, 0xc6, 0xa7, 0xfe, 0xec, 0x6e, 0xce, 0x39, 0xd7, 0x2b, 0x64, 0xbb, 0xc6, 0xb4, 0x76, 0xa4, 0xf8, 0x4f, 0x8d, 0x87, 0x93, 0x80, 0xa3, 0x84, 0x88, 0xe4, 0xd6, 0xe5, 0x8c, 0xac, 0x03, 0x90, 0xae, 0x25, 0xa5, 0xfc, 0xb7, 0x3d, 0x47, 0x41, 0x4b, 0x4c, 0x26, 0xbb, 0xb9, 0xb4, 0xcc, 0x66, 0xe4, 0x25, 0x94, 0xbd, 0x56, 0xd8, 0x41, 0xa3, 0x60, 0x92, 0x34, 0x91, 0xd1, 0x17, 0xbe, 0x2c, 0x6e, 0xb2, 0x32, 0x0f, 0x3c, 0x61, 0x75, 0xe4, 0x4e, 0x27, 0xb6, 0x65, 0x3c, 0x5d, 0xac, 0x6f, 0xae, 0x73, 0x60, 0x0b, 0x67, 0x96, 0x0d, 0xca, 0x50, 0xaa, 0x85, 0x5a, 0x89, 0xe0, 0xff, 0x51, 0x1e, 0xa0, 0x4f, 0x14, 0x3e, 0x89, 0xf1, 0xda, 0x02, 0x84, 0x76, 0xbe, 0x4b, 0xf6, 0xd9, 0x4c, 0x80, 0xff, 0x72, 0x63, 0x39, 0xe8, 0xbc, 0xfb, 0x7d, 0xd9, 0xf8, 0xcf, 0x20, 0x22, 0x59, 0xc0, 0xac, 0xb6, 0x27, 0x6c, 0x28, 0x1e, 0x38, 0x47, 0xc2, 0xcc, 0x8d, 0x2f, 0xba, 0x84, 0x43, 0x8d, 0x2d, 0x3c, 0x60, 0x31, 0xf2, 0xa7, 0xb9, 0x5c, 0x1d, 0x8f, 0x9f, 0x3c, 0xc8, 0x6a, 0x5e, 0xff, 0x65, 0xcc, 0x01, 0x1d, 0xe9, 0x5a, 0xd8, 0x96, 0x85, 0x8e, 0x1f, 0x7f, 0x6d, 0x6b, 0x94, 0xbf, 0x49, 0xdf, 0xff, 0x5d, 0xe2, 0xd7, 0xfd, 0x71, 0xef, 0x10, 0x81, 0x34, 0x28, 0x5f, 0x61, 0xae, 0x47, 0x54, 0x83, 0x44, 0x2d, 0xc9, 0x0b, 0xf0, 0x13, 0xfa, 0xed, 0xf3, 0x77, 0x1c, 0x47, 0xc5, 0xb9, 0x6d, 0xc3, 0xcf, 0x8e, 0x48, 0x51, 0x00, 0x60, 0xad, 0x8d, 0x45, 0xfd, 0x54, 0x61, 0x62, 0x27, 0x80, 0xd8, 0x69, 0xd4, 0x61, 0x7b, 0x57, 0xfe, 0x3c, 0xb5, 0xcc, 0x02, 0x03, 0x15, 0x3a, 0xae, };
17571 static const u8 ed25519_764_test_vectors_expected_sig[] = {
17572 	0xff, 0x8e, 0x07, 0x6e, 0x34, 0x3c, 0x8b, 0x73, 0xaa, 0x45, 0x3b, 0xfe, 0xe9, 0xb2, 0xba, 0xb6, 0xd5, 0xc2, 0xf7, 0x4c, 0x35, 0xe1, 0xba, 0xd1, 0xe5, 0x2a, 0xe7, 0x77, 0xd6, 0x9f, 0x79, 0x76, 0x40, 0x83, 0xf9, 0x94, 0x36, 0x8a, 0x1a, 0xc8, 0x51, 0xa6, 0x41, 0xcd, 0x24, 0x70, 0x08, 0xa3, 0x4f, 0x3b, 0x60, 0x89, 0x62, 0xf4, 0xdd, 0x51, 0x09, 0xac, 0x71, 0xcc, 0xe9, 0x78, 0xec, 0x02, };
17573 static const ec_test_case ed25519_764_test_case = {
17574 	.name = "EDDSA25519-SHA512/wei25519 764",
17575 	.ec_str_p = &wei25519_str_params,
17576 	.priv_key = ed25519_764_test_vectors_priv_key,
17577 	.priv_key_len = sizeof(ed25519_764_test_vectors_priv_key),
17578 	.nn_random = NULL,
17579 	.hash_type = SHA512,
17580 	.msg = (const char *)ed25519_764_test_vectors_message,
17581 	.msglen = sizeof(ed25519_764_test_vectors_message),
17582 	.sig_type = EDDSA25519,
17583 	.exp_sig = ed25519_764_test_vectors_expected_sig,
17584 	.exp_siglen = sizeof(ed25519_764_test_vectors_expected_sig),
17585 	.adata = NULL,
17586 	.adata_len = 0
17587 };
17588 
17589 /************************************************/
17590 static const u8 ed25519_765_test_vectors_priv_key[] = {
17591 	0x5c, 0xb5, 0x14, 0x21, 0x74, 0x82, 0xbf, 0x42, 0xf6, 0x11, 0xfc, 0xec, 0x36, 0xa5, 0x28, 0x68, 0x07, 0xc2, 0xbd, 0xbb, 0x56, 0x96, 0x76, 0x91, 0x35, 0x3f, 0x54, 0x31, 0x0e, 0x1a, 0xd5, 0x53, };
17592 static const u8 ed25519_765_test_vectors_message[] = {
17593 	0x2f, 0x57, 0x25, 0x8c, 0xca, 0x79, 0x32, 0xe5, 0x8b, 0xed, 0x54, 0x6c, 0xb0, 0x04, 0x11, 0x15, 0xbb, 0xad, 0x23, 0xd1, 0x83, 0x46, 0xef, 0x7a, 0xb5, 0xe3, 0x11, 0x00, 0x82, 0xb3, 0xa9, 0x71, 0x2f, 0x6c, 0xbe, 0x12, 0x70, 0xe6, 0xdc, 0x0c, 0xea, 0x33, 0x64, 0xa0, 0x6a, 0x5f, 0x2f, 0x28, 0x3e, 0xc3, 0x9b, 0x63, 0x05, 0x8d, 0x34, 0xd5, 0x99, 0x79, 0x07, 0x2f, 0xcb, 0xbd, 0x7a, 0x5d, 0x0f, 0x44, 0x2b, 0xbd, 0xf0, 0x82, 0xd5, 0xbf, 0xe2, 0x99, 0x8a, 0xeb, 0x51, 0xbd, 0x26, 0x12, 0x78, 0x03, 0xe5, 0xc7, 0x96, 0xc3, 0x88, 0x43, 0x20, 0x0a, 0xe2, 0xf6, 0xe6, 0x05, 0xaf, 0x31, 0x2f, 0x54, 0xfd, 0xff, 0x17, 0xed, 0x1d, 0xfa, 0xa8, 0x9d, 0x28, 0xfa, 0x67, 0xdc, 0xe4, 0x62, 0xde, 0x4f, 0xe2, 0x52, 0x68, 0x21, 0x2b, 0x28, 0x2e, 0x22, 0x2a, 0x44, 0x3e, 0x2f, 0x31, 0xe2, 0x69, 0x05, 0x41, 0x71, 0xaa, 0x73, 0xc7, 0x19, 0xa8, 0x96, 0xcd, 0xb7, 0xa5, 0x39, 0xdf, 0xd1, 0xd4, 0x29, 0x91, 0x97, 0x81, 0x97, 0xd7, 0xc4, 0xf2, 0xd3, 0x0a, 0x64, 0x1b, 0xe3, 0x4b, 0xf1, 0x38, 0x0a, 0x4f, 0x4d, 0xc6, 0xd9, 0xb1, 0x01, 0x63, 0x66, 0x36, 0xa4, 0x96, 0xbe, 0xb3, 0x57, 0xe3, 0x47, 0xc1, 0x66, 0x65, 0x16, 0xdf, 0x8e, 0xb5, 0x60, 0xa0, 0xe0, 0xd1, 0xe1, 0x52, 0x9c, 0xe3, 0x6a, 0x60, 0xe0, 0x0e, 0xd2, 0x78, 0xda, 0x38, 0x02, 0xbe, 0x19, 0x23, 0x42, 0x98, 0x9b, 0xb6, 0x11, 0xb4, 0xe3, 0xcb, 0xd9, 0xc3, 0x7e, 0x8c, 0xce, 0x07, 0xef, 0xc1, 0x2d, 0x29, 0xbe, 0xfd, 0x7e, 0x2f, 0x3a, 0xdb, 0x13, 0xd2, 0x8f, 0x70, 0x8d, 0x97, 0xb6, 0x3e, 0x10, 0x74, 0x82, 0xc8, 0x62, 0x95, 0x6d, 0x7c, 0xe8, 0xdf, 0xc2, 0xaf, 0x5c, 0xac, 0x8d, 0x51, 0x65, 0x92, 0x67, 0xb0, 0xbb, 0xed, 0xdd, 0x5e, 0xfa, 0x41, 0x4d, 0xde, 0xab, 0xd1, 0x7b, 0x23, 0xca, 0x6e, 0x84, 0x3f, 0xf4, 0x9e, 0xff, 0xc8, 0x2a, 0x5d, 0x07, 0xe3, 0x6a, 0x83, 0xb6, 0x7c, 0x2a, 0xd7, 0xe4, 0x8e, 0xb9, 0x99, 0x0b, 0x42, 0x1c, 0x55, 0x58, 0x00, 0x9b, 0xd6, 0x93, 0x4e, 0x86, 0xd5, 0x4a, 0x8a, 0x6a, 0xc4, 0x07, 0x87, 0x96, 0xe3, 0x05, 0xc7, 0xcc, 0x81, 0x0d, 0x3f, 0x66, 0xea, 0x6b, 0x95, 0x04, 0xfe, 0x0a, 0xe6, 0x75, 0x7c, 0x50, 0x4c, 0x55, 0x52, 0x53, 0x0a, 0x6f, 0x8b, 0xbb, 0x52, 0x40, 0x9b, 0xe0, 0x79, 0xd8, 0xe4, 0xa2, 0x8a, 0x6f, 0xd7, 0xdc, 0x89, 0x35, 0xf8, 0xeb, 0x94, 0x98, 0xad, 0xc0, 0xf2, 0x3d, 0x08, 0x07, 0xec, 0x86, 0x29, 0x5f, 0x48, 0x98, 0xf5, 0xd0, 0x5e, 0x15, 0x0b, 0xdc, 0x43, 0xaa, 0x8b, 0x7b, 0xdc, 0x89, 0x3a, 0x0a, 0x68, 0x4c, 0x30, 0x63, 0x89, 0x8b, 0x6c, 0x95, 0xe7, 0xd5, 0x6a, 0x4c, 0x10, 0x26, 0x90, 0x43, 0x8e, 0x9d, 0xf9, 0x97, 0x58, 0xa9, 0x0f, 0x47, 0xc6, 0x08, 0xda, 0xcc, 0x4c, 0xa2, 0x40, 0x26, 0x6f, 0xab, 0xa3, 0x5f, 0xa1, 0xeb, 0x2e, 0xaa, 0xbe, 0x28, 0x8d, 0x2c, 0x2a, 0xd5, 0x0b, 0x6c, 0xbf, 0x10, 0x7c, 0x00, 0x25, 0x75, 0xe9, 0x1f, 0xf4, 0x72, 0xa4, 0x41, 0x79, 0x40, 0x66, 0x7b, 0xe8, 0x18, 0x01, 0x73, 0x85, 0x4c, 0x93, 0xdf, 0x84, 0x46, 0x4b, 0xcd, 0x31, 0x2b, 0x7a, 0x7a, 0xe4, 0xdc, 0x2b, 0x90, 0x59, 0xfb, 0xe6, 0xf8, 0x3f, 0x53, 0x80, 0x64, 0x25, 0xbd, 0xff, 0x03, 0x1c, 0x6a, 0xed, 0x6e, 0xfa, 0xfd, 0x9d, 0xe8, 0xdc, 0xd0, 0xdf, 0xab, 0xea, 0x8e, 0x6f, 0xa6, 0x81, 0xe9, 0x91, 0x93, 0xfb, 0x3c, 0x64, 0x7e, 0x44, 0x21, 0x12, 0xc9, 0xa2, 0x3f, 0x59, 0x6e, 0x65, 0x41, 0x1d, 0x8d, 0x6b, 0xfc, 0x39, 0x23, 0x00, 0x4e, 0xce, 0x91, 0xea, 0x6d, 0xeb, 0x88, 0x11, 0x11, 0xb1, 0xdc, 0x29, 0x94, 0x3f, 0x57, 0x89, 0x81, 0xee, 0x8c, 0x3b, 0xce, 0x85, 0x25, 0xf7, 0x85, 0x65, 0xf3, 0x4b, 0x85, 0xff, 0x20, 0x01, 0x5f, 0xea, 0xe8, 0x46, 0xf9, 0x5b, 0x18, 0x70, 0x0b, 0xc5, 0xcd, 0xf1, 0x4b, 0x2d, 0xb6, 0xca, 0xc6, 0x98, 0x14, 0xd6, 0x3d, 0x74, 0xbf, 0x20, 0x32, 0x93, 0x03, 0xe5, 0xca, 0x9f, 0x04, 0x73, 0x1f, 0x68, 0x81, 0xce, 0xc6, 0xd3, 0xab, 0xf8, 0x7f, 0x5e, 0xac, 0x08, 0x73, 0x4f, 0xaa, 0x34, 0xcf, 0xf4, 0xd3, 0xcd, 0x9a, 0x4a, 0x11, 0xd7, 0xb1, 0x2f, 0x73, 0x25, 0x3b, 0x4d, 0xd0, 0xa4, 0x31, 0x78, 0xf0, 0xd3, 0xc1, 0x9c, 0x0c, 0x40, 0xd9, 0xed, 0x91, 0x8d, 0xd1, 0x76, 0x46, 0xf6, 0x16, 0xaf, 0x79, 0xfd, 0xf6, 0x19, 0x42, 0x62, 0xf0, 0xfa, 0x4f, 0x71, 0xb3, 0x18, 0x7d, 0xed, 0xca, 0x48, 0xd9, 0xcb, 0xcc, 0x19, 0x93, 0x1a, 0x15, 0x19, 0x67, 0x74, 0x56, 0x25, 0x6e, 0xd3, 0x83, 0x54, 0x56, 0x7c, 0x3a, 0x67, 0x57, 0x1c, 0xdf, 0x82, 0x17, 0x0a, 0x2c, 0x85, 0xbd, 0x2c, 0x5e, 0x68, 0xe0, 0x5a, 0x0f, 0x3b, 0x93, 0x90, 0x3f, 0x19, 0x1b, 0x89, 0x4f, 0x84, 0x94, 0x6f, 0x89, 0x00, 0x05, 0x68, 0x05, 0x4c, 0x1c, 0xea, 0x9f, 0xd0, 0xb8, 0xbb, 0x55, 0x01, 0x95, 0x06, 0xc5, 0x43, 0x41, 0xc2, 0x49, 0x31, 0x98, 0x45, 0x48, 0xba, 0x45, 0x8a, 0x4d, 0x81, 0x30, 0x89, 0x89, 0x6e, 0x86, 0xa2, 0xdc, 0x33, 0xd9, 0x46, 0x04, 0x00, 0x3f, 0x35, 0x4a, 0x7c, 0xc9, 0x41, 0xc7, 0x54, 0xaa, 0xea, 0x24, 0x25, 0x3c, 0xbe, 0x4c, 0xf2, 0x14, 0x7f, 0xfe, 0xc5, 0xe7, 0xb9, 0x50, 0xcb, 0xf2, 0x8e, 0x28, 0x44, 0x81, };
17594 static const u8 ed25519_765_test_vectors_expected_sig[] = {
17595 	0xd5, 0x3e, 0xe2, 0xe0, 0xf0, 0xfd, 0x65, 0x7b, 0x20, 0x52, 0x47, 0x8f, 0xd1, 0x5d, 0xf1, 0xd3, 0x8f, 0xe0, 0xe9, 0x3a, 0x54, 0x83, 0xeb, 0x4a, 0x6e, 0x7d, 0xe9, 0x3d, 0x02, 0xa4, 0xcd, 0x54, 0x4d, 0x8f, 0xdd, 0xdc, 0xea, 0x82, 0x2b, 0x71, 0x57, 0x6e, 0xd0, 0x28, 0x53, 0xd9, 0xa6, 0xb1, 0x4e, 0x1a, 0x54, 0x8a, 0xef, 0xe9, 0x0d, 0x92, 0xf8, 0x83, 0x79, 0x2b, 0x7f, 0x1d, 0x86, 0x09, };
17596 static const ec_test_case ed25519_765_test_case = {
17597 	.name = "EDDSA25519-SHA512/wei25519 765",
17598 	.ec_str_p = &wei25519_str_params,
17599 	.priv_key = ed25519_765_test_vectors_priv_key,
17600 	.priv_key_len = sizeof(ed25519_765_test_vectors_priv_key),
17601 	.nn_random = NULL,
17602 	.hash_type = SHA512,
17603 	.msg = (const char *)ed25519_765_test_vectors_message,
17604 	.msglen = sizeof(ed25519_765_test_vectors_message),
17605 	.sig_type = EDDSA25519,
17606 	.exp_sig = ed25519_765_test_vectors_expected_sig,
17607 	.exp_siglen = sizeof(ed25519_765_test_vectors_expected_sig),
17608 	.adata = NULL,
17609 	.adata_len = 0
17610 };
17611 
17612 /************************************************/
17613 static const u8 ed25519_766_test_vectors_priv_key[] = {
17614 	0x87, 0xd3, 0xba, 0x95, 0xc4, 0x0d, 0xf8, 0x00, 0x69, 0xb1, 0x79, 0x7d, 0xdf, 0x68, 0xe8, 0x66, 0xe6, 0x6d, 0x46, 0xc5, 0x1f, 0xde, 0x60, 0xe7, 0x68, 0xa9, 0xdb, 0xc5, 0xc9, 0x2f, 0x57, 0xa9, };
17615 static const u8 ed25519_766_test_vectors_message[] = {
17616 	0xe1, 0x12, 0x56, 0xf8, 0x2a, 0xd7, 0x6f, 0x3f, 0x4a, 0x49, 0xd7, 0xba, 0xd3, 0xce, 0xd8, 0x71, 0x8d, 0x36, 0xd2, 0xf2, 0xbb, 0x3d, 0x31, 0xbb, 0x61, 0xed, 0xd1, 0xec, 0xbc, 0xee, 0x66, 0x21, 0xfd, 0x2e, 0xee, 0xd3, 0xe3, 0xde, 0xb5, 0x97, 0xb1, 0x49, 0xff, 0x71, 0xb8, 0x51, 0xf6, 0x1c, 0x8c, 0x68, 0x19, 0xe1, 0x31, 0xf9, 0xa2, 0xaf, 0x76, 0x73, 0xc3, 0xf2, 0x07, 0x02, 0xac, 0xfd, 0xc8, 0xb8, 0xf9, 0x06, 0x4b, 0x41, 0x5c, 0x9a, 0x3e, 0x35, 0x56, 0x8e, 0x37, 0x1d, 0x74, 0x0a, 0x38, 0x12, 0x7c, 0x1f, 0x27, 0xb3, 0x91, 0xb4, 0x5d, 0x07, 0x04, 0x5a, 0xea, 0xf0, 0x0a, 0x54, 0xe5, 0xb7, 0xfa, 0x54, 0x8a, 0xfb, 0x5f, 0x96, 0xfe, 0xb5, 0xf5, 0xb4, 0x4f, 0x60, 0xcd, 0x17, 0x07, 0xe8, 0xfa, 0x95, 0x67, 0xf7, 0x80, 0x6e, 0x15, 0xf6, 0xa0, 0x1a, 0xa0, 0x20, 0x77, 0x73, 0x3f, 0xe7, 0x38, 0xb0, 0x8f, 0x21, 0xef, 0xbc, 0xf9, 0x8c, 0x19, 0xd5, 0xb9, 0x70, 0xe6, 0x16, 0x3e, 0x5f, 0xe8, 0xf4, 0x80, 0x0e, 0xf9, 0xed, 0x22, 0xa0, 0xf9, 0xb5, 0x12, 0x6f, 0xf1, 0xeb, 0x1c, 0x7d, 0x65, 0x01, 0x9c, 0x8b, 0x44, 0x03, 0x91, 0x92, 0x70, 0x29, 0xb8, 0x13, 0xda, 0xb7, 0xc7, 0xe8, 0x63, 0xd4, 0x82, 0x29, 0xf8, 0xdf, 0x85, 0x39, 0x43, 0x45, 0xfc, 0xc8, 0x8a, 0x30, 0x0f, 0x60, 0xa8, 0xd5, 0x16, 0xd8, 0x77, 0xa5, 0xa3, 0xa7, 0xe3, 0xc4, 0x9a, 0x9e, 0xb0, 0x6c, 0xd9, 0xf2, 0x66, 0x5c, 0xe2, 0xa8, 0x90, 0x22, 0x96, 0x2b, 0x1d, 0x49, 0x59, 0x2b, 0x09, 0xc7, 0x54, 0x3d, 0xa8, 0x35, 0xce, 0x63, 0xbc, 0x9a, 0xbb, 0x82, 0x21, 0x45, 0x76, 0x2b, 0x71, 0xcb, 0xe1, 0x50, 0x29, 0x2c, 0xe5, 0xc8, 0x70, 0x4e, 0x5a, 0xd3, 0x4f, 0xb4, 0x59, 0x2f, 0x97, 0x20, 0x44, 0xe4, 0x3e, 0x69, 0xf0, 0xe1, 0x67, 0x2d, 0x6c, 0x83, 0xcf, 0x25, 0xaa, 0xc6, 0x8e, 0xfe, 0x3d, 0x27, 0xaf, 0x2a, 0xd3, 0x42, 0x74, 0xb9, 0xd2, 0xb7, 0x77, 0x42, 0xd9, 0xc6, 0xdf, 0xbd, 0x57, 0xf9, 0x2f, 0xf6, 0x4d, 0x3e, 0x4c, 0x67, 0xc5, 0x41, 0xd8, 0x50, 0x2a, 0x7d, 0x03, 0x18, 0x95, 0xaf, 0x85, 0x31, 0x9a, 0x4e, 0xae, 0x2d, 0x25, 0x43, 0x35, 0x83, 0x5e, 0xff, 0x11, 0xe7, 0xa3, 0x67, 0x1a, 0x6a, 0x0d, 0x21, 0xb7, 0x2c, 0xe1, 0xfc, 0x2a, 0xcb, 0xa1, 0xa9, 0x20, 0x18, 0x38, 0x34, 0xbc, 0x0a, 0x4b, 0x73, 0xf6, 0x39, 0xff, 0xcb, 0x0f, 0x6b, 0x81, 0xcd, 0x92, 0x0f, 0x2e, 0x94, 0x20, 0xd6, 0x12, 0x16, 0x6d, 0x56, 0x82, 0xa0, 0x60, 0x60, 0xea, 0x0b, 0x6f, 0xa6, 0x95, 0xfe, 0xcc, 0x77, 0x04, 0xbb, 0xe4, 0xb0, 0x52, 0xaa, 0x3e, 0xc8, 0xf7, 0x20, 0xf7, 0xd4, 0xf3, 0x2e, 0x8a, 0xff, 0x86, 0xb8, 0x0b, 0x8c, 0x1c, 0xc1, 0x27, 0x64, 0xa0, 0x48, 0x74, 0x03, 0x7c, 0x31, 0x03, 0xe9, 0xdf, 0xec, 0xb8, 0xf7, 0xab, 0xcb, 0x0e, 0x07, 0x3b, 0x23, 0xe6, 0x7c, 0xa0, 0xa9, 0xb1, 0xfc, 0x72, 0x99, 0x3a, 0xbf, 0x31, 0xdb, 0xc2, 0x4a, 0x8f, 0xee, 0x09, 0x5b, 0x32, 0x51, 0xc2, 0x26, 0x26, 0xaf, 0x5d, 0xd1, 0xb6, 0xd3, 0x4b, 0xe5, 0xea, 0x06, 0xa0, 0x2a, 0xe1, 0x76, 0xc7, 0xb8, 0xcb, 0x9d, 0x06, 0x35, 0x01, 0xbe, 0x6f, 0x61, 0x20, 0x82, 0x88, 0x9f, 0xdb, 0xdc, 0xbf, 0xad, 0xc3, 0x3a, 0x0d, 0x31, 0x1b, 0x08, 0x0b, 0x8d, 0x64, 0xe4, 0x9f, 0x16, 0xb1, 0x6d, 0xd8, 0xed, 0xd3, 0xb2, 0xed, 0x11, 0x93, 0xa7, 0x4e, 0x5b, 0xe5, 0x07, 0x60, 0x9b, 0x04, 0x27, 0x27, 0xcc, 0xf0, 0x8a, 0xfb, 0x05, 0xcc, 0x6c, 0x50, 0x52, 0x4e, 0xf0, 0xe2, 0x66, 0x46, 0x21, 0xdc, 0x8b, 0x05, 0xb1, 0x5f, 0xfa, 0x81, 0xab, 0x6f, 0x7e, 0x3c, 0x8a, 0x5b, 0xb3, 0xea, 0xb1, 0xf6, 0x8e, 0x36, 0x56, 0xc1, 0x19, 0xd9, 0x69, 0xe4, 0x14, 0x4c, 0xf3, 0x28, 0x5a, 0xf2, 0x3c, 0x04, 0xdb, 0xec, 0xc0, 0x38, 0xae, 0xfd, 0x91, 0x83, 0xc4, 0xe7, 0x24, 0x47, 0xb2, 0xaa, 0xa8, 0x31, 0x5f, 0x46, 0x96, 0xce, 0x6d, 0x1e, 0xf4, 0x29, 0xba, 0x0e, 0x5c, 0x3d, 0x5f, 0xfa, 0x7f, 0x05, 0x0b, 0xe3, 0x9c, 0x7f, 0x61, 0x2f, 0x4e, 0x10, 0xf8, 0xef, 0x07, 0x0d, 0xf7, 0x2f, 0x8a, 0xdd, 0xbe, 0xaf, 0x33, 0x39, 0xc1, 0xad, 0x8b, 0x5f, 0xc3, 0x9a, 0x2e, 0xcf, 0x29, 0xa8, 0x7f, 0x82, 0xe2, 0x9a, 0x01, 0x17, 0xba, 0xac, 0x66, 0x25, 0xad, 0x5c, 0x80, 0xcf, 0xe7, 0x59, 0xfa, 0x1d, 0xbc, 0xfa, 0xa1, 0x2b, 0x37, 0x44, 0x77, 0xd8, 0x0b, 0xfc, 0xf0, 0x67, 0x96, 0xc3, 0x0f, 0x2c, 0x39, 0xcf, 0x03, 0x03, 0xd0, 0x0d, 0xc5, 0x6a, 0x32, 0xd1, 0xd0, 0x39, 0x59, 0x2d, 0xdb, 0x06, 0xc2, 0x2a, 0xa0, 0x68, 0x84, 0x1c, 0x0b, 0x46, 0xfd, 0x48, 0xdf, 0x8f, 0xbb, 0x74, 0x92, 0xcc, 0xbc, 0x59, 0x0c, 0x56, 0x3c, 0x8f, 0xec, 0xce, 0x42, 0x63, 0xc8, 0xc7, 0x53, 0x92, 0x18, 0xbb, 0x97, 0xb3, 0x57, 0x11, 0x53, 0x7e, 0x98, 0x81, 0x95, 0xdb, 0xf5, 0xbc, 0xd5, 0xcc, 0xaf, 0x06, 0xfa, 0xf5, 0x08, 0x47, 0x09, 0x77, 0xa5, 0x35, 0x8e, 0x6f, 0x02, 0x60, 0x83, 0x49, 0xfb, 0xb9, 0x9a, 0x23, 0xfb, 0xe3, 0x6b, 0x8c, 0x97, 0x15, 0x5a, 0xdc, 0x24, 0x6a, 0xd7, 0xd9, 0x3a, 0x8c, 0x20, 0x3f, 0x75, 0x44, 0x6c, 0x83, 0xc4, 0x34, 0x2c, 0x35, 0xba, 0x10, 0x4e, 0xcc, 0x67, 0xe6, 0x69, 0xdb, 0x4a, 0x95, 0x46, 0x6e, 0xe6, 0x8f, 0x45, 0x8a, };
17617 static const u8 ed25519_766_test_vectors_expected_sig[] = {
17618 	0xfa, 0x0d, 0x12, 0xcd, 0x53, 0x23, 0x6c, 0x41, 0x08, 0x6b, 0xea, 0x8c, 0x0c, 0xc6, 0x0b, 0x77, 0x64, 0xa3, 0xed, 0x72, 0xbd, 0xeb, 0x9d, 0x1a, 0xe5, 0xee, 0xac, 0xb4, 0x88, 0x11, 0xfe, 0x52, 0x97, 0x62, 0xa2, 0xc6, 0xf2, 0xbb, 0x06, 0xd9, 0xb3, 0x18, 0x21, 0x8d, 0x96, 0x8f, 0x64, 0x44, 0x35, 0x49, 0x7a, 0x1b, 0xd0, 0xd0, 0xd8, 0xc1, 0x61, 0x2a, 0xb8, 0x99, 0x6d, 0x98, 0xd7, 0x07, };
17619 static const ec_test_case ed25519_766_test_case = {
17620 	.name = "EDDSA25519-SHA512/wei25519 766",
17621 	.ec_str_p = &wei25519_str_params,
17622 	.priv_key = ed25519_766_test_vectors_priv_key,
17623 	.priv_key_len = sizeof(ed25519_766_test_vectors_priv_key),
17624 	.nn_random = NULL,
17625 	.hash_type = SHA512,
17626 	.msg = (const char *)ed25519_766_test_vectors_message,
17627 	.msglen = sizeof(ed25519_766_test_vectors_message),
17628 	.sig_type = EDDSA25519,
17629 	.exp_sig = ed25519_766_test_vectors_expected_sig,
17630 	.exp_siglen = sizeof(ed25519_766_test_vectors_expected_sig),
17631 	.adata = NULL,
17632 	.adata_len = 0
17633 };
17634 
17635 /************************************************/
17636 static const u8 ed25519_767_test_vectors_priv_key[] = {
17637 	0x7c, 0x27, 0xae, 0x47, 0x07, 0x2b, 0x0c, 0x9b, 0x9c, 0x2c, 0x35, 0x1f, 0x13, 0x27, 0x89, 0x98, 0x95, 0xef, 0xa5, 0x36, 0xc9, 0xc0, 0x67, 0xd0, 0xe0, 0xce, 0x8e, 0x82, 0xe6, 0x29, 0x27, 0x93, };
17638 static const u8 ed25519_767_test_vectors_message[] = {
17639 	0x15, 0x47, 0x87, 0x6a, 0x98, 0x8d, 0x1b, 0xe7, 0x14, 0xa4, 0x2f, 0xb9, 0x1c, 0xb0, 0x37, 0x63, 0xf1, 0x91, 0x3a, 0x89, 0x2e, 0xcb, 0xd4, 0xde, 0x2c, 0xcf, 0x83, 0x44, 0xd2, 0x07, 0x58, 0xb7, 0xb6, 0xd0, 0x02, 0x59, 0x10, 0x1f, 0xe9, 0x72, 0x25, 0xb2, 0x97, 0xf8, 0x7b, 0xfe, 0x22, 0x20, 0x04, 0x32, 0x5d, 0xb7, 0xf6, 0x32, 0xce, 0xaf, 0xfb, 0xd1, 0x34, 0xc9, 0x6c, 0xbd, 0x57, 0xe9, 0x85, 0xbe, 0xc8, 0x43, 0x4f, 0x81, 0xa4, 0xee, 0x6a, 0xf8, 0x5c, 0x3f, 0xad, 0xe5, 0x0e, 0x4c, 0x4e, 0xf2, 0x0c, 0xb0, 0x39, 0x35, 0x45, 0xe4, 0xd4, 0xa8, 0x6e, 0x1f, 0xa3, 0x9a, 0xaf, 0x33, 0x3f, 0xe4, 0xde, 0xd0, 0x54, 0xbf, 0xc0, 0x50, 0xa8, 0x98, 0x3a, 0x03, 0xdd, 0x1e, 0xcf, 0x2b, 0x5e, 0x95, 0x17, 0xba, 0xf9, 0xe1, 0x15, 0x21, 0x29, 0xa8, 0xa7, 0x59, 0x35, 0x71, 0x1e, 0xdb, 0x20, 0xaf, 0x5c, 0x8c, 0xf9, 0xc6, 0x94, 0xa3, 0x3c, 0xee, 0x45, 0x1c, 0xd9, 0x50, 0xb2, 0xff, 0xf0, 0x8e, 0x31, 0x58, 0xc5, 0xcf, 0xb7, 0xb1, 0x5c, 0xb3, 0xe9, 0x0d, 0x46, 0xf4, 0x94, 0xb6, 0xa1, 0x08, 0xd8, 0x88, 0x8d, 0x5e, 0xc2, 0x9a, 0x33, 0xc0, 0x66, 0x02, 0x3b, 0x49, 0x77, 0x09, 0xb2, 0xd9, 0x40, 0x1f, 0xea, 0xf2, 0xe7, 0x4f, 0xf2, 0x6c, 0x16, 0xd3, 0x6c, 0x39, 0xe6, 0x51, 0x7f, 0xf9, 0x54, 0xbd, 0x98, 0xbc, 0xe7, 0x70, 0x06, 0x71, 0x98, 0x8f, 0x66, 0xe8, 0x51, 0x07, 0x64, 0x4b, 0xa2, 0xea, 0x00, 0x7a, 0x13, 0x01, 0x8c, 0x1c, 0x14, 0x4e, 0x3c, 0x5b, 0xb8, 0x0d, 0xb9, 0x51, 0x1f, 0xcc, 0xa4, 0x10, 0x1b, 0xf4, 0x9f, 0x8c, 0x80, 0xff, 0x3c, 0xa7, 0xd2, 0x98, 0x25, 0x7c, 0xbf, 0xea, 0x62, 0x9f, 0x83, 0xd5, 0xe0, 0x66, 0x39, 0xd3, 0x1f, 0x63, 0x9d, 0xb4, 0xb8, 0x72, 0x6c, 0xbe, 0x22, 0x4d, 0x75, 0x88, 0x29, 0xba, 0xb1, 0x09, 0x05, 0x17, 0x1c, 0x9c, 0x0e, 0xc3, 0x70, 0xd5, 0x80, 0x31, 0xef, 0xe4, 0xcc, 0x5a, 0xe7, 0x2a, 0x49, 0x5a, 0xcf, 0xf6, 0xcb, 0x2e, 0xd9, 0xee, 0xc6, 0x58, 0xba, 0x11, 0x70, 0x88, 0xdd, 0x3c, 0x6e, 0xd1, 0xdf, 0x8f, 0x9c, 0xb1, 0x0b, 0xd4, 0xfe, 0x0e, 0x5e, 0x8a, 0xd9, 0xf5, 0x03, 0x4e, 0x34, 0x65, 0x2d, 0x98, 0x66, 0x8d, 0xb1, 0x5c, 0x85, 0x33, 0x39, 0x3a, 0x6e, 0x9e, 0xc0, 0x87, 0x0c, 0x35, 0x66, 0x6c, 0xe5, 0x4e, 0xfe, 0x2b, 0xcb, 0x45, 0xc3, 0x4a, 0x72, 0x30, 0xe6, 0xa7, 0x00, 0x67, 0x63, 0x49, 0xc7, 0xb3, 0xab, 0xf3, 0x1d, 0xe7, 0xb7, 0xb0, 0x52, 0x1f, 0x89, 0xb3, 0x0a, 0xc4, 0x03, 0x4c, 0x2a, 0x4b, 0xa8, 0x21, 0x8e, 0xef, 0xdf, 0x8d, 0x2a, 0x5c, 0x1f, 0x8e, 0xd9, 0xb7, 0x01, 0x57, 0x9e, 0x47, 0xaf, 0x8a, 0x52, 0x9a, 0x95, 0xa1, 0xff, 0x64, 0xd8, 0xfd, 0xb8, 0x85, 0xc3, 0x68, 0x39, 0xb4, 0xc5, 0xf6, 0xd7, 0x2a, 0x99, 0x25, 0x7e, 0x86, 0x78, 0xdc, 0xcf, 0x31, 0x27, 0x54, 0xb9, 0xd4, 0x61, 0x9b, 0xee, 0xce, 0xb8, 0x25, 0x52, 0x6d, 0xe6, 0x22, 0xbd, 0x96, 0x76, 0xfd, 0x5f, 0x35, 0x76, 0x93, 0xab, 0xab, 0x07, 0x8b, 0x9e, 0x03, 0xae, 0x21, 0xe8, 0x7c, 0xa1, 0x61, 0xe7, 0x78, 0xaf, 0x77, 0x09, 0x6e, 0xaa, 0xc2, 0xd2, 0xd3, 0x2b, 0xfe, 0xc8, 0xec, 0x94, 0xaf, 0x79, 0x65, 0xf6, 0x1d, 0x68, 0xef, 0x66, 0xa4, 0x52, 0x3c, 0x1c, 0xc7, 0x0c, 0x95, 0x19, 0xb0, 0x75, 0x0b, 0x3c, 0x9e, 0xed, 0x5a, 0xeb, 0xa9, 0xf0, 0xa9, 0xb7, 0xef, 0x52, 0xcd, 0x4a, 0x2d, 0xe2, 0x9b, 0x39, 0x5b, 0x70, 0x5f, 0xa5, 0x3f, 0x02, 0x8f, 0xa7, 0x66, 0x15, 0x9f, 0x20, 0xe7, 0x5f, 0x4d, 0x38, 0x4e, 0xc4, 0xfd, 0x66, 0xdf, 0x06, 0xe7, 0x44, 0xc9, 0x9a, 0xc8, 0x8c, 0xb8, 0x49, 0xc2, 0x85, 0x75, 0x7c, 0xc5, 0x57, 0xe2, 0xee, 0xdd, 0x86, 0x95, 0x9d, 0xa2, 0xc1, 0xb8, 0x1f, 0x5b, 0x27, 0x15, 0xa6, 0x51, 0x98, 0x48, 0x90, 0x1a, 0xe4, 0xf8, 0x9d, 0x09, 0x13, 0xc8, 0xde, 0x57, 0xc5, 0x3d, 0xad, 0xf2, 0xe5, 0xe1, 0xaa, 0x2a, 0x9c, 0x5f, 0x46, 0x4f, 0xc7, 0x61, 0x0e, 0x8e, 0xf5, 0xf5, 0xcd, 0xd8, 0x20, 0x3a, 0x67, 0xa9, 0x3c, 0x33, 0xa0, 0x6d, 0xab, 0x35, 0x8d, 0xc5, 0xae, 0x23, 0xed, 0xfe, 0xe6, 0x33, 0x42, 0x62, 0xf4, 0x7b, 0x19, 0xb1, 0x13, 0xd6, 0xca, 0xfe, 0xda, 0xc1, 0xb4, 0x39, 0x02, 0x53, 0x9d, 0x74, 0xfb, 0xa2, 0x9a, 0xaa, 0x7b, 0xce, 0x68, 0x88, 0x4b, 0x72, 0x61, 0x6a, 0x05, 0x42, 0xc9, 0xfc, 0x69, 0x54, 0x7c, 0xd1, 0x9a, 0xe1, 0xdf, 0x01, 0x72, 0x3a, 0xbd, 0xda, 0x65, 0xe9, 0xbf, 0xac, 0x5d, 0xa0, 0xd0, 0x42, 0x40, 0xc6, 0xa2, 0x17, 0x5c, 0x00, 0x62, 0xe4, 0xe1, 0xed, 0x8a, 0x5b, 0x39, 0x7a, 0xfc, 0xd4, 0xde, 0x38, 0xe8, 0x62, 0x09, 0x27, 0x2c, 0x7a, 0x42, 0x4b, 0x5a, 0xe8, 0xd5, 0xa4, 0x0b, 0x48, 0x4c, 0xe1, 0xb4, 0x70, 0x4a, 0xf2, 0x83, 0x16, 0x09, 0xad, 0x0f, 0x36, 0xe9, 0x0e, 0x07, 0xb2, 0xaf, 0xed, 0x01, 0xdc, 0x05, 0x57, 0x4a, 0xd3, 0x97, 0x17, 0x23, 0xc5, 0xb5, 0xc1, 0xdd, 0xd4, 0xfc, 0x8b, 0xd2, 0x63, 0xbc, 0xdf, 0x56, 0x8a, 0xf7, 0x5e, 0x73, 0xd8, 0xab, 0xd1, 0x00, 0x8c, 0x9e, 0xc7, 0x12, 0xf8, 0x0f, 0xfc, 0x65, 0xac, 0x34, 0xe2, 0xa7, 0x93, 0x04, 0xea, 0xde, 0x1d, 0x2a, 0x1d, 0xff, 0xec, 0x0e, 0x4c, 0x98, 0xc3, 0x58, 0x24, 0x68, 0xf3, 0x20, 0xbf, 0x8f, 0x66, };
17640 static const u8 ed25519_767_test_vectors_expected_sig[] = {
17641 	0x32, 0x71, 0x96, 0xdd, 0xd4, 0x3b, 0xb6, 0x02, 0xd0, 0x4d, 0x19, 0x64, 0xcc, 0xc0, 0x59, 0xed, 0x62, 0x7c, 0xef, 0x0a, 0x88, 0xd8, 0xad, 0x91, 0xbe, 0x49, 0x31, 0xf1, 0x7c, 0x25, 0x0d, 0x55, 0x29, 0xf5, 0x52, 0x79, 0x4a, 0x3e, 0x26, 0x9d, 0x17, 0xa6, 0x3b, 0xd3, 0x29, 0x33, 0xeb, 0x5e, 0x51, 0x9c, 0x1d, 0x50, 0x65, 0x74, 0x77, 0x0a, 0xe4, 0xa7, 0x29, 0x64, 0xe0, 0x6f, 0x7d, 0x00, };
17642 static const ec_test_case ed25519_767_test_case = {
17643 	.name = "EDDSA25519-SHA512/wei25519 767",
17644 	.ec_str_p = &wei25519_str_params,
17645 	.priv_key = ed25519_767_test_vectors_priv_key,
17646 	.priv_key_len = sizeof(ed25519_767_test_vectors_priv_key),
17647 	.nn_random = NULL,
17648 	.hash_type = SHA512,
17649 	.msg = (const char *)ed25519_767_test_vectors_message,
17650 	.msglen = sizeof(ed25519_767_test_vectors_message),
17651 	.sig_type = EDDSA25519,
17652 	.exp_sig = ed25519_767_test_vectors_expected_sig,
17653 	.exp_siglen = sizeof(ed25519_767_test_vectors_expected_sig),
17654 	.adata = NULL,
17655 	.adata_len = 0
17656 };
17657 
17658 /************************************************/
17659 static const u8 ed25519_768_test_vectors_priv_key[] = {
17660 	0x08, 0xed, 0xdc, 0xb5, 0x62, 0x5a, 0xe1, 0x9f, 0xfe, 0x7b, 0x49, 0xa7, 0xdc, 0x82, 0x9c, 0x89, 0x3c, 0x75, 0x38, 0xb0, 0x88, 0x5e, 0x18, 0xf9, 0x8d, 0xb7, 0x8c, 0x8b, 0xeb, 0x56, 0x9c, 0x26, };
17661 static const u8 ed25519_768_test_vectors_message[] = {
17662 	0x01, 0x5b, 0x1d, 0x3e, 0xeb, 0x00, 0x92, 0x9e, 0xa8, 0x0b, 0xd8, 0x68, 0x7d, 0x18, 0x28, 0x6f, 0x0a, 0xdf, 0xe6, 0x45, 0xcc, 0xf2, 0x5a, 0x22, 0xb5, 0x06, 0x19, 0x21, 0xe2, 0xa0, 0x30, 0xfc, 0x76, 0xd0, 0x33, 0xfb, 0x53, 0xd0, 0x93, 0x7c, 0x69, 0xb3, 0x1c, 0x5b, 0xe4, 0x99, 0x13, 0xca, 0x1f, 0x2c, 0x3d, 0xca, 0x12, 0x1b, 0x2b, 0x87, 0xc5, 0x9b, 0x3c, 0x84, 0xc7, 0xae, 0x52, 0xaf, 0x19, 0xc6, 0xb9, 0xfa, 0x1b, 0xd6, 0x75, 0xfb, 0x6d, 0xd8, 0xb3, 0x29, 0xd5, 0x66, 0x87, 0x86, 0xdc, 0x78, 0x83, 0xe2, 0xd2, 0xe8, 0x58, 0x6f, 0xf4, 0x12, 0x8b, 0x90, 0xde, 0xe8, 0x4b, 0xe0, 0xab, 0x54, 0xd6, 0x81, 0x3f, 0x7a, 0x8c, 0x61, 0x34, 0x75, 0x71, 0x73, 0x98, 0x17, 0x75, 0xde, 0x84, 0xc4, 0xdd, 0x39, 0xe3, 0x36, 0xf8, 0xa4, 0xef, 0x8d, 0xca, 0xde, 0xc9, 0x43, 0xe9, 0x0d, 0x42, 0x1b, 0x22, 0x9c, 0x11, 0x78, 0x5f, 0xcd, 0x3f, 0xe9, 0x63, 0x03, 0x74, 0x58, 0xe7, 0x6c, 0x82, 0x0b, 0x3b, 0xc2, 0xc9, 0x47, 0x60, 0x01, 0x26, 0x2b, 0x26, 0x1d, 0x28, 0xb6, 0x5b, 0x48, 0x9d, 0x76, 0xb4, 0xbe, 0x23, 0x65, 0xe4, 0xa8, 0x0f, 0xa8, 0x71, 0xb0, 0xa5, 0x3b, 0x6a, 0x5f, 0xb2, 0x43, 0x68, 0x82, 0x35, 0xac, 0xc5, 0xf4, 0x77, 0x4d, 0xb1, 0x5d, 0x47, 0xb4, 0x2d, 0xd6, 0xc8, 0xd9, 0xe1, 0x2d, 0xcb, 0x0b, 0x5d, 0x98, 0x0d, 0xab, 0x0f, 0x3a, 0xd8, 0xa4, 0x96, 0xf7, 0x6e, 0x50, 0x06, 0xc2, 0xca, 0x82, 0x67, 0x5f, 0xf1, 0x94, 0xca, 0xf8, 0x07, 0x0d, 0x04, 0xbd, 0x38, 0x4f, 0x97, 0xe5, 0x83, 0xe7, 0x3c, 0xbc, 0x4f, 0x7f, 0x25, 0x73, 0x10, 0xa6, 0x1b, 0x1c, 0x80, 0x62, 0x32, 0x2d, 0xce, 0x81, 0x15, 0xf6, 0xdd, 0x93, 0xee, 0xe8, 0xa9, 0x3f, 0xfa, 0x5c, 0xab, 0x66, 0x34, 0x11, 0x6e, 0x1a, 0xb7, 0x05, 0xfa, 0x86, 0xc4, 0xa8, 0xea, 0xa5, 0x56, 0xc6, 0xc8, 0x9d, 0xbc, 0xad, 0x01, 0x04, 0x36, 0xbf, 0xfe, 0x45, 0x18, 0x22, 0x49, 0x1f, 0x1e, 0xa8, 0x6c, 0x20, 0x20, 0x7e, 0x4d, 0x12, 0xdf, 0xa3, 0x62, 0x61, 0x6c, 0x58, 0x9f, 0x97, 0x10, 0x7e, 0xa5, 0xd8, 0xbd, 0x8a, 0x72, 0x15, 0xc6, 0x00, 0xff, 0xc7, 0x0b, 0x80, 0xe2, 0xab, 0xb1, 0x5a, 0xcb, 0xe4, 0xbe, 0xcc, 0xa2, 0x0d, 0x72, 0x15, 0x5a, 0xbc, 0x3d, 0xbe, 0x8e, 0x37, 0xcf, 0xd7, 0x3f, 0x74, 0x20, 0xf2, 0x1c, 0x9b, 0xcd, 0x0c, 0x32, 0x73, 0x51, 0x3b, 0x50, 0x49, 0x67, 0x08, 0x74, 0xd5, 0x51, 0x9b, 0x3b, 0xc1, 0xdb, 0x52, 0x3c, 0x1d, 0x7e, 0x90, 0xc1, 0x65, 0x96, 0x7c, 0x4c, 0xb2, 0x84, 0x5a, 0x2e, 0x8b, 0x47, 0xb5, 0x88, 0x92, 0x54, 0xf5, 0x8a, 0x9b, 0xbb, 0x82, 0x6f, 0x94, 0x52, 0x1c, 0xdb, 0xd0, 0x41, 0x6f, 0x5f, 0x18, 0xff, 0x78, 0xa3, 0xfd, 0x0d, 0x7a, 0xb8, 0x97, 0x90, 0x62, 0x64, 0x48, 0x3c, 0xde, 0x64, 0x2d, 0x8e, 0x70, 0x3f, 0xd8, 0x2e, 0x5a, 0xe7, 0x0a, 0x9f, 0x97, 0x8f, 0x64, 0xee, 0x80, 0x52, 0x05, 0x54, 0x85, 0x05, 0x28, 0x58, 0x1c, 0xa9, 0xa0, 0xb3, 0x8c, 0x19, 0x6f, 0xd1, 0x66, 0xda, 0xe5, 0x87, 0x9b, 0x3f, 0x72, 0xf5, 0x9c, 0xde, 0x91, 0xcc, 0xa2, 0xc8, 0xbf, 0xaa, 0x47, 0x8b, 0x98, 0xd6, 0x24, 0xcd, 0x34, 0x72, 0x44, 0x02, 0xde, 0x57, 0x8e, 0x57, 0x54, 0x82, 0x5c, 0xe2, 0x27, 0xd2, 0x87, 0x1b, 0x45, 0xa5, 0x11, 0x71, 0x49, 0x51, 0x5b, 0xff, 0x81, 0xa9, 0x23, 0x24, 0x6f, 0x3b, 0x72, 0xd0, 0x7b, 0xd4, 0x58, 0x12, 0x5c, 0x70, 0xa1, 0x4d, 0x87, 0xc3, 0xfd, 0x13, 0x39, 0x2a, 0x3b, 0xda, 0x65, 0x53, 0x01, 0x6e, 0x8b, 0x2d, 0x07, 0xbd, 0xe9, 0x03, 0xcf, 0x68, 0x7b, 0x44, 0x5c, 0xfd, 0x6f, 0x76, 0x14, 0x92, 0xeb, 0xa4, 0x65, 0x22, 0xad, 0xa8, 0x4a, 0x96, 0x15, 0xd8, 0xda, 0x34, 0x98, 0xb2, 0x58, 0x06, 0x72, 0x69, 0xb7, 0x88, 0xe5, 0x59, 0xb6, 0x59, 0xd4, 0xb4, 0x8a, 0x87, 0xd8, 0x80, 0xd6, 0x37, 0x8b, 0xe6, 0xa8, 0x87, 0x46, 0xf3, 0x5b, 0x32, 0x2b, 0x04, 0x78, 0x45, 0xaa, 0xdc, 0x52, 0x3b, 0xea, 0xff, 0x30, 0x70, 0xf7, 0x21, 0xc3, 0xc0, 0x71, 0xea, 0xa3, 0x19, 0xb7, 0xa4, 0x7c, 0x1b, 0x20, 0xd3, 0x00, 0xdc, 0x03, 0x21, 0x90, 0x9b, 0x66, 0x9e, 0x57, 0xd3, 0x9a, 0x1c, 0xe2, 0xfd, 0xbe, 0xaa, 0xfa, 0xc2, 0x13, 0x50, 0xec, 0x2d, 0x6e, 0x6d, 0x5b, 0x88, 0x01, 0x86, 0xc0, 0x28, 0xa8, 0x61, 0x47, 0x4d, 0x50, 0x76, 0xa4, 0xad, 0xc5, 0x03, 0x2f, 0xec, 0x91, 0x40, 0x78, 0x7c, 0x36, 0x80, 0x6e, 0xf7, 0x9c, 0x72, 0xe3, 0xa1, 0x9d, 0x8c, 0x8b, 0x70, 0xbd, 0xaf, 0x20, 0x72, 0x95, 0x54, 0x2d, 0x96, 0x82, 0x5a, 0x5d, 0xe7, 0xdf, 0xe1, 0x08, 0xef, 0x57, 0x45, 0x99, 0xb8, 0xf1, 0x84, 0xc6, 0x3a, 0x5a, 0x13, 0x1d, 0xb1, 0x9b, 0x3b, 0xe5, 0x3f, 0x69, 0x9c, 0x10, 0xfc, 0x4c, 0xa7, 0xc6, 0x3f, 0x35, 0x00, 0x21, 0x1b, 0x35, 0x6a, 0x0a, 0xc6, 0x64, 0xdd, 0xfc, 0x1a, 0x92, 0x52, 0x59, 0x00, 0x26, 0x39, 0x5b, 0x47, 0x9b, 0xe9, 0xa5, 0xe4, 0x75, 0x84, 0x23, 0x56, 0x0b, 0x65, 0xbb, 0xce, 0x5b, 0xba, 0xde, 0x49, 0x3b, 0x13, 0xd0, 0x0c, 0xf8, 0xc1, 0xd3, 0xb7, 0xe9, 0x22, 0x13, 0x67, 0xe8, 0xf0, 0xea, 0xda, 0xb6, 0xe6, 0xd1, 0xb5, 0xff, 0xfd, 0xe7, 0xb2, 0xd7, 0x41, 0xfc, 0x2c, 0x83, 0x02, 0x24, 0xff, 0xf7, 0xff, 0x14, 0xae, 0x5c, 0x07, };
17663 static const u8 ed25519_768_test_vectors_expected_sig[] = {
17664 	0xec, 0xe7, 0x53, 0x22, 0x99, 0x51, 0x54, 0xb2, 0x92, 0x43, 0x7e, 0x47, 0xd3, 0x8a, 0x6a, 0x70, 0xaf, 0x37, 0xe2, 0x02, 0x07, 0x16, 0xfd, 0xe4, 0x6b, 0xfd, 0x39, 0x3b, 0x3d, 0x36, 0x9b, 0xdd, 0xb5, 0x32, 0x53, 0xb5, 0x56, 0x62, 0x1c, 0xfb, 0x34, 0xc8, 0xa9, 0x02, 0x54, 0xe1, 0x32, 0xfd, 0x28, 0xec, 0xd0, 0x98, 0x43, 0x34, 0x13, 0xa2, 0x1b, 0xd3, 0xa9, 0x79, 0x8c, 0xa1, 0xf3, 0x09, };
17665 static const ec_test_case ed25519_768_test_case = {
17666 	.name = "EDDSA25519-SHA512/wei25519 768",
17667 	.ec_str_p = &wei25519_str_params,
17668 	.priv_key = ed25519_768_test_vectors_priv_key,
17669 	.priv_key_len = sizeof(ed25519_768_test_vectors_priv_key),
17670 	.nn_random = NULL,
17671 	.hash_type = SHA512,
17672 	.msg = (const char *)ed25519_768_test_vectors_message,
17673 	.msglen = sizeof(ed25519_768_test_vectors_message),
17674 	.sig_type = EDDSA25519,
17675 	.exp_sig = ed25519_768_test_vectors_expected_sig,
17676 	.exp_siglen = sizeof(ed25519_768_test_vectors_expected_sig),
17677 	.adata = NULL,
17678 	.adata_len = 0
17679 };
17680 
17681 /************************************************/
17682 static const u8 ed25519_769_test_vectors_priv_key[] = {
17683 	0x22, 0x73, 0x94, 0x2d, 0xb3, 0xe5, 0xd3, 0x22, 0x1e, 0x80, 0xd9, 0x94, 0xfd, 0x5e, 0x11, 0x63, 0xaf, 0x55, 0xf5, 0x45, 0x5a, 0x8e, 0x52, 0xbe, 0x85, 0x2d, 0xd3, 0xad, 0xf7, 0x62, 0xb4, 0x40, };
17684 static const u8 ed25519_769_test_vectors_message[] = {
17685 	0x8a, 0xa0, 0x50, 0x9e, 0x4b, 0x91, 0x41, 0x86, 0xff, 0xff, 0x07, 0xae, 0xb9, 0x7a, 0x04, 0xb5, 0x46, 0x27, 0x2d, 0xa2, 0xf9, 0xea, 0x7b, 0xfa, 0x65, 0x9a, 0x24, 0xcb, 0x50, 0x96, 0x6c, 0x23, 0xeb, 0x65, 0x42, 0xe4, 0xf2, 0x2d, 0xeb, 0xe3, 0x3b, 0x65, 0x76, 0x92, 0x45, 0xc4, 0xd1, 0xb5, 0xdc, 0xf3, 0xe6, 0x99, 0xc7, 0x0c, 0x5c, 0x2b, 0xaa, 0xd9, 0x73, 0x4e, 0x9d, 0x1e, 0xfe, 0x54, 0x48, 0xab, 0x71, 0xc8, 0x94, 0x6a, 0xec, 0xce, 0x52, 0x68, 0xd2, 0x6f, 0x19, 0xcf, 0x60, 0x5e, 0xb3, 0xbf, 0x38, 0xb0, 0xb3, 0x32, 0x26, 0x94, 0xac, 0x0d, 0xcb, 0x76, 0xb0, 0xf9, 0x46, 0x84, 0x2f, 0x6c, 0x5c, 0x68, 0xd7, 0x63, 0xfc, 0xe7, 0x47, 0x01, 0xbd, 0x6b, 0x78, 0xe7, 0x1c, 0x8c, 0x31, 0x42, 0xad, 0xd4, 0xed, 0x46, 0xe0, 0x96, 0x9b, 0xb9, 0x55, 0x5b, 0xe0, 0x36, 0x02, 0xd5, 0x62, 0xe4, 0xc8, 0x9f, 0x3a, 0x91, 0x99, 0x40, 0xe8, 0x83, 0xa9, 0x69, 0x40, 0x54, 0x2f, 0x27, 0x79, 0xfb, 0xf9, 0xec, 0x0a, 0x28, 0x5d, 0x9d, 0x8a, 0x72, 0x36, 0x01, 0x46, 0xe3, 0xff, 0xbd, 0xb7, 0x8d, 0x21, 0x03, 0x16, 0x03, 0x8d, 0x95, 0xd6, 0xab, 0x75, 0x71, 0x65, 0xaa, 0x94, 0x3c, 0x03, 0x3e, 0xeb, 0xb3, 0x21, 0xc0, 0x5a, 0x39, 0x95, 0x69, 0xbc, 0xf6, 0x6b, 0x4d, 0xdb, 0x0b, 0x2e, 0x0e, 0x33, 0xc4, 0x79, 0x3d, 0x81, 0x7c, 0xcf, 0xf5, 0x7f, 0x99, 0xb3, 0x18, 0x9c, 0x60, 0xd5, 0xd7, 0xb9, 0x41, 0x9d, 0x1e, 0xbc, 0x94, 0x3a, 0x79, 0xd4, 0xd8, 0xc3, 0x94, 0x56, 0x61, 0x80, 0x59, 0x4f, 0x55, 0x9a, 0x80, 0x52, 0x9c, 0xc1, 0xba, 0x28, 0x87, 0x7a, 0xf8, 0xf5, 0xc0, 0x50, 0x3e, 0x94, 0x3c, 0xd3, 0xaa, 0xd9, 0x98, 0x11, 0x64, 0x52, 0x72, 0xda, 0xfb, 0x49, 0xb9, 0xb3, 0xe6, 0x10, 0x7e, 0xb5, 0xe5, 0x18, 0x6e, 0x16, 0x08, 0x75, 0x71, 0x26, 0x05, 0x3d, 0xeb, 0xce, 0xc7, 0x5d, 0xd9, 0x56, 0x5c, 0xee, 0xa0, 0x6a, 0x13, 0x91, 0xa8, 0x22, 0x6d, 0x1f, 0x45, 0x93, 0x79, 0x22, 0x40, 0xcc, 0xd9, 0x7c, 0x67, 0xa6, 0xc2, 0xb1, 0x34, 0x4c, 0x22, 0xc9, 0x1f, 0x42, 0x03, 0x3a, 0xde, 0xf5, 0x28, 0x61, 0xf3, 0x2a, 0x4e, 0x07, 0x12, 0xa9, 0x17, 0x87, 0x9a, 0x0b, 0x05, 0x18, 0xb5, 0x42, 0x4b, 0xcd, 0xc0, 0x54, 0xb4, 0x4e, 0x97, 0x2e, 0xd2, 0x4d, 0x01, 0x68, 0x9f, 0x4f, 0x27, 0xf5, 0xf1, 0x76, 0xf0, 0xa5, 0x78, 0xab, 0x2d, 0x3c, 0x08, 0x78, 0x27, 0x2e, 0x8c, 0x08, 0xc2, 0x15, 0x82, 0x11, 0x86, 0x54, 0x12, 0x4d, 0xca, 0x39, 0x58, 0x53, 0x37, 0xc1, 0x3c, 0x18, 0x65, 0x81, 0x4c, 0xaf, 0x09, 0x96, 0xca, 0xdf, 0xa6, 0x5b, 0xe5, 0x80, 0xde, 0xe3, 0x22, 0xeb, 0xcc, 0xda, 0x70, 0x4b, 0x22, 0x80, 0x58, 0x26, 0x04, 0x06, 0x7d, 0xc3, 0xc6, 0xb1, 0xf7, 0xd8, 0xa2, 0x69, 0x78, 0xa6, 0x5c, 0xff, 0xd1, 0xed, 0x31, 0x96, 0xa2, 0xb0, 0x65, 0xfb, 0x3c, 0xaa, 0x79, 0xe6, 0xb5, 0xb6, 0x6c, 0x13, 0xd7, 0xbd, 0x7d, 0x0e, 0xc1, 0x4a, 0x3a, 0x4d, 0x58, 0x41, 0x3f, 0x21, 0x2f, 0x47, 0x1e, 0xca, 0xad, 0x3a, 0x84, 0xaf, 0x35, 0xe5, 0x98, 0xa8, 0x9f, 0xb3, 0x44, 0x7d, 0x33, 0x24, 0xf0, 0x20, 0xfb, 0xf1, 0xb7, 0x3e, 0x2a, 0x98, 0x6e, 0x0d, 0xa1, 0x6c, 0x01, 0x83, 0xbf, 0x92, 0xa3, 0x98, 0xc4, 0x19, 0xa0, 0xf9, 0xf3, 0x05, 0x37, 0xbe, 0xa0, 0xdf, 0x8d, 0xf2, 0xdc, 0x53, 0xc1, 0x54, 0xe8, 0xea, 0x16, 0x06, 0x89, 0xe7, 0xbb, 0x4d, 0x72, 0x9d, 0xd8, 0xab, 0x90, 0x03, 0x14, 0x27, 0xaa, 0x39, 0x45, 0x86, 0x3a, 0x85, 0xe8, 0x96, 0x52, 0xb9, 0x35, 0x38, 0x05, 0x16, 0x6f, 0x7c, 0x0a, 0x18, 0xc9, 0x39, 0x95, 0x4b, 0x27, 0x87, 0xc3, 0x70, 0x94, 0xf9, 0x25, 0x12, 0x72, 0x2e, 0x52, 0xb0, 0xc9, 0x76, 0xb9, 0xe4, 0x2a, 0xf4, 0x03, 0x9d, 0x2c, 0x05, 0x78, 0xff, 0x14, 0xfa, 0xe1, 0xd8, 0xc2, 0xd1, 0x39, 0x6b, 0xeb, 0x2d, 0x6a, 0xa6, 0xeb, 0xd5, 0x54, 0x74, 0xa9, 0x34, 0x98, 0x67, 0xa0, 0x3f, 0x3a, 0x99, 0xd7, 0x87, 0x80, 0x63, 0x4a, 0xb4, 0xb3, 0x5c, 0xfe, 0x1b, 0x87, 0xa9, 0x13, 0x32, 0x52, 0xa6, 0x98, 0xbc, 0x40, 0x7d, 0x63, 0x84, 0x28, 0x70, 0xe2, 0x2c, 0xcf, 0x39, 0x33, 0x62, 0x0a, 0xc0, 0x42, 0x3c, 0x3d, 0x1f, 0x68, 0x1d, 0xd7, 0x3c, 0x01, 0xd0, 0x6c, 0x3b, 0x94, 0x15, 0x06, 0xc9, 0x8e, 0xed, 0x9b, 0x78, 0x68, 0xe0, 0x17, 0xb7, 0xf9, 0x97, 0x16, 0xb0, 0xb7, 0x7f, 0x11, 0x32, 0x1e, 0x5a, 0xb2, 0x3d, 0xbf, 0xcf, 0xca, 0x93, 0x50, 0x84, 0x5e, 0xe1, 0x80, 0x44, 0x4c, 0x50, 0xff, 0x0a, 0x9c, 0x96, 0x5f, 0xcb, 0xf7, 0x77, 0x70, 0x8e, 0x4f, 0x34, 0xcc, 0xc6, 0x37, 0xc6, 0xa0, 0x8d, 0x85, 0x43, 0x84, 0xf8, 0xd3, 0xe2, 0x51, 0x69, 0x56, 0xc1, 0x51, 0xd0, 0x31, 0xbb, 0x1c, 0xbe, 0x71, 0x2a, 0x5e, 0xf9, 0xee, 0x16, 0x61, 0x92, 0x28, 0xbd, 0x29, 0x6f, 0x2a, 0xfe, 0x58, 0x2d, 0x99, 0x53, 0xd5, 0x90, 0xd1, 0x8b, 0xb2, 0x05, 0xf7, 0x0f, 0x84, 0x4c, 0x16, 0xc0, 0xa2, 0xd8, 0x31, 0x80, 0x37, 0xd4, 0x3d, 0xd8, 0x0f, 0x65, 0xc6, 0xa7, 0x53, 0xf2, 0xa8, 0xe2, 0x7c, 0x89, 0xc8, 0x3e, 0x7e, 0xd7, 0x0c, 0x52, 0xf7, 0x06, 0x2d, 0xfb, 0xb1, 0xf5, 0x44, 0xaa, 0x23, 0x6b, 0x5c, 0x70, 0x4e, 0x7b, 0x39, 0xce, 0x0a, 0x55, 0xfd, 0x46, 0x52, 0x80, 0x83, 0xca, 0x61, };
17686 static const u8 ed25519_769_test_vectors_expected_sig[] = {
17687 	0x87, 0x4d, 0xde, 0xce, 0x08, 0xf3, 0x0b, 0x30, 0xf0, 0xd4, 0xc8, 0xb3, 0xed, 0x7c, 0x61, 0x51, 0x49, 0xb8, 0xaa, 0x74, 0x0d, 0xaa, 0x34, 0x7b, 0x55, 0x95, 0x8f, 0x1e, 0x21, 0x19, 0x04, 0x4f, 0x69, 0x5a, 0x21, 0x06, 0x96, 0x90, 0x50, 0x64, 0x48, 0xd8, 0xe7, 0x35, 0x2b, 0x90, 0x46, 0x51, 0x1d, 0x7f, 0x39, 0xa5, 0x41, 0x5b, 0xb9, 0xc5, 0x70, 0x50, 0xfc, 0x17, 0x05, 0x5c, 0x38, 0x08, };
17688 static const ec_test_case ed25519_769_test_case = {
17689 	.name = "EDDSA25519-SHA512/wei25519 769",
17690 	.ec_str_p = &wei25519_str_params,
17691 	.priv_key = ed25519_769_test_vectors_priv_key,
17692 	.priv_key_len = sizeof(ed25519_769_test_vectors_priv_key),
17693 	.nn_random = NULL,
17694 	.hash_type = SHA512,
17695 	.msg = (const char *)ed25519_769_test_vectors_message,
17696 	.msglen = sizeof(ed25519_769_test_vectors_message),
17697 	.sig_type = EDDSA25519,
17698 	.exp_sig = ed25519_769_test_vectors_expected_sig,
17699 	.exp_siglen = sizeof(ed25519_769_test_vectors_expected_sig),
17700 	.adata = NULL,
17701 	.adata_len = 0
17702 };
17703 
17704 /************************************************/
17705 static const u8 ed25519_770_test_vectors_priv_key[] = {
17706 	0xdb, 0xfa, 0x45, 0xab, 0xaa, 0x55, 0x41, 0x52, 0x38, 0xb1, 0x28, 0x76, 0x34, 0xd5, 0xee, 0xc4, 0x02, 0xda, 0xdf, 0x62, 0x2e, 0x27, 0x0c, 0x04, 0xa8, 0x91, 0x4c, 0xed, 0x27, 0x0a, 0x72, 0xbe, };
17707 static const u8 ed25519_770_test_vectors_message[] = {
17708 	0xe2, 0x6e, 0x8d, 0xcb, 0x44, 0xe6, 0x41, 0xfc, 0x20, 0x08, 0x0e, 0x95, 0x47, 0x4b, 0xd3, 0x9d, 0x71, 0x6c, 0x5a, 0xfe, 0x5a, 0x1f, 0xfb, 0x05, 0x6d, 0x1e, 0xaa, 0xb0, 0xc4, 0x9f, 0x85, 0x70, 0x71, 0x7d, 0xb6, 0x43, 0x7a, 0x03, 0x22, 0x8a, 0x9a, 0xd9, 0xf4, 0xbb, 0x0b, 0x34, 0x3b, 0x95, 0xe1, 0x60, 0x23, 0xc0, 0x80, 0x7e, 0xb2, 0xa1, 0x51, 0x06, 0xa6, 0xeb, 0x12, 0xdc, 0x76, 0x68, 0x3e, 0x69, 0xdd, 0xa3, 0x36, 0x31, 0x48, 0xc5, 0xd7, 0xdd, 0x97, 0x13, 0xaf, 0x6f, 0x87, 0xa0, 0x94, 0x10, 0xea, 0x8f, 0x76, 0xb6, 0xb7, 0x8a, 0x11, 0x44, 0x29, 0xbc, 0x85, 0xf7, 0x84, 0x81, 0x2f, 0xca, 0x31, 0xac, 0xb0, 0x30, 0x95, 0x52, 0xcc, 0x18, 0x8c, 0x6e, 0x96, 0x97, 0x09, 0x3c, 0xf4, 0x04, 0xc6, 0xf0, 0xf4, 0xab, 0xe8, 0xa1, 0x60, 0x86, 0x73, 0xfd, 0xfa, 0x5e, 0xb7, 0x8f, 0x65, 0xfc, 0x1d, 0x49, 0xcd, 0xec, 0x40, 0x94, 0xb1, 0xbd, 0x23, 0x4a, 0x46, 0xe0, 0xec, 0x62, 0xa4, 0xb6, 0xd3, 0x1b, 0x82, 0x96, 0x11, 0x54, 0x01, 0x27, 0x87, 0x6b, 0xff, 0x4c, 0x17, 0x3d, 0xe0, 0x58, 0xcf, 0x61, 0x00, 0x4b, 0x01, 0x4a, 0x7b, 0xdf, 0x79, 0x3d, 0xfd, 0x6b, 0x63, 0xc5, 0x07, 0xd2, 0xb2, 0x3e, 0x0f, 0x56, 0xbc, 0x2f, 0xe6, 0xba, 0xf6, 0x37, 0xce, 0xe4, 0x0d, 0x18, 0x99, 0x22, 0x95, 0xd8, 0x48, 0xef, 0x49, 0x8f, 0x8a, 0x16, 0x1b, 0xd8, 0x7e, 0x60, 0xc9, 0x1f, 0x97, 0xa9, 0x1e, 0x9e, 0xf3, 0xf6, 0xd9, 0x7f, 0x2b, 0x2d, 0x21, 0x04, 0xba, 0x6f, 0xdd, 0xd6, 0xc6, 0x80, 0x70, 0x62, 0x73, 0xda, 0xe8, 0x7e, 0x6e, 0xec, 0x1a, 0xf2, 0xa4, 0x59, 0x84, 0x98, 0x50, 0x69, 0xe8, 0x09, 0xe8, 0xde, 0x32, 0xc1, 0x28, 0x89, 0x29, 0x9a, 0x32, 0xd4, 0x0f, 0x38, 0x77, 0x45, 0x99, 0xac, 0x33, 0x24, 0xb7, 0xcb, 0x0a, 0x4e, 0xa6, 0x32, 0xc5, 0xf9, 0x10, 0xad, 0x87, 0xf5, 0xad, 0xbf, 0xa5, 0xc3, 0xbb, 0x20, 0x49, 0x82, 0x79, 0xfd, 0x53, 0xc1, 0xc2, 0x67, 0xfe, 0x0a, 0x84, 0x77, 0x30, 0x85, 0xda, 0x26, 0x6b, 0x25, 0x3c, 0xd8, 0x53, 0xdf, 0x7e, 0x96, 0x35, 0x58, 0xcb, 0x06, 0x88, 0x07, 0x80, 0x97, 0x34, 0x23, 0xc5, 0x64, 0xcd, 0x0b, 0xcd, 0x6b, 0x93, 0x33, 0x4c, 0x19, 0x59, 0x53, 0xd7, 0xcd, 0x89, 0x9f, 0x8a, 0x54, 0x7d, 0x1a, 0x1a, 0x0a, 0x8d, 0xef, 0xf1, 0x38, 0x1b, 0x43, 0x21, 0x57, 0x47, 0x28, 0xcf, 0x71, 0xb9, 0x6f, 0xf2, 0x09, 0xe8, 0x99, 0xda, 0xa8, 0xf1, 0x3f, 0x41, 0xb2, 0x30, 0xe1, 0x7b, 0xff, 0xdf, 0xdd, 0x2a, 0x89, 0x43, 0xaa, 0x5d, 0x21, 0xe5, 0xf3, 0x6e, 0x1d, 0xa0, 0x7e, 0xdd, 0x6c, 0xee, 0x92, 0xdc, 0x48, 0xb5, 0xb2, 0xa7, 0x58, 0x01, 0x46, 0xa9, 0xba, 0xf7, 0x13, 0x95, 0x0c, 0xe6, 0x76, 0x25, 0x5a, 0x89, 0xe3, 0x4f, 0x87, 0x87, 0x54, 0x7d, 0x62, 0x86, 0x8d, 0xb1, 0x4b, 0xa4, 0x65, 0x94, 0xda, 0x31, 0x0d, 0x7e, 0x2d, 0x9e, 0x7c, 0x7d, 0xbe, 0x17, 0xdb, 0xd7, 0x1e, 0xb4, 0x7c, 0x56, 0xc5, 0x72, 0x1d, 0xc9, 0x6d, 0x69, 0x64, 0x70, 0x57, 0x37, 0x94, 0x80, 0x94, 0x11, 0xcd, 0xfa, 0x27, 0x6b, 0x05, 0x9d, 0x00, 0x07, 0xc2, 0x5d, 0x74, 0xb2, 0xa6, 0x7d, 0x38, 0x24, 0x6d, 0xe1, 0x1e, 0xf4, 0x6d, 0xfe, 0x26, 0x70, 0x92, 0x6f, 0xe4, 0xb6, 0x36, 0x56, 0x23, 0x1b, 0xc7, 0x26, 0x8b, 0xba, 0x23, 0xf3, 0x78, 0xe8, 0x4a, 0x42, 0x8c, 0x3c, 0xbf, 0x45, 0xcc, 0x53, 0x96, 0x78, 0xfd, 0x46, 0x7c, 0xd3, 0x3d, 0xd0, 0x75, 0x7c, 0xfa, 0x02, 0x4e, 0x54, 0xda, 0x1f, 0xf5, 0x4c, 0xe8, 0x20, 0x22, 0x9b, 0x77, 0x8b, 0x18, 0x4b, 0xe1, 0xfa, 0x2e, 0x84, 0x68, 0xcc, 0x19, 0x95, 0x59, 0x40, 0x73, 0x5e, 0xaa, 0xa8, 0x84, 0x02, 0x2f, 0x64, 0x18, 0xb0, 0xb1, 0xf2, 0x6b, 0xcc, 0xf1, 0x69, 0xf1, 0xbc, 0xac, 0x7d, 0x82, 0xa3, 0x5a, 0xb6, 0xef, 0x84, 0x7e, 0x1d, 0xba, 0x53, 0x7d, 0xca, 0xff, 0x57, 0x25, 0x0a, 0x8d, 0x1c, 0x71, 0xfa, 0xcb, 0x13, 0x4c, 0xd0, 0x6b, 0x01, 0xc4, 0x53, 0x19, 0x13, 0x27, 0x45, 0xdc, 0x48, 0x88, 0x88, 0xa1, 0xd7, 0x76, 0x1b, 0x84, 0x86, 0xa3, 0x7e, 0x69, 0x88, 0xa1, 0x12, 0x0b, 0xcc, 0x16, 0x82, 0xdb, 0xfc, 0x89, 0x14, 0x3f, 0xc3, 0x5b, 0x46, 0x93, 0x5d, 0x8a, 0xcf, 0x6e, 0xf3, 0xc4, 0x2f, 0x0f, 0x4b, 0xf6, 0x79, 0xdf, 0xd6, 0xff, 0x44, 0xb6, 0xad, 0xa2, 0x6b, 0x01, 0xa9, 0xf8, 0x9f, 0x37, 0x4c, 0x7d, 0x2e, 0xe4, 0x8d, 0xfe, 0x1a, 0x41, 0x0e, 0x89, 0x7c, 0xdf, 0xd9, 0x7f, 0x62, 0x6d, 0x26, 0x68, 0x50, 0x28, 0x14, 0x40, 0x07, 0x93, 0xb3, 0xb0, 0x7c, 0x87, 0x20, 0xbb, 0xdd, 0xc5, 0x9c, 0xb0, 0xf9, 0xde, 0x96, 0x4a, 0xe0, 0x75, 0xb4, 0xaf, 0x3d, 0xd4, 0xba, 0xf6, 0xd0, 0xe4, 0xf9, 0x4f, 0x29, 0x4e, 0x81, 0x09, 0xd6, 0x57, 0x7c, 0x4f, 0x8a, 0x9c, 0x7a, 0x5f, 0x7d, 0x69, 0x4b, 0xf8, 0x8f, 0x1a, 0x5e, 0xa7, 0xeb, 0xa0, 0xa6, 0x6d, 0xa6, 0xc7, 0x70, 0xc0, 0x8b, 0x3a, 0xbf, 0xfc, 0x53, 0x4d, 0xf2, 0x19, 0xdc, 0x3e, 0x33, 0x23, 0xb0, 0x22, 0xe9, 0x6c, 0xc8, 0x60, 0x02, 0xb1, 0x89, 0x18, 0x1a, 0x1d, 0x2b, 0x52, 0x7d, 0x27, 0x95, 0x0b, 0x7f, 0x42, 0x5a, 0x47, 0xda, 0x40, 0x13, 0x77, 0x8b, 0xd0, 0x0b, 0x71, 0x10, 0x59, 0x22, 0x20, 0x49, 0x21, 0xe9, 0xdc, 0x69, 0x2c, 0x23, 0x3f, 0x7b, 0xaa, 0x04, };
17709 static const u8 ed25519_770_test_vectors_expected_sig[] = {
17710 	0xa4, 0x62, 0xa9, 0xba, 0xa5, 0x6d, 0xc0, 0xf7, 0xa7, 0x1b, 0xf8, 0x7b, 0x95, 0xf4, 0x8d, 0x64, 0x20, 0x22, 0xd9, 0xd1, 0x73, 0x3e, 0xe3, 0x68, 0x37, 0x77, 0xa3, 0x78, 0x22, 0x28, 0xac, 0x85, 0xfc, 0xd8, 0x30, 0x26, 0xbe, 0x4c, 0xa9, 0x7a, 0x34, 0x5b, 0x08, 0x4f, 0x50, 0x87, 0x4e, 0x91, 0x24, 0xe1, 0x6b, 0xa1, 0x7d, 0xea, 0xd4, 0xad, 0x85, 0xc0, 0xe5, 0x6f, 0x16, 0xef, 0x18, 0x04, };
17711 static const ec_test_case ed25519_770_test_case = {
17712 	.name = "EDDSA25519-SHA512/wei25519 770",
17713 	.ec_str_p = &wei25519_str_params,
17714 	.priv_key = ed25519_770_test_vectors_priv_key,
17715 	.priv_key_len = sizeof(ed25519_770_test_vectors_priv_key),
17716 	.nn_random = NULL,
17717 	.hash_type = SHA512,
17718 	.msg = (const char *)ed25519_770_test_vectors_message,
17719 	.msglen = sizeof(ed25519_770_test_vectors_message),
17720 	.sig_type = EDDSA25519,
17721 	.exp_sig = ed25519_770_test_vectors_expected_sig,
17722 	.exp_siglen = sizeof(ed25519_770_test_vectors_expected_sig),
17723 	.adata = NULL,
17724 	.adata_len = 0
17725 };
17726 
17727 /************************************************/
17728 static const u8 ed25519_771_test_vectors_priv_key[] = {
17729 	0xef, 0x64, 0xe1, 0x7a, 0x53, 0xf7, 0xfb, 0xca, 0xfe, 0x3e, 0xa4, 0x68, 0x76, 0x84, 0xa0, 0xda, 0xdb, 0x18, 0xd0, 0x37, 0x35, 0xa4, 0x0a, 0x53, 0xb3, 0xed, 0xb0, 0x49, 0x07, 0xee, 0x61, 0x62, };
17730 static const u8 ed25519_771_test_vectors_message[] = {
17731 	0x68, 0x82, 0x45, 0x6c, 0xc3, 0xd1, 0xad, 0x0d, 0xaa, 0x9b, 0x88, 0xef, 0xf0, 0x96, 0x9f, 0x15, 0xe9, 0x7b, 0x48, 0xd0, 0x51, 0x96, 0x7e, 0x13, 0x90, 0x84, 0x72, 0x25, 0xf2, 0x6a, 0xc2, 0x55, 0x59, 0xf0, 0x24, 0x6b, 0xf7, 0xd6, 0x83, 0xfa, 0x28, 0xec, 0xed, 0xad, 0x21, 0x49, 0x1d, 0x77, 0xbd, 0x26, 0x96, 0xfa, 0x83, 0x5d, 0x0f, 0xd1, 0x19, 0x88, 0x4f, 0xec, 0xe9, 0xd8, 0x03, 0x69, 0x1b, 0x2f, 0xd3, 0xde, 0x17, 0xee, 0x08, 0x7c, 0x74, 0x00, 0x7a, 0x7d, 0xe9, 0xbc, 0x65, 0x34, 0xbb, 0xfe, 0x95, 0xfd, 0x32, 0xe9, 0x7c, 0x37, 0x5f, 0x4c, 0xb6, 0x57, 0x31, 0xaa, 0x1e, 0x83, 0x46, 0xbe, 0xa2, 0x1b, 0xe9, 0xf2, 0xc3, 0xdc, 0x87, 0x4a, 0xf0, 0x43, 0x19, 0x06, 0xcc, 0xbc, 0x2c, 0x60, 0x01, 0x27, 0xf4, 0xd3, 0xb0, 0x69, 0xeb, 0x09, 0x1d, 0x16, 0x5e, 0xc4, 0x53, 0xe6, 0x72, 0xe9, 0x3c, 0xae, 0x8b, 0x72, 0xf0, 0x33, 0x71, 0xd8, 0xb8, 0xa8, 0x24, 0x4e, 0xc4, 0xec, 0x2e, 0x09, 0xf3, 0x1d, 0xf4, 0x02, 0x06, 0xa2, 0xb1, 0xc8, 0x4c, 0xaa, 0x1b, 0x99, 0x3c, 0xc6, 0x75, 0xfd, 0xe1, 0xc7, 0x9b, 0xd4, 0xa7, 0xd1, 0x59, 0x74, 0xfa, 0x29, 0xce, 0x2e, 0x89, 0x2c, 0x28, 0x99, 0xcf, 0x48, 0x2c, 0x3d, 0x96, 0x63, 0xf6, 0xd2, 0xa7, 0x97, 0x84, 0xf4, 0x1c, 0x1f, 0x58, 0x66, 0xd3, 0x7c, 0x85, 0x46, 0xf3, 0x57, 0xd5, 0x64, 0xd3, 0xc4, 0x21, 0x8d, 0xfa, 0x6d, 0x20, 0xb6, 0xc2, 0x82, 0xb4, 0x00, 0xfe, 0xdd, 0xe5, 0x24, 0x39, 0xd4, 0x72, 0x21, 0x2c, 0x57, 0x67, 0xa3, 0x5d, 0xa5, 0x20, 0x10, 0x32, 0xda, 0x87, 0x30, 0x96, 0x8b, 0x07, 0x20, 0xe8, 0xa6, 0x04, 0xde, 0x6c, 0x1b, 0xaa, 0x3f, 0x4e, 0x89, 0x6a, 0xc2, 0x61, 0x4f, 0xb1, 0xab, 0x6e, 0x3f, 0x6c, 0xf3, 0x87, 0xa8, 0xeb, 0x2f, 0xf8, 0xa9, 0x21, 0x47, 0xab, 0x34, 0x92, 0x38, 0x43, 0x2e, 0x50, 0x9d, 0x82, 0x9c, 0xb7, 0x5b, 0x2c, 0x17, 0x65, 0xc5, 0x12, 0x21, 0x84, 0x8e, 0x25, 0xaf, 0xff, 0x5f, 0x16, 0xe4, 0xdd, 0x0c, 0xd5, 0xc9, 0xf7, 0x13, 0xc4, 0xaa, 0xab, 0x2c, 0xe8, 0x36, 0xf8, 0x49, 0x45, 0x06, 0xb5, 0x30, 0x9d, 0xc2, 0xb0, 0xae, 0x74, 0x5b, 0xb9, 0xc4, 0x79, 0x80, 0x98, 0xfb, 0x86, 0x41, 0xd5, 0x20, 0xa0, 0x8b, 0x02, 0xf7, 0x5a, 0xd8, 0x0d, 0xbc, 0x2c, 0xe2, 0x9e, 0x89, 0x0b, 0x4d, 0x72, 0xa3, 0xff, 0xb2, 0xa1, 0xcb, 0xd5, 0x38, 0xe1, 0x22, 0x9f, 0x57, 0x9c, 0x29, 0xae, 0x66, 0xbc, 0xa8, 0x5e, 0x0f, 0xa0, 0x8c, 0x86, 0x47, 0xa1, 0xab, 0xcf, 0xe8, 0xa4, 0x9f, 0x5e, 0x50, 0x8d, 0x4d, 0x24, 0x95, 0x55, 0x66, 0x23, 0xd9, 0x26, 0xce, 0x49, 0xef, 0xa4, 0x35, 0x0a, 0xaa, 0xab, 0x5c, 0xec, 0x2c, 0xd8, 0x85, 0xbe, 0x1d, 0x63, 0x47, 0x5e, 0x3b, 0xab, 0x7c, 0x7c, 0xdc, 0x8d, 0x65, 0x61, 0x73, 0xb8, 0xd4, 0x56, 0x02, 0xf4, 0xb3, 0xd2, 0x81, 0x24, 0x1d, 0x17, 0x19, 0x03, 0x27, 0xb2, 0x4c, 0x38, 0x36, 0xb1, 0x93, 0x11, 0xa1, 0x93, 0xaf, 0x86, 0xa6, 0x76, 0x8f, 0x04, 0x85, 0x2a, 0xb0, 0x6e, 0x67, 0xc8, 0xea, 0xd5, 0x91, 0xcd, 0xcb, 0xf3, 0x78, 0x9c, 0x61, 0x32, 0x09, 0xcf, 0xe0, 0x3f, 0x58, 0xc0, 0x30, 0x5f, 0x63, 0x20, 0x3b, 0x48, 0x7f, 0x7c, 0x5f, 0xc0, 0x98, 0x87, 0x7e, 0xc9, 0x8a, 0x68, 0x9c, 0x9d, 0x35, 0xaf, 0x81, 0xe8, 0x40, 0x78, 0xd6, 0x6f, 0xe9, 0xe4, 0xec, 0xcb, 0xb1, 0xcc, 0x6c, 0x71, 0x99, 0x1c, 0x03, 0x01, 0x7b, 0xb8, 0x11, 0xf4, 0x1f, 0x07, 0xde, 0x68, 0xfa, 0xd1, 0x94, 0x14, 0x60, 0x61, 0x32, 0x4f, 0x3d, 0x0e, 0xf2, 0x17, 0xa5, 0x4c, 0xf3, 0x8f, 0x7a, 0x62, 0x5a, 0x38, 0x86, 0x9f, 0x67, 0xd0, 0xb7, 0x43, 0x1d, 0xf9, 0x37, 0xcd, 0xe3, 0x49, 0xc1, 0x75, 0xce, 0x8b, 0x26, 0xac, 0x88, 0xd3, 0x9a, 0x43, 0xe2, 0x79, 0xb0, 0x18, 0x76, 0x4e, 0xfa, 0x4d, 0xd6, 0x27, 0xcb, 0xf5, 0x91, 0xf6, 0x20, 0x9c, 0x4a, 0x5b, 0xb1, 0x9e, 0xbf, 0xa7, 0xc7, 0x13, 0x55, 0x92, 0xd0, 0x2e, 0x50, 0x1c, 0xae, 0x5e, 0x6b, 0x31, 0xc9, 0x0e, 0x72, 0xfa, 0xab, 0x47, 0xf7, 0xdc, 0xed, 0x2c, 0x48, 0xad, 0xf8, 0x84, 0x43, 0xb3, 0xed, 0xe6, 0x0c, 0xef, 0xb0, 0xd6, 0x37, 0x9d, 0x69, 0x22, 0xec, 0x43, 0x7f, 0x08, 0x6b, 0xad, 0x62, 0x17, 0xd4, 0xd4, 0xff, 0xef, 0x18, 0xe2, 0x25, 0x23, 0x66, 0x4b, 0xf4, 0xe9, 0xca, 0x1e, 0x65, 0xa2, 0x8c, 0x2a, 0x7a, 0x60, 0xc5, 0xf6, 0xbc, 0x90, 0x6b, 0x73, 0x7c, 0x29, 0x93, 0x5f, 0x90, 0x97, 0x46, 0x30, 0x48, 0x57, 0x5b, 0xef, 0xd1, 0xa2, 0x54, 0x9d, 0xc4, 0x74, 0xb1, 0x3e, 0x68, 0xae, 0xec, 0xf1, 0x66, 0x04, 0x3e, 0x07, 0x5a, 0xac, 0x51, 0x55, 0x40, 0xf8, 0x31, 0xb4, 0x30, 0x66, 0xce, 0xf9, 0x32, 0xe6, 0x3d, 0xcd, 0x5b, 0x37, 0xb6, 0x15, 0x78, 0xc3, 0x5b, 0x09, 0xe4, 0x5c, 0xc2, 0xa8, 0xde, 0xf5, 0x71, 0x03, 0xed, 0xfc, 0x5f, 0x64, 0x98, 0x31, 0xa8, 0x96, 0x1f, 0xe4, 0xa4, 0xb3, 0x72, 0x1f, 0x1d, 0x6d, 0xf4, 0xea, 0x9f, 0x03, 0x38, 0x81, 0xb4, 0x74, 0x30, 0x0e, 0x0f, 0x12, 0xcb, 0x9c, 0xd3, 0xba, 0xbd, 0xcf, 0xfb, 0xb9, 0x18, 0xdd, 0x9b, 0xb0, 0xe2, 0xf5, 0xb2, 0x10, 0x33, 0xe4, 0x30, 0x23, 0xa0, 0xd2, 0xe6, 0x6d, 0xa3, 0xab, 0x0f, 0x07, 0xee, 0x98, 0x8b, 0x16, 0x88, 0x9c, 0xa5, 0xd5, 0x1a, 0xbd, 0xc0, 0x5f, 0xde, };
17732 static const u8 ed25519_771_test_vectors_expected_sig[] = {
17733 	0xf5, 0x8f, 0x39, 0x6b, 0xa2, 0x7e, 0x06, 0x7a, 0x5f, 0xe0, 0x03, 0xe3, 0x85, 0x58, 0x2a, 0xe3, 0x49, 0x0e, 0x05, 0x95, 0x77, 0x15, 0xd7, 0x04, 0xda, 0x0d, 0xa6, 0x3a, 0x64, 0x19, 0xd2, 0xe4, 0xf6, 0xdc, 0x66, 0xb7, 0xe8, 0x8e, 0x42, 0x8a, 0x6f, 0x21, 0xb9, 0xea, 0x20, 0x22, 0x99, 0xa3, 0xc3, 0x6b, 0x24, 0x2b, 0x0e, 0xa0, 0x64, 0x76, 0xff, 0x12, 0xd0, 0xb6, 0x58, 0x0c, 0x04, 0x03, };
17734 static const ec_test_case ed25519_771_test_case = {
17735 	.name = "EDDSA25519-SHA512/wei25519 771",
17736 	.ec_str_p = &wei25519_str_params,
17737 	.priv_key = ed25519_771_test_vectors_priv_key,
17738 	.priv_key_len = sizeof(ed25519_771_test_vectors_priv_key),
17739 	.nn_random = NULL,
17740 	.hash_type = SHA512,
17741 	.msg = (const char *)ed25519_771_test_vectors_message,
17742 	.msglen = sizeof(ed25519_771_test_vectors_message),
17743 	.sig_type = EDDSA25519,
17744 	.exp_sig = ed25519_771_test_vectors_expected_sig,
17745 	.exp_siglen = sizeof(ed25519_771_test_vectors_expected_sig),
17746 	.adata = NULL,
17747 	.adata_len = 0
17748 };
17749 
17750 /************************************************/
17751 static const u8 ed25519_772_test_vectors_priv_key[] = {
17752 	0x33, 0x47, 0xdc, 0x47, 0xbb, 0x3d, 0x2e, 0x5d, 0x02, 0x86, 0xac, 0x06, 0xa5, 0x4f, 0xd9, 0x21, 0xc9, 0xe9, 0x6b, 0x68, 0x99, 0x86, 0x2a, 0x54, 0xe5, 0xcc, 0x81, 0x15, 0xd3, 0xd0, 0xba, 0x99, };
17753 static const u8 ed25519_772_test_vectors_message[] = {
17754 	0xe2, 0xf4, 0x8e, 0xdf, 0x9d, 0x64, 0x33, 0x20, 0xab, 0x99, 0x1c, 0x8f, 0xf9, 0xf6, 0xaa, 0x75, 0xfe, 0x06, 0x6e, 0x7d, 0x88, 0xff, 0x1e, 0x47, 0x2a, 0x5a, 0xc9, 0xc5, 0x18, 0xde, 0x1f, 0xb6, 0x29, 0x83, 0xb1, 0x00, 0x7f, 0x64, 0x22, 0x80, 0x91, 0x17, 0xbd, 0xbe, 0x8a, 0x0e, 0x57, 0x87, 0xf6, 0x6b, 0xb0, 0x57, 0xd2, 0x7f, 0x12, 0x9a, 0x20, 0x0b, 0x40, 0x57, 0x6e, 0x17, 0x19, 0xcf, 0x9e, 0x98, 0xfc, 0xb7, 0x2a, 0xf9, 0x4b, 0xb8, 0x2e, 0xe7, 0x0f, 0x37, 0x19, 0xa2, 0xe2, 0xcd, 0x9b, 0x64, 0x77, 0x7c, 0xea, 0x5e, 0x44, 0x64, 0x59, 0x87, 0x4b, 0x74, 0xbf, 0xbf, 0x56, 0xb2, 0xd2, 0x52, 0x64, 0x00, 0x59, 0x2a, 0x9b, 0x45, 0xa5, 0xcb, 0x79, 0x80, 0x92, 0xb6, 0x0a, 0x81, 0xb7, 0x1d, 0x82, 0xf0, 0x68, 0x5f, 0xae, 0x7f, 0x81, 0x0b, 0x52, 0xd2, 0x26, 0xad, 0xac, 0x7a, 0xd8, 0xa9, 0x18, 0x3f, 0x09, 0xfe, 0xbe, 0xe9, 0xd2, 0x50, 0x46, 0xc0, 0xfe, 0x30, 0x66, 0x81, 0xac, 0xe2, 0xbf, 0xf9, 0x1b, 0x34, 0x82, 0xb0, 0xbc, 0x30, 0xb2, 0x02, 0x1c, 0x43, 0x41, 0x64, 0x5d, 0x67, 0x51, 0x34, 0xfe, 0x30, 0x81, 0xc5, 0x1e, 0x5c, 0x59, 0xe4, 0x0b, 0x37, 0x5a, 0x14, 0x34, 0xf6, 0x3b, 0x42, 0x6e, 0x30, 0x53, 0x0d, 0xa9, 0x35, 0x3b, 0xb2, 0xa9, 0x42, 0x32, 0x20, 0x43, 0x4a, 0xe5, 0x9d, 0x7b, 0x6f, 0xdc, 0x14, 0x3f, 0x49, 0x82, 0xeb, 0x8c, 0xfa, 0x77, 0x51, 0xb7, 0x5b, 0xf3, 0xe9, 0xc9, 0x13, 0xc7, 0x3b, 0x76, 0x0b, 0x07, 0xd3, 0x95, 0x31, 0x0c, 0x59, 0xf3, 0xb7, 0x7e, 0xbf, 0x12, 0xed, 0x2d, 0x7b, 0x03, 0x59, 0x0d, 0x33, 0x17, 0xaf, 0x17, 0xdf, 0x42, 0x1e, 0x78, 0xb0, 0x84, 0x9f, 0xd5, 0x6d, 0x94, 0x5c, 0x56, 0x96, 0xa0, 0x40, 0xfc, 0xaa, 0x78, 0xa9, 0x3e, 0xcc, 0x16, 0xd5, 0xac, 0x34, 0x45, 0x06, 0x36, 0x11, 0xf3, 0x01, 0x3e, 0x9a, 0x3a, 0xe2, 0xe1, 0xc2, 0x70, 0xdd, 0x01, 0xa8, 0xff, 0xe3, 0xe6, 0x12, 0x6b, 0xc1, 0xe4, 0xc9, 0x5f, 0x65, 0x47, 0xa8, 0x65, 0x1f, 0x26, 0xb6, 0x40, 0x4e, 0x39, 0xee, 0x4c, 0xe7, 0x61, 0x89, 0x18, 0xf3, 0xf9, 0x37, 0xa5, 0x25, 0x73, 0xec, 0x27, 0x7b, 0x77, 0x1e, 0x91, 0xad, 0x09, 0x6f, 0xa1, 0x5c, 0x7a, 0x34, 0x0a, 0x80, 0x9b, 0x47, 0x03, 0x18, 0xa4, 0x63, 0x64, 0x23, 0xeb, 0x48, 0x88, 0xa1, 0x21, 0x60, 0xc4, 0x66, 0x3f, 0xce, 0x29, 0x96, 0xd6, 0x38, 0x89, 0x6c, 0x83, 0x9b, 0x2c, 0x7a, 0xd4, 0xb3, 0xa9, 0xb2, 0xe6, 0xcb, 0x71, 0xe9, 0x12, 0xfe, 0x39, 0xb8, 0x43, 0xc6, 0xe0, 0x83, 0x2e, 0xca, 0x22, 0xde, 0x93, 0x8b, 0x50, 0xae, 0x86, 0x3e, 0x48, 0x58, 0x2c, 0x10, 0x85, 0x12, 0x32, 0xf7, 0x5e, 0x52, 0x25, 0xb8, 0x89, 0x6b, 0x5a, 0x47, 0x0f, 0x81, 0x8b, 0x6f, 0xa3, 0x9e, 0xb7, 0xbb, 0x59, 0x03, 0x57, 0x67, 0x86, 0x12, 0xd2, 0x5f, 0xe1, 0xa4, 0x0e, 0xa1, 0xb9, 0xd7, 0x1d, 0x88, 0x09, 0x09, 0xc1, 0xbd, 0x4a, 0xd1, 0x76, 0xcc, 0x0c, 0xef, 0xfd, 0xce, 0xe7, 0x09, 0x9e, 0x78, 0x82, 0xa7, 0xc9, 0x07, 0xe4, 0xbe, 0xc7, 0x98, 0x30, 0xc6, 0x77, 0x1a, 0xcb, 0x89, 0x94, 0x4b, 0xd5, 0x4a, 0x51, 0x65, 0xb3, 0x18, 0x70, 0x91, 0x69, 0x21, 0xb1, 0x98, 0xac, 0xd4, 0x43, 0x2e, 0x7e, 0xed, 0x8c, 0xe1, 0xde, 0xb3, 0x45, 0xb1, 0x07, 0xed, 0xa7, 0x60, 0x26, 0x6f, 0xcb, 0xda, 0x3b, 0xa5, 0x22, 0x94, 0x00, 0xa3, 0x03, 0x60, 0xa4, 0x64, 0x5c, 0xa8, 0xdb, 0x38, 0xc3, 0xd5, 0xf4, 0xa8, 0xde, 0xf1, 0x57, 0xbb, 0xdb, 0xbf, 0x2c, 0x1f, 0xa1, 0xdc, 0x6b, 0x05, 0x14, 0xa4, 0xf5, 0xa0, 0x36, 0x4f, 0x92, 0x83, 0x81, 0xb4, 0x0f, 0x95, 0x57, 0x9a, 0x26, 0x46, 0x7f, 0x22, 0x82, 0xa8, 0xa2, 0x55, 0x75, 0x84, 0x02, 0xac, 0x9c, 0xa8, 0x0e, 0x89, 0xb9, 0xcc, 0x68, 0x60, 0xa3, 0x4b, 0xb3, 0xf9, 0x0c, 0x32, 0x37, 0x65, 0x7c, 0x21, 0x29, 0xea, 0x48, 0xc8, 0x52, 0xb9, 0x25, 0x69, 0xe8, 0x11, 0x06, 0xbc, 0xe4, 0x61, 0xe2, 0x02, 0x44, 0x54, 0x82, 0x1a, 0x91, 0x75, 0x92, 0xd1, 0x99, 0x1b, 0x5b, 0x69, 0xf2, 0x7b, 0xbe, 0x01, 0x99, 0x77, 0x52, 0x8a, 0x2f, 0xc0, 0x11, 0x92, 0xc5, 0x6b, 0x4a, 0xea, 0x87, 0x3c, 0xf8, 0xc5, 0x8d, 0xfd, 0x7c, 0xb4, 0xb0, 0xe9, 0x17, 0xe8, 0x7a, 0x87, 0x04, 0xc9, 0x92, 0x82, 0x0f, 0x98, 0xd7, 0x74, 0x04, 0xd3, 0xf1, 0xd2, 0x05, 0x0c, 0x67, 0x43, 0xf6, 0xe9, 0x3c, 0xdb, 0x51, 0xa6, 0x1a, 0xa6, 0xf4, 0x5b, 0x35, 0x1b, 0x26, 0x46, 0x1d, 0x13, 0x29, 0xf3, 0x15, 0x12, 0x72, 0xac, 0x39, 0x62, 0x34, 0xd0, 0xd6, 0x7c, 0x17, 0x8a, 0xcf, 0x91, 0xfc, 0x51, 0x0d, 0x86, 0x42, 0x9c, 0x69, 0xa8, 0x7f, 0xdf, 0x10, 0x11, 0x55, 0xda, 0x8d, 0x94, 0xde, 0x67, 0x22, 0x23, 0x8a, 0x6f, 0xb1, 0x70, 0x16, 0x86, 0x2b, 0x11, 0xd5, 0x02, 0xc6, 0x67, 0xee, 0x9c, 0xa0, 0xaa, 0xbe, 0x1c, 0x20, 0xb9, 0x77, 0x89, 0xf1, 0x86, 0x7a, 0xdd, 0x78, 0xb8, 0xb8, 0x7e, 0x9a, 0xb5, 0x19, 0x34, 0xc0, 0xb4, 0xa1, 0x6c, 0x2c, 0xbc, 0x4d, 0x2e, 0xfe, 0xdb, 0x79, 0xc0, 0x5b, 0x23, 0xe0, 0xcf, 0x78, 0x92, 0x01, 0xac, 0x75, 0xfe, 0x07, 0x6d, 0x31, 0x5f, 0xcb, 0xac, 0x20, 0xba, 0x0d, 0x31, 0xe4, 0xdc, 0x61, 0x69, 0x27, 0xd6, 0xea, 0xb1, 0xb1, 0xc8, 0x7a, 0x1c, 0x9c, 0x77, 0x8e, 0x4b, 0xd2, 0x85, 0x29, 0x58, 0x74, };
17755 static const u8 ed25519_772_test_vectors_expected_sig[] = {
17756 	0x9a, 0xb4, 0x29, 0x9b, 0x17, 0x72, 0x93, 0x44, 0x75, 0x0b, 0x69, 0xdc, 0x60, 0x37, 0x36, 0x8c, 0x98, 0xf4, 0x7b, 0xe6, 0x27, 0xfb, 0xd9, 0xad, 0xfd, 0x8d, 0xb3, 0x9f, 0x99, 0x64, 0xdd, 0xb7, 0xbc, 0x92, 0xd6, 0x74, 0xc7, 0xbe, 0x74, 0x07, 0x56, 0x39, 0x6b, 0xaa, 0xee, 0xac, 0xbf, 0x74, 0x94, 0x7b, 0x61, 0x91, 0xc6, 0xed, 0x1f, 0x5d, 0x32, 0xa6, 0x3d, 0xf3, 0x6d, 0x54, 0x26, 0x01, };
17757 static const ec_test_case ed25519_772_test_case = {
17758 	.name = "EDDSA25519-SHA512/wei25519 772",
17759 	.ec_str_p = &wei25519_str_params,
17760 	.priv_key = ed25519_772_test_vectors_priv_key,
17761 	.priv_key_len = sizeof(ed25519_772_test_vectors_priv_key),
17762 	.nn_random = NULL,
17763 	.hash_type = SHA512,
17764 	.msg = (const char *)ed25519_772_test_vectors_message,
17765 	.msglen = sizeof(ed25519_772_test_vectors_message),
17766 	.sig_type = EDDSA25519,
17767 	.exp_sig = ed25519_772_test_vectors_expected_sig,
17768 	.exp_siglen = sizeof(ed25519_772_test_vectors_expected_sig),
17769 	.adata = NULL,
17770 	.adata_len = 0
17771 };
17772 
17773 /************************************************/
17774 static const u8 ed25519_773_test_vectors_priv_key[] = {
17775 	0xff, 0x15, 0xd6, 0xe7, 0x4e, 0x28, 0xe4, 0x1d, 0x05, 0xa8, 0x66, 0x3a, 0x70, 0x2f, 0x03, 0x8d, 0x5b, 0x85, 0x78, 0xc4, 0x27, 0x5e, 0x77, 0x2b, 0x73, 0xba, 0x44, 0x0b, 0xc5, 0xf5, 0x5a, 0x06, };
17776 static const u8 ed25519_773_test_vectors_message[] = {
17777 	0xce, 0x7b, 0xf9, 0x72, 0x84, 0x4f, 0x51, 0x84, 0xae, 0x8e, 0xac, 0x87, 0xb1, 0x2b, 0xe9, 0x20, 0x2c, 0x72, 0x39, 0x96, 0x1d, 0xc2, 0x3c, 0xd4, 0x1f, 0xf5, 0x5b, 0x9b, 0xfa, 0xac, 0x0c, 0xc0, 0x6f, 0x3f, 0x1d, 0xec, 0xfa, 0x95, 0x71, 0x09, 0x5c, 0x8e, 0x82, 0xb4, 0xeb, 0x6f, 0x8a, 0x1c, 0x52, 0xc8, 0xd3, 0xde, 0xaa, 0x61, 0xa9, 0xaa, 0x94, 0xe2, 0xec, 0xd9, 0xab, 0x5b, 0x80, 0x63, 0xf2, 0xda, 0x6d, 0x80, 0x15, 0xdf, 0x0a, 0x51, 0x44, 0xfa, 0x3a, 0x48, 0xe3, 0x05, 0xad, 0x9f, 0x41, 0xea, 0xa1, 0x1c, 0x4d, 0x74, 0x85, 0x43, 0x74, 0xec, 0xbf, 0x38, 0x2e, 0x30, 0x02, 0x57, 0x9a, 0x9a, 0x24, 0x9e, 0xfa, 0x1e, 0x1c, 0xa0, 0x4d, 0x33, 0x84, 0x47, 0xd7, 0xf2, 0x20, 0x67, 0x03, 0xe6, 0xca, 0xbf, 0x5b, 0xbd, 0x33, 0x2b, 0x42, 0x57, 0x3b, 0xcb, 0xd3, 0xb6, 0xf7, 0x1b, 0x7c, 0x3b, 0xf7, 0x3d, 0x4c, 0x77, 0x4a, 0xa0, 0x1e, 0x86, 0x68, 0x41, 0x43, 0x28, 0x29, 0xd0, 0x7f, 0x96, 0xe1, 0xf6, 0x1a, 0x20, 0x21, 0x6d, 0x96, 0x8c, 0x90, 0xe3, 0xed, 0x11, 0xf6, 0x63, 0xf7, 0xd6, 0x27, 0x16, 0x22, 0xfe, 0xfc, 0xf3, 0xab, 0x68, 0xf3, 0x44, 0x32, 0x85, 0x15, 0xd5, 0xcc, 0xe2, 0xce, 0x85, 0xe8, 0xbf, 0x3d, 0x1d, 0x09, 0x04, 0x36, 0x92, 0xe1, 0xfb, 0x8b, 0xbd, 0xdc, 0x07, 0xa4, 0xab, 0x0a, 0x3e, 0xef, 0x8c, 0xa6, 0xa4, 0x20, 0xe7, 0x4b, 0xff, 0x8d, 0x3d, 0x71, 0x55, 0x96, 0xaa, 0x82, 0x16, 0x82, 0x95, 0x4f, 0xe8, 0x96, 0x29, 0xae, 0x27, 0xc1, 0xbb, 0x03, 0xb6, 0xaa, 0x09, 0xf3, 0x6a, 0x39, 0xa3, 0xe3, 0x7b, 0xa9, 0x81, 0x32, 0xf4, 0xe2, 0x38, 0x88, 0xf9, 0xf3, 0x35, 0xe7, 0xbe, 0xaa, 0x2c, 0xb2, 0x72, 0x7a, 0xcc, 0x3d, 0x27, 0x77, 0x30, 0x9b, 0x85, 0x29, 0x52, 0x32, 0xe5, 0x4d, 0xa8, 0x8e, 0xbb, 0x6f, 0x10, 0x53, 0xd6, 0xde, 0x79, 0xac, 0x66, 0x09, 0x85, 0x2e, 0xb9, 0x3a, 0x0a, 0x35, 0xbc, 0x1a, 0x7b, 0xdc, 0x22, 0xd6, 0x28, 0xbc, 0x86, 0x12, 0x4d, 0x69, 0x6c, 0x3f, 0x98, 0x28, 0xb6, 0xf8, 0xb9, 0xaa, 0xde, 0x1a, 0x65, 0x21, 0x61, 0x77, 0x48, 0x6c, 0x25, 0x2a, 0x4b, 0x42, 0xd9, 0x0a, 0x4e, 0x0f, 0xea, 0x20, 0x93, 0x48, 0x9e, 0x24, 0x4d, 0x80, 0x8e, 0xf7, 0x02, 0x1a, 0x97, 0xd5, 0x60, 0x8c, 0x0a, 0xe1, 0xd6, 0x63, 0xc7, 0x75, 0xe8, 0xbb, 0x9e, 0x9a, 0x73, 0x15, 0xf1, 0xfe, 0xb6, 0xd1, 0x29, 0xb5, 0xa5, 0x41, 0xea, 0x59, 0x29, 0xa2, 0xc6, 0x33, 0xb6, 0xd8, 0xc3, 0xc4, 0x54, 0x41, 0x71, 0x79, 0x46, 0xcf, 0x87, 0x3e, 0x9b, 0x4c, 0x51, 0x21, 0x80, 0x13, 0x5d, 0x54, 0xf0, 0x53, 0xab, 0xe4, 0x4c, 0x6d, 0xf3, 0x9b, 0x7b, 0x06, 0x2e, 0xf7, 0x24, 0x01, 0x62, 0xcb, 0xd0, 0xb8, 0x51, 0xaf, 0xe5, 0xf9, 0x15, 0x36, 0xa9, 0x49, 0x94, 0x18, 0xe8, 0xbf, 0xf4, 0x99, 0x64, 0x73, 0xd8, 0x05, 0xeb, 0xc1, 0xae, 0x48, 0xda, 0x2d, 0x0b, 0x12, 0x9e, 0x8e, 0x82, 0x52, 0xf1, 0xd5, 0x3c, 0x32, 0x8f, 0x32, 0xdb, 0x25, 0x2d, 0xe3, 0xbe, 0xfb, 0xe5, 0xf3, 0x12, 0x80, 0x12, 0x11, 0x43, 0xa8, 0x00, 0x4a, 0x4c, 0xae, 0x63, 0x1c, 0x82, 0x74, 0x09, 0xe5, 0x20, 0xe3, 0x94, 0xcd, 0x0f, 0x89, 0x50, 0xcd, 0x4c, 0x3c, 0xf3, 0xf3, 0xdb, 0xd4, 0x95, 0x2a, 0x4d, 0xfe, 0x69, 0x87, 0x5f, 0x56, 0x53, 0x89, 0x06, 0x1a, 0xd0, 0xa0, 0xce, 0xe6, 0xb6, 0xaf, 0xf0, 0x9c, 0xec, 0xa2, 0x6d, 0x99, 0x0e, 0x89, 0x6a, 0x2a, 0xba, 0x9f, 0x3b, 0x26, 0x01, 0x5b, 0x63, 0x42, 0x37, 0x68, 0x68, 0x4c, 0x03, 0xed, 0x0d, 0xe6, 0xce, 0xe7, 0xac, 0x5b, 0xbd, 0xf9, 0xf4, 0x85, 0xc2, 0x27, 0x5c, 0xd1, 0x2a, 0xef, 0xa8, 0xf9, 0x07, 0xb8, 0x51, 0xa0, 0x2d, 0x51, 0xc3, 0x4f, 0x12, 0x1b, 0x77, 0xf3, 0xa5, 0x6a, 0x9e, 0xbd, 0x1d, 0x65, 0xff, 0xe8, 0x9b, 0xee, 0x38, 0x1f, 0xf2, 0xa7, 0x48, 0x0e, 0x89, 0x68, 0xcf, 0xf2, 0x5a, 0xc8, 0xd0, 0x4e, 0x14, 0x9a, 0x9d, 0x50, 0x27, 0xd1, 0x4b, 0x88, 0xf8, 0xae, 0x26, 0x04, 0xd2, 0xac, 0x22, 0xac, 0x67, 0xd1, 0x3e, 0x90, 0xad, 0xa6, 0x20, 0xc2, 0x04, 0x6d, 0x28, 0x29, 0x93, 0x84, 0xd0, 0x95, 0x9f, 0xb7, 0x6e, 0x22, 0x58, 0x87, 0x96, 0xce, 0x42, 0x7a, 0xae, 0xaf, 0x4e, 0x2a, 0x8a, 0xae, 0xc3, 0xe8, 0x7f, 0x84, 0xcc, 0xd0, 0x82, 0x52, 0x4c, 0x96, 0xd7, 0x66, 0xee, 0xc6, 0x6f, 0x0b, 0xec, 0x3e, 0x79, 0x95, 0x58, 0x14, 0x5f, 0x09, 0xd3, 0x30, 0x13, 0x4f, 0x1c, 0x63, 0xf3, 0x70, 0x53, 0xcd, 0x4b, 0xdc, 0x1c, 0x37, 0xfd, 0xe9, 0x72, 0x91, 0x85, 0x75, 0x51, 0xf5, 0x0a, 0xc8, 0xe1, 0x5f, 0x06, 0xac, 0x1c, 0x73, 0xda, 0xa1, 0xe8, 0xc5, 0xbc, 0x92, 0x77, 0xe3, 0xd6, 0x9c, 0xb4, 0x4a, 0x32, 0x37, 0xec, 0x57, 0xdb, 0xbc, 0xcf, 0xdf, 0x66, 0x85, 0xad, 0xa2, 0x0b, 0x74, 0xa1, 0xbc, 0x6b, 0x74, 0xab, 0x05, 0x69, 0x0e, 0xaf, 0x9b, 0xd0, 0xc4, 0xbe, 0x17, 0x04, 0x2f, 0x5c, 0xd3, 0x20, 0xcd, 0xd6, 0x13, 0xdc, 0x08, 0xd2, 0x9a, 0xf3, 0x46, 0xaa, 0x41, 0x91, 0xce, 0x0b, 0x4f, 0x85, 0xbb, 0x2a, 0xd7, 0xf3, 0xba, 0xc7, 0x38, 0xa9, 0x37, 0x7e, 0xc6, 0xb8, 0x40, 0x62, 0xcc, 0x70, 0xfc, 0xa9, 0xec, 0xfb, 0xe1, 0xf5, 0x7f, 0xe5, 0xb2, 0xce, 0x7a, 0x4f, 0x73, 0x9c, 0x81, 0xca, 0xbc, 0xde, 0x04, 0x64, 0x51, 0xdd, 0x61, 0xce, 0x1d, 0xbc, };
17778 static const u8 ed25519_773_test_vectors_expected_sig[] = {
17779 	0x42, 0xc1, 0x29, 0x5f, 0xaf, 0xe2, 0x6d, 0xe3, 0xea, 0x34, 0x92, 0x6b, 0xf1, 0xef, 0x80, 0xbc, 0xaf, 0xe4, 0x7b, 0x21, 0xb9, 0x0e, 0xae, 0xd1, 0x96, 0x35, 0xed, 0x75, 0x38, 0xd7, 0x67, 0xcb, 0xf3, 0xa1, 0xe5, 0xde, 0xda, 0xab, 0x82, 0xad, 0xf7, 0x51, 0x20, 0x37, 0x3e, 0x92, 0x32, 0x02, 0xf7, 0xfd, 0xa0, 0x82, 0x67, 0x84, 0x29, 0x2e, 0xba, 0x8b, 0x23, 0x8b, 0x6c, 0xb8, 0x83, 0x04, };
17780 static const ec_test_case ed25519_773_test_case = {
17781 	.name = "EDDSA25519-SHA512/wei25519 773",
17782 	.ec_str_p = &wei25519_str_params,
17783 	.priv_key = ed25519_773_test_vectors_priv_key,
17784 	.priv_key_len = sizeof(ed25519_773_test_vectors_priv_key),
17785 	.nn_random = NULL,
17786 	.hash_type = SHA512,
17787 	.msg = (const char *)ed25519_773_test_vectors_message,
17788 	.msglen = sizeof(ed25519_773_test_vectors_message),
17789 	.sig_type = EDDSA25519,
17790 	.exp_sig = ed25519_773_test_vectors_expected_sig,
17791 	.exp_siglen = sizeof(ed25519_773_test_vectors_expected_sig),
17792 	.adata = NULL,
17793 	.adata_len = 0
17794 };
17795 
17796 /************************************************/
17797 static const u8 ed25519_774_test_vectors_priv_key[] = {
17798 	0x1e, 0xd3, 0x7b, 0x61, 0x0b, 0x8b, 0x35, 0x41, 0x7d, 0x04, 0xe5, 0x9a, 0xaa, 0xda, 0xc6, 0x88, 0xff, 0x81, 0xf1, 0xe5, 0x07, 0xc8, 0x9b, 0x4f, 0x40, 0x01, 0x60, 0x94, 0x19, 0x08, 0xcb, 0x8c, };
17799 static const u8 ed25519_774_test_vectors_message[] = {
17800 	0x1e, 0x67, 0x67, 0xdf, 0x97, 0xdb, 0x1c, 0xfb, 0x40, 0x88, 0xda, 0x7b, 0x20, 0x0d, 0x9f, 0x59, 0xec, 0x8d, 0xd4, 0x53, 0x3b, 0x83, 0xbe, 0x30, 0x9f, 0x37, 0x65, 0x00, 0x31, 0x06, 0x57, 0x27, 0xcd, 0x52, 0x02, 0xce, 0xf4, 0x84, 0x26, 0xa5, 0xf3, 0xa1, 0x1d, 0x50, 0xb3, 0x81, 0xf8, 0xbc, 0x22, 0xff, 0x10, 0x18, 0x27, 0x35, 0x9f, 0x2d, 0x0a, 0x61, 0x0a, 0x4f, 0x75, 0x54, 0x64, 0xa0, 0xc8, 0x91, 0xcb, 0xd9, 0x8d, 0x2d, 0xcb, 0x41, 0xd9, 0x77, 0x9d, 0x28, 0x8f, 0xcf, 0x1f, 0xea, 0x62, 0xe5, 0x21, 0x63, 0xae, 0x67, 0xe9, 0x04, 0x28, 0xb8, 0x63, 0x98, 0xef, 0xa2, 0x18, 0xf1, 0xb9, 0x82, 0x08, 0x1f, 0xc5, 0x13, 0x30, 0x5f, 0xd3, 0xe8, 0xec, 0xe7, 0xf9, 0xac, 0xb0, 0xe1, 0x0e, 0x00, 0x1d, 0x2e, 0xd2, 0x99, 0xa4, 0x8a, 0x80, 0x87, 0x0b, 0x3d, 0x5d, 0x8a, 0xb9, 0x00, 0x63, 0x09, 0xb3, 0x15, 0x91, 0xca, 0xf0, 0x58, 0x33, 0x80, 0x07, 0x3a, 0x2d, 0xb6, 0x1f, 0x45, 0x25, 0x4a, 0xb9, 0x65, 0xb5, 0xe4, 0x67, 0x2c, 0x4b, 0xfa, 0xa8, 0x6e, 0x33, 0x6c, 0x49, 0x27, 0x85, 0x52, 0x72, 0x9f, 0xb2, 0xda, 0x76, 0xff, 0xe5, 0x02, 0xec, 0x61, 0xe1, 0x69, 0x6c, 0x7f, 0xc9, 0xef, 0x19, 0xf7, 0xcc, 0x2a, 0x27, 0x75, 0xb2, 0x97, 0x00, 0xcb, 0x38, 0x42, 0x94, 0x06, 0x3a, 0x17, 0xfe, 0xd4, 0xfc, 0x63, 0x5b, 0xc1, 0x32, 0x82, 0xa9, 0x0d, 0xad, 0x0c, 0x00, 0xaa, 0xdb, 0xcd, 0x56, 0x9f, 0x15, 0x6a, 0x85, 0x4f, 0x8b, 0xa9, 0xe7, 0xd6, 0x07, 0xd2, 0x0f, 0x2e, 0x9e, 0x53, 0x37, 0x98, 0x11, 0x61, 0xd8, 0x04, 0x64, 0x46, 0x68, 0xd0, 0x64, 0xfa, 0x63, 0xdc, 0xeb, 0x9f, 0x58, 0x01, 0x35, 0x3d, 0x0a, 0xb9, 0xf4, 0x1d, 0x1d, 0x8b, 0xdc, 0x76, 0xc1, 0x3a, 0xb2, 0xf0, 0x23, 0xea, 0x01, 0xad, 0xbc, 0x4c, 0x81, 0x68, 0xd9, 0x39, 0xe9, 0x8f, 0x64, 0xfd, 0x89, 0x19, 0x38, 0x4a, 0xbe, 0x76, 0x70, 0x92, 0x63, 0xc0, 0xcd, 0x7c, 0x3e, 0xfa, 0xdc, 0x28, 0x01, 0xcc, 0x4a, 0xbd, 0x80, 0xa0, 0x9b, 0xb3, 0xed, 0x6b, 0xb7, 0x8c, 0xd6, 0x20, 0x96, 0x9c, 0xd3, 0x5c, 0x6a, 0x3a, 0x5d, 0x01, 0x48, 0x5e, 0xad, 0x4c, 0x45, 0xeb, 0xb6, 0xac, 0x6a, 0x83, 0x21, 0x2a, 0x7c, 0x76, 0x67, 0x54, 0x27, 0xb2, 0x1d, 0xa8, 0xa7, 0xa5, 0x04, 0x7b, 0x30, 0xa6, 0x10, 0x0c, 0xda, 0x02, 0x47, 0x6c, 0x18, 0x6e, 0x6c, 0xe4, 0x0d, 0x27, 0x68, 0xa9, 0x42, 0xc9, 0xf8, 0x73, 0x05, 0xe9, 0xd3, 0x63, 0xb5, 0x24, 0xc0, 0x09, 0x4a, 0x9e, 0x2e, 0x29, 0xf5, 0x85, 0x89, 0x4c, 0x0a, 0xdb, 0xfc, 0xd6, 0x06, 0x90, 0xfc, 0x7f, 0xb0, 0xa9, 0xc7, 0x17, 0xcf, 0x43, 0xb4, 0x84, 0xfd, 0x45, 0x15, 0x1b, 0x13, 0x04, 0x16, 0x9c, 0x26, 0x92, 0x1d, 0xb2, 0x27, 0x6e, 0xc0, 0x5a, 0xd2, 0x2a, 0xd1, 0x66, 0x85, 0x4f, 0xd2, 0xf9, 0x40, 0x85, 0x77, 0x8c, 0x47, 0x0d, 0xc4, 0x52, 0xe5, 0xcf, 0xa4, 0xae, 0xe0, 0x4f, 0xac, 0xb7, 0x70, 0x52, 0x6e, 0x1f, 0x24, 0x8d, 0x3d, 0x15, 0xc2, 0x72, 0x80, 0xfd, 0xfa, 0x1f, 0xd2, 0xc1, 0x04, 0x4b, 0xcb, 0xc8, 0x81, 0xc3, 0xd9, 0x98, 0x15, 0xc9, 0x7f, 0xbe, 0xa4, 0x61, 0x10, 0xbe, 0x02, 0xda, 0xb7, 0x74, 0xf3, 0xa6, 0x10, 0xe5, 0x80, 0x2a, 0xbf, 0x36, 0xa4, 0x98, 0x75, 0xc6, 0x82, 0x63, 0x8e, 0x0a, 0xe4, 0xcc, 0x82, 0x77, 0xc5, 0xe9, 0xaa, 0x73, 0x07, 0x44, 0x5e, 0x6b, 0xbc, 0xbe, 0x54, 0x9e, 0xec, 0x2a, 0x45, 0xb1, 0x59, 0x7f, 0x74, 0x47, 0x10, 0x7b, 0x62, 0xe2, 0xce, 0xe0, 0xa5, 0xfc, 0x51, 0xbe, 0xae, 0x3e, 0x1f, 0xe9, 0xbe, 0xfb, 0x18, 0x85, 0xd9, 0xb3, 0x0f, 0x9b, 0x4f, 0x1f, 0x56, 0x20, 0x6d, 0xee, 0x0d, 0x67, 0x77, 0x9c, 0x57, 0xf4, 0x84, 0xc8, 0xc3, 0xc8, 0x99, 0xa5, 0x15, 0xa9, 0xd1, 0xc1, 0x0f, 0x60, 0x59, 0x84, 0x0c, 0x1c, 0x73, 0xd3, 0xf0, 0x5b, 0xcb, 0x88, 0x59, 0x0c, 0x52, 0xf7, 0xda, 0x39, 0x18, 0x38, 0xdc, 0x2e, 0x73, 0x22, 0x8f, 0x09, 0x81, 0xc2, 0x89, 0xa4, 0xc2, 0x7f, 0x0c, 0x75, 0x7f, 0xaf, 0x7b, 0x3b, 0x89, 0x14, 0x6e, 0x33, 0xda, 0xfa, 0x49, 0x0d, 0x9e, 0x0f, 0x92, 0x75, 0xb0, 0xcf, 0xa6, 0xa7, 0x71, 0x0a, 0x73, 0x83, 0x14, 0x59, 0x59, 0x5b, 0xf7, 0x32, 0x11, 0x2b, 0x62, 0xfc, 0x86, 0x4c, 0xa4, 0xc8, 0x29, 0x78, 0x4a, 0x3f, 0x16, 0xee, 0xc4, 0xe1, 0x8f, 0x93, 0x69, 0x18, 0xa7, 0xb9, 0x89, 0x16, 0x69, 0xe9, 0x33, 0x22, 0x3f, 0x74, 0x5f, 0xda, 0x56, 0x2b, 0xc0, 0xa4, 0xe6, 0x1e, 0x3d, 0x14, 0xea, 0x45, 0xdf, 0xc3, 0x27, 0xe2, 0xfc, 0x0c, 0xdf, 0xe6, 0xf2, 0xf9, 0x75, 0x46, 0xc9, 0x0f, 0xce, 0x82, 0xf5, 0x22, 0x29, 0x14, 0x80, 0x11, 0x1a, 0x1e, 0x6b, 0x93, 0x88, 0x27, 0x2c, 0x0b, 0xe2, 0x8d, 0x20, 0xed, 0x84, 0xbb, 0x84, 0xd4, 0x9b, 0xc1, 0x99, 0xcd, 0x59, 0x99, 0x48, 0xb8, 0xf2, 0x03, 0x9d, 0x07, 0x82, 0x7a, 0x3f, 0x40, 0x75, 0xd3, 0xa6, 0x7e, 0xe5, 0x72, 0xa0, 0x13, 0x79, 0xa3, 0x62, 0x13, 0xfe, 0x11, 0x6e, 0x76, 0x8b, 0x41, 0x14, 0xe8, 0xa4, 0xb3, 0x13, 0x4c, 0x38, 0x18, 0x96, 0x07, 0x72, 0xd7, 0x27, 0xb0, 0xca, 0x6f, 0x7c, 0x99, 0x7c, 0xa9, 0x98, 0x43, 0xb7, 0xeb, 0x02, 0xff, 0xc0, 0x13, 0x97, 0x1c, 0xbe, 0x0e, 0x6e, 0x60, 0xd4, 0x97, 0x73, 0xf1, 0xe8, 0xc0, 0xb3, 0x06, 0x06, 0x13, 0x1c, 0xb1, 0x0c, 0x3e, 0x04, };
17801 static const u8 ed25519_774_test_vectors_expected_sig[] = {
17802 	0x86, 0x08, 0x81, 0x5e, 0x10, 0x59, 0x0d, 0x55, 0x04, 0x87, 0x4d, 0x89, 0x99, 0xfd, 0x6f, 0x09, 0x62, 0x6f, 0x95, 0x0b, 0xe2, 0x0c, 0x91, 0x2c, 0x27, 0xc9, 0xde, 0x6e, 0x79, 0xb0, 0xfa, 0xf7, 0x77, 0xa5, 0x33, 0xbd, 0x5b, 0xb6, 0x67, 0xab, 0x51, 0x3a, 0x49, 0x45, 0x8e, 0xcd, 0x67, 0x87, 0xa0, 0x9e, 0xc0, 0xdf, 0x6c, 0x9c, 0x9d, 0x63, 0x33, 0xc5, 0xe3, 0xae, 0x61, 0xea, 0x37, 0x0a, };
17803 static const ec_test_case ed25519_774_test_case = {
17804 	.name = "EDDSA25519-SHA512/wei25519 774",
17805 	.ec_str_p = &wei25519_str_params,
17806 	.priv_key = ed25519_774_test_vectors_priv_key,
17807 	.priv_key_len = sizeof(ed25519_774_test_vectors_priv_key),
17808 	.nn_random = NULL,
17809 	.hash_type = SHA512,
17810 	.msg = (const char *)ed25519_774_test_vectors_message,
17811 	.msglen = sizeof(ed25519_774_test_vectors_message),
17812 	.sig_type = EDDSA25519,
17813 	.exp_sig = ed25519_774_test_vectors_expected_sig,
17814 	.exp_siglen = sizeof(ed25519_774_test_vectors_expected_sig),
17815 	.adata = NULL,
17816 	.adata_len = 0
17817 };
17818 
17819 /************************************************/
17820 static const u8 ed25519_775_test_vectors_priv_key[] = {
17821 	0x84, 0x36, 0x44, 0x78, 0xec, 0x94, 0xbd, 0x25, 0xc4, 0xbd, 0xb8, 0x2d, 0x29, 0x62, 0x29, 0xe6, 0xda, 0xce, 0x2b, 0x13, 0x59, 0xd6, 0xd2, 0x1b, 0xe2, 0xb3, 0xaf, 0xcd, 0x7b, 0xda, 0x19, 0xc7, };
17822 static const u8 ed25519_775_test_vectors_message[] = {
17823 	0x7b, 0xb7, 0x29, 0x3d, 0xe5, 0x5f, 0x05, 0x8f, 0xb2, 0xec, 0x22, 0xb6, 0x87, 0x26, 0x05, 0x43, 0xdc, 0xaa, 0x90, 0xf1, 0x40, 0xb9, 0xf4, 0x5e, 0xdd, 0xd4, 0xbc, 0x22, 0xe4, 0x09, 0x77, 0xe0, 0x0e, 0xd3, 0x3c, 0xd1, 0xef, 0x1b, 0xba, 0x13, 0xc1, 0xd0, 0x99, 0x08, 0x59, 0x00, 0x55, 0x69, 0xa8, 0x07, 0x67, 0xe4, 0x86, 0x4a, 0x2c, 0xd2, 0x88, 0xc8, 0x13, 0x93, 0xe0, 0x4a, 0xd9, 0x71, 0x78, 0x2e, 0x2b, 0xc4, 0x93, 0x10, 0x8c, 0xbe, 0x80, 0xda, 0xcf, 0x0b, 0x7b, 0x9c, 0xd5, 0x34, 0x98, 0x84, 0x07, 0xa4, 0xf9, 0x32, 0x7e, 0xc8, 0xe9, 0xc4, 0x04, 0x32, 0x84, 0xef, 0x6e, 0xe5, 0xa2, 0x6a, 0x5b, 0x41, 0x77, 0x65, 0xd3, 0xea, 0xbb, 0x48, 0xa0, 0x07, 0xe7, 0xc7, 0xf3, 0x29, 0x87, 0xd7, 0x0a, 0x13, 0x9a, 0xc4, 0x16, 0x78, 0xcd, 0xf7, 0xa5, 0x5c, 0xb8, 0x0c, 0xf9, 0xdb, 0x5e, 0xaa, 0x45, 0xf3, 0xde, 0x0f, 0xbf, 0xba, 0xdf, 0xfc, 0x40, 0x99, 0x63, 0x70, 0xe4, 0x8b, 0x1f, 0xf5, 0xed, 0xd9, 0x79, 0x40, 0xe7, 0x50, 0x79, 0x21, 0x64, 0x83, 0x6a, 0x4a, 0x5a, 0xc2, 0xe3, 0xff, 0x53, 0xe4, 0x8a, 0x1e, 0x55, 0x6d, 0xb9, 0xad, 0x0c, 0x5c, 0x0b, 0x94, 0x4f, 0x4a, 0xee, 0x51, 0x9a, 0x2b, 0x0a, 0x88, 0xbb, 0x1c, 0x1f, 0xc7, 0x45, 0x45, 0x24, 0xcd, 0x57, 0xaa, 0x53, 0x50, 0x98, 0x62, 0x43, 0xd3, 0x4f, 0xc5, 0x8e, 0x24, 0xe8, 0x19, 0xec, 0x0b, 0x85, 0x45, 0xd8, 0xdf, 0xcf, 0x6b, 0x20, 0x31, 0x14, 0x41, 0xd3, 0xa3, 0x5d, 0x3e, 0x71, 0xb3, 0xe3, 0xec, 0xd7, 0x88, 0x4d, 0xda, 0x84, 0x33, 0xa4, 0x05, 0xe3, 0xd9, 0x96, 0x90, 0x00, 0xc8, 0x20, 0xa8, 0x9b, 0x95, 0xd1, 0x97, 0x84, 0x1d, 0x98, 0xae, 0x73, 0x4a, 0x2e, 0x81, 0xda, 0xf6, 0xa7, 0xdc, 0xf5, 0x6c, 0xb2, 0xfc, 0x26, 0xf2, 0x16, 0x5a, 0x5f, 0x42, 0xb8, 0x6c, 0x7e, 0x9e, 0x5b, 0x11, 0x16, 0x17, 0x00, 0xa1, 0xab, 0x98, 0x31, 0xf3, 0xfa, 0xe5, 0x8e, 0x14, 0x20, 0x8b, 0xe1, 0xbf, 0x33, 0xb5, 0x8e, 0xcc, 0xe8, 0x1b, 0x0c, 0x6b, 0x7e, 0x02, 0xf8, 0x8a, 0xdf, 0x9a, 0xb0, 0x30, 0x26, 0x3e, 0x2c, 0xc9, 0xb6, 0xe3, 0x3e, 0xbc, 0xa3, 0xf4, 0x95, 0x49, 0x2e, 0x32, 0xbf, 0xe3, 0x72, 0x53, 0x7d, 0xe6, 0xc6, 0xb8, 0x76, 0x44, 0x82, 0x8f, 0x74, 0x94, 0x2a, 0x02, 0xb0, 0x07, 0xf1, 0x4c, 0x3f, 0xc5, 0xdb, 0xde, 0x76, 0x33, 0x3d, 0x36, 0xd0, 0x76, 0x31, 0xb7, 0xa9, 0x92, 0x4f, 0x71, 0x75, 0x50, 0x04, 0x06, 0x97, 0x92, 0x3f, 0xa7, 0xb9, 0x54, 0x6b, 0xfb, 0x02, 0x17, 0x02, 0x4e, 0xa3, 0xf2, 0x52, 0xb5, 0x15, 0xb5, 0xd6, 0x4a, 0x62, 0xc4, 0x8e, 0x02, 0x7c, 0xef, 0x67, 0x50, 0xbe, 0xda, 0x49, 0xa0, 0x24, 0x47, 0x03, 0x9b, 0x25, 0x0a, 0x0b, 0xda, 0x07, 0xdc, 0x06, 0x24, 0x91, 0xa6, 0x62, 0xe2, 0x68, 0x74, 0xc8, 0xd0, 0x0f, 0x80, 0xe6, 0xcf, 0xc8, 0xb3, 0x0f, 0x2c, 0x3b, 0xf7, 0x72, 0x0b, 0x57, 0xf2, 0x61, 0x5f, 0xc4, 0x78, 0xfe, 0xfa, 0xa6, 0xd3, 0x17, 0x05, 0xb4, 0x3c, 0x5a, 0x54, 0xf7, 0x58, 0x66, 0x6b, 0x30, 0x2a, 0x8d, 0x34, 0x95, 0x31, 0x31, 0x94, 0x1b, 0x79, 0x57, 0x73, 0x04, 0x76, 0x79, 0x4d, 0x0b, 0xd9, 0xd2, 0xdf, 0xa7, 0x2f, 0xd2, 0x03, 0xf2, 0x2d, 0xf5, 0xec, 0x6b, 0xba, 0xac, 0xe8, 0xb9, 0x39, 0x4b, 0xeb, 0xda, 0xea, 0xa5, 0x61, 0x46, 0x10, 0x11, 0xb4, 0xfc, 0xa6, 0x18, 0x5c, 0x9a, 0x38, 0x28, 0x3f, 0x54, 0x03, 0xfd, 0xac, 0x32, 0x6d, 0x1f, 0x73, 0x4c, 0x6a, 0x5d, 0xed, 0x67, 0x24, 0xd9, 0xf3, 0x84, 0xae, 0xbd, 0x6c, 0xab, 0xfc, 0xbe, 0xc1, 0x2a, 0xba, 0xb9, 0x82, 0x0d, 0x08, 0x07, 0x32, 0x51, 0x5e, 0x05, 0x00, 0xcf, 0x5d, 0x3e, 0x2f, 0x9e, 0xf8, 0x0a, 0x4d, 0x76, 0x46, 0xa7, 0xda, 0x9e, 0xff, 0x41, 0x0f, 0x50, 0x7c, 0x69, 0x87, 0x3b, 0x32, 0xd5, 0x40, 0xec, 0x32, 0xb2, 0x83, 0xef, 0x31, 0x79, 0xa4, 0xc6, 0x32, 0xb3, 0x66, 0x57, 0x6d, 0xff, 0x05, 0x8f, 0xaf, 0x8c, 0x8c, 0x70, 0xbc, 0x69, 0xbe, 0x80, 0x89, 0x82, 0xec, 0x14, 0x97, 0xae, 0x89, 0x11, 0xb0, 0x01, 0x65, 0xa6, 0x66, 0x95, 0xf4, 0xd3, 0xb9, 0x87, 0xe7, 0x39, 0x0b, 0x5c, 0xf8, 0x78, 0xe3, 0x5e, 0x67, 0x65, 0x41, 0x28, 0x5e, 0x4e, 0x13, 0xdf, 0xae, 0xb2, 0xf3, 0x68, 0xcb, 0x51, 0x1b, 0x77, 0x8b, 0x10, 0x6a, 0x42, 0x87, 0x78, 0xa1, 0xb8, 0xf2, 0xa7, 0xd2, 0xe0, 0x93, 0x51, 0x9b, 0xc9, 0xb5, 0x18, 0x8e, 0x38, 0xc6, 0x79, 0x3e, 0x96, 0xbd, 0x0d, 0x30, 0xe2, 0xa3, 0xdb, 0x9e, 0xe1, 0x46, 0x8c, 0x3d, 0xc8, 0x7c, 0xc3, 0x65, 0xc8, 0x10, 0xf9, 0xdb, 0xdf, 0x01, 0xa4, 0xb5, 0x14, 0x21, 0xf6, 0xfc, 0x8d, 0xfd, 0xa3, 0xa1, 0x6e, 0x2d, 0xa7, 0xca, 0x71, 0x59, 0xb6, 0x86, 0xa5, 0xe1, 0x67, 0x33, 0x89, 0x37, 0x88, 0x2f, 0xf7, 0x15, 0xd3, 0xe7, 0x50, 0xd9, 0x58, 0xfc, 0x9e, 0x4b, 0x1f, 0x05, 0x53, 0x12, 0x92, 0x99, 0xaa, 0x84, 0x30, 0x18, 0x3e, 0x50, 0x6c, 0xd7, 0xf2, 0xb2, 0x79, 0x07, 0x6e, 0x0e, 0x1c, 0xca, 0x97, 0x49, 0xcf, 0x12, 0x3c, 0xe5, 0x07, 0xfe, 0x07, 0xdd, 0xbb, 0xc4, 0xdc, 0xca, 0x6c, 0xdb, 0x9e, 0xf1, 0xb8, 0x33, 0xf6, 0x1d, 0x4b, 0xff, 0x00, 0xbe, 0xc0, 0x12, 0x15, 0x8f, 0x43, 0x2c, 0xeb, 0x75, 0xb4, 0xf2, 0xed, 0xb1, 0xbb, 0x84, 0xe5, 0xeb, 0xb9, 0x25, 0x9e, 0x09, 0xf9, 0x62, 0x5c, 0xe3, };
17824 static const u8 ed25519_775_test_vectors_expected_sig[] = {
17825 	0xb4, 0xc2, 0x32, 0x1a, 0xde, 0x3c, 0x19, 0xed, 0x4e, 0xd4, 0xc6, 0x39, 0xd5, 0xa4, 0xd6, 0xf2, 0xbe, 0x8e, 0x2f, 0xb1, 0x3b, 0xb7, 0xbd, 0x62, 0x5a, 0xd6, 0xdc, 0x87, 0xe2, 0xc2, 0x0f, 0x93, 0xad, 0x6b, 0xe7, 0xb7, 0xe4, 0x27, 0x11, 0xa8, 0x78, 0xdb, 0x9d, 0x76, 0x05, 0x4b, 0xfd, 0x7b, 0xc2, 0x5e, 0x37, 0x74, 0xa9, 0x3d, 0xa1, 0x54, 0x3c, 0x9b, 0x4f, 0x66, 0x33, 0xb0, 0xbe, 0x09, };
17826 static const ec_test_case ed25519_775_test_case = {
17827 	.name = "EDDSA25519-SHA512/wei25519 775",
17828 	.ec_str_p = &wei25519_str_params,
17829 	.priv_key = ed25519_775_test_vectors_priv_key,
17830 	.priv_key_len = sizeof(ed25519_775_test_vectors_priv_key),
17831 	.nn_random = NULL,
17832 	.hash_type = SHA512,
17833 	.msg = (const char *)ed25519_775_test_vectors_message,
17834 	.msglen = sizeof(ed25519_775_test_vectors_message),
17835 	.sig_type = EDDSA25519,
17836 	.exp_sig = ed25519_775_test_vectors_expected_sig,
17837 	.exp_siglen = sizeof(ed25519_775_test_vectors_expected_sig),
17838 	.adata = NULL,
17839 	.adata_len = 0
17840 };
17841 
17842 /************************************************/
17843 static const u8 ed25519_776_test_vectors_priv_key[] = {
17844 	0x00, 0xdb, 0x37, 0xad, 0x2a, 0x19, 0x5f, 0x08, 0xa0, 0x84, 0x40, 0xd0, 0x59, 0x25, 0x9e, 0x53, 0x9f, 0xeb, 0x40, 0xb4, 0x74, 0x92, 0x82, 0x55, 0xe7, 0xc9, 0x4e, 0xbc, 0x3b, 0x05, 0x03, 0x8c, };
17845 static const u8 ed25519_776_test_vectors_message[] = {
17846 	0x5a, 0x94, 0xf7, 0x29, 0xd3, 0x0d, 0xd8, 0xaa, 0xe2, 0xa5, 0xc8, 0xc2, 0x85, 0x47, 0xbf, 0x45, 0x06, 0x29, 0x5d, 0xc6, 0x1b, 0xfe, 0xad, 0x97, 0x27, 0x74, 0x60, 0x82, 0xd4, 0x3b, 0x0f, 0x81, 0x14, 0xc8, 0xc1, 0x8c, 0x5e, 0xda, 0xf2, 0xfe, 0xc7, 0xca, 0xe8, 0x19, 0x35, 0x63, 0x38, 0xf0, 0xbf, 0x11, 0x5a, 0x17, 0xb0, 0x38, 0xac, 0xfd, 0x7c, 0x96, 0xba, 0x62, 0x62, 0xca, 0xbd, 0x57, 0x10, 0xfc, 0x0e, 0xfb, 0x43, 0xd1, 0x3d, 0xf4, 0x06, 0x5b, 0xec, 0xbf, 0x1b, 0x9e, 0x27, 0x9c, 0x03, 0xec, 0x9b, 0xbf, 0xed, 0x54, 0xd9, 0xa1, 0x3f, 0xe0, 0x6a, 0x55, 0xa3, 0xbd, 0x05, 0xc8, 0x07, 0x85, 0x8b, 0x41, 0xe1, 0x8d, 0xbd, 0xe1, 0x3b, 0x09, 0x07, 0xd4, 0x03, 0x41, 0x32, 0x26, 0x2d, 0x9c, 0x2f, 0x4d, 0x2d, 0x37, 0x6e, 0x16, 0x09, 0xad, 0x28, 0x0d, 0xe2, 0x0b, 0xa7, 0x09, 0x84, 0x4d, 0xbd, 0x12, 0x95, 0x02, 0x57, 0xf1, 0xb0, 0x7e, 0xf8, 0xcc, 0x33, 0x37, 0xc0, 0x1a, 0x70, 0x26, 0x93, 0xfb, 0x4d, 0x92, 0xd0, 0x47, 0xe6, 0x98, 0xc3, 0xa6, 0xdd, 0x46, 0xc4, 0xa9, 0x2a, 0x10, 0xd4, 0xc7, 0x80, 0xe5, 0x2e, 0x50, 0x25, 0xe0, 0x9d, 0x56, 0x53, 0x5d, 0x7e, 0xeb, 0x9f, 0xe7, 0xf0, 0x33, 0xe6, 0xe9, 0x26, 0x0a, 0x68, 0xf9, 0xd5, 0x4b, 0x6f, 0x37, 0xcc, 0x06, 0x96, 0x56, 0xe3, 0xbc, 0xee, 0x06, 0x92, 0x2b, 0x34, 0x96, 0x81, 0xa8, 0xe7, 0x75, 0x1c, 0xde, 0xcb, 0xe1, 0xec, 0xb6, 0x63, 0xfb, 0xc6, 0xf7, 0xc8, 0x61, 0xf8, 0x53, 0xdc, 0x31, 0x0f, 0x33, 0xde, 0xfa, 0x98, 0xee, 0x34, 0x3a, 0x68, 0x63, 0x2e, 0xc2, 0x2c, 0xaf, 0xec, 0xb7, 0xf3, 0x21, 0x2f, 0x81, 0xe7, 0x0b, 0x71, 0x84, 0x3b, 0x9f, 0xe8, 0xc8, 0x6a, 0x68, 0xb5, 0xc8, 0x6f, 0x03, 0x22, 0xd3, 0x48, 0xa7, 0x6d, 0xa7, 0xf1, 0xba, 0x0c, 0xa3, 0xcd, 0x7b, 0x6f, 0xd1, 0x5f, 0xf8, 0x92, 0x92, 0xb3, 0xf6, 0x36, 0xcd, 0x08, 0xcf, 0x62, 0x5c, 0x74, 0xd5, 0x10, 0x2c, 0xab, 0xb5, 0x71, 0xa3, 0xdb, 0xa8, 0x6a, 0x1c, 0x92, 0xf4, 0x1c, 0x72, 0x03, 0xb4, 0x49, 0x42, 0xf5, 0xa2, 0x46, 0x25, 0xac, 0x37, 0xd7, 0x7e, 0x49, 0xa5, 0x7f, 0x11, 0x82, 0x38, 0x69, 0x9d, 0x80, 0x7c, 0x25, 0x0d, 0x5b, 0xf4, 0x6f, 0x7a, 0x3c, 0xec, 0x57, 0x79, 0xa6, 0xe5, 0xae, 0x1a, 0x6c, 0xa1, 0x60, 0xcf, 0xf3, 0x7f, 0xb3, 0xb7, 0x83, 0x88, 0xfe, 0x9c, 0x03, 0x0c, 0x40, 0xe7, 0x15, 0x46, 0x01, 0x08, 0x1a, 0x51, 0x7f, 0xc0, 0xaa, 0x18, 0x02, 0xcd, 0x3b, 0x84, 0x5b, 0x94, 0x6e, 0xfe, 0x94, 0xaa, 0x8b, 0x9e, 0x03, 0xf6, 0x8a, 0x80, 0xde, 0xd0, 0xdf, 0xbf, 0xad, 0x4d, 0xae, 0xe4, 0x0f, 0xa8, 0x38, 0xc1, 0x33, 0x84, 0x1a, 0xe8, 0xa3, 0xce, 0x0d, 0x79, 0xfa, 0x8a, 0x2b, 0x94, 0x34, 0xba, 0xc5, 0xe1, 0xda, 0x6e, 0x0c, 0x71, 0x93, 0xe8, 0xde, 0xa4, 0x35, 0xa0, 0x3a, 0x85, 0xf7, 0x61, 0x84, 0xf7, 0xeb, 0xe2, 0xaa, 0x74, 0x9b, 0xe9, 0x41, 0x31, 0x04, 0xa1, 0x78, 0x68, 0x9b, 0xa6, 0xd2, 0x7e, 0x94, 0xfc, 0xcf, 0x61, 0xeb, 0x3a, 0xba, 0x0e, 0x6a, 0x5a, 0x63, 0xaf, 0x0c, 0xa8, 0xf0, 0x5a, 0x35, 0xcb, 0x63, 0x70, 0x51, 0x94, 0xe4, 0x4d, 0x92, 0x93, 0xde, 0x39, 0x29, 0xb0, 0xd9, 0x2b, 0xe6, 0xf8, 0xe6, 0x27, 0xc3, 0x50, 0xa8, 0x3f, 0xc9, 0x00, 0x0a, 0xa9, 0x5b, 0x93, 0x82, 0x0b, 0xe9, 0x79, 0x5c, 0x80, 0xb5, 0x66, 0x2c, 0xd7, 0xb3, 0x48, 0x22, 0x32, 0x80, 0x61, 0x35, 0x6d, 0xc5, 0x80, 0x57, 0x8d, 0x1a, 0x35, 0xb1, 0x01, 0x40, 0xdc, 0xd2, 0x48, 0xe4, 0x85, 0x31, 0x04, 0xd2, 0xc5, 0xb2, 0xc1, 0x3f, 0xf6, 0x83, 0xdd, 0x5c, 0x30, 0x79, 0x4b, 0xe4, 0xa7, 0x68, 0x58, 0xaf, 0x1c, 0x0d, 0x9a, 0xf3, 0x47, 0xce, 0x1d, 0xcd, 0x97, 0x2e, 0xe4, 0x9a, 0xac, 0x12, 0xbb, 0xcd, 0x89, 0x9c, 0x93, 0x29, 0x87, 0x1d, 0x3e, 0x7a, 0x06, 0x83, 0xd1, 0x75, 0x77, 0x9a, 0xfe, 0x35, 0xf2, 0x6a, 0x2d, 0x24, 0x8f, 0xd7, 0x80, 0xea, 0x85, 0x1d, 0xc4, 0xba, 0x6d, 0x21, 0xf8, 0xa1, 0x71, 0xaa, 0x6c, 0xb8, 0x69, 0x7d, 0x9d, 0x11, 0x21, 0x61, 0x54, 0x03, 0x07, 0xcd, 0x54, 0xf9, 0x31, 0x77, 0x5d, 0x70, 0xb3, 0x3d, 0x3b, 0x6d, 0xe1, 0x09, 0x1f, 0xc1, 0x75, 0x05, 0x31, 0xc0, 0x8f, 0xa7, 0x0f, 0x7b, 0xe3, 0x8a, 0xa1, 0x10, 0xd6, 0x74, 0x6b, 0xb5, 0x65, 0xdb, 0x7b, 0x47, 0x0f, 0x90, 0x08, 0x50, 0xfb, 0xbf, 0x1c, 0x66, 0x2f, 0xd6, 0x13, 0xe4, 0xf3, 0xa5, 0x68, 0x95, 0x49, 0xe3, 0x10, 0x7e, 0x9b, 0x0f, 0x17, 0xde, 0xf7, 0xa5, 0xbd, 0x7f, 0xd7, 0x59, 0x6c, 0x4d, 0x04, 0xc7, 0xf4, 0x8c, 0x77, 0x9f, 0xc3, 0x5e, 0x09, 0x33, 0x5e, 0x1d, 0xf7, 0x84, 0x08, 0x4e, 0x55, 0xd8, 0x55, 0x1d, 0x1f, 0xf4, 0x9d, 0xe5, 0xb3, 0x11, 0xcd, 0x35, 0x0f, 0x34, 0x7a, 0x0b, 0xd2, 0x86, 0x3a, 0x2a, 0x30, 0xe6, 0xea, 0x18, 0x3a, 0xd2, 0xe3, 0xee, 0xde, 0xbc, 0x18, 0xdd, 0x28, 0xc6, 0xa5, 0x96, 0xe6, 0x93, 0xdc, 0x33, 0x89, 0xf7, 0xd9, 0x0b, 0x71, 0x3e, 0x3a, 0x85, 0xa6, 0x25, 0x16, 0x30, 0x5a, 0x70, 0x66, 0x7f, 0xc1, 0xfb, 0x3c, 0xb1, 0x0e, 0x8a, 0x95, 0x57, 0x50, 0x27, 0x39, 0x43, 0xc5, 0x68, 0xe1, 0x07, 0x69, 0xce, 0xf7, 0x81, 0x99, 0xdf, 0x44, 0x50, 0xdb, 0xc4, 0x90, 0xfe, 0xf1, 0xb3, 0x04, 0xb0, 0x52, 0x22, 0x1b, 0x2d, 0xb9, 0xc4, 0x4f, 0xe0, 0x03, 0x45, };
17847 static const u8 ed25519_776_test_vectors_expected_sig[] = {
17848 	0xf4, 0xd1, 0xc8, 0x0f, 0x5e, 0x7b, 0x91, 0xc5, 0xc7, 0xa8, 0x2a, 0x68, 0x2d, 0x49, 0xba, 0x6f, 0xb1, 0x9d, 0x40, 0x0a, 0x29, 0x97, 0x48, 0xa0, 0xc9, 0x69, 0xbb, 0x99, 0x81, 0x69, 0x98, 0xbe, 0x63, 0x4e, 0x84, 0xda, 0x78, 0x58, 0x1b, 0x06, 0xe3, 0x47, 0x0e, 0xfe, 0xc3, 0x98, 0x04, 0xfe, 0xd9, 0x3d, 0x29, 0x73, 0x9f, 0x04, 0x39, 0xa8, 0x09, 0x5a, 0xc4, 0x0d, 0x9d, 0x38, 0x5e, 0x04, };
17849 static const ec_test_case ed25519_776_test_case = {
17850 	.name = "EDDSA25519-SHA512/wei25519 776",
17851 	.ec_str_p = &wei25519_str_params,
17852 	.priv_key = ed25519_776_test_vectors_priv_key,
17853 	.priv_key_len = sizeof(ed25519_776_test_vectors_priv_key),
17854 	.nn_random = NULL,
17855 	.hash_type = SHA512,
17856 	.msg = (const char *)ed25519_776_test_vectors_message,
17857 	.msglen = sizeof(ed25519_776_test_vectors_message),
17858 	.sig_type = EDDSA25519,
17859 	.exp_sig = ed25519_776_test_vectors_expected_sig,
17860 	.exp_siglen = sizeof(ed25519_776_test_vectors_expected_sig),
17861 	.adata = NULL,
17862 	.adata_len = 0
17863 };
17864 
17865 /************************************************/
17866 static const u8 ed25519_777_test_vectors_priv_key[] = {
17867 	0x6c, 0xa1, 0xa1, 0x48, 0x2a, 0x07, 0xf2, 0xa6, 0xc5, 0x7f, 0x04, 0x11, 0x97, 0xb3, 0x4a, 0x51, 0x19, 0xe6, 0x89, 0x03, 0xcf, 0x6d, 0xfb, 0x51, 0x71, 0x1d, 0x95, 0x50, 0x97, 0x31, 0x63, 0xc0, };
17868 static const u8 ed25519_777_test_vectors_message[] = {
17869 	0x08, 0xfd, 0x84, 0x87, 0x50, 0x3c, 0x3f, 0x32, 0x96, 0xb6, 0xf1, 0xb6, 0x4d, 0x6e, 0x85, 0x90, 0x6f, 0xd5, 0x98, 0x6c, 0xf9, 0xc5, 0xd9, 0xfa, 0x8a, 0x59, 0xd9, 0x2f, 0x44, 0xe6, 0x47, 0x0a, 0xf3, 0x4b, 0xcd, 0xef, 0x33, 0x6f, 0xfd, 0xc8, 0x64, 0x56, 0xec, 0x7a, 0x7b, 0x57, 0x61, 0xf1, 0xad, 0xea, 0x02, 0x73, 0x26, 0x63, 0x0e, 0x68, 0xab, 0xc6, 0xb8, 0xcd, 0x5d, 0xdf, 0x40, 0xb6, 0x41, 0xa2, 0x59, 0xad, 0x02, 0x43, 0x21, 0xbf, 0x3e, 0xf9, 0x8e, 0x76, 0x32, 0x79, 0x71, 0x49, 0xc4, 0x92, 0xd5, 0x35, 0x94, 0x75, 0x2c, 0x55, 0x0d, 0xfb, 0xc4, 0xfa, 0x6b, 0xf4, 0x71, 0x76, 0xf4, 0x23, 0xa2, 0x70, 0x56, 0x93, 0x94, 0x7a, 0xa9, 0x0d, 0x68, 0xdd, 0xc8, 0xef, 0xb6, 0xcb, 0x9d, 0xbe, 0xca, 0xfd, 0x28, 0x30, 0xd0, 0x4f, 0xd9, 0x3b, 0x1e, 0x9e, 0x7c, 0x12, 0xb9, 0x3e, 0x0d, 0x0f, 0x3e, 0x26, 0x34, 0x90, 0x0f, 0x25, 0x86, 0x0d, 0xda, 0xdb, 0xae, 0xce, 0x17, 0x80, 0xff, 0x2d, 0x3f, 0x3d, 0x9f, 0xb8, 0x38, 0xfd, 0x0d, 0x5d, 0x66, 0xf8, 0xaf, 0xb3, 0x05, 0xff, 0x1a, 0x1a, 0xed, 0xca, 0x2b, 0x97, 0x4b, 0x63, 0xe4, 0x3f, 0x5b, 0x3c, 0xc9, 0xdf, 0xed, 0x1b, 0xcf, 0x11, 0x99, 0x91, 0x76, 0xed, 0x95, 0x85, 0xac, 0x82, 0x9b, 0xc6, 0x79, 0x4e, 0xf3, 0xac, 0xd8, 0x72, 0xe8, 0xd2, 0xe9, 0x26, 0x08, 0xb3, 0x20, 0xf8, 0x94, 0x99, 0x6a, 0x56, 0x2e, 0x1e, 0xb1, 0x77, 0xe2, 0x1b, 0xe5, 0x7c, 0x22, 0xc4, 0x1e, 0xc2, 0x59, 0xa3, 0xdf, 0xf9, 0xc7, 0xc9, 0x49, 0x1d, 0xb8, 0x38, 0xd7, 0x6c, 0xf9, 0xb0, 0x38, 0x31, 0x11, 0x59, 0x8e, 0x35, 0x7f, 0x44, 0xba, 0xbe, 0xbf, 0x12, 0x1b, 0xdb, 0x24, 0xee, 0x9d, 0x55, 0x7b, 0x7d, 0x5a, 0xf4, 0x91, 0xa0, 0xa0, 0x36, 0x5c, 0x90, 0x36, 0x1f, 0xe4, 0xf7, 0xe3, 0xd1, 0x3a, 0x17, 0xda, 0x3a, 0x39, 0xfd, 0x43, 0xf6, 0x90, 0xdf, 0xb0, 0xb2, 0xd8, 0x60, 0xca, 0xb4, 0x19, 0xf7, 0x75, 0xab, 0x71, 0x52, 0xcd, 0xc8, 0xf2, 0xaf, 0xdc, 0x50, 0xe8, 0xd5, 0xda, 0x5d, 0xa0, 0x17, 0x06, 0xee, 0xa2, 0xa2, 0xff, 0xad, 0x4b, 0xab, 0xee, 0x8b, 0x03, 0xda, 0x33, 0x6a, 0x4d, 0x84, 0x3d, 0x9d, 0x7e, 0x0a, 0x93, 0xf3, 0x6a, 0x92, 0xe6, 0x61, 0x0a, 0x36, 0x8b, 0x63, 0x13, 0x3f, 0x05, 0xa3, 0xfd, 0xc5, 0x5e, 0x3e, 0x1a, 0x44, 0x0b, 0x0f, 0x87, 0xa5, 0x33, 0x64, 0xc1, 0xd3, 0x72, 0x42, 0xc5, 0x7a, 0x10, 0x9e, 0x6d, 0xf6, 0x93, 0x45, 0xb0, 0x1c, 0x21, 0xc1, 0x08, 0x9e, 0x79, 0x0a, 0x66, 0xf4, 0xf3, 0x38, 0x0d, 0x3b, 0x76, 0xff, 0xb4, 0x20, 0xdf, 0xe1, 0xe6, 0x20, 0x0e, 0xac, 0xe5, 0x79, 0x26, 0x5a, 0x42, 0x7f, 0xbd, 0x35, 0x55, 0x14, 0xef, 0x95, 0x3e, 0x1a, 0x6e, 0x96, 0x8e, 0x37, 0x02, 0x1b, 0x3c, 0x6a, 0x29, 0x0d, 0xcd, 0x02, 0x93, 0xda, 0x67, 0x68, 0xda, 0xd7, 0xc6, 0x63, 0x11, 0x63, 0x30, 0x51, 0xc0, 0xac, 0xcb, 0x0b, 0x91, 0x65, 0x46, 0x4d, 0xfd, 0xdf, 0xde, 0xd2, 0x3b, 0xd1, 0x3e, 0xf9, 0x08, 0x74, 0x4f, 0x9c, 0x21, 0x11, 0xdc, 0x15, 0x31, 0x42, 0xd2, 0xf1, 0x05, 0x34, 0xd8, 0x93, 0xfe, 0x0b, 0x54, 0x5f, 0xec, 0x53, 0xfd, 0xb3, 0xb3, 0x5b, 0x51, 0x83, 0x98, 0xb0, 0x2a, 0xb2, 0x17, 0x91, 0xfa, 0x97, 0x7e, 0x30, 0xcf, 0x4b, 0x40, 0x4e, 0x7a, 0x29, 0x9d, 0x37, 0x87, 0x10, 0x8b, 0x83, 0x6a, 0xa0, 0xd5, 0x9c, 0x11, 0x4f, 0x1f, 0x36, 0x71, 0x9a, 0x7a, 0xcf, 0x85, 0xac, 0x99, 0x4d, 0x9c, 0xb7, 0x23, 0x06, 0xf2, 0x58, 0xf7, 0x8a, 0xc0, 0xa3, 0xb6, 0xc0, 0x53, 0x43, 0xe0, 0xb7, 0xa9, 0xaa, 0x72, 0x6e, 0x52, 0x26, 0x7e, 0xdf, 0x97, 0xf4, 0x97, 0x2f, 0x76, 0x64, 0xf4, 0x37, 0x20, 0xad, 0x33, 0xce, 0x6e, 0x61, 0x54, 0x40, 0xe3, 0x65, 0x37, 0xcb, 0xc5, 0x69, 0xbd, 0x6f, 0xf9, 0x4f, 0xfd, 0xae, 0xa5, 0x1e, 0x06, 0x02, 0x9d, 0xae, 0x78, 0xc5, 0xb9, 0x15, 0xc5, 0x37, 0xca, 0xea, 0x6f, 0x15, 0x04, 0x14, 0x79, 0x79, 0xb8, 0xaa, 0xae, 0x0b, 0xcd, 0x96, 0x18, 0x43, 0x7e, 0xbe, 0xd0, 0xb5, 0x5e, 0xfa, 0xec, 0x32, 0x0e, 0x84, 0xc7, 0x59, 0x59, 0xa3, 0x7a, 0x26, 0x0a, 0x02, 0xd4, 0xef, 0x1b, 0xb6, 0x26, 0x41, 0x52, 0x0f, 0x1a, 0x03, 0xdd, 0xea, 0x8c, 0x4c, 0x1d, 0xe8, 0xd7, 0xfa, 0xc5, 0x8d, 0xa4, 0x08, 0xb0, 0xab, 0x47, 0x57, 0xa1, 0x35, 0xf1, 0xd0, 0x75, 0xc9, 0xf7, 0xc9, 0x9f, 0xb9, 0x9d, 0xb9, 0x42, 0x7c, 0xe9, 0xb0, 0xd6, 0x26, 0xcb, 0x1a, 0xc1, 0x89, 0xad, 0x86, 0x63, 0xd7, 0xa7, 0x14, 0xfb, 0x5c, 0xd1, 0x58, 0x5c, 0x3b, 0xf9, 0x9a, 0x0a, 0xa4, 0x6d, 0x76, 0x39, 0x78, 0xd0, 0xb1, 0x2d, 0x65, 0xc4, 0x38, 0xbb, 0xb7, 0x3f, 0xea, 0xa5, 0x1b, 0xa2, 0x6a, 0x45, 0x9e, 0x7b, 0xea, 0x25, 0x43, 0x94, 0x66, 0xc0, 0x86, 0x13, 0xe4, 0x25, 0x40, 0xc8, 0xc6, 0xd5, 0x43, 0x67, 0xf2, 0x21, 0xfc, 0xce, 0x0c, 0x5e, 0xb6, 0xaf, 0x2f, 0xaa, 0x18, 0x1e, 0xa2, 0x15, 0x21, 0x80, 0x9b, 0xe7, 0x56, 0x49, 0xcf, 0x8d, 0xee, 0x76, 0x71, 0xdb, 0x7f, 0x94, 0x8f, 0x34, 0x6c, 0xbd, 0x03, 0x02, 0xbf, 0x9a, 0x06, 0xea, 0xbc, 0x72, 0xe2, 0xe5, 0x12, 0xb3, 0xdf, 0x88, 0x5f, 0x6d, 0xaa, 0x39, 0x8f, 0x93, 0xe3, 0x6d, 0xae, 0x2d, 0x6a, 0x04, 0x47, 0x81, 0x21, 0xf9, 0x77, 0x87, 0xd4, 0xce, 0xdf, 0xf6, 0xdb, 0x09, 0xaa, 0xf1, 0x0f, 0x27, 0xb1, };
17870 static const u8 ed25519_777_test_vectors_expected_sig[] = {
17871 	0xdd, 0x9b, 0xdb, 0xad, 0xd9, 0xfd, 0xc8, 0x1c, 0xe2, 0x30, 0x28, 0x8c, 0x4a, 0x06, 0x8d, 0xf0, 0x7e, 0x18, 0xb4, 0xc7, 0xcc, 0x51, 0xc0, 0xca, 0x48, 0x11, 0xdf, 0xbd, 0x04, 0x76, 0x5c, 0x56, 0xbc, 0x88, 0x32, 0x40, 0xe4, 0x6e, 0x3a, 0x42, 0xc0, 0x1d, 0x8d, 0x24, 0x24, 0xfb, 0xc3, 0x32, 0xb7, 0xc5, 0xa1, 0x7b, 0xce, 0xb1, 0xf6, 0xe8, 0xda, 0xd0, 0xbf, 0xe5, 0x62, 0xca, 0xd3, 0x02, };
17872 static const ec_test_case ed25519_777_test_case = {
17873 	.name = "EDDSA25519-SHA512/wei25519 777",
17874 	.ec_str_p = &wei25519_str_params,
17875 	.priv_key = ed25519_777_test_vectors_priv_key,
17876 	.priv_key_len = sizeof(ed25519_777_test_vectors_priv_key),
17877 	.nn_random = NULL,
17878 	.hash_type = SHA512,
17879 	.msg = (const char *)ed25519_777_test_vectors_message,
17880 	.msglen = sizeof(ed25519_777_test_vectors_message),
17881 	.sig_type = EDDSA25519,
17882 	.exp_sig = ed25519_777_test_vectors_expected_sig,
17883 	.exp_siglen = sizeof(ed25519_777_test_vectors_expected_sig),
17884 	.adata = NULL,
17885 	.adata_len = 0
17886 };
17887 
17888 /************************************************/
17889 static const u8 ed25519_778_test_vectors_priv_key[] = {
17890 	0x27, 0x84, 0xdf, 0x91, 0xfe, 0xa1, 0xb2, 0xd2, 0x1d, 0x71, 0x3d, 0xe2, 0xed, 0xc6, 0x65, 0x24, 0x51, 0xa0, 0xc1, 0x59, 0x54, 0xb8, 0x65, 0x60, 0x62, 0xea, 0x1d, 0xed, 0xc2, 0x44, 0x5b, 0x2a, };
17891 static const u8 ed25519_778_test_vectors_message[] = {
17892 	0x2e, 0x3b, 0xc5, 0x4d, 0xf4, 0x16, 0x74, 0x1d, 0xbe, 0x79, 0x16, 0xad, 0x25, 0xf0, 0x4e, 0x48, 0xd5, 0xa9, 0xd7, 0x7a, 0x62, 0x3e, 0x57, 0xf9, 0xcd, 0x61, 0xec, 0xb4, 0x4f, 0x09, 0xf7, 0x68, 0x33, 0xeb, 0x2a, 0x3e, 0x9a, 0xb7, 0xaa, 0x89, 0xff, 0x5d, 0x2d, 0x56, 0x0c, 0x07, 0x17, 0x7d, 0x85, 0x4d, 0x7c, 0x49, 0xcb, 0xef, 0x49, 0x2b, 0x7f, 0x4f, 0x7e, 0x56, 0x7d, 0xe1, 0x27, 0x51, 0x24, 0xe1, 0x6c, 0xa4, 0xa7, 0x98, 0x01, 0x62, 0xfa, 0x0f, 0xd1, 0x62, 0xa8, 0xe5, 0xfd, 0x6f, 0x35, 0x61, 0x70, 0x07, 0x03, 0x4b, 0xce, 0xec, 0x57, 0xc8, 0xfa, 0xf7, 0x66, 0x4f, 0x4b, 0x3b, 0xaf, 0xfd, 0xea, 0x8d, 0x8f, 0xc2, 0xba, 0x22, 0xd5, 0x85, 0xe9, 0xe2, 0xd7, 0x39, 0xf5, 0xff, 0xc9, 0x9b, 0x4e, 0x0d, 0xbe, 0x9c, 0x36, 0x86, 0x54, 0x7e, 0xa0, 0x48, 0x15, 0xa5, 0x9c, 0x4a, 0x25, 0xb5, 0xf2, 0x39, 0x06, 0x68, 0xe4, 0x18, 0xba, 0x0f, 0xcb, 0xdf, 0x4c, 0x4a, 0x51, 0xf3, 0x39, 0x05, 0xc7, 0x4f, 0xbb, 0x83, 0x0a, 0x19, 0xf9, 0xbc, 0x86, 0x36, 0xdb, 0xaa, 0xff, 0x20, 0x99, 0x95, 0x44, 0x79, 0x96, 0xd2, 0xe5, 0xb1, 0xc3, 0x77, 0xb4, 0xcb, 0x87, 0xa4, 0xe1, 0xef, 0xe1, 0x2d, 0xe3, 0x4d, 0x33, 0x59, 0x9f, 0xf3, 0x97, 0xb7, 0x40, 0x17, 0xd7, 0x11, 0xed, 0xd3, 0xe7, 0x72, 0x15, 0x5b, 0xe5, 0xa4, 0x40, 0x6e, 0x74, 0xcb, 0xe2, 0x93, 0x1e, 0xf5, 0x13, 0x59, 0xaf, 0xd5, 0x1b, 0x5b, 0x1a, 0x7b, 0x3e, 0xa2, 0x2e, 0xe8, 0xed, 0xa8, 0x14, 0x76, 0xbc, 0xc1, 0x7e, 0xa7, 0x68, 0x0f, 0x6f, 0x31, 0x04, 0x70, 0x3b, 0x9f, 0x2a, 0x35, 0xcf, 0x26, 0x27, 0xeb, 0x74, 0x1d, 0x1a, 0x30, 0xaa, 0x4b, 0xee, 0xf6, 0x57, 0x9e, 0xc7, 0xd0, 0xb0, 0x7a, 0x4e, 0xf3, 0x2a, 0xbc, 0xb4, 0xd7, 0x56, 0x97, 0x0f, 0x70, 0xa3, 0x67, 0x8e, 0x17, 0xe6, 0xe5, 0x73, 0x18, 0x90, 0xae, 0xbc, 0x8c, 0x92, 0xb9, 0x56, 0xd4, 0xb3, 0xb5, 0xfe, 0x2a, 0xdf, 0xd7, 0x9b, 0x21, 0x1a, 0x18, 0x83, 0xdf, 0xc8, 0xc9, 0xa4, 0xb1, 0xb9, 0xc8, 0xc1, 0xbb, 0x26, 0x5e, 0x1f, 0x3d, 0xd3, 0x92, 0x44, 0x5e, 0xa5, 0x9b, 0x59, 0x0a, 0x01, 0x95, 0x51, 0xf8, 0x12, 0x18, 0x49, 0xf4, 0x35, 0xb3, 0xac, 0x1b, 0x29, 0x90, 0x2f, 0xc8, 0x39, 0x25, 0x54, 0x05, 0x6b, 0x93, 0x90, 0x3d, 0x5f, 0x26, 0x3b, 0x3d, 0x54, 0x08, 0x43, 0xd6, 0xaf, 0xa7, 0x5a, 0x2a, 0xd8, 0x30, 0x4b, 0x76, 0x90, 0xde, 0x99, 0xa7, 0x34, 0xc3, 0xd1, 0x30, 0xb6, 0x95, 0x47, 0xb1, 0x8b, 0x09, 0xe9, 0x8c, 0xbf, 0x25, 0x27, 0x30, 0xe4, 0xae, 0xdb, 0x6d, 0xc4, 0xb5, 0x8b, 0x22, 0x43, 0xfe, 0x55, 0xe8, 0x09, 0x39, 0xd3, 0x7b, 0x0a, 0x59, 0xd7, 0x22, 0x26, 0xd8, 0xa2, 0xcc, 0x51, 0x53, 0x09, 0x5e, 0x15, 0x99, 0x4a, 0xd6, 0x21, 0x95, 0xaa, 0x31, 0x0f, 0x2a, 0x64, 0x26, 0x67, 0x6b, 0x66, 0x1e, 0x47, 0xb9, 0xfc, 0xff, 0xfa, 0x04, 0xd6, 0xdc, 0x62, 0x5f, 0x29, 0xf4, 0x4c, 0x7c, 0xf6, 0x20, 0xb3, 0x78, 0xa6, 0x5d, 0x23, 0x83, 0x44, 0xb3, 0x80, 0x44, 0x8c, 0xd1, 0x19, 0xcc, 0x7f, 0x37, 0x3f, 0x62, 0xcd, 0xfa, 0xd6, 0x41, 0x49, 0x90, 0x63, 0x53, 0xf3, 0xa5, 0x41, 0x07, 0xc5, 0xdb, 0xa6, 0x5e, 0x3c, 0xc4, 0x94, 0xb0, 0x53, 0x1f, 0x4d, 0x64, 0x74, 0x93, 0x63, 0xf2, 0x30, 0x73, 0x8b, 0x2c, 0xfe, 0xed, 0x98, 0x35, 0x20, 0x22, 0x7d, 0xd5, 0xbc, 0x43, 0xbe, 0x59, 0xb3, 0x26, 0x8e, 0x28, 0x32, 0x16, 0xf6, 0xe9, 0xc7, 0x5e, 0x0c, 0x1c, 0x71, 0x27, 0x2e, 0x54, 0xfd, 0xb2, 0x9c, 0x78, 0x58, 0xd2, 0x87, 0xd1, 0xef, 0xa1, 0x91, 0x7b, 0xe3, 0x7c, 0x8e, 0xea, 0xb5, 0xe4, 0x4c, 0x3a, 0xd7, 0xb3, 0x6e, 0x8a, 0xc9, 0xf6, 0x69, 0x91, 0xeb, 0x82, 0xa5, 0x14, 0x8e, 0x59, 0x72, 0x03, 0x4a, 0xd0, 0x1c, 0x62, 0x61, 0x5a, 0x45, 0x15, 0x45, 0x79, 0xfa, 0x50, 0x86, 0x9e, 0x7b, 0xe9, 0x87, 0x6b, 0x56, 0x56, 0xea, 0xad, 0x2e, 0x43, 0x02, 0x5a, 0x62, 0xdd, 0x13, 0x4b, 0x61, 0x2d, 0x8f, 0x4d, 0x5e, 0xbc, 0xf8, 0x05, 0x6e, 0x19, 0x8b, 0x71, 0x34, 0x38, 0xe8, 0xe0, 0xe3, 0x47, 0xca, 0xfb, 0xfc, 0xb8, 0x9e, 0x39, 0x4a, 0xa3, 0x30, 0xd4, 0xc7, 0x88, 0xd4, 0x9c, 0x65, 0x8f, 0xcf, 0xc8, 0x0b, 0x3e, 0x00, 0x78, 0xf0, 0xe8, 0xe1, 0x9a, 0xa9, 0xb8, 0xfe, 0x8e, 0xb0, 0xba, 0xb9, 0x3d, 0xe7, 0x85, 0xd0, 0x43, 0xe0, 0xf4, 0x75, 0xae, 0xb6, 0x0d, 0x62, 0xe3, 0x8f, 0xb1, 0xf8, 0x38, 0x4a, 0x00, 0xb7, 0xa9, 0x02, 0xda, 0xee, 0x13, 0xd2, 0x13, 0x62, 0x69, 0xe5, 0x08, 0x01, 0xb8, 0x0a, 0x65, 0xb2, 0xf9, 0x13, 0xcf, 0xe3, 0xff, 0xb3, 0x65, 0xd9, 0xaa, 0x2f, 0xd1, 0x93, 0x72, 0xa0, 0xb0, 0x22, 0x56, 0x95, 0x44, 0x4e, 0x4b, 0xc5, 0x48, 0x71, 0xd1, 0x08, 0xe0, 0x9c, 0x7e, 0x1c, 0x2b, 0x42, 0xdc, 0xbb, 0xac, 0xce, 0x24, 0xea, 0x5b, 0xd5, 0xbf, 0x1f, 0xcf, 0x4a, 0xc6, 0x97, 0xa3, 0xfe, 0x09, 0xa5, 0x46, 0x77, 0xb7, 0xa8, 0xdc, 0x8d, 0x5e, 0xec, 0xb8, 0x6c, 0xc7, 0x92, 0xee, 0x9b, 0x6f, 0xea, 0x2d, 0xe1, 0x6a, 0x47, 0x32, 0x69, 0xfd, 0xc6, 0x5d, 0xbb, 0x73, 0xc2, 0x58, 0xc8, 0x21, 0x44, 0x04, 0x07, 0xc6, 0x42, 0xf7, 0xd3, 0xd3, 0xf5, 0xc7, 0x08, 0xd5, 0x53, 0x32, 0xda, 0x83, 0x43, 0x10, 0x6c, 0x19, 0xb2, 0x30, 0xa5, 0x14, 0x27, 0xf3, 0xb7, 0x71, 0x91, 0x6a, 0xe3, 0x68, 0x8b, };
17893 static const u8 ed25519_778_test_vectors_expected_sig[] = {
17894 	0x17, 0xd1, 0x71, 0xd9, 0x46, 0xde, 0x35, 0x16, 0x15, 0x84, 0x07, 0xe1, 0x32, 0xcc, 0x1a, 0xce, 0xca, 0xef, 0xd6, 0xd0, 0x92, 0x11, 0x2b, 0xe6, 0x53, 0x99, 0x95, 0x23, 0xe2, 0x0b, 0xd4, 0x95, 0xf7, 0xb7, 0xf6, 0x00, 0xe8, 0xd5, 0xa6, 0x71, 0x33, 0x0d, 0x32, 0x69, 0x3d, 0x60, 0x19, 0xc0, 0x8d, 0x2d, 0x00, 0x3b, 0x17, 0x6e, 0x63, 0x19, 0xc3, 0x53, 0x94, 0x20, 0x0e, 0x02, 0x7d, 0x0e, };
17895 static const ec_test_case ed25519_778_test_case = {
17896 	.name = "EDDSA25519-SHA512/wei25519 778",
17897 	.ec_str_p = &wei25519_str_params,
17898 	.priv_key = ed25519_778_test_vectors_priv_key,
17899 	.priv_key_len = sizeof(ed25519_778_test_vectors_priv_key),
17900 	.nn_random = NULL,
17901 	.hash_type = SHA512,
17902 	.msg = (const char *)ed25519_778_test_vectors_message,
17903 	.msglen = sizeof(ed25519_778_test_vectors_message),
17904 	.sig_type = EDDSA25519,
17905 	.exp_sig = ed25519_778_test_vectors_expected_sig,
17906 	.exp_siglen = sizeof(ed25519_778_test_vectors_expected_sig),
17907 	.adata = NULL,
17908 	.adata_len = 0
17909 };
17910 
17911 /************************************************/
17912 static const u8 ed25519_779_test_vectors_priv_key[] = {
17913 	0x4b, 0xb7, 0x92, 0x36, 0xfa, 0xda, 0x31, 0x44, 0xb6, 0x82, 0x96, 0x49, 0x9b, 0xa4, 0x4a, 0xe5, 0x34, 0x07, 0x4c, 0xa9, 0x4d, 0x4b, 0x58, 0x1e, 0x5e, 0xdc, 0xff, 0xfe, 0x13, 0xb3, 0xad, 0x19, };
17914 static const u8 ed25519_779_test_vectors_message[] = {
17915 	0xad, 0x81, 0xab, 0xf6, 0x93, 0x7a, 0x7a, 0xcd, 0x7f, 0x18, 0x37, 0xf0, 0x4d, 0x3f, 0x10, 0xe7, 0x08, 0xc6, 0x1a, 0x5f, 0xbe, 0xde, 0xee, 0x4d, 0xb7, 0x6e, 0x15, 0x98, 0x57, 0x03, 0x84, 0xe6, 0xef, 0xec, 0xe9, 0x7c, 0x92, 0x5d, 0x2e, 0x5c, 0x34, 0x88, 0xca, 0xb1, 0x0b, 0x5b, 0x52, 0xb8, 0xa5, 0x48, 0x6e, 0x99, 0xd8, 0xff, 0xe8, 0x6c, 0x19, 0x81, 0xa1, 0xf1, 0xd5, 0x32, 0xdc, 0xd4, 0xd4, 0x89, 0xe5, 0x54, 0x6d, 0x86, 0x65, 0x32, 0x98, 0xe7, 0xa5, 0xf9, 0x6e, 0x81, 0x44, 0x55, 0x2d, 0xda, 0x8a, 0x18, 0xe7, 0x5b, 0x5f, 0x73, 0x55, 0xb1, 0x35, 0x41, 0x62, 0x11, 0x06, 0xe4, 0x97, 0xe5, 0x1a, 0x56, 0xd8, 0x65, 0x9d, 0x19, 0x8f, 0xe1, 0x00, 0x37, 0xe2, 0x21, 0x28, 0xaf, 0xc2, 0x71, 0x4a, 0x2c, 0xb5, 0xa1, 0x2c, 0xc5, 0xdb, 0x09, 0x68, 0xa3, 0x43, 0xef, 0x91, 0x8e, 0x87, 0x69, 0xdd, 0x6a, 0x3e, 0x5b, 0x9e, 0x32, 0xaa, 0xb6, 0x6c, 0xb0, 0x23, 0x9e, 0xbe, 0x4c, 0x17, 0xf1, 0x82, 0x18, 0xe2, 0x52, 0xeb, 0xa6, 0x16, 0x2e, 0x97, 0x70, 0x49, 0xeb, 0xac, 0x0b, 0x38, 0x04, 0x8b, 0x3a, 0xaf, 0xb7, 0xd4, 0xd7, 0x22, 0x63, 0xe9, 0x21, 0x28, 0x99, 0xa3, 0xbf, 0xe0, 0xa6, 0x9c, 0x99, 0xe2, 0x2a, 0xc6, 0x1c, 0x5e, 0x96, 0x12, 0x45, 0x63, 0x03, 0xd9, 0x24, 0x58, 0xb5, 0xc5, 0x02, 0x91, 0x6c, 0x34, 0xa8, 0xee, 0x5c, 0xd9, 0xa5, 0x82, 0xa5, 0x25, 0x76, 0xb6, 0xdc, 0x9d, 0x7d, 0x4c, 0x64, 0x2f, 0x21, 0x29, 0x98, 0xbf, 0x33, 0x58, 0xd4, 0xa8, 0xc2, 0xea, 0x67, 0x68, 0x6e, 0x55, 0xd4, 0x89, 0xf6, 0xa7, 0x6e, 0x6b, 0x07, 0x0e, 0x6e, 0x99, 0x5a, 0x74, 0x53, 0x26, 0xc9, 0xaa, 0x63, 0x63, 0x0a, 0x00, 0x33, 0xad, 0x30, 0x72, 0x1a, 0xa6, 0x5f, 0xac, 0x60, 0x4a, 0x6e, 0x58, 0xc7, 0x50, 0x72, 0x1a, 0x56, 0xca, 0x67, 0x60, 0xc9, 0x41, 0x34, 0xd6, 0x11, 0xfa, 0xb4, 0xd3, 0x54, 0xe4, 0xf6, 0x6a, 0x29, 0x67, 0x7b, 0x1a, 0x66, 0x66, 0x01, 0xe9, 0xda, 0x79, 0xf2, 0x13, 0xf5, 0x82, 0x03, 0x74, 0x33, 0xc0, 0x7f, 0x94, 0xd5, 0xf0, 0xde, 0x6a, 0xa9, 0xfa, 0xa0, 0xb3, 0x2f, 0x7b, 0x02, 0x3f, 0xb9, 0xfc, 0x13, 0x5a, 0x26, 0xf9, 0x70, 0x52, 0xac, 0x80, 0xb3, 0x9b, 0x30, 0x6a, 0xed, 0x13, 0x92, 0x6c, 0x28, 0x54, 0x19, 0xa2, 0x9b, 0x20, 0xe2, 0x37, 0x0d, 0x8a, 0x09, 0x5b, 0x32, 0x25, 0x8f, 0xa9, 0x89, 0x34, 0x89, 0xee, 0x21, 0x08, 0x9c, 0x75, 0x2e, 0xc0, 0x62, 0xe1, 0x20, 0x35, 0x9e, 0x2f, 0x35, 0x15, 0x12, 0x82, 0x54, 0xc8, 0x09, 0x8c, 0xca, 0x65, 0xa9, 0x1a, 0x02, 0x2d, 0xd0, 0x57, 0xa2, 0xc2, 0xa1, 0xb6, 0xb8, 0x5d, 0x13, 0x7c, 0x3c, 0x96, 0x7d, 0xcb, 0x70, 0xaa, 0x17, 0xa2, 0xff, 0x4b, 0x37, 0x67, 0x8b, 0x38, 0x29, 0x02, 0xf0, 0xf9, 0x31, 0xee, 0x74, 0x3f, 0xc3, 0x98, 0xac, 0x1b, 0x8c, 0x10, 0x46, 0x98, 0x67, 0x30, 0x84, 0x79, 0xe4, 0x0d, 0x7f, 0x2f, 0x04, 0xa4, 0xb0, 0x4c, 0x44, 0x89, 0x15, 0x84, 0x88, 0xdd, 0xb7, 0xbe, 0xc5, 0xa4, 0x7f, 0x20, 0xff, 0x35, 0x6d, 0x99, 0xa1, 0xb3, 0xe9, 0xd0, 0xb7, 0xfe, 0x9b, 0x0a, 0xd9, 0x49, 0xf2, 0x98, 0x96, 0x0e, 0xfa, 0x4d, 0x97, 0x28, 0xf8, 0x10, 0x1c, 0xf5, 0x3d, 0xa3, 0xbf, 0xfd, 0xd9, 0x52, 0x4b, 0xf4, 0x40, 0xa5, 0x8b, 0x32, 0x73, 0x8d, 0x0b, 0x62, 0x93, 0xe8, 0x53, 0xf4, 0x66, 0xff, 0xd4, 0x2c, 0x56, 0x07, 0xac, 0x9e, 0x35, 0x3b, 0xa0, 0x3e, 0xfb, 0x57, 0x8c, 0xc9, 0x96, 0x3d, 0x8a, 0xaa, 0x9d, 0x2e, 0x26, 0x6d, 0x1d, 0x2a, 0xe9, 0x29, 0x6f, 0x30, 0xc9, 0xef, 0x44, 0xec, 0x69, 0x10, 0x30, 0xd5, 0x96, 0xa4, 0x01, 0xb6, 0xce, 0xe7, 0x2a, 0x54, 0x0e, 0xf3, 0xc4, 0x2e, 0xc0, 0x17, 0x42, 0x66, 0xba, 0x54, 0x01, 0xf3, 0x54, 0xad, 0xc8, 0xe2, 0x54, 0x04, 0x43, 0x7e, 0x88, 0x8b, 0x08, 0x28, 0x69, 0x39, 0xbe, 0xde, 0x30, 0x8a, 0xcd, 0x30, 0x32, 0x7e, 0xbf, 0xf0, 0x62, 0x70, 0x09, 0x7c, 0xc2, 0x94, 0xf0, 0xa0, 0xf3, 0x9f, 0x9a, 0xa3, 0xc6, 0x65, 0x85, 0xca, 0x47, 0xe6, 0x0c, 0x4b, 0x8e, 0xa3, 0x60, 0x89, 0xeb, 0x8a, 0x90, 0x88, 0xbb, 0x18, 0xb0, 0x34, 0x31, 0x35, 0xbb, 0x6a, 0x45, 0x6d, 0x2f, 0x6a, 0x3b, 0xf3, 0x90, 0x72, 0x3e, 0x78, 0xb4, 0x2c, 0x03, 0x7c, 0x2d, 0xe2, 0xe1, 0x43, 0x2c, 0xaa, 0xd3, 0xa5, 0x94, 0x02, 0x12, 0x94, 0xd4, 0x3f, 0x5b, 0x15, 0xa2, 0xe8, 0x19, 0xdc, 0x74, 0x8e, 0x45, 0x1d, 0xe4, 0x00, 0x68, 0xc8, 0xf0, 0x32, 0xf1, 0x3b, 0x47, 0x11, 0x37, 0x70, 0x12, 0xed, 0xcd, 0x4f, 0x11, 0xde, 0xc1, 0x11, 0x1b, 0x12, 0xeb, 0x6e, 0x1b, 0x00, 0x63, 0x38, 0x18, 0x70, 0x6d, 0x71, 0x32, 0xd9, 0x91, 0xce, 0x20, 0xdf, 0x3b, 0x92, 0x1d, 0xb2, 0x18, 0x5e, 0xe2, 0x5b, 0xb6, 0xf5, 0x82, 0x75, 0x76, 0xec, 0x01, 0xad, 0x89, 0x0f, 0x79, 0x79, 0x3b, 0xaa, 0x35, 0x8c, 0x2b, 0xbf, 0xb6, 0xfa, 0xad, 0x11, 0xd8, 0xcb, 0x0d, 0x0d, 0x2d, 0x2b, 0x29, 0x81, 0xfb, 0xf4, 0xe3, 0x72, 0x34, 0x9f, 0xc6, 0xa0, 0x1c, 0x36, 0x07, 0x7b, 0x59, 0x32, 0x5f, 0x70, 0x2b, 0x38, 0x00, 0x59, 0xa6, 0x5c, 0xf2, 0xf5, 0xea, 0x98, 0xd6, 0xbd, 0xc8, 0x15, 0x20, 0x53, 0xb8, 0x5b, 0x28, 0xc8, 0x1e, 0x41, 0x3c, 0x4c, 0xac, 0x7e, 0x22, 0x6c, 0x13, 0xdb, 0x32, 0x67, 0xd2, 0x18, 0x30, 0xf0, 0xe5, 0x43, 0x11, 0x02, 0x91, 0x70, 0x05, };
17916 static const u8 ed25519_779_test_vectors_expected_sig[] = {
17917 	0x69, 0x8f, 0xab, 0x68, 0x51, 0x0d, 0xb8, 0x12, 0x1a, 0x46, 0x5d, 0xb7, 0x7e, 0x4f, 0x8b, 0x58, 0x6a, 0xee, 0x89, 0x58, 0x16, 0xe6, 0x3b, 0xbf, 0x0b, 0xeb, 0x24, 0x2d, 0xb4, 0xe8, 0x4c, 0x15, 0x7f, 0x4b, 0xe2, 0x01, 0xae, 0x65, 0x64, 0x51, 0x7a, 0x87, 0x0d, 0x17, 0xf6, 0x0c, 0x85, 0x83, 0x70, 0xc0, 0x1c, 0xca, 0x17, 0x18, 0x9c, 0xb4, 0x18, 0x9e, 0x81, 0x43, 0x91, 0xd1, 0x50, 0x0d, };
17918 static const ec_test_case ed25519_779_test_case = {
17919 	.name = "EDDSA25519-SHA512/wei25519 779",
17920 	.ec_str_p = &wei25519_str_params,
17921 	.priv_key = ed25519_779_test_vectors_priv_key,
17922 	.priv_key_len = sizeof(ed25519_779_test_vectors_priv_key),
17923 	.nn_random = NULL,
17924 	.hash_type = SHA512,
17925 	.msg = (const char *)ed25519_779_test_vectors_message,
17926 	.msglen = sizeof(ed25519_779_test_vectors_message),
17927 	.sig_type = EDDSA25519,
17928 	.exp_sig = ed25519_779_test_vectors_expected_sig,
17929 	.exp_siglen = sizeof(ed25519_779_test_vectors_expected_sig),
17930 	.adata = NULL,
17931 	.adata_len = 0
17932 };
17933 
17934 /************************************************/
17935 static const u8 ed25519_780_test_vectors_priv_key[] = {
17936 	0xaf, 0xd7, 0x65, 0xe6, 0xaa, 0xc0, 0x14, 0x6d, 0x48, 0x11, 0xef, 0x95, 0x97, 0xbc, 0x3f, 0x44, 0x76, 0x3f, 0x03, 0x37, 0x8b, 0x7b, 0xe0, 0x33, 0xd6, 0xe6, 0x4c, 0xa2, 0x9d, 0xec, 0xae, 0xf9, };
17937 static const u8 ed25519_780_test_vectors_message[] = {
17938 	0x18, 0x3b, 0x10, 0x92, 0xc7, 0x90, 0x4e, 0x47, 0xa1, 0x42, 0x03, 0x17, 0xa2, 0x5d, 0x0f, 0x59, 0x11, 0x0a, 0xa8, 0x4d, 0x6b, 0x34, 0x19, 0xad, 0x45, 0x68, 0x65, 0xc4, 0x3b, 0x29, 0xe9, 0xd1, 0xda, 0xcf, 0x75, 0x5d, 0x9e, 0x5c, 0xf9, 0x4c, 0x55, 0x91, 0xd5, 0xd9, 0x12, 0xd0, 0x5c, 0xa9, 0xa5, 0x2d, 0x01, 0x5d, 0x6e, 0x8f, 0x5d, 0xc9, 0x4e, 0xfd, 0xce, 0x0d, 0x7c, 0xf5, 0x65, 0x12, 0x03, 0xb1, 0x1e, 0x54, 0x27, 0xa9, 0xf6, 0x79, 0x42, 0x9e, 0x00, 0x41, 0x4a, 0x48, 0xea, 0xb1, 0x3f, 0xd8, 0xe5, 0x8b, 0x87, 0xeb, 0xa3, 0x9d, 0x10, 0x25, 0xd6, 0xa1, 0x8b, 0x2c, 0xdc, 0xbe, 0x14, 0x74, 0x36, 0xdb, 0xf3, 0x8a, 0x1c, 0xe8, 0x64, 0x13, 0xae, 0x31, 0x87, 0x65, 0xe1, 0xbb, 0x1d, 0xf7, 0xe2, 0xb3, 0xbe, 0x97, 0xe9, 0x04, 0x08, 0xb1, 0x17, 0x17, 0xcf, 0x45, 0x9b, 0xcd, 0x0f, 0x3c, 0xac, 0x58, 0xb4, 0xa0, 0xd3, 0x5b, 0xff, 0xb5, 0x33, 0xe2, 0x0d, 0xf3, 0x74, 0x51, 0xc1, 0x14, 0x01, 0xce, 0x1d, 0xab, 0x02, 0x05, 0x5c, 0x7e, 0x08, 0xc5, 0xec, 0x46, 0x39, 0x0c, 0xd6, 0x17, 0xa6, 0xb5, 0xf2, 0x2f, 0x65, 0x18, 0x30, 0xa1, 0x11, 0x2a, 0x06, 0xed, 0xe4, 0xc4, 0x0a, 0xb7, 0x95, 0x78, 0x51, 0xd6, 0xc6, 0x6f, 0x17, 0x1c, 0xd1, 0x62, 0x41, 0x59, 0x09, 0x00, 0xb8, 0x52, 0xa3, 0xd0, 0x19, 0x95, 0x7b, 0xe1, 0xb7, 0xbb, 0x7a, 0xcb, 0x89, 0x23, 0xf2, 0xa3, 0x57, 0xc3, 0x26, 0x44, 0x56, 0xcf, 0xca, 0x9b, 0x42, 0x9d, 0x71, 0xfe, 0xcb, 0x7e, 0xda, 0xe3, 0x9b, 0x25, 0x2b, 0x4e, 0xb6, 0x10, 0xe8, 0xc7, 0x18, 0x83, 0x56, 0x99, 0x75, 0x4b, 0x8d, 0x41, 0x24, 0xb4, 0x92, 0x48, 0x8e, 0xde, 0x62, 0x61, 0x0c, 0xce, 0x44, 0xb5, 0x92, 0x18, 0x66, 0x3b, 0x6c, 0x96, 0x46, 0xa1, 0x4a, 0x84, 0x17, 0xed, 0xdb, 0xb6, 0xf4, 0xfb, 0xe5, 0xa4, 0xbb, 0xbb, 0x48, 0x2b, 0x37, 0xa4, 0x45, 0xe3, 0xc1, 0x6b, 0x65, 0xa1, 0x41, 0xcd, 0x3e, 0x12, 0xa5, 0xb2, 0xc0, 0x48, 0x1d, 0x61, 0x4d, 0x6d, 0x20, 0x84, 0x79, 0xb9, 0xb2, 0x09, 0xb8, 0x28, 0x85, 0x4d, 0xae, 0x0e, 0xa1, 0xed, 0xed, 0x50, 0x65, 0x55, 0xfe, 0x18, 0xe1, 0x85, 0x40, 0x05, 0xcf, 0x00, 0x1a, 0x80, 0x77, 0x08, 0x34, 0x98, 0xd2, 0x7f, 0xad, 0xf1, 0x18, 0x28, 0x6b, 0x53, 0xb8, 0x97, 0x4d, 0x69, 0xfa, 0x28, 0x25, 0xbe, 0x8c, 0xa3, 0xd6, 0x03, 0x6a, 0x92, 0xca, 0x52, 0xf9, 0x1d, 0xde, 0x6d, 0x5b, 0x1f, 0xfe, 0x28, 0x88, 0xf4, 0xd6, 0x07, 0x79, 0xfa, 0xd1, 0xfb, 0x41, 0xd8, 0xc0, 0x71, 0x40, 0x49, 0xaf, 0x68, 0x1b, 0x75, 0x5f, 0x2d, 0x42, 0x04, 0xee, 0xcd, 0x09, 0xe0, 0x77, 0x21, 0x0a, 0x48, 0xa1, 0x95, 0xe7, 0x2c, 0x80, 0xe1, 0x27, 0xc3, 0xd4, 0x87, 0x50, 0x95, 0xc6, 0x57, 0x0a, 0x1f, 0x78, 0x09, 0x59, 0x07, 0x52, 0x8c, 0xf7, 0x74, 0x6f, 0x31, 0xd9, 0x71, 0x11, 0xc6, 0xf4, 0xcb, 0x25, 0xb3, 0x74, 0x12, 0x99, 0xa7, 0x57, 0x48, 0x22, 0xd4, 0x6b, 0x6e, 0x79, 0xed, 0x23, 0xc2, 0xfe, 0x05, 0x7b, 0x3a, 0xc7, 0x29, 0x0b, 0x46, 0x0b, 0x16, 0x6e, 0xe9, 0x0a, 0x45, 0x56, 0x2e, 0xff, 0xed, 0xcc, 0x6b, 0xa8, 0xf4, 0x79, 0x5f, 0x73, 0x95, 0x81, 0x8d, 0xb5, 0x6b, 0x6e, 0xdd, 0x59, 0xca, 0x2c, 0xc4, 0xae, 0xa1, 0x84, 0x1f, 0xd9, 0x56, 0x5b, 0xec, 0xd6, 0xc0, 0x81, 0x04, 0xcd, 0xee, 0x26, 0xba, 0x9d, 0xe2, 0x00, 0x77, 0x3d, 0x09, 0x1b, 0xc7, 0x7a, 0x57, 0xc5, 0x47, 0xf1, 0xa6, 0xba, 0x0a, 0x2c, 0xd7, 0x17, 0xab, 0x32, 0x56, 0x1d, 0x74, 0x22, 0xea, 0x72, 0x35, 0xad, 0xb0, 0xcb, 0x36, 0xbf, 0x5c, 0xbd, 0xf8, 0x8f, 0xca, 0xe0, 0x66, 0x30, 0xa1, 0x56, 0x47, 0xd9, 0xa3, 0x57, 0xb4, 0xe0, 0xe5, 0x02, 0xd2, 0x73, 0xf3, 0x79, 0x6a, 0x51, 0xe0, 0xbc, 0x3f, 0xed, 0xbf, 0x7a, 0x1e, 0x64, 0xaa, 0xd7, 0x22, 0xaa, 0xc5, 0xfd, 0x02, 0x2f, 0xa7, 0x9d, 0x60, 0xfc, 0x70, 0x73, 0x25, 0xf1, 0x27, 0xeb, 0x1f, 0x03, 0x86, 0x87, 0x95, 0xcc, 0xdc, 0x0b, 0x4c, 0xb2, 0x6f, 0x20, 0x23, 0xd1, 0x52, 0x15, 0x3a, 0x97, 0xa2, 0x60, 0xbf, 0xf1, 0x17, 0x45, 0xd2, 0xe2, 0xcc, 0x0b, 0xf8, 0x60, 0xd4, 0xa6, 0xe3, 0x58, 0xa6, 0xd8, 0x17, 0x6d, 0x2a, 0xc1, 0x78, 0xa9, 0xae, 0x1a, 0x2d, 0xc7, 0x5e, 0x8b, 0x49, 0x04, 0x08, 0xff, 0x7c, 0xdf, 0x99, 0x13, 0x29, 0xf3, 0x3c, 0xb0, 0xc0, 0x5e, 0x1e, 0x35, 0x69, 0x25, 0x08, 0x7e, 0x0b, 0x8d, 0x96, 0xa5, 0x23, 0x51, 0xd1, 0xd1, 0x77, 0x68, 0xeb, 0x13, 0x4c, 0xdb, 0x21, 0xa1, 0x54, 0x6a, 0xae, 0xdc, 0xc6, 0x87, 0xdf, 0xa1, 0xb2, 0x2e, 0x92, 0xfb, 0x52, 0x41, 0xa8, 0x36, 0x77, 0xa1, 0x53, 0x44, 0x5b, 0x77, 0xd5, 0xe7, 0x03, 0x50, 0x8e, 0x2a, 0xbc, 0x58, 0x8a, 0x9f, 0x42, 0xe5, 0xbc, 0x71, 0x06, 0x73, 0xe4, 0xdd, 0x8a, 0xd7, 0x03, 0xfa, 0xb2, 0xd7, 0xdb, 0x1e, 0xb8, 0x42, 0x26, 0xc8, 0x9d, 0x87, 0x62, 0xa7, 0x09, 0xe3, 0xe9, 0x13, 0x8a, 0x1f, 0xa7, 0x90, 0xf2, 0x92, 0x9b, 0xff, 0x61, 0xbc, 0x1e, 0xa6, 0xe8, 0xaa, 0x1a, 0xd0, 0xe3, 0x88, 0x7d, 0x70, 0xa5, 0x6d, 0x4e, 0x65, 0x47, 0xfc, 0x60, 0x6a, 0x50, 0xd3, 0xbe, 0x3b, 0xd6, 0xdb, 0x03, 0x66, 0x3e, 0x00, 0xca, 0x9e, 0x4f, 0x24, 0xfe, 0x8c, 0xbf, 0xd7, 0xd8, 0xc9, 0x73, 0x8d, 0x63, 0x67, 0x55, 0x4b, 0x7b, 0x60, 0x1f, 0x74, 0x19, 0x0b, 0x59, 0x70, 0xa3, 0x98, };
17939 static const u8 ed25519_780_test_vectors_expected_sig[] = {
17940 	0x3d, 0xc9, 0x19, 0x4d, 0x50, 0x81, 0x14, 0x19, 0x04, 0x9e, 0xaa, 0x07, 0xb6, 0x55, 0xb7, 0xd4, 0x06, 0x4b, 0xcb, 0x0e, 0x7f, 0xb5, 0xf9, 0xe5, 0x32, 0x6b, 0x5f, 0xc8, 0x56, 0xfc, 0x0a, 0xb8, 0x70, 0x59, 0x73, 0xae, 0x10, 0x01, 0xdf, 0x55, 0x37, 0x39, 0x77, 0xdd, 0xe2, 0xd9, 0xb8, 0x10, 0x79, 0x55, 0x14, 0x14, 0xad, 0xc7, 0x1c, 0xc8, 0x52, 0xd4, 0x99, 0xb0, 0xcf, 0x82, 0x4f, 0x07, };
17941 static const ec_test_case ed25519_780_test_case = {
17942 	.name = "EDDSA25519-SHA512/wei25519 780",
17943 	.ec_str_p = &wei25519_str_params,
17944 	.priv_key = ed25519_780_test_vectors_priv_key,
17945 	.priv_key_len = sizeof(ed25519_780_test_vectors_priv_key),
17946 	.nn_random = NULL,
17947 	.hash_type = SHA512,
17948 	.msg = (const char *)ed25519_780_test_vectors_message,
17949 	.msglen = sizeof(ed25519_780_test_vectors_message),
17950 	.sig_type = EDDSA25519,
17951 	.exp_sig = ed25519_780_test_vectors_expected_sig,
17952 	.exp_siglen = sizeof(ed25519_780_test_vectors_expected_sig),
17953 	.adata = NULL,
17954 	.adata_len = 0
17955 };
17956 
17957 /************************************************/
17958 static const u8 ed25519_781_test_vectors_priv_key[] = {
17959 	0xeb, 0x34, 0x71, 0x45, 0xf3, 0x39, 0xed, 0xd8, 0x02, 0x78, 0x5b, 0x6f, 0xbe, 0xcd, 0x5c, 0xb8, 0x08, 0x89, 0xac, 0x7c, 0xe4, 0xeb, 0xad, 0x2f, 0x67, 0x07, 0x67, 0x65, 0xdb, 0x93, 0x9b, 0xca, };
17960 static const u8 ed25519_781_test_vectors_message[] = {
17961 	0x5b, 0x8b, 0x31, 0xba, 0xf8, 0x84, 0x83, 0xf0, 0x95, 0xb5, 0xd0, 0x2e, 0x17, 0xd8, 0xb7, 0xb4, 0x6c, 0xf4, 0x64, 0x60, 0xe6, 0x4c, 0x6b, 0x02, 0xc5, 0x6d, 0x8d, 0xaf, 0xe3, 0x48, 0x23, 0x70, 0x6c, 0xb5, 0xc1, 0x5f, 0x33, 0x8a, 0xd9, 0xb5, 0x65, 0x86, 0xa9, 0x49, 0x71, 0x1a, 0xa7, 0x31, 0x2c, 0xc9, 0x34, 0x50, 0xd2, 0xfb, 0x9a, 0xf4, 0x61, 0x3f, 0xc3, 0x07, 0x93, 0xa6, 0x31, 0xa5, 0x5c, 0x14, 0xe5, 0x3c, 0x0c, 0xb1, 0x5f, 0x06, 0x11, 0x63, 0x99, 0x39, 0x8c, 0x8d, 0xd6, 0x18, 0x76, 0xc6, 0x29, 0x15, 0xf9, 0xf9, 0xe4, 0xcd, 0xf8, 0xf7, 0xd8, 0x9a, 0xde, 0x12, 0x9e, 0x6d, 0xde, 0x7d, 0x63, 0x67, 0x1a, 0x18, 0x63, 0xf5, 0xda, 0x8f, 0x42, 0xea, 0x64, 0xc0, 0x79, 0xec, 0xb9, 0xa2, 0xc1, 0xb1, 0xdd, 0x9a, 0xda, 0xe6, 0x0e, 0x96, 0xb9, 0xcb, 0xbc, 0x76, 0x24, 0x53, 0x2a, 0xa1, 0x79, 0x75, 0xeb, 0xa1, 0x7a, 0x7a, 0xf0, 0x2b, 0xfb, 0x21, 0x9a, 0xac, 0x02, 0xb3, 0xd4, 0x30, 0x6c, 0xd3, 0x89, 0x33, 0xa8, 0x50, 0x60, 0xcd, 0x62, 0xab, 0x51, 0x3a, 0x39, 0x65, 0xb0, 0x91, 0x50, 0xa4, 0x88, 0xc9, 0x2b, 0xf7, 0xca, 0xb0, 0x48, 0x2e, 0xee, 0x56, 0x46, 0x3f, 0x01, 0x39, 0x00, 0x9b, 0x9f, 0xbb, 0x3f, 0xf4, 0xec, 0xae, 0x21, 0x1f, 0x42, 0x8b, 0x5b, 0xfb, 0x88, 0x76, 0xf0, 0x04, 0x98, 0x3b, 0x90, 0xc4, 0x47, 0x84, 0x6c, 0xa4, 0xb7, 0x45, 0x66, 0xe9, 0x79, 0xbc, 0x30, 0xc9, 0x5e, 0x99, 0xfa, 0xab, 0x69, 0xa3, 0xeb, 0xbf, 0xe4, 0xda, 0x60, 0x34, 0xc8, 0x2d, 0x63, 0xe9, 0xc5, 0xcc, 0xaf, 0x84, 0x86, 0xaf, 0x3b, 0x5e, 0x0d, 0x38, 0x14, 0x22, 0x93, 0x8b, 0x0c, 0x22, 0xf5, 0x16, 0x95, 0x5b, 0xdc, 0x36, 0x94, 0x31, 0x73, 0xf5, 0x83, 0x27, 0x08, 0xa3, 0x3c, 0xf5, 0x2d, 0x88, 0x75, 0xd9, 0x7f, 0xde, 0x58, 0x5b, 0x49, 0x17, 0xe4, 0xad, 0xec, 0xdd, 0x1e, 0x79, 0x85, 0x67, 0x62, 0x03, 0x3a, 0xf2, 0x2f, 0x25, 0x4b, 0x50, 0xce, 0x9d, 0x0c, 0x70, 0x0e, 0x77, 0xa7, 0x31, 0x55, 0x4f, 0xa0, 0x11, 0x3a, 0x0c, 0x66, 0x66, 0x83, 0xf3, 0xfd, 0xb1, 0x9e, 0x3a, 0x42, 0x63, 0x02, 0x23, 0x0b, 0x63, 0xe3, 0x3a, 0x78, 0x5e, 0xf2, 0x4a, 0x92, 0x89, 0x45, 0x5b, 0x3b, 0x8f, 0xc6, 0x18, 0xff, 0xfe, 0xf4, 0x9c, 0x2c, 0x6e, 0x48, 0xfd, 0x4b, 0xb4, 0x22, 0xf5, 0x04, 0x14, 0x9d, 0xe2, 0xb4, 0xc0, 0x35, 0x5c, 0x36, 0x34, 0x08, 0xe6, 0x6d, 0xa8, 0x1c, 0xbb, 0x58, 0x15, 0x52, 0xa4, 0x11, 0xe3, 0x64, 0xfe, 0x3e, 0x4c, 0xa9, 0x6d, 0x70, 0x72, 0xab, 0x07, 0x2e, 0x75, 0x68, 0xc1, 0x3d, 0x35, 0xe4, 0x1c, 0x78, 0x25, 0xa1, 0x3a, 0x5c, 0x68, 0xfb, 0x9f, 0xb5, 0x98, 0x8b, 0xbb, 0xfb, 0x9a, 0x0b, 0x51, 0x16, 0x57, 0x64, 0x66, 0x0c, 0xdf, 0xa2, 0x41, 0x1f, 0x3d, 0x42, 0x16, 0x5d, 0xa1, 0x87, 0xc5, 0x8e, 0xde, 0xf0, 0x10, 0x5a, 0x6d, 0xb1, 0x77, 0x42, 0x05, 0x43, 0xe9, 0x58, 0xd5, 0xd5, 0xe8, 0xa3, 0x71, 0xf7, 0x98, 0x70, 0x51, 0xc4, 0xe1, 0x78, 0x6d, 0x01, 0x8e, 0xb3, 0xd7, 0x32, 0xc2, 0x10, 0xa8, 0x61, 0xac, 0xaf, 0x67, 0x1b, 0xe9, 0x5b, 0xb6, 0x3f, 0xbc, 0x88, 0xbf, 0x8b, 0xe7, 0xbe, 0x53, 0x90, 0x93, 0x9c, 0xd9, 0xfb, 0x2a, 0xcf, 0x39, 0x81, 0xdd, 0xa6, 0x1b, 0x78, 0x7a, 0x7b, 0xbd, 0x78, 0x46, 0x8e, 0x1d, 0x32, 0xca, 0x46, 0xaf, 0x8f, 0xb3, 0x2a, 0x18, 0x46, 0x3c, 0x18, 0x0f, 0x52, 0x4b, 0xe1, 0xda, 0x91, 0x0d, 0xa5, 0x50, 0x8d, 0x42, 0xa0, 0x05, 0x17, 0x41, 0x22, 0x7c, 0x9b, 0x62, 0xde, 0x6d, 0x19, 0xb3, 0x3c, 0x0b, 0xd4, 0x80, 0x67, 0xb0, 0x35, 0x85, 0x9a, 0xd9, 0xbd, 0xc2, 0xdd, 0xd9, 0x7b, 0xef, 0xca, 0x31, 0xe6, 0x5a, 0x88, 0x6c, 0xfc, 0x75, 0x3a, 0xfc, 0x4f, 0xf2, 0xa7, 0x21, 0x2a, 0x89, 0xd3, 0x7c, 0x04, 0x6c, 0xdf, 0x39, 0x99, 0xc0, 0x51, 0xff, 0x13, 0x96, 0xbd, 0x99, 0xcb, 0x54, 0x94, 0x56, 0x39, 0xeb, 0x64, 0x62, 0xdb, 0x9e, 0xce, 0x84, 0x07, 0x7b, 0x0b, 0x3d, 0x6b, 0x3d, 0xf3, 0x95, 0x2d, 0xd3, 0x67, 0x56, 0xc6, 0xda, 0xb2, 0xab, 0xc2, 0x5a, 0x51, 0xbf, 0x32, 0xc1, 0xe9, 0xcd, 0xd0, 0xa7, 0x28, 0xa7, 0x98, 0x5f, 0x7b, 0x7e, 0x0d, 0x9c, 0x1a, 0x6f, 0x66, 0xce, 0x12, 0x16, 0x37, 0x3d, 0x25, 0x2d, 0xaf, 0x59, 0x58, 0xf2, 0xe8, 0x97, 0x3f, 0xd2, 0x68, 0xfa, 0xd0, 0xef, 0xe2, 0x51, 0xce, 0x76, 0xfe, 0x47, 0xbd, 0x0a, 0x4d, 0x0c, 0x4f, 0x10, 0x17, 0x94, 0x9d, 0x4c, 0x2b, 0x16, 0x71, 0x72, 0x18, 0xe1, 0x49, 0x15, 0x4e, 0xd6, 0xfb, 0xe5, 0x6f, 0x86, 0xd8, 0x2e, 0x19, 0xef, 0x0a, 0x91, 0x63, 0x19, 0x12, 0xf2, 0xa8, 0xf3, 0xde, 0xbb, 0x00, 0x76, 0x6b, 0x61, 0x77, 0x80, 0x2f, 0x4b, 0x2e, 0x79, 0xf6, 0xe7, 0xbf, 0xa9, 0xc6, 0x2c, 0xfa, 0x2f, 0x75, 0xcd, 0xb6, 0x04, 0x92, 0x63, 0x0a, 0x85, 0xc9, 0xb4, 0x31, 0x77, 0xd2, 0xdd, 0x9b, 0xa8, 0xd0, 0x54, 0x8a, 0xbe, 0x24, 0x92, 0x3a, 0xe8, 0x44, 0x3e, 0xea, 0xdc, 0xd0, 0xf5, 0x8a, 0x7b, 0x82, 0xdf, 0xf5, 0x0d, 0x88, 0x40, 0x03, 0x88, 0x9c, 0xb5, 0x60, 0xf7, 0xac, 0x53, 0xe7, 0x10, 0xa7, 0x55, 0x75, 0x36, 0x24, 0x64, 0xb1, 0xaa, 0x43, 0xd2, 0xa9, 0xb2, 0x2f, 0x2b, 0xd2, 0x16, 0x2d, 0x30, 0x2f, 0xaa, 0x74, 0x52, 0x34, 0x4c, 0xe7, 0xad, 0xe9, 0x98, 0x36, 0x87, 0xb6, 0xc6, 0x8e, 0xca, 0x47, 0xdd, 0xdb, 0x28, 0x9b, 0x15, };
17962 static const u8 ed25519_781_test_vectors_expected_sig[] = {
17963 	0xfd, 0xbd, 0x15, 0xe1, 0xe6, 0x46, 0x9d, 0xf7, 0x20, 0xd9, 0x55, 0x2c, 0xb5, 0xdd, 0x17, 0x7b, 0xcb, 0xd2, 0x92, 0xfc, 0xda, 0x83, 0xcd, 0x93, 0xc8, 0x8d, 0x01, 0x14, 0x91, 0x2d, 0xc8, 0x70, 0x31, 0x09, 0xba, 0xc0, 0xd4, 0x59, 0xac, 0xe9, 0x95, 0x7d, 0xf2, 0x29, 0x3a, 0xc1, 0x6d, 0x40, 0xd5, 0x14, 0x89, 0x35, 0x56, 0x85, 0x32, 0x99, 0xb9, 0x7b, 0x4f, 0xd4, 0x13, 0x7a, 0x3d, 0x00, };
17964 static const ec_test_case ed25519_781_test_case = {
17965 	.name = "EDDSA25519-SHA512/wei25519 781",
17966 	.ec_str_p = &wei25519_str_params,
17967 	.priv_key = ed25519_781_test_vectors_priv_key,
17968 	.priv_key_len = sizeof(ed25519_781_test_vectors_priv_key),
17969 	.nn_random = NULL,
17970 	.hash_type = SHA512,
17971 	.msg = (const char *)ed25519_781_test_vectors_message,
17972 	.msglen = sizeof(ed25519_781_test_vectors_message),
17973 	.sig_type = EDDSA25519,
17974 	.exp_sig = ed25519_781_test_vectors_expected_sig,
17975 	.exp_siglen = sizeof(ed25519_781_test_vectors_expected_sig),
17976 	.adata = NULL,
17977 	.adata_len = 0
17978 };
17979 
17980 /************************************************/
17981 static const u8 ed25519_782_test_vectors_priv_key[] = {
17982 	0x32, 0x08, 0x83, 0x7d, 0x15, 0x54, 0xb6, 0x51, 0x1a, 0xdd, 0xa0, 0x9c, 0xba, 0xe5, 0x65, 0xda, 0x78, 0x43, 0x9a, 0x47, 0x2a, 0x5d, 0x1b, 0x10, 0x7c, 0xe0, 0xa9, 0xb1, 0xd7, 0x75, 0x7d, 0xb7, };
17983 static const u8 ed25519_782_test_vectors_message[] = {
17984 	0x43, 0x6a, 0x3c, 0x31, 0x76, 0x3f, 0x93, 0xd4, 0xd5, 0x46, 0xc6, 0xd1, 0xec, 0xfb, 0x7a, 0xe4, 0x59, 0x16, 0xaf, 0x75, 0x4f, 0x83, 0x9d, 0xcf, 0xe9, 0x6d, 0x6b, 0x69, 0xc6, 0x12, 0x14, 0xd0, 0x16, 0xfc, 0x84, 0x2f, 0x56, 0x46, 0x2a, 0x3f, 0x07, 0xf6, 0x61, 0xb2, 0xe2, 0x50, 0x5a, 0xcf, 0xaf, 0x48, 0x2a, 0x0b, 0x0f, 0x4f, 0x55, 0x01, 0xee, 0xc4, 0xb2, 0xd2, 0xd7, 0xd4, 0x44, 0x54, 0x4d, 0xe0, 0x00, 0xb9, 0x90, 0xf4, 0x36, 0x3d, 0x3f, 0x98, 0x3f, 0x5d, 0x4e, 0x09, 0x30, 0x97, 0x52, 0xff, 0x57, 0x9c, 0x73, 0x20, 0xc9, 0x15, 0x95, 0x1c, 0xc3, 0xa1, 0xe3, 0x23, 0x8c, 0x1b, 0xa7, 0xa1, 0x91, 0x30, 0xea, 0xbf, 0x6a, 0x37, 0xf5, 0xf0, 0xbc, 0x56, 0xe2, 0x52, 0x42, 0xf7, 0x52, 0x06, 0x1f, 0x3c, 0x63, 0xac, 0xad, 0x99, 0x2a, 0x75, 0x01, 0xe9, 0x67, 0xde, 0xb9, 0x25, 0xb3, 0x0e, 0xd1, 0x05, 0x43, 0x1e, 0x58, 0x21, 0x02, 0xfa, 0x4f, 0x30, 0x8c, 0x2f, 0x06, 0x83, 0x61, 0x2b, 0x56, 0x68, 0x6d, 0x52, 0xda, 0xed, 0x69, 0x43, 0xa7, 0x21, 0x9f, 0x3b, 0xee, 0xa2, 0xe0, 0xa2, 0x92, 0x42, 0xe8, 0x6d, 0x55, 0x62, 0xff, 0xab, 0x83, 0xb5, 0x6b, 0x26, 0x33, 0x26, 0x66, 0x4e, 0x02, 0x9e, 0x96, 0x1e, 0x70, 0x17, 0xd8, 0xe8, 0x9f, 0x5e, 0x3e, 0x1d, 0x10, 0xf5, 0x93, 0x28, 0x54, 0x55, 0x0c, 0xe6, 0xe5, 0xcd, 0x76, 0x97, 0x1f, 0xd2, 0x35, 0xcf, 0x9c, 0x00, 0x27, 0xd0, 0xcf, 0xed, 0x33, 0x15, 0xc2, 0xcb, 0xf1, 0x85, 0x08, 0x62, 0x4d, 0x8a, 0xcf, 0x04, 0x7f, 0x9b, 0x96, 0x8f, 0x90, 0x7d, 0x9e, 0x6f, 0x4c, 0xfa, 0x5e, 0x45, 0xc8, 0x0a, 0x27, 0x2c, 0x2d, 0xbb, 0x62, 0xc5, 0xd4, 0x19, 0x45, 0x80, 0xdf, 0xab, 0xed, 0xd8, 0x2c, 0xb4, 0xd7, 0x64, 0x92, 0x34, 0x4b, 0xe9, 0x6c, 0xcf, 0x5d, 0xaa, 0xf6, 0x1e, 0x6b, 0x2b, 0x55, 0xef, 0xdb, 0x3f, 0x65, 0x21, 0x0a, 0x3d, 0x6e, 0x1f, 0x36, 0x98, 0x87, 0xca, 0x0e, 0xa0, 0xd5, 0x8c, 0x3d, 0x14, 0x6a, 0xe3, 0xcf, 0x9b, 0x00, 0x00, 0x76, 0x88, 0x41, 0x15, 0xfa, 0x51, 0xb5, 0xfd, 0x66, 0xbe, 0xc0, 0xcc, 0xbf, 0x0d, 0x29, 0x20, 0x19, 0x6a, 0x7d, 0x7a, 0x38, 0x44, 0x5f, 0xbe, 0xd2, 0x2d, 0xfc, 0x75, 0x64, 0xdc, 0x56, 0xf6, 0x0d, 0x6e, 0x29, 0xe5, 0x92, 0x48, 0x53, 0x74, 0xc6, 0xbd, 0x1e, 0x5b, 0x15, 0x93, 0x1b, 0x69, 0xca, 0x6e, 0xe6, 0xb3, 0xaa, 0x25, 0x25, 0xc2, 0x35, 0x85, 0xf0, 0x92, 0x9f, 0x31, 0xcb, 0xd1, 0x1f, 0xb1, 0xa5, 0x33, 0x02, 0x16, 0xb9, 0x0a, 0xe5, 0xa6, 0x56, 0xdf, 0x7a, 0x07, 0x4c, 0xec, 0x64, 0xe5, 0x98, 0x18, 0x4f, 0x50, 0x3f, 0xb2, 0x3c, 0xc0, 0x5e, 0x65, 0xda, 0x9a, 0xe7, 0xe8, 0x44, 0x1f, 0x40, 0xe2, 0xdc, 0x26, 0xb8, 0xb5, 0x6d, 0x2c, 0xb5, 0x23, 0xa7, 0xc6, 0x35, 0xdc, 0x08, 0x47, 0xd1, 0xcd, 0x49, 0x8a, 0xbf, 0x75, 0x6f, 0x5a, 0x13, 0xea, 0x14, 0xf8, 0xfa, 0xb2, 0xc4, 0x10, 0xb1, 0xa4, 0x70, 0xf4, 0x9a, 0xa8, 0xdc, 0xa4, 0xac, 0x02, 0x56, 0xb1, 0x18, 0x00, 0xde, 0x0d, 0xd0, 0xec, 0x42, 0xb1, 0x42, 0xc5, 0x61, 0x12, 0x8d, 0x35, 0x7e, 0x78, 0x3b, 0x12, 0xf6, 0x1c, 0x66, 0x8f, 0x5e, 0x6e, 0x06, 0xb7, 0xb4, 0x8b, 0x7b, 0x22, 0x54, 0xde, 0x5b, 0xdc, 0x18, 0x04, 0xb7, 0x23, 0xd5, 0xfd, 0x6a, 0x0f, 0x4b, 0xc7, 0xc5, 0x9e, 0x7c, 0x50, 0x54, 0x18, 0x26, 0x13, 0xbb, 0xd2, 0xfa, 0x92, 0xb4, 0xc1, 0xda, 0x16, 0xbc, 0x8c, 0x97, 0xe1, 0x6b, 0xcb, 0x0d, 0xbf, 0x8c, 0x92, 0xb7, 0x48, 0x99, 0xb3, 0x7f, 0x31, 0x87, 0x57, 0x14, 0x0b, 0x6c, 0x4f, 0xd5, 0x35, 0xe2, 0xe1, 0xe0, 0x57, 0x0a, 0x50, 0x81, 0x8c, 0xf7, 0x8f, 0xb9, 0x88, 0xe1, 0xf4, 0xce, 0x40, 0xe7, 0x6e, 0x8f, 0xe3, 0xd6, 0x97, 0xd7, 0xa4, 0x58, 0x50, 0xf2, 0x93, 0xce, 0x17, 0x0f, 0xd8, 0xab, 0x07, 0xcf, 0x15, 0x34, 0xea, 0x5f, 0xfa, 0xd3, 0x4f, 0x6f, 0xcf, 0xa4, 0x2d, 0x0d, 0x21, 0xa9, 0x1d, 0xfb, 0xfe, 0x05, 0x97, 0xc7, 0x3f, 0xd9, 0xb9, 0x76, 0x76, 0x14, 0xeb, 0xdf, 0xd0, 0x2c, 0x3a, 0xc0, 0xc4, 0x9a, 0xd1, 0x0c, 0x94, 0xbe, 0x59, 0x69, 0xee, 0x08, 0x08, 0xc0, 0xa3, 0x0b, 0x2a, 0x1e, 0xaa, 0x90, 0xea, 0x43, 0xb8, 0x57, 0x5c, 0x30, 0x56, 0xf4, 0x23, 0xcd, 0x4b, 0x6f, 0x34, 0xae, 0x51, 0xc2, 0x22, 0x37, 0x65, 0xa9, 0xea, 0x21, 0xf6, 0x45, 0x73, 0xc1, 0xa1, 0x39, 0x61, 0x32, 0x12, 0x46, 0xe3, 0xb5, 0x34, 0x9e, 0xe0, 0x48, 0xfb, 0x62, 0xd5, 0xfb, 0x61, 0xb1, 0x71, 0x43, 0x91, 0x18, 0x25, 0x62, 0xb9, 0x15, 0x98, 0x36, 0x0e, 0x5f, 0x9b, 0xf4, 0xac, 0x80, 0xdb, 0x24, 0x64, 0x32, 0xaf, 0xb3, 0xa4, 0x3d, 0x34, 0x96, 0x50, 0xde, 0x03, 0xd3, 0x43, 0xc2, 0xe9, 0x7a, 0x8e, 0xef, 0xd1, 0xbf, 0x30, 0xc1, 0x0c, 0x25, 0x86, 0x7f, 0x53, 0x26, 0x6b, 0xd1, 0xf0, 0xdc, 0x14, 0xae, 0x1a, 0x6b, 0xe9, 0xef, 0xde, 0xcf, 0xf6, 0x7e, 0x7d, 0x29, 0x2c, 0x6c, 0xdf, 0xc9, 0x0d, 0x80, 0xb8, 0x86, 0x66, 0x8f, 0x04, 0xc2, 0xa0, 0xf5, 0xad, 0x7f, 0xa1, 0x7c, 0x17, 0x8b, 0x6e, 0x9b, 0x45, 0xa1, 0x1f, 0x4d, 0xdf, 0xe2, 0xd6, 0x69, 0x60, 0xa3, 0xf7, 0x51, 0x35, 0xad, 0x5e, 0xd1, 0x54, 0xe5, 0x13, 0xe1, 0xa5, 0xd1, 0x38, 0xe7, 0x37, 0x1e, 0x84, 0xd7, 0xc9, 0x24, 0x53, 0xe6, 0xc6, 0x2d, 0xc5, 0x9b, 0x8e, 0x1f, 0xa9, 0x3d, 0x77, 0x3a, 0x25, 0x40, 0xd9, 0x1c, 0x25, 0x7c, };
17985 static const u8 ed25519_782_test_vectors_expected_sig[] = {
17986 	0x70, 0x9d, 0x1c, 0xa9, 0xca, 0x2f, 0x74, 0x2a, 0xb9, 0xdd, 0x0b, 0x04, 0x93, 0x35, 0xf5, 0x44, 0xcf, 0xfb, 0x2f, 0x1a, 0x36, 0x93, 0xd5, 0xf5, 0x3f, 0x8b, 0xa0, 0x83, 0xb9, 0xb0, 0xd8, 0x6e, 0x52, 0x08, 0xfa, 0x8e, 0x1e, 0x81, 0x56, 0xc9, 0xcc, 0x22, 0x42, 0x77, 0x5a, 0xbb, 0x7e, 0x15, 0xaf, 0x30, 0x85, 0x86, 0x8e, 0xf4, 0x57, 0x63, 0x4e, 0x99, 0x26, 0xc4, 0x04, 0xec, 0xf3, 0x0f, };
17987 static const ec_test_case ed25519_782_test_case = {
17988 	.name = "EDDSA25519-SHA512/wei25519 782",
17989 	.ec_str_p = &wei25519_str_params,
17990 	.priv_key = ed25519_782_test_vectors_priv_key,
17991 	.priv_key_len = sizeof(ed25519_782_test_vectors_priv_key),
17992 	.nn_random = NULL,
17993 	.hash_type = SHA512,
17994 	.msg = (const char *)ed25519_782_test_vectors_message,
17995 	.msglen = sizeof(ed25519_782_test_vectors_message),
17996 	.sig_type = EDDSA25519,
17997 	.exp_sig = ed25519_782_test_vectors_expected_sig,
17998 	.exp_siglen = sizeof(ed25519_782_test_vectors_expected_sig),
17999 	.adata = NULL,
18000 	.adata_len = 0
18001 };
18002 
18003 /************************************************/
18004 static const u8 ed25519_783_test_vectors_priv_key[] = {
18005 	0x4e, 0xc6, 0x82, 0x9b, 0x43, 0x99, 0x70, 0x56, 0xd9, 0x96, 0x85, 0x38, 0x9b, 0xd5, 0x3c, 0x52, 0x8d, 0xe7, 0xe5, 0xff, 0x27, 0x15, 0xd6, 0x5c, 0x95, 0x66, 0x19, 0x82, 0x6e, 0x3f, 0xb5, 0xb5, };
18006 static const u8 ed25519_783_test_vectors_message[] = {
18007 	0xed, 0x26, 0xb4, 0x13, 0x0d, 0x4e, 0xbf, 0x3f, 0x38, 0x61, 0x49, 0x1a, 0xa3, 0xdd, 0x96, 0xa4, 0xeb, 0x69, 0x75, 0x21, 0x73, 0xfa, 0x6c, 0x84, 0xca, 0x65, 0xdf, 0xc9, 0x91, 0xc7, 0xfe, 0x44, 0xe0, 0x2b, 0xd6, 0x16, 0x50, 0x25, 0x2a, 0x1d, 0x23, 0x78, 0x66, 0x82, 0xec, 0x38, 0xc1, 0xfe, 0xe8, 0x2c, 0xc3, 0x50, 0xdb, 0x7c, 0x3c, 0x39, 0x49, 0xa1, 0xc9, 0x35, 0xff, 0xeb, 0xd7, 0xba, 0xa2, 0x4f, 0x35, 0xa3, 0x93, 0xfb, 0xd2, 0x7e, 0x7c, 0x34, 0xc2, 0xf9, 0xff, 0xda, 0x60, 0xa1, 0x8d, 0xf6, 0x6c, 0x3e, 0x46, 0x5d, 0x90, 0xed, 0x48, 0xfb, 0xba, 0xd3, 0xfa, 0x79, 0x47, 0xde, 0xe7, 0xe6, 0x59, 0xa3, 0xee, 0xad, 0xb8, 0x87, 0xf0, 0x96, 0x3f, 0x6b, 0xdd, 0x76, 0xc3, 0x6c, 0x11, 0xae, 0x46, 0xd0, 0x88, 0xee, 0x50, 0xbc, 0xa8, 0x18, 0x7a, 0x0a, 0x88, 0x32, 0xdb, 0x79, 0x84, 0xb7, 0xe2, 0x7c, 0xbe, 0x6a, 0xbf, 0x12, 0xd2, 0xc9, 0x4f, 0x33, 0x7e, 0xc7, 0x8c, 0xb3, 0x8b, 0x26, 0x24, 0x1b, 0xd1, 0xa3, 0xd2, 0xf5, 0xfa, 0x44, 0x07, 0xfd, 0xd8, 0x02, 0x27, 0xd2, 0xb1, 0x70, 0x14, 0x4b, 0x41, 0x59, 0x78, 0xe3, 0x72, 0x01, 0xd0, 0xfc, 0xf4, 0x31, 0x74, 0xb9, 0xd7, 0xb2, 0x11, 0x5d, 0x5e, 0xb8, 0xbc, 0xec, 0x27, 0x6a, 0x77, 0x5a, 0xea, 0x93, 0xf2, 0x34, 0x0d, 0x44, 0x25, 0xd3, 0x4d, 0x20, 0x47, 0x49, 0x4d, 0x91, 0x7e, 0x0d, 0xbe, 0x37, 0x85, 0x7e, 0x6c, 0x99, 0x85, 0x9b, 0x71, 0xc9, 0x14, 0xaa, 0xd5, 0xe5, 0x4f, 0x7b, 0x2b, 0x03, 0x3e, 0x59, 0x4e, 0x27, 0x2c, 0xc5, 0xcf, 0xe9, 0x19, 0xf8, 0x88, 0xe5, 0x5c, 0xb6, 0x15, 0x7a, 0xff, 0xcf, 0x35, 0x72, 0x46, 0xd0, 0x0b, 0x53, 0x2c, 0xc4, 0x71, 0xb9, 0x2e, 0xae, 0x0e, 0xf7, 0xf1, 0xe9, 0x15, 0x94, 0x4c, 0x65, 0x27, 0x93, 0x15, 0x72, 0x98, 0x53, 0xda, 0x57, 0x2c, 0x80, 0x9a, 0xa0, 0x9d, 0x40, 0x36, 0x5f, 0x90, 0x87, 0x5a, 0x50, 0xd3, 0x1c, 0xa3, 0x90, 0x0d, 0xa7, 0x70, 0x47, 0xc9, 0x57, 0xc8, 0xf8, 0xbf, 0x20, 0xec, 0x86, 0xbd, 0x56, 0xf9, 0xa9, 0x54, 0xd9, 0x98, 0x8e, 0x20, 0x6b, 0x44, 0x4c, 0xa5, 0xa4, 0x43, 0x45, 0x21, 0xbf, 0xc9, 0xc5, 0xf3, 0xa8, 0xa0, 0x61, 0x47, 0xeb, 0x07, 0xd1, 0x1d, 0xfe, 0x11, 0x71, 0xec, 0x31, 0xff, 0x55, 0x77, 0x15, 0x88, 0xb3, 0x33, 0xee, 0xe6, 0x21, 0x5d, 0x21, 0x6c, 0x47, 0xa8, 0x56, 0x6f, 0xbb, 0x2b, 0x18, 0x97, 0x46, 0x46, 0xac, 0x5a, 0x92, 0xc6, 0x99, 0xd7, 0x75, 0x84, 0xc0, 0xde, 0xfe, 0xfd, 0x2d, 0xfa, 0x58, 0xfc, 0xa2, 0x71, 0x99, 0xe4, 0x1e, 0xc5, 0x8a, 0x24, 0x63, 0x20, 0xb3, 0x5f, 0xaa, 0xb7, 0x5b, 0x97, 0x95, 0x19, 0x24, 0x22, 0x6d, 0xa4, 0xab, 0x28, 0xf0, 0x1b, 0x47, 0x07, 0x8e, 0x71, 0x2e, 0x4f, 0xd9, 0xf7, 0x7b, 0x25, 0x1c, 0x96, 0x67, 0x85, 0x8c, 0x28, 0xe3, 0x2e, 0xf1, 0xcd, 0x01, 0xfc, 0xbe, 0x43, 0x5c, 0x54, 0x2d, 0xba, 0xd0, 0xa8, 0x4a, 0x13, 0xcd, 0xbb, 0x57, 0x75, 0xe6, 0x2d, 0x81, 0x1d, 0xc6, 0x90, 0xd9, 0x55, 0x5c, 0x37, 0xf1, 0x5f, 0x91, 0x76, 0x7a, 0x56, 0x13, 0x57, 0xdf, 0x10, 0x6e, 0xef, 0xe0, 0x56, 0xe7, 0x36, 0x06, 0x70, 0x65, 0x0f, 0xb8, 0x18, 0xfc, 0x6a, 0xdc, 0x59, 0x97, 0x3e, 0x9a, 0xd5, 0xcd, 0xcd, 0x80, 0x98, 0x07, 0xab, 0x56, 0x39, 0x7f, 0x3c, 0x13, 0x94, 0x87, 0x32, 0xd9, 0x8d, 0x67, 0x6f, 0x4a, 0x44, 0x70, 0xa9, 0x5d, 0x8b, 0x51, 0x82, 0x37, 0xe2, 0x26, 0xf0, 0xcc, 0x5f, 0x47, 0x65, 0x16, 0x4a, 0x5c, 0x3e, 0xf0, 0x50, 0x71, 0x4b, 0xe0, 0x2a, 0x12, 0x6b, 0xe8, 0xf6, 0x65, 0x46, 0x48, 0x15, 0x81, 0xb9, 0xe9, 0x4a, 0x26, 0xaa, 0xd2, 0x4c, 0x69, 0x3b, 0x7f, 0xdb, 0xc1, 0x8a, 0xcd, 0x3e, 0xd7, 0xcf, 0xc4, 0x7d, 0x8a, 0xb2, 0x67, 0x45, 0xd7, 0x8e, 0x70, 0x1d, 0x0c, 0xf0, 0x5d, 0xd8, 0x44, 0xb5, 0xb3, 0x45, 0xa2, 0x9d, 0xab, 0x68, 0x4c, 0xbc, 0x50, 0x92, 0xba, 0x02, 0x2e, 0x3c, 0x58, 0x2d, 0xfc, 0x04, 0x4c, 0x31, 0x00, 0xad, 0x02, 0x75, 0x66, 0x97, 0xa8, 0x49, 0x82, 0x29, 0x15, 0xa1, 0x6e, 0x2a, 0x2b, 0x81, 0x0e, 0x68, 0x15, 0xf5, 0x44, 0x21, 0xd2, 0xf3, 0xa6, 0xff, 0xf5, 0x88, 0xc0, 0xd9, 0x01, 0x3c, 0x76, 0xf3, 0x3e, 0x09, 0xbe, 0xae, 0xef, 0x60, 0xd8, 0x77, 0x42, 0x30, 0xe8, 0xce, 0x71, 0x31, 0x28, 0x9a, 0xef, 0x2a, 0x40, 0x68, 0x6c, 0x81, 0x9f, 0xb2, 0x04, 0x0b, 0x06, 0x12, 0x4d, 0x3d, 0x9a, 0xa4, 0x19, 0xd5, 0x67, 0x88, 0xf1, 0x7f, 0xa7, 0xed, 0x9b, 0x9b, 0x57, 0xce, 0xaa, 0xd1, 0x33, 0x7a, 0x01, 0x01, 0xbe, 0xa0, 0x44, 0x0c, 0xff, 0x74, 0x5d, 0xdd, 0x97, 0x22, 0x05, 0x5d, 0x1f, 0x9b, 0xcf, 0xb0, 0x09, 0xce, 0x2c, 0x2f, 0x41, 0xa9, 0xe7, 0xe8, 0x68, 0x06, 0xb8, 0x72, 0xcd, 0xc2, 0x05, 0x9b, 0xc8, 0xec, 0x68, 0xf5, 0xee, 0x56, 0xc4, 0xba, 0xcf, 0x4b, 0xbd, 0x30, 0xea, 0x4c, 0x71, 0x55, 0x86, 0x4d, 0x60, 0x0c, 0x0e, 0x2e, 0xee, 0x73, 0xb3, 0x19, 0xbd, 0xa4, 0x37, 0x2e, 0x9c, 0x60, 0x3c, 0x77, 0x2c, 0x25, 0x89, 0x0c, 0x76, 0x10, 0x48, 0x99, 0x89, 0x47, 0x5d, 0x37, 0xa7, 0x7a, 0x45, 0x74, 0xa2, 0xba, 0x55, 0xbf, 0xd9, 0xc9, 0xcf, 0xd1, 0x46, 0xfb, 0x97, 0xe6, 0x16, 0x5d, 0xcc, 0x19, 0x55, 0x9f, 0x4f, 0x85, 0xdf, 0xca, 0x2f, 0x97, 0xf3, 0x70, 0x2e, 0xd8, 0xfa, 0x6b, 0x3c, 0x2a, 0x97, 0x41, 0x97, 0x4a, 0xa0, 0x7a, 0xb6, };
18008 static const u8 ed25519_783_test_vectors_expected_sig[] = {
18009 	0x15, 0x9c, 0xa4, 0x04, 0xf7, 0xf7, 0x41, 0x17, 0xc5, 0x16, 0x3c, 0xf4, 0x04, 0x11, 0x09, 0x49, 0xeb, 0x57, 0xae, 0x2d, 0x76, 0x62, 0xb1, 0xff, 0x41, 0x78, 0xcc, 0x67, 0x56, 0xe9, 0x0a, 0xda, 0xea, 0xb7, 0x1b, 0x06, 0x4c, 0xe1, 0xdf, 0xf4, 0x57, 0xb2, 0xdb, 0xa7, 0xe2, 0xdc, 0x13, 0xc2, 0x17, 0xbc, 0xae, 0x8a, 0x61, 0xfc, 0xf8, 0xce, 0x14, 0x87, 0xa6, 0x49, 0xc2, 0x57, 0xff, 0x07, };
18010 static const ec_test_case ed25519_783_test_case = {
18011 	.name = "EDDSA25519-SHA512/wei25519 783",
18012 	.ec_str_p = &wei25519_str_params,
18013 	.priv_key = ed25519_783_test_vectors_priv_key,
18014 	.priv_key_len = sizeof(ed25519_783_test_vectors_priv_key),
18015 	.nn_random = NULL,
18016 	.hash_type = SHA512,
18017 	.msg = (const char *)ed25519_783_test_vectors_message,
18018 	.msglen = sizeof(ed25519_783_test_vectors_message),
18019 	.sig_type = EDDSA25519,
18020 	.exp_sig = ed25519_783_test_vectors_expected_sig,
18021 	.exp_siglen = sizeof(ed25519_783_test_vectors_expected_sig),
18022 	.adata = NULL,
18023 	.adata_len = 0
18024 };
18025 
18026 /************************************************/
18027 static const u8 ed25519_784_test_vectors_priv_key[] = {
18028 	0xb1, 0x50, 0xa7, 0x89, 0x29, 0xed, 0x1e, 0xb9, 0x32, 0x69, 0x21, 0x3e, 0x1e, 0xbc, 0x22, 0xe2, 0xe4, 0x0a, 0x60, 0x1b, 0xdb, 0x00, 0x54, 0x99, 0xb7, 0xbe, 0xb0, 0x58, 0x91, 0x7c, 0x53, 0x40, };
18029 static const u8 ed25519_784_test_vectors_message[] = {
18030 	0x1b, 0xf5, 0x5d, 0x27, 0xf9, 0xdd, 0xe6, 0xc4, 0xf1, 0xc0, 0xdd, 0xd3, 0x60, 0xa2, 0x5d, 0x94, 0x93, 0xc0, 0xff, 0xdc, 0xa7, 0x4a, 0x7e, 0xd5, 0xe5, 0xa5, 0x14, 0xe9, 0x55, 0x15, 0xcd, 0xa4, 0xaa, 0xd8, 0xf4, 0x5c, 0xd6, 0xed, 0x79, 0x01, 0xf8, 0xf2, 0x24, 0xa6, 0x3b, 0x38, 0x12, 0x1c, 0xbe, 0xac, 0x2f, 0x56, 0xda, 0xe2, 0x10, 0xdd, 0x05, 0x37, 0x50, 0xcb, 0x20, 0x75, 0x14, 0xa8, 0x89, 0x1e, 0x24, 0x5a, 0x5d, 0x07, 0xe7, 0xde, 0x78, 0xa2, 0xe3, 0x81, 0x44, 0x63, 0xf1, 0x48, 0xd2, 0xac, 0xb7, 0xdc, 0x71, 0xf9, 0x95, 0xc9, 0x29, 0x9a, 0xd0, 0xd6, 0x26, 0x6c, 0xfe, 0xfc, 0x94, 0x26, 0x96, 0x57, 0xfd, 0x47, 0xcf, 0x53, 0x12, 0xb9, 0x2a, 0xf2, 0x75, 0x06, 0x51, 0xc4, 0x79, 0x63, 0x6c, 0x9d, 0x36, 0xae, 0xf0, 0x8f, 0x7d, 0x11, 0x95, 0xe7, 0xfa, 0x1b, 0xa3, 0xab, 0xb5, 0xdc, 0xb9, 0x01, 0x36, 0xb0, 0xfb, 0x9a, 0x37, 0x66, 0x8b, 0x87, 0xa2, 0xdb, 0x88, 0xd1, 0xe2, 0xb6, 0x44, 0x0d, 0x3e, 0x6e, 0x60, 0x1e, 0x6d, 0x4b, 0xc1, 0x0c, 0xf1, 0xcb, 0xdf, 0x1d, 0x61, 0x69, 0xc0, 0xdc, 0x2c, 0x4a, 0xec, 0xde, 0xb6, 0xcd, 0xd4, 0x56, 0x7d, 0x42, 0x50, 0xb2, 0xaf, 0xa7, 0x15, 0xb1, 0x66, 0xc9, 0x46, 0x7f, 0x90, 0x7d, 0x3f, 0xa5, 0xa6, 0xda, 0xf2, 0x00, 0xb3, 0x09, 0xc1, 0x09, 0x37, 0x68, 0x30, 0x49, 0x9c, 0xaf, 0x31, 0x49, 0x00, 0x1c, 0xf3, 0x33, 0x94, 0x48, 0xca, 0x3d, 0x76, 0x52, 0x25, 0xd6, 0xb3, 0xc1, 0xcd, 0x26, 0x7c, 0xba, 0x93, 0x6e, 0x7a, 0xa4, 0x83, 0x25, 0x39, 0x46, 0x6f, 0xd2, 0x0c, 0xbb, 0x38, 0x32, 0x3c, 0xbb, 0x22, 0x28, 0xa2, 0x71, 0xf2, 0xd2, 0x82, 0x56, 0x1c, 0x73, 0xed, 0x79, 0xa1, 0xad, 0x04, 0x69, 0x8e, 0x27, 0xef, 0xe3, 0x93, 0x23, 0x5f, 0x34, 0x56, 0xc2, 0x95, 0x40, 0x7d, 0xa0, 0x96, 0x0f, 0x00, 0x34, 0xd8, 0xde, 0xef, 0xd1, 0xc1, 0x85, 0x73, 0x6f, 0xd3, 0xea, 0xf1, 0xf9, 0xa1, 0xe3, 0x2f, 0x09, 0x17, 0x4c, 0x1f, 0xe1, 0x27, 0x20, 0xb7, 0xc9, 0x6f, 0xeb, 0xdb, 0x33, 0xe0, 0x1b, 0x1b, 0x6a, 0x1c, 0x63, 0x71, 0x50, 0x19, 0x4b, 0xe4, 0xff, 0xab, 0x15, 0x9e, 0x45, 0xb2, 0x45, 0x85, 0x57, 0x68, 0x46, 0xbb, 0x64, 0x27, 0x4e, 0xca, 0x7b, 0x39, 0xa3, 0xed, 0x93, 0x57, 0xde, 0x7b, 0x08, 0x42, 0x13, 0x02, 0x4a, 0x9e, 0x85, 0x89, 0x26, 0x36, 0x00, 0xa2, 0x86, 0x7c, 0x2a, 0x7c, 0xf8, 0xb9, 0x90, 0x76, 0xa1, 0x2a, 0x07, 0xbd, 0x7d, 0xf8, 0xd5, 0x27, 0x7b, 0xb0, 0x4a, 0xd7, 0x2e, 0x63, 0x9b, 0x77, 0xea, 0xca, 0x1e, 0xc5, 0x8e, 0xf9, 0x63, 0x7e, 0x9a, 0x23, 0x76, 0xba, 0x87, 0x8a, 0x45, 0x72, 0x35, 0xa0, 0x6f, 0x78, 0xfd, 0xf0, 0xe0, 0xd9, 0x25, 0xcb, 0x2f, 0xd2, 0xa3, 0x8c, 0x77, 0x18, 0x8f, 0x60, 0x37, 0x2e, 0xf6, 0x00, 0x97, 0x92, 0x42, 0x43, 0x99, 0xc9, 0xb6, 0x79, 0x28, 0xda, 0x2e, 0x3b, 0xa9, 0x1c, 0xbd, 0xe4, 0x07, 0xe7, 0xe8, 0x76, 0xba, 0x98, 0x13, 0x9e, 0xd2, 0x2c, 0xa3, 0xb9, 0x83, 0xbe, 0xde, 0x00, 0x00, 0x52, 0x87, 0x96, 0x44, 0x8e, 0x4a, 0x10, 0x55, 0xac, 0xb2, 0xde, 0xaa, 0x56, 0xbc, 0x30, 0x82, 0x54, 0xc5, 0xbd, 0x49, 0x8c, 0x27, 0x5e, 0xce, 0xdc, 0x13, 0x57, 0xef, 0xe1, 0xfd, 0xa0, 0x1d, 0x34, 0xd9, 0x16, 0xdd, 0x4d, 0x86, 0x47, 0xe5, 0x77, 0x19, 0x95, 0xa6, 0x53, 0xe0, 0xf8, 0xa5, 0x28, 0x4c, 0xc7, 0xbf, 0x73, 0x15, 0x7b, 0x33, 0x49, 0xd5, 0x9e, 0x6f, 0x92, 0x0c, 0xad, 0x6c, 0xdd, 0x17, 0x19, 0xf0, 0x38, 0x02, 0x5c, 0x43, 0x00, 0xe0, 0x21, 0x0c, 0xe2, 0x49, 0xfa, 0xf3, 0xc8, 0x2d, 0xe1, 0xfd, 0x1c, 0xda, 0xbe, 0x61, 0xc1, 0x4e, 0xcb, 0x1d, 0xf0, 0x0c, 0x5c, 0x46, 0x6a, 0xa6, 0xa0, 0x12, 0xa9, 0xc1, 0x0d, 0xcf, 0xe5, 0x9b, 0x7e, 0x9d, 0x3b, 0x15, 0x5d, 0xab, 0x6c, 0x7b, 0x7c, 0x16, 0x08, 0xc1, 0xed, 0xd5, 0x1d, 0xbd, 0xad, 0xf6, 0xba, 0x58, 0x76, 0xb5, 0xe6, 0x0f, 0xdf, 0x7f, 0x19, 0xe6, 0xef, 0x71, 0x2c, 0xd1, 0xa7, 0xdd, 0x3a, 0x06, 0x2a, 0x65, 0x74, 0xa7, 0x43, 0x6b, 0x31, 0x9e, 0xfb, 0x94, 0x4e, 0x42, 0x23, 0xf5, 0x42, 0xb2, 0x50, 0x2c, 0x1b, 0xa9, 0x76, 0xbe, 0x91, 0xe0, 0x5b, 0x0f, 0x85, 0xa0, 0x9f, 0xd7, 0x93, 0xbe, 0xca, 0x88, 0x33, 0x75, 0xfb, 0x67, 0xcd, 0x13, 0x3f, 0x52, 0x84, 0xd8, 0x99, 0x84, 0xff, 0x3c, 0xaf, 0xa7, 0xe1, 0x1a, 0x9d, 0x85, 0xe7, 0x89, 0x32, 0x32, 0xa5, 0x24, 0xec, 0x54, 0xb2, 0x0f, 0x97, 0x5d, 0x3c, 0x0a, 0x11, 0x43, 0xa0, 0xef, 0x41, 0x17, 0x6b, 0x70, 0x51, 0xea, 0x91, 0xd4, 0x0c, 0x5f, 0x44, 0xfd, 0x9e, 0x10, 0x05, 0x58, 0xbf, 0x12, 0x12, 0xa7, 0xb8, 0x91, 0xe6, 0x8b, 0x55, 0xca, 0x61, 0xf4, 0xbe, 0x94, 0x52, 0x66, 0xd9, 0xa1, 0x00, 0x7a, 0x14, 0xaa, 0xeb, 0x68, 0xc4, 0x8e, 0x25, 0x7f, 0x0f, 0x46, 0x31, 0x0a, 0xd1, 0x64, 0x81, 0x46, 0x7e, 0xc1, 0x77, 0x35, 0x35, 0xd5, 0xfc, 0x08, 0x49, 0x15, 0xf5, 0xd0, 0x04, 0xba, 0x0d, 0xc7, 0x59, 0x1d, 0x21, 0x23, 0xc6, 0x22, 0x07, 0x90, 0x9d, 0x84, 0xf2, 0xb3, 0x82, 0xf5, 0xef, 0x12, 0x75, 0x9a, 0x95, 0xcd, 0x3f, 0x51, 0x89, 0x80, 0x6e, 0x27, 0x39, 0x60, 0xae, 0xe1, 0x62, 0xc0, 0x0f, 0x73, 0xe7, 0xfa, 0x59, 0x36, 0x39, 0x57, 0x65, 0x4b, 0xb1, 0x91, 0x6b, 0x57, 0x09, 0xbb, 0x0a, 0x9d, 0x04, 0x05, 0x14, 0xae, 0x52, 0x84, 0x95, 0x1e, 0x6b, };
18031 static const u8 ed25519_784_test_vectors_expected_sig[] = {
18032 	0x27, 0x6d, 0xd0, 0x96, 0x2e, 0x6e, 0xe6, 0x4f, 0x05, 0x92, 0x44, 0x1a, 0x8a, 0xf0, 0xe5, 0xef, 0x8f, 0x93, 0xbf, 0x0b, 0xae, 0xba, 0x20, 0x50, 0x4b, 0x9d, 0xb4, 0xf9, 0x5a, 0x00, 0xb9, 0x39, 0xea, 0x38, 0xde, 0xf1, 0xc7, 0x97, 0x86, 0x28, 0x98, 0xca, 0xbe, 0x9d, 0xc4, 0x64, 0x4f, 0x0e, 0x67, 0x7e, 0x87, 0xc0, 0xa3, 0x3b, 0x87, 0xb6, 0xa4, 0xd2, 0x2a, 0x80, 0x7d, 0x0e, 0x1e, 0x02, };
18033 static const ec_test_case ed25519_784_test_case = {
18034 	.name = "EDDSA25519-SHA512/wei25519 784",
18035 	.ec_str_p = &wei25519_str_params,
18036 	.priv_key = ed25519_784_test_vectors_priv_key,
18037 	.priv_key_len = sizeof(ed25519_784_test_vectors_priv_key),
18038 	.nn_random = NULL,
18039 	.hash_type = SHA512,
18040 	.msg = (const char *)ed25519_784_test_vectors_message,
18041 	.msglen = sizeof(ed25519_784_test_vectors_message),
18042 	.sig_type = EDDSA25519,
18043 	.exp_sig = ed25519_784_test_vectors_expected_sig,
18044 	.exp_siglen = sizeof(ed25519_784_test_vectors_expected_sig),
18045 	.adata = NULL,
18046 	.adata_len = 0
18047 };
18048 
18049 /************************************************/
18050 static const u8 ed25519_785_test_vectors_priv_key[] = {
18051 	0x9f, 0xc7, 0xc4, 0x9c, 0xb8, 0xc4, 0xf0, 0x97, 0x2d, 0x6e, 0xd9, 0x70, 0xae, 0x2c, 0x6a, 0xc3, 0x37, 0xe6, 0x75, 0x42, 0x5c, 0xc8, 0xdc, 0xe7, 0x30, 0xfc, 0x41, 0x44, 0x43, 0x02, 0x93, 0x5d, };
18052 static const u8 ed25519_785_test_vectors_message[] = {
18053 	0x82, 0xbc, 0x2c, 0x70, 0x0d, 0xb2, 0x22, 0xa4, 0xac, 0x91, 0x4a, 0xa2, 0xbe, 0x8f, 0xa2, 0x8e, 0x42, 0x20, 0x67, 0xf9, 0x4f, 0x33, 0x44, 0xf5, 0x36, 0x2b, 0xeb, 0xaa, 0xbe, 0xd7, 0x61, 0x2b, 0x0e, 0x46, 0x4a, 0x73, 0xa6, 0xc4, 0x56, 0x90, 0x35, 0x64, 0xb1, 0x53, 0x93, 0x48, 0x51, 0x40, 0xdd, 0x0f, 0x3a, 0xff, 0x90, 0xaa, 0x6e, 0x16, 0x61, 0xdd, 0xf6, 0x82, 0x85, 0x0d, 0x04, 0x90, 0xaf, 0xc3, 0xd7, 0x35, 0xde, 0xa0, 0x5b, 0xa4, 0x7c, 0x85, 0xd9, 0x7e, 0x83, 0x35, 0x33, 0x51, 0x4c, 0x19, 0x8b, 0x4c, 0xf6, 0xe6, 0x6d, 0x36, 0x0e, 0xe5, 0xbf, 0x00, 0xe1, 0x4a, 0x3a, 0xab, 0x1a, 0xd0, 0xe7, 0xb8, 0xab, 0x2a, 0xac, 0xc9, 0x64, 0xd4, 0x28, 0x30, 0xc7, 0x84, 0x53, 0xdf, 0x19, 0x55, 0xbb, 0xed, 0x1c, 0xd6, 0x8a, 0xda, 0x3d, 0xb0, 0xec, 0xdb, 0x60, 0x1a, 0xd7, 0x66, 0x7d, 0x5c, 0x5e, 0x2f, 0xd4, 0x9e, 0x36, 0xf7, 0x32, 0x8e, 0xaa, 0x33, 0x7d, 0xbd, 0x6f, 0xf7, 0x0e, 0x78, 0x98, 0xa3, 0xf9, 0x8c, 0x15, 0x9d, 0x04, 0x5a, 0x24, 0x27, 0xad, 0xe5, 0x33, 0x3c, 0x88, 0xfc, 0x4a, 0xfd, 0x38, 0x19, 0xdc, 0x82, 0xf4, 0xda, 0xa3, 0xc5, 0x23, 0xcb, 0x57, 0xe3, 0x5a, 0x2a, 0x5a, 0x72, 0x5d, 0x63, 0xd4, 0x02, 0xba, 0xef, 0x51, 0xe5, 0x1f, 0x1e, 0xf4, 0xf8, 0xf9, 0xa5, 0x95, 0xc9, 0x37, 0x9c, 0x9a, 0xba, 0x87, 0x3f, 0xb4, 0xe7, 0x65, 0xa9, 0x31, 0xda, 0x09, 0x14, 0x8a, 0xba, 0x6e, 0xc5, 0xb4, 0x48, 0x59, 0xb0, 0xe8, 0x1f, 0xf9, 0xfc, 0x22, 0x95, 0x98, 0xac, 0x9f, 0xbd, 0xb0, 0xbd, 0xbd, 0xdb, 0x56, 0x92, 0xa5, 0x22, 0x22, 0xdf, 0x52, 0xea, 0x38, 0x7b, 0xbb, 0xf3, 0x6a, 0xd6, 0x4d, 0x19, 0x46, 0xbd, 0x28, 0x2e, 0x32, 0x3f, 0xf4, 0x82, 0x2a, 0xd9, 0xda, 0x89, 0x7f, 0xf7, 0x3f, 0x01, 0xb3, 0x90, 0xcf, 0xe2, 0xe6, 0x4d, 0xe4, 0x92, 0xd5, 0x5d, 0xe7, 0x7f, 0x5d, 0x7d, 0x00, 0x60, 0xa6, 0x87, 0x2a, 0x01, 0x83, 0xcc, 0xba, 0x61, 0x0f, 0x53, 0x27, 0x4c, 0xcb, 0x29, 0xce, 0x6d, 0xce, 0x6a, 0x03, 0x6c, 0x53, 0x17, 0xa1, 0xed, 0x2a, 0x7c, 0x10, 0x68, 0xc1, 0xb2, 0x46, 0xfc, 0x1d, 0x58, 0x81, 0xd0, 0x0d, 0xe0, 0x6e, 0xb4, 0x01, 0xcf, 0xf9, 0x5e, 0x6b, 0x69, 0x14, 0x86, 0x99, 0xdb, 0x13, 0xe9, 0x4b, 0xb5, 0xb2, 0x80, 0x21, 0x2d, 0xff, 0x54, 0xc7, 0x0e, 0x56, 0xde, 0x23, 0x5a, 0x5f, 0x14, 0x00, 0xb5, 0xbe, 0xa5, 0x67, 0x72, 0xd0, 0x60, 0x17, 0x0f, 0x1d, 0x06, 0x57, 0x32, 0x15, 0x61, 0xe4, 0xb4, 0x91, 0x07, 0xeb, 0x96, 0xd9, 0xb3, 0xbc, 0x5a, 0xdf, 0x45, 0x1c, 0x2a, 0x52, 0x4e, 0xba, 0x4d, 0xb0, 0x03, 0xb7, 0x7b, 0x63, 0x2a, 0x5d, 0x89, 0x82, 0x7a, 0x62, 0x24, 0xcc, 0x79, 0x8e, 0x09, 0x6b, 0xa2, 0x7f, 0xb3, 0x3b, 0xf6, 0x1e, 0x3b, 0x8e, 0xaf, 0x18, 0xd0, 0x01, 0xae, 0x8e, 0xb5, 0x2f, 0x85, 0xc9, 0x0d, 0x9e, 0x12, 0x54, 0x48, 0x03, 0xe6, 0x7f, 0xf0, 0x20, 0x47, 0xe0, 0xd2, 0x3c, 0x22, 0xe7, 0xf8, 0xb9, 0x80, 0xc0, 0x1c, 0x3d, 0x48, 0x24, 0xb2, 0xa9, 0xa1, 0x4a, 0x2e, 0x8f, 0x67, 0x2a, 0x7b, 0x0c, 0xe0, 0x3b, 0xdb, 0xb3, 0xbd, 0x56, 0xd7, 0x54, 0xa0, 0x96, 0x4d, 0xb0, 0x1c, 0xa8, 0x99, 0xd4, 0x88, 0x00, 0x15, 0x08, 0x65, 0x7b, 0x7b, 0x02, 0x2c, 0xcf, 0x04, 0x2c, 0x38, 0xfc, 0x19, 0x49, 0xd0, 0xe0, 0x0a, 0xf4, 0xd3, 0x01, 0xd4, 0xf0, 0x0c, 0x3d, 0xea, 0x20, 0xe3, 0x08, 0xa0, 0xf9, 0xdc, 0xac, 0xb4, 0x32, 0x22, 0xb3, 0x82, 0x41, 0x44, 0xaf, 0x77, 0xbe, 0x18, 0xa5, 0x04, 0xaa, 0x8d, 0x26, 0x8b, 0x8a, 0x56, 0x00, 0x72, 0x5e, 0x7c, 0xc5, 0xf3, 0xa2, 0xe6, 0x25, 0x6a, 0x80, 0x74, 0xd1, 0xae, 0xbc, 0xa1, 0x23, 0xea, 0x53, 0xa0, 0x76, 0x7a, 0x92, 0xe1, 0x78, 0x3a, 0x49, 0x83, 0xc5, 0xef, 0x3d, 0x7d, 0xd7, 0xf0, 0x2a, 0xa9, 0xd1, 0xf4, 0xf9, 0xaa, 0xc6, 0xce, 0x25, 0x45, 0x93, 0xf0, 0x87, 0x92, 0x01, 0x4f, 0xb8, 0x67, 0xea, 0xf8, 0x79, 0xb8, 0x8a, 0x4e, 0xfb, 0x18, 0xe8, 0x9b, 0xa1, 0x10, 0x06, 0xad, 0x09, 0xd8, 0x54, 0x31, 0xcc, 0x26, 0x57, 0x5b, 0x53, 0x8d, 0x8e, 0x78, 0x90, 0x64, 0x6c, 0x59, 0x88, 0x64, 0x7c, 0xc1, 0x05, 0xd5, 0x82, 0x90, 0x7a, 0xe6, 0x25, 0xe0, 0x9c, 0xd0, 0x89, 0xf4, 0x72, 0x49, 0xe8, 0x18, 0x14, 0xda, 0x14, 0x04, 0x4c, 0x70, 0x14, 0xe8, 0x0e, 0x7a, 0x8e, 0x61, 0x9c, 0x7b, 0x73, 0x5f, 0x70, 0x16, 0x16, 0xb6, 0xa3, 0xc6, 0xf4, 0x92, 0xcd, 0xc6, 0xed, 0x46, 0x3e, 0x71, 0xa3, 0xd2, 0x22, 0x91, 0x48, 0x2d, 0x90, 0xa1, 0xde, 0x6f, 0x09, 0x7c, 0x4a, 0xe2, 0x54, 0x87, 0x61, 0x84, 0xc5, 0x62, 0xb1, 0x65, 0x75, 0xb9, 0xd0, 0xd1, 0x93, 0x13, 0xed, 0x98, 0x86, 0x4f, 0x49, 0xfe, 0x2e, 0x1d, 0x07, 0x4a, 0x21, 0x21, 0x1b, 0x2b, 0x2a, 0x6d, 0x27, 0xdd, 0xb2, 0x86, 0x11, 0x52, 0x0d, 0x5f, 0x71, 0x23, 0x05, 0x8f, 0xd0, 0x07, 0xbb, 0x01, 0x00, 0x1d, 0xef, 0x07, 0xb7, 0x92, 0xbb, 0x05, 0xbb, 0x74, 0x1c, 0x12, 0x9c, 0x6a, 0x36, 0x37, 0x6c, 0x38, 0x53, 0xb8, 0xbb, 0x4f, 0x66, 0xb5, 0x76, 0x0c, 0x8e, 0xb4, 0xec, 0xc7, 0x30, 0x6b, 0xa3, 0xa9, 0x0c, 0x70, 0xda, 0x47, 0xc9, 0x65, 0xf6, 0xdc, 0xcb, 0xdb, 0x61, 0xa7, 0xfd, 0xa1, 0x8e, 0xe9, 0x67, 0xcf, 0x8c, 0x5f, 0x05, 0x03, 0x11, 0x09, 0x2d, 0x0f, 0xde, 0xea, 0xed, 0xd1, 0x26, 0x5d, 0xef, 0xdd, 0x66, 0x0a, 0xbe, 0x70, };
18054 static const u8 ed25519_785_test_vectors_expected_sig[] = {
18055 	0x5c, 0x78, 0x3a, 0x86, 0x0a, 0xa6, 0x68, 0x18, 0x4d, 0xd2, 0x2c, 0x4f, 0x9a, 0x54, 0x6b, 0x5e, 0xc9, 0x6e, 0xba, 0xd2, 0xe4, 0xaf, 0x00, 0xf9, 0x68, 0xc6, 0x88, 0x67, 0x13, 0x54, 0xe0, 0xcc, 0x9b, 0x57, 0x2c, 0x73, 0xbc, 0x6f, 0x19, 0x93, 0x7a, 0x05, 0xf1, 0xba, 0xf3, 0x43, 0x47, 0x63, 0x96, 0x5c, 0x96, 0xe1, 0x03, 0x40, 0x7f, 0x0e, 0xb6, 0x42, 0xc5, 0x64, 0x41, 0x54, 0x29, 0x0b, };
18056 static const ec_test_case ed25519_785_test_case = {
18057 	.name = "EDDSA25519-SHA512/wei25519 785",
18058 	.ec_str_p = &wei25519_str_params,
18059 	.priv_key = ed25519_785_test_vectors_priv_key,
18060 	.priv_key_len = sizeof(ed25519_785_test_vectors_priv_key),
18061 	.nn_random = NULL,
18062 	.hash_type = SHA512,
18063 	.msg = (const char *)ed25519_785_test_vectors_message,
18064 	.msglen = sizeof(ed25519_785_test_vectors_message),
18065 	.sig_type = EDDSA25519,
18066 	.exp_sig = ed25519_785_test_vectors_expected_sig,
18067 	.exp_siglen = sizeof(ed25519_785_test_vectors_expected_sig),
18068 	.adata = NULL,
18069 	.adata_len = 0
18070 };
18071 
18072 /************************************************/
18073 static const u8 ed25519_786_test_vectors_priv_key[] = {
18074 	0x08, 0xbf, 0x05, 0x9b, 0x4d, 0xa9, 0xaa, 0x7f, 0xfc, 0x70, 0x2f, 0x5b, 0x23, 0x04, 0xc4, 0xf9, 0x6c, 0xa4, 0x9b, 0x7d, 0xab, 0xb6, 0xaf, 0xb4, 0x1d, 0xc9, 0x1c, 0x0f, 0x00, 0xc6, 0x5b, 0x78, };
18075 static const u8 ed25519_786_test_vectors_message[] = {
18076 	0xbd, 0x4f, 0xb2, 0x8a, 0x1d, 0xd0, 0x8b, 0x07, 0xba, 0x66, 0xe1, 0x7f, 0x0c, 0x4f, 0x21, 0x85, 0x3f, 0xef, 0xef, 0x1c, 0x9d, 0x20, 0xba, 0x79, 0x77, 0xf1, 0x54, 0x64, 0x1e, 0xa1, 0xa1, 0x8b, 0xec, 0xf6, 0xbb, 0xb8, 0x03, 0x88, 0x88, 0x62, 0x94, 0xe0, 0x75, 0x6a, 0x3c, 0x50, 0x8f, 0xfd, 0xfe, 0x90, 0xb5, 0x1e, 0x13, 0x56, 0xd1, 0x12, 0xd8, 0xcd, 0xe5, 0xee, 0x2c, 0xc6, 0x33, 0x2e, 0x61, 0xd1, 0x69, 0xcc, 0xc8, 0xcc, 0x93, 0x49, 0x94, 0xf1, 0xbb, 0x56, 0x0f, 0xa4, 0x66, 0x0c, 0x0b, 0x0f, 0xd4, 0xe8, 0x14, 0x9a, 0x22, 0x5e, 0xd4, 0x88, 0x3e, 0x68, 0xfb, 0xb6, 0x9d, 0xa7, 0xaf, 0x8a, 0x52, 0x4b, 0x17, 0x14, 0x1c, 0xcb, 0x76, 0xb5, 0x0c, 0xd8, 0xe1, 0xb6, 0x7d, 0x3c, 0xe0, 0x37, 0xde, 0xd7, 0xdf, 0xa5, 0x9b, 0xc7, 0xc2, 0x67, 0x42, 0x26, 0xec, 0x7e, 0x07, 0xb7, 0x8e, 0xa3, 0xf7, 0x82, 0xfd, 0xa3, 0xe5, 0xf1, 0xe9, 0xca, 0xea, 0xb6, 0x08, 0xca, 0x38, 0x7c, 0x30, 0x46, 0x54, 0xf8, 0x01, 0xd0, 0x0e, 0x10, 0xa7, 0xc2, 0x9f, 0x4b, 0x0d, 0xa3, 0xe5, 0xf8, 0x95, 0x13, 0xa9, 0x80, 0x37, 0x71, 0x9a, 0x1a, 0xef, 0x4c, 0x25, 0x06, 0xc1, 0x77, 0xaf, 0x54, 0x51, 0xa0, 0x07, 0x57, 0xa5, 0x9f, 0x16, 0x22, 0x9c, 0x4f, 0x44, 0x14, 0xdf, 0x51, 0x58, 0x0d, 0x48, 0x21, 0x0d, 0xab, 0xc9, 0x37, 0x73, 0x70, 0xb6, 0x06, 0x8a, 0x88, 0xe8, 0x1d, 0x3a, 0xd1, 0xbe, 0xd4, 0x98, 0x51, 0x55, 0xc3, 0x60, 0x0f, 0xf4, 0x87, 0x68, 0xb9, 0x03, 0x02, 0x2f, 0xe0, 0x2a, 0xe4, 0x80, 0xf2, 0xe6, 0x32, 0x9f, 0x0b, 0xcc, 0x91, 0xd7, 0x5f, 0x5c, 0x6a, 0x09, 0xfd, 0xf7, 0x7b, 0xde, 0x90, 0x49, 0x9f, 0x3c, 0xa3, 0x95, 0xcb, 0x20, 0x06, 0x2a, 0x09, 0x84, 0xad, 0x6a, 0x01, 0x41, 0xfd, 0x01, 0xc2, 0xd5, 0x4d, 0xfb, 0xb1, 0xee, 0x58, 0x46, 0x10, 0x64, 0x07, 0x73, 0x43, 0x9a, 0x16, 0x58, 0xd2, 0xc9, 0xf8, 0x62, 0xf1, 0x83, 0xbf, 0xef, 0xb0, 0x33, 0xa3, 0xbe, 0x27, 0x18, 0x12, 0xf1, 0x3c, 0x78, 0x70, 0x46, 0x57, 0xe7, 0xfb, 0x4f, 0x85, 0x01, 0x75, 0xfc, 0xd6, 0x3d, 0x3e, 0x44, 0x05, 0xd1, 0x92, 0x24, 0x2c, 0x21, 0xf2, 0x7c, 0x51, 0x47, 0x7f, 0x32, 0x11, 0xa9, 0xce, 0x24, 0x8e, 0x89, 0x2b, 0x42, 0xfb, 0x6d, 0x85, 0x82, 0x0f, 0x41, 0xb8, 0x97, 0x83, 0x6f, 0x20, 0xf8, 0x5a, 0x13, 0x11, 0x53, 0x4b, 0x5c, 0x40, 0x4f, 0x8b, 0x7a, 0x4a, 0x03, 0x19, 0xbc, 0x6c, 0xec, 0xaa, 0x57, 0xfe, 0x4d, 0x4f, 0x20, 0x60, 0x7c, 0x99, 0xc2, 0xdf, 0x22, 0xfa, 0x06, 0x76, 0xf9, 0x9d, 0x1b, 0xd8, 0x78, 0x86, 0xc9, 0x28, 0xc4, 0x98, 0x8c, 0x6e, 0x78, 0xc5, 0x7d, 0x75, 0x83, 0x30, 0xe6, 0x92, 0x2c, 0xbe, 0x03, 0xc1, 0x03, 0x40, 0x25, 0x3d, 0x0d, 0xd4, 0x83, 0x79, 0x2c, 0xe7, 0x5e, 0x6c, 0xd0, 0x9d, 0x12, 0xfb, 0xbb, 0x04, 0x1f, 0x02, 0x05, 0xe6, 0x5a, 0xd2, 0x5c, 0xe7, 0xc1, 0xb2, 0x4e, 0x77, 0xee, 0x8d, 0x6f, 0x91, 0x5e, 0x3b, 0xc3, 0xe1, 0x0d, 0x09, 0xfb, 0xd3, 0x87, 0xa8, 0x4b, 0xda, 0xab, 0xfd, 0x1c, 0xed, 0xb5, 0x2c, 0x0b, 0x17, 0x33, 0xb5, 0xf4, 0x70, 0x88, 0xc0, 0xd3, 0x5e, 0x0e, 0xf4, 0x58, 0xc8, 0x54, 0x14, 0xc2, 0xb0, 0x4c, 0x2d, 0x29, 0xf6, 0x3f, 0x77, 0x58, 0x61, 0x31, 0xee, 0x65, 0x53, 0x0f, 0x20, 0x9b, 0x51, 0x8a, 0x0f, 0x25, 0x7a, 0x07, 0x46, 0xbb, 0xd5, 0xfe, 0x0a, 0x2e, 0x0c, 0x38, 0x8a, 0x6c, 0x48, 0x0e, 0x1b, 0x60, 0x71, 0x4f, 0xee, 0x1c, 0x59, 0x41, 0xbb, 0x4e, 0x13, 0xf7, 0x07, 0xea, 0xc4, 0x87, 0xa9, 0x66, 0x6a, 0x72, 0x3b, 0x57, 0x93, 0x13, 0x4a, 0x26, 0x8b, 0x77, 0x59, 0x77, 0x86, 0xc3, 0xa3, 0x19, 0x3b, 0x46, 0xd3, 0x55, 0xdd, 0x08, 0x95, 0xfc, 0x62, 0x16, 0xc5, 0x36, 0xa5, 0x42, 0xff, 0xd7, 0xd7, 0xb0, 0x80, 0x10, 0xc8, 0x6f, 0x54, 0x7a, 0x5d, 0xaa, 0x38, 0x33, 0x5a, 0x8b, 0xfa, 0x26, 0x55, 0xd5, 0xf7, 0x1b, 0x4d, 0x88, 0x07, 0xf5, 0x0c, 0x85, 0x45, 0xc5, 0x83, 0xdd, 0x0b, 0x69, 0x00, 0x22, 0xee, 0x65, 0x87, 0x3a, 0xea, 0x3e, 0x8f, 0x1a, 0x56, 0x5f, 0x3b, 0x0e, 0x4e, 0x02, 0x95, 0xfb, 0x0d, 0x32, 0x1f, 0x5c, 0x0b, 0x39, 0x7f, 0x2f, 0xd0, 0x52, 0x8f, 0x86, 0xa0, 0xd1, 0xb7, 0x07, 0xf7, 0x37, 0xb1, 0x75, 0xc6, 0x9e, 0x9e, 0x7a, 0xe3, 0xc8, 0x4d, 0x4b, 0x2c, 0xf3, 0xa3, 0x8a, 0x63, 0x1a, 0xa8, 0x03, 0x2b, 0x3e, 0x65, 0xbb, 0x45, 0x28, 0xf6, 0x6d, 0x0b, 0xfd, 0x34, 0x47, 0x3e, 0xd0, 0x10, 0x1d, 0x2a, 0x61, 0x25, 0x5b, 0x21, 0x5b, 0xc1, 0xcb, 0xab, 0x9a, 0x26, 0xd2, 0xb9, 0x69, 0x32, 0x4b, 0x77, 0xc8, 0xa5, 0x46, 0x4e, 0x5b, 0x23, 0xdf, 0x6c, 0x51, 0x12, 0xf9, 0xd1, 0x7c, 0x58, 0x7d, 0x95, 0x55, 0x9d, 0xe2, 0x12, 0xad, 0x24, 0x1d, 0x8b, 0x12, 0x60, 0x50, 0xe5, 0xfd, 0xdf, 0xcc, 0x83, 0x9a, 0x7e, 0x5a, 0xa2, 0xfd, 0xa1, 0xca, 0x20, 0xc0, 0x91, 0x0d, 0x86, 0x34, 0x18, 0xf1, 0x95, 0xb3, 0x8a, 0xdf, 0xcc, 0x36, 0xe9, 0x2f, 0x23, 0x96, 0xac, 0x31, 0x44, 0xb5, 0x37, 0xb3, 0x0f, 0xbe, 0x4d, 0xde, 0x61, 0x49, 0x02, 0xf8, 0x99, 0x78, 0xb7, 0xfb, 0x42, 0xcd, 0x99, 0xf1, 0x3d, 0x99, 0xc4, 0x5c, 0x73, 0x4f, 0xb8, 0x2c, 0x32, 0x59, 0xf9, 0x0b, 0x88, 0xfd, 0x52, 0xbd, 0xcb, 0x88, 0xf7, 0xee, 0xec, 0xdd, 0xe4, 0xc2, 0x43, 0xd8, 0x80, 0xba, 0xc7, 0x61, 0x4e, 0x15, 0xcf, 0x8d, 0xb5, 0x99, 0x3f, 0xfa, };
18077 static const u8 ed25519_786_test_vectors_expected_sig[] = {
18078 	0xe2, 0x47, 0x65, 0x86, 0x01, 0x37, 0x68, 0x9a, 0xad, 0x50, 0xeb, 0xee, 0xfc, 0x8d, 0x6d, 0xb8, 0xe9, 0x36, 0xa4, 0xcb, 0xa6, 0x2c, 0xe8, 0x7a, 0x7f, 0x58, 0x02, 0x09, 0x38, 0x4a, 0x9d, 0x7e, 0xec, 0x90, 0x70, 0x90, 0x5f, 0x60, 0xad, 0x63, 0xa7, 0xbe, 0xfd, 0x7c, 0x70, 0xf0, 0xae, 0x7c, 0x81, 0x09, 0x16, 0x9a, 0xee, 0x4e, 0x51, 0x8f, 0xce, 0xbf, 0xac, 0xa7, 0x23, 0xc5, 0xb2, 0x07, };
18079 static const ec_test_case ed25519_786_test_case = {
18080 	.name = "EDDSA25519-SHA512/wei25519 786",
18081 	.ec_str_p = &wei25519_str_params,
18082 	.priv_key = ed25519_786_test_vectors_priv_key,
18083 	.priv_key_len = sizeof(ed25519_786_test_vectors_priv_key),
18084 	.nn_random = NULL,
18085 	.hash_type = SHA512,
18086 	.msg = (const char *)ed25519_786_test_vectors_message,
18087 	.msglen = sizeof(ed25519_786_test_vectors_message),
18088 	.sig_type = EDDSA25519,
18089 	.exp_sig = ed25519_786_test_vectors_expected_sig,
18090 	.exp_siglen = sizeof(ed25519_786_test_vectors_expected_sig),
18091 	.adata = NULL,
18092 	.adata_len = 0
18093 };
18094 
18095 /************************************************/
18096 static const u8 ed25519_787_test_vectors_priv_key[] = {
18097 	0xdb, 0xbd, 0x0f, 0x7e, 0xcb, 0x64, 0x82, 0xcb, 0x01, 0xc4, 0xdb, 0xdc, 0x38, 0x93, 0xc0, 0xdb, 0x81, 0xe8, 0x31, 0x35, 0x3a, 0x5b, 0x01, 0xcc, 0x75, 0xd3, 0xb1, 0x1f, 0x2f, 0xf3, 0xc5, 0x9c, };
18098 static const u8 ed25519_787_test_vectors_message[] = {
18099 	0xe0, 0xff, 0xf3, 0x59, 0x75, 0xeb, 0xa7, 0x8d, 0xa2, 0xb0, 0xff, 0xcc, 0x5c, 0x1b, 0x66, 0x36, 0x00, 0x88, 0x8e, 0x82, 0x55, 0xcd, 0x20, 0x8f, 0x6d, 0xce, 0x7e, 0x88, 0x95, 0x3b, 0x71, 0x42, 0x93, 0x73, 0x89, 0xa3, 0x37, 0xae, 0x82, 0xf4, 0xcf, 0xe3, 0x2f, 0xcb, 0x34, 0xf5, 0x52, 0xa4, 0x8f, 0xa8, 0x89, 0x9e, 0x1a, 0x65, 0x9e, 0x3e, 0xd3, 0xd3, 0xd2, 0x90, 0xef, 0xc9, 0xa0, 0xf7, 0xde, 0xdf, 0x33, 0xe2, 0x1d, 0x04, 0x8d, 0x8d, 0x91, 0x07, 0x57, 0x03, 0x7b, 0x76, 0xe8, 0xa7, 0xee, 0x9e, 0x4e, 0xca, 0x30, 0xf5, 0x29, 0xdd, 0xc0, 0x2c, 0xef, 0xfc, 0x26, 0xd6, 0x4f, 0xda, 0x73, 0x03, 0xcc, 0x0d, 0x89, 0x40, 0xe9, 0xef, 0x59, 0xdc, 0x98, 0x3c, 0x12, 0xcc, 0xd1, 0xd2, 0x71, 0x7e, 0x64, 0xd3, 0x00, 0x6a, 0xf8, 0x2a, 0xb1, 0x5b, 0xb8, 0x78, 0xbb, 0x89, 0xd1, 0x75, 0x8b, 0xe4, 0x43, 0x10, 0x42, 0x06, 0x38, 0xb9, 0x6a, 0x0b, 0x5e, 0x1e, 0x65, 0x00, 0x9d, 0x69, 0x39, 0x5d, 0x02, 0x7a, 0x5d, 0xa4, 0xa8, 0x5e, 0x90, 0x1b, 0xe9, 0xaa, 0x2c, 0x0b, 0x3a, 0xcc, 0x50, 0x8e, 0xe1, 0x85, 0x74, 0xc1, 0xb2, 0xfa, 0x9b, 0xd5, 0xd7, 0xae, 0x7c, 0x7d, 0x83, 0x07, 0x12, 0xda, 0x5c, 0xbf, 0x26, 0xbe, 0x09, 0xa3, 0x12, 0x84, 0x70, 0xa1, 0x2a, 0x14, 0x90, 0x9a, 0x80, 0xa2, 0x66, 0x65, 0x9b, 0xef, 0xda, 0x54, 0x8f, 0xd2, 0xb2, 0x2f, 0x24, 0xc5, 0xfd, 0xc2, 0x06, 0xed, 0x3a, 0x4e, 0x75, 0xf5, 0x32, 0x06, 0x82, 0xed, 0x0e, 0x4c, 0xe8, 0x17, 0xd6, 0x3d, 0x5c, 0x7f, 0x1e, 0xe2, 0xb4, 0x40, 0x64, 0x33, 0x55, 0xbe, 0x65, 0x42, 0xf5, 0x9d, 0xc6, 0xc4, 0x5a, 0xb1, 0x57, 0x72, 0xf2, 0x21, 0x9a, 0x81, 0x2e, 0xf7, 0x52, 0x76, 0x42, 0x01, 0x5b, 0xc7, 0x5f, 0xe4, 0x5b, 0xa9, 0x69, 0xe8, 0x10, 0x0c, 0x26, 0x8e, 0x24, 0xce, 0xef, 0x92, 0x05, 0xa8, 0x3a, 0x3f, 0x7b, 0x5a, 0xe8, 0x00, 0xad, 0x06, 0xe0, 0x95, 0xb9, 0xb1, 0x39, 0x21, 0x94, 0x89, 0x79, 0x3a, 0x7b, 0xce, 0x84, 0xeb, 0xeb, 0x65, 0x4a, 0xb6, 0x66, 0x9e, 0x28, 0x55, 0xcc, 0xbe, 0xb6, 0x94, 0xdd, 0x48, 0x65, 0x15, 0x05, 0xb9, 0x59, 0xd3, 0x2a, 0x77, 0x02, 0x0b, 0x86, 0x95, 0x33, 0xe3, 0x25, 0x6d, 0x40, 0x68, 0x5a, 0x61, 0x20, 0xba, 0xb7, 0x94, 0x48, 0x5b, 0x32, 0xe1, 0x16, 0x92, 0x56, 0xfb, 0x18, 0x8f, 0xe7, 0x6e, 0x04, 0xe9, 0xef, 0xa6, 0xd1, 0x0d, 0x28, 0x6a, 0xe8, 0x6d, 0x6f, 0x1c, 0x87, 0xe8, 0xfc, 0x73, 0xad, 0x9b, 0x59, 0xfe, 0x0c, 0x27, 0xee, 0x92, 0xa4, 0x64, 0x15, 0xb3, 0x9d, 0x78, 0x6d, 0x66, 0x32, 0x5d, 0x7f, 0xa6, 0xfd, 0xa7, 0x12, 0xf1, 0x99, 0xda, 0x55, 0x4f, 0xc1, 0xc8, 0x99, 0x44, 0xa4, 0xe8, 0x4c, 0x19, 0x6e, 0x97, 0x9a, 0x80, 0x75, 0x53, 0x71, 0x8c, 0xb8, 0x1c, 0x07, 0x6e, 0x51, 0x1e, 0x60, 0x9d, 0x5c, 0xac, 0x23, 0xd8, 0xf4, 0x5b, 0x38, 0xb9, 0x4b, 0xcf, 0xcf, 0x15, 0x8d, 0x0d, 0x61, 0x60, 0x22, 0x38, 0xd5, 0x2e, 0x3a, 0xe8, 0x4c, 0x81, 0x53, 0x22, 0xf5, 0x34, 0xf2, 0x54, 0xe6, 0x33, 0x89, 0xae, 0x15, 0x5d, 0xee, 0x2f, 0xa9, 0x33, 0x96, 0xf0, 0xea, 0x49, 0x9d, 0x5d, 0x08, 0xc2, 0x47, 0x59, 0x08, 0xc6, 0x48, 0xbd, 0xdc, 0xee, 0x59, 0x1e, 0x13, 0x37, 0xe9, 0x42, 0x1d, 0xc5, 0xa2, 0x57, 0xce, 0x89, 0xcc, 0xce, 0x4c, 0xee, 0xa8, 0x09, 0xd7, 0xe8, 0x71, 0x34, 0xe0, 0x39, 0xdb, 0x1b, 0xe5, 0x98, 0x19, 0x6d, 0x30, 0x89, 0xfd, 0xcf, 0xa8, 0x97, 0x8e, 0x02, 0xc1, 0x55, 0x58, 0x32, 0xda, 0x0a, 0x72, 0xb0, 0x8a, 0xd0, 0x7c, 0xdd, 0x07, 0x26, 0x27, 0x40, 0x9c, 0x87, 0x39, 0x37, 0xb0, 0xe8, 0x35, 0x71, 0x5b, 0xaa, 0xf2, 0x60, 0x8b, 0x23, 0x95, 0x32, 0x74, 0x67, 0xcf, 0x69, 0xa1, 0xcd, 0xcc, 0xe6, 0x37, 0x24, 0x18, 0x38, 0x3e, 0x7b, 0x89, 0xc8, 0xdf, 0x4d, 0x53, 0x1f, 0x58, 0x51, 0x49, 0x50, 0x9e, 0xad, 0x1e, 0x41, 0xb6, 0x62, 0x7f, 0xea, 0x81, 0xc7, 0x95, 0x8c, 0xb4, 0x9d, 0x2d, 0x3c, 0x3e, 0x2f, 0xc6, 0x91, 0xe0, 0xb8, 0xcf, 0x72, 0x67, 0x9c, 0x08, 0xb8, 0x90, 0x46, 0x54, 0x53, 0x1b, 0xc4, 0x36, 0x8f, 0xb6, 0x17, 0xac, 0x75, 0x57, 0xd9, 0xdb, 0x8d, 0x32, 0x9d, 0x77, 0xe4, 0x8d, 0x8f, 0xb4, 0xde, 0x73, 0xab, 0xe7, 0xcb, 0x93, 0x88, 0x27, 0x4a, 0xf5, 0x85, 0xf8, 0x75, 0xc0, 0xda, 0xb7, 0x93, 0xe4, 0x35, 0x35, 0x18, 0xbb, 0x24, 0x69, 0x53, 0x42, 0xaf, 0x0f, 0x5d, 0xf5, 0xbe, 0x4e, 0x9c, 0x7a, 0xd2, 0x15, 0xbe, 0x90, 0xe2, 0x55, 0x40, 0xda, 0x34, 0x89, 0x71, 0x7d, 0xd3, 0xd2, 0x92, 0x54, 0x58, 0x5a, 0x45, 0xc1, 0x3e, 0x6d, 0xcc, 0x7e, 0x9c, 0x8a, 0x3a, 0x79, 0xff, 0x75, 0x5c, 0xbe, 0x46, 0x5b, 0x25, 0xe2, 0x3a, 0x1d, 0xa6, 0x08, 0xe1, 0x08, 0x4f, 0xec, 0x83, 0xbf, 0xf8, 0x0c, 0xfb, 0x74, 0x42, 0xb1, 0x46, 0x01, 0x87, 0x30, 0x7a, 0xcd, 0x75, 0xe3, 0xf2, 0xd1, 0x28, 0x43, 0xa7, 0x70, 0x94, 0xac, 0xc3, 0x28, 0x88, 0xfb, 0xe5, 0xf1, 0xfc, 0x24, 0xc6, 0x15, 0xd1, 0x9a, 0x06, 0x53, 0x91, 0xd4, 0x17, 0x64, 0x74, 0x64, 0x42, 0x46, 0xb5, 0x34, 0x3d, 0xa7, 0x76, 0x26, 0xa2, 0xd4, 0x83, 0xfe, 0x20, 0x4f, 0x83, 0x93, 0x28, 0x77, 0x5b, 0x71, 0xa4, 0xcb, 0x56, 0x72, 0x73, 0xe1, 0x69, 0x64, 0x0a, 0xf9, 0x3d, 0xde, 0x3e, 0xca, 0x91, 0x16, 0xf4, 0x00, 0xe2, 0x3a, 0x7a, 0xd3, 0xd8, 0xfc, 0x3a, 0x28, 0xe5, 0x65, 0xf1, 0x25, 0xd6, };
18100 static const u8 ed25519_787_test_vectors_expected_sig[] = {
18101 	0x96, 0xc0, 0x03, 0x61, 0xfb, 0x71, 0xc5, 0x23, 0x05, 0xe1, 0xab, 0x77, 0x07, 0xe0, 0x46, 0x52, 0x03, 0xeb, 0x13, 0xdf, 0x3e, 0x06, 0x55, 0xf0, 0x95, 0xfb, 0x33, 0x19, 0x42, 0xa4, 0x0b, 0x15, 0x58, 0x41, 0x43, 0xb3, 0x70, 0xa7, 0xdd, 0x57, 0x61, 0xfb, 0x03, 0xc0, 0x75, 0xd0, 0x4a, 0x83, 0x48, 0x66, 0x1c, 0xce, 0xa9, 0xad, 0xa5, 0x33, 0x65, 0xb5, 0x00, 0x08, 0x7d, 0x57, 0xec, 0x0c, };
18102 static const ec_test_case ed25519_787_test_case = {
18103 	.name = "EDDSA25519-SHA512/wei25519 787",
18104 	.ec_str_p = &wei25519_str_params,
18105 	.priv_key = ed25519_787_test_vectors_priv_key,
18106 	.priv_key_len = sizeof(ed25519_787_test_vectors_priv_key),
18107 	.nn_random = NULL,
18108 	.hash_type = SHA512,
18109 	.msg = (const char *)ed25519_787_test_vectors_message,
18110 	.msglen = sizeof(ed25519_787_test_vectors_message),
18111 	.sig_type = EDDSA25519,
18112 	.exp_sig = ed25519_787_test_vectors_expected_sig,
18113 	.exp_siglen = sizeof(ed25519_787_test_vectors_expected_sig),
18114 	.adata = NULL,
18115 	.adata_len = 0
18116 };
18117 
18118 /************************************************/
18119 static const u8 ed25519_788_test_vectors_priv_key[] = {
18120 	0x74, 0x8b, 0xb3, 0xcd, 0x47, 0x71, 0x37, 0xbc, 0x88, 0x0e, 0xa7, 0xc6, 0x1d, 0xf2, 0x5c, 0x1d, 0xac, 0x6e, 0xbe, 0xc9, 0xe6, 0xc3, 0x19, 0x3d, 0x81, 0xff, 0xa6, 0xf7, 0xa8, 0x1e, 0xc6, 0x67, };
18121 static const u8 ed25519_788_test_vectors_message[] = {
18122 	0x00, 0xde, 0x6d, 0x99, 0x0c, 0x84, 0x33, 0x8a, 0x39, 0x8f, 0xda, 0x5f, 0x4a, 0x2c, 0xca, 0x73, 0x3c, 0x56, 0xb2, 0xa2, 0xea, 0x39, 0x6c, 0x2f, 0xe6, 0x67, 0xc2, 0x68, 0xe3, 0x81, 0x45, 0x87, 0x85, 0x39, 0xbd, 0x41, 0xbc, 0x14, 0x0a, 0x2c, 0xdf, 0xe7, 0xe1, 0x83, 0x60, 0x41, 0x10, 0x48, 0xcc, 0xa6, 0x0f, 0x35, 0xce, 0x51, 0x09, 0x91, 0xdf, 0x26, 0x1c, 0xbf, 0x66, 0x90, 0x39, 0xd9, 0xd2, 0x56, 0x87, 0xa0, 0x7f, 0xc0, 0x47, 0x6a, 0x41, 0xf5, 0x0e, 0xcc, 0xf3, 0x81, 0x53, 0xee, 0x6a, 0xe9, 0xff, 0xd3, 0x92, 0xb2, 0xbe, 0xc0, 0xcc, 0x67, 0x10, 0x1e, 0xc3, 0x69, 0x6d, 0x7a, 0x2e, 0xc8, 0xcb, 0xd4, 0x47, 0xb6, 0xa6, 0xea, 0x06, 0x3d, 0x33, 0xec, 0x12, 0x8a, 0xe8, 0xb5, 0x75, 0x77, 0xde, 0xe1, 0x7b, 0x97, 0x16, 0x25, 0x63, 0xf1, 0x5e, 0x42, 0xb5, 0x5c, 0xa4, 0xbe, 0xdb, 0xdf, 0xb6, 0x31, 0xa9, 0xf6, 0x26, 0x2f, 0x94, 0xae, 0x35, 0xbb, 0x35, 0xf7, 0x95, 0xc3, 0x5a, 0x01, 0xde, 0xdb, 0x46, 0x45, 0xa7, 0x3c, 0xfa, 0x6e, 0xd9, 0xee, 0x52, 0x1e, 0x46, 0x31, 0xfb, 0x17, 0xbb, 0xc0, 0x6e, 0xe5, 0x73, 0x16, 0xbe, 0x52, 0x74, 0x27, 0xc8, 0xaa, 0x55, 0xc6, 0x31, 0x18, 0x74, 0x62, 0xd4, 0xb2, 0xc8, 0x82, 0x2c, 0xa4, 0xe1, 0x8b, 0x7a, 0x5d, 0x4c, 0x11, 0x4c, 0x11, 0xdc, 0x22, 0x06, 0x9b, 0xc8, 0x32, 0x65, 0x6d, 0x5f, 0x4d, 0x39, 0x54, 0x87, 0x18, 0xc5, 0x1f, 0x5e, 0x4f, 0xc8, 0x28, 0xf6, 0x0e, 0x37, 0xf0, 0x13, 0x07, 0x50, 0x52, 0x65, 0xac, 0xb2, 0x2d, 0x5e, 0x8d, 0x76, 0x7b, 0x9a, 0xa7, 0xb8, 0x66, 0xa1, 0x57, 0xc6, 0x43, 0x87, 0x3e, 0x09, 0x08, 0x4a, 0x1a, 0x40, 0x4a, 0x7b, 0xb5, 0x8c, 0xcc, 0x4b, 0x5a, 0x39, 0x0f, 0xd3, 0x06, 0x01, 0xc8, 0x96, 0x93, 0x5e, 0x35, 0x56, 0xf6, 0x0d, 0x2d, 0xc6, 0xbd, 0xff, 0xe4, 0x7d, 0xa0, 0xa6, 0x87, 0xc8, 0xec, 0xe1, 0x24, 0x1f, 0xf6, 0xc0, 0x7d, 0x77, 0x61, 0x11, 0xca, 0x65, 0x98, 0xfc, 0xa9, 0x68, 0xcb, 0x6a, 0xfa, 0x0a, 0x14, 0xa3, 0x4a, 0xb8, 0xf5, 0x4b, 0x95, 0xd3, 0xd8, 0x47, 0x3a, 0x17, 0x4b, 0xc7, 0x25, 0x52, 0x3f, 0x86, 0x74, 0xdf, 0xb2, 0xb1, 0x0f, 0x87, 0x42, 0x07, 0xfe, 0xe1, 0xb0, 0x8b, 0x42, 0xda, 0x1f, 0x58, 0x65, 0x53, 0x05, 0xa3, 0x59, 0x75, 0x7a, 0xa0, 0x25, 0x1f, 0x14, 0x13, 0x8e, 0xed, 0xbc, 0x28, 0x0c, 0xbd, 0x38, 0x5b, 0xf4, 0xbb, 0xf5, 0x53, 0x01, 0x14, 0xcc, 0x43, 0xb0, 0x47, 0x47, 0x79, 0xe2, 0x04, 0x96, 0x2f, 0x85, 0x60, 0xd4, 0xaa, 0x42, 0x3e, 0x17, 0xe6, 0xae, 0xca, 0xce, 0x66, 0xc8, 0x13, 0x78, 0x4f, 0x6c, 0x89, 0x8b, 0x5b, 0x9c, 0xb7, 0x46, 0xa9, 0xe0, 0x1f, 0xbc, 0x6b, 0xb5, 0xc6, 0x60, 0xf3, 0xe1, 0x38, 0x57, 0x4f, 0x59, 0xb9, 0x74, 0x54, 0x45, 0x48, 0x6c, 0x42, 0x2b, 0xc0, 0x6a, 0x10, 0xcc, 0x8c, 0xc9, 0xbc, 0x56, 0x45, 0x8e, 0xf8, 0x5e, 0x0e, 0x8a, 0x02, 0x7c, 0xb0, 0x61, 0x7d, 0x03, 0x37, 0xdd, 0xda, 0x50, 0x22, 0x0b, 0x22, 0xc5, 0xc3, 0x98, 0xf5, 0xce, 0x05, 0xec, 0x32, 0xf0, 0x9b, 0x09, 0x0f, 0x7c, 0xf6, 0xc6, 0x0f, 0x81, 0x8c, 0x6b, 0x4c, 0x68, 0x30, 0x98, 0x3e, 0x91, 0xc6, 0xea, 0xdf, 0x1e, 0xae, 0x4d, 0x54, 0xbd, 0xe7, 0x54, 0xf7, 0x5d, 0x45, 0x0a, 0xe7, 0x31, 0x29, 0xf6, 0xc4, 0xff, 0x5c, 0x4c, 0x60, 0x6f, 0x7c, 0xad, 0xbf, 0x4f, 0x78, 0xa1, 0x8d, 0xb2, 0x96, 0x1c, 0xc8, 0xc8, 0xdd, 0xab, 0x05, 0x78, 0xcf, 0xed, 0xfc, 0xf9, 0x5e, 0xf0, 0x88, 0x8a, 0xfd, 0x38, 0x55, 0x37, 0xd1, 0xd0, 0xa0, 0x76, 0x48, 0xa5, 0xce, 0x25, 0x22, 0xd0, 0x63, 0x35, 0x07, 0xd7, 0x75, 0x93, 0xe1, 0xa0, 0x36, 0x6d, 0x1e, 0xce, 0x84, 0x3d, 0xe6, 0x98, 0x67, 0xd7, 0xac, 0x44, 0x2b, 0xa7, 0xda, 0xd2, 0xa9, 0x0b, 0x59, 0xd8, 0x98, 0x4e, 0x4a, 0x94, 0x6b, 0xbe, 0x5f, 0x17, 0x2d, 0xa4, 0x27, 0x63, 0x8b, 0x2b, 0x61, 0x20, 0x90, 0x41, 0xff, 0xf5, 0x0e, 0x60, 0xec, 0x02, 0xec, 0x2c, 0x0b, 0x1d, 0xc4, 0xbe, 0x2e, 0xdd, 0x13, 0xe8, 0x7b, 0x64, 0xd1, 0xd1, 0x66, 0x31, 0x14, 0x57, 0x3c, 0xf5, 0x8a, 0x17, 0x73, 0x9f, 0x46, 0x3a, 0x1c, 0x3d, 0x6b, 0x21, 0x23, 0x39, 0x01, 0x83, 0xb5, 0x05, 0xc8, 0xee, 0xff, 0xb2, 0x05, 0x39, 0xbd, 0xfe, 0xeb, 0x40, 0x77, 0x6d, 0x20, 0xc4, 0x59, 0xba, 0xc4, 0x56, 0x99, 0x68, 0xfc, 0xaf, 0xe4, 0x4e, 0xa4, 0xcd, 0x62, 0x4a, 0x84, 0xbf, 0xcc, 0xd7, 0x87, 0x6d, 0xd7, 0xbf, 0x55, 0xf8, 0x3a, 0xc7, 0x04, 0x0e, 0x30, 0xf3, 0x26, 0xdc, 0xe3, 0x25, 0x58, 0x8e, 0x1b, 0xa5, 0xbc, 0x07, 0x90, 0x26, 0x5d, 0xfd, 0xba, 0x09, 0x83, 0x9e, 0xef, 0x57, 0x16, 0x41, 0xe8, 0xa1, 0x23, 0x4b, 0x6c, 0xfc, 0x3a, 0x36, 0xa8, 0x66, 0xbd, 0x6b, 0x92, 0xcd, 0x71, 0xec, 0x74, 0xe0, 0xd4, 0xde, 0xb9, 0xe7, 0x4d, 0x15, 0x82, 0x01, 0xaa, 0x50, 0x2f, 0x07, 0xc8, 0xba, 0x34, 0x8a, 0xc2, 0x6a, 0xaf, 0x9b, 0x3d, 0x07, 0x0c, 0x9a, 0x40, 0xb5, 0x2a, 0x44, 0xe9, 0x32, 0x55, 0x2b, 0x67, 0xa2, 0xdf, 0x05, 0xa7, 0xf0, 0xf0, 0x3c, 0x61, 0x7b, 0x48, 0xdc, 0x27, 0x82, 0x36, 0x6a, 0x23, 0x1e, 0x0c, 0x4e, 0x39, 0x38, 0xa4, 0x27, 0x4b, 0x36, 0xaa, 0x94, 0x50, 0xff, 0x93, 0x6b, 0xe1, 0x32, 0xdc, 0xb6, 0x92, 0x83, 0x8d, 0x65, 0x4c, 0x94, 0x54, 0x2c, 0x6e, 0x04, 0x7a, 0x7f, 0x78, 0xba, 0x71, 0x19, 0x19, 0xf9, 0x08, 0xa1, 0x5b, 0x30, 0xb9, };
18123 static const u8 ed25519_788_test_vectors_expected_sig[] = {
18124 	0xe1, 0x3c, 0xa8, 0xe5, 0xce, 0x7c, 0x26, 0x80, 0x90, 0x90, 0x8d, 0x61, 0xcf, 0x2f, 0x0a, 0x3e, 0x45, 0x72, 0x41, 0x2b, 0xf5, 0xad, 0xfc, 0x5a, 0xdd, 0xfe, 0x88, 0x55, 0x6f, 0x14, 0x8b, 0x5f, 0xcb, 0xe3, 0xe1, 0xbc, 0x65, 0xff, 0x16, 0x11, 0x7d, 0x35, 0xc9, 0xd5, 0xdc, 0x3b, 0x11, 0x71, 0x98, 0xf8, 0x84, 0x92, 0x5b, 0x40, 0x35, 0xb2, 0xc0, 0xde, 0x6c, 0x40, 0x2e, 0xd4, 0x7a, 0x01, };
18125 static const ec_test_case ed25519_788_test_case = {
18126 	.name = "EDDSA25519-SHA512/wei25519 788",
18127 	.ec_str_p = &wei25519_str_params,
18128 	.priv_key = ed25519_788_test_vectors_priv_key,
18129 	.priv_key_len = sizeof(ed25519_788_test_vectors_priv_key),
18130 	.nn_random = NULL,
18131 	.hash_type = SHA512,
18132 	.msg = (const char *)ed25519_788_test_vectors_message,
18133 	.msglen = sizeof(ed25519_788_test_vectors_message),
18134 	.sig_type = EDDSA25519,
18135 	.exp_sig = ed25519_788_test_vectors_expected_sig,
18136 	.exp_siglen = sizeof(ed25519_788_test_vectors_expected_sig),
18137 	.adata = NULL,
18138 	.adata_len = 0
18139 };
18140 
18141 /************************************************/
18142 static const u8 ed25519_789_test_vectors_priv_key[] = {
18143 	0x39, 0x3d, 0x44, 0xdd, 0x0d, 0xed, 0x71, 0xfc, 0x08, 0x47, 0x7b, 0xd2, 0x5e, 0xd0, 0xe6, 0x62, 0x9f, 0xa7, 0xf8, 0x8f, 0x08, 0x2e, 0xbc, 0xef, 0x09, 0x18, 0x98, 0xe5, 0xc9, 0xe3, 0xd5, 0xb8, };
18144 static const u8 ed25519_789_test_vectors_message[] = {
18145 	0x14, 0x2b, 0x6e, 0x82, 0x50, 0x13, 0x62, 0xd5, 0x5a, 0x04, 0xb8, 0x9d, 0x54, 0x1a, 0x79, 0x68, 0x63, 0xd7, 0x78, 0x38, 0x40, 0xd3, 0x4c, 0xbd, 0xfc, 0x51, 0x6a, 0x3c, 0x84, 0x77, 0x2f, 0x92, 0x44, 0x6f, 0x5f, 0x0d, 0xf4, 0xc4, 0x5c, 0x6e, 0x0d, 0xc8, 0xec, 0x1e, 0x9b, 0xb0, 0xff, 0x7e, 0xc1, 0x69, 0x6a, 0x09, 0xcd, 0x7a, 0xe3, 0x4c, 0x10, 0xf8, 0xe6, 0x1a, 0x9a, 0xca, 0xbd, 0x43, 0x03, 0xf0, 0xa9, 0x24, 0x72, 0x37, 0x62, 0x1c, 0x49, 0x0e, 0x8d, 0x9d, 0x0f, 0xe4, 0x44, 0x82, 0xc5, 0x60, 0xd0, 0x51, 0xb8, 0x2b, 0x07, 0x4a, 0xc3, 0xd8, 0xe4, 0x9b, 0xb2, 0xac, 0x71, 0x5a, 0xc4, 0xcd, 0xe3, 0xd4, 0x70, 0x9d, 0x0e, 0xa3, 0xaf, 0xc5, 0x1b, 0xfd, 0xef, 0x4b, 0x65, 0x67, 0x71, 0xfb, 0xd5, 0x5f, 0x89, 0xda, 0x9f, 0xa6, 0xdc, 0xaa, 0x62, 0xcb, 0xae, 0x56, 0x12, 0x08, 0xd9, 0x8c, 0xfa, 0x24, 0xcb, 0x81, 0x25, 0x2b, 0x89, 0x5f, 0x6a, 0x4a, 0x92, 0xc8, 0xe4, 0x07, 0xaf, 0x6c, 0x1f, 0x1e, 0xf4, 0x9d, 0x8d, 0xde, 0x15, 0x4f, 0xbc, 0xb1, 0xca, 0x45, 0x7a, 0x20, 0x4b, 0x5e, 0xa5, 0x43, 0x2e, 0x4d, 0x71, 0xfb, 0x7e, 0xb2, 0x4d, 0x43, 0xf6, 0xfe, 0x25, 0xe7, 0xb4, 0xc6, 0x59, 0xb0, 0xee, 0xbc, 0x4c, 0xbc, 0xc8, 0xb3, 0xcf, 0xde, 0x07, 0xc8, 0xf0, 0x7b, 0x18, 0xa5, 0x15, 0x70, 0xe7, 0x16, 0x3e, 0x33, 0xb3, 0x17, 0xb6, 0x13, 0x60, 0xf9, 0xce, 0x08, 0xd9, 0x5d, 0xe2, 0xc3, 0x15, 0x6a, 0xf1, 0xcc, 0xc9, 0xb5, 0x5b, 0xcf, 0x81, 0xea, 0xbf, 0x3c, 0x40, 0x43, 0x40, 0x46, 0xbb, 0xe8, 0x2e, 0x02, 0x99, 0x2a, 0x2a, 0xc8, 0xb3, 0xb4, 0x25, 0x68, 0x0a, 0x23, 0xd9, 0x34, 0x72, 0x6c, 0xb1, 0xb7, 0xbf, 0x26, 0xce, 0xb5, 0x2a, 0x39, 0x02, 0x2c, 0x00, 0xac, 0xf4, 0x25, 0x25, 0x71, 0x67, 0xb8, 0x21, 0x18, 0x5f, 0x68, 0xe3, 0xed, 0x17, 0x90, 0x3d, 0x8d, 0x22, 0x27, 0x54, 0x98, 0xc3, 0x9a, 0x9e, 0x8d, 0xf8, 0x84, 0xec, 0x00, 0x55, 0x8d, 0xcf, 0xa4, 0x3b, 0x8a, 0x11, 0x9c, 0x2e, 0x85, 0x3b, 0x9a, 0x03, 0x18, 0xbb, 0xea, 0x08, 0x7f, 0x9c, 0xec, 0x17, 0xca, 0x49, 0xb7, 0x08, 0x17, 0xb8, 0xd7, 0xc1, 0x70, 0xa8, 0x90, 0x6f, 0x3e, 0xe9, 0xe8, 0xf8, 0xcb, 0x27, 0xa1, 0xd0, 0xf5, 0x75, 0xab, 0xfa, 0x62, 0x7e, 0x88, 0xf0, 0x8c, 0xa4, 0xb9, 0x3c, 0x32, 0x97, 0xc4, 0xf3, 0x17, 0x07, 0x2f, 0x42, 0x1c, 0x5e, 0x60, 0x2e, 0x2f, 0x83, 0x1d, 0xfb, 0x82, 0x55, 0x1b, 0xdc, 0xe8, 0xd7, 0x12, 0x16, 0xf0, 0x5c, 0xf9, 0xa2, 0x77, 0x3b, 0x90, 0xfc, 0x93, 0xb9, 0xd8, 0x55, 0xa9, 0x1e, 0x35, 0xad, 0xe3, 0x32, 0xa5, 0x06, 0x1f, 0xdb, 0x82, 0xb3, 0x09, 0xba, 0xb4, 0xf5, 0x6e, 0x2d, 0x58, 0x6a, 0x84, 0xc6, 0x74, 0x81, 0xd1, 0x90, 0x2c, 0x26, 0x1b, 0x3f, 0x97, 0xdc, 0x30, 0xb1, 0x84, 0x61, 0x9d, 0xf9, 0xfd, 0xfc, 0x7a, 0x32, 0x9d, 0x06, 0x1a, 0x41, 0xdf, 0x33, 0x22, 0x02, 0x13, 0x3d, 0x8e, 0xae, 0xed, 0xdb, 0x4c, 0xfc, 0xee, 0x53, 0x53, 0x6e, 0x07, 0xaa, 0xd1, 0x15, 0x53, 0xdc, 0xf5, 0xed, 0x1e, 0x94, 0x9d, 0x45, 0x35, 0x5f, 0x9e, 0xf4, 0x2c, 0x78, 0x32, 0xb0, 0xde, 0x7c, 0x2f, 0x15, 0x26, 0xfb, 0xef, 0x86, 0xb6, 0x36, 0x49, 0xb6, 0xb8, 0x5a, 0xe5, 0xca, 0x86, 0xf0, 0xce, 0xa6, 0xdf, 0x9c, 0x12, 0x6c, 0x1d, 0x79, 0x48, 0x9c, 0xc3, 0xbf, 0xc6, 0xe8, 0xbf, 0x03, 0x46, 0xeb, 0x30, 0xd0, 0x16, 0x43, 0xc0, 0x10, 0x15, 0x0c, 0x5c, 0x8d, 0x0e, 0xb5, 0x01, 0x0a, 0x46, 0x11, 0x22, 0x15, 0x13, 0x79, 0x91, 0x08, 0x5e, 0x57, 0x49, 0x3b, 0x22, 0xe8, 0x35, 0x26, 0xb7, 0xb1, 0x72, 0xc6, 0xc7, 0x34, 0x1c, 0x40, 0x32, 0x1e, 0x9c, 0xeb, 0x7c, 0x82, 0xbf, 0xba, 0xa4, 0x8f, 0x3b, 0xd8, 0xf5, 0x13, 0x72, 0xd9, 0x6d, 0x47, 0x44, 0x4f, 0xf0, 0xd8, 0xbb, 0x2e, 0x5f, 0xd2, 0x65, 0x14, 0xeb, 0x63, 0x91, 0x05, 0xe3, 0x38, 0x95, 0xfd, 0xc4, 0x1f, 0x6d, 0xf1, 0xfb, 0xfd, 0xcb, 0x08, 0x46, 0x6e, 0xc2, 0xd2, 0x17, 0xfc, 0x99, 0xfb, 0x01, 0x2f, 0xe6, 0x54, 0x0c, 0x0c, 0x5a, 0x59, 0x66, 0xed, 0x3e, 0x66, 0xfa, 0xb1, 0x20, 0x2a, 0xb9, 0xda, 0xff, 0xe8, 0xe2, 0x7e, 0x8f, 0x74, 0x62, 0x82, 0x8d, 0x66, 0x26, 0x59, 0xea, 0x3b, 0x2c, 0x60, 0x8c, 0xf6, 0x8e, 0x30, 0xdb, 0xac, 0x62, 0xff, 0xd8, 0x22, 0x9f, 0x4a, 0x53, 0xf5, 0x9a, 0xe1, 0x68, 0x33, 0xb8, 0x1a, 0x15, 0x91, 0x61, 0xf1, 0x93, 0x69, 0xf6, 0x0f, 0x51, 0xc4, 0x3a, 0x21, 0x7e, 0xfc, 0x5e, 0xfd, 0x6a, 0xb7, 0xa9, 0x1f, 0xe2, 0x49, 0xc7, 0xb8, 0xa0, 0xc1, 0x4e, 0x9f, 0xae, 0xa5, 0x33, 0xde, 0x13, 0x38, 0x49, 0xa9, 0x24, 0x47, 0x67, 0x6f, 0x6c, 0xc1, 0x8b, 0xef, 0x4f, 0xec, 0x7f, 0x37, 0x31, 0x97, 0x59, 0xce, 0x80, 0xea, 0x3e, 0xac, 0x18, 0xfa, 0x2d, 0x9f, 0xa0, 0x23, 0x09, 0xe1, 0xce, 0x93, 0xac, 0x6c, 0xf4, 0xcd, 0x2c, 0xb2, 0xc9, 0x5f, 0x1e, 0x2a, 0xff, 0x7b, 0x2a, 0x88, 0x56, 0x40, 0x5a, 0x7b, 0x8e, 0xba, 0xbe, 0xb4, 0x90, 0x6d, 0x9b, 0x97, 0x34, 0xda, 0x9f, 0xb5, 0xe5, 0xd3, 0xf3, 0x22, 0xbb, 0x5b, 0x55, 0x9f, 0xa6, 0x1e, 0xc8, 0xf5, 0x15, 0xdb, 0x90, 0x65, 0xab, 0x4b, 0x91, 0xa7, 0xa3, 0x1d, 0x5c, 0x62, 0x50, 0x61, 0xc2, 0xfd, 0x2b, 0xcf, 0xe1, 0x7f, 0x94, 0xbb, 0xde, 0x47, 0x76, 0x30, 0x2b, 0x8a, 0xef, 0x3d, 0x5b, 0x52, 0xdb, 0x3b, 0xc7, 0x3a, 0xe4, 0xa3, 0x0c, 0xc4, 0x41, 0x7a, 0xcb, };
18146 static const u8 ed25519_789_test_vectors_expected_sig[] = {
18147 	0x84, 0xc7, 0x16, 0xe6, 0x0d, 0xe6, 0x7b, 0x02, 0x0c, 0xc1, 0xa6, 0xa2, 0x4e, 0x65, 0x49, 0xfe, 0x56, 0xc6, 0xd9, 0x41, 0xa8, 0xed, 0xea, 0xe4, 0x07, 0x62, 0x66, 0x66, 0xc3, 0x1c, 0xb6, 0x0d, 0xee, 0x6b, 0xe5, 0xa7, 0x1e, 0xbd, 0x76, 0xba, 0xf7, 0x1b, 0x75, 0x11, 0x4b, 0xcc, 0xfd, 0x37, 0xd1, 0x63, 0xa9, 0x68, 0xbb, 0xee, 0xc1, 0xf7, 0x69, 0x72, 0x15, 0x12, 0x96, 0xc4, 0x7e, 0x07, };
18148 static const ec_test_case ed25519_789_test_case = {
18149 	.name = "EDDSA25519-SHA512/wei25519 789",
18150 	.ec_str_p = &wei25519_str_params,
18151 	.priv_key = ed25519_789_test_vectors_priv_key,
18152 	.priv_key_len = sizeof(ed25519_789_test_vectors_priv_key),
18153 	.nn_random = NULL,
18154 	.hash_type = SHA512,
18155 	.msg = (const char *)ed25519_789_test_vectors_message,
18156 	.msglen = sizeof(ed25519_789_test_vectors_message),
18157 	.sig_type = EDDSA25519,
18158 	.exp_sig = ed25519_789_test_vectors_expected_sig,
18159 	.exp_siglen = sizeof(ed25519_789_test_vectors_expected_sig),
18160 	.adata = NULL,
18161 	.adata_len = 0
18162 };
18163 
18164 /************************************************/
18165 static const u8 ed25519_790_test_vectors_priv_key[] = {
18166 	0x71, 0x19, 0x36, 0x40, 0xa0, 0xa2, 0xb2, 0x2f, 0xb2, 0x2d, 0x00, 0xa8, 0x0b, 0x33, 0xa5, 0x51, 0x4f, 0x3d, 0x10, 0x00, 0x03, 0x4f, 0xcc, 0xd8, 0x85, 0xd8, 0xea, 0x86, 0x38, 0xf0, 0xb0, 0xf8, };
18167 static const u8 ed25519_790_test_vectors_message[] = {
18168 	0xe0, 0x28, 0x79, 0x48, 0xbb, 0x85, 0xa3, 0x98, 0xe6, 0xaf, 0xfa, 0x2d, 0x25, 0xfc, 0xff, 0x8b, 0xdb, 0x93, 0x26, 0xf5, 0xd1, 0x4f, 0xde, 0xb6, 0x05, 0x49, 0xf5, 0xfb, 0xf0, 0xc1, 0x81, 0x6f, 0x11, 0xcb, 0xdd, 0x4e, 0x90, 0xfe, 0xa0, 0x39, 0xdc, 0xa6, 0x0f, 0xaa, 0xd1, 0x69, 0x60, 0x03, 0xf9, 0x15, 0x15, 0xc9, 0xb2, 0x72, 0x88, 0x2c, 0x95, 0xc9, 0xa4, 0xab, 0x6e, 0x27, 0x77, 0xbd, 0x92, 0x7e, 0x7d, 0x84, 0x42, 0xae, 0xa6, 0xce, 0xa6, 0x19, 0xc9, 0xb1, 0x52, 0x55, 0xfe, 0xd6, 0x12, 0xb5, 0xcc, 0x31, 0x58, 0xfc, 0x70, 0x5b, 0xb7, 0xa5, 0x06, 0xf4, 0xaf, 0xec, 0xf4, 0xe3, 0x4e, 0xd5, 0x17, 0xb2, 0xc1, 0x2b, 0x83, 0x62, 0x61, 0x0e, 0x5e, 0xa2, 0x70, 0x48, 0x5c, 0xcc, 0xb3, 0xc9, 0xaa, 0x97, 0xec, 0xd6, 0xcb, 0x19, 0x63, 0x09, 0x00, 0xf0, 0x7d, 0x94, 0xcb, 0x29, 0x3c, 0xb6, 0xe0, 0x89, 0xa9, 0xa7, 0x7c, 0x01, 0x94, 0x07, 0x3a, 0x7f, 0x71, 0x77, 0xb0, 0x23, 0x0d, 0x25, 0x76, 0x3a, 0x2e, 0xf9, 0x8d, 0x47, 0x70, 0x4c, 0xb2, 0xc3, 0xaf, 0x4c, 0x3c, 0x1b, 0x49, 0x56, 0x31, 0xb4, 0xa5, 0xb2, 0x1b, 0x2e, 0x56, 0xbf, 0xf2, 0xed, 0xe0, 0x3e, 0xa4, 0xfe, 0x7c, 0xf8, 0x29, 0x17, 0x34, 0x7e, 0x3a, 0x9d, 0x4d, 0xbe, 0xef, 0x37, 0xd1, 0xcf, 0x17, 0x61, 0x5a, 0xda, 0xa0, 0xfd, 0x17, 0x05, 0x79, 0x69, 0x91, 0x7d, 0x47, 0x8d, 0x03, 0xcc, 0xd8, 0xf8, 0xb8, 0x8e, 0x5e, 0x5a, 0xca, 0xe6, 0x73, 0x2a, 0x81, 0x61, 0xdf, 0xb5, 0xf7, 0xd0, 0x21, 0x23, 0xc8, 0xd5, 0xa5, 0x65, 0xcf, 0x4d, 0xd9, 0x8d, 0xfc, 0x9a, 0xaf, 0x5a, 0x33, 0x50, 0x58, 0xa9, 0x41, 0xca, 0x43, 0x07, 0x3f, 0x26, 0x59, 0x61, 0x5a, 0x72, 0xfe, 0x78, 0xc1, 0x01, 0xc4, 0x1a, 0xed, 0x07, 0xf3, 0xbc, 0xf9, 0x80, 0xb0, 0xa5, 0xb3, 0xfb, 0xaf, 0xdb, 0xbe, 0xa9, 0x2f, 0xd8, 0x89, 0xcf, 0xd5, 0x3d, 0x40, 0x32, 0x78, 0xbc, 0x15, 0xa5, 0x9a, 0xa1, 0x40, 0xc2, 0xd7, 0x73, 0xb8, 0x88, 0x9b, 0x96, 0x3d, 0xce, 0xa3, 0x65, 0x36, 0x2e, 0x42, 0x6e, 0xf4, 0x60, 0x98, 0x45, 0xc9, 0xbc, 0xe9, 0xf8, 0xae, 0xb5, 0x91, 0xd1, 0xa4, 0x69, 0xb0, 0x72, 0xb4, 0x12, 0x09, 0xf5, 0xa8, 0xb6, 0xdc, 0x23, 0x95, 0xad, 0x90, 0x60, 0xeb, 0x2e, 0x37, 0x09, 0x78, 0xae, 0x33, 0x11, 0xd1, 0xcf, 0x0a, 0x8f, 0x20, 0x51, 0x42, 0xd4, 0x36, 0xba, 0xb6, 0xb9, 0x59, 0x43, 0xa9, 0x7c, 0x23, 0xe6, 0x1b, 0xd1, 0x4b, 0x2d, 0x95, 0x67, 0x2c, 0xb9, 0x32, 0x5e, 0x9a, 0xb1, 0xfc, 0x9e, 0xee, 0xaa, 0xcc, 0xd5, 0x8b, 0x9f, 0x4a, 0xc1, 0x55, 0x0b, 0xde, 0xc8, 0x44, 0x9b, 0x03, 0x60, 0x39, 0x49, 0x6c, 0x5f, 0x07, 0xa5, 0xed, 0x64, 0xd5, 0xd8, 0x51, 0x71, 0x69, 0x01, 0x44, 0xdb, 0x5c, 0x81, 0xc8, 0x1c, 0xbc, 0x4c, 0x16, 0x71, 0x8d, 0x52, 0xc4, 0xdf, 0xd1, 0x95, 0x8c, 0xa5, 0xc9, 0xc8, 0xba, 0x58, 0x2c, 0xd9, 0xd7, 0x06, 0xf2, 0x7a, 0x74, 0x74, 0x4c, 0x3a, 0x05, 0xbf, 0x1c, 0xcd, 0x51, 0xf1, 0x09, 0x20, 0x10, 0xd3, 0x6f, 0x15, 0x78, 0xb5, 0x78, 0xae, 0x0e, 0x9f, 0xfa, 0x47, 0x07, 0x90, 0x55, 0xef, 0x94, 0xfa, 0xbc, 0x9f, 0xf7, 0x2f, 0x73, 0x8b, 0xef, 0x68, 0x46, 0x1e, 0xb3, 0x40, 0x4c, 0xce, 0xe9, 0x53, 0xf5, 0xee, 0x86, 0x4c, 0x97, 0x4c, 0xe7, 0x0e, 0x90, 0x37, 0xe3, 0x38, 0x8f, 0xba, 0xf2, 0x88, 0x9e, 0x13, 0x66, 0xca, 0xa0, 0xf6, 0x51, 0xe2, 0x1b, 0x33, 0x9e, 0x3d, 0x56, 0xb9, 0xd9, 0x5a, 0xc3, 0x0b, 0x35, 0x92, 0xa9, 0x48, 0x91, 0x2c, 0x90, 0xbf, 0x54, 0x47, 0x3c, 0xeb, 0xc4, 0x67, 0xb0, 0x9a, 0x39, 0x43, 0xdc, 0xac, 0x48, 0x68, 0xac, 0xb5, 0xb3, 0x5e, 0xa6, 0x91, 0xef, 0xf4, 0xd8, 0xcc, 0x1c, 0xda, 0x0c, 0x6c, 0x0a, 0x9c, 0x16, 0x9a, 0x4e, 0xe1, 0x00, 0x41, 0xf3, 0x5f, 0x43, 0x3f, 0xb5, 0x3d, 0x26, 0x06, 0x7b, 0x29, 0x10, 0x56, 0xb1, 0xda, 0x69, 0xff, 0x46, 0xfb, 0xea, 0x1c, 0xa7, 0x21, 0x36, 0x59, 0xa9, 0x90, 0xd5, 0xd5, 0xdf, 0x14, 0x06, 0xb0, 0x93, 0xda, 0x2a, 0x33, 0xc8, 0xdf, 0x95, 0xab, 0x3c, 0xe8, 0x11, 0xaf, 0xb9, 0xc9, 0x8c, 0x5b, 0xfd, 0x7c, 0x4e, 0x98, 0x1b, 0x3e, 0xa9, 0x4e, 0xef, 0xd2, 0xe2, 0xfe, 0x95, 0x70, 0x7d, 0x89, 0xf3, 0x07, 0xfa, 0x76, 0x82, 0x8b, 0x5c, 0x67, 0x74, 0x95, 0x0a, 0xee, 0x80, 0x62, 0x67, 0x14, 0x25, 0x6e, 0x19, 0x7d, 0xc7, 0xda, 0x97, 0x21, 0x58, 0xc7, 0x68, 0xbb, 0xee, 0x7f, 0xbd, 0x16, 0x9e, 0xc1, 0x5b, 0x4b, 0xb7, 0xbe, 0x72, 0x97, 0x6d, 0xbe, 0xd3, 0xe5, 0x12, 0x76, 0x6e, 0xf2, 0x2e, 0xf3, 0xb8, 0x12, 0xbc, 0xac, 0x4a, 0xa3, 0x11, 0x5a, 0xfe, 0x83, 0xd3, 0x12, 0x84, 0xaf, 0x8e, 0xac, 0xea, 0x4e, 0xe4, 0x9a, 0xfd, 0x42, 0xd9, 0xc4, 0x4f, 0xff, 0x2d, 0x86, 0x1c, 0x08, 0x62, 0x9b, 0x55, 0xda, 0xe0, 0x0f, 0xf6, 0x74, 0xfb, 0x02, 0x8e, 0x73, 0x8b, 0x05, 0xdc, 0xb3, 0x8a, 0xea, 0xa6, 0x96, 0x3c, 0xc3, 0xfa, 0xaf, 0xc7, 0xb6, 0x92, 0x45, 0xa2, 0xa1, 0x22, 0xa9, 0x6d, 0xd2, 0xf0, 0x3a, 0x82, 0x4d, 0x72, 0xb0, 0xfe, 0x0d, 0xd7, 0x98, 0xdf, 0x5c, 0x4b, 0xb7, 0x5a, 0x87, 0x32, 0x4e, 0x76, 0x4a, 0x50, 0xa5, 0xff, 0x52, 0x54, 0x7a, 0xda, 0x8f, 0x8f, 0x88, 0xe6, 0xf3, 0x8a, 0xee, 0x49, 0xd5, 0x8d, 0xdb, 0x01, 0x26, 0x48, 0x85, 0x4c, 0xd5, 0x9d, 0x0e, 0xc9, 0x7b, 0xc3, 0xd5, 0x8d, 0x0a, 0xd4, 0x49, 0x1f, 0x08, 0x59, 0x07, 0x67, 0xce, 0xb1, };
18169 static const u8 ed25519_790_test_vectors_expected_sig[] = {
18170 	0xa9, 0x70, 0x2a, 0x33, 0x95, 0xac, 0xd2, 0x0d, 0x75, 0x43, 0x73, 0x09, 0x5d, 0xc6, 0x14, 0x45, 0x58, 0x4d, 0x8e, 0x57, 0x10, 0x80, 0xe1, 0x79, 0xad, 0xcb, 0xa3, 0x10, 0x6b, 0xb0, 0x6a, 0x7c, 0xe4, 0xd4, 0x60, 0xf1, 0x26, 0x1a, 0xef, 0x86, 0x43, 0xab, 0x16, 0x34, 0xf4, 0x7c, 0x94, 0x14, 0xa3, 0x2e, 0x18, 0x3a, 0x32, 0x76, 0x91, 0xe6, 0x58, 0x43, 0xdd, 0x6c, 0x05, 0x50, 0x72, 0x07, };
18171 static const ec_test_case ed25519_790_test_case = {
18172 	.name = "EDDSA25519-SHA512/wei25519 790",
18173 	.ec_str_p = &wei25519_str_params,
18174 	.priv_key = ed25519_790_test_vectors_priv_key,
18175 	.priv_key_len = sizeof(ed25519_790_test_vectors_priv_key),
18176 	.nn_random = NULL,
18177 	.hash_type = SHA512,
18178 	.msg = (const char *)ed25519_790_test_vectors_message,
18179 	.msglen = sizeof(ed25519_790_test_vectors_message),
18180 	.sig_type = EDDSA25519,
18181 	.exp_sig = ed25519_790_test_vectors_expected_sig,
18182 	.exp_siglen = sizeof(ed25519_790_test_vectors_expected_sig),
18183 	.adata = NULL,
18184 	.adata_len = 0
18185 };
18186 
18187 /************************************************/
18188 static const u8 ed25519_791_test_vectors_priv_key[] = {
18189 	0xbf, 0xc9, 0x62, 0x6c, 0x91, 0xf3, 0x48, 0xfd, 0xaf, 0x46, 0x9d, 0xef, 0x23, 0x02, 0xe9, 0xe3, 0x8f, 0x90, 0x51, 0xe7, 0x34, 0x9e, 0x48, 0xf8, 0x50, 0xcf, 0x35, 0x2a, 0x83, 0x31, 0xa2, 0x8b, };
18190 static const u8 ed25519_791_test_vectors_message[] = {
18191 	0x2f, 0x11, 0xf4, 0x0b, 0x2a, 0x19, 0xf6, 0x40, 0xc0, 0x04, 0x4c, 0x7b, 0x13, 0x96, 0x80, 0xc3, 0xc3, 0xb6, 0x9f, 0x00, 0xff, 0x9f, 0x6a, 0x41, 0x86, 0xfd, 0x7d, 0xed, 0x56, 0x9c, 0x1d, 0x8c, 0x57, 0x20, 0xf1, 0x9d, 0xd3, 0x5c, 0x78, 0x16, 0xd0, 0x8a, 0x94, 0xc0, 0x82, 0x04, 0xe4, 0x76, 0x43, 0xe2, 0x64, 0xd4, 0x25, 0xe2, 0x1c, 0xef, 0xb8, 0x31, 0x29, 0xc9, 0x09, 0xa3, 0xd7, 0x8c, 0xaf, 0x72, 0xc4, 0x6b, 0xf1, 0xa7, 0x29, 0x76, 0x5e, 0xf4, 0xb8, 0xca, 0x80, 0x3f, 0xda, 0xf8, 0x05, 0x2f, 0xfc, 0x6c, 0xc4, 0xa6, 0xb5, 0x79, 0xa1, 0x60, 0xb7, 0x03, 0xb1, 0x53, 0x55, 0xc6, 0xfc, 0xd3, 0xb9, 0xa2, 0xec, 0xbc, 0x26, 0x7e, 0x60, 0xdd, 0x59, 0xf6, 0xa2, 0xb1, 0x94, 0x20, 0xe5, 0x57, 0x27, 0xa8, 0x0b, 0x0b, 0xb6, 0x41, 0x67, 0xc8, 0x3b, 0xa0, 0xc8, 0x05, 0xde, 0xed, 0x49, 0x1d, 0x93, 0xe7, 0x23, 0xf3, 0xb4, 0x32, 0x63, 0xd1, 0x74, 0x20, 0xb8, 0x5b, 0xe8, 0x6c, 0x16, 0x5c, 0x55, 0x27, 0x79, 0xdb, 0x96, 0x0e, 0x0a, 0xa9, 0xeb, 0x4d, 0x9f, 0x3a, 0x16, 0x4a, 0x5a, 0x21, 0xfa, 0xb3, 0xf5, 0x09, 0xa8, 0xf0, 0x19, 0x9a, 0x69, 0x43, 0xc4, 0xb2, 0x23, 0xcf, 0x9d, 0xac, 0xa7, 0xe1, 0x10, 0xe0, 0x56, 0xa8, 0x1d, 0x9c, 0xe0, 0xe0, 0xc0, 0x2a, 0xc2, 0x65, 0xee, 0xac, 0x05, 0xec, 0xd8, 0x44, 0x48, 0x46, 0x8a, 0x4d, 0x12, 0x2b, 0x87, 0xa3, 0xe0, 0x4c, 0x28, 0x37, 0xe4, 0x3d, 0x21, 0x27, 0x04, 0xfd, 0x41, 0xe7, 0xf3, 0xd1, 0x98, 0xa2, 0xe7, 0x6b, 0xec, 0xa0, 0xe7, 0x02, 0x9c, 0x43, 0x2a, 0x06, 0x54, 0xec, 0xd4, 0x4f, 0x98, 0x4c, 0x5d, 0xf0, 0x67, 0x41, 0x96, 0x4d, 0x83, 0x72, 0xc8, 0x6e, 0x16, 0x2a, 0x8c, 0x54, 0x18, 0x84, 0x9b, 0x41, 0xe5, 0x71, 0xfe, 0xb8, 0x3e, 0xb4, 0x2f, 0xbb, 0xcd, 0xdb, 0x8a, 0x08, 0x21, 0x43, 0x90, 0x9e, 0xaa, 0x50, 0x12, 0xb9, 0x79, 0x93, 0x1d, 0xc7, 0xe3, 0xcc, 0xcb, 0x44, 0xc7, 0x91, 0xe0, 0x4b, 0x80, 0x65, 0xee, 0x63, 0xf0, 0x56, 0x1d, 0xa1, 0xbb, 0xf3, 0x7b, 0xf6, 0x50, 0x34, 0x77, 0x87, 0x9c, 0xfb, 0xaf, 0x6d, 0x9d, 0x7d, 0x9a, 0x74, 0x75, 0x55, 0x3f, 0x53, 0x53, 0x5f, 0x84, 0x7a, 0x76, 0xdc, 0x3b, 0x2b, 0x7a, 0x3d, 0x1d, 0x47, 0x0b, 0xbe, 0x17, 0x12, 0x4a, 0x88, 0xe0, 0x3f, 0xe9, 0x94, 0xba, 0x10, 0xc2, 0x42, 0x21, 0xe3, 0x9e, 0x3d, 0x0f, 0xf5, 0x3c, 0x79, 0xe2, 0xfa, 0xaf, 0xa1, 0x90, 0x12, 0xd5, 0xef, 0x19, 0x2b, 0xc6, 0xd5, 0x26, 0x0b, 0x66, 0xf9, 0x97, 0xb6, 0x44, 0xcf, 0x48, 0xd9, 0x9f, 0x38, 0x99, 0xd7, 0xc4, 0x85, 0xe6, 0x84, 0xaa, 0x1e, 0x6e, 0x30, 0x85, 0x5c, 0xf7, 0x5c, 0x2d, 0x80, 0xc7, 0xa3, 0xee, 0x43, 0x54, 0xfe, 0x13, 0xc6, 0x76, 0x09, 0x1c, 0x86, 0x67, 0x37, 0x3d, 0x30, 0xe6, 0x0f, 0xf8, 0xe0, 0x9f, 0xed, 0xef, 0x17, 0x5a, 0x1a, 0x87, 0x39, 0x5f, 0xef, 0xa0, 0x72, 0x2b, 0xf6, 0xc0, 0x1c, 0x65, 0x55, 0xcf, 0xf0, 0x68, 0x89, 0x2a, 0xfe, 0x94, 0x86, 0xcb, 0x1f, 0xcc, 0x5f, 0xb6, 0x64, 0x1e, 0x82, 0xd8, 0x70, 0x79, 0xba, 0x5d, 0x7a, 0x9c, 0x13, 0x93, 0x55, 0xd6, 0xc1, 0x4c, 0x50, 0x7d, 0xbd, 0x59, 0x47, 0x24, 0xb5, 0x53, 0x51, 0x10, 0x09, 0x65, 0xbe, 0x9e, 0x5d, 0xbf, 0xa7, 0x70, 0x88, 0x78, 0xc4, 0xb2, 0x9f, 0x4d, 0x54, 0xc2, 0x17, 0x74, 0x6e, 0x32, 0x6a, 0xb2, 0xa5, 0x4f, 0x99, 0xb8, 0x81, 0xd7, 0xda, 0x5b, 0x11, 0xed, 0xb0, 0x8a, 0x6d, 0x79, 0xd8, 0x85, 0x69, 0x1b, 0x1f, 0x70, 0x85, 0x51, 0x73, 0x10, 0xb3, 0x09, 0xcf, 0x9b, 0x1b, 0x71, 0x4a, 0xab, 0xc5, 0xc1, 0x7a, 0x50, 0x9b, 0x14, 0x0b, 0x89, 0xb3, 0xf9, 0xdc, 0xee, 0x50, 0xca, 0xb4, 0x41, 0xbf, 0x5a, 0xd3, 0xbb, 0xc2, 0x99, 0x90, 0xf6, 0x27, 0x40, 0x61, 0x70, 0xa7, 0xa1, 0x0f, 0x2d, 0x47, 0xdf, 0xc9, 0x25, 0x61, 0x54, 0xf9, 0x62, 0x30, 0x8e, 0x76, 0x9a, 0x2a, 0xb1, 0xb2, 0xa0, 0x0e, 0x27, 0xe3, 0x27, 0xf0, 0xd1, 0xfa, 0x16, 0x4d, 0x1e, 0x38, 0xea, 0xd5, 0xce, 0xaa, 0xe2, 0x38, 0xba, 0x52, 0x6f, 0x54, 0xb8, 0x1b, 0x45, 0xde, 0xa6, 0xc8, 0x97, 0x41, 0x86, 0xb1, 0xb6, 0x72, 0x5f, 0xa4, 0xc8, 0x3e, 0x62, 0xf3, 0xe2, 0x54, 0xf7, 0x29, 0x87, 0x1b, 0xda, 0x4d, 0xc4, 0x44, 0xbc, 0xe7, 0x8f, 0x09, 0x03, 0xfa, 0x31, 0x8e, 0xaa, 0xc8, 0x22, 0xa9, 0x55, 0x32, 0xab, 0x01, 0x9e, 0x9c, 0xfc, 0x56, 0x19, 0xe2, 0xc2, 0x06, 0x7f, 0x25, 0x8f, 0x43, 0x75, 0xd2, 0xe0, 0x22, 0x2e, 0xa5, 0xbf, 0x96, 0xa2, 0x53, 0xa2, 0xa3, 0xfa, 0x9e, 0xea, 0x02, 0xc3, 0xee, 0xcc, 0xb0, 0x28, 0xc7, 0x6b, 0xc6, 0x0d, 0x38, 0x29, 0x8b, 0x95, 0xb9, 0xaf, 0xe6, 0x60, 0x31, 0xb1, 0xa2, 0xa2, 0x61, 0x52, 0xfd, 0xaa, 0x7e, 0xf4, 0xf8, 0x37, 0xab, 0xb5, 0x11, 0x85, 0xdf, 0x8b, 0x2e, 0xf8, 0x5a, 0xd2, 0xc9, 0xbe, 0x6d, 0xfb, 0xa7, 0x5e, 0x37, 0xdc, 0x7d, 0x12, 0xe1, 0x78, 0x7f, 0xc5, 0x5f, 0x86, 0x6f, 0xd0, 0x66, 0xf1, 0x22, 0x91, 0xdf, 0xf1, 0x97, 0x6a, 0xfc, 0x10, 0xda, 0x91, 0x31, 0x01, 0xe7, 0x04, 0x95, 0xd8, 0x78, 0x33, 0x48, 0xd6, 0x11, 0xb0, 0x11, 0xec, 0x67, 0x1c, 0x0d, 0xa7, 0x37, 0xbf, 0x96, 0x2c, 0xdc, 0xc9, 0xe4, 0xa8, 0x00, 0xb5, 0x13, 0x93, 0x5a, 0x56, 0xd0, 0x84, 0xea, 0x64, 0xa7, 0xd4, 0xe8, 0xe9, 0x9e, 0xe9, 0x44, 0x0a, 0x73, 0x61, 0x32, 0xe4, 0x2c, 0x90, 0x95, 0x03, 0xc2, 0x22, 0x4a, 0x14, 0x1b, 0x25, 0xce, };
18192 static const u8 ed25519_791_test_vectors_expected_sig[] = {
18193 	0x66, 0x02, 0x42, 0xc1, 0xdc, 0xf3, 0x29, 0x13, 0x69, 0xc6, 0x5c, 0x9d, 0x7f, 0x89, 0x87, 0x2e, 0xab, 0x48, 0x22, 0x00, 0xe3, 0x44, 0xb2, 0x96, 0xe3, 0x36, 0xa0, 0xa2, 0xe6, 0x31, 0xfa, 0x79, 0x60, 0x24, 0xb6, 0xe1, 0x11, 0x9c, 0x27, 0xd5, 0x22, 0x64, 0xa4, 0x98, 0x15, 0xdd, 0x78, 0x19, 0x27, 0xa7, 0xdf, 0x46, 0x7e, 0x88, 0xb8, 0x01, 0xe6, 0x84, 0xfc, 0x60, 0x22, 0x96, 0x25, 0x0e, };
18194 static const ec_test_case ed25519_791_test_case = {
18195 	.name = "EDDSA25519-SHA512/wei25519 791",
18196 	.ec_str_p = &wei25519_str_params,
18197 	.priv_key = ed25519_791_test_vectors_priv_key,
18198 	.priv_key_len = sizeof(ed25519_791_test_vectors_priv_key),
18199 	.nn_random = NULL,
18200 	.hash_type = SHA512,
18201 	.msg = (const char *)ed25519_791_test_vectors_message,
18202 	.msglen = sizeof(ed25519_791_test_vectors_message),
18203 	.sig_type = EDDSA25519,
18204 	.exp_sig = ed25519_791_test_vectors_expected_sig,
18205 	.exp_siglen = sizeof(ed25519_791_test_vectors_expected_sig),
18206 	.adata = NULL,
18207 	.adata_len = 0
18208 };
18209 
18210 /************************************************/
18211 static const u8 ed25519_792_test_vectors_priv_key[] = {
18212 	0x39, 0x3b, 0x76, 0x94, 0x82, 0x37, 0x5b, 0x82, 0x14, 0x27, 0xa6, 0x6d, 0x16, 0xe4, 0xf5, 0x51, 0x85, 0xb7, 0xa3, 0xb7, 0x33, 0x8f, 0x1a, 0x06, 0xf6, 0x7c, 0xdf, 0xa7, 0xe3, 0x5c, 0x54, 0x1c, };
18213 static const u8 ed25519_792_test_vectors_message[] = {
18214 	0x8a, 0xe8, 0x05, 0x3e, 0x03, 0xbe, 0xbe, 0xae, 0x54, 0x40, 0x43, 0xb8, 0x41, 0x4b, 0x38, 0x53, 0x64, 0xad, 0xd1, 0x67, 0x37, 0x37, 0xcf, 0x8a, 0xb2, 0x01, 0x93, 0xd4, 0xaa, 0xbc, 0x8a, 0x78, 0xe1, 0xd6, 0x9b, 0x9c, 0x7e, 0x52, 0x72, 0x9e, 0x69, 0x30, 0x78, 0x06, 0xe9, 0x27, 0xce, 0x38, 0x07, 0xb0, 0x7c, 0x68, 0xc8, 0x33, 0xc4, 0xfc, 0xf1, 0x6d, 0xb1, 0x5e, 0x7d, 0xce, 0x60, 0x4d, 0x17, 0x98, 0x91, 0x5f, 0xd4, 0x21, 0x16, 0x89, 0xb4, 0x86, 0x46, 0x42, 0x50, 0x2d, 0x38, 0xe9, 0x1b, 0x19, 0x97, 0xb7, 0x18, 0x23, 0x31, 0x8b, 0x69, 0xab, 0xe5, 0xbe, 0xd6, 0xf5, 0xe3, 0x01, 0x5b, 0xfb, 0x22, 0xdf, 0x30, 0xdb, 0x37, 0x1f, 0x22, 0x60, 0xc5, 0xc2, 0x2e, 0xba, 0x60, 0xdf, 0x39, 0xb3, 0xed, 0xd3, 0xc4, 0xd7, 0xa1, 0xe1, 0x11, 0xcd, 0x9b, 0x8a, 0xa4, 0x6f, 0x67, 0xbd, 0x0c, 0xf3, 0xa7, 0x17, 0xaf, 0x06, 0xec, 0x0c, 0xe5, 0x67, 0x02, 0x8e, 0x06, 0xe4, 0x79, 0x79, 0x34, 0xad, 0x69, 0xb1, 0xf5, 0xbe, 0x44, 0x0f, 0xf3, 0x7a, 0x8a, 0x03, 0x4b, 0x15, 0x33, 0xfa, 0x94, 0x64, 0x24, 0xac, 0x59, 0x54, 0x00, 0xad, 0x27, 0xd3, 0xbe, 0x76, 0xdc, 0x89, 0xba, 0x9d, 0x6c, 0x49, 0x93, 0x9a, 0x09, 0xf2, 0xe4, 0x01, 0xc8, 0xf2, 0x0f, 0x7f, 0x7b, 0x4b, 0x9e, 0x63, 0xb9, 0xd5, 0x52, 0x01, 0x53, 0x4a, 0xb4, 0xcc, 0x7b, 0xe8, 0x85, 0xf0, 0x43, 0x2a, 0x2c, 0x66, 0x73, 0xd2, 0xe7, 0x65, 0x19, 0x4d, 0xff, 0xd9, 0xb6, 0x09, 0x6d, 0xd2, 0xb2, 0x84, 0x39, 0x18, 0x75, 0x09, 0x59, 0xa8, 0xdd, 0xe4, 0xa3, 0xab, 0x40, 0x7e, 0xb2, 0xf7, 0xe1, 0xa4, 0x9c, 0x25, 0x97, 0xe3, 0x08, 0x05, 0xf8, 0x48, 0x0d, 0xd0, 0xcc, 0x82, 0x72, 0xa3, 0x20, 0xc0, 0x0a, 0xa2, 0xb2, 0x10, 0xf5, 0x76, 0xe4, 0x25, 0x77, 0xd3, 0xaa, 0x41, 0x97, 0x03, 0x69, 0x7c, 0xa4, 0x06, 0xd4, 0x3a, 0x1a, 0x4f, 0x99, 0xb0, 0x73, 0x36, 0x64, 0xf6, 0xd6, 0xb2, 0x40, 0x3c, 0xba, 0x1b, 0xdc, 0xc5, 0x1f, 0x54, 0x1c, 0xf2, 0x42, 0x36, 0x07, 0x05, 0x70, 0x54, 0x07, 0x55, 0xc7, 0xa8, 0x63, 0x1f, 0xcc, 0x2f, 0x18, 0x93, 0x8f, 0xa1, 0x1b, 0xc2, 0x91, 0x15, 0x5b, 0x39, 0xd7, 0xa7, 0x62, 0xa1, 0xff, 0x4d, 0xca, 0x97, 0xb4, 0x48, 0xf7, 0x0e, 0x2d, 0x3d, 0xe4, 0x47, 0xcb, 0x08, 0xf9, 0x18, 0xea, 0x20, 0xcb, 0x43, 0x3f, 0xa1, 0x15, 0xe3, 0x08, 0x80, 0xc9, 0x6c, 0x8c, 0xf5, 0xf0, 0xeb, 0xbc, 0xf4, 0x82, 0x30, 0x9d, 0xb6, 0xdc, 0x1f, 0xb6, 0x4e, 0x17, 0xc0, 0x4d, 0x7c, 0xdf, 0x7a, 0x90, 0xf4, 0x01, 0x4d, 0x15, 0xae, 0x76, 0x96, 0xb4, 0x44, 0x23, 0xb0, 0xba, 0x08, 0x4e, 0xed, 0x4d, 0x3f, 0xb2, 0x8c, 0x1e, 0xfb, 0x39, 0x82, 0x8a, 0xca, 0x2f, 0x40, 0xca, 0x6d, 0xf3, 0x42, 0xc2, 0x0e, 0x95, 0xf8, 0x00, 0x6b, 0x27, 0x67, 0xa8, 0x3f, 0x50, 0xc3, 0x1f, 0xcc, 0x15, 0x81, 0xa0, 0x97, 0x53, 0xe7, 0x82, 0x91, 0xf0, 0xd9, 0x93, 0x1d, 0x99, 0x2a, 0xd3, 0x60, 0x44, 0x73, 0xce, 0xb8, 0x85, 0xec, 0xbe, 0x78, 0x57, 0xcc, 0x52, 0xad, 0x55, 0x85, 0x33, 0x4d, 0x14, 0x85, 0xd0, 0x22, 0xe1, 0x06, 0xb7, 0x1c, 0x29, 0xbd, 0xfc, 0xf2, 0x3e, 0xe8, 0xa4, 0x75, 0xdf, 0x2c, 0x09, 0x05, 0x32, 0x35, 0x6a, 0x6f, 0xfc, 0x02, 0x23, 0x23, 0x17, 0x98, 0x8a, 0x2c, 0xbc, 0xfb, 0xc2, 0xa3, 0x6b, 0x4b, 0x48, 0x3c, 0xb4, 0x45, 0x10, 0xe8, 0x55, 0x99, 0xb6, 0x12, 0x59, 0x6b, 0x62, 0x65, 0x72, 0xb0, 0x99, 0x6d, 0x8a, 0x61, 0xc0, 0xee, 0x3e, 0xff, 0xf1, 0xf7, 0xc7, 0x1c, 0x05, 0xfb, 0x5a, 0x8d, 0x8c, 0x5d, 0x09, 0xd9, 0x24, 0xeb, 0xaa, 0xc8, 0x80, 0x04, 0x51, 0xc9, 0xdb, 0x24, 0x56, 0x71, 0x0a, 0x27, 0x9d, 0xfe, 0x2d, 0x22, 0xf6, 0xae, 0xa9, 0xde, 0x31, 0x80, 0x1d, 0xc7, 0x42, 0x53, 0x43, 0x62, 0xb0, 0xe8, 0x10, 0xe9, 0x9e, 0x84, 0x1d, 0xbb, 0x7f, 0x0c, 0xf9, 0xaf, 0x1a, 0xef, 0x54, 0x2a, 0x52, 0xc7, 0x76, 0xcc, 0x51, 0xf2, 0x87, 0x36, 0x8f, 0xbe, 0x6a, 0xd6, 0x51, 0xfa, 0xd5, 0x78, 0x7e, 0xf7, 0x7c, 0x73, 0x53, 0x5f, 0x3d, 0xfb, 0x36, 0x18, 0xcc, 0x8f, 0x0d, 0xbb, 0x54, 0x9d, 0xdc, 0xa9, 0xb9, 0xbf, 0x91, 0x13, 0x5a, 0x34, 0x56, 0x00, 0x1a, 0x46, 0x21, 0x5a, 0xde, 0x38, 0x8e, 0x7c, 0xeb, 0x9f, 0xcd, 0xfd, 0x0d, 0x2d, 0x0a, 0x03, 0x56, 0xaf, 0xbe, 0x2c, 0xec, 0x1c, 0x2e, 0x78, 0xb4, 0xd9, 0x98, 0xd4, 0x55, 0x4f, 0x46, 0x21, 0xf1, 0x15, 0x1d, 0xd3, 0xff, 0xd3, 0xba, 0x4c, 0x0b, 0xc8, 0x52, 0xf3, 0x11, 0x75, 0x8c, 0x5d, 0xca, 0x42, 0x5d, 0x18, 0xba, 0x15, 0xa8, 0xd6, 0x7c, 0xa4, 0x01, 0xd0, 0xe6, 0xcf, 0x28, 0x0c, 0xb8, 0x83, 0x84, 0xa2, 0xda, 0xd4, 0x9f, 0xae, 0x39, 0xba, 0x2a, 0x77, 0xb4, 0x67, 0xb3, 0x23, 0x8a, 0xa2, 0x8c, 0xfd, 0x13, 0x7e, 0x5c, 0x5c, 0x0f, 0xf9, 0x00, 0x0f, 0x8b, 0x06, 0xa2, 0x19, 0x2e, 0x16, 0x29, 0x20, 0x69, 0x22, 0x65, 0xdb, 0x24, 0xab, 0x6a, 0xed, 0xe5, 0x35, 0xe3, 0x1c, 0x20, 0x93, 0xbe, 0x57, 0xeb, 0xf8, 0x80, 0x5d, 0xf1, 0x78, 0x89, 0x14, 0xf3, 0xa8, 0x84, 0xf8, 0x84, 0x17, 0x90, 0x15, 0x80, 0x8d, 0xb4, 0xd3, 0x02, 0x0f, 0x3e, 0x78, 0xbc, 0x34, 0x28, 0x5d, 0x23, 0x37, 0x62, 0xe8, 0x99, 0xeb, 0xff, 0x28, 0x42, 0x82, 0x15, 0xe2, 0x44, 0x40, 0x4d, 0xe2, 0x91, 0x72, 0x8f, 0xbf, 0x41, 0x24, 0xce, 0x5b, 0x24, 0x35, 0x26, 0x0a, 0x8e, 0x34, 0x11, 0x80, 0x07, 0x5a, 0x56, 0x51, 0xe6, };
18215 static const u8 ed25519_792_test_vectors_expected_sig[] = {
18216 	0x31, 0xf9, 0x8c, 0x0a, 0x08, 0xfd, 0xa8, 0xe7, 0x35, 0xb5, 0x73, 0x66, 0xaa, 0x1b, 0x83, 0xb9, 0x3d, 0xae, 0x63, 0xb5, 0x81, 0x0c, 0x82, 0x1d, 0x99, 0xcb, 0x39, 0xdf, 0x52, 0x1f, 0xea, 0xc0, 0x7f, 0x3c, 0x41, 0x0b, 0x27, 0xba, 0x33, 0x07, 0x75, 0x7d, 0x60, 0x49, 0xf2, 0x24, 0x54, 0xfb, 0x6d, 0xe9, 0xe2, 0xc3, 0xc2, 0x43, 0x8d, 0x68, 0x31, 0x90, 0x97, 0xd1, 0x12, 0xcf, 0xdb, 0x07, };
18217 static const ec_test_case ed25519_792_test_case = {
18218 	.name = "EDDSA25519-SHA512/wei25519 792",
18219 	.ec_str_p = &wei25519_str_params,
18220 	.priv_key = ed25519_792_test_vectors_priv_key,
18221 	.priv_key_len = sizeof(ed25519_792_test_vectors_priv_key),
18222 	.nn_random = NULL,
18223 	.hash_type = SHA512,
18224 	.msg = (const char *)ed25519_792_test_vectors_message,
18225 	.msglen = sizeof(ed25519_792_test_vectors_message),
18226 	.sig_type = EDDSA25519,
18227 	.exp_sig = ed25519_792_test_vectors_expected_sig,
18228 	.exp_siglen = sizeof(ed25519_792_test_vectors_expected_sig),
18229 	.adata = NULL,
18230 	.adata_len = 0
18231 };
18232 
18233 /************************************************/
18234 static const u8 ed25519_793_test_vectors_priv_key[] = {
18235 	0x26, 0xcb, 0xc2, 0x51, 0x0e, 0xe6, 0xea, 0x39, 0x0a, 0x2c, 0xb9, 0x48, 0xa0, 0x15, 0xd1, 0x31, 0xab, 0xf4, 0xc0, 0x95, 0x49, 0x15, 0x62, 0x0b, 0x78, 0x16, 0xae, 0xcf, 0x4e, 0x11, 0xda, 0x6d, };
18236 static const u8 ed25519_793_test_vectors_message[] = {
18237 	0x9c, 0xeb, 0xe2, 0x4b, 0x4f, 0x8a, 0xde, 0x86, 0x43, 0x0e, 0x27, 0x9a, 0x3c, 0x43, 0x3e, 0x4a, 0xe1, 0x7e, 0x00, 0x88, 0x52, 0xa2, 0x4f, 0x08, 0x69, 0x0c, 0xbc, 0x3d, 0x75, 0xe3, 0xb7, 0xf2, 0x00, 0xda, 0x89, 0x7c, 0x25, 0xf7, 0x48, 0x3b, 0x37, 0x63, 0x7d, 0x4b, 0xc1, 0x10, 0x08, 0xd9, 0x22, 0x4c, 0xd5, 0x81, 0xfb, 0xc0, 0x38, 0xad, 0xad, 0xa0, 0x2d, 0x27, 0x1e, 0xd2, 0xa5, 0xd2, 0x85, 0xd8, 0x43, 0xa0, 0xf8, 0xb7, 0x9e, 0x37, 0x94, 0x5d, 0xc3, 0x5b, 0xc2, 0x64, 0xbe, 0xcd, 0x80, 0x43, 0x07, 0xe1, 0xd4, 0x42, 0x18, 0xa6, 0x43, 0xe4, 0xb5, 0x9a, 0x93, 0x11, 0xde, 0x98, 0x5d, 0x24, 0xb4, 0xc2, 0x6f, 0xb1, 0x46, 0x03, 0xbe, 0x5d, 0xba, 0x18, 0x39, 0xee, 0x0c, 0x8d, 0x2e, 0xde, 0x6c, 0xb5, 0x0a, 0xf6, 0x7c, 0x80, 0x45, 0x19, 0x03, 0x7b, 0x1b, 0x16, 0x63, 0x31, 0x8c, 0xfc, 0x6e, 0x75, 0xd0, 0xf0, 0x51, 0xdb, 0xb5, 0xd3, 0xea, 0xf3, 0xaa, 0xd1, 0xf7, 0x8e, 0xf0, 0xcf, 0xf4, 0x8d, 0x5c, 0x55, 0xb2, 0xfd, 0x25, 0xdb, 0x15, 0x39, 0xd0, 0xf0, 0x2d, 0xae, 0x9f, 0x25, 0x14, 0x8a, 0x8d, 0x33, 0x8b, 0x97, 0x87, 0x9b, 0xbd, 0x39, 0xdf, 0x96, 0x1a, 0xa2, 0xc3, 0x96, 0x31, 0x5a, 0x2a, 0x86, 0xcc, 0x78, 0x35, 0x81, 0xe6, 0x7e, 0xa8, 0x44, 0xac, 0xfe, 0x86, 0x45, 0x42, 0x8a, 0x27, 0xb8, 0xd3, 0x2e, 0xa3, 0x06, 0x4e, 0x3b, 0xf6, 0x2d, 0xcf, 0x58, 0x01, 0x0e, 0xc4, 0x34, 0x88, 0x62, 0xfa, 0xc2, 0x5e, 0x3d, 0x9f, 0xcd, 0x4e, 0x5d, 0x65, 0xbe, 0x59, 0x90, 0x5d, 0x81, 0x6d, 0xfb, 0x96, 0x49, 0x92, 0xba, 0x7a, 0xce, 0xef, 0x8c, 0x20, 0x75, 0xa3, 0x12, 0xe5, 0xff, 0xc4, 0xf9, 0x53, 0x0e, 0xa2, 0x0f, 0x77, 0xf9, 0x3e, 0x81, 0xcf, 0x8a, 0x01, 0x9d, 0xc3, 0x94, 0x56, 0x34, 0x36, 0x4b, 0xab, 0xf7, 0x97, 0x72, 0x04, 0x5a, 0x0d, 0xba, 0xa7, 0x7c, 0x47, 0xa2, 0x2b, 0x77, 0x22, 0x3b, 0x70, 0x4d, 0xeb, 0xd2, 0xd0, 0x03, 0xf6, 0xa5, 0xc7, 0xbf, 0x6b, 0x19, 0xcd, 0x2c, 0x49, 0xb6, 0x14, 0xfd, 0x4d, 0x47, 0xfd, 0x25, 0x1f, 0xe6, 0x22, 0xcb, 0x98, 0x17, 0x85, 0xc1, 0x46, 0xbd, 0xb7, 0xc1, 0xd2, 0xea, 0x02, 0xb1, 0x16, 0x92, 0x3b, 0xf9, 0x8a, 0x1a, 0xfb, 0xb7, 0x85, 0x8a, 0xdf, 0x2d, 0xf9, 0x38, 0xa7, 0x90, 0xec, 0x1f, 0x90, 0x74, 0xad, 0xb8, 0xd1, 0xaf, 0xb5, 0x63, 0x3f, 0xa9, 0x61, 0xa8, 0x47, 0x64, 0x01, 0x0d, 0x3b, 0xde, 0xd1, 0xc0, 0x33, 0xd2, 0x5a, 0xbd, 0xb4, 0xb0, 0x0f, 0xb0, 0x5e, 0xd7, 0x64, 0x0f, 0xae, 0x61, 0x87, 0x9d, 0xf8, 0x8f, 0x0b, 0x09, 0xe3, 0xab, 0xd0, 0x57, 0xb9, 0xa5, 0x21, 0x08, 0xa9, 0xbc, 0x98, 0x5f, 0xb7, 0x3a, 0x5f, 0x29, 0xd8, 0x4d, 0x1c, 0xa6, 0x92, 0x1b, 0x62, 0xf1, 0xb7, 0x03, 0xc7, 0xee, 0xb4, 0x81, 0x5d, 0x9d, 0xd6, 0xd0, 0x66, 0x73, 0x8d, 0xb1, 0x18, 0xba, 0xf6, 0x1b, 0x04, 0x22, 0xf3, 0x88, 0xf1, 0xbf, 0xc9, 0xe3, 0xa9, 0xbe, 0xd8, 0x3a, 0x1a, 0x72, 0x7d, 0xcc, 0x26, 0x6a, 0x99, 0x88, 0x36, 0x48, 0x46, 0x80, 0x7f, 0x4d, 0x55, 0x18, 0xbc, 0x2e, 0xdd, 0x0e, 0xcb, 0x34, 0x13, 0xc2, 0x6f, 0xd0, 0xc7, 0x9b, 0x75, 0xd8, 0xcb, 0x5b, 0xcd, 0x85, 0xc0, 0x6f, 0xcc, 0xea, 0x4d, 0x03, 0xfb, 0x89, 0x88, 0xdf, 0xf3, 0xed, 0x0c, 0xc9, 0xdb, 0xae, 0x78, 0xd6, 0xae, 0x8d, 0x5f, 0xc4, 0x02, 0x46, 0x17, 0xa2, 0x3f, 0x52, 0xbd, 0x61, 0x53, 0x85, 0xd4, 0xee, 0xe0, 0x8f, 0x91, 0x34, 0xeb, 0x3b, 0x25, 0x0c, 0x8f, 0x82, 0x2b, 0x47, 0xd9, 0x1e, 0x8c, 0x4d, 0x4c, 0x29, 0x29, 0x80, 0x16, 0xe6, 0xfc, 0x81, 0xf1, 0xf1, 0x09, 0x92, 0x53, 0xd7, 0x94, 0x5e, 0x07, 0x98, 0x95, 0x5d, 0xa0, 0xdd, 0xe1, 0x4e, 0xbb, 0x93, 0x4e, 0xcf, 0xae, 0xea, 0xba, 0xe8, 0x78, 0x83, 0xe1, 0xcc, 0x39, 0x80, 0x67, 0x40, 0x0f, 0xe4, 0x62, 0xa2, 0xc4, 0xe9, 0xf2, 0x32, 0xdb, 0x5c, 0xdd, 0x61, 0xeb, 0xa9, 0x49, 0x18, 0x8c, 0xf0, 0x1b, 0x23, 0x8b, 0xe7, 0xad, 0xa9, 0x38, 0xf0, 0x02, 0xdc, 0x3a, 0xe3, 0x1f, 0xdf, 0xd4, 0x25, 0xc8, 0xd4, 0x6e, 0xa0, 0x32, 0x32, 0x3a, 0xaf, 0x20, 0xdd, 0x3d, 0xe2, 0x50, 0x7d, 0x36, 0xbb, 0x45, 0xfb, 0xb9, 0x1c, 0x40, 0x96, 0x9a, 0x9e, 0x5d, 0xa2, 0x0f, 0x7f, 0x93, 0x6b, 0x0f, 0x4b, 0x13, 0x7b, 0x62, 0xfe, 0x2b, 0xa3, 0xa6, 0x67, 0xbc, 0x03, 0x62, 0xd9, 0x3f, 0xc5, 0x0d, 0x3f, 0x22, 0x95, 0xe1, 0x67, 0xfc, 0xba, 0xb0, 0xfb, 0x3a, 0x39, 0xb7, 0xcb, 0x02, 0x4b, 0x57, 0x8f, 0x94, 0x90, 0xf7, 0x34, 0xb2, 0x8c, 0x9c, 0xcf, 0x71, 0x92, 0xf1, 0x83, 0x94, 0x7d, 0x5a, 0x51, 0x3e, 0xfa, 0x49, 0x16, 0xe4, 0xd8, 0x2b, 0x2a, 0xb4, 0xba, 0x7e, 0xc2, 0xff, 0xba, 0x21, 0x3c, 0xe8, 0x2a, 0xd6, 0xed, 0x3b, 0x10, 0xe4, 0x85, 0x53, 0xe7, 0x33, 0xc9, 0x40, 0xaa, 0x9b, 0x9c, 0xe7, 0x13, 0x37, 0xc6, 0xc2, 0x80, 0x5d, 0xfb, 0x8d, 0xd6, 0x61, 0x8b, 0x6d, 0x40, 0x90, 0xa3, 0xd6, 0xcc, 0x96, 0x3e, 0xce, 0xa2, 0x6d, 0x1c, 0xdc, 0x2b, 0xf5, 0xac, 0x99, 0x9c, 0x11, 0x27, 0x61, 0x68, 0xa9, 0x31, 0xd8, 0x16, 0x46, 0x9d, 0x79, 0x08, 0x3c, 0x24, 0x08, 0x1a, 0x50, 0xdc, 0xbd, 0x22, 0x27, 0x52, 0x38, 0x52, 0x67, 0xce, 0x1b, 0xfc, 0x1d, 0xb7, 0x6b, 0x15, 0x54, 0xad, 0x57, 0xe3, 0x47, 0x52, 0xb7, 0xf8, 0x98, 0x31, 0x47, 0xc1, 0x16, 0xd4, 0xa3, 0xfa, 0xe6, 0xf6, 0xd5, 0x7e, 0x65, 0x4f, 0xed, 0xd7, 0x37, 0x8d, 0x2b, 0x49, 0x89, 0xea, };
18238 static const u8 ed25519_793_test_vectors_expected_sig[] = {
18239 	0x67, 0x10, 0xd0, 0xdd, 0x00, 0x54, 0x5b, 0x44, 0x4c, 0xf7, 0x14, 0xb7, 0x91, 0x44, 0xfe, 0x79, 0xf3, 0x8c, 0xb1, 0xc0, 0xf5, 0xb7, 0x42, 0x48, 0xd4, 0xf0, 0x1f, 0xe3, 0x60, 0x11, 0x7a, 0x26, 0xff, 0xed, 0x4a, 0x3b, 0xf2, 0x13, 0x23, 0xb2, 0x8a, 0x39, 0x3a, 0xe9, 0xde, 0xe0, 0x7d, 0x69, 0xe5, 0x83, 0xe3, 0x16, 0xc6, 0xa5, 0x73, 0xd3, 0x7c, 0x64, 0x4a, 0x8d, 0x62, 0xc4, 0x05, 0x06, };
18240 static const ec_test_case ed25519_793_test_case = {
18241 	.name = "EDDSA25519-SHA512/wei25519 793",
18242 	.ec_str_p = &wei25519_str_params,
18243 	.priv_key = ed25519_793_test_vectors_priv_key,
18244 	.priv_key_len = sizeof(ed25519_793_test_vectors_priv_key),
18245 	.nn_random = NULL,
18246 	.hash_type = SHA512,
18247 	.msg = (const char *)ed25519_793_test_vectors_message,
18248 	.msglen = sizeof(ed25519_793_test_vectors_message),
18249 	.sig_type = EDDSA25519,
18250 	.exp_sig = ed25519_793_test_vectors_expected_sig,
18251 	.exp_siglen = sizeof(ed25519_793_test_vectors_expected_sig),
18252 	.adata = NULL,
18253 	.adata_len = 0
18254 };
18255 
18256 /************************************************/
18257 static const u8 ed25519_794_test_vectors_priv_key[] = {
18258 	0xb1, 0xf5, 0x9e, 0x3c, 0x23, 0x80, 0xd7, 0xaa, 0x41, 0x4d, 0x0b, 0xf9, 0x08, 0x93, 0xa3, 0x8d, 0xdd, 0xfc, 0x29, 0x38, 0x59, 0x30, 0x3d, 0x16, 0xf0, 0x0d, 0x9e, 0xae, 0x6c, 0xb3, 0x45, 0x0e, };
18259 static const u8 ed25519_794_test_vectors_message[] = {
18260 	0xc6, 0x17, 0x4c, 0x9a, 0xd3, 0x68, 0x5d, 0xd6, 0x48, 0x63, 0x60, 0x17, 0x83, 0x7b, 0x8d, 0x99, 0x22, 0x00, 0x31, 0x9e, 0x9a, 0x5a, 0x0d, 0x26, 0xd9, 0x4d, 0x2d, 0xa7, 0x5e, 0x2c, 0x3a, 0xff, 0x46, 0xf4, 0x2d, 0x7b, 0x3a, 0xba, 0x47, 0x2b, 0x7f, 0x86, 0x0b, 0x0f, 0xe1, 0xf6, 0x95, 0x52, 0x97, 0x31, 0xfd, 0xc8, 0xcf, 0x0d, 0xa7, 0x05, 0xd1, 0xd0, 0x9a, 0xca, 0xd0, 0x4f, 0x01, 0x08, 0x37, 0xec, 0xef, 0x41, 0x9d, 0x57, 0xe9, 0xea, 0x6c, 0xac, 0xf1, 0x68, 0xc5, 0x21, 0x56, 0x96, 0xf4, 0x71, 0xf3, 0xca, 0xa8, 0x97, 0x60, 0x7c, 0x62, 0x9d, 0x44, 0x3d, 0xe0, 0x99, 0xd3, 0x17, 0x53, 0xc2, 0x46, 0x77, 0xd8, 0xd7, 0x5f, 0x4b, 0xf1, 0x72, 0x46, 0x81, 0x8b, 0x58, 0xad, 0xc0, 0x42, 0x4b, 0x76, 0x2a, 0x19, 0x1e, 0xf3, 0x9a, 0x70, 0x76, 0xa5, 0xad, 0x12, 0x61, 0x4c, 0xf5, 0x4c, 0x47, 0xeb, 0x09, 0x08, 0xbb, 0x86, 0x65, 0x18, 0xc5, 0xfa, 0xc1, 0xca, 0x2d, 0x2e, 0x5b, 0x65, 0x75, 0x20, 0xa2, 0xb3, 0x69, 0x5c, 0x6f, 0xb3, 0x60, 0xf1, 0x6f, 0x4a, 0xb3, 0x57, 0x99, 0x8e, 0x4c, 0x0e, 0x97, 0x23, 0x1d, 0x6f, 0x89, 0xc9, 0x68, 0xdc, 0x29, 0xec, 0xc1, 0xaa, 0x91, 0xfa, 0x0d, 0x75, 0x43, 0xb5, 0xd2, 0x24, 0x7b, 0x0d, 0x85, 0xe4, 0x87, 0x43, 0xab, 0x7c, 0xc8, 0x15, 0xcf, 0xda, 0xa8, 0x2b, 0xf6, 0x8c, 0xa6, 0xd3, 0xe2, 0x25, 0x0b, 0xfd, 0xa2, 0x70, 0x24, 0xd6, 0x1b, 0x47, 0x4c, 0x6b, 0x81, 0x54, 0xac, 0x8d, 0x1b, 0x5a, 0x36, 0x20, 0x97, 0x82, 0x51, 0x5c, 0x16, 0x46, 0x68, 0x0d, 0x37, 0x06, 0x9b, 0x8b, 0x44, 0x12, 0xf9, 0x51, 0xb0, 0x25, 0xa4, 0xd5, 0x43, 0x62, 0x5d, 0xd0, 0x22, 0x90, 0xbf, 0x03, 0xc6, 0x73, 0x46, 0x13, 0xf9, 0x9b, 0x7a, 0x4c, 0x3a, 0xf5, 0xc5, 0xf9, 0xe9, 0xac, 0x34, 0x74, 0x46, 0x5e, 0x64, 0x84, 0x23, 0x01, 0x8d, 0x40, 0xa6, 0xad, 0xbe, 0x88, 0xa3, 0x30, 0x1d, 0x3d, 0x25, 0x9b, 0x04, 0xee, 0x44, 0xcc, 0x05, 0x62, 0xee, 0x0d, 0xed, 0x4f, 0x5e, 0x26, 0xad, 0x97, 0x7a, 0xb5, 0x63, 0x1f, 0x85, 0x76, 0x8d, 0xbc, 0xe5, 0x3f, 0x61, 0x6c, 0x02, 0x9a, 0x8b, 0x8f, 0x93, 0x3e, 0x2a, 0x92, 0x64, 0xb1, 0xc8, 0x1f, 0x51, 0x7e, 0x9f, 0xf5, 0x8a, 0xb9, 0xf4, 0x5a, 0x23, 0xee, 0xed, 0x42, 0x04, 0x35, 0x8f, 0x8f, 0xff, 0x0c, 0x8f, 0x97, 0x5e, 0xf1, 0xdf, 0xa5, 0x77, 0x6a, 0x5f, 0x77, 0x93, 0xba, 0xe2, 0xf2, 0x81, 0xd7, 0xb0, 0xcb, 0xef, 0x24, 0x0b, 0x3f, 0xc6, 0xbe, 0x05, 0x88, 0x21, 0xea, 0x2b, 0x80, 0x0f, 0xff, 0xe5, 0x5a, 0x7d, 0xe0, 0xaf, 0xc9, 0x3e, 0xde, 0x9c, 0x60, 0xc8, 0xde, 0x00, 0x5a, 0xbb, 0x9a, 0x2c, 0x88, 0xf4, 0xe6, 0x1e, 0x8d, 0xeb, 0x31, 0x70, 0xf1, 0x07, 0x8a, 0x36, 0xe2, 0xd8, 0xf2, 0xa5, 0x82, 0x39, 0xbd, 0xee, 0x49, 0x6e, 0x90, 0xd1, 0x37, 0xd2, 0x11, 0x0f, 0x0a, 0xd8, 0x57, 0xa8, 0x8b, 0x35, 0x27, 0x66, 0x4f, 0x78, 0x19, 0x39, 0xe0, 0xb2, 0xf7, 0x66, 0x34, 0xff, 0x9f, 0x6c, 0x57, 0xe1, 0xc4, 0x3f, 0x58, 0x24, 0x31, 0x71, 0xcd, 0x86, 0x2e, 0xf4, 0x28, 0x45, 0x76, 0x17, 0x2a, 0xf1, 0xf6, 0xc3, 0xbd, 0x37, 0xd5, 0xd7, 0x4b, 0x28, 0xa7, 0xa9, 0x86, 0x98, 0xbd, 0x74, 0xe5, 0x7b, 0xbc, 0x14, 0x2e, 0x67, 0xf7, 0x03, 0xf9, 0xd6, 0x2c, 0xde, 0x76, 0x1a, 0x02, 0x26, 0x8f, 0xec, 0xb3, 0x43, 0xfc, 0x01, 0x41, 0x88, 0x36, 0x41, 0x4f, 0x12, 0x22, 0xca, 0x24, 0xbc, 0xdd, 0x69, 0xd0, 0x05, 0x90, 0x1d, 0xa2, 0xa0, 0xf9, 0x44, 0x65, 0xe4, 0xd4, 0xba, 0x68, 0x89, 0x88, 0x16, 0xbf, 0x7e, 0x3e, 0x4b, 0xb7, 0x9c, 0x8c, 0xa5, 0x99, 0x7f, 0xba, 0x9a, 0x8d, 0xf8, 0x4f, 0xaa, 0x2d, 0x24, 0xb0, 0x44, 0xc4, 0xea, 0x61, 0x02, 0x9a, 0x46, 0xcb, 0xa7, 0x03, 0x42, 0x1e, 0x36, 0x1d, 0xfa, 0x52, 0xca, 0xaf, 0xf3, 0xbb, 0xaa, 0xb7, 0xfd, 0x75, 0x3f, 0x28, 0x56, 0xd7, 0xc0, 0x83, 0xae, 0xb9, 0x76, 0x8d, 0xa1, 0x1d, 0x82, 0x1e, 0x2d, 0x30, 0x9f, 0x7a, 0x73, 0x5c, 0x39, 0x96, 0x92, 0xda, 0xc2, 0xf2, 0x62, 0x84, 0x6b, 0x89, 0x1b, 0xf6, 0x46, 0x1a, 0xf2, 0x3c, 0x8c, 0x7c, 0xe1, 0xd4, 0xd9, 0x03, 0x2c, 0x3c, 0x14, 0x0f, 0x73, 0x9e, 0x55, 0x84, 0xc3, 0x6f, 0x05, 0xea, 0xf4, 0x34, 0x9f, 0xf4, 0x54, 0x5f, 0x28, 0x3a, 0x4e, 0x0f, 0xea, 0x49, 0x43, 0x0a, 0x1b, 0x18, 0x0d, 0x08, 0x71, 0xe3, 0x74, 0x2b, 0x88, 0xcc, 0xb5, 0x91, 0x12, 0x4f, 0xc4, 0x27, 0xed, 0x67, 0x3b, 0x5f, 0x27, 0xb0, 0xb0, 0xa6, 0xf5, 0x4a, 0xf2, 0x2b, 0xa4, 0xa6, 0xd1, 0xc6, 0xc1, 0xdb, 0x2a, 0x1f, 0xca, 0xa6, 0xd8, 0xa0, 0x30, 0x8b, 0x77, 0xef, 0x2d, 0x0c, 0x61, 0xbb, 0xf5, 0x1b, 0x95, 0xf1, 0xe8, 0xb6, 0xab, 0xc5, 0x04, 0x1d, 0x97, 0xb6, 0xb6, 0xf1, 0xb5, 0x69, 0xb3, 0xf6, 0x3c, 0xec, 0x05, 0xcb, 0x56, 0x7a, 0xae, 0xa1, 0x06, 0x72, 0x70, 0x96, 0xee, 0x8a, 0x9e, 0xa8, 0x7b, 0x88, 0x04, 0x90, 0x1f, 0x7e, 0x88, 0xa7, 0x40, 0x9c, 0x66, 0xf1, 0x52, 0xde, 0x9d, 0xbf, 0xcb, 0xe3, 0x19, 0x52, 0xe6, 0xfd, 0x83, 0xb2, 0x87, 0x7a, 0x77, 0x5f, 0xae, 0x42, 0x5b, 0x38, 0x51, 0xe0, 0xef, 0xf8, 0x79, 0x2f, 0xfb, 0x38, 0x48, 0xf8, 0x4a, 0x65, 0xcc, 0x31, 0x72, 0x53, 0xb2, 0x72, 0x47, 0x5e, 0x71, 0x7e, 0x49, 0xe9, 0xc6, 0xff, 0x6b, 0x78, 0x59, 0xd1, 0x1b, 0xba, 0x7c, 0x44, 0x28, 0xc8, 0x2d, 0x17, 0x89, 0xe0, 0xdc, 0xa5, 0xbc, 0xad, 0xca, 0x2f, 0xdb, 0x25, 0x9e, 0x98, };
18261 static const u8 ed25519_794_test_vectors_expected_sig[] = {
18262 	0x60, 0xaf, 0xc1, 0xe9, 0x91, 0xfd, 0xd2, 0x7c, 0xc4, 0x72, 0xb9, 0xac, 0xc9, 0xd4, 0x05, 0xb4, 0xd2, 0xb9, 0x13, 0x08, 0x92, 0x90, 0xb3, 0x11, 0xc4, 0xfa, 0x89, 0x1a, 0xe2, 0xee, 0xa0, 0x56, 0x71, 0xfd, 0xe7, 0xa0, 0xef, 0x86, 0x55, 0x7b, 0xd8, 0x67, 0xd1, 0xc0, 0xb7, 0x47, 0xca, 0xf3, 0x52, 0x29, 0xd6, 0xef, 0x52, 0x8f, 0xe3, 0xe0, 0xd0, 0xbc, 0xf6, 0x30, 0x38, 0x0e, 0xa9, 0x0e, };
18263 static const ec_test_case ed25519_794_test_case = {
18264 	.name = "EDDSA25519-SHA512/wei25519 794",
18265 	.ec_str_p = &wei25519_str_params,
18266 	.priv_key = ed25519_794_test_vectors_priv_key,
18267 	.priv_key_len = sizeof(ed25519_794_test_vectors_priv_key),
18268 	.nn_random = NULL,
18269 	.hash_type = SHA512,
18270 	.msg = (const char *)ed25519_794_test_vectors_message,
18271 	.msglen = sizeof(ed25519_794_test_vectors_message),
18272 	.sig_type = EDDSA25519,
18273 	.exp_sig = ed25519_794_test_vectors_expected_sig,
18274 	.exp_siglen = sizeof(ed25519_794_test_vectors_expected_sig),
18275 	.adata = NULL,
18276 	.adata_len = 0
18277 };
18278 
18279 /************************************************/
18280 static const u8 ed25519_795_test_vectors_priv_key[] = {
18281 	0xdb, 0x46, 0x1b, 0x9f, 0x70, 0x7e, 0xb2, 0xcd, 0x77, 0x48, 0xc4, 0x4c, 0x99, 0x56, 0x2f, 0x13, 0x02, 0x39, 0x74, 0x89, 0x35, 0x3d, 0xf5, 0xf3, 0x03, 0x79, 0x7f, 0xe0, 0xd0, 0xb5, 0x8d, 0xe1, };
18282 static const u8 ed25519_795_test_vectors_message[] = {
18283 	0x1a, 0x2a, 0xc8, 0xc1, 0xb9, 0xea, 0x09, 0x9b, 0x83, 0x1a, 0x68, 0x12, 0xd2, 0xb4, 0x26, 0x13, 0x09, 0x05, 0x8e, 0xa5, 0x88, 0x3d, 0x70, 0xb1, 0xc6, 0x07, 0xb9, 0xcd, 0x3f, 0xdf, 0xdb, 0x86, 0xe7, 0x99, 0x02, 0xb0, 0xfe, 0x89, 0xe8, 0x0e, 0xa7, 0xc4, 0x78, 0x20, 0x76, 0x74, 0xb2, 0xd8, 0x03, 0xb0, 0xb9, 0xca, 0x14, 0x7f, 0xfe, 0x62, 0xe5, 0x94, 0xf5, 0x06, 0xc7, 0x96, 0xd6, 0x89, 0x97, 0xce, 0x48, 0x2b, 0x51, 0xa4, 0x6e, 0x49, 0xb4, 0xa5, 0xd8, 0x58, 0xcd, 0xea, 0xe2, 0xc6, 0xec, 0x9b, 0x69, 0x41, 0x98, 0xe6, 0x82, 0x2f, 0x0e, 0x33, 0xed, 0x57, 0xbe, 0xdb, 0x03, 0x35, 0xc7, 0x89, 0x0a, 0x72, 0xa7, 0xee, 0x3c, 0x23, 0x82, 0x3b, 0xe7, 0x9b, 0x7f, 0x94, 0x71, 0xe0, 0x33, 0xc7, 0x9a, 0xee, 0xd5, 0x2e, 0x57, 0x60, 0xfb, 0x0c, 0xcb, 0xb9, 0xd3, 0x8f, 0xde, 0xd8, 0xb4, 0x73, 0x83, 0xc1, 0x91, 0x03, 0xce, 0x44, 0x70, 0x58, 0x34, 0xc5, 0x9d, 0xdd, 0x86, 0xf7, 0x03, 0x39, 0x48, 0x61, 0x2d, 0x66, 0x62, 0xf5, 0x16, 0xce, 0x4e, 0x39, 0x9f, 0xf2, 0x03, 0x63, 0xcc, 0x72, 0x81, 0xa6, 0x9b, 0x2d, 0x5c, 0x30, 0x7b, 0x10, 0xb7, 0x04, 0x15, 0x01, 0x84, 0xec, 0xe3, 0x2f, 0x39, 0x0d, 0x77, 0x2c, 0xcf, 0xa7, 0x84, 0x83, 0xbb, 0x77, 0xa9, 0xfb, 0xa8, 0x44, 0x25, 0x36, 0x69, 0x84, 0x17, 0x1c, 0xc2, 0xbb, 0x60, 0xb0, 0xec, 0x6c, 0x62, 0x8d, 0x4e, 0x90, 0x30, 0x74, 0x6d, 0xac, 0x1c, 0xab, 0xca, 0x60, 0xf0, 0x56, 0x83, 0x81, 0x33, 0x46, 0xa1, 0xa5, 0xbc, 0x14, 0x72, 0x75, 0x49, 0x79, 0x5c, 0x1c, 0x92, 0x68, 0x69, 0xe1, 0xaa, 0x25, 0x09, 0x3d, 0x59, 0x1b, 0x43, 0xe0, 0x86, 0xe4, 0x3a, 0x04, 0xd1, 0x70, 0xd9, 0x42, 0xc4, 0x16, 0x5e, 0x1c, 0x5c, 0xe7, 0x6c, 0x3e, 0x64, 0x97, 0x3d, 0x91, 0x36, 0xf9, 0x32, 0x5b, 0xee, 0x82, 0x16, 0x82, 0xf1, 0x04, 0x3e, 0x95, 0x1b, 0x02, 0x76, 0x7f, 0x3f, 0xb4, 0x58, 0xd0, 0x24, 0x49, 0xad, 0xd3, 0xe8, 0xa6, 0x6e, 0x51, 0x6f, 0xdb, 0x1e, 0xd5, 0x80, 0xe0, 0x56, 0xe0, 0xf7, 0x8e, 0xe3, 0x3f, 0xd9, 0xee, 0x32, 0x80, 0x91, 0x2f, 0xae, 0x07, 0xfe, 0x1e, 0xa0, 0x25, 0x27, 0xcd, 0x00, 0x1d, 0x6f, 0x6f, 0x2f, 0x89, 0xee, 0x64, 0x9f, 0x51, 0x74, 0x14, 0xd5, 0x6f, 0x57, 0x35, 0x9a, 0x84, 0x68, 0x91, 0xf0, 0x22, 0x2c, 0x32, 0x1d, 0x7e, 0x70, 0x81, 0x79, 0x95, 0xa8, 0xcd, 0x8e, 0x94, 0x76, 0x0b, 0x6e, 0x74, 0x83, 0x2b, 0xab, 0x68, 0xd5, 0x5b, 0xc4, 0x64, 0x18, 0x84, 0x22, 0x1f, 0xd2, 0x9f, 0x12, 0x2d, 0x87, 0xa9, 0xa8, 0x68, 0xb6, 0xa6, 0x06, 0x0c, 0x87, 0xb2, 0x38, 0x2c, 0xf7, 0xbb, 0xdd, 0xa4, 0xcd, 0x6a, 0xaa, 0x1b, 0xbc, 0x8e, 0x6d, 0x63, 0x4a, 0xb5, 0x80, 0xc8, 0x65, 0xf5, 0xad, 0xd6, 0xa1, 0xd5, 0x4e, 0x61, 0xa6, 0x07, 0xdc, 0x2c, 0x37, 0xb0, 0x8a, 0x8c, 0xba, 0x6e, 0x61, 0x0c, 0x12, 0xcf, 0xeb, 0xef, 0x9c, 0x98, 0x9e, 0xef, 0x3b, 0x78, 0x2a, 0xcb, 0xd1, 0xbc, 0xec, 0x5f, 0x04, 0xe8, 0x35, 0xca, 0x10, 0x12, 0x98, 0xb5, 0xe9, 0xbd, 0xd8, 0x81, 0x3a, 0x71, 0xb0, 0xd4, 0x69, 0xfc, 0xf1, 0x27, 0x27, 0xd3, 0xde, 0x1c, 0x3f, 0x97, 0xdd, 0xbc, 0x6a, 0xb2, 0x65, 0x84, 0x40, 0xdd, 0x64, 0x21, 0x01, 0x9b, 0xc6, 0x8f, 0x35, 0x6d, 0x6f, 0x25, 0x53, 0x68, 0x65, 0x85, 0x1d, 0x92, 0xd9, 0x0f, 0xe9, 0x96, 0x9c, 0x3b, 0x7c, 0x35, 0xa2, 0xe8, 0x8c, 0xe1, 0x53, 0x47, 0x6e, 0xc3, 0x97, 0x3a, 0xf9, 0x35, 0x9f, 0x16, 0x77, 0xa4, 0xca, 0xf1, 0xcc, 0x48, 0x1c, 0x71, 0xbd, 0x90, 0x22, 0x8f, 0xf5, 0xfc, 0x6d, 0xd8, 0x3b, 0x8a, 0x69, 0x9f, 0xfe, 0x51, 0x49, 0x29, 0xf5, 0xc9, 0x5c, 0xb4, 0xf0, 0x4b, 0x00, 0xdd, 0x18, 0xa2, 0x87, 0x2c, 0x41, 0x86, 0x8d, 0x3b, 0xeb, 0x76, 0x49, 0x8d, 0xdc, 0x92, 0x34, 0xb6, 0x3f, 0x59, 0x9d, 0x70, 0x71, 0x80, 0x1d, 0xb2, 0xc2, 0x87, 0x8f, 0x7b, 0xef, 0x4f, 0xfd, 0xdd, 0x81, 0x32, 0x26, 0xf0, 0x6d, 0xb8, 0x4e, 0xb3, 0x02, 0x17, 0xa7, 0x18, 0x30, 0x82, 0xe3, 0xc1, 0x24, 0x2b, 0xb6, 0xd0, 0x1c, 0xd3, 0xa6, 0xce, 0x27, 0xbf, 0xf1, 0x6b, 0xfb, 0xfd, 0xd7, 0x5b, 0x7e, 0x51, 0x04, 0x31, 0x2c, 0x49, 0xc4, 0x3a, 0xad, 0xfc, 0xd5, 0xb4, 0xed, 0xba, 0x0f, 0xf5, 0x0d, 0x28, 0x90, 0xca, 0x3c, 0xd9, 0xcc, 0xa3, 0x3e, 0x4f, 0xc6, 0x94, 0xc0, 0x57, 0xc4, 0x7e, 0xbe, 0x1c, 0x20, 0xa4, 0xad, 0x11, 0x5f, 0x98, 0x5d, 0xc7, 0x44, 0x2c, 0x6f, 0x6d, 0xa7, 0xbe, 0x53, 0x0b, 0x69, 0x02, 0x28, 0x9c, 0xab, 0x9c, 0xa1, 0x39, 0xc6, 0xb2, 0x4c, 0xb8, 0x0f, 0xfd, 0xd7, 0x82, 0x32, 0x4e, 0x60, 0x2c, 0x45, 0x91, 0x0d, 0xb6, 0x3d, 0x8b, 0x5c, 0x44, 0xca, 0x29, 0xd2, 0x7f, 0x56, 0xdb, 0xf0, 0x01, 0x86, 0xba, 0x58, 0x3c, 0x34, 0xe1, 0x60, 0x31, 0xdf, 0x35, 0x75, 0x46, 0xb3, 0xab, 0x9a, 0x3d, 0xd6, 0x5e, 0x91, 0xd7, 0x12, 0x8c, 0x93, 0x91, 0x95, 0xe6, 0x46, 0xa0, 0xf0, 0xb8, 0x9b, 0xf5, 0xdf, 0x04, 0xba, 0x23, 0x3d, 0x6a, 0x12, 0xa2, 0x71, 0xf7, 0xe0, 0x4a, 0xa4, 0x5c, 0xda, 0x99, 0xb4, 0xa5, 0x5a, 0x21, 0xcb, 0xbb, 0x73, 0x85, 0x15, 0xe3, 0x2c, 0x56, 0xaa, 0xc2, 0x49, 0x62, 0x32, 0xb1, 0x00, 0x8a, 0x67, 0x61, 0xc8, 0x04, 0x5a, 0x1f, 0xe0, 0xf9, 0xa3, 0x64, 0x40, 0x47, 0xb5, 0x96, 0x6a, 0x58, 0xa6, 0x00, 0x46, 0x6c, 0x1b, 0x1d, 0x11, 0xdd, 0xad, 0x5a, 0xa5, 0x73, 0xc4, 0x3e, 0xbd, 0xa8, 0x87, 0xe1, 0x6a, 0x05, };
18284 static const u8 ed25519_795_test_vectors_expected_sig[] = {
18285 	0xdd, 0x04, 0x9c, 0xa7, 0x9b, 0xeb, 0x9e, 0xac, 0x32, 0x5a, 0xcf, 0x44, 0x67, 0x2f, 0xf5, 0x78, 0xa9, 0x68, 0x50, 0x2f, 0xe1, 0xbc, 0xf5, 0xea, 0x19, 0xd5, 0x2c, 0x0f, 0x67, 0x78, 0xc7, 0xf1, 0xc7, 0xbb, 0xf7, 0x42, 0x74, 0x79, 0x07, 0x78, 0x6e, 0x60, 0x81, 0x23, 0x91, 0x1a, 0x92, 0x07, 0x78, 0xd2, 0xf9, 0x59, 0x6f, 0xe2, 0x9b, 0xe7, 0xcc, 0x28, 0xfd, 0x00, 0x9d, 0x7c, 0x44, 0x0e, };
18286 static const ec_test_case ed25519_795_test_case = {
18287 	.name = "EDDSA25519-SHA512/wei25519 795",
18288 	.ec_str_p = &wei25519_str_params,
18289 	.priv_key = ed25519_795_test_vectors_priv_key,
18290 	.priv_key_len = sizeof(ed25519_795_test_vectors_priv_key),
18291 	.nn_random = NULL,
18292 	.hash_type = SHA512,
18293 	.msg = (const char *)ed25519_795_test_vectors_message,
18294 	.msglen = sizeof(ed25519_795_test_vectors_message),
18295 	.sig_type = EDDSA25519,
18296 	.exp_sig = ed25519_795_test_vectors_expected_sig,
18297 	.exp_siglen = sizeof(ed25519_795_test_vectors_expected_sig),
18298 	.adata = NULL,
18299 	.adata_len = 0
18300 };
18301 
18302 /************************************************/
18303 static const u8 ed25519_796_test_vectors_priv_key[] = {
18304 	0xf5, 0xc0, 0xa7, 0xf8, 0xf6, 0x58, 0x4c, 0x5d, 0x2f, 0x2e, 0x1d, 0x08, 0x10, 0xe8, 0xe8, 0x61, 0x03, 0xe4, 0xe2, 0xd4, 0x5c, 0xf9, 0xa7, 0x21, 0xd8, 0xc4, 0x7f, 0x67, 0x49, 0x33, 0x96, 0xa4, };
18305 static const u8 ed25519_796_test_vectors_message[] = {
18306 	0xd6, 0x8a, 0xbc, 0x60, 0x9a, 0x7a, 0x0c, 0xe2, 0x56, 0x69, 0x9e, 0xb1, 0x70, 0x43, 0xde, 0xfe, 0x1e, 0xb8, 0x22, 0xc9, 0x70, 0x8f, 0x65, 0x71, 0x8a, 0x06, 0x58, 0x1f, 0xab, 0x21, 0x10, 0xec, 0x2d, 0xb0, 0x92, 0x13, 0xbb, 0x9e, 0x0f, 0x36, 0x12, 0xce, 0x4a, 0x3f, 0x8f, 0xdb, 0xe7, 0x57, 0xa9, 0xf0, 0xeb, 0x2c, 0x3e, 0xba, 0x43, 0x8a, 0x90, 0x88, 0xb1, 0x8f, 0x6c, 0x5c, 0xaa, 0xbb, 0xe5, 0xc8, 0x2f, 0x7a, 0x9a, 0xb2, 0xfe, 0xcf, 0x0f, 0x58, 0x59, 0xd1, 0x75, 0xe1, 0x39, 0x26, 0x30, 0x33, 0x74, 0x24, 0x58, 0xf8, 0x2a, 0x6f, 0x38, 0x75, 0x6c, 0xd5, 0xbc, 0xdf, 0x9e, 0x07, 0x36, 0xdb, 0x2c, 0xab, 0x20, 0xa0, 0xcd, 0x3f, 0x0f, 0x1c, 0xdb, 0xea, 0x85, 0x56, 0xd8, 0x49, 0x09, 0x35, 0x8d, 0xd8, 0xf6, 0x9f, 0x0d, 0xac, 0xd4, 0x9a, 0xbf, 0x8a, 0xc1, 0xbf, 0xe7, 0x59, 0x40, 0xd6, 0x93, 0x9e, 0x6a, 0x55, 0x38, 0x5b, 0x5a, 0xce, 0x7c, 0xe1, 0xfd, 0xe1, 0x20, 0x67, 0x9a, 0xb6, 0xea, 0x7a, 0x89, 0xd1, 0x42, 0x68, 0xd2, 0x9f, 0xfb, 0x46, 0xdf, 0x10, 0x5b, 0xf3, 0x90, 0x92, 0x42, 0xc6, 0x60, 0x5f, 0x3e, 0x3e, 0x2a, 0xb7, 0x44, 0x89, 0x37, 0xd6, 0xdb, 0x2b, 0xa0, 0x54, 0xc7, 0xb1, 0x4f, 0x43, 0x2d, 0xb4, 0x1d, 0xc1, 0x8a, 0x5b, 0x95, 0x73, 0x36, 0xb7, 0xf5, 0x2d, 0x97, 0x8e, 0xc0, 0x3e, 0x7d, 0x57, 0x64, 0xe9, 0xbd, 0x2f, 0x4b, 0x68, 0x95, 0x8d, 0x93, 0x7b, 0xf2, 0x98, 0x23, 0xb2, 0x7e, 0xfb, 0x31, 0xe2, 0x5b, 0x43, 0x92, 0x5c, 0x4d, 0xac, 0xbe, 0x67, 0x18, 0xa6, 0x0f, 0xea, 0x3b, 0x32, 0x70, 0xe7, 0xb7, 0x6b, 0x0d, 0xe0, 0xe7, 0x0f, 0x7f, 0xa3, 0xc1, 0x2c, 0x21, 0x5e, 0xf7, 0x2b, 0x95, 0xdc, 0x1b, 0x52, 0x76, 0x23, 0x81, 0x79, 0xdf, 0xc5, 0x2f, 0xc4, 0x88, 0x59, 0x64, 0x9f, 0xa5, 0x82, 0xd0, 0x5a, 0x60, 0xdf, 0x68, 0x59, 0x9a, 0x1c, 0xee, 0xa6, 0x4f, 0x64, 0x12, 0xd3, 0xf8, 0x49, 0x8a, 0xe2, 0xce, 0xdb, 0x12, 0x42, 0x45, 0x88, 0x3a, 0x24, 0x0b, 0xc0, 0x85, 0x1f, 0x0e, 0x32, 0x49, 0x65, 0xbe, 0x12, 0x04, 0x86, 0xe1, 0xea, 0x89, 0xa0, 0x18, 0x2d, 0xfa, 0x8e, 0xab, 0xd3, 0xb8, 0xfa, 0x66, 0xa9, 0x9c, 0x51, 0x49, 0x13, 0x89, 0xf3, 0xc8, 0x3a, 0x3c, 0xdb, 0x42, 0x67, 0xf3, 0xe4, 0xdb, 0xc9, 0x8f, 0x0c, 0x44, 0x85, 0x6b, 0x04, 0x4d, 0xc8, 0x8d, 0x90, 0xee, 0xee, 0x84, 0x15, 0xbf, 0x73, 0xde, 0x17, 0x1a, 0xfe, 0x84, 0xbe, 0x90, 0x35, 0xe0, 0xdc, 0x4c, 0x80, 0xcf, 0x04, 0x22, 0x46, 0x9f, 0xe0, 0xc9, 0xbd, 0x1c, 0x6a, 0xa6, 0x54, 0xa5, 0x9b, 0x5e, 0x34, 0xee, 0xd3, 0x51, 0xcd, 0xa2, 0x87, 0x12, 0x69, 0xac, 0x47, 0x8e, 0x8d, 0x38, 0x2e, 0x74, 0x0e, 0x9a, 0xc7, 0xab, 0x4d, 0xdc, 0x4c, 0x0d, 0xef, 0x0a, 0xea, 0xb7, 0x97, 0xb6, 0xf1, 0xa4, 0x27, 0xb8, 0xe4, 0xa8, 0x49, 0x7a, 0x0b, 0x97, 0x97, 0xda, 0xdc, 0xd3, 0x5c, 0x41, 0x4f, 0xd5, 0x5b, 0x78, 0x31, 0x30, 0xf6, 0xcd, 0xed, 0x38, 0xa4, 0x4c, 0x1a, 0x89, 0x28, 0x83, 0x07, 0xeb, 0x84, 0x25, 0x48, 0x41, 0x37, 0xa8, 0xae, 0xdb, 0x03, 0x0d, 0x54, 0xb6, 0x16, 0xa8, 0x2e, 0x3c, 0x5a, 0xcf, 0xfb, 0x08, 0xd6, 0xcc, 0x1a, 0x61, 0x74, 0x5c, 0x29, 0xaf, 0xc6, 0x8a, 0x0c, 0x18, 0x38, 0xb1, 0x39, 0x15, 0x9c, 0x5f, 0xa6, 0x67, 0x4d, 0x66, 0xb9, 0xe3, 0x38, 0x11, 0x5a, 0xad, 0x4b, 0x1b, 0x47, 0x10, 0xaa, 0x5d, 0x95, 0x17, 0xbc, 0xf7, 0xe1, 0xcb, 0x12, 0xd4, 0xe6, 0xa5, 0x1c, 0x11, 0x78, 0x9f, 0xdc, 0xae, 0x9d, 0x9b, 0xbe, 0x78, 0xf6, 0x9a, 0x33, 0xe5, 0x2d, 0xf1, 0x83, 0x3c, 0x87, 0x6b, 0x02, 0x68, 0x7a, 0x40, 0x4f, 0xac, 0xad, 0x32, 0x84, 0x1c, 0xb2, 0xd5, 0x25, 0x54, 0xe7, 0xb8, 0xe2, 0x20, 0x9e, 0x3f, 0x88, 0xfd, 0x94, 0x8c, 0x1e, 0xcf, 0x83, 0x95, 0x7c, 0x96, 0xf4, 0x3b, 0x03, 0x4b, 0xed, 0xa6, 0xc4, 0x76, 0x09, 0x6b, 0xcb, 0x09, 0x30, 0x1a, 0xd6, 0x1f, 0x83, 0x67, 0xcc, 0x43, 0xe1, 0x56, 0x13, 0x18, 0x62, 0xb4, 0x2e, 0xce, 0x28, 0x5b, 0xec, 0x2d, 0xcc, 0x2d, 0x02, 0xd0, 0x94, 0xd0, 0x42, 0xa1, 0x60, 0x72, 0xeb, 0x22, 0xab, 0x98, 0x88, 0x01, 0x3b, 0xe8, 0x23, 0x71, 0x56, 0x94, 0x00, 0xec, 0x1f, 0x8e, 0xc7, 0xe7, 0x91, 0x08, 0xc4, 0x1b, 0x85, 0x33, 0x65, 0x26, 0x8f, 0xa4, 0xcf, 0xbc, 0x62, 0xc4, 0xac, 0x12, 0xcc, 0x98, 0xd2, 0xec, 0x38, 0xa8, 0x7d, 0x60, 0x85, 0x85, 0x95, 0x67, 0xc0, 0xf2, 0x7d, 0x6d, 0x43, 0x1a, 0x04, 0x6e, 0x88, 0xa9, 0x81, 0x55, 0x58, 0x66, 0x07, 0x05, 0xfd, 0x05, 0xeb, 0x06, 0xc6, 0xc0, 0x5e, 0x5b, 0x7d, 0x62, 0x34, 0x7c, 0xee, 0xe2, 0x7d, 0xff, 0xed, 0x71, 0x41, 0x54, 0x0d, 0x60, 0x8c, 0xb9, 0x75, 0x07, 0x5a, 0x96, 0x44, 0xac, 0xc6, 0x32, 0x84, 0x39, 0xf9, 0xfa, 0x68, 0x2b, 0x22, 0x6b, 0x18, 0x61, 0x54, 0x54, 0x90, 0x11, 0xc3, 0xb0, 0xf0, 0xff, 0x4f, 0x74, 0xca, 0xa7, 0x1c, 0x19, 0x44, 0xe4, 0xcb, 0x83, 0x6c, 0xe8, 0x51, 0xd9, 0xb5, 0xd9, 0xe7, 0x27, 0xc5, 0x53, 0xe3, 0xc7, 0x23, 0xcf, 0x98, 0xc2, 0x73, 0xe5, 0x67, 0x5c, 0xab, 0x89, 0x9b, 0xb6, 0x6f, 0x46, 0x33, 0xa7, 0x6d, 0xea, 0x35, 0x73, 0x41, 0xf9, 0x83, 0xc5, 0x3d, 0x91, 0x58, 0xad, 0x31, 0x9a, 0xda, 0x75, 0x40, 0x8b, 0x41, 0xc0, 0x6f, 0x26, 0xb7, 0x43, 0x5b, 0x80, 0xdc, 0x3b, 0xc0, 0xaa, 0xf2, 0x2a, 0x83, 0x3d, 0xde, 0xdc, 0xd6, 0x78, 0x5c, 0x87, 0xd1, 0x96, 0xb0, 0xaf, 0x2c, 0x9a, 0x43, 0xd1, };
18307 static const u8 ed25519_796_test_vectors_expected_sig[] = {
18308 	0xd4, 0xc3, 0x0a, 0x48, 0xc4, 0x52, 0x3b, 0x1f, 0x84, 0xb1, 0x4b, 0x65, 0x7a, 0xf8, 0xf8, 0x59, 0x75, 0x5b, 0xba, 0x63, 0x59, 0x98, 0x8b, 0x67, 0x5c, 0x6d, 0x85, 0xdd, 0xf3, 0x54, 0x62, 0x82, 0x0d, 0xa4, 0x76, 0xd8, 0x4f, 0x6c, 0x40, 0x2e, 0x65, 0xb0, 0x20, 0xd9, 0xe8, 0xa2, 0xc2, 0x85, 0xc1, 0x67, 0x08, 0xae, 0x58, 0xd1, 0xf8, 0xdb, 0xc6, 0x57, 0x82, 0xa8, 0x98, 0xa6, 0x65, 0x08, };
18309 static const ec_test_case ed25519_796_test_case = {
18310 	.name = "EDDSA25519-SHA512/wei25519 796",
18311 	.ec_str_p = &wei25519_str_params,
18312 	.priv_key = ed25519_796_test_vectors_priv_key,
18313 	.priv_key_len = sizeof(ed25519_796_test_vectors_priv_key),
18314 	.nn_random = NULL,
18315 	.hash_type = SHA512,
18316 	.msg = (const char *)ed25519_796_test_vectors_message,
18317 	.msglen = sizeof(ed25519_796_test_vectors_message),
18318 	.sig_type = EDDSA25519,
18319 	.exp_sig = ed25519_796_test_vectors_expected_sig,
18320 	.exp_siglen = sizeof(ed25519_796_test_vectors_expected_sig),
18321 	.adata = NULL,
18322 	.adata_len = 0
18323 };
18324 
18325 /************************************************/
18326 static const u8 ed25519_797_test_vectors_priv_key[] = {
18327 	0x1a, 0xb9, 0x46, 0xc0, 0xc1, 0xae, 0xbf, 0x9c, 0xa3, 0x7c, 0x2f, 0x4e, 0x2a, 0x4b, 0x33, 0x7d, 0x5b, 0x1e, 0xbc, 0xcd, 0x24, 0x73, 0x4c, 0x9c, 0xb2, 0xa1, 0x60, 0x8c, 0x88, 0x1e, 0x57, 0x57, };
18328 static const u8 ed25519_797_test_vectors_message[] = {
18329 	0x9b, 0xb0, 0x71, 0xb6, 0x2c, 0x04, 0x06, 0x4b, 0x0c, 0x96, 0xe2, 0x43, 0xdd, 0x19, 0x8c, 0x39, 0x71, 0x7b, 0x25, 0xc9, 0x94, 0x48, 0xc2, 0xc0, 0x02, 0xb8, 0x4a, 0x99, 0x20, 0x4c, 0x5a, 0x6e, 0x23, 0xb4, 0xb9, 0x12, 0x02, 0x86, 0x75, 0xbf, 0xdc, 0x4d, 0xf9, 0x3c, 0x5b, 0x2f, 0xb8, 0x08, 0x81, 0xa2, 0x3e, 0x0d, 0x44, 0xba, 0x18, 0xbd, 0xe9, 0x91, 0x21, 0xee, 0xe8, 0x6a, 0xdc, 0x6f, 0x84, 0x28, 0x19, 0xd6, 0xeb, 0xc7, 0xa2, 0x88, 0x99, 0x2d, 0xa3, 0x28, 0x58, 0x05, 0xa8, 0xb8, 0xb6, 0xfb, 0xcd, 0x22, 0x67, 0xb6, 0x86, 0xb3, 0xe1, 0xbf, 0x79, 0x60, 0xb4, 0x5f, 0x24, 0x4f, 0x85, 0x2e, 0x82, 0x49, 0x29, 0x44, 0xe3, 0xd6, 0x18, 0xbc, 0xc4, 0x51, 0x4c, 0x17, 0xf7, 0x22, 0xba, 0x49, 0xac, 0xa7, 0xf2, 0xf3, 0xbb, 0x4e, 0x91, 0xf9, 0x40, 0xe9, 0xce, 0xf0, 0x15, 0x65, 0x0c, 0x3e, 0x40, 0xb0, 0xc8, 0x55, 0xa1, 0x7c, 0x42, 0xf1, 0x1e, 0x3a, 0x34, 0xac, 0xc8, 0x52, 0x87, 0xdb, 0xe0, 0xf9, 0x09, 0x3c, 0x00, 0x37, 0x3d, 0x50, 0xc0, 0xb3, 0x06, 0x4a, 0x5a, 0x5f, 0x2b, 0x1e, 0x89, 0x20, 0x65, 0x17, 0x52, 0x82, 0x95, 0xfd, 0x87, 0x17, 0x03, 0xa8, 0xe7, 0x62, 0xb5, 0xe7, 0x6f, 0xb9, 0xb7, 0x47, 0x3d, 0x21, 0x49, 0xb8, 0x5b, 0x94, 0x61, 0xf5, 0x58, 0x7e, 0xd7, 0xe7, 0xfc, 0x8b, 0x50, 0xaa, 0x09, 0x87, 0x6d, 0xee, 0xb6, 0xe2, 0x37, 0x07, 0x85, 0x02, 0x14, 0x2c, 0xec, 0x6b, 0xdd, 0xc7, 0x01, 0x40, 0xfe, 0x1d, 0x1f, 0x16, 0x58, 0xd5, 0xd3, 0xe9, 0x10, 0xfd, 0x70, 0x36, 0xa2, 0xf9, 0x24, 0xb4, 0x99, 0xdb, 0x17, 0x56, 0xf7, 0xc8, 0xce, 0x0d, 0x5f, 0x0d, 0x04, 0x5b, 0x39, 0xbc, 0x81, 0xc5, 0xc2, 0xf1, 0xa7, 0x61, 0xf5, 0x2f, 0xf3, 0x93, 0xe0, 0x64, 0x9b, 0x8d, 0xb0, 0xbd, 0x88, 0x54, 0xbd, 0x02, 0x6b, 0xe2, 0xc7, 0xc3, 0xcd, 0x63, 0x52, 0x6b, 0xa5, 0xa8, 0x0d, 0x48, 0x33, 0x5f, 0x03, 0x38, 0x32, 0xd6, 0x33, 0x76, 0x07, 0x1b, 0x63, 0x08, 0xf0, 0x59, 0x60, 0xcb, 0x3f, 0xc9, 0xfa, 0xc9, 0x32, 0xed, 0xd8, 0x37, 0x6d, 0xae, 0x51, 0xf2, 0xc6, 0x61, 0xf7, 0x5b, 0x7c, 0x6f, 0x4a, 0xc8, 0x56, 0x75, 0x3a, 0xca, 0x62, 0x06, 0x28, 0x77, 0x60, 0x9f, 0xc4, 0xa0, 0xff, 0x60, 0x67, 0x02, 0x82, 0xc0, 0x5e, 0x88, 0x2d, 0x1a, 0x03, 0x5b, 0xf9, 0x89, 0x0c, 0xab, 0x29, 0x6a, 0xc7, 0xa8, 0xdf, 0x24, 0x4c, 0x56, 0xf4, 0x90, 0x25, 0x0f, 0x02, 0x00, 0x54, 0xb8, 0xaf, 0x51, 0xbe, 0x4f, 0xc3, 0x18, 0xbe, 0xba, 0x50, 0x62, 0x32, 0xbf, 0x45, 0xe1, 0x7f, 0x5c, 0x74, 0x0c, 0xf0, 0x9d, 0x37, 0x51, 0x5a, 0x8b, 0xc8, 0x94, 0xbc, 0x95, 0x5c, 0x8a, 0x46, 0x08, 0x77, 0xc7, 0x85, 0x4f, 0x8b, 0xe3, 0x63, 0xb2, 0x19, 0x33, 0xe1, 0x62, 0x87, 0xae, 0x0c, 0xb7, 0x0f, 0x22, 0x2d, 0x4e, 0x36, 0xb8, 0xb4, 0x24, 0x97, 0x55, 0x59, 0xbb, 0x4b, 0xfc, 0x8d, 0xd1, 0xd5, 0x1b, 0x3c, 0x0f, 0xaf, 0x4a, 0x53, 0xe3, 0x02, 0x19, 0x6f, 0x9f, 0xed, 0xb5, 0x32, 0x87, 0xd0, 0x93, 0x15, 0xdf, 0xff, 0xa2, 0xbc, 0x4b, 0x3a, 0xcf, 0xf1, 0x37, 0xf9, 0xa7, 0x6d, 0x68, 0x56, 0x21, 0x7f, 0x79, 0xcb, 0xb2, 0x54, 0x33, 0xfc, 0x97, 0x89, 0x9f, 0xd6, 0x54, 0x0f, 0x18, 0x08, 0x8e, 0x84, 0x41, 0x7e, 0x48, 0x33, 0xe4, 0xa9, 0x1a, 0xab, 0xa4, 0x65, 0x8a, 0xe9, 0xad, 0x7f, 0x76, 0x0d, 0xd9, 0xc5, 0xb7, 0x19, 0x1a, 0x0d, 0x3c, 0x05, 0x54, 0x1b, 0x83, 0xc0, 0x25, 0xa7, 0x99, 0x21, 0x38, 0xe6, 0xd1, 0x08, 0x0d, 0xa1, 0x4c, 0x2c, 0x88, 0x7c, 0x6d, 0x67, 0x0a, 0xab, 0x37, 0x4d, 0x43, 0x6c, 0x27, 0x2f, 0x9e, 0x96, 0xf8, 0x5a, 0x9c, 0x42, 0x33, 0x79, 0xc0, 0xd4, 0x7c, 0x46, 0xdf, 0x6d, 0xe3, 0x34, 0xea, 0x20, 0x57, 0x15, 0x8d, 0x33, 0x23, 0x1e, 0x14, 0x26, 0xa6, 0x6d, 0x3c, 0x70, 0x82, 0x7a, 0xad, 0x55, 0x11, 0xb8, 0x46, 0xe0, 0x3b, 0x94, 0x92, 0x3d, 0x5f, 0x94, 0xba, 0xf1, 0xf8, 0xcf, 0x11, 0xa8, 0x61, 0x37, 0x3a, 0x5b, 0x80, 0xad, 0x5e, 0x31, 0x7e, 0xc2, 0xa5, 0x29, 0xe9, 0x4e, 0x63, 0x6c, 0xdc, 0x3a, 0xa2, 0x9e, 0x5d, 0xac, 0x20, 0x5a, 0x0c, 0x13, 0xf6, 0x8f, 0xb1, 0x98, 0xcf, 0x94, 0x56, 0xe6, 0x39, 0x0a, 0xea, 0xd4, 0xd9, 0x78, 0x2a, 0x10, 0x38, 0xf6, 0x47, 0x8d, 0x33, 0x9a, 0x81, 0xba, 0xe7, 0xaf, 0x2a, 0x04, 0x15, 0x1c, 0x2f, 0x22, 0xe8, 0xd3, 0x9f, 0xe0, 0x71, 0xe1, 0xa5, 0x21, 0x68, 0xd5, 0x7c, 0x84, 0xc3, 0x62, 0x93, 0x41, 0x3f, 0x8e, 0x6f, 0xf6, 0x93, 0x4f, 0x05, 0xe7, 0xef, 0xad, 0x6f, 0xa1, 0x20, 0xc8, 0xc1, 0xc3, 0x8a, 0xd1, 0x88, 0x6a, 0x3d, 0x00, 0xbf, 0xc3, 0x06, 0x45, 0x92, 0x03, 0xc0, 0x2c, 0xdf, 0x4f, 0x06, 0x65, 0x2b, 0xc8, 0xfa, 0x0e, 0x8b, 0x9c, 0xc7, 0x79, 0xd4, 0x3f, 0xbb, 0x78, 0x9e, 0x7d, 0xad, 0x5d, 0xc9, 0x9f, 0x41, 0xd4, 0xcc, 0x58, 0x8c, 0x1b, 0x65, 0x42, 0x6a, 0x4e, 0x77, 0x38, 0x9e, 0xdd, 0x04, 0x97, 0x75, 0x78, 0xf8, 0xf3, 0x16, 0xbc, 0xdd, 0x94, 0x61, 0xd6, 0x66, 0x47, 0x2c, 0xdd, 0x27, 0x6a, 0xa5, 0x69, 0x72, 0x1c, 0x65, 0x23, 0x22, 0x56, 0xba, 0x1c, 0xf0, 0xe7, 0xf5, 0xea, 0x55, 0x32, 0x17, 0x29, 0xbb, 0x0e, 0x03, 0x86, 0xa7, 0x7b, 0x86, 0x55, 0x32, 0x02, 0x46, 0x96, 0xed, 0xde, 0xf4, 0x85, 0xb7, 0xd7, 0xb2, 0x8c, 0x15, 0x73, 0xb9, 0x34, 0x7e, 0x41, 0x4d, 0x42, 0x61, 0x99, 0x54, 0x82, 0xe3, 0xb3, 0x12, 0xde, 0x13, 0x31, 0xf8, 0x4e, 0x75, 0x48, 0x60, 0x7a, 0x84, };
18330 static const u8 ed25519_797_test_vectors_expected_sig[] = {
18331 	0xbf, 0xab, 0xde, 0xa4, 0x18, 0x10, 0xa5, 0x3f, 0x8e, 0x52, 0x7a, 0xcd, 0x66, 0xec, 0x10, 0x6c, 0xe2, 0xae, 0x1a, 0x67, 0xff, 0x6a, 0x9b, 0x52, 0x2e, 0x0f, 0x08, 0xfb, 0xbf, 0x12, 0x52, 0x68, 0x2c, 0xb3, 0xa1, 0xdc, 0xc8, 0x75, 0x60, 0x19, 0x44, 0xcb, 0x88, 0x00, 0x0f, 0x72, 0xe1, 0x39, 0x07, 0x00, 0x79, 0x03, 0xa7, 0x7c, 0xd0, 0xdb, 0x03, 0x16, 0xd4, 0x19, 0xac, 0x38, 0xc2, 0x04, };
18332 static const ec_test_case ed25519_797_test_case = {
18333 	.name = "EDDSA25519-SHA512/wei25519 797",
18334 	.ec_str_p = &wei25519_str_params,
18335 	.priv_key = ed25519_797_test_vectors_priv_key,
18336 	.priv_key_len = sizeof(ed25519_797_test_vectors_priv_key),
18337 	.nn_random = NULL,
18338 	.hash_type = SHA512,
18339 	.msg = (const char *)ed25519_797_test_vectors_message,
18340 	.msglen = sizeof(ed25519_797_test_vectors_message),
18341 	.sig_type = EDDSA25519,
18342 	.exp_sig = ed25519_797_test_vectors_expected_sig,
18343 	.exp_siglen = sizeof(ed25519_797_test_vectors_expected_sig),
18344 	.adata = NULL,
18345 	.adata_len = 0
18346 };
18347 
18348 /************************************************/
18349 static const u8 ed25519_798_test_vectors_priv_key[] = {
18350 	0x04, 0xbb, 0x88, 0x7a, 0x8a, 0x31, 0x84, 0xff, 0xc7, 0xea, 0x09, 0xc9, 0xbc, 0x7c, 0x1f, 0x7c, 0x34, 0x11, 0x55, 0x6a, 0x7c, 0x7c, 0x39, 0x8c, 0xb8, 0xb2, 0xd9, 0x8f, 0xfd, 0x9e, 0xe8, 0x66, };
18351 static const u8 ed25519_798_test_vectors_message[] = {
18352 	0xb7, 0xab, 0x0c, 0x81, 0x63, 0xf4, 0x78, 0xc6, 0xca, 0xbf, 0x2b, 0xbd, 0x7c, 0xa3, 0x7c, 0xb0, 0x24, 0x56, 0xd7, 0x6e, 0x52, 0x7e, 0xea, 0x1b, 0x0d, 0x26, 0xdb, 0x24, 0x2e, 0x37, 0x87, 0x76, 0x32, 0x98, 0x5a, 0x3e, 0x3c, 0xa4, 0x1b, 0x52, 0xe2, 0x1d, 0x79, 0x01, 0x7b, 0xff, 0x81, 0xee, 0x55, 0x1a, 0xd7, 0x2a, 0xf2, 0x77, 0xb4, 0x10, 0xe4, 0x2a, 0xf8, 0x22, 0xc6, 0x08, 0xcd, 0x69, 0xd0, 0x0b, 0xf4, 0x40, 0xb7, 0x5b, 0x78, 0x7a, 0x8c, 0x91, 0x5d, 0x70, 0xb6, 0xc6, 0x37, 0x6c, 0x3f, 0x67, 0xfa, 0x64, 0xd6, 0x12, 0xa1, 0xb4, 0x49, 0xa7, 0xe2, 0x13, 0x4d, 0x9c, 0x23, 0x23, 0x01, 0x57, 0xd5, 0x76, 0xe0, 0x6a, 0x66, 0xa8, 0x42, 0x2a, 0x61, 0x1e, 0x2a, 0x0f, 0x09, 0x72, 0x86, 0xc1, 0x99, 0xea, 0x2a, 0x16, 0x28, 0x61, 0x86, 0x4b, 0xd0, 0x35, 0x07, 0x6a, 0xb2, 0x0b, 0xba, 0xe2, 0xb4, 0x40, 0x8a, 0x2c, 0x64, 0x33, 0xcb, 0x23, 0x43, 0x3a, 0x88, 0x9f, 0xe6, 0x59, 0x8f, 0x47, 0xbe, 0x53, 0xbb, 0xd2, 0xc8, 0x0f, 0x07, 0xa8, 0xfc, 0xcb, 0x8a, 0xae, 0x51, 0x11, 0x61, 0xe6, 0x09, 0xda, 0x4d, 0x18, 0x0a, 0xce, 0xa5, 0x44, 0x81, 0x1e, 0x94, 0x49, 0xc5, 0xdc, 0x22, 0x50, 0xe3, 0xe5, 0xa0, 0xcd, 0x41, 0xda, 0x33, 0xa2, 0xda, 0x63, 0x2e, 0x60, 0x38, 0xbd, 0x86, 0xf1, 0x6d, 0x5b, 0x7c, 0x1b, 0xe4, 0x9f, 0xc6, 0xdb, 0x49, 0x90, 0x76, 0xca, 0x91, 0xf7, 0xaa, 0x02, 0x8f, 0xe3, 0x85, 0x29, 0x70, 0x0b, 0x21, 0xd0, 0x72, 0xd2, 0xb7, 0x5d, 0xcc, 0x8b, 0x43, 0x78, 0x1d, 0x4b, 0xc4, 0xd3, 0xbb, 0x58, 0x4d, 0x9d, 0xa0, 0x1c, 0x3e, 0xcc, 0x85, 0xb1, 0xe9, 0x3f, 0xce, 0x04, 0x5d, 0xad, 0xce, 0xea, 0x51, 0x06, 0x46, 0x8b, 0xdf, 0xe5, 0xf7, 0x0d, 0x66, 0xa4, 0xfa, 0xd6, 0x0e, 0x4f, 0xb8, 0x64, 0xec, 0x15, 0xea, 0x50, 0xf6, 0xcb, 0x79, 0x72, 0x23, 0xc8, 0xc7, 0x56, 0xf7, 0xa1, 0x93, 0x1a, 0x39, 0x46, 0x4e, 0xbb, 0xb9, 0x67, 0x9f, 0x6b, 0x01, 0x68, 0x7c, 0x17, 0x4e, 0xaa, 0x32, 0xb9, 0x68, 0xb9, 0xcf, 0xac, 0xe8, 0xc1, 0x67, 0x12, 0x0a, 0xa7, 0xbd, 0x02, 0x42, 0xf0, 0x03, 0xa0, 0xc3, 0x77, 0x70, 0x25, 0x51, 0xb3, 0x0d, 0xa2, 0x48, 0x8e, 0xb2, 0x94, 0x40, 0x52, 0x93, 0x4a, 0xef, 0x4b, 0xfe, 0x11, 0x5f, 0x0a, 0xb7, 0x40, 0x5a, 0x3d, 0x5f, 0xa9, 0xbd, 0x79, 0x6b, 0x37, 0x17, 0x42, 0xbc, 0x11, 0x4a, 0x9b, 0xf2, 0x8c, 0x5b, 0xd2, 0x56, 0x26, 0x29, 0x5c, 0xe2, 0x61, 0xa6, 0xa8, 0x3e, 0xf6, 0x0b, 0x77, 0xd2, 0xd3, 0x2d, 0xd7, 0x10, 0x5f, 0xc8, 0x36, 0x64, 0xaa, 0x89, 0x76, 0x5b, 0x3f, 0x81, 0x91, 0xee, 0xee, 0xd8, 0x78, 0xf2, 0xeb, 0xff, 0x2f, 0xb9, 0x76, 0x63, 0xa6, 0x18, 0x77, 0xc0, 0x93, 0x93, 0x3b, 0xbd, 0x07, 0x31, 0xe6, 0x37, 0x57, 0x57, 0x1b, 0x0e, 0x37, 0xca, 0xc9, 0x9e, 0xd0, 0x1f, 0xd2, 0x14, 0xcb, 0xd4, 0xfe, 0xb9, 0x77, 0xe8, 0x56, 0xe0, 0xa1, 0xa7, 0xef, 0x0c, 0x40, 0x8c, 0x20, 0xe0, 0xdd, 0xaf, 0x1f, 0xd8, 0xf0, 0x28, 0xcf, 0xa0, 0x8c, 0x85, 0x0f, 0xa7, 0x09, 0x0d, 0xca, 0x8c, 0xdd, 0xe0, 0xcb, 0x69, 0x03, 0xda, 0x18, 0xc6, 0x29, 0x0c, 0x66, 0xa1, 0xc0, 0xae, 0x0a, 0x08, 0x4b, 0xf2, 0x50, 0xc5, 0x1a, 0x9d, 0x03, 0x5e, 0x5b, 0x16, 0xec, 0x61, 0x66, 0x36, 0xaf, 0xb9, 0xb5, 0xbc, 0xe3, 0x6a, 0x77, 0x5f, 0xe2, 0x17, 0x5b, 0xcc, 0x2e, 0xe0, 0x72, 0x20, 0x83, 0x4e, 0xeb, 0x31, 0xca, 0xee, 0x50, 0xe9, 0xf8, 0x06, 0x3f, 0xb1, 0xfc, 0x84, 0x68, 0xae, 0x25, 0xe3, 0x96, 0x67, 0x89, 0xa6, 0xd8, 0xdf, 0xfe, 0x08, 0xa6, 0xf7, 0xa1, 0xe6, 0x72, 0x6f, 0x93, 0xae, 0x74, 0x82, 0xde, 0x02, 0x62, 0xbb, 0x1f, 0x8d, 0xe0, 0xc9, 0x5a, 0x99, 0xec, 0xb9, 0x56, 0x84, 0xd4, 0x4b, 0x3f, 0x1a, 0x33, 0x2a, 0x18, 0xd2, 0xcd, 0x3d, 0xcf, 0x25, 0x3c, 0x33, 0xd7, 0x35, 0x52, 0x2f, 0x79, 0x6b, 0x65, 0x1c, 0x9a, 0x63, 0x3a, 0x8e, 0xbe, 0x95, 0xd0, 0x2b, 0xc0, 0x46, 0x58, 0x25, 0xee, 0x54, 0x1a, 0x7d, 0x92, 0x7b, 0xb5, 0xb9, 0x0a, 0x6d, 0xb5, 0x49, 0x9f, 0x8d, 0x99, 0x3a, 0xb4, 0x04, 0xb1, 0x65, 0x0b, 0x75, 0xe7, 0x92, 0xa7, 0xc8, 0x34, 0xeb, 0x41, 0xf0, 0x47, 0x01, 0x38, 0xb0, 0xf5, 0x78, 0xa0, 0x4c, 0x9b, 0xa5, 0xad, 0x95, 0x0a, 0xc7, 0xc9, 0xb5, 0xd3, 0x28, 0xf3, 0x40, 0x8b, 0x64, 0x5a, 0xd9, 0xc6, 0xbf, 0x19, 0x6d, 0xd9, 0x61, 0x44, 0x55, 0x96, 0xbc, 0x78, 0xf2, 0x84, 0xb8, 0x91, 0x4b, 0x2a, 0x8c, 0xf9, 0xb7, 0xbd, 0x3a, 0x71, 0x6d, 0x8f, 0x14, 0x4b, 0xb6, 0xb1, 0x5d, 0x83, 0x10, 0x23, 0x71, 0x3b, 0x5e, 0x41, 0xfd, 0xa9, 0xb5, 0x87, 0xff, 0x9d, 0x6c, 0xc4, 0x3c, 0x08, 0xd3, 0x5a, 0x70, 0x7f, 0x49, 0x52, 0x83, 0xe1, 0xac, 0xe9, 0x60, 0x48, 0x7e, 0x7f, 0x02, 0xb7, 0x54, 0x3b, 0x68, 0xa7, 0x31, 0xa2, 0x9b, 0xf3, 0xbe, 0x14, 0xb6, 0xe9, 0xc3, 0x71, 0x74, 0xa9, 0xf4, 0x6f, 0x56, 0x11, 0x99, 0xdb, 0xd2, 0x7b, 0x46, 0xbf, 0xe6, 0x22, 0x43, 0xe0, 0xc1, 0x1c, 0x0e, 0xdf, 0x13, 0xb6, 0x4f, 0x41, 0x1c, 0x8e, 0x8e, 0xce, 0xd3, 0x5d, 0x84, 0x28, 0xf7, 0x9f, 0x10, 0xea, 0xcf, 0xfb, 0x72, 0x34, 0xe5, 0x46, 0x41, 0x3d, 0x1e, 0xb0, 0xfa, 0xd8, 0x8c, 0x0e, 0x93, 0x85, 0x93, 0xb4, 0x3b, 0x5e, 0xe0, 0xe4, 0x28, 0x5d, 0x4d, 0xdd, 0xf5, 0x29, 0x5d, 0xbf, 0x1a, 0x3d, 0xdb, 0xe9, 0xf4, 0x13, 0x4d, 0xd7, 0x6d, 0x3d, 0xe7, 0x04, 0x62, 0xc2, 0xf0, 0x4f, 0xe0, 0xae, 0xbd, 0xf5, 0x9a, };
18353 static const u8 ed25519_798_test_vectors_expected_sig[] = {
18354 	0xcd, 0x84, 0xf5, 0x5e, 0x5e, 0xf4, 0x53, 0x19, 0x24, 0xc5, 0xa2, 0x18, 0x1e, 0xc8, 0x7a, 0x64, 0x54, 0x13, 0x88, 0xc1, 0x05, 0x94, 0x06, 0xbc, 0x07, 0xd5, 0x31, 0x57, 0xa1, 0x68, 0xe2, 0x03, 0xcc, 0x8a, 0xa0, 0xf0, 0x06, 0x9d, 0x53, 0xff, 0x58, 0xa9, 0x5b, 0x8a, 0x8c, 0xaa, 0xfd, 0xad, 0x26, 0x36, 0x3c, 0x7d, 0x0f, 0x80, 0x45, 0xc4, 0x35, 0x9e, 0x97, 0xb4, 0x36, 0x02, 0xc6, 0x06, };
18355 static const ec_test_case ed25519_798_test_case = {
18356 	.name = "EDDSA25519-SHA512/wei25519 798",
18357 	.ec_str_p = &wei25519_str_params,
18358 	.priv_key = ed25519_798_test_vectors_priv_key,
18359 	.priv_key_len = sizeof(ed25519_798_test_vectors_priv_key),
18360 	.nn_random = NULL,
18361 	.hash_type = SHA512,
18362 	.msg = (const char *)ed25519_798_test_vectors_message,
18363 	.msglen = sizeof(ed25519_798_test_vectors_message),
18364 	.sig_type = EDDSA25519,
18365 	.exp_sig = ed25519_798_test_vectors_expected_sig,
18366 	.exp_siglen = sizeof(ed25519_798_test_vectors_expected_sig),
18367 	.adata = NULL,
18368 	.adata_len = 0
18369 };
18370 
18371 /************************************************/
18372 static const u8 ed25519_799_test_vectors_priv_key[] = {
18373 	0x97, 0x76, 0xa4, 0x67, 0xfa, 0x14, 0x00, 0x73, 0x54, 0x12, 0xa7, 0x9b, 0x49, 0x5f, 0x9f, 0xca, 0x07, 0x8c, 0xe1, 0xd8, 0x7a, 0x85, 0x30, 0xd8, 0x5c, 0x26, 0x05, 0x5d, 0x3a, 0x39, 0x44, 0x88, };
18374 static const u8 ed25519_799_test_vectors_message[] = {
18375 	0xd7, 0x85, 0x53, 0xa1, 0xb7, 0x05, 0x5b, 0x58, 0xb2, 0x13, 0x10, 0x1b, 0x1c, 0x84, 0xc5, 0x3e, 0x16, 0x4e, 0x39, 0xc6, 0xe9, 0xd3, 0x6d, 0xb4, 0x3f, 0x30, 0xe1, 0x9e, 0x2a, 0x12, 0x5a, 0x9a, 0x67, 0x70, 0x9e, 0xaf, 0xef, 0x96, 0x4f, 0xa5, 0xba, 0xb7, 0x26, 0x1d, 0xdb, 0x3a, 0x8a, 0x01, 0x88, 0x45, 0x7d, 0xfb, 0xf5, 0x15, 0x9c, 0x40, 0xe5, 0x1d, 0xa8, 0x20, 0x84, 0x83, 0x24, 0x57, 0x81, 0xd7, 0x13, 0x1e, 0x23, 0xa8, 0xbe, 0xe5, 0xe5, 0x06, 0x33, 0x18, 0x16, 0xb9, 0xde, 0xee, 0xfe, 0x6e, 0x55, 0x6e, 0x3f, 0x0c, 0x95, 0xc6, 0x68, 0xd1, 0xbe, 0xdb, 0x7d, 0xa6, 0x35, 0x06, 0x54, 0x58, 0xad, 0x20, 0x46, 0x70, 0x12, 0xf5, 0x9f, 0x17, 0x13, 0x52, 0x06, 0x80, 0x20, 0xce, 0x3c, 0x75, 0x87, 0x86, 0x93, 0xf6, 0x43, 0x7b, 0xc4, 0xa0, 0x9f, 0x13, 0xb9, 0xb0, 0xf0, 0xcd, 0xda, 0xf1, 0x69, 0x1b, 0x87, 0x2f, 0x82, 0x00, 0x80, 0x93, 0xeb, 0xfb, 0xe2, 0x33, 0xd0, 0x31, 0x3e, 0x72, 0xc8, 0x63, 0x2d, 0x7d, 0x17, 0x93, 0xf0, 0xb8, 0x1c, 0x76, 0x88, 0xf5, 0x44, 0x70, 0x33, 0x0f, 0x04, 0xe6, 0x48, 0x60, 0xe6, 0x44, 0x6b, 0xfc, 0x6d, 0x96, 0xc8, 0x75, 0x69, 0xbf, 0x18, 0x2f, 0x0f, 0x43, 0x85, 0xaf, 0x48, 0x5d, 0x42, 0x99, 0xca, 0xc0, 0x4e, 0x06, 0xba, 0x47, 0x34, 0x65, 0x56, 0x6c, 0x47, 0x7f, 0x07, 0xb9, 0xdb, 0x27, 0x7a, 0xb4, 0xa9, 0xde, 0x2f, 0xb2, 0xde, 0xd0, 0xa5, 0x01, 0x1c, 0xd0, 0x6d, 0x67, 0x5c, 0x08, 0x00, 0xb3, 0x4f, 0x55, 0xbc, 0xf3, 0xec, 0x72, 0xd2, 0x1c, 0xa1, 0x50, 0xc8, 0xbf, 0x23, 0x61, 0x28, 0x7b, 0xe8, 0x1e, 0xfa, 0xbb, 0x96, 0xd8, 0x68, 0x8a, 0x1d, 0xee, 0x3f, 0x43, 0x0f, 0x06, 0xf6, 0x37, 0xdf, 0xd0, 0x6f, 0x15, 0x14, 0x64, 0xa0, 0x5c, 0x95, 0xf5, 0xfe, 0x76, 0xaf, 0x2e, 0x06, 0xd0, 0x12, 0x3f, 0x69, 0x48, 0xa2, 0x6b, 0x3b, 0xe8, 0x35, 0x04, 0x5a, 0xa2, 0x68, 0xcc, 0x1b, 0xe9, 0x76, 0x69, 0x71, 0x07, 0x77, 0x02, 0x08, 0xa7, 0x56, 0x8f, 0x02, 0x5c, 0x2d, 0x53, 0xc7, 0x19, 0xe5, 0x24, 0xcc, 0x36, 0x9d, 0x9b, 0x4a, 0x33, 0x7d, 0x8f, 0xd1, 0xef, 0x34, 0x5b, 0x9b, 0xca, 0x57, 0xfb, 0xd7, 0xb6, 0x5a, 0x6b, 0x99, 0x7c, 0xad, 0x3f, 0xce, 0x4c, 0xf0, 0x6f, 0x2c, 0xa4, 0x3e, 0xbe, 0x29, 0x86, 0xd0, 0x96, 0x82, 0xd4, 0x7c, 0x92, 0x2b, 0x2c, 0xb7, 0x56, 0x9d, 0x98, 0xde, 0x97, 0xa6, 0x16, 0x4f, 0x54, 0x70, 0xee, 0xc7, 0x1c, 0xed, 0xa5, 0x20, 0xcc, 0xec, 0x77, 0x32, 0xbd, 0x01, 0x68, 0x9e, 0xf8, 0x16, 0x56, 0xe9, 0xf6, 0xd0, 0xc5, 0x8a, 0x89, 0x55, 0x58, 0xae, 0xe8, 0x63, 0xf5, 0x46, 0x9e, 0x7a, 0xb9, 0x79, 0x15, 0xbf, 0xe0, 0xb8, 0x0a, 0x06, 0x4c, 0x65, 0x9b, 0x18, 0x30, 0x31, 0xf7, 0xf1, 0xa8, 0x6f, 0xb1, 0x1a, 0x9d, 0x52, 0x8c, 0x28, 0x15, 0xdc, 0xaa, 0x2f, 0x0d, 0xec, 0x3d, 0x21, 0xa8, 0x82, 0xe1, 0x06, 0xe2, 0x04, 0x93, 0xee, 0x0a, 0xcb, 0x77, 0x08, 0xea, 0xa2, 0x91, 0x25, 0x74, 0xae, 0x97, 0xbb, 0x28, 0x8b, 0x41, 0xfc, 0x09, 0x25, 0x05, 0x3a, 0x29, 0xb0, 0xbf, 0xbc, 0x0e, 0xba, 0xe8, 0xd6, 0x3c, 0xc0, 0xb4, 0x6e, 0x37, 0x38, 0x04, 0x6c, 0x5a, 0x20, 0x25, 0x30, 0xbc, 0xb1, 0x5b, 0x18, 0x7a, 0x72, 0x85, 0x4a, 0xa2, 0xd8, 0xa7, 0xa7, 0x6c, 0x89, 0xa8, 0x9a, 0x5d, 0xb4, 0x60, 0x32, 0x07, 0x4e, 0x1b, 0xd7, 0xde, 0x77, 0xef, 0x20, 0x65, 0xa0, 0x8f, 0x38, 0x9d, 0x78, 0x3c, 0xf7, 0x59, 0xeb, 0xd5, 0xa6, 0x3a, 0x44, 0xd9, 0x19, 0xf9, 0x48, 0xf5, 0x60, 0xc3, 0xe9, 0x4c, 0x42, 0x39, 0xe2, 0x74, 0xe0, 0x51, 0xa2, 0x04, 0x85, 0xa4, 0x30, 0xcb, 0xd5, 0x29, 0xf3, 0x13, 0xd9, 0xf7, 0xed, 0x67, 0x9a, 0x34, 0x18, 0x7b, 0x24, 0xf8, 0x41, 0x30, 0x87, 0xa9, 0x02, 0x1e, 0x47, 0x31, 0x73, 0x0f, 0x5f, 0x46, 0x1f, 0xc5, 0xaa, 0xd6, 0x65, 0x4d, 0xfa, 0x1c, 0x05, 0x04, 0xd2, 0x61, 0x24, 0x70, 0x7e, 0x63, 0xee, 0x57, 0xf9, 0x31, 0xb2, 0x78, 0x59, 0x08, 0xf8, 0x6b, 0x10, 0x4b, 0x3e, 0xcb, 0x96, 0x00, 0x02, 0x51, 0xd0, 0x6c, 0xe1, 0xfa, 0x45, 0xe4, 0xcd, 0x6d, 0xf9, 0x1a, 0xc1, 0x5b, 0xbf, 0x7c, 0xa3, 0xc3, 0xeb, 0x8e, 0xe0, 0x82, 0x76, 0x12, 0xa2, 0x9e, 0xcb, 0x7a, 0x36, 0xd5, 0x47, 0x0c, 0x40, 0x50, 0x51, 0x82, 0xfa, 0x9a, 0xc9, 0x13, 0x57, 0x0d, 0x0c, 0x10, 0x50, 0xd9, 0xa4, 0x34, 0x55, 0xcb, 0x7b, 0xdc, 0x17, 0xd1, 0x69, 0x80, 0x5f, 0x01, 0x89, 0x56, 0xf8, 0x54, 0xf8, 0x91, 0x9b, 0xbf, 0xb7, 0x19, 0xe1, 0x86, 0x7b, 0x36, 0xa6, 0x4a, 0xab, 0xcd, 0xb8, 0x07, 0xf4, 0x8d, 0xcc, 0xc0, 0x67, 0x2f, 0x67, 0x88, 0x74, 0x50, 0xb3, 0xf3, 0xe9, 0x58, 0xd7, 0x84, 0x99, 0xe0, 0xd1, 0xab, 0x36, 0x8a, 0xa4, 0x94, 0x42, 0xe5, 0xe8, 0xa3, 0x32, 0xbf, 0xfd, 0x44, 0xc1, 0x69, 0xea, 0x67, 0x62, 0x9c, 0x85, 0x72, 0x4d, 0xb6, 0xf1, 0x58, 0x6b, 0x6c, 0x6b, 0x5b, 0xe4, 0x86, 0x4d, 0xfd, 0x53, 0xda, 0x7c, 0x0f, 0x7b, 0x8b, 0xb3, 0x57, 0x31, 0x16, 0xbe, 0x50, 0x77, 0xd3, 0x32, 0xbd, 0x12, 0xa6, 0x30, 0x0f, 0x3a, 0x68, 0xa8, 0x98, 0x66, 0xb4, 0x79, 0xec, 0x2b, 0xaa, 0x27, 0x7f, 0x9f, 0x56, 0xf6, 0xe1, 0xd4, 0x9d, 0x74, 0x1e, 0xb3, 0x22, 0x03, 0x5f, 0xf8, 0xcb, 0x1d, 0xe8, 0x5c, 0x8d, 0xc8, 0x7a, 0xc8, 0xe6, 0xe4, 0xc5, 0xd2, 0x0b, 0xfb, 0x6d, 0x31, 0x7a, 0xb1, 0x25, 0x93, 0x0c, 0x42, 0x60, 0x9b, 0xe3, 0xae, 0x82, 0x24, 0x2a, 0x9e, 0xf0, 0x56, 0x88, 0x58, 0xd8, };
18376 static const u8 ed25519_799_test_vectors_expected_sig[] = {
18377 	0xe1, 0x31, 0x7b, 0xa2, 0xa1, 0x23, 0xae, 0x3b, 0x29, 0xe7, 0xb6, 0x0e, 0x8e, 0x93, 0xbe, 0xed, 0xd7, 0xa0, 0x84, 0x51, 0xa0, 0x13, 0x69, 0x5b, 0x6d, 0xcf, 0x35, 0x8e, 0x40, 0x34, 0x02, 0x6d, 0xc7, 0x40, 0x37, 0xaf, 0xbd, 0xd2, 0x17, 0xff, 0x4b, 0x14, 0x8b, 0x02, 0x91, 0x38, 0xf4, 0xbc, 0xc8, 0xf9, 0x83, 0x6a, 0xbb, 0xae, 0x7e, 0x62, 0x76, 0xe9, 0xe7, 0x69, 0xdb, 0xd8, 0xf0, 0x07, };
18378 static const ec_test_case ed25519_799_test_case = {
18379 	.name = "EDDSA25519-SHA512/wei25519 799",
18380 	.ec_str_p = &wei25519_str_params,
18381 	.priv_key = ed25519_799_test_vectors_priv_key,
18382 	.priv_key_len = sizeof(ed25519_799_test_vectors_priv_key),
18383 	.nn_random = NULL,
18384 	.hash_type = SHA512,
18385 	.msg = (const char *)ed25519_799_test_vectors_message,
18386 	.msglen = sizeof(ed25519_799_test_vectors_message),
18387 	.sig_type = EDDSA25519,
18388 	.exp_sig = ed25519_799_test_vectors_expected_sig,
18389 	.exp_siglen = sizeof(ed25519_799_test_vectors_expected_sig),
18390 	.adata = NULL,
18391 	.adata_len = 0
18392 };
18393 
18394 /************************************************/
18395 static const u8 ed25519_800_test_vectors_priv_key[] = {
18396 	0x09, 0xd8, 0x12, 0x26, 0x97, 0x12, 0x6d, 0xfc, 0x7e, 0x11, 0x68, 0x5a, 0x04, 0x12, 0x3f, 0xdf, 0xb4, 0x7c, 0xcd, 0xdb, 0x44, 0x99, 0xd8, 0xa3, 0xae, 0xf4, 0x18, 0xcb, 0x65, 0xae, 0xd7, 0xa7, };
18397 static const u8 ed25519_800_test_vectors_message[] = {
18398 	0xa0, 0xd8, 0xd8, 0x79, 0x8e, 0xba, 0x22, 0xf5, 0x67, 0x60, 0xc3, 0x06, 0x43, 0xe9, 0xfc, 0x67, 0x95, 0x54, 0x7e, 0xa5, 0xf2, 0xf2, 0xbb, 0xd1, 0x1c, 0x03, 0x92, 0xb2, 0xeb, 0xf7, 0x11, 0xac, 0xa2, 0x2f, 0x08, 0x24, 0x19, 0x9f, 0xc3, 0x18, 0x8a, 0x45, 0xbd, 0xff, 0xde, 0x70, 0xec, 0xe9, 0xab, 0x15, 0xa5, 0xea, 0x89, 0x62, 0x2a, 0x58, 0x71, 0xe0, 0xef, 0x76, 0x85, 0xd1, 0x0f, 0x12, 0x74, 0xcc, 0x19, 0x5b, 0x4f, 0xda, 0x81, 0xf8, 0x79, 0xd1, 0xe9, 0xbf, 0x42, 0xf8, 0x73, 0xb2, 0x0a, 0x85, 0x9c, 0x23, 0x3f, 0x9e, 0x49, 0xad, 0xbf, 0x05, 0x77, 0x31, 0xe1, 0x13, 0x35, 0xe9, 0xb6, 0xd8, 0xed, 0x0e, 0x06, 0x9e, 0x13, 0x4e, 0xc4, 0x61, 0xca, 0x88, 0x90, 0xd7, 0xb0, 0x47, 0x3c, 0x40, 0x5e, 0x8a, 0x9d, 0x95, 0xd1, 0x57, 0x11, 0xb1, 0x24, 0x76, 0x10, 0x37, 0x62, 0xc6, 0x26, 0xd9, 0xf2, 0xaa, 0x5d, 0xd5, 0x19, 0xbd, 0x82, 0x5b, 0x60, 0xb3, 0x23, 0x4e, 0xbf, 0x65, 0x1e, 0x0d, 0x19, 0x33, 0x37, 0x1c, 0x52, 0xbf, 0xd8, 0xce, 0x33, 0xfc, 0x36, 0xbb, 0xa3, 0x28, 0xf7, 0xf3, 0xf2, 0xcc, 0xc0, 0x10, 0x00, 0xa8, 0x99, 0x04, 0xaf, 0x37, 0xe4, 0xe1, 0xe9, 0xe1, 0x5f, 0xff, 0xab, 0x5c, 0x2b, 0x0c, 0x47, 0xf3, 0x7c, 0xdc, 0xb0, 0x68, 0xdb, 0x33, 0xac, 0x36, 0xa5, 0xf0, 0xd6, 0xde, 0x12, 0x03, 0xfb, 0xf8, 0x94, 0x93, 0x24, 0xbd, 0x3e, 0xfd, 0xa0, 0xf9, 0x88, 0x9d, 0xb0, 0x0d, 0xa2, 0x31, 0x7b, 0x49, 0xfd, 0x18, 0x69, 0x99, 0xdf, 0x7f, 0xcd, 0xc3, 0xcb, 0x4e, 0x1d, 0x18, 0xfa, 0xa2, 0x54, 0x56, 0x1c, 0x25, 0x11, 0x78, 0xb8, 0xd3, 0x3f, 0xdc, 0x9d, 0xcc, 0xd8, 0xd2, 0xd7, 0x21, 0xb9, 0x3a, 0x53, 0x6c, 0xcd, 0x3c, 0x0e, 0x9c, 0x85, 0x63, 0x37, 0xf1, 0x95, 0xee, 0xe7, 0xda, 0x9a, 0x7f, 0x6b, 0x0a, 0x42, 0xb7, 0xc5, 0x41, 0xc6, 0xa6, 0x8c, 0x59, 0x5b, 0xf3, 0x47, 0x04, 0xd9, 0xfe, 0x3a, 0x56, 0xd2, 0xec, 0x84, 0x81, 0xd5, 0x77, 0xc9, 0x6e, 0xcc, 0x08, 0xb8, 0xe4, 0x0a, 0xcd, 0xbf, 0x05, 0x0e, 0x20, 0xc6, 0x83, 0xf3, 0x9c, 0x41, 0x4e, 0x8c, 0xbf, 0xcf, 0x4a, 0x01, 0x52, 0x31, 0x4c, 0x05, 0x98, 0x7a, 0x83, 0xbd, 0xe3, 0x02, 0x5b, 0x73, 0x5c, 0xca, 0x30, 0x23, 0xab, 0xc5, 0xfe, 0xb7, 0xe0, 0x0d, 0x02, 0x36, 0xb4, 0xf2, 0x4b, 0x15, 0xe6, 0x79, 0xdb, 0x05, 0x2c, 0x8d, 0x2f, 0xdd, 0xb3, 0xbe, 0xf8, 0x66, 0x3a, 0x6d, 0xf8, 0x19, 0xa9, 0x81, 0x55, 0x27, 0xa1, 0xa2, 0xf6, 0x0a, 0x0f, 0xa4, 0xe5, 0x07, 0x8d, 0xdc, 0x6d, 0x43, 0x5f, 0xe8, 0x92, 0x87, 0xb3, 0x0f, 0xfd, 0xeb, 0x5d, 0x9a, 0xe0, 0x5d, 0x1a, 0x86, 0x90, 0xfb, 0xc7, 0x59, 0x0a, 0xad, 0x57, 0xd4, 0x3d, 0x22, 0xc1, 0x2a, 0xce, 0x2c, 0x81, 0x96, 0x88, 0x8e, 0x35, 0x4e, 0x9f, 0x78, 0x2f, 0x5d, 0xbb, 0x44, 0x14, 0x9e, 0x83, 0xfb, 0x8b, 0xbc, 0x9d, 0xa6, 0xd8, 0x9c, 0xe2, 0x06, 0xc1, 0xe2, 0xb6, 0xb2, 0xb2, 0x8f, 0x93, 0x3f, 0x3e, 0x5f, 0xf1, 0x17, 0x5a, 0x31, 0xa8, 0xff, 0x5d, 0x31, 0xe6, 0x5c, 0x8b, 0x00, 0xc5, 0xba, 0x46, 0x22, 0x24, 0xa1, 0xe0, 0x9d, 0x4f, 0x09, 0xcb, 0x40, 0xfc, 0x87, 0xc3, 0x6e, 0x7d, 0x28, 0x5c, 0x77, 0x4a, 0x96, 0x97, 0x62, 0x03, 0x65, 0x18, 0x28, 0xe7, 0x83, 0x62, 0x88, 0x47, 0xac, 0x51, 0x2e, 0x5d, 0x1c, 0x35, 0xb3, 0x5b, 0x03, 0x01, 0x71, 0xf9, 0x23, 0x96, 0xf5, 0xff, 0xaf, 0xf5, 0x85, 0xce, 0xad, 0x04, 0xb6, 0xae, 0x21, 0x0d, 0x80, 0x70, 0x7c, 0xc6, 0x83, 0x2d, 0x98, 0xa2, 0x0d, 0x3a, 0x94, 0x76, 0x48, 0xda, 0x26, 0x04, 0x93, 0x7f, 0xef, 0xd2, 0x5a, 0x9f, 0xe0, 0xfc, 0x5c, 0xac, 0x08, 0x3d, 0xdd, 0x7d, 0x20, 0x75, 0x30, 0x7f, 0x4f, 0x38, 0x26, 0x64, 0xf6, 0x87, 0xdc, 0xe8, 0xc6, 0x55, 0xde, 0xd9, 0xc1, 0x2d, 0x48, 0xff, 0x76, 0x01, 0xdf, 0x2a, 0x48, 0xd3, 0x7f, 0xe2, 0x14, 0x97, 0x08, 0x44, 0xc0, 0x75, 0xf2, 0xea, 0xb0, 0x02, 0x05, 0x9f, 0xc2, 0x27, 0x1e, 0x61, 0x7c, 0x96, 0x57, 0xa0, 0x1b, 0xec, 0x1d, 0xd3, 0x8f, 0x6c, 0x28, 0xba, 0x8a, 0x61, 0x7b, 0xd3, 0x08, 0x51, 0xe3, 0xf9, 0xdb, 0xac, 0x90, 0x44, 0x18, 0xdf, 0x1d, 0x02, 0x15, 0xad, 0x45, 0xdf, 0xc9, 0xf0, 0x2b, 0x5c, 0x5e, 0x9f, 0x9b, 0xbc, 0x6d, 0xe8, 0xb0, 0x7a, 0xf0, 0xbd, 0x1f, 0x7f, 0xa8, 0x92, 0x25, 0x44, 0xf1, 0x2d, 0x2a, 0x3e, 0x1a, 0xad, 0xff, 0x7e, 0x9c, 0x6b, 0x93, 0x32, 0x0c, 0x3a, 0x61, 0xef, 0x33, 0xda, 0x07, 0xeb, 0x87, 0xb1, 0x61, 0x7f, 0x9e, 0x77, 0xd7, 0x70, 0x2e, 0x55, 0x8b, 0xc7, 0xd8, 0x12, 0x2e, 0x0d, 0xfe, 0x2a, 0xe8, 0x3e, 0x83, 0x6c, 0x5b, 0x1a, 0x62, 0xaa, 0x58, 0x5c, 0x0d, 0xff, 0xe7, 0x16, 0xf7, 0x46, 0x3c, 0x0b, 0x33, 0xda, 0x5b, 0x1e, 0xda, 0x55, 0x6a, 0x1e, 0xf1, 0xe4, 0x50, 0x42, 0xc7, 0x9b, 0xdd, 0x3e, 0xc3, 0xcb, 0x88, 0x63, 0xa7, 0xbc, 0x1b, 0x0f, 0x7e, 0x1c, 0x05, 0xbd, 0x99, 0x20, 0xf0, 0x5b, 0x4e, 0xda, 0x86, 0x51, 0x77, 0x05, 0xed, 0x07, 0xf6, 0xdc, 0xa7, 0xbb, 0x00, 0xae, 0x04, 0x56, 0xe6, 0x78, 0x7d, 0x9f, 0xae, 0x8e, 0xde, 0x4e, 0xcd, 0x0b, 0xc5, 0x72, 0xeb, 0x5c, 0xc6, 0xd1, 0x9e, 0x89, 0x1f, 0x1b, 0xcb, 0x22, 0x9e, 0x94, 0x09, 0xe0, 0x65, 0x74, 0xc7, 0xdf, 0x05, 0x81, 0x73, 0xcb, 0x58, 0xc3, 0xfd, 0xf2, 0x0f, 0x3f, 0xf1, 0x7c, 0x37, 0x05, 0xaf, 0x62, 0xd9, 0xb7, 0x22, 0x5c, 0x57, 0x43, 0xf6, 0x00, 0x60, 0x7f, 0x77, 0xcb, 0xe7, 0xd6, 0xe7, 0x61, 0x8a, 0xbc, 0x79, };
18399 static const u8 ed25519_800_test_vectors_expected_sig[] = {
18400 	0x18, 0xcf, 0xaf, 0x6d, 0xc8, 0xe4, 0xe8, 0x58, 0x2b, 0xce, 0xfe, 0x0c, 0xdc, 0x6f, 0xce, 0xfe, 0x6a, 0x4a, 0x87, 0xea, 0x62, 0x95, 0x85, 0xf3, 0x7d, 0x2f, 0xba, 0x44, 0x6b, 0x3a, 0xeb, 0xd4, 0x52, 0x42, 0x63, 0x82, 0xda, 0x0d, 0x49, 0x1c, 0x39, 0xcb, 0x7d, 0x54, 0xd2, 0x73, 0x00, 0x5d, 0xc1, 0x32, 0x12, 0x15, 0x68, 0xd2, 0xab, 0x67, 0x45, 0x20, 0xad, 0xda, 0x75, 0x23, 0x84, 0x0d, };
18401 static const ec_test_case ed25519_800_test_case = {
18402 	.name = "EDDSA25519-SHA512/wei25519 800",
18403 	.ec_str_p = &wei25519_str_params,
18404 	.priv_key = ed25519_800_test_vectors_priv_key,
18405 	.priv_key_len = sizeof(ed25519_800_test_vectors_priv_key),
18406 	.nn_random = NULL,
18407 	.hash_type = SHA512,
18408 	.msg = (const char *)ed25519_800_test_vectors_message,
18409 	.msglen = sizeof(ed25519_800_test_vectors_message),
18410 	.sig_type = EDDSA25519,
18411 	.exp_sig = ed25519_800_test_vectors_expected_sig,
18412 	.exp_siglen = sizeof(ed25519_800_test_vectors_expected_sig),
18413 	.adata = NULL,
18414 	.adata_len = 0
18415 };
18416 
18417 /************************************************/
18418 static const u8 ed25519_801_test_vectors_priv_key[] = {
18419 	0x10, 0x20, 0x1b, 0xf0, 0x08, 0x43, 0x67, 0x59, 0x0d, 0xe6, 0x74, 0xcc, 0x0e, 0xd2, 0x64, 0x8e, 0xc2, 0x5d, 0x3b, 0xa8, 0xdb, 0x40, 0xd0, 0x0e, 0xde, 0x15, 0x33, 0x98, 0x50, 0x8b, 0xc1, 0x26, };
18420 static const u8 ed25519_801_test_vectors_message[] = {
18421 	0x7b, 0xb1, 0x47, 0x06, 0x17, 0xd1, 0x1e, 0x45, 0xeb, 0x60, 0x2a, 0x82, 0x9a, 0xd7, 0x73, 0xee, 0x2b, 0xb7, 0xe6, 0xb8, 0x8d, 0xa4, 0xc0, 0x4a, 0x72, 0x16, 0xa4, 0x50, 0xf8, 0x49, 0x93, 0xa4, 0x98, 0xcb, 0xd3, 0xb9, 0x25, 0x40, 0x28, 0xf2, 0xf9, 0x9f, 0xc2, 0x1a, 0x23, 0x28, 0x8b, 0xdc, 0x1e, 0x15, 0x1a, 0x72, 0xa9, 0x13, 0x0c, 0x3d, 0xed, 0xda, 0x1b, 0xbb, 0xcc, 0xd4, 0xe6, 0xc0, 0xf4, 0x8a, 0xe9, 0xf3, 0x53, 0x18, 0xcb, 0xef, 0xc9, 0x59, 0xf4, 0x05, 0x04, 0x5e, 0x6e, 0x0b, 0x5f, 0xb2, 0xe7, 0x38, 0xf2, 0xb7, 0x65, 0xbe, 0x11, 0xb1, 0xb6, 0xa0, 0xf1, 0xe8, 0x31, 0x95, 0x49, 0xd9, 0x5f, 0xa8, 0xd1, 0xdf, 0x81, 0x67, 0xcd, 0x4a, 0x77, 0x17, 0xae, 0x16, 0x36, 0xa9, 0xdf, 0x54, 0xd9, 0x6e, 0xaf, 0x2d, 0x63, 0x23, 0x69, 0x00, 0xfd, 0x11, 0x33, 0x82, 0x52, 0xa5, 0x00, 0x8d, 0x5d, 0x48, 0x0e, 0x2b, 0x1e, 0x98, 0x61, 0xd1, 0xf7, 0x06, 0x88, 0xc4, 0x7e, 0xae, 0x46, 0x89, 0xda, 0x01, 0xa4, 0x7d, 0xa3, 0xdf, 0xb6, 0xd2, 0xba, 0xb3, 0xcd, 0xf5, 0x05, 0xee, 0x5d, 0x80, 0x1a, 0x15, 0x2c, 0x26, 0x70, 0x93, 0xd1, 0x7e, 0x9b, 0xf7, 0x13, 0x7a, 0x6e, 0xe7, 0xb8, 0x34, 0xd0, 0x08, 0x55, 0x00, 0xe4, 0x01, 0xc1, 0x7f, 0x32, 0x86, 0xc1, 0x57, 0x5d, 0x1c, 0x01, 0x00, 0xfa, 0x98, 0x07, 0x63, 0x0c, 0x4a, 0x99, 0x06, 0x54, 0xc1, 0xe7, 0x1a, 0x8b, 0x71, 0x56, 0x27, 0xbb, 0x13, 0xd4, 0x42, 0xc8, 0x4a, 0x44, 0x98, 0x44, 0xc4, 0x04, 0xb8, 0x72, 0xbf, 0xba, 0xc7, 0x18, 0xa4, 0x8d, 0x0e, 0xa0, 0x94, 0x5c, 0x77, 0x16, 0x6a, 0x53, 0x13, 0x9b, 0x0f, 0xf0, 0x09, 0x81, 0x34, 0x76, 0x4f, 0x9e, 0xcd, 0xb8, 0x8e, 0xab, 0xe0, 0x7c, 0xcb, 0x2c, 0xce, 0xd4, 0x95, 0x5e, 0x08, 0x24, 0x9b, 0x2f, 0x57, 0x70, 0xad, 0x41, 0xfc, 0xcd, 0x7b, 0x5b, 0xb3, 0x72, 0xe6, 0xc3, 0x37, 0x67, 0xe0, 0x7f, 0x5b, 0xe7, 0xd1, 0x07, 0x12, 0xde, 0x81, 0x84, 0x1b, 0x13, 0x4e, 0x19, 0x3d, 0xf0, 0x77, 0x6a, 0x0f, 0xc1, 0x56, 0xff, 0x5d, 0x0e, 0x96, 0xf4, 0x0a, 0x70, 0x47, 0x53, 0xe1, 0x14, 0x5e, 0x9f, 0xa0, 0x83, 0xc4, 0xdd, 0xee, 0xf4, 0x41, 0x62, 0x34, 0xf6, 0xe1, 0xa2, 0x38, 0x2c, 0x8e, 0x5b, 0x3a, 0xd4, 0x05, 0x45, 0x8e, 0x89, 0xd2, 0xf4, 0x93, 0xa4, 0xd7, 0xc2, 0x9a, 0x23, 0xde, 0x21, 0x07, 0x48, 0x5b, 0x7f, 0x56, 0x35, 0x01, 0x24, 0xe7, 0xe0, 0xd6, 0x95, 0xc5, 0x22, 0xb6, 0xde, 0x7a, 0x92, 0x47, 0xa2, 0x92, 0x4c, 0xe6, 0xf2, 0x86, 0x32, 0x36, 0xc1, 0x0c, 0xc2, 0x12, 0x64, 0xad, 0x54, 0x59, 0x0d, 0x31, 0x47, 0x63, 0xea, 0x1a, 0x19, 0xaf, 0xac, 0xd9, 0x0e, 0xba, 0x95, 0x58, 0x70, 0x40, 0x7e, 0x8c, 0x63, 0x65, 0xa1, 0x43, 0xa5, 0xc1, 0xb9, 0xa8, 0xbe, 0x5e, 0x4a, 0x4d, 0xca, 0xdb, 0x72, 0xe0, 0xd4, 0x76, 0x49, 0xbd, 0x53, 0xab, 0xd4, 0x6b, 0x5c, 0x69, 0x60, 0xea, 0xe2, 0xca, 0xb7, 0x73, 0x75, 0x3c, 0xc0, 0xe0, 0x4e, 0x99, 0x41, 0x4b, 0xc2, 0xcb, 0x30, 0xf4, 0x8b, 0xb5, 0x41, 0x39, 0xd0, 0x66, 0xe4, 0x3e, 0x2f, 0x0e, 0x1a, 0x4a, 0xe9, 0x63, 0x85, 0x8b, 0xef, 0x96, 0x7d, 0xf8, 0xc8, 0x41, 0x40, 0xd2, 0xd0, 0x92, 0x02, 0xb4, 0x06, 0xd5, 0xd8, 0x5c, 0xb7, 0xa9, 0x6c, 0xc5, 0x7f, 0x23, 0x3e, 0xb2, 0x18, 0x7f, 0xfd, 0x02, 0xf9, 0x4e, 0x92, 0x29, 0x7b, 0x5e, 0x69, 0xd9, 0x69, 0xd3, 0xa5, 0x93, 0x6e, 0xfe, 0x49, 0x29, 0x14, 0x4f, 0x25, 0x8b, 0xfb, 0x39, 0xdd, 0x0c, 0xe2, 0x63, 0x59, 0xc4, 0x54, 0x9f, 0xc2, 0x18, 0xa0, 0xaa, 0x54, 0xf3, 0x1b, 0xd5, 0x51, 0xb8, 0x78, 0x1a, 0xcb, 0xbf, 0x61, 0xcb, 0x3f, 0x73, 0x2c, 0xda, 0xf6, 0x22, 0xc6, 0xa6, 0x91, 0x88, 0xcf, 0x55, 0x7a, 0x3a, 0x92, 0xed, 0x15, 0x3e, 0x69, 0x12, 0x5a, 0x40, 0x90, 0xac, 0x45, 0x15, 0x36, 0xa0, 0xe9, 0xa6, 0x3a, 0x41, 0x78, 0x29, 0x10, 0xff, 0xcc, 0xb4, 0xe8, 0x50, 0x02, 0x11, 0x23, 0xff, 0xd1, 0xf3, 0xbf, 0x39, 0xc7, 0x34, 0x60, 0xa6, 0x5c, 0xcf, 0xe4, 0xdb, 0xa9, 0xbd, 0xef, 0xb5, 0xd5, 0xf4, 0xda, 0x6c, 0x46, 0x9a, 0xa1, 0x32, 0x2f, 0xa2, 0x70, 0x43, 0x23, 0x83, 0x63, 0xee, 0x72, 0x91, 0x86, 0x88, 0xd7, 0xca, 0x1c, 0x4c, 0x29, 0x52, 0xe4, 0x30, 0xd5, 0x63, 0x25, 0x6b, 0xb8, 0x6d, 0x35, 0x0a, 0x35, 0xee, 0x82, 0xe0, 0x15, 0x04, 0x74, 0x7f, 0x31, 0xd0, 0x2e, 0x03, 0xae, 0xdd, 0xa5, 0x46, 0xd0, 0xf1, 0xb2, 0xf4, 0x51, 0xb8, 0x70, 0x82, 0x16, 0x02, 0xd0, 0x0e, 0x81, 0x90, 0x36, 0xad, 0xe5, 0xa7, 0xc7, 0xfc, 0xd2, 0x1a, 0x6d, 0xe6, 0xaf, 0x35, 0xb1, 0xf9, 0x63, 0x2a, 0x70, 0xaf, 0x65, 0xdf, 0x64, 0x45, 0xf6, 0xfa, 0xdf, 0xbc, 0x0f, 0x41, 0x67, 0x55, 0xc8, 0x24, 0x66, 0x40, 0xe5, 0x6b, 0x85, 0x6b, 0x66, 0xdd, 0xd9, 0x2a, 0x60, 0xc0, 0x35, 0x38, 0x22, 0x1d, 0xc8, 0xfb, 0x14, 0x2c, 0xe2, 0xdb, 0xac, 0xdb, 0x74, 0x25, 0xf3, 0x3c, 0xb8, 0x5d, 0x85, 0x0c, 0xc0, 0x2c, 0x31, 0x5c, 0xfc, 0x11, 0x1f, 0x6f, 0x65, 0x1d, 0xde, 0x1b, 0xdb, 0x67, 0xfb, 0x20, 0x8e, 0x1f, 0x6b, 0xde, 0x78, 0x4d, 0xdc, 0xf7, 0xbd, 0x18, 0xc8, 0x05, 0x1a, 0x2e, 0x0b, 0xbf, 0x10, 0x18, 0xb8, 0xf3, 0x95, 0x36, 0xc5, 0x89, 0xde, 0x65, 0xea, 0xdc, 0x6c, 0xf3, 0x79, 0xb7, 0x7c, 0xad, 0x13, 0xf9, 0x08, 0x9c, 0xb3, 0x23, 0xfb, 0x2e, 0x94, 0x3d, 0x06, 0xcd, 0xd1, 0x07, 0x05, 0xc1, 0x21, 0x13, 0x4c, 0x65, 0x48, 0xdc, 0x53, 0x41, 0x5f, 0x8c, 0x37, 0x0e, 0xc6, 0x90, };
18422 static const u8 ed25519_801_test_vectors_expected_sig[] = {
18423 	0xf1, 0xd9, 0x96, 0x58, 0x8b, 0x29, 0x8f, 0x27, 0x1e, 0x97, 0x0c, 0xeb, 0xd2, 0xa1, 0xb3, 0x39, 0x97, 0x9c, 0xd2, 0x9d, 0xdd, 0xee, 0x36, 0x45, 0xd0, 0x7f, 0xab, 0x8a, 0xb4, 0x65, 0xdd, 0xe3, 0xe9, 0x86, 0x67, 0xec, 0x01, 0xad, 0x7f, 0x1c, 0x0a, 0x65, 0x92, 0xe0, 0x69, 0x7e, 0x66, 0x5c, 0x72, 0xfd, 0x38, 0x14, 0xdb, 0xe1, 0x89, 0xed, 0x5f, 0x4e, 0x76, 0xc7, 0x94, 0xe5, 0x38, 0x09, };
18424 static const ec_test_case ed25519_801_test_case = {
18425 	.name = "EDDSA25519-SHA512/wei25519 801",
18426 	.ec_str_p = &wei25519_str_params,
18427 	.priv_key = ed25519_801_test_vectors_priv_key,
18428 	.priv_key_len = sizeof(ed25519_801_test_vectors_priv_key),
18429 	.nn_random = NULL,
18430 	.hash_type = SHA512,
18431 	.msg = (const char *)ed25519_801_test_vectors_message,
18432 	.msglen = sizeof(ed25519_801_test_vectors_message),
18433 	.sig_type = EDDSA25519,
18434 	.exp_sig = ed25519_801_test_vectors_expected_sig,
18435 	.exp_siglen = sizeof(ed25519_801_test_vectors_expected_sig),
18436 	.adata = NULL,
18437 	.adata_len = 0
18438 };
18439 
18440 /************************************************/
18441 static const u8 ed25519_802_test_vectors_priv_key[] = {
18442 	0xc4, 0xaa, 0x42, 0x52, 0x46, 0xb5, 0x17, 0x3f, 0x5e, 0xf8, 0x98, 0x15, 0x2e, 0xca, 0x3d, 0x09, 0x2b, 0xb4, 0xc2, 0xdd, 0x02, 0x85, 0x3f, 0xcf, 0xc7, 0x17, 0x83, 0x99, 0xf4, 0xe2, 0xf7, 0x58, };
18443 static const u8 ed25519_802_test_vectors_message[] = {
18444 	0x7d, 0xf9, 0x78, 0xa1, 0xf4, 0x97, 0x68, 0x38, 0xff, 0xed, 0x74, 0x49, 0xa4, 0xdc, 0x13, 0x8b, 0x60, 0x4f, 0x4b, 0x2a, 0x4a, 0xe6, 0x89, 0xce, 0x75, 0x01, 0x8e, 0xbc, 0xcd, 0xab, 0x2e, 0xaa, 0x0b, 0x60, 0x76, 0x8f, 0x72, 0x08, 0x25, 0x7f, 0x2b, 0x28, 0xe7, 0xaa, 0x09, 0xbf, 0x6c, 0x05, 0x88, 0x8d, 0xa4, 0x6f, 0xd3, 0x96, 0xd1, 0xc8, 0x03, 0x01, 0x17, 0x50, 0xe3, 0x0e, 0xb4, 0x84, 0x87, 0x0c, 0x88, 0x06, 0x97, 0x76, 0x96, 0xf1, 0x2e, 0xbb, 0x9f, 0xee, 0xb4, 0xca, 0xf9, 0x2a, 0x02, 0xdb, 0xaa, 0x22, 0xbb, 0xff, 0x63, 0xf8, 0x42, 0xc3, 0xba, 0x14, 0x7b, 0xca, 0x7c, 0x00, 0x31, 0x42, 0x78, 0xac, 0xd0, 0xdb, 0x17, 0x35, 0x69, 0xf4, 0xe3, 0x65, 0x27, 0x95, 0x8e, 0xf6, 0xf1, 0x00, 0x2b, 0xd3, 0xcd, 0x01, 0xf4, 0x07, 0xa8, 0x65, 0x31, 0xed, 0xcb, 0xd9, 0xf3, 0x1b, 0x3a, 0x4a, 0xb8, 0x80, 0xa4, 0xf5, 0xb5, 0x2b, 0x42, 0xd0, 0xd4, 0xa1, 0xba, 0x66, 0xa2, 0x09, 0x86, 0x51, 0xae, 0x3e, 0x6c, 0x91, 0x51, 0xf4, 0x02, 0x73, 0x28, 0x5f, 0x7f, 0x6a, 0x4e, 0x81, 0x60, 0x6b, 0xf9, 0x80, 0xf6, 0x89, 0x50, 0x4b, 0x42, 0x08, 0x0f, 0xdb, 0x97, 0xc7, 0x28, 0x46, 0xfb, 0xa9, 0x04, 0x7c, 0x7e, 0x66, 0x0b, 0xa5, 0xc6, 0xbf, 0x12, 0x6a, 0x9a, 0x59, 0x9e, 0x25, 0x71, 0xfa, 0x13, 0x50, 0x5a, 0xf7, 0x58, 0x1b, 0xfe, 0xbc, 0x16, 0x51, 0x3f, 0x5c, 0x94, 0xdc, 0x71, 0x93, 0x7e, 0x6e, 0x61, 0xb3, 0xea, 0x10, 0x93, 0x9b, 0x02, 0xea, 0x10, 0x85, 0x9f, 0x32, 0xd7, 0x91, 0x2b, 0x9e, 0x38, 0x06, 0xab, 0xef, 0x61, 0x85, 0xfc, 0xff, 0xa6, 0x88, 0x21, 0x47, 0x80, 0x05, 0xcb, 0xfc, 0x1d, 0x63, 0x7d, 0xd0, 0x20, 0x42, 0x56, 0x20, 0xa3, 0x18, 0x07, 0x48, 0x98, 0xbd, 0xc3, 0x09, 0x31, 0xc5, 0x9a, 0xc0, 0xc6, 0x6c, 0x4d, 0x12, 0x38, 0xb0, 0x97, 0xcd, 0x5b, 0x17, 0x0f, 0x08, 0x44, 0x35, 0xd4, 0xba, 0xe4, 0x8a, 0x03, 0xd9, 0x2f, 0xd4, 0x8f, 0xc2, 0xca, 0xa4, 0xff, 0xc5, 0x05, 0xf1, 0xbc, 0xa5, 0x16, 0xfb, 0xd6, 0xe4, 0xf8, 0x88, 0xcc, 0xed, 0x98, 0x2a, 0xe0, 0xdd, 0xb8, 0x8f, 0xc2, 0x8a, 0xa6, 0x97, 0xb7, 0x07, 0x1d, 0x01, 0x5b, 0x0a, 0xcb, 0x28, 0x09, 0xb0, 0x1d, 0x1d, 0x9c, 0x7e, 0x7b, 0x53, 0xee, 0xe6, 0x82, 0x4c, 0xc3, 0x7c, 0xce, 0x5b, 0x69, 0x93, 0xd8, 0x8d, 0x83, 0xea, 0xfc, 0x2e, 0x92, 0x8a, 0x6f, 0x14, 0x7d, 0xb6, 0xeb, 0x80, 0xb1, 0xa6, 0x9f, 0x01, 0x60, 0x5b, 0x04, 0x6b, 0xd2, 0xfd, 0x1d, 0x92, 0xc5, 0x45, 0x9d, 0x6d, 0x33, 0x98, 0xa9, 0xca, 0xa2, 0x99, 0xdd, 0xd0, 0xc3, 0xba, 0x2e, 0x08, 0x94, 0x13, 0x07, 0xb1, 0x20, 0xcc, 0x13, 0x99, 0x2f, 0x70, 0x03, 0xac, 0xed, 0x14, 0xa4, 0xa4, 0xd9, 0x23, 0xbb, 0xb1, 0x2f, 0xc3, 0x93, 0xff, 0xcf, 0x92, 0x0b, 0x9f, 0x6d, 0x47, 0x75, 0xe9, 0x4d, 0x4a, 0x51, 0x22, 0x67, 0xfd, 0x26, 0xa6, 0x99, 0x7c, 0x60, 0x62, 0xb4, 0xc9, 0x90, 0x0f, 0x98, 0x62, 0xb9, 0xea, 0x0c, 0x8d, 0x7d, 0xf1, 0x9f, 0x05, 0xc2, 0xb6, 0x04, 0xaf, 0x5b, 0x98, 0x64, 0xfb, 0x27, 0x54, 0xa8, 0x07, 0x3b, 0xbb, 0xfb, 0x18, 0x23, 0x3e, 0x6e, 0x15, 0x0f, 0x72, 0xa5, 0x25, 0xe3, 0xa5, 0x76, 0x0f, 0xcd, 0xa7, 0xd3, 0x2a, 0x60, 0x03, 0x4f, 0x95, 0x6e, 0x3c, 0xbd, 0x34, 0x36, 0xc2, 0x00, 0x83, 0x0b, 0x3e, 0x7a, 0x14, 0x57, 0x12, 0x20, 0xbc, 0xb6, 0x27, 0xd5, 0xa4, 0xbe, 0x72, 0xc2, 0x0b, 0x23, 0x35, 0x1b, 0x2d, 0x92, 0x06, 0x02, 0xa5, 0x1c, 0x3e, 0xb3, 0x2c, 0x12, 0x37, 0x03, 0x9d, 0xfb, 0xff, 0x43, 0xc9, 0x87, 0xfd, 0x85, 0x63, 0x77, 0x7f, 0x0e, 0x5a, 0x39, 0xf8, 0x14, 0x6c, 0x16, 0x4b, 0xdf, 0xfc, 0xe4, 0x4f, 0x3b, 0x13, 0xee, 0x74, 0xd6, 0x4b, 0xfd, 0xcf, 0x98, 0x03, 0xf0, 0x3d, 0xd0, 0x17, 0x2a, 0xc4, 0xfa, 0x4b, 0xf6, 0xc7, 0x83, 0x9c, 0xb1, 0x1f, 0x3d, 0x34, 0xba, 0xef, 0x0e, 0x32, 0xb5, 0x49, 0x42, 0xfc, 0x4f, 0xa3, 0x8f, 0x47, 0x3e, 0x29, 0x66, 0xf4, 0x91, 0x1c, 0x0e, 0x80, 0xd7, 0x69, 0x37, 0xb2, 0x5b, 0x76, 0x32, 0x27, 0x5b, 0xa8, 0x83, 0x09, 0x63, 0x5a, 0x60, 0xdf, 0x13, 0x54, 0x89, 0x20, 0x8d, 0x3e, 0x73, 0x4b, 0x67, 0x2e, 0xda, 0x7d, 0x2b, 0xa2, 0x15, 0x79, 0xab, 0xa8, 0xd8, 0x86, 0x0e, 0xa7, 0x64, 0xfd, 0x67, 0xea, 0xf9, 0xc3, 0x8e, 0xa7, 0x63, 0x7d, 0x1b, 0xad, 0x57, 0xb2, 0xf3, 0xd7, 0x82, 0xb9, 0x1e, 0x1d, 0x5d, 0x92, 0xac, 0x30, 0x0b, 0xdb, 0xa7, 0xab, 0x91, 0x13, 0xce, 0x91, 0x3d, 0x0c, 0x79, 0x3c, 0x12, 0xa9, 0xa7, 0x26, 0xe3, 0xfc, 0xab, 0x05, 0xcb, 0x47, 0x99, 0x77, 0x87, 0x16, 0x40, 0x63, 0x0d, 0x45, 0x9e, 0x69, 0xe8, 0x1c, 0xa5, 0xcf, 0x56, 0xdd, 0xb2, 0xa0, 0x61, 0x1d, 0x61, 0xd4, 0x81, 0xc1, 0xb8, 0xce, 0xf3, 0x80, 0x4b, 0xd4, 0xe5, 0x75, 0x4a, 0x61, 0xeb, 0x49, 0xb1, 0x7e, 0xf2, 0xb0, 0x3c, 0x83, 0x05, 0x7b, 0x5d, 0x20, 0xd8, 0x82, 0x05, 0x8c, 0x00, 0xf5, 0x4b, 0x6c, 0xca, 0x86, 0xbe, 0x95, 0x35, 0x0d, 0xd7, 0xbc, 0xb2, 0x5e, 0x4c, 0x1c, 0x46, 0x58, 0xf4, 0x52, 0x29, 0xc8, 0xbb, 0x9f, 0x5c, 0xdf, 0xcc, 0x44, 0x79, 0x5c, 0x97, 0x8e, 0x33, 0x88, 0xd3, 0x25, 0x76, 0x01, 0x06, 0xe5, 0x2b, 0xe9, 0x83, 0x4b, 0xd8, 0x1f, 0xfc, 0x5c, 0x62, 0x48, 0x6b, 0x6f, 0x33, 0xc2, 0x74, 0x59, 0xdf, 0x17, 0x8e, 0xb9, 0x46, 0xe7, 0xa8, 0x2d, 0xb9, 0xce, 0x0d, 0x29, 0x5b, 0x92, 0x5b, 0xb6, 0x12, 0x6d, 0xd5, 0x5c, 0x31, 0xf4, 0x9a, 0x68, 0xdc, 0xef, 0xc7, };
18445 static const u8 ed25519_802_test_vectors_expected_sig[] = {
18446 	0x5d, 0x85, 0x45, 0xa4, 0xbe, 0x3f, 0xd6, 0xda, 0x25, 0x78, 0xc2, 0xec, 0xcb, 0x64, 0x8d, 0x83, 0xfc, 0xfe, 0x58, 0x71, 0x33, 0xfa, 0x7a, 0xe4, 0xa1, 0xcf, 0xca, 0x9a, 0xe6, 0xda, 0xa4, 0x92, 0x59, 0xc9, 0x52, 0x04, 0x4a, 0x85, 0xa2, 0x0b, 0x6f, 0x53, 0x24, 0xf8, 0x27, 0xdb, 0xa2, 0xd1, 0xa8, 0x38, 0x8c, 0x40, 0xa9, 0x28, 0xb9, 0x50, 0x91, 0x3c, 0x63, 0x4f, 0xb3, 0x09, 0x27, 0x07, };
18447 static const ec_test_case ed25519_802_test_case = {
18448 	.name = "EDDSA25519-SHA512/wei25519 802",
18449 	.ec_str_p = &wei25519_str_params,
18450 	.priv_key = ed25519_802_test_vectors_priv_key,
18451 	.priv_key_len = sizeof(ed25519_802_test_vectors_priv_key),
18452 	.nn_random = NULL,
18453 	.hash_type = SHA512,
18454 	.msg = (const char *)ed25519_802_test_vectors_message,
18455 	.msglen = sizeof(ed25519_802_test_vectors_message),
18456 	.sig_type = EDDSA25519,
18457 	.exp_sig = ed25519_802_test_vectors_expected_sig,
18458 	.exp_siglen = sizeof(ed25519_802_test_vectors_expected_sig),
18459 	.adata = NULL,
18460 	.adata_len = 0
18461 };
18462 
18463 /************************************************/
18464 static const u8 ed25519_803_test_vectors_priv_key[] = {
18465 	0xf1, 0x3c, 0xaf, 0xde, 0x6f, 0x39, 0xb9, 0x63, 0xdc, 0xa9, 0x66, 0x26, 0x86, 0x2f, 0x4f, 0xbc, 0x5c, 0x2e, 0x00, 0xdd, 0xf0, 0x8b, 0xec, 0xea, 0xc7, 0xa6, 0xe2, 0xfc, 0xa9, 0xe1, 0xcc, 0xf7, };
18466 static const u8 ed25519_803_test_vectors_message[] = {
18467 	0x2b, 0xee, 0x73, 0xb7, 0x4f, 0x1b, 0x76, 0x22, 0xeb, 0x09, 0x6a, 0x28, 0xd8, 0x3a, 0x81, 0x9b, 0xce, 0xc2, 0x2d, 0x99, 0x99, 0xa3, 0x20, 0x62, 0x10, 0x3d, 0x60, 0x4a, 0xe6, 0xd7, 0x8e, 0xdf, 0x8f, 0x89, 0x38, 0x95, 0xd2, 0x22, 0x0a, 0xb7, 0x56, 0x90, 0x41, 0x0c, 0x58, 0xaa, 0xb5, 0x90, 0xa9, 0x8d, 0xdf, 0xf2, 0x3a, 0x94, 0xd2, 0x35, 0x0f, 0x88, 0x9e, 0x53, 0x46, 0x42, 0x00, 0xa5, 0x27, 0xd5, 0x4d, 0x62, 0x57, 0x11, 0x07, 0xb2, 0x7e, 0x57, 0x4f, 0x54, 0x2e, 0xba, 0xc2, 0x49, 0xb8, 0xe2, 0xe3, 0xce, 0x08, 0xd1, 0xbd, 0x27, 0xbd, 0x8d, 0x29, 0xf2, 0xe6, 0x12, 0x43, 0xde, 0xef, 0x0e, 0x69, 0x38, 0xe5, 0x2e, 0xe2, 0x99, 0x2f, 0xf2, 0x18, 0x7d, 0x7a, 0x7f, 0x52, 0x82, 0xed, 0xd9, 0x8f, 0xc4, 0x98, 0x5b, 0x61, 0x9a, 0xcb, 0x80, 0xaa, 0x9d, 0x03, 0xd6, 0xcb, 0x84, 0xb8, 0x21, 0x10, 0x6f, 0x40, 0xd6, 0xe5, 0xf4, 0xc3, 0x87, 0xab, 0x0a, 0xf6, 0xf2, 0x06, 0x61, 0x5d, 0x0a, 0x17, 0x5f, 0x7e, 0x60, 0xee, 0x27, 0x55, 0xae, 0xa3, 0x46, 0x75, 0xfd, 0xd8, 0x23, 0xeb, 0x24, 0x10, 0x9a, 0x9b, 0xd8, 0x18, 0xea, 0x2d, 0x9d, 0x9b, 0xd1, 0x99, 0xcf, 0x8d, 0xfe, 0x79, 0x62, 0x4b, 0x03, 0x72, 0xae, 0x85, 0xe9, 0x8c, 0x60, 0x20, 0x02, 0x34, 0xbd, 0x41, 0x3f, 0x4a, 0x62, 0xce, 0x68, 0xa4, 0x7b, 0x6c, 0x9b, 0x12, 0x85, 0x7c, 0x0d, 0x39, 0x9a, 0x44, 0x8e, 0x5a, 0x52, 0x80, 0xe9, 0xf2, 0x2f, 0x9b, 0x12, 0xea, 0x2c, 0xd3, 0xc6, 0x87, 0x13, 0xe7, 0x7d, 0x0a, 0x11, 0xf3, 0x62, 0x8d, 0x8e, 0xc5, 0xe0, 0x60, 0x63, 0x90, 0x31, 0xd3, 0xb6, 0x40, 0x02, 0x1c, 0x9c, 0x38, 0x80, 0x9d, 0xc5, 0xf4, 0x2d, 0x2e, 0x1c, 0x2e, 0x23, 0x46, 0xc8, 0x6e, 0x24, 0xee, 0xdc, 0x59, 0x84, 0xa1, 0x15, 0xa4, 0x2d, 0xe8, 0xde, 0x7e, 0x35, 0xc9, 0x91, 0x75, 0x39, 0xe8, 0x98, 0x85, 0xca, 0x91, 0x6e, 0x07, 0x2a, 0xfd, 0x5d, 0x46, 0x84, 0x6b, 0x2a, 0x93, 0x59, 0x61, 0xc2, 0xfe, 0x28, 0xe9, 0xeb, 0x3c, 0x8f, 0x89, 0x6b, 0x86, 0xfc, 0x12, 0x0c, 0xbd, 0x3a, 0xf2, 0xaa, 0x13, 0x9c, 0x49, 0x9d, 0x29, 0xcf, 0xc3, 0x69, 0x9d, 0xb7, 0x9c, 0x14, 0x48, 0x4e, 0x9e, 0xc2, 0x57, 0xa5, 0xf6, 0x43, 0x44, 0xb7, 0xad, 0x1e, 0x3d, 0xfb, 0x34, 0xee, 0xe7, 0x65, 0x4c, 0x6b, 0xf1, 0x2f, 0xd3, 0x8f, 0xbb, 0xa8, 0x0f, 0xe1, 0x76, 0x2a, 0xab, 0x57, 0x11, 0x2b, 0x3a, 0x94, 0xe2, 0xbe, 0xe7, 0x90, 0x41, 0xd1, 0xe8, 0x84, 0x40, 0xf8, 0x5f, 0xb7, 0x2d, 0xde, 0x68, 0xd4, 0x9e, 0x84, 0xbc, 0xed, 0x99, 0x8a, 0x2f, 0x63, 0x35, 0x44, 0x6e, 0x4a, 0x83, 0x5e, 0x70, 0xc5, 0xf8, 0x27, 0xfb, 0x3a, 0xd7, 0x82, 0x3d, 0x5f, 0xbe, 0x3b, 0xe5, 0xf6, 0xec, 0x7e, 0x43, 0x4e, 0xe5, 0x24, 0xcc, 0xd9, 0xff, 0x5b, 0x7e, 0x72, 0xa3, 0x2d, 0x09, 0x1a, 0x7e, 0x17, 0xc8, 0xb1, 0xae, 0x41, 0xa1, 0xaf, 0x31, 0x79, 0x3c, 0xce, 0x91, 0xd8, 0x4c, 0x36, 0x22, 0x67, 0x89, 0x69, 0xc8, 0xf5, 0x17, 0xdc, 0x26, 0xe3, 0xcd, 0x61, 0xd2, 0x44, 0x69, 0x12, 0x28, 0x3f, 0x93, 0x53, 0xbb, 0x5a, 0xd0, 0x3c, 0x11, 0x1c, 0x62, 0x33, 0xde, 0x31, 0x4c, 0x61, 0xb8, 0x31, 0xcb, 0xf3, 0x8b, 0x04, 0xfe, 0x58, 0xcf, 0x44, 0xf1, 0xd2, 0xd0, 0xb4, 0x5f, 0x25, 0xa6, 0xb4, 0xe0, 0x25, 0x68, 0x59, 0xcd, 0x5d, 0x83, 0x0f, 0xac, 0x5e, 0xc3, 0xc8, 0xd7, 0x63, 0x98, 0x55, 0x9e, 0x9b, 0x26, 0x01, 0x0f, 0x5e, 0x1d, 0xa5, 0xf2, 0x5d, 0x22, 0x00, 0x93, 0x54, 0x53, 0xff, 0xac, 0x5a, 0xea, 0x51, 0xf7, 0xe8, 0x1e, 0x72, 0xec, 0x8e, 0x5f, 0x04, 0xd2, 0xf8, 0x85, 0xc7, 0xb4, 0x5c, 0x63, 0xf6, 0x44, 0x56, 0xcf, 0xe2, 0x31, 0xb8, 0xcb, 0x24, 0xaa, 0x16, 0x20, 0xa9, 0x02, 0x63, 0x9c, 0xa7, 0x8d, 0xd3, 0x91, 0xaa, 0x4a, 0x3d, 0x03, 0xe1, 0x19, 0x75, 0xc8, 0x90, 0x7f, 0x96, 0x4f, 0xd5, 0x5d, 0xf9, 0xbb, 0xb1, 0x40, 0xe3, 0x8d, 0x6d, 0xb9, 0x32, 0x56, 0xb4, 0xb3, 0x9c, 0x2b, 0x7b, 0xcb, 0xe3, 0x5b, 0x11, 0x82, 0x6b, 0xbf, 0x8c, 0x08, 0xf1, 0xdc, 0xb4, 0x8e, 0xdc, 0x4b, 0xfb, 0x70, 0x46, 0x2a, 0x35, 0xea, 0x8c, 0xd8, 0xcb, 0xa7, 0x9f, 0xab, 0x8b, 0x4c, 0x44, 0xe7, 0x3b, 0xe7, 0xec, 0xfa, 0x11, 0x21, 0x66, 0xf6, 0xdc, 0xab, 0x70, 0xd8, 0xbb, 0x55, 0xd8, 0xb8, 0x42, 0x8c, 0x2d, 0xa7, 0x1a, 0xac, 0xa2, 0xfc, 0x3d, 0x90, 0xf3, 0xcc, 0x5e, 0xd0, 0x15, 0x51, 0x35, 0x8d, 0x60, 0x78, 0x9b, 0x9d, 0x57, 0x1e, 0xfe, 0x10, 0x89, 0x20, 0x27, 0xfa, 0x37, 0x40, 0x4a, 0xaf, 0x59, 0xec, 0x1c, 0x2d, 0x71, 0x11, 0xec, 0xc3, 0x59, 0x24, 0x67, 0xed, 0x1d, 0x9b, 0x8a, 0xba, 0x8e, 0x22, 0x9e, 0x32, 0xd2, 0xa0, 0x0c, 0x19, 0xdb, 0x71, 0x87, 0xfb, 0xcb, 0x12, 0x20, 0x61, 0x96, 0x1c, 0x1f, 0xda, 0xca, 0x30, 0x7e, 0x9c, 0x9c, 0x9d, 0xe9, 0x72, 0xad, 0x51, 0x40, 0x2f, 0xa6, 0x7d, 0xc1, 0xc2, 0xa4, 0x03, 0xb3, 0xc5, 0xe8, 0xb1, 0xe2, 0x46, 0x86, 0x2d, 0x6a, 0xd6, 0xa4, 0x98, 0xdb, 0x6d, 0x76, 0x1f, 0xb5, 0x66, 0xf6, 0x06, 0x59, 0x42, 0xb6, 0x0a, 0xd4, 0xb4, 0x30, 0x9d, 0x18, 0x2b, 0xc5, 0x15, 0x4c, 0xfc, 0x36, 0x86, 0x31, 0x85, 0xa8, 0x7e, 0x23, 0xab, 0xaa, 0x1d, 0x54, 0x1a, 0xb7, 0x63, 0xa4, 0xa1, 0x06, 0x6c, 0x0a, 0x7a, 0x8c, 0x3d, 0x82, 0x1a, 0xe3, 0x2f, 0xd3, 0x1c, 0x88, 0x92, 0x40, 0x10, 0x46, 0xd0, 0xa2, 0x0e, 0x91, 0xa6, 0x47, 0x79, 0xf4, 0xbd, 0xa8, 0x11, 0x20, 0xaf, 0x3f, 0xb3, 0x48, 0x6d, 0x3f, 0xc0, 0xa7, };
18468 static const u8 ed25519_803_test_vectors_expected_sig[] = {
18469 	0x6c, 0xa9, 0xf8, 0x0a, 0x62, 0x50, 0x1f, 0xaf, 0x31, 0x9f, 0xb8, 0x4a, 0xf4, 0x71, 0xf6, 0x76, 0xae, 0x3f, 0xff, 0x85, 0x56, 0x5c, 0x97, 0x98, 0x1f, 0x14, 0x57, 0xcb, 0xb8, 0xc4, 0x9f, 0x97, 0xb2, 0x66, 0x31, 0x6a, 0x99, 0x2d, 0xb0, 0xd4, 0x2b, 0xc5, 0x02, 0xf0, 0x95, 0xa5, 0xf2, 0xd9, 0xa4, 0xe1, 0xcf, 0xac, 0x0c, 0xc9, 0x35, 0xd3, 0x88, 0x2c, 0x8a, 0x3a, 0x0e, 0xa6, 0xe1, 0x0e, };
18470 static const ec_test_case ed25519_803_test_case = {
18471 	.name = "EDDSA25519-SHA512/wei25519 803",
18472 	.ec_str_p = &wei25519_str_params,
18473 	.priv_key = ed25519_803_test_vectors_priv_key,
18474 	.priv_key_len = sizeof(ed25519_803_test_vectors_priv_key),
18475 	.nn_random = NULL,
18476 	.hash_type = SHA512,
18477 	.msg = (const char *)ed25519_803_test_vectors_message,
18478 	.msglen = sizeof(ed25519_803_test_vectors_message),
18479 	.sig_type = EDDSA25519,
18480 	.exp_sig = ed25519_803_test_vectors_expected_sig,
18481 	.exp_siglen = sizeof(ed25519_803_test_vectors_expected_sig),
18482 	.adata = NULL,
18483 	.adata_len = 0
18484 };
18485 
18486 /************************************************/
18487 static const u8 ed25519_804_test_vectors_priv_key[] = {
18488 	0xc8, 0x46, 0x34, 0x42, 0x61, 0xa3, 0x48, 0x65, 0x39, 0x38, 0x34, 0xbf, 0xaa, 0x3a, 0x15, 0xa3, 0xf5, 0x3a, 0xc9, 0xe1, 0x38, 0x33, 0xb0, 0xb2, 0x87, 0x12, 0x27, 0x81, 0xb7, 0x9d, 0xe3, 0x92, };
18489 static const u8 ed25519_804_test_vectors_message[] = {
18490 	0x5a, 0xbd, 0x13, 0xe9, 0x5b, 0x6e, 0xe1, 0xd5, 0x51, 0x47, 0x68, 0x28, 0x22, 0x00, 0xa1, 0x4f, 0x7d, 0x1a, 0x57, 0x1f, 0x34, 0x68, 0xe2, 0x2e, 0xfe, 0xc9, 0x93, 0x46, 0x30, 0x66, 0xa3, 0x7a, 0xec, 0x83, 0x73, 0xe5, 0xfb, 0x49, 0x95, 0x64, 0x19, 0x1f, 0x32, 0x94, 0xa9, 0xb3, 0x0a, 0xfb, 0x5f, 0x1a, 0x34, 0xd4, 0xd8, 0x8a, 0xbc, 0x3e, 0x9b, 0xc3, 0x03, 0xc1, 0xab, 0xa0, 0x5b, 0xd8, 0xfa, 0xca, 0x90, 0xee, 0x35, 0xd9, 0x7a, 0xc3, 0xdd, 0x91, 0x06, 0xf6, 0xfa, 0x3c, 0xa8, 0x1a, 0x38, 0x10, 0xec, 0xce, 0xfa, 0x6a, 0x20, 0x9e, 0xa3, 0xf3, 0xfc, 0x30, 0x49, 0xdc, 0xb1, 0xb0, 0x03, 0xc7, 0x28, 0xf7, 0xf6, 0x37, 0x4c, 0xa9, 0x8c, 0x58, 0x2d, 0xe6, 0xdb, 0x1a, 0xf7, 0x60, 0xf0, 0xa0, 0x21, 0x33, 0xca, 0x4a, 0x01, 0x03, 0x24, 0x30, 0x4d, 0x26, 0xa0, 0xe5, 0x0a, 0xf0, 0xd1, 0x3c, 0x13, 0x4d, 0xa3, 0x4a, 0x03, 0xa4, 0x1e, 0x83, 0xec, 0x8f, 0x10, 0xea, 0x5b, 0x85, 0x9b, 0xec, 0x1f, 0x51, 0xb0, 0x1c, 0xab, 0xb2, 0xd1, 0x6c, 0x1f, 0xc5, 0x2b, 0x05, 0x8f, 0x8e, 0x5d, 0xef, 0xae, 0xde, 0x12, 0x81, 0x71, 0xc2, 0xe0, 0x26, 0x90, 0x23, 0x16, 0xf8, 0x71, 0xb3, 0x5e, 0x32, 0x92, 0x65, 0x6f, 0x0e, 0x5b, 0x39, 0xbb, 0xbc, 0x81, 0xd0, 0xc0, 0x83, 0x0e, 0x6a, 0xc0, 0x1f, 0xac, 0x9b, 0x45, 0x39, 0xf4, 0x7f, 0x9a, 0xcf, 0xbd, 0x58, 0xb7, 0xab, 0x9f, 0x5a, 0x12, 0x56, 0x00, 0xf2, 0x51, 0xa2, 0x71, 0xd7, 0xbf, 0x16, 0x7f, 0x29, 0x54, 0xca, 0x8e, 0x1e, 0x0c, 0x96, 0xe1, 0x6b, 0x06, 0xe8, 0x30, 0x7d, 0xf8, 0x8b, 0xb8, 0xe9, 0xd5, 0x7d, 0x5b, 0xa0, 0x44, 0xf2, 0x7f, 0x3e, 0xaf, 0xf8, 0x1d, 0x9f, 0x15, 0x05, 0x54, 0xaa, 0x71, 0x22, 0xfd, 0x10, 0xd1, 0x1f, 0x35, 0xd2, 0xbe, 0x2b, 0x16, 0x24, 0xe3, 0xe1, 0xa1, 0xd7, 0x7f, 0xea, 0x4c, 0x5c, 0x7f, 0x8b, 0x98, 0x3e, 0x94, 0x5b, 0xa8, 0xc0, 0x8d, 0xc1, 0x54, 0x5b, 0x3e, 0x6b, 0x29, 0x73, 0xad, 0x04, 0x1c, 0x44, 0xd0, 0x61, 0x7e, 0xcc, 0xc8, 0x71, 0xa3, 0x82, 0x1a, 0x9f, 0xfe, 0xa9, 0xdb, 0x7c, 0x2b, 0x0d, 0x05, 0x5d, 0xa5, 0x5d, 0xe0, 0xb3, 0x50, 0x63, 0xe4, 0x22, 0x5a, 0xee, 0x6b, 0x22, 0x5a, 0xb2, 0xa7, 0x90, 0x6a, 0x8e, 0xe3, 0x29, 0xd1, 0xb3, 0x97, 0x2e, 0x0d, 0x1f, 0x70, 0x81, 0x7c, 0x50, 0xcc, 0xfe, 0x94, 0x03, 0xd1, 0x2a, 0xd6, 0x2c, 0x94, 0x92, 0x3b, 0x9a, 0xa2, 0xd7, 0xf8, 0x5a, 0x8d, 0xda, 0x47, 0xbe, 0x4d, 0xce, 0xc0, 0xdc, 0x2b, 0x0b, 0x58, 0xf7, 0xac, 0x19, 0x0a, 0xe0, 0x57, 0x9b, 0x9b, 0x13, 0xbb, 0xb8, 0xb1, 0x6a, 0x31, 0xb0, 0xab, 0x4d, 0x6f, 0x27, 0x91, 0x25, 0x3a, 0xb4, 0x75, 0x1b, 0x53, 0x6b, 0x88, 0xd3, 0xb4, 0x93, 0x7c, 0xc3, 0xa1, 0x10, 0xaa, 0x82, 0xa6, 0xff, 0xed, 0x68, 0x53, 0x52, 0x4b, 0x66, 0xb3, 0xef, 0xfc, 0xd2, 0xf6, 0x3c, 0x6f, 0x96, 0x45, 0xce, 0xa1, 0x3a, 0xa2, 0x3c, 0xd1, 0xc9, 0x9d, 0x9f, 0xfd, 0xa4, 0xcd, 0x3a, 0x9c, 0x5d, 0xf4, 0x5e, 0xc7, 0x47, 0x26, 0xc3, 0x47, 0x11, 0x28, 0xb7, 0x08, 0x9f, 0xbd, 0x82, 0x69, 0x4d, 0x2d, 0x3f, 0x08, 0xdc, 0x93, 0x06, 0xc0, 0xfc, 0x9c, 0xe7, 0xc8, 0x01, 0x13, 0x8e, 0xb1, 0xec, 0xb7, 0x56, 0xe5, 0x71, 0xe9, 0x05, 0x9b, 0x75, 0xed, 0x03, 0xf9, 0x2a, 0x31, 0x50, 0x2f, 0xbe, 0xb5, 0xfe, 0xc5, 0x1d, 0xe9, 0x35, 0x90, 0x10, 0xc4, 0x39, 0x7d, 0x28, 0xb6, 0x5e, 0x35, 0x6e, 0x38, 0x00, 0x1d, 0x0d, 0x51, 0xac, 0x96, 0x00, 0x72, 0x8c, 0x78, 0xb5, 0x76, 0x6e, 0x0f, 0x21, 0x79, 0x38, 0xb4, 0x10, 0xe7, 0x85, 0xb4, 0xc0, 0x1e, 0x86, 0xa3, 0x45, 0x2b, 0xcb, 0x38, 0x84, 0xac, 0xa4, 0x75, 0x40, 0x85, 0x9c, 0xc4, 0x9b, 0x00, 0x0f, 0x0b, 0x61, 0xfd, 0xbe, 0x72, 0x75, 0x25, 0x74, 0xb2, 0x7a, 0x22, 0xd4, 0xc4, 0x04, 0x13, 0xa4, 0x3b, 0x31, 0x09, 0x24, 0xb1, 0xbb, 0x14, 0x0f, 0xc9, 0xfd, 0xaa, 0xe2, 0x66, 0xd6, 0x59, 0x30, 0xe3, 0xf2, 0x34, 0xfe, 0x84, 0x1d, 0x82, 0xb2, 0x61, 0x76, 0xff, 0x86, 0xc5, 0xd2, 0xbd, 0x8d, 0x96, 0x5c, 0x52, 0xd7, 0x28, 0x06, 0x4e, 0xbd, 0xf6, 0x8d, 0xc8, 0xe4, 0x83, 0x49, 0x41, 0x80, 0x1c, 0xca, 0x0b, 0x2f, 0x25, 0x6d, 0x4f, 0x6c, 0x3d, 0xd1, 0x9d, 0x35, 0xd5, 0x36, 0x2b, 0xbf, 0x9b, 0x8a, 0x3a, 0x1c, 0x86, 0x3e, 0x09, 0x26, 0x89, 0xdd, 0x28, 0x52, 0xad, 0xd4, 0x88, 0xbf, 0x42, 0x68, 0x5b, 0x11, 0xe1, 0xe1, 0xad, 0x57, 0x45, 0xd0, 0x75, 0x62, 0x8d, 0x73, 0x1f, 0x91, 0xcf, 0xd7, 0x49, 0x15, 0x9e, 0x2e, 0x1c, 0x83, 0x7f, 0x4e, 0xf8, 0x3d, 0x80, 0xea, 0x1d, 0xd9, 0xbd, 0xed, 0x5f, 0x88, 0x01, 0x8c, 0xe1, 0xd4, 0xb3, 0x37, 0x1f, 0x95, 0x43, 0x53, 0xf3, 0xd8, 0x94, 0x37, 0x00, 0x62, 0xc0, 0x96, 0x5d, 0x67, 0x98, 0x6d, 0xbc, 0x48, 0x17, 0x15, 0xf4, 0x2d, 0xd2, 0xc9, 0x16, 0x07, 0xab, 0x8b, 0x5f, 0x0d, 0x89, 0xf6, 0x6e, 0x68, 0xd7, 0x3d, 0x50, 0xd6, 0x40, 0x52, 0x4d, 0x72, 0xe6, 0x91, 0x34, 0xb8, 0x87, 0x29, 0x8e, 0x5c, 0xd8, 0xc4, 0xb9, 0x05, 0xba, 0x5e, 0xfa, 0x0e, 0x9d, 0x68, 0x52, 0x14, 0xb8, 0x42, 0xf5, 0x0a, 0x2a, 0x39, 0x83, 0xa1, 0xaf, 0x58, 0x5a, 0xf2, 0xca, 0x43, 0xdb, 0xcf, 0x02, 0xc4, 0x08, 0x97, 0xae, 0x2e, 0x1a, 0xb5, 0x1d, 0xbc, 0xe5, 0x70, 0x34, 0x5e, 0x8e, 0x13, 0x5f, 0xb7, 0xb4, 0xeb, 0x0a, 0x1d, 0x6a, 0x0b, 0xb5, 0xa8, 0xa1, 0x80, 0x7e, 0x42, 0x5b, 0x2d, 0x62, 0x83, 0x60, 0x76, 0x80, 0x58, 0xe6, 0x1a, 0xd1, 0xcf, 0xaa, 0x20, 0x99, };
18491 static const u8 ed25519_804_test_vectors_expected_sig[] = {
18492 	0xd5, 0xe4, 0x1b, 0x47, 0xad, 0x0f, 0x34, 0x00, 0x70, 0x97, 0x70, 0xed, 0x43, 0x91, 0x9b, 0xaf, 0xdf, 0x24, 0x38, 0x1b, 0x66, 0x15, 0x44, 0xe5, 0x1d, 0x8b, 0x5c, 0xee, 0x9e, 0x97, 0xb3, 0x67, 0x6a, 0x4c, 0x0f, 0xfa, 0xeb, 0xb2, 0xcb, 0xd2, 0xdb, 0x79, 0x85, 0x32, 0xb6, 0x5c, 0xf6, 0x54, 0xa5, 0xb6, 0xc1, 0x66, 0xef, 0x88, 0x6c, 0xb0, 0xfb, 0xbf, 0x4a, 0x4f, 0x84, 0x4c, 0x44, 0x0b, };
18493 static const ec_test_case ed25519_804_test_case = {
18494 	.name = "EDDSA25519-SHA512/wei25519 804",
18495 	.ec_str_p = &wei25519_str_params,
18496 	.priv_key = ed25519_804_test_vectors_priv_key,
18497 	.priv_key_len = sizeof(ed25519_804_test_vectors_priv_key),
18498 	.nn_random = NULL,
18499 	.hash_type = SHA512,
18500 	.msg = (const char *)ed25519_804_test_vectors_message,
18501 	.msglen = sizeof(ed25519_804_test_vectors_message),
18502 	.sig_type = EDDSA25519,
18503 	.exp_sig = ed25519_804_test_vectors_expected_sig,
18504 	.exp_siglen = sizeof(ed25519_804_test_vectors_expected_sig),
18505 	.adata = NULL,
18506 	.adata_len = 0
18507 };
18508 
18509 /************************************************/
18510 static const u8 ed25519_805_test_vectors_priv_key[] = {
18511 	0xfa, 0xaf, 0x55, 0xd3, 0xc2, 0x97, 0x14, 0xb6, 0x5c, 0x22, 0x81, 0xe2, 0xc2, 0x2d, 0x61, 0x34, 0x97, 0x1a, 0x2e, 0x74, 0x00, 0x8f, 0xb9, 0x40, 0x89, 0xa7, 0x73, 0xee, 0xeb, 0x44, 0x83, 0xa6, };
18512 static const u8 ed25519_805_test_vectors_message[] = {
18513 	0x94, 0xe6, 0x61, 0xc2, 0x52, 0x40, 0xa8, 0x9e, 0x82, 0x3d, 0x7f, 0x5d, 0xc0, 0xe6, 0x92, 0xed, 0xdd, 0x13, 0x70, 0xc3, 0x5a, 0xc4, 0x4d, 0x5a, 0x8c, 0x87, 0x98, 0xd0, 0xc9, 0xaa, 0xfd, 0xf0, 0xbb, 0xfb, 0x54, 0x92, 0x60, 0x56, 0x8d, 0xba, 0x1c, 0x69, 0x08, 0x6b, 0xee, 0x63, 0x6b, 0xe8, 0xed, 0xcc, 0xd3, 0xcb, 0xb2, 0x70, 0x16, 0x24, 0x4d, 0x54, 0xd7, 0xed, 0x2f, 0xeb, 0x7f, 0xa6, 0x46, 0x14, 0xd4, 0x54, 0x49, 0xd7, 0xe0, 0x58, 0xe7, 0x1b, 0x30, 0x6c, 0x22, 0xe6, 0x91, 0x1c, 0x2a, 0xc7, 0x42, 0x07, 0xba, 0xe5, 0xa8, 0x4d, 0x0f, 0xc2, 0x47, 0xbe, 0x49, 0xd3, 0x56, 0xe5, 0xd4, 0x35, 0x3b, 0xa5, 0x58, 0x6b, 0x6e, 0x4b, 0x2b, 0x97, 0xce, 0x9e, 0x23, 0x77, 0xb6, 0xee, 0xd9, 0x2c, 0x84, 0x9e, 0x67, 0x69, 0x44, 0xae, 0x90, 0xdc, 0x42, 0x08, 0xe3, 0x00, 0xe1, 0x9c, 0xc9, 0x1d, 0xc2, 0x6b, 0xbd, 0xd5, 0xa3, 0x0c, 0xfa, 0x92, 0x81, 0xa1, 0x5e, 0xfd, 0x87, 0x30, 0x66, 0xf8, 0x5a, 0xf3, 0xa2, 0x6f, 0x31, 0x06, 0x23, 0xe0, 0x09, 0x80, 0x48, 0x53, 0xcc, 0x68, 0x55, 0x90, 0x3e, 0xa6, 0x4a, 0x90, 0x98, 0x97, 0xe3, 0x15, 0xe7, 0x3d, 0x31, 0x29, 0x48, 0x98, 0x0e, 0xf6, 0x28, 0x9d, 0xb2, 0x1a, 0x5e, 0xbb, 0xec, 0x8c, 0x8e, 0xfe, 0x20, 0xd1, 0xd5, 0x3d, 0xfa, 0xad, 0x6d, 0x9f, 0x42, 0x96, 0x53, 0x2e, 0x88, 0x7c, 0x37, 0x35, 0x01, 0x05, 0xa6, 0x33, 0xab, 0xc7, 0x73, 0x18, 0x87, 0x51, 0xb2, 0x8c, 0x3a, 0x08, 0xf1, 0xb5, 0xee, 0x04, 0x72, 0xde, 0x46, 0x27, 0xe6, 0xb6, 0x1b, 0x68, 0x27, 0x8d, 0xd5, 0x1c, 0xed, 0x6a, 0x61, 0xec, 0xf3, 0x88, 0x86, 0xe4, 0x53, 0x39, 0xdc, 0x6c, 0x60, 0xc3, 0x1e, 0x85, 0x0e, 0xf8, 0x29, 0x6a, 0xe8, 0x0f, 0x9d, 0x31, 0x70, 0x17, 0x76, 0xeb, 0x9a, 0xf2, 0x16, 0x93, 0xf4, 0xc5, 0x2e, 0xc0, 0x62, 0x62, 0x57, 0x38, 0xd4, 0xe3, 0xaf, 0xbf, 0x71, 0xd1, 0xc8, 0x1f, 0xc4, 0x84, 0x63, 0x60, 0x36, 0x3e, 0xa5, 0x41, 0xa9, 0x76, 0x62, 0x3a, 0x5e, 0x4e, 0x6b, 0x6a, 0x67, 0x23, 0x7e, 0x92, 0x37, 0x17, 0x3f, 0x1a, 0x1d, 0x54, 0x33, 0x02, 0x85, 0x88, 0x85, 0x71, 0x4c, 0x2a, 0x59, 0x1d, 0x0a, 0x78, 0x62, 0x82, 0xa0, 0x28, 0x5a, 0x37, 0x11, 0xf7, 0xbc, 0x2b, 0x63, 0xca, 0x79, 0x87, 0xe9, 0xae, 0x7d, 0x02, 0x03, 0x55, 0x55, 0xcf, 0x3b, 0x6a, 0xd6, 0xf7, 0x1c, 0xa9, 0x8a, 0xa9, 0x28, 0x88, 0x3b, 0xf8, 0x1d, 0xd6, 0xf8, 0x64, 0x93, 0xea, 0xab, 0x56, 0x37, 0xb4, 0xdd, 0x56, 0x9d, 0x1e, 0xe8, 0xde, 0x6a, 0x44, 0xbc, 0xed, 0xb6, 0x2b, 0x97, 0x06, 0xb1, 0xdb, 0x89, 0xe3, 0xf0, 0x5d, 0xf1, 0x63, 0x10, 0x01, 0x7d, 0x89, 0xef, 0x3e, 0x4b, 0xc0, 0x99, 0xb7, 0x21, 0xa5, 0xc8, 0xd3, 0x80, 0x43, 0xd6, 0xe4, 0xa2, 0x2c, 0xf0, 0x40, 0x09, 0xc0, 0xfc, 0xee, 0x6b, 0xe6, 0x99, 0x37, 0x82, 0x99, 0x54, 0x94, 0x1b, 0x8b, 0x4a, 0x1e, 0xbf, 0x4d, 0xae, 0xa0, 0xd7, 0x74, 0xd0, 0x78, 0x2b, 0xe1, 0x76, 0xc8, 0xe5, 0x91, 0x90, 0x77, 0x56, 0xc2, 0xcf, 0x75, 0xde, 0xa6, 0xf7, 0x87, 0x7d, 0xd6, 0x87, 0x5b, 0x8f, 0xe1, 0x01, 0x2f, 0x30, 0x50, 0xcf, 0xb1, 0x28, 0x9c, 0xf0, 0x88, 0x66, 0x7e, 0x15, 0x22, 0xee, 0xed, 0xc9, 0x27, 0xac, 0x86, 0xbf, 0xe2, 0xc4, 0x07, 0x43, 0x2b, 0x4a, 0x81, 0x3a, 0x6a, 0x7a, 0x55, 0x04, 0xe9, 0x99, 0x20, 0x6d, 0xb1, 0x82, 0x7e, 0x25, 0xfa, 0xfd, 0x70, 0xce, 0xd3, 0x6d, 0xb3, 0xb2, 0x81, 0xb6, 0xf7, 0xb1, 0x4e, 0xd5, 0xba, 0xa0, 0x57, 0x23, 0x15, 0xa9, 0x39, 0xc5, 0xbf, 0x4a, 0xbb, 0x13, 0x3d, 0x2e, 0x7b, 0x16, 0xd5, 0x2d, 0xe2, 0x08, 0x17, 0xaf, 0x05, 0x5d, 0xf5, 0xf1, 0x41, 0x20, 0x77, 0x34, 0x61, 0x0a, 0x0c, 0x6e, 0xeb, 0xed, 0xaf, 0xff, 0xd9, 0xcc, 0x9f, 0x06, 0x9b, 0x67, 0xf9, 0xa1, 0xc0, 0x45, 0x4b, 0xe4, 0x1d, 0x54, 0xc1, 0x38, 0xbe, 0x54, 0x2e, 0x5e, 0x38, 0xcf, 0xe2, 0xf2, 0x93, 0xf7, 0xd2, 0xd3, 0xdf, 0x66, 0x97, 0x7a, 0xcb, 0x36, 0x6a, 0x42, 0xc1, 0x9b, 0x31, 0x85, 0xac, 0xfa, 0x1b, 0x36, 0x3c, 0x61, 0x31, 0xa4, 0xa8, 0x11, 0x1c, 0x3b, 0x1f, 0x4f, 0xd7, 0xac, 0x40, 0x6d, 0x0e, 0x69, 0x10, 0x3b, 0xa1, 0x5b, 0x8c, 0x4b, 0xf2, 0x9b, 0xc2, 0xed, 0x9c, 0x45, 0xcf, 0xd1, 0xd2, 0x79, 0xd8, 0xd9, 0x31, 0x44, 0x4b, 0x2b, 0x18, 0x49, 0x25, 0x2b, 0x8a, 0x70, 0xee, 0xd8, 0x0f, 0xd2, 0x60, 0xed, 0xf5, 0xa3, 0xc0, 0x1b, 0x96, 0x90, 0x16, 0x0d, 0x23, 0x11, 0x85, 0x1d, 0x21, 0xc9, 0x30, 0x2d, 0x98, 0x59, 0x86, 0xea, 0xee, 0xb3, 0xae, 0x2c, 0x07, 0xc7, 0xc7, 0x67, 0x20, 0x94, 0xf9, 0x1d, 0xb0, 0xbd, 0x50, 0xbe, 0x37, 0x7e, 0x4d, 0x1e, 0xb0, 0x7e, 0xe7, 0x6a, 0xf4, 0x9d, 0xc1, 0x36, 0xa1, 0x45, 0xa1, 0x1b, 0x17, 0x2f, 0x08, 0x11, 0xfe, 0x73, 0xd6, 0x25, 0x9b, 0xe3, 0x70, 0xc4, 0xdf, 0xca, 0xb6, 0xf1, 0x9e, 0x4a, 0x64, 0xb1, 0x51, 0xd0, 0xa6, 0xdb, 0x80, 0x50, 0xc3, 0xde, 0x2c, 0xc3, 0x25, 0xf5, 0xc5, 0xf6, 0x59, 0x4c, 0xf6, 0x24, 0x8e, 0xb0, 0x81, 0x20, 0x95, 0x39, 0xe0, 0x8c, 0xa3, 0x42, 0x29, 0x84, 0xe7, 0xbf, 0x80, 0x3d, 0xe3, 0xa4, 0x19, 0xb1, 0x44, 0x23, 0xf1, 0xe5, 0xa5, 0x42, 0x24, 0x04, 0x2c, 0xe4, 0xf0, 0x54, 0x88, 0xa6, 0x04, 0x4f, 0x40, 0x42, 0xbd, 0x64, 0x9b, 0x1a, 0x08, 0xce, 0x10, 0xc2, 0x00, 0x6e, 0xa7, 0x6e, 0xfa, 0xb4, 0x64, 0x1f, 0xef, 0x28, 0x97, 0xef, 0xd7, 0x24, 0xe6, 0x05, 0x4a, 0x3b, 0xd1, 0xa6, 0x9e, 0x39, 0xa4, 0xa5, 0xe2, 0xd5, 0x02, };
18514 static const u8 ed25519_805_test_vectors_expected_sig[] = {
18515 	0x5b, 0x00, 0x83, 0xf7, 0xa8, 0x20, 0x61, 0xc6, 0x5c, 0xf6, 0xc7, 0x56, 0x40, 0xc8, 0x1c, 0x28, 0xe8, 0xd6, 0xd2, 0xe8, 0x7f, 0x6d, 0x57, 0x95, 0xc9, 0xaa, 0x3b, 0xb3, 0xe3, 0x90, 0xe9, 0x19, 0x90, 0xe8, 0x2d, 0xb6, 0xf0, 0x7e, 0x61, 0x4f, 0x50, 0x7a, 0x56, 0x0a, 0xba, 0xa1, 0xec, 0xa6, 0x56, 0xc6, 0x78, 0xdd, 0xca, 0xe8, 0x19, 0x82, 0x51, 0xe6, 0xaf, 0x0b, 0x76, 0xb8, 0x8d, 0x0d, };
18516 static const ec_test_case ed25519_805_test_case = {
18517 	.name = "EDDSA25519-SHA512/wei25519 805",
18518 	.ec_str_p = &wei25519_str_params,
18519 	.priv_key = ed25519_805_test_vectors_priv_key,
18520 	.priv_key_len = sizeof(ed25519_805_test_vectors_priv_key),
18521 	.nn_random = NULL,
18522 	.hash_type = SHA512,
18523 	.msg = (const char *)ed25519_805_test_vectors_message,
18524 	.msglen = sizeof(ed25519_805_test_vectors_message),
18525 	.sig_type = EDDSA25519,
18526 	.exp_sig = ed25519_805_test_vectors_expected_sig,
18527 	.exp_siglen = sizeof(ed25519_805_test_vectors_expected_sig),
18528 	.adata = NULL,
18529 	.adata_len = 0
18530 };
18531 
18532 /************************************************/
18533 static const u8 ed25519_806_test_vectors_priv_key[] = {
18534 	0x6d, 0x78, 0x55, 0xe3, 0x0f, 0x7a, 0x13, 0xe2, 0x37, 0xb0, 0x67, 0x14, 0x43, 0x46, 0x43, 0x4b, 0xb4, 0xb0, 0x51, 0x78, 0xc7, 0xd8, 0x8d, 0x49, 0x2e, 0x79, 0x02, 0x7c, 0x4b, 0x0f, 0x3c, 0xdd, };
18535 static const u8 ed25519_806_test_vectors_message[] = {
18536 	0xf8, 0xb9, 0x36, 0xe7, 0x93, 0xb0, 0x17, 0x58, 0x0c, 0xc0, 0xe9, 0xcb, 0xda, 0x2a, 0xcb, 0x64, 0x74, 0x50, 0x7f, 0x4b, 0xca, 0x3a, 0xfc, 0x87, 0x83, 0xec, 0x46, 0xee, 0xb8, 0x2c, 0xcd, 0x4d, 0xd2, 0x52, 0x56, 0x76, 0xaa, 0x6a, 0xb5, 0xc0, 0xdc, 0xf7, 0xd7, 0x5f, 0x7e, 0x03, 0x11, 0xe6, 0xfe, 0x6b, 0xf2, 0x72, 0x63, 0xf8, 0x57, 0x8f, 0xeb, 0x55, 0xc5, 0x61, 0x2d, 0x1f, 0x28, 0xe8, 0x88, 0xb7, 0x66, 0x56, 0xc4, 0x1c, 0xcd, 0x8a, 0x70, 0xb9, 0xbc, 0x60, 0x4b, 0x42, 0x72, 0x4f, 0xa2, 0xbc, 0x41, 0x1d, 0x44, 0xc3, 0x1a, 0xb6, 0x8c, 0xe8, 0x4f, 0x83, 0x93, 0x39, 0x9e, 0x34, 0xd5, 0x40, 0x85, 0x79, 0xc2, 0xba, 0x29, 0x21, 0xf2, 0xf8, 0xd1, 0x14, 0x87, 0xaa, 0x7e, 0x52, 0x55, 0x7f, 0xee, 0xd9, 0x67, 0x57, 0x19, 0x9d, 0x3a, 0xae, 0x63, 0x77, 0x77, 0x01, 0x54, 0xb1, 0x7f, 0x35, 0x77, 0xc7, 0xac, 0x3d, 0x8c, 0x76, 0xcf, 0x74, 0x61, 0xb5, 0xe8, 0xd4, 0x2a, 0x71, 0x85, 0x07, 0x8e, 0xd4, 0xf8, 0x62, 0xfc, 0x57, 0x50, 0x2f, 0x61, 0x50, 0x75, 0x30, 0x7b, 0x6e, 0x10, 0x3c, 0x77, 0xc1, 0xf6, 0xc8, 0xbd, 0xa7, 0xaa, 0x17, 0xe4, 0x35, 0xe2, 0x1b, 0x94, 0x9a, 0xf4, 0x4d, 0xff, 0x5a, 0xa3, 0x0a, 0x62, 0xda, 0x71, 0x2f, 0xa9, 0x96, 0x6a, 0x61, 0x2f, 0xfc, 0xa1, 0x48, 0x71, 0xfd, 0x6f, 0x86, 0x0b, 0x4a, 0x96, 0x14, 0x01, 0x2c, 0x53, 0x69, 0x91, 0x0e, 0x0f, 0xfd, 0x6f, 0x0f, 0xbd, 0x88, 0x9a, 0x9c, 0x25, 0x7c, 0x32, 0xbd, 0xcf, 0x90, 0xbb, 0x80, 0x62, 0x7c, 0xb2, 0x72, 0xec, 0xd4, 0x59, 0x98, 0x97, 0x55, 0x59, 0x55, 0xe1, 0xfe, 0x08, 0xcd, 0x7e, 0xbb, 0x21, 0xc0, 0x71, 0xbe, 0x0f, 0x48, 0x98, 0x96, 0x96, 0xcb, 0x39, 0xaa, 0x82, 0xad, 0x11, 0xba, 0xa5, 0xd4, 0xac, 0x61, 0x3a, 0xbf, 0x1b, 0x6d, 0xb8, 0xa2, 0x0e, 0x68, 0x68, 0x36, 0x22, 0x28, 0x33, 0xf8, 0xb6, 0xdd, 0x2f, 0x00, 0x06, 0x22, 0x7b, 0xe4, 0x8e, 0x85, 0x80, 0xdc, 0xc8, 0xde, 0x62, 0x0d, 0xac, 0xb2, 0xf6, 0x5a, 0x69, 0x36, 0x75, 0xd6, 0xcb, 0x45, 0xba, 0x5d, 0xd1, 0xaa, 0x70, 0xdb, 0x76, 0xbc, 0x64, 0x1d, 0x4f, 0xb5, 0x67, 0xec, 0xbc, 0x71, 0x11, 0x44, 0x2e, 0x29, 0x41, 0x58, 0xbe, 0x57, 0x5c, 0x71, 0xdd, 0xc2, 0x6e, 0x94, 0xf4, 0x12, 0x66, 0xa2, 0xfd, 0x3a, 0x0d, 0x43, 0x57, 0x81, 0xfc, 0x09, 0x46, 0x48, 0xfa, 0xdf, 0x5f, 0x17, 0xcd, 0x41, 0xab, 0x89, 0x58, 0x21, 0x89, 0x4e, 0xc0, 0x80, 0x6b, 0x26, 0x2c, 0x39, 0x35, 0x34, 0xfe, 0x66, 0xf2, 0x1e, 0x37, 0x83, 0xc1, 0x4a, 0x96, 0xc8, 0x8f, 0x2e, 0x06, 0x53, 0xfe, 0x32, 0xe7, 0x5d, 0xce, 0x8a, 0x46, 0x3b, 0xb9, 0x7e, 0xed, 0x6c, 0x16, 0xf3, 0xf3, 0x22, 0x81, 0x69, 0xab, 0xb5, 0xb4, 0xbf, 0x9e, 0xa3, 0x27, 0x8c, 0x1f, 0xf0, 0xf8, 0x6e, 0xae, 0x71, 0x38, 0x9b, 0x64, 0x33, 0xac, 0xd0, 0x97, 0xee, 0xfa, 0x9e, 0x6e, 0x05, 0xf4, 0x95, 0x5c, 0xd5, 0x17, 0x83, 0x0b, 0x8d, 0x98, 0x70, 0xcc, 0xb5, 0x22, 0x74, 0x15, 0xe5, 0x0f, 0x23, 0xf6, 0x47, 0x32, 0x17, 0xa7, 0x45, 0x09, 0x64, 0x70, 0xdc, 0xa9, 0x3d, 0x2b, 0x34, 0x67, 0x3c, 0x5d, 0x6a, 0x57, 0xed, 0x02, 0xc8, 0xe0, 0xca, 0xe1, 0x19, 0xb3, 0xf3, 0x29, 0xd8, 0xab, 0x64, 0x98, 0x49, 0x4c, 0x29, 0x21, 0xbb, 0x6f, 0x49, 0x6d, 0xd0, 0x83, 0x81, 0xe7, 0xd3, 0x9f, 0x2d, 0xb5, 0x76, 0x3b, 0x14, 0xa2, 0x82, 0x1b, 0xef, 0xcc, 0xa0, 0xa9, 0xfd, 0x31, 0x25, 0x45, 0xde, 0x68, 0xab, 0xf2, 0x06, 0xd1, 0x2d, 0x8e, 0x02, 0xe7, 0x3b, 0xc7, 0xe3, 0xcb, 0x79, 0x6e, 0x7e, 0xe2, 0x6c, 0xc6, 0x3d, 0x74, 0x1e, 0xfa, 0xfc, 0x53, 0x45, 0xf8, 0x13, 0x29, 0x51, 0xbc, 0xfb, 0xfd, 0xdf, 0x63, 0x1f, 0xb7, 0xcb, 0x43, 0xef, 0x35, 0xb9, 0x45, 0x3c, 0x93, 0x90, 0xeb, 0x23, 0xb1, 0xf9, 0xd8, 0xb1, 0xc7, 0x2d, 0xeb, 0xd2, 0x4f, 0x09, 0xa0, 0x1a, 0x9d, 0xc6, 0x0e, 0xe6, 0x81, 0x53, 0x06, 0x18, 0x83, 0x57, 0x78, 0x1a, 0xf6, 0xe1, 0x82, 0x0a, 0xa3, 0x5e, 0x4e, 0xc1, 0x21, 0xb7, 0xca, 0x34, 0xd7, 0xde, 0x76, 0x11, 0xb2, 0x46, 0xa3, 0xe7, 0x03, 0xed, 0x48, 0xc7, 0xeb, 0x03, 0xa6, 0xfe, 0x8f, 0x85, 0x2e, 0xe7, 0xd3, 0x25, 0x45, 0xc9, 0xd8, 0x52, 0xd6, 0x4d, 0x5d, 0x75, 0x93, 0x0e, 0x5f, 0x1e, 0xbe, 0x21, 0xa3, 0x07, 0xef, 0xa7, 0x62, 0x2e, 0xda, 0xce, 0xd6, 0xd8, 0x79, 0x02, 0x6f, 0x0f, 0x85, 0xa9, 0x11, 0x20, 0x12, 0x80, 0x37, 0x05, 0x58, 0x22, 0x69, 0xd3, 0x9f, 0x14, 0x32, 0x34, 0xdf, 0x89, 0x09, 0xab, 0x3d, 0x94, 0x8e, 0x76, 0xd3, 0xda, 0xaa, 0x24, 0x22, 0x6d, 0x9a, 0xc6, 0x01, 0xee, 0xf2, 0x77, 0xfd, 0x2c, 0xfc, 0x4a, 0x19, 0xae, 0xdf, 0x43, 0x87, 0xa2, 0x16, 0x17, 0xb0, 0x3e, 0xc3, 0xd3, 0x84, 0x5a, 0x38, 0x55, 0x4f, 0x5e, 0x97, 0x03, 0x6e, 0x56, 0xec, 0x1c, 0xe6, 0x60, 0xdf, 0x9c, 0x06, 0x2c, 0x2c, 0x99, 0x3b, 0x77, 0xc5, 0xba, 0x6a, 0x6d, 0x05, 0x23, 0x1d, 0xae, 0x37, 0x64, 0x18, 0x3c, 0x3e, 0x96, 0xaa, 0x53, 0x9c, 0xfb, 0x34, 0x15, 0xfb, 0x16, 0x3c, 0x64, 0x5b, 0x23, 0x03, 0xb2, 0xd6, 0xd4, 0xbd, 0xa8, 0xca, 0x6c, 0x72, 0xbc, 0x03, 0xd5, 0x30, 0x5f, 0x9b, 0x11, 0x8e, 0x92, 0x5e, 0x27, 0xd2, 0x9a, 0xb7, 0xdc, 0xb1, 0x96, 0x47, 0x0e, 0x63, 0x39, 0x63, 0x1b, 0x23, 0x80, 0x74, 0x4c, 0x04, 0xd1, 0xda, 0x34, 0x8f, 0xc0, 0xfe, 0x27, 0x42, 0x77, 0xf8, 0x2f, 0x95, 0xbd, 0xfb, 0x0b, 0x64, 0xb4, 0xcf, 0x3b, 0x51, 0xe5, 0x71, 0xc0, 0xdd, 0xb3, 0xb5, 0x3c, 0xa6, };
18537 static const u8 ed25519_806_test_vectors_expected_sig[] = {
18538 	0x0f, 0xe2, 0x8e, 0xad, 0xd9, 0xe5, 0xdd, 0x57, 0x4b, 0x3f, 0xaa, 0xea, 0x81, 0x0d, 0x44, 0x52, 0x2c, 0x8b, 0x1b, 0xfb, 0xb3, 0xe3, 0xd5, 0x7e, 0xd8, 0x89, 0xfa, 0xed, 0xec, 0x91, 0xd0, 0xe1, 0x4a, 0x86, 0xb9, 0x14, 0xc4, 0xc7, 0x66, 0xf1, 0xbf, 0x9b, 0x8f, 0x18, 0xb0, 0xdb, 0x89, 0x0d, 0xb6, 0xc1, 0xb1, 0x25, 0xd5, 0x78, 0x04, 0x33, 0x36, 0x19, 0xb1, 0xe0, 0x72, 0x0a, 0x33, 0x00, };
18539 static const ec_test_case ed25519_806_test_case = {
18540 	.name = "EDDSA25519-SHA512/wei25519 806",
18541 	.ec_str_p = &wei25519_str_params,
18542 	.priv_key = ed25519_806_test_vectors_priv_key,
18543 	.priv_key_len = sizeof(ed25519_806_test_vectors_priv_key),
18544 	.nn_random = NULL,
18545 	.hash_type = SHA512,
18546 	.msg = (const char *)ed25519_806_test_vectors_message,
18547 	.msglen = sizeof(ed25519_806_test_vectors_message),
18548 	.sig_type = EDDSA25519,
18549 	.exp_sig = ed25519_806_test_vectors_expected_sig,
18550 	.exp_siglen = sizeof(ed25519_806_test_vectors_expected_sig),
18551 	.adata = NULL,
18552 	.adata_len = 0
18553 };
18554 
18555 /************************************************/
18556 static const u8 ed25519_807_test_vectors_priv_key[] = {
18557 	0x7e, 0xe4, 0xe7, 0xe9, 0x8c, 0x6a, 0x40, 0xf0, 0xe7, 0x44, 0x13, 0xf2, 0x40, 0x39, 0xbd, 0x22, 0x0d, 0xf1, 0xf8, 0xc7, 0xf0, 0x15, 0x52, 0x8d, 0xbf, 0x52, 0x84, 0xab, 0x9f, 0x7c, 0x82, 0xe2, };
18558 static const u8 ed25519_807_test_vectors_message[] = {
18559 	0x8f, 0xb0, 0x13, 0x73, 0xc4, 0x2e, 0x69, 0x61, 0x4a, 0xea, 0x99, 0xaf, 0x49, 0x32, 0x37, 0x85, 0xf3, 0x38, 0x61, 0xb9, 0x4e, 0x90, 0xf5, 0x65, 0x38, 0x9e, 0xbf, 0x70, 0xe2, 0x19, 0xf5, 0xde, 0xc7, 0x32, 0xe0, 0x01, 0x0b, 0x58, 0xf7, 0x29, 0x05, 0x30, 0xdf, 0x22, 0x2a, 0xc9, 0xc7, 0x3e, 0x1c, 0x2e, 0x92, 0xa5, 0xe6, 0x06, 0x1d, 0xe5, 0x59, 0x0c, 0xaf, 0x9c, 0x0d, 0x50, 0x21, 0xd7, 0x29, 0xea, 0xa1, 0x15, 0x41, 0xfa, 0x1d, 0x08, 0x21, 0x60, 0xbe, 0xaf, 0x61, 0x1e, 0x7c, 0xfd, 0xc0, 0xeb, 0xb3, 0x15, 0xd3, 0x88, 0xe5, 0x38, 0xb4, 0xb5, 0x02, 0x8f, 0x9b, 0x30, 0xd3, 0xd9, 0x73, 0x34, 0x7f, 0xfd, 0x44, 0x26, 0x3e, 0xef, 0x08, 0x3b, 0x81, 0xb2, 0x1b, 0x82, 0xec, 0xa5, 0x75, 0x6a, 0x49, 0x4b, 0x1d, 0x81, 0xc0, 0x7d, 0xe8, 0x49, 0x50, 0x6d, 0x3e, 0x3b, 0x66, 0x87, 0x97, 0xa5, 0xc5, 0x44, 0x25, 0x4d, 0x4e, 0xbe, 0x5c, 0xf8, 0x17, 0x1b, 0x39, 0xf8, 0x72, 0x4c, 0xbc, 0x41, 0x89, 0x29, 0x1b, 0x3c, 0x53, 0xc2, 0x1e, 0xce, 0x49, 0xa1, 0xd7, 0x39, 0x56, 0x3c, 0x65, 0xb4, 0x90, 0x25, 0x93, 0x56, 0x47, 0xa7, 0x30, 0x3a, 0xe0, 0xef, 0x7f, 0x6d, 0x24, 0x55, 0x46, 0x45, 0xa4, 0x28, 0xdb, 0xbb, 0x42, 0x44, 0x9f, 0x53, 0x99, 0xe3, 0x6d, 0xc7, 0x87, 0xb7, 0xd6, 0x95, 0x8a, 0x02, 0xee, 0xbb, 0xb8, 0x36, 0xe5, 0xe5, 0x3e, 0x26, 0xe4, 0x87, 0x23, 0x9d, 0xe9, 0x4d, 0x1d, 0x25, 0x0e, 0x79, 0x43, 0xac, 0x0e, 0x22, 0xd9, 0x27, 0x50, 0xa0, 0xcf, 0x34, 0x73, 0xbe, 0x1a, 0x62, 0x25, 0xcb, 0xe7, 0x95, 0x45, 0x04, 0x82, 0x69, 0xf6, 0x23, 0x7e, 0xc9, 0xf9, 0xec, 0x30, 0x7e, 0x8a, 0x34, 0xb7, 0xbb, 0x34, 0xcd, 0x49, 0x06, 0xe4, 0x31, 0x62, 0xa3, 0x70, 0x8f, 0x32, 0x9c, 0x5b, 0x98, 0x9d, 0x7a, 0x7f, 0xcd, 0xe1, 0x09, 0x9a, 0x54, 0x25, 0x46, 0xfe, 0x9c, 0x33, 0x18, 0x2b, 0xa5, 0x1b, 0x84, 0x3e, 0x96, 0xd1, 0x1c, 0x79, 0xe9, 0x1a, 0xd2, 0x1f, 0x71, 0x70, 0xe2, 0x57, 0xfd, 0xc2, 0x81, 0x8e, 0x12, 0xf9, 0x16, 0x8a, 0x97, 0x4c, 0x96, 0x8a, 0x4d, 0x27, 0x3f, 0xa3, 0xff, 0xa9, 0xf3, 0x5f, 0xf9, 0x05, 0x98, 0x0e, 0xaa, 0xd3, 0x72, 0x1c, 0xae, 0x80, 0x2b, 0xee, 0x36, 0x21, 0x0b, 0x40, 0xb9, 0x93, 0x19, 0xbb, 0x66, 0x99, 0x82, 0xe9, 0x43, 0xb2, 0x70, 0xa4, 0xc4, 0xd0, 0xa9, 0x2e, 0xcb, 0x5b, 0xba, 0x2d, 0xd8, 0xb4, 0x0a, 0xc3, 0xd2, 0xf0, 0x32, 0x5c, 0x46, 0x9d, 0x5e, 0x9d, 0x48, 0x3f, 0x52, 0x41, 0x97, 0x40, 0x10, 0xc5, 0xc0, 0xda, 0x33, 0x5f, 0x16, 0xe9, 0x62, 0x19, 0x6c, 0x2e, 0xf1, 0x4e, 0xb2, 0x4a, 0xaf, 0xbb, 0x31, 0x1b, 0xfd, 0x5f, 0xa8, 0xdc, 0x8d, 0x2d, 0x61, 0xe6, 0x87, 0x8a, 0xd2, 0xcc, 0xe0, 0xdc, 0x99, 0x39, 0xe4, 0x45, 0x22, 0x72, 0x3d, 0x42, 0x7e, 0xf3, 0x2f, 0xb4, 0x3b, 0x96, 0x7f, 0x5e, 0x44, 0xfc, 0x66, 0x57, 0x92, 0x79, 0x6f, 0x8c, 0xf9, 0x34, 0xf0, 0x1c, 0x32, 0x5d, 0x63, 0xd5, 0x83, 0xdc, 0x3c, 0xa9, 0xd4, 0xfc, 0xc7, 0x57, 0xd9, 0x17, 0x85, 0x80, 0xda, 0xef, 0x53, 0xaa, 0x3a, 0xb2, 0x1d, 0x2c, 0xe4, 0x35, 0x95, 0x5d, 0x1c, 0x6d, 0x47, 0x63, 0x8c, 0x5e, 0xdb, 0x62, 0xff, 0x55, 0x61, 0x69, 0x3d, 0x1c, 0xbd, 0x10, 0xec, 0x9e, 0x39, 0x9a, 0x71, 0xbf, 0x9d, 0xb1, 0xc9, 0x96, 0x9f, 0xd5, 0x9e, 0x4e, 0xeb, 0x31, 0xaa, 0x59, 0xbf, 0x39, 0xe9, 0xf1, 0x84, 0x17, 0x8d, 0xef, 0x72, 0x46, 0xed, 0x4b, 0x8f, 0x4b, 0xe5, 0xba, 0xda, 0xa5, 0xdb, 0x4a, 0xf8, 0x67, 0xf4, 0xf2, 0xec, 0x39, 0xa1, 0x37, 0x04, 0x20, 0x2c, 0x87, 0x84, 0xfa, 0x16, 0x8c, 0xe9, 0x6f, 0x9c, 0xfa, 0xc7, 0x10, 0x17, 0x23, 0x62, 0x75, 0xfd, 0x85, 0x7c, 0xc3, 0xc5, 0x1a, 0x9c, 0x7a, 0xc2, 0x56, 0x21, 0x5e, 0x14, 0xb8, 0x43, 0xf7, 0x21, 0x4d, 0xc9, 0xf8, 0x24, 0xb9, 0x1d, 0x1a, 0x51, 0x70, 0xd0, 0xef, 0x1d, 0x37, 0x69, 0x6f, 0x93, 0xee, 0x96, 0x6a, 0x2b, 0x7d, 0xec, 0xe2, 0x2b, 0x4f, 0x3a, 0xfd, 0x39, 0xc1, 0x6d, 0x60, 0x1e, 0x5f, 0xf8, 0x40, 0x8d, 0x45, 0xc1, 0xa6, 0xce, 0x71, 0xf0, 0x60, 0x97, 0x6c, 0x5b, 0xe4, 0xc0, 0x42, 0xb1, 0xb7, 0x38, 0xdf, 0x95, 0x80, 0xba, 0x5a, 0xe7, 0x78, 0x80, 0xa7, 0x0c, 0x0b, 0x94, 0xf0, 0xe1, 0xc9, 0xf9, 0xaa, 0x34, 0xc0, 0x90, 0xd6, 0x12, 0xd5, 0x7a, 0x9b, 0x93, 0x1f, 0x50, 0xa1, 0x25, 0xfa, 0x35, 0xce, 0x40, 0xa2, 0xcb, 0x7f, 0xaa, 0xd5, 0x30, 0xf8, 0x09, 0x08, 0xc7, 0x3c, 0xb7, 0x82, 0x58, 0xaf, 0xd2, 0x63, 0x13, 0x90, 0x04, 0x1d, 0x92, 0x61, 0x7e, 0x9b, 0xf6, 0x4c, 0xe9, 0x6e, 0x8e, 0x4a, 0xc7, 0xf3, 0x12, 0x6d, 0x8a, 0xf8, 0xa0, 0x4c, 0x75, 0xff, 0xd4, 0x38, 0x76, 0x9d, 0xe0, 0x6f, 0x74, 0xc2, 0xfc, 0x20, 0xcc, 0x81, 0x92, 0xda, 0x35, 0x3e, 0x79, 0x06, 0x12, 0x83, 0xbb, 0xa0, 0x8a, 0x8d, 0x24, 0xe6, 0xe4, 0xe2, 0xe8, 0x3b, 0xa5, 0xb0, 0x8e, 0x42, 0x75, 0x22, 0x60, 0x62, 0x14, 0x8d, 0x8a, 0x02, 0xaf, 0xad, 0x65, 0xb6, 0xf6, 0x27, 0xcf, 0xbd, 0x29, 0xb7, 0x1c, 0xa1, 0x8a, 0xee, 0x5b, 0x1f, 0x97, 0x16, 0x9b, 0xf0, 0x22, 0x8b, 0x37, 0x6f, 0x41, 0x06, 0xb5, 0x0f, 0xd9, 0x1a, 0x38, 0xa6, 0x62, 0x11, 0xd6, 0x9e, 0xbb, 0x4a, 0x7a, 0xf0, 0xe1, 0xc2, 0x21, 0x7f, 0x1b, 0xa0, 0x14, 0xd1, 0xe0, 0xcd, 0x17, 0x50, 0x8d, 0x58, 0x15, 0x5d, 0x16, 0x3d, 0xd9, 0xde, 0x2f, 0xe1, 0xc6, 0x4c, 0x7f, 0x88, 0xd5, 0xb5, 0x53, 0xe9, 0xba, 0x1e, 0x1f, 0x25, 0x43, 0x0d, 0x7e, 0x12, 0x5b, 0x07, 0xa8, 0xc2, 0xed, };
18560 static const u8 ed25519_807_test_vectors_expected_sig[] = {
18561 	0xac, 0x3b, 0xfe, 0x3a, 0xdf, 0x94, 0x1c, 0x93, 0x4d, 0x33, 0x49, 0xc4, 0x92, 0xde, 0x70, 0xd5, 0x16, 0x6b, 0xe3, 0x89, 0xf9, 0x55, 0xbe, 0x87, 0xc2, 0x88, 0x3f, 0x41, 0xf2, 0xda, 0x14, 0x6c, 0x91, 0x06, 0x51, 0xa3, 0xb4, 0x52, 0xc2, 0xd7, 0x39, 0xdc, 0x9b, 0x53, 0x1c, 0x57, 0x45, 0x56, 0x5e, 0x69, 0xd9, 0x83, 0x59, 0xf1, 0xd7, 0xd9, 0x3e, 0xbd, 0x36, 0xd7, 0x0a, 0xbb, 0xf0, 0x0d, };
18562 static const ec_test_case ed25519_807_test_case = {
18563 	.name = "EDDSA25519-SHA512/wei25519 807",
18564 	.ec_str_p = &wei25519_str_params,
18565 	.priv_key = ed25519_807_test_vectors_priv_key,
18566 	.priv_key_len = sizeof(ed25519_807_test_vectors_priv_key),
18567 	.nn_random = NULL,
18568 	.hash_type = SHA512,
18569 	.msg = (const char *)ed25519_807_test_vectors_message,
18570 	.msglen = sizeof(ed25519_807_test_vectors_message),
18571 	.sig_type = EDDSA25519,
18572 	.exp_sig = ed25519_807_test_vectors_expected_sig,
18573 	.exp_siglen = sizeof(ed25519_807_test_vectors_expected_sig),
18574 	.adata = NULL,
18575 	.adata_len = 0
18576 };
18577 
18578 /************************************************/
18579 static const u8 ed25519_808_test_vectors_priv_key[] = {
18580 	0x1f, 0x28, 0xd9, 0x09, 0x1d, 0x19, 0x6c, 0xba, 0x3d, 0x45, 0x52, 0xe5, 0xa3, 0x37, 0xa4, 0xd8, 0xaf, 0x3f, 0x29, 0x5e, 0x62, 0x9e, 0x4b, 0xa6, 0xfe, 0x99, 0x70, 0x31, 0x20, 0xae, 0x41, 0xe0, };
18581 static const u8 ed25519_808_test_vectors_message[] = {
18582 	0xa6, 0x94, 0x68, 0xbc, 0x33, 0xeb, 0xfe, 0xf0, 0x61, 0x5c, 0x64, 0x3c, 0x49, 0xda, 0xc6, 0xe0, 0x4f, 0xdb, 0x6c, 0xfb, 0x8e, 0xc4, 0x58, 0x57, 0xbb, 0xb7, 0xa2, 0x7e, 0x52, 0x8f, 0xd6, 0x31, 0xfc, 0x34, 0x11, 0xba, 0xee, 0x65, 0xcc, 0x1f, 0x94, 0xfc, 0xc9, 0x4a, 0xed, 0x4a, 0x43, 0x32, 0xfa, 0x68, 0x61, 0xe0, 0x65, 0xe0, 0x61, 0x63, 0x54, 0x17, 0x09, 0xd7, 0x97, 0x28, 0xe0, 0x1b, 0xe2, 0xb1, 0x40, 0xa0, 0x22, 0xc8, 0x3e, 0x7b, 0x23, 0xb9, 0xed, 0x2a, 0xd2, 0x83, 0x21, 0x69, 0xdf, 0xc9, 0x56, 0x90, 0x91, 0x3c, 0xf3, 0x72, 0x01, 0x30, 0x65, 0x70, 0x80, 0xc9, 0xd5, 0xa7, 0x82, 0x7e, 0x56, 0x60, 0x75, 0x74, 0x52, 0xc5, 0xfc, 0x3d, 0xcd, 0x80, 0xcc, 0x6b, 0xe0, 0x98, 0xc6, 0x29, 0x22, 0x6d, 0x54, 0x66, 0xe0, 0x2b, 0x97, 0x12, 0x6b, 0xe7, 0x4a, 0x14, 0x52, 0xee, 0x16, 0x81, 0x50, 0x95, 0xde, 0xb4, 0x2b, 0xf0, 0x65, 0x66, 0x71, 0x50, 0x28, 0xc1, 0x18, 0x25, 0x82, 0x0a, 0x8a, 0x23, 0xc6, 0x0d, 0xa2, 0xb6, 0x8d, 0xd9, 0xa5, 0x5d, 0xad, 0x2a, 0x29, 0xa4, 0x96, 0x44, 0x43, 0x81, 0x7c, 0x07, 0xd7, 0x76, 0xb2, 0x44, 0xb1, 0x51, 0x86, 0x81, 0x9a, 0x3b, 0xbe, 0xd4, 0x14, 0xab, 0xf4, 0x57, 0x9a, 0x3e, 0xce, 0x3a, 0x3d, 0xc7, 0xb1, 0x05, 0xd0, 0xa9, 0xdb, 0xa3, 0x7b, 0x9e, 0xaa, 0x78, 0xbe, 0x8e, 0x46, 0xe1, 0x69, 0x8b, 0x59, 0xb0, 0x94, 0x0b, 0x01, 0xf3, 0x8b, 0x28, 0x3c, 0x33, 0xa9, 0xa4, 0xb1, 0xd4, 0xf8, 0x14, 0x4b, 0x16, 0xee, 0xb5, 0xfc, 0x0a, 0x7a, 0xf0, 0xd0, 0x81, 0x69, 0x66, 0x45, 0xa1, 0xea, 0xb3, 0xa7, 0x87, 0xcb, 0xcf, 0x88, 0xfa, 0xd9, 0x3d, 0xd6, 0xcd, 0x46, 0xd2, 0x95, 0xa8, 0x79, 0xa1, 0x77, 0x50, 0x33, 0xa9, 0x85, 0x63, 0x82, 0x2e, 0xf1, 0xf6, 0xb6, 0x9a, 0x58, 0x1e, 0x49, 0x73, 0x6c, 0x8d, 0x70, 0x1b, 0x44, 0x53, 0x96, 0x93, 0x40, 0x52, 0x1e, 0x4a, 0xd4, 0xbf, 0x94, 0xb9, 0x11, 0xb0, 0xe2, 0xd8, 0x6f, 0x34, 0xee, 0xce, 0x4a, 0x63, 0x85, 0xff, 0x1f, 0xe6, 0x32, 0x20, 0xcd, 0x3c, 0xc5, 0x92, 0xf3, 0x6d, 0x6c, 0x49, 0x1f, 0xa1, 0x8f, 0x7c, 0x14, 0x04, 0x36, 0x0d, 0x2a, 0x77, 0x53, 0xfe, 0x07, 0x3e, 0x09, 0xa2, 0xfc, 0x42, 0xa4, 0xbb, 0xea, 0x55, 0xbc, 0x96, 0xd7, 0xf0, 0x5c, 0x98, 0xae, 0xd2, 0xcc, 0x4a, 0x9f, 0xae, 0x8f, 0xd4, 0xa0, 0x19, 0x7f, 0xf0, 0x1f, 0xa7, 0xf0, 0x04, 0x6e, 0x3c, 0x3e, 0xb5, 0x9a, 0xaa, 0xbc, 0xa3, 0x13, 0xa4, 0xdd, 0xaa, 0x5d, 0x20, 0xd2, 0x7c, 0x2c, 0x5f, 0x1a, 0xc6, 0xd8, 0x7f, 0xd3, 0xcb, 0x4b, 0xd3, 0x5a, 0x1e, 0xc7, 0x5d, 0x10, 0x4f, 0x7c, 0x36, 0x73, 0x31, 0xa3, 0xe2, 0x95, 0xe5, 0x3c, 0x4e, 0x80, 0xba, 0xe1, 0x4b, 0x97, 0x92, 0xd0, 0xd5, 0x26, 0xf7, 0x40, 0xd4, 0xff, 0x03, 0x6f, 0xaf, 0x54, 0x87, 0x96, 0x7f, 0xfa, 0xbe, 0x8e, 0x88, 0x3d, 0x3f, 0xb0, 0xd1, 0x6f, 0xaa, 0xdb, 0x28, 0xe1, 0x28, 0x5d, 0xed, 0x41, 0x57, 0x0c, 0x0b, 0x07, 0xc2, 0x55, 0x9b, 0x53, 0x1e, 0x0f, 0x92, 0x54, 0xef, 0x88, 0xe5, 0xb1, 0x0f, 0x64, 0xf4, 0x83, 0x9a, 0x9a, 0x0b, 0x6c, 0x3c, 0x7f, 0x1b, 0x78, 0x50, 0xf4, 0xad, 0x9b, 0xf0, 0x99, 0x9a, 0x7f, 0x2a, 0xe7, 0xc4, 0x5a, 0x65, 0x8e, 0xa5, 0x30, 0x36, 0xfc, 0x70, 0x19, 0x98, 0x42, 0xb8, 0xe4, 0x9e, 0x60, 0xf9, 0x67, 0xde, 0x1f, 0xf3, 0xab, 0xff, 0xf6, 0xcd, 0x73, 0x5b, 0x7c, 0xd8, 0xb8, 0xf9, 0xe2, 0x48, 0xf1, 0x56, 0xf6, 0xc6, 0x54, 0x38, 0x69, 0xeb, 0x99, 0x82, 0x3d, 0xae, 0xa8, 0x8d, 0xeb, 0xaf, 0x79, 0xf0, 0x1e, 0x65, 0x21, 0xec, 0x63, 0xfe, 0x72, 0x72, 0x4e, 0xe3, 0xc8, 0x22, 0xb8, 0x8b, 0x39, 0x68, 0xb2, 0x48, 0x52, 0x09, 0x15, 0x83, 0xc4, 0x9a, 0xb3, 0xc1, 0x5f, 0xa1, 0xf7, 0x9b, 0x18, 0xd9, 0x8f, 0x04, 0xd9, 0xb6, 0x84, 0x1c, 0x9a, 0x7c, 0xa0, 0xde, 0x2f, 0xcc, 0x02, 0xf9, 0x5d, 0xd6, 0x49, 0x49, 0x2e, 0x8b, 0x56, 0xa3, 0x1e, 0xc1, 0xe2, 0x44, 0x33, 0x7a, 0xf6, 0xaa, 0xae, 0xde, 0x8b, 0xf9, 0x9f, 0xc8, 0x14, 0xef, 0x57, 0xc0, 0xd5, 0xe0, 0x8c, 0x3c, 0x7e, 0xcc, 0x18, 0x97, 0x98, 0x0a, 0xa1, 0x69, 0xa9, 0x92, 0x6d, 0x20, 0x69, 0x8d, 0xf6, 0x93, 0x0e, 0x21, 0x10, 0xcb, 0x46, 0x0f, 0x49, 0x39, 0x01, 0x00, 0x74, 0x10, 0x95, 0xf8, 0xed, 0x00, 0x41, 0x2a, 0xe6, 0x96, 0xd9, 0x8e, 0xfe, 0xfd, 0x29, 0x0d, 0xa5, 0xf7, 0xd0, 0xb7, 0x28, 0xd2, 0x0a, 0x1e, 0xbf, 0xa6, 0xbd, 0x7d, 0x27, 0x0f, 0x28, 0x1a, 0x98, 0xc7, 0xb1, 0xe4, 0x08, 0x43, 0x51, 0x25, 0xaa, 0x48, 0x3c, 0x6b, 0x7d, 0x63, 0x3f, 0xf7, 0x58, 0x8a, 0x94, 0x16, 0x58, 0xf6, 0x12, 0x95, 0x44, 0xd6, 0x29, 0x45, 0xb9, 0xb8, 0xaf, 0x71, 0xa8, 0xc6, 0x2c, 0x0a, 0x50, 0x07, 0x6c, 0xb8, 0x54, 0x1b, 0xa7, 0xe4, 0xbd, 0xe4, 0xed, 0xe4, 0x41, 0x72, 0x2c, 0x6e, 0xb9, 0xdf, 0x8c, 0xfd, 0x06, 0x56, 0x33, 0x9e, 0x86, 0xd2, 0x26, 0xab, 0xae, 0xa0, 0x5e, 0xa0, 0x47, 0xf6, 0xb8, 0x30, 0x77, 0x01, 0xf6, 0xc9, 0xa4, 0x4c, 0xc9, 0xcb, 0x83, 0x7b, 0x8e, 0xb6, 0x24, 0x45, 0x92, 0x5e, 0x8a, 0x88, 0x81, 0xd2, 0x53, 0x8f, 0xcb, 0x2b, 0x24, 0x9e, 0x4e, 0xe8, 0xb6, 0x86, 0xec, 0xfb, 0x49, 0xc4, 0xdf, 0x86, 0x40, 0x1d, 0x24, 0x9a, 0xac, 0x35, 0x84, 0x1e, 0x91, 0x40, 0x04, 0xf9, 0x45, 0x5d, 0x3f, 0xde, 0x37, 0x5d, 0x20, 0xa0, 0x1f, 0xba, 0x27, 0xb1, 0x97, 0xa6, 0x98, 0xd3, 0x84, 0xc7, 0x65, 0x05, 0x10, 0x68, 0x01, 0x62, 0x7e, 0x83, 0x36, 0xbd, 0x2d, 0x76, 0xd7, 0x61, 0xa8, };
18583 static const u8 ed25519_808_test_vectors_expected_sig[] = {
18584 	0x5b, 0xe5, 0x52, 0xfa, 0x73, 0x1e, 0x83, 0x67, 0x93, 0xf6, 0xdd, 0xa8, 0x95, 0xdc, 0x9b, 0x1e, 0x2c, 0xcd, 0x66, 0x9d, 0xe1, 0xc8, 0x43, 0xe0, 0x0e, 0xa6, 0xfa, 0x3c, 0x5e, 0xbf, 0x97, 0xa3, 0x4b, 0x26, 0xf1, 0xf3, 0xac, 0x7f, 0xf2, 0x22, 0x5e, 0xe4, 0xa7, 0xe4, 0x30, 0x07, 0x2c, 0x13, 0xda, 0x40, 0x66, 0xdc, 0xdc, 0xc0, 0x5b, 0xa2, 0xb5, 0xf6, 0x1a, 0x6e, 0x8d, 0x21, 0x07, 0x09, };
18585 static const ec_test_case ed25519_808_test_case = {
18586 	.name = "EDDSA25519-SHA512/wei25519 808",
18587 	.ec_str_p = &wei25519_str_params,
18588 	.priv_key = ed25519_808_test_vectors_priv_key,
18589 	.priv_key_len = sizeof(ed25519_808_test_vectors_priv_key),
18590 	.nn_random = NULL,
18591 	.hash_type = SHA512,
18592 	.msg = (const char *)ed25519_808_test_vectors_message,
18593 	.msglen = sizeof(ed25519_808_test_vectors_message),
18594 	.sig_type = EDDSA25519,
18595 	.exp_sig = ed25519_808_test_vectors_expected_sig,
18596 	.exp_siglen = sizeof(ed25519_808_test_vectors_expected_sig),
18597 	.adata = NULL,
18598 	.adata_len = 0
18599 };
18600 
18601 /************************************************/
18602 static const u8 ed25519_809_test_vectors_priv_key[] = {
18603 	0xc6, 0x4d, 0xd2, 0x0d, 0x42, 0x62, 0x75, 0x26, 0x19, 0x8a, 0x22, 0x64, 0x76, 0x90, 0xc8, 0x95, 0xb5, 0xb4, 0x5b, 0x69, 0x8f, 0x57, 0xa6, 0x9d, 0xfb, 0xe4, 0x8d, 0xbd, 0x42, 0x6a, 0xa4, 0x70, };
18604 static const u8 ed25519_809_test_vectors_message[] = {
18605 	0x82, 0x1b, 0x9f, 0x7c, 0x16, 0x10, 0x4b, 0x53, 0x3b, 0xd1, 0x27, 0x18, 0x4f, 0xd7, 0x2a, 0xde, 0x09, 0x2b, 0x13, 0xbb, 0xd9, 0xac, 0xee, 0xd2, 0x9b, 0x8d, 0x10, 0xf1, 0x66, 0x88, 0x92, 0x2d, 0x16, 0x5f, 0x89, 0x31, 0xd5, 0x3d, 0xf5, 0x90, 0xfb, 0x71, 0x3b, 0x67, 0x4d, 0x80, 0x5c, 0xe0, 0xc9, 0xd6, 0xce, 0x6c, 0x43, 0xba, 0x69, 0x68, 0x19, 0x1d, 0x12, 0xbf, 0xa0, 0x8a, 0x8c, 0xe2, 0x2e, 0x8f, 0x33, 0x6b, 0x2b, 0x49, 0x1a, 0xf2, 0x5d, 0x1b, 0x16, 0x06, 0xf9, 0x30, 0xca, 0xeb, 0xe5, 0x22, 0x39, 0x2a, 0x87, 0xd4, 0x2c, 0xe7, 0xbc, 0x16, 0x7a, 0xa7, 0xb6, 0x10, 0x59, 0x72, 0x20, 0xaf, 0x31, 0xa6, 0x65, 0x35, 0x30, 0x71, 0xe8, 0xd9, 0xe5, 0xf4, 0x20, 0x78, 0xb9, 0xc3, 0x88, 0xbf, 0x04, 0x02, 0x58, 0xe2, 0x1f, 0x9c, 0x3a, 0xb3, 0x8c, 0x04, 0x27, 0x61, 0x8b, 0x2c, 0x28, 0xd3, 0x43, 0x0d, 0xf2, 0x79, 0x21, 0xbf, 0xc5, 0x84, 0x87, 0xb3, 0x46, 0x19, 0x78, 0xbf, 0xa8, 0xbf, 0x58, 0x6c, 0xfe, 0x83, 0x58, 0xe0, 0x92, 0xf8, 0xf4, 0x74, 0x66, 0xe7, 0x62, 0x45, 0x1d, 0x50, 0x16, 0x4a, 0x0d, 0x74, 0x36, 0x0f, 0x66, 0xb4, 0xcd, 0x3a, 0x35, 0x75, 0xda, 0x01, 0xda, 0x23, 0x75, 0x24, 0x30, 0xc0, 0x35, 0xda, 0x85, 0x9f, 0x57, 0x7d, 0xe2, 0x22, 0x90, 0xaa, 0xb4, 0xed, 0x7f, 0x34, 0xd2, 0x67, 0x40, 0x6a, 0xb5, 0x47, 0xeb, 0x44, 0x5c, 0xc6, 0x4d, 0xf5, 0x30, 0x19, 0x42, 0x7f, 0x4e, 0xb7, 0x2b, 0xca, 0x55, 0x39, 0x71, 0x53, 0xd0, 0x1c, 0xcf, 0x7e, 0xc9, 0x7d, 0x7a, 0x96, 0x7d, 0x9a, 0xff, 0x46, 0x23, 0x1d, 0x2e, 0x20, 0x27, 0xb3, 0x8f, 0x3b, 0x41, 0xbd, 0x2c, 0xb1, 0xb7, 0x98, 0xa4, 0xae, 0x88, 0xab, 0xf4, 0x89, 0x62, 0x16, 0xd3, 0x15, 0xbd, 0x53, 0x83, 0x02, 0x42, 0x59, 0xe5, 0x97, 0x42, 0x80, 0x2a, 0x91, 0x1b, 0xad, 0xcf, 0x84, 0x73, 0xdb, 0x91, 0xaf, 0x31, 0x97, 0x33, 0x32, 0x0c, 0xb9, 0x52, 0x1e, 0xf9, 0xce, 0x43, 0x72, 0x67, 0xb6, 0xea, 0x17, 0xbc, 0xaf, 0xe5, 0xd0, 0x90, 0x3b, 0x12, 0x3a, 0x35, 0xc9, 0x88, 0xf4, 0x98, 0x34, 0xf6, 0x1d, 0xd5, 0x52, 0x64, 0x0a, 0x32, 0x76, 0xda, 0x26, 0xaf, 0x17, 0xec, 0x21, 0xa2, 0x02, 0x96, 0x58, 0x6d, 0xd6, 0xf4, 0xb3, 0x6c, 0x7a, 0x4f, 0x0b, 0x89, 0x9d, 0x70, 0xb4, 0x2a, 0xf8, 0x9e, 0x29, 0x37, 0x01, 0x32, 0xed, 0xfb, 0x72, 0xd6, 0x83, 0x41, 0x94, 0xa1, 0x60, 0x93, 0x60, 0xb1, 0xf1, 0xfe, 0xab, 0x89, 0xb9, 0x6b, 0x8e, 0x8f, 0x0f, 0x68, 0x98, 0x7c, 0x57, 0xcc, 0xe0, 0xba, 0xb7, 0x68, 0x11, 0x37, 0x18, 0xfb, 0x17, 0x09, 0xde, 0x2d, 0xf3, 0x21, 0x77, 0xd4, 0x40, 0x85, 0xda, 0x5e, 0xfd, 0x9d, 0xa7, 0x0e, 0x1a, 0x85, 0x8c, 0x92, 0xf2, 0x45, 0xac, 0xfe, 0xe6, 0x4b, 0x71, 0xf3, 0xeb, 0x16, 0xe0, 0x4f, 0xc1, 0x39, 0x89, 0xe6, 0x93, 0x37, 0x99, 0x97, 0x01, 0xdd, 0x73, 0xab, 0xc2, 0x66, 0xc9, 0xfd, 0x4c, 0xff, 0x91, 0xa0, 0xfd, 0x04, 0xfb, 0xd8, 0xb1, 0x3b, 0x12, 0xe6, 0xf4, 0x50, 0x38, 0x57, 0x15, 0x84, 0x8e, 0x00, 0x7f, 0xa0, 0xd4, 0x63, 0x11, 0x9f, 0xd7, 0xde, 0x63, 0x25, 0xb6, 0x40, 0x04, 0x2b, 0x65, 0x42, 0x12, 0xe0, 0xdb, 0x8d, 0xa1, 0xad, 0xeb, 0xd2, 0xa7, 0x58, 0x9f, 0x77, 0xee, 0x4f, 0x75, 0x2d, 0x28, 0x2c, 0xa1, 0x11, 0x9c, 0x43, 0x1b, 0x17, 0xad, 0x0a, 0x02, 0x1e, 0xf2, 0xbf, 0x95, 0xe5, 0xac, 0x47, 0x04, 0xe6, 0x2d, 0x70, 0x39, 0xd0, 0xe6, 0x51, 0xe4, 0x56, 0xd6, 0x0e, 0x63, 0xba, 0xde, 0x40, 0x1c, 0xca, 0x77, 0xc9, 0xa8, 0x91, 0x63, 0x17, 0x4d, 0x50, 0x22, 0xd7, 0x45, 0xab, 0xdc, 0x76, 0xb9, 0xff, 0xe2, 0x54, 0x41, 0x55, 0x23, 0x5e, 0x30, 0x63, 0xe6, 0xe4, 0xae, 0xec, 0x44, 0xed, 0x5d, 0x8a, 0xb4, 0x08, 0xd9, 0x66, 0xfe, 0xc1, 0x20, 0x16, 0xc1, 0x30, 0x73, 0x0b, 0xbc, 0x55, 0x87, 0x32, 0x06, 0x5d, 0xa8, 0x00, 0xa7, 0x0c, 0xbf, 0xb0, 0xfc, 0xcc, 0xa4, 0x5d, 0x00, 0x28, 0xcb, 0xfd, 0x96, 0x32, 0xdd, 0xb2, 0xf0, 0xed, 0x12, 0xed, 0xae, 0x7b, 0x93, 0x0b, 0x10, 0x6c, 0x9d, 0x12, 0x85, 0xa4, 0xb8, 0x70, 0xde, 0x75, 0x07, 0x99, 0x9c, 0x74, 0x79, 0x3d, 0xd4, 0x97, 0x40, 0x87, 0x19, 0xc8, 0x98, 0xab, 0xe4, 0x9f, 0x7f, 0x33, 0xa3, 0x3e, 0x69, 0xb5, 0x0f, 0xa5, 0xaf, 0x94, 0x80, 0x06, 0x85, 0x66, 0xd1, 0xfd, 0xdf, 0x44, 0x82, 0xd7, 0x97, 0x04, 0xad, 0x8e, 0xf1, 0x1b, 0x88, 0xb4, 0x2c, 0xc6, 0x9f, 0xce, 0x8a, 0x55, 0x7b, 0x5b, 0xa5, 0x10, 0xe7, 0x08, 0xb9, 0x37, 0x51, 0x23, 0x03, 0x85, 0x68, 0x27, 0x0d, 0xe4, 0x07, 0x23, 0x2e, 0x95, 0x62, 0x1e, 0x2d, 0x04, 0x57, 0x0b, 0xec, 0x2c, 0x41, 0xec, 0xcf, 0xd8, 0x55, 0xb2, 0x1f, 0x0c, 0x9b, 0xba, 0xa2, 0x3b, 0x5c, 0x58, 0x15, 0xfc, 0x88, 0x8f, 0x7f, 0xbe, 0xd4, 0x82, 0xc3, 0x20, 0xff, 0xa1, 0xe0, 0x63, 0xe8, 0x7b, 0x55, 0xbc, 0x8f, 0x7e, 0xee, 0xa3, 0x74, 0x06, 0x3a, 0x9b, 0xe6, 0x5f, 0x7e, 0xd9, 0x22, 0x5b, 0xf6, 0xca, 0x34, 0xcf, 0xa3, 0x11, 0xb7, 0x9f, 0x3a, 0x25, 0x8c, 0x25, 0x2e, 0x63, 0x45, 0xed, 0x6a, 0xc8, 0x47, 0x48, 0xf4, 0x68, 0x07, 0xa5, 0x5d, 0x4b, 0xa4, 0x12, 0x66, 0x16, 0x9c, 0xd2, 0x62, 0xd4, 0xf7, 0x22, 0x79, 0xef, 0x0c, 0xaa, 0x77, 0xff, 0x44, 0x93, 0x35, 0x32, 0xbd, 0x13, 0x74, 0x75, 0x6c, 0x23, 0xec, 0x85, 0xf5, 0x5e, 0xfe, 0x9f, 0xc2, 0x33, 0x1f, 0x26, 0xf8, 0x81, 0x62, 0x9f, 0x80, 0xc2, 0x69, 0x2f, 0x7f, 0x53, 0xe4, 0xbc, 0x6f, 0x22, 0xef, 0xb4, 0x54, 0x57, 0xa2, 0x23, 0xf0, 0xd1, 0xc4, };
18606 static const u8 ed25519_809_test_vectors_expected_sig[] = {
18607 	0xde, 0xac, 0xc8, 0xc2, 0x32, 0x18, 0x72, 0x76, 0x76, 0xd5, 0x40, 0xa2, 0x3b, 0xda, 0xd7, 0x81, 0x02, 0x11, 0xe6, 0xd5, 0x7a, 0xd2, 0x94, 0xc3, 0x7d, 0x4b, 0x1c, 0x9a, 0xf6, 0xb3, 0x37, 0xa5, 0x3f, 0x78, 0x80, 0xd2, 0xba, 0xfa, 0x73, 0xb3, 0x05, 0x08, 0xc0, 0x08, 0x42, 0x6b, 0xf8, 0xd7, 0xc9, 0x65, 0xa1, 0xf4, 0xa4, 0x22, 0xa1, 0xbc, 0x7d, 0x6a, 0xd6, 0x22, 0x6f, 0xd1, 0x97, 0x06, };
18608 static const ec_test_case ed25519_809_test_case = {
18609 	.name = "EDDSA25519-SHA512/wei25519 809",
18610 	.ec_str_p = &wei25519_str_params,
18611 	.priv_key = ed25519_809_test_vectors_priv_key,
18612 	.priv_key_len = sizeof(ed25519_809_test_vectors_priv_key),
18613 	.nn_random = NULL,
18614 	.hash_type = SHA512,
18615 	.msg = (const char *)ed25519_809_test_vectors_message,
18616 	.msglen = sizeof(ed25519_809_test_vectors_message),
18617 	.sig_type = EDDSA25519,
18618 	.exp_sig = ed25519_809_test_vectors_expected_sig,
18619 	.exp_siglen = sizeof(ed25519_809_test_vectors_expected_sig),
18620 	.adata = NULL,
18621 	.adata_len = 0
18622 };
18623 
18624 /************************************************/
18625 static const u8 ed25519_810_test_vectors_priv_key[] = {
18626 	0x0f, 0x8e, 0x9f, 0x35, 0x26, 0xb4, 0xfa, 0xea, 0x92, 0x76, 0xf2, 0x2a, 0x17, 0x79, 0xe6, 0xf8, 0x27, 0x09, 0x80, 0x8f, 0x6d, 0x0c, 0x61, 0x2a, 0xdf, 0xe3, 0x2a, 0x6e, 0x8a, 0x06, 0x10, 0x05, };
18627 static const u8 ed25519_810_test_vectors_message[] = {
18628 	0x0c, 0xcd, 0x37, 0xc4, 0xcf, 0xd8, 0xe7, 0x0c, 0xa3, 0xbb, 0x39, 0x46, 0xd0, 0x9d, 0x70, 0xd0, 0xf6, 0xa4, 0xb8, 0x1d, 0x6d, 0xfb, 0x07, 0x9d, 0x78, 0x73, 0x74, 0x80, 0x71, 0x58, 0x98, 0x80, 0x92, 0x73, 0x82, 0xf7, 0x43, 0x6a, 0x6e, 0xf8, 0xf5, 0x1c, 0x25, 0x54, 0x73, 0xdd, 0x01, 0xfe, 0xb5, 0x2c, 0x8e, 0xdb, 0xe4, 0xd3, 0x25, 0x57, 0x13, 0xe6, 0x8d, 0x64, 0x0f, 0x3d, 0xcf, 0x15, 0x8f, 0x2b, 0xfb, 0x9f, 0xbe, 0xcf, 0x71, 0xf0, 0x71, 0x9d, 0xfe, 0x8c, 0xe6, 0xb6, 0x01, 0x28, 0x1b, 0xa6, 0xc2, 0x0a, 0x56, 0xb4, 0xf8, 0xe7, 0xca, 0xa4, 0xaa, 0x9f, 0x86, 0x8f, 0xbf, 0xc5, 0xe4, 0x32, 0x1c, 0x22, 0xd6, 0x5f, 0x03, 0x82, 0xc4, 0x89, 0x6b, 0xf9, 0xbe, 0xbe, 0x35, 0x46, 0x94, 0x9e, 0x81, 0x85, 0xa4, 0xd8, 0x17, 0xe4, 0x5b, 0x5d, 0x12, 0x93, 0x95, 0x38, 0x21, 0xbd, 0xd9, 0x8e, 0xc2, 0x59, 0xf6, 0x4a, 0x3d, 0xe5, 0x38, 0x65, 0xb1, 0x49, 0xea, 0x01, 0xc8, 0xf6, 0x83, 0xec, 0xda, 0x61, 0xda, 0x5d, 0xc1, 0x0e, 0x7e, 0xbd, 0xdd, 0xfe, 0x74, 0x84, 0xf5, 0xeb, 0x10, 0x31, 0xb7, 0x91, 0x65, 0x87, 0xca, 0xa3, 0x99, 0xa0, 0x6b, 0x6f, 0xea, 0x4c, 0x5e, 0x6e, 0x0b, 0xe6, 0x50, 0xfb, 0xdf, 0x06, 0xc1, 0x03, 0x6d, 0xf2, 0xcc, 0x35, 0xf6, 0x2e, 0xa0, 0xea, 0x71, 0x3f, 0x52, 0x80, 0x9d, 0x77, 0xf4, 0x7c, 0x2e, 0x55, 0xc9, 0x23, 0x92, 0x48, 0x16, 0x80, 0xb6, 0x33, 0x20, 0x56, 0x22, 0x69, 0x13, 0xb0, 0xce, 0x88, 0xa6, 0xc5, 0x5a, 0x26, 0xbd, 0xb5, 0xb8, 0xba, 0xb3, 0xcf, 0x46, 0x95, 0xa8, 0xc5, 0x22, 0x30, 0x2c, 0x4e, 0xba, 0x37, 0xd3, 0x1f, 0xf7, 0x7e, 0x58, 0x30, 0x1b, 0xcc, 0xfc, 0x7c, 0x7b, 0xe8, 0x58, 0x0c, 0x63, 0x42, 0x68, 0x79, 0x95, 0xf4, 0x4a, 0xcd, 0x19, 0x09, 0x65, 0xae, 0x0d, 0x7b, 0xf0, 0x66, 0x95, 0x92, 0xb6, 0xad, 0x88, 0x74, 0x3e, 0xbb, 0x36, 0x0c, 0x73, 0xe0, 0x48, 0x4a, 0x23, 0xd2, 0xf9, 0xe9, 0x9e, 0x9e, 0xb0, 0x38, 0xdc, 0xbd, 0x87, 0xca, 0x9b, 0x1a, 0x49, 0x8f, 0x1b, 0x2d, 0x35, 0xfe, 0xdd, 0x7f, 0x8e, 0x1f, 0x7f, 0xd8, 0xca, 0x52, 0x64, 0x86, 0x91, 0x1e, 0x07, 0x6a, 0xea, 0xb4, 0x87, 0x7b, 0xba, 0xcf, 0x37, 0x8a, 0x28, 0x55, 0xf9, 0xc5, 0xac, 0x03, 0x91, 0x30, 0xdc, 0x69, 0x0e, 0x17, 0x7d, 0x67, 0xb2, 0x44, 0xcc, 0x8a, 0xd0, 0x32, 0x37, 0x9e, 0xf7, 0x1f, 0xe0, 0x5e, 0x9c, 0x86, 0x13, 0xd8, 0xf5, 0xd6, 0xea, 0x3d, 0x4e, 0x3e, 0x47, 0x22, 0x20, 0x29, 0xcc, 0x00, 0x42, 0x53, 0xbe, 0x47, 0xf8, 0x7f, 0xb5, 0xe3, 0x31, 0x4c, 0x48, 0x98, 0x13, 0x4b, 0x87, 0xac, 0xf1, 0x0b, 0x25, 0x38, 0xba, 0xd8, 0x97, 0xbd, 0xc5, 0x01, 0x2d, 0x8f, 0x97, 0x62, 0xc8, 0x71, 0xb6, 0x53, 0xd4, 0x00, 0xfe, 0xe0, 0xce, 0xed, 0x5e, 0xf6, 0xbd, 0xd1, 0x6f, 0xaf, 0x3f, 0x0a, 0xbd, 0xbd, 0x72, 0xcd, 0x0a, 0x12, 0x94, 0x05, 0x46, 0xf0, 0x99, 0x5f, 0xf1, 0x4b, 0x0f, 0x1b, 0xd5, 0x48, 0x56, 0xff, 0x74, 0xc3, 0x6e, 0xb4, 0xf2, 0x2d, 0x72, 0x87, 0xae, 0xfd, 0xc6, 0x09, 0x99, 0x8c, 0x1f, 0x41, 0xbc, 0xc3, 0xbb, 0x3a, 0x5f, 0xa4, 0x92, 0x34, 0xf4, 0xfa, 0x8e, 0x92, 0x9c, 0xd0, 0xf5, 0x54, 0xb3, 0x15, 0x39, 0x5d, 0xae, 0x87, 0x3c, 0x61, 0xca, 0x70, 0xe0, 0x41, 0x0c, 0x2f, 0xd5, 0xa1, 0x15, 0xd2, 0xa6, 0xff, 0x1f, 0x1c, 0x94, 0xb2, 0x7b, 0xa4, 0x50, 0xb8, 0x19, 0x4b, 0x21, 0xf0, 0x95, 0xc6, 0x1a, 0x5f, 0x21, 0x5e, 0x3c, 0x84, 0xf5, 0xd4, 0x3f, 0x0e, 0x73, 0x62, 0x86, 0xd3, 0x3b, 0x8c, 0x47, 0x81, 0x4d, 0xb9, 0x79, 0xf9, 0xdc, 0x00, 0x91, 0x98, 0x46, 0xbe, 0xe6, 0x85, 0x33, 0x7d, 0x99, 0x55, 0x5a, 0x24, 0x47, 0x2e, 0x6b, 0x00, 0xb3, 0xf4, 0xa1, 0x43, 0x11, 0xa6, 0xc7, 0xc9, 0x04, 0xba, 0x58, 0x89, 0xda, 0x6c, 0x1d, 0xdc, 0xc1, 0x11, 0x75, 0x80, 0xf5, 0xfb, 0xc4, 0x1f, 0x2b, 0x8a, 0x42, 0x68, 0xcf, 0x0e, 0x9f, 0xa5, 0xbf, 0x41, 0x25, 0x34, 0xc9, 0xe4, 0x05, 0x2a, 0xac, 0xb5, 0x04, 0xcb, 0x86, 0xe2, 0x14, 0x7a, 0xb8, 0x02, 0x3d, 0x58, 0x80, 0x0b, 0x76, 0x3f, 0x9a, 0xbf, 0x9d, 0x04, 0x40, 0x78, 0x8a, 0x51, 0xdf, 0xe5, 0xcb, 0xd4, 0x42, 0x30, 0xba, 0x52, 0x28, 0xf1, 0xf5, 0x96, 0x0e, 0xa3, 0xa4, 0xe4, 0x04, 0x4d, 0x36, 0xda, 0xf8, 0x11, 0xcb, 0xdb, 0xec, 0x5d, 0x69, 0x64, 0x63, 0xd8, 0xe9, 0x41, 0xf2, 0x72, 0x17, 0x56, 0x3b, 0xb4, 0x4a, 0x21, 0x18, 0xa4, 0xf5, 0xac, 0xd6, 0xe7, 0x94, 0xde, 0x17, 0xe0, 0x28, 0xcb, 0xde, 0xef, 0xde, 0xf2, 0xcb, 0xf0, 0x3d, 0xd3, 0x2e, 0x78, 0x99, 0xe6, 0x5a, 0x1c, 0xf8, 0x39, 0xf5, 0xd9, 0x0e, 0x1f, 0x8c, 0x36, 0x4b, 0x57, 0x7f, 0xe3, 0x10, 0x53, 0x53, 0xf6, 0x67, 0x68, 0xdb, 0xf7, 0xaf, 0x0c, 0x52, 0x1a, 0xa8, 0xa4, 0x9f, 0x7a, 0x22, 0x08, 0x2d, 0x88, 0xf9, 0x01, 0x49, 0x8c, 0x90, 0xb9, 0xd7, 0x77, 0x7e, 0xd2, 0xf9, 0xf0, 0xe8, 0xa5, 0x52, 0xd8, 0xa1, 0xfa, 0x5e, 0x96, 0x32, 0xed, 0x85, 0x32, 0x58, 0xc9, 0xc2, 0x15, 0xb6, 0xdb, 0xb4, 0x11, 0x1d, 0xcf, 0xca, 0x55, 0x4b, 0xfb, 0xc9, 0xbb, 0xa2, 0x2f, 0x88, 0xbc, 0x55, 0x55, 0x2c, 0x6d, 0x86, 0x25, 0x56, 0xd7, 0x41, 0xda, 0xd5, 0x9f, 0x21, 0x5e, 0x37, 0x28, 0x83, 0x46, 0xca, 0x7d, 0x7f, 0xd8, 0xc6, 0x5a, 0x38, 0x0d, 0x72, 0x0c, 0xaf, 0xf9, 0xef, 0xa1, 0x49, 0xf3, 0xfd, 0xa2, 0x32, 0xda, 0xa5, 0xb1, 0x2e, 0xf1, 0x1c, 0x0a, 0xf0, 0x86, 0x2b, 0xd0, 0x22, 0x9e, 0x07, 0x5a, 0x3c, 0x6b, 0x60, 0xef, 0x0b, 0xbb, 0x3d, 0xad, 0x7f, 0x29, 0x08, };
18629 static const u8 ed25519_810_test_vectors_expected_sig[] = {
18630 	0x2f, 0x59, 0xa2, 0x93, 0x60, 0x73, 0x91, 0x38, 0x34, 0xeb, 0x15, 0xa0, 0xe0, 0xbc, 0xb9, 0xaa, 0x80, 0x40, 0x89, 0x46, 0x8f, 0x24, 0xdd, 0x1b, 0x2d, 0x37, 0xa1, 0x93, 0x4a, 0xe9, 0xba, 0x10, 0x20, 0xff, 0x64, 0xb7, 0x2e, 0xec, 0x03, 0x26, 0x8d, 0x0a, 0x7c, 0x01, 0x2c, 0x4e, 0x79, 0x63, 0x00, 0xf6, 0xdf, 0x7a, 0xdd, 0xa0, 0x1c, 0x8b, 0xc5, 0xe9, 0x01, 0x5c, 0xcd, 0xee, 0x1a, 0x00, };
18631 static const ec_test_case ed25519_810_test_case = {
18632 	.name = "EDDSA25519-SHA512/wei25519 810",
18633 	.ec_str_p = &wei25519_str_params,
18634 	.priv_key = ed25519_810_test_vectors_priv_key,
18635 	.priv_key_len = sizeof(ed25519_810_test_vectors_priv_key),
18636 	.nn_random = NULL,
18637 	.hash_type = SHA512,
18638 	.msg = (const char *)ed25519_810_test_vectors_message,
18639 	.msglen = sizeof(ed25519_810_test_vectors_message),
18640 	.sig_type = EDDSA25519,
18641 	.exp_sig = ed25519_810_test_vectors_expected_sig,
18642 	.exp_siglen = sizeof(ed25519_810_test_vectors_expected_sig),
18643 	.adata = NULL,
18644 	.adata_len = 0
18645 };
18646 
18647 /************************************************/
18648 static const u8 ed25519_811_test_vectors_priv_key[] = {
18649 	0xfe, 0x7c, 0xdc, 0x79, 0x66, 0xd0, 0xff, 0xb9, 0xc7, 0x6f, 0x4a, 0x18, 0xe7, 0xf0, 0xbf, 0x90, 0x69, 0x0e, 0xb7, 0x6d, 0xc3, 0xd3, 0xd5, 0x08, 0x84, 0x64, 0x8e, 0x2e, 0x39, 0x37, 0xd0, 0x20, };
18650 static const u8 ed25519_811_test_vectors_message[] = {
18651 	0xdc, 0xb9, 0x1c, 0xf1, 0x55, 0x46, 0x1a, 0x60, 0xdf, 0x07, 0xee, 0xc2, 0x9d, 0x98, 0x61, 0x6e, 0xd1, 0x72, 0x8b, 0x34, 0xef, 0xa9, 0xe1, 0xf7, 0x44, 0x5a, 0x91, 0x58, 0xa8, 0xf8, 0x8d, 0x7f, 0xaa, 0xae, 0x0e, 0x24, 0x72, 0x5a, 0xef, 0xf2, 0x63, 0xc3, 0xf7, 0x4f, 0x0c, 0x68, 0x4f, 0x18, 0x58, 0xf0, 0x5b, 0x69, 0x95, 0xd2, 0x84, 0x6b, 0x6a, 0x83, 0x2f, 0x67, 0x08, 0x5a, 0x42, 0x76, 0xd8, 0x66, 0x1a, 0xeb, 0xd3, 0xbf, 0xcc, 0x73, 0x18, 0x1f, 0x1f, 0x51, 0x02, 0x93, 0xb6, 0xde, 0x5e, 0x4b, 0xb2, 0x3f, 0xf2, 0xdc, 0xa1, 0xdf, 0x60, 0x8c, 0xb1, 0x4a, 0xe5, 0x22, 0xac, 0x4b, 0x51, 0xe1, 0xf9, 0xb9, 0x73, 0xab, 0x8b, 0xaf, 0xcd, 0x53, 0x4e, 0x71, 0xc5, 0x71, 0x81, 0xb1, 0x18, 0x96, 0xee, 0x10, 0x61, 0xfb, 0x36, 0x9c, 0xa4, 0xd2, 0x93, 0x9d, 0x1e, 0x57, 0x06, 0x0d, 0x9f, 0x4d, 0xb0, 0xa5, 0xc0, 0xb0, 0x7d, 0x52, 0x68, 0x7f, 0x15, 0x78, 0x17, 0xe6, 0x3e, 0x2f, 0xe7, 0xeb, 0xcc, 0x3e, 0x7c, 0x95, 0xef, 0xe0, 0x5b, 0x85, 0x99, 0x10, 0xc9, 0x5e, 0xed, 0xe8, 0x6d, 0x14, 0x39, 0x9e, 0x61, 0x62, 0x48, 0xa2, 0x8c, 0x24, 0xc4, 0x14, 0xdb, 0xb6, 0x93, 0xaf, 0x9b, 0xe4, 0x35, 0xa3, 0xa9, 0xcd, 0xc3, 0x3e, 0x0e, 0x2a, 0x58, 0x69, 0x18, 0xd9, 0x1b, 0x8a, 0x85, 0xce, 0xdd, 0x16, 0x12, 0xd7, 0xc1, 0xa2, 0x17, 0x92, 0xbd, 0xd4, 0x3a, 0x91, 0x5b, 0x15, 0x7e, 0x04, 0xbb, 0x3a, 0x44, 0xec, 0xbe, 0x23, 0xfa, 0x49, 0xcc, 0x55, 0xda, 0xab, 0xbe, 0xaa, 0x15, 0x5a, 0x73, 0x7f, 0x76, 0x5b, 0x8d, 0xdb, 0x0f, 0x3b, 0x15, 0xd4, 0xec, 0xf2, 0xce, 0xf7, 0x05, 0x4c, 0xa7, 0x3e, 0xc8, 0x7d, 0x91, 0x75, 0x2c, 0x2e, 0x99, 0x19, 0x5c, 0xdb, 0x19, 0x58, 0x84, 0x4f, 0x14, 0x4e, 0xda, 0xb8, 0x2a, 0x97, 0x54, 0x9f, 0xc9, 0xce, 0xc0, 0x8e, 0x87, 0x11, 0xcf, 0xf8, 0x63, 0xb6, 0x3f, 0xc2, 0x31, 0xa7, 0x7f, 0x76, 0x2e, 0x5c, 0xd9, 0xda, 0x9d, 0x59, 0x40, 0x92, 0x52, 0xe9, 0x9a, 0xb0, 0x4c, 0x42, 0xbc, 0x57, 0x09, 0x7e, 0x46, 0x4e, 0x3c, 0x6a, 0x48, 0xd8, 0x02, 0x41, 0xe6, 0x32, 0x5e, 0x3e, 0x40, 0x94, 0x98, 0x9b, 0x34, 0xc0, 0xe8, 0xb3, 0x2b, 0x1a, 0x78, 0x29, 0xd5, 0x4d, 0xf3, 0x2a, 0x05, 0x0e, 0xe8, 0x7d, 0x8f, 0x7c, 0x4f, 0xe3, 0xe4, 0xf4, 0xf7, 0x04, 0x9d, 0x1f, 0xee, 0xcd, 0xbe, 0xa6, 0x71, 0x08, 0x35, 0x0d, 0xb4, 0xe8, 0xed, 0xbe, 0x3c, 0x3f, 0xf8, 0xab, 0x2a, 0x25, 0xd1, 0x47, 0xb1, 0xc1, 0xc5, 0x82, 0x1b, 0x0f, 0x8c, 0x21, 0x04, 0x2d, 0x65, 0x5d, 0xb8, 0x31, 0x69, 0x1f, 0x59, 0x98, 0x3f, 0x27, 0xd2, 0xed, 0x1d, 0x49, 0x06, 0xc5, 0x44, 0xe2, 0x4e, 0x79, 0xbe, 0x68, 0x65, 0x3c, 0x9b, 0x22, 0x9a, 0x7f, 0xb6, 0x1e, 0xf5, 0x45, 0xba, 0xb1, 0x6e, 0x98, 0x81, 0xcb, 0x4d, 0x92, 0x65, 0xe2, 0x93, 0x59, 0x0a, 0x0b, 0xc2, 0xdc, 0x86, 0xba, 0xd2, 0x30, 0x07, 0xff, 0x40, 0xc9, 0x58, 0x61, 0x92, 0x3b, 0x49, 0x82, 0x41, 0xc1, 0x0d, 0x26, 0xbf, 0x48, 0x48, 0xf6, 0x2b, 0xa7, 0x38, 0x3f, 0x64, 0x9d, 0xc3, 0x8a, 0xf1, 0x84, 0x0d, 0x0d, 0xe9, 0x28, 0xa9, 0xbf, 0xee, 0x5e, 0x11, 0xb5, 0x14, 0x34, 0x16, 0x3a, 0x7a, 0xb1, 0xed, 0x53, 0x74, 0x15, 0xf1, 0xe9, 0x32, 0x85, 0xe3, 0x69, 0x92, 0x05, 0x72, 0x01, 0x58, 0xf9, 0x55, 0x7d, 0x86, 0x41, 0xed, 0x2b, 0xf4, 0x85, 0xb8, 0x21, 0x2c, 0x8f, 0x82, 0x66, 0x8b, 0xac, 0x3c, 0x22, 0x8e, 0x69, 0x24, 0xc1, 0x7d, 0x0d, 0x98, 0xf2, 0xe6, 0xd9, 0x23, 0x43, 0x71, 0xc4, 0x42, 0x5e, 0xb7, 0x58, 0x68, 0x9f, 0xdb, 0x0d, 0xc1, 0xce, 0xa1, 0x39, 0x4a, 0x28, 0x62, 0xe8, 0x7b, 0xb3, 0x8e, 0x62, 0x4c, 0x34, 0x79, 0x91, 0x68, 0x61, 0x32, 0x78, 0x22, 0x5f, 0xb5, 0xe1, 0x9c, 0x92, 0x47, 0xad, 0xa3, 0x55, 0x54, 0xf2, 0xc4, 0xad, 0xdb, 0xb6, 0x1d, 0x5a, 0x50, 0x2a, 0x70, 0x81, 0x27, 0xd6, 0xef, 0xbc, 0xa8, 0xf7, 0x35, 0x09, 0x0b, 0xdf, 0xdd, 0x88, 0xdb, 0x29, 0xfb, 0xd1, 0x4b, 0x69, 0xab, 0x12, 0x62, 0xf0, 0xc3, 0xe2, 0x6d, 0x26, 0x3a, 0x59, 0xc5, 0xae, 0x46, 0x39, 0x06, 0x53, 0x83, 0xd5, 0x25, 0x0b, 0x54, 0xcf, 0x59, 0x2b, 0xb7, 0xad, 0xfe, 0xaa, 0xe0, 0xd2, 0xfe, 0x81, 0x6b, 0x63, 0x81, 0xe8, 0x6e, 0xa2, 0xd1, 0xc7, 0x18, 0x13, 0xcb, 0xc3, 0xd8, 0xfe, 0x2d, 0x31, 0xde, 0x7b, 0x30, 0xfb, 0x6e, 0xc2, 0x29, 0x4f, 0xe4, 0x53, 0x6a, 0x36, 0xc6, 0xa1, 0x83, 0x5a, 0x71, 0x62, 0xab, 0x4b, 0xf8, 0x9d, 0x19, 0x46, 0x61, 0x19, 0x65, 0x7b, 0x0e, 0x46, 0x45, 0xae, 0xf5, 0x03, 0x50, 0x5b, 0x4d, 0x55, 0xdf, 0x97, 0x7b, 0xd2, 0xc9, 0x0c, 0x64, 0x40, 0x6f, 0x49, 0x70, 0xd5, 0xcf, 0xf2, 0x45, 0xb8, 0x35, 0x32, 0x2a, 0x6f, 0xbe, 0x23, 0x4e, 0x5e, 0xfb, 0xb5, 0xea, 0x45, 0xe8, 0xf0, 0xd3, 0x97, 0x3b, 0xe4, 0xaa, 0xa2, 0xaa, 0xda, 0xab, 0x07, 0x7d, 0x6c, 0x9b, 0x25, 0xbd, 0x44, 0x94, 0x40, 0x9e, 0x93, 0x47, 0x9d, 0x2d, 0x15, 0x07, 0xf6, 0x6b, 0xc8, 0xbe, 0xf8, 0x29, 0x99, 0xa1, 0x3c, 0x79, 0x43, 0xb4, 0x72, 0xb9, 0xe6, 0x1e, 0xc2, 0x9d, 0xeb, 0xef, 0xbf, 0x22, 0x41, 0x42, 0x3e, 0x0f, 0xaa, 0x42, 0xc1, 0xa3, 0x38, 0xa7, 0xa6, 0x13, 0x1d, 0xed, 0x93, 0x5b, 0xa0, 0x3a, 0x28, 0x66, 0x2e, 0x68, 0x59, 0x33, 0x68, 0xdd, 0xe5, 0x4b, 0x46, 0x2f, 0x2a, 0x5f, 0xb7, 0x46, 0x18, 0x5f, 0xf5, 0x50, 0x3e, 0x69, 0xba, 0x36, 0xbf, 0x16, 0xf7, 0x14, 0x58, 0xcd, 0xd0, 0x57, 0xe5, 0xc1, 0x72, 0x67, 0xf6, 0x74, 0x98, 0xd6, 0x52, 0x86, 0x0b, 0x46, 0x5e, };
18652 static const u8 ed25519_811_test_vectors_expected_sig[] = {
18653 	0xb5, 0x2d, 0x03, 0xfd, 0xeb, 0xcd, 0x42, 0x97, 0x37, 0xef, 0x70, 0x92, 0x06, 0x87, 0x21, 0x1f, 0xbb, 0x4c, 0x04, 0xf8, 0x1e, 0x35, 0x5c, 0xec, 0x70, 0x72, 0xc5, 0x05, 0x41, 0x75, 0xd2, 0xed, 0x77, 0xf3, 0x8f, 0x46, 0x6f, 0x00, 0x14, 0x22, 0xda, 0x8f, 0xcd, 0xf0, 0x67, 0xdb, 0x14, 0x51, 0x00, 0x7c, 0xab, 0x60, 0x7f, 0x04, 0x9c, 0x2e, 0x26, 0x07, 0xb5, 0x7d, 0x44, 0x71, 0x3c, 0x04, };
18654 static const ec_test_case ed25519_811_test_case = {
18655 	.name = "EDDSA25519-SHA512/wei25519 811",
18656 	.ec_str_p = &wei25519_str_params,
18657 	.priv_key = ed25519_811_test_vectors_priv_key,
18658 	.priv_key_len = sizeof(ed25519_811_test_vectors_priv_key),
18659 	.nn_random = NULL,
18660 	.hash_type = SHA512,
18661 	.msg = (const char *)ed25519_811_test_vectors_message,
18662 	.msglen = sizeof(ed25519_811_test_vectors_message),
18663 	.sig_type = EDDSA25519,
18664 	.exp_sig = ed25519_811_test_vectors_expected_sig,
18665 	.exp_siglen = sizeof(ed25519_811_test_vectors_expected_sig),
18666 	.adata = NULL,
18667 	.adata_len = 0
18668 };
18669 
18670 /************************************************/
18671 static const u8 ed25519_812_test_vectors_priv_key[] = {
18672 	0xf6, 0xc9, 0xab, 0x5e, 0xa7, 0x5f, 0x29, 0x4e, 0x8e, 0x0c, 0x07, 0xc4, 0xc0, 0x9e, 0xd8, 0xee, 0xa3, 0x11, 0x3b, 0xdf, 0xc2, 0xef, 0x75, 0x9e, 0x20, 0xa2, 0x64, 0x57, 0x16, 0x04, 0x10, 0x8d, };
18673 static const u8 ed25519_812_test_vectors_message[] = {
18674 	0x71, 0x62, 0x3b, 0x39, 0x74, 0x3e, 0x39, 0xc7, 0xe0, 0x86, 0x38, 0x80, 0x6d, 0x46, 0x8a, 0x1a, 0x8a, 0x6f, 0x35, 0xc2, 0xae, 0x38, 0x8e, 0xef, 0xc2, 0x73, 0x74, 0xbb, 0x52, 0x53, 0x88, 0x14, 0xc4, 0xb3, 0x6c, 0x9b, 0x8e, 0x38, 0x9a, 0xd8, 0x31, 0x83, 0xde, 0x02, 0xa1, 0xbb, 0xd0, 0x32, 0x57, 0x34, 0xe4, 0x61, 0x87, 0x54, 0x09, 0x23, 0x37, 0xd3, 0xe7, 0xdc, 0x12, 0x56, 0x92, 0x8e, 0x35, 0x28, 0x87, 0x0c, 0xa7, 0xf0, 0x06, 0x13, 0xa2, 0x5b, 0x71, 0xbb, 0x15, 0xd1, 0xd9, 0xea, 0xaf, 0xf9, 0xf2, 0x26, 0x9b, 0x71, 0xc1, 0x97, 0x69, 0xe0, 0x03, 0xce, 0x84, 0x56, 0x14, 0xb2, 0xec, 0x95, 0xed, 0x28, 0xca, 0x85, 0x5b, 0x52, 0x21, 0xd4, 0xcb, 0x80, 0xa6, 0xca, 0x94, 0x66, 0xaa, 0x33, 0xe2, 0x51, 0x0d, 0xdf, 0xf7, 0xdc, 0xe1, 0x86, 0x15, 0x9d, 0xa7, 0x0f, 0xc8, 0xb1, 0xfb, 0xac, 0x12, 0xa2, 0x6e, 0x1f, 0xc0, 0x94, 0x22, 0x76, 0x89, 0x2a, 0xd6, 0xe9, 0xb0, 0x03, 0xf5, 0x69, 0x59, 0xbd, 0x31, 0x3a, 0xf2, 0x89, 0xe7, 0xa0, 0x53, 0x2a, 0x66, 0x4b, 0x76, 0xb9, 0x6b, 0x91, 0x98, 0x54, 0xe0, 0x65, 0x0c, 0xb8, 0xc5, 0x2e, 0xc4, 0xc5, 0xfb, 0x50, 0x53, 0xaf, 0x2f, 0x0c, 0xf8, 0xc0, 0xf2, 0x2a, 0x52, 0x3f, 0x9e, 0x2c, 0x64, 0x19, 0xdf, 0x8d, 0x0b, 0x71, 0x4e, 0xe3, 0x77, 0x68, 0x00, 0xeb, 0xfa, 0x70, 0x77, 0x60, 0x84, 0x66, 0x7d, 0x6d, 0xcf, 0x54, 0x1f, 0x14, 0xcf, 0x16, 0x62, 0x62, 0xe0, 0xf6, 0x4c, 0x42, 0x76, 0xae, 0x28, 0x88, 0x5e, 0x6c, 0xfd, 0x09, 0x7b, 0x70, 0xc0, 0xd6, 0x18, 0x6e, 0xa5, 0xdb, 0xd0, 0x33, 0x32, 0x3c, 0x98, 0x76, 0x13, 0xda, 0x08, 0x64, 0x5d, 0xe0, 0x72, 0x08, 0xba, 0xe1, 0x2a, 0x17, 0x8d, 0x8f, 0x7f, 0x65, 0x0a, 0x25, 0xaf, 0xbd, 0x70, 0x1c, 0x85, 0xa1, 0xba, 0x63, 0x9e, 0xf9, 0xf1, 0x21, 0xc4, 0x0c, 0x5c, 0x12, 0x9a, 0x47, 0x37, 0x34, 0x33, 0x86, 0xa4, 0x81, 0x83, 0xff, 0x3c, 0x59, 0x13, 0x89, 0xd8, 0x9e, 0xcd, 0xa5, 0x26, 0xcf, 0xfb, 0x26, 0x74, 0xf1, 0x7b, 0xb1, 0xc2, 0x30, 0x90, 0x55, 0x4b, 0x13, 0x40, 0x84, 0x97, 0x96, 0xa6, 0xd4, 0x44, 0x46, 0x0b, 0xb4, 0x19, 0x42, 0x7e, 0x93, 0xe6, 0x58, 0x5b, 0x0f, 0x4f, 0x06, 0x5a, 0xd8, 0x7e, 0xe6, 0xed, 0xf5, 0x4b, 0xe6, 0x18, 0x8a, 0x1d, 0xd5, 0xac, 0xe1, 0x36, 0x4d, 0xef, 0xa5, 0x61, 0xf7, 0x4e, 0x26, 0x76, 0x9c, 0x9b, 0x29, 0x1e, 0xe7, 0x55, 0x52, 0x76, 0x50, 0x1c, 0x6a, 0x49, 0x08, 0x0d, 0xa0, 0x92, 0x4f, 0x37, 0x92, 0xc2, 0xa7, 0x28, 0xa5, 0x20, 0x07, 0xb1, 0xc0, 0x7c, 0x95, 0x57, 0x8f, 0xed, 0xaf, 0x40, 0x39, 0x96, 0x23, 0x9e, 0x9c, 0x55, 0xa9, 0xa4, 0x4c, 0x3d, 0xfc, 0xc3, 0x7c, 0xdf, 0x03, 0xfb, 0x48, 0x5d, 0xb5, 0xa0, 0x8d, 0xff, 0x15, 0xa7, 0xa4, 0xf7, 0xb7, 0xf1, 0x54, 0x74, 0x2e, 0x84, 0x31, 0x56, 0x4d, 0xc1, 0x7d, 0xbd, 0x43, 0x2e, 0x10, 0x33, 0x7c, 0x22, 0x76, 0xfc, 0xfd, 0x9d, 0x70, 0xf7, 0xc3, 0xd5, 0x70, 0x39, 0x3a, 0x0c, 0x19, 0xf6, 0x40, 0x51, 0xc7, 0x3a, 0x87, 0x0e, 0x20, 0x55, 0x84, 0x10, 0x65, 0x31, 0xd1, 0xfd, 0x2a, 0x1d, 0xd1, 0xc9, 0xd0, 0xfc, 0xe1, 0x4f, 0xfa, 0xaa, 0x07, 0x7b, 0xb7, 0xe2, 0x60, 0x25, 0x1e, 0xed, 0x6c, 0x62, 0xbc, 0x6e, 0xdc, 0x24, 0x22, 0x51, 0x94, 0x40, 0xc2, 0x24, 0x4e, 0xba, 0x38, 0x40, 0x46, 0xb0, 0xed, 0xda, 0xa6, 0xcf, 0x2c, 0x1c, 0x7e, 0xee, 0xbf, 0xcd, 0x78, 0xfc, 0xae, 0x18, 0xb8, 0x22, 0x90, 0x55, 0x2b, 0x59, 0xc0, 0x46, 0x3d, 0xc4, 0x50, 0x61, 0x8b, 0xa6, 0x7c, 0x77, 0x0d, 0xec, 0x0e, 0x22, 0x9b, 0x84, 0x60, 0x93, 0x6c, 0xa8, 0x19, 0x56, 0x2b, 0xcb, 0x36, 0x96, 0x9c, 0x8f, 0xf7, 0x0b, 0xf1, 0x13, 0xc1, 0x16, 0x71, 0xe0, 0x0b, 0x94, 0x13, 0x55, 0xbf, 0x01, 0xad, 0x54, 0xb0, 0x5c, 0xfe, 0x2a, 0x04, 0x8b, 0x38, 0x72, 0x8c, 0xbd, 0xd1, 0xb4, 0x98, 0x09, 0xe1, 0xf2, 0x07, 0xac, 0xa3, 0x09, 0x8d, 0x99, 0x42, 0xee, 0xc4, 0x7d, 0x6c, 0x9d, 0x41, 0x3b, 0x37, 0xc9, 0x14, 0xfe, 0xdd, 0x38, 0xac, 0xd5, 0xff, 0xe4, 0x96, 0xca, 0xc7, 0x57, 0xc2, 0xef, 0x8b, 0x77, 0xbd, 0x84, 0x03, 0xd1, 0x4b, 0x1f, 0xc9, 0x8a, 0x90, 0x3f, 0xe2, 0xb9, 0x79, 0x46, 0x82, 0x33, 0xa7, 0xf2, 0xae, 0xd6, 0xf8, 0xd5, 0x09, 0xd8, 0x74, 0xe1, 0xdc, 0xe0, 0x51, 0x49, 0xaf, 0x9d, 0xf3, 0xfe, 0x45, 0x95, 0xc7, 0x1e, 0x8b, 0xc4, 0x63, 0xde, 0xe9, 0x38, 0x4d, 0x5e, 0x05, 0x05, 0xd2, 0xa6, 0xb0, 0xa2, 0xb8, 0xa1, 0xed, 0x62, 0x16, 0xaa, 0xae, 0x9d, 0xcc, 0x76, 0x02, 0x48, 0x7a, 0x4c, 0x08, 0x51, 0xfd, 0xf0, 0x96, 0x29, 0xc1, 0xe9, 0x91, 0x18, 0x80, 0x9a, 0x95, 0x44, 0xa6, 0x57, 0x7a, 0xf9, 0xf9, 0x15, 0xd1, 0xe6, 0x5d, 0x81, 0x62, 0x20, 0xc4, 0x8c, 0x84, 0x90, 0xfa, 0x9b, 0x70, 0xda, 0x42, 0x2a, 0xd6, 0x80, 0x02, 0x23, 0xd6, 0xd8, 0xc3, 0x40, 0xf9, 0xea, 0xb2, 0xcc, 0x7e, 0x14, 0x93, 0x62, 0x12, 0x4a, 0x30, 0x0b, 0x40, 0xcb, 0xb8, 0xc0, 0xa6, 0x5d, 0xa3, 0x01, 0xdb, 0xba, 0x93, 0x1b, 0xa5, 0x64, 0xf3, 0x59, 0x73, 0xca, 0x8b, 0xf2, 0xd1, 0xed, 0xb5, 0x6c, 0x19, 0x46, 0x61, 0x95, 0x5b, 0x3b, 0x68, 0x38, 0x1f, 0xa1, 0x5d, 0x4b, 0x8d, 0xc6, 0xad, 0xa1, 0xa5, 0xce, 0xbd, 0xa3, 0xa4, 0xcc, 0xc5, 0x51, 0x23, 0xe0, 0x05, 0x7f, 0x4f, 0x82, 0x10, 0x41, 0x93, 0x7d, 0xd5, 0x49, 0x20, 0x9c, 0x82, 0xe1, 0x16, 0x57, 0x0b, 0xc9, 0x08, 0xa2, 0x8e, 0x32, 0x99, 0xa9, 0x44, 0x14, 0x43, 0x49, 0x8f, 0x74, 0xb3, 0xcc, 0x88, 0xe1, 0xa6, 0x2d, };
18675 static const u8 ed25519_812_test_vectors_expected_sig[] = {
18676 	0xa7, 0xf9, 0xd0, 0x8b, 0xa1, 0x41, 0x83, 0xef, 0x24, 0x7f, 0x2c, 0x25, 0xfe, 0xcc, 0x2b, 0x83, 0xed, 0xa6, 0xde, 0x58, 0x02, 0x2e, 0x46, 0x6c, 0xe7, 0x8f, 0xcf, 0x50, 0xf7, 0x1c, 0xe2, 0x61, 0x62, 0x44, 0x65, 0x62, 0xee, 0xa4, 0x5d, 0x63, 0xa2, 0x1c, 0x3b, 0x22, 0x56, 0x1f, 0xd4, 0x68, 0x00, 0x58, 0xac, 0xb8, 0x25, 0x40, 0x7a, 0x15, 0x40, 0x8f, 0x27, 0x13, 0x61, 0xa1, 0x46, 0x0f, };
18677 static const ec_test_case ed25519_812_test_case = {
18678 	.name = "EDDSA25519-SHA512/wei25519 812",
18679 	.ec_str_p = &wei25519_str_params,
18680 	.priv_key = ed25519_812_test_vectors_priv_key,
18681 	.priv_key_len = sizeof(ed25519_812_test_vectors_priv_key),
18682 	.nn_random = NULL,
18683 	.hash_type = SHA512,
18684 	.msg = (const char *)ed25519_812_test_vectors_message,
18685 	.msglen = sizeof(ed25519_812_test_vectors_message),
18686 	.sig_type = EDDSA25519,
18687 	.exp_sig = ed25519_812_test_vectors_expected_sig,
18688 	.exp_siglen = sizeof(ed25519_812_test_vectors_expected_sig),
18689 	.adata = NULL,
18690 	.adata_len = 0
18691 };
18692 
18693 /************************************************/
18694 static const u8 ed25519_813_test_vectors_priv_key[] = {
18695 	0x43, 0x10, 0x3d, 0xf0, 0x1a, 0x48, 0xa0, 0x3c, 0x57, 0xf3, 0x2f, 0x52, 0xd7, 0x0c, 0x68, 0x49, 0xee, 0x44, 0x58, 0x0b, 0x2a, 0xb4, 0xee, 0x72, 0xd5, 0x48, 0xd8, 0x48, 0x13, 0x4f, 0x7c, 0xeb, };
18696 static const u8 ed25519_813_test_vectors_message[] = {
18697 	0x73, 0x8c, 0xbf, 0x06, 0xd0, 0x0d, 0x4d, 0xcd, 0x5e, 0x5f, 0x24, 0x3a, 0x1c, 0x18, 0xdd, 0x5e, 0xc2, 0x02, 0x78, 0x88, 0x46, 0x95, 0xa1, 0xcf, 0x3b, 0xea, 0x67, 0xbb, 0x5b, 0x05, 0xdd, 0x7e, 0x60, 0xa2, 0xa2, 0x4f, 0xd3, 0x25, 0xbe, 0x6b, 0xf4, 0x6b, 0x46, 0x28, 0x73, 0xec, 0x90, 0x7f, 0x9d, 0xe8, 0x8d, 0xc2, 0xc7, 0x62, 0x62, 0x0b, 0x7e, 0x0e, 0xf7, 0x27, 0x65, 0xd4, 0xbd, 0xa6, 0x62, 0x45, 0x49, 0x93, 0xc8, 0x28, 0xa1, 0x74, 0x6e, 0x9e, 0xd8, 0xd1, 0x9d, 0xff, 0x43, 0xc4, 0xc4, 0x85, 0x27, 0xac, 0x84, 0x5f, 0x21, 0x86, 0xa4, 0xad, 0x7c, 0x1d, 0x99, 0x2a, 0x16, 0x24, 0x5c, 0xd5, 0x73, 0x07, 0x3e, 0x09, 0x40, 0xdc, 0xee, 0xd3, 0x68, 0x11, 0x0b, 0xb5, 0xfd, 0x0a, 0x4c, 0x88, 0x34, 0xce, 0x88, 0xa7, 0x71, 0x25, 0xb9, 0x14, 0x73, 0x93, 0xc8, 0xb5, 0x8c, 0xb1, 0x6e, 0x5e, 0xbd, 0xc1, 0x82, 0x44, 0xeb, 0xfa, 0x48, 0xba, 0xba, 0x46, 0x97, 0x3f, 0xdc, 0xd4, 0x85, 0xb1, 0xb2, 0xe5, 0xf3, 0xb0, 0xe7, 0x09, 0x92, 0xcf, 0x19, 0x99, 0x58, 0x06, 0x38, 0xd8, 0x7f, 0x1f, 0x5b, 0x27, 0xc4, 0xd7, 0xf9, 0x1d, 0xec, 0xf3, 0x7d, 0xe2, 0xe7, 0x34, 0xe3, 0x19, 0x55, 0x35, 0xc6, 0x31, 0x08, 0x2b, 0x3e, 0xba, 0xa8, 0xce, 0x30, 0xa9, 0xc2, 0xc2, 0xdb, 0x01, 0x6d, 0x7d, 0x35, 0x47, 0xe6, 0x21, 0x61, 0x88, 0x50, 0xe2, 0x20, 0x40, 0x03, 0x8d, 0x0f, 0xe0, 0xfa, 0xea, 0x2f, 0x9b, 0xf5, 0x10, 0xb6, 0x82, 0xc4, 0xfd, 0x14, 0x75, 0x0e, 0x89, 0xb4, 0xc1, 0x99, 0xef, 0x0c, 0x99, 0x05, 0x00, 0x54, 0x3e, 0xee, 0xab, 0x5f, 0x0b, 0x50, 0x7a, 0x31, 0x31, 0x99, 0xc2, 0xa2, 0xa0, 0x26, 0x2d, 0x6d, 0x81, 0x4c, 0xbc, 0x09, 0x33, 0xc5, 0x92, 0xe2, 0x56, 0xc3, 0xe2, 0x9d, 0x52, 0x4b, 0x06, 0x6e, 0xa5, 0xa4, 0x54, 0x33, 0x61, 0xa1, 0x04, 0x50, 0xe0, 0xaa, 0x67, 0x5c, 0x61, 0x40, 0x8f, 0x30, 0x7f, 0x26, 0xee, 0x58, 0x96, 0x9d, 0x63, 0x27, 0x8f, 0x13, 0x5b, 0x7d, 0xcb, 0x66, 0x6b, 0x93, 0xf2, 0xca, 0xcf, 0xd8, 0x38, 0x73, 0x47, 0x1e, 0x97, 0x4a, 0x28, 0x6b, 0x09, 0x02, 0x3f, 0x50, 0x15, 0xfa, 0x1a, 0xaf, 0x18, 0xbf, 0xbf, 0xa5, 0xf7, 0x43, 0x85, 0xd0, 0xdf, 0x6b, 0x9a, 0xdd, 0x51, 0x6f, 0xfc, 0x0c, 0x31, 0x13, 0xe3, 0x7e, 0x09, 0x78, 0x38, 0x64, 0x6a, 0xc9, 0x30, 0x54, 0xff, 0x4d, 0x96, 0x02, 0x06, 0x67, 0x44, 0xba, 0x33, 0x96, 0x95, 0x3f, 0xd7, 0x81, 0x68, 0x13, 0x01, 0x70, 0xbb, 0x27, 0x5c, 0x15, 0x2b, 0xdd, 0x36, 0x6f, 0x73, 0x06, 0x5c, 0x0a, 0x7a, 0xd7, 0xad, 0x00, 0x75, 0x8c, 0xb9, 0x9a, 0x7a, 0xc1, 0xb7, 0x80, 0x9d, 0x26, 0xdf, 0xaa, 0xc7, 0x58, 0x46, 0x82, 0x01, 0xee, 0xb6, 0x0d, 0xea, 0x36, 0x8c, 0x33, 0xf2, 0x57, 0xaf, 0xe2, 0xf1, 0xb4, 0xc0, 0x2e, 0x37, 0xba, 0xfe, 0x40, 0xf5, 0xd7, 0xfd, 0x40, 0xc8, 0x7d, 0x1c, 0x56, 0xa0, 0xcb, 0x28, 0xe9, 0xd2, 0x83, 0x69, 0xa3, 0x92, 0x4b, 0xce, 0xf8, 0xb6, 0xd9, 0x99, 0xdc, 0xf4, 0x29, 0x4d, 0xd8, 0xc4, 0x14, 0x3d, 0x75, 0xc6, 0xc2, 0x5b, 0x5a, 0x45, 0x44, 0x48, 0x8d, 0xde, 0x72, 0x52, 0x48, 0xc7, 0x8d, 0x93, 0xc1, 0x5b, 0x81, 0x5b, 0x01, 0xcb, 0xd0, 0xf3, 0x1d, 0x1b, 0x00, 0xac, 0x04, 0x83, 0x7e, 0xf8, 0x5b, 0x40, 0x03, 0xfc, 0x96, 0xd4, 0x45, 0x7a, 0xc5, 0xa0, 0x23, 0x62, 0x3e, 0x67, 0xb6, 0x6d, 0xa4, 0x70, 0x0a, 0x08, 0x59, 0xf8, 0x3f, 0xdc, 0xcd, 0x3c, 0x7a, 0xae, 0x09, 0xde, 0x09, 0xa0, 0x57, 0xe0, 0x0d, 0xb4, 0x4a, 0x2a, 0x6a, 0xac, 0xaa, 0x21, 0x74, 0x6a, 0x49, 0xb8, 0x22, 0x46, 0x89, 0xa5, 0xcc, 0x18, 0x54, 0xba, 0x3d, 0xc4, 0xaa, 0x2a, 0xa3, 0x45, 0x24, 0xe7, 0xa5, 0xa8, 0x9d, 0x11, 0xee, 0xa3, 0x56, 0xaa, 0xea, 0x5e, 0xf5, 0xfb, 0xf5, 0x42, 0xc9, 0x9f, 0x54, 0x4d, 0xb9, 0x40, 0xf5, 0x08, 0x68, 0x38, 0xee, 0x2a, 0xb2, 0x18, 0xb8, 0xd3, 0xf2, 0xe1, 0x07, 0xd0, 0xb2, 0x9d, 0x4b, 0x04, 0x83, 0x0e, 0xed, 0x79, 0xc0, 0x76, 0x8e, 0x02, 0xc2, 0x84, 0x4b, 0x3c, 0xba, 0x32, 0x68, 0x95, 0xf4, 0xab, 0x38, 0xa3, 0x99, 0x4b, 0x83, 0xab, 0x30, 0x60, 0x0f, 0xf5, 0x11, 0xcc, 0xb5, 0x95, 0x99, 0x2f, 0x8c, 0xc0, 0xd2, 0x95, 0x48, 0x07, 0x97, 0x2d, 0xa3, 0x65, 0xb0, 0x6f, 0xbd, 0xab, 0x53, 0x9b, 0x2e, 0x03, 0x59, 0x8b, 0x34, 0xe5, 0x3c, 0xfc, 0xf9, 0x39, 0x90, 0xb9, 0x7a, 0xac, 0x1d, 0x32, 0x97, 0x83, 0x36, 0x6d, 0x45, 0x1f, 0x97, 0x2b, 0x8d, 0x8a, 0x00, 0xb6, 0xb8, 0xec, 0xdb, 0x37, 0x27, 0x96, 0x44, 0xce, 0xc1, 0x44, 0x7c, 0x09, 0x98, 0xee, 0x4f, 0x70, 0x90, 0xf3, 0x4c, 0x9c, 0xc8, 0x53, 0x05, 0x90, 0xca, 0xe7, 0x65, 0x36, 0x0a, 0xad, 0xb0, 0xab, 0x31, 0x35, 0x00, 0x49, 0x41, 0xc9, 0x23, 0x02, 0xcb, 0xb2, 0xb3, 0x50, 0xa1, 0x4e, 0x8f, 0x30, 0xaf, 0x53, 0x25, 0xc2, 0xb4, 0x38, 0x00, 0x5e, 0x3a, 0x9d, 0x45, 0x85, 0xe6, 0x32, 0x65, 0xc3, 0x27, 0xba, 0x72, 0x57, 0x54, 0xb3, 0x32, 0x56, 0x91, 0x7f, 0xb9, 0x65, 0xae, 0x9f, 0x02, 0xed, 0x21, 0x26, 0xb4, 0x81, 0x47, 0x3d, 0xc0, 0xe9, 0x31, 0xc2, 0x52, 0x2b, 0xf0, 0x0f, 0xe6, 0xa2, 0xec, 0x95, 0xc7, 0x92, 0x24, 0x7b, 0x1e, 0x03, 0x39, 0x61, 0x12, 0xf7, 0x83, 0x07, 0x0e, 0x2f, 0xe6, 0xc2, 0xcb, 0x98, 0x22, 0x50, 0xd1, 0x3f, 0x2d, 0x54, 0x60, 0xc7, 0x44, 0xfd, 0xe4, 0x53, 0x23, 0xe6, 0x31, 0xcc, 0xcb, 0x54, 0x0c, 0xd7, 0x25, 0xf2, 0xc5, 0x5a, 0x70, 0x58, 0xf2, 0x30, 0xe8, 0x2b, 0x79, 0xf3, 0x66, 0xaf, 0xcb, 0xb0, 0x25, 0xb4, 0x92, 0x55, 0x43, 0x95, };
18698 static const u8 ed25519_813_test_vectors_expected_sig[] = {
18699 	0x19, 0x54, 0x47, 0xbe, 0xb1, 0xde, 0x4a, 0x7e, 0x36, 0xea, 0x89, 0xa6, 0xce, 0x3c, 0x99, 0xbc, 0xc8, 0x94, 0x11, 0xdf, 0x5e, 0x0b, 0x15, 0xf7, 0xba, 0x0b, 0x1d, 0x11, 0x0c, 0x45, 0x6a, 0xbc, 0x6b, 0x3f, 0x5f, 0x1d, 0xa6, 0x10, 0x6e, 0xd8, 0x87, 0x86, 0x4b, 0xa5, 0x6a, 0xab, 0x46, 0x6a, 0x8a, 0x63, 0xb3, 0x35, 0xcf, 0xcf, 0x4c, 0x64, 0xd6, 0x5c, 0x0e, 0x6f, 0xb4, 0x80, 0xb4, 0x01, };
18700 static const ec_test_case ed25519_813_test_case = {
18701 	.name = "EDDSA25519-SHA512/wei25519 813",
18702 	.ec_str_p = &wei25519_str_params,
18703 	.priv_key = ed25519_813_test_vectors_priv_key,
18704 	.priv_key_len = sizeof(ed25519_813_test_vectors_priv_key),
18705 	.nn_random = NULL,
18706 	.hash_type = SHA512,
18707 	.msg = (const char *)ed25519_813_test_vectors_message,
18708 	.msglen = sizeof(ed25519_813_test_vectors_message),
18709 	.sig_type = EDDSA25519,
18710 	.exp_sig = ed25519_813_test_vectors_expected_sig,
18711 	.exp_siglen = sizeof(ed25519_813_test_vectors_expected_sig),
18712 	.adata = NULL,
18713 	.adata_len = 0
18714 };
18715 
18716 /************************************************/
18717 static const u8 ed25519_814_test_vectors_priv_key[] = {
18718 	0xf9, 0x13, 0x9e, 0x57, 0x9f, 0xa9, 0x6e, 0xbd, 0x62, 0x87, 0xdb, 0x3b, 0xab, 0xcd, 0xa6, 0x0f, 0x92, 0xe7, 0x31, 0x53, 0x56, 0x6f, 0x92, 0x4c, 0xb5, 0xde, 0x04, 0xde, 0x44, 0x93, 0x48, 0x1e, };
18719 static const u8 ed25519_814_test_vectors_message[] = {
18720 	0xb3, 0x30, 0x76, 0x4d, 0xdc, 0x62, 0x8e, 0x4a, 0xd6, 0x7a, 0xa4, 0x98, 0x2a, 0xe8, 0x6d, 0x45, 0x81, 0x07, 0x1c, 0x19, 0x3e, 0xc3, 0xc5, 0x8f, 0x81, 0x3d, 0x79, 0x21, 0xb8, 0x4d, 0x2a, 0x54, 0x56, 0x2b, 0xd8, 0x74, 0x17, 0xae, 0x1d, 0xe5, 0x90, 0xa1, 0xa4, 0x8c, 0x4e, 0xc7, 0xd5, 0x56, 0xad, 0x93, 0x1d, 0x65, 0xc0, 0x54, 0x3f, 0xdf, 0x06, 0x07, 0xc7, 0x49, 0x85, 0x9e, 0xe1, 0x2f, 0x99, 0x52, 0x02, 0x0c, 0x19, 0x5c, 0xf8, 0x74, 0x60, 0x95, 0xe1, 0x08, 0x7c, 0xc6, 0xc3, 0xc8, 0xef, 0x9d, 0x24, 0x05, 0x25, 0x60, 0xce, 0x81, 0x3d, 0x61, 0x39, 0xb7, 0xa7, 0x5c, 0x8f, 0x4b, 0x8e, 0xa3, 0x0a, 0x9c, 0x4a, 0xb8, 0x88, 0xd0, 0xa6, 0x34, 0x1c, 0x99, 0xab, 0xd3, 0x5e, 0x09, 0x03, 0xbf, 0xe5, 0x6c, 0x93, 0x15, 0x23, 0x40, 0xc4, 0x12, 0x76, 0xd7, 0xf2, 0x4e, 0x09, 0x12, 0xb1, 0x2a, 0x4d, 0xb3, 0xd7, 0xee, 0x44, 0x84, 0xdf, 0xa5, 0x3a, 0xfc, 0x0b, 0x1a, 0xea, 0x14, 0x09, 0xd1, 0xe0, 0x32, 0x8a, 0xa1, 0xc8, 0x60, 0x41, 0x27, 0xca, 0x2e, 0xb1, 0xa5, 0xe8, 0x1b, 0xf3, 0x1f, 0x8c, 0x7a, 0x51, 0xc6, 0x05, 0x2c, 0x53, 0x4e, 0xfe, 0x6b, 0x3d, 0x0e, 0xe7, 0x4f, 0xf5, 0xa9, 0xb1, 0x1c, 0x61, 0x57, 0xe3, 0x64, 0x77, 0xef, 0xa9, 0x38, 0x2f, 0x57, 0x51, 0xbe, 0x8c, 0x8c, 0x64, 0x54, 0xc4, 0x46, 0xd6, 0xf8, 0xdc, 0x7e, 0x92, 0x95, 0x25, 0xcc, 0x3d, 0xe7, 0x8c, 0xb1, 0xba, 0x4a, 0xba, 0x9b, 0xd4, 0xbe, 0x15, 0x26, 0x10, 0x43, 0x75, 0x82, 0xc9, 0x65, 0xee, 0xa4, 0x8c, 0xbd, 0x4c, 0xaa, 0x6f, 0x30, 0x8f, 0x85, 0xf4, 0xf8, 0xd0, 0x06, 0xa0, 0x42, 0xf6, 0x19, 0x20, 0x07, 0x62, 0xe1, 0xbb, 0x9b, 0xa4, 0x22, 0xe6, 0x54, 0x75, 0xb3, 0x3a, 0x94, 0x94, 0x29, 0x8c, 0xfb, 0xb7, 0x5a, 0x15, 0x2b, 0x36, 0xd2, 0xa0, 0x55, 0x01, 0x80, 0x77, 0x05, 0xb9, 0x52, 0x76, 0x53, 0x50, 0xcd, 0x14, 0x14, 0x1d, 0x35, 0xd4, 0x98, 0x66, 0x92, 0xd6, 0xc3, 0xbc, 0xfc, 0x6d, 0x61, 0xdf, 0x00, 0x52, 0xa6, 0x20, 0xaa, 0xb8, 0xcc, 0x13, 0x20, 0x5e, 0x75, 0x4c, 0x16, 0xf9, 0x3e, 0xca, 0x79, 0x20, 0xbb, 0xea, 0x51, 0x57, 0xef, 0x11, 0x2f, 0x0b, 0x64, 0xc1, 0x05, 0x4f, 0x90, 0xa5, 0xdd, 0xc1, 0x75, 0xa8, 0x9e, 0x29, 0x24, 0x2f, 0x57, 0x64, 0x6e, 0x74, 0xcc, 0x88, 0x5e, 0x81, 0xa1, 0xcc, 0x14, 0x4c, 0x3d, 0x78, 0x2d, 0x11, 0x52, 0xa9, 0xe4, 0xcf, 0xe7, 0x6c, 0xb3, 0xff, 0xab, 0xe7, 0xdb, 0xe6, 0x03, 0xfb, 0x38, 0x69, 0xec, 0xa8, 0x69, 0x96, 0x98, 0x70, 0x9c, 0xc8, 0x7f, 0xc9, 0x61, 0xc1, 0xe2, 0x99, 0xcf, 0xca, 0x22, 0xe3, 0x24, 0x2e, 0xae, 0x78, 0x8c, 0xff, 0x11, 0xbf, 0xca, 0x61, 0x02, 0x67, 0x45, 0xf4, 0x97, 0x62, 0x25, 0xb2, 0x6e, 0xe2, 0x00, 0xc4, 0xf1, 0x91, 0x0c, 0x4b, 0x83, 0xdf, 0x5c, 0xe4, 0x6e, 0xf4, 0x87, 0xd7, 0x48, 0xd9, 0xc4, 0xc5, 0x02, 0x14, 0x1b, 0x78, 0x74, 0xca, 0xf4, 0x1e, 0x5a, 0x29, 0x7b, 0x24, 0x8c, 0x2b, 0xac, 0x69, 0x90, 0xa1, 0x5b, 0x07, 0xb4, 0xcf, 0x81, 0x0e, 0x59, 0x28, 0x74, 0x42, 0xd9, 0xa3, 0x69, 0x6c, 0x02, 0xe8, 0xd7, 0x32, 0x4d, 0x3c, 0xf7, 0x30, 0xdd, 0xa5, 0x40, 0x53, 0x6b, 0xeb, 0x13, 0xcf, 0xde, 0xae, 0x61, 0x80, 0xdd, 0x74, 0x84, 0x83, 0x2d, 0xfa, 0x94, 0xe9, 0x4a, 0xa6, 0xcb, 0xa1, 0x17, 0xaa, 0xe1, 0x72, 0x70, 0xf4, 0x8f, 0x93, 0xb2, 0xf9, 0x8a, 0xe9, 0x58, 0x17, 0x18, 0x16, 0x3f, 0x44, 0x63, 0x54, 0x6c, 0x0a, 0xe0, 0xf2, 0x79, 0xc3, 0x6b, 0x92, 0xbe, 0xe6, 0x6f, 0x1c, 0xa2, 0xd6, 0xa4, 0xf7, 0x26, 0xd2, 0xdf, 0xee, 0x0b, 0xc1, 0x1c, 0x1d, 0x8a, 0x1f, 0xa6, 0x2c, 0x3c, 0xc8, 0xab, 0xa2, 0x66, 0xb9, 0x87, 0x59, 0x28, 0x6c, 0x10, 0x68, 0x48, 0x3b, 0x23, 0x76, 0xb4, 0x03, 0xc8, 0x87, 0xfb, 0xb6, 0x57, 0xdc, 0x0f, 0x25, 0x5d, 0xea, 0x90, 0xdb, 0xd2, 0x33, 0x08, 0xf7, 0xe0, 0xe8, 0x42, 0xb4, 0x98, 0xa8, 0xdf, 0xc7, 0xc9, 0xcd, 0x5a, 0xef, 0x0e, 0x87, 0xd5, 0x6b, 0xe4, 0x0d, 0x50, 0xfc, 0x1d, 0xd4, 0xc0, 0xaa, 0x7d, 0xee, 0x55, 0xae, 0xbe, 0x4d, 0x6b, 0x6a, 0x52, 0x05, 0x39, 0x62, 0xb8, 0x7b, 0x0f, 0x2e, 0xe0, 0x9a, 0x90, 0x81, 0x61, 0x55, 0x33, 0x3d, 0x5c, 0x57, 0xa1, 0x47, 0x24, 0xe0, 0x01, 0xbc, 0x3d, 0xed, 0x17, 0x84, 0x3b, 0x76, 0xe2, 0xc4, 0x7a, 0x17, 0x63, 0x39, 0xc8, 0xde, 0xfc, 0x54, 0xb5, 0x5b, 0x23, 0x58, 0xae, 0x7d, 0x01, 0xb0, 0xf6, 0xe0, 0x8f, 0x31, 0x21, 0x6a, 0xe9, 0x03, 0x40, 0x69, 0x41, 0x68, 0xa5, 0xa7, 0x9e, 0xe8, 0x83, 0xea, 0x78, 0x58, 0x00, 0x7d, 0x17, 0xc3, 0x73, 0x59, 0xc9, 0x9d, 0x65, 0x97, 0xef, 0xe4, 0x60, 0xc1, 0xa2, 0xf7, 0x73, 0x8a, 0xc3, 0x2c, 0x5e, 0xb5, 0xe3, 0x9e, 0x50, 0x0c, 0x49, 0xc0, 0xdf, 0xf9, 0xc4, 0x65, 0x9e, 0x8c, 0x50, 0xcc, 0x5c, 0xa7, 0x9d, 0x8b, 0xa4, 0xe5, 0x97, 0x2d, 0x67, 0x22, 0x54, 0x68, 0xfb, 0xa6, 0x41, 0x67, 0xa6, 0xb2, 0xc6, 0xf3, 0x68, 0x93, 0x5c, 0x7a, 0x04, 0x9d, 0x35, 0xd3, 0x55, 0xc7, 0x67, 0x25, 0x20, 0xd3, 0xc9, 0xe4, 0xe4, 0x3c, 0x67, 0x1c, 0x3c, 0xb8, 0xde, 0xe2, 0x59, 0x04, 0x74, 0x95, 0xde, 0x0f, 0x56, 0xdd, 0x71, 0x91, 0xd5, 0xbd, 0x4b, 0xbd, 0x29, 0x51, 0x7e, 0x36, 0x47, 0x92, 0xff, 0x89, 0xd3, 0x37, 0x99, 0xb6, 0xe7, 0x81, 0xc2, 0x01, 0x93, 0xf5, 0xa3, 0x16, 0xfb, 0x40, 0xde, 0x74, 0xfe, 0xe2, 0xac, 0xc2, 0x5e, 0x47, 0xf5, 0x12, 0x21, 0x4d, 0xe3, 0xb1, 0xe9, 0xb3, 0x82, 0xa8, 0x69, 0x29, 0xc1, 0x57, 0x3d, 0x37, 0x24, 0xc2, 0x50, 0x17, 0xc0, 0xe5, };
18721 static const u8 ed25519_814_test_vectors_expected_sig[] = {
18722 	0x05, 0x1d, 0x8d, 0x7f, 0x0b, 0x68, 0xd2, 0xee, 0xc7, 0x2c, 0x81, 0xad, 0xfc, 0xfb, 0x31, 0xae, 0x85, 0x58, 0xf6, 0x0a, 0xb6, 0x3c, 0x9f, 0x56, 0x52, 0xa8, 0xdf, 0x63, 0x8f, 0x66, 0x6f, 0x1e, 0xbc, 0x0c, 0x6e, 0x0b, 0x41, 0x19, 0x53, 0xbc, 0xda, 0x6b, 0x51, 0x51, 0xb2, 0xb9, 0x3a, 0x39, 0xe3, 0xc5, 0x33, 0x0a, 0x85, 0x73, 0xe1, 0x68, 0x79, 0x22, 0x72, 0xab, 0xd3, 0x6c, 0x81, 0x0a, };
18723 static const ec_test_case ed25519_814_test_case = {
18724 	.name = "EDDSA25519-SHA512/wei25519 814",
18725 	.ec_str_p = &wei25519_str_params,
18726 	.priv_key = ed25519_814_test_vectors_priv_key,
18727 	.priv_key_len = sizeof(ed25519_814_test_vectors_priv_key),
18728 	.nn_random = NULL,
18729 	.hash_type = SHA512,
18730 	.msg = (const char *)ed25519_814_test_vectors_message,
18731 	.msglen = sizeof(ed25519_814_test_vectors_message),
18732 	.sig_type = EDDSA25519,
18733 	.exp_sig = ed25519_814_test_vectors_expected_sig,
18734 	.exp_siglen = sizeof(ed25519_814_test_vectors_expected_sig),
18735 	.adata = NULL,
18736 	.adata_len = 0
18737 };
18738 
18739 /************************************************/
18740 static const u8 ed25519_815_test_vectors_priv_key[] = {
18741 	0xc8, 0xee, 0x95, 0x4d, 0xb5, 0xa1, 0x1b, 0x29, 0x2e, 0xd9, 0x77, 0x64, 0xfa, 0xe6, 0xb2, 0x83, 0x05, 0x1d, 0xb5, 0x7d, 0xcd, 0xc0, 0xaa, 0x0d, 0xf5, 0x39, 0x3b, 0xb6, 0x0c, 0x11, 0x2e, 0xd3, };
18742 static const u8 ed25519_815_test_vectors_message[] = {
18743 	0x7b, 0xa3, 0xfb, 0x56, 0x83, 0x15, 0xaa, 0x81, 0xe2, 0x1f, 0x19, 0x77, 0x80, 0xed, 0xc2, 0xc6, 0xea, 0x26, 0xd8, 0xd0, 0x6a, 0x43, 0x78, 0x91, 0x2f, 0xca, 0x23, 0x01, 0xcf, 0x1e, 0xab, 0x3d, 0x80, 0x3c, 0x84, 0x69, 0xde, 0xdd, 0xf3, 0x76, 0x70, 0x3d, 0xdb, 0x7c, 0xe0, 0x6a, 0x77, 0xda, 0xb2, 0x0e, 0x02, 0x34, 0x4f, 0xad, 0xcc, 0x50, 0x02, 0x2a, 0xb3, 0xc7, 0x13, 0xcd, 0x03, 0xc1, 0xda, 0xa9, 0x3f, 0x1c, 0x7e, 0xa5, 0x72, 0x62, 0x9f, 0x61, 0x0b, 0x5e, 0x3c, 0x51, 0x41, 0x1b, 0xb8, 0xc1, 0x96, 0x94, 0xbb, 0xce, 0x90, 0x3c, 0xac, 0x47, 0x05, 0xf9, 0xb5, 0xdd, 0x0f, 0x47, 0xbc, 0x5d, 0x0a, 0xa3, 0x25, 0x3f, 0x90, 0x88, 0x70, 0x29, 0x90, 0x27, 0xff, 0xbd, 0x34, 0x49, 0xee, 0xba, 0xd4, 0x53, 0x32, 0xb5, 0xd0, 0xc4, 0xf5, 0x33, 0xdb, 0xed, 0x18, 0xa9, 0x9a, 0x24, 0x98, 0xb9, 0x16, 0x4e, 0x24, 0x5f, 0xb6, 0x5c, 0x0a, 0xfa, 0x0b, 0x05, 0x37, 0x03, 0xa0, 0xcf, 0x95, 0x94, 0x0a, 0xc7, 0xa0, 0x19, 0x5d, 0x4f, 0x70, 0x46, 0x60, 0x9c, 0xf0, 0x43, 0x71, 0x33, 0x87, 0x06, 0xb9, 0xb1, 0x98, 0x6c, 0x0f, 0x11, 0x81, 0x75, 0xd2, 0xcd, 0xfc, 0xe7, 0x4a, 0x6f, 0x88, 0x65, 0x98, 0x25, 0x85, 0x4e, 0x94, 0xec, 0xe5, 0x8f, 0x51, 0x57, 0x63, 0x6d, 0x62, 0x35, 0xb7, 0x6d, 0x32, 0x74, 0x5a, 0x2a, 0x81, 0xa9, 0x67, 0x1a, 0x8f, 0x86, 0x02, 0x7b, 0xa9, 0xe0, 0x17, 0x63, 0x88, 0x8f, 0xc1, 0x71, 0xce, 0xf7, 0xc4, 0x51, 0xc3, 0x60, 0x72, 0xbc, 0x74, 0x99, 0x83, 0x9d, 0x43, 0x1c, 0xf1, 0x8c, 0xd7, 0xc6, 0xc9, 0xfb, 0xa3, 0xaa, 0x71, 0x2a, 0x05, 0x43, 0x28, 0xcc, 0xd6, 0x2b, 0xe4, 0x82, 0x0a, 0xbd, 0x5e, 0x78, 0x21, 0x62, 0x76, 0x46, 0x11, 0xd4, 0x53, 0x9b, 0xa2, 0xce, 0xbd, 0xc2, 0x09, 0xb3, 0xf4, 0xe4, 0xb6, 0x9c, 0x3d, 0x64, 0x07, 0x3e, 0x92, 0x0d, 0x21, 0x52, 0x14, 0xfb, 0x0f, 0xda, 0x44, 0x18, 0x5a, 0xad, 0xa5, 0xc3, 0x61, 0x27, 0xa1, 0x5b, 0xa1, 0x5c, 0xa2, 0x8a, 0x3a, 0xd0, 0x86, 0xe9, 0xd0, 0x33, 0x66, 0x86, 0x9c, 0x60, 0xc3, 0xfb, 0xce, 0xbd, 0x86, 0x9d, 0x2e, 0x40, 0x64, 0x3e, 0x83, 0x3f, 0x89, 0x48, 0x03, 0xf9, 0x80, 0xa2, 0xda, 0x7e, 0xa4, 0xe5, 0x9c, 0xe4, 0xd7, 0xc0, 0x6f, 0xd2, 0xaf, 0xf0, 0x87, 0xee, 0x7b, 0xcf, 0xdd, 0xaa, 0x3b, 0x32, 0x81, 0x7c, 0xe6, 0x3a, 0x63, 0x58, 0x7d, 0xba, 0xfe, 0xf3, 0x80, 0x01, 0x3a, 0x6f, 0x1e, 0xe3, 0x73, 0x4b, 0x94, 0xca, 0x3d, 0xf9, 0x64, 0x4d, 0xd0, 0x43, 0x43, 0x02, 0xec, 0xb3, 0x24, 0xaf, 0xe3, 0x5f, 0x46, 0x5c, 0x9c, 0x1c, 0x93, 0x1b, 0x27, 0x29, 0x4f, 0xc6, 0xee, 0x02, 0x72, 0xde, 0x22, 0x42, 0xae, 0x90, 0xd7, 0xf2, 0xe0, 0x67, 0x02, 0x7e, 0xf8, 0x64, 0x2e, 0x8f, 0x17, 0x1e, 0xd8, 0x80, 0xff, 0xab, 0xce, 0x8a, 0x20, 0xa1, 0xb3, 0xe3, 0x39, 0xad, 0x4e, 0x3f, 0x1a, 0x90, 0x01, 0xf2, 0x0f, 0x90, 0x02, 0x61, 0x88, 0xfd, 0xe3, 0x4b, 0x21, 0x7a, 0x6e, 0x26, 0xaa, 0xff, 0x18, 0x42, 0x2b, 0x7f, 0x84, 0x3d, 0x0f, 0xdd, 0xa3, 0x21, 0xc3, 0x19, 0xc7, 0x78, 0xf2, 0x31, 0x37, 0xf2, 0x0c, 0xcc, 0x1b, 0xda, 0x18, 0x90, 0xe5, 0xbc, 0x91, 0x6a, 0x54, 0x56, 0xd0, 0x68, 0xd3, 0x7b, 0x5a, 0xcc, 0x63, 0x47, 0x72, 0x0c, 0x56, 0xa5, 0xa4, 0x91, 0xbc, 0x34, 0x8d, 0x6c, 0x84, 0x8a, 0x9c, 0x8f, 0xec, 0xfe, 0x58, 0xc9, 0x2b, 0x1f, 0x30, 0x2f, 0xe1, 0x49, 0x19, 0x71, 0x8c, 0xd5, 0xe7, 0x8b, 0x7f, 0xd6, 0x01, 0xd0, 0x9d, 0xc0, 0x1e, 0x69, 0x04, 0x86, 0x1e, 0x8d, 0x68, 0xb3, 0xc5, 0x75, 0x35, 0xb6, 0x13, 0x66, 0x76, 0xcb, 0xc6, 0xe8, 0x39, 0xaf, 0x0d, 0xd7, 0x39, 0xdb, 0x89, 0xa7, 0xab, 0xd9, 0x13, 0xfd, 0xf6, 0xb0, 0x0e, 0x9c, 0xa0, 0x26, 0x02, 0xde, 0x6c, 0xa0, 0xaf, 0xd0, 0x91, 0x3d, 0x99, 0x2f, 0xba, 0xa8, 0xff, 0x82, 0x2b, 0x9d, 0x9b, 0x09, 0xdd, 0xa7, 0xa2, 0x9b, 0xe9, 0x19, 0x10, 0xd8, 0xfa, 0x3c, 0xaa, 0x2a, 0x5e, 0x51, 0x83, 0x46, 0xc1, 0x67, 0xc9, 0xf5, 0x19, 0x41, 0xcf, 0x73, 0x53, 0xf3, 0xf3, 0x4c, 0x1d, 0xab, 0x33, 0x48, 0x5d, 0x0a, 0x8c, 0x19, 0xda, 0xf9, 0x51, 0xfd, 0x3e, 0xf2, 0x0d, 0x0b, 0x11, 0x9d, 0x80, 0x38, 0xdf, 0x90, 0xc1, 0x14, 0xa2, 0x5a, 0x5b, 0x93, 0xae, 0x40, 0xec, 0x44, 0xb9, 0xa5, 0xd2, 0xbc, 0x1c, 0x65, 0x17, 0xc6, 0x82, 0x50, 0x0d, 0x4c, 0xdc, 0x19, 0x71, 0x42, 0xbe, 0xc3, 0xaf, 0x82, 0x32, 0xc0, 0x71, 0x42, 0x8d, 0xc5, 0x4c, 0x0d, 0x30, 0x45, 0x42, 0x72, 0xe7, 0x33, 0x6b, 0x0b, 0x58, 0x88, 0xa6, 0xe8, 0xfe, 0xcd, 0xe8, 0x59, 0xe2, 0xac, 0xcb, 0x7f, 0xb0, 0x94, 0xac, 0xc5, 0x4f, 0xfa, 0x48, 0x1f, 0x76, 0x23, 0xd9, 0x44, 0x69, 0x1f, 0x04, 0xfb, 0x36, 0x13, 0xa9, 0x95, 0x49, 0x80, 0xf1, 0x7e, 0x2a, 0xd2, 0x17, 0x3d, 0x68, 0xcf, 0x0e, 0xc1, 0xb6, 0x7d, 0x8a, 0x91, 0xd6, 0xec, 0x82, 0x94, 0x6b, 0xcf, 0x05, 0xcb, 0x90, 0x68, 0x1a, 0x71, 0x62, 0x7b, 0x59, 0x02, 0x38, 0x33, 0x4e, 0x3d, 0x5a, 0xb9, 0xda, 0x6a, 0x08, 0x9b, 0xd7, 0x26, 0x24, 0xdf, 0x90, 0x74, 0xcd, 0xd2, 0x30, 0x9e, 0x04, 0xdf, 0xca, 0xe0, 0x32, 0x81, 0x2f, 0xe8, 0x4f, 0x9d, 0xb8, 0x82, 0xcd, 0xea, 0xae, 0x69, 0xee, 0x5d, 0xaa, 0x5a, 0x66, 0xff, 0x42, 0x7f, 0xc4, 0x52, 0xed, 0xd0, 0x76, 0x9b, 0x6a, 0xab, 0xcc, 0x13, 0x9d, 0x0f, 0x70, 0xaf, 0x8b, 0x97, 0x43, 0x0e, 0x64, 0x4f, 0x58, 0xa4, 0x12, 0x87, 0xa9, 0x3f, 0x63, 0x1d, 0xed, 0xa8, 0x2c, 0xa0, 0x71, 0x6d, 0x79, 0x75, 0x4c, 0x5c, 0x50, 0x3e, 0x52, 0xa6, 0x65, 0xda, };
18744 static const u8 ed25519_815_test_vectors_expected_sig[] = {
18745 	0xf3, 0x07, 0x7a, 0x75, 0x10, 0x1e, 0x12, 0x1e, 0x5c, 0x3e, 0x77, 0xd8, 0xed, 0x97, 0xb5, 0x78, 0xd2, 0x39, 0xbd, 0x42, 0x18, 0x03, 0xd3, 0x45, 0x5b, 0x56, 0x54, 0x40, 0x5a, 0x4c, 0x58, 0x6a, 0x60, 0x92, 0xe1, 0x3a, 0x85, 0x29, 0xba, 0xce, 0x46, 0x8a, 0x30, 0x57, 0x84, 0xb3, 0x73, 0xe4, 0x33, 0xfe, 0xe4, 0xa3, 0xdf, 0x89, 0x56, 0xbe, 0xfa, 0x01, 0x2f, 0xd8, 0xa8, 0xee, 0xd1, 0x0c, };
18746 static const ec_test_case ed25519_815_test_case = {
18747 	.name = "EDDSA25519-SHA512/wei25519 815",
18748 	.ec_str_p = &wei25519_str_params,
18749 	.priv_key = ed25519_815_test_vectors_priv_key,
18750 	.priv_key_len = sizeof(ed25519_815_test_vectors_priv_key),
18751 	.nn_random = NULL,
18752 	.hash_type = SHA512,
18753 	.msg = (const char *)ed25519_815_test_vectors_message,
18754 	.msglen = sizeof(ed25519_815_test_vectors_message),
18755 	.sig_type = EDDSA25519,
18756 	.exp_sig = ed25519_815_test_vectors_expected_sig,
18757 	.exp_siglen = sizeof(ed25519_815_test_vectors_expected_sig),
18758 	.adata = NULL,
18759 	.adata_len = 0
18760 };
18761 
18762 /************************************************/
18763 static const u8 ed25519_816_test_vectors_priv_key[] = {
18764 	0x6d, 0xbc, 0x55, 0x9e, 0x4a, 0xb1, 0x93, 0xee, 0xbf, 0x70, 0xc5, 0xc3, 0x2d, 0x79, 0x7b, 0xe0, 0x0b, 0x73, 0x11, 0xe8, 0xe6, 0x69, 0x1d, 0xa9, 0xaf, 0xcc, 0x18, 0x72, 0x91, 0xf2, 0x50, 0x1c, };
18765 static const u8 ed25519_816_test_vectors_message[] = {
18766 	0x88, 0xee, 0x23, 0x65, 0xf7, 0xcf, 0x9d, 0xe3, 0x3a, 0xcd, 0x53, 0x56, 0x49, 0x68, 0xb2, 0xdc, 0x7f, 0x73, 0x70, 0xb7, 0xe7, 0x03, 0x3f, 0x4c, 0x66, 0x3a, 0x88, 0xc2, 0x5f, 0x60, 0xf7, 0xf7, 0x11, 0xd6, 0x19, 0x08, 0xeb, 0xf1, 0xf5, 0xbb, 0x72, 0x83, 0x55, 0x53, 0xc8, 0xaa, 0x8c, 0x8e, 0x4f, 0xcd, 0xec, 0xd3, 0x79, 0x78, 0x23, 0x82, 0x89, 0xbf, 0x6c, 0xa8, 0x48, 0x76, 0xd2, 0x28, 0x21, 0x7a, 0x28, 0xd8, 0x1b, 0x0b, 0x45, 0x7c, 0x92, 0x2e, 0x91, 0xec, 0xba, 0x8d, 0x3e, 0x1d, 0x2e, 0x66, 0x59, 0xc2, 0xb0, 0xae, 0xa0, 0x51, 0xb9, 0xc2, 0xe0, 0x9c, 0x7d, 0xfe, 0xb5, 0x1d, 0x30, 0xed, 0xe7, 0x67, 0x57, 0x03, 0x41, 0xff, 0xac, 0x1e, 0xcf, 0x0d, 0xe2, 0x0c, 0x82, 0xd1, 0xe9, 0xed, 0x07, 0x75, 0xde, 0xac, 0x72, 0xda, 0x7c, 0x2d, 0xec, 0x23, 0x48, 0x65, 0xde, 0xc8, 0x3f, 0x67, 0x15, 0xe1, 0xc3, 0xc5, 0x9d, 0xe2, 0x03, 0x3c, 0xc2, 0x4d, 0x86, 0xbc, 0x2d, 0x31, 0xaa, 0x16, 0x64, 0x96, 0x86, 0xed, 0xe0, 0xdb, 0xbd, 0x89, 0x64, 0xc3, 0xa6, 0x4a, 0x3d, 0xca, 0x55, 0x88, 0xd7, 0x24, 0x8b, 0x1f, 0x24, 0xdf, 0x8d, 0x75, 0xf0, 0x9a, 0xac, 0x62, 0xc0, 0x78, 0x28, 0xca, 0x43, 0x1a, 0x3a, 0x2d, 0x77, 0xa6, 0x0c, 0xc9, 0x3c, 0xfa, 0x34, 0x95, 0xca, 0xbe, 0xb1, 0x90, 0x4e, 0xd5, 0xb5, 0x63, 0x98, 0x4e, 0x8c, 0x20, 0x77, 0x7b, 0xac, 0x87, 0x74, 0x10, 0x8a, 0x64, 0xed, 0xa5, 0x8f, 0xb3, 0x20, 0x24, 0x4a, 0x3a, 0xdd, 0x3e, 0x3e, 0x7a, 0x76, 0xcd, 0x13, 0x7c, 0xfa, 0x4a, 0x09, 0xb6, 0xe6, 0xe9, 0x30, 0x11, 0xea, 0x0a, 0xe6, 0x51, 0x71, 0xaf, 0x13, 0x07, 0x11, 0x76, 0x6c, 0xd2, 0x5b, 0x3c, 0x74, 0xec, 0x54, 0xc0, 0xbd, 0xfa, 0x02, 0xb3, 0x12, 0x0a, 0xc2, 0x90, 0x87, 0xeb, 0xac, 0x98, 0x37, 0xfc, 0xa6, 0x5b, 0xa9, 0x71, 0xbc, 0x42, 0x81, 0xdd, 0x55, 0x7c, 0x50, 0x0e, 0x22, 0x5e, 0xa6, 0x6c, 0x3c, 0x3f, 0xd5, 0x22, 0x06, 0xc1, 0x9a, 0x9f, 0x93, 0x95, 0x46, 0x31, 0x69, 0xf8, 0xc7, 0xa8, 0x46, 0xbd, 0x9f, 0x83, 0x4d, 0x7f, 0x33, 0x7d, 0x0b, 0x61, 0xfb, 0x30, 0xbc, 0xe2, 0x94, 0xf4, 0x78, 0xae, 0x1f, 0x1d, 0x97, 0x7e, 0x45, 0x4e, 0x43, 0x3e, 0xe8, 0x72, 0x9f, 0xb0, 0x65, 0xcc, 0xe0, 0x3f, 0xb2, 0xe4, 0x35, 0xdc, 0xbc, 0xbf, 0xba, 0x01, 0x53, 0x7e, 0x7a, 0x67, 0x62, 0xe5, 0x5e, 0x7e, 0xd2, 0x25, 0x28, 0x30, 0x37, 0x04, 0xbe, 0xb5, 0xae, 0x38, 0x1f, 0x2e, 0x18, 0x10, 0x56, 0xf2, 0x51, 0x33, 0x27, 0x3c, 0xf1, 0x7d, 0xdf, 0x2b, 0x06, 0xe2, 0xd9, 0x47, 0x7f, 0x2c, 0x09, 0x75, 0x5f, 0xc8, 0xd9, 0xc7, 0x3c, 0xb3, 0x31, 0x00, 0x46, 0x8c, 0x64, 0x13, 0x1c, 0x68, 0x6c, 0xac, 0x79, 0xfd, 0x38, 0x45, 0x01, 0xe5, 0x0f, 0x8b, 0x0b, 0xee, 0x28, 0xba, 0x39, 0x58, 0x3f, 0x42, 0xe4, 0xfd, 0x37, 0x99, 0xe2, 0x4f, 0x60, 0xda, 0x5f, 0xd3, 0xc7, 0x79, 0xaa, 0xbf, 0x69, 0x9f, 0xfd, 0x23, 0x21, 0xed, 0x04, 0x5a, 0x85, 0xbc, 0x64, 0x24, 0xf6, 0x0f, 0xdc, 0xc4, 0x9c, 0x1c, 0xb3, 0x1f, 0x24, 0x9a, 0x42, 0x36, 0xc0, 0x94, 0x91, 0x76, 0x81, 0x81, 0xb9, 0x21, 0xf5, 0x86, 0x02, 0xfd, 0x41, 0x5c, 0x1e, 0xde, 0xb2, 0x6f, 0x39, 0x32, 0x4a, 0xdd, 0xff, 0x14, 0x77, 0x13, 0x24, 0x73, 0x7c, 0x67, 0x20, 0xcc, 0x92, 0x39, 0x1b, 0x94, 0x9d, 0xcb, 0x42, 0x12, 0xbd, 0x69, 0x31, 0xd4, 0xde, 0x51, 0x40, 0x1e, 0x7f, 0x95, 0x3b, 0x7b, 0x03, 0x6b, 0x22, 0x3f, 0x0a, 0xf7, 0xa8, 0xe4, 0x08, 0xb0, 0x4e, 0xa6, 0x35, 0xa2, 0x3f, 0xa0, 0x70, 0x9b, 0xa0, 0x42, 0xa5, 0xd9, 0x92, 0x95, 0x4c, 0x09, 0xd8, 0x58, 0x1d, 0xcc, 0xcf, 0x52, 0x56, 0x8a, 0xd2, 0x7a, 0x1c, 0xc7, 0x1d, 0x18, 0xaa, 0x27, 0x40, 0xf6, 0x21, 0x21, 0x2e, 0x7f, 0x4c, 0x5e, 0x5e, 0x5e, 0x5e, 0x45, 0x32, 0xd9, 0xa6, 0x7e, 0xc2, 0x77, 0x3a, 0xc2, 0x1c, 0x8a, 0x4b, 0x00, 0x2d, 0x65, 0x24, 0xf6, 0x18, 0x2d, 0xd3, 0x71, 0x73, 0x5d, 0x2c, 0x2a, 0xbe, 0x6c, 0x95, 0xc2, 0x81, 0xc6, 0xfb, 0x1e, 0x97, 0x6b, 0xc1, 0x7e, 0x38, 0x3f, 0xd5, 0x2a, 0xea, 0xaa, 0x9f, 0xbd, 0x4a, 0xbb, 0x82, 0xa2, 0xcc, 0x65, 0x39, 0x5f, 0x8c, 0x2c, 0xc7, 0xd8, 0x18, 0x2a, 0x0d, 0x25, 0x0c, 0x68, 0x5c, 0xfc, 0xba, 0x93, 0xa9, 0x51, 0xee, 0x7c, 0x50, 0x3c, 0x6e, 0x3e, 0xec, 0x23, 0x6c, 0xe3, 0x3e, 0x08, 0x6c, 0x61, 0x07, 0x28, 0x73, 0x7c, 0x1c, 0x3b, 0x3a, 0x24, 0x25, 0x2d, 0xa7, 0xf2, 0x16, 0x72, 0xd9, 0x28, 0xeb, 0xda, 0x99, 0x3a, 0x94, 0xc4, 0x58, 0xab, 0x99, 0x0f, 0x5d, 0x19, 0xd8, 0x00, 0x23, 0xc3, 0x6a, 0xa1, 0x6e, 0xaf, 0xca, 0xb1, 0x43, 0xf3, 0x52, 0xe9, 0x7d, 0x64, 0x09, 0xf3, 0x24, 0x99, 0x41, 0x11, 0x9b, 0xfd, 0x9f, 0x5f, 0x90, 0x84, 0x72, 0x4d, 0x9e, 0xba, 0xd3, 0x83, 0xb1, 0x0f, 0x34, 0xd3, 0x3a, 0xc8, 0x30, 0xcc, 0xe9, 0xe5, 0xcb, 0x8a, 0xec, 0xee, 0x6f, 0x40, 0x30, 0x1c, 0xbb, 0xe3, 0x09, 0xfd, 0x06, 0x15, 0x34, 0xa7, 0xd0, 0xc3, 0xed, 0xaa, 0xea, 0x02, 0xa1, 0x71, 0xd8, 0xb2, 0x34, 0x9d, 0xbe, 0xec, 0x62, 0x85, 0x20, 0xac, 0x33, 0x4a, 0x5b, 0xfe, 0x28, 0xa9, 0xd5, 0xf4, 0xc0, 0xd7, 0x40, 0xf7, 0xc7, 0x2d, 0x4d, 0x72, 0xd8, 0x9a, 0x97, 0x32, 0x6a, 0x03, 0x00, 0x2d, 0x1e, 0xf3, 0x85, 0x22, 0xbc, 0xd3, 0x7b, 0x42, 0x84, 0x7a, 0x31, 0x4b, 0xd8, 0x43, 0xec, 0x88, 0xd1, 0xf2, 0xf9, 0xd3, 0x9f, 0x57, 0xf2, 0xf1, 0xa1, 0x3d, 0x01, 0x40, 0xa8, 0x84, 0x74, 0x50, 0x44, 0x8c, 0x88, 0x0b, 0x3a, 0xe7, 0x65, 0x31, 0xe9, 0x5c, 0x43, 0x92, 0x97, 0x32, 0x50, };
18767 static const u8 ed25519_816_test_vectors_expected_sig[] = {
18768 	0x31, 0xf1, 0x6a, 0x7c, 0xaf, 0x2b, 0x74, 0xf6, 0x5e, 0x05, 0x7c, 0x93, 0x33, 0xa1, 0xa2, 0x63, 0x3d, 0xac, 0x73, 0x46, 0x33, 0x8f, 0x79, 0x85, 0x10, 0x73, 0x0e, 0xb8, 0xd5, 0xd3, 0x25, 0xfc, 0x10, 0x80, 0xdd, 0x5a, 0xad, 0x5f, 0xce, 0x05, 0x34, 0xe9, 0x54, 0x3f, 0x3c, 0x93, 0x58, 0x68, 0x04, 0x46, 0x4a, 0xf5, 0x88, 0x6e, 0x86, 0x44, 0x12, 0x9c, 0x77, 0xeb, 0xaa, 0x48, 0x5f, 0x01, };
18769 static const ec_test_case ed25519_816_test_case = {
18770 	.name = "EDDSA25519-SHA512/wei25519 816",
18771 	.ec_str_p = &wei25519_str_params,
18772 	.priv_key = ed25519_816_test_vectors_priv_key,
18773 	.priv_key_len = sizeof(ed25519_816_test_vectors_priv_key),
18774 	.nn_random = NULL,
18775 	.hash_type = SHA512,
18776 	.msg = (const char *)ed25519_816_test_vectors_message,
18777 	.msglen = sizeof(ed25519_816_test_vectors_message),
18778 	.sig_type = EDDSA25519,
18779 	.exp_sig = ed25519_816_test_vectors_expected_sig,
18780 	.exp_siglen = sizeof(ed25519_816_test_vectors_expected_sig),
18781 	.adata = NULL,
18782 	.adata_len = 0
18783 };
18784 
18785 /************************************************/
18786 static const u8 ed25519_817_test_vectors_priv_key[] = {
18787 	0xc9, 0xd4, 0x16, 0x83, 0x0a, 0xe2, 0x02, 0x8f, 0x21, 0x75, 0xd2, 0x2b, 0x61, 0x4c, 0x79, 0x19, 0x8c, 0x67, 0x0c, 0xfa, 0xa0, 0xe7, 0xa3, 0x61, 0x50, 0xef, 0x0f, 0xee, 0x21, 0xa9, 0x5c, 0xe6, };
18788 static const u8 ed25519_817_test_vectors_message[] = {
18789 	0xff, 0x9a, 0xd4, 0x83, 0x7c, 0xd0, 0xbb, 0x77, 0xd6, 0x21, 0x0f, 0xdd, 0xdc, 0x75, 0x5e, 0x6c, 0x0f, 0x1a, 0x73, 0xc2, 0xbc, 0xd0, 0x3f, 0x7a, 0x58, 0x69, 0xe7, 0x34, 0x2c, 0xfd, 0x73, 0xcf, 0x70, 0x86, 0xf8, 0x65, 0x56, 0x15, 0x60, 0x27, 0x7b, 0xf6, 0xc3, 0x42, 0x1a, 0x91, 0x2d, 0x67, 0x65, 0x8b, 0x1f, 0xa9, 0x70, 0x57, 0xc4, 0x96, 0xf4, 0xbe, 0x8e, 0xdc, 0xbe, 0x18, 0xb5, 0xec, 0xd0, 0x8a, 0x1e, 0x7d, 0xb2, 0x52, 0x23, 0xab, 0xda, 0x20, 0x8f, 0xa5, 0x31, 0xf4, 0xb2, 0x80, 0xaa, 0x03, 0xb0, 0x4b, 0x60, 0x60, 0x34, 0x11, 0xd3, 0x74, 0xba, 0x7c, 0xbb, 0x02, 0x0b, 0xb9, 0xa8, 0xce, 0x4c, 0x0e, 0x45, 0xa7, 0xe1, 0x32, 0x14, 0x48, 0x43, 0xc3, 0x1f, 0x8b, 0x45, 0xc5, 0x8e, 0xb3, 0xea, 0x85, 0x3c, 0x2c, 0xeb, 0x61, 0x37, 0x6e, 0x9d, 0xf8, 0x1d, 0x97, 0x78, 0xe7, 0x21, 0xad, 0xac, 0x77, 0xb5, 0x03, 0x54, 0x93, 0x7f, 0x34, 0x37, 0x2f, 0xcc, 0xd5, 0x75, 0xe8, 0x8d, 0x9d, 0x05, 0x8e, 0x43, 0xdf, 0x94, 0x2f, 0x2c, 0x43, 0xb5, 0x23, 0xc8, 0x09, 0x8e, 0x6d, 0xd9, 0xe6, 0xbd, 0x21, 0xd5, 0xa6, 0x49, 0xb4, 0x72, 0xd4, 0x1e, 0x34, 0x5f, 0xcd, 0x5e, 0xfd, 0xdd, 0x49, 0xea, 0xb3, 0x02, 0x70, 0xcd, 0x87, 0x88, 0x40, 0x4f, 0x28, 0x51, 0x6e, 0x09, 0xd3, 0xac, 0xc4, 0x00, 0x48, 0xb3, 0x9d, 0x32, 0x46, 0xf7, 0x57, 0xe4, 0x82, 0xe1, 0x45, 0x9c, 0x62, 0x6b, 0x79, 0x9e, 0x04, 0xd0, 0x67, 0x27, 0x13, 0x73, 0x71, 0xe1, 0x20, 0xaf, 0xb9, 0xfe, 0xc3, 0x9a, 0x25, 0xf4, 0xe6, 0x76, 0x4b, 0xf9, 0x79, 0x2f, 0xe4, 0x92, 0xee, 0x0f, 0x21, 0x0b, 0x57, 0xdb, 0x9e, 0xbb, 0x9e, 0x8e, 0xf4, 0x1b, 0x02, 0xc7, 0xfe, 0xe9, 0xed, 0xd4, 0xb6, 0x17, 0x4c, 0x57, 0x0d, 0xe0, 0x20, 0xa3, 0x91, 0x28, 0x71, 0x33, 0xfe, 0x8c, 0xcb, 0x41, 0xa8, 0x3f, 0x91, 0xbd, 0x22, 0x38, 0x2b, 0x21, 0xe1, 0xd7, 0xeb, 0xc2, 0xc7, 0xe5, 0x01, 0x8e, 0xf5, 0x14, 0x2d, 0x82, 0x63, 0x7d, 0x02, 0x62, 0x0f, 0xbc, 0x05, 0x69, 0xcc, 0x09, 0xc4, 0x4e, 0x91, 0x11, 0x12, 0xbb, 0xae, 0x99, 0x06, 0x4d, 0x68, 0xd1, 0xc6, 0x9e, 0x77, 0xc9, 0x93, 0x0b, 0x0d, 0xe0, 0x30, 0xc8, 0xc1, 0xd7, 0x48, 0xc4, 0x14, 0x05, 0x9d, 0x5e, 0x29, 0x9b, 0x7e, 0xdc, 0x08, 0x94, 0x06, 0x51, 0x89, 0x4b, 0x30, 0x3a, 0x2b, 0x32, 0xdd, 0x2c, 0x36, 0x5a, 0x06, 0x7c, 0x97, 0x23, 0x58, 0x55, 0x94, 0x64, 0x4d, 0x3e, 0xe8, 0xde, 0x1a, 0x51, 0xfa, 0xea, 0x0e, 0x65, 0x0f, 0x21, 0x24, 0x88, 0x5a, 0x94, 0xcb, 0x99, 0xeb, 0x90, 0x3b, 0x7d, 0x45, 0x79, 0xbd, 0xe5, 0x91, 0x49, 0x7d, 0x95, 0x39, 0x30, 0xd3, 0x63, 0xdd, 0xdb, 0xda, 0xc6, 0x27, 0xb9, 0x7a, 0x91, 0xf4, 0x96, 0x82, 0xdf, 0x8e, 0x72, 0x50, 0xa7, 0x07, 0x3d, 0x38, 0x3a, 0x7a, 0x22, 0xcf, 0x11, 0x3f, 0x28, 0x58, 0xce, 0x6b, 0x63, 0x2a, 0x28, 0x92, 0xc4, 0xe8, 0x8a, 0xa9, 0xa0, 0xd2, 0x89, 0xeb, 0x57, 0x62, 0x9b, 0x00, 0x8d, 0x3b, 0x1b, 0x60, 0x81, 0xe6, 0xfe, 0x5d, 0x3c, 0x0a, 0x6c, 0x80, 0x21, 0x89, 0xb5, 0xf1, 0x08, 0xe7, 0x66, 0x31, 0x9e, 0x15, 0xb3, 0x3e, 0xaa, 0x5b, 0x8c, 0xed, 0x40, 0x27, 0xea, 0xec, 0x83, 0xb4, 0xac, 0x68, 0xb1, 0x4b, 0x82, 0x98, 0xbc, 0x51, 0xcd, 0x8e, 0xb3, 0x80, 0x9b, 0x7a, 0x2d, 0x68, 0x4f, 0xe3, 0x2b, 0xbd, 0x9f, 0xab, 0x5c, 0x91, 0x8e, 0xeb, 0x17, 0xcc, 0x44, 0x4d, 0x73, 0xf7, 0x30, 0xd4, 0xc8, 0xcc, 0x05, 0x7b, 0xd3, 0xa2, 0xf1, 0xf0, 0xae, 0xbb, 0x61, 0x63, 0x29, 0x34, 0xe6, 0x17, 0x02, 0x16, 0x88, 0x29, 0xcd, 0x7e, 0x91, 0xde, 0x81, 0x50, 0x96, 0x29, 0xd0, 0x1a, 0x8c, 0xde, 0xfe, 0x0d, 0x1a, 0xc4, 0x9e, 0x21, 0xf0, 0xc5, 0xfb, 0xe1, 0xb2, 0x24, 0x48, 0x27, 0x26, 0x8a, 0x0a, 0x27, 0x35, 0x7e, 0x15, 0x8b, 0xd7, 0x68, 0x84, 0xa2, 0x1e, 0x7f, 0x1f, 0xac, 0x1b, 0x62, 0x72, 0x16, 0x6d, 0x5a, 0x9f, 0x64, 0xf9, 0xb6, 0x72, 0x98, 0x9a, 0x87, 0x62, 0xf5, 0x12, 0xbf, 0x1d, 0xf4, 0xb2, 0xab, 0x69, 0x97, 0x65, 0xf2, 0xcd, 0x83, 0x96, 0xf4, 0x76, 0xe7, 0xf5, 0x99, 0x95, 0xde, 0xe7, 0xd8, 0x90, 0x20, 0x7e, 0xff, 0x0f, 0xd2, 0x72, 0x63, 0xec, 0x23, 0x2e, 0x37, 0xcf, 0xed, 0xfe, 0x7c, 0x44, 0x05, 0x55, 0xd4, 0xca, 0x74, 0xe5, 0x2d, 0xa2, 0x46, 0xc4, 0xb8, 0x37, 0x57, 0xbe, 0xaf, 0xd2, 0xab, 0x2a, 0x51, 0xef, 0xe1, 0x60, 0xbb, 0x02, 0xb9, 0x8c, 0x26, 0xd6, 0xb2, 0xc3, 0xf0, 0xc1, 0xaa, 0xcb, 0x2f, 0x3c, 0x34, 0xa5, 0xb2, 0xa3, 0xb6, 0x6f, 0xee, 0x17, 0x5b, 0x78, 0x75, 0x48, 0x07, 0x3d, 0x8b, 0x57, 0x77, 0xc6, 0xbe, 0x88, 0x0b, 0xdc, 0x19, 0x6b, 0x33, 0x74, 0xa2, 0x15, 0x4f, 0x94, 0xd9, 0x36, 0x0f, 0x77, 0x55, 0xac, 0x68, 0x15, 0xa2, 0x8a, 0xf2, 0x96, 0x27, 0x1e, 0x22, 0xa8, 0xf2, 0x35, 0x43, 0xc7, 0x49, 0x55, 0xa6, 0x09, 0x12, 0x5b, 0x02, 0xa5, 0x69, 0x21, 0x80, 0x11, 0x42, 0x02, 0x95, 0xcc, 0xf0, 0xd7, 0x35, 0x69, 0x99, 0xa5, 0xb8, 0x95, 0xcc, 0x88, 0x48, 0x3f, 0xad, 0xf7, 0x97, 0x0c, 0xec, 0x6c, 0x64, 0x24, 0x0f, 0x70, 0x79, 0xfd, 0xb1, 0x5f, 0xfc, 0x5c, 0x42, 0x27, 0xe5, 0x39, 0x26, 0xd2, 0x78, 0xba, 0x0f, 0xed, 0x3c, 0x39, 0x93, 0xbc, 0x86, 0x82, 0x28, 0x23, 0xdd, 0x58, 0x1a, 0x32, 0xab, 0x2e, 0x3a, 0x07, 0xf7, 0x94, 0x30, 0x22, 0x4b, 0x27, 0x4e, 0xad, 0xd8, 0x45, 0x59, 0x8a, 0x7d, 0x1d, 0x89, 0x67, 0x6a, 0xaf, 0x23, 0x67, 0x77, 0x74, 0xb7, 0xb0, 0x58, 0x3b, 0xcc, 0x83, 0x59, 0x9d, 0x15, 0x5d, 0x14, 0xb0, 0x9a, 0xdc, 0xf4, 0x9e, 0xd5, 0x05, 0xe8, };
18790 static const u8 ed25519_817_test_vectors_expected_sig[] = {
18791 	0x47, 0xfa, 0xad, 0x4e, 0x65, 0x52, 0x93, 0xed, 0xa1, 0x56, 0xb2, 0xa1, 0xfa, 0xbb, 0xfb, 0x7e, 0x00, 0x9f, 0xc2, 0x90, 0xaa, 0xfe, 0xdb, 0xd5, 0x65, 0x21, 0x14, 0xa4, 0x78, 0x53, 0xbc, 0x77, 0xa8, 0x23, 0x3a, 0x2b, 0x17, 0x9f, 0x60, 0x54, 0x77, 0xd7, 0x87, 0x87, 0x8c, 0xbb, 0x15, 0xea, 0x61, 0x24, 0xdf, 0x8d, 0xc5, 0x7b, 0x2c, 0xe7, 0xbe, 0x7d, 0x18, 0xb7, 0x16, 0x2f, 0xb5, 0x0d, };
18792 static const ec_test_case ed25519_817_test_case = {
18793 	.name = "EDDSA25519-SHA512/wei25519 817",
18794 	.ec_str_p = &wei25519_str_params,
18795 	.priv_key = ed25519_817_test_vectors_priv_key,
18796 	.priv_key_len = sizeof(ed25519_817_test_vectors_priv_key),
18797 	.nn_random = NULL,
18798 	.hash_type = SHA512,
18799 	.msg = (const char *)ed25519_817_test_vectors_message,
18800 	.msglen = sizeof(ed25519_817_test_vectors_message),
18801 	.sig_type = EDDSA25519,
18802 	.exp_sig = ed25519_817_test_vectors_expected_sig,
18803 	.exp_siglen = sizeof(ed25519_817_test_vectors_expected_sig),
18804 	.adata = NULL,
18805 	.adata_len = 0
18806 };
18807 
18808 /************************************************/
18809 static const u8 ed25519_818_test_vectors_priv_key[] = {
18810 	0x2d, 0x27, 0x7d, 0xd5, 0x5f, 0x57, 0x19, 0x5e, 0xc0, 0x72, 0xb4, 0x7c, 0xb1, 0x44, 0x8c, 0xb5, 0x82, 0xc8, 0x35, 0x73, 0x9e, 0x6c, 0x98, 0xba, 0x71, 0xab, 0x12, 0x8f, 0x70, 0xce, 0x6b, 0x79, };
18811 static const u8 ed25519_818_test_vectors_message[] = {
18812 	0x14, 0x54, 0x9e, 0xdd, 0xd5, 0xf2, 0xb7, 0x90, 0x5d, 0xda, 0x19, 0xd7, 0x4a, 0xb2, 0x07, 0xaa, 0xc6, 0xfb, 0x3e, 0x3d, 0xf3, 0x29, 0x5d, 0x84, 0x52, 0x31, 0xef, 0x3a, 0xea, 0x6e, 0x1f, 0x04, 0xee, 0x03, 0x3c, 0x90, 0x38, 0xdc, 0xb4, 0xbd, 0x3d, 0x5e, 0x45, 0x2c, 0x54, 0x83, 0x4d, 0x0f, 0xf2, 0xb7, 0xde, 0x3f, 0x32, 0x2e, 0x56, 0x26, 0x94, 0x9c, 0xd6, 0x1d, 0x6e, 0x89, 0x01, 0x38, 0xff, 0x0e, 0xa8, 0xad, 0x84, 0x6e, 0x8f, 0xe8, 0x87, 0xae, 0xe1, 0x5f, 0xc4, 0x8b, 0xbe, 0x4f, 0xba, 0x42, 0x45, 0x5f, 0x5c, 0x17, 0x45, 0x7a, 0xe7, 0x89, 0xb4, 0x05, 0xaf, 0x85, 0x96, 0x11, 0xfe, 0x1f, 0x87, 0x46, 0x18, 0x5a, 0x65, 0xae, 0xf2, 0x13, 0x4e, 0xa4, 0xd8, 0xf3, 0x98, 0xd4, 0x8d, 0xf7, 0xc1, 0xbb, 0xa4, 0x30, 0x44, 0x08, 0xae, 0x7e, 0xfb, 0x35, 0x29, 0x24, 0x09, 0xd5, 0x08, 0xdd, 0x55, 0xce, 0x21, 0xde, 0x8c, 0x28, 0x16, 0x0d, 0xc9, 0xe8, 0x77, 0x70, 0x0c, 0x76, 0x3d, 0x06, 0xb0, 0x1b, 0x85, 0x42, 0x05, 0x2d, 0x7d, 0xdb, 0x63, 0x35, 0x54, 0xe3, 0x58, 0x42, 0x79, 0xc7, 0x96, 0x93, 0x70, 0x23, 0xc8, 0xea, 0xc3, 0x72, 0x77, 0xbe, 0x2b, 0x82, 0x04, 0xff, 0x3e, 0x0e, 0x10, 0x31, 0x19, 0x0a, 0x01, 0x01, 0x4c, 0xf5, 0xf5, 0xb4, 0xd7, 0xad, 0x99, 0x67, 0x27, 0xf9, 0x75, 0x31, 0xe0, 0x35, 0x5b, 0x87, 0xc9, 0xe6, 0x11, 0x52, 0x5a, 0xad, 0x07, 0x99, 0x58, 0xe9, 0xaf, 0xe2, 0xab, 0x10, 0xe4, 0xa3, 0xe7, 0xa1, 0xb6, 0xba, 0x0a, 0xff, 0x81, 0x5d, 0xa2, 0xcd, 0x81, 0xea, 0x9e, 0xb9, 0xf5, 0x36, 0x98, 0x66, 0x33, 0xf3, 0x16, 0xdd, 0x06, 0xc2, 0x50, 0x3c, 0x6b, 0x19, 0x8d, 0xc5, 0x93, 0x04, 0x80, 0x7b, 0x98, 0xb4, 0x29, 0x35, 0xf5, 0x1f, 0x63, 0x7d, 0xdb, 0x59, 0xe2, 0x33, 0xfe, 0xd5, 0x66, 0x43, 0x9c, 0x1f, 0xe9, 0x6c, 0xda, 0xaf, 0xa4, 0x9f, 0x44, 0x12, 0xd0, 0xc1, 0xe6, 0x54, 0xd8, 0xc6, 0x90, 0x42, 0x47, 0x0b, 0x3a, 0x59, 0xac, 0xb6, 0xbf, 0x67, 0xe4, 0x0b, 0x38, 0xa7, 0x70, 0x67, 0xd5, 0x99, 0x7b, 0x8d, 0x35, 0xed, 0x61, 0xd6, 0xeb, 0x3c, 0xc7, 0x8b, 0x8b, 0xdc, 0xb9, 0x57, 0x4b, 0x1c, 0xed, 0x9f, 0x6f, 0x33, 0x9e, 0x9e, 0x38, 0xf9, 0x41, 0x46, 0xef, 0x63, 0xf0, 0x49, 0xe6, 0xb8, 0x02, 0xbf, 0xed, 0x2a, 0x51, 0xab, 0x42, 0xe7, 0xd4, 0x89, 0xf3, 0x16, 0xff, 0x4d, 0x1c, 0xd8, 0x98, 0xbc, 0xf8, 0x50, 0x56, 0x51, 0x68, 0x74, 0x40, 0x74, 0x9c, 0x0f, 0xb7, 0xa5, 0x7d, 0xbe, 0xff, 0x72, 0xe6, 0x46, 0x89, 0xfa, 0xa4, 0x1c, 0x07, 0xb4, 0xad, 0xe5, 0x99, 0x33, 0xd2, 0xfa, 0xc6, 0xd5, 0x73, 0xde, 0xb7, 0x39, 0x54, 0x9e, 0xb7, 0x5f, 0x1e, 0x6f, 0x73, 0x85, 0xd8, 0xc6, 0x14, 0x28, 0x94, 0x97, 0x3e, 0xd6, 0x85, 0xeb, 0x8e, 0xd0, 0x80, 0xc2, 0xa4, 0x9f, 0x3a, 0xc6, 0x57, 0x11, 0x61, 0xaf, 0x96, 0x63, 0x5a, 0xd0, 0x57, 0xdf, 0x14, 0x86, 0xd3, 0x96, 0x77, 0x3a, 0xc8, 0x98, 0x32, 0x10, 0x97, 0x89, 0x86, 0xe1, 0xbf, 0x21, 0xa2, 0x08, 0x06, 0xd6, 0x67, 0xa4, 0x8a, 0x55, 0x5a, 0x96, 0x32, 0x21, 0xd5, 0x06, 0x14, 0xa8, 0x97, 0x6b, 0x2e, 0xec, 0x97, 0x51, 0x2d, 0xb1, 0x1a, 0x35, 0x81, 0x94, 0x49, 0x2a, 0xb5, 0x45, 0x58, 0x01, 0xba, 0xa1, 0x4a, 0x51, 0x1b, 0x26, 0xeb, 0x0c, 0x68, 0x28, 0x9d, 0x79, 0x05, 0x23, 0x71, 0x2f, 0x2f, 0xf8, 0x70, 0x98, 0x92, 0x69, 0x5c, 0x4d, 0xb9, 0xad, 0x31, 0x0d, 0xf8, 0xc6, 0xee, 0x7b, 0xd8, 0x3c, 0x87, 0x1f, 0x05, 0xae, 0xc3, 0x3b, 0x7a, 0xd3, 0x26, 0xf4, 0x46, 0x69, 0x2a, 0x42, 0xf7, 0x22, 0x23, 0x76, 0x24, 0x6d, 0x53, 0x6a, 0x32, 0x6c, 0x4d, 0x73, 0xeb, 0x57, 0x2f, 0xea, 0xda, 0x11, 0xb8, 0xac, 0x71, 0x14, 0xf6, 0xcb, 0x44, 0x4c, 0xa2, 0x78, 0xfc, 0xf0, 0x7b, 0x97, 0x0d, 0x2a, 0xd4, 0x65, 0x37, 0x2a, 0x68, 0x7d, 0x36, 0xb7, 0xda, 0xac, 0x47, 0x87, 0x48, 0xec, 0x6a, 0x93, 0x2d, 0xa2, 0x08, 0x43, 0x94, 0x8e, 0xfa, 0x39, 0x30, 0x97, 0x81, 0x42, 0x72, 0xe5, 0xca, 0x1c, 0x73, 0xe7, 0x11, 0x97, 0x3a, 0x52, 0x68, 0x3f, 0x98, 0xc0, 0x1e, 0x55, 0x24, 0x1c, 0x15, 0x4d, 0x28, 0xe3, 0x8d, 0x3e, 0xdf, 0xad, 0xe2, 0x30, 0x3a, 0x4e, 0x7c, 0x45, 0xc2, 0xa7, 0xa1, 0xc9, 0x96, 0xee, 0x11, 0x37, 0xaf, 0x86, 0x4a, 0x98, 0xb6, 0x98, 0x09, 0xfc, 0x92, 0x14, 0xee, 0xa8, 0xcf, 0x3a, 0xfe, 0x84, 0x2f, 0xee, 0x3e, 0xb9, 0xa9, 0x32, 0x2c, 0x3b, 0x82, 0xfd, 0xdb, 0x05, 0xd4, 0xd1, 0xa2, 0xde, 0x09, 0xc1, 0xce, 0x72, 0x73, 0x44, 0x53, 0xa8, 0xdd, 0x3a, 0x89, 0x20, 0xd0, 0xd0, 0xac, 0x96, 0xef, 0x77, 0x8b, 0x9e, 0x02, 0xc6, 0xa3, 0xf1, 0x28, 0x72, 0xe1, 0x7d, 0x3a, 0x81, 0xba, 0x75, 0xfd, 0x23, 0x3b, 0xaa, 0xdb, 0xe2, 0x16, 0xea, 0x0a, 0x58, 0xe9, 0xdd, 0xa0, 0x08, 0x40, 0x87, 0x02, 0x08, 0xae, 0x41, 0x35, 0x40, 0x03, 0x0b, 0x3c, 0x05, 0xe5, 0xd0, 0xb8, 0x32, 0xdf, 0x87, 0xc8, 0xee, 0x7f, 0x15, 0x34, 0x87, 0xaa, 0x11, 0xba, 0xd9, 0xf1, 0x39, 0xc7, 0xdd, 0x4b, 0xcf, 0x41, 0x8f, 0x4b, 0xcb, 0x95, 0xbe, 0xe8, 0x57, 0xd0, 0xe9, 0x60, 0x84, 0x47, 0x23, 0x87, 0xcb, 0x39, 0x12, 0x7a, 0x94, 0x71, 0x34, 0x50, 0x19, 0x63, 0xa7, 0x07, 0x1b, 0xdb, 0x34, 0xde, 0x69, 0x61, 0xbe, 0x2b, 0x6b, 0x06, 0xe4, 0x03, 0xe7, 0x59, 0x18, 0xe6, 0xf6, 0x9d, 0x08, 0x02, 0x1c, 0xf2, 0xa8, 0xac, 0xb8, 0x0a, 0x01, 0x11, 0xf4, 0xd5, 0x06, 0x10, 0xc1, 0x52, 0xd3, 0x9c, 0x66, 0x21, 0xc0, 0x57, 0x8a, 0xc6, 0x89, 0x95, 0x9b, 0x1c, 0xe6, 0xf3, 0x76, 0xf4, 0x3d, 0x18, 0xaf, 0x06, 0x2e, 0x4a, };
18813 static const u8 ed25519_818_test_vectors_expected_sig[] = {
18814 	0x73, 0xc1, 0x06, 0x06, 0x49, 0xa7, 0xc0, 0x14, 0xed, 0x01, 0x94, 0x58, 0x51, 0xb5, 0x3e, 0x28, 0x53, 0x24, 0xe6, 0x0d, 0x06, 0x1c, 0x83, 0x1d, 0xda, 0x41, 0xf0, 0x33, 0xb5, 0x65, 0x83, 0x06, 0xa1, 0xf1, 0x12, 0x32, 0x7a, 0xfe, 0x93, 0xca, 0xa9, 0x21, 0x02, 0x07, 0x30, 0xaa, 0xe0, 0x06, 0x9c, 0x9a, 0x2b, 0x45, 0xee, 0xf5, 0x5c, 0xbb, 0x4a, 0x5a, 0x9c, 0xd4, 0x6c, 0xda, 0x80, 0x08, };
18815 static const ec_test_case ed25519_818_test_case = {
18816 	.name = "EDDSA25519-SHA512/wei25519 818",
18817 	.ec_str_p = &wei25519_str_params,
18818 	.priv_key = ed25519_818_test_vectors_priv_key,
18819 	.priv_key_len = sizeof(ed25519_818_test_vectors_priv_key),
18820 	.nn_random = NULL,
18821 	.hash_type = SHA512,
18822 	.msg = (const char *)ed25519_818_test_vectors_message,
18823 	.msglen = sizeof(ed25519_818_test_vectors_message),
18824 	.sig_type = EDDSA25519,
18825 	.exp_sig = ed25519_818_test_vectors_expected_sig,
18826 	.exp_siglen = sizeof(ed25519_818_test_vectors_expected_sig),
18827 	.adata = NULL,
18828 	.adata_len = 0
18829 };
18830 
18831 /************************************************/
18832 static const u8 ed25519_819_test_vectors_priv_key[] = {
18833 	0x42, 0x80, 0x66, 0xc5, 0x24, 0x45, 0x72, 0x6d, 0x0e, 0xa2, 0x00, 0x7e, 0x50, 0x46, 0x37, 0x27, 0x4d, 0x84, 0xee, 0x23, 0x23, 0x25, 0xb5, 0x05, 0xf2, 0xc5, 0x16, 0x35, 0x7f, 0x80, 0x75, 0x83, };
18834 static const u8 ed25519_819_test_vectors_message[] = {
18835 	0xe2, 0x79, 0x6c, 0x50, 0xd9, 0x3d, 0xf8, 0x12, 0xbc, 0xa4, 0x1b, 0xf2, 0xa1, 0xe1, 0xdd, 0x73, 0x7d, 0x8c, 0xf6, 0xf6, 0xb4, 0xf7, 0x62, 0x42, 0xe3, 0x91, 0x78, 0x18, 0x67, 0x58, 0xcb, 0xae, 0x08, 0x84, 0xe6, 0x0c, 0x6b, 0x4a, 0xaa, 0xdd, 0xae, 0xc9, 0xa8, 0x99, 0xa9, 0x12, 0xe5, 0xc5, 0xb9, 0x80, 0x4d, 0x7b, 0x04, 0x97, 0xba, 0xb4, 0x45, 0x8c, 0x58, 0x5d, 0x4f, 0x25, 0x92, 0x22, 0x49, 0x8c, 0xe9, 0xe8, 0x0e, 0xb6, 0xa7, 0x97, 0x9b, 0xbe, 0xd6, 0xd5, 0x2c, 0xc3, 0x80, 0x72, 0xf7, 0x45, 0xcb, 0x2c, 0x63, 0xe6, 0x63, 0xbc, 0x3b, 0x9d, 0x6c, 0xaf, 0x01, 0x2a, 0x60, 0x7f, 0x6d, 0x3b, 0x70, 0x6e, 0x15, 0x57, 0x57, 0x87, 0x17, 0xec, 0xbb, 0x97, 0x1a, 0xeb, 0x7c, 0x48, 0xe1, 0xdf, 0x95, 0x71, 0x1c, 0x55, 0x0e, 0x00, 0x69, 0x93, 0xbf, 0xfb, 0xa9, 0x11, 0xcb, 0x64, 0xad, 0x52, 0xd5, 0x17, 0xed, 0x18, 0xbe, 0x82, 0x36, 0x9e, 0x81, 0x58, 0x19, 0xd3, 0x17, 0x59, 0x47, 0xd4, 0xa3, 0x5b, 0x2c, 0xc7, 0xb9, 0xdc, 0x6c, 0x10, 0x05, 0x13, 0x26, 0xb3, 0xf1, 0xdc, 0x1e, 0xdb, 0x1b, 0x68, 0xba, 0x01, 0x5f, 0xf7, 0xca, 0x1d, 0xc3, 0x61, 0xd8, 0x96, 0x7a, 0xbc, 0xff, 0xd3, 0xc3, 0x1f, 0x7d, 0x6b, 0x0c, 0xb1, 0x39, 0x6a, 0xe5, 0x41, 0xf2, 0x97, 0x59, 0xc4, 0x13, 0x0b, 0xe5, 0x2e, 0xcc, 0x11, 0xd9, 0x92, 0x61, 0xc3, 0x65, 0xbf, 0x7c, 0xde, 0xc7, 0x81, 0x49, 0x4c, 0x5f, 0xa0, 0x52, 0x6d, 0xb4, 0xdb, 0xbe, 0x66, 0x0a, 0x43, 0x2b, 0xe5, 0x60, 0x43, 0xc6, 0x6e, 0xa0, 0x7c, 0x25, 0x62, 0x7a, 0x5f, 0x72, 0xb7, 0x81, 0x23, 0xdc, 0xf9, 0x86, 0xff, 0x71, 0xed, 0x1a, 0xff, 0xd1, 0x65, 0x9b, 0x13, 0x93, 0xd9, 0x62, 0x1f, 0x71, 0x1d, 0xfa, 0x63, 0xea, 0xda, 0x38, 0x34, 0x30, 0x79, 0x70, 0x58, 0xf1, 0x56, 0x6a, 0x00, 0x05, 0x2d, 0x67, 0xba, 0x53, 0xc1, 0x23, 0x7b, 0x56, 0x91, 0xde, 0x3b, 0x03, 0x9f, 0xd4, 0x47, 0x6f, 0x11, 0x51, 0xe5, 0xed, 0x5f, 0x5a, 0x98, 0x67, 0x2f, 0xa3, 0x3a, 0x1d, 0x85, 0x4f, 0xa0, 0x15, 0x66, 0xb3, 0x32, 0x31, 0xd4, 0x6a, 0xcd, 0x7f, 0x34, 0xb8, 0x03, 0x44, 0x79, 0x98, 0x18, 0x53, 0x76, 0x4d, 0xab, 0x87, 0xf4, 0x98, 0x44, 0xcb, 0x62, 0xc6, 0x3d, 0x53, 0x6f, 0xac, 0xa9, 0x20, 0x44, 0x7d, 0x8c, 0xd1, 0xe8, 0x11, 0x3e, 0xdb, 0xc8, 0x3e, 0x4a, 0x6b, 0x78, 0x15, 0xe1, 0x80, 0xcd, 0x78, 0xb9, 0x33, 0xd9, 0x68, 0x7f, 0xd5, 0xbe, 0x99, 0xd0, 0x51, 0x8a, 0x44, 0x66, 0x29, 0x89, 0xbc, 0x64, 0x01, 0x11, 0x24, 0xf1, 0x87, 0xd4, 0x39, 0x79, 0x99, 0x4a, 0x95, 0xe0, 0xc9, 0x03, 0xa0, 0x06, 0xc1, 0xc0, 0xbe, 0xf1, 0xc0, 0xf3, 0xdf, 0x1e, 0xb7, 0x00, 0xf9, 0x80, 0xc2, 0x8c, 0x3c, 0x1e, 0x99, 0x7d, 0x0c, 0x56, 0xd1, 0x13, 0xda, 0xe1, 0x96, 0x88, 0x2b, 0x05, 0x01, 0x8f, 0xca, 0xb3, 0x14, 0xd8, 0x11, 0x7f, 0xaf, 0xba, 0xbe, 0x77, 0x00, 0xb9, 0x32, 0xd4, 0x7c, 0x57, 0x36, 0x2b, 0x20, 0x35, 0xed, 0xdc, 0xe2, 0xd2, 0xef, 0x33, 0x64, 0x1e, 0xa9, 0x0c, 0x3e, 0xa3, 0xfe, 0xc6, 0xea, 0x5b, 0x87, 0xe1, 0x61, 0x01, 0x4c, 0x4f, 0x82, 0x14, 0xfd, 0x03, 0xce, 0xbf, 0x94, 0xab, 0xe1, 0x22, 0x53, 0x7a, 0x98, 0x70, 0x32, 0x39, 0xdf, 0x58, 0x21, 0xc5, 0xab, 0x63, 0x3f, 0x98, 0x36, 0x5c, 0xc6, 0x36, 0xe3, 0xf1, 0xd2, 0xf7, 0x4e, 0x0f, 0xf8, 0xf1, 0xfe, 0xe0, 0x6a, 0x3f, 0x73, 0x90, 0x7e, 0xe5, 0x04, 0xb3, 0x10, 0xfd, 0x52, 0x24, 0xad, 0x4d, 0x05, 0xcd, 0x23, 0xc3, 0x56, 0xdf, 0x8b, 0x34, 0x64, 0x72, 0x98, 0xc4, 0x98, 0x28, 0x72, 0x5b, 0xa5, 0xfd, 0x60, 0x61, 0x1e, 0x82, 0x9b, 0x63, 0x37, 0xbc, 0xc9, 0xdc, 0xf8, 0xe8, 0x97, 0x1c, 0xab, 0x3e, 0xe9, 0xc2, 0x63, 0x37, 0xd3, 0x8d, 0xfd, 0xfa, 0x03, 0x6b, 0xf6, 0x09, 0x6b, 0x63, 0x5a, 0xc1, 0xbd, 0x55, 0x25, 0xec, 0xd3, 0x77, 0xa1, 0x52, 0x72, 0xa8, 0xac, 0x9b, 0xbe, 0xf1, 0x33, 0x10, 0x7a, 0x42, 0x25, 0x8d, 0x8b, 0x19, 0xec, 0x69, 0xdc, 0x42, 0x61, 0xbe, 0x53, 0x00, 0xa2, 0xd2, 0xd5, 0xca, 0x99, 0xf3, 0x1e, 0xfd, 0xf2, 0x59, 0xf9, 0xd0, 0x79, 0x86, 0x9a, 0x34, 0x41, 0x37, 0x79, 0xf3, 0x02, 0x88, 0x24, 0xd7, 0x47, 0x68, 0x6c, 0x46, 0x0f, 0xfc, 0x49, 0x6f, 0x20, 0x10, 0xf4, 0x03, 0xe9, 0x03, 0xe2, 0x7a, 0x87, 0xdd, 0x07, 0x5a, 0xe0, 0xa7, 0xf1, 0x68, 0x94, 0x16, 0xd3, 0x1b, 0xcc, 0x15, 0xf4, 0x90, 0xca, 0xf9, 0x75, 0xc4, 0x0e, 0x71, 0x5d, 0x54, 0x99, 0x03, 0xe8, 0xbc, 0x0f, 0x7d, 0x91, 0x41, 0xe0, 0x20, 0xf4, 0x10, 0xf3, 0xca, 0x2b, 0x2c, 0x07, 0x97, 0xca, 0x0d, 0xc8, 0xd7, 0x39, 0x2b, 0xff, 0x24, 0x35, 0x28, 0xc7, 0xf3, 0xbe, 0x13, 0x89, 0x97, 0x18, 0x5a, 0x4b, 0x36, 0xf4, 0x53, 0x76, 0xd9, 0xfd, 0x70, 0xba, 0x20, 0x98, 0x9d, 0x2d, 0x1a, 0x91, 0x1d, 0x4b, 0x98, 0xd1, 0x60, 0xd2, 0xb8, 0xde, 0x59, 0x2d, 0xe2, 0xf4, 0xc0, 0x4f, 0x35, 0x86, 0x0d, 0xf3, 0x20, 0xc5, 0x48, 0x44, 0x0d, 0x5e, 0x3a, 0x34, 0x6a, 0x14, 0xd3, 0xa6, 0x3f, 0xe4, 0x85, 0xc2, 0x88, 0x91, 0x26, 0xb7, 0xf4, 0x1d, 0x55, 0xa6, 0xeb, 0x23, 0xd5, 0x62, 0x0b, 0xab, 0xf8, 0x56, 0x4a, 0xa7, 0x9d, 0x15, 0x6e, 0x98, 0x3f, 0x36, 0xd9, 0xed, 0x49, 0x8d, 0xa9, 0xca, 0x88, 0x8d, 0x94, 0x6b, 0x53, 0xcc, 0x47, 0x68, 0xa5, 0x89, 0x2d, 0x52, 0xd5, 0x41, 0x52, 0x69, 0x60, 0x28, 0x25, 0x24, 0xba, 0x61, 0x94, 0xda, 0x65, 0x94, 0x1d, 0x1e, 0xa3, 0x0f, 0x80, 0x6b, 0xb6, 0xd9, 0x7c, 0x74, 0x88, 0xb9, 0x3f, 0xd0, 0xa7, 0x70, 0xa9, 0xb1, 0x5e, 0xfc, 0xd1, 0x2c, 0x5c, 0x46, 0x94, };
18836 static const u8 ed25519_819_test_vectors_expected_sig[] = {
18837 	0xc9, 0x38, 0x82, 0x9f, 0x59, 0x8b, 0x1f, 0xf1, 0xb8, 0x18, 0x33, 0x60, 0xd2, 0x23, 0xf4, 0x3c, 0x59, 0x47, 0x30, 0x60, 0x68, 0x76, 0xa9, 0x9a, 0x3f, 0x31, 0xb2, 0x06, 0x5d, 0x04, 0xe6, 0xf0, 0x75, 0xd1, 0x39, 0x6b, 0x3c, 0x8c, 0xff, 0xb0, 0xe1, 0xe2, 0xea, 0xab, 0xda, 0x7d, 0xa5, 0xe7, 0x89, 0xcc, 0xd1, 0xc0, 0x20, 0x83, 0x5f, 0xe3, 0xa7, 0x1d, 0xcd, 0xb6, 0xaf, 0x03, 0x96, 0x0c, };
18838 static const ec_test_case ed25519_819_test_case = {
18839 	.name = "EDDSA25519-SHA512/wei25519 819",
18840 	.ec_str_p = &wei25519_str_params,
18841 	.priv_key = ed25519_819_test_vectors_priv_key,
18842 	.priv_key_len = sizeof(ed25519_819_test_vectors_priv_key),
18843 	.nn_random = NULL,
18844 	.hash_type = SHA512,
18845 	.msg = (const char *)ed25519_819_test_vectors_message,
18846 	.msglen = sizeof(ed25519_819_test_vectors_message),
18847 	.sig_type = EDDSA25519,
18848 	.exp_sig = ed25519_819_test_vectors_expected_sig,
18849 	.exp_siglen = sizeof(ed25519_819_test_vectors_expected_sig),
18850 	.adata = NULL,
18851 	.adata_len = 0
18852 };
18853 
18854 /************************************************/
18855 static const u8 ed25519_820_test_vectors_priv_key[] = {
18856 	0x31, 0x45, 0xbc, 0x68, 0xd8, 0x29, 0x79, 0x40, 0x8e, 0x46, 0x57, 0xb7, 0x75, 0xf1, 0x50, 0xc6, 0xd2, 0x8a, 0x32, 0x4d, 0x74, 0x6e, 0xa6, 0xde, 0x90, 0xfd, 0x72, 0xb1, 0x7a, 0x25, 0x79, 0x82, };
18857 static const u8 ed25519_820_test_vectors_message[] = {
18858 	0x2e, 0xa8, 0xdc, 0xe1, 0x48, 0x7f, 0x45, 0xd6, 0xff, 0x8e, 0xb8, 0x3c, 0x54, 0xfb, 0x7e, 0xdd, 0x76, 0xad, 0x6e, 0x60, 0x8b, 0xb8, 0xda, 0xf1, 0xa1, 0x82, 0x3d, 0xa4, 0xf4, 0xe4, 0xe9, 0x86, 0x31, 0x73, 0x89, 0x7c, 0x19, 0x7a, 0xc6, 0x58, 0x04, 0x82, 0x3b, 0xca, 0x95, 0x09, 0x1f, 0x59, 0xe8, 0x6d, 0x63, 0xc1, 0x8d, 0xbc, 0xdb, 0x85, 0x74, 0x3f, 0x88, 0x93, 0xee, 0x69, 0x4d, 0x81, 0x56, 0x01, 0xf8, 0xf2, 0x2f, 0x4d, 0x7d, 0xf0, 0x87, 0xf0, 0x11, 0x4b, 0xb2, 0x6c, 0x37, 0x95, 0xe1, 0xfe, 0x4b, 0x7f, 0x4a, 0x8f, 0xa3, 0x1f, 0xd9, 0xf4, 0xff, 0x10, 0xfe, 0x5d, 0xd4, 0x52, 0xc5, 0x4c, 0x55, 0x78, 0xc7, 0x52, 0xf8, 0x88, 0x21, 0x30, 0x76, 0xbe, 0x46, 0x7b, 0xa3, 0x0d, 0x2e, 0x2f, 0xbb, 0xee, 0x87, 0x7c, 0x4b, 0xe9, 0xb6, 0xec, 0x4f, 0x04, 0x02, 0x1c, 0x00, 0x6f, 0x92, 0x66, 0x31, 0x19, 0x43, 0xca, 0xb7, 0xce, 0xa9, 0x9a, 0x2a, 0xce, 0xbb, 0x69, 0xee, 0xc3, 0xe6, 0x18, 0xc1, 0x31, 0xf9, 0x74, 0x30, 0x07, 0x5f, 0x79, 0x75, 0xe3, 0x9f, 0x26, 0xd5, 0x31, 0x51, 0x78, 0xb6, 0x9a, 0x1d, 0xdf, 0x73, 0x17, 0x61, 0x05, 0x1b, 0x93, 0xfb, 0x8d, 0xf7, 0xe0, 0xe8, 0xb4, 0x1e, 0x82, 0xe7, 0xf4, 0xf7, 0x5e, 0x91, 0xd6, 0xc8, 0x90, 0xb1, 0x4c, 0xa5, 0x33, 0xe0, 0x94, 0xeb, 0x8e, 0xa4, 0x48, 0x6d, 0x38, 0x71, 0x85, 0x96, 0x6c, 0x98, 0x29, 0x5d, 0x3f, 0x58, 0xb1, 0x7e, 0xef, 0x6c, 0xc3, 0xb4, 0xd0, 0x7e, 0x93, 0xa3, 0xd9, 0xf4, 0x77, 0x2e, 0xe5, 0x2f, 0x18, 0xa5, 0xbb, 0x30, 0xaa, 0x39, 0x72, 0x85, 0x0e, 0x65, 0x81, 0x70, 0xbd, 0xdb, 0x67, 0x6f, 0x33, 0x26, 0x6c, 0x9f, 0xd1, 0x0f, 0x59, 0x90, 0xba, 0xd8, 0x91, 0xf0, 0xce, 0xb7, 0x82, 0x73, 0x6b, 0x40, 0xf0, 0x1b, 0xd8, 0x65, 0x09, 0xb0, 0x63, 0x04, 0xa9, 0x6d, 0x93, 0xda, 0x23, 0x3d, 0xbe, 0xd1, 0x8a, 0xfa, 0x18, 0x18, 0xaa, 0xf5, 0x7a, 0xf9, 0xbd, 0xbc, 0x86, 0x7b, 0x39, 0x7f, 0xf2, 0x35, 0xa8, 0x3e, 0x85, 0x72, 0x24, 0xb1, 0x50, 0x65, 0x22, 0x5e, 0xec, 0x03, 0x9d, 0xd4, 0xe2, 0xd6, 0x9a, 0x04, 0xee, 0x10, 0xbe, 0xa0, 0x69, 0x50, 0x41, 0xed, 0xa5, 0x9b, 0x05, 0x8e, 0xc0, 0x5f, 0x49, 0x04, 0x8e, 0xe3, 0x24, 0xd1, 0x6c, 0x4d, 0x61, 0x07, 0xb6, 0xec, 0xd0, 0x48, 0x75, 0xeb, 0x74, 0x4e, 0x93, 0x65, 0x47, 0x1b, 0x4c, 0x5f, 0xe6, 0x61, 0x1b, 0x26, 0x18, 0x93, 0xf9, 0xd2, 0xb1, 0x28, 0xe1, 0x35, 0xf9, 0x2e, 0x47, 0x41, 0x56, 0xb2, 0x71, 0xb3, 0xc8, 0x2e, 0x9a, 0x76, 0x63, 0xda, 0xd4, 0x95, 0x3d, 0x30, 0xe1, 0x0e, 0xda, 0x08, 0x62, 0x60, 0x7d, 0xec, 0x33, 0x72, 0xb3, 0x99, 0x70, 0xf2, 0xa8, 0x4b, 0x12, 0xf6, 0x0e, 0x6d, 0xae, 0x7f, 0x31, 0x79, 0x90, 0x86, 0xd3, 0x8a, 0x7e, 0x34, 0x94, 0x84, 0x19, 0xc1, 0xb0, 0x7f, 0x44, 0xc2, 0x15, 0x9c, 0x86, 0xb8, 0xc0, 0xcf, 0xe8, 0x74, 0x7f, 0xc2, 0xba, 0xd5, 0xbf, 0x47, 0x53, 0x56, 0xcf, 0xe6, 0x9d, 0xe2, 0xdc, 0x6a, 0xd5, 0xa5, 0x19, 0xfd, 0x65, 0xc1, 0x25, 0x64, 0x70, 0x1c, 0x05, 0xf7, 0xc2, 0x77, 0xec, 0xaf, 0xcf, 0x4c, 0x87, 0xb1, 0x48, 0xdf, 0x1f, 0x98, 0x79, 0xa9, 0xae, 0x44, 0x3c, 0x55, 0xae, 0xa5, 0x21, 0x38, 0xc6, 0xfa, 0x01, 0xef, 0x0c, 0x3a, 0xbb, 0x5f, 0x2d, 0xf9, 0x0a, 0x57, 0xab, 0x66, 0x24, 0x17, 0x8c, 0x73, 0x7b, 0x54, 0x91, 0x5b, 0x7a, 0xa2, 0x9e, 0xa7, 0x8e, 0x8e, 0x49, 0xef, 0x5a, 0x81, 0x6d, 0x8a, 0x92, 0xc2, 0xf8, 0x1b, 0x8a, 0x19, 0x63, 0x27, 0x79, 0xc8, 0x92, 0xd6, 0x6f, 0x75, 0x3d, 0x51, 0x8c, 0x41, 0xcc, 0xcc, 0x9e, 0x59, 0x3e, 0x50, 0x74, 0x26, 0x25, 0xbc, 0xaf, 0xa4, 0x68, 0x80, 0x5c, 0x37, 0xa2, 0x1f, 0x8e, 0x29, 0xa6, 0x96, 0x0d, 0xdf, 0x5c, 0x5e, 0x5c, 0xa1, 0x4a, 0x7b, 0x05, 0x2a, 0x7b, 0x60, 0x15, 0x69, 0x7a, 0x02, 0x10, 0xed, 0x6f, 0x01, 0x43, 0xe6, 0xb4, 0x84, 0xc3, 0xf5, 0xb3, 0xb4, 0x72, 0x6c, 0x60, 0x7d, 0x07, 0xbf, 0xb3, 0xd5, 0x4a, 0x09, 0xc9, 0x80, 0x43, 0xf2, 0x1d, 0xcc, 0x5c, 0xc2, 0x0b, 0xb4, 0x75, 0x4e, 0x2e, 0x5a, 0x73, 0xb2, 0xf8, 0x06, 0xc2, 0x20, 0x4b, 0x72, 0xf3, 0x6a, 0xb9, 0xe9, 0x6a, 0x62, 0xc6, 0x27, 0x7c, 0x0a, 0xd6, 0x6b, 0xe7, 0xab, 0xff, 0xc1, 0x63, 0xb4, 0xe8, 0xfa, 0xfc, 0xef, 0xf5, 0xe2, 0x02, 0xe5, 0x94, 0x3f, 0x4f, 0x0e, 0x6b, 0x92, 0xb4, 0xdd, 0xb9, 0x53, 0xcb, 0xb7, 0x91, 0xf8, 0x31, 0x66, 0x03, 0x69, 0x38, 0xe6, 0xc4, 0x4a, 0xd9, 0x1a, 0x59, 0x6a, 0x55, 0x73, 0x44, 0x0f, 0xb3, 0x07, 0x41, 0xe6, 0x60, 0xb6, 0xcd, 0x5f, 0x86, 0xff, 0xa7, 0x46, 0xe6, 0xe9, 0x72, 0xb8, 0x05, 0xc1, 0x0b, 0x7b, 0x7b, 0x9a, 0x63, 0xc0, 0x55, 0x1d, 0xb8, 0xeb, 0x4f, 0x84, 0x00, 0xcd, 0xe2, 0x86, 0x8c, 0x0d, 0x0d, 0x4e, 0xb4, 0xcf, 0x11, 0x7f, 0x8e, 0xc4, 0xab, 0x97, 0x44, 0xfc, 0x58, 0x79, 0xde, 0xa7, 0xf0, 0xef, 0x16, 0xc2, 0x91, 0xd5, 0x5c, 0x17, 0xf0, 0x8b, 0x73, 0x1b, 0x7c, 0x65, 0xd0, 0xc4, 0x41, 0xb6, 0x3b, 0xc8, 0xff, 0x5e, 0x94, 0x90, 0x4c, 0x02, 0x6a, 0x13, 0x61, 0xda, 0xcc, 0x80, 0xa9, 0x3a, 0x9b, 0x9f, 0xba, 0x3b, 0x40, 0x36, 0x17, 0xae, 0xb9, 0x4a, 0x56, 0x85, 0x41, 0x84, 0x80, 0x11, 0x95, 0x42, 0x34, 0xae, 0xad, 0x70, 0x0f, 0x03, 0x4c, 0x47, 0xc7, 0xde, 0xf8, 0x77, 0x90, 0x52, 0x55, 0xf1, 0x8b, 0xdb, 0x9a, 0x25, 0x7c, 0xe5, 0xbd, 0xcf, 0x0e, 0x17, 0x67, 0x0c, 0xda, 0xaf, 0x13, 0xb1, 0xc7, 0xe0, 0x9d, 0x58, 0xf9, 0x2a, 0x96, 0x63, 0xaf, 0x23, 0x9e, 0x22, 0x07, 0x8e, 0x18, 0x0a, 0x23, 0xcc, 0xb6, 0xf6, 0x4d, 0x64, };
18859 static const u8 ed25519_820_test_vectors_expected_sig[] = {
18860 	0x24, 0xa4, 0x33, 0x33, 0x76, 0x83, 0xbc, 0x71, 0xa6, 0xca, 0x3b, 0xcc, 0xd8, 0xcc, 0x24, 0x00, 0xc2, 0x44, 0x64, 0xfa, 0x67, 0x71, 0x4b, 0x46, 0x51, 0x5f, 0x2a, 0x14, 0x32, 0x71, 0x27, 0x05, 0xd5, 0x70, 0x61, 0x4d, 0xb6, 0xd2, 0x6b, 0xbb, 0xd3, 0xf0, 0x26, 0x7c, 0x14, 0x27, 0xca, 0x1c, 0x2f, 0x40, 0xdc, 0x9a, 0x6f, 0x1f, 0xb0, 0xf0, 0xfc, 0x71, 0x4a, 0x02, 0xe2, 0x4b, 0x47, 0x08, };
18861 static const ec_test_case ed25519_820_test_case = {
18862 	.name = "EDDSA25519-SHA512/wei25519 820",
18863 	.ec_str_p = &wei25519_str_params,
18864 	.priv_key = ed25519_820_test_vectors_priv_key,
18865 	.priv_key_len = sizeof(ed25519_820_test_vectors_priv_key),
18866 	.nn_random = NULL,
18867 	.hash_type = SHA512,
18868 	.msg = (const char *)ed25519_820_test_vectors_message,
18869 	.msglen = sizeof(ed25519_820_test_vectors_message),
18870 	.sig_type = EDDSA25519,
18871 	.exp_sig = ed25519_820_test_vectors_expected_sig,
18872 	.exp_siglen = sizeof(ed25519_820_test_vectors_expected_sig),
18873 	.adata = NULL,
18874 	.adata_len = 0
18875 };
18876 
18877 /************************************************/
18878 static const u8 ed25519_821_test_vectors_priv_key[] = {
18879 	0x5a, 0x25, 0xea, 0x5e, 0x18, 0x2d, 0x9b, 0xf8, 0xe9, 0x30, 0xa2, 0x0b, 0x6c, 0xf5, 0x5e, 0x24, 0xe8, 0x38, 0x62, 0x78, 0x9b, 0x38, 0x39, 0xb1, 0xce, 0x9a, 0x71, 0xe9, 0x38, 0xc4, 0x2d, 0x37, };
18880 static const u8 ed25519_821_test_vectors_message[] = {
18881 	0x21, 0x4d, 0xd1, 0x92, 0x7f, 0x2c, 0xac, 0xd9, 0x88, 0x87, 0x14, 0x24, 0x9b, 0x85, 0x43, 0x46, 0x02, 0xac, 0x78, 0x45, 0x3b, 0x4a, 0xf5, 0x38, 0x6e, 0xee, 0x39, 0x29, 0x5d, 0x3d, 0x5a, 0x22, 0x67, 0x80, 0x6e, 0xb0, 0xcf, 0xf2, 0xc1, 0x32, 0xd3, 0x64, 0xc2, 0x42, 0x0d, 0x04, 0xe3, 0xf6, 0xcc, 0x0a, 0x96, 0x7b, 0xf0, 0x5a, 0x10, 0xff, 0xcf, 0x12, 0x17, 0xbb, 0xf3, 0x15, 0xe7, 0x5b, 0x98, 0x06, 0x0f, 0xd4, 0x58, 0xd6, 0x7e, 0xba, 0xad, 0x93, 0x80, 0xf4, 0xad, 0xc4, 0xdb, 0xdf, 0x74, 0xcb, 0xf1, 0xc6, 0x47, 0x92, 0x02, 0xbd, 0xd7, 0xfe, 0xd3, 0xa9, 0x46, 0x69, 0x7d, 0xc3, 0x84, 0x44, 0xd8, 0x8b, 0xfe, 0x51, 0xd4, 0x1d, 0x7a, 0x9b, 0x38, 0xda, 0x60, 0xb8, 0x50, 0xc5, 0x6b, 0x48, 0xba, 0x98, 0x4f, 0x6a, 0x18, 0x89, 0x51, 0x49, 0x55, 0xc0, 0xda, 0xdb, 0x69, 0xa8, 0xc7, 0x36, 0xcc, 0x76, 0xcd, 0xc4, 0x9f, 0x13, 0xf8, 0x5a, 0x8b, 0xfb, 0x79, 0x28, 0xff, 0x0a, 0x0c, 0x0c, 0x03, 0xf1, 0x7c, 0x74, 0xb5, 0xe1, 0x06, 0x2d, 0x75, 0x53, 0xfb, 0xeb, 0x9d, 0xd3, 0xd5, 0x08, 0x1d, 0xe1, 0xdf, 0xd8, 0xa6, 0xa9, 0x97, 0x66, 0x97, 0xc6, 0xa2, 0x59, 0xbc, 0xf7, 0xd4, 0xbe, 0xf1, 0xc2, 0x1e, 0x0a, 0xaf, 0x32, 0x98, 0xb0, 0x42, 0x1b, 0x91, 0x9f, 0xdd, 0xfc, 0x1d, 0xcb, 0x3e, 0xc6, 0x83, 0xd8, 0x6f, 0xf3, 0xd4, 0x23, 0xd7, 0x1c, 0x8f, 0x2d, 0x72, 0x3a, 0x42, 0xff, 0x68, 0xd8, 0x2e, 0x9f, 0x39, 0x17, 0x49, 0xb8, 0x29, 0x98, 0xdc, 0xfa, 0x11, 0x21, 0x60, 0xf5, 0x2a, 0x41, 0x3a, 0x23, 0xd9, 0x5f, 0xc4, 0x2c, 0x3b, 0xd2, 0x23, 0x84, 0xba, 0xd7, 0x77, 0x54, 0xa7, 0x10, 0xd8, 0xb9, 0xf8, 0x4a, 0xe0, 0xa8, 0x02, 0xfc, 0x46, 0x50, 0x9e, 0x7f, 0x2b, 0x07, 0x07, 0x90, 0x12, 0xb4, 0x3b, 0xfe, 0xea, 0xb7, 0x19, 0xbd, 0xe5, 0x6f, 0x00, 0xe5, 0x9b, 0x8e, 0xdf, 0x1c, 0x47, 0x28, 0x83, 0xb1, 0x98, 0x5b, 0x2f, 0xa6, 0x99, 0xa1, 0xae, 0x90, 0xcf, 0x45, 0xd7, 0xac, 0x58, 0x0c, 0xeb, 0x5f, 0x27, 0x97, 0xde, 0xf5, 0xb8, 0xbf, 0x4f, 0x2b, 0x9b, 0x35, 0x19, 0xa7, 0x27, 0xb9, 0xf2, 0xcd, 0x12, 0x56, 0xa2, 0xf0, 0x76, 0xed, 0x22, 0x96, 0x49, 0x5b, 0x5c, 0x2d, 0xf7, 0x88, 0x7f, 0xf8, 0x9e, 0x88, 0xe2, 0x36, 0xa1, 0x4c, 0xde, 0x63, 0x24, 0xf4, 0x3d, 0x68, 0xd9, 0x01, 0x72, 0xb0, 0xb8, 0x8b, 0xd2, 0x88, 0x03, 0xe9, 0x99, 0xdb, 0xed, 0xcc, 0x50, 0x1d, 0xb6, 0x54, 0x54, 0x4e, 0x17, 0x1e, 0xc1, 0xf9, 0xf3, 0x2d, 0x4d, 0x33, 0x21, 0xd5, 0x89, 0x39, 0x2e, 0x03, 0xca, 0x65, 0x9f, 0x96, 0x75, 0x2e, 0x1f, 0x08, 0xa5, 0x5d, 0xb5, 0x53, 0xd8, 0x66, 0x98, 0x55, 0x41, 0xf5, 0xbe, 0xf8, 0x4c, 0xe2, 0xee, 0x32, 0x3e, 0x17, 0xd1, 0xf7, 0xdc, 0x16, 0x4b, 0x50, 0x51, 0x5a, 0x28, 0x7d, 0x53, 0x05, 0xfc, 0x28, 0xc5, 0x98, 0x3b, 0x9e, 0x53, 0x98, 0xb2, 0x40, 0x7a, 0xe4, 0x72, 0x96, 0xfe, 0x4a, 0x48, 0x1d, 0x22, 0xff, 0xb4, 0xb8, 0x65, 0xa6, 0x6b, 0x97, 0xa6, 0xc2, 0x79, 0x35, 0xdd, 0x8e, 0xb8, 0x69, 0x94, 0xb7, 0x9d, 0x36, 0x83, 0x63, 0x71, 0x3f, 0x10, 0x1d, 0xc3, 0x7f, 0x42, 0x9e, 0xee, 0x0f, 0xee, 0x24, 0x41, 0xc2, 0xdc, 0x17, 0xbf, 0x43, 0x92, 0x4f, 0x0c, 0x04, 0x4f, 0x14, 0x32, 0x90, 0xea, 0xf3, 0xf9, 0xee, 0x4d, 0x94, 0x6d, 0xbe, 0x45, 0x83, 0x1a, 0x0d, 0x83, 0xc0, 0x76, 0xe7, 0x51, 0xc1, 0x4f, 0x3b, 0x1a, 0x72, 0x67, 0xf5, 0x44, 0x6c, 0x18, 0x86, 0x98, 0xd2, 0xb4, 0x6d, 0x87, 0xe6, 0xf3, 0xb2, 0x0b, 0xb3, 0xfd, 0xaf, 0xe2, 0x4c, 0xc0, 0x96, 0xbc, 0x31, 0x2d, 0x86, 0x78, 0xb3, 0x8a, 0x80, 0xc3, 0xf0, 0x52, 0xa0, 0xc9, 0x6d, 0x5a, 0xd8, 0x7a, 0x5d, 0xd8, 0xc1, 0x33, 0xcc, 0x9a, 0x15, 0xbe, 0x33, 0x57, 0x4c, 0xd9, 0x43, 0x08, 0xc2, 0x4d, 0xec, 0x1a, 0x9b, 0xdf, 0x18, 0x9b, 0xa6, 0x87, 0x19, 0x9f, 0x72, 0xef, 0x67, 0x09, 0x87, 0x8e, 0x10, 0xf8, 0x7b, 0xd8, 0xa0, 0x3d, 0xc8, 0x4c, 0x8f, 0xa9, 0x64, 0x20, 0x28, 0x58, 0x98, 0xca, 0x32, 0x11, 0xd8, 0xb0, 0xcc, 0xef, 0x64, 0x01, 0x1e, 0xc2, 0x4f, 0x38, 0xe5, 0x74, 0xda, 0x34, 0xda, 0xb9, 0xd2, 0xf0, 0x02, 0x10, 0x52, 0x27, 0x89, 0x0f, 0x92, 0x48, 0x8c, 0x62, 0x1e, 0x57, 0x13, 0xe4, 0x7d, 0xbc, 0xb1, 0xa8, 0x2a, 0x6d, 0xa6, 0x0d, 0x8b, 0x22, 0x01, 0xeb, 0x29, 0xd4, 0x94, 0x49, 0x33, 0x60, 0xed, 0x5a, 0x3f, 0x4b, 0x52, 0x25, 0xea, 0xe7, 0x70, 0x7e, 0xe0, 0xb4, 0xc0, 0x40, 0x73, 0x05, 0xc1, 0x67, 0x54, 0xc7, 0xf6, 0x30, 0xfc, 0x85, 0xc1, 0x3e, 0x49, 0x17, 0x04, 0x7b, 0xcf, 0xf3, 0xb2, 0xa2, 0x93, 0xfe, 0x95, 0x55, 0x06, 0xc7, 0x26, 0x4e, 0xa6, 0x5b, 0xf3, 0xa9, 0xb2, 0x5a, 0xcf, 0x34, 0x36, 0x00, 0xd8, 0xfa, 0x0c, 0x7c, 0x1a, 0x29, 0x0d, 0x02, 0x71, 0x10, 0x1b, 0x7f, 0x40, 0xb9, 0x6e, 0x7f, 0xda, 0xf2, 0x9d, 0xef, 0x9d, 0x93, 0x27, 0xa5, 0xae, 0x05, 0x44, 0x6c, 0xb5, 0xa6, 0xd3, 0x22, 0x45, 0x3a, 0x8b, 0x09, 0x8b, 0xcf, 0x3a, 0xee, 0x1f, 0x70, 0x4e, 0x14, 0xd0, 0x0b, 0xe3, 0x42, 0xb8, 0x93, 0x4d, 0x19, 0xe5, 0x29, 0x21, 0x88, 0x72, 0xea, 0x3a, 0x2f, 0xb2, 0x12, 0x4b, 0x52, 0x66, 0x7c, 0x01, 0xfc, 0xa5, 0x84, 0x1c, 0x66, 0xe1, 0xe6, 0x4a, 0x1e, 0x68, 0x0e, 0x09, 0xba, 0x18, 0x6e, 0x04, 0xd1, 0x05, 0x18, 0x6c, 0xf6, 0xeb, 0x72, 0x8b, 0x9d, 0x50, 0x2a, 0x66, 0xb8, 0x29, 0xfb, 0xc9, 0x92, 0xa3, 0x88, 0x10, 0x04, 0xec, 0xdc, 0x80, 0xad, 0xfd, 0x04, 0x4e, 0xda, 0x88, 0x0f, 0x8a, 0xf7, 0x2a, 0x14, 0xfb, 0x55, 0x0d, 0x7c, 0xc7, 0x41, 0x94, 0xa9, 0x45, 0x20, 0x7d, };
18882 static const u8 ed25519_821_test_vectors_expected_sig[] = {
18883 	0xa4, 0xf3, 0x5b, 0x49, 0xd7, 0xe1, 0x98, 0xe5, 0xd3, 0x26, 0xe3, 0x53, 0xfb, 0xb0, 0x1f, 0xa1, 0x3b, 0x6a, 0xe2, 0x60, 0xd1, 0xe4, 0x8e, 0x30, 0xc1, 0xb9, 0x67, 0x73, 0x7a, 0x5e, 0x79, 0x93, 0x6c, 0x97, 0xca, 0x2b, 0xa7, 0x99, 0xca, 0x34, 0xe5, 0xe7, 0x88, 0xce, 0xa5, 0xac, 0x8e, 0xd1, 0x0d, 0x5c, 0xd1, 0x5d, 0xae, 0x53, 0xe4, 0x24, 0x32, 0x32, 0x1c, 0xc2, 0x6d, 0xc9, 0x98, 0x09, };
18884 static const ec_test_case ed25519_821_test_case = {
18885 	.name = "EDDSA25519-SHA512/wei25519 821",
18886 	.ec_str_p = &wei25519_str_params,
18887 	.priv_key = ed25519_821_test_vectors_priv_key,
18888 	.priv_key_len = sizeof(ed25519_821_test_vectors_priv_key),
18889 	.nn_random = NULL,
18890 	.hash_type = SHA512,
18891 	.msg = (const char *)ed25519_821_test_vectors_message,
18892 	.msglen = sizeof(ed25519_821_test_vectors_message),
18893 	.sig_type = EDDSA25519,
18894 	.exp_sig = ed25519_821_test_vectors_expected_sig,
18895 	.exp_siglen = sizeof(ed25519_821_test_vectors_expected_sig),
18896 	.adata = NULL,
18897 	.adata_len = 0
18898 };
18899 
18900 /************************************************/
18901 static const u8 ed25519_822_test_vectors_priv_key[] = {
18902 	0x42, 0x33, 0x5c, 0x30, 0xb3, 0xf6, 0xb3, 0x59, 0xce, 0xf5, 0xaa, 0xb6, 0xa3, 0xce, 0x28, 0x58, 0xa1, 0x51, 0xb7, 0xa4, 0xfd, 0x78, 0xd2, 0xfd, 0x3e, 0xe3, 0x6f, 0xc2, 0x9d, 0x24, 0x94, 0x04, };
18903 static const u8 ed25519_822_test_vectors_message[] = {
18904 	0x6d, 0xa2, 0x25, 0x1e, 0x6f, 0x55, 0x95, 0x36, 0xb0, 0x9b, 0xfa, 0xfb, 0x81, 0x60, 0xa2, 0xe8, 0x10, 0x2d, 0x31, 0xf8, 0xb5, 0x93, 0x24, 0x08, 0x3e, 0x52, 0x27, 0xb2, 0x0c, 0x3e, 0x5c, 0x3a, 0x06, 0xe2, 0x39, 0x67, 0x68, 0xdc, 0xa3, 0xec, 0x76, 0xdc, 0x7f, 0xc0, 0xeb, 0x3d, 0x14, 0x5e, 0x62, 0xed, 0x07, 0xfc, 0x1a, 0x8b, 0x1b, 0x2e, 0x34, 0x70, 0x13, 0xa0, 0x52, 0x72, 0x74, 0xd0, 0xb2, 0x34, 0xfe, 0x72, 0x50, 0x26, 0xa9, 0xd1, 0x28, 0xf8, 0xdf, 0x20, 0xdb, 0xfa, 0x3b, 0x65, 0x03, 0x81, 0x8e, 0xde, 0xbd, 0x7f, 0x24, 0x93, 0x40, 0x80, 0x94, 0x5a, 0x7e, 0x1e, 0xa0, 0x22, 0x73, 0xfe, 0x48, 0xb6, 0xed, 0x1e, 0x83, 0xfd, 0x16, 0x8d, 0x79, 0x73, 0xfb, 0xb7, 0x94, 0x1b, 0x40, 0x37, 0xd3, 0xcd, 0xa5, 0x55, 0xe0, 0xe8, 0x9c, 0x2b, 0x94, 0x3f, 0xb1, 0xe2, 0x07, 0x65, 0xac, 0x7d, 0x4f, 0xa3, 0x77, 0x7f, 0x35, 0xa0, 0xa8, 0xbc, 0x11, 0x8f, 0x59, 0x9c, 0x84, 0x7b, 0xe3, 0xfd, 0xb2, 0xd8, 0xe2, 0x01, 0xae, 0x12, 0xa3, 0x0b, 0xde, 0xfb, 0x03, 0x4f, 0xf2, 0x4e, 0x3e, 0x2e, 0x70, 0x1a, 0x0d, 0x17, 0x33, 0x73, 0x40, 0x78, 0xbd, 0x1f, 0x9a, 0x69, 0xbb, 0xc6, 0x67, 0xe4, 0x61, 0x21, 0x1f, 0x2c, 0x76, 0x9d, 0x29, 0xdb, 0x7c, 0x4d, 0x62, 0xd6, 0xb1, 0xb9, 0x2b, 0x56, 0xf5, 0xf1, 0x8a, 0x93, 0x1a, 0x92, 0x60, 0x64, 0xb7, 0x8d, 0xa1, 0x46, 0xe1, 0x8b, 0x48, 0x13, 0x9b, 0x9b, 0x39, 0x86, 0x2a, 0xec, 0x37, 0xbc, 0xce, 0x12, 0xcb, 0x78, 0x94, 0x29, 0xe6, 0x8e, 0xa3, 0x81, 0x12, 0xd0, 0xb5, 0xcc, 0xe3, 0x0b, 0xd2, 0xd2, 0x6c, 0x5f, 0x7f, 0xd4, 0x15, 0xda, 0xf7, 0xca, 0x31, 0x7b, 0x33, 0x68, 0xb7, 0x61, 0x7d, 0x45, 0x25, 0xe5, 0xbc, 0x97, 0xd9, 0x46, 0x1d, 0x5d, 0x64, 0xf6, 0xb5, 0xd3, 0x18, 0xd0, 0xbc, 0x3b, 0x76, 0xf2, 0x5b, 0x06, 0x05, 0x42, 0x69, 0x09, 0xf2, 0xaa, 0x0c, 0xd6, 0x67, 0xa4, 0xf0, 0xe0, 0x75, 0xb9, 0xa9, 0xfb, 0x2e, 0x9a, 0x6c, 0x82, 0x70, 0x4d, 0x8a, 0x9f, 0x16, 0x66, 0x84, 0x4e, 0xdc, 0x32, 0xf6, 0x3a, 0x3d, 0x4e, 0x0f, 0xd9, 0xfd, 0xba, 0x30, 0xb5, 0x1b, 0x33, 0x36, 0xb9, 0x6e, 0x9e, 0xae, 0x39, 0x2a, 0x34, 0x2d, 0xe4, 0x9e, 0x9b, 0x5f, 0xa0, 0xf9, 0xb9, 0x01, 0x71, 0xbd, 0xe0, 0x9c, 0xf1, 0xe9, 0x46, 0x49, 0x91, 0x40, 0x00, 0x81, 0x59, 0xeb, 0x18, 0x65, 0x56, 0x3c, 0x28, 0x39, 0x4b, 0x03, 0xa8, 0xd7, 0xa5, 0x52, 0x27, 0x1b, 0x28, 0x76, 0x68, 0x75, 0x66, 0xb8, 0x0f, 0xd3, 0xbe, 0x2b, 0x66, 0x33, 0x2f, 0xca, 0xd1, 0x96, 0xca, 0xb8, 0x52, 0x7c, 0x56, 0xe2, 0x15, 0x36, 0xa1, 0x41, 0x65, 0x2c, 0xdc, 0x7f, 0xa7, 0x45, 0xb2, 0x6a, 0x33, 0x1d, 0x78, 0x7b, 0x93, 0xe5, 0xe8, 0x16, 0xd8, 0xd8, 0x51, 0xa5, 0x8f, 0x6a, 0xc0, 0x7a, 0x58, 0x27, 0xfc, 0xdf, 0x47, 0x2e, 0x86, 0x85, 0x43, 0x3a, 0x40, 0xca, 0xc0, 0xc4, 0x9a, 0xa5, 0x69, 0x31, 0x9a, 0x2e, 0x57, 0xb4, 0x1c, 0x99, 0x98, 0x16, 0x5e, 0x69, 0x72, 0x3b, 0xa7, 0x7e, 0x5c, 0x04, 0x23, 0xc4, 0xb4, 0xca, 0x07, 0x18, 0x7b, 0xb7, 0x44, 0x2e, 0x7d, 0x31, 0xca, 0xac, 0xb2, 0x77, 0x00, 0xc7, 0x1a, 0xe4, 0x8c, 0xd0, 0x55, 0xed, 0x2f, 0xe4, 0xda, 0x36, 0x3f, 0x44, 0x82, 0x11, 0x24, 0xcc, 0xa1, 0xbf, 0x2e, 0x63, 0xd9, 0xb8, 0xab, 0xd2, 0xfa, 0x41, 0xb1, 0x42, 0x2f, 0x52, 0xd5, 0x58, 0xbc, 0x5f, 0x11, 0x0c, 0x86, 0x3c, 0xc6, 0x00, 0x86, 0x49, 0x84, 0xed, 0x25, 0x9b, 0x73, 0xcd, 0xdd, 0x57, 0x96, 0xb3, 0x29, 0x79, 0xed, 0xdf, 0x76, 0xa0, 0x7b, 0xc5, 0x9b, 0x73, 0x68, 0xc4, 0x8e, 0x12, 0x9e, 0xcc, 0x0d, 0x45, 0x35, 0xdc, 0xce, 0xe2, 0xc3, 0xb8, 0xe5, 0x6d, 0xe5, 0x0e, 0x6f, 0x5c, 0xc6, 0xea, 0x51, 0x5c, 0xd6, 0xa0, 0xeb, 0xdf, 0x1c, 0xa7, 0x9a, 0xa2, 0x79, 0x48, 0x21, 0xad, 0x2e, 0x10, 0x9e, 0xdd, 0xa4, 0x50, 0xc9, 0xfc, 0x3c, 0x84, 0xd8, 0xc9, 0x6b, 0xc3, 0x8d, 0x4b, 0x43, 0x7a, 0x73, 0x8f, 0x81, 0x8b, 0x4d, 0xdc, 0xb6, 0x84, 0x38, 0x3c, 0x09, 0xb1, 0x1b, 0x36, 0x05, 0x2e, 0x9d, 0x2f, 0x76, 0xa6, 0x1e, 0xb4, 0xd6, 0x20, 0x49, 0xce, 0xd5, 0xf6, 0x16, 0x62, 0xc4, 0xb9, 0xec, 0xd2, 0x4a, 0x67, 0xf4, 0x51, 0x9d, 0x46, 0x52, 0x8c, 0x5b, 0x2e, 0xb2, 0x10, 0x05, 0xf4, 0x9c, 0x73, 0xa3, 0x37, 0x0c, 0x68, 0xe3, 0x7a, 0xc2, 0xb1, 0x8d, 0x48, 0x1f, 0xa1, 0x0f, 0x96, 0x71, 0x4f, 0xe0, 0x5c, 0x16, 0x8d, 0xf1, 0x1c, 0xda, 0x54, 0xf1, 0x4f, 0x49, 0x37, 0xe9, 0xfc, 0xe1, 0xf5, 0x16, 0xc0, 0x37, 0x1b, 0x36, 0xa2, 0xc0, 0xa0, 0x50, 0xba, 0xc7, 0xfa, 0x51, 0x22, 0xa6, 0xe3, 0x5e, 0xc9, 0xc4, 0x04, 0x36, 0x58, 0x5f, 0x31, 0x6e, 0x6c, 0x91, 0x1b, 0xdf, 0xd7, 0xdb, 0x4b, 0x80, 0xb4, 0x30, 0x64, 0x79, 0xb8, 0x2a, 0x2b, 0x24, 0x3a, 0x52, 0xb2, 0xd2, 0xb6, 0x27, 0x42, 0xed, 0x11, 0x28, 0x27, 0x90, 0xcf, 0x6f, 0xdc, 0x7c, 0x9c, 0x82, 0x43, 0x64, 0xcf, 0x25, 0x63, 0x6a, 0x85, 0x51, 0x50, 0xbd, 0xdb, 0xdf, 0x7e, 0x64, 0x0f, 0x9f, 0x95, 0x2a, 0x94, 0x7e, 0xc7, 0x97, 0x49, 0x25, 0xe8, 0x24, 0x50, 0x68, 0xb2, 0x92, 0x10, 0x1b, 0x1f, 0x4b, 0x20, 0x18, 0xe8, 0x5d, 0x07, 0x8c, 0x2f, 0xee, 0xf4, 0x49, 0x23, 0x49, 0x72, 0x9a, 0xd4, 0xac, 0xb3, 0x8f, 0x1c, 0x7c, 0x02, 0x70, 0xb6, 0x1d, 0x3d, 0xfd, 0x76, 0x36, 0xc6, 0xcb, 0xf1, 0x81, 0xe4, 0xc8, 0xa0, 0xe6, 0x4f, 0xa0, 0x61, 0x32, 0x55, 0x3c, 0x2b, 0x9d, 0xb7, 0x01, 0x9e, 0x3b, 0x3c, 0x48, 0x5d, 0x8d, 0x5b, 0x7d, 0xfd, 0x5f, 0x51, 0x5e, 0x4d, 0x71, 0xed, 0xe5, 0x35, 0xae, 0x7f, 0x2a, 0xae, 0xdc, 0x23, };
18905 static const u8 ed25519_822_test_vectors_expected_sig[] = {
18906 	0x67, 0xb0, 0xf1, 0x74, 0x49, 0x03, 0x9e, 0x8c, 0x79, 0x7b, 0xf9, 0x13, 0xaa, 0xe6, 0xe4, 0xf0, 0xbb, 0x99, 0xc7, 0x4d, 0x6d, 0x10, 0xc9, 0x73, 0xb9, 0x90, 0xff, 0xe0, 0x3e, 0x7e, 0xe4, 0xab, 0x5b, 0x35, 0x80, 0x6d, 0xb1, 0x5a, 0x98, 0xc0, 0x84, 0x6a, 0x82, 0x7e, 0x7b, 0xcd, 0x53, 0x9c, 0xd3, 0xbc, 0x09, 0xdd, 0x11, 0x8a, 0xb3, 0xe5, 0x26, 0x63, 0xa3, 0x57, 0xb1, 0x29, 0x91, 0x07, };
18907 static const ec_test_case ed25519_822_test_case = {
18908 	.name = "EDDSA25519-SHA512/wei25519 822",
18909 	.ec_str_p = &wei25519_str_params,
18910 	.priv_key = ed25519_822_test_vectors_priv_key,
18911 	.priv_key_len = sizeof(ed25519_822_test_vectors_priv_key),
18912 	.nn_random = NULL,
18913 	.hash_type = SHA512,
18914 	.msg = (const char *)ed25519_822_test_vectors_message,
18915 	.msglen = sizeof(ed25519_822_test_vectors_message),
18916 	.sig_type = EDDSA25519,
18917 	.exp_sig = ed25519_822_test_vectors_expected_sig,
18918 	.exp_siglen = sizeof(ed25519_822_test_vectors_expected_sig),
18919 	.adata = NULL,
18920 	.adata_len = 0
18921 };
18922 
18923 /************************************************/
18924 static const u8 ed25519_823_test_vectors_priv_key[] = {
18925 	0xbe, 0x6b, 0x2b, 0xab, 0xdd, 0xd2, 0xdc, 0xa1, 0xb0, 0xe1, 0x0d, 0x12, 0xd2, 0x0a, 0x9c, 0xe2, 0x9c, 0x67, 0x85, 0xda, 0xc1, 0xd6, 0x0f, 0x2e, 0xdf, 0xa9, 0x4a, 0xc2, 0x78, 0x4b, 0xa7, 0x66, };
18926 static const u8 ed25519_823_test_vectors_message[] = {
18927 	0x5c, 0x92, 0x95, 0x88, 0x1b, 0x7a, 0x67, 0x06, 0x69, 0xb0, 0x4c, 0xbe, 0x0d, 0xab, 0xd8, 0x96, 0x93, 0xb7, 0x7f, 0x7c, 0xce, 0x0d, 0x4a, 0x33, 0xf5, 0x2e, 0x02, 0xeb, 0x26, 0x95, 0x9e, 0x71, 0x3d, 0x9a, 0xef, 0x5f, 0x95, 0x44, 0x2b, 0xdf, 0x91, 0x72, 0x83, 0x83, 0x32, 0x52, 0x02, 0xaa, 0xcc, 0xc0, 0x37, 0x47, 0x7e, 0x36, 0x66, 0xfa, 0xca, 0xf2, 0x4e, 0xac, 0x95, 0x34, 0x87, 0x9a, 0xa3, 0xef, 0xe1, 0x8f, 0xfc, 0x1a, 0x5c, 0x54, 0xe3, 0x9c, 0x76, 0x87, 0xd0, 0x93, 0x7b, 0x24, 0x71, 0xba, 0xb3, 0x89, 0xb6, 0x46, 0xcb, 0xe6, 0xb3, 0xe5, 0xd5, 0x96, 0x1e, 0xa6, 0x3b, 0xd4, 0x52, 0xb4, 0x74, 0x33, 0x44, 0xce, 0x4c, 0x79, 0x33, 0x74, 0x52, 0x37, 0x95, 0xc7, 0x81, 0xee, 0x84, 0xd5, 0x11, 0xe2, 0x94, 0x11, 0x19, 0xba, 0xd1, 0xf4, 0xa7, 0x46, 0xed, 0x9d, 0xba, 0x89, 0xc8, 0xd0, 0x75, 0x1a, 0x64, 0x02, 0x71, 0x86, 0x35, 0xf6, 0xe3, 0x1d, 0x9e, 0x18, 0x68, 0x1c, 0x69, 0x56, 0xc5, 0x37, 0x32, 0x51, 0xd3, 0x5f, 0x53, 0xba, 0xa1, 0x98, 0x7c, 0xd4, 0x48, 0xc9, 0x03, 0x1a, 0x07, 0xf3, 0x2c, 0x80, 0x29, 0x11, 0x9d, 0xe3, 0xa9, 0x16, 0x31, 0xde, 0xde, 0x1d, 0x93, 0x3e, 0x0f, 0xa3, 0x26, 0x29, 0xaf, 0xe1, 0xb4, 0x2e, 0xb5, 0x91, 0xc2, 0x2f, 0x87, 0x33, 0x1e, 0x93, 0xcc, 0x08, 0x3c, 0x23, 0xf6, 0x4a, 0x6e, 0x5e, 0x58, 0x6f, 0xf3, 0x1c, 0xc0, 0x4e, 0x42, 0x3c, 0x56, 0xae, 0x3f, 0x6a, 0x73, 0x94, 0x6c, 0x48, 0xde, 0x4d, 0x85, 0xab, 0x00, 0x17, 0xba, 0x24, 0x45, 0x6d, 0x69, 0xb5, 0x9d, 0xca, 0x6d, 0x40, 0x3b, 0x64, 0xb0, 0x7c, 0x40, 0xd3, 0xb9, 0x0e, 0x12, 0x23, 0x21, 0x5e, 0x3f, 0x7e, 0x87, 0x6c, 0x67, 0x01, 0x11, 0x1e, 0x37, 0xe5, 0x17, 0x77, 0x08, 0x87, 0x31, 0x0c, 0xa8, 0x56, 0xf0, 0x09, 0xa0, 0xd6, 0x06, 0x54, 0x83, 0x5d, 0x94, 0xe6, 0x58, 0x7a, 0x43, 0x9d, 0xa5, 0xdb, 0x0a, 0x0c, 0x37, 0xd7, 0xc9, 0xd3, 0x7c, 0xa1, 0xd7, 0x03, 0xe1, 0xb3, 0x22, 0x76, 0x31, 0xad, 0xac, 0xaa, 0x79, 0x42, 0x1a, 0x1c, 0x43, 0x9d, 0x60, 0x34, 0x9a, 0xe5, 0x77, 0x41, 0xb7, 0xa8, 0xad, 0x09, 0xec, 0x29, 0x31, 0x23, 0x03, 0x0b, 0xf6, 0xba, 0xc0, 0x68, 0x9e, 0x53, 0x1c, 0xa7, 0xe7, 0x27, 0x18, 0x22, 0x3f, 0x9e, 0xa4, 0x3b, 0xec, 0xb0, 0xee, 0x9d, 0x9c, 0x1a, 0xb8, 0x45, 0xed, 0x1c, 0xae, 0x44, 0x3e, 0x3c, 0x5d, 0x4a, 0x9b, 0x1e, 0xde, 0x6d, 0xb3, 0x41, 0x7c, 0x3a, 0xce, 0x28, 0x11, 0x43, 0xf4, 0x2d, 0x85, 0xf5, 0x99, 0xb3, 0xb9, 0xd3, 0xd0, 0x5f, 0xa0, 0xed, 0x07, 0xc1, 0xec, 0x35, 0xff, 0xab, 0x03, 0x05, 0x16, 0x8b, 0x4e, 0x56, 0xe5, 0x8a, 0xfa, 0x06, 0x17, 0xf9, 0xa8, 0x6b, 0x1b, 0x5b, 0x20, 0x1d, 0xcc, 0xb0, 0x72, 0xb4, 0xce, 0xf0, 0xbb, 0x7b, 0x95, 0xc5, 0x2d, 0xae, 0xef, 0x9d, 0x9e, 0x74, 0x24, 0xa5, 0xc0, 0xf1, 0x48, 0xf9, 0xff, 0xe6, 0x0a, 0x5b, 0x23, 0xe0, 0xff, 0x82, 0xc7, 0x30, 0x99, 0x2a, 0xc9, 0xc1, 0x7f, 0x97, 0xf0, 0x65, 0xcf, 0x0a, 0xd5, 0x37, 0x7e, 0xac, 0xcb, 0x31, 0xd8, 0xbb, 0x92, 0x3b, 0xd2, 0x60, 0xea, 0x11, 0x9e, 0x6f, 0xa9, 0xbd, 0x69, 0x83, 0x48, 0x2d, 0x70, 0xd9, 0x21, 0x91, 0x02, 0x40, 0x2d, 0xc6, 0xa3, 0x49, 0x91, 0x93, 0xd0, 0xc1, 0xcd, 0x3e, 0xd2, 0xa6, 0x69, 0x21, 0xa9, 0x8d, 0xf6, 0x9b, 0x79, 0x14, 0x13, 0xf4, 0x97, 0x0b, 0xbc, 0xe0, 0x4f, 0x63, 0x9a, 0xf9, 0x09, 0xc6, 0x4f, 0x45, 0x60, 0xdb, 0x0a, 0xf6, 0x00, 0x3d, 0xc4, 0x62, 0x19, 0xe8, 0xad, 0x2b, 0x37, 0x2f, 0x8b, 0x5f, 0x81, 0xcf, 0xaa, 0x04, 0x1a, 0xb7, 0x1a, 0x34, 0x8c, 0x93, 0x1e, 0x8d, 0xfd, 0xbc, 0x40, 0x9c, 0x22, 0xd7, 0xee, 0x6e, 0x07, 0x62, 0x6e, 0x10, 0x4e, 0xc6, 0xcc, 0x7c, 0x6a, 0x41, 0x16, 0x17, 0x7f, 0x93, 0xaf, 0x16, 0xf1, 0x24, 0xf1, 0x96, 0xda, 0xb6, 0x19, 0xb6, 0xf6, 0x98, 0xc2, 0xd1, 0x91, 0x85, 0x8e, 0x96, 0x0c, 0x2e, 0x94, 0x7b, 0x51, 0xf3, 0xac, 0x48, 0x38, 0x75, 0x9c, 0x21, 0xfe, 0xf7, 0xeb, 0xae, 0x35, 0xda, 0x24, 0xf5, 0x5e, 0xbd, 0xa9, 0xb9, 0x87, 0x9a, 0xea, 0x17, 0xa6, 0xd8, 0xd9, 0x27, 0xde, 0x48, 0x7b, 0x17, 0x5f, 0xd7, 0xfa, 0xa2, 0x14, 0x38, 0xa2, 0x09, 0x23, 0xdd, 0xbb, 0xca, 0x72, 0xe6, 0x72, 0x69, 0x34, 0xbd, 0x6c, 0x21, 0xe8, 0x11, 0x80, 0x19, 0xf6, 0x5b, 0x38, 0x10, 0xa0, 0x7f, 0xa2, 0x7b, 0x1c, 0xba, 0x64, 0xd0, 0xf3, 0x9f, 0x0b, 0xfd, 0x49, 0xdc, 0xfa, 0xfd, 0xef, 0xe3, 0x79, 0xbd, 0xea, 0x82, 0xf3, 0x1a, 0x9c, 0x39, 0xf7, 0xe8, 0x1d, 0x29, 0x43, 0x37, 0xd1, 0x0f, 0x1e, 0x9d, 0x8b, 0x50, 0xeb, 0xa4, 0x58, 0xce, 0x7b, 0x75, 0x3d, 0x36, 0x96, 0x85, 0x38, 0x51, 0x3e, 0xdd, 0xb0, 0xe8, 0x45, 0x34, 0x41, 0x1c, 0x4a, 0xf3, 0xf0, 0x21, 0x46, 0x10, 0xee, 0x39, 0x01, 0xa0, 0xeb, 0xf3, 0x16, 0x17, 0x3c, 0xca, 0xf1, 0x5c, 0xd7, 0xee, 0x49, 0x6d, 0xbf, 0xc2, 0x46, 0x5e, 0xb8, 0x34, 0xdf, 0x62, 0x02, 0x9d, 0x62, 0x1f, 0xe9, 0x11, 0x82, 0x4d, 0x79, 0x87, 0xdf, 0x2d, 0x46, 0x34, 0x6b, 0x4d, 0xce, 0x1e, 0xce, 0x7d, 0x19, 0xd5, 0x51, 0x18, 0xc0, 0x37, 0xc9, 0x95, 0x51, 0x11, 0xd0, 0x7f, 0x1f, 0xc3, 0x62, 0xc7, 0x39, 0xf1, 0xea, 0x5b, 0x27, 0x5c, 0x71, 0xc0, 0xae, 0xbf, 0x59, 0x65, 0x5e, 0x2d, 0xef, 0x16, 0xe1, 0x23, 0xb3, 0xeb, 0x25, 0x26, 0xc3, 0xca, 0x5e, 0x83, 0xcb, 0x24, 0xd5, 0xb6, 0x8d, 0x7a, 0xc4, 0x0a, 0x67, 0x59, 0x33, 0x84, 0xc5, 0x63, 0xaf, 0xe0, 0xb5, 0x52, 0xad, 0xaf, 0x60, 0x80, 0x50, 0x35, 0xbe, 0x97, 0xb8, 0x06, 0x76, 0xad, 0xeb, 0x15, 0x76, 0x52, 0x08, 0x33, };
18928 static const u8 ed25519_823_test_vectors_expected_sig[] = {
18929 	0x70, 0x2a, 0xb9, 0xac, 0xbf, 0xa7, 0x5e, 0xa2, 0xad, 0xbe, 0x4b, 0xe2, 0xb6, 0x84, 0x76, 0x25, 0xae, 0xb4, 0x09, 0xee, 0xf9, 0x59, 0x6f, 0xab, 0xe3, 0x9d, 0x2c, 0x53, 0x3a, 0x03, 0x43, 0x1e, 0x5e, 0x57, 0x95, 0x52, 0xe8, 0xa6, 0x4f, 0xc4, 0xfb, 0x7d, 0x92, 0x6a, 0xa8, 0xff, 0xfe, 0x06, 0x40, 0x69, 0x84, 0x64, 0xc4, 0x45, 0x4c, 0xe3, 0x5f, 0xe8, 0x3f, 0xf2, 0x63, 0x05, 0x1a, 0x01, };
18930 static const ec_test_case ed25519_823_test_case = {
18931 	.name = "EDDSA25519-SHA512/wei25519 823",
18932 	.ec_str_p = &wei25519_str_params,
18933 	.priv_key = ed25519_823_test_vectors_priv_key,
18934 	.priv_key_len = sizeof(ed25519_823_test_vectors_priv_key),
18935 	.nn_random = NULL,
18936 	.hash_type = SHA512,
18937 	.msg = (const char *)ed25519_823_test_vectors_message,
18938 	.msglen = sizeof(ed25519_823_test_vectors_message),
18939 	.sig_type = EDDSA25519,
18940 	.exp_sig = ed25519_823_test_vectors_expected_sig,
18941 	.exp_siglen = sizeof(ed25519_823_test_vectors_expected_sig),
18942 	.adata = NULL,
18943 	.adata_len = 0
18944 };
18945 
18946 /************************************************/
18947 static const u8 ed25519_824_test_vectors_priv_key[] = {
18948 	0xb1, 0xe4, 0x7c, 0xa3, 0x1c, 0x64, 0xb6, 0x8a, 0xaf, 0xaf, 0xb4, 0x43, 0x51, 0x2e, 0x66, 0x78, 0x7c, 0x65, 0x92, 0xf3, 0x34, 0xaa, 0x78, 0xfa, 0x21, 0x9a, 0x3d, 0x93, 0xc3, 0x3a, 0x4a, 0xb3, };
18949 static const u8 ed25519_824_test_vectors_message[] = {
18950 	0x76, 0x7e, 0xc1, 0xb3, 0xda, 0xf2, 0x04, 0x38, 0x7f, 0x3f, 0xd3, 0xb2, 0x00, 0x10, 0x78, 0x1a, 0xfb, 0x1f, 0x38, 0xf6, 0x14, 0x47, 0x42, 0x13, 0x28, 0x7f, 0xff, 0x11, 0x30, 0x7f, 0x5f, 0xf5, 0xae, 0x7e, 0xc9, 0x45, 0xa2, 0xb9, 0xb4, 0x87, 0x00, 0x49, 0xd4, 0x53, 0x2f, 0x8f, 0x61, 0xc1, 0xa7, 0xb5, 0xf2, 0x11, 0xfc, 0xa2, 0xe6, 0x7c, 0x37, 0x4d, 0x96, 0x21, 0x9d, 0x8e, 0xa9, 0xde, 0x73, 0xf0, 0xe3, 0x87, 0x04, 0xfc, 0x94, 0xc0, 0xe9, 0xe7, 0x2f, 0x2e, 0x15, 0xda, 0xba, 0x3f, 0x88, 0xf7, 0x49, 0xb1, 0xed, 0x70, 0x26, 0x60, 0xdb, 0x1a, 0x35, 0x2a, 0x26, 0x67, 0xd4, 0xdf, 0xd4, 0xe0, 0x0a, 0x18, 0xef, 0xa4, 0xc6, 0x60, 0x9e, 0xe9, 0xc9, 0xa8, 0x8a, 0xda, 0xcb, 0xbb, 0x98, 0x5d, 0x3d, 0xe8, 0xdd, 0xd1, 0x7d, 0x4e, 0x4e, 0xb7, 0xcf, 0x74, 0xa1, 0xda, 0x91, 0xed, 0xb3, 0x90, 0x85, 0x2e, 0xa4, 0xcb, 0x9a, 0x42, 0x4f, 0x7f, 0xa2, 0x22, 0x9e, 0x08, 0x30, 0x33, 0xa3, 0x40, 0x59, 0x11, 0x7e, 0x5e, 0xfa, 0x7b, 0x66, 0x13, 0xd7, 0x5e, 0x58, 0xb7, 0x02, 0xc6, 0xce, 0xe5, 0xd0, 0x04, 0xe8, 0x59, 0x9b, 0x97, 0x50, 0x3a, 0x5f, 0x10, 0xc4, 0xc4, 0xe5, 0xb9, 0x57, 0x73, 0x71, 0xd3, 0xd0, 0x5b, 0x2d, 0xfb, 0xf7, 0xcb, 0xef, 0xe6, 0xd0, 0x92, 0xd6, 0x5c, 0xbd, 0x40, 0x51, 0x38, 0xd9, 0xb0, 0x4c, 0x51, 0x86, 0x23, 0x59, 0x83, 0xfa, 0xb6, 0xd4, 0xce, 0x85, 0xb6, 0x36, 0x27, 0x62, 0x06, 0xd7, 0x4a, 0x2e, 0xe7, 0xdb, 0x61, 0x64, 0xda, 0xc4, 0x7c, 0xce, 0x78, 0xf5, 0x0d, 0xb9, 0x9a, 0xf6, 0xac, 0x6e, 0x70, 0x64, 0xc1, 0x3a, 0xab, 0x79, 0x3b, 0xe8, 0x7e, 0x66, 0x28, 0x9c, 0x94, 0xa0, 0x9f, 0xb0, 0xa3, 0x1d, 0x97, 0x97, 0x1e, 0xdd, 0x74, 0xea, 0x9c, 0x0c, 0xe8, 0x74, 0xd2, 0xb7, 0xd6, 0xc4, 0xab, 0xae, 0xff, 0x07, 0xf8, 0x70, 0x22, 0x51, 0x51, 0x94, 0x6a, 0x5c, 0x47, 0x6f, 0x6b, 0x97, 0x89, 0x96, 0xb8, 0x7d, 0x8c, 0x98, 0x46, 0x06, 0xc7, 0x91, 0x28, 0x7d, 0xa6, 0xba, 0xd0, 0xaa, 0x44, 0xb0, 0x13, 0x0b, 0xe8, 0x86, 0x71, 0xa5, 0x56, 0xe2, 0xde, 0x35, 0xc4, 0xcb, 0x03, 0x8e, 0xe7, 0x81, 0x27, 0x35, 0x30, 0xac, 0xe0, 0xa1, 0x04, 0xc2, 0x78, 0x09, 0xae, 0xe0, 0x33, 0xc8, 0xbf, 0x90, 0x29, 0xd9, 0x0f, 0xe7, 0xba, 0x06, 0xaa, 0xa9, 0x4e, 0x16, 0xa5, 0x2c, 0x64, 0x3d, 0xfd, 0x92, 0xa7, 0x62, 0x4f, 0xbb, 0xee, 0x77, 0xa7, 0x15, 0x8b, 0x2c, 0xc1, 0x51, 0xbd, 0x3f, 0x61, 0xa1, 0xa7, 0x6f, 0x32, 0xb2, 0x84, 0x89, 0x30, 0x7a, 0xcf, 0x0d, 0xd8, 0xc2, 0x6c, 0xc4, 0xad, 0xbb, 0xb8, 0xde, 0x43, 0x0d, 0xb4, 0xe4, 0xf5, 0x83, 0x08, 0xb6, 0xab, 0x90, 0x45, 0x61, 0x11, 0xde, 0xac, 0x29, 0x78, 0x17, 0x2f, 0xe1, 0xfc, 0x0c, 0xe4, 0x98, 0x08, 0x8a, 0xdd, 0x4c, 0x31, 0xc2, 0x1f, 0x24, 0x27, 0x90, 0x25, 0xfe, 0xb4, 0x8c, 0xbb, 0x7a, 0x92, 0x0c, 0xff, 0x2d, 0x28, 0x71, 0x05, 0x87, 0xaf, 0x52, 0xc8, 0x44, 0xdb, 0x8a, 0x7a, 0xeb, 0x7d, 0xf1, 0x0d, 0x43, 0x41, 0x1a, 0x3c, 0x8e, 0xee, 0xbb, 0x40, 0x6d, 0x6e, 0xfc, 0xb1, 0x92, 0x48, 0x88, 0x7d, 0x45, 0x0b, 0x57, 0x3d, 0x90, 0x30, 0x5e, 0x1f, 0x23, 0x75, 0x3e, 0x89, 0x05, 0x11, 0xdc, 0xc7, 0x7c, 0x74, 0x0e, 0x31, 0x6a, 0xd7, 0xf5, 0x2d, 0x49, 0x02, 0x07, 0x3d, 0xb3, 0x99, 0x8e, 0x4e, 0x4a, 0xcc, 0x4e, 0x01, 0x88, 0x5b, 0xd1, 0x18, 0x8e, 0xcd, 0x61, 0x65, 0xae, 0xde, 0xd1, 0xe7, 0x78, 0x70, 0x2b, 0x6a, 0x6a, 0x79, 0xa9, 0x49, 0x99, 0x10, 0x2d, 0xf7, 0x20, 0x18, 0xf7, 0x92, 0xf8, 0xf1, 0x62, 0x00, 0x7e, 0x81, 0x2a, 0xef, 0x8f, 0x95, 0x6e, 0x12, 0x32, 0x82, 0xbb, 0xdb, 0xd0, 0xc3, 0x56, 0x12, 0xc2, 0xd3, 0x47, 0x3f, 0x94, 0x4c, 0x6d, 0x76, 0xbe, 0x9e, 0x86, 0xff, 0xfa, 0x46, 0xcc, 0xb1, 0xae, 0x13, 0x50, 0x5a, 0x4a, 0x81, 0xf3, 0x1b, 0x84, 0x26, 0xb8, 0xb6, 0x0d, 0xe8, 0xe8, 0xa7, 0xc1, 0x6d, 0x1e, 0x16, 0x65, 0xb2, 0x71, 0x43, 0x46, 0x65, 0xc4, 0x42, 0xa9, 0xc6, 0xa9, 0x77, 0xce, 0x98, 0x6f, 0x69, 0x93, 0xb7, 0x43, 0x9a, 0xf0, 0x3b, 0x40, 0x2e, 0xea, 0xff, 0xf1, 0x45, 0x6d, 0x15, 0x15, 0x26, 0xd9, 0xc5, 0x8f, 0x51, 0x5f, 0xd2, 0x48, 0x5e, 0x0c, 0xbb, 0x32, 0x4a, 0x50, 0x3a, 0x8d, 0x49, 0x13, 0x44, 0xcd, 0xb2, 0xaf, 0xf4, 0xc4, 0x1a, 0xa8, 0xe2, 0xed, 0x66, 0xe5, 0x80, 0x83, 0xbf, 0x0d, 0x2f, 0xbf, 0x48, 0x77, 0xc8, 0x5a, 0x4b, 0xcd, 0x6b, 0x9c, 0xbb, 0x82, 0x12, 0x42, 0xc9, 0x41, 0x47, 0xe5, 0xfd, 0x8b, 0x7d, 0xd7, 0x92, 0xad, 0x0a, 0x28, 0xd4, 0x9d, 0x41, 0x10, 0x0b, 0x43, 0x1b, 0xb4, 0xd8, 0xc7, 0x83, 0x3d, 0x85, 0x05, 0xdd, 0x9e, 0x26, 0x49, 0xf9, 0xca, 0x70, 0x51, 0xbe, 0x68, 0x71, 0x2e, 0xf3, 0x63, 0x71, 0x02, 0x03, 0x6b, 0x00, 0x26, 0x49, 0x47, 0x3c, 0xe2, 0x59, 0x67, 0x7d, 0x82, 0xc6, 0x06, 0x28, 0x95, 0xe1, 0x61, 0x92, 0x8b, 0x75, 0x2f, 0x13, 0xc9, 0x1a, 0x45, 0x95, 0x5e, 0x80, 0xf0, 0x07, 0xde, 0x69, 0x0e, 0xdf, 0x8a, 0x0e, 0x5e, 0xee, 0x44, 0x22, 0xe1, 0x62, 0xb9, 0xd2, 0xb4, 0xa9, 0x21, 0xd3, 0xa6, 0x48, 0x45, 0x79, 0x3a, 0xa2, 0x22, 0x9e, 0x9c, 0x23, 0x9e, 0x57, 0xa6, 0xb1, 0xa9, 0x0a, 0x52, 0x54, 0xc3, 0x51, 0x2f, 0x99, 0x34, 0x53, 0x15, 0xac, 0x7d, 0x34, 0x57, 0xf9, 0x15, 0x42, 0x96, 0xc6, 0x68, 0x22, 0xab, 0xe1, 0x84, 0xd6, 0x4e, 0x57, 0x2b, 0x9c, 0x38, 0x49, 0x29, 0x58, 0xe2, 0x1b, 0x02, 0x92, 0x67, 0x54, 0x10, 0xe7, 0x34, 0x8b, 0x2b, 0x71, 0x8a, 0x0b, 0x75, 0x92, 0xca, 0xee, 0x94, 0x58, 0x1a, 0x94, 0x8d, 0x2f, 0x41, 0xfa, 0x03, 0xc6, 0x1e, };
18951 static const u8 ed25519_824_test_vectors_expected_sig[] = {
18952 	0xdf, 0xac, 0x86, 0xdf, 0x58, 0x6e, 0xc3, 0x4c, 0x7c, 0xfe, 0xa5, 0xd5, 0xa6, 0xcd, 0x11, 0x40, 0xe5, 0x0b, 0x6b, 0xf0, 0x50, 0xf8, 0xe4, 0x1a, 0x19, 0x0e, 0xbf, 0xd3, 0xb1, 0x43, 0x2b, 0x95, 0xa5, 0x7d, 0x56, 0x52, 0xdb, 0xae, 0x8f, 0x53, 0xe0, 0x37, 0xae, 0x32, 0x6e, 0x7f, 0x18, 0xcf, 0xef, 0x7c, 0x77, 0x9f, 0x40, 0x34, 0x6f, 0x7c, 0x0d, 0x86, 0x44, 0x61, 0x05, 0x93, 0xf2, 0x09, };
18953 static const ec_test_case ed25519_824_test_case = {
18954 	.name = "EDDSA25519-SHA512/wei25519 824",
18955 	.ec_str_p = &wei25519_str_params,
18956 	.priv_key = ed25519_824_test_vectors_priv_key,
18957 	.priv_key_len = sizeof(ed25519_824_test_vectors_priv_key),
18958 	.nn_random = NULL,
18959 	.hash_type = SHA512,
18960 	.msg = (const char *)ed25519_824_test_vectors_message,
18961 	.msglen = sizeof(ed25519_824_test_vectors_message),
18962 	.sig_type = EDDSA25519,
18963 	.exp_sig = ed25519_824_test_vectors_expected_sig,
18964 	.exp_siglen = sizeof(ed25519_824_test_vectors_expected_sig),
18965 	.adata = NULL,
18966 	.adata_len = 0
18967 };
18968 
18969 /************************************************/
18970 static const u8 ed25519_825_test_vectors_priv_key[] = {
18971 	0xfb, 0xd5, 0x5f, 0xa7, 0x43, 0xc3, 0xa5, 0x91, 0x0b, 0x38, 0x57, 0xdd, 0x0b, 0x6a, 0xa5, 0x84, 0xf3, 0xb2, 0x38, 0xde, 0x05, 0x6b, 0x76, 0xab, 0x76, 0x17, 0xae, 0xb5, 0x26, 0x38, 0xfe, 0xf6, };
18972 static const u8 ed25519_825_test_vectors_message[] = {
18973 	0xbf, 0x52, 0x52, 0xb2, 0xae, 0xca, 0x11, 0x63, 0x77, 0x1f, 0x76, 0x62, 0x78, 0x76, 0x80, 0x66, 0xf2, 0x19, 0x71, 0x35, 0x7e, 0xa7, 0x99, 0x61, 0x58, 0xa8, 0xd6, 0xe9, 0x08, 0xdd, 0x59, 0xb5, 0x99, 0x71, 0x34, 0x9f, 0xa1, 0x78, 0x82, 0xcb, 0x92, 0x24, 0xb9, 0x72, 0xd0, 0xff, 0xab, 0xe8, 0x55, 0x10, 0xdc, 0xf2, 0x5a, 0x9f, 0x9f, 0x9b, 0xde, 0xfa, 0xd2, 0xf4, 0xca, 0xdf, 0xbb, 0xda, 0xcc, 0x1f, 0xca, 0x9d, 0x94, 0x8c, 0xb5, 0x41, 0x2f, 0x47, 0x4c, 0xad, 0x23, 0xb5, 0xb9, 0x19, 0x9b, 0xf3, 0xc7, 0x37, 0x06, 0x41, 0x33, 0x9b, 0x75, 0x0e, 0x1f, 0x78, 0xc2, 0xad, 0xb4, 0x60, 0xaa, 0x5b, 0x21, 0xb1, 0xfa, 0x8f, 0x97, 0x71, 0x4a, 0xbb, 0x4e, 0xd5, 0xe9, 0xcb, 0x51, 0xd6, 0xde, 0x55, 0x81, 0x66, 0x18, 0xab, 0xd3, 0xfd, 0x2b, 0x28, 0x6b, 0xc1, 0x1c, 0x67, 0xba, 0x01, 0x12, 0x93, 0x73, 0xd4, 0x35, 0xb3, 0xe7, 0xe3, 0x91, 0xba, 0x37, 0x26, 0x14, 0xda, 0x83, 0x22, 0x87, 0x5e, 0x46, 0xa6, 0x75, 0xb6, 0x45, 0x15, 0x60, 0x24, 0xca, 0xd2, 0xdd, 0x13, 0xf9, 0xa0, 0x81, 0x61, 0x6b, 0xf1, 0x31, 0xa2, 0x43, 0x58, 0x89, 0x4e, 0x0e, 0xfa, 0x1d, 0x56, 0x64, 0x8f, 0xfb, 0x42, 0xef, 0xb5, 0x40, 0x31, 0xda, 0x7f, 0x37, 0xd1, 0x97, 0x61, 0x51, 0x55, 0xae, 0xdb, 0x69, 0xc4, 0xe7, 0x09, 0xc8, 0xbb, 0xbe, 0x7f, 0xbf, 0xcb, 0x59, 0x83, 0x47, 0xac, 0x5d, 0x0c, 0x63, 0x84, 0x07, 0x84, 0x7b, 0x28, 0x1c, 0xf1, 0x16, 0x43, 0x30, 0x97, 0xf5, 0x66, 0x21, 0x58, 0x71, 0x9f, 0xcd, 0xd3, 0x7b, 0xeb, 0x48, 0x92, 0x68, 0xce, 0x71, 0xde, 0x7d, 0x70, 0xed, 0x92, 0x5f, 0x74, 0x3f, 0xc6, 0x3a, 0x71, 0x5f, 0x7e, 0xee, 0x75, 0x49, 0xfd, 0xb9, 0x09, 0xcc, 0x45, 0x4c, 0x98, 0x8b, 0x30, 0xae, 0x4d, 0x77, 0xd6, 0x2f, 0x65, 0xa0, 0x7e, 0x2c, 0x8f, 0x93, 0x62, 0x38, 0x5d, 0x02, 0x8a, 0x60, 0x31, 0x08, 0xc9, 0x45, 0x87, 0x2f, 0x5e, 0x1a, 0x97, 0x41, 0x98, 0x78, 0xed, 0x49, 0x54, 0x2e, 0x28, 0x8e, 0xf0, 0x7b, 0x5c, 0x90, 0xf5, 0xc4, 0x15, 0x9e, 0x16, 0x23, 0x03, 0xd0, 0x80, 0xf6, 0xac, 0x2b, 0x05, 0x8d, 0xdc, 0xac, 0x60, 0x74, 0x6f, 0x9e, 0x1c, 0x9e, 0xc1, 0xdf, 0x8e, 0xda, 0x42, 0xd6, 0x27, 0x38, 0x58, 0x6d, 0x3f, 0xdd, 0x65, 0xdf, 0x55, 0xf4, 0x37, 0x4f, 0x32, 0x94, 0xe0, 0x86, 0x8d, 0x41, 0xef, 0x0b, 0xb1, 0xfd, 0x55, 0xe0, 0xcb, 0xf1, 0x95, 0xbb, 0xfc, 0xfc, 0xde, 0x5b, 0xdb, 0x41, 0xfa, 0xd9, 0xa0, 0x47, 0x7e, 0x4c, 0x90, 0xca, 0x27, 0xfa, 0x8c, 0xf5, 0x03, 0x36, 0x2a, 0x33, 0xfd, 0xec, 0xa5, 0xa4, 0xf0, 0xff, 0xea, 0x26, 0xe8, 0xd7, 0xe1, 0x34, 0xfa, 0xd3, 0xb1, 0xec, 0x3d, 0x05, 0x60, 0x55, 0xbb, 0xa5, 0xe6, 0x5d, 0x81, 0x15, 0x3e, 0xe8, 0x31, 0x87, 0x3b, 0x93, 0x8d, 0xf7, 0xd2, 0xc8, 0x3c, 0x2a, 0x52, 0xb3, 0xc2, 0x21, 0x82, 0x7f, 0x96, 0x1b, 0xd0, 0x08, 0x36, 0x22, 0x32, 0xd8, 0x82, 0xa0, 0x41, 0x2a, 0x04, 0x7a, 0xfd, 0xfb, 0x85, 0x97, 0xc8, 0x65, 0xa2, 0xaa, 0x2c, 0x2c, 0xf5, 0x18, 0x99, 0x34, 0xa8, 0x3e, 0xe6, 0xb7, 0x52, 0xa6, 0x26, 0x94, 0x1e, 0xdc, 0xe0, 0xc2, 0x0b, 0x6f, 0x7a, 0x69, 0xf1, 0xcf, 0x12, 0xf9, 0xa3, 0x31, 0xcd, 0xfa, 0x9e, 0xda, 0x24, 0xc8, 0xde, 0xfa, 0x76, 0x9c, 0xcc, 0xe2, 0xef, 0x74, 0x6c, 0x30, 0x7d, 0x8b, 0xb0, 0x48, 0x91, 0xfc, 0xef, 0xd4, 0x9a, 0xf3, 0xe6, 0xf9, 0x69, 0x91, 0xa7, 0xa2, 0x0f, 0x27, 0xb6, 0xc0, 0xaf, 0x12, 0x18, 0xbe, 0x31, 0x79, 0x1d, 0x1d, 0x02, 0x93, 0xe0, 0x81, 0xb9, 0x0a, 0xf3, 0xb9, 0x2e, 0xcb, 0x17, 0x5e, 0xc8, 0xc7, 0x89, 0xf7, 0xa8, 0x64, 0x2e, 0x04, 0x1e, 0xc3, 0xa6, 0x1a, 0xae, 0xfe, 0xf6, 0x2a, 0x80, 0x7d, 0x1a, 0x50, 0x54, 0xad, 0xf8, 0x32, 0x3b, 0xed, 0x94, 0x22, 0x41, 0x62, 0x37, 0x32, 0xa2, 0x05, 0x1d, 0xc0, 0x1f, 0x9a, 0x20, 0xa2, 0x9a, 0xa4, 0x8b, 0x3f, 0xdf, 0x26, 0x5d, 0x0b, 0xa6, 0xc1, 0x38, 0xfb, 0x57, 0x93, 0xe2, 0x87, 0x50, 0x02, 0xe7, 0xde, 0x3f, 0x5c, 0x3f, 0xf7, 0xe8, 0x3a, 0xd2, 0x7d, 0x11, 0x1c, 0x84, 0x8b, 0x7e, 0x6e, 0x2e, 0x5a, 0xd5, 0xf2, 0x8e, 0xb7, 0xc3, 0x63, 0xf9, 0x5f, 0x96, 0x0c, 0xbc, 0x42, 0x13, 0x36, 0xce, 0x98, 0x5f, 0x94, 0x6b, 0x05, 0x15, 0xb1, 0xbd, 0xd3, 0xa8, 0x32, 0xc3, 0xfe, 0x90, 0x3f, 0x7b, 0x44, 0xe2, 0x0c, 0x92, 0xea, 0x80, 0x82, 0x6f, 0xbf, 0x97, 0xe2, 0xa4, 0xfc, 0xaf, 0x2d, 0xb1, 0xa0, 0x86, 0x98, 0xdd, 0x62, 0xed, 0xd0, 0xa8, 0x45, 0x89, 0xd7, 0x46, 0x2c, 0x44, 0x7b, 0x4a, 0x89, 0x6f, 0xe0, 0x08, 0x60, 0x04, 0x24, 0x96, 0xbd, 0x51, 0xb1, 0x92, 0x5c, 0xb7, 0x9c, 0xc3, 0xb8, 0x29, 0x01, 0x6a, 0x4c, 0x7e, 0x62, 0x79, 0x0f, 0x80, 0x58, 0xc5, 0x46, 0xf2, 0x14, 0x5a, 0xaa, 0xef, 0x4d, 0x4b, 0x1e, 0x27, 0x3f, 0xf6, 0x13, 0x00, 0xf8, 0x00, 0x8e, 0x94, 0x6b, 0x62, 0x2f, 0x60, 0xe5, 0x05, 0xf5, 0xf6, 0x29, 0x0d, 0x51, 0xeb, 0x99, 0x7d, 0x20, 0xfc, 0x3f, 0xbb, 0x3e, 0x99, 0xed, 0xd6, 0x8f, 0xf5, 0xcc, 0xe9, 0xe8, 0xc2, 0x83, 0x88, 0x1c, 0x36, 0x4f, 0xf2, 0x15, 0xcb, 0x50, 0x04, 0x5e, 0x60, 0xf4, 0xa7, 0xee, 0x45, 0xb6, 0xc9, 0xd8, 0x64, 0x47, 0xf3, 0x81, 0x41, 0xd3, 0x42, 0xdb, 0xc5, 0x30, 0x8f, 0x8c, 0x66, 0xef, 0xc4, 0x7f, 0x7c, 0x45, 0xf6, 0xd2, 0x5e, 0x65, 0x64, 0x30, 0x9a, 0x86, 0x2d, 0xb9, 0x0f, 0x4d, 0xf3, 0x31, 0x78, 0x7e, 0xcd, 0xd8, 0x9d, 0x3a, 0xaa, 0x46, 0x05, 0x3e, 0x29, 0xf1, 0x02, 0x62, 0x4d, 0xdf, 0xe8, 0x0e, 0x8a, 0x3f, 0x99, 0x28, 0x7c, 0xec, 0x19, 0xfa, 0x83, 0xe4, 0x4d, 0x55, 0x7c, 0x04, 0x41, };
18974 static const u8 ed25519_825_test_vectors_expected_sig[] = {
18975 	0xef, 0xfb, 0x29, 0xda, 0x69, 0x85, 0x97, 0x1c, 0x20, 0x2e, 0x24, 0x50, 0x30, 0x1d, 0x49, 0x71, 0x1b, 0xed, 0x25, 0xfa, 0xd8, 0x5f, 0x61, 0x99, 0xd1, 0xeb, 0x1e, 0x71, 0x91, 0x4d, 0x96, 0x4c, 0xbe, 0x18, 0xe3, 0x4c, 0xc3, 0xe3, 0x28, 0x72, 0xcd, 0xec, 0x02, 0x6b, 0xd1, 0x19, 0xa4, 0x1c, 0x1c, 0x07, 0xca, 0x41, 0xe8, 0x2a, 0xcb, 0xa6, 0x2f, 0xb0, 0xa7, 0xc8, 0x2a, 0xed, 0x80, 0x0c, };
18976 static const ec_test_case ed25519_825_test_case = {
18977 	.name = "EDDSA25519-SHA512/wei25519 825",
18978 	.ec_str_p = &wei25519_str_params,
18979 	.priv_key = ed25519_825_test_vectors_priv_key,
18980 	.priv_key_len = sizeof(ed25519_825_test_vectors_priv_key),
18981 	.nn_random = NULL,
18982 	.hash_type = SHA512,
18983 	.msg = (const char *)ed25519_825_test_vectors_message,
18984 	.msglen = sizeof(ed25519_825_test_vectors_message),
18985 	.sig_type = EDDSA25519,
18986 	.exp_sig = ed25519_825_test_vectors_expected_sig,
18987 	.exp_siglen = sizeof(ed25519_825_test_vectors_expected_sig),
18988 	.adata = NULL,
18989 	.adata_len = 0
18990 };
18991 
18992 /************************************************/
18993 static const u8 ed25519_826_test_vectors_priv_key[] = {
18994 	0x5d, 0x66, 0xce, 0xb7, 0xc6, 0xe5, 0x8c, 0xac, 0x91, 0xe2, 0x88, 0x27, 0x91, 0x70, 0xe8, 0x18, 0xe7, 0x87, 0x18, 0x0c, 0x6b, 0x42, 0xdf, 0xa1, 0x68, 0x78, 0x7d, 0xd0, 0x7f, 0x80, 0x9f, 0xa4, };
18995 static const u8 ed25519_826_test_vectors_message[] = {
18996 	0x94, 0xd7, 0x2f, 0x6d, 0xec, 0x4f, 0x7c, 0x92, 0x06, 0xb4, 0x15, 0x10, 0xce, 0x71, 0xa0, 0x29, 0x55, 0x60, 0x4f, 0x3c, 0x5d, 0xe8, 0xe4, 0x47, 0xd5, 0x87, 0x18, 0x65, 0xa7, 0x58, 0x98, 0xa4, 0xd2, 0x07, 0xa2, 0x6c, 0xf3, 0x3d, 0x10, 0xca, 0xf0, 0x5a, 0x0b, 0x6e, 0xd0, 0xd3, 0x89, 0xfe, 0xe9, 0xed, 0x49, 0x27, 0x50, 0x98, 0xa8, 0x8e, 0x1c, 0x0d, 0x83, 0x04, 0xe8, 0x1b, 0x40, 0x74, 0x21, 0x4c, 0x7a, 0x5c, 0xe1, 0x57, 0xeb, 0x26, 0x17, 0xef, 0x04, 0xe1, 0x32, 0x4b, 0xa9, 0x42, 0x12, 0x9f, 0xaf, 0x32, 0xc3, 0x1c, 0xb4, 0xaa, 0xe4, 0xa5, 0x91, 0x6c, 0x75, 0x08, 0x08, 0x72, 0x68, 0x56, 0xf7, 0x18, 0x0e, 0x57, 0x97, 0xed, 0xe4, 0x43, 0x62, 0xd7, 0x47, 0xd7, 0x0c, 0xec, 0x15, 0x9d, 0x3b, 0x6a, 0xce, 0xc6, 0x3a, 0x51, 0x4c, 0x7e, 0xf3, 0x1b, 0x2e, 0xcd, 0x16, 0xdb, 0x7f, 0xe6, 0x8e, 0xa9, 0xc5, 0xea, 0xd9, 0xd8, 0x70, 0x92, 0x18, 0x00, 0x34, 0x8f, 0x69, 0x54, 0x12, 0xf3, 0x09, 0x3e, 0x61, 0x98, 0x5a, 0x31, 0xea, 0xdb, 0x79, 0xb5, 0x9d, 0x91, 0xdd, 0x9a, 0x37, 0xf8, 0xd4, 0xef, 0x7a, 0x5d, 0xdf, 0x22, 0x3d, 0x4b, 0x24, 0x77, 0x4c, 0x2e, 0x44, 0xe3, 0xf2, 0x71, 0xff, 0xb8, 0x50, 0x0d, 0x59, 0x53, 0x81, 0xb3, 0xdf, 0x2e, 0x8e, 0x6b, 0x79, 0xee, 0x65, 0x53, 0x5a, 0x51, 0x9a, 0x43, 0xea, 0xa5, 0xe5, 0x2b, 0x25, 0x6c, 0x26, 0x43, 0x30, 0x5e, 0x31, 0x70, 0xcb, 0xe5, 0x76, 0x06, 0xa0, 0x54, 0x5f, 0x85, 0x86, 0x56, 0x5c, 0xfb, 0x75, 0xbf, 0x5e, 0x95, 0x64, 0xc6, 0x2a, 0xf0, 0x5f, 0x15, 0xee, 0x6e, 0x62, 0xaf, 0xee, 0xf8, 0xc2, 0xc7, 0xa9, 0xda, 0xe2, 0x35, 0xc9, 0xed, 0xd1, 0xd7, 0xc2, 0x5c, 0xf4, 0x9a, 0xdc, 0x03, 0x3e, 0xe7, 0xb5, 0x83, 0xf5, 0x18, 0xbc, 0x16, 0x8e, 0xa4, 0x88, 0x36, 0xb5, 0x0f, 0xfe, 0xdd, 0x20, 0x32, 0xb3, 0xf6, 0x30, 0xcc, 0x56, 0xda, 0xad, 0xd5, 0x13, 0xeb, 0xda, 0x86, 0x48, 0x23, 0x61, 0x0f, 0xc6, 0x7a, 0x72, 0xb9, 0xa7, 0xd8, 0x11, 0x71, 0x05, 0xc1, 0xc7, 0x1d, 0x85, 0xa9, 0x6b, 0x1d, 0x27, 0xa4, 0x41, 0xfa, 0x1e, 0x7c, 0x6c, 0xf8, 0x02, 0x33, 0xa4, 0x9f, 0xe0, 0xe7, 0x6a, 0x40, 0x27, 0x8d, 0x06, 0xe3, 0x43, 0x47, 0xd8, 0x7b, 0xe7, 0x7b, 0x98, 0xde, 0xd5, 0xe2, 0xa3, 0xea, 0x1a, 0xfb, 0x13, 0xbe, 0xe1, 0xe6, 0xcd, 0x6c, 0xa6, 0x3b, 0xe5, 0x4f, 0xcf, 0x88, 0xa2, 0x0c, 0xcb, 0x7a, 0x9f, 0xc3, 0x24, 0xbf, 0x61, 0x43, 0x20, 0x1b, 0x44, 0x48, 0x3b, 0xcc, 0x96, 0x40, 0x33, 0xda, 0xb7, 0x1c, 0xf8, 0xf2, 0xa5, 0x91, 0xfc, 0x05, 0x0d, 0x57, 0x24, 0xe9, 0x5a, 0xa5, 0x0d, 0x32, 0x89, 0x6e, 0xec, 0x0f, 0x3b, 0x34, 0x31, 0x1d, 0x2a, 0x99, 0x34, 0xe9, 0xf8, 0x52, 0x97, 0x7e, 0x25, 0x3f, 0x15, 0x30, 0x4c, 0xae, 0x24, 0x16, 0xc2, 0xc4, 0xfc, 0xd8, 0xf1, 0xfe, 0xcc, 0x3f, 0x1f, 0x64, 0xbb, 0x79, 0x75, 0x99, 0x29, 0xab, 0xb0, 0xe8, 0xe8, 0xf5, 0xf7, 0x29, 0x3d, 0x69, 0x1a, 0xf2, 0x2a, 0xbd, 0x3b, 0x2a, 0x67, 0x70, 0xb0, 0xcf, 0x14, 0x46, 0x08, 0xf2, 0xd6, 0x2c, 0xc7, 0xe5, 0x2b, 0xfe, 0x33, 0x3b, 0x2e, 0xd2, 0xde, 0x39, 0xb9, 0x9a, 0xfd, 0x37, 0xe3, 0xac, 0xf0, 0x7e, 0xda, 0x37, 0xdd, 0xf0, 0xdf, 0x02, 0x9b, 0xff, 0x2e, 0xc2, 0x25, 0x44, 0xb6, 0x0b, 0xd7, 0xdb, 0x23, 0x8d, 0xf1, 0x97, 0x5f, 0xfa, 0x00, 0x75, 0xa8, 0x2a, 0xbd, 0x8d, 0x6b, 0x05, 0xb2, 0x67, 0x18, 0x0b, 0x87, 0x0e, 0x21, 0xab, 0xf3, 0x69, 0x81, 0xae, 0x77, 0x68, 0xde, 0x53, 0x99, 0x3b, 0x30, 0x4f, 0x1c, 0x54, 0x53, 0x87, 0x2f, 0xdf, 0xa8, 0xed, 0xad, 0x45, 0xf8, 0x00, 0x1a, 0xa0, 0xe7, 0x34, 0x2b, 0x3b, 0x58, 0xec, 0x0f, 0x38, 0x9d, 0xcb, 0xc2, 0x71, 0xfb, 0x0f, 0x90, 0x00, 0x62, 0x87, 0x57, 0xab, 0xba, 0x58, 0xc0, 0x57, 0xe1, 0xa0, 0x89, 0x9f, 0x6f, 0xaf, 0x15, 0xf3, 0x74, 0x0f, 0x31, 0x43, 0xf5, 0xc0, 0xb7, 0xa9, 0x15, 0x96, 0x80, 0xde, 0x8c, 0x55, 0x72, 0x66, 0x44, 0x1b, 0x3b, 0x01, 0xca, 0xac, 0x12, 0xec, 0x27, 0x8f, 0x5a, 0x10, 0x25, 0xdf, 0x53, 0xed, 0xb6, 0x13, 0x4c, 0x96, 0x66, 0x3a, 0x96, 0x66, 0xae, 0x3b, 0xaa, 0x90, 0xfc, 0x83, 0x51, 0x11, 0xef, 0x05, 0x1b, 0xd9, 0x12, 0xf6, 0x79, 0x67, 0x44, 0x91, 0x13, 0xb6, 0xa8, 0x5f, 0x71, 0xdf, 0x8c, 0x60, 0x37, 0x72, 0x4e, 0xb8, 0xfc, 0x7d, 0x83, 0x19, 0xbc, 0x03, 0x85, 0xbe, 0x9b, 0x0e, 0x99, 0xe9, 0x5f, 0x9a, 0xed, 0xca, 0xe8, 0xd4, 0x5a, 0x51, 0x44, 0x76, 0xf0, 0x5b, 0xcd, 0x72, 0x35, 0xc0, 0x13, 0xeb, 0xc3, 0xae, 0xa9, 0x12, 0x3c, 0x67, 0xaa, 0x6f, 0x3b, 0x79, 0xc8, 0x5e, 0xa5, 0xdb, 0x15, 0x9e, 0xef, 0xad, 0xfb, 0x75, 0xa5, 0x0a, 0xc6, 0xb9, 0x5b, 0x49, 0x6b, 0x55, 0x72, 0x58, 0x1a, 0x76, 0x11, 0x2f, 0xf6, 0xdb, 0x26, 0x3f, 0xc1, 0x4c, 0x58, 0x18, 0xaa, 0xd5, 0xbc, 0xa3, 0xb2, 0xcb, 0x3a, 0xc8, 0x11, 0x6d, 0x42, 0x94, 0x82, 0x78, 0x1e, 0x06, 0xf6, 0x1e, 0x75, 0x63, 0xe6, 0x50, 0x5e, 0x51, 0xc8, 0xff, 0x99, 0x8b, 0xf8, 0x4a, 0xed, 0xb5, 0x20, 0x2e, 0x2f, 0x9f, 0xf4, 0xc2, 0x68, 0x98, 0x20, 0x29, 0x6c, 0xc6, 0x96, 0x03, 0x09, 0x1b, 0x8b, 0x81, 0x8f, 0xbe, 0xb2, 0xaf, 0x5f, 0x4c, 0x57, 0x06, 0x0d, 0x98, 0xc1, 0xa9, 0x04, 0x84, 0x3a, 0x70, 0xbf, 0x97, 0x5b, 0x3c, 0x3c, 0xa6, 0x03, 0x1a, 0x4c, 0xad, 0x5b, 0x4b, 0xbf, 0xba, 0x7e, 0x9b, 0x47, 0x49, 0x1a, 0xb7, 0x40, 0xd9, 0xeb, 0xe4, 0x1d, 0x76, 0x88, 0x10, 0xcb, 0x8c, 0xc5, 0x1a, 0x93, 0x7f, 0x7e, 0x3b, 0x22, 0xe3, 0xcf, 0x07, 0xce, 0xae, 0x0c, 0xe2, 0x08, 0x31, 0x49, 0x5a, 0xfc, 0xdd, 0x8c, 0x1a, 0x98, };
18997 static const u8 ed25519_826_test_vectors_expected_sig[] = {
18998 	0x6e, 0xf2, 0x64, 0xab, 0xf8, 0xb0, 0xe5, 0xc2, 0xd7, 0x93, 0xb2, 0xc7, 0x52, 0x79, 0x61, 0x4a, 0x39, 0xc7, 0x75, 0xeb, 0x2b, 0xcc, 0x08, 0x91, 0x06, 0x7a, 0xbc, 0x61, 0xf6, 0xd6, 0x44, 0xa6, 0x9f, 0xf8, 0xf8, 0x14, 0xa3, 0x05, 0x22, 0xcc, 0xa9, 0x05, 0x36, 0xf0, 0x12, 0xc6, 0x28, 0x3a, 0x76, 0xc3, 0x2b, 0x89, 0xee, 0xe1, 0xbd, 0x9a, 0x43, 0x36, 0xf4, 0xfd, 0xda, 0xc8, 0xdc, 0x0b, };
18999 static const ec_test_case ed25519_826_test_case = {
19000 	.name = "EDDSA25519-SHA512/wei25519 826",
19001 	.ec_str_p = &wei25519_str_params,
19002 	.priv_key = ed25519_826_test_vectors_priv_key,
19003 	.priv_key_len = sizeof(ed25519_826_test_vectors_priv_key),
19004 	.nn_random = NULL,
19005 	.hash_type = SHA512,
19006 	.msg = (const char *)ed25519_826_test_vectors_message,
19007 	.msglen = sizeof(ed25519_826_test_vectors_message),
19008 	.sig_type = EDDSA25519,
19009 	.exp_sig = ed25519_826_test_vectors_expected_sig,
19010 	.exp_siglen = sizeof(ed25519_826_test_vectors_expected_sig),
19011 	.adata = NULL,
19012 	.adata_len = 0
19013 };
19014 
19015 /************************************************/
19016 static const u8 ed25519_827_test_vectors_priv_key[] = {
19017 	0x62, 0xed, 0x86, 0x82, 0xbd, 0x3a, 0xb3, 0x96, 0x6e, 0xba, 0x3b, 0xff, 0xb7, 0x75, 0xa3, 0x18, 0xa0, 0x3d, 0x99, 0x93, 0x19, 0x79, 0xe9, 0x9f, 0xeb, 0x2d, 0xdb, 0xd6, 0x94, 0x55, 0xa0, 0xef, };
19018 static const u8 ed25519_827_test_vectors_message[] = {
19019 	0x9e, 0xb1, 0x3b, 0xc7, 0xfa, 0xcf, 0x51, 0xa1, 0x80, 0x54, 0x1e, 0xc1, 0xdc, 0x5f, 0x5a, 0xcb, 0x14, 0x8c, 0x8d, 0x5e, 0xad, 0xcd, 0x2c, 0x4e, 0xf0, 0x68, 0xbc, 0xdd, 0x11, 0xb3, 0x49, 0x25, 0xea, 0xbf, 0xaf, 0xab, 0xfe, 0x82, 0xa2, 0x84, 0xbc, 0xba, 0xee, 0x13, 0x81, 0x15, 0x2a, 0xf8, 0xe5, 0xe0, 0x9f, 0x03, 0x7c, 0xf1, 0xbb, 0x64, 0x84, 0xac, 0x18, 0xe3, 0x73, 0x59, 0xbf, 0xaa, 0x4c, 0x87, 0xaa, 0x07, 0xd3, 0xd1, 0x4e, 0xd0, 0x89, 0xb0, 0x53, 0x91, 0x0d, 0x1f, 0xa4, 0x73, 0xf7, 0xbc, 0xe1, 0x43, 0xe2, 0xa5, 0x9c, 0x4d, 0xaf, 0x99, 0xb6, 0xc6, 0xe4, 0xe9, 0x29, 0x1d, 0x97, 0xc8, 0x64, 0x71, 0x2a, 0xf3, 0xea, 0xba, 0x53, 0xce, 0x25, 0x17, 0xa4, 0xf7, 0x5c, 0xd7, 0xec, 0xf2, 0x78, 0xf3, 0x4e, 0x22, 0xb7, 0xdf, 0xfd, 0x08, 0x8f, 0xa5, 0xec, 0xad, 0xc0, 0xdd, 0x22, 0x13, 0x5e, 0x42, 0xa5, 0x36, 0xc6, 0x84, 0xf2, 0x19, 0x5d, 0x31, 0x5f, 0x69, 0x24, 0x57, 0x1e, 0x46, 0x3f, 0x5c, 0xfc, 0x11, 0xb9, 0xf9, 0xd0, 0x5a, 0x7e, 0xa1, 0x1b, 0x98, 0xa1, 0x69, 0xa1, 0xe3, 0x93, 0x60, 0x97, 0x3c, 0x50, 0xad, 0x45, 0xc7, 0x49, 0x1b, 0x57, 0x13, 0x8e, 0xc0, 0x50, 0xf4, 0x3c, 0xbd, 0x5d, 0x17, 0xeb, 0x3f, 0xe0, 0x01, 0x3e, 0x3d, 0x28, 0xd5, 0x26, 0x05, 0x4e, 0x07, 0x63, 0x31, 0x52, 0x24, 0x6f, 0x16, 0x55, 0x4f, 0x30, 0x54, 0x74, 0x9e, 0xea, 0x68, 0x7b, 0x9c, 0x37, 0x1b, 0x40, 0x9c, 0xd3, 0xec, 0xef, 0xb1, 0x11, 0xa1, 0xd6, 0x00, 0x40, 0x73, 0x44, 0xe6, 0xd6, 0xec, 0x38, 0xc6, 0x0f, 0x6e, 0x54, 0x5a, 0x92, 0x38, 0x2e, 0x46, 0xc4, 0xd1, 0x13, 0x12, 0x5d, 0xbe, 0x5b, 0x98, 0x26, 0xe1, 0x27, 0xf1, 0x01, 0x81, 0xa3, 0x5a, 0xcf, 0xff, 0x28, 0xab, 0x37, 0x64, 0xca, 0x7f, 0x23, 0x8f, 0xf4, 0x79, 0xfd, 0xbc, 0x45, 0xb7, 0xa2, 0xad, 0x0f, 0xf5, 0x38, 0xc8, 0xac, 0xd0, 0x01, 0x8d, 0x44, 0x70, 0xfe, 0xbc, 0xc6, 0xa3, 0x07, 0x65, 0x1c, 0xb5, 0x83, 0x2f, 0x32, 0x6b, 0x19, 0x24, 0x1b, 0xe9, 0x86, 0x7e, 0x4e, 0xca, 0x6a, 0xe3, 0x6f, 0x0e, 0x2d, 0x83, 0xfd, 0x77, 0xb9, 0x72, 0x02, 0xb3, 0x64, 0x71, 0x6e, 0x36, 0xd1, 0x89, 0x5a, 0x36, 0x85, 0x3e, 0x7e, 0x76, 0xe8, 0x8f, 0x62, 0xdb, 0xbf, 0x77, 0x26, 0xc2, 0x18, 0x05, 0x69, 0xc6, 0x66, 0x73, 0x83, 0x7a, 0xd7, 0x2f, 0xf9, 0x36, 0xcf, 0x0e, 0x2f, 0xdb, 0x9e, 0xc6, 0xaf, 0xcc, 0x79, 0xf8, 0x82, 0x9e, 0x15, 0x7f, 0x95, 0x22, 0x88, 0xf4, 0xe0, 0x0d, 0x04, 0x10, 0xa7, 0x22, 0x53, 0xbf, 0x60, 0x5e, 0xdd, 0xce, 0xb0, 0x14, 0x40, 0xde, 0xe5, 0xdd, 0x32, 0xb5, 0xa8, 0x03, 0x43, 0x9f, 0x03, 0x8c, 0x06, 0xaf, 0x1c, 0x90, 0xb2, 0x7b, 0x5f, 0xe9, 0x84, 0x3c, 0x27, 0xae, 0x76, 0x60, 0x9c, 0xbf, 0x83, 0x28, 0x35, 0xc0, 0xe3, 0xc4, 0xbb, 0x59, 0x97, 0x6c, 0xce, 0xde, 0x44, 0x87, 0x86, 0xd9, 0x1e, 0x43, 0x8e, 0x07, 0x75, 0xc0, 0x6a, 0x92, 0xd0, 0xf0, 0xb8, 0xdc, 0x0e, 0xf6, 0x82, 0x60, 0xf7, 0xdd, 0x9e, 0x68, 0x71, 0xc4, 0xd0, 0xc0, 0xc0, 0x94, 0x63, 0x85, 0x26, 0x15, 0x21, 0x85, 0x16, 0xf4, 0xa6, 0xde, 0xbf, 0xdb, 0x46, 0x27, 0x3b, 0x28, 0x33, 0x82, 0xcd, 0x9c, 0xa7, 0x44, 0xab, 0xf9, 0xfd, 0x43, 0x91, 0x94, 0xb8, 0xcf, 0x1b, 0xdb, 0xb3, 0x17, 0x5c, 0xa9, 0xc5, 0x7a, 0x1c, 0x37, 0x3c, 0x41, 0xfc, 0xe9, 0x2b, 0xd5, 0xfc, 0x01, 0x2b, 0x19, 0xa0, 0x69, 0x8a, 0xef, 0x37, 0xba, 0xf8, 0x06, 0xae, 0x09, 0xad, 0xd8, 0xcb, 0x97, 0x2a, 0x9e, 0xf9, 0xa7, 0xa5, 0xa9, 0xb1, 0xfd, 0x9a, 0x41, 0xd8, 0x54, 0xc3, 0x0c, 0xca, 0x13, 0x96, 0x14, 0x0e, 0x20, 0xc2, 0xb9, 0x86, 0x54, 0xfe, 0x6e, 0x51, 0x1b, 0x62, 0x6a, 0x43, 0x91, 0x5b, 0x22, 0xfb, 0x2d, 0xad, 0x74, 0x7b, 0xa7, 0xfe, 0x74, 0x60, 0xd8, 0xce, 0xbb, 0x20, 0x06, 0xfe, 0xa1, 0x9b, 0x32, 0x84, 0xb0, 0x9c, 0x06, 0xa6, 0xf5, 0x2f, 0x17, 0x9a, 0x32, 0xbe, 0xb5, 0x63, 0x57, 0xb9, 0x29, 0xa6, 0x59, 0xf0, 0xfe, 0x6a, 0x26, 0xb6, 0x97, 0x03, 0x3d, 0xef, 0x58, 0xba, 0x60, 0x3f, 0x43, 0x0f, 0x74, 0xaa, 0x35, 0x07, 0x09, 0x81, 0xdb, 0x74, 0xcc, 0xf1, 0x91, 0x90, 0xa1, 0xfb, 0x05, 0x14, 0x4e, 0xc0, 0xa0, 0x9a, 0x51, 0xe5, 0x47, 0x65, 0x06, 0x97, 0x30, 0xb0, 0x9a, 0x7a, 0x23, 0x31, 0xff, 0xb3, 0xde, 0x2a, 0x7e, 0x02, 0xc5, 0xe1, 0x84, 0xda, 0x40, 0x13, 0xdf, 0xe9, 0x37, 0xc3, 0x71, 0x11, 0x75, 0x24, 0xf7, 0xb2, 0x10, 0xba, 0x60, 0xe2, 0x69, 0x2d, 0xcd, 0xce, 0xf3, 0x6a, 0xb2, 0x27, 0xb4, 0xc4, 0xf0, 0x2a, 0x9f, 0x48, 0x89, 0x72, 0xb8, 0x47, 0xf0, 0xd6, 0xb5, 0x9d, 0x02, 0xee, 0x54, 0xfe, 0xde, 0x88, 0x21, 0xdb, 0x6c, 0xf7, 0x31, 0xcc, 0x8a, 0xc8, 0x95, 0x35, 0x0a, 0xc5, 0xcd, 0x4d, 0x6b, 0xaa, 0x3a, 0xd0, 0x36, 0xf0, 0x6f, 0x20, 0xd1, 0x0a, 0x14, 0x0c, 0x4a, 0xd3, 0xd1, 0x0c, 0xa9, 0x85, 0x53, 0x2e, 0x31, 0x60, 0x46, 0x27, 0x73, 0x38, 0x5a, 0x2e, 0xb5, 0xe4, 0x64, 0xd5, 0x28, 0xe1, 0xe5, 0x9c, 0x29, 0xf6, 0x6b, 0x3d, 0xe5, 0x9e, 0x9e, 0xa2, 0x8a, 0xf3, 0xf9, 0x7b, 0xfc, 0x55, 0x89, 0x03, 0x57, 0x52, 0xa5, 0xa5, 0x52, 0x3d, 0xec, 0xd2, 0xdf, 0xf0, 0x1f, 0xc0, 0x0f, 0xf3, 0x1b, 0x30, 0x15, 0x2f, 0xf5, 0xda, 0xfa, 0x33, 0x1c, 0x6a, 0xb1, 0x58, 0x73, 0xaf, 0x41, 0xaa, 0x96, 0x0a, 0xac, 0xe7, 0xd2, 0xcb, 0x4f, 0x95, 0xc2, 0x3d, 0xf4, 0x4b, 0x9e, 0x6c, 0x6e, 0x2f, 0x86, 0x78, 0x8a, 0x87, 0x2f, 0xd3, 0xa5, 0xcb, 0xe4, 0xac, 0xc9, 0x58, 0x10, 0xda, 0xa0, 0x9d, 0xcc, 0x1d, 0xf9, 0x33, 0x46, 0x5e, 0xf0, 0x40, 0xc5, 0x3d, 0x9d, 0x95, 0x9f, 0x9d, 0xad, };
19020 static const u8 ed25519_827_test_vectors_expected_sig[] = {
19021 	0x3d, 0xa8, 0xd1, 0x4d, 0xc4, 0xe7, 0x1f, 0xe6, 0xc3, 0x2e, 0xde, 0x46, 0x37, 0x88, 0xe4, 0x1b, 0x82, 0x6b, 0x4e, 0x21, 0x60, 0xba, 0x10, 0xc9, 0x5f, 0x1c, 0x8a, 0x27, 0x49, 0xaa, 0xd8, 0xf1, 0x2e, 0x98, 0xae, 0x24, 0x68, 0x30, 0x3b, 0xaf, 0x69, 0x08, 0xbd, 0xb3, 0x5e, 0xf3, 0x8a, 0x5e, 0xcd, 0x77, 0x74, 0x1e, 0x72, 0xee, 0x3a, 0x42, 0x7f, 0xd9, 0x04, 0xda, 0xe6, 0x6f, 0xcf, 0x03, };
19022 static const ec_test_case ed25519_827_test_case = {
19023 	.name = "EDDSA25519-SHA512/wei25519 827",
19024 	.ec_str_p = &wei25519_str_params,
19025 	.priv_key = ed25519_827_test_vectors_priv_key,
19026 	.priv_key_len = sizeof(ed25519_827_test_vectors_priv_key),
19027 	.nn_random = NULL,
19028 	.hash_type = SHA512,
19029 	.msg = (const char *)ed25519_827_test_vectors_message,
19030 	.msglen = sizeof(ed25519_827_test_vectors_message),
19031 	.sig_type = EDDSA25519,
19032 	.exp_sig = ed25519_827_test_vectors_expected_sig,
19033 	.exp_siglen = sizeof(ed25519_827_test_vectors_expected_sig),
19034 	.adata = NULL,
19035 	.adata_len = 0
19036 };
19037 
19038 /************************************************/
19039 static const u8 ed25519_828_test_vectors_priv_key[] = {
19040 	0x4e, 0x57, 0xf0, 0x31, 0x1f, 0xff, 0x0e, 0x5d, 0x53, 0x88, 0x49, 0xb1, 0x21, 0x6f, 0x69, 0x5b, 0x1a, 0x52, 0x77, 0x94, 0x17, 0x08, 0x20, 0x4d, 0xb2, 0xf0, 0xc1, 0x5b, 0x3c, 0x73, 0xc8, 0x2a, };
19041 static const u8 ed25519_828_test_vectors_message[] = {
19042 	0x05, 0x2a, 0x1f, 0x41, 0xeb, 0xfd, 0x4b, 0xf6, 0x5e, 0xfb, 0x0e, 0xc8, 0xe7, 0x4d, 0xd7, 0xb3, 0x06, 0x5e, 0x9c, 0x48, 0x2c, 0x49, 0xb9, 0x92, 0x62, 0xe6, 0xdf, 0xa8, 0x40, 0x7d, 0x9e, 0x31, 0xed, 0x34, 0xd2, 0x29, 0xba, 0x41, 0xfc, 0x49, 0xa9, 0x4a, 0x13, 0x09, 0xf9, 0x90, 0xa9, 0x9c, 0xb9, 0x90, 0x2f, 0xb8, 0x4f, 0x4e, 0xde, 0x91, 0xbb, 0x64, 0x71, 0x45, 0x64, 0xa9, 0x13, 0xd5, 0x74, 0xd4, 0xa3, 0xc2, 0x86, 0xf0, 0xa1, 0x92, 0xa7, 0x8c, 0xe2, 0xd5, 0x5a, 0xae, 0x5c, 0x9f, 0xb0, 0x57, 0xff, 0x36, 0x12, 0x00, 0x18, 0xb2, 0xa8, 0xb5, 0x4d, 0x98, 0x08, 0x55, 0x37, 0xea, 0x64, 0xae, 0xa9, 0x99, 0xd5, 0x32, 0x1c, 0x78, 0x80, 0xb3, 0x6a, 0xb4, 0x30, 0x18, 0xea, 0x2c, 0x92, 0xa5, 0xe6, 0x83, 0x50, 0xd3, 0xde, 0x85, 0x26, 0xe2, 0xc8, 0xbc, 0x91, 0x41, 0xf4, 0x34, 0x9a, 0x18, 0xa3, 0x4f, 0x21, 0xde, 0x0a, 0xbb, 0xf2, 0x93, 0x09, 0x87, 0x56, 0x7f, 0x0a, 0xaf, 0x8e, 0xb1, 0x91, 0x45, 0x58, 0x0d, 0x71, 0x30, 0x6c, 0xe8, 0xa6, 0x9e, 0x79, 0xf8, 0xee, 0xa2, 0x6c, 0xfa, 0x0b, 0x8b, 0xeb, 0x49, 0xcc, 0x5a, 0xa2, 0xbc, 0x77, 0xb7, 0x97, 0xd4, 0xf8, 0xd5, 0x03, 0x26, 0xff, 0xb9, 0x37, 0x39, 0x9e, 0x94, 0xfd, 0xec, 0x85, 0xe1, 0x92, 0xf1, 0x27, 0x2a, 0x80, 0xe9, 0xa0, 0xeb, 0xba, 0xf5, 0xd0, 0x1f, 0x1b, 0x97, 0x06, 0x08, 0x02, 0xbd, 0x4a, 0xf3, 0x4c, 0x0f, 0x7d, 0x7e, 0x98, 0x54, 0x3f, 0x9d, 0x66, 0xd6, 0x0e, 0x0e, 0x6b, 0xc0, 0xbf, 0x9c, 0x99, 0x0b, 0xe3, 0x1e, 0xea, 0x19, 0x78, 0xff, 0xd1, 0x67, 0x33, 0xa8, 0xab, 0xe4, 0x95, 0x58, 0xb3, 0xad, 0xd0, 0xdc, 0xe6, 0xde, 0xfd, 0x64, 0xdc, 0x04, 0x3f, 0x15, 0x19, 0xb1, 0xe9, 0xbe, 0x66, 0xe0, 0x6e, 0x41, 0xec, 0xab, 0x16, 0x8c, 0x83, 0x39, 0xa8, 0x5e, 0x0b, 0x91, 0x38, 0x18, 0x64, 0x4e, 0xa7, 0xc5, 0x33, 0x44, 0x68, 0xfd, 0x71, 0x96, 0xa0, 0x1e, 0x1d, 0x4c, 0xe8, 0xdd, 0x1e, 0x7e, 0xe3, 0x13, 0xdd, 0x53, 0x50, 0xb8, 0xdc, 0xe4, 0xf5, 0xd7, 0xa6, 0xac, 0x09, 0x85, 0x7c, 0x4d, 0x3d, 0x0f, 0x10, 0xa3, 0xd9, 0x06, 0x26, 0x09, 0x75, 0x45, 0x92, 0xad, 0x10, 0x77, 0xb2, 0xe2, 0x09, 0x6f, 0xc9, 0xe5, 0xb1, 0x97, 0x8c, 0x98, 0xb5, 0x66, 0x0d, 0xdf, 0x51, 0xb4, 0x6e, 0xde, 0x9f, 0x9d, 0xcd, 0x41, 0xb2, 0xef, 0x44, 0xe7, 0x9f, 0x6d, 0xaf, 0xf7, 0xd3, 0x62, 0x68, 0x70, 0xe2, 0x24, 0x3c, 0xaf, 0xb2, 0xf4, 0x36, 0x79, 0x39, 0x10, 0x9e, 0xd9, 0xc0, 0x14, 0x84, 0xb7, 0x9e, 0xaa, 0x30, 0xa1, 0x89, 0x1e, 0xa1, 0x8f, 0x98, 0x4e, 0x16, 0x1d, 0xcd, 0xd1, 0xbd, 0xa3, 0x71, 0x34, 0xbf, 0x67, 0x35, 0xd2, 0xb2, 0x14, 0x9b, 0x48, 0x98, 0xda, 0xcb, 0xfd, 0xa6, 0x1e, 0x60, 0x02, 0xd7, 0x2a, 0x6f, 0xc5, 0xd2, 0x1f, 0x10, 0x98, 0x21, 0x32, 0x31, 0x13, 0x2d, 0x56, 0xdf, 0x68, 0xd6, 0xa9, 0xbf, 0xdf, 0x4e, 0xdd, 0xc0, 0x52, 0x4d, 0xb8, 0xfd, 0x8f, 0x24, 0x88, 0x52, 0x04, 0x9a, 0x68, 0x25, 0xa5, 0xed, 0xd2, 0x36, 0x0c, 0x00, 0x9a, 0xf2, 0x4f, 0x0a, 0x94, 0xc5, 0x07, 0x9d, 0xdf, 0x6f, 0xe7, 0x96, 0x94, 0x5f, 0xf9, 0x84, 0xaa, 0xc3, 0x64, 0x11, 0xce, 0x80, 0xd9, 0x87, 0xc6, 0xed, 0x67, 0xb6, 0xb0, 0xdd, 0xb6, 0xd4, 0x17, 0xf6, 0xe8, 0x09, 0x99, 0x1e, 0x72, 0x9d, 0x14, 0x7d, 0xd0, 0xd2, 0x1a, 0x09, 0x32, 0x41, 0x36, 0x3c, 0xf4, 0xef, 0x3b, 0x8e, 0x3b, 0xa0, 0x2d, 0x48, 0x66, 0x33, 0xb6, 0xb2, 0x17, 0xf5, 0x49, 0x3e, 0x2e, 0x43, 0x2b, 0x8c, 0x2e, 0x27, 0xd0, 0x0c, 0x5b, 0x56, 0xc9, 0xb6, 0x5f, 0x9a, 0xed, 0x49, 0xce, 0x93, 0xd7, 0x7e, 0x7d, 0x0b, 0xf5, 0xf9, 0x2f, 0x92, 0xf5, 0xbb, 0x4b, 0x59, 0x5d, 0x66, 0xf8, 0x87, 0xa4, 0x88, 0x01, 0x33, 0xf9, 0x70, 0x46, 0x3a, 0xb8, 0xb7, 0xf3, 0xd8, 0xc7, 0x94, 0xc0, 0x40, 0x6e, 0x88, 0xe3, 0xea, 0xb9, 0xae, 0x65, 0xf1, 0xa1, 0x85, 0xd6, 0xe3, 0x9e, 0x2d, 0xd6, 0xab, 0xb8, 0xa9, 0x3d, 0x2a, 0xc4, 0xb9, 0x20, 0x83, 0x98, 0xda, 0xb8, 0x9d, 0xbc, 0x07, 0xa4, 0x1a, 0x50, 0x26, 0x40, 0x26, 0x41, 0x2d, 0xa0, 0x22, 0xb5, 0x8f, 0x48, 0x9d, 0x4d, 0xba, 0x31, 0xfb, 0x88, 0x2f, 0xec, 0xb1, 0xff, 0x8c, 0xa1, 0x82, 0x0d, 0xda, 0x18, 0x65, 0xaf, 0x15, 0x51, 0xe4, 0x6c, 0xd6, 0x18, 0xb4, 0x4c, 0x4e, 0x6e, 0xb3, 0x03, 0x7a, 0x93, 0x33, 0xfd, 0xcc, 0xef, 0x4b, 0x89, 0x51, 0x89, 0xe4, 0x39, 0x0e, 0x93, 0x14, 0x5d, 0x26, 0x4c, 0xa5, 0xf4, 0x52, 0x02, 0xa3, 0xeb, 0x28, 0x53, 0x59, 0x3f, 0xee, 0xd6, 0xc6, 0x6d, 0xbb, 0x28, 0x8f, 0xf3, 0xa3, 0xc0, 0xfa, 0x83, 0x2b, 0x2a, 0xa7, 0xe5, 0x29, 0xb5, 0x56, 0x88, 0x97, 0xb3, 0x14, 0x94, 0x02, 0xa9, 0x07, 0xe7, 0x41, 0xe1, 0x01, 0x1c, 0xe0, 0x73, 0x1c, 0x91, 0x5f, 0x91, 0x44, 0x6a, 0xa0, 0xd5, 0xca, 0xf0, 0x59, 0x5f, 0x18, 0x16, 0x43, 0x4f, 0xa4, 0x57, 0x6d, 0xb3, 0xbc, 0x31, 0xe1, 0x0c, 0xc2, 0xaf, 0x33, 0xf6, 0x13, 0xf0, 0x3c, 0xa7, 0xb9, 0x49, 0x1a, 0x0a, 0x34, 0x05, 0x25, 0x27, 0x1a, 0xb5, 0x37, 0xf6, 0x2a, 0x11, 0xa8, 0x4d, 0xa0, 0x1c, 0x7f, 0x55, 0x81, 0xad, 0x57, 0x38, 0xc3, 0x72, 0xb5, 0x33, 0x5b, 0xab, 0x9b, 0x2b, 0x9d, 0xc2, 0xfe, 0x91, 0xe9, 0x33, 0x30, 0x4d, 0x94, 0x01, 0xba, 0x8e, 0x1c, 0xe8, 0xdc, 0x55, 0xc4, 0xfb, 0x46, 0x6b, 0x3a, 0x8e, 0xd7, 0xf5, 0x3a, 0x12, 0x2b, 0x83, 0x81, 0xd8, 0xf2, 0x90, 0x47, 0xd7, 0x26, 0x4d, 0x06, 0xfb, 0x51, 0xec, 0x3e, 0x70, 0x07, 0x1f, 0x27, 0x36, 0xa4, 0xe7, 0xe1, 0x53, 0x7a, 0x52, 0xfa, 0x25, 0x6a, 0x04, 0xee, 0x86, 0xfa, 0xd2, 0x7a, 0xd2, 0xd2, 0x8a, 0x9b, 0x36, 0x29, };
19043 static const u8 ed25519_828_test_vectors_expected_sig[] = {
19044 	0x4f, 0xdc, 0x7b, 0x6e, 0x28, 0x27, 0xf6, 0x4b, 0xa3, 0xc0, 0x33, 0xc7, 0xfb, 0x6d, 0x1b, 0x35, 0xdd, 0x68, 0x0f, 0x53, 0x29, 0x99, 0xa0, 0xd7, 0x7a, 0xeb, 0x27, 0x6c, 0x31, 0xbd, 0x9e, 0x39, 0xc6, 0x70, 0x97, 0x8b, 0xe4, 0x72, 0x43, 0xc1, 0x13, 0x22, 0x3a, 0x57, 0xaa, 0x10, 0x23, 0x31, 0x50, 0x67, 0x8b, 0x40, 0xdb, 0x78, 0x59, 0x1c, 0x04, 0xd0, 0x8d, 0xf5, 0x7a, 0x70, 0xa2, 0x09, };
19045 static const ec_test_case ed25519_828_test_case = {
19046 	.name = "EDDSA25519-SHA512/wei25519 828",
19047 	.ec_str_p = &wei25519_str_params,
19048 	.priv_key = ed25519_828_test_vectors_priv_key,
19049 	.priv_key_len = sizeof(ed25519_828_test_vectors_priv_key),
19050 	.nn_random = NULL,
19051 	.hash_type = SHA512,
19052 	.msg = (const char *)ed25519_828_test_vectors_message,
19053 	.msglen = sizeof(ed25519_828_test_vectors_message),
19054 	.sig_type = EDDSA25519,
19055 	.exp_sig = ed25519_828_test_vectors_expected_sig,
19056 	.exp_siglen = sizeof(ed25519_828_test_vectors_expected_sig),
19057 	.adata = NULL,
19058 	.adata_len = 0
19059 };
19060 
19061 /************************************************/
19062 static const u8 ed25519_829_test_vectors_priv_key[] = {
19063 	0x39, 0xf0, 0x55, 0x6b, 0x1c, 0x5d, 0xca, 0xb3, 0x87, 0x10, 0x41, 0x81, 0xbb, 0x30, 0x4d, 0xe0, 0xcf, 0x81, 0x59, 0x20, 0xb9, 0x72, 0xe8, 0x71, 0xd5, 0xf0, 0xfb, 0x41, 0x6d, 0x8e, 0x61, 0x6a, };
19064 static const u8 ed25519_829_test_vectors_message[] = {
19065 	0xa8, 0xd0, 0x34, 0xe1, 0x70, 0xfc, 0x22, 0xb5, 0x7a, 0x44, 0xaa, 0x62, 0x69, 0xed, 0x1f, 0x01, 0xcb, 0xa8, 0x01, 0xf3, 0x98, 0xdf, 0x1a, 0xdf, 0xe7, 0xdf, 0x04, 0x4d, 0x5f, 0xa4, 0x68, 0xbb, 0xfa, 0x8a, 0xf4, 0x74, 0x9a, 0xb5, 0x0d, 0x24, 0xd6, 0x2e, 0x31, 0x3a, 0xc0, 0xe7, 0x3a, 0x64, 0xb4, 0x28, 0x2b, 0x74, 0x62, 0x6a, 0xf2, 0xb4, 0xa4, 0xb5, 0x4c, 0x27, 0x4e, 0x5a, 0x6b, 0xc2, 0x80, 0xb6, 0xdc, 0x25, 0xdc, 0xfe, 0x07, 0x81, 0x4c, 0x9c, 0x81, 0x6d, 0x2f, 0x9e, 0x36, 0xc0, 0x5b, 0x9b, 0xfe, 0xdf, 0xf7, 0xc6, 0xb0, 0x3c, 0xdd, 0xeb, 0xd4, 0x73, 0x5e, 0x09, 0x93, 0xd3, 0xc3, 0xfd, 0xc6, 0x54, 0x04, 0x43, 0xc6, 0x00, 0x5e, 0x90, 0x0b, 0x40, 0x35, 0xe1, 0x40, 0x8a, 0x85, 0x01, 0x6a, 0xa1, 0xb8, 0x92, 0x02, 0x99, 0x0e, 0x5d, 0x84, 0xed, 0x99, 0x81, 0xc2, 0x9b, 0x77, 0x20, 0x6d, 0x7c, 0x11, 0x30, 0x52, 0xa2, 0x02, 0x98, 0x12, 0xc6, 0xea, 0x13, 0xaa, 0xe8, 0xbe, 0x0a, 0xca, 0x7a, 0x33, 0x06, 0xbf, 0x61, 0x72, 0x42, 0x29, 0x8e, 0x68, 0xbe, 0xcd, 0x0d, 0x5d, 0x16, 0xc8, 0x88, 0x7f, 0xd1, 0x95, 0x0b, 0x77, 0x85, 0xa4, 0x6b, 0xb0, 0x22, 0xb3, 0x9f, 0x76, 0x07, 0xcd, 0x89, 0x13, 0x71, 0x8b, 0x30, 0x17, 0xfc, 0x3f, 0x86, 0xd6, 0x93, 0x3f, 0x75, 0xee, 0xc5, 0x19, 0x1a, 0xd1, 0xf1, 0x98, 0x9a, 0x8d, 0x26, 0x17, 0x86, 0xf5, 0x6b, 0xe4, 0xa9, 0x88, 0x37, 0x0d, 0xb8, 0x29, 0x61, 0xa9, 0xfc, 0xc9, 0x53, 0x54, 0x2e, 0x51, 0xc2, 0xe0, 0x86, 0xdb, 0x0e, 0x02, 0xb4, 0xfc, 0x34, 0x66, 0x94, 0xab, 0xd9, 0x05, 0x9d, 0x5b, 0x11, 0x72, 0x26, 0x47, 0x66, 0x9e, 0x7f, 0x17, 0xb7, 0x45, 0xa6, 0x0b, 0x02, 0xf7, 0x33, 0x9f, 0xcc, 0x99, 0xbc, 0x35, 0xd5, 0x9f, 0xd0, 0xb9, 0x8b, 0x60, 0xc3, 0x14, 0xab, 0xd4, 0xbf, 0x8a, 0xa4, 0xb7, 0xea, 0xe0, 0x9d, 0xd0, 0x09, 0x7a, 0xcb, 0x91, 0x89, 0xf0, 0x2c, 0xf8, 0x5a, 0x25, 0x1a, 0xc9, 0x2a, 0xaf, 0x69, 0x1b, 0x15, 0xcd, 0x4a, 0x33, 0xb5, 0x8d, 0x76, 0x63, 0xab, 0xd0, 0xb0, 0x44, 0x43, 0x33, 0x04, 0x4a, 0xf5, 0xce, 0x20, 0xfd, 0x71, 0xcb, 0xaf, 0xfc, 0x0d, 0x29, 0x83, 0x58, 0x19, 0xf4, 0x92, 0x93, 0xfc, 0x26, 0xe7, 0xf9, 0x78, 0x7f, 0xc3, 0x68, 0xc4, 0xd3, 0x5c, 0xae, 0x92, 0x74, 0x7f, 0x21, 0xca, 0x1f, 0x3e, 0xfd, 0x87, 0xa0, 0xd8, 0x10, 0x41, 0x99, 0x41, 0x64, 0x82, 0xd0, 0x7b, 0xfe, 0xc1, 0x28, 0x1c, 0x66, 0xf5, 0x65, 0x28, 0x5b, 0xf6, 0x72, 0xd5, 0xe7, 0x48, 0x64, 0x00, 0x66, 0x0c, 0x01, 0x75, 0x55, 0xe9, 0xfa, 0x2b, 0xf6, 0xa4, 0xe7, 0x02, 0x7f, 0x0e, 0x7e, 0x5f, 0x44, 0x3e, 0xd6, 0x58, 0xb7, 0x5b, 0x59, 0x06, 0x12, 0xab, 0xde, 0x0d, 0x80, 0xd1, 0xa2, 0x6c, 0xb8, 0xbd, 0xe7, 0x6b, 0x99, 0x6e, 0xff, 0x6a, 0x74, 0xe3, 0xda, 0xfc, 0x59, 0xeb, 0x1b, 0x58, 0x4f, 0x45, 0x97, 0xa2, 0x39, 0xcd, 0x83, 0x9f, 0xa1, 0xf1, 0xb7, 0xbd, 0xa1, 0xa2, 0x4d, 0x15, 0x0c, 0x4e, 0x24, 0xb9, 0x1c, 0xec, 0x01, 0xee, 0x53, 0xa3, 0xac, 0x85, 0x2a, 0x91, 0x2d, 0xe1, 0x95, 0xa3, 0xc2, 0x9d, 0xd7, 0x07, 0x9a, 0xa7, 0xe8, 0x8a, 0xa8, 0x1e, 0x9d, 0x31, 0xb8, 0xfc, 0xcd, 0x43, 0x5e, 0xda, 0x11, 0x3c, 0x3f, 0x82, 0x45, 0x8b, 0x7f, 0x79, 0x33, 0x57, 0x2b, 0x77, 0x67, 0x53, 0xc9, 0x22, 0x40, 0xcc, 0x03, 0x61, 0x58, 0xa4, 0xba, 0x0e, 0x56, 0xef, 0xed, 0x53, 0xec, 0xb5, 0x3f, 0xc0, 0x93, 0xfe, 0xad, 0x14, 0x34, 0x34, 0x85, 0xae, 0x5d, 0x91, 0x05, 0xbb, 0x16, 0x3f, 0x26, 0x25, 0x14, 0xe4, 0x8b, 0xe7, 0x41, 0x59, 0xc9, 0xfa, 0xbc, 0xb7, 0x1d, 0x1a, 0x42, 0x80, 0xd9, 0xed, 0x70, 0xd7, 0xe4, 0x2b, 0x75, 0xf7, 0xfd, 0xad, 0xd0, 0x2d, 0x69, 0x19, 0x8f, 0x5f, 0x46, 0x5b, 0xf6, 0x04, 0xcb, 0x42, 0x54, 0x41, 0x7b, 0xac, 0x37, 0x14, 0xb3, 0xa9, 0x9e, 0x6f, 0x1a, 0xce, 0xc9, 0xe3, 0xb3, 0xd0, 0x97, 0xf9, 0x72, 0xfb, 0xc3, 0x6f, 0x2e, 0xda, 0x39, 0x26, 0xd5, 0x61, 0x12, 0xd4, 0xe9, 0x09, 0x7d, 0x89, 0xbd, 0xc3, 0x59, 0x37, 0xb9, 0xa3, 0x15, 0x8e, 0x7c, 0xdd, 0x5d, 0xa4, 0x01, 0xe1, 0x80, 0xd3, 0xed, 0xe6, 0xb1, 0xff, 0x02, 0x86, 0x41, 0x92, 0xeb, 0x72, 0x97, 0x81, 0x53, 0x4f, 0x49, 0x64, 0xdd, 0xf2, 0xaf, 0x11, 0x80, 0x0d, 0x8b, 0x5b, 0x6d, 0x01, 0xb2, 0x09, 0xaa, 0x33, 0x69, 0x36, 0x6c, 0x19, 0xa2, 0x8c, 0x79, 0xa8, 0x7d, 0x21, 0x74, 0xec, 0x22, 0xfb, 0x14, 0x89, 0xa6, 0x75, 0x5c, 0x34, 0x8a, 0x99, 0x6d, 0x0a, 0xa5, 0x6e, 0x0f, 0x60, 0xd5, 0x8e, 0x26, 0xbe, 0xfa, 0x23, 0xa8, 0x6b, 0xef, 0x4e, 0x35, 0x29, 0x51, 0x2e, 0x30, 0xa9, 0xd1, 0xc5, 0xe4, 0x88, 0x50, 0x18, 0xcb, 0x97, 0xae, 0xb7, 0xc9, 0x3c, 0x5c, 0x41, 0xca, 0xa3, 0x42, 0x36, 0x57, 0x5c, 0x22, 0x6f, 0x3b, 0x23, 0x5e, 0xdd, 0xba, 0x36, 0x4e, 0x28, 0x5b, 0x6e, 0x35, 0x27, 0x07, 0xbb, 0xb3, 0xb3, 0x39, 0xbb, 0xf2, 0xa6, 0x3a, 0x9c, 0xb9, 0xbd, 0x33, 0x3a, 0x77, 0xe7, 0x9b, 0xd5, 0x8a, 0x48, 0xe1, 0x4c, 0xe5, 0x88, 0x6e, 0xd0, 0xcd, 0x07, 0xc2, 0xd1, 0x65, 0xa8, 0x1b, 0x5e, 0x6a, 0x31, 0xa8, 0xae, 0x78, 0x06, 0xbc, 0xf2, 0xe0, 0xc4, 0xec, 0x29, 0xa9, 0x67, 0x72, 0x5e, 0x57, 0x7f, 0x17, 0x41, 0xee, 0x68, 0xf3, 0x45, 0xf5, 0xf7, 0xab, 0x0f, 0xad, 0x31, 0xc8, 0xb4, 0xb1, 0x8b, 0x43, 0x1c, 0x49, 0x77, 0xd5, 0xc5, 0x84, 0x00, 0x4b, 0x45, 0xf7, 0xcd, 0x19, 0x61, 0xaf, 0xfe, 0x87, 0x38, 0xe2, 0x4c, 0x38, 0x26, 0x10, 0xef, 0xe9, 0x98, 0x35, 0x3d, 0x7e, 0xba, 0xf9, 0x19, 0xb2, 0x79, 0xbb, 0xb6, 0x91, 0xc3, 0x05, 0x2b, 0x8b, 0x2c, 0x5f, 0x09, 0x80, 0x8e, 0xf3, 0xa6, };
19066 static const u8 ed25519_829_test_vectors_expected_sig[] = {
19067 	0x01, 0x66, 0xaf, 0xed, 0x5a, 0x8f, 0x7c, 0x3f, 0x7a, 0xd6, 0xf3, 0xfd, 0xd2, 0x93, 0x8e, 0xff, 0x00, 0x89, 0x8e, 0xab, 0x81, 0x5c, 0x54, 0x55, 0xac, 0x90, 0xfb, 0x51, 0xf6, 0xe1, 0x85, 0x4f, 0x0c, 0x07, 0x53, 0x19, 0x4b, 0x76, 0x29, 0x59, 0x4c, 0xc1, 0x27, 0x1b, 0x00, 0x34, 0x31, 0x22, 0x1c, 0x57, 0x4b, 0x0c, 0x0d, 0x19, 0x08, 0x2f, 0xee, 0xda, 0x51, 0xb0, 0x84, 0xae, 0x5e, 0x03, };
19068 static const ec_test_case ed25519_829_test_case = {
19069 	.name = "EDDSA25519-SHA512/wei25519 829",
19070 	.ec_str_p = &wei25519_str_params,
19071 	.priv_key = ed25519_829_test_vectors_priv_key,
19072 	.priv_key_len = sizeof(ed25519_829_test_vectors_priv_key),
19073 	.nn_random = NULL,
19074 	.hash_type = SHA512,
19075 	.msg = (const char *)ed25519_829_test_vectors_message,
19076 	.msglen = sizeof(ed25519_829_test_vectors_message),
19077 	.sig_type = EDDSA25519,
19078 	.exp_sig = ed25519_829_test_vectors_expected_sig,
19079 	.exp_siglen = sizeof(ed25519_829_test_vectors_expected_sig),
19080 	.adata = NULL,
19081 	.adata_len = 0
19082 };
19083 
19084 /************************************************/
19085 static const u8 ed25519_830_test_vectors_priv_key[] = {
19086 	0xba, 0xb3, 0xff, 0x7a, 0x44, 0x48, 0xd8, 0xa0, 0x3d, 0x8a, 0xcf, 0xdb, 0x91, 0x3f, 0x77, 0xfe, 0x77, 0x80, 0x43, 0x95, 0xc3, 0xe5, 0x4e, 0xc2, 0x35, 0x11, 0x79, 0x27, 0xe3, 0x2b, 0x50, 0xd5, };
19087 static const u8 ed25519_830_test_vectors_message[] = {
19088 	0xb6, 0x47, 0xb6, 0x7c, 0xf0, 0x1c, 0x2c, 0xac, 0xc3, 0x9d, 0xe5, 0x96, 0x9e, 0x19, 0x9b, 0xe6, 0xd9, 0x32, 0x01, 0x67, 0xa4, 0xce, 0xbb, 0xf1, 0x62, 0x59, 0x50, 0xb1, 0xe6, 0xb7, 0xad, 0xf5, 0xca, 0x24, 0xd1, 0x34, 0x95, 0x68, 0x86, 0x5f, 0xbb, 0xfd, 0x90, 0xf5, 0x13, 0xf0, 0x5f, 0x79, 0xf7, 0x0a, 0x63, 0xa2, 0x38, 0x73, 0xdc, 0x7a, 0x19, 0x5d, 0x4b, 0x28, 0x5a, 0x08, 0xf3, 0x0e, 0xe0, 0x61, 0xd0, 0xb8, 0xe6, 0xb4, 0xd6, 0xbf, 0x9b, 0x2e, 0xcf, 0x2c, 0x69, 0xf3, 0xd5, 0xa0, 0x7a, 0x67, 0x30, 0x53, 0x7c, 0xca, 0x4a, 0x4e, 0x4c, 0x7e, 0xe6, 0x84, 0x70, 0x2b, 0xff, 0x88, 0x3f, 0xab, 0x8b, 0xca, 0xf8, 0x93, 0x11, 0xc5, 0x49, 0x8b, 0xcc, 0xb5, 0xa0, 0xf7, 0xc8, 0xd4, 0x9b, 0x54, 0xf4, 0x82, 0xff, 0xfb, 0xca, 0x6e, 0x7d, 0xa2, 0x62, 0x45, 0x2b, 0xa5, 0x9a, 0x57, 0xa6, 0x87, 0x9d, 0x81, 0xb7, 0x3c, 0xd7, 0xad, 0xf7, 0x2a, 0x3b, 0xe2, 0x8a, 0x37, 0x3c, 0xd6, 0x33, 0x10, 0x40, 0x84, 0x61, 0xc2, 0x1b, 0x90, 0x7f, 0x63, 0xe0, 0x86, 0xb2, 0x92, 0xff, 0x02, 0x83, 0x3e, 0x8a, 0x2f, 0x46, 0xad, 0xbd, 0x67, 0x1d, 0x02, 0xb0, 0x3a, 0x69, 0xac, 0xa2, 0xe1, 0x1d, 0x28, 0x7c, 0x52, 0x2a, 0x95, 0x45, 0x20, 0x44, 0x2e, 0xce, 0xfa, 0xa9, 0x05, 0xdb, 0xfc, 0xc8, 0x25, 0x4c, 0x58, 0xc3, 0x95, 0x4a, 0x89, 0xbf, 0x56, 0xcb, 0xe0, 0x1a, 0xd5, 0x63, 0x19, 0x71, 0xeb, 0x39, 0xeb, 0x43, 0x2a, 0x85, 0x4e, 0x69, 0x19, 0x29, 0xdf, 0x7e, 0x48, 0xb9, 0x00, 0xca, 0x6e, 0x74, 0x0a, 0xcc, 0xf5, 0x78, 0xb3, 0x17, 0x95, 0xb4, 0x9a, 0x6c, 0xa7, 0x74, 0xbd, 0x8b, 0x99, 0x31, 0x06, 0xa9, 0xc4, 0x94, 0x8c, 0x18, 0x71, 0x49, 0x48, 0x31, 0x59, 0x90, 0xa5, 0xf1, 0x91, 0x69, 0x24, 0x20, 0xf2, 0x89, 0x32, 0x8a, 0xb7, 0x13, 0xec, 0x19, 0xb7, 0xea, 0x89, 0x4d, 0x16, 0xe6, 0x47, 0x61, 0x00, 0x87, 0x1c, 0xf3, 0x16, 0x8e, 0x4f, 0x93, 0x5b, 0x55, 0x05, 0xd1, 0xed, 0x5b, 0x0a, 0xa2, 0x9b, 0xe3, 0x6f, 0xa3, 0xa3, 0x46, 0xac, 0x3e, 0x76, 0xf1, 0x43, 0xc4, 0x6c, 0xa6, 0x91, 0x23, 0xb7, 0x9c, 0x36, 0x39, 0x9a, 0x0d, 0x2e, 0xd3, 0x02, 0x77, 0x24, 0x94, 0xad, 0xf4, 0x42, 0xbb, 0xaf, 0xbc, 0x4d, 0x01, 0x53, 0x26, 0x92, 0xc7, 0x85, 0x9d, 0xf0, 0x4d, 0x2c, 0xa7, 0x8b, 0xa5, 0x5d, 0x77, 0xfd, 0xf3, 0xe5, 0xad, 0x99, 0x37, 0x86, 0xa2, 0x4c, 0xff, 0x21, 0x99, 0xbb, 0x49, 0x38, 0x78, 0x73, 0xcc, 0x41, 0x4b, 0x4c, 0xf1, 0x13, 0x7a, 0xbb, 0x7e, 0x94, 0xae, 0x3d, 0xdb, 0xf9, 0x7f, 0x53, 0x4a, 0x18, 0xfc, 0x5a, 0xe5, 0x85, 0x23, 0xa3, 0xcc, 0x52, 0x28, 0x3d, 0xc7, 0xb0, 0x16, 0xf3, 0x1c, 0xd6, 0x55, 0x79, 0x81, 0xc5, 0x07, 0x6c, 0x77, 0x4f, 0x30, 0x3a, 0x47, 0xc4, 0x27, 0x87, 0x0e, 0x20, 0x7e, 0xd8, 0xbd, 0x66, 0x64, 0x0f, 0xf0, 0x92, 0xdb, 0x50, 0x3f, 0xa1, 0x24, 0xbf, 0xdc, 0xf0, 0x20, 0x05, 0x1d, 0xad, 0xd1, 0x06, 0xdd, 0x24, 0x58, 0x40, 0xb3, 0x19, 0x10, 0xb8, 0xa9, 0x06, 0x0d, 0x59, 0x86, 0xf0, 0x2b, 0x60, 0xaa, 0x5e, 0x33, 0xb4, 0xd7, 0x55, 0x09, 0x12, 0xcd, 0xc5, 0x77, 0x6c, 0x77, 0x2a, 0xac, 0x93, 0xae, 0x19, 0xc7, 0x3b, 0x7e, 0xcf, 0xca, 0x38, 0x9e, 0x62, 0x76, 0x81, 0xa8, 0x78, 0x1e, 0xb4, 0x7d, 0x84, 0xe9, 0x34, 0x60, 0xba, 0x89, 0x1d, 0x3f, 0xf6, 0xea, 0xdf, 0x8f, 0x2a, 0x90, 0x3c, 0x38, 0x34, 0x74, 0xbe, 0xaa, 0x42, 0xb9, 0x0e, 0x03, 0x22, 0x36, 0xdc, 0xd8, 0x98, 0xd0, 0x2a, 0x40, 0xef, 0xb4, 0x4e, 0x47, 0xea, 0xd5, 0x2b, 0x75, 0xb0, 0x9c, 0x7d, 0xa1, 0xcd, 0x6a, 0x2d, 0xfd, 0x4d, 0x1c, 0x04, 0x52, 0xde, 0x69, 0xf6, 0xac, 0xac, 0x1a, 0x68, 0xdd, 0x78, 0xda, 0xf9, 0x72, 0xae, 0x26, 0x08, 0x21, 0xe2, 0xec, 0x52, 0x2f, 0xb5, 0x74, 0x9b, 0xeb, 0xe0, 0xad, 0xb4, 0x52, 0xbf, 0xa4, 0xfa, 0xa1, 0xe9, 0x79, 0x11, 0xc1, 0x29, 0x9f, 0x16, 0x56, 0x8d, 0x68, 0xee, 0xf4, 0x05, 0xf4, 0xb1, 0xcd, 0xac, 0xab, 0xed, 0x59, 0xf7, 0xb0, 0xfb, 0xce, 0xab, 0x71, 0x9a, 0x34, 0xb2, 0x99, 0xf5, 0x8a, 0x4a, 0xe8, 0x15, 0x4f, 0x98, 0xf4, 0xd9, 0xf4, 0xf1, 0x40, 0xb1, 0xf0, 0x85, 0x00, 0x69, 0x46, 0x72, 0x5e, 0x7c, 0x29, 0xbb, 0x0b, 0xc6, 0xcc, 0xf2, 0x53, 0x44, 0x97, 0xc6, 0x1d, 0x4c, 0x16, 0x12, 0x62, 0x4a, 0x61, 0xd7, 0x0d, 0x26, 0xc3, 0xef, 0xb7, 0xd7, 0xc3, 0x51, 0x84, 0x86, 0x57, 0xf7, 0xf8, 0xee, 0xbf, 0x8b, 0x99, 0x07, 0x47, 0x74, 0x0e, 0x6f, 0x91, 0x0c, 0x97, 0xce, 0xf1, 0x50, 0x37, 0x57, 0x65, 0xc8, 0xc0, 0xb3, 0xb4, 0x49, 0xc0, 0xd0, 0x9d, 0x66, 0xf0, 0x08, 0xe6, 0x7c, 0xfa, 0x76, 0xea, 0x2b, 0x68, 0x08, 0xb6, 0xfe, 0x63, 0x2e, 0xaf, 0xe0, 0x58, 0x7f, 0x37, 0xe3, 0x6b, 0xe9, 0x8d, 0xcb, 0x17, 0xa3, 0xf4, 0xa1, 0x5b, 0x65, 0xa9, 0xf6, 0xfc, 0xf9, 0x64, 0x2b, 0x52, 0x52, 0x20, 0x77, 0xb1, 0xfb, 0x4c, 0xc3, 0xc0, 0x8d, 0xf4, 0xb4, 0x67, 0xca, 0x71, 0x6d, 0xb1, 0x6b, 0x73, 0x7f, 0x78, 0x2c, 0xdf, 0x38, 0x71, 0x70, 0xa5, 0xf1, 0xf6, 0xa7, 0xae, 0x0a, 0xb3, 0xf5, 0xb7, 0xc5, 0x85, 0xe3, 0xb0, 0x65, 0x5a, 0x64, 0x56, 0xa5, 0x03, 0x59, 0x5c, 0xe8, 0xea, 0xea, 0x25, 0x37, 0x85, 0x5e, 0x7f, 0x0d, 0x50, 0x61, 0xbc, 0x29, 0xb4, 0xe6, 0x7d, 0xaa, 0x82, 0x46, 0x3c, 0x19, 0x0e, 0x9f, 0xdd, 0xd5, 0x2f, 0x83, 0x22, 0xdd, 0xb4, 0xe0, 0xf2, 0x6b, 0x68, 0x77, 0x82, 0x28, 0xeb, 0x57, 0xe1, 0xa1, 0x85, 0xb7, 0x02, 0x5d, 0xa1, 0x49, 0x87, 0xd4, 0x4b, 0xaa, 0x76, 0x7b, 0x22, 0xee, 0x7f, 0x4c, 0x84, 0x59, 0x10, 0x32, 0xe8, 0x8e, 0xc1, 0x2e, 0xb8, 0xc5, 0xa4, 0xb9, 0xe1, 0x57, 0xec, };
19089 static const u8 ed25519_830_test_vectors_expected_sig[] = {
19090 	0xd6, 0xb4, 0x13, 0x5f, 0xc7, 0xac, 0xb3, 0xd7, 0xcd, 0xf9, 0x87, 0x89, 0x6d, 0x91, 0xb8, 0xa9, 0x0d, 0xb5, 0x84, 0xd8, 0x93, 0x3a, 0x6f, 0x30, 0x29, 0xe3, 0x26, 0x1e, 0xc1, 0xc3, 0x90, 0xcb, 0xac, 0xfa, 0xaf, 0xef, 0xf4, 0x43, 0xb6, 0xda, 0x4f, 0xdb, 0x1d, 0x84, 0xc6, 0x4a, 0x54, 0x56, 0x0f, 0xef, 0xfa, 0x2f, 0x1c, 0x7a, 0x91, 0xbd, 0xe9, 0x73, 0x02, 0x22, 0x92, 0x3b, 0x67, 0x03, };
19091 static const ec_test_case ed25519_830_test_case = {
19092 	.name = "EDDSA25519-SHA512/wei25519 830",
19093 	.ec_str_p = &wei25519_str_params,
19094 	.priv_key = ed25519_830_test_vectors_priv_key,
19095 	.priv_key_len = sizeof(ed25519_830_test_vectors_priv_key),
19096 	.nn_random = NULL,
19097 	.hash_type = SHA512,
19098 	.msg = (const char *)ed25519_830_test_vectors_message,
19099 	.msglen = sizeof(ed25519_830_test_vectors_message),
19100 	.sig_type = EDDSA25519,
19101 	.exp_sig = ed25519_830_test_vectors_expected_sig,
19102 	.exp_siglen = sizeof(ed25519_830_test_vectors_expected_sig),
19103 	.adata = NULL,
19104 	.adata_len = 0
19105 };
19106 
19107 /************************************************/
19108 static const u8 ed25519_831_test_vectors_priv_key[] = {
19109 	0x48, 0x6c, 0x7b, 0x43, 0x6c, 0x1d, 0x43, 0xd6, 0xb7, 0x03, 0x51, 0x22, 0x83, 0xc1, 0x66, 0xdc, 0x86, 0x3e, 0x5a, 0x33, 0x80, 0x2f, 0x4e, 0xa6, 0x5f, 0xc7, 0x38, 0x77, 0x89, 0x02, 0xd0, 0x14, };
19110 static const u8 ed25519_831_test_vectors_message[] = {
19111 	0xaf, 0x03, 0x60, 0x53, 0x67, 0x2d, 0xcf, 0x3a, 0xa2, 0x6e, 0x28, 0xec, 0x6a, 0xa6, 0x42, 0xce, 0x28, 0x4b, 0x89, 0x6c, 0x69, 0x88, 0x7d, 0xfd, 0xcf, 0x08, 0x24, 0x51, 0x5e, 0xb0, 0x84, 0x8d, 0x9d, 0x97, 0x0c, 0xa2, 0x72, 0xdf, 0x77, 0xa8, 0x6b, 0x3f, 0xf6, 0xdd, 0xaf, 0x3c, 0xba, 0xdd, 0x3a, 0xb6, 0x28, 0x3b, 0xc3, 0x7c, 0xdf, 0x7a, 0x56, 0x07, 0xd5, 0xdf, 0xc7, 0xcf, 0x96, 0x32, 0x92, 0x99, 0xcc, 0x53, 0xed, 0xbb, 0xe6, 0x57, 0xfd, 0xfa, 0x2c, 0xa2, 0x44, 0x67, 0x05, 0x0a, 0x0a, 0xeb, 0x8c, 0xff, 0xd7, 0xd3, 0x3d, 0x54, 0x3e, 0xc2, 0xc1, 0x91, 0xcc, 0x0b, 0xce, 0x89, 0xac, 0x37, 0xd3, 0x32, 0x93, 0xb1, 0x88, 0x8c, 0xcb, 0x76, 0xc2, 0x8a, 0xdc, 0x67, 0x1a, 0x49, 0x35, 0xa8, 0x46, 0xd9, 0x07, 0xe4, 0xad, 0xd0, 0x11, 0x0f, 0xeb, 0xbe, 0xe5, 0xae, 0xc8, 0x0f, 0x9d, 0x2f, 0xf7, 0x4e, 0x2a, 0xf4, 0xfd, 0xbe, 0xbb, 0xcf, 0x49, 0x10, 0x5a, 0x64, 0x69, 0xd7, 0x38, 0x00, 0x06, 0xb2, 0xca, 0x44, 0x36, 0x48, 0x14, 0x45, 0x4e, 0x44, 0x5e, 0x36, 0xdc, 0x00, 0x12, 0xf3, 0x39, 0xc9, 0x68, 0x54, 0xf8, 0x36, 0x44, 0x2a, 0x05, 0xa5, 0x0b, 0xec, 0x90, 0x73, 0x27, 0xf7, 0x4b, 0xa9, 0xf6, 0xfd, 0x79, 0x0f, 0xf0, 0xad, 0x37, 0x83, 0xd2, 0x97, 0xbd, 0xcc, 0xa7, 0x64, 0x60, 0x78, 0x37, 0x03, 0xeb, 0x5f, 0x2b, 0x1f, 0x51, 0xb0, 0xa7, 0x40, 0xce, 0x7a, 0x8f, 0x00, 0xa3, 0x87, 0xe3, 0x63, 0x62, 0x70, 0xa9, 0x71, 0xfa, 0x8f, 0x15, 0xb4, 0x49, 0x67, 0x30, 0xd8, 0x8a, 0xdd, 0x80, 0x7a, 0x7f, 0x7e, 0x98, 0x7c, 0xd4, 0x15, 0x95, 0xa2, 0xe7, 0x43, 0x5d, 0xf5, 0x19, 0x55, 0x76, 0xa3, 0x5f, 0x5e, 0x91, 0xb2, 0xfc, 0xfa, 0xc9, 0x4e, 0xd5, 0xd7, 0x76, 0x63, 0x78, 0x3b, 0x61, 0xe6, 0x67, 0x1d, 0x34, 0x83, 0x8b, 0x6b, 0x56, 0x44, 0xfb, 0xc1, 0xc5, 0x39, 0xfe, 0x15, 0x9b, 0x77, 0x92, 0xdb, 0x96, 0x7e, 0x83, 0x52, 0x61, 0x8d, 0xda, 0xca, 0x0c, 0xde, 0x73, 0x43, 0x7b, 0x59, 0xe7, 0x80, 0x1b, 0x49, 0xeb, 0x46, 0x09, 0xb1, 0x05, 0x77, 0xca, 0x26, 0x92, 0xdd, 0x6f, 0x9d, 0x5e, 0x9d, 0x4b, 0x5e, 0x5e, 0x62, 0xc5, 0x91, 0x3e, 0x7b, 0x87, 0xe6, 0xb3, 0x47, 0xbe, 0x61, 0x53, 0xb1, 0x71, 0x99, 0xc9, 0x16, 0xa1, 0x3f, 0x8a, 0x88, 0x5b, 0x37, 0x8e, 0xf0, 0x9e, 0x13, 0xca, 0xe4, 0xd8, 0xb0, 0x79, 0xd7, 0xd5, 0xcb, 0x90, 0x94, 0x19, 0x9b, 0x0f, 0x20, 0x53, 0x3c, 0x90, 0x08, 0x3b, 0xc3, 0xac, 0xb2, 0x66, 0x76, 0x97, 0xee, 0xd2, 0x2e, 0x36, 0x70, 0xab, 0xb4, 0xa5, 0x53, 0xe9, 0x95, 0xc9, 0xdd, 0x95, 0x94, 0xe5, 0x92, 0x39, 0x1a, 0x00, 0x04, 0xb6, 0x55, 0x65, 0x44, 0xf3, 0x56, 0x12, 0xc4, 0x97, 0x13, 0x59, 0x57, 0x7c, 0x47, 0x63, 0x82, 0xca, 0x53, 0xb3, 0xf2, 0x62, 0xa5, 0xe3, 0x3e, 0xd2, 0x6e, 0xec, 0x80, 0x9f, 0x4f, 0xdb, 0xa4, 0x89, 0x8a, 0x11, 0x36, 0x75, 0xcb, 0x6a, 0xf7, 0x17, 0xdb, 0x62, 0x57, 0x9f, 0x39, 0x80, 0xb2, 0x14, 0x63, 0xbe, 0x02, 0x9c, 0xb4, 0x16, 0x0f, 0xe5, 0xd2, 0x57, 0xc4, 0x6c, 0xd6, 0x66, 0x4f, 0x98, 0x61, 0xac, 0x50, 0xfe, 0x05, 0xc1, 0x44, 0x05, 0x7d, 0xce, 0x2f, 0x8d, 0xf1, 0x53, 0x2a, 0xa7, 0xaf, 0x58, 0x9f, 0x41, 0x27, 0x06, 0x01, 0xce, 0xf0, 0x6b, 0xbe, 0x4f, 0x35, 0xc3, 0x1c, 0x78, 0x2b, 0xb3, 0xcf, 0xff, 0x7d, 0x5a, 0xb6, 0x4a, 0x14, 0xec, 0x41, 0x73, 0x61, 0xf1, 0xd3, 0x2c, 0xbd, 0x38, 0xb6, 0xbd, 0x0e, 0x02, 0x50, 0x5d, 0x14, 0x16, 0x30, 0x2b, 0x85, 0x05, 0xae, 0x2a, 0x96, 0xe8, 0xd5, 0x33, 0x9c, 0x34, 0x6c, 0x2b, 0x06, 0x62, 0xd3, 0x50, 0x25, 0x9c, 0x50, 0xc5, 0xe4, 0x87, 0x95, 0x91, 0x4e, 0x6f, 0x88, 0xe9, 0x7c, 0x81, 0x1c, 0x39, 0x3b, 0xdf, 0x9a, 0xec, 0x7e, 0xf8, 0x20, 0x47, 0xca, 0x28, 0xee, 0x97, 0x1c, 0x17, 0x5c, 0x27, 0xe3, 0x6e, 0x10, 0x97, 0x27, 0x96, 0x0d, 0xdf, 0x1a, 0x1b, 0x97, 0x6a, 0xb4, 0x4f, 0x48, 0x51, 0x60, 0x7b, 0xd9, 0x66, 0x80, 0x8a, 0xc4, 0x6d, 0x54, 0x00, 0x31, 0x28, 0x29, 0x7f, 0x5f, 0x44, 0x87, 0x10, 0x8d, 0x6a, 0x02, 0xe7, 0xa1, 0x64, 0x13, 0xd2, 0xb7, 0x5e, 0xcb, 0x42, 0xfd, 0xdf, 0xb6, 0x69, 0xc8, 0x01, 0xd2, 0x3d, 0xe5, 0x0a, 0x6f, 0x7b, 0xf6, 0x58, 0xf7, 0x53, 0xc6, 0xb2, 0xb3, 0xb4, 0x7c, 0x06, 0x40, 0x10, 0x5d, 0x0a, 0x80, 0x1b, 0x32, 0xa1, 0x94, 0x3c, 0xdc, 0x15, 0xc8, 0x86, 0x55, 0x5e, 0xb7, 0x5b, 0xb7, 0x92, 0x7b, 0x93, 0xc3, 0x5c, 0x5b, 0xe1, 0xf9, 0x8b, 0x19, 0x6c, 0xaa, 0xc2, 0xda, 0xd9, 0x91, 0xb1, 0x04, 0x4e, 0xa8, 0x63, 0x94, 0x4d, 0x54, 0xd8, 0x83, 0xab, 0xc3, 0xc6, 0xde, 0x66, 0xed, 0x86, 0x8e, 0xe8, 0x4b, 0xcf, 0x9c, 0x34, 0xcc, 0xdb, 0x80, 0xfc, 0xd9, 0xcc, 0x04, 0x02, 0x74, 0x77, 0x32, 0xcd, 0x63, 0x0b, 0xbf, 0xa3, 0xbb, 0xe8, 0xb0, 0x38, 0xdc, 0x1d, 0xbd, 0xaf, 0x43, 0x6d, 0x9a, 0xc0, 0x0c, 0x02, 0xd5, 0x28, 0xec, 0xe2, 0xe7, 0x91, 0xee, 0x31, 0x2a, 0x86, 0x8f, 0xeb, 0x2f, 0x58, 0x7c, 0xa4, 0x4d, 0xb5, 0x73, 0x13, 0x84, 0xfa, 0x18, 0x31, 0x14, 0x20, 0x61, 0xb2, 0xea, 0xd2, 0xb8, 0x0c, 0x66, 0xbd, 0x2f, 0xa5, 0xdc, 0xca, 0xbe, 0x6a, 0x25, 0xf2, 0xa4, 0x93, 0xfe, 0xaa, 0xcd, 0x23, 0x1d, 0x2f, 0x40, 0x96, 0x46, 0xb9, 0x42, 0xa5, 0x78, 0x54, 0x5e, 0xa4, 0xfe, 0xea, 0x9a, 0x73, 0x47, 0x3f, 0x79, 0xdc, 0xf1, 0x3e, 0x0c, 0x9f, 0x1b, 0x49, 0xfd, 0x89, 0x12, 0xec, 0x48, 0x73, 0x28, 0x04, 0x5b, 0xd0, 0xfa, 0x22, 0x89, 0x22, 0xee, 0x6e, 0x97, 0x3e, 0x61, 0xf6, 0xe9, 0x33, 0x65, 0x29, 0x65, 0x78, 0xdc, 0xc2, 0x1c, 0x36, 0x14, 0x79, 0xee, 0x2d, 0x24, 0x87, 0x9f, 0x2e, 0x9b, };
19112 static const u8 ed25519_831_test_vectors_expected_sig[] = {
19113 	0x31, 0xf9, 0x5c, 0xbb, 0x74, 0x63, 0xb8, 0x75, 0x28, 0x65, 0x42, 0x27, 0xbb, 0x13, 0x97, 0xbf, 0x10, 0x65, 0xb4, 0xf5, 0x76, 0x80, 0x80, 0x78, 0x20, 0x7d, 0xfa, 0xf0, 0x6d, 0x12, 0x4b, 0x41, 0xf4, 0xc3, 0x18, 0xf4, 0xa9, 0x31, 0x5a, 0x66, 0x08, 0x5b, 0x9e, 0x56, 0x8a, 0x71, 0xe4, 0x14, 0xed, 0x94, 0x14, 0x51, 0x73, 0x10, 0xc6, 0x99, 0x94, 0x6d, 0xb0, 0xc9, 0x76, 0x28, 0x52, 0x07, };
19114 static const ec_test_case ed25519_831_test_case = {
19115 	.name = "EDDSA25519-SHA512/wei25519 831",
19116 	.ec_str_p = &wei25519_str_params,
19117 	.priv_key = ed25519_831_test_vectors_priv_key,
19118 	.priv_key_len = sizeof(ed25519_831_test_vectors_priv_key),
19119 	.nn_random = NULL,
19120 	.hash_type = SHA512,
19121 	.msg = (const char *)ed25519_831_test_vectors_message,
19122 	.msglen = sizeof(ed25519_831_test_vectors_message),
19123 	.sig_type = EDDSA25519,
19124 	.exp_sig = ed25519_831_test_vectors_expected_sig,
19125 	.exp_siglen = sizeof(ed25519_831_test_vectors_expected_sig),
19126 	.adata = NULL,
19127 	.adata_len = 0
19128 };
19129 
19130 /************************************************/
19131 static const u8 ed25519_832_test_vectors_priv_key[] = {
19132 	0xa6, 0xe6, 0xad, 0x2c, 0x37, 0x9c, 0x6f, 0xcc, 0xad, 0xb4, 0xa4, 0x9b, 0x23, 0x2a, 0x91, 0x42, 0x61, 0x8e, 0xa3, 0x01, 0x03, 0xc3, 0x3c, 0x22, 0x6f, 0xf6, 0x28, 0xbc, 0xfd, 0x81, 0xf4, 0x26, };
19133 static const u8 ed25519_832_test_vectors_message[] = {
19134 	0x2e, 0x85, 0x76, 0x76, 0xa5, 0xbb, 0x1c, 0x6e, 0x9e, 0x94, 0x50, 0x7f, 0x83, 0xc6, 0x0a, 0x67, 0xf5, 0x47, 0xc5, 0xde, 0x9e, 0x94, 0x56, 0x6b, 0x19, 0x7a, 0x6a, 0xf6, 0xcf, 0x47, 0x52, 0xe9, 0x3d, 0xbd, 0xef, 0x6b, 0x9f, 0x66, 0xd1, 0xfe, 0xbd, 0x95, 0x7e, 0x42, 0xa7, 0xf5, 0xad, 0x64, 0xef, 0x1d, 0xbc, 0xc4, 0xfe, 0x69, 0xae, 0x95, 0x25, 0xd1, 0xa4, 0xde, 0x67, 0x05, 0x4c, 0x88, 0xf2, 0x9c, 0x06, 0x47, 0xba, 0xcf, 0x8b, 0x82, 0xf3, 0x21, 0xff, 0x99, 0xfe, 0x9e, 0xed, 0xc9, 0x92, 0xed, 0x34, 0xc1, 0x17, 0x7f, 0xc5, 0x42, 0x12, 0x27, 0xcc, 0xac, 0x10, 0xfe, 0xb9, 0xce, 0xd4, 0x08, 0x2f, 0x56, 0x58, 0xda, 0x63, 0x71, 0x47, 0x23, 0x97, 0x97, 0x37, 0xe7, 0xdc, 0xbf, 0xe2, 0xe8, 0xb5, 0xd5, 0x0f, 0x91, 0xdf, 0xca, 0x83, 0xe7, 0xf9, 0x5f, 0x35, 0xd1, 0xad, 0x8d, 0xd5, 0x11, 0x44, 0x50, 0x2f, 0x3d, 0xf6, 0x72, 0x43, 0x26, 0x11, 0xf0, 0xe7, 0x66, 0xa9, 0x0d, 0xcc, 0x2a, 0x57, 0x39, 0xc8, 0x05, 0xd9, 0x5f, 0xe5, 0xb0, 0x41, 0xde, 0x9d, 0x7f, 0xb4, 0x7b, 0x44, 0x04, 0xaf, 0xc8, 0x03, 0xa3, 0xbd, 0x48, 0x04, 0xc7, 0x81, 0x7e, 0xbc, 0x5b, 0xdf, 0xef, 0x8a, 0xdd, 0x9e, 0x25, 0x0b, 0x50, 0x96, 0x6c, 0xa8, 0x93, 0x9b, 0x22, 0xb3, 0xc6, 0xff, 0x93, 0x6e, 0xaa, 0x65, 0x9a, 0x24, 0x0c, 0x0c, 0x84, 0x8b, 0x81, 0x0a, 0xce, 0xcf, 0x61, 0x81, 0xe0, 0xe4, 0xdb, 0x8e, 0x4c, 0xf8, 0xfc, 0xce, 0x7d, 0xe5, 0x59, 0xcb, 0xe8, 0xaf, 0xa9, 0xdb, 0x84, 0x99, 0x57, 0x09, 0x11, 0xa3, 0x88, 0x7e, 0x85, 0x0e, 0x50, 0x9c, 0xdb, 0x70, 0xde, 0xbc, 0x34, 0x77, 0xd1, 0x21, 0x75, 0x01, 0x4f, 0x79, 0xf8, 0x1b, 0xa1, 0x13, 0xd0, 0xb7, 0xb3, 0x35, 0x11, 0x8f, 0x85, 0xcf, 0x59, 0x99, 0x6f, 0x80, 0x67, 0x58, 0xeb, 0x90, 0x3c, 0xc4, 0x50, 0xf5, 0x2f, 0xee, 0x10, 0x2e, 0xfc, 0x01, 0x44, 0x1e, 0x9a, 0xe5, 0xfa, 0xe7, 0x4c, 0x23, 0x1d, 0xfd, 0x85, 0xeb, 0x6b, 0xad, 0x17, 0xd6, 0xb7, 0x0e, 0x93, 0x85, 0x84, 0xfa, 0xcb, 0x21, 0x72, 0xcb, 0x03, 0xbd, 0x5e, 0xa0, 0x7b, 0x7f, 0x0d, 0x37, 0x1f, 0xfa, 0x35, 0x1c, 0x0e, 0xe4, 0xef, 0xe9, 0xba, 0x4a, 0x3f, 0xd5, 0x43, 0x87, 0x46, 0x55, 0xe7, 0xd3, 0x9c, 0x53, 0xae, 0x86, 0x32, 0x98, 0x02, 0xe5, 0xc3, 0x85, 0xe9, 0x28, 0x3a, 0x29, 0x73, 0xca, 0xb8, 0xcf, 0x7a, 0xc7, 0xff, 0x0f, 0x91, 0xd1, 0xd4, 0x8b, 0x58, 0xab, 0xfd, 0xad, 0x65, 0x8d, 0x81, 0x2f, 0x07, 0x88, 0x16, 0x76, 0xbd, 0x22, 0x6b, 0xfe, 0x95, 0x7d, 0x7d, 0xf3, 0x0c, 0x41, 0x30, 0xa4, 0x48, 0x35, 0x4a, 0x6b, 0x94, 0x40, 0x5a, 0x41, 0x16, 0x50, 0xa9, 0xc8, 0xfc, 0x85, 0x11, 0x55, 0xec, 0x5a, 0x8a, 0x3e, 0x3b, 0x67, 0xae, 0x0c, 0x4b, 0x5c, 0xb8, 0x9b, 0xb7, 0x3f, 0xc8, 0x29, 0x74, 0xbe, 0x62, 0xda, 0x73, 0xf0, 0xe2, 0x30, 0x92, 0x93, 0x7d, 0x40, 0x5b, 0xa4, 0xaf, 0x6c, 0xab, 0x94, 0x65, 0xea, 0x43, 0xa6, 0x25, 0x3f, 0x44, 0x57, 0x08, 0x2a, 0x06, 0xac, 0x12, 0xb7, 0x5e, 0x88, 0xec, 0x68, 0x44, 0x87, 0xf9, 0x07, 0x63, 0x73, 0xfa, 0xb8, 0x89, 0x28, 0x59, 0xd8, 0xe8, 0xba, 0x43, 0x14, 0x23, 0xaa, 0x80, 0x5a, 0x22, 0x0c, 0xbf, 0xda, 0x43, 0x1b, 0x32, 0xb1, 0xe0, 0x31, 0x21, 0xf7, 0xfd, 0x4d, 0xe1, 0x85, 0x91, 0xf2, 0x50, 0x5c, 0xc0, 0xf5, 0xb2, 0xb1, 0xa7, 0x60, 0x5f, 0xbc, 0xc6, 0x37, 0x57, 0xb0, 0x7e, 0x29, 0x9f, 0xef, 0x5a, 0x2b, 0x73, 0x65, 0x23, 0x0c, 0x2e, 0x92, 0xa2, 0x59, 0x62, 0xc2, 0xe8, 0x01, 0x2a, 0xd3, 0xfa, 0x9e, 0xe9, 0x48, 0x82, 0x70, 0x96, 0x25, 0xba, 0x68, 0xc7, 0xb2, 0x13, 0x66, 0x4a, 0xe2, 0x53, 0x2b, 0x60, 0x9d, 0x7c, 0x9a, 0xa0, 0xe8, 0x3d, 0x49, 0x3d, 0xbc, 0xe7, 0x63, 0x2f, 0x35, 0x58, 0x0e, 0x06, 0xd3, 0x11, 0x1c, 0xed, 0x32, 0x0d, 0xd0, 0x19, 0x04, 0x41, 0xf6, 0x2d, 0x9e, 0x35, 0xf5, 0x0d, 0xe5, 0x9c, 0x27, 0x2f, 0xb0, 0x0f, 0x56, 0x8a, 0x00, 0xb0, 0x74, 0x6c, 0x33, 0xa9, 0xbd, 0x24, 0x90, 0xc0, 0x74, 0xb9, 0x1c, 0xdd, 0xc4, 0x87, 0xef, 0x2e, 0x45, 0xa0, 0xf0, 0x30, 0xe0, 0x8f, 0xdc, 0x18, 0x17, 0xbc, 0xa8, 0xa9, 0xce, 0x29, 0xd2, 0x92, 0x79, 0xe7, 0x55, 0xde, 0xbc, 0x28, 0xdf, 0xad, 0xc3, 0xc4, 0xd1, 0xb4, 0x58, 0x48, 0x6e, 0x3c, 0x8d, 0x0c, 0x43, 0x18, 0xe7, 0xe6, 0xf9, 0xeb, 0x5a, 0x36, 0x53, 0xb3, 0xf7, 0xc4, 0x95, 0x07, 0x07, 0x7c, 0xd5, 0xeb, 0x81, 0xf1, 0x0b, 0x88, 0x10, 0x7c, 0xc0, 0xf9, 0x31, 0x69, 0x32, 0xab, 0xe9, 0xb6, 0x4e, 0x88, 0x86, 0xd0, 0x68, 0x56, 0xa8, 0x5b, 0xe6, 0x3b, 0x0c, 0x2b, 0x47, 0x5c, 0x0a, 0xfc, 0xb0, 0x69, 0x44, 0x26, 0x86, 0x0f, 0xb2, 0x4b, 0x5c, 0x17, 0xab, 0x6a, 0xb7, 0x73, 0x3d, 0x5e, 0x64, 0x1b, 0xe7, 0x4f, 0xd5, 0xf6, 0xa1, 0xff, 0x18, 0xd2, 0xf9, 0xa4, 0x27, 0x70, 0xfb, 0x30, 0x75, 0x0f, 0x56, 0xf4, 0x85, 0x4e, 0x38, 0xd5, 0x8a, 0xef, 0x18, 0xa2, 0xa6, 0x1c, 0xbf, 0xb4, 0x9e, 0xe5, 0x76, 0xed, 0x97, 0x73, 0x7b, 0xc2, 0x8d, 0xf3, 0x26, 0x8a, 0x33, 0x41, 0x75, 0x51, 0x3d, 0x97, 0xaf, 0x00, 0x9c, 0xbb, 0xcf, 0xdf, 0xad, 0x50, 0x39, 0xd6, 0x9b, 0xb4, 0x6f, 0x70, 0x88, 0x67, 0xd9, 0xb3, 0xce, 0x0b, 0xf2, 0xf5, 0x69, 0xe3, 0xcf, 0xbc, 0xf6, 0x13, 0x6f, 0x88, 0x70, 0xd2, 0x52, 0x08, 0xb2, 0x1a, 0x3e, 0xdc, 0xb7, 0x33, 0x93, 0xdf, 0xcd, 0x41, 0x72, 0xc1, 0x40, 0x2c, 0x41, 0xf3, 0x6e, 0x3f, 0x82, 0xa4, 0xea, 0x6d, 0xcd, 0x89, 0x16, 0x86, 0xba, 0x66, 0xe1, 0x43, 0x20, 0xaa, 0x0e, 0x22, 0xba, 0x0c, 0x1e, 0xf0, 0x33, 0xd6, 0x62, 0xcd, 0xb8, 0x60, 0xcd, 0xfa, 0x3a, 0x40, 0xf6, 0xcc, 0x53, 0x2a, 0x08, };
19135 static const u8 ed25519_832_test_vectors_expected_sig[] = {
19136 	0x07, 0xd9, 0xfc, 0x24, 0x4f, 0xda, 0xb0, 0x01, 0x59, 0xeb, 0xec, 0xc5, 0xa0, 0x08, 0x83, 0x45, 0x3f, 0x08, 0x31, 0x01, 0x71, 0x76, 0x9d, 0x29, 0x70, 0x01, 0xe8, 0x77, 0x01, 0x0e, 0x3e, 0xce, 0xd9, 0xfb, 0x60, 0xec, 0x91, 0xcb, 0x4d, 0x88, 0xe7, 0xba, 0x40, 0xc5, 0x30, 0xb1, 0xf9, 0x23, 0x79, 0x78, 0xcc, 0xd9, 0x6d, 0x5c, 0xba, 0x9e, 0x4f, 0xa2, 0x7e, 0x2a, 0x0a, 0xd9, 0xd6, 0x0c, };
19137 static const ec_test_case ed25519_832_test_case = {
19138 	.name = "EDDSA25519-SHA512/wei25519 832",
19139 	.ec_str_p = &wei25519_str_params,
19140 	.priv_key = ed25519_832_test_vectors_priv_key,
19141 	.priv_key_len = sizeof(ed25519_832_test_vectors_priv_key),
19142 	.nn_random = NULL,
19143 	.hash_type = SHA512,
19144 	.msg = (const char *)ed25519_832_test_vectors_message,
19145 	.msglen = sizeof(ed25519_832_test_vectors_message),
19146 	.sig_type = EDDSA25519,
19147 	.exp_sig = ed25519_832_test_vectors_expected_sig,
19148 	.exp_siglen = sizeof(ed25519_832_test_vectors_expected_sig),
19149 	.adata = NULL,
19150 	.adata_len = 0
19151 };
19152 
19153 /************************************************/
19154 static const u8 ed25519_833_test_vectors_priv_key[] = {
19155 	0x9b, 0x6d, 0x7e, 0x28, 0xeb, 0x05, 0x15, 0x97, 0x32, 0x4d, 0xce, 0xb7, 0xa1, 0x89, 0x41, 0x24, 0x67, 0x25, 0xe8, 0x8d, 0x53, 0xab, 0x2c, 0x34, 0x77, 0x11, 0x05, 0x33, 0x0c, 0xf1, 0xf4, 0xae, };
19156 static const u8 ed25519_833_test_vectors_message[] = {
19157 	0xd1, 0xe1, 0x98, 0x7b, 0xff, 0x65, 0xf6, 0x2a, 0xd6, 0x76, 0x24, 0xc6, 0x65, 0x79, 0x24, 0xf5, 0xd6, 0x73, 0xb7, 0x82, 0x4e, 0xbe, 0x40, 0x40, 0x26, 0xc0, 0x56, 0x2d, 0xed, 0x31, 0x43, 0x44, 0x0b, 0xe6, 0x37, 0xf9, 0x8c, 0x9e, 0x01, 0xa6, 0xaf, 0xdf, 0xa9, 0xa4, 0x7d, 0xd4, 0x9c, 0x7c, 0xba, 0x6e, 0x3f, 0xd2, 0x3e, 0x45, 0x52, 0xf7, 0x63, 0x2b, 0x14, 0x38, 0x0b, 0x27, 0xcd, 0x3e, 0x96, 0x06, 0xcc, 0xe3, 0x50, 0xf1, 0x52, 0xab, 0x12, 0x6b, 0xea, 0xd0, 0xa5, 0xd3, 0xbc, 0xe4, 0xd4, 0x20, 0x92, 0xd9, 0x34, 0xc8, 0xca, 0x33, 0x7e, 0x98, 0x7e, 0x11, 0xd8, 0x6c, 0xfb, 0xfb, 0xd2, 0xac, 0xc3, 0x22, 0x3b, 0xd1, 0x67, 0x44, 0xa9, 0x27, 0x72, 0x8f, 0x48, 0x53, 0x72, 0x17, 0x5c, 0xc6, 0x94, 0xdf, 0x30, 0xa7, 0x3f, 0x9d, 0x33, 0x76, 0x5f, 0xf0, 0x14, 0xef, 0x00, 0x8d, 0x58, 0x63, 0x21, 0x03, 0x38, 0xcc, 0x34, 0x82, 0xcc, 0x27, 0xea, 0x31, 0x7e, 0xec, 0x92, 0x1b, 0x0c, 0x56, 0x8c, 0x38, 0xab, 0x27, 0xc4, 0xa5, 0x64, 0xe8, 0x02, 0xb1, 0xb9, 0x46, 0x68, 0xc6, 0x51, 0xe2, 0x0a, 0x0b, 0x55, 0xf3, 0xa7, 0x9d, 0x21, 0x5f, 0xc3, 0xa0, 0xd0, 0x49, 0x04, 0x01, 0x09, 0x32, 0xc4, 0xcc, 0x68, 0xc2, 0xa9, 0xe7, 0xd0, 0x0e, 0x5d, 0x38, 0xd8, 0x2d, 0xf5, 0x52, 0x06, 0xba, 0xb9, 0x5c, 0xf6, 0x97, 0xbe, 0xbc, 0x72, 0x06, 0xee, 0xde, 0xf6, 0xfd, 0x18, 0xd9, 0xa2, 0x0c, 0x2c, 0xbb, 0x28, 0x5b, 0x00, 0xef, 0xa7, 0x69, 0xa0, 0x8d, 0xab, 0x2b, 0x3a, 0xba, 0xdf, 0x00, 0xd1, 0x98, 0xb4, 0xf1, 0x92, 0xdd, 0x44, 0xbc, 0xb9, 0x14, 0x31, 0x82, 0x3a, 0xe6, 0xfd, 0xf9, 0x84, 0x58, 0xec, 0xa3, 0x9c, 0xd2, 0x92, 0x63, 0xf0, 0x99, 0x93, 0x03, 0xe7, 0x0d, 0xc6, 0x94, 0xfe, 0x01, 0xc5, 0x3a, 0x11, 0xc1, 0xd1, 0xc3, 0x4c, 0x1e, 0xe5, 0x06, 0x8a, 0x20, 0x1d, 0xbe, 0x7e, 0x10, 0x08, 0xd7, 0x64, 0x35, 0x89, 0x68, 0xb4, 0x02, 0xaa, 0x39, 0x85, 0x49, 0x50, 0x7f, 0x7b, 0xd1, 0x85, 0x08, 0x00, 0xe4, 0x11, 0xb1, 0xc4, 0xe2, 0x8d, 0xdc, 0x04, 0xa8, 0x59, 0xe1, 0x79, 0xbe, 0x8a, 0xd7, 0xe6, 0x67, 0x0e, 0x50, 0x9d, 0xb0, 0x27, 0xad, 0x7e, 0x51, 0x7e, 0x44, 0x25, 0x95, 0x4f, 0x5a, 0x80, 0x74, 0x14, 0xa6, 0xda, 0x26, 0x7a, 0x76, 0x4e, 0x71, 0x2a, 0x99, 0x84, 0x65, 0x06, 0x49, 0x82, 0xd8, 0x51, 0xa2, 0x65, 0xea, 0x3c, 0x4d, 0xfb, 0x74, 0xf9, 0x92, 0xa7, 0xcc, 0xcd, 0x9a, 0x82, 0x68, 0x7f, 0xa6, 0x1c, 0x32, 0x2c, 0x4f, 0x58, 0x9e, 0x86, 0xb8, 0x82, 0x52, 0x13, 0xbf, 0xa9, 0x51, 0xda, 0xe6, 0xaf, 0x35, 0x4a, 0xce, 0x18, 0xf0, 0x73, 0x99, 0x5a, 0xdc, 0x95, 0x83, 0x9d, 0xac, 0x01, 0x65, 0x51, 0x1d, 0x61, 0x75, 0x37, 0x91, 0xa5, 0x3e, 0x48, 0xe3, 0xa8, 0x27, 0x3d, 0x44, 0x82, 0x3d, 0x25, 0x96, 0xf2, 0xa2, 0xdb, 0x2e, 0x5f, 0x1a, 0xe5, 0x97, 0x22, 0x1b, 0xa7, 0xf3, 0xeb, 0xaf, 0x4a, 0x7b, 0x28, 0x88, 0x39, 0x50, 0x02, 0xbd, 0xaf, 0xf5, 0x1f, 0xa5, 0x4b, 0xfb, 0x97, 0x9d, 0xe1, 0x03, 0x14, 0x04, 0xca, 0x77, 0x89, 0xfe, 0x09, 0x5d, 0x4d, 0x17, 0xf0, 0x7a, 0x35, 0x55, 0x6b, 0x10, 0xfe, 0x8e, 0x14, 0x17, 0xc8, 0xa6, 0xa6, 0x31, 0xc2, 0xed, 0x36, 0xcb, 0x7a, 0x0e, 0x61, 0x81, 0x77, 0x62, 0x89, 0xc3, 0x44, 0x81, 0x4d, 0x42, 0x13, 0x1a, 0x73, 0xb1, 0x2f, 0xaa, 0x35, 0xd7, 0x78, 0x14, 0xc6, 0x81, 0xa6, 0x01, 0x37, 0x4b, 0xa7, 0x1c, 0xb9, 0xad, 0x53, 0x15, 0xfa, 0xd4, 0x2d, 0x3a, 0xcf, 0xc7, 0xc1, 0xd6, 0x28, 0x81, 0x02, 0x56, 0xda, 0xf7, 0xd8, 0xc3, 0xc9, 0xa2, 0xe5, 0xbd, 0xcf, 0xb7, 0x70, 0x08, 0x2f, 0xa6, 0x38, 0x16, 0x89, 0x58, 0x52, 0x3a, 0x1c, 0x3b, 0x03, 0x5d, 0xbc, 0x6d, 0x5a, 0xdf, 0x26, 0xdf, 0x89, 0xa7, 0xcc, 0xab, 0xed, 0x3e, 0x7d, 0xd3, 0x77, 0xc1, 0x6d, 0xa8, 0x41, 0xf1, 0x3c, 0x68, 0x94, 0xd4, 0x3c, 0xeb, 0xb4, 0xe3, 0x90, 0x22, 0xf1, 0xcc, 0xec, 0x22, 0x74, 0x44, 0x5c, 0x78, 0xb3, 0xad, 0xc7, 0xbb, 0xf7, 0x0d, 0x89, 0x0b, 0x80, 0x23, 0x6c, 0xc4, 0x46, 0x8f, 0x95, 0x69, 0xc5, 0x9a, 0x7e, 0x33, 0xb5, 0x70, 0xe6, 0x70, 0x38, 0x0d, 0x24, 0x4e, 0x4e, 0x31, 0x0e, 0x11, 0xc3, 0x92, 0xf1, 0xe3, 0x34, 0x05, 0x4b, 0x92, 0xc8, 0x38, 0x6c, 0x16, 0x1c, 0xe0, 0x41, 0x09, 0xb0, 0x37, 0xbd, 0x62, 0x8d, 0x91, 0x9d, 0xcb, 0x62, 0xda, 0x14, 0x35, 0xbf, 0x94, 0xe8, 0x8b, 0x0a, 0x88, 0x46, 0xd4, 0x86, 0xd1, 0x67, 0x78, 0xf7, 0xa3, 0xb8, 0x80, 0xe6, 0x60, 0xf4, 0x41, 0xfd, 0xf8, 0x6e, 0x56, 0xb8, 0xaa, 0x06, 0x61, 0xf5, 0x5a, 0xae, 0xce, 0x27, 0xf9, 0xdd, 0xaa, 0x0e, 0x2a, 0x22, 0xc2, 0x15, 0xb0, 0x40, 0x53, 0x97, 0x26, 0xb9, 0x85, 0x39, 0x15, 0xa1, 0x59, 0x2d, 0xff, 0xea, 0xe3, 0x2d, 0x7b, 0x5b, 0x67, 0xeb, 0x62, 0x05, 0xbb, 0x0b, 0xd7, 0x27, 0x9f, 0x78, 0x8d, 0x5f, 0x83, 0x3c, 0x40, 0x66, 0x78, 0x0c, 0xa0, 0xa4, 0x2d, 0x3e, 0x4e, 0x1a, 0xa2, 0x2b, 0xd0, 0x6b, 0xb5, 0xee, 0xd8, 0x9b, 0x94, 0x13, 0x77, 0x1e, 0xca, 0xb6, 0x44, 0xca, 0x72, 0xd1, 0x29, 0x1d, 0x00, 0xf7, 0x40, 0x90, 0x1a, 0x73, 0x11, 0xdc, 0x03, 0x67, 0x15, 0xd2, 0x3e, 0xbd, 0x9a, 0x59, 0x89, 0x16, 0x28, 0xf0, 0xd8, 0x7e, 0xd4, 0x89, 0x50, 0x2f, 0x06, 0xd7, 0x5b, 0xbd, 0x11, 0xcd, 0x16, 0x02, 0xa3, 0x5e, 0xe7, 0xe1, 0x33, 0x35, 0xd6, 0xa1, 0x44, 0xb0, 0x88, 0x30, 0xe6, 0x69, 0xc0, 0x2e, 0x65, 0x2f, 0x3f, 0x10, 0x0d, 0x39, 0x3e, 0xf9, 0xb4, 0xac, 0x05, 0x32, 0x14, 0x39, 0xbc, 0xe6, 0xce, 0x36, 0xff, 0xc5, 0xab, 0xca, 0x89, 0x0b, 0x87, 0x96, 0xcc, 0xb5, 0xe1, 0x63, 0x03, 0x55, 0x9c, 0x5d, 0x91, 0x17, 0xf0, 0xf3, 0x1d, };
19158 static const u8 ed25519_833_test_vectors_expected_sig[] = {
19159 	0xc6, 0xdc, 0x5c, 0xa1, 0xe8, 0x56, 0x00, 0x15, 0xb4, 0x93, 0xaf, 0xe2, 0x66, 0x6c, 0xcf, 0x6f, 0xef, 0xa8, 0x03, 0xd8, 0x52, 0x6c, 0x83, 0x7f, 0xe7, 0xf1, 0x23, 0xc7, 0x99, 0x14, 0x27, 0xab, 0x03, 0x0d, 0x7c, 0x77, 0x0e, 0x45, 0xf6, 0xde, 0x84, 0x81, 0x52, 0x3b, 0x94, 0xec, 0xe9, 0x7f, 0x3f, 0x16, 0x1c, 0xf5, 0xb8, 0xc7, 0xae, 0xa3, 0x9f, 0x5a, 0xd8, 0x26, 0xbf, 0x8d, 0x0a, 0x02, };
19160 static const ec_test_case ed25519_833_test_case = {
19161 	.name = "EDDSA25519-SHA512/wei25519 833",
19162 	.ec_str_p = &wei25519_str_params,
19163 	.priv_key = ed25519_833_test_vectors_priv_key,
19164 	.priv_key_len = sizeof(ed25519_833_test_vectors_priv_key),
19165 	.nn_random = NULL,
19166 	.hash_type = SHA512,
19167 	.msg = (const char *)ed25519_833_test_vectors_message,
19168 	.msglen = sizeof(ed25519_833_test_vectors_message),
19169 	.sig_type = EDDSA25519,
19170 	.exp_sig = ed25519_833_test_vectors_expected_sig,
19171 	.exp_siglen = sizeof(ed25519_833_test_vectors_expected_sig),
19172 	.adata = NULL,
19173 	.adata_len = 0
19174 };
19175 
19176 /************************************************/
19177 static const u8 ed25519_834_test_vectors_priv_key[] = {
19178 	0x70, 0x09, 0xed, 0xd0, 0x79, 0x50, 0x96, 0xed, 0xc4, 0xfe, 0xd5, 0x5a, 0x17, 0xcc, 0xf4, 0x84, 0x13, 0x1e, 0x60, 0x8c, 0x6d, 0x5d, 0x66, 0x96, 0xbf, 0x33, 0x76, 0xe2, 0x69, 0x24, 0x95, 0x9b, };
19179 static const u8 ed25519_834_test_vectors_message[] = {
19180 	0xb1, 0x2c, 0x12, 0x47, 0x05, 0x39, 0x54, 0x7c, 0x2d, 0xe6, 0xbc, 0x4e, 0xea, 0xc7, 0xb6, 0x3e, 0x50, 0x8e, 0xd7, 0x10, 0xf3, 0x56, 0x37, 0xd9, 0xfd, 0xd2, 0xdc, 0xca, 0x32, 0x2a, 0x7a, 0x50, 0x71, 0xda, 0xb2, 0xb2, 0x84, 0x5e, 0x30, 0x79, 0x28, 0x06, 0x03, 0x5c, 0x9f, 0xcd, 0xaf, 0xe2, 0x78, 0x3e, 0x3b, 0x67, 0x7d, 0x6b, 0xe5, 0xaa, 0xc7, 0x0b, 0x33, 0x91, 0x0a, 0x2b, 0x95, 0xe8, 0xb5, 0xd5, 0x9b, 0xda, 0x61, 0x59, 0x35, 0xa4, 0x17, 0xb7, 0xae, 0x19, 0xa7, 0x85, 0x37, 0x74, 0xe8, 0x9a, 0x12, 0xaa, 0x54, 0x7b, 0x41, 0x92, 0x97, 0x9a, 0x01, 0xef, 0x6e, 0xf3, 0x2a, 0x40, 0xde, 0x79, 0xd6, 0x80, 0x05, 0x7a, 0x83, 0xa0, 0x74, 0x61, 0x7c, 0xa6, 0x50, 0x1f, 0x59, 0xe7, 0x35, 0x64, 0x92, 0x7c, 0x38, 0xb5, 0x8c, 0x19, 0x58, 0x5a, 0x2c, 0x03, 0x65, 0x9c, 0x02, 0x6e, 0x4d, 0xe3, 0x80, 0x6d, 0x6c, 0x1c, 0xa8, 0x95, 0x8d, 0xee, 0x47, 0xbc, 0xb8, 0x89, 0xe7, 0x6d, 0x2c, 0x3a, 0x9a, 0xb5, 0xb8, 0xb6, 0xaf, 0xb2, 0xe8, 0x42, 0x29, 0x80, 0x56, 0x56, 0x7b, 0xf9, 0xb5, 0x89, 0x57, 0x41, 0x54, 0x83, 0x33, 0x62, 0x33, 0xef, 0x49, 0x20, 0xfa, 0x57, 0xf4, 0x96, 0xe1, 0xf0, 0x34, 0x8c, 0xca, 0x20, 0x36, 0x64, 0x96, 0xfa, 0xb3, 0xa7, 0x5b, 0xf4, 0x21, 0x4e, 0xce, 0x47, 0xa4, 0x5f, 0xea, 0xa1, 0x39, 0x2d, 0xb3, 0xf2, 0x54, 0xd9, 0x6a, 0x7f, 0x37, 0x40, 0x2c, 0x98, 0x11, 0x14, 0x0d, 0x73, 0x58, 0xb4, 0xef, 0x8f, 0x20, 0xa2, 0x98, 0xee, 0xef, 0x90, 0x4e, 0x37, 0xd6, 0x8f, 0x37, 0x8d, 0x33, 0xcb, 0x96, 0xd0, 0x0c, 0x03, 0x10, 0x9f, 0xc8, 0x3f, 0xd0, 0x6a, 0x87, 0x6c, 0x92, 0x48, 0x2f, 0x61, 0xab, 0x79, 0x14, 0xeb, 0x7c, 0x2e, 0x5e, 0x84, 0x06, 0x6e, 0x0e, 0x91, 0xe2, 0x1e, 0x42, 0xe9, 0xbe, 0x23, 0xdf, 0x12, 0xb5, 0xc7, 0x47, 0x97, 0x3c, 0xb8, 0x64, 0x42, 0xc3, 0x22, 0x91, 0xd3, 0xd1, 0xae, 0x71, 0x9b, 0x36, 0xa6, 0x2f, 0xaf, 0x3a, 0xba, 0xa2, 0x05, 0x3a, 0x31, 0x3f, 0x62, 0x5d, 0x85, 0xc5, 0x1a, 0x51, 0x98, 0x57, 0x19, 0x15, 0xef, 0x8a, 0x2b, 0x19, 0x9b, 0xa3, 0x7d, 0x25, 0x88, 0x45, 0x75, 0xba, 0x1b, 0x72, 0x84, 0x4c, 0xab, 0x43, 0x28, 0xb5, 0x7f, 0xab, 0x1e, 0xc9, 0x74, 0xee, 0x8e, 0xa1, 0xdf, 0x7c, 0xa9, 0xc7, 0x8a, 0x4d, 0x3a, 0x03, 0xbc, 0xb0, 0xab, 0x41, 0x69, 0xbf, 0x06, 0xa3, 0xa4, 0x38, 0xd9, 0x56, 0x6c, 0x6c, 0x50, 0x1d, 0x8d, 0x9c, 0xcc, 0xcb, 0x1a, 0xc2, 0x6b, 0x4d, 0xa4, 0xae, 0x1a, 0x9d, 0x8e, 0x8b, 0x9d, 0xf6, 0x62, 0x82, 0x1a, 0xd9, 0x75, 0xc9, 0xb0, 0x15, 0xfe, 0x26, 0xf6, 0x89, 0x8d, 0x22, 0xab, 0x91, 0x2f, 0x0e, 0x40, 0x5a, 0x5b, 0x27, 0xcf, 0xd3, 0x9d, 0x65, 0x7d, 0xcd, 0x92, 0xcd, 0xeb, 0xe6, 0x79, 0x19, 0x02, 0x71, 0x34, 0x84, 0x40, 0x6d, 0xdd, 0xce, 0x71, 0x18, 0x87, 0x31, 0xe4, 0x43, 0x19, 0x38, 0x1a, 0xf2, 0x7d, 0xaf, 0x76, 0x79, 0x22, 0x73, 0xb8, 0xc3, 0x52, 0x51, 0xd1, 0x1b, 0x83, 0x6a, 0xfe, 0x8b, 0x3c, 0xe9, 0xb4, 0x02, 0x73, 0xf6, 0x91, 0x5e, 0xbe, 0x6b, 0xc9, 0x5a, 0x75, 0xbb, 0x94, 0x1a, 0x42, 0x92, 0x09, 0x86, 0x7f, 0xba, 0x87, 0x64, 0xbf, 0x6c, 0x40, 0xdb, 0x6e, 0xec, 0xb4, 0xf2, 0x17, 0x47, 0x83, 0x7c, 0xf6, 0xae, 0x7f, 0xbf, 0xe3, 0x6d, 0x50, 0x23, 0xdf, 0x7f, 0xce, 0x2c, 0x0c, 0x3c, 0x57, 0xaf, 0x28, 0x98, 0x88, 0x53, 0x13, 0xc5, 0xc4, 0xbd, 0xa3, 0x5c, 0x7d, 0xa6, 0xcb, 0x29, 0x93, 0x2f, 0xb1, 0x99, 0x1f, 0x62, 0xbb, 0xb0, 0x80, 0xb3, 0x2e, 0x20, 0x50, 0x61, 0x93, 0x11, 0xae, 0x69, 0xab, 0xb3, 0x02, 0x2d, 0x91, 0x3f, 0xa9, 0xea, 0xbd, 0x5d, 0x5c, 0xb4, 0xdc, 0x54, 0xd7, 0x5d, 0xca, 0x63, 0x8c, 0xda, 0x9a, 0xf3, 0x31, 0xc0, 0xcf, 0x4d, 0x20, 0x07, 0xb6, 0xca, 0x39, 0xf6, 0x55, 0xa6, 0x1c, 0x01, 0x03, 0x9f, 0x12, 0xa4, 0xb9, 0x78, 0x2b, 0xc3, 0x9a, 0xec, 0x4d, 0x22, 0xef, 0x00, 0x93, 0x38, 0x8d, 0xd7, 0xd5, 0xb5, 0x6d, 0xfb, 0x8a, 0x7f, 0x9d, 0x86, 0x69, 0x00, 0x4e, 0x28, 0x78, 0xdd, 0x8a, 0x6d, 0x76, 0x85, 0x7c, 0x08, 0x45, 0x24, 0x50, 0x68, 0xfe, 0xe1, 0xc5, 0x31, 0x96, 0x31, 0xe7, 0x8d, 0x37, 0x85, 0x16, 0x5c, 0x70, 0xaf, 0xd6, 0x52, 0x99, 0x30, 0x13, 0x78, 0x55, 0x1e, 0xbf, 0x61, 0x35, 0x84, 0xc6, 0xa7, 0x62, 0x0a, 0x0e, 0x3b, 0x67, 0x79, 0xf3, 0x8c, 0x09, 0x40, 0x06, 0x24, 0x97, 0x00, 0x8e, 0xb2, 0x33, 0x87, 0x08, 0x68, 0xc2, 0x1c, 0xcc, 0xac, 0x23, 0x95, 0x01, 0xb6, 0x3b, 0x74, 0x9a, 0x85, 0x60, 0x2c, 0x28, 0xa0, 0x95, 0xca, 0xfc, 0x74, 0x9b, 0x05, 0x11, 0xa6, 0xc8, 0x78, 0xed, 0xb3, 0xb7, 0x80, 0xea, 0x17, 0x4d, 0x07, 0xb1, 0x21, 0xe3, 0x15, 0xa8, 0x26, 0xdd, 0xa6, 0xec, 0x8d, 0xc5, 0x43, 0x63, 0xe2, 0xcd, 0x2e, 0x63, 0x05, 0xa1, 0x94, 0x82, 0x5c, 0x0e, 0xa9, 0x0e, 0xfd, 0x7a, 0x9f, 0xd8, 0x9c, 0xd9, 0x7b, 0x99, 0xc4, 0x30, 0x0b, 0xd3, 0xbf, 0x93, 0x53, 0xd8, 0x2f, 0xbc, 0xce, 0xea, 0x71, 0xb4, 0xee, 0x3f, 0x1a, 0xae, 0x95, 0x39, 0xb4, 0xcc, 0xe9, 0x0c, 0xa4, 0x77, 0x59, 0x7c, 0x17, 0x4e, 0xf2, 0x0f, 0x4b, 0x9f, 0x4e, 0x62, 0xd0, 0x9a, 0x57, 0x0d, 0x31, 0x35, 0xaa, 0xbe, 0xe9, 0x55, 0x1f, 0xa6, 0x09, 0x83, 0x95, 0x8c, 0x0b, 0x7b, 0x8c, 0x37, 0x44, 0x55, 0x3e, 0xe1, 0x4e, 0x7f, 0x3c, 0xd1, 0x03, 0xa1, 0x92, 0x51, 0xc9, 0x9b, 0xf6, 0x38, 0x4a, 0xbb, 0x60, 0xa7, 0x6a, 0xfc, 0x66, 0x58, 0xb8, 0x0d, 0xfc, 0x51, 0x10, 0xad, 0xc4, 0xc7, 0x32, 0xfe, 0x0e, 0xe3, 0x29, 0x33, 0xfb, 0x28, 0x48, 0x28, 0xe0, 0x08, 0x88, 0x7a, 0xef, 0x80, 0xf6, 0xf8, 0x13, 0x34, 0x04, 0x46, 0xc0, 0x21, 0x7c, 0x12, 0xee, };
19181 static const u8 ed25519_834_test_vectors_expected_sig[] = {
19182 	0xb7, 0x01, 0xb8, 0xf9, 0xa4, 0x34, 0xe0, 0x6d, 0x71, 0x9a, 0xd2, 0x5d, 0xcc, 0x54, 0x06, 0x0c, 0x79, 0x86, 0x64, 0x7f, 0x44, 0xf3, 0x88, 0x4b, 0xcb, 0x6e, 0x5e, 0xe1, 0xd7, 0xa4, 0x46, 0xcc, 0x26, 0x5c, 0xec, 0x02, 0x9b, 0x53, 0x7d, 0xa7, 0xf2, 0x52, 0x33, 0x26, 0x55, 0x8a, 0xc9, 0xba, 0x34, 0xf4, 0xcc, 0x2a, 0x97, 0xcc, 0xa3, 0x45, 0x2e, 0x70, 0x56, 0x2e, 0x7a, 0x8f, 0x55, 0x04, };
19183 static const ec_test_case ed25519_834_test_case = {
19184 	.name = "EDDSA25519-SHA512/wei25519 834",
19185 	.ec_str_p = &wei25519_str_params,
19186 	.priv_key = ed25519_834_test_vectors_priv_key,
19187 	.priv_key_len = sizeof(ed25519_834_test_vectors_priv_key),
19188 	.nn_random = NULL,
19189 	.hash_type = SHA512,
19190 	.msg = (const char *)ed25519_834_test_vectors_message,
19191 	.msglen = sizeof(ed25519_834_test_vectors_message),
19192 	.sig_type = EDDSA25519,
19193 	.exp_sig = ed25519_834_test_vectors_expected_sig,
19194 	.exp_siglen = sizeof(ed25519_834_test_vectors_expected_sig),
19195 	.adata = NULL,
19196 	.adata_len = 0
19197 };
19198 
19199 /************************************************/
19200 static const u8 ed25519_835_test_vectors_priv_key[] = {
19201 	0x12, 0xfe, 0x8e, 0x5c, 0xe2, 0x0c, 0xaf, 0xaa, 0x32, 0x79, 0xda, 0x7b, 0x34, 0xaa, 0x87, 0x75, 0x2e, 0xad, 0x67, 0x9f, 0x15, 0x61, 0x28, 0xaa, 0xef, 0xb4, 0xaf, 0xa5, 0xdb, 0x4f, 0x2a, 0x6f, };
19202 static const u8 ed25519_835_test_vectors_message[] = {
19203 	0x6b, 0x80, 0xcc, 0x6f, 0xbb, 0xd3, 0x32, 0xf8, 0xc6, 0x19, 0x7c, 0xdf, 0x2e, 0x6d, 0xc1, 0x9a, 0x21, 0x30, 0xfa, 0xa2, 0xec, 0x93, 0x8e, 0xf5, 0x58, 0xb8, 0x84, 0xba, 0x4f, 0xa5, 0xe1, 0x13, 0xe5, 0xb3, 0xe4, 0xb1, 0xaa, 0xf5, 0x1b, 0x69, 0x5f, 0x13, 0xef, 0xfe, 0x13, 0xf7, 0x7d, 0x39, 0xca, 0xb3, 0xc0, 0x7d, 0x04, 0xd6, 0x6d, 0x43, 0x0d, 0x99, 0x74, 0xb1, 0xda, 0x3d, 0x39, 0xdf, 0x12, 0x78, 0xc0, 0x0d, 0x6b, 0xcb, 0xfd, 0x4b, 0xae, 0x75, 0xb8, 0xc0, 0x76, 0x40, 0x4d, 0xbb, 0xb8, 0x34, 0x48, 0xfb, 0x49, 0x3d, 0xf6, 0x70, 0x00, 0xf9, 0x7d, 0x24, 0x7e, 0x8f, 0x23, 0xdc, 0x08, 0x1f, 0xce, 0x99, 0x2b, 0x65, 0xa2, 0x1b, 0x35, 0xd7, 0xbd, 0x7f, 0xa7, 0xdc, 0xcc, 0x54, 0xa5, 0x60, 0xaf, 0xd1, 0x4b, 0x1e, 0xc4, 0x36, 0xc1, 0x09, 0x46, 0xf6, 0xaa, 0x59, 0xea, 0xe1, 0xbe, 0x3e, 0xcf, 0x31, 0x1d, 0xef, 0x51, 0xe4, 0x6b, 0x6b, 0x4d, 0x1d, 0x08, 0x0d, 0x17, 0x84, 0xb2, 0x33, 0x4b, 0x80, 0xcf, 0xba, 0x72, 0xcd, 0x93, 0x1f, 0x55, 0xec, 0xd2, 0x98, 0xb0, 0x5d, 0xc8, 0x36, 0xab, 0x12, 0xd0, 0xad, 0x8b, 0x5d, 0x6e, 0x9b, 0x1e, 0x3c, 0xea, 0x3d, 0x84, 0x33, 0x68, 0xee, 0xf1, 0x9f, 0x5c, 0x14, 0xc6, 0xbb, 0xad, 0x94, 0x14, 0xcc, 0x7a, 0x4d, 0xb6, 0xa7, 0x26, 0xe4, 0xfc, 0xae, 0xd4, 0x44, 0x40, 0xa0, 0x19, 0xfe, 0x12, 0xa6, 0x05, 0x73, 0x40, 0x3c, 0x0e, 0x66, 0x2d, 0xc9, 0x02, 0xd1, 0xc8, 0x73, 0xff, 0x30, 0xc9, 0x31, 0xba, 0x7e, 0x43, 0xa3, 0xb3, 0xbf, 0x71, 0xd5, 0xb0, 0x94, 0xea, 0x50, 0x49, 0x71, 0x64, 0x7c, 0xa9, 0x43, 0x56, 0xf0, 0xa5, 0x3e, 0x44, 0x4b, 0x4c, 0x00, 0x8e, 0xe5, 0x97, 0x72, 0x04, 0x22, 0x1b, 0x40, 0x0d, 0xee, 0xc3, 0x7f, 0xc2, 0x73, 0x45, 0x25, 0x45, 0xf8, 0xf2, 0x18, 0xbe, 0x98, 0x87, 0x25, 0xbc, 0x38, 0xc8, 0x5d, 0xf2, 0x12, 0xea, 0x73, 0xdc, 0x0b, 0xc7, 0xcb, 0xba, 0xc9, 0x07, 0x98, 0x2f, 0xef, 0xad, 0x68, 0x0f, 0xbd, 0x97, 0x5c, 0x20, 0x93, 0xa7, 0xfe, 0x8e, 0x6b, 0x37, 0xc1, 0xcc, 0xed, 0x87, 0xf8, 0x1d, 0xaa, 0x57, 0x29, 0x1a, 0x5a, 0x18, 0x47, 0x6d, 0x11, 0xa1, 0x8e, 0xc4, 0xb5, 0xcb, 0xce, 0x5d, 0x55, 0xac, 0x9b, 0x62, 0x4b, 0x04, 0x84, 0x30, 0xf2, 0x54, 0xf6, 0x71, 0x07, 0x85, 0x06, 0xe6, 0x98, 0x9d, 0xf7, 0xc0, 0x92, 0x56, 0x52, 0x50, 0x39, 0x08, 0x5a, 0xb7, 0xc1, 0x30, 0xc2, 0x40, 0x00, 0x4a, 0xbb, 0xb3, 0xaf, 0x6b, 0x48, 0x1c, 0xc1, 0xa0, 0x61, 0x7e, 0x57, 0xe3, 0x88, 0xee, 0x4b, 0x1f, 0x05, 0x2f, 0x34, 0xa0, 0x03, 0xfe, 0x6b, 0xb2, 0x02, 0xcb, 0x87, 0xd2, 0x74, 0x1b, 0xd8, 0xe3, 0x45, 0x4c, 0xa7, 0x3d, 0x2f, 0x61, 0x20, 0x11, 0xec, 0xc7, 0x4d, 0x88, 0x34, 0x35, 0x10, 0xa6, 0x3c, 0x93, 0x13, 0xdd, 0xc3, 0x6c, 0x25, 0xd3, 0xfb, 0x03, 0xe1, 0x88, 0xf5, 0x60, 0xbd, 0x02, 0x9c, 0x80, 0x15, 0x85, 0xce, 0x55, 0x29, 0x88, 0xdc, 0x55, 0xb7, 0xd8, 0x52, 0x2a, 0x33, 0x96, 0xc0, 0x1d, 0x5e, 0x71, 0x5a, 0xe2, 0x6c, 0x62, 0x2c, 0x64, 0xfe, 0xd5, 0xb9, 0x8e, 0x9c, 0x55, 0x9e, 0x4a, 0xa7, 0x8d, 0x1e, 0xd3, 0xb7, 0xb8, 0x90, 0xd4, 0x77, 0xec, 0x8c, 0x50, 0xa0, 0xff, 0x10, 0x7a, 0x3f, 0x83, 0xb0, 0x7b, 0xd3, 0x5e, 0x9c, 0xe9, 0xa0, 0x8b, 0xcf, 0xc0, 0xf1, 0x68, 0xee, 0xc7, 0xaa, 0x31, 0x1f, 0x71, 0xc6, 0x6a, 0x71, 0xce, 0xb9, 0xd5, 0xa2, 0x19, 0x9a, 0x14, 0xbe, 0x36, 0x86, 0x5c, 0xa8, 0xd0, 0x7e, 0x18, 0x6b, 0x13, 0x92, 0xb9, 0x29, 0x0c, 0x57, 0x80, 0x04, 0xd5, 0x84, 0xf1, 0x91, 0xc8, 0x2a, 0x53, 0xd8, 0x50, 0x89, 0x0b, 0xcc, 0x0d, 0x12, 0xdf, 0xf8, 0x40, 0xe0, 0x43, 0xdd, 0xdc, 0x2e, 0x67, 0x0c, 0x83, 0x60, 0x20, 0x92, 0x4f, 0x58, 0xc0, 0x44, 0xb2, 0x18, 0x76, 0x3c, 0xa6, 0x19, 0x82, 0xbc, 0x33, 0x2d, 0x24, 0x7b, 0x2a, 0x00, 0x8a, 0xb5, 0x70, 0xb6, 0x56, 0x5a, 0x06, 0x89, 0x2a, 0x26, 0xcf, 0xb0, 0x85, 0x3d, 0x79, 0xda, 0x28, 0xef, 0x8b, 0x91, 0x0a, 0x93, 0x29, 0x54, 0x4b, 0x79, 0x2a, 0xe4, 0x45, 0x6b, 0xa7, 0x76, 0x50, 0x66, 0xb9, 0xd1, 0xb4, 0xa3, 0x00, 0x21, 0x04, 0x48, 0x66, 0x0a, 0xe4, 0x8b, 0x50, 0x44, 0x41, 0x01, 0x7c, 0xdd, 0xd1, 0xf6, 0xf0, 0x09, 0x38, 0xb1, 0x07, 0x2c, 0x8a, 0xb8, 0x24, 0xad, 0xfe, 0x8a, 0xe3, 0x49, 0x23, 0xc8, 0x2e, 0xec, 0x75, 0x4b, 0xee, 0x1a, 0x65, 0x50, 0xab, 0x1d, 0x3d, 0xa0, 0x86, 0xe3, 0xae, 0xbb, 0xf2, 0x11, 0x69, 0xc4, 0x44, 0x69, 0xe0, 0x3b, 0xba, 0xe0, 0xd7, 0x2c, 0xe8, 0x63, 0x45, 0x77, 0x84, 0xcf, 0xe1, 0xdf, 0xc2, 0x76, 0xf1, 0xaf, 0xad, 0x9e, 0xe5, 0x3e, 0xba, 0xb5, 0xa3, 0xc6, 0x57, 0x2e, 0xb1, 0xca, 0xe0, 0x99, 0xa4, 0xa5, 0xfe, 0x19, 0x31, 0x92, 0x90, 0xe6, 0xa1, 0xb8, 0xb0, 0xe7, 0x54, 0x1e, 0xd7, 0x35, 0xb3, 0xf2, 0x1b, 0x1e, 0x2c, 0x75, 0x09, 0xf8, 0x7f, 0xd1, 0xfe, 0xd0, 0x00, 0x07, 0x47, 0x9b, 0x3c, 0x1b, 0xb7, 0x84, 0x32, 0x46, 0x63, 0x02, 0xd2, 0x46, 0xd8, 0xd0, 0x31, 0x99, 0x63, 0x07, 0x26, 0x0a, 0x0c, 0x41, 0xa0, 0xe3, 0xec, 0xd1, 0xe7, 0xfd, 0x83, 0x4d, 0xac, 0x11, 0xa1, 0x3e, 0xb0, 0x36, 0xb3, 0x9c, 0x36, 0x99, 0x66, 0xfd, 0xef, 0x39, 0x4c, 0x18, 0x3e, 0x54, 0xe7, 0xb0, 0xcb, 0x3d, 0x0c, 0xeb, 0x19, 0x8b, 0xd0, 0xe6, 0x6c, 0x00, 0xd3, 0x8d, 0xb7, 0x03, 0xaa, 0xce, 0x30, 0xcb, 0xbd, 0xab, 0x36, 0x9d, 0xfd, 0x1d, 0x9e, 0x51, 0x4d, 0x09, 0x68, 0xf1, 0x00, 0xc9, 0xf0, 0x7c, 0x31, 0x50, 0x89, 0xad, 0xb3, 0xad, 0x02, 0xe5, 0x9c, 0x04, 0xb9, 0xbe, 0x46, 0xe9, 0x9f, 0xbf, 0x5a, 0x62, 0xc6, 0xbb, 0xec, 0xdf, 0xf5, 0xb3, 0x81, 0xe5, 0x51, 0x27, 0x82, 0x4d, 0xdb, 0x18, };
19204 static const u8 ed25519_835_test_vectors_expected_sig[] = {
19205 	0x04, 0xea, 0xf9, 0x00, 0x96, 0x6e, 0x09, 0x92, 0xd3, 0x6e, 0x3c, 0x22, 0x0a, 0x4b, 0xd4, 0xd8, 0x2b, 0xcc, 0x6e, 0xb9, 0x98, 0xed, 0x05, 0x1d, 0xbc, 0xb9, 0x16, 0x0b, 0xcd, 0x35, 0x74, 0x09, 0x73, 0x6b, 0xcf, 0xf7, 0xe6, 0x63, 0x0e, 0x96, 0xf5, 0x53, 0x8a, 0xec, 0xa6, 0xab, 0x8b, 0x0d, 0x0b, 0xd8, 0x2c, 0x0c, 0xd7, 0xc4, 0x54, 0x99, 0x17, 0xfe, 0xbb, 0x9c, 0xba, 0xda, 0x08, 0x0c, };
19206 static const ec_test_case ed25519_835_test_case = {
19207 	.name = "EDDSA25519-SHA512/wei25519 835",
19208 	.ec_str_p = &wei25519_str_params,
19209 	.priv_key = ed25519_835_test_vectors_priv_key,
19210 	.priv_key_len = sizeof(ed25519_835_test_vectors_priv_key),
19211 	.nn_random = NULL,
19212 	.hash_type = SHA512,
19213 	.msg = (const char *)ed25519_835_test_vectors_message,
19214 	.msglen = sizeof(ed25519_835_test_vectors_message),
19215 	.sig_type = EDDSA25519,
19216 	.exp_sig = ed25519_835_test_vectors_expected_sig,
19217 	.exp_siglen = sizeof(ed25519_835_test_vectors_expected_sig),
19218 	.adata = NULL,
19219 	.adata_len = 0
19220 };
19221 
19222 /************************************************/
19223 static const u8 ed25519_836_test_vectors_priv_key[] = {
19224 	0xee, 0x9b, 0x6c, 0x2e, 0x0c, 0x9b, 0x01, 0x47, 0x2c, 0xe3, 0x2d, 0x54, 0xd1, 0x76, 0x2a, 0xb0, 0x30, 0x33, 0x17, 0xd7, 0x6d, 0x3a, 0xa7, 0x8f, 0x5e, 0x08, 0xa9, 0x02, 0x4c, 0xa1, 0xe0, 0x83, };
19225 static const u8 ed25519_836_test_vectors_message[] = {
19226 	0x77, 0x2c, 0xc2, 0x5c, 0x3b, 0x69, 0xbb, 0x3f, 0xf5, 0x65, 0x56, 0x64, 0xef, 0xa4, 0x78, 0xac, 0x41, 0x4a, 0xdf, 0xae, 0xa7, 0x0a, 0xc4, 0xa2, 0xa8, 0x87, 0xed, 0x39, 0x68, 0xc5, 0x4d, 0x34, 0xdb, 0xf1, 0xbe, 0x32, 0xcc, 0x9a, 0x9b, 0x54, 0x20, 0xa4, 0xad, 0x3c, 0x9a, 0x87, 0x7b, 0xc8, 0xcc, 0xec, 0x94, 0xad, 0x47, 0x3a, 0xa7, 0xa3, 0xc7, 0xde, 0x08, 0xa0, 0xfd, 0xb5, 0xed, 0x1e, 0x89, 0x87, 0x2b, 0xe7, 0x81, 0x70, 0xbe, 0x22, 0x1d, 0x27, 0x97, 0x76, 0xbb, 0xc6, 0xed, 0x9c, 0x5a, 0x67, 0x16, 0x89, 0x80, 0xd5, 0xea, 0xf8, 0x95, 0xe1, 0x34, 0x0f, 0x5d, 0xfa, 0xa3, 0xdf, 0x62, 0x2d, 0x65, 0x44, 0xb3, 0x99, 0xd7, 0x49, 0x45, 0xfd, 0x13, 0xbb, 0x11, 0x73, 0x62, 0x1e, 0x05, 0x61, 0x51, 0x46, 0x40, 0x13, 0x7a, 0xa7, 0xbc, 0x9c, 0xb7, 0xde, 0xbe, 0xff, 0x2c, 0x62, 0x69, 0x77, 0xd4, 0x47, 0x26, 0x3b, 0x7e, 0x57, 0xd4, 0x3d, 0x69, 0xef, 0xb2, 0x30, 0xcd, 0x25, 0x86, 0x5e, 0x4d, 0x92, 0x48, 0x28, 0xf5, 0xe3, 0x6f, 0x96, 0x4e, 0x40, 0x3e, 0x34, 0x93, 0xf3, 0x0d, 0x6d, 0xfe, 0xa6, 0xca, 0x3b, 0x78, 0x10, 0x75, 0xb5, 0xe3, 0xb2, 0x5c, 0x05, 0xac, 0x50, 0xe5, 0x55, 0xf1, 0x5b, 0xa1, 0x2b, 0x0e, 0x05, 0x9b, 0xff, 0x99, 0x64, 0x84, 0x12, 0x9d, 0xb6, 0xea, 0xfd, 0x88, 0x99, 0x3d, 0x6f, 0x0b, 0x7e, 0xcd, 0x15, 0xdc, 0xe2, 0xfc, 0x99, 0xf8, 0xb8, 0xe4, 0x35, 0x16, 0x35, 0x2d, 0xdb, 0x46, 0x1a, 0x04, 0xb9, 0xff, 0x34, 0x86, 0x45, 0x2e, 0x6a, 0xa6, 0xa5, 0x4b, 0x2d, 0x10, 0x62, 0xa7, 0x71, 0x42, 0x50, 0xcd, 0x2a, 0x88, 0xff, 0x6c, 0x4c, 0x17, 0xb6, 0xcc, 0x66, 0x52, 0xd8, 0xc5, 0xac, 0x27, 0xd4, 0x44, 0x3a, 0xeb, 0xf3, 0xd5, 0xfb, 0xaa, 0xee, 0x45, 0x21, 0xec, 0x76, 0xf0, 0x41, 0x3d, 0xb6, 0x44, 0x21, 0xec, 0x8d, 0x69, 0x49, 0x62, 0x67, 0x25, 0xfe, 0x56, 0x16, 0x0a, 0xb3, 0x07, 0xc0, 0xe7, 0x39, 0x06, 0xc4, 0x51, 0x55, 0xef, 0xab, 0xb4, 0x72, 0x22, 0x02, 0x1f, 0x22, 0x0d, 0x32, 0xbd, 0x3d, 0xb0, 0x71, 0x2a, 0xbd, 0xe2, 0x59, 0x9e, 0xa4, 0xff, 0x79, 0x97, 0x17, 0x81, 0x1d, 0xcd, 0xf8, 0x18, 0x2d, 0xf6, 0x71, 0x6d, 0x2a, 0x03, 0x8a, 0xee, 0x15, 0xd7, 0x78, 0xda, 0x55, 0xac, 0x20, 0xf0, 0x1f, 0x25, 0x30, 0x9c, 0xea, 0xd5, 0xb5, 0xb7, 0xb2, 0x23, 0x22, 0xe1, 0x82, 0x8e, 0xa7, 0xc9, 0x1a, 0xe6, 0x66, 0xf2, 0xdc, 0xd6, 0x84, 0x07, 0x31, 0x48, 0xe3, 0x1b, 0xb2, 0x24, 0x7d, 0x5f, 0x93, 0x50, 0x6e, 0xa8, 0x08, 0x52, 0x27, 0xad, 0xc9, 0xae, 0x19, 0x82, 0xe9, 0x50, 0xf0, 0x06, 0xa9, 0xda, 0x15, 0x8b, 0x9c, 0xec, 0xff, 0x89, 0x29, 0x76, 0x1c, 0x84, 0xf9, 0xd9, 0x76, 0xfd, 0xcd, 0x31, 0x7f, 0xfe, 0xd3, 0x6c, 0xbf, 0x6a, 0xcd, 0xa3, 0xe5, 0x0c, 0x9b, 0x73, 0xbd, 0x2c, 0x80, 0x85, 0x40, 0x9d, 0x11, 0x9b, 0x64, 0xce, 0xd7, 0x34, 0x9a, 0x26, 0x74, 0x26, 0x2a, 0x83, 0x2b, 0xec, 0xb0, 0x3c, 0x2e, 0xdc, 0xca, 0xc0, 0xec, 0x54, 0x12, 0x4e, 0x82, 0xf8, 0x10, 0x18, 0x17, 0x92, 0xda, 0x49, 0xea, 0x10, 0xbd, 0x94, 0x1f, 0x98, 0x95, 0xa0, 0x69, 0x59, 0xfd, 0xe0, 0xd3, 0xb0, 0xae, 0x84, 0xc3, 0x9d, 0xf0, 0x53, 0x90, 0xab, 0x33, 0xc3, 0x6c, 0x79, 0xca, 0x22, 0xe6, 0x59, 0x4d, 0x7f, 0xc6, 0xe3, 0xf8, 0x69, 0x22, 0xd7, 0x8e, 0xb7, 0xf5, 0xc2, 0x54, 0x95, 0xd8, 0x22, 0xa3, 0xb4, 0x10, 0x51, 0xb2, 0x4e, 0x57, 0xa7, 0x6f, 0xcf, 0xc1, 0x65, 0xcd, 0xe6, 0xd0, 0x96, 0xcc, 0x7b, 0x7e, 0x9d, 0x05, 0x5f, 0xe8, 0x64, 0xd5, 0x29, 0x42, 0xd6, 0x29, 0xa8, 0xac, 0x26, 0x1b, 0xe1, 0xdc, 0xd3, 0xa2, 0x1f, 0x89, 0x5f, 0x49, 0xb6, 0x7e, 0xe4, 0x7e, 0xab, 0x7c, 0xf1, 0x64, 0x4d, 0x57, 0x1d, 0x5f, 0xf3, 0x8c, 0x17, 0x9f, 0x5c, 0x6a, 0x54, 0xa3, 0x61, 0x2f, 0xb3, 0x47, 0x53, 0x41, 0x2a, 0x1b, 0x95, 0xbf, 0x62, 0xff, 0x31, 0x79, 0x80, 0x4f, 0xfb, 0xb9, 0x90, 0x51, 0xf2, 0xb0, 0x80, 0x56, 0x3a, 0x4a, 0xe0, 0xf2, 0x7c, 0xf9, 0x96, 0xea, 0x8b, 0xe3, 0xba, 0xe0, 0xa4, 0x33, 0x9d, 0xcc, 0xdf, 0xf6, 0xb6, 0x67, 0x15, 0x59, 0x26, 0x6e, 0xaf, 0xf4, 0xef, 0xf6, 0x82, 0xb8, 0xde, 0xe8, 0x9c, 0x9d, 0x2d, 0x45, 0xac, 0xdb, 0xec, 0x4a, 0xa6, 0xce, 0xcd, 0xbd, 0xb1, 0xd2, 0x84, 0x60, 0x9e, 0x65, 0xef, 0xb7, 0x7b, 0xb8, 0xf1, 0xa5, 0x1f, 0xc4, 0xd4, 0x56, 0x8a, 0x70, 0x5f, 0xb9, 0xc9, 0x7b, 0x23, 0x03, 0xc1, 0x46, 0x7d, 0xff, 0x8c, 0x8c, 0x5e, 0xe2, 0x75, 0x59, 0xb9, 0x3a, 0xd1, 0xc5, 0xb9, 0xc5, 0xc6, 0xc7, 0xc5, 0x29, 0xfa, 0x8c, 0x55, 0xc7, 0x5e, 0xbb, 0x59, 0xb2, 0xa8, 0x18, 0xaa, 0x9b, 0xda, 0x1e, 0x9e, 0x79, 0xbc, 0x66, 0x02, 0x97, 0x72, 0xf8, 0xae, 0xa1, 0x1b, 0xad, 0xd3, 0x22, 0x65, 0x65, 0xd5, 0x4f, 0xd0, 0x1b, 0xda, 0x8c, 0xb2, 0x70, 0xe7, 0x0d, 0xc9, 0x33, 0x9b, 0x46, 0x90, 0x0b, 0x58, 0x18, 0xe9, 0x32, 0x07, 0x5b, 0xe6, 0xc2, 0x8e, 0x73, 0xa1, 0x91, 0xd0, 0x2c, 0xbd, 0xc7, 0x45, 0x4b, 0xe1, 0x23, 0x87, 0xb0, 0xd4, 0x7a, 0x1a, 0xb1, 0x42, 0x32, 0xd2, 0x34, 0x2a, 0x6f, 0x15, 0x18, 0xea, 0x97, 0x09, 0x8b, 0x81, 0x5a, 0x1c, 0xa3, 0xf9, 0xc7, 0x0b, 0x25, 0x72, 0x2b, 0x1b, 0xcd, 0x7d, 0xac, 0xda, 0x63, 0x56, 0x22, 0xfc, 0x8e, 0x72, 0x95, 0x9f, 0x57, 0xf7, 0x67, 0xea, 0x56, 0x3d, 0xa4, 0xc1, 0x58, 0xee, 0xf7, 0x20, 0x01, 0x09, 0xf6, 0x14, 0x16, 0xc2, 0xe7, 0x04, 0x39, 0x92, 0x30, 0x62, 0x43, 0x7b, 0x1d, 0x08, 0x2a, 0x8c, 0x7f, 0x43, 0x94, 0x71, 0x3c, 0x1b, 0x7b, 0xa0, 0x58, 0x7b, 0x84, 0x1c, 0x11, 0x44, 0x75, 0xee, 0x3f, 0xf0, 0x59, 0xdf, 0x8c, 0xfa, 0x12, 0xa3, 0x21, 0xd9, 0x01, 0xcb, 0x47, 0xf5, };
19227 static const u8 ed25519_836_test_vectors_expected_sig[] = {
19228 	0x4b, 0x00, 0x1d, 0x96, 0x42, 0x83, 0x5d, 0x72, 0x13, 0x8d, 0x68, 0x01, 0x98, 0xe6, 0xaf, 0x70, 0xb5, 0xde, 0x7a, 0xf0, 0x15, 0x13, 0x1e, 0xa7, 0x26, 0xf4, 0xe5, 0x1b, 0x5e, 0x8b, 0x6d, 0x48, 0xc2, 0xa6, 0xca, 0x8e, 0x87, 0x09, 0xcc, 0x82, 0x22, 0xa5, 0x04, 0x7c, 0x09, 0xa6, 0x6e, 0x51, 0x8a, 0xc5, 0xe8, 0xb6, 0xe5, 0x35, 0x48, 0x94, 0x82, 0x61, 0xf0, 0x70, 0x1f, 0x68, 0x73, 0x08, };
19229 static const ec_test_case ed25519_836_test_case = {
19230 	.name = "EDDSA25519-SHA512/wei25519 836",
19231 	.ec_str_p = &wei25519_str_params,
19232 	.priv_key = ed25519_836_test_vectors_priv_key,
19233 	.priv_key_len = sizeof(ed25519_836_test_vectors_priv_key),
19234 	.nn_random = NULL,
19235 	.hash_type = SHA512,
19236 	.msg = (const char *)ed25519_836_test_vectors_message,
19237 	.msglen = sizeof(ed25519_836_test_vectors_message),
19238 	.sig_type = EDDSA25519,
19239 	.exp_sig = ed25519_836_test_vectors_expected_sig,
19240 	.exp_siglen = sizeof(ed25519_836_test_vectors_expected_sig),
19241 	.adata = NULL,
19242 	.adata_len = 0
19243 };
19244 
19245 /************************************************/
19246 static const u8 ed25519_837_test_vectors_priv_key[] = {
19247 	0xa3, 0xd2, 0x35, 0x05, 0xd0, 0x7c, 0x5f, 0x93, 0x7f, 0x13, 0x63, 0x9d, 0xbd, 0x81, 0x8e, 0x85, 0x14, 0x52, 0x34, 0xee, 0x70, 0x17, 0xec, 0xee, 0x86, 0x36, 0xc7, 0xba, 0x76, 0xeb, 0xef, 0x5b, };
19248 static const u8 ed25519_837_test_vectors_message[] = {
19249 	0xbc, 0x29, 0x8e, 0xd6, 0x98, 0x92, 0x90, 0x40, 0x28, 0x72, 0x5e, 0x21, 0xb1, 0x14, 0x46, 0x2d, 0x89, 0xd8, 0xc0, 0x06, 0xdc, 0x88, 0x4b, 0x17, 0x87, 0x56, 0x83, 0x8a, 0xf4, 0x95, 0x4f, 0xf0, 0xf1, 0xb7, 0x95, 0x17, 0x30, 0x7a, 0x25, 0x8a, 0x0e, 0x76, 0x81, 0xe8, 0x79, 0xac, 0x47, 0xd7, 0x92, 0x02, 0x30, 0xb0, 0xcc, 0x1d, 0x66, 0x17, 0x1e, 0xb2, 0x14, 0xd7, 0x7c, 0xd9, 0x7f, 0x61, 0x7c, 0x40, 0x5e, 0x6c, 0x21, 0x72, 0xfc, 0x58, 0x9f, 0x16, 0x25, 0xcc, 0x5e, 0x1b, 0x59, 0x31, 0x10, 0x53, 0x1f, 0x6e, 0xb5, 0x3f, 0x1e, 0x6f, 0x48, 0x6d, 0x19, 0x64, 0x61, 0x24, 0x47, 0x75, 0x0a, 0x04, 0x1f, 0xe5, 0x1b, 0x33, 0x2e, 0xb3, 0xfb, 0xc7, 0x11, 0x61, 0x6c, 0xe3, 0x5f, 0x04, 0x04, 0x42, 0xb4, 0x31, 0x63, 0xb8, 0x0b, 0x75, 0x1e, 0x21, 0xec, 0x12, 0x45, 0xf1, 0x2e, 0x48, 0x83, 0xc7, 0x9d, 0x3b, 0x41, 0x32, 0x82, 0xc6, 0x9b, 0xfc, 0x6a, 0x46, 0x5d, 0x1e, 0x78, 0x96, 0xba, 0xb0, 0x38, 0xdc, 0x89, 0xb4, 0xcf, 0xc0, 0x32, 0xfc, 0xcd, 0xfc, 0x87, 0xb0, 0x7f, 0x06, 0x11, 0x0e, 0x1f, 0x50, 0x6a, 0xcc, 0xa8, 0x15, 0x7a, 0x32, 0x25, 0x43, 0xbf, 0x1e, 0xd8, 0x90, 0x67, 0x27, 0xf2, 0x8d, 0x0d, 0x68, 0x9b, 0xcd, 0x7d, 0xd3, 0xdf, 0x85, 0x93, 0x52, 0x04, 0xa9, 0x04, 0xab, 0x3f, 0x7a, 0x0d, 0x99, 0xc1, 0x6e, 0x5a, 0x54, 0x2c, 0xc2, 0xbc, 0xde, 0xbf, 0x5b, 0x50, 0x2d, 0xba, 0xbe, 0x33, 0xb9, 0x72, 0x48, 0x0e, 0x02, 0xe7, 0x1a, 0x43, 0x8a, 0x19, 0x80, 0xa8, 0x76, 0x6f, 0x10, 0x8b, 0xd8, 0xad, 0x51, 0x10, 0x42, 0x23, 0x99, 0x4d, 0x9b, 0xfb, 0x3c, 0x3a, 0x4b, 0x7a, 0x59, 0x23, 0x8c, 0xe2, 0xef, 0x7d, 0x72, 0x88, 0x38, 0x3f, 0xfb, 0xf2, 0x91, 0xe1, 0x60, 0x2b, 0x38, 0x4a, 0xf6, 0x07, 0x00, 0xd7, 0xda, 0xf0, 0xe8, 0xfe, 0x60, 0xf8, 0xca, 0xed, 0xe4, 0x3d, 0xb0, 0x6b, 0x3f, 0x4c, 0x8c, 0xff, 0xf7, 0x49, 0xae, 0xaf, 0xa4, 0x6f, 0xc6, 0x1c, 0x49, 0xb2, 0xd5, 0xa4, 0x12, 0x04, 0xcf, 0x86, 0xf0, 0x49, 0x25, 0x4d, 0x80, 0x9e, 0x94, 0x98, 0xaa, 0x9d, 0x4c, 0xfd, 0xb9, 0x4a, 0xcb, 0x2b, 0xab, 0xfc, 0xf7, 0x86, 0xdd, 0xfb, 0x03, 0x69, 0x15, 0x16, 0xb3, 0x83, 0x8b, 0x0d, 0x4f, 0x20, 0x1c, 0xb2, 0x59, 0x1e, 0xdb, 0xb0, 0xb0, 0xf6, 0x74, 0xe1, 0xe2, 0x82, 0x03, 0x16, 0xb7, 0x2e, 0x81, 0xb4, 0x8c, 0xc5, 0xa6, 0xb2, 0x93, 0x38, 0xbc, 0x36, 0x68, 0x1f, 0x8f, 0x7d, 0xca, 0x43, 0xee, 0x6c, 0x0b, 0xd2, 0xe4, 0x02, 0xaf, 0xbf, 0x96, 0x77, 0x97, 0x51, 0x64, 0x53, 0xbc, 0x01, 0xbe, 0x86, 0xbf, 0x42, 0x29, 0x9d, 0x1b, 0x73, 0x6a, 0x0d, 0x97, 0xbb, 0xc9, 0x22, 0xf5, 0xa7, 0x8a, 0xf2, 0xdf, 0x42, 0xe6, 0xf8, 0xc2, 0x8e, 0x95, 0x3f, 0x2c, 0xea, 0xda, 0xff, 0xc5, 0xe9, 0x30, 0x64, 0x04, 0x1e, 0x42, 0x5a, 0xd6, 0x97, 0x5f, 0x88, 0xc7, 0xaa, 0xdf, 0x81, 0xc3, 0x68, 0x69, 0x1a, 0x58, 0x1e, 0x88, 0x5f, 0x2a, 0x6b, 0xa7, 0x2e, 0xd6, 0x8b, 0x8f, 0xef, 0xbc, 0xd6, 0xce, 0x36, 0x86, 0x26, 0xd4, 0x48, 0x92, 0xa2, 0x02, 0x70, 0xb5, 0xf7, 0x09, 0xc2, 0xe3, 0x4b, 0x83, 0x35, 0xd4, 0x2e, 0xeb, 0xd6, 0x7a, 0x24, 0xdf, 0x73, 0xf4, 0x54, 0x55, 0xc4, 0x19, 0x44, 0x18, 0x7b, 0x66, 0x92, 0xf0, 0x54, 0xb2, 0xfc, 0x95, 0x91, 0x37, 0x3f, 0x19, 0xfc, 0x71, 0xaa, 0x7f, 0xa2, 0x7d, 0xf6, 0x00, 0x6a, 0x1d, 0x54, 0x9b, 0xbf, 0xae, 0x7d, 0x3c, 0x3e, 0xb3, 0x6e, 0x5a, 0xb2, 0xaa, 0xa1, 0x0a, 0xa5, 0x53, 0x8d, 0xa7, 0xef, 0x36, 0xc8, 0xff, 0x35, 0x4b, 0x60, 0x58, 0x13, 0x40, 0x04, 0xd6, 0x60, 0xa4, 0x03, 0x63, 0x21, 0xca, 0xad, 0x00, 0xa3, 0x0b, 0x1c, 0x49, 0x8b, 0xa3, 0xd8, 0x08, 0xc4, 0x40, 0x5e, 0xf7, 0x96, 0x18, 0xfc, 0x22, 0x12, 0xa7, 0xb8, 0x33, 0x96, 0xa3, 0xd7, 0xce, 0xdc, 0xeb, 0x86, 0x3c, 0x66, 0x37, 0x4d, 0xc4, 0x69, 0xae, 0x18, 0x3c, 0x7e, 0xd7, 0x4b, 0x3e, 0x70, 0xd6, 0x37, 0x4a, 0x06, 0x2d, 0xe0, 0x37, 0x9b, 0x21, 0xcf, 0x25, 0xd3, 0xc4, 0xc5, 0x76, 0x21, 0x15, 0xcd, 0xfe, 0x75, 0x55, 0x45, 0xe8, 0x9a, 0xd4, 0x05, 0x2b, 0xb0, 0x27, 0x9d, 0x93, 0x8e, 0x90, 0xde, 0x3a, 0xbf, 0x50, 0x44, 0x10, 0xca, 0xad, 0x72, 0xb7, 0xc2, 0x9f, 0x53, 0xd0, 0x1d, 0x9d, 0xd7, 0xf2, 0xec, 0x5e, 0x45, 0x9a, 0x04, 0x59, 0x2b, 0xdd, 0x66, 0x41, 0x66, 0x13, 0xe6, 0xed, 0xd0, 0x04, 0x56, 0x9e, 0x0e, 0x6c, 0x98, 0x82, 0x7b, 0x8c, 0x1d, 0x70, 0x02, 0xa6, 0xd1, 0xbf, 0x30, 0x3e, 0x18, 0x25, 0x95, 0x01, 0xdd, 0x89, 0xf6, 0xee, 0x94, 0x76, 0x6d, 0x18, 0xaf, 0x81, 0x04, 0x63, 0xeb, 0x13, 0xb2, 0xef, 0xdd, 0xf1, 0x72, 0x3a, 0xf7, 0x35, 0xa8, 0x87, 0x16, 0xe1, 0xfc, 0xb4, 0xb7, 0xb4, 0x3c, 0xb9, 0x7e, 0x1c, 0xc9, 0x03, 0xb2, 0x40, 0x8e, 0xf4, 0x53, 0xad, 0xa4, 0x16, 0x47, 0x86, 0xf0, 0x08, 0x45, 0xfb, 0xfa, 0x1f, 0xfc, 0xa5, 0xcc, 0x3e, 0x1c, 0x4b, 0xd9, 0x94, 0x0e, 0x7d, 0x99, 0xae, 0xf9, 0x19, 0x16, 0x6d, 0x05, 0x8b, 0x51, 0x45, 0x3c, 0x9c, 0x14, 0xfb, 0x9f, 0x32, 0x51, 0xec, 0x5f, 0xe4, 0xf1, 0x53, 0xc7, 0x0a, 0x44, 0x92, 0xdc, 0x34, 0x96, 0x29, 0x61, 0x86, 0xf2, 0x3a, 0xd4, 0x7e, 0xba, 0xd1, 0x3c, 0x66, 0xe6, 0x87, 0x27, 0xce, 0x50, 0xba, 0x94, 0x87, 0xf1, 0x80, 0x18, 0x90, 0xb6, 0x93, 0xef, 0xeb, 0xfc, 0x37, 0xbb, 0x5d, 0x95, 0xf8, 0xaf, 0x54, 0x8e, 0xc8, 0xd6, 0x49, 0x82, 0x89, 0xe5, 0x5f, 0x98, 0x83, 0xfc, 0x5b, 0xe8, 0x4c, 0x25, 0x6d, 0x2b, 0xc5, 0x48, 0x49, 0x38, 0xc7, 0x09, 0x82, 0x0d, 0x9b, 0x6b, 0x80, 0x59, 0xc0, 0xaa, 0x42, 0x67, 0xdd, 0xe6, 0x90, 0x78, 0xe4, 0x87, 0xc8, 0x86, 0x5c, 0x0b, 0x13, 0x0a, 0x0c, 0xa8, 0xca, };
19250 static const u8 ed25519_837_test_vectors_expected_sig[] = {
19251 	0x67, 0xa6, 0x67, 0xee, 0x0d, 0x62, 0x54, 0xca, 0x0a, 0x8f, 0x21, 0x25, 0x82, 0xc0, 0xcb, 0x8b, 0x6e, 0xd9, 0x7c, 0xc9, 0x67, 0xdb, 0x02, 0x12, 0x96, 0xad, 0x6a, 0xa9, 0x9f, 0x0a, 0xd3, 0xa9, 0x44, 0x97, 0x8c, 0xfd, 0xaf, 0xf1, 0x3f, 0xe5, 0xf8, 0xc6, 0xe8, 0x8c, 0xbd, 0x83, 0x1a, 0x54, 0x73, 0xd0, 0x74, 0x2e, 0x37, 0x34, 0xb3, 0xe2, 0xdf, 0x00, 0xff, 0x32, 0x40, 0xa5, 0xde, 0x02, };
19252 static const ec_test_case ed25519_837_test_case = {
19253 	.name = "EDDSA25519-SHA512/wei25519 837",
19254 	.ec_str_p = &wei25519_str_params,
19255 	.priv_key = ed25519_837_test_vectors_priv_key,
19256 	.priv_key_len = sizeof(ed25519_837_test_vectors_priv_key),
19257 	.nn_random = NULL,
19258 	.hash_type = SHA512,
19259 	.msg = (const char *)ed25519_837_test_vectors_message,
19260 	.msglen = sizeof(ed25519_837_test_vectors_message),
19261 	.sig_type = EDDSA25519,
19262 	.exp_sig = ed25519_837_test_vectors_expected_sig,
19263 	.exp_siglen = sizeof(ed25519_837_test_vectors_expected_sig),
19264 	.adata = NULL,
19265 	.adata_len = 0
19266 };
19267 
19268 /************************************************/
19269 static const u8 ed25519_838_test_vectors_priv_key[] = {
19270 	0x6e, 0x26, 0x51, 0x05, 0xee, 0x71, 0x71, 0xd1, 0xbd, 0x79, 0x3e, 0xff, 0xd8, 0x7d, 0x1e, 0x2c, 0x79, 0x45, 0x0d, 0x5e, 0x18, 0x8b, 0x57, 0xbe, 0x3a, 0xa1, 0x62, 0xe2, 0xa5, 0x25, 0x28, 0xad, };
19271 static const u8 ed25519_838_test_vectors_message[] = {
19272 	0xf8, 0xb9, 0xd4, 0xb0, 0x27, 0xeb, 0xb1, 0x0e, 0xe5, 0x11, 0x81, 0x9e, 0x6e, 0x56, 0xfb, 0x1b, 0xa9, 0x58, 0x40, 0x18, 0x41, 0x8d, 0x82, 0x88, 0x5a, 0x38, 0xa4, 0x49, 0x08, 0x60, 0x07, 0xb8, 0x78, 0x5b, 0x51, 0x05, 0xca, 0xf7, 0x82, 0xbf, 0x9b, 0x36, 0xda, 0x03, 0x9c, 0xc6, 0x0e, 0x22, 0x7c, 0x7e, 0x16, 0x14, 0xf2, 0x9b, 0x64, 0x0b, 0x1e, 0x9b, 0x22, 0x74, 0x7e, 0xea, 0x7a, 0x67, 0x25, 0x61, 0x4e, 0x89, 0xe0, 0x78, 0x3e, 0xbe, 0xbb, 0xb7, 0xee, 0x55, 0x7e, 0xf3, 0x6b, 0x2b, 0x46, 0xcf, 0x64, 0x61, 0xe5, 0xbe, 0x2a, 0xd1, 0xd7, 0xa7, 0xc2, 0x71, 0x1a, 0x47, 0x5c, 0xa4, 0xfb, 0xc3, 0x30, 0x92, 0xba, 0x42, 0x56, 0x67, 0xe3, 0x4d, 0x09, 0x00, 0x60, 0x51, 0x8f, 0x2f, 0xec, 0x63, 0x6b, 0x04, 0x91, 0x23, 0x87, 0x6a, 0xb2, 0x1c, 0x8b, 0xd9, 0xc5, 0x0d, 0xcc, 0xb9, 0x84, 0xca, 0x01, 0x1a, 0x02, 0xee, 0xa0, 0x20, 0x56, 0x4f, 0xa8, 0x21, 0xfc, 0x36, 0x2b, 0xfe, 0x39, 0x2a, 0xab, 0x50, 0xc2, 0x73, 0xfc, 0x7b, 0x5a, 0x04, 0x21, 0x88, 0xe3, 0x31, 0x62, 0x1b, 0x9d, 0x2f, 0x74, 0x3e, 0x5c, 0x8c, 0xf3, 0xab, 0x1f, 0xaf, 0xfa, 0xfe, 0x2a, 0x00, 0x04, 0xc8, 0xef, 0x7c, 0xdf, 0x5e, 0x6d, 0xbb, 0x5e, 0xb5, 0x44, 0xe4, 0x28, 0x9f, 0x71, 0xa6, 0xfd, 0x15, 0xc6, 0x38, 0xce, 0x29, 0xd2, 0x8e, 0xfb, 0x9c, 0x03, 0x9e, 0x47, 0x74, 0x29, 0xa3, 0x49, 0x7a, 0x83, 0x82, 0x7e, 0x76, 0xce, 0x77, 0xa4, 0x98, 0x16, 0xd9, 0x0b, 0x41, 0xa8, 0xe1, 0x52, 0xf3, 0x7a, 0x09, 0xe6, 0x34, 0x0d, 0xfe, 0x06, 0x9a, 0x4a, 0xc6, 0xf2, 0x7d, 0xd2, 0xea, 0xc7, 0x47, 0xfd, 0x21, 0xe3, 0x15, 0x20, 0x88, 0xc1, 0xb1, 0xec, 0xd3, 0x2a, 0xc6, 0x79, 0x92, 0x74, 0x90, 0x75, 0x04, 0x88, 0xc2, 0x91, 0x78, 0x51, 0x47, 0xb6, 0x3b, 0x0b, 0x8f, 0xf1, 0x1d, 0x18, 0x9b, 0x90, 0x49, 0xb8, 0xa3, 0x96, 0xb6, 0x93, 0x2f, 0x85, 0xbd, 0x6a, 0x15, 0xef, 0xf9, 0xf0, 0xce, 0x18, 0x08, 0x41, 0x1a, 0xf0, 0xf9, 0xc8, 0xe6, 0xe9, 0x7b, 0x81, 0x4f, 0x11, 0x0b, 0xd4, 0xdf, 0x13, 0x86, 0xa9, 0x79, 0x7d, 0xc5, 0x11, 0xf0, 0xaa, 0xb6, 0xab, 0x65, 0x07, 0x1d, 0x9e, 0xa8, 0x36, 0x53, 0x2c, 0xec, 0x51, 0xb9, 0x2c, 0xa7, 0xfb, 0xdb, 0x8d, 0xe1, 0xc8, 0x43, 0x66, 0x58, 0xde, 0x2e, 0xb6, 0x5e, 0xdd, 0x86, 0x04, 0x4f, 0x6c, 0x1a, 0xba, 0x31, 0x78, 0x64, 0x7a, 0xd6, 0x78, 0x61, 0x2e, 0xe7, 0x4f, 0x04, 0x6c, 0xa3, 0xc7, 0xfe, 0x2f, 0x39, 0xc0, 0x9d, 0xd2, 0xe0, 0x7d, 0xf2, 0xb4, 0x22, 0x70, 0x85, 0xfe, 0x93, 0x6e, 0x79, 0x4d, 0x22, 0xfd, 0x5f, 0x40, 0xa2, 0x5f, 0x08, 0x77, 0x15, 0x80, 0xac, 0x80, 0x1d, 0x98, 0x89, 0xf5, 0xa7, 0x6a, 0xea, 0xe1, 0xf0, 0xcc, 0x4a, 0x9e, 0x1e, 0xdb, 0xdd, 0xa3, 0x75, 0x0c, 0x74, 0xc8, 0x50, 0x52, 0x4b, 0x32, 0xf4, 0x49, 0x33, 0xfd, 0x88, 0x3b, 0x53, 0x72, 0xbf, 0xb7, 0xe7, 0x61, 0xe0, 0x69, 0xfe, 0x7c, 0x1c, 0x0e, 0x7f, 0xbd, 0x4a, 0x7f, 0x58, 0x46, 0x7e, 0xa6, 0x88, 0x3f, 0x9d, 0x5b, 0x7f, 0x66, 0xd3, 0x86, 0xb0, 0x49, 0x9b, 0xb6, 0xfb, 0x5e, 0xad, 0x89, 0xc9, 0xa1, 0xfd, 0x2c, 0xce, 0xb9, 0x73, 0xe2, 0x87, 0x9b, 0x5d, 0x03, 0xea, 0xa4, 0x52, 0xe1, 0x60, 0x22, 0xd5, 0x96, 0x17, 0xda, 0xa0, 0x48, 0x6f, 0x4d, 0x4c, 0x11, 0x78, 0x07, 0xfd, 0xa8, 0x49, 0x9d, 0xfb, 0x7a, 0x28, 0x6f, 0xd2, 0xf7, 0x1a, 0x8e, 0xb5, 0xfe, 0x64, 0x06, 0x5c, 0x41, 0xe4, 0xe1, 0xe2, 0x36, 0x2a, 0xb4, 0xe4, 0x77, 0x96, 0x9e, 0x3a, 0x40, 0x8a, 0x24, 0x7e, 0x3a, 0x56, 0xfc, 0x86, 0xf2, 0xb0, 0x1e, 0xf8, 0xd3, 0xcd, 0xda, 0x87, 0x25, 0x82, 0x34, 0xbc, 0x7f, 0x25, 0xb6, 0x69, 0x07, 0xf3, 0x64, 0xb3, 0x7b, 0x62, 0x45, 0x29, 0x6c, 0x4f, 0xdf, 0x49, 0x9f, 0x20, 0x23, 0x7f, 0x48, 0x64, 0x85, 0x2f, 0xc5, 0xd8, 0xcd, 0x5d, 0x05, 0x41, 0x8b, 0xe8, 0xb1, 0x38, 0x59, 0xee, 0x9a, 0x43, 0xe1, 0x7e, 0x1f, 0x57, 0xa4, 0xc3, 0x5e, 0xa2, 0x82, 0xed, 0x68, 0xeb, 0xcd, 0xa6, 0x82, 0x81, 0x74, 0x24, 0x5a, 0x49, 0xc6, 0xcb, 0x65, 0x90, 0xeb, 0x1f, 0x2d, 0xcf, 0xb0, 0x07, 0xbf, 0xa1, 0xc3, 0x20, 0x77, 0x95, 0x6d, 0xa9, 0xac, 0xbe, 0x3e, 0xf0, 0x72, 0x37, 0x99, 0xfd, 0xb8, 0x69, 0xd8, 0xde, 0x30, 0x70, 0x6a, 0x9c, 0x02, 0x68, 0x14, 0xd1, 0x6a, 0x01, 0xe0, 0x33, 0xc9, 0x1b, 0x59, 0x07, 0x0d, 0xfe, 0x44, 0x5c, 0x5b, 0x84, 0x8a, 0x51, 0x66, 0x12, 0xe5, 0x13, 0x1f, 0xe8, 0x48, 0x69, 0x21, 0xe3, 0x6b, 0x8e, 0x7e, 0xf1, 0x57, 0xa8, 0x88, 0x22, 0x88, 0x6c, 0x68, 0x1b, 0x5d, 0xa7, 0x1f, 0xea, 0x94, 0xd9, 0x57, 0xda, 0xfe, 0xc2, 0x6f, 0x41, 0x47, 0xa3, 0xb2, 0xac, 0x38, 0x3a, 0x5f, 0x47, 0xc8, 0x58, 0x5e, 0xb1, 0x7a, 0x8a, 0xc6, 0x57, 0x90, 0x64, 0x1b, 0x42, 0x18, 0xd7, 0x55, 0xf8, 0xbe, 0xa4, 0xd9, 0x7a, 0xe2, 0xa4, 0x5b, 0xdc, 0xdc, 0x23, 0x23, 0x62, 0x94, 0xd8, 0x52, 0xc9, 0x5d, 0x08, 0x40, 0x6d, 0x2e, 0x9b, 0xd3, 0x0c, 0x32, 0x64, 0x52, 0x53, 0x8c, 0x1f, 0x5e, 0x50, 0x04, 0xd4, 0xa1, 0xa8, 0x27, 0x20, 0xda, 0x32, 0xe5, 0x9d, 0xc3, 0xab, 0x18, 0xea, 0x08, 0xa0, 0x58, 0xf7, 0x91, 0xd2, 0x44, 0x18, 0x55, 0x60, 0x86, 0xc1, 0xe4, 0xed, 0xce, 0x89, 0x82, 0xaa, 0x23, 0xb1, 0x18, 0xfb, 0x26, 0x6e, 0x60, 0xb5, 0x42, 0x78, 0x0a, 0x69, 0x33, 0xad, 0xd9, 0x13, 0x26, 0x55, 0x12, 0xc0, 0x7b, 0x11, 0x49, 0x78, 0xd4, 0x4a, 0xf7, 0x3b, 0x20, 0x30, 0xec, 0x47, 0xb0, 0x6f, 0xd0, 0x9d, 0xda, 0x8c, 0x4f, 0x1d, 0x4e, 0x31, 0x37, 0x75, 0x46, 0x8c, 0x45, 0x1f, 0x9e, 0xe6, 0x11, 0xe9, 0xcd, 0x4c, 0x08, 0x45, 0xc2, 0x50, 0x19, 0x48, 0xa7, 0xb1, 0x4e, 0xf1, 0xd4, 0xb5, 0xcf, };
19273 static const u8 ed25519_838_test_vectors_expected_sig[] = {
19274 	0xb5, 0xa8, 0x3a, 0x11, 0x7a, 0x60, 0x34, 0x5a, 0x67, 0xe4, 0xa6, 0x65, 0xf3, 0x7d, 0xe7, 0x22, 0xa6, 0xec, 0x03, 0x91, 0x38, 0x29, 0x38, 0x99, 0x59, 0xf3, 0x76, 0xee, 0x62, 0x64, 0x77, 0xe6, 0x54, 0xac, 0x8d, 0x72, 0x0f, 0xc7, 0x27, 0xd4, 0xbb, 0x8f, 0xe1, 0x54, 0x4f, 0x5d, 0x0b, 0x0b, 0x85, 0x05, 0x14, 0x29, 0x0b, 0x24, 0x27, 0x3c, 0x4c, 0xd4, 0xb7, 0x3a, 0xca, 0x4a, 0x53, 0x00, };
19275 static const ec_test_case ed25519_838_test_case = {
19276 	.name = "EDDSA25519-SHA512/wei25519 838",
19277 	.ec_str_p = &wei25519_str_params,
19278 	.priv_key = ed25519_838_test_vectors_priv_key,
19279 	.priv_key_len = sizeof(ed25519_838_test_vectors_priv_key),
19280 	.nn_random = NULL,
19281 	.hash_type = SHA512,
19282 	.msg = (const char *)ed25519_838_test_vectors_message,
19283 	.msglen = sizeof(ed25519_838_test_vectors_message),
19284 	.sig_type = EDDSA25519,
19285 	.exp_sig = ed25519_838_test_vectors_expected_sig,
19286 	.exp_siglen = sizeof(ed25519_838_test_vectors_expected_sig),
19287 	.adata = NULL,
19288 	.adata_len = 0
19289 };
19290 
19291 /************************************************/
19292 static const u8 ed25519_839_test_vectors_priv_key[] = {
19293 	0xc4, 0x37, 0x0d, 0x2a, 0xaf, 0x35, 0xac, 0xd1, 0x58, 0xfc, 0x0d, 0x16, 0x22, 0xa3, 0x99, 0xc9, 0x9f, 0x41, 0xb9, 0xda, 0x4e, 0x97, 0x0b, 0x35, 0x4e, 0x5b, 0xa0, 0x5c, 0xbe, 0x84, 0x4c, 0xa8, };
19294 static const u8 ed25519_839_test_vectors_message[] = {
19295 	0x61, 0x9f, 0x57, 0xde, 0x2b, 0x1d, 0xba, 0xee, 0x20, 0x9a, 0x82, 0x5d, 0x8c, 0xa9, 0x7f, 0x84, 0xee, 0x49, 0xeb, 0x12, 0xa0, 0xb1, 0x3d, 0xcd, 0xd2, 0xb3, 0xa4, 0xee, 0x45, 0xe0, 0x17, 0x6d, 0x47, 0x4c, 0xf0, 0x94, 0x60, 0xc8, 0x31, 0xa8, 0xae, 0x1d, 0x3f, 0x39, 0xbe, 0xeb, 0xd0, 0x88, 0x08, 0xb3, 0xed, 0x17, 0x61, 0x21, 0x3b, 0xa9, 0x53, 0x42, 0x18, 0x60, 0xcc, 0x07, 0xe2, 0xdb, 0x31, 0x2e, 0x68, 0x0d, 0xf0, 0x3e, 0x60, 0xa6, 0x87, 0x02, 0x64, 0xab, 0xca, 0x8f, 0xd5, 0x13, 0x01, 0xe1, 0xc1, 0x56, 0x20, 0x23, 0xd8, 0x02, 0xcc, 0xd5, 0xc7, 0xd1, 0x96, 0xdb, 0x39, 0xfb, 0xb8, 0x30, 0x4b, 0x0e, 0x59, 0xe3, 0x33, 0x16, 0x41, 0x92, 0xec, 0xc3, 0x33, 0x38, 0x7e, 0xef, 0x69, 0xc7, 0xa7, 0x8a, 0x5d, 0x11, 0x25, 0x88, 0x62, 0xd6, 0xc2, 0x81, 0xb1, 0x9c, 0x0b, 0xd3, 0x36, 0xcd, 0x3e, 0xdb, 0x2f, 0x9f, 0xaa, 0xd4, 0x02, 0x1a, 0xc2, 0xf2, 0x05, 0xc1, 0x68, 0x14, 0xb3, 0x85, 0x48, 0x43, 0x3f, 0xf9, 0xed, 0xdf, 0xd6, 0x11, 0x33, 0x77, 0x97, 0x69, 0xdc, 0x69, 0xaf, 0xac, 0x65, 0x8a, 0xfc, 0x1d, 0x1b, 0x41, 0x6d, 0x39, 0x0a, 0xd5, 0xb4, 0x5a, 0x1a, 0xd5, 0xcc, 0x4b, 0x00, 0xb4, 0xb2, 0x78, 0xfb, 0xe4, 0xb5, 0x9d, 0x52, 0xe6, 0x1a, 0x6a, 0x5f, 0xd0, 0x02, 0x41, 0xc6, 0xcb, 0xc3, 0x82, 0xd2, 0xd6, 0x21, 0xa3, 0xde, 0xd0, 0x02, 0x01, 0x9b, 0x33, 0x05, 0x60, 0xe3, 0x61, 0xfa, 0xab, 0x28, 0xf4, 0x1d, 0x1a, 0xf9, 0xc9, 0xc0, 0x02, 0x0f, 0x2b, 0xaf, 0x99, 0xe8, 0xd8, 0xee, 0x58, 0xe3, 0x12, 0x22, 0x02, 0x14, 0x7c, 0x0a, 0xdc, 0x57, 0xd6, 0x70, 0xc5, 0xb3, 0x80, 0xaf, 0x59, 0x4c, 0xc7, 0xed, 0x57, 0xb8, 0x7e, 0xc6, 0x67, 0x4a, 0xb6, 0x3f, 0x3a, 0x98, 0x49, 0x75, 0x3b, 0x94, 0x62, 0xaa, 0xb5, 0xde, 0x88, 0xc9, 0x48, 0xa8, 0xb1, 0x09, 0xaf, 0x4d, 0x49, 0x54, 0x92, 0x7a, 0xac, 0x58, 0xbe, 0xe9, 0x53, 0xbe, 0x0d, 0x8d, 0x7d, 0x71, 0xaa, 0x11, 0xd1, 0x1f, 0x1a, 0x87, 0xb1, 0x47, 0x7b, 0x91, 0x70, 0xbd, 0x73, 0x5c, 0xfc, 0x24, 0x49, 0xf0, 0x51, 0xb8, 0x2b, 0xc5, 0x9b, 0x0b, 0xee, 0x76, 0xa1, 0x72, 0xe8, 0xd3, 0x26, 0x70, 0xf5, 0x1d, 0xdd, 0xdb, 0x80, 0x4a, 0xd1, 0x10, 0xa5, 0x65, 0xe3, 0x84, 0xcd, 0xb7, 0x6f, 0xad, 0x04, 0xcf, 0xf6, 0x78, 0x93, 0x09, 0x1e, 0x41, 0xe6, 0x9c, 0xfd, 0xf7, 0x0e, 0xa9, 0x26, 0xc2, 0x63, 0x69, 0xa5, 0xb6, 0x19, 0x3b, 0x19, 0xab, 0x0a, 0x62, 0x55, 0x8d, 0xa5, 0x5f, 0xfa, 0xfe, 0xb8, 0x78, 0x97, 0x57, 0x71, 0x06, 0x44, 0xaa, 0x19, 0xf4, 0x74, 0xbe, 0x4a, 0xda, 0x9d, 0xc1, 0x84, 0x9b, 0x07, 0xd5, 0xe1, 0x7b, 0x85, 0xf9, 0x21, 0xe1, 0x01, 0x6a, 0x54, 0xaa, 0x60, 0x95, 0x77, 0x72, 0x53, 0xa7, 0x34, 0x26, 0xfc, 0x78, 0x64, 0xb9, 0x95, 0x5f, 0x04, 0x90, 0x70, 0x23, 0xdb, 0x20, 0x7f, 0x85, 0xdd, 0x21, 0xa6, 0x51, 0x06, 0xcf, 0x0d, 0x62, 0x23, 0x85, 0x87, 0x0c, 0x34, 0xc2, 0xda, 0x9a, 0x11, 0xe4, 0x72, 0x63, 0x95, 0x12, 0x1e, 0x4a, 0x67, 0x61, 0xfb, 0x52, 0x22, 0x29, 0xd9, 0xe5, 0xcc, 0x9d, 0xab, 0x35, 0xae, 0xb8, 0x7d, 0x0d, 0x79, 0x69, 0x3c, 0x00, 0x6f, 0xde, 0x1c, 0xfa, 0xf1, 0x16, 0x20, 0x8b, 0xba, 0x96, 0x20, 0x59, 0xcf, 0xc0, 0xd2, 0xd6, 0x37, 0x0a, 0xac, 0x77, 0x48, 0x36, 0x2e, 0xe6, 0xa0, 0xa3, 0xca, 0x7b, 0xf1, 0x33, 0xeb, 0xcf, 0xa2, 0x0f, 0x1c, 0x4e, 0xd8, 0x30, 0x7f, 0x80, 0x0c, 0xca, 0x7e, 0x6c, 0x4b, 0xea, 0xa3, 0xfb, 0x2a, 0xb0, 0x86, 0x12, 0x53, 0x64, 0x28, 0x5c, 0x44, 0xed, 0x1a, 0x73, 0x7a, 0x67, 0xcb, 0xf3, 0xb7, 0x63, 0xc9, 0xf8, 0xb1, 0x42, 0x7e, 0x89, 0xdf, 0xa9, 0x6d, 0x29, 0x0e, 0x9d, 0x48, 0x42, 0xfe, 0x63, 0x16, 0xaf, 0xef, 0x83, 0x4c, 0xd8, 0xcd, 0x1f, 0xdc, 0x1f, 0x12, 0x4c, 0xa3, 0xfe, 0x26, 0x26, 0x6d, 0xa6, 0x2e, 0x27, 0x5c, 0x0b, 0xf7, 0xfc, 0xc8, 0xe5, 0xf9, 0xbb, 0xa6, 0xc0, 0xd3, 0x8e, 0x23, 0xfa, 0xfa, 0xb1, 0xe0, 0x49, 0x48, 0x17, 0x94, 0xc1, 0x4f, 0x4a, 0x8c, 0x53, 0xbe, 0x1c, 0x96, 0xf7, 0x69, 0xc9, 0xb1, 0x3e, 0xac, 0xa3, 0x9a, 0x0e, 0x49, 0x36, 0x6d, 0x2c, 0x9f, 0xfe, 0x8f, 0x20, 0x63, 0x60, 0xa9, 0xd5, 0x03, 0xde, 0xc5, 0x98, 0x62, 0x11, 0x12, 0xe3, 0x77, 0x67, 0x13, 0xe7, 0xfc, 0x06, 0x49, 0x43, 0x3e, 0x25, 0x7e, 0x50, 0x3a, 0x54, 0x60, 0x59, 0xa9, 0x89, 0xda, 0x89, 0x15, 0x7d, 0x76, 0x47, 0x60, 0x05, 0xfd, 0x90, 0xe4, 0xb0, 0x7a, 0xaf, 0x0d, 0xb0, 0xbc, 0x0b, 0xc0, 0xb6, 0x7d, 0xb8, 0xdc, 0xba, 0xdf, 0xf3, 0x93, 0x74, 0xe1, 0xaf, 0xae, 0x55, 0x16, 0x34, 0xe0, 0xe3, 0x28, 0x31, 0xad, 0x0e, 0x5f, 0xa7, 0xd5, 0x21, 0x6f, 0xa7, 0xc6, 0x44, 0xf7, 0x3e, 0x1e, 0x8e, 0x07, 0x23, 0x83, 0x94, 0xa4, 0x16, 0xc1, 0x69, 0xaa, 0x9d, 0x53, 0x03, 0xf4, 0x69, 0xa5, 0xd4, 0x07, 0x43, 0x08, 0x72, 0x1f, 0xfd, 0xde, 0xff, 0x65, 0x59, 0xe5, 0xad, 0xf0, 0xc2, 0x77, 0x3b, 0x3f, 0x52, 0x64, 0xe7, 0xaa, 0xa8, 0xc2, 0xdb, 0x88, 0x8e, 0x28, 0xe8, 0x15, 0xc7, 0x10, 0x69, 0xc3, 0xb4, 0xce, 0x6c, 0x29, 0x03, 0x4c, 0x0a, 0xb3, 0xb5, 0xc1, 0x9a, 0x80, 0xa9, 0xd8, 0xc2, 0xe8, 0x74, 0x81, 0x35, 0x31, 0xc4, 0x22, 0x75, 0x2a, 0xd6, 0x2b, 0x3c, 0x5a, 0x1a, 0x3d, 0x6c, 0x5a, 0x5d, 0xb5, 0x87, 0x27, 0x06, 0x93, 0xaa, 0x75, 0xd5, 0xf1, 0x72, 0xee, 0xdd, 0xf4, 0xeb, 0x83, 0x9b, 0xd7, 0x93, 0xaf, 0xfb, 0x1c, 0x79, 0x6a, 0x1d, 0xf0, 0xe4, 0x42, 0xdd, 0xf9, 0x9b, 0x78, 0x0a, 0xa4, 0x1e, 0xea, 0x0f, 0xe6, 0xf8, 0x65, 0xbb, 0x53, 0x9c, 0xa5, 0x3a, 0xa4, 0x5d, 0xb9, 0xa8, 0x56, 0xcb, 0x75, 0xd0, 0x15, 0x1d, 0x35, 0xed, 0xea, 0x80, 0xf2, 0x94, 0x6d, };
19296 static const u8 ed25519_839_test_vectors_expected_sig[] = {
19297 	0x9f, 0xeb, 0xab, 0x5a, 0xe1, 0x61, 0xd6, 0x92, 0xa6, 0xa3, 0x94, 0x50, 0x0a, 0x28, 0x90, 0xd2, 0x1c, 0x7f, 0x0e, 0xe2, 0x6f, 0x46, 0x40, 0xaa, 0xba, 0x4f, 0xe6, 0x6b, 0x90, 0xb8, 0x9e, 0xdc, 0xb8, 0x0e, 0xa4, 0xcd, 0xca, 0xbb, 0x4d, 0x2c, 0x3a, 0x5c, 0x41, 0x54, 0xe8, 0xff, 0x20, 0xd0, 0xe2, 0x37, 0xfe, 0xfd, 0x00, 0xc7, 0xba, 0x97, 0x82, 0xe1, 0x74, 0x8f, 0x64, 0x88, 0xac, 0x01, };
19298 static const ec_test_case ed25519_839_test_case = {
19299 	.name = "EDDSA25519-SHA512/wei25519 839",
19300 	.ec_str_p = &wei25519_str_params,
19301 	.priv_key = ed25519_839_test_vectors_priv_key,
19302 	.priv_key_len = sizeof(ed25519_839_test_vectors_priv_key),
19303 	.nn_random = NULL,
19304 	.hash_type = SHA512,
19305 	.msg = (const char *)ed25519_839_test_vectors_message,
19306 	.msglen = sizeof(ed25519_839_test_vectors_message),
19307 	.sig_type = EDDSA25519,
19308 	.exp_sig = ed25519_839_test_vectors_expected_sig,
19309 	.exp_siglen = sizeof(ed25519_839_test_vectors_expected_sig),
19310 	.adata = NULL,
19311 	.adata_len = 0
19312 };
19313 
19314 /************************************************/
19315 static const u8 ed25519_840_test_vectors_priv_key[] = {
19316 	0xbd, 0x3d, 0xe1, 0xa1, 0xd1, 0x64, 0xbd, 0x6e, 0x9b, 0xe0, 0xa6, 0xd1, 0x07, 0xf7, 0x03, 0xa6, 0xdd, 0x91, 0x4c, 0x86, 0x67, 0xcd, 0x34, 0x1d, 0x13, 0x9f, 0x19, 0x57, 0x8d, 0x93, 0x3b, 0x16, };
19317 static const u8 ed25519_840_test_vectors_message[] = {
19318 	0x17, 0x69, 0xfc, 0xdb, 0xf5, 0x12, 0x47, 0xed, 0x4c, 0x83, 0xa0, 0x0b, 0xbb, 0xf0, 0x2f, 0x44, 0x28, 0xda, 0x6f, 0xce, 0xdd, 0xd0, 0x16, 0x1a, 0x02, 0xfc, 0xcd, 0x15, 0x00, 0x97, 0x06, 0x65, 0xe1, 0xc7, 0x63, 0x0a, 0xd2, 0x2e, 0x3d, 0x97, 0x49, 0xc7, 0x92, 0xe7, 0x1a, 0x26, 0x0c, 0xff, 0xf6, 0x05, 0x32, 0x56, 0xe0, 0x2f, 0x5b, 0x47, 0xbb, 0xa1, 0x4b, 0x76, 0x1a, 0xe5, 0x3c, 0xa7, 0x21, 0x9e, 0xd2, 0x80, 0x1d, 0x2d, 0x78, 0x8e, 0x26, 0x41, 0x9f, 0x36, 0xc8, 0x1e, 0xf9, 0x2c, 0x23, 0x03, 0x68, 0x37, 0x35, 0xc8, 0xa1, 0x75, 0x6a, 0xda, 0xb6, 0xa4, 0x87, 0x92, 0x31, 0x53, 0xe4, 0x35, 0x60, 0x3c, 0x96, 0xb2, 0x39, 0x55, 0x3e, 0xdf, 0xde, 0xb0, 0x93, 0x29, 0x8f, 0x7a, 0xe7, 0xdc, 0x90, 0xf1, 0x6a, 0x7e, 0x56, 0x64, 0xb9, 0xe4, 0xc0, 0x2b, 0xa7, 0x31, 0xa2, 0x3c, 0xf2, 0x23, 0x4e, 0x25, 0x0a, 0xc9, 0x74, 0x26, 0x33, 0xa9, 0x32, 0xa9, 0x48, 0xbb, 0x83, 0xdc, 0x3d, 0x79, 0x4d, 0x05, 0x9f, 0xed, 0xf4, 0xec, 0x86, 0x18, 0xc7, 0x43, 0x3c, 0x5d, 0x8f, 0xe5, 0xe6, 0x2c, 0xf0, 0x7b, 0x57, 0x68, 0xc4, 0xd9, 0xb2, 0x61, 0xc7, 0x15, 0x36, 0x80, 0x4f, 0xe2, 0xe7, 0xca, 0x70, 0x98, 0x87, 0x65, 0x21, 0xd5, 0x76, 0x77, 0x36, 0x14, 0x24, 0xe4, 0x7f, 0x1b, 0x95, 0x92, 0x37, 0xf9, 0x07, 0x10, 0x42, 0x1f, 0x5b, 0xc4, 0xf1, 0x09, 0xf7, 0xd4, 0x89, 0xc7, 0x55, 0xe9, 0x4e, 0xef, 0xdf, 0xb3, 0xc8, 0x5b, 0x90, 0xec, 0x01, 0x31, 0x81, 0xa2, 0x3b, 0xb9, 0x53, 0x5f, 0xee, 0xa4, 0x94, 0x1d, 0x0a, 0x06, 0xa5, 0x40, 0xbd, 0x6b, 0x58, 0x8e, 0x55, 0xb7, 0xf3, 0x57, 0x57, 0x14, 0x9c, 0xa3, 0xe6, 0x40, 0x96, 0x5e, 0x1a, 0x0f, 0xf7, 0xf3, 0xc8, 0x25, 0x92, 0x59, 0x95, 0x7f, 0xf5, 0xda, 0xb9, 0xfb, 0x87, 0x32, 0xea, 0xe7, 0x19, 0xb6, 0x24, 0xa4, 0x49, 0x28, 0x78, 0x17, 0x9b, 0x5a, 0x83, 0xab, 0xe5, 0x1c, 0xaf, 0x02, 0x08, 0x3d, 0x73, 0x7c, 0xeb, 0x4f, 0xcf, 0x04, 0x2f, 0x2e, 0x60, 0xba, 0x02, 0x97, 0xac, 0x72, 0xb8, 0x7f, 0xe3, 0xe1, 0x4b, 0xa5, 0xfb, 0xc5, 0x4b, 0x48, 0x09, 0x10, 0x73, 0x89, 0x68, 0x23, 0xbf, 0xa2, 0x89, 0xce, 0x8e, 0x16, 0x87, 0x3b, 0x48, 0x81, 0x2c, 0x32, 0xbf, 0xea, 0x5f, 0xf6, 0xbb, 0x22, 0x1d, 0x1e, 0xa5, 0x46, 0x3d, 0x32, 0x5b, 0xbe, 0x31, 0x1e, 0x7f, 0xd1, 0xe7, 0x83, 0xde, 0x65, 0x0b, 0x79, 0x52, 0xea, 0xe4, 0x61, 0xd6, 0x3b, 0xc7, 0x47, 0x05, 0x22, 0xaf, 0x5b, 0x77, 0x89, 0xf8, 0xfc, 0x2e, 0xb1, 0x92, 0xd2, 0xcf, 0x77, 0x6c, 0x5c, 0x24, 0xb4, 0x4e, 0x29, 0xcd, 0xb0, 0xcc, 0xcb, 0x1d, 0x90, 0x36, 0x14, 0x38, 0xe4, 0x95, 0x0f, 0xf3, 0x4d, 0xbc, 0xb3, 0xcb, 0x0e, 0x81, 0xcc, 0x45, 0xf8, 0xd0, 0xff, 0x57, 0x09, 0x49, 0xf7, 0x80, 0x84, 0xe1, 0x06, 0x0f, 0xf5, 0x59, 0x4a, 0xd5, 0x16, 0xf5, 0x0f, 0x1c, 0xb0, 0xa7, 0x65, 0xe1, 0xc0, 0xe0, 0x38, 0xd5, 0x94, 0x3b, 0x93, 0x6e, 0x4a, 0x8b, 0x49, 0x33, 0x54, 0xe7, 0x9a, 0xbc, 0x91, 0x7b, 0xb9, 0x27, 0x12, 0x66, 0xee, 0xba, 0x77, 0xa9, 0x3a, 0x65, 0x7f, 0x9a, 0xd8, 0x7b, 0x29, 0x1a, 0xc7, 0xea, 0x38, 0x6f, 0x5d, 0x4f, 0xcb, 0xc5, 0x82, 0xe7, 0x2d, 0x5c, 0x23, 0xd9, 0x2b, 0xa9, 0x44, 0xb0, 0x06, 0x4c, 0x20, 0xe3, 0xe2, 0xdc, 0xf5, 0x04, 0xbc, 0xc7, 0xc6, 0x96, 0x6c, 0x63, 0xf2, 0x08, 0x08, 0x43, 0x60, 0x0b, 0xa3, 0x13, 0xec, 0x27, 0xcb, 0xa9, 0x5e, 0x7e, 0xf3, 0x18, 0x16, 0x8c, 0x90, 0x67, 0xdc, 0xe8, 0x6c, 0x1e, 0xf0, 0xd5, 0xd9, 0xeb, 0x7a, 0x61, 0x58, 0x48, 0x9d, 0xf3, 0x2e, 0xd5, 0x8b, 0x69, 0x31, 0x03, 0x08, 0x18, 0xf0, 0x07, 0x05, 0xa0, 0xdc, 0x55, 0xd3, 0xdb, 0xf8, 0x00, 0x6a, 0x85, 0x46, 0x64, 0x1b, 0x18, 0x65, 0xd9, 0x19, 0xbc, 0x24, 0x22, 0x02, 0xcb, 0x3a, 0xe3, 0x00, 0xbf, 0x86, 0x53, 0xe3, 0xb3, 0x78, 0x94, 0xc3, 0xdc, 0x0e, 0x47, 0x7b, 0x9d, 0x7c, 0x41, 0xba, 0xf8, 0xd3, 0x88, 0x7c, 0x2e, 0xb5, 0x9b, 0x1e, 0x4d, 0x50, 0xbb, 0xb6, 0xf1, 0x79, 0x2a, 0x1c, 0x93, 0x67, 0xc6, 0x5c, 0xdb, 0x45, 0x0c, 0x2d, 0xfa, 0x21, 0x45, 0xe6, 0x11, 0xa9, 0x7a, 0xd8, 0x1c, 0xff, 0x1f, 0xd8, 0x3c, 0x6c, 0xf7, 0x23, 0x09, 0x47, 0xea, 0xff, 0x4c, 0x21, 0xdc, 0x1b, 0xaf, 0xb7, 0x1e, 0xc4, 0x1e, 0x5b, 0xc7, 0x2b, 0x37, 0x45, 0xec, 0x3e, 0x38, 0xbf, 0x59, 0x30, 0xc1, 0x26, 0xd0, 0x60, 0xf0, 0xc5, 0x0a, 0x89, 0x5f, 0x00, 0x9a, 0xa1, 0x8e, 0x87, 0xf2, 0x17, 0x4f, 0x58, 0xab, 0x53, 0x79, 0xa7, 0x21, 0xfd, 0x83, 0xaa, 0xd5, 0x51, 0x7f, 0xd9, 0x9d, 0xff, 0x14, 0x6e, 0xde, 0xea, 0x61, 0x52, 0x12, 0x35, 0xe2, 0xf1, 0xa1, 0x6e, 0xe5, 0x83, 0x03, 0xe0, 0x91, 0xbe, 0x8d, 0x57, 0x90, 0x94, 0xc1, 0xd8, 0xa2, 0x0b, 0xc7, 0x4a, 0x55, 0x0d, 0x77, 0xc0, 0x0d, 0x08, 0x75, 0x71, 0x51, 0x7a, 0x63, 0xcd, 0x41, 0x26, 0x93, 0x3a, 0x4f, 0x09, 0xa0, 0x70, 0xbf, 0x8e, 0xa4, 0xff, 0xb8, 0x46, 0xa9, 0x78, 0x0e, 0x97, 0x34, 0x04, 0x3b, 0xac, 0x4c, 0x0f, 0xf4, 0x7b, 0x1a, 0xfc, 0xcf, 0x52, 0x93, 0xac, 0x14, 0xbc, 0x73, 0xeb, 0xf6, 0x71, 0x29, 0x65, 0x7e, 0x4b, 0x8a, 0x8b, 0x33, 0xdd, 0xac, 0x7b, 0x0f, 0x4d, 0x71, 0x9d, 0x2d, 0xc6, 0x5d, 0xf6, 0xea, 0x0a, 0x3f, 0x24, 0xcf, 0x44, 0xc8, 0x33, 0x8e, 0xd6, 0x01, 0xa3, 0x93, 0x9c, 0xa3, 0x58, 0xfc, 0x4b, 0xe1, 0x3e, 0x8e, 0xde, 0x02, 0x75, 0x39, 0x71, 0x2c, 0xa2, 0x3e, 0x3f, 0xfb, 0xa7, 0x06, 0xe8, 0xfd, 0xd6, 0x2a, 0x07, 0x4e, 0xe0, 0xad, 0x74, 0x20, 0xf7, 0x80, 0x60, 0xcc, 0x96, 0xfb, 0x2a, 0xbf, 0x30, 0xe9, 0xea, 0xa2, 0x41, 0xc0, 0xf8, 0x7e, 0xbb, 0xe3, 0xec, 0x73, 0x51, 0x75, 0x96, 0xf7, 0xc3, 0xc5, 0xa8, 0x0c, };
19319 static const u8 ed25519_840_test_vectors_expected_sig[] = {
19320 	0x13, 0xcc, 0x15, 0x8f, 0xd0, 0x61, 0x79, 0x2f, 0xce, 0xd1, 0x56, 0x87, 0x95, 0x98, 0x25, 0x1d, 0xd0, 0x1d, 0x57, 0x5b, 0x40, 0x0f, 0xe3, 0xe3, 0x9a, 0x70, 0x08, 0x63, 0xaa, 0xe8, 0xdb, 0x1f, 0x91, 0x97, 0xfa, 0x50, 0x1c, 0x0c, 0xf9, 0x93, 0xe4, 0x4d, 0x6a, 0xc5, 0x51, 0x80, 0xb8, 0x69, 0x83, 0x8e, 0x8a, 0xe2, 0x4b, 0x21, 0x4f, 0xa3, 0x5e, 0x24, 0x4b, 0x7a, 0x6c, 0xff, 0x6d, 0x0d, };
19321 static const ec_test_case ed25519_840_test_case = {
19322 	.name = "EDDSA25519-SHA512/wei25519 840",
19323 	.ec_str_p = &wei25519_str_params,
19324 	.priv_key = ed25519_840_test_vectors_priv_key,
19325 	.priv_key_len = sizeof(ed25519_840_test_vectors_priv_key),
19326 	.nn_random = NULL,
19327 	.hash_type = SHA512,
19328 	.msg = (const char *)ed25519_840_test_vectors_message,
19329 	.msglen = sizeof(ed25519_840_test_vectors_message),
19330 	.sig_type = EDDSA25519,
19331 	.exp_sig = ed25519_840_test_vectors_expected_sig,
19332 	.exp_siglen = sizeof(ed25519_840_test_vectors_expected_sig),
19333 	.adata = NULL,
19334 	.adata_len = 0
19335 };
19336 
19337 /************************************************/
19338 static const u8 ed25519_841_test_vectors_priv_key[] = {
19339 	0xf6, 0xae, 0x51, 0x6a, 0x51, 0x29, 0x6f, 0xc5, 0x23, 0xce, 0xa5, 0xf0, 0x08, 0xcf, 0xbd, 0x09, 0xe7, 0x3f, 0x78, 0xb6, 0xfd, 0xd3, 0xb6, 0x94, 0x26, 0x12, 0x80, 0x41, 0xa5, 0x60, 0x4c, 0xf9, };
19340 static const u8 ed25519_841_test_vectors_message[] = {
19341 	0x83, 0x42, 0xf2, 0x5a, 0xc4, 0xb1, 0x7e, 0xba, 0xd6, 0xf7, 0x9b, 0x9a, 0x03, 0x31, 0x75, 0xc7, 0xf2, 0x8a, 0xf0, 0x9e, 0x65, 0x8e, 0x8c, 0xb9, 0x8c, 0x29, 0x4f, 0x15, 0xc3, 0xc8, 0x34, 0x26, 0x29, 0xcb, 0x2a, 0x32, 0x47, 0xdf, 0xc8, 0x75, 0xb8, 0x2f, 0x5b, 0x38, 0x0c, 0x5d, 0x11, 0x42, 0x6a, 0x2e, 0xeb, 0x62, 0x45, 0x0b, 0xd8, 0x85, 0x65, 0x01, 0x07, 0xc6, 0x83, 0x62, 0xa3, 0xb7, 0x2c, 0xe8, 0x23, 0xf2, 0xd1, 0x59, 0x42, 0xb7, 0xdd, 0xa3, 0x01, 0xd2, 0xfb, 0x63, 0x8f, 0x30, 0x2a, 0xa9, 0x57, 0x0b, 0x47, 0x91, 0x1d, 0xad, 0xd3, 0xbd, 0xdb, 0xfe, 0xd5, 0x54, 0xc1, 0xc8, 0x0b, 0xd7, 0x18, 0x07, 0x8b, 0x8b, 0xd2, 0xc9, 0xc3, 0x14, 0xa5, 0x16, 0x6f, 0x26, 0x5e, 0x82, 0x66, 0xee, 0x2d, 0xb3, 0x57, 0x56, 0x1a, 0x55, 0x85, 0xc4, 0x14, 0xa7, 0x84, 0x0b, 0xfa, 0xe6, 0x09, 0xd7, 0xcd, 0xdd, 0xe1, 0xfa, 0xde, 0x85, 0x56, 0x0f, 0x23, 0xd6, 0x38, 0xef, 0x3d, 0x52, 0xe5, 0x1f, 0x5c, 0xf3, 0x13, 0xa0, 0x72, 0xc5, 0xea, 0x0f, 0x81, 0x7f, 0x72, 0x81, 0xe2, 0xcb, 0xa5, 0xc5, 0xc8, 0xd2, 0x6c, 0x92, 0x85, 0x92, 0xb8, 0x1f, 0x0f, 0xf8, 0xcd, 0x18, 0xdb, 0x5a, 0x2c, 0x41, 0xd8, 0x80, 0xd7, 0x44, 0x73, 0x86, 0x3c, 0x7b, 0xbd, 0x00, 0x56, 0xfa, 0x4d, 0x4a, 0xfa, 0xbd, 0x17, 0xa3, 0xb8, 0x9d, 0x97, 0xd3, 0xfe, 0x5d, 0xc0, 0x6b, 0x0f, 0x61, 0x2a, 0x1d, 0x66, 0x42, 0x39, 0x23, 0xba, 0x8d, 0xfb, 0xb8, 0xec, 0x82, 0x46, 0x62, 0x4d, 0x83, 0x78, 0x4e, 0xba, 0x4f, 0x57, 0x36, 0xba, 0x38, 0x5e, 0x44, 0x22, 0x96, 0xc8, 0xcb, 0x0f, 0x1b, 0x68, 0xe0, 0x33, 0x42, 0xb2, 0xc6, 0xc1, 0x03, 0x34, 0x6f, 0x6d, 0xd7, 0x40, 0xe2, 0x6c, 0x3d, 0x13, 0xca, 0xef, 0x80, 0x1d, 0x1b, 0x26, 0x21, 0xd8, 0x9f, 0x06, 0x93, 0x91, 0xa0, 0x78, 0xd4, 0x3a, 0xe6, 0xff, 0x12, 0xee, 0xca, 0x66, 0xbc, 0x32, 0x63, 0x7b, 0x45, 0xf0, 0xac, 0x62, 0x7c, 0x2d, 0x7b, 0xbf, 0x8a, 0x49, 0xd9, 0x46, 0x81, 0x75, 0xe2, 0x68, 0x85, 0xe0, 0x28, 0x21, 0xd3, 0xa3, 0xba, 0xa2, 0xc3, 0xe3, 0xa6, 0xbb, 0x96, 0xb5, 0x75, 0x26, 0xe2, 0x24, 0xcf, 0x3d, 0x85, 0x9f, 0x66, 0x95, 0x73, 0xcb, 0xd5, 0xc8, 0x73, 0x93, 0x74, 0x61, 0x56, 0xf3, 0xd1, 0xc7, 0xa8, 0x03, 0x08, 0xdc, 0x1f, 0x24, 0x05, 0xbf, 0x0d, 0x40, 0xbe, 0x1c, 0xa7, 0x3b, 0x76, 0x7d, 0xed, 0xf4, 0x03, 0x13, 0x37, 0xc0, 0x81, 0xbf, 0xa3, 0xae, 0x6e, 0x54, 0xf6, 0x02, 0x3f, 0x42, 0xf0, 0xcb, 0xd8, 0x77, 0x62, 0xdb, 0x55, 0x91, 0x3c, 0x70, 0x72, 0x06, 0x03, 0x40, 0x10, 0xdf, 0x2a, 0xa8, 0x75, 0x3d, 0x03, 0x0f, 0x03, 0xc2, 0x67, 0xe7, 0x1a, 0x9d, 0xd2, 0xc6, 0xc1, 0x9d, 0xe3, 0xe1, 0x85, 0x1a, 0xbf, 0xac, 0xbb, 0xd5, 0xdd, 0x5b, 0xf8, 0x96, 0xfa, 0xb8, 0xe4, 0x15, 0x31, 0x7b, 0x49, 0xf1, 0xe4, 0x09, 0x6e, 0x3d, 0xa9, 0x9a, 0x5b, 0x5d, 0x0a, 0x3c, 0x42, 0xda, 0xf9, 0xde, 0x94, 0x84, 0x7c, 0x1e, 0x53, 0xc8, 0x81, 0x8a, 0x5b, 0x84, 0x33, 0x23, 0xf5, 0x01, 0xe3, 0xa7, 0xfa, 0x68, 0xdf, 0x89, 0xa5, 0xf4, 0x1f, 0x2c, 0x62, 0xc3, 0x8d, 0x17, 0xf2, 0x50, 0xb0, 0x2a, 0x67, 0xfa, 0xe4, 0x7d, 0xaf, 0x06, 0x3f, 0x55, 0x89, 0x42, 0x37, 0x7e, 0xf8, 0xa8, 0x90, 0x52, 0xf1, 0xa2, 0x15, 0xd7, 0x68, 0xf7, 0x91, 0x3a, 0x7e, 0xc1, 0x4e, 0x98, 0xb8, 0x1e, 0x4b, 0x2c, 0xcf, 0x26, 0xba, 0xca, 0xd6, 0xf3, 0x96, 0x64, 0xaf, 0xc0, 0xe9, 0x1a, 0x3c, 0xad, 0x69, 0x1d, 0xb2, 0xbf, 0x56, 0xa7, 0xab, 0x66, 0x77, 0xb4, 0x95, 0x96, 0xdb, 0x88, 0x7c, 0x97, 0xde, 0xf4, 0x35, 0x08, 0xa7, 0xa2, 0xec, 0x2a, 0xb7, 0x55, 0xec, 0x36, 0x8e, 0x2e, 0x53, 0xd1, 0xe1, 0x6b, 0x60, 0xff, 0xf0, 0x9c, 0x3b, 0x52, 0x26, 0x3f, 0x0f, 0x7c, 0x1e, 0xa9, 0xcc, 0x35, 0x37, 0x31, 0x97, 0xe9, 0x5c, 0x11, 0xe6, 0xd2, 0x2f, 0xa9, 0xd8, 0x29, 0x9c, 0x42, 0x37, 0x36, 0xf5, 0x81, 0x4f, 0x1e, 0x79, 0x8d, 0x22, 0x75, 0x18, 0x60, 0x0d, 0xf6, 0xa7, 0x90, 0x35, 0x8d, 0xea, 0xe3, 0x8d, 0x56, 0x39, 0xe1, 0x98, 0x3f, 0xe0, 0x18, 0x43, 0x6e, 0xa5, 0x8b, 0xa8, 0x46, 0x75, 0x48, 0xc9, 0x29, 0xef, 0xbb, 0x16, 0xdf, 0xea, 0x41, 0x02, 0x25, 0x3a, 0x35, 0x0f, 0xb8, 0x4d, 0x98, 0x31, 0xc4, 0xc2, 0xcb, 0xcb, 0x76, 0xe1, 0x8d, 0x7f, 0x3e, 0x95, 0x36, 0x41, 0xad, 0xa4, 0x14, 0x21, 0x39, 0x30, 0x91, 0xe6, 0x3d, 0xfe, 0x66, 0xde, 0x24, 0xc9, 0x92, 0x32, 0xc7, 0xd6, 0xa2, 0x83, 0x7a, 0x48, 0x98, 0x3c, 0xf5, 0xb1, 0x63, 0x31, 0xce, 0x00, 0x05, 0x0d, 0x1c, 0x71, 0x39, 0x58, 0xff, 0xce, 0x5f, 0x2e, 0x93, 0x48, 0xc5, 0x2f, 0x53, 0x12, 0x05, 0x79, 0xa7, 0xc9, 0xa1, 0x60, 0x08, 0xd1, 0x34, 0x83, 0x8e, 0x59, 0x61, 0x29, 0xc7, 0x02, 0xfc, 0xd2, 0x11, 0x48, 0xbd, 0xf9, 0x17, 0x4d, 0x48, 0xe2, 0xda, 0x0a, 0x8a, 0x66, 0x35, 0x9e, 0xde, 0xe0, 0x1c, 0x50, 0x09, 0xef, 0x67, 0x42, 0xfe, 0xc4, 0x1c, 0x1a, 0xce, 0xcd, 0x03, 0xef, 0xe1, 0xcc, 0xc9, 0xb1, 0x30, 0xd6, 0xe5, 0xac, 0x92, 0x57, 0x6a, 0x85, 0xcc, 0xb7, 0xcf, 0xc7, 0xd0, 0xe4, 0x23, 0x31, 0x06, 0x17, 0x29, 0x31, 0xa0, 0x86, 0x99, 0x79, 0x0b, 0xc4, 0x1a, 0xcf, 0xbb, 0x73, 0x1a, 0xdb, 0xb2, 0x6d, 0x56, 0xb3, 0x9a, 0xaa, 0x5b, 0x33, 0x3b, 0xc1, 0xa1, 0x0e, 0x2c, 0x70, 0x64, 0xca, 0x86, 0x11, 0x9d, 0x8c, 0x71, 0x71, 0x48, 0xf9, 0x24, 0x41, 0xaf, 0x24, 0xcd, 0x2a, 0xa8, 0xf5, 0x7c, 0x86, 0xba, 0x38, 0xa5, 0x9a, 0x10, 0x0b, 0x92, 0x76, 0xdf, 0x38, 0x27, 0xec, 0x7f, 0xb4, 0xd3, 0xfa, 0xf5, 0x8b, 0xe3, 0x1c, 0x6e, 0xca, 0xfd, 0x69, 0xcf, 0x1c, 0x64, 0x10, 0xa4, 0x9c, 0xd7, 0x08, 0x1f, 0xf6, 0xe9, 0xfc, 0x39, 0x7c, 0x2d, 0x20, };
19342 static const u8 ed25519_841_test_vectors_expected_sig[] = {
19343 	0x0f, 0xe4, 0xdd, 0x7e, 0x1f, 0x60, 0x8e, 0xe8, 0x2b, 0x7f, 0xe8, 0x63, 0xd1, 0xb0, 0x3a, 0x81, 0x84, 0x3c, 0xe2, 0x0c, 0x76, 0x2c, 0xd8, 0xbb, 0x24, 0xef, 0xd4, 0x6b, 0xa0, 0x25, 0xff, 0xf3, 0x33, 0x1d, 0x87, 0x57, 0x52, 0xca, 0x72, 0x20, 0xc5, 0x3d, 0xd3, 0xc7, 0x1f, 0x2b, 0xc1, 0xe2, 0xc6, 0x4a, 0x2f, 0x9c, 0x58, 0x86, 0x5a, 0x2a, 0x24, 0x48, 0x09, 0xf4, 0x13, 0x4e, 0x53, 0x07, };
19344 static const ec_test_case ed25519_841_test_case = {
19345 	.name = "EDDSA25519-SHA512/wei25519 841",
19346 	.ec_str_p = &wei25519_str_params,
19347 	.priv_key = ed25519_841_test_vectors_priv_key,
19348 	.priv_key_len = sizeof(ed25519_841_test_vectors_priv_key),
19349 	.nn_random = NULL,
19350 	.hash_type = SHA512,
19351 	.msg = (const char *)ed25519_841_test_vectors_message,
19352 	.msglen = sizeof(ed25519_841_test_vectors_message),
19353 	.sig_type = EDDSA25519,
19354 	.exp_sig = ed25519_841_test_vectors_expected_sig,
19355 	.exp_siglen = sizeof(ed25519_841_test_vectors_expected_sig),
19356 	.adata = NULL,
19357 	.adata_len = 0
19358 };
19359 
19360 /************************************************/
19361 static const u8 ed25519_842_test_vectors_priv_key[] = {
19362 	0x83, 0xf7, 0x89, 0x90, 0x0f, 0x04, 0x0d, 0xc6, 0x2f, 0x4d, 0x18, 0x78, 0x4c, 0xb6, 0x4b, 0x63, 0xc8, 0x8e, 0x8d, 0x18, 0x00, 0x16, 0x96, 0xbb, 0xeb, 0x47, 0x07, 0xc4, 0x69, 0xd1, 0x1a, 0x5b, };
19363 static const u8 ed25519_842_test_vectors_message[] = {
19364 	0x6c, 0x11, 0x2a, 0x20, 0xd3, 0x06, 0x57, 0xab, 0x5f, 0x8c, 0x5c, 0x04, 0x47, 0x8d, 0x6c, 0x42, 0xd1, 0xc6, 0xbd, 0xef, 0x38, 0xcd, 0x4f, 0xe0, 0x06, 0xac, 0x2a, 0x57, 0xe2, 0x90, 0xff, 0x29, 0x28, 0x78, 0x96, 0xee, 0xa8, 0xc3, 0x0a, 0x01, 0x39, 0xc1, 0x8f, 0xc8, 0xc9, 0x75, 0x64, 0x56, 0x3e, 0x86, 0xc8, 0xd3, 0x40, 0x56, 0xa6, 0x71, 0x9b, 0xfe, 0x47, 0x9d, 0x9e, 0x87, 0xe8, 0x1b, 0x19, 0x45, 0x23, 0x31, 0xbf, 0xa1, 0x54, 0x80, 0x68, 0x82, 0xe5, 0x03, 0x9a, 0x20, 0xc9, 0xe9, 0x54, 0xb1, 0xfc, 0x7c, 0x01, 0x5d, 0xcf, 0x58, 0x15, 0xbd, 0x7c, 0xf7, 0xb6, 0x35, 0x7d, 0xf9, 0x28, 0x0b, 0x9b, 0xd4, 0x3f, 0x89, 0xff, 0xc9, 0x19, 0x45, 0x32, 0x3b, 0x5a, 0xcb, 0x2a, 0xe0, 0x02, 0x54, 0xd4, 0x16, 0x28, 0x68, 0xd1, 0xc8, 0x3e, 0xc6, 0xe0, 0xfc, 0xbe, 0x7a, 0x8a, 0xb9, 0x25, 0x41, 0x92, 0x14, 0x9c, 0x6b, 0xc9, 0xe5, 0xfe, 0x35, 0x06, 0x94, 0x16, 0x5d, 0x66, 0x38, 0x33, 0x1e, 0xb2, 0x4e, 0x3b, 0x13, 0x90, 0xc6, 0x98, 0xc4, 0x83, 0x83, 0x78, 0xc0, 0x1b, 0x2c, 0x61, 0xa3, 0xeb, 0xe2, 0xc0, 0x60, 0xb9, 0x8b, 0xa6, 0xee, 0x02, 0xb5, 0x19, 0xb4, 0xea, 0xc1, 0xe0, 0xbc, 0xc0, 0x9b, 0x23, 0x24, 0xcc, 0xf5, 0xb1, 0xa7, 0xfe, 0x8f, 0xd0, 0xb1, 0x54, 0x5a, 0x94, 0x27, 0x83, 0x2a, 0xbb, 0x25, 0x74, 0x4e, 0xeb, 0x36, 0x32, 0x6b, 0xe6, 0x4e, 0xfe, 0xd3, 0xa7, 0xb0, 0x7d, 0x63, 0x0a, 0x21, 0xc3, 0x08, 0x1b, 0x55, 0x26, 0x1c, 0x35, 0x32, 0x87, 0xc6, 0x6c, 0x57, 0x66, 0x3a, 0x99, 0xdb, 0x46, 0x6a, 0x5d, 0xee, 0x22, 0x74, 0x6b, 0x81, 0xc7, 0x50, 0xef, 0x85, 0xbe, 0x51, 0x14, 0x3e, 0x22, 0x1e, 0xcd, 0xf1, 0x14, 0xfe, 0xf1, 0xb3, 0x08, 0x2f, 0xf5, 0x4f, 0xd0, 0x44, 0xbc, 0x88, 0x4b, 0xfb, 0x3c, 0xc5, 0xc5, 0x33, 0x59, 0x97, 0x00, 0x98, 0x67, 0xce, 0x94, 0x91, 0xa8, 0x0f, 0xe6, 0x96, 0x82, 0x5f, 0x99, 0x42, 0x6d, 0xef, 0xab, 0x6a, 0x49, 0xba, 0xdc, 0xde, 0x40, 0x3f, 0x58, 0xe8, 0x31, 0x79, 0x66, 0x21, 0x07, 0x47, 0xb5, 0x67, 0x75, 0x4d, 0xe5, 0x30, 0x76, 0xb3, 0xec, 0xbf, 0x65, 0x34, 0x6c, 0xb8, 0x39, 0x05, 0x83, 0x2e, 0x16, 0xd0, 0x1b, 0x50, 0xb9, 0x3d, 0x37, 0xeb, 0x9b, 0xfe, 0x20, 0x17, 0x2a, 0x31, 0x63, 0x0d, 0x25, 0xf3, 0x21, 0x7d, 0x87, 0xd9, 0x34, 0x65, 0xfd, 0x8a, 0xc5, 0x54, 0xcb, 0xbb, 0x39, 0xd9, 0x82, 0xea, 0xd7, 0x21, 0x93, 0x91, 0x23, 0x4c, 0x88, 0x9f, 0x0b, 0x92, 0xa2, 0xe0, 0x41, 0x3d, 0x86, 0x6c, 0xac, 0x08, 0x7d, 0x62, 0x8c, 0xe3, 0x1c, 0x61, 0xc6, 0x32, 0x3e, 0xcb, 0x8e, 0x68, 0x95, 0x55, 0xaf, 0x10, 0xde, 0x2b, 0x65, 0x6e, 0x6a, 0xea, 0x2c, 0xde, 0x93, 0x2e, 0x24, 0x1f, 0x6d, 0x1f, 0x8a, 0x9e, 0x33, 0x16, 0xcf, 0x13, 0xf1, 0x35, 0xac, 0xef, 0x83, 0xa0, 0xc0, 0xcf, 0x22, 0xf9, 0x5c, 0xa8, 0x18, 0xe6, 0x1f, 0x92, 0x76, 0x87, 0x74, 0xc6, 0x30, 0xe0, 0x92, 0x5b, 0xe9, 0x9d, 0xbd, 0x32, 0xb4, 0x99, 0xc0, 0xfe, 0x7d, 0x84, 0xa4, 0x2e, 0x39, 0x32, 0x87, 0xf6, 0xf5, 0xce, 0x3d, 0x0b, 0x27, 0x1f, 0x17, 0x00, 0x45, 0xa6, 0xd4, 0x8e, 0xab, 0x31, 0x6f, 0xe1, 0x7b, 0x18, 0x58, 0xb1, 0xff, 0xee, 0xe9, 0x08, 0x88, 0xf3, 0xa3, 0x7a, 0x24, 0x80, 0xdf, 0xd0, 0x4a, 0x4a, 0x86, 0x29, 0xf8, 0x68, 0xb5, 0xc0, 0xa8, 0x0e, 0xe1, 0xf0, 0x37, 0x19, 0xf3, 0xa4, 0x7d, 0x40, 0x95, 0xbe, 0xf1, 0x0e, 0x02, 0x34, 0xfc, 0x30, 0x0e, 0x2a, 0xf4, 0x82, 0x28, 0x5d, 0x78, 0x93, 0x79, 0x68, 0x31, 0x9d, 0xa9, 0x4b, 0xeb, 0x6c, 0x40, 0xe0, 0x78, 0x57, 0x7c, 0x02, 0x4f, 0x3a, 0x5c, 0xda, 0x00, 0x84, 0xe2, 0xf8, 0x55, 0xa9, 0x39, 0x6a, 0xaa, 0x9e, 0xe9, 0xbf, 0xaf, 0x2c, 0xc7, 0x71, 0xfe, 0x68, 0xc4, 0x0b, 0x62, 0x9e, 0x8d, 0xcf, 0x11, 0x5e, 0xf0, 0x3e, 0x75, 0x7a, 0x2a, 0xc9, 0xee, 0xf0, 0x73, 0xf1, 0xbd, 0xf9, 0xc5, 0xa4, 0x41, 0x00, 0x31, 0x55, 0x8a, 0x6d, 0x38, 0x2b, 0x5f, 0x16, 0x02, 0x4b, 0x15, 0x1b, 0x1c, 0x01, 0xee, 0x78, 0x17, 0x41, 0x3a, 0x3c, 0x4d, 0xe9, 0xdd, 0x64, 0x78, 0x78, 0x5b, 0x81, 0x10, 0x1d, 0xf5, 0x52, 0x24, 0x30, 0x05, 0x87, 0x80, 0x20, 0x7e, 0x79, 0x0f, 0x61, 0x2d, 0x78, 0xe5, 0x70, 0x5c, 0xee, 0xd4, 0x6b, 0x0e, 0xc0, 0x75, 0xe7, 0xc1, 0xdc, 0x07, 0x3b, 0x17, 0xb2, 0xb4, 0x3d, 0x72, 0x53, 0x59, 0x27, 0xbf, 0xd2, 0x71, 0xe9, 0x2e, 0x3c, 0x93, 0x63, 0x8e, 0x40, 0xa9, 0x60, 0x1d, 0xc2, 0xc1, 0xab, 0x76, 0xd9, 0x1a, 0x41, 0x03, 0xdf, 0x65, 0x7d, 0x91, 0x1c, 0x82, 0x9e, 0xe8, 0xa5, 0xf7, 0x47, 0xf7, 0x64, 0x2f, 0x5a, 0x91, 0x5a, 0x5f, 0x40, 0xf6, 0x30, 0xb4, 0x30, 0x39, 0xc7, 0xd4, 0xbd, 0x2a, 0xd2, 0xb3, 0x21, 0x29, 0xd9, 0x4e, 0x5b, 0x2f, 0x03, 0xad, 0x4a, 0x3d, 0x45, 0x57, 0x7e, 0xb8, 0x1f, 0x36, 0x9c, 0x9e, 0x3e, 0x2a, 0x4f, 0x6a, 0x8e, 0x41, 0xac, 0xf8, 0x28, 0x3b, 0xe5, 0x84, 0x25, 0xea, 0x99, 0x3b, 0x8e, 0x98, 0xee, 0xa6, 0x33, 0x05, 0x56, 0x64, 0x86, 0x18, 0xda, 0xd9, 0x8f, 0xa2, 0x55, 0x62, 0x0d, 0x83, 0x6d, 0x3c, 0x7f, 0x29, 0xb9, 0x07, 0x89, 0x58, 0x49, 0x28, 0x61, 0x67, 0xc7, 0x18, 0x1e, 0x2c, 0xaf, 0x55, 0xc2, 0xc1, 0x84, 0xa9, 0xa9, 0x11, 0xf8, 0xe4, 0x1c, 0xb0, 0x42, 0xe2, 0xcd, 0x48, 0xb0, 0x54, 0x4e, 0xa7, 0x9f, 0xe2, 0xef, 0x38, 0x1e, 0xbc, 0x5b, 0x15, 0xe3, 0x9a, 0x9b, 0x5c, 0x6d, 0x99, 0x8f, 0xae, 0xaa, 0xa7, 0x77, 0x3c, 0xfe, 0xc0, 0x84, 0xc0, 0xbf, 0xae, 0xd1, 0xbc, 0xab, 0x96, 0x3a, 0x4e, 0xf3, 0xd9, 0x4d, 0xbb, 0x3d, 0xfe, 0x72, 0x4c, 0x04, 0x0c, 0xe4, 0xd1, 0xe2, 0xee, 0x7f, 0xc2, 0xda, 0x4b, 0x25, 0x12, 0x7c, 0xe3, 0xa5, 0xdf, 0x69, 0x3f, 0xcf, 0x5a, 0x6e, 0xd1, };
19365 static const u8 ed25519_842_test_vectors_expected_sig[] = {
19366 	0xea, 0x65, 0x82, 0xcc, 0x23, 0xe0, 0x46, 0x09, 0x17, 0xf7, 0x82, 0xd9, 0x64, 0xe3, 0xbb, 0x6d, 0xcd, 0xe0, 0xae, 0xea, 0xc4, 0x2c, 0xc1, 0x49, 0x19, 0xd3, 0x6c, 0xe7, 0x8a, 0xa0, 0xaf, 0xd9, 0x80, 0x72, 0xf5, 0x4c, 0x79, 0x5f, 0xbf, 0xd7, 0xa4, 0x1d, 0x99, 0xd7, 0x06, 0x06, 0xc2, 0x8a, 0x5d, 0xcf, 0x19, 0xbe, 0x38, 0xa0, 0xce, 0x2d, 0x09, 0xbb, 0x8f, 0x84, 0x4c, 0x31, 0xbf, 0x00, };
19367 static const ec_test_case ed25519_842_test_case = {
19368 	.name = "EDDSA25519-SHA512/wei25519 842",
19369 	.ec_str_p = &wei25519_str_params,
19370 	.priv_key = ed25519_842_test_vectors_priv_key,
19371 	.priv_key_len = sizeof(ed25519_842_test_vectors_priv_key),
19372 	.nn_random = NULL,
19373 	.hash_type = SHA512,
19374 	.msg = (const char *)ed25519_842_test_vectors_message,
19375 	.msglen = sizeof(ed25519_842_test_vectors_message),
19376 	.sig_type = EDDSA25519,
19377 	.exp_sig = ed25519_842_test_vectors_expected_sig,
19378 	.exp_siglen = sizeof(ed25519_842_test_vectors_expected_sig),
19379 	.adata = NULL,
19380 	.adata_len = 0
19381 };
19382 
19383 /************************************************/
19384 static const u8 ed25519_843_test_vectors_priv_key[] = {
19385 	0x43, 0xbf, 0xf3, 0xcd, 0xd5, 0x30, 0x7e, 0xd7, 0xd2, 0x5c, 0xf9, 0x6f, 0xdb, 0xba, 0x64, 0xab, 0x18, 0x11, 0xc8, 0xbb, 0x93, 0x4e, 0x21, 0x87, 0xea, 0x7f, 0xfc, 0x01, 0x8d, 0x85, 0xe0, 0xf2, };
19386 static const u8 ed25519_843_test_vectors_message[] = {
19387 	0x64, 0x6f, 0x8b, 0x34, 0x18, 0x2d, 0x5e, 0x60, 0x2b, 0x51, 0xca, 0x73, 0x29, 0x34, 0x7c, 0x0e, 0x19, 0x8c, 0xb7, 0x47, 0xe4, 0xda, 0x0a, 0x6b, 0x80, 0xf3, 0xf6, 0xf9, 0xf3, 0x36, 0xf6, 0x70, 0x8d, 0x85, 0xcb, 0x42, 0x9a, 0xb2, 0xd6, 0xbe, 0xd3, 0x5d, 0x50, 0x13, 0x12, 0x9c, 0xd1, 0x00, 0x14, 0x2c, 0xdd, 0xce, 0xe8, 0x63, 0x51, 0x79, 0x02, 0x1b, 0x3e, 0x24, 0x92, 0x2b, 0x81, 0xae, 0xf1, 0x3c, 0x13, 0x70, 0x28, 0x69, 0x39, 0xd6, 0x3d, 0x6b, 0x6a, 0x41, 0x95, 0xed, 0xa1, 0xd8, 0x12, 0xca, 0x51, 0x82, 0x04, 0x76, 0x8f, 0x87, 0x34, 0x8c, 0x68, 0x89, 0x55, 0x2c, 0x63, 0xd1, 0x37, 0x2c, 0xde, 0x6a, 0x5e, 0x9d, 0xaa, 0x7f, 0x84, 0x45, 0xec, 0x8d, 0x61, 0x30, 0xa3, 0xf5, 0xae, 0xf0, 0xed, 0xea, 0xce, 0x01, 0x0b, 0x6c, 0x7f, 0x0b, 0x9d, 0x24, 0x16, 0x2a, 0x8d, 0x04, 0x45, 0x4b, 0x81, 0xd4, 0x8e, 0xa9, 0x09, 0x7b, 0xd8, 0xdf, 0x09, 0x34, 0x59, 0x71, 0x9c, 0xcb, 0x54, 0xaa, 0x10, 0xf5, 0x1c, 0x24, 0x6a, 0xa9, 0x9c, 0x58, 0x0b, 0xea, 0xf9, 0xc9, 0xc5, 0xbc, 0x60, 0xfa, 0xf0, 0xae, 0x5c, 0xec, 0x7f, 0x51, 0x37, 0xf6, 0xc5, 0xc1, 0x44, 0xdf, 0x45, 0xd1, 0x2e, 0xe9, 0x95, 0xad, 0xcc, 0xf2, 0x5a, 0x9d, 0xb8, 0x1b, 0x85, 0x58, 0xbd, 0xfb, 0x65, 0x83, 0x01, 0x86, 0xe7, 0xb9, 0xd4, 0xee, 0xd9, 0xf6, 0xb4, 0xd7, 0x32, 0xb1, 0xb5, 0x82, 0x2d, 0x03, 0xeb, 0x01, 0x7c, 0x07, 0x24, 0xf4, 0x8f, 0x87, 0xba, 0xaa, 0xe1, 0x04, 0x5d, 0x6f, 0xdb, 0x12, 0x5c, 0x91, 0x34, 0x06, 0x4f, 0xaf, 0x18, 0xdb, 0xed, 0x58, 0xd8, 0xfb, 0xac, 0xea, 0xcd, 0x4f, 0x09, 0x7d, 0xf9, 0xb3, 0x42, 0xe5, 0xc4, 0xa5, 0xbc, 0x85, 0xb2, 0x95, 0x97, 0xd4, 0xb6, 0x40, 0xf1, 0x55, 0x1c, 0x5b, 0x62, 0x4a, 0xb2, 0x1b, 0x48, 0xe9, 0x4a, 0x90, 0x30, 0x04, 0x9b, 0xe1, 0xf0, 0x5a, 0xa8, 0x51, 0xd0, 0x82, 0x7e, 0xaf, 0x87, 0x00, 0xdf, 0xe1, 0x47, 0xfd, 0xcd, 0xee, 0xdb, 0xc9, 0x8c, 0x4f, 0x15, 0x77, 0x4f, 0x01, 0x20, 0xfb, 0x59, 0x70, 0xa2, 0xf8, 0xb2, 0x17, 0x94, 0x34, 0x0b, 0x62, 0x83, 0x79, 0xa8, 0x02, 0xb9, 0xf7, 0xc0, 0x68, 0xb0, 0xdf, 0x63, 0x19, 0x3e, 0x51, 0x0f, 0xc7, 0xb2, 0xaf, 0x97, 0xee, 0x38, 0xde, 0x47, 0x92, 0x97, 0x85, 0x53, 0x55, 0x28, 0xd3, 0x50, 0xd8, 0x86, 0x20, 0x61, 0x0c, 0xfd, 0xb5, 0x5d, 0x24, 0x9e, 0x38, 0xfb, 0x73, 0xc8, 0x28, 0x71, 0x13, 0x91, 0x9c, 0xe3, 0x32, 0x67, 0xd7, 0xdb, 0x92, 0x4e, 0x49, 0x19, 0xa4, 0x4e, 0x6e, 0x29, 0xa9, 0x0d, 0xbe, 0x3b, 0x7b, 0x0d, 0x39, 0x21, 0x16, 0x3f, 0xeb, 0x5a, 0xc1, 0x05, 0x62, 0x4e, 0xd8, 0x52, 0xbe, 0xce, 0x35, 0x38, 0xe9, 0x91, 0x93, 0x30, 0x0c, 0x89, 0x33, 0x45, 0x69, 0x93, 0x50, 0xa8, 0xf9, 0x9e, 0x8c, 0x6a, 0x41, 0x09, 0x5f, 0xc9, 0xfc, 0x08, 0xda, 0x07, 0xf7, 0x57, 0x11, 0xf7, 0xdf, 0x03, 0x44, 0x06, 0xde, 0x14, 0xed, 0xd8, 0xe2, 0x2a, 0x63, 0x3a, 0x86, 0xe4, 0xa5, 0xa5, 0xc9, 0x75, 0xac, 0x5d, 0x34, 0x89, 0x1c, 0xcc, 0xfc, 0x85, 0x43, 0x77, 0x1f, 0xfa, 0x08, 0x0e, 0x0b, 0x45, 0xd6, 0x5a, 0xb8, 0x30, 0xa3, 0x61, 0xac, 0x4c, 0x42, 0x62, 0x94, 0xd3, 0x68, 0x5e, 0xa8, 0xc2, 0x60, 0x39, 0xc7, 0x1c, 0x90, 0xfc, 0x3f, 0xb5, 0x12, 0xbe, 0x9f, 0xc9, 0x48, 0x07, 0xd7, 0x6d, 0xbd, 0xaf, 0x8f, 0xfa, 0xa4, 0xfb, 0xf9, 0x84, 0x9d, 0x68, 0xe8, 0xa5, 0x7d, 0x30, 0xc4, 0xa0, 0xb9, 0x73, 0x5c, 0x23, 0xf0, 0x8e, 0xf2, 0xe2, 0x84, 0x45, 0x84, 0x67, 0xe1, 0x5d, 0x66, 0x53, 0x62, 0xcb, 0x64, 0x6f, 0xde, 0x69, 0x37, 0xec, 0xba, 0x53, 0x09, 0x12, 0x64, 0x63, 0x83, 0x57, 0xa7, 0x22, 0x42, 0x5b, 0xc6, 0x2d, 0x1e, 0x30, 0xec, 0x5f, 0x0d, 0xd8, 0xfe, 0xa2, 0x6b, 0x2e, 0xa4, 0xa8, 0x49, 0x00, 0x35, 0xde, 0x43, 0xf2, 0x74, 0x84, 0x6f, 0xb0, 0xcf, 0x02, 0x09, 0xec, 0x74, 0x37, 0xf3, 0xc3, 0xd0, 0xa5, 0x60, 0x37, 0x3d, 0x03, 0x4e, 0x5f, 0xd7, 0x9e, 0x25, 0xb6, 0x42, 0x4d, 0x9b, 0x2c, 0x17, 0x61, 0x63, 0x2b, 0x35, 0xa1, 0x21, 0x32, 0x52, 0x18, 0x27, 0x34, 0x5c, 0x55, 0xe4, 0xe7, 0x14, 0x2d, 0xd6, 0xfe, 0x94, 0xd6, 0x20, 0xfe, 0x51, 0x5c, 0x15, 0x3e, 0x83, 0x95, 0xb5, 0xd1, 0x30, 0xc7, 0x44, 0x13, 0x9b, 0x6a, 0x92, 0xef, 0xd3, 0x7f, 0x22, 0xba, 0x13, 0xfe, 0x4c, 0x09, 0x53, 0x73, 0x55, 0x0e, 0x2e, 0x4f, 0xcb, 0xa0, 0x32, 0x5b, 0x3e, 0xa3, 0xb9, 0xfe, 0x25, 0xcc, 0x7d, 0xd9, 0x2c, 0xbf, 0x42, 0xe1, 0x5f, 0x45, 0x54, 0xb7, 0x7a, 0xc2, 0x7a, 0x4a, 0x34, 0x63, 0x82, 0xff, 0x61, 0x00, 0x45, 0x15, 0x08, 0xd6, 0x02, 0xcf, 0x64, 0x3f, 0x60, 0xb6, 0xca, 0x42, 0x86, 0x35, 0x6f, 0x21, 0xa3, 0x11, 0x0d, 0x4e, 0x2c, 0x8a, 0x89, 0x62, 0xa7, 0x80, 0xfc, 0xff, 0x43, 0x9b, 0x3a, 0xa8, 0x04, 0x99, 0xdf, 0x27, 0x0f, 0xc3, 0xe6, 0xca, 0xd8, 0x89, 0x33, 0x48, 0x87, 0x2f, 0x0f, 0x70, 0x2f, 0x93, 0x90, 0x00, 0x0c, 0x7f, 0x6e, 0x06, 0x27, 0xd2, 0xbb, 0xb7, 0xb7, 0xce, 0xf5, 0xc4, 0xda, 0x25, 0xda, 0xdf, 0xea, 0x80, 0x32, 0xe5, 0x02, 0x32, 0x97, 0xa7, 0x0a, 0x65, 0x8e, 0x9a, 0xe7, 0x3b, 0xdd, 0xc3, 0xb2, 0x27, 0xa1, 0xc1, 0x17, 0x41, 0x13, 0x3f, 0x01, 0x2f, 0x0f, 0x48, 0xfe, 0x26, 0x44, 0x6f, 0xa6, 0x7e, 0x64, 0x72, 0x0f, 0xc8, 0xdc, 0x97, 0xf3, 0x0d, 0x0d, 0xd0, 0x26, 0xf6, 0xdc, 0x21, 0x64, 0xea, 0xd8, 0x57, 0x82, 0x4a, 0x0a, 0x7a, 0xeb, 0x20, 0xf1, 0x15, 0xd5, 0x0d, 0x1b, 0x65, 0xdd, 0x5d, 0x82, 0xe0, 0x9a, 0xbe, 0x83, 0x4e, 0x8c, 0xa8, 0x89, 0x57, 0xe3, 0x99, 0x84, 0x82, 0x49, 0x55, 0xa1, 0xa1, 0x3e, 0x3b, 0x94, 0xa0, 0x01, 0x57, 0x18, 0x6d, 0xcd, 0xc2, 0x89, 0xe3, 0x4b, 0x67, 0x8c, 0x91, 0xcb, 0x2a, 0x1a, };
19388 static const u8 ed25519_843_test_vectors_expected_sig[] = {
19389 	0xa6, 0xb5, 0x6b, 0x76, 0x86, 0xdf, 0x1d, 0xc5, 0xf4, 0xed, 0x54, 0x4a, 0x4d, 0x97, 0xe6, 0x70, 0x36, 0x19, 0x5a, 0x32, 0xb2, 0x2e, 0xcd, 0x5d, 0x31, 0xea, 0x17, 0x30, 0xe6, 0xed, 0x8f, 0x81, 0x0d, 0x25, 0x8b, 0x44, 0xc0, 0x8e, 0xa4, 0x5f, 0x03, 0x2b, 0x93, 0x74, 0x41, 0xb7, 0x2c, 0xd0, 0xdc, 0x37, 0x55, 0x6f, 0xd7, 0x87, 0x4e, 0x9f, 0xe6, 0x4f, 0x15, 0x76, 0x5c, 0x52, 0x10, 0x03, };
19390 static const ec_test_case ed25519_843_test_case = {
19391 	.name = "EDDSA25519-SHA512/wei25519 843",
19392 	.ec_str_p = &wei25519_str_params,
19393 	.priv_key = ed25519_843_test_vectors_priv_key,
19394 	.priv_key_len = sizeof(ed25519_843_test_vectors_priv_key),
19395 	.nn_random = NULL,
19396 	.hash_type = SHA512,
19397 	.msg = (const char *)ed25519_843_test_vectors_message,
19398 	.msglen = sizeof(ed25519_843_test_vectors_message),
19399 	.sig_type = EDDSA25519,
19400 	.exp_sig = ed25519_843_test_vectors_expected_sig,
19401 	.exp_siglen = sizeof(ed25519_843_test_vectors_expected_sig),
19402 	.adata = NULL,
19403 	.adata_len = 0
19404 };
19405 
19406 /************************************************/
19407 static const u8 ed25519_844_test_vectors_priv_key[] = {
19408 	0x06, 0x3b, 0x90, 0x25, 0xe3, 0x21, 0xe9, 0x72, 0xd6, 0x53, 0xa0, 0x62, 0xbe, 0x34, 0xf9, 0x93, 0x65, 0xaf, 0xfd, 0xcc, 0x98, 0xec, 0x9f, 0xf4, 0x3e, 0xf4, 0x22, 0xbe, 0x0f, 0x80, 0x44, 0x60, };
19409 static const u8 ed25519_844_test_vectors_message[] = {
19410 	0xa7, 0xee, 0xd2, 0x96, 0x52, 0x84, 0x4e, 0xe0, 0x04, 0x9b, 0xaf, 0xb2, 0xcf, 0x63, 0x40, 0x29, 0x71, 0x02, 0x0d, 0x7e, 0x65, 0xc1, 0x0b, 0x91, 0xac, 0x57, 0x26, 0xee, 0xa8, 0x6f, 0x40, 0xdb, 0xc5, 0x3c, 0x3f, 0x0a, 0xbe, 0xde, 0xba, 0xf6, 0xcc, 0x44, 0x9b, 0x4f, 0xea, 0x48, 0xc0, 0x15, 0xfe, 0x4d, 0x90, 0x7b, 0x3e, 0x55, 0x05, 0xcf, 0xf5, 0x0a, 0x12, 0x18, 0x19, 0xa2, 0xe4, 0xa8, 0xa2, 0x96, 0xd5, 0x75, 0x10, 0x15, 0xbb, 0xcd, 0x7e, 0xf6, 0xfb, 0x7c, 0x27, 0x27, 0xbb, 0x00, 0x0b, 0xe1, 0x34, 0x2a, 0x7d, 0x14, 0xbc, 0xa9, 0x79, 0x04, 0xed, 0xfe, 0x8b, 0x18, 0xdd, 0xb6, 0x39, 0x33, 0x41, 0x83, 0x27, 0xa5, 0xaf, 0x81, 0x7e, 0x95, 0xba, 0xd7, 0x4e, 0xb7, 0x90, 0x20, 0x36, 0x15, 0xd0, 0x82, 0xe7, 0x14, 0x93, 0xea, 0xd4, 0x7c, 0xcc, 0x09, 0x01, 0xa2, 0xca, 0x9f, 0x50, 0x13, 0x3c, 0x44, 0xef, 0x85, 0x08, 0xd5, 0x1f, 0xb7, 0x3c, 0x61, 0x6f, 0x01, 0x47, 0x53, 0x22, 0x45, 0x82, 0x2d, 0xd1, 0x02, 0xb3, 0x37, 0xa1, 0xb2, 0xaa, 0xe2, 0xef, 0xc7, 0x2d, 0xca, 0x7a, 0x94, 0x19, 0xd5, 0x98, 0xa6, 0x47, 0x52, 0x33, 0xdc, 0x1a, 0x4e, 0xe0, 0xec, 0x6d, 0x05, 0xda, 0x12, 0xa2, 0xb2, 0x87, 0xcb, 0x77, 0xff, 0xaf, 0xdd, 0xe2, 0xd0, 0xac, 0xc2, 0x81, 0x99, 0x93, 0x3e, 0x66, 0x21, 0xee, 0xc1, 0x6a, 0xb4, 0x24, 0x51, 0x70, 0xcf, 0x02, 0xda, 0x80, 0xd4, 0x92, 0x26, 0x31, 0xa2, 0x32, 0x72, 0x91, 0x51, 0x65, 0xad, 0x88, 0x72, 0x27, 0x50, 0x03, 0x5d, 0x2a, 0x09, 0x77, 0xbc, 0x79, 0x1d, 0x14, 0xfb, 0x3d, 0x8c, 0xb0, 0x2b, 0xc7, 0x7f, 0x7c, 0x71, 0xbe, 0x52, 0x42, 0x62, 0x9a, 0x4c, 0x9a, 0x58, 0x8d, 0xfd, 0xde, 0x95, 0x78, 0x49, 0x4d, 0x8b, 0xaa, 0x4e, 0x68, 0xf5, 0x19, 0x4b, 0x80, 0x02, 0xc8, 0xe3, 0x78, 0xa0, 0xe8, 0x33, 0xb7, 0xc1, 0xa9, 0x69, 0x81, 0xc4, 0xfb, 0x05, 0xe4, 0x57, 0xff, 0x48, 0x26, 0x0b, 0x72, 0x49, 0x3c, 0xbc, 0xb8, 0x2a, 0xe1, 0x16, 0x73, 0xd1, 0x4c, 0xee, 0x85, 0x28, 0x8f, 0x63, 0x70, 0xbd, 0x4b, 0xca, 0x92, 0x51, 0xa7, 0xe2, 0x14, 0xc3, 0xeb, 0x79, 0xe7, 0xbb, 0x6f, 0xce, 0xbb, 0x16, 0xc9, 0xe0, 0x56, 0xf2, 0x9b, 0x62, 0x72, 0x74, 0x3e, 0xfa, 0x6f, 0xe8, 0xbf, 0xd2, 0x55, 0x97, 0xce, 0x86, 0x89, 0x8a, 0xb3, 0x05, 0x9e, 0xb0, 0x23, 0x1c, 0x73, 0xb5, 0x30, 0x59, 0x03, 0xfd, 0x13, 0x19, 0xbd, 0xf4, 0x9e, 0x59, 0x9d, 0x8b, 0xbc, 0xd7, 0x4a, 0x8b, 0x97, 0x67, 0x30, 0x8b, 0x61, 0x56, 0x3c, 0xcb, 0xac, 0xd3, 0x8f, 0xc5, 0x0c, 0x83, 0xab, 0x44, 0xca, 0x75, 0x9d, 0xc9, 0xb6, 0x5b, 0x2a, 0x4b, 0x54, 0x7c, 0x50, 0x97, 0xf2, 0x20, 0xc1, 0xc8, 0x8b, 0x2b, 0x0a, 0x48, 0xf6, 0x5f, 0x91, 0xfe, 0x78, 0xb1, 0x50, 0x12, 0x78, 0xe1, 0xe3, 0x04, 0xde, 0x58, 0xb4, 0xc8, 0x2a, 0x5c, 0x39, 0x99, 0x81, 0x09, 0x8a, 0x17, 0x84, 0xeb, 0x90, 0x42, 0x50, 0x18, 0x59, 0xf2, 0xa9, 0x3f, 0x31, 0x7e, 0x41, 0x77, 0x2f, 0xd5, 0x2f, 0x97, 0x2e, 0x51, 0xb0, 0x7e, 0xd9, 0x4d, 0x31, 0x4e, 0x1d, 0x1a, 0xf4, 0xed, 0x82, 0x90, 0x9a, 0x0b, 0xef, 0x67, 0x1f, 0x54, 0xb5, 0x5d, 0xb7, 0xb7, 0x0d, 0xa1, 0xf7, 0x18, 0xc8, 0xe6, 0x48, 0xae, 0xdd, 0x6d, 0xa6, 0x4b, 0x05, 0x77, 0x05, 0x26, 0xf1, 0x2b, 0xc4, 0x3f, 0x68, 0xb9, 0x55, 0x48, 0xda, 0xc5, 0x08, 0x09, 0xa6, 0x87, 0xdb, 0x97, 0xd7, 0x3f, 0x06, 0xf4, 0x7e, 0xd0, 0x88, 0x31, 0xb6, 0x0a, 0x28, 0xe9, 0x82, 0x92, 0x06, 0x32, 0x05, 0x8f, 0x0e, 0x6c, 0x90, 0xc0, 0x18, 0x7f, 0xf4, 0x45, 0x64, 0xf8, 0x1e, 0xfd, 0x8f, 0xd9, 0x3e, 0x32, 0x7b, 0xc6, 0xd8, 0x0b, 0x49, 0x0e, 0x08, 0x8b, 0x9a, 0x10, 0x03, 0x6c, 0x80, 0xdc, 0xda, 0xd4, 0x9d, 0x2b, 0xe0, 0x74, 0xfb, 0xba, 0x31, 0xe0, 0x6f, 0x71, 0x80, 0xe5, 0xad, 0x1c, 0x88, 0x23, 0xd6, 0x09, 0x66, 0xa9, 0xce, 0x15, 0x50, 0x3c, 0xe6, 0x0d, 0xd4, 0x0e, 0x91, 0xee, 0xf2, 0x35, 0x9d, 0x83, 0xd7, 0x0d, 0x98, 0x40, 0x1d, 0xde, 0x7b, 0xe3, 0xc6, 0xb0, 0x7e, 0x57, 0xd4, 0xe4, 0x7d, 0x04, 0x21, 0x76, 0x33, 0xd8, 0xe2, 0x63, 0xca, 0x34, 0x8f, 0x81, 0xfb, 0xe9, 0xa4, 0xa6, 0x2f, 0x45, 0xd7, 0x7c, 0x84, 0x3b, 0x6b, 0x1a, 0xd2, 0x84, 0x66, 0xd9, 0xda, 0xfb, 0x1b, 0x91, 0x0b, 0x34, 0x8e, 0xd8, 0x7c, 0x68, 0x6c, 0xab, 0x29, 0x2d, 0x48, 0x0c, 0x19, 0x1d, 0x18, 0x7b, 0x40, 0x4a, 0x9b, 0x1d, 0x13, 0x2b, 0xa4, 0xe2, 0x93, 0xd3, 0xad, 0xa9, 0x91, 0x72, 0xac, 0xc1, 0x21, 0xfe, 0x66, 0xb8, 0x45, 0xb9, 0x8b, 0x16, 0x0c, 0x58, 0x23, 0xf6, 0x01, 0xc7, 0x75, 0x8f, 0xb2, 0x6c, 0xae, 0xe8, 0x57, 0x01, 0x59, 0x5b, 0x2d, 0x52, 0xca, 0xa2, 0xf5, 0x68, 0x8a, 0xa2, 0xbf, 0x2f, 0x6c, 0x4b, 0xb6, 0x37, 0xf8, 0xe0, 0x0f, 0x49, 0xab, 0x6c, 0x26, 0xbc, 0x6a, 0xd8, 0x9e, 0x13, 0x67, 0xfd, 0x28, 0xe4, 0x91, 0x7d, 0x25, 0x08, 0x93, 0xa7, 0xb3, 0x2d, 0x39, 0x66, 0x0b, 0xde, 0x8d, 0xb4, 0x9f, 0x08, 0x6f, 0xb7, 0x39, 0xe5, 0x60, 0x12, 0xc3, 0x6b, 0xea, 0x0b, 0x26, 0xcf, 0x6d, 0x93, 0x57, 0x94, 0x0b, 0x00, 0xd5, 0xa4, 0x52, 0x8f, 0x90, 0x59, 0xaa, 0xf0, 0x86, 0x69, 0xe5, 0xf4, 0x6c, 0x99, 0x5e, 0x60, 0xf8, 0x87, 0xb5, 0xc4, 0xab, 0x88, 0xac, 0x74, 0x42, 0xed, 0x01, 0xa1, 0x4c, 0x6a, 0x42, 0x00, 0x6b, 0xaf, 0x1f, 0x34, 0x3f, 0xef, 0xe3, 0xe4, 0xac, 0xa8, 0x43, 0xa3, 0x24, 0xe1, 0x76, 0xb2, 0xfe, 0x7e, 0xc7, 0x88, 0x3d, 0x1c, 0xbd, 0x06, 0x8b, 0xc2, 0xfc, 0x96, 0x2f, 0xfa, 0x60, 0x24, 0x4f, 0x65, 0x4c, 0x77, 0xac, 0x56, 0x50, 0x81, 0x7d, 0xc0, 0x84, 0x46, 0x55, 0x45, 0xa9, 0x23, 0x0a, 0x74, 0x82, 0x6b, 0x0c, 0x50, 0xeb, 0x85, 0x25, 0x2a, 0x88, 0x6f, 0xf2, 0xb1, 0xaf, 0xea, 0xf8, };
19411 static const u8 ed25519_844_test_vectors_expected_sig[] = {
19412 	0x85, 0xc8, 0x1d, 0x6b, 0x0d, 0x85, 0x78, 0xfa, 0x58, 0xe1, 0x3a, 0xb3, 0x91, 0x00, 0x15, 0x28, 0xb4, 0x6a, 0x1d, 0x63, 0xa0, 0x32, 0x7c, 0x7a, 0x4a, 0x04, 0x08, 0x7f, 0xc6, 0x68, 0x75, 0x8a, 0xa6, 0x5c, 0x01, 0xd5, 0xa1, 0x50, 0xf9, 0x35, 0x67, 0x4e, 0xf3, 0x07, 0x50, 0x7e, 0x6f, 0x4c, 0x91, 0xe1, 0xfc, 0x35, 0x00, 0xb2, 0x6f, 0x64, 0x9b, 0xee, 0xa8, 0x7d, 0x27, 0x56, 0x37, 0x04, };
19413 static const ec_test_case ed25519_844_test_case = {
19414 	.name = "EDDSA25519-SHA512/wei25519 844",
19415 	.ec_str_p = &wei25519_str_params,
19416 	.priv_key = ed25519_844_test_vectors_priv_key,
19417 	.priv_key_len = sizeof(ed25519_844_test_vectors_priv_key),
19418 	.nn_random = NULL,
19419 	.hash_type = SHA512,
19420 	.msg = (const char *)ed25519_844_test_vectors_message,
19421 	.msglen = sizeof(ed25519_844_test_vectors_message),
19422 	.sig_type = EDDSA25519,
19423 	.exp_sig = ed25519_844_test_vectors_expected_sig,
19424 	.exp_siglen = sizeof(ed25519_844_test_vectors_expected_sig),
19425 	.adata = NULL,
19426 	.adata_len = 0
19427 };
19428 
19429 /************************************************/
19430 static const u8 ed25519_845_test_vectors_priv_key[] = {
19431 	0x88, 0x3c, 0xc1, 0x38, 0x17, 0x57, 0xb0, 0xfe, 0x04, 0x55, 0xb7, 0x7b, 0xc9, 0xcd, 0x0d, 0xd4, 0x64, 0xd2, 0xb4, 0xbf, 0x0c, 0x7a, 0x3c, 0x0c, 0x2d, 0xc7, 0x75, 0xfb, 0x78, 0xaa, 0x37, 0x32, };
19432 static const u8 ed25519_845_test_vectors_message[] = {
19433 	0xff, 0xec, 0x29, 0x3d, 0x12, 0xea, 0x63, 0x6c, 0xa4, 0xc4, 0xa0, 0xa5, 0xe2, 0xdb, 0x15, 0x34, 0x26, 0x39, 0xc4, 0x76, 0x67, 0x4d, 0x2e, 0xbd, 0xab, 0x4a, 0xef, 0xd4, 0x04, 0x6b, 0x5d, 0xdb, 0x56, 0xae, 0xb2, 0x10, 0xc1, 0x19, 0xaf, 0xdf, 0xb8, 0xa8, 0x91, 0x28, 0xa3, 0x4f, 0x6d, 0x77, 0xf2, 0x61, 0xed, 0xea, 0x07, 0x72, 0xa2, 0xf8, 0xdb, 0x14, 0x0a, 0x26, 0x40, 0xfd, 0x8e, 0xca, 0xdb, 0x0b, 0x47, 0x92, 0x16, 0x9b, 0x6b, 0x28, 0x10, 0xae, 0xe2, 0xc5, 0xcd, 0x83, 0x52, 0x88, 0xbf, 0xf4, 0x93, 0xbc, 0xeb, 0xee, 0xea, 0x28, 0xa7, 0xa2, 0x48, 0xc3, 0x61, 0x16, 0x54, 0x0f, 0xa7, 0x17, 0x36, 0xd6, 0x6b, 0x0a, 0x47, 0x5b, 0x5f, 0xa9, 0x2c, 0x0d, 0x46, 0x00, 0x2f, 0xca, 0x7a, 0x1e, 0x69, 0xd1, 0xb5, 0x9e, 0x81, 0xa3, 0xa6, 0xd4, 0xf3, 0x39, 0x76, 0x9d, 0xae, 0xb2, 0x0b, 0x5f, 0x9d, 0x75, 0xc4, 0xc2, 0x8f, 0x69, 0x21, 0x32, 0xd2, 0x8d, 0x3c, 0x56, 0x4c, 0x09, 0xfe, 0x3d, 0xcc, 0xa0, 0x35, 0x9c, 0x3c, 0x63, 0xec, 0x37, 0x7a, 0x33, 0xf9, 0xee, 0x87, 0x4d, 0x8a, 0x78, 0x9d, 0x77, 0xc9, 0x6a, 0xc0, 0x5f, 0xdf, 0x3a, 0xb3, 0x8b, 0x2c, 0x82, 0x74, 0xa9, 0x02, 0xef, 0x8b, 0xb7, 0xf4, 0x67, 0xfc, 0x7e, 0x07, 0x3c, 0x77, 0xb1, 0xdb, 0x5f, 0xc8, 0xef, 0x96, 0x6c, 0x12, 0x0c, 0x4d, 0xae, 0x3f, 0xb7, 0xf5, 0xb7, 0x4a, 0xbb, 0x99, 0x01, 0x66, 0xc8, 0x12, 0xa5, 0x25, 0xd1, 0x23, 0xf7, 0x6e, 0xd5, 0x12, 0x12, 0x50, 0x80, 0xa1, 0x53, 0x4f, 0x3d, 0x8b, 0xdc, 0xcc, 0x54, 0x1f, 0xc9, 0x75, 0x90, 0x28, 0x75, 0x46, 0x09, 0x6f, 0xc8, 0x80, 0xbf, 0xcf, 0xdd, 0x00, 0xe6, 0x5c, 0x0e, 0xbf, 0x4a, 0x09, 0xfd, 0x64, 0x76, 0xce, 0x1b, 0x7c, 0x8f, 0xaa, 0xa5, 0xa1, 0xcc, 0x27, 0x86, 0x71, 0x9a, 0x30, 0xd8, 0x25, 0x58, 0x11, 0x18, 0x47, 0x52, 0xa8, 0x8b, 0x08, 0xac, 0x9f, 0x0f, 0xf1, 0xd6, 0x26, 0x2f, 0x25, 0x86, 0x94, 0x0a, 0xfe, 0x1f, 0xe4, 0x5e, 0x0b, 0x56, 0x34, 0x48, 0xa5, 0x5f, 0x30, 0x30, 0xe4, 0xc3, 0x9c, 0x1f, 0x3f, 0x86, 0xa7, 0x33, 0x67, 0x03, 0x80, 0xea, 0xb0, 0x88, 0xe3, 0x93, 0xde, 0x09, 0xd1, 0xf5, 0x08, 0xd2, 0xfb, 0xca, 0xfc, 0x64, 0x9a, 0xea, 0xe6, 0xb8, 0xc3, 0x0e, 0x32, 0x9e, 0xc3, 0xfd, 0x28, 0x29, 0xbe, 0x6d, 0xb0, 0xab, 0x8e, 0x63, 0x7e, 0xa1, 0x09, 0x5b, 0xdc, 0x3d, 0xf3, 0xac, 0xc2, 0x3d, 0x3c, 0xf7, 0x05, 0xa9, 0x54, 0x2c, 0x19, 0xe5, 0x90, 0x92, 0xec, 0x41, 0x3a, 0x4e, 0x2b, 0xd5, 0xde, 0xd2, 0x8c, 0xd3, 0x4d, 0xdb, 0x3d, 0x32, 0x94, 0x9a, 0xa4, 0x87, 0xf1, 0xc3, 0x37, 0xd6, 0x97, 0x9c, 0xf5, 0x12, 0x62, 0x2d, 0xbf, 0xb7, 0xda, 0x1c, 0xbb, 0x1c, 0x7e, 0x5a, 0xbe, 0xea, 0x70, 0x09, 0xe2, 0x94, 0x3f, 0xfb, 0xa2, 0x25, 0x2e, 0x1d, 0x86, 0xec, 0xa9, 0xd6, 0xd5, 0xc2, 0x46, 0xcd, 0x2e, 0x13, 0x4a, 0x3e, 0x5d, 0xad, 0x37, 0xef, 0xef, 0x71, 0xce, 0x39, 0x7a, 0xda, 0xfb, 0xd9, 0xe7, 0x2b, 0x3f, 0x9a, 0x86, 0xff, 0x0f, 0x5d, 0x81, 0x2c, 0x46, 0x22, 0x5b, 0xeb, 0xd0, 0x70, 0x3b, 0xc5, 0xcc, 0xe9, 0xc6, 0x45, 0x82, 0x00, 0x8f, 0x7e, 0x55, 0x8c, 0x40, 0xa3, 0xb3, 0x52, 0x20, 0x96, 0xd1, 0xaa, 0x2b, 0x61, 0xbc, 0x90, 0xcd, 0x88, 0xc6, 0x28, 0x5d, 0x94, 0x20, 0x87, 0xd8, 0xa4, 0x66, 0x5a, 0x0e, 0x64, 0xd3, 0x57, 0x2f, 0x74, 0x68, 0x9b, 0x4f, 0x24, 0xef, 0x40, 0x0d, 0x74, 0x1b, 0x57, 0x14, 0x06, 0x13, 0x47, 0x14, 0x44, 0xde, 0xcc, 0x65, 0x4a, 0xf0, 0xff, 0xb2, 0xed, 0xfd, 0xf9, 0xfd, 0xd0, 0x75, 0x09, 0x81, 0x90, 0xb3, 0x4c, 0xde, 0x28, 0xdd, 0x16, 0x68, 0x72, 0xc6, 0x08, 0x65, 0x67, 0xa6, 0x87, 0x61, 0xce, 0xf2, 0x5d, 0xa4, 0x0b, 0xd4, 0xc3, 0xd3, 0x4f, 0xdd, 0xd7, 0x2e, 0xe5, 0x65, 0xb0, 0xb9, 0x37, 0x67, 0x8e, 0xe8, 0x43, 0x49, 0xd1, 0x16, 0x0f, 0x5f, 0x07, 0x05, 0xf8, 0x95, 0xd0, 0xf1, 0x41, 0xce, 0x8f, 0x51, 0xa1, 0xe4, 0xfd, 0x2d, 0xc4, 0x70, 0x4b, 0x52, 0x7a, 0x40, 0x25, 0xa9, 0x39, 0xcb, 0x2b, 0xb7, 0x88, 0x57, 0xeb, 0x18, 0xd7, 0x88, 0x72, 0xed, 0xc9, 0xee, 0x70, 0xe6, 0x0b, 0x2a, 0x42, 0x70, 0x0a, 0x19, 0x8f, 0x4f, 0xff, 0x6c, 0x31, 0x92, 0x51, 0x68, 0xbe, 0x07, 0x7d, 0xc2, 0x3c, 0x32, 0x2a, 0xbb, 0xca, 0x97, 0x36, 0x1f, 0xec, 0xaa, 0x3f, 0xcb, 0x19, 0x6e, 0x65, 0x6c, 0x12, 0x8f, 0x39, 0x82, 0xfe, 0x11, 0xe5, 0x51, 0xa4, 0xa0, 0x88, 0x5d, 0xa6, 0x0d, 0x39, 0x7d, 0x0e, 0x40, 0xd0, 0xd8, 0x97, 0x26, 0x2f, 0x1b, 0x4b, 0x67, 0x2f, 0x78, 0xa2, 0xd2, 0xad, 0xfc, 0xdd, 0x6e, 0x15, 0x25, 0xc2, 0x6e, 0x71, 0x95, 0xfb, 0x9a, 0xc6, 0x06, 0xbb, 0x1b, 0xa4, 0xa9, 0x89, 0x08, 0x03, 0xb4, 0xbd, 0x84, 0x34, 0x6a, 0xe8, 0xd8, 0xc7, 0x19, 0x6c, 0x90, 0xae, 0xcc, 0xb2, 0x96, 0xa4, 0xc3, 0xeb, 0x4e, 0xfa, 0xcb, 0xfc, 0xb6, 0x2e, 0x38, 0x3b, 0x8a, 0x49, 0x4a, 0xc7, 0x23, 0x56, 0x2d, 0x0d, 0x8c, 0x37, 0x91, 0x87, 0xa9, 0x2e, 0x3b, 0xda, 0x6b, 0x15, 0x69, 0x47, 0x6a, 0xed, 0x21, 0xae, 0xd7, 0xa0, 0x56, 0xb4, 0xa5, 0x82, 0x67, 0x44, 0x01, 0x7c, 0xc0, 0x06, 0x0b, 0x4d, 0x55, 0xfa, 0x87, 0x72, 0xb5, 0xb1, 0xc1, 0x5f, 0x57, 0x48, 0xad, 0x72, 0x98, 0x00, 0x5a, 0xec, 0xbc, 0xbd, 0x90, 0xa3, 0xe5, 0xc6, 0x15, 0x9a, 0x86, 0x74, 0xab, 0xbb, 0xa3, 0x79, 0x14, 0x41, 0x50, 0x02, 0xb5, 0xa6, 0xef, 0x5d, 0xf3, 0xc6, 0x49, 0x42, 0x6e, 0xa1, 0x27, 0x5a, 0x01, 0xd8, 0x0a, 0xdf, 0x49, 0x0a, 0xc5, 0x46, 0x06, 0x2d, 0x93, 0x99, 0x9a, 0x6d, 0xcc, 0xac, 0xb9, 0x6a, 0x09, 0x04, 0xad, 0x33, 0xd9, 0x05, 0x76, 0xdc, 0x6a, 0x21, 0xb6, 0x72, 0xe8, 0xff, 0xb0, 0x66, 0x13, 0xfb, 0x3f, 0x14, 0xe6, 0xcb, 0xdd, 0xe8, 0x8c, 0x24, 0x37, 0xc9, };
19434 static const u8 ed25519_845_test_vectors_expected_sig[] = {
19435 	0xc7, 0xcf, 0xd5, 0xc9, 0xfe, 0x93, 0x0d, 0x15, 0xa1, 0x1e, 0xbb, 0x34, 0xe3, 0x43, 0x1f, 0x48, 0x9d, 0xa0, 0x10, 0xeb, 0x19, 0x3e, 0xdb, 0xfa, 0x6f, 0x23, 0xd5, 0xd1, 0x4d, 0xd8, 0xfe, 0xab, 0xd7, 0x88, 0x0d, 0x2d, 0x5a, 0x56, 0x00, 0xd3, 0x85, 0x46, 0xce, 0x3b, 0xc6, 0x4a, 0x86, 0x29, 0x1a, 0x1c, 0xe3, 0x1f, 0x27, 0x2f, 0xf0, 0x20, 0xdf, 0x8c, 0xb6, 0xa0, 0xfd, 0x4d, 0x3a, 0x0d, };
19436 static const ec_test_case ed25519_845_test_case = {
19437 	.name = "EDDSA25519-SHA512/wei25519 845",
19438 	.ec_str_p = &wei25519_str_params,
19439 	.priv_key = ed25519_845_test_vectors_priv_key,
19440 	.priv_key_len = sizeof(ed25519_845_test_vectors_priv_key),
19441 	.nn_random = NULL,
19442 	.hash_type = SHA512,
19443 	.msg = (const char *)ed25519_845_test_vectors_message,
19444 	.msglen = sizeof(ed25519_845_test_vectors_message),
19445 	.sig_type = EDDSA25519,
19446 	.exp_sig = ed25519_845_test_vectors_expected_sig,
19447 	.exp_siglen = sizeof(ed25519_845_test_vectors_expected_sig),
19448 	.adata = NULL,
19449 	.adata_len = 0
19450 };
19451 
19452 /************************************************/
19453 static const u8 ed25519_846_test_vectors_priv_key[] = {
19454 	0x5e, 0x40, 0xa7, 0xaa, 0xbb, 0xb0, 0x83, 0x0a, 0x9a, 0xb0, 0xfd, 0x79, 0x69, 0x0e, 0xe0, 0x43, 0x39, 0x01, 0xc6, 0xcb, 0x06, 0x76, 0xab, 0xe4, 0xbb, 0xa0, 0x6f, 0x5b, 0xbe, 0x58, 0xfa, 0xc2, };
19455 static const u8 ed25519_846_test_vectors_message[] = {
19456 	0xfd, 0x4e, 0xc8, 0xb3, 0x4f, 0xc6, 0xb7, 0x43, 0x81, 0x3f, 0x59, 0xe2, 0xfd, 0x1f, 0xef, 0xa8, 0x70, 0xf5, 0xa9, 0x70, 0xe2, 0xeb, 0x75, 0x16, 0xef, 0x7c, 0x30, 0x6f, 0x4b, 0x82, 0x3f, 0xfe, 0xe9, 0x2d, 0x60, 0x1f, 0x76, 0x5d, 0x79, 0xca, 0x14, 0x6a, 0xba, 0x8b, 0xc6, 0xe7, 0x98, 0x44, 0x55, 0x99, 0x35, 0xcd, 0xdc, 0x24, 0x26, 0x49, 0xc0, 0x59, 0xec, 0xf2, 0xdb, 0x84, 0xfd, 0xc2, 0x19, 0x36, 0x66, 0x88, 0xa8, 0x8f, 0xc2, 0x5b, 0x85, 0x1c, 0x36, 0x61, 0xe5, 0x19, 0x88, 0xc2, 0xbf, 0x73, 0xbb, 0x8e, 0x3d, 0xc1, 0x6d, 0x22, 0x41, 0x5a, 0xb1, 0xa7, 0xb3, 0x55, 0x79, 0xda, 0xac, 0x73, 0x25, 0xe3, 0x19, 0x15, 0x7d, 0x7d, 0xa5, 0xfe, 0xe8, 0x7c, 0x93, 0xa4, 0xdf, 0xcb, 0xaf, 0xc9, 0x2f, 0xba, 0x7e, 0x17, 0xcc, 0x68, 0xe3, 0x90, 0x37, 0x33, 0xc6, 0xc8, 0x01, 0x57, 0x2d, 0x90, 0x73, 0x20, 0xb2, 0xfe, 0xb5, 0x17, 0x10, 0xe8, 0x56, 0xa1, 0xf7, 0x6f, 0x85, 0xa7, 0xee, 0x1a, 0x11, 0xe6, 0x2d, 0x2e, 0x45, 0xa3, 0x52, 0x93, 0x8d, 0xd8, 0xcf, 0xc2, 0xbc, 0xcb, 0x90, 0x2d, 0xea, 0x44, 0x4f, 0xaa, 0xae, 0x6d, 0x84, 0xc5, 0xf3, 0x91, 0xe1, 0x0a, 0xef, 0x76, 0x92, 0x8a, 0x45, 0x15, 0x3d, 0xb6, 0xcd, 0x25, 0xa2, 0xbf, 0x35, 0x3d, 0x80, 0xd9, 0x7b, 0xf4, 0xb3, 0x80, 0x86, 0x05, 0xe8, 0x98, 0x00, 0xd2, 0x98, 0x40, 0xea, 0x60, 0x97, 0x8d, 0x9e, 0xc9, 0xb2, 0xc3, 0x02, 0x74, 0x98, 0x88, 0xf9, 0xde, 0xbc, 0x84, 0xdd, 0x1e, 0x2a, 0x79, 0xaa, 0x0b, 0x6b, 0xa0, 0x2a, 0x03, 0x91, 0x93, 0x08, 0x1b, 0xdb, 0xff, 0x05, 0x99, 0xa1, 0x4d, 0x91, 0x8c, 0x0c, 0x8d, 0xea, 0xc4, 0xf6, 0x0b, 0x6e, 0x99, 0x47, 0x4a, 0xb5, 0x30, 0x11, 0x74, 0x10, 0x34, 0xfe, 0x2a, 0x20, 0xcf, 0xf4, 0xe0, 0xf0, 0x23, 0x42, 0x4c, 0x8e, 0x57, 0x97, 0x76, 0x8a, 0xd5, 0x3d, 0xf6, 0xd0, 0x1a, 0x24, 0x01, 0x1f, 0xa9, 0x0f, 0x0b, 0xb1, 0xd5, 0x06, 0x9c, 0xdb, 0x36, 0xb4, 0x50, 0xf4, 0x33, 0x11, 0x0c, 0x2c, 0x56, 0xf3, 0x4a, 0x1d, 0xe4, 0x26, 0x09, 0x14, 0xcd, 0x46, 0x96, 0xb1, 0x4a, 0x09, 0xc0, 0x26, 0x8b, 0x2a, 0xe2, 0xe9, 0x8e, 0x6b, 0x4e, 0x99, 0x2b, 0x91, 0x25, 0xf8, 0x78, 0xf1, 0xac, 0x09, 0x82, 0x31, 0x70, 0x62, 0x83, 0x88, 0xf0, 0xf6, 0xe2, 0x56, 0x25, 0x9c, 0xa7, 0x86, 0xbb, 0xe1, 0x44, 0x88, 0x4c, 0xb2, 0x98, 0xcc, 0x04, 0x3d, 0x02, 0xf5, 0xc3, 0xdc, 0x68, 0x4f, 0x78, 0x7f, 0xaf, 0x16, 0xc1, 0x0f, 0xdd, 0x84, 0x37, 0xa8, 0xc3, 0x09, 0x74, 0x63, 0xbd, 0xb9, 0x9b, 0x78, 0x03, 0x0f, 0x94, 0x74, 0xfc, 0x5c, 0x99, 0x51, 0xdc, 0x75, 0x26, 0x49, 0x05, 0x86, 0xfe, 0x1c, 0x2d, 0xb0, 0x54, 0x11, 0x34, 0x14, 0x60, 0x23, 0x9d, 0x5e, 0x8b, 0xc5, 0x30, 0x65, 0x90, 0x2b, 0x95, 0xfb, 0xa2, 0x82, 0xc2, 0x76, 0x65, 0xe8, 0x69, 0xa1, 0x9d, 0xae, 0x84, 0x60, 0x6d, 0x17, 0x26, 0x67, 0x51, 0x55, 0xd3, 0x80, 0x39, 0xb9, 0xe5, 0x5d, 0xb4, 0xd5, 0xce, 0xec, 0x95, 0xcd, 0x6d, 0x87, 0xf8, 0x5e, 0x99, 0xdd, 0xe5, 0x4a, 0x04, 0x76, 0x1e, 0x6e, 0xad, 0xa6, 0x61, 0x9d, 0xa8, 0x95, 0xb6, 0x54, 0xfe, 0x38, 0x45, 0xe8, 0xa6, 0x0f, 0x3a, 0x3b, 0x32, 0x48, 0x3d, 0x6d, 0x27, 0x97, 0x8a, 0xf5, 0x45, 0x02, 0xb2, 0x20, 0xe4, 0x78, 0xdb, 0x78, 0xcf, 0xf7, 0x7a, 0x9c, 0x97, 0xfb, 0x79, 0xfb, 0x5a, 0xcf, 0x56, 0x28, 0x9f, 0x38, 0x1a, 0xcb, 0x10, 0xde, 0x64, 0xc3, 0xf2, 0x38, 0x42, 0xb1, 0x2b, 0xf5, 0xf1, 0xb2, 0x83, 0xbd, 0x25, 0xd4, 0x8d, 0x09, 0x12, 0x8f, 0xb5, 0x5d, 0xda, 0xe2, 0x55, 0xbe, 0xb7, 0xc6, 0x6a, 0x74, 0xcf, 0x6f, 0x06, 0x95, 0xa4, 0xf8, 0x28, 0xcb, 0x29, 0xe4, 0xaf, 0xdb, 0xb3, 0xb4, 0x2a, 0x23, 0x5d, 0x4f, 0xdb, 0x66, 0xb9, 0x63, 0xac, 0x8f, 0x68, 0xe8, 0x2b, 0x00, 0xa1, 0xc4, 0x50, 0x08, 0x63, 0x29, 0x62, 0x47, 0x17, 0x8c, 0xfd, 0xef, 0x80, 0x3b, 0xb7, 0xb1, 0x14, 0xf0, 0xc0, 0x32, 0x76, 0xf6, 0x71, 0x66, 0x9a, 0x08, 0x7d, 0x92, 0x28, 0xa3, 0x7a, 0xe7, 0xb9, 0x9b, 0x06, 0x15, 0x49, 0xc1, 0xcf, 0x8e, 0xc1, 0x72, 0x46, 0xea, 0x1e, 0xe0, 0x3d, 0xbc, 0x88, 0xbf, 0x42, 0x64, 0x16, 0xd5, 0x86, 0x57, 0x2f, 0xf1, 0x0a, 0x31, 0x45, 0x60, 0x6f, 0x27, 0x84, 0xe4, 0x35, 0x7b, 0xe4, 0xed, 0xee, 0xc6, 0xc3, 0xa7, 0xbf, 0x11, 0xbb, 0x5b, 0x0e, 0x90, 0xcf, 0x50, 0xed, 0xaf, 0x89, 0x1e, 0x51, 0xd2, 0x63, 0x57, 0xbf, 0xc8, 0x53, 0xce, 0x23, 0xb2, 0x99, 0x15, 0x5c, 0x82, 0xc1, 0x03, 0x1d, 0xfa, 0x64, 0x07, 0x4d, 0x72, 0xa0, 0x9d, 0x29, 0x72, 0x0e, 0xad, 0x6e, 0xbb, 0xbf, 0x75, 0xd5, 0x73, 0x8e, 0x32, 0xcd, 0xa6, 0xb6, 0x46, 0x6a, 0x8d, 0xef, 0x6b, 0x50, 0xa1, 0xed, 0x9b, 0x86, 0x5a, 0x9a, 0x88, 0xa0, 0x80, 0x18, 0xac, 0xb5, 0x01, 0xa4, 0xde, 0x9d, 0xb5, 0x4d, 0x05, 0x22, 0xce, 0x9c, 0xec, 0x7a, 0x06, 0xbd, 0x9a, 0x5f, 0x86, 0xb0, 0xb4, 0x6c, 0x07, 0xbf, 0x3e, 0x7f, 0x5a, 0x42, 0x6f, 0xf6, 0xb4, 0xbb, 0xe1, 0xe0, 0x03, 0x13, 0xa5, 0xac, 0x27, 0x19, 0xa9, 0x59, 0xed, 0x44, 0xee, 0x0a, 0x44, 0xbd, 0x97, 0xda, 0x6d, 0xb2, 0xcb, 0x97, 0x1b, 0xd6, 0x83, 0x34, 0x90, 0x89, 0x49, 0xed, 0x85, 0x0f, 0xbf, 0x73, 0xd0, 0xe0, 0x20, 0x49, 0xda, 0x18, 0x1c, 0xce, 0x9c, 0x2d, 0x9c, 0xa1, 0xb6, 0x24, 0xc8, 0xd8, 0x7c, 0xf9, 0x04, 0xeb, 0x82, 0x1d, 0xc7, 0x95, 0x92, 0x95, 0xda, 0x57, 0x77, 0x92, 0x06, 0x60, 0xb4, 0x3c, 0xcc, 0x25, 0xcd, 0x38, 0x9f, 0x15, 0x7f, 0x67, 0xfa, 0x03, 0x90, 0xfe, 0xac, 0x97, 0xa7, 0x52, 0xc1, 0xac, 0x20, 0x4c, 0x21, 0xdf, 0x56, 0xbb, 0x0f, 0x4f, 0xc0, 0x16, 0x41, 0xb4, 0x80, 0xaf, 0x2b, 0x89, 0xb5, 0xd1, 0x6d, 0x4a, 0x0b, 0xcb, 0x0a, 0x50, 0xb8, 0x2b, 0x0e, 0x04, 0x84, };
19457 static const u8 ed25519_846_test_vectors_expected_sig[] = {
19458 	0x59, 0x76, 0x72, 0xab, 0x8d, 0x3a, 0x60, 0xde, 0x54, 0x56, 0xfc, 0xc9, 0xc3, 0x82, 0x53, 0xf5, 0xf3, 0x7b, 0x80, 0xe7, 0x4a, 0x00, 0x7c, 0x9f, 0x6d, 0xb9, 0x09, 0xd2, 0x7d, 0x0e, 0xad, 0x16, 0x27, 0x89, 0x24, 0x49, 0x94, 0xf3, 0x5b, 0x80, 0xd6, 0x1b, 0xe1, 0x99, 0xc4, 0x17, 0xc7, 0xea, 0x90, 0x1b, 0x98, 0xcc, 0x63, 0xfe, 0x3c, 0x50, 0xfc, 0x3c, 0x63, 0x38, 0x49, 0x0f, 0xa2, 0x06, };
19459 static const ec_test_case ed25519_846_test_case = {
19460 	.name = "EDDSA25519-SHA512/wei25519 846",
19461 	.ec_str_p = &wei25519_str_params,
19462 	.priv_key = ed25519_846_test_vectors_priv_key,
19463 	.priv_key_len = sizeof(ed25519_846_test_vectors_priv_key),
19464 	.nn_random = NULL,
19465 	.hash_type = SHA512,
19466 	.msg = (const char *)ed25519_846_test_vectors_message,
19467 	.msglen = sizeof(ed25519_846_test_vectors_message),
19468 	.sig_type = EDDSA25519,
19469 	.exp_sig = ed25519_846_test_vectors_expected_sig,
19470 	.exp_siglen = sizeof(ed25519_846_test_vectors_expected_sig),
19471 	.adata = NULL,
19472 	.adata_len = 0
19473 };
19474 
19475 /************************************************/
19476 static const u8 ed25519_847_test_vectors_priv_key[] = {
19477 	0x3a, 0x34, 0x13, 0x6a, 0x97, 0x34, 0x80, 0xd9, 0x70, 0x06, 0xdc, 0x27, 0x93, 0x58, 0xe6, 0x60, 0x62, 0x93, 0xd8, 0xcb, 0xc1, 0xa4, 0x4e, 0xe5, 0x52, 0x33, 0xaf, 0x2b, 0x52, 0x64, 0xb9, 0x0c, };
19478 static const u8 ed25519_847_test_vectors_message[] = {
19479 	0x98, 0x1c, 0x8e, 0x10, 0x90, 0xe3, 0x96, 0x95, 0x1b, 0x07, 0x2e, 0xf8, 0x49, 0x70, 0x62, 0x02, 0x08, 0x97, 0xbf, 0x7d, 0xd7, 0xad, 0x50, 0x5b, 0x4d, 0x6d, 0xc1, 0x1b, 0x3e, 0x1d, 0xbc, 0xb0, 0xda, 0x24, 0x99, 0x84, 0xa1, 0x40, 0xe1, 0x64, 0xfc, 0x2e, 0x02, 0xb3, 0x1d, 0xa3, 0x98, 0x46, 0x55, 0x4a, 0xa8, 0x90, 0x5b, 0xc8, 0xb3, 0xdf, 0x8a, 0x76, 0xbf, 0x60, 0xeb, 0x5f, 0xfc, 0xf2, 0x2c, 0x97, 0xb6, 0x71, 0x22, 0x7d, 0x24, 0x90, 0x71, 0xda, 0x8f, 0xf6, 0xbb, 0xa7, 0x5b, 0x2f, 0x76, 0x68, 0xce, 0xc1, 0x9a, 0x89, 0xe6, 0x47, 0x5a, 0x12, 0x46, 0x3d, 0xab, 0xf3, 0x68, 0xb3, 0xca, 0x24, 0x45, 0xbb, 0x30, 0x35, 0xcc, 0x00, 0xfa, 0xe8, 0x5b, 0x70, 0x72, 0xfb, 0xcf, 0x59, 0x54, 0x01, 0x75, 0x5b, 0x80, 0x51, 0xe6, 0x09, 0x70, 0x65, 0xae, 0x42, 0x9f, 0x18, 0xee, 0xb1, 0x3f, 0xfa, 0x6d, 0xde, 0x59, 0xdf, 0x6f, 0x3c, 0x20, 0x6b, 0xfd, 0x9c, 0xe1, 0xf8, 0xa8, 0x00, 0xc8, 0x59, 0x0a, 0x40, 0x21, 0xd1, 0x60, 0xf6, 0x6d, 0x67, 0x40, 0xa3, 0x69, 0xae, 0x83, 0x56, 0x17, 0x53, 0x8b, 0x58, 0x90, 0x23, 0x1f, 0x13, 0xc5, 0x66, 0x7b, 0xaf, 0x51, 0x0a, 0x60, 0x6b, 0xda, 0xa8, 0x4b, 0x8d, 0x10, 0xee, 0x60, 0x15, 0xe1, 0x2a, 0x4c, 0x1e, 0xc0, 0xbd, 0x04, 0x21, 0xa2, 0x94, 0xc5, 0x1c, 0xf6, 0x3b, 0x5d, 0x1f, 0x05, 0x8e, 0x11, 0x53, 0xdc, 0x42, 0x5d, 0x10, 0xce, 0xe8, 0xb1, 0xb0, 0x84, 0xd6, 0xc2, 0x93, 0x47, 0xe9, 0x6f, 0x0f, 0x31, 0xb8, 0x39, 0x60, 0x7d, 0x07, 0x8b, 0x79, 0xa9, 0x0c, 0xa3, 0xd1, 0xf0, 0x63, 0x80, 0x7a, 0x46, 0x3b, 0x7c, 0x32, 0xf4, 0x5a, 0x53, 0x44, 0x98, 0xd7, 0x1d, 0x47, 0xed, 0xc3, 0xb1, 0x7a, 0x4d, 0xff, 0x27, 0xfe, 0xdc, 0xff, 0xab, 0x30, 0x1f, 0x34, 0xf1, 0xa6, 0x4c, 0x02, 0x78, 0xa5, 0x35, 0x89, 0x34, 0x9a, 0x23, 0x3a, 0xf3, 0x0b, 0x1e, 0xc1, 0xae, 0x41, 0x0f, 0x7b, 0x16, 0x30, 0xc7, 0x14, 0x5c, 0xa4, 0x2c, 0x96, 0x63, 0xf5, 0x12, 0xe8, 0xa5, 0x78, 0x26, 0x7d, 0xc9, 0x5e, 0x83, 0x28, 0x9c, 0x17, 0x03, 0x2e, 0x09, 0x78, 0x2e, 0x2f, 0xe8, 0xe1, 0x6e, 0xfb, 0x87, 0xf0, 0x3c, 0xa0, 0x3b, 0x11, 0x95, 0x61, 0x4f, 0x89, 0x96, 0x1c, 0xa3, 0x93, 0x9d, 0x3b, 0xdf, 0x73, 0x72, 0x21, 0xa2, 0x2d, 0x7a, 0x18, 0xec, 0x30, 0xfc, 0x12, 0x6d, 0x0c, 0xa6, 0x63, 0xe8, 0x8d, 0x60, 0x60, 0xd0, 0x4c, 0x6a, 0x44, 0xe5, 0x61, 0x6e, 0x55, 0x6e, 0x07, 0xd6, 0xd4, 0xa8, 0x47, 0xf1, 0x71, 0x1c, 0xf4, 0x37, 0x17, 0x81, 0x0c, 0x70, 0xaa, 0x4b, 0xe7, 0x30, 0x27, 0x8b, 0x3b, 0xd6, 0x55, 0x5c, 0x95, 0x4d, 0xc6, 0xed, 0xb0, 0x9d, 0xb0, 0x8f, 0x0e, 0x21, 0x18, 0x03, 0x59, 0x62, 0x80, 0xf3, 0xc7, 0x86, 0x8d, 0x23, 0x42, 0xcc, 0x23, 0x08, 0xea, 0xae, 0x4d, 0xa1, 0x91, 0x35, 0x14, 0x66, 0x4b, 0x1d, 0xb9, 0x62, 0xe9, 0x9c, 0x8a, 0x8c, 0xff, 0xe5, 0x79, 0x31, 0xf5, 0xdf, 0xcd, 0xdb, 0xc1, 0xcb, 0xb3, 0x6c, 0xe1, 0xc8, 0x42, 0xe2, 0xdd, 0xde, 0xad, 0xfd, 0x7e, 0x7d, 0x0a, 0x50, 0x48, 0xcd, 0xcb, 0x96, 0x1b, 0x14, 0xf3, 0x5f, 0x43, 0x5e, 0x73, 0xa6, 0x83, 0xc8, 0xce, 0x25, 0xc8, 0x16, 0x81, 0x25, 0x66, 0xfd, 0xf8, 0x17, 0xe0, 0xd3, 0x36, 0xae, 0x0b, 0xd2, 0x47, 0x32, 0x85, 0x12, 0xb2, 0xa8, 0x56, 0x76, 0x32, 0xbf, 0x20, 0x55, 0x3d, 0x9b, 0xd6, 0xfe, 0x15, 0x7f, 0x22, 0x0f, 0xfb, 0x0b, 0x46, 0xeb, 0xae, 0x89, 0xa7, 0x04, 0x59, 0x72, 0x8a, 0x57, 0xee, 0xd1, 0x79, 0x62, 0x56, 0xf1, 0xbd, 0x50, 0xb6, 0xd5, 0x47, 0xea, 0x3e, 0x25, 0xfa, 0x59, 0x13, 0xd3, 0x89, 0xa2, 0x25, 0x83, 0xe9, 0x15, 0xeb, 0x49, 0xde, 0x35, 0xa9, 0x7b, 0x5a, 0xcc, 0x52, 0x1d, 0xb0, 0xd0, 0x05, 0xc2, 0x95, 0x75, 0xe1, 0x66, 0x11, 0xa7, 0x55, 0xf2, 0x1a, 0x3a, 0x5a, 0x82, 0xa2, 0x0a, 0xa9, 0x00, 0xa7, 0x07, 0xce, 0x36, 0x82, 0x54, 0x92, 0xc3, 0xca, 0x15, 0x39, 0x5f, 0x17, 0x00, 0xb4, 0xaf, 0xab, 0x94, 0xda, 0xa7, 0xa0, 0x2f, 0x14, 0x53, 0xb1, 0xf9, 0xa6, 0xbd, 0x36, 0xef, 0xb2, 0x04, 0xd9, 0x28, 0xee, 0x1f, 0x4d, 0xcc, 0x86, 0x0f, 0x3a, 0x85, 0x9b, 0xad, 0xc0, 0x06, 0xfb, 0x30, 0x5f, 0xa1, 0x23, 0xd4, 0xc7, 0x9b, 0x23, 0xa2, 0x0e, 0x32, 0x29, 0x5d, 0x04, 0x0a, 0x7f, 0x8f, 0x6c, 0xac, 0xa2, 0x5d, 0x83, 0xf7, 0x1c, 0x62, 0xe3, 0xaf, 0x78, 0x36, 0xef, 0x76, 0xb9, 0x3a, 0x83, 0xd3, 0xc3, 0xb4, 0x93, 0xaf, 0x14, 0x17, 0x53, 0xda, 0x19, 0xe4, 0xcd, 0xcb, 0xa5, 0x66, 0x17, 0x27, 0x10, 0x34, 0xb4, 0xf4, 0xf3, 0x94, 0xc7, 0xc6, 0xb7, 0xd7, 0x96, 0x66, 0xf3, 0xaf, 0xb6, 0x92, 0x24, 0x4f, 0x06, 0x1c, 0x69, 0xa8, 0x88, 0x1d, 0x1b, 0x52, 0xb8, 0x84, 0x9f, 0xb5, 0x34, 0x99, 0x0a, 0xc2, 0x39, 0x19, 0x09, 0x47, 0x1e, 0xbb, 0xb7, 0x28, 0xe2, 0x9c, 0xd2, 0x0f, 0x42, 0x23, 0x54, 0xc4, 0x30, 0x97, 0x17, 0xeb, 0xff, 0x3e, 0xfd, 0x18, 0x33, 0x37, 0x08, 0x06, 0xd5, 0xbf, 0xb5, 0x3c, 0xa2, 0xda, 0x31, 0x6d, 0xac, 0xb5, 0x0a, 0xb7, 0xfb, 0x73, 0x96, 0x73, 0x23, 0x5a, 0x1d, 0xc5, 0x3a, 0xa8, 0x89, 0x30, 0x72, 0xd5, 0xb9, 0x1c, 0x9f, 0x6d, 0xb8, 0x3f, 0xc4, 0xea, 0x41, 0xd1, 0xee, 0xf4, 0x9a, 0xc2, 0x8a, 0xfc, 0x1c, 0xed, 0x8f, 0x36, 0x18, 0x90, 0xab, 0x9f, 0x77, 0x9d, 0x19, 0x30, 0x82, 0x83, 0x1c, 0xb8, 0xc4, 0x2f, 0xb2, 0x79, 0x2b, 0xee, 0x3b, 0x26, 0x29, 0x6b, 0x62, 0x95, 0xeb, 0x78, 0xa8, 0xd8, 0x53, 0x11, 0x76, 0x61, 0x62, 0x4e, 0x11, 0xf7, 0xf5, 0x7a, 0xfd, 0x60, 0x85, 0xa7, 0xb9, 0x12, 0x36, 0x79, 0xfd, 0xac, 0xa1, 0xcf, 0x2a, 0x78, 0xd3, 0x80, 0xbc, 0x4c, 0x36, 0x0a, 0xa7, 0xc3, 0xcb, 0xfd, 0xe0, 0xc0, 0x09, 0x1f, 0xe5, 0x3e, 0x22, 0x19, 0xc0, 0x70, 0xf2, 0xf0, 0x2f, 0x14, 0x83, };
19480 static const u8 ed25519_847_test_vectors_expected_sig[] = {
19481 	0x42, 0x5f, 0x27, 0x22, 0x12, 0x83, 0x57, 0x55, 0xad, 0xcc, 0x05, 0x22, 0xc6, 0xf6, 0xe0, 0x5f, 0x68, 0x00, 0x8a, 0x3b, 0xe9, 0xba, 0x59, 0x74, 0xe4, 0x20, 0xc4, 0xc5, 0xcb, 0x56, 0xe6, 0xc5, 0x5d, 0xec, 0x0d, 0xe3, 0x47, 0xb1, 0x6c, 0xae, 0xf8, 0xbd, 0x33, 0xb7, 0x1b, 0x44, 0xc8, 0x35, 0x7d, 0x05, 0xb6, 0x32, 0x1d, 0x7b, 0xf4, 0x93, 0xd2, 0x58, 0x61, 0xdb, 0x48, 0x7b, 0xd6, 0x03, };
19482 static const ec_test_case ed25519_847_test_case = {
19483 	.name = "EDDSA25519-SHA512/wei25519 847",
19484 	.ec_str_p = &wei25519_str_params,
19485 	.priv_key = ed25519_847_test_vectors_priv_key,
19486 	.priv_key_len = sizeof(ed25519_847_test_vectors_priv_key),
19487 	.nn_random = NULL,
19488 	.hash_type = SHA512,
19489 	.msg = (const char *)ed25519_847_test_vectors_message,
19490 	.msglen = sizeof(ed25519_847_test_vectors_message),
19491 	.sig_type = EDDSA25519,
19492 	.exp_sig = ed25519_847_test_vectors_expected_sig,
19493 	.exp_siglen = sizeof(ed25519_847_test_vectors_expected_sig),
19494 	.adata = NULL,
19495 	.adata_len = 0
19496 };
19497 
19498 /************************************************/
19499 static const u8 ed25519_848_test_vectors_priv_key[] = {
19500 	0xcf, 0x33, 0xe7, 0x97, 0x4d, 0x8f, 0x0b, 0xf8, 0x99, 0xac, 0x5b, 0x83, 0x4c, 0x7c, 0xf9, 0x64, 0x79, 0xce, 0x1c, 0xfd, 0x45, 0x3a, 0xf0, 0x7f, 0x97, 0x05, 0x27, 0xf3, 0x6a, 0xa8, 0x5c, 0x1f, };
19501 static const u8 ed25519_848_test_vectors_message[] = {
19502 	0xe8, 0x13, 0x14, 0x4b, 0xd1, 0x16, 0xf6, 0xac, 0x36, 0x38, 0x92, 0x17, 0xb5, 0x17, 0x1a, 0x90, 0x2f, 0x06, 0xb7, 0xdd, 0x7b, 0x14, 0x4d, 0xf4, 0xf9, 0x09, 0x15, 0x53, 0xc7, 0xc7, 0x83, 0x57, 0x53, 0xa2, 0x96, 0xcb, 0xb0, 0xd7, 0xfa, 0xb9, 0x9c, 0xef, 0x77, 0xb6, 0x1f, 0x34, 0xa0, 0x4c, 0x8a, 0xf0, 0x4e, 0x7d, 0x5d, 0x1f, 0x96, 0x13, 0x02, 0xde, 0x89, 0xe2, 0x00, 0x5f, 0x29, 0x9f, 0x5a, 0x4a, 0xa1, 0x79, 0x24, 0x61, 0x7d, 0x00, 0x66, 0x93, 0x93, 0x77, 0x45, 0x53, 0x9c, 0x30, 0x48, 0xee, 0x36, 0xb8, 0xc2, 0x3a, 0xfe, 0xc0, 0xaf, 0x9f, 0xea, 0xa0, 0x06, 0x6c, 0x8a, 0xf8, 0xe0, 0xa7, 0xf0, 0x90, 0x93, 0x49, 0x82, 0x10, 0xf6, 0xd8, 0xdc, 0xc0, 0xaa, 0xad, 0xa5, 0x66, 0x87, 0x86, 0x91, 0x0f, 0xf7, 0xc5, 0xb3, 0x48, 0xd4, 0xcc, 0xd6, 0xee, 0xef, 0xfa, 0x3a, 0xcd, 0x18, 0x16, 0xd9, 0x01, 0x1a, 0x4c, 0x40, 0x25, 0xf6, 0xc2, 0xfd, 0x2c, 0x02, 0x0a, 0x10, 0x59, 0x36, 0x27, 0x52, 0x0d, 0x4d, 0xd9, 0x9e, 0x07, 0xc6, 0x2d, 0x2d, 0xbe, 0xbe, 0x84, 0x13, 0x9e, 0x1c, 0x7d, 0x86, 0x7c, 0x09, 0x35, 0x74, 0xfa, 0x60, 0x1e, 0x4e, 0xe3, 0x07, 0xac, 0x92, 0x6e, 0x5d, 0x36, 0xb6, 0x2d, 0x7e, 0xd8, 0x4a, 0x26, 0x15, 0x88, 0xb7, 0xe2, 0x88, 0x3c, 0x79, 0x26, 0x61, 0x2b, 0x4c, 0xc6, 0x7e, 0x2b, 0xb7, 0x25, 0x44, 0xa1, 0x0d, 0x6b, 0x49, 0x29, 0xc8, 0x8e, 0xf6, 0xc4, 0x7c, 0x26, 0x25, 0xd2, 0xf6, 0x81, 0x6b, 0xd7, 0x3c, 0x3b, 0xae, 0x89, 0xd2, 0xe0, 0xc8, 0x61, 0x71, 0xac, 0x4b, 0xd0, 0x80, 0xae, 0x55, 0x5d, 0x62, 0x74, 0x0d, 0x1d, 0x2a, 0x76, 0x1c, 0xed, 0x86, 0xdf, 0xc3, 0x28, 0xec, 0xc2, 0x7e, 0xe3, 0xdb, 0x6d, 0x40, 0x41, 0x08, 0xef, 0x4e, 0x0b, 0x64, 0x90, 0x62, 0x53, 0xb4, 0xc0, 0xa7, 0x71, 0xad, 0xef, 0xed, 0xc8, 0xa2, 0xc5, 0xb5, 0x3c, 0x42, 0x5a, 0x70, 0xcd, 0x6f, 0x63, 0x95, 0x6f, 0x7a, 0x0a, 0x61, 0x9f, 0xdf, 0xbf, 0xd0, 0x0a, 0xa0, 0x78, 0x41, 0x8e, 0xb4, 0x65, 0x2f, 0x8b, 0xc6, 0xf3, 0xc2, 0x53, 0xbe, 0xec, 0x98, 0x38, 0xb7, 0x7f, 0x9c, 0xbe, 0x2e, 0xf2, 0xb8, 0x05, 0x5c, 0x57, 0x73, 0x53, 0x9e, 0x35, 0x6b, 0xd8, 0x19, 0x26, 0x06, 0xec, 0x10, 0x1e, 0x3f, 0x60, 0x58, 0xb1, 0xdd, 0x08, 0xa6, 0x8f, 0xdb, 0xc5, 0x49, 0xdf, 0xe6, 0xb7, 0x72, 0x5d, 0xc2, 0x54, 0x9e, 0x8e, 0x3f, 0x90, 0xdc, 0x5b, 0xe3, 0xcc, 0xfb, 0x0a, 0x38, 0xba, 0xf9, 0x37, 0x7c, 0xb3, 0xf6, 0x50, 0x1d, 0x2e, 0x15, 0xcc, 0xb3, 0x55, 0x6a, 0x89, 0x5c, 0xcb, 0x23, 0xf0, 0xb6, 0xdf, 0x9f, 0xe5, 0x93, 0x11, 0xcf, 0xf5, 0x53, 0x74, 0xc3, 0xfb, 0x3a, 0x32, 0x98, 0x1c, 0xa2, 0x6a, 0xb4, 0x26, 0xf3, 0x66, 0x3d, 0x04, 0xe3, 0x16, 0x7e, 0x53, 0xa5, 0x37, 0xb7, 0x58, 0x9a, 0x9f, 0xb7, 0x36, 0x79, 0x09, 0x0a, 0x20, 0x55, 0x32, 0xc1, 0x32, 0x90, 0x66, 0x34, 0x33, 0x4a, 0x7e, 0x87, 0x49, 0x79, 0x3f, 0x8c, 0x59, 0x3f, 0x3f, 0xd6, 0x27, 0x8c, 0xe0, 0x05, 0x03, 0x83, 0x48, 0x7f, 0x3b, 0x24, 0x50, 0x67, 0xaf, 0x94, 0x88, 0x1a, 0xa1, 0xae, 0x96, 0x8d, 0x0c, 0xae, 0xba, 0x5f, 0xa5, 0xc7, 0xbe, 0x5f, 0x4e, 0x4b, 0x72, 0x57, 0x51, 0x86, 0x95, 0xd8, 0x9b, 0xcc, 0xde, 0xc5, 0x07, 0xb9, 0x67, 0xb4, 0xfd, 0x64, 0xb6, 0x89, 0x3b, 0x3e, 0xe7, 0x80, 0x3c, 0x1d, 0x36, 0xea, 0x8a, 0x02, 0xfc, 0x42, 0x6f, 0x9a, 0xfc, 0x8e, 0x9f, 0x24, 0x32, 0x15, 0x27, 0xec, 0x98, 0x44, 0xbc, 0x3c, 0x54, 0xa0, 0xf7, 0x66, 0x7e, 0x03, 0x43, 0x00, 0xbb, 0xb4, 0xfb, 0x02, 0x0f, 0x6d, 0x5b, 0xb9, 0x54, 0xe7, 0xb5, 0xa3, 0xa7, 0x06, 0xa4, 0x93, 0x9d, 0xb3, 0x3c, 0x15, 0x48, 0x92, 0x64, 0x34, 0x76, 0xa2, 0x91, 0xd4, 0x7d, 0xc1, 0xe6, 0xf7, 0x2c, 0xe9, 0x1d, 0x13, 0x6f, 0x11, 0xdb, 0x26, 0xb9, 0xc9, 0xba, 0x73, 0x6e, 0x40, 0xdf, 0x0a, 0x15, 0xc1, 0xa8, 0x91, 0x49, 0x99, 0x6b, 0x25, 0x1d, 0xd9, 0x88, 0xb3, 0x90, 0x04, 0xe6, 0xef, 0x41, 0xbd, 0xc0, 0x61, 0xdb, 0x58, 0x0b, 0x7b, 0x74, 0xde, 0x2a, 0x65, 0x18, 0x10, 0xbd, 0x89, 0x17, 0x53, 0xb9, 0x73, 0x86, 0xd7, 0xf8, 0xcb, 0xdb, 0xb6, 0xec, 0x38, 0x6f, 0xa2, 0xc3, 0x42, 0xf5, 0xef, 0x20, 0xe6, 0xe3, 0xa8, 0xbb, 0x4d, 0x51, 0x49, 0xa7, 0xd4, 0xde, 0x12, 0x24, 0xdf, 0xf1, 0xd1, 0x72, 0xc8, 0x75, 0x70, 0xf7, 0x76, 0xd5, 0xef, 0x45, 0x95, 0x9b, 0xe0, 0x93, 0x8a, 0xd7, 0x9f, 0x5d, 0x33, 0x95, 0xcb, 0x27, 0x21, 0x62, 0x71, 0x22, 0x88, 0x7b, 0xd7, 0xa8, 0x98, 0x3b, 0x64, 0x77, 0x97, 0xbd, 0x41, 0xd8, 0x82, 0x64, 0x1c, 0x81, 0x43, 0x1c, 0xe8, 0xd9, 0xb3, 0x06, 0x7a, 0xde, 0xc4, 0xcd, 0xe9, 0x26, 0xc5, 0x13, 0x13, 0xf0, 0xcf, 0x84, 0xc5, 0x29, 0x25, 0x62, 0xdd, 0x49, 0x08, 0x64, 0x2d, 0xd2, 0x45, 0x28, 0x84, 0x84, 0xc5, 0x56, 0x8a, 0x78, 0x7d, 0x0c, 0xed, 0x36, 0xa3, 0x52, 0xf0, 0x32, 0xda, 0x4f, 0x7e, 0x4d, 0xe0, 0x6b, 0x11, 0x47, 0x3f, 0x65, 0x0e, 0xec, 0x65, 0xdd, 0xa9, 0x96, 0x39, 0xaf, 0x2d, 0x42, 0xd8, 0x4e, 0xe2, 0x30, 0xf4, 0xf8, 0x36, 0x23, 0xd9, 0xc9, 0xaa, 0xa3, 0xb1, 0x6b, 0xda, 0x10, 0xdd, 0xaa, 0xd2, 0x5a, 0xf5, 0xc1, 0xc1, 0x0f, 0x81, 0xc8, 0xc5, 0x1c, 0x81, 0x1a, 0x3a, 0xa3, 0xe3, 0xdb, 0x58, 0xa7, 0x02, 0x5e, 0x43, 0x80, 0xe2, 0x85, 0xda, 0x47, 0x4a, 0x61, 0xba, 0x59, 0x17, 0x3f, 0xf0, 0x42, 0xa4, 0x6a, 0x79, 0xab, 0x18, 0x4b, 0x07, 0x01, 0x08, 0x41, 0x6f, 0x9d, 0x61, 0x58, 0xcf, 0x96, 0xd0, 0xe6, 0xdb, 0x44, 0x76, 0x14, 0xa0, 0xd9, 0x08, 0x9e, 0xbb, 0x6a, 0xee, 0x4e, 0xf1, 0x07, 0xbe, 0x45, 0x93, 0xd7, 0x1e, 0x79, 0xf6, 0x79, 0x86, 0x68, 0xa7, 0x40, 0xae, 0x4b, 0xac, 0x5a, 0xc7, 0x59, 0x4e, 0xcb, 0xd5, 0xdc, 0x82, 0xe7, 0xd0, 0xf9, 0xcb, };
19503 static const u8 ed25519_848_test_vectors_expected_sig[] = {
19504 	0x97, 0xa5, 0xb6, 0xd2, 0x68, 0xa5, 0xb4, 0x17, 0x5f, 0xb0, 0x6f, 0x1f, 0x37, 0xd0, 0xa6, 0x33, 0x51, 0x92, 0x96, 0xed, 0xc3, 0x00, 0x11, 0xc9, 0x54, 0xd8, 0xf0, 0xb9, 0xbb, 0xe2, 0x64, 0x18, 0x00, 0x39, 0x6c, 0x4b, 0x35, 0xd4, 0xb0, 0xd7, 0xd2, 0xa1, 0xd1, 0x7c, 0xbb, 0xeb, 0xdc, 0x55, 0xa8, 0x09, 0x46, 0x2d, 0x6c, 0xc1, 0x9a, 0x6f, 0xad, 0xbe, 0x1b, 0xd1, 0xba, 0xe8, 0x8a, 0x01, };
19505 static const ec_test_case ed25519_848_test_case = {
19506 	.name = "EDDSA25519-SHA512/wei25519 848",
19507 	.ec_str_p = &wei25519_str_params,
19508 	.priv_key = ed25519_848_test_vectors_priv_key,
19509 	.priv_key_len = sizeof(ed25519_848_test_vectors_priv_key),
19510 	.nn_random = NULL,
19511 	.hash_type = SHA512,
19512 	.msg = (const char *)ed25519_848_test_vectors_message,
19513 	.msglen = sizeof(ed25519_848_test_vectors_message),
19514 	.sig_type = EDDSA25519,
19515 	.exp_sig = ed25519_848_test_vectors_expected_sig,
19516 	.exp_siglen = sizeof(ed25519_848_test_vectors_expected_sig),
19517 	.adata = NULL,
19518 	.adata_len = 0
19519 };
19520 
19521 /************************************************/
19522 static const u8 ed25519_849_test_vectors_priv_key[] = {
19523 	0x51, 0xb1, 0xad, 0x0f, 0xfc, 0x21, 0x49, 0x7a, 0x33, 0xdb, 0xdb, 0x85, 0xea, 0x2b, 0xc1, 0xce, 0x3d, 0x0c, 0x2d, 0x95, 0xd9, 0x46, 0x1a, 0x39, 0x09, 0x73, 0xfe, 0xe3, 0x77, 0xfc, 0x75, 0xf4, };
19524 static const u8 ed25519_849_test_vectors_message[] = {
19525 	0x78, 0x82, 0xe8, 0x6e, 0xf3, 0x40, 0x2f, 0x6d, 0xbc, 0x65, 0xcc, 0xe8, 0x31, 0x5b, 0x39, 0x76, 0x5f, 0xaa, 0x4b, 0x1f, 0xc8, 0x76, 0xfa, 0xd5, 0xf8, 0x22, 0x0c, 0xb2, 0x2a, 0x7d, 0xf2, 0xe3, 0x58, 0x0e, 0xab, 0x3a, 0x7e, 0x8f, 0xa7, 0xfb, 0xb6, 0xb5, 0x94, 0x82, 0xca, 0x0e, 0x36, 0x4a, 0x13, 0x13, 0x96, 0xdf, 0x79, 0x2a, 0x32, 0x41, 0xa0, 0x60, 0xe4, 0x41, 0x43, 0xb6, 0x76, 0x74, 0x93, 0xc6, 0xbf, 0x75, 0xf1, 0x87, 0xa9, 0x64, 0x3a, 0xa1, 0x1e, 0x11, 0xeb, 0xa7, 0xb0, 0xa8, 0x0f, 0x0a, 0x68, 0xb9, 0xf1, 0xb7, 0x9f, 0x75, 0xb6, 0x6c, 0xc5, 0x9d, 0x9d, 0xa7, 0x79, 0x55, 0xfd, 0x7e, 0x87, 0x99, 0xf9, 0x9d, 0x6e, 0xb0, 0x8f, 0x90, 0xd3, 0x18, 0xf4, 0xef, 0xcb, 0xfe, 0x71, 0x15, 0x9b, 0x10, 0xa8, 0x3a, 0xa5, 0xfd, 0x69, 0xbb, 0x75, 0x33, 0x6f, 0x5d, 0xf2, 0x96, 0xea, 0x06, 0x0a, 0x42, 0x6c, 0x95, 0x45, 0xdf, 0x94, 0x0b, 0xc1, 0x45, 0x4e, 0xfc, 0x1f, 0x9d, 0xc9, 0x65, 0xf1, 0xf2, 0x2d, 0x94, 0x73, 0x03, 0xfb, 0x8e, 0xc1, 0x24, 0x07, 0xff, 0xf6, 0xb1, 0xdb, 0xe4, 0x7e, 0x34, 0x21, 0xc3, 0x17, 0x64, 0xfd, 0x90, 0xc8, 0x3a, 0xc7, 0x11, 0xd1, 0x99, 0x26, 0xe2, 0x29, 0xa0, 0x64, 0xc6, 0x1f, 0xe3, 0x67, 0x6a, 0xf3, 0x00, 0xa1, 0x71, 0x6f, 0xab, 0xe4, 0xe3, 0x84, 0x22, 0x64, 0xad, 0xb3, 0x2e, 0x0d, 0x9c, 0x9f, 0x5d, 0x4a, 0x65, 0xd0, 0xd7, 0xb5, 0xc3, 0x77, 0x0d, 0x73, 0x7e, 0xe1, 0x3c, 0xbe, 0xd2, 0x1d, 0x7a, 0x1d, 0xa3, 0x6a, 0xaf, 0x7e, 0xc0, 0xf3, 0x6f, 0xcc, 0x47, 0x6f, 0x65, 0x96, 0x81, 0xe5, 0x16, 0x0a, 0x5a, 0x1f, 0x49, 0xe7, 0x59, 0xb9, 0xd0, 0xfc, 0xd4, 0xfd, 0xb8, 0x54, 0xec, 0xcd, 0x99, 0x17, 0x2a, 0x47, 0xd2, 0xc4, 0xef, 0xbe, 0x0b, 0x37, 0x57, 0x63, 0x1d, 0xf1, 0xba, 0xe1, 0x75, 0xf0, 0xfa, 0x74, 0xdd, 0x04, 0x8b, 0xb6, 0xa5, 0xfe, 0xd8, 0x43, 0x02, 0x84, 0x34, 0x9d, 0xa3, 0xd6, 0x7d, 0xf2, 0xa6, 0xf7, 0xe8, 0x26, 0x9b, 0xc7, 0x9f, 0xb2, 0xc5, 0xd5, 0xed, 0x60, 0x84, 0xe9, 0x07, 0x6f, 0x45, 0x5a, 0xb6, 0x38, 0x91, 0x90, 0x46, 0x36, 0x9a, 0x44, 0x6d, 0x57, 0xfc, 0xad, 0xa7, 0x01, 0x1c, 0xc7, 0x71, 0xbf, 0x6d, 0x87, 0x4a, 0x8e, 0x5d, 0x23, 0xc6, 0x87, 0x74, 0x7d, 0xe4, 0x1d, 0xd0, 0x4b, 0xff, 0xc7, 0x17, 0xd6, 0x12, 0x81, 0x83, 0x84, 0x6e, 0xb5, 0x94, 0xb3, 0xcb, 0x1c, 0x1a, 0x8a, 0xa0, 0x4f, 0x0d, 0x7e, 0xba, 0x53, 0xaf, 0x39, 0xcb, 0x1d, 0x4e, 0x6f, 0xec, 0xf3, 0x11, 0x3b, 0xd8, 0x42, 0x24, 0x16, 0xf4, 0xc4, 0x40, 0x37, 0xae, 0xee, 0x9e, 0x0f, 0xdc, 0x51, 0x7c, 0x48, 0x73, 0x1f, 0xd0, 0x4e, 0xe9, 0xc9, 0x9f, 0x5d, 0xbc, 0xa3, 0xd5, 0x74, 0x50, 0x9d, 0x7b, 0xaf, 0x32, 0x88, 0xf2, 0xc2, 0x30, 0xa0, 0x2d, 0x17, 0x03, 0xbd, 0xb1, 0x61, 0x1c, 0xde, 0x2a, 0x76, 0x6d, 0xac, 0x19, 0x3d, 0xe1, 0x67, 0x44, 0x3d, 0x20, 0x09, 0x0d, 0xc3, 0x4d, 0x29, 0x27, 0x7a, 0x86, 0xb1, 0xe9, 0x98, 0xb2, 0x45, 0x64, 0x51, 0x17, 0xe5, 0x11, 0x1f, 0x12, 0xf1, 0x46, 0x06, 0xc5, 0x54, 0x46, 0xdd, 0x91, 0x2d, 0x34, 0x75, 0xc1, 0x98, 0x76, 0xe1, 0x9a, 0xc5, 0x36, 0xd3, 0x17, 0x87, 0x6c, 0x4b, 0x0a, 0x2e, 0x0f, 0x98, 0x61, 0x61, 0x29, 0xa5, 0x68, 0x37, 0x32, 0xa4, 0x23, 0x17, 0xc5, 0xe8, 0x09, 0xdc, 0xa9, 0x56, 0xb2, 0xab, 0xb4, 0x84, 0xad, 0xa8, 0x10, 0xa1, 0x5c, 0x81, 0xcc, 0x85, 0x62, 0xb5, 0x55, 0xda, 0x94, 0x58, 0xf9, 0xb4, 0x43, 0x38, 0x49, 0x02, 0x30, 0xc7, 0x40, 0x4f, 0x3d, 0x48, 0x61, 0x1f, 0x84, 0x12, 0x7e, 0x73, 0xe2, 0x77, 0xd8, 0x8c, 0x62, 0x21, 0x2d, 0x2a, 0x3a, 0x35, 0x1f, 0xc6, 0x76, 0x65, 0xb1, 0x8d, 0x77, 0x21, 0x62, 0x30, 0x63, 0x2c, 0xbc, 0x78, 0x12, 0x88, 0xe1, 0x5c, 0xeb, 0xf3, 0xec, 0x33, 0xa7, 0x20, 0x5e, 0xb2, 0x2b, 0x9a, 0xbe, 0x4c, 0xdb, 0xc7, 0xdd, 0xba, 0xaa, 0x53, 0x64, 0x08, 0x75, 0xeb, 0x76, 0x3f, 0x52, 0x2c, 0x36, 0xcf, 0xff, 0x2e, 0xb2, 0x3e, 0xe5, 0x86, 0xd7, 0x75, 0x28, 0x62, 0x59, 0xfa, 0x94, 0xa4, 0x4f, 0xa7, 0xec, 0x01, 0x50, 0x96, 0xa2, 0xa4, 0x46, 0xb6, 0x73, 0x2b, 0x80, 0x02, 0x42, 0x67, 0xfe, 0x3d, 0x5d, 0x39, 0xd1, 0xc4, 0x85, 0x09, 0xb3, 0xec, 0xaa, 0x2e, 0x24, 0xe5, 0x4d, 0xe4, 0xd6, 0x1c, 0x09, 0x7b, 0x70, 0xf7, 0x53, 0xb5, 0xaf, 0x9a, 0x6d, 0xb6, 0xf9, 0x75, 0xd2, 0x5f, 0x4f, 0x83, 0xd0, 0x6f, 0x87, 0x9e, 0x17, 0xef, 0x7c, 0x50, 0x9a, 0x54, 0x14, 0x44, 0xba, 0x3e, 0xb6, 0x86, 0x78, 0x38, 0x09, 0x0e, 0x22, 0xda, 0xfd, 0xbb, 0x0e, 0xb3, 0xb0, 0x56, 0x5b, 0xe1, 0x57, 0x9c, 0xee, 0xcd, 0xed, 0x20, 0xf5, 0x44, 0x25, 0x6c, 0x7c, 0x4e, 0xde, 0x3b, 0x62, 0x84, 0x3c, 0x65, 0xb0, 0x46, 0x6b, 0xe6, 0xb7, 0xe2, 0x73, 0x05, 0xb9, 0x63, 0xca, 0x91, 0x4e, 0x3b, 0x7d, 0x21, 0x73, 0x61, 0x18, 0xed, 0xb3, 0xd6, 0x58, 0xd9, 0xd7, 0x6f, 0x50, 0x9d, 0xb3, 0xb9, 0xca, 0x2e, 0xae, 0x28, 0x96, 0x4a, 0x4b, 0x3b, 0x3c, 0x38, 0x4a, 0x81, 0xa4, 0x89, 0x0e, 0xe9, 0x6f, 0xbe, 0x93, 0x4a, 0x6f, 0x2a, 0xec, 0x8e, 0xeb, 0x6c, 0xfe, 0x59, 0xac, 0x9d, 0x3b, 0xbc, 0x16, 0x46, 0xba, 0x32, 0xa1, 0x14, 0x2f, 0xee, 0x59, 0xfe, 0xd6, 0xfb, 0x7b, 0xbc, 0x04, 0x98, 0xcc, 0x27, 0xde, 0xad, 0x41, 0x3b, 0x7b, 0x43, 0x51, 0xec, 0x20, 0x63, 0x43, 0xc0, 0xab, 0x89, 0xfc, 0xf8, 0x72, 0x43, 0xb1, 0xab, 0x45, 0x0e, 0x58, 0xff, 0x11, 0xa1, 0x14, 0x0a, 0x38, 0x3f, 0x19, 0x6a, 0xa3, 0x97, 0x6c, 0xe1, 0x7c, 0xf3, 0x45, 0x30, 0xf0, 0x49, 0xa1, 0xde, 0x90, 0xe3, 0x17, 0x53, 0xcd, 0x85, 0xe7, 0xf1, 0xfd, 0x5c, 0xf2, 0x04, 0x26, 0xc9, 0x37, 0x9f, 0xeb, 0x8c, 0x31, 0xb4, 0xbf, 0xec, 0x35, 0xea, 0x5a, 0x78, 0x95, 0x3d, 0x75, 0xc5, 0xcf, };
19526 static const u8 ed25519_849_test_vectors_expected_sig[] = {
19527 	0xcf, 0xb6, 0x5b, 0x6f, 0xf0, 0x37, 0x7c, 0xef, 0x51, 0x1f, 0xd9, 0x7b, 0x90, 0xc3, 0xec, 0xb8, 0x08, 0x33, 0xf1, 0x42, 0xa7, 0xcf, 0x50, 0x22, 0xce, 0xd3, 0x0b, 0x3f, 0xb7, 0x86, 0x20, 0x86, 0xd0, 0x13, 0x39, 0xb8, 0x86, 0x6a, 0x23, 0x8c, 0xb0, 0x70, 0x27, 0x6e, 0x19, 0x44, 0xb5, 0xfe, 0x32, 0xcc, 0x40, 0x99, 0x47, 0xcb, 0x91, 0xde, 0xb1, 0x43, 0x2c, 0x29, 0x1b, 0x60, 0xfb, 0x0d, };
19528 static const ec_test_case ed25519_849_test_case = {
19529 	.name = "EDDSA25519-SHA512/wei25519 849",
19530 	.ec_str_p = &wei25519_str_params,
19531 	.priv_key = ed25519_849_test_vectors_priv_key,
19532 	.priv_key_len = sizeof(ed25519_849_test_vectors_priv_key),
19533 	.nn_random = NULL,
19534 	.hash_type = SHA512,
19535 	.msg = (const char *)ed25519_849_test_vectors_message,
19536 	.msglen = sizeof(ed25519_849_test_vectors_message),
19537 	.sig_type = EDDSA25519,
19538 	.exp_sig = ed25519_849_test_vectors_expected_sig,
19539 	.exp_siglen = sizeof(ed25519_849_test_vectors_expected_sig),
19540 	.adata = NULL,
19541 	.adata_len = 0
19542 };
19543 
19544 /************************************************/
19545 static const u8 ed25519_850_test_vectors_priv_key[] = {
19546 	0xfa, 0x2f, 0x46, 0x1c, 0xe8, 0xc7, 0x12, 0x62, 0x18, 0xc4, 0x7c, 0x91, 0x56, 0x9e, 0x87, 0x99, 0x79, 0x7c, 0x83, 0x36, 0x8f, 0xc8, 0x42, 0xb6, 0xe1, 0xc2, 0x2f, 0xd5, 0x2a, 0xec, 0x70, 0xbf, };
19547 static const u8 ed25519_850_test_vectors_message[] = {
19548 	0x79, 0x9b, 0x39, 0x80, 0x2a, 0x18, 0x27, 0xe4, 0x5c, 0x41, 0x12, 0xfe, 0xe0, 0x26, 0x03, 0x4c, 0x0e, 0x59, 0x8a, 0xff, 0xce, 0x2c, 0x55, 0x0c, 0x19, 0x3f, 0xee, 0x73, 0xf1, 0xdf, 0x8c, 0x30, 0xc8, 0xd3, 0x87, 0x33, 0x40, 0x08, 0x8c, 0xe8, 0x59, 0xde, 0x34, 0x71, 0xe9, 0xd0, 0x57, 0x68, 0x6c, 0x82, 0x9b, 0x54, 0x08, 0x79, 0x5e, 0x08, 0xb3, 0xdc, 0x7a, 0xa3, 0xb6, 0x37, 0xc7, 0xde, 0x9d, 0x21, 0x72, 0xad, 0x03, 0x33, 0xc1, 0xbe, 0xa8, 0x61, 0xa6, 0x23, 0x2f, 0x47, 0xf0, 0x5a, 0x10, 0xbf, 0x5d, 0xf8, 0x08, 0x15, 0xa2, 0x71, 0x25, 0x6e, 0x37, 0xe8, 0x08, 0xa0, 0xe6, 0x2f, 0x1f, 0x07, 0xd9, 0xe1, 0x0e, 0xbb, 0x94, 0x7d, 0x3e, 0xfa, 0xbf, 0x8a, 0x28, 0xfa, 0x9d, 0xcc, 0xd9, 0xa1, 0xd5, 0x99, 0xf5, 0xfd, 0x61, 0x65, 0x50, 0x8e, 0xfd, 0x67, 0x9c, 0xf3, 0x56, 0x01, 0x50, 0x58, 0xbf, 0x4b, 0x34, 0x11, 0x8f, 0x83, 0xaa, 0x3e, 0x5b, 0xc2, 0xce, 0x19, 0xec, 0xa8, 0x4f, 0x71, 0x83, 0x98, 0xad, 0xbc, 0x0a, 0x52, 0x76, 0xcf, 0x9d, 0x8c, 0xaf, 0xfc, 0x27, 0xe3, 0xe6, 0xab, 0xbe, 0x34, 0x5b, 0x0e, 0x9e, 0xcf, 0x89, 0xc6, 0x77, 0x1b, 0x0e, 0x75, 0xd4, 0x08, 0xba, 0x2f, 0xbb, 0x90, 0xfc, 0xfd, 0x70, 0xc5, 0x3f, 0x2e, 0x4d, 0x52, 0xba, 0x54, 0xd9, 0x78, 0x4c, 0xf7, 0x1c, 0x34, 0x9e, 0xf6, 0xf1, 0x4a, 0xe4, 0x97, 0x0d, 0xef, 0x6e, 0xfb, 0x5f, 0x30, 0xe9, 0x84, 0xd6, 0x01, 0x6a, 0x19, 0x6d, 0xea, 0xec, 0x7e, 0x04, 0xb4, 0x76, 0x19, 0xc4, 0x8b, 0xf4, 0x9d, 0xc0, 0x2f, 0x7f, 0xef, 0x3e, 0x13, 0xb7, 0x56, 0x17, 0x4e, 0x90, 0xd0, 0x5f, 0xcb, 0xdd, 0x5e, 0x13, 0xf0, 0xe4, 0x34, 0xef, 0xd5, 0x42, 0x1b, 0x09, 0x1d, 0x51, 0x79, 0x00, 0xed, 0x0d, 0x57, 0x85, 0x96, 0x88, 0x62, 0xb4, 0xbf, 0xe5, 0x09, 0x3a, 0xb6, 0x72, 0x17, 0x18, 0x0d, 0x97, 0x55, 0x4c, 0xcd, 0x9c, 0xc3, 0x14, 0x29, 0x32, 0x6c, 0xab, 0x42, 0xf3, 0xf8, 0x39, 0x80, 0x60, 0xc1, 0x9d, 0xb4, 0x88, 0xb5, 0xd1, 0xc8, 0x0b, 0x29, 0x09, 0x0a, 0xfd, 0x1c, 0x6b, 0xac, 0x36, 0x42, 0x26, 0x48, 0x00, 0x21, 0x1b, 0xc2, 0x78, 0xfc, 0xb9, 0x9d, 0xae, 0x9d, 0xbf, 0x49, 0xda, 0xf1, 0xb2, 0x4a, 0xb5, 0x69, 0xdc, 0xbb, 0x87, 0xd4, 0xd3, 0x54, 0x73, 0x35, 0xe3, 0x5d, 0xb9, 0x84, 0x00, 0xcd, 0xfc, 0xe6, 0x79, 0x06, 0x82, 0xe9, 0x36, 0x00, 0x22, 0x0e, 0xc4, 0x99, 0x24, 0x5f, 0xa4, 0xee, 0x15, 0xd8, 0x43, 0x83, 0x1b, 0x56, 0xcc, 0x26, 0x41, 0x80, 0x25, 0xbf, 0x87, 0x00, 0x16, 0x05, 0xc6, 0x69, 0x1c, 0xa6, 0xbd, 0x40, 0xa4, 0xe2, 0x48, 0xc3, 0x09, 0x80, 0x1b, 0x76, 0xa7, 0x95, 0xed, 0xe8, 0xad, 0x53, 0x08, 0xbc, 0xb6, 0xd1, 0x75, 0x4a, 0xb3, 0x37, 0x1f, 0x00, 0x03, 0xbb, 0x8c, 0x4e, 0x4e, 0x47, 0x19, 0x54, 0xe2, 0x8b, 0x1e, 0x98, 0x66, 0x37, 0x9f, 0x82, 0xe1, 0xfb, 0xac, 0xb7, 0x9d, 0x50, 0xad, 0xdd, 0xad, 0x5b, 0x97, 0x78, 0xb5, 0x58, 0xcd, 0xdb, 0xb0, 0x03, 0x8a, 0x5f, 0xf3, 0xd5, 0xc9, 0x55, 0x7b, 0x96, 0x5d, 0xe3, 0xa7, 0x08, 0x2c, 0x45, 0xa8, 0xec, 0xf3, 0xe7, 0x72, 0x1e, 0xb6, 0x90, 0xb6, 0xc7, 0x1f, 0x3d, 0x89, 0x75, 0xd5, 0x30, 0x0f, 0x67, 0xc4, 0xdc, 0x4a, 0x73, 0x68, 0x46, 0xe4, 0xcc, 0xd2, 0x6f, 0x93, 0x46, 0x3d, 0x5b, 0xc6, 0xf4, 0x6e, 0xdc, 0x48, 0x86, 0x64, 0xbe, 0x96, 0x96, 0xbe, 0x12, 0xb0, 0x2d, 0xd1, 0x04, 0xd1, 0x0c, 0xc6, 0xb1, 0xd8, 0x2e, 0x81, 0x17, 0x81, 0x12, 0x14, 0xa6, 0x48, 0x7d, 0x17, 0x36, 0x7e, 0x39, 0x5a, 0xde, 0x2e, 0xf6, 0xb2, 0x6a, 0x17, 0x83, 0xa7, 0xe2, 0xf2, 0x45, 0x21, 0x3b, 0xc0, 0x3a, 0x75, 0x5d, 0xf3, 0xee, 0x8e, 0xf9, 0xf1, 0xef, 0xf9, 0x72, 0xc6, 0x91, 0x90, 0x65, 0xcb, 0x7b, 0x75, 0x66, 0x78, 0xd4, 0xdd, 0xfd, 0x19, 0x3e, 0xdd, 0xc0, 0xb4, 0x2e, 0x86, 0x89, 0x61, 0x36, 0x43, 0x14, 0x6d, 0x74, 0x28, 0xca, 0x37, 0xbf, 0x31, 0xbd, 0xf1, 0x4e, 0x31, 0x86, 0x78, 0x58, 0xf3, 0x9d, 0x23, 0x23, 0x70, 0x9e, 0xb3, 0xb7, 0xd7, 0xf4, 0xe3, 0x97, 0x02, 0x23, 0x78, 0x42, 0x4b, 0xde, 0xe9, 0xbc, 0xb7, 0x4e, 0x9d, 0x5d, 0xfd, 0x37, 0x1f, 0x47, 0x34, 0x99, 0x8f, 0xc1, 0x8d, 0xf4, 0xcd, 0xfb, 0x4b, 0x5c, 0x21, 0xc2, 0xe5, 0x0f, 0x8d, 0x6c, 0x15, 0xbc, 0x14, 0xbf, 0x4f, 0xda, 0x6c, 0xeb, 0x9d, 0x80, 0x82, 0xca, 0xe4, 0x32, 0xdf, 0xc9, 0x8b, 0xfb, 0x3e, 0xcd, 0x16, 0xb8, 0xd7, 0x4f, 0x83, 0x0b, 0x64, 0x2b, 0x04, 0x28, 0x75, 0xe9, 0x21, 0xb0, 0x54, 0xbd, 0x1a, 0xaa, 0x58, 0x1f, 0x60, 0xd7, 0x18, 0xdf, 0x66, 0x9f, 0x56, 0xdc, 0x2f, 0x10, 0xd4, 0x78, 0x99, 0x77, 0x22, 0x16, 0x2e, 0x83, 0x94, 0x0e, 0x61, 0xa1, 0xb6, 0xe4, 0x2d, 0xf2, 0xa4, 0xa3, 0xa7, 0xcb, 0xcd, 0xd6, 0x11, 0xce, 0x96, 0xcb, 0xcf, 0xb5, 0xa9, 0x5c, 0xc4, 0x73, 0x23, 0x1c, 0xa1, 0x3c, 0x06, 0x09, 0xd0, 0xce, 0x1a, 0xe5, 0xdd, 0xb5, 0x46, 0x6d, 0x6d, 0x65, 0xee, 0xfa, 0xd9, 0xda, 0xf2, 0xa3, 0x69, 0x01, 0xbc, 0xc9, 0x45, 0x84, 0x7d, 0xa1, 0xed, 0x6e, 0x2e, 0x24, 0x0e, 0x84, 0x8b, 0x23, 0x1b, 0x7d, 0x0e, 0x1a, 0xcd, 0x06, 0x54, 0x3e, 0xc9, 0x3e, 0x76, 0x8e, 0x59, 0x98, 0x5d, 0x7e, 0x96, 0xc8, 0xc3, 0x1f, 0xcd, 0x12, 0x10, 0xf0, 0x96, 0x42, 0x71, 0xe2, 0x18, 0x77, 0x52, 0x5c, 0xb1, 0x34, 0xbc, 0x35, 0x36, 0x25, 0x7d, 0xbb, 0x11, 0xd3, 0x0a, 0x3c, 0x4f, 0x94, 0x9f, 0xb8, 0x2a, 0xe0, 0xc3, 0x1c, 0xcd, 0xfe, 0x41, 0x94, 0x32, 0x51, 0xe5, 0x0a, 0xa4, 0x35, 0x53, 0x92, 0xac, 0x30, 0x9e, 0xf6, 0x0f, 0xc1, 0x74, 0x32, 0xa2, 0xbe, 0x4b, 0xdb, 0x2f, 0xcb, 0x28, 0x60, 0x7c, 0xc4, 0x5a, 0x52, 0xb6, 0x00, 0x16, 0xbb, 0x1d, 0x2e, 0x23, 0x97, 0x2f, 0xf2, 0xc2, 0xa2, 0x47, 0xd7, 0x25, 0x58, 0x5b, 0x1e, 0xf2, 0xb1, 0x5f, };
19549 static const u8 ed25519_850_test_vectors_expected_sig[] = {
19550 	0x84, 0xf7, 0x9d, 0x9e, 0x8f, 0x30, 0xe5, 0xbb, 0x63, 0x62, 0x23, 0x97, 0x14, 0x55, 0x6b, 0x04, 0x73, 0x6f, 0xa4, 0x44, 0x65, 0xca, 0xba, 0xad, 0x23, 0xbe, 0xaf, 0x5a, 0x99, 0xfc, 0x45, 0x1a, 0xd4, 0xae, 0x5a, 0x18, 0xc7, 0xf6, 0xf9, 0x64, 0xfa, 0x41, 0x03, 0x92, 0x16, 0x01, 0x8e, 0xc5, 0xa2, 0xac, 0xca, 0xe1, 0x07, 0x5a, 0x6b, 0xb3, 0xa6, 0xec, 0xbc, 0x1f, 0xca, 0x02, 0xb9, 0x04, };
19551 static const ec_test_case ed25519_850_test_case = {
19552 	.name = "EDDSA25519-SHA512/wei25519 850",
19553 	.ec_str_p = &wei25519_str_params,
19554 	.priv_key = ed25519_850_test_vectors_priv_key,
19555 	.priv_key_len = sizeof(ed25519_850_test_vectors_priv_key),
19556 	.nn_random = NULL,
19557 	.hash_type = SHA512,
19558 	.msg = (const char *)ed25519_850_test_vectors_message,
19559 	.msglen = sizeof(ed25519_850_test_vectors_message),
19560 	.sig_type = EDDSA25519,
19561 	.exp_sig = ed25519_850_test_vectors_expected_sig,
19562 	.exp_siglen = sizeof(ed25519_850_test_vectors_expected_sig),
19563 	.adata = NULL,
19564 	.adata_len = 0
19565 };
19566 
19567 /************************************************/
19568 static const u8 ed25519_851_test_vectors_priv_key[] = {
19569 	0x1b, 0xe2, 0x94, 0x9d, 0x51, 0xe7, 0x20, 0x81, 0x75, 0x82, 0x62, 0x13, 0xee, 0x6a, 0xe3, 0xc0, 0x91, 0x17, 0x27, 0x42, 0xe8, 0x8c, 0xaa, 0x02, 0xed, 0x0f, 0x31, 0x3e, 0xcb, 0xe5, 0xd9, 0x10, };
19570 static const u8 ed25519_851_test_vectors_message[] = {
19571 	0x04, 0x5e, 0x2b, 0x0e, 0xc7, 0xbb, 0x20, 0x3a, 0x49, 0xbd, 0xcb, 0xa9, 0x41, 0xe2, 0xb7, 0x3c, 0x23, 0xc1, 0xfe, 0x59, 0xa1, 0x7d, 0x21, 0xa0, 0x12, 0x4e, 0xa2, 0x4b, 0x33, 0x7f, 0x92, 0xab, 0x9c, 0x92, 0x3a, 0x20, 0x57, 0x6b, 0x62, 0xd5, 0xd0, 0xf6, 0x24, 0xe7, 0x93, 0x2c, 0x11, 0x5b, 0x54, 0x74, 0xe0, 0xa4, 0x6a, 0x4d, 0xc9, 0xec, 0x51, 0xf6, 0xa0, 0xce, 0x8d, 0x54, 0x74, 0x4d, 0x1d, 0x52, 0x09, 0x33, 0x20, 0xe3, 0x9b, 0xe2, 0x03, 0xf7, 0x4a, 0x0f, 0x5d, 0xfa, 0xc5, 0x2c, 0xf0, 0xf9, 0x95, 0xc6, 0x6d, 0xf2, 0x91, 0x4b, 0x68, 0xad, 0x87, 0x1f, 0xbe, 0x81, 0x52, 0x5a, 0xd2, 0xd8, 0x8a, 0xc6, 0x99, 0x33, 0xa7, 0x5a, 0xea, 0x74, 0xac, 0xe4, 0xe3, 0x63, 0x43, 0xdd, 0xc0, 0x6d, 0x32, 0x08, 0xf1, 0x6d, 0x80, 0x5f, 0x5d, 0xd7, 0x86, 0xb4, 0xda, 0xaa, 0x16, 0x67, 0x48, 0xcf, 0xee, 0xc5, 0x71, 0x4c, 0x85, 0xc1, 0x04, 0x78, 0xb5, 0x97, 0xac, 0x7f, 0x6a, 0xe2, 0xc9, 0x88, 0x91, 0xe3, 0x8f, 0xd4, 0x14, 0xaa, 0x81, 0x1b, 0x76, 0x21, 0xd8, 0x05, 0xeb, 0x8f, 0xcc, 0x46, 0xcf, 0x4d, 0x56, 0x8a, 0x8a, 0x92, 0x58, 0x7c, 0xbb, 0xc1, 0xae, 0xcc, 0x12, 0xf1, 0x0d, 0x90, 0xac, 0x1e, 0x01, 0xae, 0x98, 0x6d, 0x14, 0xfe, 0x82, 0x95, 0x1c, 0x68, 0x2c, 0xea, 0xc8, 0xc9, 0x25, 0xfc, 0x66, 0x54, 0xd8, 0x38, 0xac, 0x93, 0x53, 0xae, 0x2f, 0x93, 0xf3, 0xc8, 0x8b, 0xf7, 0xb8, 0x2c, 0xbc, 0x43, 0xb1, 0xe4, 0x9e, 0x5c, 0xeb, 0xfb, 0x19, 0x49, 0xad, 0xe4, 0xb2, 0x2e, 0x4b, 0xcf, 0x1b, 0x40, 0x0c, 0x0a, 0x8f, 0xa8, 0xa6, 0xfe, 0x76, 0x70, 0xf6, 0x9f, 0xc3, 0xfa, 0xec, 0xd4, 0x80, 0x5b, 0x8c, 0x95, 0x4c, 0x01, 0xa5, 0x40, 0xd1, 0xa1, 0xe7, 0x88, 0x43, 0x6e, 0xae, 0x07, 0x3a, 0xe9, 0x56, 0xda, 0xe3, 0x17, 0x69, 0x05, 0xa8, 0xf0, 0xa3, 0xc6, 0x0f, 0xd9, 0x80, 0xda, 0xb4, 0x19, 0xd4, 0x1e, 0xc0, 0x6e, 0x52, 0x73, 0xfb, 0xb1, 0x3d, 0xb9, 0x38, 0x1f, 0x89, 0xb6, 0x63, 0xcc, 0xc4, 0xbd, 0x75, 0x3f, 0xd9, 0x0f, 0x14, 0xa7, 0x7b, 0x3d, 0x81, 0xc4, 0x5d, 0xd3, 0x56, 0x1c, 0xd1, 0xfa, 0x0e, 0x94, 0xd2, 0x34, 0xce, 0xf9, 0xd7, 0x85, 0x9a, 0x2e, 0xc9, 0x42, 0xbf, 0xc1, 0x88, 0x49, 0xd7, 0xf2, 0xad, 0xa3, 0xa5, 0xd6, 0x57, 0xbc, 0x19, 0x3d, 0x2e, 0x14, 0x91, 0x68, 0x2f, 0x16, 0x65, 0xa5, 0x34, 0xb1, 0xac, 0x20, 0x83, 0xb7, 0x38, 0xbe, 0x8f, 0x9e, 0x96, 0x3f, 0x59, 0x41, 0xed, 0x48, 0x3c, 0x6a, 0xcc, 0x82, 0xe9, 0x59, 0xb8, 0x1b, 0x8a, 0xf0, 0x2f, 0x47, 0x1c, 0x08, 0xf5, 0xf8, 0xb1, 0x2e, 0x10, 0xe0, 0x08, 0x19, 0x28, 0x98, 0xa4, 0x45, 0x02, 0x02, 0xaf, 0x73, 0x15, 0x92, 0xe7, 0x4e, 0xfe, 0x2a, 0x94, 0x8e, 0x51, 0xd0, 0x6e, 0x44, 0xde, 0x9b, 0x95, 0x6b, 0x7b, 0xc9, 0xa6, 0x9b, 0x6e, 0x74, 0x68, 0x7a, 0xb2, 0x06, 0xde, 0xc4, 0xd3, 0x5b, 0x31, 0x73, 0xfb, 0xc4, 0x38, 0x82, 0x9d, 0x50, 0x64, 0xbf, 0xbc, 0xf7, 0x43, 0xc1, 0xe2, 0xd4, 0x6f, 0x62, 0x8f, 0x2e, 0x51, 0xc6, 0x26, 0xd8, 0xe4, 0x16, 0xd7, 0xbe, 0x6e, 0x55, 0x5a, 0x24, 0x96, 0x91, 0xab, 0xb1, 0x67, 0xf1, 0xd9, 0x2f, 0x4f, 0xa3, 0x39, 0x2f, 0xde, 0x24, 0xe9, 0x93, 0xce, 0x7f, 0xf5, 0xc1, 0xb8, 0xe1, 0x57, 0x7a, 0x7c, 0x0e, 0x73, 0x02, 0x5c, 0xc6, 0xfc, 0xd7, 0x27, 0xa8, 0x2e, 0xf0, 0xc1, 0x29, 0xe9, 0x1e, 0x55, 0x33, 0xe0, 0x21, 0xa3, 0xcd, 0xbb, 0x99, 0xd5, 0x4b, 0xf7, 0xcd, 0xcd, 0x3f, 0xf1, 0x19, 0x15, 0x4f, 0x3f, 0xad, 0x92, 0x42, 0xb6, 0xed, 0x35, 0x0d, 0x10, 0x37, 0x2c, 0x97, 0x6f, 0xf3, 0xa4, 0x37, 0xd0, 0x97, 0x86, 0x7d, 0x9b, 0xfb, 0xa9, 0x1d, 0x84, 0xbd, 0xa5, 0x5a, 0x6b, 0xcd, 0x6e, 0x36, 0x41, 0xb2, 0x13, 0xa2, 0x18, 0xb3, 0x04, 0x15, 0x89, 0xc5, 0x5a, 0xfb, 0xb3, 0x44, 0xde, 0x6e, 0x97, 0xd8, 0xc3, 0x5b, 0x5c, 0x86, 0xcf, 0x3b, 0xe0, 0x63, 0xf9, 0x01, 0xff, 0xee, 0xa8, 0xcc, 0x91, 0x06, 0x99, 0x67, 0xd2, 0x34, 0x60, 0x35, 0xa9, 0x1e, 0xb5, 0x70, 0x6a, 0x3b, 0x53, 0xf6, 0xd1, 0xc3, 0x4d, 0x4d, 0x21, 0x16, 0x70, 0x6b, 0x65, 0xc2, 0x98, 0xec, 0x57, 0xde, 0x82, 0xab, 0xc4, 0x00, 0x3c, 0xe8, 0xcc, 0x5e, 0x0b, 0x88, 0xff, 0x71, 0x0d, 0xda, 0x1d, 0xce, 0xf6, 0xf1, 0x54, 0x27, 0x71, 0x06, 0xb8, 0x3e, 0xb4, 0x6c, 0x04, 0x5b, 0x08, 0x2d, 0x11, 0x3b, 0x36, 0x1d, 0x6a, 0x62, 0x58, 0x08, 0xc9, 0x13, 0x05, 0x84, 0xdf, 0xc9, 0x67, 0x07, 0xef, 0x89, 0x55, 0x90, 0x7b, 0xaa, 0x61, 0xcf, 0x88, 0xc6, 0x6b, 0x6d, 0x1f, 0x60, 0x58, 0x11, 0x19, 0xcb, 0x62, 0x17, 0xa8, 0x52, 0x15, 0x73, 0x36, 0x17, 0x8c, 0x68, 0x5e, 0x6e, 0xd4, 0x85, 0x26, 0xed, 0x5c, 0x4e, 0x3b, 0x79, 0x67, 0xd5, 0x1f, 0x99, 0xdf, 0x68, 0x76, 0xa1, 0xac, 0xfb, 0x84, 0x5c, 0x57, 0x1b, 0x89, 0x86, 0x56, 0xe5, 0xe3, 0xbc, 0x73, 0x98, 0x0b, 0x9b, 0xed, 0x11, 0x98, 0x86, 0x63, 0x59, 0xc9, 0xe9, 0xb1, 0xef, 0xa9, 0x15, 0xf8, 0x10, 0xd1, 0xef, 0x8a, 0xd6, 0xcb, 0x3f, 0xc2, 0x1f, 0xbf, 0xe6, 0x54, 0x30, 0x6d, 0xe6, 0xca, 0x13, 0xa3, 0xa6, 0xa4, 0x8e, 0x7a, 0x13, 0xed, 0x87, 0x46, 0xac, 0xbd, 0x07, 0xf4, 0x8e, 0xb0, 0x0c, 0x36, 0x37, 0x4b, 0x1e, 0xb4, 0xf3, 0xf0, 0x1c, 0x19, 0xe2, 0xe8, 0xd3, 0x7e, 0x9f, 0xc0, 0x64, 0xb3, 0x3c, 0x0d, 0x66, 0x9b, 0xba, 0x55, 0x4d, 0xdc, 0x68, 0x21, 0xa7, 0x7b, 0x40, 0x89, 0xca, 0xbd, 0xca, 0xfc, 0x97, 0xf6, 0x0e, 0x60, 0x50, 0xbc, 0xa4, 0x44, 0xae, 0x8c, 0xfc, 0x44, 0xd9, 0x3c, 0x40, 0xef, 0x53, 0x18, 0xbe, 0xe6, 0xf8, 0xcf, 0x0c, 0x06, 0x7b, 0x85, 0xcd, 0xdd, 0xc4, 0x59, 0x74, 0xa4, 0xea, 0xcf, 0xc3, 0xef, 0x51, 0x31, 0x5b, 0xa0, 0xf3, 0xf6, 0x29, 0x68, 0xc7, 0x00, 0x3a, 0x7f, 0xf4, 0x44, 0x61, 0x24, 0x00, 0xb1, 0x59, };
19572 static const u8 ed25519_851_test_vectors_expected_sig[] = {
19573 	0xf4, 0x1f, 0x2e, 0xf6, 0x59, 0x5f, 0x17, 0x66, 0x0b, 0xb2, 0xfe, 0x93, 0xe5, 0x1f, 0xc6, 0xfa, 0x9c, 0x31, 0xda, 0xdc, 0x9d, 0xb9, 0x0c, 0x3f, 0x46, 0x60, 0x7a, 0x7f, 0xb4, 0x80, 0x0b, 0xb7, 0x5a, 0xd9, 0x63, 0x25, 0xdc, 0x7e, 0xab, 0x78, 0x24, 0x72, 0xb0, 0x4d, 0xa6, 0xd8, 0xe6, 0xfe, 0x64, 0x65, 0x5d, 0xea, 0x55, 0x1f, 0xbd, 0x50, 0x49, 0xe8, 0x76, 0xce, 0x5a, 0x40, 0x5f, 0x02, };
19574 static const ec_test_case ed25519_851_test_case = {
19575 	.name = "EDDSA25519-SHA512/wei25519 851",
19576 	.ec_str_p = &wei25519_str_params,
19577 	.priv_key = ed25519_851_test_vectors_priv_key,
19578 	.priv_key_len = sizeof(ed25519_851_test_vectors_priv_key),
19579 	.nn_random = NULL,
19580 	.hash_type = SHA512,
19581 	.msg = (const char *)ed25519_851_test_vectors_message,
19582 	.msglen = sizeof(ed25519_851_test_vectors_message),
19583 	.sig_type = EDDSA25519,
19584 	.exp_sig = ed25519_851_test_vectors_expected_sig,
19585 	.exp_siglen = sizeof(ed25519_851_test_vectors_expected_sig),
19586 	.adata = NULL,
19587 	.adata_len = 0
19588 };
19589 
19590 /************************************************/
19591 static const u8 ed25519_852_test_vectors_priv_key[] = {
19592 	0x3b, 0x6b, 0xa6, 0xd5, 0xcc, 0x9c, 0xd6, 0x24, 0x1d, 0x8b, 0x00, 0x97, 0xa3, 0x72, 0x2e, 0x4d, 0x06, 0x6f, 0xea, 0x3d, 0x56, 0x0a, 0xea, 0xb4, 0x67, 0x3e, 0x86, 0xf1, 0xf8, 0xec, 0x60, 0x26, };
19593 static const u8 ed25519_852_test_vectors_message[] = {
19594 	0x36, 0xde, 0x93, 0x0c, 0xc8, 0xe1, 0x88, 0x60, 0x83, 0x6a, 0x0c, 0x82, 0x9d, 0x89, 0xe9, 0x63, 0xa5, 0x8b, 0xdd, 0x9c, 0x6b, 0x6e, 0xf5, 0xbc, 0x61, 0xf7, 0x59, 0x92, 0xd2, 0x07, 0x52, 0x42, 0xdc, 0xa2, 0x3e, 0x28, 0xde, 0x20, 0x5a, 0x33, 0xdf, 0xea, 0x86, 0x1f, 0xc4, 0x4a, 0x32, 0x62, 0x8e, 0x8e, 0x7c, 0xdd, 0x3e, 0xd7, 0xff, 0x49, 0xea, 0x6a, 0x70, 0x97, 0xe0, 0x09, 0x0c, 0xfd, 0x9f, 0xf5, 0xec, 0xab, 0x1d, 0xe8, 0x22, 0xfc, 0x0a, 0x4c, 0x37, 0x76, 0xdd, 0x56, 0xc1, 0x91, 0x92, 0x04, 0x51, 0x6a, 0x94, 0xce, 0xc5, 0x63, 0x8d, 0xa1, 0xd9, 0x9e, 0x52, 0xb8, 0x66, 0xf5, 0xec, 0x41, 0x62, 0xa9, 0x12, 0xed, 0xb4, 0x1c, 0x1e, 0x92, 0xed, 0xfc, 0x35, 0x3f, 0x67, 0x05, 0xe1, 0xc1, 0x2c, 0xd4, 0x1c, 0xb6, 0x2d, 0xed, 0x4a, 0xd8, 0x15, 0x79, 0x40, 0x05, 0x9b, 0xfc, 0xf5, 0x07, 0x19, 0xd3, 0xf2, 0xad, 0x00, 0x84, 0x85, 0x40, 0xce, 0x89, 0xf3, 0xf9, 0xaf, 0xa6, 0x10, 0xcc, 0xba, 0x5e, 0xcc, 0x37, 0xe3, 0xe2, 0xc1, 0x53, 0x4f, 0xcb, 0x38, 0xfc, 0xd3, 0x9a, 0x2d, 0x14, 0xd5, 0xb5, 0xda, 0x6f, 0xea, 0x24, 0xe0, 0x06, 0x65, 0x4e, 0x30, 0x90, 0x47, 0xa2, 0x9c, 0xad, 0x0a, 0xe4, 0xda, 0x8e, 0x70, 0x8f, 0x97, 0xa1, 0x8c, 0xad, 0x5f, 0xbd, 0xc9, 0xac, 0x84, 0x40, 0x0c, 0x53, 0x2c, 0xed, 0x54, 0x88, 0x86, 0x53, 0x9e, 0xdd, 0x6c, 0x54, 0x10, 0x74, 0x79, 0x0a, 0xe4, 0x50, 0x2f, 0xdf, 0xe9, 0xf3, 0x27, 0x3a, 0x87, 0x6a, 0x21, 0x86, 0x23, 0xa2, 0x57, 0x06, 0xa1, 0x52, 0x5e, 0x67, 0xe5, 0x7a, 0x16, 0xd2, 0x2c, 0x21, 0xb6, 0xa4, 0x5e, 0x23, 0x84, 0xe2, 0x87, 0xac, 0x44, 0x52, 0xae, 0xc4, 0xe0, 0x63, 0x05, 0x6b, 0x4c, 0x17, 0x8a, 0xb0, 0xe5, 0xb2, 0xa5, 0xba, 0xd3, 0xf4, 0x63, 0xc4, 0x72, 0xc4, 0xea, 0x1f, 0x9c, 0x1a, 0x66, 0xe5, 0x27, 0x04, 0x73, 0xa8, 0x35, 0x09, 0x4e, 0x8f, 0x0e, 0xef, 0x68, 0x0c, 0xd7, 0xb2, 0x0d, 0x0e, 0x70, 0xf4, 0xd6, 0xc9, 0x58, 0xfe, 0xe0, 0x8a, 0x93, 0x60, 0xaa, 0x60, 0x66, 0x88, 0x8f, 0x4d, 0xd7, 0xce, 0x5e, 0xc2, 0x22, 0x59, 0xfa, 0x0b, 0x53, 0xfe, 0x92, 0x71, 0xc0, 0x83, 0xc6, 0xfc, 0xdb, 0x72, 0x83, 0xb0, 0x90, 0x61, 0x08, 0x8c, 0x52, 0xf7, 0x1b, 0xfd, 0xd2, 0x77, 0x7c, 0xe0, 0x80, 0x1f, 0x41, 0xa6, 0xc4, 0xce, 0x90, 0xef, 0x13, 0x1d, 0xe1, 0xe1, 0x83, 0xcb, 0x89, 0x49, 0xce, 0x32, 0x3c, 0x9e, 0xb1, 0x3a, 0x4b, 0x0c, 0xac, 0xf9, 0x9d, 0xef, 0xdf, 0xdb, 0x68, 0xd5, 0xed, 0x1f, 0x68, 0x91, 0xb4, 0x8e, 0x21, 0x04, 0x76, 0x68, 0xd6, 0x9d, 0xe8, 0xa8, 0x0f, 0x8e, 0x56, 0x34, 0xde, 0xd0, 0x87, 0x36, 0xa4, 0xfb, 0x54, 0x10, 0xcd, 0xea, 0x9c, 0x72, 0x59, 0x6e, 0x36, 0xdf, 0x68, 0x41, 0xf2, 0xee, 0xa4, 0x68, 0x50, 0xc8, 0x74, 0x73, 0xc8, 0x95, 0x54, 0x02, 0x05, 0xb0, 0x92, 0x19, 0x60, 0xff, 0xa5, 0xd9, 0xd8, 0xff, 0xb8, 0xe2, 0x9c, 0xde, 0x96, 0xa3, 0xed, 0xe0, 0x15, 0xac, 0xbc, 0x26, 0x97, 0x40, 0x04, 0xd3, 0xe4, 0x38, 0xa8, 0x5b, 0x2e, 0x33, 0x85, 0xf6, 0x4d, 0x18, 0x14, 0x00, 0x39, 0x41, 0xff, 0xd3, 0x63, 0x99, 0x2d, 0x39, 0x40, 0xc6, 0xe6, 0xd8, 0x1f, 0xf8, 0xe4, 0x5f, 0xce, 0xd6, 0xd3, 0x6c, 0xe1, 0x98, 0xd8, 0xcc, 0xbe, 0xfe, 0xe4, 0x32, 0xa7, 0x7d, 0x8f, 0xca, 0xdd, 0x73, 0xfb, 0x79, 0x9f, 0x6b, 0xaf, 0xef, 0xb5, 0x1a, 0x2d, 0xa7, 0x98, 0x72, 0x1c, 0x3d, 0x46, 0x5b, 0x16, 0x3e, 0xf1, 0x3e, 0x6e, 0xcc, 0x65, 0xe6, 0x03, 0xb2, 0x89, 0x3e, 0xe4, 0xcc, 0x9e, 0x1c, 0x6d, 0x1d, 0xe7, 0xa6, 0x5c, 0xab, 0x5c, 0xbd, 0xf5, 0x36, 0x85, 0x5e, 0x28, 0x8c, 0x3c, 0xcd, 0xa8, 0xd2, 0xfa, 0x3c, 0xe1, 0x0c, 0xf4, 0x93, 0x58, 0xa2, 0xef, 0x4e, 0xf0, 0x76, 0xe5, 0xbf, 0xa9, 0x1b, 0xbc, 0xf3, 0xd9, 0x66, 0xdf, 0xa3, 0xdc, 0x6e, 0x71, 0x2f, 0x19, 0x56, 0xd4, 0xe5, 0x8a, 0xa3, 0x6e, 0x71, 0x2d, 0xd3, 0x34, 0x71, 0x69, 0xb1, 0x9c, 0x8d, 0x44, 0xbe, 0xc5, 0xbc, 0xb7, 0x30, 0x77, 0x8f, 0xcc, 0xcc, 0x58, 0x9e, 0xd5, 0xd3, 0x50, 0xd4, 0x4c, 0x17, 0xbd, 0xe2, 0xee, 0xbb, 0x6f, 0x5e, 0xc5, 0x9f, 0xb2, 0x40, 0xd6, 0x7d, 0x81, 0xae, 0xa9, 0x26, 0x7f, 0x34, 0xf1, 0x5e, 0xee, 0x2d, 0xe3, 0xf4, 0xfa, 0x67, 0x39, 0x14, 0x79, 0xbd, 0xbb, 0x43, 0x0f, 0x48, 0x43, 0x70, 0xfb, 0x0e, 0x08, 0x95, 0xb9, 0xae, 0x06, 0x5b, 0xbd, 0xd4, 0x3e, 0x23, 0x0c, 0x62, 0xac, 0x07, 0x18, 0x4e, 0x8b, 0x06, 0xb2, 0x4b, 0x8b, 0x97, 0xec, 0x02, 0xdc, 0x6f, 0x37, 0xef, 0x61, 0x64, 0x1e, 0xd5, 0x6e, 0x3f, 0x5e, 0xb8, 0xd2, 0x08, 0x0b, 0x51, 0x44, 0xef, 0x76, 0x0b, 0x51, 0x87, 0x52, 0xe1, 0x97, 0x54, 0x79, 0x2e, 0x19, 0x34, 0x3a, 0x38, 0x55, 0xe1, 0xe2, 0xf7, 0xa7, 0xdc, 0x62, 0x35, 0x17, 0xee, 0xd2, 0xf5, 0xd2, 0x65, 0x48, 0xa6, 0x8e, 0xb8, 0xff, 0xd7, 0xbf, 0x70, 0xf7, 0x8f, 0xd1, 0x86, 0xdb, 0x63, 0x49, 0x28, 0xbb, 0x98, 0x13, 0x8f, 0x2b, 0x8f, 0xe8, 0x44, 0x81, 0xcc, 0x53, 0xf5, 0xaa, 0x35, 0xe2, 0x66, 0x6c, 0x63, 0x25, 0xe1, 0xd2, 0xb8, 0xac, 0x5e, 0x2d, 0xf2, 0x93, 0x5b, 0x7f, 0x64, 0x13, 0x95, 0x2d, 0x10, 0xd6, 0x07, 0x6f, 0xfc, 0x75, 0xbb, 0x6a, 0xf6, 0x3b, 0x29, 0xb0, 0xb9, 0x66, 0x3b, 0xec, 0x37, 0x24, 0x7b, 0x66, 0xb5, 0x08, 0xdd, 0xe4, 0x1f, 0x2f, 0x11, 0xb8, 0x43, 0x33, 0x55, 0x9d, 0xfa, 0xc7, 0x3f, 0x76, 0x1b, 0xcd, 0xa8, 0x4a, 0x48, 0xd2, 0x66, 0x07, 0x3a, 0xef, 0x16, 0x38, 0x46, 0x08, 0x49, 0xe7, 0xa1, 0x72, 0x06, 0xa2, 0x5f, 0x68, 0x00, 0x77, 0x0b, 0x91, 0x4c, 0xc0, 0x26, 0xba, 0xf9, 0xe3, 0x25, 0x59, 0x14, 0xe1, 0x32, 0x58, 0x44, 0x1c, 0xef, 0x35, 0xad, 0x1d, 0x66, 0x83, 0x3e, 0x98, 0x7e, 0xbe, 0x44, 0x31, 0xe6, 0xa6, 0xbb, 0x22, 0x2c, 0xbb, 0x65, 0xaf, };
19595 static const u8 ed25519_852_test_vectors_expected_sig[] = {
19596 	0x78, 0x8c, 0x9f, 0x45, 0x54, 0xdd, 0xba, 0x5c, 0x7d, 0x64, 0xba, 0x75, 0x9e, 0xc4, 0x56, 0x94, 0xec, 0x79, 0xfb, 0x85, 0xe8, 0x23, 0x68, 0xa0, 0x74, 0xbd, 0xd8, 0xdf, 0x34, 0x42, 0x13, 0xa5, 0x6d, 0xd0, 0x9f, 0x33, 0x4c, 0xd9, 0xac, 0xb9, 0x41, 0xbe, 0x28, 0x3d, 0x98, 0xc4, 0xb1, 0x5d, 0xcf, 0xec, 0xd1, 0x4e, 0x93, 0xf6, 0xa2, 0xe3, 0xcb, 0x0c, 0x1a, 0xa2, 0xde, 0xe7, 0xd9, 0x0b, };
19597 static const ec_test_case ed25519_852_test_case = {
19598 	.name = "EDDSA25519-SHA512/wei25519 852",
19599 	.ec_str_p = &wei25519_str_params,
19600 	.priv_key = ed25519_852_test_vectors_priv_key,
19601 	.priv_key_len = sizeof(ed25519_852_test_vectors_priv_key),
19602 	.nn_random = NULL,
19603 	.hash_type = SHA512,
19604 	.msg = (const char *)ed25519_852_test_vectors_message,
19605 	.msglen = sizeof(ed25519_852_test_vectors_message),
19606 	.sig_type = EDDSA25519,
19607 	.exp_sig = ed25519_852_test_vectors_expected_sig,
19608 	.exp_siglen = sizeof(ed25519_852_test_vectors_expected_sig),
19609 	.adata = NULL,
19610 	.adata_len = 0
19611 };
19612 
19613 /************************************************/
19614 static const u8 ed25519_853_test_vectors_priv_key[] = {
19615 	0xdd, 0x99, 0x87, 0xb1, 0x8f, 0x9a, 0x92, 0x2c, 0x0f, 0x6f, 0xea, 0x18, 0xeb, 0x00, 0xb8, 0x96, 0xc7, 0xa2, 0xd3, 0x09, 0x3d, 0xb3, 0xea, 0x31, 0xd3, 0x84, 0x21, 0xda, 0x0d, 0xe5, 0x12, 0x31, };
19616 static const u8 ed25519_853_test_vectors_message[] = {
19617 	0x48, 0x16, 0x2f, 0xdc, 0x3a, 0xbf, 0x73, 0x19, 0xc6, 0xca, 0xab, 0x60, 0xcb, 0x8d, 0x05, 0x20, 0x87, 0x5c, 0xb4, 0xee, 0x8a, 0x07, 0x09, 0x27, 0x83, 0x16, 0x7d, 0x47, 0x33, 0xff, 0xe5, 0x20, 0x4e, 0x5f, 0xeb, 0xe7, 0xd2, 0x91, 0xe9, 0x53, 0x6b, 0xde, 0xa3, 0xdf, 0x06, 0x37, 0x15, 0x9a, 0x65, 0x3e, 0x09, 0xfd, 0x99, 0xaf, 0x66, 0x1d, 0x83, 0x00, 0xae, 0x74, 0x1a, 0x3e, 0x91, 0xa8, 0xbd, 0x85, 0xea, 0xd0, 0x5d, 0xc7, 0xd9, 0xe6, 0xf9, 0x29, 0x32, 0x33, 0x16, 0xed, 0xc4, 0xca, 0x62, 0x4e, 0xa7, 0x81, 0x8b, 0x25, 0xbd, 0xc0, 0x61, 0xf7, 0x14, 0x92, 0xfd, 0x22, 0xd4, 0x65, 0xab, 0x22, 0x6f, 0xd9, 0xa1, 0x0d, 0x8b, 0xab, 0xfc, 0x07, 0x4c, 0x68, 0x6c, 0x43, 0x6c, 0x24, 0xa3, 0xa5, 0x3f, 0x8f, 0xf3, 0x89, 0xce, 0x9c, 0xa1, 0xdb, 0xc8, 0x90, 0x74, 0x45, 0x88, 0x92, 0x41, 0xf8, 0xfd, 0xa3, 0xa7, 0xa3, 0xf5, 0x02, 0x4f, 0xa8, 0xcb, 0x0d, 0x04, 0x4b, 0xda, 0xf6, 0x71, 0x6d, 0x98, 0x3a, 0x6d, 0x83, 0x98, 0x14, 0xff, 0xe7, 0x0d, 0xdc, 0x55, 0xbb, 0xba, 0x11, 0xac, 0x97, 0x88, 0x7b, 0xdb, 0x4d, 0xad, 0xa9, 0x65, 0x65, 0xbb, 0x07, 0x5d, 0x5f, 0xc1, 0xd3, 0xc5, 0x24, 0x4b, 0x9f, 0xff, 0x77, 0xde, 0x58, 0x72, 0x9a, 0x05, 0x9a, 0x91, 0x1f, 0xb3, 0xe0, 0xeb, 0x16, 0x4f, 0xb8, 0x42, 0x9e, 0x26, 0x56, 0x85, 0xd1, 0x4a, 0x63, 0x23, 0x30, 0x46, 0xd2, 0x0e, 0xcf, 0x28, 0x9c, 0x55, 0x72, 0x31, 0x69, 0xa9, 0xd6, 0x3d, 0xda, 0x0d, 0x52, 0x55, 0x15, 0x3d, 0x9e, 0xf4, 0xa6, 0x1b, 0x92, 0x12, 0xf4, 0xb8, 0x20, 0x69, 0x7a, 0xe7, 0xc3, 0x08, 0xcf, 0xab, 0x40, 0x3b, 0x2c, 0x34, 0x31, 0x90, 0x62, 0x26, 0xe4, 0x5c, 0xe2, 0x19, 0x20, 0xdf, 0x52, 0x01, 0x60, 0x9d, 0xaf, 0x83, 0x0f, 0x28, 0xad, 0x79, 0x60, 0x05, 0xa9, 0xbd, 0x8e, 0xba, 0x62, 0x0c, 0xf8, 0x39, 0xc3, 0xba, 0x22, 0x7b, 0x96, 0x3c, 0x7b, 0xd0, 0x91, 0x48, 0x22, 0xdf, 0x2c, 0xa0, 0x3c, 0x22, 0x54, 0xd0, 0xcb, 0x8a, 0xca, 0xe0, 0xd5, 0x9e, 0x4c, 0x3e, 0x0e, 0xc2, 0x15, 0xc8, 0x36, 0x96, 0x9d, 0xcd, 0x1d, 0x49, 0xbf, 0xe1, 0x97, 0xe2, 0xf3, 0xee, 0xa3, 0xfa, 0x8a, 0x37, 0x3b, 0x55, 0x8d, 0x0f, 0xb9, 0x06, 0x3c, 0xf1, 0x56, 0x8e, 0x73, 0x9a, 0xad, 0x8f, 0x09, 0xfb, 0x43, 0x7c, 0xaf, 0xb5, 0xa2, 0x72, 0x37, 0x5f, 0x43, 0x60, 0x64, 0xee, 0xe1, 0x1b, 0xd9, 0x03, 0xd3, 0xaa, 0xea, 0xb4, 0xe3, 0xfd, 0xcd, 0x36, 0xbd, 0x20, 0x76, 0xee, 0xa1, 0x79, 0xa4, 0xf0, 0xd4, 0xfb, 0xc8, 0xdf, 0x42, 0xbf, 0x26, 0x60, 0xf0, 0x8d, 0xe7, 0xd5, 0xc6, 0x39, 0x7c, 0xae, 0x10, 0xb7, 0x27, 0x74, 0x58, 0xaa, 0x6c, 0xfa, 0x01, 0xe8, 0xa6, 0x73, 0x7e, 0xb1, 0x26, 0x22, 0x78, 0x56, 0x64, 0x66, 0x91, 0x68, 0x1c, 0x10, 0x6a, 0x15, 0x7a, 0x26, 0xae, 0xd2, 0x1b, 0x1a, 0xaf, 0x0e, 0xd2, 0x76, 0x64, 0x21, 0xcf, 0xc3, 0xd1, 0xc7, 0xdd, 0xfb, 0x72, 0xfc, 0xdf, 0x4b, 0x8b, 0x49, 0x0f, 0xc0, 0x9a, 0xce, 0x49, 0xae, 0xdd, 0x77, 0x12, 0xb2, 0x1a, 0xc5, 0x6f, 0x86, 0x01, 0xf6, 0x25, 0x56, 0x3c, 0x78, 0x43, 0x06, 0xf3, 0xb9, 0x17, 0x4a, 0xdd, 0xf7, 0x64, 0xe0, 0x51, 0xaa, 0xdf, 0xe1, 0x28, 0x31, 0xaf, 0x96, 0x69, 0xe6, 0x2c, 0xab, 0x12, 0x1c, 0x74, 0xdf, 0x34, 0x37, 0x24, 0x42, 0x9d, 0x6c, 0x26, 0x66, 0x02, 0x71, 0xc3, 0x2f, 0x40, 0xcf, 0x7c, 0x2d, 0x08, 0xbd, 0x0a, 0xfc, 0xc7, 0x28, 0xde, 0xf4, 0x13, 0x5d, 0x4e, 0xb5, 0x5b, 0x6a, 0x3e, 0x76, 0x29, 0xd8, 0x06, 0x86, 0x4a, 0x85, 0xb3, 0x6a, 0x32, 0xb9, 0xb2, 0x1a, 0xc0, 0xd3, 0x96, 0x80, 0xa2, 0xae, 0x4e, 0xc4, 0x18, 0x97, 0x09, 0x17, 0x8e, 0x34, 0x94, 0x97, 0xf3, 0x93, 0x99, 0xfb, 0xc7, 0x8b, 0x3c, 0x6c, 0xfa, 0xca, 0x6e, 0xde, 0xa7, 0xc3, 0x3d, 0xda, 0x3c, 0xc1, 0x1e, 0x43, 0x84, 0xf1, 0x58, 0x3d, 0x6c, 0xfc, 0x6b, 0x58, 0xf4, 0xea, 0xa2, 0xbc, 0x56, 0xab, 0xa4, 0x2f, 0x73, 0x8a, 0x42, 0x9b, 0x93, 0x58, 0x08, 0x50, 0xde, 0xe3, 0xfd, 0x25, 0x39, 0x94, 0xf8, 0xb0, 0xfa, 0x66, 0xee, 0x8e, 0x27, 0x3d, 0xec, 0xab, 0xd5, 0x32, 0x09, 0x5f, 0xb0, 0x4a, 0x4a, 0x3c, 0x34, 0x0a, 0xf0, 0xe5, 0x5b, 0x57, 0xef, 0xab, 0x43, 0x63, 0x0f, 0xc0, 0x2e, 0xf2, 0x0b, 0x42, 0x5c, 0xa2, 0x18, 0x7e, 0x3c, 0x6c, 0x5e, 0x10, 0xf1, 0x2d, 0x61, 0x8f, 0xd2, 0x43, 0xa2, 0x24, 0xf6, 0x50, 0x1e, 0xbe, 0xb9, 0xd3, 0x21, 0xc6, 0x38, 0x5b, 0x81, 0x27, 0xef, 0x9c, 0xdc, 0xd0, 0x97, 0xce, 0x7f, 0xa0, 0x21, 0xcf, 0x40, 0xd2, 0x1c, 0x39, 0x91, 0x23, 0x43, 0xf6, 0x7a, 0xcc, 0xe1, 0x82, 0x5e, 0x3a, 0x51, 0xb8, 0xa7, 0x18, 0xe8, 0xc3, 0x40, 0x62, 0x2f, 0xff, 0x65, 0xfe, 0x00, 0x53, 0xd2, 0x4a, 0xa3, 0x35, 0x1b, 0x6a, 0x24, 0x00, 0x18, 0x5d, 0x7a, 0xeb, 0x88, 0xe8, 0x7a, 0xc4, 0xa1, 0xd3, 0x94, 0x90, 0x9d, 0x49, 0x41, 0x4a, 0xef, 0xc2, 0x2b, 0xa0, 0x09, 0xaf, 0xf6, 0x96, 0x2c, 0x92, 0x17, 0xd7, 0x55, 0x69, 0x4e, 0x4d, 0x6a, 0xa8, 0xa5, 0xd6, 0xa8, 0x03, 0xce, 0xbb, 0x15, 0xde, 0x8f, 0x54, 0x16, 0x34, 0xb6, 0xfc, 0xeb, 0x0c, 0xac, 0x79, 0xdd, 0xa8, 0xa1, 0x8e, 0xef, 0xbb, 0x53, 0x7e, 0x70, 0xff, 0xe9, 0xaa, 0x5a, 0x6a, 0x6a, 0xaf, 0x92, 0x40, 0xfa, 0xc2, 0xea, 0xcb, 0xfb, 0xef, 0x01, 0xad, 0x6b, 0xdf, 0x50, 0x75, 0x87, 0x80, 0xf8, 0x6a, 0x4e, 0x48, 0x89, 0x85, 0x36, 0x2d, 0x58, 0x25, 0x01, 0x1f, 0x5e, 0x8b, 0x66, 0x42, 0x5a, 0x61, 0x6b, 0x7e, 0x10, 0x4e, 0xb2, 0x3f, 0xe8, 0xf1, 0x00, 0xcb, 0x02, 0x49, 0x82, 0x36, 0x62, 0xbd, 0xa3, 0xda, 0x47, 0xa4, 0xc3, 0xc1, 0xca, 0x2f, 0x91, 0x4b, 0x25, 0xb9, 0x73, 0x85, 0x34, 0x02, 0x60, 0x47, 0xdf, 0x6d, 0x7f, 0xf6, 0x31, 0xdf, 0x2c, 0x41, 0x31, 0xf6, 0x80, 0xe1, 0x37, 0x43, 0xc9, 0xcc, 0xf2, };
19618 static const u8 ed25519_853_test_vectors_expected_sig[] = {
19619 	0x3e, 0x9f, 0x2b, 0x00, 0x7c, 0x0e, 0x29, 0xec, 0x87, 0x59, 0x95, 0xa6, 0x30, 0x9b, 0x97, 0x3d, 0xeb, 0x8b, 0xaf, 0x11, 0x3d, 0xed, 0x13, 0xf1, 0xe0, 0x00, 0x3e, 0x9b, 0x9b, 0xf9, 0x39, 0x16, 0xa4, 0xdf, 0xe4, 0x79, 0x37, 0xda, 0xdf, 0xc7, 0x8a, 0xa6, 0x63, 0xc5, 0x5f, 0x67, 0x4e, 0xc3, 0x5c, 0x38, 0x46, 0x25, 0x8f, 0x18, 0xe7, 0xbb, 0x93, 0xfb, 0xba, 0x3e, 0x82, 0x6a, 0x1f, 0x0d, };
19620 static const ec_test_case ed25519_853_test_case = {
19621 	.name = "EDDSA25519-SHA512/wei25519 853",
19622 	.ec_str_p = &wei25519_str_params,
19623 	.priv_key = ed25519_853_test_vectors_priv_key,
19624 	.priv_key_len = sizeof(ed25519_853_test_vectors_priv_key),
19625 	.nn_random = NULL,
19626 	.hash_type = SHA512,
19627 	.msg = (const char *)ed25519_853_test_vectors_message,
19628 	.msglen = sizeof(ed25519_853_test_vectors_message),
19629 	.sig_type = EDDSA25519,
19630 	.exp_sig = ed25519_853_test_vectors_expected_sig,
19631 	.exp_siglen = sizeof(ed25519_853_test_vectors_expected_sig),
19632 	.adata = NULL,
19633 	.adata_len = 0
19634 };
19635 
19636 /************************************************/
19637 static const u8 ed25519_854_test_vectors_priv_key[] = {
19638 	0x38, 0xd2, 0xef, 0x50, 0x9f, 0x93, 0x05, 0x1f, 0x14, 0x51, 0x67, 0x73, 0x7c, 0x22, 0xe1, 0xa5, 0xbf, 0xe8, 0xf4, 0xa9, 0x1e, 0xba, 0x0b, 0xb8, 0x7c, 0x39, 0xce, 0x04, 0xa8, 0x9b, 0xae, 0xc6, };
19639 static const u8 ed25519_854_test_vectors_message[] = {
19640 	0x42, 0x7b, 0x5a, 0x01, 0xe8, 0x59, 0x7f, 0x04, 0xfd, 0x42, 0x2f, 0x0a, 0x66, 0x2d, 0x0b, 0xe2, 0xdf, 0xa8, 0x53, 0xed, 0x5f, 0x9d, 0x3f, 0x60, 0xff, 0x90, 0xf2, 0xc5, 0xee, 0x08, 0xbb, 0x59, 0xfd, 0x03, 0xd4, 0x02, 0xb7, 0x54, 0xca, 0xf5, 0x4d, 0x00, 0x58, 0xf5, 0xa2, 0xcf, 0x87, 0xaf, 0x4f, 0xef, 0x21, 0x77, 0xd5, 0x9e, 0x18, 0x22, 0x62, 0x93, 0xfd, 0x2a, 0xf3, 0x76, 0xbc, 0x98, 0x7b, 0xf7, 0xb3, 0x20, 0xb9, 0xd1, 0xe2, 0x49, 0xab, 0x9e, 0xfb, 0x75, 0x07, 0x8e, 0x6d, 0x3d, 0xf2, 0x9e, 0x03, 0x50, 0x47, 0x76, 0x35, 0x43, 0x44, 0xaa, 0x69, 0xe7, 0x2e, 0x1e, 0xbc, 0x52, 0xa3, 0xc3, 0x8a, 0x4c, 0x2a, 0x16, 0x73, 0xb4, 0xe9, 0x74, 0xa2, 0xe4, 0xe1, 0x2a, 0x2e, 0x78, 0xea, 0x3e, 0x3f, 0xe5, 0x0c, 0x53, 0x63, 0x0d, 0x09, 0x6d, 0xa3, 0xe2, 0xfe, 0x82, 0x99, 0xf7, 0x1a, 0x1b, 0x44, 0x1b, 0x4c, 0xf0, 0xca, 0xeb, 0x93, 0x7a, 0xfa, 0x4a, 0x0e, 0x39, 0x15, 0xcc, 0xab, 0x39, 0x96, 0xc9, 0xf6, 0xa8, 0xf4, 0xfd, 0x37, 0x54, 0x3e, 0x8f, 0x75, 0x90, 0x0c, 0xfd, 0x47, 0x17, 0x53, 0x70, 0xef, 0xb8, 0x52, 0xa5, 0xf6, 0x9d, 0x67, 0x36, 0x83, 0xf9, 0x98, 0xfd, 0xcf, 0xf8, 0x5f, 0xf8, 0xf3, 0x2b, 0xaa, 0x80, 0x70, 0x66, 0x60, 0x44, 0x22, 0x02, 0x7d, 0x51, 0xa4, 0x35, 0xdd, 0xf9, 0x88, 0xed, 0x2f, 0xd8, 0xeb, 0x19, 0x1f, 0x10, 0xb4, 0x68, 0x07, 0x42, 0x00, 0x08, 0x75, 0x6e, 0xb4, 0xe3, 0x00, 0xc4, 0x09, 0x9c, 0x2d, 0x64, 0x50, 0xbc, 0xc6, 0xa4, 0xe7, 0xd0, 0x67, 0x31, 0x56, 0xb8, 0x37, 0xf0, 0x50, 0x63, 0x38, 0xf3, 0xd1, 0xb5, 0x73, 0x4b, 0x16, 0x6c, 0xa5, 0xcc, 0x2f, 0x24, 0xa4, 0xef, 0x02, 0x6c, 0xda, 0x2c, 0x4a, 0xe3, 0x10, 0x5b, 0x63, 0xca, 0x85, 0x70, 0xd1, 0x85, 0x46, 0xcf, 0xac, 0xb8, 0x60, 0x42, 0x96, 0x6a, 0x00, 0xef, 0x52, 0xc7, 0x29, 0x90, 0x19, 0xf6, 0x8a, 0x2d, 0xf0, 0x8c, 0x8b, 0x70, 0x4e, 0x85, 0xe7, 0x13, 0xc3, 0x48, 0xd7, 0xf1, 0x67, 0x76, 0x60, 0xe1, 0x8e, 0xba, 0xb5, 0x9b, 0xf4, 0xe1, 0x2e, 0x6f, 0xf2, 0xd7, 0x83, 0xd8, 0xd5, 0xd4, 0x2a, 0xab, 0x6e, 0xf0, 0x17, 0xb7, 0xa1, 0x96, 0x6a, 0xee, 0x8d, 0xc1, 0x4d, 0xda, 0xbe, 0xd4, 0x9b, 0x4b, 0x64, 0x3d, 0xf4, 0xe9, 0xb0, 0xb6, 0x03, 0x83, 0xc7, 0xd8, 0xb4, 0xb8, 0x8c, 0x65, 0xa8, 0x98, 0xc1, 0xc7, 0x7d, 0x43, 0xd6, 0xbd, 0x68, 0xb2, 0xa5, 0x74, 0x3f, 0x1f, 0xed, 0xd6, 0x54, 0xdc, 0x84, 0x49, 0x6d, 0xa0, 0x2c, 0xeb, 0x69, 0xb9, 0xb4, 0xd3, 0xa8, 0xe0, 0x0c, 0xcd, 0x72, 0xe7, 0xc7, 0x5f, 0xc5, 0x0a, 0x8d, 0xd0, 0x87, 0xe1, 0x83, 0xe6, 0xc1, 0xf5, 0x79, 0xba, 0xeb, 0xc5, 0xc6, 0x3f, 0x28, 0x07, 0x93, 0x67, 0x91, 0xb5, 0xfe, 0x48, 0x47, 0xcd, 0xcf, 0x15, 0x17, 0x74, 0x23, 0x52, 0x05, 0xcd, 0x2d, 0x7b, 0x8b, 0xf4, 0xae, 0x88, 0x19, 0x22, 0x5e, 0xa7, 0x08, 0xb7, 0xba, 0xac, 0x66, 0x99, 0x8f, 0x0c, 0xba, 0xb2, 0xc7, 0xdd, 0xf2, 0x51, 0xf3, 0xb1, 0xde, 0x10, 0x17, 0xd3, 0x97, 0x69, 0x22, 0x05, 0xee, 0xa6, 0x39, 0xf1, 0x2d, 0x77, 0xbe, 0xef, 0x6c, 0x13, 0xbb, 0x12, 0x10, 0x0f, 0xf8, 0x90, 0x64, 0x70, 0xbc, 0x7b, 0x21, 0x29, 0x80, 0x53, 0xbe, 0x1a, 0x61, 0xb7, 0xb3, 0xa4, 0x99, 0xed, 0xc3, 0x10, 0x99, 0x6c, 0x8b, 0xc0, 0x87, 0x19, 0x07, 0xca, 0x46, 0x8e, 0x89, 0xed, 0x31, 0x1a, 0xdc, 0xa2, 0xe2, 0xb8, 0x29, 0x30, 0x97, 0x5b, 0x3e, 0xfb, 0xbf, 0xc0, 0x3c, 0xdd, 0xf4, 0xd9, 0x48, 0xc4, 0x76, 0x5e, 0x8c, 0x10, 0x59, 0x08, 0x82, 0x16, 0x9a, 0xcd, 0xdb, 0x8f, 0x8c, 0x36, 0xd8, 0x4c, 0x2d, 0xac, 0x3b, 0x79, 0x8e, 0x7a, 0xbf, 0x84, 0x47, 0x12, 0xfa, 0x45, 0x8d, 0x27, 0x7c, 0x24, 0xe8, 0x14, 0x04, 0x7d, 0x74, 0x23, 0x19, 0xa8, 0x34, 0xdd, 0x9f, 0x92, 0x7a, 0x2b, 0x44, 0x85, 0xef, 0x13, 0x74, 0x5f, 0x7a, 0x60, 0xdd, 0x6b, 0xb3, 0x37, 0x93, 0x63, 0x04, 0xc9, 0x7d, 0x3f, 0x9f, 0x14, 0x4e, 0xb2, 0x9b, 0xb6, 0x95, 0xb8, 0xdc, 0x31, 0xb9, 0xd8, 0x49, 0x10, 0x61, 0x1d, 0x28, 0xd5, 0x81, 0xca, 0xa9, 0x36, 0x5d, 0x6d, 0xff, 0x52, 0xd4, 0x10, 0xa4, 0xad, 0x52, 0xbd, 0x12, 0x17, 0x29, 0xff, 0xf5, 0x28, 0x88, 0xf4, 0xda, 0xae, 0x17, 0x07, 0xf6, 0xf5, 0x6d, 0xac, 0x61, 0xff, 0xb9, 0x96, 0x1c, 0xda, 0x71, 0x76, 0xaf, 0x44, 0x60, 0xa6, 0xd5, 0x54, 0x2a, 0x20, 0x44, 0x6f, 0xb5, 0x14, 0x7f, 0xce, 0x72, 0x72, 0x04, 0xce, 0xc6, 0x89, 0x9b, 0x9a, 0x3d, 0x4f, 0xf6, 0x22, 0x6b, 0xb8, 0xa1, 0xc7, 0x8e, 0x36, 0xfc, 0xdd, 0x9e, 0x50, 0xc0, 0x40, 0xd7, 0x2d, 0x0f, 0x40, 0x07, 0xd3, 0xfa, 0x9a, 0xa7, 0x67, 0xe4, 0xab, 0xd0, 0xad, 0xd6, 0x2f, 0xdb, 0xcc, 0xde, 0xff, 0x67, 0x21, 0xeb, 0x25, 0x9e, 0x00, 0xa7, 0x21, 0x63, 0x20, 0x06, 0xbe, 0xde, 0x0d, 0x17, 0x3d, 0x38, 0x34, 0x4d, 0xea, 0x44, 0xf9, 0x6b, 0x67, 0xd9, 0xa2, 0xee, 0xa1, 0xd2, 0xaf, 0x5f, 0x74, 0x8e, 0x8e, 0xbd, 0xb4, 0x41, 0xbf, 0xb4, 0xe5, 0x8e, 0x2d, 0x42, 0xfe, 0xc7, 0x40, 0x56, 0x6a, 0xcf, 0x73, 0xa3, 0x03, 0x35, 0x8f, 0x7d, 0x89, 0xc8, 0x15, 0x8c, 0xf2, 0x1f, 0xe8, 0x5b, 0x0d, 0x4a, 0x41, 0x7e, 0xbd, 0xc8, 0x6d, 0x04, 0x69, 0xf6, 0xb9, 0x1c, 0x24, 0xad, 0x61, 0x0d, 0x48, 0x6d, 0xed, 0xc2, 0x18, 0xb2, 0xce, 0x7a, 0x8b, 0x96, 0x75, 0x47, 0x23, 0x15, 0x1f, 0x0d, 0x00, 0x76, 0xff, 0xf9, 0xf1, 0x9d, 0x11, 0x2d, 0x9c, 0x05, 0x92, 0xfb, 0x8d, 0x92, 0xc9, 0x9d, 0xcb, 0x8d, 0xdf, 0xaa, 0x46, 0xfb, 0xe0, 0xd9, 0x2d, 0xf4, 0x6b, 0x8c, 0x00, 0xca, 0x43, 0x45, 0xad, 0xb6, 0x9a, 0x5a, 0xca, 0x69, 0x4a, 0x86, 0xcf, 0x30, 0x64, 0x64, 0x51, 0xbb, 0x17, 0xba, 0x6e, 0x60, 0x7a, 0x91, 0x2b, 0xf1, 0x09, 0xd5, 0xfc, 0x2d, 0x3e, 0x27, 0xd0, 0x0d, 0x94, 0x56, 0x00, 0xa8, 0xa5, 0x7c, };
19641 static const u8 ed25519_854_test_vectors_expected_sig[] = {
19642 	0xde, 0xc4, 0x62, 0x53, 0x50, 0x9b, 0x11, 0xe4, 0xb5, 0x2a, 0x6a, 0xe4, 0xf3, 0x66, 0xb6, 0x80, 0xdf, 0xfc, 0x28, 0x0d, 0x0a, 0x04, 0x4f, 0xc0, 0xcb, 0x79, 0x0b, 0x6e, 0x75, 0x13, 0x81, 0x46, 0x1e, 0x1e, 0x60, 0x2a, 0x89, 0xe3, 0xb3, 0xd3, 0x06, 0x4c, 0x40, 0x7f, 0x60, 0x2f, 0x1c, 0x22, 0x40, 0x4b, 0x68, 0x23, 0xbd, 0x24, 0x67, 0x54, 0x93, 0x14, 0xa0, 0x00, 0x01, 0x66, 0x4a, 0x08, };
19643 static const ec_test_case ed25519_854_test_case = {
19644 	.name = "EDDSA25519-SHA512/wei25519 854",
19645 	.ec_str_p = &wei25519_str_params,
19646 	.priv_key = ed25519_854_test_vectors_priv_key,
19647 	.priv_key_len = sizeof(ed25519_854_test_vectors_priv_key),
19648 	.nn_random = NULL,
19649 	.hash_type = SHA512,
19650 	.msg = (const char *)ed25519_854_test_vectors_message,
19651 	.msglen = sizeof(ed25519_854_test_vectors_message),
19652 	.sig_type = EDDSA25519,
19653 	.exp_sig = ed25519_854_test_vectors_expected_sig,
19654 	.exp_siglen = sizeof(ed25519_854_test_vectors_expected_sig),
19655 	.adata = NULL,
19656 	.adata_len = 0
19657 };
19658 
19659 /************************************************/
19660 static const u8 ed25519_855_test_vectors_priv_key[] = {
19661 	0x43, 0xbf, 0xb3, 0xdb, 0xe4, 0xd9, 0xbd, 0xaa, 0x82, 0xb3, 0x54, 0xdd, 0x59, 0x63, 0x34, 0xe6, 0x60, 0xd7, 0x6f, 0xc0, 0xb2, 0xeb, 0x69, 0x89, 0x93, 0xae, 0xf3, 0x76, 0x7f, 0x1c, 0x7c, 0x7f, };
19662 static const u8 ed25519_855_test_vectors_message[] = {
19663 	0x3f, 0x3e, 0xed, 0xdc, 0xae, 0xf4, 0xe1, 0x66, 0x2a, 0xdb, 0x66, 0xbb, 0x1b, 0x20, 0x7d, 0x79, 0x3f, 0xcb, 0xef, 0x81, 0x50, 0x05, 0xe8, 0x26, 0x43, 0xed, 0x70, 0xc9, 0x85, 0x54, 0x03, 0xda, 0xc2, 0x8b, 0x52, 0x07, 0x27, 0xa9, 0x01, 0xa5, 0x32, 0xd2, 0x8b, 0x9b, 0xd1, 0x34, 0x8d, 0xb2, 0xf8, 0x96, 0x7b, 0xbb, 0x8c, 0x90, 0x98, 0xb0, 0x7f, 0x57, 0x0a, 0x2e, 0xae, 0x1e, 0xe4, 0x82, 0x64, 0x0c, 0x0b, 0x67, 0xa5, 0x2a, 0x38, 0x61, 0x21, 0x33, 0xa1, 0x5e, 0x25, 0x8e, 0xde, 0x38, 0xcd, 0xa8, 0x78, 0xff, 0x36, 0xed, 0x32, 0x1d, 0xff, 0x87, 0xcc, 0x6a, 0x01, 0x38, 0x3b, 0xa8, 0x40, 0x67, 0xd6, 0x0a, 0xf4, 0x17, 0x76, 0xac, 0xf8, 0x0a, 0x8a, 0x4e, 0xac, 0x77, 0xf7, 0xd8, 0x7c, 0x37, 0xa7, 0x04, 0xa3, 0xe2, 0xac, 0xa1, 0xe8, 0x81, 0x5e, 0x49, 0xfb, 0xca, 0xb7, 0x97, 0xc8, 0x56, 0x52, 0x95, 0x38, 0xbe, 0x07, 0xd5, 0x16, 0x96, 0x32, 0x1f, 0x69, 0xb0, 0x9b, 0x5d, 0xc5, 0xa1, 0x5e, 0x5f, 0x0e, 0x4c, 0x22, 0xd2, 0x28, 0x37, 0xf6, 0x2e, 0xe4, 0xc8, 0xbc, 0x7f, 0x25, 0xa9, 0x48, 0x7b, 0x96, 0x2c, 0xc2, 0x0f, 0x13, 0x3f, 0xcb, 0x87, 0x0e, 0xd1, 0x25, 0xcc, 0xa5, 0x85, 0xd1, 0x81, 0xbd, 0x39, 0xf9, 0xdf, 0xa6, 0x61, 0xf1, 0x9b, 0xe7, 0x6d, 0xa7, 0xf6, 0x5f, 0x22, 0xfb, 0xbc, 0x80, 0x75, 0x2a, 0xeb, 0x39, 0xe8, 0xd5, 0x9e, 0xd9, 0x6e, 0x14, 0xf5, 0x95, 0xd0, 0x49, 0x29, 0x40, 0x2b, 0x50, 0x29, 0xc6, 0x0c, 0xee, 0x37, 0xc0, 0x21, 0x7b, 0xc5, 0x31, 0xd8, 0x0d, 0xb3, 0x41, 0xda, 0xce, 0x3c, 0xce, 0x76, 0xe6, 0x43, 0xaa, 0xc5, 0x38, 0x87, 0x47, 0x3e, 0xdc, 0x6e, 0x19, 0xcb, 0x39, 0xfe, 0xcf, 0x6a, 0xf4, 0x24, 0xa2, 0x06, 0x63, 0x93, 0xd1, 0xc3, 0x3f, 0xc7, 0xb9, 0x36, 0x76, 0xd7, 0xe6, 0x10, 0x5b, 0x9b, 0xfc, 0x96, 0x7d, 0x1e, 0x29, 0xaf, 0xdc, 0x4c, 0xf1, 0x5b, 0xca, 0xfa, 0x09, 0xc2, 0x95, 0xa6, 0xf9, 0xde, 0xee, 0x33, 0x1a, 0xb3, 0xb0, 0xd4, 0x93, 0x12, 0x6e, 0x2b, 0x2f, 0xff, 0xb4, 0x2a, 0x6b, 0x68, 0xe7, 0x9e, 0x13, 0x8d, 0xb5, 0x50, 0x82, 0x72, 0x62, 0xe4, 0x87, 0xa8, 0x3f, 0x37, 0xf0, 0x1d, 0xd7, 0x92, 0x2b, 0xe7, 0x5e, 0x92, 0xfc, 0xf5, 0xd9, 0xd4, 0x80, 0x3b, 0x3a, 0xc2, 0xf3, 0x5d, 0xa2, 0x10, 0xfb, 0x38, 0xb2, 0x63, 0xb0, 0xff, 0xb6, 0xc2, 0x70, 0x8d, 0x4b, 0x55, 0xb7, 0x57, 0xaf, 0x52, 0x07, 0x7a, 0x7e, 0x31, 0x84, 0xd0, 0x1e, 0x82, 0xf6, 0x4d, 0x32, 0xcc, 0xe4, 0xfd, 0xee, 0x0f, 0x8d, 0x4e, 0x36, 0x4b, 0xcf, 0xb9, 0x58, 0xeb, 0xbf, 0xdb, 0xb6, 0x22, 0xb3, 0x8b, 0x51, 0xe9, 0x30, 0x27, 0x1c, 0x7b, 0x1b, 0x70, 0xaa, 0x9d, 0x4b, 0xb3, 0xaa, 0x4b, 0x99, 0x7c, 0x52, 0x14, 0x4d, 0x3a, 0xa6, 0x21, 0x62, 0x57, 0x3a, 0x3a, 0x1d, 0x9c, 0xe4, 0x6c, 0xdb, 0xee, 0xb8, 0x44, 0x9f, 0x12, 0x25, 0xc4, 0x49, 0x63, 0x1e, 0x88, 0x97, 0x52, 0x1c, 0xd0, 0xf6, 0x37, 0xb7, 0x21, 0xa1, 0x25, 0x2b, 0x8a, 0x10, 0xab, 0x0b, 0xe8, 0x70, 0xaf, 0xbc, 0xd8, 0x9d, 0x58, 0xb2, 0xeb, 0xb6, 0x32, 0x11, 0x95, 0x0c, 0xad, 0x7a, 0xb8, 0x2c, 0x81, 0x95, 0x02, 0x6b, 0x50, 0xea, 0x8b, 0x77, 0xb9, 0xe9, 0x0e, 0xd5, 0x59, 0xaf, 0x44, 0x84, 0x30, 0x88, 0x51, 0xa3, 0xa1, 0x56, 0x71, 0x68, 0x53, 0xa8, 0xac, 0x4e, 0xcb, 0x8c, 0x5c, 0xc7, 0xd9, 0x35, 0xb0, 0xf4, 0x66, 0x12, 0x41, 0x43, 0xb1, 0x17, 0x7f, 0x05, 0xd0, 0x8b, 0x97, 0xd1, 0xad, 0x54, 0x2e, 0xd2, 0xc2, 0x46, 0x5a, 0xf1, 0x85, 0xe7, 0xdb, 0x42, 0xb6, 0x9c, 0xb8, 0x02, 0xa7, 0x17, 0x94, 0xa3, 0x13, 0x98, 0x83, 0x02, 0x96, 0x70, 0xc9, 0x56, 0x74, 0x2a, 0xaa, 0xd7, 0x90, 0x7a, 0x71, 0xd9, 0x59, 0x85, 0xfc, 0x1d, 0x45, 0xb6, 0x59, 0x97, 0xb4, 0xec, 0x6c, 0xe8, 0x25, 0x5d, 0xe9, 0x59, 0x27, 0x0a, 0xfa, 0x7d, 0xe9, 0x0f, 0x29, 0x29, 0xde, 0x63, 0xf9, 0xb1, 0x72, 0x11, 0xd7, 0xf1, 0xae, 0x82, 0x0a, 0xda, 0x9c, 0xe3, 0xe4, 0x86, 0x49, 0x17, 0x9d, 0x60, 0xb0, 0x14, 0x94, 0x93, 0x48, 0x1f, 0x01, 0xd4, 0x59, 0xdb, 0x7d, 0xad, 0x05, 0x26, 0xb5, 0xbd, 0x9f, 0x4b, 0x33, 0x80, 0xd2, 0x5b, 0xa2, 0xc5, 0x02, 0xba, 0x8f, 0xa3, 0xc4, 0xd4, 0x13, 0x1b, 0x46, 0x62, 0xad, 0xde, 0xfb, 0x41, 0x82, 0x7f, 0x75, 0x9f, 0xa7, 0x1d, 0x44, 0x7d, 0x5f, 0x02, 0x92, 0x45, 0xf4, 0x8c, 0x62, 0x2e, 0xb7, 0xc6, 0x8c, 0x8e, 0x71, 0x08, 0x1f, 0x7f, 0x78, 0x9d, 0xe7, 0xa2, 0x83, 0xd2, 0xed, 0xa8, 0x3a, 0x7d, 0x17, 0x22, 0xa0, 0x5f, 0xb7, 0x2e, 0x17, 0x60, 0xc2, 0x40, 0x40, 0xc4, 0xd8, 0x34, 0xde, 0xf5, 0xdf, 0x5f, 0x74, 0x2e, 0x02, 0xb3, 0x04, 0x51, 0xc8, 0x93, 0xbc, 0xf7, 0xd7, 0x71, 0xdb, 0x78, 0x4c, 0xbb, 0xda, 0xec, 0x87, 0x6d, 0x8a, 0xc8, 0x67, 0x43, 0xb5, 0x29, 0xa2, 0x92, 0x00, 0x7a, 0xc7, 0x53, 0xc9, 0x9a, 0x57, 0x99, 0xcc, 0x32, 0x4f, 0xe5, 0xeb, 0xb5, 0x44, 0x8a, 0xb5, 0x54, 0xb1, 0x0d, 0x41, 0x36, 0x97, 0x4a, 0x12, 0x54, 0x2d, 0x25, 0xc6, 0x14, 0x7c, 0x67, 0xc5, 0xd2, 0x33, 0x6c, 0x9d, 0xb7, 0x5c, 0xba, 0x2f, 0xd6, 0x08, 0xcd, 0x43, 0xab, 0x95, 0xbe, 0xac, 0xd0, 0x43, 0xa1, 0x34, 0x9c, 0xef, 0xa8, 0x28, 0xe2, 0x3b, 0x5f, 0x0b, 0x6e, 0x0e, 0x29, 0x51, 0xf3, 0x35, 0x3b, 0xb9, 0x2b, 0xfd, 0x1f, 0x0a, 0x49, 0xc3, 0x3f, 0xb3, 0xcf, 0x37, 0x99, 0xa0, 0xb5, 0x43, 0x19, 0x8a, 0xd5, 0xd0, 0x3d, 0x26, 0x3c, 0x1a, 0x06, 0xc3, 0x5a, 0x26, 0xad, 0xe1, 0x51, 0x84, 0x91, 0xc8, 0xc1, 0xd2, 0x7a, 0x2d, 0xb0, 0x33, 0x80, 0x89, 0x32, 0xcd, 0x1c, 0x47, 0xb5, 0xa1, 0x26, 0x98, 0x5a, 0xcb, 0x8d, 0x88, 0x83, 0x60, 0xee, 0xcc, 0xfe, 0xb3, 0xbf, 0x51, 0xb0, 0xd1, 0x89, 0xb4, 0x19, 0x04, 0x40, 0x40, 0x4d, 0x12, 0xfb, 0xa6, 0x5d, 0x0a, 0x7a, 0x14, 0xc6, 0x20, 0xc5, 0x55, 0xf8, 0x22, };
19664 static const u8 ed25519_855_test_vectors_expected_sig[] = {
19665 	0xa9, 0x99, 0x55, 0x23, 0x02, 0x0a, 0x0d, 0x22, 0x2b, 0xc4, 0x8f, 0x98, 0xd0, 0x55, 0x04, 0xe3, 0x06, 0x8f, 0x30, 0x4a, 0x6d, 0x19, 0x70, 0x06, 0xcc, 0x9c, 0x03, 0x5e, 0xea, 0xde, 0x09, 0x9e, 0x7a, 0xa9, 0x7e, 0x90, 0x89, 0x4e, 0xad, 0x17, 0xe8, 0xc3, 0x0b, 0x0a, 0xa4, 0xa9, 0x80, 0x88, 0xf0, 0x38, 0xb9, 0x22, 0x44, 0xc4, 0xb2, 0x0f, 0xde, 0x96, 0x4f, 0x85, 0x34, 0xe8, 0xfb, 0x03, };
19666 static const ec_test_case ed25519_855_test_case = {
19667 	.name = "EDDSA25519-SHA512/wei25519 855",
19668 	.ec_str_p = &wei25519_str_params,
19669 	.priv_key = ed25519_855_test_vectors_priv_key,
19670 	.priv_key_len = sizeof(ed25519_855_test_vectors_priv_key),
19671 	.nn_random = NULL,
19672 	.hash_type = SHA512,
19673 	.msg = (const char *)ed25519_855_test_vectors_message,
19674 	.msglen = sizeof(ed25519_855_test_vectors_message),
19675 	.sig_type = EDDSA25519,
19676 	.exp_sig = ed25519_855_test_vectors_expected_sig,
19677 	.exp_siglen = sizeof(ed25519_855_test_vectors_expected_sig),
19678 	.adata = NULL,
19679 	.adata_len = 0
19680 };
19681 
19682 /************************************************/
19683 static const u8 ed25519_856_test_vectors_priv_key[] = {
19684 	0x51, 0x4e, 0x07, 0x0b, 0x01, 0x90, 0xd1, 0x8c, 0xbe, 0x98, 0x1a, 0x5a, 0x15, 0x1e, 0x77, 0x53, 0x39, 0x8a, 0x27, 0x2b, 0xcf, 0x01, 0x48, 0x13, 0xad, 0x37, 0x97, 0x22, 0xc3, 0x6e, 0x13, 0x3d, };
19685 static const u8 ed25519_856_test_vectors_message[] = {
19686 	0x83, 0x14, 0x55, 0x76, 0x2a, 0x5d, 0x80, 0x09, 0x7b, 0xb2, 0x84, 0x50, 0x42, 0xf4, 0xc8, 0x76, 0xe7, 0x10, 0x85, 0x35, 0xbe, 0xd6, 0x83, 0xe8, 0xc4, 0x46, 0x19, 0xd0, 0x81, 0x54, 0xa2, 0x29, 0x44, 0x4b, 0x10, 0x1e, 0x3e, 0xd7, 0xc0, 0x15, 0x07, 0xe8, 0x70, 0x94, 0x14, 0x46, 0xaf, 0x97, 0x8c, 0x0f, 0x53, 0x41, 0xd1, 0xac, 0x1d, 0xd1, 0x5b, 0x14, 0xe8, 0x96, 0x67, 0x12, 0xdf, 0x19, 0xf5, 0x2f, 0xeb, 0x51, 0x03, 0xcf, 0x62, 0xb6, 0x63, 0x27, 0x56, 0x44, 0x6c, 0xc7, 0x54, 0xdf, 0x00, 0xa3, 0xf6, 0xdd, 0x71, 0x99, 0x68, 0xa2, 0xce, 0xf6, 0x6c, 0x3a, 0xdf, 0xb7, 0xd1, 0xfc, 0x49, 0x1f, 0xbb, 0xf3, 0xd5, 0x92, 0x94, 0xab, 0x34, 0x61, 0x9e, 0x17, 0x6d, 0xb0, 0xd4, 0x46, 0x15, 0x1e, 0x37, 0xea, 0xa3, 0xda, 0xf1, 0x72, 0x40, 0x6e, 0x98, 0x3d, 0x9d, 0x23, 0xa6, 0xb6, 0x9e, 0x92, 0x97, 0x60, 0x30, 0xf5, 0xac, 0x70, 0x40, 0xad, 0x51, 0x14, 0x12, 0x9f, 0xea, 0xf9, 0x7a, 0xf1, 0x5b, 0x22, 0x96, 0xfa, 0xe7, 0x04, 0x92, 0xdb, 0xbe, 0xb2, 0xb4, 0x82, 0x76, 0x87, 0xfb, 0x79, 0x87, 0x15, 0xc9, 0xbb, 0x2c, 0x32, 0x55, 0x7a, 0x81, 0xd8, 0x91, 0xb8, 0x97, 0x05, 0x29, 0x00, 0x70, 0x71, 0x59, 0x75, 0x1f, 0x07, 0xdb, 0x07, 0x4c, 0x77, 0xf0, 0x71, 0x96, 0x71, 0xf1, 0x76, 0x66, 0x89, 0x02, 0x9a, 0x3c, 0xdd, 0xf3, 0x9d, 0xf3, 0x48, 0x3c, 0xf2, 0xb0, 0x4f, 0x71, 0xc2, 0x5d, 0xe0, 0x5f, 0xc2, 0xd0, 0x2b, 0xb4, 0x8e, 0x53, 0x9e, 0xaf, 0x1a, 0x32, 0x16, 0x46, 0xcd, 0x80, 0xef, 0x2f, 0x0a, 0xc7, 0x03, 0xf4, 0x5e, 0x73, 0x89, 0x53, 0x08, 0x00, 0xe5, 0xd4, 0x17, 0xcc, 0xea, 0x8a, 0x5c, 0x08, 0x66, 0x82, 0xf0, 0x47, 0x45, 0xd5, 0x0b, 0x5d, 0xfc, 0x8f, 0x6e, 0xdc, 0x87, 0xa9, 0x5c, 0x7d, 0x20, 0x2a, 0x9c, 0xfd, 0x99, 0x87, 0x14, 0xb7, 0x46, 0x92, 0x0e, 0xbb, 0xe2, 0x33, 0x5b, 0xca, 0x1a, 0x01, 0x71, 0x76, 0x20, 0x16, 0xf5, 0xe4, 0xbd, 0xa8, 0x9c, 0x57, 0xd0, 0xed, 0xc6, 0x91, 0x0c, 0x6d, 0x22, 0xc8, 0xf9, 0x09, 0xda, 0x3d, 0xb1, 0x35, 0x2f, 0x0c, 0x8b, 0xd1, 0x8f, 0x3b, 0x5a, 0xac, 0x25, 0xf1, 0x93, 0xb8, 0x94, 0x70, 0xf9, 0x76, 0xbc, 0x4f, 0x1a, 0xff, 0xb3, 0xc6, 0x6b, 0xc5, 0x87, 0x6c, 0x6f, 0xe2, 0xac, 0x75, 0x08, 0x53, 0x3d, 0x97, 0xbb, 0xcf, 0x77, 0x11, 0x9d, 0x9a, 0xae, 0x19, 0x3f, 0x07, 0xe0, 0xb6, 0x4b, 0x46, 0x1c, 0x9c, 0x6c, 0x3b, 0x9d, 0x29, 0x3b, 0xd3, 0x7d, 0xe3, 0xd8, 0xe1, 0xab, 0x1e, 0x8d, 0x87, 0x2c, 0xd9, 0x4e, 0x6c, 0xf0, 0xeb, 0x68, 0x43, 0x9f, 0xdc, 0xd3, 0xb2, 0x5c, 0xe8, 0x48, 0x34, 0x60, 0xbd, 0x8b, 0x7c, 0xce, 0x88, 0x9f, 0xb7, 0x22, 0xb4, 0x36, 0x1e, 0x11, 0x8d, 0xa9, 0x83, 0xef, 0x4a, 0x9e, 0x45, 0xce, 0xbc, 0x0c, 0x1b, 0x82, 0x29, 0xea, 0x53, 0xe6, 0xf5, 0x55, 0x05, 0xf6, 0x44, 0xe0, 0x9a, 0xca, 0xa4, 0xc4, 0xb8, 0xcc, 0x64, 0x0b, 0x2c, 0xd2, 0xb3, 0x12, 0xe1, 0xc3, 0xa2, 0xc0, 0x26, 0x69, 0xe1, 0xf9, 0xc0, 0x63, 0x11, 0xc7, 0x8d, 0x36, 0x00, 0x09, 0xdb, 0x9e, 0x67, 0xc3, 0x9b, 0x49, 0xd1, 0xe5, 0xd7, 0x70, 0xc0, 0x1d, 0x28, 0x4b, 0x0a, 0x17, 0xa4, 0x1b, 0x4e, 0x7c, 0xa7, 0x45, 0xd6, 0x65, 0xec, 0x07, 0x50, 0x0e, 0x4d, 0x9f, 0xc8, 0xeb, 0xc1, 0xcc, 0x6a, 0xf5, 0x3a, 0x3f, 0xc7, 0x6b, 0x0c, 0x3f, 0x14, 0x31, 0xd4, 0x98, 0x43, 0xf2, 0x0e, 0x18, 0x27, 0x82, 0xc8, 0x2b, 0x3b, 0x5a, 0xae, 0x36, 0xfe, 0x20, 0xca, 0x64, 0x26, 0x18, 0x06, 0x8b, 0xe2, 0x33, 0xd4, 0xb5, 0xef, 0x9e, 0xae, 0xff, 0x40, 0x15, 0x36, 0xdc, 0x59, 0x3a, 0x2b, 0xc1, 0x83, 0x44, 0xf5, 0x5a, 0xc5, 0xd5, 0xfc, 0x7b, 0x3e, 0xb5, 0x06, 0xd1, 0x1c, 0xb3, 0x75, 0x33, 0x00, 0x63, 0xc6, 0x20, 0xc5, 0x33, 0x4d, 0x72, 0x3c, 0x7d, 0x1f, 0x04, 0x28, 0x16, 0xbc, 0x47, 0x85, 0xb3, 0x5a, 0xc0, 0xe6, 0xf1, 0x74, 0xf7, 0x36, 0x87, 0x8b, 0x7b, 0x49, 0x16, 0x58, 0xca, 0x67, 0xd8, 0xfc, 0xab, 0x53, 0x8f, 0xc6, 0xec, 0xd2, 0x77, 0xea, 0xd9, 0x0d, 0x95, 0x4b, 0x46, 0x0d, 0xa4, 0x25, 0x3a, 0x1c, 0x3a, 0x30, 0xb3, 0xd8, 0x92, 0x8f, 0x69, 0xac, 0x98, 0x76, 0xa2, 0x89, 0x19, 0x69, 0xfc, 0x2d, 0x06, 0xa6, 0x68, 0x99, 0x2b, 0x8e, 0x21, 0x15, 0xdf, 0xe5, 0x35, 0x8a, 0x71, 0x24, 0xba, 0x7c, 0xcf, 0x42, 0x1d, 0x80, 0x54, 0xea, 0x04, 0x34, 0x44, 0xcd, 0xeb, 0x40, 0xb7, 0x16, 0xdc, 0x7a, 0x36, 0x59, 0xa3, 0xca, 0x94, 0x34, 0x72, 0x93, 0x48, 0x90, 0x60, 0xe2, 0xcf, 0x67, 0x12, 0xa2, 0xa6, 0xc7, 0xb8, 0xad, 0x14, 0x67, 0x85, 0xfc, 0x40, 0xcc, 0xb9, 0xda, 0x28, 0x78, 0x30, 0xd0, 0x11, 0xd0, 0xd2, 0x4d, 0xf3, 0xe7, 0xaf, 0xbe, 0x97, 0x2d, 0x6f, 0x41, 0x7d, 0xe5, 0xcd, 0x75, 0xf2, 0x59, 0xea, 0x07, 0xca, 0xfd, 0xde, 0x20, 0x5f, 0xc0, 0xa3, 0x65, 0x13, 0x5c, 0x23, 0x2c, 0xbd, 0x7c, 0x1b, 0xc5, 0x39, 0xfa, 0x4b, 0x7e, 0x1c, 0xce, 0x35, 0x18, 0x52, 0x37, 0xc2, 0x3f, 0x80, 0xae, 0x97, 0xc1, 0x86, 0xd0, 0xd3, 0xb1, 0x05, 0x03, 0xd5, 0x98, 0x4a, 0x20, 0xec, 0x41, 0xc3, 0xcd, 0x04, 0x2c, 0x28, 0xa4, 0xc3, 0x1f, 0x95, 0x74, 0xb0, 0x6a, 0x87, 0x2b, 0xf9, 0x59, 0xab, 0x0a, 0xdd, 0x1f, 0x5d, 0xee, 0x14, 0xa1, 0xe7, 0x41, 0xef, 0x23, 0x8d, 0xfc, 0xde, 0xc0, 0x85, 0xaa, 0x08, 0x8d, 0xcf, 0x39, 0xa3, 0x6d, 0xda, 0x8f, 0x2a, 0x85, 0xed, 0x0d, 0x36, 0x2c, 0xcb, 0x00, 0x5d, 0x02, 0xe5, 0xac, 0xcc, 0x09, 0x2a, 0x37, 0x6d, 0xc1, 0x1a, 0x56, 0x61, 0x70, 0xd5, 0x83, 0xdb, 0x35, 0xf1, 0xde, 0x0b, 0xe3, 0xf1, 0x59, 0x08, 0x59, 0x6e, 0x9b, 0x78, 0x1a, 0xc8, 0x1b, 0xe0, 0x7b, 0x9b, 0xd2, 0xaf, 0x46, 0xc5, 0x6f, 0xb4, 0xd9, 0xd8, 0x42, 0x76, 0x01, 0x1e, 0x46, 0x18, 0xb7, 0xf7, 0x6f, 0x96, 0x79, 0x4c, 0xd0, 0xfd, 0x57, 0xed, 0x41, 0x4b, 0x63, };
19687 static const u8 ed25519_856_test_vectors_expected_sig[] = {
19688 	0xb6, 0xc3, 0x55, 0xc9, 0x58, 0xb5, 0xba, 0xa7, 0xeb, 0xe9, 0x77, 0xa9, 0x3f, 0xcf, 0x53, 0x95, 0x89, 0xa3, 0x66, 0xd4, 0x01, 0x60, 0xe4, 0xe0, 0x31, 0xb8, 0x8a, 0xb9, 0x64, 0x02, 0xc7, 0xbd, 0x57, 0x7f, 0xf6, 0x35, 0xfc, 0x07, 0x78, 0x24, 0x23, 0x59, 0x8d, 0xca, 0x43, 0x66, 0x81, 0x24, 0xa8, 0xb2, 0x87, 0x51, 0x0e, 0x2c, 0xfd, 0x07, 0xa1, 0xe8, 0xf6, 0x19, 0xf6, 0xc8, 0x54, 0x0a, };
19689 static const ec_test_case ed25519_856_test_case = {
19690 	.name = "EDDSA25519-SHA512/wei25519 856",
19691 	.ec_str_p = &wei25519_str_params,
19692 	.priv_key = ed25519_856_test_vectors_priv_key,
19693 	.priv_key_len = sizeof(ed25519_856_test_vectors_priv_key),
19694 	.nn_random = NULL,
19695 	.hash_type = SHA512,
19696 	.msg = (const char *)ed25519_856_test_vectors_message,
19697 	.msglen = sizeof(ed25519_856_test_vectors_message),
19698 	.sig_type = EDDSA25519,
19699 	.exp_sig = ed25519_856_test_vectors_expected_sig,
19700 	.exp_siglen = sizeof(ed25519_856_test_vectors_expected_sig),
19701 	.adata = NULL,
19702 	.adata_len = 0
19703 };
19704 
19705 /************************************************/
19706 static const u8 ed25519_857_test_vectors_priv_key[] = {
19707 	0xbc, 0x79, 0x0a, 0x73, 0x85, 0xdd, 0x1d, 0xdd, 0xc7, 0x62, 0xe3, 0xb2, 0x02, 0x21, 0xdc, 0x07, 0x8b, 0x6c, 0x3d, 0xa8, 0x98, 0x6d, 0x41, 0x80, 0x94, 0x07, 0x27, 0x25, 0x7c, 0xfd, 0xcd, 0xf1, };
19708 static const u8 ed25519_857_test_vectors_message[] = {
19709 	0x14, 0x3d, 0xd7, 0xbf, 0xbf, 0xf2, 0xad, 0xc7, 0x1f, 0x5d, 0x12, 0x3d, 0x47, 0x4e, 0xa0, 0x69, 0xdf, 0x14, 0xae, 0x92, 0x3e, 0xd9, 0xbf, 0x8f, 0x98, 0x91, 0xe6, 0x0b, 0xae, 0x43, 0xf0, 0xc9, 0xf5, 0x55, 0x37, 0xac, 0x9d, 0x1a, 0xe5, 0x23, 0xce, 0x4e, 0xcf, 0xd3, 0x3b, 0x20, 0xae, 0x44, 0x5e, 0x9c, 0x42, 0x63, 0x72, 0x05, 0x0f, 0xa5, 0x21, 0x7c, 0x1e, 0x4f, 0xb0, 0x13, 0x53, 0xeb, 0xf2, 0xe3, 0x29, 0x04, 0xef, 0x7e, 0xef, 0xcf, 0x72, 0xe8, 0x02, 0x3b, 0xae, 0x06, 0xbb, 0xb6, 0x40, 0xcf, 0x77, 0x7d, 0x5b, 0x0e, 0x11, 0x52, 0x7b, 0xc8, 0x35, 0x49, 0x3a, 0xd6, 0x98, 0x0a, 0x15, 0x7b, 0xb2, 0xd5, 0x0b, 0xe2, 0x33, 0x65, 0xe7, 0x2c, 0xbf, 0x0b, 0x3f, 0x20, 0x9e, 0xf0, 0xc4, 0x4a, 0x00, 0xb4, 0x1a, 0x62, 0x26, 0x24, 0x88, 0x09, 0x6c, 0xae, 0x5a, 0x69, 0x6b, 0x4d, 0x64, 0xcb, 0xad, 0x34, 0x50, 0x0d, 0x41, 0xfb, 0x4e, 0x4b, 0xc7, 0x0f, 0x8b, 0xf6, 0x21, 0x44, 0xd0, 0x1c, 0x22, 0x75, 0xd6, 0xd2, 0x9f, 0x5d, 0xe7, 0x5b, 0x17, 0x21, 0xd5, 0x04, 0x6b, 0x68, 0x29, 0x16, 0x44, 0x43, 0xeb, 0xfd, 0x9c, 0x17, 0x81, 0x31, 0x9d, 0x88, 0xf5, 0x40, 0x10, 0xed, 0xc2, 0x96, 0xab, 0xbe, 0xd0, 0x2b, 0x7d, 0xad, 0x9b, 0xa5, 0x85, 0xb5, 0x52, 0xe0, 0x00, 0x5d, 0xcc, 0xa4, 0x00, 0xbf, 0x4f, 0x45, 0x9e, 0xed, 0x7d, 0xb8, 0x6e, 0xa8, 0x61, 0x2b, 0xe9, 0xe9, 0x18, 0xdf, 0xd4, 0xe2, 0x70, 0x0c, 0x47, 0x10, 0x08, 0x32, 0x83, 0x62, 0x6f, 0xac, 0x75, 0x44, 0x17, 0xe0, 0x08, 0x7d, 0x26, 0xba, 0x14, 0x5d, 0xfc, 0x45, 0xb1, 0xc9, 0xbf, 0x7b, 0x4d, 0xd7, 0x0e, 0x6c, 0x50, 0x87, 0x47, 0xef, 0x80, 0x5c, 0x9a, 0x02, 0x42, 0x5a, 0xeb, 0xc6, 0x42, 0x1e, 0x0d, 0xeb, 0x6a, 0x79, 0xd8, 0x9a, 0xce, 0xee, 0xe0, 0x1e, 0xce, 0xcc, 0x9f, 0x3c, 0xa3, 0x65, 0x38, 0x38, 0x26, 0x58, 0x4c, 0x43, 0x0e, 0xbd, 0x39, 0xec, 0xf0, 0xa7, 0x28, 0x66, 0xae, 0x0a, 0xce, 0xca, 0x5a, 0xd4, 0xf0, 0x40, 0x5b, 0x67, 0x77, 0x9c, 0x04, 0xc5, 0xde, 0x03, 0x30, 0x61, 0x4d, 0xa3, 0x47, 0x0b, 0x80, 0x5d, 0x78, 0x7c, 0xe7, 0x9a, 0xc5, 0xa6, 0x96, 0xdd, 0x6f, 0x6b, 0x55, 0x39, 0xb1, 0xa6, 0x51, 0xb4, 0x24, 0xce, 0xfb, 0x19, 0x49, 0x1d, 0xa6, 0xe0, 0x88, 0x92, 0x23, 0xcc, 0x98, 0x39, 0x8b, 0x42, 0xc0, 0x04, 0x14, 0xff, 0x8d, 0x6c, 0x06, 0x27, 0xeb, 0x97, 0xcf, 0xf2, 0x0a, 0x8c, 0xbe, 0x7f, 0xcc, 0xb4, 0x1d, 0x81, 0x0f, 0xcf, 0xe8, 0x58, 0xca, 0x74, 0x75, 0x24, 0x7e, 0xf6, 0x28, 0xe8, 0x4a, 0x09, 0xd0, 0x12, 0xfe, 0x12, 0x23, 0x5b, 0x38, 0xc1, 0xcc, 0x9d, 0x82, 0xe2, 0xb6, 0x9d, 0x01, 0xd6, 0x21, 0x8c, 0xfd, 0x48, 0xe8, 0x5f, 0x26, 0xae, 0xad, 0xd1, 0x95, 0x40, 0x8c, 0xdd, 0x4c, 0x2f, 0x80, 0x6a, 0x89, 0x04, 0x1f, 0xd0, 0x31, 0x7f, 0xb1, 0xa7, 0xb6, 0x20, 0x9f, 0x90, 0x42, 0x70, 0xd3, 0x4e, 0x60, 0x61, 0x95, 0x04, 0x72, 0x88, 0xb0, 0xfb, 0x11, 0xa5, 0x72, 0x29, 0x38, 0xf6, 0x7c, 0x22, 0xb3, 0x13, 0xf7, 0xf7, 0x4b, 0x20, 0x25, 0xc7, 0x5b, 0xcd, 0x1e, 0xcc, 0x5a, 0x9a, 0xdd, 0x4a, 0x64, 0x0a, 0x41, 0xf2, 0x99, 0x6e, 0xb6, 0x6e, 0x5a, 0xf1, 0x96, 0x19, 0x8d, 0xb5, 0x8a, 0x3f, 0xb9, 0x93, 0x8f, 0x34, 0x9f, 0x92, 0x2a, 0x24, 0xd8, 0x6f, 0x4e, 0xd8, 0xa9, 0x6a, 0x09, 0xa1, 0x96, 0xc2, 0x4d, 0x6d, 0x01, 0xed, 0x76, 0xf3, 0x81, 0x6c, 0x05, 0xc4, 0xf2, 0x6b, 0xac, 0xa9, 0xb9, 0xd6, 0xdc, 0xc7, 0x9b, 0x58, 0x0d, 0xfb, 0x75, 0xd6, 0xc9, 0x05, 0xd4, 0x80, 0xda, 0xd7, 0x69, 0x51, 0x85, 0x4b, 0xda, 0x1c, 0xaa, 0x7f, 0x4a, 0x81, 0x95, 0x43, 0xae, 0xd0, 0x1a, 0xe9, 0x56, 0xbf, 0x30, 0x58, 0xfe, 0x8b, 0x3c, 0x7d, 0x5d, 0x72, 0x49, 0x62, 0xf1, 0xa6, 0xa8, 0x31, 0x43, 0xdd, 0xad, 0x27, 0x4f, 0xda, 0x3a, 0xd5, 0x78, 0xe9, 0x8a, 0xa9, 0x67, 0xc4, 0x10, 0xee, 0x57, 0x57, 0x5e, 0xf0, 0x1c, 0x02, 0x58, 0x56, 0x0f, 0x0a, 0x1f, 0xa4, 0xb7, 0x93, 0x27, 0x79, 0x6d, 0xe9, 0x94, 0x20, 0xcf, 0xd0, 0xa4, 0x15, 0x50, 0x63, 0x60, 0xf1, 0x24, 0x2c, 0xcc, 0x58, 0xa6, 0x88, 0x09, 0x27, 0x75, 0x0d, 0xbb, 0xff, 0x13, 0xd7, 0xc1, 0xb4, 0xed, 0x51, 0x9c, 0xda, 0x35, 0x72, 0x10, 0xf1, 0x2f, 0xb0, 0xd1, 0xc4, 0xd4, 0x8f, 0x04, 0x11, 0xbd, 0x7e, 0x05, 0x8c, 0xc4, 0xcb, 0x93, 0xd3, 0xc7, 0x75, 0x97, 0xe2, 0x65, 0x3f, 0xfa, 0x28, 0x2d, 0x3c, 0x2f, 0x12, 0x8a, 0xc3, 0x3a, 0x23, 0x7a, 0xf2, 0xfc, 0xbc, 0x9e, 0xf9, 0xc8, 0x11, 0xf3, 0x78, 0x14, 0xba, 0x2b, 0x0b, 0x85, 0x09, 0x3d, 0x0f, 0xd1, 0x8b, 0x8c, 0x6f, 0xb0, 0x9a, 0x43, 0xce, 0x52, 0x25, 0x4d, 0x23, 0xd5, 0x5f, 0x32, 0xe1, 0xd3, 0x24, 0x2a, 0xed, 0x1f, 0x23, 0xd9, 0xcf, 0x20, 0x4a, 0xa0, 0xdf, 0xd4, 0x4a, 0x34, 0x6f, 0xe0, 0x9e, 0x55, 0xa4, 0xa0, 0x6c, 0xf1, 0xbe, 0xf8, 0xbb, 0xf3, 0x7b, 0xa1, 0xf1, 0x59, 0x8a, 0x58, 0xae, 0xf8, 0x95, 0x01, 0xec, 0xba, 0xc0, 0x45, 0x35, 0x43, 0xe4, 0x80, 0xed, 0x0a, 0xdd, 0xe9, 0x0c, 0x84, 0x1d, 0x95, 0xeb, 0xd6, 0xeb, 0x23, 0xba, 0xa9, 0xf7, 0x0f, 0x83, 0xc1, 0x49, 0xea, 0xb3, 0x2d, 0x09, 0x13, 0xc7, 0x9b, 0x09, 0x93, 0xd0, 0xe1, 0xd3, 0x57, 0x4f, 0x0f, 0x54, 0x2e, 0x56, 0xa2, 0x06, 0x16, 0xcf, 0xe4, 0xa8, 0xbd, 0x7a, 0xae, 0xeb, 0xe0, 0xb0, 0x83, 0xdc, 0x2c, 0xe0, 0x14, 0x61, 0x78, 0xc0, 0x74, 0x82, 0xa0, 0x11, 0x29, 0xbc, 0x6f, 0xef, 0xdc, 0x81, 0x41, 0xc1, 0x38, 0x48, 0x94, 0xb6, 0x9c, 0xbe, 0x2f, 0x29, 0xda, 0x18, 0x8f, 0x7f, 0xd4, 0xac, 0x34, 0x1a, 0x2d, 0xf6, 0xfd, 0x90, 0xde, 0xe6, 0xa4, 0x46, 0xd2, 0x74, 0x63, 0x24, 0xc7, 0x5c, 0x1e, 0xf5, 0xb1, 0xac, 0xe1, 0x87, 0xd3, 0xbc, 0x16, 0xd7, 0x05, 0x59, 0x89, 0x29, 0x75, 0xd7, 0xe4, 0x71, 0x38, 0xf0, 0x40, 0x63, 0x85, 0xea, };
19710 static const u8 ed25519_857_test_vectors_expected_sig[] = {
19711 	0x6d, 0x6b, 0xd6, 0x5f, 0x37, 0x26, 0x79, 0xfe, 0x9d, 0x94, 0x5f, 0xf5, 0x65, 0x16, 0x33, 0x3e, 0xce, 0x0b, 0x7a, 0x25, 0xb1, 0x5a, 0xd2, 0x48, 0x73, 0x81, 0x67, 0x0e, 0x53, 0x6f, 0x52, 0x46, 0x77, 0x5e, 0xb3, 0x9a, 0x11, 0x4d, 0xb2, 0xb9, 0xcd, 0x50, 0xf3, 0x12, 0xb3, 0x60, 0xd9, 0xd0, 0xbe, 0xa2, 0x95, 0xdc, 0x37, 0xb8, 0x17, 0xb3, 0x32, 0x89, 0x0a, 0xdb, 0x65, 0xe4, 0xc4, 0x01, };
19712 static const ec_test_case ed25519_857_test_case = {
19713 	.name = "EDDSA25519-SHA512/wei25519 857",
19714 	.ec_str_p = &wei25519_str_params,
19715 	.priv_key = ed25519_857_test_vectors_priv_key,
19716 	.priv_key_len = sizeof(ed25519_857_test_vectors_priv_key),
19717 	.nn_random = NULL,
19718 	.hash_type = SHA512,
19719 	.msg = (const char *)ed25519_857_test_vectors_message,
19720 	.msglen = sizeof(ed25519_857_test_vectors_message),
19721 	.sig_type = EDDSA25519,
19722 	.exp_sig = ed25519_857_test_vectors_expected_sig,
19723 	.exp_siglen = sizeof(ed25519_857_test_vectors_expected_sig),
19724 	.adata = NULL,
19725 	.adata_len = 0
19726 };
19727 
19728 /************************************************/
19729 static const u8 ed25519_858_test_vectors_priv_key[] = {
19730 	0xdb, 0x3a, 0x44, 0xdf, 0x40, 0xd2, 0x55, 0xa2, 0x5c, 0xf2, 0x3f, 0x53, 0xc4, 0x52, 0x23, 0xb7, 0xd8, 0xf1, 0xf1, 0xf1, 0x11, 0xba, 0x07, 0x40, 0x6b, 0x71, 0xe1, 0x84, 0xa8, 0xcd, 0x06, 0x12, };
19731 static const u8 ed25519_858_test_vectors_message[] = {
19732 	0x52, 0xdd, 0x8b, 0xa4, 0xff, 0xfa, 0x34, 0x4d, 0x1e, 0x08, 0x11, 0xd9, 0x67, 0x5c, 0x31, 0x3f, 0x9c, 0xc0, 0xe5, 0xa1, 0x38, 0x47, 0x86, 0x91, 0x98, 0x9d, 0x2b, 0x7f, 0x73, 0x89, 0x02, 0x50, 0x68, 0xfa, 0x35, 0xf7, 0x4f, 0x9a, 0xea, 0xf1, 0xe9, 0x56, 0x65, 0xec, 0xf8, 0xd5, 0x70, 0x7f, 0x75, 0xf6, 0x5f, 0x22, 0x56, 0xee, 0xa9, 0x33, 0x98, 0xbe, 0x59, 0xc0, 0xd5, 0x38, 0xf5, 0xe8, 0x58, 0x4b, 0xfb, 0xb3, 0xa2, 0x40, 0xf5, 0x01, 0x6d, 0x79, 0x27, 0x23, 0x4c, 0xb3, 0xea, 0xc3, 0x5b, 0x39, 0x1b, 0x8b, 0x53, 0xf2, 0x0e, 0xd8, 0xba, 0xe0, 0xba, 0x11, 0x08, 0x96, 0x94, 0xbf, 0xea, 0xde, 0x11, 0x07, 0x16, 0x56, 0xd4, 0xcf, 0x18, 0xef, 0x2d, 0x36, 0x81, 0x92, 0xe0, 0x4e, 0x08, 0xe3, 0x02, 0x4f, 0xc1, 0xd2, 0xfd, 0xa6, 0x31, 0x2a, 0xfc, 0xa6, 0x8d, 0x10, 0xc9, 0xc3, 0x36, 0xa0, 0xe3, 0x68, 0x50, 0xbe, 0x1a, 0x4f, 0x35, 0xb0, 0x33, 0xa8, 0x5a, 0x2a, 0x95, 0x49, 0xf2, 0x67, 0x3a, 0x99, 0x5f, 0x2a, 0x9a, 0xb4, 0xbd, 0x46, 0xc8, 0xfd, 0x2d, 0x83, 0x8e, 0x64, 0xf7, 0x61, 0x71, 0x34, 0x27, 0x32, 0x9c, 0x9a, 0xf5, 0xe4, 0x21, 0x1a, 0x22, 0xab, 0x20, 0x8a, 0xaa, 0xb8, 0x0e, 0x19, 0x4c, 0xd0, 0xf6, 0xa5, 0x02, 0xb3, 0x08, 0xfe, 0xd6, 0xc5, 0x83, 0x51, 0x78, 0x01, 0xa4, 0x8e, 0xd4, 0x33, 0x0e, 0x2f, 0xad, 0xdc, 0xd4, 0x18, 0x09, 0xc3, 0x91, 0x9b, 0x30, 0xe8, 0x4d, 0xb3, 0xc6, 0x87, 0x31, 0x03, 0x1e, 0x79, 0x85, 0x7d, 0xd9, 0xf9, 0x7f, 0xfd, 0x12, 0x54, 0x7d, 0xa7, 0x06, 0x67, 0x98, 0x07, 0x41, 0x51, 0xec, 0x88, 0xa5, 0xfa, 0x96, 0x3b, 0x9d, 0x9d, 0x83, 0xba, 0x2f, 0xee, 0x13, 0x58, 0x33, 0x95, 0x0e, 0xf7, 0xbc, 0x62, 0xb3, 0x40, 0x1e, 0xa1, 0x1b, 0xb3, 0x6f, 0x25, 0x56, 0x1b, 0xc0, 0x52, 0x2b, 0xb0, 0x2d, 0x8d, 0xad, 0x05, 0x43, 0xf6, 0x3d, 0x54, 0x7b, 0xe7, 0x7d, 0x0a, 0x4c, 0x9b, 0xf6, 0x5d, 0x42, 0xf3, 0xa2, 0x76, 0x14, 0x4d, 0x2e, 0x47, 0x4e, 0x29, 0x42, 0xf3, 0x79, 0x02, 0x21, 0xe2, 0x6f, 0xba, 0xe7, 0xca, 0x91, 0xef, 0xd8, 0x59, 0x21, 0x99, 0x08, 0x35, 0xfa, 0xfb, 0x6d, 0xc6, 0x74, 0x63, 0x5c, 0x96, 0x01, 0x82, 0x10, 0x38, 0xb5, 0x27, 0x11, 0x34, 0x3d, 0x1a, 0xa2, 0x5f, 0x1c, 0x46, 0xba, 0x4e, 0x3c, 0x6e, 0x71, 0x2b, 0xac, 0x19, 0xe5, 0x3e, 0xae, 0x30, 0xe5, 0x24, 0x6e, 0x4f, 0x04, 0xdd, 0xf2, 0xac, 0xdb, 0xb3, 0x41, 0x63, 0xc2, 0x43, 0x67, 0x76, 0x90, 0xbe, 0x0b, 0xf2, 0xe3, 0xfa, 0x16, 0x48, 0x70, 0xb5, 0xe6, 0xf5, 0x36, 0xb2, 0x2f, 0xb8, 0x9e, 0x5e, 0x8e, 0x1d, 0x87, 0xcd, 0xb3, 0x40, 0x44, 0x97, 0x7e, 0xd2, 0x83, 0x6e, 0x54, 0x4d, 0x7b, 0xa4, 0x93, 0xdd, 0x42, 0xa2, 0xb6, 0x49, 0xbc, 0xf3, 0x13, 0xc5, 0xb3, 0x9a, 0x1d, 0xbf, 0xff, 0x3e, 0x7f, 0x2a, 0x59, 0xad, 0xe8, 0x7d, 0x3e, 0x7b, 0x25, 0x8f, 0x58, 0xe5, 0x65, 0xfd, 0xba, 0x3e, 0x4d, 0x92, 0xb1, 0xed, 0xb8, 0xbf, 0xf5, 0x4d, 0xc4, 0x9d, 0x86, 0xc5, 0x3c, 0x03, 0x0c, 0xf5, 0x8b, 0x97, 0xef, 0x06, 0x6d, 0x24, 0x1b, 0x54, 0x05, 0x30, 0x21, 0x39, 0x05, 0x73, 0x9d, 0x8e, 0x1a, 0xa7, 0x2e, 0xd9, 0x0f, 0x68, 0x5d, 0x39, 0x58, 0xea, 0xa2, 0x42, 0xb0, 0xcb, 0xf7, 0xa2, 0xeb, 0x97, 0x6e, 0xe9, 0x6a, 0x63, 0xe6, 0x67, 0x86, 0x46, 0x41, 0x69, 0xa7, 0x42, 0xd4, 0x57, 0xe4, 0xd9, 0x11, 0x7c, 0x7d, 0x66, 0x42, 0x84, 0x45, 0xa4, 0x69, 0x30, 0xc2, 0x8b, 0xa7, 0xa2, 0x65, 0x82, 0x41, 0x80, 0x5e, 0xbe, 0x72, 0xc7, 0x8e, 0x02, 0x03, 0x5d, 0x26, 0x3a, 0x21, 0x1e, 0x59, 0x0b, 0x49, 0x0c, 0xdb, 0x84, 0x41, 0x50, 0x62, 0xee, 0xd1, 0x4f, 0x13, 0xb8, 0xa1, 0xa9, 0xe7, 0x7c, 0x8d, 0x7b, 0x75, 0x51, 0x5b, 0x18, 0xfb, 0x85, 0x38, 0x6e, 0x4a, 0x7e, 0x05, 0x39, 0x80, 0xd3, 0x0f, 0x48, 0x99, 0xe8, 0x38, 0x63, 0xbe, 0xe8, 0x75, 0x58, 0x58, 0x87, 0xc5, 0xf4, 0x8b, 0x51, 0x6c, 0xcb, 0x73, 0x1c, 0x4b, 0xca, 0xa3, 0xdf, 0x07, 0xd0, 0x47, 0x95, 0x81, 0x40, 0x96, 0xc7, 0x9d, 0x7c, 0x5f, 0xdc, 0x4d, 0xab, 0xf5, 0xe2, 0x6a, 0x4c, 0xa1, 0x83, 0x8e, 0x0e, 0x5d, 0x87, 0xdb, 0x71, 0x30, 0x9b, 0x81, 0xea, 0x7c, 0xe4, 0x61, 0xe5, 0xe4, 0x4c, 0x7a, 0xb2, 0xf1, 0x05, 0xad, 0x75, 0xc5, 0x43, 0xc1, 0xe9, 0x17, 0x9c, 0x36, 0xa5, 0xfa, 0x55, 0x5e, 0xc9, 0x22, 0xff, 0xed, 0x1b, 0x76, 0xd2, 0x58, 0x01, 0xdd, 0x74, 0xf8, 0x0c, 0xd0, 0xa6, 0xba, 0x7b, 0xc2, 0x0d, 0xb0, 0xad, 0x58, 0x0b, 0x7b, 0xbb, 0x9d, 0xdc, 0xfd, 0x93, 0xad, 0x1c, 0x5f, 0x20, 0xf3, 0xe2, 0x7c, 0x3e, 0xa3, 0xa1, 0xe7, 0x1e, 0xb7, 0x4f, 0xf5, 0xf9, 0x44, 0xcd, 0x3b, 0x98, 0xf6, 0xd0, 0x45, 0x29, 0x59, 0x30, 0x11, 0xc4, 0xae, 0xce, 0xf6, 0xdc, 0xaa, 0x60, 0xfb, 0x18, 0x36, 0x8c, 0xb1, 0x2b, 0x6e, 0x39, 0x1b, 0x3f, 0x5d, 0xf7, 0x65, 0xcb, 0xab, 0xff, 0x15, 0x89, 0x8c, 0x84, 0x79, 0x6f, 0xc2, 0xb5, 0x3f, 0xa4, 0x90, 0x0d, 0xad, 0x03, 0x4a, 0x13, 0xb0, 0xce, 0x14, 0x45, 0xad, 0xda, 0x4e, 0xf7, 0x19, 0xbe, 0x74, 0x14, 0x19, 0xe2, 0x31, 0xe9, 0x2f, 0x1f, 0x66, 0x7a, 0x32, 0x84, 0x2a, 0x42, 0xdb, 0x79, 0xbd, 0x7a, 0x01, 0x4a, 0x80, 0x9c, 0x81, 0x59, 0x6e, 0x82, 0x62, 0x73, 0xd1, 0x6f, 0xe5, 0xd4, 0x04, 0x58, 0x24, 0x2a, 0xe1, 0x0e, 0x12, 0xe6, 0x0b, 0x34, 0x89, 0x53, 0x0c, 0x66, 0x22, 0xb5, 0xbb, 0x44, 0x45, 0x4f, 0x29, 0x61, 0x6e, 0x47, 0xe9, 0xa2, 0x97, 0xce, 0x1c, 0xa0, 0x74, 0x13, 0x7f, 0xd9, 0xae, 0x13, 0xe3, 0xee, 0x8e, 0xdb, 0xcf, 0x78, 0xaf, 0x26, 0x54, 0x59, 0xdb, 0x1a, 0xf3, 0x42, 0xdc, 0x0b, 0x2f, 0xc8, 0x09, 0xbd, 0xa0, 0x15, 0xb5, 0xa8, 0x2b, 0x2b, 0x7c, 0x54, 0xef, 0xe4, 0xe5, 0xfc, 0x25, 0x2e, 0xb1, 0x3d, 0x66, 0xe8, 0x08, 0x93, 0x6f, 0x19, 0x10, 0xf4, 0xc4, 0x8b, 0xe0, 0xef, 0x7a, };
19733 static const u8 ed25519_858_test_vectors_expected_sig[] = {
19734 	0xcc, 0x28, 0xb5, 0xef, 0x4b, 0x97, 0x73, 0x63, 0x7f, 0xae, 0x7e, 0x5f, 0x08, 0x4b, 0x69, 0x94, 0xaa, 0x35, 0x98, 0xf8, 0xf4, 0xa6, 0x5d, 0x0b, 0xb2, 0x01, 0xd1, 0x72, 0xd8, 0x61, 0xa3, 0x01, 0x49, 0xb3, 0x33, 0x8d, 0x3c, 0x3a, 0xb7, 0x5b, 0x32, 0xb2, 0x55, 0x95, 0xcd, 0x8b, 0x28, 0x96, 0x30, 0xc3, 0x37, 0x6a, 0xcd, 0x10, 0xba, 0x2a, 0xb2, 0x6b, 0xc1, 0xab, 0xa9, 0x00, 0x84, 0x0e, };
19735 static const ec_test_case ed25519_858_test_case = {
19736 	.name = "EDDSA25519-SHA512/wei25519 858",
19737 	.ec_str_p = &wei25519_str_params,
19738 	.priv_key = ed25519_858_test_vectors_priv_key,
19739 	.priv_key_len = sizeof(ed25519_858_test_vectors_priv_key),
19740 	.nn_random = NULL,
19741 	.hash_type = SHA512,
19742 	.msg = (const char *)ed25519_858_test_vectors_message,
19743 	.msglen = sizeof(ed25519_858_test_vectors_message),
19744 	.sig_type = EDDSA25519,
19745 	.exp_sig = ed25519_858_test_vectors_expected_sig,
19746 	.exp_siglen = sizeof(ed25519_858_test_vectors_expected_sig),
19747 	.adata = NULL,
19748 	.adata_len = 0
19749 };
19750 
19751 /************************************************/
19752 static const u8 ed25519_859_test_vectors_priv_key[] = {
19753 	0x77, 0x96, 0x4d, 0xad, 0x52, 0xb5, 0x79, 0xb8, 0x96, 0x67, 0x53, 0xda, 0x31, 0x86, 0xd1, 0xc5, 0xe9, 0xd3, 0x3d, 0x33, 0xa4, 0xdb, 0x38, 0xbc, 0x0d, 0x7a, 0x1a, 0x6c, 0x11, 0x2c, 0x13, 0xc2, };
19754 static const u8 ed25519_859_test_vectors_message[] = {
19755 	0xc3, 0x39, 0xe7, 0x18, 0xa7, 0x57, 0xf3, 0xf3, 0xbd, 0x1b, 0xab, 0xdd, 0x2e, 0x00, 0xaa, 0xa5, 0xcd, 0x7f, 0xc9, 0x00, 0x5e, 0xe3, 0x4b, 0x6f, 0xdc, 0x09, 0xd7, 0x1f, 0xbd, 0x9c, 0x92, 0x89, 0xab, 0x1d, 0xd1, 0x4d, 0xba, 0x2c, 0xad, 0x58, 0xcb, 0x80, 0x51, 0x16, 0x77, 0x7b, 0xd8, 0x0c, 0x85, 0x96, 0x64, 0x33, 0xad, 0x46, 0xf9, 0xca, 0x6e, 0x54, 0xf1, 0x3d, 0xd3, 0xca, 0x7e, 0x56, 0xe4, 0x7f, 0xea, 0x41, 0xe5, 0x48, 0x8a, 0x45, 0xad, 0x53, 0xbc, 0x5d, 0x65, 0x74, 0x27, 0xe1, 0xd7, 0x93, 0x8f, 0x55, 0x19, 0xf1, 0xb0, 0x9f, 0x5b, 0xdd, 0x98, 0xaa, 0xe5, 0xac, 0x96, 0x43, 0xef, 0x78, 0xeb, 0xa4, 0x93, 0x49, 0x25, 0x33, 0x9a, 0x15, 0x5d, 0xc6, 0x68, 0x28, 0x57, 0x10, 0x02, 0x09, 0x7a, 0x11, 0xa5, 0xce, 0xe7, 0xb5, 0x1a, 0x44, 0x1b, 0x75, 0x6b, 0x0c, 0xe6, 0x5b, 0x77, 0x9a, 0xfe, 0x19, 0xda, 0x6a, 0x18, 0xef, 0xc1, 0x45, 0xf6, 0x09, 0x0c, 0xe7, 0x70, 0xde, 0x9e, 0x0e, 0x91, 0xf5, 0x43, 0x27, 0x0a, 0x09, 0x85, 0xea, 0xb4, 0x75, 0x29, 0x3c, 0xcf, 0xdd, 0x31, 0x41, 0xc4, 0x14, 0x2e, 0x47, 0x22, 0x23, 0x3b, 0x26, 0x74, 0x99, 0x44, 0x76, 0x41, 0x23, 0x5d, 0x72, 0x8b, 0xd7, 0x5c, 0xd1, 0xad, 0xc0, 0xdb, 0x14, 0x2f, 0x73, 0x31, 0xad, 0xdd, 0xf8, 0xc5, 0xee, 0xa3, 0xd5, 0x76, 0x40, 0x5d, 0x86, 0x99, 0x15, 0xb5, 0x60, 0xf9, 0x64, 0xe3, 0xe0, 0x00, 0x3c, 0x91, 0xf5, 0xe9, 0x6b, 0xff, 0xbe, 0xee, 0xc7, 0x3e, 0x51, 0x02, 0x4e, 0xf5, 0x2c, 0x55, 0xc6, 0xdc, 0xb5, 0x4d, 0x58, 0x20, 0x3e, 0x62, 0xf4, 0xdd, 0xb6, 0xe1, 0x37, 0xeb, 0x08, 0xe1, 0xbf, 0x13, 0x26, 0x01, 0x8a, 0xfd, 0x1a, 0x86, 0xca, 0xb6, 0xc8, 0x41, 0xe0, 0x66, 0x1c, 0xe0, 0xa1, 0xa7, 0xae, 0x96, 0x7f, 0x24, 0xc1, 0xa7, 0x7f, 0xc7, 0xca, 0x50, 0x5f, 0x72, 0xe5, 0xf7, 0x93, 0x6e, 0x39, 0xc6, 0xf4, 0x83, 0x7e, 0x25, 0x95, 0x19, 0x5a, 0x69, 0xcd, 0x67, 0x65, 0x10, 0xa7, 0x16, 0x1a, 0x4d, 0xc5, 0xe3, 0x18, 0xf3, 0xd4, 0xf3, 0xac, 0x0a, 0xf0, 0x3f, 0x8c, 0x4a, 0xe5, 0xbc, 0xe3, 0x93, 0x24, 0xe9, 0x73, 0x8a, 0xea, 0x49, 0xf0, 0x02, 0xd3, 0x2d, 0x16, 0xde, 0x23, 0x17, 0xe9, 0x5a, 0x9f, 0x32, 0xee, 0x60, 0x4e, 0x13, 0xdb, 0x80, 0x38, 0xb2, 0x64, 0xcf, 0xc1, 0x7a, 0xed, 0x29, 0xc9, 0xde, 0xbf, 0x81, 0x91, 0xde, 0x9e, 0x0e, 0xfc, 0x95, 0x1a, 0xd6, 0xd5, 0x48, 0x67, 0x06, 0x8c, 0xf5, 0x0a, 0x26, 0x9c, 0x37, 0xa2, 0x41, 0xf8, 0x52, 0x06, 0x78, 0x8d, 0x23, 0x14, 0x31, 0x77, 0xf6, 0x59, 0xcc, 0xa6, 0x6c, 0xfc, 0xe0, 0x3b, 0xc0, 0x50, 0x22, 0x55, 0x33, 0x7f, 0x16, 0xb3, 0xda, 0xd6, 0xf7, 0x91, 0x32, 0xab, 0xf8, 0x0f, 0xf1, 0x2b, 0x6d, 0x22, 0x81, 0xe6, 0x37, 0xeb, 0x6c, 0x71, 0xf7, 0x6e, 0x26, 0x33, 0xa1, 0x14, 0x56, 0x52, 0x40, 0xee, 0xd0, 0x0f, 0xab, 0xea, 0x9e, 0xd8, 0xde, 0x28, 0xc8, 0x32, 0x21, 0xf8, 0xcb, 0x48, 0x5f, 0x51, 0x2d, 0x90, 0x08, 0xbf, 0xc7, 0x4a, 0x36, 0x6d, 0x4c, 0x2b, 0x4e, 0xd1, 0x72, 0xd3, 0x67, 0xe0, 0x24, 0x7c, 0xb6, 0x50, 0x98, 0xc1, 0x10, 0x28, 0x2e, 0x83, 0x1d, 0xf8, 0xe9, 0xbd, 0x4f, 0xbd, 0x5f, 0x4d, 0xd2, 0xb7, 0xf2, 0x42, 0x0c, 0x23, 0xb8, 0x5a, 0x63, 0x7a, 0xa2, 0x26, 0x2c, 0x3c, 0xb8, 0x84, 0x05, 0xf7, 0x07, 0x30, 0xc9, 0xab, 0x4c, 0x9d, 0x0f, 0x22, 0x7e, 0xe4, 0xfa, 0x4e, 0xf9, 0x1e, 0xfe, 0x9a, 0x59, 0xb3, 0xe6, 0xd8, 0x43, 0xdb, 0x87, 0x9f, 0x56, 0x50, 0x05, 0x9e, 0x99, 0xf0, 0xe4, 0xa0, 0x38, 0x68, 0x38, 0xe6, 0xf9, 0x87, 0x6f, 0x67, 0xd5, 0x0f, 0x89, 0x83, 0x2d, 0xda, 0x5f, 0x30, 0xa9, 0xcb, 0xfd, 0x71, 0x01, 0x34, 0xf9, 0xb5, 0xb5, 0x46, 0x27, 0x49, 0x6a, 0xa3, 0xa4, 0x32, 0x12, 0xb0, 0x7f, 0x03, 0xdb, 0x11, 0xd3, 0xd4, 0xf8, 0x75, 0xd4, 0x1d, 0x1f, 0x4a, 0xc4, 0x59, 0x69, 0xdd, 0xef, 0x69, 0xf8, 0x1a, 0x06, 0xd2, 0xb0, 0xc6, 0x46, 0xc9, 0xcd, 0x93, 0x1c, 0xf2, 0x50, 0x2f, 0xef, 0x0d, 0xd3, 0x2a, 0xbb, 0xf0, 0x95, 0x1e, 0xd3, 0x03, 0xf5, 0x28, 0x48, 0x25, 0x93, 0x43, 0x97, 0xfc, 0x22, 0xe7, 0x86, 0x98, 0xd3, 0x5a, 0xd8, 0x1d, 0x82, 0x25, 0x6b, 0xf9, 0xe1, 0x54, 0x00, 0xa1, 0x09, 0x16, 0x23, 0xa9, 0x82, 0x6f, 0x1e, 0x57, 0x79, 0x23, 0x67, 0x41, 0x7e, 0xf0, 0x25, 0x86, 0xd6, 0x4e, 0x65, 0x0d, 0xa9, 0xac, 0xe2, 0xf1, 0x8a, 0xa0, 0xa1, 0x26, 0xd8, 0x67, 0xca, 0xc4, 0xb5, 0xd4, 0xc9, 0x1b, 0xf5, 0x20, 0x9e, 0x53, 0x59, 0x55, 0x63, 0x86, 0xf8, 0x27, 0x08, 0x3e, 0xb5, 0x3e, 0x8b, 0x47, 0x09, 0xff, 0xfa, 0xbe, 0x92, 0xc6, 0x1d, 0x78, 0xff, 0xb5, 0xda, 0xf1, 0x02, 0x74, 0xe2, 0x42, 0xa7, 0x00, 0x91, 0xf3, 0xf9, 0xb9, 0xd5, 0x96, 0xc1, 0x25, 0x8c, 0x9a, 0x63, 0x38, 0x4f, 0x4b, 0x05, 0xb0, 0x28, 0x66, 0x12, 0x22, 0x18, 0x1c, 0x0f, 0xca, 0x96, 0x5f, 0x0a, 0x2c, 0xb5, 0x6e, 0x4b, 0x55, 0x6d, 0x6f, 0xbf, 0xf7, 0x1b, 0x64, 0xd9, 0xb3, 0x58, 0xda, 0x31, 0xaa, 0x37, 0xc7, 0x4f, 0xf5, 0x96, 0x2f, 0xb8, 0xd9, 0x6a, 0x38, 0x3d, 0x04, 0x97, 0x24, 0xc1, 0x9e, 0x24, 0x9c, 0x9e, 0xdb, 0xb2, 0xa3, 0x75, 0xb2, 0x3c, 0xe3, 0x10, 0x4d, 0xa0, 0xec, 0x58, 0xd2, 0x63, 0x5b, 0xa0, 0x3b, 0x55, 0x42, 0x3f, 0xa2, 0xdb, 0x7e, 0xb3, 0x49, 0xa4, 0xfc, 0x58, 0xa1, 0xef, 0x54, 0x0e, 0xe9, 0xa0, 0x2c, 0x2e, 0x70, 0x3c, 0x68, 0xd7, 0xf8, 0x47, 0x5f, 0x43, 0x4d, 0xdd, 0x32, 0x00, 0xdb, 0x1f, 0x06, 0x74, 0x57, 0x91, 0xa3, 0xac, 0xc3, 0x16, 0x0d, 0xba, 0x50, 0xa3, 0x93, 0x44, 0x7f, 0xfe, 0xef, 0x6d, 0xc7, 0xb9, 0x8f, 0xb0, 0x66, 0x84, 0xcc, 0x90, 0xfd, 0x85, 0x20, 0x3d, 0x11, 0x9d, 0xcd, 0x81, 0x99, 0xe4, 0xd9, 0xa8, 0x9a, 0xe3, 0x46, 0x7a, 0xe4, 0xbb, 0x19, 0xfb, 0x71, 0xcf, 0x74, 0x70, 0x29, 0xc2, 0x40, 0x96, 0xf9, 0xa5, 0x0e, };
19756 static const u8 ed25519_859_test_vectors_expected_sig[] = {
19757 	0x3d, 0x1b, 0x4b, 0x4e, 0x82, 0x0d, 0x25, 0x0b, 0xe2, 0xa8, 0xfa, 0x97, 0x1e, 0x59, 0x9e, 0x1e, 0x98, 0x97, 0x75, 0x28, 0xb2, 0xf9, 0x30, 0x18, 0x96, 0x81, 0xa9, 0x3b, 0x05, 0xe1, 0xa7, 0x06, 0xfc, 0x80, 0xef, 0xfa, 0x94, 0xe9, 0x29, 0xbc, 0x43, 0x92, 0x16, 0x56, 0x89, 0x73, 0x88, 0x28, 0x8a, 0x9b, 0x29, 0x27, 0x1f, 0x37, 0xa1, 0x4b, 0xe0, 0x14, 0xb8, 0x73, 0xc6, 0x8f, 0xc9, 0x04, };
19758 static const ec_test_case ed25519_859_test_case = {
19759 	.name = "EDDSA25519-SHA512/wei25519 859",
19760 	.ec_str_p = &wei25519_str_params,
19761 	.priv_key = ed25519_859_test_vectors_priv_key,
19762 	.priv_key_len = sizeof(ed25519_859_test_vectors_priv_key),
19763 	.nn_random = NULL,
19764 	.hash_type = SHA512,
19765 	.msg = (const char *)ed25519_859_test_vectors_message,
19766 	.msglen = sizeof(ed25519_859_test_vectors_message),
19767 	.sig_type = EDDSA25519,
19768 	.exp_sig = ed25519_859_test_vectors_expected_sig,
19769 	.exp_siglen = sizeof(ed25519_859_test_vectors_expected_sig),
19770 	.adata = NULL,
19771 	.adata_len = 0
19772 };
19773 
19774 /************************************************/
19775 static const u8 ed25519_860_test_vectors_priv_key[] = {
19776 	0x5c, 0xaf, 0xd8, 0x17, 0xa4, 0x41, 0x0c, 0xcb, 0x27, 0x12, 0x17, 0x23, 0xef, 0x32, 0x07, 0xc1, 0x73, 0x1a, 0x08, 0x61, 0x94, 0x5b, 0xe9, 0x62, 0x71, 0x4c, 0x0e, 0xd9, 0x50, 0x38, 0xa1, 0x95, };
19777 static const u8 ed25519_860_test_vectors_message[] = {
19778 	0x50, 0xb2, 0xf0, 0x53, 0x42, 0x41, 0x80, 0x46, 0xd1, 0x6a, 0x30, 0xbe, 0x4f, 0xc6, 0x2b, 0x67, 0xda, 0xf6, 0xc1, 0x8d, 0x2a, 0x74, 0x24, 0x2b, 0x7c, 0xb5, 0x5b, 0xa9, 0x0a, 0xd2, 0x0b, 0x6c, 0xaf, 0xdd, 0x60, 0x15, 0x57, 0x37, 0xc2, 0x9d, 0xe4, 0x8a, 0xa5, 0xd7, 0x99, 0xfe, 0x54, 0x95, 0xfe, 0x59, 0xdf, 0x5a, 0x9b, 0x8c, 0x0a, 0x8e, 0x54, 0x18, 0x90, 0x47, 0x63, 0xfb, 0xad, 0x83, 0xea, 0x69, 0x86, 0x65, 0x1b, 0xac, 0x31, 0x11, 0x79, 0x39, 0xce, 0xf4, 0xe0, 0xc7, 0x99, 0x30, 0xd5, 0x2d, 0xfd, 0x7d, 0xb4, 0x3c, 0x31, 0xad, 0xda, 0xe3, 0xcf, 0x93, 0xe3, 0xef, 0xc5, 0xa9, 0x16, 0xef, 0xd0, 0xd6, 0x5f, 0xdc, 0x30, 0x90, 0x9f, 0xa3, 0x56, 0xcc, 0xbc, 0x52, 0x47, 0xd7, 0xaa, 0xa0, 0x67, 0x13, 0x1b, 0x6b, 0x48, 0x20, 0xfd, 0x02, 0xf8, 0xe3, 0x95, 0xf5, 0xa9, 0x70, 0x4c, 0x9b, 0xdd, 0x75, 0x60, 0xa6, 0x11, 0xd6, 0x25, 0x59, 0xa8, 0xdf, 0xe1, 0xd2, 0x85, 0x9c, 0x52, 0x48, 0x6c, 0xc1, 0x1e, 0xd3, 0x33, 0x19, 0x92, 0x48, 0x8f, 0x41, 0x75, 0x20, 0xd9, 0x20, 0xdc, 0x73, 0xa3, 0x2d, 0x4f, 0x08, 0x11, 0x00, 0x82, 0x50, 0x0f, 0x5a, 0x96, 0x2a, 0x30, 0x69, 0x32, 0xc6, 0xa7, 0x80, 0x29, 0x55, 0xce, 0xda, 0xd7, 0xab, 0xf5, 0x3b, 0x0f, 0x19, 0xfe, 0x47, 0x94, 0xa3, 0x1d, 0x6b, 0x85, 0x53, 0x80, 0x28, 0x43, 0x06, 0xcc, 0xff, 0x71, 0xa4, 0x00, 0x78, 0x59, 0xa2, 0x32, 0x8b, 0xb1, 0x90, 0x24, 0xc4, 0x3e, 0x10, 0xd7, 0x70, 0x64, 0xd8, 0x66, 0xd9, 0x62, 0x2d, 0x14, 0x2c, 0x27, 0x35, 0x4b, 0x84, 0xac, 0x3b, 0x4f, 0x82, 0x32, 0xf7, 0xa2, 0xf8, 0xaf, 0x64, 0x09, 0xd5, 0xcc, 0x75, 0x7a, 0x18, 0xef, 0x81, 0x3d, 0xfa, 0xf4, 0xb9, 0xbc, 0x04, 0x0c, 0xb0, 0x06, 0xd7, 0x7f, 0x14, 0x36, 0x41, 0xaa, 0x20, 0x36, 0xac, 0x7b, 0xc9, 0x28, 0xdc, 0x96, 0x58, 0x5d, 0x9e, 0x36, 0xc7, 0xbc, 0x9c, 0x56, 0x4d, 0x25, 0xf1, 0xc2, 0xcc, 0x0b, 0xea, 0xb9, 0xd5, 0xf2, 0x07, 0xe8, 0x4b, 0x21, 0x5f, 0x1e, 0x7a, 0xa6, 0xfc, 0x32, 0x82, 0x37, 0xb7, 0x9c, 0x39, 0x92, 0x3a, 0x4e, 0x09, 0xc7, 0xc7, 0x3d, 0xc6, 0xb2, 0x4b, 0x14, 0x16, 0x29, 0x4d, 0x79, 0x8a, 0x4e, 0xd5, 0xf7, 0x58, 0x33, 0x6d, 0x91, 0x5a, 0x87, 0x0a, 0x7d, 0x6b, 0x75, 0x92, 0xb5, 0xb8, 0x8a, 0xac, 0xe2, 0xdc, 0x5f, 0x26, 0x7b, 0xdb, 0x49, 0x11, 0x41, 0xcb, 0xba, 0xe2, 0xa6, 0x77, 0x40, 0x7c, 0xc0, 0x95, 0x5f, 0x96, 0x19, 0x62, 0x59, 0x93, 0x04, 0xba, 0x0b, 0x83, 0x96, 0x71, 0xa5, 0xc0, 0x00, 0xe9, 0x20, 0x10, 0x8a, 0x05, 0x29, 0x80, 0x87, 0xe4, 0x97, 0x70, 0xae, 0xee, 0xaa, 0xb3, 0x63, 0x27, 0x24, 0xcb, 0x0f, 0xc2, 0x28, 0x57, 0x96, 0xdc, 0x41, 0x48, 0x14, 0xfd, 0xa7, 0x8a, 0x54, 0xe6, 0x7f, 0x00, 0xa0, 0x2f, 0x77, 0xd3, 0xcc, 0xde, 0x1e, 0xd9, 0xd7, 0xb1, 0xde, 0xf1, 0x4e, 0xa1, 0xf6, 0x19, 0x10, 0xbd, 0xf3, 0x0a, 0x11, 0x96, 0xfc, 0x63, 0x51, 0xb6, 0x22, 0x54, 0xd6, 0x44, 0x5e, 0x6c, 0x90, 0x44, 0x5b, 0x16, 0xef, 0xaf, 0xe2, 0x89, 0xa2, 0x78, 0x4b, 0x92, 0xe4, 0x2b, 0x78, 0xa4, 0xa9, 0x00, 0xc3, 0x5f, 0x55, 0x63, 0x0b, 0xbb, 0x77, 0x62, 0xff, 0x9e, 0xb7, 0xfe, 0xf7, 0xd0, 0x4c, 0x90, 0xb9, 0x57, 0x1c, 0x4f, 0xc7, 0x60, 0xa4, 0x10, 0xdb, 0xfc, 0x25, 0x29, 0x91, 0xd0, 0xba, 0x27, 0xf2, 0xd4, 0x14, 0xfe, 0x64, 0xee, 0xfd, 0xff, 0x4a, 0xbc, 0x18, 0x81, 0x7c, 0x97, 0x06, 0xc6, 0x31, 0xbf, 0xa2, 0x03, 0x82, 0x1d, 0x3b, 0x92, 0xcb, 0x33, 0x8b, 0xaa, 0xf5, 0xd1, 0x23, 0x2b, 0x46, 0x26, 0x47, 0x95, 0x4d, 0x09, 0x02, 0x46, 0x2f, 0xb1, 0x69, 0x6e, 0x99, 0x1f, 0x07, 0xfa, 0x9c, 0x3d, 0xbc, 0xf2, 0x87, 0x29, 0x60, 0x83, 0x1b, 0x4d, 0xed, 0x92, 0xa4, 0x21, 0xcf, 0x21, 0xb7, 0x53, 0x16, 0x5f, 0xf3, 0x09, 0xef, 0xe2, 0xef, 0x54, 0x38, 0xc0, 0x12, 0x70, 0xd1, 0x0c, 0x6a, 0x03, 0xd3, 0x4f, 0x71, 0xeb, 0xc2, 0xda, 0xb1, 0xda, 0x90, 0xda, 0xa3, 0x57, 0x98, 0x4d, 0x24, 0x62, 0xbc, 0xb3, 0x5e, 0xe3, 0xde, 0x55, 0xc3, 0xa5, 0x5f, 0x8b, 0x98, 0xae, 0xc2, 0x11, 0x4f, 0x74, 0xc8, 0x43, 0x41, 0xa6, 0x41, 0x27, 0x86, 0x3c, 0x12, 0x0b, 0x5e, 0xca, 0xd9, 0xe3, 0x29, 0xa5, 0x75, 0x6a, 0xe4, 0xa2, 0x55, 0x5d, 0x84, 0x92, 0xcd, 0xa8, 0x35, 0x22, 0x5a, 0x8d, 0xeb, 0x3f, 0x9c, 0x15, 0x58, 0xf0, 0xd4, 0x25, 0xbc, 0x17, 0x2f, 0xf7, 0x64, 0x0c, 0xc7, 0x9d, 0x97, 0x80, 0x04, 0x16, 0xfd, 0x62, 0x94, 0xcc, 0xcc, 0x70, 0xcd, 0x1c, 0xf5, 0xb6, 0xa8, 0xe2, 0xaa, 0x07, 0x28, 0x9b, 0xd5, 0x22, 0xbf, 0x99, 0xdc, 0x96, 0xc3, 0x6b, 0xfe, 0xe8, 0x0e, 0x84, 0x6f, 0x5d, 0xd7, 0x46, 0xdd, 0x4c, 0x50, 0x03, 0xe4, 0xbf, 0x7d, 0x29, 0xef, 0xee, 0xa7, 0x50, 0x8a, 0x01, 0x61, 0x23, 0x68, 0x82, 0xc9, 0xa8, 0x2a, 0x56, 0xaa, 0x2c, 0x25, 0x74, 0x66, 0x96, 0x52, 0xc6, 0x30, 0x92, 0x3a, 0xb4, 0x70, 0xdd, 0xb9, 0x5d, 0x45, 0x6f, 0x7b, 0x8e, 0x8f, 0x07, 0x59, 0x9b, 0xa0, 0xd1, 0xd3, 0x8b, 0xc7, 0xf8, 0x17, 0x6e, 0x3f, 0xdf, 0x02, 0x09, 0xbd, 0x6f, 0x75, 0xd4, 0xcc, 0x11, 0x80, 0x3a, 0xfb, 0x18, 0x56, 0xcb, 0xc0, 0xe9, 0x1c, 0x73, 0x73, 0x0e, 0x4f, 0xb9, 0x8f, 0x3c, 0x94, 0x8a, 0x87, 0xd5, 0xa7, 0xed, 0xcc, 0x0a, 0x6a, 0x8a, 0xc8, 0x10, 0xea, 0x3e, 0xaa, 0x6e, 0x06, 0x3c, 0xec, 0x5f, 0x55, 0x66, 0xcd, 0x6d, 0xed, 0xc5, 0x37, 0xdb, 0x6d, 0x68, 0x6b, 0x80, 0x21, 0xf6, 0xea, 0x82, 0x5a, 0xd7, 0x47, 0x5e, 0xc7, 0xf1, 0xc5, 0xdb, 0xde, 0x45, 0xd3, 0xff, 0x4b, 0x5e, 0xe5, 0x1c, 0x0d, 0x04, 0xf1, 0xd7, 0x40, 0x18, 0xeb, 0x91, 0xe5, 0x04, 0x0d, 0x01, 0xc8, 0xb7, 0x1a, 0x4a, 0xab, 0xbd, 0xe6, 0x09, 0x4d, 0x4a, 0xfe, 0xcc, 0xb1, 0x8d, 0xfc, 0xde, 0xd7, 0x3e, 0xa7, 0x5e, 0x3b, 0x9f, 0x8c, 0xe1, 0x67, 0xdf, 0x62, 0x09, 0xae, };
19779 static const u8 ed25519_860_test_vectors_expected_sig[] = {
19780 	0x28, 0x85, 0x15, 0xfa, 0x72, 0x59, 0xf1, 0xeb, 0x58, 0x7f, 0xe8, 0xa2, 0xc4, 0x03, 0x43, 0x4c, 0x46, 0xf8, 0xd7, 0xe7, 0x5b, 0x6d, 0x22, 0xbb, 0x38, 0x96, 0x56, 0x6c, 0x01, 0x7d, 0x09, 0xb6, 0x98, 0xc2, 0xc8, 0x07, 0x79, 0x9c, 0x2f, 0x65, 0xf9, 0xcd, 0xb4, 0xeb, 0x58, 0x15, 0x1c, 0xcf, 0xc4, 0x8d, 0x10, 0x80, 0x61, 0xa6, 0xb3, 0x14, 0x84, 0x32, 0xb2, 0xbf, 0xc1, 0xcd, 0xab, 0x05, };
19781 static const ec_test_case ed25519_860_test_case = {
19782 	.name = "EDDSA25519-SHA512/wei25519 860",
19783 	.ec_str_p = &wei25519_str_params,
19784 	.priv_key = ed25519_860_test_vectors_priv_key,
19785 	.priv_key_len = sizeof(ed25519_860_test_vectors_priv_key),
19786 	.nn_random = NULL,
19787 	.hash_type = SHA512,
19788 	.msg = (const char *)ed25519_860_test_vectors_message,
19789 	.msglen = sizeof(ed25519_860_test_vectors_message),
19790 	.sig_type = EDDSA25519,
19791 	.exp_sig = ed25519_860_test_vectors_expected_sig,
19792 	.exp_siglen = sizeof(ed25519_860_test_vectors_expected_sig),
19793 	.adata = NULL,
19794 	.adata_len = 0
19795 };
19796 
19797 /************************************************/
19798 static const u8 ed25519_861_test_vectors_priv_key[] = {
19799 	0xd5, 0xca, 0xc8, 0x55, 0x21, 0xaf, 0x78, 0x1f, 0x3d, 0x5f, 0x66, 0x86, 0x2a, 0x04, 0xb0, 0x87, 0xd0, 0xcc, 0xdc, 0xac, 0x92, 0x6c, 0xfe, 0x9e, 0x74, 0x7b, 0xe8, 0xd5, 0xc2, 0x63, 0x3f, 0x78, };
19800 static const u8 ed25519_861_test_vectors_message[] = {
19801 	0xd5, 0xe7, 0xdd, 0x59, 0x49, 0x09, 0x37, 0x5a, 0x4b, 0xe0, 0x8e, 0x74, 0x82, 0x5d, 0x59, 0x8d, 0x53, 0x5b, 0xf4, 0x6e, 0xc0, 0x84, 0xde, 0x52, 0xb5, 0x73, 0x91, 0xc1, 0x27, 0xef, 0xf5, 0x22, 0x4a, 0xb2, 0xd1, 0x94, 0xdf, 0xb2, 0x66, 0x33, 0x47, 0x8d, 0x02, 0xfb, 0xda, 0x74, 0xd1, 0xdc, 0x58, 0x21, 0xf7, 0x91, 0xbf, 0x96, 0x2d, 0x8d, 0xad, 0x9e, 0x4e, 0xf2, 0x42, 0x24, 0x89, 0x19, 0x07, 0xb0, 0x18, 0x9c, 0xcc, 0xc8, 0xb1, 0x33, 0xd3, 0xaa, 0x20, 0x78, 0x92, 0x6d, 0xae, 0xf2, 0x89, 0x8c, 0x19, 0xc2, 0xe0, 0xbf, 0xe0, 0x20, 0x41, 0xa9, 0x04, 0xb9, 0xf0, 0x4b, 0xe7, 0xcb, 0x50, 0xae, 0xd0, 0xd9, 0x62, 0xd1, 0xad, 0xd2, 0x0b, 0x40, 0xa8, 0x8a, 0xb7, 0xab, 0xad, 0x62, 0x6c, 0xf4, 0xda, 0x0a, 0x78, 0xf9, 0xf5, 0x36, 0x85, 0x50, 0x1f, 0xdf, 0xa5, 0x85, 0x43, 0xdd, 0xf2, 0xea, 0x0e, 0xea, 0x69, 0xe7, 0xba, 0x16, 0x0f, 0x8a, 0x17, 0x7a, 0x25, 0xfc, 0x21, 0xe8, 0xa2, 0x9c, 0x66, 0x16, 0x33, 0xe3, 0x0e, 0x52, 0x3b, 0x0e, 0xc0, 0x1b, 0x2a, 0xee, 0xe2, 0xd4, 0x26, 0xe4, 0xae, 0xad, 0x45, 0x74, 0x88, 0x10, 0x8f, 0xe5, 0xf5, 0x69, 0xcf, 0x6e, 0x2f, 0xdb, 0x68, 0xc2, 0x8f, 0x2b, 0x30, 0x52, 0x82, 0x35, 0x77, 0xcd, 0x93, 0x4e, 0x7b, 0x06, 0x2c, 0x8a, 0x34, 0x24, 0xcd, 0x43, 0x67, 0xfb, 0x31, 0x5b, 0x74, 0x4c, 0xa3, 0x52, 0x55, 0xd7, 0xf1, 0xaf, 0x4e, 0xdc, 0x9b, 0xc9, 0xd8, 0x83, 0x71, 0x23, 0xd9, 0x79, 0x03, 0xb4, 0x3d, 0xf3, 0x67, 0xc7, 0xd4, 0x18, 0xc7, 0x93, 0x47, 0xff, 0xaf, 0xe7, 0xc7, 0xb1, 0x72, 0x4b, 0xba, 0x34, 0xed, 0xe8, 0xd3, 0x56, 0x8d, 0xb5, 0x05, 0x98, 0x3e, 0xad, 0x47, 0xf6, 0x2b, 0x56, 0xe3, 0x61, 0x8c, 0x11, 0xdb, 0x8f, 0xf0, 0xbf, 0x49, 0x2a, 0xc6, 0x75, 0x97, 0xd2, 0xf9, 0x6a, 0x6f, 0x42, 0x0f, 0xf9, 0x85, 0x34, 0x1b, 0x78, 0x6a, 0xd6, 0xce, 0xae, 0xdd, 0x10, 0x5d, 0x0d, 0x15, 0x63, 0xb2, 0xd5, 0x35, 0x43, 0xd7, 0x8e, 0x72, 0x56, 0x72, 0x5d, 0x20, 0x4e, 0x82, 0xed, 0x3a, 0x2e, 0x6a, 0x6e, 0x83, 0xdf, 0x61, 0xfc, 0x28, 0x2a, 0x62, 0xca, 0x06, 0xe6, 0x21, 0x74, 0xb5, 0x5b, 0xef, 0x40, 0xa0, 0xbd, 0xf8, 0xd2, 0x3d, 0x1c, 0x33, 0x0c, 0x71, 0x44, 0x14, 0x85, 0xee, 0x85, 0xe7, 0x0c, 0xed, 0x12, 0x1e, 0xac, 0x60, 0x7f, 0x58, 0x06, 0x78, 0x16, 0x3e, 0x4b, 0xd7, 0x5c, 0x67, 0x09, 0xff, 0x3b, 0x41, 0xde, 0x80, 0x59, 0x4b, 0x9e, 0x2f, 0x2a, 0xa2, 0x78, 0xfe, 0xfc, 0x21, 0xd7, 0x3e, 0xe3, 0xf7, 0x28, 0x54, 0xb9, 0x58, 0xd9, 0xa8, 0xf6, 0x3e, 0x3d, 0x70, 0xf7, 0xfe, 0xad, 0x8c, 0x3d, 0xca, 0x8e, 0x71, 0xbf, 0x4b, 0x9c, 0x2a, 0x36, 0xf2, 0x12, 0xb3, 0x2e, 0xb3, 0x29, 0x2e, 0x63, 0x55, 0x80, 0x38, 0x65, 0x59, 0xee, 0x1a, 0x11, 0xdf, 0x15, 0x29, 0x3a, 0x0c, 0x21, 0xcd, 0x73, 0x60, 0x86, 0x98, 0x46, 0xba, 0x5b, 0x7b, 0xa8, 0x5c, 0x99, 0x4f, 0x5b, 0x2f, 0x9c, 0xc5, 0x0e, 0x5e, 0xea, 0x8e, 0x4b, 0x36, 0x91, 0xd8, 0x86, 0x06, 0x2a, 0x18, 0xcf, 0xb1, 0x82, 0xf1, 0xe8, 0xb6, 0x11, 0xfe, 0x1b, 0xc2, 0x63, 0x15, 0x9c, 0xb8, 0xa0, 0x86, 0x78, 0x7c, 0x81, 0x1b, 0xea, 0x48, 0x12, 0x53, 0x00, 0x08, 0xc7, 0x0c, 0xa0, 0xc4, 0x7e, 0x64, 0xeb, 0x2f, 0xba, 0xd5, 0xb0, 0x27, 0x27, 0xa6, 0x6f, 0x2c, 0xdd, 0x6d, 0xde, 0x86, 0xf5, 0xd2, 0xa9, 0x64, 0x5a, 0x1e, 0x9a, 0xa6, 0x6e, 0xe0, 0xe1, 0x5b, 0x97, 0xf5, 0xfd, 0x22, 0x95, 0x96, 0xee, 0x02, 0xe6, 0x61, 0xca, 0xb9, 0xa5, 0x4e, 0xee, 0x1b, 0x81, 0xf9, 0x8f, 0xe2, 0x56, 0xed, 0x6c, 0x54, 0xfe, 0xaa, 0xa0, 0xba, 0x04, 0x7e, 0xea, 0x35, 0x33, 0x44, 0xf6, 0xe5, 0xc6, 0x2b, 0xe1, 0xe9, 0xd5, 0xc0, 0x9a, 0x2a, 0x69, 0x94, 0x11, 0x11, 0x0c, 0x56, 0xd1, 0x94, 0x9e, 0x90, 0xc0, 0x7b, 0x19, 0x38, 0xba, 0x95, 0x55, 0xac, 0x1b, 0xe8, 0x51, 0x1b, 0x51, 0x02, 0x18, 0xd7, 0xcd, 0xe7, 0xe1, 0xd7, 0x4a, 0x68, 0xaf, 0xb6, 0x42, 0xf8, 0x17, 0x15, 0xfe, 0x9e, 0x6c, 0x96, 0xc5, 0x03, 0x81, 0xae, 0x5a, 0x9d, 0xf3, 0x06, 0x51, 0x87, 0x85, 0xdc, 0x4d, 0xbc, 0x3a, 0x64, 0xf6, 0x0f, 0x24, 0x5c, 0x56, 0x4b, 0x80, 0x29, 0x51, 0x2f, 0x38, 0x1b, 0x56, 0xee, 0x78, 0x77, 0x03, 0x42, 0x68, 0x03, 0xc8, 0x0a, 0xb1, 0xc3, 0x11, 0xf4, 0x77, 0xb8, 0x91, 0x70, 0x8b, 0x59, 0xfa, 0x74, 0x8f, 0x32, 0xde, 0xbf, 0x54, 0xd2, 0x41, 0x37, 0x71, 0x97, 0x8c, 0x26, 0x5c, 0x9b, 0x87, 0x11, 0x4a, 0xdf, 0x25, 0xb8, 0x33, 0x7a, 0xa9, 0x3b, 0x0e, 0x63, 0x2a, 0x5b, 0x6e, 0xda, 0x47, 0x4b, 0xec, 0x16, 0x32, 0x81, 0x59, 0xfb, 0xed, 0x06, 0x7b, 0x00, 0xb8, 0x7a, 0xdd, 0x61, 0x96, 0x54, 0x92, 0xec, 0xcc, 0x6f, 0xd3, 0x46, 0x1c, 0x10, 0x00, 0xe4, 0x03, 0x7a, 0xb1, 0xe8, 0xac, 0x89, 0xa8, 0x52, 0x4f, 0x78, 0xae, 0x09, 0xd3, 0x08, 0xea, 0x6c, 0x94, 0xff, 0x88, 0x37, 0x32, 0xb7, 0x12, 0xee, 0xc0, 0xef, 0x07, 0x71, 0x8d, 0x33, 0xc0, 0x11, 0xb9, 0x39, 0x8f, 0x8c, 0xfe, 0xa7, 0x33, 0x07, 0x5a, 0xf3, 0x31, 0xfb, 0x3f, 0x97, 0xcd, 0xc1, 0xe8, 0xc9, 0x9f, 0x6a, 0x10, 0x72, 0x5a, 0x68, 0xc5, 0xc5, 0x8f, 0xdd, 0x8b, 0x0b, 0xaa, 0x50, 0x22, 0x7f, 0x34, 0xd7, 0x3d, 0x23, 0x90, 0x52, 0x03, 0x69, 0x8e, 0xaf, 0xf6, 0x26, 0x65, 0x4c, 0xe8, 0x3d, 0x86, 0x51, 0x08, 0x49, 0x9b, 0xe6, 0x86, 0x1f, 0x61, 0x41, 0xbf, 0xa6, 0x21, 0x9d, 0x7a, 0xb8, 0xb5, 0x84, 0x51, 0x91, 0x99, 0xf8, 0x80, 0xcf, 0xa1, 0xb2, 0x6d, 0x91, 0x94, 0xd3, 0x01, 0x71, 0x1c, 0x30, 0xfb, 0x44, 0x6d, 0x6e, 0xa7, 0x64, 0xa4, 0x31, 0x0f, 0x70, 0xe4, 0xb8, 0x59, 0xcf, 0x95, 0xfd, 0x44, 0xaa, 0xf8, 0xc1, 0xe2, 0x40, 0xe8, 0x0a, 0x71, 0x61, 0x1d, 0xbc, 0xf5, 0x2d, 0xa5, 0x8e, 0xdc, 0x32, 0x03, 0x11, 0xde, 0x38, 0x8d, 0x5d, 0x9d, 0x76, 0x9e, 0xb5, 0x9b, 0xe0, 0x93, };
19802 static const u8 ed25519_861_test_vectors_expected_sig[] = {
19803 	0x5d, 0xc0, 0x33, 0x63, 0x41, 0x4e, 0xea, 0xc0, 0x08, 0x6f, 0xb6, 0xfe, 0xba, 0x44, 0x21, 0x7c, 0xef, 0x4c, 0x52, 0x0d, 0xb6, 0x19, 0x26, 0xdf, 0x68, 0x0c, 0xa6, 0x02, 0xdc, 0x11, 0x00, 0x3c, 0xe6, 0xaf, 0xbf, 0x3d, 0x13, 0xc8, 0xc5, 0xb0, 0x52, 0x73, 0xd2, 0x14, 0x15, 0xe6, 0x7c, 0x14, 0xa2, 0xee, 0x5d, 0x0b, 0x1d, 0x53, 0x52, 0x41, 0x9a, 0xb9, 0xb3, 0x9c, 0x00, 0x3a, 0x51, 0x0c, };
19804 static const ec_test_case ed25519_861_test_case = {
19805 	.name = "EDDSA25519-SHA512/wei25519 861",
19806 	.ec_str_p = &wei25519_str_params,
19807 	.priv_key = ed25519_861_test_vectors_priv_key,
19808 	.priv_key_len = sizeof(ed25519_861_test_vectors_priv_key),
19809 	.nn_random = NULL,
19810 	.hash_type = SHA512,
19811 	.msg = (const char *)ed25519_861_test_vectors_message,
19812 	.msglen = sizeof(ed25519_861_test_vectors_message),
19813 	.sig_type = EDDSA25519,
19814 	.exp_sig = ed25519_861_test_vectors_expected_sig,
19815 	.exp_siglen = sizeof(ed25519_861_test_vectors_expected_sig),
19816 	.adata = NULL,
19817 	.adata_len = 0
19818 };
19819 
19820 /************************************************/
19821 static const u8 ed25519_862_test_vectors_priv_key[] = {
19822 	0x15, 0x9a, 0x9e, 0xdd, 0xea, 0x5d, 0xe6, 0x34, 0x03, 0x98, 0x7b, 0x56, 0x70, 0xdb, 0x6f, 0xac, 0x98, 0xff, 0xe5, 0xec, 0x3a, 0x6c, 0xf0, 0x15, 0x16, 0xee, 0x2c, 0x70, 0xce, 0x3b, 0x3b, 0xe0, };
19823 static const u8 ed25519_862_test_vectors_message[] = {
19824 	0xd1, 0x95, 0xe5, 0x90, 0x0d, 0xd3, 0x93, 0x14, 0x81, 0xbc, 0x01, 0x2e, 0x77, 0xbf, 0x06, 0x0a, 0xaf, 0x31, 0xcc, 0xcb, 0x0f, 0xe1, 0xa6, 0xc4, 0x0e, 0xaf, 0x28, 0x6a, 0x61, 0x66, 0xa1, 0x66, 0xb1, 0xea, 0x37, 0x05, 0x34, 0x26, 0x28, 0x4b, 0x92, 0x0c, 0x67, 0xfe, 0xe1, 0xd4, 0xb9, 0xd8, 0x6f, 0xb8, 0x61, 0xcc, 0x6e, 0xdd, 0x34, 0xe1, 0x0c, 0x52, 0x23, 0x37, 0x34, 0xd9, 0xcd, 0x92, 0xf5, 0xdb, 0xf4, 0x33, 0x51, 0x2e, 0xd2, 0x55, 0xac, 0x6b, 0x26, 0xe5, 0x6f, 0x5c, 0x66, 0x4b, 0xcc, 0xb2, 0x60, 0x69, 0x2c, 0xf4, 0x9d, 0x08, 0x36, 0x3e, 0xe9, 0x4e, 0x33, 0x6a, 0xcc, 0x48, 0x96, 0x00, 0xa6, 0xaa, 0x51, 0x2a, 0x04, 0x0f, 0x10, 0xeb, 0xf1, 0x8f, 0x7d, 0x2c, 0xbe, 0xe9, 0xca, 0xd1, 0x4c, 0x4f, 0xf8, 0x73, 0x77, 0xa3, 0x26, 0x34, 0x19, 0xd8, 0x29, 0x75, 0x29, 0x40, 0x1f, 0x15, 0x33, 0x7a, 0x4c, 0x4d, 0x23, 0x25, 0xed, 0x7d, 0xef, 0x76, 0x3a, 0x0d, 0x47, 0x9c, 0xaa, 0x40, 0x82, 0x66, 0x83, 0x4d, 0xa2, 0x42, 0xf3, 0xa1, 0x6b, 0x79, 0xa4, 0x58, 0x66, 0xb9, 0xd9, 0xd7, 0x1a, 0x48, 0x29, 0x31, 0x76, 0x74, 0xcf, 0xf7, 0xae, 0x6c, 0x8c, 0x58, 0x7b, 0xa4, 0xd4, 0x98, 0x0e, 0x81, 0x86, 0x13, 0xd3, 0xad, 0x82, 0x50, 0x7a, 0x7a, 0xb0, 0x32, 0xbb, 0xf9, 0x9c, 0x5e, 0x9b, 0x64, 0x03, 0x71, 0xbb, 0x41, 0xb9, 0x1e, 0x96, 0x5d, 0xc3, 0x1e, 0x8c, 0x7d, 0x4b, 0x3b, 0xaf, 0xd4, 0x95, 0x70, 0x52, 0x7f, 0xaa, 0xa8, 0x7a, 0xbb, 0xf6, 0x41, 0x6c, 0x47, 0xb1, 0xb1, 0xb0, 0x9d, 0x34, 0x01, 0x25, 0x31, 0x26, 0xcb, 0x24, 0x6a, 0xe4, 0x5a, 0xcf, 0x5f, 0x10, 0x0b, 0xb1, 0xf9, 0x2f, 0x11, 0xa5, 0xc6, 0xc9, 0x37, 0xe0, 0x58, 0x8d, 0x8b, 0x14, 0x6b, 0x3e, 0x4d, 0x3c, 0x7e, 0x5b, 0xf5, 0x74, 0x84, 0xe9, 0x84, 0xfe, 0x3a, 0xfc, 0x47, 0x72, 0xf2, 0x4e, 0xbf, 0x89, 0x4c, 0xdb, 0x39, 0x83, 0x7f, 0xbd, 0x46, 0x9a, 0x92, 0x1a, 0x96, 0xac, 0x5a, 0xf5, 0xe0, 0x70, 0xf6, 0xc9, 0x62, 0x4c, 0x58, 0x8e, 0x9d, 0x4f, 0xe6, 0xdd, 0xfe, 0xed, 0x1f, 0x8f, 0xe2, 0x0e, 0xb9, 0xc4, 0x60, 0xce, 0x6e, 0xe3, 0x8b, 0xf4, 0x71, 0xdd, 0x56, 0xdc, 0xf2, 0xe3, 0xee, 0x99, 0x8b, 0x8e, 0x7f, 0xdc, 0xf6, 0x12, 0xe7, 0x8a, 0x2e, 0x7c, 0x71, 0x73, 0xc0, 0x16, 0x09, 0x82, 0xbe, 0xde, 0xcc, 0x2c, 0x62, 0x1e, 0x5f, 0x66, 0x11, 0xb4, 0xef, 0x21, 0x02, 0xe3, 0x2e, 0x7c, 0x29, 0x80, 0x3a, 0x7e, 0x25, 0xfe, 0xe1, 0x51, 0x24, 0x31, 0x58, 0xa7, 0x6e, 0xe5, 0xd8, 0xc1, 0xbb, 0x2e, 0x7d, 0x8c, 0x88, 0x87, 0x1b, 0xa4, 0x33, 0xc5, 0xe5, 0x41, 0xc2, 0x60, 0x26, 0x93, 0xd9, 0x01, 0x10, 0xbe, 0x79, 0x5b, 0x52, 0x3a, 0x8f, 0xad, 0xb6, 0x05, 0xd8, 0xe3, 0xd7, 0xe4, 0x93, 0xfe, 0x24, 0x5d, 0x9c, 0xc5, 0x32, 0x0d, 0x32, 0xb8, 0x5d, 0x61, 0x35, 0xa4, 0x4b, 0x11, 0x68, 0x72, 0x94, 0x14, 0xc2, 0xca, 0x21, 0x56, 0x0f, 0xb4, 0xfe, 0xec, 0xde, 0xef, 0x0c, 0xf7, 0xd8, 0xe0, 0x71, 0x27, 0x4e, 0x88, 0x56, 0xc0, 0x04, 0x03, 0x3e, 0x80, 0x01, 0x3c, 0x73, 0xaf, 0x71, 0x77, 0xc3, 0x19, 0x78, 0x16, 0xa5, 0x03, 0x2d, 0x90, 0x59, 0xb1, 0xb6, 0xe4, 0x15, 0x2c, 0x38, 0x61, 0x92, 0xdd, 0x54, 0xb9, 0x0f, 0x9d, 0x30, 0x8b, 0xe9, 0x8e, 0xd7, 0xd0, 0xca, 0x9d, 0x12, 0xe8, 0xaa, 0xf6, 0xf9, 0xd8, 0x69, 0x38, 0x6a, 0xa9, 0xdb, 0xb0, 0x15, 0x93, 0xd3, 0x7e, 0x72, 0xf0, 0x90, 0x12, 0x4d, 0x34, 0x55, 0x29, 0x8e, 0x9b, 0x4c, 0x9e, 0xc3, 0xca, 0xe7, 0x3b, 0xb8, 0xee, 0x41, 0xeb, 0x63, 0xe3, 0x8c, 0x56, 0x13, 0x3e, 0xfd, 0xba, 0xf4, 0x49, 0xb8, 0x4e, 0x1e, 0x49, 0x1e, 0x49, 0x6f, 0x1c, 0x70, 0xa4, 0x4d, 0x06, 0x99, 0x86, 0xba, 0x88, 0x18, 0x42, 0x20, 0x69, 0x06, 0x1b, 0xb6, 0xeb, 0xcb, 0x7b, 0x20, 0x54, 0xe6, 0x3d, 0xf3, 0x81, 0xba, 0x03, 0xc6, 0xa7, 0x67, 0x4a, 0xbd, 0x61, 0x05, 0x0d, 0x69, 0x3d, 0x41, 0xbf, 0xe3, 0xca, 0x50, 0x46, 0xc6, 0x5f, 0xfb, 0x06, 0xa0, 0x74, 0x98, 0x09, 0xe5, 0x8d, 0x4c, 0x93, 0xa9, 0xff, 0x69, 0xed, 0x30, 0x95, 0x0b, 0xde, 0x1f, 0x99, 0x21, 0x6f, 0xff, 0x29, 0x9f, 0x22, 0xf1, 0x6b, 0x07, 0xc2, 0x54, 0xc2, 0x65, 0xae, 0x0b, 0x12, 0xe3, 0x13, 0x16, 0x3c, 0xcd, 0xf5, 0x03, 0x6d, 0x49, 0x05, 0x5f, 0x9a, 0x96, 0x67, 0xb0, 0xb7, 0x12, 0x92, 0xbc, 0x3b, 0x62, 0x60, 0xcb, 0x87, 0x56, 0x8f, 0xd2, 0x67, 0x17, 0x0b, 0xc9, 0x40, 0xc3, 0x33, 0x29, 0xd7, 0x29, 0xc9, 0xe3, 0x2d, 0x0f, 0x91, 0x80, 0xb1, 0x34, 0xbf, 0xf8, 0xae, 0x93, 0xb1, 0xbf, 0xeb, 0xfa, 0x38, 0x42, 0xfe, 0xf2, 0x0b, 0xc0, 0x4a, 0x29, 0x7b, 0x00, 0xa8, 0x4a, 0x0f, 0x42, 0x8d, 0x5f, 0x42, 0xfa, 0xb8, 0x61, 0x42, 0x99, 0x6d, 0x4a, 0xd9, 0xef, 0xab, 0xc4, 0x98, 0x52, 0xf8, 0x81, 0x2f, 0x3b, 0xfb, 0x5e, 0x57, 0x53, 0x9e, 0x21, 0x86, 0xeb, 0x8a, 0xe2, 0x29, 0x58, 0x0b, 0xc6, 0x04, 0x48, 0xac, 0xde, 0xf5, 0x72, 0x3c, 0x88, 0x15, 0x88, 0xb5, 0x37, 0x89, 0xf0, 0x5b, 0x91, 0xe0, 0x22, 0x89, 0x22, 0x32, 0x52, 0xd7, 0x53, 0xf7, 0x98, 0x13, 0x77, 0x9a, 0xce, 0x70, 0x5e, 0x04, 0xae, 0xd1, 0x52, 0x65, 0xd3, 0xbd, 0xf2, 0xa2, 0xe4, 0xb1, 0x56, 0x54, 0x77, 0x0a, 0x27, 0x58, 0x54, 0xe6, 0x4c, 0xf4, 0x43, 0x90, 0x60, 0x7a, 0x45, 0xd7, 0xbb, 0xa9, 0xaf, 0x3e, 0x1a, 0x2e, 0x28, 0x30, 0x67, 0xfc, 0xd6, 0xe6, 0x33, 0xaa, 0x2d, 0x24, 0x03, 0xbd, 0x81, 0xf7, 0xc7, 0x92, 0x76, 0x55, 0x10, 0xb5, 0x98, 0x41, 0x2f, 0x6b, 0xda, 0x07, 0xb2, 0xa9, 0x45, 0xb9, 0xf6, 0xd4, 0x6a, 0xb2, 0xf7, 0xc3, 0x20, 0x07, 0x5b, 0xc6, 0xb6, 0x0a, 0x80, 0xda, 0xa4, 0x4a, 0xf3, 0x91, 0xf4, 0xcd, 0x56, 0x21, 0x31, 0xbb, 0xdd, 0x40, 0x7d, 0x66, 0xf8, 0xdb, 0x12, 0x59, 0xbd, 0x76, 0xfa, 0x7e, 0x4d, 0x52, 0x64, 0xe1, 0x45, 0x54, 0x6c, 0x94, 0x2d, 0xfe, 0x90, 0x07, };
19825 static const u8 ed25519_862_test_vectors_expected_sig[] = {
19826 	0x05, 0x43, 0x71, 0x2c, 0xef, 0xa2, 0x9a, 0x22, 0x0d, 0x90, 0xf8, 0x1b, 0xaa, 0x4e, 0x4c, 0xf7, 0x7a, 0xc6, 0x52, 0x08, 0xb2, 0xd5, 0xce, 0x9f, 0xd1, 0x7c, 0xe2, 0x14, 0xad, 0x4a, 0x93, 0x7b, 0x7f, 0xc5, 0xc7, 0x86, 0x41, 0x3b, 0x58, 0x05, 0x1c, 0xca, 0x3b, 0xb8, 0xb2, 0xeb, 0x55, 0x65, 0x7d, 0x89, 0x57, 0x2b, 0xc5, 0x0e, 0xa2, 0xe5, 0xec, 0xdc, 0x55, 0x50, 0x88, 0x49, 0x16, 0x03, };
19827 static const ec_test_case ed25519_862_test_case = {
19828 	.name = "EDDSA25519-SHA512/wei25519 862",
19829 	.ec_str_p = &wei25519_str_params,
19830 	.priv_key = ed25519_862_test_vectors_priv_key,
19831 	.priv_key_len = sizeof(ed25519_862_test_vectors_priv_key),
19832 	.nn_random = NULL,
19833 	.hash_type = SHA512,
19834 	.msg = (const char *)ed25519_862_test_vectors_message,
19835 	.msglen = sizeof(ed25519_862_test_vectors_message),
19836 	.sig_type = EDDSA25519,
19837 	.exp_sig = ed25519_862_test_vectors_expected_sig,
19838 	.exp_siglen = sizeof(ed25519_862_test_vectors_expected_sig),
19839 	.adata = NULL,
19840 	.adata_len = 0
19841 };
19842 
19843 /************************************************/
19844 static const u8 ed25519_863_test_vectors_priv_key[] = {
19845 	0xed, 0xa0, 0xfe, 0xac, 0x0f, 0x2a, 0xfe, 0x01, 0x74, 0x49, 0x15, 0x52, 0x48, 0x7f, 0x39, 0x62, 0x17, 0x13, 0x32, 0xb8, 0x22, 0xdc, 0x3d, 0xa4, 0x26, 0xf9, 0xa5, 0xf6, 0x2b, 0xef, 0x7b, 0x8d, };
19846 static const u8 ed25519_863_test_vectors_message[] = {
19847 	0x90, 0x11, 0x19, 0xda, 0x4e, 0xd1, 0x81, 0xaa, 0x9e, 0x11, 0x17, 0x0b, 0x20, 0x62, 0x6e, 0x00, 0xab, 0xf0, 0xb5, 0x48, 0x24, 0x5e, 0x3d, 0xeb, 0xf9, 0x4b, 0xf5, 0xed, 0x50, 0xae, 0xef, 0xe9, 0x42, 0xb4, 0x02, 0xcc, 0x99, 0x48, 0x94, 0x78, 0x52, 0xde, 0xdf, 0x2b, 0x53, 0x04, 0x01, 0x76, 0x65, 0x74, 0x9c, 0xd4, 0x7c, 0x21, 0xfc, 0x65, 0x2e, 0xe9, 0x95, 0x67, 0x9f, 0xf9, 0x31, 0xe3, 0x0e, 0x94, 0xaf, 0x98, 0xb4, 0xa9, 0x8f, 0xd4, 0x4e, 0x84, 0x9e, 0x98, 0x47, 0x0f, 0xe0, 0xa7, 0x6c, 0xe8, 0x0c, 0x61, 0xf8, 0x3f, 0xb4, 0xe8, 0x5b, 0xa5, 0x23, 0xee, 0x3f, 0xd2, 0x5d, 0xb0, 0x00, 0x05, 0x3b, 0x49, 0xd0, 0x93, 0x0e, 0x3b, 0x07, 0x9e, 0x86, 0x6e, 0x15, 0x3f, 0x7d, 0x86, 0x36, 0x7f, 0x23, 0xa4, 0xc4, 0xab, 0xc6, 0x3b, 0x30, 0x75, 0x46, 0x1e, 0x90, 0xe4, 0xfd, 0x89, 0x6d, 0xa0, 0x49, 0x2e, 0x27, 0xd7, 0x14, 0x94, 0x1e, 0x96, 0x7f, 0x52, 0xc9, 0x3f, 0xfa, 0xec, 0x44, 0x80, 0x3f, 0x57, 0x87, 0x7d, 0x86, 0x6e, 0xb5, 0xf8, 0xc5, 0x28, 0x17, 0x85, 0xaa, 0x48, 0x26, 0x79, 0x2e, 0x39, 0x64, 0xc6, 0x65, 0x90, 0x82, 0x1e, 0xea, 0x66, 0x75, 0x20, 0x74, 0x26, 0x40, 0x18, 0xa5, 0x71, 0xf5, 0xb0, 0x13, 0xb3, 0x8e, 0x15, 0x2c, 0x95, 0xc0, 0x24, 0x8a, 0xe6, 0x03, 0x68, 0x22, 0xa6, 0x7a, 0xfc, 0x9e, 0x02, 0x69, 0x45, 0x73, 0x15, 0x2b, 0x86, 0x4c, 0x56, 0xc2, 0xf7, 0x30, 0xa0, 0x82, 0x10, 0xf8, 0x5e, 0xc4, 0x6f, 0x98, 0x4a, 0x64, 0x3d, 0x51, 0x6a, 0x15, 0xfc, 0xfa, 0xa8, 0x48, 0x40, 0xf5, 0x12, 0x04, 0x7d, 0x11, 0x0e, 0x07, 0x18, 0xd2, 0x93, 0x95, 0x5f, 0x01, 0x58, 0x25, 0x7f, 0xba, 0x0d, 0x78, 0xeb, 0x7d, 0xf2, 0xf0, 0xb7, 0x7e, 0x6e, 0xeb, 0x76, 0xdb, 0x5e, 0x71, 0x70, 0x73, 0x10, 0xe8, 0x27, 0x36, 0x1c, 0xd4, 0xe1, 0x19, 0x74, 0x0e, 0x63, 0x92, 0x2d, 0xb4, 0x2c, 0x2c, 0xeb, 0x5e, 0xe1, 0x75, 0xd5, 0x0d, 0xec, 0xc7, 0xb7, 0x49, 0xfd, 0x23, 0x25, 0xbc, 0xe1, 0xe6, 0xa8, 0xf7, 0x10, 0xff, 0xcc, 0x1e, 0x1c, 0x9b, 0x33, 0xc3, 0x80, 0xe5, 0x2a, 0x64, 0xda, 0xa9, 0x58, 0x5f, 0xab, 0xe4, 0x06, 0xd9, 0xcf, 0x24, 0x48, 0x8f, 0xe2, 0x6f, 0x3a, 0x49, 0x5f, 0xb0, 0xab, 0x50, 0xe1, 0xe2, 0xba, 0xd8, 0x23, 0x81, 0xaa, 0x22, 0x43, 0x10, 0x99, 0xcc, 0x8a, 0x56, 0x98, 0x13, 0xd7, 0x9c, 0x9d, 0x78, 0x56, 0x9c, 0x0d, 0x95, 0xda, 0x9a, 0xad, 0x2b, 0xfb, 0x57, 0x75, 0x8d, 0x52, 0xa3, 0x75, 0x27, 0x52, 0xe0, 0x23, 0xd6, 0x51, 0xc9, 0xcb, 0x66, 0xa4, 0x12, 0xa5, 0xc8, 0x0f, 0x6b, 0xa5, 0x47, 0x93, 0xf7, 0xec, 0x87, 0xb4, 0xc5, 0x98, 0xfe, 0xd2, 0xce, 0x24, 0xab, 0xd7, 0x60, 0x87, 0x08, 0x89, 0x5c, 0x46, 0x72, 0x73, 0x59, 0xff, 0xec, 0xa6, 0xd6, 0xc6, 0x2e, 0x10, 0xa6, 0x78, 0xca, 0xa7, 0x18, 0xb4, 0xcd, 0x26, 0x32, 0x92, 0xcf, 0xef, 0x53, 0x5b, 0x9f, 0xbe, 0x27, 0x56, 0xb7, 0x39, 0x6d, 0x69, 0x7b, 0x31, 0x46, 0xc5, 0x51, 0xe6, 0xaa, 0xc1, 0xf5, 0xf1, 0xc2, 0x4b, 0xe9, 0xb6, 0x7a, 0x1e, 0x2a, 0x2a, 0xff, 0x74, 0x53, 0x01, 0xba, 0x6a, 0x21, 0x22, 0x17, 0xc5, 0x3d, 0x68, 0x16, 0x81, 0xbb, 0xb4, 0x01, 0xbf, 0x4a, 0x43, 0x65, 0x6f, 0x5d, 0x15, 0xcd, 0xe9, 0x69, 0xc1, 0x78, 0x00, 0x99, 0xa3, 0x32, 0x37, 0xeb, 0x19, 0xa3, 0xb8, 0x58, 0x5d, 0x6b, 0x5d, 0xea, 0x2f, 0xb5, 0x77, 0x84, 0x5f, 0x25, 0xee, 0x2a, 0x82, 0xcc, 0xf4, 0xb2, 0x85, 0x02, 0xf9, 0x0f, 0xe8, 0x0b, 0x8c, 0xdc, 0xdf, 0x2c, 0xcf, 0x93, 0xc4, 0x34, 0xc0, 0xe6, 0xaa, 0x5d, 0x87, 0x52, 0xa4, 0x43, 0x43, 0xc2, 0xb1, 0x8d, 0x20, 0xfe, 0x40, 0x04, 0xc4, 0x70, 0x38, 0x65, 0x93, 0x56, 0xf8, 0x7a, 0xbe, 0xd5, 0x44, 0x50, 0x34, 0xd8, 0xe2, 0xd3, 0xd1, 0x47, 0x68, 0xf5, 0xef, 0x31, 0x2c, 0xf1, 0x02, 0xa9, 0x88, 0x46, 0x83, 0xbc, 0xc0, 0xcd, 0x8a, 0x71, 0xe3, 0xec, 0x36, 0xfb, 0xb6, 0x33, 0x4a, 0x1b, 0xba, 0xed, 0x5d, 0x2b, 0xf1, 0x04, 0x16, 0xd8, 0x2b, 0xd6, 0x53, 0x04, 0x75, 0x38, 0x0a, 0xb6, 0xe2, 0x57, 0x7b, 0xbc, 0x69, 0xce, 0xbd, 0xa7, 0x5f, 0xaf, 0x02, 0xad, 0x82, 0x7b, 0x54, 0x51, 0x82, 0x13, 0x20, 0x6f, 0xd4, 0xcd, 0x66, 0xf2, 0x52, 0xb2, 0x34, 0xac, 0xa9, 0xee, 0xde, 0x7e, 0x3e, 0xeb, 0x81, 0x5d, 0xdc, 0xd8, 0xd5, 0x19, 0xc5, 0xd7, 0xf5, 0xd9, 0xd1, 0xfb, 0x9c, 0xa0, 0xfa, 0x44, 0x67, 0x99, 0x00, 0x95, 0xfa, 0x46, 0x22, 0x0c, 0x20, 0xa2, 0x07, 0x1d, 0xfc, 0xaa, 0xd5, 0xf0, 0x24, 0xda, 0xe3, 0x41, 0x6f, 0x7c, 0x49, 0x2d, 0x75, 0x74, 0x88, 0xc4, 0x9a, 0x2e, 0x4d, 0xf4, 0x83, 0xbc, 0x9b, 0x80, 0x09, 0x8e, 0x0d, 0x5d, 0x68, 0x3f, 0xac, 0xb8, 0xc9, 0x60, 0x82, 0x9d, 0xff, 0x09, 0xb3, 0x03, 0x36, 0x9d, 0x46, 0xcb, 0x57, 0x33, 0x1f, 0xf2, 0x17, 0x91, 0xee, 0x25, 0xd6, 0xbe, 0x7d, 0xec, 0x7e, 0xba, 0xf1, 0xb3, 0x24, 0x79, 0xa7, 0xf5, 0x14, 0xdc, 0x64, 0x71, 0x05, 0xc9, 0x44, 0xc3, 0x6f, 0x7d, 0xbf, 0x0a, 0x5b, 0x58, 0x91, 0x28, 0xdb, 0xaa, 0xa4, 0x21, 0x71, 0xd6, 0x42, 0xf2, 0x5a, 0x98, 0x1c, 0xe1, 0xf8, 0x37, 0x9f, 0x91, 0x69, 0x0b, 0x36, 0xaf, 0x77, 0x46, 0x48, 0xd5, 0x62, 0x4c, 0x08, 0xdb, 0xd0, 0xa9, 0x0f, 0x70, 0x87, 0x16, 0xdf, 0xab, 0x20, 0x24, 0xda, 0xe8, 0x65, 0xb9, 0xc4, 0x9a, 0xb2, 0x74, 0x73, 0x82, 0x6c, 0xd4, 0xa0, 0x10, 0xbf, 0xdb, 0x52, 0x01, 0x1d, 0x8c, 0x7c, 0xb3, 0xf4, 0x21, 0xca, 0x8c, 0xa3, 0xcd, 0x04, 0x86, 0x88, 0x91, 0x88, 0xe6, 0x7d, 0xf0, 0x0f, 0xb8, 0xc2, 0xa6, 0x43, 0xe7, 0xad, 0xb2, 0xf8, 0x27, 0x9f, 0x76, 0x3e, 0x5b, 0x9a, 0x81, 0xb6, 0xdf, 0xc3, 0xf7, 0x21, 0xfc, 0x5f, 0x68, 0x49, 0xf6, 0x67, 0x36, 0x78, 0x8c, 0xc5, 0x57, 0xc4, 0xeb, 0xc6, 0xfc, 0x68, 0xd6, 0xf6, 0xac, 0x77, 0xbe, 0xdd, 0xa8, 0xac, 0xb3, 0x62, 0x24, 0x3b, 0xda, 0x74, 0xe7, 0xb2, };
19848 static const u8 ed25519_863_test_vectors_expected_sig[] = {
19849 	0x6c, 0xbc, 0x7e, 0x6f, 0x5e, 0x12, 0x14, 0x5b, 0x01, 0x68, 0x7a, 0xd9, 0xca, 0x6b, 0xf6, 0xe4, 0x7f, 0x94, 0x17, 0xc2, 0xce, 0xfa, 0xd3, 0xfb, 0xd6, 0x8f, 0xd6, 0x5d, 0xd7, 0x4f, 0xaa, 0x97, 0x50, 0xcb, 0xa9, 0x92, 0xde, 0x4c, 0xeb, 0xcf, 0xcd, 0x35, 0x80, 0x8c, 0xbb, 0x3f, 0xf1, 0x2c, 0x8d, 0x93, 0x07, 0x99, 0xaf, 0x36, 0xef, 0xe7, 0x97, 0x6b, 0xf2, 0xfe, 0xa7, 0x9e, 0x3e, 0x0e, };
19850 static const ec_test_case ed25519_863_test_case = {
19851 	.name = "EDDSA25519-SHA512/wei25519 863",
19852 	.ec_str_p = &wei25519_str_params,
19853 	.priv_key = ed25519_863_test_vectors_priv_key,
19854 	.priv_key_len = sizeof(ed25519_863_test_vectors_priv_key),
19855 	.nn_random = NULL,
19856 	.hash_type = SHA512,
19857 	.msg = (const char *)ed25519_863_test_vectors_message,
19858 	.msglen = sizeof(ed25519_863_test_vectors_message),
19859 	.sig_type = EDDSA25519,
19860 	.exp_sig = ed25519_863_test_vectors_expected_sig,
19861 	.exp_siglen = sizeof(ed25519_863_test_vectors_expected_sig),
19862 	.adata = NULL,
19863 	.adata_len = 0
19864 };
19865 
19866 /************************************************/
19867 static const u8 ed25519_864_test_vectors_priv_key[] = {
19868 	0xec, 0x05, 0x9f, 0xc6, 0xbe, 0x98, 0x3c, 0x27, 0xec, 0xa9, 0x3d, 0xdc, 0xdc, 0xb5, 0x3a, 0xf7, 0x28, 0x62, 0x55, 0xda, 0x91, 0xe2, 0xa5, 0x6a, 0x68, 0x4f, 0x64, 0x1e, 0xc2, 0xd0, 0x9d, 0x6e, };
19869 static const u8 ed25519_864_test_vectors_message[] = {
19870 	0xd1, 0xac, 0x63, 0x25, 0xa4, 0xe6, 0x90, 0xfa, 0x79, 0x53, 0x68, 0x83, 0xd5, 0xc2, 0x0e, 0xac, 0xb7, 0xd9, 0x64, 0xc0, 0x17, 0x8f, 0x74, 0x2c, 0x2b, 0x23, 0x72, 0x7d, 0xeb, 0x62, 0x64, 0x5a, 0xf7, 0xc8, 0x19, 0x22, 0xa0, 0xe7, 0x2e, 0x5e, 0x30, 0xb5, 0x83, 0x9a, 0x2e, 0xd5, 0xe5, 0x67, 0xec, 0x31, 0xce, 0x22, 0x41, 0x15, 0xb8, 0x2d, 0x2b, 0xf2, 0x51, 0xb7, 0x39, 0x3f, 0x01, 0xb0, 0xd0, 0x3a, 0x60, 0x2b, 0xc1, 0x20, 0xae, 0x62, 0xaf, 0x7f, 0xbc, 0x37, 0x9d, 0xfc, 0xf9, 0x5b, 0xbb, 0xba, 0x98, 0x4a, 0xab, 0xa3, 0x4f, 0xe2, 0x12, 0xac, 0x99, 0x00, 0x33, 0x28, 0xb8, 0x32, 0xc3, 0x53, 0x2d, 0x42, 0xee, 0xe1, 0xe1, 0x87, 0x4d, 0xc2, 0x2a, 0xd6, 0x7d, 0xb6, 0xc9, 0x1d, 0xbb, 0xfb, 0x2b, 0x45, 0x78, 0x5d, 0xbc, 0xd3, 0x99, 0x17, 0xd3, 0x6f, 0xb4, 0x8c, 0x1b, 0x5d, 0x6f, 0x38, 0xbd, 0xda, 0x5d, 0x28, 0xfb, 0xba, 0x64, 0x17, 0x55, 0x75, 0xaf, 0xea, 0x46, 0xc8, 0xed, 0x67, 0x57, 0xff, 0x30, 0x16, 0x4e, 0x0d, 0xf2, 0xe7, 0x21, 0x76, 0xe8, 0xb6, 0xc9, 0xdb, 0x5b, 0x5e, 0xf3, 0x90, 0xb7, 0x2f, 0x2d, 0x4d, 0x94, 0xe3, 0xb6, 0x6f, 0x0d, 0x44, 0xa7, 0xe0, 0xf0, 0x6e, 0x89, 0xde, 0xbc, 0xdf, 0x13, 0x63, 0xc0, 0xe7, 0x5d, 0x50, 0xdb, 0x5b, 0xb7, 0x01, 0x90, 0xd1, 0x9f, 0x66, 0xa3, 0x9c, 0x6f, 0x7d, 0xba, 0x70, 0xdf, 0xcd, 0x4a, 0x9f, 0xed, 0x02, 0xc2, 0xf1, 0xd0, 0x67, 0xe7, 0xc7, 0x88, 0xc5, 0x8f, 0xdb, 0x3e, 0x17, 0xa2, 0x37, 0x7c, 0xe4, 0x86, 0xec, 0x65, 0x82, 0xf3, 0xba, 0x99, 0x7b, 0xb5, 0xf7, 0x0c, 0xd6, 0x21, 0x00, 0x29, 0x56, 0xf5, 0x13, 0x1a, 0xa3, 0xa1, 0x61, 0x7c, 0x0c, 0xeb, 0xcc, 0xd9, 0x39, 0x1d, 0xe1, 0x30, 0x7c, 0x85, 0x97, 0x0a, 0x8b, 0xc1, 0x55, 0xf5, 0x19, 0x87, 0x26, 0x68, 0x45, 0x0c, 0x91, 0x48, 0x86, 0x89, 0xf5, 0x3c, 0x2c, 0x1a, 0x7e, 0xd5, 0x3f, 0x38, 0x8c, 0xb1, 0x3a, 0x2c, 0x38, 0x96, 0xfe, 0x5b, 0x7d, 0x3a, 0x0d, 0xc1, 0x68, 0x3f, 0x27, 0x66, 0x4c, 0x8b, 0xea, 0xea, 0x68, 0x0c, 0x8c, 0xc5, 0x4a, 0x90, 0xe4, 0xc6, 0xf9, 0x9f, 0xbf, 0x05, 0xf2, 0xc2, 0x2d, 0xf6, 0x0d, 0xe9, 0xae, 0xc8, 0x0c, 0x79, 0xb7, 0xd6, 0x62, 0x07, 0x05, 0x06, 0x67, 0xb4, 0x52, 0xd7, 0x85, 0x7f, 0x9a, 0x8c, 0xa7, 0x23, 0x28, 0x0d, 0xac, 0x79, 0x92, 0xe2, 0x07, 0x92, 0x67, 0xec, 0x3a, 0xd9, 0x11, 0x40, 0x46, 0x42, 0xc4, 0xe3, 0x26, 0xbf, 0xb9, 0x6b, 0x43, 0xc8, 0x94, 0x34, 0xba, 0x4b, 0xc7, 0x8c, 0x25, 0x2f, 0x4d, 0x4c, 0xa8, 0xd1, 0x3a, 0x88, 0x74, 0xc6, 0xfc, 0x82, 0x52, 0xea, 0x0b, 0x56, 0xc6, 0xbc, 0x78, 0x68, 0x47, 0xd4, 0x31, 0x83, 0x06, 0xe1, 0xc6, 0x52, 0xc4, 0x52, 0x58, 0x5e, 0xef, 0xd0, 0xbd, 0x9d, 0xd3, 0xc1, 0x48, 0xa7, 0x3b, 0xa8, 0x6e, 0xed, 0xea, 0x94, 0x5f, 0x01, 0x67, 0x13, 0xed, 0x7d, 0xf0, 0x85, 0xd0, 0x06, 0x66, 0x89, 0xe7, 0x92, 0xda, 0xcb, 0x2b, 0xfc, 0x1e, 0xb5, 0xc8, 0x24, 0x37, 0x2a, 0x26, 0xc5, 0xe9, 0x44, 0xaa, 0x74, 0x44, 0xac, 0x97, 0x73, 0xd4, 0xa1, 0x92, 0x1e, 0x49, 0xbd, 0xd4, 0xf8, 0xf6, 0xd7, 0x88, 0xc2, 0x63, 0xfe, 0xe0, 0x4c, 0x7b, 0x44, 0x4c, 0x53, 0x05, 0xed, 0xb6, 0x33, 0xe1, 0xff, 0xe0, 0xba, 0x4e, 0xa8, 0xda, 0x01, 0x1a, 0x62, 0xf2, 0xbb, 0xfe, 0xf4, 0xb8, 0x95, 0xad, 0x3f, 0x22, 0x4c, 0x3b, 0xa3, 0xbf, 0xf0, 0xc9, 0x5d, 0x75, 0x75, 0x0c, 0x9b, 0xcc, 0x66, 0xff, 0x8a, 0x20, 0xb6, 0xc2, 0x4b, 0xde, 0x75, 0x81, 0xa7, 0xec, 0x38, 0x66, 0xf8, 0x71, 0x6f, 0x78, 0x1f, 0x46, 0xdc, 0xad, 0x45, 0xa9, 0xeb, 0xcb, 0x6e, 0xd4, 0x69, 0x53, 0x36, 0x83, 0x97, 0x01, 0x17, 0x35, 0xd4, 0xb5, 0x2d, 0x00, 0xe8, 0xdb, 0x39, 0x79, 0x95, 0xdb, 0xdb, 0x3d, 0x4f, 0x42, 0x54, 0x68, 0x7f, 0x04, 0x68, 0x8a, 0x26, 0x8c, 0x30, 0x5b, 0x2b, 0x1f, 0x62, 0x2c, 0xf5, 0x1b, 0x17, 0x47, 0x75, 0xba, 0xd7, 0xf6, 0x67, 0x4a, 0xdc, 0x2e, 0x58, 0xe0, 0x5c, 0xce, 0x86, 0x5f, 0x12, 0xd7, 0x56, 0x9c, 0x8e, 0x9b, 0x35, 0xbc, 0xdf, 0x3c, 0xcc, 0xe6, 0x33, 0x0d, 0x08, 0xce, 0x53, 0x40, 0xa7, 0xc6, 0x30, 0xf2, 0x7a, 0x6c, 0x80, 0x86, 0xb5, 0x14, 0x6b, 0x29, 0x2f, 0xcb, 0xf5, 0x0f, 0xf6, 0xaa, 0xae, 0xf8, 0x84, 0x8a, 0x70, 0x7b, 0x25, 0x43, 0xc6, 0x18, 0xd1, 0x7b, 0xd9, 0x76, 0xc2, 0x40, 0xbc, 0x79, 0xd3, 0x3e, 0x00, 0x4e, 0x49, 0x53, 0x48, 0x29, 0x15, 0xe7, 0xe6, 0xef, 0x94, 0x96, 0x4b, 0xde, 0xa4, 0xe0, 0x2d, 0xd7, 0xc2, 0xf4, 0x75, 0x23, 0x5f, 0x2b, 0x99, 0xe4, 0x32, 0x29, 0xc9, 0xac, 0x3a, 0xba, 0x0d, 0xb5, 0x9a, 0xc2, 0xda, 0x03, 0xa9, 0xee, 0x4f, 0x37, 0xdb, 0xf2, 0x47, 0xa3, 0x3e, 0x6d, 0xfe, 0x5b, 0xe7, 0xc7, 0xf8, 0x25, 0x84, 0xf0, 0x4a, 0x46, 0xd4, 0x9f, 0x66, 0x21, 0xda, 0x31, 0xb9, 0x1a, 0xc3, 0xda, 0xa4, 0xd6, 0x8d, 0x48, 0xa5, 0x66, 0x59, 0xb4, 0x48, 0xc0, 0xed, 0x36, 0x5c, 0xb4, 0xaa, 0x0c, 0xfd, 0x90, 0x88, 0x53, 0xdf, 0x5b, 0xbf, 0xa8, 0x8e, 0x60, 0xe1, 0x0a, 0x5a, 0x00, 0x2c, 0x32, 0xab, 0x33, 0x33, 0xf2, 0xc3, 0x9b, 0xbf, 0x3e, 0xe0, 0x1a, 0x4a, 0xa6, 0x0d, 0x2d, 0x01, 0x42, 0x3e, 0x60, 0x97, 0xdc, 0x54, 0x30, 0x5f, 0x81, 0xa2, 0xd9, 0x3e, 0x2f, 0x6b, 0x4e, 0x8b, 0x35, 0x19, 0x71, 0xcb, 0xf2, 0x45, 0x7d, 0xc7, 0x6e, 0x1f, 0xb8, 0x92, 0x93, 0x38, 0x47, 0x98, 0xef, 0x28, 0x23, 0x4e, 0x9b, 0x1a, 0x47, 0xde, 0xdc, 0x23, 0x36, 0xf8, 0x6b, 0x8e, 0x13, 0xc4, 0xae, 0xf7, 0x90, 0xf5, 0xa1, 0x12, 0x39, 0xc7, 0x47, 0xd9, 0xd8, 0x65, 0xc9, 0xa1, 0x5a, 0xde, 0xb0, 0x71, 0x07, 0x02, 0x67, 0xe5, 0x34, 0x62, 0x56, 0x64, 0x8a, 0xdc, 0x0f, 0xa4, 0xdb, 0xdf, 0xd7, 0x87, 0xca, 0x14, 0x65, 0xfc, 0x24, 0x0a, 0x32, 0x4c, 0x3c, 0xaf, 0x29, 0x31, 0xda, 0x41, 0x49, 0x9e, 0x27, 0x5f, 0xd4, 0xb3, 0x5f, 0x6d, 0x08, 0xdb, };
19871 static const u8 ed25519_864_test_vectors_expected_sig[] = {
19872 	0xa7, 0xb8, 0x8e, 0x5a, 0xbf, 0x13, 0x28, 0x24, 0xbd, 0xde, 0x77, 0xc5, 0xf8, 0xdf, 0x94, 0xab, 0x26, 0x48, 0x1f, 0x6b, 0xee, 0x66, 0x0e, 0xa1, 0x62, 0x24, 0x70, 0x82, 0xa2, 0x50, 0xd3, 0x90, 0xc7, 0x1d, 0x32, 0x0a, 0xd0, 0x60, 0xd8, 0xef, 0x34, 0x1f, 0xb6, 0x9a, 0x48, 0x32, 0x94, 0xf0, 0xd6, 0xde, 0x72, 0x6f, 0x0c, 0x86, 0x2f, 0xa3, 0x7e, 0xa4, 0xbc, 0x6d, 0xab, 0x52, 0x15, 0x09, };
19873 static const ec_test_case ed25519_864_test_case = {
19874 	.name = "EDDSA25519-SHA512/wei25519 864",
19875 	.ec_str_p = &wei25519_str_params,
19876 	.priv_key = ed25519_864_test_vectors_priv_key,
19877 	.priv_key_len = sizeof(ed25519_864_test_vectors_priv_key),
19878 	.nn_random = NULL,
19879 	.hash_type = SHA512,
19880 	.msg = (const char *)ed25519_864_test_vectors_message,
19881 	.msglen = sizeof(ed25519_864_test_vectors_message),
19882 	.sig_type = EDDSA25519,
19883 	.exp_sig = ed25519_864_test_vectors_expected_sig,
19884 	.exp_siglen = sizeof(ed25519_864_test_vectors_expected_sig),
19885 	.adata = NULL,
19886 	.adata_len = 0
19887 };
19888 
19889 /************************************************/
19890 static const u8 ed25519_865_test_vectors_priv_key[] = {
19891 	0xf1, 0x6a, 0xbd, 0xbc, 0xc0, 0xbc, 0xc6, 0x1a, 0x1a, 0xee, 0x3a, 0xbd, 0x87, 0x67, 0xab, 0x52, 0xe5, 0xf7, 0x99, 0x99, 0xbb, 0x77, 0xa3, 0x97, 0x6c, 0xbc, 0x82, 0x67, 0x0d, 0xfd, 0x2f, 0x73, };
19892 static const u8 ed25519_865_test_vectors_message[] = {
19893 	0xbf, 0xac, 0xd7, 0xdd, 0x4e, 0xea, 0x46, 0x7d, 0xcc, 0xe4, 0x04, 0xf4, 0xa3, 0x52, 0x0a, 0x45, 0xb9, 0x4e, 0xba, 0xa6, 0x22, 0x19, 0x7d, 0x02, 0xd6, 0x15, 0x29, 0xd2, 0xb3, 0xbf, 0x27, 0x3c, 0x4e, 0xe1, 0xfb, 0x95, 0xa1, 0x80, 0xc8, 0xf8, 0x7d, 0xe1, 0x90, 0xa2, 0xe5, 0xea, 0x70, 0xb8, 0x4a, 0xe1, 0xeb, 0x6f, 0xd4, 0x44, 0x7d, 0x8a, 0x3a, 0x8d, 0xed, 0x10, 0xf6, 0xed, 0xe2, 0x4f, 0x0e, 0xb9, 0x2b, 0xd3, 0x0b, 0xc6, 0x5d, 0x48, 0x71, 0xe8, 0xf5, 0xda, 0x08, 0xcb, 0xe8, 0xcd, 0x3c, 0x0a, 0xc6, 0x4f, 0xd5, 0xa5, 0x7a, 0x6b, 0x06, 0x4a, 0x89, 0xd5, 0x15, 0x9b, 0x42, 0xf8, 0xb3, 0xe5, 0xa1, 0x83, 0x8c, 0x9c, 0xb1, 0x9d, 0x88, 0x10, 0x6c, 0x07, 0x73, 0xa2, 0x75, 0xcd, 0x2a, 0x1d, 0x60, 0x99, 0x30, 0xbf, 0x6b, 0x30, 0xae, 0xca, 0x62, 0xb9, 0x7e, 0x31, 0x9b, 0xbf, 0xa9, 0x34, 0xf4, 0xd0, 0xa1, 0xe6, 0xac, 0x80, 0xba, 0xeb, 0xcb, 0xa2, 0xd8, 0xea, 0x4b, 0xed, 0x9c, 0xa8, 0x56, 0x2b, 0x4a, 0xcb, 0x56, 0x97, 0x9b, 0xf8, 0x85, 0x32, 0x4a, 0xc4, 0x0a, 0xb4, 0xa5, 0x0b, 0xfb, 0x9f, 0x34, 0x90, 0x49, 0xfc, 0x75, 0xa0, 0xe0, 0x3d, 0xe4, 0xcc, 0x43, 0xea, 0xe3, 0xc6, 0xa6, 0xcf, 0xfb, 0x5f, 0x6a, 0xe6, 0xc9, 0x45, 0x04, 0x41, 0x5e, 0x6c, 0x7e, 0xd3, 0x04, 0x5a, 0x93, 0x2f, 0x47, 0xfd, 0x20, 0xb9, 0xf3, 0x48, 0x3a, 0x77, 0xb6, 0xd4, 0x49, 0xd8, 0xdf, 0xd4, 0xa6, 0x38, 0xdb, 0xf5, 0x6f, 0x03, 0xf0, 0xf0, 0x31, 0x87, 0x90, 0x59, 0xb2, 0xfb, 0x49, 0x76, 0x79, 0x43, 0xf4, 0x6b, 0x38, 0x72, 0xe2, 0xde, 0x56, 0x7d, 0x5f, 0xef, 0x80, 0xb0, 0x29, 0x25, 0xe9, 0x86, 0x3e, 0x0f, 0x1d, 0x31, 0xa8, 0x0f, 0x4e, 0x64, 0x51, 0xc3, 0x25, 0x69, 0x4b, 0x80, 0xcf, 0x1f, 0x19, 0x18, 0xc6, 0xe4, 0x98, 0x87, 0x8e, 0xdc, 0x47, 0xc4, 0x53, 0x0c, 0xac, 0x46, 0x6f, 0x1a, 0x29, 0x4d, 0x55, 0xdf, 0x09, 0xaf, 0x4f, 0xdc, 0x80, 0x72, 0xad, 0xb1, 0xbf, 0x26, 0xca, 0x8c, 0x92, 0xf9, 0x12, 0xa2, 0xb9, 0xfe, 0xbc, 0x8b, 0x97, 0xb5, 0x8c, 0x1e, 0x9d, 0x32, 0xc7, 0x80, 0x32, 0x30, 0x52, 0x97, 0x2b, 0x6f, 0xbd, 0x53, 0x30, 0x4c, 0x05, 0x19, 0x3c, 0xae, 0xb6, 0x7c, 0x5b, 0xd3, 0xe6, 0x74, 0x79, 0x72, 0x5d, 0x29, 0x7d, 0xff, 0xb0, 0x68, 0x90, 0xab, 0xf8, 0xcd, 0x9e, 0x42, 0x45, 0x8e, 0x16, 0x8a, 0x61, 0x18, 0xf9, 0x05, 0xb1, 0xd5, 0x34, 0x86, 0x01, 0x6f, 0x85, 0xdc, 0xd9, 0x8d, 0xd3, 0x39, 0xe3, 0x46, 0x05, 0x33, 0xd0, 0xb8, 0xa4, 0x9f, 0xae, 0x6d, 0xc1, 0xa0, 0x71, 0x72, 0x5e, 0x6a, 0xe5, 0xf2, 0x94, 0x47, 0x9e, 0xe3, 0xbd, 0xca, 0xeb, 0x74, 0x06, 0x18, 0x41, 0xfb, 0x26, 0x08, 0xe8, 0x8a, 0x49, 0xfd, 0x0f, 0x38, 0x95, 0xb1, 0x8f, 0x85, 0xb9, 0x0f, 0x72, 0x41, 0xdd, 0x13, 0x87, 0x71, 0x00, 0x53, 0xfa, 0xa6, 0x2b, 0xae, 0x75, 0xe9, 0xae, 0x39, 0x36, 0x9c, 0x1c, 0x02, 0xde, 0x5d, 0x19, 0x24, 0x2e, 0xfa, 0x16, 0xe1, 0x1d, 0x44, 0xa4, 0xba, 0x57, 0x78, 0xce, 0x77, 0x22, 0xa9, 0x1c, 0xec, 0x0b, 0xc0, 0xa0, 0x8c, 0x06, 0x9b, 0xdf, 0xa1, 0x30, 0xd1, 0xc6, 0xc4, 0xb5, 0x6c, 0x6e, 0x93, 0x54, 0x24, 0x03, 0xcc, 0xf2, 0x76, 0x84, 0xde, 0xf5, 0x7d, 0xef, 0x26, 0xdf, 0x86, 0xce, 0xd5, 0x71, 0x28, 0x2d, 0xc9, 0x60, 0x97, 0x46, 0x18, 0xf0, 0xa7, 0x4a, 0x0c, 0xde, 0x35, 0xb6, 0x53, 0xcc, 0x6e, 0x77, 0x30, 0x43, 0x1b, 0x82, 0x5f, 0xfb, 0x9b, 0x8a, 0xaa, 0xb3, 0xc7, 0xa3, 0x97, 0xc9, 0x92, 0xbc, 0x2f, 0xa2, 0x32, 0x70, 0xfb, 0x11, 0xee, 0x43, 0x1a, 0xfd, 0x5f, 0x9a, 0x64, 0x44, 0x83, 0x01, 0x11, 0x73, 0x99, 0x3f, 0x19, 0x48, 0x5d, 0xd3, 0xcb, 0xdd, 0x18, 0x7b, 0xd3, 0xd9, 0x95, 0xeb, 0xf0, 0x03, 0x1b, 0x1b, 0x0d, 0xe4, 0xa8, 0xde, 0x9c, 0x14, 0xeb, 0x6f, 0x78, 0x0e, 0x36, 0xb8, 0x92, 0x57, 0x56, 0xb9, 0x79, 0x06, 0xa1, 0x96, 0x9d, 0x85, 0xe9, 0x67, 0xd8, 0x80, 0xe6, 0xe7, 0xdd, 0xa4, 0x2f, 0xd3, 0xc3, 0x00, 0x19, 0xf1, 0x1d, 0x70, 0x81, 0x07, 0x1e, 0xee, 0x66, 0x26, 0x42, 0x28, 0x36, 0xbb, 0xed, 0x27, 0xd4, 0x6d, 0xd0, 0xdf, 0x1f, 0xeb, 0x66, 0x10, 0xdc, 0x85, 0x9f, 0x51, 0x3c, 0x0b, 0xc6, 0x53, 0xd7, 0x02, 0x20, 0xfe, 0x04, 0x8d, 0x2e, 0x97, 0xc2, 0xe0, 0x6a, 0xf5, 0x30, 0xe1, 0x1b, 0xdc, 0x70, 0x29, 0xbc, 0xcc, 0x5c, 0x92, 0xed, 0xec, 0xef, 0x5e, 0x4a, 0x2e, 0x0b, 0xe2, 0xd2, 0x51, 0xf4, 0x41, 0x5d, 0xca, 0x3e, 0x55, 0xb3, 0xa8, 0x50, 0xf2, 0x63, 0x0b, 0x87, 0x9e, 0x4e, 0x03, 0x6c, 0xe8, 0x63, 0x3b, 0xf2, 0x09, 0x20, 0xb6, 0x80, 0x94, 0x21, 0x59, 0x29, 0xac, 0xcc, 0x7b, 0xe4, 0x0c, 0x57, 0x78, 0xbc, 0x55, 0x4e, 0x6e, 0xdd, 0x7e, 0x54, 0xc9, 0xe1, 0x45, 0xb2, 0xee, 0x07, 0xb6, 0x5d, 0x06, 0x1c, 0x11, 0xde, 0x0e, 0x83, 0xf3, 0x81, 0xce, 0x4f, 0x57, 0xc6, 0x48, 0x3f, 0x51, 0x06, 0x93, 0x63, 0x51, 0x10, 0x74, 0xc7, 0xa5, 0x77, 0x35, 0x3b, 0x45, 0xc6, 0xeb, 0x71, 0x19, 0x9d, 0xce, 0x50, 0x59, 0xfd, 0x2c, 0x46, 0x11, 0xb0, 0x54, 0x23, 0x8a, 0xaa, 0xdf, 0x2b, 0x6b, 0xa5, 0x34, 0xbf, 0xff, 0xc2, 0x72, 0x2a, 0xe3, 0xe3, 0x1f, 0xf7, 0x9a, 0xe2, 0xeb, 0xca, 0x99, 0xcc, 0x35, 0x07, 0xf8, 0xa0, 0x33, 0xcf, 0x4f, 0xea, 0x70, 0xc5, 0x2f, 0x7d, 0xb5, 0xde, 0x44, 0x2b, 0x42, 0xb8, 0xd4, 0x1e, 0x99, 0x01, 0x2e, 0x42, 0xca, 0x0e, 0x85, 0xa9, 0xfb, 0x6d, 0x4f, 0x16, 0x5b, 0x33, 0x0d, 0xe6, 0x38, 0x3c, 0x57, 0x26, 0xef, 0xca, 0x2f, 0xe9, 0x71, 0x34, 0x00, 0x02, 0xf5, 0x62, 0xdc, 0x6c, 0xb8, 0xf2, 0xfa, 0xf0, 0x66, 0x57, 0x25, 0xe0, 0x97, 0x79, 0x9d, 0x09, 0x60, 0x91, 0x86, 0x4d, 0x66, 0xa9, 0x50, 0xa5, 0x79, 0x09, 0x53, 0xee, 0x16, 0xb9, 0xea, 0x58, 0x20, 0x09, 0x21, 0x87, 0x08, 0xc4, 0xac, 0xcd, 0x81, 0x38, 0x13, 0x58, 0xa2, 0xc6, 0x89, 0xa0, 0x41, 0xd0, 0x2d, 0x78, 0x61, 0x21, };
19894 static const u8 ed25519_865_test_vectors_expected_sig[] = {
19895 	0x33, 0xd8, 0x05, 0x29, 0x08, 0x69, 0xb8, 0xe0, 0x4f, 0xf0, 0x89, 0xfa, 0xa2, 0xd1, 0xfa, 0xb8, 0x37, 0x43, 0xba, 0xda, 0x68, 0xad, 0xe5, 0xb3, 0x8a, 0xe5, 0xf0, 0xcc, 0x58, 0xc3, 0x37, 0x4e, 0xba, 0x43, 0x94, 0x3c, 0x1f, 0x51, 0x10, 0x67, 0x8e, 0xb3, 0x9b, 0x46, 0x58, 0x61, 0x18, 0x22, 0xa2, 0x6d, 0x35, 0xff, 0xe1, 0x9e, 0x9c, 0xfc, 0xb9, 0xba, 0x95, 0x89, 0xe4, 0xec, 0x31, 0x05, };
19896 static const ec_test_case ed25519_865_test_case = {
19897 	.name = "EDDSA25519-SHA512/wei25519 865",
19898 	.ec_str_p = &wei25519_str_params,
19899 	.priv_key = ed25519_865_test_vectors_priv_key,
19900 	.priv_key_len = sizeof(ed25519_865_test_vectors_priv_key),
19901 	.nn_random = NULL,
19902 	.hash_type = SHA512,
19903 	.msg = (const char *)ed25519_865_test_vectors_message,
19904 	.msglen = sizeof(ed25519_865_test_vectors_message),
19905 	.sig_type = EDDSA25519,
19906 	.exp_sig = ed25519_865_test_vectors_expected_sig,
19907 	.exp_siglen = sizeof(ed25519_865_test_vectors_expected_sig),
19908 	.adata = NULL,
19909 	.adata_len = 0
19910 };
19911 
19912 /************************************************/
19913 static const u8 ed25519_866_test_vectors_priv_key[] = {
19914 	0xbe, 0x79, 0xd1, 0xae, 0xea, 0x86, 0xe8, 0x6f, 0x39, 0x81, 0x37, 0xe6, 0x2f, 0xfd, 0x79, 0xe5, 0x0e, 0xff, 0x9f, 0x31, 0x3f, 0x25, 0x19, 0x2f, 0x89, 0xe5, 0x2f, 0x0b, 0x4b, 0xbd, 0x5d, 0x32, };
19915 static const u8 ed25519_866_test_vectors_message[] = {
19916 	0x6d, 0x63, 0x2a, 0x7d, 0x3c, 0x9b, 0xe5, 0x36, 0x49, 0xd0, 0xd1, 0xa5, 0xee, 0xdf, 0x51, 0x9a, 0x41, 0x3b, 0x13, 0xac, 0x64, 0xe9, 0xad, 0x85, 0x4d, 0xfa, 0x04, 0xf2, 0xe1, 0x73, 0x29, 0xd8, 0x22, 0xbe, 0x57, 0x3d, 0x9e, 0x35, 0xac, 0x06, 0x6f, 0x02, 0x22, 0x13, 0xa3, 0x44, 0x62, 0x0b, 0xba, 0x28, 0x9f, 0x53, 0x31, 0x69, 0x55, 0x84, 0xd1, 0x34, 0x3e, 0x81, 0x54, 0x05, 0xae, 0xab, 0xe3, 0x86, 0x1d, 0x63, 0xb3, 0xa5, 0xb9, 0x2b, 0x8c, 0xd8, 0xee, 0xed, 0x22, 0x80, 0x22, 0x2a, 0xbd, 0xe3, 0x0a, 0x1b, 0xcc, 0xd3, 0xf3, 0xe4, 0x11, 0xaa, 0xb9, 0x22, 0xfa, 0x1b, 0xaa, 0x09, 0x7a, 0xa5, 0xc7, 0x80, 0xd0, 0xea, 0xef, 0x94, 0xea, 0x10, 0xfe, 0x21, 0xf7, 0xd6, 0x39, 0xb7, 0x6d, 0x47, 0x88, 0xae, 0xb5, 0x92, 0x4a, 0x9d, 0x26, 0x2d, 0xcb, 0xc5, 0x68, 0x8a, 0x3e, 0x43, 0x54, 0x4b, 0xec, 0x08, 0x8c, 0xa2, 0xe0, 0xd0, 0x6d, 0x77, 0xa7, 0x1f, 0xb6, 0x41, 0xd5, 0x52, 0x26, 0x61, 0x44, 0x52, 0xb1, 0xe0, 0x80, 0x7a, 0x9f, 0xcd, 0x3c, 0xa6, 0x9b, 0xf7, 0xf2, 0x5d, 0x80, 0x41, 0x47, 0x0c, 0xeb, 0x7b, 0x21, 0xea, 0xd0, 0x3e, 0xc0, 0x37, 0xa1, 0x62, 0x9b, 0xd5, 0x00, 0xaa, 0x23, 0x3b, 0x59, 0xbe, 0x44, 0x97, 0x82, 0x10, 0xb6, 0xa3, 0x66, 0xf2, 0x23, 0xac, 0xfa, 0x07, 0x97, 0x95, 0x40, 0x07, 0xb0, 0x0e, 0xfb, 0x4f, 0xfa, 0xdb, 0x5f, 0xc9, 0x2b, 0xdb, 0x37, 0x86, 0x3e, 0x50, 0x2d, 0x7d, 0x70, 0x68, 0x10, 0x39, 0xed, 0xf3, 0x37, 0x70, 0xdf, 0x3d, 0x1d, 0xe3, 0x43, 0xdc, 0x35, 0xf2, 0x26, 0xd5, 0xe7, 0x39, 0x44, 0xba, 0x02, 0x55, 0xe2, 0xa8, 0x8e, 0xf6, 0xc4, 0x1e, 0x47, 0x2b, 0x21, 0x45, 0x67, 0xc2, 0x49, 0x59, 0x4a, 0x50, 0x87, 0x8b, 0x67, 0x31, 0xc1, 0xae, 0xb5, 0xb1, 0x0f, 0xa9, 0x1f, 0xa7, 0x6a, 0x37, 0xe1, 0xf9, 0xf1, 0xc0, 0x0f, 0xdb, 0xfe, 0x34, 0x85, 0xde, 0xd5, 0x4a, 0x00, 0x9a, 0xb6, 0x13, 0x39, 0x27, 0x11, 0x56, 0x68, 0xb5, 0x9f, 0x51, 0x15, 0x50, 0x8d, 0xa9, 0x37, 0x0f, 0x6b, 0xc9, 0x2a, 0x11, 0x85, 0xc0, 0xd5, 0xca, 0x01, 0xd2, 0x91, 0xe1, 0x8c, 0x54, 0xac, 0xfa, 0xca, 0x73, 0x8b, 0xd7, 0x19, 0x68, 0xa3, 0x42, 0xa0, 0xcb, 0xa6, 0x2e, 0x4b, 0xb1, 0x04, 0xa5, 0xbb, 0x37, 0x9f, 0xc8, 0x3e, 0xe1, 0x82, 0x0d, 0x1d, 0xb9, 0x80, 0x25, 0x3d, 0x6c, 0xb3, 0x83, 0xe9, 0x5a, 0xf1, 0x5f, 0x53, 0xc8, 0x5d, 0x17, 0x58, 0x90, 0xdd, 0xe5, 0xe4, 0xed, 0x03, 0xd2, 0xd0, 0x13, 0x5e, 0x3d, 0x60, 0xb1, 0x82, 0x93, 0xf5, 0xb5, 0x64, 0x1e, 0xf8, 0x3c, 0x6e, 0xce, 0x3d, 0x52, 0x59, 0x8f, 0xc6, 0x35, 0x36, 0x86, 0xe6, 0xf7, 0xb0, 0x9f, 0xde, 0xc1, 0xf6, 0xf1, 0x53, 0x67, 0x2d, 0x34, 0xb4, 0x89, 0xb4, 0x8a, 0x0d, 0xb9, 0xe4, 0x2c, 0xed, 0xa7, 0x17, 0x55, 0x48, 0x1c, 0x04, 0x70, 0x16, 0xc2, 0x25, 0x34, 0xe9, 0x0c, 0x6d, 0x20, 0x1e, 0xd7, 0x85, 0x96, 0x02, 0x63, 0x6e, 0xa7, 0x7a, 0xe8, 0xc6, 0x73, 0x4b, 0x7c, 0x4c, 0x5b, 0xd9, 0x95, 0x79, 0xc5, 0x08, 0x73, 0x1c, 0x72, 0x46, 0xa2, 0x95, 0x86, 0xe4, 0x06, 0xe1, 0xd9, 0x32, 0xf6, 0x71, 0x30, 0x71, 0xd4, 0xbe, 0xa6, 0x3d, 0xc5, 0xe2, 0xa3, 0x76, 0x1e, 0x16, 0x02, 0x4d, 0x2c, 0x32, 0x84, 0xf7, 0x09, 0xa1, 0xf2, 0xba, 0x08, 0x5e, 0xad, 0x32, 0x00, 0xc7, 0x04, 0x62, 0x75, 0xcb, 0x96, 0xb6, 0x1a, 0x60, 0xb5, 0xac, 0x55, 0x9b, 0xc4, 0x88, 0xbd, 0x10, 0x64, 0x67, 0xc3, 0xde, 0x50, 0xbf, 0x5d, 0x74, 0x0d, 0x05, 0xc9, 0xcd, 0x70, 0x1d, 0x65, 0xb7, 0xda, 0xea, 0x29, 0xe6, 0x4d, 0xd5, 0xa9, 0x7a, 0xdb, 0x6b, 0x5c, 0x82, 0xcf, 0x7f, 0x23, 0x01, 0x7a, 0xa7, 0xca, 0x1a, 0xc9, 0xa3, 0x9e, 0x58, 0x27, 0xeb, 0x47, 0xe2, 0x0d, 0x35, 0x9b, 0x67, 0xc7, 0xd4, 0xe1, 0xa8, 0xe3, 0xe2, 0x7c, 0x52, 0xd3, 0x3d, 0x93, 0x03, 0xa5, 0x92, 0x62, 0x34, 0x84, 0xd7, 0x97, 0xb4, 0x02, 0xcb, 0xb4, 0x58, 0xd1, 0xac, 0x2e, 0xa5, 0x3e, 0x1c, 0x4f, 0x7a, 0xbb, 0x70, 0xcc, 0x02, 0x95, 0x54, 0xa2, 0x34, 0x57, 0x4d, 0xef, 0x9b, 0xc3, 0xb0, 0xd3, 0x83, 0x5d, 0xc3, 0x14, 0x90, 0x2e, 0x25, 0xab, 0xb2, 0x2d, 0xfd, 0xed, 0xdc, 0x67, 0x9a, 0x3c, 0xc8, 0xf0, 0x73, 0x40, 0xb1, 0x5f, 0x57, 0x62, 0xf4, 0x40, 0x7f, 0x38, 0x03, 0x42, 0x55, 0x4e, 0xd0, 0xc6, 0x2f, 0x73, 0xb6, 0x18, 0x16, 0xea, 0x8c, 0x52, 0x94, 0x61, 0xe1, 0xbf, 0x0e, 0x9d, 0x1c, 0x2d, 0x5e, 0x4c, 0x57, 0x46, 0x33, 0x6b, 0xc0, 0xe1, 0x32, 0x87, 0x3c, 0xde, 0x0d, 0xc2, 0x15, 0x8b, 0x54, 0xfa, 0x1b, 0x67, 0x8a, 0x00, 0x6b, 0x4d, 0x95, 0xed, 0xa8, 0xa9, 0x55, 0x71, 0x42, 0x73, 0xb7, 0xcc, 0x5c, 0xf2, 0xad, 0xd9, 0x09, 0x4d, 0x46, 0xe4, 0x9a, 0xbc, 0x09, 0x6a, 0x45, 0xf4, 0x18, 0xe2, 0xed, 0xbe, 0x99, 0xdd, 0x85, 0x29, 0x11, 0x68, 0x80, 0x64, 0xdf, 0x7c, 0xf0, 0x61, 0xd0, 0x7a, 0xee, 0xf4, 0x27, 0x95, 0x69, 0x0f, 0x48, 0xc9, 0xba, 0x19, 0x56, 0x54, 0x75, 0xd5, 0x46, 0x8a, 0x9e, 0xf4, 0x5d, 0x7b, 0xf7, 0x5f, 0xd7, 0x11, 0x82, 0xdd, 0x6e, 0x64, 0x01, 0x38, 0xf1, 0x82, 0xa6, 0xa0, 0xc6, 0xcb, 0xbd, 0x00, 0xc4, 0x95, 0xc4, 0x38, 0x95, 0x30, 0xac, 0x8e, 0x67, 0x96, 0x0e, 0xb5, 0xc5, 0x76, 0x3f, 0x54, 0x84, 0xea, 0xb1, 0xc1, 0xab, 0x85, 0x01, 0x40, 0xda, 0x04, 0x2b, 0xa4, 0x7e, 0xd8, 0x52, 0x88, 0x00, 0xd4, 0x17, 0x87, 0xf0, 0x75, 0xfe, 0x0d, 0x85, 0x50, 0x1a, 0x7a, 0xb7, 0x66, 0x35, 0xd0, 0x34, 0x10, 0xd2, 0x86, 0xc0, 0xe1, 0x7d, 0xb4, 0x02, 0x3a, 0x76, 0x39, 0x74, 0x68, 0xcc, 0xb0, 0x91, 0xcc, 0x5a, 0xc1, 0xf6, 0x43, 0x45, 0x87, 0x91, 0x3e, 0xab, 0x92, 0x2b, 0x50, 0xca, 0x55, 0x67, 0x01, 0x6d, 0xde, 0xa3, 0x2f, 0xb5, 0x32, 0x55, 0xbe, 0x67, 0xf2, 0xdc, 0xf9, 0xff, 0xa8, 0x5d, 0x11, 0x7f, 0x1a, 0x65, 0x5f, 0xa7, 0x0d, 0xd3, 0xa5, 0x4c, 0xf9, 0x91, 0x53, 0x1f, 0x19, 0x13, 0x0e, 0xaa, };
19917 static const u8 ed25519_866_test_vectors_expected_sig[] = {
19918 	0x6d, 0xab, 0x59, 0x3b, 0xb1, 0xd4, 0x48, 0xc9, 0x74, 0xa6, 0x5c, 0x6a, 0x0b, 0x6f, 0xad, 0x22, 0xb4, 0x73, 0x26, 0x32, 0xd0, 0x04, 0x89, 0x17, 0x6e, 0xf1, 0x26, 0xaa, 0x59, 0x01, 0x09, 0xe0, 0xa7, 0x23, 0xa1, 0x13, 0x10, 0x7b, 0x53, 0xe1, 0x7d, 0x69, 0x0a, 0x0d, 0x40, 0xb0, 0xfa, 0x33, 0x6c, 0xc8, 0x7f, 0xd5, 0xfc, 0xe8, 0xf5, 0x41, 0xac, 0xce, 0xc6, 0x7f, 0x7d, 0x1e, 0xbc, 0x06, };
19919 static const ec_test_case ed25519_866_test_case = {
19920 	.name = "EDDSA25519-SHA512/wei25519 866",
19921 	.ec_str_p = &wei25519_str_params,
19922 	.priv_key = ed25519_866_test_vectors_priv_key,
19923 	.priv_key_len = sizeof(ed25519_866_test_vectors_priv_key),
19924 	.nn_random = NULL,
19925 	.hash_type = SHA512,
19926 	.msg = (const char *)ed25519_866_test_vectors_message,
19927 	.msglen = sizeof(ed25519_866_test_vectors_message),
19928 	.sig_type = EDDSA25519,
19929 	.exp_sig = ed25519_866_test_vectors_expected_sig,
19930 	.exp_siglen = sizeof(ed25519_866_test_vectors_expected_sig),
19931 	.adata = NULL,
19932 	.adata_len = 0
19933 };
19934 
19935 /************************************************/
19936 static const u8 ed25519_867_test_vectors_priv_key[] = {
19937 	0x26, 0x99, 0x52, 0x17, 0x2c, 0x3f, 0xa9, 0x76, 0xde, 0xfb, 0xf4, 0x0b, 0xd6, 0xed, 0xd8, 0xf1, 0x5c, 0xfd, 0x4b, 0xe1, 0x0c, 0x75, 0x8e, 0x37, 0x41, 0xd7, 0x41, 0x62, 0xd8, 0xea, 0x22, 0x9a, };
19938 static const u8 ed25519_867_test_vectors_message[] = {
19939 	0x7c, 0xcb, 0x6a, 0x05, 0x70, 0xc5, 0x33, 0x73, 0x7b, 0x9a, 0x53, 0x4a, 0x34, 0x1a, 0x7a, 0x96, 0xdc, 0x76, 0x52, 0x8b, 0x99, 0x7a, 0x9b, 0x48, 0xe6, 0xe0, 0xfd, 0xe1, 0x0f, 0x47, 0x4b, 0x27, 0xec, 0x98, 0x99, 0x12, 0xd1, 0x76, 0xca, 0xb7, 0x42, 0xd8, 0x9a, 0x84, 0x8b, 0x36, 0x66, 0xe9, 0x27, 0x7d, 0x69, 0x5b, 0x02, 0x2f, 0xd5, 0x3a, 0x9e, 0xb8, 0x9e, 0x88, 0xc7, 0x20, 0x39, 0x9e, 0x24, 0xed, 0x25, 0xdb, 0x9e, 0xb3, 0x5d, 0x6d, 0xa0, 0x09, 0xe9, 0xf0, 0x24, 0xef, 0x8e, 0x65, 0x51, 0x65, 0xbd, 0xef, 0x1c, 0x0d, 0x79, 0x7c, 0x74, 0xf0, 0x19, 0xcd, 0x59, 0x1a, 0x04, 0x42, 0xa1, 0x2d, 0x1c, 0xa8, 0x93, 0x83, 0x6c, 0xa2, 0x62, 0x8b, 0x33, 0xe8, 0x54, 0xf3, 0x42, 0x8e, 0xec, 0x4a, 0xa5, 0xed, 0x84, 0xf4, 0xbd, 0xd2, 0xee, 0xf8, 0xb6, 0xd2, 0x25, 0xca, 0xf9, 0x49, 0x6d, 0xf9, 0xed, 0xff, 0xd7, 0x35, 0xea, 0x54, 0xdb, 0x1b, 0xde, 0xa8, 0x83, 0xad, 0x5d, 0x47, 0xeb, 0x0b, 0xd4, 0xa6, 0x65, 0x3f, 0x0a, 0xb0, 0x37, 0xf0, 0x40, 0xa4, 0x15, 0x17, 0xa7, 0x74, 0x1f, 0x91, 0xe8, 0x2f, 0xdb, 0x6f, 0xda, 0x04, 0xf0, 0xdf, 0xa1, 0xbc, 0xf8, 0xb9, 0xb3, 0x7b, 0xf2, 0xbf, 0xbd, 0x87, 0x32, 0x7a, 0x63, 0x6f, 0x90, 0x7f, 0xdf, 0x96, 0x8d, 0x01, 0x89, 0xd1, 0xa1, 0x18, 0x09, 0xc4, 0x23, 0x0b, 0xa6, 0x9d, 0x5c, 0xbd, 0x84, 0xf5, 0x61, 0xbc, 0xac, 0x3a, 0xd0, 0x02, 0xe5, 0x58, 0xc5, 0xb9, 0xb0, 0x97, 0xa0, 0x19, 0x02, 0xf2, 0x9c, 0xe3, 0xf1, 0xec, 0x26, 0x41, 0x53, 0xd6, 0x68, 0xc7, 0x8b, 0x84, 0x51, 0x05, 0xb9, 0xcd, 0x2e, 0xf3, 0xc9, 0x43, 0x53, 0x1b, 0x75, 0xaa, 0x42, 0x8f, 0x17, 0x9e, 0x4b, 0x34, 0x18, 0xb1, 0xd5, 0xa4, 0xaa, 0x7a, 0xb1, 0x20, 0x3e, 0xfa, 0x49, 0x5c, 0x87, 0x69, 0x62, 0x8e, 0xb1, 0x06, 0x3a, 0x93, 0x7b, 0x73, 0xe4, 0xb5, 0xcd, 0x0c, 0xda, 0x33, 0xda, 0xb0, 0x1a, 0x50, 0xc6, 0x4f, 0xeb, 0xd9, 0x75, 0xc5, 0x7a, 0x1e, 0x84, 0x15, 0x08, 0xe8, 0x60, 0x60, 0x94, 0xd0, 0x82, 0x4f, 0xdd, 0x96, 0xcc, 0x6c, 0xfa, 0x18, 0xfa, 0x82, 0x09, 0xb3, 0x0f, 0x0a, 0x2a, 0x78, 0xea, 0xc9, 0xa7, 0x67, 0x17, 0x6f, 0x57, 0x3e, 0x78, 0xc0, 0x68, 0x80, 0x9b, 0x19, 0x9a, 0x69, 0xac, 0x6d, 0x33, 0x5d, 0x7c, 0x92, 0x09, 0x99, 0xc4, 0x0c, 0xba, 0xd8, 0x7c, 0xf4, 0xcc, 0x7c, 0xa5, 0xc6, 0x44, 0x29, 0x1d, 0x75, 0xad, 0x7a, 0x74, 0xbc, 0x1e, 0x63, 0x92, 0xd1, 0xce, 0x31, 0x1e, 0xcf, 0xd2, 0xeb, 0xc9, 0x16, 0xe3, 0x9e, 0xb6, 0xaa, 0x3e, 0x7d, 0x89, 0xfb, 0x80, 0x5a, 0x27, 0xa5, 0x5f, 0x17, 0x89, 0x12, 0xb1, 0x57, 0xbc, 0x01, 0xa0, 0x55, 0xf6, 0x7a, 0xef, 0xa7, 0x8e, 0x55, 0xc8, 0x06, 0xcb, 0xd9, 0xc0, 0x1b, 0xaf, 0x8e, 0xf9, 0x2c, 0xad, 0x22, 0x60, 0xb4, 0xbb, 0x14, 0xcf, 0xe6, 0x17, 0x82, 0xde, 0xe5, 0xc5, 0x99, 0x72, 0x50, 0x69, 0x41, 0xc4, 0x62, 0xa4, 0xda, 0x7e, 0xb8, 0x99, 0x53, 0x1c, 0xf9, 0x96, 0xbc, 0x98, 0xba, 0x36, 0x29, 0xef, 0xfe, 0x6f, 0xcd, 0x17, 0x06, 0xd1, 0xb4, 0xee, 0x4f, 0x2a, 0x14, 0xe9, 0x21, 0xbd, 0x40, 0x8f, 0x30, 0xe1, 0x2e, 0x73, 0xfb, 0x7a, 0xa8, 0x60, 0x53, 0x6b, 0x03, 0xe7, 0x7c, 0xa9, 0x37, 0x82, 0x32, 0x81, 0xa1, 0x64, 0x53, 0xfe, 0x82, 0x79, 0x35, 0x94, 0x32, 0x01, 0xe6, 0xec, 0x14, 0x3a, 0x67, 0xee, 0xfa, 0x4f, 0x94, 0xe9, 0xab, 0xf9, 0x4f, 0x7e, 0x3d, 0x41, 0xb7, 0x0a, 0x82, 0xbe, 0x69, 0xde, 0xd8, 0xa5, 0x30, 0x60, 0xc2, 0x30, 0x5f, 0x42, 0xf6, 0x2f, 0xe6, 0xa2, 0xf7, 0x04, 0xb6, 0x7a, 0x1e, 0x8f, 0xdd, 0xc7, 0xd9, 0x8b, 0xa7, 0xf3, 0x45, 0x71, 0x19, 0xb3, 0x11, 0xd4, 0x49, 0x66, 0x3e, 0xd9, 0xe3, 0x20, 0xd6, 0x18, 0xdc, 0x23, 0x68, 0xd4, 0x95, 0x08, 0x75, 0xb9, 0xc3, 0x8c, 0x5d, 0x8c, 0x03, 0x10, 0x4e, 0x2e, 0x32, 0xc4, 0x32, 0x5d, 0xed, 0xd2, 0xbc, 0x26, 0x7e, 0x2a, 0xcc, 0xb0, 0x11, 0x20, 0x18, 0xe9, 0xc5, 0xa8, 0x00, 0x7c, 0xca, 0xb2, 0xf6, 0xd7, 0xc7, 0x37, 0x79, 0x20, 0x02, 0xac, 0xb7, 0x30, 0xd7, 0x2e, 0x9f, 0x73, 0x08, 0x29, 0xeb, 0xc4, 0x2c, 0xa5, 0x64, 0xc1, 0xd9, 0x27, 0x1b, 0xf1, 0x86, 0x9c, 0x4d, 0x35, 0x83, 0x55, 0x89, 0xb7, 0x43, 0x1e, 0xf7, 0xa3, 0x1a, 0x07, 0x00, 0x60, 0xfe, 0x4a, 0x08, 0x9f, 0xb1, 0x1f, 0x2d, 0xd3, 0xdc, 0xe6, 0x5a, 0xe0, 0xfb, 0x45, 0xbc, 0x3a, 0x28, 0x60, 0x91, 0x7d, 0x93, 0x3b, 0xa2, 0xd0, 0x90, 0x56, 0x9e, 0xf5, 0xed, 0x43, 0xbc, 0x25, 0x32, 0xdb, 0x87, 0x9e, 0x0f, 0x1f, 0x22, 0x5e, 0xad, 0xcb, 0xef, 0x1c, 0x03, 0xd9, 0xed, 0x78, 0x29, 0x9e, 0x23, 0x3e, 0x4c, 0xf0, 0x7b, 0x06, 0x4a, 0x7b, 0xaa, 0xc3, 0x4c, 0x5a, 0x0c, 0x19, 0xfc, 0x3a, 0x55, 0x42, 0x08, 0x9f, 0x70, 0x16, 0x7b, 0xe2, 0xf8, 0x5b, 0x4a, 0x10, 0xe7, 0x78, 0x52, 0x52, 0x23, 0xbe, 0x8f, 0xfd, 0x5c, 0xff, 0x96, 0x48, 0xb1, 0x00, 0x5a, 0x09, 0x8b, 0x4b, 0x39, 0x24, 0x39, 0x8f, 0xb0, 0xbc, 0xab, 0xcc, 0x6e, 0xdf, 0x30, 0xc0, 0x61, 0xec, 0xe7, 0xae, 0xa3, 0x5f, 0xe9, 0x8a, 0x92, 0x03, 0xf8, 0x71, 0x13, 0x69, 0x53, 0x0f, 0xeb, 0x5e, 0x67, 0xbb, 0x2d, 0x4f, 0x59, 0xd9, 0xc8, 0xbc, 0x99, 0x38, 0x54, 0xdd, 0x47, 0x47, 0xcd, 0xe3, 0x99, 0xbd, 0x0e, 0x63, 0x74, 0x0c, 0x1c, 0xc8, 0x39, 0xad, 0x0f, 0x09, 0x8a, 0x38, 0xa8, 0x0b, 0xea, 0xdd, 0x64, 0x8e, 0x14, 0x36, 0xde, 0xee, 0x60, 0xe9, 0x31, 0xe6, 0x8f, 0x52, 0x97, 0x9c, 0xe4, 0x9f, 0x30, 0x1f, 0xe3, 0x9a, 0xfb, 0xb6, 0x15, 0x35, 0x20, 0x91, 0xc8, 0xb6, 0x58, 0x5f, 0xe8, 0x84, 0x47, 0xed, 0x6e, 0x59, 0xa0, 0x20, 0xb2, 0xbb, 0xe6, 0x6a, 0x94, 0x23, 0xae, 0x52, 0x28, 0xc2, 0x03, 0xbf, 0xd4, 0x84, 0x7b, 0x51, 0x81, 0xe2, 0xc3, 0xb4, 0xda, 0xd8, 0x3a, 0x6d, 0x4f, 0xa7, 0x69, 0x85, 0xee, 0xf7, 0x6a, 0xdd, 0xe3, 0xb3, 0x4e, 0xdb, 0xdd, 0x28, 0xd6, 0xa0, 0xb4, 0xa4, 0xee, };
19940 static const u8 ed25519_867_test_vectors_expected_sig[] = {
19941 	0x3a, 0xc8, 0x0d, 0x1e, 0x8f, 0x68, 0xb4, 0x05, 0x8c, 0x3a, 0x04, 0xda, 0xd7, 0x18, 0x73, 0x73, 0x95, 0x9f, 0x26, 0xa2, 0x70, 0x02, 0x49, 0x6f, 0x8a, 0xfa, 0xac, 0xcd, 0x8b, 0xea, 0x09, 0x01, 0xc5, 0x4c, 0xab, 0x87, 0xb2, 0xa2, 0x30, 0x2e, 0x1f, 0x36, 0x25, 0xc2, 0xb0, 0x6c, 0x7e, 0xbc, 0xf3, 0xce, 0x96, 0xde, 0x3a, 0xfd, 0xf0, 0x0f, 0x51, 0x94, 0xa3, 0x5e, 0x05, 0x52, 0xc7, 0x0e, };
19942 static const ec_test_case ed25519_867_test_case = {
19943 	.name = "EDDSA25519-SHA512/wei25519 867",
19944 	.ec_str_p = &wei25519_str_params,
19945 	.priv_key = ed25519_867_test_vectors_priv_key,
19946 	.priv_key_len = sizeof(ed25519_867_test_vectors_priv_key),
19947 	.nn_random = NULL,
19948 	.hash_type = SHA512,
19949 	.msg = (const char *)ed25519_867_test_vectors_message,
19950 	.msglen = sizeof(ed25519_867_test_vectors_message),
19951 	.sig_type = EDDSA25519,
19952 	.exp_sig = ed25519_867_test_vectors_expected_sig,
19953 	.exp_siglen = sizeof(ed25519_867_test_vectors_expected_sig),
19954 	.adata = NULL,
19955 	.adata_len = 0
19956 };
19957 
19958 /************************************************/
19959 static const u8 ed25519_868_test_vectors_priv_key[] = {
19960 	0xcc, 0x31, 0x38, 0xe5, 0x02, 0xa5, 0xff, 0x6f, 0x80, 0xd2, 0x46, 0x36, 0x6e, 0x84, 0xd6, 0x5c, 0x59, 0xf1, 0x2d, 0x4f, 0x49, 0x63, 0x97, 0xe6, 0xeb, 0x99, 0xb5, 0x26, 0x7b, 0x8c, 0xbe, 0x2a, };
19961 static const u8 ed25519_868_test_vectors_message[] = {
19962 	0x58, 0x5e, 0xcf, 0x2f, 0x09, 0xeb, 0x92, 0x3d, 0xf2, 0x0a, 0x85, 0x55, 0x64, 0x2a, 0x2b, 0xc0, 0xb6, 0x8c, 0x6a, 0x5f, 0xcf, 0xd6, 0xb8, 0x40, 0x1c, 0x4a, 0x0c, 0xba, 0xbb, 0x4c, 0x6e, 0x6a, 0x20, 0x67, 0x62, 0xb7, 0xa3, 0x9f, 0x2c, 0x54, 0x55, 0xd7, 0x80, 0x8e, 0xbf, 0xbe, 0xd5, 0x6d, 0x67, 0x60, 0xa4, 0x31, 0xc7, 0xd2, 0x0c, 0x2d, 0xc6, 0xef, 0x1b, 0x73, 0xca, 0xa3, 0xc4, 0x94, 0x88, 0xe3, 0x0b, 0x1c, 0xa2, 0x52, 0x0a, 0xd2, 0x0b, 0x26, 0xa1, 0x97, 0x00, 0x78, 0x0e, 0x5e, 0xf3, 0xce, 0x01, 0x44, 0x38, 0x8d, 0x84, 0x07, 0xb6, 0xa7, 0x0c, 0x1c, 0xda, 0x37, 0xdb, 0x7f, 0x12, 0x09, 0x1d, 0x89, 0x2f, 0x2e, 0x91, 0xad, 0x40, 0x78, 0xbb, 0x4d, 0xb1, 0x76, 0x2e, 0x46, 0x28, 0x5a, 0x7b, 0x66, 0x4b, 0x2a, 0xd3, 0xa3, 0x4d, 0x26, 0xd8, 0xa9, 0x4d, 0x64, 0x58, 0x7a, 0x84, 0x52, 0x77, 0x22, 0xea, 0x83, 0xcb, 0x8a, 0xa8, 0x89, 0x84, 0xe1, 0x48, 0x97, 0x43, 0xb4, 0x21, 0x4e, 0xa6, 0x04, 0x1a, 0xa1, 0x8e, 0x55, 0x20, 0x09, 0x54, 0xef, 0xc7, 0xed, 0xb3, 0x19, 0xdf, 0x94, 0x7e, 0xfb, 0xfc, 0x6c, 0x8d, 0x0f, 0xea, 0x48, 0xa1, 0x31, 0x61, 0x34, 0x65, 0xd8, 0xf4, 0xc4, 0x94, 0x98, 0xf2, 0x26, 0x91, 0x45, 0xc6, 0xda, 0xe5, 0x04, 0x78, 0x05, 0x25, 0x98, 0xe1, 0xca, 0x3b, 0xe0, 0xe3, 0x36, 0x11, 0x57, 0x1f, 0xa3, 0x84, 0x77, 0x1e, 0xee, 0x40, 0x2c, 0xc2, 0xb1, 0xd8, 0x48, 0x36, 0xc8, 0xf1, 0xad, 0x28, 0xf2, 0xad, 0x23, 0xde, 0xe9, 0xff, 0x1d, 0x7e, 0x1f, 0x25, 0x21, 0x63, 0x58, 0x74, 0x11, 0x5d, 0xef, 0x4d, 0x93, 0xe8, 0x9b, 0xe7, 0x61, 0x80, 0xbc, 0x55, 0xf7, 0x61, 0x14, 0x43, 0x60, 0xa8, 0xb2, 0x22, 0x89, 0x2d, 0x64, 0xd1, 0x57, 0xcc, 0xb5, 0xd8, 0xf4, 0x85, 0x5d, 0xca, 0x56, 0x70, 0x14, 0x95, 0xa0, 0xe1, 0x00, 0x2d, 0x34, 0x0a, 0x4a, 0x46, 0x15, 0x6b, 0x9b, 0x7f, 0xe0, 0x6b, 0x7c, 0x07, 0x59, 0xe0, 0xb6, 0xdf, 0x55, 0x9b, 0x69, 0x1e, 0xde, 0x78, 0xb5, 0x5a, 0xf6, 0x4e, 0x7c, 0x8d, 0xd9, 0x08, 0xb7, 0x88, 0xdd, 0x6b, 0xa3, 0x5a, 0x90, 0x2c, 0x81, 0xdc, 0xeb, 0x37, 0x88, 0xb6, 0x15, 0xde, 0x22, 0x5a, 0xfa, 0x58, 0xa8, 0x11, 0x81, 0xab, 0x24, 0xa7, 0x37, 0x05, 0xee, 0x83, 0x8b, 0x6e, 0x86, 0x3f, 0xe1, 0xbc, 0xc2, 0x6c, 0x1b, 0x94, 0x32, 0x39, 0x23, 0x0c, 0x27, 0xc6, 0xb3, 0x97, 0xb2, 0x3d, 0x13, 0xde, 0x6a, 0x02, 0xc9, 0x7f, 0x36, 0x45, 0xda, 0x91, 0xd4, 0x13, 0xf9, 0x16, 0x47, 0x3b, 0x01, 0x8a, 0x61, 0x59, 0x4b, 0x6f, 0x51, 0xce, 0xa4, 0x44, 0x57, 0xda, 0x1e, 0x3d, 0xbb, 0xba, 0x6d, 0xe1, 0x68, 0x66, 0x65, 0x7e, 0x92, 0xef, 0x02, 0x02, 0x71, 0x8a, 0x84, 0xad, 0x03, 0x33, 0xe8, 0x33, 0x6b, 0x05, 0x2b, 0x00, 0x47, 0x33, 0xe8, 0xe9, 0x5e, 0xc1, 0x3e, 0x5f, 0x91, 0xb3, 0x80, 0x6a, 0x98, 0xd3, 0xdb, 0x72, 0x9f, 0xb7, 0x35, 0xb8, 0x14, 0x7c, 0x4a, 0x98, 0x2a, 0x2d, 0x5b, 0x4e, 0xfa, 0xe9, 0xc0, 0x9d, 0x0a, 0x9b, 0xf8, 0x91, 0xcb, 0xbc, 0x3c, 0x8f, 0x53, 0x1e, 0x76, 0xe4, 0x04, 0x4e, 0xc9, 0x1f, 0x4d, 0x7c, 0x5c, 0xf7, 0x73, 0x10, 0xe2, 0xb2, 0xcd, 0xe2, 0xe0, 0x7c, 0xcf, 0x3e, 0x0a, 0x19, 0xdd, 0x6a, 0xe1, 0xb3, 0xfc, 0xb2, 0xdf, 0x42, 0x18, 0x6e, 0x9c, 0x72, 0x92, 0x2d, 0x2d, 0x4c, 0xe5, 0x1b, 0x30, 0x6e, 0x81, 0xb1, 0x6c, 0xfc, 0xf8, 0xf0, 0x0d, 0x51, 0x3f, 0xbd, 0x2c, 0x52, 0x39, 0xb4, 0x5a, 0xfc, 0x65, 0x4f, 0x6f, 0xe2, 0x1a, 0xcb, 0x7e, 0x8a, 0x0c, 0x9a, 0xa8, 0x7b, 0x0b, 0x60, 0x50, 0x74, 0xdf, 0x95, 0x76, 0xa6, 0xdd, 0xd9, 0x00, 0xac, 0xa5, 0x67, 0x61, 0x7c, 0xb7, 0x96, 0x56, 0xb3, 0xb5, 0xec, 0xb9, 0xff, 0x68, 0xb2, 0xf6, 0x24, 0x1e, 0xd0, 0xd0, 0x24, 0xac, 0x27, 0xaa, 0x6e, 0xb4, 0x86, 0xb6, 0x9f, 0xdc, 0x0a, 0x0d, 0xb9, 0x20, 0x96, 0xab, 0xf8, 0x60, 0x02, 0xde, 0xc7, 0xaf, 0xd8, 0x47, 0xa0, 0x06, 0xa3, 0xf6, 0x95, 0x5b, 0x49, 0x56, 0x90, 0x53, 0xbe, 0x9f, 0x1d, 0x0a, 0x49, 0xb7, 0x93, 0xa5, 0x41, 0x1e, 0x59, 0x16, 0xf4, 0x18, 0xec, 0xab, 0x95, 0x32, 0x43, 0x55, 0x3b, 0x66, 0xe6, 0xba, 0xdc, 0x4e, 0x90, 0x9b, 0xe0, 0xef, 0x5c, 0xc7, 0xc6, 0xd2, 0x71, 0x99, 0xec, 0x3f, 0x21, 0x42, 0x3b, 0xc4, 0x57, 0x73, 0xfb, 0x40, 0xb9, 0x7b, 0x61, 0x18, 0x5b, 0x57, 0x08, 0x0e, 0x8f, 0x0b, 0x89, 0xa3, 0xea, 0x57, 0xc8, 0x44, 0x4a, 0xb2, 0x7e, 0xcf, 0x70, 0x06, 0xa7, 0x66, 0x04, 0x7e, 0xef, 0xf5, 0x4d, 0x85, 0x56, 0xcf, 0xed, 0x23, 0xde, 0xf1, 0xda, 0x2c, 0xc8, 0xae, 0xbb, 0x48, 0xc9, 0x4e, 0x77, 0x9e, 0x82, 0x03, 0xae, 0x2c, 0x90, 0x2b, 0x51, 0xde, 0x0e, 0xde, 0x04, 0x56, 0xfb, 0x73, 0xfb, 0x4d, 0x5f, 0x51, 0x4a, 0x4c, 0xeb, 0xc4, 0x7f, 0xec, 0x3f, 0x94, 0x84, 0x69, 0xa5, 0x45, 0xc6, 0xbc, 0x57, 0xb4, 0x13, 0x8d, 0xb3, 0x4e, 0x7c, 0xc0, 0x06, 0xde, 0x26, 0xef, 0x50, 0x7b, 0x54, 0xd2, 0x81, 0x47, 0x56, 0x7a, 0x8c, 0x29, 0xac, 0x1e, 0xce, 0xf5, 0xbb, 0x84, 0xfb, 0x99, 0xac, 0xeb, 0x23, 0xa2, 0x02, 0x94, 0xd7, 0x4a, 0x85, 0xae, 0x36, 0xb3, 0x34, 0x50, 0x66, 0x8a, 0x5c, 0x26, 0x09, 0xd3, 0xa9, 0x39, 0x34, 0x58, 0x6f, 0xf9, 0x0c, 0x3b, 0x6d, 0x27, 0x32, 0x9e, 0xee, 0xf3, 0xa7, 0x54, 0xe9, 0xa9, 0xcb, 0xd5, 0x61, 0x7e, 0xf3, 0xb0, 0x93, 0x97, 0xbd, 0xc9, 0x71, 0x37, 0x07, 0x66, 0x58, 0x9a, 0x12, 0xd8, 0x90, 0x05, 0x0d, 0x16, 0x51, 0x45, 0x8b, 0x3f, 0xc5, 0x33, 0xc8, 0x43, 0xbf, 0xfd, 0xf9, 0x75, 0x4d, 0x93, 0x2c, 0x4e, 0xd7, 0x61, 0x1d, 0x4d, 0x27, 0xc3, 0x2a, 0x08, 0x75, 0x55, 0xb5, 0xea, 0xa3, 0x7a, 0xe9, 0x0c, 0x49, 0x79, 0xef, 0x54, 0x29, 0x9c, 0x42, 0x0a, 0xb5, 0xe2, 0x9a, 0xe2, 0x84, 0x5d, 0x4d, 0xcf, 0x21, 0x78, 0x92, 0x0a, 0x86, 0x51, 0x75, 0xfb, 0x9c, 0xc0, 0xe6, 0xb8, 0xc5, 0x24, 0xb1, 0xee, 0x49, 0x58, 0x05, 0xd5, 0x17, 0xbf, 0xe0, };
19963 static const u8 ed25519_868_test_vectors_expected_sig[] = {
19964 	0xa2, 0x70, 0x0e, 0x38, 0x95, 0xed, 0x0c, 0xc2, 0xaa, 0xf0, 0x12, 0xa4, 0x0b, 0xc7, 0xbd, 0x0b, 0xd2, 0x9d, 0xd7, 0x9c, 0x69, 0xc0, 0xb4, 0xa6, 0xed, 0xd0, 0x53, 0x0c, 0xf3, 0xe2, 0x67, 0xc0, 0xf8, 0x2d, 0xd8, 0x4e, 0xda, 0xf1, 0x74, 0x4d, 0xc4, 0x11, 0xd6, 0x2c, 0x00, 0x28, 0x71, 0x52, 0x58, 0x82, 0x2d, 0x7b, 0x63, 0xd3, 0x97, 0x05, 0x61, 0x2b, 0x3f, 0xad, 0x4b, 0x5e, 0xfb, 0x04, };
19965 static const ec_test_case ed25519_868_test_case = {
19966 	.name = "EDDSA25519-SHA512/wei25519 868",
19967 	.ec_str_p = &wei25519_str_params,
19968 	.priv_key = ed25519_868_test_vectors_priv_key,
19969 	.priv_key_len = sizeof(ed25519_868_test_vectors_priv_key),
19970 	.nn_random = NULL,
19971 	.hash_type = SHA512,
19972 	.msg = (const char *)ed25519_868_test_vectors_message,
19973 	.msglen = sizeof(ed25519_868_test_vectors_message),
19974 	.sig_type = EDDSA25519,
19975 	.exp_sig = ed25519_868_test_vectors_expected_sig,
19976 	.exp_siglen = sizeof(ed25519_868_test_vectors_expected_sig),
19977 	.adata = NULL,
19978 	.adata_len = 0
19979 };
19980 
19981 /************************************************/
19982 static const u8 ed25519_869_test_vectors_priv_key[] = {
19983 	0x5c, 0x69, 0x2c, 0x68, 0x11, 0x98, 0xb1, 0x72, 0xdf, 0x2f, 0xac, 0x2a, 0xec, 0x3f, 0xcf, 0x70, 0x15, 0xc2, 0xbb, 0x68, 0x30, 0xf2, 0xa9, 0x8e, 0x30, 0xa3, 0x96, 0xb6, 0x4a, 0xf4, 0x28, 0x0e, };
19984 static const u8 ed25519_869_test_vectors_message[] = {
19985 	0xb1, 0x60, 0xee, 0x3a, 0x93, 0xcf, 0x6b, 0xc3, 0x45, 0x6e, 0x5b, 0xd0, 0x19, 0x7c, 0x09, 0xaa, 0x76, 0xc2, 0x25, 0x80, 0x52, 0xf9, 0xa3, 0x4d, 0xbc, 0x2e, 0xd5, 0x89, 0xf8, 0xdb, 0xe5, 0xff, 0x99, 0x69, 0xa6, 0x1c, 0xfe, 0x84, 0x6b, 0x2f, 0x67, 0x39, 0xdc, 0x7d, 0x4a, 0x14, 0x96, 0xe9, 0xad, 0x58, 0x60, 0x5b, 0x5a, 0x27, 0x58, 0xca, 0x07, 0x8c, 0x55, 0xa9, 0xfc, 0x1c, 0x4e, 0xeb, 0x54, 0x91, 0xa8, 0x4b, 0xfd, 0x46, 0x8a, 0x2c, 0xeb, 0x14, 0x1a, 0x77, 0x34, 0x93, 0xa9, 0xb3, 0xee, 0x82, 0x8b, 0x5d, 0xde, 0x9c, 0x00, 0xc2, 0x36, 0xff, 0x01, 0x56, 0xe4, 0xe2, 0xe4, 0x5f, 0xa0, 0x79, 0x31, 0xda, 0x68, 0xbb, 0xd2, 0x03, 0x0a, 0x88, 0x14, 0x05, 0xc4, 0xf7, 0x87, 0x28, 0x81, 0x3a, 0x5e, 0x04, 0x81, 0x24, 0x04, 0xc2, 0xa1, 0x9c, 0x9b, 0x87, 0xb1, 0xcf, 0xe9, 0xaf, 0x95, 0xe2, 0x73, 0xec, 0xf9, 0xc5, 0x18, 0xc5, 0x39, 0x35, 0xf8, 0x42, 0x56, 0x3b, 0x19, 0x2f, 0xae, 0x12, 0xa7, 0x3c, 0xef, 0x08, 0x5f, 0xe1, 0x9e, 0x89, 0x9e, 0x5b, 0xa0, 0x89, 0x79, 0xe3, 0x11, 0xfb, 0x28, 0x6f, 0xbf, 0xc7, 0xb2, 0x48, 0xaa, 0xbd, 0x40, 0xdc, 0x61, 0x61, 0x0e, 0x1d, 0x4f, 0xc9, 0x80, 0x6d, 0xd2, 0x12, 0x92, 0x39, 0x2d, 0xb2, 0xdb, 0x40, 0x42, 0x6c, 0x5d, 0x19, 0x6a, 0x48, 0x9c, 0x5d, 0xb7, 0x7e, 0x3e, 0x9c, 0xf0, 0xbd, 0x04, 0x1e, 0x3c, 0x23, 0xb5, 0xba, 0x1d, 0xb7, 0x81, 0xa1, 0x07, 0x90, 0xbe, 0x1f, 0xe0, 0x7a, 0x2b, 0x00, 0xca, 0x3a, 0xf8, 0x9c, 0xbd, 0x46, 0xef, 0xce, 0x88, 0x0e, 0x1e, 0xf2, 0x8b, 0x0c, 0xd7, 0x9d, 0x53, 0xb4, 0x2c, 0xd8, 0x0e, 0xaa, 0x13, 0x7e, 0xff, 0x7d, 0xf9, 0x0b, 0xcb, 0xcf, 0x95, 0xc9, 0x85, 0x8d, 0xc0, 0xcc, 0xc6, 0xd8, 0xca, 0x8a, 0xe3, 0x54, 0x7b, 0xdb, 0xf9, 0xff, 0x90, 0x24, 0xf3, 0xcf, 0x17, 0x01, 0x15, 0xeb, 0x28, 0xbf, 0x12, 0xb7, 0xd3, 0xb7, 0x01, 0x46, 0x0f, 0x48, 0xd1, 0xb4, 0xb2, 0x3d, 0x7f, 0x6f, 0xf7, 0x2f, 0xfd, 0xc9, 0xa6, 0xc5, 0x26, 0x24, 0xd1, 0x53, 0x12, 0xd7, 0xf1, 0x9d, 0xdb, 0x60, 0x26, 0xa1, 0x5e, 0xb5, 0x42, 0x95, 0xd3, 0x31, 0xfd, 0x79, 0x50, 0x91, 0x03, 0xbc, 0x59, 0xa3, 0xb6, 0xe1, 0xba, 0x7a, 0xc8, 0xc1, 0x12, 0xe4, 0xde, 0x28, 0x17, 0xe5, 0x1c, 0x1e, 0x16, 0x50, 0x7b, 0xa6, 0x6f, 0x25, 0x47, 0xbc, 0x89, 0x9f, 0x69, 0xc1, 0x20, 0x7a, 0xe5, 0xe3, 0x7b, 0xdb, 0x0e, 0x16, 0x1b, 0x15, 0xb6, 0x12, 0x30, 0x5b, 0xc0, 0x94, 0x0f, 0x9d, 0x1b, 0x38, 0x2a, 0x37, 0xec, 0x2d, 0xa6, 0x39, 0xa6, 0xec, 0xba, 0x1b, 0xcd, 0xfc, 0x51, 0x21, 0x4c, 0x32, 0x23, 0xc1, 0x1b, 0xba, 0xb7, 0x9f, 0x3f, 0xae, 0x3d, 0x55, 0xe2, 0xd4, 0xbe, 0x58, 0x4f, 0xd7, 0x60, 0x1e, 0x4e, 0x2e, 0x55, 0x8b, 0x3b, 0xe5, 0x70, 0x71, 0x15, 0xa6, 0x1f, 0x5a, 0x81, 0x5e, 0xc2, 0x4a, 0xac, 0x18, 0x09, 0x34, 0x57, 0xbc, 0x46, 0xc0, 0x5c, 0xfb, 0x7a, 0x3f, 0x25, 0x33, 0xea, 0xda, 0xdc, 0x9e, 0x6c, 0x1f, 0xe3, 0x10, 0x77, 0x9e, 0x69, 0x7f, 0x68, 0x30, 0x35, 0xce, 0x57, 0x87, 0x3d, 0xf5, 0x5d, 0x79, 0x1f, 0x6d, 0x2f, 0xb0, 0xe2, 0x10, 0x7e, 0x68, 0x66, 0xf8, 0x39, 0xc3, 0xa1, 0x26, 0xe9, 0x02, 0x38, 0x65, 0xce, 0xd1, 0xbc, 0xf6, 0x77, 0x99, 0x55, 0xaf, 0x54, 0x7e, 0x1d, 0x87, 0xeb, 0x32, 0xa9, 0xbf, 0x32, 0x28, 0x57, 0xfd, 0x12, 0x6b, 0x0c, 0xdc, 0x5d, 0x5e, 0x90, 0x4e, 0xb7, 0x6c, 0x67, 0x06, 0xe3, 0xc8, 0x97, 0xae, 0xfd, 0x6e, 0x47, 0x56, 0xfb, 0x8a, 0xca, 0x81, 0x70, 0xca, 0x5b, 0x39, 0x66, 0x90, 0x89, 0xaf, 0x1b, 0xb1, 0x41, 0xa2, 0x5d, 0x6b, 0x8b, 0x06, 0x03, 0x4d, 0x8b, 0x11, 0xab, 0xf1, 0xff, 0x8f, 0x8d, 0x43, 0x37, 0x58, 0x46, 0xfa, 0x8f, 0xa8, 0xa3, 0x4b, 0x5f, 0x26, 0x48, 0x20, 0x74, 0x4d, 0x31, 0x14, 0x9b, 0x7d, 0x57, 0x32, 0x6c, 0x59, 0xb1, 0xdb, 0x74, 0x13, 0x16, 0x78, 0xf6, 0x34, 0xe7, 0x23, 0x2c, 0xa5, 0xea, 0x51, 0x88, 0x76, 0x0a, 0x70, 0xdc, 0x35, 0xdc, 0x89, 0xf8, 0xe4, 0x53, 0xb4, 0xc6, 0x5b, 0x77, 0x2c, 0x2b, 0x6b, 0x62, 0x76, 0x8d, 0x83, 0x73, 0x23, 0x65, 0x51, 0xba, 0xaf, 0x24, 0xd3, 0xc3, 0x04, 0xc4, 0x1b, 0x62, 0xc3, 0x6e, 0x6a, 0x33, 0x83, 0xb3, 0xa1, 0x63, 0xb7, 0x3e, 0x78, 0xd8, 0xba, 0xdb, 0x75, 0x74, 0x1e, 0x50, 0x01, 0xd4, 0x19, 0xd3, 0x0e, 0x2e, 0xd7, 0x7c, 0x30, 0x96, 0xe8, 0xd8, 0xdf, 0x71, 0x3b, 0x93, 0x76, 0x2c, 0x97, 0x07, 0xbd, 0xd0, 0xf3, 0x65, 0xa8, 0x74, 0xb9, 0xda, 0x8a, 0xb7, 0x10, 0x49, 0x5d, 0xd5, 0x6a, 0xea, 0x93, 0xbb, 0x77, 0xfb, 0x22, 0x26, 0x35, 0xc6, 0x3b, 0xce, 0x9f, 0x63, 0xaf, 0x91, 0xfa, 0xc8, 0x9c, 0x66, 0x98, 0x6b, 0x8e, 0x21, 0x76, 0xdd, 0x45, 0x1d, 0x58, 0x33, 0x94, 0xc1, 0x90, 0x7c, 0xba, 0x17, 0x25, 0xf0, 0x6d, 0x25, 0xd1, 0xd0, 0x91, 0x2b, 0x3e, 0x5c, 0x6c, 0x7d, 0xcd, 0x34, 0x35, 0x8f, 0xad, 0x59, 0xdb, 0xc6, 0xf6, 0xb1, 0xc2, 0xef, 0x33, 0xd3, 0xca, 0x82, 0xf4, 0x35, 0x18, 0xfe, 0x4f, 0xf3, 0x13, 0x78, 0x01, 0x6e, 0x57, 0x8a, 0x7b, 0xab, 0x0b, 0x77, 0x67, 0x6e, 0xba, 0xe0, 0xd4, 0x8d, 0x08, 0x89, 0xd6, 0x90, 0x29, 0xd2, 0x09, 0xf2, 0x83, 0xce, 0x8f, 0xe0, 0xec, 0x23, 0xcd, 0x83, 0x2a, 0xdc, 0x12, 0xa9, 0xc3, 0xe3, 0xae, 0xc2, 0xd6, 0x03, 0x66, 0x95, 0x55, 0x6d, 0x93, 0x13, 0xf1, 0x2a, 0x89, 0x9d, 0xd5, 0x9a, 0x66, 0xbe, 0xf2, 0x8e, 0xde, 0x17, 0x5f, 0x8a, 0xae, 0xee, 0xb2, 0x94, 0x2b, 0xb9, 0x08, 0x92, 0xa0, 0x4b, 0x44, 0x0d, 0x04, 0xb6, 0x6f, 0x5e, 0xef, 0xf6, 0x1a, 0xda, 0x72, 0x79, 0x02, 0x94, 0xce, 0x55, 0xc8, 0x6c, 0x6d, 0x92, 0x78, 0x5d, 0xdd, 0x26, 0xc7, 0xa7, 0x31, 0x60, 0x3b, 0x06, 0x9c, 0x60, 0x3c, 0x92, 0xe4, 0xfe, 0x8f, 0xf7, 0x82, 0x54, 0x4c, 0x8e, 0x89, 0xb4, 0x0b, 0x8b, 0x55, 0xf9, 0x0e, 0x2a, 0x5e, 0x9a, 0x0f, 0x33, 0xc7, 0xfe, 0xc7, 0x7d, 0xad, 0x81, 0x52, };
19986 static const u8 ed25519_869_test_vectors_expected_sig[] = {
19987 	0xad, 0x8f, 0x37, 0x9c, 0xaf, 0x41, 0xf7, 0x2d, 0xcc, 0xad, 0xc3, 0xe9, 0x15, 0x35, 0x7a, 0xb0, 0xcd, 0x30, 0x4e, 0x10, 0xf4, 0x12, 0x0e, 0x0d, 0xbb, 0xfa, 0xac, 0x01, 0xbf, 0xfa, 0xf2, 0xbe, 0x89, 0x3f, 0x70, 0x07, 0x2d, 0xc9, 0x64, 0x06, 0x91, 0x81, 0xbe, 0xc1, 0x7f, 0xe0, 0x25, 0x10, 0x55, 0xb2, 0x1e, 0x23, 0xde, 0xe4, 0x36, 0x3b, 0x27, 0xef, 0x1f, 0xff, 0x67, 0xaa, 0xfe, 0x06, };
19988 static const ec_test_case ed25519_869_test_case = {
19989 	.name = "EDDSA25519-SHA512/wei25519 869",
19990 	.ec_str_p = &wei25519_str_params,
19991 	.priv_key = ed25519_869_test_vectors_priv_key,
19992 	.priv_key_len = sizeof(ed25519_869_test_vectors_priv_key),
19993 	.nn_random = NULL,
19994 	.hash_type = SHA512,
19995 	.msg = (const char *)ed25519_869_test_vectors_message,
19996 	.msglen = sizeof(ed25519_869_test_vectors_message),
19997 	.sig_type = EDDSA25519,
19998 	.exp_sig = ed25519_869_test_vectors_expected_sig,
19999 	.exp_siglen = sizeof(ed25519_869_test_vectors_expected_sig),
20000 	.adata = NULL,
20001 	.adata_len = 0
20002 };
20003 
20004 /************************************************/
20005 static const u8 ed25519_870_test_vectors_priv_key[] = {
20006 	0x9d, 0x5f, 0x85, 0xd2, 0xe7, 0xdf, 0xd0, 0x3b, 0xb6, 0x89, 0xd9, 0x00, 0x28, 0x5f, 0xd4, 0x46, 0x15, 0x38, 0xa5, 0xf2, 0x71, 0x0a, 0x13, 0xed, 0x21, 0xc7, 0x75, 0xf6, 0xef, 0xf6, 0xb3, 0xff, };
20007 static const u8 ed25519_870_test_vectors_message[] = {
20008 	0xf7, 0x0b, 0x5b, 0x05, 0x3a, 0x46, 0x72, 0x51, 0x2c, 0x24, 0xb3, 0x16, 0x83, 0x92, 0xf6, 0xa1, 0x7d, 0xd7, 0x7d, 0x86, 0x89, 0xc2, 0x1c, 0x86, 0xef, 0xc2, 0x58, 0x29, 0xa1, 0xa0, 0x4f, 0xab, 0x4f, 0x76, 0xc8, 0x52, 0x16, 0x84, 0xd3, 0x20, 0x10, 0x45, 0x59, 0x07, 0xa2, 0x69, 0x08, 0x67, 0x7b, 0x40, 0xdc, 0x69, 0x47, 0xd6, 0x54, 0xf2, 0x91, 0x4c, 0x30, 0xec, 0xee, 0x72, 0x4f, 0xa6, 0x84, 0x46, 0xb5, 0x9d, 0x09, 0x1e, 0x25, 0x8f, 0xc8, 0x62, 0x41, 0x1c, 0x96, 0x4d, 0x66, 0x8d, 0xef, 0x83, 0x03, 0x4b, 0x62, 0x7e, 0xd4, 0x16, 0xdc, 0x19, 0x0b, 0xb5, 0xa2, 0x63, 0xa6, 0xff, 0x8d, 0x55, 0x9e, 0x13, 0xb8, 0x93, 0x62, 0x25, 0xfb, 0x4d, 0xab, 0x4f, 0x7b, 0xda, 0x04, 0x68, 0xe5, 0x47, 0xe7, 0x08, 0xcb, 0x04, 0xce, 0xbe, 0x1e, 0x5c, 0xfc, 0x69, 0xf7, 0x6a, 0x1d, 0x28, 0x3f, 0x28, 0x16, 0x82, 0x86, 0xf2, 0x4e, 0xce, 0xa5, 0x53, 0x5e, 0x44, 0x90, 0xa0, 0xc5, 0x55, 0x67, 0xa7, 0x34, 0x5e, 0xf9, 0x53, 0xce, 0x42, 0x6b, 0x20, 0x9a, 0x3d, 0xe3, 0xdf, 0x59, 0x5e, 0x80, 0xee, 0x61, 0xe5, 0x72, 0xa2, 0x78, 0xab, 0x02, 0x21, 0x95, 0x51, 0xb7, 0x3d, 0xa4, 0x19, 0x84, 0x80, 0x82, 0x85, 0xa8, 0x35, 0x98, 0xa0, 0x2d, 0x9b, 0x28, 0x67, 0x12, 0x10, 0x00, 0x4e, 0x31, 0xd8, 0xaf, 0x92, 0x42, 0xc1, 0x6f, 0x90, 0xd5, 0xea, 0x8f, 0x63, 0xa1, 0xff, 0x66, 0xcf, 0xe6, 0x0e, 0xcb, 0xe5, 0x37, 0x24, 0x5f, 0xa1, 0x2a, 0x9b, 0x15, 0x41, 0x15, 0x29, 0x58, 0x06, 0xea, 0x2d, 0x11, 0xf3, 0x67, 0x17, 0x82, 0xb9, 0xaf, 0x4f, 0xa8, 0x6a, 0x12, 0x88, 0xe1, 0x23, 0xcf, 0xd2, 0x40, 0x9a, 0x5d, 0xc9, 0x8f, 0x41, 0xb8, 0xf6, 0xdf, 0x29, 0x9b, 0xbc, 0xc4, 0xbb, 0x64, 0x47, 0xdc, 0x03, 0xa6, 0xd6, 0x0e, 0x9b, 0x2c, 0x5b, 0x8f, 0xfc, 0x40, 0xd9, 0x83, 0x95, 0x6b, 0xe9, 0x77, 0x68, 0xdd, 0x06, 0x12, 0xd4, 0x7c, 0xbf, 0xa7, 0x57, 0x1c, 0x99, 0x69, 0x85, 0x6c, 0x15, 0x2c, 0xd3, 0xb4, 0x73, 0xac, 0xe0, 0xb8, 0xa1, 0x44, 0xaa, 0xc2, 0x09, 0x5c, 0x0f, 0x72, 0xf1, 0xd3, 0x14, 0x71, 0x52, 0xb9, 0x08, 0xef, 0x66, 0x26, 0xd5, 0x22, 0x28, 0x19, 0xb2, 0x0b, 0xb3, 0x35, 0x0a, 0x46, 0x45, 0x2f, 0x67, 0x54, 0x90, 0xc2, 0xa8, 0x21, 0x50, 0xee, 0xc4, 0x0d, 0x75, 0xb6, 0x6a, 0x32, 0x5d, 0x6e, 0x92, 0x9a, 0x90, 0x5a, 0xde, 0x1e, 0x31, 0x60, 0xab, 0x95, 0x01, 0x81, 0xef, 0xc6, 0x6e, 0x59, 0x23, 0x08, 0x65, 0xd5, 0xe5, 0x99, 0x69, 0x8a, 0x8a, 0x3f, 0xf5, 0x60, 0xc4, 0xc6, 0x01, 0xa7, 0xa9, 0xa5, 0xda, 0x3b, 0x5d, 0x89, 0xbc, 0xa9, 0x3f, 0x7c, 0xf5, 0xbc, 0xf5, 0xbd, 0x5e, 0xcf, 0xf8, 0xf1, 0xa1, 0x85, 0xc8, 0x22, 0x0e, 0x4c, 0x77, 0x82, 0x1e, 0x62, 0xad, 0xf9, 0x5a, 0x03, 0x7f, 0x2d, 0xf7, 0xce, 0xf4, 0x3a, 0x4c, 0x60, 0xac, 0x75, 0x80, 0x1e, 0x9f, 0xcc, 0xdc, 0x5b, 0x08, 0xee, 0xd3, 0x28, 0xdd, 0x93, 0x10, 0x09, 0x04, 0x11, 0x56, 0x45, 0xec, 0x1e, 0xe0, 0x85, 0xcc, 0x77, 0x8b, 0x0f, 0x4e, 0x46, 0xe1, 0x72, 0x98, 0x98, 0x4a, 0x70, 0x2e, 0xce, 0xb3, 0xe1, 0x52, 0x83, 0xd8, 0x20, 0x00, 0x4f, 0x74, 0xa0, 0x79, 0x52, 0x0d, 0x63, 0xa7, 0x5f, 0xae, 0x33, 0xec, 0x3f, 0x4b, 0x83, 0x64, 0x69, 0xe1, 0xaa, 0x99, 0xea, 0x24, 0x4a, 0xf1, 0xfb, 0x08, 0xb0, 0x0a, 0x8c, 0x9d, 0xfd, 0x03, 0x30, 0x8d, 0xfc, 0x20, 0x23, 0x5e, 0xa9, 0xc8, 0x28, 0x3f, 0x4d, 0xa4, 0x7c, 0xfb, 0xcd, 0xbd, 0x03, 0x1a, 0x02, 0xd1, 0x64, 0x16, 0x0f, 0x2a, 0x58, 0x98, 0x67, 0x00, 0xb1, 0x95, 0x26, 0xd4, 0x1e, 0x4d, 0x7f, 0xd4, 0x58, 0x43, 0x4d, 0x72, 0x64, 0xbc, 0x8e, 0xb6, 0x42, 0xe6, 0xd8, 0xdd, 0x27, 0x59, 0xce, 0x2b, 0x85, 0xc9, 0x7b, 0x37, 0x02, 0xe7, 0x0d, 0xa7, 0x1f, 0x18, 0xed, 0xc5, 0x3e, 0x91, 0x40, 0xa6, 0x45, 0x62, 0x7e, 0x02, 0x78, 0xe8, 0xe7, 0x05, 0x39, 0x03, 0x74, 0x84, 0xdc, 0xd1, 0x8c, 0x62, 0xfa, 0x33, 0x07, 0x17, 0xd6, 0x14, 0x8a, 0x0d, 0x62, 0x3f, 0xf8, 0xb6, 0x5e, 0xa8, 0x56, 0x7e, 0xc7, 0xfa, 0x04, 0xc8, 0x92, 0xe3, 0xa1, 0xec, 0xee, 0x96, 0xe8, 0x32, 0xf4, 0x15, 0x50, 0x74, 0xc8, 0x3c, 0xbc, 0x93, 0xe9, 0x8c, 0xc6, 0x7f, 0x1f, 0xa1, 0x12, 0xaa, 0x06, 0xe9, 0x91, 0x5f, 0xa4, 0xd2, 0xde, 0xa9, 0x31, 0x55, 0x1e, 0x7c, 0x62, 0x3a, 0xa8, 0xa3, 0xa7, 0x61, 0x9e, 0xa2, 0x4f, 0xf9, 0x14, 0xe2, 0x64, 0xf3, 0x1f, 0xc7, 0x3d, 0xfa, 0x8c, 0x43, 0x0a, 0xc4, 0x6c, 0xe1, 0x6d, 0xc9, 0x68, 0xc5, 0xa4, 0x08, 0x5d, 0x5c, 0x38, 0x0d, 0x30, 0xcd, 0xc6, 0xf4, 0x3d, 0xee, 0x80, 0x6f, 0x38, 0xd1, 0xdf, 0x42, 0x0a, 0x06, 0x55, 0x74, 0x14, 0x47, 0x37, 0x05, 0x6d, 0xaa, 0x62, 0xf0, 0xc0, 0x98, 0xc9, 0xc5, 0x2f, 0xcc, 0x04, 0xcc, 0xa6, 0x42, 0xc4, 0x5d, 0x68, 0x73, 0x45, 0xa0, 0x94, 0x61, 0x3d, 0x4a, 0x3c, 0x6c, 0x87, 0x88, 0xbf, 0xa2, 0x18, 0x53, 0x8a, 0xd7, 0xec, 0xe1, 0xbd, 0xb6, 0xc9, 0x39, 0x24, 0xee, 0xc4, 0xba, 0xaa, 0x3e, 0xb1, 0x5d, 0xc1, 0x49, 0x4d, 0x65, 0xff, 0xa1, 0xa2, 0x3f, 0xf8, 0xe9, 0x85, 0x26, 0x34, 0x08, 0xfb, 0x02, 0xbf, 0xe3, 0x9a, 0x8c, 0x55, 0xb3, 0x00, 0xb1, 0xa0, 0x2e, 0xd3, 0x6c, 0x67, 0x14, 0xdd, 0x5a, 0xb7, 0x50, 0xd4, 0x7f, 0x02, 0x1f, 0x65, 0xe0, 0x8c, 0x63, 0x5f, 0x1d, 0x6b, 0x7b, 0xaf, 0x39, 0x6c, 0xb4, 0xf9, 0x3d, 0x56, 0xc1, 0xca, 0x46, 0x1b, 0xb1, 0x2e, 0x94, 0xde, 0x7e, 0x5d, 0x98, 0x65, 0x9a, 0x8a, 0xf0, 0xbf, 0x01, 0x9f, 0xc4, 0x22, 0x80, 0xe1, 0x11, 0xe0, 0x48, 0x00, 0xff, 0x80, 0xe0, 0xc1, 0x57, 0x15, 0x0e, 0x16, 0x56, 0x09, 0x45, 0x42, 0x81, 0xb2, 0x00, 0x07, 0xe3, 0xed, 0xfa, 0xa1, 0xea, 0x85, 0x44, 0x65, 0x54, 0x7a, 0x00, 0x6a, 0x4c, 0x32, 0x36, 0x41, 0x14, 0x95, 0xda, 0x16, 0x60, 0x98, 0xaf, 0x28, 0x23, 0xa4, 0x59, 0xcf, 0x10, 0x0a, 0x1f, 0x3c, 0x92, 0xc6, 0x39, 0x0c, 0x60, 0x66, 0xcd, 0xbf, };
20009 static const u8 ed25519_870_test_vectors_expected_sig[] = {
20010 	0x17, 0x6b, 0x95, 0x92, 0xf8, 0xc2, 0x51, 0x35, 0x29, 0x2a, 0xdd, 0x4d, 0xaa, 0xcc, 0x9c, 0x4f, 0xaa, 0x21, 0xd4, 0xf4, 0x9b, 0x27, 0x84, 0x80, 0xc4, 0xe8, 0x88, 0x1c, 0x01, 0x62, 0x4d, 0xf9, 0xa3, 0x7e, 0x23, 0xe1, 0x8e, 0x84, 0xca, 0x32, 0xd0, 0xd8, 0xcb, 0x85, 0x10, 0x54, 0x22, 0x2f, 0x10, 0xa4, 0x95, 0x41, 0x9f, 0x19, 0x7e, 0x7b, 0x3d, 0x18, 0xdf, 0x0a, 0xdf, 0xb1, 0xb3, 0x07, };
20011 static const ec_test_case ed25519_870_test_case = {
20012 	.name = "EDDSA25519-SHA512/wei25519 870",
20013 	.ec_str_p = &wei25519_str_params,
20014 	.priv_key = ed25519_870_test_vectors_priv_key,
20015 	.priv_key_len = sizeof(ed25519_870_test_vectors_priv_key),
20016 	.nn_random = NULL,
20017 	.hash_type = SHA512,
20018 	.msg = (const char *)ed25519_870_test_vectors_message,
20019 	.msglen = sizeof(ed25519_870_test_vectors_message),
20020 	.sig_type = EDDSA25519,
20021 	.exp_sig = ed25519_870_test_vectors_expected_sig,
20022 	.exp_siglen = sizeof(ed25519_870_test_vectors_expected_sig),
20023 	.adata = NULL,
20024 	.adata_len = 0
20025 };
20026 
20027 /************************************************/
20028 static const u8 ed25519_871_test_vectors_priv_key[] = {
20029 	0x4a, 0xaf, 0x2d, 0x13, 0x28, 0x84, 0xf3, 0x0d, 0x11, 0x27, 0xcf, 0x18, 0x7e, 0xe0, 0x93, 0x88, 0xb4, 0xa5, 0xc4, 0x4a, 0x9a, 0x92, 0x67, 0xe6, 0x72, 0x83, 0x17, 0x39, 0x89, 0x51, 0xfb, 0x61, };
20030 static const u8 ed25519_871_test_vectors_message[] = {
20031 	0xd7, 0x3e, 0xaf, 0x11, 0x41, 0x3b, 0xf4, 0xd5, 0xbc, 0xcf, 0x6a, 0x2e, 0x80, 0x9c, 0xd6, 0x83, 0x2a, 0x51, 0x82, 0x3a, 0xa2, 0x2b, 0xd1, 0x6e, 0x09, 0xcf, 0x56, 0xff, 0x04, 0x5e, 0xef, 0x2d, 0x1a, 0xda, 0xdd, 0xa5, 0x0c, 0x2e, 0xbd, 0x67, 0xbb, 0xc4, 0xd7, 0x0e, 0x49, 0x3c, 0x96, 0x8c, 0xb4, 0xde, 0x49, 0x77, 0x06, 0x5d, 0x44, 0x63, 0x30, 0x06, 0x94, 0xc9, 0xca, 0xa5, 0x72, 0x06, 0xd6, 0x66, 0x46, 0x93, 0xd8, 0x46, 0x2c, 0x3c, 0x57, 0x6b, 0x52, 0x5c, 0xc7, 0xac, 0xf7, 0x9f, 0x26, 0xf9, 0x05, 0x5a, 0x1b, 0xcf, 0xa7, 0xd0, 0x77, 0xf4, 0x5e, 0xbe, 0x0b, 0x2d, 0x48, 0x1e, 0xbd, 0x63, 0xf7, 0x34, 0x0a, 0x33, 0xe4, 0xab, 0x68, 0xf1, 0x60, 0x49, 0x75, 0xec, 0x1d, 0xfe, 0xc4, 0x5a, 0x79, 0x1a, 0x2a, 0xbb, 0x10, 0x44, 0xd7, 0x5a, 0x4d, 0xb5, 0x5a, 0xdf, 0x59, 0xb8, 0x39, 0x4e, 0xbd, 0xe6, 0x82, 0x4c, 0x21, 0x14, 0x5b, 0x00, 0xef, 0x3b, 0x1b, 0x08, 0xed, 0x11, 0xfd, 0x51, 0xdd, 0xa5, 0x14, 0xed, 0x7e, 0x21, 0xe5, 0x4d, 0xba, 0xf6, 0xab, 0xb6, 0xd9, 0xe3, 0x17, 0xfc, 0xf9, 0xfd, 0x37, 0x5b, 0x18, 0x76, 0x4e, 0x64, 0xac, 0x9b, 0xe5, 0xb0, 0x8f, 0xec, 0x3b, 0x78, 0xab, 0xba, 0xb1, 0xd1, 0x2a, 0x2a, 0xb0, 0x9d, 0x55, 0x9a, 0xcd, 0xc7, 0x13, 0x3f, 0xb2, 0xe0, 0x00, 0x8e, 0x0c, 0x11, 0x4b, 0x7c, 0xad, 0xb4, 0xbf, 0x76, 0x30, 0x78, 0x67, 0x4d, 0x03, 0xe9, 0xc8, 0x07, 0xbe, 0xc1, 0xe2, 0xca, 0x71, 0xad, 0xcd, 0xaa, 0x31, 0x0d, 0x58, 0x7f, 0xa5, 0x69, 0x50, 0xfc, 0x0f, 0xb2, 0xe9, 0x79, 0x04, 0x3d, 0x50, 0xf9, 0xae, 0x23, 0xfa, 0x8f, 0x82, 0x1c, 0xd9, 0xd6, 0x23, 0x27, 0x89, 0xd0, 0xee, 0xcc, 0xfc, 0x4f, 0x47, 0xe3, 0xad, 0x80, 0x4e, 0x25, 0xcf, 0x5a, 0x42, 0x5f, 0x94, 0x37, 0x7d, 0x17, 0x87, 0x48, 0x33, 0xe6, 0xae, 0x36, 0x38, 0x17, 0x8c, 0x78, 0xb7, 0x95, 0x19, 0xd6, 0x4d, 0x97, 0x93, 0xf4, 0x50, 0x46, 0x06, 0xa0, 0xea, 0xb6, 0x87, 0x07, 0xf6, 0xe1, 0xf7, 0xcc, 0xcb, 0x51, 0x5b, 0xe3, 0xd1, 0x20, 0x1b, 0xcd, 0x19, 0xf2, 0xf0, 0xe2, 0x55, 0xc7, 0x22, 0xea, 0xb1, 0x2b, 0x43, 0xaf, 0xf8, 0xc8, 0xc5, 0x56, 0x11, 0x25, 0xfb, 0xca, 0x1f, 0x65, 0x42, 0x07, 0x6a, 0x06, 0x15, 0x2e, 0xb7, 0xe4, 0xb0, 0x78, 0x63, 0x24, 0xc2, 0x49, 0x5e, 0x79, 0xd7, 0x9c, 0x0a, 0x8e, 0x29, 0x5b, 0xb2, 0xe3, 0xdf, 0xd0, 0x5a, 0x90, 0x33, 0x19, 0x00, 0x65, 0xa2, 0x84, 0x55, 0x2a, 0x6e, 0x73, 0x60, 0x06, 0xac, 0xe4, 0x1f, 0x97, 0xcc, 0x43, 0x4a, 0x25, 0x12, 0x05, 0x1b, 0x72, 0x7c, 0xe5, 0xbc, 0x9c, 0x4a, 0x75, 0x52, 0x9e, 0xc5, 0x3d, 0xd7, 0xd1, 0xf1, 0x26, 0xe7, 0x93, 0x85, 0x77, 0x47, 0xb5, 0xba, 0x8d, 0x03, 0x15, 0x5d, 0x45, 0x55, 0xf5, 0x9e, 0x8b, 0xaf, 0x2f, 0x0c, 0xdb, 0xa8, 0x71, 0xac, 0x16, 0x0e, 0x75, 0x19, 0xa8, 0x52, 0xdb, 0x00, 0x4f, 0x70, 0x16, 0x41, 0xa4, 0x0a, 0x42, 0x2d, 0x4c, 0x38, 0xb6, 0xc0, 0xc3, 0xcc, 0x8f, 0xbb, 0xd0, 0x53, 0x22, 0xdd, 0xc0, 0x00, 0x1f, 0xb8, 0x67, 0x28, 0x6e, 0x29, 0x6c, 0xbd, 0x69, 0x86, 0x2c, 0xbc, 0xcc, 0x74, 0x47, 0x03, 0x8e, 0xb3, 0x0f, 0x8a, 0x81, 0x23, 0xb7, 0xb3, 0x13, 0x73, 0x98, 0x47, 0x02, 0xc3, 0xbe, 0x45, 0x7a, 0x4b, 0x8c, 0x54, 0xe6, 0xe5, 0x28, 0x04, 0x85, 0xa2, 0xc4, 0xff, 0x84, 0x52, 0x1f, 0x29, 0x8d, 0xde, 0xb3, 0xb3, 0xb2, 0xbc, 0x91, 0xf1, 0x14, 0xdd, 0xce, 0x67, 0x03, 0x02, 0x48, 0x04, 0x44, 0x69, 0xdc, 0x06, 0xf3, 0x62, 0xf2, 0x91, 0x9a, 0x3f, 0xec, 0xe5, 0x08, 0x23, 0x75, 0xd0, 0x40, 0x80, 0x37, 0x6f, 0xe2, 0x19, 0xd9, 0xb4, 0x57, 0x5b, 0x1c, 0xf1, 0xc9, 0xec, 0x4d, 0xca, 0xc5, 0x74, 0x9f, 0xc7, 0x78, 0xf5, 0x15, 0xdd, 0xa1, 0x3f, 0xa0, 0xd5, 0x86, 0xc2, 0x64, 0xb9, 0xbb, 0x61, 0x50, 0x33, 0x10, 0x76, 0x2c, 0x78, 0x9c, 0xa1, 0x16, 0x08, 0xd2, 0xfe, 0xe6, 0x74, 0xc7, 0x0a, 0xc4, 0xfc, 0x6d, 0x5e, 0xbc, 0xf6, 0x8c, 0x4a, 0xb8, 0x9b, 0xd8, 0x45, 0x55, 0xfc, 0x00, 0x75, 0x23, 0xc2, 0x8a, 0x7e, 0x1d, 0xd0, 0x8a, 0x98, 0x62, 0x04, 0x4d, 0x52, 0x45, 0xb9, 0x1a, 0x87, 0x78, 0xec, 0x9e, 0xe9, 0x84, 0xa4, 0x1a, 0x9e, 0x13, 0xb7, 0xab, 0xd6, 0x57, 0xae, 0x2a, 0x46, 0xae, 0x86, 0x01, 0x52, 0xc6, 0x44, 0xac, 0xd9, 0x53, 0x67, 0x67, 0x8f, 0xf6, 0x4c, 0xc5, 0x40, 0x06, 0xe3, 0x66, 0x14, 0x80, 0x5e, 0xd6, 0x18, 0xa7, 0xc6, 0xd0, 0xfd, 0x33, 0xa9, 0x08, 0x52, 0x30, 0x90, 0x84, 0x1c, 0x23, 0x0a, 0xf0, 0x98, 0x46, 0xd1, 0x32, 0xbb, 0x4c, 0x6b, 0x60, 0xe2, 0x44, 0x1f, 0x9d, 0x3c, 0x49, 0x87, 0x14, 0xf4, 0x70, 0xf6, 0xbc, 0x03, 0xa8, 0x0d, 0x14, 0xa2, 0x94, 0xb5, 0x65, 0xd1, 0xd5, 0xe7, 0x81, 0xcf, 0xfc, 0xb1, 0x30, 0x4e, 0xfd, 0xbb, 0xc7, 0xbf, 0xea, 0xbd, 0xed, 0xc8, 0x57, 0xac, 0xc4, 0x2e, 0x27, 0x62, 0xbb, 0xf9, 0x7a, 0xf8, 0x39, 0xa1, 0x66, 0x75, 0x2d, 0xa2, 0x95, 0x67, 0x28, 0x17, 0xf1, 0x0d, 0xbd, 0x47, 0x2d, 0x38, 0x1f, 0x53, 0x16, 0x55, 0x55, 0xac, 0x82, 0x22, 0xa7, 0x85, 0x35, 0xa8, 0x68, 0x05, 0xf1, 0xbe, 0xd4, 0x22, 0x88, 0x9f, 0x20, 0x61, 0x09, 0xaa, 0x74, 0x77, 0x2e, 0xdc, 0x0b, 0xb5, 0x1e, 0x8a, 0x98, 0x40, 0xcf, 0x62, 0xc9, 0x2f, 0xa6, 0x35, 0xb9, 0x0c, 0xae, 0x07, 0x6d, 0xd5, 0x0e, 0x5a, 0xed, 0x9d, 0xea, 0xc8, 0x43, 0xfa, 0x8a, 0x6b, 0x53, 0x99, 0x88, 0x28, 0x5f, 0xf1, 0xad, 0xab, 0xe4, 0xc7, 0xb8, 0x3d, 0x9e, 0x29, 0xac, 0x2d, 0x94, 0x09, 0x2d, 0xaa, 0xfe, 0xc9, 0xf6, 0x67, 0x36, 0x89, 0xba, 0x9e, 0x92, 0x52, 0xd8, 0x64, 0xd7, 0x57, 0x7a, 0xa8, 0x95, 0x05, 0xd3, 0x31, 0xfe, 0x78, 0x09, 0x86, 0x12, 0x77, 0x00, 0x2a, 0x0b, 0x44, 0xa9, 0x6b, 0xa6, 0xae, 0x4a, 0x52, 0xb3, 0x54, 0x8b, 0xf2, 0x68, 0xe7, 0x77, 0x78, 0x0c, 0x00, 0x20, 0x9b, 0x24, 0x5f, 0x8b, 0x14, 0x17, 0xee, 0x5e, 0x70, 0x1a, 0x12, 0x33, 0x4a, 0xd5, };
20032 static const u8 ed25519_871_test_vectors_expected_sig[] = {
20033 	0x5f, 0x11, 0xdf, 0x39, 0x06, 0xa7, 0x12, 0xa9, 0x53, 0xf4, 0x7c, 0x85, 0x98, 0x06, 0xb5, 0x23, 0x73, 0x58, 0xd0, 0x8b, 0xa9, 0x5e, 0x49, 0xf9, 0xe5, 0x30, 0xa3, 0x71, 0x65, 0x83, 0x5e, 0x93, 0x59, 0xd9, 0x76, 0x9d, 0xc2, 0x1f, 0xbb, 0x4d, 0x44, 0x49, 0x7b, 0x93, 0x90, 0x5b, 0xca, 0x8d, 0x99, 0x17, 0xc7, 0x28, 0x49, 0x3f, 0xee, 0x3a, 0xcd, 0x5b, 0x52, 0x1d, 0xbd, 0x1e, 0x24, 0x08, };
20034 static const ec_test_case ed25519_871_test_case = {
20035 	.name = "EDDSA25519-SHA512/wei25519 871",
20036 	.ec_str_p = &wei25519_str_params,
20037 	.priv_key = ed25519_871_test_vectors_priv_key,
20038 	.priv_key_len = sizeof(ed25519_871_test_vectors_priv_key),
20039 	.nn_random = NULL,
20040 	.hash_type = SHA512,
20041 	.msg = (const char *)ed25519_871_test_vectors_message,
20042 	.msglen = sizeof(ed25519_871_test_vectors_message),
20043 	.sig_type = EDDSA25519,
20044 	.exp_sig = ed25519_871_test_vectors_expected_sig,
20045 	.exp_siglen = sizeof(ed25519_871_test_vectors_expected_sig),
20046 	.adata = NULL,
20047 	.adata_len = 0
20048 };
20049 
20050 /************************************************/
20051 static const u8 ed25519_872_test_vectors_priv_key[] = {
20052 	0x4b, 0xc7, 0xda, 0xab, 0xc5, 0x40, 0x7c, 0x22, 0x6d, 0x19, 0x20, 0xdb, 0x4a, 0xfd, 0x21, 0xb2, 0xa5, 0xb3, 0xe5, 0x9b, 0x8e, 0x92, 0x46, 0x05, 0x3f, 0x6a, 0x1a, 0x6a, 0xfa, 0x54, 0xe7, 0xe7, };
20053 static const u8 ed25519_872_test_vectors_message[] = {
20054 	0x6a, 0xcc, 0xe9, 0x98, 0x43, 0xb2, 0x41, 0xaf, 0xe6, 0xed, 0xd5, 0xd0, 0xab, 0x78, 0xd0, 0xfb, 0x21, 0xc8, 0xc3, 0x5a, 0xff, 0x88, 0x13, 0x89, 0xd5, 0x05, 0xf2, 0xf1, 0xdd, 0x91, 0xaf, 0x1e, 0xb2, 0xad, 0x22, 0x92, 0x54, 0x92, 0x7c, 0x7f, 0x0e, 0xcf, 0xb7, 0xa8, 0x14, 0x16, 0x90, 0x57, 0x3a, 0x65, 0x5d, 0x69, 0x85, 0x3d, 0x74, 0xd0, 0x70, 0x8b, 0xf8, 0xb1, 0xe6, 0x0a, 0x03, 0x96, 0x30, 0x28, 0xa6, 0x25, 0xb7, 0x9f, 0x3d, 0xfe, 0xa2, 0xb1, 0x13, 0xff, 0xca, 0xb4, 0x6f, 0x3c, 0xfd, 0x4a, 0x62, 0x1e, 0x8f, 0xd8, 0xff, 0x0a, 0x96, 0x81, 0x43, 0xb0, 0xae, 0x03, 0xcc, 0xb6, 0xf4, 0x2e, 0x25, 0xe2, 0xd7, 0x4d, 0xbf, 0x51, 0x5b, 0xc3, 0x58, 0x69, 0x9b, 0x63, 0x50, 0x09, 0xb0, 0x1d, 0x61, 0xfe, 0x59, 0x7f, 0x1d, 0xc2, 0xc3, 0x5a, 0x7b, 0xa4, 0x55, 0x52, 0x78, 0xee, 0x0e, 0xa4, 0x56, 0xc7, 0xd3, 0x5f, 0xa8, 0x75, 0x7a, 0x41, 0x79, 0x24, 0xb1, 0xd0, 0xa8, 0x35, 0x1f, 0x22, 0x6a, 0x13, 0xec, 0x29, 0xd0, 0x25, 0xb4, 0x26, 0x96, 0xec, 0x1d, 0x99, 0x25, 0xb7, 0x69, 0xcd, 0x59, 0xc8, 0xe2, 0xf9, 0xcd, 0x3c, 0xe4, 0xe5, 0xc0, 0x20, 0xe0, 0x51, 0xe7, 0xa3, 0x6f, 0x3f, 0x97, 0xc1, 0xe8, 0xec, 0x71, 0x97, 0x4b, 0xc1, 0x6a, 0xc4, 0xde, 0x46, 0x51, 0xad, 0x4d, 0xf2, 0xe9, 0xc0, 0xee, 0xd6, 0x86, 0x92, 0x42, 0x24, 0xfe, 0x6d, 0xe6, 0xc6, 0x0d, 0xd4, 0xac, 0xc2, 0x6e, 0x0a, 0xab, 0xd8, 0x0c, 0x21, 0xd5, 0x09, 0xd9, 0x59, 0xb8, 0x0b, 0x43, 0x53, 0x95, 0x8d, 0x00, 0xe4, 0x4c, 0x51, 0x1d, 0x23, 0xbc, 0xf4, 0x45, 0x52, 0x60, 0x8b, 0xfa, 0x56, 0xa9, 0xc5, 0xae, 0x79, 0xde, 0x62, 0xbb, 0x23, 0xf1, 0x1d, 0x74, 0x0f, 0x48, 0x24, 0x0c, 0x27, 0xe1, 0x01, 0x99, 0x97, 0x51, 0xf2, 0x53, 0x47, 0x42, 0xc0, 0xa6, 0x91, 0x3f, 0xf6, 0x4b, 0x68, 0x3a, 0x18, 0x99, 0x5a, 0xbc, 0x39, 0x3f, 0xeb, 0x9d, 0x57, 0xc7, 0x1f, 0x49, 0xa0, 0x80, 0x55, 0x72, 0x98, 0xcc, 0x40, 0x5d, 0x11, 0xb7, 0x98, 0x8d, 0x71, 0x16, 0x84, 0x0c, 0x5a, 0xda, 0xf5, 0x3b, 0xc6, 0x72, 0xb4, 0x69, 0x23, 0xcc, 0x45, 0x7c, 0x70, 0x39, 0x94, 0x0a, 0xd4, 0xd5, 0xbf, 0x07, 0x3c, 0x6c, 0x88, 0x6b, 0x13, 0x39, 0x52, 0x59, 0x26, 0xd2, 0x81, 0xdb, 0xd1, 0xa7, 0x97, 0x39, 0xb2, 0xe3, 0x64, 0x14, 0xcb, 0xd3, 0x21, 0xb1, 0x85, 0xfc, 0x88, 0xf1, 0x8d, 0x2f, 0x81, 0xc8, 0x09, 0x97, 0x5b, 0xe9, 0xa0, 0x93, 0x64, 0x4c, 0xc5, 0x59, 0xed, 0x2a, 0xe5, 0xcc, 0x0e, 0x35, 0xcb, 0xdd, 0x18, 0x11, 0xf7, 0x02, 0x86, 0x05, 0x7a, 0x3f, 0x70, 0x30, 0x67, 0xed, 0xdd, 0xf5, 0xeb, 0x16, 0x90, 0xa7, 0x42, 0x7b, 0xb7, 0x3f, 0xe3, 0x02, 0x4e, 0xd0, 0xdb, 0x82, 0xa5, 0xce, 0x8f, 0x17, 0x16, 0x42, 0x8a, 0x76, 0xfd, 0x29, 0x2b, 0xa9, 0x9a, 0x30, 0x0c, 0x4b, 0x2f, 0x36, 0x0d, 0xa2, 0x12, 0x46, 0x17, 0x59, 0x0b, 0x10, 0xe3, 0xb1, 0x62, 0xa6, 0xe6, 0x7d, 0xd5, 0xd5, 0xa5, 0x9b, 0xcc, 0xa1, 0x0f, 0x61, 0x0f, 0xa0, 0x64, 0xaf, 0xfd, 0x55, 0xf8, 0x48, 0x3b, 0x98, 0xa6, 0x8d, 0x07, 0x6f, 0x27, 0x8a, 0xbf, 0x88, 0x8a, 0x08, 0xa0, 0x14, 0xe0, 0xea, 0x49, 0x91, 0x80, 0xfb, 0xc7, 0x98, 0x40, 0xce, 0xed, 0x13, 0xcc, 0x6b, 0x24, 0x58, 0xbf, 0xab, 0x9b, 0x0d, 0xd7, 0xae, 0x9d, 0x86, 0x46, 0x1f, 0xe2, 0x15, 0xe7, 0xc9, 0xf6, 0x3f, 0x76, 0x8c, 0xee, 0x4a, 0x88, 0x2d, 0xf0, 0xdd, 0x84, 0xe3, 0xeb, 0x4f, 0x2d, 0x7f, 0x6b, 0x18, 0xfa, 0x57, 0xd8, 0xbc, 0x7d, 0x9a, 0xfb, 0x63, 0xc2, 0x1a, 0xc4, 0x65, 0xe7, 0x90, 0x3b, 0x9b, 0xfb, 0x86, 0x38, 0xa2, 0x93, 0x61, 0xf7, 0xeb, 0xfc, 0x6e, 0x54, 0xe5, 0x46, 0x5a, 0x6c, 0xef, 0x46, 0x3a, 0xe2, 0x26, 0x43, 0xae, 0x41, 0x02, 0x58, 0x77, 0x9c, 0xa7, 0x4b, 0x70, 0x40, 0x1a, 0x94, 0x55, 0xa4, 0xd1, 0x57, 0xd7, 0x4a, 0x70, 0x29, 0xef, 0xe6, 0xb5, 0x19, 0xa8, 0xc4, 0xbe, 0x69, 0x67, 0x56, 0xe0, 0x45, 0xae, 0x40, 0x81, 0xb7, 0x7d, 0xd6, 0x03, 0x1f, 0x0d, 0x25, 0x0f, 0xa7, 0x61, 0xe6, 0x0f, 0x85, 0x9d, 0x90, 0x63, 0xfc, 0x10, 0x5a, 0xa0, 0xa1, 0xa7, 0x45, 0x0a, 0xf1, 0x53, 0xe7, 0x05, 0x47, 0x77, 0x77, 0xc4, 0x42, 0x58, 0x6d, 0xf4, 0x07, 0x40, 0x2b, 0xa2, 0x38, 0x75, 0x2f, 0xae, 0xf7, 0x4f, 0x33, 0x45, 0xc2, 0x6a, 0x45, 0x33, 0xbe, 0x9a, 0x61, 0xf5, 0xfc, 0x6b, 0xde, 0x48, 0xe3, 0xcb, 0xa7, 0x5c, 0x04, 0xd6, 0xf7, 0xb3, 0x33, 0xe3, 0x70, 0x06, 0xdd, 0x0c, 0x94, 0xfd, 0x3b, 0x6a, 0x13, 0x0b, 0xd6, 0xfc, 0xdb, 0x3c, 0x6a, 0xbe, 0x21, 0xca, 0x60, 0xeb, 0x43, 0x1c, 0xc2, 0xd8, 0xa2, 0xec, 0xe7, 0x16, 0x9d, 0x2d, 0xcf, 0xce, 0x27, 0x60, 0x82, 0x56, 0x57, 0xfd, 0x4c, 0x26, 0xf3, 0xc3, 0xb8, 0x30, 0xac, 0xdf, 0xd5, 0x08, 0x01, 0x1d, 0x14, 0x76, 0x4b, 0x3b, 0xe9, 0x17, 0x15, 0x57, 0x1a, 0x31, 0x83, 0x01, 0x8e, 0x0d, 0x22, 0x1f, 0xb9, 0x53, 0x2b, 0xb2, 0xe1, 0x71, 0x1e, 0x72, 0x5a, 0x27, 0x3a, 0xe0, 0xcc, 0x2f, 0xac, 0xcb, 0xa7, 0xd5, 0x50, 0x49, 0x29, 0x45, 0x9c, 0x99, 0x25, 0x17, 0xb0, 0x5c, 0x1d, 0xdd, 0x03, 0xaa, 0xcc, 0xd9, 0x37, 0xb8, 0x6e, 0xb6, 0x7b, 0xc8, 0x20, 0x2d, 0x01, 0xca, 0xb3, 0xd4, 0x89, 0x58, 0x6e, 0xea, 0x1a, 0xcc, 0xa7, 0xdc, 0x20, 0xcd, 0x0b, 0x64, 0x75, 0xc2, 0x58, 0xff, 0x67, 0x36, 0x61, 0x49, 0x6a, 0x22, 0xea, 0x96, 0xb8, 0x9d, 0xb4, 0xbf, 0x3f, 0xca, 0xae, 0x3b, 0xb0, 0x4f, 0x67, 0xdb, 0x09, 0x6a, 0x47, 0xff, 0x7e, 0x1e, 0xe2, 0x39, 0x56, 0x2d, 0xc1, 0x0d, 0x40, 0xf0, 0x53, 0x94, 0x4f, 0x3d, 0x7b, 0xcc, 0x3f, 0xf4, 0xc0, 0xff, 0x76, 0x56, 0x54, 0xba, 0x5e, 0xa6, 0x4f, 0x0e, 0xa6, 0x3e, 0x45, 0xa2, 0x1d, 0x9b, 0x12, 0x94, 0x9f, 0x14, 0xf7, 0xea, 0x70, 0x74, 0xe9, 0xb6, 0x59, 0xc5, 0xc5, 0xd4, 0x48, 0x16, 0x84, 0x2d, 0xe8, 0x96, 0x98, 0xa8, 0xfc, 0xca, 0xce, 0x43, 0xeb, 0x6b, 0x41, 0x35, 0xe0, 0xb3, 0x33, 0xac, };
20055 static const u8 ed25519_872_test_vectors_expected_sig[] = {
20056 	0xa7, 0xa6, 0x48, 0x88, 0x39, 0xbb, 0xae, 0x04, 0xde, 0xc9, 0x2f, 0x96, 0xd7, 0x28, 0xc4, 0x64, 0x68, 0x5d, 0x7a, 0x96, 0xdf, 0x51, 0x2b, 0x00, 0x51, 0x16, 0x3d, 0x22, 0x53, 0x8f, 0x74, 0x54, 0x6f, 0xa9, 0x86, 0xb1, 0xb6, 0x0a, 0x6d, 0x8c, 0xc7, 0x66, 0xa2, 0x6c, 0x69, 0x84, 0xc9, 0xcd, 0x26, 0x88, 0x39, 0x58, 0x98, 0xe2, 0xb2, 0xae, 0x72, 0xdc, 0x6a, 0x2d, 0x5a, 0x9f, 0x75, 0x0e, };
20057 static const ec_test_case ed25519_872_test_case = {
20058 	.name = "EDDSA25519-SHA512/wei25519 872",
20059 	.ec_str_p = &wei25519_str_params,
20060 	.priv_key = ed25519_872_test_vectors_priv_key,
20061 	.priv_key_len = sizeof(ed25519_872_test_vectors_priv_key),
20062 	.nn_random = NULL,
20063 	.hash_type = SHA512,
20064 	.msg = (const char *)ed25519_872_test_vectors_message,
20065 	.msglen = sizeof(ed25519_872_test_vectors_message),
20066 	.sig_type = EDDSA25519,
20067 	.exp_sig = ed25519_872_test_vectors_expected_sig,
20068 	.exp_siglen = sizeof(ed25519_872_test_vectors_expected_sig),
20069 	.adata = NULL,
20070 	.adata_len = 0
20071 };
20072 
20073 /************************************************/
20074 static const u8 ed25519_873_test_vectors_priv_key[] = {
20075 	0xf2, 0x6a, 0xf2, 0x10, 0xe3, 0xb2, 0x01, 0x73, 0x99, 0x0c, 0x77, 0x45, 0x92, 0x2c, 0xdf, 0x94, 0x24, 0x77, 0x3a, 0xbb, 0x37, 0x4d, 0x77, 0x7a, 0x51, 0x2c, 0xf5, 0xb9, 0x7b, 0x3a, 0x00, 0x0d, };
20076 static const u8 ed25519_873_test_vectors_message[] = {
20077 	0x88, 0xe2, 0x6d, 0xa3, 0x5c, 0x54, 0x88, 0x4b, 0x47, 0x14, 0x6f, 0x4e, 0x3f, 0x01, 0x4a, 0xb6, 0x5b, 0x3d, 0x71, 0xaa, 0x7e, 0x3c, 0x33, 0x91, 0xad, 0xbe, 0xb1, 0x9e, 0xf2, 0xe7, 0xb9, 0x30, 0x2e, 0x28, 0x19, 0x91, 0xb2, 0x61, 0xb6, 0xa0, 0x99, 0x2e, 0x2e, 0x89, 0xa4, 0x9f, 0x48, 0x0c, 0xa2, 0xd8, 0xe6, 0x84, 0xb1, 0x2f, 0x9b, 0x15, 0x09, 0xb3, 0x8f, 0x6a, 0x7a, 0x98, 0xa5, 0xdd, 0xb4, 0xc2, 0xd8, 0x69, 0xfd, 0x03, 0x18, 0xe9, 0x8e, 0xcd, 0x8f, 0xd9, 0xdf, 0x49, 0x1b, 0xaf, 0x99, 0xa9, 0x29, 0x4d, 0xe4, 0x9e, 0x1c, 0xf8, 0xdd, 0x41, 0xee, 0x85, 0x73, 0x0a, 0xf0, 0x25, 0xa7, 0x01, 0x14, 0x3e, 0x4f, 0x0c, 0x8e, 0x3d, 0x92, 0xd5, 0x5b, 0x59, 0xca, 0x7d, 0x4a, 0x6c, 0x89, 0xad, 0x76, 0x0d, 0xff, 0xc0, 0xc2, 0x18, 0x92, 0x09, 0x50, 0x8e, 0xf6, 0xc2, 0x21, 0x4e, 0xdf, 0x99, 0x67, 0xb1, 0x7d, 0xef, 0x12, 0x3d, 0x86, 0x92, 0xc9, 0xe4, 0xe2, 0x0b, 0x1e, 0x98, 0x26, 0x88, 0x08, 0x70, 0x4f, 0x5f, 0x9f, 0xe1, 0xa6, 0xd6, 0x05, 0x5e, 0x32, 0xc8, 0x72, 0x56, 0x4b, 0xd1, 0x7e, 0xdb, 0x73, 0x59, 0x57, 0x86, 0x29, 0x01, 0x7f, 0x0c, 0x30, 0xfe, 0xab, 0x8b, 0x50, 0x4e, 0x22, 0x89, 0x23, 0xad, 0xc7, 0xe8, 0x1a, 0xe2, 0x0a, 0x85, 0x2d, 0xb0, 0xad, 0x67, 0x6a, 0x78, 0xe0, 0x81, 0x33, 0x6d, 0x6b, 0x04, 0x02, 0xf9, 0xcd, 0xc5, 0xd5, 0xe9, 0x01, 0x28, 0xca, 0x94, 0x5d, 0x10, 0x51, 0x5c, 0xa0, 0xc5, 0xef, 0x03, 0xf7, 0x31, 0xb1, 0xd4, 0x0a, 0x71, 0x07, 0x41, 0xd4, 0x1c, 0x1d, 0xd1, 0xca, 0x16, 0xb1, 0x06, 0x0f, 0xeb, 0xf2, 0xa0, 0x53, 0x2e, 0x6f, 0x5d, 0x76, 0x51, 0xef, 0x44, 0x63, 0x75, 0xec, 0x18, 0x09, 0x0c, 0xb8, 0x41, 0x8b, 0x82, 0x02, 0xf2, 0x5a, 0x03, 0x89, 0x03, 0x1b, 0x30, 0x7f, 0x22, 0x3c, 0x5b, 0x5f, 0x6a, 0xfe, 0x36, 0xa9, 0xad, 0xc1, 0x06, 0x8f, 0x2c, 0x6e, 0x0e, 0xa5, 0xb2, 0xb6, 0xcf, 0xeb, 0x8d, 0xc0, 0x04, 0xf7, 0xb8, 0x29, 0xc8, 0x04, 0x39, 0x06, 0x9b, 0x81, 0xa7, 0xbd, 0x90, 0x74, 0x77, 0xc6, 0x13, 0x5e, 0xf2, 0x82, 0xb7, 0x71, 0xf1, 0x41, 0xdb, 0xe7, 0x5a, 0x0f, 0xa0, 0x56, 0xe0, 0x6b, 0x8a, 0x1a, 0x1f, 0x98, 0xc2, 0x5f, 0xa5, 0x4d, 0x14, 0xc8, 0xfd, 0xb4, 0x2d, 0x65, 0x02, 0x59, 0x5c, 0x59, 0xd2, 0x5b, 0xac, 0xf1, 0xa1, 0x9a, 0xde, 0xfc, 0xc1, 0x31, 0x70, 0xf7, 0xa4, 0x31, 0x7b, 0x6a, 0xb6, 0x10, 0xb6, 0x09, 0xd4, 0x14, 0xb0, 0x07, 0x3e, 0xa0, 0x4a, 0xc2, 0x9e, 0xb1, 0x0e, 0xe7, 0x3c, 0xd7, 0x1a, 0x4c, 0xa6, 0x04, 0x09, 0xf8, 0xe7, 0x60, 0xe6, 0x0f, 0x93, 0x95, 0x10, 0x10, 0x0d, 0x0c, 0x8c, 0xd7, 0x6f, 0x26, 0x4b, 0xb3, 0x78, 0x11, 0xf9, 0x7a, 0xa5, 0x29, 0x9a, 0xc0, 0xb1, 0x2d, 0x41, 0x68, 0xff, 0x38, 0xec, 0xdf, 0xa8, 0x0b, 0x1e, 0x5c, 0x1b, 0x3b, 0xbd, 0x4d, 0x40, 0xd3, 0x54, 0x47, 0x35, 0xdf, 0x71, 0x67, 0xeb, 0x15, 0x8a, 0x9a, 0x9a, 0x23, 0x4d, 0x44, 0x5f, 0x1d, 0x66, 0x3d, 0xed, 0x71, 0x71, 0xed, 0xc6, 0x8d, 0x17, 0x2c, 0x92, 0x21, 0x4b, 0x82, 0xef, 0x13, 0xfe, 0x6b, 0x8c, 0x43, 0xaa, 0x89, 0xb7, 0x39, 0xb4, 0x99, 0x0a, 0xe9, 0x47, 0xa3, 0x4f, 0x02, 0x0a, 0x8d, 0x89, 0x43, 0xb0, 0xf7, 0xa5, 0xd6, 0x1d, 0xfa, 0x76, 0xad, 0xde, 0x02, 0x72, 0xe9, 0x8c, 0x11, 0x59, 0xc0, 0xfd, 0x8a, 0x1d, 0xe3, 0x3f, 0x2c, 0xef, 0x8e, 0xdd, 0x32, 0x85, 0x7b, 0x21, 0x89, 0xed, 0x96, 0x12, 0x80, 0x57, 0xeb, 0xde, 0xa8, 0x1f, 0x7a, 0x3a, 0x3d, 0xff, 0xe1, 0x89, 0x3b, 0x5b, 0xa8, 0x77, 0x55, 0x6c, 0x90, 0x38, 0x3f, 0xa2, 0xc5, 0xa6, 0xfd, 0x68, 0x0e, 0x8a, 0x67, 0xde, 0xe4, 0x80, 0x2d, 0x90, 0xdf, 0xe9, 0x71, 0x62, 0x3a, 0x7b, 0xe2, 0x2a, 0xb3, 0xca, 0x56, 0x06, 0x7b, 0x1e, 0x5c, 0x69, 0x4a, 0xa8, 0x4c, 0x19, 0xf1, 0x6d, 0x69, 0xe2, 0x84, 0xdd, 0xfa, 0x03, 0x9c, 0x10, 0x8d, 0x04, 0x35, 0x81, 0x38, 0x12, 0x39, 0x0d, 0x8e, 0xbc, 0x1e, 0x50, 0x13, 0x81, 0x76, 0xf2, 0x59, 0xdc, 0x0f, 0x26, 0xbc, 0xa1, 0x3b, 0xc9, 0x43, 0xf5, 0x0d, 0x5a, 0x35, 0x00, 0xb1, 0x8d, 0x59, 0x35, 0x74, 0xc6, 0x20, 0xfc, 0x09, 0x7a, 0xce, 0x43, 0x0f, 0xb8, 0x07, 0x28, 0xd3, 0xa1, 0xaa, 0x64, 0x4e, 0x50, 0x4b, 0x10, 0x09, 0xad, 0x67, 0x53, 0x6c, 0xeb, 0x01, 0x1f, 0x2a, 0x35, 0x7d, 0xbd, 0x00, 0x9e, 0x4a, 0x63, 0xf5, 0x24, 0xd5, 0xb5, 0x95, 0x7f, 0x33, 0x15, 0x67, 0xc5, 0xb4, 0xd1, 0x85, 0xa6, 0x1d, 0xf2, 0x2d, 0x70, 0x71, 0xd3, 0x1a, 0xe9, 0x21, 0x41, 0xe1, 0x99, 0xc1, 0x22, 0x89, 0x51, 0x5a, 0xed, 0x80, 0xc9, 0x10, 0x21, 0x45, 0x6b, 0xcd, 0x45, 0xcc, 0xc6, 0x34, 0x03, 0x7d, 0xcf, 0x69, 0xb4, 0x1d, 0x6b, 0x1f, 0xf5, 0x34, 0x71, 0x01, 0x0d, 0x99, 0xf1, 0x87, 0xf0, 0x46, 0x54, 0xf4, 0x36, 0x22, 0x28, 0x78, 0x71, 0xfe, 0xe6, 0xdc, 0xf5, 0xf3, 0x02, 0x3c, 0xbd, 0x09, 0x13, 0xd9, 0x9a, 0xff, 0x43, 0xfa, 0x95, 0xb3, 0x2e, 0xa2, 0xb1, 0x33, 0xb4, 0xc9, 0xac, 0x4b, 0x01, 0x7b, 0x7c, 0xf8, 0xf9, 0xbe, 0x50, 0x86, 0xfe, 0x92, 0xb4, 0x2c, 0xb8, 0xdb, 0xed, 0x5b, 0x63, 0x0b, 0xf0, 0x97, 0xc1, 0x8e, 0x2e, 0x55, 0xc3, 0xdd, 0x93, 0x27, 0x1e, 0x09, 0xc2, 0xd1, 0xcc, 0x6a, 0xf8, 0x7d, 0x83, 0xfd, 0xef, 0x3c, 0x3e, 0x3c, 0x4c, 0xba, 0xfb, 0xea, 0x9b, 0x60, 0xfd, 0x5e, 0x9c, 0xf0, 0x01, 0x1d, 0xe2, 0xe9, 0xe2, 0x6f, 0xbf, 0x09, 0xaf, 0xee, 0xf5, 0xc6, 0x98, 0x02, 0xa6, 0xc4, 0x6b, 0xdf, 0x54, 0xc1, 0x45, 0x86, 0x29, 0x44, 0x17, 0x3e, 0x01, 0x7e, 0x30, 0x14, 0x9e, 0xa5, 0xc0, 0x3c, 0x7a, 0xef, 0xa2, 0x8a, 0x9c, 0xac, 0x77, 0x67, 0x00, 0x2e, 0xa3, 0xfe, 0xfb, 0xde, 0xae, 0x5b, 0xae, 0x00, 0x5c, 0x37, 0x0d, 0xbc, 0x06, 0x42, 0x44, 0xd5, 0xb9, 0xbe, 0x55, 0x00, 0xa3, 0x57, 0x26, 0xa9, 0x9b, 0xc9, 0xe8, 0xc2, 0x75, 0x2d, 0x51, 0x0e, 0x13, 0x9a, 0xf2, 0x25, 0x58, 0x00, 0x98, 0xc8, 0x18, 0x9a, 0xa9, 0xc5, 0x20, };
20078 static const u8 ed25519_873_test_vectors_expected_sig[] = {
20079 	0xce, 0x45, 0x45, 0x30, 0xb9, 0x22, 0xba, 0x5e, 0xa1, 0x62, 0xf1, 0xa4, 0x52, 0xe0, 0x5c, 0x00, 0x36, 0x3a, 0x49, 0xa9, 0xdb, 0x8a, 0x56, 0x94, 0x97, 0xc0, 0x0c, 0xaf, 0x1c, 0xbe, 0xa9, 0x91, 0x80, 0x77, 0x05, 0x54, 0xed, 0x4e, 0x31, 0x40, 0xdf, 0xca, 0x45, 0x55, 0x15, 0x9e, 0xbf, 0x48, 0xef, 0x5d, 0x2a, 0x50, 0xf3, 0x94, 0xae, 0xbd, 0x78, 0x21, 0x16, 0xed, 0x65, 0x69, 0xa4, 0x09, };
20080 static const ec_test_case ed25519_873_test_case = {
20081 	.name = "EDDSA25519-SHA512/wei25519 873",
20082 	.ec_str_p = &wei25519_str_params,
20083 	.priv_key = ed25519_873_test_vectors_priv_key,
20084 	.priv_key_len = sizeof(ed25519_873_test_vectors_priv_key),
20085 	.nn_random = NULL,
20086 	.hash_type = SHA512,
20087 	.msg = (const char *)ed25519_873_test_vectors_message,
20088 	.msglen = sizeof(ed25519_873_test_vectors_message),
20089 	.sig_type = EDDSA25519,
20090 	.exp_sig = ed25519_873_test_vectors_expected_sig,
20091 	.exp_siglen = sizeof(ed25519_873_test_vectors_expected_sig),
20092 	.adata = NULL,
20093 	.adata_len = 0
20094 };
20095 
20096 /************************************************/
20097 static const u8 ed25519_874_test_vectors_priv_key[] = {
20098 	0x39, 0xbf, 0xfe, 0x00, 0x7f, 0x8d, 0xf7, 0xce, 0x4e, 0x56, 0xfd, 0x17, 0x6b, 0x10, 0x2b, 0x92, 0x3b, 0xa4, 0x8a, 0xeb, 0x82, 0x69, 0xfd, 0x0c, 0xd5, 0x20, 0xc2, 0x3a, 0x7b, 0x23, 0x6e, 0x6c, };
20099 static const u8 ed25519_874_test_vectors_message[] = {
20100 	0x7a, 0x8c, 0x20, 0xbf, 0x2e, 0xff, 0x69, 0xaf, 0x8b, 0xad, 0x6b, 0xdf, 0xab, 0xc7, 0x90, 0x9c, 0x58, 0xce, 0x74, 0x6c, 0xc4, 0xdf, 0x78, 0xb6, 0x9b, 0x33, 0xc1, 0x05, 0xba, 0x3b, 0xd8, 0xda, 0x75, 0x24, 0x47, 0x58, 0xb5, 0x17, 0x2d, 0x5c, 0x45, 0x01, 0xbc, 0x39, 0x97, 0x01, 0x85, 0xee, 0x3d, 0x43, 0x70, 0x83, 0xa9, 0x95, 0x9f, 0x81, 0xe7, 0x66, 0x5b, 0x82, 0x9a, 0x69, 0xa5, 0xd7, 0x2e, 0x03, 0x4d, 0x35, 0x1a, 0xdd, 0xdc, 0xeb, 0x3d, 0x3f, 0xff, 0x58, 0x99, 0x88, 0xdf, 0x18, 0x2b, 0x46, 0xfa, 0x53, 0xd2, 0x6e, 0x7c, 0x9e, 0xac, 0x06, 0x22, 0x15, 0x78, 0x8f, 0x23, 0x37, 0xbf, 0x90, 0xf0, 0x17, 0x7d, 0x8c, 0xa7, 0x44, 0xf9, 0x5f, 0x28, 0xfe, 0xa8, 0x54, 0x59, 0x3c, 0x43, 0x62, 0xc8, 0x2e, 0x9d, 0xed, 0x19, 0xb9, 0x04, 0xff, 0x99, 0xd2, 0xbe, 0xa8, 0x24, 0x32, 0x82, 0x2e, 0x52, 0xc3, 0xda, 0x6d, 0x46, 0x2d, 0xa7, 0x54, 0xff, 0x1f, 0x8b, 0xd1, 0x09, 0x94, 0x2d, 0xf5, 0x1d, 0xba, 0x25, 0xb7, 0xcd, 0xe8, 0x38, 0xd5, 0xf5, 0x24, 0x23, 0x9f, 0x13, 0x31, 0xf4, 0x63, 0x19, 0x4e, 0x10, 0xff, 0x56, 0x79, 0x5b, 0x29, 0x68, 0x78, 0xfe, 0xb1, 0xf5, 0x5d, 0x43, 0xec, 0x7d, 0xaf, 0x0c, 0xa5, 0xab, 0x3d, 0x68, 0x4b, 0x55, 0xbb, 0x0a, 0xa4, 0xc7, 0x20, 0xd4, 0xb5, 0xc2, 0xe8, 0x30, 0xc8, 0x58, 0x69, 0x4d, 0x3d, 0x0f, 0xdb, 0xaa, 0xd0, 0xbf, 0x67, 0xd8, 0x73, 0x18, 0x2d, 0x95, 0xb2, 0x41, 0x2f, 0xce, 0x5e, 0x7b, 0x00, 0xfa, 0x6b, 0xfc, 0x38, 0xb1, 0x32, 0xef, 0xb9, 0x6f, 0x87, 0xbc, 0x6c, 0x10, 0x07, 0x0a, 0x57, 0x16, 0xec, 0x9b, 0x33, 0xa2, 0x69, 0x2c, 0xdf, 0x5b, 0xc4, 0x1c, 0x7f, 0x73, 0x7e, 0x28, 0xc4, 0x22, 0x03, 0x17, 0xa4, 0x89, 0xb7, 0x32, 0x3d, 0x5e, 0x20, 0xf6, 0x5d, 0x37, 0x5d, 0x76, 0x9f, 0x9e, 0x79, 0x37, 0x6f, 0xd0, 0x2d, 0x85, 0x36, 0x86, 0x71, 0xe7, 0xe0, 0x81, 0xeb, 0x75, 0x3f, 0x88, 0x85, 0x45, 0xeb, 0xe5, 0xc0, 0x00, 0xb2, 0xf8, 0x01, 0x43, 0xeb, 0x35, 0x8d, 0x43, 0x18, 0x5e, 0x2f, 0x1c, 0x29, 0x4b, 0x9f, 0x29, 0xc8, 0xbb, 0x91, 0x48, 0x2d, 0x43, 0x87, 0x49, 0x4a, 0xad, 0x17, 0x6d, 0xeb, 0x85, 0x54, 0x0f, 0xd0, 0x05, 0xc9, 0x7d, 0x13, 0xe6, 0x66, 0x3f, 0x09, 0x94, 0x4e, 0xb4, 0x3a, 0x46, 0xe6, 0x23, 0x67, 0x94, 0xbf, 0x6e, 0x21, 0xf8, 0x1d, 0x0a, 0x42, 0x09, 0x0f, 0x9c, 0xce, 0xf9, 0x0a, 0x6c, 0x48, 0x07, 0xb5, 0xff, 0x54, 0x13, 0x00, 0xe5, 0x93, 0x48, 0x81, 0xa8, 0xd9, 0x21, 0x96, 0xb4, 0xce, 0xe8, 0x5d, 0x28, 0x09, 0x2a, 0x82, 0x8e, 0xa3, 0xbf, 0xc6, 0xb7, 0x45, 0xad, 0x21, 0x9b, 0xe9, 0xf5, 0xe9, 0x57, 0x41, 0x17, 0xd0, 0x79, 0xe0, 0x2f, 0x4b, 0x74, 0x8e, 0x2c, 0xc0, 0x1a, 0x32, 0x82, 0x6a, 0x37, 0x08, 0x23, 0x19, 0x14, 0xd2, 0x77, 0x2c, 0x76, 0x41, 0x19, 0xfd, 0x99, 0xd5, 0x3a, 0xb5, 0xb5, 0xa2, 0xe9, 0xd8, 0x91, 0xa4, 0x8a, 0x9a, 0xaa, 0xac, 0xc2, 0x63, 0x38, 0xb1, 0x82, 0x48, 0xdb, 0x8a, 0xb2, 0xd5, 0x25, 0xda, 0xf1, 0x5f, 0xf5, 0x3a, 0xcb, 0xc3, 0xaa, 0x98, 0xd4, 0xf2, 0xd4, 0xa3, 0x37, 0xbb, 0xaf, 0x6d, 0x1b, 0xe2, 0x19, 0x85, 0xa4, 0xaf, 0x60, 0x0e, 0x29, 0xbb, 0xb4, 0x2c, 0x8d, 0x89, 0xe6, 0xb3, 0x89, 0xc6, 0x6f, 0x42, 0x27, 0x0c, 0x3a, 0x0b, 0x05, 0x1b, 0xdb, 0x62, 0x38, 0x81, 0xe0, 0x2f, 0x2f, 0x42, 0x94, 0xce, 0xc3, 0x47, 0x63, 0x86, 0x74, 0x7a, 0xba, 0xe6, 0xc7, 0x70, 0x0b, 0x8f, 0x9b, 0x03, 0x87, 0xcd, 0xdf, 0xb7, 0x36, 0x68, 0xfb, 0x57, 0x69, 0x3d, 0x84, 0x74, 0x19, 0x6b, 0x33, 0xab, 0xd1, 0x2d, 0xce, 0x59, 0xa5, 0x7c, 0xf7, 0x2e, 0xe6, 0xcc, 0x1d, 0xdb, 0xaa, 0xdf, 0xb1, 0x9e, 0x90, 0xaf, 0x81, 0x31, 0xb3, 0xa9, 0x0f, 0x98, 0x67, 0xf4, 0xc7, 0xe1, 0x5b, 0xdf, 0x9e, 0x21, 0x84, 0x77, 0x01, 0x6b, 0xd0, 0xad, 0x3b, 0xe8, 0xdd, 0x05, 0x96, 0x71, 0xff, 0x65, 0x6c, 0xbd, 0x4e, 0xd8, 0x98, 0x08, 0x6d, 0xe4, 0xd4, 0x23, 0xf3, 0xdf, 0xb2, 0x70, 0xbb, 0xf1, 0x9d, 0x9f, 0x53, 0xf7, 0xf6, 0xf2, 0xd2, 0x2c, 0x6a, 0xc9, 0x02, 0x5c, 0xba, 0xdb, 0xa4, 0x42, 0xe3, 0x1d, 0x98, 0x11, 0xe3, 0x7e, 0x84, 0x7d, 0xbd, 0x48, 0x4d, 0x80, 0xcf, 0x74, 0x30, 0x39, 0xff, 0xa7, 0x04, 0x84, 0x70, 0xfb, 0xdc, 0x60, 0x80, 0xf6, 0xd3, 0x81, 0xdc, 0x7e, 0x3f, 0xa2, 0x71, 0x22, 0xdf, 0x53, 0xcc, 0x06, 0x39, 0x4e, 0xa6, 0xfc, 0x44, 0x6e, 0x1b, 0xa7, 0x25, 0x38, 0x73, 0x3e, 0xd3, 0xab, 0xb6, 0x85, 0xf1, 0x6d, 0xfd, 0x5c, 0xcf, 0x58, 0x5a, 0xe8, 0xfb, 0xf9, 0x95, 0x4b, 0x50, 0xf1, 0x0b, 0x7e, 0x54, 0x32, 0xa2, 0x2b, 0x36, 0x94, 0x06, 0xa9, 0xb7, 0x08, 0x89, 0x61, 0xf0, 0xae, 0x20, 0x74, 0x95, 0xae, 0x71, 0x85, 0x39, 0x6d, 0xcc, 0xf2, 0x92, 0xdc, 0x46, 0x3f, 0x41, 0xf3, 0x76, 0xa1, 0xca, 0x89, 0xee, 0xfb, 0xae, 0x19, 0x26, 0x91, 0x52, 0x03, 0x1b, 0xfd, 0x81, 0x52, 0x88, 0xe8, 0xb5, 0xba, 0xf3, 0x48, 0xc4, 0xf8, 0xff, 0x3d, 0xff, 0x4f, 0xd6, 0xd1, 0x08, 0xf8, 0x71, 0xda, 0xa3, 0x52, 0x11, 0x0f, 0xa6, 0x41, 0x88, 0xb0, 0x1b, 0x85, 0x26, 0xa8, 0x45, 0xaa, 0xed, 0x13, 0x3e, 0x45, 0x6b, 0x4c, 0x83, 0xc4, 0xfd, 0x4b, 0xbb, 0x16, 0x5b, 0x40, 0x90, 0x30, 0x7e, 0x8e, 0xb1, 0x7d, 0xf1, 0x76, 0xc3, 0x22, 0x52, 0x0f, 0x37, 0x59, 0x9c, 0x21, 0x05, 0xaa, 0x81, 0x20, 0x75, 0x83, 0x94, 0xa4, 0x22, 0x24, 0x73, 0x47, 0x67, 0x64, 0xcf, 0x0a, 0xf7, 0xc5, 0x51, 0x83, 0xeb, 0xa9, 0x68, 0x3d, 0x72, 0x70, 0x63, 0x14, 0x43, 0xf3, 0xc5, 0x1f, 0xb8, 0xab, 0x0c, 0x13, 0x0a, 0xc4, 0x36, 0xab, 0x60, 0x3f, 0xf4, 0xf1, 0xd8, 0x65, 0x6c, 0xdb, 0xed, 0x22, 0x9a, 0x20, 0x2b, 0x40, 0x00, 0x8e, 0xa1, 0x0b, 0x17, 0x15, 0x42, 0xf7, 0x4a, 0x70, 0xb7, 0xbb, 0xac, 0xc4, 0x01, 0x6b, 0x7f, 0x63, 0x6a, 0xa8, 0x96, 0x33, 0xb7, 0x66, 0x80, 0x58, 0xf1, 0x33, 0x12, 0xf5, 0x7c, 0x51, 0x62, 0xd1, 0x8e, 0x39, 0x9e, };
20101 static const u8 ed25519_874_test_vectors_expected_sig[] = {
20102 	0xa2, 0x7c, 0xca, 0x4b, 0x9f, 0x5b, 0x95, 0xad, 0x0e, 0x44, 0xe4, 0x74, 0x0c, 0x15, 0xde, 0xae, 0xb9, 0x3f, 0x22, 0xa9, 0xb2, 0x54, 0xeb, 0xbd, 0x23, 0x29, 0x36, 0x5a, 0x00, 0x96, 0x6c, 0x9f, 0x4e, 0xc1, 0xe5, 0x5c, 0x58, 0x94, 0xe7, 0xbf, 0xc2, 0x3d, 0x39, 0x8d, 0x39, 0x70, 0xb9, 0x46, 0x5e, 0x98, 0xa8, 0xd2, 0x3e, 0x72, 0xda, 0xe8, 0xe3, 0x50, 0xda, 0x35, 0x31, 0xae, 0x69, 0x08, };
20103 static const ec_test_case ed25519_874_test_case = {
20104 	.name = "EDDSA25519-SHA512/wei25519 874",
20105 	.ec_str_p = &wei25519_str_params,
20106 	.priv_key = ed25519_874_test_vectors_priv_key,
20107 	.priv_key_len = sizeof(ed25519_874_test_vectors_priv_key),
20108 	.nn_random = NULL,
20109 	.hash_type = SHA512,
20110 	.msg = (const char *)ed25519_874_test_vectors_message,
20111 	.msglen = sizeof(ed25519_874_test_vectors_message),
20112 	.sig_type = EDDSA25519,
20113 	.exp_sig = ed25519_874_test_vectors_expected_sig,
20114 	.exp_siglen = sizeof(ed25519_874_test_vectors_expected_sig),
20115 	.adata = NULL,
20116 	.adata_len = 0
20117 };
20118 
20119 /************************************************/
20120 static const u8 ed25519_875_test_vectors_priv_key[] = {
20121 	0x3c, 0x40, 0x80, 0xcd, 0xa0, 0xfc, 0x3c, 0x03, 0xb6, 0x14, 0xd9, 0x80, 0xf2, 0xff, 0x83, 0x1f, 0x5b, 0xe0, 0xe7, 0xa9, 0x81, 0xd5, 0x38, 0x1a, 0x16, 0x18, 0xe0, 0xb8, 0xfd, 0x00, 0x17, 0x76, };
20122 static const u8 ed25519_875_test_vectors_message[] = {
20123 	0x0c, 0xee, 0xbc, 0x0e, 0x8a, 0x47, 0x72, 0x0f, 0x25, 0x83, 0x5e, 0x2b, 0x9a, 0xcf, 0x89, 0x1b, 0xcc, 0xa4, 0xbd, 0xa3, 0x86, 0x37, 0xf3, 0x63, 0x27, 0x44, 0x58, 0xba, 0xa9, 0xe2, 0xbb, 0xaf, 0xed, 0xd0, 0x93, 0x8f, 0x56, 0x88, 0x73, 0x4e, 0x22, 0xac, 0x50, 0xfb, 0x12, 0x0f, 0x66, 0x5f, 0x6c, 0x4c, 0x61, 0xc6, 0x53, 0x17, 0x39, 0xb9, 0x29, 0xac, 0x83, 0xcd, 0x77, 0xf8, 0x96, 0x3b, 0x75, 0x44, 0x88, 0xb9, 0xb8, 0x59, 0xc1, 0x38, 0x53, 0x63, 0x7c, 0xf0, 0x25, 0xc1, 0x4e, 0x8f, 0xdd, 0x11, 0x8f, 0xaa, 0x14, 0xcf, 0x39, 0x30, 0xce, 0xb3, 0x5f, 0x10, 0x4d, 0x95, 0x44, 0x1e, 0x56, 0x48, 0x94, 0x40, 0xf6, 0x20, 0x41, 0xef, 0x1a, 0xa7, 0xc4, 0xb0, 0x8b, 0x28, 0x07, 0xe3, 0x2b, 0xb9, 0x58, 0x4b, 0x90, 0x04, 0xd7, 0x6e, 0x76, 0x53, 0x33, 0x48, 0x50, 0x6d, 0x64, 0xf1, 0x12, 0xe1, 0xff, 0x6f, 0x93, 0x8f, 0x64, 0x22, 0x30, 0xbf, 0x38, 0xaf, 0x01, 0x0e, 0x41, 0x98, 0x72, 0x70, 0x24, 0x8b, 0x13, 0x63, 0x5a, 0x35, 0x67, 0xb3, 0x55, 0xbb, 0xa5, 0xb5, 0x74, 0x48, 0xc6, 0xd1, 0x3b, 0x74, 0xf3, 0xbe, 0xbf, 0x61, 0x79, 0x15, 0x82, 0x10, 0x28, 0xfc, 0xa5, 0xde, 0xfa, 0x4c, 0xe5, 0x42, 0x4c, 0xa1, 0x91, 0xcd, 0x54, 0xa2, 0x29, 0x44, 0xa3, 0xd9, 0x40, 0xe4, 0xee, 0x2e, 0x2b, 0xa5, 0xd5, 0x04, 0xc8, 0x5f, 0x95, 0x9b, 0x51, 0x4c, 0x4f, 0xab, 0x41, 0xcc, 0xb5, 0x74, 0x3d, 0x9c, 0xb2, 0xf9, 0xbf, 0x33, 0xd1, 0xd8, 0xc2, 0xa5, 0x86, 0x9e, 0x9f, 0x46, 0x60, 0xc3, 0xfb, 0x22, 0x4b, 0x39, 0x14, 0x1e, 0x31, 0x10, 0xc9, 0xee, 0x8a, 0xeb, 0x87, 0x1e, 0x14, 0xc6, 0x2c, 0x6b, 0xe3, 0x8f, 0xb9, 0xa4, 0x56, 0x8d, 0x73, 0x68, 0x10, 0xbb, 0x9d, 0x20, 0x73, 0x17, 0x8b, 0x6c, 0x7e, 0x87, 0xe3, 0x58, 0x2e, 0xfc, 0x62, 0xb5, 0x3c, 0x23, 0xc5, 0xd4, 0x65, 0x20, 0xba, 0x33, 0xff, 0xb3, 0xa9, 0xca, 0x64, 0x9e, 0xf2, 0x6f, 0xe7, 0x4a, 0x3c, 0xff, 0x61, 0x88, 0x42, 0x73, 0x26, 0xb8, 0xc9, 0x6f, 0x74, 0x35, 0x4c, 0xb3, 0xec, 0xaa, 0x61, 0x1b, 0x12, 0xcd, 0xed, 0x56, 0x5e, 0x59, 0xfe, 0x1f, 0x8f, 0x40, 0x00, 0x97, 0xe9, 0x3e, 0xa8, 0x59, 0x51, 0xb5, 0xb4, 0xe9, 0x00, 0x9e, 0xea, 0x7d, 0xb9, 0x37, 0xe4, 0x34, 0x9c, 0x4e, 0x5e, 0x00, 0xc4, 0x45, 0x6c, 0x6c, 0x5f, 0x4e, 0x57, 0x41, 0x1b, 0xaf, 0x4e, 0x46, 0xe7, 0x00, 0xac, 0x40, 0x02, 0x57, 0x76, 0x5f, 0x48, 0xda, 0xb0, 0x3e, 0x43, 0x9f, 0x76, 0xc1, 0x49, 0x9b, 0x51, 0x08, 0x04, 0x7c, 0x83, 0x01, 0x09, 0xdc, 0xe7, 0xf7, 0x40, 0xd1, 0x39, 0x37, 0x87, 0xe2, 0x9d, 0x37, 0x16, 0xd3, 0xc4, 0x7e, 0x75, 0x5c, 0xb8, 0x28, 0xe7, 0xd4, 0x40, 0xa9, 0x71, 0x97, 0x51, 0x97, 0xeb, 0xdb, 0x3f, 0x9b, 0x73, 0x7b, 0xa1, 0x1f, 0x7f, 0xd0, 0x38, 0x6a, 0x95, 0x92, 0x49, 0x01, 0x7d, 0xe7, 0x23, 0x4d, 0x5e, 0x5a, 0x9b, 0x47, 0x3b, 0xb9, 0x58, 0x3a, 0x37, 0x42, 0xc7, 0x74, 0xee, 0x55, 0x2a, 0x12, 0xa1, 0xf3, 0x6e, 0xb3, 0xf2, 0x6c, 0x88, 0x5b, 0xed, 0x22, 0xe9, 0x1c, 0x74, 0xcf, 0x32, 0xa8, 0xdd, 0x3e, 0xdb, 0x08, 0xb6, 0x74, 0xbf, 0x38, 0x6e, 0xf4, 0x27, 0x72, 0x79, 0x12, 0xd5, 0x7c, 0x5f, 0xaf, 0xaa, 0x1c, 0xfe, 0xb7, 0x40, 0xcd, 0x52, 0xb9, 0xde, 0xe9, 0x95, 0xe3, 0xd0, 0x16, 0x1c, 0xd9, 0x21, 0x3f, 0x38, 0xfd, 0x68, 0x1d, 0x53, 0x8a, 0xb8, 0xbf, 0x97, 0xb7, 0x45, 0xf5, 0x49, 0x80, 0x03, 0x0e, 0xf8, 0xb7, 0x26, 0x96, 0xd4, 0xe2, 0x74, 0x73, 0xfb, 0x0f, 0x1a, 0xcd, 0x5d, 0x0a, 0xae, 0x02, 0x97, 0x21, 0x16, 0x80, 0xea, 0x0f, 0xc5, 0x9d, 0x7b, 0x6d, 0x51, 0xc6, 0x32, 0x92, 0x58, 0x5a, 0x1d, 0x55, 0x3d, 0x0c, 0x89, 0x54, 0xb4, 0x2a, 0x4b, 0xd6, 0xfc, 0xd3, 0xa4, 0x95, 0x75, 0xbf, 0x5c, 0x88, 0x95, 0x3f, 0x1f, 0x4e, 0xa7, 0xfe, 0x0e, 0xd7, 0xa5, 0x79, 0xd1, 0x69, 0x7e, 0x64, 0x5e, 0x2a, 0x61, 0xc6, 0x9d, 0x1a, 0x56, 0xbc, 0x60, 0x5b, 0xb0, 0x40, 0x60, 0xa2, 0x77, 0x8d, 0x50, 0x9a, 0x8a, 0xad, 0xbf, 0x35, 0xd9, 0x46, 0x97, 0xcc, 0xee, 0x9d, 0x35, 0x43, 0xdd, 0x01, 0x28, 0x1a, 0x03, 0x1f, 0x2a, 0x0e, 0xb3, 0xa9, 0xeb, 0x13, 0xae, 0x56, 0xff, 0x44, 0xfa, 0x0a, 0xed, 0x4f, 0x34, 0x88, 0x74, 0x7d, 0x6a, 0xf8, 0x20, 0xf3, 0x98, 0x9b, 0x71, 0x33, 0xf4, 0x49, 0xea, 0x56, 0xd3, 0xa7, 0xf7, 0x31, 0xe7, 0x91, 0xb7, 0xed, 0x2a, 0x5d, 0xb9, 0x39, 0xbb, 0x75, 0x35, 0x2d, 0xe7, 0xda, 0xec, 0x50, 0x66, 0xfd, 0x57, 0x55, 0x71, 0x65, 0xad, 0xff, 0xa6, 0x31, 0xcd, 0x3f, 0x96, 0x7c, 0x3c, 0x7c, 0xfc, 0x11, 0xcc, 0x1f, 0x14, 0xfa, 0x23, 0xde, 0xfe, 0xc3, 0xeb, 0x02, 0x39, 0xb4, 0x5e, 0xd6, 0x01, 0xa3, 0xa8, 0x07, 0x8c, 0xcf, 0xc7, 0xf8, 0x38, 0x09, 0x02, 0xa8, 0x59, 0xee, 0x9c, 0xe2, 0xdb, 0x79, 0x5e, 0xfa, 0xca, 0x0a, 0x01, 0xdc, 0x08, 0x79, 0xd5, 0x06, 0xac, 0x97, 0xd1, 0x07, 0x04, 0xd7, 0x75, 0x7b, 0x3c, 0xcf, 0x3b, 0x37, 0xc3, 0x39, 0xb4, 0x2d, 0xb2, 0x37, 0x82, 0x27, 0x80, 0x23, 0xe4, 0xc2, 0xe7, 0x7d, 0x74, 0x24, 0x6c, 0x9e, 0x54, 0x41, 0x49, 0xa5, 0x5c, 0x0c, 0x92, 0x0e, 0xbf, 0x29, 0x86, 0xb4, 0xc5, 0xb4, 0xb3, 0x57, 0x2f, 0x74, 0x8c, 0x4b, 0x15, 0xc7, 0xf8, 0x63, 0x99, 0x9b, 0xc5, 0x13, 0x2a, 0xda, 0xd0, 0x97, 0x61, 0xeb, 0x76, 0x50, 0x50, 0x19, 0x76, 0x9f, 0xb5, 0x54, 0x22, 0xf6, 0x03, 0x18, 0x4e, 0x24, 0xc0, 0xd4, 0xf3, 0x76, 0x19, 0x87, 0xb5, 0xc5, 0x0f, 0xea, 0xfc, 0xce, 0x53, 0x30, 0x2a, 0x3a, 0x41, 0x5e, 0x20, 0xf5, 0x6a, 0x05, 0x48, 0x03, 0xe5, 0x53, 0xba, 0xcd, 0x24, 0x2a, 0x5e, 0x13, 0x64, 0xaa, 0x3b, 0x2d, 0x7c, 0xb3, 0xbc, 0x1e, 0x1b, 0x86, 0xa4, 0x74, 0x31, 0xcb, 0xd3, 0x96, 0x95, 0xb6, 0x7f, 0x55, 0x4c, 0x46, 0x45, 0xb7, 0x23, 0x69, 0x04, 0x09, 0x4c, 0x11, 0xaa, 0x1b, 0x40, 0x32, 0x6b, 0xa9, 0x1b, 0x8b, 0xf4, 0x87, 0x3e, 0x9a, 0x4d, 0xe0, 0x4e, 0x2b, 0xf4, 0x62, 0x59, 0x72, };
20124 static const u8 ed25519_875_test_vectors_expected_sig[] = {
20125 	0xc9, 0xd4, 0xa4, 0x72, 0x8b, 0x8f, 0xdd, 0x24, 0x0d, 0x9c, 0x49, 0x8a, 0xa3, 0x5d, 0xe9, 0x5a, 0x4b, 0xbd, 0x51, 0x78, 0x5b, 0x73, 0xc8, 0x40, 0x3f, 0xdf, 0x04, 0x0d, 0xfa, 0xed, 0x94, 0x47, 0xef, 0xad, 0x00, 0x69, 0xb6, 0x7c, 0x78, 0x3d, 0x4b, 0x81, 0xd9, 0x66, 0xbe, 0xf6, 0xe3, 0xd9, 0xa8, 0x08, 0xa0, 0x58, 0x4b, 0x98, 0xec, 0x2b, 0x18, 0x32, 0x2c, 0x4c, 0x92, 0x0e, 0xb0, 0x0a, };
20126 static const ec_test_case ed25519_875_test_case = {
20127 	.name = "EDDSA25519-SHA512/wei25519 875",
20128 	.ec_str_p = &wei25519_str_params,
20129 	.priv_key = ed25519_875_test_vectors_priv_key,
20130 	.priv_key_len = sizeof(ed25519_875_test_vectors_priv_key),
20131 	.nn_random = NULL,
20132 	.hash_type = SHA512,
20133 	.msg = (const char *)ed25519_875_test_vectors_message,
20134 	.msglen = sizeof(ed25519_875_test_vectors_message),
20135 	.sig_type = EDDSA25519,
20136 	.exp_sig = ed25519_875_test_vectors_expected_sig,
20137 	.exp_siglen = sizeof(ed25519_875_test_vectors_expected_sig),
20138 	.adata = NULL,
20139 	.adata_len = 0
20140 };
20141 
20142 /************************************************/
20143 static const u8 ed25519_876_test_vectors_priv_key[] = {
20144 	0x45, 0x43, 0x8f, 0x91, 0x46, 0x5d, 0x74, 0xa2, 0x82, 0x5b, 0x0f, 0x66, 0xa3, 0x5b, 0xd7, 0xc8, 0xd0, 0x05, 0x86, 0x54, 0x79, 0xb3, 0xdc, 0x10, 0xa9, 0xb5, 0x6f, 0x29, 0x7d, 0x31, 0xb9, 0x26, };
20145 static const u8 ed25519_876_test_vectors_message[] = {
20146 	0x30, 0x71, 0xd4, 0xb7, 0x20, 0xdf, 0x10, 0x93, 0x65, 0x99, 0x67, 0xcd, 0x4e, 0xef, 0xef, 0x2e, 0xf9, 0x67, 0x84, 0x75, 0xf7, 0xde, 0xc5, 0x8f, 0xec, 0xec, 0x1d, 0x92, 0x8d, 0xea, 0xf8, 0x02, 0x45, 0x7a, 0x19, 0x34, 0xe6, 0x04, 0x55, 0xf4, 0x96, 0xcf, 0x42, 0x51, 0x82, 0x0e, 0xd6, 0x0a, 0x3d, 0x81, 0x33, 0xb6, 0x24, 0xd3, 0x3a, 0xf2, 0x6a, 0x26, 0x27, 0x84, 0xb5, 0xa2, 0xfb, 0xa7, 0x3c, 0xca, 0x2a, 0xa5, 0xe5, 0x19, 0xe1, 0xf5, 0x39, 0x58, 0x47, 0x80, 0x64, 0x98, 0x64, 0xba, 0x5f, 0xbc, 0x1f, 0x01, 0x1d, 0xdd, 0xac, 0x38, 0x1f, 0x8d, 0x48, 0xd0, 0xd6, 0x0c, 0xe8, 0x23, 0x17, 0x01, 0x17, 0x3c, 0x9d, 0x2a, 0x30, 0x7a, 0x76, 0x30, 0x2e, 0xbc, 0x69, 0xdc, 0xbc, 0x93, 0x0d, 0x28, 0x43, 0x14, 0x75, 0xb5, 0x16, 0xf9, 0x8f, 0x77, 0x8e, 0xd2, 0xe1, 0xff, 0xf2, 0x72, 0x90, 0x9a, 0x27, 0x2c, 0xc3, 0xfb, 0xb6, 0xb3, 0x1c, 0x80, 0x41, 0xa3, 0x7c, 0xb7, 0x77, 0xe0, 0x62, 0xe4, 0x96, 0x49, 0xaf, 0xad, 0x12, 0xc1, 0xb5, 0xf7, 0xfc, 0xb8, 0x06, 0x5a, 0x99, 0xe7, 0x42, 0x33, 0x62, 0xad, 0x16, 0x90, 0x60, 0x31, 0x26, 0x5d, 0xb7, 0xe8, 0xb8, 0x97, 0x51, 0xf8, 0xa4, 0xa4, 0x07, 0xf2, 0x50, 0x26, 0x50, 0xfe, 0xd7, 0x53, 0xe4, 0x2c, 0x8c, 0x91, 0x1e, 0x50, 0xb9, 0x4b, 0x38, 0x00, 0x69, 0x5b, 0x0e, 0xba, 0x7d, 0xff, 0x06, 0xb7, 0xa7, 0x10, 0x11, 0x7e, 0x49, 0x20, 0xd4, 0xb1, 0xc6, 0x05, 0xa3, 0xeb, 0xf3, 0x2e, 0x06, 0x96, 0x67, 0x16, 0xed, 0xa1, 0x4b, 0x30, 0x42, 0x99, 0x8a, 0x3c, 0x7a, 0x5e, 0x9f, 0x83, 0x54, 0x2d, 0x7d, 0xde, 0x65, 0xe5, 0x28, 0xbe, 0xd6, 0x10, 0x1d, 0xeb, 0x33, 0x1d, 0xeb, 0x94, 0xcd, 0xd4, 0x60, 0x44, 0xbe, 0xf8, 0x8c, 0x09, 0x7b, 0xaf, 0xd4, 0x0d, 0x69, 0x21, 0xa7, 0xc4, 0x84, 0xc8, 0xf9, 0x66, 0x84, 0xdc, 0x37, 0x16, 0x71, 0xd9, 0x4e, 0xee, 0x7c, 0xbe, 0x5d, 0x58, 0x77, 0x15, 0x31, 0x4c, 0xff, 0x0d, 0x18, 0x77, 0x27, 0x2d, 0x81, 0x90, 0xa9, 0x0e, 0x18, 0xbf, 0xb3, 0x21, 0xd5, 0x2b, 0xf7, 0x47, 0x05, 0x13, 0x7b, 0x2a, 0xbf, 0x91, 0x65, 0x73, 0x17, 0x67, 0xa1, 0x3a, 0xdc, 0x9c, 0x85, 0xe0, 0x39, 0x7b, 0x47, 0xae, 0xf9, 0x6b, 0xad, 0xb2, 0xca, 0x7f, 0xcb, 0x82, 0x93, 0xb0, 0x1f, 0xd1, 0xde, 0x31, 0x6e, 0xe1, 0xe6, 0x5f, 0x35, 0x6b, 0x9d, 0x6e, 0x8e, 0xa1, 0xfd, 0xd8, 0x37, 0xbd, 0x96, 0x08, 0x11, 0x49, 0xea, 0x2d, 0xcd, 0x73, 0xc4, 0x88, 0x1f, 0x32, 0xb7, 0xde, 0xeb, 0xc3, 0x71, 0x5e, 0x2d, 0x7c, 0xdb, 0x64, 0x3e, 0x0d, 0x98, 0xf4, 0xe8, 0x46, 0x50, 0x8b, 0x04, 0xb3, 0x24, 0x39, 0xff, 0x14, 0xb1, 0x16, 0x4f, 0x46, 0x84, 0x6d, 0xf9, 0xaf, 0xae, 0x44, 0x46, 0x4c, 0xf5, 0x50, 0x10, 0x4c, 0xd3, 0xaa, 0xb3, 0x81, 0x75, 0x40, 0x47, 0x0a, 0xaa, 0x2a, 0xb9, 0x55, 0x9a, 0x68, 0xb7, 0xff, 0x6b, 0x1b, 0x9c, 0x0c, 0xe9, 0xf5, 0x86, 0x9c, 0xbd, 0xcd, 0xd6, 0x17, 0x09, 0x09, 0x42, 0xe3, 0x53, 0xb4, 0xc7, 0x7f, 0x09, 0x39, 0x58, 0x96, 0xbe, 0xcd, 0xdf, 0xf1, 0xab, 0x7f, 0x07, 0x58, 0x6a, 0x51, 0x4d, 0x81, 0xfb, 0x09, 0x63, 0x61, 0x55, 0x75, 0x66, 0x87, 0x0f, 0x16, 0x91, 0x98, 0x34, 0x85, 0xa8, 0x0c, 0x34, 0x13, 0xda, 0x98, 0xb8, 0xd1, 0x9c, 0x78, 0xe6, 0x37, 0x9f, 0x94, 0x3e, 0x5b, 0xd5, 0xa5, 0x69, 0x7a, 0xa3, 0x3c, 0x5e, 0x6b, 0xfc, 0xfb, 0x7b, 0x8d, 0xf1, 0xe1, 0x57, 0x4e, 0xe4, 0x16, 0xfa, 0xb3, 0xc8, 0xa7, 0xd0, 0x88, 0xb3, 0xa0, 0x57, 0xcf, 0x86, 0x53, 0x21, 0xb7, 0x4e, 0x61, 0x03, 0x52, 0x6d, 0xd9, 0xad, 0x15, 0xca, 0x5a, 0xd3, 0xc0, 0xf6, 0x97, 0x18, 0xe2, 0x70, 0x81, 0xd4, 0xb3, 0x4a, 0x7c, 0x6d, 0x1a, 0xab, 0x6b, 0x96, 0xc0, 0xa7, 0x54, 0xb9, 0x89, 0xb4, 0x94, 0x06, 0x38, 0xc9, 0xed, 0xe3, 0xd1, 0x7b, 0xd4, 0x9f, 0x65, 0xbf, 0x78, 0x3d, 0xc8, 0x5f, 0x1c, 0x4b, 0x14, 0x48, 0x76, 0xcd, 0xbd, 0xb2, 0x28, 0x2a, 0x95, 0x64, 0xaa, 0x81, 0xb5, 0x70, 0x92, 0x08, 0x0d, 0x64, 0x48, 0xfb, 0x65, 0x80, 0xec, 0xf0, 0x9f, 0x82, 0xa7, 0x55, 0x01, 0x0d, 0x55, 0xd4, 0xa5, 0xe4, 0xf3, 0x05, 0xe2, 0x59, 0xdb, 0xe9, 0x95, 0x08, 0xb4, 0x79, 0x25, 0x0d, 0x80, 0xec, 0x17, 0xc8, 0x76, 0x0a, 0x93, 0xe0, 0x5a, 0x29, 0x57, 0x1f, 0x68, 0x56, 0x07, 0x30, 0x22, 0xc8, 0x70, 0x69, 0x13, 0xc4, 0x6a, 0x2e, 0xfd, 0x2e, 0x9c, 0xaa, 0xe4, 0xff, 0xa1, 0xb4, 0x22, 0x2e, 0x3d, 0x70, 0xe9, 0x79, 0xe8, 0x1a, 0x71, 0x95, 0x1d, 0x7c, 0xb8, 0x30, 0xbc, 0xbc, 0xf9, 0x01, 0xaf, 0x24, 0x4f, 0x64, 0xe4, 0xad, 0x9f, 0x52, 0xfa, 0x3b, 0x62, 0x03, 0x1e, 0x35, 0x16, 0xda, 0x50, 0xbc, 0x2b, 0xce, 0x78, 0xeb, 0x9d, 0x61, 0xbf, 0xed, 0xd9, 0xb3, 0xf5, 0x7e, 0x89, 0x35, 0x5f, 0x17, 0x7d, 0xb6, 0x16, 0x2b, 0xf6, 0x1d, 0xa0, 0xe4, 0x54, 0xc3, 0x42, 0x88, 0xb9, 0x67, 0xc3, 0xfb, 0x4c, 0x34, 0x1b, 0x32, 0xd4, 0xd1, 0x3a, 0x31, 0x98, 0x69, 0xb8, 0xe3, 0x60, 0x46, 0xf9, 0xe3, 0x38, 0xb5, 0xf3, 0x6a, 0x1f, 0xc1, 0xa7, 0xed, 0xa7, 0xd7, 0xb0, 0xd4, 0x38, 0xe0, 0xa7, 0x5d, 0x84, 0xbb, 0xe4, 0xd6, 0x8c, 0x87, 0x9a, 0xda, 0x80, 0xdd, 0xe2, 0x3f, 0x71, 0x55, 0xb5, 0x32, 0xcc, 0xcf, 0x7a, 0x63, 0xf1, 0xbe, 0xdf, 0x84, 0xf8, 0x2f, 0x44, 0x0c, 0x9e, 0xc3, 0xcb, 0x0e, 0x45, 0xf3, 0x2c, 0x92, 0xf7, 0x64, 0x38, 0xf5, 0xb4, 0xb9, 0x10, 0x44, 0x1e, 0x67, 0x38, 0xaf, 0x3f, 0x5d, 0x20, 0x50, 0xd5, 0x79, 0xee, 0x96, 0xb8, 0x8f, 0x3b, 0x00, 0x81, 0x0a, 0xb1, 0x26, 0xff, 0x3a, 0x8f, 0xef, 0xd9, 0x71, 0x04, 0x43, 0x24, 0xdd, 0x4e, 0xb3, 0x44, 0x7d, 0xac, 0x5b, 0x77, 0x80, 0x9c, 0xda, 0x8c, 0x71, 0x68, 0x25, 0x49, 0xd7, 0xcf, 0x2d, 0xce, 0xe3, 0x40, 0xed, 0xcf, 0x94, 0x94, 0xac, 0xa4, 0x29, 0x01, 0xe2, 0xc1, 0x1e, 0xd9, 0x77, 0x90, 0xaf, 0x48, 0xbc, 0xea, 0x29, 0x52, 0x1e, 0xf0, 0xe3, 0xd0, 0x3c, 0xda, 0xde, 0xcd, 0xc8, 0x94, 0xdd, 0x07, 0x56, };
20147 static const u8 ed25519_876_test_vectors_expected_sig[] = {
20148 	0xd9, 0x28, 0x7b, 0x7f, 0xec, 0x01, 0x7f, 0x2e, 0xa4, 0x0a, 0x14, 0xa1, 0xf6, 0x2d, 0xca, 0x78, 0xb0, 0x2a, 0x3d, 0x66, 0x32, 0xdf, 0x7c, 0x60, 0xeb, 0xd9, 0x0f, 0xc5, 0xe4, 0x92, 0xc5, 0xc6, 0x2c, 0x43, 0x16, 0x6b, 0xf8, 0x56, 0x58, 0xfb, 0x30, 0xa0, 0x8b, 0x57, 0xa5, 0x81, 0x31, 0x21, 0xb8, 0x03, 0x97, 0x57, 0x1a, 0x31, 0x2b, 0x6d, 0xd1, 0x1b, 0x65, 0x39, 0x20, 0x54, 0x16, 0x02, };
20149 static const ec_test_case ed25519_876_test_case = {
20150 	.name = "EDDSA25519-SHA512/wei25519 876",
20151 	.ec_str_p = &wei25519_str_params,
20152 	.priv_key = ed25519_876_test_vectors_priv_key,
20153 	.priv_key_len = sizeof(ed25519_876_test_vectors_priv_key),
20154 	.nn_random = NULL,
20155 	.hash_type = SHA512,
20156 	.msg = (const char *)ed25519_876_test_vectors_message,
20157 	.msglen = sizeof(ed25519_876_test_vectors_message),
20158 	.sig_type = EDDSA25519,
20159 	.exp_sig = ed25519_876_test_vectors_expected_sig,
20160 	.exp_siglen = sizeof(ed25519_876_test_vectors_expected_sig),
20161 	.adata = NULL,
20162 	.adata_len = 0
20163 };
20164 
20165 /************************************************/
20166 static const u8 ed25519_877_test_vectors_priv_key[] = {
20167 	0x72, 0xcf, 0xce, 0xf4, 0xc9, 0xd6, 0xa1, 0x98, 0x6d, 0x19, 0x03, 0x11, 0x84, 0x0e, 0x55, 0xcb, 0xaf, 0xac, 0xc8, 0xa6, 0xeb, 0x5e, 0xcc, 0x72, 0x93, 0x4f, 0xda, 0x53, 0x5b, 0xdc, 0xff, 0xb2, };
20168 static const u8 ed25519_877_test_vectors_message[] = {
20169 	0x66, 0xa6, 0xcb, 0xe8, 0x8a, 0x8a, 0xb9, 0xa3, 0x38, 0x47, 0x79, 0x7f, 0xc4, 0x80, 0xb2, 0x44, 0xe8, 0xa2, 0xb8, 0xec, 0x79, 0xe8, 0x0b, 0xc2, 0x63, 0x77, 0x53, 0xde, 0xb3, 0x6f, 0xa3, 0x01, 0x4f, 0x84, 0x3e, 0x22, 0xa4, 0x7d, 0xb0, 0xa3, 0x17, 0x78, 0x38, 0x5e, 0xc1, 0xf4, 0x55, 0x67, 0x2e, 0x0d, 0xff, 0x6c, 0xa2, 0x1c, 0xa4, 0xcf, 0xd2, 0xb9, 0x89, 0x47, 0x1b, 0x7f, 0xfc, 0x30, 0x78, 0x28, 0x13, 0x8b, 0x0a, 0xd4, 0xe6, 0x47, 0xc2, 0xd1, 0x3c, 0xef, 0x72, 0x44, 0x69, 0x05, 0x4a, 0xbd, 0x37, 0x40, 0x24, 0x5a, 0xea, 0x4b, 0x78, 0x9e, 0x24, 0x4e, 0x95, 0xcf, 0x9e, 0xcf, 0xd0, 0x8a, 0x0d, 0x13, 0xc7, 0xce, 0xd3, 0x93, 0x33, 0x27, 0x27, 0xa7, 0xf3, 0xd8, 0xfb, 0xda, 0xbd, 0x93, 0x9d, 0xe2, 0x8c, 0xaa, 0x41, 0xcc, 0x96, 0xc7, 0x08, 0x11, 0x98, 0xe2, 0x26, 0x53, 0xd9, 0x4e, 0x02, 0x4a, 0x61, 0xf5, 0xf3, 0xdc, 0x5a, 0xa3, 0x7f, 0xa9, 0xad, 0xdd, 0xc9, 0x6c, 0xf1, 0x69, 0xd3, 0x50, 0x62, 0xa0, 0xa2, 0x9b, 0xa4, 0x5a, 0x53, 0x9c, 0x87, 0xa6, 0x8a, 0x3a, 0x03, 0x04, 0x36, 0x13, 0x09, 0xd2, 0x13, 0xe6, 0x14, 0xee, 0x83, 0x73, 0xda, 0xfb, 0xa2, 0xa7, 0xd6, 0xed, 0x7d, 0x2a, 0xd3, 0x77, 0x04, 0xc0, 0x94, 0x6e, 0x4d, 0x09, 0x3e, 0x2d, 0x94, 0xd0, 0x61, 0x36, 0x4c, 0xc1, 0x23, 0x10, 0x63, 0x72, 0x91, 0x03, 0xa7, 0x7c, 0xcb, 0x50, 0x18, 0x91, 0xbb, 0xc3, 0x18, 0x54, 0x57, 0xbb, 0xd2, 0x86, 0x9e, 0xb6, 0x3d, 0xc6, 0x0f, 0x19, 0x6f, 0x10, 0xa3, 0x8b, 0x7b, 0x36, 0xcb, 0x3f, 0x64, 0x3d, 0x35, 0xdd, 0xbf, 0x43, 0x8a, 0x44, 0xbf, 0x0c, 0x8f, 0x57, 0x0f, 0xad, 0x41, 0xbd, 0xde, 0x26, 0x7f, 0x0f, 0xfc, 0xf1, 0xf2, 0xf9, 0x27, 0xd6, 0x26, 0xd1, 0xb0, 0xd9, 0x80, 0xa0, 0xce, 0x22, 0x3f, 0x2f, 0x00, 0x54, 0x84, 0x5a, 0xfe, 0x41, 0xd3, 0x9d, 0xe5, 0xa4, 0x57, 0x21, 0x9f, 0x27, 0x6c, 0x67, 0xe6, 0x9b, 0xe2, 0xd5, 0xc9, 0xe0, 0x70, 0x13, 0x16, 0x39, 0x56, 0x1c, 0x26, 0x75, 0x1f, 0xb0, 0x64, 0x35, 0xe0, 0xe4, 0x2e, 0x25, 0x08, 0xc5, 0xf4, 0x9c, 0xd1, 0x2b, 0x51, 0x7c, 0x98, 0x33, 0xff, 0x97, 0xf5, 0xe5, 0x1e, 0x1d, 0xce, 0xaf, 0xa9, 0x42, 0x6d, 0x3d, 0xc5, 0x2f, 0xd1, 0x37, 0x9c, 0x64, 0xcc, 0xaa, 0xbb, 0x26, 0xdb, 0x1a, 0xf6, 0xde, 0xd7, 0x15, 0x36, 0x28, 0x84, 0x2f, 0x0c, 0xbd, 0xbb, 0xbd, 0x6a, 0xa0, 0xcf, 0xa5, 0x40, 0x7f, 0x40, 0x94, 0x96, 0xc0, 0x65, 0x32, 0xdb, 0xea, 0xc9, 0x4d, 0xab, 0x9b, 0xab, 0xa0, 0xb3, 0xc9, 0x88, 0xfa, 0x03, 0xd3, 0x6f, 0x91, 0x1d, 0x80, 0xe4, 0x9b, 0x37, 0x0b, 0x68, 0x37, 0x03, 0x7f, 0xf2, 0x49, 0xe7, 0x6d, 0x69, 0x2c, 0xd1, 0x77, 0x37, 0xe0, 0xd0, 0x79, 0x65, 0xd3, 0x3f, 0x17, 0x04, 0x2b, 0xbc, 0xd1, 0xe9, 0x90, 0xe0, 0x40, 0xf7, 0x19, 0x36, 0xf6, 0xfc, 0xa2, 0x54, 0x2a, 0xe3, 0x37, 0x48, 0x36, 0x77, 0x87, 0xc0, 0x1b, 0xde, 0xa7, 0x5c, 0x9a, 0x0e, 0x66, 0x15, 0x02, 0x81, 0xc4, 0x68, 0xfe, 0x5c, 0x73, 0xaf, 0x9e, 0x5b, 0xec, 0x37, 0x2d, 0x50, 0x20, 0xc3, 0xd3, 0x7f, 0xa1, 0x03, 0x5a, 0x67, 0xe2, 0x24, 0xd0, 0x95, 0xf0, 0x66, 0xa5, 0x1f, 0xe1, 0xf6, 0x81, 0xc3, 0x07, 0x39, 0x39, 0x27, 0x2f, 0x6a, 0xf7, 0x75, 0x0e, 0xd8, 0xd1, 0x83, 0x49, 0x17, 0x8a, 0xb4, 0xa2, 0xee, 0xb4, 0xe9, 0xca, 0x82, 0xbb, 0x67, 0x29, 0x6e, 0x98, 0x90, 0xf3, 0x16, 0xc9, 0xd9, 0x49, 0x59, 0x53, 0xd6, 0x84, 0x36, 0xeb, 0x1c, 0x1a, 0x2f, 0xb6, 0xa1, 0xcc, 0xa4, 0x5a, 0x8e, 0x88, 0xa0, 0x9b, 0xdd, 0x65, 0xa5, 0x55, 0x80, 0x25, 0x61, 0x8b, 0x36, 0xd7, 0xf3, 0xcb, 0x38, 0x9d, 0x2e, 0x2a, 0xb1, 0xed, 0x23, 0x32, 0x28, 0xec, 0x92, 0xa3, 0x27, 0x97, 0x8c, 0x0a, 0xdc, 0xed, 0xdb, 0x6c, 0x96, 0x32, 0xd3, 0xab, 0xd7, 0x97, 0x16, 0x21, 0x71, 0x37, 0x54, 0x75, 0x8e, 0x21, 0x01, 0x3a, 0x0c, 0x3d, 0x00, 0x9b, 0x6e, 0x31, 0x93, 0xcc, 0x15, 0x2c, 0x57, 0xef, 0x73, 0x10, 0x7b, 0xd4, 0x35, 0x7d, 0x52, 0x8b, 0xe4, 0x08, 0x73, 0x02, 0x7b, 0xf1, 0x84, 0x0f, 0x68, 0x55, 0x36, 0x08, 0x0f, 0x12, 0xc5, 0xff, 0xa9, 0x3c, 0xa6, 0x29, 0x73, 0x67, 0x80, 0xe0, 0x15, 0xe8, 0x6d, 0x19, 0x09, 0xf0, 0xd8, 0xf3, 0x72, 0x01, 0x0c, 0x9c, 0xb7, 0x2c, 0x09, 0x89, 0x84, 0x5f, 0xc8, 0x83, 0x15, 0xe6, 0xb9, 0x37, 0x0d, 0xc9, 0x2d, 0x36, 0x83, 0xef, 0x44, 0xd3, 0xf7, 0x5f, 0xc9, 0x6c, 0x4b, 0x0e, 0x89, 0xe1, 0x3d, 0x68, 0x2d, 0x19, 0x88, 0xb6, 0x85, 0x71, 0x3e, 0xad, 0xa8, 0x42, 0xbe, 0x9d, 0x2b, 0xbe, 0x2a, 0x76, 0xbb, 0xa1, 0x5d, 0x38, 0xcb, 0xaf, 0xb6, 0x5c, 0x40, 0xc2, 0x15, 0x9b, 0x0c, 0xee, 0xb0, 0xd7, 0x69, 0xb9, 0xbe, 0x35, 0x55, 0x40, 0x73, 0x4f, 0xf3, 0x77, 0x36, 0xc0, 0xf0, 0xfa, 0xcb, 0x95, 0x15, 0x93, 0x09, 0x36, 0x5b, 0x96, 0x46, 0xbc, 0x4b, 0x34, 0x4f, 0xb1, 0x9a, 0x5c, 0x16, 0x39, 0xa8, 0x8e, 0x87, 0x31, 0x7b, 0xfb, 0x3b, 0x5e, 0x7b, 0x51, 0x30, 0xfa, 0x7d, 0x56, 0x43, 0xed, 0x4d, 0xa0, 0x64, 0x30, 0xc8, 0xa0, 0xc1, 0x85, 0x8c, 0xcf, 0x2f, 0x9a, 0x6e, 0x3d, 0x62, 0x01, 0x22, 0x53, 0xf0, 0x12, 0x2d, 0xba, 0xb4, 0xa3, 0x54, 0x75, 0xa6, 0xf6, 0x55, 0x89, 0xb2, 0xb0, 0x95, 0x99, 0x28, 0x26, 0xe4, 0xf1, 0xb5, 0x8f, 0xa0, 0x50, 0xb8, 0xf9, 0x5c, 0x4f, 0xeb, 0xa3, 0xfb, 0xaa, 0xdd, 0x2c, 0x22, 0x44, 0xad, 0x4a, 0xbd, 0x41, 0x01, 0x39, 0xad, 0xf4, 0xc1, 0x53, 0xcb, 0x5e, 0x69, 0x33, 0x7a, 0xf1, 0x76, 0xa7, 0x83, 0x7e, 0xea, 0xea, 0x99, 0xbd, 0xcd, 0x59, 0x38, 0x5a, 0xfd, 0xed, 0x34, 0xff, 0xba, 0x80, 0x63, 0xa3, 0x5f, 0x4f, 0x55, 0x8e, 0x4e, 0xeb, 0x48, 0xf1, 0x48, 0x7b, 0x56, 0xb1, 0xf8, 0xd1, 0xf7, 0x30, 0x67, 0x62, 0x1c, 0xb5, 0x48, 0xc8, 0x08, 0x75, 0x3e, 0x35, 0x26, 0xa2, 0xf2, 0xaa, 0xbd, 0xe1, 0x26, 0xbe, 0xa5, 0x21, 0xcf, 0x67, 0x3d, 0xea, 0xfa, 0x79, 0x2c, 0xa5, 0xbd, 0x22, 0x12, 0x79, 0x5b, 0xd6, 0x6b, 0x86, };
20170 static const u8 ed25519_877_test_vectors_expected_sig[] = {
20171 	0xdb, 0x72, 0x70, 0xac, 0xce, 0x78, 0xd7, 0xfb, 0x09, 0x08, 0x0a, 0x32, 0x79, 0x41, 0xbc, 0xe7, 0xeb, 0x14, 0x5b, 0x9e, 0x36, 0x61, 0x86, 0x6a, 0x86, 0x83, 0xf9, 0xa1, 0xa3, 0xde, 0x97, 0xfb, 0x02, 0xb0, 0x25, 0xdb, 0x9e, 0xc7, 0x6f, 0xf3, 0x25, 0x60, 0xfe, 0x63, 0x88, 0x27, 0x74, 0x2e, 0xa2, 0xf4, 0xeb, 0xef, 0x6b, 0x7c, 0xce, 0x44, 0xf9, 0xaa, 0xee, 0x43, 0x4f, 0xd7, 0xc1, 0x08, };
20172 static const ec_test_case ed25519_877_test_case = {
20173 	.name = "EDDSA25519-SHA512/wei25519 877",
20174 	.ec_str_p = &wei25519_str_params,
20175 	.priv_key = ed25519_877_test_vectors_priv_key,
20176 	.priv_key_len = sizeof(ed25519_877_test_vectors_priv_key),
20177 	.nn_random = NULL,
20178 	.hash_type = SHA512,
20179 	.msg = (const char *)ed25519_877_test_vectors_message,
20180 	.msglen = sizeof(ed25519_877_test_vectors_message),
20181 	.sig_type = EDDSA25519,
20182 	.exp_sig = ed25519_877_test_vectors_expected_sig,
20183 	.exp_siglen = sizeof(ed25519_877_test_vectors_expected_sig),
20184 	.adata = NULL,
20185 	.adata_len = 0
20186 };
20187 
20188 /************************************************/
20189 static const u8 ed25519_878_test_vectors_priv_key[] = {
20190 	0xa6, 0x33, 0x7e, 0x4d, 0x3b, 0x1a, 0x49, 0xb1, 0x26, 0x31, 0x67, 0x78, 0xc6, 0x13, 0x51, 0x6c, 0x03, 0xac, 0x88, 0xc9, 0x6d, 0x92, 0xff, 0x5c, 0xc7, 0xe0, 0xc8, 0x52, 0x7c, 0xce, 0x1a, 0x62, };
20191 static const u8 ed25519_878_test_vectors_message[] = {
20192 	0xe3, 0x34, 0x30, 0xc3, 0x8c, 0x4a, 0x40, 0xb3, 0xc6, 0x6e, 0x20, 0xcf, 0x3b, 0x70, 0xe9, 0xfe, 0xa8, 0xcc, 0x50, 0x76, 0x1f, 0x2a, 0xfe, 0x24, 0x9e, 0xc0, 0x59, 0xc0, 0x7b, 0xc3, 0xb3, 0x7e, 0x5b, 0x94, 0xf4, 0xa4, 0x3e, 0x31, 0x00, 0x99, 0xb1, 0x9a, 0x85, 0xf5, 0x9d, 0xff, 0x73, 0xa7, 0xe4, 0x95, 0xc4, 0xdf, 0x31, 0xf7, 0x47, 0x80, 0xcd, 0xef, 0x7b, 0xd6, 0xe4, 0x7c, 0x39, 0x4c, 0x18, 0x91, 0xea, 0x30, 0x52, 0xe3, 0xcc, 0xf5, 0xd8, 0x4b, 0xae, 0x08, 0x2d, 0x24, 0xba, 0x71, 0x78, 0xac, 0x65, 0xd2, 0x29, 0xad, 0x18, 0xa8, 0x49, 0x40, 0xf6, 0xb4, 0xdb, 0xc5, 0x96, 0xee, 0x63, 0xc1, 0x81, 0xb5, 0x7b, 0x5b, 0x49, 0x69, 0x89, 0x79, 0xc1, 0x86, 0x32, 0xfa, 0x82, 0x1c, 0xa6, 0x1e, 0x35, 0xa0, 0xd0, 0x35, 0x1f, 0xe1, 0x3d, 0x69, 0xe0, 0x6d, 0xdc, 0xc8, 0xd6, 0x66, 0xdc, 0xa2, 0x45, 0x02, 0x17, 0x7f, 0x34, 0x4e, 0x2f, 0x44, 0x05, 0x75, 0xd3, 0x9e, 0xbf, 0xe5, 0xe7, 0xf1, 0x06, 0x53, 0xb6, 0x5b, 0xef, 0x29, 0x1d, 0xc8, 0x13, 0xa0, 0x43, 0x4c, 0x97, 0x5d, 0xe1, 0x64, 0xc1, 0xa7, 0x6b, 0xf6, 0xfc, 0xef, 0x98, 0xf2, 0x31, 0x81, 0xc0, 0x09, 0xb9, 0x18, 0x30, 0xb6, 0x18, 0xe4, 0x87, 0x48, 0x47, 0xd2, 0xe2, 0x1b, 0xbd, 0xb9, 0x3f, 0x20, 0xcd, 0x8b, 0x1f, 0x4b, 0xaa, 0xdf, 0x99, 0x42, 0x8a, 0x22, 0x67, 0x43, 0x86, 0xa6, 0x68, 0x15, 0x2b, 0x4b, 0x90, 0x39, 0xff, 0x06, 0xab, 0xcf, 0xe3, 0x34, 0xa0, 0x62, 0xf7, 0x94, 0x05, 0x61, 0x72, 0xec, 0xbc, 0x07, 0x94, 0xdf, 0x98, 0x27, 0x1b, 0x9a, 0xcf, 0xe4, 0xb7, 0xda, 0x55, 0x3a, 0x87, 0x63, 0x42, 0x37, 0x63, 0x00, 0x09, 0xa0, 0x5b, 0x25, 0x7c, 0x18, 0x4c, 0xbe, 0x23, 0xd9, 0xcd, 0x5a, 0x03, 0x86, 0x58, 0x01, 0x0f, 0x57, 0x48, 0x99, 0xf3, 0xb2, 0xd1, 0x54, 0xd1, 0x85, 0xee, 0x67, 0x23, 0x09, 0x13, 0x65, 0x0c, 0x3a, 0x05, 0xb5, 0x4a, 0x2e, 0xdc, 0x24, 0x3a, 0x42, 0x87, 0x39, 0x8e, 0x37, 0x69, 0x28, 0xea, 0x9c, 0x6b, 0x2c, 0xba, 0xf3, 0x71, 0x25, 0x25, 0x40, 0xe2, 0xb8, 0x04, 0x3f, 0xcf, 0x55, 0x68, 0x13, 0x19, 0x6a, 0xe5, 0x72, 0xc2, 0x7c, 0xfb, 0x5a, 0x46, 0xab, 0xb9, 0x72, 0x9a, 0xf2, 0xdc, 0xfc, 0x29, 0xe0, 0x33, 0xdd, 0x11, 0xf3, 0x3e, 0x86, 0xcc, 0x6a, 0xc3, 0xbc, 0xe6, 0xf3, 0xf9, 0x57, 0x7d, 0x36, 0x78, 0x1a, 0x69, 0xed, 0x7e, 0xaf, 0x8c, 0x82, 0x63, 0xa0, 0xf1, 0x8e, 0xba, 0x0f, 0xe8, 0xa4, 0x81, 0xf3, 0xe1, 0x5a, 0x55, 0x59, 0x94, 0x34, 0x19, 0x5f, 0x7c, 0xb0, 0x57, 0xdd, 0x36, 0x4e, 0xaa, 0x07, 0xdd, 0x0d, 0xfd, 0x26, 0x6b, 0x80, 0x7f, 0x53, 0xa2, 0x07, 0x0f, 0xd7, 0x91, 0xe8, 0x72, 0x42, 0x2f, 0xd9, 0x07, 0x13, 0x4f, 0x4a, 0x8a, 0x78, 0xa8, 0x76, 0xbd, 0xcb, 0x03, 0x1a, 0xc8, 0x60, 0xdf, 0xe0, 0xbb, 0x57, 0xe1, 0x05, 0xdb, 0x82, 0x87, 0xb3, 0x1a, 0x60, 0x4e, 0xb7, 0x12, 0x69, 0xbe, 0x5b, 0xa2, 0x29, 0x98, 0x5c, 0xea, 0xbc, 0x2b, 0xdf, 0x16, 0x5a, 0xc7, 0x41, 0x65, 0x0b, 0x1f, 0x01, 0x3a, 0x66, 0xc9, 0xbd, 0x24, 0x3d, 0x03, 0xa8, 0xb1, 0xc5, 0x08, 0x13, 0x81, 0xcb, 0x92, 0xe2, 0x3f, 0x90, 0x57, 0x77, 0x1f, 0xc0, 0x7c, 0xa3, 0x2d, 0xff, 0x1d, 0xb9, 0x4f, 0x5a, 0xdf, 0xd2, 0xf4, 0xff, 0x9a, 0xf3, 0x1d, 0x25, 0x0d, 0xd4, 0xf8, 0x6b, 0x22, 0x59, 0x2f, 0x60, 0xa7, 0x45, 0x75, 0x15, 0x62, 0x13, 0xf1, 0x08, 0x46, 0xc7, 0x46, 0xa9, 0x20, 0xfe, 0x39, 0x85, 0x1b, 0x32, 0xfe, 0x4c, 0x8b, 0x87, 0x58, 0x76, 0x5b, 0xc5, 0xb8, 0xb9, 0xd5, 0xb9, 0x92, 0x63, 0xdf, 0x36, 0xf9, 0x78, 0x88, 0x05, 0x3f, 0xd1, 0x0f, 0x1d, 0x68, 0xf5, 0x77, 0xae, 0xd5, 0x59, 0xbc, 0xfd, 0xe7, 0x44, 0xbc, 0x65, 0x11, 0x07, 0x6c, 0xaf, 0xd6, 0x89, 0x44, 0xa0, 0xed, 0x10, 0x55, 0x2d, 0x11, 0x34, 0x4b, 0xc7, 0xe4, 0xd9, 0xef, 0x93, 0x6d, 0xac, 0xce, 0xd5, 0x27, 0x43, 0x31, 0x32, 0x95, 0x9b, 0x1c, 0x73, 0x24, 0xad, 0x1c, 0x4c, 0xbc, 0x3a, 0x1a, 0x73, 0x6b, 0x1f, 0x02, 0xaa, 0xe8, 0xe0, 0x61, 0x1a, 0xe2, 0x3f, 0xdd, 0x47, 0x4f, 0x5b, 0x8e, 0xe7, 0x05, 0x6f, 0xcb, 0x5a, 0xf6, 0x13, 0x3e, 0xcc, 0x08, 0x4b, 0xb9, 0xf1, 0xf5, 0x0c, 0xbd, 0xac, 0x66, 0x24, 0x44, 0x37, 0xb4, 0x34, 0x8f, 0x4e, 0xdf, 0xe2, 0x37, 0xfc, 0x3c, 0x38, 0x29, 0xab, 0x94, 0xeb, 0x4f, 0x14, 0xca, 0xb1, 0xcc, 0xd6, 0xca, 0xee, 0x36, 0xfa, 0xdc, 0x20, 0xa3, 0x10, 0xcf, 0x06, 0x90, 0x62, 0x2c, 0xdc, 0xa8, 0x48, 0xae, 0xd0, 0x3f, 0xf4, 0x03, 0xa6, 0x63, 0x3f, 0x4f, 0x65, 0x79, 0x94, 0xb7, 0x80, 0xdd, 0x60, 0x48, 0x14, 0x9c, 0x3b, 0xfb, 0xc1, 0x78, 0x89, 0xe3, 0x7d, 0x90, 0xb1, 0xe5, 0x42, 0x0e, 0xb3, 0xd4, 0x59, 0x6b, 0x91, 0xba, 0x11, 0xbc, 0x02, 0x29, 0xc6, 0x5d, 0x05, 0xb9, 0x3c, 0xd7, 0xe0, 0x45, 0x4d, 0x1f, 0x3c, 0x6e, 0x1e, 0x80, 0x71, 0x98, 0x37, 0x92, 0xc4, 0xd4, 0x36, 0x8d, 0x07, 0x78, 0xae, 0xf4, 0xe1, 0x23, 0x33, 0x5f, 0xd2, 0x96, 0x2c, 0x65, 0x7b, 0xd0, 0x51, 0x35, 0x71, 0xa5, 0xfc, 0xe2, 0x11, 0xde, 0x62, 0x87, 0x4f, 0x27, 0xca, 0x10, 0xdc, 0x15, 0xba, 0x2d, 0x44, 0x5f, 0x1c, 0xf4, 0xbe, 0x5f, 0x83, 0x3c, 0xf0, 0xb5, 0x64, 0xc0, 0x22, 0x57, 0x6b, 0x98, 0xc0, 0xa2, 0x43, 0x49, 0xb6, 0x70, 0x85, 0xf9, 0x22, 0x02, 0x67, 0x5d, 0x7d, 0xac, 0x48, 0xb9, 0x5e, 0x3b, 0xfd, 0x65, 0x55, 0xa9, 0xec, 0xb7, 0xc7, 0x2f, 0x08, 0xbf, 0xec, 0x0d, 0x22, 0x02, 0x22, 0x49, 0x2f, 0xdc, 0x96, 0x36, 0xf0, 0x36, 0xec, 0x45, 0x08, 0xa3, 0x65, 0xb7, 0xb7, 0x09, 0x79, 0xf9, 0xeb, 0x4a, 0x72, 0x63, 0xa8, 0xba, 0xcb, 0x1c, 0x1d, 0x01, 0x55, 0x73, 0x86, 0x46, 0xcd, 0xd4, 0x6a, 0xb9, 0x23, 0x4a, 0x17, 0x03, 0x11, 0x50, 0x0d, 0x0b, 0xae, 0x6e, 0x55, 0xa8, 0x63, 0xbd, 0xaa, 0x56, 0xf5, 0x16, 0x45, 0xad, 0x85, 0x29, 0x7a, 0x73, 0x81, 0xf8, 0xd2, 0x0c, 0xf9, 0x6c, 0x47, 0x4d, 0x1b, 0xb8, 0x1f, 0xce, 0x13, 0x2b, 0x14, 0x55, 0x5d, 0x1a, };
20193 static const u8 ed25519_878_test_vectors_expected_sig[] = {
20194 	0x78, 0x13, 0x76, 0xc9, 0x51, 0x2f, 0xa3, 0x3c, 0x45, 0x70, 0x47, 0xa1, 0xf4, 0xf0, 0xda, 0x31, 0x76, 0xe6, 0x0e, 0xe4, 0x77, 0x82, 0x86, 0x9b, 0x7e, 0x9f, 0xa5, 0x84, 0x1d, 0x96, 0x4f, 0x3c, 0x1a, 0xd6, 0x6b, 0x70, 0xc1, 0x14, 0xb1, 0x77, 0x1c, 0x32, 0x4c, 0x83, 0xff, 0x6c, 0xd9, 0x97, 0xae, 0xfc, 0xcd, 0xc5, 0x9c, 0x11, 0x4d, 0xb9, 0xf2, 0xf3, 0xca, 0x7d, 0x84, 0xa7, 0xb6, 0x0f, };
20195 static const ec_test_case ed25519_878_test_case = {
20196 	.name = "EDDSA25519-SHA512/wei25519 878",
20197 	.ec_str_p = &wei25519_str_params,
20198 	.priv_key = ed25519_878_test_vectors_priv_key,
20199 	.priv_key_len = sizeof(ed25519_878_test_vectors_priv_key),
20200 	.nn_random = NULL,
20201 	.hash_type = SHA512,
20202 	.msg = (const char *)ed25519_878_test_vectors_message,
20203 	.msglen = sizeof(ed25519_878_test_vectors_message),
20204 	.sig_type = EDDSA25519,
20205 	.exp_sig = ed25519_878_test_vectors_expected_sig,
20206 	.exp_siglen = sizeof(ed25519_878_test_vectors_expected_sig),
20207 	.adata = NULL,
20208 	.adata_len = 0
20209 };
20210 
20211 /************************************************/
20212 static const u8 ed25519_879_test_vectors_priv_key[] = {
20213 	0x10, 0x7d, 0xa9, 0x8d, 0x0e, 0xe8, 0xe7, 0xc0, 0x0f, 0x6d, 0x41, 0xec, 0x26, 0x59, 0x44, 0xce, 0x67, 0xef, 0x8c, 0x8f, 0xfb, 0x51, 0xf4, 0xf1, 0x1f, 0x4e, 0x5f, 0x1a, 0x27, 0xfb, 0xe8, 0x05, };
20214 static const u8 ed25519_879_test_vectors_message[] = {
20215 	0x1a, 0x7b, 0x7f, 0x3e, 0x1c, 0x7c, 0x41, 0x49, 0x2a, 0x7c, 0xe7, 0x99, 0xef, 0xdb, 0x2d, 0x9d, 0xc2, 0xf2, 0x48, 0x9c, 0x84, 0xae, 0x28, 0xbb, 0x7d, 0x08, 0x4f, 0x32, 0xec, 0xa8, 0xfb, 0xb0, 0x66, 0x88, 0x5a, 0xc6, 0xf2, 0xef, 0x74, 0x49, 0xe7, 0x12, 0x26, 0xa8, 0x2e, 0x9f, 0x15, 0x37, 0x72, 0xa9, 0x93, 0xeb, 0x6b, 0x6b, 0xca, 0x64, 0x91, 0xd2, 0x6a, 0xca, 0x5d, 0xee, 0x98, 0xb7, 0x7a, 0x1d, 0xdc, 0x59, 0x92, 0x2b, 0x31, 0x45, 0xc4, 0x47, 0xde, 0x73, 0x7f, 0xaf, 0xac, 0xba, 0x5a, 0x75, 0xf2, 0xa8, 0x01, 0x37, 0xb5, 0x59, 0x46, 0x97, 0x22, 0x0d, 0x19, 0x61, 0x76, 0x74, 0xa6, 0x91, 0x13, 0xfd, 0xf7, 0x7c, 0x34, 0x3a, 0xf2, 0xb7, 0xe3, 0x86, 0x1b, 0x5b, 0x78, 0x22, 0xf5, 0x8d, 0x60, 0x08, 0x9c, 0x3c, 0xa5, 0x4c, 0x74, 0x9d, 0x27, 0xf8, 0x83, 0x79, 0xc0, 0x67, 0x59, 0x8f, 0x06, 0x39, 0x39, 0xba, 0x86, 0x31, 0xd1, 0xf5, 0x2d, 0xc9, 0xab, 0x45, 0x50, 0x45, 0xfb, 0x36, 0x0c, 0xc2, 0xa5, 0xb6, 0xb0, 0x12, 0x7f, 0xac, 0xfc, 0xf5, 0xb1, 0xb4, 0xc3, 0x3e, 0x3f, 0x19, 0x4f, 0xc9, 0x24, 0xb8, 0x54, 0x16, 0x8c, 0xb1, 0x16, 0x9a, 0xb1, 0x09, 0x97, 0xb4, 0x38, 0xb7, 0x1c, 0x80, 0x87, 0x83, 0x47, 0xbe, 0x88, 0x7a, 0xf4, 0x48, 0x10, 0x13, 0x4b, 0x51, 0x4c, 0x80, 0x69, 0x08, 0x20, 0x1a, 0x3d, 0x3e, 0x6d, 0x0c, 0x56, 0x12, 0x0c, 0x43, 0x14, 0x87, 0x4d, 0xc2, 0x94, 0x4d, 0x84, 0x44, 0xf0, 0x1b, 0xaf, 0xa3, 0x4a, 0xa6, 0x2e, 0xce, 0xf0, 0x98, 0x15, 0x45, 0xe5, 0xd0, 0x2f, 0x40, 0x16, 0xc0, 0xb1, 0x64, 0xfc, 0x05, 0xae, 0x18, 0xf5, 0x35, 0xc3, 0x1b, 0xf2, 0x0b, 0x86, 0xf3, 0x1f, 0x7a, 0x79, 0x4a, 0xba, 0x14, 0x89, 0x84, 0xc3, 0xff, 0x43, 0x3d, 0xc2, 0x22, 0xc4, 0x43, 0xb5, 0xd2, 0x6c, 0x1f, 0x66, 0xe6, 0xc5, 0xf1, 0x9d, 0x19, 0xcd, 0x6e, 0xad, 0xd4, 0xdc, 0x94, 0x10, 0x1b, 0x2f, 0x52, 0xb5, 0x8c, 0x9d, 0x45, 0x90, 0xcb, 0x10, 0xdb, 0xc5, 0xd6, 0xea, 0xcd, 0x11, 0xd4, 0x2e, 0xd0, 0x9f, 0x15, 0xbd, 0xe4, 0x4e, 0xe9, 0x27, 0x1d, 0xef, 0x29, 0x2f, 0x73, 0x1b, 0xf3, 0xb4, 0xac, 0x6c, 0xd1, 0x27, 0xe4, 0x88, 0x4c, 0x2c, 0xb3, 0x0b, 0x28, 0x5f, 0xc9, 0x24, 0x76, 0x38, 0xa2, 0x99, 0xe4, 0x16, 0x52, 0x06, 0x24, 0xd1, 0xec, 0x8d, 0x0d, 0xf2, 0x49, 0x89, 0x39, 0xc7, 0x19, 0xa9, 0xe7, 0xbd, 0x29, 0xa3, 0xc5, 0xc3, 0x2a, 0x3e, 0x82, 0x41, 0x36, 0x8d, 0x6e, 0x4f, 0x90, 0xfe, 0xa2, 0x9d, 0xc3, 0xa3, 0xf1, 0x47, 0xea, 0x9f, 0x76, 0xc5, 0x78, 0x0e, 0x73, 0x14, 0x3f, 0x55, 0xd3, 0xde, 0xc7, 0xb6, 0x63, 0x41, 0xd3, 0xf3, 0xea, 0xc1, 0xd9, 0x8f, 0x8e, 0x7d, 0x4e, 0x87, 0x75, 0x09, 0xb4, 0x43, 0x8c, 0x3a, 0x52, 0x46, 0x6d, 0x24, 0x2a, 0x10, 0xb4, 0xc2, 0x7c, 0x4a, 0x0d, 0xb9, 0x23, 0x2d, 0xad, 0x01, 0x14, 0x14, 0xeb, 0xfb, 0xd5, 0x79, 0x06, 0xf1, 0xa4, 0x10, 0x20, 0x7b, 0x52, 0x6b, 0x0d, 0x1f, 0x1b, 0x69, 0x86, 0xb3, 0xeb, 0xd7, 0x55, 0x0a, 0x2b, 0x3c, 0x15, 0xfc, 0x24, 0x09, 0xc7, 0x62, 0x6e, 0x0d, 0xd3, 0x30, 0xef, 0x67, 0x22, 0xe3, 0xba, 0x48, 0xb1, 0xd9, 0x20, 0x56, 0x52, 0xac, 0x19, 0x4c, 0x21, 0x47, 0x3c, 0xe2, 0x58, 0x55, 0x9d, 0xb5, 0x11, 0xef, 0xad, 0x3e, 0x5d, 0x55, 0xf2, 0xa7, 0x96, 0xd6, 0x5a, 0x6a, 0xb9, 0x7d, 0x86, 0x31, 0x06, 0x2a, 0x59, 0x3a, 0x13, 0xaa, 0xa0, 0x95, 0xdb, 0xc9, 0x3e, 0x62, 0x17, 0xce, 0xd6, 0x19, 0xcb, 0x16, 0xa5, 0x7e, 0x74, 0x43, 0x55, 0xa1, 0x6b, 0x15, 0xe7, 0x7d, 0x49, 0x79, 0x11, 0x92, 0x99, 0xbb, 0x04, 0x3e, 0x48, 0xfa, 0x3e, 0x61, 0x54, 0x60, 0xe1, 0x64, 0x88, 0x29, 0x84, 0xa2, 0x23, 0xd4, 0x18, 0xca, 0x95, 0x34, 0x0c, 0x5b, 0xfc, 0xda, 0x67, 0x3f, 0xcd, 0x13, 0xb2, 0x9f, 0x2c, 0x47, 0xd2, 0xf9, 0x7e, 0x3e, 0x8c, 0x61, 0x3b, 0x6c, 0x58, 0xdf, 0x0e, 0x62, 0xcf, 0x23, 0x06, 0x1d, 0x6f, 0x54, 0x5b, 0x75, 0x50, 0x33, 0xfd, 0x3d, 0xc1, 0x40, 0x5e, 0x5f, 0xef, 0x35, 0xa1, 0x3e, 0x01, 0x5f, 0x98, 0xb1, 0xcc, 0x42, 0xf7, 0x1b, 0x99, 0x68, 0x1f, 0x96, 0x81, 0x25, 0x82, 0x29, 0xa4, 0x47, 0x3d, 0x86, 0xea, 0xbb, 0x0c, 0x17, 0x92, 0x79, 0x41, 0xe5, 0x0c, 0x08, 0xf3, 0x4a, 0x76, 0xb4, 0x3b, 0xcc, 0x6d, 0x04, 0x2e, 0x56, 0x32, 0xef, 0x9c, 0xcc, 0x91, 0xb6, 0xe6, 0x95, 0x0f, 0x5d, 0x30, 0xf6, 0x70, 0xfb, 0x39, 0x02, 0xc3, 0xd4, 0x09, 0x31, 0x5a, 0x40, 0xb0, 0x82, 0x1c, 0xe8, 0xa9, 0x9a, 0x97, 0xfe, 0xca, 0x54, 0x78, 0xbf, 0xd7, 0x82, 0xe7, 0x87, 0x67, 0xb3, 0x11, 0xf3, 0x74, 0x16, 0x3f, 0x58, 0x96, 0xb0, 0xbe, 0xb9, 0x58, 0x38, 0xe6, 0x45, 0x87, 0x8c, 0x64, 0x99, 0x03, 0x85, 0x12, 0x3b, 0x61, 0x57, 0x5d, 0xd8, 0x42, 0xdc, 0x76, 0x35, 0x4b, 0xac, 0x9c, 0x6d, 0x5a, 0xcd, 0x99, 0x35, 0xb6, 0x09, 0xbc, 0xcc, 0xb8, 0x46, 0x3d, 0x39, 0x22, 0x5d, 0xa1, 0xaf, 0xb8, 0x91, 0x1d, 0x36, 0xe6, 0x09, 0x89, 0x2d, 0xd1, 0x72, 0x38, 0x52, 0xab, 0x9f, 0x82, 0x75, 0x8f, 0x3f, 0x1e, 0x4d, 0x28, 0xdc, 0xf0, 0x2c, 0xb0, 0x6e, 0xed, 0x26, 0x84, 0x4a, 0xae, 0x68, 0x82, 0xed, 0x44, 0xbc, 0xe4, 0x4a, 0xbc, 0xd1, 0xdf, 0xba, 0x63, 0x34, 0x18, 0xc9, 0xf1, 0x55, 0x87, 0x9c, 0x97, 0xab, 0x27, 0xf8, 0xae, 0x23, 0x83, 0x30, 0x39, 0x2b, 0xe5, 0x49, 0x1a, 0x07, 0x86, 0x62, 0xda, 0xaa, 0x02, 0xa3, 0xd5, 0x45, 0x8b, 0x77, 0xc5, 0x49, 0xc4, 0x9b, 0xe2, 0x01, 0x24, 0x5e, 0x7a, 0xae, 0xc0, 0xd9, 0x4e, 0x54, 0x37, 0xbe, 0xca, 0x6e, 0x5a, 0xb0, 0x46, 0xd6, 0x94, 0xe9, 0x6b, 0xf5, 0x1e, 0x04, 0xfb, 0x44, 0x37, 0x9b, 0x2b, 0x9b, 0x80, 0x16, 0x75, 0xfe, 0x14, 0x77, 0xf3, 0xe0, 0x89, 0x87, 0x4a, 0x60, 0x11, 0x71, 0xd8, 0xb6, 0x8f, 0x02, 0x02, 0x01, 0x46, 0x01, 0xa5, 0x3f, 0x81, 0x2f, 0x53, 0xe5, 0x81, 0xc3, 0xb9, 0x63, 0x12, 0xb3, 0x6b, 0x9e, 0xe0, 0x4f, 0xff, 0x11, 0xd9, 0xea, 0xb4, 0xe4, 0x51, 0x48, 0xdc, 0xc8, 0xf0, 0xfa, 0xb1, };
20216 static const u8 ed25519_879_test_vectors_expected_sig[] = {
20217 	0x53, 0x25, 0x2b, 0x92, 0x3a, 0xd1, 0x9c, 0xc3, 0x97, 0x84, 0xd3, 0xa9, 0xae, 0x59, 0xd6, 0x2a, 0x63, 0x00, 0xdc, 0xc5, 0x0a, 0xc8, 0xfd, 0x07, 0x13, 0xcb, 0x58, 0x84, 0x45, 0x01, 0xd8, 0xd3, 0x80, 0x5a, 0xfa, 0x0f, 0xda, 0x64, 0xc7, 0x3e, 0xa0, 0xf6, 0x0e, 0x6a, 0x8b, 0x34, 0x45, 0xbf, 0xff, 0xe6, 0xca, 0x6b, 0xfd, 0xc8, 0x7e, 0x12, 0x8b, 0xaf, 0x99, 0xbf, 0x62, 0x68, 0xfc, 0x09, };
20218 static const ec_test_case ed25519_879_test_case = {
20219 	.name = "EDDSA25519-SHA512/wei25519 879",
20220 	.ec_str_p = &wei25519_str_params,
20221 	.priv_key = ed25519_879_test_vectors_priv_key,
20222 	.priv_key_len = sizeof(ed25519_879_test_vectors_priv_key),
20223 	.nn_random = NULL,
20224 	.hash_type = SHA512,
20225 	.msg = (const char *)ed25519_879_test_vectors_message,
20226 	.msglen = sizeof(ed25519_879_test_vectors_message),
20227 	.sig_type = EDDSA25519,
20228 	.exp_sig = ed25519_879_test_vectors_expected_sig,
20229 	.exp_siglen = sizeof(ed25519_879_test_vectors_expected_sig),
20230 	.adata = NULL,
20231 	.adata_len = 0
20232 };
20233 
20234 /************************************************/
20235 static const u8 ed25519_880_test_vectors_priv_key[] = {
20236 	0x8b, 0xc2, 0x29, 0xfc, 0x23, 0x46, 0x53, 0xb1, 0x3c, 0x92, 0x47, 0x10, 0xcb, 0x46, 0x8b, 0x8f, 0xa9, 0xb2, 0x80, 0xe2, 0xad, 0xb4, 0x9c, 0xb4, 0xb3, 0x6b, 0xf5, 0x9d, 0x6f, 0xa4, 0xa6, 0x39, };
20237 static const u8 ed25519_880_test_vectors_message[] = {
20238 	0xba, 0xe2, 0xdc, 0x7f, 0x94, 0xab, 0x5c, 0xcd, 0xca, 0xa8, 0xcf, 0x49, 0xed, 0xbe, 0xf0, 0xf6, 0xd7, 0xae, 0xb1, 0xfa, 0x89, 0x07, 0x80, 0x05, 0x33, 0xaf, 0x44, 0x92, 0x61, 0x11, 0x94, 0xe5, 0x6c, 0xef, 0x37, 0xb1, 0xf0, 0x33, 0x30, 0x37, 0x38, 0xae, 0x2c, 0x3b, 0xc4, 0x58, 0x8f, 0x5c, 0xb3, 0xd5, 0x5f, 0x34, 0x5b, 0x9a, 0x40, 0x7e, 0x78, 0x77, 0x42, 0xa0, 0x6a, 0xf0, 0xb6, 0xee, 0x20, 0xde, 0xe3, 0xdf, 0xe9, 0xc9, 0x1d, 0x76, 0x2a, 0x3e, 0xbd, 0x19, 0xae, 0xd0, 0x79, 0x07, 0xbb, 0xb9, 0x1c, 0xd7, 0x76, 0x32, 0x65, 0x40, 0xde, 0xd9, 0xf7, 0xff, 0x7d, 0xda, 0x76, 0x61, 0x5f, 0x97, 0x8e, 0x94, 0x90, 0xf4, 0x06, 0xed, 0x2d, 0x91, 0x16, 0xe2, 0x09, 0x3f, 0xa7, 0x85, 0xe9, 0x71, 0xb5, 0x06, 0x2d, 0x31, 0xcb, 0x40, 0xff, 0xf9, 0xe3, 0xc5, 0x51, 0xa7, 0x3b, 0x20, 0x24, 0x5d, 0x46, 0xdf, 0x4d, 0x7f, 0xd1, 0x30, 0x3a, 0x28, 0x18, 0x01, 0x72, 0xd9, 0xa2, 0xbf, 0x55, 0x93, 0xc4, 0x79, 0x17, 0xb5, 0x86, 0x90, 0x91, 0x7c, 0x1f, 0xb0, 0xe1, 0xe2, 0x99, 0x4d, 0x1f, 0xa9, 0x77, 0x35, 0xae, 0x37, 0x8d, 0xe6, 0xea, 0xfd, 0x5c, 0x1a, 0x25, 0xab, 0xaf, 0xa3, 0xcf, 0xd2, 0xdf, 0x7a, 0xea, 0xbd, 0x6e, 0x68, 0xfc, 0x44, 0xed, 0xf8, 0x2f, 0xc8, 0x36, 0x94, 0xe5, 0xd8, 0x41, 0xa1, 0x5b, 0x14, 0x56, 0x8b, 0x61, 0x10, 0xbe, 0x64, 0x4b, 0xf2, 0x2b, 0x71, 0xfc, 0x47, 0xd7, 0xf0, 0x7e, 0x16, 0x66, 0x95, 0x7d, 0x0f, 0x87, 0xda, 0x17, 0xf1, 0x3f, 0xcd, 0x63, 0xc1, 0xc2, 0x96, 0x6f, 0x68, 0x7d, 0x25, 0xdc, 0xbd, 0x99, 0x63, 0xf0, 0x1e, 0xff, 0x13, 0x2d, 0x5f, 0x2b, 0x86, 0x67, 0x78, 0x16, 0x58, 0x8c, 0x12, 0x3e, 0x94, 0x57, 0xbe, 0xfc, 0xce, 0xd2, 0xd3, 0xcd, 0x1d, 0x1b, 0xeb, 0xe8, 0xdd, 0x8f, 0xbb, 0x15, 0x87, 0xe5, 0x53, 0xcb, 0xcc, 0x4c, 0x87, 0x62, 0x06, 0x4c, 0xd3, 0x2e, 0xf7, 0xa1, 0x70, 0x24, 0x10, 0xf7, 0x7f, 0x15, 0x24, 0x0d, 0x7e, 0x2b, 0xb5, 0x82, 0xc6, 0x78, 0xc0, 0xda, 0x88, 0xef, 0x45, 0x22, 0x83, 0x0b, 0x14, 0x36, 0x60, 0xac, 0x9c, 0x43, 0x4d, 0x95, 0x77, 0x2e, 0x6e, 0xee, 0xed, 0x60, 0x14, 0xae, 0x16, 0x82, 0x4c, 0xcd, 0xc4, 0xdf, 0x2d, 0xf6, 0x4a, 0xeb, 0x69, 0x80, 0xb5, 0x1d, 0x11, 0x89, 0x85, 0xdc, 0xbb, 0xd1, 0x96, 0x1f, 0x31, 0x5e, 0x6a, 0x94, 0x33, 0xf0, 0xb9, 0x6b, 0x1e, 0x63, 0x51, 0x25, 0x7e, 0xad, 0x83, 0xe0, 0x5b, 0x4c, 0xc8, 0x9c, 0x92, 0x4b, 0xf8, 0x35, 0x58, 0xba, 0x7d, 0x2e, 0x7c, 0xa3, 0x7c, 0x03, 0x17, 0x9a, 0x8f, 0x85, 0xb8, 0x31, 0xe7, 0x21, 0x7b, 0xf4, 0xc5, 0x53, 0x83, 0x87, 0x61, 0xd3, 0x26, 0x02, 0x85, 0x3b, 0x81, 0x59, 0x3b, 0x0e, 0xbf, 0x8e, 0x4b, 0x9f, 0xfa, 0xf0, 0xec, 0x40, 0x5b, 0x2a, 0x83, 0xaf, 0x7d, 0xe5, 0x55, 0x4d, 0xaa, 0xd2, 0x8b, 0x58, 0x2e, 0xe0, 0x8b, 0xd8, 0x4b, 0x37, 0x55, 0x50, 0xca, 0xe0, 0x8a, 0xe4, 0xa5, 0xbd, 0xa7, 0x15, 0x81, 0xfc, 0x3b, 0x7b, 0x54, 0x49, 0x8c, 0x4e, 0x1a, 0xfb, 0x96, 0x6b, 0x4a, 0xf1, 0xd9, 0xc8, 0x43, 0xa6, 0xb2, 0x5b, 0x34, 0xe0, 0x4c, 0xfd, 0x9b, 0xd2, 0x37, 0x42, 0x44, 0xf1, 0xfe, 0x20, 0xec, 0x62, 0xbe, 0x3c, 0xcf, 0xab, 0x4e, 0xde, 0xf7, 0x9e, 0xd6, 0x4e, 0x6b, 0x71, 0xaa, 0x92, 0x28, 0x12, 0x7c, 0x63, 0x59, 0xea, 0x1c, 0x4a, 0x80, 0x87, 0x89, 0x08, 0x96, 0xff, 0xa4, 0x6e, 0x00, 0x92, 0xde, 0xc7, 0xef, 0xbc, 0x96, 0x0a, 0x17, 0xb7, 0x70, 0x91, 0x6f, 0x95, 0x40, 0x70, 0x13, 0x2e, 0x26, 0xd9, 0x8d, 0x97, 0x74, 0xa2, 0xac, 0xdf, 0x80, 0x9d, 0x58, 0x6d, 0xf0, 0x25, 0x2f, 0x67, 0xcf, 0xe8, 0xd9, 0x85, 0xa3, 0xe2, 0x48, 0xdb, 0x0f, 0x90, 0x73, 0x1a, 0xce, 0x7a, 0xbd, 0x99, 0x9c, 0x74, 0x6b, 0x69, 0x64, 0x8d, 0x5c, 0x3b, 0x4b, 0xd6, 0x11, 0x37, 0xe0, 0x8f, 0xcc, 0x8b, 0x2e, 0xfc, 0x56, 0x76, 0xbc, 0xd8, 0x56, 0xa1, 0x3b, 0x36, 0x21, 0x51, 0x47, 0x4c, 0x4a, 0x1e, 0xfd, 0xed, 0xc5, 0x92, 0xcf, 0x3e, 0xad, 0x1a, 0xba, 0xbc, 0xd4, 0x8e, 0xe2, 0x04, 0xd2, 0x77, 0x26, 0xad, 0x1b, 0xda, 0x4f, 0xe4, 0xb0, 0x9a, 0xb5, 0x10, 0x89, 0xd0, 0x16, 0xde, 0x6b, 0xa2, 0x59, 0xea, 0x81, 0x80, 0x7f, 0xaf, 0x21, 0x1c, 0x87, 0xe4, 0xc9, 0xef, 0xbf, 0x6a, 0x4c, 0x75, 0x3e, 0x08, 0xf7, 0x80, 0xed, 0x55, 0x33, 0x8c, 0x0f, 0xde, 0x14, 0xfb, 0x99, 0xb3, 0x07, 0x22, 0xb5, 0x59, 0x4b, 0x3a, 0xbe, 0x02, 0x04, 0x7f, 0x46, 0x62, 0x42, 0x42, 0x1f, 0xb8, 0x11, 0x76, 0xc9, 0xc4, 0xf0, 0xfd, 0x2b, 0x5e, 0x7c, 0x5a, 0x0f, 0x65, 0xa0, 0xc5, 0x9a, 0xa8, 0xc3, 0xa9, 0x86, 0x08, 0x7d, 0xe7, 0xba, 0x40, 0xba, 0xca, 0x77, 0xbd, 0x36, 0xac, 0x21, 0xce, 0x34, 0xe9, 0xfe, 0x97, 0xfa, 0xcc, 0x4e, 0x29, 0x83, 0x30, 0xee, 0xce, 0x1c, 0x8e, 0xc6, 0x23, 0xe6, 0x6a, 0x4b, 0x0f, 0x23, 0x42, 0xd2, 0xc5, 0xa0, 0x2c, 0x5f, 0x5a, 0xbd, 0xdc, 0x5f, 0xf1, 0xf1, 0xf2, 0xd0, 0x3c, 0x1d, 0x4e, 0xe9, 0xb4, 0xb3, 0x42, 0xed, 0x3b, 0x1c, 0xc2, 0x65, 0x61, 0xf3, 0x21, 0x7b, 0xf8, 0x50, 0x0e, 0x08, 0xf0, 0x27, 0x57, 0x1c, 0x53, 0xc9, 0x23, 0x26, 0x05, 0xa5, 0x3f, 0x2b, 0xda, 0x02, 0x4e, 0x39, 0x92, 0x91, 0x63, 0xa8, 0xe0, 0x07, 0x91, 0xac, 0x06, 0x56, 0xbb, 0x07, 0x83, 0x82, 0x5e, 0x71, 0x05, 0xff, 0xa9, 0xd9, 0x09, 0x69, 0xdc, 0x09, 0x4a, 0xf4, 0x6f, 0x70, 0x2e, 0x85, 0xcc, 0x11, 0xe4, 0x42, 0xb3, 0xd5, 0x53, 0x4c, 0x1d, 0x32, 0x75, 0x20, 0x7d, 0x6d, 0x29, 0xa9, 0x42, 0xc3, 0x58, 0xed, 0x5f, 0xa0, 0x75, 0x57, 0xc3, 0xc0, 0x14, 0xcf, 0x54, 0x1f, 0x9a, 0xae, 0xea, 0x60, 0x25, 0xb4, 0x1e, 0xcd, 0xd8, 0x48, 0x51, 0x2b, 0xa2, 0x5e, 0x72, 0x1e, 0x43, 0xd3, 0x29, 0x18, 0x5f, 0x8f, 0x94, 0x89, 0x2e, 0x9e, 0x2d, 0x5e, 0x7c, 0xbb, 0x99, 0xe7, 0xad, 0x25, 0xf6, 0x9e, 0x5b, 0xef, 0x73, 0x2c, 0xfc, 0xeb, 0x07, 0x86, 0x11, 0x55, 0x3c, 0xc7, 0x83, 0x77, 0x37, 0x5e, 0x74, 0xe6, 0x6f, 0x1b, 0x9d, 0x8d, 0x20, };
20239 static const u8 ed25519_880_test_vectors_expected_sig[] = {
20240 	0xd2, 0x43, 0xb8, 0x7d, 0x13, 0x97, 0xd5, 0x94, 0x13, 0x9d, 0x83, 0xc3, 0x9a, 0xcf, 0x85, 0x01, 0xd0, 0x73, 0xbd, 0x4b, 0xe7, 0x18, 0xb4, 0xc2, 0x06, 0x98, 0x07, 0x29, 0xe7, 0x20, 0xa4, 0xc5, 0xb0, 0xea, 0x91, 0xa2, 0x8e, 0xa1, 0x26, 0x04, 0xa9, 0x87, 0xe6, 0x95, 0x91, 0xc5, 0x43, 0x04, 0x9f, 0x29, 0x73, 0xbb, 0x91, 0xc1, 0x70, 0x21, 0x3c, 0x32, 0xa6, 0x4a, 0x0f, 0xac, 0x82, 0x04, };
20241 static const ec_test_case ed25519_880_test_case = {
20242 	.name = "EDDSA25519-SHA512/wei25519 880",
20243 	.ec_str_p = &wei25519_str_params,
20244 	.priv_key = ed25519_880_test_vectors_priv_key,
20245 	.priv_key_len = sizeof(ed25519_880_test_vectors_priv_key),
20246 	.nn_random = NULL,
20247 	.hash_type = SHA512,
20248 	.msg = (const char *)ed25519_880_test_vectors_message,
20249 	.msglen = sizeof(ed25519_880_test_vectors_message),
20250 	.sig_type = EDDSA25519,
20251 	.exp_sig = ed25519_880_test_vectors_expected_sig,
20252 	.exp_siglen = sizeof(ed25519_880_test_vectors_expected_sig),
20253 	.adata = NULL,
20254 	.adata_len = 0
20255 };
20256 
20257 /************************************************/
20258 static const u8 ed25519_881_test_vectors_priv_key[] = {
20259 	0x3e, 0xdb, 0x50, 0xff, 0x07, 0x4e, 0xf9, 0x71, 0x7f, 0x4f, 0xb0, 0xb6, 0xce, 0x25, 0x2b, 0xf4, 0xbd, 0x04, 0x9c, 0x90, 0x83, 0x77, 0x5f, 0x52, 0x9e, 0xaf, 0x51, 0xe9, 0x75, 0xcb, 0x32, 0x45, };
20260 static const u8 ed25519_881_test_vectors_message[] = {
20261 	0x97, 0x5e, 0xce, 0x4e, 0x81, 0xf0, 0x01, 0x5f, 0x5a, 0xc3, 0x04, 0x46, 0x09, 0xd0, 0xac, 0x3a, 0x8d, 0xf9, 0x14, 0x5b, 0x50, 0xc4, 0x28, 0x89, 0xdd, 0x31, 0x2f, 0x56, 0x3c, 0xf6, 0x12, 0x6e, 0x36, 0xff, 0xfa, 0xf2, 0x1e, 0xb6, 0xb8, 0x4f, 0xbd, 0xa1, 0x5a, 0xa8, 0x5c, 0x66, 0x14, 0x5f, 0x75, 0x41, 0xe5, 0xb4, 0x1a, 0x8e, 0x81, 0x70, 0x0b, 0xe3, 0x56, 0x22, 0x4f, 0xc1, 0x09, 0x32, 0x7a, 0x69, 0x19, 0x66, 0x56, 0x73, 0x53, 0x4f, 0x5c, 0x8a, 0x4a, 0x00, 0x17, 0x50, 0xb1, 0x99, 0xdb, 0xfd, 0x63, 0x06, 0x91, 0xaf, 0x55, 0x2d, 0x4d, 0x26, 0xa9, 0xd9, 0xaf, 0xb3, 0x3a, 0x16, 0xaf, 0x39, 0x11, 0x54, 0x12, 0x4b, 0x53, 0x42, 0x6c, 0x9f, 0x69, 0x50, 0x57, 0xb1, 0x81, 0x4f, 0xd6, 0xd3, 0x10, 0x29, 0x8a, 0xf6, 0xc8, 0x30, 0x68, 0x6a, 0x4a, 0x00, 0x7a, 0x14, 0xe0, 0x05, 0x7b, 0x72, 0xfb, 0xad, 0x5b, 0x80, 0x3a, 0xd3, 0x53, 0xd1, 0xc3, 0xfd, 0xb8, 0x90, 0xa9, 0xc8, 0x18, 0x08, 0xe8, 0x9f, 0x22, 0x91, 0x87, 0xbc, 0xb4, 0x4f, 0xee, 0x16, 0xa4, 0xeb, 0xca, 0xd5, 0xeb, 0xa4, 0x59, 0xb0, 0x28, 0x27, 0x2a, 0x56, 0x2c, 0x05, 0x07, 0x9f, 0xa7, 0xae, 0x3e, 0xca, 0xe8, 0x04, 0xa9, 0xe8, 0xc4, 0xf3, 0xf3, 0x15, 0x81, 0x3c, 0x5e, 0xe0, 0x84, 0x1b, 0xbc, 0xcf, 0xe4, 0xa9, 0x56, 0x23, 0xb5, 0x17, 0xa4, 0xb4, 0x2b, 0x2c, 0x6d, 0x97, 0xa3, 0xbf, 0x26, 0xac, 0xdb, 0xe2, 0xe9, 0x79, 0x63, 0x3f, 0x02, 0xaa, 0xc4, 0x66, 0x52, 0x6a, 0x3e, 0xbb, 0x14, 0xda, 0x19, 0xbc, 0x95, 0xf2, 0xc3, 0xfd, 0xf6, 0xbd, 0xb0, 0x8b, 0xe8, 0xbd, 0xe9, 0x7a, 0x86, 0x4c, 0x90, 0x7e, 0x91, 0x8c, 0x67, 0x9a, 0xb7, 0x26, 0xf8, 0x01, 0x77, 0x14, 0x58, 0x40, 0x21, 0x6b, 0x9d, 0xc3, 0xf9, 0x81, 0xef, 0x17, 0x87, 0x4f, 0x08, 0xb2, 0xfc, 0x66, 0x11, 0xa6, 0x34, 0x6c, 0x3d, 0xa6, 0xa5, 0x5e, 0xcf, 0xa7, 0x53, 0xc9, 0x91, 0x9f, 0x4f, 0x19, 0xe3, 0xc7, 0x90, 0x93, 0xbf, 0xd7, 0x8f, 0x86, 0x15, 0x98, 0xe4, 0x66, 0x6e, 0x1c, 0xab, 0x68, 0x8e, 0x46, 0x04, 0xd4, 0x6c, 0x9c, 0x58, 0x2e, 0xad, 0xb9, 0x2c, 0x98, 0x8f, 0x47, 0x8d, 0x16, 0x0f, 0x5a, 0x15, 0x18, 0x2b, 0x33, 0x40, 0x20, 0x17, 0x97, 0xd0, 0xb9, 0x55, 0x28, 0x2e, 0x4a, 0x21, 0x7b, 0x50, 0xb1, 0x4b, 0x10, 0xc9, 0xf4, 0x90, 0x67, 0xea, 0x3e, 0x84, 0xe5, 0x27, 0x4d, 0xca, 0xec, 0x74, 0x47, 0x4c, 0x57, 0x07, 0xc2, 0x8b, 0xba, 0x0d, 0xb8, 0xcd, 0xe3, 0xe8, 0x38, 0xd7, 0x31, 0x3c, 0x17, 0x1b, 0x85, 0xff, 0x2b, 0x9a, 0x3d, 0x2b, 0x16, 0x7e, 0x90, 0x61, 0xf8, 0x4d, 0xf3, 0xb1, 0x3b, 0xdd, 0x08, 0xb2, 0xd5, 0x01, 0xe5, 0x37, 0x92, 0xd6, 0x80, 0x54, 0xd0, 0x48, 0xab, 0xfe, 0x3b, 0xce, 0x98, 0xd9, 0x78, 0x25, 0x6f, 0x2f, 0xd2, 0xc6, 0xc4, 0xe7, 0x6f, 0x39, 0x68, 0x8c, 0xcc, 0xf0, 0xfe, 0x14, 0x9a, 0xf9, 0xd3, 0x47, 0xe7, 0xb0, 0x40, 0xef, 0x24, 0x1d, 0xd5, 0xa5, 0x3e, 0xaa, 0x5e, 0xab, 0x35, 0xa1, 0x8c, 0x68, 0xc7, 0x54, 0xa0, 0x6b, 0x03, 0x39, 0x9b, 0xbe, 0x56, 0xa2, 0x52, 0x68, 0xc8, 0x29, 0xa5, 0xba, 0x82, 0xb2, 0x81, 0x92, 0x04, 0x1d, 0x3b, 0xd2, 0x44, 0xeb, 0x08, 0xbf, 0x78, 0xe7, 0x6d, 0xef, 0x87, 0xcd, 0x09, 0xf3, 0x2b, 0xea, 0xc9, 0xbb, 0x63, 0x98, 0x23, 0xb3, 0x69, 0x67, 0xa5, 0x74, 0xd8, 0x96, 0x0d, 0x1b, 0xd0, 0x34, 0x35, 0x67, 0x9d, 0x93, 0xed, 0xdc, 0x55, 0x80, 0x63, 0xc5, 0x40, 0xb9, 0xc2, 0xf6, 0x09, 0xfe, 0xd2, 0xe2, 0xe3, 0x57, 0x6d, 0x19, 0xe6, 0x20, 0x9e, 0xab, 0x46, 0x6c, 0x20, 0x67, 0x91, 0xc3, 0xaa, 0x19, 0x96, 0x23, 0xfb, 0xae, 0x7d, 0x34, 0x97, 0xe8, 0x0f, 0xdd, 0x3f, 0xcb, 0xaf, 0x5b, 0x89, 0x11, 0x0e, 0xd7, 0x22, 0x44, 0x23, 0x4b, 0xe8, 0x5c, 0xca, 0x4b, 0x27, 0xa0, 0x9b, 0xb7, 0x0a, 0x26, 0xec, 0xe4, 0xeb, 0x8d, 0xd9, 0x70, 0xa2, 0x6e, 0x5b, 0x04, 0x36, 0x1f, 0xa5, 0x0e, 0x90, 0x38, 0x0e, 0xd6, 0x5f, 0x41, 0x4c, 0x1b, 0xe9, 0xf5, 0x06, 0x4f, 0x71, 0x42, 0x91, 0x16, 0x26, 0x7e, 0xdd, 0x69, 0x76, 0x42, 0x2a, 0xd9, 0x2d, 0xeb, 0x2b, 0x80, 0x4a, 0x92, 0xe8, 0x1c, 0x9f, 0x65, 0x22, 0xa0, 0xf3, 0xb5, 0xd8, 0xad, 0x36, 0xb4, 0xf8, 0x7d, 0xb5, 0x16, 0xa2, 0x28, 0x73, 0xe6, 0xf2, 0x72, 0x84, 0xf2, 0xca, 0x36, 0x0a, 0x2f, 0x40, 0xff, 0x3d, 0x8e, 0x23, 0xde, 0xc8, 0xef, 0x8a, 0x17, 0xa4, 0x3a, 0xcb, 0xb6, 0x12, 0x71, 0xa7, 0x27, 0xcb, 0x86, 0x90, 0xd2, 0x9b, 0xb8, 0x20, 0x16, 0x73, 0x6b, 0x31, 0x02, 0x62, 0x01, 0xdd, 0x3d, 0x38, 0x8d, 0x2c, 0x64, 0x3a, 0x73, 0xcf, 0xbd, 0x0a, 0x94, 0xe2, 0x05, 0x51, 0xfb, 0x5f, 0x8e, 0x1f, 0xfc, 0x39, 0x74, 0x12, 0x72, 0xaa, 0x23, 0x08, 0xdc, 0x8d, 0x21, 0x33, 0xa3, 0xfa, 0x9c, 0xf1, 0x09, 0x79, 0x6d, 0x69, 0xd2, 0xcc, 0x8a, 0xdd, 0xc4, 0x4a, 0xe2, 0x52, 0x77, 0x81, 0xee, 0x99, 0x3a, 0xf2, 0xa6, 0x37, 0xa8, 0x72, 0xf0, 0x2a, 0xff, 0x47, 0x4a, 0x70, 0x73, 0xf2, 0x9d, 0x9c, 0x89, 0x50, 0x77, 0x01, 0xfe, 0xcb, 0xbf, 0xd5, 0x10, 0x13, 0x53, 0x53, 0x7e, 0xba, 0x17, 0xc2, 0x96, 0x69, 0xda, 0xc0, 0x42, 0x7e, 0x38, 0xe2, 0x2d, 0xfa, 0xac, 0x91, 0xfc, 0x20, 0xd9, 0xe3, 0xfe, 0xe7, 0x91, 0xf4, 0x62, 0xa8, 0x63, 0xbb, 0x19, 0x08, 0xfb, 0x1e, 0x42, 0x04, 0xb6, 0x88, 0x80, 0x31, 0x4d, 0xda, 0xca, 0xaa, 0x35, 0xa1, 0x7a, 0xf5, 0xf5, 0x7a, 0x39, 0x9f, 0x19, 0x31, 0xe7, 0x8f, 0x5a, 0x37, 0x45, 0x4f, 0xd3, 0x8c, 0x57, 0xa6, 0x8e, 0x8d, 0x36, 0x78, 0x48, 0xa9, 0x73, 0x45, 0x18, 0x9c, 0x70, 0x07, 0x7f, 0xd1, 0xaa, 0x07, 0x54, 0xe7, 0x03, 0xe3, 0x52, 0x61, 0x80, 0x63, 0xb9, 0xe3, 0xfa, 0xf3, 0xb1, 0x4b, 0x5f, 0x0b, 0x27, 0x11, 0x36, 0x33, 0xc5, 0xd1, 0x73, 0x63, 0x74, 0x1e, 0x96, 0xa6, 0x7e, 0x81, 0x64, 0x01, 0xe8, 0x09, 0x8c, 0x17, 0xbf, 0xfe, 0x9c, 0x6f, 0x35, 0x87, 0x64, 0x6f, 0x40, 0xe9, 0xfd, 0xb6, 0x81, 0x9f, 0xd2, 0x2a, 0x74, 0x3a, 0x7a, 0x6e, 0x10, 0xfe, 0xba, 0x11, };
20262 static const u8 ed25519_881_test_vectors_expected_sig[] = {
20263 	0xde, 0xb3, 0xd9, 0xfc, 0x7b, 0x2d, 0x86, 0xab, 0x4b, 0x92, 0x6f, 0x99, 0x52, 0x79, 0x70, 0xab, 0xb5, 0x18, 0x38, 0xbc, 0xc2, 0x91, 0x9e, 0x94, 0xcd, 0xa3, 0x37, 0x1f, 0xd0, 0xe7, 0x69, 0x3f, 0xe3, 0x7e, 0x0c, 0x40, 0xe1, 0x23, 0x3b, 0x09, 0xff, 0xa9, 0x03, 0xa0, 0x34, 0xdd, 0xe2, 0x87, 0xc0, 0x23, 0x7d, 0xc5, 0x94, 0xf5, 0x3a, 0xbc, 0x87, 0x84, 0x48, 0x69, 0xdc, 0xe9, 0x20, 0x02, };
20264 static const ec_test_case ed25519_881_test_case = {
20265 	.name = "EDDSA25519-SHA512/wei25519 881",
20266 	.ec_str_p = &wei25519_str_params,
20267 	.priv_key = ed25519_881_test_vectors_priv_key,
20268 	.priv_key_len = sizeof(ed25519_881_test_vectors_priv_key),
20269 	.nn_random = NULL,
20270 	.hash_type = SHA512,
20271 	.msg = (const char *)ed25519_881_test_vectors_message,
20272 	.msglen = sizeof(ed25519_881_test_vectors_message),
20273 	.sig_type = EDDSA25519,
20274 	.exp_sig = ed25519_881_test_vectors_expected_sig,
20275 	.exp_siglen = sizeof(ed25519_881_test_vectors_expected_sig),
20276 	.adata = NULL,
20277 	.adata_len = 0
20278 };
20279 
20280 /************************************************/
20281 static const u8 ed25519_882_test_vectors_priv_key[] = {
20282 	0xcd, 0xa4, 0xba, 0x93, 0x94, 0x0a, 0xa0, 0xc0, 0xc3, 0x15, 0x0b, 0x39, 0x29, 0xb9, 0x5e, 0xe7, 0x76, 0x9c, 0xe4, 0x3f, 0xd9, 0x8e, 0xca, 0xff, 0x9c, 0x4a, 0x50, 0x9e, 0x73, 0x6d, 0x5c, 0x8e, };
20283 static const u8 ed25519_882_test_vectors_message[] = {
20284 	0x3a, 0x1d, 0x66, 0x8c, 0x66, 0x88, 0x41, 0x48, 0x96, 0xa7, 0x69, 0x7f, 0x3c, 0x2e, 0x43, 0x10, 0x98, 0xed, 0xfc, 0x45, 0x7e, 0x04, 0xd2, 0xda, 0x86, 0x95, 0x68, 0xad, 0x5b, 0x33, 0x10, 0xe5, 0x9e, 0x4c, 0x72, 0x7c, 0x90, 0x3c, 0xbf, 0x18, 0x17, 0x40, 0x88, 0x02, 0x31, 0x9a, 0x8c, 0x23, 0x1b, 0x58, 0x02, 0x3d, 0xfa, 0xe4, 0x94, 0xc0, 0x13, 0xaf, 0x0f, 0xdb, 0x78, 0xc9, 0x1d, 0x5b, 0x45, 0x7f, 0x8c, 0x47, 0xa3, 0xdc, 0x31, 0xd8, 0xc8, 0x59, 0x4a, 0xa0, 0x8f, 0x14, 0x62, 0x03, 0xfa, 0x2c, 0x28, 0xb3, 0xdd, 0x79, 0x6a, 0x11, 0xa9, 0x7a, 0xde, 0xde, 0x6a, 0x7a, 0x70, 0x9b, 0x5a, 0x19, 0x18, 0xef, 0x1b, 0xea, 0x83, 0x53, 0x3c, 0x78, 0x34, 0x73, 0x70, 0x33, 0x56, 0xf5, 0xbe, 0xea, 0x7f, 0xd1, 0x8a, 0xc4, 0x4e, 0xc6, 0x89, 0x04, 0x95, 0xed, 0x17, 0x0d, 0x03, 0xf1, 0x5b, 0x41, 0x86, 0x08, 0xa7, 0xd9, 0xef, 0xd5, 0x2f, 0xa1, 0x09, 0x18, 0x63, 0x80, 0x51, 0xc4, 0x48, 0xd9, 0x8d, 0x57, 0x24, 0xf5, 0x67, 0xc8, 0xc6, 0x7f, 0xd5, 0xb6, 0xec, 0x8c, 0x3d, 0x63, 0x60, 0x08, 0xb9, 0xba, 0xe5, 0xe8, 0xb1, 0xe9, 0x84, 0xf8, 0xff, 0xb8, 0xb6, 0x4b, 0xee, 0xbd, 0x63, 0x45, 0xa1, 0x05, 0xc1, 0xc1, 0x08, 0x31, 0x32, 0xfd, 0x45, 0x08, 0xd6, 0xac, 0x0d, 0x4e, 0x91, 0x45, 0x50, 0x12, 0x10, 0xe5, 0x17, 0xd9, 0xb2, 0x24, 0x78, 0xe2, 0x15, 0xb6, 0x02, 0x59, 0x9f, 0x80, 0x37, 0x62, 0xdc, 0xd5, 0xa4, 0x09, 0xb3, 0x46, 0x0e, 0x7f, 0x34, 0x0f, 0x47, 0xef, 0x77, 0x28, 0x1a, 0xd2, 0x38, 0x3d, 0xe0, 0x8c, 0x5b, 0x80, 0x95, 0x38, 0xaa, 0xec, 0x92, 0x2b, 0xfc, 0xa0, 0xd6, 0x75, 0x2f, 0x14, 0x79, 0x72, 0x64, 0x6d, 0x0a, 0x8d, 0x83, 0x40, 0x77, 0x2c, 0x87, 0x1d, 0x3b, 0x34, 0xab, 0xc0, 0x60, 0x37, 0xde, 0x3a, 0xb4, 0xe3, 0x71, 0x29, 0x86, 0x5d, 0x5b, 0xa7, 0x0b, 0x6f, 0x3c, 0xc9, 0xa0, 0x59, 0xef, 0xb7, 0xdd, 0xdc, 0x38, 0x82, 0xf4, 0xfc, 0xfe, 0x13, 0xf4, 0x48, 0xc9, 0xbc, 0x66, 0x48, 0x88, 0x58, 0x96, 0x03, 0xba, 0x98, 0x68, 0x3a, 0x93, 0xb4, 0xb3, 0xb1, 0x01, 0x49, 0x92, 0xa5, 0x5c, 0x8e, 0x4e, 0xa1, 0xba, 0xf9, 0xcc, 0x00, 0xd1, 0xba, 0xdf, 0xf5, 0xfd, 0x7f, 0x5d, 0xa5, 0xe3, 0x07, 0xfb, 0xd1, 0xb4, 0xc9, 0x84, 0xe0, 0xfa, 0x0e, 0xde, 0xc5, 0xd3, 0x0b, 0xfe, 0xf5, 0xf4, 0x77, 0x30, 0x12, 0x63, 0xb5, 0xd7, 0x52, 0x00, 0x1b, 0x85, 0xdd, 0x52, 0xdf, 0x3b, 0x4a, 0x7a, 0xc2, 0x3b, 0x93, 0x0a, 0x91, 0xc0, 0xa4, 0x57, 0x65, 0xa6, 0x64, 0x88, 0xd8, 0xeb, 0x59, 0x01, 0x85, 0x70, 0x60, 0x06, 0x7b, 0x82, 0x37, 0x81, 0x88, 0x54, 0x92, 0x88, 0xdd, 0xc6, 0x18, 0x31, 0xe5, 0xb6, 0x84, 0x1b, 0x34, 0x4c, 0xae, 0x22, 0x50, 0x04, 0x22, 0x19, 0xcf, 0xb4, 0xac, 0xe0, 0x23, 0xe6, 0x91, 0xf9, 0xe4, 0x8d, 0x00, 0x6e, 0x9a, 0x07, 0xc6, 0x7d, 0x24, 0x68, 0xf9, 0x35, 0x93, 0xb4, 0xaf, 0xc1, 0x61, 0xc0, 0x76, 0x8b, 0x6c, 0xeb, 0x74, 0x4c, 0x24, 0xc9, 0x23, 0xda, 0x34, 0xaf, 0x3d, 0x5e, 0xd5, 0x77, 0xcc, 0x7f, 0x85, 0xd4, 0x91, 0x56, 0x0f, 0x4c, 0x0b, 0xcb, 0xcd, 0x1d, 0x5e, 0x34, 0x21, 0xbd, 0x1c, 0xcf, 0xaf, 0xb3, 0x73, 0xd6, 0x51, 0xbd, 0x61, 0xed, 0x71, 0xc0, 0x9e, 0x99, 0xf6, 0x12, 0x00, 0x17, 0x04, 0xd0, 0xc6, 0x30, 0xd8, 0x54, 0x7b, 0xd9, 0x70, 0xb6, 0x6e, 0x7f, 0x5c, 0xe7, 0xa0, 0x14, 0xe0, 0xff, 0x5a, 0x33, 0x7d, 0xc5, 0xc5, 0x6a, 0x99, 0xf1, 0x31, 0xb9, 0x12, 0x91, 0x40, 0xee, 0xea, 0x39, 0x39, 0x7c, 0x48, 0xca, 0xa9, 0xa8, 0x08, 0x6f, 0x9f, 0xd9, 0x91, 0x50, 0xbe, 0x7e, 0xf8, 0x7b, 0x6d, 0x4b, 0x94, 0xb1, 0xbd, 0x52, 0x87, 0x8b, 0xf3, 0xbb, 0xfc, 0xce, 0xac, 0xc2, 0xcc, 0x45, 0xe8, 0x97, 0x1c, 0x3a, 0x4d, 0x4a, 0x3e, 0xb8, 0x6a, 0xf9, 0x87, 0x4d, 0x4f, 0xa5, 0xe7, 0xca, 0xa7, 0xf4, 0x5d, 0x15, 0x53, 0xff, 0xbb, 0x41, 0x64, 0x5b, 0xf0, 0xf5, 0xe9, 0xb2, 0x97, 0x72, 0xe3, 0xdc, 0x08, 0x1b, 0x25, 0xb5, 0x2e, 0x1c, 0xb7, 0xe2, 0x16, 0x74, 0x83, 0xd5, 0x4f, 0xba, 0x69, 0x0d, 0xdb, 0x29, 0xd5, 0x46, 0x2d, 0x2a, 0x27, 0xa3, 0x5d, 0x85, 0xf0, 0x07, 0xad, 0xed, 0xe2, 0xa3, 0xdd, 0x72, 0x81, 0xf6, 0x54, 0x33, 0x6a, 0xfa, 0xfb, 0x73, 0x70, 0x78, 0x2b, 0x29, 0xca, 0xd6, 0x43, 0xd9, 0xd9, 0xdb, 0x2f, 0x05, 0xf2, 0x81, 0xb5, 0x3e, 0x13, 0x3e, 0xc3, 0x0e, 0xec, 0x09, 0xfb, 0x0d, 0x06, 0x1b, 0x74, 0x58, 0x1a, 0x2b, 0xd2, 0x79, 0x0b, 0x13, 0x73, 0x91, 0xf1, 0x93, 0x28, 0x88, 0x0f, 0x64, 0xc5, 0x3b, 0xe7, 0x00, 0xd0, 0xfa, 0xdd, 0xb7, 0x0d, 0xc1, 0x65, 0xd2, 0xd6, 0x2e, 0x67, 0x1e, 0xb9, 0x44, 0x9a, 0x2e, 0x6e, 0x9d, 0xf2, 0xc1, 0x6d, 0x8f, 0x49, 0xfa, 0x4b, 0x5b, 0x84, 0x30, 0x9f, 0x73, 0x35, 0x13, 0x3d, 0xbe, 0x87, 0x2c, 0x5a, 0x8f, 0xdc, 0xfb, 0xc4, 0x98, 0x0a, 0xbf, 0xb3, 0xc9, 0x59, 0x7d, 0x5d, 0x66, 0x7a, 0xd2, 0xf6, 0x88, 0xc7, 0xab, 0x24, 0xc9, 0xe4, 0x40, 0x29, 0x8d, 0x72, 0xb2, 0x8b, 0x0f, 0xcd, 0xe9, 0xc6, 0xf0, 0x71, 0xbc, 0xcc, 0x93, 0xe8, 0xdd, 0xbb, 0xa7, 0xb6, 0x0a, 0x0b, 0x54, 0x4a, 0x2e, 0x06, 0xc3, 0x9c, 0x67, 0x23, 0xd4, 0xf7, 0xdc, 0x18, 0x5c, 0x21, 0x13, 0x5f, 0xd1, 0x3a, 0x72, 0x77, 0x0b, 0x97, 0x61, 0x19, 0xe4, 0x9a, 0x1f, 0x81, 0xed, 0x47, 0x6b, 0xe0, 0x7c, 0x44, 0x3d, 0xe0, 0xb0, 0xee, 0x76, 0xfb, 0xd9, 0x19, 0x38, 0x93, 0x28, 0xb3, 0xeb, 0x86, 0x07, 0xbc, 0x2f, 0xe3, 0x8f, 0x85, 0x74, 0x5e, 0x28, 0xad, 0xb7, 0x48, 0x2b, 0x70, 0x1c, 0xcc, 0x66, 0x90, 0xe4, 0xae, 0x5a, 0x93, 0x32, 0xea, 0x44, 0x61, 0x31, 0x79, 0x38, 0x7d, 0xc6, 0xfc, 0x47, 0xc1, 0xd1, 0xec, 0x36, 0x60, 0x35, 0xe9, 0x91, 0xe1, 0x40, 0x43, 0x23, 0xbd, 0xbb, 0xf5, 0x35, 0xf1, 0xc3, 0x3c, 0xf5, 0x7b, 0x67, 0x23, 0xf1, 0x3c, 0xa6, 0xca, 0x32, 0x9e, 0x2a, 0xaa, 0x4b, 0x46, 0xb4, 0x26, 0x07, 0x33, 0x99, 0x06, 0xc7, 0xef, 0x49, 0xb3, 0x2d, 0xb8, 0x2c, 0xdf, 0x6a, 0x87, 0xad, };
20285 static const u8 ed25519_882_test_vectors_expected_sig[] = {
20286 	0x31, 0x04, 0x8d, 0x33, 0x4a, 0xf0, 0x5a, 0x4f, 0x27, 0x5f, 0xf8, 0x27, 0x54, 0x4e, 0xa2, 0x96, 0xa4, 0xa7, 0x75, 0xfa, 0x59, 0xef, 0xa0, 0x00, 0xc5, 0x76, 0x13, 0xfa, 0x6e, 0x5c, 0x49, 0x3c, 0x3a, 0x9b, 0x79, 0xe8, 0xce, 0x56, 0xe7, 0x22, 0x5b, 0x0f, 0xa3, 0x26, 0x20, 0x4f, 0x03, 0x36, 0xc2, 0x13, 0x53, 0x5a, 0xe5, 0x89, 0x17, 0x7a, 0x8e, 0xae, 0xdb, 0x6d, 0xf8, 0xb2, 0x02, 0x03, };
20287 static const ec_test_case ed25519_882_test_case = {
20288 	.name = "EDDSA25519-SHA512/wei25519 882",
20289 	.ec_str_p = &wei25519_str_params,
20290 	.priv_key = ed25519_882_test_vectors_priv_key,
20291 	.priv_key_len = sizeof(ed25519_882_test_vectors_priv_key),
20292 	.nn_random = NULL,
20293 	.hash_type = SHA512,
20294 	.msg = (const char *)ed25519_882_test_vectors_message,
20295 	.msglen = sizeof(ed25519_882_test_vectors_message),
20296 	.sig_type = EDDSA25519,
20297 	.exp_sig = ed25519_882_test_vectors_expected_sig,
20298 	.exp_siglen = sizeof(ed25519_882_test_vectors_expected_sig),
20299 	.adata = NULL,
20300 	.adata_len = 0
20301 };
20302 
20303 /************************************************/
20304 static const u8 ed25519_883_test_vectors_priv_key[] = {
20305 	0x21, 0x7e, 0xcd, 0x6a, 0x7f, 0xcc, 0x98, 0x71, 0x92, 0x10, 0xc3, 0x4c, 0xc2, 0xe1, 0x4f, 0x5e, 0x2d, 0x6b, 0x5a, 0x22, 0xf2, 0x68, 0xc1, 0x4b, 0xc4, 0xd8, 0xa7, 0xf2, 0x81, 0x72, 0x00, 0xc3, };
20306 static const u8 ed25519_883_test_vectors_message[] = {
20307 	0x9b, 0x53, 0x37, 0xe7, 0x8f, 0xb3, 0x82, 0xf2, 0x2e, 0xa6, 0x0e, 0x03, 0xc0, 0xbf, 0x3e, 0xe4, 0x70, 0x0b, 0x69, 0x78, 0xa9, 0x1e, 0xe6, 0xac, 0xdf, 0x6a, 0x40, 0x9e, 0x49, 0x18, 0xd1, 0x68, 0x48, 0x81, 0xfa, 0x1d, 0x11, 0x8c, 0x08, 0xc9, 0xf6, 0xf2, 0xca, 0x0c, 0xab, 0x56, 0x74, 0x02, 0xc9, 0x50, 0x10, 0xe7, 0xab, 0xdf, 0xe8, 0x48, 0xae, 0x79, 0xba, 0x24, 0x9a, 0xdc, 0xb9, 0x6e, 0xae, 0x1d, 0xfa, 0x08, 0x43, 0x95, 0x21, 0x39, 0xcf, 0x49, 0xb5, 0x88, 0x64, 0x78, 0x95, 0x69, 0x1a, 0x2e, 0x98, 0x80, 0x46, 0x6b, 0x7e, 0x77, 0xe5, 0x4f, 0x6f, 0x60, 0x81, 0x5e, 0xbf, 0xd5, 0xe5, 0x74, 0x8f, 0x41, 0x3c, 0x0e, 0x15, 0xf9, 0xd5, 0x76, 0x79, 0x9b, 0xcf, 0x31, 0x28, 0x47, 0x10, 0x63, 0x6f, 0x6e, 0x9d, 0xc7, 0x87, 0x85, 0x00, 0x79, 0x6e, 0xed, 0x80, 0xc8, 0xaf, 0x4b, 0xe2, 0x96, 0x19, 0x52, 0xea, 0x80, 0xbb, 0xed, 0x14, 0x04, 0xbd, 0x5d, 0xae, 0x9e, 0x6d, 0x05, 0xfd, 0x4f, 0x32, 0x5a, 0x3b, 0x83, 0xcd, 0x45, 0x28, 0xa0, 0x86, 0x9c, 0xef, 0x84, 0xb4, 0xd3, 0x0e, 0x02, 0xf9, 0x41, 0xd7, 0x49, 0xa8, 0xda, 0xc9, 0x7b, 0xb3, 0xfa, 0x83, 0x9d, 0x25, 0x73, 0x9b, 0x97, 0xec, 0x37, 0x45, 0x36, 0xbd, 0xea, 0x50, 0x04, 0x84, 0xa9, 0x41, 0xdb, 0x9f, 0x22, 0x99, 0x97, 0x06, 0x58, 0xd4, 0x11, 0x48, 0x29, 0x5c, 0xa0, 0x84, 0x6c, 0xa2, 0x36, 0x62, 0x38, 0xb6, 0x20, 0x1a, 0x48, 0xb3, 0xe4, 0x47, 0xed, 0xbe, 0xa7, 0xa4, 0xc8, 0xf7, 0x10, 0x20, 0x14, 0x27, 0x69, 0xe1, 0x5f, 0xa7, 0x2a, 0xe5, 0xf2, 0x87, 0x14, 0x0b, 0xc5, 0x95, 0x3b, 0x8a, 0x9a, 0x24, 0x2d, 0x20, 0x5f, 0xc0, 0x19, 0x09, 0x1f, 0x2a, 0xbe, 0xd0, 0xfd, 0xa4, 0x7f, 0x52, 0xd5, 0x9a, 0x02, 0x04, 0xce, 0x74, 0x01, 0xc1, 0x82, 0x9b, 0x58, 0x57, 0xb9, 0xa0, 0x91, 0x6f, 0xce, 0xbe, 0x2e, 0xef, 0x99, 0x1c, 0x41, 0x3a, 0xcd, 0x71, 0xb1, 0x8d, 0x85, 0x90, 0xd6, 0xb6, 0xd0, 0xfb, 0x39, 0x94, 0x30, 0x26, 0x78, 0xc2, 0x9f, 0x2b, 0x6a, 0x53, 0x02, 0x3f, 0x91, 0x87, 0xe4, 0x6c, 0x36, 0x79, 0x0b, 0xce, 0x73, 0x87, 0x3c, 0x54, 0x5a, 0x72, 0xbe, 0xb5, 0x53, 0x29, 0x4b, 0x1e, 0xe5, 0xd0, 0xd0, 0xdf, 0xf2, 0x39, 0xe2, 0x8e, 0xc6, 0x3b, 0x01, 0xe4, 0xd8, 0xfe, 0x0d, 0x6e, 0x69, 0xb1, 0x60, 0x1e, 0xfa, 0x24, 0x11, 0xf0, 0xc0, 0x60, 0x1e, 0x7e, 0x4f, 0x65, 0xc9, 0x84, 0xf8, 0x29, 0xf0, 0xdc, 0x2a, 0x84, 0x21, 0xe7, 0xf6, 0x6d, 0x93, 0x30, 0x53, 0x71, 0x51, 0xc7, 0x24, 0x3c, 0xa5, 0x24, 0xd7, 0xa5, 0x47, 0x35, 0xc6, 0xe3, 0x44, 0xf1, 0xfc, 0x93, 0x8e, 0xae, 0xea, 0x27, 0x79, 0xc9, 0x40, 0x89, 0x1d, 0x6d, 0x01, 0xaa, 0x55, 0xf4, 0x0c, 0xc1, 0xad, 0xba, 0x12, 0xe8, 0xa6, 0x7a, 0xd9, 0xa2, 0x7f, 0xe6, 0x3f, 0xb4, 0xf3, 0x8d, 0xc0, 0xf0, 0x18, 0x41, 0x92, 0x57, 0x18, 0x42, 0x72, 0x55, 0xbd, 0x66, 0x5d, 0x5e, 0xb3, 0xbc, 0x86, 0x98, 0x96, 0xdb, 0x86, 0x25, 0x20, 0x4a, 0xd4, 0xb0, 0x2f, 0x5a, 0x22, 0xaa, 0xee, 0xad, 0x6e, 0x30, 0x04, 0x71, 0xfe, 0xa6, 0x1d, 0xbb, 0x1b, 0x55, 0xc0, 0x71, 0x36, 0x5c, 0x58, 0xb1, 0x51, 0x1f, 0x38, 0xb0, 0x9a, 0x46, 0x71, 0xbd, 0x66, 0xb3, 0xfe, 0xdd, 0xa9, 0xc8, 0x7e, 0x43, 0xd1, 0xeb, 0xf3, 0x01, 0x76, 0x4e, 0x18, 0xfc, 0x0c, 0xf1, 0x6b, 0x2d, 0x2d, 0x67, 0xed, 0x23, 0x9b, 0x39, 0x3a, 0xc7, 0x19, 0x68, 0xa9, 0x03, 0xc0, 0x24, 0x77, 0xfb, 0x2d, 0xf9, 0xef, 0x01, 0xdb, 0xfc, 0x31, 0x67, 0xde, 0x72, 0x65, 0xf8, 0x91, 0xe4, 0xfd, 0x24, 0xd0, 0x2c, 0x63, 0x10, 0x35, 0x19, 0xb8, 0x6a, 0x70, 0x85, 0xb1, 0xec, 0x2f, 0xb4, 0x19, 0xdb, 0x76, 0x6b, 0xee, 0x7a, 0x64, 0x1a, 0x4b, 0xe4, 0x29, 0x61, 0x4a, 0xb8, 0x9f, 0x20, 0xf9, 0x75, 0x34, 0x10, 0x72, 0xbf, 0x04, 0x41, 0x9f, 0xb6, 0x9b, 0xe7, 0xa9, 0xee, 0x71, 0xa5, 0xb4, 0x9a, 0xf8, 0x3e, 0xd3, 0x22, 0xba, 0xc6, 0x8a, 0x42, 0x9f, 0xf5, 0xc5, 0x20, 0x67, 0x73, 0xbe, 0x54, 0x38, 0xb6, 0x5e, 0x53, 0xf6, 0x09, 0x72, 0x9f, 0x4f, 0x6a, 0x21, 0xc1, 0x33, 0x39, 0x11, 0x26, 0x4d, 0x63, 0x92, 0x70, 0x17, 0xe8, 0x13, 0x6b, 0x47, 0x25, 0xcd, 0x1c, 0xc9, 0x64, 0xe0, 0x8c, 0xa0, 0x93, 0x3a, 0x56, 0x1e, 0x7e, 0x3f, 0x59, 0x87, 0x76, 0x83, 0x30, 0xe2, 0xe5, 0x4f, 0x8d, 0x72, 0x8f, 0x59, 0xed, 0xfe, 0x2c, 0x91, 0xc4, 0xf9, 0x9a, 0xef, 0x97, 0xd1, 0x85, 0x59, 0x19, 0x5a, 0x3d, 0x8e, 0xb3, 0x15, 0xdf, 0xf9, 0x6f, 0xe2, 0x76, 0xda, 0x71, 0x37, 0xef, 0xf9, 0x30, 0x57, 0xac, 0x73, 0x1e, 0x06, 0xa6, 0x0a, 0x58, 0xbd, 0x8a, 0x9a, 0xe8, 0xc7, 0xcb, 0xaf, 0xf0, 0xcb, 0x33, 0x72, 0xc6, 0x8d, 0xaa, 0x17, 0x5c, 0x42, 0x8d, 0x52, 0xf1, 0x07, 0x3a, 0x38, 0xbf, 0x29, 0x46, 0x5d, 0x2a, 0x71, 0x28, 0xbb, 0x40, 0x07, 0x40, 0x06, 0xed, 0xcb, 0x72, 0x5a, 0x83, 0x1d, 0x81, 0x28, 0x64, 0xef, 0x43, 0xf3, 0xb8, 0x66, 0x7c, 0x9f, 0xb7, 0x10, 0x93, 0xa1, 0x67, 0x30, 0x49, 0xde, 0xc0, 0x5e, 0x09, 0x16, 0x9d, 0x86, 0xfe, 0xe9, 0x2d, 0xf2, 0x86, 0x00, 0x8a, 0xd9, 0x90, 0x65, 0xa2, 0x92, 0x97, 0x97, 0xa9, 0x13, 0xd0, 0x23, 0x3f, 0x4d, 0x1a, 0x95, 0xa2, 0x20, 0xbd, 0x91, 0xc1, 0x1d, 0xd9, 0xc4, 0x56, 0x85, 0xdc, 0xad, 0x38, 0x57, 0x80, 0xa0, 0xc4, 0x8b, 0x9c, 0x4a, 0xd2, 0xd6, 0x63, 0x03, 0xe8, 0xde, 0x4a, 0xf1, 0xdb, 0x3c, 0x04, 0xe4, 0xa3, 0xdd, 0x42, 0x19, 0xfe, 0x77, 0x3f, 0x83, 0xa8, 0x92, 0x4b, 0x0f, 0xcb, 0xff, 0xfc, 0xf2, 0x64, 0xab, 0xce, 0x32, 0x83, 0x29, 0x24, 0x03, 0x6b, 0xfa, 0xbb, 0xa6, 0x54, 0x6b, 0x1d, 0xf4, 0xe3, 0xf7, 0x88, 0xed, 0x8a, 0xd5, 0xc2, 0xcd, 0x92, 0xb2, 0x64, 0x1b, 0x47, 0x09, 0x0a, 0x10, 0x3c, 0xf5, 0xbd, 0xc4, 0x6d, 0x8b, 0x21, 0x43, 0x17, 0x47, 0x57, 0xda, 0x80, 0x1c, 0x36, 0x0a, 0x7a, 0xa1, 0x07, 0xfa, 0xc6, 0x54, 0xb3, 0x4c, 0x86, 0x0b, 0xd5, 0x4f, 0x76, 0xbb, 0xf4, 0x3c, 0x48, 0x47, 0x8d, 0xf4, 0xfe, 0x7a, 0xa5, 0x9c, 0xf9, 0x1d, };
20308 static const u8 ed25519_883_test_vectors_expected_sig[] = {
20309 	0xa0, 0xb1, 0x69, 0xe8, 0xe9, 0xce, 0x55, 0x75, 0x55, 0xe0, 0x33, 0x4a, 0x0d, 0xe7, 0x43, 0x8e, 0x55, 0x36, 0x75, 0x48, 0x9e, 0xa4, 0xba, 0x9c, 0xc6, 0x3a, 0x23, 0x4d, 0x00, 0xde, 0xd8, 0xab, 0x69, 0x67, 0xa3, 0xbe, 0x90, 0xef, 0x69, 0xe0, 0x76, 0xdb, 0x9e, 0xa3, 0xd5, 0xca, 0x23, 0xb3, 0x24, 0x8d, 0xd2, 0x59, 0x91, 0xee, 0x1f, 0x4d, 0x80, 0x62, 0x0b, 0xf4, 0xdb, 0x43, 0x8f, 0x0e, };
20310 static const ec_test_case ed25519_883_test_case = {
20311 	.name = "EDDSA25519-SHA512/wei25519 883",
20312 	.ec_str_p = &wei25519_str_params,
20313 	.priv_key = ed25519_883_test_vectors_priv_key,
20314 	.priv_key_len = sizeof(ed25519_883_test_vectors_priv_key),
20315 	.nn_random = NULL,
20316 	.hash_type = SHA512,
20317 	.msg = (const char *)ed25519_883_test_vectors_message,
20318 	.msglen = sizeof(ed25519_883_test_vectors_message),
20319 	.sig_type = EDDSA25519,
20320 	.exp_sig = ed25519_883_test_vectors_expected_sig,
20321 	.exp_siglen = sizeof(ed25519_883_test_vectors_expected_sig),
20322 	.adata = NULL,
20323 	.adata_len = 0
20324 };
20325 
20326 /************************************************/
20327 static const u8 ed25519_884_test_vectors_priv_key[] = {
20328 	0x08, 0xd1, 0xd0, 0x6f, 0x3e, 0xc2, 0x9e, 0xb5, 0x22, 0x93, 0x90, 0x7b, 0x70, 0x5e, 0xc5, 0x6c, 0x5a, 0xb3, 0x54, 0xfb, 0x78, 0x67, 0x37, 0x73, 0xae, 0x61, 0x25, 0x30, 0x94, 0xb8, 0x9e, 0x82, };
20329 static const u8 ed25519_884_test_vectors_message[] = {
20330 	0x12, 0x0b, 0x35, 0x57, 0x3c, 0x34, 0x91, 0x4b, 0x37, 0x30, 0x51, 0x88, 0x0d, 0xa2, 0x7e, 0xd2, 0x41, 0x37, 0x7f, 0x0e, 0x78, 0x97, 0x2c, 0x98, 0xd0, 0xfa, 0xeb, 0xaa, 0x76, 0x7e, 0xb7, 0xa7, 0xc7, 0xe7, 0xc6, 0xfc, 0x34, 0x05, 0xa4, 0x33, 0x6e, 0xf9, 0x5b, 0xc5, 0xda, 0x92, 0x25, 0xbb, 0xd0, 0x9e, 0x9e, 0x11, 0xf2, 0xa1, 0xbf, 0x14, 0x2a, 0xf4, 0xe8, 0xa0, 0xf9, 0x24, 0xd3, 0x23, 0xdd, 0x5a, 0x49, 0xdf, 0xe5, 0x84, 0xf0, 0x90, 0x43, 0x9c, 0x08, 0xe5, 0x15, 0x11, 0x34, 0x4d, 0x47, 0x0c, 0x62, 0x00, 0xac, 0x7e, 0x7c, 0xa1, 0x50, 0xd0, 0x88, 0xa9, 0x1e, 0x47, 0xc4, 0xc9, 0xff, 0x74, 0xe3, 0x8a, 0x42, 0xa3, 0x32, 0x15, 0x5d, 0x81, 0x52, 0xae, 0x4a, 0xbd, 0x11, 0x61, 0xad, 0xca, 0x93, 0x4c, 0x23, 0x4c, 0xe4, 0x60, 0xaf, 0x87, 0x89, 0xe5, 0x3f, 0x10, 0x9d, 0x7d, 0x31, 0xee, 0xde, 0x0a, 0x90, 0x9b, 0xd1, 0x93, 0xfc, 0x8d, 0x3c, 0x2c, 0xfe, 0xc1, 0x0b, 0x14, 0x3c, 0x31, 0x47, 0x67, 0x11, 0xbb, 0xec, 0x27, 0xe1, 0x96, 0xa5, 0x49, 0x85, 0xbc, 0x34, 0x71, 0x67, 0xac, 0xd2, 0x33, 0x50, 0x88, 0x27, 0xba, 0xd3, 0x6e, 0x54, 0x8c, 0x88, 0x06, 0x42, 0xb8, 0x6a, 0x28, 0xc6, 0xd3, 0x40, 0x4b, 0x51, 0x1d, 0xa2, 0x4f, 0x11, 0xdf, 0xaf, 0x6a, 0x8f, 0x46, 0xdd, 0xcb, 0xc9, 0xde, 0x9e, 0x39, 0x15, 0x97, 0x66, 0x9b, 0xdd, 0xfc, 0xa6, 0x56, 0x0f, 0x91, 0xac, 0xd3, 0x45, 0x9f, 0x32, 0x9b, 0xb0, 0x71, 0xdd, 0x80, 0xda, 0xdf, 0x35, 0xf0, 0xe5, 0x0d, 0xf5, 0xb1, 0x0f, 0x88, 0xd2, 0x67, 0xac, 0x9d, 0x30, 0x62, 0x33, 0x0d, 0xd9, 0x9a, 0x6b, 0xcf, 0xa1, 0x31, 0x87, 0xf4, 0x5c, 0x0c, 0x21, 0x4d, 0xcd, 0xe2, 0xcd, 0xf9, 0xc3, 0xba, 0x4d, 0x59, 0xe6, 0x33, 0xa3, 0x54, 0xa4, 0xe2, 0x77, 0xc6, 0x77, 0xbb, 0xdf, 0xa2, 0x41, 0x91, 0x17, 0x9c, 0xbc, 0xaf, 0x05, 0xa1, 0x0d, 0x40, 0x78, 0xd8, 0xad, 0xd9, 0x3b, 0xc9, 0xed, 0x8f, 0x6c, 0x6c, 0x49, 0x97, 0x57, 0x40, 0x36, 0x55, 0x34, 0x1f, 0x90, 0x4e, 0x37, 0xd9, 0x27, 0x75, 0x0c, 0x69, 0x9c, 0x26, 0x9d, 0xc9, 0x0d, 0xc2, 0x6d, 0x00, 0x56, 0x25, 0xc3, 0xf4, 0x12, 0x4b, 0xff, 0x66, 0xfe, 0xca, 0x59, 0xd4, 0xab, 0xff, 0x41, 0x72, 0xba, 0x3d, 0xf4, 0x5a, 0x87, 0x43, 0x02, 0x23, 0x10, 0x30, 0xfa, 0x78, 0x33, 0x84, 0xf5, 0x09, 0x99, 0xe3, 0xc4, 0xba, 0xa5, 0xea, 0xdb, 0x45, 0x14, 0x52, 0xc8, 0x88, 0xb5, 0x19, 0x27, 0x2e, 0x90, 0xf7, 0x3c, 0x68, 0x72, 0x76, 0x8e, 0x0d, 0xe2, 0x0e, 0xe2, 0xe5, 0xf9, 0x50, 0x2f, 0x35, 0xe4, 0x9f, 0xec, 0xc2, 0x8b, 0x75, 0x20, 0x18, 0x87, 0xfe, 0xd2, 0x81, 0x8e, 0xff, 0x54, 0x53, 0x98, 0x39, 0x2f, 0x5e, 0x5b, 0x68, 0x76, 0xbc, 0x55, 0x6a, 0xc1, 0x3a, 0x19, 0x03, 0xad, 0xa1, 0xb9, 0xd7, 0x25, 0xb0, 0x4a, 0x14, 0x20, 0x4b, 0x59, 0x9e, 0xc3, 0x3d, 0x62, 0xb7, 0xdc, 0xae, 0xea, 0x8c, 0x52, 0x87, 0x7b, 0x2c, 0xfd, 0xc3, 0x55, 0x8a, 0x91, 0xd2, 0xc9, 0x15, 0x75, 0x00, 0xa3, 0xbb, 0x6d, 0x45, 0x2e, 0x5e, 0x2f, 0xf0, 0x93, 0x29, 0x4f, 0xc4, 0x33, 0xcb, 0xd6, 0x34, 0x65, 0xbb, 0x19, 0x13, 0x07, 0xed, 0x80, 0x1a, 0x15, 0xb8, 0x5d, 0xc2, 0xff, 0x0b, 0xb3, 0x83, 0x12, 0xf8, 0xb8, 0x17, 0xa4, 0x36, 0xd4, 0x22, 0xcf, 0x46, 0x07, 0xc6, 0x4e, 0xe7, 0x03, 0x59, 0x23, 0xdb, 0x6b, 0x96, 0xa3, 0x89, 0x99, 0x10, 0x14, 0x9b, 0x0d, 0xa4, 0xaa, 0x3e, 0x96, 0x68, 0x5d, 0x71, 0x63, 0xaa, 0xcf, 0x9e, 0x61, 0x9d, 0xc6, 0x08, 0x13, 0xce, 0x4f, 0x34, 0x4f, 0x30, 0x79, 0xb4, 0x3f, 0x18, 0x7f, 0xa3, 0x1b, 0xda, 0xcb, 0x9a, 0x1d, 0x77, 0x20, 0xb9, 0x39, 0xd5, 0xbd, 0x24, 0x1b, 0x96, 0xa1, 0x77, 0xd7, 0xb7, 0x76, 0x8f, 0xfe, 0xbf, 0x79, 0x04, 0x4c, 0xd2, 0x95, 0x6d, 0x6f, 0x88, 0xdb, 0x1c, 0x24, 0x3a, 0x10, 0xfe, 0xde, 0x68, 0x14, 0x85, 0x2c, 0xf4, 0x04, 0xb2, 0xcd, 0xcf, 0xa7, 0x74, 0x07, 0x6d, 0xc1, 0x25, 0xc7, 0x0a, 0x57, 0xc6, 0x90, 0x7e, 0x99, 0xaf, 0xe3, 0x96, 0x22, 0xae, 0x11, 0xf5, 0x57, 0xe7, 0xd3, 0x4b, 0x39, 0xaa, 0xaf, 0x45, 0xf8, 0x34, 0x05, 0x8d, 0x2f, 0xe5, 0xf1, 0x5b, 0x5e, 0xb7, 0x0a, 0xc1, 0x5a, 0x90, 0xa3, 0xde, 0x58, 0x50, 0xab, 0x1d, 0xcb, 0x48, 0xb0, 0x6b, 0x6c, 0xca, 0xa4, 0xb4, 0x2f, 0x85, 0x7e, 0x71, 0xec, 0x00, 0xb8, 0xa3, 0xd8, 0x97, 0x4b, 0x0b, 0xea, 0x68, 0xfa, 0x0f, 0x66, 0x55, 0x92, 0x11, 0x5b, 0x4f, 0xa5, 0x55, 0x72, 0xcf, 0x0b, 0x07, 0x38, 0x64, 0x1f, 0xc8, 0x68, 0xd4, 0xa2, 0xe7, 0x14, 0xdb, 0x3a, 0xd7, 0x21, 0x9a, 0x82, 0x3d, 0x54, 0xb7, 0xf7, 0xc2, 0x65, 0x6b, 0xa5, 0xc5, 0xee, 0xbe, 0x35, 0x94, 0xc7, 0xdb, 0x12, 0x29, 0x8c, 0x16, 0x25, 0x1d, 0x98, 0x45, 0xbf, 0x2f, 0x78, 0x00, 0xb4, 0x19, 0x0b, 0x74, 0x6e, 0x21, 0xb0, 0xc1, 0xa5, 0xc4, 0x7a, 0x3d, 0xf9, 0xa0, 0x59, 0xce, 0x09, 0x56, 0x67, 0x4e, 0xb7, 0x03, 0xde, 0xcb, 0x0a, 0x00, 0x45, 0x43, 0x7d, 0xa4, 0xda, 0x10, 0xf2, 0x86, 0xd7, 0x20, 0xd1, 0xb9, 0xdf, 0x05, 0xfb, 0x24, 0x41, 0x5d, 0x68, 0xe0, 0x65, 0x57, 0x0e, 0x6b, 0x31, 0x50, 0x31, 0x42, 0xd0, 0x33, 0x35, 0xa8, 0x07, 0xbd, 0xca, 0x30, 0x89, 0x2e, 0xdb, 0x5f, 0x55, 0xf8, 0x98, 0x9d, 0x9e, 0x64, 0x96, 0x59, 0xc0, 0x74, 0x4c, 0x54, 0x33, 0xbf, 0xb4, 0xde, 0xeb, 0x11, 0xc2, 0x62, 0x6a, 0x86, 0x50, 0xe5, 0x4d, 0x4d, 0x39, 0x8b, 0xa1, 0x9b, 0x64, 0xf6, 0x8b, 0xed, 0x06, 0xd7, 0xfc, 0x40, 0x8f, 0x47, 0x0a, 0xc7, 0x04, 0xe2, 0xac, 0x92, 0x2a, 0xc1, 0x41, 0x1f, 0xee, 0x24, 0x54, 0x3e, 0x56, 0xf2, 0xf5, 0x0b, 0x6b, 0x08, 0x95, 0x3d, 0xc5, 0x6a, 0x7a, 0x75, 0xed, 0xae, 0x43, 0x0a, 0x6d, 0xf2, 0x8a, 0x22, 0x7a, 0xda, 0xc9, 0x1b, 0xa2, 0x6f, 0x0e, 0x19, 0x85, 0x95, 0x32, 0x77, 0x39, 0xcb, 0xa3, 0x03, 0xe9, 0xaa, 0x39, 0x3e, 0xa6, 0x61, 0x8a, 0x84, 0xf8, 0xf5, 0x03, 0xd0, 0x05, 0x6e, 0xe8, 0xd8, 0x7e, 0x37, 0x96, 0xe0, 0x36, 0xcc, 0x51, 0xcc, 0xb7, 0x91, 0xde, 0xb7, 0x95, };
20331 static const u8 ed25519_884_test_vectors_expected_sig[] = {
20332 	0x0b, 0x8e, 0xdc, 0xb8, 0xb1, 0x5a, 0x8c, 0xd0, 0x74, 0xc4, 0x1d, 0xc2, 0xa1, 0xba, 0x29, 0xd9, 0x64, 0x8d, 0x6a, 0xcb, 0xdc, 0x33, 0x83, 0x14, 0x70, 0x7e, 0xca, 0x6f, 0xb4, 0x71, 0x4c, 0x99, 0x54, 0x3b, 0x49, 0x07, 0xb9, 0xf8, 0x5e, 0x57, 0xee, 0xcf, 0xfe, 0x0f, 0x7a, 0x6b, 0x70, 0x73, 0xa8, 0x09, 0x46, 0xf8, 0x08, 0x75, 0x53, 0xf4, 0x68, 0x31, 0x09, 0x27, 0x3a, 0x60, 0x4a, 0x08, };
20333 static const ec_test_case ed25519_884_test_case = {
20334 	.name = "EDDSA25519-SHA512/wei25519 884",
20335 	.ec_str_p = &wei25519_str_params,
20336 	.priv_key = ed25519_884_test_vectors_priv_key,
20337 	.priv_key_len = sizeof(ed25519_884_test_vectors_priv_key),
20338 	.nn_random = NULL,
20339 	.hash_type = SHA512,
20340 	.msg = (const char *)ed25519_884_test_vectors_message,
20341 	.msglen = sizeof(ed25519_884_test_vectors_message),
20342 	.sig_type = EDDSA25519,
20343 	.exp_sig = ed25519_884_test_vectors_expected_sig,
20344 	.exp_siglen = sizeof(ed25519_884_test_vectors_expected_sig),
20345 	.adata = NULL,
20346 	.adata_len = 0
20347 };
20348 
20349 /************************************************/
20350 static const u8 ed25519_885_test_vectors_priv_key[] = {
20351 	0xf0, 0xc8, 0x5c, 0x76, 0xb1, 0x53, 0x2e, 0x89, 0xae, 0xa9, 0x75, 0x15, 0x6d, 0xdd, 0xb1, 0xd3, 0xd0, 0x66, 0xf6, 0x40, 0x9f, 0x84, 0x1b, 0xb4, 0x41, 0x09, 0x22, 0x72, 0x5f, 0x26, 0x9d, 0x86, };
20352 static const u8 ed25519_885_test_vectors_message[] = {
20353 	0xae, 0x2e, 0xb0, 0x18, 0xd4, 0x8d, 0xbd, 0x4f, 0x21, 0x0b, 0x16, 0x77, 0x8b, 0x5b, 0xd2, 0xfd, 0x14, 0xc9, 0x4e, 0x6b, 0xbf, 0x2b, 0x3f, 0xf8, 0x55, 0x18, 0xe5, 0x60, 0xab, 0x8d, 0x3e, 0x72, 0x20, 0x1f, 0x43, 0x34, 0x20, 0xf0, 0x0f, 0x11, 0xbc, 0x78, 0xe0, 0xe9, 0xf3, 0x72, 0x08, 0x75, 0xb2, 0xe9, 0xdc, 0x11, 0xe0, 0x43, 0x25, 0xb8, 0xb3, 0xf0, 0xd4, 0x65, 0xdd, 0xab, 0x21, 0x51, 0x1c, 0x45, 0x7d, 0x6a, 0xca, 0xd8, 0xf2, 0xfd, 0x5f, 0xdc, 0x0d, 0x28, 0x23, 0xfe, 0x6c, 0xaa, 0x66, 0xa1, 0x91, 0xa3, 0xb6, 0x32, 0x6b, 0x32, 0xa1, 0x6b, 0xef, 0xd6, 0x4d, 0x15, 0xb3, 0x61, 0xa4, 0x15, 0x13, 0x64, 0x1b, 0xce, 0xba, 0x26, 0xbf, 0xe9, 0x3b, 0xdf, 0x85, 0x4a, 0x4f, 0x8f, 0x8a, 0x0b, 0x29, 0xf7, 0xe2, 0x82, 0x62, 0xe2, 0xd6, 0xe9, 0x8a, 0xa2, 0x4a, 0xc2, 0x7f, 0x6f, 0x78, 0x83, 0xac, 0x01, 0xa7, 0x4c, 0x40, 0xcc, 0xe9, 0x47, 0xeb, 0xac, 0x70, 0xe9, 0xfe, 0xf2, 0xa1, 0x6e, 0x62, 0x89, 0xe4, 0x68, 0x95, 0x0e, 0x39, 0x1e, 0x9e, 0x24, 0xef, 0x58, 0xe8, 0x8a, 0x44, 0x37, 0x72, 0x69, 0xce, 0xba, 0xfe, 0xd8, 0x98, 0x7d, 0x22, 0x0d, 0xca, 0xe2, 0xd8, 0xb1, 0x26, 0xb6, 0xbf, 0x81, 0x21, 0x67, 0xd0, 0x23, 0xd9, 0xba, 0xac, 0x95, 0x0d, 0x9d, 0xb8, 0xcf, 0x52, 0xde, 0x63, 0x06, 0xbd, 0x48, 0x99, 0x96, 0x10, 0xc0, 0xa4, 0x33, 0xfa, 0x9e, 0x17, 0x71, 0xcb, 0x83, 0x2d, 0x41, 0x97, 0xaa, 0x34, 0x0d, 0xd0, 0xcc, 0xd0, 0x74, 0x4f, 0xc6, 0xb6, 0x2f, 0x90, 0xbd, 0x3e, 0xbb, 0x53, 0x08, 0xca, 0xb5, 0xf9, 0x40, 0xe2, 0x91, 0x64, 0x23, 0xcf, 0x0f, 0x3b, 0xf0, 0x80, 0xc0, 0x6a, 0x94, 0xf0, 0x26, 0x91, 0x04, 0x60, 0xdd, 0xa8, 0x09, 0x37, 0x4e, 0x64, 0x57, 0xf0, 0x64, 0xf1, 0x78, 0xe3, 0x08, 0xe7, 0xa1, 0xb5, 0xaf, 0x4d, 0xef, 0x31, 0x90, 0x07, 0xd0, 0x41, 0x77, 0x8c, 0x3d, 0x6a, 0x41, 0x9f, 0x51, 0xba, 0xdf, 0x87, 0x66, 0x38, 0x79, 0x30, 0x2b, 0x53, 0xff, 0x26, 0x9d, 0xf4, 0x42, 0xd0, 0xe0, 0x5c, 0x95, 0x8d, 0x5b, 0xaa, 0xcc, 0xee, 0xd7, 0xf5, 0xf8, 0xaf, 0xc8, 0x11, 0xc1, 0x89, 0x00, 0xee, 0x3b, 0x0f, 0x61, 0xe5, 0xdc, 0xcf, 0xd5, 0xda, 0xc8, 0x53, 0x32, 0xd3, 0x2e, 0xbb, 0xa3, 0x71, 0xaa, 0x2d, 0x47, 0xa6, 0x06, 0xf5, 0x95, 0x46, 0xe4, 0xbb, 0xb6, 0x05, 0xa7, 0x46, 0x77, 0xb1, 0x9a, 0x0f, 0xe8, 0xe9, 0x5f, 0x9f, 0x77, 0xc0, 0xb8, 0xb7, 0x1d, 0x07, 0xe9, 0x83, 0x00, 0x4d, 0xc2, 0xab, 0x2c, 0xb3, 0x79, 0x3a, 0x32, 0x3c, 0x10, 0x8d, 0xfa, 0x79, 0x70, 0xda, 0x00, 0xdb, 0x19, 0x86, 0x74, 0xbd, 0x34, 0xbf, 0x73, 0x10, 0x76, 0x7f, 0x76, 0xa2, 0x24, 0xe0, 0x7b, 0xdb, 0xc6, 0x2b, 0x9d, 0x07, 0x8c, 0xbc, 0x75, 0x36, 0x7e, 0x2e, 0xba, 0xa2, 0xc5, 0xd2, 0x74, 0xbf, 0x34, 0x27, 0xf2, 0xa0, 0xcc, 0x5d, 0xbe, 0xf0, 0xaf, 0x4e, 0x63, 0xad, 0x88, 0x9e, 0x13, 0x1b, 0x12, 0xbc, 0x8c, 0xa3, 0x2d, 0x82, 0x7f, 0x72, 0x60, 0xb0, 0x44, 0x9d, 0x04, 0x43, 0xfa, 0x28, 0x84, 0x40, 0xef, 0xd1, 0x36, 0x4e, 0x3c, 0x98, 0x49, 0x47, 0x7e, 0x73, 0xee, 0x0b, 0xa4, 0x24, 0x0d, 0x49, 0x2a, 0xf5, 0xce, 0x13, 0xc3, 0x45, 0x61, 0xb4, 0x50, 0x10, 0xc1, 0x09, 0xd8, 0x42, 0xc1, 0xfe, 0xd1, 0xbe, 0x3f, 0xa9, 0xe1, 0x84, 0xaa, 0xa1, 0x40, 0x64, 0xf4, 0x3f, 0x6d, 0xea, 0x0b, 0x65, 0x9c, 0x5b, 0x97, 0x89, 0x3c, 0xf2, 0xa4, 0x33, 0xbc, 0xfb, 0x1d, 0x2a, 0x87, 0xeb, 0x56, 0x4b, 0xd9, 0x09, 0x2c, 0x26, 0x66, 0x70, 0x47, 0x31, 0xf8, 0x3e, 0x56, 0x43, 0x4b, 0x2a, 0x42, 0x99, 0x65, 0x0c, 0x70, 0x60, 0xf9, 0xff, 0x7e, 0x8a, 0xad, 0xcb, 0x45, 0x93, 0xf6, 0x09, 0x18, 0x8d, 0x8b, 0x46, 0x76, 0x46, 0xcf, 0xe9, 0x52, 0x70, 0x06, 0x7a, 0x1d, 0x35, 0xcd, 0x75, 0x9f, 0xe5, 0x81, 0xaf, 0x4e, 0x62, 0x60, 0x2c, 0x02, 0xef, 0x14, 0x74, 0x41, 0x43, 0xeb, 0x42, 0x4f, 0x2d, 0x9f, 0x33, 0xa6, 0x02, 0x88, 0xc1, 0xb2, 0x5f, 0x08, 0xe4, 0xb2, 0xf5, 0xfe, 0xae, 0x06, 0xcb, 0xcc, 0x2b, 0x20, 0x52, 0xbf, 0x38, 0x4e, 0x1a, 0x6f, 0xcd, 0x84, 0x71, 0xce, 0x5e, 0x56, 0x58, 0xd7, 0x7f, 0x40, 0xc3, 0x5c, 0x41, 0x5e, 0x2a, 0x9e, 0x09, 0xfb, 0x58, 0x3b, 0xb7, 0x47, 0x12, 0x58, 0xe7, 0xc8, 0x06, 0xf3, 0xc2, 0x18, 0x22, 0xdd, 0x10, 0xf5, 0x6a, 0x64, 0x0c, 0xdc, 0x00, 0x12, 0x8d, 0x3b, 0xa5, 0x56, 0xba, 0x51, 0xdc, 0xaa, 0xb4, 0x7c, 0x3b, 0xaf, 0x9f, 0x01, 0x97, 0xd3, 0x66, 0x3d, 0xe8, 0xd0, 0x93, 0xe8, 0x31, 0x73, 0x32, 0x5d, 0xef, 0x1e, 0x83, 0xa2, 0xf5, 0xf5, 0xac, 0xf1, 0x2a, 0xe0, 0x9f, 0x3c, 0xe9, 0x6c, 0xd8, 0x88, 0x03, 0x4d, 0xcb, 0xe6, 0x14, 0x7d, 0xc5, 0x99, 0x83, 0x62, 0xa4, 0xbc, 0x40, 0x6d, 0x28, 0x84, 0x6a, 0xb1, 0x50, 0x3c, 0x17, 0xc9, 0x4f, 0x9a, 0xfd, 0x90, 0x3c, 0x9a, 0x58, 0xe1, 0xce, 0xbb, 0x4a, 0xbb, 0x4f, 0xf6, 0xf2, 0xa4, 0x10, 0x24, 0xe0, 0x6d, 0xca, 0xad, 0x14, 0xf5, 0xb7, 0x0c, 0x1b, 0x26, 0xe6, 0x9f, 0x96, 0xec, 0xf1, 0x4b, 0x8d, 0xa3, 0x1c, 0x62, 0x1f, 0x9a, 0xd4, 0xe3, 0x0a, 0xeb, 0x98, 0x23, 0x78, 0x67, 0x1f, 0x7d, 0x1f, 0x2c, 0x4b, 0x57, 0x2c, 0x41, 0xbb, 0x88, 0x30, 0x84, 0x0a, 0xc5, 0xdd, 0xce, 0xd8, 0x81, 0xf8, 0xff, 0xf2, 0x10, 0xc3, 0xc7, 0xf2, 0x36, 0xd8, 0xc5, 0xf2, 0xcf, 0xda, 0xcd, 0xa2, 0x98, 0x93, 0x30, 0x2f, 0xde, 0x15, 0x28, 0x2d, 0xb5, 0x40, 0xcb, 0x54, 0x37, 0x37, 0xdd, 0x77, 0x85, 0x25, 0x69, 0x22, 0x1f, 0xdd, 0xcd, 0xd6, 0x8d, 0x87, 0xe2, 0x40, 0x21, 0x79, 0xd3, 0xa5, 0xa7, 0x77, 0x34, 0xc2, 0x75, 0xa1, 0xd5, 0x60, 0xa4, 0x62, 0xf4, 0x03, 0x18, 0xbb, 0x68, 0x19, 0x83, 0x7d, 0xa3, 0xd3, 0x05, 0xeb, 0x49, 0xb3, 0x86, 0x50, 0xef, 0xdc, 0x8f, 0xe4, 0x09, 0xd4, 0x0f, 0xb9, 0x4c, 0xd5, 0xdc, 0x3e, 0xb0, 0x27, 0x38, 0xf3, 0x88, 0x52, 0xf6, 0x71, 0xa0, 0xc4, 0x14, 0x14, 0xb7, 0x6f, 0xb4, 0x36, 0xf3, 0x41, 0x7b, 0x8e, 0xf3, 0x00, 0x92, 0x1c, 0x00, 0x9e, 0xbb, 0xd7, 0xcf, 0x8e, 0x11, };
20354 static const u8 ed25519_885_test_vectors_expected_sig[] = {
20355 	0x42, 0x18, 0xfe, 0x4c, 0x1d, 0xce, 0x79, 0x5c, 0xa9, 0x2a, 0x49, 0xa6, 0xf4, 0x79, 0x8e, 0xb5, 0x41, 0x2d, 0xc8, 0x25, 0x86, 0x03, 0x14, 0xec, 0x46, 0x9f, 0xed, 0x45, 0xde, 0x3a, 0x7b, 0xf8, 0xea, 0x55, 0xe8, 0x53, 0xa3, 0x49, 0x58, 0x4b, 0xd9, 0x5a, 0x82, 0x6a, 0x58, 0x5a, 0x50, 0x3f, 0xd5, 0x0b, 0xfe, 0x4c, 0x63, 0x5e, 0xf1, 0x83, 0xd0, 0x73, 0x01, 0x36, 0x7e, 0x90, 0x10, 0x0a, };
20356 static const ec_test_case ed25519_885_test_case = {
20357 	.name = "EDDSA25519-SHA512/wei25519 885",
20358 	.ec_str_p = &wei25519_str_params,
20359 	.priv_key = ed25519_885_test_vectors_priv_key,
20360 	.priv_key_len = sizeof(ed25519_885_test_vectors_priv_key),
20361 	.nn_random = NULL,
20362 	.hash_type = SHA512,
20363 	.msg = (const char *)ed25519_885_test_vectors_message,
20364 	.msglen = sizeof(ed25519_885_test_vectors_message),
20365 	.sig_type = EDDSA25519,
20366 	.exp_sig = ed25519_885_test_vectors_expected_sig,
20367 	.exp_siglen = sizeof(ed25519_885_test_vectors_expected_sig),
20368 	.adata = NULL,
20369 	.adata_len = 0
20370 };
20371 
20372 /************************************************/
20373 static const u8 ed25519_886_test_vectors_priv_key[] = {
20374 	0x18, 0xe2, 0x68, 0xb1, 0x5a, 0x25, 0x01, 0xdd, 0x4c, 0x97, 0x9d, 0xc1, 0x03, 0xca, 0x6a, 0x84, 0x22, 0x16, 0x13, 0x2b, 0x3b, 0x50, 0x81, 0xd7, 0x75, 0xf8, 0x86, 0x40, 0xf8, 0x9c, 0x80, 0x41, };
20375 static const u8 ed25519_886_test_vectors_message[] = {
20376 	0x42, 0x4b, 0xdc, 0xf0, 0xb2, 0x56, 0x00, 0x14, 0x39, 0xd1, 0x69, 0x58, 0xff, 0xf6, 0x48, 0xcf, 0x7a, 0x86, 0x04, 0xaf, 0x22, 0xcf, 0xa5, 0xb4, 0x43, 0x31, 0xb4, 0xdc, 0x35, 0x6d, 0xff, 0x25, 0xcc, 0x05, 0x63, 0xda, 0x9d, 0x64, 0x01, 0x33, 0xac, 0xb7, 0x0b, 0x6a, 0x11, 0x76, 0xc4, 0x82, 0xdb, 0xc9, 0x40, 0x8c, 0xd6, 0x79, 0x3d, 0x56, 0xbc, 0x29, 0xcc, 0x40, 0x88, 0x23, 0xd3, 0x88, 0xed, 0x88, 0xb2, 0x4c, 0xeb, 0x66, 0x21, 0xdb, 0xac, 0x00, 0x23, 0xee, 0x69, 0xf7, 0x6f, 0x82, 0x96, 0xa7, 0x39, 0x52, 0x11, 0x68, 0x5b, 0x3c, 0xea, 0xa9, 0x95, 0xf0, 0x35, 0x5d, 0x9a, 0xad, 0x3d, 0x97, 0x35, 0x8f, 0x4a, 0x37, 0x9e, 0x59, 0x20, 0xec, 0x54, 0x5f, 0x46, 0x96, 0x21, 0xcf, 0x76, 0x8a, 0xbf, 0x55, 0xd2, 0xa5, 0x54, 0xc9, 0x49, 0xb0, 0xed, 0x70, 0x18, 0x7c, 0x22, 0x05, 0xad, 0x03, 0x29, 0x85, 0xc9, 0xb5, 0xb2, 0xe4, 0xba, 0x57, 0xe0, 0xb4, 0xa4, 0x7d, 0x34, 0x45, 0x12, 0xb8, 0x4b, 0xfe, 0x9f, 0x3a, 0xa5, 0x60, 0xfe, 0x6e, 0xcf, 0xc5, 0xbd, 0xf8, 0xc3, 0xb4, 0x18, 0x45, 0x29, 0x35, 0x73, 0xf8, 0x1e, 0xd3, 0xb7, 0x0e, 0xdc, 0x63, 0xa3, 0x0c, 0x70, 0xcd, 0xa3, 0xf4, 0x55, 0x90, 0x13, 0x13, 0xf6, 0xd2, 0x3d, 0xb3, 0x09, 0x47, 0x8f, 0x03, 0xe3, 0x4e, 0x71, 0x35, 0x6d, 0x83, 0xfa, 0x5d, 0xb9, 0x28, 0x0c, 0xc2, 0xb4, 0x36, 0x9c, 0x3d, 0x24, 0xdd, 0x90, 0x38, 0xf2, 0x47, 0x59, 0x6c, 0x39, 0x1e, 0x48, 0xb2, 0xf3, 0xf8, 0x90, 0xa1, 0x41, 0xca, 0x1d, 0x12, 0x07, 0x7c, 0x69, 0x34, 0x47, 0x35, 0xa5, 0x9b, 0x1d, 0xd4, 0x07, 0x6b, 0x22, 0xe1, 0x61, 0x89, 0x99, 0x1e, 0x5f, 0x1b, 0xe4, 0xfb, 0x76, 0x95, 0xaf, 0x90, 0xeb, 0xea, 0x5d, 0xf2, 0x86, 0x13, 0x5c, 0xec, 0x2a, 0x6e, 0x99, 0xaa, 0x1d, 0xda, 0x32, 0x8e, 0x62, 0xc0, 0xdf, 0xb6, 0x37, 0x42, 0x20, 0x2d, 0x63, 0x62, 0x4d, 0xcc, 0x0c, 0x5c, 0xf1, 0xa5, 0xdf, 0x79, 0xe2, 0x87, 0x8d, 0xbc, 0x71, 0xfa, 0x96, 0x57, 0x66, 0x01, 0xaf, 0x22, 0x84, 0x4f, 0x54, 0x57, 0x33, 0x12, 0x6a, 0xf7, 0xd3, 0x98, 0x4c, 0x3e, 0xd2, 0x52, 0xe6, 0xa8, 0x76, 0x44, 0x5c, 0x92, 0x25, 0x9f, 0xbb, 0x47, 0x0a, 0x10, 0x56, 0x9b, 0x49, 0xe5, 0x79, 0x1f, 0xd0, 0x18, 0x2c, 0xfe, 0x1c, 0x3f, 0x88, 0x29, 0x7f, 0xac, 0xc8, 0xc3, 0x1a, 0x53, 0x32, 0xf1, 0xf4, 0xeb, 0x49, 0x58, 0xdb, 0x13, 0xb6, 0xc0, 0x79, 0xaa, 0x9c, 0x94, 0x94, 0x87, 0x26, 0x34, 0x03, 0x19, 0x0c, 0x83, 0xc1, 0x1a, 0x43, 0x19, 0x1f, 0xfe, 0xc6, 0x02, 0x3f, 0xb3, 0x4c, 0xfa, 0xb2, 0x52, 0x5b, 0xeb, 0x54, 0x6c, 0xf9, 0x20, 0x0a, 0x96, 0xf5, 0x85, 0x4b, 0x2f, 0x78, 0xec, 0xb2, 0xd9, 0xa5, 0x3a, 0xa9, 0xd2, 0x87, 0xa9, 0x0d, 0x4d, 0x41, 0x0a, 0x63, 0xad, 0xa0, 0xe9, 0x75, 0xd3, 0x04, 0xd5, 0x14, 0x83, 0x53, 0x46, 0x3f, 0xa8, 0x05, 0xb4, 0x80, 0x5f, 0xb4, 0x68, 0x7e, 0xd8, 0x85, 0x7d, 0xfc, 0xe4, 0xbc, 0x6e, 0x80, 0x83, 0x3c, 0x8f, 0x9a, 0x79, 0xcd, 0x4f, 0x02, 0x9a, 0x2d, 0x80, 0x2b, 0xfd, 0xc8, 0x19, 0xed, 0x0c, 0x0a, 0xc8, 0xf2, 0x10, 0x23, 0x28, 0x7f, 0x2b, 0x4b, 0xaf, 0xbc, 0xc8, 0x99, 0x93, 0xfe, 0x46, 0xd5, 0x2a, 0x9c, 0x62, 0x46, 0xde, 0xad, 0x61, 0x7d, 0xf7, 0x97, 0xd4, 0x8e, 0xe9, 0x85, 0xf0, 0xf0, 0xdf, 0x9a, 0xa8, 0x2e, 0xa2, 0x0e, 0x0d, 0x0d, 0xb2, 0x8a, 0x25, 0x4a, 0x9a, 0x25, 0x3f, 0x39, 0xf9, 0xcf, 0x01, 0xe3, 0xdb, 0x8f, 0x3e, 0xbc, 0xf7, 0xcb, 0x97, 0xce, 0xc5, 0x8c, 0x4e, 0xfe, 0x03, 0x12, 0x69, 0xb4, 0xb3, 0x7e, 0x4c, 0xbb, 0x36, 0x1f, 0x73, 0xab, 0x4b, 0x49, 0x80, 0xbd, 0x90, 0x08, 0x49, 0x53, 0x88, 0x44, 0xc5, 0x2c, 0xb3, 0xac, 0x75, 0x83, 0xb8, 0xf8, 0x96, 0x53, 0xa0, 0xde, 0x65, 0xa8, 0xbe, 0x91, 0x58, 0x2c, 0x55, 0x23, 0x9c, 0xb8, 0xf5, 0xd5, 0x31, 0x8a, 0x88, 0xd1, 0x60, 0xe1, 0xc8, 0x71, 0xe5, 0xea, 0x7e, 0x75, 0xf5, 0xa6, 0x9c, 0xba, 0x85, 0x38, 0x22, 0x1a, 0xb4, 0x2c, 0xe2, 0xa2, 0xc4, 0xd9, 0xc3, 0xb7, 0xec, 0x85, 0x7f, 0x23, 0x0d, 0x57, 0x37, 0x31, 0x13, 0x36, 0x86, 0xae, 0x8a, 0x7e, 0xd6, 0x40, 0xf4, 0x2f, 0x31, 0x02, 0x94, 0x89, 0xe4, 0xe6, 0xaf, 0x2b, 0x3e, 0xa4, 0xc7, 0x94, 0x8e, 0xd5, 0x37, 0xc0, 0xc5, 0x90, 0x67, 0x26, 0xc2, 0xb6, 0x25, 0xfd, 0x5f, 0x94, 0x9e, 0x3a, 0x7c, 0xf3, 0xb6, 0xe9, 0x98, 0xec, 0x76, 0x1d, 0xd6, 0xe2, 0xb5, 0x17, 0x1a, 0x68, 0x74, 0x97, 0x52, 0xe7, 0x21, 0xb7, 0x88, 0xc3, 0x47, 0x7f, 0xa1, 0x90, 0xcd, 0x6e, 0xa8, 0x1d, 0x57, 0x9d, 0xce, 0x64, 0x62, 0xd9, 0xc6, 0x62, 0xad, 0x89, 0x62, 0xe7, 0x93, 0x38, 0x71, 0x0c, 0xc8, 0xd2, 0x73, 0x8a, 0x5f, 0xb0, 0x4a, 0xdf, 0xdb, 0x3f, 0x14, 0x32, 0xcf, 0xd8, 0x0e, 0x2e, 0x96, 0x7d, 0xa0, 0x00, 0xd8, 0x3a, 0x0f, 0xa8, 0x5a, 0xba, 0xe2, 0x95, 0x2f, 0x3f, 0x36, 0x83, 0xe2, 0x54, 0xd8, 0x68, 0xf4, 0xbf, 0x80, 0x9e, 0xb2, 0xe3, 0x00, 0xe7, 0xb2, 0x09, 0x73, 0x4a, 0x3c, 0x89, 0x4e, 0x96, 0x6b, 0x16, 0x08, 0x8d, 0x5e, 0xd3, 0x54, 0xbf, 0xfb, 0xff, 0xbb, 0xf2, 0xec, 0x2b, 0xe9, 0x3a, 0x32, 0xa8, 0xbe, 0x5c, 0xfa, 0x18, 0xfa, 0x56, 0x53, 0x01, 0x2e, 0xda, 0xe5, 0xaf, 0xd8, 0x70, 0x9c, 0xa5, 0x5c, 0x0c, 0xf2, 0x3a, 0x55, 0x0d, 0x34, 0xca, 0x0f, 0x32, 0xd8, 0xf6, 0x66, 0xfb, 0x47, 0xa1, 0x2f, 0x2b, 0x73, 0x53, 0xa4, 0x0c, 0x53, 0x79, 0xf7, 0x53, 0x66, 0xc1, 0x3f, 0x4a, 0xb9, 0xf1, 0x4c, 0xf8, 0x0a, 0x94, 0xe1, 0xf1, 0x3d, 0x8b, 0x09, 0xb7, 0x6f, 0xd8, 0xd1, 0x4f, 0xfa, 0x53, 0x8f, 0x31, 0xfd, 0x8a, 0xeb, 0x49, 0xd3, 0x34, 0x33, 0xf4, 0xdf, 0x7c, 0x2c, 0xa6, 0x73, 0x99, 0x57, 0x9f, 0xe9, 0x90, 0x78, 0xaa, 0x72, 0x1d, 0x6b, 0x6f, 0xc0, 0xc5, 0x0e, 0x8a, 0x91, 0xfc, 0x71, 0xca, 0x25, 0xea, 0xc1, 0x37, 0x6f, 0xc6, 0x71, 0xbf, 0x61, 0x53, 0xe7, 0x20, 0xb2, 0x5c, 0x7e, 0x97, 0xa3, 0xd4, 0xef, 0x84, 0x42, 0xac, 0x67, 0xac, 0xf5, 0x8b, 0x50, 0x4b, 0x67, 0x15, 0x8f, 0x91, 0x30, 0x25, };
20377 static const u8 ed25519_886_test_vectors_expected_sig[] = {
20378 	0xf2, 0xdc, 0xfc, 0x06, 0xef, 0x1d, 0x8e, 0xcc, 0xd8, 0xe4, 0x0b, 0xdf, 0x01, 0x30, 0x7d, 0xd1, 0x96, 0x83, 0xf2, 0x14, 0xd4, 0xf0, 0x84, 0xe6, 0xb6, 0x93, 0x4f, 0x63, 0x72, 0x78, 0x30, 0x0d, 0xbb, 0x18, 0x89, 0xf2, 0xd3, 0x7f, 0x53, 0xb3, 0xae, 0xf2, 0x6f, 0xbb, 0x3e, 0x36, 0xbd, 0x75, 0x98, 0x5f, 0xa7, 0xc8, 0xea, 0x6d, 0xdf, 0xfa, 0x72, 0xc8, 0xe4, 0x06, 0xf2, 0x4b, 0xb2, 0x0e, };
20379 static const ec_test_case ed25519_886_test_case = {
20380 	.name = "EDDSA25519-SHA512/wei25519 886",
20381 	.ec_str_p = &wei25519_str_params,
20382 	.priv_key = ed25519_886_test_vectors_priv_key,
20383 	.priv_key_len = sizeof(ed25519_886_test_vectors_priv_key),
20384 	.nn_random = NULL,
20385 	.hash_type = SHA512,
20386 	.msg = (const char *)ed25519_886_test_vectors_message,
20387 	.msglen = sizeof(ed25519_886_test_vectors_message),
20388 	.sig_type = EDDSA25519,
20389 	.exp_sig = ed25519_886_test_vectors_expected_sig,
20390 	.exp_siglen = sizeof(ed25519_886_test_vectors_expected_sig),
20391 	.adata = NULL,
20392 	.adata_len = 0
20393 };
20394 
20395 /************************************************/
20396 static const u8 ed25519_887_test_vectors_priv_key[] = {
20397 	0x3c, 0x39, 0x3f, 0x9d, 0xf1, 0xfb, 0x0b, 0x1e, 0xec, 0x09, 0xb7, 0xf2, 0x70, 0xb8, 0x59, 0x82, 0xba, 0x0f, 0xd5, 0xe4, 0xb1, 0x79, 0x5e, 0x1a, 0x7f, 0xa9, 0x91, 0x37, 0xfe, 0xe2, 0x4d, 0x7d, };
20398 static const u8 ed25519_887_test_vectors_message[] = {
20399 	0x54, 0xd8, 0xb8, 0xd5, 0xfa, 0xc2, 0x8c, 0xff, 0xa7, 0x7a, 0x09, 0x16, 0xd6, 0x33, 0x3c, 0x16, 0xed, 0xbc, 0x8b, 0xb7, 0x4a, 0xa0, 0x6e, 0x56, 0xdc, 0x00, 0xe4, 0x7e, 0x39, 0x29, 0xe4, 0x08, 0x64, 0xb8, 0x84, 0x0d, 0x91, 0x20, 0x79, 0x59, 0x7e, 0xac, 0xd8, 0x1d, 0xae, 0x43, 0xe2, 0x78, 0x5d, 0xfc, 0x68, 0x9f, 0x3e, 0x85, 0xf8, 0xc6, 0x65, 0x81, 0xef, 0xc5, 0xe8, 0x53, 0xd1, 0xfa, 0xaa, 0xc7, 0x44, 0x40, 0x0a, 0xb0, 0x8c, 0xbd, 0xb5, 0xd1, 0x61, 0x46, 0xfa, 0x60, 0xf9, 0x99, 0x05, 0xed, 0x84, 0xfd, 0x29, 0x36, 0xdd, 0x73, 0xf4, 0xbc, 0xa2, 0x57, 0x2b, 0x7c, 0xf5, 0x16, 0x05, 0x60, 0xff, 0xaa, 0x68, 0xda, 0x7a, 0x67, 0xe4, 0x0e, 0x08, 0xa7, 0xbb, 0x7a, 0xef, 0xc4, 0x04, 0x3e, 0xbe, 0xd5, 0xfe, 0x80, 0xa4, 0x14, 0x81, 0x7e, 0xdf, 0x2c, 0x63, 0xf6, 0x2f, 0xac, 0x0d, 0x47, 0x44, 0x6e, 0xd0, 0xbb, 0x58, 0x40, 0x58, 0xf4, 0x87, 0x2f, 0xec, 0xff, 0x62, 0x15, 0x59, 0x31, 0x1a, 0x27, 0x0a, 0xea, 0x37, 0xa6, 0x29, 0x68, 0x64, 0xe8, 0xd1, 0x68, 0xbf, 0x1e, 0x2f, 0x55, 0xcd, 0x3b, 0x27, 0x6e, 0xdf, 0xa6, 0x12, 0xb5, 0xd9, 0xc3, 0x36, 0x2e, 0x61, 0x8b, 0xe6, 0xe8, 0x2a, 0x6e, 0x5f, 0x82, 0x66, 0x79, 0x24, 0xf3, 0xd1, 0xd3, 0xdf, 0x82, 0x5f, 0x9d, 0x23, 0xf4, 0xd6, 0x14, 0x2d, 0x31, 0x00, 0xdf, 0xc7, 0x0f, 0x70, 0x60, 0x3a, 0xbf, 0x3f, 0xda, 0xda, 0xca, 0x69, 0xef, 0x6a, 0x18, 0xef, 0x90, 0x92, 0xb3, 0xc4, 0x1e, 0xc6, 0x58, 0xab, 0x27, 0x21, 0x6f, 0xc6, 0x14, 0x7a, 0x08, 0x0a, 0xcd, 0xa6, 0x0a, 0x84, 0x19, 0x84, 0xee, 0x83, 0xf4, 0x1a, 0xc4, 0x2a, 0x80, 0xea, 0xac, 0x91, 0xff, 0xfc, 0x82, 0x28, 0x39, 0x1e, 0xf5, 0x83, 0xab, 0x3e, 0xdd, 0xcf, 0x87, 0x65, 0x23, 0xc2, 0x02, 0x81, 0x35, 0x53, 0x00, 0xd8, 0x6c, 0x11, 0xa4, 0xe7, 0xc1, 0xad, 0xe8, 0xe5, 0x05, 0x60, 0xf4, 0x39, 0x06, 0xc9, 0xbc, 0x8c, 0xa5, 0xfb, 0xf8, 0x33, 0x9f, 0xbe, 0xbd, 0x02, 0xe3, 0x3e, 0x85, 0x18, 0xbe, 0xe5, 0xe8, 0x06, 0xb8, 0xc1, 0x0f, 0x82, 0x77, 0xf4, 0x10, 0x66, 0x47, 0x35, 0xa2, 0xbf, 0x55, 0x68, 0x39, 0x63, 0x54, 0x92, 0x45, 0x2e, 0x6c, 0xa0, 0x79, 0xde, 0xb9, 0x75, 0x1c, 0xfc, 0x67, 0x97, 0xf4, 0x9b, 0xca, 0x96, 0x13, 0xff, 0x2e, 0x7f, 0xdd, 0x36, 0x46, 0xf7, 0xc5, 0x23, 0x6a, 0x36, 0xbd, 0xf0, 0x05, 0x17, 0x45, 0xe5, 0x95, 0xdc, 0x00, 0x72, 0xfd, 0x66, 0x51, 0xd5, 0x76, 0x27, 0xa6, 0x00, 0x4c, 0x0f, 0x0c, 0xfa, 0xe8, 0x56, 0xbb, 0xc2, 0x8a, 0x12, 0x31, 0xcb, 0x83, 0x96, 0x65, 0xff, 0x04, 0x15, 0x2e, 0xc3, 0x1c, 0x00, 0x7b, 0x3e, 0x2e, 0xd0, 0xa9, 0x73, 0xb2, 0x4c, 0x93, 0x14, 0x9c, 0xe7, 0x01, 0xe6, 0xfd, 0x65, 0x39, 0x20, 0x6a, 0xe9, 0x1b, 0xec, 0x4c, 0xe6, 0x5a, 0x89, 0xdb, 0x26, 0xc7, 0xd3, 0x8c, 0xec, 0xb8, 0x91, 0x9f, 0x96, 0xfb, 0x6c, 0xb8, 0xf6, 0xc1, 0x93, 0x9d, 0x90, 0xfb, 0x3f, 0x90, 0xb8, 0x87, 0x78, 0x9f, 0x29, 0x57, 0x5a, 0xb2, 0x0e, 0x0b, 0x08, 0xbc, 0x35, 0x81, 0x53, 0xd8, 0xc0, 0x35, 0x21, 0xdc, 0x89, 0x18, 0x70, 0xb5, 0xf7, 0xee, 0xdc, 0xc1, 0xe6, 0x2b, 0xee, 0x7d, 0xa0, 0x63, 0xae, 0x66, 0xff, 0x0a, 0x4b, 0x7d, 0x98, 0xd1, 0xcb, 0x75, 0x8f, 0x69, 0x74, 0x3c, 0x3d, 0xb3, 0xae, 0x2a, 0x2c, 0x9b, 0xe1, 0xbe, 0x09, 0x4f, 0x17, 0xcd, 0x28, 0xf9, 0x2d, 0x8c, 0xcb, 0xca, 0x98, 0x3c, 0x74, 0x9c, 0x75, 0xc6, 0x10, 0xf8, 0x40, 0x83, 0x6e, 0x2c, 0x43, 0x0c, 0xcd, 0xef, 0xf0, 0xaf, 0xa5, 0x44, 0x44, 0xf1, 0x2b, 0x4a, 0x4f, 0x00, 0x2c, 0x60, 0x94, 0x51, 0x83, 0x42, 0x44, 0xc0, 0xc0, 0x7d, 0xf8, 0xe1, 0x22, 0x02, 0xa6, 0x5f, 0x94, 0x44, 0x7c, 0xd4, 0x90, 0x3a, 0xcb, 0x60, 0x6d, 0x77, 0x25, 0xa8, 0x6e, 0x4a, 0x23, 0x43, 0x98, 0x4e, 0x67, 0x9c, 0x4a, 0xf1, 0xb3, 0x67, 0x9c, 0x75, 0x5e, 0xa5, 0x0d, 0x0a, 0xbe, 0x2f, 0xcc, 0x0c, 0x1c, 0x33, 0x51, 0xa9, 0xee, 0x19, 0x6b, 0x46, 0x44, 0xc4, 0x24, 0x22, 0x2b, 0xe9, 0x9e, 0x2f, 0xb3, 0x73, 0xf9, 0x64, 0x1e, 0x3f, 0xae, 0xbf, 0xf4, 0x31, 0x70, 0xeb, 0x03, 0xfb, 0x8e, 0xc4, 0x55, 0x7d, 0x15, 0x1a, 0x55, 0xfa, 0xb6, 0xc4, 0x99, 0xd4, 0x44, 0xc8, 0x4b, 0xe8, 0x9f, 0x24, 0x47, 0x68, 0x2d, 0xe4, 0xe6, 0xf6, 0x35, 0x34, 0x75, 0xef, 0xcb, 0x8f, 0xc5, 0x32, 0x56, 0x76, 0x3a, 0x94, 0x8d, 0xc7, 0x5c, 0x51, 0x5f, 0xa3, 0x53, 0x54, 0x5d, 0x0c, 0xba, 0xd2, 0x9d, 0xf5, 0xe9, 0xdb, 0x5c, 0xc4, 0x57, 0xed, 0x30, 0x86, 0xcf, 0xfb, 0x3d, 0x75, 0xe8, 0x46, 0xc4, 0xe8, 0xd8, 0x81, 0x47, 0xfc, 0xd0, 0xd8, 0xaa, 0x5a, 0xba, 0xb4, 0x9b, 0x5e, 0x05, 0xc3, 0xd7, 0xfe, 0xef, 0x63, 0x79, 0x43, 0x34, 0x7a, 0xd3, 0xf4, 0x92, 0xee, 0x35, 0x6e, 0xf3, 0x48, 0x81, 0xcf, 0xd8, 0x5a, 0xbc, 0xe8, 0xa1, 0x44, 0xce, 0x77, 0x61, 0xe2, 0x84, 0xe8, 0xb8, 0xcb, 0x08, 0x96, 0x60, 0x49, 0x04, 0x7a, 0x99, 0x6e, 0x23, 0x55, 0x9f, 0x77, 0x6b, 0x1a, 0x9f, 0x41, 0xcb, 0xa3, 0x95, 0x41, 0x08, 0x48, 0x6e, 0x29, 0x27, 0xbe, 0xb6, 0x43, 0x3a, 0x36, 0xff, 0x8b, 0x2f, 0x03, 0xaa, 0x74, 0xb3, 0xd2, 0x09, 0xc4, 0x88, 0xe0, 0x77, 0xf9, 0x24, 0xf2, 0x31, 0xe2, 0x83, 0x45, 0x94, 0x2c, 0x7d, 0xcc, 0x2e, 0x61, 0xd7, 0xc9, 0xb5, 0x22, 0xb6, 0x59, 0xfc, 0xb5, 0x36, 0x62, 0xaf, 0xf3, 0x64, 0x8f, 0x66, 0xda, 0x3e, 0x83, 0xe5, 0x9b, 0x0d, 0xaa, 0x90, 0xb9, 0x4c, 0x51, 0x5d, 0xad, 0xab, 0x10, 0xd5, 0xa8, 0x39, 0xcb, 0x3a, 0x2f, 0x1d, 0x3c, 0xd0, 0x92, 0xde, 0x55, 0xd9, 0x95, 0x13, 0x8c, 0x3a, 0xc0, 0xb9, 0x07, 0xaf, 0x15, 0xac, 0x63, 0xec, 0x18, 0x74, 0x11, 0x43, 0x27, 0xe2, 0x19, 0x71, 0x34, 0x5e, 0xf1, 0x70, 0x31, 0xd5, 0x26, 0x17, 0xe7, 0x84, 0xda, 0x37, 0x71, 0x43, 0x9b, 0xe2, 0xe8, 0x41, 0x48, 0xbc, 0xfe, 0xa1, 0x32, 0xbd, 0xe1, 0x0e, 0x6f, 0xda, 0x54, 0x7d, 0xcb, 0xb1, 0xc4, 0xd8, 0xf7, 0x4d, 0xdc, 0xe1, 0xfc, 0xcf, 0x82, 0x13, 0xe0, 0xda, 0x6e, 0x97, 0xb8, 0x1f, 0x75, };
20400 static const u8 ed25519_887_test_vectors_expected_sig[] = {
20401 	0x22, 0x33, 0x3e, 0x56, 0x41, 0x0f, 0xdc, 0xbf, 0x84, 0xf6, 0xa8, 0xde, 0x74, 0x13, 0x37, 0x69, 0x16, 0x84, 0x49, 0x5b, 0xa6, 0x9e, 0xff, 0x59, 0x6d, 0xb9, 0xc0, 0x3a, 0x28, 0x12, 0x10, 0x88, 0x1e, 0x6c, 0x91, 0xef, 0xa9, 0x1b, 0x21, 0x83, 0xc0, 0xea, 0xc9, 0x16, 0x15, 0x28, 0x17, 0xa7, 0x8c, 0xa7, 0x24, 0xba, 0x7c, 0x8b, 0x51, 0xbb, 0x4c, 0xaa, 0xde, 0xa9, 0xa3, 0x41, 0xeb, 0x0e, };
20402 static const ec_test_case ed25519_887_test_case = {
20403 	.name = "EDDSA25519-SHA512/wei25519 887",
20404 	.ec_str_p = &wei25519_str_params,
20405 	.priv_key = ed25519_887_test_vectors_priv_key,
20406 	.priv_key_len = sizeof(ed25519_887_test_vectors_priv_key),
20407 	.nn_random = NULL,
20408 	.hash_type = SHA512,
20409 	.msg = (const char *)ed25519_887_test_vectors_message,
20410 	.msglen = sizeof(ed25519_887_test_vectors_message),
20411 	.sig_type = EDDSA25519,
20412 	.exp_sig = ed25519_887_test_vectors_expected_sig,
20413 	.exp_siglen = sizeof(ed25519_887_test_vectors_expected_sig),
20414 	.adata = NULL,
20415 	.adata_len = 0
20416 };
20417 
20418 /************************************************/
20419 static const u8 ed25519_888_test_vectors_priv_key[] = {
20420 	0xf8, 0x66, 0x9c, 0x88, 0xf1, 0x68, 0x5b, 0xbf, 0x04, 0x80, 0xcc, 0x92, 0x21, 0xac, 0x2e, 0xad, 0x8f, 0x55, 0x1b, 0xfa, 0x87, 0xec, 0xba, 0x2f, 0xd4, 0xdd, 0xf3, 0xba, 0x34, 0x76, 0xeb, 0xda, };
20421 static const u8 ed25519_888_test_vectors_message[] = {
20422 	0x5b, 0x49, 0x41, 0xbe, 0xec, 0x22, 0x41, 0xc9, 0xfb, 0x76, 0xd8, 0x48, 0x4f, 0x4f, 0x3f, 0x3a, 0xb4, 0xff, 0xe8, 0xec, 0xc8, 0xe7, 0xae, 0xc7, 0x6d, 0xe2, 0xab, 0x8c, 0x36, 0x85, 0x84, 0xd7, 0x51, 0xb0, 0xd3, 0xfe, 0xb8, 0xa1, 0xdc, 0x81, 0x68, 0xcd, 0xc6, 0x94, 0x96, 0x8f, 0x66, 0xb2, 0xa0, 0xb0, 0x52, 0xaf, 0xbf, 0x8b, 0xe3, 0xa7, 0xd9, 0x51, 0x63, 0xe9, 0xda, 0x91, 0x41, 0xc5, 0x9c, 0xa5, 0x59, 0x76, 0xc2, 0x92, 0xc5, 0xc7, 0x4d, 0x31, 0x31, 0x8d, 0x6a, 0x91, 0xe7, 0x81, 0x7c, 0x5a, 0x8b, 0x2f, 0x81, 0x21, 0x18, 0xcb, 0xeb, 0xa3, 0xa1, 0x33, 0x23, 0xcd, 0x97, 0x48, 0xbf, 0x86, 0xed, 0x1a, 0x85, 0xdd, 0x4e, 0xbc, 0x0d, 0xf4, 0x95, 0xcf, 0xa3, 0xd4, 0x62, 0x74, 0x34, 0xbf, 0x14, 0xaa, 0xe8, 0xab, 0x67, 0x81, 0x46, 0x7a, 0x56, 0xd9, 0x65, 0xd1, 0x0e, 0x63, 0x71, 0x98, 0x9d, 0xfa, 0x0f, 0x6b, 0xc0, 0xf7, 0x85, 0x9f, 0x37, 0x71, 0xeb, 0x90, 0x04, 0xb3, 0x43, 0x67, 0xdb, 0x27, 0x05, 0xdb, 0xd6, 0x0f, 0xa8, 0xf7, 0x89, 0x5c, 0x1e, 0xad, 0xf5, 0x9f, 0x53, 0xda, 0xb1, 0x68, 0xb4, 0xf9, 0x36, 0x39, 0x79, 0x02, 0x55, 0x01, 0xdd, 0xd9, 0x68, 0x0d, 0xeb, 0xc0, 0x7c, 0xd1, 0xca, 0x4a, 0x09, 0x97, 0x87, 0x6e, 0x92, 0x11, 0xf3, 0x07, 0xd9, 0xb7, 0xb9, 0xd9, 0x04, 0xe4, 0x8d, 0x28, 0x61, 0xa7, 0x78, 0xb8, 0x79, 0xad, 0x59, 0x0a, 0x9a, 0x2f, 0x14, 0x1b, 0xd5, 0x68, 0xe3, 0xa1, 0xbb, 0x24, 0x94, 0x62, 0x8e, 0x9e, 0xc0, 0xc6, 0x42, 0x55, 0xae, 0xea, 0x6f, 0x0e, 0xed, 0xca, 0x30, 0xad, 0x38, 0xa1, 0xf3, 0xff, 0xec, 0x3b, 0x2b, 0x5e, 0x94, 0x2e, 0x21, 0x94, 0x01, 0x04, 0xe9, 0x14, 0xd1, 0x1a, 0x44, 0xc0, 0x0f, 0xdd, 0x47, 0xda, 0x3e, 0x55, 0x13, 0xaa, 0x85, 0x30, 0xae, 0xe2, 0x47, 0xc9, 0x5c, 0xa6, 0x6d, 0x08, 0xa2, 0x60, 0x8c, 0x75, 0xba, 0x98, 0x58, 0xda, 0x14, 0xf9, 0xa8, 0xa3, 0x2b, 0xe7, 0x13, 0xd3, 0x09, 0xe0, 0xf5, 0x84, 0xc8, 0x1e, 0xf5, 0xbe, 0x04, 0x0e, 0x00, 0x65, 0xf0, 0x7b, 0x77, 0x5a, 0xe1, 0x75, 0xdf, 0xe2, 0xc8, 0xb9, 0x0a, 0x88, 0xcc, 0xda, 0x17, 0xfa, 0x4f, 0x21, 0xc7, 0x7e, 0xad, 0xf5, 0xd2, 0x5b, 0x6e, 0x40, 0x4b, 0xf0, 0x04, 0x47, 0x9e, 0x05, 0xa0, 0x1a, 0xc0, 0x04, 0x2b, 0x89, 0x93, 0x7e, 0xb2, 0x78, 0xc1, 0xc3, 0x4f, 0x33, 0x02, 0x8d, 0xb7, 0x80, 0xba, 0x3b, 0x61, 0x79, 0x18, 0x59, 0x5a, 0x39, 0xc0, 0xfc, 0xad, 0x67, 0x4b, 0x85, 0xc4, 0x0c, 0xac, 0x8d, 0x34, 0x5b, 0x7c, 0xa0, 0xbb, 0x48, 0xa2, 0x8e, 0x66, 0xc4, 0x4d, 0x8b, 0xb5, 0xf2, 0x79, 0x41, 0xe4, 0x0b, 0x0e, 0x9c, 0x70, 0x97, 0x97, 0x6c, 0x62, 0xdf, 0xef, 0x50, 0xc9, 0x8f, 0x17, 0x56, 0x6c, 0xcb, 0xac, 0xc8, 0x7c, 0xb0, 0x3b, 0x94, 0xdf, 0xdf, 0xaf, 0x32, 0xf1, 0xe5, 0x6f, 0xfa, 0x63, 0x9d, 0x63, 0x61, 0x1e, 0x21, 0x3c, 0xeb, 0xf5, 0x4c, 0xd0, 0xa3, 0xe2, 0x17, 0x2d, 0x81, 0x1c, 0x0e, 0xbd, 0x75, 0xb1, 0xa8, 0x64, 0x62, 0x64, 0xdd, 0x8b, 0x1a, 0xbd, 0x46, 0xe5, 0x48, 0x97, 0x2a, 0x1b, 0x26, 0x2c, 0xd9, 0x5d, 0x51, 0x15, 0x36, 0xdd, 0xdc, 0xb4, 0x97, 0x29, 0xfe, 0x7b, 0xd0, 0x0b, 0x38, 0x38, 0xbd, 0x2f, 0x20, 0xa1, 0x42, 0x64, 0x0e, 0xdb, 0x1b, 0x6e, 0x76, 0x5b, 0x65, 0xda, 0x72, 0xe7, 0x23, 0x32, 0x61, 0xc8, 0x89, 0x2e, 0x2f, 0x49, 0x49, 0xbb, 0x51, 0xf3, 0x2a, 0x1a, 0x5a, 0x3e, 0xe1, 0x49, 0xbe, 0xa2, 0x6f, 0xdc, 0xed, 0xb9, 0x91, 0xd2, 0xcd, 0x12, 0x66, 0x37, 0xe2, 0x97, 0x1e, 0x9b, 0x6f, 0x0b, 0x78, 0x5d, 0xf2, 0x8a, 0x48, 0xf3, 0x01, 0x70, 0x73, 0x49, 0x42, 0x3f, 0x44, 0xe8, 0x46, 0x22, 0x89, 0xd7, 0x25, 0x49, 0x82, 0x30, 0x48, 0x9d, 0xf1, 0xb5, 0x1b, 0xe3, 0x0f, 0x08, 0xd7, 0xe3, 0x25, 0x05, 0x65, 0xc6, 0xef, 0x82, 0x4b, 0xc5, 0x3a, 0x1b, 0xa7, 0x4a, 0x57, 0xa2, 0x5c, 0x06, 0x86, 0xad, 0xcb, 0x6c, 0x82, 0x5a, 0xb1, 0xca, 0x70, 0xc8, 0xa5, 0xd4, 0x6d, 0xbb, 0xc6, 0xfa, 0x60, 0x74, 0x61, 0xe2, 0x6d, 0x16, 0xfe, 0x93, 0xbb, 0x3d, 0x3a, 0x94, 0x3a, 0x3d, 0xc0, 0x5f, 0x30, 0xea, 0x6d, 0xc8, 0xbb, 0x12, 0xd7, 0x08, 0x21, 0xd3, 0x20, 0xf1, 0xad, 0xf1, 0xce, 0xba, 0x4b, 0xe6, 0x57, 0x19, 0x4f, 0x7f, 0xcc, 0xd2, 0x19, 0x90, 0xf8, 0x62, 0x9d, 0x74, 0x46, 0x01, 0xcf, 0x52, 0xea, 0x6d, 0x94, 0x05, 0xaa, 0xa2, 0x87, 0x8f, 0x1e, 0xec, 0x40, 0x03, 0xb4, 0x5a, 0x42, 0x18, 0xd8, 0xf8, 0x0b, 0xb0, 0xf5, 0xaf, 0x04, 0x73, 0x26, 0x48, 0x77, 0x52, 0xe2, 0xb7, 0x6d, 0x68, 0x87, 0x25, 0x20, 0xbb, 0xea, 0xe7, 0xb3, 0x09, 0xd7, 0x82, 0x82, 0xa0, 0x73, 0xfe, 0x0b, 0x1a, 0x1a, 0x7a, 0x98, 0xda, 0x23, 0xdf, 0x68, 0xca, 0xf8, 0xc2, 0x69, 0x9b, 0x1c, 0x7d, 0x0f, 0x47, 0xbd, 0x7d, 0xe2, 0xc0, 0xbb, 0x23, 0x36, 0x99, 0x63, 0xe6, 0x8a, 0x69, 0x74, 0xc8, 0xe2, 0xb5, 0x95, 0xb8, 0x29, 0x3a, 0x9f, 0x4d, 0x98, 0xdf, 0x7e, 0x9a, 0xe3, 0xad, 0xd2, 0xa3, 0xf6, 0x4e, 0x83, 0x03, 0x97, 0x39, 0x64, 0x2d, 0x19, 0x22, 0x04, 0xe8, 0x5e, 0x6c, 0x48, 0xd5, 0xd6, 0x71, 0xf6, 0xc7, 0x5a, 0x0a, 0x89, 0x57, 0xed, 0xbb, 0x74, 0x18, 0x76, 0x20, 0xf2, 0xab, 0xa9, 0x9c, 0x1c, 0x62, 0x58, 0x4c, 0x59, 0xac, 0x00, 0x64, 0x7e, 0x3f, 0xb4, 0x02, 0x92, 0xb9, 0xdc, 0x1a, 0x33, 0x46, 0x86, 0x85, 0x53, 0x39, 0x2f, 0xd3, 0xf1, 0x1d, 0x6d, 0xc6, 0xf5, 0xf2, 0xf4, 0xe8, 0x5e, 0xe2, 0x51, 0x25, 0xcd, 0xd6, 0x44, 0x74, 0x3c, 0x7d, 0x45, 0x28, 0x1e, 0xda, 0xc6, 0x38, 0x4c, 0x77, 0xcb, 0x98, 0xa6, 0x7d, 0x9a, 0xe6, 0xfc, 0x9a, 0x0a, 0x76, 0xb9, 0xf6, 0xfa, 0x69, 0x6f, 0xdf, 0x4a, 0xce, 0xab, 0x5f, 0x79, 0x4e, 0xe5, 0x21, 0xb1, 0xe5, 0xa0, 0xee, 0x57, 0xaf, 0x53, 0xbd, 0xf1, 0x76, 0x80, 0x1b, 0x4f, 0x45, 0xcf, 0xb3, 0xca, 0xe3, 0x28, 0x72, 0x34, 0x23, 0x4b, 0x77, 0xce, 0x21, 0xed, 0xf8, 0x68, 0x0d, 0x68, 0xc4, 0xa8, 0xee, 0xcf, 0x1b, 0x03, 0x53, 0x7e, 0xa5, 0x69, 0x9a, 0xcb, 0x56, 0x27, 0x77, 0xe4, 0x2a, 0x48, 0x6f, 0xe7, 0xcd, };
20423 static const u8 ed25519_888_test_vectors_expected_sig[] = {
20424 	0x37, 0x46, 0xda, 0x6c, 0xd8, 0xca, 0x10, 0x8b, 0xee, 0xf0, 0x64, 0x87, 0xbe, 0xe6, 0x35, 0x84, 0xf8, 0x12, 0xc8, 0xe0, 0x69, 0x5f, 0xc8, 0x63, 0xb8, 0x6e, 0x5d, 0xb1, 0x32, 0x38, 0x0b, 0x62, 0xff, 0x85, 0x44, 0xf6, 0xf3, 0x74, 0x82, 0x5b, 0x0e, 0x3e, 0xa0, 0x62, 0x0e, 0xf8, 0x54, 0xc1, 0x33, 0x11, 0x14, 0xd6, 0x67, 0xdf, 0x1f, 0x9e, 0xa7, 0x76, 0xc3, 0x96, 0x38, 0x70, 0x29, 0x0d, };
20425 static const ec_test_case ed25519_888_test_case = {
20426 	.name = "EDDSA25519-SHA512/wei25519 888",
20427 	.ec_str_p = &wei25519_str_params,
20428 	.priv_key = ed25519_888_test_vectors_priv_key,
20429 	.priv_key_len = sizeof(ed25519_888_test_vectors_priv_key),
20430 	.nn_random = NULL,
20431 	.hash_type = SHA512,
20432 	.msg = (const char *)ed25519_888_test_vectors_message,
20433 	.msglen = sizeof(ed25519_888_test_vectors_message),
20434 	.sig_type = EDDSA25519,
20435 	.exp_sig = ed25519_888_test_vectors_expected_sig,
20436 	.exp_siglen = sizeof(ed25519_888_test_vectors_expected_sig),
20437 	.adata = NULL,
20438 	.adata_len = 0
20439 };
20440 
20441 /************************************************/
20442 static const u8 ed25519_889_test_vectors_priv_key[] = {
20443 	0xce, 0xcc, 0xc6, 0x83, 0x11, 0xfc, 0x45, 0xb6, 0xc2, 0xa2, 0xf1, 0xff, 0x9c, 0xdd, 0xe0, 0x07, 0xec, 0x78, 0x7f, 0xdf, 0x25, 0xd0, 0x2c, 0xcd, 0x2a, 0x1c, 0xad, 0x9d, 0xe3, 0xfb, 0x4c, 0xff, };
20444 static const u8 ed25519_889_test_vectors_message[] = {
20445 	0xba, 0xc1, 0x86, 0xd9, 0xfe, 0x5a, 0xbd, 0xa7, 0x9c, 0x3a, 0x35, 0xa7, 0xa3, 0xc2, 0xea, 0xe6, 0xae, 0x6a, 0xb2, 0x82, 0x47, 0x91, 0x27, 0x70, 0xc8, 0x4e, 0xfd, 0x04, 0x8e, 0xbd, 0x3a, 0xba, 0x57, 0xc3, 0x7c, 0xf4, 0xc6, 0xc7, 0xf3, 0x0a, 0x79, 0xf6, 0x8a, 0x3f, 0x76, 0xb2, 0x0c, 0xd8, 0xc6, 0x63, 0x1f, 0xcc, 0x96, 0x67, 0x05, 0x22, 0x08, 0x0e, 0x6b, 0x62, 0xe8, 0x87, 0xae, 0x6f, 0x44, 0x36, 0xd4, 0xca, 0xf5, 0x69, 0x43, 0x13, 0x1c, 0x52, 0xdd, 0x28, 0x2b, 0x25, 0x1c, 0xd0, 0x75, 0xf1, 0xf7, 0xf8, 0xe0, 0xbd, 0xb6, 0xbe, 0xdf, 0xc9, 0xa0, 0x79, 0x6f, 0x55, 0x79, 0x04, 0x2b, 0x56, 0xe6, 0x93, 0x74, 0x96, 0x1b, 0x11, 0xdf, 0xd6, 0x1b, 0x12, 0xde, 0x2b, 0xb7, 0xd4, 0x9b, 0xfc, 0x50, 0x9c, 0xdb, 0x31, 0x38, 0xf3, 0x35, 0x6a, 0x0d, 0xde, 0xd9, 0x8f, 0x53, 0x01, 0xb7, 0xc4, 0xa7, 0x48, 0xbf, 0x89, 0xb2, 0x3d, 0xf4, 0xf7, 0x47, 0x2f, 0xf8, 0xb1, 0xf5, 0x05, 0xd7, 0x65, 0xc6, 0xff, 0x82, 0xdb, 0xad, 0x74, 0xb9, 0xd7, 0xae, 0xf2, 0x2f, 0xbc, 0xca, 0x0b, 0x7f, 0x35, 0x04, 0x2f, 0x9a, 0x76, 0x2b, 0xd0, 0x69, 0x02, 0xbb, 0x21, 0xc7, 0xf9, 0xf7, 0xf6, 0x6b, 0xef, 0x38, 0x90, 0x1d, 0x75, 0x01, 0x2d, 0x61, 0xd7, 0x44, 0xde, 0xe7, 0xaf, 0xd8, 0x9f, 0xc7, 0xe9, 0x08, 0xc4, 0x06, 0x85, 0xbd, 0x44, 0x0a, 0xed, 0xa4, 0x20, 0x4d, 0x00, 0x6f, 0x26, 0x30, 0x7d, 0x82, 0xa4, 0x96, 0x96, 0x31, 0x15, 0xf9, 0x0e, 0x09, 0xf7, 0x66, 0x88, 0x29, 0x1f, 0x4a, 0x67, 0xd6, 0x41, 0x1f, 0x76, 0xd1, 0x66, 0x17, 0x87, 0x5b, 0x2b, 0x99, 0x82, 0xdf, 0xdc, 0x5e, 0xe9, 0xb8, 0x3b, 0x98, 0x17, 0x00, 0x93, 0x19, 0x11, 0x0b, 0x54, 0x04, 0xc6, 0x31, 0x16, 0xfb, 0x6e, 0x94, 0x64, 0x84, 0x6f, 0xa0, 0x09, 0x55, 0x56, 0x32, 0xf0, 0x76, 0x98, 0x4c, 0x15, 0xe1, 0xf6, 0x08, 0x17, 0x33, 0xa0, 0xd4, 0x6f, 0x2d, 0x6a, 0x3c, 0xeb, 0xf7, 0x9e, 0xd9, 0x02, 0x0c, 0x9d, 0xec, 0x8d, 0xf1, 0x58, 0xa3, 0x34, 0x1f, 0x39, 0xea, 0xa5, 0xfc, 0xf1, 0xcf, 0x42, 0xa9, 0x48, 0x49, 0xb2, 0x35, 0x2c, 0x1a, 0x1e, 0xcd, 0x4f, 0xb8, 0x14, 0xc2, 0x0d, 0x07, 0xdf, 0xda, 0x31, 0x2b, 0xd4, 0xf2, 0xf5, 0x8c, 0x15, 0x76, 0xb4, 0xaa, 0x31, 0x5c, 0x96, 0xc8, 0x78, 0x6a, 0x4c, 0xfb, 0xb7, 0x36, 0xb2, 0xd2, 0x3c, 0x38, 0xb1, 0xd8, 0x1c, 0x46, 0x44, 0xea, 0x36, 0xaf, 0xa0, 0x76, 0xe0, 0x55, 0xbe, 0x59, 0x17, 0xcd, 0x7a, 0x92, 0x35, 0x0a, 0x7e, 0xd6, 0x6a, 0x5a, 0xb2, 0x25, 0x3f, 0x55, 0xc4, 0xfd, 0x1a, 0x0d, 0x0e, 0x6d, 0x4e, 0xda, 0xb5, 0xf7, 0x12, 0xed, 0xb4, 0x40, 0xc0, 0x6f, 0xac, 0x8f, 0x07, 0xe6, 0xd7, 0x3c, 0xc9, 0x0b, 0x2b, 0xa7, 0x13, 0xd7, 0x3c, 0x73, 0x80, 0x23, 0x61, 0xce, 0x46, 0xa4, 0xeb, 0x5e, 0xd1, 0x06, 0x0c, 0x4c, 0xf5, 0x32, 0x07, 0xd3, 0x01, 0xf0, 0xfc, 0xd4, 0xf0, 0xc9, 0xd1, 0x58, 0x0d, 0xb2, 0xfc, 0x10, 0x59, 0xd3, 0x72, 0x07, 0x64, 0x38, 0xa0, 0x11, 0x92, 0xa7, 0xf9, 0xfd, 0x6f, 0x78, 0x83, 0xf5, 0x64, 0x22, 0x86, 0x6f, 0xd9, 0xf0, 0xaf, 0xe5, 0x3f, 0xdc, 0x91, 0x0a, 0xfa, 0x5a, 0x75, 0x1c, 0xbf, 0xa3, 0x77, 0x59, 0x25, 0x79, 0x16, 0x5c, 0xb5, 0x6d, 0xc3, 0xeb, 0x4d, 0xce, 0x67, 0xe3, 0xdb, 0x33, 0xa9, 0x81, 0xa5, 0x6b, 0x7d, 0x9f, 0x7b, 0xde, 0xa7, 0x4f, 0xba, 0xea, 0x34, 0x78, 0xe6, 0xab, 0x2c, 0x64, 0x4f, 0xd7, 0x77, 0xb8, 0xbf, 0xa7, 0x2a, 0xa0, 0xf0, 0xa5, 0x21, 0x98, 0xd3, 0x6e, 0x5b, 0x63, 0x4d, 0x2c, 0x9a, 0x11, 0xb7, 0xfe, 0x0a, 0xb2, 0xf9, 0xa4, 0x09, 0x01, 0xc5, 0xb1, 0x48, 0xa0, 0x19, 0x2e, 0x95, 0xa1, 0x70, 0xba, 0xf7, 0xd5, 0x35, 0x0f, 0xe0, 0x1e, 0x56, 0x95, 0x42, 0xb9, 0x34, 0x85, 0xa4, 0x19, 0x71, 0x44, 0x34, 0x85, 0xfa, 0xf5, 0x7f, 0x67, 0xf5, 0x6d, 0xfe, 0x2c, 0x58, 0xe5, 0x39, 0xc9, 0xf9, 0xb4, 0x49, 0xc3, 0xf9, 0x12, 0x49, 0xa1, 0x0c, 0x1a, 0x1b, 0xe7, 0xe0, 0xb3, 0xea, 0xbe, 0x8e, 0xe0, 0xba, 0xb1, 0xf1, 0x1f, 0x89, 0x61, 0x4d, 0xce, 0xd4, 0x18, 0xc6, 0x2a, 0x07, 0xa0, 0xb5, 0x9a, 0x13, 0x70, 0xd6, 0x53, 0x1b, 0xa1, 0x77, 0x09, 0x1c, 0x6a, 0xd5, 0x95, 0xfb, 0x59, 0x48, 0x82, 0x04, 0xf6, 0x33, 0x44, 0x73, 0x6e, 0xa1, 0x01, 0x7a, 0xff, 0xbe, 0xb7, 0x53, 0xa9, 0x97, 0x86, 0xb1, 0xeb, 0x64, 0x51, 0x0e, 0x2e, 0x71, 0x7e, 0xc9, 0x0e, 0x02, 0x74, 0x4b, 0xc3, 0x52, 0xd3, 0xf1, 0xb2, 0xab, 0x7b, 0xe0, 0xeb, 0x65, 0x62, 0x3d, 0x04, 0xfb, 0x3a, 0x04, 0x6c, 0xe7, 0xf4, 0xda, 0x69, 0x7d, 0x82, 0x98, 0x28, 0xa5, 0x2c, 0x7b, 0x04, 0x3b, 0x2a, 0x82, 0xec, 0x97, 0xfb, 0x04, 0x1b, 0xf5, 0x19, 0xb4, 0xde, 0x31, 0x6f, 0x4e, 0x2f, 0x5b, 0x0d, 0xb6, 0x2a, 0xed, 0x0e, 0xed, 0x95, 0xca, 0xd4, 0x32, 0x0c, 0x19, 0x47, 0xc3, 0x5f, 0xd8, 0x84, 0x7a, 0x58, 0x67, 0x87, 0x28, 0x83, 0x56, 0x11, 0x19, 0xc0, 0x1b, 0x00, 0x89, 0x21, 0x3d, 0x84, 0xdb, 0x99, 0xd4, 0x39, 0xf0, 0xf6, 0x44, 0x4d, 0x87, 0x83, 0xdd, 0x4b, 0x64, 0xbe, 0x35, 0x77, 0xcd, 0x46, 0x1c, 0xf7, 0x53, 0xc8, 0xe6, 0x1c, 0x91, 0x2d, 0xe2, 0xe5, 0xd7, 0xa7, 0xe2, 0xba, 0xef, 0xa2, 0x58, 0x97, 0x5d, 0x16, 0xef, 0x31, 0x17, 0xda, 0x59, 0xa6, 0xc8, 0x93, 0xf3, 0x33, 0x91, 0x87, 0xdf, 0x31, 0x68, 0xb8, 0x9f, 0x0f, 0xb0, 0xb2, 0x19, 0x8b, 0xb6, 0xf1, 0x59, 0x4b, 0xb8, 0x8f, 0x3d, 0x61, 0x0f, 0xce, 0xc3, 0xe3, 0x6d, 0xe0, 0x4a, 0xe1, 0x03, 0x28, 0x11, 0x2e, 0x6f, 0xf7, 0x4f, 0x5a, 0x8c, 0xe6, 0x8d, 0x40, 0x71, 0x74, 0xb4, 0xc0, 0x69, 0x1c, 0x76, 0x02, 0xea, 0xb1, 0xbb, 0x10, 0xf3, 0xc4, 0x9d, 0xd2, 0x2b, 0x84, 0x50, 0x78, 0x2d, 0xea, 0xe9, 0xa7, 0x31, 0x5e, 0x3b, 0x88, 0xde, 0x79, 0xcd, 0x15, 0xe6, 0xc9, 0x26, 0x81, 0x65, 0xed, 0x3a, 0x0f, 0xb3, 0xf8, 0x9b, 0x18, 0x3e, 0x1a, 0x21, 0x21, 0x52, 0x00, 0x3f, 0x32, 0xa2, 0x66, 0x5d, 0x37, 0xcd, 0xd7, 0xf6, 0xb5, 0x6c, 0x24, 0x53, 0xe5, 0x58, 0x0c, 0x4d, 0x21, 0xf9, 0x98, 0x3f, 0x38, 0x79, 0x8e, 0x9b, };
20446 static const u8 ed25519_889_test_vectors_expected_sig[] = {
20447 	0x3c, 0x44, 0x62, 0xaa, 0x47, 0x01, 0x01, 0x32, 0xdb, 0xb2, 0x63, 0x11, 0xe4, 0x44, 0x72, 0x72, 0x79, 0xed, 0xad, 0xe1, 0x5a, 0x4d, 0x66, 0x2c, 0xf6, 0x47, 0xf3, 0x27, 0x5c, 0xf3, 0x25, 0x3e, 0x6d, 0xe9, 0x33, 0x38, 0x30, 0xe0, 0x51, 0x7a, 0xa5, 0xfa, 0x7b, 0xc2, 0xd0, 0xe6, 0x3e, 0xa2, 0x59, 0x7a, 0x94, 0xb0, 0xfe, 0x92, 0x70, 0x6e, 0xcd, 0x17, 0x2c, 0x5e, 0xc5, 0xc7, 0xf0, 0x06, };
20448 static const ec_test_case ed25519_889_test_case = {
20449 	.name = "EDDSA25519-SHA512/wei25519 889",
20450 	.ec_str_p = &wei25519_str_params,
20451 	.priv_key = ed25519_889_test_vectors_priv_key,
20452 	.priv_key_len = sizeof(ed25519_889_test_vectors_priv_key),
20453 	.nn_random = NULL,
20454 	.hash_type = SHA512,
20455 	.msg = (const char *)ed25519_889_test_vectors_message,
20456 	.msglen = sizeof(ed25519_889_test_vectors_message),
20457 	.sig_type = EDDSA25519,
20458 	.exp_sig = ed25519_889_test_vectors_expected_sig,
20459 	.exp_siglen = sizeof(ed25519_889_test_vectors_expected_sig),
20460 	.adata = NULL,
20461 	.adata_len = 0
20462 };
20463 
20464 /************************************************/
20465 static const u8 ed25519_890_test_vectors_priv_key[] = {
20466 	0x7b, 0x30, 0xb4, 0x2d, 0xc2, 0xc6, 0x70, 0xa1, 0x95, 0xfe, 0x2a, 0xf8, 0x79, 0xfc, 0x5d, 0xe3, 0x74, 0x02, 0x45, 0x88, 0xfe, 0x3d, 0xe4, 0x3e, 0x2d, 0xd5, 0x08, 0x44, 0xf4, 0x8f, 0x42, 0xbe, };
20467 static const u8 ed25519_890_test_vectors_message[] = {
20468 	0xc6, 0x68, 0x7a, 0xef, 0xeb, 0xc5, 0xc8, 0x16, 0xd1, 0xa3, 0x34, 0x53, 0xbe, 0xca, 0x50, 0x20, 0xd3, 0xa9, 0x7c, 0xda, 0x1d, 0xac, 0x56, 0x62, 0xf0, 0xaf, 0x72, 0xba, 0xd4, 0x44, 0xe2, 0xfd, 0x11, 0x76, 0xa7, 0xb0, 0x4c, 0x1b, 0xd0, 0x9d, 0x83, 0x26, 0x18, 0x20, 0x9b, 0xf3, 0xe3, 0x3e, 0x52, 0x35, 0x38, 0xd6, 0xda, 0xa7, 0x53, 0x04, 0x6e, 0x87, 0x1d, 0xd3, 0xb3, 0xc7, 0xac, 0xad, 0x33, 0xe7, 0x9c, 0x1b, 0xb7, 0x89, 0x64, 0x07, 0x86, 0x5d, 0x16, 0x8d, 0x4b, 0xc3, 0x75, 0x7b, 0xde, 0x4f, 0x82, 0x3c, 0x08, 0x77, 0x86, 0x26, 0xf8, 0xc7, 0x1f, 0xb7, 0xcf, 0xcf, 0xdf, 0x03, 0xa8, 0x24, 0x97, 0xbd, 0x8b, 0xe7, 0xd8, 0xf8, 0xef, 0x64, 0x90, 0x30, 0xb5, 0xf3, 0x6a, 0x33, 0x94, 0x59, 0x96, 0x8e, 0x24, 0x6a, 0x1e, 0x42, 0x08, 0x53, 0xda, 0xce, 0x41, 0xca, 0x85, 0x0a, 0x4e, 0xea, 0xe8, 0x34, 0xae, 0x11, 0x96, 0x10, 0xca, 0x4c, 0xd0, 0x66, 0x2a, 0xac, 0x39, 0x62, 0x15, 0x86, 0x99, 0x80, 0x27, 0xef, 0x2f, 0x61, 0x48, 0x5c, 0x02, 0x85, 0x06, 0x71, 0x4a, 0xe0, 0x9c, 0x76, 0x39, 0x9d, 0x87, 0x3e, 0x80, 0x81, 0x58, 0x57, 0x8a, 0xa5, 0x9e, 0x82, 0x12, 0xf5, 0x88, 0x65, 0x31, 0x9f, 0x9e, 0x0d, 0x2b, 0x8d, 0xa7, 0xad, 0x52, 0x9e, 0x0a, 0xc1, 0xf1, 0xeb, 0x43, 0x5a, 0xec, 0xfd, 0x35, 0xf5, 0xab, 0xb9, 0x2b, 0xea, 0x50, 0x73, 0x49, 0x6b, 0xf4, 0xc0, 0xbf, 0x15, 0xba, 0xa2, 0x73, 0xbf, 0xc5, 0xc3, 0x10, 0x44, 0x74, 0xa2, 0xdc, 0xf1, 0x32, 0xc3, 0x33, 0xeb, 0x36, 0xec, 0x2c, 0xbf, 0x04, 0xfa, 0x95, 0x80, 0xb7, 0x68, 0xf5, 0xce, 0xa7, 0xb5, 0x61, 0x7e, 0x58, 0x80, 0xaf, 0xf6, 0x32, 0x01, 0xc2, 0x74, 0xd6, 0x69, 0x74, 0x3e, 0x1b, 0xc5, 0x56, 0xb0, 0x67, 0x90, 0x2e, 0xee, 0x29, 0xd2, 0x91, 0x11, 0x28, 0x89, 0x69, 0xcf, 0xfa, 0x87, 0x9f, 0xc9, 0xcb, 0xf6, 0x6f, 0xbf, 0x93, 0x26, 0xd9, 0xd9, 0x25, 0xac, 0x41, 0x02, 0xfa, 0x9f, 0x1a, 0x06, 0x08, 0x1a, 0xde, 0xc0, 0x79, 0xcb, 0xc9, 0x67, 0x46, 0xd7, 0x9b, 0x63, 0xa0, 0x12, 0xed, 0x77, 0xd8, 0x2c, 0x9f, 0xfd, 0x4e, 0x3f, 0x16, 0x1f, 0x6c, 0xea, 0x28, 0xcc, 0x23, 0xfa, 0xc2, 0xa5, 0x43, 0xf5, 0xb1, 0xd0, 0x64, 0x4e, 0xc0, 0x48, 0x38, 0x32, 0x7b, 0xcc, 0x65, 0x2b, 0x85, 0x8f, 0x93, 0xff, 0x46, 0x3f, 0x7e, 0x94, 0x9e, 0xec, 0x8c, 0x9d, 0xb6, 0x56, 0x9a, 0x86, 0x98, 0x4f, 0x83, 0x1d, 0xf6, 0xac, 0x6d, 0x95, 0xf3, 0x8f, 0x46, 0xce, 0xbb, 0x6e, 0x65, 0x83, 0x65, 0x7f, 0xac, 0xd2, 0x10, 0x8d, 0xbc, 0xd0, 0xaf, 0x23, 0xab, 0x01, 0x01, 0xa1, 0x30, 0x1b, 0xeb, 0x48, 0xa4, 0x4c, 0xac, 0xcb, 0x91, 0x09, 0x44, 0x73, 0xd7, 0xe5, 0xa5, 0xc8, 0x8c, 0x64, 0x4f, 0xd3, 0x42, 0x05, 0x73, 0xb6, 0x78, 0xf1, 0x7b, 0x51, 0x74, 0xcb, 0x14, 0xe9, 0x0f, 0xac, 0x69, 0x4d, 0x1d, 0xbc, 0x6c, 0x96, 0x32, 0xb5, 0x97, 0x4a, 0xef, 0x28, 0xac, 0x08, 0xd7, 0x20, 0xb2, 0xea, 0x30, 0x44, 0x0d, 0x2a, 0xfb, 0x04, 0x93, 0xb4, 0x0d, 0xb2, 0x4e, 0xfb, 0xdb, 0xf5, 0x3c, 0x43, 0x09, 0x21, 0xe5, 0x2a, 0x10, 0xb5, 0x46, 0x61, 0xe1, 0x49, 0xd1, 0x65, 0x59, 0x1a, 0x7c, 0xf9, 0x1d, 0x65, 0x08, 0xea, 0x47, 0x2f, 0xb3, 0xbe, 0x16, 0x39, 0x5e, 0x30, 0x31, 0x2f, 0x19, 0xb8, 0x7c, 0x47, 0xe4, 0x68, 0x04, 0xa0, 0xfa, 0x29, 0xb5, 0x6b, 0x5a, 0xc9, 0x50, 0x67, 0x7b, 0xc6, 0x02, 0x38, 0xb5, 0xe9, 0x9e, 0x03, 0x0b, 0x1e, 0x55, 0x21, 0x46, 0xa0, 0xe8, 0x8c, 0x29, 0x4c, 0xfc, 0xa8, 0x35, 0xc1, 0x01, 0xc5, 0x5f, 0x34, 0x23, 0x87, 0x4c, 0xc1, 0x28, 0x75, 0x6e, 0x73, 0xa5, 0xde, 0xbe, 0x8e, 0x97, 0xfe, 0x21, 0x66, 0xb6, 0x5c, 0xb4, 0x46, 0x42, 0x77, 0x0c, 0x6d, 0x1d, 0x23, 0x90, 0xaf, 0x1b, 0x0f, 0x31, 0xb9, 0x58, 0xc8, 0x30, 0xe9, 0xac, 0x4f, 0xe2, 0xf5, 0xad, 0x59, 0x05, 0x82, 0xfb, 0xb8, 0x92, 0xbf, 0x94, 0x95, 0x84, 0x47, 0x7e, 0xf7, 0xbd, 0xe2, 0x3f, 0x7d, 0xd0, 0x2b, 0x63, 0xf7, 0xc2, 0x90, 0x88, 0xa5, 0x72, 0x51, 0x00, 0x91, 0x32, 0xff, 0xbb, 0x78, 0xed, 0x14, 0xde, 0xfb, 0xef, 0xd9, 0xfd, 0x31, 0xfd, 0xca, 0xb0, 0x3b, 0xa8, 0x0a, 0x23, 0xf3, 0x33, 0x98, 0x37, 0x60, 0xab, 0xad, 0x4f, 0x16, 0xdd, 0xf9, 0xdd, 0x44, 0x14, 0xf0, 0x4d, 0x00, 0xdb, 0x56, 0xba, 0x72, 0xd6, 0x3a, 0x3a, 0x13, 0xd2, 0xc4, 0x42, 0xf5, 0x49, 0xfd, 0x66, 0xc9, 0x88, 0xd2, 0xe4, 0x60, 0x1d, 0x13, 0xb5, 0x2f, 0x77, 0x50, 0x0d, 0xd6, 0x92, 0xbe, 0xc9, 0xd6, 0xbd, 0x3b, 0xaf, 0xa9, 0x24, 0x2f, 0xdc, 0xfa, 0xeb, 0x69, 0xb9, 0x8b, 0x0b, 0x57, 0x89, 0xb2, 0x80, 0x38, 0x40, 0xde, 0xc6, 0x37, 0xb4, 0x9a, 0xf4, 0x38, 0x1a, 0xe3, 0xfa, 0x42, 0x9f, 0xb5, 0x34, 0x61, 0xa0, 0xc6, 0x74, 0xeb, 0x5a, 0xa1, 0x8d, 0xbd, 0x60, 0x7a, 0x2b, 0x77, 0xa9, 0x6d, 0x3a, 0xb4, 0x64, 0xec, 0xd9, 0x74, 0x92, 0xf6, 0xde, 0x46, 0x0c, 0x9f, 0x11, 0xb5, 0xc1, 0x75, 0x6c, 0xb5, 0x9c, 0xb1, 0x34, 0x8d, 0xfd, 0x77, 0x95, 0x6b, 0x71, 0x90, 0x7c, 0x54, 0x82, 0x1e, 0x30, 0x3c, 0xb8, 0xb1, 0x49, 0x06, 0xc0, 0x03, 0xe3, 0x48, 0x4b, 0xe4, 0xea, 0x05, 0xa6, 0x90, 0x1d, 0x69, 0xb0, 0x74, 0x85, 0xe8, 0x58, 0xf7, 0xb4, 0x71, 0xc6, 0x35, 0xf9, 0x03, 0x95, 0xb9, 0xa3, 0xe2, 0x24, 0x7f, 0x1a, 0xd1, 0x2b, 0x11, 0x8f, 0xfa, 0xfc, 0x72, 0x21, 0xa5, 0x7b, 0x10, 0xe3, 0x19, 0xb6, 0x1a, 0xf1, 0xc1, 0x36, 0x06, 0xa8, 0x16, 0x16, 0xce, 0x3f, 0x1d, 0x62, 0xba, 0x93, 0x2f, 0xf4, 0xe6, 0x3e, 0x74, 0xb8, 0x42, 0x55, 0xe3, 0xaf, 0x52, 0x10, 0xbb, 0xd5, 0x71, 0xbd, 0xa4, 0x4c, 0xbf, 0x44, 0xb7, 0x14, 0x42, 0x2c, 0xb4, 0x5c, 0x2e, 0xf2, 0x1f, 0x98, 0x13, 0x1b, 0xa9, 0x6b, 0x7e, 0xdb, 0x9b, 0x03, 0xe3, 0x3d, 0x7d, 0x18, 0x8d, 0x5b, 0x8d, 0x90, 0x4c, 0xb4, 0x13, 0x6f, 0xe2, 0x69, 0xdb, 0x14, 0x69, 0x88, 0x16, 0x8e, 0x7e, 0xe2, 0x45, 0x35, 0x63, 0x54, 0xf0, 0x02, 0xa5, 0xea, 0x8b, 0x35, 0xa3, 0xa9, 0x9e, 0x83, 0xa1, 0x32, 0x72, 0x27, 0x41, 0x44, 0xb3, 0x3a, 0x60, 0xca, };
20469 static const u8 ed25519_890_test_vectors_expected_sig[] = {
20470 	0x0a, 0x63, 0xb8, 0x4f, 0x46, 0x93, 0x5f, 0xaf, 0x3e, 0xa1, 0x64, 0xb0, 0x0a, 0xf2, 0x27, 0xb0, 0x08, 0x68, 0xa0, 0x3f, 0x56, 0x12, 0x93, 0x5e, 0x18, 0x61, 0x9a, 0x84, 0xa2, 0xe5, 0x7b, 0x88, 0x51, 0xd7, 0x46, 0xe6, 0x3f, 0xd9, 0x10, 0x07, 0x87, 0xf5, 0x33, 0x8d, 0x51, 0xc1, 0x07, 0x3c, 0x2f, 0xc5, 0x30, 0x30, 0x99, 0xe1, 0x87, 0x3e, 0x5e, 0x3d, 0x3e, 0x5c, 0x03, 0x6f, 0xbe, 0x01, };
20471 static const ec_test_case ed25519_890_test_case = {
20472 	.name = "EDDSA25519-SHA512/wei25519 890",
20473 	.ec_str_p = &wei25519_str_params,
20474 	.priv_key = ed25519_890_test_vectors_priv_key,
20475 	.priv_key_len = sizeof(ed25519_890_test_vectors_priv_key),
20476 	.nn_random = NULL,
20477 	.hash_type = SHA512,
20478 	.msg = (const char *)ed25519_890_test_vectors_message,
20479 	.msglen = sizeof(ed25519_890_test_vectors_message),
20480 	.sig_type = EDDSA25519,
20481 	.exp_sig = ed25519_890_test_vectors_expected_sig,
20482 	.exp_siglen = sizeof(ed25519_890_test_vectors_expected_sig),
20483 	.adata = NULL,
20484 	.adata_len = 0
20485 };
20486 
20487 /************************************************/
20488 static const u8 ed25519_891_test_vectors_priv_key[] = {
20489 	0x66, 0x56, 0xf4, 0xd4, 0x71, 0x81, 0x57, 0xc4, 0xba, 0xc3, 0x8f, 0xf7, 0xab, 0xe5, 0xeb, 0x1f, 0x81, 0x2c, 0x0b, 0x98, 0x6d, 0x9c, 0x01, 0x4a, 0xba, 0xd5, 0xb0, 0x9a, 0xa6, 0xc8, 0xee, 0x4a, };
20490 static const u8 ed25519_891_test_vectors_message[] = {
20491 	0x94, 0xd9, 0xe5, 0xe5, 0xa7, 0xb7, 0x05, 0xd9, 0xd9, 0x76, 0xfe, 0x71, 0xe9, 0x4d, 0x3f, 0x7f, 0xa7, 0x86, 0x6a, 0xfb, 0xf7, 0xec, 0xe4, 0x24, 0xf1, 0x36, 0x32, 0x77, 0x99, 0xb2, 0xb2, 0x06, 0xce, 0x4e, 0xf4, 0xc3, 0xf3, 0xe7, 0x05, 0x55, 0x3a, 0xfc, 0x8f, 0xd5, 0xc1, 0x95, 0x2a, 0x4c, 0x16, 0x65, 0x8d, 0x4a, 0x78, 0xaf, 0xbb, 0x9a, 0x97, 0xf2, 0x71, 0x93, 0xc6, 0x5b, 0x65, 0xb8, 0x2e, 0x8f, 0x3b, 0x71, 0x51, 0x5f, 0xac, 0x82, 0x64, 0x0e, 0x0f, 0x8a, 0x5f, 0xb3, 0x5a, 0xe6, 0xfc, 0x6a, 0x3d, 0xb0, 0x51, 0xa2, 0x2d, 0x4a, 0x53, 0x00, 0x41, 0x3e, 0x6e, 0x33, 0xd1, 0x9c, 0x20, 0x13, 0xc2, 0x98, 0x3a, 0xca, 0x8a, 0xd6, 0xce, 0xc2, 0xce, 0x64, 0xa8, 0x14, 0x16, 0x4f, 0x06, 0x1a, 0x1a, 0x3c, 0x5a, 0x86, 0x10, 0xa7, 0x65, 0x0b, 0xfb, 0x54, 0x23, 0xd4, 0x36, 0x2c, 0xe0, 0x22, 0x06, 0xdb, 0xe4, 0xa6, 0xfa, 0x82, 0x6f, 0x03, 0xb4, 0x2a, 0xc3, 0xcd, 0x9e, 0xa4, 0xc6, 0x51, 0x40, 0x1b, 0x3c, 0xea, 0x82, 0xc3, 0x99, 0x3f, 0x6a, 0xf8, 0xb2, 0xc9, 0xe2, 0xe6, 0xff, 0xe6, 0x92, 0x80, 0xab, 0x3f, 0x09, 0xfb, 0xe9, 0x0d, 0xd5, 0x47, 0xcc, 0xda, 0x9d, 0x9e, 0x8e, 0x8a, 0x53, 0x7b, 0x3b, 0x36, 0x05, 0x54, 0x22, 0x7e, 0xd0, 0x70, 0x9f, 0x29, 0x31, 0x98, 0x98, 0x2e, 0xfb, 0x5e, 0xfb, 0x0e, 0x73, 0xe0, 0x00, 0x42, 0xd1, 0xa0, 0x63, 0xb5, 0x74, 0x52, 0x02, 0x7d, 0xce, 0x1a, 0x39, 0xe4, 0xb0, 0x06, 0x8f, 0x58, 0xb1, 0x11, 0xec, 0x5d, 0xc1, 0x42, 0xbf, 0x41, 0x9a, 0xd8, 0x93, 0xd5, 0x4f, 0x42, 0x60, 0xcb, 0xde, 0x76, 0x28, 0xf7, 0x83, 0xde, 0x84, 0x96, 0x38, 0x03, 0x06, 0xa4, 0xef, 0xf6, 0xd8, 0x28, 0x69, 0x10, 0x42, 0x59, 0xc9, 0x4c, 0x54, 0xad, 0x5a, 0xa8, 0xb0, 0x67, 0xc4, 0x24, 0x96, 0xcb, 0x88, 0xdd, 0x31, 0x15, 0x0e, 0xa0, 0x4d, 0x49, 0x9b, 0xfa, 0xc9, 0x1f, 0x4b, 0xb3, 0xe6, 0x8a, 0xf5, 0xaf, 0x7a, 0x56, 0x8a, 0x3e, 0x4c, 0xe7, 0xf1, 0x70, 0xd9, 0x86, 0x01, 0x16, 0x3f, 0x49, 0x52, 0xf1, 0xd2, 0x5e, 0x12, 0xe0, 0x0e, 0xf0, 0xa2, 0xd8, 0xf1, 0x11, 0xaf, 0xdb, 0x0f, 0xaf, 0xba, 0xd2, 0xbf, 0x8e, 0x8b, 0x9d, 0x49, 0x36, 0x3f, 0xca, 0x68, 0x18, 0x36, 0x17, 0xb5, 0x41, 0x27, 0x0d, 0xda, 0x46, 0x09, 0xb2, 0x61, 0x67, 0x29, 0xab, 0x1b, 0x8c, 0x42, 0xdb, 0xdd, 0x7b, 0xf9, 0x86, 0xaf, 0x8f, 0xba, 0x52, 0xe7, 0x33, 0xe4, 0x2b, 0xa0, 0x3c, 0x89, 0x2e, 0x1e, 0x1e, 0xc0, 0x6a, 0x90, 0xb1, 0x63, 0xf5, 0xa7, 0x9f, 0x61, 0x65, 0xeb, 0x73, 0x16, 0x97, 0x2a, 0xc1, 0xad, 0xbf, 0xcf, 0x1d, 0xca, 0xb0, 0x78, 0x47, 0xef, 0x82, 0xc2, 0xca, 0xb1, 0x01, 0x5d, 0xbb, 0x50, 0xaa, 0xdc, 0x79, 0xfe, 0x11, 0xc8, 0x32, 0x09, 0x8c, 0xac, 0xc3, 0x98, 0x20, 0xab, 0x08, 0x5b, 0x69, 0x63, 0xbd, 0x42, 0x16, 0x0e, 0xd6, 0x61, 0x3b, 0xae, 0x5e, 0x20, 0x1f, 0x17, 0xc0, 0xfd, 0x7f, 0x32, 0x35, 0x7a, 0xe3, 0x50, 0xce, 0x9c, 0xbb, 0xe9, 0x26, 0xfa, 0x42, 0xdc, 0xbd, 0x42, 0x2a, 0xc1, 0xbf, 0x09, 0xa1, 0x9a, 0xd1, 0xf6, 0x94, 0x69, 0xe4, 0xd1, 0xdc, 0xb1, 0x24, 0x11, 0x8e, 0xd4, 0x52, 0x2d, 0x35, 0x3c, 0x17, 0x42, 0x98, 0x65, 0x0f, 0xf8, 0x83, 0x82, 0xfa, 0x2f, 0xdb, 0xb2, 0x86, 0xc4, 0x5b, 0x18, 0xa9, 0xba, 0xf6, 0xf6, 0x76, 0x3a, 0xc2, 0x0c, 0x9c, 0xa4, 0x76, 0x7d, 0x34, 0x8c, 0x4b, 0x8d, 0xed, 0x63, 0x00, 0x76, 0x65, 0x7b, 0x85, 0xb1, 0x4c, 0x11, 0xae, 0x27, 0x37, 0xea, 0x29, 0xa4, 0x35, 0x15, 0xb7, 0xf0, 0x56, 0x74, 0xa0, 0xcd, 0x3e, 0xd4, 0xbf, 0x6a, 0x3d, 0x18, 0x9a, 0xe9, 0x72, 0x21, 0x8f, 0x87, 0x7c, 0xd8, 0xaa, 0x69, 0x49, 0x9d, 0x5a, 0x08, 0xc9, 0x9e, 0x44, 0x06, 0x94, 0xcc, 0xac, 0xcd, 0xf1, 0xf6, 0x42, 0xe1, 0x4e, 0x90, 0x10, 0x5b, 0xee, 0x6d, 0x98, 0xed, 0xee, 0xab, 0x3b, 0x4f, 0x33, 0x9f, 0x30, 0x01, 0x88, 0xae, 0xc0, 0xc1, 0x6b, 0xd6, 0x45, 0x21, 0xd9, 0x28, 0x73, 0x98, 0xe6, 0x48, 0xdb, 0x94, 0x33, 0x0e, 0xd8, 0xf6, 0xb9, 0xab, 0x6c, 0x7a, 0xd9, 0x3f, 0xfc, 0x43, 0xe8, 0x79, 0x2e, 0x63, 0x7c, 0x61, 0xbf, 0xf7, 0xd8, 0x56, 0xe5, 0x4e, 0xf4, 0x98, 0x73, 0x84, 0xe3, 0x12, 0xcb, 0x57, 0x01, 0x7a, 0x50, 0xea, 0xe5, 0x95, 0x2a, 0xbe, 0x19, 0xd8, 0x99, 0x9c, 0x8c, 0x82, 0xdf, 0xc4, 0x57, 0x98, 0xcc, 0x17, 0xc8, 0xd9, 0x49, 0x6b, 0xf5, 0x20, 0xec, 0xc5, 0xb7, 0x7f, 0xe2, 0x84, 0x91, 0x55, 0x66, 0xc4, 0x56, 0x85, 0xc3, 0x04, 0xa2, 0xac, 0xd5, 0x25, 0xef, 0x12, 0xc8, 0x6f, 0x38, 0xae, 0xf5, 0x54, 0xd8, 0xa2, 0x38, 0x47, 0x37, 0xcc, 0x41, 0x33, 0xfb, 0x7e, 0x2b, 0x65, 0xc1, 0x3b, 0xef, 0x31, 0x66, 0x8a, 0x6c, 0x2f, 0x60, 0xee, 0xcd, 0x84, 0x12, 0xee, 0xff, 0x7f, 0x6b, 0x60, 0x5c, 0xbe, 0x95, 0x08, 0x3e, 0x23, 0x3e, 0xc1, 0xa7, 0xbb, 0x36, 0xde, 0x23, 0x6c, 0x8a, 0x71, 0xba, 0x28, 0x72, 0xbe, 0x94, 0x6c, 0xd3, 0xb3, 0x89, 0x35, 0xf5, 0xda, 0x64, 0xc8, 0xfe, 0xc8, 0xe1, 0x4f, 0x45, 0xcc, 0xf6, 0x12, 0x4b, 0xab, 0x7f, 0x70, 0x56, 0x7c, 0x2f, 0x2b, 0xfd, 0xd5, 0x66, 0x67, 0x60, 0x95, 0x72, 0x03, 0x7c, 0x76, 0x14, 0x6c, 0x99, 0x17, 0x07, 0x65, 0x9b, 0x57, 0x09, 0xb0, 0x74, 0xe3, 0x45, 0x1f, 0x92, 0x1a, 0x2d, 0xf2, 0x83, 0xb9, 0x6a, 0xa2, 0x6a, 0xb4, 0x76, 0x62, 0x50, 0x16, 0xf1, 0x81, 0xad, 0x64, 0xc9, 0x91, 0x9c, 0xf4, 0x1d, 0x71, 0x4a, 0x1a, 0x9a, 0x5e, 0x2b, 0xb2, 0x6b, 0xaf, 0x87, 0x70, 0xb2, 0xeb, 0xa7, 0x7b, 0x77, 0x8a, 0x33, 0x26, 0x77, 0xa7, 0x57, 0x2e, 0xe3, 0xa2, 0xb1, 0xdc, 0x05, 0xf7, 0x35, 0x6b, 0xdc, 0xae, 0x5f, 0x55, 0xe3, 0x53, 0x29, 0xe3, 0x4c, 0xaa, 0x79, 0x43, 0x0b, 0x27, 0x0c, 0x03, 0x61, 0x60, 0xdc, 0x9f, 0xca, 0xab, 0x5b, 0x25, 0x45, 0x43, 0xac, 0x94, 0xb2, 0x46, 0x81, 0xf1, 0x71, 0x72, 0xb6, 0x15, 0x9d, 0x16, 0x62, 0x1d, 0x7a, 0xd0, 0xee, 0xbd, 0x89, 0x5a, 0x1e, 0x1d, 0x09, 0xb9, 0x16, 0xa8, 0x6f, 0xb4, 0x8e, 0x4c, 0x91, 0x66, 0x10, 0x57, 0xee, 0xe9, 0x5c, 0x08, 0x70, 0xed, 0x54, };
20492 static const u8 ed25519_891_test_vectors_expected_sig[] = {
20493 	0x9c, 0x2c, 0x39, 0x91, 0x5a, 0xed, 0x6a, 0xdd, 0x00, 0x4e, 0x7d, 0xd6, 0x84, 0xee, 0x3d, 0xcd, 0xd1, 0x0d, 0x87, 0xa4, 0x87, 0xf6, 0x77, 0xe7, 0x3c, 0x2b, 0xce, 0x0f, 0xca, 0x7d, 0x50, 0x87, 0x96, 0x46, 0x41, 0x50, 0xa5, 0x2a, 0x44, 0x0f, 0x52, 0x37, 0x85, 0x0a, 0x00, 0x9c, 0x72, 0x16, 0x2d, 0x9d, 0x29, 0x85, 0x47, 0x0a, 0x33, 0x49, 0x0e, 0x66, 0xd3, 0xc4, 0x01, 0x70, 0x4c, 0x05, };
20494 static const ec_test_case ed25519_891_test_case = {
20495 	.name = "EDDSA25519-SHA512/wei25519 891",
20496 	.ec_str_p = &wei25519_str_params,
20497 	.priv_key = ed25519_891_test_vectors_priv_key,
20498 	.priv_key_len = sizeof(ed25519_891_test_vectors_priv_key),
20499 	.nn_random = NULL,
20500 	.hash_type = SHA512,
20501 	.msg = (const char *)ed25519_891_test_vectors_message,
20502 	.msglen = sizeof(ed25519_891_test_vectors_message),
20503 	.sig_type = EDDSA25519,
20504 	.exp_sig = ed25519_891_test_vectors_expected_sig,
20505 	.exp_siglen = sizeof(ed25519_891_test_vectors_expected_sig),
20506 	.adata = NULL,
20507 	.adata_len = 0
20508 };
20509 
20510 /************************************************/
20511 static const u8 ed25519_892_test_vectors_priv_key[] = {
20512 	0x14, 0x38, 0x3e, 0x6e, 0x56, 0x04, 0xc9, 0x9c, 0x24, 0x8d, 0x39, 0xbe, 0x51, 0xd1, 0x64, 0xb1, 0x34, 0x42, 0xb0, 0x5e, 0x51, 0xd7, 0x8e, 0xcd, 0x99, 0x93, 0x64, 0x22, 0x1a, 0x45, 0x03, 0x6b, };
20513 static const u8 ed25519_892_test_vectors_message[] = {
20514 	0xc4, 0x75, 0x3b, 0x7f, 0x7a, 0x6f, 0x6d, 0xea, 0x25, 0x15, 0xc6, 0xe3, 0xd2, 0x95, 0x61, 0x50, 0x6f, 0x4f, 0x36, 0xe0, 0xde, 0x84, 0x99, 0x92, 0x21, 0xf2, 0x28, 0xe2, 0x0b, 0xd5, 0x12, 0x8e, 0xd9, 0x3b, 0xdb, 0x8d, 0x11, 0x93, 0x23, 0x7d, 0x8e, 0x29, 0x41, 0x69, 0xa2, 0xbc, 0x44, 0x8a, 0xf9, 0xdd, 0x36, 0x06, 0x63, 0x01, 0xef, 0xb7, 0xfe, 0x12, 0x31, 0x35, 0x3c, 0x06, 0x23, 0xff, 0xe1, 0x11, 0x5d, 0xeb, 0xb6, 0x90, 0x5a, 0xc6, 0x94, 0x6e, 0xe3, 0x82, 0xa2, 0x7c, 0x3c, 0x09, 0xe1, 0xb1, 0xf5, 0xc1, 0x14, 0x93, 0xdb, 0xa3, 0x7d, 0xa0, 0xff, 0x6e, 0xea, 0x75, 0xd9, 0xfa, 0xb0, 0xee, 0x92, 0x6d, 0x70, 0x1d, 0xac, 0x2f, 0xc5, 0xb7, 0xef, 0x57, 0x88, 0x80, 0xa5, 0xd5, 0xee, 0xec, 0xad, 0xc1, 0xf4, 0xbc, 0xc4, 0xcd, 0x4e, 0xc6, 0xf2, 0xf1, 0x4f, 0x52, 0xa8, 0xc1, 0x64, 0x07, 0x2e, 0x6f, 0xde, 0x5a, 0xb2, 0xee, 0x9c, 0xee, 0x0b, 0x48, 0xe5, 0x1a, 0xf0, 0x55, 0xf9, 0xfe, 0xc7, 0xc6, 0x37, 0x50, 0xfe, 0xdf, 0x72, 0x33, 0x2b, 0x23, 0x86, 0x3a, 0x1e, 0x54, 0xc5, 0x2b, 0x46, 0x1a, 0x21, 0x50, 0x6d, 0xfd, 0xfc, 0x63, 0x88, 0x0e, 0x22, 0xd8, 0x9c, 0x89, 0x44, 0x12, 0x66, 0x6c, 0x92, 0x98, 0x21, 0xc0, 0xe4, 0x39, 0xe7, 0x45, 0x41, 0x5f, 0x71, 0x79, 0x69, 0xe6, 0x05, 0x85, 0x54, 0xd6, 0x4b, 0x94, 0x7a, 0x4f, 0xc9, 0xd1, 0x6a, 0xca, 0xe3, 0xe4, 0x9a, 0xec, 0x08, 0x80, 0x1a, 0x09, 0xd9, 0x72, 0xf7, 0x9e, 0xad, 0x68, 0xd5, 0x29, 0x76, 0x80, 0x69, 0x73, 0x5c, 0xaa, 0x74, 0x2b, 0x45, 0xa5, 0x83, 0x05, 0x81, 0xb8, 0x0c, 0xa0, 0x61, 0xa6, 0xc1, 0x51, 0x5e, 0x3f, 0x7d, 0x5a, 0x93, 0x37, 0x87, 0x8c, 0x19, 0xfc, 0x94, 0xee, 0xf2, 0x26, 0x98, 0xea, 0x6c, 0x4d, 0x05, 0xf9, 0xed, 0x41, 0x1b, 0x6b, 0x8f, 0x05, 0x2b, 0x5f, 0xf1, 0x5d, 0xc2, 0x3a, 0x64, 0xbe, 0xea, 0xae, 0x99, 0xf8, 0x48, 0x93, 0xde, 0x3d, 0xf9, 0x40, 0xa4, 0xe0, 0xb8, 0xe9, 0x93, 0x93, 0x01, 0x39, 0x05, 0x2d, 0x99, 0xbe, 0x47, 0xbc, 0xa8, 0x77, 0x5f, 0x85, 0x63, 0xbd, 0x40, 0x26, 0xb7, 0x13, 0x43, 0xd5, 0x19, 0x68, 0xf2, 0x33, 0x75, 0x28, 0xf4, 0xc9, 0xdb, 0x8b, 0xbd, 0x0a, 0x29, 0x8a, 0xf0, 0x4b, 0x27, 0x69, 0x5d, 0x86, 0xb7, 0xf7, 0xba, 0x6c, 0x4c, 0xcc, 0x62, 0x73, 0xfe, 0xbc, 0xd8, 0xf7, 0x5c, 0xff, 0x26, 0x69, 0x95, 0x24, 0x4f, 0xc1, 0xfa, 0x13, 0xd8, 0xd8, 0x43, 0xf0, 0xbf, 0xf4, 0x9c, 0xc2, 0xd5, 0x08, 0xf4, 0xa2, 0xb3, 0xaa, 0xd1, 0xd9, 0x5f, 0xb2, 0x2a, 0x2b, 0xc6, 0xad, 0x1b, 0x96, 0x6b, 0x08, 0x12, 0xd9, 0x90, 0x70, 0xbb, 0xa0, 0x7c, 0x92, 0x3e, 0xe4, 0xd0, 0x81, 0x07, 0x48, 0x6d, 0xc0, 0x1a, 0x06, 0xdb, 0xa6, 0xf1, 0xd5, 0xf1, 0x05, 0xac, 0xea, 0xde, 0x33, 0xb1, 0x66, 0x51, 0x0e, 0x42, 0x7e, 0xbb, 0xce, 0x52, 0xa3, 0xe7, 0x83, 0x1f, 0x0f, 0x78, 0xa3, 0xc6, 0xe0, 0x72, 0x60, 0x83, 0x34, 0xd8, 0x02, 0x1c, 0x33, 0x8a, 0x73, 0xcc, 0x0c, 0x47, 0xf1, 0x9c, 0x9f, 0xae, 0x40, 0x3b, 0x97, 0x16, 0xd0, 0xd1, 0x5f, 0xbd, 0xf6, 0x46, 0x6b, 0x08, 0xf6, 0xac, 0xce, 0x3f, 0x50, 0xa7, 0x03, 0xb1, 0xde, 0xa8, 0xd8, 0x26, 0xdf, 0x84, 0x2c, 0xa1, 0xba, 0x20, 0xd2, 0x9f, 0x45, 0x48, 0xac, 0xfc, 0x75, 0x4c, 0xf0, 0x11, 0xf5, 0x70, 0x68, 0x1b, 0x59, 0xe4, 0xda, 0x25, 0x38, 0x5e, 0xbd, 0x6d, 0x5c, 0x3a, 0xdc, 0x93, 0x05, 0x29, 0xe1, 0x66, 0xce, 0x67, 0x05, 0xf6, 0x01, 0x02, 0x10, 0xdb, 0x10, 0x64, 0x62, 0xb3, 0x33, 0x32, 0x04, 0xe7, 0xad, 0xad, 0xee, 0x66, 0x06, 0xa5, 0x62, 0x06, 0xb4, 0x7e, 0xef, 0x20, 0x74, 0xb1, 0x16, 0xe2, 0x2a, 0x61, 0x54, 0x18, 0xec, 0x2c, 0xdc, 0x33, 0x1f, 0x1e, 0x19, 0xe0, 0x7e, 0x8a, 0x37, 0xb9, 0x2d, 0x69, 0xdf, 0x07, 0x34, 0xe0, 0x85, 0xda, 0xee, 0xb9, 0x01, 0xec, 0x6e, 0x8c, 0x35, 0xf1, 0x03, 0xf1, 0xd8, 0x6e, 0xf0, 0xd2, 0xa2, 0x65, 0x2b, 0x01, 0xd1, 0x83, 0x59, 0x7e, 0x4c, 0xfd, 0xee, 0xdf, 0xe5, 0xdf, 0x9a, 0x7e, 0xf6, 0x6a, 0x1c, 0x79, 0x6a, 0x37, 0xa2, 0x71, 0x13, 0xb9, 0x44, 0xdd, 0x7b, 0xa1, 0x7c, 0x46, 0x00, 0x15, 0xab, 0x8a, 0xce, 0x45, 0x1c, 0x57, 0x85, 0x0e, 0xc6, 0xc2, 0x90, 0xc5, 0x4e, 0x51, 0x13, 0xf5, 0x5e, 0x99, 0xa8, 0xe6, 0xe4, 0x71, 0x1e, 0x3b, 0x78, 0x17, 0xbf, 0x91, 0xa5, 0xad, 0xb3, 0x7f, 0xb9, 0x46, 0x1b, 0xe6, 0xb1, 0xb5, 0x5d, 0x58, 0x60, 0x46, 0xe4, 0x2a, 0x54, 0xc5, 0xde, 0xf4, 0x07, 0x6f, 0x1f, 0xf6, 0xc3, 0x1b, 0x80, 0x6f, 0xc6, 0x02, 0x47, 0x43, 0x56, 0xaa, 0x28, 0x99, 0xea, 0xe7, 0x0f, 0x5e, 0x5a, 0xbf, 0x1f, 0x75, 0xa7, 0xf2, 0x4c, 0x13, 0x4c, 0xde, 0x11, 0x79, 0x3b, 0xb1, 0x62, 0xe0, 0x3a, 0x58, 0x3d, 0x5b, 0xe0, 0x46, 0xac, 0xc7, 0x34, 0x56, 0xd1, 0x2d, 0x50, 0x9d, 0x92, 0xf7, 0x70, 0x57, 0x68, 0x68, 0x6f, 0x6c, 0x71, 0x4a, 0x4e, 0x57, 0xec, 0x88, 0xb7, 0x13, 0x98, 0xe2, 0x3e, 0x83, 0x5d, 0x6d, 0x65, 0x47, 0x22, 0x59, 0x96, 0xb7, 0xed, 0x08, 0xf3, 0xb7, 0x44, 0x3b, 0xb1, 0x7c, 0x89, 0x94, 0x09, 0x49, 0x3d, 0x0e, 0xfe, 0x84, 0x55, 0xbe, 0xc8, 0xe8, 0xc2, 0x84, 0xa3, 0xb1, 0x49, 0xa5, 0xb4, 0xca, 0x63, 0x1e, 0xa6, 0x20, 0xb1, 0xbb, 0x81, 0x7c, 0xed, 0xab, 0xa5, 0x0b, 0x04, 0x44, 0x11, 0x84, 0x9d, 0x26, 0x0a, 0x6f, 0x2a, 0x0d, 0x3f, 0x2c, 0xce, 0xec, 0x38, 0x42, 0x71, 0x9a, 0x5e, 0xa4, 0xfe, 0x18, 0xdd, 0xe0, 0xd4, 0x2d, 0xcb, 0x33, 0xad, 0x21, 0xe6, 0x45, 0x33, 0x25, 0xaf, 0x6f, 0x3c, 0x00, 0x9f, 0x2b, 0xb9, 0x78, 0xd3, 0x0c, 0xee, 0xae, 0x9a, 0xa4, 0x92, 0x8b, 0xf7, 0x37, 0x67, 0xcd, 0xa9, 0x29, 0x2a, 0xb8, 0x93, 0xce, 0x5f, 0xa3, 0xaa, 0x4c, 0x23, 0x21, 0x63, 0xb4, 0x5c, 0x64, 0xed, 0x79, 0x77, 0x77, 0x9b, 0x1c, 0x0c, 0xaf, 0xcf, 0xc2, 0xb9, 0xfa, 0x08, 0x4a, 0x32, 0x4f, 0x11, 0x3a, 0xde, 0xec, 0x21, 0x8b, 0x47, 0x35, 0xb6, 0xb4, 0x64, 0xdb, 0x6d, 0x46, 0xc2, 0x79, 0x1a, 0xf3, 0x45, 0x5f, 0x1c, 0xa5, 0xea, 0x1e, 0x9a, 0x04, 0x8c, 0x05, 0x1a, 0x54, 0xdf, 0xa0, };
20515 static const u8 ed25519_892_test_vectors_expected_sig[] = {
20516 	0x45, 0xe8, 0xed, 0x1a, 0x75, 0x1d, 0xfc, 0x3b, 0x9b, 0x7b, 0xd7, 0xa1, 0x0b, 0xf5, 0xbd, 0xcf, 0x8c, 0xa4, 0x61, 0x86, 0x5a, 0x49, 0x0c, 0x10, 0x5f, 0x10, 0x45, 0x29, 0x41, 0xcf, 0x87, 0x72, 0x12, 0x14, 0xbf, 0xbf, 0x3a, 0x35, 0x60, 0x6b, 0x7c, 0xe3, 0x5d, 0x6f, 0x70, 0xaa, 0xf2, 0xd5, 0xea, 0xdc, 0xc0, 0xde, 0x03, 0x5e, 0x9b, 0x2f, 0x6d, 0x7b, 0x86, 0x2f, 0xc2, 0x84, 0x90, 0x04, };
20517 static const ec_test_case ed25519_892_test_case = {
20518 	.name = "EDDSA25519-SHA512/wei25519 892",
20519 	.ec_str_p = &wei25519_str_params,
20520 	.priv_key = ed25519_892_test_vectors_priv_key,
20521 	.priv_key_len = sizeof(ed25519_892_test_vectors_priv_key),
20522 	.nn_random = NULL,
20523 	.hash_type = SHA512,
20524 	.msg = (const char *)ed25519_892_test_vectors_message,
20525 	.msglen = sizeof(ed25519_892_test_vectors_message),
20526 	.sig_type = EDDSA25519,
20527 	.exp_sig = ed25519_892_test_vectors_expected_sig,
20528 	.exp_siglen = sizeof(ed25519_892_test_vectors_expected_sig),
20529 	.adata = NULL,
20530 	.adata_len = 0
20531 };
20532 
20533 /************************************************/
20534 static const u8 ed25519_893_test_vectors_priv_key[] = {
20535 	0x59, 0xb0, 0x72, 0x63, 0xb2, 0x2c, 0x0a, 0x38, 0xbb, 0xc5, 0x91, 0x05, 0x95, 0x94, 0xb2, 0xbd, 0x92, 0x7e, 0x80, 0x59, 0x61, 0xdd, 0x07, 0xe1, 0xf9, 0x42, 0x45, 0xb2, 0x3a, 0xa2, 0xe0, 0x16, };
20536 static const u8 ed25519_893_test_vectors_message[] = {
20537 	0x08, 0xce, 0x0d, 0x4d, 0xb5, 0xc2, 0xaa, 0x50, 0x0a, 0x19, 0xef, 0xbc, 0x8d, 0xc8, 0x54, 0x92, 0x50, 0xf7, 0xdd, 0x46, 0xa7, 0xa9, 0xa5, 0x40, 0x74, 0x17, 0xb3, 0xd5, 0x18, 0x20, 0xe4, 0xb0, 0xd6, 0x12, 0x75, 0x58, 0x3f, 0x56, 0xf8, 0x97, 0xfd, 0x94, 0x2b, 0xdd, 0x73, 0x11, 0xad, 0x6b, 0xaf, 0x73, 0x81, 0x28, 0x56, 0x7a, 0xf6, 0x55, 0x8d, 0x75, 0x90, 0x6a, 0x02, 0xc4, 0x34, 0x3a, 0x99, 0x55, 0xd5, 0x9b, 0x11, 0x08, 0x8c, 0x58, 0x8d, 0xc7, 0xdd, 0x08, 0xf6, 0x79, 0x65, 0xc5, 0x60, 0x2a, 0x56, 0x92, 0x8d, 0xda, 0x4a, 0xe1, 0x64, 0x29, 0x31, 0x63, 0xb5, 0x17, 0xca, 0x17, 0xde, 0xd0, 0x4f, 0xe4, 0xab, 0x2f, 0x97, 0x89, 0x13, 0x0a, 0xe9, 0x6a, 0xb2, 0x31, 0xf0, 0x7e, 0x09, 0x01, 0x5b, 0x78, 0xf3, 0x84, 0x8c, 0xef, 0x43, 0x5d, 0xb0, 0xad, 0x9f, 0x35, 0xe0, 0xfb, 0xc9, 0x85, 0x1e, 0x3e, 0xcf, 0xc9, 0xfb, 0x18, 0x6d, 0x14, 0xd8, 0xda, 0x4d, 0xda, 0x45, 0xd0, 0xb3, 0xeb, 0x3e, 0xe4, 0x50, 0x0c, 0x10, 0x1e, 0x31, 0x94, 0xb5, 0x72, 0x14, 0x06, 0x89, 0xcd, 0x75, 0xda, 0x12, 0x87, 0xb2, 0x54, 0xf3, 0x74, 0xe3, 0xd9, 0x33, 0x26, 0xae, 0x5f, 0xaf, 0x11, 0x40, 0x18, 0xac, 0x71, 0x4b, 0xd0, 0x03, 0x75, 0xd9, 0x2a, 0x8b, 0xb6, 0x59, 0xc3, 0x29, 0x12, 0x83, 0x1f, 0x4f, 0x20, 0x77, 0x6e, 0x9e, 0x2c, 0x25, 0x02, 0x9f, 0x0a, 0xff, 0x39, 0xfd, 0xda, 0xc7, 0x24, 0x15, 0x43, 0xa0, 0x36, 0x6b, 0x84, 0xde, 0x7b, 0x1f, 0xf2, 0x3e, 0x8e, 0x4d, 0xc0, 0x93, 0xdf, 0x0d, 0x2d, 0xd5, 0xe5, 0x3e, 0x68, 0x47, 0x94, 0x8c, 0xf3, 0xd0, 0xff, 0x3f, 0x56, 0x4a, 0xd9, 0x4d, 0x9c, 0xc0, 0x0a, 0x5e, 0xa5, 0xb6, 0x95, 0xe4, 0x08, 0xbf, 0x50, 0xf5, 0xba, 0xb2, 0xf6, 0xea, 0x87, 0xba, 0x8a, 0xd3, 0xa1, 0x94, 0x01, 0x95, 0xcf, 0x1b, 0xc2, 0xb5, 0xb3, 0x48, 0x47, 0xad, 0x3a, 0x5e, 0xff, 0xb8, 0xa7, 0x82, 0x3d, 0xe9, 0x1e, 0xf1, 0x63, 0x38, 0x69, 0xd1, 0xf0, 0x46, 0x43, 0xaf, 0x4d, 0x82, 0x6a, 0x59, 0xe7, 0x8b, 0x9d, 0x18, 0x63, 0x12, 0xb3, 0xd9, 0x72, 0x26, 0x36, 0x54, 0xac, 0x55, 0x87, 0xb8, 0x0b, 0x71, 0x76, 0x46, 0xf3, 0x10, 0x03, 0xdb, 0x81, 0xac, 0x70, 0x86, 0x0d, 0x3f, 0xc8, 0xcd, 0x3a, 0x6a, 0x0a, 0x0d, 0x57, 0x6d, 0x25, 0x73, 0x1e, 0xf7, 0xb8, 0x96, 0x62, 0x63, 0xd7, 0xa0, 0x5b, 0x55, 0x00, 0x9e, 0x8a, 0x23, 0xda, 0xc0, 0xf9, 0xa2, 0x1a, 0x24, 0xb0, 0x6e, 0x13, 0x90, 0x0e, 0x44, 0x44, 0x46, 0xfd, 0xfe, 0x56, 0xcb, 0xc1, 0xa0, 0x26, 0xdf, 0x41, 0x06, 0x6b, 0x20, 0x1b, 0x14, 0x81, 0xe5, 0x61, 0x58, 0x92, 0x6c, 0x0c, 0x9e, 0xa9, 0x0f, 0x0c, 0x64, 0x5a, 0xab, 0x4b, 0xef, 0x12, 0xd4, 0xe0, 0x72, 0xcb, 0xfd, 0xc3, 0xc3, 0xd5, 0xe0, 0xc7, 0x2c, 0xf8, 0x8f, 0x16, 0x6d, 0xe0, 0x48, 0x87, 0x4f, 0x35, 0x34, 0xe0, 0x40, 0xc6, 0x2b, 0x16, 0x62, 0x82, 0x1b, 0xdd, 0x16, 0xb0, 0xe8, 0x58, 0x28, 0x17, 0x46, 0x1c, 0xb2, 0x68, 0x92, 0x79, 0xb4, 0x46, 0xd7, 0x0c, 0x8a, 0xc2, 0x0a, 0xd0, 0x3e, 0x59, 0x8c, 0xad, 0x49, 0x08, 0xc5, 0x2c, 0x35, 0x0d, 0x42, 0x43, 0xee, 0x8a, 0xed, 0xb8, 0x7a, 0x4a, 0xf9, 0x77, 0xf7, 0xdb, 0x57, 0xcd, 0x94, 0x7b, 0x47, 0xd6, 0xbb, 0x51, 0x40, 0x9d, 0x80, 0xd8, 0x1f, 0x6d, 0xb0, 0x3c, 0xb9, 0xa6, 0xa6, 0xb7, 0x98, 0x12, 0xf4, 0x70, 0x69, 0x0a, 0xfc, 0x18, 0x36, 0xa5, 0x31, 0x33, 0x80, 0x94, 0xcf, 0x26, 0xd3, 0xc1, 0x23, 0x2f, 0xd5, 0x60, 0x5d, 0x8f, 0x8c, 0x55, 0xb6, 0xf8, 0xa2, 0xa7, 0xef, 0x1e, 0x0c, 0x78, 0x15, 0x55, 0x94, 0xb2, 0x37, 0x95, 0x6d, 0x2a, 0xba, 0xd6, 0xa9, 0xad, 0xcd, 0x58, 0xe1, 0x1c, 0xcd, 0x35, 0xcc, 0x99, 0x5b, 0x9a, 0x0a, 0xec, 0xbf, 0x7f, 0x57, 0x41, 0xac, 0x05, 0x1b, 0x04, 0xef, 0x6b, 0x97, 0x44, 0xb5, 0x6f, 0xcc, 0xb4, 0x63, 0x98, 0x52, 0x8b, 0xb3, 0x1f, 0xbe, 0x84, 0xe0, 0x78, 0x84, 0x3e, 0x69, 0xbf, 0x33, 0x88, 0x98, 0xcd, 0xef, 0x69, 0xad, 0x41, 0x87, 0x23, 0x95, 0xe4, 0x6b, 0x59, 0x39, 0x04, 0x82, 0x55, 0x47, 0xe0, 0x0b, 0xda, 0xf2, 0x21, 0xf8, 0xfa, 0x58, 0x7e, 0xa2, 0x03, 0x7f, 0xfb, 0x9a, 0xc9, 0x30, 0x7d, 0xd3, 0xf8, 0xf3, 0x5e, 0xc5, 0x38, 0x6b, 0xa9, 0x66, 0x33, 0x3e, 0x2a, 0xc8, 0x72, 0x7b, 0x0e, 0x1b, 0x80, 0x61, 0x2d, 0x3c, 0x7f, 0x2c, 0xb8, 0x8b, 0xaa, 0xca, 0xdf, 0xe2, 0x16, 0x3b, 0xc3, 0x8c, 0x88, 0x84, 0x2e, 0x76, 0xa3, 0x94, 0x57, 0x1d, 0x40, 0x61, 0x0e, 0x8a, 0x29, 0x76, 0x02, 0x79, 0x37, 0x63, 0x29, 0x6e, 0x3e, 0xab, 0xf7, 0x20, 0xe9, 0x84, 0xb2, 0xed, 0xd2, 0x8c, 0xf5, 0xc4, 0xe0, 0xf9, 0xa0, 0xf7, 0x6a, 0xce, 0xba, 0x28, 0xcc, 0x1f, 0x1b, 0x69, 0xff, 0x1d, 0x35, 0xb4, 0xbd, 0x33, 0x47, 0xb7, 0xf9, 0xa9, 0x5a, 0x4c, 0x1e, 0xa1, 0x07, 0x34, 0xe1, 0xc9, 0x18, 0xeb, 0x96, 0x24, 0x9d, 0x0c, 0xc7, 0x0b, 0x47, 0x7f, 0x6f, 0x23, 0x80, 0x9b, 0xbd, 0xa9, 0x01, 0xd5, 0x3f, 0x48, 0x5a, 0x71, 0xf5, 0x08, 0x60, 0x02, 0xc1, 0xb7, 0x1e, 0xfc, 0xc4, 0x1c, 0xb1, 0xae, 0xb5, 0x12, 0x2a, 0x3f, 0x3b, 0xfc, 0x96, 0xc5, 0x1a, 0x55, 0xd7, 0x5c, 0x02, 0x98, 0x42, 0x88, 0xbe, 0x65, 0x78, 0x87, 0x85, 0x4c, 0xfa, 0x73, 0x89, 0x74, 0xbc, 0xd5, 0x44, 0x01, 0x46, 0xf9, 0xbb, 0x14, 0x04, 0x0d, 0xe5, 0x4f, 0x54, 0x44, 0xad, 0x43, 0xb7, 0x9a, 0xf9, 0xbd, 0xb2, 0x4e, 0xd6, 0xa4, 0x8e, 0xb2, 0xfd, 0xee, 0xd7, 0x1f, 0x31, 0xf0, 0xec, 0xe1, 0x02, 0xe9, 0x18, 0xe9, 0x56, 0x35, 0xc7, 0xa0, 0x38, 0x63, 0x3e, 0xe3, 0x48, 0xd8, 0xb5, 0x78, 0x16, 0x52, 0xd5, 0x05, 0x9d, 0x21, 0x5a, 0xc9, 0x7f, 0x30, 0xea, 0x20, 0xd2, 0x77, 0xeb, 0xbf, 0x15, 0x24, 0x69, 0x05, 0x42, 0x8a, 0x7b, 0xec, 0x02, 0xb8, 0xf9, 0x26, 0x31, 0x5b, 0xad, 0x67, 0x23, 0xfd, 0x64, 0xd7, 0x1f, 0xc9, 0x5f, 0x33, 0x33, 0x64, 0xcb, 0xe9, 0x0d, 0x46, 0x46, 0x33, 0x3c, 0x40, 0xdd, 0xa6, 0xd1, 0xd4, 0x33, 0xb7, 0xc1, 0x95, 0xa7, 0x58, 0xdb, 0xb4, 0x03, 0x8a, 0xf5, 0xdc, 0xc7, 0x23, 0x2d, 0x45, 0x47, 0xf5, 0x40, 0xe3, 0x94, };
20538 static const u8 ed25519_893_test_vectors_expected_sig[] = {
20539 	0x88, 0x6d, 0xa3, 0x3e, 0x35, 0x53, 0x28, 0x5e, 0xa5, 0x9c, 0x14, 0x31, 0xb6, 0xe8, 0x6e, 0xa4, 0x9b, 0xb6, 0x8b, 0x2e, 0x0e, 0xfd, 0x2b, 0x15, 0x7e, 0x77, 0x91, 0xb7, 0x4f, 0x35, 0xa2, 0x42, 0x1b, 0xb3, 0x59, 0xf3, 0xdc, 0x1e, 0x4c, 0xe5, 0xf1, 0x1f, 0x73, 0x65, 0x2e, 0x03, 0xbf, 0xc0, 0xb4, 0x29, 0xc5, 0x8f, 0x0f, 0x2d, 0x74, 0x18, 0xc7, 0xc2, 0x0b, 0xce, 0x2e, 0x2d, 0x19, 0x01, };
20540 static const ec_test_case ed25519_893_test_case = {
20541 	.name = "EDDSA25519-SHA512/wei25519 893",
20542 	.ec_str_p = &wei25519_str_params,
20543 	.priv_key = ed25519_893_test_vectors_priv_key,
20544 	.priv_key_len = sizeof(ed25519_893_test_vectors_priv_key),
20545 	.nn_random = NULL,
20546 	.hash_type = SHA512,
20547 	.msg = (const char *)ed25519_893_test_vectors_message,
20548 	.msglen = sizeof(ed25519_893_test_vectors_message),
20549 	.sig_type = EDDSA25519,
20550 	.exp_sig = ed25519_893_test_vectors_expected_sig,
20551 	.exp_siglen = sizeof(ed25519_893_test_vectors_expected_sig),
20552 	.adata = NULL,
20553 	.adata_len = 0
20554 };
20555 
20556 /************************************************/
20557 static const u8 ed25519_894_test_vectors_priv_key[] = {
20558 	0x5c, 0xc1, 0x15, 0xd8, 0x39, 0xe0, 0x58, 0xcd, 0xb6, 0x51, 0x8e, 0xe9, 0xc1, 0x61, 0xc0, 0x04, 0xd8, 0x8b, 0xd3, 0x90, 0x8d, 0x3c, 0xf6, 0xd5, 0x2c, 0x8f, 0x29, 0x6a, 0x1a, 0x07, 0x6b, 0x9b, };
20559 static const u8 ed25519_894_test_vectors_message[] = {
20560 	0x53, 0x3e, 0x49, 0xc1, 0xd5, 0xf3, 0x3c, 0x5e, 0xc4, 0xbe, 0x84, 0xc6, 0x19, 0xf4, 0xec, 0x64, 0x9c, 0x25, 0xfd, 0x70, 0xbd, 0xcf, 0xe2, 0x57, 0xa6, 0x3c, 0x33, 0x73, 0xa4, 0xd0, 0x89, 0xc8, 0x9a, 0xf6, 0xee, 0xb7, 0x16, 0x0d, 0xd7, 0x7a, 0xb6, 0x6b, 0x1e, 0xe7, 0xe1, 0x08, 0x50, 0xab, 0x4f, 0xc1, 0xf3, 0x51, 0x32, 0x33, 0x2b, 0x53, 0x78, 0x9b, 0x2b, 0x01, 0x40, 0xc4, 0xf2, 0x0f, 0x97, 0xf2, 0x14, 0x20, 0x72, 0xd6, 0x24, 0xaf, 0xf7, 0xaa, 0xd3, 0x24, 0xaa, 0xcd, 0x06, 0x8c, 0x03, 0x5a, 0xff, 0x52, 0xfa, 0x71, 0x2f, 0x4e, 0x74, 0x83, 0x2d, 0xe0, 0x31, 0xb2, 0x64, 0x23, 0x14, 0xd1, 0x71, 0x10, 0xde, 0xe6, 0xfb, 0x85, 0x76, 0x2d, 0xc3, 0x0d, 0x7e, 0x97, 0x78, 0x2f, 0xd1, 0xfb, 0xff, 0x71, 0x79, 0xf0, 0x09, 0x17, 0xf5, 0x5a, 0xf7, 0x50, 0x3a, 0x5b, 0x7e, 0x23, 0xc6, 0xea, 0xdb, 0x65, 0xe1, 0x04, 0xf1, 0x51, 0x7b, 0x66, 0x24, 0xc9, 0xe5, 0x20, 0x4b, 0x3f, 0xd2, 0x9a, 0x65, 0x85, 0xe9, 0x2c, 0xe3, 0xa3, 0xee, 0xe2, 0xc5, 0xae, 0x17, 0x79, 0x20, 0xf7, 0xb4, 0xab, 0x2c, 0xac, 0x87, 0xd6, 0x72, 0xab, 0x6b, 0xaa, 0xc1, 0x18, 0x6d, 0x90, 0x4a, 0xea, 0x34, 0x98, 0x53, 0x4e, 0xb5, 0xab, 0x23, 0xe4, 0xac, 0x4c, 0x0d, 0xdb, 0x0d, 0x82, 0xa5, 0xae, 0x53, 0x1d, 0x76, 0x54, 0x9d, 0x36, 0x76, 0x28, 0x57, 0x7b, 0xac, 0x42, 0x35, 0xe8, 0x97, 0xd9, 0xfe, 0x20, 0x55, 0x22, 0x04, 0x7d, 0x21, 0x4f, 0xf6, 0xcc, 0xf3, 0x11, 0xc4, 0xe3, 0x97, 0x82, 0x7d, 0x97, 0xf2, 0x86, 0x8e, 0x70, 0xac, 0x17, 0xd2, 0x8e, 0x33, 0x49, 0x99, 0x74, 0x4d, 0x35, 0x93, 0x76, 0xa4, 0x82, 0xfd, 0xcb, 0x41, 0x4b, 0x02, 0xb2, 0x68, 0x7b, 0x96, 0x2e, 0xe8, 0x08, 0x6e, 0x57, 0x3f, 0xe0, 0x00, 0xdc, 0x51, 0xde, 0xe0, 0x68, 0x79, 0xc6, 0x84, 0xe2, 0x5f, 0x94, 0xce, 0xe5, 0xe8, 0x61, 0x34, 0x7e, 0x7b, 0xe7, 0xfc, 0xa5, 0x49, 0xa0, 0xf7, 0x65, 0x13, 0x6a, 0x2f, 0x4b, 0x88, 0xfe, 0xde, 0x07, 0x02, 0x4d, 0xd2, 0xfc, 0xe1, 0xf6, 0xd0, 0xc0, 0x35, 0x4d, 0xa1, 0xa1, 0x6e, 0xf3, 0x66, 0xb3, 0x15, 0xb3, 0xf7, 0x23, 0x30, 0x31, 0xf9, 0x79, 0xb7, 0x0e, 0xac, 0x6e, 0x23, 0xbf, 0x3b, 0x34, 0x9e, 0xfb, 0xd0, 0xe4, 0xf5, 0x3f, 0x4d, 0x5c, 0x41, 0xfc, 0x00, 0x42, 0x76, 0xa5, 0x96, 0x70, 0x65, 0x9f, 0x69, 0x05, 0xef, 0x03, 0xd2, 0xfc, 0x09, 0x8d, 0x58, 0x9f, 0xcb, 0xc1, 0x32, 0x82, 0x82, 0xfa, 0x22, 0xb1, 0x0d, 0xb8, 0x3c, 0x5d, 0x70, 0x86, 0x59, 0x94, 0xfd, 0x19, 0xd7, 0x60, 0xa3, 0x9d, 0x47, 0x6e, 0x02, 0x33, 0x0d, 0x2c, 0x6d, 0x19, 0xe7, 0x42, 0x26, 0x7d, 0xd3, 0x65, 0xbb, 0xe1, 0xfe, 0x5c, 0x71, 0x1a, 0x95, 0xb1, 0x84, 0x50, 0x8c, 0xe4, 0x8c, 0x1c, 0x96, 0xd7, 0xe6, 0x39, 0x90, 0xb4, 0x08, 0xd4, 0x50, 0x89, 0xbe, 0x79, 0xe3, 0x2f, 0x9c, 0xb0, 0x16, 0x2f, 0xd1, 0xe7, 0xd0, 0xd1, 0x9d, 0x97, 0xd0, 0xae, 0x78, 0xff, 0x82, 0x4c, 0xc6, 0x98, 0x94, 0x86, 0xc0, 0xbd, 0x03, 0x83, 0x52, 0x55, 0x1f, 0x37, 0x49, 0x9e, 0x9e, 0x98, 0x26, 0x80, 0x4e, 0x9d, 0x26, 0x24, 0xad, 0x0c, 0x7b, 0x75, 0x34, 0x56, 0x0f, 0x45, 0xfd, 0x7d, 0x32, 0x4b, 0x8e, 0x51, 0x7e, 0x01, 0xc9, 0xb2, 0x74, 0x3c, 0x14, 0x97, 0x9c, 0xfd, 0x51, 0x2b, 0xc3, 0xfe, 0x66, 0x72, 0x79, 0xb3, 0xa2, 0x77, 0xfb, 0x46, 0x3e, 0x9d, 0x73, 0x49, 0xb6, 0x4f, 0xfc, 0x9f, 0xe6, 0x08, 0x84, 0xc2, 0x1e, 0x48, 0x10, 0x81, 0xed, 0x70, 0xe6, 0xda, 0x5a, 0x35, 0x39, 0xc4, 0x48, 0x97, 0x1f, 0x0d, 0x97, 0x87, 0x28, 0x9f, 0xcb, 0x00, 0x80, 0xf2, 0x19, 0xe9, 0x94, 0x49, 0xf8, 0x29, 0x8c, 0x42, 0x47, 0x5f, 0x87, 0xfd, 0x10, 0xae, 0xb5, 0x09, 0xc5, 0x30, 0xcf, 0x6a, 0x57, 0x74, 0x8e, 0xb8, 0xf3, 0x56, 0x21, 0x61, 0xfa, 0x48, 0x75, 0xea, 0x95, 0x3f, 0x09, 0x65, 0x9c, 0x7d, 0xf7, 0xa9, 0x95, 0x0f, 0x03, 0x17, 0x46, 0x7c, 0xb4, 0xe5, 0x36, 0x6e, 0x19, 0x6e, 0x32, 0xf5, 0xe2, 0x69, 0x67, 0x33, 0xa2, 0x5e, 0xac, 0xbd, 0xe4, 0x92, 0x10, 0x49, 0x07, 0x62, 0x06, 0x0e, 0xa2, 0x31, 0x37, 0x0d, 0x40, 0x90, 0x42, 0x9b, 0xb0, 0x6b, 0xb8, 0x67, 0x39, 0x9e, 0x8d, 0x37, 0xbf, 0x5d, 0x21, 0xa0, 0xe7, 0x21, 0x47, 0xe4, 0x96, 0xcf, 0x3b, 0x7d, 0xd6, 0xfe, 0x6e, 0x5e, 0xde, 0xa9, 0x66, 0x8d, 0x80, 0x21, 0x90, 0xa9, 0x1c, 0x60, 0x0e, 0x29, 0x52, 0x3f, 0x8e, 0xb9, 0x04, 0xe4, 0x8b, 0x70, 0x41, 0x2b, 0xc1, 0x0a, 0x70, 0x20, 0x98, 0x4c, 0x5f, 0xf0, 0xf5, 0xf3, 0x83, 0xf2, 0x14, 0xae, 0x59, 0x4d, 0xc8, 0x59, 0x71, 0xe4, 0x80, 0x37, 0x28, 0x48, 0xd0, 0xd7, 0xe7, 0xcc, 0x5c, 0x18, 0xff, 0x88, 0xba, 0x9b, 0x26, 0x2d, 0x78, 0x84, 0x69, 0x8a, 0x41, 0xc6, 0xc7, 0x81, 0x9c, 0x03, 0x19, 0xfd, 0xc6, 0xbb, 0x07, 0xb9, 0x1d, 0xc1, 0x69, 0x4d, 0xaf, 0xe3, 0xaf, 0x37, 0xa5, 0x38, 0xbf, 0x2b, 0x2d, 0x8c, 0xac, 0xb2, 0x7d, 0x24, 0xcd, 0xc6, 0xea, 0xdb, 0x8c, 0x6a, 0x2e, 0x6b, 0x7d, 0xf8, 0xa4, 0x65, 0x4a, 0xe9, 0x37, 0x85, 0x0c, 0x89, 0x0a, 0xd9, 0x30, 0x98, 0x0a, 0xfc, 0xc1, 0x49, 0x2d, 0xb8, 0xa0, 0x16, 0x8c, 0xbc, 0x9f, 0x10, 0x65, 0x7e, 0xb4, 0x8d, 0x2a, 0xc8, 0x7f, 0x51, 0x75, 0xd2, 0x3c, 0xae, 0xd4, 0xb5, 0xe6, 0xf1, 0x0b, 0xbe, 0xaa, 0x5e, 0x33, 0xfc, 0x5f, 0x64, 0x18, 0xd6, 0x3b, 0xa3, 0x74, 0xab, 0x1a, 0x3c, 0xbd, 0x36, 0xb7, 0x29, 0xdd, 0xbd, 0xab, 0xa9, 0x89, 0xd4, 0x64, 0x5e, 0x3a, 0x66, 0x13, 0x0b, 0xae, 0x41, 0x7c, 0xad, 0x08, 0x6d, 0xad, 0xd3, 0x08, 0x43, 0x35, 0x25, 0x14, 0xc3, 0x75, 0xf2, 0x57, 0x1a, 0xba, 0xf9, 0x3e, 0x9a, 0x07, 0x71, 0xfa, 0x10, 0x3a, 0xe9, 0x25, 0x85, 0xb0, 0x4f, 0x55, 0xc4, 0x34, 0x76, 0x9b, 0x43, 0xd6, 0xd2, 0x2f, 0x75, 0x3f, 0x93, 0x06, 0x03, 0x6e, 0x53, 0x52, 0x4f, 0x6f, 0x4d, 0x9c, 0xcb, 0xd2, 0xc3, 0x03, 0x17, 0xa8, 0xe8, 0x99, 0xf3, 0x16, 0x14, 0x90, 0x35, 0x89, 0x4d, 0xa9, 0x45, 0xb7, 0x6d, 0x90, 0x82, 0xbf, 0xee, 0x32, 0x8e, 0x7a, 0x31, 0xb6, 0x63, 0x28, 0xee, 0x8b, 0x94, 0xe0, 0x68, 0xc7, };
20561 static const u8 ed25519_894_test_vectors_expected_sig[] = {
20562 	0x03, 0x71, 0xc2, 0xd6, 0x4c, 0x5e, 0xc0, 0xc8, 0x27, 0x6c, 0xa5, 0xff, 0xa6, 0x15, 0xef, 0xf4, 0x2f, 0x9e, 0xff, 0xfc, 0x58, 0xdd, 0x8e, 0xcf, 0xcf, 0x67, 0x62, 0x0a, 0x9b, 0xcb, 0x38, 0xfa, 0xf1, 0x18, 0x93, 0x2b, 0xf2, 0xcd, 0x5b, 0x92, 0x05, 0xfa, 0x55, 0x13, 0x34, 0xdf, 0x2a, 0x75, 0x7c, 0x59, 0x77, 0x44, 0xf7, 0x91, 0xf3, 0x71, 0xfb, 0xed, 0xd9, 0x8b, 0x21, 0xf7, 0x34, 0x05, };
20563 static const ec_test_case ed25519_894_test_case = {
20564 	.name = "EDDSA25519-SHA512/wei25519 894",
20565 	.ec_str_p = &wei25519_str_params,
20566 	.priv_key = ed25519_894_test_vectors_priv_key,
20567 	.priv_key_len = sizeof(ed25519_894_test_vectors_priv_key),
20568 	.nn_random = NULL,
20569 	.hash_type = SHA512,
20570 	.msg = (const char *)ed25519_894_test_vectors_message,
20571 	.msglen = sizeof(ed25519_894_test_vectors_message),
20572 	.sig_type = EDDSA25519,
20573 	.exp_sig = ed25519_894_test_vectors_expected_sig,
20574 	.exp_siglen = sizeof(ed25519_894_test_vectors_expected_sig),
20575 	.adata = NULL,
20576 	.adata_len = 0
20577 };
20578 
20579 /************************************************/
20580 static const u8 ed25519_895_test_vectors_priv_key[] = {
20581 	0x75, 0xa5, 0x03, 0xf4, 0x8f, 0xfc, 0x22, 0x16, 0x17, 0x67, 0x25, 0x19, 0x11, 0x1b, 0xf9, 0x0d, 0xa3, 0x9d, 0xa9, 0xea, 0xb2, 0xe2, 0x91, 0x4f, 0xd3, 0x75, 0x5f, 0x10, 0xf5, 0x39, 0x36, 0x68, };
20582 static const u8 ed25519_895_test_vectors_message[] = {
20583 	0x7b, 0x01, 0x09, 0x04, 0x23, 0x23, 0x6c, 0xb4, 0xb1, 0x3c, 0x41, 0x77, 0xfc, 0xe5, 0x2a, 0x7f, 0xf6, 0x58, 0x05, 0x88, 0xcc, 0x2e, 0xb5, 0xa3, 0xf3, 0x9f, 0xf5, 0xd0, 0xc7, 0x3e, 0x01, 0xe0, 0x1b, 0xf7, 0xbd, 0x74, 0xaf, 0xe4, 0x15, 0x12, 0x50, 0xc3, 0x91, 0x42, 0x6e, 0xa5, 0x07, 0x27, 0x1b, 0xea, 0x1d, 0x6d, 0x85, 0xf0, 0xb2, 0xfe, 0x35, 0xc4, 0x05, 0x00, 0xf9, 0x8d, 0x06, 0x56, 0xc6, 0x38, 0x8f, 0xc9, 0xef, 0xba, 0x18, 0x37, 0xdb, 0x22, 0xdf, 0xa2, 0x9d, 0x89, 0x26, 0x76, 0xf5, 0x0e, 0x57, 0x5f, 0xe8, 0x9f, 0xd2, 0x93, 0x89, 0xd0, 0x9d, 0x08, 0x0b, 0xad, 0x67, 0xba, 0x54, 0x4c, 0xac, 0xab, 0xf5, 0xa7, 0x73, 0x82, 0x37, 0xc5, 0x5e, 0x28, 0x75, 0xed, 0x49, 0x16, 0x30, 0x2a, 0x2b, 0x4d, 0xc4, 0x96, 0xe7, 0x42, 0x73, 0xbf, 0x05, 0x19, 0x11, 0x37, 0x81, 0x0e, 0x50, 0xe4, 0x81, 0x95, 0x26, 0x0b, 0xab, 0x6d, 0x81, 0xf9, 0xc8, 0x05, 0x62, 0xee, 0x73, 0xcc, 0xb9, 0x33, 0x3c, 0xd9, 0xb6, 0x1d, 0xaf, 0x5b, 0x00, 0x38, 0xa4, 0xe6, 0xc5, 0xc9, 0x58, 0xa9, 0x1f, 0x68, 0x50, 0x8c, 0x1d, 0x88, 0x25, 0x19, 0xc1, 0xaa, 0x4f, 0xfc, 0xc5, 0x35, 0x62, 0x46, 0x3a, 0x0a, 0xe3, 0x01, 0x63, 0x69, 0x6f, 0x84, 0xb9, 0x7c, 0xcb, 0xd8, 0x67, 0x98, 0x20, 0xed, 0xd3, 0x61, 0x7e, 0x7b, 0x89, 0x6e, 0xef, 0xfe, 0x34, 0x1e, 0xc6, 0xb5, 0xb0, 0x3f, 0x73, 0xb6, 0x25, 0xd7, 0x41, 0xc6, 0x55, 0xfe, 0x6e, 0x82, 0xd1, 0x1d, 0x47, 0x8a, 0x7d, 0x54, 0x3f, 0xf6, 0xc0, 0xfa, 0x3a, 0x3a, 0x8c, 0x94, 0xa6, 0x16, 0xfb, 0x84, 0x70, 0x70, 0xd1, 0xfb, 0xdd, 0xe6, 0x01, 0x0f, 0x02, 0x6b, 0x08, 0x9c, 0xd8, 0x63, 0xc3, 0xbd, 0x29, 0xb1, 0xc4, 0x26, 0x9f, 0x77, 0x65, 0x9e, 0x51, 0x57, 0x28, 0x89, 0x0c, 0x97, 0x3b, 0xe8, 0x7f, 0x0b, 0x83, 0x3c, 0xa5, 0xaf, 0x6b, 0x4c, 0x31, 0x33, 0xad, 0x4f, 0xa4, 0xf9, 0x16, 0x55, 0xc6, 0xad, 0xb5, 0xb7, 0x23, 0x5c, 0x27, 0xfe, 0x34, 0x82, 0x84, 0xf3, 0xf1, 0x33, 0x66, 0xa6, 0xa0, 0x3a, 0xd2, 0x2b, 0x87, 0xc6, 0xf5, 0x58, 0x4b, 0xde, 0xae, 0xa4, 0x8c, 0x70, 0x32, 0x5d, 0x6e, 0x33, 0xa4, 0x75, 0xf5, 0x05, 0x11, 0x06, 0x38, 0x75, 0x19, 0x2a, 0x87, 0xed, 0xc3, 0x88, 0x08, 0x9b, 0x84, 0x39, 0x53, 0x90, 0xc2, 0xa3, 0xad, 0x89, 0xa2, 0x25, 0x95, 0xdc, 0x4a, 0x71, 0x5a, 0x42, 0xa2, 0xc0, 0xef, 0xde, 0xf6, 0x7b, 0x35, 0x4b, 0x34, 0xfc, 0x75, 0xca, 0x98, 0xdf, 0x91, 0x3e, 0x75, 0x9e, 0x51, 0xc7, 0xf6, 0x25, 0xdd, 0xd5, 0x98, 0xac, 0x22, 0xd4, 0x21, 0xde, 0xcb, 0x57, 0xbe, 0xbd, 0x54, 0x22, 0x0e, 0xc6, 0xda, 0xa5, 0xec, 0xe7, 0x69, 0xd2, 0xe0, 0x1b, 0xe7, 0xb6, 0xbe, 0xe2, 0xff, 0x5a, 0x0b, 0x06, 0xb3, 0x2d, 0x6d, 0xa1, 0xd7, 0xbc, 0x05, 0x7e, 0x3a, 0xbf, 0xaa, 0xb2, 0x42, 0xa3, 0xf7, 0xe6, 0x64, 0x6a, 0x15, 0x9e, 0x4f, 0x50, 0x5e, 0x46, 0x62, 0x98, 0x2b, 0x13, 0xd0, 0xcc, 0x1f, 0xba, 0x91, 0xd1, 0x03, 0x09, 0xa4, 0x2d, 0xc1, 0x08, 0x7c, 0xf1, 0x0d, 0x36, 0xe3, 0x1f, 0x17, 0x06, 0x15, 0xa0, 0xac, 0xb5, 0x08, 0xbf, 0x68, 0x3e, 0x2d, 0xe0, 0x0c, 0x87, 0x64, 0x0d, 0x30, 0x4a, 0x94, 0x7b, 0xc4, 0x97, 0x1f, 0xf3, 0x61, 0x9c, 0x72, 0xab, 0xd8, 0x3c, 0x7b, 0x2c, 0xbb, 0x34, 0x64, 0xc4, 0x04, 0x0c, 0x26, 0x62, 0xb5, 0x85, 0x08, 0xb7, 0x46, 0x80, 0xcf, 0xa6, 0xde, 0x06, 0xe8, 0xd2, 0x1e, 0x3b, 0xec, 0x85, 0x11, 0x19, 0x93, 0x12, 0x68, 0x00, 0x09, 0x07, 0x1f, 0x70, 0x6b, 0x7b, 0x13, 0x3a, 0x24, 0x87, 0xd5, 0x74, 0x5f, 0xfa, 0xdd, 0x5d, 0xc0, 0xeb, 0x2b, 0x55, 0x3d, 0xf4, 0x40, 0x78, 0x7f, 0x01, 0x1d, 0xda, 0x37, 0x71, 0x9f, 0xa7, 0x13, 0x15, 0xe8, 0xb2, 0x91, 0xef, 0xd7, 0x7d, 0xa3, 0xba, 0x14, 0xfb, 0x99, 0x5f, 0x03, 0x57, 0x1a, 0x3d, 0xb5, 0x22, 0xb6, 0x3c, 0x60, 0xbe, 0x56, 0x19, 0x94, 0x16, 0x99, 0xb3, 0x92, 0x22, 0xb5, 0x9d, 0x0f, 0x23, 0xe5, 0xeb, 0x37, 0xea, 0xd4, 0xb7, 0xf7, 0x50, 0xed, 0x4a, 0xbf, 0x4d, 0xb8, 0x7c, 0x70, 0xda, 0x66, 0x5b, 0xef, 0x4d, 0x7a, 0x29, 0x21, 0xb2, 0xc9, 0x98, 0x97, 0xf2, 0x32, 0x1c, 0x9b, 0xe6, 0x07, 0x5e, 0x74, 0x4c, 0x82, 0x28, 0x63, 0x9a, 0xb7, 0x36, 0xdb, 0xeb, 0x2b, 0xea, 0xb4, 0x40, 0xc1, 0x56, 0xa3, 0x9a, 0x2e, 0xfd, 0x26, 0x1d, 0xb5, 0x08, 0x55, 0xe3, 0x04, 0xd9, 0xcf, 0xeb, 0x99, 0x14, 0x1c, 0x61, 0x35, 0x58, 0x10, 0x9f, 0x21, 0x47, 0x4d, 0x27, 0x2a, 0x2d, 0x90, 0x6d, 0x48, 0x93, 0x93, 0x4a, 0xff, 0x8e, 0x08, 0xa4, 0xfc, 0xee, 0x96, 0x4a, 0x5c, 0xd0, 0x07, 0x32, 0xfd, 0x33, 0xaf, 0x29, 0x84, 0x9c, 0x8d, 0xfc, 0xa6, 0x59, 0x79, 0x42, 0x18, 0x57, 0x18, 0x5c, 0xf6, 0x29, 0xf8, 0x68, 0x07, 0xa8, 0x59, 0x73, 0xd3, 0x44, 0x0a, 0x6b, 0xf8, 0x11, 0xa5, 0x8d, 0x04, 0x13, 0x87, 0x24, 0x98, 0x11, 0xec, 0x04, 0x7e, 0x5e, 0x8b, 0x34, 0x3b, 0x23, 0x87, 0xd0, 0x18, 0x1e, 0x0d, 0x0b, 0xd4, 0x61, 0xef, 0x10, 0xe8, 0x16, 0x4a, 0xae, 0x35, 0x7d, 0x9b, 0x29, 0xdc, 0x0a, 0xce, 0x3e, 0xc6, 0xd7, 0x43, 0xae, 0x34, 0x54, 0xab, 0x9f, 0x84, 0x2a, 0x28, 0xd5, 0x71, 0x02, 0x17, 0xdf, 0xfe, 0x50, 0x34, 0x4e, 0x8d, 0x93, 0x2f, 0x18, 0x01, 0xb0, 0xe8, 0xf9, 0x66, 0x19, 0x8e, 0xf1, 0xc9, 0xcc, 0x69, 0x69, 0xf3, 0x47, 0x34, 0xaa, 0x6a, 0x63, 0xae, 0xaa, 0xb4, 0x33, 0x9f, 0x75, 0xd3, 0x4f, 0xfa, 0x8a, 0xcb, 0x93, 0x7e, 0xd9, 0xc7, 0x30, 0x92, 0xa3, 0x09, 0xa9, 0xb8, 0x4a, 0x25, 0x01, 0x1e, 0x31, 0x14, 0xc2, 0x65, 0xe4, 0xf6, 0x02, 0x33, 0x7e, 0xb6, 0x99, 0xb5, 0xa2, 0x2d, 0x57, 0x2b, 0x03, 0xe4, 0xda, 0xd0, 0x3b, 0x04, 0x61, 0xc0, 0x0d, 0xb9, 0x67, 0x9b, 0x72, 0xfc, 0x5b, 0x49, 0x3e, 0xf4, 0x48, 0x6f, 0x85, 0x53, 0x5d, 0x81, 0x3a, 0x58, 0x08, 0x03, 0x85, 0xaf, 0xd4, 0xe8, 0xd8, 0x71, 0x82, 0x80, 0x34, 0x33, 0x4b, 0xfe, 0x44, 0x1d, 0x18, 0x98, 0x4e, 0x4d, 0xfc, 0xde, 0x02, 0x44, 0x03, 0xb5, 0xae, 0x66, 0xcc, 0x50, 0xa4, 0x73, 0x01, 0xb5, 0x7f, 0x9a, 0x32, 0xf7, 0x40, 0xbd, 0xc7, 0xff, 0x1d, };
20584 static const u8 ed25519_895_test_vectors_expected_sig[] = {
20585 	0xdf, 0x28, 0xe3, 0xe6, 0x30, 0x36, 0x08, 0x67, 0x86, 0x4b, 0xc4, 0x1e, 0x43, 0xfd, 0x7d, 0xde, 0xb5, 0x28, 0x76, 0xdc, 0xe9, 0xb2, 0x34, 0xa3, 0xfc, 0xc3, 0xd8, 0x54, 0x9d, 0xb0, 0x11, 0x2e, 0x17, 0x63, 0x90, 0xa6, 0x85, 0xeb, 0xd4, 0x84, 0x93, 0x6e, 0x25, 0xc0, 0x8c, 0x8a, 0x38, 0x78, 0xa3, 0x7b, 0x3c, 0x4e, 0x23, 0x9a, 0xd0, 0xa0, 0xe5, 0x01, 0x99, 0x37, 0xff, 0xbc, 0xd4, 0x07, };
20586 static const ec_test_case ed25519_895_test_case = {
20587 	.name = "EDDSA25519-SHA512/wei25519 895",
20588 	.ec_str_p = &wei25519_str_params,
20589 	.priv_key = ed25519_895_test_vectors_priv_key,
20590 	.priv_key_len = sizeof(ed25519_895_test_vectors_priv_key),
20591 	.nn_random = NULL,
20592 	.hash_type = SHA512,
20593 	.msg = (const char *)ed25519_895_test_vectors_message,
20594 	.msglen = sizeof(ed25519_895_test_vectors_message),
20595 	.sig_type = EDDSA25519,
20596 	.exp_sig = ed25519_895_test_vectors_expected_sig,
20597 	.exp_siglen = sizeof(ed25519_895_test_vectors_expected_sig),
20598 	.adata = NULL,
20599 	.adata_len = 0
20600 };
20601 
20602 /************************************************/
20603 static const u8 ed25519_896_test_vectors_priv_key[] = {
20604 	0xd8, 0xaa, 0x2a, 0x0a, 0xa5, 0x14, 0xfd, 0x84, 0x5f, 0x7a, 0xa6, 0x6b, 0x83, 0xc0, 0xea, 0xbb, 0x9c, 0x16, 0x02, 0x3a, 0xbc, 0x16, 0x95, 0x77, 0x34, 0x50, 0xb2, 0xbb, 0x33, 0x25, 0x22, 0xf2, };
20605 static const u8 ed25519_896_test_vectors_message[] = {
20606 	0x08, 0xde, 0xb3, 0xb8, 0x32, 0xf5, 0x2d, 0x65, 0x56, 0xf7, 0x8c, 0x3f, 0x0a, 0xbe, 0x46, 0xf1, 0xef, 0xe4, 0x5e, 0x3d, 0x5d, 0x88, 0xe7, 0xf8, 0xed, 0xf8, 0x03, 0x67, 0x0c, 0xe4, 0x61, 0x29, 0x21, 0x74, 0x9e, 0x9e, 0xce, 0x63, 0xfd, 0xc9, 0xbe, 0xf2, 0xba, 0x48, 0x38, 0x12, 0xbb, 0x62, 0x2b, 0xe7, 0x44, 0xd4, 0x04, 0x04, 0xfd, 0x6e, 0x09, 0xc9, 0xe1, 0xcb, 0x7c, 0xe1, 0x9d, 0xe8, 0x1a, 0x9d, 0xad, 0xf5, 0x56, 0x35, 0x2e, 0xe8, 0x98, 0x10, 0xc7, 0x6a, 0x9b, 0x10, 0x47, 0xac, 0x62, 0xb1, 0x6e, 0xbb, 0x7d, 0xa2, 0x3d, 0xdc, 0x2d, 0x4a, 0xb7, 0x6a, 0x02, 0x05, 0x61, 0xd0, 0x2d, 0x41, 0xb5, 0x8b, 0x94, 0x95, 0x3a, 0x23, 0xfa, 0xaf, 0xdd, 0xd7, 0x81, 0xb7, 0xdc, 0xa7, 0xb7, 0xfb, 0xee, 0x70, 0x6e, 0xc1, 0x0a, 0x73, 0x12, 0x5b, 0xf7, 0x44, 0x36, 0x05, 0x6b, 0xf3, 0xb4, 0xf2, 0xa0, 0x70, 0x1c, 0xfe, 0xf0, 0x5b, 0xeb, 0xd3, 0xdd, 0x8e, 0xef, 0x30, 0x6c, 0x1a, 0xc1, 0xb0, 0x09, 0x50, 0x88, 0x1f, 0xf0, 0x5a, 0xb5, 0xc8, 0x24, 0x8a, 0xd1, 0x09, 0x6a, 0xc9, 0x1d, 0x52, 0x6a, 0xe5, 0x9b, 0xa0, 0x58, 0x3b, 0x27, 0xdb, 0x7d, 0x1e, 0x39, 0x0f, 0x57, 0xa5, 0x88, 0x9e, 0x27, 0x99, 0xa4, 0xa1, 0x51, 0x9b, 0x15, 0xd9, 0x3d, 0xbf, 0x0b, 0x21, 0xd4, 0x50, 0x87, 0x3c, 0x76, 0xba, 0x52, 0x04, 0x61, 0xe8, 0xbb, 0x5c, 0x83, 0xc9, 0x01, 0x2e, 0xac, 0xd5, 0x57, 0xbe, 0xa6, 0x40, 0x58, 0x6e, 0xfc, 0xb8, 0x69, 0x00, 0x76, 0x47, 0xd4, 0x49, 0xf9, 0x1c, 0xcd, 0x52, 0xaf, 0xe3, 0xa8, 0x94, 0x77, 0xde, 0x7c, 0x2b, 0x64, 0x7e, 0xcc, 0x9b, 0xf9, 0x67, 0xfb, 0xf5, 0x76, 0x9d, 0x74, 0x88, 0x94, 0x47, 0xd9, 0x52, 0x2d, 0x9e, 0x80, 0x69, 0xc3, 0x49, 0x9a, 0xf6, 0xa8, 0xa1, 0x09, 0x7a, 0x95, 0xd3, 0xbc, 0xc5, 0xf8, 0x34, 0x33, 0x93, 0x44, 0x84, 0x31, 0x4c, 0xb3, 0x07, 0x58, 0xb5, 0x25, 0xfe, 0x53, 0xe9, 0x07, 0x21, 0xdf, 0x5c, 0xbe, 0x03, 0xd9, 0x6f, 0x0d, 0x0f, 0x98, 0x52, 0x1f, 0x01, 0xa5, 0xfb, 0xe5, 0x7c, 0xe8, 0x80, 0x4d, 0xbd, 0x18, 0xf8, 0xf5, 0xea, 0xc8, 0xf7, 0xdb, 0xb5, 0x8c, 0x41, 0x78, 0x9a, 0x44, 0x43, 0x3f, 0x8a, 0x8d, 0x12, 0x45, 0xd2, 0xad, 0xda, 0x8c, 0x78, 0xd8, 0x81, 0xc6, 0x5e, 0xa6, 0x61, 0xab, 0x17, 0x8d, 0x4f, 0xc2, 0x63, 0x4c, 0xd6, 0xcb, 0x51, 0x4a, 0xb6, 0xf2, 0x54, 0x3e, 0x91, 0x12, 0x18, 0x3f, 0x3f, 0xf7, 0x3a, 0x3f, 0x45, 0x01, 0x06, 0xb0, 0xee, 0x8a, 0x34, 0x7a, 0x80, 0xcb, 0x82, 0x4a, 0xc1, 0xf8, 0x01, 0x64, 0xe3, 0xbb, 0x51, 0x23, 0x69, 0x8d, 0xe0, 0xe7, 0x47, 0x35, 0x9c, 0xa3, 0x5a, 0xca, 0xa3, 0xba, 0x0c, 0x94, 0x3b, 0xea, 0xcd, 0x7a, 0x9b, 0xdf, 0x8f, 0xf7, 0x39, 0x78, 0xe9, 0xfb, 0x00, 0x20, 0x45, 0xe8, 0xfe, 0x56, 0x48, 0xcc, 0x0f, 0x9c, 0xfa, 0x88, 0xb0, 0xd8, 0x12, 0xe8, 0x1a, 0xa6, 0x2e, 0x0d, 0x9c, 0x73, 0xfe, 0x61, 0x3a, 0xfd, 0x95, 0x39, 0xbc, 0xb6, 0x15, 0x72, 0x1f, 0xb4, 0x97, 0xd6, 0x2f, 0x65, 0xc8, 0x3b, 0x87, 0xa6, 0xd2, 0x14, 0x3f, 0x9b, 0x1c, 0x88, 0x0e, 0xc8, 0x67, 0x1b, 0xd4, 0x2c, 0x8d, 0xe9, 0x57, 0xb1, 0xa6, 0x8e, 0xe4, 0x92, 0x26, 0xff, 0x71, 0x7c, 0xcc, 0x6e, 0x74, 0xf2, 0xee, 0xe4, 0x9c, 0x30, 0xde, 0xa5, 0x3f, 0xec, 0x3c, 0xd4, 0xd9, 0x0f, 0x2c, 0xcc, 0xd8, 0xf9, 0x7c, 0x55, 0xd5, 0xc7, 0x52, 0x45, 0x4b, 0xe2, 0xba, 0x7b, 0x6f, 0xf2, 0x03, 0x0b, 0xe6, 0x7e, 0x0d, 0xf5, 0x0c, 0x5e, 0x88, 0x38, 0x43, 0xe7, 0x16, 0x12, 0xf2, 0xb9, 0x53, 0x59, 0x54, 0x3e, 0x2b, 0xa1, 0xbf, 0x2e, 0x98, 0xde, 0xbc, 0xf5, 0x76, 0x8f, 0x2b, 0xe6, 0xfd, 0x50, 0x4d, 0x97, 0x83, 0xce, 0x92, 0x1a, 0x81, 0xe0, 0x94, 0x16, 0xdb, 0xcf, 0x2b, 0xb6, 0x55, 0xa9, 0x24, 0xb1, 0xef, 0x01, 0x12, 0xd6, 0x71, 0xf0, 0x84, 0xa5, 0xb6, 0x90, 0xb0, 0xb6, 0x4a, 0x8b, 0x9b, 0xf5, 0x03, 0x33, 0xc3, 0x59, 0xff, 0x3f, 0xef, 0x19, 0x96, 0x94, 0xf9, 0xb6, 0x29, 0x24, 0x24, 0xf0, 0x06, 0x66, 0xce, 0xf6, 0xd0, 0x6d, 0x16, 0x1a, 0x79, 0xe3, 0xa1, 0xb9, 0xb9, 0x62, 0x9e, 0xea, 0x53, 0x50, 0x5f, 0x5e, 0x36, 0xae, 0xad, 0xfe, 0x0d, 0x75, 0x96, 0x72, 0xb0, 0xff, 0xe4, 0x98, 0x39, 0x7d, 0x90, 0xa5, 0x5d, 0x99, 0x44, 0xb3, 0x05, 0x41, 0xa7, 0xe1, 0xbd, 0xac, 0x53, 0x02, 0x06, 0x40, 0x13, 0x7d, 0xc2, 0x52, 0xae, 0xf6, 0x22, 0xf3, 0x81, 0x9d, 0x36, 0xab, 0x49, 0x8d, 0x76, 0x3e, 0x43, 0x27, 0xba, 0x85, 0x80, 0xdd, 0x9f, 0x7e, 0x5f, 0x47, 0xc2, 0x4c, 0xc9, 0x92, 0x87, 0x34, 0xb7, 0xe6, 0x21, 0x12, 0xc5, 0x7e, 0x3e, 0x0c, 0xfe, 0xde, 0xcd, 0xcb, 0xac, 0xcb, 0x0c, 0x45, 0xaf, 0x82, 0x19, 0x45, 0x5e, 0xe7, 0x22, 0x3c, 0x71, 0xe7, 0xe2, 0x04, 0x10, 0xc5, 0x24, 0x4e, 0xb8, 0x27, 0xaf, 0x2f, 0x39, 0x35, 0xce, 0x47, 0x55, 0x44, 0x47, 0x47, 0xaa, 0x94, 0x5f, 0x4c, 0x26, 0xdb, 0x3a, 0x29, 0x85, 0x19, 0xe7, 0x5f, 0xc6, 0xba, 0xce, 0x91, 0x52, 0x99, 0x72, 0xe8, 0x69, 0x1b, 0x69, 0x4d, 0x30, 0xaa, 0x8b, 0x5e, 0xc4, 0xc1, 0xa0, 0x28, 0xd3, 0xbd, 0x10, 0xbd, 0x0c, 0x8a, 0x40, 0x8f, 0xb7, 0xd9, 0xd7, 0x03, 0x49, 0x55, 0x53, 0xec, 0xea, 0x59, 0x8d, 0x06, 0x22, 0xdc, 0xc7, 0x4d, 0xe4, 0x89, 0xba, 0x71, 0x95, 0xcd, 0xae, 0x8d, 0x5c, 0xff, 0x98, 0x55, 0x92, 0x18, 0x37, 0xb5, 0x28, 0x43, 0x3e, 0xe5, 0x5c, 0x0b, 0x70, 0x90, 0x85, 0x7a, 0x0c, 0x27, 0x84, 0xd9, 0x31, 0x0b, 0x48, 0x25, 0xa7, 0x99, 0x3a, 0xd9, 0xc6, 0xf1, 0x8f, 0x83, 0xbc, 0xa5, 0xcc, 0x6a, 0x25, 0x04, 0x71, 0x68, 0xa8, 0x37, 0x6b, 0x06, 0x2e, 0x3a, 0x48, 0xea, 0x90, 0xca, 0xd8, 0x8e, 0x33, 0x11, 0x87, 0xc2, 0xb6, 0xf2, 0x81, 0x42, 0x6f, 0x81, 0xf7, 0x88, 0x04, 0xa8, 0x95, 0xc4, 0xec, 0x06, 0xc3, 0x41, 0xfe, 0x84, 0x6a, 0xf4, 0x52, 0x7e, 0xa2, 0x60, 0x69, 0xdc, 0xf6, 0x1d, 0x81, 0x3f, 0xdd, 0xf0, 0xfc, 0x43, 0xc7, 0x07, 0x35, 0x0b, 0xfb, 0x2f, 0xc1, 0xcf, 0xfc, 0xee, 0x7d, 0x7c, 0xcd, 0x7d, 0x75, 0xf7, 0xa4, 0x65, 0xa3, 0xd1, 0x4d, 0x57, 0x30, 0x2c, 0x14, 0x6a, 0xba, 0x3e, };
20607 static const u8 ed25519_896_test_vectors_expected_sig[] = {
20608 	0x14, 0x6f, 0x65, 0xd4, 0x3e, 0x71, 0x55, 0x42, 0x89, 0x4b, 0x79, 0x00, 0xa2, 0xf8, 0xcd, 0x4b, 0x17, 0xd3, 0x87, 0x0a, 0x61, 0x00, 0xe3, 0x7d, 0xe0, 0x05, 0xb0, 0xdb, 0x5d, 0x81, 0x51, 0x24, 0x6d, 0xe4, 0xee, 0x38, 0x42, 0xd3, 0xeb, 0xca, 0x20, 0xa5, 0xda, 0x22, 0xa3, 0x63, 0xa7, 0x57, 0x5e, 0x7a, 0x55, 0x12, 0x82, 0x95, 0xf2, 0x72, 0x11, 0x48, 0x4a, 0xf5, 0x7c, 0xd5, 0x31, 0x09, };
20609 static const ec_test_case ed25519_896_test_case = {
20610 	.name = "EDDSA25519-SHA512/wei25519 896",
20611 	.ec_str_p = &wei25519_str_params,
20612 	.priv_key = ed25519_896_test_vectors_priv_key,
20613 	.priv_key_len = sizeof(ed25519_896_test_vectors_priv_key),
20614 	.nn_random = NULL,
20615 	.hash_type = SHA512,
20616 	.msg = (const char *)ed25519_896_test_vectors_message,
20617 	.msglen = sizeof(ed25519_896_test_vectors_message),
20618 	.sig_type = EDDSA25519,
20619 	.exp_sig = ed25519_896_test_vectors_expected_sig,
20620 	.exp_siglen = sizeof(ed25519_896_test_vectors_expected_sig),
20621 	.adata = NULL,
20622 	.adata_len = 0
20623 };
20624 
20625 /************************************************/
20626 static const u8 ed25519_897_test_vectors_priv_key[] = {
20627 	0xde, 0x8f, 0x1c, 0x99, 0xe7, 0xf8, 0x55, 0x6d, 0xf2, 0x0b, 0x59, 0xb8, 0x50, 0x4c, 0xff, 0x7c, 0x6c, 0x52, 0x41, 0xa8, 0xae, 0xeb, 0x30, 0xb9, 0x2e, 0xab, 0x97, 0xbf, 0x48, 0x1d, 0x0f, 0xe9, };
20628 static const u8 ed25519_897_test_vectors_message[] = {
20629 	0x38, 0xd9, 0x3e, 0x5c, 0x98, 0x01, 0xdb, 0x90, 0x17, 0x97, 0xec, 0x75, 0xc6, 0xdd, 0xdc, 0x65, 0xae, 0x79, 0x80, 0xde, 0x21, 0x0b, 0xed, 0x43, 0xb3, 0x3e, 0xb4, 0x4c, 0xdc, 0x6d, 0xc9, 0x93, 0x3f, 0xb6, 0xbe, 0xc7, 0x42, 0x1d, 0xb1, 0x0f, 0x0a, 0x59, 0x32, 0x0b, 0x9e, 0x64, 0x2a, 0x21, 0xf1, 0xdd, 0x23, 0x56, 0x01, 0xfc, 0xd6, 0xc5, 0x3b, 0xe4, 0xa8, 0x77, 0xf4, 0xfe, 0xd3, 0xfa, 0x4a, 0x0a, 0xd4, 0xdc, 0x6e, 0x9b, 0x39, 0x1b, 0xcf, 0xa4, 0x34, 0x90, 0x69, 0x25, 0xba, 0x45, 0xec, 0xc5, 0xb4, 0x35, 0xd9, 0xab, 0x8c, 0xfa, 0xfc, 0x39, 0x4b, 0xdc, 0xca, 0x9b, 0x07, 0xd5, 0x66, 0x83, 0x93, 0x44, 0x6e, 0x34, 0x00, 0xe9, 0x03, 0x94, 0x35, 0xa1, 0xdc, 0x78, 0xcb, 0xc0, 0x88, 0x07, 0xa3, 0xfb, 0x24, 0xca, 0x8b, 0x19, 0xf6, 0x4e, 0xa0, 0x8b, 0x8b, 0xf6, 0xc2, 0x0a, 0x19, 0x5b, 0x51, 0xff, 0x80, 0x15, 0xf3, 0xe7, 0xc9, 0x1d, 0x08, 0xe4, 0xbc, 0x62, 0x41, 0x55, 0x95, 0xa5, 0xa8, 0x82, 0xfb, 0xa6, 0x51, 0xdc, 0x3a, 0x67, 0x51, 0x87, 0xaf, 0x61, 0x82, 0x49, 0x74, 0x7b, 0x46, 0x80, 0xd1, 0xd1, 0x5a, 0x20, 0x2e, 0xa9, 0xdf, 0x48, 0xb1, 0xc2, 0x14, 0xfd, 0x40, 0x34, 0x66, 0xfd, 0x1a, 0x26, 0x5f, 0x2d, 0xef, 0xaf, 0x8e, 0xd5, 0xa6, 0xbf, 0x0e, 0xb0, 0x8d, 0x18, 0x64, 0xf2, 0xa2, 0x8e, 0x94, 0x72, 0x14, 0x3c, 0x6f, 0xd1, 0x03, 0xb6, 0xb1, 0x08, 0xc0, 0xd1, 0xd1, 0x36, 0x3b, 0x99, 0xf9, 0x20, 0x2d, 0x11, 0xf0, 0x20, 0x56, 0xc2, 0x79, 0xcc, 0xa3, 0x15, 0xdb, 0x1a, 0xb6, 0xd3, 0x10, 0x18, 0x45, 0x8f, 0x57, 0xba, 0x33, 0x16, 0xcd, 0x27, 0x38, 0xe8, 0x0c, 0x49, 0x2d, 0x85, 0x7c, 0xb1, 0x74, 0x99, 0x25, 0xe3, 0x31, 0xc6, 0x58, 0x58, 0xb5, 0x09, 0x83, 0xcd, 0x98, 0x38, 0xcf, 0xd2, 0x18, 0x8a, 0x5e, 0x8f, 0x05, 0xb4, 0x71, 0xfd, 0x3c, 0xdd, 0xcd, 0x30, 0xd9, 0x69, 0x01, 0x19, 0x40, 0x20, 0xf1, 0x15, 0xfb, 0x46, 0x9a, 0xb5, 0x84, 0x90, 0x06, 0xdf, 0xfa, 0x2d, 0x54, 0x3a, 0x13, 0xb3, 0xb5, 0x06, 0xed, 0x65, 0xcc, 0x45, 0x75, 0x32, 0xb8, 0xaa, 0x3e, 0xe3, 0x1d, 0x9d, 0x8d, 0x9e, 0x52, 0x98, 0xd7, 0xac, 0x70, 0x7a, 0xc1, 0x5b, 0x82, 0x7a, 0x57, 0x8c, 0x81, 0xd4, 0x34, 0xf8, 0x4c, 0xb1, 0xb5, 0x61, 0x20, 0xd6, 0x67, 0xb2, 0xaf, 0xe6, 0xd1, 0x53, 0x0a, 0xfd, 0xdf, 0xb9, 0x66, 0xd9, 0x53, 0xbe, 0x7e, 0x32, 0xdf, 0x07, 0xde, 0x38, 0x9e, 0x2d, 0x04, 0xb2, 0x32, 0xd3, 0x51, 0x2c, 0x7d, 0xb9, 0x35, 0x8f, 0xc9, 0x44, 0xd1, 0xb1, 0x18, 0x07, 0x8e, 0x69, 0x99, 0xe8, 0x91, 0xbb, 0xfa, 0x4a, 0x43, 0x29, 0xf6, 0x5d, 0x80, 0x71, 0x88, 0xb5, 0x98, 0x58, 0xc4, 0x31, 0x21, 0x1b, 0x29, 0x57, 0x6f, 0x44, 0x96, 0x13, 0x8b, 0x7c, 0x0c, 0x12, 0x8f, 0x7b, 0xef, 0x5f, 0x79, 0xb0, 0xf4, 0x46, 0xfc, 0x6b, 0x4a, 0x0e, 0x20, 0xbc, 0xa4, 0xc4, 0x0a, 0x83, 0x57, 0x1a, 0x36, 0x64, 0x4a, 0xbf, 0xfa, 0xbd, 0x49, 0xcb, 0x58, 0x5f, 0xd0, 0x64, 0xc8, 0xe5, 0x09, 0xd9, 0xa0, 0xfc, 0xff, 0x46, 0x26, 0x76, 0xf0, 0xeb, 0xcb, 0x61, 0xce, 0xc6, 0x1e, 0x51, 0x2b, 0xe6, 0xf1, 0x82, 0xab, 0xd5, 0x9e, 0x09, 0xf6, 0x42, 0xaa, 0x61, 0x96, 0x34, 0x85, 0x34, 0x82, 0xec, 0xe8, 0xf8, 0x98, 0x00, 0xf9, 0xc5, 0xbc, 0xfb, 0x84, 0x14, 0x31, 0xca, 0x06, 0x91, 0xed, 0x8d, 0x80, 0xe0, 0xa2, 0xfc, 0xb7, 0x97, 0xa0, 0x36, 0x89, 0x7c, 0xfb, 0x65, 0x37, 0x58, 0x6b, 0x31, 0xc0, 0x0b, 0x79, 0x65, 0xef, 0xdd, 0xfd, 0xa7, 0x28, 0x61, 0x84, 0x50, 0x26, 0x45, 0x91, 0x57, 0xf7, 0x9e, 0xba, 0x1b, 0xca, 0xf6, 0xcd, 0x41, 0xd6, 0x18, 0xae, 0xb1, 0xbd, 0x8d, 0xa1, 0xbe, 0x98, 0xf0, 0xcd, 0xc7, 0xf2, 0xe0, 0x9b, 0x90, 0x3d, 0xe4, 0x9c, 0x0c, 0x1b, 0xe9, 0x1d, 0xcc, 0x17, 0x7b, 0x29, 0x80, 0x96, 0x83, 0x6d, 0xce, 0xa4, 0xf6, 0x01, 0xdd, 0x86, 0x69, 0x15, 0x55, 0x12, 0x83, 0x25, 0x43, 0x8b, 0xd9, 0xcc, 0xbf, 0xc0, 0xe7, 0x77, 0x92, 0x0a, 0xe8, 0xbb, 0xd5, 0x76, 0x34, 0xc6, 0x10, 0x4f, 0xe6, 0x9a, 0x3a, 0x72, 0x01, 0x2a, 0x23, 0x60, 0xb6, 0xe5, 0x52, 0x55, 0x0c, 0xff, 0xb4, 0xe2, 0xf0, 0xb4, 0x1f, 0xe1, 0x55, 0x37, 0xee, 0x0e, 0x6f, 0x37, 0xe7, 0x88, 0x0f, 0xb4, 0xd1, 0x2b, 0xef, 0x6c, 0xad, 0x26, 0x6c, 0xe5, 0x8d, 0xf9, 0x81, 0x6b, 0x35, 0x96, 0x0c, 0xd0, 0xbf, 0x86, 0x52, 0x86, 0x2e, 0xe7, 0x89, 0xcc, 0xc3, 0x1a, 0x7e, 0xfc, 0x21, 0xa8, 0x1b, 0xda, 0x46, 0x14, 0x6b, 0x11, 0x1f, 0xcf, 0xd9, 0x4f, 0x04, 0x85, 0x6a, 0xb6, 0x1a, 0x55, 0x7b, 0x1f, 0xf7, 0xc8, 0xe4, 0xea, 0x6d, 0x9c, 0x4b, 0xcd, 0xd9, 0x3b, 0x15, 0x1a, 0xa0, 0x84, 0x61, 0xc5, 0x68, 0xde, 0xfb, 0x2a, 0xef, 0xdf, 0xce, 0x96, 0x39, 0x4d, 0xc8, 0x22, 0xd4, 0xef, 0x6c, 0xc4, 0xb9, 0xa3, 0xe6, 0xc3, 0x32, 0x03, 0x9f, 0x65, 0x38, 0xaa, 0x0d, 0xf8, 0xde, 0x81, 0x26, 0xd9, 0x0c, 0x31, 0x2f, 0xf4, 0x96, 0x88, 0x74, 0x86, 0x11, 0x15, 0x65, 0x53, 0x43, 0x46, 0xa7, 0x46, 0x26, 0x25, 0xd6, 0x3d, 0xf6, 0x9f, 0xcb, 0x57, 0x41, 0x90, 0x6f, 0x19, 0xe0, 0x0f, 0xc8, 0x00, 0x3f, 0x08, 0xb9, 0x59, 0x85, 0xc3, 0x8b, 0x86, 0x74, 0xaf, 0x42, 0x3c, 0xa5, 0x6d, 0xe5, 0xf8, 0x81, 0xb5, 0x9c, 0x46, 0x62, 0x43, 0xa7, 0xad, 0xba, 0xdb, 0xa2, 0x9c, 0xaf, 0x57, 0xfa, 0x77, 0x71, 0x22, 0xe6, 0x18, 0x23, 0xb4, 0xe7, 0x08, 0x18, 0x2a, 0xaf, 0x37, 0x20, 0x6d, 0x7d, 0x5e, 0xd0, 0x51, 0xc1, 0x2a, 0x5c, 0x0f, 0x6b, 0x43, 0x71, 0x04, 0x3f, 0x56, 0x2c, 0xdc, 0x02, 0x9d, 0x5e, 0x1b, 0xa9, 0xb2, 0xbf, 0x5f, 0xfb, 0xf1, 0xf5, 0xf5, 0x23, 0xdb, 0x06, 0xfe, 0xca, 0x42, 0x7d, 0xb7, 0xa0, 0x88, 0x19, 0xff, 0xb2, 0xd0, 0x58, 0x52, 0x42, 0xe2, 0x0d, 0xa5, 0x8e, 0x32, 0x0b, 0x16, 0xb1, 0x6e, 0x44, 0x8d, 0x8b, 0xe0, 0xef, 0x74, 0x02, 0xd2, 0x4a, 0x71, 0x94, 0x25, 0x71, 0x33, 0xbd, 0xc9, 0x82, 0x31, 0x4d, 0x83, 0xad, 0xbc, 0xd1, 0x2e, 0x8a, 0xf3, 0x13, 0x03, 0x42, 0x6c, 0x59, 0xff, 0xd8, 0x26, 0x9c, 0xe4, 0xb9, 0x87, 0xca, 0x9b, 0x6f, 0x0f, 0xfd, 0xbb, 0x4d, 0x1d, 0x12, };
20630 static const u8 ed25519_897_test_vectors_expected_sig[] = {
20631 	0x30, 0xab, 0xc4, 0xe4, 0xe4, 0xb3, 0x88, 0x58, 0x1e, 0x66, 0x8b, 0xd4, 0x09, 0xee, 0x18, 0xa6, 0xed, 0xe8, 0x1a, 0x13, 0x6c, 0x28, 0xa2, 0x92, 0x4d, 0xf5, 0xfc, 0x00, 0xd7, 0xc2, 0x80, 0xd9, 0x78, 0x62, 0xae, 0x3a, 0x67, 0xa9, 0x35, 0xce, 0x49, 0x23, 0x64, 0x13, 0x5e, 0x65, 0x9a, 0xdb, 0x5f, 0xba, 0xbe, 0x68, 0x98, 0x16, 0x59, 0x1f, 0x49, 0xac, 0x50, 0x22, 0xa3, 0x87, 0xcc, 0x09, };
20632 static const ec_test_case ed25519_897_test_case = {
20633 	.name = "EDDSA25519-SHA512/wei25519 897",
20634 	.ec_str_p = &wei25519_str_params,
20635 	.priv_key = ed25519_897_test_vectors_priv_key,
20636 	.priv_key_len = sizeof(ed25519_897_test_vectors_priv_key),
20637 	.nn_random = NULL,
20638 	.hash_type = SHA512,
20639 	.msg = (const char *)ed25519_897_test_vectors_message,
20640 	.msglen = sizeof(ed25519_897_test_vectors_message),
20641 	.sig_type = EDDSA25519,
20642 	.exp_sig = ed25519_897_test_vectors_expected_sig,
20643 	.exp_siglen = sizeof(ed25519_897_test_vectors_expected_sig),
20644 	.adata = NULL,
20645 	.adata_len = 0
20646 };
20647 
20648 /************************************************/
20649 static const u8 ed25519_898_test_vectors_priv_key[] = {
20650 	0x07, 0x36, 0xf8, 0x01, 0x72, 0x0a, 0x94, 0x7c, 0x5c, 0x2f, 0x32, 0x58, 0xce, 0x0d, 0x51, 0x1c, 0x3e, 0x17, 0xe9, 0x4e, 0x37, 0xb3, 0x0a, 0xdf, 0xa5, 0x20, 0x95, 0x92, 0x11, 0x71, 0xd4, 0x00, };
20651 static const u8 ed25519_898_test_vectors_message[] = {
20652 	0x7f, 0x87, 0xb5, 0x1f, 0x6e, 0xad, 0x2d, 0x44, 0x02, 0xa3, 0xbd, 0x3c, 0x37, 0x69, 0xa2, 0x67, 0xac, 0x8e, 0x82, 0xf7, 0x79, 0xad, 0x7b, 0x98, 0x6d, 0xec, 0x82, 0xcb, 0xfc, 0x1e, 0xa5, 0x12, 0x91, 0x88, 0x43, 0x26, 0xd9, 0x22, 0x69, 0x67, 0xcb, 0x66, 0xa9, 0x68, 0x73, 0x18, 0x4f, 0x0e, 0x83, 0xb3, 0xab, 0x25, 0xa5, 0xab, 0x2f, 0xa8, 0x05, 0xfe, 0x3a, 0x0e, 0x7b, 0x19, 0x0a, 0x62, 0x2d, 0x46, 0x1b, 0x78, 0x30, 0xa3, 0xf6, 0x97, 0xc8, 0x31, 0xc2, 0x9e, 0xa7, 0xc0, 0xcd, 0x4b, 0x68, 0xd8, 0xe7, 0x7a, 0xa6, 0x97, 0x11, 0xcf, 0x86, 0x4d, 0xc1, 0xd5, 0x39, 0x4f, 0x48, 0x45, 0xe2, 0xfb, 0xb5, 0x07, 0x64, 0x04, 0xe0, 0x9a, 0x88, 0xb7, 0x9f, 0x05, 0x67, 0x05, 0x51, 0xbc, 0xe2, 0xef, 0x54, 0x68, 0xb7, 0x9d, 0x57, 0x88, 0x8b, 0x98, 0x52, 0xa4, 0xbb, 0x47, 0x9a, 0x4f, 0xd0, 0xbe, 0xb6, 0x81, 0xfd, 0x52, 0x3f, 0xc5, 0xbf, 0x44, 0x58, 0xab, 0xbc, 0x38, 0xec, 0xe7, 0x2e, 0x10, 0x6e, 0x00, 0x22, 0x20, 0x15, 0xa5, 0x7e, 0xbe, 0xc5, 0x5b, 0xf4, 0x75, 0x13, 0xe2, 0x5c, 0x3c, 0x45, 0x54, 0x84, 0x3b, 0xda, 0xcb, 0xcf, 0xe9, 0xf1, 0xb8, 0xd0, 0xae, 0x35, 0x4e, 0x48, 0xd0, 0x3f, 0xde, 0xbd, 0xf2, 0x0d, 0x65, 0x5b, 0x52, 0x68, 0xd8, 0xbb, 0xbf, 0x33, 0xb1, 0x28, 0x89, 0x10, 0xf0, 0x44, 0x4f, 0xcd, 0x56, 0xc0, 0xda, 0x7b, 0x89, 0x03, 0x36, 0x2b, 0x7e, 0x37, 0xa8, 0x64, 0x65, 0x42, 0x77, 0xcf, 0xfb, 0xe6, 0xc6, 0x08, 0x57, 0xf0, 0xb3, 0x51, 0x4d, 0x22, 0xa4, 0x0b, 0x9d, 0xd2, 0xd3, 0xfe, 0x5c, 0xae, 0xa5, 0x50, 0x7a, 0x0d, 0xe3, 0x05, 0x1b, 0xb3, 0xa4, 0x01, 0x5f, 0xa0, 0xfe, 0x4c, 0x46, 0x2b, 0x98, 0xfe, 0xf2, 0x35, 0x7d, 0xcf, 0x6b, 0x97, 0xdc, 0x75, 0xde, 0xf3, 0x82, 0xf9, 0x01, 0xf9, 0x6f, 0x4a, 0x04, 0xa3, 0xef, 0xc6, 0x02, 0x54, 0x20, 0x0a, 0x2c, 0x4c, 0xdc, 0x8a, 0x58, 0xb2, 0x5d, 0x94, 0xe3, 0x29, 0x54, 0xea, 0xff, 0x15, 0x11, 0xac, 0x46, 0xe3, 0x60, 0x66, 0x63, 0xb6, 0x87, 0x5f, 0x13, 0x64, 0x99, 0xda, 0x6a, 0x76, 0x90, 0x97, 0x87, 0x9a, 0x6e, 0x08, 0x34, 0xd5, 0x64, 0xfa, 0x7f, 0xdb, 0x99, 0x58, 0x11, 0x83, 0xed, 0x0c, 0x9d, 0x48, 0xfd, 0x19, 0x5d, 0x7e, 0xcd, 0x9f, 0x4d, 0xd4, 0x86, 0x55, 0x65, 0xfd, 0x17, 0xa0, 0x08, 0x71, 0x8d, 0xcd, 0x76, 0xf6, 0x8a, 0x54, 0xe5, 0x16, 0xa2, 0xb7, 0x30, 0xed, 0x3d, 0xba, 0x5c, 0x2c, 0xf4, 0x06, 0x30, 0xbb, 0xfe, 0x7f, 0xa0, 0x3b, 0xb7, 0xcd, 0xd9, 0x67, 0x69, 0x54, 0x95, 0xa7, 0xc8, 0x6e, 0x2e, 0x84, 0xcb, 0x01, 0x7e, 0xc6, 0x96, 0x01, 0x92, 0x46, 0x31, 0x59, 0x5a, 0xff, 0xaa, 0x8c, 0xfd, 0x04, 0x8d, 0x14, 0x26, 0x7c, 0x73, 0xe5, 0x4c, 0xfa, 0x53, 0x90, 0x47, 0xe7, 0x17, 0x69, 0x1e, 0x39, 0x97, 0x37, 0xfa, 0x50, 0xcc, 0x48, 0x44, 0x96, 0x12, 0x57, 0xc9, 0x3d, 0x72, 0x53, 0xd2, 0x32, 0x26, 0xb7, 0xcd, 0x0d, 0x1b, 0xd3, 0x1f, 0x3f, 0x0d, 0x2d, 0x89, 0x2d, 0x07, 0x3d, 0x8c, 0x50, 0x73, 0xc6, 0x02, 0xf6, 0x1a, 0x04, 0xd6, 0x43, 0x7c, 0x39, 0x03, 0xeb, 0x4a, 0x64, 0xa0, 0x1f, 0xbc, 0xc0, 0xc7, 0xe1, 0x59, 0x20, 0x1c, 0xdc, 0x4a, 0xa4, 0x2e, 0xf3, 0xb1, 0xff, 0x9c, 0x78, 0xfc, 0x27, 0x5c, 0xfb, 0x11, 0xa0, 0x5f, 0xfe, 0xd8, 0xf9, 0xf2, 0x2d, 0x85, 0xba, 0x92, 0x4d, 0x8d, 0x32, 0x23, 0x1c, 0x25, 0x4d, 0x89, 0x8d, 0xa7, 0xf0, 0x67, 0x9a, 0x64, 0xca, 0xb8, 0x40, 0x26, 0x90, 0x6e, 0x9e, 0x85, 0xf9, 0x5e, 0xfd, 0x8e, 0xe2, 0xa1, 0x72, 0x56, 0x33, 0xf4, 0xde, 0x2b, 0xa6, 0x7d, 0x99, 0xaa, 0x7f, 0x05, 0x50, 0xaf, 0x13, 0x9e, 0x9f, 0x8c, 0x52, 0x93, 0x78, 0x67, 0x27, 0xd8, 0x26, 0x30, 0x29, 0x6d, 0x5d, 0xaa, 0x9e, 0x83, 0x0a, 0xa1, 0xb3, 0xb5, 0xb3, 0x02, 0xb8, 0xb6, 0x62, 0xac, 0x83, 0x2e, 0x92, 0x13, 0x01, 0x6b, 0xa4, 0x93, 0xa0, 0x3a, 0x28, 0xcc, 0x3e, 0x95, 0x40, 0xd0, 0xd6, 0x5a, 0xcd, 0xdb, 0xfe, 0x12, 0x52, 0xb5, 0xc1, 0x6a, 0x84, 0xa4, 0x45, 0xce, 0x75, 0x41, 0x5c, 0x6c, 0xd8, 0xab, 0x16, 0xfe, 0x5e, 0xef, 0x11, 0x70, 0x97, 0xd7, 0x1e, 0xb5, 0x67, 0x6b, 0x9a, 0x95, 0xb3, 0x58, 0x82, 0xa7, 0xc3, 0x50, 0x6b, 0xc5, 0xd0, 0x2f, 0x03, 0x91, 0x0a, 0x63, 0xd4, 0x68, 0x46, 0xb2, 0x13, 0xc3, 0xc9, 0xbb, 0x2f, 0xc3, 0x4e, 0x6c, 0x69, 0x01, 0x7d, 0x20, 0x65, 0xa1, 0xad, 0x3c, 0xe3, 0xfd, 0x14, 0xab, 0x00, 0x14, 0xf5, 0x84, 0xe5, 0x7e, 0xa9, 0xd9, 0x03, 0xe4, 0x0a, 0xce, 0xb2, 0x30, 0xa8, 0x69, 0x3f, 0xa2, 0xe6, 0x36, 0x41, 0xc2, 0x54, 0x38, 0xff, 0x7a, 0x16, 0x38, 0x76, 0x04, 0x38, 0x84, 0x4c, 0xdf, 0x00, 0x11, 0x80, 0xf5, 0xb1, 0x77, 0xbe, 0x69, 0xed, 0xf7, 0xef, 0x66, 0xb3, 0x93, 0x12, 0x80, 0x52, 0x14, 0xcb, 0x17, 0x70, 0x6c, 0xef, 0xe5, 0x45, 0xbe, 0x5a, 0x77, 0x01, 0x9a, 0x5e, 0xc5, 0x2b, 0xbf, 0x78, 0x85, 0x0f, 0xa3, 0xd9, 0x7d, 0xe2, 0xd4, 0xd7, 0x4a, 0xa6, 0x8b, 0x58, 0xca, 0x81, 0x2a, 0x1b, 0x15, 0x6a, 0x0c, 0x40, 0x01, 0x12, 0x9f, 0x06, 0x72, 0x32, 0xa6, 0xec, 0x91, 0xa5, 0xed, 0x42, 0x70, 0xf2, 0xa4, 0xc6, 0xef, 0xee, 0xe7, 0x87, 0x00, 0x47, 0x70, 0xc8, 0x59, 0xe4, 0x50, 0xe8, 0x37, 0xef, 0xb0, 0x4d, 0xc9, 0x98, 0xbd, 0x27, 0x3c, 0x27, 0xa0, 0x98, 0x55, 0xe4, 0xec, 0xa1, 0xa2, 0x2a, 0x9b, 0x88, 0xc1, 0x7b, 0xdb, 0xf2, 0x53, 0xa7, 0x97, 0x61, 0x07, 0x0a, 0x76, 0x81, 0x7a, 0x7f, 0x74, 0xff, 0x3f, 0x07, 0xfb, 0x71, 0x8b, 0xff, 0xa0, 0xb4, 0xf3, 0x26, 0xf2, 0x84, 0xe6, 0x2f, 0x83, 0x68, 0x32, 0x42, 0x7b, 0xe8, 0x2f, 0x48, 0x33, 0x73, 0x51, 0x5b, 0x9b, 0xf5, 0x9a, 0xf4, 0xa7, 0x6a, 0x57, 0xe2, 0xf4, 0x0b, 0x91, 0x03, 0x4d, 0xd5, 0x68, 0xec, 0x14, 0xac, 0x10, 0xe2, 0x30, 0x9b, 0x87, 0xe2, 0x92, 0x2f, 0x9c, 0xd9, 0xfc, 0x1a, 0x46, 0xa4, 0x7e, 0xd3, 0xbc, 0x7e, 0x1b, 0x9f, 0xeb, 0x9e, 0xe0, 0x67, 0x07, 0x3f, 0xa5, 0xdc, 0xe2, 0xa6, 0x75, 0x30, 0x52, 0x6d, 0xe6, 0x7e, 0xe0, 0xe5, 0x09, 0x66, 0x3c, 0x44, 0x46, 0x7e, 0xeb, 0x59, 0x42, 0x01, 0x03, 0xeb, 0xcd, 0xff, 0xa7, 0x09, };
20653 static const u8 ed25519_898_test_vectors_expected_sig[] = {
20654 	0xc0, 0x3c, 0x03, 0x14, 0x85, 0x12, 0x79, 0xed, 0xcd, 0xe9, 0x70, 0xc2, 0x3e, 0xfa, 0x23, 0x6f, 0x23, 0x5e, 0xda, 0x96, 0x0d, 0x2c, 0x27, 0xd3, 0xca, 0x94, 0x6f, 0x65, 0x0c, 0x20, 0x0b, 0x4e, 0xba, 0x04, 0xbe, 0x66, 0x8f, 0xf6, 0x2e, 0xaf, 0xfa, 0x6c, 0xea, 0x35, 0x1a, 0xbd, 0xfc, 0x54, 0x40, 0x1d, 0xcc, 0xce, 0x3d, 0xba, 0x78, 0x00, 0x4a, 0xec, 0x95, 0x81, 0xa2, 0xcc, 0xf4, 0x0f, };
20655 static const ec_test_case ed25519_898_test_case = {
20656 	.name = "EDDSA25519-SHA512/wei25519 898",
20657 	.ec_str_p = &wei25519_str_params,
20658 	.priv_key = ed25519_898_test_vectors_priv_key,
20659 	.priv_key_len = sizeof(ed25519_898_test_vectors_priv_key),
20660 	.nn_random = NULL,
20661 	.hash_type = SHA512,
20662 	.msg = (const char *)ed25519_898_test_vectors_message,
20663 	.msglen = sizeof(ed25519_898_test_vectors_message),
20664 	.sig_type = EDDSA25519,
20665 	.exp_sig = ed25519_898_test_vectors_expected_sig,
20666 	.exp_siglen = sizeof(ed25519_898_test_vectors_expected_sig),
20667 	.adata = NULL,
20668 	.adata_len = 0
20669 };
20670 
20671 /************************************************/
20672 static const u8 ed25519_899_test_vectors_priv_key[] = {
20673 	0xfa, 0x75, 0x65, 0x04, 0x91, 0x04, 0x74, 0x28, 0xd3, 0x63, 0xb5, 0x82, 0x22, 0x22, 0x12, 0x2d, 0xff, 0xb5, 0xa9, 0xfd, 0xdc, 0x60, 0x3c, 0x33, 0xc8, 0xa6, 0x08, 0x61, 0x83, 0x75, 0xdc, 0xf3, };
20674 static const u8 ed25519_899_test_vectors_message[] = {
20675 	0xf5, 0x4e, 0x41, 0xb9, 0x39, 0xe3, 0x7d, 0xf1, 0x7c, 0x7d, 0x60, 0x43, 0xfd, 0xed, 0x14, 0xa9, 0x15, 0xd9, 0x34, 0xe8, 0x67, 0xc3, 0x45, 0x26, 0x9f, 0xdc, 0x01, 0x77, 0xf5, 0xbd, 0x10, 0xc4, 0x34, 0x8f, 0x31, 0x9e, 0x0a, 0xb9, 0xa6, 0x4c, 0xc0, 0xb7, 0xd4, 0xe0, 0xc9, 0x1c, 0xa9, 0xaa, 0xda, 0xab, 0x2e, 0xdc, 0xba, 0x54, 0x4f, 0x14, 0xed, 0x2c, 0xb5, 0x39, 0xca, 0x89, 0x75, 0x09, 0x7d, 0x87, 0x92, 0x70, 0x95, 0xb4, 0xeb, 0xd4, 0x90, 0x34, 0x43, 0x40, 0x06, 0x1e, 0xd9, 0x3c, 0x38, 0x16, 0x7e, 0xda, 0xa0, 0x96, 0xa2, 0x30, 0xdb, 0x59, 0x62, 0x4c, 0x67, 0xfb, 0x9a, 0x1e, 0x1d, 0xda, 0xc4, 0x02, 0x13, 0x3f, 0x4d, 0x47, 0xcf, 0xc1, 0x1e, 0x2f, 0xae, 0x6b, 0x3f, 0x3c, 0x50, 0x01, 0xcb, 0xa9, 0xa8, 0xae, 0xd9, 0x00, 0x73, 0x10, 0x32, 0x40, 0x22, 0x7e, 0x71, 0x6f, 0xf7, 0x1b, 0xf6, 0x8a, 0x59, 0x1b, 0xa2, 0xce, 0xff, 0x2d, 0x31, 0xb8, 0x6e, 0xf2, 0x1a, 0xb0, 0x12, 0xec, 0xcd, 0x40, 0x9a, 0xd5, 0xc2, 0x9d, 0x65, 0x9a, 0x1b, 0x37, 0xc4, 0xd8, 0x55, 0x05, 0x30, 0x41, 0x40, 0xfb, 0x2c, 0x34, 0x37, 0xa2, 0x06, 0x86, 0x8b, 0x13, 0x52, 0xc1, 0x02, 0xbb, 0xfa, 0x3b, 0x9a, 0x76, 0x52, 0x2a, 0x2b, 0xfc, 0x54, 0x06, 0xb2, 0x57, 0x69, 0x6d, 0xe7, 0x4e, 0xe7, 0xd3, 0x15, 0xc8, 0xe9, 0x9c, 0xaa, 0x96, 0xbd, 0x83, 0x80, 0x06, 0xc6, 0xda, 0x2a, 0x42, 0x33, 0x31, 0x5a, 0x85, 0x6a, 0xcb, 0x8e, 0x80, 0xc3, 0x31, 0x68, 0xb3, 0x33, 0x55, 0x1d, 0x91, 0xd0, 0x74, 0x05, 0x57, 0x34, 0x13, 0x0b, 0xd7, 0xd1, 0x4c, 0x56, 0x81, 0x1e, 0xba, 0xbf, 0x7d, 0x5a, 0x25, 0x0e, 0x60, 0x72, 0x59, 0x3d, 0x9f, 0x2f, 0x8b, 0x97, 0xc1, 0x2a, 0x70, 0x3c, 0x2c, 0x47, 0x9c, 0xb0, 0xb1, 0x5b, 0x7a, 0x27, 0x75, 0xc9, 0xdc, 0xd2, 0xca, 0x46, 0x24, 0x67, 0x23, 0x68, 0xa2, 0xe6, 0x14, 0x54, 0x67, 0xf3, 0xbe, 0x66, 0x15, 0xf9, 0x3b, 0x81, 0x20, 0xa0, 0xa1, 0x2d, 0xa1, 0x56, 0x06, 0x63, 0xa2, 0x6a, 0x61, 0x73, 0x19, 0x66, 0xb4, 0x4b, 0x29, 0x9e, 0xbf, 0xad, 0x2a, 0x95, 0xc6, 0x23, 0x60, 0xf3, 0x9c, 0xe0, 0x5d, 0x95, 0x58, 0xe3, 0x05, 0xee, 0x23, 0xa5, 0x2f, 0xa5, 0xce, 0x20, 0xf6, 0xbe, 0x5e, 0x26, 0x2a, 0xff, 0x3a, 0x86, 0x4d, 0x5d, 0xda, 0xbe, 0x23, 0xff, 0x94, 0x3f, 0x71, 0xd5, 0x99, 0x84, 0x93, 0xd9, 0x9f, 0xe2, 0xac, 0x23, 0x74, 0xb4, 0x64, 0xa6, 0x91, 0x83, 0xc3, 0xbc, 0x4f, 0x1d, 0xdb, 0x88, 0x36, 0x11, 0x14, 0x9d, 0x7d, 0xdb, 0xf1, 0xe8, 0x38, 0x0b, 0x54, 0x43, 0x35, 0xe2, 0xb8, 0x93, 0x95, 0x05, 0x4c, 0x9f, 0x25, 0x58, 0xdf, 0xc5, 0x6e, 0xa9, 0x3f, 0xf1, 0x4d, 0x0f, 0x15, 0xd2, 0xe0, 0xbd, 0x89, 0x37, 0xa5, 0x56, 0x38, 0x7d, 0xe9, 0x6e, 0x41, 0x8d, 0x8b, 0x3a, 0x7d, 0x66, 0x6f, 0xb1, 0x90, 0x36, 0x4b, 0x2c, 0x21, 0x90, 0xd3, 0xc2, 0x5f, 0x17, 0x52, 0xd5, 0x48, 0x3d, 0xcb, 0xb5, 0x96, 0x00, 0x64, 0xf0, 0xc8, 0x7f, 0xcf, 0x8f, 0x31, 0x3d, 0x28, 0x78, 0x1c, 0x11, 0x4a, 0x16, 0x9b, 0x69, 0x0a, 0x87, 0x01, 0xc5, 0x0d, 0x89, 0xc7, 0x73, 0x24, 0x53, 0x1c, 0x0f, 0x84, 0x9d, 0xba, 0xd1, 0x63, 0x3d, 0x92, 0x5a, 0xcd, 0x06, 0xc1, 0x6a, 0x9c, 0xea, 0x19, 0xa4, 0x34, 0xeb, 0xc4, 0x2a, 0xeb, 0xb1, 0xfd, 0xb9, 0xb0, 0xba, 0xcc, 0x93, 0xce, 0xc3, 0x99, 0x19, 0x94, 0x36, 0x64, 0xea, 0x1a, 0x95, 0x84, 0x06, 0xff, 0x9e, 0x49, 0x35, 0xc9, 0x2c, 0xa7, 0xc3, 0x97, 0x08, 0xf9, 0xca, 0xb7, 0x10, 0xa5, 0x83, 0x09, 0x6b, 0x4e, 0xd9, 0xf4, 0x8d, 0x9e, 0x09, 0x06, 0x47, 0x24, 0x0d, 0x76, 0xec, 0xcb, 0xab, 0xa5, 0x91, 0xf5, 0x5f, 0xe7, 0xe3, 0x6d, 0x72, 0xc2, 0x17, 0x27, 0xac, 0xba, 0x0f, 0x80, 0x30, 0x95, 0x4e, 0x62, 0xbc, 0x58, 0x0b, 0x8b, 0x67, 0x0c, 0x44, 0x57, 0xc3, 0x40, 0x3e, 0x36, 0x9a, 0xc2, 0x0e, 0x66, 0x0d, 0x66, 0x2f, 0x7f, 0x6a, 0x41, 0x42, 0x13, 0xea, 0x43, 0xf7, 0xc0, 0x10, 0x50, 0x09, 0xc1, 0xde, 0x81, 0x7a, 0xdf, 0x6f, 0xfd, 0x9c, 0xca, 0x3b, 0x45, 0xa6, 0x3a, 0x82, 0x22, 0x81, 0xc6, 0xe2, 0x77, 0x2f, 0xd7, 0xb7, 0x80, 0x96, 0x03, 0x18, 0x4b, 0x48, 0x79, 0xb1, 0x8c, 0x88, 0x79, 0x03, 0xf0, 0xfc, 0x8d, 0x8e, 0x1e, 0x2d, 0xbf, 0x6e, 0x77, 0x2f, 0x0b, 0x2d, 0x9b, 0x8a, 0x29, 0x92, 0x7a, 0xcc, 0x81, 0x71, 0x4a, 0x22, 0x56, 0xad, 0x8d, 0x7b, 0x73, 0x30, 0x52, 0x7d, 0x7d, 0xbf, 0x8b, 0xef, 0xd8, 0x2f, 0x8c, 0x9b, 0xb4, 0x01, 0xcf, 0x0a, 0x90, 0x24, 0x9a, 0x64, 0xca, 0x6f, 0x88, 0x33, 0xdb, 0x31, 0xbd, 0x03, 0xb9, 0xe7, 0x94, 0x6d, 0x06, 0xdd, 0x04, 0x38, 0x3d, 0x7c, 0x08, 0x2d, 0x70, 0xae, 0xb3, 0x7f, 0xf8, 0x4c, 0x2b, 0x05, 0x7d, 0x97, 0x3b, 0x89, 0x4b, 0x4a, 0x03, 0xec, 0x7b, 0xf0, 0x31, 0xae, 0xa6, 0x56, 0xa1, 0x90, 0x84, 0x88, 0x89, 0x4a, 0x4a, 0xda, 0x3f, 0xd7, 0xfa, 0xdf, 0x91, 0xed, 0xe9, 0x55, 0x0d, 0x38, 0x41, 0x5f, 0x82, 0xa0, 0x94, 0x55, 0xc0, 0xf4, 0x32, 0xfb, 0x55, 0x98, 0x71, 0x32, 0xf0, 0x00, 0x42, 0xaf, 0xd6, 0x0e, 0xa5, 0x1d, 0x1f, 0x1c, 0x6c, 0x1a, 0xfe, 0x0c, 0xf8, 0x7c, 0x34, 0x6e, 0x31, 0xe6, 0x3e, 0x26, 0xf4, 0x9b, 0x13, 0x71, 0x77, 0xb2, 0xd4, 0x7a, 0xb3, 0x0f, 0x07, 0xce, 0xa0, 0x71, 0x93, 0x12, 0x74, 0xcf, 0x01, 0x08, 0x36, 0xd6, 0x83, 0xff, 0xf3, 0xbe, 0x71, 0x34, 0xc7, 0x8b, 0x8b, 0xfd, 0x8b, 0x1b, 0x8f, 0xc2, 0x04, 0x9e, 0x18, 0xcc, 0xb1, 0xe1, 0x8a, 0x0a, 0x95, 0x85, 0xa7, 0xd8, 0xa1, 0xe2, 0x54, 0x92, 0x60, 0x86, 0x68, 0xc9, 0x6d, 0x62, 0xa0, 0xac, 0xa8, 0xef, 0x90, 0xe0, 0x48, 0xd2, 0x03, 0x78, 0xc1, 0x08, 0xd0, 0x6b, 0x03, 0xfe, 0x3e, 0xc4, 0xad, 0xb2, 0x75, 0x28, 0xae, 0x08, 0xf7, 0xde, 0xd9, 0x48, 0x78, 0x93, 0xae, 0x64, 0xca, 0x4b, 0x93, 0x92, 0x02, 0xaa, 0x4c, 0x17, 0xaf, 0xe7, 0x18, 0xcd, 0xca, 0x49, 0xff, 0x96, 0x16, 0xd0, 0xcd, 0xf8, 0x33, 0x4b, 0x6a, 0xee, 0x2d, 0x6d, 0x20, 0x94, 0x7c, 0xa4, 0xbd, 0x7d, 0xf5, 0x31, 0xdd, 0x1d, 0xa9, 0x95, 0x81, 0xff, 0x72, 0xea, 0x56, 0xfe, 0x62, 0xca, 0xa2, 0xc9, 0x5e, 0x35, 0x87, };
20676 static const u8 ed25519_899_test_vectors_expected_sig[] = {
20677 	0x1e, 0xff, 0xbf, 0x92, 0x99, 0xa1, 0xb9, 0x35, 0x4f, 0xe1, 0xf1, 0xde, 0xc1, 0x76, 0x65, 0x95, 0xea, 0x76, 0x7a, 0xb8, 0xe4, 0xda, 0x9b, 0xb5, 0x7b, 0x4f, 0x69, 0xbc, 0xbd, 0x8c, 0xb3, 0xd8, 0x6f, 0x76, 0x83, 0x92, 0xf5, 0x9b, 0x39, 0xfa, 0xfa, 0x8a, 0x21, 0x0a, 0x65, 0x09, 0xfe, 0x0d, 0x60, 0x08, 0xd6, 0x35, 0x61, 0x11, 0xad, 0xfb, 0x37, 0x99, 0xc1, 0xd5, 0x59, 0xc2, 0x63, 0x09, };
20678 static const ec_test_case ed25519_899_test_case = {
20679 	.name = "EDDSA25519-SHA512/wei25519 899",
20680 	.ec_str_p = &wei25519_str_params,
20681 	.priv_key = ed25519_899_test_vectors_priv_key,
20682 	.priv_key_len = sizeof(ed25519_899_test_vectors_priv_key),
20683 	.nn_random = NULL,
20684 	.hash_type = SHA512,
20685 	.msg = (const char *)ed25519_899_test_vectors_message,
20686 	.msglen = sizeof(ed25519_899_test_vectors_message),
20687 	.sig_type = EDDSA25519,
20688 	.exp_sig = ed25519_899_test_vectors_expected_sig,
20689 	.exp_siglen = sizeof(ed25519_899_test_vectors_expected_sig),
20690 	.adata = NULL,
20691 	.adata_len = 0
20692 };
20693 
20694 /************************************************/
20695 static const u8 ed25519_900_test_vectors_priv_key[] = {
20696 	0xe1, 0xc1, 0x29, 0x46, 0xd2, 0x21, 0xa1, 0x94, 0xf2, 0x2f, 0x27, 0x62, 0xc0, 0xe5, 0x1c, 0xbe, 0x3f, 0x98, 0xb9, 0x14, 0xa4, 0x7d, 0x3d, 0xc4, 0x1a, 0x1f, 0x45, 0xc5, 0x43, 0x70, 0x63, 0x7c, };
20697 static const u8 ed25519_900_test_vectors_message[] = {
20698 	0x87, 0x0f, 0x4c, 0xd9, 0x7c, 0xfc, 0x0a, 0xaf, 0xad, 0xa4, 0x00, 0x72, 0x31, 0x2f, 0xb5, 0x4b, 0xcc, 0xc0, 0x76, 0x28, 0x71, 0x4e, 0x49, 0x62, 0xd4, 0xbe, 0xf4, 0xee, 0xb5, 0xde, 0x40, 0xa1, 0x9a, 0x24, 0x6b, 0x5b, 0x7d, 0x52, 0xd4, 0x87, 0xb7, 0xe5, 0x2d, 0x65, 0x6f, 0x2c, 0x64, 0x03, 0xb9, 0x16, 0xd0, 0x2e, 0x02, 0xa6, 0xd2, 0x91, 0xc1, 0xe1, 0x82, 0x8d, 0xd9, 0x45, 0xa5, 0x83, 0xb4, 0x38, 0x52, 0x8d, 0x1c, 0x39, 0x76, 0x5a, 0x57, 0x20, 0x31, 0xff, 0xa9, 0x16, 0xb6, 0x83, 0x21, 0xf3, 0x2e, 0x66, 0x46, 0xf0, 0xdc, 0xc1, 0xc6, 0x02, 0x35, 0xff, 0xaa, 0x32, 0x35, 0xf4, 0x84, 0xa5, 0xc4, 0x97, 0x8f, 0xa3, 0xe6, 0xbf, 0x14, 0x30, 0x1d, 0x53, 0xe1, 0x2f, 0x4c, 0xc5, 0x21, 0x18, 0xb1, 0xf6, 0xf0, 0x7f, 0x53, 0x36, 0xf5, 0xd0, 0xa9, 0x37, 0x89, 0xbb, 0x01, 0xd1, 0x62, 0xfb, 0x31, 0x26, 0xdc, 0xd7, 0x56, 0xe0, 0x64, 0x2e, 0x7e, 0x69, 0x89, 0x63, 0xc0, 0x34, 0x59, 0x11, 0xa5, 0xcf, 0x3c, 0x99, 0x53, 0xf7, 0x73, 0x19, 0x42, 0x6c, 0xea, 0x2c, 0xde, 0xda, 0x3e, 0xfe, 0x98, 0x9e, 0xcb, 0x63, 0xcb, 0x9e, 0xb8, 0xb9, 0x20, 0xde, 0x76, 0x6c, 0x4f, 0xcf, 0x63, 0x36, 0xe5, 0xbc, 0x43, 0x71, 0xa0, 0x68, 0x37, 0x1f, 0xed, 0x95, 0xc8, 0xc2, 0xb6, 0x1e, 0xe9, 0xb7, 0xc3, 0xe3, 0x83, 0x1c, 0x20, 0xbf, 0xfe, 0x87, 0x07, 0xc0, 0xc9, 0x8b, 0xe9, 0x61, 0x53, 0xc8, 0xa8, 0x73, 0xd7, 0xf2, 0x8a, 0xfc, 0xa1, 0xbf, 0x71, 0x08, 0x5c, 0xe0, 0xe3, 0x89, 0x9e, 0xef, 0x55, 0x91, 0xbd, 0xd6, 0x66, 0xdc, 0x2d, 0x07, 0x64, 0x17, 0x72, 0xd7, 0x45, 0xc5, 0x16, 0x44, 0xa2, 0x60, 0x81, 0x5b, 0x20, 0x8c, 0x4d, 0xd3, 0x05, 0xf0, 0x5f, 0xe4, 0x63, 0xd0, 0xd9, 0xd5, 0xa9, 0xee, 0xff, 0x97, 0x79, 0xf5, 0xb1, 0xd4, 0x4f, 0x26, 0x08, 0x30, 0x78, 0x56, 0x6d, 0x0e, 0x5f, 0xf5, 0x6b, 0x3a, 0xf0, 0xe6, 0x4c, 0xc3, 0x87, 0x08, 0xaf, 0x5a, 0x65, 0xf6, 0x54, 0x35, 0x2d, 0xf1, 0x04, 0x37, 0xf1, 0xdd, 0xf9, 0x45, 0xa0, 0xda, 0x1f, 0x4d, 0xef, 0x6a, 0x71, 0xa0, 0x60, 0xe0, 0xc4, 0xad, 0xec, 0xca, 0xac, 0xf8, 0x5e, 0x09, 0x0f, 0x70, 0x90, 0x37, 0x0a, 0xe2, 0x4e, 0x52, 0x38, 0xd7, 0x68, 0xa0, 0x8f, 0xe6, 0xb4, 0xbb, 0x5e, 0xc4, 0x97, 0xa6, 0x60, 0x31, 0x98, 0x60, 0x84, 0x15, 0xc7, 0xc6, 0x49, 0x00, 0x48, 0xaa, 0x36, 0x73, 0x7c, 0x08, 0x50, 0x30, 0x08, 0xae, 0xce, 0x0f, 0x49, 0x42, 0x19, 0xdd, 0xf8, 0x9b, 0x72, 0xea, 0x77, 0x17, 0x1c, 0x6d, 0x31, 0x17, 0x08, 0x9e, 0xb8, 0x89, 0x07, 0xe8, 0xc3, 0x3f, 0xb9, 0xe7, 0x0b, 0x0d, 0xc2, 0x81, 0xf6, 0x64, 0xb5, 0xf9, 0x65, 0xb5, 0xd2, 0xad, 0xb1, 0x25, 0x07, 0x10, 0xef, 0x23, 0x52, 0x02, 0x5f, 0xb2, 0x93, 0x39, 0x5a, 0xe1, 0xd2, 0x3e, 0xe3, 0xb5, 0x92, 0xb4, 0xc5, 0xf2, 0xd5, 0x55, 0x69, 0xa5, 0x45, 0x86, 0x54, 0xce, 0x3f, 0xc2, 0x5d, 0xd0, 0xe3, 0xf7, 0xe6, 0x75, 0x7a, 0xa7, 0xb3, 0x47, 0xc1, 0xff, 0xd3, 0xba, 0x4d, 0x4f, 0x2c, 0x4b, 0x6d, 0x36, 0xaf, 0xd5, 0x98, 0x63, 0xa3, 0x2a, 0x59, 0x4e, 0x74, 0x53, 0x7e, 0xce, 0x9b, 0x8b, 0x1e, 0xc2, 0x69, 0xbb, 0xc4, 0xcb, 0x54, 0xd7, 0x62, 0x38, 0x21, 0x1f, 0x62, 0xa9, 0x8a, 0x46, 0xa4, 0xaf, 0x66, 0x2f, 0xa8, 0x1e, 0xba, 0x6f, 0x30, 0xf5, 0x14, 0xb8, 0x66, 0xb7, 0x94, 0x2b, 0xc1, 0x73, 0xf7, 0x21, 0x1a, 0x6c, 0x01, 0x4d, 0xa1, 0x4e, 0x74, 0x13, 0x27, 0xa5, 0x68, 0x62, 0x3d, 0x14, 0xb8, 0xf8, 0x35, 0xef, 0x1d, 0x5d, 0x62, 0xb2, 0x52, 0x3c, 0xfe, 0x6a, 0x85, 0xbc, 0x69, 0xfa, 0x05, 0x20, 0x0d, 0xea, 0xc1, 0x56, 0x8b, 0x94, 0x6a, 0x81, 0x6b, 0x75, 0xc5, 0xd7, 0x60, 0x31, 0x74, 0xfd, 0x4e, 0x2f, 0x91, 0x01, 0xa7, 0x90, 0x63, 0x79, 0x1b, 0xc3, 0xd5, 0x92, 0x97, 0xcd, 0xc1, 0x0b, 0xda, 0xa6, 0x63, 0xab, 0xf3, 0xc1, 0xbe, 0x2f, 0xda, 0x17, 0xe4, 0xe5, 0xce, 0x39, 0x4e, 0x90, 0xbd, 0x76, 0xb1, 0xf9, 0xe0, 0x40, 0x5f, 0x56, 0x75, 0xb9, 0x9d, 0x63, 0x8a, 0xbc, 0x2c, 0x1b, 0x2d, 0x8b, 0x53, 0xa6, 0xfd, 0x3d, 0xc8, 0x37, 0x58, 0x55, 0xec, 0x54, 0xcc, 0xbd, 0xa2, 0x4e, 0x67, 0x25, 0x27, 0x72, 0x3b, 0x07, 0xbb, 0x59, 0x9d, 0xb5, 0x4e, 0x38, 0x79, 0x33, 0x91, 0xcf, 0x09, 0xef, 0x3b, 0x1f, 0xd7, 0x61, 0x49, 0x90, 0x06, 0x5b, 0xbd, 0x4a, 0x19, 0xe8, 0xd3, 0xd1, 0x04, 0x82, 0x53, 0xba, 0x4c, 0x97, 0x1c, 0x2f, 0x98, 0xd2, 0xb3, 0x59, 0xdf, 0x50, 0x90, 0x87, 0x32, 0x3a, 0xa6, 0x90, 0x50, 0x29, 0xf5, 0xcc, 0x5e, 0x1a, 0x0a, 0xaf, 0x2f, 0x7c, 0x01, 0x08, 0xdd, 0xb1, 0xa4, 0x0f, 0x56, 0x2b, 0xe6, 0x4e, 0x57, 0xe6, 0x95, 0xed, 0x21, 0xdc, 0x7d, 0xb1, 0x7d, 0x53, 0x36, 0x77, 0xef, 0x12, 0xfc, 0xbb, 0xe2, 0x9f, 0x3b, 0x23, 0x7b, 0xb6, 0x34, 0x4b, 0x11, 0x09, 0xb3, 0x2a, 0x94, 0x62, 0xab, 0xc3, 0xad, 0x3c, 0x07, 0x10, 0xb0, 0x4f, 0x38, 0xc6, 0xf5, 0x95, 0x2d, 0xb2, 0x75, 0xe7, 0x7e, 0x2f, 0x37, 0xe9, 0x5d, 0x55, 0x09, 0x6b, 0xba, 0xf3, 0xe3, 0x05, 0xd5, 0xd7, 0x43, 0xd3, 0x65, 0x95, 0xbf, 0x05, 0x67, 0x89, 0x2c, 0x21, 0x0a, 0xc7, 0xba, 0xe7, 0x37, 0x1d, 0x16, 0x45, 0x84, 0x78, 0x5d, 0xd8, 0x90, 0x17, 0x41, 0x59, 0xb3, 0x93, 0x0a, 0x9a, 0x6c, 0xe3, 0xa1, 0x66, 0xdd, 0xa2, 0x38, 0x3e, 0x6e, 0x2a, 0xf2, 0x8c, 0x1b, 0xf3, 0x19, 0x24, 0x47, 0xe9, 0x05, 0x11, 0xdc, 0xd8, 0x0e, 0xbd, 0xf9, 0xee, 0x2c, 0x9b, 0xde, 0xdd, 0xee, 0xb6, 0x10, 0x55, 0x86, 0x41, 0x53, 0x2d, 0x07, 0xcd, 0x13, 0xda, 0x61, 0x25, 0x41, 0x54, 0xcc, 0x0f, 0xd9, 0xd4, 0x81, 0xe3, 0xb0, 0xa2, 0x37, 0xaf, 0x2e, 0xc2, 0x62, 0x56, 0xd4, 0xab, 0x21, 0x9f, 0xaf, 0x15, 0xad, 0x2b, 0x7e, 0x8e, 0x57, 0xab, 0x72, 0x6f, 0xf2, 0x72, 0x32, 0x16, 0xa5, 0x74, 0x58, 0x5e, 0x2a, 0x63, 0x9d, 0x94, 0x8c, 0x2c, 0x4f, 0x69, 0xee, 0xaa, 0xd2, 0x83, 0xe3, 0xa4, 0x4f, 0xf2, 0x68, 0xea, 0xef, 0xd7, 0xe6, 0x6b, 0x73, 0xed, 0xe4, 0x73, 0xa8, 0x39, 0x7c, 0x76, 0xb4, 0x8d, 0x56, 0xcb, 0x3c, 0xcd, 0xab, 0xc9, 0x1a, 0x89, 0x29, 0xcf, 0x42, 0x99, 0x83, 0x50, 0xe0, };
20699 static const u8 ed25519_900_test_vectors_expected_sig[] = {
20700 	0x8f, 0xd7, 0xfa, 0x40, 0x0c, 0x03, 0x2f, 0xcf, 0xbc, 0x40, 0x29, 0x42, 0xfc, 0x78, 0x63, 0x75, 0x26, 0xbe, 0x97, 0xab, 0x82, 0xf2, 0x37, 0xbb, 0x39, 0x3e, 0xa3, 0x9e, 0x35, 0x73, 0x8c, 0x67, 0xd7, 0x54, 0x09, 0x54, 0x3a, 0x8b, 0x3c, 0x05, 0x5f, 0x08, 0xbf, 0x69, 0x19, 0x9a, 0xf6, 0x3b, 0x69, 0x11, 0xa4, 0x82, 0xfb, 0x4f, 0x65, 0x80, 0x80, 0x2e, 0xc9, 0xd2, 0xdc, 0x3c, 0x11, 0x06, };
20701 static const ec_test_case ed25519_900_test_case = {
20702 	.name = "EDDSA25519-SHA512/wei25519 900",
20703 	.ec_str_p = &wei25519_str_params,
20704 	.priv_key = ed25519_900_test_vectors_priv_key,
20705 	.priv_key_len = sizeof(ed25519_900_test_vectors_priv_key),
20706 	.nn_random = NULL,
20707 	.hash_type = SHA512,
20708 	.msg = (const char *)ed25519_900_test_vectors_message,
20709 	.msglen = sizeof(ed25519_900_test_vectors_message),
20710 	.sig_type = EDDSA25519,
20711 	.exp_sig = ed25519_900_test_vectors_expected_sig,
20712 	.exp_siglen = sizeof(ed25519_900_test_vectors_expected_sig),
20713 	.adata = NULL,
20714 	.adata_len = 0
20715 };
20716 
20717 /************************************************/
20718 static const u8 ed25519_901_test_vectors_priv_key[] = {
20719 	0x76, 0x2f, 0x06, 0xca, 0x01, 0xe3, 0x14, 0x71, 0x5f, 0x92, 0xc9, 0x0b, 0xbe, 0x72, 0xa2, 0x5b, 0xf2, 0x62, 0x12, 0xc8, 0x1e, 0xb1, 0xd1, 0xa0, 0xda, 0xe2, 0xc3, 0x11, 0x30, 0xf7, 0xcd, 0xbb, };
20720 static const u8 ed25519_901_test_vectors_message[] = {
20721 	0x94, 0x97, 0x48, 0x3a, 0x4f, 0xba, 0x78, 0x43, 0x3b, 0x38, 0xe9, 0xde, 0xb8, 0x91, 0x5c, 0x75, 0x0b, 0x6d, 0xa0, 0xf7, 0x8a, 0xf4, 0xa6, 0x8b, 0x62, 0xf9, 0xfc, 0x03, 0x91, 0xe3, 0x38, 0x87, 0x3b, 0x1d, 0x64, 0xb1, 0xb7, 0xf0, 0x9f, 0x12, 0xf0, 0x56, 0xa3, 0xc9, 0x16, 0x53, 0x49, 0x8a, 0xd5, 0x6e, 0x06, 0x9b, 0x8b, 0x16, 0x08, 0x87, 0xe8, 0xe3, 0x78, 0xa7, 0x6d, 0x8b, 0x3c, 0x66, 0x70, 0x83, 0xc0, 0xa2, 0xb2, 0xd2, 0x31, 0x7d, 0x3b, 0x87, 0x48, 0x57, 0xe5, 0x78, 0x62, 0xef, 0x0c, 0xb7, 0x04, 0x36, 0xa9, 0x02, 0x8f, 0x01, 0x91, 0xcc, 0xc6, 0x16, 0xe9, 0xd7, 0xc9, 0xbd, 0x86, 0x98, 0x08, 0xcf, 0x09, 0x48, 0x35, 0xff, 0x51, 0x86, 0x77, 0xb3, 0xfb, 0x08, 0x9f, 0x4c, 0x9d, 0x07, 0x7c, 0xc7, 0x74, 0x24, 0x05, 0xb4, 0x86, 0x3a, 0xc7, 0xa5, 0x96, 0x45, 0xc9, 0xcf, 0x54, 0x0d, 0x57, 0x39, 0x9d, 0xa6, 0xae, 0x9d, 0x07, 0xfd, 0x19, 0xfc, 0xa9, 0x5b, 0xc8, 0xa8, 0x6d, 0x8b, 0x8e, 0x24, 0xe4, 0x87, 0x33, 0xf3, 0x21, 0x58, 0xfd, 0x19, 0xa8, 0xa1, 0x11, 0x1d, 0x1d, 0xa1, 0xf9, 0xb5, 0x80, 0xa3, 0x9c, 0x10, 0x48, 0x46, 0x16, 0xcf, 0x2b, 0xc0, 0xec, 0x29, 0xf6, 0x3f, 0x77, 0xc8, 0x53, 0x56, 0x15, 0x8e, 0x16, 0xda, 0x59, 0x4b, 0x5a, 0x89, 0x0e, 0x55, 0xd0, 0xb6, 0x45, 0x99, 0xb3, 0x02, 0x93, 0xe9, 0x00, 0xed, 0x92, 0xad, 0x26, 0x19, 0x69, 0xe7, 0xdf, 0x4c, 0x4b, 0x1d, 0x0b, 0x60, 0x24, 0xbd, 0xce, 0xb6, 0x90, 0x67, 0xef, 0x48, 0x6c, 0x20, 0xfd, 0xcd, 0x22, 0xa1, 0x0d, 0x5d, 0xa4, 0x5f, 0xbf, 0x90, 0x5b, 0xa1, 0xe9, 0x35, 0xc9, 0x6f, 0x50, 0xaf, 0xb6, 0x35, 0x71, 0xbc, 0xff, 0x31, 0x30, 0x68, 0x4e, 0xda, 0x0b, 0x56, 0xe6, 0x0b, 0x26, 0xcf, 0x4c, 0x0e, 0xf9, 0x93, 0x8a, 0x92, 0x76, 0x8f, 0xc8, 0x63, 0x1f, 0xe3, 0x08, 0x23, 0x6b, 0x01, 0x2f, 0x92, 0xaf, 0x24, 0xa8, 0xf6, 0xe6, 0xec, 0xbe, 0x76, 0x62, 0x9b, 0xba, 0xf8, 0xff, 0xe5, 0x4c, 0xdb, 0xe8, 0x67, 0x1d, 0xe2, 0xba, 0x62, 0x4a, 0x7c, 0x0f, 0x61, 0x93, 0xbb, 0xa4, 0x11, 0x04, 0x12, 0x90, 0x2b, 0xac, 0x29, 0x90, 0x92, 0x2a, 0x9e, 0x5a, 0x81, 0x05, 0x3c, 0xf8, 0x76, 0xa4, 0xc8, 0x05, 0xa0, 0x4c, 0x56, 0xa8, 0x13, 0x9d, 0x34, 0x19, 0xe4, 0x54, 0xa6, 0x22, 0xd0, 0x34, 0x2b, 0xf4, 0x26, 0xe9, 0x80, 0x2c, 0x3d, 0xc1, 0xb4, 0x08, 0x0c, 0x75, 0x49, 0x2a, 0xfe, 0x9d, 0x7b, 0x15, 0x45, 0xfe, 0x08, 0x6d, 0x96, 0x35, 0x41, 0x32, 0x4f, 0xf5, 0x2a, 0x48, 0xc6, 0xbf, 0xae, 0xa2, 0x66, 0x68, 0xb3, 0xe0, 0x1e, 0x52, 0x36, 0xfd, 0x45, 0xfe, 0x54, 0x59, 0x45, 0x35, 0xc0, 0xb2, 0x3e, 0x28, 0x7e, 0xbd, 0x14, 0x28, 0xc8, 0xbe, 0x0a, 0xd1, 0x41, 0x60, 0x0e, 0x91, 0xcb, 0x51, 0xe1, 0xea, 0x66, 0x27, 0x1a, 0x64, 0x21, 0xfb, 0x68, 0x9e, 0x88, 0xa0, 0x79, 0x0a, 0x65, 0x1d, 0xbd, 0x21, 0xee, 0x20, 0x89, 0xb2, 0x74, 0x66, 0x6f, 0x66, 0x0c, 0xa0, 0x9c, 0xe2, 0xd6, 0x0e, 0x39, 0xe2, 0xee, 0x5f, 0x03, 0xb6, 0xeb, 0x82, 0xd1, 0x99, 0x76, 0x96, 0x6e, 0x79, 0x90, 0x0a, 0x81, 0x0f, 0x6d, 0x5b, 0x5c, 0x1a, 0x54, 0x8e, 0x50, 0x64, 0xf5, 0xc3, 0xd8, 0xa9, 0xf2, 0xde, 0xf0, 0x17, 0x9d, 0xf9, 0x9d, 0x14, 0x3f, 0xde, 0x69, 0xb0, 0x71, 0x2c, 0x09, 0x1c, 0x29, 0xe9, 0xb2, 0x5f, 0x40, 0xca, 0xfd, 0x57, 0xa0, 0x24, 0x65, 0x8d, 0x77, 0x74, 0x03, 0x76, 0x10, 0x34, 0x2f, 0x38, 0x00, 0xfd, 0x51, 0xf4, 0x9e, 0x79, 0xa5, 0xb3, 0xde, 0xcc, 0x11, 0x2f, 0x58, 0xd0, 0x3e, 0x3d, 0x29, 0x58, 0x75, 0x85, 0x88, 0xbc, 0x4b, 0x1c, 0x6a, 0x6c, 0xda, 0x7b, 0xc5, 0xf5, 0xbe, 0x18, 0x3e, 0x41, 0x51, 0x3c, 0x1f, 0x23, 0x0f, 0x3c, 0xc3, 0x64, 0x30, 0x4b, 0xf8, 0x24, 0x84, 0xb7, 0xcf, 0x19, 0xa0, 0x02, 0xe1, 0x50, 0xf9, 0x8c, 0x5e, 0x97, 0xc6, 0x16, 0x6e, 0xa1, 0x5b, 0x86, 0x34, 0x0b, 0x8c, 0x5e, 0xbe, 0x5c, 0x1a, 0x18, 0x3e, 0x55, 0x88, 0xe6, 0x6f, 0x55, 0x90, 0x50, 0x86, 0x31, 0x3f, 0x37, 0xa4, 0x09, 0xe8, 0x9b, 0x47, 0xdb, 0x31, 0xae, 0x97, 0x45, 0x3e, 0xdf, 0x69, 0xfe, 0xd7, 0xbe, 0x08, 0x11, 0x30, 0x71, 0xf3, 0x74, 0xb2, 0x6e, 0xc6, 0x04, 0x3f, 0x2a, 0x0e, 0x9c, 0xf8, 0xba, 0xd8, 0x02, 0xab, 0xad, 0x69, 0xe6, 0x17, 0xe7, 0x62, 0x43, 0xb3, 0xcc, 0x03, 0x4b, 0x09, 0x9d, 0x87, 0x29, 0xee, 0x40, 0x7a, 0x53, 0xeb, 0x03, 0xbd, 0xc6, 0x41, 0x0a, 0x03, 0x95, 0x04, 0xb3, 0xb1, 0x2c, 0x81, 0x9b, 0x64, 0x54, 0x5d, 0x40, 0x5c, 0x6a, 0x4f, 0x08, 0x49, 0x21, 0x93, 0x5b, 0xdf, 0xf4, 0x13, 0x0a, 0xe6, 0x29, 0xd9, 0x09, 0x62, 0x6b, 0x06, 0x26, 0x76, 0xe5, 0x38, 0xea, 0xfd, 0xff, 0xb1, 0xd6, 0x22, 0x9c, 0x08, 0x89, 0xd3, 0xcd, 0xdd, 0x33, 0x65, 0xdc, 0x3d, 0x65, 0x36, 0xf7, 0x24, 0x8c, 0x49, 0x31, 0x7c, 0xb5, 0x0c, 0x56, 0xfb, 0x57, 0x85, 0x55, 0x41, 0xd6, 0xfe, 0xeb, 0xac, 0x81, 0x6c, 0x99, 0x28, 0xfa, 0x66, 0x2d, 0x0a, 0xe8, 0x0a, 0x0f, 0x39, 0xe5, 0x70, 0xbb, 0x7d, 0x22, 0x41, 0x6f, 0x98, 0xf3, 0x71, 0xb6, 0x42, 0x47, 0x96, 0x89, 0x51, 0xa8, 0xa2, 0x46, 0xf7, 0x4b, 0x30, 0x61, 0x74, 0x3c, 0x9a, 0xf7, 0x68, 0x4b, 0xbb, 0x96, 0x6a, 0xe0, 0xbd, 0x78, 0xa8, 0x10, 0x49, 0x3e, 0xa4, 0xcc, 0xd7, 0x11, 0x74, 0x87, 0x1c, 0x82, 0xbb, 0x65, 0x2b, 0x27, 0x48, 0xe5, 0xbc, 0xcb, 0x0a, 0xb6, 0x38, 0x8a, 0x50, 0xf0, 0x53, 0xa0, 0x48, 0x08, 0x7f, 0xd9, 0x7e, 0xb1, 0x5c, 0x1a, 0x21, 0xb1, 0xee, 0x18, 0x25, 0xe5, 0x4a, 0xa1, 0x30, 0xd6, 0x63, 0x18, 0xaa, 0xf6, 0x61, 0xbb, 0xb2, 0x47, 0x63, 0x57, 0x7e, 0xb3, 0x7d, 0x31, 0x0e, 0x21, 0x9b, 0x0a, 0x9b, 0xba, 0x03, 0x75, 0xeb, 0x9c, 0x9b, 0x4a, 0xf8, 0xc4, 0xb9, 0x9a, 0x36, 0x99, 0xe0, 0xd3, 0x26, 0x67, 0x33, 0xb6, 0xe4, 0xe9, 0xc5, 0x34, 0x49, 0x0a, 0x13, 0x41, 0xcb, 0x19, 0x90, 0xca, 0x5b, 0x1c, 0x84, 0x7b, 0xc8, 0x12, 0x60, 0x26, 0xfe, 0xa9, 0x03, 0xa1, 0xf5, 0x49, 0xd6, 0x5a, 0xf8, 0xfe, 0x02, 0xa9, 0x16, 0x3f, 0xf8, 0xea, 0x28, 0x1e, 0x72, 0x26, 0x24, 0x3e, 0x2a, 0x15, 0x3b, 0x92, 0x18, 0x51, 0xde, 0x10, 0xf7, };
20722 static const u8 ed25519_901_test_vectors_expected_sig[] = {
20723 	0xe8, 0x42, 0xb4, 0x9e, 0x53, 0x3d, 0xbc, 0x92, 0x99, 0x8d, 0xc0, 0x78, 0xe5, 0x97, 0x93, 0xa2, 0xc2, 0xfa, 0x63, 0x6b, 0xdf, 0xaf, 0xdb, 0x48, 0x93, 0x4c, 0x93, 0xcf, 0x34, 0x79, 0x71, 0x02, 0x93, 0x8d, 0x13, 0x7a, 0xb7, 0xea, 0xd1, 0xa0, 0xf7, 0x0e, 0x94, 0xa6, 0x7d, 0x57, 0xef, 0x6a, 0x02, 0xc9, 0xec, 0x77, 0xd7, 0x1f, 0x70, 0xcc, 0x57, 0xf1, 0x53, 0x3b, 0xec, 0x87, 0x73, 0x0e, };
20724 static const ec_test_case ed25519_901_test_case = {
20725 	.name = "EDDSA25519-SHA512/wei25519 901",
20726 	.ec_str_p = &wei25519_str_params,
20727 	.priv_key = ed25519_901_test_vectors_priv_key,
20728 	.priv_key_len = sizeof(ed25519_901_test_vectors_priv_key),
20729 	.nn_random = NULL,
20730 	.hash_type = SHA512,
20731 	.msg = (const char *)ed25519_901_test_vectors_message,
20732 	.msglen = sizeof(ed25519_901_test_vectors_message),
20733 	.sig_type = EDDSA25519,
20734 	.exp_sig = ed25519_901_test_vectors_expected_sig,
20735 	.exp_siglen = sizeof(ed25519_901_test_vectors_expected_sig),
20736 	.adata = NULL,
20737 	.adata_len = 0
20738 };
20739 
20740 /************************************************/
20741 static const u8 ed25519_902_test_vectors_priv_key[] = {
20742 	0xc5, 0xcc, 0x0b, 0x95, 0x81, 0x8c, 0x4b, 0xf3, 0x8d, 0xa1, 0xd6, 0x5f, 0x02, 0x16, 0x27, 0xe9, 0xe5, 0x7d, 0x26, 0x2b, 0x02, 0xec, 0x6d, 0x91, 0x7a, 0x7d, 0x46, 0xb1, 0x1c, 0x7f, 0xe4, 0x8a, };
20743 static const u8 ed25519_902_test_vectors_message[] = {
20744 	0xd6, 0x60, 0x8b, 0xf5, 0xac, 0x00, 0x0e, 0xca, 0xf9, 0x5f, 0xc0, 0x9f, 0x9c, 0xb7, 0x49, 0x8c, 0x51, 0x8a, 0x6e, 0x02, 0x55, 0x58, 0x6e, 0x63, 0x37, 0x85, 0x3b, 0x1d, 0x7d, 0x9d, 0x7d, 0xe4, 0xdf, 0xe1, 0x24, 0x5d, 0x59, 0x03, 0x1a, 0x31, 0x7d, 0x4e, 0x2b, 0x6a, 0x73, 0xc4, 0xc3, 0xf9, 0x5b, 0x58, 0x2e, 0x72, 0xa6, 0x42, 0x02, 0x21, 0x58, 0x7b, 0xac, 0x12, 0x0f, 0xb8, 0xed, 0x73, 0x48, 0x07, 0x0f, 0x28, 0x60, 0xd8, 0x58, 0x66, 0xa0, 0x9f, 0xe7, 0x56, 0x74, 0x34, 0x97, 0xf2, 0x11, 0x9b, 0xc1, 0xbf, 0xdf, 0x57, 0x3b, 0xe3, 0x5d, 0x10, 0x91, 0xbe, 0x37, 0xf1, 0x8b, 0xcd, 0xa6, 0x74, 0x1c, 0x90, 0xd5, 0x66, 0xcc, 0x92, 0x4b, 0x72, 0x16, 0x4b, 0x74, 0x9a, 0xf9, 0xa6, 0xf4, 0x0f, 0x71, 0xd3, 0xea, 0x5d, 0x87, 0x64, 0xcd, 0xc8, 0x17, 0x14, 0xbd, 0x73, 0x95, 0xe5, 0xf6, 0x79, 0x97, 0x36, 0x36, 0xef, 0xf1, 0xdb, 0x1c, 0xf0, 0x01, 0x29, 0x83, 0xf7, 0x1a, 0x2f, 0x2b, 0x12, 0xd4, 0x5a, 0x29, 0x4e, 0x5a, 0x38, 0x9f, 0x4c, 0xd2, 0x48, 0x3e, 0xb3, 0x9d, 0xa0, 0xdf, 0x26, 0xb7, 0x36, 0xc7, 0xaf, 0x6e, 0x41, 0xdd, 0x35, 0xa7, 0x8e, 0x45, 0x29, 0x2c, 0x39, 0x4e, 0x34, 0x68, 0x95, 0x32, 0x88, 0x87, 0x21, 0xf8, 0x63, 0xc5, 0x6d, 0xb9, 0x7d, 0xa1, 0xcd, 0x10, 0xa6, 0x6a, 0x20, 0xa6, 0x70, 0xb2, 0x7f, 0xe8, 0xce, 0x55, 0x68, 0xa4, 0x2b, 0x89, 0x37, 0x79, 0x0c, 0x7b, 0xe1, 0xaa, 0x42, 0x0d, 0x20, 0x3d, 0x7a, 0x88, 0x5c, 0x17, 0x29, 0xcd, 0x6b, 0x8e, 0x19, 0x71, 0x89, 0xe4, 0x79, 0xd5, 0x42, 0xcb, 0xcb, 0x9b, 0x53, 0x65, 0x6f, 0x2b, 0x9f, 0x53, 0x9c, 0x32, 0x5c, 0x34, 0xaa, 0x59, 0x8f, 0xd9, 0x1e, 0x7d, 0xf7, 0x0f, 0x9a, 0x74, 0xab, 0xec, 0x46, 0x76, 0x54, 0xb1, 0xc9, 0xa3, 0xd1, 0x44, 0x38, 0xe7, 0xc0, 0x83, 0x60, 0x40, 0xb7, 0x93, 0x87, 0x1e, 0xcb, 0xe9, 0xe5, 0xf6, 0x68, 0x0c, 0xcc, 0xcd, 0x5d, 0x46, 0x96, 0xa8, 0x7e, 0x37, 0xe8, 0x9e, 0xab, 0x28, 0xb6, 0xbd, 0x67, 0x9e, 0x8f, 0xe1, 0x62, 0x7b, 0xdc, 0x9d, 0x37, 0x3b, 0x82, 0xf5, 0x2c, 0xd8, 0xc4, 0x9b, 0xe9, 0xba, 0xcd, 0xc6, 0x30, 0xa3, 0x2f, 0xd1, 0x28, 0x35, 0x25, 0x5a, 0x54, 0x2f, 0xb7, 0xb1, 0x23, 0x93, 0x77, 0x9d, 0x44, 0x98, 0xaa, 0x06, 0xa0, 0xe7, 0xe1, 0xa4, 0x97, 0x79, 0x39, 0x81, 0x7e, 0xb2, 0x08, 0x8a, 0xf1, 0xe1, 0x9b, 0xb0, 0xe5, 0xac, 0xa8, 0x54, 0xc1, 0x25, 0xdc, 0x60, 0x3d, 0x83, 0x57, 0x36, 0xa0, 0x3d, 0x93, 0x80, 0x51, 0x53, 0x0c, 0x9a, 0xb1, 0xaa, 0x3b, 0xc7, 0x79, 0xb3, 0xba, 0xe7, 0x45, 0x0e, 0xf5, 0x7d, 0x1b, 0x3f, 0xc0, 0x93, 0xa3, 0x7d, 0xbe, 0x9d, 0x1b, 0xd6, 0xd0, 0x40, 0xf2, 0xf8, 0xee, 0xba, 0x77, 0xf7, 0xfa, 0x88, 0xc1, 0x49, 0xf0, 0x65, 0xc7, 0xac, 0xe3, 0x32, 0x77, 0xaa, 0x99, 0x69, 0xc2, 0x66, 0xea, 0x6d, 0x85, 0xca, 0xd6, 0x2c, 0xfa, 0xf5, 0x50, 0x8e, 0x70, 0x32, 0x71, 0x6b, 0xe6, 0x84, 0xa2, 0x28, 0x56, 0x41, 0x3e, 0x0e, 0x65, 0xe4, 0x2b, 0x6e, 0x9e, 0x6d, 0x86, 0x5a, 0x87, 0x36, 0x3c, 0xbb, 0x62, 0xd5, 0xbb, 0xb6, 0xa3, 0x73, 0x1d, 0xdd, 0xa0, 0xfa, 0x6a, 0xd0, 0x29, 0x3a, 0xf9, 0x89, 0x3c, 0x09, 0xa9, 0xe7, 0x43, 0x09, 0x0f, 0x2c, 0xee, 0x2f, 0x44, 0x37, 0x73, 0x6d, 0xd4, 0x33, 0xe2, 0xac, 0x74, 0x28, 0xbd, 0xc8, 0xc7, 0x7c, 0xb9, 0x96, 0x43, 0x55, 0xfa, 0x44, 0x15, 0xcc, 0x38, 0x31, 0xd8, 0xc7, 0xca, 0x5a, 0xf9, 0x3d, 0x51, 0x75, 0x2e, 0x71, 0x8c, 0x60, 0x66, 0xec, 0xa1, 0x42, 0x6a, 0x87, 0xc2, 0x98, 0x08, 0x28, 0x1a, 0x85, 0xac, 0x7e, 0x0b, 0x40, 0x44, 0xff, 0x6e, 0x28, 0x0e, 0x28, 0x01, 0x4b, 0x93, 0x83, 0xd1, 0x9c, 0x9d, 0x38, 0x7d, 0x29, 0xdc, 0x14, 0xde, 0x43, 0x3d, 0xa2, 0x60, 0x78, 0x4a, 0x49, 0x44, 0xca, 0x76, 0xc2, 0xfe, 0x8a, 0x08, 0x0d, 0x09, 0x96, 0xd9, 0xa6, 0xc2, 0xa3, 0xd3, 0xa7, 0x07, 0x72, 0x80, 0xed, 0xce, 0xe0, 0x38, 0x9a, 0xa8, 0xe5, 0x36, 0x5d, 0x1d, 0x9b, 0x34, 0x6e, 0xca, 0x09, 0x47, 0xb0, 0xff, 0x52, 0x65, 0x94, 0x3c, 0xcf, 0x09, 0x93, 0x9a, 0x4b, 0x4a, 0x8f, 0x98, 0x5f, 0x6a, 0x5e, 0x72, 0x72, 0x3c, 0x79, 0x5d, 0xa0, 0xbc, 0x36, 0x0d, 0xce, 0x50, 0x1f, 0x67, 0x3a, 0xb6, 0xea, 0x84, 0x43, 0xf1, 0x29, 0x42, 0x79, 0x52, 0x45, 0x3e, 0xb7, 0x2b, 0x3a, 0x8d, 0x0d, 0x97, 0x6c, 0x27, 0x8c, 0x5b, 0xd1, 0xa9, 0x85, 0x3c, 0x91, 0x8e, 0x0c, 0x24, 0x0c, 0x3c, 0x73, 0x49, 0x32, 0x95, 0x3f, 0xdb, 0x50, 0x39, 0xfb, 0xb0, 0x46, 0x87, 0x93, 0x7c, 0x9f, 0xf0, 0xab, 0x74, 0xa1, 0x6e, 0xae, 0x21, 0x2b, 0xc6, 0xf2, 0x0e, 0x70, 0x0a, 0x77, 0xc0, 0x92, 0xd2, 0x3d, 0x2e, 0xfb, 0x58, 0x0e, 0x0c, 0x19, 0xd6, 0x5f, 0x30, 0x41, 0x29, 0xab, 0x8e, 0x6c, 0xc1, 0x2e, 0x58, 0x05, 0x22, 0x57, 0xba, 0x09, 0x44, 0x9f, 0x30, 0xd3, 0xd9, 0x74, 0x39, 0x1a, 0xff, 0xf5, 0x63, 0x3d, 0xef, 0x2f, 0x5c, 0x4e, 0xbd, 0x57, 0x3a, 0x9e, 0x44, 0x4b, 0xf3, 0xa3, 0xdd, 0xac, 0xed, 0xf0, 0x2c, 0x05, 0xf3, 0xcc, 0x2e, 0x75, 0x06, 0x64, 0xa8, 0x4a, 0x1d, 0x24, 0xc5, 0xd2, 0x8b, 0x49, 0x67, 0x0d, 0xe8, 0xa2, 0xf2, 0x09, 0x08, 0x39, 0x48, 0x3c, 0xa3, 0x89, 0x59, 0x99, 0x1a, 0x7d, 0x37, 0x27, 0xe2, 0x1a, 0x15, 0xe8, 0x20, 0x16, 0xc1, 0x5a, 0x09, 0xee, 0x71, 0xf4, 0xf4, 0x3c, 0x0a, 0x60, 0x8b, 0x48, 0x48, 0x5c, 0x99, 0x34, 0xa3, 0x86, 0x14, 0x79, 0x4d, 0x62, 0x91, 0xda, 0xa3, 0x9c, 0x01, 0xc4, 0x5d, 0x3d, 0xeb, 0xe5, 0x79, 0xb5, 0x82, 0x3b, 0xf3, 0x40, 0x64, 0x04, 0xb4, 0xc8, 0x0e, 0xe6, 0xff, 0x34, 0x2b, 0x46, 0xb3, 0x34, 0xb0, 0xb8, 0x83, 0xb4, 0x0b, 0xfd, 0x2f, 0x9a, 0x53, 0x59, 0x5a, 0xb6, 0x2f, 0xd1, 0x35, 0x1e, 0xbc, 0x88, 0x30, 0x83, 0x70, 0x49, 0x72, 0x18, 0xdf, 0xc9, 0x8c, 0xe0, 0x81, 0x40, 0x7d, 0xa8, 0x12, 0xa4, 0x6d, 0x64, 0x97, 0xd7, 0xaf, 0x9e, 0xc6, 0xd8, 0x3e, 0x1c, 0x60, 0xee, 0xb7, 0x12, 0xd8, 0x89, 0xdf, 0xbe, 0xd0, 0xc8, 0x05, 0xaa, 0x11, 0xcf, 0x81, 0x7d, 0xd8, 0xf0, 0x43, 0x96, 0xef, 0x87, 0x1a, 0x26, 0x11, 0x2d, 0xcb, 0x7c, 0x0e, 0x1d, 0x2e, 0x68, };
20745 static const u8 ed25519_902_test_vectors_expected_sig[] = {
20746 	0x3b, 0xa0, 0xaf, 0x8a, 0xf1, 0x27, 0xc4, 0x58, 0x48, 0x26, 0x09, 0x0e, 0xcd, 0xaf, 0x48, 0x5e, 0xbd, 0xf0, 0x7b, 0x82, 0xbc, 0x49, 0x9c, 0x9a, 0x2b, 0xef, 0xca, 0x28, 0xd4, 0x93, 0x44, 0x97, 0x4a, 0xdd, 0xbc, 0x8d, 0x80, 0xa5, 0x25, 0x60, 0xe0, 0xf3, 0xd7, 0x3f, 0xf5, 0xcc, 0xcc, 0x72, 0xc7, 0x4b, 0x5b, 0x47, 0xad, 0x2e, 0x6d, 0xe9, 0x61, 0x2d, 0x1a, 0x00, 0xae, 0xc9, 0x27, 0x01, };
20747 static const ec_test_case ed25519_902_test_case = {
20748 	.name = "EDDSA25519-SHA512/wei25519 902",
20749 	.ec_str_p = &wei25519_str_params,
20750 	.priv_key = ed25519_902_test_vectors_priv_key,
20751 	.priv_key_len = sizeof(ed25519_902_test_vectors_priv_key),
20752 	.nn_random = NULL,
20753 	.hash_type = SHA512,
20754 	.msg = (const char *)ed25519_902_test_vectors_message,
20755 	.msglen = sizeof(ed25519_902_test_vectors_message),
20756 	.sig_type = EDDSA25519,
20757 	.exp_sig = ed25519_902_test_vectors_expected_sig,
20758 	.exp_siglen = sizeof(ed25519_902_test_vectors_expected_sig),
20759 	.adata = NULL,
20760 	.adata_len = 0
20761 };
20762 
20763 /************************************************/
20764 static const u8 ed25519_903_test_vectors_priv_key[] = {
20765 	0x61, 0xfa, 0x86, 0x77, 0xee, 0xda, 0xde, 0xd6, 0x9b, 0x16, 0x5c, 0x8d, 0x27, 0x7c, 0x97, 0x82, 0x49, 0x66, 0x30, 0x28, 0x30, 0x1d, 0xf6, 0x16, 0x3e, 0x39, 0xb0, 0x6a, 0xc2, 0xf5, 0x62, 0x5f, };
20766 static const u8 ed25519_903_test_vectors_message[] = {
20767 	0x02, 0xc5, 0x81, 0xde, 0xe0, 0x3f, 0x2c, 0x60, 0x39, 0x35, 0xaf, 0x5e, 0xce, 0xec, 0xfa, 0x67, 0x71, 0x34, 0xa3, 0xe0, 0xae, 0xa5, 0x4f, 0xec, 0xaf, 0x42, 0x71, 0xfb, 0x52, 0x95, 0x1a, 0x27, 0xb7, 0x68, 0x77, 0xcc, 0xd4, 0x9a, 0xb4, 0x86, 0xdf, 0xc2, 0x27, 0xcf, 0x31, 0xc9, 0xd9, 0x57, 0xcc, 0x97, 0x30, 0x65, 0x73, 0xfc, 0x7f, 0xe1, 0xd3, 0x1b, 0x6c, 0x7d, 0xf3, 0xd7, 0x80, 0xf3, 0xa0, 0x5c, 0xa6, 0x39, 0x56, 0x57, 0xa9, 0x42, 0x43, 0x42, 0xc9, 0xc6, 0xb7, 0x03, 0x12, 0x7e, 0x03, 0x8d, 0xf0, 0x79, 0x21, 0x54, 0xe3, 0x0a, 0x49, 0x47, 0x61, 0x12, 0xcb, 0x92, 0xd0, 0xd5, 0xa2, 0xd2, 0x2e, 0x89, 0x57, 0x52, 0xa8, 0x6e, 0xdd, 0xdd, 0x91, 0x2f, 0xdc, 0x81, 0xb1, 0xe6, 0x4a, 0x7b, 0xb7, 0x50, 0xf0, 0x99, 0x18, 0x21, 0x32, 0xee, 0x48, 0x23, 0xfd, 0xe8, 0x45, 0x80, 0x2a, 0x94, 0x45, 0x39, 0xd4, 0x12, 0xb2, 0xa8, 0x1a, 0x15, 0xb0, 0x00, 0x71, 0xa9, 0x50, 0x50, 0x4c, 0x5b, 0x55, 0xa7, 0x1b, 0xdb, 0x8c, 0x5a, 0x58, 0x26, 0x39, 0xe8, 0x55, 0xe8, 0xbe, 0x24, 0x1c, 0xda, 0x1b, 0xa6, 0xb3, 0xb4, 0xf6, 0x45, 0x54, 0xd1, 0x78, 0x24, 0x90, 0x4c, 0xb3, 0x0c, 0xd7, 0xef, 0xd9, 0xac, 0x04, 0x9e, 0x39, 0x0b, 0xb7, 0x9f, 0x53, 0x59, 0x8e, 0xf1, 0xe8, 0xfc, 0x27, 0xdd, 0x7b, 0xf5, 0x99, 0xc9, 0x02, 0x8c, 0x9e, 0xbf, 0x92, 0xfc, 0x3b, 0xe1, 0x1d, 0xf3, 0x29, 0x61, 0x2a, 0x22, 0x8e, 0x0f, 0x56, 0x84, 0x68, 0x7b, 0xf4, 0x1f, 0xf2, 0x03, 0xe9, 0x7a, 0x76, 0x86, 0x12, 0x6a, 0x39, 0x36, 0x6b, 0xdc, 0x26, 0xd5, 0x0b, 0xe0, 0x25, 0xd5, 0x18, 0x7c, 0x6b, 0xa0, 0x66, 0x6e, 0x37, 0x9b, 0xe4, 0xa8, 0x0a, 0x9e, 0x62, 0xef, 0xfc, 0xd9, 0x16, 0xd7, 0xf9, 0x8d, 0xe6, 0x51, 0xe0, 0x0b, 0x97, 0xad, 0xf5, 0xd2, 0xd5, 0x3d, 0xaa, 0x7f, 0x8d, 0x69, 0x5a, 0x29, 0x15, 0x60, 0x75, 0x5c, 0x74, 0x44, 0x82, 0x36, 0x4c, 0x4f, 0x1f, 0xa4, 0x7e, 0xc0, 0xb1, 0xda, 0x16, 0x1a, 0xa3, 0x88, 0xf9, 0x59, 0x79, 0x89, 0xa9, 0x77, 0x26, 0xd3, 0xed, 0x2c, 0xec, 0x82, 0xf1, 0xa1, 0xbb, 0xc4, 0xac, 0x0b, 0xe0, 0xa0, 0x0c, 0xb4, 0xa8, 0xdb, 0x1f, 0xb7, 0xc1, 0x4b, 0xa0, 0x5d, 0x89, 0x63, 0x48, 0xdc, 0x05, 0x59, 0xd2, 0xa9, 0x0b, 0xea, 0xc2, 0x04, 0x1d, 0xd7, 0x7f, 0x82, 0xd6, 0xb1, 0x2a, 0xeb, 0x22, 0x43, 0xca, 0x0f, 0x41, 0x9a, 0x57, 0xd3, 0xca, 0x9c, 0x7d, 0x25, 0xa3, 0x0f, 0xf0, 0xe8, 0xbb, 0x0d, 0x94, 0x51, 0x55, 0xd1, 0xb3, 0x6a, 0xd1, 0x07, 0xb5, 0x5b, 0xea, 0xa9, 0x5b, 0x7d, 0x5e, 0x32, 0x00, 0x34, 0x07, 0x62, 0x9f, 0x15, 0x15, 0xf8, 0xa7, 0x08, 0x9e, 0x24, 0x88, 0xd0, 0xd7, 0x54, 0x4c, 0x2f, 0x7c, 0xc7, 0xc7, 0xf0, 0x98, 0x5d, 0xa4, 0x28, 0x40, 0xd4, 0x36, 0x8f, 0xf4, 0xf0, 0xfa, 0x4f, 0xa2, 0x98, 0xe3, 0xb7, 0x22, 0x93, 0x03, 0xab, 0xa5, 0x14, 0xae, 0x94, 0xe7, 0x02, 0x65, 0x35, 0xa3, 0xf4, 0x26, 0xff, 0xbb, 0x4e, 0x00, 0x1c, 0xd5, 0x0e, 0xd1, 0x2f, 0x21, 0x4b, 0x3a, 0xbe, 0xf9, 0x6e, 0x30, 0x16, 0x35, 0xc9, 0x87, 0xb1, 0x33, 0xfc, 0x5e, 0x61, 0x84, 0xe7, 0xb7, 0x57, 0x2b, 0xc3, 0xd9, 0x9a, 0x45, 0x23, 0xcb, 0xd5, 0xaf, 0xe5, 0x93, 0xce, 0xdf, 0x4c, 0x9c, 0xd0, 0x2f, 0xf2, 0xe3, 0x62, 0x37, 0xe4, 0xee, 0x12, 0xef, 0x1a, 0x22, 0xd1, 0x6d, 0x7c, 0xf4, 0xc0, 0x72, 0xdc, 0xed, 0x91, 0xcd, 0xd2, 0x6e, 0xe1, 0x44, 0xcc, 0x2b, 0xef, 0x49, 0x50, 0x02, 0x63, 0x49, 0xe9, 0x44, 0x47, 0x84, 0x08, 0x1f, 0xe4, 0xe0, 0x49, 0x8b, 0xc7, 0x5f, 0x72, 0xe6, 0x81, 0x8f, 0x45, 0x9b, 0xba, 0x90, 0x49, 0xc5, 0x61, 0x31, 0x6c, 0x9f, 0x49, 0x8e, 0x7b, 0x1a, 0x99, 0x4b, 0x0e, 0x93, 0x05, 0x5f, 0xe7, 0x3e, 0x44, 0x4c, 0xbd, 0xf9, 0x6a, 0xc3, 0x5e, 0x9c, 0x4e, 0x92, 0xe6, 0xb4, 0x9e, 0x3b, 0xc0, 0xe9, 0x9d, 0xe1, 0x71, 0x6d, 0xf8, 0xea, 0xca, 0xeb, 0x8d, 0x2f, 0xd7, 0x48, 0x70, 0x04, 0x4c, 0xb3, 0x9c, 0x0e, 0x36, 0x7a, 0x1f, 0xe3, 0x2a, 0x9b, 0xb2, 0x97, 0x44, 0x16, 0x36, 0x4e, 0x73, 0x0d, 0x52, 0x48, 0xdf, 0xb1, 0xdf, 0x16, 0x4a, 0x8d, 0x58, 0xca, 0xa1, 0x00, 0x5f, 0xdc, 0x91, 0xba, 0xc2, 0xbc, 0x01, 0xcc, 0x77, 0xde, 0xcc, 0x14, 0x89, 0x3e, 0xf9, 0x46, 0xfb, 0x3c, 0x81, 0xbe, 0x08, 0x32, 0xc7, 0x2f, 0xba, 0x37, 0x20, 0x62, 0xf8, 0x36, 0x0f, 0x4d, 0x8e, 0x6d, 0x5b, 0x74, 0x1c, 0xf7, 0x03, 0x2d, 0x8d, 0x89, 0xde, 0x2e, 0xdf, 0x4c, 0x71, 0x4a, 0x29, 0xf7, 0x5a, 0xbd, 0x8f, 0x5f, 0xf4, 0x3e, 0xcd, 0xd4, 0xb7, 0xa0, 0x4d, 0x7d, 0xb0, 0x88, 0x2d, 0x16, 0xe7, 0x44, 0x73, 0xa0, 0xfb, 0x79, 0xdb, 0x44, 0x4a, 0x78, 0xea, 0x44, 0xaa, 0x26, 0x31, 0xb8, 0xc0, 0xd7, 0xb0, 0x30, 0x0d, 0x55, 0xcb, 0x6a, 0xc4, 0x85, 0xf2, 0x4c, 0x0a, 0xcc, 0x64, 0x77, 0x47, 0xc4, 0x3d, 0xb3, 0xb2, 0xa8, 0x67, 0x7b, 0xaf, 0x65, 0x6f, 0xa7, 0x35, 0xa5, 0x75, 0xf1, 0x81, 0x3f, 0x36, 0x68, 0xa2, 0xac, 0xa9, 0x17, 0x57, 0x11, 0xb5, 0x25, 0xeb, 0x49, 0x6e, 0x9e, 0xf9, 0x71, 0x1d, 0x75, 0xf5, 0x90, 0xc7, 0xd9, 0xef, 0x99, 0xe0, 0xf5, 0x9e, 0x84, 0x83, 0xcb, 0xf9, 0xf2, 0x84, 0xe3, 0xf5, 0xa3, 0x3e, 0xe7, 0x78, 0x1e, 0x62, 0xb8, 0xb0, 0x55, 0x51, 0x77, 0x7e, 0xfe, 0x0f, 0xbf, 0xd1, 0x9e, 0x54, 0xb6, 0xbb, 0xd1, 0x42, 0x94, 0x4b, 0xc2, 0x95, 0x9a, 0x82, 0xeb, 0xd2, 0x95, 0xd2, 0x3d, 0x34, 0x43, 0xb6, 0xce, 0x65, 0x8c, 0x2d, 0x57, 0x9a, 0x76, 0x37, 0xb5, 0x49, 0x52, 0x04, 0x91, 0x90, 0x8e, 0x34, 0x28, 0x2e, 0xc2, 0x71, 0x69, 0x72, 0xe6, 0xf0, 0x35, 0x39, 0x29, 0x54, 0x7e, 0xf1, 0x53, 0x7a, 0xec, 0xc9, 0x6b, 0x2d, 0xf6, 0x16, 0x14, 0x85, 0x99, 0xb0, 0x9d, 0x9b, 0x81, 0x39, 0x4a, 0x13, 0xfe, 0x7d, 0xb8, 0x67, 0x60, 0xb1, 0xe2, 0xa0, 0x60, 0xef, 0xd4, 0x84, 0xe8, 0x18, 0x99, 0x39, 0xeb, 0xdf, 0x6f, 0x21, 0x64, 0x0d, 0x89, 0xd8, 0xe7, 0x36, 0xde, 0xe0, 0x82, 0xad, 0x72, 0xa0, 0x18, 0x4a, 0xde, 0xdd, 0x8d, 0xf2, 0x14, 0x74, 0xc9, 0xf5, 0x26, 0xbc, 0xfd, 0xf7, 0xe8, 0x56, 0x58, 0x19, 0x4b, 0xb6, 0xd9, 0x42, 0xe7, 0xf3, 0xfe, 0x96, 0xc2, 0x3f, };
20768 static const u8 ed25519_903_test_vectors_expected_sig[] = {
20769 	0xc0, 0x4e, 0xbd, 0x11, 0xc3, 0xeb, 0x09, 0x39, 0x6f, 0xe8, 0xd6, 0x82, 0x79, 0x51, 0x0a, 0x9e, 0xfe, 0xe3, 0x91, 0xab, 0xee, 0x40, 0x81, 0xf0, 0xd2, 0x75, 0x67, 0x4a, 0x30, 0x47, 0x94, 0x83, 0x5a, 0xad, 0x7f, 0x3e, 0x34, 0x5b, 0xcf, 0x0a, 0xf8, 0x02, 0x7f, 0x97, 0x47, 0x7e, 0x79, 0xe6, 0x79, 0x2b, 0x8f, 0x29, 0x98, 0x46, 0xae, 0x28, 0xcb, 0x13, 0xbd, 0x88, 0x75, 0x37, 0x99, 0x0d, };
20770 static const ec_test_case ed25519_903_test_case = {
20771 	.name = "EDDSA25519-SHA512/wei25519 903",
20772 	.ec_str_p = &wei25519_str_params,
20773 	.priv_key = ed25519_903_test_vectors_priv_key,
20774 	.priv_key_len = sizeof(ed25519_903_test_vectors_priv_key),
20775 	.nn_random = NULL,
20776 	.hash_type = SHA512,
20777 	.msg = (const char *)ed25519_903_test_vectors_message,
20778 	.msglen = sizeof(ed25519_903_test_vectors_message),
20779 	.sig_type = EDDSA25519,
20780 	.exp_sig = ed25519_903_test_vectors_expected_sig,
20781 	.exp_siglen = sizeof(ed25519_903_test_vectors_expected_sig),
20782 	.adata = NULL,
20783 	.adata_len = 0
20784 };
20785 
20786 /************************************************/
20787 static const u8 ed25519_904_test_vectors_priv_key[] = {
20788 	0x70, 0x48, 0xc6, 0x52, 0x1a, 0xef, 0xaf, 0xa4, 0xea, 0xc6, 0xd6, 0xc3, 0xa7, 0x02, 0xb9, 0x52, 0x54, 0x80, 0xa6, 0x64, 0x82, 0xe4, 0x96, 0x98, 0x96, 0x75, 0x7f, 0x2c, 0xd1, 0xac, 0x7d, 0x5b, };
20789 static const u8 ed25519_904_test_vectors_message[] = {
20790 	0x53, 0xf7, 0x4c, 0x72, 0x4d, 0xb1, 0x57, 0x8a, 0x1a, 0x29, 0x6a, 0x7c, 0xca, 0xc9, 0x04, 0xa2, 0x50, 0x4d, 0xd9, 0x00, 0x53, 0x89, 0xb4, 0xf8, 0xd4, 0xea, 0x4b, 0x63, 0x07, 0x29, 0x8f, 0xc6, 0xdc, 0xce, 0x98, 0xa6, 0xbc, 0x07, 0x28, 0x0d, 0x20, 0x36, 0x4e, 0x40, 0x5a, 0x46, 0x7e, 0x73, 0x65, 0x78, 0x96, 0x52, 0x69, 0xc8, 0x14, 0x61, 0xd6, 0x1f, 0xc6, 0xb7, 0xe4, 0xba, 0xd6, 0x8d, 0x2b, 0x6d, 0xd0, 0x00, 0x58, 0x50, 0x10, 0x5f, 0x0a, 0x67, 0xbb, 0xc6, 0xee, 0x22, 0x3e, 0xc1, 0x75, 0x4a, 0xf4, 0xe3, 0xb9, 0xaf, 0xa5, 0x06, 0x2d, 0x1c, 0x18, 0x61, 0x04, 0x8f, 0x18, 0x5b, 0x12, 0x8f, 0x1a, 0x5c, 0x0f, 0xb2, 0x5c, 0x39, 0x19, 0xb4, 0x83, 0x3e, 0x29, 0xe2, 0x02, 0xbc, 0x94, 0x1a, 0x90, 0x5e, 0x63, 0xc2, 0xc0, 0x5b, 0x10, 0x14, 0x64, 0x7b, 0xd7, 0xed, 0xe5, 0xbe, 0x9f, 0x99, 0x66, 0x15, 0x18, 0x7a, 0x3d, 0x3b, 0xb2, 0xc7, 0xdc, 0x4c, 0x28, 0xf7, 0x05, 0x3d, 0xef, 0x9b, 0x28, 0xb2, 0x9e, 0x23, 0x31, 0xf1, 0x62, 0x96, 0xdc, 0xe8, 0xf1, 0xed, 0xe4, 0x84, 0xca, 0xec, 0x99, 0x67, 0x02, 0xbd, 0x99, 0x02, 0xe5, 0x26, 0x84, 0xc8, 0x12, 0xc8, 0x74, 0x40, 0xf6, 0x9b, 0xd1, 0x41, 0xc7, 0xe0, 0x0c, 0x69, 0x47, 0xd1, 0xfc, 0x7c, 0x3b, 0xdc, 0x0b, 0xc5, 0x50, 0x6b, 0x6e, 0xa4, 0x62, 0xe6, 0x5f, 0x9e, 0x74, 0x3b, 0x72, 0xc0, 0x07, 0xdd, 0xc7, 0xa3, 0x77, 0x49, 0x37, 0x77, 0xd4, 0xeb, 0x12, 0x62, 0x0c, 0xa6, 0xc0, 0x19, 0xc8, 0xbf, 0xc4, 0xc2, 0x9e, 0xc8, 0xaf, 0x38, 0x2f, 0xc3, 0xea, 0xc8, 0x41, 0x02, 0x1a, 0x74, 0xe4, 0x67, 0x4b, 0xa3, 0xe4, 0x3e, 0x5d, 0x7b, 0x41, 0xe3, 0xfe, 0xeb, 0x17, 0xda, 0x00, 0xa7, 0xce, 0x45, 0x5a, 0x1c, 0xec, 0x70, 0xb0, 0xbe, 0x6e, 0x56, 0xf8, 0x5f, 0xc3, 0x7f, 0x64, 0xcf, 0x07, 0x33, 0xb7, 0xe3, 0x12, 0x41, 0xde, 0x64, 0x1a, 0x8a, 0x8e, 0x5b, 0x91, 0x89, 0x7b, 0xc1, 0x58, 0xfe, 0x93, 0xd1, 0x02, 0xc0, 0x1d, 0x1f, 0x5e, 0x16, 0x6d, 0x40, 0x81, 0x65, 0xfe, 0x3f, 0xcb, 0x13, 0xd5, 0x30, 0x45, 0x90, 0xab, 0x8e, 0xf0, 0xdc, 0x8d, 0x5a, 0x8c, 0x1d, 0x8a, 0x93, 0xfc, 0xeb, 0x85, 0x4f, 0xc1, 0xfa, 0x36, 0xd0, 0xcc, 0x48, 0x0c, 0xf8, 0x51, 0x2d, 0x80, 0xbe, 0xe6, 0x9b, 0x06, 0x50, 0xa9, 0x57, 0xda, 0xed, 0x28, 0x3c, 0xd7, 0x63, 0x81, 0x55, 0xed, 0x77, 0x30, 0x86, 0xe8, 0x6a, 0x8f, 0xfb, 0x19, 0x8a, 0xcc, 0x74, 0x23, 0xb5, 0xd1, 0xa6, 0x09, 0xa1, 0x75, 0xa5, 0x6b, 0x94, 0xc9, 0x6b, 0x73, 0x18, 0x51, 0xb9, 0x3a, 0x94, 0x97, 0x71, 0x01, 0xe2, 0x55, 0xf1, 0xce, 0x92, 0xe2, 0x32, 0xa0, 0x5e, 0x2e, 0x33, 0x87, 0xfc, 0xb4, 0xdc, 0x13, 0xa3, 0x1b, 0xee, 0x6e, 0xe2, 0x55, 0x07, 0x32, 0x2c, 0x73, 0xc9, 0x88, 0x30, 0x80, 0xa7, 0x4c, 0x00, 0xf8, 0x03, 0xa9, 0x98, 0xdd, 0x53, 0x0a, 0x79, 0x12, 0x6b, 0xb1, 0x44, 0xed, 0x55, 0x74, 0xc4, 0xb2, 0x31, 0x80, 0xe3, 0x4e, 0x09, 0x92, 0x83, 0xb4, 0xbb, 0x1d, 0x28, 0x82, 0x2f, 0xce, 0x37, 0x17, 0x04, 0x6f, 0xf3, 0x2e, 0xf9, 0xe2, 0xcd, 0xf9, 0x67, 0xe3, 0x18, 0xea, 0x72, 0x6a, 0x2a, 0xee, 0xc5, 0x78, 0x06, 0x64, 0x3a, 0xd4, 0x80, 0x1d, 0x3e, 0x0d, 0xa5, 0x2a, 0x1d, 0x77, 0xbf, 0x04, 0x3f, 0x5a, 0xe9, 0xf3, 0xae, 0xa9, 0xe4, 0xbc, 0x4f, 0xa7, 0x95, 0xd0, 0x84, 0x01, 0x08, 0x5c, 0xa9, 0x4c, 0xfc, 0x4c, 0xe7, 0x19, 0xda, 0xbc, 0x7b, 0x23, 0x90, 0xd0, 0x3d, 0x29, 0x4a, 0x65, 0xb7, 0xaf, 0x9b, 0xc3, 0x90, 0x72, 0x28, 0x5b, 0x77, 0x7b, 0x2f, 0x13, 0x3d, 0xc1, 0x1a, 0x70, 0xc0, 0xa9, 0xf0, 0x60, 0xe1, 0x04, 0x41, 0xf4, 0x02, 0x16, 0xac, 0xb6, 0x41, 0x63, 0x7a, 0x2e, 0xad, 0xf1, 0xf7, 0xb8, 0xd2, 0x62, 0xfe, 0xc1, 0xb4, 0xd0, 0xf0, 0xf4, 0xfa, 0xa9, 0x3f, 0x3f, 0x73, 0x2c, 0xac, 0x38, 0x2d, 0x8a, 0xc4, 0x2e, 0x17, 0x8e, 0x22, 0x44, 0x99, 0x9d, 0x76, 0x4a, 0x9d, 0x0e, 0x98, 0x17, 0x14, 0x68, 0x6e, 0xb4, 0x92, 0x44, 0x97, 0xe5, 0x6b, 0x50, 0x15, 0x7e, 0x99, 0x39, 0x03, 0x2c, 0x9f, 0x88, 0xeb, 0x65, 0x7c, 0xfd, 0xe4, 0x4a, 0xd3, 0x47, 0x14, 0xaf, 0x4a, 0x51, 0x32, 0x4e, 0x5e, 0x77, 0xd0, 0xde, 0xea, 0x99, 0xc9, 0xf2, 0x44, 0xd2, 0xe0, 0x9e, 0xa4, 0x25, 0x82, 0x0a, 0x74, 0x6d, 0x88, 0x3a, 0x0c, 0xf4, 0xb7, 0x05, 0xc2, 0x9d, 0xf8, 0xc0, 0x37, 0x44, 0x81, 0x54, 0xdc, 0x08, 0xa4, 0xd4, 0x33, 0x74, 0x05, 0xfb, 0x87, 0x65, 0x82, 0x31, 0x14, 0x37, 0x0b, 0x37, 0xed, 0x86, 0x08, 0x6e, 0xc5, 0xf8, 0xbd, 0x6c, 0x72, 0xab, 0xf1, 0x3f, 0x51, 0x84, 0x30, 0x71, 0x0f, 0x59, 0x7b, 0x06, 0x10, 0x8f, 0x65, 0xb3, 0x0a, 0x48, 0x34, 0x96, 0xe2, 0xed, 0x81, 0xda, 0xb1, 0x0f, 0xee, 0x94, 0x7f, 0xe0, 0x4b, 0x54, 0x85, 0xf2, 0xe3, 0x07, 0x40, 0x49, 0xd2, 0x22, 0x84, 0x26, 0x66, 0x51, 0xad, 0x10, 0xdd, 0x08, 0x6a, 0xaa, 0x5d, 0x45, 0x2e, 0x0d, 0x1a, 0x61, 0x12, 0x9d, 0x1e, 0x77, 0xc6, 0x63, 0xc2, 0x6d, 0x08, 0x89, 0x62, 0xb5, 0x54, 0x56, 0x45, 0xb7, 0xa1, 0xa8, 0x71, 0x3d, 0x51, 0x32, 0x7a, 0x7a, 0x35, 0x9b, 0x12, 0xda, 0xad, 0xb8, 0x5a, 0x2c, 0xd4, 0xb5, 0x41, 0x0d, 0x5c, 0x20, 0x26, 0x7f, 0xa7, 0x66, 0xb8, 0xc4, 0x2a, 0x84, 0xdc, 0x42, 0x66, 0x45, 0x88, 0x87, 0x9b, 0x3e, 0xae, 0xfd, 0x4c, 0xc8, 0xdc, 0x69, 0x3f, 0x98, 0xac, 0x20, 0x56, 0x09, 0xe5, 0x70, 0x66, 0x5b, 0x01, 0xea, 0x46, 0x55, 0xe3, 0x94, 0x29, 0xa7, 0xa7, 0xe5, 0x42, 0xef, 0xb4, 0xf7, 0x89, 0x0d, 0xbf, 0x4e, 0x34, 0xc6, 0xcf, 0xf0, 0x7e, 0x4d, 0x35, 0xbd, 0x3e, 0xee, 0xdf, 0x5b, 0x46, 0x28, 0x0f, 0x4a, 0x0d, 0xa0, 0xc2, 0xe7, 0x3c, 0x94, 0xea, 0x81, 0xcf, 0xea, 0xe7, 0xf9, 0xbd, 0x04, 0xfe, 0x2d, 0x45, 0x97, 0x65, 0x00, 0xf7, 0xdc, 0xac, 0xb0, 0xdf, 0x2a, 0x5d, 0xc7, 0x36, 0xa8, 0x23, 0x67, 0x1d, 0xb6, 0x79, 0xbe, 0x66, 0xcb, 0x33, 0xc1, 0x62, 0xfd, 0x2c, 0x74, 0xae, 0x71, 0xfb, 0xf4, 0xd2, 0xb0, 0x5a, 0xf0, 0x42, 0xb3, 0xa9, 0x77, 0xf5, 0xb9, 0x44, 0xb9, 0xfd, 0xb6, 0xc3, 0x44, 0x24, 0x42, 0x1b, 0xcf, 0x4f, 0x62, 0x23, 0x76, 0x84, 0x28, 0xfa, 0x14, 0x0f, 0xd4, };
20791 static const u8 ed25519_904_test_vectors_expected_sig[] = {
20792 	0x7c, 0x45, 0x70, 0x3e, 0xd3, 0x94, 0x2e, 0x44, 0x04, 0x1c, 0x7f, 0xa1, 0x85, 0x8a, 0xa5, 0xf1, 0xdc, 0x38, 0x1f, 0x49, 0x3a, 0x45, 0x2d, 0xfb, 0x52, 0x70, 0x80, 0x17, 0x89, 0x8f, 0x71, 0x0e, 0x31, 0x11, 0x8e, 0x33, 0x1f, 0x00, 0xaa, 0x64, 0xcb, 0x73, 0x88, 0x36, 0x68, 0x2b, 0x7d, 0x17, 0x7e, 0x97, 0x95, 0x5c, 0x00, 0x31, 0x9a, 0xbd, 0x79, 0xa4, 0x9e, 0x0f, 0xcd, 0x16, 0xfe, 0x00, };
20793 static const ec_test_case ed25519_904_test_case = {
20794 	.name = "EDDSA25519-SHA512/wei25519 904",
20795 	.ec_str_p = &wei25519_str_params,
20796 	.priv_key = ed25519_904_test_vectors_priv_key,
20797 	.priv_key_len = sizeof(ed25519_904_test_vectors_priv_key),
20798 	.nn_random = NULL,
20799 	.hash_type = SHA512,
20800 	.msg = (const char *)ed25519_904_test_vectors_message,
20801 	.msglen = sizeof(ed25519_904_test_vectors_message),
20802 	.sig_type = EDDSA25519,
20803 	.exp_sig = ed25519_904_test_vectors_expected_sig,
20804 	.exp_siglen = sizeof(ed25519_904_test_vectors_expected_sig),
20805 	.adata = NULL,
20806 	.adata_len = 0
20807 };
20808 
20809 /************************************************/
20810 static const u8 ed25519_905_test_vectors_priv_key[] = {
20811 	0x3e, 0x63, 0x73, 0xb2, 0x65, 0xb9, 0x67, 0x89, 0x00, 0x7a, 0xd2, 0xa1, 0x0c, 0x30, 0x9a, 0x56, 0x76, 0x38, 0xf2, 0x55, 0x87, 0xd7, 0x7e, 0x28, 0xb0, 0x82, 0x3a, 0x4f, 0x17, 0x9a, 0xe4, 0xfe, };
20812 static const u8 ed25519_905_test_vectors_message[] = {
20813 	0xb9, 0xd0, 0x68, 0xbb, 0xca, 0xe7, 0x72, 0x2f, 0x82, 0x8b, 0x0f, 0x8c, 0x98, 0xa7, 0x38, 0xe3, 0x6a, 0x7d, 0xf4, 0xc9, 0x97, 0xc7, 0x24, 0xba, 0x27, 0x53, 0x1a, 0xf3, 0x4a, 0x2f, 0x10, 0x6c, 0x75, 0x13, 0xa4, 0x4a, 0x46, 0x1a, 0x9a, 0xa4, 0x30, 0x9b, 0xc1, 0x5c, 0x4e, 0x0d, 0x42, 0x75, 0x91, 0x93, 0xea, 0x1c, 0xde, 0xa9, 0x56, 0xbb, 0x81, 0x59, 0x85, 0xf5, 0x78, 0x67, 0x14, 0x5e, 0x9e, 0x2c, 0x75, 0x85, 0xfc, 0x8d, 0x61, 0x02, 0x7e, 0x47, 0xd2, 0xd7, 0x35, 0xe2, 0x44, 0x8a, 0xf3, 0x78, 0x29, 0x09, 0x40, 0x4e, 0xde, 0xaa, 0xc0, 0xfd, 0x73, 0xf6, 0x04, 0x5d, 0xcd, 0xb0, 0x4f, 0x03, 0x77, 0x75, 0x8f, 0x02, 0x20, 0x4a, 0xae, 0x3a, 0x72, 0x20, 0x31, 0x1c, 0x0f, 0x47, 0x23, 0x58, 0x27, 0x10, 0xcc, 0x44, 0x0c, 0x36, 0xc9, 0x58, 0x7b, 0x5c, 0x9e, 0xbc, 0x40, 0x63, 0xfe, 0xa8, 0xca, 0x3f, 0x43, 0x19, 0x58, 0x94, 0xf7, 0x9a, 0x36, 0x50, 0x87, 0x13, 0x72, 0x82, 0x30, 0x2d, 0xbf, 0x2e, 0x7a, 0x0d, 0x41, 0x1a, 0xb5, 0x8b, 0x70, 0x26, 0xcc, 0xde, 0x19, 0x88, 0x69, 0xaa, 0x73, 0x43, 0x34, 0xc0, 0x52, 0x38, 0xe2, 0x75, 0xe3, 0xc3, 0xab, 0x21, 0x70, 0x83, 0x49, 0x57, 0x69, 0xe2, 0xfa, 0xd3, 0x74, 0x05, 0x14, 0x52, 0xd7, 0xf5, 0xb1, 0xdb, 0x0e, 0x78, 0x58, 0x36, 0xd4, 0xbd, 0x5e, 0x29, 0x78, 0xa3, 0xe9, 0x91, 0xaf, 0x0f, 0xf7, 0x16, 0xf4, 0x38, 0x89, 0xa0, 0x7f, 0x5d, 0xf2, 0x99, 0x60, 0x36, 0x21, 0xc3, 0x9e, 0x2c, 0xde, 0xe0, 0x89, 0x98, 0x5d, 0x9e, 0x6b, 0xf7, 0xb2, 0xfb, 0xd0, 0x23, 0x73, 0xae, 0x1b, 0x5e, 0x9b, 0x88, 0xf5, 0xb5, 0x4a, 0x07, 0x6e, 0x67, 0x6d, 0x77, 0x90, 0xbf, 0xc8, 0xf5, 0x7d, 0xcc, 0x59, 0xef, 0x52, 0x85, 0x0c, 0xe9, 0x92, 0xa7, 0x3b, 0xa7, 0xbc, 0x99, 0x1d, 0xeb, 0x4d, 0xde, 0x5e, 0xb0, 0xb2, 0x16, 0x70, 0xb1, 0xb3, 0xd4, 0xb6, 0x4f, 0x36, 0xcc, 0xa8, 0xe3, 0x07, 0x09, 0x85, 0x68, 0x49, 0x7d, 0x89, 0x16, 0xf6, 0xb5, 0xd0, 0xe9, 0xe8, 0x9f, 0x99, 0xf8, 0x60, 0x06, 0xf3, 0x9b, 0xd3, 0xa8, 0x10, 0x76, 0x9c, 0x8f, 0x78, 0x01, 0x77, 0x3c, 0x96, 0x38, 0xab, 0xcf, 0x5e, 0x27, 0x11, 0xb1, 0x9d, 0x11, 0x67, 0x59, 0x3a, 0xcb, 0xe8, 0x5e, 0x41, 0x61, 0x42, 0x89, 0x97, 0xa2, 0x19, 0x4d, 0xc5, 0xe7, 0xb7, 0x64, 0x0f, 0x0d, 0x2c, 0x1e, 0xb2, 0x05, 0x55, 0x3b, 0xe9, 0x16, 0x7f, 0xfb, 0xc2, 0x2b, 0x7c, 0x2e, 0x76, 0x98, 0xf3, 0xaf, 0xa1, 0x07, 0x54, 0xcb, 0x44, 0xd4, 0xb1, 0xd4, 0x5b, 0x83, 0x73, 0x03, 0xb1, 0x66, 0x90, 0x73, 0x41, 0x5a, 0x22, 0x60, 0x6b, 0x50, 0xf2, 0x1f, 0x82, 0x65, 0xe1, 0x39, 0xf2, 0x30, 0x5a, 0xc0, 0xe0, 0x12, 0x7a, 0xe0, 0x56, 0xce, 0x8a, 0xbe, 0xab, 0xa2, 0x0e, 0x1d, 0x26, 0x9a, 0x2b, 0x2e, 0x89, 0x9c, 0x49, 0x54, 0x72, 0x68, 0xa0, 0x69, 0x6a, 0xe4, 0x50, 0xdc, 0x02, 0x67, 0xf7, 0xf6, 0x3a, 0x8e, 0xdf, 0x07, 0x4c, 0x47, 0xd3, 0xc2, 0xdb, 0x1d, 0xa3, 0x63, 0x93, 0x73, 0x73, 0x04, 0xe6, 0xdd, 0x4f, 0xac, 0xcd, 0xb6, 0xab, 0x55, 0xe5, 0xf8, 0x52, 0x0c, 0x3d, 0xff, 0x5f, 0x6b, 0xea, 0xc3, 0x0b, 0xa8, 0x5b, 0x86, 0x08, 0x23, 0x51, 0xe3, 0xde, 0xd8, 0x40, 0x0a, 0xa5, 0x7f, 0x65, 0x0c, 0x0c, 0x33, 0x03, 0x6d, 0x65, 0xb3, 0x9b, 0x7d, 0x2f, 0xb6, 0x11, 0x28, 0x63, 0xd5, 0x9b, 0x72, 0x55, 0x82, 0x42, 0xe8, 0xb0, 0x45, 0xad, 0xdd, 0x35, 0x7d, 0xe6, 0xfd, 0x37, 0xa8, 0xf6, 0x61, 0x17, 0x65, 0xc9, 0xb5, 0xff, 0x19, 0xcc, 0x4d, 0xb7, 0xe1, 0x17, 0xc6, 0x5a, 0x00, 0x45, 0x89, 0x08, 0xb0, 0x24, 0x5d, 0x04, 0xf7, 0x90, 0x8f, 0xc7, 0x3b, 0x16, 0x5d, 0xff, 0x6e, 0x4b, 0xe4, 0xb4, 0x20, 0x32, 0xd8, 0xcf, 0xd7, 0xd6, 0xf7, 0x77, 0x2c, 0x1b, 0xfe, 0x72, 0x1d, 0x4b, 0xcf, 0xe2, 0xfc, 0x52, 0x79, 0x98, 0xf3, 0x4f, 0xb4, 0x41, 0x8a, 0x1f, 0xae, 0x1e, 0x6c, 0x37, 0x67, 0xc4, 0xd0, 0x78, 0x06, 0x21, 0xf9, 0x23, 0xda, 0x1f, 0x0a, 0x0d, 0x3d, 0x21, 0x9c, 0x03, 0x6a, 0xcf, 0xd3, 0x70, 0x9d, 0xad, 0x4c, 0xf2, 0x4d, 0x90, 0xbc, 0x69, 0x1d, 0x70, 0x0e, 0x6a, 0x9c, 0x80, 0xcc, 0xfd, 0x10, 0xbd, 0xe8, 0xe7, 0x91, 0xc0, 0xfe, 0xa8, 0x28, 0x80, 0xc0, 0x7b, 0xaa, 0xaa, 0x31, 0x1e, 0xef, 0x79, 0x24, 0x07, 0x84, 0xf6, 0x28, 0xa7, 0xd2, 0xa0, 0x91, 0x84, 0xe0, 0x16, 0xf8, 0x10, 0x08, 0xe7, 0x74, 0x29, 0xa8, 0x65, 0x8b, 0x15, 0x3e, 0x44, 0xe7, 0x9a, 0x98, 0xad, 0x24, 0x8f, 0x7f, 0xda, 0x23, 0xb5, 0x90, 0xd6, 0x46, 0xd7, 0xc1, 0xd8, 0x41, 0xf4, 0x92, 0x7d, 0x6e, 0x8b, 0xc7, 0x32, 0x14, 0xd1, 0x0a, 0x7f, 0x3c, 0x29, 0xc8, 0xf8, 0x39, 0xa8, 0x90, 0x8d, 0x20, 0xa7, 0x4e, 0x82, 0x7a, 0xf4, 0x67, 0xac, 0x5a, 0xbf, 0x0f, 0x1d, 0x0e, 0xd3, 0x9c, 0xdd, 0xd9, 0x69, 0xdd, 0xe9, 0xee, 0xb4, 0xa4, 0xb7, 0x52, 0x7a, 0xb3, 0xe2, 0x47, 0x5a, 0x19, 0x5e, 0x24, 0x47, 0x4a, 0x4e, 0x36, 0xb0, 0x90, 0x52, 0xe2, 0xda, 0xd4, 0xa5, 0xeb, 0x46, 0x91, 0xe2, 0x63, 0xb8, 0xc6, 0x1b, 0xbd, 0xe8, 0x77, 0x72, 0x20, 0x7e, 0x01, 0x1c, 0x4c, 0x1e, 0x14, 0x23, 0x5f, 0xb2, 0x4e, 0x4d, 0xa4, 0x38, 0x87, 0x5d, 0x18, 0x53, 0x0f, 0xef, 0x90, 0x26, 0x19, 0xdd, 0x48, 0x5d, 0x77, 0xb5, 0x45, 0xab, 0xb5, 0x6b, 0x69, 0xc7, 0x55, 0xaf, 0xe7, 0x58, 0x60, 0x69, 0x71, 0xab, 0x97, 0xdd, 0x3a, 0xce, 0x1c, 0x1a, 0x34, 0xa3, 0x37, 0x94, 0xc8, 0x15, 0x6d, 0xa7, 0x99, 0xe8, 0x22, 0x4d, 0x88, 0x5e, 0x18, 0x68, 0xf9, 0xcb, 0x46, 0x6d, 0x80, 0x2c, 0x82, 0x7c, 0xc3, 0xe1, 0xec, 0xd0, 0xae, 0x6e, 0x0b, 0x01, 0xf8, 0xf7, 0x91, 0xb1, 0x22, 0x08, 0xfc, 0xc0, 0xfe, 0xd3, 0x85, 0xb7, 0x96, 0xeb, 0x2f, 0x29, 0x08, 0xb5, 0x8d, 0x30, 0xb3, 0x73, 0x3f, 0x14, 0x70, 0xf2, 0xe2, 0xef, 0x12, 0xad, 0x43, 0xfe, 0xb7, 0x2d, 0x08, 0x16, 0xde, 0x3c, 0x13, 0xa8, 0xb5, 0xa5, 0x23, 0xe1, 0x4c, 0xdf, 0x5f, 0xf3, 0x72, 0x0b, 0xf8, 0x77, 0x69, 0xcd, 0xe7, 0x49, 0x5d, 0x22, 0x6b, 0xf3, 0x82, 0x38, 0xa8, 0x25, 0xf7, 0x5a, 0x09, 0xf6, 0xbb, 0x9a, 0xfc, 0xe5, 0x16, 0xa7, 0xbc, 0x70, 0x11, 0x43, 0x70, 0xbb, 0xc4, 0x0f, 0x17, 0xc7, 0xbc, };
20814 static const u8 ed25519_905_test_vectors_expected_sig[] = {
20815 	0xf5, 0x1e, 0x0f, 0x87, 0x8a, 0x5a, 0x70, 0x96, 0x47, 0xe8, 0x5f, 0xea, 0x83, 0x9f, 0xd5, 0x66, 0xe6, 0xf3, 0x5c, 0x8a, 0x61, 0x85, 0xd0, 0xc9, 0xeb, 0x13, 0xe0, 0xd5, 0xb9, 0xe6, 0xe8, 0xaa, 0x95, 0xc3, 0x33, 0xa8, 0xf5, 0x06, 0x32, 0xa4, 0xd6, 0x65, 0x7b, 0x51, 0x8c, 0xe4, 0xcf, 0xde, 0x40, 0xb8, 0xf5, 0xa0, 0x5b, 0x2d, 0x9f, 0x84, 0x41, 0xfc, 0xc9, 0xd2, 0xd6, 0x92, 0xd5, 0x09, };
20816 static const ec_test_case ed25519_905_test_case = {
20817 	.name = "EDDSA25519-SHA512/wei25519 905",
20818 	.ec_str_p = &wei25519_str_params,
20819 	.priv_key = ed25519_905_test_vectors_priv_key,
20820 	.priv_key_len = sizeof(ed25519_905_test_vectors_priv_key),
20821 	.nn_random = NULL,
20822 	.hash_type = SHA512,
20823 	.msg = (const char *)ed25519_905_test_vectors_message,
20824 	.msglen = sizeof(ed25519_905_test_vectors_message),
20825 	.sig_type = EDDSA25519,
20826 	.exp_sig = ed25519_905_test_vectors_expected_sig,
20827 	.exp_siglen = sizeof(ed25519_905_test_vectors_expected_sig),
20828 	.adata = NULL,
20829 	.adata_len = 0
20830 };
20831 
20832 /************************************************/
20833 static const u8 ed25519_906_test_vectors_priv_key[] = {
20834 	0xf5, 0xe8, 0x59, 0x7e, 0xac, 0x0e, 0xbf, 0xa9, 0xd3, 0x85, 0xde, 0x85, 0xa1, 0xfb, 0xaa, 0x35, 0x14, 0x63, 0x95, 0xb1, 0x34, 0x57, 0xb5, 0xb1, 0x4d, 0x36, 0x70, 0xda, 0xca, 0x69, 0x05, 0xe7, };
20835 static const u8 ed25519_906_test_vectors_message[] = {
20836 	0x27, 0x33, 0x41, 0xf2, 0x19, 0xff, 0x5c, 0xf3, 0x81, 0xc7, 0x7b, 0x2d, 0xd2, 0x26, 0xc5, 0x8f, 0x8f, 0x33, 0xc4, 0x52, 0x70, 0x48, 0xcb, 0x00, 0x6a, 0xff, 0xef, 0x8c, 0xee, 0x15, 0x1e, 0x30, 0x0e, 0xfe, 0xf6, 0x29, 0xfe, 0xd2, 0x1b, 0x70, 0x45, 0x1f, 0x72, 0x92, 0x92, 0x62, 0x7d, 0x1f, 0x3f, 0x1b, 0x52, 0x57, 0x35, 0x9e, 0xe5, 0xa6, 0x71, 0xcf, 0x62, 0xae, 0x57, 0x32, 0x49, 0x40, 0xf2, 0xd0, 0xb1, 0x5a, 0xac, 0x76, 0xff, 0x39, 0x82, 0x20, 0xc0, 0x80, 0x24, 0xe2, 0x9a, 0x8c, 0xf3, 0x65, 0x04, 0xe1, 0x2a, 0x4e, 0x96, 0x43, 0x8f, 0x42, 0xc3, 0xda, 0x0c, 0x00, 0x05, 0x41, 0xbc, 0x11, 0xf0, 0x91, 0x38, 0x1b, 0x0b, 0x72, 0xb5, 0x8a, 0x92, 0x08, 0x3f, 0x44, 0x6e, 0xca, 0x19, 0x91, 0x99, 0x68, 0x78, 0xde, 0x35, 0x08, 0x1c, 0xc4, 0xab, 0x90, 0x95, 0x8c, 0x96, 0xcf, 0x5c, 0x99, 0x79, 0x6c, 0xba, 0x79, 0x51, 0xee, 0x18, 0x6f, 0x26, 0x52, 0x7a, 0xed, 0xe6, 0x9d, 0xb3, 0x04, 0xce, 0x29, 0x41, 0xba, 0x15, 0xcc, 0x00, 0xba, 0x2f, 0x14, 0x11, 0xf2, 0x08, 0xda, 0xd4, 0x5e, 0x87, 0xbc, 0xf6, 0x38, 0x79, 0x2d, 0xe0, 0xa6, 0x86, 0x24, 0xb6, 0x67, 0x29, 0x7c, 0x27, 0xa3, 0x43, 0xdb, 0x4b, 0xaf, 0x34, 0xa0, 0x22, 0x8e, 0xaf, 0x0d, 0x10, 0x22, 0x00, 0x9b, 0x5d, 0x06, 0x8b, 0x25, 0x34, 0xd9, 0x20, 0x30, 0x2e, 0x71, 0x31, 0x0f, 0xeb, 0xf0, 0xdf, 0x1b, 0xb0, 0x2c, 0x2e, 0xf0, 0xad, 0x1a, 0xe1, 0x49, 0xde, 0xad, 0xf8, 0xc1, 0x84, 0x37, 0x3c, 0x0f, 0x7e, 0xb6, 0xb2, 0x56, 0x95, 0xbe, 0x82, 0xd1, 0x2c, 0x71, 0xb6, 0xc8, 0x32, 0x67, 0xd9, 0xa2, 0x33, 0x66, 0x7e, 0x77, 0xbc, 0x20, 0x59, 0x83, 0xf8, 0xb8, 0xd8, 0x77, 0xd8, 0x5a, 0xea, 0xd3, 0xf6, 0x0e, 0x82, 0x0f, 0xfc, 0xb1, 0x7a, 0xdd, 0xdd, 0x92, 0xa7, 0x71, 0x2b, 0xbe, 0xb3, 0x4e, 0xe7, 0x19, 0x66, 0xda, 0xfd, 0x99, 0x07, 0xd1, 0x93, 0xdd, 0x9d, 0x72, 0x5a, 0x31, 0xa6, 0x13, 0xd2, 0x9e, 0x32, 0xbe, 0x72, 0x13, 0x28, 0x08, 0x92, 0x6d, 0x94, 0x37, 0x47, 0x7f, 0xee, 0x25, 0xed, 0xa6, 0x10, 0xae, 0xb1, 0xdc, 0xe1, 0x2e, 0xa3, 0x16, 0xc6, 0xae, 0xc6, 0x68, 0x9e, 0x50, 0x1c, 0x55, 0x19, 0x23, 0x82, 0x5a, 0x34, 0xb4, 0x2c, 0x4f, 0x06, 0x75, 0xb8, 0x6a, 0xb2, 0x6a, 0xde, 0xea, 0x2e, 0x60, 0xda, 0xe6, 0xc6, 0xd1, 0xcd, 0xd0, 0xcb, 0x3c, 0x34, 0x7b, 0x16, 0x38, 0x40, 0x39, 0xa8, 0xe3, 0xfd, 0x60, 0x87, 0x38, 0x13, 0x87, 0xcb, 0x4b, 0xc7, 0x2d, 0xdb, 0x5f, 0x25, 0xb3, 0x74, 0x85, 0x9b, 0x02, 0xe5, 0xbb, 0x1b, 0xa0, 0x6d, 0x3c, 0xc6, 0x9e, 0xc4, 0x4c, 0xec, 0x4b, 0x98, 0x5c, 0x84, 0x76, 0xe3, 0x50, 0x32, 0xe9, 0x9a, 0xbf, 0x00, 0x1a, 0x1d, 0x44, 0xdd, 0xc6, 0xe2, 0x88, 0x9c, 0x3c, 0x2c, 0x3e, 0xca, 0xce, 0xd6, 0x09, 0xb2, 0xb2, 0x68, 0x0e, 0x00, 0xb1, 0xef, 0xa7, 0xe9, 0xd2, 0x6d, 0x62, 0xf2, 0xb3, 0xab, 0x36, 0xf9, 0x21, 0x04, 0x47, 0x90, 0xab, 0xbd, 0x49, 0x36, 0x07, 0x56, 0xdc, 0xff, 0xcc, 0xf2, 0x30, 0xf6, 0x6d, 0xbb, 0x70, 0x1a, 0xa1, 0x64, 0xda, 0xd6, 0x06, 0x9a, 0xa2, 0xb8, 0xb3, 0x30, 0x9f, 0x2f, 0xe4, 0x4d, 0x5e, 0x0b, 0x25, 0xbd, 0x55, 0x64, 0x31, 0xf0, 0xdf, 0x4c, 0x2e, 0xa9, 0x7a, 0xe7, 0x9e, 0xd4, 0xa5, 0x75, 0x78, 0xd6, 0x6f, 0xc6, 0x93, 0x9c, 0x57, 0x62, 0x8a, 0x90, 0xca, 0xc9, 0x7a, 0xdf, 0xa8, 0x70, 0x2a, 0x4a, 0x1c, 0x89, 0x65, 0xba, 0x1a, 0x90, 0x26, 0x25, 0x67, 0x28, 0x66, 0x64, 0x00, 0x30, 0x03, 0x53, 0x3c, 0xc9, 0x31, 0x4c, 0xaf, 0x7d, 0x3b, 0x98, 0x2e, 0x0a, 0x43, 0x2f, 0xf5, 0xaa, 0x4e, 0xd5, 0x74, 0x19, 0x83, 0xd9, 0xb5, 0x43, 0x23, 0xac, 0x7e, 0x29, 0x9b, 0x2b, 0x49, 0x56, 0xc1, 0xa2, 0xc1, 0x91, 0x55, 0x7b, 0x27, 0xd8, 0x6b, 0xe7, 0x14, 0xb5, 0xb6, 0x8f, 0xcb, 0x1d, 0x41, 0xf7, 0x8c, 0xa5, 0xdd, 0xb6, 0xb5, 0x3b, 0x3d, 0xfc, 0x8e, 0x7d, 0x6b, 0x3c, 0x3d, 0xb0, 0x59, 0xaf, 0x9f, 0x2d, 0xd7, 0x65, 0xef, 0x04, 0xb6, 0xd1, 0x6e, 0x67, 0x37, 0xc7, 0x27, 0xaa, 0x11, 0xf3, 0xdf, 0x37, 0x74, 0xa3, 0xfc, 0x96, 0x18, 0x2e, 0x28, 0x2a, 0xcc, 0x3d, 0x23, 0x3e, 0xea, 0xbf, 0x8c, 0x72, 0xd3, 0xf2, 0x46, 0xae, 0x18, 0x45, 0x05, 0x28, 0x8f, 0xef, 0x39, 0xb3, 0x67, 0x66, 0xb1, 0x0d, 0xd1, 0xbf, 0xbf, 0xbf, 0xa7, 0x0f, 0x97, 0xb3, 0xc9, 0x01, 0x72, 0x6d, 0x1e, 0x0d, 0x0a, 0x83, 0x7d, 0x11, 0xf0, 0x12, 0x3a, 0x34, 0xab, 0xad, 0x1a, 0x79, 0xaa, 0xbe, 0x80, 0xb1, 0x25, 0xb1, 0x28, 0xee, 0x16, 0x0b, 0x51, 0x18, 0x48, 0xf7, 0xf0, 0x4c, 0x49, 0xc8, 0xd5, 0xc2, 0xf2, 0x04, 0x1d, 0xa7, 0xd9, 0x59, 0x9c, 0x29, 0xb1, 0xda, 0xc8, 0xc6, 0x80, 0x77, 0xef, 0xac, 0x3e, 0xca, 0x58, 0xbb, 0xc1, 0x63, 0x7a, 0xad, 0xce, 0x21, 0xc7, 0x74, 0xfe, 0xa4, 0x2d, 0x2b, 0xcf, 0x4a, 0x0b, 0x98, 0x92, 0x30, 0x7e, 0x36, 0xfa, 0x25, 0x0a, 0xce, 0xe7, 0x95, 0xad, 0x2b, 0xfe, 0xcf, 0xbf, 0x60, 0x31, 0x9b, 0x81, 0x66, 0x3e, 0x2a, 0x26, 0x57, 0x19, 0x46, 0xf7, 0x5a, 0x8d, 0x96, 0x9a, 0xf1, 0x6b, 0x3b, 0x57, 0xc3, 0xec, 0x3e, 0x66, 0x15, 0x8a, 0xaf, 0x42, 0xcc, 0xf5, 0xe5, 0x8b, 0x93, 0x7a, 0xae, 0xf6, 0x13, 0x31, 0x86, 0x06, 0x60, 0x33, 0x17, 0xe5, 0xaa, 0x31, 0x8b, 0xe7, 0x0f, 0x8d, 0xa3, 0xc0, 0xc1, 0x6b, 0xe6, 0xc2, 0x9e, 0x3e, 0xc9, 0xfe, 0xf4, 0xe4, 0x6e, 0x8c, 0xa2, 0x41, 0xd9, 0x41, 0xd5, 0x80, 0x49, 0xa0, 0x63, 0xd9, 0x0a, 0xfc, 0x95, 0x3c, 0xa3, 0x2e, 0x8a, 0x50, 0xa6, 0x47, 0x36, 0x32, 0x58, 0x8a, 0xc4, 0x1e, 0xae, 0x97, 0xf2, 0x0c, 0xe9, 0xb7, 0x41, 0xed, 0x41, 0xc9, 0xa4, 0xaa, 0x65, 0x51, 0xfd, 0x82, 0x3c, 0xe0, 0xc8, 0x11, 0xa5, 0xbb, 0x5a, 0x17, 0x1c, 0x1e, 0xa4, 0x23, 0x8a, 0x02, 0x46, 0x81, 0x1e, 0x46, 0x9c, 0xf4, 0x98, 0xb7, 0x96, 0x21, 0xc3, 0x23, 0xeb, 0xa7, 0x98, 0x53, 0x44, 0xfe, 0x11, 0xe6, 0x74, 0x99, 0xed, 0xf4, 0x96, 0x74, 0x91, 0xaa, 0x74, 0x9f, 0x8f, 0x3f, 0xe3, 0x99, 0x61, 0xd7, 0x68, 0x92, 0xc9, 0x3a, 0xac, 0x3b, 0x19, 0xfa, 0x4b, 0x4f, 0xc1, 0x74, 0xd7, 0xd4, 0xd4, 0xd8, 0xbd, 0x6e, 0xe4, 0x75, 0x47, 0x50, 0x08, };
20837 static const u8 ed25519_906_test_vectors_expected_sig[] = {
20838 	0x57, 0x65, 0x43, 0xfc, 0x21, 0xab, 0x0a, 0x7c, 0x5f, 0x63, 0xb1, 0xcf, 0xf0, 0x1b, 0xf8, 0x45, 0xdf, 0x91, 0x79, 0x2e, 0x7a, 0x97, 0x50, 0xc5, 0x50, 0x8b, 0x51, 0x66, 0x5e, 0x7f, 0x89, 0xf1, 0x7c, 0x6e, 0xc3, 0x35, 0x5a, 0x0a, 0xed, 0x87, 0xdb, 0x8c, 0x77, 0xbd, 0xb2, 0x71, 0xfb, 0xed, 0xc7, 0x14, 0xff, 0xad, 0xb7, 0x8b, 0x5e, 0x0f, 0x97, 0x81, 0x16, 0x77, 0x1b, 0xa7, 0xcf, 0x0b, };
20839 static const ec_test_case ed25519_906_test_case = {
20840 	.name = "EDDSA25519-SHA512/wei25519 906",
20841 	.ec_str_p = &wei25519_str_params,
20842 	.priv_key = ed25519_906_test_vectors_priv_key,
20843 	.priv_key_len = sizeof(ed25519_906_test_vectors_priv_key),
20844 	.nn_random = NULL,
20845 	.hash_type = SHA512,
20846 	.msg = (const char *)ed25519_906_test_vectors_message,
20847 	.msglen = sizeof(ed25519_906_test_vectors_message),
20848 	.sig_type = EDDSA25519,
20849 	.exp_sig = ed25519_906_test_vectors_expected_sig,
20850 	.exp_siglen = sizeof(ed25519_906_test_vectors_expected_sig),
20851 	.adata = NULL,
20852 	.adata_len = 0
20853 };
20854 
20855 /************************************************/
20856 static const u8 ed25519_907_test_vectors_priv_key[] = {
20857 	0xcd, 0xad, 0xc5, 0xb8, 0x9c, 0xb2, 0xb6, 0x30, 0x8a, 0x00, 0x6f, 0x2f, 0x4e, 0x95, 0x5a, 0x91, 0xaa, 0xf3, 0xba, 0x70, 0x16, 0x5f, 0x2d, 0x44, 0x4e, 0xf1, 0xff, 0xeb, 0xbd, 0xaa, 0xa2, 0x21, };
20858 static const u8 ed25519_907_test_vectors_message[] = {
20859 	0x91, 0x17, 0x27, 0x03, 0x6d, 0xb3, 0x09, 0xd6, 0xe2, 0xe3, 0x36, 0x9e, 0x4f, 0x17, 0xd9, 0x8d, 0x99, 0xec, 0x07, 0x0c, 0x33, 0x28, 0x3b, 0xb1, 0x24, 0x4e, 0xfd, 0x62, 0xe7, 0x6b, 0xd7, 0x0a, 0x69, 0xb9, 0x72, 0x3b, 0xd2, 0xb5, 0x20, 0x47, 0x2b, 0x98, 0xaa, 0x06, 0x59, 0x24, 0x36, 0x6d, 0xe7, 0x80, 0x90, 0x0b, 0xcd, 0x8b, 0x77, 0xb5, 0x0f, 0x87, 0xc3, 0xc3, 0x61, 0x87, 0x02, 0x4b, 0xbc, 0x59, 0xcc, 0xf4, 0x48, 0x2c, 0x7b, 0x4a, 0xad, 0xb5, 0x6e, 0x2e, 0x5e, 0xcc, 0x00, 0x03, 0xd9, 0x89, 0xd6, 0xaf, 0xc6, 0x3e, 0xc1, 0x02, 0x42, 0xe5, 0x74, 0x82, 0xfe, 0x39, 0x21, 0x52, 0x61, 0xd5, 0xfc, 0x95, 0xa0, 0x18, 0x5f, 0x95, 0xe9, 0x54, 0x0c, 0x55, 0xf7, 0x4d, 0x69, 0x60, 0x48, 0xbc, 0xa7, 0xab, 0x11, 0x26, 0x81, 0xa5, 0x55, 0x8e, 0xa9, 0x3c, 0x3b, 0x1f, 0x1c, 0xd3, 0x64, 0x65, 0x9e, 0x94, 0x33, 0xce, 0xee, 0xbe, 0x05, 0x4e, 0xe7, 0x13, 0xc4, 0x77, 0x60, 0xd7, 0xad, 0x13, 0x2a, 0x7f, 0x3f, 0x8f, 0xe3, 0xd5, 0x04, 0x1b, 0x81, 0x1a, 0x26, 0xb6, 0x5e, 0xfb, 0x1f, 0x34, 0x0e, 0x18, 0x1a, 0x4e, 0xc7, 0x20, 0xea, 0x13, 0x6b, 0x3a, 0xf3, 0xd9, 0xe5, 0x46, 0x1d, 0xd2, 0x43, 0x70, 0x33, 0x6f, 0x10, 0xe6, 0x35, 0x4c, 0x8c, 0x17, 0xac, 0xf9, 0x99, 0x85, 0x44, 0xce, 0xc0, 0x87, 0x3e, 0xfa, 0x68, 0x7c, 0xb1, 0x32, 0xae, 0xcf, 0x70, 0xae, 0xbb, 0xc5, 0x67, 0xba, 0x03, 0xc5, 0x36, 0x49, 0x9e, 0xf9, 0x6c, 0xc8, 0x41, 0x2e, 0x7a, 0xaa, 0xd5, 0xbf, 0x96, 0x42, 0x2b, 0xe4, 0x7c, 0xb9, 0x41, 0x36, 0x45, 0xdf, 0x2c, 0x17, 0x03, 0x19, 0x23, 0x47, 0xdc, 0xbb, 0x12, 0x31, 0x27, 0x45, 0x59, 0x71, 0xae, 0x15, 0x7e, 0x9f, 0xa2, 0xdb, 0xff, 0x88, 0x74, 0x5a, 0x96, 0xc6, 0x58, 0xb8, 0x65, 0xe4, 0x1f, 0x55, 0xae, 0xbf, 0x98, 0x39, 0x50, 0x05, 0xdd, 0xcb, 0xd5, 0x98, 0x3e, 0x6a, 0xe0, 0x2c, 0x4f, 0xbb, 0x5e, 0x17, 0x91, 0x67, 0x96, 0x32, 0x5f, 0x76, 0xed, 0xf5, 0xb6, 0x4a, 0xfa, 0x4e, 0xc5, 0xa7, 0x41, 0x8a, 0xfe, 0xd2, 0x3a, 0x97, 0xef, 0xad, 0xe6, 0x8b, 0x6a, 0x5b, 0x31, 0x45, 0xf0, 0x8a, 0x5d, 0x3d, 0xb9, 0xc2, 0x98, 0xa5, 0x12, 0xfa, 0xbd, 0xac, 0x68, 0x56, 0x2b, 0x3f, 0x55, 0x37, 0x7f, 0xf4, 0x4b, 0x00, 0xc1, 0xc2, 0xf3, 0xef, 0xd1, 0x81, 0x32, 0xda, 0x71, 0xf9, 0x71, 0xa9, 0x53, 0xa9, 0x31, 0x8c, 0x57, 0x52, 0x33, 0x61, 0xa1, 0x60, 0xf9, 0xb7, 0xe3, 0xb5, 0x1c, 0x52, 0x4e, 0x95, 0xdd, 0x5e, 0xf4, 0x56, 0x8e, 0xf1, 0x8a, 0x80, 0x07, 0x75, 0xe9, 0xd2, 0x6e, 0x07, 0x13, 0x19, 0x42, 0xd2, 0xbe, 0x4e, 0xf2, 0x2c, 0x0c, 0xbc, 0x13, 0xdf, 0x01, 0xc6, 0x8b, 0x1b, 0xcd, 0x3b, 0xce, 0x9b, 0xd5, 0x1c, 0x4c, 0xed, 0x65, 0x2a, 0xdc, 0x40, 0x07, 0xbe, 0x43, 0xb3, 0x7c, 0x67, 0xa5, 0xc5, 0x5e, 0xd4, 0x02, 0x9e, 0x8a, 0xd1, 0x5d, 0xef, 0x83, 0x05, 0xc9, 0x68, 0x62, 0x1a, 0xed, 0x4c, 0xd4, 0xbf, 0xe0, 0x79, 0xa6, 0xf4, 0x88, 0x84, 0xd8, 0x56, 0x80, 0x39, 0x2c, 0xa9, 0x2b, 0xa6, 0xe1, 0x2f, 0xea, 0x6f, 0x4a, 0x05, 0x6f, 0x79, 0xd6, 0x7b, 0x19, 0xb0, 0x5f, 0x90, 0xd6, 0x84, 0xbe, 0x7d, 0x45, 0x72, 0x5f, 0x79, 0x67, 0xc6, 0xa4, 0x67, 0xaf, 0x43, 0xb8, 0x6a, 0x6b, 0x1b, 0x9d, 0x9e, 0xed, 0x3a, 0x42, 0x48, 0x97, 0x1c, 0x76, 0xa7, 0xac, 0x29, 0xc2, 0x92, 0xdf, 0xba, 0x4d, 0x75, 0xc5, 0xf7, 0xba, 0x70, 0x9a, 0x39, 0x05, 0x8e, 0x96, 0xad, 0xf6, 0xdb, 0xd7, 0x60, 0xd3, 0xce, 0xf4, 0x02, 0x4b, 0xf3, 0xed, 0xc4, 0x41, 0xef, 0xbf, 0x11, 0x47, 0xa2, 0xc1, 0x08, 0xbd, 0x6f, 0x9e, 0xb4, 0x39, 0xc1, 0xc5, 0xc4, 0xd3, 0xa6, 0xea, 0x4e, 0xc3, 0xd9, 0x2c, 0xef, 0x38, 0x13, 0x61, 0x88, 0xbe, 0xc9, 0xe0, 0xb6, 0xc0, 0x51, 0x8d, 0x8b, 0x79, 0xba, 0x59, 0xc5, 0xdc, 0xba, 0x39, 0x3a, 0xed, 0xfd, 0xff, 0xb0, 0xb7, 0x0d, 0x77, 0x9c, 0x2b, 0x97, 0x65, 0xce, 0x44, 0x52, 0xe7, 0xe3, 0xb0, 0x8c, 0x44, 0x02, 0xb1, 0xa6, 0x08, 0x32, 0x08, 0x40, 0xfb, 0xe9, 0x6d, 0x1e, 0xb8, 0x65, 0x6e, 0xb1, 0xc2, 0x0d, 0x95, 0x51, 0xdd, 0xf5, 0x33, 0xb9, 0xf1, 0x5e, 0x4e, 0xb5, 0x78, 0x37, 0x56, 0xc5, 0x3d, 0xdd, 0x3b, 0x14, 0xd8, 0x07, 0xf8, 0x38, 0xac, 0x96, 0x80, 0xf8, 0x9f, 0x1a, 0xdf, 0xb7, 0x8d, 0x68, 0xcc, 0xb0, 0x67, 0x31, 0xa9, 0x0b, 0xea, 0xc5, 0xf0, 0xd7, 0x09, 0xd5, 0xb8, 0x8c, 0x75, 0x43, 0x7a, 0x66, 0x3c, 0xb9, 0x62, 0xd3, 0x7f, 0x96, 0xb8, 0xe8, 0x92, 0x84, 0x77, 0xb5, 0x61, 0x12, 0x28, 0x01, 0x5d, 0x33, 0x7f, 0x04, 0x9e, 0x8b, 0x62, 0xe4, 0xdf, 0xf8, 0xd0, 0xbb, 0x6c, 0xda, 0x24, 0xa5, 0xdf, 0x90, 0x83, 0xe3, 0x48, 0xbe, 0xf1, 0x25, 0x85, 0xf5, 0xf4, 0xc4, 0xd3, 0xbb, 0x3c, 0x7e, 0x78, 0xd5, 0x50, 0x19, 0x4a, 0x45, 0x25, 0x1a, 0x08, 0x79, 0xa1, 0x62, 0x4b, 0xf9, 0xdd, 0x35, 0xeb, 0x65, 0x5c, 0x39, 0x39, 0xfe, 0xa8, 0x90, 0x9f, 0x6d, 0xf3, 0x95, 0xbe, 0xbd, 0x02, 0xb6, 0x8a, 0x17, 0xa8, 0x97, 0xc9, 0xaa, 0xdd, 0xd6, 0xe2, 0xe2, 0x04, 0x61, 0xe3, 0x03, 0xf5, 0x7c, 0xde, 0xb0, 0x0a, 0xe0, 0xf2, 0x3e, 0x60, 0xa9, 0x4c, 0x19, 0xc7, 0x71, 0xd8, 0xaa, 0x60, 0x53, 0x3b, 0x93, 0xce, 0xdc, 0x1b, 0x76, 0xd2, 0x29, 0x0a, 0x01, 0xbf, 0x43, 0xb2, 0x72, 0x5f, 0x12, 0x5b, 0xef, 0xa5, 0x75, 0x15, 0x4e, 0x98, 0x6c, 0x9c, 0x62, 0x05, 0xa1, 0x59, 0x6c, 0xba, 0xa2, 0xd1, 0x34, 0x70, 0xc2, 0x34, 0x22, 0xf2, 0xdf, 0x7b, 0xec, 0xe4, 0xe6, 0xeb, 0xd7, 0x52, 0xe9, 0x38, 0x9a, 0xe6, 0x08, 0x57, 0xb5, 0x29, 0x69, 0xd2, 0xdd, 0xef, 0xa9, 0xc0, 0x34, 0xf1, 0xbf, 0x35, 0xae, 0x33, 0x16, 0x30, 0x4e, 0x94, 0x9c, 0x89, 0x90, 0x82, 0x0e, 0x26, 0xe6, 0xcf, 0xfa, 0xe4, 0xb3, 0x88, 0xd1, 0x50, 0x5f, 0x92, 0x37, 0x06, 0x29, 0x7f, 0x8d, 0xb5, 0x56, 0x53, 0x79, 0x19, 0xeb, 0xbe, 0x30, 0x86, 0x02, 0x3f, 0x12, 0xf4, 0xde, 0xd3, 0xb1, 0x1a, 0xcf, 0x2a, 0x6d, 0x97, 0x3d, 0xdd, 0x8e, 0xb2, 0x7b, 0x07, 0xc5, 0x80, 0xbf, 0x44, 0x8c, 0xaa, 0x5a, 0x2e, 0xa1, 0x16, 0xc5, 0xea, 0xf3, 0x6f, 0x7a, 0x6b, 0x17, 0xa8, 0x5b, 0x39, 0x55, 0xdc, 0x8a, 0x44, 0xa6, 0x20, 0xd8, };
20860 static const u8 ed25519_907_test_vectors_expected_sig[] = {
20861 	0xff, 0xed, 0xe7, 0x01, 0xeb, 0x18, 0x29, 0xce, 0x23, 0x61, 0xcd, 0xa2, 0xc8, 0xbb, 0x63, 0x33, 0x85, 0x39, 0xd8, 0xad, 0x2f, 0x66, 0x77, 0x58, 0x55, 0x31, 0xe7, 0xbf, 0x1d, 0x39, 0x22, 0x38, 0x26, 0x79, 0xa1, 0xae, 0x84, 0xff, 0xeb, 0x75, 0x3f, 0xc9, 0x75, 0x4e, 0x50, 0xc0, 0x18, 0x52, 0xf9, 0x55, 0xe3, 0xfd, 0x60, 0x9f, 0xf6, 0x4b, 0xf0, 0x5b, 0xbe, 0x70, 0x75, 0xcd, 0xbe, 0x00, };
20862 static const ec_test_case ed25519_907_test_case = {
20863 	.name = "EDDSA25519-SHA512/wei25519 907",
20864 	.ec_str_p = &wei25519_str_params,
20865 	.priv_key = ed25519_907_test_vectors_priv_key,
20866 	.priv_key_len = sizeof(ed25519_907_test_vectors_priv_key),
20867 	.nn_random = NULL,
20868 	.hash_type = SHA512,
20869 	.msg = (const char *)ed25519_907_test_vectors_message,
20870 	.msglen = sizeof(ed25519_907_test_vectors_message),
20871 	.sig_type = EDDSA25519,
20872 	.exp_sig = ed25519_907_test_vectors_expected_sig,
20873 	.exp_siglen = sizeof(ed25519_907_test_vectors_expected_sig),
20874 	.adata = NULL,
20875 	.adata_len = 0
20876 };
20877 
20878 /************************************************/
20879 static const u8 ed25519_908_test_vectors_priv_key[] = {
20880 	0x2d, 0xdd, 0x79, 0xe7, 0x60, 0x64, 0xc2, 0xe6, 0xb3, 0x22, 0xaf, 0xb0, 0xc5, 0xc6, 0x85, 0xcd, 0xbe, 0xc6, 0x28, 0x21, 0xcd, 0xfc, 0x0c, 0xb1, 0x4d, 0xb7, 0xd0, 0x1b, 0xa3, 0xbf, 0x21, 0xa5, };
20881 static const u8 ed25519_908_test_vectors_message[] = {
20882 	0xa5, 0x66, 0x74, 0xa1, 0xe1, 0xf0, 0x97, 0x95, 0x25, 0x1a, 0xbe, 0x54, 0xab, 0x43, 0xc2, 0x98, 0x20, 0x8f, 0xef, 0xc9, 0xbb, 0x91, 0x76, 0xfd, 0xb2, 0x3e, 0x1e, 0x9f, 0x60, 0xf0, 0x32, 0x64, 0x79, 0x15, 0x56, 0x7e, 0xbd, 0xcc, 0x2b, 0x86, 0x9e, 0xdb, 0x70, 0x55, 0xf4, 0xab, 0xa6, 0x7e, 0xcf, 0xe7, 0xfa, 0x19, 0xed, 0xa4, 0x5c, 0x06, 0x04, 0x7c, 0x7a, 0x51, 0x84, 0x8b, 0xe9, 0x97, 0x32, 0x51, 0xf8, 0x5f, 0xf7, 0x6f, 0x1c, 0x59, 0xe3, 0x65, 0x43, 0x82, 0x85, 0x8c, 0x9b, 0xe1, 0x23, 0xdb, 0x8a, 0x94, 0x90, 0xc6, 0xc9, 0xb3, 0x09, 0xb8, 0x2d, 0x1e, 0x2c, 0xa6, 0xf4, 0xa0, 0x7d, 0x00, 0x12, 0x02, 0x83, 0xc6, 0xc2, 0x95, 0x64, 0x49, 0x95, 0xa9, 0x66, 0x28, 0x61, 0x2b, 0x8d, 0x67, 0x91, 0x57, 0x35, 0x18, 0xe2, 0x55, 0x6a, 0x68, 0x8a, 0x09, 0xf1, 0x49, 0xbc, 0x84, 0x6a, 0x68, 0xbd, 0x0e, 0xf7, 0x92, 0x79, 0x03, 0x57, 0x10, 0x03, 0x1e, 0xf0, 0xa8, 0xfe, 0xd1, 0xdd, 0x0b, 0xf0, 0x26, 0x12, 0x5d, 0xc6, 0x64, 0x8f, 0x86, 0xf6, 0x43, 0x09, 0x94, 0x2e, 0x18, 0xf2, 0x3b, 0x12, 0xd1, 0xdc, 0x68, 0xc6, 0xf2, 0x77, 0x0c, 0xa8, 0xb5, 0x48, 0x5b, 0x36, 0x9b, 0x0c, 0x92, 0x00, 0x7a, 0x94, 0x61, 0xc1, 0x39, 0xfc, 0xbb, 0x41, 0x17, 0x5f, 0x31, 0x6d, 0x44, 0x67, 0x06, 0x0a, 0xb4, 0x3d, 0x12, 0x22, 0xf5, 0x80, 0x24, 0x04, 0xbf, 0x63, 0xc2, 0xdf, 0x7e, 0x00, 0x4b, 0xdc, 0x40, 0x0c, 0xa8, 0x0f, 0xe0, 0xd2, 0xcb, 0x68, 0xa2, 0x10, 0xfb, 0xc3, 0xfc, 0x0b, 0x90, 0x32, 0x09, 0xd5, 0x47, 0x6e, 0x7a, 0x56, 0xba, 0xef, 0xb8, 0xfa, 0xd7, 0xf3, 0x28, 0xb7, 0x2f, 0x32, 0x71, 0x13, 0xe1, 0x39, 0x41, 0x4b, 0xa6, 0xf3, 0x4e, 0x99, 0xc2, 0xec, 0xcd, 0xe0, 0x44, 0xe7, 0xa3, 0xac, 0x70, 0xc5, 0x80, 0xcd, 0x26, 0xc7, 0x45, 0x01, 0x92, 0xca, 0x4c, 0x82, 0x3c, 0x7a, 0xc5, 0xea, 0xe8, 0x76, 0xc0, 0xd1, 0xc8, 0xc7, 0x68, 0xc1, 0xcb, 0x0b, 0x7e, 0xa4, 0x1f, 0xc9, 0xb7, 0xd2, 0x94, 0x37, 0xbb, 0xad, 0xab, 0x18, 0xe0, 0xf5, 0xed, 0x1d, 0xef, 0xe0, 0xcf, 0x6c, 0x0e, 0xba, 0xa6, 0xb6, 0xd7, 0x77, 0xf4, 0xda, 0xd9, 0xab, 0xdd, 0xbf, 0xc0, 0xfd, 0x6a, 0xb5, 0xee, 0xea, 0x80, 0x3c, 0xfa, 0x01, 0xc0, 0xbd, 0x46, 0xf6, 0x5f, 0xef, 0xa4, 0x69, 0x01, 0xab, 0xbe, 0x0d, 0x89, 0x10, 0x4e, 0x3b, 0xc4, 0xae, 0xe1, 0xf0, 0x59, 0x9c, 0x69, 0xb6, 0x7b, 0xa5, 0x45, 0xab, 0x9b, 0x54, 0xf5, 0xde, 0xe3, 0x40, 0xac, 0x69, 0xd8, 0x82, 0x99, 0xe8, 0x68, 0x22, 0xac, 0xdd, 0xdd, 0xce, 0x60, 0x11, 0x22, 0x01, 0x2f, 0x99, 0x29, 0x97, 0x74, 0xaa, 0xf1, 0x7c, 0x96, 0x4e, 0xde, 0xcb, 0x95, 0xe1, 0x27, 0x7d, 0x46, 0x2d, 0xe6, 0x4e, 0x91, 0x15, 0xa6, 0x1a, 0xd9, 0x8a, 0xa3, 0xd2, 0x2e, 0x3b, 0xa6, 0xf8, 0xf1, 0xcd, 0x69, 0xb6, 0xb5, 0x2b, 0x83, 0x38, 0x28, 0x23, 0xf3, 0x0e, 0x96, 0x6b, 0xda, 0xd1, 0xff, 0x5f, 0xc1, 0x98, 0xae, 0x32, 0xe9, 0xb6, 0x80, 0x55, 0xd4, 0x39, 0x2b, 0xc7, 0xc3, 0xdf, 0x10, 0x15, 0xf1, 0x28, 0xae, 0xe1, 0xe4, 0xfa, 0x3d, 0x49, 0x99, 0xe3, 0x29, 0xf2, 0x2f, 0x0f, 0xf6, 0xaa, 0x77, 0x8b, 0xae, 0x02, 0x94, 0xa1, 0xdf, 0x74, 0x36, 0xcb, 0x16, 0xa2, 0xbf, 0xcd, 0x74, 0xb4, 0x63, 0xab, 0xe7, 0xcb, 0x4b, 0xac, 0x53, 0x62, 0xc8, 0x9c, 0x9d, 0x1a, 0x37, 0x8a, 0x2c, 0xb8, 0x85, 0xcc, 0x3b, 0x26, 0xab, 0x4b, 0xe8, 0x81, 0xef, 0x1a, 0xfc, 0x14, 0x43, 0x0e, 0x10, 0xd2, 0x65, 0x39, 0xca, 0x35, 0x8c, 0x36, 0x76, 0x28, 0x6a, 0xd8, 0x1c, 0xe1, 0xc9, 0xe7, 0x85, 0x92, 0xaf, 0x66, 0xf1, 0x82, 0xbb, 0x1f, 0x7f, 0x86, 0x2f, 0xe7, 0x55, 0xbf, 0xfb, 0x5b, 0xe5, 0xc5, 0xf2, 0xb7, 0x31, 0xc1, 0x32, 0xe2, 0x38, 0x8a, 0x76, 0xa1, 0xa7, 0xb1, 0xcd, 0xdf, 0x05, 0xae, 0xd2, 0xac, 0x9e, 0xc4, 0x08, 0x47, 0x52, 0x71, 0x94, 0x2c, 0xca, 0xdd, 0x32, 0xe4, 0x9d, 0x87, 0x91, 0xed, 0xf8, 0xb8, 0xde, 0x11, 0x75, 0x51, 0xce, 0x26, 0x4a, 0x60, 0xb8, 0x41, 0x05, 0xea, 0xe8, 0x7e, 0x66, 0xf6, 0xa4, 0x01, 0xd1, 0x32, 0x2b, 0xb2, 0x1a, 0x98, 0xe8, 0xac, 0xd2, 0x77, 0x49, 0x32, 0x54, 0xe5, 0x04, 0x00, 0x4f, 0x72, 0xc7, 0x6e, 0x79, 0x03, 0xd2, 0xfa, 0x38, 0xfa, 0xb7, 0x17, 0xe9, 0x4c, 0xe6, 0x27, 0x94, 0x7c, 0x4e, 0xa3, 0x26, 0xbd, 0x25, 0x75, 0xc3, 0x73, 0x10, 0xf3, 0xb4, 0xd8, 0x43, 0xb9, 0x0f, 0xa7, 0x7d, 0x32, 0xd9, 0x95, 0x21, 0x94, 0x15, 0x0b, 0x62, 0xf8, 0x50, 0x18, 0x7a, 0x4f, 0xdf, 0x38, 0x46, 0x6d, 0xfa, 0x06, 0x56, 0xc0, 0xa2, 0xe0, 0xb3, 0xf0, 0x74, 0x92, 0xac, 0x8e, 0x37, 0xe5, 0xd0, 0xdf, 0x95, 0xcc, 0x89, 0xdf, 0x30, 0x85, 0xa2, 0x69, 0x29, 0x1d, 0xc2, 0x51, 0x22, 0x10, 0xd3, 0xfe, 0x44, 0x24, 0x8d, 0x7a, 0xb9, 0x96, 0xbe, 0x09, 0x9a, 0xf6, 0x4c, 0x22, 0x75, 0x66, 0x66, 0xf8, 0xde, 0xa5, 0x6c, 0x00, 0xb9, 0x06, 0x77, 0xd1, 0x18, 0x25, 0x00, 0xdd, 0x27, 0x4f, 0xd0, 0x76, 0x92, 0x53, 0x82, 0x6d, 0x67, 0x7a, 0xb1, 0x6a, 0x55, 0x7b, 0x08, 0xb3, 0xc5, 0x22, 0x65, 0x49, 0x8d, 0x85, 0xc4, 0xcb, 0x2b, 0x60, 0x0e, 0xe0, 0x48, 0x1b, 0x7c, 0x1c, 0x47, 0x6a, 0x9d, 0xaa, 0x8b, 0x88, 0xc7, 0x1f, 0xc2, 0x1b, 0x6f, 0x89, 0xbf, 0xdf, 0xec, 0xe5, 0x8d, 0xa9, 0xe8, 0xd5, 0x65, 0x65, 0x2e, 0x43, 0x95, 0xbd, 0xf4, 0xc8, 0x11, 0xb4, 0xf4, 0xf2, 0x2d, 0x2b, 0x96, 0x13, 0x26, 0x1f, 0x88, 0xc6, 0x04, 0xc2, 0x97, 0x4d, 0x3e, 0x97, 0x7d, 0x14, 0x0d, 0x04, 0x6e, 0x1b, 0x66, 0x25, 0xb7, 0x07, 0x16, 0x40, 0xd3, 0x52, 0xcb, 0x7e, 0x7e, 0x65, 0xd4, 0x6c, 0x61, 0x34, 0x47, 0xbe, 0x8d, 0xc5, 0xa2, 0x00, 0xaa, 0x9a, 0xca, 0xb4, 0x6a, 0xfc, 0xcf, 0xeb, 0xb6, 0xb1, 0xc3, 0x19, 0x73, 0x24, 0x6c, 0x34, 0xfa, 0xaf, 0x8d, 0x26, 0xea, 0x5e, 0x83, 0xbe, 0x15, 0x71, 0x8f, 0x8f, 0xdb, 0x0c, 0xfc, 0x44, 0x4e, 0x2e, 0xb6, 0x0f, 0x36, 0x59, 0xb0, 0x20, 0x16, 0x1c, 0x22, 0x8e, 0x6b, 0x92, 0x40, 0xb7, 0xac, 0x39, 0x4c, 0xab, 0x81, 0x2d, 0xe1, 0x05, 0x15, 0x76, 0x6f, 0x22, 0x47, 0x3e, 0xcc, 0xa5, 0x35, 0x59, 0x4c, 0xe5, 0x28, 0xa5, 0x7c, 0xf5, 0xda, 0xb2, 0xeb, 0x32, 0xab, 0x84, };
20883 static const u8 ed25519_908_test_vectors_expected_sig[] = {
20884 	0xa4, 0xc3, 0x96, 0xe1, 0x9d, 0xd4, 0x2e, 0x03, 0x91, 0x84, 0xcd, 0x25, 0x11, 0x88, 0xff, 0xa2, 0x45, 0xf0, 0x36, 0x7c, 0x69, 0xc0, 0x2d, 0x12, 0x47, 0x4e, 0x5c, 0xa9, 0xe5, 0xc7, 0x68, 0xa7, 0xee, 0x3a, 0x3d, 0x47, 0xeb, 0x22, 0xd1, 0xac, 0x9e, 0x04, 0xb7, 0x04, 0xa7, 0x4f, 0x41, 0x69, 0x47, 0xf3, 0xf4, 0x9a, 0x32, 0x42, 0x59, 0x4e, 0x7b, 0x63, 0x90, 0xe8, 0x2b, 0x60, 0xd5, 0x05, };
20885 static const ec_test_case ed25519_908_test_case = {
20886 	.name = "EDDSA25519-SHA512/wei25519 908",
20887 	.ec_str_p = &wei25519_str_params,
20888 	.priv_key = ed25519_908_test_vectors_priv_key,
20889 	.priv_key_len = sizeof(ed25519_908_test_vectors_priv_key),
20890 	.nn_random = NULL,
20891 	.hash_type = SHA512,
20892 	.msg = (const char *)ed25519_908_test_vectors_message,
20893 	.msglen = sizeof(ed25519_908_test_vectors_message),
20894 	.sig_type = EDDSA25519,
20895 	.exp_sig = ed25519_908_test_vectors_expected_sig,
20896 	.exp_siglen = sizeof(ed25519_908_test_vectors_expected_sig),
20897 	.adata = NULL,
20898 	.adata_len = 0
20899 };
20900 
20901 /************************************************/
20902 static const u8 ed25519_909_test_vectors_priv_key[] = {
20903 	0x3a, 0xbb, 0xdb, 0x0b, 0xa1, 0x1a, 0xa1, 0x06, 0x3b, 0xd2, 0x6b, 0x02, 0xc1, 0x16, 0x03, 0x78, 0x62, 0x28, 0x5b, 0xab, 0xd2, 0x15, 0xd2, 0x40, 0xbc, 0x9c, 0x09, 0x26, 0xf4, 0xec, 0xea, 0x81, };
20904 static const u8 ed25519_909_test_vectors_message[] = {
20905 	0xdc, 0xcd, 0x55, 0xf9, 0x22, 0xcd, 0x27, 0x4f, 0x69, 0x75, 0x00, 0x0a, 0xdc, 0x8d, 0x98, 0x63, 0x0c, 0x6d, 0x75, 0x2c, 0x12, 0x02, 0xa9, 0xdd, 0x12, 0x10, 0x48, 0xb9, 0x39, 0x45, 0xaf, 0x2b, 0x11, 0x10, 0x96, 0x77, 0x88, 0xf9, 0x9e, 0xc0, 0x28, 0xe3, 0xd3, 0xb4, 0xcf, 0x82, 0xfb, 0x07, 0x17, 0x3e, 0xa4, 0x40, 0x1e, 0x3b, 0xb4, 0xb0, 0x7b, 0x7b, 0x0b, 0x24, 0xb0, 0x59, 0xa7, 0x66, 0x33, 0x95, 0x32, 0xd9, 0xdf, 0x3e, 0x31, 0xb7, 0x2c, 0x95, 0x8c, 0x11, 0x9d, 0x8d, 0xfa, 0x15, 0xa5, 0x07, 0xaf, 0x6c, 0x5f, 0x7e, 0x78, 0xfe, 0x27, 0x0f, 0xa8, 0x1b, 0x9d, 0xf0, 0xf2, 0xe4, 0xaf, 0x24, 0xbd, 0x99, 0xfb, 0xeb, 0x14, 0xe0, 0x03, 0x30, 0x84, 0xd7, 0xfb, 0xf8, 0x4d, 0xde, 0xdf, 0xd5, 0xce, 0x56, 0x75, 0x1d, 0x15, 0x90, 0x84, 0x75, 0xdf, 0x8a, 0xf0, 0x13, 0xd0, 0x91, 0x17, 0x3c, 0x13, 0x86, 0xb9, 0x13, 0x94, 0x26, 0xcc, 0x60, 0x81, 0xea, 0x16, 0x5b, 0x8c, 0xe4, 0x81, 0x94, 0xb8, 0xe1, 0x8a, 0x9b, 0x91, 0xa4, 0x63, 0x13, 0x44, 0xfe, 0x29, 0xc8, 0xe7, 0x28, 0x18, 0xb7, 0x1f, 0xa1, 0x5c, 0x92, 0x92, 0xd1, 0x3f, 0xdf, 0x5f, 0x9d, 0x18, 0xe2, 0x9b, 0xd0, 0x29, 0x1b, 0x81, 0x38, 0xde, 0x73, 0x8f, 0xd3, 0xa3, 0x6c, 0x35, 0x23, 0x90, 0x22, 0x36, 0x8b, 0x45, 0x6f, 0x1f, 0xac, 0xba, 0x90, 0xa0, 0xd8, 0x0d, 0x6e, 0x31, 0x1c, 0x5f, 0x6c, 0x6f, 0x04, 0x67, 0x7e, 0x92, 0x37, 0x3a, 0x5f, 0xc4, 0x73, 0x88, 0x94, 0xdb, 0xed, 0x20, 0x6c, 0x30, 0xda, 0x34, 0x1b, 0x3b, 0x19, 0x6c, 0x94, 0x78, 0x58, 0xa6, 0xd2, 0xad, 0xc6, 0x8a, 0xac, 0x3f, 0x20, 0xcf, 0xdb, 0xe0, 0x49, 0x79, 0x61, 0xda, 0xe3, 0x34, 0x70, 0x26, 0x6d, 0x17, 0xec, 0x71, 0x9a, 0x59, 0xf0, 0x58, 0x6f, 0x82, 0xf9, 0x9f, 0x1c, 0x90, 0xed, 0x70, 0x05, 0xa2, 0x07, 0x21, 0x9a, 0x55, 0xed, 0xc7, 0x60, 0xf4, 0xeb, 0x8f, 0x24, 0x02, 0x64, 0x7f, 0x6f, 0x77, 0x97, 0x1f, 0xf7, 0xb6, 0x34, 0x35, 0x7b, 0x6b, 0x29, 0xbb, 0xd7, 0xea, 0x05, 0xe2, 0xe2, 0x58, 0x54, 0xe9, 0x9c, 0x62, 0x0f, 0x4b, 0x8b, 0x64, 0x73, 0x90, 0x22, 0xff, 0x0b, 0x33, 0x8a, 0xfe, 0xf3, 0x5f, 0xb6, 0xf4, 0x1a, 0x53, 0x62, 0x9a, 0x51, 0x8e, 0xb9, 0x3d, 0x66, 0x02, 0x0f, 0xb3, 0x53, 0xae, 0xf8, 0xdd, 0x07, 0x1e, 0x09, 0xc9, 0x16, 0xd4, 0x70, 0x4a, 0xcd, 0xf7, 0x76, 0xb3, 0x8c, 0xa9, 0xc5, 0x9f, 0x21, 0x1f, 0xf8, 0x8c, 0x43, 0x0a, 0x57, 0xe8, 0xf1, 0x71, 0x39, 0x23, 0xb3, 0xf3, 0x0c, 0xa8, 0x69, 0x70, 0xa1, 0x4a, 0x52, 0xdb, 0x4b, 0xcb, 0xe6, 0x0d, 0xf4, 0xbc, 0x3c, 0xfd, 0xf2, 0x54, 0xbf, 0x10, 0xf8, 0xaf, 0xae, 0x87, 0xbd, 0x61, 0xb3, 0x58, 0xf4, 0x3c, 0xc2, 0x96, 0xc0, 0x41, 0x29, 0x64, 0xc4, 0xe0, 0x0f, 0x71, 0x21, 0x33, 0x97, 0x46, 0x85, 0x17, 0xcb, 0x01, 0x37, 0x9c, 0xb7, 0x29, 0xc7, 0xb9, 0xe3, 0x5b, 0xd5, 0x0b, 0xdd, 0x98, 0xc3, 0xd3, 0xb7, 0x62, 0x97, 0xa1, 0x38, 0xb5, 0x7c, 0xeb, 0x6c, 0x77, 0x74, 0x2d, 0xf0, 0x88, 0x1d, 0x07, 0x66, 0x8c, 0x08, 0xa6, 0x30, 0xa4, 0x4e, 0x6e, 0xd7, 0xeb, 0x20, 0x6d, 0x6a, 0x56, 0x44, 0x07, 0x10, 0x43, 0x8a, 0x51, 0x11, 0x42, 0x4b, 0x61, 0xaa, 0xee, 0xce, 0x40, 0xe9, 0x00, 0xf5, 0xe3, 0xc4, 0x57, 0xe9, 0xd6, 0xe3, 0x1a, 0x79, 0xec, 0x5b, 0x4b, 0x42, 0xb6, 0x8e, 0x66, 0xe1, 0x99, 0x30, 0x92, 0x87, 0xca, 0xd6, 0x53, 0x36, 0xfc, 0x7f, 0xe4, 0x3f, 0x43, 0xcd, 0x8c, 0x77, 0x3d, 0x3c, 0x65, 0x80, 0xd7, 0x21, 0x7e, 0x2c, 0xab, 0xec, 0xd3, 0xea, 0xbc, 0x48, 0x5c, 0x4a, 0xcf, 0x47, 0x71, 0x8c, 0x39, 0xb0, 0x2c, 0x78, 0x58, 0xff, 0x34, 0x7c, 0xec, 0x75, 0x35, 0xed, 0xdc, 0xd4, 0xfc, 0x81, 0x5d, 0xf8, 0x14, 0x56, 0x9a, 0x88, 0xae, 0x70, 0xf2, 0x73, 0x3a, 0x65, 0x39, 0xf2, 0x08, 0xc7, 0x9c, 0xf4, 0xe7, 0xc4, 0xf9, 0xea, 0x24, 0x1a, 0x92, 0xe9, 0x51, 0x51, 0x71, 0x36, 0x14, 0x18, 0xa4, 0xc2, 0xe5, 0x3c, 0x07, 0x6a, 0xaa, 0xbc, 0x47, 0xe4, 0xc9, 0x71, 0xbd, 0x04, 0xb1, 0x00, 0xc2, 0x62, 0x82, 0x30, 0x88, 0x57, 0xe0, 0x6e, 0x7e, 0x5f, 0xbc, 0x43, 0x42, 0x56, 0x4f, 0xb3, 0xb1, 0xea, 0x4a, 0x17, 0xa9, 0x25, 0xe9, 0x1e, 0xe6, 0x91, 0x22, 0x32, 0x1d, 0x39, 0x2b, 0x24, 0x69, 0x65, 0xb8, 0x6b, 0x54, 0xfd, 0x5c, 0x83, 0xfa, 0x5c, 0x47, 0x41, 0x63, 0xf9, 0x8a, 0x9f, 0x44, 0x7d, 0x88, 0xcb, 0x59, 0xfe, 0x2c, 0xdf, 0x9f, 0x54, 0x12, 0xfc, 0xbe, 0xb3, 0xef, 0xfa, 0xc8, 0x97, 0x67, 0x91, 0xc6, 0xa4, 0x7b, 0x66, 0x9a, 0x2f, 0xc5, 0x5a, 0xbe, 0x8e, 0x09, 0xe7, 0x41, 0x57, 0xef, 0xcd, 0x1c, 0xa7, 0x8f, 0xc1, 0x0f, 0xa6, 0x87, 0x01, 0x0c, 0x68, 0x26, 0xc6, 0xe8, 0x96, 0xef, 0x5c, 0xd7, 0x1d, 0x0f, 0xe4, 0xd1, 0xbd, 0x07, 0xc1, 0x0d, 0xac, 0x3b, 0x03, 0x48, 0x5e, 0xdd, 0x25, 0x69, 0xa7, 0xee, 0xcf, 0xbc, 0x4e, 0x5d, 0x2e, 0xe2, 0x37, 0x98, 0x59, 0xe2, 0x65, 0x26, 0x7b, 0xed, 0xaa, 0xd6, 0x9d, 0x93, 0xb7, 0xc1, 0xbd, 0x18, 0xf2, 0x7e, 0xa4, 0x24, 0x83, 0xc7, 0xe4, 0x10, 0x0e, 0xe0, 0x5b, 0x28, 0x30, 0x39, 0xbf, 0xb9, 0x89, 0x1d, 0x37, 0xc4, 0x67, 0xed, 0x83, 0xb8, 0x8c, 0x79, 0x4e, 0xab, 0x6b, 0xab, 0x9d, 0xc6, 0x77, 0x89, 0x26, 0x50, 0xe2, 0xd8, 0x96, 0xfb, 0xfe, 0xc1, 0xb1, 0xcd, 0xb7, 0x21, 0xbe, 0x30, 0xb0, 0xb8, 0xe5, 0x35, 0x87, 0x09, 0xe1, 0x65, 0xcb, 0xe3, 0xa1, 0x82, 0xc9, 0x3b, 0xc0, 0xa0, 0xce, 0xa2, 0xf8, 0xcf, 0x3a, 0x62, 0x57, 0xad, 0xf7, 0x64, 0x53, 0x40, 0x41, 0x20, 0x22, 0x41, 0xa5, 0x27, 0x9b, 0x66, 0x8e, 0x40, 0x12, 0x5f, 0xc0, 0x94, 0x58, 0x5a, 0x3c, 0x58, 0x8a, 0xba, 0x82, 0xb6, 0x7c, 0xd9, 0x1d, 0x48, 0x3e, 0x54, 0x30, 0x04, 0x28, 0x42, 0x68, 0x63, 0xa4, 0x23, 0x64, 0x04, 0x9d, 0x7c, 0x45, 0xa1, 0x69, 0x38, 0x5a, 0xa8, 0x9b, 0xf3, 0x77, 0xf0, 0xd3, 0x2b, 0x07, 0x80, 0x9b, 0x58, 0x71, 0x39, 0x5e, 0xc0, 0x53, 0xa2, 0x57, 0xd9, 0x3e, 0x48, 0xbb, 0xf4, 0x07, 0xeb, 0x60, 0x91, 0x40, 0x1e, 0x25, 0x65, 0x46, 0xe3, 0x1f, 0x9f, 0xcd, 0x24, 0xd2, 0xc5, 0xb3, 0x33, 0xcf, 0x65, 0x78, 0x50, 0x02, 0xf0, 0x8d, 0x54, 0x8d, 0xb2, 0x6a, 0xd1, 0xf3, };
20906 static const u8 ed25519_909_test_vectors_expected_sig[] = {
20907 	0x98, 0x1f, 0x20, 0x05, 0x5a, 0x45, 0x75, 0x25, 0xae, 0xe5, 0x61, 0x62, 0x64, 0xe6, 0xaf, 0x42, 0xe8, 0xb3, 0x87, 0xcb, 0x08, 0xf8, 0xb4, 0xa7, 0x3f, 0x9b, 0xe0, 0xb3, 0x66, 0xf1, 0x03, 0x5b, 0xb3, 0x0a, 0x1c, 0x87, 0x48, 0x94, 0xcb, 0xec, 0xe0, 0xa8, 0x46, 0xd8, 0x49, 0xb7, 0xec, 0xc5, 0x56, 0x58, 0x5d, 0x0d, 0x3d, 0x39, 0x56, 0x45, 0x80, 0x7f, 0xf2, 0xa3, 0xca, 0x5a, 0x59, 0x0c, };
20908 static const ec_test_case ed25519_909_test_case = {
20909 	.name = "EDDSA25519-SHA512/wei25519 909",
20910 	.ec_str_p = &wei25519_str_params,
20911 	.priv_key = ed25519_909_test_vectors_priv_key,
20912 	.priv_key_len = sizeof(ed25519_909_test_vectors_priv_key),
20913 	.nn_random = NULL,
20914 	.hash_type = SHA512,
20915 	.msg = (const char *)ed25519_909_test_vectors_message,
20916 	.msglen = sizeof(ed25519_909_test_vectors_message),
20917 	.sig_type = EDDSA25519,
20918 	.exp_sig = ed25519_909_test_vectors_expected_sig,
20919 	.exp_siglen = sizeof(ed25519_909_test_vectors_expected_sig),
20920 	.adata = NULL,
20921 	.adata_len = 0
20922 };
20923 
20924 /************************************************/
20925 static const u8 ed25519_910_test_vectors_priv_key[] = {
20926 	0x8a, 0x44, 0xd6, 0xaf, 0xc6, 0xc8, 0xee, 0xe1, 0xbc, 0x7d, 0x5f, 0x69, 0xe4, 0x95, 0xb0, 0xb1, 0x8c, 0xa7, 0xae, 0xe0, 0x07, 0xde, 0xa7, 0xcf, 0x0d, 0x17, 0x14, 0xd7, 0x85, 0xa9, 0xf4, 0xed, };
20927 static const u8 ed25519_910_test_vectors_message[] = {
20928 	0xde, 0x80, 0x32, 0x69, 0x66, 0x53, 0x6c, 0xe9, 0x49, 0x96, 0xaf, 0x2d, 0xe7, 0xa0, 0x76, 0x05, 0xcc, 0x4f, 0xcb, 0x9e, 0x75, 0xee, 0x0a, 0x67, 0xa1, 0xe2, 0x09, 0x32, 0x11, 0x1d, 0xe9, 0xb3, 0x56, 0xd5, 0xbe, 0xea, 0xe8, 0x6c, 0xc5, 0xf5, 0x64, 0xc1, 0x0d, 0x66, 0xe3, 0xde, 0x95, 0xa5, 0xb9, 0x9e, 0x84, 0x49, 0x28, 0xea, 0x8e, 0x77, 0x58, 0x6c, 0xf3, 0xc1, 0x0a, 0xd3, 0x63, 0x3d, 0xde, 0xeb, 0x1d, 0x9d, 0xcf, 0x3f, 0x94, 0xb7, 0x0b, 0xf1, 0xef, 0x63, 0xd2, 0x38, 0xdf, 0x20, 0x4d, 0x70, 0x5c, 0x0b, 0x17, 0x4f, 0x83, 0x28, 0x25, 0x45, 0xf5, 0xe4, 0x07, 0x5f, 0x8d, 0x69, 0xa4, 0x81, 0x79, 0xc2, 0x9e, 0xab, 0xf5, 0xc1, 0x74, 0x2e, 0xf3, 0x9e, 0x1a, 0xd9, 0x63, 0xbe, 0xbb, 0xb6, 0x6f, 0xce, 0x94, 0x91, 0xa9, 0x84, 0x65, 0x12, 0x15, 0xc2, 0xe7, 0x50, 0xe6, 0xee, 0x83, 0x65, 0x76, 0x64, 0x40, 0xa8, 0x44, 0x19, 0xe5, 0x2d, 0xcf, 0x67, 0x1f, 0x1c, 0x52, 0xea, 0xa2, 0xb9, 0x90, 0x2b, 0xcc, 0xa4, 0xb3, 0x7c, 0xff, 0xdb, 0xac, 0x8e, 0x7e, 0x7e, 0x6b, 0x0a, 0x5c, 0x87, 0x48, 0xef, 0xbf, 0x45, 0x2d, 0xf6, 0x16, 0x3f, 0x4c, 0xa0, 0x7b, 0x61, 0xf9, 0xa0, 0x5e, 0xc2, 0x0a, 0x2b, 0xd6, 0x33, 0x38, 0x9e, 0x67, 0x0b, 0xb5, 0x45, 0x4a, 0xcd, 0x6f, 0x3a, 0x06, 0x33, 0x5b, 0x5d, 0xa9, 0xec, 0x32, 0x62, 0x64, 0xe9, 0x62, 0xc7, 0xd9, 0xd0, 0x6c, 0xe7, 0xe9, 0xff, 0x04, 0xa0, 0xa5, 0xbb, 0xdf, 0xaa, 0x4c, 0x41, 0x08, 0x66, 0xa5, 0x72, 0x01, 0x16, 0x51, 0x43, 0x9f, 0x2d, 0xbc, 0xe5, 0xde, 0xe6, 0x67, 0x92, 0x4a, 0xc4, 0x93, 0x4d, 0x20, 0x54, 0x96, 0xbd, 0x1d, 0x4d, 0xf0, 0x8b, 0xd0, 0xcb, 0x3f, 0xd2, 0xde, 0x73, 0xa2, 0xef, 0x34, 0x2f, 0xf0, 0x09, 0x1e, 0x10, 0xe1, 0x5b, 0x3b, 0x76, 0x0a, 0x57, 0x5d, 0xf9, 0x3c, 0xf1, 0xc9, 0x7c, 0x01, 0xc5, 0xab, 0x11, 0xc0, 0x94, 0xbf, 0x34, 0x87, 0x82, 0x06, 0x71, 0x8f, 0x6b, 0x28, 0x5a, 0xa5, 0xcc, 0x51, 0x27, 0xbd, 0x7f, 0x98, 0x8b, 0x84, 0xa9, 0x04, 0x95, 0x30, 0x6f, 0xd9, 0xe9, 0x9d, 0x89, 0x55, 0xe6, 0x68, 0xd1, 0xa3, 0xff, 0x10, 0xf6, 0x5b, 0x7c, 0x47, 0x9f, 0xac, 0x24, 0x11, 0x9a, 0x3c, 0x10, 0x12, 0x2d, 0x4d, 0x18, 0xa8, 0x05, 0xb2, 0x47, 0xdf, 0x16, 0x8c, 0x0a, 0x51, 0x00, 0x16, 0x9b, 0x55, 0x72, 0xd1, 0x70, 0x12, 0xd7, 0x51, 0xa4, 0x2e, 0x83, 0x37, 0x61, 0x15, 0xe1, 0x15, 0x61, 0xc1, 0x60, 0xc1, 0x5e, 0xfa, 0xd7, 0x6d, 0x21, 0xf7, 0xab, 0xb4, 0x30, 0x36, 0x64, 0x75, 0x23, 0x86, 0x31, 0xf8, 0x4c, 0x88, 0xf8, 0x38, 0xb0, 0xac, 0x40, 0x4c, 0x91, 0x3d, 0x2f, 0xa1, 0x24, 0x50, 0x23, 0x84, 0x85, 0xc3, 0x02, 0xfc, 0x20, 0x1f, 0x44, 0x15, 0x1c, 0x19, 0xbc, 0xbd, 0xc1, 0x19, 0x0c, 0x12, 0xd1, 0x54, 0x08, 0x31, 0xfb, 0x19, 0x58, 0x1c, 0xb9, 0x31, 0x72, 0xb0, 0xd2, 0xff, 0x5c, 0x65, 0xf3, 0x1c, 0xaf, 0xf2, 0x0f, 0x81, 0x38, 0x81, 0xf8, 0x4e, 0x5e, 0xf9, 0xd5, 0xc1, 0x65, 0xe0, 0x96, 0xd2, 0x54, 0xca, 0xdf, 0x89, 0x52, 0x49, 0xaa, 0xb8, 0xd4, 0x49, 0x6c, 0x94, 0x0a, 0x40, 0xf9, 0x07, 0xbd, 0x40, 0x93, 0x5a, 0x94, 0xf5, 0xe5, 0x5b, 0x6d, 0xd0, 0x51, 0x15, 0x41, 0x00, 0xfe, 0x33, 0x17, 0x70, 0xef, 0xf2, 0xba, 0xd6, 0x54, 0x56, 0x19, 0xb8, 0xa3, 0x3e, 0xf6, 0x46, 0x2a, 0x50, 0xc0, 0xb2, 0xc4, 0xed, 0x2f, 0xba, 0x4e, 0x4e, 0x38, 0x3e, 0xbf, 0x29, 0x32, 0xe6, 0x19, 0x27, 0x66, 0xa4, 0xaa, 0xd1, 0xd6, 0xe2, 0xb6, 0x92, 0xd9, 0xf2, 0xbd, 0xc2, 0x33, 0x93, 0xe8, 0xaa, 0xcf, 0xba, 0x32, 0x3b, 0x53, 0x4f, 0x84, 0xed, 0xf2, 0xdc, 0xed, 0x7c, 0x94, 0xd5, 0x16, 0x87, 0xda, 0xa2, 0x71, 0x98, 0xa9, 0x14, 0x4b, 0x31, 0x2b, 0x71, 0x6f, 0xe1, 0x70, 0x14, 0xa7, 0xbe, 0xd0, 0xc1, 0x4a, 0x24, 0x38, 0x73, 0x3d, 0x55, 0x5c, 0x65, 0x64, 0xc8, 0xc1, 0xa3, 0xd9, 0x97, 0xeb, 0xae, 0x7b, 0x3d, 0xe8, 0x87, 0x7a, 0xf5, 0x3c, 0x1d, 0x1a, 0x50, 0x29, 0x15, 0x8a, 0x80, 0xaa, 0x0c, 0x87, 0x48, 0x9f, 0xef, 0x27, 0x0c, 0xdf, 0xfe, 0x10, 0xd3, 0x4b, 0x15, 0xc1, 0xa9, 0x69, 0x3a, 0xe0, 0x39, 0x02, 0x43, 0xe3, 0x14, 0xcf, 0xac, 0x06, 0xef, 0x6e, 0xef, 0xeb, 0xcc, 0xf4, 0x3d, 0x42, 0xea, 0xc2, 0x4c, 0xe9, 0x87, 0x94, 0x29, 0xd2, 0xfc, 0x72, 0x53, 0xb3, 0xed, 0x17, 0x58, 0x25, 0xbc, 0x4d, 0xa0, 0x76, 0x2b, 0x49, 0x33, 0xa9, 0x8a, 0xfd, 0xb9, 0x4b, 0x06, 0xf4, 0xfc, 0xd2, 0xad, 0x36, 0x11, 0xaa, 0x99, 0x9d, 0x7c, 0x1c, 0x8d, 0x85, 0x2d, 0x01, 0xdd, 0x9e, 0x52, 0x64, 0x84, 0x55, 0xa0, 0x4e, 0xb2, 0x33, 0x0a, 0x76, 0xfd, 0x94, 0x2c, 0x53, 0x1e, 0x51, 0x4b, 0x5e, 0xc0, 0x72, 0x8a, 0x89, 0xd3, 0x4c, 0xa5, 0x90, 0xea, 0x99, 0xc8, 0x8f, 0xaa, 0x20, 0xdf, 0xb7, 0xbb, 0xf6, 0x56, 0x54, 0xaa, 0x6c, 0x21, 0x2b, 0xeb, 0x8a, 0xd6, 0xbf, 0x7c, 0x77, 0x73, 0x91, 0xcd, 0x49, 0xc3, 0x9c, 0xf8, 0xab, 0x51, 0xb9, 0x5b, 0x41, 0x9e, 0x3d, 0xfc, 0x8d, 0x94, 0xa9, 0x3a, 0x1e, 0xf0, 0x22, 0x3c, 0x6d, 0xe9, 0x0b, 0xf9, 0x62, 0x18, 0xd8, 0x04, 0x5b, 0xd4, 0x95, 0x2a, 0x0d, 0x83, 0x72, 0xa5, 0x57, 0x8c, 0x6a, 0xaf, 0xa7, 0x4b, 0xa6, 0x62, 0xe3, 0x18, 0x8e, 0x6a, 0x6e, 0x56, 0x7e, 0x4d, 0x2f, 0xe8, 0x22, 0x7d, 0x07, 0x43, 0x98, 0x2a, 0x41, 0xeb, 0xfa, 0x0d, 0x31, 0x0f, 0xe7, 0x9f, 0xed, 0x27, 0x04, 0x17, 0x90, 0xef, 0xd5, 0xaf, 0xac, 0x22, 0x43, 0xe1, 0xd1, 0x50, 0xb1, 0x45, 0x01, 0x5d, 0x9d, 0xea, 0xb0, 0xed, 0xed, 0x63, 0x94, 0xac, 0x36, 0xfc, 0x5f, 0xb2, 0x01, 0xf5, 0x20, 0x4f, 0xbd, 0x42, 0x2a, 0x36, 0x04, 0x23, 0x30, 0x15, 0xbb, 0x0a, 0x48, 0xa9, 0x20, 0xe2, 0xe5, 0xe0, 0xd4, 0xde, 0xed, 0x67, 0x20, 0x25, 0xf2, 0x3c, 0xfb, 0xa9, 0x38, 0x89, 0x59, 0x7e, 0x50, 0x4c, 0x88, 0x87, 0xad, 0xd4, 0x6c, 0xfe, 0xf4, 0x02, 0x4a, 0xfb, 0x8a, 0x26, 0xee, 0xb7, 0xdc, 0xdd, 0xb2, 0x39, 0x7b, 0x44, 0xa1, 0x79, 0x63, 0x67, 0x34, 0x00, 0x42, 0x13, 0x70, 0x28, 0xc3, 0x30, 0x76, 0x26, 0x81, 0x6c, 0x29, 0x31, 0xe6, 0x1e, 0xbb, 0x6b, 0x69, 0xed, 0xcb, 0xcb, 0x61, 0x2c, 0x9b, 0x18, 0x1a, 0x28, 0x53, 0x01, 0xce, 0x46, 0xf8, 0x2f, };
20929 static const u8 ed25519_910_test_vectors_expected_sig[] = {
20930 	0xe0, 0x72, 0x7e, 0xb7, 0x2e, 0x84, 0xd2, 0xb8, 0x2c, 0xdb, 0xd0, 0xa6, 0xbd, 0x2f, 0x49, 0x49, 0x63, 0x16, 0xaa, 0xe8, 0x35, 0x1e, 0x49, 0x02, 0xac, 0xd5, 0xe3, 0xcc, 0x57, 0x34, 0x6e, 0x7e, 0xba, 0xfd, 0xd9, 0x2a, 0x90, 0xde, 0xd7, 0x6f, 0xd0, 0xc6, 0x69, 0x0d, 0x68, 0xbb, 0x2f, 0xed, 0xd6, 0x13, 0xe4, 0x4f, 0xa2, 0x22, 0xbe, 0x01, 0x26, 0xda, 0x52, 0x0a, 0xcc, 0x2c, 0x41, 0x05, };
20931 static const ec_test_case ed25519_910_test_case = {
20932 	.name = "EDDSA25519-SHA512/wei25519 910",
20933 	.ec_str_p = &wei25519_str_params,
20934 	.priv_key = ed25519_910_test_vectors_priv_key,
20935 	.priv_key_len = sizeof(ed25519_910_test_vectors_priv_key),
20936 	.nn_random = NULL,
20937 	.hash_type = SHA512,
20938 	.msg = (const char *)ed25519_910_test_vectors_message,
20939 	.msglen = sizeof(ed25519_910_test_vectors_message),
20940 	.sig_type = EDDSA25519,
20941 	.exp_sig = ed25519_910_test_vectors_expected_sig,
20942 	.exp_siglen = sizeof(ed25519_910_test_vectors_expected_sig),
20943 	.adata = NULL,
20944 	.adata_len = 0
20945 };
20946 
20947 /************************************************/
20948 static const u8 ed25519_911_test_vectors_priv_key[] = {
20949 	0x8a, 0x97, 0x2d, 0xd0, 0xf1, 0x19, 0x0c, 0x2b, 0x9d, 0x54, 0x8f, 0x4b, 0xa5, 0x82, 0x64, 0xbb, 0x04, 0x82, 0x67, 0x75, 0x50, 0x2a, 0x8d, 0x5c, 0x2b, 0x20, 0x9e, 0xe8, 0x8d, 0xce, 0xa5, 0xfb, };
20950 static const u8 ed25519_911_test_vectors_message[] = {
20951 	0x30, 0xb2, 0x89, 0x48, 0x93, 0x9a, 0xa2, 0x63, 0x43, 0x7e, 0x45, 0xc5, 0xc0, 0x25, 0x4f, 0xb2, 0x0e, 0x61, 0x7e, 0xd0, 0xf3, 0xfa, 0x7d, 0xac, 0xe5, 0xa0, 0xa8, 0xe0, 0xfe, 0x3c, 0x1f, 0xc4, 0xad, 0xb2, 0x80, 0x9b, 0x61, 0xc5, 0xe8, 0xd9, 0x2c, 0xd2, 0xf3, 0xde, 0x93, 0xb1, 0x73, 0xbe, 0x70, 0x7b, 0xad, 0xa9, 0x42, 0x40, 0xc6, 0x26, 0x2c, 0x16, 0x0e, 0x8c, 0x78, 0x21, 0x65, 0xbe, 0xef, 0x99, 0xd0, 0xbe, 0x8e, 0xcd, 0xad, 0x63, 0x16, 0xdc, 0xd7, 0x34, 0xbb, 0xb9, 0x0a, 0x66, 0xcb, 0xd5, 0xb1, 0xcb, 0x4f, 0xd8, 0xf2, 0x22, 0x6c, 0xea, 0x94, 0x8e, 0x4d, 0xf7, 0x6b, 0xbe, 0x25, 0x1d, 0x47, 0x8f, 0x5c, 0x3f, 0xe0, 0xd6, 0xde, 0x4b, 0xe5, 0x4f, 0x67, 0xf5, 0x02, 0xb2, 0x80, 0x4f, 0x62, 0x8b, 0x79, 0xa5, 0x50, 0xfb, 0x1a, 0xc4, 0x83, 0xad, 0x2b, 0xa1, 0x66, 0x37, 0xc4, 0xbc, 0x9d, 0xa6, 0x7f, 0xb4, 0xf9, 0x86, 0x59, 0xc4, 0xc4, 0x39, 0x4d, 0x16, 0xb6, 0xd1, 0x4b, 0x3e, 0x0b, 0x0c, 0x1e, 0x62, 0x5d, 0x71, 0x0d, 0xcc, 0x1c, 0x11, 0xdf, 0x5d, 0x34, 0x14, 0x7b, 0x1e, 0xc5, 0xa4, 0x17, 0xb9, 0xe2, 0x1f, 0x90, 0x8c, 0xfc, 0x52, 0x3d, 0x43, 0xe3, 0xf1, 0x81, 0xc7, 0x20, 0x9c, 0xc5, 0x6b, 0xdb, 0x5a, 0x21, 0x62, 0x86, 0x95, 0xed, 0x32, 0x0f, 0x8d, 0x4c, 0x07, 0xfd, 0x6d, 0x84, 0xaa, 0x03, 0x42, 0x6f, 0x21, 0x64, 0x4a, 0xae, 0xfe, 0xee, 0xc3, 0x11, 0xc7, 0x4e, 0x94, 0x99, 0x93, 0x60, 0x47, 0x35, 0x0a, 0x9b, 0xf5, 0xb7, 0x03, 0x96, 0x2e, 0x77, 0xce, 0x55, 0x13, 0x36, 0x83, 0x5f, 0xc3, 0x2c, 0xcb, 0xd2, 0xc9, 0x0a, 0xe5, 0x2e, 0x24, 0xd4, 0x7d, 0x8d, 0xcb, 0x98, 0x7a, 0xbd, 0x12, 0x1d, 0x3f, 0x74, 0x6b, 0x5d, 0xe2, 0x30, 0xf2, 0x64, 0x69, 0x60, 0x3f, 0xb0, 0xc4, 0xa8, 0xf6, 0xcd, 0x79, 0x73, 0xd7, 0xda, 0x88, 0x2e, 0xd1, 0xd6, 0xe4, 0xd9, 0xc5, 0xa4, 0x6e, 0xc2, 0xc2, 0x19, 0x40, 0xad, 0x33, 0x89, 0xa1, 0x86, 0x01, 0x4e, 0xe9, 0x72, 0x78, 0xe5, 0x35, 0x09, 0x88, 0xb1, 0x5e, 0xcd, 0x9e, 0xa7, 0x45, 0x6b, 0x3c, 0xb5, 0x5e, 0x4d, 0x30, 0x93, 0xf1, 0x3a, 0x87, 0x5b, 0x50, 0xd6, 0x51, 0x63, 0x78, 0xec, 0xaf, 0x58, 0xd7, 0x52, 0xc6, 0x37, 0x4e, 0xd1, 0x56, 0x38, 0x40, 0x93, 0x11, 0xfc, 0xd3, 0x79, 0xd1, 0x22, 0xc8, 0xd8, 0xc5, 0x9b, 0x86, 0xf4, 0xe8, 0xdc, 0x46, 0xad, 0xb7, 0x30, 0xa9, 0x33, 0x84, 0x6e, 0x0b, 0xd2, 0x48, 0xd3, 0x60, 0x82, 0x52, 0xd9, 0x70, 0xb5, 0x04, 0xc8, 0x13, 0xc6, 0xde, 0xa9, 0xfc, 0x88, 0xa3, 0xde, 0x64, 0x19, 0x56, 0xdc, 0xa2, 0x91, 0x20, 0x4d, 0x39, 0x0b, 0x6b, 0x39, 0x98, 0x1f, 0x8c, 0x0a, 0x6b, 0xcf, 0xc3, 0x1c, 0xa0, 0x74, 0x44, 0x20, 0x66, 0x2a, 0x9b, 0x35, 0xeb, 0x3f, 0xc2, 0x11, 0xf8, 0x10, 0xa3, 0xe8, 0x06, 0x25, 0x00, 0xb1, 0xe4, 0x9b, 0xdf, 0x85, 0x76, 0x65, 0xff, 0x32, 0xa9, 0xba, 0x76, 0x19, 0x4b, 0xbb, 0x77, 0xfb, 0x9c, 0x15, 0x41, 0x29, 0x64, 0x24, 0x4b, 0x98, 0x65, 0xf7, 0x3d, 0xed, 0x9f, 0x25, 0xb4, 0x9b, 0x42, 0x5a, 0xa2, 0x53, 0xd8, 0x07, 0xd9, 0x81, 0x82, 0x92, 0x76, 0x3a, 0x51, 0x3e, 0xc8, 0x07, 0x47, 0x34, 0x4f, 0xba, 0x0a, 0xcf, 0xe5, 0x93, 0xcc, 0x26, 0xb1, 0x33, 0x0b, 0xb9, 0xad, 0xe6, 0x6c, 0x4e, 0x88, 0xcf, 0x1b, 0xae, 0xd6, 0xd6, 0xe7, 0xb7, 0x50, 0xe6, 0xc7, 0x23, 0x9d, 0x7b, 0xcb, 0xfa, 0x3f, 0xbe, 0x45, 0x40, 0x5a, 0x63, 0xb9, 0x6d, 0x50, 0x34, 0xcc, 0x0c, 0x07, 0xff, 0xc3, 0xb5, 0x08, 0x58, 0x08, 0x1d, 0x19, 0x55, 0xe2, 0xd2, 0xfe, 0x5b, 0xe5, 0xfd, 0xa7, 0xa8, 0x99, 0x69, 0x43, 0x76, 0x8b, 0x05, 0x51, 0x70, 0xb7, 0xfd, 0x52, 0xf0, 0xa3, 0x20, 0x97, 0xfe, 0x1b, 0x7a, 0x94, 0xf1, 0xbf, 0x87, 0x9a, 0x0c, 0xba, 0xbe, 0x10, 0xac, 0x9a, 0x7c, 0xc1, 0xf9, 0xf5, 0x50, 0x68, 0xc4, 0x8e, 0x3c, 0xcc, 0x06, 0x51, 0x36, 0x43, 0x10, 0x18, 0xd3, 0x8d, 0x20, 0x10, 0x9d, 0xc9, 0x5d, 0x99, 0xcc, 0x2b, 0xbe, 0x7c, 0x62, 0x7a, 0xb1, 0xa8, 0xaa, 0x5f, 0x43, 0x16, 0x13, 0xb7, 0x90, 0xc2, 0xe6, 0x52, 0x6c, 0xf0, 0x4f, 0xdc, 0x9e, 0x55, 0xf5, 0x1c, 0x05, 0x5f, 0x3c, 0x20, 0x45, 0xa6, 0x75, 0xe3, 0xa1, 0xe5, 0x4b, 0xa4, 0x09, 0xf7, 0xae, 0xfa, 0x7e, 0x4a, 0xa0, 0x7a, 0x2b, 0xbd, 0x5e, 0x4a, 0xb1, 0x63, 0x21, 0xa9, 0xf0, 0x99, 0x69, 0x43, 0x91, 0xfd, 0xa6, 0x8a, 0x74, 0x58, 0x1e, 0x2f, 0x1f, 0x11, 0xdd, 0x9a, 0x6d, 0x52, 0x4b, 0x1b, 0x83, 0x26, 0x0d, 0xb5, 0x7b, 0x72, 0xef, 0x29, 0xc2, 0x8c, 0x8d, 0xb5, 0xc3, 0x7f, 0xd1, 0x85, 0xb7, 0xc2, 0xd8, 0x45, 0x50, 0x90, 0x65, 0x3a, 0xf3, 0x32, 0xdb, 0xc8, 0x2b, 0xfb, 0x0d, 0xb5, 0xdc, 0xca, 0xbf, 0xb6, 0xb2, 0x8c, 0xaa, 0x35, 0x05, 0x25, 0xcb, 0x54, 0xcc, 0x84, 0xe5, 0x53, 0xe1, 0xcf, 0x39, 0x54, 0xb6, 0x12, 0x39, 0x3e, 0x79, 0x93, 0xff, 0x7e, 0x8b, 0xf5, 0xec, 0xe3, 0xf1, 0x45, 0x09, 0x4d, 0xd7, 0xa2, 0x7c, 0xb4, 0x7f, 0x22, 0x74, 0x76, 0xf2, 0x89, 0x23, 0x52, 0x51, 0xf7, 0x72, 0xb3, 0xba, 0x77, 0x6b, 0xb7, 0x73, 0xaf, 0x0c, 0xc5, 0xf7, 0x86, 0xa3, 0xfb, 0x9e, 0x93, 0x1a, 0x53, 0x0c, 0xfb, 0xd8, 0x91, 0xcb, 0x5a, 0x5d, 0xfe, 0x25, 0x16, 0x9e, 0xf9, 0x33, 0xcc, 0x82, 0xc9, 0x08, 0x0f, 0x32, 0x39, 0x61, 0xa1, 0x20, 0x15, 0x8e, 0x4b, 0xbd, 0x71, 0x13, 0x4e, 0xf1, 0xf9, 0x01, 0x08, 0xb8, 0x15, 0xc2, 0x89, 0xd4, 0xe9, 0xa9, 0x58, 0x9e, 0xc6, 0x4c, 0x05, 0xfb, 0xb4, 0x2a, 0x21, 0xb2, 0x3d, 0x16, 0xe2, 0xa6, 0x46, 0x78, 0xae, 0xcf, 0xab, 0x65, 0xcd, 0x9a, 0x80, 0x6c, 0x59, 0x81, 0x03, 0xd4, 0x1f, 0x70, 0x09, 0x77, 0x63, 0x17, 0x83, 0x1f, 0xed, 0xdd, 0x1c, 0x90, 0x02, 0xd4, 0xa9, 0x22, 0x04, 0xf9, 0x7b, 0xa9, 0x49, 0x0c, 0x61, 0x46, 0x98, 0x03, 0x07, 0x21, 0x02, 0x52, 0x4b, 0x9d, 0xf5, 0x19, 0x00, 0x5f, 0x98, 0xaf, 0x54, 0xd6, 0x0c, 0xa5, 0xba, 0x60, 0xb5, 0x5b, 0x09, 0x6a, 0x4a, 0xc2, 0xb1, 0x6e, 0xb9, 0xcc, 0x81, 0x97, 0x3c, 0x31, 0x35, 0xd3, 0xfb, 0x68, 0x73, 0xdd, 0x96, 0x53, 0x80, 0x0a, 0x22, 0xbb, 0x5d, 0x0d, 0x61, 0x17, 0xca, 0x5d, 0x91, 0x65, 0x53, 0xbe, 0x39, 0xc9, 0xa3, 0xb5, 0x11, 0xeb, 0x3d, 0xb7, 0x30, };
20952 static const u8 ed25519_911_test_vectors_expected_sig[] = {
20953 	0xbd, 0x45, 0xb3, 0xc0, 0x45, 0x85, 0x0e, 0xbe, 0xf7, 0xb8, 0x0d, 0xd1, 0xde, 0xab, 0x48, 0x03, 0x7b, 0x13, 0x46, 0xc7, 0x1d, 0xea, 0xf1, 0xe5, 0x8f, 0x2a, 0x7b, 0x16, 0x26, 0x74, 0xf9, 0x4d, 0x1e, 0xf3, 0xd4, 0x23, 0x90, 0x37, 0x33, 0x0b, 0xd6, 0x33, 0x5f, 0xe4, 0xf0, 0x14, 0x92, 0x50, 0x90, 0x1f, 0x00, 0xa8, 0xe4, 0x6b, 0xe5, 0xfa, 0x0a, 0xae, 0xc6, 0x9d, 0xe0, 0x6d, 0x73, 0x04, };
20954 static const ec_test_case ed25519_911_test_case = {
20955 	.name = "EDDSA25519-SHA512/wei25519 911",
20956 	.ec_str_p = &wei25519_str_params,
20957 	.priv_key = ed25519_911_test_vectors_priv_key,
20958 	.priv_key_len = sizeof(ed25519_911_test_vectors_priv_key),
20959 	.nn_random = NULL,
20960 	.hash_type = SHA512,
20961 	.msg = (const char *)ed25519_911_test_vectors_message,
20962 	.msglen = sizeof(ed25519_911_test_vectors_message),
20963 	.sig_type = EDDSA25519,
20964 	.exp_sig = ed25519_911_test_vectors_expected_sig,
20965 	.exp_siglen = sizeof(ed25519_911_test_vectors_expected_sig),
20966 	.adata = NULL,
20967 	.adata_len = 0
20968 };
20969 
20970 /************************************************/
20971 static const u8 ed25519_912_test_vectors_priv_key[] = {
20972 	0x12, 0x38, 0x0c, 0x45, 0xa7, 0x9a, 0xde, 0x0f, 0x48, 0x3c, 0x88, 0x1a, 0xaa, 0x37, 0x30, 0x43, 0x8b, 0x08, 0x35, 0x90, 0xf4, 0x04, 0xdc, 0x9e, 0x60, 0x1f, 0x76, 0x15, 0xf3, 0x75, 0xa6, 0x28, };
20973 static const u8 ed25519_912_test_vectors_message[] = {
20974 	0x68, 0x45, 0x23, 0xc2, 0xe7, 0xfa, 0x8b, 0x4b, 0xd7, 0x54, 0x8c, 0x4b, 0xac, 0xaa, 0x86, 0x78, 0xa3, 0x30, 0xdb, 0xbb, 0x96, 0x06, 0x32, 0x94, 0x01, 0x66, 0xb2, 0xcc, 0x9a, 0xfc, 0x15, 0x35, 0xc8, 0x0c, 0x11, 0x2c, 0x8d, 0xc4, 0xad, 0xa7, 0x62, 0x92, 0x33, 0xfe, 0x90, 0x90, 0x55, 0x23, 0x7d, 0x51, 0x3e, 0x29, 0x2a, 0xf1, 0x5a, 0xd7, 0x69, 0x2f, 0x11, 0x5a, 0xa0, 0x92, 0xda, 0x65, 0x75, 0x32, 0xf5, 0x18, 0x99, 0xc3, 0xf7, 0xf5, 0xd9, 0xd4, 0x07, 0xed, 0x5c, 0x16, 0x3e, 0xb3, 0x95, 0x04, 0x80, 0xa4, 0x12, 0x2a, 0x09, 0x92, 0x98, 0x1f, 0x07, 0x7b, 0xc8, 0x67, 0xf9, 0x06, 0x07, 0x54, 0x07, 0xba, 0x98, 0x49, 0xc4, 0xea, 0x04, 0x73, 0xce, 0x54, 0x0a, 0x79, 0x67, 0x44, 0xef, 0xa3, 0x86, 0x03, 0x78, 0xe1, 0xb8, 0x93, 0x43, 0xe5, 0x83, 0xd0, 0x80, 0x7e, 0x5a, 0x67, 0xc4, 0xd5, 0xbd, 0x7c, 0xe6, 0x41, 0x29, 0xfe, 0x90, 0x2b, 0x8c, 0xfa, 0xbd, 0x2c, 0x21, 0xfa, 0x3d, 0x2a, 0x10, 0xe9, 0xbf, 0x9e, 0xa5, 0xe5, 0x47, 0x3a, 0xe2, 0x50, 0xc9, 0x16, 0x05, 0x09, 0x97, 0x26, 0x78, 0xf9, 0xa7, 0x40, 0xe6, 0xca, 0xdb, 0x3b, 0x52, 0xf5, 0x02, 0xfa, 0x61, 0x6c, 0xff, 0xae, 0x1d, 0xef, 0x89, 0x3d, 0x54, 0xe4, 0x1e, 0x54, 0xd3, 0x26, 0x46, 0x4c, 0x9f, 0x43, 0x5c, 0x63, 0x50, 0x5f, 0xb1, 0x5e, 0x3e, 0xea, 0xf5, 0x02, 0x1c, 0x65, 0xdc, 0xd0, 0x10, 0xf8, 0x40, 0xaa, 0xb3, 0x17, 0xc8, 0x60, 0x5d, 0xfb, 0x1a, 0x0c, 0x8a, 0x3d, 0x55, 0x49, 0x86, 0x1b, 0x69, 0xaf, 0x2c, 0x93, 0xd8, 0x6c, 0x98, 0x1d, 0xf3, 0xa5, 0x1c, 0x5b, 0xf5, 0x78, 0x5c, 0x2f, 0x85, 0x26, 0x10, 0xe4, 0x4f, 0xa4, 0xff, 0x1c, 0x71, 0x61, 0x15, 0x2e, 0x56, 0x18, 0x38, 0x47, 0x44, 0xfe, 0x83, 0xba, 0xbf, 0x0b, 0xcb, 0x75, 0x61, 0x78, 0x9a, 0x02, 0x31, 0x25, 0xf6, 0x24, 0x2a, 0x18, 0x3c, 0xac, 0x95, 0x49, 0xc9, 0x32, 0x73, 0x3a, 0x86, 0x8a, 0xa1, 0x82, 0x65, 0x6e, 0x2b, 0xa0, 0xa8, 0xc0, 0xbe, 0x10, 0x69, 0x96, 0xa8, 0x5c, 0xeb, 0xf1, 0xbd, 0xad, 0x12, 0x3b, 0x98, 0x2b, 0x4e, 0x05, 0x55, 0x10, 0x87, 0x94, 0x82, 0x02, 0x1d, 0xae, 0xa9, 0xd8, 0xf2, 0x6c, 0x58, 0x8e, 0x6c, 0xd1, 0x01, 0x26, 0xcb, 0x31, 0x96, 0x88, 0x03, 0x56, 0xbe, 0xe8, 0xf2, 0x98, 0xbc, 0xa3, 0x06, 0xec, 0x56, 0x99, 0xc7, 0x57, 0x6b, 0x76, 0x50, 0x87, 0xc2, 0x53, 0xa6, 0x02, 0x14, 0x01, 0x0c, 0x6e, 0xd7, 0x0d, 0x87, 0x1c, 0xfc, 0x87, 0x38, 0x01, 0x8a, 0x0e, 0xdb, 0x57, 0xf1, 0x06, 0xb4, 0x21, 0x8d, 0x85, 0x5e, 0xab, 0x2c, 0x91, 0xf3, 0x9f, 0x85, 0x8b, 0x3f, 0x25, 0x90, 0x56, 0x31, 0xa0, 0xee, 0xe2, 0x98, 0x56, 0xfd, 0x34, 0xf7, 0xb8, 0xc9, 0xba, 0x51, 0xc1, 0xc4, 0xc6, 0xa7, 0x35, 0xd6, 0xc7, 0xa1, 0x3d, 0x22, 0x0d, 0x7a, 0x56, 0x6c, 0x3f, 0x50, 0x6c, 0x72, 0xbc, 0x74, 0x17, 0xab, 0x37, 0xf0, 0xd6, 0xd7, 0x96, 0xff, 0xc7, 0x1d, 0xf9, 0xdc, 0x7c, 0x6e, 0x13, 0x7d, 0xa5, 0x6b, 0x7a, 0x3e, 0x10, 0xcf, 0x0b, 0x1a, 0xbb, 0x3f, 0xfb, 0x70, 0xbc, 0x66, 0x29, 0x3b, 0x5d, 0x75, 0xb4, 0x05, 0xed, 0x8b, 0xec, 0x0d, 0x6f, 0xcd, 0x06, 0x92, 0x5c, 0x38, 0x11, 0x68, 0xac, 0x18, 0x8d, 0x0b, 0x8a, 0x1a, 0xf0, 0x83, 0x9f, 0x5b, 0xde, 0x84, 0x3b, 0x69, 0x91, 0xe5, 0xa5, 0xd6, 0xcd, 0x66, 0xfe, 0x6b, 0x0f, 0xde, 0x86, 0x7c, 0x08, 0x6e, 0xd4, 0x38, 0x76, 0x91, 0x9a, 0x1b, 0x72, 0x33, 0xd8, 0xd7, 0xe1, 0xd2, 0x74, 0x2f, 0x61, 0xc7, 0x7d, 0x8e, 0x59, 0x91, 0x68, 0x9c, 0x83, 0x28, 0x67, 0x66, 0x55, 0xb7, 0x6a, 0x37, 0x50, 0x56, 0x0e, 0x75, 0xd1, 0xc7, 0xe8, 0x5e, 0x3c, 0x00, 0x85, 0x05, 0x93, 0x31, 0x09, 0x4b, 0xba, 0x57, 0x10, 0x03, 0x2c, 0xf6, 0x79, 0xa5, 0x25, 0xc7, 0x8b, 0x31, 0x70, 0x0e, 0x6d, 0x91, 0xf7, 0x52, 0x94, 0xc4, 0x22, 0x48, 0x92, 0x97, 0xe1, 0x73, 0x59, 0x43, 0xe4, 0x17, 0xfc, 0xd3, 0x55, 0x80, 0x58, 0x2f, 0xdd, 0x02, 0x39, 0xb5, 0x11, 0x46, 0x53, 0x0c, 0xc0, 0x9d, 0x83, 0xb2, 0x8f, 0x0a, 0x1d, 0x64, 0x22, 0x20, 0xdf, 0xb9, 0x9b, 0xad, 0x62, 0xf3, 0x95, 0x41, 0x03, 0x50, 0x81, 0xd6, 0x5d, 0x77, 0x8d, 0xdf, 0x32, 0x39, 0xba, 0x0e, 0x6f, 0xa9, 0x91, 0x4b, 0x17, 0xb3, 0x97, 0xa5, 0x34, 0xcb, 0x8f, 0xd3, 0xb4, 0xff, 0x42, 0xa8, 0xd8, 0xc8, 0xee, 0x66, 0x15, 0x3f, 0xbb, 0x1f, 0xf0, 0xfa, 0x54, 0xf7, 0xbd, 0x03, 0x27, 0x85, 0x16, 0xe6, 0x34, 0x1a, 0xf8, 0x0f, 0xcd, 0x1f, 0xce, 0xe7, 0x0c, 0x35, 0x9d, 0x20, 0x53, 0x68, 0xac, 0x49, 0x0d, 0x75, 0xa3, 0x54, 0x51, 0x2d, 0xa4, 0x6b, 0xa7, 0x63, 0x4c, 0x15, 0xb2, 0x84, 0xb2, 0x44, 0x77, 0x80, 0x8f, 0x17, 0x63, 0x33, 0x60, 0xa4, 0xb4, 0x9f, 0xb3, 0xbc, 0xaa, 0x84, 0x18, 0x41, 0xcf, 0x92, 0x41, 0x7e, 0xb2, 0x4c, 0xe4, 0x82, 0xd5, 0xa2, 0x4b, 0xfd, 0x2d, 0xac, 0x37, 0x22, 0x31, 0xda, 0x53, 0x9a, 0x05, 0x42, 0x00, 0x02, 0xff, 0x7a, 0x20, 0xc4, 0x76, 0x09, 0x7d, 0xa0, 0x6f, 0x59, 0xf0, 0x33, 0x14, 0xe6, 0x05, 0x9f, 0xad, 0x88, 0xc5, 0x0c, 0x3b, 0xaa, 0xc0, 0x3c, 0xef, 0xa7, 0xcd, 0x82, 0x11, 0xd2, 0x46, 0x1b, 0x16, 0x60, 0xea, 0x6b, 0xcf, 0x47, 0x68, 0x38, 0xc9, 0x1a, 0x10, 0x07, 0x4e, 0xb4, 0xb4, 0x0e, 0x6e, 0x97, 0x4a, 0x94, 0x5a, 0x67, 0xf6, 0xee, 0x69, 0x04, 0x23, 0x1e, 0xf0, 0x41, 0x88, 0xf1, 0xea, 0xd5, 0xba, 0xf3, 0x56, 0x94, 0xef, 0xe3, 0x01, 0xed, 0xc7, 0xe8, 0x66, 0xda, 0x23, 0xb5, 0xa6, 0xc5, 0x8f, 0x01, 0xb2, 0xa5, 0x2c, 0xf3, 0xab, 0x80, 0x5e, 0xdc, 0x5c, 0x13, 0x68, 0x62, 0x6b, 0x95, 0xb9, 0x4e, 0xb4, 0x64, 0x5b, 0x69, 0x3e, 0xc8, 0x80, 0xf2, 0xb8, 0x11, 0x7a, 0x69, 0x3a, 0xfb, 0xdc, 0xd2, 0x48, 0x24, 0x31, 0x89, 0x0f, 0x41, 0x0b, 0xc5, 0x80, 0x53, 0x0f, 0xef, 0x37, 0x58, 0x79, 0xc2, 0xe4, 0x60, 0x49, 0xca, 0x89, 0x1a, 0x2c, 0x3e, 0xcd, 0x60, 0x43, 0xae, 0x80, 0xd8, 0xaf, 0x34, 0x66, 0x34, 0x67, 0x4c, 0x6d, 0xfe, 0x90, 0x59, 0x97, 0xde, 0x5d, 0x05, 0xd6, 0x20, 0x09, 0xee, 0xed, 0x27, 0x75, 0x02, 0xfb, 0x5a, 0x5a, 0x31, 0x55, 0xee, 0xee, 0xb6, 0x73, 0x48, 0xb6, 0x0d, 0x89, 0xa3, 0x4a, 0x78, 0x12, 0x63, 0x9f, 0x54, 0x1f, 0xfe, };
20975 static const u8 ed25519_912_test_vectors_expected_sig[] = {
20976 	0x02, 0xb2, 0x51, 0x74, 0xa3, 0xdd, 0x52, 0x19, 0xed, 0x48, 0xb2, 0xc9, 0x4c, 0xa2, 0x12, 0xb6, 0x3a, 0x6a, 0x3a, 0x25, 0x97, 0x70, 0x3c, 0x07, 0xb7, 0xf0, 0xc9, 0x65, 0xc3, 0xc6, 0xac, 0x2e, 0xb4, 0x50, 0xef, 0xe3, 0x87, 0x16, 0xa2, 0xa2, 0x8b, 0x3f, 0x89, 0x84, 0x6b, 0x06, 0xeb, 0xdc, 0xa4, 0xbd, 0x09, 0xaa, 0x58, 0x1f, 0x24, 0xe8, 0x4d, 0x80, 0xfc, 0x10, 0xac, 0x1a, 0x00, 0x0a, };
20977 static const ec_test_case ed25519_912_test_case = {
20978 	.name = "EDDSA25519-SHA512/wei25519 912",
20979 	.ec_str_p = &wei25519_str_params,
20980 	.priv_key = ed25519_912_test_vectors_priv_key,
20981 	.priv_key_len = sizeof(ed25519_912_test_vectors_priv_key),
20982 	.nn_random = NULL,
20983 	.hash_type = SHA512,
20984 	.msg = (const char *)ed25519_912_test_vectors_message,
20985 	.msglen = sizeof(ed25519_912_test_vectors_message),
20986 	.sig_type = EDDSA25519,
20987 	.exp_sig = ed25519_912_test_vectors_expected_sig,
20988 	.exp_siglen = sizeof(ed25519_912_test_vectors_expected_sig),
20989 	.adata = NULL,
20990 	.adata_len = 0
20991 };
20992 
20993 /************************************************/
20994 static const u8 ed25519_913_test_vectors_priv_key[] = {
20995 	0xd1, 0xb3, 0x43, 0x0d, 0x4e, 0x63, 0xaa, 0xbf, 0xa9, 0xef, 0x96, 0xbc, 0xba, 0xf1, 0xfa, 0x6a, 0x9e, 0xb5, 0x21, 0x9d, 0xd4, 0x4d, 0xf3, 0xb1, 0xa6, 0x15, 0x63, 0xdf, 0xfe, 0x1c, 0xcb, 0x28, };
20996 static const u8 ed25519_913_test_vectors_message[] = {
20997 	0x07, 0x6c, 0x0c, 0x87, 0x62, 0xe4, 0xbc, 0x00, 0x3c, 0x36, 0x0a, 0x12, 0xa1, 0x95, 0x98, 0x05, 0x05, 0x51, 0xd1, 0x6b, 0x4b, 0x8d, 0xa0, 0xfb, 0x9c, 0x4a, 0xfc, 0xc8, 0x1a, 0xdb, 0xe6, 0x19, 0x95, 0xf2, 0x5c, 0xbc, 0x28, 0xdc, 0xa4, 0x20, 0xbf, 0xa9, 0x46, 0x10, 0x54, 0xd3, 0xee, 0x00, 0xad, 0x78, 0x18, 0x3e, 0x7f, 0x26, 0xdf, 0x68, 0x98, 0xaf, 0x9a, 0x4d, 0x22, 0x5f, 0xca, 0xb6, 0x7c, 0x04, 0x2e, 0x9a, 0x13, 0x52, 0x5d, 0x1f, 0x75, 0xff, 0x0e, 0x3d, 0x8d, 0xa8, 0x08, 0x96, 0xb7, 0x28, 0xf3, 0xe2, 0xdb, 0x65, 0x94, 0x4a, 0xe0, 0x71, 0x7d, 0x77, 0x59, 0x90, 0xb5, 0x9e, 0x5b, 0x70, 0x43, 0x4b, 0xd4, 0xb3, 0xee, 0x45, 0x2f, 0x10, 0xac, 0x06, 0x10, 0x57, 0x0b, 0x38, 0x22, 0x08, 0x32, 0x96, 0x8f, 0x54, 0x4d, 0x3e, 0x4d, 0x11, 0x9b, 0x1d, 0x4b, 0x50, 0x15, 0xc6, 0xcd, 0xf4, 0xcf, 0x22, 0x0b, 0x56, 0xb5, 0xc0, 0xcc, 0xd8, 0xe3, 0x98, 0xd5, 0xe4, 0xa5, 0x8d, 0xa3, 0xb0, 0xe2, 0xb2, 0x70, 0xa5, 0xd3, 0x9b, 0x82, 0xab, 0xb7, 0xf9, 0xd2, 0x7a, 0x41, 0x90, 0x18, 0x55, 0x0b, 0x62, 0x00, 0xae, 0x51, 0xc8, 0x48, 0x82, 0xf0, 0x86, 0xae, 0x7e, 0xa5, 0x35, 0x16, 0x71, 0xb6, 0xdd, 0x96, 0x09, 0x23, 0xad, 0x6b, 0xef, 0xc1, 0x34, 0x09, 0x87, 0x9a, 0x8d, 0xf6, 0x19, 0xbd, 0xf6, 0xc8, 0x8a, 0x6f, 0xe1, 0xec, 0xc0, 0xf0, 0xf3, 0xaa, 0x21, 0x9f, 0xb6, 0x19, 0x02, 0xbe, 0x48, 0xa5, 0x3d, 0xf2, 0xbc, 0x66, 0xc5, 0x6f, 0x1c, 0x1d, 0x17, 0xf7, 0xe6, 0x16, 0x7d, 0x25, 0x51, 0x65, 0xf1, 0x74, 0xba, 0xa9, 0xca, 0xf5, 0x3c, 0x73, 0xcb, 0xbb, 0x7c, 0xc2, 0xc7, 0xc0, 0x87, 0xf4, 0x3a, 0xbe, 0x2a, 0xed, 0x5a, 0x21, 0xfe, 0x42, 0x90, 0xb8, 0xd6, 0x79, 0x60, 0xa8, 0xa9, 0xcb, 0xc2, 0xa5, 0x7a, 0xbe, 0x22, 0x65, 0x4d, 0xc1, 0x84, 0xcf, 0xf9, 0x16, 0x8b, 0xb6, 0x97, 0x27, 0x03, 0x75, 0xfe, 0x88, 0xd5, 0xc4, 0x9c, 0xf9, 0x5b, 0x06, 0xcf, 0x9d, 0x0d, 0xac, 0x81, 0xfb, 0xd9, 0xc0, 0xd7, 0xb8, 0x2d, 0x05, 0xed, 0x2c, 0x3f, 0xd4, 0x9c, 0xcc, 0x29, 0x40, 0x44, 0x41, 0x71, 0x25, 0x45, 0xf9, 0xa9, 0x91, 0xe4, 0xf0, 0xdd, 0xb6, 0x21, 0x90, 0x83, 0x82, 0x96, 0xf9, 0x67, 0x29, 0x9a, 0x38, 0x60, 0x72, 0x26, 0xd8, 0xa6, 0x81, 0xf0, 0xa8, 0xf3, 0xc4, 0x38, 0x4f, 0xd1, 0x8b, 0x30, 0x25, 0x7c, 0x46, 0x3c, 0x0a, 0xbd, 0x0f, 0x4f, 0x6f, 0x12, 0x25, 0xa5, 0x1b, 0x76, 0x2d, 0x6d, 0x0a, 0xc7, 0xd5, 0x9c, 0xd2, 0xef, 0xd6, 0x98, 0xb8, 0xd1, 0x3e, 0x23, 0xd7, 0x04, 0x09, 0xf6, 0xb0, 0x7d, 0x69, 0x5c, 0x16, 0x71, 0xcd, 0x6f, 0x59, 0x44, 0x3b, 0x1d, 0xb0, 0xab, 0x35, 0xb9, 0xdc, 0x06, 0x40, 0xe4, 0xc6, 0xd1, 0xac, 0x50, 0x47, 0x5d, 0x28, 0xef, 0x94, 0xf8, 0x17, 0x90, 0xe2, 0xe5, 0xb2, 0x54, 0x55, 0x14, 0xb2, 0xa4, 0x9c, 0x5c, 0x21, 0x53, 0x45, 0x9b, 0xe5, 0x40, 0x89, 0x0f, 0x53, 0xbc, 0x18, 0xe4, 0xa1, 0x6d, 0xcb, 0x5d, 0xcf, 0x50, 0xf3, 0x7a, 0x95, 0xc6, 0x06, 0xfd, 0xf4, 0x85, 0x98, 0xe5, 0x2a, 0xf3, 0x17, 0x9a, 0x20, 0x48, 0x61, 0x5d, 0x93, 0xd9, 0x7e, 0x05, 0x99, 0xb7, 0x08, 0x8c, 0x11, 0x74, 0xbb, 0x9f, 0x15, 0xe3, 0x70, 0x18, 0xf9, 0x9a, 0xcb, 0xce, 0x5b, 0x13, 0x02, 0xf8, 0xd8, 0xce, 0x2a, 0xb8, 0x54, 0x37, 0xfe, 0xeb, 0x0c, 0xaa, 0x77, 0x84, 0xdc, 0x83, 0xc9, 0xe7, 0xc3, 0x6f, 0xe0, 0x59, 0x90, 0x6b, 0x03, 0x0a, 0x86, 0xa3, 0xde, 0xd0, 0xab, 0x9d, 0x8b, 0x73, 0x52, 0x9d, 0x47, 0x5e, 0x66, 0x1a, 0x08, 0x08, 0xd6, 0xd3, 0xf0, 0x90, 0x7f, 0x85, 0x28, 0x87, 0x3f, 0x08, 0xd5, 0x74, 0x8b, 0xe1, 0xd6, 0x97, 0x12, 0xe8, 0x52, 0x62, 0xd7, 0x7b, 0xdf, 0x13, 0xbf, 0xd1, 0x8a, 0x5c, 0xde, 0x6f, 0x71, 0x46, 0x26, 0x73, 0xab, 0x29, 0xb1, 0x61, 0x73, 0x15, 0xa9, 0xa6, 0xe9, 0x36, 0xa8, 0xe8, 0x1a, 0x8e, 0x43, 0xbd, 0x0f, 0x66, 0x44, 0xa5, 0xc6, 0x9e, 0xaa, 0xac, 0x89, 0xbd, 0xaa, 0x99, 0xcc, 0xa8, 0x03, 0x83, 0x37, 0x05, 0xe5, 0xaf, 0xa6, 0x9b, 0x3b, 0xd1, 0xd0, 0x25, 0x2b, 0x85, 0x46, 0x50, 0xf2, 0x19, 0x97, 0x91, 0xe6, 0xac, 0xa7, 0xc7, 0x5a, 0x86, 0x12, 0x83, 0x21, 0x62, 0x33, 0xa2, 0x63, 0x3a, 0x6a, 0xef, 0xf9, 0xd3, 0x01, 0xee, 0x5c, 0xb4, 0xdd, 0x72, 0xc0, 0x8a, 0x45, 0xcd, 0xae, 0x8f, 0x54, 0x58, 0xc0, 0x95, 0xb2, 0x2e, 0x75, 0x9c, 0x43, 0xb4, 0x9b, 0x98, 0xe9, 0xf4, 0xcb, 0x33, 0xd5, 0xde, 0xa8, 0x79, 0x44, 0x9e, 0xae, 0x73, 0xcb, 0x87, 0x4c, 0x73, 0x59, 0x43, 0x25, 0xeb, 0xf6, 0x8c, 0x1e, 0xd4, 0x06, 0x4b, 0x6f, 0x61, 0xab, 0x2f, 0x01, 0x4a, 0x2f, 0x19, 0xf3, 0x2e, 0x12, 0xb3, 0x3c, 0x5e, 0xaa, 0x8a, 0x29, 0x20, 0x4d, 0x5e, 0xba, 0x58, 0xdc, 0x07, 0x50, 0x72, 0xfe, 0x39, 0x9b, 0xe7, 0xd1, 0xab, 0x18, 0x08, 0x20, 0x8f, 0xb4, 0x08, 0x12, 0x3b, 0xdc, 0x0b, 0x4a, 0xb3, 0x13, 0x0f, 0x9f, 0x70, 0x6d, 0xc3, 0xeb, 0x19, 0x4b, 0x60, 0x5e, 0x73, 0xa3, 0x2f, 0x12, 0x5a, 0xe4, 0x91, 0x28, 0x5c, 0xe6, 0x03, 0x9f, 0xb6, 0x23, 0xc3, 0x8b, 0x81, 0xd5, 0xab, 0xa0, 0xf5, 0x59, 0x9f, 0x6c, 0x86, 0xe8, 0x72, 0x48, 0x6b, 0x4e, 0x96, 0x49, 0xda, 0xff, 0xe3, 0xa3, 0xd0, 0x6c, 0xb0, 0x73, 0xdd, 0x3b, 0xc6, 0xf4, 0xe1, 0x0a, 0x18, 0x70, 0x0e, 0x45, 0x72, 0x2d, 0x78, 0xa6, 0xb0, 0x97, 0x2d, 0xc9, 0x4d, 0x5c, 0x7a, 0x7b, 0x66, 0x41, 0x75, 0x7b, 0x79, 0x60, 0x75, 0x71, 0x9d, 0x7b, 0x8e, 0xc3, 0x6a, 0x1e, 0x79, 0x6f, 0xb5, 0xf8, 0xfe, 0x6f, 0x1b, 0x79, 0xa0, 0x85, 0x9c, 0xb4, 0xd6, 0x7c, 0xec, 0x05, 0xed, 0x91, 0x4c, 0xfa, 0x32, 0xc1, 0xdd, 0xfe, 0x21, 0x8e, 0xf9, 0x63, 0x43, 0x6c, 0x3a, 0x11, 0x48, 0xac, 0x2c, 0xf9, 0x09, 0xdf, 0x73, 0x59, 0x89, 0x06, 0x57, 0x46, 0x3a, 0x4e, 0xa2, 0x5f, 0xed, 0x59, 0x61, 0x8a, 0x06, 0x81, 0xa1, 0x21, 0x7e, 0x22, 0xd6, 0x4e, 0xf9, 0xd9, 0xb4, 0x55, 0x9d, 0x0a, 0x0f, 0x6b, 0x3c, 0xe8, 0xd8, 0x47, 0x93, 0x0b, 0x23, 0x23, 0x01, 0xca, 0xf4, 0x4c, 0xdf, 0x7a, 0x3f, 0x18, 0xa2, 0xac, 0x13, 0x0b, 0x92, 0xcf, 0xd9, 0xc0, 0x33, 0x60, 0x55, 0x7b, 0x5f, 0x7c, 0x47, 0x75, 0x46, 0x2a, 0x10, 0x71, 0xf7, 0x03, 0x44, 0xc7, 0x18, 0x37, 0x4b, };
20998 static const u8 ed25519_913_test_vectors_expected_sig[] = {
20999 	0x4c, 0xb6, 0xff, 0x5d, 0xd7, 0x06, 0xb1, 0xae, 0x81, 0x6c, 0xdb, 0xaf, 0x9e, 0x9e, 0x1e, 0xdc, 0x80, 0xa6, 0x62, 0x84, 0xf9, 0x46, 0x52, 0xd5, 0x0e, 0xc1, 0x4e, 0x28, 0x3b, 0x2a, 0xdc, 0x59, 0x2f, 0xd0, 0x84, 0x33, 0x71, 0x44, 0xff, 0xa7, 0x12, 0xdc, 0x34, 0xce, 0x8e, 0x61, 0x06, 0x68, 0xa6, 0x5e, 0x96, 0x9f, 0x05, 0xce, 0xb5, 0x47, 0x86, 0x30, 0x4d, 0x0d, 0x58, 0xd3, 0x1a, 0x08, };
21000 static const ec_test_case ed25519_913_test_case = {
21001 	.name = "EDDSA25519-SHA512/wei25519 913",
21002 	.ec_str_p = &wei25519_str_params,
21003 	.priv_key = ed25519_913_test_vectors_priv_key,
21004 	.priv_key_len = sizeof(ed25519_913_test_vectors_priv_key),
21005 	.nn_random = NULL,
21006 	.hash_type = SHA512,
21007 	.msg = (const char *)ed25519_913_test_vectors_message,
21008 	.msglen = sizeof(ed25519_913_test_vectors_message),
21009 	.sig_type = EDDSA25519,
21010 	.exp_sig = ed25519_913_test_vectors_expected_sig,
21011 	.exp_siglen = sizeof(ed25519_913_test_vectors_expected_sig),
21012 	.adata = NULL,
21013 	.adata_len = 0
21014 };
21015 
21016 /************************************************/
21017 static const u8 ed25519_914_test_vectors_priv_key[] = {
21018 	0x03, 0x3e, 0x00, 0x3d, 0x7a, 0xab, 0x7b, 0xc7, 0xfc, 0x8a, 0xc2, 0x04, 0xc7, 0x33, 0x79, 0x9a, 0xe5, 0x53, 0xc3, 0xfe, 0xc5, 0x3f, 0x10, 0xdb, 0xf7, 0x95, 0xb5, 0xf4, 0xb8, 0x7f, 0x1c, 0x95, };
21019 static const u8 ed25519_914_test_vectors_message[] = {
21020 	0x59, 0x6a, 0xa2, 0xc4, 0x0b, 0x33, 0x18, 0x87, 0x89, 0x38, 0xeb, 0xc1, 0x38, 0xdb, 0x27, 0x4b, 0xb3, 0x8a, 0x52, 0x01, 0xeb, 0x7c, 0xaf, 0x87, 0x5e, 0x6c, 0x64, 0x57, 0x91, 0xda, 0xe0, 0x12, 0xbd, 0xef, 0xd4, 0x85, 0xe6, 0xbd, 0x9d, 0x84, 0x99, 0xc4, 0x2a, 0x2a, 0xe8, 0x6c, 0xf3, 0x2b, 0x18, 0x00, 0x2e, 0x76, 0xbb, 0x58, 0x2c, 0xca, 0x0d, 0xec, 0x48, 0x15, 0xde, 0xd8, 0xa1, 0x21, 0x1f, 0x8f, 0xc8, 0x85, 0x7f, 0xce, 0x1d, 0x57, 0xf6, 0x15, 0x1d, 0x88, 0x78, 0x7b, 0x97, 0x8f, 0xab, 0x56, 0xbf, 0x92, 0x6b, 0x15, 0x33, 0xe1, 0x94, 0x99, 0xe8, 0xbb, 0x99, 0x15, 0x8c, 0xdd, 0x6e, 0x98, 0x0f, 0x6b, 0xa5, 0x43, 0xae, 0x83, 0x1f, 0x9d, 0xd1, 0x34, 0xb0, 0xfe, 0x6d, 0x5c, 0x24, 0x88, 0x7d, 0xc7, 0xa8, 0xd4, 0x78, 0x1d, 0xd9, 0xb7, 0xfc, 0x5d, 0xc9, 0x46, 0x4b, 0x04, 0x5c, 0xbf, 0x9d, 0x1e, 0xf5, 0x03, 0x6b, 0x5b, 0xf2, 0x8b, 0x54, 0x9a, 0xc7, 0xaa, 0x8f, 0xaf, 0xb9, 0x1a, 0xdc, 0x9f, 0xec, 0xa7, 0xa1, 0x45, 0x54, 0xd1, 0x10, 0xe3, 0x10, 0xc7, 0x49, 0xe4, 0x85, 0x33, 0xf3, 0x59, 0xc7, 0x0f, 0x05, 0xfb, 0x7a, 0xed, 0xef, 0x13, 0x66, 0x36, 0xb8, 0xef, 0x72, 0x23, 0x88, 0x65, 0x39, 0x86, 0x4e, 0xe5, 0x2d, 0x34, 0x11, 0x8b, 0x4b, 0x8b, 0x74, 0xe0, 0x8f, 0xe6, 0xb6, 0x58, 0x96, 0xe4, 0xb1, 0x9b, 0x6d, 0x7c, 0x3f, 0x25, 0x28, 0x26, 0x55, 0x85, 0x48, 0x17, 0x10, 0xd2, 0xd7, 0x49, 0x48, 0xeb, 0x4b, 0x17, 0x08, 0xa5, 0x0f, 0xa7, 0x40, 0x21, 0xbd, 0xa4, 0xb3, 0x61, 0xbc, 0x68, 0xd2, 0xa5, 0xd2, 0x02, 0x10, 0x9f, 0x8d, 0x28, 0xd8, 0xaa, 0x67, 0xd7, 0x8c, 0x11, 0x36, 0xcd, 0x2e, 0x90, 0x3c, 0x8d, 0xfa, 0x17, 0x5a, 0xf7, 0xbd, 0x96, 0x3b, 0x73, 0xda, 0xe4, 0x95, 0x87, 0x3c, 0xcd, 0xae, 0x62, 0xbf, 0xef, 0x88, 0x56, 0x36, 0xdd, 0x83, 0x55, 0x0f, 0xf9, 0xc0, 0x5c, 0x37, 0xba, 0x33, 0x89, 0xd1, 0x54, 0x36, 0x85, 0xd8, 0x94, 0x83, 0xb0, 0xc1, 0x04, 0xe7, 0xef, 0xbb, 0x77, 0x02, 0xc5, 0xa0, 0x39, 0x8a, 0xc7, 0x20, 0x48, 0x4c, 0x50, 0x93, 0x68, 0x35, 0xee, 0x9d, 0xf2, 0x53, 0xf0, 0xef, 0x8c, 0xbe, 0xf3, 0xe0, 0x7d, 0xe9, 0x69, 0x51, 0x1c, 0xcb, 0xf8, 0x75, 0x57, 0x49, 0x3a, 0x0b, 0x97, 0x2e, 0xf0, 0xe8, 0xe6, 0x29, 0xcf, 0x38, 0x22, 0xdb, 0x21, 0x28, 0x6e, 0xd7, 0x27, 0x66, 0x1b, 0xd3, 0x17, 0x86, 0xfc, 0xa1, 0x42, 0x11, 0x06, 0xda, 0xcd, 0xee, 0x1c, 0xaa, 0xf4, 0x94, 0x54, 0xe8, 0x54, 0x79, 0x4f, 0x70, 0x4d, 0x22, 0xa9, 0x5a, 0x4c, 0x8e, 0x6b, 0x1c, 0x2f, 0xee, 0xa5, 0x7e, 0x56, 0x23, 0x8c, 0x20, 0x96, 0xf1, 0xcc, 0x57, 0x86, 0x47, 0xfe, 0xa5, 0x44, 0xd6, 0x76, 0x44, 0x82, 0xbd, 0xf5, 0x14, 0x88, 0x79, 0xa2, 0x5f, 0x94, 0x3d, 0xb1, 0x6f, 0x29, 0x02, 0x1b, 0x9e, 0xcf, 0xe3, 0xe0, 0x90, 0xb4, 0x25, 0xc8, 0x1c, 0x70, 0x09, 0x84, 0x2e, 0x1c, 0x7a, 0x02, 0xd9, 0x1c, 0xa6, 0x0c, 0x12, 0x01, 0xc3, 0xbd, 0xae, 0x9c, 0x53, 0x73, 0xaf, 0x03, 0xf2, 0xf4, 0xdb, 0xef, 0x40, 0xde, 0x8d, 0x9b, 0x21, 0xfe, 0xd6, 0x8d, 0xee, 0x51, 0x0d, 0xe0, 0x42, 0x72, 0x34, 0xca, 0xa1, 0xc2, 0x0a, 0x3a, 0xe5, 0x49, 0x95, 0x48, 0x34, 0xc9, 0x33, 0x73, 0xd9, 0x13, 0xb8, 0x75, 0x0f, 0x23, 0xa0, 0x37, 0x80, 0xd7, 0xa9, 0x45, 0x4e, 0xd6, 0xfe, 0x51, 0xfd, 0x2d, 0x27, 0x6b, 0x9d, 0x4a, 0xa3, 0x2d, 0xe0, 0x5e, 0x03, 0x81, 0x6e, 0x64, 0xe9, 0x46, 0x6f, 0x4f, 0x0e, 0x22, 0x46, 0x51, 0x42, 0x8d, 0x34, 0x2c, 0xbc, 0xc6, 0x97, 0x17, 0x0a, 0x47, 0xef, 0x99, 0x6b, 0xda, 0xcb, 0xce, 0x91, 0x11, 0x7c, 0xa1, 0xf8, 0x45, 0x5b, 0x25, 0xb2, 0xb0, 0x84, 0x43, 0xe9, 0x91, 0x4e, 0x3d, 0x90, 0xc4, 0x89, 0xee, 0xaa, 0x77, 0x31, 0xdd, 0xea, 0x21, 0x23, 0xd5, 0x5d, 0x67, 0xb1, 0x66, 0x83, 0xfb, 0x7c, 0x82, 0x36, 0xaa, 0xa5, 0xa1, 0xb0, 0xfc, 0xaf, 0x8d, 0x17, 0x00, 0x11, 0xdb, 0xe9, 0xaa, 0x28, 0x57, 0xbe, 0x61, 0x2c, 0xbb, 0x85, 0xef, 0x69, 0xe5, 0x68, 0x31, 0xb4, 0xda, 0xcf, 0xbc, 0x7a, 0x59, 0xb4, 0x65, 0xa6, 0x6d, 0xc7, 0x41, 0x2d, 0xdb, 0x3d, 0x6a, 0xf4, 0xeb, 0xfd, 0x70, 0x58, 0x64, 0xe7, 0xd4, 0xfb, 0x99, 0xa6, 0xcc, 0xb4, 0x8b, 0x11, 0x83, 0x68, 0xfe, 0xab, 0x02, 0xa3, 0x40, 0xc4, 0x32, 0x76, 0x8d, 0xe0, 0xe0, 0x67, 0x87, 0x1e, 0x9e, 0xa8, 0x08, 0xd6, 0xd9, 0x93, 0x81, 0x58, 0x29, 0xe7, 0x1f, 0x6c, 0x04, 0x2b, 0x66, 0x49, 0x95, 0x09, 0x8f, 0xee, 0x94, 0xd5, 0x43, 0xdf, 0x15, 0xe5, 0xb1, 0x69, 0x57, 0x03, 0x1b, 0xd2, 0x38, 0xbc, 0xad, 0xbb, 0xdc, 0xc5, 0x76, 0xaf, 0xfb, 0x64, 0x03, 0x03, 0xd6, 0x9c, 0x5b, 0x25, 0x0b, 0x3a, 0x53, 0x9a, 0xfd, 0x12, 0x7f, 0x7e, 0xe2, 0x60, 0x9e, 0x52, 0xe5, 0x15, 0x4f, 0xbd, 0xff, 0x3e, 0x45, 0xf9, 0xc4, 0x40, 0x66, 0x65, 0x6d, 0x56, 0x1e, 0x0f, 0x64, 0xdf, 0xf2, 0x80, 0x5d, 0xf8, 0x8e, 0x30, 0xa3, 0x80, 0x53, 0x08, 0x22, 0x41, 0x3a, 0x7a, 0xb7, 0x6a, 0x1b, 0x9a, 0x86, 0x53, 0x78, 0xd2, 0x47, 0x63, 0x06, 0x9a, 0x81, 0x40, 0x02, 0xa9, 0xa9, 0xd0, 0x37, 0x95, 0xca, 0x8d, 0x2b, 0x5b, 0xd1, 0x09, 0x03, 0x93, 0xe9, 0xe4, 0xb1, 0xff, 0x7d, 0x7f, 0x0e, 0xb8, 0x4e, 0x71, 0x2a, 0x01, 0x8f, 0x68, 0xc9, 0xe3, 0x84, 0xf0, 0xa0, 0xae, 0xf3, 0x96, 0x78, 0x79, 0x28, 0x4f, 0x40, 0x9e, 0x30, 0xd2, 0x36, 0x50, 0x86, 0xe6, 0x69, 0x52, 0x27, 0x8c, 0xa9, 0xb6, 0xf9, 0x0e, 0x8f, 0x69, 0xa4, 0x8d, 0x9b, 0x28, 0xbb, 0x4c, 0x4e, 0xd6, 0x32, 0xab, 0xca, 0x3a, 0xf4, 0x14, 0x4d, 0xa7, 0x42, 0x2b, 0xf5, 0x19, 0x92, 0xf7, 0x34, 0x73, 0x14, 0x53, 0xc7, 0xa3, 0x3e, 0x15, 0xe5, 0x9f, 0x53, 0x08, 0x12, 0x9d, 0x6a, 0x77, 0x4a, 0x94, 0x58, 0x6f, 0x72, 0x33, 0x11, 0x17, 0x91, 0x76, 0xc0, 0x94, 0x8f, 0xff, 0x4e, 0x30, 0xc1, 0xb9, 0x59, 0x81, 0x2c, 0xac, 0x97, 0x7c, 0xc7, 0x43, 0x47, 0xb0, 0x07, 0x94, 0x0f, 0x2f, 0xb9, 0x62, 0xa9, 0x0d, 0x66, 0x06, 0x6a, 0x6d, 0xe8, 0x80, 0x19, 0x84, 0xde, 0xe4, 0xa5, 0x32, 0xd4, 0xb0, 0xac, 0xd6, 0xdc, 0xaf, 0x06, 0x72, 0x7b, 0xab, 0x70, 0xb3, 0x86, 0x62, 0x32, 0x23, 0x4c, 0x91, 0x00, 0xbf, 0xdc, 0x66, 0x9f, 0x77, 0xca, 0x49, };
21021 static const u8 ed25519_914_test_vectors_expected_sig[] = {
21022 	0xed, 0xb4, 0xe0, 0x20, 0xd6, 0x76, 0xfa, 0xc6, 0xa8, 0x45, 0x53, 0x48, 0x80, 0xbf, 0x61, 0x36, 0x37, 0x4a, 0x8b, 0x7f, 0x2c, 0x53, 0x85, 0xbb, 0x9e, 0xe2, 0x25, 0x38, 0x1f, 0x49, 0x4e, 0xfb, 0x74, 0xa5, 0x5b, 0x41, 0x3a, 0xe0, 0xea, 0x70, 0xad, 0xd6, 0x1b, 0xfd, 0xfb, 0x87, 0xfb, 0x42, 0xd5, 0xbc, 0x0c, 0x53, 0x59, 0xdd, 0xdd, 0x57, 0x3d, 0x53, 0x8a, 0xe9, 0x3a, 0x6b, 0x36, 0x09, };
21023 static const ec_test_case ed25519_914_test_case = {
21024 	.name = "EDDSA25519-SHA512/wei25519 914",
21025 	.ec_str_p = &wei25519_str_params,
21026 	.priv_key = ed25519_914_test_vectors_priv_key,
21027 	.priv_key_len = sizeof(ed25519_914_test_vectors_priv_key),
21028 	.nn_random = NULL,
21029 	.hash_type = SHA512,
21030 	.msg = (const char *)ed25519_914_test_vectors_message,
21031 	.msglen = sizeof(ed25519_914_test_vectors_message),
21032 	.sig_type = EDDSA25519,
21033 	.exp_sig = ed25519_914_test_vectors_expected_sig,
21034 	.exp_siglen = sizeof(ed25519_914_test_vectors_expected_sig),
21035 	.adata = NULL,
21036 	.adata_len = 0
21037 };
21038 
21039 /************************************************/
21040 static const u8 ed25519_915_test_vectors_priv_key[] = {
21041 	0xee, 0x55, 0xfc, 0xf7, 0x0a, 0x27, 0x5c, 0x72, 0x6b, 0xd4, 0x85, 0x66, 0x83, 0xb3, 0x47, 0xde, 0xcf, 0xd4, 0x22, 0xf1, 0x82, 0x6c, 0x07, 0xa9, 0x32, 0xcb, 0x85, 0xbe, 0x9f, 0xa4, 0xef, 0x3c, };
21042 static const u8 ed25519_915_test_vectors_message[] = {
21043 	0xb8, 0xc8, 0x45, 0xcf, 0x7c, 0x54, 0x85, 0xf0, 0x62, 0x2d, 0x1d, 0xdc, 0x17, 0xf7, 0xa0, 0xf6, 0xf0, 0xfd, 0x70, 0x74, 0xfe, 0x19, 0x4b, 0x0e, 0x0c, 0xd4, 0x26, 0x50, 0xcf, 0xc8, 0x17, 0xf5, 0x7f, 0x09, 0x5f, 0x8c, 0xdf, 0xad, 0x1e, 0xbe, 0x0d, 0xfb, 0xc1, 0xbd, 0x76, 0x17, 0xab, 0x4f, 0x20, 0x4e, 0x9d, 0x55, 0xd8, 0x1a, 0x7c, 0x8a, 0x43, 0x39, 0x40, 0xec, 0x6f, 0x17, 0xc8, 0xa8, 0xe3, 0xd5, 0x6c, 0x1a, 0xfb, 0x0a, 0xf3, 0x74, 0xbd, 0x32, 0xd5, 0x4e, 0xf7, 0x13, 0x2d, 0x26, 0xb8, 0x9c, 0x47, 0x0c, 0x2a, 0xb5, 0xbe, 0x16, 0xfa, 0xbb, 0x4c, 0x75, 0x19, 0x3d, 0x6d, 0xa5, 0x9b, 0xa2, 0xfd, 0x15, 0x7e, 0x9e, 0xa4, 0xe0, 0xc5, 0xc0, 0x8a, 0x52, 0x02, 0xf5, 0xed, 0xc6, 0xa6, 0x17, 0x01, 0xf0, 0x8b, 0xb3, 0x44, 0xca, 0x64, 0x55, 0xd7, 0x5d, 0x14, 0x5a, 0xdb, 0x24, 0x4c, 0x53, 0x4c, 0x8c, 0xfc, 0x62, 0x3f, 0x4d, 0x4b, 0x67, 0x67, 0x59, 0x4b, 0x39, 0xa7, 0x69, 0x0b, 0xee, 0xec, 0x4d, 0xf9, 0x74, 0x6a, 0x57, 0xff, 0xee, 0x05, 0x14, 0x54, 0xc4, 0x27, 0x8e, 0xa4, 0x3c, 0x81, 0x0f, 0xf1, 0x3c, 0xd7, 0x69, 0x61, 0x5f, 0x9d, 0x05, 0xd4, 0xfe, 0x4a, 0x51, 0x58, 0x3e, 0x80, 0xc0, 0x15, 0xdc, 0xfe, 0xd9, 0xaf, 0x05, 0xf9, 0x3d, 0x05, 0x4d, 0x34, 0xff, 0xd9, 0x39, 0xbd, 0xd8, 0xf0, 0x51, 0x8f, 0xa3, 0x03, 0x0a, 0x96, 0x4d, 0xc9, 0xd8, 0x0d, 0xf0, 0x0f, 0x16, 0x35, 0x82, 0x40, 0x72, 0xcd, 0xf2, 0x9b, 0xc8, 0x02, 0x59, 0x20, 0x9d, 0x50, 0xf5, 0x6f, 0xca, 0x9f, 0xbd, 0x6a, 0xe1, 0x51, 0x4a, 0x67, 0x19, 0x89, 0xce, 0xa4, 0xf6, 0x84, 0x6b, 0xc1, 0x91, 0x79, 0x09, 0x7c, 0xca, 0x40, 0xc6, 0x24, 0xd7, 0xed, 0xbf, 0x91, 0xfb, 0x5b, 0x25, 0x39, 0xeb, 0xbd, 0x50, 0x2d, 0x36, 0x46, 0x71, 0x14, 0x30, 0xba, 0xe4, 0x23, 0xfd, 0x11, 0x58, 0x48, 0x09, 0x33, 0x18, 0xb7, 0xd0, 0x87, 0xef, 0x1e, 0x3b, 0x89, 0x4b, 0xc3, 0xb9, 0xea, 0x27, 0xaf, 0x85, 0x3f, 0xca, 0x85, 0x95, 0xd3, 0x6f, 0xb7, 0x29, 0x99, 0x69, 0x16, 0x2f, 0x2e, 0xd6, 0xa2, 0xb5, 0x50, 0x75, 0xb2, 0xc6, 0x30, 0x80, 0x28, 0x57, 0x17, 0x6d, 0xec, 0x4c, 0xb5, 0xac, 0xf2, 0xb1, 0x3a, 0x35, 0xa9, 0x94, 0x9b, 0x91, 0x2b, 0xb5, 0x7d, 0x81, 0xeb, 0x0c, 0x8a, 0x8a, 0xdf, 0x3c, 0xf6, 0x4c, 0xb5, 0x71, 0xbf, 0x5f, 0x3d, 0x71, 0xf9, 0x87, 0xd6, 0x4d, 0x74, 0xe9, 0x19, 0xa0, 0x03, 0x36, 0xe5, 0x7d, 0x35, 0xee, 0x4e, 0xec, 0xfc, 0x65, 0x70, 0x00, 0xdd, 0x5b, 0x12, 0x99, 0x5e, 0xe1, 0xb1, 0x16, 0x59, 0x1c, 0xe5, 0x8e, 0x56, 0xde, 0x25, 0xb2, 0x9c, 0x94, 0x82, 0x9d, 0x1d, 0x68, 0x52, 0x1b, 0x95, 0x58, 0xe4, 0x72, 0x5e, 0xc7, 0x70, 0x39, 0x06, 0x9c, 0x0c, 0xd1, 0x7b, 0x2a, 0x00, 0x33, 0x59, 0xe9, 0xe1, 0xe1, 0x12, 0xc7, 0x59, 0x01, 0x76, 0xce, 0xbc, 0xe7, 0xf0, 0x01, 0xf1, 0xd1, 0x36, 0xe8, 0x18, 0xf4, 0x81, 0x8c, 0xfd, 0x94, 0x74, 0x5a, 0xfa, 0xab, 0x56, 0xf1, 0xa4, 0x06, 0xf9, 0x7d, 0xd9, 0xe6, 0x1b, 0x73, 0x52, 0x66, 0xd6, 0x82, 0xad, 0x7d, 0xf2, 0x6d, 0xd7, 0x0c, 0xde, 0x0b, 0x57, 0xfe, 0xa7, 0xdb, 0x2d, 0xf8, 0x32, 0xfa, 0x88, 0xa3, 0x5f, 0x53, 0x97, 0x94, 0x88, 0x4d, 0xdc, 0x41, 0x21, 0x84, 0x03, 0x01, 0x6c, 0xb6, 0xd5, 0x22, 0x1f, 0x3f, 0xeb, 0x5d, 0x3a, 0xee, 0x4a, 0x98, 0x40, 0xa9, 0x13, 0x07, 0x2d, 0x29, 0xf8, 0xd1, 0xa9, 0x36, 0x7b, 0xb0, 0xbb, 0xf5, 0x45, 0xf7, 0xda, 0xe7, 0xc0, 0x0a, 0x0d, 0x0c, 0x03, 0x42, 0x23, 0x1a, 0xe4, 0x62, 0xbb, 0x74, 0x2e, 0x14, 0x98, 0xee, 0x58, 0x4a, 0xe6, 0xc8, 0x3f, 0x2f, 0x1f, 0x2d, 0x04, 0x52, 0xbe, 0xad, 0x98, 0x22, 0x68, 0xcd, 0x3c, 0xfd, 0xe7, 0x8f, 0xf4, 0x22, 0xe2, 0x26, 0xbf, 0x7b, 0x2a, 0xf1, 0x13, 0x77, 0x57, 0x79, 0x7f, 0xb0, 0x2e, 0x52, 0x75, 0xc3, 0x48, 0x09, 0xd5, 0x4c, 0xa9, 0xee, 0x2a, 0x65, 0x27, 0x5e, 0x6e, 0x5c, 0xff, 0xdd, 0x20, 0xad, 0x1f, 0xa1, 0xee, 0x0b, 0xd8, 0xb2, 0x1e, 0x04, 0xce, 0x82, 0x9e, 0x02, 0xcd, 0xb6, 0x3c, 0x48, 0xbf, 0xcd, 0xd8, 0x6d, 0x3a, 0x08, 0xc5, 0x97, 0x89, 0xc9, 0xd7, 0x8e, 0x36, 0x18, 0x1d, 0xef, 0xeb, 0x72, 0x27, 0x10, 0x72, 0x75, 0xed, 0x6b, 0x5c, 0xcb, 0x12, 0x7c, 0xd7, 0x2b, 0x37, 0x4e, 0x17, 0xf5, 0xee, 0x0b, 0x5e, 0x47, 0xb4, 0xb3, 0xe1, 0x4a, 0x8e, 0xc6, 0xd8, 0x6b, 0xb7, 0x50, 0x71, 0x87, 0xf2, 0x8d, 0xb3, 0x2b, 0x3f, 0x3f, 0xa1, 0xca, 0x13, 0x44, 0x6f, 0xe5, 0x25, 0x3e, 0xe7, 0x83, 0x64, 0x5e, 0x79, 0x42, 0x72, 0x79, 0x9a, 0x86, 0x3b, 0x4f, 0xca, 0x99, 0xe4, 0x43, 0xcb, 0xaa, 0x05, 0xde, 0x3c, 0x50, 0xed, 0xf3, 0xd5, 0xcd, 0x7c, 0x10, 0x52, 0x9c, 0x6c, 0x09, 0xa0, 0xc1, 0x45, 0x34, 0x06, 0xac, 0x7e, 0xca, 0xfa, 0x9b, 0x3a, 0x1f, 0x36, 0x9d, 0x68, 0xf3, 0xc6, 0x18, 0xf5, 0x8e, 0xfc, 0x35, 0x9d, 0xf2, 0xf3, 0xfc, 0xd2, 0x47, 0x8b, 0x55, 0xa4, 0x1a, 0x11, 0xf2, 0x48, 0x7e, 0x7f, 0x70, 0xec, 0x29, 0x3b, 0x3e, 0xcc, 0xc7, 0x00, 0xef, 0x44, 0x4a, 0x33, 0xd1, 0xea, 0xe9, 0x84, 0x9c, 0x5b, 0x76, 0xd2, 0x9a, 0xfd, 0x5a, 0x23, 0x86, 0x1a, 0xef, 0x4f, 0x2a, 0x7b, 0xa3, 0xf6, 0x66, 0x30, 0x1f, 0xde, 0xb5, 0xd3, 0xd8, 0xf0, 0xdc, 0x9e, 0xe2, 0xe0, 0x14, 0xb2, 0x4c, 0x74, 0x65, 0xde, 0xe3, 0xc0, 0x96, 0x4e, 0xdd, 0x49, 0xed, 0x49, 0xed, 0xab, 0xb5, 0xca, 0x7a, 0xfb, 0x99, 0x57, 0x4d, 0x00, 0x1e, 0x58, 0x12, 0xa0, 0x85, 0x23, 0x1f, 0x24, 0x1b, 0x6b, 0x08, 0xc7, 0x3e, 0x80, 0xfb, 0x44, 0xbb, 0x2a, 0xdf, 0x55, 0x4f, 0x14, 0xfd, 0x6d, 0xce, 0x94, 0xa6, 0xf6, 0x36, 0x23, 0xd9, 0xc1, 0xde, 0xb4, 0x1a, 0xd1, 0x01, 0x65, 0x1a, 0x6b, 0x67, 0xae, 0x52, 0x34, 0xda, 0xae, 0x81, 0x97, 0x9f, 0xbd, 0x82, 0x33, 0x89, 0x64, 0x9a, 0x3b, 0x0a, 0x06, 0xc6, 0x8b, 0x80, 0x46, 0x8a, 0x99, 0x1d, 0x30, 0x07, 0x74, 0x87, 0x51, 0xfa, 0x69, 0x28, 0x1d, 0xb1, 0xb9, 0x4d, 0x6c, 0x16, 0x0a, 0x1c, 0xab, 0x50, 0x94, 0x3c, 0xdb, 0xb8, 0xde, 0xa5, 0x75, 0x09, 0x06, 0xb3, 0xc6, 0x59, 0x5b, 0xb5, 0x80, 0xde, 0xdb, 0xfa, 0xe5, 0x74, 0x64, 0xcc, 0x7a, 0x65, 0x1d, 0x4c, 0x51, 0xdb, 0xb5, 0xfa, 0x98, 0x05, 0x97, 0xd1, 0x76, 0x69, };
21044 static const u8 ed25519_915_test_vectors_expected_sig[] = {
21045 	0x9d, 0x8c, 0xb2, 0xea, 0xf3, 0xff, 0x3e, 0x0c, 0x2b, 0xc6, 0x72, 0xe1, 0xd2, 0x55, 0xc5, 0xb8, 0xe8, 0x07, 0x31, 0xbf, 0xf6, 0xf6, 0xab, 0xa5, 0x17, 0xe1, 0x33, 0x54, 0xe8, 0x51, 0x08, 0x0f, 0x4a, 0x8b, 0xb8, 0x12, 0x1b, 0x26, 0x24, 0x24, 0x4c, 0x9e, 0xe9, 0x5c, 0x8a, 0x09, 0x2f, 0x10, 0x37, 0x03, 0xfb, 0xe6, 0x6f, 0x9c, 0xba, 0x10, 0x0d, 0x2e, 0x91, 0xed, 0x77, 0x4a, 0xc9, 0x07, };
21046 static const ec_test_case ed25519_915_test_case = {
21047 	.name = "EDDSA25519-SHA512/wei25519 915",
21048 	.ec_str_p = &wei25519_str_params,
21049 	.priv_key = ed25519_915_test_vectors_priv_key,
21050 	.priv_key_len = sizeof(ed25519_915_test_vectors_priv_key),
21051 	.nn_random = NULL,
21052 	.hash_type = SHA512,
21053 	.msg = (const char *)ed25519_915_test_vectors_message,
21054 	.msglen = sizeof(ed25519_915_test_vectors_message),
21055 	.sig_type = EDDSA25519,
21056 	.exp_sig = ed25519_915_test_vectors_expected_sig,
21057 	.exp_siglen = sizeof(ed25519_915_test_vectors_expected_sig),
21058 	.adata = NULL,
21059 	.adata_len = 0
21060 };
21061 
21062 /************************************************/
21063 static const u8 ed25519_916_test_vectors_priv_key[] = {
21064 	0x49, 0xc2, 0x98, 0xa2, 0xdb, 0x3d, 0x25, 0x89, 0xc9, 0xfe, 0x16, 0xa4, 0xe5, 0x71, 0xe5, 0xaa, 0x23, 0xcb, 0xaa, 0x77, 0x7b, 0x86, 0x47, 0x02, 0x90, 0xa3, 0xed, 0xa7, 0xa5, 0xd3, 0xe9, 0x6b, };
21065 static const u8 ed25519_916_test_vectors_message[] = {
21066 	0x35, 0x82, 0xee, 0xb0, 0xd3, 0x71, 0xdf, 0x38, 0x5d, 0xe8, 0x8b, 0xaa, 0xd3, 0x80, 0xcb, 0x0c, 0xdb, 0x60, 0xea, 0xb2, 0xba, 0xeb, 0xb3, 0xc7, 0x98, 0x37, 0x75, 0x3d, 0x08, 0xe1, 0xcb, 0x78, 0xc0, 0xbd, 0x76, 0xdd, 0x11, 0x04, 0x45, 0x49, 0x56, 0xd5, 0x71, 0xce, 0xb7, 0xe6, 0xb5, 0x71, 0xa5, 0x23, 0x68, 0x35, 0xd7, 0x84, 0xb5, 0x0f, 0xf6, 0x60, 0x57, 0xb1, 0x35, 0x95, 0xe7, 0xd0, 0xc8, 0xf2, 0x5d, 0x08, 0xae, 0x8b, 0x54, 0xb6, 0x12, 0x3b, 0xa0, 0x81, 0x51, 0xac, 0x7d, 0xb0, 0xc5, 0x6a, 0x98, 0x0f, 0x7f, 0x0b, 0xb3, 0x9a, 0x54, 0xb4, 0x37, 0xf5, 0x48, 0x51, 0x97, 0x99, 0x86, 0xab, 0x13, 0x67, 0x83, 0x5e, 0x5c, 0x4f, 0x3a, 0x3b, 0x3d, 0x76, 0x0d, 0x38, 0x27, 0xe7, 0x6c, 0x56, 0x8a, 0xe7, 0xae, 0xbb, 0xb6, 0x12, 0xe7, 0x75, 0xbd, 0xde, 0xcc, 0xd3, 0x34, 0xac, 0x6b, 0xcd, 0x32, 0x53, 0xab, 0xc2, 0x9d, 0x4b, 0x7c, 0x3f, 0x10, 0x36, 0x26, 0x66, 0xf6, 0xae, 0x75, 0x08, 0x03, 0x70, 0xa3, 0x6c, 0xba, 0x55, 0xdb, 0x3a, 0x91, 0xcb, 0x57, 0x89, 0xe4, 0xd6, 0xf9, 0xef, 0xea, 0x4d, 0xf1, 0xdd, 0x77, 0x30, 0xa5, 0xe2, 0x79, 0x60, 0xd5, 0x3b, 0x51, 0x21, 0x94, 0x8c, 0xce, 0x5a, 0xf6, 0x53, 0xff, 0xf1, 0xd5, 0xb4, 0xe5, 0xb0, 0xa8, 0x8c, 0x71, 0x8c, 0x49, 0xb3, 0x1c, 0x79, 0x3d, 0x88, 0xc1, 0xcc, 0x45, 0xab, 0x8d, 0xa2, 0x9d, 0x05, 0xe9, 0x06, 0xcd, 0x05, 0x94, 0xb5, 0xf6, 0x63, 0x8c, 0x8e, 0xc3, 0xf1, 0x76, 0x0b, 0xa4, 0x23, 0xb5, 0xab, 0x1d, 0x08, 0xa5, 0x87, 0x70, 0xaf, 0xb0, 0xf1, 0x39, 0xab, 0xd3, 0x49, 0xc1, 0xbf, 0x16, 0x0d, 0x89, 0x02, 0x23, 0x9c, 0xe2, 0x4f, 0x19, 0xb4, 0xe1, 0xbe, 0x09, 0x5f, 0x7e, 0xd1, 0x65, 0xf3, 0x93, 0x1e, 0x3c, 0xbc, 0xc3, 0x07, 0xe9, 0xfc, 0x5c, 0x65, 0x80, 0x31, 0x22, 0x8e, 0x55, 0xcb, 0xbe, 0xec, 0x0d, 0x0b, 0xcf, 0x8f, 0x69, 0x51, 0x54, 0xa9, 0xee, 0xd1, 0xbe, 0xf3, 0x52, 0x28, 0x78, 0x9b, 0xfc, 0x0d, 0x23, 0x8b, 0x83, 0x72, 0xd3, 0x18, 0x32, 0x8c, 0x13, 0x39, 0xfe, 0xa0, 0x88, 0x14, 0xdb, 0x86, 0x21, 0xab, 0xca, 0x3a, 0xeb, 0x82, 0x09, 0x8b, 0x5a, 0xa8, 0x7b, 0xb9, 0x8f, 0x5e, 0x40, 0x52, 0x2a, 0x08, 0x88, 0x53, 0x2c, 0x17, 0x48, 0x45, 0x3d, 0xb2, 0xd2, 0xb3, 0x94, 0x3e, 0x4a, 0xbb, 0x31, 0x2d, 0xe3, 0x19, 0xae, 0xc4, 0x8c, 0xc1, 0xc9, 0x47, 0x75, 0x97, 0x29, 0x53, 0xfb, 0x64, 0x96, 0xb8, 0x16, 0x89, 0x37, 0x62, 0x35, 0x10, 0xcd, 0x48, 0xc8, 0xb2, 0x47, 0x95, 0x6d, 0x31, 0x68, 0x48, 0x6c, 0x17, 0x6a, 0xe7, 0xa4, 0xcb, 0x38, 0x4e, 0xac, 0xfd, 0xab, 0xfa, 0xdd, 0x9f, 0xba, 0x30, 0xa2, 0x3b, 0x81, 0x1b, 0xd7, 0x79, 0xf3, 0xcb, 0xa5, 0x43, 0x38, 0xc2, 0x8b, 0xb3, 0x38, 0x22, 0x38, 0xed, 0x3b, 0x8d, 0xd2, 0x1b, 0xea, 0xb2, 0xf5, 0xca, 0xde, 0x28, 0xc5, 0xe0, 0x9b, 0x31, 0xa4, 0x54, 0x80, 0x8a, 0x53, 0x48, 0x12, 0x2e, 0x3a, 0xe3, 0x81, 0x22, 0x96, 0xf7, 0x86, 0x9c, 0x38, 0x65, 0xc3, 0xc9, 0xd8, 0xfe, 0x18, 0xbd, 0x81, 0x2f, 0x2e, 0x60, 0xe9, 0x14, 0x97, 0x5c, 0xfe, 0x1b, 0xef, 0x8d, 0xbb, 0x80, 0x97, 0x00, 0x6f, 0x0d, 0x7c, 0xf3, 0xfc, 0x15, 0xeb, 0x95, 0xc2, 0x78, 0x54, 0xb1, 0x43, 0x12, 0xb8, 0x8d, 0x52, 0x80, 0x15, 0xaf, 0x69, 0xfb, 0x75, 0x05, 0xb8, 0xf3, 0x27, 0x03, 0xf6, 0x4e, 0xb1, 0xc9, 0x58, 0xf0, 0x46, 0xdd, 0x25, 0x12, 0x42, 0xf8, 0xbe, 0xa7, 0x46, 0x7f, 0xc7, 0x29, 0x1d, 0x09, 0x5e, 0x96, 0x96, 0xe1, 0x1a, 0xa4, 0x5a, 0xbe, 0x79, 0x24, 0xe8, 0x56, 0x35, 0x15, 0x35, 0xaa, 0x07, 0x73, 0xd3, 0xd9, 0xe6, 0x1c, 0xc9, 0xa2, 0xd8, 0x9b, 0x5b, 0x07, 0x74, 0xd7, 0x64, 0x5e, 0xe1, 0xaf, 0x7e, 0xb6, 0xfc, 0xd4, 0x40, 0xbc, 0x69, 0xd4, 0x3e, 0xde, 0xaa, 0xf9, 0x35, 0xfd, 0x2a, 0x52, 0x95, 0xac, 0x19, 0xa9, 0x7d, 0x70, 0xaf, 0x92, 0x98, 0x83, 0x0f, 0x81, 0xc0, 0xa5, 0x09, 0xf2, 0x42, 0xf4, 0x73, 0x37, 0x24, 0x78, 0xfa, 0x58, 0x79, 0xfb, 0x2c, 0xb8, 0x51, 0x10, 0x80, 0xfc, 0x2e, 0xcd, 0x82, 0x59, 0xb8, 0xc3, 0xce, 0x9e, 0x8b, 0x64, 0x07, 0x61, 0xdc, 0x79, 0x27, 0xc3, 0x2e, 0x7f, 0x5b, 0xae, 0x97, 0xa8, 0xb8, 0xac, 0x93, 0x56, 0x62, 0xe5, 0xf4, 0x5d, 0x14, 0xca, 0xd6, 0xd3, 0x4a, 0xff, 0xc9, 0xa1, 0x94, 0x14, 0xc4, 0x56, 0x6f, 0x45, 0xf9, 0x77, 0x39, 0x67, 0x10, 0x89, 0x4c, 0x53, 0x99, 0xed, 0x44, 0x80, 0xf1, 0x8e, 0x90, 0x95, 0x7f, 0xaa, 0x76, 0xcc, 0xb5, 0x12, 0xa2, 0xd0, 0x75, 0x73, 0x05, 0x8a, 0x95, 0xb4, 0x2f, 0xe1, 0x81, 0x02, 0x49, 0xd1, 0xc8, 0x5e, 0xc4, 0x31, 0xa0, 0x49, 0xd1, 0xae, 0xcb, 0x0f, 0x11, 0x83, 0x79, 0xbd, 0xc3, 0xf1, 0xee, 0x49, 0x0b, 0xc8, 0xa0, 0x54, 0xc3, 0x2c, 0x3d, 0xac, 0x76, 0x59, 0x96, 0x6c, 0xdb, 0x66, 0xf9, 0x95, 0xac, 0x40, 0x3d, 0x5e, 0x79, 0xeb, 0x6b, 0x25, 0xb3, 0xf3, 0xf6, 0x5a, 0x6c, 0xee, 0xc2, 0x20, 0xd6, 0x6c, 0x05, 0xf8, 0xa8, 0xa9, 0x8b, 0x80, 0x79, 0x9b, 0xa4, 0xf2, 0xc6, 0xdb, 0xbb, 0x4d, 0xfb, 0x58, 0x62, 0xc9, 0xa4, 0x6b, 0xca, 0x01, 0x3e, 0xbd, 0xfa, 0xba, 0x74, 0x94, 0xa3, 0x0c, 0xe1, 0x46, 0x06, 0xaf, 0xc0, 0xb0, 0xf9, 0x93, 0x14, 0x3f, 0xed, 0xee, 0x78, 0x96, 0xd9, 0xa6, 0xbb, 0x81, 0x49, 0x91, 0x66, 0xed, 0x02, 0xe9, 0x41, 0x86, 0xaa, 0xf3, 0x21, 0x87, 0xae, 0xb6, 0xe2, 0x82, 0x50, 0x1b, 0xca, 0x43, 0xb5, 0x7b, 0x7e, 0xfa, 0x09, 0x39, 0xc9, 0x34, 0xbc, 0x8f, 0xbb, 0xd2, 0x6c, 0x44, 0xb6, 0x18, 0x33, 0x5a, 0x35, 0xc6, 0x92, 0xff, 0x99, 0x6a, 0x5b, 0x95, 0xd3, 0x27, 0xdf, 0x9b, 0x2a, 0x66, 0x21, 0xb3, 0xb0, 0xf1, 0x90, 0xdb, 0x1f, 0x36, 0xd9, 0x11, 0xd1, 0xa6, 0x63, 0xa4, 0xeb, 0xf9, 0xa2, 0x85, 0x4b, 0xb4, 0xf4, 0x06, 0x10, 0x95, 0xb6, 0x98, 0x12, 0xc8, 0x2c, 0x2f, 0xfe, 0x3f, 0x92, 0xe9, 0xb4, 0x4d, 0x2e, 0xa6, 0x31, 0x69, 0x88, 0x1c, 0xae, 0x84, 0x53, 0xd6, 0xee, 0xf7, 0xcf, 0x69, 0xc2, 0x5a, 0x28, 0xb3, 0xf8, 0xdd, 0xc7, 0x01, 0x48, 0xef, 0x26, 0x72, 0x1a, 0x3c, 0x1f, 0x2e, 0x62, 0xd9, 0xd1, 0x0c, 0xea, 0x42, 0xfc, 0xa3, 0xfa, 0xcd, 0x74, 0x67, 0x3a, 0x4e, 0x7f, 0x33, 0x50, 0x73, 0x64, 0xaa, 0x28, 0x6c, 0x0f, 0x38, 0xd7, };
21067 static const u8 ed25519_916_test_vectors_expected_sig[] = {
21068 	0x2a, 0x43, 0x9c, 0x73, 0xc9, 0x81, 0x17, 0xfb, 0x29, 0x52, 0xe2, 0xb1, 0x61, 0xf7, 0xf3, 0xb9, 0x9e, 0x7d, 0x39, 0xbc, 0x69, 0x7f, 0x79, 0x40, 0x75, 0xdb, 0x7b, 0x63, 0x4d, 0x29, 0xf1, 0xff, 0x57, 0x24, 0xf6, 0x77, 0xf8, 0x31, 0x2a, 0xd5, 0x15, 0xb0, 0x97, 0xcc, 0xa9, 0xdf, 0xc3, 0x0e, 0x79, 0xee, 0x8a, 0x7c, 0x9d, 0xd7, 0x28, 0xbd, 0xd4, 0x5d, 0xf8, 0x59, 0xc7, 0xbd, 0xe3, 0x0a, };
21069 static const ec_test_case ed25519_916_test_case = {
21070 	.name = "EDDSA25519-SHA512/wei25519 916",
21071 	.ec_str_p = &wei25519_str_params,
21072 	.priv_key = ed25519_916_test_vectors_priv_key,
21073 	.priv_key_len = sizeof(ed25519_916_test_vectors_priv_key),
21074 	.nn_random = NULL,
21075 	.hash_type = SHA512,
21076 	.msg = (const char *)ed25519_916_test_vectors_message,
21077 	.msglen = sizeof(ed25519_916_test_vectors_message),
21078 	.sig_type = EDDSA25519,
21079 	.exp_sig = ed25519_916_test_vectors_expected_sig,
21080 	.exp_siglen = sizeof(ed25519_916_test_vectors_expected_sig),
21081 	.adata = NULL,
21082 	.adata_len = 0
21083 };
21084 
21085 /************************************************/
21086 static const u8 ed25519_917_test_vectors_priv_key[] = {
21087 	0x82, 0x3f, 0x0c, 0x29, 0xfb, 0xfd, 0xd3, 0xd1, 0x82, 0x8f, 0x30, 0x55, 0xe9, 0xec, 0x01, 0xff, 0xd1, 0xb5, 0xa3, 0x75, 0x11, 0x8d, 0xdd, 0x7e, 0x4e, 0x0c, 0x43, 0x71, 0x9f, 0x57, 0x3f, 0xf7, };
21088 static const u8 ed25519_917_test_vectors_message[] = {
21089 	0x80, 0x2c, 0x39, 0xce, 0x7f, 0x2a, 0x50, 0xbd, 0x81, 0x62, 0x2a, 0xdd, 0x0d, 0xf4, 0xe0, 0xfe, 0x03, 0xec, 0x3d, 0x2d, 0x30, 0x5a, 0x45, 0xa6, 0x16, 0x52, 0x71, 0xed, 0x79, 0xad, 0xd2, 0x43, 0xb9, 0xa0, 0x0e, 0x52, 0x18, 0x31, 0x92, 0xfe, 0xb2, 0x4c, 0x4f, 0xdb, 0xd2, 0x2c, 0x80, 0x7a, 0xe1, 0x00, 0xef, 0xcf, 0x16, 0x5b, 0x9c, 0x99, 0x61, 0x94, 0xe0, 0x0f, 0xa8, 0x17, 0x76, 0x5e, 0xa9, 0x4a, 0x03, 0x07, 0x0e, 0x48, 0x66, 0x86, 0xb4, 0x45, 0xfc, 0xb2, 0x63, 0xcc, 0xfe, 0x1f, 0x58, 0x62, 0xf3, 0xb8, 0x4b, 0x10, 0xf3, 0x90, 0x08, 0x0b, 0xfc, 0xae, 0x44, 0x7a, 0xe0, 0x06, 0x97, 0x42, 0xb8, 0x61, 0x8f, 0xa9, 0x57, 0x5f, 0x7e, 0x63, 0x7a, 0xd5, 0x4e, 0x83, 0x4c, 0xaf, 0x03, 0x94, 0xd7, 0x45, 0x03, 0x2c, 0xe1, 0xe2, 0x55, 0xc0, 0x27, 0x32, 0x50, 0xf1, 0x50, 0x4b, 0x37, 0xa0, 0xad, 0xd9, 0x4a, 0xa2, 0x45, 0xc7, 0xde, 0x52, 0xc8, 0x0e, 0x05, 0xd6, 0xe0, 0xa9, 0x6a, 0x14, 0x41, 0x05, 0x43, 0x82, 0x6a, 0x49, 0xe9, 0xb9, 0x45, 0x62, 0x6d, 0x4e, 0x89, 0xf5, 0x50, 0x27, 0x16, 0x3d, 0x4b, 0xd6, 0xd0, 0xe9, 0xbd, 0x1a, 0x24, 0x77, 0xf6, 0x7d, 0x3d, 0x56, 0x68, 0xa4, 0x2e, 0x94, 0xd8, 0xb6, 0x11, 0x93, 0xd8, 0x21, 0xe0, 0xd1, 0xb2, 0x30, 0xfc, 0xad, 0xc5, 0x36, 0x13, 0xb7, 0x5b, 0x02, 0xcf, 0xb8, 0x15, 0x84, 0x56, 0x07, 0x7e, 0xbd, 0xf5, 0xa5, 0xf0, 0x0c, 0x3b, 0x5b, 0x18, 0x63, 0x70, 0xca, 0xfe, 0xc4, 0xa2, 0x1c, 0x69, 0xdc, 0xe1, 0xf0, 0x1e, 0xfe, 0xf2, 0x3c, 0x37, 0xab, 0x90, 0xf8, 0x58, 0x23, 0x8a, 0xef, 0xbe, 0x21, 0x2b, 0x55, 0x6d, 0x2f, 0x07, 0x34, 0x06, 0x55, 0x9f, 0x1a, 0x51, 0xd8, 0x4e, 0xff, 0xfd, 0xce, 0x07, 0xb0, 0x0d, 0x01, 0xbb, 0xf3, 0x37, 0x71, 0xcc, 0x12, 0xc9, 0x60, 0xac, 0x89, 0x36, 0x5a, 0x9c, 0x82, 0xc5, 0x23, 0x43, 0xf7, 0x60, 0x33, 0x81, 0xb8, 0x90, 0x23, 0xc1, 0xa6, 0xe7, 0x02, 0xa5, 0xb1, 0xe4, 0xbd, 0x19, 0x1e, 0xa6, 0x97, 0x0b, 0x5e, 0xa4, 0x51, 0xea, 0x05, 0xb5, 0x9b, 0xf8, 0x3e, 0x55, 0xf2, 0x9a, 0x1f, 0x80, 0x32, 0x12, 0xbb, 0x2e, 0x58, 0xf0, 0x61, 0x63, 0x33, 0xd9, 0x11, 0x47, 0x08, 0x52, 0x9e, 0x8b, 0x6c, 0x60, 0x81, 0xde, 0xeb, 0x7c, 0x29, 0x9a, 0x5a, 0x2a, 0x53, 0xcc, 0xd2, 0x4e, 0xd5, 0x8f, 0xfb, 0xfe, 0x50, 0x3d, 0x80, 0x61, 0x4a, 0xdb, 0x05, 0xca, 0x11, 0xcf, 0x29, 0xde, 0xd0, 0x09, 0x04, 0xea, 0x12, 0x39, 0xf8, 0x2b, 0xa4, 0x0c, 0x79, 0x3e, 0xbc, 0x33, 0x97, 0x75, 0xf8, 0xb0, 0xfe, 0x39, 0x01, 0xf5, 0x48, 0x2e, 0x31, 0x0c, 0x79, 0x3c, 0x6e, 0x2c, 0xf0, 0x1d, 0xc1, 0x57, 0x72, 0x7a, 0xf2, 0x38, 0xf4, 0x9c, 0x98, 0x62, 0x80, 0x4b, 0x04, 0x75, 0x51, 0xfd, 0x88, 0x6f, 0x4a, 0x48, 0x99, 0xe2, 0x2a, 0x6a, 0x65, 0x70, 0x11, 0x17, 0xa3, 0x85, 0x80, 0x55, 0xbb, 0xfe, 0x96, 0x6e, 0x37, 0x0e, 0x73, 0x3e, 0x17, 0xef, 0xad, 0xa2, 0x85, 0x9f, 0xd8, 0xff, 0xa9, 0xe0, 0x1f, 0xce, 0x56, 0x06, 0xa2, 0x55, 0x36, 0x76, 0x78, 0xf4, 0xbd, 0x4e, 0x21, 0xe5, 0xda, 0x0f, 0xef, 0x30, 0x75, 0x7f, 0x34, 0xe3, 0x89, 0xf7, 0x6b, 0x7d, 0x57, 0xc4, 0xe4, 0x10, 0xa0, 0x02, 0xe9, 0x00, 0xe4, 0x8f, 0xb2, 0x18, 0xc8, 0xf2, 0x77, 0x8f, 0x14, 0x8f, 0xee, 0x56, 0x96, 0x5f, 0x5b, 0x47, 0x3e, 0x25, 0x25, 0x6c, 0x23, 0xa7, 0xaf, 0x19, 0x83, 0x42, 0xcf, 0x3e, 0xf0, 0x2b, 0x84, 0xdf, 0x2c, 0xd5, 0x80, 0x0a, 0x46, 0x1c, 0x1b, 0x07, 0xbd, 0xa2, 0xf4, 0x26, 0x28, 0xa6, 0x8a, 0xd2, 0x9d, 0xbb, 0x82, 0xa4, 0x70, 0x96, 0x7d, 0x73, 0x02, 0xc9, 0x93, 0xb2, 0x34, 0x13, 0x6e, 0x5b, 0xf2, 0x55, 0xe6, 0x24, 0x8b, 0x10, 0x2c, 0x2b, 0xff, 0xb2, 0x01, 0x72, 0x37, 0x1f, 0x1c, 0xa3, 0xe1, 0x0b, 0x08, 0x10, 0xe8, 0x64, 0x95, 0x03, 0x54, 0x6d, 0x9a, 0x73, 0x1c, 0xf1, 0x9b, 0x08, 0x33, 0x57, 0xd4, 0xcf, 0xec, 0xc8, 0x9b, 0xed, 0xb5, 0x35, 0x06, 0xfe, 0x19, 0x9b, 0x67, 0x03, 0x91, 0xa6, 0x20, 0x06, 0x9a, 0x30, 0x81, 0xf2, 0x53, 0xb4, 0xd7, 0x90, 0x88, 0x0a, 0xa2, 0x3b, 0x53, 0xe9, 0x7c, 0x75, 0xdc, 0x0c, 0x36, 0x05, 0x40, 0xe5, 0xb0, 0xa3, 0xef, 0xb1, 0xac, 0xcf, 0xfd, 0x13, 0x74, 0x14, 0xff, 0x84, 0x23, 0xd5, 0x46, 0x46, 0xfc, 0x56, 0xba, 0x5f, 0x53, 0xbd, 0x84, 0xc7, 0x26, 0x7c, 0x2f, 0x7e, 0xe3, 0xe3, 0x76, 0x07, 0x54, 0x41, 0x54, 0x36, 0x5f, 0x9f, 0x85, 0x08, 0x1d, 0xd7, 0xd2, 0xee, 0x75, 0xd3, 0x02, 0x27, 0x5c, 0x79, 0x9e, 0xf2, 0x42, 0x7c, 0xa6, 0x49, 0x63, 0x55, 0xdc, 0xda, 0x1d, 0x44, 0xe0, 0xd9, 0x77, 0xbf, 0x68, 0xdb, 0x30, 0x06, 0x50, 0x0a, 0xe3, 0xf4, 0x00, 0xd6, 0xa8, 0xc7, 0xcf, 0x47, 0x05, 0x7d, 0x4f, 0xc8, 0x7e, 0xee, 0xcb, 0x02, 0x11, 0x6b, 0x73, 0xee, 0xd6, 0xce, 0x1f, 0xcc, 0xef, 0x6e, 0x8f, 0xb8, 0xae, 0xa3, 0x63, 0xb2, 0xf6, 0xf5, 0x32, 0x2a, 0x5f, 0x07, 0x53, 0xf4, 0x58, 0x99, 0x53, 0x76, 0x46, 0xd5, 0x86, 0x51, 0xbe, 0x90, 0x37, 0xbf, 0x91, 0x42, 0x3c, 0x29, 0x86, 0xf5, 0xcc, 0x2b, 0xcb, 0xce, 0x4f, 0xae, 0xc9, 0x03, 0x49, 0x8b, 0x40, 0xfc, 0x2d, 0xea, 0xb6, 0x60, 0x3d, 0x6e, 0xea, 0x58, 0x5d, 0x27, 0x20, 0xd2, 0x1b, 0xb2, 0x72, 0x2b, 0xc0, 0x5b, 0x35, 0xae, 0xd2, 0xbc, 0xc0, 0xe8, 0x04, 0xfe, 0x9d, 0x23, 0x9f, 0xaf, 0xda, 0x7d, 0xda, 0xfe, 0x1d, 0x78, 0x60, 0xab, 0xb0, 0xfb, 0x28, 0xf4, 0xbf, 0x2b, 0x1f, 0xbb, 0x62, 0xa7, 0x86, 0xe4, 0x55, 0xbe, 0x02, 0x4b, 0x19, 0x3b, 0x78, 0x30, 0xbe, 0x0d, 0x55, 0x8f, 0x02, 0xc9, 0xf3, 0xae, 0x31, 0xdc, 0x10, 0x7e, 0xe9, 0x42, 0x1d, 0xc5, 0xf0, 0xb0, 0xf8, 0x94, 0x02, 0xb7, 0x1a, 0x45, 0x81, 0x40, 0x15, 0x36, 0xbc, 0x47, 0x30, 0x85, 0x06, 0xd9, 0x69, 0x39, 0xa2, 0x06, 0x36, 0x27, 0x44, 0xe2, 0x7d, 0xde, 0x94, 0x4f, 0x40, 0x96, 0xa1, 0x2b, 0x5f, 0x63, 0xda, 0xb6, 0x4d, 0x04, 0x14, 0x84, 0xd3, 0xfd, 0x91, 0xa6, 0x2c, 0x2f, 0x0e, 0xf9, 0xae, 0x78, 0x74, 0x22, 0xeb, 0x27, 0xfe, 0xd0, 0x80, 0x2e, 0x25, 0xf9, 0xbc, 0x77, 0x5c, 0x49, 0x15, 0xa8, 0x37, 0xfe, 0x3e, 0xb7, 0xb9, 0xd5, 0x84, 0x3e, 0x4d, 0x82, 0x10, 0xc6, 0xb4, 0x94, 0xb6, 0x12, 0x81, 0x63, 0x7a, 0x6b, 0xe3, 0x20, 0x52, };
21090 static const u8 ed25519_917_test_vectors_expected_sig[] = {
21091 	0xfa, 0x74, 0x7b, 0x6f, 0xe3, 0x38, 0x1a, 0xd6, 0xbc, 0x82, 0xa9, 0x56, 0x43, 0xc1, 0xf4, 0xa2, 0x0b, 0x76, 0xba, 0x73, 0xbf, 0xf0, 0x0e, 0x63, 0x5d, 0x64, 0x20, 0x2d, 0x8b, 0x0d, 0xf0, 0x3d, 0xbc, 0x56, 0xb0, 0x13, 0x8b, 0x3a, 0x6d, 0x41, 0x98, 0xff, 0xaf, 0x58, 0xcc, 0xd3, 0xd3, 0x88, 0xed, 0x25, 0xeb, 0xcf, 0x77, 0x04, 0x43, 0xe4, 0x1e, 0x9d, 0x21, 0x47, 0x95, 0x0a, 0x30, 0x0b, };
21092 static const ec_test_case ed25519_917_test_case = {
21093 	.name = "EDDSA25519-SHA512/wei25519 917",
21094 	.ec_str_p = &wei25519_str_params,
21095 	.priv_key = ed25519_917_test_vectors_priv_key,
21096 	.priv_key_len = sizeof(ed25519_917_test_vectors_priv_key),
21097 	.nn_random = NULL,
21098 	.hash_type = SHA512,
21099 	.msg = (const char *)ed25519_917_test_vectors_message,
21100 	.msglen = sizeof(ed25519_917_test_vectors_message),
21101 	.sig_type = EDDSA25519,
21102 	.exp_sig = ed25519_917_test_vectors_expected_sig,
21103 	.exp_siglen = sizeof(ed25519_917_test_vectors_expected_sig),
21104 	.adata = NULL,
21105 	.adata_len = 0
21106 };
21107 
21108 /************************************************/
21109 static const u8 ed25519_918_test_vectors_priv_key[] = {
21110 	0x65, 0x67, 0x66, 0x33, 0x37, 0x42, 0x14, 0xc4, 0xac, 0x4b, 0x7b, 0xce, 0xa9, 0xf1, 0xcc, 0x84, 0xb1, 0xb7, 0xe7, 0x94, 0x11, 0xe3, 0x10, 0x52, 0x5a, 0xce, 0x38, 0x5f, 0x45, 0x66, 0xc1, 0xd5, };
21111 static const u8 ed25519_918_test_vectors_message[] = {
21112 	0x9d, 0x62, 0x2c, 0x20, 0x67, 0x87, 0x69, 0x40, 0x93, 0xc6, 0xf2, 0x9f, 0x93, 0x61, 0x9f, 0x21, 0xbb, 0x64, 0xc0, 0x39, 0x41, 0x6d, 0x20, 0xdc, 0x70, 0x8a, 0x08, 0x4a, 0x9d, 0x2e, 0x49, 0x0c, 0xf5, 0x65, 0x8e, 0x13, 0xd6, 0x2c, 0xb0, 0xd2, 0x1e, 0xab, 0x00, 0xe4, 0x2d, 0x85, 0x1b, 0xc6, 0xec, 0x75, 0xda, 0xf4, 0x05, 0xd2, 0x37, 0x32, 0x46, 0xee, 0xa4, 0x15, 0xe8, 0x66, 0x29, 0x1b, 0xab, 0xf7, 0x64, 0x97, 0x68, 0x0a, 0xaf, 0x04, 0x42, 0x5a, 0x42, 0x55, 0x2b, 0x10, 0x7d, 0x58, 0xcd, 0x18, 0x56, 0x1c, 0x8c, 0x94, 0x83, 0xf7, 0x40, 0x74, 0x4c, 0xbf, 0xa6, 0x05, 0x4c, 0x1b, 0x12, 0x6f, 0x5a, 0x76, 0x65, 0x9a, 0xc1, 0x9d, 0xdd, 0xad, 0x4a, 0xb5, 0xa0, 0x91, 0x55, 0xd8, 0xc0, 0x50, 0xb5, 0x35, 0x4e, 0x06, 0xa4, 0xdd, 0x3e, 0xe3, 0xa6, 0xf9, 0xc9, 0x1e, 0x8b, 0x4c, 0x7a, 0xf2, 0x74, 0x96, 0x64, 0xe7, 0xab, 0xe9, 0x70, 0x61, 0x58, 0x9e, 0x15, 0x3c, 0x58, 0xe2, 0x7c, 0xf2, 0x99, 0xa2, 0x5f, 0x2b, 0x53, 0x0c, 0x06, 0x07, 0x31, 0xec, 0x0f, 0x43, 0x66, 0xbd, 0x1d, 0xeb, 0xeb, 0x4d, 0x4e, 0x91, 0x2e, 0x76, 0xe5, 0x08, 0x53, 0x4d, 0x43, 0x3e, 0xc4, 0x8f, 0x96, 0xb6, 0x2e, 0x15, 0x0d, 0xe9, 0x39, 0x63, 0xa1, 0xb3, 0xe6, 0xc8, 0x09, 0x1b, 0x49, 0x5a, 0x96, 0x51, 0x8c, 0xe3, 0xd3, 0xb9, 0xa8, 0xdb, 0xdc, 0x2a, 0x13, 0xfd, 0xd0, 0x77, 0xf2, 0x23, 0x1d, 0xe8, 0xd7, 0x6f, 0x56, 0xd9, 0xab, 0x1c, 0x2f, 0x9e, 0xfa, 0xbc, 0xe4, 0x63, 0x83, 0x64, 0xf8, 0xfb, 0x2a, 0x2c, 0x68, 0x3c, 0xa8, 0x19, 0xb7, 0x03, 0xab, 0x45, 0x3b, 0x11, 0xd3, 0x7a, 0x69, 0xfa, 0x4b, 0xcb, 0x80, 0x23, 0x98, 0x08, 0x34, 0xf7, 0xb9, 0x02, 0xad, 0x18, 0x19, 0xfc, 0x02, 0x92, 0x12, 0xfd, 0xea, 0x0a, 0xbf, 0x11, 0xde, 0xc8, 0x8c, 0x55, 0xd6, 0x8e, 0xf8, 0x7a, 0x26, 0xdb, 0xb1, 0x5d, 0xc3, 0xd3, 0xdf, 0xbc, 0xdd, 0xdd, 0x5e, 0xd7, 0x1b, 0xe8, 0x6f, 0x32, 0xc7, 0x6e, 0xe2, 0x22, 0x1d, 0x92, 0x43, 0x68, 0x3d, 0xf9, 0x51, 0x65, 0x64, 0xb2, 0x6b, 0xab, 0x5c, 0x84, 0x5d, 0x4d, 0xfe, 0x0a, 0xdc, 0xc7, 0xcb, 0x9f, 0xe1, 0xee, 0x2c, 0x05, 0x1a, 0xf5, 0x90, 0x8c, 0xe0, 0xcc, 0x3a, 0x90, 0x90, 0x4d, 0xbc, 0x0d, 0x36, 0x80, 0xed, 0x49, 0x92, 0xf4, 0x6c, 0xe2, 0x5c, 0x2e, 0xe8, 0x51, 0xc4, 0x14, 0xf0, 0x18, 0x7d, 0x89, 0x3e, 0x5c, 0x3b, 0x01, 0x89, 0xa7, 0xbb, 0x68, 0x93, 0xd6, 0x83, 0xf5, 0xe3, 0x39, 0x4c, 0xc0, 0x46, 0x29, 0x9a, 0x16, 0xa1, 0xc1, 0xb5, 0x69, 0x59, 0x33, 0xa8, 0x9b, 0xb1, 0x30, 0x30, 0x85, 0x5b, 0x81, 0xb3, 0xc7, 0x46, 0x85, 0xf7, 0x19, 0xde, 0x01, 0x60, 0x57, 0x5a, 0x0f, 0xf0, 0xa9, 0x1f, 0xd9, 0x43, 0x47, 0xb8, 0xbc, 0xbe, 0x12, 0x5d, 0x1d, 0x3f, 0x9c, 0xe7, 0x72, 0xa8, 0x12, 0x6e, 0x00, 0xf5, 0x63, 0xb3, 0x18, 0x96, 0x56, 0xd5, 0x52, 0x2c, 0x18, 0x7a, 0xb8, 0x31, 0xa7, 0xad, 0xe7, 0xac, 0x06, 0xfd, 0xca, 0xc7, 0xf1, 0xd4, 0x58, 0x82, 0xe5, 0x1f, 0x9b, 0xf5, 0xb4, 0x4a, 0x2d, 0xab, 0xa4, 0xa5, 0x3d, 0xbb, 0x31, 0x97, 0x0b, 0x4a, 0x0f, 0x12, 0x72, 0xfe, 0x14, 0x08, 0x7e, 0x0c, 0x3c, 0x7e, 0x45, 0x42, 0x31, 0x2f, 0xe7, 0x4d, 0x76, 0x7f, 0x21, 0xe7, 0xea, 0x48, 0x7d, 0x52, 0x84, 0x28, 0x4f, 0x46, 0xf2, 0x0f, 0x32, 0xc5, 0xb1, 0x6e, 0x1e, 0x0a, 0xc8, 0xd7, 0x96, 0xab, 0x2f, 0x80, 0xb3, 0x44, 0xe7, 0xa8, 0xd8, 0x4d, 0x5d, 0xe8, 0x23, 0xa5, 0x08, 0x97, 0x75, 0x2d, 0xc5, 0x49, 0xa4, 0x8f, 0xc1, 0x0b, 0xcd, 0x43, 0x6a, 0x7a, 0x93, 0xe9, 0x7c, 0xd0, 0x5d, 0x78, 0x30, 0x13, 0x8f, 0x32, 0x38, 0x79, 0x68, 0x0c, 0x34, 0x3c, 0x16, 0x46, 0x7d, 0x26, 0x4d, 0x74, 0x9b, 0xf4, 0x5e, 0x40, 0xf3, 0x9f, 0xbc, 0x3a, 0x00, 0xc4, 0x3b, 0x00, 0x69, 0x3b, 0x01, 0x56, 0x76, 0x8f, 0xf2, 0xe3, 0xf8, 0xad, 0x9e, 0xb6, 0x40, 0x50, 0x22, 0xf5, 0xca, 0xda, 0x66, 0x94, 0xe8, 0xa3, 0x3c, 0xdc, 0x59, 0xc6, 0x67, 0x3c, 0x44, 0x11, 0x72, 0x44, 0xeb, 0x03, 0xfd, 0x7f, 0xd6, 0x75, 0x93, 0x0c, 0x29, 0x4e, 0xdd, 0x29, 0x40, 0xf5, 0xf1, 0x80, 0x95, 0x3d, 0x91, 0x0c, 0x55, 0x48, 0x5b, 0x20, 0x57, 0xae, 0x0c, 0x93, 0x02, 0xf4, 0xa8, 0xe8, 0x31, 0xa5, 0x53, 0x0e, 0x3c, 0xbb, 0xf6, 0xf4, 0x72, 0x22, 0x40, 0x83, 0xa9, 0x52, 0xa8, 0x39, 0x0a, 0xb0, 0x0d, 0xc0, 0xf6, 0x9d, 0xfd, 0x88, 0x0e, 0xea, 0x2d, 0x73, 0x9d, 0x21, 0x8d, 0x6a, 0x66, 0xf2, 0x37, 0xf1, 0x0d, 0x44, 0x01, 0xaa, 0x75, 0x8f, 0xf8, 0x12, 0x0c, 0x0a, 0xe2, 0x76, 0x61, 0x27, 0x84, 0x90, 0x24, 0xf5, 0xa4, 0xcc, 0x57, 0x4a, 0x5b, 0x02, 0xb9, 0x35, 0x96, 0x68, 0x12, 0xcd, 0x1f, 0xb6, 0xd7, 0x9d, 0x0c, 0x4f, 0x59, 0xff, 0x80, 0xf0, 0x35, 0xa0, 0xb1, 0x09, 0xcc, 0xcb, 0x22, 0xfb, 0x08, 0x53, 0x5b, 0x87, 0x41, 0x49, 0xed, 0xf2, 0xa0, 0x97, 0x0c, 0x14, 0x88, 0x84, 0x27, 0xd0, 0x7d, 0x1e, 0xaf, 0xa6, 0x84, 0xa6, 0xd3, 0x45, 0x4e, 0x49, 0xb2, 0x25, 0x18, 0x4c, 0x6b, 0x99, 0x3e, 0xc8, 0xdd, 0xb8, 0xb5, 0xa3, 0x5e, 0xe4, 0x5f, 0x87, 0xf6, 0x92, 0x66, 0xd4, 0x90, 0x96, 0xa3, 0x17, 0xd8, 0x6a, 0xde, 0x27, 0xf4, 0x52, 0x9f, 0xe7, 0x23, 0x64, 0xd0, 0xb9, 0x58, 0x00, 0x72, 0x99, 0xd9, 0xde, 0x87, 0xd6, 0xff, 0x9f, 0xb0, 0x4d, 0x57, 0x3a, 0xea, 0x46, 0xba, 0xc8, 0xeb, 0x76, 0x47, 0x52, 0xeb, 0x46, 0x5c, 0xaa, 0xab, 0xa6, 0x89, 0xa6, 0x46, 0x0c, 0x11, 0x07, 0x30, 0xbd, 0xd0, 0x8b, 0x16, 0x89, 0xde, 0x7b, 0x05, 0xde, 0x59, 0xaf, 0x9f, 0xe2, 0x44, 0xac, 0x36, 0x3e, 0x95, 0xc9, 0x8b, 0x66, 0x93, 0x59, 0xaf, 0x90, 0x31, 0xa3, 0xa9, 0x3b, 0xa6, 0x31, 0xab, 0xf1, 0xf6, 0x1d, 0x20, 0xef, 0x7f, 0xc6, 0x88, 0x3b, 0x48, 0x40, 0xfc, 0x92, 0x67, 0x12, 0xe1, 0x3d, 0x87, 0x4b, 0x72, 0x2f, 0x6a, 0x79, 0xb1, 0x60, 0x70, 0xc0, 0x31, 0x13, 0x25, 0xe9, 0xa7, 0x0f, 0xcd, 0x86, 0x91, 0x6c, 0xfa, 0x1d, 0xa7, 0xf9, 0xd0, 0x56, 0x3a, 0x22, 0xfe, 0x9b, 0xfe, 0x85, 0x4b, 0x0c, 0x18, 0x6c, 0x86, 0x63, 0xb0, 0x61, 0xb6, 0x5b, 0xc0, 0x71, 0xe8, 0x39, 0x93, 0x8d, 0x8f, 0xdd, 0x7c, 0xf8, 0xf6, 0x95, 0x2a, 0x64, 0x67, 0xfa, 0xd8, 0xe5, 0x84, 0x90, 0xed, 0x2b, 0x26, 0x81, 0x33, 0x01, };
21113 static const u8 ed25519_918_test_vectors_expected_sig[] = {
21114 	0xe0, 0xb8, 0x67, 0xc9, 0xdb, 0xda, 0x35, 0x32, 0x34, 0x33, 0xc0, 0x46, 0xe0, 0x83, 0x0c, 0x25, 0x1b, 0x43, 0x46, 0xc5, 0x39, 0x59, 0x72, 0x28, 0x6b, 0x3a, 0x72, 0x31, 0x0e, 0xd4, 0x52, 0x6e, 0x54, 0x5d, 0xc0, 0x9d, 0x39, 0x18, 0xf2, 0xeb, 0x99, 0x20, 0xbc, 0x9b, 0x24, 0x1e, 0x90, 0x50, 0xd8, 0x48, 0xd3, 0x83, 0x02, 0x88, 0x65, 0x15, 0x91, 0xf9, 0x36, 0xd3, 0xba, 0xe4, 0x53, 0x01, };
21115 static const ec_test_case ed25519_918_test_case = {
21116 	.name = "EDDSA25519-SHA512/wei25519 918",
21117 	.ec_str_p = &wei25519_str_params,
21118 	.priv_key = ed25519_918_test_vectors_priv_key,
21119 	.priv_key_len = sizeof(ed25519_918_test_vectors_priv_key),
21120 	.nn_random = NULL,
21121 	.hash_type = SHA512,
21122 	.msg = (const char *)ed25519_918_test_vectors_message,
21123 	.msglen = sizeof(ed25519_918_test_vectors_message),
21124 	.sig_type = EDDSA25519,
21125 	.exp_sig = ed25519_918_test_vectors_expected_sig,
21126 	.exp_siglen = sizeof(ed25519_918_test_vectors_expected_sig),
21127 	.adata = NULL,
21128 	.adata_len = 0
21129 };
21130 
21131 /************************************************/
21132 static const u8 ed25519_919_test_vectors_priv_key[] = {
21133 	0xd2, 0xed, 0xed, 0xcd, 0x85, 0x32, 0x06, 0xcb, 0xf5, 0x9b, 0xd7, 0x4a, 0x25, 0xa3, 0x03, 0xfa, 0x2d, 0x6c, 0x39, 0x36, 0xbb, 0x48, 0xeb, 0x42, 0xf6, 0xd9, 0x00, 0xcb, 0xe8, 0x07, 0x72, 0xbe, };
21134 static const u8 ed25519_919_test_vectors_message[] = {
21135 	0x80, 0x70, 0xbc, 0x0d, 0xb0, 0x89, 0xa5, 0x92, 0x54, 0x46, 0x01, 0x9b, 0x7e, 0x40, 0x3c, 0x74, 0xec, 0x78, 0x90, 0x3e, 0x4b, 0xd5, 0x4b, 0xc1, 0xd0, 0x8a, 0x54, 0xa6, 0xf0, 0xed, 0x75, 0xa8, 0x5b, 0x76, 0x3f, 0xf5, 0x4d, 0xc3, 0x3a, 0x26, 0x00, 0xcc, 0xb4, 0x57, 0xfd, 0xba, 0xea, 0xe5, 0x48, 0x47, 0x7f, 0x6d, 0x69, 0x47, 0xae, 0x26, 0xde, 0xb7, 0x1e, 0xac, 0xd1, 0xd2, 0xd6, 0x22, 0x82, 0xa0, 0x83, 0x84, 0x3b, 0xe4, 0xe5, 0x93, 0x1d, 0x91, 0xc9, 0x3b, 0x62, 0x82, 0xc5, 0x88, 0x07, 0xce, 0x8f, 0x0d, 0x88, 0x0b, 0x14, 0x38, 0xda, 0xd8, 0xfd, 0xcb, 0xa8, 0x61, 0x2d, 0xf7, 0x3b, 0x9f, 0xaf, 0xf3, 0xa9, 0xf7, 0xdb, 0x30, 0x05, 0x25, 0x05, 0x36, 0xaa, 0xbd, 0x98, 0xae, 0x02, 0x7a, 0x89, 0x5e, 0x10, 0xb5, 0xcb, 0x7b, 0x69, 0x87, 0x5c, 0x0f, 0x39, 0x93, 0xaf, 0x24, 0x51, 0x92, 0xf4, 0x39, 0x3e, 0x9c, 0x4d, 0x34, 0x05, 0x74, 0x6e, 0x31, 0x1d, 0x3a, 0x91, 0x44, 0x7f, 0xcd, 0xbd, 0x73, 0x06, 0xb6, 0x02, 0x0c, 0x93, 0x3b, 0xba, 0xb9, 0xe3, 0x9d, 0x13, 0x49, 0x16, 0x25, 0x03, 0x5c, 0x9c, 0x63, 0x6e, 0xfa, 0x17, 0x39, 0xc3, 0x58, 0x87, 0x10, 0xa8, 0x79, 0xd9, 0xe3, 0xce, 0x17, 0x64, 0x61, 0x6f, 0x10, 0x82, 0xe8, 0xdf, 0xf5, 0x75, 0x59, 0xc3, 0xf5, 0xa5, 0xd7, 0x6d, 0xd3, 0x01, 0x12, 0x4f, 0xa4, 0x89, 0xfb, 0x94, 0x9e, 0x9e, 0x03, 0x9d, 0xd4, 0x62, 0x1b, 0xda, 0x60, 0xf0, 0xb8, 0x6b, 0x31, 0x1e, 0x78, 0xed, 0x0a, 0xb3, 0xb5, 0x28, 0x96, 0x50, 0x44, 0xb2, 0x3d, 0x78, 0xee, 0x2f, 0x81, 0x06, 0x1f, 0x8e, 0xdb, 0xd6, 0x92, 0x99, 0x33, 0xd1, 0x8c, 0x02, 0x07, 0xde, 0xc4, 0xb5, 0xb6, 0xb2, 0xfa, 0x4a, 0xca, 0x27, 0x47, 0xcf, 0x5b, 0x11, 0x0d, 0xf0, 0x0b, 0x0c, 0x98, 0x27, 0xbd, 0xb3, 0xd9, 0xdb, 0x2c, 0x7b, 0x03, 0x28, 0xd4, 0x0d, 0x99, 0xe1, 0xf6, 0xb2, 0x28, 0xe4, 0x0d, 0xad, 0xae, 0x78, 0xae, 0xda, 0x02, 0x89, 0xb6, 0xa2, 0x3d, 0x4e, 0xb5, 0x83, 0x70, 0x88, 0xe5, 0xd8, 0x84, 0x13, 0x63, 0x2c, 0xcc, 0x22, 0xe2, 0x1a, 0x73, 0x76, 0x8c, 0x67, 0x32, 0x01, 0xe9, 0xa8, 0xd8, 0xdc, 0x6e, 0xb6, 0xf7, 0x39, 0x7f, 0xed, 0xbd, 0x39, 0x8d, 0x26, 0xf9, 0x69, 0x2c, 0xa7, 0x2f, 0x6d, 0x6c, 0xf0, 0x56, 0xaa, 0xac, 0x50, 0xac, 0x2f, 0x3b, 0x26, 0x6d, 0xbe, 0x5e, 0x7b, 0xe7, 0xa0, 0x24, 0x77, 0x45, 0x78, 0xea, 0xd5, 0x85, 0x24, 0x5d, 0xaa, 0xa7, 0x3e, 0x0a, 0xaf, 0x83, 0x3c, 0x07, 0x0b, 0xa4, 0xb2, 0x04, 0x4c, 0xcb, 0x5e, 0x5c, 0xd1, 0x6f, 0x9c, 0x0a, 0xd9, 0x2e, 0xa8, 0x44, 0x80, 0x55, 0xdd, 0x82, 0x8c, 0x79, 0x93, 0x5a, 0xa6, 0xc0, 0x74, 0x1f, 0x9e, 0x2b, 0x81, 0x03, 0x24, 0xfd, 0xc6, 0xe6, 0x1e, 0x84, 0x2f, 0x94, 0x57, 0x22, 0x68, 0xbf, 0x7d, 0x5a, 0xdf, 0xa7, 0xab, 0x35, 0xb0, 0x7f, 0xb1, 0x9e, 0x78, 0x15, 0xa8, 0xaa, 0x5d, 0x81, 0x13, 0x01, 0x30, 0xac, 0x5c, 0xda, 0x8a, 0x47, 0x51, 0xee, 0x76, 0x03, 0x8c, 0x0a, 0x6b, 0xc2, 0xfa, 0xba, 0x4c, 0x49, 0x7e, 0x62, 0xb9, 0xf1, 0xf1, 0x94, 0xb8, 0xa5, 0x99, 0xb0, 0x77, 0x01, 0x81, 0x4b, 0x6d, 0xfb, 0x7d, 0x84, 0xbc, 0xdd, 0x5b, 0x7b, 0x5b, 0xc2, 0x24, 0x9f, 0x1d, 0x38, 0x45, 0xef, 0xf9, 0xef, 0x8c, 0xc7, 0x32, 0x85, 0x35, 0xd7, 0x0d, 0x53, 0xc7, 0xaa, 0x0c, 0x73, 0x05, 0x90, 0x1d, 0xe7, 0xc4, 0xed, 0x2f, 0xe1, 0x83, 0x82, 0x65, 0xd4, 0xa4, 0x17, 0xb8, 0x76, 0xad, 0xbd, 0x88, 0xeb, 0x93, 0x3f, 0x27, 0xc9, 0xaa, 0x48, 0xc8, 0xc7, 0xe3, 0x4e, 0x48, 0x14, 0x7c, 0xcf, 0xfb, 0x2f, 0xb6, 0x1a, 0x34, 0x8f, 0xea, 0x13, 0xef, 0x67, 0xcd, 0xf2, 0xe0, 0x39, 0xe3, 0x3f, 0xd8, 0x9e, 0x2c, 0x1a, 0xd2, 0xa4, 0x25, 0x4e, 0x3b, 0xf7, 0x48, 0x45, 0x2a, 0xa8, 0x3e, 0xfe, 0xca, 0x46, 0xe7, 0x80, 0xed, 0xe1, 0xd1, 0x3f, 0xf4, 0xcc, 0x5e, 0x7d, 0x01, 0xed, 0x45, 0xeb, 0x8c, 0x74, 0x81, 0x8d, 0x48, 0x60, 0xaf, 0x47, 0x59, 0xa8, 0x3e, 0x14, 0x88, 0x96, 0xab, 0x68, 0x73, 0x43, 0x95, 0x76, 0x0e, 0x00, 0x14, 0x6b, 0x79, 0x3c, 0x3e, 0x72, 0x89, 0x8a, 0xa0, 0xb3, 0xc5, 0xe0, 0xc1, 0xd3, 0xfd, 0xf1, 0x21, 0x58, 0xd2, 0xe8, 0xff, 0x11, 0x23, 0xa3, 0xa0, 0xc6, 0x4c, 0xf6, 0x37, 0x4a, 0x7f, 0x44, 0xf1, 0x1a, 0x57, 0x5e, 0x48, 0xa3, 0x79, 0x18, 0x1b, 0x30, 0xa4, 0x86, 0x5c, 0xfd, 0x02, 0x2a, 0xa9, 0x83, 0x27, 0x56, 0x35, 0xce, 0x4f, 0x2c, 0xc4, 0x0b, 0xfe, 0x06, 0x60, 0x67, 0xec, 0x4f, 0xe2, 0x41, 0xfa, 0x04, 0x7b, 0x55, 0x27, 0x0a, 0x1a, 0xd0, 0x77, 0x6c, 0x5f, 0x96, 0x86, 0x10, 0x14, 0xcb, 0xf4, 0x0a, 0x04, 0x32, 0xc5, 0x59, 0xf2, 0x2d, 0x79, 0x34, 0x2b, 0x79, 0xf8, 0xe7, 0x04, 0x2d, 0xcc, 0xfb, 0x1c, 0xf5, 0x0f, 0x83, 0x08, 0x5f, 0x80, 0x63, 0xfb, 0x18, 0x87, 0xed, 0x2d, 0xfc, 0x9d, 0xb7, 0xef, 0xc9, 0x6d, 0xaa, 0x0f, 0xf2, 0xbc, 0x4f, 0x52, 0x33, 0x5b, 0x02, 0x11, 0x2d, 0x16, 0x39, 0x2e, 0x13, 0x4c, 0x02, 0x23, 0xde, 0x45, 0x8f, 0xc0, 0x72, 0xcc, 0x22, 0xbf, 0x9e, 0x7e, 0xab, 0xc0, 0x62, 0x08, 0x18, 0x0a, 0x57, 0xe7, 0xce, 0x48, 0x05, 0xee, 0x4e, 0x0f, 0xc0, 0x15, 0x84, 0x09, 0x98, 0xfd, 0x56, 0x86, 0x44, 0xa0, 0x38, 0x6b, 0x3d, 0x8e, 0x7d, 0xda, 0x52, 0xab, 0xf6, 0x4f, 0x7d, 0xd0, 0x08, 0x68, 0xfc, 0x84, 0xf0, 0x36, 0xca, 0x8a, 0x78, 0xe9, 0xba, 0x81, 0x71, 0xca, 0x90, 0x26, 0x7c, 0x74, 0xe6, 0x15, 0x9a, 0xca, 0xc7, 0xaf, 0x5b, 0xf2, 0x37, 0x59, 0xab, 0xc5, 0x3d, 0x82, 0xe7, 0x93, 0xdb, 0x87, 0xfd, 0xad, 0xe1, 0x36, 0x33, 0x54, 0xff, 0xdc, 0xb0, 0xbd, 0x4c, 0xc9, 0x21, 0x3f, 0x5c, 0x84, 0x54, 0x45, 0xfc, 0x64, 0x9b, 0x2a, 0x1f, 0x32, 0x9f, 0x9d, 0x41, 0xd8, 0xa0, 0x31, 0xab, 0x46, 0xb4, 0x72, 0x16, 0x0f, 0x03, 0x43, 0x4b, 0x4b, 0x6b, 0xc5, 0xa4, 0x01, 0x52, 0x4d, 0x61, 0x79, 0xad, 0x66, 0xf9, 0xe2, 0x21, 0xc9, 0x06, 0x7f, 0xc8, 0x7f, 0xe4, 0xa7, 0x7e, 0x21, 0xe8, 0x02, 0x3b, 0x61, 0x69, 0xeb, 0xf1, 0x09, 0x0c, 0xd5, 0x56, 0xa9, 0xbe, 0x50, 0xb9, 0x18, 0x7f, 0xe4, 0x60, 0x7c, 0x59, 0x25, 0xe6, 0x0b, 0x41, 0x4f, 0x6a, 0x5c, 0xbf, 0x8a, 0xfa, 0x15, 0xed, 0x0e, 0xb3, 0x4b, 0x67, 0xb4, 0xc9, 0xc5, 0xd5, 0x4a, 0xdb, 0xe6, 0x40, };
21136 static const u8 ed25519_919_test_vectors_expected_sig[] = {
21137 	0xbe, 0x3c, 0x2b, 0x56, 0x7f, 0xe8, 0xc2, 0x08, 0xc9, 0x8e, 0x71, 0x97, 0x11, 0x7e, 0xb0, 0x1b, 0x3c, 0x19, 0x7b, 0xdf, 0xc8, 0x58, 0x56, 0x2d, 0xc5, 0xcd, 0x90, 0xf8, 0xe2, 0xc0, 0x35, 0x70, 0x42, 0x30, 0x39, 0x95, 0xba, 0xba, 0x2f, 0x40, 0xb7, 0x34, 0x5c, 0x56, 0xdb, 0x0b, 0x46, 0x25, 0x58, 0x0a, 0xa8, 0xdc, 0xc4, 0x8d, 0xf6, 0x01, 0x9d, 0x23, 0xa8, 0x38, 0xea, 0x71, 0x72, 0x02, };
21138 static const ec_test_case ed25519_919_test_case = {
21139 	.name = "EDDSA25519-SHA512/wei25519 919",
21140 	.ec_str_p = &wei25519_str_params,
21141 	.priv_key = ed25519_919_test_vectors_priv_key,
21142 	.priv_key_len = sizeof(ed25519_919_test_vectors_priv_key),
21143 	.nn_random = NULL,
21144 	.hash_type = SHA512,
21145 	.msg = (const char *)ed25519_919_test_vectors_message,
21146 	.msglen = sizeof(ed25519_919_test_vectors_message),
21147 	.sig_type = EDDSA25519,
21148 	.exp_sig = ed25519_919_test_vectors_expected_sig,
21149 	.exp_siglen = sizeof(ed25519_919_test_vectors_expected_sig),
21150 	.adata = NULL,
21151 	.adata_len = 0
21152 };
21153 
21154 /************************************************/
21155 static const u8 ed25519_920_test_vectors_priv_key[] = {
21156 	0xb5, 0x69, 0xf7, 0xc1, 0xaa, 0xdf, 0x56, 0xed, 0x1b, 0x5f, 0xa1, 0xb6, 0xfa, 0xd6, 0x48, 0xd0, 0xdc, 0x54, 0x4f, 0xf8, 0xfc, 0xd1, 0x73, 0x78, 0x0d, 0xe4, 0x1a, 0x7d, 0x4d, 0xe6, 0x0c, 0xb6, };
21157 static const u8 ed25519_920_test_vectors_message[] = {
21158 	0x7c, 0x5a, 0xa4, 0xdc, 0x80, 0x78, 0xaa, 0x77, 0xe8, 0xb3, 0xb7, 0xfe, 0xe6, 0x10, 0x84, 0xcf, 0xad, 0x76, 0x47, 0x62, 0xf1, 0xef, 0x26, 0xd8, 0xde, 0xb7, 0xf2, 0xf3, 0xb1, 0x86, 0xdf, 0xc7, 0x72, 0x48, 0x75, 0x50, 0x19, 0x78, 0x45, 0xfb, 0xa2, 0xf4, 0xc2, 0x3c, 0x83, 0x5b, 0x9b, 0x58, 0xdd, 0x0b, 0x63, 0x5c, 0x64, 0x91, 0x35, 0x13, 0x7f, 0x24, 0x8f, 0x5e, 0xf7, 0x13, 0x56, 0x4d, 0xe3, 0xc9, 0x66, 0xef, 0xa5, 0xf6, 0xdb, 0x6b, 0xea, 0x9e, 0x30, 0x97, 0x07, 0x49, 0xf8, 0xe8, 0x72, 0xd8, 0xd7, 0xae, 0x45, 0x35, 0xb7, 0x5e, 0x17, 0x6e, 0xa0, 0x48, 0x9b, 0x91, 0x5f, 0x34, 0x71, 0xd8, 0x27, 0xeb, 0x5b, 0x44, 0x45, 0x86, 0x48, 0x8c, 0xfc, 0x3f, 0xa6, 0xa4, 0x50, 0x82, 0xda, 0xcb, 0x82, 0x64, 0x95, 0xe5, 0x0a, 0x3b, 0x5d, 0xc6, 0xbb, 0x93, 0x0a, 0x33, 0x1f, 0x30, 0xc3, 0x85, 0xbc, 0x3b, 0x24, 0xce, 0x70, 0xb8, 0x95, 0x96, 0xdb, 0x6b, 0xfb, 0x68, 0x7d, 0x99, 0xa5, 0x81, 0x98, 0x7c, 0xa8, 0x76, 0xea, 0x0e, 0x75, 0x76, 0x96, 0xb3, 0xfc, 0x03, 0x77, 0x9a, 0x65, 0x81, 0x30, 0xc4, 0x10, 0xb3, 0x44, 0xed, 0xac, 0xc4, 0x27, 0x7d, 0x44, 0x84, 0x54, 0x99, 0xd6, 0x78, 0xe1, 0x41, 0x4f, 0x15, 0xf3, 0x6e, 0x16, 0x63, 0x35, 0x18, 0x95, 0x69, 0xce, 0xf3, 0x56, 0x7a, 0xc2, 0xe3, 0xab, 0x82, 0x1c, 0x91, 0xc9, 0x32, 0x74, 0xf5, 0xc2, 0x8a, 0x5d, 0x1f, 0x7c, 0x1b, 0xf5, 0x09, 0x9b, 0x10, 0xf8, 0x4e, 0xcb, 0x13, 0xa4, 0xe4, 0x53, 0x8f, 0x66, 0x49, 0xbf, 0x74, 0xf7, 0x39, 0x4b, 0x70, 0x3e, 0xf5, 0x36, 0x49, 0xd8, 0x15, 0x16, 0xcb, 0x1d, 0xb5, 0x21, 0x41, 0x60, 0x65, 0xcf, 0x9f, 0x27, 0x6a, 0xb8, 0x0c, 0x93, 0x08, 0x89, 0x7a, 0x27, 0xdf, 0xe3, 0x7e, 0x5e, 0x14, 0x2f, 0x18, 0x19, 0xb8, 0xd3, 0x48, 0xdf, 0x50, 0xa0, 0x46, 0xa1, 0x28, 0x88, 0xe3, 0xb7, 0xf2, 0xdc, 0xc7, 0x0f, 0x52, 0x18, 0xd1, 0x5e, 0xbb, 0x9a, 0xa7, 0x29, 0x1a, 0x1a, 0x92, 0xac, 0x44, 0x5c, 0x51, 0xd3, 0xa5, 0x3d, 0xd6, 0x91, 0xef, 0xff, 0xcf, 0x5a, 0x01, 0xe8, 0x76, 0xa7, 0x2a, 0xa4, 0x81, 0xeb, 0x4f, 0x12, 0x1a, 0x07, 0x23, 0x97, 0xd8, 0xcc, 0x93, 0xbb, 0xc2, 0xc9, 0xa6, 0xc2, 0x8c, 0xc8, 0x9b, 0x11, 0xff, 0xc0, 0xe9, 0x10, 0xd8, 0x2d, 0x9d, 0x62, 0x98, 0xa3, 0x67, 0xa0, 0xe1, 0xe3, 0xe8, 0xc8, 0x65, 0xe4, 0x32, 0x6a, 0x31, 0x9b, 0x22, 0x66, 0x6e, 0x52, 0x9f, 0x19, 0x98, 0xf1, 0xb3, 0xc8, 0xef, 0xb5, 0xfc, 0x21, 0xcc, 0xe9, 0x70, 0x40, 0xfb, 0x62, 0x47, 0xda, 0xa0, 0x00, 0x0a, 0xc5, 0x55, 0x4d, 0x89, 0xe7, 0xb2, 0x71, 0x59, 0xdd, 0x0b, 0x18, 0x00, 0xb7, 0x60, 0xb7, 0x9c, 0x91, 0xef, 0x6e, 0x97, 0x0b, 0x1e, 0x6c, 0x5f, 0xf4, 0x24, 0x42, 0xb1, 0xb3, 0xae, 0x4d, 0x3c, 0x43, 0x9e, 0x08, 0xec, 0x2f, 0x6b, 0x94, 0x17, 0x73, 0x87, 0xca, 0x5c, 0x01, 0xdf, 0x6f, 0x07, 0xf8, 0xe3, 0x4d, 0x25, 0xed, 0xbd, 0x49, 0xd8, 0xb7, 0x4e, 0x31, 0xa5, 0xe6, 0x5d, 0xec, 0x1f, 0x87, 0x60, 0xfa, 0x22, 0xc0, 0x0e, 0x6f, 0xb1, 0xcd, 0x55, 0x5b, 0xe6, 0x8b, 0x0a, 0xb4, 0x35, 0x99, 0xf0, 0xb9, 0xf4, 0xa5, 0x4a, 0x7c, 0xcb, 0x06, 0x26, 0x83, 0x89, 0x5d, 0x5e, 0xf6, 0x6d, 0x24, 0xdf, 0xb1, 0x67, 0x8c, 0xb0, 0xd0, 0xe8, 0xc8, 0x01, 0xd8, 0xe5, 0xff, 0xe7, 0x9b, 0x91, 0x39, 0xfc, 0x96, 0xd1, 0x18, 0xeb, 0x39, 0xb9, 0xc8, 0xd4, 0x40, 0x44, 0x89, 0x32, 0x5d, 0x45, 0xb4, 0xa3, 0x20, 0x2b, 0xea, 0xdc, 0xa6, 0x6f, 0x83, 0x1c, 0x68, 0xef, 0xb8, 0x15, 0x94, 0x15, 0x81, 0x93, 0x0e, 0xad, 0x29, 0xfd, 0x5f, 0x21, 0x1b, 0x90, 0xe7, 0xa3, 0x9f, 0x0d, 0x4f, 0xf4, 0x8c, 0x62, 0xa5, 0x45, 0xe2, 0x8a, 0xc2, 0xce, 0x29, 0xbe, 0xdc, 0x35, 0x6d, 0x92, 0xfc, 0x00, 0x34, 0x71, 0x76, 0xd7, 0x76, 0x23, 0xe0, 0xe1, 0x80, 0x9e, 0xff, 0x3f, 0xe6, 0x2b, 0x75, 0xa7, 0xd9, 0xde, 0xb7, 0x27, 0xd8, 0x61, 0x72, 0xd1, 0x4e, 0xdb, 0xf2, 0x78, 0x9a, 0x57, 0x14, 0x3c, 0x69, 0x92, 0x5c, 0x91, 0x7d, 0x43, 0x3b, 0x46, 0x83, 0xb0, 0x69, 0x3b, 0x3c, 0xd9, 0xe7, 0xe3, 0x77, 0x99, 0x64, 0x10, 0x72, 0x7f, 0x5e, 0x6f, 0xb8, 0xf5, 0xcc, 0xd1, 0x86, 0x0a, 0x20, 0x29, 0x4e, 0xcf, 0x33, 0xfa, 0xf9, 0x7a, 0x1e, 0x0f, 0x85, 0xb7, 0x61, 0x44, 0x7d, 0x47, 0x61, 0xb9, 0x6e, 0x4d, 0xf1, 0xb3, 0x12, 0xbd, 0x41, 0x4c, 0xab, 0xcf, 0x49, 0x84, 0x97, 0xb0, 0xea, 0xd6, 0x7c, 0xd1, 0xe5, 0x90, 0x1b, 0xbf, 0x3a, 0x16, 0xa8, 0x89, 0x1c, 0xcc, 0xed, 0x8a, 0x90, 0x7d, 0xf8, 0x87, 0x26, 0x95, 0x2d, 0x4a, 0xb3, 0x70, 0xa6, 0xb7, 0xdf, 0x29, 0x42, 0xcf, 0x13, 0x61, 0x5a, 0x5b, 0xc1, 0x2b, 0x4e, 0x10, 0x6d, 0xc3, 0x01, 0x3c, 0x68, 0xb8, 0xfb, 0x90, 0x63, 0x99, 0xdf, 0x15, 0xf1, 0xaa, 0x90, 0xd5, 0x6a, 0xa9, 0x74, 0xb1, 0xd2, 0xb2, 0x8c, 0x1a, 0x84, 0x53, 0xb9, 0xbf, 0x07, 0x92, 0xa5, 0x1c, 0x97, 0xce, 0x8a, 0x12, 0xaf, 0xc9, 0x34, 0x1b, 0xb4, 0xc0, 0xc3, 0x7b, 0x12, 0xdc, 0xb1, 0x2c, 0x63, 0x94, 0x49, 0x77, 0x5d, 0x9a, 0xc5, 0xc2, 0xec, 0x49, 0x67, 0x3d, 0xa5, 0xaa, 0xf7, 0x49, 0x3e, 0xd5, 0xf1, 0xf2, 0x11, 0x6e, 0xae, 0xf7, 0x2b, 0xb7, 0xfb, 0x1e, 0x09, 0x3e, 0xde, 0x2c, 0x26, 0x31, 0x7f, 0x4f, 0x4b, 0x6a, 0xd5, 0x85, 0x34, 0x62, 0x05, 0xdf, 0x91, 0xa6, 0xe9, 0x6b, 0xc6, 0x6d, 0x30, 0x64, 0xbc, 0xe9, 0x52, 0x39, 0x8f, 0xfc, 0xe8, 0x80, 0x71, 0xed, 0x9f, 0xf2, 0x75, 0x0c, 0x65, 0xc0, 0xc3, 0x04, 0x12, 0x5a, 0xc2, 0xca, 0xdc, 0x4f, 0xef, 0x71, 0xa8, 0x18, 0x73, 0x24, 0x96, 0xa8, 0x4c, 0xa5, 0x74, 0xd4, 0x82, 0xd5, 0xa3, 0xbb, 0xa2, 0x0e, 0x16, 0xdd, 0x2f, 0xa2, 0x4d, 0x32, 0x70, 0xf6, 0xc6, 0x09, 0x92, 0xf7, 0xf6, 0x3e, 0x88, 0xf5, 0x2e, 0xff, 0x62, 0x22, 0x99, 0x8e, 0xb4, 0x41, 0x67, 0x27, 0x38, 0x43, 0x75, 0xf5, 0x9f, 0x00, 0xe4, 0x75, 0x12, 0xee, 0x46, 0x4c, 0x31, 0x84, 0xac, 0xea, 0xff, 0x3c, 0xcf, 0xb0, 0x6b, 0xd1, 0x5c, 0x18, 0x3c, 0x5e, 0x48, 0x59, 0x26, 0x28, 0x8b, 0x99, 0x7b, 0xfa, 0xaa, 0xec, 0xf6, 0xec, 0xbb, 0xf7, 0xd2, 0xab, 0xf4, 0x90, 0x6d, 0xf7, 0x6b, 0x12, 0x77, 0xc5, 0xf5, 0xa8, 0x7e, 0x68, 0x17, 0xb1, 0xc6, 0x36, 0xe9, 0x1e, 0xfd, 0x7e, 0xcc, 0xf6, 0x4f, };
21159 static const u8 ed25519_920_test_vectors_expected_sig[] = {
21160 	0x2e, 0x32, 0xba, 0x05, 0x56, 0xbd, 0xe9, 0x74, 0xd7, 0xa1, 0x9b, 0x3b, 0x9a, 0x1e, 0x92, 0xf1, 0x83, 0x92, 0x4c, 0x4b, 0x74, 0xc5, 0xd7, 0x51, 0xb5, 0xab, 0x3d, 0x00, 0x79, 0x67, 0x01, 0x6e, 0xc0, 0x3a, 0xfe, 0x91, 0xd7, 0x42, 0xfb, 0x22, 0xb6, 0x3e, 0x5e, 0x55, 0xb2, 0xfc, 0xb6, 0xc6, 0x1a, 0x46, 0xe9, 0xdc, 0xe7, 0xfe, 0x9f, 0xa3, 0x0b, 0xbf, 0x66, 0xae, 0xf4, 0xb8, 0x5f, 0x09, };
21161 static const ec_test_case ed25519_920_test_case = {
21162 	.name = "EDDSA25519-SHA512/wei25519 920",
21163 	.ec_str_p = &wei25519_str_params,
21164 	.priv_key = ed25519_920_test_vectors_priv_key,
21165 	.priv_key_len = sizeof(ed25519_920_test_vectors_priv_key),
21166 	.nn_random = NULL,
21167 	.hash_type = SHA512,
21168 	.msg = (const char *)ed25519_920_test_vectors_message,
21169 	.msglen = sizeof(ed25519_920_test_vectors_message),
21170 	.sig_type = EDDSA25519,
21171 	.exp_sig = ed25519_920_test_vectors_expected_sig,
21172 	.exp_siglen = sizeof(ed25519_920_test_vectors_expected_sig),
21173 	.adata = NULL,
21174 	.adata_len = 0
21175 };
21176 
21177 /************************************************/
21178 static const u8 ed25519_921_test_vectors_priv_key[] = {
21179 	0x32, 0x34, 0x65, 0xd0, 0x31, 0x3d, 0x10, 0x01, 0xa2, 0x61, 0xab, 0xfd, 0x44, 0xfe, 0x65, 0xc3, 0x8c, 0x9a, 0x00, 0xca, 0x0f, 0x20, 0x33, 0x5d, 0x65, 0x53, 0xde, 0x49, 0x26, 0x99, 0xfc, 0x46, };
21180 static const u8 ed25519_921_test_vectors_message[] = {
21181 	0xbb, 0x10, 0x82, 0xe1, 0xcf, 0xdc, 0xd2, 0x9b, 0xfc, 0xa2, 0x46, 0x4d, 0x5c, 0xe4, 0x46, 0xb5, 0xba, 0x65, 0x4b, 0xa5, 0x8c, 0x22, 0x53, 0x8d, 0xa9, 0x26, 0xb8, 0x30, 0x3c, 0xab, 0xfd, 0x28, 0x4a, 0x7b, 0xd5, 0x99, 0x4a, 0x78, 0x6f, 0xa6, 0x6a, 0xed, 0xf0, 0xe1, 0x5f, 0x20, 0xc3, 0x82, 0xcd, 0xac, 0xf3, 0xd1, 0x45, 0x57, 0xff, 0x7a, 0x82, 0x67, 0xfa, 0x04, 0x67, 0x2c, 0xac, 0xab, 0x76, 0x70, 0x08, 0x65, 0x0a, 0xa9, 0xb4, 0xa7, 0xc9, 0x07, 0x1c, 0x47, 0x99, 0xf1, 0xff, 0xa4, 0x5c, 0xa4, 0xd5, 0x86, 0xe0, 0x20, 0x47, 0x44, 0x4c, 0x14, 0x23, 0x19, 0x43, 0x46, 0x7a, 0x3a, 0xba, 0xef, 0xa5, 0x39, 0x59, 0xda, 0x22, 0x6e, 0xb0, 0xc1, 0x53, 0x92, 0x01, 0x97, 0x60, 0x15, 0x96, 0x97, 0x74, 0x82, 0x93, 0xc0, 0x25, 0x56, 0x87, 0x83, 0x58, 0x8a, 0x39, 0x10, 0xe7, 0x8e, 0x5e, 0xa4, 0x27, 0xc4, 0x40, 0x7a, 0x89, 0x01, 0x06, 0x1b, 0x8b, 0x99, 0x2b, 0x82, 0xa2, 0xdf, 0x58, 0xc0, 0x4a, 0x1b, 0x2c, 0x5f, 0xad, 0x11, 0xc6, 0xb3, 0x79, 0x85, 0x6c, 0x2e, 0x0f, 0xef, 0x8a, 0x95, 0x0d, 0xe7, 0xe0, 0xfc, 0x22, 0x31, 0x03, 0x09, 0xe0, 0x8b, 0x13, 0x2b, 0x0c, 0xce, 0x4f, 0xc1, 0xec, 0xbf, 0x94, 0x57, 0x4a, 0x38, 0x8d, 0x4a, 0xe3, 0x66, 0x75, 0xd3, 0x29, 0x9a, 0x95, 0x15, 0x54, 0xeb, 0xf1, 0x80, 0xeb, 0x38, 0x1e, 0x1b, 0x5d, 0xf9, 0x77, 0xd9, 0x38, 0x43, 0x38, 0x91, 0xbc, 0x47, 0x8d, 0x76, 0x81, 0x85, 0x0b, 0x9d, 0xc9, 0xc5, 0xc7, 0x69, 0xd4, 0x05, 0xf5, 0xd8, 0x83, 0x9f, 0xc9, 0x73, 0x61, 0xd6, 0xcb, 0x30, 0x6c, 0x20, 0x30, 0x26, 0xcf, 0x2e, 0x2b, 0x3d, 0x39, 0x84, 0x9e, 0x1f, 0x4b, 0x12, 0x25, 0xeb, 0x25, 0xef, 0x8a, 0xcd, 0x40, 0xb0, 0x06, 0xf2, 0x0c, 0x64, 0x4d, 0xb6, 0x50, 0xc7, 0x5d, 0x38, 0xc0, 0xfc, 0xdd, 0x48, 0xf5, 0x98, 0xc7, 0xb4, 0xa6, 0x01, 0x06, 0xe6, 0x9e, 0x19, 0xcd, 0x71, 0x25, 0x89, 0xce, 0xdc, 0xcf, 0x50, 0x86, 0x4e, 0xa5, 0xf9, 0xe9, 0x5e, 0x01, 0xf1, 0xdd, 0x85, 0xc7, 0x51, 0x4f, 0x2c, 0x94, 0xb2, 0x83, 0x59, 0xde, 0x41, 0x32, 0xb8, 0x8c, 0x3e, 0xe1, 0xd1, 0x0a, 0x80, 0xa9, 0xfa, 0xdf, 0xb6, 0x90, 0xe3, 0xd8, 0x86, 0x41, 0xb3, 0x16, 0x8f, 0x0b, 0x89, 0x6a, 0xf8, 0x99, 0x0a, 0xdb, 0xf0, 0xe4, 0xf8, 0xe9, 0xd3, 0xf9, 0xd4, 0xcd, 0x31, 0x4e, 0x12, 0xc3, 0xbc, 0xe0, 0xcc, 0x87, 0x38, 0xe0, 0xcf, 0xc1, 0x90, 0x5b, 0xe5, 0xef, 0xa0, 0x71, 0xf7, 0x10, 0xb3, 0x2f, 0x8e, 0x58, 0x98, 0xc6, 0x0e, 0xb1, 0xbb, 0x8f, 0xee, 0xb7, 0x40, 0x00, 0x56, 0x0f, 0x41, 0xcb, 0x2e, 0xbc, 0x32, 0xb2, 0x60, 0x0b, 0x69, 0x80, 0xa2, 0xa4, 0x06, 0x4d, 0xfa, 0xa3, 0x79, 0x7e, 0xc4, 0x4c, 0xfb, 0x72, 0xd3, 0x79, 0xf8, 0x09, 0x73, 0x79, 0xca, 0xd6, 0x7e, 0xcd, 0xc0, 0xc3, 0x24, 0x14, 0xfa, 0x41, 0xc7, 0x2b, 0x1b, 0x9e, 0x4e, 0xdf, 0x55, 0x18, 0xcb, 0x39, 0xfe, 0x90, 0x92, 0xb4, 0x39, 0xaf, 0x3a, 0x4e, 0xbd, 0x5a, 0xfe, 0x79, 0xbe, 0xdc, 0x0e, 0xa8, 0xbf, 0x17, 0x47, 0x9a, 0x28, 0x21, 0xf5, 0xe9, 0xbd, 0x91, 0xd7, 0xf4, 0xaa, 0x5e, 0x38, 0x46, 0x99, 0x52, 0x37, 0x19, 0xb6, 0x95, 0x7f, 0x82, 0x36, 0x7c, 0xd8, 0x5f, 0xea, 0x9d, 0xed, 0x62, 0x36, 0xa2, 0x07, 0xc9, 0x4c, 0xb3, 0x73, 0xe3, 0x39, 0x3c, 0xb4, 0xfe, 0x11, 0xf9, 0x0a, 0x1b, 0x87, 0x79, 0xe4, 0xab, 0x4c, 0x34, 0x66, 0x13, 0x6b, 0xf2, 0x1e, 0x2a, 0xab, 0x78, 0xf7, 0xd2, 0x72, 0x6d, 0xb6, 0x41, 0x4f, 0xa5, 0xc4, 0xa3, 0xf7, 0x31, 0x3a, 0xd2, 0x11, 0x6a, 0x6d, 0x7c, 0xe4, 0x0a, 0xaa, 0x10, 0x01, 0xc2, 0x70, 0x4d, 0x5b, 0x05, 0xae, 0x54, 0xc7, 0xcc, 0x6f, 0x56, 0x72, 0x17, 0xf1, 0xa4, 0x7b, 0xfd, 0x0e, 0xe7, 0x38, 0xea, 0xea, 0x5e, 0xad, 0xb5, 0x37, 0x10, 0x75, 0xbe, 0x07, 0x6c, 0x87, 0x50, 0xae, 0xce, 0xfc, 0x41, 0x7e, 0xa7, 0xbf, 0xda, 0xac, 0x3c, 0xc3, 0x8b, 0xf1, 0x6c, 0xc2, 0x6d, 0xf7, 0x60, 0x0e, 0x3c, 0x7e, 0x8e, 0x43, 0x1f, 0x26, 0x76, 0xfc, 0x2a, 0x8c, 0x43, 0xa6, 0xa1, 0x43, 0x68, 0xba, 0x62, 0xbb, 0x32, 0x43, 0x9a, 0x06, 0xbe, 0xac, 0x38, 0xa0, 0x47, 0xb3, 0x74, 0x5e, 0x26, 0xf4, 0x07, 0xad, 0x82, 0x3d, 0x6a, 0xd1, 0xc0, 0xb6, 0xa4, 0x43, 0x41, 0xe1, 0x5f, 0xc9, 0xb3, 0x31, 0x21, 0x4f, 0xfc, 0x89, 0x69, 0x82, 0x11, 0xb0, 0x51, 0x33, 0xd6, 0xd3, 0x43, 0x3b, 0x5d, 0x59, 0xf7, 0xab, 0x4d, 0x10, 0x9e, 0x54, 0xe4, 0xc5, 0xd6, 0xf3, 0x2f, 0xcf, 0x72, 0x30, 0xfa, 0x4e, 0x25, 0x28, 0xc8, 0x61, 0xbb, 0x21, 0xcc, 0xc9, 0xe3, 0x10, 0xe9, 0x49, 0x7e, 0x07, 0x7e, 0xa6, 0x75, 0x51, 0x0d, 0xa7, 0x12, 0xb1, 0xa5, 0xdf, 0x57, 0x5c, 0x5d, 0x1b, 0xf7, 0x36, 0x2d, 0x07, 0x11, 0x80, 0x03, 0x9a, 0xec, 0xfa, 0xa5, 0xc8, 0x57, 0x3c, 0x24, 0xc0, 0xf4, 0xeb, 0xe8, 0x1c, 0x2f, 0x88, 0x9a, 0xed, 0x3d, 0xe5, 0xa0, 0x00, 0xbe, 0x12, 0xfe, 0x3d, 0x0a, 0xf2, 0xdc, 0x2c, 0xd4, 0x24, 0x0e, 0x31, 0x4a, 0x17, 0x6c, 0x55, 0x3e, 0xfd, 0x5c, 0xba, 0x79, 0x8d, 0x9f, 0xf1, 0xe3, 0xd4, 0xbd, 0x9e, 0x90, 0xbb, 0x81, 0x13, 0xe3, 0x84, 0x9d, 0x73, 0x5a, 0xfa, 0x4a, 0xf6, 0x94, 0x5c, 0xc5, 0x7d, 0x4c, 0x37, 0x8d, 0xb8, 0x4f, 0x20, 0x6e, 0xf7, 0xea, 0xb1, 0x1c, 0x63, 0x7a, 0x7f, 0x72, 0x60, 0xf1, 0x22, 0xa9, 0x7d, 0xff, 0x67, 0x47, 0xe9, 0xb4, 0xc1, 0x74, 0xed, 0x0d, 0x64, 0xf9, 0xef, 0xd7, 0xfc, 0xcc, 0xf9, 0x81, 0x51, 0x9e, 0xc5, 0x80, 0xa8, 0x18, 0x25, 0x47, 0xd1, 0x79, 0x68, 0xc4, 0x01, 0x51, 0xfd, 0xf6, 0xd5, 0x4b, 0xc5, 0x7a, 0x91, 0x15, 0xf0, 0x40, 0xfa, 0xb5, 0xc1, 0x00, 0xde, 0xb0, 0x39, 0x12, 0x2b, 0x7d, 0x2b, 0xfd, 0x98, 0xb6, 0xad, 0xf3, 0x8f, 0x42, 0xb2, 0x96, 0xea, 0x3b, 0x37, 0x8a, 0x90, 0x42, 0x59, 0xb7, 0x5d, 0x60, 0x70, 0x3b, 0x48, 0x40, 0xb3, 0xf5, 0xda, 0x09, 0x62, 0x0a, 0x54, 0x77, 0x62, 0x80, 0xe9, 0xca, 0x9e, 0x8c, 0xd9, 0x24, 0xae, 0xd2, 0xb5, 0xdd, 0x2b, 0x49, 0x83, 0x4e, 0x58, 0x1c, 0xae, 0xd5, 0x27, 0x1c, 0xd7, 0x8c, 0xe0, 0x8e, 0x4b, 0xba, 0x49, 0xb5, 0x9c, 0xd7, 0x7c, 0x1b, 0x62, 0x76, 0x64, 0x91, 0x48, 0xab, 0x72, 0x47, 0xf9, 0x7f, 0xc0, 0x13, 0x16, 0x35, 0xde, 0x47, 0x4d, 0x3c, 0x23, 0x49, 0x3c, 0xa9, 0x8d, };
21182 static const u8 ed25519_921_test_vectors_expected_sig[] = {
21183 	0xda, 0x3a, 0xad, 0xb3, 0x43, 0x60, 0xb2, 0xda, 0x0c, 0x26, 0x54, 0x2e, 0xa7, 0x1d, 0xef, 0xa8, 0xa0, 0xbf, 0x7f, 0xbd, 0xae, 0x3e, 0xe9, 0xe1, 0x1c, 0x84, 0x08, 0x4a, 0xd0, 0x5c, 0xce, 0x7b, 0xa7, 0xd9, 0x4d, 0xe2, 0x5d, 0x85, 0x63, 0x98, 0x26, 0x16, 0xbc, 0xdb, 0x5b, 0xb6, 0x39, 0x5f, 0xac, 0x4a, 0x7e, 0x84, 0xbc, 0x77, 0xe2, 0x1e, 0xd3, 0x6d, 0xf7, 0x5d, 0xec, 0x99, 0x0b, 0x06, };
21184 static const ec_test_case ed25519_921_test_case = {
21185 	.name = "EDDSA25519-SHA512/wei25519 921",
21186 	.ec_str_p = &wei25519_str_params,
21187 	.priv_key = ed25519_921_test_vectors_priv_key,
21188 	.priv_key_len = sizeof(ed25519_921_test_vectors_priv_key),
21189 	.nn_random = NULL,
21190 	.hash_type = SHA512,
21191 	.msg = (const char *)ed25519_921_test_vectors_message,
21192 	.msglen = sizeof(ed25519_921_test_vectors_message),
21193 	.sig_type = EDDSA25519,
21194 	.exp_sig = ed25519_921_test_vectors_expected_sig,
21195 	.exp_siglen = sizeof(ed25519_921_test_vectors_expected_sig),
21196 	.adata = NULL,
21197 	.adata_len = 0
21198 };
21199 
21200 /************************************************/
21201 static const u8 ed25519_922_test_vectors_priv_key[] = {
21202 	0x60, 0xff, 0xdb, 0xae, 0x00, 0x3f, 0xa2, 0x79, 0x4f, 0xca, 0xbb, 0xf8, 0xf5, 0xb4, 0x16, 0x44, 0xfe, 0x3a, 0x7f, 0x44, 0xed, 0x6c, 0x83, 0x41, 0x93, 0xda, 0x07, 0xa9, 0xdc, 0x5e, 0x26, 0x65, };
21203 static const u8 ed25519_922_test_vectors_message[] = {
21204 	0x3f, 0x8f, 0xf2, 0x0b, 0xb4, 0xf0, 0x08, 0x34, 0xc8, 0x0f, 0x2e, 0xe6, 0x89, 0x3d, 0x6f, 0x73, 0xbf, 0x7a, 0xce, 0x27, 0x29, 0x60, 0x1b, 0xb2, 0x6a, 0x0f, 0xb2, 0x72, 0xa4, 0xd0, 0xee, 0xa1, 0xfa, 0xe1, 0xd3, 0x06, 0xac, 0x2c, 0x5f, 0x32, 0xad, 0xd6, 0x01, 0x35, 0x85, 0x1d, 0xa2, 0x7e, 0x4f, 0x12, 0xe6, 0x4e, 0xa5, 0xe9, 0xe9, 0x96, 0x0b, 0x13, 0x83, 0xb0, 0x4c, 0xe0, 0x5a, 0x98, 0xb0, 0x41, 0x4d, 0xad, 0x97, 0x1e, 0xa9, 0x89, 0x44, 0x87, 0x1d, 0x41, 0x5c, 0xc2, 0xc4, 0x6d, 0xa4, 0x03, 0x97, 0x6d, 0x9f, 0x21, 0x93, 0x89, 0x58, 0xd4, 0xea, 0x8c, 0x79, 0x03, 0xb1, 0x4f, 0x2a, 0x44, 0x85, 0xfd, 0x69, 0xaf, 0xb2, 0x4a, 0xbe, 0x10, 0x2d, 0x8f, 0xec, 0x26, 0x6f, 0xb4, 0x68, 0xb4, 0x11, 0xeb, 0x20, 0xa3, 0x39, 0x67, 0x7d, 0x88, 0xeb, 0x31, 0xc9, 0x97, 0xb4, 0xdc, 0x88, 0x56, 0x13, 0xf0, 0xbe, 0x7c, 0x70, 0xda, 0xf8, 0x56, 0xa3, 0xdf, 0x92, 0xda, 0x96, 0x02, 0xfb, 0xa2, 0xe6, 0x74, 0x9d, 0x2f, 0x42, 0x6b, 0xee, 0xf6, 0x86, 0x62, 0xd5, 0xb0, 0xc2, 0xfd, 0x31, 0x32, 0x1b, 0x22, 0xb5, 0xec, 0x59, 0x7d, 0xa5, 0xd7, 0xe6, 0xa2, 0x88, 0xeb, 0xd9, 0x44, 0x3c, 0x5f, 0x39, 0xeb, 0x87, 0xdc, 0xf4, 0xa5, 0xad, 0x9d, 0x56, 0xc6, 0xba, 0xf6, 0x08, 0x09, 0x96, 0xa7, 0x79, 0x36, 0xbd, 0x87, 0xdc, 0x3c, 0xb4, 0x2e, 0xd4, 0xc4, 0xd4, 0x26, 0x88, 0xa9, 0xe1, 0x93, 0x82, 0x9b, 0x76, 0x1f, 0xf3, 0x20, 0xe2, 0xa6, 0x6c, 0xc6, 0x76, 0x48, 0xe7, 0x0e, 0xea, 0x3a, 0x1f, 0x2f, 0x9b, 0x9d, 0x5b, 0x42, 0x02, 0xfb, 0x5a, 0x39, 0xe9, 0xad, 0xc6, 0x09, 0x08, 0x6a, 0x9b, 0xe2, 0xa8, 0x32, 0x3a, 0xc6, 0x69, 0x31, 0xbd, 0xf6, 0xc5, 0x04, 0xd3, 0x33, 0x62, 0x11, 0xe4, 0x6f, 0xde, 0xfc, 0x48, 0x1f, 0xbf, 0x17, 0xf6, 0x13, 0xda, 0xb1, 0xfc, 0x5c, 0x09, 0x7c, 0x92, 0xdb, 0x06, 0x09, 0x90, 0x6d, 0x78, 0xb2, 0x5a, 0x45, 0x5a, 0x30, 0x45, 0x71, 0x8e, 0xfd, 0x3e, 0x3b, 0x14, 0xe2, 0x52, 0xb1, 0xae, 0x59, 0xc7, 0xc3, 0x89, 0x3e, 0x31, 0x91, 0x3b, 0x2c, 0x26, 0x4c, 0x0f, 0xfc, 0x3b, 0x60, 0x6c, 0xa1, 0xb0, 0x1d, 0xc4, 0x7e, 0xe8, 0x28, 0xa0, 0x8e, 0x46, 0xaf, 0x60, 0x4e, 0x59, 0x0d, 0xef, 0x44, 0xd2, 0x7a, 0xab, 0x93, 0xa4, 0x03, 0x25, 0x1f, 0xca, 0x07, 0x72, 0xe9, 0xdf, 0x0f, 0xab, 0x7a, 0xf0, 0xcb, 0xc5, 0x18, 0x1e, 0xfd, 0xa4, 0xda, 0x91, 0x3d, 0x8e, 0xb6, 0x45, 0x2f, 0x6c, 0xec, 0xbd, 0xa2, 0x04, 0xbc, 0x72, 0xd7, 0xc9, 0x90, 0xf6, 0x0c, 0xe0, 0xdd, 0x83, 0xc6, 0x34, 0xe9, 0x12, 0x23, 0x60, 0x91, 0xb0, 0xa6, 0x67, 0x3a, 0x7c, 0x89, 0xea, 0x59, 0x30, 0x8d, 0x55, 0xbd, 0x7e, 0x63, 0xa8, 0x52, 0x67, 0x74, 0xcb, 0xdd, 0x7a, 0x13, 0x39, 0xfa, 0xc2, 0x12, 0x4c, 0x90, 0x22, 0xab, 0xd6, 0xfe, 0xce, 0x7f, 0x2d, 0xae, 0xdf, 0xd8, 0x7f, 0xa6, 0x83, 0xdc, 0x0e, 0x3e, 0xf4, 0x08, 0x06, 0xa0, 0xab, 0x19, 0x87, 0x69, 0xd3, 0xa9, 0x9f, 0xe8, 0x1a, 0x99, 0xb6, 0x86, 0x00, 0x31, 0x90, 0x87, 0xaf, 0xa4, 0xea, 0x79, 0xd7, 0xee, 0x45, 0xda, 0x9c, 0xd4, 0x08, 0x09, 0xf4, 0xee, 0x8f, 0x4e, 0x25, 0xa0, 0x17, 0x75, 0x21, 0xee, 0x9d, 0xba, 0x8b, 0x56, 0x21, 0x2e, 0x88, 0x71, 0x9b, 0xb7, 0x36, 0x73, 0x36, 0xf4, 0xa7, 0xbc, 0x71, 0x22, 0xb4, 0x1a, 0x7d, 0xfa, 0xa2, 0x67, 0x2f, 0x92, 0xf2, 0x34, 0x03, 0xa1, 0x0c, 0x4f, 0xb2, 0x53, 0x88, 0xc6, 0xb2, 0x00, 0x81, 0x09, 0x3d, 0x49, 0xf3, 0xbe, 0x8a, 0x9e, 0x1c, 0x63, 0x4e, 0xf7, 0xba, 0x96, 0xb6, 0xd5, 0x23, 0xdd, 0x6f, 0xf6, 0x13, 0xc0, 0xa2, 0x3b, 0x60, 0x45, 0x70, 0x26, 0xcd, 0x48, 0x5b, 0xa8, 0xdb, 0x61, 0xd8, 0x0a, 0x0d, 0xc6, 0x59, 0xd9, 0xaf, 0x42, 0xa3, 0x8c, 0xae, 0x77, 0x7f, 0xec, 0x68, 0xe3, 0x9c, 0x52, 0x98, 0x6f, 0xf9, 0xfc, 0x20, 0x78, 0x9c, 0x10, 0x58, 0x51, 0x07, 0xc0, 0x40, 0x47, 0xb6, 0x6b, 0xa1, 0x4e, 0x93, 0xfb, 0x90, 0x4e, 0xa9, 0x0d, 0xf7, 0xac, 0x9f, 0x01, 0x54, 0xc9, 0x6f, 0x32, 0x36, 0xac, 0xf6, 0xdc, 0x8b, 0x44, 0xf5, 0x54, 0xc0, 0xcd, 0x51, 0x31, 0x93, 0xe5, 0xdf, 0xd8, 0x7e, 0x08, 0x5a, 0xd4, 0xb3, 0x8a, 0xa4, 0xc5, 0xe3, 0x6b, 0x24, 0x27, 0x72, 0x20, 0x88, 0x81, 0x6e, 0xcd, 0x2b, 0xc3, 0xa3, 0xdd, 0xa0, 0x1e, 0x4f, 0xb3, 0xff, 0x5e, 0xec, 0x7a, 0x64, 0x17, 0x32, 0x2b, 0xa6, 0xa2, 0x77, 0x73, 0xd2, 0x44, 0x95, 0xa8, 0x39, 0x19, 0x4a, 0x4a, 0x58, 0x2f, 0xe5, 0xab, 0xdb, 0x8b, 0x5d, 0x53, 0x3a, 0x24, 0x26, 0x25, 0x89, 0x24, 0x1f, 0xc8, 0x1f, 0xdf, 0x5e, 0x79, 0xfd, 0x26, 0x77, 0x64, 0x28, 0xf8, 0xe1, 0xce, 0x9e, 0x92, 0x6c, 0xf2, 0x72, 0x71, 0x6e, 0x75, 0x83, 0xab, 0xfc, 0x67, 0xa9, 0x4a, 0xae, 0x08, 0x16, 0xc1, 0x00, 0x0a, 0x19, 0x61, 0x70, 0xbb, 0xff, 0x1f, 0x45, 0xe5, 0xed, 0x9e, 0x26, 0x7a, 0xce, 0x1e, 0x4d, 0x91, 0x5d, 0xce, 0x72, 0x16, 0xc5, 0xf4, 0x04, 0xde, 0xf6, 0xfe, 0x2b, 0xd8, 0xb2, 0x8b, 0x2e, 0xcc, 0xf3, 0xe2, 0xae, 0xa0, 0xc0, 0xd6, 0x62, 0x63, 0x90, 0x27, 0x4e, 0x47, 0xe7, 0x45, 0xed, 0x3a, 0x23, 0xbc, 0xfd, 0x21, 0xd2, 0x84, 0xc3, 0x95, 0x37, 0x9d, 0xc0, 0x20, 0x80, 0xf0, 0x79, 0x36, 0xbc, 0x15, 0x4e, 0x7b, 0x99, 0xee, 0x73, 0xdb, 0x18, 0x8b, 0xd2, 0xa3, 0x94, 0xe0, 0x3a, 0x01, 0xff, 0xe2, 0xd1, 0xb3, 0x30, 0xce, 0xb7, 0x21, 0x58, 0xf9, 0x58, 0xc7, 0x16, 0xa8, 0x17, 0x11, 0xdb, 0xf6, 0x5a, 0xff, 0x8c, 0xd1, 0x2f, 0x5d, 0xfa, 0x53, 0xb3, 0x76, 0xeb, 0xb8, 0xb9, 0x8f, 0x86, 0x28, 0xf1, 0x7e, 0xf8, 0xb2, 0xab, 0x9c, 0x0b, 0xb6, 0x84, 0x12, 0xf4, 0xe3, 0x47, 0xa6, 0x33, 0xe2, 0xf8, 0xda, 0x1a, 0x55, 0x6d, 0x96, 0xf4, 0xaf, 0x72, 0x11, 0xc0, 0x78, 0x07, 0x9c, 0x10, 0x54, 0x1c, 0x07, 0xdc, 0x37, 0x22, 0xd1, 0x8d, 0xab, 0x8f, 0xa8, 0xbc, 0x49, 0x25, 0xab, 0xa5, 0xc9, 0x66, 0xf8, 0x05, 0x04, 0x03, 0x22, 0xdf, 0xbb, 0xbe, 0x87, 0xfb, 0xfe, 0xb1, 0x96, 0x1f, 0x5c, 0xcd, 0x40, 0xa9, 0x1b, 0x99, 0x7e, 0x54, 0x31, 0x5a, 0x7e, 0xef, 0xc3, 0xa4, 0x7b, 0xb0, 0xc8, 0x7d, 0xc2, 0x37, 0x55, 0xce, 0x72, 0x27, 0x57, 0x49, 0x96, 0xf4, 0xbe, 0x7a, 0xa3, 0x44, 0xfe, 0x0d, 0x17, 0xb9, 0x7b, 0xc5, 0x0c, 0x58, 0x38, 0xf9, 0x92, 0x92, };
21205 static const u8 ed25519_922_test_vectors_expected_sig[] = {
21206 	0xb8, 0xf3, 0xe1, 0xf3, 0x78, 0x5a, 0x2a, 0x39, 0xbb, 0x08, 0x6c, 0xa4, 0x65, 0xc0, 0xab, 0xf0, 0xa3, 0xe8, 0x74, 0x43, 0x22, 0x5a, 0xc6, 0xe9, 0x66, 0xed, 0x9b, 0x45, 0x31, 0xc5, 0x4a, 0x89, 0x4a, 0x9a, 0xbd, 0x01, 0xac, 0x31, 0xb8, 0x57, 0x57, 0xfe, 0x75, 0x30, 0x8c, 0x95, 0x94, 0xff, 0x65, 0xf9, 0x7c, 0xdd, 0x91, 0xe8, 0xd8, 0xa9, 0x3c, 0xf1, 0x2b, 0x9e, 0x6d, 0xbe, 0xe9, 0x0b, };
21207 static const ec_test_case ed25519_922_test_case = {
21208 	.name = "EDDSA25519-SHA512/wei25519 922",
21209 	.ec_str_p = &wei25519_str_params,
21210 	.priv_key = ed25519_922_test_vectors_priv_key,
21211 	.priv_key_len = sizeof(ed25519_922_test_vectors_priv_key),
21212 	.nn_random = NULL,
21213 	.hash_type = SHA512,
21214 	.msg = (const char *)ed25519_922_test_vectors_message,
21215 	.msglen = sizeof(ed25519_922_test_vectors_message),
21216 	.sig_type = EDDSA25519,
21217 	.exp_sig = ed25519_922_test_vectors_expected_sig,
21218 	.exp_siglen = sizeof(ed25519_922_test_vectors_expected_sig),
21219 	.adata = NULL,
21220 	.adata_len = 0
21221 };
21222 
21223 /************************************************/
21224 static const u8 ed25519_923_test_vectors_priv_key[] = {
21225 	0x17, 0x4e, 0x99, 0x3d, 0x9b, 0x81, 0xf2, 0xaf, 0x67, 0xe9, 0xff, 0xb8, 0xeb, 0xd5, 0xda, 0x41, 0x79, 0x66, 0xa9, 0xe7, 0x7f, 0x66, 0xc6, 0x5c, 0x76, 0x77, 0x38, 0xfe, 0x83, 0x57, 0xd0, 0x7c, };
21226 static const u8 ed25519_923_test_vectors_message[] = {
21227 	0xa4, 0x01, 0x75, 0x0a, 0xfc, 0x48, 0x37, 0xdf, 0xe3, 0xaa, 0xcc, 0x28, 0x4a, 0x59, 0x71, 0x45, 0xdf, 0xef, 0x02, 0x62, 0x9e, 0xf8, 0x7b, 0xd0, 0x93, 0x8d, 0x44, 0x39, 0x79, 0xdf, 0x76, 0xf2, 0x9f, 0xcd, 0x66, 0xa5, 0xb7, 0x1e, 0xa8, 0xab, 0x78, 0x72, 0x77, 0xe3, 0x05, 0x6f, 0x6e, 0xa1, 0x1b, 0x08, 0xbd, 0x23, 0x89, 0x79, 0xf9, 0xd3, 0xb0, 0x62, 0x53, 0x8c, 0x4d, 0x60, 0x40, 0xa8, 0x6b, 0x6e, 0x32, 0x04, 0x7a, 0xec, 0xc5, 0x9c, 0x23, 0x77, 0xad, 0x0e, 0xa4, 0xc4, 0x0c, 0x79, 0xff, 0x9f, 0xe9, 0x8c, 0x95, 0x8b, 0x2b, 0xf2, 0x5f, 0x2f, 0xd6, 0x34, 0x24, 0x32, 0x63, 0x6f, 0x5f, 0x7d, 0x5b, 0xb0, 0xd2, 0xec, 0xf1, 0x81, 0x83, 0x42, 0x6c, 0x73, 0x14, 0x79, 0x84, 0xd9, 0x5b, 0xbe, 0x16, 0x2e, 0x11, 0x97, 0x2d, 0xdb, 0x78, 0xa2, 0xa7, 0xc3, 0x45, 0xc5, 0xc0, 0xbb, 0xba, 0xba, 0x9c, 0xf3, 0x8a, 0x2d, 0x5d, 0xd5, 0x09, 0xa7, 0xdf, 0x8b, 0x84, 0x28, 0x74, 0xa9, 0x6e, 0x64, 0xb5, 0xd6, 0x4f, 0x5c, 0x41, 0xa2, 0x1d, 0x20, 0x8d, 0x14, 0xce, 0xa7, 0x06, 0x6c, 0xf2, 0x2d, 0xee, 0x0c, 0xa4, 0x1a, 0xa4, 0x6a, 0xb9, 0x21, 0xd4, 0xce, 0xec, 0x89, 0xec, 0x87, 0x3f, 0x77, 0x96, 0x0e, 0xda, 0x60, 0xd9, 0x67, 0x6c, 0xfd, 0x0d, 0xbf, 0xae, 0xc8, 0x72, 0xc2, 0xad, 0xe8, 0xfb, 0xa4, 0x28, 0x5a, 0xac, 0xd5, 0x27, 0x14, 0x3a, 0xe0, 0x34, 0x1d, 0x67, 0xd0, 0x07, 0x81, 0x19, 0x65, 0x3b, 0x5d, 0x23, 0xd4, 0x6e, 0x6e, 0xf7, 0x02, 0x64, 0xb1, 0xb0, 0x91, 0x38, 0x70, 0x87, 0x76, 0x23, 0x71, 0x6d, 0x0f, 0x1a, 0x59, 0x02, 0x1b, 0xe7, 0x4c, 0x91, 0x4b, 0x43, 0x24, 0x71, 0xa4, 0x3a, 0x29, 0xf2, 0xb6, 0xdb, 0xeb, 0x6a, 0x22, 0x3e, 0x2d, 0xba, 0xab, 0xb8, 0x20, 0xb4, 0xad, 0xbe, 0x33, 0x78, 0x29, 0xe1, 0xde, 0x0c, 0x18, 0x4d, 0xd0, 0xd0, 0x9f, 0x9d, 0x01, 0xd4, 0x25, 0x27, 0xe5, 0xd4, 0x0a, 0xbb, 0xda, 0xcc, 0x8a, 0xc0, 0xf1, 0xb2, 0xc5, 0xc1, 0xcb, 0x2f, 0x23, 0x87, 0x6d, 0x2d, 0x1b, 0x6b, 0x43, 0xdf, 0xe4, 0x82, 0xf9, 0xd4, 0x5a, 0x18, 0xf5, 0xc2, 0x2b, 0x15, 0xf1, 0xfe, 0x52, 0x1e, 0xf5, 0x7b, 0x08, 0xae, 0xc6, 0xa3, 0x03, 0x39, 0x25, 0xc7, 0x45, 0x4c, 0x93, 0xe6, 0x31, 0x9e, 0x77, 0x8a, 0xc4, 0x94, 0xfb, 0x14, 0x0a, 0xe5, 0xf1, 0xa3, 0x1c, 0xc8, 0x32, 0xca, 0x24, 0x88, 0x65, 0x10, 0x04, 0x06, 0x3b, 0xcf, 0xf8, 0xfd, 0x9a, 0xe9, 0x26, 0x6a, 0xf5, 0x27, 0xf2, 0xc3, 0x1f, 0x6a, 0xcb, 0x8f, 0x3d, 0xeb, 0xd9, 0x97, 0x8e, 0xf9, 0xdf, 0x01, 0x08, 0xe3, 0xd5, 0x0c, 0x49, 0x19, 0x90, 0xc9, 0x0d, 0xd8, 0xee, 0x9d, 0x64, 0xea, 0x4e, 0xbf, 0xd7, 0x11, 0xc9, 0x9d, 0x90, 0x44, 0xec, 0x11, 0x34, 0x2c, 0x53, 0x83, 0xca, 0x39, 0x23, 0x2e, 0xd9, 0x7a, 0x07, 0xe4, 0xdc, 0x51, 0xdb, 0x4c, 0x1f, 0xe9, 0x47, 0x34, 0x8d, 0xff, 0xe7, 0x0a, 0x95, 0xc9, 0x9d, 0xb1, 0x47, 0x51, 0x31, 0x48, 0x01, 0xf1, 0x3f, 0xa2, 0xbf, 0x42, 0xd8, 0x67, 0x37, 0x5a, 0x08, 0xee, 0x9b, 0x3b, 0x79, 0x9e, 0x0b, 0x15, 0x27, 0x8e, 0x95, 0xe9, 0x1a, 0x89, 0x68, 0x06, 0x4d, 0x6d, 0xfd, 0x8f, 0x51, 0x15, 0x43, 0x8c, 0xcb, 0x8b, 0x51, 0x6c, 0xa0, 0xc4, 0x1d, 0xbb, 0x19, 0x87, 0x3c, 0x6e, 0x10, 0xa2, 0x36, 0xec, 0xc2, 0xda, 0xd5, 0x22, 0xf8, 0x0f, 0x01, 0xc1, 0x4e, 0x2f, 0xa1, 0x4a, 0x0d, 0x79, 0x2b, 0x9f, 0xc4, 0x86, 0xc6, 0xfb, 0x0e, 0xfb, 0xdf, 0x21, 0x30, 0xf0, 0x2d, 0xf1, 0x49, 0x7d, 0xb5, 0xab, 0xa8, 0xbe, 0x61, 0xca, 0x70, 0xb2, 0x93, 0x88, 0xe4, 0xee, 0xc7, 0xe0, 0x69, 0x4a, 0x38, 0xc0, 0xd0, 0x3c, 0x59, 0xbb, 0x6a, 0x2d, 0xc3, 0xcc, 0xd6, 0xdd, 0xe1, 0xe2, 0x9e, 0xe2, 0xc1, 0xb3, 0x25, 0xac, 0x72, 0xaa, 0x8e, 0x6f, 0xab, 0x91, 0x38, 0xf8, 0xb6, 0xf5, 0xd3, 0x24, 0xd4, 0x6a, 0xf3, 0xa3, 0x54, 0x2c, 0x8b, 0xd8, 0x7c, 0xb0, 0x4f, 0xaf, 0xc5, 0x4b, 0x5d, 0xb8, 0x27, 0xde, 0x60, 0x67, 0x62, 0xa0, 0x97, 0xb6, 0x22, 0x79, 0x9c, 0xa8, 0x27, 0xbd, 0xa9, 0xc1, 0xc0, 0xbb, 0x26, 0x7e, 0xba, 0x82, 0x54, 0xa8, 0x1c, 0x6b, 0x85, 0x8a, 0x37, 0x5b, 0x94, 0xbd, 0x09, 0xf3, 0x9e, 0xeb, 0x88, 0xcb, 0x14, 0xb8, 0xd4, 0x6e, 0x47, 0x40, 0xdc, 0x1a, 0xb4, 0x2a, 0x89, 0x5f, 0x86, 0xd2, 0xc5, 0x7f, 0xc2, 0x8b, 0x07, 0xb7, 0xf6, 0x0f, 0xc4, 0xf8, 0x84, 0x7b, 0x8b, 0xc8, 0xad, 0x83, 0xa2, 0x48, 0x1a, 0x28, 0xf2, 0x9b, 0xca, 0x35, 0x10, 0xff, 0x8b, 0xf1, 0xdd, 0x75, 0x81, 0xe3, 0x35, 0x71, 0x64, 0xf4, 0xfe, 0x92, 0x0f, 0x9d, 0xe8, 0x39, 0x37, 0x6d, 0xe0, 0x64, 0x90, 0x0d, 0xc7, 0xf8, 0xbc, 0xf5, 0x11, 0xdc, 0x57, 0x2e, 0x0f, 0x0f, 0x6a, 0x75, 0xb9, 0x29, 0x79, 0x7d, 0xa4, 0x1c, 0x52, 0xea, 0xe6, 0xfe, 0x13, 0x75, 0x0c, 0xe3, 0x51, 0xe8, 0x76, 0x76, 0x30, 0xba, 0xdf, 0x6d, 0x7d, 0x4e, 0xab, 0x90, 0xcd, 0x19, 0x04, 0xc9, 0x6c, 0x04, 0x8a, 0x9a, 0xcb, 0x21, 0x3a, 0x9e, 0x5b, 0x86, 0x46, 0x15, 0x73, 0x8a, 0x84, 0xf2, 0x22, 0x98, 0x6a, 0xc2, 0x35, 0x54, 0xcf, 0x4c, 0xe5, 0x4e, 0x80, 0xab, 0x57, 0x33, 0xc0, 0x65, 0xb8, 0x04, 0x59, 0x92, 0x1d, 0xd3, 0xd8, 0x37, 0x2d, 0x0e, 0x85, 0x94, 0xd4, 0x36, 0x43, 0x51, 0xbf, 0x04, 0x1c, 0x14, 0x6f, 0xa8, 0xd2, 0x3a, 0x19, 0x3e, 0xb8, 0x07, 0xec, 0xe2, 0x3f, 0x24, 0xab, 0x65, 0x95, 0xe9, 0x32, 0xc9, 0xce, 0x1a, 0x75, 0x9b, 0xf7, 0x88, 0x91, 0x4d, 0xb0, 0x08, 0xe8, 0x70, 0x98, 0xdd, 0x81, 0x46, 0x5e, 0x26, 0x10, 0x64, 0x7a, 0xc3, 0x8e, 0x08, 0x86, 0x66, 0xf6, 0x0e, 0xc5, 0xd0, 0xe2, 0x17, 0x33, 0x20, 0xa4, 0x0c, 0xd9, 0x85, 0xf0, 0xe0, 0x0d, 0xbc, 0x2b, 0x45, 0x70, 0x72, 0x74, 0x83, 0xa8, 0xc2, 0x5f, 0x6f, 0xc1, 0xe0, 0x93, 0xbb, 0x57, 0xcc, 0xaf, 0xd1, 0xca, 0x20, 0x2f, 0x29, 0x86, 0xc7, 0xc5, 0x54, 0x0a, 0x7c, 0x3e, 0x10, 0xc4, 0xa6, 0xfc, 0x26, 0xd1, 0xd6, 0x2c, 0x2c, 0xa5, 0xaf, 0x83, 0x05, 0xce, 0xeb, 0xe4, 0x2f, 0xf9, 0x6e, 0x7d, 0xc5, 0x48, 0x21, 0x43, 0x75, 0xe8, 0xa7, 0xf9, 0xf7, 0x12, 0xba, 0x8b, 0xd8, 0x75, 0xe4, 0x3c, 0xa1, 0x0c, 0xf9, 0xb1, 0x83, 0xf0, 0xc8, 0x51, 0x95, 0x12, 0x92, 0x85, 0x38, 0xa4, 0x78, 0xcb, 0x98, 0x25, 0x9b, 0xd8, 0xb3, 0xe3, 0x34, 0xbc, 0xc4, 0x63, 0x55, 0x95, 0xca, 0xd3, };
21228 static const u8 ed25519_923_test_vectors_expected_sig[] = {
21229 	0xe6, 0x07, 0xbc, 0x9a, 0x53, 0x60, 0xb3, 0x1d, 0xa5, 0x6b, 0xe1, 0xc5, 0x44, 0xc2, 0x00, 0x02, 0x84, 0x95, 0x1d, 0x86, 0x89, 0xf4, 0xb7, 0x22, 0xbc, 0x46, 0x73, 0xa0, 0xc8, 0x48, 0x9b, 0x84, 0x48, 0x3e, 0xd8, 0xe7, 0x6e, 0x29, 0x7e, 0xa0, 0x46, 0xe8, 0x5b, 0x37, 0xba, 0x56, 0x30, 0x58, 0x5e, 0x53, 0x75, 0x56, 0x6a, 0x18, 0x7a, 0xfb, 0x56, 0x96, 0x66, 0x1e, 0x5b, 0xfd, 0xc1, 0x0e, };
21230 static const ec_test_case ed25519_923_test_case = {
21231 	.name = "EDDSA25519-SHA512/wei25519 923",
21232 	.ec_str_p = &wei25519_str_params,
21233 	.priv_key = ed25519_923_test_vectors_priv_key,
21234 	.priv_key_len = sizeof(ed25519_923_test_vectors_priv_key),
21235 	.nn_random = NULL,
21236 	.hash_type = SHA512,
21237 	.msg = (const char *)ed25519_923_test_vectors_message,
21238 	.msglen = sizeof(ed25519_923_test_vectors_message),
21239 	.sig_type = EDDSA25519,
21240 	.exp_sig = ed25519_923_test_vectors_expected_sig,
21241 	.exp_siglen = sizeof(ed25519_923_test_vectors_expected_sig),
21242 	.adata = NULL,
21243 	.adata_len = 0
21244 };
21245 
21246 /************************************************/
21247 static const u8 ed25519_924_test_vectors_priv_key[] = {
21248 	0xe5, 0x37, 0x15, 0xfe, 0xc9, 0xd3, 0xb2, 0x0e, 0x9c, 0x29, 0x91, 0xe5, 0x4b, 0x5e, 0xb0, 0xa8, 0xcc, 0x81, 0x87, 0x55, 0x69, 0xc9, 0x5e, 0x22, 0xa2, 0x00, 0x13, 0x60, 0x02, 0x17, 0x60, 0x04, };
21249 static const u8 ed25519_924_test_vectors_message[] = {
21250 	0x84, 0x31, 0xcd, 0x16, 0xd5, 0xc0, 0x93, 0x77, 0x5e, 0x18, 0xc0, 0x82, 0x52, 0xc4, 0x3f, 0x95, 0xb1, 0x01, 0x7e, 0xb7, 0x11, 0xfc, 0xaf, 0x73, 0xe1, 0xe0, 0x0c, 0x0c, 0xd6, 0xf3, 0x44, 0x87, 0x44, 0xab, 0x9b, 0x0e, 0x64, 0x33, 0x55, 0x18, 0xc4, 0x83, 0xae, 0x94, 0xde, 0xb9, 0x76, 0x77, 0xf8, 0x18, 0xf0, 0xe8, 0x1a, 0x74, 0x90, 0x61, 0x5b, 0x71, 0x41, 0xb9, 0xc3, 0x5f, 0x80, 0x55, 0x6e, 0x69, 0x71, 0xce, 0xa2, 0x8e, 0x9a, 0x32, 0xc3, 0x28, 0xcc, 0x26, 0x69, 0xfc, 0xa5, 0xb1, 0x23, 0xcb, 0x66, 0x2d, 0xeb, 0xab, 0x2b, 0x98, 0x15, 0x77, 0x64, 0x66, 0x80, 0x70, 0xe1, 0x8e, 0xdf, 0x76, 0x1a, 0xe1, 0x96, 0xbd, 0x4b, 0x24, 0x4f, 0xea, 0x7b, 0x74, 0x98, 0x45, 0x16, 0xbe, 0x2c, 0x00, 0x73, 0x9e, 0x76, 0xe6, 0xc4, 0xb6, 0x21, 0xcb, 0x39, 0x83, 0x76, 0x5a, 0x20, 0xd8, 0x47, 0x78, 0xd5, 0xa4, 0x35, 0x0b, 0x16, 0x8f, 0x6a, 0x0f, 0x71, 0x2a, 0x98, 0x20, 0xa8, 0x5a, 0x63, 0x6f, 0xaf, 0x92, 0xc7, 0x89, 0xc4, 0x28, 0xcf, 0xd2, 0x96, 0x2e, 0xd2, 0x07, 0xc3, 0xac, 0x88, 0x99, 0xc2, 0x58, 0xca, 0xc1, 0xad, 0xb5, 0x15, 0x9f, 0x76, 0x4b, 0xa3, 0x72, 0x29, 0xc5, 0xcb, 0xf7, 0x83, 0xfc, 0x9a, 0xa4, 0xd1, 0xea, 0x46, 0xec, 0xc8, 0x5f, 0xe0, 0x96, 0x14, 0x85, 0xd4, 0xfc, 0x5c, 0xb2, 0x1d, 0xf0, 0x01, 0x2a, 0xc9, 0xb9, 0x55, 0x37, 0x3b, 0x14, 0x22, 0xe5, 0x1a, 0xfa, 0x1c, 0x55, 0x09, 0x88, 0x86, 0x2c, 0x86, 0x13, 0x3b, 0x76, 0x0a, 0xa6, 0x30, 0xfc, 0x0a, 0xce, 0xe8, 0x98, 0x91, 0x17, 0xd1, 0xdd, 0x96, 0xe3, 0xe6, 0x28, 0x7b, 0x69, 0x28, 0x7c, 0x59, 0x0b, 0xdc, 0xa9, 0xcb, 0xc8, 0xee, 0xce, 0xf2, 0x81, 0xee, 0x6d, 0x1c, 0x8d, 0x88, 0x82, 0x2b, 0xfe, 0xa5, 0xfa, 0x0f, 0x53, 0x0f, 0x23, 0x27, 0x80, 0x93, 0xc7, 0xc8, 0x5a, 0x0d, 0x44, 0xc3, 0xa7, 0x74, 0x04, 0xee, 0x79, 0xf1, 0xc8, 0x36, 0x8c, 0xd7, 0x32, 0x1b, 0xf1, 0x48, 0xfd, 0xa4, 0xdc, 0xf2, 0xeb, 0x07, 0xe4, 0x63, 0x0e, 0xa4, 0x22, 0x58, 0x75, 0x86, 0x37, 0x17, 0x80, 0x51, 0x45, 0x36, 0xb8, 0x94, 0xc5, 0x24, 0xe6, 0xb8, 0x3d, 0x5a, 0x76, 0xa1, 0x5c, 0x83, 0xe9, 0x5a, 0xb3, 0x14, 0xe0, 0x7b, 0x34, 0xb9, 0x8c, 0xd9, 0x9e, 0x07, 0x70, 0xb4, 0xeb, 0x9b, 0x3f, 0x3f, 0x50, 0x5b, 0xae, 0x8a, 0x06, 0xf7, 0xf9, 0x50, 0x25, 0x8d, 0x79, 0x07, 0x48, 0x10, 0x71, 0x95, 0xeb, 0x4f, 0x6b, 0x84, 0x84, 0x0f, 0x8c, 0x05, 0x90, 0x72, 0x73, 0x96, 0xed, 0x14, 0xe3, 0xf5, 0x32, 0x39, 0x47, 0x6c, 0x4d, 0x2a, 0x72, 0x69, 0xb2, 0xe1, 0xf9, 0x72, 0xfb, 0xff, 0x33, 0xe4, 0x72, 0x44, 0x26, 0x74, 0x5e, 0xc8, 0x86, 0xa3, 0x29, 0x16, 0x29, 0x5e, 0x70, 0xd4, 0x68, 0xd0, 0x6c, 0x7d, 0xbb, 0x5f, 0xf9, 0xa3, 0x54, 0xe1, 0xac, 0x90, 0x3b, 0xb4, 0x5c, 0xa5, 0x26, 0xf0, 0x8b, 0x49, 0xa6, 0x5e, 0x82, 0x29, 0x7d, 0x8d, 0xd3, 0xfb, 0x25, 0xaa, 0x42, 0x8f, 0x64, 0x34, 0x5b, 0xca, 0x97, 0x40, 0xd9, 0x07, 0x8d, 0xac, 0x9e, 0x11, 0x38, 0xc9, 0x21, 0xbd, 0xd7, 0x48, 0x81, 0x67, 0x3d, 0x49, 0xd0, 0xcd, 0x20, 0x06, 0x81, 0x17, 0x23, 0xde, 0x28, 0x7c, 0x6c, 0x95, 0x83, 0xe4, 0x56, 0xa0, 0x1a, 0xb1, 0xa3, 0x4d, 0xfa, 0x1e, 0xaa, 0x96, 0x3b, 0x71, 0xe8, 0xbc, 0x7f, 0xa8, 0xa9, 0x8c, 0xad, 0x4f, 0x94, 0x1e, 0x4b, 0x37, 0xb6, 0x0e, 0xef, 0x92, 0x3b, 0x32, 0x94, 0x88, 0x23, 0x50, 0xb3, 0x8e, 0xa4, 0xea, 0xc0, 0xe9, 0x23, 0x2e, 0x93, 0xc5, 0x32, 0xdb, 0x5d, 0x7e, 0xec, 0x8e, 0xcf, 0xae, 0x65, 0xe0, 0x80, 0x47, 0x30, 0x78, 0x77, 0x7d, 0xdf, 0xdd, 0x11, 0x50, 0x8a, 0x6e, 0x59, 0xf0, 0xeb, 0xaa, 0x3f, 0x60, 0x44, 0x1f, 0x82, 0xa7, 0x1a, 0x73, 0xc8, 0x4b, 0xca, 0x06, 0xa3, 0x71, 0xff, 0x5c, 0x9f, 0x77, 0x21, 0x3a, 0x2d, 0xb7, 0x95, 0xd4, 0xa8, 0x89, 0x78, 0x23, 0xd8, 0x8f, 0xd9, 0x2a, 0xe3, 0xe0, 0x57, 0xe8, 0xbb, 0xd8, 0x0c, 0x99, 0x0a, 0xf8, 0x38, 0x6b, 0xdf, 0x26, 0xf1, 0x2d, 0x97, 0x3c, 0x8c, 0x5f, 0xf9, 0xed, 0x6f, 0x7b, 0x2d, 0x8e, 0x61, 0x83, 0xcf, 0x6e, 0x68, 0xf3, 0xbb, 0x89, 0x8f, 0x59, 0xa9, 0x3e, 0xc4, 0xde, 0x3b, 0xea, 0x60, 0x5a, 0x5d, 0x8b, 0x15, 0xdf, 0xab, 0x71, 0x3f, 0x35, 0x85, 0xc4, 0x8d, 0xc9, 0xa5, 0x76, 0x82, 0x42, 0xb3, 0x31, 0x01, 0x43, 0x80, 0x30, 0xe7, 0x04, 0x48, 0x80, 0xd1, 0x7c, 0x2e, 0xe8, 0x4f, 0x89, 0xd2, 0x6a, 0x1f, 0x7b, 0x19, 0x86, 0x19, 0x3f, 0x96, 0x63, 0xc5, 0x87, 0xd5, 0x0c, 0xa9, 0xdd, 0xf6, 0x18, 0x6a, 0x51, 0x76, 0xaf, 0xef, 0x1a, 0xdb, 0x24, 0x81, 0xb7, 0x92, 0x54, 0xb7, 0x8d, 0x3b, 0x34, 0xc6, 0x97, 0x90, 0xeb, 0x28, 0xb9, 0x0b, 0x14, 0x61, 0x17, 0x0c, 0x3d, 0x73, 0x81, 0x83, 0x76, 0xcd, 0xf3, 0x71, 0xaf, 0x0a, 0x0f, 0xea, 0xf1, 0x4f, 0xdf, 0x70, 0x16, 0xed, 0x6e, 0x7f, 0x08, 0xc0, 0xc1, 0x4b, 0x52, 0x70, 0x5c, 0x86, 0xd4, 0xf0, 0x00, 0x3b, 0x5e, 0x45, 0xf9, 0x74, 0xc0, 0x64, 0x16, 0xcc, 0xb5, 0xca, 0x3e, 0x9d, 0x52, 0x9a, 0xa9, 0xd4, 0x15, 0xc2, 0x5a, 0x44, 0x6f, 0xa2, 0xd6, 0x9e, 0x82, 0xf4, 0x99, 0x4e, 0x57, 0xe9, 0x22, 0xc1, 0x7c, 0x1c, 0x34, 0x2d, 0xd7, 0x28, 0x1e, 0x41, 0x00, 0x52, 0xd9, 0xe4, 0xaa, 0x1b, 0x30, 0x9b, 0x7d, 0x47, 0x0d, 0x45, 0x8c, 0x66, 0x3e, 0x17, 0xff, 0x25, 0x00, 0xd0, 0xbb, 0x8e, 0x46, 0xa9, 0xc4, 0x36, 0x7e, 0x09, 0x1c, 0xaf, 0x87, 0xdd, 0xfc, 0x06, 0x2a, 0xae, 0x08, 0xa6, 0x5c, 0xb9, 0xe0, 0xea, 0xa7, 0x1c, 0x99, 0x45, 0x9c, 0x5e, 0x7c, 0xb1, 0x12, 0xa2, 0xee, 0x98, 0xa5, 0xe4, 0xcb, 0xee, 0x0d, 0xc5, 0x20, 0xf8, 0x7c, 0x30, 0x22, 0xda, 0x65, 0x49, 0xbe, 0x1e, 0xe7, 0x0a, 0x0a, 0x73, 0xad, 0x84, 0x99, 0xc9, 0x7d, 0xd0, 0x6a, 0xa1, 0x4c, 0x9f, 0xd8, 0x62, 0x8a, 0x92, 0xca, 0x6d, 0xb4, 0x87, 0x32, 0x2d, 0xb9, 0x59, 0x8a, 0xda, 0x1f, 0xce, 0x28, 0xf4, 0xb9, 0xfc, 0x1d, 0x3c, 0xc3, 0x9d, 0xcf, 0x2e, 0xd1, 0xdf, 0x3d, 0x86, 0x2d, 0x87, 0xf5, 0x5c, 0xc1, 0x01, 0x6f, 0xb9, 0xe7, 0x3e, 0x7c, 0xc8, 0x97, 0xb9, 0x70, 0xd5, 0xff, 0x35, 0xac, 0xfe, 0xb0, 0x5c, 0x1c, 0x89, 0x19, 0x28, 0x08, 0xae, 0xeb, 0xfb, 0x2c, 0xd1, 0x7c, 0xb1, 0xc9, 0x4f, 0xab, 0x05, 0x98, 0x98, 0xfe, 0xdc, 0x2f, 0xbd, 0x44, 0xcc, 0xef, };
21251 static const u8 ed25519_924_test_vectors_expected_sig[] = {
21252 	0x3d, 0x0a, 0xdc, 0xe7, 0x7a, 0x4e, 0x04, 0x6f, 0xcb, 0x9b, 0x49, 0xad, 0x5e, 0x6c, 0x68, 0x09, 0xc8, 0xac, 0x33, 0x6c, 0x73, 0x34, 0x04, 0xe5, 0xd3, 0xf0, 0x15, 0xc9, 0x22, 0x5c, 0x3d, 0xf4, 0x6e, 0xf2, 0x1e, 0xa3, 0x4c, 0xff, 0xb3, 0xaf, 0x69, 0x97, 0x4f, 0x8b, 0x7e, 0xab, 0x2d, 0x23, 0xfc, 0xd5, 0xa1, 0xe1, 0x75, 0x3a, 0x40, 0x23, 0xde, 0xb3, 0x81, 0x86, 0x29, 0xa9, 0x8a, 0x0b, };
21253 static const ec_test_case ed25519_924_test_case = {
21254 	.name = "EDDSA25519-SHA512/wei25519 924",
21255 	.ec_str_p = &wei25519_str_params,
21256 	.priv_key = ed25519_924_test_vectors_priv_key,
21257 	.priv_key_len = sizeof(ed25519_924_test_vectors_priv_key),
21258 	.nn_random = NULL,
21259 	.hash_type = SHA512,
21260 	.msg = (const char *)ed25519_924_test_vectors_message,
21261 	.msglen = sizeof(ed25519_924_test_vectors_message),
21262 	.sig_type = EDDSA25519,
21263 	.exp_sig = ed25519_924_test_vectors_expected_sig,
21264 	.exp_siglen = sizeof(ed25519_924_test_vectors_expected_sig),
21265 	.adata = NULL,
21266 	.adata_len = 0
21267 };
21268 
21269 /************************************************/
21270 static const u8 ed25519_925_test_vectors_priv_key[] = {
21271 	0xab, 0xfd, 0x69, 0x7b, 0xfb, 0xc5, 0xb6, 0xff, 0x2b, 0xdf, 0xf3, 0xbc, 0xe1, 0xd7, 0x77, 0xe0, 0x5f, 0xbe, 0x3e, 0xc8, 0xb9, 0x5c, 0xe6, 0x93, 0xd6, 0x23, 0x93, 0x12, 0x09, 0x31, 0x3d, 0x4f, };
21272 static const u8 ed25519_925_test_vectors_message[] = {
21273 	0x89, 0x6b, 0x7a, 0xb8, 0x41, 0x3f, 0xfe, 0x43, 0x9a, 0x2f, 0x44, 0x87, 0xec, 0x49, 0xd6, 0x4e, 0x31, 0xc7, 0x4f, 0x50, 0xac, 0x83, 0xf5, 0x5d, 0xa6, 0x1a, 0x70, 0x03, 0xaa, 0x71, 0x6c, 0x2a, 0x9d, 0xf6, 0xb4, 0x38, 0xe6, 0x2f, 0x53, 0xd8, 0xf0, 0x19, 0x2f, 0x37, 0x36, 0x32, 0x47, 0x60, 0xd7, 0xe8, 0xc4, 0x4a, 0xc0, 0xba, 0xca, 0x3a, 0xe2, 0xa6, 0xfb, 0x93, 0xf1, 0x3d, 0x96, 0x88, 0x67, 0x99, 0xfd, 0x2c, 0x45, 0x51, 0xb0, 0xab, 0x36, 0xf1, 0x73, 0x08, 0x55, 0x55, 0x12, 0x65, 0xa5, 0xa3, 0xc3, 0xc2, 0x1d, 0x95, 0x16, 0xa2, 0x37, 0xf5, 0xdb, 0xc1, 0xc8, 0xe7, 0x29, 0x99, 0xb7, 0x82, 0xc5, 0xca, 0x41, 0xa4, 0xf6, 0xe9, 0x30, 0x8e, 0x64, 0xaf, 0xde, 0xe0, 0xbf, 0x47, 0x9e, 0x54, 0x6b, 0x89, 0xc5, 0x1b, 0xc5, 0xe4, 0xf7, 0x1e, 0x57, 0xfb, 0x24, 0xce, 0x43, 0x7a, 0x8b, 0x81, 0xb9, 0x1d, 0xc7, 0x98, 0xb5, 0xab, 0x36, 0xf2, 0x9a, 0xfd, 0x5b, 0x48, 0xe8, 0x1c, 0x17, 0x6a, 0xe5, 0xed, 0xf9, 0x53, 0x71, 0xba, 0x32, 0x46, 0xfb, 0x43, 0x94, 0x05, 0xbd, 0x10, 0xee, 0xd3, 0x67, 0x8e, 0x3e, 0xc6, 0x23, 0x07, 0xa3, 0xb3, 0xdc, 0x1b, 0xad, 0xba, 0x05, 0x1f, 0x16, 0x77, 0x4b, 0x85, 0x08, 0x81, 0x88, 0xc2, 0xa9, 0xe3, 0x20, 0xa1, 0x61, 0x8d, 0x5f, 0x26, 0xce, 0x94, 0xee, 0x2b, 0x93, 0x3c, 0x30, 0x5f, 0x6d, 0x95, 0x84, 0x95, 0x8e, 0xea, 0x31, 0x56, 0xc3, 0xd1, 0xe0, 0xef, 0x39, 0xa1, 0x86, 0x27, 0x5e, 0xe6, 0x2c, 0x40, 0xf3, 0xc1, 0xac, 0xd1, 0x5d, 0x8b, 0xe6, 0xe0, 0x74, 0x35, 0x1f, 0x53, 0x49, 0xce, 0x3d, 0xf6, 0x95, 0x17, 0x50, 0x5f, 0x45, 0xfa, 0x06, 0xa8, 0x15, 0xc6, 0x9c, 0xa1, 0x8f, 0x45, 0x0f, 0x42, 0xb5, 0xcf, 0x4e, 0xbd, 0x99, 0x26, 0x84, 0x45, 0xe0, 0xf6, 0x81, 0x04, 0xa7, 0xde, 0xeb, 0x0a, 0x11, 0x5b, 0x81, 0x7b, 0x99, 0xe1, 0xa7, 0x3e, 0x0f, 0xa9, 0xd8, 0x7d, 0xb7, 0x1f, 0x8e, 0xc9, 0x4f, 0x87, 0x08, 0xc9, 0xbc, 0x2e, 0x62, 0x2b, 0x96, 0x33, 0x65, 0xeb, 0xcf, 0xb9, 0x7c, 0xfe, 0x73, 0x32, 0x63, 0x00, 0x70, 0xe9, 0x65, 0x4e, 0xaa, 0x60, 0x36, 0x1a, 0x45, 0xd4, 0x02, 0xdc, 0x0a, 0xb2, 0x97, 0x66, 0x52, 0x42, 0x66, 0x7f, 0xbd, 0x99, 0x40, 0xf6, 0xcd, 0x33, 0x19, 0x52, 0x46, 0xa8, 0xc2, 0x86, 0x9a, 0xf7, 0x59, 0xa8, 0x62, 0xd4, 0xb6, 0x41, 0xdb, 0x14, 0x4d, 0x57, 0x32, 0x36, 0x6b, 0x20, 0x63, 0x6c, 0x40, 0x27, 0x78, 0x7f, 0x55, 0x80, 0x27, 0xd7, 0x6f, 0xcb, 0xf8, 0x43, 0x2e, 0xb9, 0x3e, 0x6d, 0x14, 0x56, 0x7d, 0xf8, 0xdb, 0xf2, 0x11, 0xda, 0xeb, 0x56, 0x55, 0xdb, 0x10, 0xac, 0xdd, 0xd0, 0x5e, 0xca, 0x06, 0xac, 0xce, 0xe9, 0xfd, 0xa8, 0xd3, 0xb7, 0x0c, 0xa1, 0xe6, 0xdc, 0x58, 0x7f, 0xa4, 0xb7, 0x8f, 0x63, 0xcd, 0x66, 0x3f, 0xf0, 0x24, 0x38, 0x70, 0x57, 0x0f, 0x4d, 0xcb, 0xaa, 0x3f, 0xb6, 0x26, 0xb4, 0xe1, 0x13, 0xbd, 0xe4, 0x7d, 0x5c, 0x9d, 0xb2, 0xb4, 0xba, 0x6e, 0xc6, 0xdb, 0xf9, 0x18, 0xac, 0x05, 0x69, 0x49, 0xef, 0x3c, 0xfc, 0xb1, 0x15, 0x56, 0x16, 0x15, 0x77, 0x1a, 0x03, 0x5a, 0x43, 0xd3, 0x3b, 0xa2, 0x65, 0x1d, 0xbe, 0xb4, 0x63, 0x48, 0x26, 0x1c, 0xe3, 0xc4, 0xc9, 0xf2, 0x46, 0xd2, 0x3f, 0x94, 0xdb, 0xc2, 0xd0, 0xc1, 0x9b, 0x92, 0x1e, 0x24, 0xc7, 0x7d, 0xa5, 0x99, 0x2f, 0x1b, 0x4b, 0xdf, 0x2e, 0xde, 0xa4, 0x99, 0xf5, 0x41, 0x11, 0x68, 0xac, 0x0c, 0x12, 0xe9, 0x6f, 0x3b, 0x15, 0xd2, 0xe1, 0x2a, 0xc8, 0xd7, 0xb3, 0xed, 0x8d, 0x1e, 0x07, 0xc4, 0x26, 0x7a, 0x25, 0xd3, 0xa3, 0xc3, 0x53, 0xa4, 0x20, 0x8b, 0x74, 0x06, 0x27, 0x8a, 0xab, 0x9e, 0x70, 0x0f, 0x7b, 0x20, 0x6f, 0x48, 0xe6, 0xea, 0x7c, 0xc9, 0x7e, 0x55, 0x4f, 0x15, 0xc9, 0xbe, 0x34, 0x9d, 0xd9, 0x15, 0x14, 0xdb, 0xe8, 0xd8, 0x89, 0xf2, 0xdc, 0xbb, 0xfa, 0x18, 0x2c, 0x9f, 0xaf, 0x58, 0x07, 0xa6, 0x9b, 0x2e, 0x97, 0xfa, 0x77, 0x1a, 0x6f, 0x23, 0x1a, 0x4c, 0x7b, 0x31, 0xd1, 0x17, 0xb8, 0xed, 0x0e, 0x63, 0x0c, 0xdf, 0x13, 0xe0, 0x82, 0xbb, 0x4f, 0x63, 0xc3, 0xf9, 0xac, 0xb3, 0x55, 0x32, 0x04, 0xcc, 0xd7, 0x6e, 0x18, 0x35, 0xc4, 0x6e, 0xec, 0x3d, 0x43, 0xc5, 0x61, 0xbb, 0xf1, 0x7c, 0x92, 0x21, 0x4a, 0x6d, 0xb1, 0x21, 0x2b, 0x60, 0x03, 0xcf, 0x2c, 0xc2, 0x6c, 0x7a, 0xe6, 0x75, 0xfc, 0xd0, 0x53, 0xb9, 0x47, 0xe7, 0x22, 0xf9, 0xe8, 0x57, 0x62, 0xce, 0x8a, 0x16, 0xe4, 0x65, 0x4e, 0xc6, 0x34, 0x2f, 0xc6, 0x46, 0xe5, 0xca, 0xb4, 0x72, 0x79, 0x7e, 0xab, 0xf6, 0x58, 0xba, 0x4a, 0xfd, 0x14, 0x2f, 0xc8, 0xfc, 0x4c, 0x8f, 0x98, 0xf2, 0x3c, 0x24, 0xdc, 0x99, 0x84, 0x7a, 0xe8, 0xce, 0xf0, 0x87, 0x9e, 0x1a, 0xb3, 0xbb, 0x80, 0x97, 0xe4, 0xc3, 0x52, 0x9a, 0xdd, 0x2d, 0x8e, 0x8e, 0x2c, 0x20, 0x69, 0x21, 0x0f, 0x50, 0xac, 0xe1, 0xae, 0x32, 0xa6, 0xc8, 0xe6, 0x38, 0x4a, 0x2b, 0xf7, 0xd7, 0x9c, 0x66, 0xc7, 0x46, 0x14, 0x9c, 0x84, 0xad, 0x75, 0xa3, 0xa1, 0x76, 0xe4, 0x5e, 0x13, 0x6d, 0x94, 0x69, 0x5a, 0xed, 0x4b, 0xfd, 0x08, 0xb4, 0x26, 0xea, 0x8c, 0x4b, 0x93, 0x79, 0xf3, 0x74, 0x25, 0x50, 0xe1, 0xcf, 0x5a, 0xc8, 0x4c, 0x18, 0x17, 0x4d, 0x68, 0x0e, 0x92, 0xaf, 0x2c, 0x18, 0x74, 0xac, 0x1c, 0x13, 0xd2, 0x82, 0x32, 0xde, 0x19, 0x37, 0x68, 0xe5, 0x61, 0x94, 0x7c, 0xbd, 0x6b, 0x79, 0xe9, 0xb9, 0x9d, 0xa6, 0x5c, 0xfb, 0x74, 0xff, 0xb3, 0x2f, 0x7d, 0x3d, 0x20, 0x25, 0xc6, 0x07, 0x63, 0xdc, 0x07, 0xf5, 0x55, 0x39, 0xb4, 0xd2, 0x53, 0xde, 0x1e, 0x6c, 0x25, 0x82, 0x3a, 0x62, 0x58, 0xc7, 0xa9, 0xce, 0xd1, 0x50, 0x1d, 0xce, 0x27, 0x86, 0x89, 0x8a, 0x3e, 0x05, 0xc9, 0xbf, 0xf8, 0xfc, 0x5b, 0x21, 0x25, 0xd0, 0xf4, 0x71, 0x08, 0x8a, 0x13, 0x4b, 0x48, 0x73, 0xc8, 0xd5, 0x5c, 0x04, 0x45, 0xf6, 0xca, 0x39, 0x6b, 0x3d, 0x7b, 0x4b, 0xc2, 0xbf, 0x5c, 0x4d, 0x22, 0x40, 0xda, 0x41, 0x82, 0x93, 0xaf, 0x6a, 0x3e, 0xd8, 0x53, 0xde, 0xdd, 0x3b, 0xf6, 0x68, 0xd9, 0x37, 0xb3, 0x5a, 0xa0, 0xc2, 0xac, 0xbf, 0x23, 0x76, 0x6f, 0x9f, 0x3e, 0x96, 0x82, 0x84, 0x75, 0xab, 0x08, 0x64, 0x96, 0x61, 0x7a, 0x6e, 0x81, 0xd6, 0x53, 0x58, 0x9b, 0x2f, 0xe5, 0x0b, 0x7b, 0xa8, 0xf0, 0xcf, 0x1e, 0x5a, 0x44, 0xd8, 0xd6, 0x2f, 0x08, 0x37, 0x7a, 0xbf, 0xc2, 0x62, 0x97, };
21274 static const u8 ed25519_925_test_vectors_expected_sig[] = {
21275 	0x8c, 0x36, 0xb5, 0xa1, 0x11, 0xc5, 0xa8, 0x11, 0x9f, 0x2d, 0x9d, 0xb5, 0x7e, 0xbb, 0x59, 0x2d, 0xae, 0x86, 0xad, 0x4b, 0xf6, 0x78, 0xc1, 0x49, 0x2e, 0x26, 0xf3, 0xc1, 0x0f, 0xbe, 0x03, 0xf1, 0x05, 0xca, 0xe0, 0xdc, 0x68, 0xb5, 0x52, 0x59, 0xb9, 0xb5, 0x98, 0x92, 0x89, 0xdb, 0x33, 0xd9, 0x5d, 0x2e, 0xe6, 0xb7, 0x56, 0xc7, 0x60, 0xf9, 0xd3, 0xaa, 0x0e, 0x68, 0xa1, 0x89, 0xde, 0x02, };
21276 static const ec_test_case ed25519_925_test_case = {
21277 	.name = "EDDSA25519-SHA512/wei25519 925",
21278 	.ec_str_p = &wei25519_str_params,
21279 	.priv_key = ed25519_925_test_vectors_priv_key,
21280 	.priv_key_len = sizeof(ed25519_925_test_vectors_priv_key),
21281 	.nn_random = NULL,
21282 	.hash_type = SHA512,
21283 	.msg = (const char *)ed25519_925_test_vectors_message,
21284 	.msglen = sizeof(ed25519_925_test_vectors_message),
21285 	.sig_type = EDDSA25519,
21286 	.exp_sig = ed25519_925_test_vectors_expected_sig,
21287 	.exp_siglen = sizeof(ed25519_925_test_vectors_expected_sig),
21288 	.adata = NULL,
21289 	.adata_len = 0
21290 };
21291 
21292 /************************************************/
21293 static const u8 ed25519_926_test_vectors_priv_key[] = {
21294 	0xdc, 0xfa, 0xd5, 0x9f, 0xc6, 0xb6, 0x97, 0x10, 0x9e, 0x72, 0x7f, 0xf6, 0x6a, 0x5f, 0xe9, 0x3a, 0x6a, 0x22, 0x6f, 0x63, 0x1a, 0x64, 0xe5, 0x79, 0x7a, 0xd8, 0xd8, 0xc8, 0xb6, 0x35, 0x87, 0x34, };
21295 static const u8 ed25519_926_test_vectors_message[] = {
21296 	0x7d, 0x92, 0xdd, 0xd8, 0x13, 0x3c, 0x61, 0xc6, 0x10, 0xc1, 0x30, 0x8c, 0x23, 0xae, 0xaf, 0x99, 0x38, 0x84, 0xa4, 0xe6, 0x7f, 0x7b, 0x94, 0xbb, 0x88, 0x6d, 0xad, 0x50, 0x98, 0x69, 0xa9, 0x32, 0xec, 0x4a, 0x27, 0xd4, 0x10, 0xd2, 0xc2, 0x9c, 0xa7, 0xae, 0xae, 0x6f, 0x92, 0x80, 0xcf, 0x6c, 0x4b, 0x06, 0x7e, 0xc7, 0x51, 0xe5, 0xe8, 0xc3, 0x9f, 0xf4, 0x44, 0xd4, 0x22, 0xce, 0xab, 0xae, 0x14, 0x5d, 0x42, 0xf0, 0x47, 0x45, 0x3d, 0xd4, 0x02, 0xd1, 0x79, 0x74, 0x05, 0x03, 0x34, 0x09, 0xe7, 0x2c, 0xc1, 0x9f, 0x79, 0x3d, 0x5d, 0x26, 0x8f, 0xb3, 0xfd, 0x2c, 0x11, 0xea, 0x2c, 0xb0, 0xd7, 0x04, 0x36, 0xe1, 0x8f, 0x9e, 0x88, 0xa0, 0x15, 0x15, 0xdc, 0x86, 0x5f, 0x6a, 0x1e, 0xb2, 0x36, 0x90, 0x32, 0x8f, 0xd7, 0x5d, 0xe2, 0x63, 0x21, 0xa3, 0x8f, 0x12, 0x19, 0x7a, 0x97, 0x20, 0x1b, 0x1d, 0x84, 0x52, 0x94, 0x4f, 0xbc, 0x54, 0x1c, 0xb6, 0x8c, 0x77, 0xd4, 0x95, 0x15, 0xdb, 0x53, 0x26, 0xf2, 0xb1, 0xd0, 0x76, 0x3e, 0xda, 0x06, 0xd2, 0x50, 0xce, 0x2a, 0x5e, 0x0b, 0xbd, 0x7d, 0x16, 0x76, 0xd7, 0xd4, 0x1f, 0xb3, 0xab, 0xe8, 0x8b, 0xdb, 0xe3, 0x72, 0xf9, 0x6b, 0xf7, 0xbb, 0x52, 0x6d, 0x6b, 0x65, 0xa2, 0x51, 0x5e, 0x83, 0xa5, 0x77, 0x04, 0x5b, 0x54, 0x79, 0xb3, 0x8b, 0x85, 0x2f, 0xe4, 0xab, 0x01, 0x1c, 0xbf, 0x21, 0xc0, 0x85, 0xef, 0x5f, 0x0a, 0x7c, 0x1b, 0xed, 0x76, 0x57, 0x2b, 0x0f, 0x86, 0x02, 0x28, 0x06, 0x7a, 0x89, 0x9f, 0x89, 0x5a, 0xe7, 0xf6, 0x25, 0x6e, 0xb6, 0x51, 0x40, 0x87, 0xf9, 0xd6, 0xf5, 0xc3, 0x55, 0x96, 0xc1, 0xf4, 0x80, 0xc7, 0x31, 0x13, 0x54, 0x6c, 0xb9, 0xcc, 0x30, 0xf5, 0x6a, 0xb0, 0x74, 0xa9, 0xff, 0x28, 0xac, 0xab, 0x7e, 0x42, 0x65, 0x0a, 0x96, 0x1d, 0xa3, 0x25, 0xac, 0x5b, 0x65, 0x94, 0xb8, 0x1c, 0x93, 0x25, 0x0a, 0xe7, 0xd3, 0x92, 0x67, 0xa1, 0x9c, 0x97, 0x62, 0x54, 0x07, 0xed, 0xda, 0x04, 0x04, 0xcb, 0xe5, 0xa3, 0x6e, 0x95, 0x9f, 0xc8, 0x20, 0xb2, 0x7e, 0xf5, 0xca, 0xd7, 0x96, 0xc1, 0x1e, 0xaf, 0xf1, 0xc0, 0xe2, 0xf9, 0xd4, 0xb3, 0xc6, 0x49, 0x15, 0x02, 0x19, 0x5d, 0xe0, 0x36, 0x59, 0xb3, 0x64, 0xe4, 0xe8, 0x7b, 0x2b, 0x2d, 0x73, 0x3e, 0xc2, 0x5e, 0x6f, 0x9b, 0x63, 0xd5, 0xf6, 0x91, 0x79, 0xe0, 0xd2, 0x7b, 0xd4, 0xae, 0xcc, 0x8f, 0x12, 0xa5, 0x07, 0xa9, 0x1b, 0xaa, 0x48, 0xd9, 0x9b, 0x3a, 0x42, 0x6c, 0xec, 0xeb, 0xae, 0xf3, 0x7d, 0x73, 0x61, 0x10, 0x6a, 0x84, 0x90, 0x64, 0x43, 0x09, 0xf6, 0xeb, 0x4d, 0x25, 0x96, 0x44, 0x3b, 0x6b, 0x01, 0x18, 0xb9, 0x45, 0xac, 0xec, 0xc6, 0x44, 0x3e, 0xa6, 0x1f, 0xcd, 0x15, 0x5b, 0x54, 0x32, 0x5b, 0xc2, 0xc3, 0x1b, 0xe0, 0x25, 0x0f, 0x94, 0x82, 0xe1, 0x3f, 0xd8, 0xeb, 0x44, 0xe2, 0xae, 0xd7, 0x6b, 0xe8, 0x12, 0xaf, 0x54, 0x53, 0xcb, 0x7f, 0x86, 0x32, 0x45, 0x8f, 0xc8, 0xa0, 0x2a, 0x2f, 0x45, 0x48, 0x0d, 0x79, 0xb0, 0x6c, 0x7d, 0xda, 0x38, 0xb4, 0x69, 0x5d, 0x08, 0xb5, 0xa4, 0x30, 0x50, 0x4f, 0x1a, 0xe2, 0x27, 0x5b, 0x05, 0xc9, 0x1e, 0x79, 0x9d, 0x44, 0x70, 0xf3, 0x8a, 0xbe, 0x77, 0x73, 0x6d, 0xfa, 0x89, 0x5c, 0x19, 0x7e, 0xa4, 0xb6, 0x3c, 0x2d, 0xf1, 0x8e, 0xfe, 0xb1, 0x41, 0x84, 0x83, 0x7b, 0x8d, 0xdf, 0x48, 0x90, 0x95, 0x20, 0xd9, 0x10, 0x45, 0xb9, 0xd9, 0x65, 0x5c, 0x22, 0x5a, 0x83, 0x17, 0x39, 0x60, 0xb4, 0xd7, 0xcd, 0x0d, 0x8b, 0xae, 0x30, 0x23, 0x75, 0x57, 0xf8, 0x69, 0x70, 0x8b, 0xe1, 0x38, 0xad, 0x52, 0x46, 0xc8, 0x66, 0xc6, 0xc0, 0x59, 0xdc, 0x59, 0x7a, 0xbf, 0xd4, 0x94, 0x32, 0x37, 0x37, 0x68, 0x96, 0x73, 0x6b, 0x97, 0xb7, 0xe0, 0x28, 0x9e, 0xf9, 0xbb, 0xd2, 0x94, 0x77, 0x74, 0x5c, 0xb6, 0x0f, 0x46, 0x20, 0x2f, 0x1d, 0xe9, 0x84, 0xf5, 0x09, 0xb1, 0x80, 0x88, 0x33, 0xf5, 0x80, 0x18, 0xcd, 0xe8, 0xc2, 0x6b, 0xef, 0x4c, 0x00, 0x5b, 0xdc, 0xa3, 0x85, 0xb0, 0x57, 0x35, 0x11, 0x0c, 0xa0, 0x2e, 0x56, 0x2b, 0x50, 0xed, 0xdf, 0xf6, 0xfd, 0xe9, 0xfb, 0xb8, 0xd0, 0x30, 0xce, 0xdf, 0x70, 0x31, 0xbb, 0xeb, 0x32, 0xb1, 0x2b, 0x24, 0x2b, 0xe4, 0x9f, 0xde, 0x01, 0x60, 0xc1, 0xfb, 0xde, 0x99, 0xb0, 0x3c, 0x06, 0x2a, 0x1a, 0x47, 0x06, 0x23, 0x45, 0xc9, 0x2e, 0x0b, 0x60, 0x4d, 0x08, 0x0f, 0xac, 0xce, 0x92, 0x43, 0x48, 0x15, 0x29, 0xc7, 0x05, 0x97, 0xdf, 0xd6, 0x43, 0x82, 0xcb, 0x54, 0x06, 0x91, 0xb5, 0x9b, 0x71, 0xb0, 0x94, 0x33, 0x2b, 0xaf, 0x0b, 0xbb, 0x12, 0x5b, 0x63, 0xa4, 0x46, 0xbb, 0x97, 0x49, 0x1c, 0x04, 0x64, 0x32, 0x8c, 0xab, 0xd7, 0x62, 0x7c, 0x46, 0xf3, 0x92, 0xf3, 0xb1, 0x24, 0x82, 0x2f, 0x20, 0x13, 0xc6, 0xe1, 0x6d, 0x3c, 0xa8, 0x7c, 0xc5, 0xbe, 0xcf, 0x56, 0xb0, 0xfc, 0x6e, 0xb2, 0xbf, 0x99, 0x23, 0xb3, 0x01, 0x2b, 0xa2, 0xb6, 0x12, 0x50, 0xa6, 0x33, 0xa4, 0xd2, 0xee, 0x39, 0x12, 0x56, 0xc5, 0x20, 0x95, 0x73, 0x82, 0xaf, 0xf9, 0x70, 0xc5, 0xd2, 0x23, 0x85, 0xc3, 0x34, 0x4c, 0x6d, 0x4b, 0x45, 0x61, 0x57, 0x1c, 0x96, 0x32, 0x9b, 0xf7, 0x56, 0x15, 0x29, 0x75, 0x16, 0xb9, 0xf2, 0xce, 0xb9, 0xf9, 0x97, 0xa3, 0x95, 0x23, 0xaa, 0x0f, 0x58, 0xb4, 0x88, 0x77, 0x2d, 0x82, 0xfc, 0x0d, 0x78, 0xc5, 0xdd, 0x52, 0xec, 0xfa, 0x6b, 0xfa, 0xc6, 0x3a, 0x76, 0xe1, 0x48, 0x08, 0x8b, 0x36, 0xf2, 0x4a, 0x88, 0xe6, 0x83, 0x85, 0x49, 0x6d, 0xda, 0xdf, 0x30, 0x23, 0xf7, 0x2d, 0x87, 0xc2, 0xef, 0xa2, 0x6e, 0x87, 0x7d, 0x32, 0xf1, 0xda, 0x97, 0xcd, 0xb4, 0x2c, 0x8f, 0x15, 0x71, 0x89, 0x88, 0xe4, 0x28, 0xcd, 0x02, 0xf4, 0xd0, 0x95, 0x43, 0xbd, 0x0b, 0xd5, 0xb2, 0xf4, 0x09, 0x96, 0x3d, 0x0f, 0xa3, 0x73, 0x53, 0x1f, 0x78, 0xb5, 0x92, 0xbd, 0x13, 0x7e, 0xea, 0xea, 0x0b, 0x4e, 0x7f, 0x91, 0x82, 0x08, 0xe1, 0xd5, 0x90, 0x08, 0xa8, 0xaf, 0x50, 0x58, 0xf5, 0xd9, 0x23, 0xc4, 0xf3, 0x2d, 0xf1, 0x99, 0x90, 0xf1, 0x0d, 0xd3, 0xf0, 0xeb, 0x20, 0x62, 0x93, 0xb2, 0xb3, 0x44, 0x3f, 0x4a, 0x5d, 0x2d, 0xcc, 0x5f, 0x7d, 0x3b, 0xba, 0xf6, 0xaf, 0x43, 0xfe, 0x45, 0xf5, 0xdb, 0xbe, 0x53, 0xec, 0xf4, 0xbf, 0x1b, 0x4a, 0x13, 0xe2, 0xd4, 0x6e, 0xf8, 0x02, 0x98, 0xd4, 0xf0, 0x1c, 0x40, 0x2e, 0x21, 0x0f, 0xcb, 0x9f, 0xf2, 0x08, 0x4e, 0xc0, 0x3e, 0x42, 0x00, 0x8d, };
21297 static const u8 ed25519_926_test_vectors_expected_sig[] = {
21298 	0x05, 0x2f, 0xf7, 0x95, 0x40, 0x73, 0x74, 0x56, 0xc6, 0xa4, 0x2c, 0x41, 0xc9, 0x7d, 0x6b, 0xf5, 0x17, 0xb8, 0xcf, 0x28, 0x9b, 0xc7, 0x8b, 0x50, 0x3d, 0xee, 0x6a, 0x30, 0xef, 0x51, 0x68, 0xb3, 0x8f, 0x75, 0xbe, 0xac, 0xa1, 0xe1, 0x4d, 0x97, 0x1f, 0x87, 0x73, 0xe3, 0x94, 0x1b, 0xd6, 0xdf, 0x5c, 0xb9, 0x77, 0x8d, 0xea, 0x12, 0x5a, 0x4c, 0x4f, 0xe0, 0x11, 0x6b, 0x70, 0xee, 0x84, 0x0b, };
21299 static const ec_test_case ed25519_926_test_case = {
21300 	.name = "EDDSA25519-SHA512/wei25519 926",
21301 	.ec_str_p = &wei25519_str_params,
21302 	.priv_key = ed25519_926_test_vectors_priv_key,
21303 	.priv_key_len = sizeof(ed25519_926_test_vectors_priv_key),
21304 	.nn_random = NULL,
21305 	.hash_type = SHA512,
21306 	.msg = (const char *)ed25519_926_test_vectors_message,
21307 	.msglen = sizeof(ed25519_926_test_vectors_message),
21308 	.sig_type = EDDSA25519,
21309 	.exp_sig = ed25519_926_test_vectors_expected_sig,
21310 	.exp_siglen = sizeof(ed25519_926_test_vectors_expected_sig),
21311 	.adata = NULL,
21312 	.adata_len = 0
21313 };
21314 
21315 /************************************************/
21316 static const u8 ed25519_927_test_vectors_priv_key[] = {
21317 	0x69, 0x6d, 0xc4, 0x81, 0xf6, 0x19, 0xa9, 0x49, 0x85, 0x63, 0xc8, 0x3d, 0x0d, 0x0e, 0x55, 0x56, 0x5c, 0x14, 0xa0, 0x78, 0x45, 0xfe, 0x4a, 0x66, 0xab, 0xa2, 0x24, 0x7b, 0x11, 0x3f, 0xf8, 0xef, };
21318 static const u8 ed25519_927_test_vectors_message[] = {
21319 	0x2d, 0x4b, 0x3a, 0xd0, 0xcc, 0x99, 0xf9, 0x83, 0xe4, 0x1f, 0x9b, 0x48, 0xc4, 0xa8, 0x18, 0xef, 0xf7, 0x5f, 0xcf, 0xb9, 0x3a, 0x12, 0x29, 0xec, 0x27, 0x40, 0xed, 0x19, 0xc1, 0x07, 0xd6, 0x21, 0xdf, 0x78, 0x05, 0x8d, 0xe7, 0xc2, 0xdd, 0x72, 0x51, 0xf5, 0xff, 0x45, 0x43, 0x40, 0x86, 0x5f, 0x6c, 0x86, 0xda, 0x65, 0x83, 0x1f, 0x66, 0x72, 0xdb, 0x23, 0x17, 0x26, 0xfd, 0xfe, 0x4b, 0x9e, 0xe3, 0x15, 0xd9, 0x3c, 0x72, 0x44, 0xa9, 0x20, 0xdf, 0x37, 0x05, 0x4c, 0x82, 0x44, 0x9d, 0x31, 0x0f, 0x89, 0x29, 0x32, 0xdd, 0xba, 0xd9, 0x4c, 0xc9, 0xbb, 0x39, 0xac, 0x89, 0x37, 0xcc, 0x76, 0xc9, 0x65, 0x21, 0xd3, 0xfd, 0xc0, 0x28, 0xba, 0x23, 0x41, 0x0b, 0x29, 0x02, 0x3e, 0x81, 0x38, 0xfd, 0x3f, 0x52, 0x43, 0x19, 0x88, 0x4e, 0xe5, 0xda, 0xd0, 0xd2, 0x34, 0xc8, 0xdf, 0x66, 0x1f, 0x88, 0x24, 0xbe, 0x47, 0x7e, 0x21, 0x69, 0x9f, 0x63, 0x69, 0xb1, 0x5f, 0xf3, 0xff, 0xef, 0xc1, 0x51, 0xaa, 0x55, 0x5b, 0x3c, 0x3d, 0x76, 0xad, 0xb4, 0x5f, 0x25, 0x67, 0x2d, 0x38, 0x0d, 0x47, 0x2b, 0x31, 0x48, 0xda, 0xbd, 0xef, 0x42, 0x45, 0xb6, 0x8e, 0x82, 0x85, 0x62, 0xf2, 0x5c, 0xc5, 0xb8, 0x1d, 0x9b, 0xbb, 0x24, 0x1b, 0xca, 0x9d, 0x19, 0x34, 0xea, 0x35, 0x3f, 0x95, 0xf7, 0xdb, 0xf3, 0x64, 0x64, 0x33, 0xe8, 0x1a, 0x35, 0x4e, 0x1e, 0x20, 0x56, 0xb8, 0x1c, 0x15, 0xaa, 0x1f, 0xa8, 0xed, 0x7a, 0x9d, 0x1a, 0xf9, 0x92, 0x38, 0xcd, 0x5a, 0x5a, 0xe9, 0xe8, 0x41, 0xc4, 0x8d, 0xc3, 0x48, 0xae, 0x1d, 0xe7, 0xc4, 0x1a, 0xca, 0x23, 0x32, 0x82, 0x36, 0xbc, 0x38, 0xb4, 0x7f, 0x47, 0xc7, 0x36, 0xb2, 0x57, 0xa3, 0x07, 0x8d, 0x57, 0xd5, 0x74, 0xb6, 0x47, 0xa7, 0xfc, 0x8c, 0x4d, 0x01, 0xbc, 0x50, 0x30, 0x21, 0x50, 0xd5, 0x03, 0x2b, 0xfa, 0xcb, 0x04, 0xbb, 0x0f, 0xd1, 0x55, 0xd9, 0x4d, 0x92, 0x06, 0x66, 0x77, 0x20, 0xe1, 0x80, 0xa6, 0x45, 0xaf, 0x46, 0x24, 0x59, 0xe3, 0x32, 0x6d, 0x46, 0x0d, 0xa3, 0xc4, 0x8e, 0x75, 0x72, 0x67, 0x8e, 0x19, 0x19, 0x26, 0x8d, 0x3e, 0x47, 0x40, 0xd6, 0x2a, 0x26, 0xf7, 0xc8, 0x55, 0x9c, 0x1c, 0x43, 0x9b, 0x4b, 0x0b, 0x0c, 0x59, 0x42, 0xa6, 0x20, 0xcf, 0xdb, 0x93, 0xcc, 0x68, 0xaa, 0x15, 0x52, 0x0f, 0xf2, 0x86, 0x42, 0x69, 0xd7, 0xa0, 0xc1, 0x55, 0x78, 0x0a, 0xdc, 0x6c, 0x18, 0x8e, 0x0b, 0x56, 0x5f, 0xb9, 0x59, 0x43, 0x19, 0xe6, 0xf5, 0x1d, 0x15, 0xca, 0xf6, 0xb2, 0x80, 0xe7, 0x15, 0x8f, 0x25, 0x79, 0x94, 0x07, 0xf3, 0xba, 0x0d, 0xd1, 0xce, 0xea, 0x64, 0xb9, 0x32, 0x6d, 0x2c, 0xfd, 0xef, 0x01, 0x7e, 0x1f, 0x17, 0x2f, 0x4d, 0xde, 0x0f, 0x7e, 0x46, 0x13, 0x50, 0x1a, 0xf0, 0x1e, 0xe0, 0xac, 0x30, 0x09, 0x5f, 0x48, 0xb5, 0x95, 0x90, 0x90, 0x2b, 0x1a, 0xec, 0xfe, 0x09, 0x34, 0x13, 0x91, 0x8d, 0x83, 0x5a, 0xdf, 0x96, 0x2e, 0xcf, 0x18, 0x58, 0x0d, 0x16, 0xf9, 0xfd, 0x4f, 0x6f, 0xa1, 0x09, 0x8a, 0xf1, 0xd8, 0xa2, 0xbc, 0x24, 0xdc, 0x86, 0xf7, 0x1d, 0x0a, 0x61, 0xff, 0x15, 0x00, 0x10, 0x86, 0x7d, 0x08, 0x69, 0x87, 0xb5, 0x1d, 0xd0, 0x30, 0xf5, 0x0a, 0xb6, 0xe3, 0x74, 0xb8, 0xe0, 0x11, 0x84, 0xb3, 0xe2, 0xb2, 0x14, 0xab, 0x1c, 0x7f, 0xdf, 0xae, 0xdb, 0xc5, 0x45, 0xe3, 0x8c, 0x3c, 0xd2, 0xf6, 0x98, 0x29, 0x79, 0x54, 0x1f, 0xe0, 0xff, 0x88, 0xbe, 0xd6, 0x75, 0x06, 0xda, 0x95, 0x72, 0x7a, 0xf1, 0xa2, 0x03, 0x8f, 0x32, 0x40, 0xae, 0x5b, 0xfd, 0x30, 0xee, 0x09, 0x21, 0x0e, 0x00, 0xfd, 0xcf, 0x2a, 0x06, 0x4d, 0x5d, 0xb4, 0x61, 0x49, 0x46, 0xbd, 0xa9, 0x72, 0xc6, 0x70, 0x08, 0x1a, 0x6e, 0xe6, 0xa1, 0x0b, 0x63, 0xf6, 0x73, 0xc8, 0x3c, 0x91, 0x5c, 0xa5, 0x57, 0x3e, 0x0e, 0xd6, 0x87, 0xb0, 0x06, 0x7c, 0x40, 0x07, 0x92, 0xa9, 0xbc, 0xc3, 0x34, 0x4e, 0x0e, 0x43, 0xf5, 0xdf, 0x63, 0xfe, 0xd5, 0xef, 0xa8, 0x5e, 0x9a, 0xaf, 0x85, 0xe4, 0xd7, 0xa2, 0xc5, 0x3a, 0x6c, 0x92, 0x82, 0x8e, 0x07, 0xfe, 0x63, 0xe2, 0xd2, 0x3f, 0x1b, 0xdf, 0x97, 0xd8, 0x4a, 0xdc, 0x36, 0xe9, 0xfc, 0x95, 0xfa, 0xad, 0xf0, 0x3e, 0x06, 0xd6, 0x5a, 0x19, 0xc5, 0xe2, 0x85, 0xef, 0xfd, 0x0e, 0xa0, 0xcf, 0xa8, 0x39, 0xd5, 0x5a, 0x0a, 0x0d, 0xbf, 0x6d, 0xa2, 0x87, 0x85, 0xc7, 0x7f, 0x5c, 0x04, 0xbf, 0xd5, 0x99, 0x74, 0xef, 0x37, 0x93, 0xcd, 0xc3, 0x98, 0xdf, 0x7a, 0x1b, 0xbc, 0x9c, 0xfc, 0xfc, 0x3a, 0x51, 0xff, 0xa9, 0xa2, 0x0d, 0x60, 0xc4, 0x7b, 0x24, 0x5d, 0xaf, 0xa3, 0xe4, 0x46, 0x23, 0xcd, 0x71, 0x1d, 0x77, 0x62, 0xc5, 0x0a, 0x67, 0xd6, 0x50, 0xc7, 0xe8, 0xc4, 0xfd, 0x3b, 0xeb, 0xc0, 0xc4, 0x98, 0xd2, 0x15, 0x2a, 0xb9, 0x82, 0x7c, 0x70, 0x0c, 0x7b, 0x28, 0x61, 0x56, 0x57, 0x49, 0xb5, 0x86, 0x4f, 0xec, 0x95, 0xb7, 0xf6, 0xb1, 0x99, 0x4e, 0x78, 0xd8, 0xf8, 0x5d, 0x06, 0x9c, 0xc1, 0x1f, 0x85, 0xbe, 0xd9, 0x71, 0x2f, 0x7a, 0x9f, 0x06, 0x0b, 0x0b, 0xf6, 0x75, 0x32, 0xe8, 0x8e, 0xb9, 0xdf, 0x3e, 0xb4, 0xa8, 0xd2, 0xfb, 0xba, 0xa8, 0x5e, 0xda, 0x92, 0x6d, 0x81, 0xc4, 0x9f, 0xb8, 0x6e, 0x73, 0x73, 0x1b, 0x7e, 0xd2, 0xa1, 0x90, 0x50, 0x78, 0x51, 0x3f, 0x7c, 0xa0, 0xfd, 0xcc, 0x3b, 0x1d, 0x57, 0x6e, 0x6a, 0x60, 0x12, 0x4c, 0x44, 0x61, 0x8d, 0xf1, 0x89, 0x0e, 0x16, 0x97, 0x94, 0x95, 0x6c, 0xb1, 0xec, 0x50, 0x1b, 0xa2, 0x04, 0x99, 0x70, 0xc8, 0xe7, 0x4c, 0xc1, 0x80, 0x06, 0x4c, 0x18, 0x44, 0x68, 0xbe, 0x4f, 0x08, 0x9a, 0x3a, 0xe2, 0x26, 0x3c, 0x85, 0x58, 0x63, 0xb6, 0x2c, 0x28, 0x31, 0x3d, 0xdf, 0x9c, 0xa8, 0x5b, 0xf6, 0x6b, 0x08, 0xa2, 0x64, 0x15, 0x5a, 0xd7, 0xc3, 0x28, 0x23, 0x8d, 0xfe, 0x61, 0x4a, 0x07, 0xed, 0xe9, 0x15, 0x5a, 0x09, 0xcc, 0xaf, 0xf9, 0x22, 0x92, 0x24, 0x93, 0x41, 0xba, 0xed, 0xcb, 0xe0, 0xe6, 0x46, 0x6e, 0x2c, 0x76, 0x04, 0x5e, 0x46, 0xda, 0xd2, 0xfc, 0x89, 0x9a, 0x17, 0x82, 0xe0, 0x09, 0x98, 0xe7, 0x9a, 0x83, 0xab, 0xfa, 0xe9, 0xb7, 0x06, 0xf7, 0x07, 0xf5, 0x8e, 0x73, 0x02, 0x03, 0xe1, 0xd2, 0xcc, 0xa0, 0x28, 0xc9, 0x22, 0xbe, 0xb6, 0xd1, 0x57, 0xfa, 0x7a, 0x98, 0x13, 0x2a, 0x92, 0x1a, 0x3d, 0xa2, 0x1f, 0x2f, 0x76, 0x9b, 0xb6, 0xc1, 0xf5, 0xf1, 0x9e, 0x9e, 0x85, 0xa1, 0x3b, 0x78, 0x1a, 0xf1, 0x41, 0x03, 0x9d, 0x51, 0x4e, 0xe1, 0x07, };
21320 static const u8 ed25519_927_test_vectors_expected_sig[] = {
21321 	0xde, 0xd5, 0xd9, 0x91, 0x93, 0x5c, 0xd1, 0xf9, 0x39, 0x0f, 0x1e, 0x85, 0x92, 0x9c, 0xa1, 0x6d, 0xab, 0xfc, 0x83, 0xe6, 0x5e, 0x43, 0x27, 0x2e, 0xb1, 0x75, 0x16, 0x71, 0xaa, 0x31, 0x93, 0x0c, 0x72, 0x85, 0x55, 0x34, 0x14, 0x30, 0xce, 0x7c, 0x80, 0x48, 0x5d, 0xe5, 0x80, 0x06, 0x42, 0x71, 0x29, 0xa4, 0xd3, 0x4f, 0xd6, 0x81, 0xd5, 0x2d, 0x84, 0x0a, 0x16, 0xba, 0xfa, 0x15, 0x30, 0x02, };
21322 static const ec_test_case ed25519_927_test_case = {
21323 	.name = "EDDSA25519-SHA512/wei25519 927",
21324 	.ec_str_p = &wei25519_str_params,
21325 	.priv_key = ed25519_927_test_vectors_priv_key,
21326 	.priv_key_len = sizeof(ed25519_927_test_vectors_priv_key),
21327 	.nn_random = NULL,
21328 	.hash_type = SHA512,
21329 	.msg = (const char *)ed25519_927_test_vectors_message,
21330 	.msglen = sizeof(ed25519_927_test_vectors_message),
21331 	.sig_type = EDDSA25519,
21332 	.exp_sig = ed25519_927_test_vectors_expected_sig,
21333 	.exp_siglen = sizeof(ed25519_927_test_vectors_expected_sig),
21334 	.adata = NULL,
21335 	.adata_len = 0
21336 };
21337 
21338 /************************************************/
21339 static const u8 ed25519_928_test_vectors_priv_key[] = {
21340 	0xf3, 0xf8, 0xd6, 0x2f, 0xee, 0x3a, 0xf3, 0x75, 0x66, 0x96, 0x30, 0xcb, 0xf0, 0x63, 0xbf, 0xa9, 0x30, 0x18, 0x9a, 0xf1, 0x36, 0xcd, 0x75, 0x91, 0xe2, 0x4d, 0x57, 0x8d, 0x73, 0x66, 0xbf, 0x61, };
21341 static const u8 ed25519_928_test_vectors_message[] = {
21342 	0xe1, 0xdd, 0x1f, 0xfd, 0x73, 0x7a, 0xc6, 0xdc, 0x24, 0xb3, 0xb9, 0xce, 0x3b, 0x79, 0xe8, 0x35, 0xbf, 0x69, 0x8e, 0x93, 0x13, 0x03, 0xd8, 0x09, 0xce, 0xa1, 0x78, 0x2d, 0xc3, 0xaf, 0x63, 0xa0, 0xd5, 0xe6, 0x73, 0x92, 0x82, 0x3d, 0x14, 0x39, 0xe7, 0xb6, 0xe3, 0x37, 0xb0, 0x1c, 0x8b, 0x21, 0x54, 0x34, 0xc2, 0x78, 0x2b, 0x3b, 0xe7, 0x44, 0x3c, 0xb5, 0xc8, 0x81, 0xe5, 0xfb, 0x6c, 0xf3, 0xbb, 0x24, 0x41, 0x28, 0xb4, 0xda, 0x6a, 0x6f, 0x42, 0xb2, 0xbb, 0x2c, 0xd7, 0x51, 0x29, 0xd5, 0x64, 0x18, 0x85, 0x43, 0x48, 0xc3, 0x39, 0xdc, 0xd9, 0x12, 0xb4, 0x55, 0x57, 0xa9, 0x15, 0xe9, 0xfd, 0x7f, 0x37, 0x91, 0x62, 0x36, 0x51, 0x0c, 0xb6, 0xc3, 0x31, 0xc1, 0x40, 0xb8, 0x7d, 0x22, 0x53, 0x11, 0x60, 0x0b, 0x8d, 0x13, 0x2a, 0xc4, 0x74, 0x73, 0x83, 0x9c, 0x72, 0x0f, 0x9f, 0xf0, 0xf9, 0xc1, 0xdc, 0xaa, 0x85, 0x81, 0x5a, 0x9d, 0x27, 0xb9, 0x75, 0x8c, 0xd9, 0x1d, 0xc5, 0xd3, 0xe5, 0x33, 0x26, 0xfc, 0xdf, 0xb2, 0x73, 0x0e, 0x52, 0xbe, 0x31, 0x03, 0x95, 0x7a, 0xc8, 0x91, 0x49, 0xa4, 0xc3, 0x00, 0x4c, 0xb6, 0x03, 0x8c, 0x0d, 0x80, 0xfa, 0x72, 0xac, 0x63, 0x0d, 0x33, 0x3b, 0xe5, 0xad, 0x4a, 0xdb, 0x58, 0x5a, 0xeb, 0x71, 0xae, 0xf1, 0xcd, 0xfd, 0x57, 0xb9, 0x15, 0xfa, 0xc4, 0xf1, 0xaf, 0x78, 0xe7, 0xa5, 0x97, 0xf8, 0xd1, 0xba, 0x06, 0x67, 0x2b, 0x19, 0xc0, 0xb6, 0x58, 0x08, 0xa8, 0xa0, 0x71, 0xff, 0x84, 0x09, 0x03, 0x43, 0x79, 0x58, 0x9f, 0x3d, 0x41, 0x30, 0x2d, 0x2d, 0x39, 0xb3, 0x31, 0x8e, 0x8c, 0x00, 0x90, 0xfa, 0x36, 0xcb, 0x95, 0x88, 0x57, 0xff, 0x5b, 0x21, 0x1c, 0x96, 0x66, 0xe2, 0x7b, 0xc8, 0x95, 0xab, 0x9d, 0x00, 0x6a, 0xba, 0xf5, 0x95, 0x0a, 0x03, 0xff, 0x17, 0xea, 0x98, 0x21, 0x78, 0xa4, 0x46, 0xdd, 0xa2, 0x46, 0x6f, 0x5a, 0x40, 0xb8, 0xf8, 0x95, 0x50, 0x9e, 0x4f, 0x4d, 0x4a, 0x6a, 0x27, 0x39, 0x99, 0x7f, 0xbd, 0x49, 0x68, 0xf8, 0x94, 0x36, 0xce, 0xe3, 0xd8, 0xed, 0xb8, 0xa6, 0xda, 0x9b, 0xd3, 0xd5, 0x5b, 0x06, 0x64, 0x90, 0xe8, 0x33, 0x9c, 0x78, 0x93, 0x5b, 0x77, 0x88, 0x3f, 0x95, 0xb9, 0x32, 0xfa, 0x5e, 0x6b, 0xb7, 0xdf, 0x30, 0x3b, 0xe3, 0x0f, 0xa5, 0x67, 0x24, 0x9f, 0xff, 0xb4, 0x73, 0xa1, 0xe4, 0x64, 0x32, 0x2d, 0x7c, 0x10, 0x3f, 0xe8, 0x22, 0x4c, 0x7e, 0xc5, 0x7b, 0xd3, 0x9b, 0xcd, 0x03, 0x0b, 0x96, 0x78, 0x7a, 0xeb, 0xcd, 0x20, 0xe9, 0xad, 0x65, 0x1c, 0xfa, 0x2b, 0xf0, 0x4b, 0xa7, 0x0a, 0x1c, 0xf6, 0x48, 0xe0, 0xa5, 0x44, 0x95, 0x67, 0x20, 0x2a, 0x93, 0x7a, 0x45, 0xbe, 0xcb, 0xb6, 0xfc, 0xde, 0xd3, 0x0c, 0xf9, 0xb5, 0xc7, 0x48, 0xf8, 0x82, 0xb5, 0xdc, 0x2a, 0x4d, 0x65, 0xbe, 0x69, 0xfd, 0x7d, 0x9c, 0x38, 0x1e, 0x83, 0xd0, 0xdc, 0x2a, 0x34, 0xb6, 0xde, 0xe9, 0x12, 0x20, 0xba, 0x90, 0x6e, 0x51, 0x2f, 0xcd, 0x63, 0x36, 0x8e, 0x2c, 0xe7, 0x33, 0xe4, 0x66, 0xb4, 0xb8, 0x2b, 0x84, 0xfb, 0x0c, 0x71, 0x7d, 0xc8, 0x94, 0x5c, 0xaf, 0x6d, 0x46, 0xac, 0x1c, 0x2f, 0x64, 0x18, 0xf7, 0x72, 0x9e, 0xf4, 0xc3, 0x5e, 0x40, 0x24, 0x22, 0xd6, 0x4b, 0x1c, 0x3e, 0xbd, 0x1b, 0x32, 0xa3, 0x0f, 0xc4, 0xc5, 0xee, 0xce, 0x7d, 0x44, 0x08, 0xff, 0x67, 0x9f, 0xf0, 0x1a, 0x1c, 0x7b, 0x03, 0xca, 0x51, 0x7b, 0xe5, 0x2e, 0x6a, 0xe7, 0x65, 0x0f, 0x7b, 0xad, 0x38, 0x90, 0x1e, 0x34, 0x8a, 0x55, 0x93, 0xbc, 0x99, 0x8f, 0x7c, 0xf2, 0xea, 0x97, 0x72, 0x9c, 0xb0, 0x04, 0xf5, 0x61, 0xb3, 0xb5, 0x8f, 0xe5, 0x98, 0x09, 0xa4, 0x1f, 0xd4, 0xb3, 0xb7, 0x66, 0x60, 0x90, 0x6a, 0xd9, 0xed, 0xa2, 0x3b, 0xf9, 0x25, 0x43, 0x7e, 0xf4, 0x52, 0xb1, 0x6f, 0x54, 0x0b, 0x3b, 0x80, 0xa3, 0x5a, 0x70, 0x93, 0xc2, 0x73, 0x4e, 0xef, 0xe6, 0xfa, 0x97, 0xd8, 0x81, 0xd7, 0x9e, 0xf5, 0xb7, 0x67, 0xd9, 0x88, 0x9f, 0x11, 0x84, 0x77, 0xb7, 0x3f, 0x58, 0xa4, 0xc0, 0xcb, 0x15, 0xe0, 0xac, 0x81, 0x01, 0x12, 0x05, 0x71, 0xca, 0x32, 0xce, 0x87, 0x1f, 0x30, 0x8a, 0xd9, 0x05, 0x7a, 0x80, 0xc8, 0x28, 0x15, 0x4f, 0xb1, 0xbc, 0x2b, 0x20, 0x1d, 0x0c, 0xd1, 0x00, 0x6e, 0x02, 0x2d, 0x44, 0x4d, 0xc9, 0x3f, 0x1b, 0xcf, 0x22, 0x4d, 0xb7, 0x4a, 0x5b, 0x37, 0x3e, 0x15, 0x3e, 0x85, 0x18, 0x54, 0x94, 0x8b, 0x6d, 0xa1, 0x47, 0xb7, 0x32, 0x87, 0xcf, 0x17, 0xd1, 0xfb, 0x72, 0xb4, 0x82, 0x76, 0x11, 0x10, 0x36, 0x09, 0xca, 0xb2, 0xa1, 0x77, 0x9e, 0x97, 0x93, 0xb9, 0xa7, 0x08, 0x20, 0xfc, 0x6f, 0x38, 0x28, 0xa6, 0x4c, 0x9e, 0xac, 0x35, 0xef, 0x7a, 0xa7, 0xb1, 0x76, 0x09, 0xd8, 0xef, 0xf8, 0xa9, 0xe5, 0x2e, 0x4e, 0xbc, 0xd8, 0x6b, 0x1e, 0x14, 0xfd, 0x14, 0x0b, 0xea, 0x47, 0xc6, 0xb8, 0xdd, 0xc4, 0x1e, 0x8c, 0xd2, 0x71, 0xeb, 0x92, 0x28, 0x7c, 0xbd, 0x06, 0x10, 0x51, 0x22, 0x42, 0xf7, 0x6a, 0x1e, 0xf3, 0xea, 0xc1, 0xe4, 0xbb, 0xbc, 0x1a, 0xda, 0xe5, 0x00, 0x34, 0xa7, 0xa2, 0x64, 0x7e, 0x08, 0xb2, 0xfd, 0x20, 0xaa, 0x93, 0xa9, 0x3c, 0xb2, 0xff, 0xde, 0xbf, 0x2e, 0x46, 0x1e, 0xcc, 0xef, 0xbb, 0xd1, 0xfe, 0x89, 0x4c, 0xe7, 0x0a, 0xdf, 0x79, 0x01, 0x73, 0xba, 0xe9, 0x6f, 0x5a, 0x55, 0xa1, 0x88, 0x7e, 0x9a, 0xe0, 0x9f, 0xce, 0xd1, 0xd4, 0x30, 0x6c, 0x29, 0x1c, 0x6b, 0x19, 0xec, 0xac, 0x47, 0x07, 0xe9, 0xef, 0x71, 0x3e, 0xa1, 0x8a, 0x75, 0x62, 0xc6, 0x67, 0x83, 0x26, 0x22, 0x89, 0x92, 0x07, 0x7a, 0x46, 0x69, 0x73, 0x49, 0x66, 0x10, 0x80, 0x00, 0xb4, 0x14, 0x4f, 0x45, 0xa0, 0xc3, 0xa2, 0x86, 0x3a, 0x4c, 0x6a, 0x3c, 0x07, 0x63, 0x2c, 0xb9, 0x3e, 0xb1, 0x97, 0xd2, 0x94, 0x88, 0x4d, 0x9c, 0xa3, 0xdd, 0x4b, 0x21, 0xf3, 0x9d, 0xb7, 0x07, 0xf6, 0x3a, 0x7f, 0x9a, 0x57, 0x0f, 0x7f, 0x0f, 0xeb, 0x99, 0xb2, 0xca, 0x7d, 0xa7, 0xdf, 0x92, 0xa1, 0x77, 0xab, 0xcf, 0xe8, 0x6e, 0xc6, 0x61, 0xd3, 0x0b, 0xcd, 0xcf, 0x15, 0x22, 0xbd, 0xb1, 0xfe, 0x11, 0x67, 0x32, 0x58, 0xdf, 0x7e, 0x46, 0xef, 0x4d, 0x32, 0x66, 0x65, 0x09, 0x31, 0x56, 0x55, 0x3f, 0x28, 0xb3, 0x56, 0x3f, 0xe7, 0x19, 0x2f, 0x72, 0xf5, 0xf9, 0xb3, 0x90, 0x3d, 0x79, 0xfe, 0xa0, 0x4e, 0x2c, 0x48, 0x8b, 0x46, 0x5b, 0x49, 0x78, 0xd6, 0x9f, 0x26, 0xe0, 0x5a, 0x59, 0xd5, 0xed, 0x4e, 0xf4, 0xca, 0xb2, 0x32, 0xac, 0xfd, 0x56, 0x4f, 0xc6, };
21343 static const u8 ed25519_928_test_vectors_expected_sig[] = {
21344 	0x8d, 0x6f, 0x7c, 0xee, 0xb9, 0x30, 0x8b, 0x4a, 0x30, 0x38, 0x79, 0xfc, 0x6c, 0xfa, 0x5c, 0xa8, 0xe0, 0x5d, 0xfc, 0x3d, 0xef, 0xc2, 0xb2, 0xcd, 0x29, 0x10, 0xdd, 0x4b, 0x17, 0xc9, 0x4e, 0xae, 0xe8, 0x45, 0xab, 0xe6, 0x5f, 0xd7, 0x15, 0xdf, 0x05, 0xb0, 0x12, 0x8e, 0x43, 0x16, 0xe2, 0x33, 0x47, 0x99, 0xc6, 0xe8, 0xfa, 0x74, 0x7e, 0xbc, 0x8a, 0x04, 0x0c, 0x74, 0xf5, 0xa1, 0x48, 0x0c, };
21345 static const ec_test_case ed25519_928_test_case = {
21346 	.name = "EDDSA25519-SHA512/wei25519 928",
21347 	.ec_str_p = &wei25519_str_params,
21348 	.priv_key = ed25519_928_test_vectors_priv_key,
21349 	.priv_key_len = sizeof(ed25519_928_test_vectors_priv_key),
21350 	.nn_random = NULL,
21351 	.hash_type = SHA512,
21352 	.msg = (const char *)ed25519_928_test_vectors_message,
21353 	.msglen = sizeof(ed25519_928_test_vectors_message),
21354 	.sig_type = EDDSA25519,
21355 	.exp_sig = ed25519_928_test_vectors_expected_sig,
21356 	.exp_siglen = sizeof(ed25519_928_test_vectors_expected_sig),
21357 	.adata = NULL,
21358 	.adata_len = 0
21359 };
21360 
21361 /************************************************/
21362 static const u8 ed25519_929_test_vectors_priv_key[] = {
21363 	0x86, 0x5a, 0x43, 0x2e, 0xcc, 0xe7, 0xe7, 0x8c, 0x42, 0x70, 0x9f, 0xc1, 0xe5, 0x31, 0xdf, 0x5e, 0x39, 0x59, 0x13, 0x2b, 0x2b, 0x6f, 0x31, 0x8f, 0xd1, 0xc3, 0x45, 0x21, 0xf9, 0xa2, 0x6e, 0x3b, };
21364 static const u8 ed25519_929_test_vectors_message[] = {
21365 	0xb2, 0x31, 0xb6, 0xd2, 0xec, 0xde, 0x49, 0xf5, 0x13, 0xb0, 0xdf, 0x25, 0xaa, 0xfc, 0x3e, 0x5d, 0xa4, 0x5b, 0x6a, 0x99, 0x58, 0xd6, 0x0f, 0x54, 0x64, 0xca, 0x59, 0x3c, 0x03, 0x00, 0x5e, 0xcf, 0x36, 0x1e, 0xf1, 0x69, 0x6b, 0xb6, 0xe5, 0x5d, 0x65, 0x38, 0xe3, 0x4b, 0x38, 0xf3, 0x24, 0xc2, 0x1c, 0xea, 0x5c, 0xc8, 0x1a, 0x00, 0x73, 0x27, 0x8b, 0xb9, 0x27, 0x27, 0xef, 0xf8, 0x1a, 0xf5, 0x61, 0x80, 0x2d, 0xce, 0xf3, 0x3b, 0xec, 0x10, 0xad, 0x65, 0x94, 0xe2, 0x2d, 0x9c, 0x44, 0x18, 0xaf, 0x39, 0x88, 0xa4, 0x3e, 0xd0, 0x87, 0xb9, 0x95, 0x4b, 0xf8, 0xd6, 0x28, 0x3e, 0x4b, 0xea, 0xe8, 0xc0, 0x96, 0xde, 0x66, 0x06, 0x75, 0x1c, 0xbe, 0xd6, 0x85, 0x84, 0x6c, 0x66, 0x30, 0xb9, 0x52, 0x8f, 0xf3, 0x64, 0xa7, 0xc4, 0x84, 0x64, 0x11, 0x34, 0x72, 0xc9, 0x86, 0x0b, 0x33, 0x71, 0x96, 0x3c, 0x91, 0x14, 0x95, 0xa9, 0xc6, 0x28, 0xa3, 0xe3, 0xe4, 0x7a, 0xb0, 0x99, 0x1f, 0x10, 0xdd, 0x1d, 0xd3, 0x31, 0x61, 0x52, 0x52, 0x62, 0xd6, 0x3b, 0xab, 0x64, 0x88, 0x19, 0xd5, 0x7d, 0x12, 0x69, 0xe1, 0x14, 0x82, 0x5c, 0x54, 0x34, 0xe6, 0xb2, 0x84, 0x5f, 0x42, 0x79, 0x5d, 0x4f, 0xb0, 0x83, 0xad, 0x79, 0x40, 0x1f, 0x2a, 0x07, 0x61, 0xc6, 0x34, 0xa5, 0x45, 0xae, 0xc7, 0xcd, 0xb1, 0x3b, 0x5b, 0xe4, 0x49, 0xf1, 0xd8, 0x29, 0x32, 0x63, 0x78, 0xed, 0x1f, 0x49, 0x3f, 0xe8, 0xc8, 0xe9, 0xb0, 0x68, 0xcc, 0x1d, 0xbc, 0xf1, 0x65, 0x55, 0x0b, 0x81, 0x32, 0xc3, 0x19, 0xda, 0xc4, 0x87, 0xb8, 0x7b, 0xb2, 0x2a, 0x54, 0xcd, 0xf6, 0x0a, 0xac, 0x71, 0x51, 0x61, 0x82, 0xa4, 0xe6, 0x9b, 0xa0, 0x83, 0xf6, 0xe8, 0x6d, 0x1a, 0x4f, 0x05, 0x08, 0x3a, 0x77, 0x61, 0x9e, 0xf2, 0x39, 0xf7, 0x02, 0x39, 0x6d, 0x7e, 0x46, 0x96, 0x8c, 0xc0, 0x4a, 0x3b, 0x34, 0xdf, 0x32, 0x65, 0xec, 0xf1, 0x61, 0x57, 0xab, 0xe1, 0x5c, 0x64, 0x2c, 0xd7, 0x42, 0x70, 0x96, 0xd8, 0xd4, 0x0d, 0xb0, 0x02, 0xd1, 0x96, 0xca, 0xb1, 0xbe, 0x30, 0x4b, 0xcf, 0x32, 0x2d, 0x9d, 0x1a, 0x24, 0x51, 0xb6, 0xc1, 0x1e, 0xea, 0xf3, 0xe8, 0xe3, 0xd9, 0x29, 0xf4, 0x80, 0xb6, 0xb7, 0x78, 0x04, 0xfe, 0x84, 0x49, 0x6c, 0xa7, 0x57, 0xe0, 0x43, 0x37, 0x91, 0x4c, 0xe9, 0x44, 0x75, 0xd7, 0x99, 0x0c, 0x74, 0x57, 0xc8, 0xe6, 0x06, 0xf8, 0xbc, 0x20, 0x7d, 0x2d, 0x48, 0x11, 0x9c, 0x80, 0xa6, 0xb4, 0xa9, 0xe0, 0x7b, 0x22, 0x92, 0x26, 0x57, 0x0d, 0xcd, 0x99, 0x49, 0x89, 0xfe, 0xcc, 0x69, 0x4c, 0x6c, 0x2f, 0xb5, 0x97, 0x5c, 0x9a, 0x6a, 0x9b, 0x74, 0xe8, 0x15, 0x9c, 0x27, 0xdd, 0x36, 0x77, 0xdf, 0xd5, 0xcb, 0x65, 0x1f, 0x1e, 0x32, 0xad, 0xfa, 0xfd, 0x81, 0x0b, 0x6e, 0x5d, 0x5e, 0xfb, 0xac, 0xe3, 0x1a, 0xe6, 0xd9, 0xb1, 0x21, 0x91, 0xe8, 0x93, 0x98, 0xda, 0x06, 0x3f, 0x13, 0x8b, 0x75, 0x84, 0xc5, 0x8e, 0x77, 0xe7, 0xf9, 0xfd, 0xd7, 0xfb, 0x9e, 0xf5, 0xd6, 0x8a, 0xe4, 0x9c, 0x6c, 0xca, 0xd2, 0x8d, 0x18, 0xbc, 0x60, 0x09, 0xd4, 0x18, 0x7e, 0xd1, 0x42, 0x02, 0x24, 0xa5, 0x65, 0x8a, 0xad, 0xf1, 0x35, 0xb5, 0xa9, 0x53, 0xf2, 0xdc, 0x3c, 0x8b, 0xfc, 0xaf, 0x66, 0x9e, 0xd5, 0xda, 0x38, 0xd0, 0x14, 0x4f, 0xd9, 0x66, 0x5e, 0x6f, 0x06, 0x77, 0xd3, 0xfc, 0x88, 0x04, 0xe2, 0x1c, 0xc2, 0x5f, 0xd5, 0xe0, 0x1a, 0x3f, 0x3f, 0xa8, 0x3e, 0x57, 0x1e, 0xb2, 0xf8, 0x82, 0xa7, 0x65, 0x9c, 0xe5, 0xd8, 0x64, 0xd8, 0xbb, 0x54, 0x07, 0x2b, 0x09, 0x86, 0xa8, 0x54, 0xf1, 0xa7, 0xf2, 0xd2, 0x72, 0x0d, 0xf8, 0x57, 0xe6, 0xd4, 0x21, 0x96, 0x30, 0x84, 0x1b, 0x1c, 0xcd, 0xcf, 0xc6, 0x72, 0x6b, 0x91, 0xbf, 0xc1, 0x7e, 0x18, 0xc3, 0xe3, 0x48, 0x0c, 0x23, 0xa2, 0xc0, 0x5e, 0x4b, 0xfe, 0xdd, 0xd4, 0xdb, 0x9e, 0xf4, 0x23, 0x88, 0xf2, 0x34, 0xfd, 0x3e, 0x4f, 0x3d, 0xad, 0x66, 0x60, 0x26, 0xe2, 0x78, 0x06, 0x12, 0x37, 0x41, 0x61, 0x31, 0x6a, 0xfc, 0x76, 0x65, 0xf9, 0x41, 0x1b, 0x6c, 0x5a, 0xa7, 0x89, 0x33, 0xb1, 0x80, 0x21, 0xc0, 0x12, 0xb0, 0x84, 0xf3, 0x24, 0x47, 0x60, 0xa4, 0xea, 0x1b, 0xcf, 0x31, 0xcc, 0x9f, 0x5c, 0x40, 0x44, 0xa9, 0xbc, 0xc7, 0x5a, 0x98, 0x67, 0x07, 0xf3, 0x8f, 0x45, 0xac, 0x1c, 0x7f, 0xa1, 0x39, 0xee, 0x95, 0xa6, 0xd8, 0xf1, 0x6c, 0x3c, 0x1e, 0x12, 0x76, 0x4c, 0x4b, 0x0b, 0x11, 0x94, 0xc0, 0xfc, 0x5f, 0x7e, 0xef, 0xf9, 0xa8, 0x48, 0xc4, 0x05, 0x0b, 0x0e, 0x65, 0x16, 0x84, 0x71, 0x9d, 0x43, 0x8a, 0xad, 0x56, 0x01, 0x91, 0x64, 0xfa, 0xe4, 0xf4, 0x88, 0x82, 0x20, 0x5e, 0xce, 0x0b, 0x99, 0x73, 0x67, 0x91, 0x08, 0x4a, 0x75, 0x3b, 0xa7, 0xd5, 0x6e, 0x88, 0xfc, 0xee, 0xa5, 0x33, 0x56, 0x6c, 0x3a, 0x2c, 0xa4, 0x8d, 0xd6, 0xef, 0xc4, 0x9b, 0x27, 0xdb, 0xf1, 0x4f, 0x26, 0x16, 0xce, 0xd6, 0x52, 0xe1, 0x38, 0x33, 0xab, 0x90, 0x28, 0xad, 0xa4, 0x54, 0x43, 0x1c, 0x89, 0xb3, 0xcb, 0x74, 0x41, 0xfd, 0xb8, 0xf2, 0x3e, 0x12, 0xb6, 0x0a, 0x1a, 0x10, 0x4a, 0x2a, 0x8c, 0xf4, 0xa6, 0x4e, 0x87, 0x8a, 0xa2, 0x6f, 0x54, 0xe8, 0x88, 0x1a, 0x4b, 0x15, 0x1a, 0x16, 0xa9, 0x6d, 0xe8, 0xb9, 0x80, 0x7e, 0x72, 0x93, 0x96, 0xeb, 0xe3, 0xe3, 0xd3, 0x94, 0xf8, 0x08, 0xbd, 0x74, 0xb7, 0x31, 0x2f, 0xe6, 0xb8, 0x4b, 0x13, 0x12, 0xaf, 0x8a, 0x1e, 0x41, 0x33, 0x59, 0x9d, 0x07, 0xbd, 0xf3, 0x3d, 0xb2, 0x1e, 0x01, 0x6b, 0x5c, 0x19, 0x6c, 0x1b, 0xa3, 0x11, 0x57, 0x08, 0xf5, 0x81, 0xbb, 0x82, 0xf4, 0xb5, 0x7a, 0x6c, 0xa1, 0xa5, 0x29, 0xe6, 0x4d, 0x19, 0x30, 0x42, 0xc1, 0xdc, 0x5f, 0xaa, 0x0a, 0x03, 0xab, 0xf5, 0x38, 0x49, 0xe1, 0xbd, 0xef, 0xba, 0xb6, 0x4b, 0x1c, 0xb6, 0x0f, 0xe1, 0x0a, 0x3f, 0xc1, 0x82, 0x3a, 0x23, 0x4c, 0x45, 0xf3, 0xb0, 0xdc, 0xe6, 0x6a, 0x46, 0x73, 0x9c, 0x01, 0xae, 0xad, 0x12, 0xde, 0x6f, 0x03, 0x13, 0xc7, 0xbe, 0x71, 0x40, 0x5f, 0x3f, 0xdc, 0x4a, 0x50, 0x7a, 0x9d, 0x84, 0xe8, 0x68, 0x6f, 0x6f, 0xc9, 0x26, 0x35, 0xdb, 0x0f, 0x78, 0x56, 0xc7, 0x37, 0x3a, 0x61, 0x8a, 0x72, 0x52, 0xc1, 0x29, 0xa7, 0x76, 0x0e, 0x20, 0x29, 0x54, 0x3d, 0x72, 0x62, 0x28, 0xc2, 0x1d, 0x00, 0xad, 0x4a, 0xc5, 0x2e, 0x5b, 0x1a, 0x6e, 0x31, 0x20, 0x09, 0x17, 0xf1, 0x5a, 0xf5, 0x15, 0x85, 0x9e, 0x08, 0xf2, 0xa7, 0x9a, 0xce, 0x67, 0x99, 0x1e, 0xd6, 0x90, 0x44, };
21366 static const u8 ed25519_929_test_vectors_expected_sig[] = {
21367 	0x32, 0xbb, 0x75, 0x20, 0xe2, 0x63, 0x9c, 0x6c, 0xca, 0x19, 0xa2, 0xb9, 0x83, 0x6b, 0x08, 0xf8, 0xb0, 0x83, 0xca, 0x33, 0x36, 0x9d, 0xdf, 0x5f, 0x9a, 0x87, 0x7d, 0x4c, 0x7a, 0x9e, 0xb0, 0x5f, 0x9c, 0x3d, 0xc3, 0x4e, 0xd4, 0xcf, 0xa4, 0xb2, 0x83, 0xe5, 0x19, 0x22, 0xb0, 0x94, 0x06, 0x6c, 0xe9, 0xff, 0xa4, 0xd9, 0xdf, 0x62, 0x19, 0x10, 0xca, 0x37, 0xb0, 0xb3, 0x7f, 0xba, 0xbb, 0x0e, };
21368 static const ec_test_case ed25519_929_test_case = {
21369 	.name = "EDDSA25519-SHA512/wei25519 929",
21370 	.ec_str_p = &wei25519_str_params,
21371 	.priv_key = ed25519_929_test_vectors_priv_key,
21372 	.priv_key_len = sizeof(ed25519_929_test_vectors_priv_key),
21373 	.nn_random = NULL,
21374 	.hash_type = SHA512,
21375 	.msg = (const char *)ed25519_929_test_vectors_message,
21376 	.msglen = sizeof(ed25519_929_test_vectors_message),
21377 	.sig_type = EDDSA25519,
21378 	.exp_sig = ed25519_929_test_vectors_expected_sig,
21379 	.exp_siglen = sizeof(ed25519_929_test_vectors_expected_sig),
21380 	.adata = NULL,
21381 	.adata_len = 0
21382 };
21383 
21384 /************************************************/
21385 static const u8 ed25519_930_test_vectors_priv_key[] = {
21386 	0x2b, 0xe1, 0xf9, 0x8c, 0xe6, 0x55, 0x3c, 0x91, 0x5b, 0x6a, 0x09, 0x33, 0xec, 0x0d, 0xe3, 0x47, 0xb3, 0x70, 0xe2, 0x9c, 0xa2, 0x94, 0xe8, 0x00, 0x55, 0x41, 0x23, 0x9f, 0x63, 0xb4, 0x30, 0xd0, };
21387 static const u8 ed25519_930_test_vectors_message[] = {
21388 	0x62, 0x68, 0x20, 0x1f, 0x93, 0x2a, 0x7c, 0xd3, 0xf8, 0x79, 0xae, 0x6a, 0xb8, 0x38, 0x55, 0xa2, 0xf5, 0x02, 0x91, 0xde, 0x78, 0x4d, 0x7d, 0x9e, 0x9a, 0xda, 0xa1, 0xb9, 0xaf, 0xed, 0x6f, 0x5a, 0xea, 0x20, 0x24, 0x0e, 0x59, 0xfe, 0x93, 0xe5, 0xa7, 0x08, 0x8c, 0x95, 0xec, 0x8e, 0x15, 0x74, 0x5f, 0xb8, 0xfd, 0xeb, 0x91, 0xdf, 0x01, 0x51, 0xc7, 0xb4, 0x60, 0x50, 0x67, 0x56, 0x1e, 0xa0, 0x8d, 0xbf, 0x00, 0xc4, 0xff, 0xe1, 0xfd, 0x0a, 0xcf, 0x10, 0x36, 0x56, 0xa7, 0xb5, 0x4f, 0xad, 0x0f, 0x25, 0xab, 0x16, 0xb4, 0xbd, 0xa3, 0x47, 0x17, 0x9e, 0xd1, 0xca, 0xdb, 0x7b, 0x98, 0xbe, 0x08, 0x95, 0xe0, 0x50, 0xdc, 0xbc, 0x37, 0x9d, 0x1f, 0xd5, 0x53, 0xe9, 0x97, 0x95, 0x92, 0x8b, 0x67, 0xa7, 0x52, 0xf8, 0xd2, 0xec, 0x1b, 0x9d, 0x66, 0xbf, 0x6a, 0xc9, 0x97, 0xe7, 0x44, 0xdc, 0x32, 0x7f, 0x24, 0x22, 0x30, 0xf9, 0x2e, 0x79, 0xae, 0x31, 0x27, 0x45, 0xa5, 0xab, 0x6d, 0xde, 0xc1, 0x99, 0x8f, 0xb6, 0x3d, 0xc4, 0xf6, 0xb0, 0x5f, 0x14, 0x72, 0x22, 0xd4, 0xb6, 0x5a, 0xce, 0x90, 0x17, 0xdc, 0x1b, 0xcd, 0x67, 0x5e, 0x49, 0x5f, 0x9e, 0xab, 0xb5, 0xf6, 0x02, 0x13, 0x3f, 0x6c, 0x72, 0xe0, 0x53, 0xe9, 0xf4, 0xae, 0x30, 0xd8, 0x72, 0xd7, 0x8b, 0xf7, 0x1f, 0xeb, 0xa3, 0x7a, 0xcc, 0x59, 0x50, 0x55, 0xc3, 0xbe, 0xa5, 0x3a, 0x05, 0xef, 0x0c, 0x7f, 0x21, 0x2d, 0xcf, 0x4e, 0x0a, 0xf8, 0x38, 0xea, 0x29, 0x28, 0xf4, 0xcd, 0xc9, 0xfd, 0xc8, 0x37, 0xda, 0x25, 0xf2, 0x69, 0x66, 0xb2, 0x45, 0x6a, 0xbe, 0xa6, 0x6a, 0x5d, 0xfb, 0x8f, 0xaa, 0x8f, 0xa0, 0x91, 0xf7, 0x33, 0x1d, 0x54, 0x36, 0xe9, 0x8a, 0x8d, 0x63, 0x23, 0xcc, 0x9e, 0x9a, 0x91, 0xd5, 0xa0, 0x2a, 0x49, 0x51, 0x17, 0x14, 0x84, 0x9b, 0x47, 0x45, 0x4b, 0xaf, 0x99, 0xc5, 0xf8, 0x50, 0xa0, 0x8d, 0x3d, 0x98, 0x41, 0x0e, 0x93, 0x9a, 0x9e, 0x89, 0xb1, 0x50, 0x53, 0x82, 0x5f, 0x3e, 0x9a, 0xee, 0x71, 0x44, 0x74, 0x16, 0x14, 0x07, 0x82, 0xe1, 0xbf, 0x3b, 0x0d, 0x8b, 0x4f, 0xf6, 0x2e, 0x77, 0xa4, 0xa0, 0x3f, 0x71, 0x0a, 0x8a, 0xb7, 0x6c, 0xf6, 0x35, 0x92, 0xc0, 0x5c, 0x44, 0x0c, 0x8f, 0x06, 0x47, 0x70, 0x09, 0x91, 0x63, 0xc1, 0x22, 0x70, 0xf3, 0xd5, 0xec, 0x9a, 0x6b, 0xc9, 0x71, 0x5b, 0xff, 0xfe, 0xc7, 0x69, 0x61, 0x1d, 0x21, 0xfa, 0x00, 0x3c, 0x3c, 0xc8, 0x35, 0x6c, 0x97, 0x5d, 0x37, 0xb6, 0x2b, 0x88, 0xaa, 0xbb, 0x85, 0x97, 0xda, 0xca, 0x19, 0x6c, 0x96, 0x48, 0xa3, 0x1d, 0x15, 0xbb, 0x0b, 0x86, 0xcf, 0x07, 0x0e, 0xe0, 0x1e, 0x51, 0x1e, 0xf3, 0x73, 0xb4, 0xa4, 0x4c, 0x6a, 0x00, 0x16, 0x0a, 0x79, 0x7f, 0x2e, 0x82, 0x0b, 0x71, 0x6f, 0x5c, 0xa6, 0x44, 0x64, 0xe4, 0x18, 0x9a, 0x00, 0xfe, 0xe9, 0x78, 0xd3, 0x5b, 0xf2, 0x04, 0xf7, 0x1d, 0xb1, 0xf5, 0x01, 0xf9, 0xb6, 0xe5, 0xdf, 0xc8, 0x21, 0xa8, 0xaf, 0x5d, 0xbf, 0xef, 0xd3, 0x53, 0xad, 0x36, 0x81, 0xf9, 0xbc, 0x3c, 0x22, 0xc6, 0x7c, 0xb2, 0x11, 0xb4, 0x30, 0xb6, 0xa5, 0x5f, 0x3e, 0x73, 0xda, 0x7c, 0x3a, 0x07, 0xce, 0xb7, 0xd2, 0xfe, 0x25, 0x4b, 0x10, 0xc2, 0x70, 0x3a, 0xb2, 0xe2, 0x29, 0x4d, 0xd0, 0xd3, 0x15, 0x2d, 0xc7, 0xb2, 0x1a, 0xab, 0x87, 0xb1, 0x50, 0xf7, 0x37, 0xa9, 0x47, 0x46, 0x3f, 0xb2, 0x04, 0x17, 0x5d, 0xe8, 0x54, 0x32, 0x36, 0xfb, 0xb0, 0xda, 0x5c, 0x7d, 0x48, 0xc5, 0x7f, 0x61, 0x74, 0x4d, 0xe6, 0xf9, 0x84, 0xaa, 0x8e, 0x61, 0xb9, 0x70, 0xc6, 0x2d, 0x0e, 0xeb, 0x84, 0x9d, 0xa7, 0xe8, 0x9a, 0x61, 0x22, 0x2d, 0x43, 0x20, 0x79, 0xcb, 0xcf, 0x5f, 0x8a, 0x2b, 0xa9, 0x30, 0x30, 0x16, 0x83, 0xc0, 0x78, 0x5c, 0x26, 0xfd, 0xf8, 0x5d, 0xa3, 0x02, 0x08, 0x74, 0x60, 0x45, 0x99, 0xac, 0x6c, 0x84, 0x7e, 0xc2, 0x60, 0x86, 0x58, 0xb5, 0x78, 0x8c, 0x7b, 0x8d, 0x3a, 0x37, 0x44, 0xfd, 0x54, 0x42, 0xe2, 0x4c, 0x8e, 0xec, 0xcd, 0x42, 0x07, 0x56, 0xbd, 0xd8, 0xb8, 0xa7, 0x7c, 0xfd, 0x80, 0x58, 0x96, 0x05, 0xdc, 0xed, 0x9a, 0xfd, 0xa2, 0xbd, 0xb6, 0x30, 0xa0, 0xcb, 0x61, 0x2f, 0x73, 0x9c, 0xe6, 0x17, 0xd5, 0x4e, 0xde, 0x6c, 0xcf, 0x36, 0xaa, 0x31, 0xe7, 0xe3, 0x73, 0xd8, 0xa0, 0xfb, 0x1b, 0x7c, 0x99, 0x06, 0xf7, 0x6b, 0x5f, 0x9d, 0xe8, 0xc2, 0x68, 0x91, 0xde, 0x00, 0x6e, 0xb7, 0x97, 0xea, 0xd4, 0xa8, 0x6f, 0x70, 0x16, 0xf3, 0x4b, 0xcd, 0xe9, 0x2f, 0x94, 0xac, 0x3e, 0x92, 0x0b, 0xa5, 0x8d, 0x6d, 0xff, 0x77, 0x20, 0x78, 0xd8, 0x02, 0xa9, 0x4f, 0x56, 0xcb, 0x26, 0xbf, 0x79, 0x4f, 0xd9, 0x0c, 0xa0, 0xad, 0x4f, 0x2e, 0x7a, 0xcd, 0xc5, 0x92, 0x9b, 0xc7, 0x36, 0x49, 0x97, 0xde, 0xd9, 0x8c, 0xa6, 0x9c, 0x57, 0x39, 0x91, 0xbb, 0x9a, 0xb8, 0x5f, 0x23, 0x5b, 0x63, 0xe7, 0x6f, 0x77, 0xe0, 0xab, 0x45, 0xe7, 0x89, 0x12, 0x38, 0x98, 0x69, 0xaf, 0x21, 0xe7, 0x4e, 0x66, 0xf7, 0xc4, 0x56, 0xb8, 0x27, 0xe6, 0x70, 0xbe, 0xb0, 0xf0, 0x72, 0x66, 0x88, 0xbb, 0x1f, 0x90, 0x36, 0xd3, 0x8d, 0xa0, 0x7d, 0x69, 0xea, 0x36, 0x66, 0xf7, 0x6b, 0xd6, 0x05, 0xd8, 0x2e, 0x2d, 0xd6, 0x38, 0x7e, 0xce, 0x6e, 0x82, 0x4a, 0x56, 0x97, 0x00, 0xf0, 0x1b, 0x19, 0x5d, 0x1a, 0x9b, 0xdc, 0xb0, 0xf9, 0x6a, 0xb5, 0xc5, 0x4e, 0x06, 0xc2, 0x11, 0x9b, 0x40, 0x6b, 0xc4, 0x88, 0x84, 0x80, 0x66, 0x04, 0x18, 0xbb, 0x42, 0x88, 0xea, 0x2f, 0xda, 0x96, 0x63, 0x1b, 0x0e, 0x1f, 0x60, 0xac, 0x86, 0x1d, 0x6c, 0xcc, 0x4c, 0x84, 0x4b, 0x64, 0x7a, 0x7d, 0x74, 0x03, 0xbc, 0x2d, 0x15, 0xba, 0xfe, 0x4a, 0xf6, 0x77, 0xe8, 0x56, 0xfe, 0x0d, 0x2b, 0x5f, 0x66, 0x3b, 0xe4, 0xe4, 0x80, 0xb3, 0x8f, 0x6b, 0x76, 0x6a, 0xdc, 0xd3, 0xd0, 0x52, 0x98, 0xef, 0x13, 0x98, 0xd0, 0x4d, 0x15, 0x23, 0xa6, 0x8b, 0x91, 0xdd, 0x31, 0xcf, 0x5d, 0xc4, 0xb7, 0x3d, 0xec, 0xbf, 0xd7, 0x21, 0x3f, 0x98, 0x1b, 0x20, 0x7e, 0x1f, 0x6e, 0xf2, 0x25, 0xd7, 0x94, 0x8a, 0x1a, 0xa1, 0x7d, 0x8d, 0x57, 0xa1, 0x12, 0xf1, 0xd4, 0x46, 0x8d, 0x2d, 0x28, 0xf7, 0xec, 0x2e, 0x54, 0xb7, 0x4a, 0x69, 0x2c, 0x59, 0x58, 0x02, 0x2e, 0x82, 0x03, 0x1a, 0x41, 0xb3, 0x15, 0x09, 0x0e, 0xd4, 0xd5, 0xbd, 0x7b, 0xd0, 0xb4, 0x51, 0x47, 0x63, 0x38, 0xf7, 0x39, 0xa7, 0xd7, 0x03, 0x1a, 0xf2, 0xd3, 0x6c, 0xaa, 0x09, 0xff, 0xdb, 0xb7, 0xc3, 0x96, 0x50, 0x7c, 0x75, };
21389 static const u8 ed25519_930_test_vectors_expected_sig[] = {
21390 	0x8e, 0x65, 0x9a, 0x3f, 0x53, 0x5a, 0x58, 0x9a, 0x5f, 0xd2, 0xd2, 0x17, 0xcb, 0xcb, 0x8b, 0x77, 0x7e, 0x5a, 0xf2, 0x0b, 0x23, 0x44, 0x32, 0xf7, 0xda, 0xc2, 0x9f, 0x81, 0x0a, 0x2b, 0x47, 0x37, 0xc5, 0xca, 0xb1, 0x0b, 0x59, 0xdf, 0xd0, 0x14, 0x4f, 0x30, 0x90, 0xf5, 0xf9, 0xe0, 0xe6, 0x67, 0xf0, 0xe2, 0x1a, 0x9f, 0x57, 0x3f, 0xe1, 0x3b, 0x1c, 0x28, 0xec, 0xcb, 0xb5, 0x31, 0xa2, 0x05, };
21391 static const ec_test_case ed25519_930_test_case = {
21392 	.name = "EDDSA25519-SHA512/wei25519 930",
21393 	.ec_str_p = &wei25519_str_params,
21394 	.priv_key = ed25519_930_test_vectors_priv_key,
21395 	.priv_key_len = sizeof(ed25519_930_test_vectors_priv_key),
21396 	.nn_random = NULL,
21397 	.hash_type = SHA512,
21398 	.msg = (const char *)ed25519_930_test_vectors_message,
21399 	.msglen = sizeof(ed25519_930_test_vectors_message),
21400 	.sig_type = EDDSA25519,
21401 	.exp_sig = ed25519_930_test_vectors_expected_sig,
21402 	.exp_siglen = sizeof(ed25519_930_test_vectors_expected_sig),
21403 	.adata = NULL,
21404 	.adata_len = 0
21405 };
21406 
21407 /************************************************/
21408 static const u8 ed25519_931_test_vectors_priv_key[] = {
21409 	0x10, 0xbb, 0xe6, 0xe7, 0x61, 0xa7, 0x5c, 0x93, 0x5b, 0x51, 0x7f, 0x09, 0x36, 0xfe, 0xcb, 0x9e, 0xc6, 0xfc, 0x21, 0x5e, 0x58, 0x13, 0x08, 0x00, 0xea, 0x18, 0xd1, 0xff, 0x44, 0x2a, 0x4f, 0x13, };
21410 static const u8 ed25519_931_test_vectors_message[] = {
21411 	0xe8, 0x10, 0x8c, 0x6d, 0xe4, 0x13, 0x37, 0x33, 0xdc, 0x19, 0x9a, 0x73, 0x39, 0x2e, 0x22, 0x6f, 0x71, 0x2c, 0x36, 0xa2, 0x4f, 0xa9, 0x1d, 0x6f, 0xb0, 0x9f, 0x92, 0xdf, 0x21, 0x8d, 0xeb, 0x2d, 0x28, 0x30, 0xa6, 0x68, 0xfd, 0x69, 0x4b, 0x48, 0x09, 0xd0, 0x25, 0x35, 0x07, 0x23, 0x12, 0x47, 0xc7, 0xf2, 0x58, 0xb4, 0xd6, 0x5c, 0x56, 0xbb, 0x69, 0x34, 0x5e, 0xf6, 0xaa, 0x97, 0xe7, 0xc5, 0x9e, 0x81, 0x53, 0x77, 0x5a, 0x5a, 0x3c, 0xf1, 0x09, 0xc4, 0xbc, 0xa9, 0x81, 0x55, 0x69, 0xda, 0x69, 0x32, 0xe8, 0x21, 0x83, 0x42, 0x5b, 0x42, 0xd7, 0x48, 0x3c, 0x9d, 0xbf, 0xcb, 0xd8, 0xeb, 0x38, 0xc8, 0x47, 0x29, 0x57, 0x1e, 0x8e, 0xc9, 0x39, 0x82, 0xc3, 0x17, 0x71, 0x67, 0x59, 0x59, 0x8c, 0x4f, 0x6a, 0x1b, 0x7f, 0x8d, 0xa7, 0x30, 0x6a, 0x78, 0x15, 0x72, 0x1c, 0xaf, 0x02, 0xe7, 0x02, 0x46, 0x71, 0x23, 0x14, 0xf7, 0x66, 0xbe, 0x9c, 0xb1, 0x77, 0xcd, 0x2f, 0xa3, 0xbd, 0xa2, 0x2c, 0xd6, 0x76, 0xc5, 0xd2, 0xe8, 0x6e, 0x8d, 0x79, 0x8f, 0xd3, 0x4f, 0x54, 0x3c, 0x9b, 0xe3, 0x12, 0x96, 0x51, 0xf2, 0x73, 0xf4, 0x84, 0xf0, 0xb9, 0x46, 0x7b, 0x14, 0x09, 0x55, 0xcd, 0x29, 0x81, 0xff, 0x26, 0x03, 0xc0, 0xbd, 0xbb, 0x43, 0x6a, 0xc0, 0x95, 0x5a, 0x11, 0x6c, 0x5e, 0x5f, 0xc3, 0x04, 0x25, 0xe1, 0xfe, 0x78, 0xf6, 0x41, 0x0f, 0x6e, 0xf7, 0x57, 0xf6, 0x04, 0x66, 0x88, 0x54, 0xba, 0xe7, 0x9b, 0xfe, 0x22, 0xe1, 0xa8, 0x5c, 0xe5, 0xee, 0x5d, 0x64, 0x34, 0xb4, 0x61, 0x01, 0x20, 0xea, 0x7e, 0x5d, 0x3d, 0x13, 0x7c, 0xe2, 0x07, 0x51, 0x4f, 0x85, 0x34, 0xad, 0x9b, 0xf3, 0x92, 0xb7, 0xdc, 0x53, 0x55, 0x51, 0x4b, 0x59, 0xf8, 0x35, 0x46, 0x6c, 0x8e, 0xb5, 0x6f, 0x44, 0xed, 0xdc, 0x5b, 0xad, 0x20, 0xcf, 0x0b, 0x48, 0x0b, 0x2e, 0x82, 0x2a, 0x6f, 0x46, 0xfd, 0x95, 0xf3, 0x0f, 0x18, 0x3c, 0x7b, 0xb3, 0x14, 0x3e, 0x4e, 0x61, 0x00, 0xe2, 0xdb, 0xc9, 0xf2, 0xbf, 0x0d, 0x43, 0x07, 0x3e, 0x0f, 0xe6, 0x5f, 0x01, 0xbc, 0xce, 0x6a, 0x1a, 0xe4, 0x01, 0xc1, 0x25, 0x41, 0xbe, 0x3a, 0xe6, 0x8c, 0xde, 0xac, 0x2a, 0x4a, 0xc7, 0x1f, 0x16, 0x63, 0xb5, 0xfd, 0xfc, 0x2e, 0x50, 0xf0, 0xe0, 0x77, 0xfb, 0x3a, 0x0a, 0x8b, 0x8e, 0xee, 0xad, 0x62, 0x7c, 0x1c, 0x3e, 0x79, 0xdd, 0x73, 0x61, 0x04, 0x6f, 0x7e, 0x57, 0xc1, 0x74, 0x36, 0xc3, 0x2d, 0xc4, 0x43, 0x2f, 0x05, 0x00, 0x28, 0xcc, 0x7a, 0xa4, 0x40, 0x8c, 0x2d, 0x29, 0xd1, 0xd7, 0x99, 0x8f, 0xdc, 0xdd, 0xa3, 0x2b, 0xb3, 0x2f, 0x70, 0x4d, 0xc2, 0x63, 0xdb, 0x9b, 0x8e, 0x06, 0xc5, 0x76, 0x30, 0x87, 0x0f, 0x8b, 0xb6, 0xec, 0x66, 0x1f, 0xde, 0x1b, 0x7d, 0xa9, 0x4d, 0x53, 0xb0, 0x47, 0x70, 0x1a, 0x45, 0x88, 0x47, 0x8c, 0x1c, 0x66, 0x23, 0x46, 0x74, 0x1a, 0xea, 0xc4, 0xc2, 0x53, 0x38, 0x55, 0x6a, 0x3d, 0x84, 0x8d, 0xe5, 0xb2, 0xa2, 0x3e, 0xce, 0xa6, 0x1b, 0x77, 0x6b, 0xd0, 0xe8, 0x03, 0x7e, 0xfb, 0x85, 0x01, 0xef, 0xf2, 0x39, 0xc7, 0xfa, 0xcc, 0xa6, 0xc8, 0x36, 0x7e, 0xd7, 0xc8, 0xad, 0xce, 0x91, 0x9f, 0xef, 0x1a, 0x15, 0x5a, 0xe0, 0xd5, 0x47, 0x8a, 0x98, 0x00, 0x2c, 0x95, 0xa1, 0x6f, 0xbf, 0x4c, 0x0e, 0xd0, 0x16, 0xea, 0x5d, 0x38, 0x66, 0xfe, 0x1d, 0xe4, 0x54, 0x83, 0x2a, 0x4e, 0x95, 0x65, 0x97, 0x6b, 0x60, 0xb3, 0xdd, 0x2e, 0xaf, 0x7f, 0xee, 0x61, 0x2f, 0x2b, 0xc0, 0x40, 0xd9, 0x39, 0x75, 0x43, 0x5e, 0xeb, 0xd1, 0x2f, 0x06, 0xeb, 0x09, 0xec, 0xea, 0x2c, 0x66, 0x76, 0x83, 0x08, 0xf5, 0x8c, 0x77, 0xac, 0x51, 0xed, 0x7b, 0xd2, 0x16, 0x36, 0xfc, 0x9c, 0xc3, 0xfd, 0x14, 0x87, 0x0b, 0xd0, 0x6b, 0xdf, 0x12, 0x8a, 0x81, 0xb1, 0x47, 0x92, 0xe6, 0x08, 0xc4, 0x7e, 0xa2, 0xd5, 0x35, 0xca, 0x7a, 0xa2, 0x1e, 0xb8, 0xa8, 0xa5, 0x6d, 0x76, 0x99, 0x16, 0x63, 0xa8, 0x19, 0x0a, 0x95, 0x05, 0x7d, 0x33, 0x67, 0x1e, 0x73, 0xc7, 0xcb, 0xce, 0x5a, 0x98, 0xd3, 0x1e, 0xf0, 0xd7, 0x3b, 0xd0, 0xb1, 0x63, 0x78, 0x7b, 0x7f, 0xdc, 0xd2, 0xdd, 0xfc, 0x72, 0x96, 0x0f, 0x2b, 0xe3, 0x20, 0x84, 0x6d, 0x4b, 0x29, 0x08, 0x0d, 0x7a, 0xeb, 0x5b, 0x7e, 0xa6, 0x45, 0xa2, 0xad, 0x5a, 0x59, 0xc0, 0x12, 0xbf, 0x7b, 0x95, 0x15, 0xd8, 0x59, 0xe1, 0xc1, 0x47, 0x2e, 0xf8, 0xa4, 0xd3, 0xc9, 0x5e, 0x71, 0x1a, 0xf9, 0x7a, 0xe4, 0x61, 0x8e, 0xfb, 0xab, 0x3d, 0xff, 0xe8, 0x8c, 0x9f, 0x6a, 0xf4, 0xa0, 0x9b, 0x0e, 0x73, 0x38, 0x7e, 0x25, 0x1b, 0x77, 0xd7, 0xbf, 0xf5, 0x21, 0x4f, 0x79, 0x18, 0x62, 0xdb, 0x69, 0x88, 0x41, 0x1e, 0x2a, 0xe2, 0xc7, 0x5b, 0xf2, 0x8d, 0x28, 0x60, 0x2a, 0x63, 0x7c, 0x26, 0xf4, 0x9c, 0x18, 0xd3, 0x09, 0xd2, 0xfc, 0x58, 0xa1, 0x26, 0x66, 0x7a, 0xd3, 0xc2, 0xec, 0x16, 0x0c, 0x99, 0xba, 0x40, 0xfb, 0xda, 0xc1, 0x7e, 0x7e, 0x4c, 0x21, 0xa5, 0xd5, 0x07, 0x85, 0x97, 0x62, 0xeb, 0xa0, 0x9c, 0x41, 0x60, 0xdf, 0x66, 0xf5, 0xfe, 0xef, 0xe6, 0x71, 0x5a, 0x28, 0xc5, 0x29, 0x6c, 0xf4, 0x3e, 0x5e, 0x77, 0x1f, 0x31, 0xfc, 0xe5, 0x13, 0x3b, 0xe9, 0x7c, 0xab, 0x57, 0x30, 0x1b, 0x4c, 0x9d, 0xf9, 0xcd, 0x9a, 0x4a, 0xcf, 0x1c, 0x33, 0xfa, 0xc9, 0x46, 0xfa, 0x15, 0x96, 0xfa, 0x65, 0xc8, 0xf3, 0x65, 0x8b, 0xe4, 0x7a, 0x47, 0x3a, 0x62, 0xc5, 0x21, 0x81, 0xec, 0xa1, 0x83, 0xe4, 0x24, 0x6c, 0xd6, 0x24, 0xd8, 0x78, 0x3d, 0xcc, 0xe5, 0xfd, 0xcc, 0x1f, 0xea, 0x17, 0x3f, 0x80, 0x71, 0xf7, 0x07, 0x4f, 0x55, 0x89, 0x7d, 0xe9, 0xbf, 0xe8, 0x4a, 0x6c, 0x4f, 0xdf, 0x80, 0x2d, 0x50, 0x26, 0xb8, 0x14, 0x5e, 0x6c, 0x8c, 0x89, 0x50, 0xaf, 0xc5, 0xb4, 0x0f, 0xd0, 0x35, 0x6f, 0xc5, 0x5e, 0xe1, 0x7e, 0x1f, 0x85, 0x3a, 0x4c, 0x2f, 0xcc, 0x34, 0xa1, 0x36, 0x9b, 0x87, 0xd2, 0x8d, 0xc2, 0xfd, 0x20, 0x10, 0xf1, 0x99, 0x03, 0xaf, 0xf8, 0xe4, 0x6d, 0xe0, 0x49, 0x38, 0xf4, 0x94, 0x82, 0x45, 0xd5, 0xb4, 0x25, 0xd0, 0x74, 0xac, 0xdf, 0x2b, 0xd8, 0x0b, 0xfc, 0x37, 0x35, 0xcc, 0x34, 0xa2, 0x25, 0x90, 0xf1, 0x94, 0xaf, 0x93, 0x13, 0xee, 0xf4, 0xab, 0x5f, 0xde, 0x61, 0xf1, 0xf9, 0xb5, 0x85, 0x78, 0x63, 0x8f, 0xcb, 0x4f, 0x28, 0x50, 0xb2, 0xfc, 0xe6, 0xe0, 0x3d, 0xb4, 0xd0, 0xa8, 0x34, 0x84, 0x81, 0x63, 0xc4, 0xb2, 0x7e, 0x12, 0x9f, 0x5c, 0xc7, 0x4f, 0x67, 0xf0, 0x08, 0xa2, 0x71, 0x2d, 0x1d, };
21412 static const u8 ed25519_931_test_vectors_expected_sig[] = {
21413 	0xf0, 0xf3, 0x57, 0x41, 0x03, 0x73, 0x31, 0x3b, 0x7c, 0x62, 0x52, 0xd6, 0xd9, 0x66, 0x00, 0x36, 0x0c, 0x23, 0x75, 0x2d, 0x43, 0x1c, 0xa8, 0x07, 0x5b, 0xcf, 0xb7, 0x72, 0xd4, 0x9c, 0xd6, 0x09, 0xb6, 0x5c, 0x9c, 0xd8, 0x38, 0xd6, 0x34, 0xd8, 0xd9, 0xb9, 0x5d, 0x1e, 0xe3, 0x0e, 0xde, 0xcc, 0x13, 0xe3, 0xca, 0x99, 0x7b, 0x24, 0x37, 0x30, 0x3f, 0x8a, 0x33, 0xa1, 0xff, 0xc8, 0x33, 0x06, };
21414 static const ec_test_case ed25519_931_test_case = {
21415 	.name = "EDDSA25519-SHA512/wei25519 931",
21416 	.ec_str_p = &wei25519_str_params,
21417 	.priv_key = ed25519_931_test_vectors_priv_key,
21418 	.priv_key_len = sizeof(ed25519_931_test_vectors_priv_key),
21419 	.nn_random = NULL,
21420 	.hash_type = SHA512,
21421 	.msg = (const char *)ed25519_931_test_vectors_message,
21422 	.msglen = sizeof(ed25519_931_test_vectors_message),
21423 	.sig_type = EDDSA25519,
21424 	.exp_sig = ed25519_931_test_vectors_expected_sig,
21425 	.exp_siglen = sizeof(ed25519_931_test_vectors_expected_sig),
21426 	.adata = NULL,
21427 	.adata_len = 0
21428 };
21429 
21430 /************************************************/
21431 static const u8 ed25519_932_test_vectors_priv_key[] = {
21432 	0x18, 0x6d, 0xcc, 0x7e, 0xfc, 0x5e, 0xd7, 0xe6, 0x1a, 0xe5, 0x3d, 0xc4, 0x20, 0x93, 0xba, 0xe8, 0xf1, 0x5d, 0xd9, 0x9f, 0x0f, 0x03, 0x33, 0x26, 0xc5, 0x76, 0xff, 0x75, 0x69, 0x50, 0xd0, 0x6d, };
21433 static const u8 ed25519_932_test_vectors_message[] = {
21434 	0x97, 0x43, 0x64, 0xd6, 0xc8, 0x38, 0x84, 0x2c, 0xcc, 0x4e, 0x74, 0x9e, 0x6a, 0xfd, 0x53, 0x71, 0x70, 0xdc, 0xd8, 0xcc, 0x50, 0xd6, 0x66, 0x54, 0xd1, 0x05, 0x48, 0x23, 0x39, 0xca, 0xbd, 0xf7, 0x4e, 0x32, 0x93, 0x5e, 0xe2, 0x19, 0x27, 0x2e, 0xa1, 0x68, 0x4f, 0xb9, 0x3c, 0x1f, 0xab, 0x42, 0xb5, 0x63, 0x18, 0x39, 0x24, 0x35, 0x91, 0xbd, 0x07, 0xd3, 0xbe, 0x94, 0x9b, 0x0d, 0xd1, 0x5e, 0x31, 0x96, 0xdf, 0x19, 0x6b, 0xa7, 0x52, 0xad, 0x11, 0x21, 0xac, 0x71, 0x12, 0xd5, 0x66, 0x94, 0x4e, 0x15, 0x3a, 0x4e, 0x06, 0x19, 0xb3, 0xa2, 0x32, 0x24, 0x1f, 0x02, 0x0b, 0xe0, 0x71, 0x9f, 0x6b, 0xec, 0x91, 0x8b, 0x26, 0x82, 0x8e, 0xb1, 0x67, 0x0e, 0xcf, 0xc7, 0x3c, 0x66, 0x84, 0x4e, 0xa3, 0xe4, 0x04, 0xc6, 0xa2, 0xfc, 0x01, 0xbe, 0xb4, 0x03, 0xc9, 0xd6, 0xca, 0x55, 0x1a, 0xd8, 0xa6, 0xe7, 0x1f, 0x46, 0x64, 0x7f, 0xa6, 0x05, 0x3f, 0x03, 0x14, 0xf8, 0x12, 0x4d, 0x8d, 0x2b, 0xc1, 0x2c, 0xc8, 0xfa, 0x8d, 0xb9, 0x5f, 0x2b, 0x73, 0x53, 0x75, 0x20, 0x1b, 0x81, 0x6a, 0x9c, 0xf4, 0x0f, 0x83, 0xee, 0x4b, 0x86, 0x71, 0x61, 0x80, 0x32, 0xde, 0x22, 0x9c, 0xe7, 0x62, 0x71, 0xd0, 0x3d, 0x26, 0x72, 0xa1, 0xae, 0x4a, 0x28, 0x8c, 0x85, 0xdc, 0xd2, 0x7f, 0xb8, 0x45, 0x2a, 0x81, 0x32, 0xe9, 0xff, 0x29, 0xe1, 0xe8, 0x9b, 0xf1, 0x1b, 0x1c, 0x83, 0x51, 0x92, 0xc0, 0x4b, 0x13, 0xbe, 0x14, 0xf3, 0xcd, 0xe5, 0xd3, 0x7c, 0xe9, 0x6f, 0x1d, 0xc2, 0xa9, 0xcc, 0xda, 0x0c, 0x4d, 0x73, 0x7b, 0xca, 0x1f, 0xa2, 0x20, 0xd2, 0x1b, 0xf3, 0x60, 0xb9, 0x05, 0x15, 0xbb, 0xd2, 0x26, 0xbb, 0x2a, 0x6c, 0x8d, 0x5f, 0x2a, 0xb0, 0x18, 0xd4, 0x08, 0x4e, 0x24, 0xee, 0x33, 0x3c, 0xe4, 0xe3, 0x9b, 0xcb, 0x6b, 0x46, 0xe7, 0xae, 0xb4, 0xdb, 0x9b, 0x6c, 0x65, 0xb2, 0x44, 0xd9, 0x82, 0x82, 0x3a, 0x77, 0x0f, 0x9c, 0x62, 0xa0, 0xbd, 0xe2, 0xcb, 0xb7, 0xec, 0x36, 0x84, 0x0d, 0x45, 0x51, 0x87, 0xfa, 0xff, 0x4e, 0x48, 0x8a, 0x5c, 0x60, 0x8e, 0xbd, 0xb7, 0xdb, 0x84, 0xd8, 0x7d, 0xad, 0x38, 0x67, 0xe3, 0xb0, 0xd0, 0x4b, 0x64, 0x71, 0x5e, 0x16, 0x56, 0x0a, 0x62, 0xf1, 0xee, 0x03, 0xdf, 0x61, 0x83, 0xfd, 0x5e, 0x37, 0x55, 0x5d, 0xa1, 0x97, 0x2f, 0xca, 0x06, 0x2d, 0x12, 0xbb, 0x84, 0x20, 0xe0, 0x82, 0xda, 0xcb, 0x8d, 0xeb, 0xb9, 0xc1, 0x43, 0x85, 0x41, 0xd0, 0xda, 0x24, 0x64, 0xef, 0x7e, 0xc5, 0x22, 0x63, 0xfb, 0x9b, 0x9a, 0x4c, 0x46, 0x9c, 0x83, 0x32, 0x3e, 0x48, 0x19, 0xdf, 0xdf, 0x4f, 0xa0, 0xa7, 0x70, 0xc3, 0xa7, 0x09, 0x25, 0x4e, 0x05, 0x31, 0x48, 0x30, 0xe8, 0x7f, 0xbb, 0x67, 0x36, 0xc7, 0x2d, 0x9d, 0xab, 0xe0, 0x1a, 0x31, 0x0e, 0x91, 0xeb, 0xbf, 0xae, 0x76, 0x7a, 0x1f, 0xcb, 0x62, 0xf6, 0x4f, 0xa3, 0xba, 0x8d, 0x53, 0x40, 0x0d, 0x64, 0x69, 0xad, 0x1c, 0xcb, 0x81, 0x1f, 0xb9, 0xe1, 0x15, 0xf1, 0x41, 0x27, 0xb1, 0x3e, 0x83, 0x64, 0xaa, 0x2f, 0xe8, 0x0b, 0xbc, 0x88, 0x6a, 0x10, 0xdf, 0x1b, 0x9c, 0xc4, 0xae, 0x46, 0x01, 0xf5, 0x46, 0x1a, 0xf0, 0x91, 0xf5, 0x26, 0xd2, 0x72, 0xda, 0x9b, 0x20, 0x38, 0x57, 0xa4, 0x44, 0x7e, 0xab, 0xde, 0xf4, 0x39, 0x83, 0x04, 0x96, 0xa5, 0x75, 0x9c, 0x21, 0xde, 0x65, 0xba, 0x3a, 0x3c, 0x8b, 0x8e, 0x93, 0x9c, 0x46, 0x13, 0x32, 0xa9, 0x24, 0x85, 0x2c, 0x20, 0x5c, 0x77, 0x11, 0xf3, 0xa6, 0x8a, 0x23, 0x67, 0xa9, 0x45, 0xde, 0xf4, 0xfb, 0xe5, 0xf8, 0x1c, 0x60, 0xcb, 0xb7, 0xe3, 0x94, 0xa2, 0xa4, 0x9b, 0xe9, 0xec, 0x2a, 0xae, 0xb1, 0xf3, 0x30, 0x57, 0x59, 0x79, 0x44, 0x6a, 0xd9, 0xd0, 0xd5, 0x4a, 0xbd, 0x43, 0x6f, 0x28, 0x60, 0xf0, 0x42, 0x34, 0x26, 0xf4, 0xbb, 0xc2, 0x6b, 0x3b, 0x9f, 0x65, 0x0d, 0x69, 0xb1, 0x00, 0x72, 0xd7, 0x47, 0xa3, 0x9e, 0x47, 0x8f, 0x45, 0x5e, 0xaa, 0x12, 0xc7, 0xc6, 0xe1, 0x2b, 0xfc, 0x45, 0x36, 0xa3, 0x59, 0x43, 0x44, 0xbd, 0x02, 0xb6, 0x20, 0xe3, 0xe2, 0xb4, 0xe0, 0xd5, 0x34, 0x08, 0x9d, 0xd7, 0xb0, 0x4f, 0xa6, 0x34, 0x80, 0x45, 0x67, 0x58, 0x6c, 0x62, 0xbe, 0x03, 0x91, 0xc7, 0xbd, 0xb0, 0xa9, 0xfb, 0xc1, 0xef, 0x3b, 0x33, 0x21, 0x1e, 0xdb, 0xf8, 0xef, 0x58, 0xc2, 0xb7, 0xa4, 0x9d, 0x06, 0x66, 0x79, 0x59, 0xd7, 0xe5, 0xd4, 0x46, 0x71, 0xee, 0x73, 0x57, 0xa1, 0x0b, 0xa0, 0xcb, 0x1a, 0x44, 0x5a, 0xe5, 0xd7, 0x09, 0xce, 0x25, 0x5e, 0x92, 0xde, 0x71, 0x59, 0x75, 0xaf, 0x94, 0xb8, 0x9d, 0x4a, 0x29, 0xc7, 0x1f, 0x9d, 0x88, 0xc8, 0x5b, 0x6c, 0xd1, 0x1d, 0x8b, 0x33, 0x5b, 0xf8, 0xf2, 0xc6, 0x58, 0xe6, 0xdd, 0x7c, 0x3f, 0x6c, 0x80, 0xad, 0x4d, 0x0e, 0x5a, 0x6c, 0x87, 0xdb, 0xa7, 0xb5, 0xb8, 0xa8, 0xa4, 0x7e, 0x72, 0xf4, 0xd1, 0xd3, 0xc7, 0x43, 0x63, 0x1d, 0xf9, 0xad, 0xfc, 0xfa, 0x45, 0xce, 0xe0, 0x49, 0x8d, 0x5a, 0x44, 0xa9, 0xf7, 0x5c, 0x83, 0xb7, 0x5b, 0x2a, 0x3c, 0x23, 0x0f, 0xf0, 0x76, 0x7d, 0x38, 0x88, 0xf9, 0x41, 0xee, 0x1b, 0x66, 0x24, 0xdd, 0x0e, 0x12, 0xd0, 0x6e, 0xd1, 0xab, 0x8b, 0xb1, 0x35, 0xff, 0xd3, 0x79, 0xe9, 0xde, 0x37, 0x88, 0xbe, 0x54, 0x1a, 0xad, 0xb2, 0xd6, 0xa7, 0xcc, 0x60, 0x13, 0x16, 0xf2, 0x1e, 0xb9, 0xaa, 0xa9, 0x22, 0xf5, 0x6a, 0x8e, 0x35, 0x26, 0xc9, 0xbd, 0x11, 0x77, 0xfe, 0xfc, 0x2f, 0xbe, 0x3e, 0x43, 0x0b, 0x62, 0x8e, 0xeb, 0xd6, 0x66, 0x1e, 0x3b, 0xa2, 0xd6, 0x31, 0xc6, 0xa8, 0x42, 0x2c, 0x24, 0x1e, 0xcd, 0x96, 0x99, 0x72, 0x41, 0x2f, 0x74, 0xda, 0x6b, 0x12, 0x43, 0xbf, 0x0f, 0xbe, 0xe8, 0xa8, 0x4d, 0x52, 0xe4, 0x0a, 0xee, 0x3f, 0x1e, 0x4f, 0xc8, 0x31, 0x40, 0x2c, 0x62, 0xf3, 0x57, 0x6b, 0x22, 0xe8, 0xe3, 0xc3, 0xdc, 0x4e, 0x16, 0x0b, 0xc3, 0xb6, 0xb9, 0xd2, 0xce, 0x00, 0x58, 0x53, 0x81, 0x2e, 0xaf, 0xc0, 0xa4, 0xe2, 0x5b, 0xa7, 0x12, 0x27, 0x9b, 0x00, 0xba, 0x3f, 0x91, 0x30, 0xff, 0x36, 0xe3, 0xef, 0x19, 0x71, 0xdd, 0xe7, 0x50, 0x8b, 0x27, 0x92, 0xfe, 0x64, 0xd4, 0x75, 0x68, 0x8f, 0xc6, 0xf3, 0x31, 0x3a, 0xad, 0xb7, 0x85, 0x30, 0x2e, 0x6b, 0x7f, 0x9a, 0x84, 0xf2, 0xdb, 0xc2, 0xf3, 0xcf, 0x06, 0x0e, 0xe0, 0x8b, 0x46, 0x37, 0x36, 0xf8, 0x36, 0xdb, 0xb2, 0x62, 0xd3, 0x29, 0x68, 0x4c, 0x20, 0x84, 0x92, 0xd1, 0x7d, 0x81, 0x12, 0x21, 0xbe, 0x02, 0xb6, 0x5e, 0xe2, 0x8e, 0x11, 0xb5, 0x46, 0x92, };
21435 static const u8 ed25519_932_test_vectors_expected_sig[] = {
21436 	0x89, 0x45, 0x06, 0x97, 0x87, 0xc1, 0xc6, 0x76, 0xa8, 0x4a, 0x70, 0x3c, 0xae, 0x1e, 0x0b, 0xac, 0xae, 0xff, 0xd3, 0x3e, 0x91, 0xbe, 0xc3, 0x60, 0x3e, 0x1f, 0x13, 0xfb, 0x17, 0x0e, 0x31, 0xe6, 0xd7, 0x04, 0x9e, 0xda, 0x2b, 0xf6, 0x27, 0x18, 0x0f, 0x45, 0x6c, 0x3f, 0x7a, 0xab, 0xfc, 0xd3, 0x6c, 0x49, 0xa8, 0xc0, 0x4f, 0x8a, 0xe6, 0x92, 0x9e, 0xc5, 0xad, 0xa0, 0x7b, 0x65, 0x72, 0x08, };
21437 static const ec_test_case ed25519_932_test_case = {
21438 	.name = "EDDSA25519-SHA512/wei25519 932",
21439 	.ec_str_p = &wei25519_str_params,
21440 	.priv_key = ed25519_932_test_vectors_priv_key,
21441 	.priv_key_len = sizeof(ed25519_932_test_vectors_priv_key),
21442 	.nn_random = NULL,
21443 	.hash_type = SHA512,
21444 	.msg = (const char *)ed25519_932_test_vectors_message,
21445 	.msglen = sizeof(ed25519_932_test_vectors_message),
21446 	.sig_type = EDDSA25519,
21447 	.exp_sig = ed25519_932_test_vectors_expected_sig,
21448 	.exp_siglen = sizeof(ed25519_932_test_vectors_expected_sig),
21449 	.adata = NULL,
21450 	.adata_len = 0
21451 };
21452 
21453 /************************************************/
21454 static const u8 ed25519_933_test_vectors_priv_key[] = {
21455 	0x07, 0x05, 0xb3, 0x36, 0xc8, 0x9c, 0xa3, 0x5f, 0xfd, 0xde, 0x0a, 0xf0, 0xf9, 0x06, 0xea, 0xcf, 0x62, 0x3c, 0x56, 0xc3, 0xf7, 0x67, 0x38, 0x16, 0x8e, 0x76, 0xfc, 0xd5, 0x88, 0x2d, 0xf7, 0x9e, };
21456 static const u8 ed25519_933_test_vectors_message[] = {
21457 	0x61, 0x6f, 0xe1, 0x5f, 0xcc, 0xb3, 0x31, 0x0f, 0x9e, 0xc7, 0x45, 0x64, 0x47, 0xda, 0xda, 0xf8, 0xe0, 0xa5, 0xfb, 0x26, 0x9b, 0xe1, 0x69, 0xb0, 0xc3, 0xea, 0x2c, 0xfd, 0xaa, 0xa5, 0x5d, 0x37, 0x93, 0x7f, 0xe7, 0x5b, 0x78, 0x32, 0x4a, 0xc2, 0x78, 0xa6, 0x50, 0x47, 0xe0, 0xae, 0x4f, 0x32, 0x7e, 0x97, 0xef, 0xfc, 0xb7, 0xbe, 0xd9, 0x1d, 0x09, 0xda, 0x72, 0x0b, 0x0a, 0x10, 0x1b, 0xe9, 0xe9, 0x6d, 0x0b, 0xa8, 0x5b, 0x1f, 0xf4, 0x9d, 0x8d, 0x1d, 0xf3, 0x62, 0xd3, 0x45, 0x4f, 0x0d, 0xb6, 0x82, 0x55, 0x96, 0x10, 0x1c, 0x97, 0xe5, 0xda, 0xca, 0xd0, 0x7e, 0xc4, 0x92, 0xd3, 0x0f, 0x2d, 0x0c, 0xb7, 0xe7, 0xde, 0x4e, 0x74, 0x4b, 0xb6, 0xa6, 0x10, 0x0b, 0x75, 0x4d, 0xa8, 0x47, 0x41, 0x1d, 0x09, 0xaa, 0xce, 0x8d, 0x5d, 0x41, 0x07, 0x58, 0xb8, 0x30, 0x87, 0xdb, 0x4b, 0x5e, 0x62, 0x97, 0x97, 0x9a, 0x21, 0xfb, 0x65, 0xaf, 0x39, 0x09, 0x52, 0xc4, 0xf9, 0x36, 0x26, 0x0e, 0x72, 0xd7, 0xc7, 0x83, 0x27, 0xb9, 0x4a, 0xa6, 0xcd, 0x61, 0x72, 0x78, 0xb0, 0xce, 0x9e, 0x1b, 0xd3, 0xfb, 0xed, 0x93, 0xb6, 0x9b, 0xc6, 0x49, 0x85, 0xdd, 0xe0, 0xe2, 0xc4, 0x35, 0x7b, 0x50, 0x2f, 0x05, 0x5e, 0xe7, 0xb0, 0xa0, 0x38, 0x84, 0x74, 0xda, 0xe0, 0x2d, 0x6c, 0x1a, 0x73, 0x1f, 0x87, 0x78, 0x5d, 0x75, 0x3a, 0xeb, 0x0d, 0x9c, 0xfd, 0xf8, 0x50, 0x02, 0xdf, 0x56, 0x6f, 0xc2, 0x50, 0x7d, 0xe7, 0xba, 0x6f, 0xd0, 0x35, 0xbe, 0xe1, 0x7a, 0x2e, 0x80, 0x8b, 0x4a, 0x75, 0x88, 0xc5, 0x83, 0x37, 0x5c, 0x82, 0x40, 0x7a, 0x40, 0xae, 0x9e, 0xeb, 0xdf, 0x94, 0xdf, 0x2f, 0xb8, 0xca, 0xbf, 0x17, 0x60, 0x6c, 0x43, 0x9e, 0xa7, 0x04, 0x59, 0xb2, 0x12, 0xaa, 0xe4, 0xa3, 0xf5, 0x30, 0xec, 0xad, 0xc5, 0xe8, 0x8e, 0x25, 0x48, 0xfa, 0x64, 0x3c, 0x7d, 0xdf, 0x50, 0x63, 0xb2, 0xe1, 0x06, 0x73, 0xe5, 0x9d, 0x07, 0xfe, 0x90, 0x68, 0x92, 0xb6, 0x7e, 0xb5, 0x8f, 0x93, 0x88, 0xa5, 0x6b, 0x37, 0x04, 0x52, 0xe9, 0x97, 0x77, 0x55, 0xfc, 0x04, 0xdf, 0xbc, 0x77, 0xda, 0x6c, 0x05, 0xbe, 0xdd, 0xeb, 0xf0, 0x36, 0x52, 0x56, 0xb5, 0x2c, 0x9a, 0xef, 0x8a, 0x82, 0x17, 0x3b, 0x8c, 0x89, 0xfb, 0xd9, 0x8c, 0xea, 0x36, 0xa8, 0xb8, 0x96, 0xfe, 0x66, 0xd3, 0x7c, 0xa7, 0x9b, 0xec, 0x7f, 0xbf, 0xe9, 0x58, 0xfe, 0x89, 0xf6, 0x76, 0x50, 0x85, 0xb3, 0x35, 0xdc, 0x77, 0x03, 0x43, 0xe2, 0x30, 0xca, 0xdd, 0xfa, 0x28, 0x33, 0xda, 0xa6, 0x62, 0xfe, 0x82, 0x08, 0xdd, 0x88, 0x5a, 0x6f, 0xdf, 0x72, 0xe3, 0x6e, 0xcf, 0x22, 0xbb, 0xbb, 0xcb, 0xe7, 0x9d, 0x37, 0x06, 0x50, 0x23, 0x69, 0x40, 0xbc, 0x2e, 0x6d, 0x4a, 0xc7, 0x4f, 0xe4, 0xd5, 0x54, 0xc9, 0xbc, 0x23, 0x2f, 0x07, 0xd2, 0xaf, 0x62, 0x20, 0xd1, 0x57, 0xbd, 0x2d, 0xa6, 0xa6, 0x61, 0x2a, 0x08, 0x1b, 0x4c, 0x99, 0x04, 0xa2, 0x86, 0x9b, 0x13, 0x7e, 0xe3, 0xa0, 0x85, 0x6f, 0x12, 0xb2, 0xeb, 0x87, 0x62, 0xdb, 0x94, 0xed, 0x0b, 0xa1, 0x36, 0xf2, 0x3e, 0x7f, 0xb4, 0xbd, 0x1f, 0xcd, 0xee, 0x10, 0xdd, 0x84, 0xe2, 0xcd, 0x3b, 0x0a, 0x49, 0x14, 0x8a, 0xc7, 0x4d, 0xb4, 0x66, 0xdb, 0xee, 0xf8, 0x1e, 0x6a, 0x8c, 0xe0, 0x86, 0x11, 0x02, 0xde, 0x9b, 0x1a, 0x3e, 0x1d, 0xcf, 0x5c, 0x6b, 0x03, 0x08, 0xa8, 0x2e, 0x3a, 0xc7, 0xc2, 0x28, 0x3c, 0x7c, 0xc2, 0xf3, 0x4f, 0xfa, 0x14, 0x5b, 0x9f, 0x74, 0xb7, 0x99, 0x04, 0xb3, 0x2b, 0x79, 0xe9, 0x60, 0xb8, 0x14, 0xaa, 0xde, 0x63, 0xa0, 0xdf, 0x01, 0x67, 0xdc, 0xd2, 0x4e, 0xd9, 0x0a, 0x8d, 0xa7, 0xb9, 0x34, 0xc7, 0x72, 0x93, 0x2f, 0x5a, 0x47, 0x8f, 0xe2, 0xa7, 0x2f, 0x94, 0x5a, 0x13, 0x09, 0x6e, 0xc3, 0x7c, 0xe7, 0x64, 0xb5, 0x81, 0xeb, 0x89, 0xe5, 0xf6, 0xb2, 0xbd, 0x7e, 0xb8, 0x8b, 0x85, 0xa8, 0x95, 0x87, 0x77, 0x4d, 0x45, 0x8c, 0x58, 0xcd, 0x87, 0x94, 0x57, 0x97, 0x3d, 0x64, 0x8e, 0xf7, 0x71, 0xc5, 0xf1, 0xde, 0xb2, 0x7a, 0x0c, 0xc5, 0xb2, 0x92, 0x46, 0xac, 0x2f, 0xa1, 0x2d, 0x18, 0xdd, 0xc6, 0xb9, 0xf9, 0xac, 0x9c, 0xf1, 0x46, 0xc3, 0xf2, 0x2b, 0x1e, 0x44, 0x99, 0xad, 0xee, 0xfb, 0xcd, 0x22, 0x49, 0x74, 0x0e, 0x13, 0xa2, 0x24, 0xe7, 0xb6, 0xb3, 0xef, 0x15, 0x60, 0x5e, 0x7e, 0x74, 0xe6, 0x8d, 0x7b, 0x72, 0x64, 0x24, 0x09, 0xb9, 0x0c, 0x4e, 0xc1, 0x61, 0xeb, 0x24, 0xc9, 0xb4, 0x0f, 0xf9, 0xc7, 0xe6, 0xe5, 0xda, 0x98, 0x32, 0x2a, 0xca, 0x52, 0xc4, 0x6a, 0x8d, 0xdc, 0x19, 0x0f, 0x1c, 0xab, 0x15, 0x7c, 0x4c, 0x76, 0x19, 0x60, 0x1a, 0x6b, 0x33, 0xdf, 0x6a, 0x50, 0xda, 0x66, 0x1b, 0xc7, 0x53, 0x60, 0xdf, 0xf6, 0x97, 0x50, 0xd3, 0x45, 0x74, 0x09, 0xcc, 0x02, 0x41, 0xc3, 0xe8, 0xc4, 0xb3, 0xe5, 0x06, 0xd4, 0x26, 0xaf, 0x52, 0xb7, 0x02, 0x31, 0xcd, 0x6c, 0x91, 0x26, 0x0c, 0xc4, 0x31, 0xe4, 0xcc, 0xfd, 0x49, 0x6c, 0xa1, 0x4c, 0xea, 0xae, 0x1c, 0xda, 0x78, 0x72, 0x1e, 0x16, 0x33, 0x9d, 0x52, 0x68, 0x2b, 0x69, 0x51, 0xf9, 0x66, 0xc7, 0xda, 0x5c, 0x6e, 0x10, 0xd9, 0x19, 0xae, 0x66, 0xa9, 0xf5, 0x2d, 0xec, 0x10, 0x86, 0x75, 0x38, 0xd3, 0xdf, 0x6d, 0x59, 0x3a, 0x32, 0xdb, 0x69, 0x5a, 0x8d, 0x77, 0x45, 0x70, 0x35, 0x16, 0xea, 0x56, 0xf8, 0xc1, 0xc8, 0xf0, 0xef, 0x53, 0xbd, 0xeb, 0x7f, 0x53, 0xc2, 0xd9, 0x44, 0xf5, 0x11, 0x94, 0x0c, 0xcb, 0x90, 0x62, 0x49, 0x22, 0xac, 0x59, 0x9f, 0x46, 0x19, 0xc3, 0x04, 0x62, 0x07, 0xd6, 0x05, 0xf6, 0xff, 0x94, 0xde, 0x78, 0x8d, 0x25, 0x34, 0x22, 0x29, 0xdc, 0x8a, 0xf9, 0x2b, 0x5f, 0xdf, 0x0d, 0xd7, 0x1d, 0xf2, 0xb4, 0x46, 0xcd, 0xf1, 0xd9, 0xa2, 0x05, 0x24, 0x33, 0x9e, 0xe1, 0xc3, 0x18, 0x26, 0x28, 0x7e, 0xf7, 0x27, 0x81, 0xa7, 0xa3, 0x52, 0x89, 0xf8, 0x5a, 0x15, 0xba, 0x57, 0xc7, 0xfd, 0x5d, 0x88, 0x5b, 0xd0, 0x55, 0x3a, 0xb4, 0x08, 0x05, 0xf5, 0x17, 0xe8, 0xf1, 0xb1, 0xb3, 0xc4, 0xfc, 0x67, 0x71, 0xe6, 0xf2, 0x24, 0xbc, 0x03, 0x11, 0x24, 0xb9, 0xc9, 0xae, 0xb1, 0x9c, 0x5a, 0x96, 0xbf, 0x14, 0x88, 0xe1, 0xe6, 0x6c, 0x6e, 0x88, 0x80, 0x92, 0x30, 0xc8, 0x3a, 0x74, 0x15, 0x55, 0x54, 0xa2, 0x19, 0xec, 0x37, 0x9a, 0xe5, 0x4a, 0x9f, 0xe7, 0x9d, 0xbe, 0xde, 0x3d, 0x57, 0x60, 0x42, 0xa6, 0x35, 0xd1, 0x97, 0xf4, 0xd8, 0x18, 0xc7, 0x78, 0x75, 0x5b, 0x8b, 0x45, 0xe5, 0x13, 0xde, 0xac, 0x88, 0xf6, 0x04, 0x25, };
21458 static const u8 ed25519_933_test_vectors_expected_sig[] = {
21459 	0xd4, 0xa9, 0xba, 0xe8, 0xec, 0xc4, 0x72, 0xc3, 0x76, 0xba, 0xb8, 0x05, 0xc2, 0xce, 0x0c, 0x1c, 0x2e, 0xd5, 0xfc, 0x77, 0x37, 0x15, 0x46, 0x8c, 0xb1, 0xa4, 0x93, 0x45, 0x64, 0xda, 0xce, 0xcf, 0x43, 0x8b, 0x1d, 0xd2, 0xac, 0x1b, 0x5c, 0x5e, 0x33, 0x6a, 0x1e, 0x20, 0x70, 0x1d, 0x5d, 0xcf, 0x3c, 0x8e, 0xe3, 0xad, 0x22, 0x3b, 0x13, 0x9f, 0xa9, 0x0a, 0x1b, 0x55, 0x2e, 0x1b, 0x77, 0x07, };
21460 static const ec_test_case ed25519_933_test_case = {
21461 	.name = "EDDSA25519-SHA512/wei25519 933",
21462 	.ec_str_p = &wei25519_str_params,
21463 	.priv_key = ed25519_933_test_vectors_priv_key,
21464 	.priv_key_len = sizeof(ed25519_933_test_vectors_priv_key),
21465 	.nn_random = NULL,
21466 	.hash_type = SHA512,
21467 	.msg = (const char *)ed25519_933_test_vectors_message,
21468 	.msglen = sizeof(ed25519_933_test_vectors_message),
21469 	.sig_type = EDDSA25519,
21470 	.exp_sig = ed25519_933_test_vectors_expected_sig,
21471 	.exp_siglen = sizeof(ed25519_933_test_vectors_expected_sig),
21472 	.adata = NULL,
21473 	.adata_len = 0
21474 };
21475 
21476 /************************************************/
21477 static const u8 ed25519_934_test_vectors_priv_key[] = {
21478 	0x95, 0x17, 0x4a, 0x09, 0x15, 0x68, 0x4c, 0xdb, 0xb6, 0x19, 0xb0, 0x55, 0x49, 0x5b, 0x00, 0xf1, 0x92, 0x82, 0xcf, 0xfc, 0x3b, 0x05, 0x01, 0x9e, 0x6a, 0xb7, 0x09, 0xa4, 0xa1, 0x74, 0x2b, 0xab, };
21479 static const u8 ed25519_934_test_vectors_message[] = {
21480 	0x5e, 0x1a, 0x74, 0x00, 0x45, 0x6c, 0xad, 0x4f, 0x9b, 0xa8, 0x66, 0x43, 0xbc, 0x7c, 0xbf, 0x3b, 0x35, 0x68, 0xdc, 0xb5, 0x22, 0xb3, 0x70, 0x55, 0xe8, 0xc3, 0x9d, 0x3c, 0x80, 0xf2, 0x28, 0x42, 0x38, 0xe5, 0x72, 0x7f, 0xd7, 0x51, 0x3c, 0xc8, 0xb3, 0x1c, 0x57, 0xae, 0x7b, 0x40, 0x50, 0xaa, 0x81, 0x9f, 0xc2, 0x36, 0x09, 0x30, 0xeb, 0x0d, 0xd6, 0x77, 0xa5, 0xb2, 0xc7, 0x29, 0xfe, 0xb2, 0xda, 0x3a, 0xd7, 0x9a, 0xe7, 0xfc, 0xcd, 0xdd, 0xb6, 0xc0, 0x84, 0x46, 0x26, 0x1e, 0xc9, 0xbb, 0xe5, 0x9c, 0x64, 0xe9, 0x9a, 0xbb, 0xc8, 0x6d, 0x3c, 0x48, 0x35, 0xf0, 0x0f, 0xef, 0xe5, 0x27, 0x43, 0x3a, 0x50, 0x1a, 0x3b, 0x6d, 0x57, 0x2c, 0xf5, 0xe1, 0x2a, 0x88, 0x01, 0x0b, 0x46, 0xa4, 0x72, 0xb9, 0xbd, 0x86, 0x91, 0xa4, 0x07, 0xc3, 0x65, 0xf9, 0xf7, 0x16, 0x34, 0xb4, 0xd9, 0x7e, 0xdf, 0xdf, 0xf0, 0x63, 0x14, 0xc0, 0xc1, 0xb4, 0xeb, 0x93, 0xc7, 0x60, 0x7f, 0x1d, 0x6f, 0xa3, 0x54, 0x65, 0x93, 0x22, 0xc2, 0x84, 0x07, 0x3f, 0x42, 0x60, 0x25, 0x18, 0xc5, 0x4f, 0xdf, 0x26, 0xea, 0x2c, 0x27, 0xc8, 0x0a, 0x6d, 0xfa, 0x20, 0x56, 0x83, 0x91, 0xab, 0x35, 0x72, 0x82, 0xc0, 0x6b, 0x23, 0xbe, 0xdc, 0x1d, 0xf1, 0x26, 0x4b, 0x61, 0x1c, 0x1e, 0x9c, 0xf1, 0x8a, 0xeb, 0xe2, 0x49, 0xfd, 0x86, 0x17, 0xc6, 0xe3, 0xee, 0x98, 0xc5, 0x3c, 0x0f, 0x6f, 0x21, 0x75, 0xc5, 0x7e, 0xf8, 0xe2, 0x06, 0xbd, 0x3c, 0xf1, 0x05, 0x62, 0x7a, 0x98, 0x92, 0xeb, 0x68, 0x99, 0x20, 0x21, 0x3a, 0xae, 0xb6, 0x3d, 0x87, 0x66, 0x3d, 0xbf, 0xa5, 0x3f, 0x0f, 0xb2, 0x81, 0x62, 0x69, 0x48, 0x29, 0x6b, 0x2d, 0xbc, 0xdd, 0xe1, 0xc5, 0x1a, 0xf8, 0x62, 0xee, 0xcf, 0x1c, 0xfe, 0x8a, 0x46, 0xa2, 0xc4, 0xb2, 0x8c, 0xfe, 0x71, 0x30, 0x33, 0x0a, 0xd1, 0x73, 0xf8, 0x71, 0x27, 0xaa, 0xca, 0xff, 0x43, 0xc0, 0xbd, 0xde, 0xa4, 0x8b, 0x00, 0x38, 0x97, 0x6e, 0x66, 0x2c, 0x04, 0xb6, 0xb0, 0x4a, 0xd0, 0x3d, 0xe1, 0x24, 0x62, 0xc2, 0x76, 0x5d, 0xb5, 0x35, 0x04, 0x95, 0x20, 0xcc, 0x11, 0x4a, 0xfd, 0xb6, 0xc9, 0x25, 0x49, 0xb0, 0x54, 0x6a, 0x90, 0x27, 0xd4, 0x49, 0x75, 0x5b, 0xeb, 0x8d, 0x4c, 0x17, 0xe6, 0xa2, 0xa4, 0x75, 0xf9, 0x67, 0x6a, 0x33, 0x7b, 0x4e, 0x86, 0x6d, 0x96, 0x32, 0x5e, 0x38, 0x9a, 0x52, 0xc1, 0x6c, 0x51, 0xe1, 0x8e, 0x0d, 0x81, 0x03, 0x34, 0x0c, 0x84, 0x17, 0xb2, 0xc5, 0x7a, 0x55, 0xd0, 0x42, 0xff, 0x5e, 0x5f, 0xc6, 0x5d, 0xf4, 0x23, 0xe0, 0x09, 0x2b, 0x0e, 0xa8, 0x8b, 0x96, 0xa9, 0x07, 0xc9, 0x51, 0x21, 0xc5, 0x47, 0xa6, 0x80, 0x61, 0xf2, 0x7b, 0xcf, 0xb5, 0x8c, 0xe6, 0xc0, 0x77, 0x28, 0xd4, 0x84, 0x6b, 0xdc, 0xbf, 0x0c, 0x62, 0x54, 0x10, 0xed, 0xf8, 0xde, 0xa8, 0xcb, 0x4c, 0x9d, 0x0b, 0xbe, 0xef, 0xcd, 0xe1, 0x92, 0x73, 0x36, 0x5f, 0x48, 0xd7, 0x5a, 0xec, 0x07, 0xd1, 0xc2, 0x2c, 0xcd, 0x23, 0x06, 0x8a, 0x97, 0xc3, 0xfe, 0x75, 0x2e, 0x87, 0xa3, 0x01, 0x18, 0xfe, 0x2d, 0xfd, 0x52, 0x18, 0xb6, 0xb1, 0x25, 0x15, 0x4e, 0x0e, 0xa3, 0x86, 0xcf, 0x23, 0x9e, 0x31, 0x37, 0xf8, 0xca, 0x6d, 0x8b, 0x74, 0x6b, 0x6a, 0x67, 0xd5, 0x08, 0xcf, 0x8c, 0x1a, 0xb6, 0x3e, 0x57, 0x15, 0xe6, 0x72, 0x1e, 0xda, 0x5c, 0x2b, 0xc3, 0x93, 0xa4, 0x93, 0xdb, 0xd2, 0xf9, 0xa1, 0xfa, 0x92, 0x6b, 0x9a, 0x59, 0xe4, 0x5a, 0x18, 0x0a, 0xee, 0xb0, 0x25, 0x99, 0xa8, 0xcd, 0xd6, 0x86, 0xf8, 0x89, 0xb4, 0x85, 0x27, 0x23, 0xcb, 0x6d, 0xbf, 0xb5, 0x01, 0x4c, 0xab, 0x5f, 0x65, 0x8a, 0x30, 0x9a, 0x47, 0x22, 0x39, 0x36, 0x0e, 0xea, 0xf6, 0x4f, 0xc8, 0x20, 0x3a, 0x3c, 0x70, 0x89, 0x70, 0xe1, 0x5c, 0xbc, 0xf1, 0x36, 0x25, 0x5d, 0x96, 0x44, 0x6c, 0x39, 0xa9, 0x27, 0x03, 0x1d, 0x26, 0x7d, 0x69, 0xec, 0xd5, 0x1d, 0x7a, 0xf6, 0xe9, 0x1f, 0xb4, 0xae, 0xf9, 0xd7, 0x8c, 0x33, 0x35, 0xe9, 0x07, 0x11, 0x33, 0xcf, 0xb8, 0xe2, 0x12, 0x99, 0x90, 0xc6, 0x46, 0x37, 0xc7, 0xad, 0xf1, 0xda, 0xef, 0x2d, 0xc2, 0x6c, 0x11, 0x63, 0x39, 0x9f, 0x3f, 0xe1, 0xe7, 0x92, 0x33, 0x80, 0x92, 0xef, 0x6f, 0x8d, 0xfa, 0xf2, 0x57, 0x30, 0xdd, 0x2f, 0xe8, 0xd9, 0x78, 0xf6, 0xf7, 0x70, 0xf5, 0x2b, 0x68, 0x23, 0x81, 0x76, 0x56, 0x4c, 0xee, 0x5f, 0xbb, 0x98, 0x50, 0xb3, 0xb3, 0xa0, 0x4d, 0x94, 0x84, 0x60, 0x41, 0x78, 0x26, 0xeb, 0x2e, 0xb2, 0x4f, 0xcc, 0x5f, 0xe3, 0x53, 0x34, 0xbb, 0x95, 0x21, 0xe8, 0x7b, 0xc4, 0xdb, 0xde, 0x2a, 0xc9, 0xe1, 0xc9, 0x89, 0x49, 0xdc, 0x2d, 0x29, 0xad, 0x27, 0x9e, 0x38, 0x84, 0xb9, 0x05, 0x26, 0x8e, 0xbd, 0x08, 0x08, 0xbf, 0x41, 0x82, 0x57, 0xe7, 0x5e, 0x26, 0x2b, 0x4d, 0x01, 0xb0, 0x24, 0xa6, 0xe9, 0xaa, 0x7b, 0xd5, 0x01, 0xdb, 0xa9, 0x4f, 0xf5, 0x06, 0x39, 0x4b, 0x4b, 0x0a, 0xe6, 0x08, 0x1e, 0xa7, 0x30, 0x30, 0xc4, 0x3a, 0x6a, 0x91, 0x76, 0x6e, 0x80, 0xf9, 0xf4, 0x2c, 0x0b, 0x68, 0xb9, 0x84, 0x19, 0xad, 0x4e, 0xee, 0x4e, 0x9a, 0x72, 0x8a, 0xde, 0xfb, 0xd7, 0x9e, 0x83, 0x1f, 0x70, 0xf4, 0x1e, 0x62, 0xb4, 0x3f, 0x0b, 0xf4, 0x2b, 0x3b, 0x2c, 0xd5, 0x3b, 0x55, 0x89, 0x11, 0x76, 0x64, 0xbc, 0xeb, 0xc4, 0x09, 0xa7, 0x64, 0x5b, 0x1e, 0xed, 0xda, 0x48, 0x2f, 0x6b, 0x68, 0x95, 0xa6, 0x57, 0xba, 0x78, 0x9b, 0x89, 0xe5, 0x02, 0xd6, 0x99, 0x87, 0x51, 0xd6, 0x30, 0x3d, 0xed, 0x5f, 0xa1, 0x56, 0xee, 0x7c, 0x7e, 0xaf, 0xe5, 0x46, 0x26, 0xd1, 0x03, 0x2c, 0x4d, 0x7d, 0xff, 0x97, 0x7f, 0x1d, 0xcc, 0x86, 0xaf, 0x89, 0xb1, 0xe6, 0x46, 0xa4, 0xaf, 0xc2, 0x42, 0x7e, 0xd0, 0x2c, 0x0a, 0xf5, 0xd3, 0x28, 0x90, 0xf9, 0x5f, 0x13, 0xf9, 0x8c, 0x1a, 0x5b, 0x1d, 0x9f, 0xbb, 0x78, 0x1a, 0x9a, 0x89, 0xb2, 0xd7, 0x90, 0xc1, 0x46, 0x5c, 0x2d, 0x15, 0x20, 0x92, 0x6f, 0xdf, 0x28, 0xc1, 0x7d, 0x9b, 0xa1, 0x58, 0x7a, 0xd7, 0x61, 0xf0, 0x65, 0xd3, 0x39, 0xbd, 0xbe, 0x38, 0xf4, 0x13, 0x3f, 0x45, 0xbb, 0x59, 0x78, 0x74, 0x26, 0x42, 0xf9, 0x0c, 0x06, 0x5e, 0xe4, 0x89, 0x25, 0x73, 0xf6, 0x05, 0x9f, 0x8b, 0x4c, 0xe2, 0xc1, 0x3e, 0x73, 0xb8, 0x91, 0xcd, 0x05, 0xf2, 0x37, 0x31, 0xed, 0x9a, 0x07, 0xe2, 0xb8, 0xff, 0xdc, 0x96, 0x3b, 0x06, 0xa5, 0x10, 0x20, 0x9c, 0x32, 0x99, 0x80, 0x94, 0x9f, 0x40, 0xd8, 0x07, 0x3a, 0x01, 0x3e, 0xf8, 0x43, 0xdf, 0xcc, 0x4a, 0x33, 0x94, };
21481 static const u8 ed25519_934_test_vectors_expected_sig[] = {
21482 	0x78, 0x0f, 0x40, 0xc2, 0x0f, 0xea, 0x3b, 0x11, 0xc9, 0x42, 0x2a, 0x43, 0xb9, 0xa6, 0xf7, 0x96, 0x11, 0xe7, 0xf1, 0xf5, 0x9d, 0x14, 0x88, 0xc1, 0x5a, 0x5f, 0xd2, 0xd3, 0x2c, 0x07, 0xda, 0xdc, 0x39, 0x1c, 0x38, 0x95, 0x3e, 0xdf, 0x0d, 0xe4, 0x8b, 0xe5, 0x2d, 0xa2, 0xaf, 0x33, 0x5c, 0x47, 0xb8, 0xd2, 0xe4, 0x4a, 0xb9, 0xd3, 0xdf, 0xb7, 0x6b, 0xa5, 0x38, 0xb0, 0x66, 0x49, 0x52, 0x08, };
21483 static const ec_test_case ed25519_934_test_case = {
21484 	.name = "EDDSA25519-SHA512/wei25519 934",
21485 	.ec_str_p = &wei25519_str_params,
21486 	.priv_key = ed25519_934_test_vectors_priv_key,
21487 	.priv_key_len = sizeof(ed25519_934_test_vectors_priv_key),
21488 	.nn_random = NULL,
21489 	.hash_type = SHA512,
21490 	.msg = (const char *)ed25519_934_test_vectors_message,
21491 	.msglen = sizeof(ed25519_934_test_vectors_message),
21492 	.sig_type = EDDSA25519,
21493 	.exp_sig = ed25519_934_test_vectors_expected_sig,
21494 	.exp_siglen = sizeof(ed25519_934_test_vectors_expected_sig),
21495 	.adata = NULL,
21496 	.adata_len = 0
21497 };
21498 
21499 /************************************************/
21500 static const u8 ed25519_935_test_vectors_priv_key[] = {
21501 	0x5a, 0x84, 0xaf, 0x28, 0xa5, 0xdf, 0xbb, 0x32, 0x33, 0xa1, 0x2f, 0x08, 0x37, 0xf6, 0xe8, 0x65, 0x4e, 0x7b, 0x0d, 0xe1, 0x6b, 0x02, 0xab, 0x3c, 0xd1, 0x78, 0x64, 0x43, 0x1e, 0x27, 0x46, 0x67, };
21502 static const u8 ed25519_935_test_vectors_message[] = {
21503 	0x8a, 0xac, 0xd1, 0xb8, 0xa3, 0x9b, 0xf0, 0x8f, 0xd5, 0xc9, 0x18, 0x44, 0x6b, 0xe5, 0x76, 0xe6, 0xa3, 0xf2, 0x7f, 0x36, 0x11, 0x16, 0x07, 0xf2, 0x7b, 0x56, 0xa9, 0x12, 0x14, 0xe7, 0x63, 0xf9, 0xa8, 0x7f, 0xb1, 0xd1, 0x84, 0x48, 0x98, 0x96, 0x17, 0x97, 0x64, 0x44, 0x60, 0xbf, 0xf5, 0x48, 0x8c, 0x10, 0x3a, 0xf6, 0x05, 0xe8, 0x74, 0x0e, 0x46, 0x58, 0x8f, 0xb9, 0x3e, 0x44, 0x3c, 0x3b, 0xb2, 0x3b, 0x92, 0xc0, 0x98, 0x70, 0xa5, 0x57, 0x65, 0x3a, 0x1f, 0x22, 0xc2, 0x18, 0xcc, 0xbc, 0x2f, 0x07, 0x3a, 0x27, 0x2d, 0x17, 0xa8, 0x42, 0x23, 0xef, 0x14, 0x3f, 0x4c, 0x7c, 0xa2, 0x58, 0x46, 0x0b, 0x79, 0x81, 0x69, 0x67, 0x3d, 0xa1, 0x07, 0xd7, 0x1d, 0x53, 0x56, 0xce, 0x9f, 0x75, 0x59, 0xa9, 0xb0, 0x38, 0x39, 0x99, 0x51, 0xf5, 0x75, 0xc7, 0x7e, 0x5b, 0x9d, 0x05, 0x29, 0x57, 0x8e, 0xca, 0xa2, 0xe2, 0x08, 0x92, 0x66, 0xfc, 0x52, 0x6c, 0x5d, 0x40, 0x9f, 0xbd, 0x46, 0xbb, 0x86, 0x84, 0x1c, 0xb5, 0x54, 0xf5, 0xbd, 0x3c, 0x99, 0x71, 0x3b, 0x04, 0x3e, 0x40, 0x46, 0x53, 0xa7, 0xd0, 0x13, 0x44, 0xd4, 0xdb, 0x83, 0x1a, 0x21, 0x72, 0x82, 0xc4, 0xb3, 0x36, 0x40, 0x56, 0x53, 0xb8, 0x5d, 0x27, 0xa4, 0x6b, 0x25, 0x9c, 0x85, 0x5c, 0xdd, 0x85, 0xad, 0x6f, 0x7a, 0xed, 0xd8, 0x35, 0xff, 0x55, 0x00, 0xcc, 0x8b, 0xaf, 0x0f, 0xb2, 0xf0, 0x18, 0x09, 0x10, 0xc6, 0x46, 0x72, 0xb8, 0xa8, 0xd4, 0x9d, 0x98, 0x4a, 0x78, 0x29, 0x3c, 0xf5, 0x77, 0x9c, 0x91, 0x0c, 0x3a, 0xcb, 0xbc, 0xa4, 0x55, 0xa8, 0x54, 0x66, 0xe5, 0x35, 0x04, 0x4f, 0x34, 0x80, 0x26, 0x2c, 0x09, 0x0f, 0xbf, 0x4e, 0x0b, 0x0d, 0xb4, 0xd1, 0xef, 0x87, 0x59, 0xda, 0xaf, 0xdd, 0x8d, 0x05, 0x90, 0x74, 0x82, 0x46, 0x1f, 0xf9, 0x10, 0xc4, 0x37, 0x19, 0x5d, 0x5c, 0x7f, 0xed, 0x9d, 0x82, 0xcb, 0x94, 0xe7, 0xe4, 0xec, 0x24, 0xda, 0x05, 0x3e, 0x47, 0xf6, 0x2b, 0x48, 0x8e, 0xb7, 0xb2, 0x44, 0x65, 0x5c, 0x7d, 0xbb, 0x20, 0xed, 0x60, 0x7e, 0xed, 0x45, 0x31, 0x44, 0x9e, 0x07, 0x80, 0xe6, 0x1c, 0xfd, 0x57, 0x40, 0x86, 0xff, 0xc5, 0xdc, 0x52, 0x42, 0x83, 0x77, 0x5c, 0x44, 0xf7, 0x54, 0x7c, 0xda, 0xb0, 0x4a, 0x51, 0xee, 0xe4, 0xe1, 0xb7, 0xb6, 0x5a, 0x57, 0x57, 0x3a, 0x92, 0x48, 0x4a, 0x35, 0x90, 0x0a, 0x90, 0x9f, 0x81, 0xe4, 0x15, 0x02, 0x9d, 0x22, 0xca, 0x93, 0x7a, 0x3a, 0xcd, 0x9e, 0x61, 0xf8, 0xc0, 0xe6, 0x86, 0xb2, 0xd2, 0xad, 0x03, 0x77, 0xaf, 0x8e, 0xe1, 0x66, 0xe4, 0xa2, 0x0a, 0x82, 0xaf, 0xf4, 0x51, 0xe1, 0x51, 0x10, 0x3e, 0x0a, 0x17, 0x67, 0xb2, 0x71, 0xfa, 0x9c, 0x2b, 0x1d, 0xd1, 0x20, 0xf8, 0x05, 0x85, 0x3b, 0x3b, 0x8a, 0x56, 0x0f, 0xc8, 0xb9, 0x37, 0x62, 0x83, 0xb5, 0x11, 0x24, 0x32, 0x4a, 0x28, 0x4a, 0x0e, 0x9a, 0xc4, 0x9d, 0xf6, 0x9f, 0x52, 0x4c, 0x8e, 0x04, 0x2d, 0xf8, 0x2e, 0xfb, 0xcd, 0x16, 0x88, 0x1e, 0xc1, 0x31, 0xa1, 0x52, 0x10, 0xdf, 0x73, 0xde, 0x02, 0x94, 0x34, 0x47, 0xf2, 0x2a, 0x2e, 0xa1, 0xdc, 0x8b, 0xf9, 0x68, 0x29, 0x8e, 0xe9, 0x7f, 0x3a, 0xd5, 0x46, 0xd7, 0x8b, 0xc6, 0x60, 0x89, 0x7e, 0x08, 0xd2, 0xa2, 0x8b, 0x2b, 0xa6, 0x8b, 0x54, 0xb9, 0x54, 0xf1, 0x47, 0x64, 0x51, 0xc6, 0x92, 0x07, 0xe5, 0xdd, 0x24, 0x8a, 0xe4, 0x7e, 0xf3, 0x56, 0x94, 0x99, 0x0e, 0x6f, 0x05, 0x8b, 0xc0, 0x01, 0x7b, 0x74, 0x95, 0x10, 0x5c, 0xc8, 0x73, 0x90, 0x66, 0xaf, 0xb1, 0x1e, 0x1f, 0x26, 0x60, 0x19, 0x42, 0x54, 0x6a, 0xe8, 0x49, 0xff, 0x2f, 0x56, 0x73, 0x0f, 0x13, 0x26, 0xbb, 0xee, 0xa6, 0x40, 0xee, 0x17, 0x8f, 0xa2, 0x47, 0xad, 0xff, 0xef, 0xc0, 0x46, 0x49, 0x4f, 0xc7, 0xff, 0xc0, 0x77, 0x7d, 0x5d, 0xbe, 0x8a, 0x55, 0xda, 0xee, 0x61, 0x40, 0x6f, 0xe3, 0xc7, 0x08, 0x8d, 0x43, 0xd9, 0xe1, 0x4d, 0xa2, 0x1c, 0xa5, 0x2f, 0xd8, 0xc1, 0x60, 0x09, 0x1c, 0x8f, 0x99, 0xa6, 0x7d, 0xad, 0x65, 0xc6, 0x4f, 0xea, 0x9d, 0x18, 0xb1, 0x53, 0x7d, 0x06, 0x1f, 0x5d, 0xce, 0x87, 0x9e, 0x0b, 0xc4, 0x26, 0x48, 0xd2, 0xea, 0xa0, 0x2d, 0x97, 0x21, 0x85, 0x75, 0x3c, 0xb2, 0xf6, 0x22, 0x5d, 0x8d, 0x03, 0xbb, 0x07, 0xf9, 0x44, 0xb1, 0x0c, 0xf4, 0xea, 0x22, 0x27, 0x5c, 0x3d, 0x70, 0x84, 0x80, 0x20, 0xf3, 0x0c, 0x82, 0x3b, 0x76, 0x14, 0x3a, 0xcf, 0x54, 0x59, 0x99, 0xa2, 0xcc, 0x4b, 0x58, 0x98, 0xd9, 0x4b, 0x4a, 0x25, 0xef, 0xbe, 0x5a, 0x60, 0x33, 0x1c, 0xc0, 0x09, 0xfe, 0xc0, 0xa2, 0x5b, 0xc9, 0x89, 0x47, 0xb1, 0xb7, 0x13, 0x9e, 0x22, 0xd2, 0x32, 0x80, 0xff, 0x88, 0x54, 0xa1, 0xec, 0x76, 0x22, 0x1b, 0x1b, 0xf3, 0xd1, 0x08, 0x32, 0x8c, 0x8a, 0xc4, 0x63, 0xc6, 0x52, 0x63, 0xa2, 0xd7, 0xca, 0x74, 0x33, 0x48, 0x29, 0x31, 0xa1, 0xd8, 0xfc, 0x14, 0x4b, 0xbe, 0x9b, 0xef, 0x67, 0x8c, 0x92, 0xe1, 0xc2, 0xd1, 0x09, 0x21, 0xb6, 0xad, 0x43, 0xa7, 0x5c, 0x53, 0xbc, 0x07, 0x58, 0x54, 0xed, 0x2d, 0x99, 0xd8, 0x25, 0xf3, 0x0a, 0x5e, 0x10, 0xd5, 0x17, 0x43, 0x8e, 0x4d, 0x4f, 0x71, 0x13, 0x42, 0x9f, 0x1e, 0xdb, 0x38, 0x7d, 0x6b, 0xd7, 0xaa, 0xd2, 0x92, 0x74, 0xf8, 0xd2, 0xdc, 0x88, 0x9b, 0x7e, 0xfb, 0xeb, 0x58, 0x68, 0x6f, 0x8d, 0x66, 0x9c, 0xea, 0xef, 0x92, 0xc7, 0x5e, 0xd5, 0x30, 0x7f, 0x0c, 0x03, 0xf5, 0x90, 0x01, 0x81, 0xce, 0x57, 0x3c, 0x8f, 0xa2, 0x86, 0x75, 0x20, 0x5f, 0xb1, 0x05, 0x7f, 0x62, 0x6a, 0xa2, 0x30, 0xd0, 0x3e, 0x2e, 0xaa, 0x8c, 0xff, 0xcd, 0xe2, 0x00, 0x81, 0x47, 0x5d, 0x80, 0xb2, 0x45, 0xa1, 0xca, 0x60, 0x45, 0xba, 0x20, 0x4a, 0xb0, 0x00, 0x69, 0x07, 0x9c, 0x63, 0x7f, 0xc3, 0xfb, 0x3e, 0x80, 0xca, 0x04, 0x62, 0xe7, 0xa4, 0xcd, 0xd9, 0x28, 0x3f, 0xf9, 0x00, 0x85, 0x30, 0x36, 0x48, 0x16, 0x79, 0x2f, 0xdf, 0x3b, 0x9a, 0x4e, 0x4d, 0xc8, 0x37, 0x92, 0x28, 0xed, 0xcb, 0xb1, 0x54, 0xbe, 0xf3, 0x87, 0xd3, 0x77, 0x60, 0xd7, 0x9a, 0xfb, 0xb7, 0x36, 0x26, 0x0a, 0x1d, 0xb1, 0x01, 0x38, 0x36, 0x1f, 0x24, 0xb8, 0x26, 0xdb, 0xcd, 0x5f, 0x0f, 0xc9, 0xe7, 0x83, 0x0d, 0x26, 0xd8, 0x0c, 0x52, 0xa7, 0x92, 0x18, 0x92, 0x76, 0xbc, 0xe3, 0x47, 0x60, 0xfb, 0x77, 0xbe, 0x13, 0x12, 0xac, 0x8c, 0xf9, 0x7d, 0x92, 0xcb, 0xf3, 0xd0, 0x77, 0x80, 0x28, 0xdb, 0x5e, 0x8e, 0xae, 0x89, 0xe0, 0xb9, 0xbc, 0x87, 0x78, 0xae, 0xb1, 0x27, 0x8f, 0x04, 0x71, 0xcb, };
21504 static const u8 ed25519_935_test_vectors_expected_sig[] = {
21505 	0xa0, 0xb8, 0x4c, 0xa5, 0xaf, 0x76, 0x46, 0xe6, 0xf6, 0x2a, 0x69, 0x35, 0x37, 0x94, 0x73, 0xfa, 0x6e, 0x4c, 0x27, 0x69, 0x58, 0x51, 0xfc, 0xbd, 0xae, 0x29, 0x17, 0xb2, 0xdc, 0x68, 0xd7, 0x96, 0xe2, 0x78, 0xd7, 0x0c, 0xd6, 0x7f, 0xce, 0xdf, 0x6c, 0xa6, 0x29, 0xb8, 0x81, 0xf7, 0xc4, 0xf2, 0xaa, 0x25, 0x59, 0xb2, 0x0d, 0x67, 0x06, 0x11, 0x76, 0x6b, 0xd6, 0x5a, 0xa4, 0xfe, 0xf2, 0x04, };
21506 static const ec_test_case ed25519_935_test_case = {
21507 	.name = "EDDSA25519-SHA512/wei25519 935",
21508 	.ec_str_p = &wei25519_str_params,
21509 	.priv_key = ed25519_935_test_vectors_priv_key,
21510 	.priv_key_len = sizeof(ed25519_935_test_vectors_priv_key),
21511 	.nn_random = NULL,
21512 	.hash_type = SHA512,
21513 	.msg = (const char *)ed25519_935_test_vectors_message,
21514 	.msglen = sizeof(ed25519_935_test_vectors_message),
21515 	.sig_type = EDDSA25519,
21516 	.exp_sig = ed25519_935_test_vectors_expected_sig,
21517 	.exp_siglen = sizeof(ed25519_935_test_vectors_expected_sig),
21518 	.adata = NULL,
21519 	.adata_len = 0
21520 };
21521 
21522 /************************************************/
21523 static const u8 ed25519_936_test_vectors_priv_key[] = {
21524 	0x79, 0x3a, 0xc8, 0x8d, 0x7d, 0x3b, 0x6f, 0xa7, 0xf4, 0x7d, 0xee, 0xc3, 0x1f, 0x68, 0xdd, 0xcc, 0xb7, 0x01, 0x82, 0x0f, 0x1b, 0x13, 0xdd, 0xc6, 0x52, 0xf7, 0xc6, 0xa8, 0x5b, 0x60, 0x52, 0xa5, };
21525 static const u8 ed25519_936_test_vectors_message[] = {
21526 	0xec, 0x50, 0xaf, 0xad, 0x8a, 0xde, 0x74, 0x05, 0xe2, 0xc6, 0xf5, 0xc6, 0x24, 0x7b, 0xbb, 0xcc, 0xfb, 0x2c, 0x17, 0x16, 0x6f, 0x78, 0x84, 0xfe, 0xae, 0x10, 0xd9, 0x0f, 0x5d, 0x83, 0xc4, 0xb6, 0xf0, 0xbf, 0x76, 0xde, 0x2f, 0x78, 0x97, 0xba, 0x11, 0x94, 0xd6, 0xd3, 0x44, 0x9d, 0xdb, 0x80, 0xae, 0x74, 0xeb, 0x8e, 0xd6, 0x8f, 0x04, 0x9b, 0x35, 0xc6, 0xf2, 0x19, 0x16, 0xdb, 0x4d, 0xfc, 0x27, 0x24, 0xdc, 0x3a, 0xf7, 0xad, 0x8d, 0xd5, 0xc4, 0x4f, 0x60, 0xd2, 0xf4, 0x9f, 0xad, 0xd7, 0x00, 0x4d, 0xa1, 0x59, 0x30, 0x93, 0x94, 0x2c, 0xae, 0x52, 0x08, 0xbf, 0x54, 0xcf, 0x90, 0x3b, 0xee, 0x64, 0x69, 0x05, 0xfc, 0xe2, 0xeb, 0x2e, 0x37, 0x0d, 0x0d, 0xca, 0x48, 0xd8, 0x20, 0xad, 0xea, 0xb1, 0x6a, 0x3b, 0x67, 0x5e, 0x5a, 0x4a, 0x8e, 0x26, 0x7e, 0x34, 0xff, 0x96, 0xf3, 0x12, 0x2b, 0x18, 0xde, 0x0c, 0xad, 0x92, 0x92, 0xab, 0x63, 0xd2, 0x6e, 0x5f, 0x31, 0x0f, 0xa2, 0x16, 0x8c, 0x29, 0x66, 0xbd, 0xb6, 0x3b, 0x0d, 0xe0, 0x86, 0x26, 0x76, 0x7b, 0x37, 0x9d, 0xe4, 0x63, 0x3b, 0x9f, 0x3e, 0xda, 0x79, 0x17, 0x28, 0x1d, 0xad, 0x66, 0x1e, 0x9f, 0x77, 0x2b, 0x84, 0x4a, 0x79, 0xe8, 0x00, 0xfd, 0x84, 0x27, 0x02, 0x44, 0x6e, 0x4a, 0xa7, 0x31, 0x75, 0x71, 0x07, 0xf3, 0xfd, 0x65, 0x47, 0xbf, 0x40, 0x75, 0x96, 0x3d, 0x5f, 0xd5, 0xf5, 0x8e, 0x80, 0x85, 0x3f, 0xc4, 0x27, 0x51, 0xdc, 0xa0, 0x78, 0xa9, 0xfa, 0x8d, 0x5b, 0xb3, 0xd9, 0xa3, 0x4a, 0xbc, 0xab, 0x02, 0x93, 0xd6, 0xce, 0xae, 0xc4, 0x89, 0x67, 0xa1, 0xe6, 0x22, 0x43, 0x98, 0xca, 0xd0, 0xf6, 0x05, 0xa3, 0xbe, 0x8e, 0x67, 0x58, 0xea, 0x8f, 0x29, 0x20, 0x9d, 0x8e, 0x4c, 0x4c, 0xa1, 0x89, 0x3b, 0xaa, 0xd9, 0x1e, 0x37, 0x9b, 0xa3, 0xb1, 0x73, 0x30, 0xc1, 0x2a, 0x5b, 0x6f, 0x21, 0x9b, 0x38, 0x4a, 0x8a, 0xb9, 0x78, 0xbf, 0x1b, 0x37, 0xc3, 0x73, 0x1a, 0x1b, 0x47, 0x4b, 0x24, 0xb5, 0xd6, 0x7d, 0x4c, 0xec, 0x28, 0xaa, 0xc6, 0x51, 0x0b, 0x11, 0xf2, 0xcf, 0x21, 0xbc, 0x16, 0x96, 0x3d, 0x51, 0xf5, 0x53, 0x87, 0x27, 0x71, 0x8f, 0xc4, 0xe2, 0xe5, 0x17, 0x2e, 0x3c, 0x0c, 0xda, 0xbc, 0x27, 0x7f, 0x0d, 0x70, 0x37, 0xc3, 0x4c, 0xa6, 0x8f, 0x73, 0x28, 0x88, 0x48, 0xb9, 0x26, 0xbd, 0xe0, 0xcf, 0x47, 0xab, 0xfa, 0x66, 0x60, 0x09, 0x16, 0x94, 0x6f, 0x07, 0x65, 0x1c, 0x28, 0x0a, 0x20, 0x86, 0xb1, 0x4d, 0x52, 0x57, 0x0c, 0xc8, 0xa4, 0xb7, 0x43, 0x58, 0xb5, 0x9c, 0x30, 0x2b, 0x9d, 0x00, 0xe1, 0xb4, 0x98, 0xf3, 0xbc, 0x33, 0xee, 0x4e, 0xcf, 0x2b, 0xce, 0x2c, 0x65, 0xed, 0x7e, 0x8b, 0xa7, 0x4d, 0x35, 0xb7, 0x51, 0xd3, 0xc9, 0x9f, 0x40, 0x86, 0x19, 0x68, 0xc2, 0xb7, 0xf3, 0xa5, 0xbe, 0x34, 0x8c, 0x57, 0xd9, 0x3b, 0x40, 0xff, 0xd0, 0x51, 0xed, 0xd7, 0xca, 0xca, 0x6e, 0xe6, 0xbc, 0xa7, 0x21, 0xdc, 0xba, 0x8d, 0xb8, 0xd0, 0x06, 0x4f, 0x54, 0xd3, 0x6e, 0xc5, 0xe8, 0xd6, 0x2a, 0x71, 0xfd, 0x1c, 0x90, 0xf1, 0x49, 0x24, 0xf4, 0x1c, 0x16, 0x3f, 0x00, 0x7a, 0xfc, 0x6f, 0xbb, 0xfe, 0x86, 0x45, 0xfa, 0x47, 0xc3, 0xc9, 0x80, 0x24, 0x6d, 0x1b, 0x92, 0x27, 0x43, 0x85, 0x95, 0x3c, 0x53, 0x41, 0xcd, 0x64, 0xc3, 0x4a, 0xe9, 0x71, 0x7c, 0xc2, 0xc3, 0x7f, 0x58, 0x35, 0x9c, 0x0a, 0x99, 0x91, 0xc2, 0x3f, 0xe6, 0x37, 0xde, 0x6c, 0xdf, 0x08, 0x62, 0xf7, 0xd0, 0x32, 0x9f, 0xe7, 0x58, 0xaa, 0x89, 0x2a, 0xd4, 0x58, 0x3b, 0x9d, 0xf2, 0xf3, 0x33, 0x7d, 0x5b, 0xe5, 0x70, 0xba, 0x65, 0x49, 0x98, 0xed, 0x29, 0x2f, 0x11, 0xf0, 0x17, 0x72, 0x38, 0x2a, 0x04, 0x34, 0x2f, 0xdd, 0x99, 0xe6, 0x9e, 0x0d, 0x97, 0xc4, 0x3f, 0x10, 0xac, 0x9b, 0x96, 0xf1, 0x40, 0xa6, 0xf8, 0x3c, 0x47, 0x29, 0xe7, 0xa9, 0x00, 0x47, 0x1f, 0x2b, 0x1d, 0xf2, 0x40, 0x1b, 0xc5, 0xc6, 0x80, 0x42, 0x2b, 0x13, 0xb0, 0xc8, 0x00, 0x7d, 0x63, 0x68, 0x1f, 0x66, 0xa0, 0x59, 0x5a, 0x1c, 0x5d, 0x3a, 0xcd, 0xe5, 0xb7, 0x79, 0x42, 0x6e, 0x73, 0x6b, 0xc1, 0x00, 0xc5, 0xe6, 0xf5, 0x26, 0x08, 0xdc, 0x39, 0x1e, 0x3e, 0xf9, 0xb1, 0xbb, 0x6a, 0xf1, 0x3d, 0x24, 0x9b, 0x7d, 0x32, 0xce, 0x06, 0x80, 0xc3, 0x68, 0xf5, 0x4d, 0x5f, 0xe0, 0x39, 0xcf, 0xe1, 0x01, 0x30, 0x25, 0x1e, 0x4d, 0xb1, 0x4c, 0x79, 0xc8, 0xd0, 0x44, 0x06, 0x04, 0x65, 0x82, 0x29, 0x90, 0xd8, 0x80, 0x93, 0xcd, 0x73, 0x65, 0x32, 0x85, 0x2e, 0x44, 0x78, 0x89, 0xdb, 0x89, 0xcc, 0x60, 0x05, 0x29, 0x96, 0xa3, 0x2a, 0x64, 0x36, 0x5c, 0x07, 0x26, 0x05, 0x1c, 0x11, 0x9e, 0xda, 0x90, 0x1d, 0xe5, 0x76, 0xb3, 0x34, 0xfc, 0x70, 0x49, 0x48, 0x23, 0x92, 0xe2, 0x62, 0x0b, 0x0a, 0x3a, 0x13, 0xfa, 0xb1, 0xd3, 0x6f, 0xc0, 0xa5, 0xf2, 0x3d, 0xb1, 0x47, 0xfd, 0x85, 0x7b, 0x26, 0xa6, 0x98, 0x04, 0x8f, 0x8b, 0x81, 0x1e, 0x23, 0xd7, 0x22, 0xe2, 0xe9, 0x02, 0x7e, 0xd4, 0x12, 0x4b, 0x48, 0xdc, 0x5e, 0x57, 0x8a, 0x7a, 0xeb, 0x19, 0xa1, 0xb4, 0xf9, 0x48, 0xee, 0x5b, 0x46, 0xf6, 0x5b, 0x97, 0x96, 0x46, 0xe2, 0xbe, 0x07, 0x47, 0x14, 0x11, 0x8b, 0xaa, 0x4b, 0xfc, 0x15, 0xb0, 0x89, 0xa0, 0xe0, 0x66, 0x27, 0xda, 0x46, 0xe4, 0xbb, 0x06, 0xaa, 0x3c, 0x7c, 0x5d, 0xd6, 0x48, 0xe0, 0x3c, 0x9c, 0x2d, 0xec, 0x3f, 0xac, 0xd9, 0x56, 0x26, 0x56, 0x2f, 0x30, 0x00, 0x88, 0x32, 0x30, 0xd2, 0xb0, 0xa1, 0xf8, 0xa7, 0x47, 0x8c, 0xb7, 0x7f, 0x93, 0x9a, 0x5f, 0x18, 0x8f, 0x45, 0x8d, 0x10, 0x37, 0xb9, 0x01, 0x76, 0x66, 0x4d, 0x86, 0xea, 0x85, 0x0b, 0x8a, 0xf5, 0x08, 0x7f, 0x86, 0x60, 0x5a, 0x77, 0xe0, 0x25, 0xef, 0x6c, 0x7e, 0x6a, 0x2a, 0x59, 0xf0, 0x06, 0xcb, 0xa1, 0x89, 0xfa, 0xd9, 0x33, 0xf4, 0x2c, 0x53, 0x27, 0x08, 0x10, 0x9b, 0xc1, 0xaf, 0x81, 0x48, 0x19, 0x59, 0x5f, 0xfc, 0xb9, 0x5f, 0xbf, 0x5b, 0x7e, 0x93, 0xa7, 0x11, 0x97, 0xe4, 0x77, 0xee, 0x7c, 0x04, 0xb8, 0x51, 0xc1, 0xc3, 0x66, 0x22, 0xcd, 0xd8, 0xe6, 0xc8, 0x60, 0xd9, 0xab, 0x2c, 0xac, 0x56, 0xd2, 0xdc, 0x98, 0xfa, 0x69, 0x12, 0x4f, 0x2b, 0xb2, 0xa6, 0x47, 0x1e, 0x1c, 0x73, 0xb6, 0x61, 0xf0, 0x71, 0xf5, 0xd8, 0x6d, 0xe7, 0xd1, 0xde, 0xaf, 0xa4, 0xed, 0xcd, 0xc7, 0xbf, 0x1f, 0x70, 0x5c, 0x56, 0x30, 0x0a, 0xff, 0xd0, 0x58, 0xb9, 0x69, 0x77, 0x91, 0x41, 0x9e, 0x5f, 0xb2, 0xa5, 0xb7, 0xf7, 0x8c, 0xe3, 0x40, 0x1f, 0xf5, 0x50, };
21527 static const u8 ed25519_936_test_vectors_expected_sig[] = {
21528 	0xa8, 0x4f, 0x55, 0x2b, 0xf4, 0x43, 0x22, 0xa6, 0xdb, 0x24, 0x5c, 0xa0, 0x06, 0xd1, 0xcf, 0x78, 0x0c, 0x61, 0x68, 0x0f, 0xe7, 0x42, 0x9a, 0x89, 0x47, 0xc3, 0x5f, 0x21, 0xbc, 0x4b, 0x44, 0x22, 0x8b, 0xa3, 0x0a, 0xea, 0x0c, 0x74, 0x4b, 0x86, 0x64, 0x59, 0xd3, 0xb8, 0xac, 0xad, 0x45, 0x3b, 0x06, 0xac, 0xe2, 0x47, 0xba, 0x69, 0x52, 0x8c, 0x6b, 0x3b, 0xc4, 0xb2, 0x0e, 0x75, 0x63, 0x0e, };
21529 static const ec_test_case ed25519_936_test_case = {
21530 	.name = "EDDSA25519-SHA512/wei25519 936",
21531 	.ec_str_p = &wei25519_str_params,
21532 	.priv_key = ed25519_936_test_vectors_priv_key,
21533 	.priv_key_len = sizeof(ed25519_936_test_vectors_priv_key),
21534 	.nn_random = NULL,
21535 	.hash_type = SHA512,
21536 	.msg = (const char *)ed25519_936_test_vectors_message,
21537 	.msglen = sizeof(ed25519_936_test_vectors_message),
21538 	.sig_type = EDDSA25519,
21539 	.exp_sig = ed25519_936_test_vectors_expected_sig,
21540 	.exp_siglen = sizeof(ed25519_936_test_vectors_expected_sig),
21541 	.adata = NULL,
21542 	.adata_len = 0
21543 };
21544 
21545 /************************************************/
21546 static const u8 ed25519_937_test_vectors_priv_key[] = {
21547 	0x89, 0xde, 0x74, 0x42, 0xd7, 0x4b, 0xa9, 0x38, 0x59, 0x69, 0xc9, 0x65, 0x1a, 0x88, 0xfe, 0x28, 0xe0, 0x40, 0xd5, 0x93, 0x90, 0x7d, 0xac, 0x1a, 0x39, 0x87, 0x41, 0x8b, 0xdf, 0xdb, 0xad, 0x89, };
21548 static const u8 ed25519_937_test_vectors_message[] = {
21549 	0x9d, 0x52, 0x72, 0xf0, 0xb7, 0x84, 0x88, 0x2b, 0x94, 0xc7, 0x6d, 0xfb, 0x9d, 0x46, 0x0c, 0xa4, 0x95, 0x02, 0x5e, 0x0a, 0xec, 0x5d, 0x52, 0xcc, 0xff, 0xfe, 0xce, 0x9f, 0x81, 0x73, 0xc1, 0x05, 0x58, 0x26, 0x6c, 0x49, 0x85, 0x25, 0x89, 0x1a, 0x97, 0xbf, 0x38, 0x78, 0xe3, 0x3c, 0x3d, 0xe2, 0xfc, 0x2e, 0x52, 0x55, 0x0b, 0x43, 0x15, 0x62, 0xcb, 0xe4, 0xa3, 0xd0, 0x11, 0xec, 0xc9, 0xe7, 0x7e, 0xc3, 0x6a, 0xd3, 0x83, 0x41, 0x35, 0x8c, 0x88, 0x32, 0x1c, 0x03, 0xd0, 0x8b, 0xb4, 0x26, 0xa7, 0xd5, 0x85, 0x41, 0x71, 0xc0, 0x27, 0xec, 0x48, 0xd5, 0x78, 0x19, 0xa9, 0x1a, 0xfd, 0x02, 0xa6, 0x18, 0xcc, 0xbc, 0x25, 0xe6, 0x8e, 0x53, 0x09, 0xd0, 0x47, 0xb1, 0x56, 0xe3, 0x57, 0x05, 0x37, 0x3a, 0xda, 0x2e, 0xb8, 0x31, 0x32, 0x1a, 0x20, 0x3e, 0x1b, 0xd8, 0xf0, 0xef, 0xec, 0xc0, 0x96, 0x18, 0x64, 0x7b, 0x41, 0xdf, 0xf2, 0x2b, 0x39, 0xd0, 0x22, 0x35, 0xf8, 0x71, 0x53, 0x2f, 0x60, 0x85, 0xe9, 0xcc, 0x52, 0xec, 0x00, 0x9b, 0x33, 0xee, 0xbc, 0xdc, 0x26, 0x7d, 0x77, 0x67, 0xc9, 0x0c, 0x92, 0x7e, 0x15, 0x4f, 0x72, 0xf3, 0xf4, 0x8a, 0x34, 0x95, 0x63, 0x19, 0xb2, 0x93, 0xc8, 0xa8, 0xb3, 0xe3, 0x4e, 0xfc, 0x5f, 0x62, 0xf2, 0xb4, 0xe8, 0x01, 0x9b, 0x50, 0xa0, 0x8f, 0x5c, 0xcf, 0x95, 0xbc, 0x83, 0x1b, 0xaf, 0x40, 0x81, 0x1d, 0x87, 0xe5, 0xed, 0xbd, 0x2f, 0xd5, 0x36, 0x5b, 0x26, 0xa4, 0x31, 0xae, 0x95, 0x80, 0x0f, 0xf3, 0x81, 0xcd, 0x62, 0xca, 0x40, 0xe1, 0x86, 0x6d, 0x95, 0x0d, 0xce, 0x14, 0xf0, 0x30, 0x91, 0x8a, 0xba, 0xc6, 0x8e, 0x79, 0x16, 0xdd, 0xb9, 0x5a, 0xdc, 0x19, 0x71, 0x28, 0x78, 0x74, 0xd0, 0x7e, 0xb0, 0xed, 0xef, 0x64, 0x29, 0x66, 0x52, 0xc4, 0x80, 0x44, 0xb0, 0xc5, 0x52, 0x1a, 0x8d, 0x27, 0x0d, 0x53, 0xd7, 0x4e, 0xc6, 0x3b, 0x89, 0x0f, 0x33, 0x63, 0xf9, 0x20, 0x7f, 0x66, 0x52, 0xae, 0x8e, 0x78, 0x35, 0xc3, 0x82, 0x0a, 0xd6, 0xd9, 0xe3, 0x63, 0x3f, 0x4b, 0xfd, 0x53, 0x79, 0xa4, 0x4f, 0x29, 0xd6, 0x5f, 0x36, 0x09, 0xfe, 0x35, 0x58, 0x17, 0xdc, 0xa5, 0x51, 0x8d, 0xfe, 0x3b, 0xd7, 0x69, 0x32, 0x0a, 0x03, 0x19, 0x02, 0xe9, 0xcf, 0x66, 0x69, 0xc2, 0x4f, 0x88, 0xb0, 0x1e, 0xb3, 0x69, 0x95, 0xbd, 0xb8, 0xdb, 0xed, 0x6e, 0xe0, 0xc9, 0xb7, 0xf3, 0x22, 0x95, 0xc6, 0x1b, 0xa8, 0x90, 0x5e, 0x55, 0x98, 0xf3, 0xc9, 0xe1, 0xc8, 0xbf, 0x72, 0x64, 0xf9, 0x82, 0x93, 0xfa, 0xea, 0x17, 0x74, 0x7f, 0x88, 0x44, 0x0c, 0x31, 0x81, 0x8c, 0x43, 0x3e, 0xa3, 0xd2, 0x3c, 0x01, 0xf4, 0xf7, 0xe9, 0xc3, 0xdd, 0x3d, 0x5f, 0x32, 0xec, 0x9e, 0xac, 0xd7, 0x1a, 0x09, 0xe3, 0xa9, 0x97, 0x38, 0x1f, 0x1c, 0xbf, 0xfd, 0xf4, 0xb5, 0xba, 0x49, 0x79, 0xde, 0xb7, 0xb0, 0x98, 0x41, 0xaf, 0xa3, 0xb0, 0x3d, 0x1c, 0x93, 0x11, 0x09, 0x7b, 0x86, 0x2c, 0xae, 0x11, 0x70, 0x7c, 0xbd, 0x3a, 0x4a, 0xe6, 0xc8, 0xa2, 0x6a, 0x30, 0x6a, 0x68, 0x7c, 0x41, 0x4a, 0x4e, 0xa1, 0xe8, 0x12, 0xf1, 0x15, 0xf6, 0x0f, 0x70, 0xbd, 0xa7, 0xf8, 0xfb, 0xe7, 0xbc, 0x2d, 0x50, 0xcc, 0x55, 0x0b, 0xba, 0x29, 0x1d, 0x5e, 0xc5, 0x23, 0x22, 0x9a, 0x08, 0xed, 0x56, 0x8b, 0x5c, 0xee, 0x18, 0xfe, 0x6f, 0x46, 0x78, 0x2c, 0x17, 0xcd, 0x82, 0x88, 0x01, 0x63, 0x92, 0x15, 0xbc, 0x5e, 0x9b, 0xe4, 0x55, 0x5c, 0x9a, 0x18, 0x00, 0x97, 0x67, 0xa6, 0xc5, 0xc7, 0x4a, 0x82, 0x29, 0xd2, 0xff, 0xaa, 0x39, 0x9d, 0x8e, 0x64, 0x32, 0x4e, 0x88, 0x42, 0x23, 0xd5, 0x07, 0x0f, 0x73, 0x5a, 0x75, 0xd8, 0x5f, 0xf6, 0xc9, 0x4a, 0x9f, 0xbc, 0x2b, 0x36, 0x51, 0x38, 0x6d, 0xe5, 0xa2, 0x3c, 0xce, 0x95, 0xc8, 0x78, 0x81, 0xc7, 0x93, 0x99, 0xae, 0x71, 0xf0, 0x90, 0x73, 0x7e, 0x21, 0x87, 0xfe, 0x90, 0x4a, 0xab, 0x1d, 0x92, 0xd6, 0x18, 0x67, 0x95, 0xc9, 0xb4, 0x6c, 0x62, 0xa5, 0x91, 0x4f, 0x36, 0x30, 0xfd, 0xcb, 0xac, 0x3b, 0xd4, 0xb0, 0xda, 0x4e, 0xc3, 0x13, 0x6a, 0x1f, 0xb2, 0xba, 0x40, 0x32, 0x2d, 0x7c, 0xc4, 0x08, 0x5e, 0x16, 0x70, 0x09, 0xcf, 0x74, 0x50, 0xfc, 0x6a, 0x28, 0x6c, 0x2f, 0x79, 0x51, 0xd5, 0x1a, 0xae, 0x23, 0xb8, 0xf3, 0x30, 0x20, 0xef, 0xb5, 0xe3, 0x24, 0x5b, 0xa6, 0xa3, 0x54, 0x3a, 0x2b, 0xde, 0xc4, 0x47, 0xd5, 0x1a, 0xe0, 0x0b, 0x5e, 0x16, 0x78, 0xb7, 0x60, 0x93, 0xcf, 0x21, 0x6b, 0x95, 0x07, 0xc9, 0x63, 0xeb, 0xfc, 0x02, 0x4c, 0xcd, 0x6e, 0xf6, 0xc7, 0x8c, 0x45, 0x72, 0x27, 0x3b, 0xea, 0xaf, 0x55, 0x07, 0x6d, 0xc4, 0x4a, 0x22, 0x4b, 0x58, 0x61, 0x57, 0x05, 0x79, 0x19, 0x65, 0x30, 0x7c, 0xef, 0xd4, 0x86, 0x72, 0xc0, 0x81, 0xbc, 0xcf, 0xbc, 0x1d, 0x15, 0xb0, 0x62, 0xb3, 0x8b, 0x4f, 0xba, 0x9b, 0x9b, 0xec, 0x95, 0x6c, 0xd1, 0x44, 0x44, 0xee, 0x43, 0x7e, 0x79, 0x60, 0xcc, 0x60, 0x1e, 0xdd, 0xc0, 0x2f, 0x1a, 0x76, 0xb6, 0x85, 0x74, 0xd5, 0xf8, 0x84, 0x31, 0x50, 0xc0, 0xb9, 0x00, 0x99, 0x34, 0xa2, 0xbf, 0xaf, 0x60, 0x57, 0x70, 0xc1, 0x36, 0xba, 0x29, 0xf3, 0xdc, 0x7e, 0x29, 0x59, 0x7a, 0x24, 0x80, 0xdb, 0x23, 0xe2, 0xb2, 0x67, 0x7e, 0xc6, 0xc5, 0x1b, 0xd3, 0x01, 0xf2, 0xb5, 0xa3, 0x9d, 0xfd, 0xa7, 0xb4, 0x77, 0xbe, 0xdd, 0x1c, 0xda, 0xed, 0x10, 0xe2, 0x9d, 0x29, 0x54, 0x62, 0x9b, 0x98, 0x76, 0xf8, 0xee, 0x54, 0xe4, 0x04, 0x73, 0x69, 0xd5, 0x34, 0xca, 0xb5, 0x4a, 0xea, 0x44, 0x1d, 0xc9, 0x47, 0xeb, 0x3f, 0x59, 0x38, 0x2b, 0x21, 0x83, 0x60, 0x57, 0x2f, 0x26, 0x59, 0x58, 0x31, 0x53, 0xc0, 0xe2, 0xb9, 0x12, 0xcf, 0x30, 0xc8, 0x15, 0xb2, 0x6f, 0x05, 0x85, 0x3d, 0xd3, 0x05, 0x51, 0xee, 0xcf, 0x64, 0xb8, 0x58, 0xa4, 0x41, 0xbb, 0x8c, 0x6d, 0xb8, 0xa9, 0xfd, 0xe7, 0x7a, 0x32, 0xa7, 0xb4, 0x6a, 0xf6, 0x6f, 0x8c, 0xb9, 0xf3, 0x5e, 0xe0, 0xfa, 0xfb, 0x0b, 0xd4, 0x2d, 0x9e, 0x65, 0xb2, 0xa9, 0x05, 0x82, 0x41, 0xa3, 0x1b, 0x8c, 0xa1, 0x11, 0x54, 0x34, 0x23, 0x76, 0x70, 0xaa, 0xb4, 0xef, 0xf3, 0x60, 0x10, 0xed, 0x03, 0x71, 0xf4, 0x65, 0x95, 0xda, 0x1b, 0xdd, 0x57, 0x9b, 0xbb, 0x67, 0xaa, 0xdb, 0x68, 0xe7, 0x7a, 0xd3, 0xa3, 0x8c, 0x8f, 0x26, 0xd2, 0xaf, 0x5a, 0x71, 0x03, 0xba, 0x5f, 0x22, 0xb4, 0x2c, 0xc1, 0x2a, 0x8c, 0x3c, 0xe5, 0xc9, 0x21, 0xc9, 0x1c, 0xfc, 0x0e, 0x63, 0xdf, 0x90, 0x27, 0xd2, 0x62, 0x29, 0xb1, 0x04, 0x7c, 0xbc, 0x18, 0xf6, 0xb0, };
21550 static const u8 ed25519_937_test_vectors_expected_sig[] = {
21551 	0xba, 0xb5, 0x72, 0x84, 0xd2, 0x0e, 0xe5, 0x4c, 0xc7, 0xf9, 0x70, 0x8d, 0x71, 0x77, 0x06, 0xd8, 0xfa, 0xf6, 0xe4, 0x63, 0x32, 0xb0, 0x69, 0x1d, 0x6f, 0x21, 0x3a, 0x8d, 0xb8, 0x01, 0x15, 0x5b, 0x4e, 0x33, 0x8c, 0x13, 0x61, 0xb5, 0x92, 0xbe, 0x75, 0x85, 0x01, 0xb1, 0x82, 0x17, 0x93, 0xae, 0x52, 0x27, 0xcc, 0x3b, 0xa8, 0xdf, 0x8a, 0xdf, 0xc6, 0xed, 0x9a, 0xca, 0xb5, 0x4c, 0xc4, 0x01, };
21552 static const ec_test_case ed25519_937_test_case = {
21553 	.name = "EDDSA25519-SHA512/wei25519 937",
21554 	.ec_str_p = &wei25519_str_params,
21555 	.priv_key = ed25519_937_test_vectors_priv_key,
21556 	.priv_key_len = sizeof(ed25519_937_test_vectors_priv_key),
21557 	.nn_random = NULL,
21558 	.hash_type = SHA512,
21559 	.msg = (const char *)ed25519_937_test_vectors_message,
21560 	.msglen = sizeof(ed25519_937_test_vectors_message),
21561 	.sig_type = EDDSA25519,
21562 	.exp_sig = ed25519_937_test_vectors_expected_sig,
21563 	.exp_siglen = sizeof(ed25519_937_test_vectors_expected_sig),
21564 	.adata = NULL,
21565 	.adata_len = 0
21566 };
21567 
21568 /************************************************/
21569 static const u8 ed25519_938_test_vectors_priv_key[] = {
21570 	0x26, 0x22, 0xbd, 0x9b, 0xbe, 0xf7, 0xff, 0x4a, 0x87, 0x62, 0x9e, 0xa0, 0x15, 0x3d, 0xc4, 0xd6, 0x08, 0xc3, 0x1f, 0xa5, 0x84, 0x79, 0x88, 0xff, 0x50, 0x0d, 0x88, 0x06, 0x81, 0xf1, 0x13, 0x72, };
21571 static const u8 ed25519_938_test_vectors_message[] = {
21572 	0x89, 0x1e, 0x82, 0x12, 0x25, 0x47, 0xd6, 0x1e, 0x83, 0xb0, 0xab, 0xaf, 0x27, 0xc7, 0x30, 0x3f, 0x05, 0x22, 0xa2, 0xec, 0x4a, 0xf4, 0x4e, 0xf0, 0xac, 0x19, 0x6a, 0x99, 0x78, 0xb1, 0xc6, 0x23, 0xef, 0x1f, 0xa7, 0x2b, 0xaf, 0x70, 0x91, 0x0a, 0x5c, 0x51, 0xc4, 0xf7, 0x8e, 0x0f, 0xe9, 0xfe, 0x37, 0xe2, 0x43, 0x9c, 0x47, 0x95, 0x91, 0x6c, 0xfa, 0x22, 0xab, 0x47, 0x1a, 0x25, 0x57, 0xcc, 0x7b, 0xa6, 0xb6, 0x69, 0x56, 0x06, 0x3d, 0xde, 0xb3, 0x9c, 0x50, 0xf1, 0x4f, 0x06, 0x34, 0x8f, 0xa6, 0x6b, 0x60, 0x64, 0xdc, 0xff, 0xca, 0x50, 0x43, 0x96, 0x7f, 0x05, 0x25, 0x4d, 0x57, 0x7a, 0xbf, 0x22, 0xae, 0x8c, 0x90, 0x00, 0x0c, 0xe2, 0xe6, 0xa1, 0xa8, 0xb2, 0xe3, 0xa6, 0xb3, 0xab, 0xc5, 0x63, 0xeb, 0xff, 0xb2, 0x04, 0x45, 0xf0, 0x91, 0x1c, 0xc4, 0x2a, 0x98, 0x7f, 0x84, 0x56, 0xef, 0xba, 0x41, 0x30, 0xe6, 0x8f, 0x01, 0xfc, 0xdf, 0x7b, 0xf7, 0x71, 0xfc, 0x1d, 0x35, 0x37, 0x1a, 0x0d, 0x75, 0xdd, 0x5f, 0x90, 0x00, 0x2c, 0x90, 0xb6, 0xcb, 0xad, 0xe4, 0x0d, 0x5b, 0x23, 0xfd, 0xb4, 0x9a, 0xba, 0xcb, 0x72, 0x19, 0xae, 0x27, 0x56, 0x1a, 0xa2, 0xa8, 0x79, 0xda, 0x88, 0xdf, 0x34, 0xa8, 0xc5, 0x81, 0xf0, 0xc6, 0x71, 0x98, 0xff, 0xc6, 0x08, 0xfe, 0x91, 0x95, 0xb5, 0x55, 0x5c, 0x8a, 0xe9, 0x34, 0xc8, 0x30, 0xaa, 0xe2, 0x88, 0x5b, 0xea, 0x87, 0x48, 0x74, 0x48, 0xe1, 0x1b, 0x4f, 0x2f, 0x17, 0x2e, 0x4d, 0x5c, 0xfe, 0x4f, 0xd1, 0x13, 0xf9, 0xd2, 0x01, 0x6c, 0x24, 0xa7, 0x34, 0x51, 0x2b, 0xb9, 0x18, 0xf5, 0x75, 0xe7, 0x54, 0x13, 0x97, 0x18, 0xe3, 0xd2, 0x0e, 0x79, 0x0a, 0xbb, 0x94, 0x2c, 0xba, 0x3e, 0xc8, 0xb2, 0xdb, 0x59, 0x07, 0x96, 0xdc, 0x43, 0x5f, 0x13, 0x9f, 0xc6, 0x4d, 0xdc, 0x85, 0xa2, 0x24, 0x94, 0xef, 0x2b, 0xfa, 0x1f, 0x5c, 0x0f, 0x18, 0x75, 0xea, 0x58, 0xe8, 0x4e, 0xb3, 0x74, 0xec, 0xf8, 0xce, 0xc6, 0x46, 0x8b, 0x6b, 0x09, 0xd1, 0xe7, 0x4f, 0x15, 0x41, 0xed, 0x45, 0x4a, 0x28, 0x07, 0xd3, 0xf4, 0x05, 0x35, 0x66, 0xb0, 0xe4, 0xe2, 0xc6, 0xae, 0xce, 0xd1, 0x0d, 0xc0, 0x07, 0xe9, 0xdf, 0x41, 0x6f, 0x26, 0x7f, 0xcb, 0x3f, 0xe1, 0x7b, 0x8b, 0xac, 0xe0, 0x3f, 0x07, 0x43, 0xe0, 0xe6, 0xd4, 0xa4, 0x8c, 0xe7, 0x6e, 0xdf, 0xf6, 0x0c, 0x0e, 0x3a, 0x30, 0x84, 0x56, 0x99, 0x54, 0x13, 0xc1, 0x07, 0x6f, 0xf3, 0x7e, 0xcf, 0x23, 0x81, 0xa0, 0xd4, 0xe9, 0xe4, 0xa9, 0x13, 0xa2, 0x58, 0xd9, 0x83, 0xb9, 0x69, 0x6b, 0x5c, 0x45, 0xaf, 0x37, 0xc8, 0x68, 0x40, 0x70, 0xe4, 0x00, 0xb8, 0xf8, 0x65, 0xa5, 0x04, 0x04, 0x3f, 0x45, 0xd7, 0x8b, 0x97, 0x13, 0xf3, 0x35, 0xaa, 0x41, 0x6a, 0x46, 0x16, 0x64, 0x10, 0x73, 0x5f, 0xb5, 0xd8, 0x22, 0x10, 0x45, 0x8d, 0x5a, 0x08, 0xa1, 0x04, 0xd4, 0x00, 0x2a, 0xb6, 0x11, 0x88, 0xf9, 0xdf, 0x45, 0x7d, 0xd7, 0xed, 0x59, 0x37, 0xca, 0x50, 0x77, 0x60, 0x6b, 0x41, 0x8b, 0xbc, 0x86, 0x84, 0xa1, 0xd5, 0x25, 0xbf, 0xa5, 0x51, 0x08, 0x76, 0x40, 0xb1, 0xd1, 0x77, 0xca, 0x6d, 0x4f, 0x64, 0x71, 0xb3, 0x9b, 0x2c, 0xe4, 0x3a, 0xfb, 0xf8, 0x28, 0x5e, 0xcd, 0x68, 0x7e, 0x43, 0x8f, 0x44, 0x25, 0xdf, 0x56, 0x8a, 0xb8, 0x6f, 0xa2, 0x31, 0x63, 0x49, 0xa1, 0x10, 0x2b, 0x41, 0x43, 0xd7, 0x1e, 0xf4, 0xe2, 0x4f, 0x5c, 0x53, 0x0c, 0x77, 0xaf, 0xb0, 0x10, 0x07, 0x88, 0x63, 0x64, 0x40, 0xe7, 0x40, 0x67, 0x5a, 0x61, 0x74, 0xc5, 0xf0, 0x57, 0x10, 0xb2, 0x53, 0xa4, 0x11, 0x17, 0x3f, 0x9e, 0x82, 0xce, 0x6e, 0x22, 0xf4, 0x09, 0x5e, 0x77, 0x14, 0xb8, 0x73, 0x7e, 0x14, 0x7a, 0xa0, 0xf2, 0x31, 0x91, 0x57, 0x8f, 0xfd, 0x93, 0x82, 0x3c, 0xe4, 0xbf, 0x91, 0xc1, 0xd1, 0x10, 0x98, 0x2a, 0x5d, 0xa0, 0xe4, 0xb8, 0x1b, 0xd2, 0x5b, 0x9b, 0x9c, 0x21, 0x42, 0xa7, 0x67, 0x1e, 0xe9, 0x37, 0xc9, 0x0f, 0xd0, 0x71, 0x5e, 0xc9, 0xaf, 0xa4, 0x4d, 0x86, 0x04, 0x68, 0x98, 0xb4, 0x2f, 0x75, 0x35, 0x89, 0xd2, 0x26, 0x8d, 0x2a, 0xaa, 0xa9, 0x85, 0xcc, 0x90, 0xe0, 0xf9, 0xe8, 0x27, 0xa3, 0x92, 0x3e, 0x77, 0x16, 0x34, 0x6f, 0x4f, 0x89, 0x31, 0xc7, 0x28, 0x21, 0xb3, 0xeb, 0x64, 0x5d, 0xaa, 0x74, 0x52, 0xc8, 0xaf, 0xc8, 0x98, 0xd7, 0x97, 0x55, 0x45, 0xc1, 0x2d, 0xa1, 0xbd, 0xb2, 0x09, 0x04, 0x5c, 0xb0, 0x0f, 0x4b, 0xfd, 0x53, 0x83, 0xdf, 0x01, 0xf0, 0x03, 0x68, 0x0b, 0x97, 0x34, 0x40, 0xf1, 0xa3, 0x9c, 0x9d, 0x82, 0x09, 0x59, 0xef, 0x6f, 0x85, 0xbd, 0x33, 0x63, 0x90, 0x65, 0xae, 0xfd, 0xc8, 0xbc, 0xfe, 0xcb, 0xd9, 0xb9, 0x55, 0x40, 0x49, 0x73, 0x8a, 0xf2, 0x9f, 0x12, 0x94, 0x63, 0x9d, 0x39, 0x15, 0xd6, 0x32, 0x99, 0x5e, 0x8f, 0xaf, 0x71, 0x3e, 0xf2, 0xee, 0x3c, 0x29, 0x8b, 0x55, 0x96, 0xfa, 0x10, 0xc9, 0x9f, 0x94, 0x6d, 0xdb, 0x32, 0x34, 0x06, 0x95, 0xdf, 0x1c, 0x19, 0x45, 0x94, 0xea, 0xf3, 0x77, 0x8d, 0x73, 0xc8, 0xba, 0x60, 0x40, 0xc0, 0x4e, 0xb3, 0xa4, 0xff, 0x86, 0x77, 0x93, 0x6b, 0x88, 0xe0, 0xc5, 0xf0, 0x44, 0x14, 0x80, 0xd1, 0x07, 0xd7, 0xac, 0x22, 0x02, 0xb3, 0xb6, 0x94, 0xe5, 0x7c, 0xcc, 0xa6, 0xd8, 0x25, 0xe2, 0xa0, 0x7e, 0x81, 0x2e, 0xd2, 0x9b, 0x2c, 0x20, 0xd5, 0xc6, 0x05, 0x47, 0x15, 0x79, 0xe3, 0xed, 0xff, 0xc2, 0x23, 0xf2, 0x42, 0xc5, 0x93, 0x91, 0xdb, 0x41, 0xe9, 0x8d, 0x5f, 0x3d, 0x6c, 0x5b, 0x1e, 0x32, 0xac, 0x82, 0x37, 0xfc, 0xfd, 0x10, 0x20, 0x54, 0x3a, 0x40, 0x41, 0xe0, 0x3d, 0x92, 0xad, 0x3e, 0x2e, 0xc5, 0x52, 0x91, 0x47, 0x07, 0xc7, 0x7c, 0xd0, 0x1f, 0x3e, 0x48, 0x01, 0x14, 0x44, 0x28, 0x3f, 0x09, 0x68, 0xfa, 0x4d, 0xee, 0xee, 0x55, 0xc4, 0x56, 0xed, 0x1f, 0x87, 0x7a, 0xde, 0x04, 0xac, 0x8e, 0x8d, 0x2c, 0xb6, 0xc8, 0x58, 0x20, 0xb4, 0x92, 0x9b, 0x25, 0xbf, 0x31, 0xe9, 0x25, 0x43, 0x5d, 0x6b, 0xcc, 0x50, 0xd3, 0xe2, 0xe9, 0xb8, 0x51, 0x02, 0xe9, 0x70, 0xd7, 0x89, 0x5c, 0x25, 0xad, 0xe5, 0x21, 0x61, 0xa3, 0xb6, 0xbf, 0x50, 0x1a, 0xb0, 0x19, 0x61, 0xcb, 0x63, 0xed, 0x99, 0x0a, 0xeb, 0x93, 0xed, 0xa3, 0x82, 0x8b, 0xf0, 0x4c, 0xa5, 0x28, 0x53, 0xc7, 0xb6, 0xb8, 0xe9, 0xe4, 0x9e, 0x34, 0x9d, 0x69, 0xb5, 0x3b, 0xe0, 0x74, 0x85, 0xf5, 0x42, 0xb7, 0xcd, 0xd0, 0x6b, 0x52, 0x7d, 0x41, 0xdd, 0x11, 0x9c, 0x70, 0xb5, 0x64, 0xf1, 0xa9, 0x3a, 0xec, 0x62, 0xae, 0x74, 0xe6, 0xe8, 0xf8, 0x55, };
21573 static const u8 ed25519_938_test_vectors_expected_sig[] = {
21574 	0x43, 0x78, 0x96, 0x6b, 0x78, 0x31, 0xde, 0xf4, 0xae, 0xcb, 0x49, 0x89, 0xbc, 0xaf, 0x9c, 0xae, 0x99, 0x46, 0x1c, 0xb9, 0xb5, 0x9d, 0x19, 0x51, 0x8c, 0xc1, 0xec, 0x7b, 0x83, 0x51, 0xbc, 0xd1, 0xf7, 0x23, 0xaa, 0xc5, 0xf0, 0x61, 0xb3, 0x83, 0x63, 0x57, 0x4f, 0xf9, 0x6b, 0xa1, 0x0e, 0x19, 0x6b, 0x1b, 0x05, 0x31, 0xe1, 0x18, 0x30, 0x36, 0xa4, 0x25, 0xe6, 0x9c, 0x45, 0x98, 0x04, 0x0c, };
21575 static const ec_test_case ed25519_938_test_case = {
21576 	.name = "EDDSA25519-SHA512/wei25519 938",
21577 	.ec_str_p = &wei25519_str_params,
21578 	.priv_key = ed25519_938_test_vectors_priv_key,
21579 	.priv_key_len = sizeof(ed25519_938_test_vectors_priv_key),
21580 	.nn_random = NULL,
21581 	.hash_type = SHA512,
21582 	.msg = (const char *)ed25519_938_test_vectors_message,
21583 	.msglen = sizeof(ed25519_938_test_vectors_message),
21584 	.sig_type = EDDSA25519,
21585 	.exp_sig = ed25519_938_test_vectors_expected_sig,
21586 	.exp_siglen = sizeof(ed25519_938_test_vectors_expected_sig),
21587 	.adata = NULL,
21588 	.adata_len = 0
21589 };
21590 
21591 /************************************************/
21592 static const u8 ed25519_939_test_vectors_priv_key[] = {
21593 	0xae, 0xb1, 0x3c, 0xcb, 0x90, 0xc8, 0xcb, 0xef, 0x90, 0xd5, 0x53, 0xda, 0x3f, 0x69, 0x01, 0xb3, 0xd7, 0x5c, 0x13, 0x01, 0x1f, 0x02, 0x49, 0x74, 0xda, 0xf7, 0x9a, 0x17, 0x89, 0xc8, 0xc6, 0x32, };
21594 static const u8 ed25519_939_test_vectors_message[] = {
21595 	0x86, 0x1a, 0x10, 0x18, 0xd6, 0xbd, 0xc4, 0x80, 0x5a, 0x5c, 0x4d, 0xf8, 0x7e, 0xfa, 0xa4, 0x62, 0xc6, 0x8b, 0x4b, 0xf4, 0x06, 0x5c, 0x68, 0x4c, 0x2a, 0xf1, 0x31, 0xc6, 0x37, 0x73, 0x88, 0xba, 0xee, 0x58, 0xc6, 0xc8, 0xf8, 0x84, 0x23, 0x62, 0xec, 0x6e, 0x3b, 0xce, 0x07, 0xc8, 0xaf, 0x55, 0x88, 0x5e, 0x82, 0xdb, 0x87, 0xa1, 0x52, 0x27, 0x80, 0x0d, 0xd3, 0x3a, 0xfc, 0x5e, 0x5f, 0xd1, 0x57, 0x01, 0xe9, 0x5f, 0x53, 0x50, 0x1b, 0x1a, 0x6f, 0xf8, 0x3c, 0x64, 0xe8, 0x51, 0x71, 0x49, 0xbf, 0x3f, 0xf0, 0x11, 0xb0, 0x94, 0xa0, 0x9c, 0x67, 0x3d, 0x0f, 0xc4, 0xa3, 0x9e, 0xe5, 0x5e, 0x69, 0xf0, 0x71, 0x17, 0x7b, 0x8a, 0xa3, 0x64, 0xe1, 0xe2, 0x56, 0x06, 0x4c, 0xf7, 0x02, 0x79, 0xcc, 0x76, 0x69, 0x5a, 0xe4, 0x9d, 0xaf, 0xcd, 0x80, 0xca, 0x0a, 0x14, 0xe1, 0x69, 0x1d, 0xb9, 0x46, 0x42, 0x2e, 0xc7, 0x5a, 0xb4, 0xf7, 0x86, 0x59, 0x15, 0xa6, 0x9b, 0xd4, 0x8d, 0x89, 0xb1, 0x2a, 0xdf, 0x48, 0x7d, 0x4d, 0xb9, 0xbe, 0x87, 0xcd, 0xdc, 0xa2, 0x11, 0xaa, 0x88, 0xe9, 0xbb, 0xe8, 0x49, 0xda, 0x21, 0x39, 0x89, 0xeb, 0x08, 0x44, 0x59, 0x2a, 0xd6, 0x3e, 0x28, 0x1b, 0x2e, 0x4a, 0xfe, 0x6a, 0x88, 0x36, 0x00, 0x66, 0x09, 0x92, 0x6c, 0x0f, 0x78, 0x7e, 0x84, 0xf2, 0xa9, 0x5b, 0x46, 0xb6, 0x6f, 0x0e, 0x45, 0x55, 0xc9, 0x48, 0x3c, 0xe2, 0x17, 0x6f, 0xc6, 0x3f, 0x7c, 0xc9, 0xf4, 0xf2, 0xa2, 0x2d, 0xb0, 0x55, 0xaa, 0xe2, 0xe6, 0x8b, 0x30, 0xa0, 0xda, 0x5f, 0xeb, 0x80, 0xc2, 0xa6, 0x0e, 0xa1, 0x0d, 0xbf, 0x67, 0xfb, 0xbc, 0xdb, 0xe0, 0xbe, 0x33, 0xf2, 0xe9, 0xc1, 0x3c, 0x46, 0x9e, 0x77, 0x68, 0xf2, 0xff, 0x59, 0x60, 0xa5, 0x5e, 0xb4, 0x82, 0xec, 0x11, 0xd4, 0x7e, 0x15, 0x4b, 0x7c, 0x42, 0xa5, 0xfb, 0x75, 0x6c, 0x8a, 0xd5, 0x39, 0xb3, 0x3d, 0x12, 0x5a, 0x4a, 0x65, 0x19, 0x2c, 0x6c, 0x9b, 0xd5, 0x76, 0x23, 0x8c, 0xa7, 0x2a, 0x73, 0xcd, 0x17, 0x9e, 0x8c, 0xf5, 0xcd, 0x04, 0x8e, 0xd3, 0x30, 0x21, 0x38, 0x23, 0xab, 0xba, 0xfc, 0x36, 0x82, 0xb2, 0xb7, 0xf6, 0x8c, 0x5b, 0xc4, 0x6f, 0xd0, 0x9a, 0x8c, 0xb2, 0xa3, 0xfd, 0x09, 0x95, 0x73, 0xee, 0x2e, 0x6f, 0x28, 0xc8, 0x2e, 0x27, 0x1b, 0xb5, 0xef, 0x93, 0x4b, 0x0b, 0x0c, 0x38, 0x1c, 0xfa, 0xae, 0xc6, 0x66, 0xd7, 0x17, 0x10, 0x6a, 0x87, 0x4a, 0xf3, 0x0a, 0xa7, 0x41, 0x25, 0xea, 0xe9, 0xac, 0xc2, 0xf1, 0xf2, 0x41, 0x18, 0xcb, 0x4e, 0x68, 0x3a, 0x73, 0x1e, 0x37, 0xe5, 0xe4, 0x64, 0xa1, 0xea, 0x3d, 0x2a, 0x53, 0xcc, 0x0d, 0xca, 0xd4, 0xc1, 0x7c, 0xea, 0x9a, 0x43, 0xe2, 0x36, 0x5f, 0x3a, 0xe3, 0xdd, 0x89, 0xeb, 0x39, 0x97, 0x74, 0x20, 0x04, 0x55, 0x50, 0x74, 0x5f, 0xc2, 0x67, 0xfc, 0x7d, 0xcc, 0x56, 0x02, 0xe9, 0x14, 0x97, 0x2a, 0x4d, 0xa6, 0xeb, 0xeb, 0x68, 0x7f, 0x68, 0xa0, 0xcd, 0x7d, 0x8b, 0x4f, 0xdd, 0x73, 0x72, 0x21, 0x06, 0xa8, 0xe4, 0x36, 0xb9, 0x3e, 0x5b, 0x58, 0xf5, 0x98, 0x2a, 0xce, 0xcd, 0xec, 0xfd, 0xb3, 0x82, 0xfe, 0x98, 0x53, 0x82, 0x61, 0x42, 0x6b, 0xa6, 0x40, 0x52, 0x55, 0x76, 0x43, 0xce, 0x9f, 0xec, 0x71, 0xea, 0x43, 0xcf, 0x5b, 0x6c, 0xba, 0xde, 0xb4, 0x95, 0x31, 0x93, 0xff, 0x3e, 0xd1, 0xa1, 0xf9, 0x22, 0xa9, 0xaf, 0x2e, 0xc6, 0xf3, 0x38, 0xe7, 0xfb, 0x0a, 0xff, 0xe3, 0xd1, 0x3c, 0x33, 0xe3, 0x95, 0x87, 0x3e, 0x4a, 0x7a, 0x7f, 0xb0, 0x44, 0x98, 0x1e, 0x05, 0xa6, 0x71, 0x97, 0xb9, 0x96, 0xb1, 0x99, 0xb4, 0x30, 0x11, 0x11, 0x93, 0x63, 0xe5, 0x61, 0xd5, 0xb8, 0xa5, 0x17, 0x84, 0xfd, 0xff, 0x58, 0xab, 0x80, 0xed, 0x4c, 0x49, 0xe9, 0x3f, 0x0c, 0xf4, 0x19, 0x24, 0xf9, 0x83, 0x5e, 0xfb, 0x09, 0xf6, 0x44, 0x63, 0xb6, 0x55, 0x17, 0xb6, 0x7b, 0x15, 0xdc, 0x3f, 0x28, 0xad, 0x9a, 0x9b, 0x2d, 0x29, 0x46, 0x8d, 0xe2, 0xc6, 0x3e, 0x62, 0x00, 0x4b, 0x6a, 0x3f, 0xd0, 0xc5, 0xc2, 0xe2, 0xaa, 0xa6, 0xcf, 0xa1, 0x5e, 0x4f, 0xaa, 0xfa, 0x1e, 0x2c, 0x71, 0x3e, 0x98, 0xd3, 0xfd, 0x25, 0xca, 0xb9, 0xe5, 0x17, 0x03, 0x59, 0xc8, 0x36, 0x51, 0x52, 0xb4, 0x74, 0x27, 0x6e, 0xd0, 0x03, 0x7c, 0xdf, 0x77, 0x18, 0x28, 0xe2, 0xfb, 0x7c, 0xce, 0xc4, 0x89, 0x5f, 0x21, 0xad, 0xcc, 0x5b, 0x68, 0x87, 0xc8, 0x6e, 0x51, 0xad, 0x05, 0xf2, 0x55, 0xf6, 0xe9, 0xda, 0xd2, 0xc4, 0x1f, 0x56, 0xb9, 0x8b, 0x7b, 0xbb, 0xf9, 0xfc, 0xb6, 0xba, 0x8c, 0xad, 0xfd, 0x38, 0xad, 0x8c, 0x62, 0xf9, 0x2d, 0xd8, 0x77, 0x40, 0xfa, 0x1e, 0x1b, 0xd1, 0x70, 0xc0, 0x0b, 0x20, 0x49, 0xc5, 0x13, 0x0f, 0xe7, 0x33, 0xf1, 0x6b, 0x1f, 0x2c, 0x7f, 0x00, 0xb2, 0xef, 0x97, 0xb3, 0xa9, 0x54, 0x58, 0xc5, 0x3f, 0x19, 0x9d, 0x46, 0x53, 0x36, 0xd5, 0xff, 0x59, 0x77, 0x80, 0x6e, 0x1a, 0xfd, 0xe3, 0xea, 0xa2, 0x46, 0xd8, 0x5c, 0xab, 0xf7, 0xe1, 0x23, 0x48, 0x1e, 0x23, 0x92, 0x99, 0x76, 0xed, 0x19, 0xc4, 0x0e, 0x29, 0xff, 0x33, 0xd8, 0x0e, 0x7d, 0xea, 0xb1, 0x92, 0x71, 0xde, 0xcd, 0x5e, 0xe0, 0x61, 0x72, 0xb0, 0xb0, 0xa1, 0x39, 0xbd, 0x62, 0xa2, 0xe7, 0xc8, 0x3a, 0x8a, 0x65, 0x60, 0x1d, 0x0a, 0x05, 0xd6, 0x1a, 0xf9, 0xc6, 0x03, 0x2d, 0xf5, 0x80, 0x01, 0xd4, 0x73, 0xe2, 0x0d, 0xd6, 0xc6, 0xaf, 0xd7, 0x8d, 0xdb, 0xd7, 0xcd, 0x17, 0x8e, 0x9c, 0x27, 0x1e, 0x05, 0x72, 0xf8, 0x59, 0x82, 0x82, 0x3c, 0xe6, 0xc4, 0x02, 0x93, 0x0c, 0xf8, 0x0f, 0x5e, 0x0c, 0x7c, 0xda, 0x85, 0x12, 0x2a, 0x76, 0xd1, 0xce, 0x02, 0x1b, 0x1e, 0x3d, 0xe2, 0x55, 0x6d, 0x1b, 0x45, 0xac, 0x7b, 0x01, 0xb5, 0x9c, 0xad, 0xa2, 0x52, 0x91, 0xd6, 0x38, 0xa5, 0x2a, 0x5e, 0x7d, 0xbc, 0xdd, 0xf9, 0x6b, 0xb1, 0x77, 0x4a, 0xb0, 0xb0, 0x77, 0xe4, 0xb3, 0xda, 0x5a, 0x95, 0x8f, 0xe1, 0x1d, 0xee, 0x4a, 0x02, 0xe6, 0x9b, 0x91, 0x8d, 0xdb, 0xfa, 0x1c, 0x5b, 0x3b, 0x7d, 0xca, 0x9f, 0x87, 0x84, 0xbb, 0x6b, 0x0b, 0x9d, 0x5a, 0x7f, 0xee, 0x74, 0xbb, 0x03, 0x74, 0x7f, 0x61, 0xc2, 0xb2, 0xf1, 0xb4, 0x92, 0x45, 0x2d, 0x3b, 0x56, 0x0b, 0x48, 0xd3, 0x9d, 0x87, 0x21, 0xe9, 0x83, 0x75, 0x25, 0x56, 0xd4, 0x4d, 0xa6, 0xb0, 0x28, 0xd9, 0xae, 0xf8, 0xbf, 0xf9, 0xaa, 0x37, 0x9c, 0x8e, 0x2b, 0x0a, 0x63, 0x6d, 0x74, 0x88, 0x60, 0xab, 0xd8, 0xe6, 0x4f, 0xc8, 0xe9, 0x65, 0x20, 0xa3, 0x4a, 0x27, 0xf7, 0x67, 0xaa, 0x97, 0xa8, 0xf7, 0x7b, 0x60, 0x95, 0x21, 0x8e, 0xad, };
21596 static const u8 ed25519_939_test_vectors_expected_sig[] = {
21597 	0x06, 0x11, 0xb1, 0x9a, 0x74, 0x72, 0xa4, 0x43, 0xe8, 0x7e, 0x54, 0xd7, 0xc6, 0x64, 0x7f, 0xaa, 0xb1, 0xb7, 0x9a, 0x83, 0xfd, 0x43, 0x71, 0xc9, 0x2b, 0x97, 0x54, 0x00, 0xfd, 0x62, 0x8a, 0xcf, 0xc3, 0x25, 0x77, 0xcc, 0xbb, 0xaf, 0x03, 0xd8, 0x8f, 0x89, 0x3c, 0x88, 0xf2, 0xca, 0xc7, 0x84, 0xc7, 0x22, 0xa0, 0x8f, 0x38, 0x7a, 0xbc, 0x31, 0x9a, 0x70, 0x2c, 0x86, 0x84, 0x79, 0x65, 0x0b, };
21598 static const ec_test_case ed25519_939_test_case = {
21599 	.name = "EDDSA25519-SHA512/wei25519 939",
21600 	.ec_str_p = &wei25519_str_params,
21601 	.priv_key = ed25519_939_test_vectors_priv_key,
21602 	.priv_key_len = sizeof(ed25519_939_test_vectors_priv_key),
21603 	.nn_random = NULL,
21604 	.hash_type = SHA512,
21605 	.msg = (const char *)ed25519_939_test_vectors_message,
21606 	.msglen = sizeof(ed25519_939_test_vectors_message),
21607 	.sig_type = EDDSA25519,
21608 	.exp_sig = ed25519_939_test_vectors_expected_sig,
21609 	.exp_siglen = sizeof(ed25519_939_test_vectors_expected_sig),
21610 	.adata = NULL,
21611 	.adata_len = 0
21612 };
21613 
21614 /************************************************/
21615 static const u8 ed25519_940_test_vectors_priv_key[] = {
21616 	0x73, 0x87, 0x2b, 0x14, 0x76, 0x2f, 0x68, 0xda, 0xe4, 0xfc, 0x10, 0xdf, 0xd6, 0xf4, 0x2d, 0x3f, 0x96, 0x22, 0xbf, 0x2a, 0xfe, 0x6b, 0x34, 0xa9, 0x56, 0x49, 0xaa, 0x38, 0x74, 0x24, 0xee, 0x6c, };
21617 static const u8 ed25519_940_test_vectors_message[] = {
21618 	0x43, 0x3d, 0x71, 0x78, 0x1c, 0xea, 0xb2, 0xb4, 0x7d, 0x82, 0x6e, 0x67, 0xd3, 0x9f, 0x9b, 0x80, 0xd2, 0xff, 0xd7, 0x25, 0xf8, 0xc5, 0xae, 0xb4, 0x0c, 0xbe, 0x4f, 0x9b, 0x5f, 0x48, 0xef, 0x93, 0x52, 0x1c, 0xce, 0xc6, 0x04, 0x36, 0x0b, 0x96, 0x47, 0x32, 0x31, 0x90, 0xbf, 0xef, 0x75, 0xac, 0x93, 0x15, 0x62, 0xd2, 0x7f, 0x4a, 0x4e, 0x31, 0xf4, 0x6e, 0x57, 0xbc, 0x99, 0xfa, 0x51, 0x58, 0xc8, 0x2e, 0x12, 0xb7, 0x37, 0xe4, 0x5c, 0x5d, 0xe9, 0xf7, 0xdd, 0x7c, 0x86, 0x22, 0xd4, 0xa7, 0xea, 0xad, 0xf7, 0x20, 0x2f, 0xb4, 0x9d, 0x81, 0x9c, 0x9a, 0xd2, 0x4f, 0x88, 0x07, 0x31, 0x3c, 0x5f, 0x37, 0xdc, 0x20, 0x45, 0x3b, 0xdf, 0x05, 0xc9, 0xbf, 0x1a, 0x3c, 0x21, 0x17, 0xc9, 0x3e, 0x7f, 0x3c, 0xc8, 0xa2, 0x54, 0x20, 0x98, 0xe8, 0xfc, 0x1c, 0x64, 0x2f, 0xa4, 0x7b, 0x05, 0x54, 0x36, 0x57, 0xb8, 0x5f, 0x48, 0x0b, 0xc8, 0x6e, 0xc4, 0x28, 0x00, 0xbb, 0x14, 0x22, 0x35, 0x9c, 0x7c, 0x3e, 0x8f, 0xf4, 0xbe, 0x59, 0x8b, 0xd5, 0x4f, 0x1d, 0xc5, 0x86, 0xac, 0xae, 0x45, 0xa4, 0x74, 0x06, 0x22, 0xb9, 0x62, 0x74, 0x2b, 0xc8, 0x6e, 0x17, 0xcf, 0xa6, 0x3e, 0x77, 0x53, 0x54, 0xe7, 0x70, 0x7e, 0x50, 0x79, 0x58, 0x9e, 0x8d, 0x10, 0x8b, 0x1f, 0x11, 0xda, 0xce, 0x05, 0x75, 0xcb, 0x9a, 0x6d, 0x26, 0xb5, 0x9f, 0xce, 0x98, 0x14, 0x65, 0xd9, 0xbc, 0x34, 0x4e, 0xa6, 0x94, 0x5a, 0x95, 0xb8, 0x62, 0x79, 0x63, 0x84, 0xfa, 0x81, 0x70, 0x56, 0x08, 0x57, 0x45, 0x7b, 0xef, 0xf9, 0x5a, 0x9b, 0x5a, 0xc3, 0xd6, 0xad, 0x28, 0x2d, 0x44, 0x92, 0x9a, 0x30, 0x30, 0x26, 0xb4, 0xbb, 0xed, 0xd6, 0x0e, 0x2e, 0xf0, 0x55, 0xa3, 0x1f, 0x52, 0xd7, 0xce, 0x8d, 0xf2, 0xca, 0x5d, 0x18, 0x51, 0xc5, 0xb1, 0x67, 0xdb, 0x08, 0x09, 0x25, 0x9b, 0xb8, 0x12, 0x56, 0x90, 0x74, 0x10, 0x5c, 0x73, 0x4c, 0x85, 0xd6, 0x23, 0x12, 0x73, 0x75, 0x5f, 0x3a, 0x8b, 0x56, 0xdc, 0x50, 0x8d, 0xb5, 0xc2, 0x3d, 0xac, 0xb7, 0xa0, 0x61, 0x67, 0xbd, 0xa5, 0x1b, 0xc0, 0x13, 0x50, 0xf0, 0x16, 0xcd, 0x41, 0xb2, 0x1e, 0x8c, 0xc5, 0xbc, 0x93, 0x34, 0x3a, 0x9b, 0xb6, 0xea, 0x47, 0x38, 0xc5, 0xc8, 0x4b, 0x78, 0xfa, 0x96, 0x3c, 0x41, 0x0e, 0x43, 0x3d, 0xc5, 0x98, 0x19, 0x6c, 0x22, 0xe5, 0xb7, 0x91, 0xe1, 0x2a, 0x4b, 0x34, 0x3f, 0x7c, 0xd4, 0x7b, 0xbb, 0x0e, 0xb0, 0x78, 0x2b, 0xdb, 0x1a, 0x4e, 0x46, 0x68, 0x46, 0xa0, 0x30, 0x52, 0x8e, 0xeb, 0x89, 0x05, 0x6f, 0x73, 0x25, 0x71, 0x93, 0xad, 0xaa, 0xbc, 0x1b, 0x22, 0x98, 0x62, 0x03, 0x48, 0x78, 0xc3, 0x25, 0x8a, 0x53, 0x25, 0x48, 0x76, 0x2e, 0x29, 0xec, 0xc0, 0x01, 0xab, 0xd9, 0x89, 0x64, 0x9d, 0xa5, 0xe1, 0x44, 0xcf, 0x35, 0xd4, 0x86, 0x99, 0xf2, 0x3b, 0xc4, 0x6c, 0x5b, 0x34, 0xe0, 0x4a, 0x53, 0xe7, 0x27, 0x24, 0xb2, 0xb0, 0xb8, 0x78, 0x98, 0x25, 0x75, 0xd6, 0x88, 0xe2, 0x3c, 0xbe, 0x3a, 0x34, 0x06, 0x7f, 0x49, 0x71, 0xe5, 0x55, 0x97, 0x2e, 0xc2, 0x90, 0x8a, 0xe5, 0xf0, 0x3e, 0x88, 0x31, 0xec, 0x67, 0x75, 0x5b, 0xe9, 0x56, 0x87, 0xce, 0x63, 0x72, 0x93, 0x9e, 0x1e, 0x2f, 0xb6, 0x95, 0x1e, 0xc9, 0xec, 0xf4, 0xbf, 0x7d, 0x15, 0x35, 0x43, 0x1e, 0x25, 0x9f, 0x29, 0xad, 0x43, 0x12, 0x22, 0xb5, 0x4b, 0x65, 0xaa, 0x7d, 0x07, 0xcf, 0xb5, 0xdf, 0x16, 0x2a, 0x87, 0xc4, 0xd0, 0x34, 0x81, 0xeb, 0x44, 0x1f, 0x22, 0x1d, 0x7f, 0x58, 0x62, 0x7a, 0x14, 0x16, 0x4e, 0x7f, 0x4c, 0x2e, 0x3a, 0x1d, 0x50, 0x7e, 0x89, 0x9d, 0x53, 0x58, 0xe0, 0x08, 0x29, 0xb0, 0x8c, 0xf3, 0xae, 0xcb, 0x8a, 0x75, 0xb2, 0xa3, 0x1c, 0x31, 0x85, 0xa5, 0x80, 0xe1, 0x2b, 0x13, 0xf0, 0x64, 0x28, 0x69, 0xff, 0xfb, 0x05, 0x67, 0x23, 0xe9, 0x61, 0xaa, 0xf6, 0xfe, 0xfe, 0x67, 0xb4, 0xa7, 0xc4, 0xc9, 0x3d, 0xb3, 0xfe, 0x1f, 0x61, 0xad, 0xcc, 0x76, 0x55, 0x69, 0xa9, 0x9c, 0x09, 0xa3, 0xc8, 0x24, 0xed, 0x4a, 0x98, 0xba, 0xbe, 0xae, 0x43, 0xef, 0xb1, 0xf3, 0x51, 0xba, 0x13, 0x0e, 0x22, 0xaa, 0x97, 0x81, 0x19, 0x86, 0xbe, 0x92, 0x3c, 0xc4, 0x18, 0x0a, 0x7c, 0x4b, 0x78, 0xbc, 0xc1, 0x40, 0xce, 0xc1, 0x55, 0x74, 0x65, 0x4a, 0xa6, 0xd6, 0x5a, 0x06, 0xb9, 0x7e, 0xcf, 0xa5, 0xf3, 0xa9, 0x35, 0x5f, 0x96, 0xe4, 0xee, 0xaa, 0x76, 0x89, 0x21, 0x7b, 0x66, 0x3f, 0xba, 0x4d, 0xab, 0x0d, 0x99, 0xb1, 0x9c, 0x8d, 0x8d, 0xbf, 0x47, 0xa1, 0x57, 0xe5, 0xd5, 0x96, 0x9a, 0x35, 0xef, 0x84, 0xdf, 0xf9, 0x56, 0x2e, 0xdd, 0x43, 0x4e, 0x73, 0xae, 0xe7, 0xd0, 0xd8, 0x92, 0xdd, 0xa7, 0x2a, 0x36, 0x2a, 0x22, 0xa7, 0xe9, 0xfa, 0x86, 0x34, 0xa5, 0x7e, 0xeb, 0xd1, 0xa9, 0x07, 0x48, 0x5c, 0xa8, 0x92, 0x1b, 0xdc, 0x19, 0xee, 0x9e, 0xe5, 0x88, 0xf3, 0x95, 0x68, 0x7d, 0x3f, 0xc8, 0xf8, 0xc2, 0x5f, 0x2e, 0x95, 0x76, 0xca, 0x60, 0x31, 0x3f, 0xbb, 0x2c, 0x26, 0x5a, 0x99, 0xf2, 0xcd, 0xd5, 0x57, 0x5b, 0x1d, 0xd5, 0x30, 0x60, 0x4e, 0x9a, 0xd6, 0x69, 0x5c, 0x9f, 0xb3, 0x59, 0x94, 0xa8, 0xb8, 0x7d, 0x5c, 0x85, 0x70, 0x54, 0x9a, 0x4d, 0x32, 0x9b, 0x9f, 0xe0, 0x87, 0x06, 0x9a, 0xb7, 0xeb, 0x0d, 0x71, 0x4a, 0x94, 0xe1, 0x92, 0x61, 0xf8, 0x6e, 0x44, 0x8f, 0x2d, 0xa9, 0xb1, 0xcb, 0x0c, 0x0d, 0xbe, 0x41, 0xd4, 0x4c, 0x3a, 0x82, 0x47, 0x83, 0xd1, 0xbd, 0xbd, 0x73, 0x26, 0x05, 0x1a, 0xeb, 0x10, 0xad, 0xab, 0x80, 0x5c, 0x5c, 0x59, 0xd0, 0xe8, 0x3b, 0x1c, 0x11, 0xa2, 0xfd, 0xd3, 0x5e, 0x44, 0x4a, 0x49, 0x9e, 0xd1, 0x5d, 0xaf, 0xd8, 0x38, 0x62, 0x77, 0x5f, 0x6c, 0xdf, 0xc6, 0x75, 0x95, 0x81, 0x84, 0x07, 0xbe, 0x55, 0xec, 0xbf, 0x7b, 0xf8, 0x6c, 0x73, 0x06, 0x9a, 0xac, 0xe5, 0x77, 0x62, 0x6a, 0x85, 0x63, 0x53, 0x6f, 0x60, 0x50, 0x42, 0xcf, 0x7c, 0xaa, 0xf6, 0xfc, 0x8e, 0x3b, 0x54, 0x5b, 0x77, 0x41, 0x4d, 0xf8, 0xd9, 0xf6, 0x49, 0xb9, 0x9e, 0xe4, 0x25, 0x41, 0xda, 0x38, 0xc3, 0xaa, 0xe6, 0x27, 0x20, 0x78, 0x45, 0xb8, 0xf4, 0x14, 0xa8, 0x07, 0x4d, 0x70, 0x86, 0x8a, 0x5c, 0x0b, 0x07, 0xb0, 0x70, 0xc3, 0xc6, 0x53, 0xbe, 0x04, 0x07, 0x6b, 0x83, 0xca, 0xd7, 0xb0, 0x30, 0x5d, 0x95, 0x00, 0xaa, 0x44, 0x45, 0x5c, 0xb8, 0x60, 0xdc, 0xc7, 0x64, 0x00, 0xaf, 0x93, 0xc3, 0xd2, 0xef, 0xb4, 0x2a, 0xe0, 0x56, 0xf1, 0x42, 0x8b, 0x65, 0xf1, 0x22, 0xe1, 0xc7, 0xb9, 0x58, 0x4d, 0x81, 0x4d, 0x50, 0xac, 0x72, 0xef, 0xdb, };
21619 static const u8 ed25519_940_test_vectors_expected_sig[] = {
21620 	0x85, 0x25, 0xc3, 0x46, 0xca, 0x3a, 0x6a, 0x6c, 0x5f, 0x65, 0xc4, 0x17, 0x78, 0x59, 0x93, 0x77, 0x65, 0x98, 0x70, 0xcb, 0x6d, 0xf9, 0xa4, 0xa0, 0xe5, 0x5b, 0x40, 0xc3, 0x5b, 0xeb, 0xa5, 0x5c, 0x8e, 0x00, 0x9e, 0x56, 0x00, 0xb6, 0x44, 0x7d, 0xc7, 0x40, 0x2b, 0xa2, 0x77, 0x49, 0x29, 0x7e, 0x8f, 0x95, 0x28, 0x69, 0x18, 0x56, 0xf7, 0x2d, 0x2a, 0xd7, 0x61, 0xed, 0x1b, 0xc1, 0x53, 0x09, };
21621 static const ec_test_case ed25519_940_test_case = {
21622 	.name = "EDDSA25519-SHA512/wei25519 940",
21623 	.ec_str_p = &wei25519_str_params,
21624 	.priv_key = ed25519_940_test_vectors_priv_key,
21625 	.priv_key_len = sizeof(ed25519_940_test_vectors_priv_key),
21626 	.nn_random = NULL,
21627 	.hash_type = SHA512,
21628 	.msg = (const char *)ed25519_940_test_vectors_message,
21629 	.msglen = sizeof(ed25519_940_test_vectors_message),
21630 	.sig_type = EDDSA25519,
21631 	.exp_sig = ed25519_940_test_vectors_expected_sig,
21632 	.exp_siglen = sizeof(ed25519_940_test_vectors_expected_sig),
21633 	.adata = NULL,
21634 	.adata_len = 0
21635 };
21636 
21637 /************************************************/
21638 static const u8 ed25519_941_test_vectors_priv_key[] = {
21639 	0x67, 0xcf, 0x27, 0x15, 0x52, 0x87, 0xbe, 0x6b, 0xfa, 0xb6, 0x62, 0x15, 0xe0, 0x17, 0xc3, 0x46, 0x63, 0x22, 0xf2, 0x1e, 0x6e, 0xb1, 0x40, 0xbe, 0x4f, 0x1b, 0xde, 0xcf, 0x55, 0xab, 0xfd, 0xc1, };
21640 static const u8 ed25519_941_test_vectors_message[] = {
21641 	0x0f, 0xf0, 0x52, 0x97, 0x03, 0x1c, 0x89, 0x27, 0x74, 0xcb, 0x2c, 0x01, 0xe8, 0xca, 0x60, 0xdd, 0xd0, 0xce, 0xac, 0xc0, 0xb8, 0xd5, 0x91, 0xa8, 0x91, 0xe3, 0x3b, 0x19, 0xe1, 0xbe, 0x9e, 0x36, 0x3b, 0xc6, 0x42, 0x0d, 0x6f, 0x52, 0x9f, 0x04, 0x84, 0x0b, 0x3b, 0x08, 0x85, 0x3c, 0x83, 0x5a, 0x03, 0xe0, 0x36, 0x97, 0x8b, 0x04, 0xa4, 0xf9, 0xec, 0x6b, 0xe4, 0xae, 0xf3, 0x31, 0x95, 0x61, 0x90, 0x99, 0x6d, 0xea, 0x27, 0x26, 0x19, 0xf1, 0x68, 0x6d, 0x33, 0xbe, 0xf0, 0x3d, 0xbc, 0x08, 0x5a, 0x92, 0x3a, 0x0f, 0x11, 0x5b, 0x78, 0xf6, 0x53, 0xfe, 0xeb, 0x60, 0xbb, 0x9e, 0x45, 0xf3, 0x4f, 0xb8, 0xbe, 0x5a, 0x4c, 0xbb, 0x64, 0x8c, 0x7d, 0x29, 0x95, 0x6f, 0x0d, 0x0e, 0x96, 0xbd, 0xd3, 0xc8, 0xd0, 0x64, 0x97, 0x20, 0x62, 0x4c, 0xbc, 0x20, 0x79, 0xe8, 0x4f, 0xd6, 0xd0, 0x10, 0x24, 0x11, 0x24, 0x09, 0x84, 0x59, 0xf1, 0x2a, 0xf2, 0x99, 0x1d, 0x38, 0x28, 0x77, 0x0f, 0x50, 0xb1, 0x04, 0xea, 0x6e, 0x5f, 0x51, 0xfd, 0xad, 0x30, 0xa9, 0xb8, 0x07, 0x9d, 0x21, 0x59, 0xe4, 0x6d, 0x64, 0xaf, 0x91, 0xd0, 0x7c, 0x10, 0xed, 0x19, 0x81, 0x4d, 0xf2, 0xaf, 0xe6, 0x60, 0xd7, 0xd8, 0xf2, 0x40, 0x35, 0x34, 0xe9, 0x2c, 0x62, 0xe1, 0xea, 0x6d, 0x68, 0x82, 0x03, 0xbc, 0xa3, 0xd9, 0x7c, 0x2a, 0xfd, 0xa8, 0x3b, 0x25, 0x55, 0x20, 0xff, 0xe9, 0x2a, 0x33, 0x62, 0x57, 0x72, 0x51, 0x3b, 0x1f, 0xe3, 0x4f, 0xaf, 0xe3, 0x2b, 0x6a, 0x9b, 0x8c, 0xf9, 0x94, 0xdf, 0x7e, 0x63, 0x4e, 0x68, 0x65, 0x91, 0xe5, 0xf0, 0x07, 0x3a, 0xba, 0xbc, 0x64, 0xa8, 0x92, 0x10, 0xba, 0x53, 0xa4, 0x99, 0x1c, 0x11, 0x55, 0x7e, 0x03, 0x34, 0xe6, 0xc6, 0xa5, 0x03, 0x6c, 0x64, 0x2a, 0x31, 0x8f, 0x22, 0x95, 0x11, 0x71, 0x39, 0x08, 0x5f, 0xb3, 0x40, 0x75, 0x64, 0x70, 0x06, 0x75, 0x8e, 0x32, 0xbc, 0x00, 0xad, 0x10, 0x9f, 0xe8, 0x03, 0xf7, 0xee, 0x9f, 0x5e, 0xc2, 0xaf, 0x4d, 0x25, 0xc3, 0x07, 0x0a, 0xbc, 0x51, 0xcf, 0x4d, 0x78, 0xe1, 0x3a, 0x7c, 0xe2, 0x83, 0xd4, 0xfb, 0x4e, 0xb4, 0x1d, 0x3e, 0x8c, 0xe9, 0x02, 0x38, 0x50, 0x0a, 0xe0, 0xce, 0xda, 0x32, 0x0e, 0xc5, 0x92, 0x2e, 0xfa, 0x10, 0xb9, 0x03, 0x74, 0x8e, 0x1e, 0x85, 0x3a, 0x37, 0x29, 0xd2, 0x4c, 0x10, 0x54, 0x39, 0xdf, 0x2f, 0x70, 0x00, 0x12, 0x3d, 0xb9, 0xb2, 0xc0, 0x15, 0x33, 0xbb, 0xf0, 0xd0, 0x28, 0xeb, 0xb2, 0xfc, 0x00, 0xdc, 0xe3, 0x8a, 0xd0, 0x63, 0x28, 0xee, 0x9e, 0xcd, 0x84, 0x9a, 0x6e, 0xfc, 0x3a, 0xe8, 0x84, 0xef, 0x69, 0x33, 0xcf, 0xeb, 0xed, 0x05, 0x5b, 0xb2, 0x96, 0x8a, 0x0b, 0x06, 0x76, 0xb5, 0x72, 0x92, 0x16, 0x17, 0x8c, 0x75, 0x19, 0xef, 0x07, 0x88, 0x59, 0x3f, 0xc0, 0xdc, 0xff, 0x50, 0xd7, 0xe0, 0xb1, 0xeb, 0xb3, 0xcf, 0x49, 0xbb, 0xd1, 0xbf, 0xa5, 0xc3, 0x0e, 0xa7, 0xb8, 0x8c, 0x36, 0xe1, 0xa1, 0x59, 0x3a, 0xef, 0x0b, 0xb3, 0xf9, 0xe2, 0x09, 0x1c, 0x85, 0x89, 0xf7, 0x41, 0x4b, 0xee, 0xd8, 0xdf, 0x46, 0x6a, 0x2e, 0xd8, 0x7b, 0x2c, 0xb5, 0xf3, 0x5f, 0x1d, 0x31, 0x24, 0x6c, 0xeb, 0x96, 0x86, 0x09, 0x25, 0x36, 0x15, 0xd7, 0x80, 0x43, 0x51, 0x73, 0x79, 0xee, 0x69, 0x74, 0xa6, 0x69, 0xcb, 0x48, 0xda, 0x6a, 0xc2, 0xf9, 0x6d, 0x70, 0x0b, 0x7e, 0x44, 0xa4, 0x35, 0xcf, 0xef, 0xec, 0x40, 0x2a, 0x1e, 0x31, 0x10, 0xe7, 0x69, 0x81, 0x92, 0x4f, 0x26, 0x01, 0xc0, 0x1d, 0xc0, 0x35, 0x46, 0xfd, 0x4f, 0x51, 0x16, 0x49, 0x30, 0x2f, 0x06, 0x33, 0xdf, 0xbd, 0x25, 0x65, 0x1c, 0x5a, 0x59, 0x9c, 0x90, 0x95, 0x44, 0x89, 0xc7, 0x6a, 0x65, 0xec, 0x05, 0xa7, 0xe4, 0xcc, 0x74, 0x61, 0x6c, 0xe2, 0x56, 0x01, 0xcc, 0x37, 0xb8, 0x04, 0xe1, 0xf0, 0xbc, 0xc8, 0x65, 0x10, 0x23, 0xb1, 0x2e, 0x13, 0x56, 0x84, 0x41, 0xe8, 0xb8, 0xef, 0x4c, 0x30, 0x5f, 0xcd, 0xad, 0x3d, 0x2b, 0x13, 0xfa, 0x08, 0x03, 0x24, 0xb2, 0xfd, 0x6b, 0x61, 0x99, 0x8c, 0xf8, 0x64, 0xb6, 0x58, 0xbc, 0x7f, 0xef, 0xcc, 0x48, 0xa5, 0xa7, 0x68, 0x1d, 0x7c, 0x86, 0x6c, 0x34, 0x2c, 0x7f, 0x5d, 0x6c, 0xf1, 0x08, 0x81, 0x52, 0x2c, 0xc7, 0x10, 0x25, 0x7d, 0x25, 0xa4, 0xc1, 0xe3, 0x52, 0xd2, 0x70, 0xe9, 0x02, 0x08, 0x2a, 0xb9, 0x54, 0x1d, 0x59, 0x00, 0xce, 0xff, 0xa0, 0x91, 0x4b, 0x16, 0xb5, 0x5e, 0x0d, 0xd3, 0x78, 0x6e, 0x98, 0xd4, 0x17, 0x20, 0x87, 0x5a, 0x14, 0x8e, 0xb4, 0xab, 0xdb, 0x01, 0x53, 0x85, 0x66, 0x79, 0xfb, 0x98, 0xc0, 0xec, 0x48, 0x5e, 0x5f, 0x45, 0x8d, 0x63, 0x5b, 0x78, 0x61, 0xa2, 0xb3, 0xa8, 0xba, 0x5e, 0xc2, 0xc1, 0x44, 0x4d, 0x35, 0x39, 0x80, 0x20, 0x0e, 0x5e, 0x07, 0x18, 0x08, 0x85, 0x4a, 0x26, 0x8c, 0xc7, 0x6c, 0x60, 0x5c, 0x94, 0xf3, 0x73, 0x29, 0xc3, 0x61, 0x87, 0xa4, 0x1f, 0xdd, 0xf9, 0x2a, 0xab, 0xdb, 0x49, 0x96, 0xa0, 0xe1, 0x0b, 0x31, 0x55, 0x26, 0xaf, 0xea, 0xc8, 0x0e, 0xb2, 0xfa, 0x32, 0xaf, 0x78, 0x6a, 0x34, 0x31, 0x6b, 0x36, 0x11, 0x1e, 0xe9, 0x35, 0x21, 0x08, 0x14, 0x4d, 0x70, 0xf7, 0xd1, 0x72, 0x3b, 0x32, 0xf4, 0xdb, 0xaa, 0x82, 0x20, 0x13, 0x53, 0x41, 0x1d, 0x65, 0x77, 0x13, 0xe5, 0x5e, 0x35, 0xdf, 0x78, 0x58, 0x0b, 0x1b, 0xc0, 0x86, 0x80, 0xf0, 0x15, 0x9f, 0xa1, 0x16, 0xfa, 0xf4, 0x63, 0x56, 0x6a, 0xaf, 0xe8, 0xae, 0xa6, 0x98, 0x57, 0xe7, 0x2e, 0x44, 0xac, 0x80, 0x9a, 0xc4, 0x3f, 0x5c, 0x45, 0x93, 0x9d, 0x85, 0xa1, 0xa5, 0xf4, 0xa3, 0x70, 0xa1, 0x89, 0x96, 0xc8, 0x51, 0x4a, 0x46, 0xf3, 0x43, 0x71, 0xef, 0x9e, 0x5f, 0xb2, 0x04, 0x42, 0x2c, 0x93, 0x4a, 0x1d, 0x29, 0x3d, 0x10, 0x1b, 0x8c, 0x16, 0xf9, 0x9c, 0xc0, 0x73, 0xea, 0x36, 0x6a, 0x13, 0xa4, 0x5c, 0x43, 0x7d, 0x62, 0x0d, 0x13, 0x2b, 0x74, 0x40, 0x9c, 0xbf, 0x8b, 0x9c, 0x07, 0x5b, 0x41, 0x63, 0xf7, 0x26, 0xaa, 0x67, 0xe5, 0x09, 0xa2, 0x48, 0x74, 0xfc, 0x1b, 0x1f, 0xb6, 0xfb, 0x7c, 0x73, 0x55, 0x15, 0x9c, 0x02, 0xaa, 0x13, 0xe6, 0x4b, 0xad, 0xf1, 0x50, 0x35, 0x6b, 0x18, 0x41, 0xb3, 0x21, 0xf8, 0x04, 0x1e, 0x13, 0xed, 0x77, 0xe8, 0x46, 0x1c, 0xfb, 0xb8, 0xe8, 0x28, 0x48, 0x8b, 0xf5, 0x17, 0xa5, 0xd2, 0x9f, 0xf8, 0x2e, 0x73, 0x67, 0x48, 0x0a, 0x8e, 0xdd, 0xde, 0xb5, 0x35, 0x0e, 0x7a, 0x83, 0x42, 0x3b, 0xd0, 0xb1, 0xc5, 0x5f, 0x7b, 0xb4, 0x24, 0xca, 0x04, 0xc2, 0x05, 0x72, 0x3c, 0xd5, 0x40, 0x56, 0x71, 0xe7, 0x33, 0xf3, 0x91, 0x60, 0x0a, };
21642 static const u8 ed25519_941_test_vectors_expected_sig[] = {
21643 	0xc9, 0x34, 0xa3, 0xa1, 0xaa, 0xab, 0x78, 0xd9, 0x26, 0x9d, 0x1e, 0x9d, 0x13, 0x39, 0x2f, 0x72, 0xc6, 0x37, 0xbc, 0x5d, 0xe5, 0x4f, 0x04, 0x69, 0x1e, 0xfc, 0x29, 0xd4, 0x73, 0xb4, 0x75, 0x02, 0x5d, 0x8d, 0x8f, 0xe3, 0xc5, 0x23, 0xd2, 0xd2, 0x9c, 0x41, 0xc5, 0xf3, 0xde, 0xc6, 0xca, 0x38, 0xce, 0x6d, 0x68, 0xd7, 0xff, 0x09, 0xb6, 0x13, 0x5b, 0xa2, 0x4d, 0x0d, 0x32, 0xcc, 0x15, 0x02, };
21644 static const ec_test_case ed25519_941_test_case = {
21645 	.name = "EDDSA25519-SHA512/wei25519 941",
21646 	.ec_str_p = &wei25519_str_params,
21647 	.priv_key = ed25519_941_test_vectors_priv_key,
21648 	.priv_key_len = sizeof(ed25519_941_test_vectors_priv_key),
21649 	.nn_random = NULL,
21650 	.hash_type = SHA512,
21651 	.msg = (const char *)ed25519_941_test_vectors_message,
21652 	.msglen = sizeof(ed25519_941_test_vectors_message),
21653 	.sig_type = EDDSA25519,
21654 	.exp_sig = ed25519_941_test_vectors_expected_sig,
21655 	.exp_siglen = sizeof(ed25519_941_test_vectors_expected_sig),
21656 	.adata = NULL,
21657 	.adata_len = 0
21658 };
21659 
21660 /************************************************/
21661 static const u8 ed25519_942_test_vectors_priv_key[] = {
21662 	0x18, 0xc2, 0x1c, 0x0d, 0x0d, 0xe1, 0x3d, 0x4c, 0x64, 0x49, 0x7e, 0xf0, 0x26, 0x0d, 0x66, 0xcf, 0xd3, 0x42, 0x16, 0x98, 0x1a, 0x1b, 0x49, 0x39, 0x1a, 0xe5, 0xcb, 0x0e, 0x41, 0x43, 0x6e, 0x9f, };
21663 static const u8 ed25519_942_test_vectors_message[] = {
21664 	0x68, 0xab, 0xca, 0x7c, 0x16, 0x6a, 0xfe, 0x06, 0x3e, 0x47, 0x7b, 0x80, 0xe3, 0x7d, 0xb2, 0x24, 0xe1, 0xa2, 0x35, 0xde, 0x8f, 0xcd, 0xeb, 0x7f, 0x42, 0x7a, 0xf6, 0x7e, 0x00, 0x12, 0x47, 0xcc, 0x5e, 0x05, 0x71, 0x82, 0xfd, 0x9b, 0x6d, 0xb8, 0xba, 0xba, 0xa6, 0x58, 0xcf, 0x3b, 0x3f, 0xe4, 0xb0, 0x76, 0x3b, 0xf8, 0x8d, 0x67, 0x31, 0x1b, 0x11, 0x90, 0xbe, 0x83, 0x40, 0x18, 0xcf, 0x57, 0xa3, 0x32, 0x92, 0x24, 0x13, 0x76, 0x46, 0x20, 0xac, 0xe0, 0x54, 0x45, 0xee, 0x01, 0x9a, 0x06, 0xdf, 0xf9, 0x8b, 0x23, 0x89, 0x79, 0xad, 0x6d, 0x30, 0x90, 0x1b, 0xef, 0xa3, 0xc6, 0x4f, 0x6b, 0xd8, 0xc6, 0xeb, 0x09, 0x2c, 0x2e, 0x62, 0x84, 0x13, 0x88, 0xfd, 0x8c, 0x4e, 0x84, 0x19, 0xe2, 0x77, 0x89, 0x84, 0x89, 0x67, 0x37, 0xed, 0x90, 0xa2, 0xcd, 0xb2, 0x19, 0x96, 0xae, 0xf7, 0xc2, 0x16, 0x38, 0xd6, 0xcb, 0xe6, 0x80, 0x32, 0x2d, 0x08, 0x99, 0x65, 0x97, 0xa9, 0xe3, 0x03, 0xf6, 0xf5, 0xf4, 0x79, 0x40, 0xf8, 0xc5, 0xba, 0x5f, 0x5f, 0x76, 0x38, 0x3e, 0x7e, 0x18, 0x06, 0x4a, 0x3d, 0x2d, 0xff, 0x5f, 0xdf, 0x95, 0xe9, 0x0c, 0x5e, 0xb3, 0x0f, 0x4d, 0x8d, 0x45, 0x9e, 0xe1, 0xd5, 0x06, 0xa8, 0xcd, 0x29, 0xcd, 0xc6, 0x9b, 0x67, 0x54, 0x96, 0x3b, 0x84, 0xd6, 0x74, 0x94, 0xb3, 0x53, 0x05, 0xd1, 0x0d, 0x12, 0xb9, 0x48, 0x74, 0x17, 0xb2, 0xce, 0x28, 0xad, 0xcb, 0x10, 0xb6, 0x5c, 0xc9, 0x31, 0xfb, 0x33, 0x81, 0xae, 0x02, 0xe7, 0xaf, 0x79, 0xa0, 0x2b, 0xf9, 0x9e, 0x25, 0x8a, 0x56, 0x36, 0x10, 0x90, 0xe0, 0xb7, 0x12, 0x22, 0xb3, 0xac, 0x60, 0xbf, 0x2f, 0xb7, 0xba, 0x83, 0x2d, 0x03, 0x4f, 0x5b, 0x6b, 0xc6, 0xfa, 0x66, 0x3a, 0xe7, 0x41, 0xf7, 0x6d, 0x97, 0xc1, 0xac, 0x32, 0xbc, 0xb7, 0x41, 0x15, 0x07, 0xd5, 0x18, 0xd2, 0xf6, 0x05, 0x4b, 0x57, 0x83, 0x28, 0xc5, 0xf6, 0x7f, 0x75, 0x8a, 0xc0, 0x1b, 0xfe, 0x6f, 0x4d, 0x35, 0x90, 0x0f, 0x50, 0xa5, 0xdc, 0xd3, 0x0d, 0x2f, 0x92, 0x61, 0xb6, 0xbb, 0xec, 0x4c, 0x1d, 0x1f, 0xc1, 0x8d, 0x2a, 0x7e, 0x70, 0xc4, 0xd3, 0x6c, 0x21, 0xfa, 0xf8, 0xcf, 0x94, 0xa5, 0x87, 0xc3, 0xa0, 0xd1, 0xa9, 0xcd, 0xe7, 0x83, 0x1a, 0xe6, 0x26, 0x77, 0x54, 0x68, 0xdd, 0xcd, 0x40, 0xa8, 0xba, 0x18, 0xf4, 0x2b, 0x34, 0x18, 0x8d, 0xe5, 0x74, 0x1e, 0x1b, 0xe8, 0x30, 0x7b, 0x10, 0x84, 0x58, 0x65, 0x15, 0xec, 0x01, 0x5e, 0x4e, 0x37, 0x1d, 0x29, 0x44, 0x3a, 0x40, 0xb0, 0xc0, 0x69, 0xc6, 0x41, 0xd8, 0xce, 0xe5, 0xe4, 0x61, 0x18, 0x62, 0x98, 0x7c, 0x3e, 0x35, 0x6b, 0x12, 0x93, 0xb0, 0x51, 0x8b, 0x4a, 0x4c, 0x8e, 0xa9, 0x7f, 0xc5, 0xa4, 0xdb, 0x1f, 0x01, 0x29, 0xab, 0xee, 0x72, 0xfb, 0x80, 0x92, 0xea, 0x35, 0xc2, 0xda, 0xb6, 0x75, 0x73, 0x85, 0x02, 0x07, 0xb8, 0xe8, 0x27, 0x18, 0x99, 0x9a, 0xd9, 0x9c, 0x4c, 0x83, 0x9e, 0xac, 0x14, 0x63, 0x6b, 0xd5, 0xe4, 0xd8, 0x43, 0x6a, 0x27, 0x0d, 0xd9, 0x0b, 0x8e, 0x32, 0x13, 0x02, 0xe5, 0x2a, 0x92, 0xd8, 0x91, 0xff, 0x18, 0x91, 0x54, 0x2a, 0xe2, 0xca, 0xa0, 0xd6, 0x6e, 0x0f, 0x66, 0x1e, 0xae, 0x37, 0xb2, 0x5b, 0x08, 0xbb, 0x2e, 0x0e, 0xee, 0xc4, 0x83, 0x80, 0x09, 0x77, 0x8c, 0xd5, 0x25, 0x98, 0x43, 0x80, 0x98, 0x3b, 0x2b, 0xaa, 0xdd, 0x71, 0x02, 0xa1, 0xe3, 0x56, 0x73, 0x4e, 0x41, 0xd7, 0x61, 0x83, 0x82, 0x9e, 0xa9, 0xab, 0x82, 0x44, 0xc3, 0x36, 0x59, 0x7c, 0xa2, 0xd6, 0x79, 0x88, 0xf2, 0x81, 0x43, 0x84, 0x67, 0xe4, 0x53, 0xf5, 0x62, 0xc6, 0x7b, 0x22, 0xd0, 0xa4, 0xdd, 0x9f, 0xcb, 0x46, 0xa5, 0xf8, 0x0d, 0x29, 0x9d, 0xb5, 0xf0, 0x1f, 0x59, 0x16, 0x0a, 0x19, 0xd7, 0x4c, 0x64, 0x4f, 0xa5, 0xa9, 0x40, 0xe3, 0x2c, 0x9d, 0x8d, 0x98, 0x3b, 0xab, 0x7e, 0xfb, 0x0d, 0x7c, 0x7d, 0xa4, 0xe3, 0xfd, 0xa1, 0xcd, 0x0d, 0x18, 0xa4, 0x55, 0x8e, 0xb9, 0xfe, 0x46, 0x40, 0x8a, 0xab, 0x50, 0x85, 0x91, 0x2b, 0xf2, 0xf4, 0x6a, 0xb6, 0x3a, 0x93, 0x54, 0xf9, 0x02, 0x7c, 0x93, 0x69, 0x12, 0x23, 0xff, 0xaa, 0xb8, 0x46, 0x3b, 0xac, 0x4c, 0x4b, 0xc3, 0xb1, 0x1a, 0xbc, 0x46, 0xba, 0x68, 0x71, 0x7c, 0x91, 0x78, 0x0d, 0x3f, 0x30, 0x47, 0x0d, 0xbd, 0xd8, 0x8b, 0x37, 0x80, 0xa1, 0x94, 0xc8, 0xa4, 0x0a, 0x2c, 0x0a, 0x81, 0xa4, 0xd5, 0x6d, 0xec, 0x2d, 0x89, 0x62, 0xc3, 0x4d, 0x2a, 0xb7, 0x33, 0x69, 0x02, 0x8e, 0x1b, 0xfe, 0xaa, 0x6b, 0xb5, 0x82, 0x41, 0xff, 0x4f, 0x89, 0x8f, 0x80, 0xad, 0x3b, 0xb1, 0xc6, 0x91, 0xb8, 0x64, 0x7f, 0x2c, 0x69, 0x83, 0x95, 0x4c, 0x1c, 0x77, 0x95, 0x74, 0x58, 0xee, 0xbf, 0x1c, 0x50, 0x55, 0xc3, 0x16, 0x93, 0xab, 0xce, 0xd0, 0x53, 0x84, 0x73, 0x5a, 0x4f, 0x74, 0x19, 0x68, 0xbd, 0x6a, 0xc3, 0x15, 0x65, 0xcf, 0xee, 0x71, 0xc8, 0x84, 0xc1, 0xe2, 0x9e, 0x9e, 0x7a, 0xe0, 0xf7, 0xec, 0xd0, 0x4d, 0x46, 0x3b, 0x1d, 0xc3, 0x89, 0xc3, 0x60, 0x37, 0xe8, 0x14, 0x58, 0xdc, 0xec, 0x61, 0xd0, 0x76, 0x40, 0x32, 0xdd, 0x58, 0x9b, 0x92, 0xaf, 0xda, 0x2f, 0xc9, 0x02, 0x8f, 0x41, 0xab, 0x53, 0xcc, 0xa2, 0xd0, 0x4e, 0xc6, 0xa9, 0x56, 0x59, 0x55, 0xcb, 0xcf, 0x1a, 0x34, 0x63, 0x98, 0x9c, 0x71, 0x39, 0xbb, 0x90, 0x2a, 0x59, 0x21, 0xe8, 0xb2, 0xc9, 0x9c, 0x48, 0xe1, 0x37, 0x11, 0xf0, 0xbc, 0xc3, 0x99, 0x25, 0x95, 0x16, 0xc8, 0x1a, 0xe9, 0x42, 0xa6, 0x79, 0xd4, 0xba, 0x33, 0x97, 0x9e, 0xb1, 0x2f, 0xcd, 0x28, 0x60, 0x60, 0x2e, 0x47, 0x24, 0xb1, 0x33, 0x0f, 0x1c, 0xd2, 0x57, 0xb5, 0xb2, 0x89, 0x1d, 0xae, 0xe8, 0xef, 0x4c, 0x92, 0xfc, 0x3b, 0xfd, 0xb3, 0x4e, 0x53, 0x2d, 0x58, 0x70, 0xf3, 0x80, 0x59, 0x86, 0xac, 0x97, 0xb5, 0x03, 0xfd, 0x85, 0x87, 0x35, 0x48, 0xe3, 0x09, 0x50, 0x00, 0x0f, 0x8a, 0x70, 0xbe, 0x51, 0xfa, 0x75, 0x76, 0x03, 0x50, 0x1f, 0x2d, 0x30, 0xe8, 0x52, 0xef, 0xea, 0xc4, 0x82, 0x68, 0x62, 0xae, 0xd7, 0xf6, 0xd2, 0x0c, 0x9a, 0x8c, 0x8d, 0xbe, 0x36, 0x2d, 0xfe, 0xe4, 0x18, 0x93, 0xf2, 0x7e, 0x6f, 0xd5, 0xe9, 0x1d, 0x0e, 0x7e, 0x3d, 0x4f, 0xd8, 0x15, 0x5f, 0x44, 0xfd, 0x8e, 0xf1, 0x7a, 0xf1, 0x4a, 0x84, 0x8d, 0x44, 0xa8, 0x76, 0x31, 0xae, 0xee, 0x75, 0x14, 0x62, 0xb2, 0xa5, 0x40, 0x87, 0x06, 0x8d, 0xae, 0xab, 0x3e, 0xa3, 0x28, 0x9e, 0xce, 0x62, 0x12, 0xb3, 0xb5, 0x2c, 0xe7, 0xa8, 0x88, 0x6d, 0xf2, 0xa7, 0x27, 0xb7, 0x2a, 0x57, 0x0c, 0x2f, 0xb9, 0xc5, 0x03, 0x41, };
21665 static const u8 ed25519_942_test_vectors_expected_sig[] = {
21666 	0xc9, 0xc0, 0x99, 0xe2, 0x1d, 0x09, 0x5a, 0xfa, 0xdd, 0x4e, 0x71, 0xc9, 0xab, 0xf6, 0xb7, 0x08, 0x33, 0x24, 0x77, 0x62, 0x25, 0xb5, 0x87, 0xb6, 0x0a, 0x0e, 0x60, 0x92, 0xec, 0xb3, 0xd3, 0x3c, 0xff, 0x39, 0xc6, 0x7d, 0x34, 0x77, 0x6a, 0xe9, 0x9d, 0xda, 0x75, 0x4a, 0x3c, 0x2b, 0x3f, 0x78, 0x11, 0x35, 0xa3, 0x8c, 0x78, 0xed, 0x64, 0x55, 0xaa, 0xf0, 0xae, 0x0c, 0x31, 0x3b, 0x62, 0x05, };
21667 static const ec_test_case ed25519_942_test_case = {
21668 	.name = "EDDSA25519-SHA512/wei25519 942",
21669 	.ec_str_p = &wei25519_str_params,
21670 	.priv_key = ed25519_942_test_vectors_priv_key,
21671 	.priv_key_len = sizeof(ed25519_942_test_vectors_priv_key),
21672 	.nn_random = NULL,
21673 	.hash_type = SHA512,
21674 	.msg = (const char *)ed25519_942_test_vectors_message,
21675 	.msglen = sizeof(ed25519_942_test_vectors_message),
21676 	.sig_type = EDDSA25519,
21677 	.exp_sig = ed25519_942_test_vectors_expected_sig,
21678 	.exp_siglen = sizeof(ed25519_942_test_vectors_expected_sig),
21679 	.adata = NULL,
21680 	.adata_len = 0
21681 };
21682 
21683 /************************************************/
21684 static const u8 ed25519_943_test_vectors_priv_key[] = {
21685 	0xdb, 0x9a, 0xae, 0xe1, 0x98, 0xcd, 0x26, 0xa5, 0x2b, 0x11, 0x81, 0xfa, 0x3f, 0xd9, 0x2a, 0xbe, 0x42, 0x5e, 0x66, 0x6d, 0x89, 0x0b, 0xf9, 0x69, 0x46, 0x7d, 0xd2, 0xce, 0x28, 0x0e, 0xd4, 0xa7, };
21686 static const u8 ed25519_943_test_vectors_message[] = {
21687 	0x47, 0xfb, 0x62, 0x15, 0x61, 0xf8, 0xb7, 0xee, 0xce, 0xc6, 0x03, 0x3f, 0x2b, 0xcb, 0x6f, 0x43, 0xac, 0x68, 0xc9, 0x58, 0xdf, 0xd2, 0x65, 0x6f, 0x52, 0xa0, 0xc2, 0x9b, 0x4a, 0xcd, 0x44, 0xf4, 0x30, 0x4c, 0x6b, 0xf7, 0x7e, 0xea, 0xa0, 0xc5, 0xf6, 0xd3, 0xb2, 0x2d, 0xb1, 0x96, 0x99, 0xc3, 0xdc, 0xde, 0xde, 0x69, 0x8a, 0xbd, 0xe6, 0x23, 0xec, 0x4b, 0x2b, 0x90, 0x91, 0x0c, 0x80, 0xac, 0x3a, 0xf3, 0x9c, 0x55, 0x0b, 0x6d, 0xd4, 0x09, 0xe6, 0x3d, 0x77, 0x70, 0x66, 0x55, 0xa9, 0x19, 0x9c, 0xb5, 0xc0, 0x25, 0x8f, 0x5b, 0xa3, 0x82, 0x85, 0xff, 0xdc, 0x64, 0xb8, 0xa8, 0xf3, 0x73, 0xd1, 0xfb, 0x29, 0xba, 0x87, 0xf8, 0x4d, 0xdf, 0x5f, 0x34, 0xd8, 0xf1, 0x40, 0xbb, 0xc1, 0x7b, 0x39, 0x61, 0x68, 0x2d, 0xf5, 0xd0, 0xa8, 0xf9, 0x10, 0x2e, 0x37, 0x9a, 0x99, 0x98, 0x13, 0x9d, 0xfe, 0x40, 0xab, 0x8c, 0xe7, 0x53, 0xbf, 0x56, 0x26, 0x10, 0x82, 0x37, 0x77, 0x1a, 0x7d, 0x8e, 0x10, 0x9e, 0x9e, 0x0a, 0xfe, 0x9b, 0x66, 0xd0, 0x42, 0x09, 0x42, 0xe1, 0x63, 0xa4, 0xf3, 0xc0, 0x3f, 0x71, 0x81, 0x3e, 0xe0, 0x78, 0xbd, 0x09, 0x0a, 0xc3, 0xd0, 0x77, 0x2e, 0x26, 0x22, 0xc2, 0x59, 0xe6, 0x82, 0x55, 0x2c, 0x75, 0xb0, 0x8d, 0xd0, 0x55, 0xa4, 0xa5, 0xeb, 0x5e, 0x60, 0x94, 0x40, 0xbc, 0xd3, 0xf3, 0xa6, 0xfe, 0xb8, 0x76, 0xfd, 0x16, 0x92, 0x15, 0x20, 0xc6, 0xcb, 0x68, 0x84, 0x71, 0x0d, 0x2e, 0x15, 0xcd, 0xad, 0x6d, 0xaa, 0xee, 0xd9, 0x59, 0x62, 0xdd, 0xa2, 0x1c, 0x67, 0x88, 0xf7, 0x84, 0x91, 0x79, 0x17, 0x98, 0x2e, 0x1c, 0xcb, 0xb5, 0xfd, 0xd9, 0xbd, 0xc1, 0x76, 0x9d, 0xb6, 0xb6, 0xdb, 0x57, 0xca, 0x35, 0x4e, 0x01, 0xa1, 0x33, 0x9d, 0x8e, 0x77, 0xe9, 0xdb, 0xbb, 0x58, 0x12, 0xfb, 0xab, 0x6a, 0x14, 0xc5, 0x40, 0x85, 0xc0, 0x65, 0x95, 0x99, 0xf1, 0x50, 0xe2, 0x24, 0x72, 0x47, 0x0f, 0x1e, 0x5e, 0x67, 0x2c, 0x42, 0x5f, 0x37, 0x5f, 0x9e, 0x0d, 0x6e, 0x8d, 0x52, 0xfa, 0x17, 0xb7, 0xa8, 0xd7, 0xa4, 0xd7, 0xca, 0x3e, 0x12, 0xf4, 0xdb, 0x53, 0x83, 0x6a, 0xed, 0x2b, 0xeb, 0xd7, 0x45, 0x89, 0xba, 0xca, 0x8c, 0xe9, 0x10, 0x02, 0x91, 0xbf, 0xb7, 0xe4, 0x56, 0xdb, 0x7f, 0x2f, 0x0a, 0x84, 0xdc, 0x0a, 0x74, 0x88, 0x85, 0x13, 0x66, 0xa9, 0xa5, 0xfe, 0xa0, 0xe3, 0xef, 0xc7, 0x4b, 0x9c, 0xdd, 0x4b, 0xd9, 0x7b, 0x65, 0xab, 0xf3, 0x61, 0x39, 0x3c, 0xe1, 0x70, 0x3d, 0x85, 0x71, 0x80, 0x5e, 0xe6, 0x8a, 0x13, 0xd3, 0x65, 0x4f, 0x03, 0xdc, 0xec, 0xfb, 0x77, 0xa5, 0x34, 0x30, 0xd0, 0x94, 0x96, 0xad, 0x73, 0xec, 0x01, 0x75, 0x99, 0x57, 0xe5, 0x10, 0x46, 0xaa, 0x73, 0x96, 0xf5, 0x92, 0x33, 0x86, 0x50, 0x11, 0x7a, 0xc7, 0xb4, 0xdd, 0x35, 0x73, 0xeb, 0x53, 0xd9, 0xc9, 0xf9, 0xdf, 0xa6, 0x2e, 0x23, 0x69, 0xc7, 0x7a, 0xf9, 0xc0, 0xd4, 0x2f, 0x61, 0xba, 0xe7, 0x4b, 0x28, 0x7d, 0xdf, 0xa2, 0x7b, 0x7f, 0x1c, 0x1b, 0xe9, 0x88, 0x3a, 0x04, 0x46, 0x91, 0xd5, 0x6d, 0xc1, 0x37, 0x34, 0xad, 0x4e, 0xe3, 0xa3, 0x2a, 0x9f, 0x40, 0xe3, 0x28, 0xc5, 0x00, 0xd0, 0xfe, 0xd8, 0xea, 0x05, 0x10, 0xe9, 0x38, 0xf2, 0x75, 0x80, 0x04, 0x02, 0x2b, 0xca, 0xa6, 0x90, 0x2b, 0xda, 0x10, 0x14, 0xb8, 0xae, 0x33, 0x65, 0x27, 0x28, 0x29, 0xed, 0x94, 0xfa, 0xba, 0x63, 0xcb, 0x14, 0xa3, 0x6c, 0xf8, 0x13, 0x90, 0xec, 0xa8, 0x3f, 0xc1, 0xc6, 0x27, 0x17, 0x20, 0x13, 0x26, 0x1b, 0x39, 0x93, 0x77, 0x9a, 0xa0, 0x76, 0xa5, 0xc5, 0xd8, 0x1d, 0x90, 0xd2, 0x70, 0x62, 0xe1, 0xa6, 0xd9, 0x0b, 0x5c, 0xf1, 0x00, 0x5c, 0x70, 0x19, 0x17, 0xb7, 0xad, 0xac, 0x18, 0x0c, 0xb7, 0x5b, 0xbc, 0xe0, 0xf2, 0x7f, 0x2f, 0x18, 0x0e, 0x2c, 0xb9, 0x01, 0x40, 0xc1, 0x4c, 0xc6, 0x00, 0x9d, 0x2d, 0x41, 0xaa, 0xb1, 0xdb, 0x94, 0x18, 0xf9, 0x1d, 0x4c, 0xf3, 0x94, 0x00, 0x2c, 0xd7, 0x0a, 0xc9, 0xdc, 0x11, 0xce, 0x86, 0x53, 0x47, 0xfa, 0x3f, 0x56, 0xf8, 0x7c, 0x14, 0x9e, 0x2b, 0x17, 0xd2, 0xc7, 0x2b, 0x66, 0x3a, 0x58, 0xe3, 0x18, 0x7b, 0xb1, 0x9b, 0x9b, 0xac, 0x2d, 0x11, 0x48, 0x3b, 0xa1, 0x2f, 0x77, 0x0a, 0xc0, 0x4d, 0xc4, 0x6d, 0x38, 0x85, 0x18, 0xfa, 0x54, 0xdc, 0x15, 0x2e, 0x9a, 0x9d, 0xfb, 0xff, 0x14, 0xf1, 0x4c, 0x61, 0xcb, 0x37, 0x58, 0x97, 0xe3, 0x0c, 0x53, 0xe6, 0xde, 0x42, 0xd5, 0xe1, 0x40, 0x1d, 0xae, 0x1b, 0x22, 0xba, 0xaa, 0x0e, 0x8a, 0x41, 0xc6, 0xaf, 0x9d, 0x0e, 0x0b, 0x13, 0xa9, 0x1a, 0x23, 0xd9, 0xb7, 0xd5, 0x55, 0x20, 0x47, 0x02, 0x9a, 0x35, 0x21, 0x94, 0x6c, 0x71, 0x20, 0xd3, 0xd2, 0x58, 0xb3, 0xae, 0xfc, 0xf7, 0x54, 0xd1, 0x95, 0x94, 0x87, 0xa1, 0xfe, 0x77, 0x43, 0xac, 0x7e, 0x1c, 0xc8, 0x9e, 0x36, 0x8b, 0x19, 0x78, 0x09, 0xc3, 0xa2, 0x73, 0x17, 0xe0, 0xec, 0x48, 0xd5, 0x46, 0xdb, 0x1e, 0x21, 0xeb, 0x62, 0x9a, 0x29, 0xbc, 0x62, 0x47, 0xcd, 0xd4, 0xa1, 0x37, 0x14, 0x37, 0x56, 0x3e, 0xdd, 0x12, 0xfa, 0xea, 0x2c, 0x5c, 0xb7, 0x7e, 0xed, 0xed, 0xbf, 0xc5, 0x80, 0x08, 0xfa, 0xd1, 0xf6, 0x5a, 0xf3, 0x58, 0x43, 0xfa, 0x27, 0x4c, 0x73, 0x4e, 0x3f, 0xbb, 0xaa, 0x9c, 0xc5, 0x0d, 0x68, 0x37, 0x48, 0xb7, 0x5a, 0x48, 0x5f, 0x94, 0xd6, 0x30, 0xb0, 0x32, 0xa5, 0xf1, 0x06, 0x7d, 0x1d, 0xeb, 0x30, 0xe9, 0xd2, 0x21, 0x8c, 0x93, 0x5c, 0x98, 0x1d, 0x01, 0xc0, 0xc5, 0x47, 0xfd, 0x68, 0x41, 0x31, 0x36, 0xed, 0xf4, 0xc0, 0xc7, 0x70, 0x28, 0x6e, 0x82, 0x34, 0x42, 0xe1, 0xc5, 0x13, 0x65, 0x19, 0x29, 0x21, 0x3c, 0x12, 0x1c, 0x1d, 0xe7, 0x00, 0x98, 0x91, 0x41, 0xab, 0x4a, 0xf3, 0xb3, 0xfe, 0x74, 0x04, 0xb4, 0xd2, 0xa3, 0x8c, 0x53, 0x0b, 0xaf, 0xb4, 0x98, 0xe6, 0x49, 0x53, 0xce, 0x1c, 0x0f, 0xb7, 0xd3, 0x40, 0xe2, 0x11, 0x35, 0xbf, 0x8a, 0xfd, 0xd8, 0xdd, 0x65, 0xb1, 0xb1, 0x8c, 0xf1, 0xc8, 0xfb, 0x9f, 0x40, 0x2b, 0x26, 0x70, 0x40, 0x0b, 0x86, 0xdd, 0xaf, 0xb1, 0x84, 0xcc, 0x51, 0xd5, 0xfd, 0xa2, 0x73, 0xb8, 0x0c, 0x26, 0x52, 0x1f, 0x91, 0x2f, 0x35, 0x83, 0xb4, 0xae, 0x30, 0x1d, 0xae, 0x15, 0x1c, 0xb5, 0x5c, 0x75, 0x70, 0x3a, 0xad, 0xef, 0x03, 0x24, 0x15, 0x22, 0x7d, 0x53, 0xe3, 0x95, 0xdb, 0x6c, 0x15, 0x0a, 0x1e, 0xe8, 0x39, 0xad, 0x26, 0xba, 0xe5, 0x52, 0xe1, 0xab, 0x73, 0x62, 0x14, 0xdc, 0x04, 0xb0, 0xf3, 0xc4, 0x1b, 0x7c, 0xfb, 0xd0, 0x49, 0x68, 0x1b, 0xc8, 0x4c, 0x3d, 0x16, 0x53, 0x07, 0x68, };
21688 static const u8 ed25519_943_test_vectors_expected_sig[] = {
21689 	0xb2, 0xe3, 0xd9, 0xc5, 0xd0, 0xff, 0x32, 0x99, 0x96, 0xbc, 0x89, 0xd2, 0x6f, 0xb3, 0xac, 0x12, 0x6b, 0xde, 0xd3, 0x13, 0xcb, 0xf8, 0xdf, 0x86, 0x71, 0x86, 0x38, 0xc1, 0x99, 0xe0, 0x57, 0x27, 0x3d, 0x09, 0xeb, 0x16, 0x3c, 0x6c, 0x18, 0x1f, 0xd8, 0xbc, 0xe5, 0x1f, 0x72, 0xd4, 0xd9, 0xd2, 0xe8, 0x4a, 0xbb, 0xe0, 0x83, 0x30, 0x77, 0x3b, 0x9f, 0xcc, 0x21, 0x66, 0xf1, 0x40, 0xd6, 0x0e, };
21690 static const ec_test_case ed25519_943_test_case = {
21691 	.name = "EDDSA25519-SHA512/wei25519 943",
21692 	.ec_str_p = &wei25519_str_params,
21693 	.priv_key = ed25519_943_test_vectors_priv_key,
21694 	.priv_key_len = sizeof(ed25519_943_test_vectors_priv_key),
21695 	.nn_random = NULL,
21696 	.hash_type = SHA512,
21697 	.msg = (const char *)ed25519_943_test_vectors_message,
21698 	.msglen = sizeof(ed25519_943_test_vectors_message),
21699 	.sig_type = EDDSA25519,
21700 	.exp_sig = ed25519_943_test_vectors_expected_sig,
21701 	.exp_siglen = sizeof(ed25519_943_test_vectors_expected_sig),
21702 	.adata = NULL,
21703 	.adata_len = 0
21704 };
21705 
21706 /************************************************/
21707 static const u8 ed25519_944_test_vectors_priv_key[] = {
21708 	0xa8, 0x04, 0xc3, 0x3b, 0x4d, 0x38, 0xcb, 0x3c, 0xe3, 0x1c, 0xf3, 0xba, 0xc1, 0x04, 0x9e, 0x0d, 0x4e, 0xc6, 0x3a, 0x1a, 0x0b, 0x7b, 0x59, 0xfd, 0x8a, 0x36, 0xee, 0x37, 0x54, 0x16, 0x56, 0xaa, };
21709 static const u8 ed25519_944_test_vectors_message[] = {
21710 	0xdb, 0xfe, 0x30, 0x7f, 0x2a, 0xae, 0x9e, 0x07, 0xec, 0x7c, 0x4b, 0x68, 0x21, 0x06, 0xd2, 0xc9, 0x36, 0x7b, 0x0c, 0x4a, 0xaa, 0x58, 0xae, 0x80, 0x4e, 0x0a, 0x39, 0x04, 0x75, 0x4e, 0x6c, 0xf8, 0xfe, 0xe7, 0x3c, 0xf9, 0xe2, 0xd4, 0x5d, 0x02, 0x89, 0xe5, 0x07, 0x82, 0x93, 0xdf, 0xc4, 0x69, 0xd4, 0x6e, 0xa6, 0x70, 0x26, 0xc5, 0xaa, 0x69, 0x2d, 0x2f, 0x2c, 0x9f, 0xb4, 0xec, 0x57, 0xcd, 0xab, 0x4c, 0x04, 0x3f, 0xf9, 0xae, 0x61, 0x85, 0xf2, 0x7a, 0x70, 0x44, 0x54, 0xe5, 0xf5, 0x39, 0x50, 0xaa, 0xbd, 0x25, 0xc9, 0x91, 0x04, 0x74, 0xd4, 0x5a, 0xf8, 0x83, 0x68, 0x62, 0x72, 0x3e, 0x0e, 0x6a, 0x27, 0x82, 0x3d, 0x82, 0xbc, 0xbb, 0x68, 0xa9, 0x60, 0x52, 0x42, 0x2a, 0x18, 0x19, 0x51, 0x2e, 0x3b, 0x43, 0x40, 0x8c, 0xf4, 0x89, 0x57, 0xad, 0x6a, 0xe2, 0x35, 0xb7, 0x23, 0x3d, 0xf1, 0x82, 0x84, 0x74, 0x91, 0x53, 0xdf, 0xa5, 0x7d, 0xe3, 0x50, 0x74, 0xa3, 0x0e, 0xdf, 0xab, 0x8a, 0x56, 0xdf, 0x28, 0xab, 0x2e, 0x29, 0x40, 0x30, 0x6c, 0x22, 0x1a, 0xa5, 0x54, 0x90, 0xcc, 0x66, 0x4e, 0x14, 0x68, 0x3f, 0x30, 0xee, 0x61, 0x5e, 0x2d, 0x93, 0xfd, 0xf9, 0x71, 0xf5, 0x96, 0x66, 0x34, 0x65, 0x84, 0x3b, 0x3a, 0xdd, 0x63, 0x92, 0xba, 0x33, 0x90, 0x31, 0x1e, 0xf8, 0xdc, 0x59, 0xf2, 0x51, 0x44, 0x5d, 0x66, 0x9e, 0x10, 0xa0, 0x06, 0x19, 0x91, 0xe1, 0x13, 0x56, 0x19, 0x23, 0xaa, 0x21, 0x52, 0x44, 0x46, 0x3d, 0x82, 0x64, 0x19, 0x9a, 0xc5, 0x88, 0x92, 0x4e, 0x23, 0x1e, 0x84, 0x19, 0xd8, 0x68, 0x5f, 0x33, 0x8e, 0x59, 0x9b, 0x5f, 0x40, 0xbf, 0x9b, 0xd1, 0xae, 0xce, 0x77, 0x25, 0x35, 0xbb, 0xbc, 0xb8, 0xf6, 0x88, 0x1c, 0x2e, 0x80, 0x04, 0x91, 0xab, 0x3b, 0x57, 0xb4, 0x4b, 0x8a, 0xe4, 0x3a, 0xeb, 0x5c, 0x4a, 0xe5, 0xe7, 0xed, 0xeb, 0x22, 0x8f, 0xed, 0xc9, 0xf6, 0xb9, 0xca, 0xde, 0xa1, 0x76, 0xe1, 0x34, 0x93, 0x6d, 0xed, 0x60, 0xaf, 0x1c, 0x22, 0x87, 0x34, 0xfb, 0x00, 0x57, 0x0f, 0x23, 0x74, 0xbb, 0xbf, 0xa1, 0xbb, 0x17, 0x07, 0x85, 0x80, 0x5d, 0x6b, 0x6c, 0x70, 0x1e, 0x82, 0x09, 0x52, 0xea, 0xe4, 0x5b, 0x8c, 0x23, 0x66, 0x11, 0x3a, 0x1d, 0xfb, 0x2e, 0x35, 0x85, 0x2a, 0xf4, 0x19, 0xb7, 0x54, 0xf9, 0xcf, 0x7a, 0x08, 0x1c, 0x3d, 0xde, 0x6c, 0x80, 0x53, 0xbf, 0x1c, 0xe0, 0xc8, 0x53, 0x39, 0xd5, 0x69, 0x9c, 0x42, 0x24, 0x76, 0xfc, 0x21, 0xf2, 0x6c, 0xe7, 0x5d, 0x2a, 0x7f, 0xed, 0x09, 0xfc, 0x0f, 0x41, 0x75, 0x78, 0x98, 0x47, 0xd8, 0x76, 0xc5, 0x1a, 0xa4, 0xe0, 0xbf, 0x7c, 0xe8, 0x42, 0xb8, 0x30, 0x8d, 0xc7, 0xa2, 0x8c, 0x82, 0x39, 0x52, 0x07, 0x14, 0xdc, 0x23, 0x31, 0x36, 0xe0, 0x9f, 0x55, 0x7c, 0x7e, 0xf3, 0xe0, 0xf8, 0x3b, 0xad, 0x63, 0xcb, 0x28, 0xac, 0x61, 0x6d, 0x39, 0x28, 0xf3, 0x83, 0x7d, 0xce, 0x1d, 0xd5, 0x8a, 0xcb, 0x8d, 0xdb, 0xc7, 0x2e, 0x82, 0x2d, 0xee, 0xe4, 0x5f, 0x00, 0x77, 0x6a, 0xcc, 0x88, 0xe0, 0x0c, 0xd3, 0xa9, 0xdb, 0x48, 0x6d, 0x92, 0xd5, 0x35, 0xa5, 0x7a, 0x0f, 0xdc, 0x4f, 0x90, 0x3b, 0x62, 0xe5, 0x17, 0x22, 0x1c, 0x30, 0x8c, 0xba, 0x2e, 0x30, 0xff, 0xe7, 0xb9, 0x19, 0x37, 0xa9, 0x94, 0x17, 0x72, 0x1f, 0x56, 0xfe, 0x6d, 0xf4, 0x48, 0x40, 0xe9, 0xe4, 0x11, 0x36, 0x92, 0x9c, 0x0c, 0xa3, 0xdc, 0x28, 0xdd, 0xf2, 0x37, 0x9e, 0x4d, 0xcf, 0xde, 0x83, 0x72, 0x3e, 0x2d, 0x4c, 0x9e, 0x23, 0x29, 0x9c, 0x05, 0x6a, 0xfb, 0x31, 0xd3, 0xe7, 0x0d, 0x08, 0x5d, 0x0a, 0x31, 0x2c, 0x5c, 0xd5, 0x70, 0xb6, 0x99, 0xde, 0xa8, 0x71, 0x74, 0x58, 0x53, 0x13, 0x48, 0xc9, 0x6f, 0x6e, 0xb5, 0x2d, 0x7e, 0xe6, 0x1d, 0x56, 0x60, 0xf6, 0x5e, 0x90, 0x9a, 0x14, 0xce, 0x10, 0x33, 0xdc, 0x85, 0x3f, 0x2f, 0x25, 0xd0, 0x9c, 0xf4, 0xe4, 0x0d, 0x07, 0xef, 0xf7, 0x2e, 0x15, 0xa3, 0x90, 0x56, 0x4a, 0x2b, 0xe3, 0xc0, 0x42, 0xd8, 0x9a, 0x68, 0x66, 0x0a, 0x97, 0xff, 0xac, 0xec, 0x49, 0x67, 0xa4, 0xb6, 0x18, 0x71, 0x2d, 0x70, 0x60, 0x75, 0x65, 0x20, 0xc2, 0x9e, 0xe8, 0xd9, 0x22, 0x0a, 0xd8, 0x61, 0x5c, 0x4f, 0xcf, 0x39, 0x69, 0xbd, 0x3b, 0x2e, 0x09, 0x47, 0xe1, 0xf0, 0xbe, 0x7e, 0x2d, 0x80, 0xe0, 0xa6, 0x14, 0x80, 0xc3, 0x16, 0x6d, 0xb5, 0x58, 0x22, 0x18, 0xbb, 0x0a, 0x8b, 0xe9, 0x84, 0x8e, 0xfd, 0x41, 0xb6, 0xce, 0x0c, 0xd7, 0x95, 0xc4, 0x86, 0xab, 0xb6, 0x72, 0x10, 0xbe, 0xb6, 0x0c, 0xd0, 0x78, 0xb4, 0x6a, 0xeb, 0x7f, 0x4f, 0x48, 0x50, 0x31, 0x90, 0x2b, 0xcd, 0x71, 0x31, 0xe0, 0x0b, 0x70, 0x35, 0xaa, 0x2d, 0x43, 0xfe, 0xe0, 0x63, 0xf7, 0xf3, 0x0b, 0xd5, 0x70, 0xda, 0x1d, 0xbb, 0x65, 0xc0, 0xca, 0x92, 0xa4, 0x81, 0x26, 0x32, 0xe4, 0x32, 0x77, 0x85, 0x53, 0xe3, 0x5e, 0x85, 0x6c, 0xaa, 0x82, 0x18, 0x22, 0x1f, 0xd6, 0x31, 0x6a, 0xb0, 0x86, 0x91, 0x73, 0xb3, 0x84, 0x09, 0xbc, 0xef, 0xe6, 0xd2, 0xdb, 0x92, 0x10, 0xf9, 0x02, 0x41, 0x73, 0xb6, 0x6d, 0xbb, 0x92, 0x67, 0x7c, 0xbc, 0x71, 0xc8, 0xa1, 0xcd, 0x58, 0x3f, 0xa6, 0xf3, 0x54, 0xd3, 0xc9, 0x3f, 0xa8, 0xb1, 0x6c, 0x71, 0x37, 0x4f, 0x25, 0xa0, 0x0c, 0x33, 0x2f, 0x85, 0xa8, 0xbe, 0xfd, 0x54, 0x03, 0x88, 0xfb, 0x50, 0xdb, 0x9f, 0x5d, 0x96, 0xe4, 0xe4, 0xe6, 0x98, 0x83, 0x3c, 0xe3, 0xd6, 0x3c, 0x10, 0xb8, 0xee, 0xc7, 0x0a, 0x24, 0x3b, 0x90, 0x15, 0xdb, 0x45, 0x94, 0x31, 0xb6, 0x2f, 0x56, 0x68, 0xbb, 0xa6, 0x0f, 0x07, 0x04, 0xf6, 0xbd, 0xfe, 0x95, 0x46, 0xea, 0x47, 0x5c, 0xef, 0x2e, 0xbc, 0xcb, 0xa4, 0xb7, 0x68, 0x08, 0x48, 0xe8, 0x2b, 0xef, 0xf5, 0x85, 0x4e, 0x49, 0xf6, 0x5b, 0xb7, 0x73, 0xa4, 0x92, 0x2e, 0x90, 0xf9, 0xb8, 0xaf, 0xc7, 0xcf, 0x81, 0x87, 0x30, 0x58, 0x8e, 0xd5, 0xaa, 0x7b, 0x39, 0x98, 0x26, 0xaa, 0xdd, 0x54, 0x37, 0x2f, 0xcb, 0x76, 0x14, 0x58, 0xb6, 0x4d, 0xe6, 0x68, 0x57, 0xf4, 0xad, 0xac, 0xd4, 0xc3, 0x29, 0x00, 0xcb, 0x77, 0x13, 0x6a, 0x53, 0x5d, 0x7b, 0xbb, 0xb5, 0x54, 0x59, 0x7a, 0xec, 0xf3, 0x9f, 0xf6, 0x98, 0xb4, 0x5e, 0x6a, 0x21, 0x8d, 0xf1, 0xd2, 0xab, 0xe6, 0x15, 0xeb, 0x8d, 0x9e, 0x18, 0x24, 0xc0, 0xbe, 0xcc, 0xe9, 0x07, 0x67, 0x89, 0x9e, 0xbf, 0xd2, 0xc7, 0x30, 0x14, 0x4b, 0x32, 0xc7, 0x46, 0x04, 0xc0, 0xe5, 0x3e, 0x25, 0x05, 0xbb, 0x15, 0xd2, 0x80, 0x07, 0xa8, 0x7b, 0x99, 0x31, 0xd6, 0xee, 0xc0, 0xa6, 0xcb, 0x5b, 0x0f, 0x96, 0xd3, 0x19, 0x4b, 0x24, 0x23, };
21711 static const u8 ed25519_944_test_vectors_expected_sig[] = {
21712 	0xb1, 0xb4, 0x4a, 0x14, 0x2a, 0x7c, 0x4c, 0x3d, 0x0b, 0xf4, 0x66, 0x1e, 0xda, 0xc5, 0xb7, 0x67, 0x00, 0x57, 0x26, 0xc1, 0x4a, 0x27, 0x69, 0xb7, 0xc2, 0x14, 0xfb, 0x58, 0x73, 0x7e, 0xc2, 0xe4, 0xbc, 0x51, 0xc3, 0xa1, 0x95, 0xd2, 0xba, 0x1b, 0x74, 0xa5, 0x4e, 0xff, 0x4c, 0x33, 0xa9, 0x0f, 0x41, 0xcc, 0xde, 0xfa, 0x9e, 0x93, 0x65, 0xfd, 0xe8, 0xdd, 0x85, 0x9f, 0xd3, 0x97, 0x8c, 0x0a, };
21713 static const ec_test_case ed25519_944_test_case = {
21714 	.name = "EDDSA25519-SHA512/wei25519 944",
21715 	.ec_str_p = &wei25519_str_params,
21716 	.priv_key = ed25519_944_test_vectors_priv_key,
21717 	.priv_key_len = sizeof(ed25519_944_test_vectors_priv_key),
21718 	.nn_random = NULL,
21719 	.hash_type = SHA512,
21720 	.msg = (const char *)ed25519_944_test_vectors_message,
21721 	.msglen = sizeof(ed25519_944_test_vectors_message),
21722 	.sig_type = EDDSA25519,
21723 	.exp_sig = ed25519_944_test_vectors_expected_sig,
21724 	.exp_siglen = sizeof(ed25519_944_test_vectors_expected_sig),
21725 	.adata = NULL,
21726 	.adata_len = 0
21727 };
21728 
21729 /************************************************/
21730 static const u8 ed25519_945_test_vectors_priv_key[] = {
21731 	0xf8, 0x20, 0xe6, 0xf2, 0x4a, 0x84, 0x18, 0xb6, 0xac, 0xda, 0x16, 0x5f, 0x29, 0xa3, 0x60, 0xf7, 0x67, 0xcd, 0xed, 0xde, 0x8f, 0x64, 0xd7, 0x68, 0xb9, 0x5f, 0xc2, 0xa5, 0xf3, 0xf4, 0x04, 0xe7, };
21732 static const u8 ed25519_945_test_vectors_message[] = {
21733 	0xab, 0x6b, 0xd4, 0x5b, 0xb0, 0x6d, 0xfb, 0x90, 0x69, 0x11, 0x8f, 0xf9, 0x98, 0xf3, 0xbd, 0x39, 0x3e, 0xa8, 0xe9, 0x44, 0x97, 0x9e, 0x89, 0xe0, 0x49, 0xf2, 0x50, 0x5c, 0xd8, 0x93, 0x1b, 0x93, 0x08, 0x6b, 0x7e, 0x9d, 0x8e, 0xe7, 0x64, 0xe9, 0xb4, 0x47, 0xea, 0x4e, 0xa1, 0x21, 0x38, 0xbb, 0x45, 0x27, 0x5a, 0x21, 0xa1, 0x98, 0x43, 0xf7, 0x5d, 0xc5, 0x42, 0x1d, 0x61, 0xff, 0xd8, 0x61, 0x83, 0x8e, 0x58, 0x33, 0x82, 0x5d, 0x67, 0x16, 0x2f, 0x32, 0x59, 0xc2, 0x64, 0x47, 0xbe, 0x51, 0xdc, 0x18, 0x02, 0xef, 0x5a, 0x04, 0xba, 0x73, 0xb7, 0x83, 0x93, 0x57, 0x06, 0xab, 0xb4, 0x2c, 0x51, 0x3b, 0x65, 0xf2, 0xbb, 0xc4, 0x4f, 0x83, 0xda, 0x10, 0x61, 0x24, 0x2f, 0x2d, 0x5e, 0x51, 0x98, 0xf3, 0x8c, 0x10, 0x71, 0x7a, 0x86, 0xa3, 0xa1, 0x97, 0xe7, 0xcd, 0x90, 0x34, 0xf6, 0x36, 0x11, 0x44, 0x99, 0x03, 0x72, 0x77, 0xac, 0xb4, 0x72, 0x2c, 0x06, 0xa9, 0x1c, 0xb2, 0xf6, 0x5e, 0x21, 0xeb, 0x8d, 0x22, 0xd3, 0x6a, 0xd7, 0x3b, 0x42, 0x65, 0xf7, 0xa7, 0x94, 0x7e, 0x00, 0xe7, 0x22, 0xbd, 0xa6, 0x70, 0x43, 0xcd, 0x12, 0x81, 0xbc, 0xd8, 0x7e, 0x76, 0x3f, 0xc9, 0x7b, 0x54, 0xc8, 0xf8, 0x68, 0x36, 0xcd, 0xbf, 0x08, 0xc9, 0xa1, 0xf7, 0x00, 0xf4, 0xea, 0xed, 0x9e, 0xa5, 0x9a, 0x6f, 0xc1, 0xbc, 0x0d, 0xf8, 0xc9, 0xec, 0x1f, 0xc2, 0x97, 0x7c, 0xad, 0x60, 0xf9, 0x78, 0xab, 0xc0, 0xc8, 0x38, 0x1a, 0xa9, 0xfb, 0x06, 0x0e, 0x3f, 0x99, 0x37, 0x8a, 0x51, 0xb2, 0xd9, 0xaf, 0xbe, 0xf3, 0x58, 0xd5, 0x51, 0x62, 0xa3, 0x89, 0x22, 0xeb, 0xb8, 0x7d, 0x2a, 0x3e, 0x0f, 0x0f, 0x40, 0x00, 0xb1, 0xc3, 0x9b, 0x15, 0x02, 0xe9, 0x59, 0x45, 0xe8, 0xac, 0x9f, 0x4a, 0x3e, 0xa7, 0xc9, 0xdd, 0xb5, 0x81, 0xa5, 0xec, 0x06, 0xc0, 0x0b, 0xa8, 0x7a, 0x73, 0x70, 0x84, 0xb3, 0x84, 0xfa, 0xba, 0x09, 0xc8, 0x48, 0x71, 0xdd, 0xd6, 0x7d, 0xc1, 0xbe, 0xbb, 0x2f, 0x7f, 0xbd, 0x94, 0xa5, 0x59, 0x7d, 0x01, 0x9f, 0xe6, 0x29, 0xe5, 0xbf, 0x12, 0xbe, 0xa2, 0xe3, 0x3c, 0xa8, 0x4c, 0x68, 0x0d, 0xc5, 0xa3, 0x98, 0x9b, 0xbf, 0x3a, 0xf9, 0xee, 0xec, 0xe8, 0xab, 0x8f, 0xc8, 0x61, 0xe3, 0xb8, 0xbf, 0xc1, 0xe6, 0x7e, 0x2a, 0xee, 0x32, 0x6b, 0x37, 0xfb, 0x9b, 0x51, 0xcf, 0xa0, 0xb5, 0xf5, 0xfc, 0x16, 0x00, 0x69, 0xb4, 0x50, 0xb7, 0x04, 0xe0, 0xfa, 0xb7, 0xfb, 0x6c, 0x5a, 0xb3, 0xc4, 0x0b, 0x8f, 0x0b, 0x3d, 0x09, 0x30, 0xb9, 0x11, 0x2d, 0x64, 0xb9, 0xda, 0xca, 0xb4, 0xdd, 0x87, 0x5f, 0x29, 0xd8, 0xc5, 0x8c, 0x5d, 0x20, 0x53, 0xad, 0x91, 0x48, 0xff, 0xde, 0x22, 0xd9, 0x0b, 0xc0, 0xd5, 0x0f, 0x5d, 0xec, 0xa6, 0x8d, 0x3e, 0xa2, 0x5c, 0x5b, 0x4c, 0x76, 0x88, 0x87, 0x1c, 0x0c, 0x77, 0xdb, 0xce, 0xea, 0xcb, 0xd0, 0xa4, 0x22, 0x9f, 0x49, 0x70, 0xec, 0x87, 0xb3, 0x44, 0x99, 0xe2, 0x78, 0x30, 0x3c, 0x06, 0x69, 0x4c, 0x30, 0xac, 0x68, 0x52, 0x4d, 0x11, 0xb1, 0x72, 0x79, 0x4b, 0x48, 0x12, 0x73, 0xa5, 0xda, 0xc4, 0x61, 0x22, 0xd2, 0x47, 0x20, 0x95, 0xa5, 0x63, 0xa4, 0x35, 0xd1, 0x85, 0xd5, 0xe9, 0x1d, 0xa7, 0x26, 0xe7, 0x45, 0x92, 0x99, 0x9c, 0xda, 0xc6, 0x88, 0xa3, 0x3f, 0x38, 0xf7, 0xc0, 0x35, 0x58, 0x8f, 0x62, 0x5d, 0xc6, 0xac, 0x73, 0xd0, 0x04, 0x7a, 0xb3, 0xd6, 0xd1, 0x2f, 0x1a, 0xe3, 0x3d, 0x8b, 0x62, 0xd6, 0xd6, 0xc6, 0xca, 0xcf, 0xf0, 0xbd, 0xd8, 0x94, 0xb5, 0x7e, 0x31, 0x89, 0x12, 0xac, 0x0c, 0xf4, 0xa5, 0x34, 0x76, 0x2b, 0x2f, 0x6d, 0x26, 0x3c, 0x93, 0x58, 0x04, 0x42, 0x3e, 0xd8, 0x68, 0xcf, 0x8c, 0xfb, 0xb8, 0xbe, 0x8f, 0x6d, 0x8a, 0x71, 0x4a, 0x26, 0x8a, 0x39, 0x0e, 0xdc, 0x2d, 0xd5, 0x09, 0xd2, 0xdc, 0x96, 0x85, 0x1d, 0x1b, 0xd4, 0x32, 0x49, 0xbd, 0x0f, 0x69, 0xb0, 0xc4, 0xcb, 0x2f, 0xf4, 0x08, 0x0d, 0x1f, 0xd5, 0x62, 0x2b, 0xc2, 0x38, 0xdd, 0xa6, 0xe9, 0x30, 0x02, 0x5d, 0x8a, 0x2b, 0x12, 0xb9, 0x72, 0xf9, 0xeb, 0xa1, 0x74, 0x21, 0xd4, 0xce, 0xa6, 0x42, 0xf4, 0x0a, 0xd9, 0xea, 0x85, 0x47, 0xae, 0x59, 0x49, 0x8c, 0x3a, 0xd1, 0xb9, 0xa0, 0xc3, 0x4e, 0xd8, 0xc0, 0x1a, 0xae, 0x3b, 0xd2, 0x1a, 0xc1, 0x77, 0x43, 0xb5, 0x77, 0xf9, 0x51, 0x5c, 0xfb, 0xdd, 0xe2, 0x70, 0x4d, 0xc5, 0x7e, 0x80, 0xf1, 0x25, 0x32, 0x3d, 0x55, 0x10, 0x0b, 0x9f, 0x69, 0x79, 0x27, 0xd4, 0x31, 0xdf, 0xe7, 0x36, 0x31, 0xb5, 0x8e, 0x52, 0xaa, 0x6a, 0xeb, 0x04, 0x78, 0xbf, 0x45, 0x95, 0x52, 0x43, 0x86, 0x89, 0xfb, 0xeb, 0x9c, 0x60, 0xd8, 0x7a, 0xae, 0x09, 0x95, 0x43, 0x62, 0xcd, 0x02, 0xa2, 0xb0, 0xb4, 0x79, 0xef, 0xd3, 0x8f, 0x17, 0x82, 0x1a, 0xf3, 0x9b, 0x21, 0x92, 0x6e, 0xe0, 0x2f, 0x7d, 0x97, 0x2a, 0xd0, 0xf5, 0x4e, 0xa6, 0x57, 0x2c, 0xc3, 0xeb, 0xd0, 0x20, 0xb1, 0xee, 0x26, 0x88, 0x25, 0x33, 0xbd, 0x19, 0x11, 0x43, 0x23, 0x81, 0x5f, 0x67, 0x2e, 0xc8, 0xc9, 0x05, 0x68, 0x73, 0x0a, 0x58, 0xe4, 0xe1, 0xe3, 0x5f, 0x68, 0x21, 0x21, 0x9a, 0x32, 0xb8, 0xa6, 0xc5, 0x2c, 0xed, 0x6f, 0x95, 0x73, 0xd9, 0xf3, 0xbe, 0xb2, 0x85, 0x13, 0xba, 0x62, 0xfb, 0x20, 0x1f, 0x7f, 0xd4, 0x1b, 0xb1, 0x0c, 0xa3, 0x4b, 0xb1, 0xc7, 0x0f, 0x2f, 0xd7, 0xbb, 0x92, 0x99, 0xa7, 0xc5, 0xf7, 0xf2, 0xe0, 0xfa, 0x1d, 0x1a, 0xf0, 0xe9, 0xae, 0xf5, 0xed, 0xe7, 0xc1, 0x69, 0x50, 0xe8, 0x60, 0xec, 0xd6, 0x1f, 0x18, 0x42, 0xa1, 0xa2, 0x2c, 0x98, 0x31, 0xc0, 0xc0, 0xd4, 0xed, 0xa8, 0x40, 0xb0, 0x88, 0xa5, 0x45, 0x20, 0xc9, 0xb1, 0x8c, 0x76, 0xeb, 0xa9, 0xbe, 0xbc, 0xd5, 0x91, 0x38, 0x1c, 0x18, 0x0d, 0x7f, 0x86, 0xa0, 0xe5, 0x8a, 0xdd, 0x92, 0xb9, 0xb0, 0xc8, 0x07, 0x6a, 0x7c, 0xdc, 0xab, 0x60, 0xde, 0xa4, 0xc1, 0xaf, 0xb1, 0x8c, 0x8b, 0x94, 0xb1, 0xb3, 0x92, 0xcc, 0xfb, 0x4d, 0xae, 0x27, 0x11, 0xe7, 0xd1, 0x2d, 0x2b, 0xc7, 0xc7, 0x82, 0x5f, 0x63, 0x99, 0x2e, 0xc3, 0x24, 0x71, 0x63, 0xc2, 0x83, 0xb1, 0x07, 0x5e, 0x32, 0x24, 0x5f, 0x69, 0xcf, 0x47, 0x24, 0x0a, 0xef, 0x0d, 0xb4, 0x3e, 0xfa, 0xe8, 0x6f, 0xc1, 0xfd, 0x3b, 0xb9, 0x9c, 0xf5, 0xb7, 0x89, 0xf5, 0xbc, 0xba, 0x95, 0x04, 0x65, 0x7d, 0x9e, 0x62, 0x2a, 0x4a, 0xa1, 0x6f, 0x01, 0xd4, 0xd8, 0x44, 0x41, 0x31, 0x24, 0x44, 0x7d, 0x6d, 0x1a, 0x44, 0x23, 0xe7, 0xb5, 0x5d, 0xb7, 0xe6, 0xa3, 0x1a, 0x31, 0x9f, 0x4b, 0xac, 0xae, 0x43, 0x0a, 0x33, 0xa9, 0xbd, 0xd4, 0xef, 0x36, 0x80, };
21734 static const u8 ed25519_945_test_vectors_expected_sig[] = {
21735 	0xf9, 0xfd, 0x72, 0xf3, 0x21, 0xca, 0x21, 0x33, 0xbf, 0x85, 0x85, 0x90, 0x8d, 0x9c, 0xa7, 0xb8, 0xe3, 0x36, 0x22, 0x7e, 0x3f, 0xfb, 0x37, 0x49, 0xa1, 0xfb, 0xe8, 0xc9, 0xb1, 0xe5, 0xd5, 0x0e, 0xf0, 0x1f, 0x9d, 0xb5, 0xf0, 0xd2, 0xa7, 0xc7, 0xc1, 0x39, 0x9b, 0x97, 0xc9, 0x04, 0x4e, 0x1b, 0xc1, 0xad, 0xc3, 0x2b, 0x8b, 0xea, 0x46, 0xda, 0xd7, 0xb8, 0x10, 0x26, 0x46, 0x96, 0x03, 0x03, };
21736 static const ec_test_case ed25519_945_test_case = {
21737 	.name = "EDDSA25519-SHA512/wei25519 945",
21738 	.ec_str_p = &wei25519_str_params,
21739 	.priv_key = ed25519_945_test_vectors_priv_key,
21740 	.priv_key_len = sizeof(ed25519_945_test_vectors_priv_key),
21741 	.nn_random = NULL,
21742 	.hash_type = SHA512,
21743 	.msg = (const char *)ed25519_945_test_vectors_message,
21744 	.msglen = sizeof(ed25519_945_test_vectors_message),
21745 	.sig_type = EDDSA25519,
21746 	.exp_sig = ed25519_945_test_vectors_expected_sig,
21747 	.exp_siglen = sizeof(ed25519_945_test_vectors_expected_sig),
21748 	.adata = NULL,
21749 	.adata_len = 0
21750 };
21751 
21752 /************************************************/
21753 static const u8 ed25519_946_test_vectors_priv_key[] = {
21754 	0x0a, 0x05, 0x6b, 0xe0, 0x39, 0xfd, 0x55, 0xda, 0xda, 0x44, 0x1d, 0x03, 0x73, 0x61, 0x27, 0x3f, 0x20, 0x6e, 0x00, 0x0a, 0x74, 0xa0, 0x5c, 0x51, 0xc0, 0xcb, 0xb6, 0x27, 0x43, 0xf1, 0xf3, 0x40, };
21755 static const u8 ed25519_946_test_vectors_message[] = {
21756 	0xa5, 0xab, 0x14, 0x76, 0x84, 0xe4, 0xd4, 0xa7, 0xbc, 0xb5, 0xa9, 0x6f, 0xb3, 0x98, 0x18, 0xe2, 0x3f, 0x56, 0xc2, 0xd8, 0xa7, 0x44, 0xe9, 0x12, 0x3d, 0x62, 0x08, 0x39, 0x30, 0xab, 0x1d, 0x0b, 0xb5, 0x32, 0xe6, 0x87, 0x14, 0xfc, 0xec, 0x7e, 0x6c, 0x41, 0x13, 0x4b, 0x6b, 0x19, 0xdd, 0xd8, 0x67, 0xfe, 0x63, 0x5c, 0x9e, 0xd6, 0x53, 0x93, 0xee, 0x39, 0xc5, 0xe8, 0xfa, 0xb4, 0x56, 0xcb, 0x5b, 0x32, 0x79, 0x78, 0x83, 0xf3, 0xcd, 0x9a, 0x09, 0x02, 0xb9, 0x79, 0x63, 0x48, 0xee, 0x66, 0xc6, 0x91, 0xfb, 0x4f, 0x2b, 0xb1, 0x47, 0x64, 0x41, 0x06, 0x57, 0xc7, 0x4a, 0xb3, 0x64, 0x56, 0x78, 0x79, 0xb6, 0xfa, 0x0a, 0x6f, 0x4d, 0xaf, 0xd9, 0x30, 0xd9, 0x23, 0x4c, 0xd7, 0x83, 0x4f, 0xb9, 0xd0, 0xee, 0xdf, 0xbb, 0x5a, 0x39, 0x4b, 0xf0, 0x84, 0x6e, 0xc6, 0x96, 0x9c, 0x2e, 0xf7, 0xce, 0x39, 0xe3, 0x85, 0x38, 0x95, 0xff, 0x5b, 0x4d, 0xa3, 0x1e, 0x54, 0x34, 0x1b, 0x42, 0x72, 0xe4, 0xa2, 0x60, 0x49, 0x18, 0x9f, 0xf2, 0x82, 0x41, 0xce, 0xef, 0xfb, 0x7d, 0x2e, 0x1f, 0xaf, 0x4f, 0x77, 0x9f, 0xa6, 0x5c, 0xac, 0x0f, 0x57, 0x83, 0xc6, 0x0a, 0xe7, 0x7d, 0xe3, 0x0a, 0xd4, 0x46, 0x5f, 0xdb, 0x39, 0x0d, 0x42, 0x57, 0x1e, 0xff, 0x4a, 0x63, 0x13, 0x63, 0x49, 0x93, 0x7d, 0x6c, 0xae, 0xef, 0xcd, 0xae, 0x22, 0x9e, 0x2f, 0x28, 0xce, 0xa8, 0xab, 0xf3, 0xff, 0xae, 0x3c, 0x3e, 0xcc, 0xd9, 0x06, 0x70, 0xa4, 0x21, 0x2a, 0x2b, 0xee, 0x1c, 0xa6, 0xa5, 0xb5, 0x4f, 0x09, 0x4f, 0xc3, 0x23, 0x10, 0x58, 0xf5, 0xcb, 0x9e, 0xce, 0xb9, 0x99, 0x3b, 0xe4, 0x70, 0x27, 0xd5, 0x1c, 0x18, 0xde, 0xca, 0x41, 0xcd, 0xda, 0xf4, 0xe8, 0xbc, 0x56, 0xa9, 0x9f, 0xd2, 0x70, 0x35, 0x5f, 0xf4, 0x59, 0x71, 0x95, 0x0e, 0x34, 0x37, 0xa1, 0x98, 0xcc, 0xc3, 0x25, 0x41, 0x68, 0xdf, 0xc1, 0x57, 0x40, 0x80, 0x80, 0x2e, 0xe1, 0x01, 0xa6, 0x17, 0xfb, 0x60, 0x4e, 0x86, 0x8f, 0x8f, 0xa8, 0xfb, 0x30, 0xda, 0xeb, 0x43, 0x07, 0x4d, 0xe1, 0x1f, 0x24, 0x83, 0xd9, 0x16, 0xde, 0x56, 0x43, 0xb7, 0xca, 0xc2, 0x3d, 0x93, 0x40, 0x50, 0x8a, 0x3f, 0xd6, 0x21, 0xec, 0xd2, 0x50, 0x04, 0x35, 0x6a, 0x53, 0x55, 0x4a, 0xd3, 0xad, 0x7d, 0x5d, 0x25, 0x81, 0x7a, 0xd7, 0xc9, 0xa6, 0x10, 0x00, 0x8c, 0x67, 0xac, 0x16, 0xba, 0x42, 0x11, 0xc4, 0x2f, 0x5d, 0xad, 0xf8, 0x6c, 0x2c, 0x3a, 0xed, 0x82, 0x5c, 0xf2, 0xa9, 0xb5, 0x23, 0xbf, 0xc0, 0x3d, 0xd7, 0xde, 0x40, 0x0c, 0x67, 0x80, 0x7e, 0x13, 0x9e, 0xa5, 0xdb, 0xce, 0x4e, 0xe1, 0xf7, 0xd3, 0x18, 0x88, 0x9b, 0x01, 0xa9, 0xf4, 0x48, 0x03, 0xc3, 0x22, 0xac, 0x3b, 0x61, 0xe2, 0x0e, 0x63, 0x12, 0xd0, 0xa0, 0x3b, 0xf9, 0x92, 0x7f, 0xa3, 0x3f, 0x04, 0xed, 0x7e, 0x20, 0x7b, 0x16, 0xf2, 0x65, 0x02, 0xc2, 0x98, 0x3a, 0x3a, 0x96, 0x1f, 0x22, 0x44, 0x61, 0xfe, 0x9b, 0x64, 0x92, 0x3b, 0x1d, 0x09, 0x18, 0x94, 0x76, 0xae, 0x8d, 0x00, 0x1d, 0x0e, 0xca, 0xae, 0x4d, 0xf6, 0x0d, 0xb3, 0x5f, 0x44, 0x8b, 0xb6, 0x12, 0xf9, 0x65, 0x5a, 0x5f, 0xb1, 0x44, 0xdf, 0x11, 0xd8, 0x3a, 0xa6, 0x93, 0x68, 0x86, 0xc3, 0x04, 0x94, 0x9e, 0x59, 0xaa, 0x46, 0xdf, 0x65, 0xc2, 0x2c, 0xe7, 0xbf, 0x28, 0x9b, 0x3c, 0x77, 0xc2, 0x5d, 0x89, 0x6b, 0xe6, 0xd5, 0x1d, 0xee, 0x10, 0x74, 0x82, 0x61, 0x68, 0x8c, 0x8b, 0x07, 0x1c, 0x85, 0x6f, 0x99, 0x62, 0xc6, 0x67, 0x75, 0xdd, 0xf1, 0x60, 0x83, 0xda, 0xe0, 0x65, 0x87, 0xe3, 0x2a, 0x63, 0x61, 0x19, 0x9d, 0x72, 0x09, 0x7e, 0x38, 0x3a, 0xd7, 0x43, 0x94, 0x91, 0xb5, 0xa5, 0x63, 0xa3, 0xe6, 0xd5, 0x8d, 0xa3, 0xd5, 0xab, 0xb1, 0xde, 0x84, 0x89, 0x0a, 0x36, 0xb4, 0x21, 0xce, 0x03, 0xd4, 0x84, 0xdf, 0xd6, 0x00, 0x39, 0x63, 0x8d, 0x46, 0xed, 0xfb, 0x60, 0x65, 0x9e, 0x3a, 0x25, 0xac, 0x6e, 0x9a, 0x93, 0x5a, 0xd6, 0xda, 0xd5, 0x0f, 0x92, 0x7b, 0xcc, 0x2f, 0xf9, 0x9f, 0x99, 0x24, 0xa5, 0xb7, 0x99, 0x5d, 0xc2, 0x3c, 0x8f, 0x30, 0x1c, 0xcc, 0x77, 0x69, 0xf7, 0x1c, 0x18, 0x26, 0x09, 0x04, 0xa3, 0xdc, 0xfb, 0x81, 0x7d, 0x2d, 0x80, 0x5c, 0xb1, 0xf1, 0x96, 0xbe, 0x8b, 0x6e, 0xcf, 0x35, 0x2b, 0xc2, 0x96, 0xbc, 0x3f, 0x76, 0xea, 0x91, 0x35, 0x3f, 0x8c, 0xf3, 0x5b, 0xcd, 0x2b, 0x57, 0xeb, 0x59, 0x42, 0x77, 0x3d, 0x68, 0x34, 0xac, 0x50, 0xee, 0xad, 0xc7, 0xe6, 0x64, 0x61, 0xd1, 0xda, 0x09, 0x8c, 0xce, 0xc7, 0x5f, 0xf7, 0x20, 0x52, 0x15, 0xf5, 0x24, 0x59, 0xd9, 0x76, 0x20, 0xf9, 0xf0, 0x28, 0x9e, 0x93, 0x91, 0x1d, 0xb3, 0x9b, 0x21, 0xdf, 0x81, 0x8f, 0xdf, 0x0b, 0xed, 0x45, 0x50, 0x92, 0x44, 0x63, 0x3d, 0xf0, 0x1c, 0xdd, 0xdb, 0x4b, 0x75, 0x97, 0x2f, 0xa7, 0xea, 0x6f, 0x73, 0x28, 0x1c, 0xbd, 0xbb, 0xd1, 0xbc, 0xb0, 0x0c, 0x3b, 0xc1, 0xb1, 0x72, 0x8e, 0xea, 0xe0, 0xbb, 0xa1, 0x72, 0xb1, 0x31, 0xf5, 0xd3, 0x08, 0x90, 0xa3, 0x41, 0xe6, 0xb7, 0x2f, 0x7e, 0x89, 0xdd, 0x4b, 0x6d, 0xb3, 0xe7, 0x9b, 0x69, 0x27, 0x58, 0x6c, 0xf2, 0xc8, 0xac, 0x38, 0xdd, 0x14, 0xf3, 0x74, 0xd7, 0xf5, 0xbb, 0xa9, 0xf4, 0x35, 0x3d, 0xef, 0x10, 0xdd, 0xc9, 0x4d, 0x3d, 0x11, 0x18, 0xc5, 0x69, 0x9e, 0x38, 0xb6, 0xb5, 0x04, 0x91, 0x8e, 0x58, 0x9e, 0xfe, 0x3f, 0x7e, 0x97, 0x3f, 0xb4, 0x0e, 0x2e, 0xbd, 0x05, 0x7d, 0xe1, 0x38, 0x5e, 0x39, 0xd6, 0x99, 0xa8, 0xf6, 0x83, 0xb9, 0x62, 0xfa, 0xe4, 0xf3, 0x90, 0x28, 0x81, 0xf1, 0xaf, 0xbe, 0xd7, 0xc7, 0x83, 0x82, 0x35, 0x58, 0xc3, 0x6d, 0x68, 0xc6, 0x87, 0x5d, 0x16, 0x6f, 0xa2, 0x43, 0xeb, 0x2a, 0xe1, 0x4f, 0x7e, 0x63, 0x15, 0xa6, 0xd2, 0xab, 0x4e, 0x79, 0xea, 0x8e, 0x16, 0xe6, 0x9d, 0x30, 0xed, 0xc7, 0x08, 0xf1, 0xe7, 0xaf, 0x7a, 0xda, 0xfe, 0xdc, 0xd3, 0x16, 0x88, 0x98, 0xb3, 0x31, 0x87, 0x81, 0x78, 0xc4, 0xba, 0x88, 0x33, 0xd2, 0x0b, 0x3c, 0xac, 0x9d, 0x32, 0xb8, 0x88, 0x8c, 0xc6, 0x78, 0x32, 0x06, 0x39, 0x74, 0x70, 0xa2, 0xe7, 0xcc, 0x4c, 0x98, 0x09, 0xff, 0x79, 0xce, 0xac, 0x9d, 0xc2, 0x4c, 0xa1, 0x43, 0x8c, 0x91, 0x9c, 0x8a, 0x41, 0x5e, 0x82, 0xf0, 0x90, 0x2b, 0x4d, 0x9c, 0xf4, 0xcc, 0xd5, 0x76, 0x96, 0x8d, 0x5b, 0xee, 0x81, 0xc5, 0xf1, 0x9c, 0x7d, 0x57, 0xb9, 0xba, 0xda, 0x8e, 0xab, 0x47, 0x56, 0xea, 0x27, 0x0d, 0xd2, 0x61, 0x29, 0xe6, 0x12, 0x2e, 0xe2, 0xd6, 0x15, 0x24, 0x2b, 0xc7, 0xfa, 0xbf, 0xf4, 0xf8, 0x31, 0x2e, 0x68, 0x6c, 0x8f, };
21757 static const u8 ed25519_946_test_vectors_expected_sig[] = {
21758 	0xfa, 0xb8, 0xe5, 0xd9, 0x3d, 0x7d, 0x46, 0xc6, 0x5e, 0xe1, 0x17, 0xc5, 0x37, 0x5e, 0x73, 0xc9, 0x70, 0x5f, 0x87, 0x54, 0x17, 0x7f, 0xdd, 0x46, 0xef, 0xed, 0x47, 0x37, 0xc2, 0x87, 0x68, 0xcc, 0x4b, 0x95, 0xa9, 0xc8, 0x4c, 0x52, 0x9b, 0x4b, 0x91, 0x6b, 0x28, 0xda, 0xbd, 0x87, 0x41, 0x18, 0x31, 0x44, 0xbc, 0xdb, 0x48, 0x3d, 0xf9, 0x8a, 0xf8, 0x9d, 0x82, 0x40, 0xcf, 0x09, 0x46, 0x04, };
21759 static const ec_test_case ed25519_946_test_case = {
21760 	.name = "EDDSA25519-SHA512/wei25519 946",
21761 	.ec_str_p = &wei25519_str_params,
21762 	.priv_key = ed25519_946_test_vectors_priv_key,
21763 	.priv_key_len = sizeof(ed25519_946_test_vectors_priv_key),
21764 	.nn_random = NULL,
21765 	.hash_type = SHA512,
21766 	.msg = (const char *)ed25519_946_test_vectors_message,
21767 	.msglen = sizeof(ed25519_946_test_vectors_message),
21768 	.sig_type = EDDSA25519,
21769 	.exp_sig = ed25519_946_test_vectors_expected_sig,
21770 	.exp_siglen = sizeof(ed25519_946_test_vectors_expected_sig),
21771 	.adata = NULL,
21772 	.adata_len = 0
21773 };
21774 
21775 /************************************************/
21776 static const u8 ed25519_947_test_vectors_priv_key[] = {
21777 	0x22, 0x05, 0x24, 0x86, 0x0c, 0xb8, 0x9a, 0xb2, 0x95, 0xbd, 0x88, 0x4f, 0x98, 0x8a, 0x57, 0x91, 0x18, 0x68, 0x69, 0x3d, 0x6b, 0x10, 0x5a, 0x80, 0xb2, 0x30, 0xf2, 0x1e, 0x57, 0x80, 0x5a, 0x7d, };
21778 static const u8 ed25519_947_test_vectors_message[] = {
21779 	0x02, 0x4a, 0x54, 0xac, 0x5e, 0x01, 0x63, 0xb3, 0xa4, 0xfd, 0xd0, 0x2f, 0x59, 0x36, 0x88, 0x8a, 0xe2, 0xf9, 0xb7, 0x4a, 0x64, 0x14, 0xb5, 0x3c, 0x63, 0x81, 0x17, 0x3b, 0x09, 0x5a, 0x4d, 0xda, 0xcf, 0xc3, 0xa6, 0x9f, 0x19, 0x16, 0x7d, 0x0f, 0x1a, 0xe0, 0xc1, 0x20, 0xbb, 0xa7, 0xe9, 0xfc, 0xb7, 0xcc, 0xfc, 0x79, 0x6d, 0x89, 0xea, 0x46, 0xef, 0x80, 0x58, 0x86, 0x6e, 0xf6, 0xda, 0x7d, 0x01, 0xa6, 0xa1, 0x42, 0xea, 0x69, 0xd7, 0x20, 0xc4, 0xf8, 0x05, 0xac, 0x54, 0x05, 0xa8, 0x01, 0x2c, 0x3c, 0x2a, 0x82, 0x63, 0xb5, 0x37, 0x2d, 0x59, 0xbf, 0x7f, 0x40, 0x99, 0x29, 0x90, 0x13, 0xd2, 0x62, 0x59, 0xdf, 0xd5, 0x19, 0x3e, 0xce, 0x56, 0x17, 0x97, 0x77, 0xbe, 0x51, 0xb8, 0x6b, 0xd1, 0xce, 0x5f, 0x1f, 0xc9, 0x15, 0x6f, 0x2b, 0x3a, 0x32, 0xc0, 0x9d, 0x86, 0xbc, 0x61, 0x32, 0xde, 0x57, 0x61, 0x02, 0xe2, 0xf0, 0x3c, 0x71, 0x6d, 0xb5, 0x36, 0x6c, 0xcb, 0xe7, 0x42, 0xae, 0xe3, 0x55, 0x2a, 0xc3, 0xb3, 0x9d, 0x0e, 0xc7, 0xd4, 0xe4, 0xe9, 0x62, 0x6b, 0xf8, 0xec, 0xe0, 0x31, 0xd6, 0x78, 0xd3, 0x48, 0x09, 0x05, 0xc0, 0xe3, 0x38, 0xfb, 0x7c, 0xc0, 0x26, 0xe3, 0xe7, 0x9c, 0xf2, 0xc2, 0x78, 0x1a, 0xc2, 0xa5, 0xa4, 0x0d, 0xf4, 0x28, 0x4e, 0x23, 0x5a, 0x03, 0x89, 0xe9, 0x28, 0xfc, 0x63, 0x55, 0x7d, 0xc6, 0xf1, 0x99, 0xfc, 0xec, 0x5f, 0x36, 0x1e, 0xa2, 0x47, 0x59, 0xfa, 0x7c, 0x5f, 0x71, 0x97, 0x8c, 0x0b, 0xa2, 0x45, 0xe4, 0xb0, 0x3a, 0xe4, 0x35, 0x94, 0x1c, 0x86, 0xc8, 0x1a, 0x51, 0x43, 0x0c, 0x2d, 0xc9, 0x92, 0x7e, 0x3b, 0x0f, 0x4e, 0xc4, 0xeb, 0xa7, 0xc2, 0x74, 0x5b, 0x49, 0x39, 0x87, 0x15, 0x4d, 0x7d, 0xa8, 0x5b, 0x67, 0xde, 0x21, 0xc5, 0x98, 0x40, 0x7f, 0xb2, 0xa7, 0x60, 0x80, 0x4a, 0xd0, 0x5b, 0xfd, 0xfa, 0x45, 0xa6, 0x13, 0x22, 0x4b, 0x22, 0xa0, 0x85, 0x88, 0xcc, 0xea, 0x3c, 0xbd, 0xf4, 0x7a, 0x19, 0x8b, 0xeb, 0xf8, 0xcf, 0xed, 0x86, 0x49, 0xd6, 0xd5, 0xf3, 0xfa, 0x50, 0x13, 0x76, 0xbd, 0xfb, 0xa4, 0x00, 0x3d, 0xac, 0x22, 0x37, 0xdc, 0xac, 0xe5, 0x31, 0x5b, 0x7f, 0xef, 0xb8, 0x79, 0xa8, 0x9a, 0x85, 0xbc, 0xe6, 0xda, 0x52, 0x6f, 0xc3, 0x60, 0xcb, 0xb4, 0xfd, 0x55, 0x4e, 0xf0, 0x13, 0xf3, 0x3b, 0x73, 0x84, 0xcd, 0x2b, 0x22, 0xa8, 0x85, 0x77, 0xf3, 0xa2, 0xd3, 0x66, 0x42, 0x2a, 0xae, 0x46, 0x41, 0x7b, 0xa9, 0x16, 0xe1, 0x64, 0x6e, 0x24, 0x40, 0x4a, 0x88, 0xb5, 0xd5, 0x3f, 0xf1, 0xae, 0xd2, 0xa4, 0x7b, 0xaf, 0x81, 0xfc, 0xb4, 0x28, 0x63, 0x97, 0x99, 0x13, 0x94, 0xb2, 0xec, 0xc3, 0x96, 0x67, 0xac, 0x46, 0xc2, 0xbd, 0xb6, 0xd0, 0x23, 0xb3, 0x3d, 0xb0, 0x13, 0x45, 0x7c, 0x40, 0x05, 0xd8, 0x39, 0x01, 0x5d, 0x88, 0x51, 0xf0, 0x28, 0xac, 0x33, 0x4f, 0xb2, 0x4b, 0xba, 0xd2, 0x90, 0x2a, 0x4d, 0x63, 0xae, 0x68, 0xe0, 0xec, 0xa7, 0xea, 0xea, 0x1e, 0x85, 0x65, 0x29, 0x64, 0x7b, 0xaf, 0x14, 0x12, 0x21, 0x37, 0x54, 0xed, 0x50, 0xaf, 0x3f, 0x43, 0x6e, 0x9b, 0xaf, 0xc1, 0x60, 0x16, 0x39, 0xb3, 0x9d, 0x3e, 0x52, 0xa9, 0x3a, 0x89, 0x8f, 0xb6, 0x01, 0x9f, 0xd5, 0xed, 0x6e, 0x7d, 0xfc, 0x05, 0x0e, 0x7c, 0xe5, 0xf3, 0xd3, 0x5c, 0xeb, 0x50, 0x67, 0x02, 0x1c, 0x0f, 0xbd, 0xc7, 0x08, 0xd3, 0xf2, 0x6b, 0xd6, 0x05, 0x68, 0xd1, 0xed, 0x2b, 0x61, 0x2b, 0x69, 0x62, 0x35, 0xd5, 0x33, 0x33, 0x18, 0xf9, 0xa6, 0xc9, 0x87, 0x23, 0x5a, 0x7a, 0x07, 0xf8, 0xc6, 0xa9, 0x35, 0x4f, 0xb8, 0xe7, 0x34, 0x76, 0x30, 0x65, 0xaf, 0xcd, 0x4d, 0x93, 0x77, 0x64, 0xa4, 0xf0, 0x37, 0xcc, 0x7e, 0x7e, 0x2b, 0x93, 0x21, 0x7f, 0x16, 0x41, 0x68, 0x4f, 0xa8, 0x1b, 0x7f, 0xf7, 0x98, 0x6a, 0x28, 0xb3, 0x8e, 0x95, 0xb3, 0x32, 0xe7, 0x46, 0x49, 0xe8, 0x3d, 0x0d, 0xed, 0x79, 0x5c, 0x57, 0xf2, 0x4c, 0xf2, 0x76, 0xe0, 0x14, 0x39, 0x01, 0xba, 0xfe, 0xf0, 0xf1, 0x69, 0x3f, 0xe7, 0xcf, 0x10, 0x90, 0x4f, 0xb0, 0xd8, 0x80, 0xd7, 0x2e, 0x44, 0x71, 0x6a, 0x70, 0x69, 0xda, 0xaa, 0xe7, 0x42, 0xcf, 0x0f, 0xf3, 0xed, 0x92, 0xf5, 0xf7, 0xd1, 0xe1, 0x0e, 0x04, 0x9d, 0x8d, 0xf0, 0x43, 0x63, 0x1e, 0xd0, 0xed, 0x4c, 0x4a, 0xc4, 0x02, 0x2d, 0x84, 0x03, 0xcb, 0x04, 0x21, 0xb4, 0x54, 0xcb, 0xfb, 0x6f, 0x48, 0xa3, 0x0e, 0x9e, 0xe1, 0x60, 0x9a, 0xd7, 0xb6, 0x82, 0x11, 0x97, 0x7a, 0xcb, 0x33, 0xb9, 0xc1, 0xa1, 0xbe, 0x73, 0x58, 0x14, 0xc5, 0x8f, 0x66, 0xdb, 0x5f, 0x0b, 0x8a, 0xc7, 0x73, 0xb1, 0xd5, 0x8d, 0x4e, 0x6b, 0xc4, 0x5d, 0xfd, 0x48, 0xa2, 0x94, 0xbb, 0xd2, 0x5e, 0x92, 0x67, 0x1f, 0x56, 0xf3, 0x02, 0xf2, 0x9b, 0x50, 0xd8, 0x04, 0x31, 0xc8, 0xf2, 0xea, 0x33, 0x99, 0x62, 0x57, 0xb2, 0x08, 0xe0, 0x57, 0xea, 0x76, 0x72, 0xcc, 0x2d, 0x1c, 0xd4, 0x20, 0x4b, 0x85, 0xb2, 0xab, 0x50, 0x90, 0x27, 0x13, 0x13, 0x59, 0xae, 0xb4, 0x2e, 0x3e, 0xcc, 0xdb, 0xae, 0xcf, 0xe2, 0xcd, 0x3e, 0x5a, 0x33, 0x13, 0x26, 0x6e, 0x76, 0x11, 0x94, 0xff, 0x69, 0xca, 0xe9, 0xe3, 0x7e, 0x51, 0xcc, 0x0a, 0x54, 0xf0, 0x86, 0xdd, 0xe1, 0x3c, 0xb3, 0x31, 0x18, 0xe3, 0x4f, 0xe3, 0x3c, 0x74, 0xd7, 0x35, 0x58, 0x27, 0x52, 0xd6, 0x8d, 0x21, 0xc7, 0x9e, 0x5c, 0x3a, 0xae, 0xa9, 0x4b, 0xa1, 0x07, 0xcb, 0x7e, 0xe8, 0xa7, 0x0a, 0x3f, 0x9a, 0x01, 0xe9, 0x80, 0x8c, 0x0a, 0xeb, 0xa6, 0x66, 0x53, 0x15, 0xb4, 0x56, 0x25, 0x84, 0x0a, 0x03, 0x3a, 0x6e, 0x2a, 0x87, 0x54, 0x95, 0x05, 0x79, 0x42, 0xed, 0x9b, 0xb2, 0xce, 0x6e, 0x4e, 0xe6, 0x0b, 0xed, 0x47, 0xcd, 0x9d, 0x58, 0x4b, 0xc2, 0x45, 0x24, 0x39, 0x7a, 0x10, 0x94, 0x98, 0xee, 0x2a, 0x97, 0x3a, 0xad, 0x6a, 0x29, 0xb7, 0x0a, 0x1c, 0xfb, 0xfe, 0x9a, 0xa5, 0xc7, 0xcb, 0x9f, 0x35, 0xf0, 0xfa, 0x00, 0x22, 0x7f, 0x43, 0x98, 0x8d, 0x07, 0x61, 0x9b, 0x6f, 0xb2, 0xf6, 0xd3, 0xbe, 0xe2, 0x8e, 0x10, 0xee, 0x70, 0x53, 0x47, 0x01, 0x5a, 0x92, 0x2e, 0x2e, 0x88, 0xd3, 0x4f, 0xb0, 0xce, 0x51, 0x5b, 0x08, 0xdf, 0x3a, 0x1b, 0x63, 0x4f, 0xf9, 0xec, 0x15, 0xd0, 0x59, 0x41, 0x82, 0xc8, 0x6e, 0xbb, 0x0d, 0xb7, 0x83, 0x61, 0x2a, 0x7d, 0x19, 0xe4, 0xb2, 0x2e, 0x82, 0x2d, 0x56, 0x62, 0x45, 0xae, 0xd7, 0x2e, 0x69, 0x4c, 0x3d, 0x10, 0x1b, 0xfa, 0x4c, 0xa8, 0x79, 0x86, 0x2e, 0x5f, 0x99, 0xc2, 0x3a, 0x5d, 0x66, 0x08, 0x3c, 0xe0, 0x6d, 0x87, 0xf3, 0x99, 0xaa, 0x78, 0x88, 0xab, 0x83, 0xb8, 0x66, 0x44, 0x72, };
21780 static const u8 ed25519_947_test_vectors_expected_sig[] = {
21781 	0xdb, 0x1c, 0xc0, 0xc5, 0xdb, 0x77, 0x3e, 0xc5, 0x16, 0x89, 0xbe, 0x28, 0x84, 0x2f, 0xa6, 0x79, 0x1a, 0x7d, 0x75, 0xe2, 0x9c, 0x22, 0x8a, 0xe9, 0x59, 0x3a, 0x58, 0x0e, 0x08, 0x75, 0xb1, 0x67, 0x0f, 0x09, 0xb0, 0x34, 0x42, 0x92, 0x9a, 0x18, 0xf1, 0xe9, 0x41, 0x4e, 0xa3, 0x43, 0x15, 0xff, 0x09, 0xd9, 0x1d, 0x92, 0x2e, 0xe4, 0x7f, 0x10, 0xf7, 0x1d, 0xa4, 0xab, 0x13, 0xb7, 0xd9, 0x01, };
21782 static const ec_test_case ed25519_947_test_case = {
21783 	.name = "EDDSA25519-SHA512/wei25519 947",
21784 	.ec_str_p = &wei25519_str_params,
21785 	.priv_key = ed25519_947_test_vectors_priv_key,
21786 	.priv_key_len = sizeof(ed25519_947_test_vectors_priv_key),
21787 	.nn_random = NULL,
21788 	.hash_type = SHA512,
21789 	.msg = (const char *)ed25519_947_test_vectors_message,
21790 	.msglen = sizeof(ed25519_947_test_vectors_message),
21791 	.sig_type = EDDSA25519,
21792 	.exp_sig = ed25519_947_test_vectors_expected_sig,
21793 	.exp_siglen = sizeof(ed25519_947_test_vectors_expected_sig),
21794 	.adata = NULL,
21795 	.adata_len = 0
21796 };
21797 
21798 /************************************************/
21799 static const u8 ed25519_948_test_vectors_priv_key[] = {
21800 	0x4e, 0xf6, 0x0f, 0x06, 0x91, 0xd7, 0x37, 0xe6, 0x4d, 0x43, 0x7b, 0xfd, 0x33, 0x98, 0x33, 0x0e, 0x55, 0xe3, 0xc0, 0x94, 0xcf, 0x41, 0xfc, 0x55, 0x7b, 0x0f, 0xe0, 0xb6, 0x43, 0x90, 0x9a, 0xb8, };
21801 static const u8 ed25519_948_test_vectors_message[] = {
21802 	0x0a, 0x18, 0x8a, 0xc2, 0x6f, 0x3c, 0x5d, 0x89, 0xf3, 0xd5, 0x88, 0x37, 0x4f, 0xac, 0x5e, 0xcf, 0x9a, 0x46, 0x7e, 0x21, 0x65, 0xb3, 0x1d, 0x0b, 0x0f, 0x23, 0x50, 0x1b, 0xd2, 0x2e, 0x62, 0xbf, 0x35, 0x55, 0xff, 0xba, 0x94, 0x63, 0x1d, 0xe7, 0x4a, 0x6a, 0x3c, 0x3c, 0xf6, 0x3b, 0x03, 0xac, 0x1b, 0xbb, 0x37, 0xd2, 0x33, 0xec, 0xa5, 0x99, 0x3b, 0x09, 0x70, 0xa0, 0x22, 0x0d, 0xe8, 0xd6, 0xc4, 0x1a, 0x97, 0x03, 0x07, 0x30, 0x9a, 0x52, 0xda, 0x05, 0x76, 0xdc, 0x33, 0x4d, 0x80, 0x64, 0x47, 0xaa, 0x09, 0xd0, 0xb2, 0x45, 0xea, 0xcd, 0x0b, 0x42, 0xc4, 0xe1, 0x9f, 0xa3, 0xd6, 0xfb, 0xdc, 0x22, 0x94, 0x30, 0xeb, 0x3c, 0x75, 0x58, 0xaf, 0x53, 0x31, 0xc6, 0xe7, 0xfc, 0xc2, 0xe5, 0x52, 0xce, 0x35, 0xd5, 0x79, 0x07, 0x3b, 0x54, 0x8d, 0xc1, 0x15, 0xbb, 0xd2, 0x7e, 0x5a, 0x33, 0xce, 0x1c, 0x47, 0xfc, 0x84, 0x61, 0xe3, 0x91, 0xb6, 0xd7, 0x67, 0x95, 0x34, 0x87, 0xcc, 0x52, 0xee, 0x67, 0x3b, 0xc4, 0xbe, 0x96, 0x56, 0x9c, 0x85, 0x57, 0x36, 0x9e, 0xbb, 0x6e, 0x02, 0xf7, 0x92, 0x38, 0x10, 0x8c, 0x3b, 0x58, 0x56, 0xee, 0x38, 0x1a, 0x79, 0xff, 0x46, 0x4c, 0x8f, 0x60, 0x09, 0xfd, 0x47, 0xe6, 0x7b, 0x4c, 0x80, 0x20, 0x1e, 0x11, 0xe6, 0x1a, 0xb8, 0xf5, 0x9b, 0xa5, 0xd0, 0x7b, 0x15, 0xac, 0xe3, 0xfb, 0x37, 0x4c, 0x64, 0xb6, 0xb4, 0xc3, 0x45, 0xe2, 0xb0, 0x0e, 0x91, 0x51, 0xab, 0x8e, 0x1c, 0x5c, 0x98, 0x56, 0x8b, 0xc5, 0x8d, 0xd0, 0x81, 0x2a, 0xaa, 0x3b, 0xee, 0xe1, 0x65, 0xe7, 0xea, 0xe5, 0x8f, 0xbd, 0xe6, 0x30, 0x77, 0x20, 0x3c, 0x4f, 0xd6, 0xe1, 0x60, 0x68, 0xd7, 0x6e, 0x3d, 0x3a, 0x13, 0xf1, 0xcd, 0xd7, 0x32, 0x88, 0xbd, 0x5e, 0x4d, 0xa4, 0x4e, 0xb1, 0x19, 0xa0, 0x4c, 0x4d, 0x32, 0xef, 0xa2, 0xf1, 0x3e, 0x74, 0x26, 0xa2, 0xf4, 0x1c, 0x56, 0x23, 0xc9, 0xb0, 0x66, 0xb1, 0x30, 0x36, 0x39, 0xb8, 0xfc, 0xea, 0x0d, 0x87, 0x74, 0xcc, 0x08, 0x04, 0x5f, 0x7e, 0x34, 0x63, 0x65, 0xff, 0x31, 0xd3, 0xb1, 0xed, 0x99, 0xe9, 0x7b, 0xca, 0x5f, 0x25, 0xc9, 0x2b, 0x28, 0x43, 0xac, 0x58, 0x5d, 0x02, 0x19, 0x3a, 0x2f, 0xd3, 0x94, 0x66, 0xf7, 0x3a, 0xaa, 0x98, 0x9b, 0x1f, 0xa0, 0x5b, 0x9a, 0x15, 0x7f, 0xd0, 0x27, 0x7c, 0x5e, 0x74, 0x5d, 0x25, 0x8e, 0x02, 0x78, 0x03, 0xa5, 0x24, 0xad, 0x94, 0x30, 0x94, 0x25, 0xc3, 0xf4, 0xde, 0xc3, 0x1c, 0x0e, 0xfc, 0x54, 0x77, 0x52, 0xf4, 0xc7, 0x19, 0x4c, 0xbb, 0x27, 0x2f, 0x84, 0x9a, 0x52, 0x16, 0x9c, 0x6a, 0x07, 0x8d, 0x20, 0xed, 0xe1, 0x43, 0x20, 0x16, 0x52, 0x84, 0x77, 0xb5, 0x8c, 0x2b, 0xdf, 0x60, 0x63, 0xf9, 0x44, 0x7e, 0x33, 0x83, 0x7c, 0xcb, 0x43, 0x7d, 0x8d, 0x6b, 0x95, 0xcf, 0x4c, 0x44, 0xbe, 0x70, 0xc8, 0x19, 0x3a, 0xd9, 0x80, 0xa1, 0x05, 0xf3, 0xdb, 0x6f, 0x99, 0x30, 0xba, 0xb4, 0x67, 0x8c, 0x77, 0x63, 0x42, 0xfa, 0xf1, 0x70, 0xed, 0xf7, 0x42, 0x48, 0xd3, 0xb1, 0xca, 0x96, 0xf7, 0x31, 0xb9, 0xd0, 0x26, 0xd8, 0xf0, 0xf7, 0xc3, 0x4e, 0xd3, 0x72, 0xc1, 0xcd, 0xe1, 0x76, 0xf5, 0x5f, 0x55, 0x86, 0x75, 0xcc, 0x31, 0x80, 0xc2, 0x39, 0x02, 0xf4, 0xba, 0x95, 0x08, 0xd1, 0xc9, 0x1c, 0x3c, 0x9e, 0x68, 0x87, 0x30, 0x32, 0x7f, 0x3f, 0x7b, 0x63, 0x7a, 0x8f, 0xee, 0x54, 0x37, 0x37, 0x59, 0xfc, 0xb1, 0x7c, 0x92, 0x17, 0xea, 0x44, 0xce, 0x43, 0x69, 0x1a, 0x8f, 0x64, 0x63, 0x64, 0x0a, 0x4a, 0x5e, 0x15, 0x1e, 0x62, 0x54, 0xc4, 0xef, 0x12, 0x62, 0x3b, 0x49, 0x39, 0x4d, 0xa7, 0xcc, 0x79, 0x45, 0x26, 0x93, 0x81, 0x7d, 0x6b, 0xae, 0xa9, 0xa0, 0xa7, 0x58, 0x76, 0x94, 0x8b, 0x1f, 0x8d, 0x3b, 0x71, 0x7f, 0x9e, 0xc3, 0x67, 0x53, 0xf5, 0x32, 0x63, 0x71, 0x03, 0x83, 0xb9, 0x82, 0x62, 0xae, 0x63, 0x54, 0xff, 0x2a, 0x22, 0x83, 0x22, 0x0a, 0xd4, 0x2c, 0x5c, 0xb2, 0xcb, 0xbd, 0xf1, 0x2c, 0x87, 0x95, 0x13, 0x71, 0x0b, 0x16, 0xbe, 0x85, 0x6f, 0x3b, 0x13, 0x55, 0xb3, 0x6f, 0x4b, 0x80, 0xc0, 0x17, 0xc2, 0x1b, 0xe8, 0x5e, 0x96, 0x05, 0x3d, 0xa0, 0x50, 0xc4, 0x03, 0x12, 0x10, 0x0a, 0xbb, 0x64, 0x0b, 0x87, 0x3d, 0x88, 0xfb, 0x6e, 0xe0, 0xd1, 0x9e, 0x9e, 0x61, 0xb0, 0x4c, 0x97, 0x0b, 0xd1, 0xf0, 0x60, 0xdd, 0x31, 0x1b, 0xbb, 0x9a, 0x6e, 0x35, 0xb9, 0x85, 0xfd, 0xca, 0x17, 0xca, 0xee, 0x8c, 0xd5, 0xdb, 0x63, 0x7a, 0xcd, 0x90, 0xcb, 0x8e, 0x82, 0x32, 0x55, 0xc0, 0x56, 0x01, 0x8f, 0xef, 0x59, 0x20, 0xdb, 0x64, 0x0d, 0x22, 0x01, 0xc5, 0xed, 0xdb, 0xd8, 0xa9, 0xc9, 0x47, 0x4d, 0xa8, 0xde, 0xf7, 0xe1, 0x32, 0x5b, 0x3c, 0xc4, 0x36, 0xc7, 0x4f, 0x81, 0x5d, 0xb1, 0xe4, 0x2b, 0x42, 0x1f, 0xaa, 0xb6, 0x26, 0xa4, 0x37, 0x8c, 0x2d, 0x84, 0x26, 0x1b, 0xf6, 0x49, 0xa5, 0x3b, 0x32, 0x1f, 0x59, 0x8c, 0x44, 0xbb, 0xd3, 0x00, 0x2b, 0x06, 0xcf, 0x7f, 0x1f, 0xde, 0xf8, 0x4a, 0xb3, 0x5f, 0x73, 0xed, 0x7d, 0xc6, 0x50, 0x96, 0xcb, 0x1d, 0xc0, 0xcc, 0x0e, 0x34, 0xc5, 0x61, 0xc8, 0xa1, 0x5c, 0xf5, 0x27, 0x9a, 0xbb, 0xed, 0x9b, 0x16, 0xff, 0x24, 0xa9, 0x74, 0x4e, 0x3f, 0x5e, 0x64, 0x9c, 0xc9, 0xd8, 0x88, 0x4f, 0x89, 0x1c, 0x3f, 0xb7, 0x89, 0x02, 0x03, 0x1f, 0xfe, 0x0e, 0x01, 0x21, 0xc7, 0x20, 0x80, 0xad, 0x10, 0xc2, 0x47, 0xb7, 0xc9, 0x3a, 0x9e, 0xbb, 0x2d, 0x84, 0xd4, 0xf8, 0x77, 0x75, 0x0d, 0x7b, 0x34, 0x16, 0x39, 0x3d, 0x03, 0x04, 0x52, 0x26, 0xbb, 0x79, 0x94, 0xee, 0xa5, 0x8e, 0x27, 0x2d, 0xc1, 0x8c, 0x46, 0xb3, 0x82, 0xd1, 0xf9, 0x7b, 0x23, 0x76, 0x5f, 0xda, 0x7a, 0x8c, 0xe2, 0x1f, 0xc6, 0xb9, 0x8d, 0x72, 0x3f, 0xfc, 0xcd, 0x99, 0xac, 0x46, 0x55, 0xcc, 0x5d, 0x10, 0x10, 0x5a, 0x2a, 0x5b, 0x7c, 0x8c, 0xfb, 0xfb, 0x90, 0xe2, 0x7a, 0x9a, 0x80, 0x9e, 0x41, 0xae, 0x64, 0x00, 0x63, 0x28, 0x64, 0x05, 0xa9, 0xbe, 0x83, 0xac, 0x5d, 0x29, 0x07, 0xa4, 0x5f, 0x16, 0x3c, 0x77, 0x64, 0xb0, 0x9f, 0x99, 0xa5, 0x55, 0x93, 0x22, 0x0d, 0x69, 0x01, 0x29, 0x2b, 0x9b, 0x58, 0x03, 0xa0, 0xfe, 0x71, 0xb0, 0xe4, 0x44, 0x1c, 0xbf, 0xef, 0x84, 0x1c, 0x33, 0xce, 0xbc, 0x98, 0x36, 0x4d, 0x66, 0x6e, 0x5a, 0x9f, 0x5e, 0x7e, 0x69, 0xa1, 0x50, 0x8e, 0x43, 0x80, 0xed, 0x36, 0x13, 0x45, 0xb7, 0x24, 0x8a, 0x4c, 0x1c, 0x1c, 0xe0, 0x87, 0x69, 0xbc, 0x71, 0x52, 0xdd, 0xb3, 0x32, 0xfb, 0xa1, 0x76, 0x20, 0x0f, 0x5a, 0xbb, 0xae, 0x38, 0x12, 0xf4, 0x06, 0xda, 0x72, 0xdd, 0xe5, 0xdb, };
21803 static const u8 ed25519_948_test_vectors_expected_sig[] = {
21804 	0xcb, 0xf7, 0xcf, 0x22, 0x08, 0x1c, 0x5f, 0x23, 0x5d, 0xba, 0x35, 0x63, 0x0f, 0xb3, 0xf0, 0x40, 0x8f, 0xce, 0xcc, 0xef, 0xeb, 0x28, 0xb9, 0x9d, 0x74, 0xdb, 0xd9, 0x8c, 0x90, 0x2c, 0x7d, 0x99, 0xba, 0x9c, 0xa7, 0xfa, 0xb3, 0x74, 0x7c, 0x50, 0x4c, 0xc2, 0x19, 0xf4, 0xdd, 0x10, 0x10, 0x81, 0xf5, 0x8c, 0xe6, 0x16, 0xe2, 0x92, 0x80, 0xe3, 0x62, 0x53, 0x9f, 0xe4, 0x9f, 0x34, 0xd7, 0x05, };
21805 static const ec_test_case ed25519_948_test_case = {
21806 	.name = "EDDSA25519-SHA512/wei25519 948",
21807 	.ec_str_p = &wei25519_str_params,
21808 	.priv_key = ed25519_948_test_vectors_priv_key,
21809 	.priv_key_len = sizeof(ed25519_948_test_vectors_priv_key),
21810 	.nn_random = NULL,
21811 	.hash_type = SHA512,
21812 	.msg = (const char *)ed25519_948_test_vectors_message,
21813 	.msglen = sizeof(ed25519_948_test_vectors_message),
21814 	.sig_type = EDDSA25519,
21815 	.exp_sig = ed25519_948_test_vectors_expected_sig,
21816 	.exp_siglen = sizeof(ed25519_948_test_vectors_expected_sig),
21817 	.adata = NULL,
21818 	.adata_len = 0
21819 };
21820 
21821 /************************************************/
21822 static const u8 ed25519_949_test_vectors_priv_key[] = {
21823 	0x19, 0x7e, 0x15, 0xdc, 0xe4, 0xc4, 0x7d, 0x73, 0x4d, 0xbc, 0xe4, 0x68, 0x8a, 0x7a, 0xd5, 0xfe, 0x41, 0xeb, 0xf2, 0xaa, 0x29, 0xa2, 0xbd, 0xdb, 0x2b, 0xee, 0x62, 0x84, 0x29, 0xc1, 0xbc, 0x02, };
21824 static const u8 ed25519_949_test_vectors_message[] = {
21825 	0xfd, 0x97, 0x1d, 0x48, 0x94, 0x6b, 0x51, 0xff, 0xed, 0x7b, 0x62, 0xc5, 0xd0, 0x99, 0xc1, 0xe5, 0x6b, 0x13, 0x58, 0xb9, 0x22, 0x35, 0xe1, 0x01, 0x0e, 0x3f, 0x23, 0x84, 0x4d, 0xdb, 0x73, 0xbc, 0xee, 0x8d, 0x2e, 0x1c, 0x99, 0x77, 0x35, 0x3b, 0xc9, 0x6a, 0x22, 0x1c, 0x05, 0x60, 0x29, 0x31, 0xfa, 0x16, 0xcc, 0xc2, 0xab, 0x6d, 0x0f, 0x01, 0xc8, 0x46, 0xc2, 0x92, 0x0e, 0x99, 0xde, 0x02, 0x6d, 0xc2, 0x89, 0x7f, 0x3d, 0x5f, 0x3c, 0xee, 0x17, 0x4c, 0xe7, 0x51, 0xd4, 0xa8, 0x05, 0xee, 0x19, 0x59, 0xa3, 0xc6, 0x9c, 0xfd, 0x42, 0xd7, 0xc9, 0xaf, 0xd3, 0x1f, 0xa9, 0xb1, 0xcf, 0x05, 0x78, 0x6d, 0x8f, 0x90, 0x42, 0xa4, 0xf9, 0xf8, 0x1c, 0xf7, 0xac, 0x9c, 0x1c, 0x39, 0xb3, 0x6f, 0x1e, 0xe9, 0x5b, 0x98, 0xcf, 0x7e, 0xe3, 0xf4, 0x3e, 0x2c, 0x34, 0x37, 0x33, 0xd1, 0xd8, 0x2c, 0xc0, 0x8b, 0x2c, 0xde, 0xb7, 0x8d, 0x98, 0x20, 0x34, 0x08, 0x5f, 0xf4, 0xdc, 0x65, 0x36, 0xcd, 0x15, 0x4a, 0x79, 0x0c, 0x85, 0xc8, 0x61, 0x3e, 0xc4, 0xe5, 0xe1, 0xdc, 0x37, 0x7d, 0x38, 0xa7, 0x45, 0xd9, 0x38, 0xcf, 0xb1, 0x5c, 0x8b, 0x8a, 0xa8, 0x61, 0x21, 0x83, 0x5f, 0x2e, 0x25, 0xe9, 0xe6, 0xd0, 0xde, 0x68, 0x02, 0x5d, 0x81, 0x0c, 0x3d, 0xc9, 0xdf, 0x99, 0x1d, 0xad, 0xad, 0x39, 0xdc, 0x69, 0x81, 0xfd, 0xba, 0xc1, 0xff, 0x9b, 0x7a, 0x79, 0x1c, 0x39, 0x60, 0xd8, 0x56, 0x43, 0x66, 0xe5, 0xaa, 0x39, 0xa9, 0xe9, 0xc7, 0xcb, 0xf1, 0xd3, 0xf0, 0xf8, 0x20, 0xd1, 0xb9, 0x01, 0x08, 0x75, 0x1a, 0xc7, 0x64, 0xda, 0xbe, 0x05, 0xc5, 0x1c, 0x18, 0x52, 0x9d, 0xa1, 0xb0, 0x34, 0x96, 0x14, 0x66, 0x84, 0x24, 0xab, 0x4e, 0x93, 0x64, 0x40, 0xc4, 0xa2, 0x51, 0x3b, 0xe5, 0x28, 0x53, 0x93, 0x72, 0xee, 0xe7, 0x87, 0x54, 0x58, 0x9d, 0xbe, 0x79, 0x94, 0xfa, 0xa1, 0xf6, 0x22, 0x91, 0x24, 0xf8, 0x39, 0x95, 0x0e, 0xd0, 0x92, 0x3f, 0x43, 0x23, 0x31, 0x5a, 0xc9, 0x63, 0xbb, 0xe4, 0xc8, 0xe1, 0x77, 0xda, 0xc5, 0x16, 0xe7, 0x34, 0x22, 0x38, 0xf1, 0xcd, 0xf1, 0x40, 0xbe, 0xfc, 0x8a, 0xcd, 0xca, 0x3d, 0x00, 0x2b, 0x16, 0xc1, 0x39, 0x8d, 0x86, 0x86, 0x00, 0x30, 0x4c, 0x7e, 0x98, 0x53, 0xb2, 0x3a, 0x51, 0xb1, 0x7d, 0x9f, 0xd0, 0x61, 0x56, 0xe1, 0xd1, 0xd0, 0x8a, 0x28, 0x46, 0x09, 0x09, 0xfa, 0x20, 0x9c, 0xcc, 0xcc, 0x4c, 0xec, 0xbd, 0xb1, 0xa4, 0x63, 0x48, 0x08, 0x91, 0x15, 0x31, 0x86, 0x81, 0xa9, 0x5a, 0xe5, 0x80, 0xab, 0x67, 0x66, 0x04, 0x13, 0x84, 0x65, 0x1c, 0xc4, 0xe6, 0x14, 0x51, 0x03, 0x92, 0x3b, 0xdf, 0x4a, 0x32, 0xa9, 0x3d, 0x93, 0xee, 0xd3, 0x18, 0x79, 0x1f, 0x20, 0x80, 0x5f, 0x7e, 0xa8, 0x4b, 0x74, 0x3e, 0xe1, 0x1e, 0xad, 0x9e, 0x4c, 0xa0, 0x3d, 0xa7, 0x6d, 0xdd, 0x24, 0x9f, 0xd4, 0x47, 0x5f, 0xc1, 0xa3, 0x53, 0xc7, 0x0a, 0x83, 0x38, 0x9b, 0xfa, 0xc5, 0x20, 0x98, 0xdb, 0x06, 0x6d, 0x10, 0x29, 0xc4, 0xef, 0xfb, 0xed, 0x86, 0x4e, 0xbe, 0x7f, 0x10, 0x7e, 0x01, 0x03, 0xb3, 0xa8, 0xf3, 0xfd, 0x1d, 0x6a, 0xb4, 0x36, 0x0b, 0x99, 0xe8, 0xb1, 0x40, 0xc5, 0xea, 0x13, 0x3e, 0x92, 0x3c, 0x39, 0x2b, 0x8e, 0x40, 0x63, 0xaa, 0x6e, 0x52, 0x26, 0x38, 0xf6, 0x1d, 0x7a, 0x71, 0xc9, 0x22, 0x58, 0x97, 0xd9, 0xf8, 0xa1, 0xe1, 0x6c, 0xfc, 0xc8, 0x01, 0xe7, 0xd5, 0x41, 0x04, 0xeb, 0x10, 0xe6, 0x1a, 0x5a, 0xe6, 0x3c, 0x5c, 0x85, 0xa5, 0xb2, 0x93, 0x92, 0xab, 0x3a, 0xb8, 0xe5, 0xc0, 0x39, 0xf1, 0x00, 0xd0, 0xf4, 0x60, 0x0c, 0x61, 0x0e, 0x02, 0x09, 0x43, 0x6e, 0xf2, 0xec, 0xe4, 0xd0, 0xbd, 0xb0, 0xba, 0xb4, 0x37, 0xb2, 0xdb, 0x5f, 0x37, 0x08, 0xfd, 0xdf, 0x96, 0x66, 0x0f, 0x6f, 0xb1, 0xa9, 0x0d, 0x60, 0x48, 0xd3, 0x95, 0xaf, 0xaf, 0xa7, 0x60, 0xcc, 0xaf, 0x15, 0xde, 0xaa, 0x0e, 0xff, 0xeb, 0x26, 0xec, 0x17, 0x68, 0x1d, 0x17, 0x2c, 0x13, 0x30, 0xf7, 0x8e, 0x78, 0xa8, 0x73, 0x6b, 0x28, 0x5f, 0x61, 0x5f, 0x15, 0xd4, 0xf2, 0xc3, 0x13, 0xd2, 0x5f, 0x30, 0xae, 0xe9, 0xd1, 0xdb, 0x39, 0xf5, 0x35, 0xfc, 0xdd, 0x0e, 0xbc, 0x8e, 0x71, 0xb8, 0x9c, 0xe6, 0xb3, 0xfc, 0xb5, 0x67, 0xcd, 0x0f, 0xa2, 0x88, 0xf4, 0x8e, 0xd3, 0xa7, 0x59, 0xbb, 0x2e, 0xd2, 0x00, 0xfd, 0xc2, 0x30, 0x91, 0x50, 0x2f, 0xd9, 0xca, 0x65, 0x1c, 0xe5, 0xe3, 0x42, 0x2a, 0x98, 0x33, 0x5a, 0x81, 0xd7, 0x4a, 0x65, 0xcc, 0x15, 0x00, 0xe9, 0x07, 0x0a, 0xbb, 0x60, 0x9c, 0x1c, 0x1f, 0x68, 0xfc, 0x2c, 0xa9, 0x4c, 0xdd, 0x55, 0x0f, 0x99, 0xbc, 0xb2, 0xd0, 0x92, 0x41, 0x6b, 0x9b, 0xd3, 0x88, 0x41, 0x0b, 0x8f, 0xe7, 0x48, 0xfb, 0x8c, 0x9a, 0x5a, 0xb8, 0x61, 0x5f, 0x2e, 0xd9, 0x68, 0xf8, 0x5d, 0xcb, 0x27, 0x27, 0x72, 0x69, 0x84, 0xbe, 0xad, 0xa7, 0xa1, 0x8a, 0xfd, 0xb0, 0xc7, 0x2a, 0xa6, 0x5d, 0xe7, 0xab, 0xb7, 0xa8, 0x6f, 0x11, 0x16, 0x9a, 0x6e, 0xad, 0xf1, 0xc2, 0x1d, 0x61, 0x4e, 0x52, 0xc0, 0xc8, 0xf0, 0x19, 0x74, 0x7d, 0x34, 0x1a, 0x05, 0xd8, 0x5e, 0x37, 0xbf, 0x58, 0xd8, 0x32, 0x7e, 0x99, 0x39, 0xc2, 0x38, 0x7c, 0x27, 0x44, 0xed, 0xf8, 0x38, 0x56, 0x3c, 0xb3, 0x7f, 0x0b, 0x16, 0xe8, 0xa0, 0x6f, 0xc6, 0x28, 0xa9, 0x72, 0x30, 0x50, 0x6f, 0xa4, 0x18, 0x39, 0x54, 0xdc, 0x74, 0x81, 0x5f, 0x3b, 0xe2, 0xeb, 0x2a, 0xff, 0x4a, 0x13, 0xc0, 0x65, 0xf7, 0x43, 0xb7, 0xd8, 0x5d, 0xe8, 0x04, 0xeb, 0x28, 0xef, 0xe5, 0x70, 0xed, 0x5e, 0xcc, 0x71, 0xab, 0xa9, 0x7f, 0x97, 0x63, 0xb4, 0x36, 0x17, 0x32, 0x47, 0xf3, 0x8e, 0x0c, 0xf6, 0x29, 0x72, 0x09, 0xb6, 0x51, 0x28, 0x46, 0x5a, 0x38, 0x26, 0x64, 0xce, 0xd8, 0x01, 0x1f, 0xcc, 0x3d, 0x0e, 0x56, 0x3f, 0x15, 0x5b, 0xc6, 0x3c, 0x94, 0xdd, 0xe7, 0x3c, 0x7b, 0x17, 0x24, 0x7b, 0x8c, 0x3a, 0x4e, 0x80, 0x34, 0xeb, 0xd4, 0x36, 0x46, 0x35, 0x18, 0x5c, 0xe9, 0xc7, 0x08, 0x1d, 0xbd, 0xbe, 0x85, 0x45, 0xf7, 0x9d, 0x01, 0xaa, 0x53, 0x2a, 0x0d, 0xc5, 0x2c, 0xb7, 0x90, 0xa3, 0x1f, 0xc2, 0xff, 0x41, 0xac, 0xeb, 0xad, 0x27, 0xcc, 0xe9, 0x24, 0x45, 0x54, 0xdb, 0x65, 0x2f, 0xa2, 0x87, 0xba, 0xe7, 0xde, 0xcb, 0xcc, 0x8c, 0xe9, 0xe0, 0x1d, 0x1a, 0x88, 0xab, 0x41, 0x2b, 0x6c, 0x65, 0x78, 0x20, 0x3b, 0x42, 0xde, 0xc9, 0x82, 0xb7, 0xf3, 0xb8, 0x23, 0x14, 0xdb, 0x2c, 0xc7, 0xc5, 0xc3, 0xdc, 0x1d, 0x3d, 0x8b, 0x17, 0x14, 0x4d, 0xa7, 0xfe, 0x60, 0xe7, 0xa8, 0x72, 0x5f, 0xd0, 0xa9, 0x7c, 0x61, 0x06, 0x07, 0xcf, 0x41, 0x3c, 0x72, };
21826 static const u8 ed25519_949_test_vectors_expected_sig[] = {
21827 	0x2c, 0x3c, 0x8c, 0xd2, 0x99, 0xc9, 0x06, 0x0b, 0x65, 0x99, 0x9b, 0x03, 0xa6, 0x57, 0x9b, 0xc5, 0x0e, 0xf1, 0xfe, 0x0d, 0x85, 0x1f, 0x23, 0xbe, 0x9c, 0xb5, 0x8f, 0x8f, 0xb8, 0xc6, 0x72, 0xee, 0x08, 0x6a, 0x53, 0x9e, 0xad, 0x94, 0x9e, 0x08, 0x7d, 0xf0, 0x91, 0x12, 0x2d, 0x26, 0xfa, 0xaa, 0xd2, 0x06, 0xa5, 0xc5, 0x2f, 0xcd, 0x58, 0xb5, 0x14, 0xd7, 0xa9, 0x35, 0xbe, 0x01, 0x79, 0x08, };
21828 static const ec_test_case ed25519_949_test_case = {
21829 	.name = "EDDSA25519-SHA512/wei25519 949",
21830 	.ec_str_p = &wei25519_str_params,
21831 	.priv_key = ed25519_949_test_vectors_priv_key,
21832 	.priv_key_len = sizeof(ed25519_949_test_vectors_priv_key),
21833 	.nn_random = NULL,
21834 	.hash_type = SHA512,
21835 	.msg = (const char *)ed25519_949_test_vectors_message,
21836 	.msglen = sizeof(ed25519_949_test_vectors_message),
21837 	.sig_type = EDDSA25519,
21838 	.exp_sig = ed25519_949_test_vectors_expected_sig,
21839 	.exp_siglen = sizeof(ed25519_949_test_vectors_expected_sig),
21840 	.adata = NULL,
21841 	.adata_len = 0
21842 };
21843 
21844 /************************************************/
21845 static const u8 ed25519_950_test_vectors_priv_key[] = {
21846 	0x08, 0xb5, 0xfd, 0x4e, 0x41, 0x9d, 0x23, 0x70, 0xc0, 0xfc, 0xd6, 0xc3, 0xb9, 0x2f, 0x8d, 0xb3, 0xaf, 0xd4, 0x22, 0x68, 0xf5, 0x33, 0x08, 0x5d, 0x9f, 0xce, 0x32, 0xb5, 0x22, 0x82, 0x4e, 0x34, };
21847 static const u8 ed25519_950_test_vectors_message[] = {
21848 	0x3c, 0xee, 0xee, 0xa3, 0x0f, 0xa4, 0x01, 0x56, 0x3d, 0xf3, 0x6b, 0x19, 0x8b, 0x9b, 0x59, 0x69, 0x8c, 0x10, 0xe1, 0x00, 0xa2, 0xf3, 0x0e, 0x6f, 0x78, 0xfe, 0x62, 0xb9, 0x2e, 0xca, 0xc9, 0x89, 0xe8, 0xaa, 0x09, 0xec, 0x76, 0x0e, 0x89, 0xca, 0xc0, 0xa1, 0x6b, 0xde, 0x3c, 0xac, 0x73, 0x62, 0x2a, 0x86, 0x27, 0xef, 0xed, 0xfa, 0x4e, 0xc0, 0x9b, 0x87, 0x3f, 0x7e, 0x10, 0x00, 0xe7, 0x69, 0x82, 0x91, 0x0c, 0xa0, 0xaa, 0x4a, 0xfb, 0x1f, 0xf5, 0xa8, 0x44, 0x8b, 0x76, 0xf7, 0xb0, 0xd2, 0xa2, 0xd5, 0x2a, 0x7f, 0x40, 0xde, 0xde, 0xfc, 0x68, 0xd6, 0x0c, 0xe6, 0x62, 0x2c, 0xa0, 0x80, 0xd6, 0x69, 0x8e, 0xa6, 0xc3, 0xbd, 0x72, 0x10, 0xb3, 0xb6, 0x48, 0xf5, 0x32, 0x52, 0x29, 0x14, 0x94, 0xb3, 0x5a, 0x55, 0xff, 0x40, 0xfa, 0x1a, 0x63, 0x1a, 0x57, 0xc5, 0x10, 0x01, 0x1a, 0x46, 0xbf, 0xb9, 0xe2, 0x71, 0xba, 0xe1, 0xe7, 0x8c, 0xe6, 0xc6, 0xea, 0x60, 0xc5, 0x5b, 0xa0, 0xcc, 0xe3, 0x60, 0x59, 0xbf, 0xb0, 0x1e, 0x39, 0x45, 0x56, 0x98, 0x7f, 0x74, 0x4b, 0x72, 0xae, 0xbb, 0xdb, 0x4b, 0x1b, 0xdb, 0xb3, 0xbb, 0xaa, 0xee, 0x1b, 0x8b, 0x2f, 0x31, 0x74, 0x50, 0x6a, 0x79, 0x3f, 0x0a, 0x51, 0x1b, 0x2b, 0x56, 0x90, 0x49, 0xb3, 0x0a, 0x2e, 0x08, 0x41, 0x42, 0x41, 0x84, 0xa4, 0x8e, 0xca, 0x9e, 0x2d, 0x83, 0x78, 0x3a, 0xc5, 0xb6, 0x1e, 0xb9, 0x47, 0xcb, 0xd8, 0xba, 0xb7, 0xad, 0x38, 0xb0, 0xc6, 0x84, 0x27, 0xd8, 0xf9, 0x4a, 0xe2, 0x85, 0x19, 0x0d, 0xbb, 0x6e, 0x0c, 0x6d, 0x58, 0x0a, 0x25, 0x14, 0x23, 0x94, 0xbe, 0x94, 0x81, 0x58, 0xd8, 0xda, 0x83, 0xb4, 0xf3, 0x4a, 0x8d, 0x25, 0x8b, 0x97, 0x07, 0x56, 0x32, 0xb3, 0xc2, 0x8b, 0xfa, 0xe3, 0x10, 0x5e, 0xd1, 0x87, 0x2e, 0x35, 0x6e, 0x43, 0xae, 0xd5, 0x93, 0x97, 0xb9, 0x11, 0x0b, 0xbf, 0x9d, 0x8c, 0xa2, 0xa0, 0x44, 0xd5, 0x27, 0x1e, 0x6c, 0xc3, 0x61, 0xe1, 0x4e, 0x69, 0xa9, 0x32, 0x51, 0x76, 0x83, 0xec, 0x81, 0x81, 0x8f, 0x02, 0xcf, 0xa0, 0x29, 0x5e, 0x56, 0x61, 0xce, 0xa3, 0xe5, 0x86, 0xaf, 0xc0, 0xdb, 0x41, 0xba, 0x95, 0x55, 0x3e, 0xe7, 0x5b, 0x20, 0x0b, 0x0f, 0x97, 0x90, 0x11, 0x1d, 0x37, 0x57, 0xa7, 0x39, 0xe5, 0x63, 0x55, 0x7a, 0xff, 0x9b, 0x70, 0xca, 0x14, 0xe8, 0x7b, 0x79, 0x54, 0x37, 0xba, 0x91, 0xa9, 0x5d, 0xd0, 0x7e, 0xa6, 0x9a, 0x11, 0x35, 0x9f, 0x36, 0xca, 0x03, 0x29, 0x8e, 0x0b, 0xfa, 0x4f, 0x91, 0x2f, 0x64, 0xa2, 0x92, 0x4a, 0xd9, 0x01, 0x97, 0x5a, 0x2a, 0x96, 0x0b, 0xa1, 0xbe, 0x89, 0x92, 0x1b, 0x1f, 0x54, 0x85, 0x49, 0x6b, 0x7e, 0xa5, 0xda, 0x6d, 0x8a, 0x69, 0x37, 0xac, 0x10, 0x5b, 0xf3, 0x76, 0x0e, 0x48, 0x76, 0x99, 0x0a, 0x0f, 0x5c, 0x5a, 0x63, 0x4f, 0x74, 0xcb, 0x57, 0xdf, 0x7c, 0x17, 0x2c, 0x8a, 0x41, 0x53, 0x72, 0xe6, 0xd9, 0x03, 0x29, 0x87, 0x17, 0x49, 0x96, 0x16, 0xf8, 0x97, 0x1c, 0x68, 0xbb, 0xec, 0xe9, 0x2e, 0xa8, 0x78, 0xa1, 0x8e, 0x23, 0xf3, 0x27, 0xc3, 0x64, 0x9b, 0x6a, 0x85, 0x2e, 0xf2, 0x3b, 0x7b, 0x3e, 0x60, 0x3c, 0xdf, 0x80, 0x45, 0x2d, 0xbf, 0x1b, 0xe2, 0xfb, 0x77, 0xe8, 0x14, 0xd2, 0x52, 0x54, 0x96, 0xbb, 0x31, 0xfb, 0x6e, 0x4e, 0xd2, 0x53, 0x32, 0x48, 0xb3, 0x9d, 0x5f, 0xbe, 0x23, 0x90, 0xa9, 0xb6, 0xfc, 0xca, 0xba, 0x99, 0x7e, 0x8b, 0x49, 0xb5, 0x98, 0x36, 0xe3, 0xe0, 0x95, 0x29, 0xea, 0x5e, 0x41, 0x13, 0xee, 0xe4, 0x51, 0xc9, 0xc6, 0xbb, 0x26, 0x74, 0x1d, 0x0e, 0x4c, 0x58, 0x6f, 0x53, 0xd6, 0x04, 0xc6, 0xea, 0x0c, 0x0e, 0x60, 0xdb, 0x02, 0xe5, 0x10, 0x9f, 0x37, 0x34, 0xf5, 0x1c, 0xdd, 0x89, 0x85, 0xaf, 0xeb, 0x3e, 0xca, 0xff, 0x65, 0xe0, 0x59, 0xe3, 0x12, 0xcd, 0x50, 0xfa, 0x34, 0x9f, 0xf2, 0x8b, 0xdc, 0x9b, 0x70, 0xb7, 0xf5, 0x32, 0xdb, 0xab, 0x1d, 0xf4, 0x3b, 0x03, 0x16, 0x7c, 0x1d, 0x2e, 0x3f, 0xa6, 0xee, 0x8c, 0x9b, 0x17, 0x4a, 0x0b, 0x2c, 0xf8, 0xaa, 0x9f, 0xfa, 0x40, 0x6b, 0xf5, 0xbd, 0x72, 0x88, 0x78, 0x0c, 0x9c, 0x4a, 0x6b, 0x69, 0x79, 0x49, 0xb4, 0x86, 0x38, 0xd4, 0x20, 0x79, 0xc8, 0xc6, 0x6e, 0x14, 0xd9, 0xb5, 0x72, 0xa2, 0x10, 0xa0, 0x93, 0xea, 0xf1, 0xd2, 0xf7, 0xa7, 0x03, 0xb5, 0xcd, 0x20, 0xad, 0xc4, 0xf9, 0x92, 0x7a, 0x6e, 0xa8, 0xea, 0x78, 0xfa, 0xa6, 0x1b, 0xc6, 0x2b, 0x3c, 0x5c, 0xbd, 0x3a, 0x53, 0x25, 0x25, 0x66, 0xd0, 0x43, 0xba, 0x55, 0x65, 0x90, 0xd9, 0xa7, 0x63, 0xbe, 0x7f, 0xea, 0x4b, 0x20, 0xe1, 0xe9, 0xcf, 0xbe, 0xbf, 0xae, 0x15, 0x43, 0x9b, 0x33, 0x4d, 0xc5, 0x39, 0xb1, 0x7d, 0xad, 0xa2, 0xe4, 0x34, 0xe9, 0xc8, 0x32, 0x25, 0xb1, 0xe8, 0xf6, 0xbe, 0xb7, 0xd5, 0x56, 0xb4, 0x7d, 0x7f, 0x69, 0xf7, 0xeb, 0x7d, 0xf5, 0xed, 0xe2, 0xee, 0xbd, 0x84, 0xe2, 0x50, 0xb7, 0xc9, 0x46, 0x8c, 0x21, 0xfd, 0xc0, 0x17, 0x0e, 0xa8, 0xdf, 0x66, 0x2d, 0x61, 0x80, 0x58, 0x1f, 0x65, 0x7f, 0xe7, 0x6c, 0xef, 0x18, 0x58, 0xb6, 0xb0, 0x2f, 0x73, 0x25, 0xc7, 0x21, 0x96, 0x43, 0xfb, 0xa2, 0xf7, 0xe9, 0x96, 0x3a, 0x33, 0x32, 0x2d, 0x65, 0x04, 0xab, 0x91, 0xbf, 0x10, 0xa9, 0x78, 0xfa, 0x07, 0xb4, 0x7d, 0x5d, 0xb0, 0xbe, 0x00, 0x0d, 0xcd, 0x00, 0x2b, 0xdd, 0xaf, 0x67, 0x6b, 0x77, 0x25, 0x9c, 0x9f, 0x60, 0xad, 0x0b, 0x11, 0x67, 0x1c, 0xd5, 0x77, 0x7c, 0x1e, 0x80, 0xb1, 0x3f, 0x82, 0xeb, 0x0f, 0xb6, 0xa1, 0x80, 0xb5, 0x66, 0x62, 0x93, 0xa4, 0x32, 0x40, 0x86, 0x2f, 0xbf, 0xa3, 0x97, 0x8d, 0x95, 0x31, 0x19, 0x71, 0xaf, 0xab, 0x9e, 0x1c, 0xc8, 0xab, 0x14, 0xa8, 0x76, 0xb6, 0x57, 0x2a, 0xc8, 0xa4, 0xb7, 0xe0, 0xb4, 0x0a, 0xaf, 0x6b, 0x52, 0xa1, 0xcf, 0x4c, 0x1e, 0xbc, 0x6c, 0x1c, 0x48, 0x7d, 0xf5, 0xa3, 0xcb, 0xc4, 0x00, 0x5a, 0x0e, 0xe3, 0x29, 0xca, 0xbc, 0x28, 0x6d, 0xb1, 0x0f, 0x17, 0xd0, 0xf1, 0x78, 0x2e, 0x07, 0xd3, 0x32, 0x4f, 0x0c, 0x73, 0xef, 0xbd, 0x3c, 0x2f, 0xb5, 0x2b, 0x71, 0xf9, 0x8a, 0xd9, 0x5d, 0xb9, 0x50, 0x62, 0xd9, 0x14, 0x25, 0xe7, 0x34, 0x67, 0xbc, 0x1e, 0x4e, 0x9b, 0xf5, 0x52, 0xe8, 0xa2, 0x44, 0x29, 0xd9, 0x7d, 0xb1, 0xd6, 0x6d, 0xd4, 0xd9, 0x95, 0xe5, 0xf8, 0xd2, 0x4e, 0x9c, 0x91, 0x0b, 0x2e, 0xb1, 0x75, 0x8e, 0xf7, 0x55, 0x25, 0xc3, 0xd6, 0x5a, 0x3f, 0x43, 0x0a, 0x02, 0x73, 0x48, 0x82, 0x0c, 0xe3, 0x05, 0x3b, 0x6f, 0x3a, 0xf4, 0xec, 0x96, 0xd0, 0x49, 0x37, 0x31, 0xc8, 0x18, 0xc6, 0xb1, 0xa7, 0x0c, 0x25, 0x0a, 0xc6, 0x86, 0xa4, 0xfc, };
21849 static const u8 ed25519_950_test_vectors_expected_sig[] = {
21850 	0x42, 0xa1, 0x37, 0x56, 0xb7, 0x5c, 0x67, 0x22, 0x48, 0x5f, 0xa3, 0xf6, 0x94, 0x04, 0x1b, 0x39, 0xb7, 0xd7, 0xc5, 0xfd, 0x40, 0xeb, 0xc0, 0x6a, 0x52, 0xe0, 0xff, 0x34, 0xce, 0x14, 0xd8, 0xd4, 0x0f, 0xa8, 0x2a, 0x95, 0x08, 0xb5, 0x68, 0x53, 0x7d, 0x26, 0xd0, 0xdd, 0x7c, 0x0a, 0x31, 0xbe, 0x71, 0x0d, 0xa8, 0x0a, 0xab, 0x35, 0x19, 0x6a, 0x03, 0x9b, 0x60, 0x64, 0x1d, 0xb1, 0xe1, 0x01, };
21851 static const ec_test_case ed25519_950_test_case = {
21852 	.name = "EDDSA25519-SHA512/wei25519 950",
21853 	.ec_str_p = &wei25519_str_params,
21854 	.priv_key = ed25519_950_test_vectors_priv_key,
21855 	.priv_key_len = sizeof(ed25519_950_test_vectors_priv_key),
21856 	.nn_random = NULL,
21857 	.hash_type = SHA512,
21858 	.msg = (const char *)ed25519_950_test_vectors_message,
21859 	.msglen = sizeof(ed25519_950_test_vectors_message),
21860 	.sig_type = EDDSA25519,
21861 	.exp_sig = ed25519_950_test_vectors_expected_sig,
21862 	.exp_siglen = sizeof(ed25519_950_test_vectors_expected_sig),
21863 	.adata = NULL,
21864 	.adata_len = 0
21865 };
21866 
21867 /************************************************/
21868 static const u8 ed25519_951_test_vectors_priv_key[] = {
21869 	0x1e, 0x85, 0xc9, 0xe4, 0x51, 0xb7, 0xac, 0xf8, 0x01, 0xd1, 0x6b, 0xc8, 0x26, 0x8e, 0xb4, 0x2a, 0xe8, 0x5c, 0x72, 0xc6, 0x8e, 0x9f, 0x90, 0x92, 0x7a, 0xa0, 0xf3, 0xb5, 0x0b, 0xef, 0xd2, 0x29, };
21870 static const u8 ed25519_951_test_vectors_message[] = {
21871 	0x18, 0x9e, 0xa9, 0xc8, 0xd9, 0xed, 0x14, 0xb0, 0xde, 0x82, 0xb4, 0x4c, 0xbd, 0xd5, 0x87, 0x57, 0xa2, 0x7c, 0x68, 0x38, 0x3f, 0xba, 0x59, 0x77, 0x61, 0xf9, 0xe8, 0x62, 0xe0, 0x8d, 0xe1, 0x5b, 0x1e, 0x44, 0xc3, 0xdb, 0x1b, 0xad, 0xbd, 0xe7, 0x69, 0x80, 0xee, 0x39, 0xe6, 0x99, 0x62, 0x9f, 0x6f, 0xcf, 0xef, 0x32, 0xd3, 0x6b, 0x33, 0x93, 0xda, 0x2c, 0xa5, 0xa8, 0x1f, 0x95, 0x9c, 0x8b, 0x0f, 0x1b, 0x80, 0x1b, 0x5f, 0xa4, 0xc4, 0x7c, 0xa3, 0x95, 0x91, 0xe6, 0x12, 0xa2, 0x43, 0x5c, 0x5b, 0xaf, 0xd7, 0x7a, 0x5c, 0x7a, 0xb7, 0x43, 0x59, 0x21, 0x09, 0x06, 0xf4, 0x75, 0x33, 0xb1, 0x87, 0x9e, 0x2a, 0x5a, 0xf5, 0x86, 0x4d, 0x96, 0x1c, 0x81, 0x46, 0xe2, 0x5d, 0xac, 0x77, 0x25, 0x55, 0xe0, 0x42, 0xa8, 0x87, 0x26, 0x14, 0x19, 0xab, 0x8c, 0x9f, 0x6f, 0x62, 0x56, 0x25, 0x48, 0x1d, 0xa5, 0xb9, 0x35, 0x26, 0xa1, 0x31, 0xf3, 0x7b, 0x53, 0x4a, 0x00, 0x50, 0xa8, 0xa4, 0x62, 0xb3, 0x3f, 0x20, 0xa7, 0xe9, 0x4b, 0x89, 0x15, 0x30, 0xb1, 0x9b, 0xf6, 0x54, 0xee, 0x95, 0x34, 0xc9, 0xa8, 0x36, 0x1d, 0x03, 0x63, 0x5d, 0x8d, 0x27, 0xd4, 0x6b, 0xe7, 0xbf, 0x84, 0x78, 0x1a, 0xd0, 0xd4, 0x2d, 0x1e, 0x7c, 0x48, 0x54, 0xa4, 0x9b, 0xa1, 0xba, 0x45, 0x82, 0x62, 0xfe, 0x5e, 0xa1, 0x90, 0x21, 0xb9, 0x35, 0xa6, 0x94, 0x94, 0x92, 0xd7, 0x0b, 0x60, 0x5e, 0x15, 0x19, 0x89, 0xef, 0x26, 0x41, 0xb2, 0xbf, 0x81, 0xec, 0x4b, 0x92, 0x02, 0x0f, 0xc7, 0x07, 0x4c, 0x2a, 0x63, 0x22, 0x9d, 0x51, 0xa9, 0x44, 0x18, 0x6a, 0x28, 0x89, 0x5e, 0x8e, 0xa9, 0x52, 0x92, 0xc2, 0xf8, 0x72, 0xbb, 0x21, 0xa3, 0x14, 0x93, 0x99, 0xe2, 0x3c, 0xcd, 0x8e, 0x2f, 0xc4, 0xf1, 0x7a, 0x46, 0xb5, 0x9c, 0x28, 0x2c, 0x51, 0xb5, 0x8d, 0x00, 0x26, 0x6a, 0x5c, 0x16, 0xb1, 0xce, 0x35, 0x0d, 0x54, 0x85, 0xe8, 0xd8, 0x01, 0x6d, 0xd0, 0xa5, 0x0a, 0x59, 0x84, 0xcc, 0x94, 0x81, 0x54, 0xcd, 0x5c, 0xe7, 0xcd, 0xa0, 0xee, 0x0a, 0xb1, 0xd7, 0x25, 0x1b, 0xdc, 0x70, 0xa1, 0x78, 0x5b, 0x8e, 0x91, 0x03, 0x91, 0x7f, 0x4b, 0x91, 0x7a, 0xb2, 0xb4, 0x94, 0xf3, 0x48, 0x33, 0x89, 0xa2, 0xf9, 0x23, 0x75, 0x41, 0x84, 0x9e, 0xd3, 0xbd, 0x56, 0x5c, 0xff, 0xac, 0x9e, 0x75, 0x6d, 0xb5, 0x6e, 0xf5, 0xe2, 0x34, 0x95, 0xbc, 0x77, 0x1e, 0x88, 0xbf, 0xfa, 0x87, 0x07, 0xce, 0xea, 0x5c, 0x09, 0xbe, 0xca, 0xdd, 0x05, 0x9a, 0xb8, 0x89, 0xd1, 0xdf, 0x7e, 0x88, 0x7b, 0x71, 0xa9, 0xe6, 0xc2, 0x38, 0x37, 0x8f, 0xbe, 0x0c, 0x36, 0x30, 0x38, 0x66, 0x16, 0x36, 0x3f, 0x20, 0x7b, 0x16, 0xc3, 0x27, 0x0d, 0x39, 0xac, 0xde, 0xd5, 0x11, 0x52, 0x99, 0x92, 0xf4, 0xe5, 0x98, 0x78, 0x91, 0x21, 0xd3, 0x16, 0x13, 0x58, 0x10, 0x63, 0x6b, 0xaa, 0xde, 0x8a, 0x28, 0xed, 0xc6, 0x6b, 0xbf, 0x5e, 0xde, 0x3f, 0x40, 0x4a, 0x70, 0xb4, 0x7d, 0x35, 0x98, 0x8b, 0xe7, 0x06, 0xb4, 0xea, 0xa0, 0x30, 0x23, 0xa3, 0x90, 0x93, 0xd5, 0x83, 0xcd, 0x4c, 0xd8, 0xbf, 0x4c, 0x74, 0x34, 0x1a, 0x02, 0x8c, 0x19, 0xd6, 0x0d, 0xa3, 0x1b, 0x6a, 0x7a, 0x03, 0x4c, 0x08, 0x1a, 0x2b, 0x03, 0x0f, 0xeb, 0x3c, 0xd2, 0xf0, 0x3d, 0x0f, 0xaa, 0xbf, 0xfb, 0x58, 0xe3, 0xfc, 0x36, 0xc0, 0x06, 0xcf, 0xb9, 0x29, 0x47, 0xa7, 0xde, 0x5b, 0xa8, 0x74, 0x76, 0xc1, 0xb0, 0x51, 0xe1, 0x82, 0x83, 0xc0, 0x3e, 0x9c, 0x6e, 0x5a, 0x5c, 0x3c, 0x27, 0x77, 0xd9, 0xa0, 0x75, 0x73, 0x72, 0x37, 0x96, 0x64, 0xe8, 0x2f, 0x84, 0x85, 0x82, 0x4f, 0xed, 0xb7, 0x0a, 0x4b, 0xc4, 0xe3, 0x56, 0xed, 0xd1, 0xb5, 0xce, 0x0f, 0xb6, 0xe4, 0x1d, 0xe0, 0x17, 0x16, 0x21, 0xb8, 0x4f, 0xaf, 0xa0, 0x01, 0x89, 0xaf, 0xa8, 0xa6, 0xa9, 0x00, 0xb1, 0x4c, 0x70, 0x75, 0x8f, 0x7a, 0xa4, 0xfb, 0x82, 0x40, 0x0e, 0x0d, 0x18, 0xab, 0x3c, 0xd7, 0xe4, 0x8a, 0xcf, 0xd4, 0x89, 0xca, 0xb0, 0xe7, 0x2e, 0x71, 0x9f, 0x79, 0xa0, 0x7d, 0x06, 0x6c, 0x53, 0x1a, 0x89, 0x1c, 0x55, 0x29, 0x1f, 0x22, 0x45, 0xdb, 0xbe, 0xe4, 0x4e, 0x52, 0xb1, 0xdf, 0xc8, 0x72, 0x7a, 0xae, 0x38, 0x7a, 0xb9, 0xe7, 0x19, 0x94, 0xa3, 0x85, 0x4e, 0x1a, 0xdd, 0x73, 0xd9, 0xa7, 0x96, 0x5c, 0x77, 0x55, 0x21, 0xc2, 0xf5, 0x40, 0x84, 0x22, 0x76, 0xdd, 0x30, 0x9e, 0x2f, 0x6a, 0x34, 0x1e, 0x7f, 0x0f, 0x37, 0xf2, 0x2b, 0xb6, 0x62, 0x7b, 0x6e, 0x9c, 0xb2, 0x5b, 0xa2, 0x4c, 0x6c, 0x4f, 0x4e, 0xb9, 0xf5, 0xe7, 0x62, 0x2d, 0x88, 0xda, 0x19, 0x84, 0xe2, 0x9c, 0x5d, 0xa0, 0x01, 0x03, 0x9c, 0x44, 0x04, 0x2b, 0x59, 0x35, 0x14, 0x06, 0xa4, 0x13, 0x36, 0xdd, 0x77, 0x2d, 0x49, 0x7d, 0x3f, 0xc8, 0xaa, 0xc4, 0x11, 0x72, 0xeb, 0x5a, 0xa6, 0x41, 0x7f, 0xe4, 0x22, 0xec, 0x7c, 0x15, 0x0b, 0x96, 0xb0, 0x45, 0x4e, 0xe3, 0x31, 0x24, 0x7c, 0xb1, 0x53, 0x8a, 0xef, 0xf3, 0xec, 0xa2, 0xd5, 0x0e, 0x53, 0xd6, 0xd1, 0x31, 0x70, 0xa7, 0x6a, 0x00, 0x49, 0xea, 0x0c, 0x05, 0x90, 0x4a, 0x63, 0x90, 0xed, 0x14, 0xce, 0x74, 0x91, 0xe9, 0x7f, 0x75, 0x4c, 0x52, 0x22, 0xda, 0xc4, 0xb6, 0x11, 0x8b, 0xa3, 0x81, 0xf5, 0x52, 0xe7, 0x3e, 0xa8, 0x49, 0x1e, 0x3b, 0x7a, 0xc9, 0x49, 0x56, 0x9b, 0x56, 0x9c, 0xf2, 0xd2, 0x9a, 0x80, 0x41, 0x0e, 0x06, 0x5b, 0x5c, 0xc4, 0xa4, 0x66, 0xbb, 0x04, 0xeb, 0x7a, 0x15, 0xf5, 0x96, 0x79, 0x2e, 0x84, 0x90, 0xba, 0x70, 0x02, 0xec, 0x36, 0x15, 0x71, 0xaf, 0x5d, 0x8f, 0x57, 0x67, 0x5c, 0x95, 0x64, 0x49, 0x47, 0x0a, 0x2f, 0x99, 0x55, 0x40, 0x73, 0x67, 0xe4, 0x09, 0xa2, 0x32, 0x89, 0x95, 0x53, 0x12, 0x0a, 0x27, 0x7d, 0xb8, 0x63, 0xe9, 0xa8, 0x2d, 0xda, 0xba, 0xe8, 0x7b, 0x78, 0x91, 0x45, 0xba, 0x89, 0x8d, 0xf3, 0xc2, 0x8b, 0x96, 0xfb, 0xe3, 0x01, 0x4c, 0xd0, 0x85, 0xc6, 0xe6, 0x0e, 0xe8, 0x83, 0x17, 0x01, 0x03, 0x6d, 0x99, 0xc5, 0x42, 0x5d, 0x58, 0xe8, 0xbc, 0xc9, 0xfd, 0x92, 0x71, 0xd4, 0x6a, 0xec, 0x1e, 0xb9, 0x55, 0x13, 0x01, 0x02, 0xea, 0xaa, 0xb4, 0x4e, 0x07, 0x70, 0xc3, 0x0b, 0x2b, 0x12, 0x7e, 0xfb, 0x0e, 0x5f, 0x8a, 0x3f, 0x7a, 0x0c, 0xa3, 0x4e, 0xc9, 0x98, 0x4a, 0x46, 0x01, 0x1b, 0xc2, 0x6b, 0xfd, 0xe0, 0xc0, 0x81, 0x9b, 0xb5, 0x47, 0x06, 0xb5, 0x65, 0x63, 0x8b, 0x75, 0x42, 0xdc, 0x4b, 0x8b, 0xf8, 0x09, 0x8d, 0xc0, 0x1f, 0x16, 0x1b, 0x3b, 0x12, 0x96, 0x18, 0xb5, 0x9a, 0xde, 0xd3, 0x3c, 0xb5, 0x9c, 0xe9, 0x18, 0x9a, 0x67, 0x62, 0xdb, 0xae, 0x5b, 0x0d, 0x34, 0xb7, 0x1c, 0x8d, 0xbf, };
21872 static const u8 ed25519_951_test_vectors_expected_sig[] = {
21873 	0x6c, 0x36, 0xda, 0x9a, 0xd6, 0xc4, 0x56, 0x34, 0x3c, 0xe6, 0x42, 0xac, 0xa4, 0x54, 0x92, 0x3a, 0x52, 0xa2, 0x84, 0x4c, 0xe5, 0xee, 0x58, 0x94, 0x7c, 0x8d, 0xf7, 0xba, 0xb2, 0xeb, 0xe4, 0x67, 0x82, 0x3c, 0x56, 0x33, 0xe5, 0x30, 0xb1, 0x67, 0xd7, 0x1c, 0x47, 0xad, 0x95, 0x49, 0xdf, 0x05, 0x94, 0x3f, 0x99, 0x42, 0x1e, 0x17, 0x47, 0x5c, 0x4d, 0x4f, 0x08, 0xde, 0xdf, 0x6f, 0x32, 0x05, };
21874 static const ec_test_case ed25519_951_test_case = {
21875 	.name = "EDDSA25519-SHA512/wei25519 951",
21876 	.ec_str_p = &wei25519_str_params,
21877 	.priv_key = ed25519_951_test_vectors_priv_key,
21878 	.priv_key_len = sizeof(ed25519_951_test_vectors_priv_key),
21879 	.nn_random = NULL,
21880 	.hash_type = SHA512,
21881 	.msg = (const char *)ed25519_951_test_vectors_message,
21882 	.msglen = sizeof(ed25519_951_test_vectors_message),
21883 	.sig_type = EDDSA25519,
21884 	.exp_sig = ed25519_951_test_vectors_expected_sig,
21885 	.exp_siglen = sizeof(ed25519_951_test_vectors_expected_sig),
21886 	.adata = NULL,
21887 	.adata_len = 0
21888 };
21889 
21890 /************************************************/
21891 static const u8 ed25519_952_test_vectors_priv_key[] = {
21892 	0x51, 0xcf, 0x86, 0x8f, 0x82, 0x0e, 0xed, 0xa0, 0xdb, 0xd1, 0x01, 0x80, 0xf7, 0x77, 0xe6, 0x06, 0x5c, 0x93, 0xa4, 0x83, 0xc5, 0x8a, 0x77, 0x8b, 0x67, 0xe7, 0xd8, 0x42, 0x30, 0x2f, 0xb7, 0x67, };
21893 static const u8 ed25519_952_test_vectors_message[] = {
21894 	0x7c, 0x2d, 0x8e, 0xe8, 0x2d, 0x9a, 0xbf, 0x8a, 0xa9, 0xc7, 0x24, 0xc7, 0x5b, 0x90, 0x99, 0x04, 0x73, 0xf1, 0x31, 0x76, 0x3f, 0xe9, 0x3b, 0x30, 0xcb, 0x04, 0x72, 0x35, 0x88, 0x62, 0x1d, 0xa2, 0xa3, 0x27, 0x92, 0x8b, 0x22, 0x64, 0x9f, 0xa0, 0x62, 0xcd, 0xea, 0xbd, 0x77, 0x76, 0x15, 0x38, 0xb2, 0x70, 0x9b, 0x8f, 0xb7, 0xa2, 0x00, 0x6e, 0x50, 0x35, 0x09, 0x13, 0x4c, 0x92, 0x9c, 0x30, 0x11, 0xe1, 0xd7, 0x28, 0xa5, 0x7a, 0x4e, 0x17, 0x51, 0x98, 0x07, 0x5e, 0x21, 0x42, 0x53, 0xf3, 0xf3, 0x0e, 0x01, 0xb6, 0xe0, 0x4e, 0xab, 0xd4, 0xde, 0x06, 0x78, 0x95, 0x58, 0xe6, 0x98, 0xb1, 0x86, 0xef, 0xe3, 0x4b, 0x32, 0x12, 0x95, 0x68, 0xb3, 0xe8, 0xd0, 0xd7, 0xea, 0x3f, 0xf0, 0x0b, 0x3f, 0x25, 0xa4, 0x22, 0x36, 0x89, 0x3a, 0xa8, 0xa4, 0x1b, 0x67, 0x4a, 0x0a, 0xb5, 0xf4, 0x1e, 0x7b, 0x28, 0xcf, 0x5a, 0x7c, 0xb7, 0x65, 0xe1, 0x8e, 0xad, 0x6d, 0xe6, 0xa3, 0x53, 0xa7, 0x82, 0x4a, 0x3c, 0x49, 0x78, 0x60, 0x38, 0xd6, 0xf4, 0x93, 0x7f, 0x32, 0x64, 0xd6, 0xcc, 0xf0, 0xc0, 0xa2, 0x46, 0x5b, 0xb6, 0x93, 0xe5, 0x2b, 0x3d, 0x1e, 0x6e, 0xb9, 0xae, 0x4c, 0xb6, 0x5d, 0x09, 0xcf, 0xf5, 0x48, 0x42, 0xe8, 0x53, 0x62, 0x85, 0x7a, 0x59, 0xf7, 0x19, 0x8a, 0x68, 0x8a, 0x3d, 0xf3, 0x85, 0x13, 0xcd, 0xd6, 0x1e, 0x21, 0xdf, 0xd8, 0x59, 0x14, 0x2c, 0x83, 0x44, 0xa3, 0xb8, 0xb2, 0xa7, 0xc7, 0xdb, 0x17, 0x0f, 0x39, 0xf8, 0x7c, 0xa3, 0xff, 0x8e, 0xd4, 0x27, 0x96, 0x2b, 0x2b, 0x1a, 0x14, 0xd1, 0x22, 0xfa, 0x2d, 0x5a, 0xea, 0x2a, 0x66, 0x40, 0x11, 0x7d, 0xd2, 0x58, 0xfa, 0x0f, 0xc5, 0x4a, 0xc6, 0xe9, 0x40, 0xbc, 0x16, 0xd2, 0x11, 0xec, 0x9a, 0xdf, 0x91, 0x4a, 0xb1, 0x65, 0x78, 0xf5, 0x21, 0xf6, 0x55, 0xd2, 0x12, 0x7e, 0x79, 0xe8, 0x71, 0xbf, 0x7f, 0xa7, 0x54, 0x47, 0x19, 0xd5, 0x8e, 0xd8, 0x47, 0x85, 0x0c, 0xb2, 0x7b, 0x99, 0xeb, 0x8f, 0x29, 0xb1, 0x6c, 0xdc, 0xc2, 0x8b, 0x15, 0xc1, 0x25, 0x9a, 0xb4, 0xd5, 0x89, 0x70, 0x5a, 0x40, 0x66, 0x88, 0xf6, 0x05, 0xa2, 0xeb, 0xf5, 0x80, 0x51, 0xc4, 0x3a, 0x77, 0xc4, 0xe0, 0x1f, 0xd6, 0xf7, 0x49, 0xd3, 0x2d, 0xb4, 0xe8, 0x9f, 0x26, 0x3c, 0x2c, 0x16, 0xde, 0x18, 0x1f, 0x0e, 0x6b, 0xdd, 0x0a, 0x6a, 0x64, 0xff, 0xe6, 0xf1, 0x82, 0x94, 0x44, 0x09, 0x6d, 0x9f, 0x3e, 0x2b, 0x67, 0xe4, 0xbb, 0x00, 0x66, 0x50, 0xb5, 0x92, 0x9d, 0x1f, 0x82, 0xeb, 0x11, 0xbb, 0xed, 0x24, 0xe8, 0xf1, 0x01, 0x8a, 0x73, 0x84, 0x60, 0x5a, 0x3c, 0xf2, 0x9a, 0xb5, 0x98, 0x33, 0x79, 0x39, 0xc7, 0x6a, 0x3b, 0xe8, 0x61, 0xe4, 0x83, 0xc5, 0x80, 0x5e, 0xc3, 0xce, 0xe4, 0x5e, 0x34, 0x24, 0x84, 0x7a, 0x08, 0x55, 0x8d, 0xcc, 0x99, 0x49, 0x9f, 0xb9, 0x38, 0x2a, 0xca, 0xe5, 0x6c, 0xdc, 0x87, 0xfb, 0xd5, 0xb2, 0x6f, 0xf9, 0x4c, 0x86, 0xf2, 0xe1, 0x08, 0x79, 0x43, 0x83, 0x50, 0x1c, 0x8b, 0x33, 0x36, 0x68, 0x50, 0xa7, 0x6a, 0x0d, 0xfc, 0x0a, 0x7c, 0xd7, 0x89, 0xa0, 0x3f, 0x01, 0xa3, 0xe9, 0xd9, 0xe9, 0xae, 0x39, 0xfd, 0x72, 0x45, 0xdc, 0x29, 0x29, 0x9d, 0x24, 0xf3, 0xb4, 0xb1, 0x67, 0xca, 0xcc, 0xd2, 0x23, 0xa9, 0x9b, 0x6b, 0x20, 0xa3, 0xb6, 0x73, 0xdc, 0x5f, 0x74, 0x66, 0xd0, 0xb2, 0xf8, 0x15, 0x09, 0x8a, 0x49, 0x7c, 0xca, 0xf8, 0x04, 0x20, 0x16, 0x8e, 0xdd, 0xbf, 0x4d, 0xa5, 0x7b, 0x86, 0x66, 0xe9, 0xd3, 0x3c, 0x48, 0xeb, 0x30, 0x4b, 0x4c, 0xfc, 0xf4, 0x57, 0xcd, 0x76, 0x59, 0x54, 0x3f, 0x6d, 0x1e, 0x66, 0x18, 0x90, 0xf5, 0x62, 0xb4, 0x3b, 0x8b, 0x6d, 0x1c, 0x4d, 0xcc, 0x07, 0x7b, 0x60, 0xbf, 0xa5, 0x33, 0xff, 0xab, 0x92, 0x8d, 0xbf, 0xd9, 0x55, 0xdc, 0x51, 0x16, 0xd7, 0x70, 0x95, 0x0b, 0x69, 0x0e, 0x21, 0x06, 0xad, 0x52, 0xd4, 0x2c, 0x31, 0xc2, 0x2b, 0x88, 0x48, 0x89, 0x43, 0x32, 0xb5, 0xc6, 0x99, 0xe5, 0xc3, 0x31, 0xfb, 0x38, 0x1e, 0x58, 0x12, 0xe7, 0x52, 0x6f, 0xdf, 0x4b, 0x8a, 0xa2, 0xda, 0xaa, 0x2c, 0xa2, 0xcf, 0xb9, 0xc9, 0x21, 0x11, 0xb6, 0x1c, 0xbc, 0x3d, 0x1e, 0xef, 0x6c, 0x8c, 0x67, 0x37, 0xf0, 0x55, 0x88, 0xf0, 0x44, 0x67, 0xdb, 0x83, 0x30, 0x84, 0x3a, 0xcc, 0x98, 0xdc, 0x1a, 0x16, 0xfb, 0xd9, 0xd9, 0xd9, 0x4b, 0xd8, 0xbf, 0xde, 0x26, 0xc3, 0xf7, 0x1d, 0xee, 0x72, 0xb5, 0x09, 0x10, 0xc3, 0x6b, 0x24, 0x0f, 0x80, 0x2a, 0x61, 0xca, 0x16, 0x37, 0x2f, 0x6f, 0xfa, 0xad, 0xb2, 0xbe, 0x4e, 0x85, 0x3c, 0x5e, 0xd6, 0x9a, 0x3d, 0x1f, 0x6c, 0x7b, 0x2d, 0xe5, 0x13, 0xc5, 0x3a, 0x3f, 0xdd, 0x0a, 0x67, 0x6f, 0x83, 0xd0, 0x9d, 0x5c, 0x51, 0x17, 0x60, 0x47, 0xd9, 0x20, 0x07, 0x16, 0xbf, 0x22, 0xba, 0xe4, 0x5f, 0xe0, 0x1b, 0x3e, 0x0c, 0x2c, 0x51, 0xc1, 0x6e, 0x46, 0xad, 0x06, 0x37, 0xf7, 0x9f, 0x9b, 0x4d, 0x83, 0x86, 0x77, 0x04, 0xfe, 0xda, 0x9f, 0x22, 0x78, 0x31, 0xde, 0xa2, 0x63, 0x39, 0x9c, 0xa2, 0x77, 0x1a, 0x4e, 0x78, 0xb4, 0xdf, 0x8a, 0xc0, 0xde, 0x6a, 0x94, 0x1e, 0xab, 0x37, 0x0b, 0x1f, 0xdb, 0x47, 0xda, 0xf6, 0x64, 0x2a, 0xae, 0xaa, 0x63, 0x17, 0x0f, 0xa9, 0xb3, 0xd1, 0xe1, 0x62, 0x8f, 0x7c, 0x4e, 0x7c, 0xf0, 0xea, 0x8b, 0x8a, 0x8e, 0x51, 0x8c, 0xba, 0xce, 0xf9, 0xad, 0xe8, 0x4d, 0xf0, 0x32, 0x48, 0x48, 0x47, 0xff, 0xb6, 0x1b, 0xbd, 0x07, 0xe8, 0x72, 0x7c, 0xc4, 0xc2, 0x5d, 0xa5, 0x77, 0xb2, 0x64, 0x51, 0x9b, 0x49, 0x99, 0xfa, 0x7c, 0x0b, 0xc3, 0x23, 0xd4, 0xf3, 0xf9, 0x73, 0x9f, 0x78, 0x0b, 0x9b, 0x2c, 0x23, 0xc7, 0x78, 0x55, 0xee, 0x5f, 0x6d, 0xcc, 0x40, 0x15, 0x44, 0xd6, 0xb6, 0x4b, 0x27, 0x70, 0x15, 0x8f, 0xdc, 0x6c, 0x12, 0xf4, 0xd8, 0x9b, 0xeb, 0x04, 0x4e, 0x0e, 0x85, 0xac, 0x7a, 0x68, 0xd4, 0x29, 0x17, 0xb1, 0x34, 0x51, 0x14, 0xb9, 0xa6, 0x72, 0xd1, 0x23, 0x1b, 0x2c, 0x6c, 0x0f, 0x96, 0x9f, 0x20, 0x35, 0x31, 0xe7, 0x1b, 0xbb, 0x40, 0x05, 0xb1, 0x03, 0xa7, 0xdc, 0x3a, 0x58, 0xb5, 0xb8, 0x24, 0xa7, 0xe0, 0x1b, 0x6e, 0xb9, 0xf4, 0x96, 0xdf, 0xa6, 0x4d, 0x64, 0xd8, 0xc6, 0x77, 0x7f, 0x53, 0xaa, 0x58, 0xd5, 0xda, 0x04, 0x6d, 0x72, 0x6f, 0x55, 0x45, 0x4c, 0x88, 0xb6, 0xd7, 0xd4, 0xab, 0x0d, 0x21, 0x98, 0xa8, 0x97, 0x09, 0xf1, 0x18, 0xa6, 0xb3, 0x24, 0x60, 0xb9, 0xeb, 0xce, 0xff, 0x3f, 0xdd, 0xc6, 0x05, 0xda, 0x77, 0xef, 0x3d, 0x1b, 0xa3, 0x0f, 0xec, 0xf0, 0x7b, 0xe2, 0xf5, 0x31, 0x3f, 0x4e, 0xe6, 0x35, 0xaf, 0x5e, 0x95, 0x61, 0xd8, 0x77, 0xe9, 0x9c, };
21895 static const u8 ed25519_952_test_vectors_expected_sig[] = {
21896 	0xe1, 0x53, 0x42, 0xa1, 0x1c, 0xaf, 0x89, 0x28, 0x95, 0xe4, 0x66, 0x22, 0x88, 0x63, 0xd0, 0x83, 0xb0, 0x69, 0x2f, 0x01, 0x06, 0x10, 0x74, 0x8c, 0x23, 0xdf, 0x2f, 0x11, 0xd2, 0x94, 0x75, 0xba, 0xfc, 0xe9, 0x27, 0xca, 0xfe, 0x7f, 0x07, 0xef, 0xb8, 0xc3, 0x47, 0xed, 0x56, 0x63, 0xe7, 0x3b, 0xea, 0x89, 0x53, 0x1c, 0xed, 0xc0, 0xc3, 0x48, 0xe7, 0x9b, 0x6e, 0x58, 0xa7, 0x57, 0x49, 0x07, };
21897 static const ec_test_case ed25519_952_test_case = {
21898 	.name = "EDDSA25519-SHA512/wei25519 952",
21899 	.ec_str_p = &wei25519_str_params,
21900 	.priv_key = ed25519_952_test_vectors_priv_key,
21901 	.priv_key_len = sizeof(ed25519_952_test_vectors_priv_key),
21902 	.nn_random = NULL,
21903 	.hash_type = SHA512,
21904 	.msg = (const char *)ed25519_952_test_vectors_message,
21905 	.msglen = sizeof(ed25519_952_test_vectors_message),
21906 	.sig_type = EDDSA25519,
21907 	.exp_sig = ed25519_952_test_vectors_expected_sig,
21908 	.exp_siglen = sizeof(ed25519_952_test_vectors_expected_sig),
21909 	.adata = NULL,
21910 	.adata_len = 0
21911 };
21912 
21913 /************************************************/
21914 static const u8 ed25519_953_test_vectors_priv_key[] = {
21915 	0x54, 0x3d, 0x5f, 0x1d, 0x4a, 0x6e, 0x10, 0x29, 0xb1, 0x91, 0x41, 0x38, 0xfb, 0x1f, 0x46, 0x59, 0xe6, 0x94, 0x56, 0x55, 0x72, 0x07, 0x40, 0x66, 0x88, 0xa2, 0x03, 0x5c, 0xbb, 0xb2, 0xa6, 0x8a, };
21916 static const u8 ed25519_953_test_vectors_message[] = {
21917 	0xfe, 0x00, 0x57, 0xf0, 0x62, 0xfc, 0x87, 0x13, 0x24, 0xb8, 0xbd, 0x5d, 0x42, 0x7e, 0x9a, 0x52, 0x76, 0x23, 0x1b, 0xd3, 0x09, 0x90, 0x7e, 0x58, 0x81, 0xd7, 0xae, 0x53, 0xb1, 0xf3, 0x70, 0xc2, 0xa4, 0x33, 0x02, 0xa1, 0x65, 0x10, 0xb4, 0x60, 0x64, 0xa3, 0x07, 0x36, 0xba, 0xc9, 0x09, 0x51, 0xf1, 0xd9, 0x88, 0x1a, 0xf6, 0x2c, 0x70, 0x14, 0x83, 0xeb, 0xb9, 0x27, 0x2a, 0xd7, 0x72, 0x12, 0xee, 0xb5, 0xfc, 0xbc, 0x7e, 0xc2, 0x28, 0xd9, 0x69, 0xf8, 0x90, 0x27, 0x32, 0x11, 0x3b, 0x98, 0xe3, 0xbf, 0x82, 0xdf, 0xea, 0xdd, 0x0d, 0xe5, 0xe7, 0x65, 0xd2, 0x87, 0x0b, 0x12, 0xd1, 0xf9, 0xb5, 0xa2, 0x82, 0x97, 0xc9, 0xfd, 0xd1, 0x49, 0x5c, 0xf8, 0x77, 0x89, 0x19, 0x6a, 0x7d, 0x64, 0x4e, 0xec, 0xd9, 0x35, 0x87, 0xdb, 0xf2, 0x0c, 0x28, 0xeb, 0x09, 0xda, 0x28, 0x66, 0x03, 0xc5, 0x82, 0xd2, 0x12, 0x9a, 0x65, 0x7d, 0xb2, 0xd1, 0x7a, 0xdd, 0x35, 0x58, 0xdd, 0xe0, 0x29, 0xce, 0x27, 0xb8, 0x83, 0x52, 0xde, 0x3f, 0x95, 0xab, 0xa1, 0x7e, 0x1e, 0xd1, 0x91, 0x37, 0x22, 0xdb, 0x08, 0xa7, 0x95, 0xdf, 0xbb, 0x70, 0xd6, 0x2a, 0x88, 0x02, 0x72, 0x4c, 0xb0, 0xf5, 0x35, 0xf8, 0x48, 0xd0, 0x52, 0xaa, 0x3d, 0xde, 0x91, 0x66, 0x96, 0x3a, 0x80, 0x41, 0xfc, 0xcc, 0x4e, 0x60, 0xbf, 0xb1, 0x1d, 0xe2, 0xbf, 0x28, 0x6e, 0xb6, 0x02, 0xa4, 0xaf, 0x84, 0x2f, 0x4d, 0x1a, 0x34, 0x0d, 0x78, 0xbb, 0xbc, 0xb2, 0x85, 0x7f, 0x0c, 0x30, 0x8f, 0x44, 0xbb, 0x10, 0x1e, 0x7b, 0xc8, 0xb7, 0x41, 0xd5, 0x06, 0x09, 0x4e, 0x27, 0xbb, 0xaf, 0xa7, 0x24, 0x28, 0xef, 0x66, 0x6e, 0xa6, 0xea, 0x16, 0xf7, 0x99, 0xb4, 0xee, 0x58, 0x27, 0x8f, 0x04, 0x59, 0x74, 0xd8, 0x6d, 0xc7, 0x2c, 0xf5, 0x26, 0x0d, 0x96, 0xf9, 0xc0, 0x9b, 0x2f, 0x11, 0x81, 0xe1, 0xa4, 0x50, 0x0f, 0x92, 0x83, 0xdc, 0x67, 0x7f, 0x38, 0x4f, 0xf6, 0x4e, 0x51, 0xe8, 0x9f, 0x76, 0x58, 0x20, 0x20, 0x32, 0x6c, 0x38, 0x8c, 0x08, 0xa0, 0xfd, 0x00, 0xde, 0x73, 0xd5, 0xd4, 0x9c, 0x06, 0xc0, 0xc6, 0x84, 0x19, 0x1a, 0x26, 0x4f, 0xff, 0x72, 0x6d, 0x87, 0x2d, 0xc3, 0xae, 0x49, 0x6c, 0x7b, 0x47, 0x8c, 0xfc, 0x61, 0xb5, 0x17, 0x14, 0x19, 0x2f, 0x76, 0x46, 0x3e, 0x3d, 0x0a, 0xab, 0x41, 0x0e, 0xa1, 0x15, 0xe8, 0xbe, 0xfe, 0xdb, 0x99, 0x7d, 0xdd, 0x16, 0x99, 0x21, 0xb3, 0x20, 0x7e, 0xa6, 0x6c, 0x1f, 0x59, 0x45, 0x0b, 0x76, 0x23, 0x12, 0x9f, 0xd1, 0xe2, 0xdd, 0x3d, 0xa8, 0xf5, 0x20, 0x63, 0x91, 0x17, 0x13, 0x38, 0xea, 0x0e, 0xc8, 0xef, 0x3c, 0x59, 0xed, 0x8a, 0xfc, 0x69, 0xf3, 0x86, 0x5c, 0x29, 0xa0, 0x72, 0x3a, 0x9b, 0xbe, 0x95, 0xa7, 0x42, 0x68, 0x1e, 0xf9, 0x85, 0x7e, 0x81, 0xab, 0xc8, 0x0c, 0x92, 0xd2, 0xa7, 0x18, 0xa8, 0x04, 0xf5, 0x30, 0x4f, 0xef, 0x3c, 0x63, 0xd7, 0x99, 0xa6, 0xef, 0x87, 0x82, 0xa7, 0xdb, 0x46, 0x68, 0x1d, 0x0d, 0xe3, 0x50, 0x64, 0x46, 0x98, 0x22, 0x67, 0xb2, 0x15, 0x2b, 0x0c, 0x32, 0x18, 0x69, 0xe2, 0x3c, 0xce, 0x8c, 0x4e, 0xbe, 0xbe, 0xaf, 0x4a, 0xa1, 0xeb, 0xe9, 0x28, 0x3b, 0x69, 0x26, 0x05, 0x26, 0x0f, 0xf6, 0x21, 0xb0, 0x3c, 0x10, 0x82, 0x2a, 0xa5, 0xf6, 0xd0, 0x3b, 0xde, 0xf4, 0x9c, 0x46, 0x2a, 0x68, 0xd4, 0x71, 0xe8, 0x49, 0xe1, 0x64, 0xe3, 0x87, 0x4f, 0x6e, 0x9f, 0x6c, 0xb3, 0xb5, 0xf2, 0x93, 0xeb, 0x38, 0xae, 0x52, 0x45, 0xa1, 0x59, 0xec, 0x42, 0x61, 0xa9, 0xbf, 0x6b, 0x5f, 0x7b, 0x76, 0x15, 0xfd, 0x33, 0x9e, 0xa1, 0x27, 0x33, 0x11, 0x3c, 0xe7, 0x67, 0xf8, 0x83, 0xae, 0x66, 0x75, 0x41, 0x7f, 0xc7, 0x70, 0xb5, 0x0b, 0xd6, 0x0e, 0x6f, 0x20, 0xad, 0xdb, 0x29, 0xc1, 0xf7, 0x50, 0x62, 0x33, 0xe3, 0x2a, 0x7e, 0xbf, 0xad, 0xab, 0xff, 0x98, 0xcf, 0xd0, 0x9b, 0x2b, 0x3b, 0xbd, 0x3e, 0xae, 0x00, 0x69, 0x54, 0x8b, 0x9d, 0x89, 0x87, 0xaf, 0x46, 0xca, 0x98, 0xeb, 0x09, 0x5b, 0xac, 0xbd, 0x87, 0x47, 0x24, 0xba, 0x10, 0xf3, 0x63, 0x3a, 0xa0, 0x8a, 0xb6, 0xec, 0x26, 0x49, 0x4d, 0xdf, 0x68, 0x54, 0x30, 0x9b, 0x55, 0xd4, 0x3b, 0xdb, 0xd2, 0x9a, 0x75, 0x56, 0xf1, 0x2d, 0xfb, 0x23, 0xcd, 0x0d, 0xb4, 0xeb, 0x39, 0x37, 0xa6, 0x5c, 0x4a, 0xed, 0x96, 0xe8, 0x7b, 0x34, 0x65, 0x55, 0xf9, 0xfc, 0x68, 0x97, 0x94, 0x3a, 0x0f, 0xae, 0xe6, 0x5c, 0xcf, 0x39, 0x4b, 0xd8, 0x9b, 0x38, 0x1b, 0xee, 0xce, 0x25, 0xd1, 0xba, 0x68, 0xf8, 0xfe, 0x32, 0xc2, 0x3b, 0x33, 0x54, 0xf5, 0xbe, 0x7e, 0x3e, 0xa3, 0xc0, 0xde, 0xc0, 0xf7, 0xec, 0x2d, 0xd8, 0x3f, 0x92, 0xb7, 0x30, 0x58, 0x89, 0x2b, 0x63, 0x8d, 0x4c, 0x3b, 0x72, 0x42, 0xbb, 0x8f, 0x55, 0xbf, 0x08, 0x7b, 0xa4, 0x5a, 0x19, 0x0a, 0x69, 0x8b, 0xae, 0x67, 0x5e, 0x0c, 0xd5, 0xe8, 0x44, 0x6f, 0x2b, 0x21, 0xae, 0xb6, 0x3d, 0x2c, 0xae, 0xa0, 0xf6, 0x79, 0xa8, 0x37, 0xe7, 0x93, 0x57, 0x30, 0x8d, 0x9f, 0x0b, 0x8a, 0xf3, 0x1f, 0x9d, 0x08, 0x00, 0x8c, 0x39, 0xee, 0x8d, 0x34, 0x75, 0x28, 0x71, 0x3c, 0x88, 0x50, 0x01, 0x7a, 0x7f, 0x4a, 0xb9, 0x8a, 0x35, 0xc7, 0x53, 0x19, 0x40, 0xfa, 0x76, 0x21, 0xe6, 0x72, 0x03, 0xee, 0x78, 0x2d, 0xb3, 0xa2, 0xfa, 0xa3, 0x0f, 0x3a, 0xa8, 0x50, 0xa5, 0xff, 0x7a, 0xae, 0xd8, 0x4c, 0x00, 0xff, 0xd2, 0x14, 0xf2, 0xc9, 0x26, 0x17, 0x35, 0xfa, 0xc3, 0x25, 0x9d, 0x50, 0xe0, 0x3c, 0x26, 0x52, 0x50, 0x52, 0x79, 0xd9, 0x12, 0x51, 0x92, 0x7d, 0xe5, 0xe5, 0x6a, 0x8b, 0x90, 0x64, 0xcc, 0xf9, 0xf4, 0x5d, 0xcb, 0xef, 0x46, 0xe1, 0x18, 0x9c, 0xed, 0x2b, 0xc7, 0x9e, 0x6f, 0xf6, 0x52, 0xe6, 0x90, 0x97, 0xac, 0xe5, 0x56, 0x8b, 0xb2, 0xd5, 0xbe, 0xf3, 0xce, 0x21, 0xa2, 0x5b, 0x3f, 0x79, 0xee, 0x27, 0x5e, 0xa3, 0x4e, 0x62, 0x13, 0x80, 0x56, 0x6d, 0x70, 0x4c, 0xd9, 0x3f, 0x24, 0xdd, 0x90, 0x20, 0x93, 0x2c, 0xc0, 0x52, 0x18, 0xc2, 0x3b, 0x5b, 0x22, 0xff, 0xfa, 0x7e, 0x99, 0xee, 0x7f, 0xe4, 0x57, 0x87, 0x6a, 0x5e, 0x33, 0x64, 0xc9, 0xa8, 0xe8, 0xb0, 0x49, 0xcf, 0xa2, 0x09, 0x69, 0x77, 0x4f, 0x50, 0x6d, 0x19, 0x96, 0xcb, 0xe6, 0xef, 0x5a, 0x37, 0x79, 0x3e, 0xcd, 0xb0, 0x4c, 0xfd, 0xea, 0xed, 0x7d, 0xcf, 0x79, 0xab, 0x27, 0x84, 0x74, 0xdd, 0x77, 0x08, 0x22, 0xd4, 0xb3, 0x6f, 0xc6, 0x8e, 0x4b, 0x2d, 0xd6, 0x61, 0xef, 0x99, 0xde, 0x01, 0xde, 0x6e, 0xec, 0x57, 0xfa, 0x57, 0x3e, 0xde, 0x10, 0xfb, 0xbd, 0x5a, 0xc6, 0xfd, 0x6c, 0xd8, 0xbb, 0x4e, 0xee, 0x50, 0x9d, 0xbb, 0x46, 0x10, 0x37, 0x44, 0x01, };
21918 static const u8 ed25519_953_test_vectors_expected_sig[] = {
21919 	0x55, 0x20, 0x11, 0x94, 0x02, 0x6f, 0xd6, 0x44, 0x8b, 0x1d, 0x52, 0xf8, 0x3e, 0xd2, 0x0a, 0xc2, 0x84, 0xe7, 0xe7, 0x7f, 0xa9, 0x2d, 0x52, 0x95, 0xd3, 0x38, 0x25, 0xce, 0xa3, 0xac, 0xa4, 0x7e, 0xc7, 0xaa, 0xca, 0x2f, 0xc0, 0x86, 0x79, 0xf9, 0xac, 0xfc, 0xed, 0xb3, 0x76, 0xfd, 0xa4, 0x61, 0x9b, 0xe3, 0x27, 0x2c, 0x74, 0x45, 0xe8, 0x70, 0x5c, 0x30, 0x61, 0x41, 0xcd, 0xe1, 0x6c, 0x0f, };
21920 static const ec_test_case ed25519_953_test_case = {
21921 	.name = "EDDSA25519-SHA512/wei25519 953",
21922 	.ec_str_p = &wei25519_str_params,
21923 	.priv_key = ed25519_953_test_vectors_priv_key,
21924 	.priv_key_len = sizeof(ed25519_953_test_vectors_priv_key),
21925 	.nn_random = NULL,
21926 	.hash_type = SHA512,
21927 	.msg = (const char *)ed25519_953_test_vectors_message,
21928 	.msglen = sizeof(ed25519_953_test_vectors_message),
21929 	.sig_type = EDDSA25519,
21930 	.exp_sig = ed25519_953_test_vectors_expected_sig,
21931 	.exp_siglen = sizeof(ed25519_953_test_vectors_expected_sig),
21932 	.adata = NULL,
21933 	.adata_len = 0
21934 };
21935 
21936 /************************************************/
21937 static const u8 ed25519_954_test_vectors_priv_key[] = {
21938 	0xf8, 0xd2, 0x57, 0xfd, 0xfc, 0xf9, 0x97, 0x96, 0xf8, 0xce, 0x4d, 0x8a, 0xad, 0xe3, 0xb2, 0x25, 0xa5, 0x3c, 0x26, 0xfe, 0xec, 0xef, 0x39, 0x5b, 0x95, 0x61, 0xd9, 0xd5, 0x87, 0xf5, 0xa3, 0x3c, };
21939 static const u8 ed25519_954_test_vectors_message[] = {
21940 	0x23, 0x3e, 0x1e, 0xf9, 0x01, 0xab, 0xcb, 0x69, 0xfb, 0x48, 0x60, 0x85, 0xd8, 0xdb, 0x02, 0x33, 0xff, 0x78, 0xf3, 0x7b, 0x13, 0x6f, 0x0a, 0xfe, 0x24, 0xf7, 0xda, 0xc1, 0x94, 0x4c, 0x36, 0x78, 0xe7, 0x4f, 0xed, 0x58, 0xa1, 0xad, 0x54, 0x83, 0x5b, 0x7d, 0xbc, 0xb4, 0x6f, 0xff, 0x6c, 0x35, 0x24, 0x31, 0x22, 0x73, 0x30, 0x0b, 0x6d, 0x87, 0x8a, 0x93, 0xe0, 0x60, 0x8a, 0x4a, 0xba, 0xca, 0x4e, 0x31, 0x94, 0x72, 0x2b, 0xb9, 0xe2, 0x3d, 0x17, 0x19, 0x4d, 0x86, 0x67, 0xb8, 0x4f, 0x2d, 0xb0, 0x38, 0xc2, 0x4e, 0xfb, 0x8f, 0x53, 0x40, 0x9c, 0xf5, 0x59, 0x4f, 0xdd, 0xb8, 0xbc, 0xd6, 0x1f, 0x74, 0xcf, 0x07, 0x26, 0xb5, 0x1c, 0x65, 0x1c, 0xe0, 0x1e, 0xb6, 0x6a, 0x59, 0xb4, 0x55, 0xf7, 0xd8, 0xa7, 0xd6, 0x0d, 0x39, 0x27, 0xe0, 0xc6, 0xc5, 0x4b, 0x13, 0x8e, 0x01, 0x92, 0x53, 0x71, 0xd2, 0xd9, 0xd9, 0x62, 0xaa, 0x98, 0x2f, 0x5e, 0x60, 0x85, 0x28, 0x0c, 0xc0, 0x5f, 0x35, 0x69, 0x93, 0x91, 0x1f, 0xd2, 0x03, 0x9d, 0xfc, 0x34, 0x21, 0x17, 0x97, 0x02, 0x91, 0x38, 0x1d, 0x82, 0x02, 0x7d, 0xb3, 0x6c, 0x79, 0x91, 0x00, 0x05, 0x7d, 0x93, 0x52, 0xb2, 0xcd, 0x87, 0x9d, 0x9c, 0x82, 0xaf, 0x73, 0x4b, 0x7f, 0xa2, 0x97, 0xd2, 0x11, 0x49, 0xc9, 0x78, 0xaa, 0x5e, 0x12, 0x5b, 0x20, 0x37, 0x2a, 0x9b, 0x2e, 0x0e, 0xd3, 0x57, 0x33, 0x7e, 0xfa, 0xea, 0x13, 0x91, 0xf3, 0xb9, 0xef, 0x11, 0xe3, 0xe5, 0x13, 0x5b, 0xb7, 0x0b, 0xdb, 0xe3, 0x2a, 0x9b, 0xdb, 0x7c, 0x3c, 0x42, 0xd5, 0xd5, 0x7c, 0xc8, 0xda, 0xb6, 0x81, 0x16, 0x28, 0xa0, 0x10, 0x89, 0x49, 0x5c, 0xb8, 0xa4, 0xa7, 0x6a, 0x48, 0x29, 0x6c, 0xd8, 0xdf, 0xaf, 0xc0, 0x05, 0xad, 0x49, 0xd7, 0x0b, 0xb1, 0x9f, 0xac, 0xa2, 0x08, 0x4a, 0x1b, 0x6f, 0x5e, 0x48, 0xd2, 0x3c, 0x03, 0xfb, 0xcf, 0x6f, 0x10, 0x6d, 0xb7, 0x70, 0xf0, 0x7c, 0x33, 0xe8, 0xe7, 0xf4, 0x75, 0x7d, 0xa9, 0x04, 0xa4, 0x4d, 0xd0, 0xe7, 0x38, 0xf3, 0xd5, 0x73, 0x3a, 0x32, 0x93, 0x75, 0xce, 0xd7, 0x4f, 0x3c, 0x42, 0xbf, 0xcd, 0xbb, 0x91, 0x01, 0x00, 0x45, 0x5d, 0x6a, 0xa7, 0xd2, 0xe3, 0xe3, 0xaa, 0xa5, 0x8a, 0x82, 0x96, 0x30, 0xd3, 0x76, 0xb0, 0xb4, 0x66, 0xdc, 0x85, 0xaa, 0xc4, 0x8f, 0xe2, 0x69, 0x94, 0x6a, 0x7b, 0xc7, 0x2d, 0x91, 0xeb, 0x37, 0xde, 0xd2, 0xf4, 0xa7, 0x7c, 0x68, 0x4b, 0xe0, 0x10, 0x93, 0xfd, 0x12, 0xde, 0x9d, 0x9d, 0x83, 0x19, 0x9c, 0xcc, 0x50, 0x95, 0x9a, 0x48, 0xd6, 0xe9, 0xa4, 0x14, 0x27, 0x56, 0x60, 0x92, 0xf0, 0x4a, 0x0f, 0x95, 0xca, 0x52, 0x37, 0x2e, 0x07, 0x62, 0xb9, 0x66, 0xce, 0x62, 0x32, 0x05, 0x5a, 0x4f, 0xd7, 0x57, 0xc6, 0x1b, 0x8b, 0xad, 0x83, 0xba, 0xef, 0x91, 0xa3, 0xc2, 0x77, 0x2f, 0xb3, 0x2e, 0xad, 0x8f, 0x59, 0x1a, 0xc1, 0xe0, 0x2b, 0xbf, 0x90, 0xa7, 0xf6, 0xc3, 0x90, 0x79, 0xb8, 0x6f, 0xb8, 0x14, 0xcc, 0x24, 0x2e, 0x98, 0x0f, 0x0b, 0x8b, 0x1a, 0x2c, 0xec, 0xb8, 0xe6, 0xd4, 0xe8, 0xa5, 0x21, 0x1b, 0xf8, 0xba, 0xbf, 0x38, 0xe8, 0x29, 0xab, 0x98, 0x83, 0x60, 0x8b, 0xd6, 0xd5, 0x9e, 0xa5, 0xe8, 0x36, 0xa9, 0xb4, 0xa4, 0xfb, 0xed, 0xed, 0x1b, 0xea, 0x2f, 0xfe, 0x97, 0x7e, 0x8c, 0xf3, 0x61, 0x5c, 0xa4, 0xa5, 0x0f, 0xea, 0x1f, 0x05, 0xf1, 0xfe, 0x53, 0xc8, 0xea, 0xc5, 0x00, 0x32, 0x3e, 0x1f, 0x52, 0xa8, 0x06, 0x83, 0x15, 0x39, 0x95, 0x79, 0x88, 0xd7, 0x9a, 0xcc, 0x7b, 0x54, 0xf7, 0xd0, 0x2b, 0x48, 0x0c, 0x46, 0x9f, 0xd6, 0x95, 0x40, 0xfe, 0xa4, 0xbd, 0xd6, 0x8c, 0xbd, 0xc6, 0x8c, 0xf9, 0xc7, 0x87, 0x2f, 0xd7, 0x92, 0x59, 0x1b, 0x01, 0xe9, 0xd9, 0x90, 0x2d, 0x8a, 0x61, 0x4f, 0x4c, 0x21, 0x82, 0x3f, 0x23, 0x50, 0x8f, 0xfd, 0x49, 0xff, 0x21, 0x8b, 0xea, 0x92, 0x2e, 0xc1, 0x41, 0xef, 0xf6, 0x0d, 0xa1, 0x77, 0xcc, 0xad, 0x7d, 0x7b, 0x9d, 0x44, 0x4f, 0x3b, 0x03, 0x45, 0x81, 0x15, 0xf1, 0x16, 0xcc, 0x6e, 0x37, 0x62, 0x5c, 0x39, 0xcb, 0xad, 0xf0, 0x93, 0x62, 0xf3, 0x1d, 0x33, 0xf4, 0xc1, 0x3c, 0x33, 0xb6, 0x29, 0x20, 0x07, 0xf2, 0xca, 0xfd, 0x19, 0x4f, 0x62, 0xc6, 0x43, 0xe7, 0xa2, 0x55, 0x71, 0x56, 0x4f, 0xeb, 0xad, 0x7d, 0x33, 0xe3, 0x64, 0xb6, 0x33, 0xd0, 0x08, 0xb0, 0x90, 0xd7, 0xa0, 0x91, 0x35, 0x8b, 0xc6, 0x9c, 0x56, 0x7b, 0x95, 0x22, 0xb5, 0xc1, 0xcd, 0x01, 0x21, 0x8d, 0x38, 0x52, 0x9a, 0xeb, 0xb0, 0x3d, 0x9c, 0x2a, 0x5e, 0xb2, 0x28, 0x5a, 0x71, 0x76, 0xf9, 0x8c, 0x28, 0x03, 0x6f, 0x21, 0xe1, 0x9e, 0x92, 0xb4, 0x06, 0xe9, 0x48, 0x95, 0xfa, 0x28, 0x1b, 0x35, 0x22, 0x8f, 0xbf, 0x76, 0xe7, 0x3e, 0x17, 0x58, 0xaf, 0x1b, 0x43, 0x4a, 0x4d, 0xf9, 0x8e, 0x8c, 0xc5, 0x56, 0xb9, 0xd8, 0x3f, 0x6b, 0x0b, 0x7f, 0xf5, 0x2c, 0x68, 0x0f, 0x65, 0xef, 0xe4, 0xe0, 0x0c, 0x59, 0xb4, 0x6c, 0xe5, 0x93, 0xbf, 0x98, 0x89, 0x98, 0x05, 0xd0, 0x2b, 0x91, 0x65, 0xb7, 0x42, 0x98, 0x49, 0xe7, 0x39, 0x53, 0x77, 0x0a, 0xe3, 0x93, 0xe4, 0xf1, 0xf9, 0x7c, 0xb9, 0x0c, 0xd6, 0x15, 0x9c, 0xc9, 0x39, 0x52, 0xae, 0x8a, 0x4d, 0x3d, 0x56, 0xa9, 0xa9, 0x5d, 0xf7, 0xcf, 0xab, 0xac, 0xd4, 0xd0, 0x30, 0xd7, 0x36, 0xea, 0x45, 0x4d, 0xfa, 0x4b, 0x4a, 0xed, 0x1b, 0xcd, 0x88, 0x5d, 0x2f, 0xbe, 0xa5, 0xff, 0xa2, 0xcf, 0x29, 0x27, 0xc1, 0x37, 0xc8, 0x6b, 0xe4, 0xfe, 0x01, 0x64, 0x12, 0x62, 0x8f, 0xe7, 0xa0, 0xa0, 0xf0, 0x2b, 0x6b, 0x6a, 0x9a, 0x21, 0x68, 0x93, 0x2b, 0x94, 0x3f, 0xf8, 0xb2, 0x8d, 0xd5, 0x87, 0xe7, 0x72, 0x87, 0x79, 0x0a, 0xaa, 0xa6, 0x9a, 0x98, 0x50, 0x6c, 0x76, 0x4e, 0x6f, 0x5b, 0xa6, 0x33, 0x8c, 0x09, 0xf3, 0x82, 0xe1, 0xb9, 0x87, 0xd9, 0x9f, 0x14, 0xa3, 0xe1, 0x95, 0x8c, 0xb6, 0x2a, 0xe6, 0x70, 0x5a, 0x57, 0x7f, 0x9f, 0xfc, 0x67, 0x30, 0x64, 0x01, 0x12, 0x87, 0x41, 0xa8, 0xd0, 0xaf, 0x03, 0xc0, 0xaa, 0xaf, 0x6a, 0xf0, 0x6b, 0xd8, 0x8e, 0xe4, 0xb0, 0xaf, 0x67, 0x03, 0xe0, 0xea, 0x60, 0xb0, 0x40, 0x9a, 0xce, 0x24, 0x57, 0x2f, 0xb3, 0x86, 0xe0, 0x7e, 0x9c, 0x22, 0xc9, 0x68, 0x6b, 0xdc, 0x66, 0xd4, 0xfc, 0xf3, 0xc7, 0x46, 0x1d, 0x38, 0x33, 0xa4, 0xc3, 0x01, 0x32, 0x43, 0x60, 0x7d, 0x4d, 0x15, 0x82, 0x17, 0x18, 0x73, 0x26, 0xdf, 0x51, 0x72, 0x5a, 0x6b, 0xc5, 0x11, 0x6e, 0x99, 0x0b, 0xef, 0x8a, 0x5a, 0x95, 0x79, 0x60, 0x02, 0x07, 0x20, 0x6b, 0xfc, 0x3a, 0x6d, 0xcf, 0x07, 0x46, 0xef, 0x75, 0x6f, 0xd9, 0x39, 0xe1, 0x87, 0xf6, 0x68, 0x75, 0x07, 0x16, 0xc0, };
21941 static const u8 ed25519_954_test_vectors_expected_sig[] = {
21942 	0x92, 0x35, 0xd4, 0x48, 0x07, 0x86, 0x98, 0x16, 0xe2, 0x8e, 0x42, 0xc8, 0x1c, 0x80, 0x1f, 0xfb, 0x12, 0x1d, 0xe8, 0x26, 0xc0, 0xd3, 0x3d, 0xcc, 0x4a, 0x4e, 0x1c, 0x93, 0x2d, 0x52, 0x28, 0xb6, 0x39, 0xbb, 0x29, 0x4e, 0x16, 0x09, 0x0a, 0x93, 0xd1, 0xf6, 0x90, 0x4a, 0x70, 0x04, 0x22, 0x2f, 0xda, 0x0a, 0x55, 0x44, 0x6d, 0x99, 0x01, 0xc7, 0x23, 0x40, 0x00, 0x7b, 0xb4, 0x5a, 0xe1, 0x03, };
21943 static const ec_test_case ed25519_954_test_case = {
21944 	.name = "EDDSA25519-SHA512/wei25519 954",
21945 	.ec_str_p = &wei25519_str_params,
21946 	.priv_key = ed25519_954_test_vectors_priv_key,
21947 	.priv_key_len = sizeof(ed25519_954_test_vectors_priv_key),
21948 	.nn_random = NULL,
21949 	.hash_type = SHA512,
21950 	.msg = (const char *)ed25519_954_test_vectors_message,
21951 	.msglen = sizeof(ed25519_954_test_vectors_message),
21952 	.sig_type = EDDSA25519,
21953 	.exp_sig = ed25519_954_test_vectors_expected_sig,
21954 	.exp_siglen = sizeof(ed25519_954_test_vectors_expected_sig),
21955 	.adata = NULL,
21956 	.adata_len = 0
21957 };
21958 
21959 /************************************************/
21960 static const u8 ed25519_955_test_vectors_priv_key[] = {
21961 	0x8d, 0xa9, 0xf5, 0x4d, 0xa0, 0xb6, 0xa5, 0xa3, 0x89, 0x85, 0xb8, 0x8b, 0x71, 0x33, 0x9d, 0xc7, 0x38, 0x4c, 0xfd, 0x5a, 0x60, 0xbe, 0xe1, 0x59, 0xc3, 0x94, 0xc2, 0x23, 0x63, 0xbc, 0x7e, 0xdd, };
21962 static const u8 ed25519_955_test_vectors_message[] = {
21963 	0xbd, 0x53, 0xba, 0xba, 0x66, 0x57, 0xd8, 0xdb, 0x8b, 0xec, 0xae, 0x6e, 0xab, 0xff, 0xa5, 0x2b, 0x01, 0x5a, 0x5a, 0x05, 0xfd, 0xd2, 0xe0, 0x70, 0x64, 0x7d, 0xe9, 0x6f, 0x9c, 0xa4, 0xdd, 0x21, 0x9f, 0xe0, 0xda, 0x60, 0x8f, 0xa0, 0x44, 0x7f, 0x46, 0xd1, 0x7c, 0x9a, 0x35, 0x82, 0x44, 0xcd, 0x54, 0x08, 0x59, 0x65, 0x82, 0xcc, 0xd3, 0xcd, 0xd0, 0x15, 0x1d, 0x6f, 0x09, 0x23, 0xe6, 0x3d, 0x16, 0x68, 0x37, 0x84, 0x5f, 0x27, 0x3f, 0xca, 0x7a, 0xf6, 0xc8, 0x9d, 0x8d, 0x52, 0x46, 0x17, 0x5c, 0x21, 0x67, 0xfb, 0xb9, 0xc2, 0xeb, 0xf6, 0xa7, 0x59, 0x54, 0x91, 0xf9, 0x7a, 0x97, 0x13, 0xb0, 0x2b, 0xdf, 0x41, 0x3e, 0x20, 0x9a, 0xb2, 0x2d, 0xb7, 0xdd, 0x2b, 0x37, 0xfc, 0x49, 0x43, 0x69, 0x18, 0xcc, 0xeb, 0xe5, 0x74, 0x6b, 0xc6, 0x4d, 0xdd, 0x6d, 0xce, 0x19, 0xec, 0x45, 0x58, 0xc4, 0x0e, 0x08, 0x96, 0xe2, 0x19, 0x09, 0x28, 0x0c, 0xba, 0x06, 0xd1, 0x6b, 0x72, 0xf3, 0x1d, 0x98, 0x76, 0x85, 0xd0, 0x71, 0xdb, 0x81, 0x55, 0xe9, 0x9e, 0xbc, 0xc6, 0xc8, 0x21, 0xd9, 0x26, 0x83, 0xfd, 0xce, 0xe0, 0x86, 0x68, 0xa5, 0xed, 0x58, 0xf8, 0x39, 0xd9, 0xed, 0xaf, 0xb9, 0xf1, 0x45, 0x9d, 0x48, 0xde, 0x8e, 0x1b, 0xb6, 0xf7, 0xce, 0x84, 0xda, 0x0b, 0xe4, 0x11, 0xc8, 0xf7, 0xbe, 0x1b, 0x9a, 0x24, 0xbc, 0x5d, 0x0f, 0xe3, 0xa9, 0x6b, 0x02, 0x35, 0x07, 0x50, 0xa5, 0xcb, 0x25, 0x0b, 0x49, 0x55, 0x5a, 0x48, 0x76, 0x72, 0xbd, 0xff, 0x3c, 0x3f, 0x78, 0x4e, 0x3f, 0xb6, 0x3c, 0x1c, 0x97, 0xba, 0x6a, 0xe4, 0x3a, 0x10, 0xe1, 0x96, 0xf1, 0x88, 0xdc, 0xc6, 0x35, 0xe2, 0x14, 0xe2, 0x9d, 0xf5, 0x09, 0xe5, 0x60, 0x8a, 0x53, 0x67, 0xaa, 0x28, 0x00, 0xc1, 0xa9, 0x6a, 0xd9, 0x36, 0xa9, 0xe2, 0xa5, 0x79, 0xb8, 0x59, 0x2e, 0xc1, 0x3a, 0x35, 0x93, 0x36, 0xa6, 0x27, 0x88, 0xc3, 0xec, 0x55, 0xc0, 0xff, 0xd6, 0xa7, 0xd4, 0x9e, 0xcb, 0x7c, 0x68, 0x2e, 0xfa, 0x30, 0x81, 0x99, 0xf7, 0x08, 0xd7, 0x9d, 0x0e, 0x88, 0x56, 0x36, 0x6d, 0x26, 0x9f, 0xab, 0x24, 0xeb, 0x1a, 0x07, 0x5c, 0x96, 0xc8, 0x81, 0xca, 0xb8, 0x97, 0x08, 0xce, 0xd2, 0x79, 0x23, 0x0d, 0x3f, 0x1f, 0x3e, 0xe1, 0x73, 0x67, 0x22, 0x83, 0xeb, 0x8d, 0x8a, 0x82, 0x40, 0x38, 0xf6, 0x48, 0xac, 0x43, 0x72, 0x75, 0xd7, 0x5a, 0x0e, 0x15, 0xf7, 0x1c, 0xe5, 0x6a, 0x8a, 0xeb, 0x77, 0x1f, 0x07, 0xa7, 0xf3, 0x2a, 0xfc, 0x9d, 0x61, 0x2a, 0x13, 0xbd, 0x83, 0xb7, 0xf9, 0x39, 0x90, 0xd3, 0x8f, 0xc3, 0xf4, 0xf4, 0xab, 0x8a, 0xa9, 0x43, 0x0c, 0x65, 0x73, 0x6e, 0xb6, 0x4b, 0x16, 0x80, 0x6e, 0x99, 0x5c, 0x1c, 0xe9, 0xdc, 0xf4, 0xc5, 0x54, 0x4e, 0x7b, 0x3d, 0x01, 0x54, 0x1c, 0x57, 0x21, 0xbb, 0x4b, 0xe4, 0xcf, 0x0a, 0xe3, 0x82, 0xa0, 0xc1, 0xb1, 0x69, 0xd8, 0xe4, 0x18, 0xde, 0xfd, 0x55, 0x94, 0x42, 0xac, 0xea, 0x14, 0xb0, 0x0d, 0x70, 0x5b, 0xcf, 0xa7, 0x8b, 0xe0, 0x75, 0x6a, 0x8f, 0x37, 0x7c, 0xbf, 0x18, 0x3b, 0xf2, 0x59, 0x06, 0x87, 0x41, 0x15, 0xd8, 0xce, 0x4c, 0x3b, 0xa8, 0x74, 0x10, 0x29, 0x38, 0xa4, 0xea, 0x16, 0x03, 0x6d, 0x91, 0xa4, 0x2c, 0x5f, 0x8f, 0x18, 0x86, 0x55, 0xca, 0xcb, 0x00, 0xc8, 0x8e, 0x3a, 0x68, 0x50, 0x88, 0x16, 0xe5, 0xe1, 0xc3, 0x1d, 0x27, 0x18, 0x0b, 0xbb, 0xa9, 0x51, 0x8a, 0x96, 0x30, 0x72, 0x6d, 0x7d, 0x04, 0x7d, 0xd8, 0xd2, 0xc0, 0x40, 0x12, 0x19, 0xe1, 0x4e, 0x6b, 0xad, 0xfc, 0x9b, 0x95, 0xb7, 0x7a, 0x6a, 0xce, 0x9b, 0xea, 0x71, 0xd1, 0xb4, 0x7c, 0x21, 0x89, 0x03, 0xa1, 0x15, 0xad, 0x02, 0x9e, 0x7f, 0x20, 0x39, 0xea, 0x23, 0xcf, 0xd1, 0xfa, 0x6a, 0x44, 0xd0, 0x89, 0xfc, 0xac, 0xb6, 0x78, 0x15, 0x3d, 0x67, 0x4c, 0x0e, 0x08, 0x17, 0x64, 0x99, 0x55, 0x95, 0xcb, 0x68, 0x94, 0x89, 0x5f, 0x08, 0xe2, 0x5b, 0x98, 0x4e, 0x3a, 0x69, 0x4c, 0x92, 0xfc, 0x7c, 0xbe, 0x0f, 0xfc, 0x46, 0x97, 0x23, 0x0b, 0xcb, 0x0c, 0xa4, 0x08, 0xc2, 0xd7, 0x08, 0x5c, 0x11, 0xba, 0xde, 0xb3, 0xe6, 0xc0, 0xe7, 0x5e, 0x6c, 0x49, 0x8d, 0xb1, 0xbe, 0xc1, 0xed, 0x2a, 0x3e, 0x24, 0x45, 0xc3, 0x2b, 0x19, 0x13, 0xa8, 0x95, 0x00, 0xf6, 0x9e, 0x7f, 0x23, 0xf4, 0x1d, 0x62, 0xe5, 0xc1, 0x89, 0xf3, 0x9a, 0x05, 0x6c, 0xb9, 0xfc, 0x68, 0xa4, 0x52, 0x02, 0x3a, 0x33, 0x3f, 0x75, 0x22, 0x0c, 0xb9, 0xb9, 0x44, 0x84, 0xac, 0xac, 0x6b, 0xbc, 0x67, 0x1f, 0x59, 0xff, 0xa0, 0x72, 0xb7, 0x1a, 0x18, 0x96, 0xa1, 0xb3, 0x06, 0xe9, 0xdc, 0x55, 0x8d, 0xa0, 0xec, 0x20, 0xf3, 0x73, 0xe4, 0xc3, 0x55, 0xe0, 0xc5, 0xec, 0xcb, 0xbf, 0x13, 0x50, 0xc8, 0xc0, 0x79, 0x14, 0x89, 0x2c, 0x45, 0x4d, 0xef, 0xce, 0xfb, 0x71, 0x7b, 0xe3, 0x4d, 0x08, 0x7a, 0xeb, 0x24, 0x4a, 0x86, 0xff, 0x49, 0xa6, 0xc4, 0x70, 0xaf, 0xb3, 0x6b, 0x40, 0xfe, 0x8b, 0x71, 0xc5, 0x05, 0xa4, 0xff, 0x7a, 0xf2, 0x98, 0x4c, 0x65, 0x28, 0x49, 0x38, 0xec, 0x0e, 0x40, 0x52, 0x31, 0x52, 0x1f, 0x48, 0x10, 0x14, 0x7d, 0xc4, 0xe3, 0x73, 0xfd, 0xab, 0x66, 0x47, 0xb8, 0x6f, 0x79, 0x82, 0x75, 0x02, 0xfd, 0x08, 0x7e, 0x27, 0xf3, 0x10, 0xd6, 0xb3, 0x12, 0x36, 0x31, 0x13, 0x84, 0x21, 0x55, 0xc5, 0x7a, 0x32, 0xba, 0x03, 0xb6, 0xcf, 0xf9, 0x65, 0x53, 0x0b, 0xd7, 0x95, 0xfc, 0x29, 0x2e, 0x24, 0x1c, 0x9b, 0x6c, 0xa0, 0x85, 0x14, 0x00, 0x32, 0xef, 0xe7, 0x46, 0xf3, 0x7d, 0x57, 0xe9, 0x58, 0x42, 0x11, 0x84, 0xb8, 0xa4, 0xc1, 0xa6, 0xa1, 0xe3, 0x7d, 0x45, 0xe0, 0x77, 0x31, 0x98, 0x33, 0x06, 0x8d, 0xdc, 0xb8, 0x9d, 0x38, 0xc7, 0x5b, 0xeb, 0xa1, 0xa6, 0xe8, 0xe4, 0x05, 0x28, 0x88, 0xec, 0x18, 0x16, 0x2d, 0xd6, 0xff, 0x0c, 0x59, 0xa2, 0xfd, 0x0b, 0x47, 0xf3, 0x11, 0x91, 0x95, 0x68, 0x0f, 0xfc, 0xcd, 0xdf, 0x5f, 0x76, 0xb3, 0x5f, 0x02, 0x2a, 0xa6, 0x6b, 0xd1, 0xac, 0x56, 0xf1, 0xae, 0x33, 0x3e, 0x9b, 0x9d, 0x04, 0x6f, 0x0b, 0x79, 0xa8, 0x92, 0xec, 0xc4, 0xf8, 0xd2, 0xf3, 0x1e, 0x17, 0x53, 0x6c, 0x4c, 0x62, 0xa9, 0xb5, 0xe0, 0x63, 0xdd, 0x2d, 0xce, 0x37, 0xd3, 0xd0, 0xac, 0xb4, 0x20, 0x23, 0xeb, 0x2f, 0x2e, 0xa3, 0x29, 0xd3, 0x87, 0x6c, 0x23, 0x86, 0xa0, 0x22, 0x76, 0xff, 0xf9, 0xd3, 0x08, 0xab, 0xba, 0xdb, 0x72, 0x74, 0x30, 0x1a, 0x69, 0x62, 0xec, 0xae, 0xeb, 0x20, 0xbe, 0xf5, 0xe3, 0x6a, 0xff, 0xfc, 0x38, 0x7c, 0xa8, 0xe1, 0x85, 0xe5, 0x62, 0xb8, 0x65, 0xb4, 0x92, 0x04, 0xc1, 0x7b, 0x2a, 0x70, 0x11, 0x9b, 0x06, 0x1c, 0x29, 0xc0, 0xfe, 0x90, 0x04, };
21964 static const u8 ed25519_955_test_vectors_expected_sig[] = {
21965 	0xf6, 0xdc, 0xc2, 0xd2, 0x7b, 0xaf, 0x16, 0xc4, 0xf4, 0x81, 0x7f, 0x87, 0x49, 0x91, 0x57, 0xd3, 0xac, 0x1f, 0x84, 0xed, 0x39, 0x8a, 0x5e, 0x8b, 0x0d, 0x50, 0xf4, 0x2e, 0xdd, 0x73, 0x85, 0xcf, 0x06, 0x33, 0x7a, 0x02, 0x36, 0x10, 0x99, 0x70, 0xb7, 0x9c, 0xa0, 0x9d, 0x7c, 0x98, 0x31, 0xc8, 0x76, 0xa8, 0x02, 0x79, 0x94, 0x21, 0xc2, 0xab, 0xd0, 0x75, 0x87, 0xf5, 0xeb, 0x66, 0x16, 0x0f, };
21966 static const ec_test_case ed25519_955_test_case = {
21967 	.name = "EDDSA25519-SHA512/wei25519 955",
21968 	.ec_str_p = &wei25519_str_params,
21969 	.priv_key = ed25519_955_test_vectors_priv_key,
21970 	.priv_key_len = sizeof(ed25519_955_test_vectors_priv_key),
21971 	.nn_random = NULL,
21972 	.hash_type = SHA512,
21973 	.msg = (const char *)ed25519_955_test_vectors_message,
21974 	.msglen = sizeof(ed25519_955_test_vectors_message),
21975 	.sig_type = EDDSA25519,
21976 	.exp_sig = ed25519_955_test_vectors_expected_sig,
21977 	.exp_siglen = sizeof(ed25519_955_test_vectors_expected_sig),
21978 	.adata = NULL,
21979 	.adata_len = 0
21980 };
21981 
21982 /************************************************/
21983 static const u8 ed25519_956_test_vectors_priv_key[] = {
21984 	0x7a, 0x2e, 0xfd, 0x39, 0x01, 0x24, 0xd3, 0xfb, 0xef, 0xc5, 0x4a, 0x57, 0x71, 0x06, 0xe7, 0x4b, 0x2d, 0x1f, 0x5d, 0xd5, 0x04, 0xc0, 0x50, 0xd0, 0xd3, 0x59, 0xe5, 0x3c, 0x0f, 0x5c, 0x87, 0x2b, };
21985 static const u8 ed25519_956_test_vectors_message[] = {
21986 	0x23, 0x8f, 0xbe, 0x9f, 0xb3, 0x5c, 0x72, 0x5c, 0x6c, 0x1f, 0x32, 0x92, 0x48, 0x09, 0x4b, 0xc7, 0xda, 0x1b, 0x27, 0x3e, 0xdc, 0x76, 0x99, 0xa7, 0xe3, 0x45, 0x2b, 0x57, 0x88, 0xd8, 0x78, 0x67, 0xde, 0xfc, 0x40, 0xa0, 0x05, 0x90, 0xe8, 0x75, 0x80, 0xd2, 0xc0, 0x27, 0x5d, 0xf5, 0xab, 0xcc, 0xe0, 0xe1, 0xaa, 0xa1, 0x82, 0x90, 0xbf, 0x93, 0xb4, 0x4e, 0x5a, 0xd9, 0xd7, 0x60, 0xdd, 0x21, 0xf1, 0xaa, 0xca, 0x38, 0x31, 0x78, 0xf9, 0xff, 0xf9, 0x13, 0x0f, 0x73, 0x18, 0x7b, 0xa9, 0xd3, 0x1e, 0xa3, 0x60, 0x4a, 0x1c, 0xdf, 0x39, 0x11, 0xe1, 0x43, 0x77, 0xa0, 0xce, 0x8b, 0x44, 0x18, 0x9a, 0xda, 0xa7, 0xaa, 0xc2, 0x3b, 0x6c, 0xdc, 0x7a, 0x42, 0x5b, 0x7e, 0xa7, 0x45, 0x50, 0x84, 0x55, 0x70, 0x4f, 0x9a, 0xd7, 0xa8, 0x95, 0x27, 0x18, 0xc3, 0x98, 0xb4, 0x21, 0xb6, 0xe0, 0x9c, 0xb7, 0x8c, 0xb5, 0x2a, 0x18, 0x14, 0xee, 0x2e, 0x96, 0x39, 0xec, 0x68, 0xd3, 0x61, 0xf0, 0xa3, 0x20, 0x41, 0xd6, 0xe7, 0x42, 0x5b, 0x4b, 0xb3, 0x3c, 0x70, 0x19, 0x6e, 0x24, 0x00, 0xeb, 0x81, 0x2d, 0xb8, 0x50, 0x6c, 0x9f, 0x32, 0x45, 0xbd, 0x98, 0x8f, 0xbc, 0x89, 0x1b, 0xe2, 0x0c, 0xb0, 0x69, 0x15, 0x59, 0xfc, 0x91, 0x6b, 0x57, 0xff, 0x96, 0xc9, 0xb1, 0x44, 0x89, 0xe0, 0x99, 0x3c, 0xb7, 0x39, 0xa3, 0x9d, 0xa2, 0x46, 0xd0, 0x1a, 0x6e, 0xbd, 0x07, 0x58, 0x35, 0x81, 0xf2, 0x50, 0xbf, 0x48, 0x0b, 0xc4, 0x4b, 0x2c, 0x33, 0x91, 0x54, 0x2d, 0x59, 0x5e, 0x4d, 0x39, 0x94, 0x90, 0x19, 0x5f, 0x84, 0x45, 0xdf, 0x63, 0x8f, 0x34, 0x69, 0x8f, 0x1a, 0x96, 0xed, 0x27, 0xb3, 0x53, 0x3e, 0x3e, 0xb6, 0x7e, 0x8f, 0x86, 0x58, 0x65, 0xfa, 0x95, 0x55, 0xed, 0x34, 0xdf, 0x11, 0x15, 0x76, 0x41, 0xa0, 0x0e, 0x6d, 0x60, 0xcf, 0x62, 0x3f, 0xec, 0x1a, 0x92, 0xb8, 0x7a, 0x15, 0xd7, 0x65, 0x18, 0x5f, 0xd9, 0x05, 0x5a, 0xcb, 0x38, 0xd7, 0x5c, 0x99, 0xdb, 0x4f, 0xce, 0x7b, 0x0e, 0x39, 0xfd, 0xc3, 0xf8, 0x51, 0xda, 0xf6, 0x5c, 0x7a, 0x33, 0xf4, 0x64, 0x81, 0x69, 0x31, 0x83, 0x9f, 0xef, 0xe8, 0xe5, 0x8d, 0x9a, 0xb7, 0x42, 0xb8, 0x61, 0x87, 0x3f, 0xd2, 0x29, 0x18, 0x9e, 0x59, 0xcd, 0x4c, 0xe8, 0x23, 0x9f, 0xc9, 0x54, 0x3f, 0x53, 0x9d, 0x2d, 0x29, 0x61, 0x14, 0x26, 0x6e, 0xa8, 0xc6, 0xfd, 0x15, 0x2a, 0xc6, 0xb3, 0x42, 0xe5, 0xd1, 0xa5, 0x57, 0xab, 0x35, 0xca, 0xc5, 0x1e, 0x2d, 0x12, 0x12, 0xee, 0x31, 0x7c, 0x4d, 0x26, 0x71, 0x68, 0x29, 0xe2, 0x57, 0x46, 0xdf, 0x17, 0xd2, 0xa6, 0x22, 0xc2, 0x43, 0xf3, 0xec, 0xbb, 0x65, 0xf5, 0x7a, 0xb0, 0xf4, 0x27, 0x0e, 0x3d, 0x06, 0x68, 0xa9, 0x62, 0x50, 0x22, 0x45, 0xb9, 0x4c, 0x06, 0xdf, 0x0c, 0x5e, 0x39, 0xe3, 0x53, 0xaa, 0x84, 0x2e, 0xa0, 0x80, 0xcf, 0x50, 0x27, 0x08, 0xb1, 0xdd, 0xa2, 0xd0, 0x01, 0x82, 0x4d, 0xe4, 0x58, 0xd3, 0x77, 0x62, 0xaf, 0x2c, 0xdf, 0xd5, 0xa6, 0xd3, 0xf3, 0x5e, 0x08, 0xa1, 0x8e, 0x14, 0xaa, 0x7a, 0x64, 0x2c, 0x51, 0xe4, 0x04, 0x7e, 0x63, 0x75, 0x17, 0x84, 0x6d, 0xf6, 0x46, 0xd0, 0x73, 0x36, 0xfb, 0x17, 0x24, 0x34, 0xe0, 0x88, 0x3e, 0x2b, 0x77, 0xd8, 0xed, 0x1c, 0x52, 0xc9, 0xcc, 0x63, 0x6a, 0x56, 0xa1, 0x9e, 0x57, 0xa5, 0xf1, 0x61, 0xb9, 0x2d, 0x1d, 0xcb, 0xfa, 0x49, 0x6f, 0x34, 0x4a, 0xe6, 0xd4, 0xdf, 0xdc, 0x95, 0x69, 0xad, 0xe4, 0x57, 0xa4, 0x90, 0x91, 0x36, 0x2e, 0x5a, 0x0c, 0xdd, 0x81, 0xb3, 0x75, 0x32, 0x43, 0xfd, 0xac, 0x30, 0xa2, 0xd2, 0x7e, 0xa0, 0x26, 0xa5, 0xe6, 0x01, 0x44, 0x1e, 0xcd, 0x55, 0x37, 0xa7, 0x20, 0x1b, 0xdc, 0xb7, 0xfd, 0x58, 0xb2, 0x40, 0xd0, 0x22, 0x9f, 0xdd, 0x9b, 0xab, 0xf1, 0x12, 0xb5, 0x69, 0x48, 0x12, 0x25, 0x0e, 0x76, 0x8d, 0x7c, 0x0c, 0xe6, 0xca, 0x56, 0x5a, 0xd0, 0x6a, 0xb8, 0xf7, 0x8a, 0x5c, 0x99, 0x50, 0xee, 0xf5, 0x38, 0x72, 0x6f, 0x57, 0x6c, 0x4b, 0xd2, 0xe0, 0x75, 0x5c, 0x7f, 0x98, 0x39, 0x29, 0x37, 0x2a, 0x5f, 0xe1, 0x1c, 0x73, 0xf9, 0xe1, 0xfa, 0x45, 0x3a, 0xb5, 0x4b, 0x58, 0x17, 0xaa, 0xd3, 0x59, 0x67, 0x56, 0x12, 0x7d, 0x84, 0xe3, 0x11, 0x94, 0x53, 0xe8, 0x82, 0x5b, 0xb8, 0x46, 0x0d, 0x85, 0x1f, 0x1f, 0x7e, 0x4a, 0x28, 0x38, 0xa2, 0xbe, 0x78, 0x6b, 0x23, 0x35, 0x04, 0xa6, 0x91, 0xdb, 0x0f, 0xa2, 0x2a, 0x5f, 0x41, 0xfe, 0x3f, 0xd3, 0xc9, 0xb5, 0x38, 0xb0, 0x4f, 0x40, 0x9e, 0x09, 0x18, 0x09, 0x48, 0x6b, 0x28, 0xad, 0x0d, 0xed, 0xa7, 0xb3, 0x8a, 0x42, 0xce, 0xfc, 0x48, 0xde, 0x7d, 0x86, 0x79, 0xc0, 0x3b, 0xf8, 0x77, 0x23, 0x85, 0x11, 0x82, 0x0d, 0x07, 0x70, 0xcc, 0x8d, 0x7b, 0x41, 0x72, 0x37, 0x78, 0x23, 0xa0, 0xb9, 0x91, 0x49, 0xab, 0xb8, 0x91, 0x8b, 0xfb, 0x66, 0xd5, 0xab, 0xfc, 0xd1, 0x00, 0x60, 0xb0, 0x5c, 0xb4, 0xf2, 0x39, 0xdd, 0x42, 0x81, 0xd9, 0x34, 0x83, 0x50, 0x4b, 0x73, 0x1e, 0xaf, 0x5a, 0xdd, 0x51, 0x5f, 0x1f, 0x3c, 0x3b, 0x52, 0xb4, 0xe3, 0xbd, 0xaf, 0x97, 0x6a, 0x17, 0xb3, 0xc9, 0xec, 0x61, 0xbf, 0xc8, 0xe7, 0x71, 0x16, 0x71, 0x58, 0x04, 0x53, 0x2c, 0xf2, 0xdb, 0xf2, 0x0b, 0x7b, 0xa5, 0xea, 0xd8, 0x5a, 0xfb, 0x95, 0x2b, 0xee, 0xc2, 0xfc, 0xcf, 0xf8, 0x5f, 0xf5, 0x07, 0x2b, 0xa4, 0xed, 0x6b, 0x54, 0x38, 0xab, 0x15, 0x20, 0xc6, 0xef, 0x4b, 0x0b, 0x26, 0xf1, 0x2e, 0x84, 0xae, 0xdd, 0x65, 0xce, 0x5c, 0x7b, 0xbe, 0x6a, 0xcb, 0x67, 0x72, 0xf5, 0x93, 0xa6, 0xb4, 0xf8, 0x1d, 0xdd, 0x9d, 0x50, 0x27, 0x46, 0x50, 0x50, 0x47, 0xc8, 0x12, 0xa0, 0x06, 0x7a, 0xfc, 0xeb, 0x8d, 0xc9, 0xbf, 0xf3, 0x0d, 0x40, 0x87, 0xf8, 0xd5, 0xa3, 0x75, 0xec, 0xa6, 0x05, 0xa0, 0x62, 0x27, 0x84, 0xd8, 0xfe, 0xa2, 0x78, 0xcd, 0x1a, 0x52, 0x41, 0xad, 0x4b, 0x3f, 0x1b, 0x91, 0x4f, 0x74, 0xf7, 0x3b, 0xc3, 0x6e, 0xe7, 0xcc, 0x82, 0xd9, 0x6e, 0xfd, 0xa6, 0x3a, 0x3b, 0x67, 0x99, 0x73, 0x0f, 0x20, 0x65, 0x6c, 0x12, 0x35, 0x6c, 0x79, 0x06, 0x9b, 0x2b, 0xe6, 0xf9, 0xb7, 0x7b, 0xe1, 0x01, 0x98, 0x31, 0x18, 0x82, 0x3e, 0xa6, 0x6e, 0x7c, 0x20, 0x98, 0xfb, 0xc7, 0x2f, 0xc9, 0xc0, 0x39, 0xdf, 0xe3, 0x0f, 0x2d, 0xab, 0xa1, 0x3c, 0x3b, 0xde, 0xfb, 0x8a, 0x78, 0x0b, 0xeb, 0x5c, 0xb1, 0xb6, 0xc2, 0x86, 0xa6, 0xb3, 0xef, 0x48, 0xfd, 0x15, 0xc6, 0x6c, 0x04, 0x5b, 0xa2, 0x9f, 0x09, 0x70, 0x41, 0x3b, 0x98, 0x8d, 0x0e, 0xa0, 0x04, 0xab, 0x84, 0xc9, 0x39, 0x19, 0xf0, 0x4f, 0x9b, 0xf8, 0xca, 0xf5, 0x8c, 0x4e, 0xb4, 0x78, 0xf3, 0x58, 0xef, 0x8b, 0x68, };
21987 static const u8 ed25519_956_test_vectors_expected_sig[] = {
21988 	0xc2, 0x8b, 0x34, 0x80, 0x48, 0x05, 0xd8, 0x1f, 0x7a, 0xef, 0x78, 0x49, 0x70, 0x67, 0x0e, 0xda, 0xa4, 0x17, 0x23, 0x2b, 0xcc, 0x67, 0xda, 0x9b, 0x51, 0xe9, 0xc3, 0xd7, 0x4f, 0xc4, 0x99, 0x1b, 0xde, 0x97, 0xa0, 0x6b, 0xd5, 0x3f, 0xa0, 0x0b, 0xb4, 0x40, 0xfd, 0x56, 0x16, 0xcd, 0x0d, 0xe6, 0xe9, 0xb0, 0xd1, 0x9f, 0x2f, 0x68, 0xbf, 0xaf, 0x9d, 0x4c, 0x51, 0x72, 0xc4, 0xe5, 0x20, 0x0a, };
21989 static const ec_test_case ed25519_956_test_case = {
21990 	.name = "EDDSA25519-SHA512/wei25519 956",
21991 	.ec_str_p = &wei25519_str_params,
21992 	.priv_key = ed25519_956_test_vectors_priv_key,
21993 	.priv_key_len = sizeof(ed25519_956_test_vectors_priv_key),
21994 	.nn_random = NULL,
21995 	.hash_type = SHA512,
21996 	.msg = (const char *)ed25519_956_test_vectors_message,
21997 	.msglen = sizeof(ed25519_956_test_vectors_message),
21998 	.sig_type = EDDSA25519,
21999 	.exp_sig = ed25519_956_test_vectors_expected_sig,
22000 	.exp_siglen = sizeof(ed25519_956_test_vectors_expected_sig),
22001 	.adata = NULL,
22002 	.adata_len = 0
22003 };
22004 
22005 /************************************************/
22006 static const u8 ed25519_957_test_vectors_priv_key[] = {
22007 	0xef, 0x36, 0x48, 0xcb, 0xe7, 0x34, 0x02, 0xab, 0x45, 0x0c, 0xd6, 0xec, 0x37, 0xe5, 0x45, 0xd0, 0xcd, 0x2c, 0x99, 0x9e, 0xcc, 0x1f, 0xa3, 0x81, 0xa4, 0x5c, 0x66, 0x0e, 0x18, 0x53, 0x30, 0x32, };
22008 static const u8 ed25519_957_test_vectors_message[] = {
22009 	0x6a, 0x93, 0x37, 0x8f, 0x88, 0x0c, 0xf0, 0xff, 0xdb, 0x8e, 0x07, 0xd6, 0x83, 0xcc, 0x35, 0x2e, 0x2a, 0x10, 0x33, 0xc4, 0x50, 0xba, 0xa0, 0xe8, 0xc4, 0xe1, 0x62, 0x05, 0xfd, 0x0c, 0x02, 0x74, 0x3b, 0x0e, 0xa0, 0x64, 0x97, 0x1d, 0x91, 0x1e, 0x49, 0x47, 0x13, 0xe6, 0xd9, 0x4a, 0x02, 0x17, 0x2e, 0xd0, 0x14, 0xd5, 0x06, 0x59, 0x2e, 0xc6, 0xc7, 0x0a, 0x9c, 0x97, 0x85, 0x52, 0x46, 0xbf, 0x3d, 0x26, 0xf3, 0xcf, 0x74, 0xf4, 0x93, 0xc1, 0xb6, 0x97, 0xa0, 0xc4, 0x14, 0x16, 0x0c, 0x34, 0x14, 0x12, 0x83, 0x09, 0x85, 0x43, 0x08, 0x06, 0xa0, 0xcb, 0x3c, 0x84, 0x75, 0xe7, 0xe5, 0xa9, 0x73, 0x68, 0x6c, 0x24, 0xd5, 0xef, 0x1b, 0xe7, 0xd0, 0x06, 0x50, 0x96, 0xfe, 0xb5, 0x2e, 0xab, 0x26, 0x0b, 0x5c, 0x48, 0x8a, 0xf0, 0x92, 0x70, 0xde, 0x6d, 0xec, 0xd3, 0x3f, 0xea, 0x85, 0x89, 0xdd, 0x10, 0x21, 0xba, 0xf4, 0x1e, 0x3f, 0x25, 0x5f, 0xb8, 0xfa, 0x19, 0x16, 0xeb, 0xd8, 0x53, 0x1e, 0xeb, 0x2f, 0x88, 0x6b, 0xb3, 0xb3, 0xb0, 0x4f, 0x9a, 0xf6, 0xb2, 0x76, 0xc3, 0x59, 0x23, 0xf1, 0x0d, 0x3a, 0x0a, 0xf1, 0xe3, 0xf5, 0x8b, 0x0d, 0x15, 0xae, 0xd1, 0x65, 0x04, 0x5f, 0x20, 0x6f, 0x3f, 0x43, 0x0a, 0xbd, 0xff, 0x09, 0x44, 0x90, 0x97, 0xe4, 0xb2, 0x6d, 0x00, 0xa8, 0xf9, 0xf1, 0xe8, 0xf7, 0xa1, 0x9f, 0x38, 0x58, 0x81, 0x24, 0xc3, 0x28, 0xec, 0x43, 0xa9, 0xcf, 0xb4, 0x3d, 0x3b, 0x2c, 0x6b, 0xdf, 0x6a, 0x3c, 0x1a, 0x10, 0x2e, 0x0e, 0x33, 0x3d, 0xe1, 0xac, 0x21, 0x4a, 0x6d, 0xf7, 0x6d, 0xab, 0x44, 0xba, 0x76, 0xbf, 0x03, 0x52, 0x73, 0xb7, 0xff, 0x62, 0x38, 0xec, 0x82, 0x48, 0x3b, 0x2d, 0x2d, 0x9d, 0x54, 0x29, 0x1a, 0x72, 0x27, 0x0f, 0x88, 0x93, 0x3b, 0x78, 0x6c, 0xac, 0x05, 0x1d, 0x99, 0x0b, 0x3c, 0xf7, 0x40, 0x84, 0x5f, 0xed, 0x3a, 0x67, 0x86, 0x7d, 0x7c, 0x7c, 0x05, 0x67, 0x4e, 0x7c, 0xb0, 0x2c, 0xa5, 0xb7, 0xac, 0xdf, 0xba, 0x38, 0x52, 0x80, 0x3a, 0x3d, 0x56, 0xc4, 0xd5, 0xc1, 0x3b, 0xb1, 0xd7, 0x72, 0x34, 0x67, 0x74, 0x1e, 0xac, 0x1f, 0x2a, 0x7a, 0xcd, 0x3a, 0x95, 0xf3, 0xa5, 0x16, 0x10, 0xa4, 0x86, 0xfc, 0x53, 0xa9, 0x85, 0x16, 0x28, 0xc5, 0x57, 0xd3, 0x6d, 0x8a, 0x4c, 0xd3, 0x7a, 0xae, 0x9c, 0x41, 0x74, 0xdb, 0xbd, 0xb6, 0xbd, 0x88, 0x5c, 0xf4, 0x0b, 0x38, 0x2b, 0x8d, 0xed, 0x24, 0xa4, 0x52, 0x2a, 0x27, 0x8f, 0xef, 0x76, 0xc4, 0x53, 0x19, 0x06, 0x7e, 0x55, 0x28, 0x6e, 0x7b, 0x08, 0xc6, 0x03, 0x48, 0x6e, 0x38, 0xa0, 0xac, 0xf4, 0x7e, 0xde, 0xf8, 0x48, 0xec, 0xbe, 0x94, 0x2e, 0xce, 0xad, 0xb8, 0x63, 0x6c, 0x83, 0x3f, 0xeb, 0x88, 0x2a, 0x51, 0xa4, 0x59, 0x5e, 0x24, 0xf6, 0x07, 0xca, 0x3c, 0x9d, 0xa1, 0xb2, 0x40, 0x4c, 0xe5, 0xc7, 0x47, 0xe0, 0x62, 0x64, 0x17, 0x4d, 0x64, 0x50, 0x43, 0x31, 0x70, 0x9b, 0xef, 0x30, 0x05, 0x5a, 0x5d, 0x69, 0x5e, 0x09, 0x53, 0x7c, 0x8f, 0x8c, 0x1e, 0x5a, 0x3a, 0x5d, 0xb0, 0x65, 0x99, 0xe3, 0x19, 0xdf, 0xdb, 0x28, 0x72, 0x96, 0x65, 0x27, 0x3b, 0xf8, 0x68, 0x95, 0x5e, 0xa5, 0x64, 0x27, 0xf0, 0x8b, 0xac, 0xd7, 0x77, 0xf1, 0x79, 0xb3, 0x02, 0xf3, 0xf6, 0x8d, 0x04, 0xf3, 0xf3, 0x88, 0x3d, 0x34, 0x49, 0x55, 0xb6, 0x55, 0xdd, 0xc6, 0xd5, 0x28, 0x2b, 0x6d, 0x4d, 0xf1, 0xd8, 0x36, 0x30, 0x21, 0x0e, 0x69, 0x91, 0x78, 0xe1, 0x1f, 0x72, 0x2e, 0x9e, 0x5c, 0xda, 0x67, 0x28, 0x92, 0xae, 0x9b, 0x23, 0xe8, 0x16, 0x9c, 0xbb, 0x54, 0x80, 0x93, 0xb8, 0x3e, 0x64, 0x3e, 0xb4, 0x99, 0xd9, 0x37, 0xd2, 0x8f, 0x38, 0x11, 0x59, 0x7b, 0x64, 0x84, 0x10, 0x2f, 0x0c, 0x8e, 0xb8, 0xc8, 0x88, 0x8c, 0xda, 0xc2, 0x29, 0xae, 0xbf, 0x89, 0x08, 0x6a, 0x64, 0x95, 0xac, 0x55, 0x1f, 0x3b, 0xbd, 0xf2, 0xd1, 0xc9, 0xa9, 0x3e, 0xd1, 0xd3, 0xa8, 0x61, 0xee, 0xcd, 0x9e, 0xb8, 0x39, 0x94, 0x9b, 0xfb, 0xe6, 0xa4, 0xf6, 0xe6, 0x48, 0x6e, 0xde, 0xda, 0xb5, 0x22, 0x9d, 0x53, 0x2b, 0x58, 0x97, 0x6d, 0x67, 0x51, 0x2f, 0x9f, 0x71, 0xae, 0x79, 0xb4, 0x14, 0x5c, 0xa2, 0xfa, 0x49, 0x7a, 0x16, 0x5f, 0x11, 0x07, 0x17, 0x66, 0x6c, 0xa3, 0x34, 0x0b, 0xbd, 0xa8, 0xdf, 0x1f, 0x82, 0xb8, 0xc0, 0x54, 0xcf, 0x76, 0x54, 0xc3, 0x56, 0x90, 0x16, 0x8f, 0x96, 0x27, 0x7d, 0x41, 0xc1, 0xc2, 0x36, 0xb6, 0x81, 0x98, 0x17, 0x3c, 0x6e, 0x2b, 0x0a, 0x20, 0x8e, 0xf8, 0x3c, 0x02, 0xa4, 0x3e, 0x47, 0x3d, 0x90, 0x68, 0x6a, 0xce, 0x75, 0xb5, 0xbd, 0x32, 0x1b, 0x3f, 0x54, 0x28, 0x13, 0x27, 0xa6, 0x73, 0xca, 0xd4, 0xd4, 0xad, 0x30, 0x40, 0xd4, 0x8c, 0xf4, 0x93, 0xea, 0x23, 0x1b, 0x3f, 0xec, 0x06, 0xf3, 0x99, 0x32, 0xd7, 0xf7, 0x0a, 0x38, 0x42, 0x8d, 0xf8, 0xfe, 0xe4, 0x37, 0x05, 0x32, 0xae, 0x5f, 0xb1, 0x12, 0x05, 0x9f, 0x0a, 0x1d, 0x4f, 0xbe, 0x11, 0xb5, 0xa2, 0x3b, 0xb8, 0x76, 0x35, 0x42, 0x9e, 0xd3, 0x3a, 0xd1, 0xf6, 0x14, 0x80, 0x14, 0xcb, 0xc1, 0x60, 0xd9, 0x3c, 0xa2, 0x59, 0x20, 0x53, 0xa6, 0xe9, 0x53, 0x78, 0xd6, 0xcd, 0x3f, 0x50, 0xdb, 0x52, 0xbe, 0x92, 0x8e, 0x40, 0x92, 0xfe, 0x5d, 0x2b, 0x70, 0x95, 0xa9, 0x56, 0x68, 0x64, 0xad, 0xfd, 0xa5, 0x9f, 0xd5, 0xf2, 0xfb, 0x62, 0x54, 0xbd, 0x59, 0x17, 0xb7, 0x0f, 0xa1, 0x46, 0x99, 0x66, 0x5a, 0x37, 0x29, 0x7c, 0x98, 0x3c, 0x1b, 0xb9, 0xef, 0xe1, 0xc6, 0x7b, 0x41, 0x3d, 0xd1, 0xa8, 0x53, 0x0c, 0xbf, 0x22, 0x72, 0x97, 0xa8, 0xbb, 0xf9, 0x3a, 0x8a, 0x02, 0x45, 0x4e, 0x8e, 0x46, 0x1a, 0xc2, 0x12, 0xb8, 0x46, 0xa7, 0x0d, 0x5d, 0x56, 0xd6, 0xc3, 0xa6, 0xe6, 0x5a, 0x03, 0xbe, 0x05, 0x80, 0x21, 0x9b, 0xdd, 0xec, 0x88, 0xd4, 0x03, 0x89, 0x11, 0xfd, 0x95, 0x74, 0x56, 0x3f, 0x33, 0xe0, 0xf9, 0xe6, 0x04, 0x46, 0x88, 0xd3, 0xdd, 0x48, 0xfa, 0xc7, 0x03, 0x86, 0x9a, 0xa0, 0x9d, 0x96, 0xef, 0xee, 0x7d, 0x6c, 0x68, 0x07, 0x1d, 0x99, 0x22, 0xd5, 0xe8, 0xed, 0x8d, 0xc4, 0x0f, 0x1b, 0x79, 0x8f, 0x1c, 0x58, 0x0f, 0x78, 0x59, 0xcb, 0x84, 0xf1, 0xe1, 0x4b, 0x5e, 0x74, 0xdd, 0xea, 0x16, 0xad, 0x5c, 0xbe, 0xea, 0x4c, 0x48, 0xfb, 0xcf, 0xfd, 0x29, 0x53, 0x1a, 0xcc, 0xc0, 0x63, 0x39, 0x38, 0xe3, 0xbc, 0xb2, 0x21, 0x26, 0x76, 0xb6, 0x1e, 0xf9, 0x01, 0xe9, 0xc8, 0x31, 0xa4, 0x17, 0x74, 0xd8, 0x31, 0x7e, 0xf3, 0x5a, 0xf7, 0x69, 0x90, 0xbd, 0x24, 0x93, 0x1f, 0xde, 0x6d, 0x40, 0x7e, 0x22, 0xe7, 0x63, 0xcf, 0x6a, 0x57, 0x90, 0xb2, 0x37, 0x61, 0x90, 0x8e, 0xee, 0x60, 0x96, 0x37, 0xa2, 0xc1, 0x10, 0x59, };
22010 static const u8 ed25519_957_test_vectors_expected_sig[] = {
22011 	0xf6, 0x70, 0x79, 0x29, 0x42, 0xec, 0x41, 0x44, 0x28, 0x47, 0x56, 0x38, 0x85, 0x3c, 0x42, 0x72, 0x8e, 0x86, 0xba, 0x12, 0xbb, 0xe8, 0x59, 0x48, 0xb3, 0x91, 0x34, 0xcf, 0x6e, 0x2b, 0xd1, 0x28, 0x13, 0xe0, 0xd8, 0x3e, 0x51, 0xe6, 0x57, 0xc9, 0x01, 0x07, 0xad, 0x93, 0xa4, 0x78, 0x8a, 0xa3, 0x83, 0x13, 0xfa, 0x96, 0x2f, 0x67, 0x67, 0xa8, 0xf7, 0x80, 0x5b, 0xde, 0x65, 0xca, 0x42, 0x0d, };
22012 static const ec_test_case ed25519_957_test_case = {
22013 	.name = "EDDSA25519-SHA512/wei25519 957",
22014 	.ec_str_p = &wei25519_str_params,
22015 	.priv_key = ed25519_957_test_vectors_priv_key,
22016 	.priv_key_len = sizeof(ed25519_957_test_vectors_priv_key),
22017 	.nn_random = NULL,
22018 	.hash_type = SHA512,
22019 	.msg = (const char *)ed25519_957_test_vectors_message,
22020 	.msglen = sizeof(ed25519_957_test_vectors_message),
22021 	.sig_type = EDDSA25519,
22022 	.exp_sig = ed25519_957_test_vectors_expected_sig,
22023 	.exp_siglen = sizeof(ed25519_957_test_vectors_expected_sig),
22024 	.adata = NULL,
22025 	.adata_len = 0
22026 };
22027 
22028 /************************************************/
22029 static const u8 ed25519_958_test_vectors_priv_key[] = {
22030 	0x2c, 0x8e, 0xe7, 0xfa, 0x9b, 0xa2, 0x8c, 0xe7, 0x04, 0x96, 0x76, 0x08, 0x7b, 0x11, 0x63, 0xb2, 0x41, 0x11, 0x8d, 0x34, 0xcd, 0xf5, 0x34, 0xae, 0xbe, 0x8b, 0xa5, 0x92, 0x82, 0xa6, 0x2a, 0xc2, };
22031 static const u8 ed25519_958_test_vectors_message[] = {
22032 	0x07, 0x66, 0x9a, 0x89, 0x64, 0xf0, 0x63, 0x80, 0xd2, 0xd4, 0x98, 0x2c, 0xb6, 0x34, 0x9d, 0xe5, 0x50, 0xb3, 0x8c, 0xbc, 0x35, 0xdb, 0x2c, 0xe5, 0x72, 0xde, 0x88, 0x7f, 0x66, 0x30, 0x55, 0x73, 0x6f, 0xaa, 0xc7, 0xec, 0x07, 0xc3, 0x2d, 0xf6, 0x0e, 0xe2, 0x59, 0x84, 0x22, 0xbf, 0x37, 0xe7, 0xcf, 0x31, 0x9a, 0xb3, 0xc9, 0x05, 0x56, 0x08, 0xca, 0x0c, 0x49, 0x75, 0x7d, 0x76, 0x88, 0xe2, 0x01, 0x3b, 0x82, 0x44, 0xf3, 0x54, 0x04, 0xf4, 0x5a, 0xc2, 0x19, 0x49, 0x7f, 0xe9, 0x24, 0xde, 0x93, 0xa5, 0x8d, 0x0f, 0x72, 0x1a, 0xed, 0x78, 0x25, 0xf6, 0x3b, 0x26, 0x67, 0x07, 0x7c, 0x16, 0x1e, 0xb4, 0xdd, 0x8b, 0xf7, 0xdd, 0xbd, 0xbb, 0xc1, 0x9a, 0x9e, 0xae, 0x59, 0x78, 0x97, 0x8d, 0x5a, 0xeb, 0x33, 0xa0, 0x6d, 0xde, 0x18, 0xe6, 0x12, 0xe0, 0x5b, 0xdb, 0xca, 0xe0, 0x16, 0x1a, 0xa2, 0x38, 0x90, 0x38, 0x02, 0x64, 0x29, 0x96, 0x0d, 0xda, 0x3a, 0xa1, 0x7e, 0x96, 0x7d, 0x10, 0x77, 0x3c, 0xa4, 0x97, 0x35, 0xd8, 0xec, 0xd7, 0x40, 0x9b, 0xe1, 0x65, 0xc0, 0x9b, 0xb0, 0xb5, 0x09, 0x69, 0x1d, 0x59, 0x1c, 0x18, 0x5c, 0x93, 0xcd, 0xee, 0xae, 0x95, 0x35, 0x23, 0x16, 0x54, 0x46, 0x80, 0x52, 0x38, 0x21, 0x45, 0x8c, 0xac, 0xcf, 0x52, 0x8a, 0xc0, 0x45, 0x4e, 0x4c, 0xdd, 0xc6, 0xdf, 0x0d, 0x1e, 0xa5, 0xf1, 0xf5, 0xcc, 0x1e, 0xee, 0xe0, 0x5e, 0x19, 0xa2, 0xad, 0x0b, 0x6a, 0x49, 0x73, 0x6e, 0xd8, 0x55, 0x23, 0x36, 0xfc, 0xfc, 0xad, 0xbd, 0x93, 0x1b, 0x0b, 0x8e, 0x96, 0x3b, 0xe0, 0x5c, 0x8e, 0x70, 0x37, 0x38, 0x85, 0x52, 0x51, 0x2b, 0x68, 0x23, 0x58, 0x3e, 0x4a, 0x14, 0x38, 0x4c, 0xef, 0x50, 0x29, 0x23, 0x2d, 0x3e, 0x0b, 0xaf, 0xe4, 0x66, 0x35, 0x1b, 0x4b, 0xb3, 0xf5, 0x67, 0x54, 0x5a, 0xb4, 0x1f, 0xa4, 0x6b, 0xff, 0xaf, 0xa8, 0x77, 0xa1, 0x2b, 0x38, 0xa2, 0x7a, 0xbd, 0x64, 0xf7, 0x7f, 0xbb, 0x4d, 0xb4, 0x66, 0xff, 0x7f, 0x70, 0x65, 0x04, 0x14, 0x1d, 0x3a, 0xdd, 0x0d, 0x73, 0x72, 0xf1, 0x6f, 0xe3, 0xd8, 0xc6, 0x9f, 0x62, 0x99, 0xd9, 0x39, 0x66, 0xd6, 0x24, 0xa3, 0x07, 0x0e, 0xad, 0xb8, 0xb4, 0x9f, 0x29, 0xfa, 0xb4, 0x84, 0x4c, 0x75, 0x28, 0xa2, 0xa4, 0x0b, 0x66, 0x98, 0x70, 0x60, 0x69, 0x5c, 0xaa, 0x66, 0xb8, 0x67, 0x18, 0xc5, 0x10, 0x49, 0xac, 0xf4, 0xcf, 0xad, 0x38, 0x53, 0xed, 0xb4, 0x92, 0xe3, 0x68, 0xcb, 0xd0, 0x73, 0x96, 0x8e, 0xca, 0xa4, 0xa1, 0xee, 0x60, 0x46, 0xb5, 0xe8, 0x26, 0xe9, 0x01, 0xf4, 0xa8, 0x08, 0xc0, 0x42, 0x7c, 0x02, 0x6f, 0xe2, 0xf7, 0xb2, 0xe1, 0x96, 0x86, 0x67, 0xb5, 0x3a, 0x7d, 0x36, 0xd7, 0x02, 0xf2, 0xff, 0x82, 0xc6, 0x42, 0xd3, 0x49, 0x19, 0xf8, 0xe9, 0xaa, 0xaf, 0xe4, 0x62, 0xa3, 0xd4, 0xf9, 0x26, 0x92, 0xde, 0xac, 0x75, 0x2b, 0xe3, 0x48, 0xf5, 0x4c, 0xf0, 0x89, 0xdd, 0x9c, 0xd0, 0x51, 0x84, 0x6b, 0x04, 0xb7, 0x19, 0x31, 0xe1, 0x9e, 0x89, 0xd1, 0x25, 0x86, 0x4b, 0xfa, 0x89, 0x48, 0xac, 0xe0, 0xef, 0xf3, 0x3c, 0x45, 0x11, 0x05, 0x69, 0xa0, 0xdf, 0x37, 0x53, 0xf4, 0xc5, 0x8d, 0x80, 0x02, 0xb5, 0xbc, 0x38, 0x10, 0x2e, 0xc2, 0xec, 0xf6, 0x95, 0xfa, 0xfa, 0x89, 0x16, 0xda, 0x90, 0x02, 0x38, 0x7e, 0x44, 0xf9, 0x6d, 0xab, 0xf8, 0xa9, 0x82, 0xc5, 0x3c, 0x9b, 0xad, 0xbc, 0x37, 0xbd, 0xe4, 0x37, 0xf1, 0x46, 0xf7, 0x7d, 0x8f, 0x7b, 0xaf, 0x12, 0x87, 0x31, 0x96, 0xb0, 0xc3, 0x61, 0x93, 0xaf, 0x55, 0xf5, 0x42, 0xd9, 0x96, 0x8a, 0xed, 0x80, 0x69, 0xab, 0x9f, 0xbc, 0xd6, 0x81, 0x4e, 0xc4, 0x72, 0x79, 0x9a, 0xd0, 0x9c, 0x73, 0x0d, 0x41, 0xed, 0xde, 0xca, 0x3b, 0x62, 0x69, 0xd3, 0x1a, 0xb5, 0x23, 0xb5, 0x95, 0x47, 0x07, 0x73, 0x76, 0x34, 0x5b, 0x05, 0xf2, 0xae, 0x69, 0xb4, 0xee, 0x72, 0x8c, 0x86, 0x3d, 0x1b, 0xc0, 0x4e, 0x9b, 0x7d, 0x3d, 0x0f, 0xcc, 0xeb, 0x35, 0x9c, 0xbd, 0x08, 0x58, 0x59, 0x7a, 0xf2, 0xd6, 0x06, 0x3e, 0x25, 0x3f, 0xae, 0x2c, 0x3f, 0x25, 0x03, 0x4c, 0x33, 0xed, 0x59, 0xed, 0xd2, 0x78, 0x28, 0x68, 0x29, 0x86, 0x81, 0xca, 0xf5, 0x64, 0xdb, 0x8d, 0x19, 0x36, 0x6f, 0x34, 0xea, 0xe8, 0x5b, 0xa7, 0x3c, 0x1e, 0x23, 0x89, 0xb0, 0xdd, 0x78, 0xa9, 0xd2, 0xca, 0xa0, 0xf2, 0x3c, 0x9a, 0xd5, 0xf6, 0xcd, 0x9f, 0x2c, 0x4a, 0xd5, 0xd5, 0x89, 0x46, 0xad, 0xb7, 0x18, 0xcb, 0x83, 0xda, 0x58, 0xe2, 0xfc, 0xbb, 0x60, 0x25, 0xbe, 0xf4, 0x66, 0x0a, 0x83, 0xe0, 0xaf, 0x55, 0xe2, 0x03, 0x08, 0x02, 0x93, 0x2f, 0x2a, 0x89, 0x6a, 0x09, 0x60, 0x79, 0xb7, 0x54, 0xc9, 0x9f, 0x7b, 0x64, 0x23, 0xb4, 0x5a, 0x86, 0x47, 0x2e, 0x67, 0x23, 0xef, 0x88, 0x96, 0xc4, 0x32, 0x4c, 0x73, 0xd3, 0x4a, 0xd5, 0x8a, 0x4c, 0x01, 0xb3, 0x8a, 0x97, 0xc7, 0x3b, 0xe5, 0xaa, 0x7f, 0x74, 0xa2, 0xfa, 0x4d, 0x07, 0x95, 0xaf, 0x6d, 0xbf, 0xcd, 0x6d, 0x4e, 0xb4, 0x42, 0xa7, 0xe2, 0x04, 0xdb, 0x4e, 0xcb, 0x1f, 0x8a, 0x22, 0x6b, 0xdf, 0xa2, 0x1b, 0x6e, 0xb1, 0x71, 0xc9, 0xe5, 0x9f, 0x1a, 0x19, 0x2e, 0x23, 0xa7, 0x6c, 0x35, 0x2b, 0x04, 0xd8, 0xa8, 0x02, 0x33, 0x98, 0x5b, 0x77, 0xa2, 0x9c, 0x02, 0x01, 0x19, 0xce, 0x65, 0x1c, 0x7f, 0x41, 0x83, 0xd0, 0xe9, 0xc1, 0x9f, 0xe1, 0x8a, 0xa1, 0x02, 0x0c, 0x25, 0xe4, 0x58, 0x9d, 0xee, 0x34, 0xb9, 0x01, 0xbd, 0xaf, 0x9f, 0xf9, 0x45, 0x0c, 0x91, 0xaf, 0x3c, 0x1d, 0xb6, 0x70, 0xb4, 0x77, 0xe0, 0xac, 0x21, 0x07, 0x69, 0x6c, 0x9e, 0xc0, 0xd3, 0x1d, 0x82, 0x64, 0x7b, 0x68, 0xea, 0x19, 0x49, 0x9f, 0xe3, 0x4a, 0x8e, 0x2e, 0x7b, 0x37, 0x8d, 0xc7, 0xe7, 0x54, 0x24, 0xe8, 0xc4, 0x56, 0x45, 0xb0, 0xc2, 0x81, 0x8e, 0x9f, 0x88, 0x5a, 0x1c, 0x58, 0x41, 0x5b, 0xba, 0x1c, 0x3f, 0x2a, 0x77, 0x54, 0x9b, 0xdc, 0x46, 0x80, 0xdb, 0xcd, 0x16, 0x50, 0xc7, 0x5d, 0x0f, 0x45, 0x2a, 0x6b, 0x20, 0x85, 0x91, 0xdf, 0x0f, 0xa6, 0xe1, 0x81, 0xda, 0x2a, 0xbf, 0xab, 0x44, 0x46, 0x21, 0xd5, 0xf7, 0x7c, 0x2c, 0xd7, 0x95, 0x56, 0x46, 0x72, 0x46, 0x44, 0x7a, 0x89, 0xf0, 0xaa, 0xac, 0xad, 0x66, 0x0c, 0x9a, 0x92, 0x5e, 0xba, 0xfb, 0xad, 0x43, 0xc4, 0x78, 0xa3, 0xc8, 0x50, 0xa2, 0x7e, 0x01, 0x01, 0x9d, 0x88, 0xa5, 0xb1, 0xdc, 0x81, 0xb5, 0xd2, 0xe9, 0xf7, 0x40, 0xa0, 0x28, 0xcc, 0xb7, 0x2c, 0x1a, 0xcf, 0x89, 0x7e, 0xa5, 0xad, 0x89, 0xe0, 0xf9, 0x44, 0x88, 0x88, 0xd5, 0xb1, 0x5c, 0xe6, 0xe4, 0x29, 0x77, 0xf7, 0xa7, 0x29, 0x15, 0x5a, 0x28, 0x4d, 0x11, 0x87, 0x58, 0xac, 0x65, 0xf3, 0xfb, 0xb9, 0x8d, 0xeb, 0x65, };
22033 static const u8 ed25519_958_test_vectors_expected_sig[] = {
22034 	0xca, 0x0b, 0xb6, 0xc1, 0x23, 0x56, 0x55, 0x5f, 0x6e, 0x1d, 0x8f, 0x5c, 0x8a, 0xa7, 0xb5, 0xe8, 0x0c, 0xd2, 0x80, 0xe8, 0xb1, 0xb9, 0xba, 0x2e, 0xc9, 0x55, 0x0f, 0x62, 0x2f, 0x48, 0x2c, 0x3a, 0x9a, 0xd3, 0xbe, 0x03, 0xa4, 0xc9, 0xdf, 0xc1, 0x0d, 0x01, 0x12, 0xb0, 0x18, 0x9d, 0xe9, 0x4b, 0xff, 0xaf, 0xd7, 0x03, 0x41, 0x14, 0xe0, 0xe0, 0xd4, 0x2c, 0x23, 0xf3, 0x2d, 0xc8, 0x18, 0x07, };
22035 static const ec_test_case ed25519_958_test_case = {
22036 	.name = "EDDSA25519-SHA512/wei25519 958",
22037 	.ec_str_p = &wei25519_str_params,
22038 	.priv_key = ed25519_958_test_vectors_priv_key,
22039 	.priv_key_len = sizeof(ed25519_958_test_vectors_priv_key),
22040 	.nn_random = NULL,
22041 	.hash_type = SHA512,
22042 	.msg = (const char *)ed25519_958_test_vectors_message,
22043 	.msglen = sizeof(ed25519_958_test_vectors_message),
22044 	.sig_type = EDDSA25519,
22045 	.exp_sig = ed25519_958_test_vectors_expected_sig,
22046 	.exp_siglen = sizeof(ed25519_958_test_vectors_expected_sig),
22047 	.adata = NULL,
22048 	.adata_len = 0
22049 };
22050 
22051 /************************************************/
22052 static const u8 ed25519_959_test_vectors_priv_key[] = {
22053 	0xdd, 0xd8, 0xe9, 0xff, 0x85, 0x56, 0x79, 0x89, 0x6a, 0x13, 0x97, 0xb4, 0x27, 0xdb, 0x85, 0x43, 0xab, 0xe8, 0xbb, 0x5d, 0xd1, 0x22, 0xe3, 0xe3, 0x02, 0xcc, 0xfc, 0xe5, 0xfd, 0xc6, 0x3e, 0x12, };
22054 static const u8 ed25519_959_test_vectors_message[] = {
22055 	0x5e, 0x8f, 0xee, 0xc5, 0x09, 0x35, 0x0d, 0x2e, 0xe7, 0x95, 0x5b, 0x6f, 0x3e, 0x27, 0x82, 0x78, 0xa4, 0xcb, 0x48, 0xae, 0x72, 0xb4, 0x65, 0x89, 0xe4, 0x78, 0xbe, 0x59, 0x74, 0x7d, 0xf5, 0x39, 0x4a, 0x16, 0x9f, 0x19, 0xe1, 0x0d, 0xb5, 0x32, 0x02, 0xa6, 0xa5, 0x23, 0x20, 0xb6, 0x3a, 0x9a, 0x2b, 0x72, 0x3f, 0xd3, 0x1a, 0xa2, 0xdb, 0x6d, 0x58, 0xc5, 0x73, 0x32, 0xda, 0x31, 0x78, 0xbc, 0xf9, 0x66, 0xc5, 0x3a, 0xbd, 0xa3, 0x5f, 0x12, 0xda, 0xef, 0x9e, 0xdc, 0xf3, 0x99, 0xe4, 0xa8, 0xc5, 0xf8, 0x3d, 0x36, 0xf4, 0x4a, 0x17, 0xd7, 0x98, 0x46, 0xbf, 0xc9, 0x6c, 0xe6, 0x90, 0x19, 0x4c, 0x21, 0x9a, 0x29, 0x89, 0x2f, 0x03, 0x67, 0xa7, 0xab, 0x38, 0x44, 0x83, 0x78, 0x79, 0xe3, 0x81, 0x8d, 0xb8, 0xd7, 0x0c, 0x4e, 0x3f, 0xba, 0x4d, 0x28, 0x07, 0x34, 0x64, 0xdf, 0x20, 0x85, 0x95, 0x10, 0x38, 0xfe, 0xa4, 0x32, 0x81, 0xb6, 0xb6, 0x06, 0xdc, 0x88, 0x46, 0xb3, 0x0b, 0x07, 0x63, 0xf2, 0xca, 0x82, 0xbd, 0x50, 0x21, 0xf9, 0x11, 0x70, 0x35, 0xa7, 0x7b, 0xcd, 0x10, 0x75, 0x47, 0x7c, 0x5f, 0x43, 0x21, 0x43, 0x34, 0xd4, 0xd4, 0xce, 0xdd, 0x18, 0xf7, 0x38, 0xd6, 0x76, 0xc7, 0xb5, 0x1a, 0x18, 0x5f, 0xfa, 0x8d, 0x04, 0x10, 0x11, 0x86, 0xa4, 0x95, 0x2b, 0xbd, 0x87, 0x22, 0xf5, 0x39, 0x90, 0xb6, 0x06, 0x37, 0x04, 0x1e, 0x11, 0x4a, 0xeb, 0x8c, 0xe7, 0x11, 0x11, 0x31, 0xd4, 0xdb, 0x3f, 0xb4, 0xd3, 0x5d, 0x99, 0x5a, 0xd8, 0xd6, 0x65, 0x0c, 0x0c, 0x4c, 0xcd, 0xce, 0x9d, 0xcc, 0x39, 0xdb, 0x18, 0x8a, 0x68, 0x78, 0x55, 0x62, 0x74, 0x06, 0x26, 0xb3, 0xae, 0x3e, 0x02, 0x3f, 0x40, 0x77, 0x2d, 0xed, 0x87, 0x6a, 0x45, 0xcb, 0xef, 0x74, 0xa0, 0x58, 0xfd, 0x78, 0xc1, 0xa1, 0xff, 0x2c, 0x24, 0x51, 0xe1, 0x11, 0xac, 0x1b, 0x4b, 0x7e, 0xe4, 0xc8, 0x1c, 0xd7, 0x63, 0x10, 0xd4, 0xd2, 0x98, 0xfb, 0x3c, 0x49, 0xf5, 0xe6, 0x40, 0x19, 0x08, 0xa6, 0x30, 0xfa, 0x85, 0xdb, 0x74, 0x71, 0x80, 0x4f, 0xe9, 0x90, 0x84, 0x7f, 0x0f, 0x75, 0x94, 0x72, 0xf5, 0x93, 0xdc, 0xf0, 0x2e, 0x11, 0x3e, 0x15, 0xe5, 0x64, 0xd3, 0x0d, 0x59, 0x84, 0x69, 0x2d, 0xa5, 0x5b, 0x0b, 0x7f, 0x22, 0x19, 0xc4, 0xac, 0x16, 0x26, 0x51, 0x1a, 0xcf, 0x19, 0x4d, 0xc7, 0x02, 0x6e, 0xb9, 0xd3, 0x67, 0xa4, 0xa2, 0xf1, 0xdf, 0xb5, 0x15, 0xcb, 0x2c, 0x08, 0xda, 0x4f, 0xe5, 0x95, 0xc8, 0x58, 0x11, 0x12, 0x0c, 0xba, 0x2a, 0xe7, 0xb6, 0x6e, 0x67, 0xc9, 0x1f, 0xb8, 0xfb, 0xcb, 0x9d, 0x99, 0xf1, 0x3e, 0x50, 0xfd, 0x67, 0x46, 0x4d, 0x90, 0xc8, 0xdc, 0xf6, 0x93, 0x55, 0x23, 0xcf, 0x6d, 0x13, 0xfd, 0xd1, 0x06, 0x35, 0xb9, 0x23, 0x2b, 0x7a, 0x61, 0xdc, 0xec, 0x9a, 0x2b, 0x92, 0x10, 0x61, 0x41, 0x0d, 0xf1, 0xde, 0x6a, 0x45, 0x16, 0x7f, 0xb9, 0xf6, 0xf1, 0x09, 0xdc, 0xc0, 0x88, 0x91, 0xf2, 0x03, 0xb2, 0x74, 0xa3, 0xb6, 0x82, 0x71, 0xb3, 0xf3, 0x5e, 0x74, 0xf9, 0x4b, 0xdc, 0xed, 0x0c, 0x5f, 0xf8, 0x63, 0x71, 0x73, 0xa1, 0x76, 0xe7, 0xda, 0xcc, 0x81, 0xf2, 0xcd, 0xc4, 0xfb, 0x0d, 0x52, 0xd1, 0xdf, 0xa7, 0xf2, 0x7b, 0x55, 0x2f, 0xd8, 0xd8, 0x7a, 0x1c, 0x55, 0xd6, 0x94, 0x7f, 0xd9, 0x2e, 0xd3, 0x25, 0x3f, 0x95, 0x94, 0xdb, 0x7d, 0xf1, 0x7a, 0x7f, 0xc6, 0xa7, 0x5e, 0xcf, 0x4f, 0xaa, 0x4d, 0x1e, 0x21, 0xb6, 0x76, 0xb3, 0x72, 0x7d, 0x77, 0xfb, 0xd4, 0x3f, 0xa7, 0xbe, 0x76, 0xbf, 0xb5, 0x8f, 0xc3, 0x09, 0xe5, 0x67, 0x5f, 0x0a, 0x85, 0x9c, 0xc4, 0x7f, 0x37, 0xb1, 0xbf, 0x45, 0x59, 0x32, 0xd8, 0x24, 0xe8, 0x63, 0x78, 0xde, 0x7a, 0x7e, 0x8c, 0x40, 0xce, 0xd2, 0x20, 0x90, 0x04, 0x4d, 0xbb, 0xf9, 0x1c, 0x70, 0xe5, 0x28, 0xea, 0xcd, 0xef, 0x37, 0x85, 0xba, 0x3c, 0x69, 0xa3, 0x73, 0x5a, 0xf6, 0x70, 0x9c, 0xd7, 0x6a, 0xab, 0x28, 0xa6, 0xac, 0xa6, 0xe8, 0x44, 0x97, 0x4b, 0x10, 0xb3, 0xfb, 0x7b, 0x09, 0x86, 0x00, 0x7a, 0x72, 0x7c, 0x2c, 0x8f, 0xc9, 0x5b, 0x25, 0xf3, 0x1f, 0x14, 0x6b, 0x36, 0xac, 0xd4, 0xc5, 0x37, 0x07, 0x49, 0x20, 0xaf, 0xf2, 0x47, 0xde, 0x0f, 0x17, 0x9c, 0x13, 0xca, 0x57, 0x79, 0x0a, 0x6a, 0x71, 0xd6, 0x2e, 0x23, 0x32, 0x1c, 0xcc, 0x75, 0xb7, 0xf3, 0xb0, 0xaf, 0xa0, 0xd0, 0x35, 0x27, 0xc9, 0x11, 0x4a, 0x7d, 0x4e, 0x30, 0xc1, 0xac, 0xe6, 0xd7, 0x71, 0x20, 0x13, 0xde, 0xe6, 0x66, 0x99, 0xaf, 0x9c, 0x56, 0x1c, 0x44, 0xae, 0x61, 0x98, 0xed, 0x39, 0x10, 0x4e, 0x60, 0x61, 0xae, 0x2c, 0x45, 0xa9, 0xa3, 0xc7, 0x4b, 0x5d, 0x0f, 0xbc, 0x4a, 0x33, 0xe8, 0xdf, 0xe2, 0xa8, 0xac, 0xc9, 0x51, 0x1e, 0xf7, 0xe6, 0x56, 0x71, 0x33, 0xf9, 0xfe, 0x35, 0x54, 0x28, 0x4a, 0x75, 0xa0, 0x59, 0xa6, 0x49, 0xdd, 0x24, 0xec, 0x04, 0xa5, 0x77, 0x30, 0xc6, 0xd2, 0xe9, 0xbf, 0x11, 0x4e, 0xa5, 0x8a, 0x89, 0x94, 0xab, 0xdb, 0x0c, 0x19, 0x43, 0x24, 0x15, 0x72, 0xc7, 0x9e, 0xad, 0x04, 0x3a, 0xd1, 0xc8, 0xca, 0xaf, 0x5c, 0x9d, 0xa5, 0x3d, 0xd0, 0x55, 0x22, 0xfe, 0xbc, 0x40, 0x33, 0x54, 0xd6, 0x2f, 0xe3, 0xff, 0x93, 0x88, 0x2d, 0xf7, 0x5f, 0xb2, 0x94, 0x58, 0xd2, 0x2e, 0x69, 0x96, 0xc3, 0x5b, 0x69, 0xfa, 0xae, 0xf2, 0xe0, 0xc4, 0x16, 0x38, 0x86, 0xcb, 0x3c, 0x3d, 0x0f, 0x60, 0xe1, 0x50, 0xd3, 0x63, 0xd6, 0xdb, 0x59, 0xfe, 0xfc, 0x62, 0x6b, 0x1b, 0xbb, 0x1e, 0x05, 0x2a, 0x62, 0x41, 0x4c, 0x4b, 0x78, 0x56, 0xd7, 0x20, 0x93, 0x43, 0x2b, 0x08, 0xf8, 0x21, 0xbc, 0x78, 0x4a, 0x5a, 0x6b, 0x0b, 0xc2, 0x64, 0x9c, 0x2d, 0xaa, 0x50, 0x86, 0x58, 0x98, 0x0d, 0x80, 0x22, 0x91, 0xe7, 0x34, 0xab, 0xaf, 0xf0, 0x6a, 0xfb, 0xf2, 0x79, 0x5e, 0x4e, 0x35, 0x4d, 0x52, 0x21, 0xdc, 0x4f, 0x52, 0xcc, 0x96, 0xd6, 0xb8, 0xcf, 0x18, 0x08, 0xb1, 0xa8, 0x20, 0x8d, 0xb7, 0xda, 0xa8, 0x0a, 0xb7, 0x10, 0xc5, 0x6a, 0x8b, 0x0e, 0x9c, 0xb8, 0x08, 0x1d, 0xee, 0x93, 0xf5, 0xf0, 0x15, 0xf0, 0x76, 0x64, 0x46, 0x3a, 0x3d, 0xcc, 0xff, 0x7c, 0x8a, 0xd1, 0x99, 0x23, 0xa9, 0x7e, 0x39, 0x04, 0x5b, 0xcc, 0x4d, 0xce, 0x0a, 0x73, 0xd4, 0x9c, 0x56, 0xd5, 0xe9, 0x37, 0xbd, 0x11, 0xe6, 0x18, 0x23, 0x40, 0x1c, 0x06, 0x62, 0x06, 0xe3, 0x13, 0xe6, 0x0b, 0x47, 0x53, 0x7e, 0x34, 0x70, 0x4d, 0x7d, 0x35, 0x15, 0x55, 0x9b, 0xb9, 0xd0, 0x53, 0x2d, 0x02, 0x8e, 0x28, 0xa5, 0x7a, 0x87, 0x9f, 0xd6, 0x17, 0xcc, 0x61, 0xf7, 0xf7, 0x76, 0xbd, 0x6a, 0x00, 0x8c, 0xd4, 0xf8, 0x12, 0x37, 0x8e, 0xd3, 0x7f, 0x39, 0x4b, 0xb9, 0x7e, 0x6e, 0x75, 0x6d, 0xa8, 0x19, };
22056 static const u8 ed25519_959_test_vectors_expected_sig[] = {
22057 	0xdf, 0x84, 0x9b, 0x7b, 0xd2, 0x97, 0x45, 0xf8, 0xbe, 0xcd, 0xdd, 0xf6, 0xc9, 0xba, 0xf0, 0x94, 0xd7, 0xa9, 0x8c, 0xc9, 0x33, 0x8c, 0x34, 0x4e, 0xca, 0x17, 0xfd, 0xe0, 0x75, 0xfd, 0xa8, 0xd1, 0x54, 0x32, 0x99, 0xf6, 0x25, 0x98, 0x23, 0x17, 0xdb, 0x7b, 0x3c, 0x77, 0x3b, 0x64, 0xf7, 0xd1, 0xf2, 0x86, 0x92, 0xac, 0x45, 0x3b, 0x81, 0xd7, 0xec, 0x7b, 0x7e, 0xc3, 0x41, 0x7a, 0xce, 0x04, };
22058 static const ec_test_case ed25519_959_test_case = {
22059 	.name = "EDDSA25519-SHA512/wei25519 959",
22060 	.ec_str_p = &wei25519_str_params,
22061 	.priv_key = ed25519_959_test_vectors_priv_key,
22062 	.priv_key_len = sizeof(ed25519_959_test_vectors_priv_key),
22063 	.nn_random = NULL,
22064 	.hash_type = SHA512,
22065 	.msg = (const char *)ed25519_959_test_vectors_message,
22066 	.msglen = sizeof(ed25519_959_test_vectors_message),
22067 	.sig_type = EDDSA25519,
22068 	.exp_sig = ed25519_959_test_vectors_expected_sig,
22069 	.exp_siglen = sizeof(ed25519_959_test_vectors_expected_sig),
22070 	.adata = NULL,
22071 	.adata_len = 0
22072 };
22073 
22074 /************************************************/
22075 static const u8 ed25519_960_test_vectors_priv_key[] = {
22076 	0xa8, 0x86, 0xf4, 0xd3, 0xf3, 0x4e, 0x32, 0x0e, 0xc6, 0xd5, 0xf4, 0xca, 0xa8, 0x63, 0xf8, 0x14, 0x77, 0xdf, 0x77, 0x2e, 0xff, 0x97, 0xe6, 0x4a, 0x37, 0xa0, 0x5f, 0x42, 0x11, 0xd1, 0x90, 0xa8, };
22077 static const u8 ed25519_960_test_vectors_message[] = {
22078 	0x8b, 0x83, 0x1b, 0x87, 0x7b, 0xc3, 0xa9, 0x9f, 0x61, 0x3c, 0x89, 0xcd, 0xa6, 0x98, 0xb3, 0x75, 0x9d, 0x64, 0x38, 0x22, 0xb5, 0xa8, 0x8f, 0xaf, 0x38, 0x22, 0xec, 0xb2, 0xce, 0x98, 0xf6, 0x71, 0xd7, 0x55, 0x43, 0x21, 0xb2, 0x4b, 0x74, 0xb4, 0xe3, 0x0a, 0x66, 0x3f, 0x7a, 0x55, 0x70, 0xae, 0x91, 0x7f, 0x47, 0x9b, 0xda, 0x29, 0x89, 0x4b, 0x1a, 0x8c, 0x02, 0x8c, 0x9d, 0x19, 0x3e, 0x4e, 0x7a, 0xc1, 0x19, 0x16, 0xdd, 0x8e, 0x9c, 0x3f, 0x0e, 0xc0, 0xef, 0x80, 0xbd, 0x27, 0xfd, 0xfe, 0xee, 0x80, 0xc1, 0x70, 0xc7, 0x81, 0x40, 0xb2, 0x4c, 0x15, 0x27, 0x14, 0x15, 0xac, 0xf7, 0x5c, 0x26, 0x95, 0x6a, 0x4d, 0x4b, 0xf9, 0x9d, 0x40, 0xe8, 0x61, 0xe9, 0x07, 0x83, 0x20, 0xd0, 0x97, 0xe1, 0x25, 0x9e, 0x5e, 0xc1, 0x7b, 0x58, 0x3a, 0x95, 0xe5, 0x24, 0x30, 0xdd, 0x8c, 0x00, 0x8e, 0xd8, 0xc7, 0xdd, 0x1d, 0xe1, 0xbe, 0xcd, 0xd1, 0xe6, 0xbf, 0xec, 0x4b, 0xf3, 0x34, 0x7a, 0x22, 0xdd, 0x24, 0x9f, 0x3a, 0xc3, 0x07, 0xa2, 0x94, 0x5e, 0x91, 0x37, 0xfa, 0x4a, 0x8c, 0x26, 0xc8, 0x02, 0x10, 0x77, 0x23, 0x9c, 0xb3, 0x24, 0x81, 0x6a, 0x8d, 0xad, 0x32, 0xb0, 0x1e, 0xe3, 0x4a, 0x08, 0x90, 0x30, 0x98, 0xcb, 0x9c, 0x42, 0x45, 0x29, 0x1b, 0x90, 0x3c, 0x96, 0x27, 0x07, 0x40, 0x95, 0x24, 0x9e, 0x78, 0x28, 0x13, 0x47, 0x70, 0x32, 0xba, 0x32, 0xef, 0x04, 0x1a, 0x07, 0x48, 0x6e, 0xb4, 0x47, 0x8c, 0x57, 0xb9, 0xd5, 0x32, 0x26, 0x9a, 0x4a, 0x47, 0xcb, 0x5e, 0x97, 0x4d, 0xf7, 0xe0, 0x10, 0x96, 0xfb, 0xe4, 0xf1, 0xcc, 0xd4, 0xe6, 0x63, 0x66, 0x34, 0x87, 0x97, 0x4c, 0x62, 0xcd, 0xd9, 0x4d, 0x77, 0x71, 0x6c, 0x84, 0x79, 0xd7, 0x9f, 0x6b, 0x6a, 0x7d, 0x9c, 0x15, 0x59, 0x88, 0xcf, 0x39, 0x02, 0xfb, 0x69, 0x74, 0x24, 0x96, 0x3e, 0xc4, 0xec, 0x34, 0xff, 0x2a, 0x35, 0xd7, 0x42, 0xc4, 0x45, 0x5a, 0x59, 0x3b, 0xac, 0xff, 0xc4, 0xd9, 0x69, 0x9b, 0xa7, 0x62, 0x6c, 0x76, 0xcb, 0x1a, 0x61, 0x62, 0x53, 0x75, 0x18, 0x87, 0xf6, 0xff, 0xe2, 0xbe, 0x20, 0x8c, 0x71, 0x3d, 0xf1, 0xab, 0x63, 0x6d, 0x72, 0x2e, 0xa0, 0x6c, 0x1c, 0x03, 0xa5, 0x7f, 0x2c, 0xec, 0x08, 0x03, 0x86, 0x6c, 0xca, 0x33, 0x35, 0xc2, 0x8b, 0xf4, 0x1c, 0x7d, 0xef, 0x81, 0xac, 0xb3, 0x88, 0x58, 0xdc, 0x10, 0xe5, 0x94, 0x67, 0x20, 0x86, 0x24, 0x96, 0x7e, 0x2e, 0x22, 0xd9, 0xe5, 0x66, 0x1b, 0xb9, 0x45, 0xf9, 0xe0, 0x51, 0x76, 0x87, 0xdc, 0x80, 0xf9, 0xb8, 0xfd, 0xec, 0xc8, 0xa9, 0x76, 0x00, 0xb6, 0xc2, 0x19, 0xa3, 0xb2, 0x3a, 0x90, 0xb6, 0xd1, 0x8a, 0xaa, 0xce, 0x2c, 0x78, 0x40, 0x0f, 0xf3, 0x8c, 0x8c, 0x05, 0x96, 0x7f, 0x54, 0x4b, 0x6a, 0x60, 0x6c, 0x71, 0xac, 0x19, 0x9e, 0xaf, 0xd0, 0x7e, 0xb5, 0x84, 0x8d, 0xf1, 0x65, 0x7e, 0xfb, 0x23, 0x3f, 0xba, 0xba, 0xe6, 0x3a, 0x05, 0x63, 0x81, 0x91, 0xa0, 0xaf, 0x74, 0x84, 0xa1, 0xba, 0xe1, 0x58, 0x13, 0x75, 0x67, 0x2c, 0x57, 0x1e, 0x26, 0x4f, 0x60, 0x42, 0x25, 0x17, 0x3a, 0x54, 0xa3, 0x8d, 0xd6, 0x2a, 0xe7, 0x13, 0x0d, 0x05, 0xdd, 0x29, 0x1a, 0xd1, 0x23, 0x54, 0xde, 0x86, 0xa6, 0xe1, 0x13, 0xe8, 0x3f, 0x6d, 0x66, 0x85, 0x16, 0x15, 0x7b, 0x79, 0x67, 0x02, 0x0d, 0xc6, 0x51, 0x7d, 0x8c, 0xf4, 0x2d, 0xd7, 0xb1, 0xa8, 0x97, 0xfe, 0x1b, 0x4e, 0x04, 0x55, 0x3c, 0xe2, 0x6e, 0x29, 0x99, 0x80, 0xaa, 0x5f, 0x7c, 0xe0, 0x17, 0x9b, 0xf4, 0x95, 0x4f, 0x01, 0xc2, 0xa2, 0x36, 0x54, 0xe5, 0xe9, 0x73, 0x1e, 0x14, 0x47, 0x34, 0x7f, 0xa4, 0x3a, 0xa8, 0xb2, 0xcb, 0xd6, 0xd4, 0xb2, 0xdf, 0x93, 0xfa, 0x54, 0xaf, 0x71, 0xe5, 0x02, 0x8a, 0x6d, 0xa8, 0xc7, 0x1e, 0xf3, 0xc5, 0x0c, 0x0d, 0xe2, 0x4d, 0xca, 0xee, 0x78, 0x56, 0x78, 0xe9, 0x2a, 0xaf, 0xab, 0xeb, 0x23, 0x3b, 0x01, 0x1f, 0x45, 0xc1, 0x06, 0x49, 0x65, 0x08, 0x5d, 0x25, 0x47, 0x05, 0x0f, 0x21, 0xc6, 0x52, 0xaa, 0x53, 0x3a, 0xfe, 0x91, 0x8a, 0xa0, 0xf9, 0xbd, 0xaa, 0x26, 0x07, 0xb8, 0x73, 0xcc, 0xd3, 0xdb, 0xd1, 0xd3, 0xa8, 0xcc, 0x62, 0x17, 0x2c, 0xeb, 0x43, 0xb9, 0x21, 0xef, 0x6b, 0x25, 0xc0, 0x6b, 0x09, 0x92, 0xe4, 0xdf, 0x2b, 0x91, 0xe3, 0x71, 0xb0, 0xef, 0x2b, 0x39, 0x47, 0x38, 0x8d, 0xae, 0xc8, 0xec, 0x6f, 0x7e, 0x38, 0x67, 0xd1, 0xf6, 0x10, 0x72, 0xaf, 0x59, 0x01, 0x54, 0xfa, 0x61, 0x9a, 0x07, 0xf8, 0x7e, 0x02, 0xbd, 0xdc, 0x74, 0x06, 0x31, 0x42, 0x70, 0xaf, 0x1c, 0x15, 0xe8, 0xee, 0x88, 0xb3, 0x9c, 0x01, 0xbe, 0x60, 0x2e, 0x4f, 0x0b, 0x52, 0xd9, 0xa0, 0x72, 0x4e, 0x71, 0xed, 0xdd, 0x7f, 0xa9, 0x13, 0x41, 0x69, 0xc5, 0xfa, 0xab, 0x91, 0x59, 0x79, 0xee, 0xa9, 0x36, 0x2d, 0x0f, 0x1f, 0x91, 0x60, 0x26, 0x81, 0x62, 0xdd, 0x38, 0xdb, 0x02, 0xfc, 0xfb, 0x41, 0x35, 0x0a, 0xa0, 0x8e, 0x1e, 0x14, 0x09, 0xb2, 0x28, 0x8d, 0xb1, 0xfe, 0x4a, 0x0e, 0x58, 0x6b, 0x59, 0x10, 0xf4, 0xde, 0x89, 0x4b, 0xf9, 0x97, 0x4f, 0x6a, 0x49, 0x83, 0x01, 0x3a, 0x19, 0x0e, 0x7a, 0x73, 0x6d, 0x14, 0xec, 0x54, 0xc3, 0x64, 0x4a, 0x3e, 0xe9, 0x58, 0xa5, 0xbd, 0xfb, 0xcb, 0x62, 0x97, 0xab, 0xa4, 0x3a, 0xf6, 0xc7, 0x27, 0x46, 0xbb, 0x13, 0x54, 0x10, 0x50, 0x7d, 0x8f, 0xdd, 0xe7, 0x3a, 0x2a, 0x48, 0xb7, 0x46, 0xf9, 0x18, 0xbe, 0xf9, 0xed, 0x92, 0xc5, 0xbe, 0x62, 0xdd, 0x55, 0x23, 0xfe, 0x14, 0xb1, 0x6d, 0x63, 0x84, 0xca, 0x46, 0xef, 0x59, 0xb2, 0x18, 0x5f, 0xe9, 0x33, 0x38, 0x3a, 0x2c, 0x7a, 0x9b, 0xf0, 0x2d, 0xa9, 0xd0, 0xfd, 0x8b, 0x0c, 0x7d, 0x7b, 0xde, 0x6b, 0x43, 0x9f, 0x99, 0x60, 0x15, 0x5e, 0x34, 0x5d, 0x68, 0x5d, 0x4d, 0xc3, 0xc7, 0x14, 0x04, 0xd6, 0x56, 0x81, 0x19, 0x23, 0xaa, 0x3c, 0x47, 0xd4, 0xb0, 0x9a, 0x0b, 0xae, 0xf0, 0xa1, 0x2e, 0x75, 0xb6, 0x43, 0x9b, 0xa8, 0x13, 0x5d, 0xb1, 0x58, 0x65, 0x87, 0x42, 0x22, 0xcd, 0x7a, 0xa4, 0x28, 0xf5, 0xca, 0x5c, 0xe5, 0x14, 0x0e, 0x22, 0xff, 0x92, 0x69, 0x7f, 0x37, 0xfc, 0x70, 0xb5, 0xb4, 0xc9, 0x4d, 0x33, 0x14, 0xe6, 0xaa, 0x16, 0xb2, 0x14, 0x6b, 0xca, 0x4f, 0xc9, 0x41, 0x57, 0x95, 0x1f, 0xc4, 0x92, 0x45, 0xda, 0x53, 0xf6, 0xc4, 0x3d, 0x1b, 0xeb, 0xd8, 0x94, 0xe3, 0x1a, 0x13, 0x49, 0x88, 0x4d, 0x71, 0x1b, 0x55, 0xdb, 0xe7, 0x78, 0xff, 0xa7, 0x27, 0x16, 0x5c, 0xf7, 0xcb, 0x67, 0x64, 0x35, 0x86, 0x6c, 0x2d, 0x2c, 0xb8, 0x39, 0x74, 0x5c, 0xa4, 0x01, 0x66, 0xa2, 0xf7, 0xcf, 0xc7, 0x7a, 0x84, 0x24, 0x68, 0xb5, 0x1a, 0x8e, 0x76, 0x57, 0x5f, 0xc9, 0xdd, 0xfb, 0x5f, };
22079 static const u8 ed25519_960_test_vectors_expected_sig[] = {
22080 	0xab, 0xf2, 0x83, 0xdb, 0x1f, 0x80, 0xc5, 0x4c, 0x58, 0x3b, 0x49, 0x9d, 0xbe, 0x20, 0xaa, 0x04, 0x24, 0x8c, 0x1d, 0xce, 0x12, 0x1f, 0x39, 0x11, 0x67, 0x78, 0x13, 0xac, 0x3e, 0x01, 0x1f, 0xd1, 0x59, 0xad, 0x0b, 0xf7, 0x6b, 0x1a, 0xa7, 0xcc, 0x7b, 0x14, 0xd7, 0xb5, 0x50, 0x84, 0x86, 0x88, 0x25, 0x2a, 0xcc, 0x7f, 0xec, 0xe9, 0x04, 0x87, 0x24, 0x0c, 0x3d, 0x39, 0x9d, 0xd3, 0x43, 0x08, };
22081 static const ec_test_case ed25519_960_test_case = {
22082 	.name = "EDDSA25519-SHA512/wei25519 960",
22083 	.ec_str_p = &wei25519_str_params,
22084 	.priv_key = ed25519_960_test_vectors_priv_key,
22085 	.priv_key_len = sizeof(ed25519_960_test_vectors_priv_key),
22086 	.nn_random = NULL,
22087 	.hash_type = SHA512,
22088 	.msg = (const char *)ed25519_960_test_vectors_message,
22089 	.msglen = sizeof(ed25519_960_test_vectors_message),
22090 	.sig_type = EDDSA25519,
22091 	.exp_sig = ed25519_960_test_vectors_expected_sig,
22092 	.exp_siglen = sizeof(ed25519_960_test_vectors_expected_sig),
22093 	.adata = NULL,
22094 	.adata_len = 0
22095 };
22096 
22097 /************************************************/
22098 static const u8 ed25519_961_test_vectors_priv_key[] = {
22099 	0x49, 0x7e, 0x3e, 0xbd, 0x9e, 0x4c, 0xaa, 0x81, 0xc5, 0xa8, 0x97, 0x3d, 0x52, 0xf1, 0xd2, 0x3f, 0x60, 0xc1, 0x34, 0xca, 0x53, 0xf6, 0x2a, 0x85, 0x3a, 0x0a, 0xc0, 0x43, 0xe5, 0x1c, 0xb5, 0x17, };
22100 static const u8 ed25519_961_test_vectors_message[] = {
22101 	0xe1, 0x32, 0xf9, 0xd6, 0x7b, 0x17, 0x29, 0x38, 0x9b, 0x82, 0x8a, 0x9f, 0xae, 0x05, 0xa6, 0x7a, 0xa5, 0x7f, 0x0e, 0xf7, 0xe7, 0xd4, 0xd1, 0xba, 0x24, 0x4d, 0xec, 0x87, 0x04, 0xdb, 0x96, 0x95, 0x65, 0xd1, 0xca, 0xb8, 0x09, 0xe4, 0x8f, 0xc0, 0xab, 0xf9, 0x50, 0xbc, 0xd4, 0xa3, 0x7d, 0x97, 0xae, 0xac, 0xe6, 0xda, 0x54, 0x6d, 0x49, 0x14, 0xcb, 0x5b, 0x86, 0xd6, 0xab, 0x18, 0x1d, 0x83, 0x18, 0x70, 0xc3, 0x09, 0xbc, 0xa6, 0x16, 0x46, 0x8f, 0x2a, 0x34, 0xd3, 0xdf, 0xaf, 0xcd, 0xbb, 0x75, 0x80, 0xb0, 0xc5, 0xd9, 0xff, 0x98, 0xe2, 0xc5, 0x4e, 0xc8, 0x03, 0xbe, 0x0d, 0x3f, 0xda, 0x1d, 0x4b, 0x8c, 0x0d, 0x77, 0x09, 0xc8, 0x9e, 0x68, 0x0b, 0x00, 0x8b, 0xf9, 0xb8, 0xd9, 0x03, 0xb5, 0xe9, 0x34, 0xb0, 0x19, 0x70, 0x5f, 0xe0, 0xb0, 0xc8, 0xcf, 0xbc, 0x3c, 0x09, 0x67, 0x84, 0x3b, 0x0a, 0x1f, 0xa1, 0xb3, 0xf1, 0x62, 0x77, 0x6e, 0xbe, 0x96, 0xb7, 0x40, 0xed, 0xd6, 0x4a, 0xd7, 0xc3, 0x5b, 0x3f, 0xd1, 0xa0, 0x85, 0xc9, 0x9d, 0x16, 0xf5, 0x41, 0x67, 0x82, 0xde, 0x17, 0x35, 0x85, 0x87, 0x47, 0x0d, 0xd1, 0x3b, 0x51, 0x94, 0xf2, 0x0f, 0x23, 0x23, 0x2b, 0x2f, 0x70, 0x2f, 0x10, 0xaa, 0xfc, 0xaa, 0x59, 0xc7, 0x06, 0x6f, 0x24, 0xc4, 0xc4, 0x71, 0xe4, 0x2f, 0xa8, 0x6c, 0x6b, 0x9c, 0x5c, 0x3e, 0x1e, 0x8f, 0x83, 0x65, 0xf4, 0xdd, 0x75, 0xac, 0xb3, 0x2f, 0xff, 0xc0, 0x53, 0xc9, 0xaf, 0x41, 0xc6, 0xfd, 0x2e, 0xfa, 0xc3, 0x0e, 0xcf, 0x6a, 0x2d, 0xd0, 0x08, 0x5d, 0xe9, 0xb1, 0xd8, 0xcd, 0xc5, 0x0b, 0x16, 0x60, 0xa8, 0x66, 0xdf, 0x77, 0x67, 0x19, 0x8b, 0xd9, 0xc8, 0x73, 0x70, 0x61, 0x5d, 0x2b, 0xca, 0x99, 0xf7, 0x7b, 0x84, 0xd9, 0x8d, 0x7b, 0x24, 0xc9, 0xc2, 0x0f, 0xd7, 0x76, 0x8f, 0xd0, 0x38, 0x0d, 0x6b, 0x37, 0x36, 0x03, 0x40, 0xd1, 0x35, 0x98, 0x04, 0x78, 0x20, 0xdc, 0xed, 0x88, 0xa8, 0xd4, 0x2d, 0x57, 0x29, 0x37, 0xb6, 0xef, 0xa1, 0x69, 0x21, 0xa1, 0xb2, 0xb2, 0xd0, 0xeb, 0x93, 0x16, 0x73, 0x07, 0x08, 0x38, 0xe6, 0x11, 0xe6, 0xc0, 0x23, 0x29, 0x0d, 0x86, 0xfe, 0x90, 0x2f, 0x14, 0xac, 0x3a, 0xcd, 0x02, 0x9e, 0x33, 0x97, 0xfe, 0xb9, 0x7b, 0x17, 0x16, 0x62, 0x45, 0xab, 0x40, 0x7a, 0x76, 0x6d, 0x2e, 0x09, 0x04, 0x42, 0x4d, 0x33, 0xcd, 0x3d, 0x6e, 0x2e, 0x62, 0xa5, 0x2c, 0x65, 0xdf, 0x7c, 0xf0, 0x04, 0xd1, 0x41, 0x5c, 0x0b, 0x43, 0x0c, 0x11, 0x27, 0x62, 0x3d, 0xab, 0x27, 0x2a, 0x2c, 0x2e, 0x2b, 0x43, 0xe0, 0x2b, 0x48, 0x1b, 0xe9, 0x28, 0xe8, 0x99, 0x54, 0x27, 0x28, 0x32, 0xbe, 0x09, 0x8b, 0x50, 0x2b, 0x8b, 0x56, 0x43, 0xc6, 0x74, 0x82, 0xf5, 0xde, 0x44, 0x03, 0x03, 0x25, 0x81, 0xf0, 0x8a, 0xfb, 0x0a, 0xea, 0x48, 0x86, 0x85, 0x82, 0x60, 0x7b, 0xb3, 0x91, 0x98, 0xc1, 0xbf, 0x13, 0xa8, 0x69, 0xb6, 0x32, 0x58, 0xa7, 0x58, 0x90, 0xb6, 0x94, 0x45, 0xff, 0xd3, 0x45, 0x64, 0x02, 0x3e, 0x47, 0xf8, 0xb1, 0x88, 0x4a, 0x5e, 0x49, 0xb7, 0xd9, 0x42, 0x5f, 0x28, 0xd5, 0x15, 0x30, 0x13, 0xfe, 0x37, 0x55, 0xc6, 0xcb, 0x11, 0x4d, 0xb1, 0x80, 0xe6, 0x0b, 0x3d, 0xc4, 0xad, 0xb3, 0x6a, 0x21, 0x42, 0x81, 0x28, 0x00, 0x5a, 0x77, 0x2f, 0xb5, 0x71, 0x89, 0x34, 0x55, 0x65, 0xbb, 0xd1, 0x75, 0x98, 0x13, 0x52, 0x3b, 0xad, 0x62, 0x85, 0x5e, 0x79, 0x28, 0xee, 0xf5, 0x88, 0x0d, 0x3b, 0xff, 0xf1, 0xd0, 0xec, 0x65, 0xc2, 0x45, 0x92, 0x33, 0x5c, 0xda, 0x47, 0xcf, 0xcc, 0x5b, 0x5f, 0xa6, 0x52, 0xb4, 0x72, 0x63, 0x22, 0x52, 0x24, 0x84, 0x6a, 0x20, 0x9a, 0x3d, 0xd7, 0x76, 0x66, 0x61, 0xfc, 0xa4, 0xcc, 0xca, 0x59, 0xc4, 0x56, 0xfc, 0x9c, 0xc3, 0xe1, 0xcf, 0x80, 0x42, 0x55, 0xaa, 0x5f, 0x39, 0x7b, 0xab, 0x19, 0x98, 0x04, 0x33, 0x6b, 0xde, 0x29, 0xe5, 0x5c, 0x6c, 0x37, 0x7d, 0x58, 0x3f, 0x08, 0x2c, 0xe6, 0x47, 0x23, 0x73, 0x9e, 0x4f, 0x02, 0x46, 0x06, 0xf9, 0x06, 0xc1, 0x10, 0xd0, 0xa5, 0xb6, 0x10, 0xe5, 0xfe, 0xd9, 0x6d, 0xab, 0x5f, 0x08, 0xf4, 0xcb, 0x3c, 0xfc, 0x40, 0xa3, 0x55, 0x57, 0xe1, 0xa7, 0x40, 0xb8, 0xc7, 0xc0, 0x1f, 0x7d, 0x32, 0x79, 0xdd, 0x9c, 0x4e, 0x87, 0x64, 0xc9, 0x0b, 0xc1, 0x4f, 0x41, 0x61, 0xdb, 0x5a, 0x37, 0xf0, 0x98, 0x9b, 0x7b, 0xd8, 0x03, 0x5f, 0x8b, 0xea, 0x39, 0x4e, 0xa1, 0xd6, 0x00, 0x2c, 0xe9, 0xc3, 0x4f, 0x1e, 0x9c, 0x52, 0xc6, 0xa1, 0x5d, 0x15, 0xbc, 0x5b, 0x25, 0xc6, 0xc1, 0x5a, 0xb0, 0x0d, 0xfd, 0x6a, 0x5b, 0x1b, 0xc9, 0x17, 0xaf, 0x0b, 0x1b, 0x05, 0xfd, 0x10, 0xd0, 0x61, 0xb3, 0x68, 0x3d, 0x75, 0xb5, 0xf9, 0xef, 0xfb, 0x22, 0xae, 0x72, 0x08, 0x5b, 0xe4, 0xf6, 0x79, 0x7b, 0x58, 0xcb, 0x0c, 0xab, 0x56, 0x18, 0x44, 0x12, 0x1f, 0x98, 0xbf, 0xd9, 0x58, 0x3e, 0x0b, 0xcc, 0xb7, 0x0f, 0xad, 0x76, 0x98, 0x0a, 0x7a, 0x73, 0xb2, 0x3c, 0x70, 0xb3, 0xfd, 0x02, 0xf7, 0x75, 0x7c, 0x11, 0xa3, 0xc2, 0x1d, 0x19, 0xe0, 0x56, 0x50, 0xff, 0xb8, 0x2b, 0x9e, 0x0d, 0xf8, 0xa6, 0x73, 0x5d, 0x48, 0x01, 0x56, 0xf4, 0x79, 0x49, 0xd4, 0x45, 0x85, 0x1b, 0xae, 0xaa, 0x5e, 0xe2, 0x38, 0x14, 0xa4, 0x1b, 0x25, 0x23, 0x4f, 0xb9, 0x2c, 0xc0, 0xdf, 0x19, 0x80, 0xd0, 0x23, 0xd5, 0x1b, 0x5c, 0xf4, 0xc3, 0x11, 0x85, 0xc1, 0x18, 0xe3, 0xee, 0x3c, 0x0c, 0x0a, 0x46, 0xe0, 0xa2, 0xbe, 0x6f, 0x1d, 0x3a, 0xe4, 0x52, 0xcb, 0xb6, 0x6f, 0x0f, 0xd9, 0x19, 0x71, 0x34, 0x2d, 0xa7, 0xb1, 0xb9, 0x96, 0x58, 0x9d, 0x94, 0x09, 0x67, 0x81, 0x55, 0x21, 0x95, 0xc4, 0x33, 0xca, 0xf1, 0x9c, 0x37, 0xf9, 0xf1, 0x4f, 0xa0, 0xae, 0x15, 0xae, 0x0b, 0x02, 0xb9, 0x39, 0xe4, 0x02, 0x03, 0x4f, 0xf8, 0x18, 0x85, 0x93, 0x9d, 0x94, 0x4e, 0x60, 0x4f, 0x47, 0x4f, 0x21, 0x52, 0x43, 0x89, 0x39, 0x0f, 0xda, 0xda, 0x06, 0xe3, 0x0d, 0x69, 0x06, 0x8c, 0x88, 0x48, 0xcf, 0x0a, 0x95, 0x1e, 0xab, 0x25, 0xc4, 0x91, 0x25, 0x62, 0x94, 0x4f, 0x40, 0x24, 0x68, 0x18, 0x7a, 0x23, 0x23, 0x9d, 0x33, 0x63, 0x2f, 0x29, 0x12, 0x3d, 0x49, 0xb7, 0xde, 0x13, 0x08, 0x33, 0x98, 0xdb, 0xa9, 0x7d, 0xed, 0xe1, 0x2f, 0x79, 0x59, 0xb9, 0x52, 0x47, 0xa0, 0x8f, 0xc8, 0xe4, 0xb5, 0x39, 0x9d, 0x1c, 0x03, 0x5c, 0x08, 0x94, 0xcc, 0x75, 0xae, 0x98, 0x1c, 0x2d, 0xd4, 0x93, 0x54, 0x13, 0xbb, 0xeb, 0x68, 0x53, 0xfe, 0x04, 0x65, 0x5c, 0x77, 0xd1, 0x58, 0xc1, 0x23, 0x7b, 0x3e, 0x0d, 0xec, 0xa5, 0x63, 0x6d, 0x69, 0xe0, 0xdb, 0xc5, 0xac, 0xaf, 0x72, 0xb6, 0x0c, 0x10, 0xbb, 0x98, 0xcc, 0xdd, 0x60, 0x09, 0x8a, 0x03, };
22102 static const u8 ed25519_961_test_vectors_expected_sig[] = {
22103 	0x12, 0x74, 0x08, 0x39, 0xb3, 0xc9, 0xf1, 0xba, 0x87, 0x98, 0x96, 0xdf, 0xf6, 0xd7, 0x25, 0xe8, 0x4e, 0x04, 0x43, 0xef, 0x96, 0xc3, 0x49, 0xef, 0xf9, 0x4d, 0xc4, 0x83, 0x31, 0x43, 0xe5, 0xb4, 0x19, 0x80, 0x4d, 0xa9, 0xdb, 0x11, 0x8a, 0x95, 0x92, 0xb1, 0xb1, 0xca, 0x48, 0xaf, 0x18, 0xf7, 0x5b, 0xef, 0x1c, 0xa4, 0x68, 0xa1, 0xa5, 0xc7, 0x4c, 0x7a, 0xc8, 0x13, 0xbb, 0x2c, 0xf3, 0x06, };
22104 static const ec_test_case ed25519_961_test_case = {
22105 	.name = "EDDSA25519-SHA512/wei25519 961",
22106 	.ec_str_p = &wei25519_str_params,
22107 	.priv_key = ed25519_961_test_vectors_priv_key,
22108 	.priv_key_len = sizeof(ed25519_961_test_vectors_priv_key),
22109 	.nn_random = NULL,
22110 	.hash_type = SHA512,
22111 	.msg = (const char *)ed25519_961_test_vectors_message,
22112 	.msglen = sizeof(ed25519_961_test_vectors_message),
22113 	.sig_type = EDDSA25519,
22114 	.exp_sig = ed25519_961_test_vectors_expected_sig,
22115 	.exp_siglen = sizeof(ed25519_961_test_vectors_expected_sig),
22116 	.adata = NULL,
22117 	.adata_len = 0
22118 };
22119 
22120 /************************************************/
22121 static const u8 ed25519_962_test_vectors_priv_key[] = {
22122 	0x85, 0xb4, 0xd7, 0x64, 0x16, 0x91, 0x28, 0x62, 0x6f, 0xd9, 0xc7, 0x82, 0xad, 0x61, 0x16, 0x22, 0x9e, 0xdd, 0x77, 0x63, 0x1c, 0x2b, 0xc9, 0xb8, 0xee, 0x54, 0xb3, 0x65, 0x42, 0xc1, 0x49, 0xeb, };
22123 static const u8 ed25519_962_test_vectors_message[] = {
22124 	0xb2, 0xa0, 0x49, 0x3d, 0x47, 0x1c, 0x33, 0x91, 0xf7, 0xad, 0xd1, 0xe2, 0xcf, 0x0b, 0xfb, 0x32, 0xab, 0x05, 0xdb, 0xcb, 0x14, 0xf6, 0xe4, 0xf5, 0xf3, 0x46, 0x3a, 0xa8, 0xd9, 0x95, 0x52, 0xf4, 0x33, 0x02, 0x20, 0x46, 0xd2, 0xf8, 0xeb, 0x76, 0x3c, 0x01, 0x71, 0xfc, 0xb1, 0xe7, 0x4a, 0x04, 0x9f, 0xfe, 0xb4, 0xb8, 0xf0, 0x10, 0x0b, 0x82, 0x10, 0xfc, 0xe8, 0x56, 0xb2, 0xe1, 0xa8, 0xe7, 0x39, 0xd2, 0xf9, 0x36, 0x73, 0xef, 0x8f, 0x8f, 0x40, 0x49, 0x8b, 0x30, 0x81, 0xfa, 0x1f, 0xd7, 0x85, 0x19, 0x8c, 0x6d, 0x37, 0x0e, 0x16, 0x2d, 0x41, 0xab, 0xe8, 0x31, 0x86, 0xf2, 0x32, 0x97, 0x83, 0x40, 0x8b, 0x9b, 0x88, 0x0d, 0x00, 0xf8, 0x1d, 0x53, 0x10, 0x0b, 0x42, 0xd2, 0x7a, 0x26, 0x1f, 0x20, 0xcd, 0xee, 0xd1, 0x9c, 0xc5, 0x8c, 0xb8, 0x63, 0x12, 0x81, 0xd8, 0x0d, 0xb1, 0x92, 0x53, 0x10, 0xe2, 0x35, 0xe4, 0x49, 0x66, 0x30, 0x9b, 0x87, 0x9b, 0xdf, 0xc2, 0x32, 0x22, 0x14, 0x33, 0xba, 0xe5, 0xca, 0xe4, 0x66, 0x90, 0xcb, 0x52, 0x7b, 0x67, 0x79, 0xe1, 0x1f, 0x1b, 0xd2, 0xa5, 0x6b, 0x59, 0xc5, 0x6e, 0xd4, 0xd9, 0x4f, 0xdf, 0x7a, 0xa8, 0x9d, 0xfa, 0x9b, 0xf2, 0x0d, 0xbf, 0xa6, 0xa4, 0x39, 0x8b, 0x98, 0x38, 0x45, 0x17, 0xe1, 0xdd, 0x5d, 0x2c, 0xd9, 0xce, 0x52, 0x4a, 0x47, 0x36, 0x2e, 0xf3, 0x2a, 0xc7, 0x92, 0x74, 0x2a, 0x12, 0x9c, 0x9e, 0x06, 0x13, 0x08, 0x76, 0xab, 0x5a, 0xd5, 0x51, 0x8e, 0xab, 0xc5, 0xe8, 0x0b, 0x02, 0x2d, 0x8f, 0xa1, 0x3e, 0x50, 0xd5, 0x5d, 0xed, 0x58, 0x95, 0x33, 0xe6, 0xea, 0x32, 0x24, 0x2c, 0x1b, 0x3f, 0xd7, 0xe6, 0x5f, 0x80, 0xde, 0xe7, 0x20, 0xb6, 0xd8, 0x7d, 0xcf, 0xf3, 0xe3, 0xdf, 0x04, 0xc8, 0x02, 0xd2, 0xe9, 0x14, 0xa8, 0x7a, 0x36, 0x29, 0xc9, 0x0b, 0xb6, 0x9e, 0x0a, 0x6f, 0x8b, 0xbb, 0x5e, 0xe5, 0x05, 0xf1, 0x43, 0xc9, 0x97, 0x73, 0x75, 0xad, 0xb0, 0x65, 0xc3, 0xe3, 0xd3, 0x91, 0xf9, 0x05, 0xfa, 0x3c, 0x33, 0x6c, 0x9d, 0xa4, 0x1e, 0x4a, 0x23, 0x20, 0xbc, 0xf4, 0x60, 0x97, 0x6f, 0xc7, 0xeb, 0x1f, 0xb6, 0xc6, 0xa3, 0xc3, 0x95, 0xdb, 0xd1, 0xd2, 0x8a, 0x1b, 0x09, 0xcd, 0xb9, 0xae, 0x9f, 0x9a, 0xae, 0xe4, 0xd9, 0xc5, 0x66, 0xa2, 0xac, 0x40, 0xad, 0xd8, 0x70, 0x47, 0x9f, 0xaf, 0x54, 0xad, 0x1b, 0x76, 0x97, 0x71, 0x0b, 0x4e, 0xb6, 0xf7, 0x32, 0x02, 0x44, 0xb5, 0x97, 0x57, 0xd1, 0xea, 0xc3, 0xd9, 0x22, 0xb7, 0xa7, 0x30, 0xb1, 0xac, 0xf0, 0xde, 0x9a, 0x45, 0xd4, 0xac, 0x87, 0x9d, 0x21, 0xfc, 0x61, 0x6e, 0xf3, 0x96, 0x5d, 0x74, 0x34, 0x5e, 0xd7, 0x07, 0x79, 0xeb, 0x68, 0x32, 0x80, 0xce, 0xe2, 0x5b, 0xf3, 0x73, 0x9b, 0xeb, 0x6b, 0x4c, 0xdf, 0xa2, 0x5d, 0x20, 0x2d, 0xa1, 0x3a, 0x4a, 0x67, 0x30, 0x40, 0xd9, 0x70, 0x48, 0x65, 0x8b, 0x92, 0x05, 0x47, 0x95, 0x05, 0xd0, 0xbe, 0xe4, 0x88, 0x0a, 0x73, 0x99, 0x7c, 0x70, 0x82, 0x5a, 0x6e, 0xc5, 0xfd, 0x9f, 0x95, 0x2e, 0x65, 0xfa, 0x02, 0x22, 0x54, 0x45, 0xfc, 0x3b, 0xdf, 0x4a, 0xde, 0xa3, 0xd4, 0xd2, 0x25, 0x51, 0xcb, 0xac, 0xeb, 0x38, 0x74, 0x79, 0x8d, 0x6a, 0x33, 0xa6, 0x66, 0x3f, 0xe3, 0x75, 0x70, 0x81, 0xd6, 0x24, 0x3d, 0xfd, 0x7c, 0xd2, 0xee, 0xbf, 0x60, 0xa3, 0x89, 0x9f, 0xa1, 0xf8, 0xf6, 0xc9, 0x56, 0xa3, 0xb1, 0x83, 0xf8, 0x9b, 0x9e, 0x7d, 0x2c, 0xa3, 0x64, 0x48, 0x58, 0x4d, 0x53, 0xaa, 0x8b, 0x44, 0xe6, 0x5a, 0xd3, 0xe5, 0x27, 0xf7, 0x87, 0x23, 0xfa, 0x6f, 0x59, 0x22, 0x42, 0x98, 0xdf, 0x31, 0xd5, 0xe8, 0xad, 0xa5, 0x67, 0xc8, 0xd1, 0xb1, 0x1f, 0x3b, 0x13, 0x14, 0x75, 0x53, 0x31, 0xc1, 0x73, 0x2d, 0xc5, 0x4a, 0x12, 0xa4, 0x35, 0x6e, 0xdd, 0xa4, 0x7e, 0x3c, 0x13, 0x0b, 0x32, 0x52, 0x82, 0xa3, 0x54, 0xbf, 0xe1, 0x5c, 0x30, 0x00, 0xd2, 0x07, 0x82, 0x29, 0x31, 0x79, 0x41, 0x87, 0xe0, 0x97, 0x3a, 0xb8, 0xef, 0x87, 0xbf, 0x89, 0xc3, 0x54, 0xa0, 0x35, 0xa8, 0x1f, 0x45, 0x91, 0x12, 0x23, 0x56, 0x3b, 0xfd, 0x99, 0xf9, 0x0a, 0x75, 0xe5, 0x3d, 0x01, 0x0d, 0x89, 0x29, 0xf4, 0xf8, 0x5a, 0x5a, 0x5a, 0x4f, 0x9f, 0xcc, 0x1c, 0x78, 0xf0, 0xa2, 0xfc, 0x46, 0x6f, 0x5f, 0x1c, 0x65, 0x22, 0xcf, 0x62, 0xa7, 0xbe, 0x37, 0x88, 0x07, 0x96, 0xe9, 0xb3, 0xca, 0x09, 0x11, 0xec, 0xca, 0x3f, 0x22, 0xc3, 0xb2, 0x4d, 0x5d, 0x9d, 0xaa, 0x68, 0x88, 0xf8, 0x9a, 0x8f, 0x71, 0xa1, 0x58, 0x59, 0x35, 0x9c, 0xea, 0x46, 0x8e, 0xf2, 0x38, 0xec, 0xf6, 0x46, 0x19, 0x27, 0x83, 0xa2, 0x57, 0xad, 0xda, 0xde, 0x90, 0x47, 0xe1, 0x3e, 0xdd, 0x8b, 0xcc, 0x1f, 0xd4, 0x17, 0x7c, 0xb2, 0x0f, 0x88, 0xd1, 0x19, 0x98, 0xd9, 0xc7, 0x26, 0x2d, 0x64, 0x8c, 0x2b, 0xf6, 0x6f, 0xb2, 0x27, 0xb9, 0xb3, 0xa9, 0xed, 0x46, 0x96, 0x2d, 0x22, 0x57, 0xa4, 0x20, 0xf6, 0x4b, 0xea, 0xd9, 0xe2, 0x86, 0x57, 0xb5, 0x21, 0xdb, 0x2e, 0x22, 0x16, 0x52, 0x87, 0x79, 0x1f, 0x3a, 0x1b, 0xec, 0x4c, 0x78, 0x22, 0xa6, 0xca, 0xbd, 0xe5, 0xec, 0x77, 0x01, 0x88, 0xcb, 0x74, 0x49, 0x8a, 0x4f, 0x08, 0xe5, 0xa3, 0xa7, 0x63, 0x9d, 0x24, 0x0a, 0xe3, 0xf4, 0xfd, 0x03, 0x53, 0xc0, 0xdd, 0xa8, 0xae, 0x41, 0x0b, 0x9f, 0xa7, 0xf4, 0x3f, 0xee, 0xd1, 0x3e, 0x9f, 0x13, 0xe6, 0xc9, 0x41, 0x0a, 0x1d, 0x24, 0xcd, 0xfc, 0x2c, 0x8e, 0x64, 0xa1, 0x5a, 0x12, 0xf7, 0x55, 0x45, 0xb0, 0xa5, 0x75, 0x71, 0x35, 0x23, 0xd4, 0xdf, 0xa1, 0xa4, 0x74, 0x27, 0xa8, 0x85, 0x1b, 0xa9, 0xac, 0xcc, 0xad, 0x78, 0xb4, 0xef, 0x6a, 0x18, 0x5f, 0x5c, 0x3b, 0x00, 0x11, 0x90, 0xdd, 0x8f, 0x37, 0x08, 0x8a, 0x00, 0x0a, 0xcc, 0xf4, 0x48, 0xbe, 0x8d, 0x49, 0x37, 0x1d, 0x9d, 0xa2, 0xe1, 0xcb, 0x5f, 0xfe, 0x07, 0xd4, 0x1a, 0x5c, 0x22, 0xe9, 0x46, 0x60, 0xac, 0x37, 0x13, 0x5a, 0xc8, 0x58, 0xcb, 0x17, 0x69, 0xcb, 0x66, 0xe8, 0x26, 0x9f, 0xd5, 0x33, 0x58, 0xec, 0xac, 0xf5, 0xdd, 0x92, 0xc7, 0xeb, 0x61, 0x86, 0xb4, 0xd4, 0xd6, 0x13, 0x0a, 0x73, 0x2d, 0xc1, 0x0b, 0xbb, 0x2b, 0xe3, 0x2f, 0x9b, 0x1d, 0x69, 0x51, 0x01, 0x4a, 0x63, 0x5c, 0x12, 0xd2, 0x2f, 0x0d, 0xc5, 0xbd, 0x5c, 0x2a, 0x3f, 0x96, 0xae, 0xc6, 0x2e, 0x77, 0x77, 0x94, 0x7e, 0xaa, 0x02, 0x28, 0x12, 0xca, 0xce, 0xd3, 0x3a, 0x5b, 0xef, 0x9f, 0xf8, 0x83, 0x5f, 0x88, 0x03, 0x67, 0xa3, 0x7b, 0x0b, 0x76, 0xd2, 0xdd, 0xe3, 0x96, 0xc6, 0x14, 0xe1, 0xa4, 0x72, 0x1e, 0x00, 0x0c, 0x00, 0xf1, 0x61, 0x93, 0x5b, 0x14, 0xa7, 0x38, 0xa1, 0xb7, 0x0f, 0x6e, 0xa5, 0x42, 0x55, 0xb7, 0x95, 0x18, 0x69, 0x64, 0x62, 0x12, };
22125 static const u8 ed25519_962_test_vectors_expected_sig[] = {
22126 	0x4a, 0x79, 0xc4, 0x42, 0xa4, 0xc3, 0x9c, 0x62, 0x89, 0x26, 0x17, 0xef, 0x8e, 0x80, 0xb4, 0x09, 0x11, 0xc4, 0xb9, 0xd3, 0xff, 0x0a, 0x56, 0x73, 0xb5, 0x7b, 0xdb, 0x84, 0x54, 0xad, 0x73, 0x67, 0x69, 0xdf, 0x27, 0xc7, 0x8a, 0x4b, 0xf7, 0xad, 0x56, 0x60, 0x40, 0xe7, 0x47, 0x27, 0x8b, 0x11, 0xeb, 0x65, 0xcf, 0x9e, 0xc7, 0xeb, 0xa8, 0x66, 0x12, 0x0a, 0x36, 0x54, 0xf4, 0x71, 0x6e, 0x00, };
22127 static const ec_test_case ed25519_962_test_case = {
22128 	.name = "EDDSA25519-SHA512/wei25519 962",
22129 	.ec_str_p = &wei25519_str_params,
22130 	.priv_key = ed25519_962_test_vectors_priv_key,
22131 	.priv_key_len = sizeof(ed25519_962_test_vectors_priv_key),
22132 	.nn_random = NULL,
22133 	.hash_type = SHA512,
22134 	.msg = (const char *)ed25519_962_test_vectors_message,
22135 	.msglen = sizeof(ed25519_962_test_vectors_message),
22136 	.sig_type = EDDSA25519,
22137 	.exp_sig = ed25519_962_test_vectors_expected_sig,
22138 	.exp_siglen = sizeof(ed25519_962_test_vectors_expected_sig),
22139 	.adata = NULL,
22140 	.adata_len = 0
22141 };
22142 
22143 /************************************************/
22144 static const u8 ed25519_963_test_vectors_priv_key[] = {
22145 	0x33, 0xd4, 0x77, 0x60, 0x2f, 0x29, 0x63, 0x05, 0xa6, 0x71, 0x9e, 0xa6, 0x94, 0xc0, 0x44, 0xe9, 0x0d, 0x23, 0x3c, 0x2d, 0xea, 0x85, 0xc4, 0x6a, 0xbe, 0x19, 0x20, 0xe8, 0x8c, 0x31, 0x78, 0x49, };
22146 static const u8 ed25519_963_test_vectors_message[] = {
22147 	0xcf, 0xea, 0x07, 0xa7, 0x79, 0xf1, 0x53, 0x7e, 0x49, 0x81, 0x23, 0xc6, 0x76, 0x29, 0x05, 0x73, 0xef, 0xcc, 0x5d, 0xb7, 0x02, 0x45, 0xd9, 0x3d, 0xea, 0x5c, 0x05, 0x72, 0x6f, 0x87, 0x13, 0xd0, 0x02, 0xae, 0x66, 0xc1, 0xc9, 0x69, 0x07, 0x47, 0xca, 0x92, 0x30, 0xb1, 0x62, 0x9d, 0x36, 0x62, 0xab, 0x73, 0xd6, 0x6b, 0x94, 0x98, 0x79, 0x16, 0x4b, 0x21, 0xa3, 0x5f, 0x40, 0xcf, 0x37, 0x99, 0x04, 0x19, 0x08, 0xed, 0x6f, 0x92, 0x29, 0xec, 0xb3, 0x90, 0xc5, 0xf2, 0x22, 0x34, 0xe1, 0xc5, 0xf2, 0x6b, 0x3a, 0xb5, 0xba, 0x59, 0xe7, 0x8c, 0x64, 0x96, 0x98, 0x71, 0xb4, 0x28, 0xb7, 0x85, 0x16, 0x77, 0x75, 0x55, 0xaf, 0x4e, 0x89, 0xc6, 0xfb, 0xc1, 0x93, 0xa9, 0x46, 0x95, 0x22, 0x6c, 0x6d, 0x32, 0x99, 0x91, 0xa1, 0x1b, 0xd5, 0x80, 0xd1, 0x89, 0x56, 0x08, 0x9b, 0x58, 0xa0, 0xe4, 0x2c, 0xa3, 0x5f, 0x6c, 0x6d, 0x26, 0x09, 0xad, 0xe0, 0xd0, 0xb6, 0x19, 0xd4, 0x89, 0x25, 0xc6, 0x8c, 0xd9, 0xd2, 0x25, 0x0d, 0xff, 0x27, 0xcf, 0x2f, 0x0d, 0x44, 0x44, 0x87, 0x09, 0xb6, 0x79, 0xf3, 0x5b, 0xbd, 0xce, 0x0f, 0x49, 0x6b, 0x0a, 0x16, 0xca, 0x67, 0xea, 0xce, 0xec, 0x25, 0x8b, 0x1a, 0xec, 0x91, 0x77, 0x5a, 0x3a, 0x2e, 0xe8, 0x01, 0xb1, 0xc9, 0xa2, 0x26, 0xa6, 0xb0, 0x01, 0x92, 0x6a, 0x05, 0x7a, 0x06, 0x30, 0x67, 0x27, 0xee, 0xda, 0xe8, 0xc5, 0x77, 0x53, 0x1d, 0xf0, 0x4a, 0xc0, 0x9b, 0x5b, 0x49, 0xbc, 0xde, 0xab, 0xde, 0xb8, 0xac, 0x4e, 0x8e, 0x82, 0xcf, 0x1e, 0x7a, 0xf8, 0x35, 0xfc, 0x61, 0x1c, 0xa7, 0xa6, 0x84, 0xb8, 0x35, 0x26, 0x04, 0x24, 0x15, 0xb1, 0xd6, 0x65, 0x2e, 0x86, 0x34, 0x31, 0x1e, 0x19, 0x46, 0x27, 0xea, 0xe7, 0x8d, 0x01, 0x1e, 0x6f, 0x40, 0xf6, 0x45, 0x79, 0x4e, 0x36, 0x89, 0x5a, 0x23, 0xe1, 0xbd, 0x84, 0x88, 0x3a, 0x39, 0x3e, 0xcf, 0xe5, 0xa2, 0x48, 0x02, 0x6a, 0xea, 0x86, 0x44, 0x70, 0x59, 0xf7, 0xa4, 0x29, 0x36, 0x8f, 0x21, 0xc8, 0x9e, 0x01, 0x45, 0x20, 0x79, 0x78, 0xb9, 0x13, 0xc8, 0x0a, 0x22, 0xd7, 0xca, 0xf2, 0x67, 0x3f, 0x7c, 0x76, 0xf6, 0xc2, 0x6c, 0xf8, 0x84, 0x41, 0x2e, 0x17, 0xd0, 0xc2, 0x55, 0x43, 0x0f, 0x50, 0x2b, 0xce, 0x74, 0xe3, 0xa3, 0x10, 0xd1, 0x7f, 0x6f, 0x4d, 0x48, 0x5d, 0xa2, 0x80, 0xed, 0x5b, 0x5e, 0xea, 0x6c, 0x49, 0xba, 0x74, 0x8d, 0x76, 0x48, 0x14, 0xb9, 0xe3, 0xda, 0xf6, 0xfc, 0xc2, 0x18, 0xc2, 0x74, 0x0c, 0xa7, 0x70, 0x18, 0xf7, 0x13, 0x44, 0x51, 0x9d, 0xa8, 0x2a, 0xda, 0x31, 0xe0, 0x01, 0x92, 0x4f, 0xc7, 0x76, 0x79, 0xe3, 0xe9, 0xff, 0x9f, 0xab, 0x67, 0xdd, 0x09, 0xa6, 0x19, 0x24, 0xc8, 0x21, 0xa1, 0xfd, 0x99, 0x9f, 0x74, 0xdf, 0xa3, 0xf8, 0x19, 0xad, 0xb3, 0x1d, 0x15, 0xe5, 0xed, 0x8a, 0xaa, 0x52, 0xc1, 0xbd, 0x7c, 0xca, 0x26, 0x67, 0x11, 0xa7, 0x4d, 0xd6, 0x21, 0x04, 0xef, 0x3c, 0x2b, 0xf7, 0x37, 0xfc, 0xe6, 0x94, 0x2b, 0x34, 0x8a, 0x33, 0xc3, 0xdf, 0xd6, 0xd9, 0x2a, 0x72, 0x4b, 0x6d, 0x58, 0x78, 0x42, 0x1a, 0xeb, 0x23, 0x0a, 0x53, 0x3f, 0xe2, 0x1c, 0x8b, 0x2f, 0xd3, 0xda, 0x59, 0x6a, 0x61, 0x80, 0xa4, 0x5c, 0x98, 0x6d, 0x7e, 0xce, 0x4c, 0xdc, 0x8a, 0xd6, 0x81, 0xea, 0xd6, 0x90, 0x64, 0xbb, 0xdd, 0xfc, 0x20, 0xf3, 0xc5, 0x21, 0x25, 0xf8, 0x33, 0x95, 0xbe, 0xd1, 0x55, 0x7f, 0x67, 0x18, 0x2b, 0x9f, 0xe9, 0x91, 0x38, 0xaf, 0x3c, 0x35, 0x6c, 0x5e, 0x65, 0x29, 0x78, 0xdd, 0x23, 0x8b, 0x76, 0x1c, 0x74, 0x2f, 0x81, 0x58, 0xe2, 0x31, 0x4b, 0x96, 0x42, 0x08, 0x33, 0x09, 0x78, 0xb0, 0x62, 0x0a, 0x13, 0xa1, 0x6d, 0x76, 0x1d, 0x52, 0xf0, 0x6e, 0x46, 0x6a, 0x40, 0x94, 0xb6, 0x5c, 0xd6, 0xf2, 0x68, 0x54, 0xae, 0xd6, 0xf9, 0xa8, 0xc2, 0xa8, 0x84, 0xa0, 0xd0, 0xbf, 0x4e, 0xe5, 0x87, 0xee, 0xb8, 0xb6, 0x02, 0x48, 0x72, 0x39, 0xa7, 0xe5, 0x81, 0x72, 0xc8, 0x09, 0x98, 0x3a, 0x8d, 0xb1, 0xc1, 0xfc, 0x7c, 0xe8, 0xc4, 0x8b, 0xc8, 0xa6, 0xfb, 0x81, 0x2d, 0x6a, 0xa9, 0xe8, 0x3a, 0x3a, 0xb4, 0xdd, 0xf7, 0xa8, 0xd4, 0x0d, 0x3f, 0xe0, 0x0e, 0xa1, 0x6e, 0x04, 0x06, 0x2b, 0x8a, 0xce, 0xb9, 0xc9, 0x9e, 0xef, 0xa4, 0x1f, 0x4f, 0x87, 0x44, 0x78, 0x28, 0x12, 0x6d, 0x0d, 0x9c, 0x9f, 0x86, 0x05, 0xe8, 0x46, 0x7c, 0x5e, 0x4d, 0x67, 0x1d, 0x5c, 0x6d, 0x9f, 0xa7, 0x0d, 0x74, 0x70, 0x98, 0xd9, 0x41, 0x21, 0x12, 0x23, 0xb9, 0xbc, 0xf2, 0x61, 0x93, 0x8d, 0x67, 0x04, 0xa3, 0x2d, 0x22, 0xc6, 0x1e, 0x30, 0xf3, 0x57, 0x0a, 0x1f, 0x5d, 0x09, 0x98, 0xb4, 0x79, 0x10, 0x80, 0x88, 0x2a, 0xa5, 0x62, 0x31, 0x67, 0xb6, 0x3a, 0x23, 0xf3, 0x40, 0xf0, 0xe7, 0xc6, 0xf9, 0xa8, 0x30, 0xa7, 0x5b, 0x74, 0x63, 0x1f, 0xa5, 0xb5, 0x7a, 0xfd, 0xb1, 0xe6, 0xbc, 0x22, 0x69, 0x9b, 0xb0, 0x31, 0x56, 0x67, 0x5d, 0x59, 0x83, 0x53, 0xa5, 0xd1, 0xb5, 0x58, 0x97, 0xe4, 0xc1, 0x10, 0x61, 0xdd, 0x14, 0x5f, 0x23, 0xe8, 0x53, 0x7c, 0x63, 0x2f, 0x75, 0xc1, 0x0d, 0xf0, 0x5b, 0x25, 0x54, 0x72, 0x38, 0x57, 0x40, 0x17, 0xfe, 0x7b, 0x64, 0xb8, 0xe9, 0x98, 0x69, 0x15, 0x7f, 0xee, 0x35, 0xf7, 0xad, 0x7e, 0x63, 0xe9, 0x95, 0x93, 0x30, 0x29, 0x29, 0x50, 0x3a, 0x96, 0x76, 0x80, 0x23, 0xb4, 0x12, 0x5a, 0xd7, 0x49, 0xdf, 0xf4, 0xb9, 0x92, 0xee, 0x5c, 0x2b, 0x4f, 0x3a, 0xda, 0x48, 0x89, 0xe4, 0xae, 0x62, 0xec, 0x15, 0xd2, 0xdb, 0x59, 0x69, 0xd7, 0x30, 0xdb, 0x30, 0x75, 0x47, 0xf6, 0x38, 0xc3, 0x18, 0x50, 0x32, 0xb1, 0x2f, 0x75, 0xfb, 0xb3, 0x17, 0xe4, 0x7d, 0xf7, 0xb9, 0x29, 0x2a, 0xe9, 0xe7, 0x6a, 0x2c, 0x0a, 0x06, 0xfc, 0xad, 0x10, 0x8c, 0xdd, 0x23, 0x5f, 0x6e, 0x38, 0xd9, 0x67, 0xb6, 0x37, 0x95, 0x11, 0xff, 0x69, 0x65, 0xc2, 0x2f, 0x2c, 0x66, 0x80, 0xa1, 0x2b, 0x03, 0x04, 0xeb, 0x2b, 0x29, 0x6c, 0x99, 0xa7, 0x6c, 0x27, 0x29, 0xd9, 0x8e, 0x0a, 0x78, 0x24, 0xb6, 0x7f, 0x3f, 0xe8, 0x42, 0xd6, 0xf6, 0xab, 0x27, 0x3e, 0x89, 0x48, 0x45, 0xb3, 0x2d, 0xc6, 0xdd, 0xfc, 0x7a, 0x22, 0x0f, 0x76, 0xbd, 0x96, 0x5c, 0x69, 0x85, 0x81, 0x83, 0xc8, 0xf3, 0x57, 0x39, 0x5f, 0xc5, 0x7d, 0xc8, 0x29, 0xde, 0xfa, 0xac, 0xb5, 0x60, 0x3a, 0x75, 0x78, 0x68, 0xd5, 0xe5, 0x62, 0xf9, 0x78, 0x1e, 0xe3, 0x9e, 0x0e, 0x94, 0x68, 0x8a, 0xd3, 0x54, 0x5b, 0x32, 0xdd, 0x73, 0x66, 0xb6, 0xb0, 0x47, 0xe8, 0xd1, 0xd3, 0xd5, 0x65, 0x99, 0x7b, 0x23, 0x6e, 0x7f, 0x75, 0x96, 0xc5, 0xf8, 0xd7, 0xc1, 0xc1, 0x1b, 0xcf, 0x4a, 0x24, 0x46, 0x20, 0xcb, 0xd2, 0x1d, 0x55, 0x9a, 0x7c, 0x9b, 0x3f, };
22148 static const u8 ed25519_963_test_vectors_expected_sig[] = {
22149 	0xca, 0xa2, 0x87, 0x98, 0x95, 0xd4, 0xf6, 0x20, 0xb9, 0xeb, 0x5f, 0xed, 0x22, 0xb4, 0x56, 0x2e, 0xeb, 0x1a, 0xd6, 0x38, 0x22, 0x96, 0x8f, 0x76, 0xad, 0x91, 0x07, 0x6b, 0x16, 0x6c, 0x05, 0xee, 0x20, 0x86, 0x4d, 0x98, 0xbb, 0xbc, 0x6e, 0x79, 0xdd, 0x03, 0x62, 0xca, 0xcf, 0x7a, 0x21, 0xb4, 0xcf, 0xc2, 0x30, 0xd6, 0x35, 0x5d, 0x43, 0x12, 0x0c, 0xff, 0xfb, 0x94, 0x8b, 0x8f, 0x6c, 0x0e, };
22150 static const ec_test_case ed25519_963_test_case = {
22151 	.name = "EDDSA25519-SHA512/wei25519 963",
22152 	.ec_str_p = &wei25519_str_params,
22153 	.priv_key = ed25519_963_test_vectors_priv_key,
22154 	.priv_key_len = sizeof(ed25519_963_test_vectors_priv_key),
22155 	.nn_random = NULL,
22156 	.hash_type = SHA512,
22157 	.msg = (const char *)ed25519_963_test_vectors_message,
22158 	.msglen = sizeof(ed25519_963_test_vectors_message),
22159 	.sig_type = EDDSA25519,
22160 	.exp_sig = ed25519_963_test_vectors_expected_sig,
22161 	.exp_siglen = sizeof(ed25519_963_test_vectors_expected_sig),
22162 	.adata = NULL,
22163 	.adata_len = 0
22164 };
22165 
22166 /************************************************/
22167 static const u8 ed25519_964_test_vectors_priv_key[] = {
22168 	0x70, 0x74, 0x56, 0x86, 0x11, 0xa6, 0x6d, 0xfc, 0xa8, 0x30, 0x7c, 0xae, 0x60, 0x8b, 0xb2, 0x69, 0x95, 0x84, 0x4d, 0xf4, 0x35, 0xe5, 0x30, 0x0e, 0x5b, 0x4d, 0x72, 0x91, 0xcc, 0x22, 0x90, 0x7f, };
22169 static const u8 ed25519_964_test_vectors_message[] = {
22170 	0x6c, 0x13, 0x74, 0x23, 0xea, 0xc7, 0x90, 0xb8, 0xe8, 0xe4, 0x18, 0xb2, 0x90, 0xe0, 0x57, 0x9c, 0x7b, 0x86, 0xb1, 0x4a, 0xed, 0x81, 0x8d, 0xe8, 0xce, 0x53, 0xce, 0xa3, 0xf3, 0x40, 0xa1, 0xa9, 0x53, 0x91, 0xf9, 0x84, 0x96, 0x8f, 0x2b, 0x42, 0x29, 0x28, 0x2a, 0x81, 0x61, 0xc0, 0x9a, 0xb1, 0x49, 0xcd, 0xac, 0xd6, 0x69, 0x70, 0xb4, 0x01, 0x3f, 0x52, 0xe5, 0xe6, 0x8e, 0xa8, 0xc9, 0xdb, 0x68, 0x5b, 0x2c, 0x53, 0x07, 0x35, 0x00, 0xe5, 0xb3, 0x5e, 0x29, 0xea, 0x0b, 0xa1, 0xf4, 0xd1, 0x59, 0xa5, 0x58, 0xd3, 0x61, 0xb0, 0x65, 0x16, 0x83, 0x6c, 0xf7, 0xb9, 0xea, 0x50, 0x1f, 0xa0, 0x50, 0x6b, 0x98, 0x5f, 0x03, 0x6a, 0x82, 0xd9, 0xe0, 0x84, 0x48, 0x9d, 0x3b, 0xfe, 0xd3, 0x40, 0x93, 0xe2, 0xd6, 0xd9, 0xed, 0xf5, 0x57, 0x85, 0xed, 0x35, 0xa9, 0x0c, 0xe5, 0x6c, 0x76, 0x16, 0x86, 0xcc, 0x3e, 0xa1, 0xa2, 0xc7, 0x6a, 0xda, 0x5e, 0xc8, 0xc1, 0x45, 0xd8, 0x18, 0xb0, 0x47, 0xcc, 0x51, 0x6e, 0xec, 0x5d, 0x2d, 0x6a, 0x93, 0xa5, 0x55, 0x92, 0xd8, 0x92, 0xe3, 0xd5, 0xcd, 0x10, 0xc2, 0x50, 0xc0, 0x4b, 0x04, 0x9b, 0x38, 0xfc, 0x7e, 0xc0, 0xf3, 0x9a, 0xba, 0x15, 0x82, 0x40, 0x07, 0x33, 0x6c, 0x2b, 0x0f, 0x7f, 0x81, 0xd6, 0x4d, 0x5c, 0xa3, 0xe2, 0x9d, 0x6f, 0xda, 0x4c, 0x23, 0xd9, 0xba, 0x65, 0xd9, 0xfe, 0x3c, 0xb4, 0xe0, 0x39, 0x13, 0x69, 0x72, 0x87, 0xb4, 0x6a, 0x0b, 0x1f, 0xcc, 0xd2, 0x62, 0x4e, 0x39, 0x7a, 0xe9, 0x5c, 0x52, 0x54, 0xbc, 0xd8, 0x8d, 0x2c, 0x7c, 0x8f, 0x70, 0xfd, 0xc8, 0x17, 0x3f, 0x64, 0xc1, 0xde, 0x32, 0x28, 0x1a, 0xb4, 0x18, 0x46, 0x93, 0xb4, 0x8a, 0x34, 0x9e, 0x67, 0x82, 0xbc, 0x89, 0x92, 0xb4, 0x3c, 0x7d, 0xe7, 0xcb, 0x9d, 0x33, 0x92, 0x9b, 0xf9, 0x53, 0x06, 0xc2, 0xaf, 0x7e, 0x93, 0x8d, 0x84, 0x86, 0xb3, 0x86, 0xf9, 0xfd, 0x3f, 0x0f, 0x71, 0x61, 0xe0, 0xe6, 0x86, 0x2d, 0x4f, 0x92, 0x81, 0x44, 0x68, 0x65, 0xa1, 0xc9, 0xbe, 0x24, 0x60, 0xef, 0xbc, 0x20, 0x15, 0x1b, 0x06, 0xe7, 0x9d, 0x01, 0x46, 0x17, 0xd0, 0x30, 0x0e, 0x67, 0x1d, 0x48, 0x76, 0x74, 0x58, 0x59, 0x66, 0x25, 0xb7, 0x6d, 0xff, 0xc5, 0x58, 0xaa, 0x9b, 0x40, 0x61, 0x21, 0x96, 0xec, 0x82, 0x7e, 0x1c, 0x6f, 0xff, 0x51, 0x8f, 0xb7, 0xad, 0x4b, 0xf8, 0xc4, 0x6f, 0xcb, 0x27, 0x88, 0x85, 0xaa, 0x49, 0x1b, 0x77, 0xa2, 0x89, 0x95, 0xcf, 0xb9, 0xd7, 0x96, 0x40, 0xaa, 0xd1, 0x74, 0xc6, 0xdf, 0x43, 0x93, 0x8e, 0x3f, 0x13, 0x85, 0x20, 0x5c, 0x54, 0x59, 0x5b, 0x33, 0xde, 0xde, 0x50, 0x14, 0x37, 0x46, 0xa1, 0x70, 0x5e, 0x7e, 0x0b, 0x69, 0xaf, 0x4a, 0x26, 0xc3, 0xb7, 0x65, 0x15, 0x05, 0x18, 0x92, 0xb1, 0x5c, 0xa6, 0xe4, 0x8c, 0x3d, 0x91, 0xfb, 0xc7, 0x5e, 0x8f, 0xe4, 0xa0, 0xfe, 0x8e, 0xd2, 0xc2, 0x6c, 0x10, 0x73, 0xbe, 0xb7, 0x0e, 0xa3, 0x8d, 0x09, 0x27, 0x02, 0x92, 0x78, 0x40, 0x67, 0x55, 0xae, 0x6e, 0x11, 0xda, 0x37, 0x86, 0x53, 0x64, 0x95, 0x15, 0xe0, 0x08, 0x5b, 0x5e, 0xa7, 0xdb, 0x32, 0x49, 0x20, 0x8e, 0x33, 0xa6, 0xc8, 0xb6, 0xae, 0x8c, 0xd8, 0x0c, 0x9b, 0xd6, 0xb9, 0x83, 0xe7, 0x3e, 0x9b, 0x91, 0xdb, 0xec, 0x09, 0x1f, 0xae, 0x99, 0x5f, 0x80, 0x32, 0x42, 0x7e, 0xde, 0xc0, 0x2c, 0xad, 0x90, 0x55, 0xeb, 0x8b, 0x7d, 0xbc, 0xfa, 0x80, 0xd4, 0xf6, 0x4f, 0x57, 0x27, 0xa1, 0x52, 0xf1, 0x1c, 0x47, 0xe5, 0x2d, 0x75, 0x3a, 0x57, 0xb6, 0xe5, 0xfd, 0xdf, 0x77, 0x4c, 0xea, 0x4d, 0xa9, 0x10, 0x02, 0x68, 0x19, 0xc4, 0x1e, 0x32, 0xb4, 0xf1, 0x99, 0x72, 0x7e, 0x23, 0xc5, 0x4a, 0xb5, 0xd7, 0x01, 0x42, 0xb8, 0x54, 0xa2, 0x7b, 0x04, 0xe6, 0x4c, 0xf4, 0x4a, 0xf2, 0xa8, 0x99, 0x5e, 0x12, 0x00, 0xbd, 0x11, 0x7c, 0x7a, 0x16, 0x74, 0xed, 0xef, 0x59, 0xbc, 0x53, 0xf7, 0x3a, 0xda, 0xf6, 0x38, 0xe0, 0x77, 0x3b, 0x85, 0xb5, 0x63, 0x34, 0xaf, 0xf6, 0xe1, 0x17, 0x43, 0xe3, 0xa3, 0xd3, 0x61, 0x4a, 0xa8, 0xa3, 0x75, 0xb3, 0x78, 0x1e, 0xc8, 0x14, 0xcc, 0x08, 0xe7, 0x1e, 0xfa, 0x78, 0x18, 0x51, 0x9c, 0xb2, 0x4a, 0xf8, 0x2c, 0x33, 0x1d, 0xfd, 0x6a, 0xc7, 0x8e, 0xc1, 0x7f, 0xd7, 0x17, 0x4b, 0x61, 0x02, 0x1e, 0x8c, 0xf9, 0x01, 0xa2, 0xaa, 0xa6, 0xad, 0xbc, 0x90, 0x2a, 0x91, 0x6b, 0x2a, 0x2f, 0x4f, 0x79, 0xe5, 0x51, 0x50, 0x1f, 0xbf, 0x01, 0xdf, 0x6b, 0x85, 0x18, 0x50, 0x4c, 0x1e, 0x94, 0x64, 0x69, 0x38, 0xbe, 0xd1, 0xa8, 0x50, 0x9c, 0x2a, 0x38, 0xfb, 0x6a, 0x79, 0x8a, 0x78, 0x58, 0xf4, 0x09, 0xb0, 0xf2, 0xfb, 0x9b, 0x3f, 0x48, 0x17, 0xe5, 0x68, 0xc5, 0x2d, 0x9a, 0xbf, 0xe2, 0x16, 0x8c, 0xc3, 0x65, 0x0f, 0xc4, 0x3e, 0x0f, 0x99, 0x75, 0xfe, 0x29, 0xe3, 0x3a, 0xed, 0x1a, 0x7b, 0xf3, 0x0d, 0x86, 0x31, 0x15, 0x07, 0x90, 0x65, 0x0a, 0x3c, 0xb7, 0x8c, 0x36, 0x8f, 0x1a, 0xea, 0x9a, 0xc6, 0x0c, 0x5e, 0xeb, 0x96, 0x9a, 0x45, 0xf8, 0x4a, 0xa3, 0x73, 0x66, 0xa8, 0x39, 0x77, 0x19, 0x0f, 0x41, 0xae, 0x42, 0x1e, 0x0c, 0x46, 0xfd, 0xa3, 0xfa, 0x01, 0xb9, 0x26, 0xfc, 0xef, 0x82, 0x24, 0xfd, 0xa3, 0x6d, 0xf4, 0xf8, 0xa8, 0x77, 0x01, 0xfe, 0x79, 0xfe, 0x06, 0x28, 0xef, 0x0c, 0xc0, 0x2d, 0xf2, 0xbd, 0x78, 0x32, 0x07, 0xc7, 0xdb, 0x87, 0x11, 0x9a, 0x03, 0x69, 0xfe, 0x16, 0xee, 0xb3, 0x8f, 0xdc, 0x9f, 0xb3, 0x5d, 0x9e, 0x19, 0x5f, 0xe1, 0x4f, 0x8c, 0x10, 0x38, 0x20, 0x8a, 0xb9, 0x77, 0x00, 0xaf, 0x79, 0xf2, 0xe2, 0xe0, 0x54, 0x96, 0x83, 0x02, 0x07, 0xc7, 0xda, 0x8d, 0xbe, 0x8e, 0x9b, 0xb7, 0x3b, 0xc4, 0x71, 0xa4, 0x3f, 0x1b, 0xe6, 0x50, 0xfa, 0x92, 0x81, 0x9a, 0xeb, 0x5d, 0xc7, 0xee, 0xd7, 0xee, 0xd8, 0x17, 0x12, 0x70, 0xd2, 0x19, 0x25, 0x7d, 0x19, 0x61, 0x0b, 0x89, 0xd2, 0xd6, 0x2d, 0x3f, 0x5b, 0x64, 0x8e, 0x13, 0x9e, 0xed, 0xf1, 0xff, 0x74, 0xbe, 0x01, 0xa5, 0xef, 0x1d, 0x95, 0xf8, 0x12, 0x92, 0x26, 0x01, 0xee, 0x92, 0x51, 0x51, 0x57, 0xc4, 0xec, 0xad, 0xfa, 0x3e, 0xef, 0x9f, 0x2a, 0x67, 0x7c, 0x00, 0x3c, 0xa4, 0xab, 0x9b, 0x2c, 0x45, 0x47, 0x2c, 0xe5, 0x5e, 0x18, 0xf4, 0x0a, 0x21, 0xfe, 0x1b, 0x0d, 0x45, 0xb5, 0x0b, 0x50, 0xc5, 0x2a, 0x0b, 0x1a, 0x5d, 0x7c, 0x37, 0xd8, 0xeb, 0xc1, 0x5e, 0x02, 0x05, 0x84, 0xd9, 0xed, 0xd7, 0xb5, 0x65, 0x05, 0xf8, 0x20, 0x78, 0xe0, 0xf8, 0x99, 0x38, 0x91, 0x35, 0x01, 0x4c, 0x86, 0xd1, 0xe2, 0xed, 0x49, 0xf9, 0xcd, 0x31, 0x90, 0x76, 0x94, 0x35, 0x53, 0xa3, 0x12, 0xae, 0x05, 0xab, 0x33, 0x35, 0x26, 0xe1, 0x36, 0x71, 0x4f, 0x09, 0xa4, 0x02, 0xb3, 0xc8, };
22171 static const u8 ed25519_964_test_vectors_expected_sig[] = {
22172 	0x7f, 0x65, 0x31, 0x34, 0xc0, 0xb9, 0x0f, 0x44, 0xa4, 0x89, 0xf0, 0xb0, 0x5f, 0xc4, 0x07, 0x07, 0xad, 0x9f, 0x13, 0x98, 0xf3, 0x40, 0xb4, 0x47, 0xa3, 0xc9, 0x86, 0x1f, 0x51, 0x1c, 0x9f, 0x15, 0x68, 0x80, 0x3b, 0x76, 0x84, 0xa0, 0x4a, 0x89, 0x8c, 0x45, 0x15, 0x4d, 0xd4, 0x86, 0xbd, 0x50, 0x75, 0x89, 0x98, 0xe1, 0x26, 0x43, 0x93, 0x78, 0xb3, 0xf5, 0x9f, 0xf3, 0x67, 0x49, 0x2a, 0x0a, };
22173 static const ec_test_case ed25519_964_test_case = {
22174 	.name = "EDDSA25519-SHA512/wei25519 964",
22175 	.ec_str_p = &wei25519_str_params,
22176 	.priv_key = ed25519_964_test_vectors_priv_key,
22177 	.priv_key_len = sizeof(ed25519_964_test_vectors_priv_key),
22178 	.nn_random = NULL,
22179 	.hash_type = SHA512,
22180 	.msg = (const char *)ed25519_964_test_vectors_message,
22181 	.msglen = sizeof(ed25519_964_test_vectors_message),
22182 	.sig_type = EDDSA25519,
22183 	.exp_sig = ed25519_964_test_vectors_expected_sig,
22184 	.exp_siglen = sizeof(ed25519_964_test_vectors_expected_sig),
22185 	.adata = NULL,
22186 	.adata_len = 0
22187 };
22188 
22189 /************************************************/
22190 static const u8 ed25519_965_test_vectors_priv_key[] = {
22191 	0x7d, 0x7c, 0xa8, 0xe8, 0xd3, 0xb8, 0x43, 0x44, 0xa5, 0xe4, 0xde, 0xa0, 0x8b, 0x33, 0x8d, 0x8f, 0xaa, 0x5f, 0xfc, 0x11, 0x9c, 0xe5, 0x66, 0xef, 0x65, 0x6f, 0x0f, 0x45, 0x84, 0x77, 0x5b, 0x21, };
22192 static const u8 ed25519_965_test_vectors_message[] = {
22193 	0x0b, 0x72, 0x70, 0x75, 0x34, 0x5d, 0x61, 0x9f, 0x5c, 0xdc, 0x7f, 0xc4, 0xc4, 0x3c, 0xdc, 0x19, 0x10, 0x58, 0x11, 0xd9, 0x5d, 0x06, 0x9f, 0x81, 0xc0, 0xa6, 0x2f, 0xe1, 0xe1, 0x17, 0x8c, 0xf1, 0xc3, 0x5d, 0xb0, 0x5e, 0x2d, 0xe8, 0x7d, 0x11, 0xae, 0x1a, 0x6f, 0x53, 0xef, 0x38, 0xb3, 0x9b, 0xf4, 0xed, 0x8f, 0xbf, 0x56, 0xef, 0x01, 0x7a, 0x1d, 0x3c, 0x15, 0xb6, 0x4f, 0xe4, 0xb2, 0x61, 0x0b, 0xf6, 0x9b, 0xd1, 0x9a, 0xc7, 0xaf, 0xd4, 0x6a, 0x2b, 0x87, 0xb4, 0x88, 0xb6, 0xc7, 0x8a, 0xd4, 0x56, 0x81, 0x1c, 0x1d, 0xd6, 0xbd, 0x4a, 0x6b, 0x5d, 0xa6, 0x98, 0x73, 0x9f, 0xd1, 0xa1, 0x4c, 0xeb, 0x9f, 0x27, 0xf1, 0x24, 0xb6, 0x9f, 0x6b, 0xd1, 0x6d, 0xe5, 0x53, 0x7a, 0xad, 0x80, 0x68, 0x1c, 0x56, 0x33, 0x58, 0x03, 0x94, 0xda, 0x3b, 0x84, 0xe9, 0xb7, 0xa5, 0x5e, 0xba, 0xb8, 0x52, 0x2d, 0x2d, 0x6b, 0xf1, 0xaa, 0x4e, 0x7b, 0x15, 0x9c, 0xbf, 0x4e, 0x20, 0xb5, 0x0b, 0xfe, 0x9c, 0x71, 0x1a, 0xa0, 0x47, 0x11, 0x9f, 0x1d, 0xad, 0x87, 0x49, 0x26, 0x0b, 0x87, 0x63, 0x9e, 0x9c, 0x14, 0x1d, 0xef, 0x62, 0x02, 0x6a, 0x99, 0x03, 0x73, 0xdc, 0xfd, 0x99, 0xf7, 0x7b, 0x0f, 0x5e, 0xa6, 0xad, 0xfd, 0x8f, 0x59, 0x4b, 0x9c, 0xe4, 0x10, 0x64, 0xa5, 0xed, 0x30, 0x7b, 0xf2, 0xd8, 0xd1, 0x73, 0x70, 0x49, 0x8a, 0xd7, 0xf4, 0x5f, 0x9c, 0x4d, 0xd2, 0x6c, 0x42, 0x0f, 0x45, 0x0f, 0x53, 0x62, 0x3b, 0xb6, 0xd7, 0xf3, 0xf4, 0x6a, 0x14, 0x9d, 0x8f, 0x13, 0x5b, 0xc2, 0x91, 0x33, 0x10, 0xfb, 0x8f, 0x90, 0x43, 0xd0, 0x99, 0x27, 0x8b, 0xbe, 0xba, 0x39, 0x17, 0x9f, 0xa3, 0x67, 0xb0, 0x16, 0x73, 0xe1, 0xc9, 0x53, 0xef, 0xfd, 0x2c, 0xae, 0xa7, 0x31, 0x1c, 0x47, 0xc0, 0x37, 0x27, 0x44, 0x09, 0x5b, 0x1c, 0x8f, 0x90, 0xee, 0xf5, 0xf1, 0x92, 0x9d, 0xb1, 0x99, 0x6c, 0xd5, 0x84, 0xf6, 0x15, 0xd5, 0x6f, 0xae, 0x3a, 0xec, 0xac, 0x3e, 0xe8, 0x8b, 0xd0, 0xb2, 0x96, 0xf4, 0x49, 0xcc, 0x27, 0x13, 0xc5, 0x2d, 0xa6, 0x95, 0x24, 0x8f, 0xaa, 0x8e, 0x38, 0x9b, 0x05, 0xa0, 0xbc, 0xac, 0x69, 0xdc, 0xe9, 0x71, 0x97, 0x23, 0x19, 0x4f, 0x43, 0x3b, 0x02, 0x97, 0xeb, 0x08, 0x59, 0x01, 0x9f, 0x14, 0x1a, 0x20, 0x7c, 0xe8, 0xcc, 0xb5, 0x98, 0x82, 0xca, 0xa6, 0xe1, 0x8f, 0x0b, 0x43, 0xbd, 0xdd, 0xb9, 0x0a, 0x0a, 0x85, 0xff, 0xd5, 0x77, 0xd6, 0x39, 0x4a, 0x1d, 0x80, 0x48, 0x94, 0x10, 0xf9, 0x2a, 0xfb, 0x85, 0xba, 0x50, 0x6a, 0xa9, 0xf3, 0xf4, 0x27, 0x44, 0x5d, 0x21, 0x22, 0x4b, 0x9c, 0xb0, 0x46, 0xc0, 0x5f, 0x1b, 0xac, 0xd7, 0xb7, 0x49, 0xfb, 0x7b, 0x10, 0x24, 0xd0, 0x92, 0xe4, 0xee, 0x4b, 0x30, 0xa4, 0x6e, 0xdf, 0x71, 0x84, 0x70, 0xc9, 0x94, 0x91, 0xc6, 0x8f, 0x48, 0x79, 0xd6, 0x2b, 0xfc, 0xe7, 0x04, 0x6d, 0x81, 0x38, 0xcb, 0xb9, 0xe7, 0x21, 0x29, 0x99, 0xa4, 0x49, 0x8b, 0x45, 0x5f, 0xc9, 0x0a, 0xc2, 0x83, 0xe9, 0x35, 0xde, 0x04, 0xdf, 0x6f, 0xc9, 0x99, 0xe4, 0x43, 0x4b, 0xe1, 0x10, 0x63, 0xd6, 0xe4, 0xee, 0x9e, 0x09, 0x6a, 0x87, 0xbc, 0x71, 0x6d, 0x2c, 0x81, 0x99, 0x16, 0xc3, 0x7a, 0x4e, 0x62, 0x98, 0xc4, 0x99, 0x45, 0x36, 0x6e, 0xc3, 0xf5, 0x00, 0x72, 0x0b, 0x06, 0xdc, 0x99, 0xd3, 0xd8, 0xac, 0x30, 0x3e, 0x6c, 0x26, 0x4e, 0x28, 0xa7, 0xc2, 0xd4, 0x19, 0xec, 0x62, 0x2a, 0x97, 0xa7, 0x11, 0x54, 0x4f, 0xb1, 0xf4, 0x73, 0x5b, 0x11, 0xf8, 0xbb, 0x1d, 0x7e, 0x2c, 0x81, 0x6a, 0x15, 0x62, 0x87, 0xb4, 0xcc, 0x0c, 0x65, 0xaa, 0xa2, 0x80, 0xb8, 0x37, 0x73, 0x7f, 0x0a, 0x84, 0xe3, 0x6d, 0xe2, 0xdf, 0x2f, 0xc3, 0xa5, 0x0d, 0xf9, 0x80, 0x91, 0x8f, 0xb9, 0xe5, 0x83, 0x4b, 0x42, 0xac, 0x0e, 0x0c, 0x72, 0x78, 0xd7, 0xfe, 0x8d, 0xb4, 0xdb, 0xde, 0xca, 0x01, 0x41, 0xd5, 0xfe, 0xf5, 0xdc, 0x61, 0x51, 0xf8, 0x7b, 0x86, 0x34, 0xc2, 0x41, 0xa8, 0xfa, 0x0a, 0x82, 0x71, 0x78, 0x99, 0x77, 0x3a, 0xe8, 0x9f, 0x53, 0x78, 0x90, 0xb9, 0x15, 0x5a, 0x7a, 0x05, 0xbc, 0xe4, 0x78, 0x66, 0xec, 0x20, 0x28, 0xa4, 0x78, 0x98, 0xd4, 0x85, 0x82, 0x3a, 0x2e, 0x99, 0x23, 0x19, 0x68, 0x0e, 0xb6, 0x99, 0xb0, 0xdd, 0x53, 0x58, 0xf5, 0x46, 0xfc, 0x53, 0x7c, 0x73, 0xd3, 0xa4, 0xb2, 0x23, 0xa0, 0x94, 0x15, 0x18, 0xb6, 0xd1, 0xe6, 0x6b, 0x27, 0x67, 0x6c, 0x1b, 0x1f, 0xc7, 0x6a, 0x08, 0x32, 0x05, 0x24, 0xa7, 0x2e, 0x29, 0x7f, 0xce, 0x17, 0xaa, 0x80, 0xd8, 0xea, 0x7b, 0x38, 0x8a, 0x55, 0x16, 0x8e, 0x7d, 0xad, 0xb8, 0x36, 0xe9, 0xde, 0xe7, 0x07, 0xed, 0x25, 0xc0, 0xee, 0x4d, 0xb2, 0x5b, 0xee, 0x3c, 0x48, 0x5b, 0x39, 0x64, 0x92, 0x04, 0xef, 0xaf, 0x28, 0x20, 0xb2, 0x73, 0x63, 0x68, 0xfc, 0x77, 0x3c, 0xe0, 0x90, 0xc3, 0x85, 0x37, 0x80, 0x02, 0xc4, 0x71, 0xb0, 0x94, 0x79, 0x5c, 0xb2, 0x66, 0xd3, 0x9e, 0xb7, 0x58, 0x0d, 0x70, 0x1b, 0xe4, 0xc8, 0x91, 0x6f, 0x6b, 0x38, 0xbf, 0xe2, 0x5f, 0xdf, 0x36, 0xd6, 0xc4, 0xad, 0xaf, 0xa9, 0xae, 0x98, 0x64, 0xc5, 0x7b, 0xb7, 0x37, 0xb4, 0x95, 0x06, 0xed, 0x38, 0xd6, 0x2d, 0xe6, 0x0c, 0xc0, 0x59, 0x9e, 0xc6, 0xbb, 0x1a, 0xcf, 0x24, 0xb1, 0xd3, 0x7d, 0x60, 0xef, 0xde, 0xb7, 0xd9, 0x42, 0xc5, 0x36, 0x03, 0xa2, 0xf0, 0x47, 0x6e, 0x95, 0x12, 0xc9, 0x38, 0xb2, 0x8d, 0x49, 0x5a, 0x6f, 0x26, 0xa9, 0x07, 0xc3, 0x96, 0xb8, 0x41, 0xae, 0xdd, 0x8e, 0x14, 0xac, 0x44, 0x7b, 0x49, 0x5d, 0xf1, 0xf6, 0x76, 0xda, 0xcc, 0xd5, 0xa7, 0x40, 0xc0, 0x42, 0xf5, 0x77, 0x2b, 0x7d, 0xb1, 0x7f, 0x4f, 0x1a, 0x3a, 0x1c, 0x8e, 0x7c, 0x48, 0x83, 0x70, 0xe7, 0x36, 0xb5, 0x1e, 0x69, 0x0f, 0xd2, 0xdd, 0xcb, 0x5a, 0xa6, 0x19, 0x57, 0xa7, 0xc7, 0x97, 0x5a, 0xcb, 0x2d, 0xcb, 0x91, 0x5d, 0x07, 0x4d, 0x74, 0x42, 0x79, 0xea, 0x1c, 0x41, 0x69, 0xf8, 0x68, 0x87, 0x3a, 0xc5, 0xc2, 0x08, 0x90, 0x16, 0x2c, 0x1d, 0xf9, 0x65, 0x64, 0x19, 0x97, 0x5a, 0x43, 0xd3, 0x19, 0x8e, 0x18, 0xc3, 0x09, 0xa1, 0xeb, 0x7c, 0x1d, 0x87, 0x87, 0x3f, 0xb1, 0x5c, 0x6d, 0xa4, 0x7f, 0x54, 0x8a, 0x01, 0xf6, 0x9b, 0xda, 0xb9, 0xc3, 0x9e, 0xf0, 0x0d, 0x41, 0x8a, 0x6f, 0x61, 0x9d, 0xd7, 0x3d, 0x7d, 0xb4, 0x5c, 0xbb, 0x6a, 0xd2, 0x25, 0xa2, 0xde, 0x78, 0x7b, 0xa7, 0x77, 0xbc, 0x73, 0xd2, 0x8f, 0xc3, 0x04, 0xf1, 0x00, 0x09, 0xf4, 0x02, 0x2c, 0x2c, 0xf8, 0x4d, 0xe0, 0x08, 0xd7, 0x0f, 0xcd, 0xc8, 0xba, 0x7f, 0x10, 0x7c, 0x36, 0x98, 0x59, 0xe9, 0xc9, 0x0c, 0xa8, 0xa3, 0x93, 0xb5, 0x53, 0xf2, 0x66, 0x05, 0xff, 0xd7, 0x23, 0x0c, 0x92, 0x14, 0x90, 0x70, 0x0f, };
22194 static const u8 ed25519_965_test_vectors_expected_sig[] = {
22195 	0xd0, 0xc3, 0xe2, 0x48, 0xa8, 0xcb, 0x2d, 0xdc, 0x7e, 0x9f, 0x21, 0xc9, 0xc5, 0xb0, 0x09, 0xf7, 0x0e, 0xa2, 0x9d, 0xa6, 0x89, 0x7c, 0xd9, 0x2c, 0x26, 0x0f, 0x04, 0x7e, 0xd6, 0x8a, 0xa1, 0xc8, 0xb9, 0x65, 0x7f, 0x9d, 0x82, 0x6e, 0x88, 0xf4, 0xa5, 0x12, 0xc5, 0x00, 0x3b, 0xe6, 0x40, 0x68, 0x80, 0x74, 0x12, 0x63, 0xae, 0x7c, 0xe6, 0x86, 0x0e, 0xfe, 0x73, 0xad, 0x54, 0xd4, 0x82, 0x04, };
22196 static const ec_test_case ed25519_965_test_case = {
22197 	.name = "EDDSA25519-SHA512/wei25519 965",
22198 	.ec_str_p = &wei25519_str_params,
22199 	.priv_key = ed25519_965_test_vectors_priv_key,
22200 	.priv_key_len = sizeof(ed25519_965_test_vectors_priv_key),
22201 	.nn_random = NULL,
22202 	.hash_type = SHA512,
22203 	.msg = (const char *)ed25519_965_test_vectors_message,
22204 	.msglen = sizeof(ed25519_965_test_vectors_message),
22205 	.sig_type = EDDSA25519,
22206 	.exp_sig = ed25519_965_test_vectors_expected_sig,
22207 	.exp_siglen = sizeof(ed25519_965_test_vectors_expected_sig),
22208 	.adata = NULL,
22209 	.adata_len = 0
22210 };
22211 
22212 /************************************************/
22213 static const u8 ed25519_966_test_vectors_priv_key[] = {
22214 	0xd2, 0x1f, 0xdd, 0x7b, 0x10, 0xe5, 0x4a, 0x8b, 0x6b, 0xe9, 0x5a, 0x02, 0x24, 0xad, 0x70, 0x66, 0x4d, 0xd9, 0x21, 0x12, 0xe2, 0x68, 0x3a, 0x4f, 0xd2, 0x79, 0xc4, 0x07, 0xdb, 0x38, 0x71, 0xbb, };
22215 static const u8 ed25519_966_test_vectors_message[] = {
22216 	0xb8, 0x64, 0x4a, 0xdb, 0xef, 0x9c, 0x7c, 0xab, 0x91, 0x20, 0xac, 0xed, 0xc8, 0xe7, 0x5c, 0x43, 0x3d, 0x03, 0x6f, 0xfa, 0xe0, 0xf9, 0x55, 0xbe, 0x6a, 0x48, 0x8f, 0x1f, 0x42, 0x7a, 0x68, 0xa8, 0x90, 0x2d, 0x02, 0x6e, 0x63, 0xdd, 0x6c, 0x9b, 0xf9, 0xd9, 0x7d, 0xe7, 0x86, 0xb3, 0x1d, 0xd4, 0xf4, 0xc9, 0xa4, 0xf8, 0xa6, 0x22, 0xf1, 0xff, 0xc8, 0x4d, 0xa6, 0x96, 0x7c, 0xa7, 0x74, 0x33, 0xc3, 0x98, 0xf4, 0xd3, 0xf1, 0xc4, 0x43, 0x49, 0x89, 0xb7, 0xac, 0x9d, 0x0f, 0x3b, 0x1b, 0xe0, 0xc8, 0xb3, 0x52, 0x82, 0x4f, 0x4e, 0x7a, 0x08, 0x3f, 0x34, 0x2e, 0xc1, 0xbe, 0x1d, 0xa8, 0xfb, 0x75, 0x52, 0x42, 0xa6, 0x54, 0x88, 0x0e, 0xf2, 0x98, 0xf0, 0x59, 0x79, 0xff, 0x02, 0x6d, 0xdc, 0xc0, 0x44, 0x86, 0x0e, 0x67, 0x57, 0xa2, 0x9c, 0xfa, 0xa2, 0x22, 0xa3, 0x59, 0x7e, 0x38, 0xf1, 0x77, 0x99, 0x62, 0xa4, 0x1a, 0x4c, 0x8c, 0xe6, 0xa6, 0x5b, 0x87, 0x81, 0x99, 0xb4, 0xd8, 0x0f, 0x4a, 0x03, 0x90, 0xca, 0xc1, 0x9c, 0x22, 0x6e, 0xea, 0x4b, 0x60, 0x36, 0xe5, 0x7a, 0xd8, 0x30, 0xec, 0xfc, 0x00, 0x69, 0x3e, 0x26, 0x13, 0xd3, 0xed, 0xf4, 0x65, 0xfc, 0x8c, 0x4f, 0xa2, 0x93, 0xfd, 0x8c, 0xfc, 0x36, 0xdc, 0x8e, 0x37, 0xbc, 0xeb, 0xab, 0xec, 0x03, 0x49, 0xeb, 0xd8, 0x84, 0xe1, 0xb2, 0x8b, 0xce, 0x82, 0x4e, 0x0d, 0x55, 0xb6, 0xd0, 0x15, 0x38, 0x38, 0x01, 0x66, 0x8b, 0x34, 0xf5, 0xba, 0x72, 0x3d, 0x2a, 0xc0, 0xa2, 0x64, 0xfa, 0xb2, 0xc7, 0x28, 0x60, 0x8f, 0x16, 0x2d, 0xe0, 0x11, 0x79, 0x25, 0x9b, 0xe2, 0xcc, 0xb0, 0x81, 0x50, 0x02, 0xfd, 0xed, 0x8e, 0x0d, 0x78, 0xb0, 0x28, 0x07, 0x31, 0x3e, 0x91, 0x0e, 0xb3, 0xa7, 0x33, 0x7c, 0x53, 0x4e, 0x84, 0x6f, 0x9e, 0xe1, 0x55, 0x42, 0x6e, 0x4a, 0xef, 0x64, 0x36, 0x61, 0xb0, 0xed, 0xb4, 0x45, 0x96, 0xfd, 0xdc, 0xd0, 0xb3, 0xe8, 0x14, 0xc1, 0x37, 0x81, 0x7a, 0x42, 0x2b, 0xaa, 0x40, 0xc9, 0x05, 0x3d, 0x03, 0x86, 0xc6, 0xec, 0xdb, 0x58, 0x90, 0x52, 0x59, 0x47, 0x42, 0x67, 0x7c, 0x48, 0xdc, 0xfc, 0x8c, 0xd4, 0xa9, 0x36, 0x67, 0xed, 0x4d, 0x87, 0x64, 0x60, 0x01, 0xed, 0xa0, 0x79, 0xe8, 0xb9, 0x9d, 0x52, 0xba, 0x21, 0xc5, 0xec, 0x56, 0x69, 0xfe, 0xdf, 0x6f, 0x40, 0x44, 0x7a, 0x7f, 0xf8, 0x90, 0x1d, 0xb0, 0xef, 0x18, 0x47, 0xd3, 0xca, 0xcf, 0x01, 0x98, 0xa2, 0xf3, 0xbd, 0x7b, 0xcf, 0x2d, 0xd8, 0x11, 0xa0, 0x97, 0xfc, 0x5e, 0x51, 0x88, 0xb0, 0x3f, 0xdf, 0x54, 0xe5, 0x17, 0x63, 0x7a, 0x14, 0x50, 0x10, 0x00, 0xd0, 0xd3, 0x55, 0x16, 0xca, 0xf0, 0x69, 0x94, 0x02, 0xb4, 0x8f, 0x8d, 0x8c, 0xc3, 0xaf, 0xb1, 0x7a, 0x56, 0x13, 0x2d, 0x08, 0x23, 0x70, 0x35, 0xa0, 0xc9, 0x54, 0x90, 0xbf, 0xe5, 0xd7, 0xb7, 0xfb, 0x40, 0x17, 0x8f, 0x28, 0x1e, 0x4d, 0x87, 0x2e, 0x47, 0xa0, 0xe9, 0x55, 0xce, 0x97, 0x36, 0xf3, 0xc3, 0x33, 0xa6, 0xad, 0xf5, 0x0a, 0xd3, 0x19, 0x94, 0xeb, 0x9f, 0x45, 0x32, 0x7f, 0xac, 0xc8, 0xc5, 0xd1, 0x13, 0xfa, 0xd4, 0x71, 0x3f, 0xe7, 0xf1, 0x98, 0x01, 0x0d, 0x42, 0x04, 0x6b, 0xbf, 0xe6, 0x8b, 0x0d, 0xaa, 0x79, 0xdc, 0xb8, 0x75, 0x59, 0x29, 0xbe, 0x92, 0xf9, 0xca, 0xa1, 0x50, 0xdf, 0xbd, 0xe3, 0xfc, 0x9e, 0x39, 0x2b, 0x2b, 0x70, 0x1c, 0x30, 0x21, 0xc2, 0x40, 0xe4, 0x67, 0x9d, 0xe4, 0x11, 0x24, 0xb1, 0x88, 0x8e, 0x5d, 0xb5, 0xa8, 0x3d, 0x05, 0xce, 0xaf, 0x49, 0xeb, 0x44, 0x0d, 0xc4, 0x50, 0x26, 0xd4, 0x50, 0xbc, 0x98, 0x4b, 0x8d, 0x6f, 0x02, 0x85, 0x0e, 0xcb, 0x57, 0x0e, 0xee, 0x0a, 0x38, 0x19, 0xb1, 0x2b, 0xc2, 0x63, 0x67, 0xb5, 0xb9, 0x8e, 0x1b, 0x14, 0x1c, 0x9b, 0x0a, 0x96, 0x90, 0xea, 0x4a, 0x37, 0x00, 0xda, 0xd1, 0x23, 0x95, 0xf9, 0x75, 0xd1, 0x1c, 0xd7, 0x7f, 0x96, 0x36, 0x88, 0x31, 0xf2, 0x1f, 0x4e, 0x96, 0x8c, 0xc5, 0xba, 0x9e, 0xf8, 0x24, 0x74, 0x03, 0x8b, 0xc7, 0xaa, 0x26, 0x12, 0x2d, 0x21, 0x8b, 0x74, 0x30, 0x41, 0x50, 0x6a, 0xeb, 0xbd, 0x1f, 0x98, 0x79, 0x59, 0xfd, 0x16, 0x0d, 0x6e, 0xb7, 0xd5, 0x8d, 0x4f, 0x57, 0x6f, 0x8c, 0x0c, 0xa8, 0xaf, 0x86, 0x8e, 0x39, 0xb5, 0xea, 0x87, 0x20, 0x39, 0x37, 0xe0, 0x30, 0x8a, 0xcb, 0xea, 0xe9, 0x1e, 0x10, 0x60, 0x7e, 0x44, 0xe8, 0xab, 0x49, 0x5b, 0xc0, 0x1d, 0xd5, 0x73, 0xfb, 0xad, 0xc9, 0x44, 0x79, 0xff, 0x92, 0x08, 0x2c, 0x7b, 0xb7, 0x51, 0x34, 0x79, 0xc7, 0x0f, 0x04, 0x07, 0x76, 0x90, 0x25, 0xd3, 0x4d, 0x72, 0x14, 0x0c, 0x25, 0xd8, 0x21, 0xf0, 0x34, 0xa3, 0x98, 0x51, 0xa9, 0x3c, 0x62, 0x3b, 0x71, 0xc9, 0x40, 0x0e, 0x94, 0x26, 0x39, 0xf2, 0x8b, 0xbd, 0x03, 0x2e, 0x1d, 0x8d, 0x3c, 0x05, 0x9f, 0x7c, 0x2c, 0xd3, 0x1d, 0x74, 0x76, 0x46, 0x2d, 0x27, 0x76, 0x03, 0x5d, 0x07, 0x88, 0x02, 0x02, 0xdb, 0xfe, 0x9e, 0x07, 0xd1, 0x54, 0x62, 0x2d, 0x7a, 0xc6, 0x17, 0x5a, 0x5a, 0xfa, 0x79, 0xfe, 0xd4, 0xdc, 0xc1, 0x37, 0x12, 0x62, 0x0c, 0x41, 0x99, 0x4e, 0x11, 0xd9, 0x24, 0x30, 0x8f, 0xb2, 0xff, 0x3a, 0x1e, 0xda, 0x44, 0xc7, 0x61, 0xbc, 0x73, 0x6f, 0x34, 0x51, 0x22, 0xf0, 0x2a, 0x40, 0xae, 0x6f, 0x7d, 0xbd, 0x03, 0xd9, 0xfe, 0x96, 0xee, 0x3d, 0x7a, 0x3b, 0x4a, 0x5e, 0xef, 0xbf, 0xcc, 0x56, 0xdc, 0x42, 0xef, 0x27, 0xbd, 0x80, 0x85, 0x17, 0x60, 0x38, 0xb9, 0xeb, 0xae, 0x63, 0xaa, 0x75, 0x03, 0x52, 0x75, 0xec, 0x34, 0xe4, 0x18, 0x57, 0x39, 0xd6, 0x36, 0x24, 0x67, 0x70, 0xac, 0xcc, 0xc6, 0xdc, 0x62, 0x0e, 0x2f, 0xc9, 0x15, 0x6f, 0xa9, 0x48, 0x3e, 0x0d, 0x9c, 0xae, 0x0e, 0x8c, 0x46, 0x39, 0x48, 0xa3, 0xd9, 0x7a, 0xe8, 0xdd, 0xa5, 0x96, 0x6c, 0x88, 0xf0, 0x70, 0x93, 0x29, 0x2c, 0xce, 0x22, 0xbb, 0xda, 0x06, 0x2b, 0xaa, 0xfa, 0x7f, 0xe8, 0x4d, 0x0b, 0xa2, 0xd2, 0xdd, 0x29, 0x5b, 0x23, 0x45, 0x8b, 0xca, 0xeb, 0x2e, 0xf7, 0x42, 0xa2, 0xed, 0x1c, 0x83, 0x44, 0x83, 0xcd, 0x70, 0x93, 0x85, 0xaf, 0xea, 0xdc, 0xbc, 0x0a, 0x9c, 0x6a, 0x4f, 0x38, 0x7b, 0xab, 0xf7, 0xe3, 0xdc, 0x36, 0xc8, 0x10, 0xdb, 0x20, 0x9b, 0xeb, 0x66, 0xc8, 0x66, 0x64, 0x04, 0xc6, 0x61, 0xdf, 0xe9, 0xd3, 0x2c, 0x4c, 0x08, 0xaf, 0xc6, 0xf3, 0xb1, 0x25, 0x7d, 0x64, 0x84, 0xa7, 0x55, 0xf5, 0xac, 0x70, 0x1e, 0xb1, 0x3f, 0x87, 0x76, 0x3f, 0xee, 0x33, 0x0f, 0xfa, 0x04, 0x22, 0xcd, 0x80, 0xa9, 0x20, 0x38, 0xc6, 0xf4, 0x52, 0x92, 0xbd, 0xee, 0x5f, 0x89, 0xe9, 0x4c, 0x7a, 0x65, 0x21, 0x97, 0xfc, 0x19, 0x06, 0xb4, 0x82, 0x58, 0x37, 0x24, 0x49, 0xb1, 0x08, 0x1c, 0x6b, 0x97, 0x13, 0x4c, 0x43, 0xc8, 0x9e, 0xe2, };
22217 static const u8 ed25519_966_test_vectors_expected_sig[] = {
22218 	0x6d, 0x69, 0xe8, 0x3b, 0x3e, 0x7e, 0xd5, 0x5a, 0x85, 0xf9, 0xfc, 0x9d, 0x25, 0x19, 0xda, 0x0b, 0x0a, 0x1e, 0xb4, 0xda, 0xae, 0xe9, 0x91, 0xa6, 0x65, 0x1f, 0x5c, 0x89, 0x19, 0x0c, 0x0d, 0xe7, 0x23, 0x73, 0xcd, 0x98, 0x9d, 0x46, 0xbe, 0x13, 0x67, 0xf9, 0xda, 0xf1, 0xb9, 0x2f, 0xed, 0x3b, 0x52, 0xbb, 0xa5, 0x4a, 0x1e, 0x4c, 0xca, 0x5b, 0xc8, 0x72, 0x6e, 0xd0, 0x7f, 0x30, 0x25, 0x01, };
22219 static const ec_test_case ed25519_966_test_case = {
22220 	.name = "EDDSA25519-SHA512/wei25519 966",
22221 	.ec_str_p = &wei25519_str_params,
22222 	.priv_key = ed25519_966_test_vectors_priv_key,
22223 	.priv_key_len = sizeof(ed25519_966_test_vectors_priv_key),
22224 	.nn_random = NULL,
22225 	.hash_type = SHA512,
22226 	.msg = (const char *)ed25519_966_test_vectors_message,
22227 	.msglen = sizeof(ed25519_966_test_vectors_message),
22228 	.sig_type = EDDSA25519,
22229 	.exp_sig = ed25519_966_test_vectors_expected_sig,
22230 	.exp_siglen = sizeof(ed25519_966_test_vectors_expected_sig),
22231 	.adata = NULL,
22232 	.adata_len = 0
22233 };
22234 
22235 /************************************************/
22236 static const u8 ed25519_967_test_vectors_priv_key[] = {
22237 	0xd3, 0x36, 0xfd, 0x84, 0x08, 0x19, 0x6d, 0x22, 0xfb, 0x69, 0x8e, 0xb2, 0x5b, 0x76, 0x54, 0xfd, 0xa4, 0x6f, 0x5d, 0xe4, 0xc9, 0xb4, 0xd0, 0x49, 0x50, 0xc3, 0x98, 0xb5, 0x9a, 0x44, 0x29, 0x0a, };
22238 static const u8 ed25519_967_test_vectors_message[] = {
22239 	0xfb, 0x49, 0xc1, 0x9b, 0xc4, 0x44, 0x4c, 0x28, 0xeb, 0x26, 0x25, 0xf3, 0x1d, 0x99, 0x6d, 0x5e, 0x36, 0xc5, 0x7f, 0xa6, 0xfd, 0xd7, 0x72, 0xe6, 0x7b, 0x71, 0x99, 0xce, 0xc6, 0x7e, 0xda, 0x54, 0x51, 0x71, 0x2d, 0xf7, 0xa6, 0x9d, 0xbb, 0xd5, 0x6e, 0x7c, 0x39, 0x87, 0x96, 0xb2, 0x00, 0x1d, 0xef, 0x65, 0x1c, 0x4b, 0x9c, 0x05, 0xee, 0x31, 0xd9, 0x56, 0x79, 0x53, 0x5c, 0x81, 0x2a, 0x37, 0xd3, 0x1d, 0xdb, 0x30, 0x73, 0x19, 0x9c, 0xd7, 0x04, 0xff, 0x7c, 0xa2, 0x98, 0x1f, 0x7b, 0x9c, 0x92, 0x7a, 0x7f, 0x7d, 0x77, 0x6f, 0xb6, 0xf6, 0x09, 0xf7, 0x27, 0xe6, 0xea, 0x70, 0x9c, 0xe7, 0xf4, 0x3a, 0x60, 0x79, 0x35, 0x04, 0x16, 0x9a, 0x89, 0x05, 0xd9, 0xb2, 0x31, 0x09, 0xf0, 0xd8, 0x67, 0x96, 0x6a, 0xa3, 0xe3, 0x00, 0xc7, 0xe1, 0x1d, 0xde, 0xdb, 0x9c, 0xc1, 0x17, 0xb9, 0x04, 0xf6, 0x29, 0x27, 0xe4, 0x8e, 0x4d, 0x73, 0xfe, 0x1a, 0x6c, 0xec, 0xcc, 0x4c, 0xeb, 0x08, 0xe6, 0x4a, 0xb5, 0x5f, 0x25, 0xc9, 0x82, 0x16, 0xce, 0xc9, 0x37, 0x60, 0x8a, 0xd7, 0x93, 0x14, 0x69, 0x98, 0xf1, 0x4c, 0x29, 0x85, 0xe6, 0xc2, 0x91, 0x0d, 0xf7, 0xb1, 0x38, 0x8f, 0x9d, 0xd8, 0x63, 0xf1, 0xe4, 0xd7, 0xd1, 0x62, 0x14, 0x79, 0xb8, 0x51, 0x2c, 0xdb, 0x34, 0xe6, 0x73, 0xeb, 0x02, 0xa4, 0x89, 0x34, 0xe3, 0x9c, 0x2d, 0x18, 0xd7, 0x0f, 0x96, 0x6d, 0x67, 0x6a, 0x2b, 0xd7, 0x5d, 0xb5, 0x43, 0xd2, 0x5c, 0x5d, 0xcd, 0xc3, 0xef, 0x3b, 0x8b, 0xc8, 0x20, 0x18, 0x48, 0xc3, 0x09, 0x61, 0xe9, 0x15, 0xd9, 0x68, 0xbd, 0xc3, 0x19, 0x46, 0xb0, 0xd1, 0x8e, 0xde, 0x7c, 0xb0, 0x16, 0x6d, 0xbe, 0x1f, 0xfe, 0xff, 0x94, 0x39, 0xc9, 0xc3, 0x40, 0x4a, 0xf6, 0x01, 0x6c, 0x73, 0xed, 0xeb, 0x25, 0x3d, 0x93, 0xf5, 0x62, 0xa1, 0xa6, 0xcd, 0xd5, 0x78, 0x98, 0xa9, 0xb3, 0x42, 0x25, 0x87, 0xd5, 0xf5, 0x6a, 0xf3, 0xd0, 0x6b, 0x3f, 0x6c, 0x25, 0x75, 0x1f, 0x44, 0x46, 0x0f, 0xb3, 0x29, 0x96, 0x56, 0xdc, 0x11, 0x22, 0x7e, 0xf4, 0x83, 0x7a, 0xab, 0xdd, 0xee, 0x40, 0x0f, 0xa5, 0x3f, 0x69, 0xe5, 0xce, 0xd0, 0x53, 0xc7, 0x6d, 0xce, 0xcd, 0xf0, 0xad, 0xc9, 0xef, 0x80, 0xf4, 0xb3, 0x30, 0x54, 0x2f, 0xf1, 0xfa, 0x2d, 0xf0, 0xb8, 0xd4, 0x3c, 0xd1, 0xc3, 0x11, 0xb1, 0xb9, 0x95, 0x5c, 0x63, 0x2c, 0x8e, 0x5f, 0x04, 0x91, 0x93, 0x1c, 0x04, 0xde, 0x43, 0x4d, 0xf8, 0xf7, 0xa3, 0x94, 0xe5, 0xfe, 0xf0, 0x16, 0xdb, 0x2e, 0xb7, 0xc8, 0x7b, 0x2a, 0xc7, 0xa4, 0xa7, 0x30, 0x43, 0xbd, 0x7f, 0x98, 0xad, 0x0a, 0x4d, 0x45, 0x3a, 0xbf, 0xb0, 0xbe, 0x8b, 0xe4, 0xcb, 0x14, 0x57, 0x42, 0xaa, 0x56, 0xaa, 0x5e, 0xf2, 0xdf, 0xf1, 0x22, 0x30, 0xa5, 0x10, 0xe3, 0xb7, 0xf8, 0x2f, 0x78, 0x47, 0x70, 0x0e, 0xee, 0xa5, 0x90, 0x5b, 0x02, 0x89, 0x69, 0x6c, 0x4c, 0x14, 0x2b, 0xf3, 0x4b, 0xcf, 0x81, 0xa9, 0x62, 0xd7, 0x5b, 0x8d, 0x09, 0x10, 0x55, 0x73, 0x37, 0x79, 0x33, 0x5b, 0x7f, 0xd4, 0x7a, 0x20, 0xd1, 0x7c, 0x94, 0x8a, 0xb7, 0x32, 0x94, 0x78, 0x32, 0x67, 0x43, 0x71, 0xe2, 0x2e, 0x71, 0x11, 0x34, 0xf5, 0xc9, 0x19, 0x79, 0x23, 0x57, 0xf7, 0x9b, 0xf7, 0x0c, 0x44, 0x70, 0x78, 0x75, 0x28, 0x43, 0x4f, 0xc0, 0xb4, 0xca, 0x09, 0x3e, 0xe9, 0x25, 0x43, 0x42, 0x0d, 0x1c, 0xa8, 0x11, 0x24, 0xf5, 0x58, 0x53, 0x17, 0xe2, 0x50, 0x82, 0x1a, 0x4f, 0x3d, 0x8c, 0xe0, 0xf9, 0x19, 0xde, 0x9f, 0xbf, 0x01, 0x27, 0x08, 0x7e, 0x67, 0x69, 0x03, 0xf6, 0xcb, 0x39, 0x02, 0x5b, 0xcc, 0x73, 0xa0, 0x76, 0x29, 0x54, 0xb7, 0x2e, 0x66, 0xa6, 0xbe, 0x9b, 0x96, 0xc9, 0x7b, 0x6f, 0x60, 0x30, 0xbf, 0x5c, 0xa0, 0xbc, 0x27, 0x27, 0xa9, 0xa1, 0x79, 0xcf, 0x9d, 0x94, 0x05, 0xf3, 0xfe, 0x18, 0xf3, 0x49, 0x23, 0x89, 0x07, 0x9a, 0x5b, 0x65, 0xbc, 0xb1, 0x3a, 0x0d, 0x5e, 0xf4, 0x1c, 0x2c, 0xd9, 0x7e, 0x70, 0x2c, 0xee, 0x4a, 0x2f, 0xeb, 0x1e, 0x67, 0x02, 0xbd, 0x4c, 0x63, 0xfe, 0x0a, 0x4a, 0xe9, 0x94, 0xc4, 0x28, 0x7a, 0x83, 0x7b, 0xc3, 0xf6, 0x4c, 0x2d, 0x89, 0x88, 0x57, 0xcd, 0xb3, 0x2a, 0xcd, 0x4b, 0xd1, 0x33, 0x67, 0x6e, 0x51, 0xf7, 0x7b, 0xc7, 0x11, 0x0e, 0x3c, 0xe5, 0x2d, 0x92, 0x04, 0xfd, 0x26, 0x91, 0xa6, 0xd3, 0x70, 0x78, 0xf6, 0x8e, 0x7b, 0xce, 0xf3, 0x0f, 0xc9, 0xc4, 0x83, 0x98, 0x58, 0x22, 0xb6, 0x61, 0x11, 0x92, 0x38, 0xe4, 0x0f, 0x9c, 0xfd, 0xca, 0xbe, 0xf2, 0xd7, 0xb1, 0x6b, 0x05, 0x9a, 0xb2, 0x4a, 0xdc, 0x05, 0x00, 0x37, 0x12, 0xbb, 0xb1, 0x28, 0x09, 0x6e, 0x37, 0xf9, 0x1b, 0xc4, 0xc5, 0xc8, 0x15, 0x08, 0xbe, 0x27, 0xfa, 0x0b, 0x84, 0x94, 0x0b, 0xe3, 0x6b, 0xce, 0xd2, 0xe6, 0x5c, 0xd3, 0x6b, 0x39, 0xfb, 0xdc, 0x5e, 0xa6, 0x86, 0x14, 0x15, 0x92, 0x28, 0xca, 0x65, 0xc5, 0xd8, 0x40, 0x7b, 0xaf, 0x66, 0x3b, 0x52, 0x8e, 0x7d, 0x87, 0x73, 0x4c, 0x7b, 0xc7, 0x7d, 0xc8, 0x43, 0x1a, 0x1d, 0xd6, 0x87, 0x3c, 0xfd, 0xdf, 0xc3, 0xe7, 0x57, 0xd9, 0xad, 0x1f, 0xed, 0xd3, 0xc7, 0x98, 0xf1, 0xfe, 0x60, 0xe7, 0x15, 0xee, 0x48, 0xa6, 0xbc, 0xbb, 0x13, 0xb6, 0x16, 0xa8, 0x9a, 0x38, 0xe3, 0x36, 0x48, 0x9d, 0x3d, 0x6c, 0xcb, 0x72, 0x69, 0x14, 0x11, 0x2a, 0x1b, 0xc5, 0xd9, 0x77, 0xc9, 0xb2, 0xa3, 0xfa, 0xc1, 0x07, 0xad, 0x09, 0x4b, 0x03, 0x8a, 0xb7, 0x54, 0x68, 0x26, 0x3c, 0x34, 0xbd, 0xa8, 0x17, 0xc0, 0x56, 0xe0, 0x7a, 0x6c, 0x56, 0x69, 0x7c, 0xb6, 0x4a, 0x0b, 0x1f, 0x96, 0x6f, 0x6d, 0xe0, 0xbb, 0x1c, 0x0a, 0x71, 0xc8, 0xa5, 0xfe, 0x13, 0x3b, 0xa2, 0x03, 0x6d, 0x24, 0xda, 0xcc, 0xad, 0x3f, 0xa0, 0x3b, 0x39, 0xcd, 0x27, 0xf8, 0x32, 0x75, 0x27, 0x51, 0x05, 0x5a, 0x81, 0x55, 0x91, 0x3d, 0x04, 0x0f, 0x51, 0xda, 0xe7, 0x8d, 0x71, 0x94, 0x6c, 0xa0, 0x4d, 0x83, 0xc7, 0xc8, 0x94, 0xc2, 0x80, 0xaa, 0xec, 0x28, 0x55, 0x43, 0xe5, 0xfd, 0x5e, 0x32, 0x7a, 0xcc, 0xca, 0x9a, 0xbe, 0xf1, 0x56, 0xa1, 0x3b, 0x95, 0x71, 0x44, 0x6b, 0xd8, 0x00, 0x7f, 0xf9, 0x2d, 0xbc, 0x0f, 0xba, 0xf2, 0x3a, 0x94, 0x41, 0xb5, 0x3c, 0x1c, 0xd7, 0x40, 0xc3, 0x4c, 0x28, 0x29, 0x29, 0x10, 0x1a, 0xd2, 0xea, 0x8b, 0x85, 0xd7, 0x00, 0x52, 0x99, 0x1b, 0x77, 0x4e, 0x92, 0xff, 0x75, 0xcc, 0x85, 0x11, 0x3e, 0x09, 0x00, 0xb5, 0x1b, 0x86, 0x3e, 0x1f, 0x2a, 0xda, 0xab, 0x2d, 0xbc, 0xf4, 0x6a, 0xf4, 0x79, 0xea, 0x24, 0x8e, 0xc2, 0x88, 0x9a, 0xfb, 0xfe, 0x73, 0x74, 0x08, 0x39, 0x3a, 0x2b, 0x1b, 0x33, 0x01, 0xf6, 0x5c, 0x1f, 0xac, 0x8b, 0x67, 0x67, 0x95, 0xab, 0x5b, 0xf4, 0x47, 0xf0, 0x5e, 0x0d, 0xaf, 0x67, 0x76, };
22240 static const u8 ed25519_967_test_vectors_expected_sig[] = {
22241 	0xaf, 0x7e, 0x2d, 0xf7, 0x52, 0x9f, 0xd1, 0x8d, 0x1b, 0x21, 0xb8, 0xfd, 0x4c, 0x06, 0x81, 0x50, 0x59, 0x18, 0xe2, 0x51, 0x14, 0x34, 0xfe, 0x4e, 0x49, 0x54, 0xe7, 0x43, 0xc1, 0xcf, 0xa4, 0x5e, 0x41, 0x09, 0xd3, 0x6c, 0x3e, 0xec, 0xf2, 0xe2, 0x5d, 0x20, 0x9b, 0x9b, 0x5d, 0x25, 0xf7, 0xcb, 0xc3, 0x80, 0x29, 0x6d, 0x64, 0x77, 0x52, 0xe3, 0x0d, 0x3b, 0xea, 0x3b, 0x92, 0x9b, 0x09, 0x03, };
22242 static const ec_test_case ed25519_967_test_case = {
22243 	.name = "EDDSA25519-SHA512/wei25519 967",
22244 	.ec_str_p = &wei25519_str_params,
22245 	.priv_key = ed25519_967_test_vectors_priv_key,
22246 	.priv_key_len = sizeof(ed25519_967_test_vectors_priv_key),
22247 	.nn_random = NULL,
22248 	.hash_type = SHA512,
22249 	.msg = (const char *)ed25519_967_test_vectors_message,
22250 	.msglen = sizeof(ed25519_967_test_vectors_message),
22251 	.sig_type = EDDSA25519,
22252 	.exp_sig = ed25519_967_test_vectors_expected_sig,
22253 	.exp_siglen = sizeof(ed25519_967_test_vectors_expected_sig),
22254 	.adata = NULL,
22255 	.adata_len = 0
22256 };
22257 
22258 /************************************************/
22259 static const u8 ed25519_968_test_vectors_priv_key[] = {
22260 	0x65, 0x73, 0x22, 0x78, 0x41, 0xf6, 0xf9, 0x28, 0x31, 0x14, 0x6c, 0x44, 0xc0, 0xe4, 0x80, 0xcd, 0xf5, 0x44, 0xbb, 0x87, 0x65, 0x52, 0xcc, 0x5f, 0x9d, 0x42, 0xf1, 0x5b, 0xdc, 0xc0, 0x44, 0xb8, };
22261 static const u8 ed25519_968_test_vectors_message[] = {
22262 	0x6e, 0x7c, 0x6b, 0x12, 0x2a, 0xb3, 0x6b, 0xd1, 0x35, 0xf6, 0x9e, 0x2b, 0x85, 0xe7, 0xfc, 0xce, 0xfb, 0x07, 0x2c, 0x12, 0xcf, 0x08, 0x8a, 0x32, 0x29, 0xd8, 0x76, 0xef, 0xf5, 0x32, 0x38, 0x9f, 0x05, 0x77, 0x11, 0x6f, 0x7a, 0xf2, 0x9f, 0x11, 0x95, 0xe3, 0x82, 0x88, 0x39, 0x38, 0x13, 0x80, 0x46, 0x71, 0x78, 0xb2, 0x29, 0xc5, 0xa1, 0x8d, 0x7c, 0x49, 0x43, 0xec, 0x97, 0x0d, 0xd1, 0x8b, 0xce, 0x72, 0x3b, 0xd0, 0xca, 0x91, 0xff, 0xa9, 0x55, 0x63, 0x54, 0x6a, 0x32, 0x4f, 0xe0, 0xb9, 0xbf, 0x6c, 0x04, 0x55, 0xd4, 0x27, 0x60, 0x39, 0xe8, 0xd2, 0x91, 0xfc, 0x72, 0x76, 0xaa, 0x55, 0xa1, 0xcd, 0x3e, 0xa0, 0x52, 0x82, 0x65, 0x4a, 0x7f, 0x97, 0x00, 0xad, 0xcb, 0xc7, 0x80, 0x77, 0xc5, 0xdd, 0x0f, 0xc8, 0x6e, 0xce, 0xd4, 0x8f, 0x4a, 0x60, 0xcc, 0xb7, 0x6b, 0xfb, 0x8b, 0x45, 0x62, 0xba, 0xc2, 0x2a, 0x02, 0xd1, 0x9e, 0x44, 0x89, 0x39, 0x4a, 0xb9, 0x71, 0x9f, 0xc1, 0x44, 0xf5, 0xdb, 0x2e, 0xf0, 0x39, 0xb3, 0x7f, 0x3b, 0x51, 0xd1, 0xd6, 0x57, 0xa0, 0xcf, 0x83, 0x5d, 0x71, 0xf1, 0xa4, 0xaf, 0x01, 0xeb, 0x9f, 0xd8, 0x85, 0xc6, 0x04, 0xa6, 0x24, 0xcb, 0xe9, 0x10, 0xbf, 0xde, 0x09, 0x3a, 0xd3, 0xf0, 0xcb, 0xfd, 0x9a, 0x48, 0x30, 0x73, 0x29, 0xd4, 0x42, 0x34, 0xbd, 0x01, 0x19, 0x1d, 0x56, 0xe5, 0x22, 0xd7, 0x2b, 0x54, 0xe1, 0xfe, 0x47, 0x33, 0xda, 0x3a, 0xec, 0x68, 0x27, 0xea, 0xb3, 0x55, 0x48, 0x98, 0xe0, 0x3e, 0x57, 0x7b, 0x4e, 0x7b, 0x9d, 0xd3, 0xf3, 0x08, 0xe6, 0x16, 0x80, 0x8d, 0x02, 0x94, 0x49, 0x9f, 0x28, 0x86, 0x29, 0x5e, 0x54, 0xc3, 0x60, 0x19, 0x9c, 0xa8, 0x3a, 0x83, 0xff, 0x46, 0x19, 0x5e, 0xa3, 0xc4, 0x84, 0xa6, 0x68, 0x38, 0xd5, 0x1a, 0xcb, 0xe9, 0x61, 0x1e, 0xee, 0x03, 0x6a, 0xe2, 0x81, 0xc6, 0x79, 0x3c, 0xbd, 0x45, 0x1f, 0x92, 0x71, 0xfb, 0x5d, 0x25, 0xea, 0x7c, 0x18, 0x99, 0xab, 0x5d, 0x43, 0xed, 0x8b, 0x9d, 0x06, 0x7b, 0xc5, 0x6d, 0x8d, 0x4a, 0x15, 0xf1, 0xda, 0xb8, 0xd8, 0xd9, 0x5d, 0x1b, 0x17, 0xaf, 0x64, 0xcb, 0x18, 0xc1, 0x14, 0x75, 0x51, 0x14, 0x7a, 0xdd, 0xcb, 0xdd, 0x53, 0xfb, 0xcc, 0xd9, 0x02, 0x6f, 0x85, 0x55, 0x47, 0x13, 0x1b, 0xee, 0x95, 0x07, 0x16, 0x39, 0xf6, 0x49, 0xf2, 0xd0, 0x35, 0xa2, 0x5a, 0x3e, 0x42, 0xe3, 0x8e, 0x22, 0xbb, 0xf0, 0x38, 0x10, 0x6c, 0xe8, 0xbc, 0x4a, 0xd6, 0x76, 0x8a, 0xb9, 0x2c, 0xd5, 0x7a, 0xfa, 0xcd, 0x04, 0xee, 0x55, 0xcf, 0x07, 0x14, 0xb7, 0x68, 0x95, 0x2d, 0xac, 0x24, 0x0b, 0x1e, 0x9b, 0x28, 0x35, 0xec, 0xf7, 0xb0, 0xd6, 0xc4, 0x07, 0xc8, 0x25, 0x24, 0xa9, 0x23, 0xb9, 0xf5, 0x4d, 0x1b, 0x8f, 0x12, 0x56, 0x4a, 0x87, 0x21, 0x44, 0xef, 0xad, 0x3f, 0x3a, 0x7d, 0x23, 0x97, 0xcd, 0x12, 0x17, 0xdc, 0x5a, 0x9c, 0x96, 0xe4, 0x3b, 0x29, 0x60, 0xa8, 0x42, 0x5e, 0x97, 0xe0, 0x7a, 0x02, 0xb0, 0xda, 0xc9, 0x0f, 0x34, 0x6b, 0x91, 0xa3, 0x46, 0xa2, 0x3e, 0xd2, 0xbb, 0x7f, 0xe6, 0x91, 0x9c, 0x22, 0xdf, 0xf0, 0x3f, 0x62, 0xda, 0x7d, 0xba, 0x17, 0x6e, 0x8d, 0xdb, 0x22, 0xf3, 0xf3, 0xa6, 0x68, 0x89, 0x1d, 0x3f, 0x4e, 0x69, 0x54, 0x8d, 0x0a, 0xc4, 0xe7, 0x1e, 0x6d, 0x28, 0xed, 0x5a, 0x67, 0xab, 0x5a, 0xc6, 0x11, 0xd4, 0x60, 0xb6, 0x7a, 0x20, 0x1f, 0x4f, 0x56, 0xa5, 0x00, 0x3c, 0xa7, 0xa7, 0xd1, 0xcd, 0x1d, 0xb6, 0xc1, 0x00, 0x75, 0xb0, 0x92, 0x27, 0xcb, 0x8c, 0x5d, 0xc1, 0x66, 0x6f, 0x8b, 0xe7, 0x10, 0xb4, 0xb7, 0xbc, 0x2b, 0x95, 0xae, 0x60, 0xda, 0x4f, 0x64, 0x17, 0x9a, 0x50, 0xd2, 0xf8, 0x87, 0x44, 0x36, 0x15, 0x91, 0x67, 0x1d, 0x36, 0xb7, 0x29, 0x63, 0x15, 0xf6, 0x99, 0x64, 0x39, 0xad, 0x79, 0x82, 0x1d, 0xa8, 0xe7, 0x72, 0xdf, 0xbf, 0x55, 0xa9, 0x0d, 0x5d, 0x52, 0xef, 0x7d, 0x76, 0xb3, 0x5f, 0xfe, 0xbd, 0x42, 0xe3, 0x52, 0x5f, 0x45, 0x30, 0xc5, 0x4a, 0x0f, 0x23, 0xb4, 0xd0, 0x7c, 0x5f, 0x59, 0x74, 0x47, 0x0e, 0x89, 0x40, 0x4d, 0x17, 0x6e, 0xef, 0xf9, 0xef, 0x23, 0x33, 0x61, 0x96, 0x91, 0xc5, 0x9b, 0x7a, 0xad, 0xd4, 0x2c, 0x29, 0x6b, 0x1d, 0x0d, 0x32, 0x8d, 0x9a, 0x3b, 0xd5, 0x9a, 0x54, 0xbb, 0xa9, 0x3a, 0x0c, 0x1f, 0x1d, 0x62, 0x41, 0x8c, 0x21, 0x90, 0xc3, 0x81, 0x74, 0xb6, 0xab, 0xea, 0x02, 0xdb, 0x66, 0xe8, 0x18, 0x32, 0x0e, 0xc4, 0xb8, 0xba, 0xc1, 0xc1, 0x2f, 0x18, 0xf3, 0x0d, 0xad, 0xe2, 0x7e, 0x63, 0xc5, 0x8f, 0x9e, 0x7c, 0xaf, 0x4b, 0xf6, 0x9b, 0x26, 0x5a, 0x2f, 0x9d, 0x91, 0x80, 0x08, 0x61, 0xac, 0xf4, 0x79, 0xe6, 0x5e, 0xc1, 0x7e, 0x68, 0x05, 0x77, 0xe0, 0x58, 0xcb, 0x16, 0xc1, 0x09, 0xbc, 0xf9, 0xb2, 0x90, 0x9f, 0xce, 0x33, 0x61, 0xa2, 0xc2, 0x68, 0x5c, 0x10, 0xbe, 0x85, 0x40, 0xa1, 0x22, 0x2d, 0xb5, 0xec, 0xf0, 0xcc, 0x4d, 0x53, 0xa4, 0x21, 0x4b, 0x7b, 0xf6, 0x24, 0x8a, 0xdc, 0x3a, 0x86, 0x1e, 0x34, 0x84, 0x1a, 0x37, 0x79, 0xc4, 0x60, 0x46, 0xc5, 0x36, 0x4f, 0x1e, 0xa9, 0x1a, 0x78, 0xc9, 0x70, 0x0d, 0x46, 0x2e, 0xcf, 0xaa, 0xe3, 0x6b, 0xa7, 0x60, 0xc1, 0xbd, 0x6a, 0x23, 0x7c, 0x96, 0x1e, 0xdf, 0x40, 0x22, 0xce, 0xde, 0xfe, 0x5e, 0x93, 0x7b, 0xbe, 0xd7, 0x05, 0x1a, 0xe6, 0x1b, 0x96, 0xd0, 0x8b, 0x04, 0x87, 0xce, 0x05, 0x68, 0xff, 0x0d, 0x32, 0x74, 0x0b, 0xbd, 0x49, 0xad, 0x0d, 0xb8, 0x6e, 0x09, 0x10, 0x2a, 0xb2, 0x1a, 0x91, 0x56, 0x16, 0xe9, 0xdf, 0xdd, 0xc8, 0x1e, 0xbf, 0xb3, 0x6c, 0x90, 0x3e, 0x07, 0xa4, 0x0c, 0xd2, 0xdd, 0x11, 0x9f, 0xf4, 0xa5, 0x0b, 0x93, 0xfc, 0x6f, 0xdf, 0xc0, 0xf3, 0x6e, 0x59, 0xe0, 0x14, 0x8f, 0xcf, 0xf3, 0xfe, 0x8e, 0x2c, 0xd6, 0xd3, 0x0a, 0x9e, 0x4b, 0x8f, 0x01, 0x55, 0x67, 0xd1, 0x18, 0xb6, 0x27, 0x4e, 0x1e, 0xd7, 0x5b, 0x22, 0xe4, 0x4c, 0xa9, 0xd9, 0xdb, 0xfc, 0x16, 0x07, 0x42, 0xcf, 0xac, 0x58, 0x1e, 0x1a, 0x0b, 0xf5, 0xff, 0x33, 0x26, 0xbc, 0x5f, 0x78, 0x96, 0xb9, 0xca, 0x05, 0xa8, 0x11, 0xd5, 0x5e, 0x97, 0xc8, 0x34, 0xd3, 0x7a, 0x64, 0x95, 0xcc, 0x26, 0xcf, 0x44, 0x2b, 0xd2, 0xd9, 0x01, 0x29, 0x89, 0x5e, 0x9c, 0xc0, 0xed, 0x01, 0xe2, 0x15, 0x52, 0x93, 0xf4, 0x7a, 0x07, 0xab, 0x58, 0x80, 0xc6, 0xca, 0x29, 0xed, 0x44, 0xd9, 0xcc, 0xbc, 0xaa, 0xda, 0x7f, 0x3e, 0xb6, 0x04, 0x02, 0x18, 0x14, 0x88, 0x65, 0x4e, 0x04, 0x91, 0x15, 0x78, 0xb1, 0xaa, 0x9c, 0xdd, 0x4b, 0x86, 0xb0, 0xdd, 0x24, 0x50, 0xdf, 0x3a, 0x43, 0x08, 0x1e, 0x41, 0x10, 0xab, 0x58, 0xde, 0x76, 0x39, 0x24, 0xd3, 0xc8, 0x91, 0x52, 0xe9, 0x92, 0x93, 0xe6, 0x38, 0xf9, 0xac, 0xd8, 0xd7, };
22263 static const u8 ed25519_968_test_vectors_expected_sig[] = {
22264 	0x53, 0x8e, 0xac, 0xe4, 0x93, 0xde, 0x53, 0x38, 0x4b, 0x1e, 0x98, 0x5b, 0xb9, 0x07, 0xc0, 0x94, 0xf8, 0x16, 0x84, 0x30, 0xda, 0xb1, 0x4d, 0x37, 0x79, 0x1b, 0xe6, 0xe7, 0x8f, 0xf3, 0xf5, 0xa3, 0x06, 0xec, 0x70, 0xdc, 0xac, 0x86, 0xd9, 0x93, 0xa4, 0xc1, 0xf7, 0x58, 0x50, 0x78, 0x6d, 0x79, 0x5f, 0x02, 0x2b, 0x79, 0xbe, 0x6a, 0x54, 0x77, 0x69, 0xe4, 0x15, 0x69, 0xc5, 0xa9, 0xa3, 0x0a, };
22265 static const ec_test_case ed25519_968_test_case = {
22266 	.name = "EDDSA25519-SHA512/wei25519 968",
22267 	.ec_str_p = &wei25519_str_params,
22268 	.priv_key = ed25519_968_test_vectors_priv_key,
22269 	.priv_key_len = sizeof(ed25519_968_test_vectors_priv_key),
22270 	.nn_random = NULL,
22271 	.hash_type = SHA512,
22272 	.msg = (const char *)ed25519_968_test_vectors_message,
22273 	.msglen = sizeof(ed25519_968_test_vectors_message),
22274 	.sig_type = EDDSA25519,
22275 	.exp_sig = ed25519_968_test_vectors_expected_sig,
22276 	.exp_siglen = sizeof(ed25519_968_test_vectors_expected_sig),
22277 	.adata = NULL,
22278 	.adata_len = 0
22279 };
22280 
22281 /************************************************/
22282 static const u8 ed25519_969_test_vectors_priv_key[] = {
22283 	0xa6, 0x3c, 0x1f, 0x54, 0xb2, 0xca, 0x05, 0x8f, 0xed, 0x2e, 0xe2, 0x50, 0x4b, 0x98, 0x3f, 0xf3, 0x3d, 0x57, 0x0a, 0x9b, 0xab, 0xa5, 0x83, 0xc0, 0x86, 0xce, 0xfe, 0x19, 0xf4, 0x3e, 0xc4, 0x9d, };
22284 static const u8 ed25519_969_test_vectors_message[] = {
22285 	0x79, 0x1b, 0x86, 0xfd, 0x58, 0x77, 0x13, 0x47, 0x8f, 0x92, 0x34, 0xff, 0x30, 0xce, 0xfc, 0x12, 0x3c, 0xd7, 0xc3, 0xeb, 0x12, 0x5f, 0xa7, 0x4e, 0x4c, 0x6d, 0xb6, 0x4e, 0x78, 0x44, 0xf7, 0xc8, 0x5b, 0x16, 0x86, 0xe7, 0x1e, 0xd0, 0x8d, 0x1a, 0x6a, 0x04, 0xe0, 0xeb, 0xbd, 0xff, 0x4a, 0xb1, 0x60, 0xc9, 0x76, 0xc8, 0xab, 0x9b, 0x50, 0x5f, 0x6a, 0x7e, 0xb0, 0xa1, 0x84, 0x27, 0xe9, 0x99, 0xa8, 0x82, 0x8d, 0xf1, 0x06, 0x84, 0xf8, 0xc7, 0x5b, 0x6a, 0x6b, 0x0a, 0x64, 0xc0, 0xaf, 0xa4, 0xbb, 0x22, 0xbe, 0xd1, 0xcb, 0x93, 0x25, 0x35, 0x9c, 0xac, 0x3b, 0x8c, 0x50, 0x8d, 0x98, 0xbc, 0xb0, 0xeb, 0xcd, 0x74, 0x8d, 0xc1, 0x32, 0xf1, 0xd6, 0xa3, 0x60, 0xa4, 0x45, 0x0d, 0x12, 0x92, 0xa1, 0xfe, 0xfc, 0x4e, 0x57, 0xe4, 0x10, 0x7a, 0x22, 0x3f, 0x42, 0x1e, 0x7d, 0x14, 0xa3, 0x84, 0xb8, 0x5c, 0x18, 0x84, 0x4d, 0x0b, 0x9e, 0xed, 0x2e, 0xcb, 0x81, 0xbb, 0x74, 0xe8, 0xa1, 0x26, 0x52, 0xd9, 0x85, 0x05, 0x79, 0x5a, 0x01, 0x31, 0x16, 0xa7, 0x07, 0x6c, 0xcb, 0x54, 0x93, 0xd6, 0xa7, 0x11, 0xf7, 0x63, 0x7e, 0x97, 0xa7, 0x80, 0xe7, 0x4d, 0xa1, 0xb3, 0x9b, 0x15, 0xcc, 0x7b, 0xbd, 0xe2, 0xe6, 0xc4, 0xd0, 0xd3, 0xe8, 0x30, 0x05, 0x97, 0xc8, 0x36, 0xe8, 0x0b, 0xcb, 0x8d, 0x80, 0x81, 0xd9, 0x74, 0xe0, 0x24, 0x32, 0xea, 0xc8, 0x83, 0x68, 0x21, 0x1d, 0x3a, 0xaa, 0xe8, 0x9a, 0x14, 0x41, 0x71, 0x08, 0xe1, 0xff, 0x67, 0x37, 0x08, 0x38, 0x49, 0xc6, 0x25, 0xb4, 0x0d, 0x63, 0x1f, 0x6c, 0x83, 0x57, 0x22, 0x0c, 0x7f, 0x37, 0x38, 0x0b, 0x3b, 0x2c, 0xc5, 0xd0, 0xe2, 0xdf, 0x6b, 0x4d, 0x11, 0x96, 0x57, 0x9d, 0xbc, 0x57, 0xb6, 0xc9, 0xea, 0x0d, 0x41, 0xf4, 0xfa, 0x0e, 0x55, 0x6f, 0x94, 0x3c, 0x94, 0x48, 0xef, 0x42, 0xfc, 0x78, 0xdf, 0x59, 0x96, 0x64, 0x8c, 0xe2, 0xf3, 0xde, 0x04, 0xd8, 0xa6, 0x63, 0xf9, 0x67, 0xf3, 0xd9, 0x33, 0xd4, 0xf6, 0x53, 0x57, 0xab, 0x29, 0xba, 0x5b, 0x64, 0x05, 0xfb, 0x16, 0x29, 0x72, 0x57, 0x8d, 0xdb, 0xb2, 0x36, 0x7b, 0xed, 0x14, 0x3c, 0x85, 0x4c, 0x10, 0x88, 0xde, 0x92, 0x1d, 0x79, 0xf5, 0xa9, 0x2a, 0x85, 0x48, 0x37, 0xeb, 0x77, 0x02, 0xe1, 0xba, 0x92, 0x5c, 0x6e, 0xac, 0x23, 0xd1, 0x34, 0xba, 0x1b, 0xaf, 0xc5, 0xd4, 0x6d, 0xe2, 0xa1, 0x94, 0x2c, 0x7f, 0x36, 0x6f, 0x70, 0x1b, 0x0a, 0xfa, 0xbb, 0x75, 0xcb, 0x1d, 0x80, 0x8e, 0x1a, 0x1e, 0x4e, 0x3a, 0xe5, 0xde, 0x88, 0xe8, 0xe9, 0x98, 0x97, 0x57, 0x45, 0x8b, 0xdd, 0xd8, 0xa8, 0x06, 0xc1, 0x10, 0xcc, 0x3a, 0x73, 0x3d, 0x1d, 0x4a, 0xc5, 0x8a, 0x40, 0x5c, 0x4d, 0x81, 0x13, 0x4f, 0xbc, 0x24, 0xcc, 0xde, 0x7d, 0x5a, 0xfe, 0x42, 0x0f, 0x9f, 0x17, 0x85, 0xf0, 0xa5, 0x02, 0x0f, 0xaf, 0xbb, 0x22, 0x61, 0x22, 0x25, 0x08, 0xaa, 0x05, 0x28, 0xb7, 0xb4, 0x8b, 0x56, 0x72, 0x00, 0x95, 0x84, 0x25, 0xef, 0xcb, 0x42, 0x93, 0x4a, 0x88, 0x0b, 0x13, 0x34, 0x44, 0xbb, 0x10, 0x9f, 0x2a, 0x95, 0x4c, 0xfa, 0x35, 0xa2, 0xd1, 0x7c, 0xb0, 0x5e, 0xe3, 0xf1, 0x6d, 0x06, 0xb3, 0x21, 0xa1, 0x5f, 0x91, 0x33, 0x9a, 0xbe, 0xda, 0x24, 0x3a, 0xd6, 0xc0, 0x91, 0x9f, 0xac, 0x51, 0xe9, 0x07, 0xe0, 0x53, 0xfd, 0xee, 0xd1, 0xcf, 0x03, 0x00, 0x37, 0x34, 0x13, 0x77, 0x93, 0x94, 0x1b, 0x8a, 0xdf, 0x9a, 0xb6, 0xaf, 0x81, 0x9c, 0x24, 0x5d, 0x6d, 0x56, 0xf1, 0x69, 0x64, 0xc8, 0xa7, 0x5b, 0x07, 0x56, 0xa8, 0xcb, 0x0c, 0xa8, 0xc1, 0x2a, 0xc6, 0xe6, 0xb3, 0x94, 0x2e, 0xeb, 0xec, 0x2f, 0x86, 0x88, 0x35, 0xf8, 0x1b, 0x10, 0x9d, 0xb4, 0x98, 0xa4, 0xca, 0x2e, 0x02, 0x1f, 0xa7, 0x65, 0x60, 0x8d, 0x23, 0xd8, 0x03, 0xde, 0xdc, 0x9e, 0x51, 0x45, 0x3f, 0xc1, 0xd2, 0xa6, 0xa3, 0x8a, 0x4a, 0xab, 0x25, 0x7c, 0x0f, 0xe7, 0xd6, 0x7d, 0x32, 0xa5, 0x41, 0xe0, 0x14, 0xb6, 0x0e, 0x10, 0x13, 0xa9, 0x2c, 0x1b, 0x3a, 0xd9, 0xe6, 0xf1, 0x1b, 0xe2, 0x93, 0xb2, 0x46, 0xf9, 0xa0, 0xc6, 0x44, 0x0b, 0x0b, 0x54, 0xfe, 0xe7, 0x5f, 0xed, 0x2f, 0xb7, 0x5c, 0xc9, 0x1e, 0xcb, 0x32, 0x73, 0x8c, 0x49, 0x58, 0x31, 0x58, 0x6a, 0x11, 0x24, 0x2d, 0x87, 0xdc, 0xb4, 0x88, 0x3e, 0xdf, 0x67, 0x57, 0xa5, 0x0b, 0x18, 0x84, 0x37, 0x59, 0xb9, 0x8d, 0xd0, 0xce, 0xf4, 0xa3, 0xfe, 0x10, 0xd7, 0x63, 0x70, 0xec, 0xda, 0x8c, 0x83, 0xfa, 0xb8, 0x7e, 0xee, 0x26, 0x56, 0xc5, 0xf2, 0x61, 0xc3, 0x40, 0xea, 0x91, 0xa5, 0x60, 0xd0, 0xe2, 0xc6, 0x42, 0x89, 0x26, 0x7f, 0x00, 0x36, 0xba, 0x35, 0x94, 0x48, 0x00, 0xa5, 0xa0, 0xae, 0xf3, 0xf1, 0xdf, 0x83, 0x9a, 0x72, 0x4e, 0x18, 0x1d, 0x79, 0xb8, 0xa3, 0xc1, 0x6f, 0x65, 0xae, 0x27, 0x95, 0x3c, 0x4a, 0xae, 0x8c, 0xcd, 0x30, 0xff, 0x5a, 0xcc, 0x4b, 0x31, 0xe4, 0x76, 0x5c, 0x68, 0xfb, 0x38, 0x31, 0x9f, 0x10, 0xac, 0xf8, 0x92, 0x47, 0xb5, 0xa3, 0x9b, 0x3b, 0x08, 0xa1, 0x91, 0x75, 0x4a, 0x24, 0xac, 0xa9, 0x59, 0x6a, 0x1f, 0x8a, 0x70, 0xb6, 0xe4, 0xf0, 0x3a, 0x20, 0x04, 0xa9, 0x08, 0x6f, 0xf6, 0xed, 0x07, 0x65, 0x2a, 0x92, 0x6e, 0x1e, 0x2d, 0xf7, 0xbd, 0xcc, 0xd5, 0xbe, 0xc1, 0x6e, 0x5c, 0x4e, 0x96, 0x83, 0x64, 0xa0, 0x9a, 0xbf, 0x9d, 0xed, 0x93, 0xdf, 0x5f, 0xca, 0x0b, 0xcc, 0xa5, 0xc8, 0x12, 0x97, 0x6e, 0x5c, 0xfb, 0x3c, 0x34, 0x93, 0xfc, 0x17, 0x5d, 0x1d, 0x92, 0xee, 0x8d, 0x1c, 0x98, 0xfb, 0x33, 0x82, 0xb3, 0xab, 0x90, 0xc5, 0xc0, 0xe4, 0xbd, 0xf6, 0xa3, 0xac, 0x94, 0x76, 0x7b, 0x68, 0xd4, 0x7e, 0x6b, 0x9c, 0x24, 0x42, 0x65, 0xe3, 0xb1, 0xab, 0x06, 0x23, 0xa8, 0xf0, 0x10, 0x02, 0x73, 0xf2, 0xc6, 0x07, 0xde, 0x89, 0x61, 0x2c, 0x72, 0xd3, 0x9b, 0xe4, 0xc0, 0xb4, 0xd7, 0x7a, 0x3c, 0x61, 0x36, 0x8d, 0xf4, 0x0b, 0x36, 0x08, 0x65, 0x29, 0x89, 0xd1, 0xe1, 0x9c, 0x0a, 0xaf, 0x0e, 0x3c, 0x25, 0x3e, 0x56, 0x2c, 0x64, 0x09, 0xfe, 0x64, 0x48, 0x92, 0x9b, 0x33, 0x75, 0x3d, 0xe1, 0x62, 0xe6, 0xde, 0x5b, 0xd4, 0x66, 0xa5, 0x11, 0x4f, 0xc0, 0xe5, 0xf5, 0x71, 0x02, 0x75, 0x5e, 0x29, 0x54, 0x4f, 0x03, 0xb2, 0x8d, 0x4f, 0x78, 0xde, 0x9a, 0x02, 0x4d, 0xd4, 0xc4, 0xe8, 0xc3, 0xc2, 0xd4, 0x41, 0x15, 0xa7, 0xae, 0x15, 0xed, 0xb4, 0xf5, 0x58, 0xaa, 0x7d, 0xba, 0x64, 0x26, 0xe7, 0xe3, 0x72, 0xc5, 0x4f, 0x79, 0x40, 0xbd, 0x77, 0x14, 0x46, 0x7f, 0x8c, 0x3a, 0x1a, 0xdd, 0x3c, 0x64, 0x01, 0x89, 0xc3, 0x16, 0x60, 0xd8, 0xcc, 0x01, 0xd3, 0xc5, 0x38, 0x2e, 0x42, 0xab, 0xc1, 0x04, 0xc7, 0x23, 0xf9, 0x48, 0xa8, 0x04, 0xca, 0x85, 0x30, 0x47, 0xb6, 0xb8, 0x7b, 0x5b, 0x6e, 0xf4, };
22286 static const u8 ed25519_969_test_vectors_expected_sig[] = {
22287 	0x28, 0x33, 0x59, 0xbe, 0x41, 0x29, 0x0a, 0x51, 0xe6, 0xa7, 0xc5, 0xd5, 0x72, 0x5c, 0xa4, 0xea, 0x0a, 0x68, 0xf1, 0x4a, 0xca, 0x14, 0xb0, 0xf0, 0x25, 0x66, 0xde, 0xe2, 0x1f, 0x49, 0x0d, 0xa3, 0xc7, 0xe9, 0x5f, 0x7a, 0xb7, 0x39, 0xbc, 0x35, 0xa7, 0xf4, 0xf2, 0x32, 0xe9, 0x71, 0xaa, 0x15, 0x76, 0x57, 0xa6, 0x33, 0xeb, 0xa0, 0xe7, 0x2d, 0xc9, 0x7a, 0xf3, 0x2c, 0xdb, 0x92, 0x87, 0x02, };
22288 static const ec_test_case ed25519_969_test_case = {
22289 	.name = "EDDSA25519-SHA512/wei25519 969",
22290 	.ec_str_p = &wei25519_str_params,
22291 	.priv_key = ed25519_969_test_vectors_priv_key,
22292 	.priv_key_len = sizeof(ed25519_969_test_vectors_priv_key),
22293 	.nn_random = NULL,
22294 	.hash_type = SHA512,
22295 	.msg = (const char *)ed25519_969_test_vectors_message,
22296 	.msglen = sizeof(ed25519_969_test_vectors_message),
22297 	.sig_type = EDDSA25519,
22298 	.exp_sig = ed25519_969_test_vectors_expected_sig,
22299 	.exp_siglen = sizeof(ed25519_969_test_vectors_expected_sig),
22300 	.adata = NULL,
22301 	.adata_len = 0
22302 };
22303 
22304 /************************************************/
22305 static const u8 ed25519_970_test_vectors_priv_key[] = {
22306 	0x5b, 0x67, 0xa6, 0xd7, 0xc6, 0x50, 0xdd, 0x92, 0xdd, 0xd0, 0x36, 0xce, 0x7a, 0x30, 0x5b, 0xc9, 0x59, 0xa4, 0x97, 0xc5, 0xe5, 0x15, 0xa6, 0x84, 0x93, 0x03, 0x5c, 0xb3, 0x85, 0x0e, 0xe0, 0x3d, };
22307 static const u8 ed25519_970_test_vectors_message[] = {
22308 	0x62, 0xcc, 0xde, 0x31, 0x77, 0x2c, 0x57, 0xe4, 0x85, 0x3a, 0xaf, 0x2a, 0x81, 0x81, 0xfd, 0xb5, 0x3f, 0xb8, 0x27, 0x90, 0xea, 0x65, 0x01, 0xbf, 0xc8, 0xf5, 0xd4, 0xae, 0x8d, 0xbd, 0x52, 0xde, 0x42, 0xce, 0x2e, 0x89, 0x61, 0xac, 0x17, 0x31, 0xf4, 0xbc, 0x08, 0x5f, 0xb5, 0x61, 0xef, 0x09, 0xa2, 0x44, 0x29, 0x70, 0xb6, 0x29, 0x79, 0x01, 0xae, 0xaa, 0x2e, 0xe5, 0x55, 0xb7, 0xd5, 0xe3, 0x95, 0x1c, 0x7c, 0x35, 0x12, 0x39, 0xdd, 0xee, 0x95, 0xff, 0x54, 0xf9, 0x24, 0xda, 0x95, 0xca, 0xe7, 0xb1, 0x5b, 0xa6, 0xa9, 0xa1, 0x33, 0x7b, 0x8c, 0xe4, 0x92, 0x1e, 0xd9, 0x13, 0xcd, 0x79, 0x1c, 0x1c, 0x69, 0x41, 0x08, 0x0e, 0x54, 0x8f, 0x3c, 0x36, 0xe8, 0x45, 0xac, 0xbf, 0xd8, 0xd8, 0xce, 0x35, 0xe2, 0xfd, 0xc2, 0xa2, 0xad, 0x6c, 0x7e, 0x24, 0x61, 0xbf, 0xcb, 0xf1, 0xaa, 0xbc, 0x55, 0xcf, 0x0f, 0xae, 0x42, 0x88, 0x85, 0xbe, 0x5e, 0x86, 0x53, 0x33, 0x08, 0xc9, 0x75, 0x68, 0x05, 0x21, 0x9a, 0xbd, 0x7f, 0xfc, 0x16, 0x57, 0xb6, 0xf4, 0x63, 0x29, 0x20, 0xa0, 0xc1, 0x0e, 0x0e, 0x36, 0x33, 0x19, 0xd9, 0x00, 0xfc, 0xd6, 0x1e, 0x7d, 0xdb, 0xcd, 0x6e, 0x76, 0x2a, 0x7d, 0xb9, 0x24, 0x80, 0xc3, 0x63, 0xb2, 0xc0, 0x64, 0x0c, 0x6b, 0xf3, 0x2d, 0x69, 0x0d, 0xd8, 0x29, 0xd8, 0x40, 0x5f, 0xa6, 0x6e, 0x47, 0x83, 0xeb, 0xe1, 0xcb, 0xde, 0x95, 0x47, 0x95, 0x4a, 0x90, 0xba, 0xad, 0x9f, 0x77, 0x4e, 0x94, 0x54, 0x9a, 0xbb, 0xff, 0x2c, 0x1f, 0x5c, 0xae, 0xc2, 0xbf, 0xd2, 0x8e, 0x41, 0x5d, 0x36, 0x42, 0x9d, 0x58, 0x51, 0x8c, 0x3e, 0x17, 0xe8, 0x69, 0x9e, 0x19, 0x89, 0xd4, 0x7b, 0x8d, 0x62, 0x7e, 0xf9, 0xab, 0x4d, 0x1e, 0x7d, 0x12, 0x0b, 0x37, 0x2c, 0x21, 0x41, 0x30, 0x4f, 0x7f, 0xab, 0xd0, 0x26, 0x5b, 0x8b, 0xe4, 0x1f, 0x54, 0x67, 0xf4, 0xde, 0x9e, 0x65, 0xc1, 0x25, 0xee, 0x1f, 0x27, 0xa2, 0x89, 0xc4, 0xf7, 0xc9, 0xa1, 0xfb, 0xf2, 0x5b, 0xfc, 0x2f, 0x8d, 0x30, 0x8e, 0x7f, 0xf5, 0x21, 0x91, 0xcb, 0x76, 0x44, 0xc6, 0xaf, 0x20, 0x45, 0x22, 0xf2, 0xac, 0x87, 0xb5, 0xf4, 0x05, 0x25, 0xfd, 0x43, 0xd3, 0x08, 0xc8, 0xdb, 0xc6, 0xa8, 0x61, 0xd2, 0x5d, 0xb2, 0x3e, 0xe2, 0x76, 0x67, 0x8a, 0x1b, 0x6e, 0x8e, 0x91, 0x28, 0x3b, 0xe0, 0x24, 0x70, 0x48, 0x2e, 0xd6, 0xcc, 0x9f, 0x6e, 0x39, 0x63, 0x51, 0xd1, 0x1b, 0x1c, 0x7e, 0x22, 0x32, 0x9c, 0x09, 0x1f, 0xe7, 0xd3, 0x68, 0xf6, 0x06, 0x53, 0xf9, 0x3b, 0x0f, 0x6a, 0x3f, 0x71, 0x2c, 0x20, 0xf9, 0xd2, 0xd8, 0xa9, 0xa0, 0x81, 0x98, 0x72, 0xf0, 0xc7, 0x1d, 0x7b, 0x1c, 0x0b, 0xc1, 0x68, 0x3a, 0x15, 0x2b, 0x48, 0x4b, 0xc2, 0x1c, 0xf5, 0x56, 0x09, 0x3a, 0xb4, 0xc0, 0xac, 0x16, 0xd3, 0x22, 0xff, 0x0b, 0xf4, 0x52, 0xe5, 0x58, 0x1e, 0x1e, 0x72, 0x41, 0x67, 0x38, 0x84, 0x02, 0x3c, 0x7d, 0x6e, 0x17, 0xe2, 0xde, 0x80, 0x59, 0xf6, 0x0e, 0x4c, 0x18, 0xe1, 0x3b, 0xd5, 0x5f, 0xcf, 0xee, 0x62, 0x3f, 0xd0, 0x46, 0x9c, 0x0d, 0x09, 0x11, 0x61, 0x1d, 0x09, 0x9a, 0x25, 0x70, 0x20, 0xf2, 0xf3, 0x1b, 0xf5, 0x07, 0x8e, 0x6e, 0x65, 0xa1, 0x35, 0xd5, 0xbf, 0x40, 0x76, 0x20, 0x23, 0x6d, 0x6c, 0xc7, 0x59, 0x31, 0x0f, 0xa7, 0x28, 0xff, 0x8b, 0xb5, 0xec, 0x56, 0xab, 0xbe, 0x1a, 0x3c, 0xd1, 0x51, 0x53, 0xf8, 0x92, 0xd9, 0x58, 0xd3, 0x0d, 0x16, 0x2d, 0x01, 0xee, 0x66, 0x5f, 0x5b, 0x56, 0x27, 0x81, 0xd8, 0xdc, 0xf8, 0x42, 0x80, 0x59, 0xe5, 0xfd, 0x22, 0x5a, 0xd7, 0x8a, 0x99, 0xea, 0x76, 0x0f, 0xe5, 0xd9, 0xee, 0x82, 0x19, 0xc9, 0x5a, 0xcb, 0x18, 0xd0, 0x56, 0x22, 0xe1, 0x0a, 0x9b, 0x6c, 0x67, 0xf6, 0xd4, 0xf6, 0xed, 0x11, 0x63, 0x5c, 0x5e, 0x2e, 0x0f, 0x85, 0xdd, 0x5d, 0x3c, 0xbd, 0xa6, 0x5a, 0xa4, 0x23, 0xd5, 0x94, 0xa8, 0x0b, 0x40, 0x42, 0x7b, 0xc3, 0x21, 0xe0, 0xee, 0xf9, 0xaf, 0xd2, 0xbc, 0x87, 0x46, 0xab, 0x73, 0x99, 0xff, 0x6d, 0x0e, 0x12, 0x87, 0xb6, 0x61, 0xdd, 0xc4, 0x06, 0x2d, 0x07, 0x20, 0x18, 0xf4, 0xc1, 0x0e, 0x86, 0xcf, 0xae, 0xd7, 0x2d, 0x9e, 0x68, 0x6e, 0xd0, 0x9d, 0x52, 0x55, 0xd3, 0x60, 0xe3, 0xee, 0xa2, 0xc2, 0x9b, 0x9e, 0xae, 0xa0, 0x5f, 0xc7, 0x8c, 0x8c, 0xdb, 0x8c, 0x9d, 0x4a, 0xfc, 0x7a, 0xdc, 0x6d, 0x4a, 0xa0, 0x67, 0xb7, 0xab, 0xfb, 0x0a, 0x4e, 0x94, 0x0a, 0x77, 0x58, 0x0e, 0xc2, 0x06, 0x45, 0x6c, 0xb9, 0xe9, 0xf9, 0x5f, 0x6d, 0x56, 0x5d, 0x53, 0x6e, 0x53, 0x5a, 0x16, 0x7e, 0xde, 0x8e, 0x20, 0xec, 0x36, 0x08, 0x1e, 0x2f, 0xc5, 0x5a, 0xef, 0xaf, 0x24, 0xd2, 0x27, 0xff, 0xfe, 0x5e, 0x6c, 0xb0, 0x30, 0x93, 0xf4, 0x43, 0xb4, 0xc5, 0x16, 0x55, 0xd9, 0x1c, 0xa6, 0xf2, 0x75, 0x95, 0x9d, 0x1a, 0x80, 0x2a, 0xde, 0xab, 0x44, 0x70, 0x1b, 0x31, 0xe8, 0xb0, 0xfd, 0x02, 0x22, 0xc4, 0x99, 0x96, 0x6c, 0x72, 0xd1, 0x02, 0x0a, 0xd9, 0x37, 0x0e, 0x28, 0x02, 0xbe, 0x04, 0xc9, 0x93, 0x3f, 0x6b, 0x77, 0x4f, 0x6e, 0x8c, 0x69, 0xfc, 0x0b, 0xfd, 0x31, 0x59, 0x39, 0xa1, 0x27, 0xb4, 0xe0, 0x6d, 0x0f, 0x6f, 0x5e, 0xde, 0x67, 0x1c, 0xe1, 0x16, 0x12, 0x12, 0x6b, 0x51, 0x87, 0xb5, 0x33, 0x29, 0xb0, 0xa9, 0xcb, 0x7d, 0xa3, 0xb1, 0xcc, 0xd6, 0x7b, 0x8c, 0x07, 0xba, 0xb9, 0x9a, 0x66, 0x2d, 0xf8, 0xce, 0x85, 0x1f, 0x50, 0x2f, 0xc4, 0xe1, 0xed, 0x16, 0x32, 0xb6, 0xba, 0x55, 0x55, 0x44, 0x01, 0x8f, 0x75, 0x27, 0xe3, 0x62, 0xef, 0xc7, 0xe3, 0xb2, 0xba, 0x6f, 0x75, 0xa1, 0x25, 0x4f, 0x42, 0x8b, 0x3b, 0x7e, 0x0b, 0xea, 0x69, 0x54, 0x9e, 0x7f, 0x9c, 0x73, 0x62, 0x75, 0x55, 0x00, 0x80, 0xae, 0xe3, 0xaf, 0x59, 0x14, 0xe3, 0xa3, 0x4b, 0xe6, 0x56, 0xc7, 0x7f, 0x6b, 0x29, 0x42, 0x0e, 0x54, 0x33, 0xf3, 0xdf, 0xf3, 0x81, 0x1f, 0x35, 0x28, 0x20, 0x8e, 0x9d, 0x85, 0x0a, 0xa3, 0xc2, 0x9b, 0x0f, 0x77, 0x8a, 0x24, 0x27, 0xd5, 0xfd, 0xe3, 0x07, 0x32, 0xdf, 0xe5, 0x04, 0x43, 0xa9, 0xc1, 0xad, 0x55, 0xc7, 0x2a, 0x08, 0xab, 0x26, 0xff, 0xaf, 0x8e, 0xfb, 0x90, 0xbc, 0xaf, 0xd3, 0x72, 0x6b, 0x00, 0xc0, 0x05, 0xc8, 0xc0, 0xf0, 0xdb, 0xf2, 0xa1, 0x35, 0x30, 0x86, 0x72, 0x1e, 0x44, 0x65, 0x45, 0xb8, 0x13, 0x44, 0x11, 0x94, 0xa7, 0x55, 0xfd, 0x26, 0xb9, 0x63, 0xaf, 0xd9, 0x77, 0x27, 0x8d, 0x1b, 0x10, 0xf0, 0x90, 0x01, 0xc7, 0xed, 0x97, 0x54, 0x03, 0xc1, 0x5c, 0xbe, 0x7f, 0x99, 0x2a, 0xb0, 0x7b, 0x84, 0x70, 0xc9, 0x39, 0xf8, 0x66, 0xf4, 0x20, 0xf7, 0x7d, 0xb7, 0x79, 0xaf, 0x83, 0x97, 0x00, 0x32, 0x9e, 0x07, 0x77, 0xa6, 0x11, 0x63, 0x65, 0xd7, 0x6c, 0x36, 0xd0, 0x9d, 0x86, 0x04, 0x72, 0xa5, };
22309 static const u8 ed25519_970_test_vectors_expected_sig[] = {
22310 	0x0f, 0x07, 0x3c, 0x9a, 0x58, 0x6f, 0x6f, 0x5e, 0x08, 0x38, 0x9a, 0x2a, 0x5e, 0x18, 0x08, 0xe2, 0x70, 0xf0, 0xed, 0xb6, 0xaf, 0x10, 0x44, 0x96, 0xf9, 0x37, 0x57, 0x62, 0x3f, 0xea, 0x53, 0x13, 0x3a, 0x73, 0x1c, 0x44, 0x5a, 0xc2, 0x35, 0x78, 0xcd, 0x56, 0xa3, 0x88, 0x3c, 0x08, 0x95, 0x86, 0x68, 0x63, 0x1f, 0xed, 0xf1, 0x44, 0x6c, 0xe3, 0x4f, 0x85, 0x7f, 0x90, 0x82, 0x2b, 0xa8, 0x0a, };
22311 static const ec_test_case ed25519_970_test_case = {
22312 	.name = "EDDSA25519-SHA512/wei25519 970",
22313 	.ec_str_p = &wei25519_str_params,
22314 	.priv_key = ed25519_970_test_vectors_priv_key,
22315 	.priv_key_len = sizeof(ed25519_970_test_vectors_priv_key),
22316 	.nn_random = NULL,
22317 	.hash_type = SHA512,
22318 	.msg = (const char *)ed25519_970_test_vectors_message,
22319 	.msglen = sizeof(ed25519_970_test_vectors_message),
22320 	.sig_type = EDDSA25519,
22321 	.exp_sig = ed25519_970_test_vectors_expected_sig,
22322 	.exp_siglen = sizeof(ed25519_970_test_vectors_expected_sig),
22323 	.adata = NULL,
22324 	.adata_len = 0
22325 };
22326 
22327 /************************************************/
22328 static const u8 ed25519_971_test_vectors_priv_key[] = {
22329 	0x26, 0x31, 0xc8, 0xc3, 0x4d, 0x29, 0x48, 0xdd, 0xd5, 0x99, 0x6b, 0x41, 0x49, 0xce, 0xfd, 0x23, 0x8e, 0xa7, 0x45, 0x2e, 0xc2, 0x2e, 0x24, 0x61, 0x24, 0xdf, 0xa2, 0x79, 0xcc, 0xc2, 0x7d, 0xb8, };
22330 static const u8 ed25519_971_test_vectors_message[] = {
22331 	0x6f, 0x9b, 0xdc, 0xe1, 0x44, 0x3f, 0x28, 0x56, 0xd4, 0xa2, 0xf2, 0x27, 0x82, 0x83, 0x50, 0x12, 0xb7, 0x81, 0x8a, 0x0e, 0x02, 0x0d, 0xbc, 0xc2, 0x2a, 0x82, 0x16, 0x58, 0x30, 0x5f, 0x13, 0x42, 0x34, 0xd1, 0x4c, 0xea, 0x63, 0x61, 0x00, 0xed, 0x89, 0x6c, 0x2a, 0x8f, 0xb0, 0xe8, 0x70, 0x48, 0xec, 0x6f, 0x8b, 0x31, 0x48, 0x4f, 0x78, 0xeb, 0x17, 0x10, 0x45, 0xad, 0xd7, 0x2c, 0x85, 0x71, 0x0e, 0xc9, 0xf9, 0xb5, 0xd4, 0x36, 0x23, 0x41, 0x7b, 0x56, 0x53, 0xbe, 0x86, 0xe7, 0xfb, 0xf8, 0xb4, 0xff, 0x91, 0x11, 0x0a, 0x80, 0x8c, 0xb4, 0x1a, 0xcf, 0x66, 0xd4, 0x36, 0xe8, 0x9a, 0x73, 0x7f, 0xae, 0xa4, 0xef, 0xf3, 0x54, 0x49, 0x60, 0xf1, 0x14, 0xb8, 0x33, 0xb0, 0xb4, 0xeb, 0xc2, 0xc1, 0x40, 0x70, 0xb0, 0xbf, 0xb7, 0xb0, 0x05, 0x7e, 0xeb, 0xb8, 0x42, 0xbd, 0x1c, 0x1e, 0xd4, 0x58, 0xad, 0x34, 0x28, 0xf8, 0xf7, 0x2a, 0x1d, 0x1d, 0xb3, 0xc4, 0xcb, 0x47, 0x97, 0xa3, 0x99, 0xd4, 0x7a, 0x1e, 0x6d, 0xb7, 0x4d, 0xcb, 0x2e, 0xe2, 0x4a, 0xe8, 0x15, 0x85, 0xcf, 0x66, 0xef, 0x6d, 0x9b, 0xd2, 0x23, 0xf0, 0xf5, 0x4b, 0xc8, 0xc1, 0xce, 0xc1, 0xbb, 0x44, 0x60, 0xbe, 0xf4, 0xff, 0xd3, 0x2e, 0xe8, 0x05, 0xc3, 0xca, 0x5e, 0xe9, 0x76, 0xff, 0x9c, 0x14, 0x55, 0x9f, 0x8d, 0x75, 0x66, 0x62, 0xa2, 0xbc, 0x19, 0xe4, 0xc5, 0x98, 0x54, 0x06, 0xa0, 0x73, 0x05, 0xc9, 0x95, 0x0d, 0x86, 0x6c, 0x9a, 0x79, 0xa3, 0xe5, 0xf6, 0xc5, 0x96, 0x97, 0x53, 0xa1, 0x70, 0xe0, 0xfc, 0x4c, 0xc0, 0x9c, 0x6d, 0x87, 0xa1, 0x2b, 0x44, 0xcd, 0xf3, 0xbe, 0x16, 0x23, 0x15, 0x9e, 0x90, 0xca, 0xb7, 0xa8, 0xa3, 0xe6, 0xf0, 0x1f, 0x26, 0x85, 0x95, 0xb0, 0x21, 0xb1, 0xef, 0x7d, 0x00, 0x76, 0x94, 0x77, 0x27, 0x0d, 0x55, 0x84, 0xc9, 0x12, 0xe2, 0x2a, 0x36, 0x74, 0x38, 0x27, 0x7f, 0x59, 0xdf, 0x20, 0xc5, 0x62, 0x0d, 0xd5, 0xbe, 0xaa, 0x9b, 0xb6, 0x0b, 0xee, 0x47, 0xf4, 0xaf, 0x52, 0x7d, 0x89, 0x29, 0x57, 0xb2, 0xd1, 0x2b, 0x67, 0x8b, 0x52, 0x79, 0xa3, 0xf8, 0x32, 0x64, 0x65, 0x4c, 0x0a, 0x0f, 0x8d, 0x21, 0xe7, 0x09, 0x66, 0x8f, 0x30, 0xfb, 0x6e, 0x68, 0xf0, 0x47, 0xd0, 0xd9, 0xa7, 0xc2, 0xae, 0x9a, 0x28, 0xf7, 0xcb, 0x9d, 0xbf, 0x18, 0xf6, 0x3f, 0xc1, 0x66, 0x1f, 0x07, 0xd3, 0x10, 0xe5, 0x40, 0xc7, 0x76, 0x31, 0xf5, 0xbd, 0xac, 0x58, 0x24, 0x68, 0x5d, 0x7c, 0x9a, 0xba, 0x0f, 0xe1, 0xd0, 0x94, 0x07, 0xa9, 0x66, 0x2e, 0xf1, 0x8e, 0xb3, 0xe2, 0x8f, 0xd1, 0xe8, 0xbc, 0x89, 0x26, 0x57, 0xbc, 0x38, 0x24, 0x3a, 0x2e, 0x64, 0x53, 0xbd, 0xae, 0xab, 0xb2, 0x79, 0x1f, 0xc5, 0x48, 0x95, 0x21, 0x29, 0x54, 0x57, 0xad, 0x04, 0x18, 0x0c, 0xa8, 0x71, 0xf6, 0x31, 0x87, 0x92, 0xbd, 0x15, 0xfd, 0x18, 0x00, 0xce, 0x59, 0xdd, 0x3e, 0xcc, 0x7e, 0x0b, 0x72, 0x97, 0x92, 0x67, 0xd8, 0x18, 0x3e, 0x80, 0x4f, 0xdd, 0x45, 0xda, 0xad, 0x84, 0xfc, 0x4c, 0xaf, 0xeb, 0x56, 0x1e, 0xa8, 0xd6, 0xa7, 0x4a, 0x7c, 0xde, 0x72, 0x2d, 0x96, 0x25, 0x3a, 0xb3, 0xe7, 0x5f, 0x0a, 0xdd, 0xe0, 0x2a, 0x61, 0xfd, 0x5e, 0x1f, 0x59, 0xcb, 0x1f, 0x5f, 0x1b, 0x2e, 0x05, 0x26, 0x43, 0x58, 0x9a, 0x9e, 0x4b, 0xe4, 0xdd, 0x6e, 0xe6, 0x45, 0x38, 0xcb, 0x0b, 0x10, 0x9a, 0x11, 0x3f, 0x30, 0xa5, 0x8b, 0x35, 0x65, 0x62, 0x40, 0x43, 0x66, 0x2a, 0xbe, 0x17, 0xf6, 0x0e, 0x31, 0xe8, 0x9c, 0x36, 0xc9, 0x95, 0xe0, 0x0a, 0xe0, 0x7f, 0x56, 0xa9, 0x11, 0x8a, 0x31, 0xae, 0xc2, 0x4a, 0xd5, 0x44, 0xbc, 0x96, 0x58, 0x11, 0x21, 0x8d, 0xf8, 0x27, 0xc1, 0x73, 0x0b, 0xb9, 0x04, 0xbb, 0x79, 0xb6, 0x86, 0x13, 0xf6, 0xc9, 0x94, 0x67, 0x9b, 0x69, 0x90, 0xd7, 0x75, 0xb5, 0xcb, 0x32, 0xdb, 0x97, 0x19, 0x4b, 0xd8, 0x10, 0x19, 0xbe, 0xa4, 0x1f, 0x3a, 0x7e, 0xef, 0x50, 0x1b, 0xf8, 0x49, 0x1b, 0x0e, 0xa8, 0x59, 0x38, 0x84, 0x52, 0xe3, 0xec, 0xbe, 0x16, 0xaa, 0x7d, 0x56, 0x91, 0x51, 0x0a, 0x66, 0x06, 0xc4, 0x93, 0xe4, 0xc2, 0x93, 0x96, 0x1b, 0xf4, 0x0b, 0x4c, 0xd3, 0x00, 0xd9, 0xd2, 0x2e, 0xa1, 0xa7, 0x72, 0x4c, 0x07, 0x8b, 0x8b, 0xab, 0x1f, 0xd1, 0x65, 0x04, 0xe9, 0x89, 0xb1, 0x36, 0xd9, 0x25, 0x1a, 0xc9, 0xf1, 0xed, 0x94, 0xa5, 0xe9, 0xac, 0xbd, 0x9c, 0x04, 0xf8, 0x05, 0x8a, 0xfe, 0x03, 0x04, 0x9a, 0xed, 0x8b, 0xa2, 0x9f, 0xa2, 0xe8, 0xfb, 0x44, 0xf8, 0xe8, 0xc0, 0x4e, 0x87, 0x27, 0xf3, 0x99, 0xe7, 0x35, 0xe6, 0xc1, 0x49, 0x6a, 0x91, 0xa9, 0xb2, 0xcd, 0x2a, 0xb0, 0x2d, 0x43, 0xb2, 0x85, 0xe9, 0xd7, 0x61, 0x02, 0x93, 0xb6, 0x74, 0x9d, 0xf1, 0x04, 0x4b, 0x30, 0xe2, 0xda, 0x99, 0xa5, 0x64, 0x42, 0x9a, 0x23, 0xe6, 0x8c, 0x96, 0xfc, 0xe9, 0x2b, 0x08, 0xa0, 0x0b, 0x7b, 0x74, 0x2b, 0xa9, 0x7a, 0x62, 0xee, 0x58, 0x77, 0x6d, 0x7d, 0xd5, 0x65, 0xa4, 0x90, 0x07, 0x1d, 0x4b, 0x19, 0xdc, 0x64, 0x8e, 0x03, 0x32, 0x9c, 0xc5, 0xc8, 0x25, 0xd3, 0x87, 0xeb, 0xa4, 0x9e, 0x2e, 0xff, 0x6c, 0x43, 0x41, 0x86, 0x5c, 0x46, 0x4f, 0x13, 0xf1, 0xbe, 0xb1, 0x82, 0x7a, 0x7f, 0x26, 0x8c, 0xc1, 0x5a, 0x98, 0x24, 0x80, 0xbf, 0x08, 0x4f, 0xe3, 0x65, 0x2c, 0x1b, 0x0e, 0x0b, 0x4a, 0xd2, 0x62, 0x55, 0x85, 0x9a, 0xbf, 0x1c, 0x8a, 0x7f, 0x9b, 0x3b, 0xef, 0x09, 0x8a, 0x94, 0x07, 0xfd, 0xea, 0x0a, 0x53, 0x9e, 0xb0, 0x08, 0xfd, 0xd7, 0x49, 0xfa, 0x01, 0x86, 0xcc, 0x01, 0x69, 0xd9, 0xd9, 0xe6, 0x8f, 0xe5, 0xe5, 0x4c, 0xac, 0x32, 0xce, 0x57, 0xb5, 0xc8, 0x4c, 0x2d, 0x80, 0x5e, 0xca, 0x39, 0xc2, 0xdb, 0xbd, 0xd2, 0xe0, 0x2f, 0x7d, 0x22, 0x88, 0x26, 0x71, 0x2f, 0xf4, 0xa6, 0x14, 0x11, 0xca, 0x0a, 0xeb, 0x6f, 0x01, 0xa1, 0xf8, 0x0e, 0xf2, 0x9e, 0xeb, 0x07, 0x1a, 0x43, 0x22, 0x2d, 0x94, 0x97, 0x18, 0x4b, 0xd8, 0x5d, 0x9e, 0x44, 0xb1, 0x66, 0xbe, 0x97, 0xcf, 0xd2, 0xa7, 0x32, 0xaf, 0x4a, 0x23, 0x34, 0x63, 0xd3, 0xab, 0x54, 0x3a, 0x7a, 0x3c, 0x7a, 0xec, 0x55, 0x56, 0x56, 0x56, 0x88, 0x40, 0xf4, 0xdf, 0xea, 0x21, 0x7f, 0x65, 0x53, 0xaa, 0x98, 0xaf, 0x32, 0x4c, 0x12, 0xb2, 0xc3, 0x21, 0x4e, 0xe7, 0x6e, 0xec, 0x70, 0x06, 0x70, 0xaf, 0x68, 0xc8, 0xc1, 0xf3, 0x69, 0x46, 0xef, 0xd7, 0xff, 0x09, 0x33, 0xe5, 0x45, 0x3f, 0x12, 0x8e, 0x97, 0x15, 0xfd, 0xb3, 0x34, 0x4a, 0xc1, 0x0c, 0x4b, 0xb7, 0xec, 0x8f, 0x10, 0xdd, 0xf5, 0xdb, 0x71, 0xf1, 0xcf, 0x0e, 0xfe, 0x40, 0xf7, 0x5e, 0x5b, 0x63, 0x34, 0xef, 0x8c, 0xf8, 0x42, 0x9b, 0x32, 0x91, 0xe6, 0xe4, 0xce, 0x37, 0x9c, 0x17, 0x8a, 0xff, 0xcb, 0xc6, 0x10, 0x30, 0xeb, 0x89, 0x6d, 0x74, 0x4d, };
22332 static const u8 ed25519_971_test_vectors_expected_sig[] = {
22333 	0x0a, 0xdc, 0x6f, 0xa4, 0x0f, 0xfb, 0x81, 0xf6, 0xef, 0x4e, 0x41, 0x87, 0x55, 0x49, 0x17, 0x77, 0x5c, 0xf4, 0x65, 0xe7, 0xb5, 0xe8, 0x57, 0xf2, 0xe1, 0xe7, 0xf4, 0x00, 0x97, 0x71, 0x06, 0xd2, 0x37, 0x7e, 0xbc, 0x76, 0xab, 0xb1, 0xdb, 0x92, 0x4c, 0x64, 0x86, 0x7e, 0x3c, 0x6f, 0xe3, 0x8c, 0x0b, 0x4f, 0xcb, 0x1d, 0x0f, 0x94, 0x68, 0xe8, 0xfb, 0x23, 0x50, 0x29, 0xa8, 0x1c, 0xe6, 0x04, };
22334 static const ec_test_case ed25519_971_test_case = {
22335 	.name = "EDDSA25519-SHA512/wei25519 971",
22336 	.ec_str_p = &wei25519_str_params,
22337 	.priv_key = ed25519_971_test_vectors_priv_key,
22338 	.priv_key_len = sizeof(ed25519_971_test_vectors_priv_key),
22339 	.nn_random = NULL,
22340 	.hash_type = SHA512,
22341 	.msg = (const char *)ed25519_971_test_vectors_message,
22342 	.msglen = sizeof(ed25519_971_test_vectors_message),
22343 	.sig_type = EDDSA25519,
22344 	.exp_sig = ed25519_971_test_vectors_expected_sig,
22345 	.exp_siglen = sizeof(ed25519_971_test_vectors_expected_sig),
22346 	.adata = NULL,
22347 	.adata_len = 0
22348 };
22349 
22350 /************************************************/
22351 static const u8 ed25519_972_test_vectors_priv_key[] = {
22352 	0x39, 0x76, 0x9a, 0x66, 0xf0, 0xca, 0x12, 0x90, 0xfd, 0xa1, 0x43, 0x75, 0xb3, 0x5c, 0x66, 0x3f, 0x6a, 0x4b, 0x2a, 0xb3, 0x60, 0x71, 0x79, 0xab, 0xd9, 0x90, 0x63, 0xe2, 0xef, 0xa2, 0xc6, 0xa8, };
22353 static const u8 ed25519_972_test_vectors_message[] = {
22354 	0xff, 0x4d, 0x89, 0x87, 0xe3, 0xfa, 0x36, 0x01, 0x2b, 0x75, 0x86, 0x73, 0x6b, 0x79, 0x3d, 0x65, 0x97, 0x54, 0x69, 0x8c, 0xd1, 0x2b, 0x65, 0xe5, 0xba, 0x9d, 0x75, 0x8c, 0xac, 0x16, 0x49, 0x28, 0x8d, 0x20, 0x22, 0x43, 0x77, 0x28, 0x3e, 0xa5, 0x42, 0x5d, 0xec, 0x10, 0xab, 0x99, 0x17, 0xd1, 0x8c, 0xd1, 0x3d, 0x1b, 0xdf, 0x4a, 0x76, 0x9f, 0x37, 0x04, 0x4c, 0x84, 0xfa, 0xa2, 0xa4, 0x49, 0xc6, 0x89, 0xe0, 0x04, 0xc1, 0x4e, 0x00, 0x5c, 0x49, 0xda, 0x41, 0x06, 0xff, 0x75, 0xce, 0x13, 0x03, 0x36, 0x1c, 0x6e, 0x3e, 0x34, 0xcc, 0xfe, 0xe7, 0x5e, 0xe9, 0xc3, 0x1c, 0xbd, 0x06, 0xa4, 0xbc, 0xdb, 0xb4, 0x2f, 0xd6, 0x49, 0xbe, 0x4d, 0xfc, 0xd6, 0x64, 0x00, 0x6d, 0x6a, 0x5f, 0x61, 0x07, 0x7c, 0x04, 0xa6, 0xa8, 0x1d, 0xb3, 0x6b, 0xe8, 0x6b, 0xa4, 0x2c, 0x29, 0x51, 0xf0, 0x51, 0xae, 0xda, 0x64, 0xac, 0xea, 0x49, 0x6c, 0xb9, 0x24, 0x98, 0x2b, 0x9f, 0x7d, 0x23, 0x4a, 0xc9, 0x72, 0x3f, 0xef, 0x98, 0xa8, 0xe1, 0x27, 0x55, 0xe3, 0x26, 0xa5, 0x2f, 0xbe, 0x35, 0x85, 0x1f, 0x41, 0x1e, 0xeb, 0x86, 0x76, 0x06, 0xd4, 0x5b, 0x51, 0x3f, 0x54, 0x52, 0x63, 0x91, 0xc5, 0x54, 0x63, 0x5c, 0x18, 0x0b, 0x8f, 0xd0, 0xee, 0x45, 0x1a, 0xfc, 0x96, 0xe4, 0xef, 0xd3, 0x60, 0xb6, 0x1e, 0x6b, 0xaf, 0x03, 0xdd, 0x6d, 0x19, 0xba, 0x51, 0x5c, 0x31, 0xec, 0x1c, 0xdd, 0x3a, 0xff, 0xff, 0xdb, 0x27, 0x35, 0x4e, 0x3e, 0x6b, 0x56, 0xe9, 0xe1, 0xa1, 0xa1, 0xb7, 0xd4, 0xb5, 0x7d, 0x9d, 0x76, 0x89, 0xbb, 0x2f, 0xea, 0x6c, 0x8d, 0x3f, 0x9c, 0xe0, 0xdf, 0x2d, 0x9e, 0xe9, 0x19, 0xc4, 0x23, 0x0a, 0x1f, 0x20, 0xb8, 0x5d, 0xfe, 0xfe, 0x1e, 0xa3, 0xd7, 0xf7, 0x7d, 0xb4, 0x70, 0xe4, 0x02, 0x24, 0x29, 0xef, 0x60, 0x9b, 0x0f, 0xf4, 0x49, 0x46, 0x44, 0x0a, 0xcb, 0x44, 0xcd, 0x13, 0x44, 0x5b, 0xcf, 0xa3, 0xf2, 0x05, 0x03, 0xc2, 0x6c, 0x2f, 0xb6, 0x63, 0xc8, 0x90, 0x65, 0xfb, 0x93, 0x34, 0xa6, 0x03, 0xeb, 0x9a, 0xb7, 0x15, 0x2e, 0x62, 0x62, 0x92, 0x33, 0xc4, 0x4c, 0xb0, 0x0e, 0x77, 0x71, 0x6d, 0x9b, 0x72, 0xc8, 0x4f, 0xd1, 0xb3, 0x40, 0x63, 0x4f, 0xf1, 0xce, 0xa3, 0x47, 0x50, 0x15, 0x76, 0x10, 0x0e, 0xcb, 0x0f, 0xd1, 0xbb, 0x76, 0xae, 0x0d, 0xff, 0x1c, 0x2b, 0x09, 0x48, 0xeb, 0x71, 0xee, 0x2c, 0xc3, 0x1e, 0x79, 0xd3, 0x01, 0x5d, 0x72, 0xdb, 0xee, 0x22, 0x4a, 0x98, 0x0e, 0x0f, 0x95, 0xa6, 0x9f, 0x79, 0x3d, 0xa8, 0x3a, 0x2d, 0xaa, 0x56, 0xef, 0xe5, 0x7b, 0x2f, 0x8c, 0xea, 0xac, 0x9e, 0x55, 0xf4, 0x43, 0xca, 0x9e, 0x73, 0x2b, 0x48, 0xc7, 0x5f, 0xac, 0x21, 0xc3, 0x6f, 0xa7, 0x72, 0x73, 0xc3, 0xf3, 0x48, 0x35, 0xff, 0xd8, 0x3c, 0x96, 0xf0, 0x0a, 0xc6, 0xe8, 0x6c, 0xff, 0xed, 0x08, 0x15, 0x36, 0x46, 0xc1, 0xce, 0xa2, 0x23, 0xda, 0x9c, 0xa3, 0x60, 0xca, 0xb9, 0x7e, 0x03, 0xb2, 0xb6, 0xc8, 0xfb, 0xa7, 0xc1, 0x95, 0xa3, 0x9a, 0xe5, 0x2e, 0xb2, 0xee, 0x86, 0x43, 0x00, 0xae, 0x56, 0xa1, 0x0f, 0x54, 0x7f, 0x99, 0xa3, 0x16, 0x98, 0x72, 0x24, 0x9f, 0x97, 0x77, 0x4b, 0x17, 0x98, 0x93, 0x55, 0x36, 0xf2, 0xf5, 0xf0, 0x11, 0xce, 0x57, 0x61, 0x3a, 0x94, 0xfc, 0xb7, 0xe7, 0x28, 0x6a, 0x6d, 0x49, 0xc1, 0x0f, 0xd9, 0x29, 0xd7, 0x67, 0x1c, 0xbb, 0x8c, 0xf1, 0x7d, 0xfc, 0xad, 0x4b, 0x24, 0x85, 0xc3, 0xd8, 0xfd, 0x79, 0x12, 0x87, 0x21, 0xe5, 0x5d, 0x84, 0x80, 0x87, 0x63, 0xc2, 0xaf, 0xa9, 0xc5, 0x5e, 0x3b, 0x0c, 0xd7, 0xbf, 0x2f, 0x0a, 0x66, 0xb5, 0xe4, 0x67, 0xbe, 0xc5, 0xee, 0x89, 0xad, 0x57, 0x0b, 0x60, 0xf1, 0x88, 0xb3, 0xf7, 0xb4, 0xa5, 0x11, 0xff, 0x85, 0x93, 0x12, 0xde, 0xd0, 0x78, 0xd8, 0xd0, 0x09, 0x11, 0x34, 0xfd, 0x49, 0xbc, 0x79, 0x2d, 0x2d, 0x7d, 0x60, 0xb3, 0x04, 0x94, 0x1c, 0x7f, 0x23, 0x20, 0x6f, 0x99, 0xe8, 0x63, 0xb1, 0xe2, 0xd8, 0xc9, 0xec, 0xff, 0xd2, 0xff, 0x0a, 0x3a, 0x3c, 0x75, 0x49, 0x85, 0x61, 0x5a, 0x9a, 0x92, 0xed, 0xce, 0xad, 0x00, 0xfe, 0x0e, 0x05, 0x49, 0x3b, 0x19, 0x8d, 0x1f, 0x7c, 0x90, 0x08, 0x84, 0x46, 0xbb, 0xa4, 0x60, 0x38, 0xa7, 0x1f, 0x32, 0x65, 0x3b, 0x59, 0x12, 0xb2, 0x4f, 0x43, 0x13, 0x77, 0x48, 0xb7, 0x5a, 0xec, 0x2c, 0x15, 0xfe, 0x4b, 0xf5, 0xa6, 0xf8, 0x6b, 0x8a, 0x6c, 0xdd, 0x9c, 0x74, 0x47, 0xf2, 0xeb, 0xb0, 0xf4, 0x3b, 0x01, 0xca, 0x15, 0x23, 0xe0, 0xd4, 0x96, 0x24, 0x00, 0x06, 0xad, 0x7f, 0xff, 0xfa, 0xfe, 0x0d, 0xf5, 0x75, 0x4b, 0x34, 0x2c, 0xaf, 0xf3, 0x55, 0x5d, 0x72, 0xa2, 0x7d, 0x0b, 0x92, 0xca, 0x16, 0x67, 0x66, 0x5c, 0xec, 0x43, 0xbf, 0xb5, 0x83, 0x07, 0x7a, 0x9c, 0x17, 0x41, 0xfa, 0x49, 0x2c, 0xe3, 0xdc, 0x2c, 0x75, 0x29, 0xcd, 0xed, 0x81, 0xb8, 0x28, 0x1a, 0x3f, 0x37, 0x59, 0x48, 0xb8, 0xa7, 0xce, 0xd0, 0x96, 0xb2, 0xfa, 0xcc, 0x25, 0xe3, 0x90, 0x29, 0xe2, 0x21, 0xb6, 0x6a, 0x53, 0xd3, 0x97, 0x9e, 0x1f, 0x40, 0x5f, 0xd8, 0x8a, 0xfc, 0x06, 0xec, 0x6e, 0x43, 0x09, 0xdc, 0x85, 0xe6, 0x9d, 0x6e, 0xf2, 0xb4, 0xb4, 0x92, 0x66, 0x16, 0x4a, 0x9d, 0x9d, 0x1c, 0x31, 0xee, 0x39, 0x21, 0x12, 0x7b, 0x13, 0x38, 0x1b, 0xfb, 0x74, 0x0d, 0xd3, 0x8d, 0xc1, 0xc7, 0x31, 0x59, 0x21, 0xf9, 0xc2, 0xfe, 0x58, 0xb6, 0x1b, 0x63, 0x1a, 0x7d, 0x9f, 0xde, 0x2d, 0xd8, 0xa4, 0xbe, 0x3d, 0xed, 0x04, 0x90, 0xae, 0x3b, 0x83, 0x76, 0x79, 0x19, 0x55, 0xc1, 0xc4, 0xb4, 0xfe, 0xd0, 0x0b, 0x9f, 0x4c, 0x38, 0xab, 0x73, 0x50, 0xfc, 0x2e, 0x37, 0xa3, 0x15, 0x0c, 0x18, 0x16, 0x2b, 0x1f, 0xaf, 0x03, 0x37, 0x89, 0x4b, 0xc2, 0x3e, 0x74, 0xf5, 0x95, 0xe4, 0xbe, 0x33, 0x46, 0x6d, 0xea, 0xb3, 0x54, 0x58, 0xbe, 0x97, 0xb4, 0xf7, 0x56, 0x58, 0x97, 0xf0, 0x68, 0x52, 0xf7, 0x1c, 0x60, 0xfe, 0xf9, 0x10, 0x1d, 0x72, 0x6b, 0x72, 0xe0, 0x10, 0x2a, 0x97, 0xb2, 0xca, 0x52, 0x11, 0xe3, 0x80, 0x68, 0x34, 0xb0, 0xac, 0x1a, 0x7d, 0xf8, 0x7c, 0x2a, 0x07, 0x8d, 0xf2, 0x63, 0xef, 0x8b, 0xa4, 0x57, 0xdc, 0x89, 0x1b, 0x7f, 0x2e, 0x62, 0x78, 0x11, 0xab, 0x62, 0x2b, 0x99, 0x46, 0xf8, 0xc6, 0xb7, 0x31, 0xf2, 0x40, 0x78, 0xd1, 0x7b, 0x06, 0xb2, 0x00, 0xc3, 0x44, 0x7f, 0x80, 0x32, 0xaa, 0x3e, 0x7a, 0x24, 0x3e, 0xe4, 0x22, 0xdd, 0xa2, 0xe6, 0x52, 0xfd, 0x75, 0x71, 0x3a, 0xfb, 0xce, 0x8a, 0x59, 0xef, 0x85, 0x36, 0x65, 0x3a, 0x48, 0xdc, 0xf4, 0x2a, 0x70, 0xe7, 0x62, 0x1f, 0x9b, 0x28, 0x02, 0x40, 0x9b, 0xe1, 0xc1, 0xa6, 0x1f, 0x32, 0xe3, 0x67, 0x89, 0xa5, 0xc5, 0x05, 0x5e, 0x1a, 0x82, 0x68, 0xe9, 0xdc, 0x43, 0x8c, 0x2e, 0x15, 0x27, };
22355 static const u8 ed25519_972_test_vectors_expected_sig[] = {
22356 	0x14, 0x42, 0xde, 0xa2, 0x80, 0x7e, 0x03, 0x11, 0x59, 0xec, 0x6a, 0x41, 0x2d, 0x8e, 0x07, 0xbb, 0x3e, 0x29, 0x93, 0x08, 0x09, 0x0f, 0x21, 0x8f, 0xa7, 0xc1, 0x0a, 0x9c, 0x50, 0x68, 0xef, 0x9b, 0x64, 0xef, 0x11, 0xca, 0x9f, 0xb9, 0x2b, 0xe1, 0xd0, 0x21, 0x6b, 0x99, 0x31, 0x8f, 0xf0, 0xf0, 0x3c, 0xb8, 0x71, 0xcd, 0x7d, 0xd6, 0x3a, 0x38, 0xae, 0x17, 0x02, 0x31, 0x3e, 0x5b, 0x25, 0x0c, };
22357 static const ec_test_case ed25519_972_test_case = {
22358 	.name = "EDDSA25519-SHA512/wei25519 972",
22359 	.ec_str_p = &wei25519_str_params,
22360 	.priv_key = ed25519_972_test_vectors_priv_key,
22361 	.priv_key_len = sizeof(ed25519_972_test_vectors_priv_key),
22362 	.nn_random = NULL,
22363 	.hash_type = SHA512,
22364 	.msg = (const char *)ed25519_972_test_vectors_message,
22365 	.msglen = sizeof(ed25519_972_test_vectors_message),
22366 	.sig_type = EDDSA25519,
22367 	.exp_sig = ed25519_972_test_vectors_expected_sig,
22368 	.exp_siglen = sizeof(ed25519_972_test_vectors_expected_sig),
22369 	.adata = NULL,
22370 	.adata_len = 0
22371 };
22372 
22373 /************************************************/
22374 static const u8 ed25519_973_test_vectors_priv_key[] = {
22375 	0x0c, 0x80, 0x8b, 0x06, 0x6f, 0x0c, 0x8e, 0x8d, 0xbb, 0x1c, 0x23, 0xd6, 0xc2, 0xce, 0xdd, 0x0b, 0xe8, 0x66, 0xd8, 0x42, 0x5f, 0x24, 0x1a, 0x92, 0x85, 0x70, 0x0e, 0xa5, 0x45, 0x36, 0xcf, 0x6d, };
22376 static const u8 ed25519_973_test_vectors_message[] = {
22377 	0xc9, 0x45, 0x71, 0x41, 0x00, 0x58, 0x1f, 0x4e, 0x24, 0xda, 0x11, 0xfc, 0x0f, 0x6c, 0x6d, 0x02, 0x10, 0x43, 0x3f, 0x97, 0x77, 0x52, 0x51, 0x24, 0xc5, 0x5e, 0xe0, 0x72, 0xd8, 0x5d, 0x79, 0x8b, 0x70, 0x5f, 0x9d, 0x31, 0xc8, 0xf9, 0x77, 0xdb, 0x6e, 0xdf, 0xb7, 0xa6, 0x5c, 0x78, 0xad, 0x2d, 0x7d, 0x31, 0xd6, 0xb7, 0xb5, 0xbe, 0x40, 0xff, 0x11, 0x78, 0xd3, 0x03, 0xb6, 0x83, 0x9b, 0xb0, 0xc6, 0x32, 0x10, 0xc1, 0xd3, 0x38, 0xc1, 0x03, 0xaf, 0xa0, 0xd4, 0x53, 0xec, 0xa1, 0xbc, 0xa2, 0x77, 0xd9, 0x30, 0x77, 0x8a, 0xd5, 0x08, 0x02, 0x27, 0x2f, 0x03, 0xdb, 0xe2, 0x18, 0x4f, 0xc3, 0x1e, 0xf8, 0xea, 0x6a, 0xbe, 0x21, 0x69, 0x97, 0x19, 0x9f, 0x7c, 0x1b, 0x33, 0x77, 0x37, 0x96, 0x89, 0x07, 0x27, 0x2a, 0xa5, 0x1b, 0xd4, 0x9c, 0x07, 0x38, 0x9c, 0x95, 0x46, 0x8c, 0xef, 0x4f, 0xd9, 0x9a, 0xe7, 0x8c, 0xa4, 0x54, 0x2a, 0x2b, 0xbc, 0x0e, 0x8a, 0xa9, 0x52, 0x14, 0xad, 0x1c, 0xff, 0xf9, 0xd5, 0x08, 0x5a, 0x43, 0x43, 0x94, 0x47, 0x3b, 0x84, 0xb7, 0x4b, 0xe9, 0xbf, 0x2f, 0x02, 0x02, 0xad, 0x1e, 0xe4, 0x61, 0x66, 0x04, 0xca, 0x1d, 0xd7, 0x5f, 0x4a, 0x19, 0x53, 0x42, 0xeb, 0xbf, 0x8f, 0xc5, 0x9f, 0x3f, 0x79, 0x61, 0x65, 0x54, 0xdc, 0x7b, 0xfd, 0xd5, 0x56, 0xbe, 0x43, 0x72, 0x21, 0xc1, 0x0b, 0xfa, 0xd3, 0x9e, 0x11, 0x9e, 0x06, 0x04, 0x5b, 0xe5, 0xfe, 0xd6, 0x83, 0xd3, 0x53, 0x4f, 0xb6, 0xcf, 0xed, 0x33, 0x89, 0x1c, 0x96, 0xf9, 0xc3, 0x30, 0xf2, 0x8b, 0x68, 0x4f, 0x8f, 0xba, 0xd4, 0x7c, 0x01, 0x41, 0x8e, 0xab, 0x6c, 0xee, 0xcc, 0x2e, 0xd7, 0x77, 0xf4, 0xc2, 0x18, 0xa2, 0x7a, 0xc2, 0x25, 0x82, 0x39, 0x23, 0x15, 0xc5, 0x3a, 0xa7, 0x30, 0x9e, 0xc5, 0x4c, 0x61, 0x75, 0x23, 0x6e, 0x44, 0x24, 0xdc, 0x97, 0x84, 0x65, 0xab, 0x62, 0x8d, 0x95, 0x44, 0xb0, 0xbe, 0x84, 0x10, 0x3e, 0xb5, 0x6f, 0x1b, 0xaf, 0xe5, 0xe5, 0xea, 0xed, 0x04, 0xc9, 0x8b, 0xfe, 0x2e, 0x8a, 0x24, 0x18, 0xc6, 0xc5, 0x2a, 0x61, 0xea, 0xce, 0x85, 0x23, 0x6b, 0x66, 0xc7, 0xb3, 0xb8, 0x70, 0x7e, 0xd5, 0x56, 0x41, 0xdd, 0x9d, 0x5d, 0xa9, 0x7c, 0x99, 0xc1, 0x1c, 0xbe, 0xb9, 0xaa, 0x2d, 0xb1, 0x47, 0x82, 0x0d, 0xc7, 0x24, 0x80, 0x0a, 0x9d, 0x80, 0xf5, 0x05, 0xfa, 0x5a, 0xf2, 0x09, 0x21, 0xca, 0xd2, 0x43, 0x56, 0x83, 0xbb, 0x4f, 0xc6, 0x0b, 0xdd, 0xd4, 0x75, 0xf8, 0x63, 0xe2, 0xf5, 0x95, 0x0d, 0x23, 0x63, 0x99, 0xd8, 0xd7, 0x5b, 0x40, 0x4b, 0x39, 0x4a, 0x54, 0x67, 0x37, 0xf9, 0x3a, 0x62, 0x40, 0x87, 0x00, 0xb3, 0xab, 0x3c, 0x1e, 0x92, 0x2b, 0x1a, 0x85, 0x9a, 0x29, 0x15, 0xc2, 0xd3, 0x53, 0x68, 0x81, 0x5c, 0xd4, 0x5b, 0x85, 0xb2, 0xac, 0x08, 0x31, 0x21, 0xff, 0x00, 0x0f, 0x05, 0x0d, 0xcd, 0xf4, 0x15, 0xe5, 0x27, 0x5a, 0x5c, 0x42, 0xda, 0xe3, 0xb1, 0x54, 0x00, 0xf3, 0xdd, 0xaf, 0x93, 0x39, 0xf2, 0x0a, 0x12, 0x61, 0xa8, 0x8c, 0xd9, 0x02, 0x05, 0x63, 0x97, 0x63, 0x21, 0x11, 0x52, 0xdf, 0x41, 0x4a, 0x9a, 0x6a, 0x62, 0x18, 0xf5, 0x6b, 0x35, 0xa2, 0xde, 0x9e, 0x84, 0x82, 0x44, 0x9f, 0x6d, 0xa7, 0x7c, 0x9e, 0x3d, 0x4a, 0xf0, 0x49, 0x30, 0x15, 0xa7, 0x26, 0x21, 0x7f, 0x82, 0xac, 0x58, 0x95, 0x4f, 0xe3, 0xe2, 0xe3, 0x44, 0x40, 0x35, 0x6b, 0x11, 0x2e, 0x06, 0xa6, 0xf6, 0x71, 0xfb, 0x5a, 0x6e, 0xf4, 0x61, 0x9a, 0x6e, 0xa7, 0xb4, 0xe0, 0x4d, 0xb3, 0x75, 0x7f, 0xb6, 0x64, 0xc3, 0x96, 0xb3, 0x41, 0xca, 0x89, 0x00, 0x1d, 0xc1, 0x60, 0x4b, 0x51, 0xfa, 0x91, 0x53, 0xf9, 0x13, 0x0c, 0x10, 0x20, 0xff, 0x88, 0x90, 0x92, 0x87, 0x82, 0x3a, 0xb3, 0x91, 0x5c, 0xcc, 0x85, 0xc4, 0xe3, 0x5d, 0xf6, 0xc2, 0xf8, 0xe6, 0xf9, 0x02, 0xbe, 0x82, 0xba, 0x21, 0x29, 0x7f, 0xd3, 0x83, 0x5a, 0xff, 0x5c, 0xe0, 0x2f, 0x3c, 0x07, 0xdc, 0x09, 0x3f, 0xcb, 0x1a, 0xba, 0x26, 0xe0, 0x6d, 0xfe, 0x6f, 0x02, 0xdf, 0x79, 0x29, 0x1a, 0xac, 0xa0, 0x69, 0xec, 0xab, 0x93, 0x81, 0x40, 0x4c, 0x9c, 0x3e, 0xa1, 0xad, 0x40, 0x9a, 0xdf, 0x29, 0x2a, 0x91, 0xe3, 0xa5, 0x82, 0xd5, 0xa7, 0xb6, 0x8f, 0xfb, 0xe1, 0x0a, 0x03, 0x05, 0x24, 0x8e, 0x09, 0x67, 0xe6, 0xdf, 0x37, 0x2f, 0x28, 0x1b, 0xd1, 0x92, 0xe1, 0x39, 0x97, 0x9c, 0x98, 0x66, 0xca, 0x8f, 0xe1, 0xe1, 0x0e, 0x06, 0x16, 0xdc, 0x2d, 0x4f, 0x85, 0xe1, 0x19, 0xe0, 0xcb, 0x4b, 0xfe, 0x8c, 0xc3, 0x1d, 0x9f, 0x5c, 0x01, 0x8b, 0x65, 0x40, 0x85, 0x24, 0x00, 0x0a, 0x30, 0x16, 0xa2, 0x3d, 0x99, 0x14, 0xd5, 0x7e, 0x95, 0x55, 0x76, 0xe2, 0x66, 0x0b, 0x0e, 0x0d, 0x96, 0xc8, 0x49, 0x5a, 0x12, 0xc3, 0xd7, 0x31, 0x22, 0xd2, 0x00, 0xb0, 0xf0, 0xe5, 0xeb, 0xd4, 0x46, 0x56, 0x2b, 0x08, 0xf4, 0x79, 0x34, 0xab, 0x49, 0x9a, 0x96, 0x99, 0x1d, 0xcf, 0x99, 0xc9, 0x6a, 0x62, 0x88, 0x07, 0x39, 0x84, 0x5d, 0x29, 0x82, 0x01, 0x50, 0x55, 0x3e, 0xae, 0x9b, 0xe0, 0xbb, 0x41, 0xd5, 0x3d, 0x3a, 0xf0, 0x1d, 0x98, 0x67, 0xbb, 0x47, 0x32, 0xc9, 0x0b, 0xf6, 0xe1, 0x37, 0x31, 0x6e, 0x3b, 0x1e, 0xdc, 0xc2, 0x09, 0xa8, 0xa0, 0x9f, 0xb0, 0x62, 0xa6, 0xef, 0x05, 0xf3, 0x7e, 0x57, 0xf2, 0xc5, 0xd1, 0xd0, 0xca, 0xba, 0xf0, 0x7a, 0x8e, 0xd7, 0xd4, 0x14, 0x55, 0x40, 0x7b, 0x09, 0x67, 0x54, 0x18, 0x0a, 0xa9, 0x6d, 0x3d, 0x96, 0x59, 0x19, 0x45, 0xdd, 0x7a, 0x10, 0x40, 0xa2, 0xde, 0x60, 0xd8, 0xe1, 0xc0, 0x54, 0xf7, 0x85, 0x46, 0x52, 0xb7, 0x32, 0xe7, 0xa8, 0xf5, 0xb6, 0x47, 0x4c, 0x3b, 0xaa, 0x18, 0x40, 0xfb, 0xe8, 0x1b, 0x1e, 0x6b, 0x54, 0xe2, 0x01, 0xef, 0x0b, 0xc8, 0xd0, 0xf2, 0x13, 0xd7, 0xce, 0xc1, 0xd8, 0x24, 0xd2, 0x22, 0x09, 0xac, 0x72, 0x52, 0x5a, 0x64, 0xb9, 0x03, 0xe7, 0x73, 0xb8, 0x3f, 0x1b, 0x68, 0xf6, 0x40, 0x27, 0x9f, 0x15, 0x05, 0x3d, 0x21, 0xec, 0x15, 0xce, 0x2f, 0xf7, 0x59, 0x22, 0x17, 0x6b, 0x75, 0x84, 0xa1, 0x6b, 0xf1, 0xa1, 0xf0, 0xd6, 0x36, 0xb7, 0x94, 0x2a, 0x3d, 0x61, 0x86, 0x2f, 0x6f, 0xd1, 0x30, 0x99, 0x72, 0xd3, 0x14, 0x1e, 0xb7, 0x69, 0x31, 0x4c, 0xa9, 0x75, 0xd0, 0x20, 0xbf, 0x02, 0xbf, 0xdd, 0xf1, 0x7d, 0x14, 0xb6, 0x0e, 0xb7, 0x86, 0xbf, 0x9f, 0x55, 0x98, 0x9f, 0xe4, 0x73, 0x32, 0x0d, 0x44, 0x29, 0x67, 0x7e, 0x30, 0x1c, 0x68, 0x26, 0x33, 0xf8, 0x13, 0xff, 0x26, 0xc0, 0xa3, 0xda, 0x92, 0xf6, 0xd0, 0x68, 0x06, 0x16, 0x10, 0x5b, 0x04, 0x25, 0xaf, 0x33, 0x8c, 0x2e, 0xa6, 0x15, 0x3b, 0xdd, 0x52, 0x16, 0xfa, 0xe2, 0xaf, 0xe4, 0x61, 0xe9, 0x24, 0x9c, 0x05, 0xe3, 0x2f, 0x76, 0xad, 0x7c, 0x42, 0x9d, 0x92, 0x53, 0x4b, 0x68, 0x6d, 0xd1, };
22378 static const u8 ed25519_973_test_vectors_expected_sig[] = {
22379 	0x38, 0xc6, 0x82, 0xce, 0xde, 0xfb, 0x13, 0xe4, 0x6b, 0x11, 0xf7, 0xb5, 0xf8, 0x00, 0xcc, 0x81, 0x20, 0xd4, 0x5a, 0x83, 0xcd, 0x8d, 0x8d, 0xec, 0x10, 0xc5, 0x77, 0xbb, 0x01, 0x53, 0xd5, 0x09, 0xba, 0x4f, 0xdf, 0x40, 0x09, 0x98, 0x78, 0x8b, 0x70, 0x60, 0x07, 0xce, 0x16, 0x2b, 0x96, 0x94, 0x5c, 0x71, 0x40, 0xbe, 0xee, 0x74, 0xe1, 0x9d, 0x07, 0x43, 0xaf, 0xa4, 0xec, 0xfd, 0x25, 0x0a, };
22380 static const ec_test_case ed25519_973_test_case = {
22381 	.name = "EDDSA25519-SHA512/wei25519 973",
22382 	.ec_str_p = &wei25519_str_params,
22383 	.priv_key = ed25519_973_test_vectors_priv_key,
22384 	.priv_key_len = sizeof(ed25519_973_test_vectors_priv_key),
22385 	.nn_random = NULL,
22386 	.hash_type = SHA512,
22387 	.msg = (const char *)ed25519_973_test_vectors_message,
22388 	.msglen = sizeof(ed25519_973_test_vectors_message),
22389 	.sig_type = EDDSA25519,
22390 	.exp_sig = ed25519_973_test_vectors_expected_sig,
22391 	.exp_siglen = sizeof(ed25519_973_test_vectors_expected_sig),
22392 	.adata = NULL,
22393 	.adata_len = 0
22394 };
22395 
22396 /************************************************/
22397 static const u8 ed25519_974_test_vectors_priv_key[] = {
22398 	0x04, 0x9d, 0xac, 0x3c, 0x97, 0x7d, 0x9d, 0xf5, 0x03, 0x49, 0x6b, 0x43, 0xd7, 0x6e, 0x55, 0x40, 0xe3, 0x15, 0x00, 0x1a, 0xd5, 0x7f, 0x15, 0xea, 0x9f, 0x08, 0x70, 0xca, 0xd2, 0xd4, 0xf9, 0xe9, };
22399 static const u8 ed25519_974_test_vectors_message[] = {
22400 	0x7f, 0x31, 0xe3, 0x46, 0xf6, 0x8d, 0xa7, 0x37, 0x16, 0xaa, 0xcb, 0x16, 0xee, 0xa1, 0x9b, 0xb2, 0x41, 0x42, 0xdc, 0x28, 0x3e, 0x72, 0x63, 0xff, 0xc3, 0xf7, 0x04, 0xa2, 0x2a, 0xe5, 0x27, 0x5a, 0x0e, 0xf9, 0x5f, 0x06, 0x69, 0xba, 0xe5, 0xa5, 0x4c, 0x7f, 0xeb, 0x84, 0xbc, 0x74, 0x87, 0x3c, 0xca, 0x0f, 0x33, 0x5d, 0x6c, 0xff, 0x3d, 0x8b, 0x4a, 0x20, 0x05, 0x6c, 0x64, 0xf5, 0xe8, 0x82, 0xcb, 0xbb, 0xd2, 0xac, 0x74, 0x20, 0x76, 0x76, 0x46, 0x7e, 0x54, 0x66, 0xdd, 0xd5, 0x6a, 0xed, 0xf5, 0x6e, 0x09, 0x7c, 0x7f, 0x59, 0xd9, 0x45, 0x91, 0x5e, 0xb0, 0xeb, 0xd0, 0xc3, 0xc8, 0x3d, 0x48, 0x88, 0x8d, 0x3e, 0x9e, 0xde, 0x51, 0xad, 0x2d, 0xd8, 0xa0, 0xee, 0x1e, 0xab, 0x4c, 0xf8, 0x7f, 0xfa, 0x78, 0x63, 0x5a, 0xfc, 0x4d, 0x6e, 0xf3, 0xe8, 0x7d, 0xda, 0x3b, 0x65, 0x56, 0x5c, 0x29, 0x85, 0xa4, 0xad, 0x0a, 0xcf, 0xdf, 0xb8, 0x1c, 0xb0, 0xe6, 0x1c, 0x67, 0x82, 0x6a, 0x6e, 0xa0, 0xbe, 0xd4, 0xc0, 0x8a, 0xa1, 0xa5, 0x41, 0xde, 0x60, 0x45, 0x87, 0x04, 0xac, 0x21, 0xca, 0x12, 0xf1, 0xc8, 0x11, 0x8b, 0xb3, 0x09, 0x2c, 0x35, 0xa4, 0x0c, 0x92, 0x1e, 0x68, 0x45, 0x64, 0x56, 0x2c, 0x2c, 0x10, 0x49, 0xdc, 0xdc, 0x2b, 0x8d, 0x6a, 0x97, 0xe3, 0x56, 0x7d, 0x35, 0x6b, 0xff, 0xb5, 0x69, 0x2a, 0x41, 0xd8, 0x9d, 0xdd, 0xa0, 0xec, 0x35, 0x52, 0x15, 0x2a, 0x27, 0x57, 0x7f, 0x1c, 0xce, 0x57, 0xd0, 0x09, 0x86, 0xdc, 0xa7, 0x7e, 0xdf, 0x5e, 0x25, 0x18, 0x15, 0x82, 0x00, 0xad, 0xf6, 0x90, 0xaf, 0xfb, 0x31, 0xaa, 0xf2, 0xb5, 0x74, 0x83, 0x68, 0x39, 0x44, 0x09, 0x99, 0xf1, 0x57, 0x91, 0xce, 0xa8, 0x53, 0x42, 0xac, 0x94, 0xa9, 0x6c, 0x7a, 0xf7, 0xa1, 0x9e, 0x49, 0x43, 0x10, 0xae, 0x26, 0x67, 0x5f, 0x43, 0xc3, 0x52, 0x58, 0xe8, 0x5b, 0x68, 0x40, 0xb9, 0x9c, 0x6b, 0x09, 0xcf, 0xa5, 0x8d, 0x19, 0xf1, 0xe4, 0x3a, 0x77, 0xe3, 0x97, 0xb0, 0x8c, 0x0d, 0xb1, 0x83, 0x0b, 0xca, 0x67, 0xb3, 0x9e, 0xcd, 0x87, 0x52, 0xda, 0x61, 0x1e, 0x08, 0x32, 0xc6, 0xca, 0xe7, 0xbb, 0x8c, 0xe7, 0x4a, 0x82, 0xe7, 0xe7, 0x33, 0x0b, 0xe5, 0x06, 0x2e, 0xd0, 0x5a, 0xa5, 0xc8, 0x44, 0x57, 0xb0, 0x07, 0xfb, 0x5c, 0xcd, 0xc2, 0x0a, 0x55, 0xd5, 0x4d, 0x8e, 0x04, 0x09, 0xc8, 0xbd, 0x83, 0x88, 0x3d, 0x2e, 0x02, 0x9d, 0xff, 0x26, 0xea, 0x5d, 0xb2, 0x75, 0xdc, 0xe0, 0x99, 0xe4, 0x18, 0x65, 0x9a, 0x04, 0x00, 0xf1, 0x3b, 0xe9, 0xff, 0xdc, 0x14, 0xe7, 0xd6, 0x45, 0xa9, 0x46, 0x77, 0xca, 0x84, 0x69, 0x70, 0xb7, 0xe6, 0xac, 0x52, 0x7f, 0xa0, 0x09, 0xa3, 0x59, 0x45, 0x4b, 0x3c, 0x49, 0x36, 0x49, 0x05, 0x18, 0x9f, 0xb4, 0x9c, 0x9b, 0xac, 0xb6, 0x50, 0xc0, 0x3c, 0xd8, 0x28, 0x75, 0x89, 0x4e, 0x35, 0x46, 0xba, 0x03, 0xc3, 0x2e, 0x33, 0x6f, 0xc6, 0x51, 0x6a, 0x87, 0x67, 0x6c, 0x50, 0xd5, 0xb8, 0x0b, 0x30, 0x54, 0x27, 0x3b, 0x15, 0x7c, 0x5d, 0x76, 0x75, 0x14, 0xe5, 0x45, 0x74, 0xb8, 0xa1, 0x01, 0x98, 0x5a, 0x8e, 0x96, 0x7e, 0x95, 0xda, 0x8f, 0x92, 0x98, 0x00, 0x26, 0x0e, 0x08, 0x14, 0x8b, 0xee, 0xe2, 0xd7, 0x78, 0x1e, 0x9e, 0x85, 0xd4, 0x63, 0xa9, 0x4f, 0xfe, 0xfd, 0xbb, 0x75, 0xc2, 0x8f, 0xa8, 0x89, 0x80, 0x15, 0x68, 0x09, 0x99, 0x42, 0x9c, 0xee, 0x79, 0x8b, 0x3f, 0xd2, 0xd9, 0x67, 0x37, 0x86, 0x8a, 0x26, 0x3f, 0xba, 0x9f, 0xb6, 0xf4, 0xaa, 0xd5, 0x6a, 0x15, 0xc6, 0x41, 0x2f, 0xf8, 0x5e, 0x7d, 0x37, 0x52, 0x10, 0x2d, 0xaa, 0xf2, 0x5e, 0x74, 0x5f, 0xa5, 0xf6, 0xf1, 0x74, 0xa2, 0x31, 0xfc, 0xce, 0x86, 0x24, 0xdd, 0x70, 0x85, 0x6f, 0x9b, 0xab, 0xcc, 0x20, 0x91, 0x44, 0xff, 0x68, 0x64, 0x64, 0x8d, 0xea, 0x0d, 0x68, 0x84, 0x56, 0x6a, 0x4c, 0x39, 0x14, 0x78, 0x05, 0xbe, 0x08, 0x4e, 0x47, 0x40, 0xbc, 0x50, 0x93, 0x09, 0xbc, 0xb1, 0x42, 0x96, 0x4b, 0xb0, 0xcf, 0xcf, 0x67, 0x26, 0xa0, 0xe0, 0x4b, 0xbf, 0x32, 0xae, 0x68, 0x34, 0x73, 0x2b, 0xda, 0x03, 0x84, 0xce, 0xa8, 0xf4, 0xa4, 0x84, 0x9b, 0xba, 0x0d, 0x18, 0x64, 0x6c, 0x1c, 0x34, 0x47, 0x18, 0x96, 0xb5, 0xbe, 0xf1, 0x49, 0xf8, 0xca, 0xb9, 0xec, 0x83, 0x72, 0x2b, 0x0f, 0xb2, 0x09, 0xef, 0xe8, 0xa0, 0x4c, 0x4a, 0x23, 0x5d, 0xc8, 0xdd, 0xb2, 0x0a, 0xcd, 0x92, 0x76, 0x5a, 0xfb, 0xf3, 0x05, 0x87, 0x40, 0xea, 0x70, 0xb9, 0xc1, 0x0d, 0x9c, 0x5a, 0xef, 0x86, 0x06, 0x29, 0x8f, 0xe4, 0x15, 0x15, 0x93, 0xb2, 0x1f, 0x79, 0x7d, 0x92, 0xae, 0x9f, 0x1e, 0x08, 0x81, 0xb0, 0xd2, 0x71, 0xb0, 0xd5, 0xb1, 0x0c, 0x6e, 0xd8, 0x3c, 0x34, 0x9e, 0xc2, 0x47, 0x3f, 0xbf, 0x2f, 0xf7, 0x80, 0xdc, 0xd0, 0x76, 0xd8, 0xcf, 0x0a, 0xea, 0xfa, 0x71, 0xfe, 0x2b, 0x8c, 0x51, 0x28, 0x01, 0x5f, 0x8f, 0xbb, 0xcf, 0xec, 0xd5, 0x28, 0x1c, 0xd5, 0xea, 0xcb, 0x6f, 0xe9, 0xac, 0x6e, 0xaa, 0x6e, 0x47, 0xd6, 0x67, 0xb9, 0xad, 0x4b, 0x7e, 0x41, 0x1e, 0x6c, 0xb7, 0x46, 0x3d, 0x56, 0x76, 0x07, 0xaf, 0xbf, 0xd0, 0x41, 0x8c, 0x4e, 0xb0, 0x6a, 0xfe, 0x84, 0x7f, 0x5e, 0x40, 0xb4, 0x99, 0x44, 0x38, 0x28, 0xd5, 0xa2, 0x73, 0xa4, 0xa8, 0x7e, 0x46, 0xde, 0xf2, 0x1a, 0x91, 0x9d, 0x73, 0x86, 0x3a, 0xf0, 0x05, 0x4a, 0x09, 0x9e, 0x3a, 0xdc, 0x54, 0x50, 0xb8, 0xe3, 0x2f, 0x51, 0xea, 0x52, 0xc5, 0x99, 0xa4, 0xa2, 0xa3, 0x53, 0x51, 0x78, 0x8a, 0xf7, 0xcb, 0x71, 0xe5, 0xc4, 0x4b, 0xcb, 0x8d, 0xf5, 0x4a, 0x60, 0x1e, 0x6e, 0xc2, 0xc1, 0x82, 0x8b, 0x48, 0xc4, 0xb1, 0xae, 0x44, 0x63, 0x10, 0x6f, 0x10, 0xef, 0xa5, 0xca, 0xf3, 0x09, 0x1a, 0xbf, 0x99, 0xaa, 0xba, 0x52, 0x52, 0xf4, 0x84, 0xd3, 0xbb, 0xc6, 0x2b, 0xfa, 0x6b, 0x2a, 0x80, 0x6d, 0x23, 0xc6, 0x33, 0x1a, 0x62, 0xfc, 0x46, 0xbc, 0x62, 0x76, 0x79, 0xe7, 0x3e, 0xc8, 0x2d, 0xcc, 0x08, 0xf7, 0x91, 0x43, 0xf4, 0xb7, 0x1e, 0xcf, 0x35, 0x7e, 0xa2, 0xf0, 0xd7, 0x4e, 0x6d, 0x30, 0x58, 0xe6, 0x06, 0x04, 0x3f, 0x6e, 0x8f, 0xed, 0x70, 0x42, 0x82, 0xc1, 0x6b, 0x1f, 0x98, 0x8f, 0xfa, 0x36, 0x5c, 0xfa, 0xe9, 0xa3, 0xcf, 0x79, 0x2e, 0x0c, 0x5b, 0xaa, 0xd7, 0x0c, 0xa7, 0xe2, 0x57, 0x76, 0x01, 0x8b, 0x5e, 0x7f, 0x0e, 0x95, 0x44, 0xe1, 0xd7, 0x3f, 0x3e, 0x5d, 0x1e, 0x41, 0x6a, 0x5e, 0x50, 0xfb, 0xed, 0x29, 0x6d, 0xc1, 0xbf, 0x4b, 0x29, 0xa3, 0xfb, 0xe3, 0x2e, 0xfb, 0xd7, 0xe9, 0x9c, 0x83, 0x01, 0x5d, 0x27, 0xf5, 0x35, 0xad, 0xec, 0xf1, 0x75, 0xfc, 0x36, 0xc1, 0xea, 0x4f, 0x44, 0x23, 0xb3, 0x6d, 0xcd, 0xc0, 0x54, 0xba, 0x99, 0x32, 0x78, 0xe8, 0x5a, 0xc3, 0x62, 0x2d, 0x43, 0x5f, 0x52, 0x37, 0xba, 0x61, 0xb4, 0x9a, };
22401 static const u8 ed25519_974_test_vectors_expected_sig[] = {
22402 	0x75, 0x32, 0xd1, 0xa6, 0x1a, 0x98, 0x1f, 0x30, 0x3d, 0x7c, 0x24, 0x54, 0x35, 0x4f, 0x99, 0x54, 0x0c, 0xd4, 0x84, 0xcd, 0xe9, 0xab, 0x33, 0x7d, 0x6f, 0x7b, 0x51, 0xf1, 0x79, 0x22, 0x0f, 0x7f, 0xa2, 0x07, 0x34, 0x76, 0xb4, 0x1c, 0x71, 0x52, 0x9f, 0x98, 0x36, 0xdb, 0x6b, 0x1d, 0x0f, 0x5a, 0x48, 0x2b, 0xbb, 0x4c, 0x68, 0x36, 0x61, 0x76, 0xed, 0x14, 0xd4, 0xd8, 0xee, 0xfa, 0xde, 0x0d, };
22403 static const ec_test_case ed25519_974_test_case = {
22404 	.name = "EDDSA25519-SHA512/wei25519 974",
22405 	.ec_str_p = &wei25519_str_params,
22406 	.priv_key = ed25519_974_test_vectors_priv_key,
22407 	.priv_key_len = sizeof(ed25519_974_test_vectors_priv_key),
22408 	.nn_random = NULL,
22409 	.hash_type = SHA512,
22410 	.msg = (const char *)ed25519_974_test_vectors_message,
22411 	.msglen = sizeof(ed25519_974_test_vectors_message),
22412 	.sig_type = EDDSA25519,
22413 	.exp_sig = ed25519_974_test_vectors_expected_sig,
22414 	.exp_siglen = sizeof(ed25519_974_test_vectors_expected_sig),
22415 	.adata = NULL,
22416 	.adata_len = 0
22417 };
22418 
22419 /************************************************/
22420 static const u8 ed25519_975_test_vectors_priv_key[] = {
22421 	0xf0, 0x7d, 0x61, 0xb5, 0xca, 0x1c, 0x27, 0x00, 0xcb, 0x50, 0xf9, 0x00, 0xc2, 0x6b, 0x7c, 0x28, 0xf6, 0xc6, 0x94, 0x08, 0x08, 0xc7, 0xba, 0xff, 0xf7, 0x4f, 0xca, 0x4b, 0x11, 0xf4, 0x25, 0xd4, };
22422 static const u8 ed25519_975_test_vectors_message[] = {
22423 	0xc1, 0xc6, 0x78, 0x43, 0xd6, 0x9a, 0x0e, 0x62, 0xe7, 0xbf, 0x71, 0xf9, 0x02, 0x06, 0xa3, 0xd5, 0x59, 0x5c, 0xa3, 0xc4, 0x82, 0xaa, 0xa7, 0x67, 0xe9, 0x31, 0xb0, 0xd6, 0xc2, 0xf4, 0x75, 0x2a, 0xb8, 0x69, 0x91, 0xf0, 0x35, 0x83, 0xbb, 0x13, 0x8e, 0x9f, 0x72, 0xfa, 0xb5, 0x8f, 0xd6, 0x02, 0xa4, 0xb6, 0xb2, 0x96, 0x02, 0xcf, 0x89, 0x14, 0x08, 0xaf, 0x5a, 0x1b, 0xfd, 0x33, 0x98, 0xc0, 0x17, 0x8c, 0x44, 0x14, 0x61, 0xe3, 0xf4, 0x9b, 0xc8, 0x1d, 0x64, 0xc0, 0xd9, 0x7f, 0x5d, 0xed, 0x69, 0x2c, 0x75, 0xd4, 0xd6, 0x4d, 0xac, 0x5d, 0x80, 0xd6, 0x3b, 0xd4, 0xdc, 0x52, 0x10, 0xc1, 0xd9, 0x35, 0x0b, 0x14, 0x2b, 0xa6, 0xe7, 0x68, 0xf1, 0x50, 0x80, 0x7a, 0xb8, 0xa8, 0x6c, 0xac, 0xdb, 0x59, 0xd8, 0x4d, 0xdf, 0x66, 0x0b, 0xe5, 0x62, 0x03, 0xc0, 0x14, 0xfb, 0xa1, 0xe0, 0xdc, 0x16, 0xfa, 0x6d, 0x32, 0x69, 0x4e, 0x14, 0xb1, 0x28, 0xed, 0xd1, 0xf6, 0xc6, 0xab, 0x44, 0x5a, 0x3a, 0xd3, 0x41, 0x74, 0xfa, 0x9e, 0x4b, 0x01, 0xf2, 0x5b, 0x1d, 0x5e, 0x6e, 0xb7, 0x69, 0x83, 0xb4, 0x29, 0x5c, 0xe4, 0x91, 0x4d, 0x3a, 0xe4, 0x8c, 0x70, 0x4a, 0x30, 0xe5, 0x54, 0xfc, 0x1f, 0x86, 0x8b, 0x62, 0x72, 0xef, 0xf0, 0x6d, 0xa2, 0x4b, 0xfe, 0x17, 0xe4, 0xe0, 0xf0, 0xfa, 0x46, 0xbb, 0x08, 0xff, 0xb9, 0x07, 0xcb, 0x61, 0xbe, 0xbe, 0x52, 0xdf, 0x31, 0x1a, 0x64, 0xcb, 0x57, 0x8b, 0x30, 0xfd, 0x62, 0x7d, 0xf1, 0x12, 0x21, 0xae, 0x40, 0x03, 0xa0, 0xb0, 0xc6, 0x8e, 0x3c, 0x6f, 0x95, 0xa2, 0x1c, 0x85, 0x00, 0xd4, 0x1b, 0x2c, 0x58, 0x9c, 0xc4, 0x6a, 0x13, 0x9c, 0xac, 0xff, 0x57, 0xdc, 0xf0, 0x07, 0x59, 0xf5, 0x2e, 0x9c, 0xa3, 0xda, 0xbd, 0xb1, 0x78, 0x8a, 0xb6, 0xb3, 0x8a, 0x50, 0x48, 0xf5, 0x8e, 0x08, 0xe0, 0x5c, 0x39, 0x4f, 0x9d, 0x3c, 0x72, 0x11, 0x3d, 0x45, 0x2b, 0x70, 0x84, 0xc5, 0x19, 0xf8, 0x6c, 0x16, 0x89, 0xff, 0xdb, 0xae, 0x50, 0x6e, 0xd8, 0x45, 0x05, 0x22, 0xcb, 0xe4, 0x3d, 0xe2, 0x7a, 0xa3, 0xbf, 0xdd, 0x92, 0xa9, 0x1b, 0x71, 0xe5, 0x2a, 0x3c, 0xbf, 0x77, 0xc1, 0xbd, 0x28, 0x93, 0xea, 0xbd, 0x40, 0x7a, 0x57, 0xfe, 0x5e, 0x14, 0x68, 0x73, 0xbf, 0xb2, 0x04, 0x3f, 0x4a, 0x61, 0x47, 0xdf, 0x08, 0x3e, 0x54, 0xa2, 0x20, 0x8d, 0x19, 0x25, 0x81, 0x3f, 0xa4, 0x04, 0xe4, 0xc4, 0x74, 0x06, 0xe7, 0x72, 0x86, 0x43, 0xeb, 0xfb, 0x0b, 0x10, 0x14, 0x2f, 0x90, 0x9e, 0xf8, 0x56, 0xfd, 0x3a, 0x91, 0x6b, 0xc0, 0x85, 0x15, 0x43, 0xb8, 0x2a, 0x55, 0xf8, 0xcd, 0x52, 0x9b, 0xd2, 0x1d, 0x9e, 0x29, 0x09, 0xd6, 0xd7, 0xe7, 0x7b, 0xdc, 0xea, 0x46, 0x73, 0xe5, 0x45, 0xff, 0x4a, 0x67, 0xfa, 0x37, 0xd6, 0x5f, 0x1f, 0x63, 0xf1, 0x1d, 0x5d, 0x0d, 0x55, 0x97, 0x4a, 0x30, 0xab, 0xe1, 0x88, 0x33, 0x5d, 0xb5, 0xdc, 0xbd, 0x35, 0x66, 0x58, 0xf9, 0xb7, 0x76, 0x82, 0xd9, 0x6d, 0xab, 0xb2, 0x58, 0xea, 0x95, 0x95, 0x1a, 0x05, 0x59, 0xae, 0xa4, 0x06, 0x4d, 0x5e, 0xa1, 0x68, 0x05, 0x01, 0xdc, 0xb4, 0x22, 0x8f, 0x2c, 0x95, 0x6f, 0x81, 0xd2, 0x10, 0x11, 0x44, 0xaf, 0x74, 0xc7, 0x16, 0xbc, 0x8b, 0xf4, 0x29, 0x6d, 0xc3, 0xb8, 0x31, 0x72, 0x5c, 0xc1, 0x7d, 0x3b, 0xfd, 0x90, 0x66, 0xa2, 0x99, 0x53, 0xb2, 0xec, 0xd7, 0x50, 0x59, 0x43, 0x5b, 0x49, 0xa2, 0x5a, 0xc5, 0x25, 0xb4, 0xfb, 0xab, 0x17, 0x79, 0x02, 0x2d, 0xfb, 0x6d, 0xe5, 0x25, 0x14, 0x9d, 0xcd, 0x90, 0x2a, 0xc8, 0xa7, 0xe2, 0x1f, 0x34, 0x4f, 0x5f, 0x01, 0x01, 0x48, 0x06, 0x92, 0xd6, 0x16, 0x08, 0x95, 0x2c, 0x71, 0x41, 0x3e, 0x30, 0x03, 0x79, 0x45, 0xe2, 0x06, 0xc5, 0xee, 0xad, 0xfc, 0x3e, 0xdc, 0x4b, 0xae, 0x0d, 0x79, 0x6c, 0xa0, 0xc5, 0xf5, 0x6d, 0x6f, 0xfb, 0x3f, 0x09, 0x69, 0xdf, 0x9d, 0xf8, 0xa7, 0x94, 0xf5, 0xdc, 0x83, 0xa3, 0xb2, 0xf5, 0xc3, 0xab, 0x36, 0xbb, 0x90, 0x1b, 0xcc, 0x31, 0x55, 0x1c, 0x55, 0x0c, 0x63, 0xfa, 0x41, 0xd6, 0xa8, 0xd5, 0x7b, 0xdb, 0x9b, 0x5c, 0x65, 0xbc, 0x61, 0x0c, 0x3a, 0x98, 0x97, 0x52, 0xab, 0x28, 0xa0, 0x15, 0xe7, 0xc2, 0xf6, 0xb2, 0xfb, 0xf1, 0x99, 0xa7, 0x6b, 0x97, 0x50, 0xc0, 0xd3, 0xd5, 0x92, 0x11, 0x9c, 0x8b, 0x40, 0x22, 0xfa, 0x45, 0xba, 0xde, 0x2f, 0xbb, 0x41, 0x43, 0x26, 0x79, 0xb5, 0x2a, 0xcb, 0x46, 0x08, 0xa9, 0x5c, 0x34, 0xaa, 0x40, 0xbf, 0xfe, 0xc1, 0x0b, 0xc9, 0x8f, 0x47, 0x29, 0xdf, 0xcc, 0xb6, 0x50, 0xb2, 0xa0, 0x52, 0xdf, 0xb0, 0x68, 0x95, 0x9e, 0x64, 0x8a, 0x92, 0xd5, 0xaa, 0x4d, 0xd2, 0xd1, 0x7d, 0xde, 0x67, 0xcd, 0xf2, 0xe6, 0x37, 0x7a, 0xf0, 0xd4, 0xae, 0x37, 0x96, 0x07, 0x38, 0x9d, 0x7e, 0x35, 0x96, 0x44, 0x1b, 0x9f, 0x42, 0x22, 0xcf, 0xf6, 0xaf, 0x73, 0xb3, 0x30, 0x02, 0x70, 0xce, 0x54, 0x80, 0x0b, 0xd9, 0x34, 0xa9, 0x10, 0x9a, 0x02, 0x56, 0x3a, 0xdc, 0x56, 0xae, 0x46, 0x58, 0x44, 0x51, 0xcd, 0xaf, 0x4a, 0x77, 0x53, 0x81, 0x57, 0xe5, 0x87, 0x0f, 0x4a, 0xe1, 0x2d, 0xbc, 0x81, 0x87, 0x0f, 0x5d, 0xb4, 0x1a, 0x2c, 0xb5, 0x5e, 0x00, 0xdb, 0x3d, 0x22, 0x31, 0x62, 0x8f, 0x17, 0x27, 0xc3, 0xac, 0xb9, 0x9e, 0xd3, 0xac, 0xd8, 0xb6, 0x71, 0x56, 0xa8, 0x00, 0x5a, 0x4c, 0xc8, 0xf3, 0xd3, 0x55, 0x5b, 0x79, 0xa0, 0x37, 0x73, 0xa9, 0x31, 0xf1, 0x4e, 0xeb, 0xce, 0x40, 0xb9, 0xfe, 0x46, 0xed, 0xe5, 0xda, 0x08, 0x81, 0xfb, 0x22, 0x07, 0x17, 0xe4, 0x18, 0xe8, 0xb5, 0xa0, 0xfe, 0x5e, 0x47, 0x7e, 0x72, 0x85, 0xc5, 0x54, 0xe8, 0x59, 0xe1, 0x64, 0x41, 0x67, 0x2b, 0x48, 0x99, 0x34, 0xa3, 0xa9, 0xee, 0xb8, 0x8d, 0x78, 0xfc, 0xc5, 0xc1, 0xdb, 0x2d, 0x1f, 0xbd, 0xde, 0x39, 0x27, 0x73, 0xf6, 0xc9, 0x39, 0x97, 0x2e, 0xe8, 0xfa, 0x31, 0x89, 0xf4, 0xe9, 0x87, 0x2b, 0x4a, 0xbd, 0xc8, 0x3b, 0x37, 0x9c, 0x0c, 0x10, 0xe8, 0x18, 0xdc, 0xff, 0x75, 0xc8, 0x3d, 0x68, 0x70, 0x72, 0x92, 0x84, 0xce, 0xd4, 0x1f, 0x2f, 0xf5, 0x5a, 0x87, 0xc9, 0x60, 0xe6, 0x3d, 0x12, 0x11, 0xf0, 0x80, 0x71, 0x29, 0x3f, 0x6a, 0xc6, 0x3f, 0x9b, 0xde, 0xf3, 0x8f, 0xd5, 0x91, 0x9c, 0xa9, 0x0b, 0x3f, 0x5e, 0x25, 0xa6, 0xc0, 0xc6, 0x64, 0xc4, 0xec, 0xf8, 0x31, 0xc6, 0x4e, 0x2d, 0x4c, 0x6e, 0x79, 0x8a, 0x98, 0xa3, 0xa0, 0xf7, 0xbe, 0x7a, 0x24, 0x63, 0xea, 0xda, 0xa6, 0xa2, 0xa3, 0x48, 0xf9, 0xa4, 0x94, 0x71, 0x71, 0x23, 0xcc, 0x0a, 0x28, 0xc0, 0xa5, 0xea, 0xe3, 0xf5, 0xb5, 0x85, 0xf2, 0xcb, 0x8c, 0xb2, 0x60, 0xc2, 0xc5, 0x03, 0xe4, 0x15, 0x78, 0x57, 0x3c, 0xd9, 0xb7, 0xcb, 0xa1, 0x40, 0x8d, 0xca, 0x9d, 0x86, 0x0a, 0xe4, 0xf8, 0xc3, 0xd3, 0xf3, 0x22, 0xa4, 0x5b, 0x58, 0xa2, 0xc4, };
22424 static const u8 ed25519_975_test_vectors_expected_sig[] = {
22425 	0xc1, 0x9b, 0x53, 0x2b, 0x82, 0x48, 0x56, 0x39, 0x32, 0x63, 0x97, 0x01, 0xbf, 0x15, 0xbc, 0x01, 0x5f, 0xae, 0xbb, 0x17, 0xbb, 0x98, 0xd8, 0x71, 0x61, 0x6e, 0x10, 0x48, 0xd6, 0x4c, 0xa5, 0xf9, 0x55, 0xf5, 0x58, 0xf6, 0x3b, 0x53, 0x53, 0xa1, 0x57, 0x6f, 0xa1, 0xac, 0xae, 0xf3, 0x9b, 0xcb, 0xc9, 0x02, 0x17, 0x56, 0xdf, 0x5d, 0x1a, 0xb3, 0xbc, 0x74, 0x1a, 0xcc, 0xf9, 0x05, 0x9b, 0x04, };
22426 static const ec_test_case ed25519_975_test_case = {
22427 	.name = "EDDSA25519-SHA512/wei25519 975",
22428 	.ec_str_p = &wei25519_str_params,
22429 	.priv_key = ed25519_975_test_vectors_priv_key,
22430 	.priv_key_len = sizeof(ed25519_975_test_vectors_priv_key),
22431 	.nn_random = NULL,
22432 	.hash_type = SHA512,
22433 	.msg = (const char *)ed25519_975_test_vectors_message,
22434 	.msglen = sizeof(ed25519_975_test_vectors_message),
22435 	.sig_type = EDDSA25519,
22436 	.exp_sig = ed25519_975_test_vectors_expected_sig,
22437 	.exp_siglen = sizeof(ed25519_975_test_vectors_expected_sig),
22438 	.adata = NULL,
22439 	.adata_len = 0
22440 };
22441 
22442 /************************************************/
22443 static const u8 ed25519_976_test_vectors_priv_key[] = {
22444 	0x50, 0x86, 0x4a, 0x75, 0xaa, 0x0c, 0x69, 0xb5, 0x93, 0x50, 0x07, 0x7c, 0x20, 0x4b, 0x20, 0x75, 0x7f, 0x2b, 0x8b, 0x68, 0x55, 0xc3, 0x7e, 0xd7, 0x21, 0xb4, 0x9f, 0x2a, 0xc9, 0x17, 0xd6, 0xb2, };
22445 static const u8 ed25519_976_test_vectors_message[] = {
22446 	0xb3, 0x65, 0xf4, 0x76, 0xac, 0x92, 0xe7, 0x60, 0x12, 0xa7, 0xff, 0xd8, 0x78, 0x2a, 0xf1, 0x5a, 0x3f, 0x5e, 0xe1, 0x47, 0xf6, 0x03, 0xa3, 0x67, 0xad, 0xf2, 0xf9, 0x72, 0x46, 0x13, 0xe8, 0x76, 0x5b, 0x03, 0x7a, 0xc0, 0xeb, 0x1f, 0x67, 0x37, 0x36, 0xe1, 0x13, 0x63, 0xe3, 0x52, 0xed, 0x5a, 0xe9, 0xeb, 0x5a, 0x67, 0x12, 0x5e, 0xd8, 0x18, 0x90, 0x03, 0x42, 0xae, 0x93, 0x37, 0x1c, 0x43, 0x3b, 0x91, 0xf6, 0x02, 0x1d, 0x4b, 0xe2, 0xa0, 0x52, 0xb0, 0xda, 0x43, 0xb3, 0x68, 0x2e, 0x7f, 0x74, 0x0a, 0xe8, 0x01, 0xd0, 0x54, 0x10, 0x57, 0x85, 0x8e, 0xb0, 0xc9, 0xc2, 0x8d, 0x98, 0xf0, 0x3b, 0x45, 0xe1, 0x28, 0xaa, 0xa3, 0x42, 0xc6, 0xb6, 0x02, 0x77, 0x67, 0x92, 0xaa, 0x81, 0x24, 0x1c, 0xad, 0x06, 0xf1, 0x33, 0x8f, 0xa0, 0xc7, 0x17, 0x57, 0x18, 0x0f, 0x58, 0x8c, 0x83, 0x01, 0xd9, 0x1c, 0x27, 0x67, 0x9b, 0x50, 0x21, 0xcd, 0x75, 0xd7, 0xf6, 0x17, 0x1e, 0xe9, 0xf8, 0xd5, 0x6e, 0x43, 0x77, 0x67, 0x98, 0x12, 0xf6, 0xec, 0x5e, 0xd4, 0x65, 0x38, 0xca, 0xed, 0x50, 0x0c, 0x1d, 0x15, 0xf5, 0xfc, 0x86, 0xea, 0xf9, 0xed, 0x9c, 0xf9, 0xa0, 0x60, 0x6b, 0x22, 0x61, 0x4f, 0xaf, 0x67, 0x64, 0x62, 0x13, 0x4e, 0x3d, 0xb3, 0x58, 0x23, 0x32, 0xb4, 0x83, 0xdf, 0xa5, 0x4c, 0xa2, 0x9a, 0x5e, 0xb0, 0xd6, 0xba, 0xe3, 0x38, 0x0e, 0x19, 0xd0, 0x60, 0x11, 0x34, 0x53, 0xf3, 0x2b, 0xba, 0xb7, 0xe1, 0x18, 0x62, 0x7b, 0x40, 0xbc, 0xab, 0xf1, 0x71, 0x1b, 0xcf, 0xea, 0xb8, 0x95, 0x7d, 0xe3, 0x39, 0x43, 0x6c, 0x70, 0x88, 0xbb, 0x88, 0x31, 0x01, 0x53, 0x9a, 0x09, 0xd3, 0xbe, 0xf0, 0x88, 0xfc, 0x1f, 0x84, 0x07, 0x64, 0x03, 0x6f, 0xfb, 0xb3, 0x3d, 0xec, 0xd1, 0x2a, 0xac, 0x57, 0xfd, 0x26, 0xf8, 0x48, 0x23, 0xe1, 0x95, 0x53, 0xd4, 0xd6, 0x7e, 0x00, 0x0e, 0x94, 0x36, 0xca, 0x32, 0x3d, 0xe0, 0x99, 0xbc, 0x1c, 0xe7, 0x5e, 0xbf, 0x5d, 0xdc, 0xcb, 0x44, 0x8c, 0xd7, 0xa2, 0xe4, 0xbb, 0xd6, 0xb3, 0x2e, 0x3f, 0x20, 0x24, 0xf9, 0x6c, 0xc5, 0xc7, 0x15, 0x2b, 0x8b, 0xe8, 0xed, 0x0b, 0xd8, 0xe4, 0x36, 0xd3, 0x24, 0xd1, 0xce, 0x1d, 0xd3, 0xcf, 0xcc, 0x45, 0x2a, 0x28, 0xc7, 0x3a, 0x95, 0xaf, 0x84, 0x82, 0xaa, 0x77, 0x2a, 0xe5, 0x3d, 0x5b, 0xe1, 0x29, 0x2e, 0x39, 0xd1, 0x71, 0x6b, 0x43, 0x75, 0x8f, 0xe5, 0x63, 0xc8, 0xaa, 0x3b, 0x74, 0xbb, 0xa5, 0xc0, 0x2d, 0x04, 0x77, 0x8d, 0x91, 0xe3, 0xd4, 0x3d, 0xcc, 0x72, 0xbb, 0x7c, 0x7b, 0x04, 0x3c, 0x05, 0xc8, 0x74, 0x5b, 0x70, 0x5e, 0xe7, 0x5b, 0x5a, 0x4e, 0xc7, 0xb9, 0x5b, 0x65, 0x43, 0x59, 0xfb, 0x5e, 0x85, 0x33, 0x38, 0x21, 0x98, 0x51, 0xd4, 0x0a, 0x8a, 0xfb, 0xb4, 0xf9, 0x1e, 0xcb, 0xb4, 0x1e, 0xb8, 0x15, 0x34, 0x19, 0x6c, 0xc0, 0xcc, 0x9d, 0x3e, 0xb7, 0x14, 0x39, 0x6c, 0xaf, 0x04, 0x5b, 0x23, 0x17, 0x22, 0xd4, 0x48, 0x65, 0x03, 0x64, 0x04, 0x19, 0x98, 0x84, 0x80, 0xa7, 0x81, 0x58, 0x08, 0xbe, 0x97, 0x42, 0x87, 0x37, 0x2c, 0xfc, 0x48, 0x99, 0x65, 0xaa, 0xc5, 0xb8, 0x09, 0x5c, 0x63, 0x75, 0x81, 0xeb, 0x91, 0x0f, 0x90, 0x55, 0xcd, 0x1c, 0x0a, 0x0a, 0x3b, 0x0b, 0x33, 0xac, 0xa9, 0x0f, 0x7c, 0x5b, 0x8e, 0x6e, 0xf6, 0x83, 0xab, 0xf0, 0xce, 0x53, 0xae, 0xba, 0x51, 0xbe, 0xc4, 0xfc, 0x7b, 0x42, 0x7a, 0x23, 0x47, 0x36, 0x0f, 0xca, 0x86, 0x36, 0xd3, 0xf1, 0x46, 0x92, 0x84, 0xf2, 0x69, 0xa9, 0xab, 0xf0, 0xcb, 0x1a, 0x24, 0x4a, 0x15, 0xd6, 0xb4, 0x04, 0x65, 0xe7, 0x5c, 0xf8, 0x90, 0x92, 0x47, 0x4a, 0x8b, 0xed, 0xa0, 0x33, 0x39, 0x1d, 0xd3, 0x11, 0xc4, 0x99, 0x51, 0x9a, 0x08, 0xc4, 0xf0, 0x34, 0xe7, 0x19, 0x18, 0xd7, 0xca, 0xd4, 0x18, 0x45, 0x32, 0x7c, 0x89, 0xe7, 0xb1, 0xe9, 0x4a, 0xfb, 0x07, 0x23, 0x78, 0x2c, 0xe5, 0xc5, 0x53, 0xef, 0x36, 0x79, 0x1b, 0xba, 0x63, 0xde, 0x17, 0xd7, 0x46, 0x49, 0x18, 0x94, 0x01, 0x2c, 0xeb, 0xd8, 0x7b, 0x18, 0x37, 0xa8, 0x21, 0xef, 0x5c, 0x62, 0x4b, 0xbc, 0x84, 0xcc, 0x50, 0x35, 0xf5, 0xe7, 0x0c, 0xd9, 0xf2, 0x1b, 0x42, 0x21, 0x9a, 0x2d, 0xce, 0x30, 0xe0, 0xe6, 0x5c, 0x25, 0x0d, 0x0d, 0x19, 0x4d, 0x2b, 0x52, 0x48, 0x6b, 0x03, 0xee, 0x66, 0x33, 0x29, 0x81, 0xa5, 0x22, 0x51, 0x74, 0xdb, 0x17, 0xe5, 0xa8, 0xbb, 0x4a, 0x10, 0xed, 0x9c, 0x8a, 0x44, 0x5c, 0x41, 0x44, 0x2f, 0x3b, 0xcd, 0xb6, 0xb4, 0xf4, 0x9e, 0x4e, 0x1d, 0xc8, 0x76, 0x61, 0xa7, 0xb6, 0xe4, 0x1f, 0x35, 0xf5, 0x5d, 0xd6, 0x7b, 0xd4, 0xcb, 0xc6, 0xff, 0x58, 0xbf, 0xbf, 0xfa, 0xff, 0xd2, 0xc3, 0x82, 0xfc, 0xad, 0x0c, 0xae, 0x8f, 0x0d, 0xf9, 0xaf, 0x6a, 0xcf, 0x09, 0x40, 0x00, 0x76, 0x18, 0xa5, 0x4a, 0xee, 0x31, 0xd9, 0x32, 0xcb, 0xd8, 0xe8, 0xb4, 0x1c, 0xa0, 0x38, 0x21, 0xc4, 0x28, 0xa0, 0xef, 0x8e, 0x58, 0xd2, 0x43, 0x5e, 0xec, 0xd5, 0x03, 0xc5, 0x4d, 0xa9, 0xc1, 0x62, 0x8f, 0x3c, 0x74, 0x9b, 0x77, 0x05, 0x19, 0xf5, 0x3b, 0xf2, 0xd5, 0x7e, 0xd7, 0x12, 0xd0, 0x75, 0xd3, 0x73, 0x37, 0xb7, 0x7a, 0x2b, 0x10, 0xa7, 0x2d, 0x2d, 0x59, 0x0c, 0x20, 0xd5, 0xce, 0xc2, 0xca, 0xcc, 0x6c, 0x3a, 0x8d, 0xc1, 0x13, 0xe2, 0xd1, 0x6e, 0xf2, 0xd1, 0xb3, 0x90, 0xed, 0x96, 0xe4, 0x03, 0x6a, 0xcd, 0x30, 0x4e, 0x0c, 0x7c, 0xef, 0x9d, 0x43, 0x1f, 0x88, 0x21, 0x8a, 0xa1, 0xf8, 0x38, 0x28, 0xdd, 0xa6, 0x36, 0xb9, 0x4a, 0xa7, 0x61, 0xc7, 0x31, 0x7e, 0xcf, 0x11, 0x6c, 0xbf, 0xc6, 0x11, 0xe5, 0xba, 0x6d, 0x94, 0xc5, 0x0e, 0x99, 0x46, 0x93, 0x02, 0x3b, 0xdf, 0x2d, 0x24, 0x8e, 0xd6, 0x03, 0xf8, 0x5b, 0xe7, 0x3a, 0x00, 0x08, 0xb7, 0x5a, 0xde, 0xf9, 0x51, 0xdc, 0xcf, 0xa3, 0x0e, 0x42, 0xe9, 0xf5, 0xbb, 0x05, 0x02, 0x3a, 0xde, 0x79, 0x75, 0x06, 0xcb, 0xf9, 0x0b, 0xb6, 0xdc, 0xe4, 0x3c, 0xf3, 0xa1, 0xc3, 0x14, 0x1a, 0x5c, 0xc5, 0xfd, 0x9a, 0x4f, 0x3c, 0xc5, 0x57, 0xb9, 0x0e, 0x18, 0x04, 0x9b, 0x3c, 0x13, 0x0f, 0x46, 0x1e, 0x4f, 0x32, 0x29, 0x9f, 0xa1, 0xd1, 0xcf, 0x9c, 0x7f, 0x2e, 0xa2, 0x05, 0x35, 0x65, 0xe8, 0x16, 0x0a, 0x34, 0x1c, 0xdd, 0xf9, 0x9a, 0xcd, 0xdd, 0x49, 0x16, 0x97, 0xfa, 0x70, 0x51, 0x24, 0xab, 0xda, 0xb4, 0x2a, 0x5e, 0x8f, 0xcf, 0x04, 0x8d, 0xd9, 0xf1, 0x79, 0x38, 0x4e, 0xc9, 0x2a, 0x46, 0x9a, 0xeb, 0x11, 0xe8, 0xbc, 0x62, 0xb6, 0x9d, 0xbc, 0xfc, 0xec, 0x66, 0x81, 0x75, 0x47, 0x57, 0xe4, 0xc5, 0xd0, 0xfd, 0xd9, 0xb9, 0xcf, 0xda, 0x49, 0xaf, 0x09, 0xb8, 0x3a, 0x5a, 0x4a, 0x10, 0xae, 0xd9, 0xa4, 0xcf, 0x7d, 0xdf, 0xa2, 0x89, 0x20, 0x9d, 0x47, 0x5a, 0xb3, 0x31, 0x8c, 0xd4, 0xb9, 0x65, 0xe0, 0x07, 0xdc, 0xe1, };
22447 static const u8 ed25519_976_test_vectors_expected_sig[] = {
22448 	0x17, 0x74, 0x55, 0xa7, 0x16, 0x94, 0xf1, 0x2b, 0x76, 0x2f, 0xd1, 0x7e, 0x08, 0xbd, 0xf0, 0x10, 0xa7, 0xfc, 0x91, 0xd1, 0x91, 0x41, 0xd7, 0xae, 0x23, 0x99, 0xbd, 0x24, 0x1a, 0x99, 0x8a, 0x6a, 0x50, 0xa9, 0x72, 0x2a, 0xc1, 0x23, 0x2c, 0x59, 0xe4, 0xe2, 0xaa, 0xa8, 0x28, 0x07, 0x8b, 0x2b, 0x92, 0xf4, 0xa5, 0x4c, 0xdf, 0x0e, 0xfe, 0xbb, 0xa2, 0xc1, 0x6d, 0xbe, 0xaf, 0x07, 0x22, 0x03, };
22449 static const ec_test_case ed25519_976_test_case = {
22450 	.name = "EDDSA25519-SHA512/wei25519 976",
22451 	.ec_str_p = &wei25519_str_params,
22452 	.priv_key = ed25519_976_test_vectors_priv_key,
22453 	.priv_key_len = sizeof(ed25519_976_test_vectors_priv_key),
22454 	.nn_random = NULL,
22455 	.hash_type = SHA512,
22456 	.msg = (const char *)ed25519_976_test_vectors_message,
22457 	.msglen = sizeof(ed25519_976_test_vectors_message),
22458 	.sig_type = EDDSA25519,
22459 	.exp_sig = ed25519_976_test_vectors_expected_sig,
22460 	.exp_siglen = sizeof(ed25519_976_test_vectors_expected_sig),
22461 	.adata = NULL,
22462 	.adata_len = 0
22463 };
22464 
22465 /************************************************/
22466 static const u8 ed25519_977_test_vectors_priv_key[] = {
22467 	0xe5, 0x5f, 0x22, 0x0f, 0xff, 0x80, 0x79, 0x14, 0x8b, 0x25, 0x41, 0x89, 0xbb, 0x29, 0x41, 0x74, 0xf8, 0xe2, 0xc5, 0x75, 0xe5, 0x7f, 0x39, 0xd4, 0xba, 0xc8, 0x16, 0x5c, 0x5e, 0x56, 0xe7, 0x69, };
22468 static const u8 ed25519_977_test_vectors_message[] = {
22469 	0x1e, 0x2c, 0xe8, 0xbf, 0x0e, 0xa7, 0x87, 0x5d, 0xf2, 0x85, 0xb1, 0xdb, 0xd3, 0x4b, 0xbe, 0x67, 0x30, 0x7f, 0x2e, 0x8a, 0xc8, 0xbc, 0x14, 0x2c, 0x3b, 0xa3, 0x14, 0xc1, 0x64, 0x2c, 0x65, 0xa2, 0xd6, 0x2e, 0xb2, 0xc7, 0x83, 0xf9, 0x16, 0x28, 0x3c, 0xa4, 0xec, 0x3e, 0x53, 0x6d, 0x3e, 0xeb, 0x65, 0xcf, 0xdc, 0xc0, 0x54, 0x9a, 0xc4, 0xf6, 0xa4, 0x5f, 0x53, 0x9a, 0xc5, 0xdf, 0x79, 0xa6, 0xd5, 0x76, 0x82, 0x19, 0x73, 0x9d, 0x0c, 0x9a, 0x0c, 0xdb, 0xb3, 0x12, 0x42, 0x29, 0x6c, 0x33, 0x12, 0xb7, 0xed, 0x56, 0x00, 0x43, 0xf5, 0x36, 0xcd, 0x1d, 0xe9, 0xa9, 0xc2, 0xb2, 0x89, 0x64, 0x1a, 0x1c, 0x2d, 0x84, 0xf9, 0xa6, 0x8b, 0x7c, 0x03, 0xb8, 0xb8, 0x56, 0x7e, 0x5d, 0xc7, 0x13, 0x8c, 0x2c, 0xb9, 0x67, 0xc6, 0x28, 0xaa, 0x25, 0xb2, 0xea, 0xb4, 0x34, 0xd4, 0x49, 0x0b, 0x23, 0x50, 0x74, 0x09, 0x71, 0x7c, 0xde, 0x94, 0xda, 0x59, 0xdc, 0x1d, 0xc2, 0x5c, 0x7b, 0xe4, 0x2a, 0x8a, 0xa0, 0x2e, 0xdc, 0xf4, 0xd9, 0x95, 0x36, 0x8e, 0x6b, 0xa0, 0xee, 0x1f, 0x95, 0x36, 0x00, 0xdb, 0x98, 0xd2, 0x2d, 0xe0, 0xf8, 0xd2, 0x57, 0x02, 0x0e, 0x0a, 0x40, 0x6e, 0xe1, 0x66, 0x9b, 0xd5, 0x27, 0xb9, 0xfe, 0x1c, 0x61, 0x1f, 0x9b, 0xe5, 0xa3, 0xd7, 0x52, 0x8e, 0x8b, 0x61, 0x51, 0x67, 0x0a, 0x86, 0x63, 0xd2, 0xed, 0x1a, 0x58, 0xd3, 0xe3, 0x69, 0xbb, 0x72, 0x2a, 0x63, 0x02, 0xd7, 0xc1, 0x72, 0xa1, 0x9b, 0xda, 0xf3, 0x57, 0xee, 0xdb, 0x02, 0x27, 0x91, 0x56, 0xe3, 0xb9, 0x03, 0x44, 0x31, 0xa7, 0xd6, 0x8a, 0x39, 0x52, 0x8e, 0xb4, 0x02, 0x35, 0x87, 0x57, 0x3e, 0xb8, 0x8f, 0x30, 0xf9, 0x4e, 0x83, 0x3e, 0x8a, 0x23, 0xb9, 0xd0, 0xac, 0x7b, 0x5c, 0xa8, 0x78, 0x24, 0x59, 0x6b, 0xbb, 0x0a, 0x3d, 0x0c, 0xa1, 0xb1, 0x6a, 0x68, 0x78, 0xfd, 0xf7, 0xe2, 0xce, 0xa3, 0x4a, 0x6f, 0xfb, 0x95, 0xa9, 0xff, 0x4e, 0x88, 0x8a, 0x97, 0x59, 0x37, 0x35, 0xb8, 0x68, 0xda, 0x75, 0xd8, 0x70, 0x7b, 0xbf, 0xdb, 0x1d, 0x93, 0xeb, 0x86, 0xa5, 0x1e, 0x2d, 0x21, 0x5f, 0x1d, 0xd9, 0xdc, 0xf7, 0x83, 0x88, 0x72, 0x9a, 0x3e, 0xb0, 0xf0, 0x66, 0xdd, 0xc9, 0x41, 0xe9, 0x50, 0xc9, 0x21, 0x27, 0x19, 0x8b, 0xce, 0x63, 0xa5, 0x48, 0x68, 0xd9, 0x97, 0x02, 0x95, 0x72, 0xff, 0xa6, 0xf6, 0xfe, 0xa1, 0xd3, 0xa6, 0x91, 0x64, 0xc9, 0x99, 0x69, 0x53, 0xdc, 0x8b, 0x6f, 0x9d, 0xad, 0x06, 0x35, 0xc9, 0xb0, 0x81, 0xf5, 0x5f, 0x98, 0x33, 0x40, 0xf0, 0x81, 0x4b, 0xf5, 0x47, 0x08, 0x03, 0x09, 0x0e, 0x79, 0x97, 0xf7, 0xab, 0x79, 0x6c, 0x2b, 0x15, 0xad, 0xaf, 0x40, 0x21, 0xd6, 0x7c, 0xff, 0xaf, 0x6e, 0x1e, 0xf6, 0x28, 0x67, 0x50, 0x39, 0x45, 0xc2, 0x1a, 0x32, 0x96, 0x64, 0xe0, 0x8a, 0x95, 0xa4, 0x15, 0x82, 0x30, 0x0d, 0xa9, 0xbe, 0xd2, 0x08, 0x44, 0x4c, 0xe6, 0xaa, 0x12, 0xb3, 0xf8, 0x67, 0x79, 0x5c, 0x6e, 0xe4, 0xc4, 0xc9, 0x25, 0x70, 0x18, 0x62, 0x73, 0x61, 0x29, 0x3b, 0xd5, 0x27, 0x82, 0x1a, 0x29, 0xa3, 0x39, 0xb4, 0x04, 0xa2, 0xda, 0x4b, 0xd9, 0x94, 0x4f, 0x87, 0x70, 0x40, 0x79, 0x8b, 0xb5, 0x4a, 0xbd, 0x2d, 0x76, 0xcb, 0xb1, 0x8d, 0xf4, 0x29, 0x7f, 0x4c, 0xe3, 0x33, 0x7f, 0x64, 0xd2, 0x05, 0x80, 0xaa, 0x64, 0xbd, 0xec, 0xac, 0x37, 0x6a, 0x6a, 0x4f, 0xf7, 0x4d, 0x01, 0x44, 0xb2, 0xfe, 0x74, 0xce, 0xf8, 0x2d, 0x50, 0xa5, 0xe6, 0xbd, 0xd7, 0x99, 0xe5, 0x5f, 0xf6, 0x96, 0x62, 0xba, 0xc5, 0x37, 0xad, 0xcb, 0x68, 0x81, 0x22, 0x8c, 0xb6, 0x37, 0x04, 0x50, 0x0c, 0x14, 0x3a, 0x4f, 0x4d, 0x1d, 0xb2, 0x8d, 0x45, 0x56, 0xbe, 0xe6, 0x04, 0xa3, 0x99, 0xff, 0xd2, 0x06, 0x54, 0x65, 0x97, 0xde, 0xe9, 0x22, 0x52, 0x54, 0x7f, 0x6c, 0x65, 0x7f, 0x36, 0x84, 0x1a, 0x87, 0xd5, 0x65, 0xf6, 0x55, 0x27, 0x16, 0xc2, 0x5a, 0x21, 0x15, 0x14, 0x77, 0xbe, 0xe9, 0xef, 0x96, 0x18, 0x55, 0xfb, 0x1a, 0xf2, 0xda, 0x80, 0x68, 0xf2, 0x8c, 0xe9, 0xff, 0x70, 0xd5, 0x25, 0x2c, 0x7a, 0x63, 0xa2, 0xe1, 0x4d, 0xed, 0x6b, 0x89, 0x77, 0xb1, 0xd7, 0x69, 0x1a, 0x77, 0xed, 0x2e, 0x57, 0xd2, 0x2f, 0xf2, 0xe1, 0xfc, 0x4c, 0xdb, 0xce, 0xb5, 0xe8, 0x05, 0x85, 0x8d, 0x90, 0x38, 0x96, 0xea, 0x67, 0x07, 0xe4, 0x8b, 0x34, 0x5f, 0x60, 0xe2, 0x81, 0x8b, 0x2f, 0xce, 0xc4, 0xdb, 0xa4, 0x8c, 0xae, 0xa9, 0xef, 0xa3, 0x82, 0x79, 0xfb, 0x83, 0xd5, 0xb0, 0xf4, 0x6a, 0x45, 0xe4, 0x2c, 0x41, 0x76, 0x5d, 0x01, 0x71, 0xba, 0xac, 0xd8, 0xd6, 0xdd, 0xa7, 0x99, 0x13, 0x14, 0xb3, 0x4e, 0x15, 0xfd, 0x36, 0x12, 0x7c, 0x46, 0x7d, 0x1d, 0xe0, 0x1c, 0x01, 0xa3, 0xa7, 0x8a, 0x8c, 0x1b, 0x10, 0x3b, 0xee, 0x17, 0xa7, 0xa0, 0xb7, 0xac, 0x55, 0x76, 0xfd, 0xc2, 0x26, 0xdd, 0x24, 0x59, 0x77, 0x31, 0x46, 0xcf, 0x38, 0x26, 0x14, 0x17, 0xca, 0x19, 0x13, 0x5d, 0xbd, 0xa9, 0xbd, 0xbe, 0x54, 0xcd, 0x17, 0xaa, 0x7d, 0xdd, 0x38, 0xfd, 0xca, 0xc2, 0xab, 0xa3, 0x96, 0xb3, 0x65, 0xce, 0xae, 0x98, 0x91, 0x9f, 0x6c, 0x51, 0x77, 0xfc, 0x58, 0x3f, 0x5b, 0xee, 0x3f, 0x48, 0x70, 0x49, 0x14, 0x30, 0x6a, 0xa1, 0x9e, 0xe9, 0x0e, 0x3f, 0xd0, 0xde, 0x55, 0x91, 0xc6, 0x69, 0xff, 0x35, 0xab, 0x16, 0xfe, 0xf3, 0x8d, 0xee, 0x18, 0x7b, 0xae, 0x1e, 0x5a, 0xaa, 0x56, 0x6d, 0xf1, 0x05, 0x44, 0xb7, 0xd6, 0xd4, 0xeb, 0x00, 0xda, 0x7e, 0xbe, 0xb4, 0xec, 0xdc, 0xc4, 0xd8, 0xe3, 0x2b, 0x49, 0xcb, 0xbd, 0xc6, 0xe6, 0x66, 0x40, 0xbd, 0xb0, 0xf7, 0x2e, 0x05, 0x91, 0x8a, 0x05, 0xc3, 0x5d, 0x9b, 0xff, 0x7e, 0x0e, 0x88, 0xf2, 0x41, 0xd7, 0xc6, 0xc8, 0xcb, 0x2f, 0xed, 0xcc, 0xdf, 0x65, 0x56, 0x0a, 0xf0, 0xe7, 0x83, 0x3e, 0xfe, 0x34, 0xaf, 0x79, 0x0d, 0xb6, 0x31, 0x89, 0x02, 0x2c, 0xfd, 0x71, 0xfc, 0x8a, 0xcf, 0x88, 0x86, 0x01, 0x27, 0xbd, 0x4f, 0xbf, 0x02, 0x6b, 0xcb, 0xe3, 0x60, 0xe3, 0x3a, 0x89, 0x95, 0xe6, 0x36, 0xd0, 0x3b, 0xb8, 0x6d, 0xfd, 0x01, 0x98, 0xad, 0xa9, 0x59, 0x34, 0x2d, 0x8e, 0x9c, 0x9e, 0xd9, 0x3e, 0x23, 0x29, 0x7d, 0xa9, 0x8d, 0x66, 0xa0, 0xd4, 0xfc, 0x96, 0x51, 0x62, 0x73, 0x3b, 0xc8, 0x65, 0x41, 0xb9, 0x5a, 0x6c, 0x90, 0x97, 0xcb, 0x55, 0xa9, 0x73, 0xc6, 0xfa, 0xc1, 0x94, 0xe8, 0xf8, 0xa1, 0x64, 0x27, 0x4c, 0x47, 0x9c, 0x51, 0x0e, 0x62, 0xd8, 0xa0, 0x35, 0xeb, 0x75, 0x11, 0x81, 0xb5, 0x02, 0xaf, 0xb6, 0x14, 0xd8, 0xc4, 0x46, 0x7b, 0x54, 0x45, 0xc2, 0x68, 0xdc, 0x3d, 0xd0, 0xab, 0xbd, 0x57, 0x70, 0x04, 0xc0, 0xbc, 0x47, 0xb1, 0x5f, 0xcb, 0x80, 0x1b, 0x79, 0x35, 0x97, 0x57, 0xb5, 0xea, 0x89, 0xcf, 0x8c, 0xf7, 0x7f, 0xc6, 0xd1, 0x60, 0xe6, 0xcd, 0x73, 0xc4, };
22470 static const u8 ed25519_977_test_vectors_expected_sig[] = {
22471 	0xc1, 0x02, 0x3a, 0x70, 0x68, 0x74, 0x3e, 0xc4, 0x66, 0x8f, 0x49, 0x5e, 0xb7, 0xbd, 0x4d, 0xb5, 0x81, 0x29, 0xc1, 0x1e, 0x58, 0x29, 0x9e, 0xa8, 0x7d, 0x6f, 0xac, 0xd3, 0x02, 0xbf, 0x29, 0x6a, 0x98, 0xe2, 0x98, 0xfd, 0xb4, 0x8e, 0xdd, 0xf9, 0xc4, 0x4e, 0x79, 0xae, 0x86, 0x41, 0xf7, 0x34, 0x50, 0x3b, 0xb8, 0x3d, 0xc0, 0xb3, 0x1f, 0x61, 0x0d, 0xf1, 0xd1, 0xe9, 0xd6, 0x19, 0xa7, 0x05, };
22472 static const ec_test_case ed25519_977_test_case = {
22473 	.name = "EDDSA25519-SHA512/wei25519 977",
22474 	.ec_str_p = &wei25519_str_params,
22475 	.priv_key = ed25519_977_test_vectors_priv_key,
22476 	.priv_key_len = sizeof(ed25519_977_test_vectors_priv_key),
22477 	.nn_random = NULL,
22478 	.hash_type = SHA512,
22479 	.msg = (const char *)ed25519_977_test_vectors_message,
22480 	.msglen = sizeof(ed25519_977_test_vectors_message),
22481 	.sig_type = EDDSA25519,
22482 	.exp_sig = ed25519_977_test_vectors_expected_sig,
22483 	.exp_siglen = sizeof(ed25519_977_test_vectors_expected_sig),
22484 	.adata = NULL,
22485 	.adata_len = 0
22486 };
22487 
22488 /************************************************/
22489 static const u8 ed25519_978_test_vectors_priv_key[] = {
22490 	0xd5, 0xe3, 0xa4, 0x06, 0x71, 0xbd, 0x45, 0xf0, 0x88, 0x42, 0xdd, 0xc7, 0x8a, 0xbe, 0x57, 0xde, 0x3b, 0x9c, 0xe5, 0x64, 0x6b, 0x73, 0x0d, 0x2e, 0x59, 0xfe, 0xcf, 0x5a, 0x7d, 0xf8, 0x0f, 0x40, };
22491 static const u8 ed25519_978_test_vectors_message[] = {
22492 	0x09, 0xfe, 0x6f, 0xfa, 0x8b, 0xf0, 0x94, 0x2a, 0x64, 0x92, 0x13, 0x57, 0x65, 0x9d, 0xbc, 0x6e, 0x4f, 0x8b, 0x63, 0xca, 0x3b, 0x9e, 0xa4, 0x75, 0xea, 0x39, 0xd7, 0x92, 0x52, 0x90, 0xa1, 0x48, 0xd8, 0x7b, 0xb1, 0x55, 0x74, 0x1d, 0xfa, 0x28, 0xae, 0x1b, 0xea, 0xdc, 0x1f, 0x3e, 0x1a, 0xb7, 0x67, 0x37, 0xeb, 0x5d, 0x5d, 0xda, 0xde, 0xd0, 0xbb, 0x38, 0x2d, 0x7e, 0x11, 0xea, 0x81, 0xa5, 0xe7, 0x80, 0x16, 0x12, 0x69, 0x62, 0x60, 0xba, 0x3b, 0xd0, 0x9c, 0x80, 0xb6, 0x23, 0xf6, 0x36, 0x38, 0x0a, 0xa0, 0x20, 0x8f, 0xee, 0x0a, 0xff, 0x70, 0x81, 0x2d, 0x53, 0x07, 0xb2, 0x71, 0x83, 0x83, 0x23, 0x43, 0xde, 0xba, 0xa3, 0x60, 0x5d, 0xda, 0xd1, 0x7d, 0xdd, 0x70, 0xd6, 0x11, 0x40, 0x0d, 0xdd, 0x10, 0xd6, 0x38, 0xaa, 0x3d, 0x6c, 0x68, 0xa2, 0x8c, 0xf0, 0xe9, 0x7c, 0x1d, 0xed, 0xf6, 0xcc, 0xd9, 0xc7, 0x31, 0xa8, 0x4f, 0xf0, 0x40, 0x5a, 0x3a, 0x22, 0xdc, 0xba, 0x00, 0xab, 0x44, 0xd5, 0xb2, 0x18, 0x44, 0xf1, 0x4d, 0x13, 0x74, 0xac, 0x0c, 0xb1, 0xe5, 0x8d, 0xf4, 0xa9, 0x0c, 0x41, 0x25, 0x63, 0xcf, 0xe6, 0x9d, 0x88, 0x2d, 0x35, 0x0f, 0x6a, 0xaf, 0xbf, 0xa6, 0x4f, 0xa2, 0xf9, 0xff, 0x82, 0x60, 0x32, 0x32, 0x67, 0x80, 0xae, 0xcf, 0x93, 0x05, 0xd8, 0x21, 0x7c, 0x17, 0x9d, 0xbb, 0x63, 0xc1, 0x51, 0x54, 0x12, 0x32, 0xeb, 0x65, 0x97, 0x92, 0x65, 0xd8, 0x76, 0xc4, 0xbc, 0x43, 0x05, 0xc0, 0x2f, 0x40, 0xbc, 0x1d, 0x05, 0xdb, 0xaf, 0x7d, 0xcf, 0x4f, 0x7d, 0xd9, 0x23, 0x2c, 0x17, 0xee, 0x0f, 0x7a, 0x05, 0x55, 0xf5, 0x04, 0xba, 0x37, 0x74, 0x54, 0x84, 0x88, 0x93, 0x3e, 0x75, 0x71, 0xeb, 0x3f, 0x71, 0xc4, 0xcb, 0xb2, 0x0c, 0xc4, 0xe4, 0xa7, 0x32, 0x2f, 0x35, 0xac, 0x0e, 0x79, 0xa5, 0x91, 0x55, 0x79, 0x8d, 0xd0, 0xf5, 0xb3, 0xc1, 0x13, 0x19, 0xb7, 0xd8, 0xf3, 0xea, 0x79, 0xee, 0x3a, 0xcc, 0x68, 0xbd, 0xb9, 0xf3, 0x7c, 0x7d, 0x4c, 0x8f, 0x9c, 0xab, 0xa1, 0xeb, 0xf8, 0xeb, 0x7f, 0x43, 0xb4, 0x62, 0xae, 0xfd, 0x38, 0xe8, 0xc0, 0xd4, 0xc6, 0x39, 0x79, 0xcf, 0x66, 0x31, 0xde, 0xc3, 0x1a, 0xb5, 0xce, 0xd3, 0x93, 0x7e, 0xf5, 0xb2, 0x36, 0x2c, 0xb0, 0x9c, 0x71, 0xdd, 0x09, 0x66, 0x57, 0x70, 0x0f, 0xd9, 0x6b, 0xda, 0x55, 0x5e, 0x22, 0x71, 0x2f, 0x71, 0xae, 0xc1, 0x1a, 0xe5, 0xe9, 0x1b, 0x24, 0xbd, 0x16, 0x49, 0x49, 0x8b, 0x8d, 0x9f, 0x86, 0x7f, 0xb6, 0xc4, 0x1e, 0x07, 0x60, 0x80, 0xf7, 0x40, 0xd0, 0x74, 0xc2, 0xa2, 0x55, 0x72, 0xd3, 0x4e, 0x66, 0x6b, 0x63, 0x67, 0xbf, 0x7c, 0xbb, 0x3d, 0xd4, 0x2a, 0x23, 0x82, 0xdc, 0x19, 0x73, 0x96, 0x12, 0x68, 0x60, 0x53, 0x96, 0x81, 0x0a, 0x45, 0x6a, 0xc0, 0x81, 0xbb, 0xfd, 0x3a, 0x54, 0xb4, 0x48, 0x81, 0xfc, 0xfc, 0x45, 0xb4, 0x24, 0x5e, 0xe7, 0x24, 0x65, 0xb4, 0x87, 0xd0, 0x7f, 0x2e, 0xf3, 0xf7, 0x4a, 0xdd, 0x71, 0xcd, 0xfd, 0xd1, 0x6e, 0x92, 0xfe, 0x25, 0x7d, 0x33, 0x46, 0x45, 0xb0, 0xa9, 0xbc, 0x7d, 0x07, 0x26, 0x13, 0xfb, 0x9c, 0x0c, 0xde, 0xa9, 0xdb, 0x4c, 0x72, 0xbc, 0x87, 0x10, 0x9e, 0x10, 0x2d, 0x7c, 0xba, 0xf3, 0x66, 0xec, 0xd6, 0x7f, 0xbe, 0x3d, 0xed, 0x32, 0x74, 0x73, 0x07, 0xa7, 0xae, 0xef, 0x61, 0x73, 0x5a, 0xd3, 0xaa, 0x5c, 0xe9, 0x5d, 0xee, 0xcc, 0x16, 0xa1, 0x6e, 0xb2, 0xa0, 0xbc, 0xc7, 0xad, 0xc0, 0xa1, 0x1d, 0x88, 0x80, 0x32, 0x26, 0x0e, 0x7c, 0x7e, 0xc9, 0xe5, 0x4f, 0x5a, 0x25, 0x31, 0x70, 0x2a, 0x7e, 0x5d, 0xfb, 0x87, 0xc3, 0x6c, 0xe3, 0x13, 0xa3, 0x14, 0x75, 0x88, 0xae, 0xf9, 0x62, 0xc7, 0x2f, 0xa9, 0x66, 0xd2, 0x41, 0x63, 0x7c, 0x38, 0x8b, 0x83, 0xdd, 0xec, 0x93, 0x43, 0xbb, 0x86, 0x34, 0x3e, 0x92, 0x0b, 0x12, 0xce, 0x1c, 0xc9, 0x15, 0xc8, 0x3b, 0x31, 0xe9, 0x98, 0x62, 0x69, 0x06, 0x74, 0xea, 0x49, 0x35, 0xa4, 0x88, 0x09, 0xd4, 0xd2, 0x79, 0x05, 0x41, 0x37, 0x54, 0x63, 0x92, 0xad, 0x9f, 0x08, 0xe7, 0xb8, 0xde, 0x61, 0xae, 0x73, 0xe8, 0x1e, 0x48, 0x3d, 0x3c, 0x63, 0xb5, 0xae, 0x73, 0x4e, 0x18, 0xe7, 0xa2, 0x2f, 0xee, 0xd1, 0x23, 0x3d, 0x0c, 0xa6, 0x33, 0x55, 0xf3, 0xa4, 0x8a, 0x33, 0x06, 0x7e, 0x1a, 0x0e, 0x19, 0x71, 0xf3, 0x6a, 0xa9, 0x29, 0xfe, 0x06, 0x13, 0xc2, 0x1c, 0x4a, 0xef, 0xf9, 0x41, 0x84, 0x29, 0xc3, 0xb0, 0x72, 0xa5, 0x98, 0x49, 0x59, 0x28, 0x7a, 0x5e, 0x5c, 0x40, 0xbe, 0x02, 0xbd, 0x22, 0xb9, 0xa7, 0x9c, 0x7f, 0x3f, 0x53, 0x59, 0xd2, 0xbb, 0xe4, 0x93, 0xf5, 0x56, 0xda, 0xcb, 0xb0, 0xcb, 0x4c, 0x29, 0x3c, 0x7d, 0x94, 0x12, 0x65, 0xe7, 0x77, 0x39, 0x2d, 0x14, 0x8d, 0x68, 0xc0, 0x7a, 0x13, 0xc8, 0xde, 0xc8, 0xe5, 0xd1, 0xe1, 0xc7, 0xf0, 0x41, 0xe8, 0x98, 0x3e, 0xdd, 0xda, 0xa4, 0x64, 0x9d, 0xac, 0x15, 0x72, 0xa3, 0x9a, 0xe4, 0xc6, 0x48, 0x0c, 0xa5, 0x50, 0xe2, 0xe4, 0x46, 0x2d, 0xcc, 0x84, 0x9c, 0x1b, 0xab, 0x78, 0x1d, 0x28, 0xa3, 0x55, 0x2b, 0x2d, 0x98, 0xe0, 0x2e, 0x15, 0x18, 0xe6, 0x55, 0x53, 0x40, 0xfb, 0x76, 0xd6, 0x8d, 0xb5, 0x89, 0x16, 0xd5, 0x56, 0xa7, 0xb8, 0x15, 0x63, 0xab, 0xa8, 0x1d, 0x9a, 0x57, 0xae, 0x50, 0xf0, 0x4c, 0xf5, 0x68, 0x60, 0x21, 0x84, 0x7d, 0x79, 0xb6, 0xbb, 0x3d, 0xa8, 0x01, 0x7a, 0x60, 0xb1, 0xc3, 0xbe, 0xef, 0xd4, 0x8d, 0x2b, 0x3c, 0xd3, 0x9c, 0x6f, 0x53, 0xc0, 0x8b, 0xcc, 0x96, 0x7d, 0x93, 0x06, 0x9f, 0x56, 0x2b, 0xb3, 0x6e, 0x0c, 0x4f, 0x4c, 0xa6, 0xbc, 0xcc, 0x5e, 0x57, 0xd3, 0x59, 0x03, 0xcd, 0x80, 0x0a, 0x61, 0x78, 0x5a, 0x93, 0x77, 0x0e, 0x37, 0x7f, 0x4f, 0xe8, 0xe9, 0xf4, 0xb6, 0x66, 0x80, 0x98, 0x49, 0x68, 0xf9, 0x64, 0x9e, 0x10, 0x5e, 0x7a, 0x11, 0x9d, 0x97, 0x63, 0x6f, 0x3a, 0x05, 0xca, 0xea, 0xb1, 0xd7, 0xea, 0x0b, 0xc8, 0x13, 0x34, 0xb4, 0x2d, 0x5c, 0xc0, 0x80, 0x83, 0x0e, 0xc2, 0x4d, 0x36, 0x9c, 0xf8, 0x67, 0x3a, 0x49, 0x0d, 0x59, 0xeb, 0x4c, 0xb0, 0x81, 0x81, 0xda, 0x39, 0xa4, 0x6d, 0x96, 0x6e, 0x23, 0xfe, 0xd8, 0xd3, 0x8a, 0x5f, 0xab, 0xc7, 0xe8, 0x43, 0xbc, 0xfb, 0x01, 0x5a, 0x44, 0x74, 0xbf, 0xd4, 0x6d, 0x4a, 0x43, 0xff, 0x4a, 0x51, 0xa9, 0x56, 0x76, 0x61, 0xe2, 0x69, 0x6d, 0xb8, 0x7c, 0x37, 0x58, 0xd3, 0xb5, 0x4c, 0xe7, 0x84, 0x6d, 0x13, 0x91, 0xd7, 0xf4, 0x65, 0x26, 0xef, 0x30, 0x84, 0x4d, 0x49, 0x32, 0x00, 0x18, 0xd7, 0x49, 0xb5, 0xd4, 0xdf, 0xd3, 0x0d, 0x38, 0x0c, 0x6e, 0x57, 0x3f, 0xc4, 0x14, 0xd8, 0xfe, 0xfc, 0x5d, 0x71, 0x04, 0x70, 0x75, 0x6b, 0xec, 0x00, 0xd8, 0x8a, 0xc4, 0xaf, 0xc9, 0x25, 0xd1, 0xed, 0xe3, 0x7e, 0xae, 0xe6, 0x00, 0x4a, 0x23, 0xea, 0x0e, 0xf8, 0xb6, 0x0e, 0x48, };
22493 static const u8 ed25519_978_test_vectors_expected_sig[] = {
22494 	0x63, 0xde, 0x6a, 0x98, 0x11, 0x42, 0x36, 0x5a, 0x3e, 0x59, 0x26, 0x31, 0xc8, 0x27, 0x72, 0x37, 0x80, 0x97, 0x39, 0xd1, 0xc9, 0x8f, 0x5a, 0x1c, 0xb2, 0xcc, 0xcd, 0x34, 0x06, 0x7d, 0x1c, 0xa5, 0xdc, 0x8f, 0x2f, 0xc6, 0x3b, 0x8a, 0xe1, 0xa6, 0x89, 0xdc, 0xaa, 0x29, 0x1b, 0xa6, 0xb6, 0x9b, 0x1a, 0x67, 0x95, 0xc5, 0x79, 0xa5, 0xdb, 0x6d, 0xcc, 0xee, 0x73, 0xf6, 0xa4, 0x20, 0xac, 0x0a, };
22495 static const ec_test_case ed25519_978_test_case = {
22496 	.name = "EDDSA25519-SHA512/wei25519 978",
22497 	.ec_str_p = &wei25519_str_params,
22498 	.priv_key = ed25519_978_test_vectors_priv_key,
22499 	.priv_key_len = sizeof(ed25519_978_test_vectors_priv_key),
22500 	.nn_random = NULL,
22501 	.hash_type = SHA512,
22502 	.msg = (const char *)ed25519_978_test_vectors_message,
22503 	.msglen = sizeof(ed25519_978_test_vectors_message),
22504 	.sig_type = EDDSA25519,
22505 	.exp_sig = ed25519_978_test_vectors_expected_sig,
22506 	.exp_siglen = sizeof(ed25519_978_test_vectors_expected_sig),
22507 	.adata = NULL,
22508 	.adata_len = 0
22509 };
22510 
22511 /************************************************/
22512 static const u8 ed25519_979_test_vectors_priv_key[] = {
22513 	0x4e, 0xd7, 0x04, 0x8a, 0xa1, 0x28, 0x4d, 0xbb, 0xcc, 0x24, 0x89, 0x38, 0xb4, 0x0c, 0x35, 0x74, 0x21, 0x93, 0x59, 0x7a, 0xdd, 0xaf, 0xdd, 0xe0, 0x64, 0x13, 0xb8, 0xd4, 0xcc, 0xfb, 0xe1, 0x37, };
22514 static const u8 ed25519_979_test_vectors_message[] = {
22515 	0xdc, 0xff, 0x95, 0x87, 0xd6, 0x04, 0x6c, 0x11, 0x32, 0xbe, 0x07, 0xdf, 0x26, 0xdf, 0x63, 0x82, 0xff, 0x92, 0xcf, 0xc8, 0xeb, 0x53, 0x45, 0xc5, 0x1d, 0xd5, 0x0d, 0xd1, 0x88, 0xee, 0x76, 0x9f, 0x10, 0xa4, 0xde, 0x5e, 0x88, 0x83, 0xd1, 0x16, 0x96, 0x7b, 0xea, 0x97, 0xd3, 0xb3, 0x2b, 0xc8, 0xae, 0xbb, 0x9f, 0x01, 0x3d, 0x6d, 0xf9, 0x52, 0xf2, 0x51, 0xc1, 0xa3, 0x12, 0x34, 0x6e, 0x72, 0xce, 0xe1, 0x35, 0xa1, 0xbf, 0xd7, 0x6b, 0xf3, 0x08, 0x0a, 0x35, 0xc8, 0x38, 0xb4, 0x4d, 0x75, 0x5f, 0x26, 0x3d, 0x21, 0x03, 0x10, 0xfa, 0x8d, 0x28, 0xc4, 0xca, 0x52, 0xf0, 0x8c, 0xac, 0x5b, 0x83, 0xa8, 0xa3, 0xb1, 0xdf, 0xc4, 0x6d, 0x9b, 0x75, 0x2d, 0x9f, 0xc7, 0x36, 0x49, 0xd0, 0x0b, 0xb9, 0xee, 0x99, 0x26, 0x50, 0x63, 0x9c, 0x22, 0x5d, 0xea, 0xc1, 0xf3, 0x9b, 0x9e, 0x80, 0x36, 0x89, 0xd1, 0x9e, 0x6d, 0x9f, 0x8e, 0xf4, 0xf5, 0x1f, 0x1d, 0x11, 0x60, 0x1f, 0xac, 0xf4, 0x10, 0xdb, 0x64, 0x8b, 0xcc, 0x82, 0xbf, 0x64, 0x87, 0x69, 0xa7, 0xdd, 0x59, 0xc6, 0xe8, 0xa2, 0x37, 0xdb, 0x23, 0x9d, 0x3f, 0x66, 0x1d, 0x78, 0x52, 0xc4, 0x26, 0xd3, 0x94, 0xa9, 0x05, 0x09, 0x52, 0x6a, 0x85, 0x9b, 0x47, 0x64, 0x59, 0xde, 0xdb, 0xe6, 0xd8, 0x99, 0x36, 0xc0, 0xf3, 0x98, 0x99, 0x95, 0x51, 0x1d, 0x4a, 0x57, 0x6e, 0x54, 0x2c, 0xce, 0x5e, 0x0d, 0xd7, 0xee, 0xef, 0xeb, 0x03, 0x26, 0xd3, 0x3f, 0x25, 0xc2, 0x2a, 0xb6, 0xe7, 0x69, 0x06, 0x33, 0xf4, 0xc9, 0xed, 0x2a, 0xad, 0xf1, 0xd2, 0x4f, 0x94, 0x86, 0x21, 0x23, 0xa4, 0x64, 0x04, 0x2c, 0xea, 0x19, 0x3a, 0x2f, 0x04, 0x79, 0xd3, 0x9b, 0xcd, 0x1b, 0xbd, 0x1c, 0x7a, 0x0c, 0xa7, 0xe6, 0x25, 0x8e, 0xd3, 0x73, 0x23, 0x72, 0xf5, 0x4e, 0x0e, 0xd5, 0xe3, 0xf1, 0xe2, 0xe4, 0xd4, 0xa0, 0x4c, 0x51, 0x0b, 0xee, 0x08, 0xd1, 0xc6, 0xd5, 0x70, 0xcf, 0xd6, 0x3a, 0xbf, 0x14, 0xb4, 0xee, 0xf0, 0xb9, 0x6f, 0x39, 0xca, 0x29, 0xe4, 0x3c, 0x52, 0xf2, 0xca, 0x3d, 0xfd, 0x46, 0x0f, 0x66, 0xe3, 0x02, 0x35, 0xb1, 0x59, 0xaa, 0xef, 0x2c, 0xc1, 0x56, 0x01, 0x29, 0x69, 0xfd, 0x3d, 0x15, 0x99, 0x78, 0xd6, 0xca, 0xa0, 0xa9, 0x45, 0x22, 0x29, 0x1f, 0x79, 0x89, 0xd8, 0xaf, 0x10, 0x83, 0x19, 0x96, 0x13, 0x7b, 0x68, 0xd9, 0x7f, 0xc1, 0x7f, 0x6a, 0x9b, 0xc2, 0x84, 0x5e, 0xf3, 0xdd, 0x47, 0xcb, 0xc3, 0x86, 0xe8, 0x97, 0x7a, 0x86, 0x54, 0x36, 0x34, 0x12, 0xda, 0xc3, 0xac, 0x51, 0xc6, 0x38, 0x17, 0xb7, 0xc0, 0x51, 0x87, 0x8d, 0xcf, 0x45, 0x8a, 0xb3, 0x63, 0x0d, 0xd7, 0xae, 0xf6, 0x8d, 0x27, 0x0f, 0x8d, 0xa7, 0x88, 0x0a, 0x46, 0x7b, 0x33, 0x04, 0xf5, 0xba, 0xed, 0xfb, 0xa9, 0x17, 0x3e, 0x7e, 0xfd, 0x00, 0x7c, 0x41, 0x2d, 0x17, 0x20, 0x9c, 0x56, 0xd2, 0x39, 0x68, 0xe3, 0x40, 0xb8, 0xa0, 0xed, 0xb4, 0x1b, 0x7e, 0x2a, 0x40, 0x88, 0xbe, 0xc0, 0x1b, 0x53, 0x2d, 0xf8, 0x9b, 0x52, 0x15, 0x81, 0x31, 0x31, 0x10, 0x7b, 0x7b, 0x47, 0x4f, 0x03, 0xc2, 0xe4, 0x7d, 0x43, 0x17, 0xf1, 0x1c, 0x4f, 0x51, 0x60, 0x90, 0x43, 0x04, 0x99, 0x7e, 0x76, 0xa1, 0x21, 0xa9, 0x56, 0x02, 0x35, 0x20, 0x8d, 0x79, 0xb2, 0xda, 0xb4, 0xf7, 0xe1, 0x96, 0x79, 0x32, 0x02, 0xc0, 0x90, 0x2c, 0xe9, 0xc4, 0xbf, 0xc1, 0x0b, 0x8f, 0xe3, 0x97, 0xe3, 0x5c, 0xa0, 0x25, 0x64, 0x54, 0x66, 0x2a, 0xe8, 0x78, 0xef, 0xb0, 0xa0, 0xa6, 0x06, 0xfa, 0xc0, 0xa9, 0x52, 0xc9, 0xf6, 0xba, 0xae, 0xb2, 0xd4, 0x5b, 0x25, 0x8c, 0x61, 0x75, 0x59, 0xc0, 0xed, 0x25, 0x28, 0xa8, 0x8b, 0x49, 0xaa, 0x44, 0xee, 0x43, 0x03, 0x5b, 0x0d, 0x79, 0x3a, 0xad, 0x39, 0x53, 0xc1, 0xa5, 0xa3, 0x46, 0x38, 0x66, 0xbc, 0x81, 0x5b, 0x1f, 0xfc, 0xe2, 0xff, 0x2b, 0x65, 0xe0, 0xfd, 0x47, 0xdb, 0xc1, 0x5f, 0x4e, 0x7a, 0x06, 0xbf, 0xab, 0xc2, 0x90, 0xfc, 0x62, 0x09, 0x0b, 0xf7, 0xd9, 0x48, 0x53, 0xf7, 0x7c, 0x04, 0x44, 0xa9, 0xb9, 0x0e, 0xfe, 0x77, 0xd1, 0xce, 0xb4, 0xbd, 0x39, 0xe2, 0x03, 0xbc, 0x88, 0x40, 0x11, 0x62, 0x4e, 0x68, 0x46, 0xe2, 0xa3, 0x71, 0x05, 0x8d, 0xab, 0xa6, 0x3c, 0x23, 0xf8, 0x6c, 0x42, 0xc3, 0xe3, 0x1e, 0xaa, 0x4b, 0xd7, 0xd7, 0xa4, 0x2a, 0xf2, 0xd5, 0x24, 0x89, 0x6e, 0x31, 0xba, 0xa3, 0xe2, 0x07, 0x63, 0xf8, 0x5d, 0xcf, 0xd5, 0x27, 0x75, 0xf2, 0x80, 0x72, 0xd8, 0x9f, 0x0b, 0xd4, 0xfa, 0xe3, 0x0d, 0x0b, 0x13, 0x7e, 0xe3, 0x7a, 0xb0, 0x63, 0xba, 0x06, 0xfe, 0x9d, 0x4e, 0xc6, 0x2a, 0xbb, 0x2f, 0xea, 0x0f, 0x81, 0xb8, 0xcb, 0xee, 0xfc, 0x03, 0x00, 0x80, 0xb8, 0x02, 0x6a, 0x58, 0xfd, 0x18, 0x67, 0xf6, 0x6b, 0xe1, 0x15, 0x4e, 0x65, 0xbf, 0xea, 0x7d, 0xce, 0xc5, 0x5f, 0xe3, 0x2d, 0x51, 0xfb, 0x0b, 0x4a, 0x8a, 0x5a, 0x8a, 0x04, 0x42, 0x63, 0x94, 0x3d, 0x6a, 0xc8, 0x01, 0x1c, 0x6e, 0x67, 0x01, 0xbe, 0xec, 0x3a, 0x88, 0x65, 0x58, 0x40, 0xc4, 0x89, 0x2d, 0x45, 0x0d, 0x31, 0x2b, 0x76, 0x52, 0xd2, 0x51, 0x47, 0x69, 0xf2, 0x3b, 0xfd, 0x6e, 0x70, 0x46, 0x46, 0x7d, 0xf2, 0x9a, 0x28, 0x7f, 0xf3, 0xc4, 0xc9, 0xd0, 0xe6, 0x4e, 0x6d, 0x9e, 0x4e, 0xde, 0xe1, 0xb9, 0x35, 0xd0, 0x76, 0x81, 0xd4, 0x70, 0x04, 0x35, 0x28, 0x86, 0xe8, 0x47, 0xb0, 0xc6, 0xd5, 0x76, 0x2f, 0xd4, 0x5a, 0x81, 0xa5, 0x3c, 0xce, 0x94, 0x76, 0xc8, 0x87, 0x22, 0x1a, 0xea, 0x6c, 0x0c, 0x82, 0xbb, 0xf3, 0xb2, 0x97, 0x93, 0x2e, 0x5b, 0x11, 0xe5, 0x38, 0xa3, 0x24, 0x5d, 0x63, 0xd7, 0xb7, 0xb0, 0x91, 0xdf, 0xa1, 0xd7, 0xb9, 0xa0, 0xe2, 0xdb, 0x66, 0x98, 0xa4, 0xc5, 0xe9, 0xfe, 0x93, 0x16, 0x62, 0xd7, 0xc6, 0xec, 0x6d, 0x9d, 0x5b, 0x92, 0xbc, 0x7e, 0x04, 0x15, 0x55, 0xdf, 0x4d, 0xf0, 0xca, 0x11, 0xca, 0xbc, 0x48, 0x5f, 0x9c, 0x55, 0x61, 0x38, 0xa7, 0x17, 0x45, 0xf0, 0x3b, 0x97, 0x83, 0xbb, 0x20, 0x0b, 0x72, 0xd2, 0x33, 0x69, 0x7e, 0x8b, 0xcf, 0x6b, 0x41, 0x17, 0xee, 0x67, 0x63, 0xd7, 0x92, 0xd7, 0x42, 0x22, 0x64, 0x85, 0x2f, 0x4f, 0x30, 0xf8, 0xd1, 0x89, 0x0e, 0x2e, 0xa0, 0x80, 0x98, 0x04, 0x0f, 0x7f, 0x28, 0x8e, 0x4a, 0xbe, 0x90, 0xb6, 0x3c, 0xab, 0x2c, 0x14, 0x37, 0x30, 0x60, 0x84, 0x0e, 0xf8, 0x27, 0xec, 0xc8, 0x46, 0xcd, 0x56, 0x0e, 0x90, 0xa2, 0x0b, 0x83, 0x05, 0xf4, 0x63, 0xc3, 0x6e, 0xa0, 0x38, 0x84, 0xa5, 0xdf, 0x4c, 0x25, 0xf1, 0xba, 0x9e, 0xa1, 0x25, 0x95, 0x2d, 0xc0, 0x91, 0xb9, 0x75, 0x16, 0xde, 0x1d, 0x28, 0x7c, 0x0e, 0x2b, 0xf5, 0x29, 0x77, 0x5b, 0xa6, 0xd2, 0xf8, 0xed, 0xe0, 0x3c, 0xb4, 0x2c, 0x1e, 0x40, 0x0e, 0xc8, 0x04, 0xa9, 0xdf, 0x08, 0xe4, 0x6f, 0x44, 0xb5, 0x06, 0x63, 0x46, 0xe3, 0xf7, 0xc7, 0xa1, 0xa8, };
22516 static const u8 ed25519_979_test_vectors_expected_sig[] = {
22517 	0x10, 0x6a, 0x9d, 0xeb, 0x23, 0x27, 0xf3, 0x38, 0xcc, 0xb7, 0x1b, 0xcc, 0x94, 0xe2, 0xfe, 0x3d, 0x2e, 0x97, 0x3c, 0xe6, 0xdd, 0x8f, 0xa7, 0xba, 0xca, 0x80, 0x8b, 0x41, 0x11, 0x81, 0x3e, 0x3b, 0xc3, 0xb4, 0xd8, 0x8e, 0xfa, 0x6a, 0x00, 0xc4, 0x71, 0x0b, 0xbf, 0xe5, 0x31, 0x96, 0xf9, 0xab, 0x3a, 0x15, 0x0b, 0x16, 0x54, 0xb9, 0x08, 0xfe, 0xac, 0xf9, 0xc1, 0x3d, 0xf2, 0xd6, 0x38, 0x02, };
22518 static const ec_test_case ed25519_979_test_case = {
22519 	.name = "EDDSA25519-SHA512/wei25519 979",
22520 	.ec_str_p = &wei25519_str_params,
22521 	.priv_key = ed25519_979_test_vectors_priv_key,
22522 	.priv_key_len = sizeof(ed25519_979_test_vectors_priv_key),
22523 	.nn_random = NULL,
22524 	.hash_type = SHA512,
22525 	.msg = (const char *)ed25519_979_test_vectors_message,
22526 	.msglen = sizeof(ed25519_979_test_vectors_message),
22527 	.sig_type = EDDSA25519,
22528 	.exp_sig = ed25519_979_test_vectors_expected_sig,
22529 	.exp_siglen = sizeof(ed25519_979_test_vectors_expected_sig),
22530 	.adata = NULL,
22531 	.adata_len = 0
22532 };
22533 
22534 /************************************************/
22535 static const u8 ed25519_980_test_vectors_priv_key[] = {
22536 	0xc7, 0xec, 0xa8, 0x3e, 0x94, 0x85, 0x76, 0xbd, 0x9f, 0x27, 0x8f, 0xd7, 0xb8, 0x28, 0x00, 0xa4, 0x1d, 0x92, 0xda, 0x9b, 0x72, 0xd5, 0xa1, 0xcc, 0xdb, 0xbc, 0x65, 0x58, 0x10, 0x52, 0x56, 0x8b, };
22537 static const u8 ed25519_980_test_vectors_message[] = {
22538 	0x8d, 0x8c, 0xef, 0xd6, 0x73, 0x85, 0x5c, 0xcd, 0x8e, 0xb8, 0x53, 0x4c, 0x31, 0x2d, 0x33, 0x80, 0x05, 0xbb, 0x05, 0xf5, 0xb9, 0x50, 0x7d, 0x58, 0x85, 0x9e, 0x1e, 0x95, 0x3b, 0x0a, 0x4d, 0x91, 0x3b, 0xe7, 0x59, 0xd8, 0xed, 0xfa, 0x92, 0x89, 0x8c, 0x6e, 0x70, 0xa5, 0x3f, 0x81, 0x95, 0x4f, 0xc3, 0x44, 0xb4, 0xad, 0x62, 0x46, 0xb0, 0x10, 0x94, 0x81, 0xba, 0x6f, 0x73, 0xae, 0x63, 0x31, 0xab, 0xf2, 0xdf, 0x10, 0x8e, 0xb2, 0xe8, 0x5c, 0xeb, 0x08, 0x7c, 0x1f, 0x6f, 0xcf, 0xc9, 0xde, 0x2c, 0x1f, 0x13, 0x9b, 0xa1, 0x77, 0x1b, 0x72, 0x68, 0x03, 0x02, 0xd8, 0x11, 0xcc, 0xd0, 0xcc, 0xd4, 0xe0, 0xc7, 0xfe, 0xb0, 0x13, 0x2e, 0xb2, 0x0b, 0x33, 0x4e, 0x5a, 0xab, 0xe5, 0xf6, 0x11, 0x9f, 0xd8, 0x94, 0x7d, 0x9e, 0x88, 0x52, 0xe1, 0xeb, 0x1b, 0x74, 0x10, 0x7e, 0x17, 0x41, 0x00, 0xe3, 0xe6, 0xdf, 0x0c, 0x3a, 0x68, 0x13, 0x0c, 0xa6, 0x30, 0x94, 0x02, 0x59, 0x4b, 0xb5, 0x0c, 0x1c, 0x8e, 0x27, 0x74, 0xf1, 0x32, 0x14, 0x49, 0x6a, 0x7b, 0x1f, 0x34, 0x83, 0x85, 0xea, 0xbf, 0xbc, 0xcb, 0xac, 0x16, 0x5a, 0x5a, 0x2e, 0x7d, 0x9d, 0xea, 0x5f, 0xfd, 0x58, 0xb0, 0xbd, 0x88, 0xb4, 0x9c, 0xb3, 0x31, 0xec, 0xb7, 0xf4, 0xe9, 0xd6, 0xba, 0xe9, 0x79, 0x1a, 0xd7, 0x88, 0xe6, 0xab, 0x89, 0x26, 0xc1, 0xcc, 0x16, 0x15, 0xde, 0xaf, 0x4c, 0xc4, 0x00, 0xc7, 0x7a, 0x31, 0x61, 0x97, 0xbc, 0xa1, 0x90, 0x49, 0x95, 0xe1, 0x36, 0x5d, 0x1b, 0x97, 0x02, 0x64, 0x83, 0x76, 0x11, 0x69, 0x30, 0xf6, 0xf9, 0x11, 0x66, 0xe6, 0x14, 0x86, 0x29, 0xe7, 0x5b, 0xe2, 0xd0, 0x68, 0x95, 0xf6, 0xa8, 0xd1, 0x5d, 0x5a, 0x94, 0xca, 0x69, 0xb7, 0x12, 0xf3, 0x3b, 0xcf, 0x95, 0xbe, 0x0c, 0x1b, 0xe6, 0x90, 0x2b, 0xb7, 0x8b, 0x8a, 0x23, 0x0d, 0x7a, 0x85, 0x60, 0xc4, 0xd8, 0x4e, 0x23, 0x89, 0x55, 0x2a, 0x81, 0x57, 0x1a, 0xa6, 0x65, 0xc1, 0x9c, 0x2e, 0x93, 0xb0, 0xd4, 0x3e, 0x8c, 0x2c, 0xbd, 0x9e, 0x88, 0x5d, 0x70, 0x52, 0x51, 0x8b, 0x77, 0xc4, 0x7e, 0x84, 0x1d, 0x11, 0x9d, 0xc2, 0x8b, 0x65, 0xa7, 0x50, 0x4f, 0x66, 0x42, 0x71, 0xf0, 0x6c, 0x7f, 0xf3, 0x93, 0xf8, 0x25, 0xb1, 0xe5, 0x93, 0x0d, 0x02, 0xb9, 0xc7, 0x00, 0x35, 0xe2, 0x92, 0x41, 0x1c, 0x4a, 0xed, 0xf6, 0x60, 0x47, 0x00, 0x69, 0x70, 0xe3, 0x49, 0xdf, 0xca, 0x7f, 0xb4, 0x1c, 0x10, 0xfd, 0x53, 0x7e, 0x35, 0x25, 0x2e, 0x10, 0x9e, 0x33, 0x36, 0xd7, 0xa8, 0x2a, 0x14, 0xde, 0x5d, 0x55, 0x40, 0xc6, 0xfc, 0x65, 0x71, 0xd5, 0x77, 0x4f, 0x39, 0xb7, 0xc4, 0x03, 0xe7, 0xb8, 0x87, 0x5e, 0xc2, 0x15, 0x87, 0x7e, 0xfc, 0x6c, 0xc8, 0xea, 0x48, 0xb1, 0x86, 0xb4, 0x68, 0x21, 0xea, 0x5e, 0xf2, 0xba, 0x8b, 0xac, 0xd4, 0x0d, 0x79, 0x7e, 0x6a, 0xdd, 0x06, 0x41, 0x32, 0x83, 0x14, 0x5b, 0x60, 0x46, 0x2b, 0x35, 0x03, 0xc5, 0xb8, 0x81, 0xd7, 0x9a, 0x59, 0x29, 0x55, 0xd1, 0x8a, 0xfa, 0x08, 0x96, 0x9e, 0x31, 0x45, 0x7f, 0x5b, 0x27, 0xda, 0xec, 0x01, 0x03, 0x38, 0xed, 0x86, 0x7f, 0x30, 0x08, 0x78, 0xfd, 0x87, 0xce, 0x32, 0x18, 0x80, 0xb8, 0x60, 0xa0, 0xc6, 0x42, 0x84, 0xca, 0x2d, 0xc1, 0x5f, 0x5e, 0x53, 0x10, 0xe1, 0x0e, 0x6a, 0x73, 0xa7, 0xea, 0x65, 0x0e, 0xa9, 0xd3, 0x73, 0x69, 0x4d, 0xa4, 0xdd, 0x42, 0x9a, 0xe7, 0x41, 0x2e, 0xf9, 0xb2, 0x9c, 0x83, 0xb3, 0xb0, 0x68, 0xc7, 0x47, 0x69, 0xf4, 0x31, 0xce, 0x06, 0x15, 0xf9, 0xff, 0x4f, 0x82, 0xba, 0xac, 0x47, 0xb4, 0xbc, 0xe9, 0x04, 0x49, 0xec, 0x41, 0xc2, 0xa2, 0xd5, 0x73, 0xd9, 0x2b, 0x92, 0xe0, 0x56, 0x31, 0x48, 0x61, 0x65, 0xbc, 0x71, 0x0e, 0xf5, 0x84, 0x0f, 0x80, 0xda, 0xe9, 0xf9, 0xdd, 0x5c, 0xff, 0xd4, 0xeb, 0xf5, 0xd1, 0x07, 0x46, 0x51, 0x0c, 0x5f, 0xcb, 0xfe, 0x62, 0xcb, 0x97, 0x03, 0xc0, 0xb1, 0x54, 0xc8, 0x6f, 0x10, 0x81, 0x66, 0x72, 0x49, 0x76, 0x70, 0xa3, 0xb0, 0x15, 0x0b, 0xb4, 0xe1, 0xb0, 0x3b, 0x3b, 0xd5, 0x44, 0xc1, 0x2a, 0x90, 0xc3, 0xed, 0xcc, 0xd7, 0x90, 0x0e, 0xbb, 0x5b, 0x31, 0xc9, 0x11, 0x17, 0xcc, 0x82, 0x81, 0xa3, 0xc4, 0xed, 0x04, 0x99, 0x8e, 0x99, 0xae, 0xd4, 0x1b, 0xb4, 0x1f, 0xce, 0x99, 0x90, 0xa4, 0x06, 0x48, 0x5b, 0x14, 0xdb, 0xe3, 0xbc, 0x1a, 0x5f, 0xcf, 0x77, 0x19, 0x50, 0x79, 0x90, 0xda, 0x3b, 0x0b, 0x3c, 0x68, 0xad, 0x40, 0xd8, 0x95, 0x0c, 0x0d, 0x49, 0xce, 0xd1, 0x01, 0x93, 0x19, 0xa3, 0xf3, 0x6a, 0xff, 0x6c, 0xaf, 0x75, 0xd7, 0xf9, 0xa0, 0x93, 0x3d, 0xd3, 0xab, 0xdd, 0x76, 0x92, 0xa1, 0x56, 0x2f, 0x06, 0x13, 0xfe, 0x4a, 0x27, 0x8d, 0x5c, 0xe4, 0xc8, 0xda, 0xfb, 0xb5, 0x5b, 0x2e, 0xc2, 0xaf, 0x2b, 0x24, 0xe8, 0x39, 0x6f, 0x58, 0x7b, 0x17, 0x0c, 0x9c, 0xa6, 0x54, 0x75, 0x08, 0xfa, 0xcd, 0xe7, 0x34, 0x90, 0xdf, 0xb0, 0x1e, 0xb6, 0x65, 0x7e, 0x3f, 0x4f, 0x27, 0x23, 0x04, 0xb7, 0x0b, 0xf0, 0x47, 0xa4, 0x3a, 0x2b, 0x58, 0xe5, 0x56, 0x8b, 0xc5, 0x2b, 0x2c, 0x8d, 0x4c, 0x03, 0x21, 0x9a, 0x5a, 0x8b, 0xd3, 0xdc, 0x06, 0x43, 0x18, 0x59, 0x13, 0xc0, 0xaf, 0x74, 0x11, 0xf8, 0x1b, 0x77, 0xbe, 0x2a, 0x9b, 0xfd, 0x5c, 0xb2, 0x69, 0x77, 0x11, 0x3d, 0x26, 0x58, 0xa9, 0x71, 0x92, 0xb4, 0x1c, 0xf6, 0xc7, 0x01, 0x1b, 0x0f, 0xf6, 0xa1, 0x1c, 0xbf, 0xf3, 0x50, 0x55, 0x46, 0x32, 0x2f, 0x0b, 0xef, 0x60, 0x97, 0xe4, 0x6b, 0x36, 0x49, 0x2b, 0x01, 0x6a, 0x45, 0x62, 0xe0, 0x92, 0xb6, 0x7c, 0x3f, 0xcc, 0xc7, 0x78, 0x0e, 0xa2, 0x74, 0xd9, 0x6d, 0x59, 0x58, 0x49, 0xf7, 0xe2, 0xa5, 0x6d, 0x79, 0xed, 0xcb, 0x32, 0xd7, 0x84, 0x04, 0x9f, 0xc1, 0x32, 0x4a, 0x5b, 0xee, 0xfc, 0x24, 0x19, 0x3a, 0x66, 0xe1, 0xca, 0xc4, 0xa1, 0x3a, 0x81, 0x1b, 0x90, 0x95, 0x83, 0xcc, 0x91, 0x0c, 0xf0, 0x8d, 0x4b, 0x10, 0x4d, 0xbd, 0xb8, 0xa6, 0xf2, 0xb2, 0x1f, 0xbc, 0x1d, 0xb1, 0x17, 0x5a, 0x1a, 0x23, 0x56, 0xa6, 0x3d, 0x3e, 0xea, 0x9d, 0xbb, 0x85, 0x37, 0xd2, 0xc6, 0x86, 0x27, 0x54, 0x3d, 0xf0, 0xd1, 0xf8, 0xfd, 0x8d, 0x57, 0xa1, 0x8b, 0x0d, 0xbd, 0x69, 0xb9, 0x20, 0xcb, 0x9b, 0x28, 0x6e, 0x3c, 0x07, 0xae, 0x44, 0xae, 0x2e, 0x1b, 0xee, 0xc0, 0x1c, 0xee, 0x6b, 0xa9, 0x88, 0xb5, 0xd1, 0xaf, 0xb9, 0x97, 0x90, 0xb1, 0xdd, 0x91, 0x06, 0x55, 0xc4, 0x3d, 0x7f, 0x2a, 0x3e, 0xd3, 0x75, 0x4b, 0xa4, 0x65, 0x16, 0xd2, 0x78, 0x70, 0x55, 0x59, 0xf5, 0x74, 0x16, 0x22, 0xa9, 0xab, 0xb5, 0xc8, 0xf2, 0x3f, 0xa9, 0x76, 0xa9, 0xd1, 0x46, 0x94, 0x8a, 0xde, 0x6b, 0xa6, 0x60, 0x8a, 0x35, 0xe4, 0xe0, 0xd3, 0x30, 0xe8, 0x2e, 0x96, 0xa2, 0xbe, 0x6c, 0x78, 0xad, 0x0c, 0xd4, 0xd8, 0x70, 0x4e, 0x57, 0xce, 0xa1, 0x46, };
22539 static const u8 ed25519_980_test_vectors_expected_sig[] = {
22540 	0x86, 0x99, 0x6a, 0x1b, 0x8e, 0x49, 0x5d, 0x42, 0x52, 0x77, 0xe9, 0x7c, 0xc0, 0x83, 0x05, 0x49, 0x34, 0x9b, 0xc2, 0xb6, 0xf3, 0xdc, 0xda, 0x60, 0xf3, 0xb7, 0xd3, 0x50, 0x1b, 0x8b, 0x50, 0xb5, 0xb4, 0x58, 0xcd, 0xa5, 0x8b, 0x43, 0x6e, 0x23, 0xc0, 0x2c, 0xd4, 0xa2, 0x2b, 0x23, 0x48, 0x13, 0xaa, 0x9b, 0xcc, 0x3c, 0x61, 0xf9, 0x83, 0xc0, 0xb7, 0xef, 0xec, 0xa0, 0xf1, 0xbe, 0xc2, 0x0d, };
22541 static const ec_test_case ed25519_980_test_case = {
22542 	.name = "EDDSA25519-SHA512/wei25519 980",
22543 	.ec_str_p = &wei25519_str_params,
22544 	.priv_key = ed25519_980_test_vectors_priv_key,
22545 	.priv_key_len = sizeof(ed25519_980_test_vectors_priv_key),
22546 	.nn_random = NULL,
22547 	.hash_type = SHA512,
22548 	.msg = (const char *)ed25519_980_test_vectors_message,
22549 	.msglen = sizeof(ed25519_980_test_vectors_message),
22550 	.sig_type = EDDSA25519,
22551 	.exp_sig = ed25519_980_test_vectors_expected_sig,
22552 	.exp_siglen = sizeof(ed25519_980_test_vectors_expected_sig),
22553 	.adata = NULL,
22554 	.adata_len = 0
22555 };
22556 
22557 /************************************************/
22558 static const u8 ed25519_981_test_vectors_priv_key[] = {
22559 	0x7b, 0x46, 0x9d, 0xf9, 0xc8, 0xf7, 0x84, 0x89, 0xab, 0x47, 0xcc, 0x70, 0xa8, 0x85, 0x03, 0xf1, 0xb8, 0xf3, 0xd9, 0x29, 0xc3, 0x3f, 0xea, 0xb1, 0xc5, 0x03, 0xf0, 0x96, 0x9a, 0x3a, 0xc3, 0x7b, };
22560 static const u8 ed25519_981_test_vectors_message[] = {
22561 	0x1c, 0x0f, 0xd7, 0x45, 0x0e, 0x29, 0x67, 0x5c, 0x93, 0x09, 0x16, 0x38, 0xc2, 0xac, 0x93, 0x3c, 0xa9, 0x97, 0x76, 0x6e, 0x38, 0x0e, 0xc3, 0x3a, 0x92, 0xb8, 0xa7, 0xe1, 0xa1, 0xed, 0x98, 0x21, 0xc7, 0x5f, 0xcc, 0xb5, 0xc5, 0xf3, 0x76, 0x0e, 0x76, 0xd0, 0xe8, 0x81, 0x03, 0x11, 0xdd, 0xc6, 0x24, 0xea, 0x87, 0x42, 0x13, 0x1c, 0x1c, 0x43, 0x08, 0xf4, 0x17, 0x8e, 0x04, 0xd0, 0x49, 0x60, 0x69, 0x3d, 0x84, 0x6c, 0x1f, 0x51, 0xd8, 0x77, 0x3b, 0x6d, 0xeb, 0x34, 0x43, 0xd8, 0x74, 0xb9, 0xe2, 0xde, 0x3b, 0x77, 0x78, 0x51, 0x85, 0x51, 0x8b, 0x2e, 0x9e, 0xe7, 0x36, 0xc6, 0x3a, 0x39, 0xc8, 0x21, 0x2c, 0xa8, 0x66, 0x9e, 0x16, 0x1d, 0x13, 0x1b, 0x1a, 0xb2, 0x26, 0x4f, 0xdd, 0x72, 0xdc, 0x56, 0x28, 0xb1, 0x1c, 0x06, 0xf2, 0xaf, 0x9f, 0x07, 0x89, 0x04, 0x7b, 0xdd, 0x4e, 0xbb, 0x5d, 0x55, 0x89, 0x9f, 0x74, 0xdc, 0x4e, 0x12, 0xe7, 0x97, 0x53, 0x63, 0xf6, 0x3a, 0x8d, 0xa7, 0x6b, 0x55, 0x85, 0xc1, 0x6b, 0xb6, 0xd5, 0x5b, 0x05, 0xfa, 0xde, 0x87, 0x13, 0xd1, 0x9c, 0xad, 0x1a, 0x21, 0x16, 0x40, 0x26, 0x26, 0x91, 0xaa, 0xc9, 0xb4, 0x37, 0xa9, 0xec, 0xf8, 0x9a, 0x92, 0x46, 0xec, 0xdb, 0xa1, 0xff, 0x0b, 0xea, 0x78, 0x49, 0x4c, 0xee, 0x15, 0x29, 0x62, 0x16, 0xea, 0x6b, 0xb8, 0x82, 0x47, 0x9d, 0x24, 0x37, 0xc9, 0x49, 0x4a, 0xc7, 0xfa, 0x4f, 0x30, 0x15, 0xd1, 0xd3, 0x14, 0x9d, 0x55, 0x64, 0xd7, 0xc1, 0x1a, 0x7e, 0x7b, 0x61, 0x4f, 0x7d, 0x3e, 0x9d, 0x45, 0x4f, 0x0a, 0x05, 0xb0, 0x40, 0xa1, 0xe0, 0x6f, 0xe7, 0x83, 0x7c, 0x2a, 0x9d, 0xa2, 0x79, 0x4d, 0x91, 0x8b, 0xff, 0xa9, 0xe6, 0x1a, 0x0c, 0x3f, 0x08, 0x9f, 0x6c, 0x9f, 0x7e, 0xea, 0xc5, 0x86, 0xe3, 0x4b, 0xf9, 0x44, 0x70, 0xd9, 0x13, 0xda, 0x41, 0x37, 0x1c, 0xac, 0xdf, 0xc7, 0xee, 0x8b, 0xd1, 0x13, 0x56, 0x55, 0x56, 0x69, 0x24, 0xea, 0xdf, 0x09, 0x6a, 0xc0, 0x30, 0xa6, 0x59, 0x02, 0xc1, 0x03, 0xb1, 0x72, 0xd1, 0x2e, 0x88, 0xf0, 0x53, 0xfc, 0x56, 0xee, 0x73, 0xf3, 0x18, 0x70, 0x81, 0x70, 0x83, 0xaf, 0xa8, 0x02, 0xf7, 0x66, 0x8b, 0x81, 0x5e, 0xe7, 0x90, 0xf7, 0xd4, 0x0b, 0x43, 0x7a, 0x2e, 0x6d, 0xb2, 0xf0, 0xfb, 0x26, 0x83, 0x6b, 0x4b, 0x23, 0x31, 0xeb, 0xa5, 0x55, 0x39, 0x61, 0x4c, 0x0f, 0xe1, 0x72, 0x40, 0x24, 0x2d, 0xd3, 0xaf, 0x73, 0x83, 0xbc, 0xff, 0x7d, 0x3f, 0x47, 0xd6, 0x54, 0x4b, 0x08, 0x72, 0x0c, 0x0a, 0x52, 0x44, 0x1f, 0x74, 0x11, 0x93, 0x5d, 0xd4, 0xa9, 0x52, 0xd3, 0x86, 0x51, 0xa8, 0x00, 0x05, 0xfa, 0x3e, 0xb0, 0xea, 0xec, 0xc7, 0x35, 0xd2, 0x90, 0xe8, 0xbd, 0x5e, 0x31, 0xb7, 0x40, 0x14, 0x0e, 0x13, 0x6b, 0x2c, 0x00, 0x25, 0x23, 0xd8, 0xeb, 0x2a, 0x0a, 0xb5, 0xbd, 0x68, 0x70, 0x02, 0xb3, 0xb9, 0x26, 0xf7, 0x5e, 0xb6, 0x90, 0xd1, 0xda, 0x73, 0xad, 0x23, 0x58, 0x92, 0xf3, 0xb2, 0x3a, 0x75, 0x6b, 0x60, 0x5a, 0x43, 0x7c, 0x00, 0xe0, 0x62, 0x13, 0x04, 0xe8, 0x10, 0xf9, 0x9e, 0x31, 0x4c, 0x4d, 0x63, 0xe3, 0x22, 0xd9, 0xb6, 0x98, 0x15, 0xf3, 0x82, 0xff, 0xa1, 0xec, 0x62, 0x80, 0xfc, 0x0e, 0x64, 0x1c, 0x8a, 0x6f, 0x6f, 0x7f, 0x61, 0x98, 0x5b, 0xd3, 0x56, 0x7e, 0x0f, 0x44, 0x0d, 0xe9, 0xf7, 0x62, 0x17, 0x15, 0xda, 0xcd, 0x07, 0x42, 0x8c, 0x00, 0x90, 0x15, 0x4d, 0x59, 0xce, 0x6d, 0xb4, 0x01, 0x69, 0xc6, 0x58, 0xac, 0x5b, 0xf4, 0x4b, 0x67, 0x67, 0x1f, 0xe1, 0x9e, 0x4b, 0x5b, 0x38, 0xaa, 0xd2, 0xd3, 0xd4, 0xe1, 0x90, 0xa5, 0x50, 0xaa, 0xd4, 0x18, 0x83, 0x52, 0xf7, 0x98, 0x1a, 0x6d, 0x88, 0x06, 0x25, 0x02, 0xdf, 0x86, 0x79, 0x13, 0x50, 0x39, 0x2d, 0x41, 0xce, 0xfa, 0xcb, 0x24, 0xe3, 0x7b, 0xc7, 0x00, 0xcb, 0x02, 0x91, 0x90, 0xc3, 0xb1, 0x82, 0x14, 0x77, 0xe1, 0x17, 0xd5, 0xa4, 0x62, 0xfb, 0x3e, 0x79, 0x13, 0x3b, 0x10, 0x73, 0x59, 0x89, 0x66, 0xf5, 0x2b, 0x63, 0x25, 0x6d, 0xbf, 0x32, 0x6a, 0xce, 0x14, 0xdb, 0x0c, 0x80, 0x05, 0x8c, 0xf0, 0x0d, 0x68, 0x9a, 0x0a, 0x58, 0x11, 0x1a, 0xf1, 0x69, 0x27, 0x44, 0xbf, 0x79, 0x1b, 0xcb, 0xb4, 0x27, 0xa3, 0x72, 0x24, 0x6e, 0x95, 0x01, 0xa8, 0x5c, 0xd5, 0x20, 0xc6, 0x1a, 0x1e, 0x59, 0xee, 0x18, 0x0e, 0x8c, 0x97, 0x19, 0x2f, 0x60, 0xfa, 0x5d, 0x3a, 0xb0, 0x5d, 0xf8, 0xd8, 0x55, 0x1c, 0x1a, 0xc6, 0xca, 0x0a, 0x9a, 0x01, 0x2f, 0xfe, 0xce, 0xb3, 0xc1, 0xf5, 0x21, 0x41, 0x1e, 0xdb, 0x65, 0x09, 0xbc, 0x27, 0x8a, 0x65, 0x1e, 0x12, 0x9e, 0x96, 0xb0, 0xad, 0xc7, 0xae, 0xd7, 0x07, 0x22, 0x1c, 0xae, 0xac, 0x22, 0x98, 0x84, 0x41, 0x3d, 0xaa, 0x10, 0x59, 0x5d, 0x22, 0xd1, 0xdb, 0x70, 0x82, 0x12, 0x5f, 0x4f, 0x96, 0x95, 0x00, 0xa1, 0xd4, 0x8d, 0xac, 0xda, 0xe8, 0x0f, 0x40, 0x29, 0xc1, 0x63, 0xdc, 0xd7, 0x9d, 0xdc, 0x64, 0x68, 0xfc, 0xda, 0x16, 0x37, 0xb8, 0x7d, 0xdc, 0xf2, 0xa3, 0xd9, 0xb4, 0xd2, 0x99, 0xa0, 0xe5, 0x39, 0x4d, 0xf9, 0x0e, 0xd0, 0x3b, 0x62, 0x13, 0x7b, 0xa6, 0x7b, 0x9f, 0xea, 0x8a, 0xe1, 0xf0, 0xd2, 0x2f, 0x91, 0xc6, 0x3a, 0x24, 0xb5, 0x93, 0x4f, 0x74, 0xc2, 0x65, 0xc4, 0x3f, 0x1b, 0x92, 0x3d, 0xb9, 0x80, 0xad, 0xfc, 0xee, 0x83, 0x13, 0xda, 0x52, 0x01, 0x76, 0x73, 0x0e, 0xf9, 0x73, 0x6b, 0x27, 0xe6, 0xba, 0x32, 0xd1, 0x7e, 0xa6, 0x9d, 0xca, 0xc6, 0xf4, 0xa0, 0x16, 0xed, 0xfe, 0x2d, 0xb5, 0xa5, 0xbb, 0x3b, 0x64, 0x93, 0x2f, 0x70, 0x11, 0xf1, 0xc4, 0x53, 0xbb, 0xe8, 0x8b, 0xba, 0xc8, 0xc7, 0x03, 0x5f, 0x93, 0xfe, 0x39, 0xb5, 0x81, 0xfc, 0xaa, 0x7a, 0xaf, 0x08, 0x2f, 0xbe, 0xd0, 0x04, 0xfd, 0x1f, 0xd5, 0xa4, 0xe2, 0xd9, 0xc1, 0x97, 0x16, 0x60, 0x4b, 0x19, 0xce, 0x19, 0x9e, 0x21, 0x69, 0xa7, 0xbe, 0x51, 0x8d, 0x5f, 0xad, 0xd2, 0xac, 0x31, 0xb9, 0x54, 0x78, 0x08, 0x2a, 0xc9, 0x13, 0x06, 0x00, 0x8d, 0xe4, 0xec, 0x0e, 0xf4, 0xc9, 0xf9, 0xd6, 0xf9, 0x6d, 0x2f, 0x66, 0xd6, 0x2f, 0xaf, 0xc2, 0x19, 0x40, 0x82, 0x80, 0x8a, 0xf0, 0xd6, 0x7b, 0x9f, 0xba, 0x0d, 0x18, 0x9b, 0x05, 0x5f, 0x06, 0x1c, 0xca, 0xc2, 0x4b, 0x27, 0x61, 0x0b, 0xfb, 0xd5, 0xa2, 0x23, 0x2d, 0xd6, 0xf3, 0xc8, 0x90, 0xa9, 0xb1, 0x26, 0x64, 0x71, 0xb3, 0x22, 0xe9, 0xe1, 0xbf, 0x97, 0x75, 0x7b, 0xef, 0x72, 0xab, 0xce, 0xe9, 0x3b, 0x05, 0x1f, 0xc9, 0x23, 0xcf, 0xd4, 0xe7, 0x23, 0xbe, 0x3e, 0x17, 0x14, 0x3f, 0x38, 0xee, 0xbb, 0x90, 0x0b, 0x5b, 0xbc, 0xf7, 0x30, 0x47, 0x32, 0xb9, 0xc0, 0xa1, 0xc5, 0xfc, 0x95, 0x09, 0xa6, 0x93, 0x58, 0x0a, 0xe7, 0x3a, 0x4c, 0xdf, 0xc5, 0xfb, 0xf2, 0x0c, 0xe8, 0x1e, 0xbc, 0x83, 0x5c, 0x6c, 0x90, 0x9d, 0x83, 0x11, 0x41, 0xb1, 0x94, 0xf6, };
22562 static const u8 ed25519_981_test_vectors_expected_sig[] = {
22563 	0x18, 0xfa, 0xf8, 0x2d, 0x08, 0xe1, 0x06, 0x8e, 0x9f, 0x98, 0x3d, 0x81, 0x2f, 0x05, 0xfd, 0xb6, 0x92, 0x9d, 0x27, 0x23, 0xdb, 0x1f, 0x77, 0xc4, 0x5a, 0x74, 0xbb, 0x09, 0xcf, 0xf2, 0x77, 0x73, 0xb5, 0x4c, 0xe8, 0xf4, 0x3b, 0x30, 0x15, 0x41, 0x91, 0x12, 0xe7, 0x25, 0xea, 0x7a, 0xcd, 0xa4, 0xb2, 0x3b, 0x81, 0x20, 0xe7, 0xb0, 0xcf, 0x42, 0x01, 0x53, 0xe5, 0xb0, 0x3d, 0xd0, 0x61, 0x09, };
22564 static const ec_test_case ed25519_981_test_case = {
22565 	.name = "EDDSA25519-SHA512/wei25519 981",
22566 	.ec_str_p = &wei25519_str_params,
22567 	.priv_key = ed25519_981_test_vectors_priv_key,
22568 	.priv_key_len = sizeof(ed25519_981_test_vectors_priv_key),
22569 	.nn_random = NULL,
22570 	.hash_type = SHA512,
22571 	.msg = (const char *)ed25519_981_test_vectors_message,
22572 	.msglen = sizeof(ed25519_981_test_vectors_message),
22573 	.sig_type = EDDSA25519,
22574 	.exp_sig = ed25519_981_test_vectors_expected_sig,
22575 	.exp_siglen = sizeof(ed25519_981_test_vectors_expected_sig),
22576 	.adata = NULL,
22577 	.adata_len = 0
22578 };
22579 
22580 /************************************************/
22581 static const u8 ed25519_982_test_vectors_priv_key[] = {
22582 	0xdf, 0xec, 0xde, 0x7a, 0x56, 0xa1, 0x8c, 0x1f, 0x19, 0xd8, 0x0a, 0x19, 0xa4, 0xf1, 0xda, 0xdd, 0xd0, 0xbc, 0xec, 0xb0, 0x1e, 0xec, 0xad, 0x6d, 0xfc, 0xa0, 0xf9, 0x57, 0xa9, 0x14, 0xed, 0x7a, };
22583 static const u8 ed25519_982_test_vectors_message[] = {
22584 	0xae, 0x6e, 0x8f, 0xf6, 0x5c, 0xcd, 0xe6, 0xf2, 0x64, 0x84, 0x95, 0x08, 0x26, 0xb4, 0x36, 0x23, 0x05, 0x8a, 0x5e, 0xfe, 0x02, 0x0b, 0xb1, 0x9b, 0x7d, 0x8b, 0x4e, 0x25, 0x76, 0x8b, 0x69, 0x27, 0x34, 0xfe, 0x07, 0xc9, 0x13, 0xb9, 0xe8, 0x81, 0x26, 0xbe, 0xcb, 0xf1, 0x4a, 0x0f, 0xd0, 0x20, 0x5b, 0x39, 0xfc, 0xc2, 0xae, 0xc3, 0x73, 0xf8, 0xc1, 0x84, 0xc6, 0xa9, 0xbb, 0xbb, 0x84, 0x44, 0x9a, 0x7c, 0xa3, 0xb9, 0x20, 0xad, 0xa0, 0x88, 0x01, 0xdf, 0xc6, 0x6f, 0xf1, 0x9a, 0xeb, 0x92, 0xf2, 0x55, 0x53, 0x99, 0xa4, 0x30, 0x27, 0x7a, 0xe2, 0x2d, 0x23, 0x75, 0x4e, 0xaa, 0xce, 0x3c, 0x73, 0x84, 0x67, 0x97, 0x53, 0x6d, 0xd7, 0x1a, 0x56, 0xf4, 0xb5, 0x84, 0x2c, 0x0f, 0x41, 0x0d, 0x19, 0x89, 0xac, 0xac, 0x5d, 0x80, 0x5d, 0x26, 0x57, 0x2c, 0x0f, 0x3a, 0x64, 0xdd, 0x20, 0x71, 0x66, 0x22, 0x12, 0xd5, 0x2f, 0xe9, 0x9e, 0x59, 0xd9, 0x66, 0x04, 0x77, 0x77, 0xf9, 0x03, 0x0f, 0xa4, 0xfd, 0x2e, 0xe7, 0x4b, 0x7a, 0x7c, 0x9f, 0x7c, 0x34, 0xa6, 0xdc, 0x7e, 0x03, 0x59, 0x3a, 0x13, 0xd6, 0x4c, 0xe6, 0x24, 0x53, 0xee, 0x3c, 0xa3, 0x0d, 0x84, 0x67, 0x28, 0x39, 0xf1, 0x9f, 0x1c, 0x15, 0xd0, 0xc4, 0x5d, 0x27, 0x55, 0xbb, 0x39, 0x4a, 0xcf, 0x4d, 0xcb, 0x7f, 0x7f, 0x07, 0x11, 0xac, 0x40, 0xea, 0x46, 0x61, 0x2e, 0xa3, 0x7a, 0x76, 0x07, 0xad, 0x32, 0xe8, 0x18, 0x26, 0x5f, 0xab, 0x19, 0x33, 0xf5, 0x09, 0x4e, 0x2d, 0x03, 0xbc, 0xfa, 0xa5, 0xf6, 0x16, 0x67, 0xf3, 0xb3, 0x7f, 0x00, 0xc4, 0xc5, 0x8d, 0x9b, 0x41, 0xb9, 0xaf, 0x39, 0x00, 0x48, 0x2b, 0x0f, 0xfb, 0x4f, 0xa4, 0x37, 0x6a, 0xa0, 0x40, 0x00, 0x9d, 0xec, 0x2f, 0x45, 0x25, 0x79, 0x9c, 0xb0, 0x05, 0xf3, 0x9d, 0x74, 0xcb, 0x2d, 0x8d, 0xce, 0x8c, 0x20, 0xc2, 0xc3, 0xf5, 0x40, 0x97, 0x03, 0xaf, 0x15, 0x6c, 0xfb, 0xa2, 0x8a, 0x9d, 0x91, 0x64, 0x39, 0xcb, 0x29, 0xf8, 0x3d, 0x24, 0x29, 0xce, 0x62, 0x23, 0x51, 0x9e, 0x75, 0xe1, 0x5c, 0x7c, 0x7f, 0xa2, 0x15, 0x11, 0x9e, 0x07, 0x3f, 0xa7, 0x97, 0x4d, 0xb1, 0x4f, 0x7a, 0x01, 0x09, 0x3f, 0xaa, 0x94, 0xad, 0x52, 0xab, 0x1e, 0xad, 0xce, 0x1a, 0x89, 0x36, 0x6c, 0xa1, 0x3a, 0xdb, 0x89, 0x06, 0x64, 0x38, 0xa2, 0xbe, 0xb7, 0x30, 0x34, 0x17, 0x0a, 0xa4, 0x2d, 0x9c, 0x2d, 0xdb, 0x97, 0xc1, 0x4a, 0x17, 0xc3, 0x09, 0x43, 0x76, 0xd2, 0xa3, 0xff, 0xd8, 0x09, 0x5f, 0xc4, 0x05, 0x3d, 0x91, 0xd1, 0x6e, 0x06, 0xd2, 0x76, 0x93, 0xa1, 0x31, 0x0f, 0x01, 0xa7, 0x51, 0x11, 0xcf, 0xed, 0xa8, 0x92, 0xc3, 0x97, 0x2a, 0x13, 0x3a, 0x09, 0xad, 0xda, 0xa8, 0xf7, 0x41, 0x45, 0xf8, 0x86, 0x81, 0xb6, 0xd2, 0x77, 0x96, 0x4b, 0xfe, 0x38, 0x55, 0x1a, 0x2c, 0x61, 0x9f, 0xa3, 0xca, 0xe3, 0x94, 0xac, 0xb2, 0x9c, 0x94, 0x10, 0xb4, 0x5e, 0x10, 0x1b, 0x17, 0x40, 0xe8, 0xb2, 0xaa, 0x6f, 0xeb, 0xc3, 0xa4, 0x5d, 0xad, 0xb9, 0xd9, 0x58, 0x9d, 0x59, 0x7e, 0x57, 0xcd, 0x94, 0x7b, 0x68, 0x4c, 0xc3, 0x55, 0x24, 0x6c, 0xe6, 0xc3, 0x26, 0xdd, 0x98, 0xcf, 0x92, 0xb6, 0xee, 0xa3, 0xba, 0x5a, 0xb0, 0x37, 0x00, 0x62, 0x26, 0x36, 0x32, 0x4d, 0xc1, 0x22, 0x2c, 0xd7, 0x48, 0xfa, 0x07, 0xbf, 0xd3, 0x9a, 0x1e, 0x06, 0x98, 0x09, 0xe5, 0x67, 0x14, 0x1a, 0x61, 0x3e, 0x2e, 0x8b, 0xe9, 0xdd, 0x39, 0x8a, 0xb6, 0xbe, 0xaa, 0xfd, 0x85, 0xff, 0x36, 0x28, 0xee, 0x2a, 0xa3, 0x2d, 0x0a, 0x57, 0xbb, 0xac, 0xf9, 0x56, 0x19, 0x0b, 0x5c, 0x42, 0x42, 0xeb, 0x5b, 0x85, 0x87, 0xd2, 0xfd, 0xcb, 0x07, 0x41, 0xb9, 0x41, 0x6a, 0x05, 0xf5, 0xfe, 0xcb, 0x1f, 0xb2, 0xd6, 0x47, 0x88, 0xdc, 0xe7, 0x83, 0xc1, 0xf6, 0x3e, 0x60, 0x64, 0x1f, 0xce, 0x5e, 0x1d, 0x2b, 0x18, 0xa9, 0x50, 0x0c, 0xd6, 0xa1, 0xfd, 0x33, 0x5c, 0xc1, 0xdb, 0x46, 0xef, 0x04, 0x75, 0x2b, 0x2d, 0x22, 0x07, 0x2e, 0x6d, 0xfc, 0xfc, 0xfa, 0x56, 0x9b, 0xb2, 0x5e, 0x45, 0x7a, 0xfe, 0xb6, 0x3a, 0x4f, 0xbe, 0xdc, 0x29, 0x3a, 0xd9, 0xd1, 0xab, 0xa4, 0xe3, 0x94, 0xaa, 0x10, 0x97, 0xe1, 0x2b, 0x0f, 0xc9, 0x0c, 0x89, 0xf7, 0x6d, 0xf0, 0xd6, 0x44, 0x1f, 0xa9, 0x98, 0x08, 0xb6, 0x0b, 0xe0, 0x7d, 0xfc, 0xc7, 0xf9, 0x01, 0x0b, 0xbf, 0x90, 0x33, 0x55, 0x6d, 0x5e, 0xe2, 0xd4, 0x48, 0x93, 0x7b, 0x78, 0x34, 0x93, 0x92, 0x0f, 0x68, 0x1e, 0x4d, 0xa7, 0x08, 0x67, 0x10, 0x97, 0xe1, 0x99, 0x48, 0x1b, 0x8e, 0xf0, 0xe0, 0x15, 0x0d, 0x7c, 0x28, 0x51, 0xdf, 0x44, 0xc5, 0x45, 0x12, 0x2f, 0x9b, 0x0e, 0x5b, 0xa2, 0xee, 0xff, 0x2d, 0x98, 0x8d, 0x56, 0xd9, 0xbb, 0xb5, 0x5d, 0x98, 0x96, 0x11, 0x11, 0x51, 0xa4, 0x36, 0xaf, 0x06, 0x5e, 0x0c, 0xad, 0x17, 0x8a, 0x2c, 0x9f, 0xa8, 0xf6, 0x97, 0x4e, 0xcd, 0xf0, 0x9a, 0xdf, 0x01, 0x33, 0x00, 0xcf, 0xfe, 0xda, 0xf4, 0xb8, 0x79, 0x1b, 0x46, 0x7b, 0xa7, 0x93, 0x3a, 0xda, 0x5d, 0x63, 0x2d, 0xb4, 0x4e, 0xd6, 0xdc, 0xf2, 0xaa, 0x64, 0x89, 0x17, 0xbe, 0x63, 0x37, 0xd2, 0xe2, 0xd2, 0x06, 0x85, 0x6d, 0x08, 0xf9, 0xee, 0x7b, 0x5e, 0x2f, 0x14, 0xdd, 0xc6, 0xd3, 0xac, 0x42, 0x92, 0x15, 0xa8, 0x79, 0x23, 0xad, 0x32, 0xd5, 0xdc, 0xfe, 0xe3, 0x68, 0x63, 0x16, 0xdd, 0xd1, 0xb2, 0x7b, 0xb1, 0x93, 0xa5, 0xfc, 0x05, 0xc8, 0x93, 0xa9, 0x39, 0xa5, 0xb9, 0x89, 0x87, 0x36, 0x6c, 0x82, 0x9e, 0x39, 0x2f, 0x48, 0x5e, 0xa1, 0x5e, 0x22, 0xcd, 0x8f, 0x85, 0x7a, 0x13, 0x4a, 0xfa, 0x98, 0xf3, 0x72, 0x15, 0x57, 0x6d, 0xdc, 0x5a, 0xab, 0x4f, 0x2d, 0x10, 0xca, 0xaf, 0x05, 0x00, 0x59, 0xa3, 0x35, 0xf2, 0x4b, 0xcd, 0xcb, 0xac, 0x81, 0x9f, 0x66, 0xdb, 0x07, 0xaa, 0xbd, 0xfb, 0x76, 0x27, 0x1d, 0x17, 0xbc, 0xe2, 0x2c, 0xba, 0x46, 0x3a, 0x80, 0xaa, 0x89, 0x2d, 0x0d, 0x8e, 0x05, 0x5f, 0x94, 0x8d, 0xf7, 0xf6, 0xe6, 0xc3, 0x00, 0xda, 0xef, 0xfd, 0x3a, 0x23, 0x6d, 0xdd, 0xcf, 0x23, 0x8f, 0xe1, 0x06, 0x66, 0xa5, 0x7c, 0x6e, 0x3a, 0xe7, 0xe3, 0x67, 0x3d, 0x35, 0x57, 0x8f, 0x8b, 0x8e, 0xa6, 0x9d, 0x3c, 0x08, 0xe0, 0x14, 0x0a, 0xfd, 0x3e, 0xe0, 0x30, 0xb2, 0x2a, 0x37, 0x21, 0x60, 0xf9, 0x08, 0xa3, 0x78, 0xf8, 0x10, 0x1b, 0x5f, 0x59, 0x69, 0xfe, 0xa3, 0x10, 0xee, 0xd3, 0x7a, 0x00, 0xd9, 0x73, 0x02, 0xd5, 0xc2, 0xdb, 0xe8, 0xcc, 0x60, 0x00, 0x75, 0xdc, 0xcd, 0x33, 0xad, 0x63, 0xd2, 0x65, 0xaa, 0xf6, 0x0e, 0x24, 0x1c, 0xe3, 0x11, 0xbe, 0xd7, 0xdd, 0x5e, 0x27, 0x45, 0x24, 0x1a, 0xe0, 0x2a, 0xe5, 0x32, 0xd1, 0x5c, 0x18, 0x88, 0x6e, 0x81, 0x81, 0x38, 0x75, 0x1a, 0xfc, 0x51, 0x85, 0x0e, 0x50, 0x6c, 0x6d, 0x31, 0xa8, 0xee, 0xf4, 0x51, 0xad, 0xfd, 0x4b, 0x3d, 0x26, 0x6b, 0x41, 0x5a, 0x7e, };
22585 static const u8 ed25519_982_test_vectors_expected_sig[] = {
22586 	0xb4, 0xfd, 0xe5, 0x5b, 0x91, 0x6c, 0xf6, 0x00, 0x68, 0xf1, 0x9b, 0x25, 0x35, 0x1c, 0x14, 0x10, 0xdc, 0xf6, 0x6b, 0xfc, 0x40, 0xf9, 0x6d, 0x1b, 0xa2, 0x36, 0x8b, 0xc2, 0xb9, 0x11, 0x5a, 0xaa, 0x5b, 0x2d, 0x1c, 0xf0, 0xe3, 0xdf, 0xca, 0x02, 0xac, 0x90, 0x2a, 0x94, 0x3e, 0x24, 0x89, 0xa5, 0x68, 0x1b, 0xba, 0xfe, 0xd3, 0x9c, 0x6e, 0x33, 0x21, 0x1a, 0x9c, 0xb2, 0xff, 0x6e, 0x54, 0x09, };
22587 static const ec_test_case ed25519_982_test_case = {
22588 	.name = "EDDSA25519-SHA512/wei25519 982",
22589 	.ec_str_p = &wei25519_str_params,
22590 	.priv_key = ed25519_982_test_vectors_priv_key,
22591 	.priv_key_len = sizeof(ed25519_982_test_vectors_priv_key),
22592 	.nn_random = NULL,
22593 	.hash_type = SHA512,
22594 	.msg = (const char *)ed25519_982_test_vectors_message,
22595 	.msglen = sizeof(ed25519_982_test_vectors_message),
22596 	.sig_type = EDDSA25519,
22597 	.exp_sig = ed25519_982_test_vectors_expected_sig,
22598 	.exp_siglen = sizeof(ed25519_982_test_vectors_expected_sig),
22599 	.adata = NULL,
22600 	.adata_len = 0
22601 };
22602 
22603 /************************************************/
22604 static const u8 ed25519_983_test_vectors_priv_key[] = {
22605 	0x07, 0x82, 0x8c, 0x58, 0x0e, 0xbf, 0x9e, 0x1d, 0x82, 0x5a, 0x59, 0xc3, 0xbf, 0x35, 0xf0, 0x72, 0xae, 0x12, 0x33, 0x55, 0xbd, 0xcc, 0x24, 0x9e, 0xec, 0x7f, 0x2f, 0xc5, 0x75, 0x5e, 0x29, 0xb5, };
22606 static const u8 ed25519_983_test_vectors_message[] = {
22607 	0x0e, 0xda, 0xd5, 0xca, 0xe6, 0xed, 0x98, 0x43, 0xe9, 0x1c, 0x50, 0xd9, 0x34, 0xcf, 0x55, 0xdd, 0x65, 0x8f, 0x3d, 0x25, 0x20, 0x39, 0xcd, 0x6c, 0x75, 0xbe, 0x4f, 0x6b, 0x86, 0x6f, 0xb7, 0x5f, 0x35, 0xc8, 0xf9, 0x8f, 0x17, 0x21, 0xd7, 0xe6, 0xd9, 0xd9, 0x8a, 0x22, 0xe0, 0xb4, 0x93, 0x4d, 0xcc, 0x12, 0x92, 0x61, 0xbf, 0x67, 0x23, 0xb2, 0xfa, 0x7a, 0x99, 0x5e, 0x35, 0xc4, 0xbd, 0x79, 0xc5, 0x81, 0x6a, 0x32, 0x16, 0x07, 0xd9, 0xdc, 0xce, 0x39, 0xfe, 0xfa, 0x1d, 0x55, 0xde, 0x4e, 0x76, 0x17, 0x54, 0x8e, 0xc3, 0x85, 0xc3, 0xde, 0x01, 0xe3, 0x66, 0xbf, 0x50, 0xc4, 0x57, 0xa5, 0x55, 0xe9, 0x32, 0x07, 0x0e, 0x2a, 0x5a, 0x01, 0x97, 0xb7, 0x9e, 0xfb, 0xe7, 0x00, 0x6f, 0x0c, 0xec, 0x78, 0xb6, 0x0e, 0xbb, 0x8f, 0xa8, 0x78, 0x1d, 0x8e, 0xb7, 0x32, 0x6e, 0xdc, 0x30, 0xe6, 0x2d, 0x32, 0x97, 0xa1, 0xe0, 0xa1, 0x11, 0x71, 0x08, 0xc4, 0x6e, 0xe5, 0xdb, 0xef, 0xc6, 0x59, 0x42, 0x89, 0x33, 0x5e, 0x78, 0x0d, 0x55, 0xa0, 0x84, 0xf5, 0x52, 0xda, 0x3f, 0x36, 0xd3, 0xc4, 0xc6, 0x17, 0x8b, 0xa7, 0x4d, 0x4d, 0xec, 0xef, 0xc5, 0xa3, 0xb8, 0xc4, 0x7c, 0x16, 0xf5, 0x34, 0xbd, 0xb6, 0x08, 0x95, 0xd3, 0xd5, 0x4c, 0xd2, 0xbb, 0x26, 0x6b, 0x39, 0x9e, 0x4d, 0x4f, 0xb4, 0x8d, 0x7a, 0x8c, 0xde, 0x17, 0xf4, 0x24, 0x12, 0x56, 0x07, 0x37, 0xd3, 0xc0, 0x6e, 0x29, 0xdf, 0x52, 0x4d, 0x0c, 0xbd, 0x30, 0x93, 0xef, 0xca, 0x1c, 0x8f, 0xed, 0xca, 0xa1, 0x24, 0xab, 0xb2, 0x7a, 0xbd, 0xac, 0x6a, 0x29, 0xe0, 0xe8, 0x24, 0x6a, 0xbd, 0x6f, 0x5f, 0x53, 0x19, 0x50, 0x03, 0x7f, 0x76, 0x32, 0x3a, 0xa5, 0x6c, 0xc3, 0xfe, 0xfa, 0x60, 0x30, 0x41, 0xd5, 0x5f, 0x19, 0x29, 0xe2, 0x77, 0xe7, 0x2c, 0xda, 0x1f, 0x96, 0x54, 0x1d, 0x2a, 0xf3, 0xe9, 0x0c, 0x0f, 0x0e, 0x28, 0xbe, 0x19, 0x6d, 0x8f, 0x69, 0x21, 0xf3, 0xcd, 0x57, 0xa7, 0x92, 0x6b, 0x86, 0x0a, 0xa1, 0xbc, 0x40, 0x35, 0x76, 0x89, 0x2a, 0x96, 0xb9, 0x31, 0x90, 0xae, 0x38, 0x3f, 0x63, 0x1b, 0x72, 0x80, 0x26, 0x58, 0xb2, 0xe8, 0x45, 0x1d, 0x52, 0xa2, 0xf4, 0x5d, 0xb4, 0xf8, 0xbc, 0x3b, 0x0e, 0x4e, 0x50, 0xb6, 0xd6, 0x03, 0xa5, 0xbd, 0xd3, 0x0c, 0x23, 0x42, 0x00, 0xad, 0x7d, 0xeb, 0xb9, 0x63, 0xf5, 0x8a, 0x4f, 0xa2, 0x03, 0x30, 0xb3, 0x69, 0x64, 0x49, 0x44, 0x5a, 0xa3, 0x71, 0x82, 0x48, 0x42, 0xfb, 0xf3, 0x26, 0xd9, 0x01, 0xdf, 0xe3, 0xbe, 0x04, 0x54, 0x52, 0xa3, 0x74, 0x0d, 0xd1, 0x60, 0xe7, 0x27, 0x33, 0xf6, 0xe2, 0x73, 0x35, 0x25, 0xa2, 0x9a, 0x86, 0x5f, 0x6f, 0x50, 0xd5, 0x3b, 0xf7, 0x19, 0x1c, 0x59, 0x9c, 0x87, 0x6f, 0x5c, 0x9c, 0xa1, 0xe3, 0xfa, 0xd7, 0x96, 0x06, 0x48, 0xe0, 0xd4, 0x71, 0xf7, 0xd5, 0xc0, 0x1c, 0x67, 0x3f, 0x42, 0xd6, 0x59, 0xbc, 0x3d, 0x98, 0xdb, 0xf0, 0x7d, 0x8f, 0xeb, 0xfb, 0x99, 0x5d, 0x17, 0xf9, 0xa0, 0x2c, 0xd6, 0xc3, 0x9f, 0x2d, 0xdc, 0xd0, 0xf1, 0xd2, 0x22, 0xb9, 0xe1, 0x1f, 0x2d, 0xd7, 0xd3, 0xc7, 0x51, 0x82, 0x24, 0xbb, 0x6b, 0xfb, 0x8b, 0x7c, 0x58, 0xfe, 0x8a, 0xc1, 0x05, 0x40, 0x59, 0x03, 0xa1, 0xb9, 0xda, 0x75, 0x16, 0x71, 0x5b, 0x7a, 0xfc, 0x38, 0xa5, 0x55, 0xe6, 0xbb, 0xcd, 0xba, 0xd4, 0x6e, 0x34, 0xe5, 0x76, 0xfe, 0xa3, 0x4c, 0xe3, 0x57, 0x34, 0xed, 0x20, 0xaf, 0x5d, 0x88, 0xee, 0xb1, 0x04, 0x7a, 0x26, 0x60, 0x64, 0x8b, 0xbb, 0x11, 0x3a, 0xd9, 0xdb, 0x8c, 0x53, 0xed, 0xb6, 0xed, 0x98, 0x71, 0xa1, 0xe4, 0x4c, 0x9e, 0xd2, 0xdf, 0x56, 0x56, 0xfb, 0x2b, 0x28, 0x06, 0xec, 0xf0, 0x3b, 0x1e, 0xca, 0x9e, 0xab, 0x50, 0xa6, 0xea, 0xab, 0x55, 0xb9, 0x33, 0xb2, 0xdd, 0x1f, 0x21, 0xd4, 0x50, 0xde, 0x9d, 0x5c, 0xb2, 0x23, 0x2f, 0x07, 0xa3, 0x92, 0x08, 0x1b, 0x0b, 0x4b, 0x88, 0x5d, 0x54, 0x78, 0x9e, 0x2f, 0x75, 0xbf, 0x2c, 0x4c, 0xda, 0xd8, 0x78, 0x98, 0x9b, 0x1d, 0x6d, 0xab, 0xd9, 0xed, 0x23, 0xc7, 0xc5, 0xb0, 0x35, 0x6a, 0x7d, 0x9e, 0x73, 0x35, 0x29, 0x0d, 0x7c, 0x85, 0xb9, 0x66, 0xe8, 0x01, 0x84, 0xbd, 0x07, 0x99, 0x86, 0x02, 0x88, 0x6d, 0x70, 0x76, 0x19, 0x35, 0x65, 0xc8, 0x1c, 0xcc, 0xda, 0x4c, 0xc7, 0xd3, 0x3c, 0x85, 0xd9, 0x05, 0xb1, 0xbe, 0xb6, 0xe8, 0xe7, 0x41, 0x8e, 0x8a, 0xca, 0xed, 0xf0, 0xd9, 0xa3, 0x2a, 0x7d, 0x29, 0xd0, 0x7c, 0xf4, 0x4d, 0x31, 0x19, 0xd4, 0xe7, 0x89, 0x68, 0x20, 0xb7, 0x7d, 0xe6, 0x4b, 0x65, 0x5e, 0x4f, 0x14, 0x88, 0x00, 0x43, 0x4a, 0xf7, 0xbd, 0xb2, 0xa5, 0x6b, 0x25, 0xeb, 0x94, 0xea, 0x39, 0xf2, 0x16, 0x95, 0x96, 0xbb, 0x2b, 0x11, 0x76, 0x1f, 0x08, 0x2b, 0xae, 0xc0, 0x88, 0x85, 0xf4, 0xa0, 0xeb, 0x6c, 0x95, 0x76, 0x71, 0x35, 0xa7, 0xf7, 0xcd, 0x72, 0xe7, 0x43, 0xd2, 0xdf, 0xf1, 0x44, 0xdd, 0x8b, 0xaf, 0xb1, 0xb3, 0x18, 0x00, 0x6e, 0x58, 0x76, 0xf8, 0xe2, 0xcb, 0x44, 0xaa, 0x58, 0x8f, 0x90, 0x62, 0x66, 0xac, 0x67, 0x11, 0x9c, 0x17, 0xf5, 0xde, 0x11, 0x4e, 0x72, 0xe4, 0x2a, 0x1f, 0xb3, 0x99, 0x44, 0x32, 0x1a, 0x11, 0x1f, 0xa7, 0x95, 0xff, 0x70, 0x17, 0xf2, 0xfb, 0x8c, 0xaf, 0x48, 0x2f, 0x55, 0xd7, 0x7a, 0x80, 0x85, 0x54, 0x28, 0xde, 0xd7, 0xec, 0x20, 0xac, 0xec, 0xca, 0x83, 0xf8, 0xd1, 0xeb, 0x13, 0x7b, 0x58, 0x8c, 0xcb, 0x74, 0x5c, 0x10, 0x5f, 0x2b, 0x2c, 0xa4, 0x1c, 0x3a, 0x9f, 0x49, 0xd3, 0xc6, 0xe9, 0xd7, 0xc6, 0x48, 0xb0, 0x03, 0xb9, 0x70, 0x7c, 0x90, 0x64, 0x62, 0xed, 0xad, 0x61, 0x7a, 0x8c, 0xfb, 0xf9, 0xbc, 0xc6, 0xc5, 0xfb, 0x6f, 0xa9, 0x84, 0x32, 0x5d, 0x65, 0x82, 0xe2, 0x8f, 0x62, 0x00, 0x53, 0x83, 0xf3, 0x38, 0xdf, 0x5b, 0x38, 0xfa, 0x9d, 0x19, 0xc2, 0x2a, 0x2a, 0x7e, 0xa1, 0xd6, 0x8a, 0x92, 0xd1, 0xd9, 0x3b, 0x7f, 0xb0, 0xb8, 0xf3, 0x3b, 0xc8, 0x76, 0x0f, 0x28, 0xae, 0xb1, 0x43, 0x9a, 0x8b, 0x07, 0xf3, 0xda, 0x58, 0xdd, 0xb1, 0x55, 0xb4, 0x98, 0xcb, 0x09, 0xc7, 0x5a, 0x55, 0x96, 0x83, 0x8a, 0x65, 0x01, 0x3e, 0x24, 0xd5, 0x64, 0x0d, 0x08, 0x42, 0xa7, 0x69, 0x93, 0x22, 0xcf, 0x3f, 0xfc, 0xb5, 0x70, 0x3f, 0x41, 0x4f, 0xfd, 0x16, 0x88, 0x60, 0xba, 0xd3, 0xe3, 0x08, 0xb2, 0xb5, 0xbf, 0x3c, 0xdf, 0x7f, 0x36, 0x3b, 0xf9, 0xaa, 0xf4, 0xb3, 0xbc, 0x42, 0x4c, 0x14, 0x6c, 0x6f, 0x54, 0x21, 0x43, 0x0f, 0x9f, 0x47, 0x6a, 0xa3, 0x4a, 0x0c, 0x6e, 0xe8, 0x01, 0x31, 0xfc, 0x4d, 0x4d, 0x97, 0x07, 0x23, 0xa2, 0x18, 0x6a, 0xe3, 0x62, 0x5e, 0x28, 0x6d, 0x17, 0xdd, 0xdc, 0x43, 0x5c, 0xcb, 0x00, 0x83, 0x16, 0x78, 0xab, 0xa5, 0x84, 0xa6, 0x2d, 0xbf, 0xf0, 0x02, 0xbe, 0xad, 0x6e, 0x11, 0xe2, 0x3c, 0x54, 0xd3, 0x3c, 0xf3, 0xa4, 0xb2, 0x31, 0xa9, 0x08, };
22608 static const u8 ed25519_983_test_vectors_expected_sig[] = {
22609 	0xbb, 0x09, 0x36, 0x04, 0x39, 0xa8, 0x2d, 0xee, 0x5c, 0x7d, 0x85, 0x77, 0x9e, 0x54, 0xc1, 0x3f, 0x88, 0xe0, 0x6d, 0x38, 0xf4, 0xb9, 0x49, 0x60, 0xfe, 0x17, 0xa1, 0xeb, 0xca, 0xa3, 0xee, 0x2f, 0x33, 0x0c, 0x64, 0x91, 0x54, 0xbb, 0xc8, 0x75, 0xa4, 0x07, 0x6c, 0xf0, 0xbb, 0xf7, 0xee, 0xbf, 0x7b, 0x8d, 0x08, 0xd5, 0xaa, 0x4b, 0xe7, 0x41, 0x38, 0x81, 0x24, 0x5f, 0xc2, 0xd2, 0xb6, 0x01, };
22610 static const ec_test_case ed25519_983_test_case = {
22611 	.name = "EDDSA25519-SHA512/wei25519 983",
22612 	.ec_str_p = &wei25519_str_params,
22613 	.priv_key = ed25519_983_test_vectors_priv_key,
22614 	.priv_key_len = sizeof(ed25519_983_test_vectors_priv_key),
22615 	.nn_random = NULL,
22616 	.hash_type = SHA512,
22617 	.msg = (const char *)ed25519_983_test_vectors_message,
22618 	.msglen = sizeof(ed25519_983_test_vectors_message),
22619 	.sig_type = EDDSA25519,
22620 	.exp_sig = ed25519_983_test_vectors_expected_sig,
22621 	.exp_siglen = sizeof(ed25519_983_test_vectors_expected_sig),
22622 	.adata = NULL,
22623 	.adata_len = 0
22624 };
22625 
22626 /************************************************/
22627 static const u8 ed25519_984_test_vectors_priv_key[] = {
22628 	0xf0, 0x8e, 0xe8, 0xda, 0xa7, 0x3e, 0x1f, 0xeb, 0x61, 0xa8, 0x8e, 0x06, 0x2d, 0xfb, 0x10, 0x03, 0xc8, 0x57, 0x8a, 0x0d, 0x53, 0xbd, 0x3b, 0xc9, 0xe5, 0x89, 0xef, 0xb9, 0x2f, 0x68, 0xbe, 0x14, };
22629 static const u8 ed25519_984_test_vectors_message[] = {
22630 	0x64, 0xde, 0x90, 0x04, 0x4d, 0x0e, 0x76, 0xbc, 0x02, 0xfc, 0xff, 0xcb, 0x75, 0x26, 0x36, 0x67, 0xb3, 0xbd, 0x73, 0x3b, 0x40, 0xbf, 0xb2, 0x6c, 0x6c, 0x52, 0xfd, 0xb4, 0xb0, 0x78, 0x22, 0x78, 0xca, 0xba, 0xe4, 0x1e, 0x21, 0x29, 0xea, 0x40, 0x17, 0xe9, 0x4d, 0xe8, 0x60, 0x87, 0x96, 0x4f, 0x66, 0xd8, 0x62, 0x07, 0x98, 0x74, 0x67, 0xa1, 0x68, 0x8f, 0x9f, 0xab, 0x3f, 0xfb, 0x2f, 0x1d, 0x00, 0x63, 0xbf, 0x62, 0x6c, 0x94, 0x13, 0x67, 0xc1, 0x2e, 0x31, 0x9a, 0xb7, 0xca, 0x30, 0x20, 0xc9, 0xb3, 0xa7, 0x21, 0x5a, 0x19, 0x30, 0x3e, 0x2d, 0x0e, 0x89, 0x88, 0x79, 0x1d, 0xe0, 0xd8, 0xe1, 0x63, 0x2d, 0xaa, 0x38, 0xc7, 0xf3, 0xe7, 0xf6, 0xe4, 0x8c, 0xe1, 0x22, 0x14, 0x3d, 0x1e, 0x2c, 0xb6, 0x61, 0xba, 0x77, 0xc6, 0x9e, 0x6a, 0x71, 0x09, 0x11, 0x64, 0x4b, 0xc1, 0x10, 0xff, 0x58, 0xbb, 0x00, 0xb5, 0x29, 0x08, 0x20, 0xce, 0x30, 0x97, 0x0e, 0x7f, 0xde, 0x18, 0x9e, 0x14, 0x0e, 0x5c, 0x70, 0xc7, 0x83, 0xee, 0xd5, 0x3f, 0x0e, 0x2a, 0xc7, 0xec, 0xae, 0x4f, 0x27, 0xdb, 0x81, 0xd1, 0x5b, 0x86, 0x46, 0xfa, 0xa9, 0xc5, 0xa3, 0xae, 0x2b, 0x7f, 0x47, 0xcd, 0x58, 0x0d, 0x77, 0x07, 0xb0, 0x02, 0x49, 0x9b, 0x4c, 0xfe, 0xb8, 0xc5, 0x91, 0xaf, 0xdf, 0x1c, 0xc6, 0x2a, 0xf2, 0x59, 0x5c, 0x18, 0x4a, 0xbc, 0xf0, 0xb2, 0x62, 0x3a, 0x1b, 0xae, 0x60, 0xaf, 0x70, 0x26, 0xb2, 0x8d, 0x05, 0x40, 0xb4, 0x15, 0x26, 0xe3, 0x02, 0x0f, 0x81, 0xb8, 0x94, 0xeb, 0x3f, 0xe3, 0x1b, 0x72, 0xb2, 0x1a, 0x32, 0x60, 0xda, 0xe3, 0x21, 0x0c, 0x4c, 0xe4, 0xfd, 0x69, 0xe2, 0xe5, 0xea, 0x0c, 0x86, 0x32, 0xa5, 0x83, 0x26, 0x2a, 0x12, 0xb3, 0xa8, 0xb1, 0x6c, 0x9c, 0x12, 0x06, 0xad, 0x73, 0x02, 0x30, 0x37, 0xcf, 0x30, 0x65, 0x3c, 0xb8, 0x0a, 0xa7, 0xdf, 0x83, 0x14, 0xb0, 0xf5, 0xbc, 0x6e, 0x9d, 0x5f, 0xa0, 0x0b, 0x00, 0x9d, 0x55, 0x52, 0xd8, 0x3b, 0x79, 0x70, 0xb5, 0xbc, 0x4b, 0x99, 0x84, 0xf6, 0x9d, 0x1c, 0xca, 0x9c, 0xe4, 0xcb, 0x74, 0xdd, 0xd2, 0xd8, 0x79, 0xd3, 0x73, 0x12, 0xa0, 0xe1, 0x59, 0xd7, 0xa6, 0xaf, 0xb7, 0x7a, 0xc5, 0x85, 0xe6, 0xb4, 0x59, 0xc5, 0x51, 0x30, 0x4e, 0x1e, 0xeb, 0xfb, 0xca, 0xb4, 0x3a, 0x10, 0xb5, 0x05, 0x92, 0x4e, 0x03, 0xea, 0x33, 0x2f, 0x5d, 0x02, 0x0a, 0x55, 0xc7, 0xaa, 0x68, 0x3c, 0x54, 0x1d, 0xcf, 0x77, 0x90, 0xa2, 0x40, 0xaf, 0x07, 0x9b, 0xab, 0xa9, 0x40, 0x96, 0xb4, 0x60, 0x60, 0xfd, 0x7a, 0xfe, 0x90, 0x56, 0xca, 0x99, 0xe6, 0x88, 0xdf, 0x28, 0x0a, 0x9b, 0xe8, 0xc8, 0xc7, 0x3e, 0x6e, 0x6f, 0xb0, 0x52, 0xa3, 0x3e, 0xb3, 0x32, 0x8a, 0x7f, 0x60, 0x25, 0x42, 0xfe, 0x28, 0x0c, 0x89, 0x0e, 0x3c, 0xca, 0xf2, 0x2c, 0x7f, 0x34, 0xf8, 0x7b, 0x5e, 0x5b, 0xa7, 0x84, 0xb4, 0x72, 0xb1, 0xe1, 0xa9, 0x93, 0x47, 0xa9, 0xe0, 0xd2, 0x40, 0x85, 0x8d, 0x12, 0x77, 0xa5, 0xc6, 0xb3, 0x49, 0x38, 0x3f, 0xe4, 0xfd, 0x55, 0xcf, 0x92, 0xe6, 0x9f, 0xaa, 0xd3, 0x26, 0xb8, 0xd6, 0xdb, 0x46, 0x23, 0x30, 0x26, 0x22, 0x1e, 0xe6, 0xd0, 0xa1, 0xc4, 0x24, 0x65, 0x33, 0xc4, 0xa0, 0xe5, 0xbd, 0x17, 0x2e, 0xb8, 0x93, 0x6a, 0x9c, 0x0d, 0x30, 0x06, 0x65, 0x38, 0xe3, 0xeb, 0x4a, 0xd5, 0xcb, 0x98, 0x77, 0xfd, 0x86, 0x1b, 0x48, 0x2b, 0x30, 0x15, 0x0a, 0x06, 0x10, 0x41, 0x61, 0x64, 0x7e, 0x01, 0xd0, 0x04, 0xd9, 0x97, 0x40, 0x3e, 0xe0, 0x67, 0x26, 0xcb, 0x97, 0xe2, 0xe2, 0x5f, 0x18, 0xc6, 0x68, 0xee, 0xe4, 0xc5, 0xbf, 0x72, 0x52, 0x98, 0x03, 0x18, 0x9e, 0xe6, 0xa7, 0xae, 0xc2, 0x38, 0xd5, 0x90, 0x6e, 0xa5, 0xae, 0x10, 0x72, 0x2c, 0x9a, 0x61, 0xa7, 0x8a, 0xea, 0x52, 0xaf, 0x33, 0xea, 0xac, 0x75, 0x40, 0x6b, 0x1a, 0x60, 0xbe, 0xfb, 0xaa, 0xd4, 0x84, 0x76, 0xd9, 0xff, 0x88, 0x7f, 0xd2, 0x83, 0xeb, 0x16, 0x55, 0xbc, 0xc0, 0x7c, 0xf7, 0x53, 0x33, 0x14, 0x36, 0xdb, 0x5b, 0x3b, 0x13, 0x03, 0x2f, 0xf9, 0xc3, 0xd6, 0x96, 0x38, 0x0e, 0x9f, 0x5a, 0xbf, 0x50, 0xd3, 0x55, 0x6f, 0xda, 0x0d, 0xf0, 0xb5, 0x38, 0x97, 0xa7, 0x37, 0xac, 0x7a, 0x3b, 0x87, 0xc2, 0xa8, 0x32, 0xb0, 0xc7, 0x27, 0x3e, 0xa9, 0xfc, 0x54, 0xa7, 0x67, 0xf1, 0xa8, 0x12, 0xbf, 0x01, 0x64, 0xbf, 0x75, 0x21, 0x63, 0x0b, 0x81, 0xb9, 0xdd, 0x93, 0x0d, 0x92, 0xee, 0x2c, 0xa2, 0x8e, 0x32, 0x03, 0xb7, 0x7b, 0xc0, 0x82, 0xce, 0xb3, 0x7d, 0x55, 0xed, 0xbc, 0xb7, 0x1d, 0xf0, 0xb7, 0x92, 0x36, 0x78, 0x9a, 0x25, 0xd4, 0x18, 0xcb, 0xb9, 0x55, 0x44, 0xe2, 0xce, 0xf3, 0x3b, 0xbd, 0xeb, 0x27, 0xa3, 0xf7, 0x90, 0x9c, 0x1f, 0x49, 0x8f, 0x47, 0x13, 0x5a, 0xe9, 0x03, 0x3a, 0xdf, 0x25, 0x0a, 0xd4, 0xf6, 0x57, 0x53, 0x61, 0xe4, 0xcf, 0xcc, 0x9b, 0xcf, 0x4b, 0x90, 0xc3, 0xad, 0x47, 0xa3, 0x44, 0x22, 0x97, 0xa2, 0x23, 0xcc, 0xa8, 0x43, 0xd7, 0x20, 0x5e, 0xd0, 0x8a, 0x9b, 0x87, 0x16, 0x0a, 0x6d, 0x01, 0xb4, 0x6a, 0x7d, 0x1c, 0x84, 0x4e, 0x8d, 0x1f, 0x18, 0xf6, 0x18, 0x68, 0x2b, 0xfb, 0x22, 0x95, 0x5f, 0x39, 0x5b, 0x2a, 0x57, 0x90, 0xa5, 0x1a, 0x69, 0x64, 0x99, 0xd9, 0xe7, 0x1a, 0x50, 0x1f, 0x3f, 0xa5, 0x46, 0xde, 0x9b, 0x10, 0xae, 0x47, 0xbc, 0xee, 0x42, 0xba, 0x7f, 0x86, 0x9f, 0xb9, 0xce, 0x4e, 0xd7, 0xc6, 0x45, 0x33, 0x26, 0xc0, 0x34, 0xcf, 0x05, 0xd9, 0xf1, 0xe3, 0xc2, 0x00, 0x70, 0x1b, 0xa7, 0x52, 0xda, 0xbb, 0xd8, 0x68, 0x52, 0x1c, 0x3d, 0x8f, 0x80, 0x67, 0x2d, 0x42, 0xf6, 0xcf, 0x45, 0x64, 0xf0, 0x8c, 0xd7, 0xb3, 0x90, 0xe6, 0xd4, 0x9d, 0xd9, 0x00, 0x90, 0xaf, 0xdb, 0x84, 0x48, 0x6f, 0xfc, 0xaa, 0x4e, 0x84, 0xd8, 0x86, 0x82, 0x74, 0x4d, 0xc0, 0xa8, 0x78, 0xfa, 0xa7, 0xcd, 0x44, 0x0a, 0x8b, 0x27, 0x67, 0x10, 0x90, 0x20, 0x81, 0xf4, 0xdc, 0x84, 0x17, 0x46, 0x19, 0xa6, 0x6e, 0xa3, 0xa3, 0x71, 0xf9, 0x55, 0x05, 0x40, 0x0d, 0x99, 0xfa, 0x99, 0x90, 0x17, 0x71, 0x0c, 0x8e, 0x27, 0x14, 0xbe, 0x60, 0x94, 0x9d, 0x46, 0x13, 0x10, 0xf7, 0xd4, 0x3a, 0x0d, 0xc1, 0x23, 0x51, 0x6d, 0x77, 0xd3, 0x62, 0x21, 0x3f, 0x9f, 0x75, 0xa5, 0xa1, 0xc3, 0x93, 0xaf, 0xfc, 0x49, 0xea, 0x15, 0x1d, 0x46, 0xa8, 0x1f, 0xfa, 0xd2, 0x39, 0xf2, 0x8c, 0x07, 0xf6, 0x5f, 0x59, 0xea, 0x07, 0x7d, 0x9a, 0x4d, 0x9c, 0x75, 0x2d, 0xe4, 0x9b, 0x9e, 0xf3, 0x6b, 0xe6, 0x0d, 0x11, 0x2d, 0x79, 0x5f, 0x58, 0x8b, 0x00, 0xef, 0x6e, 0x77, 0x30, 0xde, 0xa6, 0x5e, 0x10, 0x16, 0xda, 0x0d, 0xd4, 0x62, 0x37, 0x0e, 0x0b, 0xa5, 0xc6, 0x60, 0x00, 0x1e, 0x45, 0x7c, 0x08, 0xb4, 0x36, 0xda, 0x29, 0x03, 0xb6, 0x29, 0x06, 0x93, 0x20, 0x84, 0x72, 0x8c, 0x81, 0x67, 0x1c, 0xbf, 0xb0, 0x79, 0xbb, 0x29, };
22631 static const u8 ed25519_984_test_vectors_expected_sig[] = {
22632 	0x66, 0xdf, 0xa4, 0xc1, 0x57, 0x5b, 0xef, 0xf2, 0xf5, 0xa2, 0x30, 0xb2, 0x8c, 0x58, 0xc3, 0xee, 0xa0, 0x73, 0x6d, 0xf3, 0x79, 0xd7, 0x55, 0x59, 0xbc, 0x9d, 0x37, 0xa9, 0x57, 0x9d, 0x12, 0x1c, 0x05, 0xc3, 0x73, 0xe8, 0x48, 0x4c, 0x97, 0x47, 0xef, 0x44, 0x77, 0xe8, 0x0c, 0x4b, 0x2c, 0xb4, 0xdd, 0xf1, 0x6a, 0xe9, 0xfd, 0xfa, 0x08, 0xa0, 0x75, 0x47, 0xd1, 0x07, 0xdc, 0xea, 0x12, 0x03, };
22633 static const ec_test_case ed25519_984_test_case = {
22634 	.name = "EDDSA25519-SHA512/wei25519 984",
22635 	.ec_str_p = &wei25519_str_params,
22636 	.priv_key = ed25519_984_test_vectors_priv_key,
22637 	.priv_key_len = sizeof(ed25519_984_test_vectors_priv_key),
22638 	.nn_random = NULL,
22639 	.hash_type = SHA512,
22640 	.msg = (const char *)ed25519_984_test_vectors_message,
22641 	.msglen = sizeof(ed25519_984_test_vectors_message),
22642 	.sig_type = EDDSA25519,
22643 	.exp_sig = ed25519_984_test_vectors_expected_sig,
22644 	.exp_siglen = sizeof(ed25519_984_test_vectors_expected_sig),
22645 	.adata = NULL,
22646 	.adata_len = 0
22647 };
22648 
22649 /************************************************/
22650 static const u8 ed25519_985_test_vectors_priv_key[] = {
22651 	0x27, 0x2d, 0x64, 0xde, 0x50, 0xb1, 0x31, 0x2b, 0xee, 0x23, 0xd7, 0xf4, 0xce, 0xa5, 0x08, 0xa8, 0xfc, 0xcf, 0x3e, 0x9b, 0x32, 0x4e, 0x97, 0xb1, 0xc8, 0xe7, 0x25, 0x02, 0xf6, 0x1f, 0xbf, 0x45, };
22652 static const u8 ed25519_985_test_vectors_message[] = {
22653 	0xd6, 0x26, 0x0d, 0x7e, 0xec, 0x5d, 0x43, 0x62, 0x08, 0xe7, 0xe7, 0x37, 0x65, 0x5e, 0x09, 0x71, 0x81, 0x42, 0x70, 0x19, 0x44, 0x05, 0xe3, 0x6e, 0x39, 0xf8, 0xf1, 0x7b, 0x64, 0x9f, 0xbc, 0x16, 0xc0, 0xf3, 0xd7, 0xf2, 0xbe, 0xf5, 0xeb, 0xc0, 0x2b, 0xb1, 0xc4, 0xdf, 0x48, 0xe8, 0x47, 0x0a, 0x3e, 0xae, 0x8a, 0x3c, 0xca, 0xf6, 0x40, 0xab, 0xcc, 0x09, 0x4a, 0xa9, 0x11, 0x50, 0xff, 0x1a, 0x8c, 0xf1, 0x16, 0x96, 0x93, 0xeb, 0xf5, 0xac, 0x00, 0x34, 0xb9, 0xb9, 0x19, 0xec, 0xf1, 0x7d, 0xb7, 0x91, 0xdf, 0xe5, 0xfe, 0xdc, 0x90, 0x91, 0x8b, 0x23, 0xe5, 0x4e, 0x90, 0x04, 0xa1, 0xae, 0x77, 0x1c, 0x21, 0x3e, 0xd7, 0xed, 0x73, 0x34, 0x43, 0x4e, 0x5b, 0xc0, 0x2c, 0x0d, 0xda, 0x2b, 0xd1, 0xa8, 0x76, 0xfb, 0x82, 0x4a, 0x19, 0x7b, 0xc9, 0x96, 0x13, 0xb1, 0x40, 0x9e, 0x70, 0x52, 0x31, 0x0b, 0x08, 0x20, 0xda, 0x71, 0x44, 0x69, 0x29, 0xae, 0x7c, 0xfd, 0x3a, 0xfb, 0xa0, 0x42, 0xde, 0x54, 0x57, 0x8a, 0x5b, 0xfd, 0x94, 0xc1, 0x54, 0x43, 0x91, 0xa3, 0xd9, 0xac, 0xbd, 0x56, 0x63, 0xef, 0x65, 0xc6, 0x92, 0x0d, 0x78, 0x51, 0x6d, 0xec, 0x1c, 0xd5, 0x5f, 0x6e, 0xb7, 0x29, 0x0b, 0xa0, 0xaa, 0xf9, 0xa1, 0x71, 0x65, 0x82, 0x00, 0xb2, 0x4a, 0x47, 0xa0, 0x71, 0xb9, 0x6f, 0xea, 0x03, 0xc6, 0xca, 0x7e, 0xd0, 0xd6, 0xfe, 0x67, 0x5d, 0xd6, 0x37, 0x61, 0x83, 0x3d, 0x75, 0xbc, 0x5e, 0x58, 0xa9, 0x58, 0x58, 0x2d, 0xb0, 0x2a, 0x60, 0xc6, 0xce, 0x0a, 0x63, 0xf4, 0x2b, 0xa8, 0x37, 0xae, 0x77, 0xc1, 0x7a, 0x32, 0x70, 0x5f, 0xd9, 0xca, 0xfa, 0x58, 0x7b, 0x55, 0x5d, 0xd4, 0x61, 0x98, 0x51, 0x07, 0x97, 0x94, 0xe2, 0x4e, 0xb4, 0x46, 0x08, 0x83, 0x5a, 0x6f, 0x48, 0x24, 0x92, 0x0d, 0x57, 0x7a, 0x27, 0x03, 0x96, 0xc9, 0x57, 0x3b, 0xc7, 0xd8, 0x2f, 0xe2, 0xaa, 0x04, 0x65, 0x95, 0x66, 0x13, 0xa2, 0xc5, 0x08, 0xcf, 0x24, 0x32, 0x33, 0x7a, 0x36, 0x5e, 0x6c, 0x98, 0x4c, 0xba, 0x91, 0x7f, 0x0c, 0xf8, 0x42, 0xaf, 0x12, 0x2d, 0xc8, 0x9d, 0xea, 0x95, 0x8d, 0x41, 0x8c, 0xae, 0x44, 0xa6, 0xe4, 0xed, 0x26, 0x3a, 0x41, 0x5f, 0xf9, 0x94, 0xa5, 0xff, 0xb2, 0xff, 0x13, 0x91, 0x3d, 0xf2, 0x14, 0xbb, 0xfe, 0x90, 0xa3, 0x4b, 0x24, 0x7e, 0x71, 0xab, 0x73, 0xf7, 0xff, 0x00, 0x4c, 0x23, 0xac, 0xfd, 0x90, 0xc7, 0x67, 0x61, 0x1a, 0xa5, 0x58, 0x14, 0xc6, 0x69, 0x64, 0x16, 0x8e, 0x56, 0x8b, 0xa7, 0x5b, 0xf3, 0x49, 0x03, 0x59, 0x7c, 0xdc, 0xac, 0x78, 0xc2, 0x4b, 0xb9, 0xf1, 0x4f, 0x5c, 0x86, 0xa5, 0x1f, 0x36, 0x4f, 0x9a, 0xb4, 0x1e, 0x46, 0x4a, 0xee, 0x64, 0xfa, 0x50, 0xa1, 0xc1, 0x59, 0xcb, 0xd8, 0x50, 0x83, 0x2c, 0x50, 0x4a, 0xb4, 0x2a, 0x58, 0x4a, 0x96, 0xd5, 0xae, 0xe0, 0x82, 0xd8, 0x2c, 0x1e, 0xdd, 0xa1, 0x93, 0x38, 0x16, 0x0b, 0x8d, 0xcf, 0xa3, 0x41, 0x9b, 0x3a, 0xf6, 0x4d, 0x9c, 0xfb, 0x10, 0x4f, 0x98, 0xf9, 0xd3, 0x5e, 0x53, 0x94, 0xe2, 0x32, 0x28, 0xe2, 0x75, 0xc8, 0x7d, 0xb5, 0x0c, 0xa8, 0x67, 0x54, 0x0b, 0x88, 0x0c, 0x7a, 0xf2, 0x9f, 0xbf, 0x53, 0x42, 0x94, 0x58, 0x1c, 0x22, 0x24, 0x0b, 0xcd, 0x4d, 0x7d, 0x2c, 0x20, 0xff, 0xc3, 0x67, 0x33, 0xad, 0xa2, 0x76, 0x53, 0xd3, 0xae, 0x1a, 0x8c, 0x22, 0x03, 0xea, 0xc6, 0x26, 0xe2, 0xe9, 0xbb, 0x4b, 0x52, 0xce, 0x52, 0x3e, 0x5a, 0xdb, 0x3b, 0x2c, 0x10, 0xdc, 0xf7, 0x8c, 0x2a, 0x1e, 0x62, 0x6a, 0x16, 0xeb, 0xfa, 0x1b, 0xdb, 0x8c, 0x16, 0x14, 0x93, 0xa5, 0xaa, 0xa2, 0xd8, 0x4b, 0xfa, 0xa0, 0xf2, 0x02, 0x7f, 0xfe, 0x4e, 0x9e, 0xae, 0xb3, 0x32, 0xeb, 0xda, 0x7c, 0xbb, 0xb6, 0x77, 0x76, 0x9d, 0x78, 0x51, 0x7a, 0xdf, 0x72, 0xf8, 0x23, 0xa7, 0xf8, 0x44, 0x16, 0x5a, 0x07, 0x98, 0x78, 0xd2, 0x58, 0xfd, 0x95, 0x22, 0x5c, 0x21, 0x17, 0x78, 0x37, 0xe6, 0x9c, 0x19, 0x68, 0x5a, 0x05, 0x1c, 0xa9, 0x2b, 0x12, 0x0b, 0x7d, 0x86, 0xd7, 0x85, 0x95, 0x47, 0x1f, 0xfc, 0x42, 0xa5, 0xe6, 0xe6, 0x43, 0x1b, 0xe7, 0xb6, 0x4f, 0x80, 0x76, 0x45, 0x8b, 0xac, 0xd6, 0xc7, 0x29, 0x03, 0xcc, 0x34, 0xfc, 0x63, 0xa4, 0x0c, 0xf3, 0xdf, 0x00, 0xef, 0xf9, 0xd6, 0xee, 0x9a, 0x8f, 0x39, 0xd2, 0x5e, 0xad, 0x81, 0xa8, 0x12, 0x88, 0x88, 0xb0, 0xa1, 0xac, 0x0e, 0x5e, 0x3a, 0xd9, 0x27, 0x71, 0x2c, 0x14, 0x14, 0x6a, 0xdf, 0x82, 0x87, 0x70, 0xff, 0x95, 0x87, 0x09, 0xeb, 0x19, 0x28, 0x8e, 0x77, 0xbb, 0x70, 0x73, 0x48, 0x81, 0xe9, 0xe0, 0x16, 0xcd, 0x29, 0xe7, 0xd0, 0x89, 0x93, 0x41, 0xff, 0x6b, 0x29, 0x7a, 0xc7, 0x96, 0xbb, 0xde, 0x48, 0x6e, 0xc3, 0x59, 0x49, 0xf6, 0xa3, 0x2b, 0x2c, 0xa6, 0x47, 0x38, 0x59, 0x15, 0xec, 0xba, 0x3b, 0x9f, 0x02, 0x25, 0x08, 0x71, 0x45, 0xc1, 0x8d, 0x65, 0x59, 0xd3, 0xa3, 0x1d, 0x6f, 0x22, 0xfc, 0x49, 0xf8, 0xa6, 0x31, 0x5f, 0x1d, 0x32, 0xab, 0xee, 0xb7, 0xcf, 0x2c, 0x2c, 0x77, 0x6e, 0xa7, 0x35, 0x0f, 0xd5, 0xeb, 0xc0, 0xe0, 0xf2, 0x65, 0xba, 0xcc, 0xc2, 0x69, 0x7a, 0x7c, 0x8c, 0xa4, 0x0c, 0x13, 0x5f, 0x6c, 0xfc, 0xb0, 0xb5, 0x8a, 0x61, 0x43, 0x19, 0x60, 0xff, 0xa9, 0x06, 0x57, 0x09, 0xa9, 0x61, 0xa6, 0x33, 0xd5, 0x70, 0xb7, 0x3f, 0xb4, 0x49, 0x1d, 0xe5, 0x2a, 0xd0, 0xd7, 0xb2, 0x04, 0xb6, 0xe9, 0x97, 0xb0, 0x37, 0xed, 0xe3, 0xf7, 0xec, 0xa8, 0x20, 0xa7, 0xcd, 0xb2, 0xc6, 0x9a, 0xc2, 0x91, 0x48, 0xbe, 0x35, 0x23, 0x50, 0x8a, 0xe7, 0xe4, 0xc3, 0xd1, 0xa7, 0x17, 0xf5, 0x5a, 0x82, 0x1d, 0x14, 0xc3, 0xb6, 0x4f, 0x08, 0xca, 0x9a, 0xe4, 0x96, 0x13, 0xb1, 0x15, 0x77, 0x3e, 0xf6, 0x18, 0xd3, 0x21, 0xc9, 0x08, 0xbd, 0x21, 0x56, 0x71, 0x7a, 0x43, 0x4e, 0x50, 0x89, 0xa5, 0x94, 0x8c, 0x04, 0x5c, 0x8d, 0xa8, 0xa4, 0xbd, 0x86, 0xed, 0x5f, 0xab, 0xc6, 0xb1, 0x34, 0x66, 0xe6, 0xde, 0xda, 0x58, 0x32, 0x07, 0xd2, 0xad, 0xa2, 0xb2, 0xab, 0x9c, 0xb1, 0x54, 0x3d, 0xf7, 0xa3, 0x73, 0x4d, 0xfb, 0xc6, 0xfc, 0x42, 0x81, 0x06, 0xd4, 0x84, 0x47, 0x24, 0xa1, 0x3d, 0xf4, 0x2f, 0xaa, 0xb1, 0x8c, 0xa8, 0x9d, 0xb2, 0x0a, 0xc9, 0xbc, 0x27, 0xb8, 0x53, 0x94, 0x66, 0x7c, 0x5a, 0x27, 0x79, 0xca, 0x63, 0xed, 0x7a, 0xc2, 0xb7, 0xc0, 0xd4, 0x12, 0x23, 0x91, 0xee, 0x46, 0x02, 0xd6, 0x1e, 0xa0, 0x38, 0x17, 0x64, 0xfb, 0x72, 0xdc, 0xc2, 0x24, 0xe6, 0x5e, 0xae, 0x2b, 0xc4, 0x50, 0x6b, 0x0f, 0x09, 0xe2, 0x32, 0x05, 0xd0, 0xbb, 0x21, 0xc7, 0x7d, 0x82, 0x87, 0xc1, 0x65, 0xe0, 0xb4, 0x2c, 0x55, 0x15, 0x79, 0x77, 0x8a, 0xcb, 0x72, 0x58, 0xa2, 0x47, 0x9d, 0x7c, 0xf2, 0x5b, 0x90, 0x2e, 0x8d, 0x0d, 0xa4, 0x29, 0xbd, 0xe3, 0x6b, 0x45, 0x90, 0xda, 0xe9, 0x6f, 0x52, 0x54, 0x81, 0xac, 0x83, 0x78, };
22654 static const u8 ed25519_985_test_vectors_expected_sig[] = {
22655 	0x33, 0x81, 0x4c, 0x6e, 0xf3, 0x75, 0xab, 0x96, 0x37, 0x69, 0xb2, 0xde, 0x4a, 0x25, 0xe7, 0x02, 0x0f, 0xcd, 0x97, 0xf7, 0x8f, 0x8f, 0xc9, 0x34, 0x55, 0xc4, 0xb1, 0xc2, 0xbd, 0x45, 0xd4, 0xb0, 0x1e, 0x19, 0x29, 0x00, 0xe3, 0x12, 0x22, 0x65, 0xfc, 0x55, 0x2c, 0xd5, 0xc5, 0xf0, 0x0e, 0x93, 0x1e, 0x3a, 0x18, 0x3c, 0xca, 0x5b, 0xa0, 0x80, 0x2d, 0xaf, 0xde, 0xbb, 0x79, 0xeb, 0xeb, 0x03, };
22656 static const ec_test_case ed25519_985_test_case = {
22657 	.name = "EDDSA25519-SHA512/wei25519 985",
22658 	.ec_str_p = &wei25519_str_params,
22659 	.priv_key = ed25519_985_test_vectors_priv_key,
22660 	.priv_key_len = sizeof(ed25519_985_test_vectors_priv_key),
22661 	.nn_random = NULL,
22662 	.hash_type = SHA512,
22663 	.msg = (const char *)ed25519_985_test_vectors_message,
22664 	.msglen = sizeof(ed25519_985_test_vectors_message),
22665 	.sig_type = EDDSA25519,
22666 	.exp_sig = ed25519_985_test_vectors_expected_sig,
22667 	.exp_siglen = sizeof(ed25519_985_test_vectors_expected_sig),
22668 	.adata = NULL,
22669 	.adata_len = 0
22670 };
22671 
22672 /************************************************/
22673 static const u8 ed25519_986_test_vectors_priv_key[] = {
22674 	0x0c, 0x9f, 0xe5, 0x59, 0xad, 0x1e, 0xd3, 0xba, 0x16, 0x4d, 0xac, 0xea, 0xcb, 0x02, 0x35, 0x67, 0xb2, 0x43, 0x03, 0x20, 0xb6, 0x71, 0x5d, 0xe7, 0x32, 0xa0, 0x3c, 0x59, 0xc7, 0x30, 0x31, 0x30, };
22675 static const u8 ed25519_986_test_vectors_message[] = {
22676 	0x26, 0xeb, 0xc6, 0x48, 0xcf, 0x8c, 0x79, 0x65, 0xec, 0x6e, 0xbe, 0x96, 0x5d, 0x9c, 0x79, 0x2b, 0xed, 0x90, 0x65, 0x5a, 0xd4, 0x40, 0x18, 0x3c, 0x6d, 0x70, 0xea, 0x64, 0x67, 0xbb, 0x8e, 0x6f, 0x04, 0xec, 0x84, 0x3f, 0x33, 0x31, 0x56, 0x91, 0x7b, 0xf4, 0xc5, 0x1d, 0x0e, 0xd0, 0xf2, 0x8b, 0x7c, 0xd3, 0x1b, 0xc1, 0x2c, 0xf8, 0x40, 0x68, 0x6b, 0x82, 0xb0, 0xc2, 0xc3, 0x50, 0xbb, 0xda, 0xc8, 0x05, 0x33, 0x37, 0x25, 0xd6, 0xb6, 0x9c, 0x2a, 0xb7, 0xf3, 0x4e, 0xe5, 0x93, 0xfa, 0x1c, 0xcc, 0xed, 0xf3, 0xf0, 0x64, 0x2a, 0x68, 0x8f, 0xcc, 0x1c, 0xd9, 0x8b, 0x09, 0x87, 0xd0, 0x1f, 0x71, 0x3a, 0x2f, 0xa6, 0x41, 0x6c, 0x96, 0x19, 0x21, 0xde, 0x0c, 0xc2, 0xc9, 0xec, 0x7a, 0x55, 0x58, 0x55, 0xe7, 0xfc, 0xd4, 0xc7, 0xdd, 0xaa, 0x14, 0xfd, 0x91, 0xec, 0xb0, 0x42, 0x24, 0xe1, 0x76, 0x1b, 0x7d, 0x6b, 0x35, 0xf4, 0xaa, 0x56, 0x18, 0xa5, 0x00, 0xca, 0x00, 0xd1, 0xca, 0x24, 0x51, 0xb5, 0xd3, 0x68, 0xaf, 0xde, 0x3a, 0x40, 0x7e, 0x78, 0x31, 0x35, 0xf3, 0x90, 0x19, 0xa5, 0xb9, 0x84, 0xe8, 0x2a, 0xc2, 0x79, 0xc0, 0x5e, 0x48, 0xc2, 0x95, 0xeb, 0xd1, 0x56, 0x38, 0x21, 0xa0, 0x74, 0x3c, 0x52, 0x24, 0x6b, 0x5d, 0x2b, 0x20, 0x34, 0xe3, 0xae, 0xb6, 0xce, 0x7c, 0x5c, 0xf9, 0x19, 0xe7, 0x4a, 0x9c, 0x7b, 0xbc, 0x9e, 0x25, 0xda, 0x30, 0x43, 0x0e, 0xb1, 0x6e, 0xcf, 0x38, 0x37, 0xeb, 0x38, 0xa0, 0xf5, 0x59, 0x79, 0x2a, 0x72, 0x98, 0x90, 0xba, 0x83, 0x10, 0x26, 0x0f, 0x8a, 0xeb, 0x9b, 0x5a, 0xf0, 0x0e, 0xb6, 0x33, 0xc1, 0x2d, 0xee, 0x02, 0x26, 0x28, 0xba, 0x41, 0x8d, 0x75, 0xcf, 0x18, 0xde, 0x2f, 0x2e, 0x65, 0xe4, 0x9b, 0x1a, 0x69, 0x68, 0x4d, 0x61, 0x27, 0xef, 0x48, 0x1c, 0xa8, 0x61, 0xec, 0xbc, 0xe3, 0xbe, 0x86, 0x49, 0x7e, 0x65, 0xdf, 0x4c, 0x5f, 0xcd, 0x08, 0x17, 0xc9, 0x71, 0x6b, 0x59, 0xf2, 0xa2, 0x63, 0xd5, 0xe9, 0xeb, 0x60, 0x68, 0x39, 0xf8, 0x5c, 0x5a, 0x36, 0x58, 0x37, 0xb0, 0xfb, 0xe2, 0xc4, 0x27, 0x4d, 0x66, 0xcb, 0x2c, 0x65, 0xed, 0x36, 0x5f, 0xab, 0xf5, 0x8f, 0x15, 0xbe, 0x52, 0xb5, 0x1c, 0xb6, 0x01, 0x18, 0xca, 0x4f, 0x73, 0x0d, 0x44, 0x73, 0x59, 0xf7, 0xef, 0x34, 0x6b, 0x75, 0x02, 0x17, 0xd4, 0x7b, 0x2e, 0x79, 0xc8, 0x6c, 0x0c, 0x62, 0x81, 0x6a, 0x0c, 0x7c, 0x18, 0xa2, 0xce, 0x2b, 0x68, 0x8e, 0x0c, 0xce, 0x0d, 0x75, 0x23, 0x21, 0xe7, 0x9b, 0x42, 0x38, 0x57, 0xda, 0xc5, 0x9f, 0x8f, 0xbe, 0xb0, 0x94, 0x11, 0xe7, 0x16, 0x69, 0xef, 0x9a, 0x26, 0x43, 0xf2, 0xe9, 0x9f, 0x38, 0x7a, 0xc1, 0x83, 0xe0, 0xb0, 0xac, 0x72, 0xc5, 0x9a, 0x0c, 0x3c, 0x18, 0xc0, 0xde, 0x8b, 0x01, 0x08, 0x78, 0x07, 0x4a, 0xcc, 0x1a, 0x2b, 0x39, 0xf9, 0xdf, 0x99, 0xd9, 0xf8, 0xf8, 0xb5, 0x2f, 0xef, 0xe4, 0x94, 0x3c, 0x52, 0x5f, 0xd4, 0xd0, 0x6a, 0xd8, 0x78, 0xe4, 0x66, 0x08, 0xab, 0xf2, 0x7a, 0x54, 0xbc, 0x50, 0x06, 0xf6, 0x47, 0xdb, 0x72, 0x48, 0x51, 0xdb, 0x7c, 0x45, 0x78, 0xae, 0x66, 0x58, 0x3d, 0xc4, 0xbb, 0x51, 0x8e, 0xf0, 0x28, 0x89, 0x03, 0x47, 0xe8, 0xfc, 0xe0, 0x92, 0x7d, 0x7d, 0x9a, 0xf3, 0xab, 0x5d, 0x0d, 0x2d, 0x20, 0x2a, 0x40, 0x26, 0xaa, 0x2e, 0xa7, 0x48, 0x79, 0x62, 0x67, 0x6a, 0x60, 0x32, 0x98, 0xe7, 0xd2, 0xe7, 0xb9, 0x09, 0x21, 0xee, 0x1b, 0x52, 0x80, 0x6d, 0x71, 0xa7, 0x64, 0xe0, 0x3e, 0x25, 0xdd, 0xd6, 0x84, 0x8f, 0x61, 0xd4, 0x6f, 0xad, 0x3d, 0x00, 0x8e, 0x10, 0xee, 0x5c, 0xd5, 0xa3, 0x39, 0x0f, 0x9d, 0x15, 0x8a, 0x44, 0x37, 0xef, 0x61, 0x5f, 0xc9, 0x0a, 0xc5, 0xbf, 0x3a, 0x9d, 0x68, 0x2e, 0x12, 0xc3, 0x39, 0x8a, 0xc7, 0x76, 0x80, 0xd2, 0x2c, 0xd1, 0xa6, 0xa5, 0x6e, 0xc3, 0xb2, 0x5c, 0xed, 0xe8, 0x67, 0xed, 0xd3, 0x83, 0x15, 0x9c, 0x61, 0x64, 0xd6, 0x3e, 0x9c, 0xd1, 0xc9, 0x56, 0xac, 0x72, 0x35, 0xff, 0xfa, 0xe9, 0x36, 0x16, 0x6c, 0xcd, 0x35, 0x89, 0x8e, 0x29, 0xc9, 0xb4, 0xca, 0x4e, 0x29, 0x25, 0xda, 0x32, 0x3b, 0x6f, 0xbf, 0x67, 0xcf, 0xd5, 0x96, 0xc8, 0x8a, 0x1a, 0x35, 0xa8, 0x35, 0x98, 0x51, 0xdd, 0xcb, 0xa8, 0xf6, 0x13, 0x4a, 0x9f, 0xaa, 0x24, 0x4d, 0xcb, 0x47, 0xe6, 0x91, 0x27, 0x6e, 0xe6, 0x25, 0xcc, 0x20, 0xad, 0xce, 0xc2, 0x1c, 0xbe, 0x77, 0xa3, 0xac, 0xb9, 0xba, 0x72, 0xf0, 0xc9, 0xd3, 0xda, 0x7e, 0x9c, 0xd5, 0xbe, 0x3b, 0x95, 0x99, 0x0b, 0xa5, 0x4a, 0x9f, 0x31, 0xaf, 0x17, 0x1f, 0x95, 0xae, 0xea, 0xd3, 0x33, 0x1c, 0xb1, 0x88, 0xa5, 0xb2, 0xc6, 0xf5, 0x39, 0xac, 0xb4, 0x8b, 0x98, 0xb3, 0xf7, 0x34, 0x1f, 0x60, 0x25, 0x1c, 0xb6, 0x04, 0x29, 0xcc, 0xd9, 0xcf, 0x32, 0xf0, 0x09, 0x20, 0x5f, 0x27, 0x53, 0xfb, 0xbb, 0x26, 0xaa, 0x53, 0x17, 0x43, 0x42, 0xad, 0x18, 0x4d, 0xab, 0x68, 0x70, 0xc0, 0xfb, 0x52, 0x93, 0x01, 0x19, 0xd9, 0xf9, 0x7d, 0x84, 0x89, 0xa6, 0x00, 0x76, 0xaa, 0xdb, 0x2e, 0x96, 0x05, 0x4a, 0xc7, 0xcb, 0x7f, 0x84, 0xe1, 0x3c, 0x75, 0xbb, 0xf9, 0xe4, 0xd9, 0x24, 0xd2, 0x27, 0x2a, 0xfe, 0xf0, 0x87, 0x19, 0x15, 0xe2, 0x43, 0xce, 0x66, 0xfc, 0x2a, 0x88, 0x88, 0x51, 0x35, 0x35, 0xb1, 0x0b, 0xb4, 0x07, 0x9c, 0x80, 0x6b, 0xd9, 0x49, 0x28, 0x1e, 0x28, 0x28, 0x35, 0x23, 0xd0, 0xd2, 0x10, 0xb3, 0x1e, 0xf6, 0x2a, 0x95, 0xdc, 0xae, 0x0c, 0xd2, 0x52, 0x90, 0xc7, 0xed, 0xf2, 0xc2, 0x4b, 0x43, 0x28, 0x22, 0xde, 0xbe, 0x34, 0x7f, 0x1c, 0xae, 0x94, 0x5f, 0x57, 0x28, 0xc7, 0x1b, 0x54, 0x03, 0xef, 0x14, 0xe7, 0x2c, 0x3d, 0x83, 0x42, 0xe1, 0x98, 0xb3, 0x62, 0xee, 0x20, 0xf8, 0x09, 0xe4, 0x6a, 0xca, 0x01, 0x5f, 0x35, 0x47, 0x7f, 0xf8, 0x9a, 0xc4, 0xb3, 0x7e, 0x66, 0x15, 0x85, 0x6f, 0x7e, 0xa2, 0x51, 0xfb, 0xfe, 0x13, 0xf9, 0x06, 0x52, 0x59, 0xb0, 0x94, 0x6a, 0xae, 0xf2, 0x49, 0x43, 0x27, 0x0a, 0x85, 0x4d, 0xe8, 0x89, 0x78, 0x00, 0x33, 0xd6, 0x3d, 0xda, 0x54, 0x47, 0x99, 0x8a, 0x3e, 0xd7, 0xe5, 0x06, 0xae, 0xb5, 0x1e, 0xa3, 0x7b, 0x68, 0x1a, 0xc3, 0x07, 0x67, 0x97, 0xac, 0xdb, 0xfc, 0xc2, 0x78, 0x83, 0x63, 0x0a, 0xdb, 0x72, 0x26, 0x0a, 0x46, 0xaf, 0x0a, 0x60, 0xd5, 0x3f, 0x66, 0x54, 0x56, 0x6e, 0x20, 0xd6, 0x08, 0x8c, 0xd4, 0x8e, 0x23, 0xb2, 0x8d, 0x81, 0xf0, 0xee, 0xd2, 0x05, 0xb9, 0x2a, 0xaf, 0xd9, 0x61, 0x64, 0xd6, 0xd3, 0xca, 0x3f, 0xc8, 0xb1, 0x71, 0x80, 0x4e, 0xe9, 0xfc, 0xe7, 0xab, 0xae, 0xd2, 0xea, 0x4d, 0xdf, 0x9c, 0xb2, 0xb3, 0xae, 0x73, 0xa7, 0x0e, 0xd6, 0x3d, 0xe4, 0x5e, 0x14, 0x10, 0x14, 0x28, 0xd0, 0xa7, 0xa2, 0x26, 0xdb, 0x39, 0xab, 0x6c, 0xd0, 0x43, 0x74, 0x08, 0x0e, 0x69, 0x83, 0xf0, 0x18, 0xce, 0x93, 0xda, 0x4c, 0x89, 0xac, };
22677 static const u8 ed25519_986_test_vectors_expected_sig[] = {
22678 	0x6c, 0xd8, 0xae, 0xd9, 0x7d, 0x9c, 0x62, 0xd5, 0xfd, 0xae, 0x59, 0x7d, 0x06, 0x1c, 0x0c, 0x2b, 0xc3, 0x7e, 0x42, 0xdf, 0x06, 0xb8, 0x32, 0x7a, 0x46, 0x8f, 0x92, 0xb3, 0xf4, 0x38, 0xa1, 0xe6, 0xb6, 0xb1, 0xef, 0x2b, 0xe7, 0x85, 0x49, 0xa2, 0x89, 0xfd, 0x3f, 0xc1, 0xa6, 0x29, 0x9e, 0x5a, 0x33, 0xd5, 0x39, 0x6c, 0xb4, 0xfa, 0xc1, 0xe8, 0xe9, 0x98, 0x2f, 0x0c, 0xb3, 0xd2, 0x0d, 0x07, };
22679 static const ec_test_case ed25519_986_test_case = {
22680 	.name = "EDDSA25519-SHA512/wei25519 986",
22681 	.ec_str_p = &wei25519_str_params,
22682 	.priv_key = ed25519_986_test_vectors_priv_key,
22683 	.priv_key_len = sizeof(ed25519_986_test_vectors_priv_key),
22684 	.nn_random = NULL,
22685 	.hash_type = SHA512,
22686 	.msg = (const char *)ed25519_986_test_vectors_message,
22687 	.msglen = sizeof(ed25519_986_test_vectors_message),
22688 	.sig_type = EDDSA25519,
22689 	.exp_sig = ed25519_986_test_vectors_expected_sig,
22690 	.exp_siglen = sizeof(ed25519_986_test_vectors_expected_sig),
22691 	.adata = NULL,
22692 	.adata_len = 0
22693 };
22694 
22695 /************************************************/
22696 static const u8 ed25519_987_test_vectors_priv_key[] = {
22697 	0x15, 0xd7, 0x5a, 0xd8, 0xe4, 0xaf, 0xb1, 0x26, 0x34, 0xcc, 0x8e, 0x60, 0x0f, 0x1a, 0x42, 0x67, 0xef, 0x95, 0x84, 0xf4, 0xc4, 0xac, 0x44, 0xff, 0xfe, 0x4b, 0x9f, 0xcb, 0x88, 0x5c, 0x9d, 0x2a, };
22698 static const u8 ed25519_987_test_vectors_message[] = {
22699 	0xd1, 0xce, 0xa2, 0xb7, 0xe9, 0xaf, 0xc1, 0xf0, 0xfa, 0xb8, 0x90, 0xd2, 0x70, 0x0a, 0x5a, 0xe4, 0x1e, 0x15, 0xe7, 0xd3, 0x4d, 0x3b, 0xf1, 0x9d, 0x0f, 0x34, 0xd9, 0xf9, 0xf0, 0xab, 0x98, 0x12, 0xdc, 0x7c, 0x2a, 0x8d, 0xc4, 0x4c, 0x8e, 0xe7, 0xf3, 0x78, 0x87, 0x61, 0xec, 0xd9, 0x88, 0xee, 0x72, 0xc7, 0x36, 0xb6, 0x2a, 0x7c, 0xac, 0x3c, 0xc9, 0xb7, 0x38, 0xe9, 0x38, 0xdf, 0x77, 0x87, 0x37, 0x7e, 0xb9, 0xff, 0xd1, 0x20, 0xd4, 0xff, 0x58, 0xcf, 0x1c, 0x06, 0x75, 0x63, 0x3f, 0x7e, 0x83, 0xc4, 0xb1, 0x15, 0x54, 0x8f, 0x14, 0xd2, 0xf7, 0x0c, 0x6d, 0x48, 0x22, 0x11, 0x44, 0x3a, 0x84, 0x99, 0x59, 0x95, 0x58, 0xc1, 0x42, 0x77, 0x98, 0x0f, 0xa4, 0x2a, 0x78, 0x42, 0x79, 0x07, 0xf7, 0x3a, 0x41, 0xf5, 0xf6, 0x69, 0x3b, 0x2f, 0x75, 0xfe, 0x5e, 0x7a, 0x6f, 0xf0, 0xa6, 0xc3, 0xa4, 0xe2, 0xed, 0x1d, 0x0d, 0x96, 0x8d, 0x5c, 0xc9, 0xd6, 0xf1, 0x3d, 0x41, 0xc3, 0xd2, 0x91, 0x39, 0x6a, 0xe7, 0xe4, 0x34, 0xe6, 0x64, 0xb2, 0xff, 0x24, 0x3e, 0x7f, 0x6d, 0x88, 0x01, 0x02, 0x10, 0x07, 0x8c, 0x39, 0xb5, 0xa5, 0x76, 0xca, 0xf4, 0x09, 0xbb, 0x47, 0x11, 0xb3, 0xee, 0xfc, 0x48, 0x6b, 0x67, 0xb7, 0xff, 0xea, 0xe0, 0xcb, 0xac, 0x6a, 0x0f, 0xbd, 0xf5, 0x34, 0x3f, 0xb2, 0xae, 0x4e, 0x05, 0x7e, 0xdc, 0x8c, 0x9d, 0x2e, 0xd3, 0x1e, 0xae, 0x9e, 0xc8, 0x3d, 0x2b, 0xed, 0xd2, 0x19, 0xeb, 0x98, 0x9b, 0x2d, 0x44, 0x19, 0x61, 0x8c, 0x2d, 0x3c, 0xe4, 0x49, 0x0e, 0x35, 0xfb, 0xca, 0xd4, 0x32, 0xb0, 0x12, 0x47, 0x95, 0xf9, 0xc5, 0xcb, 0xdc, 0x1e, 0xb0, 0xc3, 0x07, 0x2b, 0x4a, 0xa8, 0x01, 0xd2, 0x6f, 0xbc, 0xc7, 0xb0, 0x7b, 0x82, 0x57, 0xf5, 0xfe, 0x47, 0xac, 0xd9, 0xbc, 0x58, 0x7b, 0x56, 0x57, 0xcf, 0x07, 0xca, 0x54, 0x5b, 0xb5, 0x68, 0xc9, 0xe4, 0xe7, 0x3c, 0xdd, 0xf6, 0x25, 0x4e, 0x22, 0xf7, 0x8a, 0xb2, 0xf8, 0x06, 0x45, 0x19, 0xf8, 0xab, 0xfd, 0x16, 0xfc, 0xfa, 0x90, 0xf8, 0x76, 0x87, 0xdb, 0x0c, 0x42, 0x09, 0xbe, 0x2c, 0x6c, 0x79, 0xa5, 0x52, 0x1f, 0x44, 0x18, 0x96, 0x78, 0xd9, 0x32, 0xc5, 0x45, 0x85, 0x70, 0x0a, 0x24, 0x37, 0x70, 0x2e, 0x56, 0xaa, 0xb5, 0x88, 0xa1, 0x7c, 0xb2, 0xcc, 0x94, 0xc0, 0x0e, 0x87, 0x57, 0x0e, 0xf3, 0xac, 0x51, 0x33, 0xd7, 0x53, 0x03, 0x8a, 0xa4, 0x65, 0x10, 0xa2, 0x60, 0xc1, 0xfe, 0x80, 0x47, 0x9b, 0xc0, 0x2e, 0xed, 0x9a, 0x8d, 0x1d, 0xe9, 0x93, 0x54, 0xac, 0x26, 0x48, 0xb4, 0x8b, 0x96, 0xab, 0x1b, 0x80, 0xcc, 0xa6, 0xca, 0xe1, 0x87, 0x7f, 0x37, 0xd7, 0x04, 0x28, 0xbb, 0x50, 0x85, 0x0e, 0x03, 0x08, 0xdb, 0x0b, 0x42, 0x30, 0x87, 0xbf, 0x7d, 0xde, 0x27, 0x9e, 0x09, 0x67, 0x66, 0xf2, 0xab, 0x3a, 0xb2, 0x38, 0x5b, 0x04, 0x64, 0xa5, 0xbe, 0xd7, 0xbb, 0xd8, 0xd4, 0x57, 0xe9, 0x35, 0xe2, 0x00, 0xaa, 0xaa, 0x8d, 0x95, 0x15, 0x70, 0xe0, 0x53, 0x07, 0x6d, 0xb1, 0x8a, 0x6a, 0x62, 0xf7, 0x2b, 0x31, 0x95, 0x79, 0x88, 0x4a, 0x08, 0x26, 0xba, 0x2b, 0x43, 0x63, 0x71, 0xdd, 0x21, 0x8b, 0x01, 0xa0, 0xc5, 0xe5, 0x8d, 0x0c, 0xd5, 0xff, 0x98, 0x25, 0xe4, 0x46, 0x6f, 0xe9, 0x66, 0xdf, 0x05, 0xcc, 0x31, 0xc8, 0x03, 0xe5, 0x21, 0x21, 0x83, 0xdd, 0xf2, 0x9c, 0xef, 0x7f, 0xb9, 0x16, 0x48, 0xa4, 0xf8, 0xee, 0x19, 0xfd, 0x5f, 0x8d, 0xbd, 0x8a, 0x56, 0xbe, 0x7a, 0xbf, 0x33, 0x65, 0x9a, 0x92, 0x24, 0xa1, 0xe2, 0x7a, 0x10, 0x24, 0xef, 0xfd, 0xfb, 0x88, 0xe8, 0x80, 0x61, 0x48, 0xd0, 0xd1, 0x78, 0x09, 0x06, 0xaf, 0x1e, 0xbe, 0x3e, 0x5f, 0x14, 0x36, 0x31, 0x90, 0xd8, 0x8c, 0xc6, 0xe5, 0x08, 0x94, 0x44, 0xf1, 0x25, 0xd0, 0x63, 0x15, 0x5d, 0xcf, 0x86, 0xca, 0x92, 0x63, 0xf2, 0xf5, 0xf1, 0x83, 0xc2, 0x69, 0x74, 0xfe, 0x00, 0x0b, 0x93, 0x42, 0xd2, 0x4c, 0x78, 0x1e, 0x20, 0x58, 0x28, 0x7c, 0xb6, 0xf3, 0xf1, 0xe3, 0x27, 0x0c, 0x22, 0xb7, 0x70, 0x7b, 0x83, 0x23, 0xa5, 0xcc, 0x8d, 0xb8, 0x1a, 0xa9, 0x06, 0xbb, 0x59, 0xd6, 0x96, 0xcb, 0x97, 0xcc, 0x74, 0xe3, 0x59, 0x59, 0x5f, 0xfb, 0x83, 0x73, 0xca, 0xd3, 0x71, 0x0e, 0xa0, 0x9e, 0xa9, 0x74, 0x4c, 0x20, 0xe9, 0xa1, 0x2e, 0x05, 0xbe, 0x5a, 0x95, 0xf0, 0x85, 0xac, 0x56, 0x16, 0x78, 0xd7, 0xda, 0x43, 0x2e, 0x4c, 0x7c, 0xb5, 0x3e, 0x12, 0x71, 0xdf, 0x5c, 0xd5, 0xa3, 0x39, 0xd2, 0xd7, 0x52, 0x0f, 0x1c, 0x18, 0x48, 0xd1, 0x50, 0x71, 0xd8, 0xc6, 0x98, 0x46, 0xb2, 0x3c, 0x5d, 0x24, 0x32, 0xc7, 0x38, 0x90, 0xf2, 0xed, 0xed, 0x37, 0xc3, 0xd2, 0x96, 0x4a, 0x4b, 0x5b, 0x55, 0x22, 0x58, 0x88, 0xe8, 0x92, 0xf5, 0x26, 0xd1, 0xca, 0xc3, 0x1e, 0xac, 0x35, 0x6f, 0x36, 0x1c, 0x2b, 0xf3, 0x36, 0xc4, 0x62, 0xd6, 0x0c, 0x82, 0xe8, 0x2b, 0x61, 0x6f, 0x2a, 0x51, 0x9c, 0x2f, 0x67, 0xbf, 0x01, 0x29, 0x03, 0x69, 0xbe, 0x9b, 0x55, 0xe9, 0xf5, 0xc8, 0xce, 0xc4, 0xf2, 0xe1, 0xb2, 0xab, 0x30, 0x25, 0x06, 0xc9, 0x03, 0xdc, 0x3e, 0x7b, 0x9c, 0x97, 0x81, 0x41, 0xdc, 0x90, 0x4b, 0x01, 0xb1, 0xc2, 0x3d, 0x25, 0x00, 0x43, 0x99, 0xbf, 0x8b, 0x73, 0xd6, 0x9c, 0xd5, 0x39, 0xc7, 0x9a, 0xf5, 0xe9, 0xa0, 0xa5, 0x11, 0xec, 0xa2, 0x21, 0x07, 0x8a, 0x1f, 0xf7, 0xb0, 0xf6, 0x04, 0xae, 0xa8, 0x42, 0x46, 0xc3, 0xcb, 0x32, 0xdb, 0x93, 0x81, 0xbe, 0x12, 0x17, 0x67, 0xe0, 0x97, 0xbe, 0xa5, 0x17, 0xbf, 0xcd, 0x82, 0xdf, 0xe9, 0x21, 0x37, 0x98, 0x40, 0xef, 0xb4, 0xb6, 0xf0, 0x2a, 0x48, 0xec, 0xda, 0xf1, 0x2d, 0x2c, 0xd3, 0x89, 0x30, 0xd4, 0x47, 0x3a, 0xdf, 0x97, 0xcd, 0x71, 0xdc, 0x4e, 0xa1, 0x03, 0x82, 0xf4, 0xf5, 0xd1, 0xdd, 0x75, 0x62, 0xcd, 0x4b, 0xf5, 0x11, 0x59, 0x32, 0xf6, 0xc4, 0x70, 0x0a, 0xa8, 0xfe, 0x8d, 0xec, 0xa9, 0xd5, 0xe7, 0x27, 0x79, 0x02, 0xb8, 0xf8, 0x86, 0x52, 0x97, 0x65, 0xdb, 0x24, 0x86, 0x07, 0x4b, 0x23, 0xa1, 0x9f, 0xd4, 0xb0, 0x43, 0x56, 0xbf, 0xa6, 0x22, 0x6c, 0x82, 0xba, 0xf6, 0x9a, 0x08, 0x7d, 0x9c, 0xa1, 0x88, 0x23, 0xf8, 0xe3, 0xe6, 0x83, 0x08, 0xe1, 0x6b, 0x80, 0x4c, 0x36, 0x3d, 0xf5, 0xb6, 0x30, 0x7e, 0x76, 0x24, 0x0d, 0xb1, 0xed, 0x84, 0x1b, 0x61, 0x2d, 0x65, 0x54, 0x8d, 0xdf, 0xbe, 0x83, 0x67, 0xda, 0x60, 0x77, 0x2c, 0x6a, 0xff, 0x55, 0x4d, 0xc8, 0x5d, 0x04, 0x19, 0x48, 0x34, 0x5e, 0x56, 0x7d, 0xa9, 0x33, 0x31, 0x51, 0x85, 0x8f, 0xdf, 0x69, 0x93, 0x27, 0x39, 0x25, 0xbf, 0xdc, 0x71, 0x81, 0xb5, 0xf6, 0x46, 0xd0, 0x63, 0xa8, 0xc8, 0xf3, 0x10, 0x56, 0x9b, 0x0e, 0xd0, 0x93, 0xbd, 0x9d, 0xff, 0x04, 0xfe, 0xbf, 0x0b, 0x41, 0xc6, 0xdc, 0x55, 0x16, 0x9a, 0x14, 0xa3, 0xc8, 0x62, 0xe5, 0x41, 0x6f, 0x1e, 0x58, 0x2f, 0xde, 0xe8, 0xfe, 0x87, 0xdc, };
22700 static const u8 ed25519_987_test_vectors_expected_sig[] = {
22701 	0xa8, 0xf2, 0xf4, 0xb9, 0xe2, 0x07, 0x2c, 0xa9, 0xfa, 0xde, 0x37, 0xfd, 0xd6, 0x2d, 0x8d, 0x02, 0x42, 0xfd, 0x4d, 0xaa, 0x09, 0xfd, 0x85, 0x6e, 0x75, 0xf4, 0xe3, 0x43, 0xc7, 0x26, 0x0e, 0xa6, 0x77, 0xf7, 0x53, 0xa6, 0x27, 0xae, 0xd0, 0x8c, 0xb9, 0x6c, 0x44, 0x4e, 0x29, 0xbd, 0xb5, 0xb5, 0x38, 0x5d, 0x43, 0x84, 0x3b, 0xbe, 0x79, 0xa3, 0xdd, 0xa3, 0x6e, 0x1e, 0x11, 0x01, 0xc5, 0x0f, };
22702 static const ec_test_case ed25519_987_test_case = {
22703 	.name = "EDDSA25519-SHA512/wei25519 987",
22704 	.ec_str_p = &wei25519_str_params,
22705 	.priv_key = ed25519_987_test_vectors_priv_key,
22706 	.priv_key_len = sizeof(ed25519_987_test_vectors_priv_key),
22707 	.nn_random = NULL,
22708 	.hash_type = SHA512,
22709 	.msg = (const char *)ed25519_987_test_vectors_message,
22710 	.msglen = sizeof(ed25519_987_test_vectors_message),
22711 	.sig_type = EDDSA25519,
22712 	.exp_sig = ed25519_987_test_vectors_expected_sig,
22713 	.exp_siglen = sizeof(ed25519_987_test_vectors_expected_sig),
22714 	.adata = NULL,
22715 	.adata_len = 0
22716 };
22717 
22718 /************************************************/
22719 static const u8 ed25519_988_test_vectors_priv_key[] = {
22720 	0xbf, 0x3c, 0x0c, 0xbb, 0xbe, 0x20, 0xbe, 0x2a, 0xcf, 0xaf, 0xb2, 0x7a, 0x36, 0x11, 0xb4, 0x89, 0x21, 0xa7, 0x28, 0xab, 0x17, 0x33, 0x4b, 0x8a, 0xfd, 0xee, 0x83, 0x05, 0x17, 0x8f, 0x61, 0x3b, };
22721 static const u8 ed25519_988_test_vectors_message[] = {
22722 	0x8f, 0x30, 0xba, 0x2f, 0x79, 0x2e, 0x9a, 0x97, 0xf6, 0xea, 0xfe, 0x29, 0xf9, 0x76, 0xa4, 0x80, 0x28, 0xcb, 0x88, 0x57, 0xb5, 0xc7, 0x98, 0xbc, 0x2b, 0x61, 0x68, 0xc4, 0x64, 0x44, 0xc0, 0xce, 0x69, 0x60, 0x70, 0x37, 0x4c, 0x5e, 0x6a, 0x40, 0xc3, 0xd1, 0x8a, 0x5d, 0xc7, 0x66, 0x9f, 0xc4, 0x1d, 0xb9, 0xa8, 0x1c, 0xff, 0x75, 0x9b, 0x8c, 0xa0, 0x15, 0x98, 0x71, 0xc3, 0x44, 0x2e, 0x8c, 0x75, 0x12, 0x69, 0x8f, 0xa4, 0x47, 0xb5, 0x78, 0x3e, 0xe0, 0x1d, 0x1b, 0x61, 0x14, 0x49, 0xab, 0xad, 0x23, 0x71, 0x62, 0x92, 0x2b, 0x02, 0xd1, 0xae, 0xc5, 0xde, 0x1d, 0x66, 0x6f, 0x17, 0xda, 0x16, 0x13, 0x10, 0x63, 0x01, 0xd3, 0x05, 0x86, 0xd1, 0x16, 0xe2, 0xac, 0x09, 0x00, 0x7d, 0xd7, 0x1e, 0x81, 0x23, 0xed, 0xe4, 0xc5, 0xa6, 0xa9, 0xac, 0x07, 0x7f, 0xe3, 0xd9, 0x39, 0x09, 0xda, 0x62, 0x8e, 0x86, 0x58, 0x70, 0xa4, 0xe2, 0x5c, 0xb3, 0x55, 0x91, 0x67, 0x5a, 0x06, 0x90, 0xbe, 0xc4, 0xaf, 0x02, 0x81, 0x71, 0x4f, 0xe6, 0x66, 0x1b, 0xd5, 0xc0, 0x0a, 0x27, 0xd7, 0x9f, 0x95, 0x9f, 0xb4, 0xd4, 0xfb, 0x16, 0x36, 0xa6, 0xa3, 0x57, 0x5f, 0x4f, 0x01, 0x47, 0x06, 0x63, 0x89, 0x9d, 0x73, 0x74, 0x72, 0xb0, 0x96, 0xbe, 0x4d, 0xb7, 0x23, 0x71, 0x53, 0x67, 0xa4, 0x1a, 0x3a, 0x4c, 0x13, 0xf7, 0x42, 0xd9, 0x08, 0xf4, 0xd9, 0x21, 0xcf, 0xdd, 0x15, 0x6e, 0x75, 0x86, 0x82, 0x61, 0xba, 0x9c, 0x10, 0xd8, 0x58, 0x74, 0xca, 0x2d, 0x6c, 0x0c, 0x9e, 0x72, 0x95, 0xe5, 0x66, 0x2b, 0xd9, 0x16, 0xa3, 0x63, 0xc7, 0xa7, 0x96, 0xea, 0xd6, 0x17, 0xc4, 0x25, 0x1e, 0x67, 0x94, 0xda, 0x06, 0xc3, 0xd0, 0x8f, 0x2f, 0xdc, 0x38, 0x86, 0x94, 0x4a, 0x75, 0x09, 0xe6, 0x40, 0x9c, 0x90, 0x6b, 0x59, 0x31, 0x13, 0xb4, 0xb1, 0xf9, 0x85, 0x01, 0x32, 0x96, 0x0d, 0x9f, 0x3a, 0x4e, 0xeb, 0x73, 0x86, 0xfa, 0x59, 0x2f, 0x61, 0x93, 0xbe, 0xab, 0x8e, 0x0f, 0xf0, 0xf2, 0x89, 0x08, 0xa0, 0xd5, 0x48, 0xdb, 0x87, 0xba, 0xe9, 0x78, 0xb0, 0x5a, 0xbb, 0xca, 0x9b, 0x3e, 0x96, 0xd8, 0x79, 0x5b, 0x88, 0x07, 0x7f, 0x62, 0x0f, 0x21, 0x24, 0xe3, 0x15, 0x90, 0xeb, 0x09, 0x9e, 0x94, 0xe0, 0xe6, 0xe3, 0xcd, 0x62, 0x0a, 0xe6, 0x29, 0x0f, 0x3e, 0x2d, 0x01, 0x46, 0x7e, 0x5b, 0xef, 0x4f, 0xab, 0xde, 0xf7, 0x9d, 0x9a, 0xb9, 0x23, 0x9e, 0x75, 0x3e, 0xc4, 0xfa, 0x0b, 0xb1, 0x10, 0xff, 0x1d, 0x39, 0x3f, 0xca, 0x02, 0x24, 0x35, 0x02, 0xd7, 0xe9, 0x87, 0x99, 0x1e, 0xb7, 0x6d, 0x08, 0xf8, 0xbe, 0x7e, 0xb2, 0xb1, 0xee, 0x00, 0xc3, 0xb6, 0x8b, 0xbf, 0x72, 0xa6, 0x23, 0xba, 0xa1, 0x5b, 0xe8, 0x96, 0xb3, 0x21, 0x5e, 0xbe, 0x8a, 0x82, 0x31, 0x31, 0x09, 0xfc, 0x62, 0x9b, 0x0c, 0xce, 0x64, 0x91, 0xf8, 0x13, 0xc2, 0x49, 0x70, 0xe4, 0xff, 0xe6, 0x86, 0x9e, 0x40, 0xb4, 0x6b, 0x4e, 0xd2, 0x29, 0x86, 0xd0, 0x04, 0x21, 0x55, 0x27, 0x6c, 0x23, 0x0d, 0xe4, 0xc0, 0x5d, 0x67, 0x85, 0x52, 0xf2, 0xe8, 0x51, 0xca, 0xcf, 0x5a, 0x47, 0x21, 0x57, 0xdb, 0xb1, 0xa9, 0x9a, 0x2b, 0x42, 0xff, 0x40, 0x37, 0xf0, 0xdc, 0x63, 0x80, 0x67, 0x29, 0x21, 0xc9, 0x09, 0x20, 0x6e, 0x80, 0x05, 0x0e, 0x61, 0xa6, 0xb3, 0x05, 0x6b, 0x17, 0xe3, 0xae, 0x83, 0x50, 0x09, 0xb2, 0x04, 0x19, 0xa3, 0xb9, 0x84, 0x6d, 0x37, 0x48, 0x92, 0xe7, 0x19, 0xf1, 0xb3, 0x5b, 0xc1, 0x25, 0x7d, 0xa9, 0x3c, 0xcc, 0x6d, 0x8f, 0x8f, 0xca, 0xa8, 0xe6, 0x09, 0xa8, 0xd2, 0x04, 0xdf, 0x10, 0x8b, 0xe7, 0x19, 0x34, 0x67, 0xe7, 0xf1, 0x05, 0x93, 0x52, 0x82, 0xc3, 0xfe, 0x66, 0x70, 0xa5, 0x32, 0x94, 0x42, 0xea, 0x3e, 0xdd, 0xa2, 0x37, 0x6a, 0x03, 0xa1, 0xcf, 0xe8, 0x72, 0x3a, 0x90, 0x9c, 0x06, 0x4d, 0x30, 0xfe, 0x9b, 0xb0, 0x21, 0x2c, 0x33, 0xaf, 0xe2, 0xbe, 0xa3, 0x0c, 0x91, 0x43, 0xc0, 0x01, 0xda, 0x01, 0xc7, 0xed, 0x50, 0x45, 0x59, 0xb9, 0x7f, 0xe2, 0xce, 0xa0, 0x9b, 0xeb, 0x9d, 0xb5, 0x19, 0x00, 0xdc, 0x13, 0x67, 0x05, 0x92, 0x1e, 0x20, 0x29, 0x78, 0x45, 0xba, 0x72, 0xa9, 0x7a, 0xa7, 0xc9, 0x53, 0x81, 0x45, 0x71, 0xbe, 0x3f, 0x08, 0xce, 0xf9, 0x68, 0x04, 0x5a, 0x5a, 0xc3, 0x40, 0x04, 0xf6, 0x7f, 0xbf, 0xa5, 0x4e, 0x99, 0x6b, 0x31, 0x1b, 0xd8, 0xdc, 0x52, 0x7d, 0x89, 0xe1, 0xd4, 0xf5, 0x34, 0x53, 0xa6, 0x71, 0x37, 0x20, 0x10, 0x1c, 0x45, 0xa6, 0x0e, 0xe3, 0xa0, 0x5c, 0x2e, 0xe6, 0x6f, 0x13, 0x4b, 0x5a, 0xf4, 0x0e, 0x4b, 0x70, 0xef, 0x37, 0xba, 0x3f, 0x0a, 0xfd, 0xef, 0xc0, 0x39, 0xf3, 0x42, 0xc2, 0x8a, 0xf9, 0x19, 0x82, 0x51, 0x38, 0x1a, 0x10, 0x79, 0xa5, 0xdd, 0x03, 0x5a, 0x8c, 0x28, 0x97, 0x6c, 0x6b, 0x7f, 0x4d, 0xb0, 0x9e, 0xa3, 0x83, 0xa3, 0xa8, 0x7f, 0x0f, 0x85, 0x1f, 0xd3, 0x31, 0xae, 0xa7, 0xfa, 0x4b, 0xfc, 0xd9, 0x56, 0x31, 0xd6, 0x52, 0xfa, 0x2f, 0x50, 0xf1, 0xc2, 0x3f, 0xf2, 0xbc, 0x13, 0x7a, 0x06, 0x04, 0xe3, 0xd9, 0xf3, 0x9c, 0xcb, 0x96, 0x51, 0x45, 0xbc, 0xa4, 0x8b, 0x06, 0xdc, 0x8a, 0x81, 0x75, 0x47, 0xb6, 0x25, 0xef, 0xfa, 0x79, 0x6d, 0x00, 0x0c, 0x37, 0x74, 0xba, 0xd1, 0x98, 0xdb, 0x12, 0x41, 0xbe, 0x7a, 0x2c, 0x0d, 0xc4, 0xa4, 0x64, 0x1b, 0x9a, 0x8c, 0xb9, 0xcb, 0x8c, 0x8c, 0x38, 0x87, 0x57, 0x6f, 0x52, 0x72, 0xc3, 0x3a, 0xaf, 0xfe, 0x45, 0x61, 0x5f, 0x51, 0xa9, 0x6f, 0xae, 0x76, 0xcf, 0x51, 0x25, 0xbc, 0x69, 0xad, 0x0a, 0x40, 0x38, 0x79, 0x07, 0x99, 0xb5, 0xc2, 0x62, 0x44, 0x21, 0xa6, 0x43, 0x3d, 0xba, 0xb3, 0x9c, 0xcc, 0xb0, 0xb1, 0x78, 0x7b, 0x5b, 0xce, 0x28, 0x95, 0x94, 0x48, 0x9d, 0x17, 0xed, 0xb5, 0xf9, 0x31, 0x03, 0x74, 0x80, 0x7d, 0x36, 0xc6, 0xe6, 0x73, 0x47, 0x26, 0xbb, 0x33, 0x00, 0x4e, 0xca, 0xe8, 0xbb, 0x69, 0x1d, 0xcd, 0x38, 0x76, 0x01, 0xf4, 0xea, 0x91, 0x1b, 0x4b, 0x90, 0xeb, 0xff, 0x75, 0x6d, 0x7d, 0x8d, 0x9e, 0xb4, 0x22, 0xcb, 0xb9, 0xaa, 0xf7, 0xf4, 0x77, 0x2e, 0x0a, 0x54, 0x36, 0x43, 0x06, 0x85, 0xe5, 0x7b, 0x69, 0x74, 0x54, 0xe8, 0x2e, 0xea, 0xdc, 0xe4, 0xab, 0xa0, 0x62, 0xb7, 0x76, 0x82, 0xcf, 0x21, 0x9b, 0xe1, 0xfd, 0x9b, 0x00, 0xf1, 0xcb, 0x11, 0x35, 0xa1, 0x02, 0x13, 0x49, 0x53, 0x9a, 0x4b, 0x93, 0xae, 0x21, 0x3f, 0x19, 0x3d, 0x29, 0x32, 0x73, 0x8e, 0xf7, 0x29, 0x20, 0x49, 0x9b, 0x7b, 0xe2, 0xa8, 0x1c, 0x9b, 0xaa, 0xed, 0x17, 0xc5, 0x46, 0x41, 0xa5, 0x97, 0x4d, 0x27, 0x22, 0x32, 0x41, 0xe3, 0xc6, 0xa0, 0x95, 0x22, 0x6b, 0xd2, 0x37, 0xe0, 0x59, 0x1e, 0x00, 0x2b, 0x3a, 0xf0, 0x56, 0x5d, 0xf3, 0xe9, 0x76, 0x42, 0x0f, 0x97, 0x64, 0xa0, 0x9a, 0xe8, 0xbf, 0xa2, 0x79, 0x5f, 0x8f, 0xad, 0x7f, 0xc6, 0x87, 0xbd, 0x2d, 0xe2, 0x3d, 0x14, 0x88, 0xf4, 0x49, 0xd8, };
22723 static const u8 ed25519_988_test_vectors_expected_sig[] = {
22724 	0x8f, 0x87, 0x03, 0xbc, 0xf4, 0xc0, 0x32, 0x94, 0x17, 0x33, 0x9e, 0xb0, 0x26, 0xf2, 0xb7, 0x2d, 0x31, 0x4d, 0x92, 0x2e, 0x9a, 0xcc, 0xb5, 0xd8, 0xbb, 0x7e, 0xec, 0x87, 0xe0, 0x7e, 0x61, 0x38, 0x55, 0x16, 0x72, 0xa6, 0x13, 0x2c, 0xb4, 0xf8, 0x75, 0x50, 0x8e, 0xd3, 0x29, 0x95, 0x67, 0xb4, 0xa7, 0x41, 0x34, 0xd2, 0xbd, 0xf0, 0xd8, 0x57, 0xf9, 0x80, 0x86, 0x1d, 0x18, 0xbe, 0x7e, 0x01, };
22725 static const ec_test_case ed25519_988_test_case = {
22726 	.name = "EDDSA25519-SHA512/wei25519 988",
22727 	.ec_str_p = &wei25519_str_params,
22728 	.priv_key = ed25519_988_test_vectors_priv_key,
22729 	.priv_key_len = sizeof(ed25519_988_test_vectors_priv_key),
22730 	.nn_random = NULL,
22731 	.hash_type = SHA512,
22732 	.msg = (const char *)ed25519_988_test_vectors_message,
22733 	.msglen = sizeof(ed25519_988_test_vectors_message),
22734 	.sig_type = EDDSA25519,
22735 	.exp_sig = ed25519_988_test_vectors_expected_sig,
22736 	.exp_siglen = sizeof(ed25519_988_test_vectors_expected_sig),
22737 	.adata = NULL,
22738 	.adata_len = 0
22739 };
22740 
22741 /************************************************/
22742 static const u8 ed25519_989_test_vectors_priv_key[] = {
22743 	0x28, 0x7f, 0xaf, 0xd2, 0x13, 0x74, 0x57, 0x2f, 0x57, 0x81, 0x00, 0x47, 0xd0, 0xd9, 0x8c, 0xb1, 0xff, 0x3d, 0x01, 0x20, 0xfa, 0xa4, 0x88, 0x61, 0x32, 0x24, 0x57, 0x32, 0xc1, 0xa6, 0xab, 0x78, };
22744 static const u8 ed25519_989_test_vectors_message[] = {
22745 	0xb3, 0xc4, 0x43, 0xe4, 0xe5, 0x89, 0x9c, 0x16, 0xd3, 0x9e, 0x81, 0xb4, 0xf8, 0x07, 0x40, 0x42, 0xa9, 0x04, 0xa7, 0x35, 0x07, 0x4b, 0x27, 0x95, 0xd9, 0xac, 0x06, 0xb1, 0x37, 0x9e, 0xf7, 0x61, 0x8d, 0x2a, 0x53, 0x4b, 0x6b, 0xef, 0x81, 0x56, 0x9e, 0x60, 0x71, 0x92, 0x67, 0xbf, 0x29, 0xcd, 0x9d, 0x16, 0xac, 0xc9, 0xa1, 0x74, 0xd8, 0x02, 0x6b, 0x14, 0xb1, 0x27, 0xd0, 0xd2, 0xd8, 0xb4, 0x58, 0x39, 0x98, 0x89, 0x5a, 0xd7, 0xef, 0x72, 0xfe, 0xdc, 0x53, 0xb8, 0xf0, 0x8a, 0x22, 0x50, 0x10, 0x0e, 0x1f, 0x1f, 0x0a, 0xab, 0x48, 0xbc, 0x70, 0x74, 0x64, 0x34, 0x88, 0xe6, 0xb6, 0x70, 0xe1, 0xb0, 0x72, 0x7c, 0x38, 0x5a, 0x34, 0xff, 0x65, 0xa0, 0xd7, 0xe8, 0x3b, 0xa8, 0x60, 0x83, 0xb8, 0x73, 0xdf, 0xf0, 0x55, 0x92, 0x09, 0xb1, 0x4b, 0x2a, 0xc4, 0x2b, 0xf7, 0xc5, 0x72, 0xd0, 0xc5, 0x91, 0x7a, 0xc4, 0x2e, 0x4a, 0xe4, 0xda, 0xe1, 0xdd, 0x42, 0x35, 0x79, 0x52, 0x76, 0xa0, 0x76, 0x13, 0x2c, 0xfe, 0x3e, 0x0c, 0x35, 0x0b, 0x26, 0x58, 0x0f, 0xbb, 0x3a, 0xf8, 0x17, 0x77, 0xb9, 0x3a, 0xd9, 0x5c, 0xb7, 0xff, 0x17, 0xc2, 0xd9, 0x80, 0xce, 0x0d, 0x49, 0x2f, 0x6d, 0x40, 0xfa, 0x90, 0xba, 0x3f, 0xca, 0xa2, 0x1b, 0xb6, 0x87, 0x35, 0xee, 0x1e, 0xf2, 0x08, 0x49, 0x5e, 0xbf, 0x7b, 0x02, 0x27, 0x6f, 0xfa, 0x1e, 0xfc, 0x08, 0x16, 0x58, 0xbb, 0x44, 0xcd, 0x27, 0x61, 0xef, 0x5e, 0x3e, 0x1c, 0xa6, 0x0e, 0xc8, 0xb5, 0xd8, 0x16, 0xd4, 0xab, 0xac, 0xd0, 0xbc, 0xc8, 0x02, 0x68, 0xd8, 0xf4, 0xdf, 0x8b, 0x3a, 0x52, 0x04, 0x9d, 0xb0, 0x15, 0x7e, 0x2b, 0x6e, 0x81, 0xac, 0xd6, 0xf3, 0xf2, 0x89, 0x47, 0xc0, 0x76, 0x27, 0x95, 0x5c, 0xda, 0xc9, 0xea, 0xa1, 0xde, 0x17, 0xd4, 0xb9, 0xda, 0xa3, 0x61, 0xfb, 0x49, 0x78, 0x26, 0x64, 0xd7, 0xd6, 0xd2, 0xca, 0x5c, 0xec, 0x6d, 0x14, 0x89, 0x3c, 0x3e, 0x80, 0xb6, 0xd1, 0x6d, 0xaa, 0xcf, 0xfc, 0xc0, 0xb7, 0x59, 0x37, 0xe8, 0xbe, 0xf6, 0xf9, 0xe1, 0x12, 0xa8, 0x7f, 0x4b, 0x03, 0x5f, 0x90, 0x36, 0x07, 0x0a, 0x2c, 0xcc, 0x55, 0xc2, 0xaa, 0xd9, 0x39, 0xdf, 0x67, 0x4f, 0x7e, 0x4e, 0x12, 0x68, 0x5e, 0x01, 0x6e, 0xa0, 0xe4, 0x90, 0x2a, 0xaa, 0xaf, 0xaf, 0xfe, 0x38, 0xdd, 0xb2, 0xf9, 0x0d, 0x9c, 0xf7, 0x85, 0x37, 0xf6, 0x13, 0x91, 0x69, 0x6f, 0xf0, 0x33, 0x0a, 0xe8, 0xf7, 0x9a, 0x1c, 0x1e, 0xd5, 0xd5, 0x2b, 0x4e, 0xe2, 0xa6, 0x2d, 0x90, 0xfb, 0x82, 0xd9, 0xa4, 0x83, 0x93, 0xfa, 0x33, 0x81, 0x0b, 0x40, 0xd0, 0x45, 0x59, 0x02, 0xd5, 0x74, 0xff, 0x05, 0x20, 0x03, 0xe0, 0x16, 0x0c, 0x0f, 0x47, 0xb5, 0xe5, 0x80, 0xa0, 0x78, 0xbc, 0xee, 0xf0, 0x60, 0x73, 0xdd, 0xa8, 0xb2, 0xd1, 0xf1, 0x04, 0xa5, 0x95, 0xe9, 0x0b, 0xb6, 0xa4, 0x8e, 0xdd, 0xd8, 0x65, 0xf1, 0xca, 0xe4, 0xf1, 0x78, 0xfe, 0x22, 0xe7, 0x5f, 0x2f, 0x61, 0x24, 0xa9, 0xda, 0x06, 0x82, 0x44, 0x71, 0x12, 0xb3, 0xdb, 0x5b, 0xe8, 0xc4, 0x24, 0x72, 0xb2, 0x41, 0xe9, 0x44, 0xfd, 0x23, 0x70, 0xc2, 0xdc, 0x27, 0x15, 0xc0, 0x5a, 0x41, 0xbd, 0xbc, 0x89, 0x0c, 0x41, 0xc6, 0x5f, 0xb0, 0x8c, 0x2f, 0x59, 0x31, 0x74, 0x39, 0x1a, 0xc8, 0x80, 0xf3, 0xcb, 0x67, 0xd1, 0xb7, 0x4f, 0xf8, 0x02, 0xef, 0x96, 0x2a, 0xfe, 0xf7, 0xb9, 0xf3, 0xea, 0x32, 0x6f, 0x95, 0x27, 0xe7, 0xfb, 0xa6, 0x98, 0x18, 0x79, 0x24, 0xb6, 0x4c, 0xcd, 0xd0, 0x86, 0x62, 0x48, 0xc7, 0x6e, 0xe6, 0x4c, 0x79, 0x06, 0x9b, 0xe0, 0xa0, 0x57, 0xb1, 0x0a, 0xe1, 0x90, 0xf3, 0x8f, 0xf5, 0xab, 0xa8, 0x44, 0xe3, 0x93, 0x31, 0xcf, 0x1d, 0xb1, 0x3c, 0x90, 0x09, 0x06, 0xbe, 0xe0, 0xd7, 0xe7, 0x54, 0x6e, 0xf5, 0x23, 0x24, 0xe3, 0x7c, 0x59, 0x06, 0x75, 0xf1, 0x39, 0xf5, 0x8f, 0x57, 0x3a, 0x49, 0x4f, 0x4a, 0xe8, 0x2c, 0x4e, 0xc8, 0x10, 0x66, 0xa6, 0x8e, 0x2d, 0x92, 0x90, 0x01, 0x91, 0xc4, 0x7d, 0x30, 0x62, 0xf0, 0xf9, 0xaa, 0xed, 0x19, 0x11, 0x37, 0xcd, 0xa9, 0xb8, 0x3c, 0xd1, 0x30, 0xe8, 0x26, 0x29, 0x60, 0xe6, 0x24, 0x4f, 0x8f, 0x6e, 0xf3, 0x9f, 0x15, 0xa4, 0xfe, 0xd1, 0x3c, 0xb6, 0x69, 0xed, 0xc1, 0x9f, 0x5c, 0xe1, 0x62, 0xce, 0xb8, 0xd2, 0x42, 0xb9, 0xad, 0xdb, 0xfb, 0xa8, 0x77, 0x2c, 0xe7, 0x49, 0x85, 0xa5, 0xf3, 0x72, 0x0d, 0x59, 0x0a, 0x92, 0x0e, 0x1d, 0xca, 0x75, 0xa8, 0x79, 0xb1, 0xaa, 0x45, 0x9f, 0x74, 0x62, 0xff, 0xf2, 0xe9, 0x50, 0x72, 0x76, 0x1b, 0x20, 0x92, 0x54, 0xfe, 0x38, 0xc5, 0x4d, 0x83, 0x3a, 0x8e, 0x2c, 0xb8, 0xfc, 0x40, 0xc5, 0x98, 0xf3, 0xc7, 0xf7, 0xd6, 0xc5, 0x70, 0x57, 0x15, 0xd0, 0x30, 0x8d, 0xc3, 0x0e, 0xaa, 0x84, 0x67, 0x6d, 0x20, 0x9d, 0x7b, 0x7b, 0x31, 0x34, 0x47, 0x56, 0xe6, 0x9a, 0x9a, 0x4c, 0xb4, 0xe4, 0xa2, 0x51, 0x81, 0x7a, 0x37, 0x86, 0xfe, 0xa6, 0x72, 0x8d, 0xd6, 0x08, 0x22, 0x33, 0x6b, 0x45, 0xae, 0x5d, 0x47, 0xc7, 0x04, 0xb4, 0x5c, 0x4c, 0xad, 0x38, 0xc1, 0xe0, 0x1a, 0xb9, 0x3d, 0x14, 0x16, 0x92, 0xd5, 0x5d, 0x12, 0xfd, 0xb9, 0x74, 0x0f, 0x1d, 0x18, 0x15, 0x82, 0xf1, 0xc4, 0x8c, 0xe5, 0x43, 0x48, 0x60, 0xd9, 0x30, 0xf0, 0xe7, 0xe7, 0x0e, 0xdc, 0xff, 0xb8, 0x55, 0x60, 0xa5, 0x3d, 0xba, 0x95, 0xd5, 0x7b, 0x31, 0xe8, 0x92, 0x41, 0x37, 0xbc, 0x2c, 0x19, 0xe3, 0x4b, 0xb9, 0xc9, 0x86, 0x68, 0x77, 0x17, 0x42, 0x80, 0xe8, 0x0c, 0x23, 0x97, 0x8d, 0x57, 0x79, 0x58, 0x64, 0xa7, 0x37, 0x4a, 0xef, 0x38, 0x3f, 0x3b, 0xf6, 0x37, 0x53, 0x59, 0xbf, 0x63, 0x56, 0x47, 0x40, 0x09, 0x84, 0x61, 0xa6, 0xc7, 0x6e, 0x8f, 0x23, 0x89, 0x13, 0x28, 0x87, 0x69, 0xa1, 0xcb, 0x1c, 0x95, 0xb2, 0x2c, 0x32, 0xa9, 0xeb, 0xb3, 0xec, 0xeb, 0x04, 0x8e, 0xe3, 0x24, 0xcf, 0x0d, 0x7e, 0x85, 0xa3, 0x89, 0xb0, 0x4d, 0xed, 0xbb, 0xcb, 0xee, 0xf2, 0x98, 0xd0, 0x52, 0x78, 0x16, 0x08, 0x5c, 0x0c, 0x83, 0xef, 0xaa, 0x29, 0x85, 0x46, 0xe8, 0x39, 0x0b, 0xd1, 0xbf, 0xe4, 0x65, 0xec, 0x1b, 0xaf, 0xae, 0x69, 0xee, 0x52, 0x18, 0xe7, 0x2c, 0xae, 0xdb, 0x9b, 0x64, 0x9c, 0xf7, 0x3e, 0xec, 0x45, 0x4a, 0x2b, 0x48, 0x49, 0x65, 0x17, 0x96, 0x72, 0xde, 0xbc, 0xf9, 0x44, 0x13, 0x63, 0x99, 0x5a, 0x8a, 0x90, 0x7d, 0xe1, 0x7d, 0xc0, 0x68, 0x4f, 0x2a, 0xea, 0x57, 0x9a, 0x2f, 0xb4, 0x48, 0x41, 0x95, 0xdb, 0x41, 0x15, 0xca, 0x32, 0xe9, 0x70, 0x52, 0x6d, 0xc0, 0x0a, 0x5c, 0xac, 0xaf, 0x58, 0x87, 0x11, 0xdb, 0xd4, 0x69, 0xce, 0x80, 0xbd, 0x29, 0x7c, 0x4f, 0x41, 0xd6, 0xfa, 0x28, 0xa5, 0x97, 0xc6, 0x37, 0x2c, 0x0d, 0x21, 0x49, 0x60, 0xb5, 0x45, 0x98, 0xcd, 0x8b, 0xc8, 0x49, 0xeb, 0xdc, 0xa3, 0x6d, 0x62, 0x25, 0xb2, 0x0d, 0xec, 0x0d, 0x03, 0x11, 0x69, 0xce, 0xbb, 0x36, 0xea, 0xdc, 0x3a, };
22746 static const u8 ed25519_989_test_vectors_expected_sig[] = {
22747 	0x62, 0x01, 0xe3, 0x05, 0x91, 0xd3, 0x6b, 0x7b, 0x22, 0x6e, 0x36, 0xfd, 0xf5, 0x64, 0x34, 0xc4, 0x7c, 0xd3, 0x05, 0x18, 0x37, 0xaf, 0x31, 0x31, 0x3a, 0x99, 0x17, 0xfd, 0x02, 0xdd, 0xed, 0x2b, 0x5b, 0xbb, 0x4b, 0xbc, 0x36, 0x8b, 0x3b, 0xd1, 0x5d, 0x06, 0x20, 0x45, 0xf1, 0x05, 0xb6, 0xe7, 0x34, 0x1b, 0x15, 0x15, 0x0d, 0x36, 0xf9, 0x00, 0x87, 0x59, 0x1d, 0x83, 0x99, 0x01, 0xb8, 0x01, };
22748 static const ec_test_case ed25519_989_test_case = {
22749 	.name = "EDDSA25519-SHA512/wei25519 989",
22750 	.ec_str_p = &wei25519_str_params,
22751 	.priv_key = ed25519_989_test_vectors_priv_key,
22752 	.priv_key_len = sizeof(ed25519_989_test_vectors_priv_key),
22753 	.nn_random = NULL,
22754 	.hash_type = SHA512,
22755 	.msg = (const char *)ed25519_989_test_vectors_message,
22756 	.msglen = sizeof(ed25519_989_test_vectors_message),
22757 	.sig_type = EDDSA25519,
22758 	.exp_sig = ed25519_989_test_vectors_expected_sig,
22759 	.exp_siglen = sizeof(ed25519_989_test_vectors_expected_sig),
22760 	.adata = NULL,
22761 	.adata_len = 0
22762 };
22763 
22764 /************************************************/
22765 static const u8 ed25519_990_test_vectors_priv_key[] = {
22766 	0x9a, 0xd0, 0x49, 0x10, 0x08, 0x51, 0xd0, 0xf7, 0x9b, 0x71, 0x12, 0x25, 0xc9, 0x88, 0x47, 0x79, 0x5a, 0xcf, 0xc3, 0x60, 0x1c, 0x14, 0xb8, 0xa9, 0x77, 0x8d, 0x62, 0x70, 0xcd, 0x4c, 0x05, 0xed, };
22767 static const u8 ed25519_990_test_vectors_message[] = {
22768 	0xc2, 0x84, 0xbd, 0xd8, 0xf8, 0x27, 0x5b, 0x49, 0xac, 0x80, 0x8c, 0x39, 0x04, 0x5e, 0x50, 0xe1, 0xed, 0x50, 0xc8, 0xa1, 0xaf, 0xd0, 0x11, 0xaf, 0xe5, 0xdb, 0x3d, 0xda, 0x62, 0x0b, 0xe8, 0xae, 0xc3, 0x7f, 0x45, 0x60, 0x57, 0x62, 0xe2, 0x25, 0xd0, 0x41, 0x11, 0xf2, 0x1b, 0x49, 0xfc, 0xef, 0xca, 0x3f, 0x3d, 0x5f, 0x81, 0x3b, 0x20, 0x20, 0xa5, 0x2c, 0x49, 0xf9, 0x5c, 0x4a, 0xd6, 0x1c, 0xa2, 0x14, 0x61, 0x8a, 0xde, 0x7e, 0xed, 0x6c, 0xd8, 0xd3, 0x14, 0xdc, 0x4c, 0x63, 0x55, 0x95, 0x52, 0x77, 0xd4, 0x57, 0x46, 0x2f, 0x03, 0xb9, 0xfb, 0xa2, 0xe2, 0x25, 0xb1, 0xb5, 0x37, 0xcd, 0x4b, 0x52, 0x37, 0x50, 0x5c, 0x90, 0xd4, 0x32, 0x05, 0xe1, 0x71, 0x5c, 0x39, 0x63, 0xcc, 0xfb, 0xec, 0x37, 0x9e, 0x6c, 0x17, 0x05, 0xe0, 0x80, 0x34, 0xa3, 0x1a, 0xfc, 0xe6, 0x46, 0x72, 0x7e, 0x78, 0xa2, 0x0e, 0xed, 0x88, 0xae, 0xb0, 0xdc, 0xda, 0xbc, 0x5c, 0x86, 0xe8, 0x69, 0x79, 0xe6, 0x3a, 0x5c, 0x26, 0xc3, 0xe2, 0x17, 0x79, 0x73, 0xb6, 0x98, 0x3c, 0xeb, 0xfe, 0xda, 0x9f, 0x31, 0x47, 0x93, 0x61, 0xb6, 0x61, 0x76, 0x3a, 0xa7, 0x26, 0x1c, 0x09, 0x39, 0xca, 0xd4, 0x8b, 0x71, 0x90, 0x8e, 0xa9, 0x07, 0x68, 0xbb, 0x6c, 0x95, 0x83, 0xd8, 0xea, 0xeb, 0x9e, 0x03, 0x38, 0x51, 0x5a, 0xca, 0x12, 0x42, 0x62, 0x6d, 0xc6, 0xbe, 0x04, 0xec, 0xc4, 0x42, 0x9e, 0x4c, 0xbb, 0x4f, 0xf3, 0x36, 0x09, 0x61, 0x92, 0xf7, 0x50, 0x1e, 0xc4, 0x71, 0xb5, 0x96, 0xa9, 0x9d, 0x4c, 0x02, 0x75, 0x82, 0xcc, 0x69, 0xe2, 0x04, 0xb6, 0xfb, 0xcd, 0xdf, 0x59, 0xf5, 0xbf, 0x74, 0x62, 0xdd, 0xcd, 0x59, 0x89, 0x12, 0x1f, 0xd1, 0x0f, 0x11, 0xa0, 0x67, 0x5b, 0x6c, 0x4e, 0x4f, 0x65, 0x20, 0xd2, 0x7d, 0x7c, 0x61, 0x43, 0x1b, 0xa7, 0xd1, 0x74, 0xf5, 0x73, 0x95, 0xa0, 0xbf, 0x72, 0xd3, 0x8c, 0x11, 0x42, 0x73, 0x6d, 0xed, 0x6b, 0x91, 0xe4, 0x81, 0x1c, 0x0e, 0x85, 0x41, 0xa6, 0xc0, 0xd9, 0x96, 0xc5, 0xa1, 0x7d, 0xc9, 0x7d, 0xb3, 0x88, 0xf7, 0x21, 0xd2, 0x35, 0x7d, 0x3c, 0x6a, 0xf5, 0xc8, 0x6b, 0x1d, 0x5e, 0x47, 0x6e, 0xa0, 0xac, 0x0b, 0x1c, 0x11, 0xd4, 0x38, 0x7f, 0x76, 0x90, 0x39, 0xbd, 0xf5, 0x38, 0xa0, 0x21, 0x6e, 0xdd, 0x00, 0x45, 0xee, 0x6d, 0xd8, 0x9e, 0xef, 0x82, 0xa4, 0x25, 0xa8, 0x3f, 0xaa, 0x1b, 0x12, 0x80, 0x70, 0x38, 0xca, 0x19, 0xeb, 0xec, 0x00, 0x2e, 0x8b, 0x3c, 0x15, 0x34, 0x4c, 0x61, 0xcf, 0xd1, 0xe5, 0xf0, 0xe3, 0xb0, 0x27, 0x3d, 0xeb, 0x37, 0x27, 0x8c, 0xf1, 0x97, 0xd8, 0xa8, 0x3b, 0x13, 0xd9, 0x92, 0x30, 0x8a, 0x51, 0x37, 0x3e, 0xb3, 0x81, 0x14, 0xc9, 0xe4, 0x5b, 0x43, 0x87, 0x80, 0x27, 0x7d, 0x1e, 0x32, 0xf3, 0x97, 0x29, 0x62, 0xa3, 0xe1, 0x4a, 0x8d, 0x08, 0xdb, 0x9f, 0x09, 0xae, 0xc3, 0xdd, 0x32, 0xa5, 0xb9, 0x94, 0x23, 0xe6, 0x1f, 0x5e, 0x79, 0x94, 0x4a, 0xb5, 0x7a, 0x36, 0xf6, 0xec, 0x07, 0xcc, 0x32, 0x04, 0xf9, 0x16, 0x5e, 0xe0, 0x21, 0xad, 0xa9, 0x3e, 0x6f, 0xec, 0xb7, 0xec, 0x45, 0x6a, 0xa0, 0x28, 0x8c, 0x37, 0x8a, 0x75, 0xaf, 0xd6, 0xe9, 0xda, 0xd6, 0xc6, 0xf8, 0x8e, 0x95, 0x9a, 0x2c, 0xf2, 0x8b, 0xfe, 0x56, 0xd2, 0xe6, 0x1b, 0x2a, 0xda, 0xec, 0xf0, 0xd8, 0x6d, 0xd8, 0x92, 0x8b, 0xce, 0xda, 0x26, 0xb0, 0x54, 0x02, 0x46, 0xb7, 0x33, 0x7f, 0x5c, 0xdc, 0xec, 0x11, 0xfb, 0x0c, 0x1a, 0x59, 0xd6, 0x31, 0xfc, 0xca, 0x19, 0x40, 0x8f, 0x95, 0x22, 0xb6, 0x8a, 0x39, 0xf8, 0x6e, 0xf9, 0x70, 0xb8, 0x83, 0xa0, 0xf0, 0xbd, 0x6b, 0x7b, 0x14, 0x15, 0xec, 0x9a, 0xa0, 0x43, 0xb5, 0x2e, 0x19, 0xba, 0xc1, 0x76, 0xd6, 0x7b, 0x79, 0xe2, 0xa5, 0xdc, 0xa8, 0xbf, 0xd2, 0x91, 0x02, 0xac, 0x60, 0x8e, 0x47, 0x3e, 0x9f, 0x98, 0x2c, 0x3e, 0xc8, 0x93, 0x2d, 0x8a, 0xa8, 0xcd, 0x56, 0x52, 0x84, 0x49, 0x1d, 0xe5, 0x2f, 0x51, 0x6b, 0x9e, 0xbf, 0xb7, 0xdb, 0xe1, 0x29, 0x95, 0x11, 0xae, 0x73, 0x2c, 0x2a, 0xd1, 0xee, 0x49, 0x92, 0xb0, 0x77, 0xfa, 0xff, 0xc6, 0x5f, 0x48, 0x8f, 0x1b, 0xa2, 0x15, 0xda, 0x69, 0x79, 0x60, 0x09, 0x71, 0x19, 0x6d, 0x0f, 0xf3, 0xa0, 0x8a, 0xd9, 0xf0, 0x0e, 0x82, 0x9c, 0x1d, 0xe1, 0xaf, 0xca, 0x10, 0xca, 0x47, 0x6b, 0xe6, 0x64, 0xaa, 0xd2, 0x61, 0x88, 0x9b, 0x0e, 0xb7, 0xae, 0xb6, 0xed, 0x86, 0x37, 0x61, 0x89, 0x00, 0xac, 0xf4, 0x81, 0xe2, 0xd2, 0x24, 0xec, 0x64, 0xa6, 0xe6, 0xcf, 0x4f, 0xa4, 0xdf, 0x73, 0x1b, 0x7a, 0x4f, 0xee, 0xff, 0x25, 0x80, 0xc9, 0x9b, 0x6d, 0x75, 0xb4, 0xdc, 0xd0, 0x97, 0x69, 0x65, 0xcb, 0x2b, 0x0b, 0x56, 0x35, 0x22, 0x78, 0x42, 0xd0, 0x8a, 0x7d, 0x90, 0x7a, 0xae, 0xbc, 0x2f, 0xde, 0xd8, 0x00, 0x98, 0x11, 0xdc, 0xdd, 0x73, 0x35, 0x49, 0x21, 0x75, 0x3b, 0xc5, 0xde, 0xc0, 0x17, 0x68, 0x93, 0x35, 0xf5, 0x6d, 0x0f, 0xb7, 0xae, 0x21, 0x3b, 0x41, 0x79, 0x2b, 0x1f, 0x4e, 0xb1, 0x4a, 0x24, 0x53, 0x59, 0x77, 0xa3, 0x05, 0xb1, 0x9e, 0xb9, 0x83, 0x8d, 0xc6, 0xb5, 0x15, 0x28, 0xb9, 0x8a, 0x39, 0xbd, 0xa0, 0x60, 0x10, 0x71, 0x7a, 0x20, 0x8c, 0x34, 0x7a, 0xa1, 0x58, 0xee, 0xcd, 0xfd, 0x9a, 0x04, 0x72, 0xd3, 0xb8, 0xd9, 0x20, 0xf9, 0x69, 0xe1, 0x2b, 0x65, 0x91, 0x9b, 0xda, 0x38, 0xb4, 0x61, 0x94, 0x98, 0x50, 0xcc, 0x9c, 0xc1, 0x8d, 0x8e, 0x3b, 0xaa, 0x8c, 0x88, 0x6d, 0x93, 0xcd, 0x09, 0x6a, 0x20, 0x9d, 0x54, 0x3c, 0xa3, 0x37, 0x5f, 0xc4, 0xe7, 0xd6, 0x51, 0x03, 0xcb, 0x64, 0x24, 0xbe, 0xab, 0x44, 0xe8, 0xbc, 0x4a, 0x5b, 0x62, 0xc2, 0x9a, 0x01, 0xbc, 0xf4, 0x4d, 0xcc, 0x61, 0xe7, 0x67, 0x5c, 0x02, 0x5d, 0xec, 0x07, 0x24, 0x20, 0x01, 0x94, 0xbd, 0xe7, 0x4d, 0x72, 0xc0, 0x2e, 0x94, 0xa9, 0x46, 0xa7, 0x52, 0xf3, 0x60, 0x84, 0x57, 0xfd, 0x91, 0xf2, 0x92, 0x71, 0x57, 0x71, 0x48, 0x7d, 0x26, 0xca, 0xd4, 0xe5, 0xcf, 0x6e, 0xf7, 0xc6, 0xf7, 0x16, 0x27, 0xa4, 0xda, 0xf8, 0xa4, 0xc9, 0xb8, 0x91, 0xc1, 0xee, 0x8f, 0x04, 0xae, 0xaa, 0x99, 0xfe, 0x0c, 0x8b, 0x4e, 0x83, 0x3b, 0x76, 0x09, 0x06, 0x6b, 0x61, 0x32, 0xa9, 0x68, 0x89, 0x0e, 0x26, 0x95, 0xda, 0x22, 0xb2, 0xd8, 0x57, 0xc8, 0xc0, 0xad, 0x91, 0x87, 0xc9, 0x60, 0x69, 0xe4, 0x76, 0xe2, 0x7e, 0x46, 0x32, 0xc4, 0x47, 0xee, 0x76, 0x71, 0x4a, 0x31, 0xd1, 0xe5, 0x14, 0x9e, 0xcb, 0x33, 0x7e, 0xe1, 0x32, 0xf3, 0x55, 0x2d, 0xa3, 0x3a, 0xb2, 0xd6, 0xfa, 0x9d, 0x7e, 0x93, 0xf6, 0x8a, 0x77, 0xcb, 0xf1, 0x91, 0xcb, 0x06, 0xbc, 0x22, 0xf3, 0x47, 0x0a, 0xf6, 0xd7, 0x58, 0x1e, 0x3a, 0xcc, 0xbe, 0xca, 0x0b, 0x6f, 0xeb, 0x08, 0xa1, 0x4b, 0x9a, 0x80, 0xc1, 0xef, 0x59, 0x37, 0x4c, 0xcd, 0xc0, 0x52, 0x3c, 0x36, 0x84, 0x50, 0x4c, 0x01, 0x04, 0xbb, 0xa2, 0x2c, 0x10, };
22769 static const u8 ed25519_990_test_vectors_expected_sig[] = {
22770 	0xfe, 0xc0, 0xaf, 0x34, 0xcb, 0xc5, 0xcf, 0xfc, 0x56, 0xe9, 0x6d, 0xd5, 0xed, 0x59, 0x68, 0xe5, 0x2c, 0xbd, 0x42, 0x69, 0x84, 0x4f, 0xc3, 0x0e, 0x3a, 0xb0, 0xd3, 0x47, 0x2b, 0x5d, 0x18, 0x0c, 0x8d, 0x1b, 0x76, 0x90, 0x51, 0x8f, 0x41, 0xf1, 0x44, 0x38, 0xe7, 0xf3, 0xa8, 0x3d, 0x5e, 0x89, 0x76, 0xcb, 0x9a, 0x26, 0x15, 0x1f, 0xc4, 0x14, 0x9a, 0x32, 0x98, 0xd7, 0xe4, 0x2c, 0x05, 0x03, };
22771 static const ec_test_case ed25519_990_test_case = {
22772 	.name = "EDDSA25519-SHA512/wei25519 990",
22773 	.ec_str_p = &wei25519_str_params,
22774 	.priv_key = ed25519_990_test_vectors_priv_key,
22775 	.priv_key_len = sizeof(ed25519_990_test_vectors_priv_key),
22776 	.nn_random = NULL,
22777 	.hash_type = SHA512,
22778 	.msg = (const char *)ed25519_990_test_vectors_message,
22779 	.msglen = sizeof(ed25519_990_test_vectors_message),
22780 	.sig_type = EDDSA25519,
22781 	.exp_sig = ed25519_990_test_vectors_expected_sig,
22782 	.exp_siglen = sizeof(ed25519_990_test_vectors_expected_sig),
22783 	.adata = NULL,
22784 	.adata_len = 0
22785 };
22786 
22787 /************************************************/
22788 static const u8 ed25519_991_test_vectors_priv_key[] = {
22789 	0xde, 0x54, 0xe1, 0x3f, 0x9e, 0x2c, 0xc7, 0x54, 0x54, 0x6c, 0x99, 0xb3, 0x3b, 0x3d, 0x72, 0xf4, 0xd1, 0xf7, 0x71, 0x50, 0x38, 0xa9, 0x65, 0x9f, 0x33, 0x63, 0x65, 0x77, 0xbb, 0x52, 0x6a, 0xdb, };
22790 static const u8 ed25519_991_test_vectors_message[] = {
22791 	0xdc, 0x40, 0x41, 0xad, 0x61, 0x42, 0x3a, 0x12, 0xa0, 0x41, 0x13, 0x18, 0xa6, 0xe6, 0x2a, 0x5e, 0xf6, 0x4a, 0x19, 0xab, 0xe2, 0xd9, 0x85, 0x22, 0x97, 0xbe, 0x2d, 0x4a, 0x35, 0xeb, 0x86, 0x70, 0xca, 0x36, 0xc5, 0x21, 0x53, 0x1b, 0x30, 0x38, 0xac, 0xda, 0xee, 0xa2, 0xea, 0x01, 0xa0, 0xb6, 0x18, 0x78, 0x62, 0xa4, 0xe1, 0xa8, 0x9d, 0x4b, 0x81, 0xc5, 0x31, 0x8e, 0xd4, 0xd6, 0x71, 0x31, 0xbc, 0x38, 0xf8, 0x41, 0xa1, 0x42, 0xa2, 0xf6, 0xf3, 0x16, 0xdf, 0xf0, 0x76, 0x93, 0x9d, 0xc0, 0xeb, 0x81, 0xb2, 0x30, 0xfe, 0xa9, 0x88, 0x1f, 0x8f, 0x0f, 0xf7, 0xed, 0x0b, 0x29, 0x3f, 0x69, 0xb2, 0x89, 0xfe, 0x77, 0x08, 0x81, 0xfb, 0x37, 0x10, 0x80, 0x8e, 0x8e, 0x59, 0xe6, 0x4e, 0x19, 0x0c, 0x1e, 0x37, 0x9b, 0x9d, 0xd3, 0x48, 0xb0, 0x2c, 0x23, 0x47, 0xd7, 0xe2, 0x06, 0x96, 0x79, 0x0b, 0x62, 0x77, 0x6a, 0x2e, 0x82, 0x5b, 0xed, 0x69, 0x17, 0x03, 0x7c, 0xb6, 0x35, 0xc9, 0x2f, 0xbc, 0x76, 0xb4, 0xc5, 0x85, 0x10, 0x27, 0xe7, 0xf1, 0x38, 0x52, 0xee, 0x7e, 0x7c, 0x52, 0x57, 0x3a, 0x90, 0x30, 0xb7, 0x9f, 0x22, 0xb6, 0x0d, 0x58, 0x69, 0xef, 0xe6, 0x80, 0xc0, 0x16, 0x64, 0x92, 0x9f, 0xe9, 0xa0, 0x6f, 0xa3, 0x33, 0x05, 0x2b, 0xe1, 0xd6, 0xaf, 0x3a, 0x0b, 0x48, 0x2c, 0x33, 0x2e, 0x18, 0x05, 0x1e, 0x78, 0xb3, 0x33, 0x83, 0x9d, 0x6c, 0xb9, 0x3d, 0x93, 0xeb, 0xfb, 0x27, 0x7e, 0x42, 0x68, 0xfb, 0xee, 0xee, 0xba, 0x1e, 0x8f, 0x96, 0xa5, 0xc9, 0xe3, 0x28, 0xc4, 0x26, 0x72, 0x12, 0xca, 0xc2, 0x51, 0x21, 0x5b, 0xfa, 0xa7, 0x8f, 0xd8, 0x8a, 0x87, 0x41, 0x7a, 0x80, 0x60, 0x2d, 0xcd, 0x88, 0x28, 0xe8, 0x04, 0x00, 0xda, 0x30, 0x4e, 0x98, 0x98, 0x62, 0xd1, 0x32, 0x01, 0x08, 0x2d, 0xe3, 0x53, 0x09, 0x25, 0xe0, 0xed, 0xc2, 0xc1, 0x30, 0xa9, 0xa4, 0x19, 0x07, 0x1b, 0x31, 0x08, 0x8d, 0xa6, 0xf6, 0xff, 0x40, 0x56, 0x30, 0x1c, 0x12, 0x9f, 0xc2, 0x13, 0x52, 0x33, 0x62, 0x8d, 0x16, 0xd8, 0xbf, 0x16, 0x0f, 0x6c, 0xe8, 0x6d, 0x83, 0xcd, 0x4e, 0x29, 0xae, 0x0c, 0x73, 0x84, 0x3d, 0x70, 0xb5, 0x30, 0x56, 0xc5, 0xaf, 0x3f, 0x3d, 0xc5, 0x61, 0x27, 0x1c, 0xb5, 0xaf, 0xf3, 0x93, 0xf0, 0x80, 0x3a, 0xde, 0x07, 0x2d, 0x9c, 0xeb, 0x74, 0x5b, 0x61, 0x87, 0xb2, 0x8d, 0x24, 0x69, 0x67, 0x67, 0xd5, 0xc2, 0x1f, 0x4d, 0x4a, 0xc5, 0x8d, 0x5b, 0xb6, 0x6c, 0x5c, 0xad, 0xfe, 0xfb, 0x16, 0x26, 0xef, 0x93, 0xf7, 0x14, 0xc7, 0x82, 0xb6, 0xef, 0x3c, 0xcf, 0x4b, 0x44, 0xee, 0x75, 0xf0, 0xbb, 0x75, 0x7a, 0x25, 0xd9, 0xb4, 0x6a, 0x9d, 0x93, 0x1a, 0x03, 0x72, 0x7d, 0x49, 0x6a, 0x22, 0x81, 0x0c, 0x63, 0x4f, 0x5c, 0x1a, 0xe6, 0x0c, 0xbd, 0xf2, 0xf1, 0xea, 0x29, 0xb5, 0x46, 0x07, 0xcf, 0xf5, 0x0d, 0x9f, 0x8e, 0x03, 0xa0, 0xa4, 0x51, 0x3c, 0xf6, 0x8d, 0xfb, 0x61, 0x97, 0x73, 0x41, 0x1b, 0x61, 0x80, 0x95, 0x9a, 0x8a, 0xac, 0x30, 0xb2, 0xee, 0xe4, 0xad, 0x32, 0x79, 0x15, 0xf6, 0x0a, 0xe5, 0x2b, 0x90, 0xe0, 0x4a, 0x9b, 0xce, 0xf8, 0xdc, 0x67, 0xe7, 0x1e, 0xa1, 0x0a, 0xca, 0x55, 0x3d, 0xb9, 0x89, 0x5c, 0xd8, 0x00, 0x84, 0x57, 0xd7, 0x6f, 0x02, 0xce, 0xb5, 0x35, 0x00, 0x21, 0x11, 0x09, 0xe8, 0x96, 0x03, 0xf3, 0x04, 0xd8, 0x80, 0xaa, 0xf0, 0x28, 0x61, 0xfe, 0x37, 0xc9, 0x53, 0x4a, 0x9d, 0x67, 0x2d, 0x83, 0x71, 0x3c, 0xd3, 0x26, 0xc9, 0xab, 0x81, 0xc3, 0x53, 0x76, 0x4c, 0xa5, 0xad, 0x5a, 0xc0, 0xe7, 0xf1, 0xff, 0x88, 0x0f, 0xb4, 0x8a, 0xcd, 0x9c, 0xbb, 0x94, 0x90, 0x64, 0xe2, 0x11, 0x83, 0xbc, 0x38, 0xfb, 0x1d, 0x90, 0xcf, 0xe6, 0x19, 0xa8, 0xb8, 0xfb, 0xf5, 0x32, 0x18, 0x89, 0xbb, 0x15, 0xc0, 0x2a, 0x53, 0xe4, 0xd3, 0x67, 0xfc, 0x66, 0x88, 0x77, 0xb6, 0x62, 0x28, 0x1c, 0x4a, 0x2a, 0xf6, 0x78, 0xf8, 0x6e, 0x69, 0x1d, 0xaa, 0x8a, 0xfd, 0xca, 0xc1, 0xb8, 0x20, 0x18, 0x9f, 0xe5, 0xc2, 0x50, 0x8c, 0xe3, 0x6e, 0xdd, 0x9c, 0x6f, 0x8f, 0x51, 0x57, 0x50, 0x71, 0x83, 0x94, 0x39, 0xa0, 0x03, 0x35, 0x2c, 0x15, 0x73, 0xe1, 0x27, 0x68, 0xdd, 0x6d, 0xeb, 0xdf, 0x1e, 0xd4, 0xf9, 0x4a, 0xc7, 0x9d, 0xf1, 0xab, 0x6a, 0x0b, 0xc2, 0x50, 0x79, 0xc0, 0x93, 0x54, 0x77, 0xd9, 0x14, 0x99, 0x88, 0xec, 0x3b, 0x87, 0x93, 0xef, 0xcd, 0xa8, 0x59, 0xac, 0xc3, 0x92, 0xab, 0x3f, 0xa9, 0x94, 0x93, 0xd7, 0xae, 0x0a, 0x65, 0x75, 0xb6, 0x95, 0xa1, 0xce, 0x07, 0x65, 0x32, 0x86, 0x02, 0x87, 0xdd, 0x49, 0x89, 0x67, 0xc4, 0x6f, 0x7a, 0xdd, 0x49, 0x49, 0x4c, 0x02, 0xe7, 0x44, 0xc4, 0x02, 0x80, 0x19, 0x57, 0x82, 0xe2, 0x42, 0x44, 0x76, 0x16, 0x5e, 0x72, 0xce, 0xe2, 0x36, 0x42, 0xe5, 0x1c, 0xec, 0x43, 0x21, 0x91, 0x11, 0x6a, 0xec, 0x59, 0xb5, 0x9f, 0xcf, 0x0a, 0x36, 0x83, 0xb9, 0x5f, 0x76, 0x07, 0x60, 0xa2, 0x0b, 0xd6, 0x74, 0x54, 0xd8, 0xde, 0x64, 0x7c, 0x0f, 0x9f, 0xfc, 0x4f, 0x90, 0xf6, 0xe4, 0x5a, 0xc9, 0x3d, 0x80, 0x2f, 0x33, 0x82, 0x99, 0xef, 0x28, 0x0d, 0x3b, 0xb7, 0xa4, 0xa8, 0x9d, 0xb8, 0xc5, 0x9a, 0x12, 0x52, 0x6f, 0x27, 0x83, 0x02, 0x4c, 0x8a, 0xde, 0x90, 0x02, 0xf0, 0x0e, 0x3d, 0x52, 0x9b, 0x78, 0xdc, 0xdd, 0x49, 0x03, 0xda, 0xf5, 0x76, 0x7a, 0x2b, 0xed, 0x75, 0x14, 0x53, 0x96, 0xef, 0xb6, 0x97, 0x90, 0x71, 0x2d, 0xe6, 0xa5, 0x90, 0x1e, 0x6d, 0x8c, 0x15, 0x28, 0x01, 0x82, 0x38, 0x82, 0x85, 0x02, 0x1d, 0x0e, 0x70, 0x92, 0x92, 0x15, 0xd9, 0xf2, 0xb7, 0x99, 0xbb, 0x92, 0xf2, 0xca, 0x56, 0xf4, 0x8e, 0x8c, 0xbb, 0xa2, 0xf1, 0x9b, 0x08, 0x58, 0x45, 0x12, 0x65, 0x67, 0xcf, 0xaf, 0xa6, 0x03, 0xc2, 0x94, 0x6e, 0xa1, 0xe7, 0xd2, 0x74, 0x55, 0x4a, 0x38, 0xbf, 0x7d, 0x86, 0x51, 0x1f, 0x3e, 0x47, 0x4f, 0x9f, 0xa5, 0xcb, 0x11, 0x10, 0x5f, 0xb5, 0x2f, 0xc6, 0x81, 0x77, 0xf3, 0x38, 0x5f, 0xe1, 0x39, 0x7b, 0xe5, 0x84, 0xa7, 0x00, 0x89, 0xdc, 0x74, 0x1b, 0x4b, 0x00, 0x95, 0xbf, 0x7e, 0xb2, 0x99, 0x3b, 0x41, 0x8d, 0xf8, 0x7b, 0x14, 0xa1, 0xf9, 0x79, 0x26, 0xe8, 0x68, 0xdf, 0x6e, 0x56, 0x8b, 0xec, 0xa2, 0x21, 0x5f, 0x2d, 0xd7, 0xce, 0x8a, 0x3c, 0x9e, 0xe8, 0x49, 0xcb, 0x41, 0x34, 0x6c, 0x68, 0x4f, 0x7f, 0xfe, 0xf0, 0xa7, 0x92, 0xed, 0xf4, 0x33, 0xca, 0x99, 0xef, 0x34, 0xc7, 0x3f, 0x92, 0x72, 0xa7, 0xeb, 0x97, 0x58, 0x7c, 0x8f, 0xce, 0x4a, 0x51, 0x36, 0x44, 0x47, 0x37, 0x13, 0x8d, 0x53, 0xea, 0xdf, 0x3a, 0x84, 0xf5, 0x01, 0xbb, 0x10, 0x45, 0x6e, 0x8e, 0x4a, 0x40, 0x47, 0x08, 0x2c, 0x9e, 0x14, 0x35, 0xf5, 0x76, 0x52, 0x6c, 0x21, 0x64, 0x71, 0x4d, 0x70, 0xb3, 0xd0, 0xa6, 0xe9, 0xc0, 0x8a, 0x53, 0xe3, 0x23, 0x84, 0x0f, 0x4d, 0xcf, 0xe8, 0xf2, 0xd1, 0x9f, 0x0b, 0xe2, 0xc8, 0x8e, };
22792 static const u8 ed25519_991_test_vectors_expected_sig[] = {
22793 	0x37, 0xac, 0xa8, 0xf2, 0x48, 0x39, 0x4a, 0x9e, 0x04, 0xd0, 0x6a, 0x7d, 0xa8, 0x4a, 0x7d, 0xef, 0xa3, 0x9d, 0xe4, 0xda, 0x2b, 0xcb, 0x18, 0xd5, 0xf6, 0x4c, 0xc3, 0x4d, 0xb0, 0x86, 0x51, 0xaf, 0x4a, 0xbb, 0x19, 0xfa, 0x2a, 0x92, 0xa7, 0xdd, 0xa5, 0x6e, 0xc9, 0x93, 0x0b, 0x81, 0xae, 0xbd, 0x23, 0x99, 0x05, 0x11, 0xf6, 0x84, 0xc6, 0xd1, 0x5b, 0xa5, 0x95, 0xf7, 0xd4, 0xa2, 0x74, 0x0e, };
22794 static const ec_test_case ed25519_991_test_case = {
22795 	.name = "EDDSA25519-SHA512/wei25519 991",
22796 	.ec_str_p = &wei25519_str_params,
22797 	.priv_key = ed25519_991_test_vectors_priv_key,
22798 	.priv_key_len = sizeof(ed25519_991_test_vectors_priv_key),
22799 	.nn_random = NULL,
22800 	.hash_type = SHA512,
22801 	.msg = (const char *)ed25519_991_test_vectors_message,
22802 	.msglen = sizeof(ed25519_991_test_vectors_message),
22803 	.sig_type = EDDSA25519,
22804 	.exp_sig = ed25519_991_test_vectors_expected_sig,
22805 	.exp_siglen = sizeof(ed25519_991_test_vectors_expected_sig),
22806 	.adata = NULL,
22807 	.adata_len = 0
22808 };
22809 
22810 /************************************************/
22811 static const u8 ed25519_992_test_vectors_priv_key[] = {
22812 	0x85, 0x04, 0xfb, 0xca, 0xab, 0xa6, 0x76, 0x83, 0xf8, 0x15, 0x49, 0x92, 0x82, 0xb6, 0xeb, 0xd4, 0x97, 0xa8, 0x1a, 0x91, 0x56, 0xf5, 0x3e, 0x02, 0x5c, 0x2d, 0x3e, 0xce, 0xe0, 0xdb, 0x65, 0x59, };
22813 static const u8 ed25519_992_test_vectors_message[] = {
22814 	0x6c, 0x63, 0xed, 0xbd, 0x40, 0xa0, 0x38, 0x74, 0xec, 0xae, 0xf8, 0x16, 0x02, 0xcd, 0x68, 0x50, 0xc0, 0x9f, 0x49, 0x15, 0xb7, 0xaa, 0xf4, 0x18, 0x25, 0x8c, 0x56, 0x83, 0x64, 0x53, 0x8e, 0x83, 0x92, 0xa8, 0xc3, 0x79, 0x83, 0x8b, 0x0c, 0x95, 0x34, 0x5b, 0xf6, 0x4c, 0x3d, 0xbc, 0x17, 0x58, 0x53, 0xfb, 0x64, 0x1f, 0x35, 0x0f, 0x0b, 0x53, 0xa0, 0x5a, 0x8e, 0xc2, 0x90, 0x28, 0x8c, 0x03, 0x26, 0xd4, 0x35, 0xff, 0x77, 0x6f, 0x86, 0x83, 0xa2, 0x73, 0x33, 0x3f, 0x9b, 0xb2, 0x80, 0x21, 0x84, 0xec, 0xc5, 0x3b, 0x06, 0xb2, 0x8c, 0x2c, 0x40, 0x2a, 0x54, 0xbf, 0x13, 0x4c, 0x1a, 0x23, 0x29, 0x97, 0x49, 0xa6, 0xce, 0x2b, 0x51, 0xa7, 0xba, 0x22, 0x23, 0x21, 0x48, 0x79, 0x7e, 0x99, 0x3f, 0xf2, 0x58, 0x28, 0x6e, 0x94, 0x77, 0x78, 0xa8, 0x74, 0x2d, 0x3f, 0x36, 0xcc, 0x78, 0x42, 0x97, 0x60, 0x43, 0xfc, 0x23, 0xda, 0x8a, 0x97, 0xec, 0xb9, 0x71, 0x5f, 0xc0, 0x5f, 0xb0, 0xf2, 0x3f, 0xa7, 0x32, 0x1d, 0xdc, 0x19, 0x32, 0x86, 0x16, 0x31, 0x60, 0x4e, 0xba, 0x2e, 0xf2, 0x5d, 0x8b, 0x75, 0x6c, 0xe4, 0x73, 0x36, 0x56, 0xbf, 0xd1, 0xe1, 0x47, 0x08, 0x92, 0x3a, 0xc7, 0xc6, 0x0a, 0x79, 0x84, 0x61, 0x36, 0xd7, 0x41, 0x97, 0x3b, 0xa5, 0x51, 0x41, 0x89, 0x72, 0x0b, 0xc0, 0xf7, 0x77, 0x4b, 0x7b, 0xd3, 0x57, 0x45, 0x95, 0xbd, 0xe2, 0x51, 0x50, 0x31, 0xb2, 0x5b, 0x62, 0x65, 0x4b, 0x16, 0x10, 0x35, 0x77, 0x80, 0x70, 0xac, 0xe1, 0x49, 0x71, 0xdf, 0x1f, 0xe0, 0xbe, 0x4e, 0xa1, 0xef, 0x55, 0xcf, 0x87, 0x47, 0xd3, 0x71, 0x6c, 0x1c, 0xe7, 0x07, 0xb1, 0xa7, 0xc8, 0x52, 0x0e, 0x6d, 0xeb, 0x33, 0x4e, 0xb1, 0x86, 0x33, 0x8f, 0xc9, 0x30, 0x00, 0x76, 0x8e, 0xb2, 0xbe, 0x40, 0xc6, 0xe0, 0xdc, 0x3f, 0x5d, 0xf8, 0x31, 0xb3, 0x2c, 0x3a, 0x2c, 0x33, 0xe2, 0x88, 0x98, 0xd6, 0x76, 0x2a, 0x15, 0x22, 0xd3, 0xd4, 0x8d, 0xae, 0xe5, 0x6a, 0x02, 0x69, 0xbd, 0xdf, 0x6c, 0xfc, 0x9d, 0x73, 0xf8, 0xd1, 0x78, 0xae, 0xcc, 0xbf, 0xfe, 0xf7, 0xce, 0x16, 0x4f, 0x98, 0xaf, 0xea, 0x22, 0x4a, 0x9b, 0x60, 0xed, 0xe4, 0x6a, 0x95, 0xfa, 0xdc, 0x9f, 0xc5, 0xd9, 0x4d, 0x20, 0x9c, 0x16, 0x6d, 0x9b, 0x8d, 0xe2, 0x53, 0x38, 0x1e, 0xa2, 0x24, 0x88, 0x62, 0x94, 0x6b, 0x9c, 0xf5, 0x34, 0x94, 0x74, 0x55, 0xc2, 0x44, 0x58, 0xcf, 0x56, 0x68, 0x3a, 0x0e, 0xc4, 0x7a, 0x2c, 0x65, 0x07, 0x5c, 0x69, 0x4c, 0x7c, 0x3d, 0x6a, 0xdf, 0x9a, 0xe5, 0xe8, 0xad, 0x31, 0xac, 0x76, 0x9f, 0x83, 0xaa, 0x26, 0xe3, 0x12, 0xc5, 0xb0, 0x1a, 0x9a, 0x09, 0x40, 0x4b, 0x15, 0xb8, 0x14, 0xba, 0xa7, 0x66, 0x6b, 0x3e, 0x03, 0xf0, 0x6a, 0x8d, 0x63, 0x48, 0xab, 0x8c, 0xcb, 0x9b, 0x60, 0xa4, 0xa4, 0xfa, 0xf8, 0x6f, 0x71, 0x35, 0xdf, 0x03, 0x9d, 0x95, 0x5c, 0x07, 0xbd, 0x92, 0xe7, 0xb8, 0xe3, 0x27, 0xee, 0x6c, 0x1b, 0x40, 0x19, 0x6a, 0x28, 0xb4, 0x44, 0x6a, 0xa5, 0xa9, 0xb2, 0xb9, 0x77, 0x3a, 0xb7, 0x6e, 0x3c, 0xe2, 0x11, 0x80, 0xf0, 0x9d, 0x6c, 0x08, 0xd2, 0x77, 0xc6, 0x77, 0x1d, 0x67, 0xe2, 0x2d, 0x84, 0x54, 0x0f, 0xa4, 0x3b, 0x38, 0xf6, 0x34, 0xcf, 0xc4, 0x6e, 0x5b, 0x8c, 0x33, 0xf1, 0x5a, 0x56, 0x8a, 0x77, 0xe4, 0x91, 0x4a, 0xad, 0x9a, 0xb8, 0xc9, 0xf7, 0xfe, 0xa4, 0x7f, 0x76, 0x77, 0xc0, 0x18, 0x80, 0xb3, 0xe8, 0x5d, 0x2d, 0x0e, 0x3f, 0xbd, 0x6d, 0xc6, 0xe9, 0x9e, 0x43, 0x7d, 0xdc, 0x73, 0x6f, 0x92, 0xb5, 0xa2, 0xff, 0x29, 0x27, 0xe0, 0xb4, 0x42, 0x14, 0x2f, 0x08, 0x97, 0xd0, 0xb8, 0xa1, 0x9a, 0xc2, 0x03, 0x63, 0x3d, 0xf4, 0x13, 0xfe, 0xaf, 0x8e, 0xf5, 0x0a, 0x5f, 0x76, 0x7b, 0xed, 0xaf, 0x20, 0xf1, 0xc1, 0x3f, 0x3b, 0x89, 0xd1, 0xe8, 0xb7, 0xbd, 0x18, 0xd5, 0x91, 0xf9, 0xde, 0x11, 0x6e, 0xe3, 0x4f, 0x98, 0x24, 0xe4, 0xea, 0xd1, 0xae, 0x9d, 0xa2, 0xe8, 0xca, 0xae, 0xf8, 0x8b, 0x29, 0x51, 0x6a, 0xa9, 0x42, 0xde, 0x77, 0xa7, 0x46, 0x7b, 0x6f, 0xb2, 0x6a, 0x66, 0x6f, 0x30, 0x64, 0x8c, 0x71, 0x5a, 0x2e, 0xe9, 0xf9, 0x46, 0x74, 0x3b, 0x54, 0x3a, 0x44, 0x28, 0xe0, 0xdf, 0xd0, 0x61, 0x78, 0xe7, 0xe9, 0x3e, 0xc6, 0xf2, 0x6e, 0x00, 0x3e, 0x05, 0x8b, 0xec, 0x14, 0xa4, 0xaa, 0x2e, 0x3b, 0x8d, 0xe1, 0x12, 0x95, 0xa7, 0x64, 0xca, 0xb3, 0x0b, 0x31, 0x3f, 0xcc, 0x57, 0x43, 0xb2, 0xfb, 0x89, 0x96, 0x2d, 0xdc, 0x5c, 0xdc, 0x6a, 0xa0, 0xd2, 0xe4, 0xa3, 0x06, 0xe7, 0x7a, 0xf7, 0x6a, 0x05, 0xa5, 0x98, 0x92, 0x3f, 0x62, 0x8a, 0x85, 0xdf, 0x1c, 0xc7, 0x3a, 0xd3, 0xbc, 0x01, 0xc4, 0xb9, 0x79, 0xbd, 0x7c, 0xb2, 0x96, 0x59, 0x0a, 0x88, 0xb0, 0xa4, 0x1b, 0x44, 0x5d, 0x50, 0xa0, 0x84, 0x23, 0xe4, 0xed, 0x80, 0xf1, 0x76, 0x3c, 0x71, 0x6b, 0x6c, 0x45, 0x7d, 0x84, 0x5d, 0xfa, 0xa6, 0x8d, 0x12, 0xb0, 0xd0, 0x3c, 0x55, 0xfd, 0xe8, 0xae, 0x6b, 0x2b, 0x92, 0xbc, 0x63, 0x22, 0x94, 0x3d, 0xbe, 0x54, 0xc7, 0x06, 0xbc, 0x8e, 0x5f, 0xce, 0xe7, 0x06, 0x54, 0xb2, 0x6f, 0x3b, 0xfd, 0x87, 0x7f, 0x5f, 0x53, 0x39, 0xac, 0x18, 0x2d, 0x54, 0x17, 0xbd, 0x4c, 0x07, 0x35, 0xd8, 0x25, 0xbf, 0x70, 0xe8, 0x5e, 0xab, 0x82, 0x16, 0xed, 0xda, 0x63, 0x2a, 0xe7, 0xe2, 0x2b, 0x3e, 0x53, 0xd0, 0x78, 0xa8, 0xb2, 0x0b, 0x5a, 0x7e, 0x23, 0x85, 0x33, 0x7c, 0xf9, 0x2b, 0x3c, 0x16, 0xb0, 0x23, 0x56, 0x3e, 0x11, 0xcb, 0x50, 0x43, 0xb7, 0x04, 0xd3, 0x7e, 0xb5, 0xed, 0x9e, 0x85, 0xfc, 0xdc, 0x95, 0xcf, 0x7a, 0x6e, 0xad, 0xe4, 0x08, 0x03, 0x17, 0x5a, 0x00, 0x8e, 0xf6, 0x53, 0xac, 0x61, 0x36, 0xf1, 0x61, 0x29, 0xab, 0xae, 0x11, 0x37, 0xc5, 0x82, 0x34, 0x00, 0x74, 0x8a, 0x81, 0x25, 0x62, 0x54, 0xd3, 0x17, 0xcf, 0xc9, 0x39, 0xe2, 0x6e, 0xa0, 0xce, 0xf9, 0xf6, 0x54, 0x8d, 0xb4, 0x28, 0x90, 0xc4, 0x8b, 0xeb, 0x04, 0x79, 0x10, 0x3b, 0xa0, 0x89, 0xe5, 0x14, 0x11, 0x80, 0x38, 0xb1, 0xb9, 0x09, 0x43, 0xd7, 0x16, 0xf7, 0xa8, 0xd4, 0xcd, 0xa5, 0x98, 0x3a, 0x67, 0x4b, 0x83, 0xa0, 0x02, 0xd8, 0xac, 0x9c, 0x65, 0x73, 0x4a, 0x28, 0xb7, 0x7b, 0x76, 0x0c, 0x8e, 0x38, 0x03, 0xf8, 0x78, 0x1e, 0xa9, 0x19, 0x9f, 0x79, 0x7c, 0xe7, 0x29, 0xe0, 0x6b, 0xff, 0xfe, 0x8c, 0x29, 0xb2, 0x0b, 0xc8, 0x52, 0x27, 0xc0, 0x9c, 0xc0, 0x52, 0x19, 0xff, 0x2b, 0xa3, 0x8e, 0x18, 0x05, 0x10, 0x83, 0x73, 0x2f, 0x83, 0xcb, 0xfc, 0xcc, 0x31, 0x07, 0x56, 0x45, 0x0b, 0x26, 0x1d, 0x5b, 0xe1, 0x83, 0xd9, 0xfb, 0x44, 0xec, 0x18, 0x52, 0x9f, 0x2c, 0xc9, 0x84, 0x8c, 0x40, 0x11, 0x9c, 0x60, 0x76, 0x76, 0xbc, 0x4d, 0x90, 0x15, 0xfd, 0x4b, 0xd2, 0xfc, 0x91, 0x8d, 0xc8, 0x03, 0x1e, 0xc1, 0x9a, 0x05, 0xff, 0x36, 0x2c, 0x18, 0x40, 0x43, 0xbe, 0x7f, 0xe0, 0x66, 0x01, 0x9a, 0xc5, };
22815 static const u8 ed25519_992_test_vectors_expected_sig[] = {
22816 	0xc0, 0xea, 0x07, 0x4b, 0xf9, 0xad, 0xde, 0xe2, 0xe3, 0x35, 0x0a, 0x96, 0x9e, 0x7c, 0x56, 0x9e, 0x3a, 0xea, 0x1a, 0x41, 0x88, 0xee, 0x5a, 0xf3, 0x4c, 0xb7, 0x3f, 0x38, 0x82, 0x98, 0x65, 0x3d, 0x29, 0x9b, 0x5d, 0xbd, 0x94, 0x16, 0x3f, 0xba, 0x20, 0x9e, 0x8f, 0x7d, 0xc2, 0xe2, 0x63, 0x4d, 0x3a, 0x52, 0xa0, 0x28, 0x10, 0xa8, 0x8c, 0x61, 0x52, 0x94, 0x5b, 0xc1, 0x6b, 0xbd, 0xfb, 0x0c, };
22817 static const ec_test_case ed25519_992_test_case = {
22818 	.name = "EDDSA25519-SHA512/wei25519 992",
22819 	.ec_str_p = &wei25519_str_params,
22820 	.priv_key = ed25519_992_test_vectors_priv_key,
22821 	.priv_key_len = sizeof(ed25519_992_test_vectors_priv_key),
22822 	.nn_random = NULL,
22823 	.hash_type = SHA512,
22824 	.msg = (const char *)ed25519_992_test_vectors_message,
22825 	.msglen = sizeof(ed25519_992_test_vectors_message),
22826 	.sig_type = EDDSA25519,
22827 	.exp_sig = ed25519_992_test_vectors_expected_sig,
22828 	.exp_siglen = sizeof(ed25519_992_test_vectors_expected_sig),
22829 	.adata = NULL,
22830 	.adata_len = 0
22831 };
22832 
22833 /************************************************/
22834 static const u8 ed25519_993_test_vectors_priv_key[] = {
22835 	0xea, 0xc0, 0xf0, 0x6c, 0x2c, 0x14, 0xf3, 0x7d, 0x43, 0x4b, 0xc9, 0x98, 0x97, 0x22, 0x5d, 0xd2, 0xe3, 0xf1, 0xed, 0x74, 0xaa, 0x74, 0x42, 0xc5, 0x50, 0x33, 0x9d, 0xf7, 0x7d, 0x0b, 0x7b, 0x32, };
22836 static const u8 ed25519_993_test_vectors_message[] = {
22837 	0x27, 0xb7, 0xfd, 0x0e, 0x71, 0xad, 0xf1, 0x94, 0xcf, 0x54, 0x07, 0xb6, 0x77, 0x17, 0x93, 0x06, 0x0d, 0xe0, 0xfc, 0xa7, 0xca, 0x0a, 0xe6, 0x48, 0x35, 0xc4, 0x31, 0x87, 0x40, 0x8a, 0x70, 0x4f, 0x53, 0x3d, 0x5e, 0xa0, 0xc8, 0x3a, 0x65, 0x43, 0x87, 0xba, 0x7d, 0xb1, 0x6e, 0xd5, 0x8e, 0xc8, 0x37, 0x22, 0x6d, 0xf5, 0x7c, 0x1f, 0xe6, 0x38, 0x2c, 0x59, 0x19, 0xe9, 0x22, 0x13, 0xf6, 0xf1, 0x8c, 0xbb, 0x57, 0x35, 0xd1, 0x78, 0xa4, 0x76, 0xaf, 0x35, 0xd3, 0x90, 0xb7, 0xcd, 0x25, 0x56, 0x21, 0x7c, 0x53, 0x0f, 0x3a, 0x1f, 0x8a, 0xb2, 0x33, 0x9c, 0x1a, 0x5e, 0x8d, 0x96, 0x93, 0x87, 0xef, 0xd3, 0x94, 0x14, 0xb5, 0x6b, 0xb7, 0x84, 0xdf, 0xd5, 0xeb, 0x89, 0xb8, 0x59, 0xe1, 0xf4, 0x03, 0xa2, 0x38, 0xec, 0xa2, 0xa9, 0x41, 0xe6, 0xdb, 0x56, 0xac, 0x45, 0x6b, 0x73, 0x45, 0x06, 0x98, 0xd1, 0x45, 0x5e, 0xc1, 0xe9, 0xb3, 0x9a, 0x1e, 0x90, 0x7d, 0x6b, 0xc7, 0xe6, 0xcf, 0xf4, 0x24, 0xa2, 0x8e, 0xed, 0x57, 0x9a, 0xf1, 0x63, 0x10, 0x11, 0x5b, 0x67, 0xf5, 0xfc, 0xf7, 0xf8, 0x34, 0x6b, 0x3f, 0xa0, 0x26, 0x0c, 0x6d, 0xa2, 0xe2, 0x77, 0x55, 0xac, 0xa5, 0x70, 0xba, 0xbb, 0x3d, 0x30, 0x3c, 0xc8, 0x32, 0x46, 0x0c, 0x96, 0x3b, 0xfd, 0xd5, 0xc1, 0xff, 0xb2, 0xfc, 0x19, 0x92, 0x19, 0x29, 0xdd, 0xa2, 0xa7, 0x17, 0xfb, 0xcb, 0xeb, 0x2b, 0x85, 0x25, 0x76, 0x1b, 0xd6, 0x60, 0xce, 0x4a, 0x0f, 0x76, 0x85, 0x28, 0x5d, 0x7f, 0xad, 0x61, 0x15, 0xab, 0x09, 0xf8, 0xe6, 0x3f, 0x5f, 0x77, 0x39, 0x14, 0x49, 0x4e, 0x20, 0xbe, 0x1b, 0x51, 0x2d, 0x11, 0x14, 0xcc, 0xe3, 0xf0, 0xf6, 0x8c, 0x7d, 0x94, 0xf5, 0x48, 0x57, 0x69, 0x4f, 0x22, 0xaf, 0x4c, 0x69, 0x8d, 0x78, 0x2c, 0xe8, 0x37, 0xb0, 0xc1, 0x72, 0x2b, 0xb7, 0x31, 0x3b, 0xb2, 0xc4, 0x1f, 0x6d, 0x3d, 0xd1, 0xa0, 0x28, 0x77, 0xfb, 0x42, 0x96, 0xd8, 0x66, 0x2a, 0x9e, 0x86, 0x25, 0x98, 0x4d, 0xc1, 0xfd, 0x1a, 0x95, 0x10, 0xeb, 0xa9, 0xd6, 0x43, 0xac, 0x58, 0xa8, 0x86, 0xa0, 0x45, 0xcd, 0x0e, 0x53, 0xc0, 0x56, 0xa8, 0x33, 0xf9, 0x68, 0xb3, 0x5d, 0x01, 0x32, 0x0e, 0x9c, 0xc0, 0xb4, 0x35, 0xd3, 0xf6, 0xbf, 0xad, 0x26, 0xf9, 0xeb, 0x57, 0x54, 0xd3, 0x8d, 0xdf, 0x6d, 0x5c, 0x4b, 0xf6, 0x15, 0xa7, 0x64, 0x4a, 0x23, 0xf9, 0x82, 0x6b, 0xcc, 0x97, 0x60, 0x92, 0xd8, 0x2d, 0x81, 0xd5, 0x47, 0x00, 0x0d, 0xe0, 0x08, 0x1b, 0x7a, 0x40, 0xa9, 0x3f, 0xbd, 0xda, 0xc1, 0x3f, 0x7d, 0x99, 0x70, 0x8c, 0xcd, 0xee, 0xb9, 0x40, 0x5c, 0xd6, 0x34, 0xca, 0x07, 0x48, 0xca, 0xd2, 0xc1, 0xd8, 0xf1, 0x64, 0xf5, 0xd7, 0x7a, 0x4f, 0x36, 0x4a, 0xe4, 0x88, 0xbe, 0xdc, 0xf1, 0xf2, 0x0e, 0xb9, 0x54, 0xbc, 0x8a, 0x27, 0x8a, 0xf8, 0x14, 0x32, 0x41, 0x78, 0x56, 0xa9, 0x00, 0xf8, 0xf1, 0x52, 0x92, 0x1a, 0xfb, 0xe1, 0x79, 0x14, 0x22, 0x9a, 0x51, 0x3b, 0xd7, 0x1a, 0xb7, 0xe6, 0x61, 0xcd, 0xe1, 0x29, 0xaf, 0x93, 0xe2, 0x50, 0x94, 0xc5, 0x61, 0x18, 0xed, 0x1f, 0x22, 0xdb, 0x64, 0x44, 0x28, 0xb4, 0x74, 0x65, 0x1f, 0xe3, 0x6b, 0xe8, 0x2f, 0xa3, 0x69, 0x5c, 0x41, 0xfc, 0x86, 0x99, 0x66, 0x7e, 0x05, 0x37, 0x43, 0xb0, 0xa4, 0x11, 0x55, 0xc3, 0x1f, 0x1e, 0x26, 0x79, 0xc6, 0xe8, 0xcb, 0x9c, 0x9d, 0x1f, 0x5f, 0x4b, 0x40, 0xa3, 0x20, 0xa9, 0xfd, 0x9f, 0x47, 0xda, 0x9b, 0x94, 0x21, 0x1b, 0xa6, 0x01, 0xb2, 0x2a, 0x11, 0x52, 0x10, 0xd9, 0xf5, 0x59, 0xc4, 0x49, 0x6f, 0x01, 0x73, 0x24, 0x58, 0xf4, 0x9a, 0xc3, 0x4e, 0xb3, 0x86, 0x63, 0x6c, 0x8b, 0x6c, 0x68, 0xc7, 0xbb, 0xc0, 0x07, 0x8a, 0xb6, 0xf3, 0x98, 0xa6, 0x24, 0xb8, 0xba, 0xfb, 0x1c, 0x62, 0x29, 0x58, 0x56, 0x2d, 0x23, 0x1d, 0xff, 0xd4, 0xdb, 0x09, 0x61, 0x96, 0xbb, 0x87, 0x47, 0x9e, 0x42, 0xea, 0x22, 0xac, 0xbd, 0xcd, 0xe8, 0xde, 0xb1, 0x0e, 0x31, 0x16, 0x32, 0xf0, 0x2f, 0xca, 0x14, 0x78, 0x7f, 0xd3, 0x14, 0x05, 0x69, 0xb9, 0x42, 0x89, 0x91, 0x54, 0x3e, 0xc6, 0xe8, 0x34, 0xe1, 0x0b, 0x14, 0x9f, 0x23, 0xc7, 0x4b, 0xb9, 0x9a, 0xc7, 0xb3, 0x79, 0x9a, 0x20, 0x96, 0xd2, 0x2e, 0x38, 0x7a, 0x71, 0x2b, 0x6f, 0x90, 0x11, 0xea, 0x34, 0xc5, 0xbe, 0x4c, 0x46, 0x85, 0x81, 0xac, 0x62, 0xce, 0x66, 0x20, 0x63, 0x25, 0x2e, 0x06, 0x6a, 0x9a, 0x3b, 0x15, 0xc9, 0x57, 0x0d, 0x06, 0x5d, 0xc1, 0x61, 0x99, 0x29, 0xf0, 0x6b, 0xc7, 0x5a, 0x31, 0x79, 0x46, 0x8b, 0xc8, 0xa1, 0x6e, 0x3d, 0xdc, 0x4f, 0xe1, 0x85, 0xce, 0xba, 0x0a, 0x92, 0xa5, 0x46, 0xb8, 0x67, 0x5f, 0xc1, 0xad, 0xe5, 0x63, 0x07, 0x15, 0x0c, 0x7e, 0x4c, 0x84, 0x4f, 0x6a, 0xa5, 0xf1, 0xed, 0xbf, 0xb5, 0x4a, 0xc6, 0x32, 0xca, 0x2b, 0x25, 0x9c, 0x32, 0xa3, 0x3e, 0xe2, 0x86, 0x78, 0x56, 0xc3, 0x39, 0x0a, 0x67, 0x40, 0x36, 0x4c, 0xb0, 0xdf, 0xb9, 0x76, 0xe5, 0x3d, 0x0c, 0xc6, 0xc4, 0x2a, 0x10, 0x6a, 0x1c, 0x26, 0x91, 0x8c, 0x8a, 0x6a, 0x03, 0x3b, 0x2a, 0xa3, 0xc7, 0xf2, 0xe4, 0x39, 0x2e, 0x79, 0xf8, 0xec, 0xa5, 0xb3, 0x36, 0xba, 0xc5, 0x06, 0x1d, 0x76, 0x98, 0xa3, 0xbf, 0xe7, 0xc2, 0xc2, 0x92, 0x89, 0x25, 0x54, 0x03, 0x0d, 0xe6, 0xce, 0x7c, 0x0d, 0x06, 0xee, 0xfc, 0x54, 0x90, 0x6f, 0x81, 0xe0, 0x09, 0x7f, 0xcf, 0xf2, 0x7d, 0x14, 0xb9, 0xb7, 0x99, 0x4a, 0x79, 0x70, 0xe1, 0xa5, 0xf5, 0xc6, 0xb6, 0x40, 0x5d, 0xca, 0x22, 0x03, 0x3d, 0xff, 0x0e, 0xae, 0x13, 0x8a, 0xd8, 0x99, 0xf6, 0xee, 0x68, 0x12, 0x0b, 0x8f, 0x22, 0x74, 0x4b, 0x02, 0x69, 0xa9, 0xa8, 0x98, 0x9b, 0x6f, 0x7e, 0x08, 0xaf, 0xfa, 0xe7, 0x7b, 0xca, 0x21, 0x68, 0xad, 0xe2, 0x40, 0x58, 0xae, 0x68, 0xa7, 0xf8, 0x00, 0xe0, 0x2e, 0x7c, 0x38, 0x39, 0x1b, 0xaf, 0x56, 0x5d, 0xd4, 0x0b, 0x55, 0xfa, 0x3a, 0xb3, 0xc2, 0x47, 0xb9, 0xce, 0xb4, 0xd9, 0x67, 0x47, 0x17, 0x75, 0xe6, 0x63, 0xd6, 0xa1, 0xc6, 0xc7, 0xe1, 0x73, 0x50, 0xbb, 0xd6, 0xb9, 0xa3, 0xeb, 0x1e, 0x48, 0x4a, 0xc2, 0xe7, 0xa7, 0xa5, 0xc8, 0x4f, 0x50, 0x83, 0xe5, 0xac, 0xe8, 0x73, 0x0d, 0xe8, 0x9c, 0x47, 0xe8, 0xdc, 0xf8, 0x34, 0x1e, 0x40, 0xba, 0x34, 0x5d, 0xbd, 0x66, 0xba, 0xe0, 0xf7, 0xf0, 0x76, 0xa7, 0x05, 0xb1, 0xbb, 0x7f, 0x47, 0x0e, 0x3e, 0xdf, 0xb2, 0xb7, 0x8e, 0x4d, 0x63, 0x59, 0x41, 0x3d, 0x18, 0xd3, 0x32, 0x80, 0xb4, 0x54, 0xa0, 0xdb, 0xb8, 0x81, 0xd8, 0x60, 0x67, 0x26, 0xfa, 0x9b, 0xea, 0x27, 0x24, 0x75, 0xe7, 0x9f, 0xea, 0x6a, 0x54, 0xcb, 0x4c, 0x06, 0x19, 0x54, 0x1b, 0x4e, 0x77, 0xc1, 0x70, 0xc8, 0x61, 0x68, 0x74, 0xb9, 0x54, 0xbe, 0xb8, 0xd1, 0x05, 0xb8, 0x6b, 0xd1, 0x91, 0x7e, 0x25, 0xcf, 0xba, 0x92, 0x67, 0x18, 0x7e, 0xe2, 0x03, 0x8b, 0x3f, 0x00, 0x78, 0xf4, 0xc3, 0x18, 0xb5, 0x87, 0xcf, 0x44, };
22838 static const u8 ed25519_993_test_vectors_expected_sig[] = {
22839 	0x45, 0xf2, 0x80, 0x3a, 0xfe, 0xb0, 0xfc, 0x44, 0xd3, 0xaa, 0x96, 0x5b, 0x12, 0x65, 0x9b, 0xf5, 0x02, 0xe4, 0x72, 0x95, 0x70, 0x61, 0x84, 0xb2, 0xa1, 0xc6, 0xf1, 0x6d, 0x05, 0x06, 0x13, 0xf5, 0x96, 0xa2, 0x00, 0x13, 0x94, 0xe0, 0x0e, 0x2a, 0x44, 0xc4, 0x6c, 0xf6, 0x50, 0x5d, 0x5c, 0xf5, 0xb8, 0xab, 0x84, 0x12, 0xf0, 0x7e, 0xda, 0x95, 0x1a, 0x15, 0x00, 0x5e, 0x33, 0x8f, 0x3c, 0x0e, };
22840 static const ec_test_case ed25519_993_test_case = {
22841 	.name = "EDDSA25519-SHA512/wei25519 993",
22842 	.ec_str_p = &wei25519_str_params,
22843 	.priv_key = ed25519_993_test_vectors_priv_key,
22844 	.priv_key_len = sizeof(ed25519_993_test_vectors_priv_key),
22845 	.nn_random = NULL,
22846 	.hash_type = SHA512,
22847 	.msg = (const char *)ed25519_993_test_vectors_message,
22848 	.msglen = sizeof(ed25519_993_test_vectors_message),
22849 	.sig_type = EDDSA25519,
22850 	.exp_sig = ed25519_993_test_vectors_expected_sig,
22851 	.exp_siglen = sizeof(ed25519_993_test_vectors_expected_sig),
22852 	.adata = NULL,
22853 	.adata_len = 0
22854 };
22855 
22856 /************************************************/
22857 static const u8 ed25519_994_test_vectors_priv_key[] = {
22858 	0xe6, 0x08, 0xd5, 0xde, 0x97, 0x97, 0x90, 0x7d, 0xb6, 0xd9, 0x8e, 0x03, 0x45, 0xd5, 0xca, 0xf2, 0xad, 0x33, 0xe0, 0xed, 0xde, 0xbf, 0x18, 0xb8, 0x1d, 0x61, 0xe8, 0x37, 0x3e, 0xcf, 0xb4, 0x99, };
22859 static const u8 ed25519_994_test_vectors_message[] = {
22860 	0xe6, 0x10, 0xfa, 0x7d, 0x83, 0x85, 0xc0, 0x9c, 0x78, 0x98, 0x9e, 0xd5, 0xef, 0x7a, 0x23, 0x05, 0x47, 0xf0, 0x13, 0xcb, 0x7e, 0x8d, 0xdf, 0x31, 0x74, 0x9f, 0xfc, 0x31, 0xce, 0xe1, 0x0a, 0xb3, 0xef, 0xac, 0xa3, 0xf1, 0x4e, 0xa1, 0x94, 0x51, 0x0f, 0x09, 0x85, 0xa8, 0x18, 0xef, 0x8b, 0x04, 0x0e, 0x10, 0xc3, 0xa5, 0x11, 0x4d, 0xe1, 0xac, 0x08, 0x0f, 0x14, 0xc3, 0xd6, 0x5d, 0x3c, 0x24, 0x4f, 0x92, 0x42, 0xf7, 0x54, 0x92, 0xca, 0xba, 0xe8, 0x00, 0xfc, 0xfc, 0x9b, 0xc2, 0x75, 0xea, 0x1f, 0x27, 0x72, 0x8c, 0x92, 0x0c, 0x25, 0x8f, 0xe7, 0xaa, 0x73, 0x94, 0x80, 0x60, 0x29, 0x9c, 0xb8, 0x78, 0x35, 0x79, 0x2e, 0xdc, 0xc0, 0x72, 0x15, 0x0b, 0x73, 0xce, 0xfe, 0xb0, 0xd5, 0x15, 0x62, 0xe5, 0x3b, 0x46, 0x81, 0x0e, 0x27, 0xa4, 0xd7, 0xf6, 0xab, 0xd3, 0x2e, 0x95, 0x9f, 0x7d, 0x73, 0x1d, 0xde, 0x01, 0xd9, 0x4b, 0xc4, 0x1e, 0xd8, 0x35, 0xef, 0xcd, 0x42, 0xc9, 0x22, 0x43, 0x70, 0x37, 0xa8, 0x7d, 0xd3, 0x66, 0xff, 0xad, 0x2e, 0xec, 0xab, 0x6a, 0xba, 0xeb, 0x4f, 0xcf, 0x07, 0x39, 0x2b, 0x3a, 0xb4, 0x0c, 0xfa, 0xef, 0xea, 0xa4, 0x26, 0x6b, 0xc5, 0x37, 0x67, 0x16, 0x93, 0xc9, 0x09, 0x3d, 0xab, 0xe8, 0xa0, 0x53, 0x8c, 0xaf, 0xd1, 0x2c, 0x63, 0x9a, 0x04, 0xbd, 0x2b, 0xa8, 0x0c, 0xe0, 0xf2, 0x9a, 0xdb, 0xfc, 0x66, 0xbd, 0x46, 0x37, 0xca, 0x05, 0x43, 0xa5, 0x3b, 0x0e, 0x37, 0x1d, 0x0e, 0x2e, 0x47, 0x0d, 0x31, 0xba, 0x36, 0x06, 0x42, 0xa4, 0x5a, 0xb4, 0xcf, 0xe3, 0xe7, 0x90, 0xf5, 0x87, 0xf6, 0xc5, 0xa5, 0x58, 0x3f, 0xd1, 0x5b, 0x18, 0x99, 0x78, 0x38, 0xa2, 0x00, 0x92, 0x1c, 0x1c, 0x39, 0x9c, 0x0b, 0x16, 0x27, 0x8b, 0x7d, 0xd6, 0xd3, 0xaa, 0xab, 0x6f, 0x32, 0x5b, 0x16, 0xaf, 0xdf, 0x76, 0x1a, 0x1b, 0xbf, 0x86, 0x7d, 0xe2, 0xbd, 0xd4, 0x86, 0x15, 0xf1, 0x5b, 0x52, 0x67, 0x70, 0xed, 0x20, 0xd7, 0x9f, 0x0f, 0x30, 0x71, 0x4b, 0xee, 0xed, 0xa5, 0x8f, 0x52, 0xa3, 0xcc, 0x0c, 0x5a, 0x61, 0x83, 0x15, 0xe5, 0x22, 0xb9, 0xeb, 0xe7, 0xcd, 0x99, 0xb6, 0x5e, 0xd5, 0x32, 0xa6, 0x2e, 0x0f, 0x0d, 0xf7, 0x27, 0x64, 0xd6, 0xec, 0x6d, 0x6d, 0x1b, 0xa4, 0x0e, 0xf4, 0x0e, 0x05, 0x42, 0x63, 0x60, 0x79, 0x5d, 0x6d, 0xd8, 0x5b, 0xb3, 0x9f, 0x73, 0x21, 0xd3, 0xfb, 0x06, 0x27, 0x5d, 0xe0, 0x96, 0xaa, 0xe4, 0xa2, 0xfa, 0x22, 0x93, 0xf3, 0x1b, 0x33, 0xf4, 0xad, 0x4d, 0x7c, 0x25, 0x1a, 0xc1, 0x3e, 0x8e, 0x15, 0xc2, 0xbf, 0xb1, 0xf9, 0x8f, 0x49, 0x62, 0xc5, 0x4b, 0x6c, 0xe0, 0x33, 0xb0, 0x8a, 0xa6, 0x26, 0xf2, 0x90, 0x5d, 0x46, 0x3f, 0x55, 0xb7, 0x1c, 0xbd, 0xad, 0xec, 0xdb, 0x3e, 0x0b, 0x36, 0x5d, 0xae, 0x07, 0xb1, 0x70, 0x30, 0x19, 0x83, 0xae, 0xb8, 0x3b, 0x1e, 0x9f, 0x2f, 0x28, 0xcf, 0x65, 0x41, 0x9f, 0xd6, 0xb0, 0xa1, 0xa9, 0xc2, 0x6c, 0xb5, 0x4b, 0x59, 0x49, 0xf4, 0xbc, 0x01, 0xa9, 0x86, 0x81, 0x84, 0x4b, 0x43, 0x03, 0x4c, 0x37, 0x2a, 0x45, 0x3d, 0x38, 0xf0, 0x47, 0x3d, 0x0d, 0xdc, 0x70, 0x9d, 0x9f, 0x49, 0xc8, 0x75, 0x3a, 0x75, 0xb8, 0x56, 0xc7, 0xe9, 0x77, 0x55, 0x17, 0xdf, 0x57, 0x4a, 0x09, 0xa3, 0x95, 0x3b, 0xde, 0x5d, 0xae, 0xdf, 0x8e, 0x4a, 0x8d, 0xa9, 0xd7, 0x73, 0xa2, 0x15, 0x12, 0x0e, 0x26, 0x9f, 0xa1, 0x86, 0x11, 0x33, 0xcd, 0x4c, 0xea, 0xeb, 0x91, 0xd5, 0xcc, 0xa2, 0x60, 0x63, 0x25, 0x45, 0x8e, 0x50, 0xcb, 0x96, 0x6d, 0x14, 0x05, 0x5b, 0x22, 0x44, 0x7e, 0xb6, 0x5d, 0xc1, 0x01, 0x18, 0xda, 0x08, 0x31, 0xdf, 0x28, 0xc3, 0xb4, 0xee, 0x8b, 0x11, 0xf0, 0x73, 0x2f, 0x15, 0x21, 0xbb, 0x94, 0x82, 0xb1, 0x1f, 0x5a, 0x86, 0xb2, 0x2f, 0x18, 0xe8, 0x3d, 0xd1, 0xd9, 0x67, 0xd3, 0x94, 0x42, 0x85, 0xe5, 0xd6, 0x3a, 0x5a, 0x98, 0x98, 0x17, 0xab, 0x24, 0x18, 0xbc, 0x7e, 0xd8, 0x91, 0xa3, 0x73, 0x84, 0x67, 0x47, 0xa1, 0x2b, 0x52, 0x7c, 0x2f, 0x44, 0xee, 0x01, 0x97, 0xb9, 0x46, 0xc6, 0x7e, 0x67, 0xfa, 0x4a, 0xa1, 0xc2, 0x9f, 0x33, 0x79, 0xd4, 0x6f, 0xe0, 0x7d, 0x3a, 0xab, 0x83, 0xda, 0x17, 0xf9, 0xd7, 0x6b, 0xed, 0xd3, 0x84, 0x36, 0xa0, 0x55, 0xe3, 0x4c, 0xa1, 0xd3, 0xaf, 0x5a, 0x87, 0x54, 0xd3, 0x8c, 0x17, 0xb9, 0xba, 0x4e, 0x64, 0x19, 0xcb, 0xab, 0x51, 0x5f, 0x43, 0x1a, 0x25, 0x95, 0x95, 0x4e, 0x42, 0x8c, 0x26, 0x70, 0xfa, 0xe3, 0xbe, 0xd6, 0x2b, 0x45, 0x96, 0x17, 0x9c, 0xb5, 0x9e, 0x21, 0x10, 0x87, 0x08, 0xd0, 0x71, 0xbc, 0xf9, 0xc6, 0x21, 0xc6, 0xdf, 0xf0, 0x3d, 0x3c, 0xdc, 0x92, 0x02, 0x02, 0x94, 0x54, 0x01, 0x3b, 0x9d, 0x13, 0x38, 0x47, 0xf2, 0x65, 0x44, 0x81, 0x1c, 0x01, 0x69, 0x77, 0x0f, 0xdc, 0x6f, 0xe5, 0x63, 0x8b, 0xfd, 0x7a, 0x72, 0x0d, 0x8b, 0x38, 0xf7, 0xe3, 0x0a, 0x7e, 0x68, 0x79, 0x06, 0x0b, 0x5f, 0x28, 0xc8, 0xab, 0x17, 0xb0, 0x02, 0x00, 0x71, 0x32, 0x07, 0xe8, 0x63, 0x7b, 0xff, 0x48, 0x44, 0xd8, 0x42, 0xd9, 0xca, 0x78, 0x83, 0x91, 0x34, 0x01, 0x98, 0xa3, 0xfe, 0x01, 0x72, 0xdf, 0xa7, 0x4d, 0xe1, 0xe5, 0x5a, 0xde, 0xfb, 0xc2, 0xe9, 0xbc, 0x7e, 0x88, 0x54, 0x76, 0xd1, 0xb9, 0xc0, 0x55, 0x81, 0x34, 0x08, 0xa4, 0x75, 0x28, 0x43, 0x43, 0x55, 0xbf, 0x03, 0xfd, 0xd4, 0xe2, 0x7d, 0x8b, 0x34, 0x61, 0xb0, 0xfb, 0x66, 0xab, 0x3e, 0x15, 0xa8, 0x79, 0xa1, 0x84, 0x45, 0x7e, 0x9e, 0xd9, 0xea, 0x6c, 0x51, 0xb6, 0x63, 0xb3, 0x1e, 0xdc, 0x8c, 0x4a, 0x3c, 0xd4, 0x54, 0xf6, 0x9d, 0x9c, 0xe5, 0x18, 0xd1, 0xb8, 0x78, 0x88, 0xee, 0x3d, 0x9d, 0xd5, 0x41, 0x6e, 0x43, 0xe1, 0x14, 0xac, 0x05, 0x72, 0x13, 0x52, 0xdf, 0xfc, 0x2c, 0xa8, 0x85, 0x97, 0x37, 0x7b, 0xbc, 0x41, 0x40, 0x09, 0xb0, 0xc2, 0xfd, 0x36, 0x9b, 0xe5, 0xba, 0x35, 0xa6, 0xdc, 0xe3, 0x47, 0x8b, 0x6c, 0x11, 0xb3, 0x3c, 0x0a, 0x33, 0x91, 0x8b, 0x6e, 0xe5, 0xac, 0x4c, 0xd4, 0xc2, 0xf1, 0xca, 0x6b, 0xd1, 0x90, 0xa0, 0x00, 0xa8, 0x38, 0xda, 0x38, 0xf5, 0x30, 0x77, 0x56, 0x03, 0x35, 0x59, 0x6d, 0x13, 0x58, 0x93, 0x77, 0x93, 0x96, 0x38, 0x10, 0xa7, 0x9a, 0x21, 0xb8, 0xd4, 0x61, 0x40, 0xe7, 0x68, 0x89, 0x8d, 0xcd, 0xa8, 0x8a, 0x0f, 0xaf, 0x8d, 0xdd, 0x0d, 0x63, 0x38, 0x47, 0xaa, 0xea, 0x0e, 0x03, 0x0b, 0xe6, 0x45, 0x5b, 0x41, 0xe3, 0xed, 0xe1, 0xe2, 0x87, 0x37, 0x30, 0xeb, 0x84, 0x81, 0xac, 0xaa, 0x7a, 0x51, 0x9c, 0xf9, 0x19, 0x58, 0x47, 0xa8, 0x6a, 0xfa, 0x57, 0xf9, 0x07, 0x1d, 0x44, 0xf4, 0xaf, 0x4c, 0xa0, 0xd3, 0x43, 0xc9, 0x0c, 0x0d, 0x22, 0xd9, 0x46, 0x14, 0x65, 0x85, 0xf0, 0x0e, 0xf3, 0xae, 0xf5, 0x7f, 0x0f, 0x9e, 0x55, 0xe8, 0x18, 0xc0, 0x12, 0x8a, 0xe2, 0x55, 0xdb, 0xc3, 0x11, 0x6c, 0xf0, 0xfe, 0x02, 0x16, 0x6d, 0x54, 0x85, 0x9d, 0xec, 0xbf, 0xdc, 0xcc, };
22861 static const u8 ed25519_994_test_vectors_expected_sig[] = {
22862 	0x0d, 0x8f, 0x09, 0x5e, 0x42, 0xa2, 0x73, 0x0a, 0x3c, 0x7b, 0xed, 0xf4, 0x2d, 0x5c, 0x83, 0x39, 0x8b, 0x5c, 0x0e, 0xe9, 0xc7, 0x7c, 0x5a, 0x61, 0xd9, 0x82, 0x29, 0x13, 0x96, 0xa9, 0x18, 0x2a, 0x08, 0x02, 0xa3, 0x7f, 0x32, 0x4b, 0xc4, 0xfb, 0x5d, 0x4a, 0xa4, 0xed, 0x60, 0x44, 0x4b, 0x66, 0x14, 0x4b, 0xac, 0xbc, 0x86, 0x51, 0x05, 0xd7, 0x69, 0x0f, 0x14, 0x06, 0x50, 0x69, 0x1d, 0x03, };
22863 static const ec_test_case ed25519_994_test_case = {
22864 	.name = "EDDSA25519-SHA512/wei25519 994",
22865 	.ec_str_p = &wei25519_str_params,
22866 	.priv_key = ed25519_994_test_vectors_priv_key,
22867 	.priv_key_len = sizeof(ed25519_994_test_vectors_priv_key),
22868 	.nn_random = NULL,
22869 	.hash_type = SHA512,
22870 	.msg = (const char *)ed25519_994_test_vectors_message,
22871 	.msglen = sizeof(ed25519_994_test_vectors_message),
22872 	.sig_type = EDDSA25519,
22873 	.exp_sig = ed25519_994_test_vectors_expected_sig,
22874 	.exp_siglen = sizeof(ed25519_994_test_vectors_expected_sig),
22875 	.adata = NULL,
22876 	.adata_len = 0
22877 };
22878 
22879 /************************************************/
22880 static const u8 ed25519_995_test_vectors_priv_key[] = {
22881 	0x0e, 0x86, 0x87, 0x2c, 0x78, 0x62, 0x0f, 0x10, 0xcb, 0x6d, 0xfc, 0x46, 0x3d, 0x2c, 0x28, 0x72, 0xc4, 0xda, 0x66, 0x07, 0x48, 0xc9, 0xcd, 0xa0, 0x1a, 0xb1, 0x45, 0x69, 0x58, 0xaf, 0xba, 0x7f, };
22882 static const u8 ed25519_995_test_vectors_message[] = {
22883 	0xa9, 0x00, 0xf3, 0xe9, 0xc6, 0x43, 0xa5, 0x64, 0x9b, 0x07, 0x6f, 0xb6, 0x9c, 0x3b, 0x2a, 0xc0, 0x84, 0xd5, 0x2c, 0xcb, 0xaf, 0xcd, 0xca, 0x5a, 0x9d, 0xb1, 0xda, 0xa7, 0x05, 0x00, 0xde, 0x99, 0x33, 0xd2, 0x3d, 0x15, 0x3f, 0x74, 0x95, 0x4e, 0x1b, 0xd5, 0xf5, 0x7b, 0x89, 0x9f, 0xe8, 0xa4, 0xb1, 0x34, 0xc1, 0x95, 0x41, 0x2b, 0x49, 0x83, 0x3b, 0x6e, 0x50, 0x95, 0xa6, 0x55, 0x4e, 0xaa, 0x6d, 0x84, 0x4b, 0x11, 0xf1, 0x58, 0x4c, 0x85, 0x05, 0x5b, 0x87, 0xf4, 0x1c, 0x99, 0x96, 0x69, 0x04, 0x6c, 0x71, 0xae, 0xb5, 0xc0, 0x45, 0x3f, 0xd6, 0xa3, 0xc4, 0x37, 0xf8, 0x15, 0xf0, 0x68, 0x98, 0x7c, 0x38, 0x68, 0xcc, 0x07, 0xaa, 0x2a, 0xf6, 0x58, 0x19, 0x04, 0x6c, 0x30, 0x7b, 0xaf, 0xb7, 0x53, 0x0d, 0xe8, 0x4f, 0x71, 0x30, 0xae, 0xa7, 0x8e, 0xf0, 0x05, 0xd5, 0xff, 0xf5, 0x2f, 0x8d, 0xea, 0xf1, 0xd5, 0xe9, 0xc3, 0x26, 0xd3, 0x21, 0x7f, 0xc5, 0x5b, 0x94, 0xf6, 0x28, 0xaa, 0x10, 0x4f, 0x6a, 0x24, 0xa3, 0x95, 0xe6, 0x2d, 0x1b, 0x62, 0xbd, 0x9c, 0x0d, 0x82, 0x43, 0x63, 0x19, 0xc5, 0xd7, 0x3e, 0x57, 0x65, 0x43, 0x5f, 0x3b, 0xa8, 0x56, 0xa4, 0x73, 0x4f, 0xd6, 0x0a, 0xe6, 0x17, 0xf7, 0xf0, 0xc3, 0xba, 0x57, 0x22, 0xa7, 0x33, 0x66, 0xc8, 0x8a, 0x6d, 0xfe, 0xca, 0x85, 0xc4, 0x44, 0x63, 0x9f, 0x44, 0x1f, 0x2c, 0x55, 0xfd, 0xc4, 0x64, 0xec, 0xb2, 0x99, 0xee, 0xe3, 0x6d, 0x8e, 0xae, 0x06, 0x3b, 0xb9, 0x4b, 0xb2, 0x43, 0x9d, 0xa0, 0x4f, 0xa5, 0xeb, 0xc5, 0x09, 0x23, 0x38, 0xa5, 0x03, 0x5e, 0x48, 0x0f, 0x08, 0x34, 0xae, 0xee, 0x8d, 0x71, 0x1f, 0x28, 0xc4, 0x6d, 0xc9, 0x60, 0xde, 0x1b, 0xe9, 0xdf, 0x30, 0x7c, 0x18, 0xc5, 0xc1, 0x78, 0xb2, 0x62, 0x96, 0xdc, 0x56, 0x7f, 0x15, 0xbf, 0x60, 0x86, 0x3a, 0x36, 0x71, 0x08, 0x67, 0xe9, 0x2f, 0xd5, 0x10, 0x48, 0x86, 0x56, 0x74, 0xc2, 0xaf, 0x0c, 0x53, 0xb2, 0xe7, 0xa2, 0x48, 0xae, 0x5b, 0xd0, 0x9a, 0x49, 0xaa, 0x03, 0x06, 0x18, 0x49, 0x5f, 0x82, 0x48, 0x0c, 0x42, 0x0a, 0xe1, 0x06, 0x88, 0x9b, 0xec, 0x00, 0x62, 0x78, 0xb9, 0x22, 0x72, 0x07, 0x57, 0x09, 0xfe, 0xc9, 0x54, 0x87, 0xcf, 0xb1, 0x00, 0x61, 0xe6, 0x72, 0x2b, 0x93, 0xee, 0xbf, 0xc0, 0xbc, 0x58, 0x7b, 0xf7, 0xba, 0x5f, 0x66, 0x92, 0xb0, 0x74, 0xf5, 0x5a, 0x98, 0xd5, 0xc3, 0x02, 0x76, 0x0b, 0x1b, 0xf1, 0xd0, 0x9f, 0x7e, 0x86, 0x68, 0x47, 0x9c, 0xa6, 0xf0, 0x1e, 0xed, 0xa2, 0xfd, 0xaf, 0x58, 0x4a, 0xc2, 0x05, 0x8f, 0xbf, 0x7c, 0xf3, 0x10, 0x0d, 0x06, 0xb8, 0x09, 0x1b, 0xfe, 0xab, 0x51, 0xc0, 0xc0, 0xb1, 0xd4, 0xee, 0x3a, 0x82, 0x57, 0xf6, 0x9b, 0x16, 0x17, 0x60, 0x4f, 0xce, 0x95, 0x3b, 0xb5, 0xf7, 0xf2, 0x71, 0xc6, 0xa1, 0x88, 0x0e, 0xa1, 0xb3, 0xf6, 0x62, 0x67, 0xe2, 0x43, 0x9f, 0x34, 0x58, 0x06, 0x28, 0x91, 0x78, 0x77, 0xc6, 0x6e, 0xc0, 0xfe, 0xd7, 0x6e, 0x44, 0xe8, 0xbb, 0x2b, 0x91, 0xa8, 0x80, 0x6d, 0xf4, 0xba, 0xca, 0x6c, 0xc9, 0x28, 0x89, 0xb8, 0x80, 0x50, 0x70, 0xc9, 0xa6, 0x17, 0xf8, 0x07, 0x15, 0x75, 0x30, 0x75, 0x1c, 0xc1, 0x7c, 0x47, 0xb0, 0x9e, 0xeb, 0xa9, 0x4d, 0x22, 0xb4, 0xe5, 0x47, 0xc3, 0x70, 0xce, 0x7a, 0x49, 0x6f, 0xca, 0xa3, 0x41, 0x2a, 0xff, 0xff, 0xb8, 0xc9, 0xb4, 0xde, 0x89, 0xb9, 0xf1, 0x21, 0xaa, 0xec, 0x5f, 0x54, 0x4b, 0x0c, 0x72, 0x5e, 0xc5, 0xee, 0x9d, 0x4b, 0x34, 0x76, 0xad, 0xc9, 0xd0, 0x50, 0xed, 0xb0, 0xfd, 0xba, 0xf0, 0x2c, 0xa9, 0xe3, 0x8a, 0xf1, 0x5f, 0x51, 0x50, 0x15, 0xa2, 0x67, 0x29, 0x2e, 0xc9, 0xaa, 0x54, 0x44, 0xed, 0x1d, 0xec, 0xd9, 0xcd, 0x9e, 0x1e, 0xad, 0x64, 0x87, 0xa0, 0xcc, 0xef, 0x99, 0x5b, 0x1c, 0x60, 0x0a, 0x03, 0x69, 0x35, 0x83, 0x86, 0x60, 0xac, 0xab, 0x27, 0x6d, 0x8b, 0x0e, 0x5b, 0x07, 0xd9, 0xf3, 0x63, 0x53, 0x21, 0x4b, 0xf8, 0x0f, 0x94, 0x1a, 0xc8, 0x8c, 0xf4, 0x0a, 0x08, 0xaf, 0x91, 0x79, 0x26, 0x23, 0x41, 0x12, 0xec, 0xcd, 0xaa, 0x16, 0x2d, 0xc9, 0x9d, 0xe3, 0xe2, 0x5b, 0xaf, 0xf6, 0x5b, 0xb0, 0x1e, 0x49, 0x89, 0x89, 0x86, 0x33, 0x2b, 0xdc, 0x2d, 0x70, 0x5d, 0x5a, 0xea, 0x40, 0xf9, 0xbc, 0x4f, 0xbb, 0x28, 0x06, 0x89, 0x44, 0x96, 0x03, 0x8d, 0xa2, 0x36, 0xe9, 0xdc, 0x29, 0x60, 0x0c, 0x9c, 0xed, 0xea, 0xc3, 0xb6, 0x16, 0xcc, 0x56, 0xd8, 0x9e, 0xc2, 0xfa, 0x67, 0x38, 0x96, 0x66, 0xc6, 0xc4, 0xfe, 0x23, 0x3b, 0x63, 0x91, 0x05, 0x02, 0x3e, 0x10, 0x1b, 0x87, 0x4a, 0x63, 0x30, 0xfe, 0x57, 0x3f, 0x80, 0xac, 0xe5, 0x5d, 0x03, 0x7c, 0xc6, 0x12, 0xe6, 0xdf, 0xd5, 0xa6, 0xe6, 0x86, 0xf9, 0xa8, 0x30, 0x54, 0xfc, 0x46, 0xe1, 0x5b, 0xb6, 0xda, 0x45, 0x3d, 0x81, 0x0c, 0xf1, 0x38, 0xa1, 0x78, 0xbf, 0x03, 0x9d, 0x1e, 0x18, 0x16, 0x14, 0xff, 0x40, 0xcb, 0xe6, 0xbb, 0x3b, 0x47, 0x36, 0x63, 0x75, 0x2e, 0xa8, 0x02, 0x5f, 0xf7, 0xf7, 0x39, 0xee, 0x4b, 0x67, 0x11, 0x0f, 0x96, 0x80, 0x89, 0xb2, 0x47, 0x3c, 0xd0, 0x44, 0xd4, 0x8b, 0x00, 0x9d, 0x06, 0x77, 0xf7, 0x91, 0xf5, 0x4e, 0x2d, 0xf6, 0xaf, 0xdc, 0x3a, 0xcb, 0x9e, 0x99, 0xdd, 0x69, 0x58, 0xa4, 0x50, 0xc0, 0xe1, 0xb6, 0xdd, 0x5e, 0x97, 0xa2, 0xcc, 0x46, 0x29, 0x8b, 0x4f, 0x48, 0xac, 0x6a, 0xda, 0xf0, 0x13, 0xd7, 0x5b, 0x2c, 0x42, 0x07, 0x2d, 0x2e, 0xe1, 0x3f, 0x73, 0x36, 0x87, 0xee, 0x83, 0xc3, 0xf7, 0x0c, 0x4f, 0xdd, 0x97, 0x20, 0xfd, 0x17, 0x98, 0xc6, 0x62, 0xfe, 0xf3, 0xba, 0x01, 0x2b, 0xed, 0xd4, 0x45, 0xc4, 0x72, 0x9f, 0x21, 0x30, 0x48, 0x4f, 0xe7, 0x7a, 0xc1, 0xb4, 0xc4, 0xdd, 0xeb, 0x81, 0xfa, 0xf6, 0x0f, 0x76, 0xe3, 0xbd, 0x7d, 0x21, 0xa9, 0xa6, 0xc5, 0x7a, 0x69, 0xa9, 0xcd, 0x9c, 0xc2, 0x03, 0xfc, 0x63, 0xb5, 0x9e, 0xe8, 0x4b, 0x89, 0x15, 0xb3, 0xc1, 0x8a, 0x59, 0x54, 0xe2, 0x27, 0xc8, 0x6e, 0xbb, 0xb7, 0xd4, 0xc4, 0xc1, 0xa0, 0x8d, 0x0c, 0x5e, 0x46, 0x7c, 0x68, 0xa0, 0x69, 0x70, 0x75, 0x1e, 0xf5, 0x84, 0xbd, 0xd6, 0x11, 0xe1, 0xdd, 0x1b, 0x48, 0x90, 0x0a, 0xb3, 0x54, 0xb9, 0x9c, 0xec, 0x6e, 0x1d, 0xf3, 0xbd, 0x41, 0x46, 0xea, 0x07, 0x55, 0x35, 0x0d, 0xc1, 0x1c, 0x3a, 0x3f, 0x60, 0x0d, 0x47, 0x0a, 0x74, 0xf4, 0x75, 0xe4, 0xfe, 0xed, 0xaf, 0x08, 0x65, 0x27, 0x6f, 0xa8, 0xa9, 0x77, 0x13, 0x47, 0x1d, 0x0c, 0xa9, 0x95, 0x5c, 0x71, 0x35, 0x88, 0x33, 0x9d, 0xee, 0x79, 0x65, 0x6e, 0x56, 0x7e, 0x6a, 0xb1, 0xdb, 0xf9, 0x83, 0x07, 0x03, 0x81, 0x7a, 0xe6, 0x20, 0x92, 0x9a, 0x06, 0x84, 0xa5, 0xca, 0xf2, 0x0f, 0xef, 0x81, 0xa8, 0xee, 0x89, 0x7b, 0xe7, 0xe5, 0x05, 0xad, 0xe6, 0x49, 0x6b, 0x9a, 0xef, 0x02, 0x72, 0xbd, 0x8f, 0x35, 0x08, 0x60, 0x23, 0x3b, 0x33, 0x8c, 0x2e, 0x36, 0xd3, 0x13, 0x8d, 0xb6, 0x95, 0x38, };
22884 static const u8 ed25519_995_test_vectors_expected_sig[] = {
22885 	0x20, 0x37, 0xe9, 0x77, 0x41, 0xc3, 0xe6, 0x40, 0x9c, 0x66, 0xfc, 0x67, 0x82, 0xaa, 0xb3, 0x89, 0xc5, 0xd7, 0x78, 0x09, 0x7a, 0xc7, 0x78, 0x99, 0x9e, 0x85, 0x76, 0xe4, 0x9e, 0xf4, 0xf6, 0xa0, 0xc7, 0x73, 0x0b, 0xd9, 0xe0, 0x93, 0xdd, 0x3c, 0x0a, 0xe7, 0xec, 0x76, 0x20, 0x33, 0x80, 0xda, 0x65, 0x71, 0x47, 0xd3, 0x3a, 0x8d, 0x9d, 0xd6, 0x5e, 0xd0, 0x0c, 0xf7, 0x62, 0x24, 0xd6, 0x01, };
22886 static const ec_test_case ed25519_995_test_case = {
22887 	.name = "EDDSA25519-SHA512/wei25519 995",
22888 	.ec_str_p = &wei25519_str_params,
22889 	.priv_key = ed25519_995_test_vectors_priv_key,
22890 	.priv_key_len = sizeof(ed25519_995_test_vectors_priv_key),
22891 	.nn_random = NULL,
22892 	.hash_type = SHA512,
22893 	.msg = (const char *)ed25519_995_test_vectors_message,
22894 	.msglen = sizeof(ed25519_995_test_vectors_message),
22895 	.sig_type = EDDSA25519,
22896 	.exp_sig = ed25519_995_test_vectors_expected_sig,
22897 	.exp_siglen = sizeof(ed25519_995_test_vectors_expected_sig),
22898 	.adata = NULL,
22899 	.adata_len = 0
22900 };
22901 
22902 /************************************************/
22903 static const u8 ed25519_996_test_vectors_priv_key[] = {
22904 	0x52, 0x03, 0x54, 0xd8, 0x5a, 0x87, 0xd7, 0xc2, 0x2c, 0xa6, 0xf7, 0x84, 0x71, 0x44, 0x10, 0xec, 0x98, 0xbf, 0x6a, 0x65, 0xf8, 0x03, 0xef, 0x93, 0x79, 0xbd, 0xc8, 0x04, 0x35, 0x9b, 0x23, 0x49, };
22905 static const u8 ed25519_996_test_vectors_message[] = {
22906 	0xa1, 0xd4, 0xad, 0x48, 0x6e, 0xbb, 0x7c, 0x1a, 0x0a, 0xcb, 0x8f, 0x11, 0x70, 0x13, 0xe8, 0xe4, 0x74, 0x67, 0x89, 0xc6, 0x24, 0x4a, 0x56, 0xc9, 0xed, 0xfb, 0xf1, 0xef, 0x37, 0xac, 0x13, 0x09, 0xaa, 0xf5, 0x1c, 0x93, 0x75, 0xfc, 0x12, 0xca, 0xcd, 0x68, 0x97, 0xa4, 0x47, 0x95, 0x45, 0xf2, 0xbf, 0x39, 0x0a, 0xb7, 0xc0, 0xc0, 0xe5, 0xc5, 0x92, 0xf5, 0x50, 0x6e, 0x99, 0x38, 0x37, 0x8a, 0x11, 0xb6, 0x36, 0xbf, 0x85, 0x70, 0x29, 0xb9, 0x68, 0x54, 0x7a, 0xa5, 0x06, 0xc4, 0xa0, 0x82, 0x9a, 0x15, 0xfd, 0x39, 0x95, 0xfe, 0xad, 0x4f, 0x86, 0x0f, 0xd7, 0xc6, 0x23, 0xc6, 0x3e, 0x86, 0x95, 0x43, 0x6e, 0xae, 0x55, 0x81, 0x64, 0x14, 0x77, 0x83, 0x47, 0x09, 0x2f, 0x5f, 0x4d, 0x42, 0x2b, 0xb1, 0xb5, 0xe5, 0xa0, 0x69, 0x66, 0x24, 0x1e, 0xfe, 0xc1, 0x4f, 0x1e, 0x4f, 0xca, 0x06, 0x63, 0x91, 0x14, 0x71, 0x8c, 0x30, 0xeb, 0xca, 0xdd, 0x4c, 0x6d, 0x8a, 0xbe, 0x7f, 0xe9, 0x3b, 0x25, 0xd1, 0x71, 0x73, 0x53, 0x39, 0x54, 0x18, 0x8b, 0x1a, 0xb0, 0x3f, 0xcb, 0x77, 0x92, 0xcb, 0x63, 0x5c, 0xe3, 0x6e, 0x9b, 0xdb, 0xdd, 0xe7, 0xa5, 0x61, 0xc5, 0xf6, 0x69, 0x20, 0xd9, 0x10, 0xcb, 0x26, 0x9c, 0x8c, 0x1c, 0x3f, 0x59, 0x32, 0x65, 0x09, 0x00, 0x72, 0xc4, 0x89, 0x32, 0xe6, 0x92, 0xa9, 0xc7, 0x38, 0xc7, 0x04, 0x89, 0x74, 0x89, 0xa7, 0x15, 0xc2, 0xb3, 0x94, 0xd5, 0xa8, 0x6f, 0x70, 0x36, 0xa4, 0xca, 0xc5, 0xdc, 0xb5, 0xb8, 0x5c, 0xfa, 0x16, 0x21, 0x56, 0xe0, 0xbc, 0x6b, 0xfe, 0x02, 0xfb, 0x4c, 0x38, 0x60, 0x8c, 0xfb, 0x23, 0xc9, 0x2b, 0x8b, 0x6a, 0x3c, 0xb4, 0x6e, 0x48, 0x7d, 0x60, 0xe0, 0xdc, 0x97, 0xaa, 0x2e, 0x33, 0xe3, 0xda, 0xda, 0x92, 0x5e, 0x4e, 0x66, 0x12, 0xcc, 0x5a, 0xf1, 0x25, 0xe5, 0xac, 0xa4, 0x58, 0x17, 0xa2, 0xfd, 0x6c, 0x3f, 0xf1, 0x0b, 0x18, 0x93, 0x8b, 0x44, 0xbd, 0x4d, 0xd2, 0x0d, 0x7f, 0xcc, 0xf7, 0xf2, 0x6b, 0x40, 0xa6, 0x6f, 0x48, 0xaa, 0xff, 0xc9, 0xa5, 0x41, 0xe6, 0xd3, 0x71, 0x38, 0xfc, 0x55, 0x46, 0x98, 0x68, 0xe2, 0xd1, 0x03, 0x65, 0xef, 0xf3, 0x7f, 0xac, 0x36, 0x0f, 0xab, 0x3d, 0xc5, 0x54, 0x37, 0xac, 0x2d, 0x8f, 0xea, 0x74, 0x74, 0x40, 0x5f, 0xb3, 0x63, 0x0f, 0x79, 0x63, 0xd2, 0xd4, 0x59, 0x58, 0xf9, 0x09, 0xd1, 0x48, 0x30, 0x28, 0x6f, 0xf1, 0x52, 0xaa, 0x75, 0x2f, 0x51, 0x0c, 0xe9, 0x80, 0xbd, 0x57, 0x54, 0xe3, 0xfa, 0x32, 0xc6, 0x99, 0x24, 0xdd, 0x95, 0xd5, 0xc1, 0x52, 0xa7, 0x37, 0xa8, 0xfa, 0xdc, 0xfd, 0x0a, 0x45, 0x60, 0xe0, 0xb1, 0x14, 0xf8, 0xe8, 0xaa, 0xa6, 0x18, 0xd4, 0x38, 0xb9, 0x87, 0x71, 0x11, 0xda, 0x17, 0x40, 0xef, 0x81, 0x7c, 0x44, 0x19, 0x39, 0xec, 0xec, 0x79, 0x9b, 0xa1, 0x6b, 0x1b, 0x17, 0x1c, 0xa9, 0xb6, 0x49, 0xb7, 0xd7, 0x8f, 0xa0, 0x52, 0xd1, 0x49, 0x7a, 0x50, 0x76, 0x88, 0xbe, 0xde, 0x49, 0x00, 0xab, 0xc5, 0x3a, 0x96, 0x48, 0xda, 0x59, 0x17, 0x03, 0x5c, 0xef, 0xfe, 0x0d, 0xa2, 0x1c, 0x25, 0xc0, 0x9b, 0x06, 0xd6, 0x18, 0x5b, 0xdd, 0xa2, 0xd7, 0x78, 0xf7, 0xed, 0xe6, 0x15, 0x3e, 0x3e, 0xaf, 0xf4, 0x95, 0xc9, 0x79, 0x6d, 0x4d, 0x16, 0x6d, 0x2d, 0x2e, 0xa4, 0x18, 0xe4, 0xa4, 0xaa, 0x6e, 0x67, 0x8f, 0xaf, 0x06, 0x96, 0xe7, 0x52, 0xa0, 0x9e, 0x02, 0xea, 0xad, 0xe7, 0x63, 0x07, 0x0e, 0x08, 0x8e, 0x99, 0x64, 0x91, 0x9f, 0xf4, 0xaa, 0x4c, 0x82, 0xf8, 0x62, 0x9a, 0x3d, 0x5c, 0x79, 0x7c, 0x2a, 0x64, 0x59, 0x4d, 0x20, 0x68, 0x35, 0xda, 0x0b, 0xfa, 0x43, 0xcc, 0xd9, 0xdd, 0xfc, 0xdb, 0x6a, 0xac, 0x4d, 0x48, 0x6e, 0x03, 0xc8, 0x41, 0x22, 0x37, 0x59, 0x39, 0xa5, 0x27, 0x0b, 0xc1, 0x51, 0x9e, 0x07, 0x07, 0xe5, 0x1c, 0x3f, 0x46, 0xf1, 0xe5, 0xc5, 0x66, 0xb3, 0x3a, 0x24, 0x5f, 0xa0, 0xc2, 0x02, 0x83, 0x84, 0x72, 0x36, 0x3d, 0xe9, 0xf0, 0xed, 0xde, 0x2e, 0x79, 0x1d, 0x82, 0x29, 0x30, 0x95, 0xf7, 0x50, 0xbf, 0xf5, 0x45, 0xe6, 0xc3, 0x47, 0x39, 0xdc, 0xc5, 0x4d, 0xb0, 0xa3, 0x6a, 0xe2, 0xe2, 0xaa, 0x39, 0xb0, 0x7c, 0xb4, 0xf6, 0xa9, 0x64, 0x62, 0x40, 0xd2, 0xd3, 0x14, 0x88, 0xf6, 0x78, 0x15, 0xb2, 0x95, 0x45, 0xd2, 0x20, 0xbe, 0x92, 0x9e, 0x33, 0x39, 0xf8, 0x28, 0x1a, 0x93, 0x7e, 0x05, 0xa8, 0xc5, 0xc3, 0x88, 0x7e, 0x06, 0x04, 0x8e, 0xa7, 0xb1, 0x8a, 0x48, 0xf8, 0xd9, 0x1b, 0x1e, 0x3a, 0xf5, 0xca, 0xb5, 0xce, 0xda, 0x0e, 0xbd, 0x71, 0xbf, 0x54, 0xed, 0xec, 0x20, 0x3d, 0x37, 0x16, 0x5e, 0x4c, 0x9f, 0x9f, 0x80, 0x46, 0x1c, 0xd2, 0x9f, 0xcd, 0x99, 0xdd, 0xea, 0x43, 0x96, 0x93, 0x94, 0x1b, 0x5d, 0x53, 0xff, 0x94, 0x37, 0x9c, 0xf6, 0x42, 0x57, 0x1d, 0xd5, 0x59, 0xa1, 0x1f, 0x8f, 0x38, 0x3d, 0x94, 0x3f, 0x22, 0x55, 0xcf, 0x71, 0x58, 0x00, 0xaf, 0x77, 0x6b, 0x10, 0x45, 0xbf, 0x19, 0xa9, 0xc9, 0xbb, 0x09, 0x51, 0x55, 0xdf, 0xb6, 0x46, 0xb6, 0x5f, 0x4a, 0x28, 0x0f, 0x2a, 0x97, 0xef, 0x92, 0x7d, 0xda, 0xbe, 0x24, 0xa2, 0xf9, 0x71, 0xa8, 0x17, 0x0d, 0xd4, 0x2a, 0x08, 0x92, 0x76, 0x82, 0x5c, 0xb9, 0x14, 0x8c, 0x01, 0x5a, 0xae, 0x1e, 0x9d, 0xad, 0xf2, 0x2c, 0x10, 0xe7, 0x54, 0x8c, 0x59, 0xbf, 0x6b, 0x86, 0x8b, 0x20, 0xe8, 0x6c, 0x83, 0xa9, 0xe7, 0x34, 0x3a, 0xec, 0x27, 0x54, 0xee, 0x62, 0x25, 0xf9, 0xfd, 0xce, 0xaf, 0x8e, 0x51, 0xc4, 0x0e, 0x95, 0x5b, 0xda, 0x49, 0xc3, 0x5d, 0xed, 0x38, 0xfa, 0x8b, 0xcc, 0x1e, 0x6c, 0x8f, 0xc9, 0xc2, 0x41, 0x2e, 0x91, 0x04, 0xc5, 0xc2, 0x36, 0x8b, 0x1f, 0x99, 0x23, 0xe0, 0x10, 0xfa, 0x2e, 0xde, 0x91, 0x1d, 0x42, 0xb1, 0x39, 0xf4, 0x00, 0x7e, 0x34, 0x26, 0x92, 0x2f, 0xfb, 0x61, 0x58, 0xec, 0xa9, 0x7b, 0x47, 0xcf, 0xc9, 0x97, 0x85, 0x35, 0x12, 0xbb, 0x9d, 0x4c, 0xa2, 0xf0, 0x17, 0xc2, 0xc2, 0x63, 0xdc, 0x19, 0x9f, 0x3b, 0xf1, 0xeb, 0x4f, 0x15, 0x08, 0xef, 0x82, 0x8b, 0x0e, 0x00, 0xdb, 0x21, 0x00, 0x27, 0x36, 0xa7, 0xf2, 0x2e, 0xc9, 0x12, 0x98, 0x19, 0x45, 0x83, 0x13, 0x9a, 0xd7, 0x5f, 0x58, 0xe2, 0x1b, 0x51, 0x8d, 0xaa, 0x49, 0xa4, 0x07, 0x6c, 0x63, 0x75, 0xfa, 0xa6, 0x08, 0x91, 0xa6, 0x9e, 0x52, 0xa6, 0x56, 0x69, 0x9d, 0x80, 0x34, 0xa7, 0xab, 0x7f, 0xcb, 0xe4, 0x21, 0x75, 0x49, 0x14, 0x41, 0xfe, 0x61, 0xb1, 0x78, 0x3e, 0x83, 0x78, 0x57, 0x52, 0x22, 0x15, 0xa5, 0xfa, 0xc5, 0x59, 0x0b, 0xed, 0x2e, 0x9d, 0x20, 0x66, 0x06, 0x09, 0x6d, 0x3b, 0xe8, 0xee, 0x92, 0x87, 0x3b, 0xfc, 0x30, 0xca, 0xb1, 0x5c, 0xe9, 0xf9, 0x91, 0x0d, 0x01, 0xa1, 0x17, 0xf8, 0x99, 0x26, 0xcc, 0x3a, 0xfa, 0x8d, 0x10, 0x4f, 0x79, 0x9f, 0xf3, 0x80, 0x98, 0xde, 0x28, 0xb8, 0xff, 0x0f, 0x03, 0x87, 0x25, 0xc2, 0x90, 0x3b, 0x24, 0xc1, 0x42, 0x9c, 0xea, 0x49, 0x25, 0x24, 0x9d, 0x87, 0x81, };
22907 static const u8 ed25519_996_test_vectors_expected_sig[] = {
22908 	0x75, 0x4e, 0x60, 0xd3, 0xf6, 0xf4, 0xab, 0x4f, 0x5d, 0x0d, 0xdb, 0xb0, 0x01, 0x53, 0x20, 0x09, 0x16, 0x63, 0x88, 0x48, 0x7f, 0x78, 0x0b, 0x76, 0xf6, 0x0b, 0xd0, 0xbc, 0x9f, 0xef, 0xab, 0xfa, 0xab, 0x6b, 0xe2, 0xae, 0x78, 0x69, 0x57, 0x3a, 0x64, 0x79, 0x6e, 0xf2, 0x84, 0x6e, 0x85, 0xe5, 0xcd, 0xae, 0x52, 0xdb, 0x10, 0x44, 0xfe, 0xfa, 0x79, 0x6b, 0xac, 0xf4, 0x8b, 0x96, 0x8b, 0x0d, };
22909 static const ec_test_case ed25519_996_test_case = {
22910 	.name = "EDDSA25519-SHA512/wei25519 996",
22911 	.ec_str_p = &wei25519_str_params,
22912 	.priv_key = ed25519_996_test_vectors_priv_key,
22913 	.priv_key_len = sizeof(ed25519_996_test_vectors_priv_key),
22914 	.nn_random = NULL,
22915 	.hash_type = SHA512,
22916 	.msg = (const char *)ed25519_996_test_vectors_message,
22917 	.msglen = sizeof(ed25519_996_test_vectors_message),
22918 	.sig_type = EDDSA25519,
22919 	.exp_sig = ed25519_996_test_vectors_expected_sig,
22920 	.exp_siglen = sizeof(ed25519_996_test_vectors_expected_sig),
22921 	.adata = NULL,
22922 	.adata_len = 0
22923 };
22924 
22925 /************************************************/
22926 static const u8 ed25519_997_test_vectors_priv_key[] = {
22927 	0x06, 0x1b, 0xcf, 0x1a, 0xa6, 0xfd, 0x98, 0x98, 0x97, 0xb3, 0x22, 0xe5, 0x91, 0xcc, 0xef, 0x54, 0x54, 0xef, 0x4a, 0x5a, 0xdb, 0x1a, 0x48, 0x00, 0xf3, 0x26, 0x11, 0xcf, 0xf2, 0xb5, 0xbc, 0x78, };
22928 static const u8 ed25519_997_test_vectors_message[] = {
22929 	0xd6, 0x3b, 0xb9, 0x20, 0x8c, 0x1f, 0x4c, 0x7d, 0x43, 0x32, 0x6c, 0xf3, 0x5f, 0xa5, 0xd8, 0x39, 0x33, 0x15, 0x18, 0x04, 0xab, 0x89, 0x1d, 0x49, 0xb0, 0xbd, 0xaf, 0x42, 0x9e, 0x4c, 0x39, 0xa3, 0x21, 0x42, 0x8e, 0x0d, 0x90, 0xaa, 0x00, 0x31, 0x8b, 0x97, 0xe0, 0x8c, 0x70, 0x24, 0xc9, 0x12, 0xcf, 0x38, 0x88, 0x79, 0xf3, 0xcf, 0x97, 0x4b, 0xb2, 0x53, 0xa1, 0xe7, 0xa4, 0xc8, 0xee, 0xc1, 0x93, 0xbf, 0x4c, 0x14, 0xaf, 0x6f, 0xb9, 0x79, 0x4d, 0xf0, 0xd4, 0x97, 0x85, 0x0e, 0xdb, 0x04, 0xd5, 0x74, 0xc9, 0x7e, 0xd7, 0x6c, 0x70, 0x21, 0x39, 0x96, 0x84, 0x01, 0xb4, 0x0e, 0xb5, 0x43, 0x94, 0xef, 0x4c, 0xfa, 0xa7, 0xe5, 0xd3, 0xcd, 0x94, 0x3a, 0xf1, 0x21, 0x92, 0x53, 0x8d, 0xde, 0xe5, 0x93, 0xc2, 0xa2, 0x4a, 0x26, 0x7a, 0xfa, 0x13, 0x71, 0xfd, 0x77, 0xfe, 0xee, 0x20, 0x71, 0xf4, 0x36, 0x9f, 0xbe, 0xf8, 0x79, 0x76, 0xe7, 0xeb, 0xd8, 0x1d, 0x1e, 0x5b, 0x31, 0xd6, 0xe0, 0x9e, 0x02, 0xd8, 0x30, 0x35, 0x7d, 0x36, 0xbf, 0xf8, 0x59, 0x67, 0x03, 0xe4, 0x14, 0x6d, 0x08, 0x27, 0xbe, 0xc9, 0xc0, 0xf8, 0x7b, 0x26, 0xf3, 0x11, 0x95, 0xc9, 0x6c, 0x93, 0xb6, 0xd8, 0xc4, 0x67, 0x67, 0xec, 0x1b, 0xc6, 0xde, 0x39, 0xf0, 0x00, 0x8a, 0x41, 0xff, 0x87, 0x5d, 0xa0, 0x50, 0xa3, 0xf8, 0x65, 0xab, 0x92, 0xcb, 0xf2, 0x9c, 0x38, 0xa2, 0x80, 0xf3, 0xbf, 0x69, 0xf6, 0x8e, 0x92, 0xb5, 0xf4, 0x30, 0xcd, 0xee, 0x35, 0x01, 0x98, 0x1d, 0x0b, 0x3d, 0x18, 0x90, 0x96, 0xe0, 0xae, 0xac, 0xd6, 0x4c, 0x33, 0x10, 0x24, 0x21, 0x34, 0x88, 0x12, 0x15, 0x8b, 0xb6, 0x1e, 0x51, 0xae, 0x93, 0x65, 0x92, 0xb2, 0xf8, 0xf1, 0xb9, 0x10, 0x94, 0x9e, 0xf3, 0x72, 0x32, 0x58, 0xa9, 0xb4, 0x4e, 0x4e, 0x1b, 0xda, 0xdf, 0x1a, 0xe2, 0xcf, 0xc1, 0x8e, 0x37, 0xd2, 0xed, 0x0d, 0xd1, 0x73, 0x44, 0x04, 0xb8, 0xba, 0xa5, 0xf3, 0x93, 0xcd, 0x56, 0x06, 0x9e, 0xce, 0xbf, 0x7e, 0xdd, 0x7c, 0x06, 0xcf, 0x6c, 0x8a, 0xa3, 0xe8, 0xe1, 0x2f, 0xbf, 0x94, 0x6d, 0x7b, 0x32, 0xd8, 0x45, 0x3b, 0x6f, 0xbb, 0x65, 0x35, 0x52, 0x6c, 0x8f, 0xb8, 0xfc, 0x1d, 0x58, 0x15, 0x56, 0x0b, 0xb3, 0x1b, 0x99, 0x5d, 0xf2, 0xad, 0xbd, 0x83, 0x6a, 0xdd, 0x92, 0x9a, 0x56, 0xfd, 0xd9, 0x3a, 0x17, 0x47, 0xd9, 0x3a, 0x40, 0xc0, 0x5e, 0x12, 0x9e, 0xb6, 0xf8, 0x58, 0x3c, 0x29, 0x21, 0xcc, 0x9d, 0xbd, 0xda, 0x42, 0x25, 0xe1, 0x76, 0xdb, 0x38, 0x6a, 0x02, 0xec, 0x40, 0xaf, 0x10, 0x32, 0xc9, 0xb6, 0x2e, 0x95, 0x14, 0x70, 0x25, 0xf4, 0xac, 0x8d, 0xd5, 0x84, 0x33, 0xb6, 0x4a, 0xc0, 0x73, 0x15, 0x0c, 0x69, 0xb9, 0xc4, 0x15, 0x4d, 0xcb, 0xb0, 0x03, 0x44, 0xf3, 0x08, 0x11, 0x3c, 0xd9, 0x19, 0x9c, 0xcf, 0xb5, 0x07, 0x58, 0x01, 0xc7, 0x05, 0xb8, 0xfc, 0x43, 0xb7, 0xc8, 0xbc, 0x16, 0x73, 0x65, 0xe4, 0x62, 0x93, 0xd0, 0x6c, 0x4f, 0x48, 0x35, 0xc6, 0x4e, 0xe5, 0xd5, 0x38, 0x3f, 0x68, 0x90, 0xca, 0x35, 0xa8, 0x0a, 0xf9, 0x17, 0x74, 0x81, 0x62, 0xdf, 0x25, 0x18, 0xab, 0x14, 0x68, 0xf1, 0x53, 0x62, 0x98, 0x99, 0x40, 0x6c, 0xde, 0x66, 0xce, 0x07, 0xfa, 0x7d, 0x29, 0x93, 0xda, 0xbe, 0x0c, 0x60, 0x08, 0x9c, 0x91, 0x89, 0x24, 0x88, 0xf3, 0xbc, 0xaa, 0xec, 0x40, 0x8a, 0x0c, 0xd0, 0x8c, 0x9a, 0xa9, 0x8e, 0x09, 0x37, 0xe0, 0x2c, 0x41, 0xad, 0x52, 0xd2, 0x41, 0xa9, 0x98, 0x33, 0xe3, 0xb8, 0x3f, 0x7d, 0x3f, 0x1b, 0x07, 0x8c, 0x31, 0xd4, 0x5c, 0x34, 0xfa, 0x01, 0x75, 0xab, 0xbd, 0x0f, 0x32, 0x2b, 0x8f, 0xd2, 0xdc, 0x83, 0x49, 0x1d, 0xa2, 0x92, 0xad, 0x00, 0x76, 0x2e, 0x3e, 0x57, 0x7b, 0x9e, 0xee, 0x0a, 0xae, 0x08, 0x72, 0x90, 0x70, 0xac, 0x25, 0xe3, 0x3b, 0xc9, 0x45, 0x25, 0xbc, 0x0d, 0x2a, 0xb5, 0x97, 0x04, 0xef, 0xec, 0x5c, 0x01, 0x48, 0x42, 0x1a, 0x47, 0x92, 0x8d, 0x34, 0xb1, 0xe4, 0x5c, 0xe7, 0x21, 0xee, 0x64, 0x47, 0xfb, 0x08, 0x2a, 0xc4, 0x00, 0xb3, 0xe6, 0x84, 0x6d, 0x20, 0x4f, 0x7f, 0x9d, 0xb6, 0xf0, 0xa3, 0x2b, 0x2a, 0x69, 0x73, 0x8b, 0x3e, 0xe9, 0xdd, 0xbb, 0x0d, 0xbd, 0x7e, 0x0f, 0x04, 0x1d, 0x7e, 0xa5, 0x3a, 0x5d, 0x64, 0x7f, 0xb5, 0x0b, 0x39, 0xae, 0x24, 0xd7, 0x8c, 0x8b, 0x07, 0xcf, 0xc4, 0xe0, 0x52, 0x71, 0x1f, 0x0d, 0x46, 0x39, 0xe7, 0x21, 0xd5, 0xc3, 0x6f, 0x31, 0xb5, 0x88, 0x86, 0x67, 0x12, 0xb7, 0x57, 0x10, 0x8a, 0x40, 0xcc, 0x7a, 0xbb, 0xb9, 0x91, 0x30, 0x83, 0x30, 0x3a, 0xae, 0x05, 0xa0, 0xf1, 0xaf, 0x0e, 0xc6, 0x87, 0x84, 0x41, 0xa2, 0x5c, 0xf8, 0x72, 0x9a, 0xba, 0x42, 0xa3, 0xa9, 0x4c, 0xe9, 0xb7, 0x38, 0x88, 0xa0, 0xf5, 0xc9, 0xe4, 0x0c, 0x9f, 0xc4, 0x54, 0x10, 0xf0, 0x68, 0x1f, 0xa7, 0xf9, 0x08, 0x98, 0x56, 0x2c, 0xcb, 0x4b, 0xbc, 0x55, 0xf0, 0xab, 0x1f, 0xe9, 0xc7, 0x0e, 0xa6, 0x60, 0x26, 0xdd, 0xa8, 0xd7, 0x09, 0x0f, 0x7b, 0x38, 0xed, 0xb5, 0xae, 0xc1, 0x55, 0x7b, 0x11, 0x66, 0x98, 0x7c, 0xd4, 0x1a, 0x70, 0x59, 0xcd, 0xee, 0x60, 0x9b, 0x74, 0xd8, 0xfe, 0x06, 0xb7, 0x05, 0x9b, 0x77, 0x24, 0xbf, 0xf5, 0x30, 0x07, 0xf7, 0xe1, 0x10, 0x46, 0x2f, 0x06, 0xad, 0x14, 0xd0, 0x7e, 0xe1, 0xb4, 0xd6, 0x9a, 0xc8, 0x23, 0xbc, 0xf5, 0x76, 0xd2, 0xfa, 0x9e, 0x2e, 0x8e, 0xd7, 0xf3, 0x19, 0x80, 0x40, 0xd4, 0x71, 0x29, 0x60, 0x63, 0x13, 0x7c, 0x98, 0x1a, 0xdb, 0xf3, 0x64, 0xcb, 0x20, 0xf0, 0xa1, 0xad, 0x20, 0x54, 0x47, 0x2f, 0x7c, 0xee, 0x25, 0x27, 0xf9, 0x98, 0x09, 0x61, 0x5d, 0x2e, 0x4b, 0x73, 0x4b, 0x06, 0xf3, 0x5d, 0xee, 0xcb, 0xd6, 0x26, 0x19, 0x66, 0x3d, 0xde, 0x81, 0xd6, 0xe2, 0x35, 0x28, 0xb0, 0xc9, 0x71, 0x32, 0xaf, 0x0a, 0x23, 0xba, 0xd6, 0x3d, 0x9c, 0x08, 0x14, 0x2a, 0x26, 0xe2, 0x74, 0x3f, 0x86, 0x18, 0xec, 0xfe, 0x72, 0x3b, 0x19, 0xff, 0xdd, 0x0b, 0x19, 0xab, 0xd9, 0xa3, 0xf4, 0xfe, 0x21, 0x0b, 0x1e, 0x71, 0xac, 0xdf, 0xe3, 0x8a, 0xbe, 0xbe, 0x23, 0xf7, 0xfd, 0xef, 0x66, 0x38, 0x1c, 0xbc, 0x75, 0xf3, 0x07, 0xe5, 0x57, 0x72, 0x35, 0xb0, 0x2e, 0x4c, 0xd9, 0xcf, 0xaa, 0x15, 0x03, 0x08, 0x68, 0xed, 0x14, 0x53, 0xda, 0x58, 0xf7, 0x83, 0xb7, 0x35, 0x2b, 0x04, 0x65, 0x68, 0x44, 0xc0, 0x42, 0x44, 0x1e, 0xfe, 0x6a, 0x3b, 0x4f, 0x8f, 0xec, 0x8f, 0x7d, 0xe8, 0x07, 0x44, 0x54, 0x0c, 0x4f, 0xc7, 0xa1, 0x07, 0xf4, 0xe1, 0xbf, 0xcb, 0xd9, 0x9d, 0xa2, 0x5b, 0x97, 0x46, 0x09, 0x5d, 0xdf, 0x01, 0x25, 0xd5, 0x6d, 0xa7, 0xe7, 0xf8, 0x60, 0x3f, 0x04, 0xd3, 0x59, 0xa0, 0x88, 0xb4, 0xc0, 0x44, 0xf9, 0x36, 0xcc, 0xb7, 0xd8, 0xf8, 0x9e, 0xd5, 0x3c, 0xc9, 0x91, 0xa3, 0x49, 0x7c, 0xa9, 0x52, 0x09, 0x4f, 0xf3, 0xc3, 0x30, 0x46, 0xf2, 0x60, 0x9d, 0x07, 0xb2, 0x9b, 0x63, 0x39, 0x81, 0x36, 0x9c, 0xb2, 0xf0, 0xee, 0xcd, };
22930 static const u8 ed25519_997_test_vectors_expected_sig[] = {
22931 	0x5a, 0xda, 0xa9, 0x43, 0x30, 0xa0, 0x35, 0x37, 0x12, 0xa3, 0x4d, 0xbe, 0x97, 0x3b, 0x75, 0x18, 0xf9, 0xa2, 0xc7, 0x13, 0xf8, 0xaa, 0xd1, 0x00, 0x25, 0x1b, 0x08, 0x6a, 0xe8, 0xde, 0x26, 0xf6, 0xd2, 0xb6, 0xcc, 0xf0, 0x52, 0x8c, 0xc5, 0xde, 0xdc, 0xa3, 0x18, 0xdf, 0x19, 0xcc, 0x7e, 0x45, 0xde, 0xae, 0x28, 0x1e, 0x13, 0x24, 0xb9, 0x6e, 0x32, 0xfe, 0xf4, 0x5a, 0xaf, 0x60, 0xb1, 0x0c, };
22932 static const ec_test_case ed25519_997_test_case = {
22933 	.name = "EDDSA25519-SHA512/wei25519 997",
22934 	.ec_str_p = &wei25519_str_params,
22935 	.priv_key = ed25519_997_test_vectors_priv_key,
22936 	.priv_key_len = sizeof(ed25519_997_test_vectors_priv_key),
22937 	.nn_random = NULL,
22938 	.hash_type = SHA512,
22939 	.msg = (const char *)ed25519_997_test_vectors_message,
22940 	.msglen = sizeof(ed25519_997_test_vectors_message),
22941 	.sig_type = EDDSA25519,
22942 	.exp_sig = ed25519_997_test_vectors_expected_sig,
22943 	.exp_siglen = sizeof(ed25519_997_test_vectors_expected_sig),
22944 	.adata = NULL,
22945 	.adata_len = 0
22946 };
22947 
22948 /************************************************/
22949 static const u8 ed25519_998_test_vectors_priv_key[] = {
22950 	0x2e, 0x19, 0xcd, 0x44, 0x2f, 0x22, 0xa4, 0xa9, 0x9d, 0xff, 0xc5, 0x5e, 0x7b, 0xf6, 0x25, 0xf8, 0x9d, 0x13, 0x44, 0xb5, 0x63, 0xf6, 0x78, 0x53, 0x13, 0xa7, 0xee, 0xe9, 0x73, 0xb4, 0xaa, 0x36, };
22951 static const u8 ed25519_998_test_vectors_message[] = {
22952 	0x1b, 0xfc, 0x5c, 0x6a, 0xa6, 0xa5, 0x35, 0x4f, 0xbb, 0x86, 0x14, 0x69, 0x79, 0x63, 0x48, 0xac, 0x63, 0x19, 0x12, 0x4d, 0xa3, 0xf1, 0x0d, 0x20, 0xd5, 0x0b, 0xbd, 0xc7, 0x15, 0x9d, 0x41, 0xb5, 0xab, 0xb1, 0x36, 0xc7, 0x99, 0x6a, 0x77, 0x37, 0x97, 0x12, 0x2b, 0x52, 0x5e, 0x8e, 0x2d, 0xca, 0x19, 0x54, 0xf6, 0x39, 0x17, 0x07, 0x30, 0x1d, 0x90, 0xf2, 0x10, 0x1b, 0x46, 0xc7, 0xb0, 0x86, 0xef, 0xa1, 0x58, 0x77, 0xca, 0xdc, 0xd0, 0x58, 0x12, 0xdb, 0x34, 0xb9, 0x96, 0xcb, 0x4f, 0x53, 0x1a, 0xbc, 0xd1, 0xe9, 0x8d, 0xb0, 0x8a, 0x5c, 0xf1, 0x36, 0x8e, 0x8f, 0x4b, 0x11, 0x09, 0x14, 0x2e, 0x95, 0x62, 0xbd, 0x00, 0x85, 0xff, 0xae, 0x5e, 0x66, 0x0f, 0x59, 0xc9, 0x30, 0x79, 0x3e, 0xbd, 0xb6, 0xe8, 0x0b, 0x0a, 0x2f, 0x4f, 0x3f, 0x59, 0xbf, 0x9d, 0x39, 0x5c, 0x48, 0xd2, 0x6e, 0x0a, 0x72, 0xa6, 0x0f, 0x9d, 0x1f, 0xf8, 0x7f, 0xd2, 0xd7, 0xa3, 0xf5, 0x38, 0x3a, 0xa9, 0x02, 0xad, 0xed, 0xed, 0xeb, 0xc6, 0xcd, 0x1b, 0xef, 0xd0, 0x38, 0x33, 0x61, 0x62, 0x74, 0x9d, 0x91, 0xa9, 0x57, 0xca, 0x2e, 0x3d, 0xd4, 0x70, 0x91, 0xc5, 0x59, 0x31, 0x13, 0xda, 0x87, 0xc3, 0xd6, 0x6a, 0x02, 0xc8, 0x0a, 0x6e, 0xdd, 0xb5, 0x35, 0xc4, 0x8c, 0xa1, 0xf3, 0x4a, 0x97, 0xfd, 0x1c, 0x95, 0xeb, 0xc2, 0xe5, 0x70, 0xfc, 0x8f, 0xaf, 0xe6, 0xe5, 0xd6, 0x54, 0x6d, 0x1f, 0x3a, 0x9b, 0xa8, 0xda, 0xac, 0x33, 0x4c, 0xf4, 0x7b, 0xf1, 0x17, 0xe1, 0x28, 0x0d, 0x0e, 0xbd, 0xf1, 0x4b, 0x0f, 0xcd, 0xbb, 0x43, 0xb8, 0xd2, 0x48, 0xcc, 0x6b, 0x61, 0x32, 0x0f, 0xdb, 0x04, 0x49, 0xed, 0x5f, 0x5d, 0xe8, 0xba, 0xb1, 0x21, 0xaf, 0x0d, 0x85, 0x54, 0x95, 0x6e, 0x6a, 0x12, 0x01, 0x6b, 0x42, 0x67, 0x7b, 0x44, 0x36, 0x78, 0x92, 0xc3, 0xb2, 0x0a, 0xfc, 0xc2, 0xcb, 0x9c, 0xfb, 0x5b, 0x10, 0x0a, 0x95, 0xb5, 0x1e, 0x8b, 0x07, 0xda, 0x9f, 0x51, 0x41, 0x5f, 0x4c, 0xd7, 0x78, 0x1a, 0x31, 0x37, 0x65, 0xe2, 0x0d, 0xb2, 0x7f, 0x23, 0x43, 0xe0, 0xf7, 0x19, 0xec, 0xea, 0x9a, 0xf0, 0x26, 0x95, 0x6f, 0x33, 0x87, 0xe9, 0xea, 0x7e, 0xd0, 0xa2, 0x93, 0x75, 0x9b, 0x4a, 0x26, 0x22, 0x02, 0x80, 0x7b, 0x41, 0x30, 0x9f, 0xb8, 0x0f, 0x50, 0x18, 0x5d, 0xb6, 0xa5, 0xf8, 0xbd, 0xca, 0x17, 0x88, 0x41, 0xbe, 0xc0, 0x6a, 0xdd, 0xc7, 0x61, 0x0d, 0xf7, 0x60, 0x17, 0xb5, 0x14, 0xbc, 0x41, 0x42, 0xf2, 0x6a, 0x36, 0xbf, 0x5b, 0xac, 0xec, 0xb0, 0x12, 0xfa, 0x41, 0x71, 0x0d, 0xd8, 0x49, 0xbe, 0xf7, 0xa7, 0xe4, 0x51, 0x43, 0x28, 0x36, 0xfe, 0x9b, 0x32, 0x65, 0xfd, 0x5b, 0x59, 0xee, 0x40, 0xb0, 0x4d, 0xad, 0x85, 0xcf, 0x48, 0xf8, 0x91, 0x46, 0x5a, 0x84, 0x2c, 0xd4, 0x50, 0x0a, 0x10, 0x24, 0xee, 0xfd, 0xf0, 0xf5, 0x54, 0xf0, 0xca, 0x17, 0xec, 0x9f, 0x7b, 0x71, 0x52, 0x56, 0xa9, 0xb9, 0xdb, 0xe2, 0x79, 0x66, 0x38, 0x6d, 0x8a, 0xc3, 0x7d, 0x3c, 0x51, 0x58, 0x96, 0xde, 0x0f, 0x7c, 0xdf, 0x7c, 0xf5, 0xb3, 0x20, 0xff, 0x7a, 0x8e, 0xf6, 0xb3, 0x4b, 0xa8, 0x20, 0xab, 0xa9, 0x06, 0x6d, 0xd2, 0x53, 0xc5, 0xb7, 0x76, 0x37, 0x77, 0xf9, 0x4b, 0x2d, 0x6a, 0xd8, 0xc7, 0x10, 0x22, 0x1e, 0x11, 0x37, 0x53, 0x5d, 0xff, 0x8a, 0x1b, 0x75, 0x65, 0xec, 0x81, 0xbd, 0x8d, 0xde, 0xb5, 0x02, 0xe3, 0xd5, 0x8f, 0xf8, 0xf1, 0xfe, 0x6e, 0x86, 0xb8, 0xdc, 0x15, 0xa3, 0xaa, 0xec, 0x68, 0x8b, 0xbb, 0xec, 0xd4, 0x68, 0x82, 0x81, 0xdb, 0x0f, 0x81, 0x8d, 0xe0, 0xf7, 0x26, 0x1b, 0xa9, 0xcc, 0x58, 0xc8, 0xbc, 0x0d, 0x02, 0xe0, 0x66, 0x32, 0xef, 0xe7, 0x28, 0x7a, 0xd7, 0xa8, 0x43, 0x31, 0xa8, 0x24, 0xd9, 0x28, 0x73, 0x44, 0xef, 0xaa, 0xa7, 0x4f, 0x1f, 0xc5, 0x76, 0xd0, 0x26, 0x94, 0x30, 0xf8, 0x56, 0xa8, 0x56, 0x52, 0x65, 0xb9, 0xd6, 0xef, 0x71, 0xfe, 0x13, 0x4d, 0x25, 0x10, 0xab, 0x06, 0xb6, 0x0b, 0xf3, 0xc1, 0x53, 0xb5, 0x7e, 0xcf, 0xd2, 0xe6, 0x34, 0x24, 0x03, 0xfe, 0x67, 0x8b, 0x58, 0x86, 0xb6, 0xb7, 0x34, 0xb7, 0xd3, 0x69, 0x06, 0x62, 0xb6, 0xc8, 0xc6, 0xf6, 0xe2, 0x50, 0xe5, 0xaf, 0x6a, 0x81, 0x83, 0x16, 0x6d, 0xdc, 0xd0, 0xa1, 0x7f, 0x0c, 0xdd, 0xc8, 0x63, 0x6e, 0xf1, 0xa6, 0x84, 0x98, 0xbe, 0x50, 0xb6, 0x59, 0x95, 0x39, 0xd4, 0x6b, 0x4c, 0xea, 0x97, 0x13, 0x0e, 0x08, 0xf9, 0x4c, 0xa5, 0x3e, 0x88, 0x46, 0x44, 0xed, 0xa7, 0x5d, 0x23, 0xcd, 0x2c, 0x03, 0x8a, 0x5f, 0x17, 0xb5, 0x91, 0xe2, 0x13, 0x69, 0x37, 0x8c, 0xd3, 0xfb, 0x57, 0x62, 0xd1, 0xa7, 0xc3, 0xe6, 0x6a, 0x11, 0xae, 0x6e, 0x91, 0xcb, 0xae, 0x61, 0x6a, 0xd0, 0x55, 0xe3, 0x9d, 0xc4, 0x1e, 0x15, 0x4f, 0x4f, 0xce, 0xd7, 0xb2, 0x69, 0x6d, 0x9d, 0xc6, 0x73, 0x80, 0xbb, 0x8e, 0xef, 0x47, 0x4e, 0x9a, 0xa8, 0x3c, 0xec, 0x47, 0xfa, 0xfa, 0xfb, 0x94, 0x1d, 0x62, 0x65, 0x64, 0xb2, 0x07, 0x5b, 0xcc, 0x08, 0x56, 0xda, 0x8d, 0x6e, 0x1b, 0x0b, 0x8f, 0x18, 0xba, 0xf7, 0x51, 0x3b, 0xbd, 0x14, 0xe4, 0x91, 0xed, 0x51, 0x79, 0x68, 0xc4, 0xf7, 0x24, 0x1a, 0xf2, 0x50, 0x98, 0xee, 0x8d, 0xf1, 0x30, 0xb7, 0xa3, 0x4d, 0x59, 0x73, 0x6d, 0x78, 0x36, 0xd3, 0x23, 0xfe, 0x3f, 0x43, 0xf5, 0x08, 0xcd, 0xcb, 0x75, 0x58, 0x95, 0xf5, 0x9a, 0x00, 0xc8, 0x04, 0xed, 0x16, 0x4c, 0xc3, 0x39, 0x92, 0xf3, 0xae, 0xe9, 0x62, 0xae, 0x9e, 0x99, 0x0b, 0x74, 0x27, 0x2e, 0xb9, 0x87, 0xb1, 0x2d, 0x90, 0xb2, 0x73, 0x14, 0xd5, 0x74, 0x00, 0xe7, 0x37, 0xd1, 0x34, 0x3e, 0x97, 0x09, 0x85, 0xc4, 0x27, 0x10, 0x60, 0x87, 0x6a, 0xbc, 0xd7, 0x04, 0x9e, 0x7c, 0x9f, 0xe2, 0x44, 0xff, 0x3e, 0xf9, 0x85, 0x60, 0x99, 0x5b, 0x74, 0x82, 0xd3, 0x1b, 0xc7, 0xc0, 0x9d, 0x99, 0x69, 0xf7, 0xcd, 0x41, 0xf4, 0xe4, 0xe2, 0x52, 0x75, 0x0d, 0xc1, 0x6c, 0xcd, 0xb2, 0x9b, 0x98, 0x53, 0x14, 0xa0, 0xb6, 0xe7, 0x49, 0xc9, 0x5f, 0x9b, 0xd2, 0x83, 0x8d, 0x5a, 0xc4, 0x9e, 0xe0, 0x31, 0xfd, 0x07, 0x9b, 0xec, 0x30, 0x28, 0xdd, 0x9d, 0xd0, 0x7d, 0xb6, 0xfa, 0x62, 0x2a, 0xd6, 0x21, 0xb3, 0xb1, 0xe1, 0x27, 0xe8, 0xfc, 0xa3, 0x7b, 0xd1, 0x46, 0xe3, 0xcf, 0x70, 0x3e, 0x91, 0x17, 0x01, 0xb7, 0xa1, 0x6c, 0x2d, 0x30, 0x36, 0x9c, 0x94, 0x64, 0x8e, 0xcc, 0x03, 0xdf, 0x10, 0xd7, 0xdd, 0x5c, 0x05, 0x58, 0xfa, 0x95, 0x93, 0x42, 0x5d, 0x94, 0x87, 0x27, 0xd6, 0x86, 0x0c, 0x3a, 0x14, 0xf8, 0x11, 0x24, 0x51, 0x06, 0x61, 0x6d, 0x2a, 0x5f, 0xa9, 0x81, 0xc6, 0xb7, 0xf4, 0x7e, 0xc9, 0xde, 0xf6, 0x54, 0x12, 0xd1, 0x32, 0xac, 0xc6, 0x91, 0x9d, 0xa4, 0xe8, 0x85, 0x97, 0xaa, 0x91, 0x90, 0xca, 0x61, 0x4b, 0x21, 0x80, 0x66, 0xa0, 0xf7, 0xb1, 0x69, 0x97, 0xee, 0x74, 0x7c, 0x5a, 0x09, 0x78, 0x5e, 0x50, 0xd0, 0xa8, 0x91, 0xd9, 0x59, 0x37, 0x86, 0x3d, 0x61, 0x3c, 0xef, 0xf7, };
22953 static const u8 ed25519_998_test_vectors_expected_sig[] = {
22954 	0x28, 0x32, 0x6b, 0x5b, 0x97, 0x8e, 0x0d, 0xbd, 0xab, 0x5d, 0xde, 0x70, 0x37, 0x85, 0xa6, 0x67, 0xa7, 0xef, 0x43, 0x9d, 0x81, 0xea, 0x47, 0xe0, 0x66, 0xb0, 0x89, 0xd1, 0x16, 0xc2, 0x5a, 0x34, 0xbb, 0x63, 0x3f, 0x26, 0x0d, 0x55, 0xf4, 0x5b, 0xdf, 0x6b, 0xcd, 0xa7, 0x48, 0x03, 0xd7, 0x62, 0x4b, 0x19, 0x27, 0xce, 0xc1, 0x8e, 0xb1, 0x99, 0x22, 0x60, 0xbe, 0xef, 0xc3, 0x99, 0xd9, 0x0e, };
22955 static const ec_test_case ed25519_998_test_case = {
22956 	.name = "EDDSA25519-SHA512/wei25519 998",
22957 	.ec_str_p = &wei25519_str_params,
22958 	.priv_key = ed25519_998_test_vectors_priv_key,
22959 	.priv_key_len = sizeof(ed25519_998_test_vectors_priv_key),
22960 	.nn_random = NULL,
22961 	.hash_type = SHA512,
22962 	.msg = (const char *)ed25519_998_test_vectors_message,
22963 	.msglen = sizeof(ed25519_998_test_vectors_message),
22964 	.sig_type = EDDSA25519,
22965 	.exp_sig = ed25519_998_test_vectors_expected_sig,
22966 	.exp_siglen = sizeof(ed25519_998_test_vectors_expected_sig),
22967 	.adata = NULL,
22968 	.adata_len = 0
22969 };
22970 
22971 /************************************************/
22972 static const u8 ed25519_999_test_vectors_priv_key[] = {
22973 	0x82, 0x10, 0x90, 0x99, 0xd1, 0xea, 0xfe, 0xed, 0x5a, 0x85, 0x20, 0x60, 0x46, 0x49, 0x1b, 0x34, 0xd0, 0x6d, 0xcd, 0xe3, 0x3f, 0x08, 0x09, 0x60, 0x28, 0x7b, 0x10, 0xfb, 0x23, 0xff, 0x9f, 0x78, };
22974 static const u8 ed25519_999_test_vectors_message[] = {
22975 	0x84, 0xf4, 0x7d, 0xd7, 0x94, 0x97, 0x7a, 0x6c, 0x15, 0x05, 0xac, 0x8c, 0x05, 0x68, 0x0c, 0x56, 0x15, 0xa2, 0xd5, 0xb0, 0x57, 0xe3, 0x9b, 0x04, 0xf8, 0x5e, 0x3f, 0x9f, 0xf0, 0x49, 0x60, 0xe0, 0xe0, 0x16, 0x68, 0x5a, 0x86, 0xee, 0xbc, 0xec, 0xf6, 0xfb, 0xce, 0x5f, 0xdd, 0xcd, 0xac, 0x1a, 0x47, 0x4c, 0x8a, 0x0d, 0x50, 0x2c, 0x40, 0xe1, 0x0f, 0x94, 0x86, 0x46, 0xfd, 0xac, 0x6c, 0x81, 0xf1, 0xff, 0xbb, 0x17, 0x7a, 0x2a, 0x49, 0x63, 0xb6, 0x78, 0x25, 0x90, 0x3c, 0xde, 0x65, 0xb5, 0xdb, 0xe0, 0xd8, 0x94, 0x1d, 0x54, 0x6c, 0xff, 0xa2, 0xbf, 0x8a, 0x8c, 0xa8, 0xd6, 0xc6, 0x40, 0x85, 0x30, 0xa6, 0x29, 0x0f, 0x5d, 0x08, 0x82, 0xf1, 0xa1, 0x67, 0x2d, 0xbf, 0x97, 0x8e, 0x10, 0xc5, 0xc8, 0xaf, 0x5e, 0x0a, 0x62, 0x39, 0xf0, 0x65, 0x5e, 0xe7, 0xfd, 0x9e, 0x66, 0x96, 0x30, 0x77, 0xa0, 0xe8, 0x47, 0x13, 0x73, 0x97, 0xd1, 0xf0, 0x69, 0x99, 0xdc, 0x6f, 0x8a, 0x94, 0x5c, 0x60, 0x03, 0xea, 0x4e, 0xa7, 0xfd, 0x58, 0x37, 0x8a, 0xcb, 0x44, 0xed, 0x57, 0x80, 0xea, 0xa3, 0x67, 0x79, 0x6b, 0xee, 0xa3, 0x7d, 0xdc, 0x23, 0x69, 0x99, 0xd0, 0x12, 0xd6, 0xa7, 0x16, 0xd7, 0x91, 0x56, 0x49, 0xcc, 0x28, 0xe5, 0x88, 0x75, 0x64, 0x7e, 0x9f, 0x5a, 0xc0, 0x55, 0x3c, 0x0f, 0x54, 0x4d, 0xf5, 0x64, 0x69, 0xc6, 0x70, 0x81, 0xd5, 0xe3, 0x03, 0x95, 0xf3, 0xe9, 0x60, 0xe6, 0xa5, 0x2f, 0x08, 0x33, 0x19, 0x2c, 0x54, 0x8c, 0xd5, 0x7c, 0x92, 0x6b, 0x82, 0xdb, 0x48, 0xc3, 0x61, 0xbd, 0xe7, 0x03, 0x33, 0xa3, 0x70, 0x08, 0x3e, 0xaa, 0xa0, 0x68, 0xdc, 0x2a, 0xe4, 0x52, 0xd2, 0x1e, 0xf1, 0x33, 0x1a, 0xed, 0x19, 0x0b, 0xd3, 0xe1, 0x28, 0x9a, 0x10, 0x4c, 0xf6, 0x67, 0x83, 0x43, 0x77, 0xcf, 0x7b, 0x5a, 0x29, 0x77, 0x48, 0x07, 0xc3, 0xf1, 0xea, 0x9e, 0x7b, 0x28, 0x83, 0x1d, 0x0f, 0x6c, 0x42, 0x94, 0x78, 0x58, 0x67, 0xb1, 0x37, 0xb6, 0x50, 0x28, 0xc1, 0x4f, 0x93, 0x2a, 0x1b, 0xa8, 0xe6, 0xf9, 0xf5, 0x96, 0x24, 0xfe, 0x0c, 0x39, 0x68, 0x43, 0xea, 0x19, 0xe4, 0x6f, 0xba, 0x09, 0x14, 0x2c, 0xf9, 0xd4, 0x24, 0x97, 0x31, 0x2f, 0x36, 0x02, 0x44, 0x03, 0x2f, 0x1e, 0x00, 0xf3, 0x8d, 0xd0, 0xde, 0x29, 0xf9, 0x63, 0xb5, 0xcc, 0xc1, 0xef, 0x12, 0xb2, 0xcc, 0x62, 0x04, 0xb9, 0x94, 0xaf, 0x1f, 0x3b, 0xaf, 0x19, 0x6d, 0x9e, 0x21, 0xe8, 0xfa, 0x4f, 0x09, 0x73, 0x20, 0xc6, 0x44, 0x04, 0xd0, 0xb7, 0xd5, 0xab, 0x38, 0x56, 0x0c, 0xa0, 0x65, 0x53, 0x64, 0xb0, 0xb0, 0x9c, 0xd6, 0xdc, 0x0f, 0x0e, 0x05, 0xb8, 0xc9, 0x11, 0x03, 0x64, 0xf1, 0x42, 0x4a, 0x96, 0x72, 0xb7, 0xef, 0xdf, 0x7e, 0x1f, 0x37, 0x8e, 0x23, 0x45, 0x50, 0x56, 0x6d, 0xbe, 0x13, 0xb0, 0x15, 0x78, 0xb0, 0x41, 0x53, 0xe9, 0xc3, 0x7b, 0x55, 0x3e, 0x32, 0xa4, 0x44, 0x1b, 0xc9, 0x7e, 0x29, 0x53, 0xbe, 0xc2, 0xe4, 0x14, 0x55, 0x51, 0x0f, 0x98, 0x02, 0xef, 0x94, 0x8d, 0xcb, 0xf1, 0x3f, 0xad, 0xdd, 0x72, 0x2e, 0xde, 0x57, 0x36, 0x27, 0xb2, 0x58, 0xd5, 0x5e, 0x83, 0xc0, 0x89, 0x5b, 0x22, 0x91, 0x9e, 0x4b, 0xe5, 0xce, 0x8d, 0x81, 0x9c, 0xe6, 0xad, 0x84, 0x3b, 0x2d, 0xd0, 0x9d, 0xf6, 0x40, 0x04, 0xc8, 0x26, 0xc1, 0xdd, 0xe7, 0xce, 0x64, 0x80, 0xa2, 0x71, 0xa8, 0x58, 0xa1, 0xdb, 0x16, 0x9e, 0x14, 0x94, 0xd4, 0x46, 0x90, 0x32, 0xbc, 0xc1, 0xcc, 0xd8, 0x96, 0x53, 0x19, 0x8b, 0x7c, 0x07, 0x3f, 0x76, 0xa2, 0x6a, 0x29, 0x99, 0xb5, 0x64, 0x8c, 0xba, 0xdc, 0x15, 0x74, 0xc7, 0x8e, 0xad, 0x8e, 0xec, 0xe8, 0x3b, 0x91, 0xe1, 0x29, 0xc4, 0x37, 0xf9, 0xee, 0xec, 0x04, 0xc8, 0x07, 0x45, 0x90, 0x02, 0xe6, 0x6d, 0xcc, 0xa9, 0xbf, 0xc2, 0xca, 0xed, 0x9e, 0x6c, 0x0b, 0xa2, 0x3d, 0x23, 0x55, 0xde, 0xf7, 0x56, 0x65, 0x74, 0x94, 0x30, 0xee, 0x92, 0xc5, 0x32, 0xa6, 0x95, 0x47, 0x9f, 0xec, 0x92, 0x91, 0x74, 0xf4, 0x40, 0xec, 0xb6, 0x1a, 0x5a, 0xe8, 0xb2, 0xb7, 0xe9, 0x58, 0x92, 0x05, 0x58, 0x26, 0x89, 0x78, 0xf7, 0xfb, 0x4d, 0xa1, 0xb3, 0x8b, 0x12, 0x01, 0x4f, 0x5d, 0x61, 0xb0, 0xfd, 0xd7, 0xf6, 0x13, 0x6b, 0xa4, 0x28, 0x1b, 0x41, 0xa3, 0xa3, 0xcd, 0x18, 0x80, 0x52, 0xb6, 0x98, 0x76, 0x5b, 0x6f, 0x05, 0xe4, 0x1e, 0x78, 0x37, 0x3e, 0xa8, 0x30, 0x46, 0x97, 0x87, 0xa3, 0x75, 0x10, 0x99, 0x3d, 0x12, 0xf9, 0x3e, 0x96, 0xc7, 0x2d, 0x72, 0xf4, 0x46, 0x19, 0x84, 0xf6, 0x91, 0xa4, 0x1c, 0x7d, 0x33, 0x97, 0xdd, 0xd5, 0xa1, 0xb3, 0x92, 0x37, 0xd1, 0x30, 0x88, 0x64, 0xd4, 0x15, 0xfc, 0x6c, 0x22, 0xb6, 0x3f, 0x37, 0x6c, 0xed, 0xde, 0x37, 0xf5, 0x25, 0x2b, 0x51, 0xec, 0x72, 0xe5, 0x15, 0x5f, 0x3b, 0xdb, 0x4f, 0xcd, 0x54, 0x12, 0x49, 0x8b, 0xd2, 0xe0, 0xc1, 0xf9, 0x85, 0x0b, 0x3a, 0x85, 0xd1, 0xdf, 0xd2, 0x51, 0x67, 0xa3, 0xcd, 0x77, 0x1e, 0x8e, 0x4c, 0x9d, 0x86, 0x8c, 0x95, 0xa7, 0x17, 0x5e, 0x37, 0x75, 0xf6, 0xce, 0xf1, 0x7e, 0x4e, 0x36, 0x49, 0x7c, 0xe9, 0xe4, 0x55, 0x32, 0xbd, 0x7f, 0x44, 0xb2, 0x77, 0x6e, 0x40, 0xf9, 0x1a, 0x07, 0xca, 0x4f, 0xa1, 0xb9, 0x5d, 0xbe, 0x81, 0xcf, 0x8f, 0x49, 0xe4, 0x6b, 0x6c, 0x82, 0xa6, 0xee, 0x43, 0x47, 0x91, 0x8a, 0x76, 0x43, 0xb0, 0xd9, 0xa3, 0x88, 0x57, 0x21, 0x2c, 0x69, 0x3e, 0xad, 0xac, 0xfd, 0x37, 0xa5, 0xf1, 0xd9, 0x15, 0x58, 0xf5, 0x45, 0x4d, 0xcd, 0xd0, 0x59, 0x35, 0xf2, 0x90, 0xe6, 0x2d, 0x7e, 0x65, 0x00, 0x6c, 0xd5, 0x49, 0xf6, 0x55, 0x3c, 0xe7, 0x41, 0xdf, 0x44, 0xd3, 0x96, 0x44, 0x00, 0x1e, 0xb4, 0x79, 0xca, 0x69, 0x56, 0x8a, 0xd1, 0xf2, 0x3b, 0xba, 0x09, 0x9a, 0x41, 0xa4, 0x72, 0x94, 0xdb, 0x93, 0x87, 0x31, 0xc5, 0x30, 0xaf, 0x1c, 0xeb, 0x92, 0x17, 0xd2, 0x9b, 0xc2, 0x70, 0x56, 0x13, 0xc1, 0xa1, 0xfe, 0x9c, 0x20, 0x8d, 0x0b, 0x01, 0xba, 0x6f, 0x4d, 0x9b, 0x4c, 0x7b, 0xa8, 0xf0, 0x21, 0xdf, 0x91, 0xea, 0x2d, 0x57, 0x8c, 0xe0, 0x83, 0x12, 0x3e, 0x83, 0xba, 0x4b, 0x9c, 0x50, 0x40, 0x7f, 0x66, 0x66, 0xfb, 0xe6, 0x11, 0x58, 0xb0, 0xd1, 0xb9, 0x57, 0x77, 0x72, 0xe3, 0xea, 0xff, 0x8f, 0xb4, 0x29, 0xd0, 0xf6, 0xd2, 0xe3, 0x84, 0x12, 0x61, 0x30, 0xf2, 0x1b, 0x44, 0x9f, 0xb1, 0xdc, 0x17, 0x0d, 0xb4, 0x5a, 0xf5, 0x05, 0xbd, 0x31, 0x82, 0x67, 0x8a, 0x9b, 0x5f, 0x9f, 0xdf, 0xf6, 0x5f, 0x04, 0x13, 0xb6, 0x72, 0xc4, 0x78, 0x63, 0x40, 0xfc, 0xf2, 0x52, 0x2e, 0xa7, 0xf3, 0xd8, 0xad, 0xe8, 0xa0, 0x59, 0x52, 0x96, 0x49, 0xdb, 0xda, 0x9c, 0xe5, 0x1f, 0xf0, 0x5a, 0x2a, 0x2a, 0x3d, 0x66, 0xd2, 0x16, 0x6b, 0xf2, 0xc9, 0xc6, 0x77, 0x2b, 0xa0, 0xef, 0x41, 0x05, 0xe6, 0x8c, 0x05, 0x5e, 0x02, 0x13, 0xd4, 0x2c, 0x1e, 0xe1, 0x23, 0xb3, 0xc1, 0x21, 0x78, 0x43, 0xe6, 0xec, 0x57, 0x5d, 0x75, 0x4d, 0xf3, 0xc9, 0x0a, 0x75, };
22976 static const u8 ed25519_999_test_vectors_expected_sig[] = {
22977 	0xb3, 0x98, 0x7f, 0x32, 0x4b, 0xc7, 0xe7, 0x76, 0xc0, 0xf2, 0x87, 0xfa, 0x13, 0xad, 0x28, 0x74, 0x16, 0x95, 0xe2, 0xe7, 0xbc, 0xe8, 0xd1, 0x43, 0xe2, 0x9f, 0xad, 0x5d, 0x00, 0x99, 0x47, 0x58, 0xe2, 0x25, 0xfb, 0x80, 0x21, 0x00, 0xd2, 0x3f, 0xd6, 0xcc, 0xaf, 0xee, 0x8e, 0x0a, 0x95, 0xbc, 0x47, 0x9b, 0xe8, 0xc2, 0x3a, 0x11, 0x31, 0x97, 0x45, 0x76, 0x5b, 0x7c, 0xd4, 0x7e, 0x70, 0x06, };
22978 static const ec_test_case ed25519_999_test_case = {
22979 	.name = "EDDSA25519-SHA512/wei25519 999",
22980 	.ec_str_p = &wei25519_str_params,
22981 	.priv_key = ed25519_999_test_vectors_priv_key,
22982 	.priv_key_len = sizeof(ed25519_999_test_vectors_priv_key),
22983 	.nn_random = NULL,
22984 	.hash_type = SHA512,
22985 	.msg = (const char *)ed25519_999_test_vectors_message,
22986 	.msglen = sizeof(ed25519_999_test_vectors_message),
22987 	.sig_type = EDDSA25519,
22988 	.exp_sig = ed25519_999_test_vectors_expected_sig,
22989 	.exp_siglen = sizeof(ed25519_999_test_vectors_expected_sig),
22990 	.adata = NULL,
22991 	.adata_len = 0
22992 };
22993 
22994 /************************************************/
22995 static const u8 ed25519_1000_test_vectors_priv_key[] = {
22996 	0x65, 0xfc, 0xbd, 0x62, 0x6d, 0x00, 0x21, 0x11, 0x33, 0x4b, 0xaa, 0xd4, 0xe6, 0xa8, 0x00, 0x6e, 0x47, 0xa1, 0xf9, 0x13, 0x97, 0xbe, 0xe6, 0xdd, 0x6c, 0xd7, 0xda, 0x5a, 0x0e, 0x02, 0x48, 0xa4, };
22997 static const u8 ed25519_1000_test_vectors_message[] = {
22998 	0xe4, 0xc0, 0x94, 0x7f, 0xc8, 0xca, 0x78, 0xfa, 0x88, 0x63, 0xf4, 0xd0, 0x44, 0x49, 0x9d, 0x03, 0x6e, 0x2e, 0x7e, 0xf8, 0xc1, 0x7e, 0x83, 0x8f, 0x2f, 0xac, 0x02, 0x67, 0x5b, 0x7b, 0x53, 0x81, 0xe5, 0xf9, 0xab, 0xce, 0xaf, 0xd0, 0xd8, 0x88, 0x6a, 0x92, 0x9d, 0x9d, 0x9b, 0x49, 0xfc, 0xb7, 0x38, 0x61, 0xb2, 0x9d, 0x15, 0x18, 0xac, 0x5f, 0x83, 0xf7, 0xf8, 0xfc, 0x26, 0xbd, 0x1c, 0xeb, 0xc2, 0x2d, 0x87, 0x3a, 0x9a, 0x08, 0x23, 0x14, 0x06, 0xfb, 0x03, 0x2e, 0x48, 0x66, 0xe5, 0xf5, 0x5c, 0x7c, 0x04, 0x41, 0xc5, 0x19, 0x04, 0x1b, 0xb2, 0xcc, 0x73, 0xf9, 0x22, 0x6d, 0xd5, 0xd0, 0x7e, 0xce, 0xb6, 0x60, 0xd6, 0xc9, 0x67, 0xdb, 0x23, 0x36, 0x55, 0x74, 0xbe, 0xe8, 0xfc, 0x10, 0x22, 0x29, 0x28, 0x76, 0x77, 0x13, 0x57, 0x1a, 0x71, 0xc9, 0x3a, 0x85, 0x27, 0x8d, 0x42, 0x29, 0x9a, 0x70, 0x59, 0x9c, 0xa9, 0x93, 0x26, 0xcc, 0x86, 0xf6, 0xd9, 0x8d, 0xaa, 0xc0, 0x00, 0xfd, 0xfa, 0x71, 0x05, 0x62, 0xf4, 0x81, 0xfa, 0xa0, 0x20, 0xc7, 0x2a, 0x76, 0xe2, 0x06, 0x7d, 0x15, 0x4c, 0x23, 0x5a, 0x7a, 0x4f, 0x29, 0x70, 0x8c, 0xc5, 0x44, 0x53, 0x3b, 0xd7, 0x99, 0xed, 0x63, 0x63, 0xeb, 0x3b, 0x56, 0xaa, 0x4a, 0x6d, 0x0e, 0x37, 0x9b, 0xbf, 0x07, 0x60, 0x05, 0x95, 0xc2, 0x3a, 0xb1, 0xf3, 0xf9, 0xf1, 0x70, 0x8e, 0x00, 0x70, 0x26, 0x1b, 0xbb, 0xf4, 0xbf, 0xea, 0xf6, 0xd6, 0xce, 0xd4, 0xd7, 0xff, 0x72, 0x2c, 0x9c, 0xc5, 0x2d, 0x91, 0x33, 0xea, 0x68, 0xd4, 0x95, 0xdc, 0x94, 0x89, 0xc3, 0xed, 0xf6, 0x83, 0x02, 0x31, 0x35, 0x1f, 0x65, 0xcb, 0x52, 0x72, 0xf5, 0x39, 0x6e, 0x2c, 0x4a, 0x1a, 0x5c, 0x88, 0x66, 0x1a, 0x10, 0x18, 0x92, 0x24, 0x9e, 0x23, 0xd6, 0xce, 0x9f, 0xdb, 0x6a, 0x9a, 0xbf, 0x74, 0x27, 0x2c, 0x2f, 0x59, 0xc3, 0xd8, 0xfd, 0x87, 0x43, 0xcc, 0xe4, 0x61, 0x12, 0x6c, 0xa0, 0xa8, 0xb8, 0x32, 0xb4, 0xb2, 0x18, 0x33, 0x6b, 0x1a, 0xe1, 0x4d, 0xa6, 0x77, 0xba, 0x7f, 0x1b, 0x2c, 0xc5, 0xca, 0x3c, 0x71, 0x58, 0xf7, 0x27, 0xa9, 0xe1, 0xb8, 0xfd, 0xd9, 0xed, 0xf5, 0xc2, 0x18, 0x7f, 0xcb, 0x83, 0xdb, 0x86, 0x2a, 0xd0, 0xc6, 0xb3, 0x92, 0x16, 0xde, 0x31, 0x16, 0x91, 0x95, 0x56, 0x46, 0x51, 0x00, 0xad, 0xe0, 0xa4, 0x2b, 0xd6, 0xba, 0x10, 0xd9, 0x54, 0x18, 0xb6, 0x9a, 0x3e, 0x00, 0x5e, 0x9f, 0x10, 0x45, 0x89, 0xea, 0x59, 0x48, 0xb2, 0xb5, 0x1b, 0xc7, 0xb1, 0xa9, 0xa0, 0x74, 0x9d, 0xa8, 0xf0, 0x13, 0x78, 0x1b, 0xc0, 0x5c, 0x80, 0x5b, 0xb5, 0x1e, 0x18, 0x77, 0x61, 0xac, 0x24, 0xc7, 0x64, 0x14, 0xf6, 0x68, 0xeb, 0x45, 0xfb, 0x0a, 0x50, 0x24, 0xdf, 0xe5, 0xa5, 0xca, 0x06, 0xf0, 0x40, 0x3a, 0x02, 0xe3, 0xb2, 0xfe, 0xf7, 0xa2, 0xc4, 0xbc, 0xfb, 0x1d, 0x07, 0x5d, 0x31, 0x0d, 0x51, 0x97, 0xe6, 0x59, 0xcd, 0x14, 0x02, 0x3f, 0xae, 0xc2, 0x0e, 0x04, 0x5c, 0xab, 0xcb, 0x86, 0xb2, 0x21, 0xa1, 0xd4, 0x82, 0x71, 0x13, 0xff, 0x32, 0x67, 0xa6, 0x4d, 0xeb, 0xe9, 0x93, 0x90, 0x04, 0xca, 0xba, 0xc8, 0x5e, 0x5c, 0x74, 0x61, 0xe7, 0xe8, 0x2a, 0x97, 0x5a, 0xcf, 0xae, 0x0b, 0x6c, 0x51, 0x6a, 0x1c, 0x60, 0x53, 0x74, 0xcf, 0xea, 0x7d, 0x81, 0x90, 0x44, 0xef, 0xd6, 0xd7, 0x46, 0x54, 0x42, 0x4f, 0xd5, 0xc9, 0x0f, 0xf2, 0x57, 0x4f, 0xcd, 0x8e, 0x00, 0x77, 0x40, 0xd9, 0x75, 0x86, 0x1d, 0x0d, 0xf5, 0x25, 0x9f, 0xe4, 0x3e, 0x43, 0x63, 0x9e, 0x36, 0xe5, 0x28, 0x95, 0x43, 0x9b, 0xa2, 0xc2, 0x7c, 0x1e, 0x88, 0x9c, 0x93, 0x09, 0x41, 0x04, 0xfe, 0x91, 0x49, 0x21, 0xbd, 0x6f, 0x25, 0xd3, 0x98, 0x5a, 0xb1, 0xf2, 0x2c, 0xa5, 0x57, 0xb0, 0xe4, 0x9a, 0xfc, 0x73, 0x75, 0x24, 0x3c, 0x52, 0x1c, 0x6d, 0x5f, 0xaf, 0xe0, 0x38, 0x1c, 0xce, 0xa8, 0x28, 0xe8, 0x8e, 0x64, 0x7f, 0xd9, 0x09, 0x76, 0xb3, 0xfb, 0xec, 0x19, 0xfe, 0x9a, 0xdb, 0x11, 0x3c, 0x64, 0x04, 0xbd, 0x35, 0x2b, 0xfc, 0x00, 0x04, 0x46, 0xd2, 0x10, 0x05, 0xb5, 0xf9, 0x50, 0xae, 0x07, 0xe5, 0x1c, 0x76, 0x8c, 0xa3, 0xff, 0x61, 0x77, 0xb2, 0xea, 0xc5, 0x0f, 0x10, 0xdd, 0x2e, 0x64, 0x61, 0x0f, 0xa8, 0xab, 0x57, 0x88, 0xfa, 0xee, 0xe2, 0x9d, 0x12, 0x90, 0x09, 0xd7, 0xfe, 0x46, 0xaa, 0x3d, 0xa6, 0xb9, 0xd8, 0x6c, 0x73, 0x06, 0x5e, 0xb5, 0x16, 0x1f, 0xbd, 0xbd, 0xfa, 0xc5, 0x77, 0x7c, 0x4e, 0x75, 0x45, 0x2e, 0x6e, 0x16, 0xae, 0x9f, 0xd6, 0x6b, 0xb7, 0xd9, 0xaa, 0xa4, 0x26, 0xbc, 0xb7, 0xa6, 0x91, 0x5f, 0x0f, 0xf4, 0x4a, 0x1f, 0x8e, 0xc7, 0x13, 0x94, 0xe9, 0x35, 0x2f, 0xdf, 0x20, 0xe0, 0x2f, 0xaf, 0xe1, 0xe0, 0xce, 0xfe, 0x50, 0x74, 0x4c, 0x31, 0x94, 0x95, 0x6f, 0x92, 0x8f, 0x82, 0x53, 0x37, 0x55, 0x37, 0x38, 0x38, 0xdc, 0xc1, 0x29, 0x6a, 0x89, 0x1a, 0xdf, 0x64, 0x1c, 0x73, 0x82, 0xd6, 0x9b, 0x4f, 0x5a, 0x43, 0xd4, 0xaf, 0x77, 0x72, 0xa4, 0xa1, 0xee, 0x87, 0x92, 0x92, 0xd7, 0xa4, 0xf3, 0x2a, 0xc3, 0x5e, 0xe1, 0x21, 0xc6, 0xc3, 0x4c, 0xa5, 0xf9, 0x84, 0x87, 0xa9, 0x41, 0xfc, 0xb1, 0xe6, 0x5b, 0x44, 0xd4, 0x45, 0x61, 0x27, 0xee, 0xdb, 0x2f, 0xcc, 0x1c, 0x3f, 0x48, 0xef, 0xf9, 0x30, 0x09, 0x81, 0xe5, 0x2a, 0xc3, 0x8b, 0x49, 0x6a, 0xb8, 0xbb, 0xce, 0x14, 0x4a, 0x85, 0xeb, 0x9c, 0x07, 0x63, 0x8b, 0x31, 0xfd, 0xaa, 0x78, 0x17, 0x44, 0xbc, 0xe1, 0x7e, 0x8d, 0x93, 0xdc, 0xdc, 0x60, 0xaf, 0xed, 0xa4, 0x88, 0x80, 0x76, 0x17, 0xf8, 0x8d, 0x6a, 0xa5, 0x44, 0x22, 0xfd, 0x34, 0x7d, 0xda, 0xdd, 0xef, 0xf3, 0x7a, 0x56, 0x3d, 0xbf, 0x19, 0x97, 0x4b, 0x2a, 0x23, 0xbe, 0x30, 0x0f, 0xbf, 0xa6, 0xc7, 0xfc, 0x41, 0xf8, 0x4c, 0x69, 0x05, 0x41, 0x52, 0x69, 0xf1, 0x95, 0x99, 0x0b, 0x5b, 0x4d, 0xe1, 0x26, 0x68, 0xc7, 0x1c, 0x87, 0xb5, 0x04, 0xf4, 0x11, 0x24, 0xbf, 0x94, 0x43, 0x6f, 0x33, 0x30, 0x45, 0x63, 0x15, 0x18, 0x15, 0x2c, 0x51, 0x62, 0xa2, 0x47, 0x5c, 0x40, 0xef, 0xb6, 0xcb, 0xda, 0xaf, 0x9a, 0xf4, 0x28, 0xfe, 0xd3, 0x25, 0xb3, 0xa7, 0xd9, 0x4c, 0x17, 0x52, 0x0f, 0xd8, 0x9e, 0x00, 0xdd, 0xf0, 0x8b, 0x22, 0xad, 0xf6, 0x61, 0xf0, 0xac, 0xd7, 0x23, 0xb3, 0x96, 0x9d, 0xc6, 0x43, 0x4e, 0xa6, 0xf9, 0x2e, 0xf5, 0x8e, 0x8d, 0xfa, 0xe5, 0xb0, 0xcc, 0x28, 0x85, 0xba, 0x98, 0x7e, 0xa1, 0xd1, 0x6c, 0x39, 0xb3, 0x4e, 0xf6, 0x50, 0x23, 0x00, 0x9d, 0x63, 0x45, 0xe4, 0x8e, 0x36, 0x91, 0xa4, 0x1f, 0x02, 0xa7, 0x7b, 0x7f, 0xe1, 0x33, 0xea, 0x9d, 0xe7, 0x56, 0x5f, 0x15, 0x7a, 0x20, 0x78, 0xae, 0x98, 0x8b, 0xbb, 0x26, 0x6d, 0x22, 0xd5, 0xfa, 0x91, 0xa7, 0xb2, 0x63, 0xe9, 0x8a, 0xd2, 0xdc, 0x07, 0x31, 0xfe, 0x5a, 0x29, 0x02, 0x5a, 0x0c, 0xb4, 0x36, 0x86, 0x4a, 0x5a, 0x60, 0xdb, 0x25, 0x7f, 0x1e, 0x76, 0xb5, 0xc6, 0x08, 0xf2, 0x5c, 0xde, 0xcc, 0x87, 0xea, 0xe6, };
22999 static const u8 ed25519_1000_test_vectors_expected_sig[] = {
23000 	0xbc, 0x78, 0xe1, 0x6b, 0xa6, 0x74, 0xe0, 0xa7, 0xdb, 0xa5, 0x7a, 0x19, 0x09, 0x4f, 0x97, 0x33, 0xc5, 0x5d, 0x74, 0xb9, 0xd1, 0x5f, 0x8a, 0x44, 0xd1, 0xbb, 0xc0, 0xa0, 0x23, 0xf7, 0x01, 0x55, 0xde, 0x29, 0x77, 0x11, 0x1a, 0x41, 0x7e, 0xef, 0xa8, 0xcb, 0x30, 0xec, 0x12, 0xab, 0xc8, 0x38, 0x42, 0x28, 0x16, 0x7c, 0x70, 0x98, 0x2a, 0x82, 0x06, 0xb1, 0xff, 0xb7, 0x21, 0x74, 0xaf, 0x01, };
23001 static const ec_test_case ed25519_1000_test_case = {
23002 	.name = "EDDSA25519-SHA512/wei25519 1000",
23003 	.ec_str_p = &wei25519_str_params,
23004 	.priv_key = ed25519_1000_test_vectors_priv_key,
23005 	.priv_key_len = sizeof(ed25519_1000_test_vectors_priv_key),
23006 	.nn_random = NULL,
23007 	.hash_type = SHA512,
23008 	.msg = (const char *)ed25519_1000_test_vectors_message,
23009 	.msglen = sizeof(ed25519_1000_test_vectors_message),
23010 	.sig_type = EDDSA25519,
23011 	.exp_sig = ed25519_1000_test_vectors_expected_sig,
23012 	.exp_siglen = sizeof(ed25519_1000_test_vectors_expected_sig),
23013 	.adata = NULL,
23014 	.adata_len = 0
23015 };
23016 
23017 /************************************************/
23018 static const u8 ed25519_1001_test_vectors_priv_key[] = {
23019 	0xb5, 0x00, 0x76, 0x8a, 0x28, 0x23, 0x91, 0x5c, 0x4a, 0x68, 0x48, 0xd3, 0x5f, 0x64, 0x87, 0xd4, 0x3b, 0xd7, 0x66, 0xd2, 0xce, 0x09, 0x45, 0xf8, 0xa3, 0xcc, 0xdb, 0x8d, 0x82, 0xa3, 0x89, 0x2b, };
23020 static const u8 ed25519_1001_test_vectors_message[] = {
23021 	0x0a, 0x9f, 0xda, 0x8b, 0x8c, 0xfc, 0xa7, 0xa5, 0xb0, 0x5d, 0x78, 0x11, 0x6f, 0xce, 0xe1, 0x9a, 0xb8, 0x03, 0xc1, 0xc6, 0x01, 0x0c, 0xe1, 0x1d, 0xaa, 0x8e, 0x93, 0xa6, 0x6d, 0x12, 0xc1, 0x2e, 0x47, 0x4e, 0xb9, 0x1c, 0x26, 0x40, 0xd9, 0x7a, 0x81, 0x3d, 0x9a, 0x83, 0x0d, 0x26, 0x88, 0x68, 0xeb, 0x2e, 0x37, 0x70, 0x42, 0x5f, 0x10, 0xc7, 0x58, 0x40, 0x46, 0x8e, 0x66, 0x9d, 0xc7, 0xf6, 0x1d, 0x3b, 0xe2, 0xde, 0x88, 0xae, 0x0e, 0x54, 0x2b, 0xc8, 0x09, 0x67, 0x91, 0x13, 0x95, 0x7a, 0x14, 0xda, 0x4e, 0xaf, 0xf5, 0x49, 0xbf, 0xde, 0x63, 0x7d, 0x7c, 0xaf, 0xdc, 0x6a, 0xa8, 0x39, 0x94, 0x83, 0x73, 0x97, 0xf8, 0x6e, 0x4f, 0xde, 0x86, 0xd4, 0x02, 0xfa, 0x9a, 0xef, 0x7f, 0x65, 0x54, 0x9a, 0x21, 0x43, 0x73, 0xe5, 0x60, 0xe6, 0xd7, 0xa1, 0xc2, 0x76, 0x9e, 0x0c, 0x7d, 0x5a, 0x01, 0x71, 0xe7, 0xcc, 0x00, 0xdf, 0xf3, 0x6e, 0x04, 0x29, 0x79, 0x8b, 0x53, 0xaa, 0x62, 0x16, 0x24, 0xbd, 0xa7, 0x4d, 0x6d, 0xf0, 0xbf, 0xff, 0xfb, 0xd8, 0xfd, 0x7b, 0xef, 0x1a, 0x64, 0xf3, 0x6c, 0x00, 0x07, 0x82, 0xf6, 0xed, 0x03, 0x1a, 0xf5, 0xc2, 0xa7, 0x4a, 0x18, 0x96, 0x35, 0x98, 0xc9, 0xba, 0x06, 0x23, 0x92, 0xde, 0x96, 0x02, 0x03, 0x67, 0x94, 0xb7, 0xb5, 0xe6, 0x8c, 0x25, 0xc9, 0x3f, 0xe7, 0xcf, 0xad, 0x47, 0xa7, 0xc5, 0xb9, 0x79, 0xd4, 0x76, 0xcd, 0x51, 0x3a, 0x12, 0xbf, 0x03, 0x07, 0xcb, 0x16, 0x31, 0x74, 0x00, 0x42, 0xa9, 0xfb, 0xf3, 0xeb, 0x0b, 0xe5, 0x17, 0x06, 0x20, 0xda, 0xfd, 0x5f, 0x16, 0xed, 0x89, 0x34, 0x2c, 0x26, 0x25, 0xd7, 0x83, 0xe7, 0x4e, 0xe0, 0xd7, 0x84, 0xbf, 0x05, 0x19, 0x43, 0x74, 0x0c, 0x88, 0xb0, 0xbe, 0xf7, 0xbc, 0x85, 0xe1, 0xa6, 0xa4, 0xa5, 0x17, 0xd4, 0x92, 0xfb, 0x73, 0x7e, 0x77, 0x66, 0x99, 0x59, 0x0c, 0x93, 0x22, 0x4c, 0xd4, 0xd9, 0x24, 0x5d, 0x4e, 0x93, 0x71, 0xa3, 0x67, 0xc0, 0x71, 0x2f, 0x87, 0x49, 0x0f, 0x92, 0x47, 0xc4, 0x9a, 0xdd, 0x93, 0x13, 0xf2, 0x77, 0xa4, 0xd9, 0xf2, 0x6b, 0x75, 0xaa, 0xe4, 0xde, 0xd6, 0xa3, 0xde, 0xf8, 0x5f, 0x83, 0xfc, 0x99, 0x59, 0x10, 0x40, 0x55, 0x48, 0xaf, 0x67, 0x0e, 0xd8, 0xaa, 0xa3, 0x05, 0x24, 0xab, 0x82, 0x9c, 0xcb, 0x56, 0xa5, 0x00, 0x5b, 0x58, 0xbc, 0xe8, 0x68, 0xc9, 0xe8, 0x07, 0x4f, 0x07, 0xdd, 0x7f, 0x38, 0x18, 0xf2, 0x99, 0xe4, 0xe0, 0x86, 0xbe, 0xd9, 0xea, 0xb9, 0x02, 0xcf, 0x11, 0xb3, 0x98, 0xd5, 0x31, 0xb8, 0x63, 0x2e, 0x7d, 0x52, 0x3a, 0x8f, 0x87, 0x76, 0x95, 0xf4, 0x6c, 0xcf, 0x9c, 0xe2, 0x4e, 0x62, 0xca, 0xb2, 0xc7, 0xcd, 0x0a, 0xae, 0xe1, 0x7d, 0xb5, 0x26, 0x76, 0xa4, 0xb5, 0x05, 0x8e, 0x9c, 0x1d, 0x7c, 0x47, 0xbf, 0xfc, 0xb6, 0x41, 0xb0, 0xea, 0x2b, 0x09, 0x44, 0xf3, 0x9a, 0x75, 0x66, 0x5a, 0x7e, 0xf2, 0x9b, 0x7f, 0x02, 0xa8, 0x78, 0xdb, 0x82, 0x38, 0x83, 0xbd, 0xac, 0xfb, 0x0f, 0xbe, 0x5d, 0xfe, 0x5a, 0x9b, 0xed, 0x9f, 0xda, 0xc7, 0xe4, 0x14, 0x2e, 0x3e, 0xb5, 0x0d, 0x5e, 0x84, 0x0b, 0xd0, 0xac, 0x0b, 0xec, 0xf4, 0xfa, 0x97, 0xe1, 0xfc, 0x48, 0x27, 0xc3, 0x97, 0xa5, 0x24, 0x65, 0xd9, 0x16, 0x88, 0x99, 0x54, 0xb3, 0x70, 0x1b, 0x0f, 0xac, 0x61, 0x15, 0x9b, 0x23, 0x09, 0x2f, 0x46, 0x85, 0xf4, 0x78, 0x8b, 0xad, 0x35, 0xd0, 0x0d, 0xa2, 0x67, 0x9e, 0xcc, 0x54, 0x92, 0x1f, 0x1a, 0x86, 0x47, 0x10, 0x16, 0x57, 0xab, 0x49, 0x47, 0x74, 0x20, 0x56, 0x7a, 0xed, 0x67, 0xc8, 0x60, 0x59, 0x30, 0x44, 0x4b, 0x5d, 0x07, 0x92, 0x7c, 0x17, 0xef, 0xf1, 0xf8, 0x57, 0x0c, 0xf2, 0xaf, 0x29, 0xe7, 0x19, 0xf8, 0x5c, 0xa7, 0x84, 0x9b, 0x89, 0x55, 0x49, 0xf1, 0x3d, 0xfe, 0xca, 0x68, 0xbb, 0xef, 0x71, 0xe3, 0xce, 0x8b, 0x6c, 0xed, 0xd2, 0xff, 0x68, 0xd3, 0x2b, 0x02, 0xca, 0xf5, 0x95, 0x1a, 0x0b, 0x3e, 0x6b, 0x0b, 0xae, 0x6a, 0x96, 0xc0, 0x20, 0x58, 0x19, 0x1f, 0x30, 0x5e, 0x09, 0x07, 0x11, 0xc4, 0x6d, 0xad, 0xdc, 0xd5, 0xae, 0xee, 0x76, 0x9c, 0x3a, 0x10, 0x5e, 0x9a, 0x82, 0x7b, 0xbd, 0x19, 0x5d, 0x32, 0x92, 0x31, 0xc2, 0x62, 0x38, 0x47, 0x9a, 0x9b, 0xb0, 0x07, 0x1a, 0xfb, 0x16, 0x0e, 0xf9, 0x55, 0xe8, 0x74, 0xd7, 0xa4, 0x20, 0xc5, 0x67, 0x85, 0xf4, 0x4a, 0xe0, 0xa1, 0x8c, 0x52, 0xd8, 0x28, 0x0c, 0x59, 0x98, 0xcf, 0x38, 0x88, 0xfe, 0xaf, 0x89, 0x89, 0x81, 0x34, 0xbc, 0x8d, 0x41, 0x1f, 0xc9, 0xf6, 0xc5, 0x76, 0x8e, 0xa7, 0xa2, 0x49, 0x72, 0x94, 0x13, 0x73, 0x9e, 0x53, 0x2b, 0x64, 0x39, 0x37, 0x15, 0x2c, 0xdf, 0xb8, 0xd2, 0xff, 0x87, 0xfd, 0x48, 0x08, 0x4d, 0xd8, 0xae, 0xeb, 0xea, 0xf0, 0xf7, 0xb1, 0x0d, 0x87, 0xb6, 0xe4, 0x42, 0x32, 0x28, 0xc9, 0xfc, 0x8d, 0xc5, 0xe3, 0x85, 0x2a, 0xa8, 0xb8, 0xac, 0xc5, 0x45, 0xd1, 0x8f, 0x25, 0xc5, 0x5d, 0x73, 0xda, 0x1b, 0xb8, 0x2e, 0x3e, 0xb3, 0x76, 0xf9, 0xef, 0x05, 0xb2, 0x74, 0xd7, 0xec, 0xb1, 0x84, 0x5d, 0x65, 0xca, 0x0c, 0xd2, 0x62, 0x9f, 0x03, 0x8a, 0x2d, 0x66, 0x4d, 0x7a, 0x69, 0x78, 0x1c, 0x84, 0xe9, 0x8d, 0xe2, 0xc2, 0x09, 0xc4, 0x6e, 0xfc, 0x51, 0x16, 0x21, 0x72, 0x85, 0x66, 0x49, 0x46, 0x9e, 0x67, 0x33, 0x08, 0xdc, 0xc1, 0x45, 0xea, 0xf7, 0x83, 0xf5, 0xcb, 0x5b, 0x4b, 0xe7, 0xd9, 0xfd, 0x58, 0xee, 0x09, 0x74, 0xc9, 0x81, 0xa3, 0x8f, 0xea, 0x8e, 0x31, 0x26, 0x7a, 0xbf, 0xa4, 0x10, 0xe6, 0x9e, 0x46, 0x48, 0x2f, 0x51, 0x34, 0xf3, 0xda, 0x1f, 0xfe, 0x38, 0x1b, 0xd6, 0x9d, 0x8d, 0x0b, 0x78, 0xea, 0x90, 0x9b, 0x4a, 0xf9, 0x39, 0x6d, 0xca, 0xff, 0x89, 0x96, 0x0a, 0x04, 0x9e, 0xda, 0x69, 0x46, 0x61, 0x6f, 0xc2, 0x7c, 0xcf, 0x9a, 0x9e, 0x5b, 0xa1, 0xa0, 0x13, 0x57, 0x64, 0xf3, 0x77, 0x19, 0xda, 0x4d, 0x28, 0x07, 0x81, 0x85, 0xd0, 0x4d, 0x72, 0x41, 0x9c, 0x2c, 0x70, 0xf2, 0x90, 0xd9, 0x7e, 0x1f, 0x82, 0xb8, 0x79, 0xf7, 0x1b, 0x9e, 0x19, 0xd5, 0x04, 0xd3, 0x64, 0xcd, 0x3b, 0xa2, 0x2c, 0xf9, 0x05, 0x25, 0x0f, 0xd3, 0x7d, 0x58, 0xe5, 0xfe, 0x40, 0x20, 0x9f, 0x60, 0x72, 0xa0, 0x6d, 0x8b, 0x5b, 0xa7, 0x01, 0x96, 0x23, 0x05, 0x77, 0x87, 0x7e, 0xc4, 0x61, 0x53, 0x16, 0x7a, 0x7c, 0x7a, 0xea, 0x27, 0x0f, 0xa1, 0x09, 0x8a, 0xba, 0x9e, 0x3a, 0x74, 0xac, 0xb3, 0x6a, 0x11, 0xb0, 0x9b, 0xd0, 0x7a, 0x3b, 0x88, 0xea, 0x65, 0x4e, 0x26, 0x83, 0x65, 0x62, 0x5b, 0x58, 0x9b, 0x22, 0x06, 0xc7, 0x10, 0xd9, 0x60, 0xf4, 0x2e, 0xa4, 0x19, 0xb7, 0xe4, 0xe3, 0xda, 0x47, 0x59, 0xfc, 0xbc, 0xa5, 0x0e, 0x4b, 0xf4, 0xcc, 0x55, 0xcf, 0x88, 0xf7, 0x0b, 0x31, 0x80, 0xc8, 0x05, 0xa7, 0x04, 0x50, 0x86, 0xaf, 0xa0, 0x4c, 0x6b, 0xe2, 0x32, 0x23, 0xec, 0xae, 0x5f, 0x82, 0xc1, 0x46, 0xd5, 0x43, 0x11, 0xd1, 0x80, 0x7c, 0x2e, 0x4a, 0x53, 0xf9, 0xe0, 0xa4, 0x48, 0x2b, 0x4e, 0x1e, };
23022 static const u8 ed25519_1001_test_vectors_expected_sig[] = {
23023 	0xe3, 0xdb, 0x47, 0xa1, 0x1e, 0x10, 0xe7, 0x88, 0x92, 0x5d, 0x14, 0xb1, 0xe2, 0x8b, 0x54, 0xc9, 0xfc, 0xf9, 0xb6, 0xac, 0xc1, 0xdf, 0x8c, 0x14, 0xf6, 0x83, 0xa5, 0x67, 0x2f, 0xd5, 0x04, 0xdd, 0x4a, 0x47, 0x5a, 0x33, 0x93, 0xb3, 0xef, 0x8b, 0xce, 0xac, 0x23, 0x61, 0xdb, 0xba, 0x35, 0x30, 0xaf, 0x25, 0xc2, 0x46, 0xc3, 0xec, 0x4c, 0x05, 0x89, 0x9b, 0x51, 0x7f, 0x6c, 0xd3, 0x4f, 0x0a, };
23024 static const ec_test_case ed25519_1001_test_case = {
23025 	.name = "EDDSA25519-SHA512/wei25519 1001",
23026 	.ec_str_p = &wei25519_str_params,
23027 	.priv_key = ed25519_1001_test_vectors_priv_key,
23028 	.priv_key_len = sizeof(ed25519_1001_test_vectors_priv_key),
23029 	.nn_random = NULL,
23030 	.hash_type = SHA512,
23031 	.msg = (const char *)ed25519_1001_test_vectors_message,
23032 	.msglen = sizeof(ed25519_1001_test_vectors_message),
23033 	.sig_type = EDDSA25519,
23034 	.exp_sig = ed25519_1001_test_vectors_expected_sig,
23035 	.exp_siglen = sizeof(ed25519_1001_test_vectors_expected_sig),
23036 	.adata = NULL,
23037 	.adata_len = 0
23038 };
23039 
23040 /************************************************/
23041 static const u8 ed25519_1002_test_vectors_priv_key[] = {
23042 	0x9e, 0xb5, 0xc9, 0xef, 0x13, 0x53, 0x5f, 0x80, 0x81, 0x09, 0xf4, 0xa4, 0x3c, 0xfa, 0xd5, 0x68, 0x4f, 0x80, 0xda, 0xf0, 0x2e, 0xed, 0x54, 0x10, 0xac, 0x0b, 0x0a, 0x09, 0xa6, 0x08, 0x2d, 0x69, };
23043 static const u8 ed25519_1002_test_vectors_message[] = {
23044 	0x2d, 0x7c, 0xb0, 0x5e, 0x61, 0xdb, 0xae, 0x26, 0x25, 0x8e, 0x38, 0x61, 0xc6, 0x39, 0xef, 0x0e, 0x1d, 0x17, 0xfc, 0x71, 0x1a, 0x00, 0xf3, 0x35, 0xba, 0x3c, 0x02, 0x71, 0x37, 0xe0, 0x07, 0x08, 0xd7, 0x08, 0xc1, 0xff, 0x45, 0x7f, 0xf2, 0xc6, 0x51, 0x12, 0xf7, 0xdc, 0xd7, 0xd0, 0x2f, 0x24, 0xd5, 0x6f, 0x07, 0x21, 0x58, 0xea, 0x1c, 0x71, 0x83, 0x25, 0x50, 0xa5, 0x83, 0x66, 0xfd, 0x91, 0x97, 0x29, 0x6b, 0xbe, 0x61, 0xaa, 0x4d, 0x00, 0xde, 0x18, 0xa4, 0x53, 0xef, 0x91, 0x74, 0xfa, 0x81, 0x96, 0x83, 0x05, 0xc4, 0x1c, 0x34, 0x55, 0xf4, 0x2d, 0x44, 0x7a, 0x92, 0x34, 0xf0, 0x6e, 0x13, 0xbf, 0x8b, 0xca, 0xa1, 0xba, 0xbb, 0x11, 0x69, 0x5f, 0xaf, 0xdc, 0x08, 0xf7, 0xa5, 0x84, 0xb2, 0xea, 0x1f, 0x61, 0xe9, 0x38, 0x92, 0x60, 0xce, 0x73, 0x35, 0xa0, 0x7d, 0xe7, 0x2c, 0x89, 0x11, 0xa5, 0x8a, 0x31, 0x3f, 0x10, 0x88, 0xdc, 0xdf, 0x5c, 0x8d, 0x4c, 0x45, 0x6c, 0xba, 0x2d, 0xcb, 0x4f, 0x2d, 0x15, 0x6b, 0x49, 0x43, 0xb9, 0x5b, 0xd4, 0x93, 0xea, 0x4f, 0xe1, 0xa8, 0x2d, 0x4e, 0x3e, 0xa0, 0x2a, 0xa0, 0x29, 0x72, 0x40, 0x0b, 0x5e, 0xe1, 0x78, 0x42, 0x83, 0x2d, 0x59, 0x97, 0x9f, 0xc1, 0x79, 0xf8, 0x43, 0xc4, 0x4b, 0x03, 0xeb, 0x3c, 0x30, 0x24, 0x16, 0xd0, 0xcd, 0xaf, 0x11, 0xc4, 0xca, 0x8a, 0x66, 0xcc, 0xbb, 0x69, 0x97, 0x39, 0x5e, 0xdf, 0x6f, 0xca, 0x2e, 0xa0, 0x04, 0xcf, 0x34, 0x86, 0x97, 0x10, 0x04, 0xa4, 0x20, 0x42, 0xaf, 0x8e, 0xce, 0x00, 0x5b, 0x94, 0x46, 0x1d, 0x86, 0xdc, 0xde, 0x21, 0x2a, 0x2e, 0xb1, 0xbe, 0x3b, 0x91, 0x4c, 0x78, 0x3e, 0x48, 0xac, 0x1a, 0xd4, 0x6c, 0xac, 0xd7, 0x3e, 0x1e, 0xb4, 0x48, 0x36, 0x83, 0x22, 0xd2, 0x67, 0x8e, 0xfc, 0xb2, 0xab, 0xff, 0x52, 0x09, 0x3d, 0xb0, 0xf2, 0x59, 0xdc, 0xe5, 0xc1, 0xe1, 0x9a, 0x51, 0x28, 0x20, 0xf2, 0x35, 0xd6, 0xae, 0xaf, 0x0e, 0x1a, 0x72, 0x3c, 0x2c, 0x65, 0x0c, 0xff, 0x1e, 0xe3, 0xb6, 0xb4, 0xf4, 0xcc, 0x98, 0x9c, 0x0b, 0x7d, 0x6d, 0xe3, 0xcd, 0x7e, 0x6d, 0xaa, 0x39, 0xbb, 0x69, 0x07, 0x10, 0xdf, 0x00, 0xa7, 0x19, 0x4c, 0x17, 0x20, 0x1f, 0x0e, 0x81, 0xbe, 0x64, 0xb6, 0x73, 0x9e, 0x1c, 0x1e, 0x81, 0x76, 0xb7, 0xe1, 0x2a, 0x35, 0x34, 0x27, 0xc0, 0x67, 0xc1, 0x93, 0x14, 0xdb, 0x64, 0x2e, 0x5c, 0x76, 0x26, 0x6b, 0x64, 0x0e, 0xb1, 0xcc, 0x0c, 0x73, 0xf8, 0x4f, 0xc0, 0x22, 0x7e, 0x5a, 0x96, 0x06, 0x0d, 0x81, 0x40, 0x71, 0xcd, 0xe2, 0xfe, 0xd9, 0x44, 0x76, 0x7b, 0x74, 0x66, 0xf9, 0x00, 0x1d, 0xfc, 0x22, 0x36, 0x85, 0x42, 0x9b, 0xc4, 0xe5, 0xe4, 0x8f, 0x5c, 0x13, 0xa6, 0x3a, 0x4e, 0x0d, 0x82, 0x61, 0x33, 0xad, 0x92, 0x0d, 0x11, 0x77, 0x21, 0x45, 0xad, 0x6e, 0x13, 0xc9, 0x38, 0x97, 0x39, 0x8a, 0x8a, 0x40, 0x1f, 0x93, 0xdb, 0xd1, 0x03, 0x00, 0x5c, 0x7d, 0xae, 0x44, 0x38, 0x7f, 0x3e, 0x80, 0xb7, 0x93, 0x60, 0x7d, 0x05, 0xd2, 0xd8, 0xbc, 0x0d, 0x03, 0x51, 0xa3, 0xa4, 0x52, 0xb8, 0xce, 0x75, 0x9c, 0x1a, 0xd4, 0x8d, 0xf7, 0xb9, 0xba, 0x9e, 0x4a, 0x17, 0xdf, 0x61, 0xfd, 0xab, 0xb9, 0xb5, 0x77, 0xb5, 0xce, 0xc3, 0xe9, 0x46, 0x1f, 0xbb, 0x5e, 0x12, 0x81, 0x55, 0xa3, 0xc9, 0xc8, 0x9f, 0x8f, 0x6b, 0xeb, 0xb7, 0x32, 0x2a, 0x16, 0x67, 0x8e, 0x8e, 0xcb, 0x98, 0x95, 0x3d, 0x95, 0x83, 0x10, 0xdb, 0x1b, 0x06, 0x34, 0x48, 0xc3, 0x49, 0xf3, 0x6e, 0x16, 0x8f, 0xac, 0x48, 0x4c, 0xb3, 0xc0, 0xd4, 0xcb, 0x2c, 0x25, 0x1b, 0xd9, 0x2e, 0xf8, 0xe9, 0x26, 0x2b, 0x44, 0x09, 0x3d, 0x7e, 0x65, 0x0a, 0x7d, 0x3b, 0xed, 0x37, 0x91, 0xfa, 0x88, 0x10, 0x0f, 0xee, 0x6e, 0xf0, 0xd5, 0xe2, 0x3d, 0x1e, 0x9a, 0x80, 0x99, 0xcc, 0x03, 0x35, 0x20, 0x2a, 0x4f, 0x10, 0x6c, 0x24, 0x77, 0x7e, 0x98, 0xf8, 0x1d, 0x26, 0xef, 0xba, 0x15, 0xc9, 0xad, 0x15, 0x41, 0xe0, 0xad, 0xbf, 0x1d, 0x1d, 0x76, 0x07, 0x6b, 0x0d, 0xfd, 0x7b, 0x7d, 0x6c, 0x8b, 0x82, 0xf9, 0xc0, 0x93, 0x46, 0x8c, 0xd1, 0x96, 0x67, 0x2d, 0xc5, 0x47, 0x8e, 0x91, 0xce, 0x70, 0x1c, 0xdd, 0x7b, 0x68, 0xb3, 0x53, 0xc9, 0x71, 0x11, 0xf0, 0x42, 0x97, 0x60, 0x63, 0x57, 0x62, 0xf8, 0x68, 0x3a, 0xe9, 0x70, 0x56, 0x4b, 0xce, 0xba, 0x91, 0x20, 0x51, 0x76, 0x42, 0xe8, 0xb3, 0xa2, 0xba, 0xaa, 0x85, 0xc2, 0x5b, 0x54, 0xa9, 0x43, 0x76, 0x61, 0x84, 0x90, 0x4c, 0x72, 0xd9, 0x29, 0x63, 0x4e, 0xc5, 0xf0, 0xc2, 0x84, 0x73, 0x41, 0x5f, 0x12, 0x53, 0x89, 0x06, 0xc6, 0x78, 0xfc, 0xa4, 0xe6, 0x82, 0xdb, 0x48, 0x79, 0x75, 0x84, 0x92, 0x53, 0x7e, 0x78, 0x50, 0xb9, 0xbf, 0xef, 0x3e, 0xb9, 0x05, 0x3b, 0x43, 0x92, 0x0d, 0x81, 0x0e, 0x55, 0xbe, 0x96, 0x6a, 0xec, 0x68, 0xc9, 0xdd, 0x3b, 0x62, 0xcc, 0xf5, 0x7e, 0x81, 0x78, 0xcb, 0x5e, 0xf6, 0xd1, 0x6d, 0x17, 0x2a, 0x56, 0xdd, 0x92, 0x4f, 0x00, 0xf2, 0xd3, 0xb5, 0xe9, 0x3a, 0xaa, 0x92, 0xb2, 0x9f, 0xb8, 0x33, 0x6d, 0x73, 0xe2, 0x9e, 0x59, 0xd1, 0xc4, 0x7e, 0xa6, 0x23, 0x0c, 0xda, 0x1d, 0x5b, 0x03, 0xbb, 0xa5, 0xdf, 0xdb, 0x33, 0x1f, 0xeb, 0x19, 0x44, 0x3f, 0x12, 0x3d, 0x2a, 0x03, 0xff, 0x4f, 0x10, 0xec, 0xa1, 0x66, 0xc2, 0x99, 0x85, 0x88, 0xf1, 0xe5, 0x84, 0xed, 0x19, 0x4d, 0xd6, 0xf7, 0x3c, 0x8a, 0xca, 0x84, 0x66, 0x31, 0x90, 0x4d, 0x9f, 0xe4, 0xa9, 0x8b, 0x36, 0x78, 0x23, 0xe4, 0x6e, 0xdb, 0xa2, 0x88, 0x51, 0x29, 0x87, 0x9e, 0x92, 0x77, 0xe1, 0x50, 0xf0, 0x29, 0xb8, 0xfa, 0x7b, 0xd1, 0x1e, 0xab, 0x9c, 0xe1, 0x33, 0x67, 0x77, 0xc8, 0x0b, 0x56, 0xb3, 0xa1, 0xf0, 0x81, 0x1a, 0xdb, 0xca, 0x0f, 0x5b, 0x40, 0x25, 0xa5, 0x50, 0x3c, 0x81, 0x96, 0x66, 0x1a, 0xee, 0x90, 0x00, 0x6e, 0x9c, 0x85, 0xbb, 0xfa, 0x4c, 0x5a, 0x0e, 0x90, 0x28, 0x85, 0xc8, 0xce, 0x51, 0x21, 0x2e, 0xe6, 0x7f, 0x0f, 0xe0, 0xb6, 0xaf, 0xbc, 0x8b, 0xad, 0x45, 0x37, 0x27, 0x54, 0x3b, 0x3c, 0x68, 0xb8, 0x90, 0xdd, 0xab, 0xa2, 0x69, 0xd2, 0x5f, 0xc1, 0x64, 0x3f, 0x54, 0x83, 0x51, 0x36, 0xa1, 0xa2, 0x5b, 0xa1, 0x8d, 0x91, 0x6c, 0xed, 0xd6, 0xa4, 0x7f, 0xc0, 0x7a, 0xdf, 0x6f, 0xc6, 0x9f, 0xa5, 0x08, 0x94, 0x9d, 0xc1, 0x0d, 0x9d, 0xc5, 0xe0, 0x26, 0x1b, 0x52, 0xf3, 0x65, 0x71, 0x70, 0x38, 0x4e, 0xcc, 0xd9, 0xc8, 0x05, 0x41, 0x35, 0x4b, 0x1c, 0xe0, 0xf6, 0xfb, 0x5e, 0xd3, 0xe8, 0xd5, 0x4a, 0xf0, 0xb5, 0xbf, 0x0a, 0x92, 0x83, 0x51, 0x25, 0xc7, 0xd9, 0xbc, 0x4f, 0x09, 0x2f, 0xf3, 0x80, 0xe5, 0xe8, 0x96, 0xfb, 0xf3, 0x02, 0x55, 0x2b, 0x14, 0xd5, 0xb6, 0x1a, 0x22, 0x4d, 0x86, 0xe3, 0x01, 0xc7, 0xa6, 0x6a, 0x66, 0xe4, 0xe4, 0x32, 0x9a, 0xac, 0x0a, 0x66, 0xb1, 0x56, 0x77, 0x23, 0x74, 0xdc, 0x1c, 0x71, 0x68, 0xd5, 0xb5, 0x61, 0x65, 0x2f, 0x8f, 0x43, 0x87, 0xe4, 0xf2, 0x89, 0xb6, 0x36, 0x6a, };
23045 static const u8 ed25519_1002_test_vectors_expected_sig[] = {
23046 	0x42, 0x9c, 0xe1, 0xfe, 0x84, 0x6d, 0x25, 0x08, 0x49, 0xec, 0xa7, 0xd4, 0x56, 0xf8, 0xc5, 0x9f, 0x86, 0x75, 0xb1, 0xf4, 0xc1, 0x3f, 0x2b, 0xe4, 0x16, 0x88, 0xdf, 0xb8, 0xca, 0x2a, 0x3b, 0x24, 0xae, 0x29, 0xd5, 0xb6, 0xbf, 0x47, 0x11, 0x57, 0xbc, 0xb6, 0xe2, 0xec, 0x9d, 0x4a, 0x26, 0xb0, 0x38, 0xe6, 0xec, 0x28, 0x58, 0x4c, 0xc2, 0x3f, 0x2a, 0x03, 0x55, 0x6d, 0xbb, 0x37, 0xe9, 0x00, };
23047 static const ec_test_case ed25519_1002_test_case = {
23048 	.name = "EDDSA25519-SHA512/wei25519 1002",
23049 	.ec_str_p = &wei25519_str_params,
23050 	.priv_key = ed25519_1002_test_vectors_priv_key,
23051 	.priv_key_len = sizeof(ed25519_1002_test_vectors_priv_key),
23052 	.nn_random = NULL,
23053 	.hash_type = SHA512,
23054 	.msg = (const char *)ed25519_1002_test_vectors_message,
23055 	.msglen = sizeof(ed25519_1002_test_vectors_message),
23056 	.sig_type = EDDSA25519,
23057 	.exp_sig = ed25519_1002_test_vectors_expected_sig,
23058 	.exp_siglen = sizeof(ed25519_1002_test_vectors_expected_sig),
23059 	.adata = NULL,
23060 	.adata_len = 0
23061 };
23062 
23063 /************************************************/
23064 static const u8 ed25519_1003_test_vectors_priv_key[] = {
23065 	0xef, 0x09, 0x48, 0xe1, 0x32, 0x81, 0xf3, 0xcf, 0x35, 0x2c, 0xbf, 0xaf, 0x8d, 0x89, 0xd1, 0x17, 0x76, 0x85, 0x52, 0xd5, 0xa1, 0x54, 0x8e, 0xcb, 0xaf, 0x37, 0x41, 0x2e, 0x97, 0x67, 0x0f, 0xac, };
23066 static const u8 ed25519_1003_test_vectors_message[] = {
23067 	0x7e, 0xc4, 0x7f, 0x2f, 0x1f, 0xe3, 0xb7, 0x0a, 0x6d, 0x1d, 0x82, 0xc7, 0xcd, 0x92, 0x4b, 0x4b, 0xf9, 0xb2, 0x02, 0x9f, 0xc1, 0x2c, 0x52, 0xa6, 0xe1, 0xcc, 0x06, 0xcf, 0x5a, 0xbf, 0xc0, 0xa4, 0x42, 0xe7, 0xcf, 0x14, 0x5c, 0x15, 0x42, 0xb9, 0xb1, 0x35, 0x04, 0x96, 0x65, 0x71, 0x10, 0x35, 0xe3, 0xc2, 0x9a, 0x91, 0xd4, 0xfd, 0xae, 0xd6, 0x12, 0x70, 0x57, 0xa8, 0x12, 0xc2, 0x2c, 0xd7, 0x5a, 0xd1, 0x87, 0x9b, 0xe1, 0xd2, 0xc6, 0x11, 0x0e, 0x79, 0xe9, 0x87, 0x52, 0x4e, 0x4e, 0x8f, 0x27, 0xf1, 0x6e, 0xda, 0x90, 0xcb, 0xd4, 0x73, 0x3f, 0x11, 0x18, 0x25, 0xb5, 0x16, 0xd1, 0x06, 0x7f, 0x81, 0xec, 0xa5, 0xe6, 0x94, 0x85, 0x76, 0xd5, 0xbf, 0xed, 0xb3, 0x27, 0x7c, 0x1a, 0xbc, 0x1e, 0x60, 0xf3, 0x74, 0xd0, 0x70, 0x1b, 0x32, 0xcc, 0xfd, 0x6a, 0x5e, 0x9c, 0x8d, 0x16, 0x59, 0xaa, 0xf3, 0xd0, 0x81, 0x86, 0x13, 0x61, 0x3b, 0x7e, 0x28, 0x8d, 0x84, 0x5e, 0x9a, 0xaa, 0xba, 0x2e, 0x3e, 0x9b, 0x41, 0x1d, 0x50, 0x1d, 0xff, 0xe8, 0x56, 0xfd, 0x31, 0x3e, 0x9f, 0xcc, 0x9e, 0x74, 0x30, 0xb9, 0x98, 0x3f, 0x20, 0xab, 0x4e, 0xbf, 0x4e, 0xb6, 0x16, 0xbd, 0x63, 0xe2, 0xc5, 0x77, 0x43, 0x65, 0x89, 0x95, 0xed, 0x0a, 0x14, 0x9a, 0xe6, 0x20, 0xa3, 0x95, 0x61, 0x37, 0x19, 0xb3, 0xed, 0x7c, 0xed, 0x45, 0x88, 0xd5, 0x91, 0x5d, 0x70, 0xa2, 0xf0, 0xc6, 0x87, 0x68, 0x0e, 0xc3, 0x4f, 0xe3, 0xe9, 0xf7, 0x23, 0x92, 0xe1, 0x89, 0xe1, 0x3a, 0x47, 0x49, 0xd5, 0xca, 0x9f, 0xac, 0x65, 0x1b, 0x92, 0xc0, 0x84, 0xc4, 0x06, 0x6f, 0xdf, 0x98, 0xa8, 0x69, 0x22, 0x3e, 0x4e, 0x0c, 0x9b, 0xec, 0x58, 0x12, 0xb5, 0xc1, 0x90, 0x0e, 0x6e, 0x60, 0xd3, 0xa1, 0x88, 0xd4, 0x8a, 0x74, 0xdf, 0xd4, 0x15, 0xb5, 0xca, 0xd2, 0xe9, 0x1f, 0xf7, 0x6d, 0xf7, 0x50, 0x89, 0xd2, 0x0a, 0x75, 0x5f, 0x26, 0x07, 0x56, 0xc8, 0xf1, 0x38, 0x2a, 0x29, 0xf7, 0xb9, 0x37, 0x26, 0xe7, 0x31, 0x07, 0x1c, 0xd4, 0x77, 0x45, 0x8c, 0x6f, 0x20, 0x22, 0xdf, 0xad, 0x7d, 0x4f, 0xc7, 0xab, 0x23, 0x80, 0x54, 0x18, 0x64, 0xf6, 0xb5, 0x87, 0x74, 0xf9, 0xae, 0x8e, 0x5f, 0x07, 0x7c, 0x1a, 0x8d, 0xa0, 0x73, 0xc3, 0x98, 0x53, 0xeb, 0x2f, 0xd4, 0x77, 0x22, 0x0b, 0x45, 0xa3, 0xd9, 0x22, 0x63, 0xdc, 0x7e, 0x14, 0xd3, 0xbb, 0x2b, 0x36, 0xfc, 0xa4, 0x66, 0xc7, 0xef, 0x8a, 0x24, 0x75, 0x38, 0x72, 0x5f, 0x2f, 0xce, 0x5c, 0x72, 0x21, 0xbc, 0x75, 0x1c, 0xde, 0x13, 0x94, 0x60, 0x4f, 0x59, 0x31, 0xd7, 0x33, 0x36, 0x0c, 0xcd, 0x47, 0xce, 0x08, 0x77, 0x12, 0x95, 0x81, 0x80, 0xad, 0x84, 0xfa, 0xe7, 0x13, 0xb5, 0x43, 0xf0, 0x5e, 0xef, 0x6a, 0xbc, 0x06, 0x61, 0x43, 0x31, 0x21, 0xed, 0x3b, 0x45, 0x06, 0xa1, 0x46, 0x50, 0x25, 0x31, 0x6f, 0xb8, 0xf9, 0xd6, 0x45, 0x35, 0xcc, 0x45, 0x38, 0xac, 0xd4, 0x06, 0x4d, 0xd5, 0x76, 0xb0, 0x74, 0x0e, 0x1b, 0xeb, 0x13, 0xbc, 0xea, 0xf1, 0x55, 0x54, 0x3d, 0xc8, 0x90, 0x97, 0xca, 0x5c, 0xa1, 0xcf, 0xfa, 0x0a, 0xd6, 0x5a, 0x10, 0xbc, 0xb7, 0x59, 0x35, 0x4e, 0xab, 0x8a, 0x42, 0xde, 0x73, 0x4a, 0xf9, 0x09, 0xc2, 0xfe, 0xba, 0x38, 0x0d, 0x66, 0x40, 0x9f, 0x32, 0x5d, 0x5f, 0x17, 0xaf, 0x9c, 0xa7, 0xf8, 0xcb, 0x41, 0x34, 0xfd, 0x6a, 0x2b, 0x6a, 0x52, 0x8d, 0x9e, 0x60, 0xd9, 0x61, 0x2b, 0x8e, 0x8b, 0x40, 0x62, 0xf8, 0xe0, 0xfa, 0xd1, 0xe7, 0xee, 0xb9, 0xcb, 0xfe, 0xf6, 0xe9, 0x73, 0x8e, 0xc7, 0x97, 0x3e, 0x1c, 0xb2, 0xba, 0x23, 0x27, 0xde, 0xca, 0x4e, 0xa4, 0x65, 0x68, 0xf3, 0x1e, 0x12, 0xf7, 0x30, 0xe2, 0x47, 0xc1, 0xd0, 0x70, 0x29, 0xfd, 0x44, 0x22, 0xb2, 0x98, 0xff, 0x23, 0x98, 0x02, 0x3b, 0x41, 0x20, 0xa3, 0xa4, 0x25, 0xff, 0xb6, 0x52, 0x88, 0x0c, 0x19, 0xea, 0x69, 0xf3, 0x63, 0x9e, 0x0f, 0x6d, 0xf4, 0xf0, 0x08, 0x76, 0xcc, 0x45, 0x28, 0xe2, 0x67, 0xe8, 0x1d, 0x59, 0x43, 0x19, 0x9d, 0x0f, 0xeb, 0x6c, 0xb4, 0xe1, 0xba, 0xf4, 0x04, 0xbb, 0x6f, 0x8b, 0x39, 0xb1, 0x2d, 0xbc, 0xe9, 0xfd, 0xc3, 0x5d, 0xc1, 0x58, 0x06, 0x6e, 0x99, 0x75, 0xae, 0x5b, 0xd3, 0xb5, 0x5f, 0x2a, 0x41, 0xa7, 0x91, 0xba, 0xf3, 0xe8, 0x35, 0x1e, 0xc6, 0x04, 0x94, 0x47, 0x90, 0xa2, 0x2c, 0x93, 0x3c, 0x80, 0xb1, 0x59, 0x0b, 0xa1, 0x97, 0xa4, 0x70, 0x6f, 0x7f, 0x51, 0x28, 0x68, 0x2e, 0xdc, 0xd7, 0x4d, 0xd7, 0x8d, 0x43, 0x5e, 0x78, 0x7c, 0x2b, 0x76, 0xa5, 0x7b, 0x3f, 0x4e, 0x7d, 0x7b, 0xe2, 0xef, 0xd2, 0x6d, 0xa5, 0xf9, 0xa8, 0x29, 0x11, 0x9b, 0x01, 0x50, 0x8b, 0x70, 0x72, 0xc7, 0x69, 0x9c, 0xe5, 0x2b, 0xb5, 0x78, 0xcc, 0x5b, 0x1b, 0x93, 0x66, 0x1b, 0x51, 0x72, 0xfb, 0x84, 0xda, 0xf1, 0xba, 0x36, 0x4d, 0x2c, 0xbd, 0x80, 0xe2, 0xc9, 0x9b, 0xca, 0x9c, 0xae, 0xa8, 0x73, 0xcc, 0x0a, 0x16, 0x29, 0xea, 0xc3, 0x84, 0xe9, 0xb2, 0x06, 0x84, 0x2a, 0x6e, 0x61, 0x83, 0x38, 0x75, 0x91, 0xb4, 0xaa, 0x34, 0xa9, 0x5f, 0xd8, 0x9b, 0x49, 0xd8, 0xd1, 0x5d, 0x91, 0xe2, 0x19, 0x40, 0xe1, 0x7d, 0xca, 0xf1, 0xef, 0xf8, 0xa0, 0xa4, 0x7a, 0x0d, 0x7a, 0x95, 0xda, 0xea, 0xd8, 0x2a, 0xa3, 0xdf, 0x82, 0x04, 0xa0, 0xcd, 0x20, 0x69, 0x24, 0xae, 0x51, 0x0f, 0xec, 0x8a, 0x9c, 0x4e, 0x8d, 0x85, 0xd4, 0x66, 0xfd, 0xb4, 0xdd, 0x36, 0x5d, 0xc9, 0x93, 0x36, 0xb2, 0x2c, 0xe0, 0xb9, 0x56, 0xb5, 0xee, 0x00, 0x17, 0xf2, 0x9d, 0x25, 0xee, 0x66, 0xfb, 0xdc, 0xec, 0xb0, 0xd9, 0x96, 0xff, 0xb9, 0x7c, 0x8d, 0xef, 0xde, 0x40, 0xa9, 0xff, 0x99, 0x93, 0x19, 0x3c, 0xa8, 0xf1, 0x68, 0x50, 0x67, 0xc1, 0x9c, 0x52, 0x6e, 0x0e, 0xfe, 0xd2, 0x36, 0xf8, 0xed, 0xb8, 0xde, 0xf6, 0xc2, 0xa0, 0x3e, 0x21, 0x95, 0x2c, 0x86, 0x12, 0xd6, 0x24, 0xe6, 0x88, 0x6a, 0x31, 0x1f, 0xfb, 0x9e, 0x2f, 0x15, 0xda, 0x44, 0xab, 0xe1, 0x80, 0xd2, 0x6a, 0x14, 0xb1, 0x5f, 0x63, 0x56, 0x1e, 0x09, 0x7a, 0x73, 0x0e, 0xca, 0xbb, 0x79, 0x2c, 0x7c, 0x23, 0x5f, 0xdd, 0x36, 0x0f, 0x57, 0x1f, 0x27, 0xef, 0x68, 0x67, 0x7a, 0x7d, 0x63, 0xbe, 0xb4, 0x97, 0x59, 0x82, 0xcb, 0x19, 0x9a, 0x56, 0x0f, 0x81, 0x6e, 0xe1, 0x29, 0x89, 0x44, 0x5f, 0x7f, 0x75, 0xb8, 0x3e, 0xb2, 0x78, 0xd6, 0x28, 0x25, 0x94, 0x7d, 0x84, 0x09, 0x9a, 0xf2, 0xa6, 0xff, 0x2e, 0xad, 0xbb, 0xf5, 0x89, 0xb5, 0xeb, 0x2f, 0x72, 0xed, 0x11, 0x4c, 0x73, 0x15, 0x11, 0x53, 0xae, 0x00, 0x22, 0xbc, 0x95, 0x64, 0xd1, 0x5c, 0x2d, 0x5c, 0xdb, 0xba, 0xab, 0xbe, 0xf6, 0x38, 0xf0, 0x30, 0x95, 0xf5, 0x3e, 0xeb, 0xac, 0x96, 0x83, 0x40, 0x9a, 0xd3, 0x06, 0x0c, 0xfb, 0x7c, 0x70, 0x37, 0xb9, 0xb0, 0xbe, 0xfe, 0x06, 0x9c, 0x92, 0xa0, 0x2b, 0xe9, 0x53, 0x38, 0x8e, 0x9e, 0xa4, 0x5d, 0x36, 0xdd, 0xf4, 0xf5, 0xa8, 0x38, 0x94, 0x32, 0xcc, 0xf5, 0x04, 0xc5, 0x08, 0x08, 0xb0, 0x7f, 0x69, };
23068 static const u8 ed25519_1003_test_vectors_expected_sig[] = {
23069 	0xcc, 0x12, 0xf6, 0x9d, 0xb6, 0x3a, 0x67, 0x8e, 0xc4, 0x77, 0xa6, 0x05, 0xa5, 0x05, 0xc5, 0x7d, 0xc2, 0xb8, 0x10, 0xef, 0x85, 0xe3, 0xe3, 0x45, 0x19, 0xcb, 0x25, 0xc5, 0x10, 0x63, 0xaa, 0x66, 0x35, 0x5d, 0x3f, 0x1e, 0x29, 0x74, 0x69, 0x58, 0x66, 0xed, 0xf6, 0xf1, 0x71, 0x71, 0xce, 0x37, 0x84, 0x2f, 0xba, 0xb5, 0x07, 0x5f, 0xc8, 0x95, 0xd1, 0x8e, 0xd7, 0x43, 0xc5, 0x46, 0x08, 0x0c, };
23070 static const ec_test_case ed25519_1003_test_case = {
23071 	.name = "EDDSA25519-SHA512/wei25519 1003",
23072 	.ec_str_p = &wei25519_str_params,
23073 	.priv_key = ed25519_1003_test_vectors_priv_key,
23074 	.priv_key_len = sizeof(ed25519_1003_test_vectors_priv_key),
23075 	.nn_random = NULL,
23076 	.hash_type = SHA512,
23077 	.msg = (const char *)ed25519_1003_test_vectors_message,
23078 	.msglen = sizeof(ed25519_1003_test_vectors_message),
23079 	.sig_type = EDDSA25519,
23080 	.exp_sig = ed25519_1003_test_vectors_expected_sig,
23081 	.exp_siglen = sizeof(ed25519_1003_test_vectors_expected_sig),
23082 	.adata = NULL,
23083 	.adata_len = 0
23084 };
23085 
23086 /************************************************/
23087 static const u8 ed25519_1004_test_vectors_priv_key[] = {
23088 	0x90, 0x3f, 0x3b, 0x53, 0x99, 0x89, 0x2e, 0x29, 0xcc, 0xfa, 0xfb, 0xaf, 0xbd, 0x7c, 0xc4, 0x53, 0x3c, 0x15, 0x4a, 0x62, 0x56, 0x82, 0x40, 0x6c, 0x89, 0xbf, 0x89, 0x4c, 0x88, 0x9e, 0x43, 0xf4, };
23089 static const u8 ed25519_1004_test_vectors_message[] = {
23090 	0xa2, 0xc1, 0x1b, 0x5f, 0xb8, 0x84, 0xa8, 0x22, 0xfa, 0xe6, 0x4d, 0xa8, 0xdc, 0xb4, 0x45, 0x2c, 0xfd, 0x7a, 0x04, 0xca, 0x6d, 0x7a, 0x5a, 0xbc, 0x8d, 0x82, 0x71, 0xe9, 0x3f, 0x93, 0x44, 0x9e, 0x1f, 0xeb, 0x8e, 0x02, 0x97, 0x5f, 0x49, 0x6b, 0x90, 0x34, 0x40, 0x0d, 0x35, 0x99, 0xab, 0x97, 0xaa, 0x39, 0x97, 0xda, 0xd1, 0xc9, 0xff, 0xab, 0x5b, 0x9f, 0x8d, 0xf4, 0xaa, 0xa5, 0xb8, 0x40, 0xd9, 0x0d, 0x86, 0x2f, 0xff, 0x7f, 0xf0, 0xcf, 0x73, 0xa6, 0x0c, 0x66, 0x15, 0x00, 0x09, 0xe0, 0x1c, 0x93, 0x7b, 0xd1, 0xaf, 0x68, 0x07, 0xb5, 0xba, 0x2e, 0xf6, 0x12, 0xee, 0x13, 0xd6, 0xde, 0xf4, 0x0b, 0xb0, 0x9c, 0x46, 0x81, 0x1a, 0x2d, 0x4e, 0x46, 0x8e, 0x03, 0x8b, 0x32, 0x30, 0x55, 0xf9, 0xdf, 0xbd, 0x01, 0x82, 0x9a, 0xe2, 0xf1, 0xa5, 0x35, 0xef, 0x02, 0x95, 0xca, 0x1e, 0xd1, 0x76, 0xe4, 0x6d, 0xe9, 0x96, 0xcc, 0x87, 0xba, 0xce, 0x45, 0x35, 0x62, 0x33, 0x21, 0x18, 0x35, 0xb6, 0xf4, 0x75, 0x7c, 0x99, 0xbd, 0x52, 0x7e, 0x76, 0x6a, 0x5f, 0x0b, 0x12, 0x7c, 0x8c, 0xff, 0x8e, 0x6d, 0x66, 0xf8, 0xba, 0xb8, 0x6d, 0x00, 0x00, 0x45, 0x2c, 0xd7, 0xf6, 0x7b, 0xe5, 0x57, 0x78, 0x85, 0x13, 0xec, 0x07, 0x09, 0xb5, 0x37, 0xb0, 0x07, 0xb4, 0x20, 0x16, 0xe7, 0xa8, 0x96, 0x83, 0x46, 0x9b, 0xd8, 0xff, 0x8d, 0x21, 0xeb, 0x10, 0xc1, 0x49, 0x17, 0xd4, 0x7f, 0x2d, 0xc4, 0xf8, 0x26, 0x32, 0x4f, 0x7c, 0x01, 0xb2, 0x4f, 0x8d, 0xcf, 0xf0, 0x4a, 0xa6, 0xd8, 0x50, 0x95, 0xd9, 0xab, 0x15, 0x4b, 0xa5, 0xc3, 0xbd, 0x91, 0x9c, 0x9d, 0x72, 0x8d, 0xbd, 0xc9, 0x90, 0xd1, 0x9c, 0xeb, 0x23, 0x7b, 0x45, 0x29, 0x07, 0xbd, 0xbe, 0x21, 0xf9, 0xf0, 0x8c, 0xdd, 0xae, 0x5b, 0xe4, 0x79, 0x27, 0x67, 0x09, 0xb8, 0xae, 0x73, 0xf8, 0x97, 0x4c, 0x4b, 0x11, 0x38, 0x41, 0xad, 0x53, 0x5d, 0x6f, 0xf6, 0x22, 0x3e, 0xea, 0x47, 0xd1, 0x85, 0xc8, 0xe8, 0xa6, 0x5f, 0xde, 0xe2, 0xc2, 0xd4, 0x58, 0x00, 0xc1, 0x7c, 0xb5, 0x56, 0xea, 0xfd, 0x67, 0x66, 0x47, 0xd9, 0x96, 0x8e, 0x55, 0xca, 0x9c, 0x59, 0x23, 0x2b, 0x97, 0x70, 0xad, 0x10, 0xf9, 0x55, 0xfc, 0xb5, 0x85, 0x8e, 0xdf, 0x0b, 0x74, 0x83, 0xad, 0xc1, 0x81, 0x7c, 0x0f, 0x8d, 0x02, 0x24, 0x04, 0x82, 0xca, 0xa7, 0x6f, 0x43, 0xc6, 0xd2, 0xe9, 0x6a, 0x4f, 0xf9, 0x59, 0x1c, 0xd7, 0xb8, 0x78, 0xea, 0x61, 0x9e, 0xa5, 0x6d, 0x1b, 0x58, 0x86, 0x31, 0xe7, 0x63, 0x3c, 0x5e, 0xcb, 0x2b, 0xa6, 0x99, 0x83, 0x98, 0xcb, 0x06, 0xe3, 0xcf, 0x75, 0xae, 0xb3, 0xe0, 0x8d, 0xab, 0x19, 0x63, 0x2d, 0x45, 0x4f, 0xf7, 0xdc, 0x0e, 0x2a, 0x41, 0xf0, 0x97, 0x37, 0xe8, 0xee, 0x82, 0x3d, 0x1b, 0x9e, 0x24, 0xdd, 0xa8, 0x4a, 0x2c, 0xe0, 0x31, 0x3c, 0xb9, 0xfc, 0xe3, 0x1c, 0xb6, 0x63, 0xc5, 0x5c, 0x05, 0x64, 0x5e, 0x63, 0x40, 0x17, 0x56, 0xe8, 0xad, 0x38, 0xf5, 0x17, 0x4c, 0x02, 0xa6, 0x63, 0xd8, 0x15, 0xad, 0x64, 0x42, 0x2f, 0xf7, 0x72, 0x7d, 0x4f, 0xda, 0x16, 0xe4, 0x8d, 0x4b, 0xf8, 0xf6, 0x60, 0x2e, 0x72, 0x60, 0xda, 0x62, 0x33, 0x0e, 0x68, 0x78, 0xc3, 0x47, 0x64, 0xe1, 0x29, 0xaf, 0xbd, 0x55, 0x22, 0x08, 0xf6, 0xbe, 0xd4, 0xf7, 0xce, 0xe9, 0xb6, 0x71, 0xf4, 0x88, 0x38, 0x88, 0x15, 0xd7, 0x4b, 0x49, 0x51, 0xb8, 0x68, 0x2c, 0xe7, 0x6c, 0xfe, 0x31, 0xe9, 0x38, 0xc4, 0x70, 0xb8, 0xf7, 0xa4, 0x5f, 0xd6, 0x3a, 0x96, 0x91, 0xf4, 0x26, 0xa7, 0x5c, 0x58, 0xed, 0x3d, 0xbc, 0xe3, 0xae, 0x8f, 0xd9, 0xd1, 0x0a, 0x83, 0x52, 0xe4, 0x7c, 0xc1, 0xb1, 0x2c, 0x91, 0x92, 0xac, 0x86, 0x26, 0xd1, 0xb3, 0x84, 0xb7, 0x7a, 0x18, 0xb9, 0x86, 0xe7, 0x1a, 0x99, 0x86, 0x46, 0xc1, 0x37, 0x99, 0x2b, 0x67, 0xc4, 0x81, 0x7e, 0x34, 0x63, 0x45, 0xfa, 0xf5, 0x0a, 0x26, 0x59, 0xfd, 0xc5, 0xca, 0xd5, 0xc7, 0x19, 0x64, 0x8e, 0xfe, 0xe3, 0x84, 0x7c, 0x0f, 0xf6, 0xbd, 0x70, 0x95, 0xc2, 0x8b, 0x4c, 0x51, 0x95, 0x96, 0x7c, 0x90, 0xcf, 0x84, 0xe1, 0xef, 0x68, 0xa1, 0xad, 0xa0, 0x1f, 0x62, 0x74, 0xed, 0xe3, 0x63, 0xfb, 0x82, 0xe0, 0xb5, 0x49, 0xa8, 0x70, 0x24, 0x5d, 0x60, 0x8c, 0xae, 0x82, 0x34, 0xf6, 0xd8, 0x4a, 0xbe, 0xb6, 0x1b, 0x71, 0x84, 0x66, 0x09, 0x36, 0x20, 0xd8, 0x5c, 0x58, 0x4a, 0xb0, 0x1e, 0xed, 0xa0, 0x91, 0xee, 0x8a, 0xff, 0x1c, 0xf6, 0x7a, 0x46, 0x75, 0x67, 0x9a, 0x1f, 0x40, 0x03, 0xe6, 0x6a, 0xaf, 0x43, 0x87, 0x1b, 0x88, 0xec, 0xda, 0x6a, 0x16, 0xdc, 0x5a, 0xcb, 0x05, 0x39, 0x5f, 0x2d, 0xa9, 0xdf, 0x70, 0xd3, 0xbd, 0xb6, 0x14, 0x38, 0xe1, 0xc3, 0xd4, 0x09, 0x81, 0xe0, 0x34, 0x62, 0x7d, 0x02, 0x6e, 0xe1, 0xd2, 0xe7, 0x9f, 0x65, 0xcb, 0xb8, 0x18, 0x9f, 0xcb, 0xb3, 0xcc, 0x8b, 0x5c, 0x2e, 0x7e, 0x79, 0x6b, 0x5d, 0x28, 0x89, 0x41, 0x1d, 0x56, 0x41, 0xfb, 0x86, 0x9c, 0x7b, 0x0a, 0x58, 0x9c, 0x43, 0x25, 0x4f, 0x8c, 0x54, 0x38, 0xaa, 0xf5, 0xac, 0x42, 0x38, 0x32, 0xf0, 0x18, 0xd7, 0x9a, 0x51, 0xb9, 0x6f, 0x24, 0x2e, 0x2d, 0xe0, 0xc8, 0x51, 0xcc, 0x5f, 0xc2, 0xb2, 0x06, 0xbc, 0xa4, 0xb5, 0xbe, 0x83, 0x61, 0x25, 0xac, 0xa1, 0x44, 0xbb, 0xc3, 0x8c, 0x8c, 0x63, 0x8b, 0xe0, 0xd3, 0xbb, 0xe0, 0x25, 0xa1, 0xbe, 0x8b, 0x3d, 0x03, 0xd5, 0x92, 0x9b, 0xaa, 0x64, 0x9c, 0x35, 0x44, 0xa3, 0x2a, 0x91, 0x5e, 0x92, 0x6a, 0x38, 0x79, 0x1b, 0x13, 0x4a, 0x97, 0x1b, 0xc5, 0x2d, 0x1b, 0x6c, 0xa6, 0x25, 0xef, 0xb7, 0xc2, 0xf3, 0xbb, 0x47, 0xab, 0x51, 0xd4, 0x3c, 0x8e, 0x37, 0x4d, 0x16, 0xcd, 0xa8, 0x82, 0x20, 0x4b, 0x71, 0xca, 0xfe, 0x90, 0x93, 0xcb, 0x60, 0x78, 0xef, 0x2b, 0xdf, 0xad, 0x59, 0xed, 0xea, 0xf3, 0x6d, 0x0c, 0x1a, 0x4d, 0xc4, 0x25, 0xb9, 0xe7, 0x18, 0xc4, 0x51, 0x85, 0x22, 0x5a, 0x9c, 0x30, 0x84, 0xb7, 0x82, 0xbf, 0xe1, 0x63, 0x49, 0x2f, 0x8e, 0x84, 0x82, 0xec, 0x9a, 0xa0, 0x73, 0xf6, 0x90, 0x1f, 0xf3, 0xd1, 0x11, 0x7c, 0xe9, 0x17, 0xe1, 0x91, 0x22, 0xfa, 0x67, 0x65, 0x0d, 0x85, 0x8f, 0x8f, 0x82, 0xb3, 0x76, 0x69, 0x72, 0x3c, 0x22, 0x6d, 0x72, 0x16, 0x97, 0xe7, 0xae, 0x33, 0x59, 0xf5, 0xa6, 0xb0, 0x24, 0x24, 0xee, 0x87, 0x94, 0xcb, 0xea, 0xa6, 0x41, 0xed, 0xbb, 0xf7, 0x53, 0xb1, 0x03, 0xa5, 0xfe, 0x15, 0x8b, 0xe0, 0xba, 0x60, 0xd8, 0xa2, 0x12, 0xd4, 0x2f, 0x8c, 0x5c, 0x2a, 0xf2, 0x54, 0xbf, 0x1b, 0x9c, 0x80, 0xdf, 0x6f, 0x1c, 0xf0, 0x9d, 0x70, 0x79, 0x3c, 0xae, 0x1a, 0xbb, 0x46, 0x27, 0xb1, 0x78, 0x0f, 0x1b, 0xce, 0x7f, 0x61, 0x7e, 0xe5, 0x0f, 0x6b, 0xd4, 0xb0, 0x83, 0xb2, 0xfc, 0x7c, 0xd8, 0x44, 0xaf, 0xb7, 0x23, 0x80, 0xd5, 0xcb, 0x6b, 0x25, 0x5b, 0xf4, 0x7e, 0xa7, 0x1c, 0xad, 0x6c, 0x6c, 0x4d, 0xf0, 0x21, 0xf8, 0x1b, 0x54, 0x8f, 0x43, 0x2c, 0x18, 0xac, 0x36, 0x6c, 0x6a, 0xec, 0xd0, 0x3b, 0x6c, 0x8c, 0xe2, };
23091 static const u8 ed25519_1004_test_vectors_expected_sig[] = {
23092 	0x49, 0x5a, 0x8f, 0x99, 0x19, 0x41, 0xc6, 0x29, 0xbd, 0x64, 0x1a, 0x67, 0x47, 0x1a, 0xb8, 0x60, 0xbf, 0xd3, 0x9b, 0x72, 0xf2, 0x33, 0x55, 0xf7, 0x27, 0x09, 0x09, 0xd5, 0x30, 0x7c, 0x77, 0xb1, 0xb9, 0x4b, 0xae, 0x3e, 0xd1, 0x94, 0x50, 0x78, 0x0e, 0x90, 0x85, 0x30, 0x5f, 0x31, 0xb1, 0xe1, 0x68, 0x3f, 0xac, 0xf0, 0xd1, 0xfc, 0x88, 0x40, 0xae, 0xc7, 0x7d, 0xf6, 0x7a, 0xea, 0xb3, 0x02, };
23093 static const ec_test_case ed25519_1004_test_case = {
23094 	.name = "EDDSA25519-SHA512/wei25519 1004",
23095 	.ec_str_p = &wei25519_str_params,
23096 	.priv_key = ed25519_1004_test_vectors_priv_key,
23097 	.priv_key_len = sizeof(ed25519_1004_test_vectors_priv_key),
23098 	.nn_random = NULL,
23099 	.hash_type = SHA512,
23100 	.msg = (const char *)ed25519_1004_test_vectors_message,
23101 	.msglen = sizeof(ed25519_1004_test_vectors_message),
23102 	.sig_type = EDDSA25519,
23103 	.exp_sig = ed25519_1004_test_vectors_expected_sig,
23104 	.exp_siglen = sizeof(ed25519_1004_test_vectors_expected_sig),
23105 	.adata = NULL,
23106 	.adata_len = 0
23107 };
23108 
23109 /************************************************/
23110 static const u8 ed25519_1005_test_vectors_priv_key[] = {
23111 	0xee, 0x81, 0xe0, 0xfb, 0x05, 0x2e, 0x23, 0xad, 0x75, 0x9d, 0xe6, 0xaa, 0x98, 0x38, 0xde, 0x98, 0xe3, 0x6d, 0x48, 0x20, 0xdc, 0x0e, 0x1b, 0x7b, 0x3e, 0xf1, 0x14, 0x1a, 0xb9, 0xde, 0x33, 0x40, };
23112 static const u8 ed25519_1005_test_vectors_message[] = {
23113 	0x28, 0xd9, 0x9e, 0x95, 0x18, 0xb8, 0x82, 0x83, 0xc2, 0x20, 0xe7, 0x6d, 0xe2, 0x05, 0xd7, 0xb6, 0x16, 0x23, 0x59, 0xb1, 0xdf, 0xec, 0x1f, 0xba, 0xab, 0x98, 0xec, 0x0e, 0xf1, 0xdf, 0x8d, 0xa4, 0x0b, 0x6b, 0x7a, 0x77, 0x5e, 0x97, 0x28, 0x45, 0x0a, 0xeb, 0x23, 0x51, 0xfe, 0x5c, 0x16, 0xaf, 0xda, 0x3a, 0xec, 0x0d, 0x71, 0x04, 0x9d, 0xa4, 0xcb, 0x7d, 0x4c, 0x63, 0x71, 0x3a, 0x24, 0x10, 0xab, 0xb0, 0x22, 0xf8, 0x16, 0x11, 0xcc, 0x06, 0x45, 0x87, 0xc8, 0x04, 0x7d, 0x43, 0x83, 0xc0, 0x0c, 0x3c, 0x56, 0x2e, 0x9c, 0xee, 0xa3, 0x57, 0x75, 0x09, 0x53, 0x91, 0xb5, 0xf3, 0xdd, 0xa0, 0xe3, 0x73, 0xc4, 0xa7, 0x7f, 0xf6, 0x18, 0xa2, 0x8e, 0xf6, 0x87, 0x87, 0xeb, 0xfc, 0x3e, 0xbc, 0xcc, 0xc5, 0xd1, 0xce, 0x32, 0xdd, 0xf4, 0x3b, 0xfc, 0xe5, 0x72, 0x03, 0xda, 0x76, 0xa8, 0x66, 0x4b, 0x3c, 0x61, 0x6a, 0x88, 0x69, 0x28, 0x2d, 0xb0, 0xb7, 0x28, 0x11, 0xb5, 0xfd, 0x5a, 0x2a, 0x03, 0xa4, 0xff, 0x66, 0x72, 0x4b, 0x04, 0x89, 0xea, 0x2e, 0x10, 0x73, 0xd7, 0x81, 0xc3, 0xf1, 0x89, 0x11, 0x5d, 0x79, 0xba, 0x20, 0xa4, 0x6d, 0x1d, 0xfa, 0xf5, 0xb1, 0xa5, 0x84, 0x7b, 0x2a, 0x2e, 0x31, 0xb2, 0x80, 0x87, 0x37, 0x56, 0x9e, 0x60, 0xb5, 0x72, 0x31, 0xe6, 0xa9, 0x9a, 0xf2, 0x6f, 0x58, 0xaf, 0xeb, 0x15, 0x77, 0x08, 0x10, 0x47, 0x48, 0x12, 0xfe, 0x4a, 0xfa, 0xcf, 0x88, 0x45, 0x06, 0xb8, 0xc3, 0x14, 0xbc, 0x67, 0x51, 0xbb, 0x42, 0xb4, 0xbd, 0x6e, 0x87, 0xd2, 0xe5, 0xde, 0x70, 0xfe, 0xc5, 0xf0, 0x01, 0x4c, 0x42, 0x57, 0xb1, 0x34, 0x72, 0xa3, 0xb0, 0x11, 0x1a, 0x7a, 0x8c, 0xf8, 0x3b, 0x1d, 0xc0, 0xcf, 0x96, 0x20, 0x22, 0xcd, 0x44, 0x46, 0x8a, 0x3a, 0xb1, 0xf0, 0x01, 0x6b, 0x70, 0xca, 0xfb, 0x1d, 0x02, 0x46, 0xac, 0xd7, 0x05, 0x39, 0x37, 0xc9, 0xac, 0x40, 0x20, 0x7c, 0xf1, 0x3b, 0x50, 0xdd, 0x15, 0xe2, 0xa2, 0xe1, 0x5f, 0x50, 0xa0, 0x5b, 0xca, 0x2f, 0x28, 0xe7, 0x70, 0x26, 0x23, 0x71, 0xda, 0xce, 0xe0, 0x2e, 0x25, 0xb2, 0xa5, 0x96, 0x58, 0xed, 0x90, 0xc0, 0x60, 0x0f, 0xa2, 0x65, 0xb7, 0xde, 0x3d, 0x44, 0xf8, 0xef, 0x07, 0x21, 0xbf, 0x39, 0xec, 0x4d, 0x4e, 0xca, 0x58, 0x88, 0x52, 0x7b, 0x77, 0x80, 0x67, 0xb1, 0xd6, 0x59, 0xc0, 0x05, 0x14, 0xc8, 0xd7, 0x05, 0x62, 0x73, 0xa2, 0x94, 0xcb, 0xaf, 0xe4, 0x50, 0x90, 0xd0, 0x69, 0xbb, 0xd0, 0x9f, 0x92, 0xf4, 0x61, 0xe6, 0x48, 0xf3, 0xe6, 0x82, 0x88, 0x2c, 0x71, 0x57, 0x6e, 0x97, 0x4d, 0xeb, 0xb0, 0xcb, 0x7e, 0x0e, 0x83, 0x16, 0x40, 0x66, 0x60, 0x15, 0x0d, 0xab, 0xb5, 0x8e, 0x76, 0x24, 0x66, 0x14, 0xa2, 0x91, 0xc1, 0x2c, 0xe9, 0xe0, 0x34, 0x6c, 0x02, 0x77, 0x4d, 0x4d, 0x09, 0xce, 0xcc, 0x23, 0x69, 0x67, 0x12, 0xfe, 0xe2, 0x50, 0xc0, 0xbb, 0x5d, 0xf7, 0xa2, 0xa4, 0xc4, 0x3a, 0x55, 0x63, 0x33, 0x1b, 0xcb, 0xbf, 0x84, 0xbe, 0x3f, 0x2e, 0xeb, 0x06, 0x54, 0x53, 0x2e, 0x85, 0xec, 0x59, 0x7b, 0x53, 0xb3, 0x2f, 0x39, 0x54, 0xcc, 0xaf, 0x0c, 0xd4, 0x26, 0xde, 0xf9, 0x1e, 0xc4, 0xb2, 0x08, 0x41, 0x69, 0x48, 0xaf, 0x27, 0xde, 0x04, 0xd8, 0x32, 0x70, 0x58, 0x97, 0xa0, 0x4c, 0x5e, 0x24, 0xa2, 0xe8, 0x8b, 0x20, 0x04, 0x0f, 0xd4, 0xec, 0xa3, 0x08, 0x9f, 0xdb, 0x91, 0x8a, 0x92, 0xe3, 0x5c, 0x4d, 0x31, 0xda, 0x26, 0x85, 0x0b, 0x9d, 0xd3, 0x41, 0x18, 0xc7, 0x44, 0x49, 0xa8, 0x55, 0xff, 0x4b, 0xc9, 0xff, 0xf0, 0xd1, 0x44, 0x78, 0x39, 0x65, 0x4b, 0x00, 0x41, 0x79, 0x99, 0xfa, 0x4e, 0xb8, 0x91, 0x02, 0x13, 0x3c, 0xd3, 0x20, 0x40, 0x91, 0x53, 0x58, 0x49, 0x57, 0xc1, 0x04, 0x89, 0xdb, 0x4b, 0x72, 0x44, 0xc9, 0x59, 0x07, 0x98, 0x8e, 0x83, 0xdc, 0x82, 0x12, 0x71, 0xdc, 0x1a, 0xb6, 0x43, 0xd6, 0x99, 0x2d, 0x0f, 0xd8, 0x20, 0x49, 0x2a, 0xe6, 0x42, 0xe2, 0x4d, 0x19, 0xa1, 0x79, 0xfa, 0x75, 0xd9, 0x36, 0x3b, 0x32, 0x16, 0x62, 0x60, 0x6f, 0xd9, 0x4a, 0x47, 0xfd, 0xb2, 0xe6, 0x8d, 0x3f, 0x30, 0xc0, 0x46, 0x73, 0xf8, 0x09, 0xde, 0x01, 0x44, 0x94, 0x5e, 0xa4, 0xd4, 0x18, 0x3d, 0x48, 0xf1, 0x75, 0x07, 0x9e, 0xed, 0x50, 0x32, 0x3c, 0x6b, 0x19, 0x2e, 0x02, 0x0e, 0x16, 0x2a, 0x35, 0x03, 0xaa, 0x58, 0x2f, 0xb0, 0x8b, 0x40, 0x36, 0x24, 0xa2, 0x3e, 0x35, 0x7e, 0xed, 0xa0, 0x8d, 0x90, 0x43, 0x86, 0xf3, 0x58, 0xc3, 0x6c, 0x64, 0xd3, 0x14, 0xc7, 0x7c, 0xd9, 0xd4, 0xd2, 0x3d, 0x58, 0x1e, 0xe5, 0x3d, 0x81, 0xff, 0x97, 0xad, 0xa0, 0x19, 0xcf, 0xcf, 0x04, 0xeb, 0x9d, 0xcc, 0x1d, 0xe9, 0xb7, 0x4c, 0x3d, 0xb6, 0xb8, 0x11, 0x57, 0x8b, 0xd4, 0xf2, 0x19, 0xc5, 0xca, 0x48, 0xef, 0x4c, 0x82, 0x6b, 0x09, 0xe6, 0xc9, 0x6d, 0x03, 0x1f, 0x65, 0xdd, 0x48, 0xb6, 0xe7, 0x3d, 0x0c, 0x10, 0x05, 0x86, 0xb2, 0x1d, 0xf0, 0x29, 0x3a, 0x03, 0xd2, 0xed, 0x7e, 0x50, 0x09, 0xad, 0x02, 0x53, 0x40, 0xc2, 0x1d, 0x09, 0x06, 0x06, 0x91, 0xf5, 0xcd, 0x8a, 0xf2, 0xab, 0x12, 0xf9, 0xb8, 0x60, 0xee, 0x87, 0x81, 0x5e, 0x1a, 0x9f, 0x40, 0x0c, 0x2a, 0x6f, 0x63, 0x4e, 0xa8, 0xf9, 0xb3, 0x42, 0x5a, 0x08, 0xd1, 0x0b, 0x3c, 0x81, 0x53, 0x67, 0x38, 0x8f, 0x4d, 0x1b, 0xe3, 0x56, 0x31, 0x8e, 0xcf, 0x90, 0x35, 0xd0, 0xee, 0x97, 0x5a, 0xff, 0xa8, 0x59, 0xca, 0xac, 0x28, 0xeb, 0xcc, 0xd0, 0x59, 0x9b, 0xb2, 0xf6, 0xf3, 0x52, 0x36, 0x61, 0xbd, 0x17, 0x8f, 0xc9, 0xe4, 0xca, 0xc3, 0x78, 0xbb, 0x9d, 0xd4, 0x71, 0x6b, 0xb0, 0x69, 0x23, 0xfd, 0x2b, 0xbd, 0x56, 0xc9, 0x59, 0xc4, 0x2b, 0x95, 0xd5, 0x01, 0x93, 0xf8, 0xbf, 0x29, 0x9f, 0xcc, 0xa3, 0xb2, 0xee, 0xa9, 0x4e, 0xc5, 0xf9, 0x85, 0x83, 0x92, 0x4c, 0x08, 0x04, 0x16, 0xe2, 0x8b, 0x54, 0xfe, 0x57, 0x65, 0x84, 0x58, 0xb0, 0x55, 0xce, 0x4d, 0xe8, 0xa7, 0x5f, 0xc8, 0x27, 0x15, 0xca, 0xe9, 0x1d, 0x37, 0x5c, 0xf6, 0x92, 0x81, 0x37, 0x80, 0x51, 0xbb, 0x61, 0xfd, 0xd7, 0xbb, 0x00, 0x68, 0xf6, 0x3e, 0xfa, 0x6d, 0x6e, 0x83, 0xd8, 0xfd, 0x42, 0x57, 0xaf, 0x80, 0x97, 0x0f, 0x4a, 0x9e, 0x69, 0x24, 0xb2, 0xde, 0x0a, 0xd9, 0x66, 0xdf, 0xfe, 0x6f, 0xa4, 0xa1, 0x13, 0xb0, 0xe7, 0x72, 0xf1, 0x76, 0x87, 0x85, 0xb3, 0xb4, 0x20, 0x49, 0xf7, 0x6c, 0x48, 0xad, 0x80, 0xf2, 0xc6, 0x7f, 0xb0, 0xf9, 0x1a, 0x5f, 0xc4, 0x10, 0x79, 0x12, 0x52, 0x0d, 0x8d, 0x68, 0x3c, 0x06, 0x2c, 0x3a, 0x22, 0x2b, 0xcd, 0xa7, 0xe7, 0x10, 0xba, 0xcd, 0x47, 0x8e, 0xe8, 0x83, 0x67, 0xb6, 0xa0, 0x59, 0xa4, 0x52, 0xfd, 0x26, 0xf1, 0x14, 0xa5, 0xac, 0xbd, 0x69, 0x79, 0xba, 0x01, 0x9f, 0x7d, 0xa6, 0x8a, 0xc0, 0x4a, 0x19, 0x30, 0x26, 0xbc, 0x1c, 0x27, 0xe4, 0x83, 0x7b, 0x1d, 0xe2, 0x9c, 0xce, 0x09, 0x0e, 0x33, 0x80, 0xd5, 0x05, 0x1a, 0x58, 0x64, 0x09, 0xe6, 0x28, 0xe3, 0x14, 0x56, 0x65, 0xbb, 0x1d, 0x84, 0xec, 0xd8, };
23114 static const u8 ed25519_1005_test_vectors_expected_sig[] = {
23115 	0xf0, 0xd8, 0x73, 0xbe, 0x15, 0xcf, 0x45, 0x4c, 0x74, 0x34, 0xde, 0xab, 0x71, 0xde, 0x25, 0xcf, 0xe9, 0x9e, 0x81, 0xa4, 0x8d, 0x2d, 0xce, 0x6a, 0x35, 0xd1, 0x63, 0x37, 0x14, 0xdf, 0x0f, 0x8b, 0x40, 0x29, 0xe0, 0x58, 0x25, 0x11, 0xef, 0xc4, 0xd0, 0x68, 0x92, 0xf6, 0x72, 0x85, 0x02, 0x46, 0xbc, 0xf0, 0x70, 0xc4, 0x6f, 0xad, 0xc2, 0xfa, 0xab, 0x44, 0xdc, 0x43, 0x50, 0x45, 0xde, 0x00, };
23116 static const ec_test_case ed25519_1005_test_case = {
23117 	.name = "EDDSA25519-SHA512/wei25519 1005",
23118 	.ec_str_p = &wei25519_str_params,
23119 	.priv_key = ed25519_1005_test_vectors_priv_key,
23120 	.priv_key_len = sizeof(ed25519_1005_test_vectors_priv_key),
23121 	.nn_random = NULL,
23122 	.hash_type = SHA512,
23123 	.msg = (const char *)ed25519_1005_test_vectors_message,
23124 	.msglen = sizeof(ed25519_1005_test_vectors_message),
23125 	.sig_type = EDDSA25519,
23126 	.exp_sig = ed25519_1005_test_vectors_expected_sig,
23127 	.exp_siglen = sizeof(ed25519_1005_test_vectors_expected_sig),
23128 	.adata = NULL,
23129 	.adata_len = 0
23130 };
23131 
23132 /************************************************/
23133 static const u8 ed25519_1006_test_vectors_priv_key[] = {
23134 	0x69, 0xd0, 0x1d, 0x82, 0x91, 0x13, 0x08, 0x1c, 0xbf, 0x5d, 0x0c, 0x6e, 0xf7, 0x7b, 0x21, 0x77, 0x5c, 0x8d, 0x9b, 0x68, 0x00, 0x00, 0x05, 0x6f, 0x03, 0xc7, 0x5a, 0x7d, 0x0a, 0x05, 0x87, 0xd2, };
23135 static const u8 ed25519_1006_test_vectors_message[] = {
23136 	0x0b, 0x9e, 0x11, 0x0f, 0x29, 0xd1, 0x98, 0x16, 0xa1, 0x7b, 0x2c, 0x75, 0x47, 0x8f, 0x13, 0xce, 0xe9, 0x53, 0x81, 0x1a, 0x19, 0x83, 0x01, 0x4c, 0xb7, 0xeb, 0x0f, 0x75, 0x52, 0x69, 0x12, 0x04, 0x4c, 0x3e, 0xa6, 0x82, 0x97, 0x80, 0xe6, 0x57, 0xf8, 0x17, 0xc5, 0x59, 0x7d, 0x46, 0x61, 0x08, 0x0d, 0x90, 0x34, 0xc9, 0x77, 0x87, 0x22, 0x41, 0x8f, 0x2c, 0x3a, 0xee, 0xca, 0xef, 0x6b, 0x69, 0x0c, 0x5b, 0xd3, 0xb5, 0x93, 0x70, 0x10, 0x86, 0x98, 0x8e, 0x43, 0x40, 0xae, 0xc3, 0x4e, 0x01, 0x72, 0x75, 0x8e, 0xb2, 0x40, 0x87, 0xd0, 0x3a, 0x8f, 0x76, 0xe7, 0xcb, 0xca, 0x53, 0xaa, 0xaf, 0xc4, 0xd2, 0x15, 0x5c, 0x75, 0x32, 0xab, 0x54, 0xbe, 0x48, 0x87, 0x26, 0x53, 0x06, 0x6f, 0xa1, 0xfd, 0xd5, 0x4a, 0xcf, 0xe9, 0xda, 0xae, 0xca, 0x35, 0x6c, 0x29, 0x0e, 0x6b, 0xe6, 0x33, 0x55, 0xb6, 0xd9, 0xfc, 0x52, 0xeb, 0x5e, 0x4f, 0xcc, 0xbb, 0xc6, 0x08, 0x35, 0x07, 0x13, 0x2d, 0xe4, 0x85, 0xbf, 0xae, 0x9f, 0x42, 0xe1, 0x97, 0x12, 0x23, 0x2b, 0x71, 0x64, 0x02, 0xc2, 0x3f, 0xea, 0x74, 0xef, 0xa6, 0x9d, 0x73, 0xc8, 0xc2, 0xe3, 0xa8, 0x66, 0x2b, 0x8b, 0x65, 0xb0, 0xfd, 0x00, 0x77, 0x41, 0x01, 0x3e, 0x1f, 0x6e, 0x3c, 0xfe, 0x43, 0x45, 0xd5, 0xc8, 0x30, 0x68, 0x2f, 0xe6, 0x00, 0x21, 0xd7, 0x08, 0xe1, 0x0a, 0x9e, 0x9f, 0x40, 0x52, 0xff, 0x7a, 0x6a, 0xbf, 0x28, 0xac, 0xb1, 0xd6, 0xb5, 0xfb, 0x03, 0x8e, 0xed, 0x3f, 0x72, 0x51, 0x3c, 0x35, 0x5b, 0xbf, 0xd5, 0xc2, 0x27, 0x4f, 0xa8, 0x5f, 0xc4, 0xf4, 0x46, 0x97, 0x4b, 0x2d, 0x1b, 0xc0, 0x36, 0x50, 0x7a, 0x1e, 0xb5, 0xfc, 0xf5, 0x5d, 0xbd, 0x44, 0x21, 0x0e, 0x53, 0x82, 0x74, 0xde, 0x80, 0x8b, 0x90, 0x0b, 0xf1, 0xc0, 0xfc, 0xc0, 0x24, 0x12, 0x70, 0xdb, 0x8d, 0xbd, 0xcd, 0x88, 0x34, 0x9d, 0x67, 0x22, 0x4f, 0x08, 0x7e, 0x5f, 0x07, 0xf6, 0x99, 0xb0, 0xba, 0xe6, 0x8b, 0x2e, 0xbc, 0x9a, 0x4e, 0x27, 0xc7, 0x0d, 0x3a, 0xc7, 0xd9, 0x96, 0xfa, 0x7d, 0x4d, 0xab, 0xd5, 0x68, 0x37, 0x8e, 0x3f, 0x93, 0x90, 0x5b, 0x1c, 0x89, 0xc6, 0x52, 0xd3, 0x84, 0xc1, 0x6c, 0x2b, 0xcb, 0x1c, 0x98, 0x44, 0xc3, 0x8f, 0x71, 0xbb, 0x13, 0xe0, 0xc6, 0xa2, 0xea, 0x95, 0xb6, 0x12, 0xe3, 0x90, 0xc5, 0xf8, 0x6d, 0x24, 0x8e, 0xa5, 0x31, 0xf2, 0xec, 0x6f, 0x63, 0x9a, 0x40, 0x2d, 0xfa, 0xcc, 0xf3, 0x72, 0x17, 0x00, 0x53, 0x44, 0x03, 0x07, 0x45, 0xd1, 0xf1, 0xe5, 0x20, 0xcc, 0x19, 0x5d, 0xaf, 0xdd, 0x7f, 0x29, 0x5f, 0x37, 0x7b, 0x8d, 0x61, 0x47, 0x16, 0x70, 0x38, 0x36, 0x21, 0x9b, 0xb7, 0xb0, 0x9f, 0xea, 0x7a, 0xae, 0x9a, 0xc3, 0x3e, 0x42, 0xdc, 0xab, 0x65, 0xcc, 0x61, 0x42, 0xfc, 0xd8, 0xce, 0x15, 0xe9, 0x77, 0x17, 0xfd, 0xb3, 0x3e, 0x95, 0x38, 0xc4, 0x4f, 0x6c, 0xd9, 0xc1, 0xc6, 0x5d, 0xb6, 0x27, 0x51, 0xf5, 0x52, 0xf8, 0x70, 0xf1, 0x01, 0x42, 0xc9, 0x6f, 0x9d, 0xf1, 0x85, 0x5a, 0xbb, 0x39, 0xe4, 0x27, 0x06, 0xa5, 0x63, 0xab, 0x15, 0x45, 0x11, 0xfd, 0xce, 0x68, 0x7c, 0x95, 0x76, 0xf9, 0xed, 0xc3, 0xb4, 0xba, 0x55, 0x34, 0x6c, 0xe6, 0x68, 0x02, 0xff, 0xfe, 0xf4, 0xb1, 0xb5, 0xe1, 0x20, 0x15, 0xce, 0x8b, 0x57, 0xde, 0x54, 0x58, 0xca, 0xa0, 0xda, 0xf3, 0x41, 0x96, 0x81, 0x28, 0x58, 0x42, 0x88, 0xc2, 0xf2, 0x7c, 0xbf, 0xb7, 0x6e, 0xab, 0x28, 0x6b, 0xac, 0x5f, 0x66, 0xaa, 0xd0, 0x04, 0x9e, 0x0c, 0xa6, 0x0a, 0x90, 0x14, 0xe1, 0x79, 0x01, 0xc4, 0x13, 0x0e, 0x83, 0xce, 0xae, 0xb4, 0xc2, 0x71, 0x3e, 0x97, 0x1a, 0x23, 0x5e, 0xff, 0x99, 0x5a, 0x81, 0x3a, 0xe4, 0xea, 0x64, 0xa5, 0x83, 0xff, 0xde, 0xfd, 0xac, 0x82, 0xac, 0x76, 0xea, 0xf4, 0xd4, 0x7c, 0x4a, 0xc8, 0x25, 0x0f, 0xcb, 0xaf, 0xd6, 0xb8, 0x8f, 0xae, 0xb4, 0x80, 0x15, 0xf5, 0xb4, 0x2b, 0x53, 0x34, 0xa5, 0x0b, 0x31, 0xd4, 0x50, 0x2e, 0xa4, 0x91, 0xda, 0x90, 0xdc, 0xe9, 0x3c, 0x08, 0xfd, 0x56, 0xf5, 0xc5, 0x8e, 0xed, 0xb3, 0x79, 0x16, 0x6a, 0x23, 0x76, 0x2b, 0xe5, 0xe4, 0xad, 0xea, 0xa6, 0xf4, 0xae, 0x1c, 0x24, 0xe0, 0xca, 0xc4, 0xdd, 0xca, 0x03, 0x83, 0x45, 0x85, 0x60, 0xcd, 0xc4, 0x8b, 0x8c, 0xd1, 0xf4, 0x2a, 0x3b, 0xa2, 0xf6, 0xff, 0xb6, 0x07, 0x79, 0x09, 0xfc, 0xb2, 0x94, 0xad, 0x1e, 0xf4, 0xa4, 0x4c, 0x22, 0xec, 0x4b, 0x39, 0x87, 0xdd, 0xbe, 0xef, 0x32, 0x5b, 0x98, 0xce, 0xd5, 0x68, 0x15, 0xea, 0x7d, 0x5f, 0xcc, 0xf5, 0xaf, 0xdf, 0xe9, 0x8e, 0x0e, 0x6d, 0x92, 0x0f, 0x7a, 0xda, 0x2e, 0xb5, 0xc9, 0x16, 0x24, 0xc7, 0x6c, 0xbb, 0xa2, 0x99, 0x3a, 0x9c, 0x7a, 0x55, 0x02, 0x1d, 0x12, 0x7a, 0x66, 0x7b, 0x39, 0xe2, 0x35, 0xdf, 0x4f, 0x81, 0xde, 0xe7, 0xdd, 0x14, 0x28, 0x98, 0x77, 0x8d, 0xbd, 0x92, 0x13, 0x5b, 0x70, 0xb3, 0xac, 0xf5, 0x9f, 0x6c, 0x29, 0xa2, 0xc9, 0xd4, 0xa7, 0x00, 0x6e, 0xf1, 0x1a, 0x91, 0x8b, 0x3a, 0x29, 0x06, 0x26, 0x4a, 0x15, 0xd6, 0xb5, 0x29, 0x30, 0x8c, 0xbc, 0x89, 0xf8, 0x56, 0x01, 0xfc, 0x1e, 0xa1, 0x31, 0x4d, 0x67, 0xf7, 0x56, 0x6c, 0xf1, 0x09, 0x16, 0x5c, 0x7f, 0x92, 0xde, 0x1a, 0x18, 0xd7, 0x0d, 0xeb, 0xe0, 0x24, 0x34, 0x9d, 0xb3, 0x56, 0x0a, 0x6e, 0x52, 0x7e, 0x2a, 0xc3, 0xe0, 0x67, 0x89, 0x46, 0x87, 0x04, 0xe6, 0xb8, 0xf1, 0x87, 0x1f, 0x16, 0xba, 0xe9, 0x82, 0x73, 0x92, 0xb4, 0x18, 0xf1, 0x08, 0x6c, 0xc4, 0x97, 0x08, 0x6c, 0xed, 0x14, 0xb1, 0x24, 0x9d, 0x6d, 0x87, 0x94, 0xf2, 0x3b, 0xb8, 0x77, 0x9d, 0x41, 0x86, 0x48, 0xf2, 0x15, 0x56, 0x56, 0xa6, 0xfd, 0xa7, 0x44, 0x0c, 0x56, 0x28, 0x4d, 0x9b, 0x21, 0x88, 0xfa, 0x7d, 0x17, 0x36, 0xbc, 0xcc, 0x9c, 0xff, 0x0b, 0xe5, 0xb1, 0xe1, 0xf5, 0x51, 0xff, 0x81, 0x37, 0xff, 0x59, 0x66, 0xed, 0x9d, 0x0f, 0x7f, 0x01, 0xc3, 0xdf, 0xf2, 0x98, 0xe9, 0x10, 0x2f, 0xfb, 0xd3, 0x24, 0xbf, 0xca, 0x5f, 0xfe, 0x09, 0x68, 0xe6, 0x6f, 0x9d, 0x82, 0xf4, 0x87, 0xd3, 0x03, 0x93, 0x4f, 0x27, 0xf7, 0x8b, 0x28, 0x37, 0x8e, 0xb7, 0x2c, 0x38, 0x27, 0x29, 0x62, 0xa5, 0xf7, 0x35, 0xd7, 0x39, 0x2e, 0x5d, 0x33, 0x3f, 0xd8, 0x6d, 0xe1, 0x67, 0x26, 0x9c, 0x17, 0xa1, 0x65, 0xb9, 0x2d, 0x31, 0xa4, 0x88, 0x0a, 0x41, 0xe1, 0x36, 0xf7, 0x18, 0x96, 0x0a, 0x91, 0x9b, 0x3d, 0x7c, 0x4e, 0x74, 0xcb, 0xd7, 0x3c, 0x73, 0xf9, 0x21, 0xbe, 0x51, 0x3f, 0x73, 0x9a, 0xff, 0xb2, 0xe4, 0x1f, 0x80, 0x42, 0x6b, 0xb8, 0xcf, 0xb4, 0x56, 0x4b, 0x98, 0xfc, 0x4d, 0xe5, 0x32, 0x55, 0xce, 0x3f, 0x98, 0xb4, 0xd2, 0x2a, 0xe6, 0xfc, 0xe9, 0x19, 0x0b, 0x55, 0xbf, 0x2c, 0x93, 0x86, 0x1c, 0x1d, 0xca, 0xc1, 0x01, 0xb5, 0xe1, 0x6c, 0xf0, 0x99, 0x91, 0xc5, 0xde, 0xfa, 0x33, 0xf8, 0xd5, 0x10, 0x56, 0xd9, 0x34, 0xbb, 0x4b, 0x47, 0x7b, 0x65, 0x20, 0xd4, 0xc7, 0xae, 0x22, 0xea, 0x7f, 0xb3, 0x10, 0x9d, 0xe7, 0xf4, };
23137 static const u8 ed25519_1006_test_vectors_expected_sig[] = {
23138 	0x40, 0x8c, 0xef, 0xcf, 0x01, 0x41, 0x7e, 0x2d, 0xc6, 0xa8, 0xa1, 0x82, 0x84, 0xe4, 0x11, 0x65, 0x7f, 0x03, 0x92, 0x50, 0xc3, 0x12, 0x78, 0xdb, 0x28, 0x19, 0xf9, 0xea, 0xea, 0x42, 0x93, 0xfb, 0xf6, 0x83, 0x1a, 0x28, 0x01, 0xfc, 0x1e, 0xa6, 0x87, 0x16, 0x57, 0xb8, 0x41, 0xe1, 0x73, 0xf4, 0x51, 0xb0, 0xd5, 0x75, 0xa9, 0x37, 0x9e, 0x35, 0x85, 0x7e, 0x8c, 0x72, 0x97, 0xfa, 0x14, 0x04, };
23139 static const ec_test_case ed25519_1006_test_case = {
23140 	.name = "EDDSA25519-SHA512/wei25519 1006",
23141 	.ec_str_p = &wei25519_str_params,
23142 	.priv_key = ed25519_1006_test_vectors_priv_key,
23143 	.priv_key_len = sizeof(ed25519_1006_test_vectors_priv_key),
23144 	.nn_random = NULL,
23145 	.hash_type = SHA512,
23146 	.msg = (const char *)ed25519_1006_test_vectors_message,
23147 	.msglen = sizeof(ed25519_1006_test_vectors_message),
23148 	.sig_type = EDDSA25519,
23149 	.exp_sig = ed25519_1006_test_vectors_expected_sig,
23150 	.exp_siglen = sizeof(ed25519_1006_test_vectors_expected_sig),
23151 	.adata = NULL,
23152 	.adata_len = 0
23153 };
23154 
23155 /************************************************/
23156 static const u8 ed25519_1007_test_vectors_priv_key[] = {
23157 	0x4b, 0x8e, 0xd2, 0x97, 0x31, 0xf1, 0x04, 0x79, 0x5e, 0x97, 0xde, 0xe7, 0xc8, 0xb4, 0x01, 0xa0, 0x2a, 0xfa, 0xa9, 0xa7, 0x95, 0xe6, 0x13, 0x35, 0x3d, 0x2b, 0x95, 0x00, 0x17, 0x65, 0x02, 0x7a, };
23158 static const u8 ed25519_1007_test_vectors_message[] = {
23159 	0xcb, 0xb5, 0xf1, 0x3a, 0x0e, 0xf2, 0x83, 0x7b, 0x80, 0x5d, 0x3b, 0x78, 0x51, 0x09, 0xf9, 0xf2, 0xe0, 0xd0, 0xa0, 0x17, 0xbf, 0xe7, 0x69, 0x2d, 0x91, 0xec, 0x23, 0xdd, 0xab, 0x78, 0x17, 0x33, 0x0b, 0xef, 0x24, 0x7f, 0xd9, 0x1a, 0xb2, 0xc7, 0x7d, 0xd4, 0x41, 0x25, 0x19, 0xcb, 0xd3, 0x84, 0x75, 0xce, 0x0c, 0xb3, 0x9b, 0x14, 0x80, 0x09, 0x2b, 0xc7, 0x38, 0xd4, 0x15, 0x2b, 0x8a, 0x6d, 0x55, 0x24, 0x8e, 0x3b, 0x9f, 0x32, 0xcd, 0xcd, 0x15, 0xec, 0x5d, 0x05, 0x9e, 0xc3, 0xc8, 0x84, 0x75, 0x54, 0xee, 0x47, 0x00, 0x53, 0x94, 0x97, 0x4d, 0x8e, 0xb2, 0x35, 0x92, 0xd1, 0x7f, 0x5a, 0x39, 0x6e, 0x3c, 0x19, 0xf8, 0xe8, 0x98, 0x37, 0x06, 0x79, 0xfe, 0xf5, 0x31, 0x8c, 0x4d, 0xd2, 0x99, 0xc6, 0x21, 0x7d, 0x6a, 0xbc, 0xc9, 0xb6, 0x1a, 0x5b, 0x2d, 0x0c, 0xfe, 0xf6, 0x95, 0xd1, 0x70, 0xca, 0x20, 0xa8, 0x3d, 0x6f, 0xd3, 0xc6, 0x66, 0xc8, 0xfd, 0x1c, 0x10, 0xad, 0x97, 0x0e, 0x2f, 0xa6, 0xaf, 0x10, 0xff, 0x0e, 0xd0, 0xcb, 0xfe, 0x75, 0x22, 0x46, 0xd0, 0x3f, 0x3a, 0x3c, 0x60, 0x32, 0xdb, 0xb3, 0x19, 0xbc, 0xfd, 0xac, 0x4d, 0xaf, 0xc5, 0x0b, 0xc3, 0xe6, 0xbf, 0x59, 0x5f, 0x49, 0x1d, 0xec, 0x38, 0x8b, 0x34, 0x41, 0xb8, 0xce, 0xe0, 0xdf, 0x91, 0xf5, 0x5c, 0xc7, 0x80, 0x7d, 0x07, 0xf8, 0xf5, 0x41, 0xed, 0x73, 0x22, 0xff, 0xc3, 0x9d, 0x18, 0xf8, 0x95, 0x60, 0xe4, 0x12, 0x3a, 0xec, 0x1d, 0x77, 0x96, 0x9c, 0xf1, 0x87, 0x77, 0x86, 0xf4, 0xcf, 0x94, 0xb1, 0x77, 0x0b, 0x10, 0x90, 0x65, 0x5e, 0x8c, 0x72, 0xee, 0xce, 0xa4, 0x57, 0x2e, 0x46, 0xf5, 0x80, 0xf9, 0x63, 0x96, 0x6d, 0xb2, 0xa1, 0x08, 0x5e, 0xea, 0xbc, 0x57, 0xbf, 0x4a, 0x84, 0x72, 0x4b, 0x9c, 0x85, 0x99, 0xa4, 0x33, 0xab, 0xf5, 0x8b, 0xca, 0x80, 0x40, 0x91, 0xd3, 0xd5, 0xe6, 0xe5, 0x04, 0x8e, 0xc2, 0x7b, 0xf8, 0x12, 0x9b, 0x67, 0x0c, 0xc2, 0xc8, 0x8d, 0x9c, 0xac, 0x47, 0x18, 0x59, 0xf4, 0x69, 0xb9, 0x18, 0xf3, 0xf6, 0xd7, 0x0f, 0x7d, 0x66, 0x63, 0x50, 0x1f, 0xfb, 0xef, 0xef, 0x02, 0x6d, 0x79, 0xea, 0x70, 0x92, 0x7c, 0xcf, 0x60, 0x75, 0xee, 0x51, 0x05, 0x42, 0x33, 0x21, 0xe1, 0x1a, 0xee, 0x9a, 0xd1, 0x6f, 0x98, 0x7e, 0xfb, 0xdd, 0x00, 0xb6, 0x2a, 0xff, 0x69, 0x8e, 0x52, 0x1a, 0xdf, 0x92, 0x03, 0xb1, 0x5e, 0x9f, 0x0f, 0x3a, 0xd0, 0x7d, 0xca, 0xd9, 0xdd, 0xcc, 0xaa, 0xe9, 0xb4, 0x90, 0x24, 0x7f, 0x12, 0xc3, 0x11, 0xde, 0xe6, 0xb7, 0x3b, 0x8f, 0x91, 0x24, 0xfd, 0xce, 0x12, 0x99, 0xb4, 0x7f, 0xb1, 0x91, 0x4c, 0xee, 0x7e, 0x3a, 0x07, 0x81, 0x4e, 0x31, 0x2c, 0x3c, 0xe5, 0x69, 0x27, 0x67, 0x2c, 0x51, 0xb3, 0x18, 0x59, 0x80, 0xcd, 0xe5, 0x7f, 0x3a, 0x75, 0x9b, 0x50, 0xbc, 0xfc, 0x4c, 0xb0, 0x75, 0x3b, 0x95, 0x4d, 0x97, 0x13, 0x5d, 0xeb, 0x2a, 0x05, 0x32, 0xe9, 0x8b, 0x66, 0xf3, 0x9a, 0x7c, 0x08, 0xcf, 0x4d, 0x54, 0x85, 0x39, 0xe2, 0xeb, 0x9f, 0x42, 0x2f, 0x66, 0x49, 0x65, 0x88, 0x93, 0xa7, 0xc3, 0xc2, 0x5a, 0x4f, 0xc9, 0x01, 0xf8, 0xc3, 0x98, 0xb8, 0xc7, 0x27, 0x33, 0x91, 0x1a, 0x00, 0x72, 0xed, 0x6b, 0xd2, 0xf4, 0x18, 0x93, 0x89, 0xae, 0x10, 0xa8, 0x14, 0xf6, 0x48, 0xd7, 0x1f, 0x69, 0xc3, 0x7e, 0x82, 0x95, 0x78, 0x44, 0x28, 0x18, 0x3b, 0x93, 0xc8, 0x01, 0x3b, 0x96, 0x4a, 0x9f, 0xef, 0x86, 0xb4, 0x8f, 0x48, 0x93, 0x16, 0xbc, 0x22, 0x2e, 0x96, 0xb3, 0xbd, 0x15, 0xff, 0x14, 0x9b, 0x96, 0x82, 0x03, 0x29, 0x55, 0x1c, 0x15, 0xe0, 0xd0, 0x95, 0xd1, 0x56, 0x9b, 0x1e, 0x21, 0x31, 0xc7, 0x87, 0x51, 0x56, 0x5c, 0x30, 0x41, 0xf2, 0x97, 0x85, 0x39, 0x5b, 0x97, 0x15, 0x13, 0x17, 0xf6, 0x2e, 0x35, 0x82, 0xe4, 0x07, 0xb1, 0x64, 0x9e, 0x60, 0xd0, 0x3a, 0x85, 0x99, 0x12, 0x0a, 0x30, 0x2a, 0x46, 0x95, 0xfa, 0x86, 0x2b, 0x41, 0x20, 0xf9, 0x4d, 0x22, 0xec, 0xae, 0x72, 0x39, 0x8d, 0x20, 0x94, 0xd1, 0x08, 0xad, 0x2d, 0xbc, 0x1b, 0x95, 0x97, 0x35, 0x90, 0x21, 0x42, 0xaa, 0x5f, 0xe6, 0xe7, 0x99, 0x65, 0x59, 0xf6, 0xf6, 0x01, 0x44, 0x8a, 0xea, 0x02, 0xf3, 0x56, 0xf8, 0xdc, 0xdd, 0x14, 0x43, 0x40, 0xeb, 0x36, 0x19, 0xf9, 0x86, 0x5b, 0xf7, 0x67, 0x2a, 0xea, 0x32, 0x6c, 0x4e, 0x93, 0xc9, 0x9f, 0x0e, 0xd1, 0xf9, 0xed, 0x86, 0x6b, 0xe1, 0x5d, 0x3a, 0xf2, 0x67, 0x5f, 0x6d, 0xd6, 0xe2, 0x96, 0x60, 0x2c, 0xa3, 0x73, 0xa8, 0x15, 0xb0, 0xbe, 0x46, 0xbc, 0x2a, 0x3f, 0xbb, 0xa0, 0x6b, 0x88, 0x05, 0xc7, 0x31, 0xfe, 0x08, 0x00, 0x7d, 0xaa, 0x06, 0x05, 0x09, 0x61, 0xb2, 0x4d, 0x14, 0x69, 0x3a, 0x72, 0x89, 0x8c, 0xcf, 0xb8, 0xb8, 0xfe, 0xdc, 0x60, 0xa4, 0xee, 0xf8, 0xff, 0x79, 0xb6, 0xdd, 0x75, 0x92, 0x59, 0x18, 0x33, 0xb5, 0x76, 0xef, 0x48, 0x29, 0x4e, 0x5e, 0x04, 0x85, 0x94, 0x2e, 0x57, 0xc1, 0x19, 0x60, 0x2e, 0xdd, 0xf8, 0x8b, 0x1f, 0xae, 0xa5, 0x17, 0xf2, 0xfc, 0x2e, 0x3d, 0x14, 0xd2, 0x46, 0xa5, 0x2c, 0xbd, 0x71, 0xa1, 0x08, 0xc6, 0x6b, 0x6c, 0xc4, 0xf2, 0xd4, 0x58, 0x04, 0xa2, 0x82, 0xec, 0xed, 0xb1, 0xb0, 0xad, 0x3d, 0xc3, 0xb4, 0x88, 0x0a, 0xb2, 0xff, 0x78, 0xb8, 0xdd, 0xde, 0x48, 0xf7, 0x46, 0x6c, 0x14, 0xfe, 0xd3, 0x49, 0xe9, 0x5b, 0x50, 0x53, 0xab, 0xf1, 0xbf, 0x09, 0x91, 0x12, 0x60, 0x31, 0xd9, 0x75, 0x47, 0xd1, 0x43, 0xc2, 0xae, 0x16, 0x49, 0x28, 0xb6, 0x1c, 0x07, 0x08, 0xaf, 0x8c, 0xa3, 0xe4, 0xf5, 0x51, 0x54, 0xd1, 0x3d, 0x75, 0xe9, 0x7d, 0xb4, 0xba, 0x3e, 0x69, 0xd3, 0x6e, 0x9b, 0x37, 0x08, 0x23, 0x68, 0xc2, 0xf7, 0x21, 0xbd, 0x3f, 0x95, 0x12, 0x6a, 0x1e, 0x00, 0x4e, 0xb2, 0xa1, 0xbf, 0x26, 0x83, 0x43, 0xae, 0x21, 0xd2, 0x99, 0x50, 0x44, 0xa2, 0xca, 0xdd, 0x67, 0xff, 0xac, 0x9e, 0x15, 0x38, 0x17, 0x5b, 0x3c, 0xc4, 0x4d, 0xb5, 0xd2, 0x6f, 0x1d, 0x5c, 0xc8, 0x9c, 0xa0, 0xe1, 0xc1, 0xee, 0x85, 0x37, 0xa8, 0xa9, 0x1d, 0x32, 0x4c, 0x2e, 0x02, 0xe1, 0x8b, 0x9f, 0xb9, 0x73, 0x0d, 0x6d, 0xda, 0x55, 0xf7, 0x2d, 0x84, 0x33, 0x89, 0x69, 0x3e, 0xbf, 0xcb, 0xa7, 0xfb, 0xe1, 0xa0, 0xbc, 0xff, 0xb9, 0xaa, 0x28, 0x4f, 0x4a, 0xe6, 0x6f, 0x44, 0xa8, 0xb8, 0x93, 0x02, 0x98, 0x3b, 0x22, 0x73, 0x6d, 0x0c, 0x72, 0xd6, 0xa0, 0x44, 0xe4, 0x29, 0x16, 0x24, 0x24, 0x3a, 0x4e, 0x0c, 0xe6, 0x5d, 0x5e, 0x53, 0x46, 0xd6, 0x7f, 0xed, 0x37, 0x60, 0xdd, 0xb0, 0xc5, 0x10, 0xb5, 0x0f, 0xf3, 0xee, 0xf0, 0xa1, 0x8a, 0x26, 0x7d, 0xe7, 0x30, 0x47, 0x6d, 0xd8, 0x2d, 0xff, 0x70, 0x72, 0xcb, 0xa0, 0x98, 0x48, 0x25, 0xa0, 0x04, 0xdd, 0x4b, 0xcd, 0x8c, 0x37, 0xfd, 0xaf, 0x1f, 0x68, 0x3d, 0x1d, 0x93, 0x80, 0xe1, 0x35, 0xa9, 0x5d, 0x24, 0xb8, 0x9f, 0xad, 0x0b, 0xe9, 0x41, 0xc5, 0x48, 0x25, 0x1b, 0xec, 0x90, 0xcc, 0xae, 0x01, 0x5b, 0xc0, 0x56, 0x7d, 0xa8, 0x4b, 0x37, 0x1e, 0x50, };
23160 static const u8 ed25519_1007_test_vectors_expected_sig[] = {
23161 	0x23, 0x45, 0x88, 0x66, 0x86, 0xeb, 0x39, 0xb5, 0x19, 0x9c, 0xaa, 0xa9, 0x61, 0x5b, 0xc6, 0xb4, 0x89, 0x6f, 0x07, 0x6e, 0x8b, 0xd7, 0x36, 0xc0, 0x03, 0x8a, 0x65, 0x17, 0xf9, 0xc2, 0xb1, 0x67, 0xe7, 0x59, 0xf3, 0x73, 0x72, 0x26, 0x8a, 0x69, 0x7e, 0x9b, 0x78, 0x60, 0x5f, 0x2e, 0xd9, 0x47, 0x25, 0xf6, 0x90, 0x5a, 0x79, 0x00, 0x15, 0x3f, 0xc9, 0xe8, 0xbe, 0xed, 0x31, 0xff, 0xae, 0x05, };
23162 static const ec_test_case ed25519_1007_test_case = {
23163 	.name = "EDDSA25519-SHA512/wei25519 1007",
23164 	.ec_str_p = &wei25519_str_params,
23165 	.priv_key = ed25519_1007_test_vectors_priv_key,
23166 	.priv_key_len = sizeof(ed25519_1007_test_vectors_priv_key),
23167 	.nn_random = NULL,
23168 	.hash_type = SHA512,
23169 	.msg = (const char *)ed25519_1007_test_vectors_message,
23170 	.msglen = sizeof(ed25519_1007_test_vectors_message),
23171 	.sig_type = EDDSA25519,
23172 	.exp_sig = ed25519_1007_test_vectors_expected_sig,
23173 	.exp_siglen = sizeof(ed25519_1007_test_vectors_expected_sig),
23174 	.adata = NULL,
23175 	.adata_len = 0
23176 };
23177 
23178 /************************************************/
23179 static const u8 ed25519_1008_test_vectors_priv_key[] = {
23180 	0x08, 0x0d, 0x7f, 0x76, 0x18, 0x2e, 0xe6, 0xbc, 0xea, 0x89, 0x4b, 0x1e, 0x00, 0x60, 0x55, 0x8b, 0x3b, 0x12, 0x5a, 0x34, 0x99, 0xdf, 0x39, 0x73, 0xb8, 0xdd, 0x66, 0x93, 0x40, 0x8e, 0xe4, 0x69, };
23181 static const u8 ed25519_1008_test_vectors_message[] = {
23182 	0xab, 0x0a, 0x6d, 0xe2, 0x35, 0x1b, 0x9a, 0x84, 0x98, 0xf6, 0x82, 0x72, 0xd9, 0xa0, 0xa7, 0xa0, 0x57, 0x36, 0x5d, 0x34, 0xef, 0xa0, 0xfd, 0x34, 0xcc, 0x3b, 0xf8, 0x62, 0xe4, 0x9c, 0xdc, 0x30, 0x2b, 0x2b, 0xd5, 0xa3, 0x0d, 0x60, 0x1a, 0x13, 0x0e, 0xc4, 0x03, 0x2f, 0x54, 0x1a, 0xe6, 0xcb, 0x7b, 0xa9, 0x7f, 0x84, 0x18, 0x3d, 0x2d, 0x25, 0x81, 0x28, 0x7c, 0xa7, 0x01, 0xd7, 0xd7, 0xa9, 0xab, 0xa1, 0x10, 0xce, 0x58, 0xb9, 0x46, 0xac, 0x08, 0x24, 0x30, 0x5d, 0xf7, 0x92, 0x9f, 0x3d, 0xd7, 0xfc, 0x9c, 0x87, 0x32, 0x23, 0x86, 0x37, 0xe2, 0xb1, 0x81, 0xd6, 0xe1, 0x16, 0xc7, 0xf6, 0x6e, 0x32, 0x26, 0xaa, 0xe3, 0xce, 0xd1, 0x61, 0x02, 0x62, 0xda, 0x1a, 0x0a, 0x4a, 0xa5, 0x0a, 0x1b, 0x94, 0x43, 0xec, 0x82, 0x83, 0x29, 0xe4, 0x73, 0x4d, 0x28, 0xfc, 0x25, 0xab, 0x9c, 0x1d, 0xe9, 0xb8, 0x98, 0x7e, 0x5d, 0xc0, 0xc8, 0x13, 0x19, 0x16, 0xc5, 0xf1, 0x89, 0x28, 0x70, 0x4a, 0x71, 0xe8, 0x06, 0x22, 0xb1, 0x49, 0x2b, 0xf2, 0xfe, 0xc5, 0xd4, 0xb6, 0xdb, 0xe4, 0x15, 0xc8, 0xaf, 0x2c, 0xe3, 0xef, 0x10, 0x9b, 0x34, 0xdd, 0x5e, 0x64, 0xd5, 0x68, 0x46, 0xf0, 0x85, 0x93, 0x5a, 0x4a, 0x5d, 0x10, 0x73, 0x49, 0x7f, 0xb3, 0xfb, 0x8f, 0xb7, 0x7e, 0x8f, 0x5d, 0x5e, 0x3f, 0xd0, 0x0c, 0x30, 0x65, 0x2e, 0x3c, 0x5c, 0xde, 0x40, 0xa3, 0x35, 0xd1, 0x4e, 0x54, 0x25, 0xff, 0xba, 0x94, 0x28, 0x85, 0xed, 0x17, 0xbd, 0x36, 0xdf, 0x50, 0x69, 0x24, 0x23, 0x7e, 0x75, 0xbe, 0x84, 0xda, 0x82, 0x19, 0x50, 0xb9, 0x14, 0x24, 0xfd, 0x9f, 0x16, 0xc1, 0xb2, 0xc7, 0x83, 0xe9, 0x0f, 0x8c, 0xc2, 0xcc, 0xc7, 0x98, 0x0c, 0xe9, 0x15, 0xc7, 0x69, 0x6b, 0x06, 0xa5, 0x86, 0x73, 0x02, 0x59, 0xe6, 0xd1, 0x45, 0x88, 0x58, 0x2b, 0xab, 0x9d, 0x2a, 0x39, 0xf6, 0x9e, 0x98, 0xe7, 0xf2, 0xae, 0x9b, 0xc0, 0xc2, 0x61, 0x0d, 0x7e, 0x04, 0x57, 0xf2, 0x6a, 0x5d, 0x66, 0x54, 0x3b, 0xe1, 0xd6, 0x5b, 0x79, 0xc4, 0xb7, 0xc0, 0xd8, 0xee, 0x73, 0xd0, 0xc2, 0xb6, 0x7b, 0xf5, 0x0d, 0x80, 0x82, 0xf0, 0x06, 0xf9, 0x6d, 0x11, 0x95, 0x05, 0x87, 0x31, 0x93, 0xdf, 0xdb, 0xd4, 0x32, 0xbb, 0x1c, 0x9e, 0xe0, 0xd0, 0x3e, 0xe5, 0x4c, 0xf9, 0x5d, 0x20, 0xe9, 0x1f, 0x7f, 0x3a, 0x06, 0x9b, 0x62, 0x56, 0xf4, 0x21, 0x59, 0xcd, 0xc1, 0xe6, 0x00, 0xa9, 0xa1, 0xc2, 0xf5, 0xa8, 0xe4, 0x67, 0xd5, 0xc2, 0xa9, 0xdf, 0xf8, 0x73, 0x0e, 0x6b, 0xe8, 0x26, 0xfb, 0x2a, 0x1e, 0x64, 0x48, 0xbf, 0xc4, 0xfc, 0xaa, 0xaa, 0xcd, 0xaa, 0x76, 0x62, 0x35, 0x1f, 0xaa, 0xdc, 0x91, 0xf7, 0xca, 0xa7, 0x73, 0x7d, 0xc8, 0x2e, 0xc3, 0xd4, 0xb2, 0x19, 0x36, 0xbc, 0xa1, 0xbd, 0x7c, 0xe3, 0x73, 0xad, 0x66, 0x26, 0x4a, 0xf1, 0x32, 0x41, 0x16, 0x75, 0x49, 0x31, 0x8c, 0xdd, 0x78, 0xe5, 0x63, 0x82, 0x7f, 0x85, 0xea, 0xb2, 0x0e, 0x0b, 0x42, 0xbc, 0x55, 0x4a, 0x71, 0x2c, 0x00, 0x51, 0xa5, 0x01, 0x0d, 0xc2, 0xf2, 0xc7, 0xdb, 0x85, 0xac, 0xf6, 0x54, 0x9f, 0x9d, 0x10, 0x2c, 0x90, 0x3c, 0x1b, 0xe5, 0xa0, 0x52, 0x92, 0xc3, 0x0f, 0x21, 0xab, 0x1b, 0x2b, 0x8a, 0xbc, 0xbb, 0xf1, 0x04, 0x72, 0x3c, 0x63, 0xf0, 0xeb, 0xc5, 0x54, 0xfb, 0xee, 0x42, 0x02, 0x0c, 0xcb, 0x14, 0xf4, 0x43, 0x47, 0x8d, 0xf7, 0x7c, 0x6a, 0xa4, 0x4d, 0xb9, 0xa5, 0x7f, 0x8f, 0xd4, 0x4d, 0x97, 0xea, 0x09, 0x9e, 0x47, 0x74, 0x82, 0x3e, 0xbe, 0x12, 0x3f, 0xcf, 0x50, 0x16, 0xa6, 0x6e, 0x83, 0x7b, 0x2f, 0x65, 0xc1, 0x84, 0x5e, 0x68, 0x1e, 0xe2, 0xa7, 0x05, 0x9f, 0xb1, 0x29, 0x0c, 0xd0, 0xa9, 0x33, 0x12, 0x98, 0x55, 0xcc, 0x83, 0xc8, 0x7e, 0x0b, 0x3b, 0xb6, 0x1e, 0x44, 0x13, 0x4a, 0xdd, 0xd3, 0x63, 0x78, 0x50, 0x24, 0x6c, 0xdc, 0xda, 0xa2, 0x9f, 0x15, 0xc4, 0x1a, 0x3d, 0x4d, 0xd2, 0xc1, 0xd7, 0x60, 0x06, 0x21, 0x24, 0x33, 0x31, 0x24, 0xcf, 0x09, 0x14, 0x35, 0xfd, 0xce, 0x71, 0x1f, 0x52, 0x31, 0x63, 0x68, 0x99, 0x9b, 0xef, 0xa4, 0xc8, 0x0a, 0x39, 0xb3, 0x75, 0x0e, 0x4e, 0x38, 0x62, 0x89, 0xe4, 0xe2, 0x85, 0x5e, 0x97, 0xb6, 0x19, 0xb0, 0xa2, 0x57, 0x99, 0x91, 0x24, 0x08, 0xb7, 0xd5, 0x8a, 0x4d, 0xd9, 0x81, 0x95, 0x71, 0xe9, 0x01, 0x43, 0x0f, 0x6d, 0x55, 0x55, 0x29, 0xdd, 0x63, 0x0a, 0x18, 0x67, 0x45, 0x9b, 0x80, 0x22, 0xd0, 0xe0, 0xad, 0xd6, 0xab, 0x4f, 0x12, 0xf6, 0x0b, 0xaa, 0xc7, 0x59, 0x79, 0xbb, 0xff, 0x7f, 0x62, 0x58, 0xd2, 0x8d, 0x67, 0x60, 0xb1, 0xff, 0x24, 0x3c, 0x39, 0xe4, 0xbb, 0xd6, 0xcf, 0x9b, 0xea, 0x57, 0x2a, 0x9c, 0x08, 0x2d, 0x05, 0xad, 0xcf, 0xd4, 0xcc, 0xf9, 0xfa, 0x02, 0x6f, 0x2c, 0x90, 0x4b, 0x6e, 0x78, 0x2e, 0xd7, 0x09, 0xdf, 0x77, 0x48, 0xa3, 0x07, 0xcd, 0x2d, 0xc3, 0xa0, 0xfc, 0x41, 0x23, 0xdf, 0x58, 0x0c, 0xbf, 0x49, 0xe0, 0x5c, 0xee, 0xab, 0xc9, 0xf3, 0x9e, 0x57, 0xb7, 0xf3, 0x00, 0x90, 0x5d, 0x8b, 0x31, 0x00, 0x91, 0xfb, 0x95, 0x3f, 0x3d, 0xef, 0x36, 0xde, 0xb3, 0xe8, 0xbf, 0x37, 0x2f, 0x59, 0x16, 0xb5, 0x15, 0x97, 0xdf, 0x02, 0x4c, 0xe8, 0x5c, 0xc4, 0xc3, 0x6e, 0xab, 0xdc, 0x58, 0x0b, 0x5c, 0xf1, 0x52, 0x99, 0x46, 0x48, 0xf1, 0xd7, 0xf3, 0x5f, 0xed, 0x5c, 0xd1, 0x0f, 0x6e, 0x29, 0x49, 0x16, 0x1a, 0x33, 0x59, 0xb3, 0x03, 0x4d, 0x45, 0x0e, 0xa6, 0xf6, 0x1c, 0xdf, 0x1d, 0x5a, 0xf7, 0x6d, 0x40, 0x10, 0x2b, 0x60, 0x29, 0x4f, 0x4e, 0x49, 0x07, 0x82, 0x49, 0x02, 0x6d, 0x62, 0xfe, 0x35, 0xfd, 0xf2, 0x24, 0x92, 0x8b, 0x0c, 0x49, 0xba, 0x2b, 0x53, 0x39, 0xeb, 0xb1, 0x92, 0xc5, 0xab, 0x7f, 0x05, 0xcd, 0xb9, 0x46, 0xe3, 0x7d, 0x67, 0x1a, 0x4a, 0x5e, 0xf2, 0xa5, 0x82, 0x72, 0x20, 0xb4, 0x43, 0x8c, 0xbd, 0xa0, 0x57, 0x36, 0x29, 0x28, 0x06, 0x64, 0x8f, 0x5b, 0xdd, 0x52, 0x42, 0x0f, 0xa7, 0x6b, 0x84, 0xa6, 0xad, 0xdb, 0x12, 0x63, 0xeb, 0x0c, 0x50, 0x0e, 0x81, 0x56, 0x6d, 0x71, 0x8d, 0x50, 0x66, 0x02, 0x6d, 0xa0, 0x97, 0x05, 0x4a, 0x86, 0x63, 0x10, 0x16, 0xdd, 0xfb, 0x70, 0x6a, 0x56, 0x77, 0xd5, 0x02, 0xef, 0x84, 0xaa, 0x73, 0xb5, 0x86, 0x3b, 0xc4, 0x0f, 0xdc, 0x42, 0xcb, 0x73, 0x21, 0xac, 0x5f, 0x00, 0xe2, 0x92, 0x8f, 0xed, 0x7b, 0x04, 0x18, 0x59, 0x6d, 0xb4, 0xb6, 0x15, 0x1d, 0xd6, 0xbc, 0x6e, 0x81, 0x8f, 0x02, 0x53, 0x55, 0x2b, 0xf1, 0x37, 0x41, 0xe6, 0x96, 0x80, 0xe9, 0x66, 0xc9, 0x2c, 0x29, 0x3e, 0x13, 0xc9, 0x0f, 0x7c, 0x99, 0x99, 0xbd, 0x1e, 0xc6, 0xaf, 0xe3, 0xb4, 0xaf, 0xfb, 0x47, 0x34, 0x0c, 0x89, 0x85, 0x98, 0x29, 0xfe, 0xb5, 0x99, 0xdb, 0x3a, 0x8c, 0x3d, 0x33, 0xfc, 0x8d, 0x45, 0xfa, 0x53, 0x81, 0x07, 0x8a, 0xe9, 0xf7, 0x5d, 0x85, 0xc1, 0x49, 0x6f, 0x5f, 0xb5, 0xad, 0xdf, 0x4e, 0x40, 0x09, 0xb7, 0x64, 0xbc, 0xc9, 0x11, 0x8e, 0x92, 0x75, 0xdc, 0x72, 0x19, 0xf2, 0x81, 0xd0, 0xd1, 0xef, 0x71, 0x58, };
23183 static const u8 ed25519_1008_test_vectors_expected_sig[] = {
23184 	0x18, 0x5f, 0xb1, 0xb6, 0xd8, 0x6d, 0xc4, 0x44, 0x48, 0x10, 0xcf, 0x5e, 0xc6, 0xfe, 0xf0, 0xab, 0xda, 0xfa, 0x2a, 0x6f, 0xcc, 0xb4, 0x5d, 0x11, 0xcf, 0xb5, 0x4b, 0xa1, 0x6a, 0x68, 0x43, 0xf2, 0x80, 0xd3, 0x80, 0x47, 0x10, 0x02, 0xae, 0x0d, 0x71, 0x50, 0x85, 0x56, 0xc7, 0x8e, 0xd5, 0x41, 0x5e, 0x42, 0x33, 0x8c, 0x16, 0x1f, 0x2b, 0x62, 0x1e, 0x74, 0xcb, 0xa4, 0xf6, 0xa1, 0xd4, 0x02, };
23185 static const ec_test_case ed25519_1008_test_case = {
23186 	.name = "EDDSA25519-SHA512/wei25519 1008",
23187 	.ec_str_p = &wei25519_str_params,
23188 	.priv_key = ed25519_1008_test_vectors_priv_key,
23189 	.priv_key_len = sizeof(ed25519_1008_test_vectors_priv_key),
23190 	.nn_random = NULL,
23191 	.hash_type = SHA512,
23192 	.msg = (const char *)ed25519_1008_test_vectors_message,
23193 	.msglen = sizeof(ed25519_1008_test_vectors_message),
23194 	.sig_type = EDDSA25519,
23195 	.exp_sig = ed25519_1008_test_vectors_expected_sig,
23196 	.exp_siglen = sizeof(ed25519_1008_test_vectors_expected_sig),
23197 	.adata = NULL,
23198 	.adata_len = 0
23199 };
23200 
23201 /************************************************/
23202 static const u8 ed25519_1009_test_vectors_priv_key[] = {
23203 	0x49, 0x84, 0x6a, 0xda, 0x7a, 0xe6, 0x84, 0x97, 0x1d, 0xd9, 0x17, 0x10, 0x79, 0x90, 0x90, 0xb3, 0x7f, 0xe5, 0xad, 0x56, 0x1d, 0x72, 0xa3, 0x5f, 0x2e, 0xfb, 0x40, 0x5f, 0x19, 0x6a, 0xb0, 0xec, };
23204 static const u8 ed25519_1009_test_vectors_message[] = {
23205 	0xab, 0x39, 0x8d, 0x94, 0xf9, 0x28, 0xb1, 0xd4, 0x21, 0x02, 0xa3, 0xe5, 0x13, 0xcc, 0xd1, 0xcb, 0x10, 0x89, 0x90, 0x11, 0x03, 0x94, 0x10, 0xa8, 0x88, 0x8b, 0xba, 0x26, 0xdf, 0x1a, 0x03, 0x72, 0xbd, 0xba, 0x0c, 0xe8, 0xd8, 0x54, 0xaf, 0x51, 0xe9, 0x33, 0x0a, 0x8d, 0xaa, 0x93, 0xc1, 0x05, 0x80, 0x90, 0x6a, 0x8a, 0xc7, 0x2d, 0x29, 0x4a, 0xeb, 0x95, 0x66, 0xfe, 0x1c, 0x78, 0xba, 0x84, 0x71, 0xc0, 0x6c, 0x4a, 0x8a, 0x75, 0x11, 0x3b, 0x34, 0x89, 0x3f, 0x62, 0x76, 0xed, 0x81, 0x32, 0x92, 0x05, 0x3b, 0x95, 0x6a, 0x46, 0x5d, 0x84, 0x7d, 0x2e, 0xce, 0x86, 0xe2, 0xda, 0x8a, 0x9f, 0x0f, 0xe3, 0xdb, 0x52, 0xa5, 0xaa, 0xc7, 0x46, 0xef, 0x96, 0x48, 0x5e, 0xf8, 0x1f, 0x13, 0x62, 0xb5, 0xa4, 0x2e, 0xaa, 0xee, 0x1f, 0xbb, 0x06, 0x46, 0x70, 0x44, 0x71, 0xa2, 0x1b, 0xf7, 0x63, 0x67, 0xbe, 0xaa, 0x07, 0x81, 0x2b, 0x3d, 0x32, 0xad, 0xcd, 0xed, 0xde, 0xd7, 0x53, 0x9e, 0x3a, 0x50, 0x1b, 0x83, 0xc0, 0x5b, 0x19, 0xa4, 0x9b, 0x52, 0x0e, 0xde, 0xdc, 0x9a, 0x78, 0xa5, 0xfc, 0x2d, 0x50, 0x12, 0xf1, 0xd4, 0xe3, 0x81, 0x84, 0x4e, 0x79, 0x2e, 0xd9, 0x0b, 0x0f, 0x57, 0xbc, 0xe3, 0x75, 0xc7, 0x5a, 0x65, 0x8b, 0x2c, 0x78, 0xc6, 0xff, 0x7d, 0x9e, 0xfc, 0xd4, 0xbf, 0xa3, 0x5c, 0x47, 0x68, 0xcb, 0xb1, 0x95, 0xe4, 0x82, 0x3d, 0x9b, 0xbd, 0x83, 0x5a, 0x37, 0x4f, 0xa0, 0x4c, 0xa1, 0xea, 0xae, 0x9c, 0x56, 0x6d, 0x8f, 0xd5, 0xaa, 0x7c, 0xa5, 0xef, 0xe0, 0xdf, 0xc3, 0x17, 0xff, 0xfa, 0x40, 0x9e, 0xf1, 0x02, 0x2f, 0x1c, 0x3b, 0x37, 0x6a, 0x93, 0x5a, 0xf5, 0x57, 0x08, 0x3e, 0x95, 0x28, 0x7b, 0x07, 0xa9, 0x8a, 0xc6, 0xc1, 0xb7, 0xbd, 0x8b, 0xb2, 0x6b, 0x60, 0xfa, 0x7c, 0x4b, 0xc9, 0x19, 0x73, 0xb2, 0x01, 0xb2, 0x99, 0x22, 0xb4, 0xb9, 0xd0, 0x3d, 0xd6, 0x88, 0x2a, 0x0b, 0xd3, 0xb7, 0xd9, 0xe5, 0xb8, 0x1e, 0xe7, 0x4c, 0x36, 0xbe, 0xc6, 0x65, 0xe4, 0x34, 0x3c, 0x8c, 0x9a, 0xd3, 0x36, 0xda, 0x38, 0x50, 0xc9, 0xb2, 0x69, 0x7f, 0xe1, 0xcc, 0xe2, 0x9c, 0x37, 0x86, 0x22, 0xa3, 0x3c, 0x24, 0x8f, 0x44, 0x8c, 0x88, 0xf4, 0x8d, 0xf0, 0x26, 0x01, 0x43, 0xb2, 0xa3, 0x42, 0xf1, 0xdd, 0xee, 0x74, 0xd3, 0xb9, 0x7c, 0xa3, 0xe1, 0x16, 0x6b, 0x15, 0x69, 0x93, 0xda, 0xd3, 0x0c, 0x49, 0xd8, 0x10, 0xd7, 0x40, 0x48, 0xbc, 0x6d, 0x46, 0x76, 0x52, 0x00, 0x4d, 0x7e, 0xdb, 0x65, 0xc6, 0xda, 0xc3, 0xa2, 0xc5, 0xd3, 0x00, 0xb9, 0x7e, 0xe3, 0xa1, 0x0a, 0x9e, 0x14, 0xb6, 0x9f, 0x3c, 0xad, 0x67, 0x59, 0x72, 0x96, 0x2e, 0x1f, 0x8e, 0xd9, 0x75, 0x47, 0xad, 0xed, 0xc4, 0x7d, 0x1c, 0xf3, 0x47, 0x1e, 0xf3, 0xb2, 0x2f, 0xdb, 0xf7, 0x8e, 0x34, 0xf3, 0x1a, 0x3b, 0xb7, 0x66, 0x9c, 0x41, 0xbd, 0x92, 0x92, 0xc3, 0x80, 0xbc, 0xe9, 0xa4, 0x2d, 0x84, 0xbc, 0x27, 0xac, 0x92, 0x8b, 0x8b, 0xfc, 0x3c, 0x63, 0xd2, 0x0c, 0xcd, 0xb4, 0x78, 0xdf, 0x7d, 0xdf, 0x42, 0x1f, 0xb1, 0xcd, 0x90, 0x5f, 0xfc, 0x4c, 0x04, 0x78, 0x6f, 0xd9, 0xae, 0xf0, 0x6b, 0x89, 0x38, 0xab, 0x8e, 0xf5, 0x22, 0x21, 0x7b, 0x2c, 0x04, 0x51, 0x5f, 0x61, 0xa1, 0xc3, 0x12, 0xea, 0x83, 0x25, 0x3f, 0x84, 0x58, 0xc0, 0x91, 0x8f, 0xcf, 0xe8, 0x74, 0xe6, 0xe7, 0xfb, 0x11, 0x27, 0x5d, 0xb2, 0xa2, 0xec, 0x79, 0xa2, 0xd8, 0x68, 0x30, 0x32, 0x33, 0xc1, 0xb6, 0x97, 0x95, 0x2a, 0x3b, 0xfd, 0x3a, 0xd0, 0xa6, 0xf6, 0xcd, 0xd5, 0xe7, 0x2c, 0xc9, 0x40, 0x9f, 0x74, 0x10, 0xa4, 0x0d, 0x5b, 0x45, 0x36, 0xdd, 0x46, 0xeb, 0x16, 0x11, 0xae, 0x86, 0x70, 0x36, 0x71, 0xb3, 0xa0, 0x51, 0x5a, 0x03, 0x77, 0xbe, 0xa1, 0x56, 0x54, 0xba, 0x0a, 0x0d, 0x1e, 0x4e, 0x96, 0x02, 0x63, 0x28, 0x42, 0xf2, 0xac, 0xd4, 0xef, 0x99, 0x32, 0x36, 0xe9, 0x93, 0xf2, 0x65, 0x0d, 0x59, 0x92, 0x3f, 0x24, 0xe2, 0xcd, 0x30, 0x93, 0x2d, 0x8b, 0xf8, 0xae, 0xec, 0x64, 0x44, 0x72, 0xba, 0x46, 0xa0, 0x78, 0x81, 0x49, 0x6c, 0x92, 0xa0, 0x13, 0x5c, 0x67, 0x5a, 0xeb, 0x0c, 0xe6, 0x18, 0x10, 0x88, 0xdb, 0x8f, 0x15, 0x6c, 0xfe, 0x74, 0x35, 0xca, 0xc6, 0xc9, 0x7d, 0xa6, 0x37, 0xdb, 0x4a, 0x89, 0xf5, 0x13, 0x31, 0xda, 0x13, 0x73, 0x1e, 0x74, 0x1f, 0xcc, 0xc0, 0x35, 0x55, 0x42, 0xce, 0x11, 0xef, 0xa6, 0x9d, 0x05, 0x38, 0xd3, 0xef, 0x12, 0x7a, 0xa6, 0x87, 0x45, 0xed, 0x30, 0x85, 0xd2, 0x9d, 0xa9, 0x0d, 0xc5, 0x83, 0x70, 0x1b, 0x6b, 0x3a, 0x70, 0xa3, 0xef, 0x3e, 0x16, 0xa9, 0x24, 0xb3, 0x32, 0x03, 0xb9, 0x23, 0x96, 0xc4, 0xb9, 0x45, 0xf1, 0x27, 0xa7, 0x88, 0x8f, 0xa0, 0x50, 0x15, 0xc0, 0x60, 0x30, 0x07, 0x56, 0x67, 0x29, 0x23, 0x7c, 0xc0, 0x78, 0x2b, 0x30, 0xc0, 0x20, 0xd9, 0x95, 0x95, 0x47, 0xfe, 0xec, 0x9f, 0x4d, 0x67, 0x64, 0x60, 0xbf, 0xe0, 0xc5, 0xc1, 0x9c, 0xea, 0xba, 0xee, 0x06, 0x82, 0xdb, 0x8b, 0xe6, 0x91, 0x35, 0x18, 0x1e, 0xc0, 0xfd, 0xd9, 0xf7, 0xa6, 0x6d, 0x50, 0xbd, 0xc3, 0x79, 0xe4, 0xa2, 0xc5, 0x98, 0x17, 0x8f, 0x95, 0x93, 0x94, 0x6a, 0xca, 0x64, 0x05, 0xb1, 0x77, 0xfc, 0xad, 0xe0, 0xf8, 0x64, 0x21, 0x58, 0x3e, 0xd6, 0x7e, 0xba, 0x18, 0x72, 0x22, 0xa1, 0xe4, 0x44, 0x95, 0xb3, 0xae, 0x54, 0x4f, 0xdc, 0xa2, 0x8e, 0x2c, 0x14, 0x48, 0x5e, 0xab, 0x04, 0x71, 0xaa, 0xa8, 0x03, 0xc2, 0x9a, 0x9d, 0x8a, 0x48, 0x92, 0x67, 0x64, 0xfc, 0xa1, 0xdf, 0x51, 0x40, 0x7a, 0xd3, 0x3e, 0xc1, 0x7e, 0x94, 0x1e, 0x6e, 0x26, 0x17, 0x23, 0x7a, 0x84, 0x30, 0x98, 0x73, 0xdc, 0x71, 0x36, 0x55, 0x87, 0xbd, 0xe4, 0x27, 0x4b, 0x5d, 0xc3, 0x27, 0xcc, 0xb1, 0xe1, 0xe9, 0xc8, 0x57, 0xe0, 0x42, 0xcc, 0xca, 0x8d, 0x85, 0x52, 0xba, 0x28, 0x8c, 0x97, 0x8c, 0xfa, 0x0a, 0xf9, 0x9d, 0x67, 0xcd, 0x03, 0x40, 0x60, 0x62, 0x8e, 0x23, 0x52, 0x5d, 0xbc, 0xa2, 0x07, 0x67, 0x9c, 0xe2, 0x96, 0x90, 0x87, 0x84, 0x48, 0x55, 0x3c, 0xd3, 0x86, 0x75, 0xbc, 0xe0, 0x7b, 0xf9, 0x7b, 0x93, 0x17, 0xdc, 0x44, 0x46, 0x8b, 0x76, 0x8b, 0x15, 0x8b, 0x0c, 0x11, 0x1d, 0x63, 0xa5, 0x72, 0x23, 0x56, 0x55, 0xc4, 0x0e, 0x16, 0x59, 0x7c, 0xa0, 0x59, 0xf4, 0x0c, 0x3d, 0x8a, 0xc5, 0xbd, 0x61, 0xa4, 0x87, 0xc1, 0x53, 0x13, 0x84, 0x6a, 0x70, 0x4a, 0x78, 0x11, 0xb8, 0xbc, 0x0c, 0xee, 0x61, 0xe3, 0x47, 0x62, 0xb6, 0xc1, 0xb7, 0xce, 0xa1, 0xc4, 0x6e, 0x60, 0x87, 0xe9, 0xa3, 0x6f, 0x89, 0x91, 0x8a, 0x25, 0x8b, 0x3f, 0xa7, 0x76, 0x20, 0xbe, 0x10, 0xc1, 0x84, 0xc3, 0xfc, 0x39, 0x73, 0x90, 0x24, 0xe9, 0x82, 0x78, 0xfd, 0x65, 0xb8, 0x2c, 0xad, 0x83, 0x69, 0x9f, 0x3a, 0xd8, 0xc6, 0xec, 0xcb, 0xec, 0x8b, 0x7b, 0x1b, 0xd7, 0x91, 0x4d, 0x3f, 0x6c, 0x3d, 0x02, 0xbf, 0x40, 0x28, 0x3b, 0x1c, 0x1f, 0x1e, 0x98, 0xe3, 0x08, 0xbe, 0xae, 0xbb, 0xf8, 0x94, 0xb8, 0xf5, 0xe9, 0x1b, 0xbb, 0xc6, 0x25, 0x35, 0xf9, 0x23, };
23206 static const u8 ed25519_1009_test_vectors_expected_sig[] = {
23207 	0xa5, 0xc8, 0x09, 0xd1, 0xca, 0x4c, 0xfb, 0xb3, 0xdc, 0x70, 0xa2, 0xa3, 0xa1, 0xf2, 0x67, 0xc2, 0x73, 0x30, 0x42, 0x07, 0x19, 0xe3, 0x60, 0x62, 0x18, 0xa1, 0x47, 0x1c, 0xac, 0x57, 0xcb, 0x67, 0x4b, 0x9b, 0x42, 0x82, 0x7c, 0x5e, 0x9a, 0x7b, 0x25, 0xc8, 0x13, 0x9c, 0x13, 0xdf, 0xf6, 0x0b, 0xde, 0x6c, 0x2d, 0xba, 0xd3, 0xa8, 0x36, 0x11, 0x97, 0xc1, 0xfb, 0x19, 0xd2, 0xcd, 0x52, 0x0b, };
23208 static const ec_test_case ed25519_1009_test_case = {
23209 	.name = "EDDSA25519-SHA512/wei25519 1009",
23210 	.ec_str_p = &wei25519_str_params,
23211 	.priv_key = ed25519_1009_test_vectors_priv_key,
23212 	.priv_key_len = sizeof(ed25519_1009_test_vectors_priv_key),
23213 	.nn_random = NULL,
23214 	.hash_type = SHA512,
23215 	.msg = (const char *)ed25519_1009_test_vectors_message,
23216 	.msglen = sizeof(ed25519_1009_test_vectors_message),
23217 	.sig_type = EDDSA25519,
23218 	.exp_sig = ed25519_1009_test_vectors_expected_sig,
23219 	.exp_siglen = sizeof(ed25519_1009_test_vectors_expected_sig),
23220 	.adata = NULL,
23221 	.adata_len = 0
23222 };
23223 
23224 /************************************************/
23225 static const u8 ed25519_1010_test_vectors_priv_key[] = {
23226 	0x83, 0x34, 0x3e, 0x37, 0xad, 0x09, 0x1a, 0x85, 0xee, 0xc3, 0x70, 0x70, 0x1b, 0x81, 0xa5, 0x8f, 0x93, 0x70, 0xa4, 0xb0, 0x42, 0x3a, 0x07, 0x0d, 0x60, 0xf9, 0x2d, 0x8d, 0x18, 0x09, 0x84, 0x4e, };
23227 static const u8 ed25519_1010_test_vectors_message[] = {
23228 	0xc7, 0xda, 0xdc, 0xac, 0x5d, 0x87, 0x95, 0xe1, 0x74, 0xb6, 0x91, 0x38, 0x91, 0x2e, 0x70, 0xff, 0x41, 0xe7, 0xa7, 0x25, 0xfa, 0xf3, 0x85, 0xb7, 0x73, 0xed, 0x15, 0x09, 0x89, 0x72, 0xb3, 0x0d, 0x9b, 0x73, 0x93, 0x72, 0xd9, 0x75, 0xb4, 0x80, 0xcc, 0xfd, 0xfc, 0x58, 0x0e, 0x2e, 0x2d, 0xdf, 0x5e, 0x3c, 0x27, 0xee, 0x79, 0x12, 0x79, 0xab, 0x95, 0xe4, 0x38, 0x2b, 0x14, 0x59, 0xdd, 0x8d, 0x41, 0xae, 0x36, 0x0d, 0x4a, 0x87, 0x88, 0x46, 0x69, 0x29, 0x24, 0xfe, 0xef, 0x39, 0x0c, 0x0d, 0xbb, 0xfa, 0x35, 0xe4, 0xb8, 0x2d, 0x7c, 0xbc, 0x33, 0xee, 0x15, 0x81, 0xc5, 0x2b, 0xd9, 0x49, 0x38, 0x5b, 0x2e, 0xe4, 0x02, 0x63, 0xa5, 0x7d, 0xa1, 0x17, 0x4b, 0xb4, 0xac, 0xad, 0x37, 0xcd, 0x8a, 0xe2, 0xa6, 0xb4, 0x5f, 0x7a, 0x6d, 0x6b, 0xbe, 0xf5, 0xa7, 0x98, 0xce, 0x85, 0xb9, 0xe0, 0x5e, 0x76, 0x47, 0xe3, 0x34, 0xec, 0xfc, 0x77, 0x63, 0x78, 0xde, 0x17, 0x4c, 0x49, 0x7c, 0x0f, 0x40, 0x75, 0xe6, 0x25, 0xaf, 0x7a, 0xed, 0x50, 0x2c, 0xd1, 0xcf, 0x7f, 0x58, 0x8d, 0x0d, 0x80, 0x7f, 0x02, 0xe3, 0x2f, 0x43, 0x00, 0xf2, 0x28, 0xa5, 0x0a, 0x66, 0x7b, 0x5a, 0xd1, 0xfb, 0xbc, 0x17, 0xe0, 0xb3, 0xc5, 0x70, 0x51, 0xdd, 0xc6, 0x02, 0xf5, 0x76, 0x07, 0x9f, 0x6f, 0xc5, 0x88, 0x9b, 0x7f, 0x29, 0x00, 0x71, 0x13, 0x34, 0x42, 0x0f, 0xc6, 0x66, 0xf6, 0x6d, 0xba, 0xff, 0x41, 0x26, 0x33, 0x6c, 0x35, 0x3f, 0x1e, 0x5b, 0x56, 0x4a, 0x66, 0x45, 0x37, 0xf8, 0x37, 0x86, 0xda, 0x5c, 0x56, 0x27, 0x74, 0x54, 0x06, 0xd7, 0xb2, 0xfe, 0x32, 0x33, 0xbf, 0xd5, 0x8e, 0xf4, 0x64, 0xa0, 0x6c, 0x95, 0xcf, 0xd0, 0xb9, 0x88, 0xa7, 0x6d, 0x05, 0x3a, 0x64, 0x4b, 0xcc, 0x15, 0x9c, 0xad, 0x53, 0xa7, 0xc5, 0xdb, 0xb4, 0x0e, 0xef, 0x5c, 0xd0, 0x47, 0x05, 0x6a, 0x3f, 0x09, 0x26, 0x5b, 0x13, 0x25, 0x69, 0x9c, 0x7d, 0x15, 0x9d, 0x5c, 0x90, 0x24, 0x40, 0x17, 0x33, 0x57, 0xff, 0xab, 0x8f, 0x7a, 0x5e, 0x38, 0x9f, 0x46, 0x8c, 0x33, 0x3b, 0x78, 0x2f, 0x80, 0x17, 0x0a, 0xe9, 0x09, 0x83, 0xaf, 0x15, 0x3f, 0x2e, 0x73, 0xbd, 0x2b, 0xef, 0x12, 0x5e, 0x3d, 0x38, 0x68, 0xc2, 0xab, 0x9e, 0xcf, 0x03, 0xaf, 0xf7, 0x6e, 0xcb, 0xeb, 0x18, 0x16, 0x7c, 0xa2, 0xf7, 0x11, 0xcd, 0x56, 0x58, 0x51, 0xd7, 0xf0, 0x4e, 0xe9, 0xd9, 0xb0, 0x1b, 0x6d, 0x83, 0xa7, 0x60, 0x57, 0x22, 0x62, 0x0d, 0x28, 0xc8, 0x4d, 0x6c, 0x1a, 0xf4, 0x2f, 0x6a, 0x76, 0x92, 0x58, 0xf5, 0x3c, 0x1f, 0x66, 0xda, 0x36, 0x66, 0x6d, 0xa5, 0xca, 0xa9, 0xbd, 0x9e, 0x8f, 0xbc, 0x16, 0x92, 0x11, 0xb1, 0xae, 0xd9, 0xc2, 0x55, 0x8f, 0x6a, 0xaf, 0x5b, 0x14, 0x5a, 0xbc, 0x72, 0x1a, 0xbb, 0x00, 0x72, 0x01, 0x94, 0xe0, 0x27, 0x03, 0x54, 0x68, 0xbd, 0xe3, 0xfe, 0x0b, 0x88, 0x88, 0x4f, 0x4e, 0x9b, 0x26, 0xe7, 0x71, 0xe6, 0xc7, 0xa0, 0xa5, 0x5e, 0xa3, 0x6f, 0xc5, 0x0d, 0xec, 0x8c, 0xef, 0x16, 0x2f, 0x9b, 0xba, 0x5b, 0x4b, 0x16, 0x10, 0x5a, 0xfd, 0x6e, 0x37, 0x4e, 0x03, 0x8d, 0x5c, 0x85, 0x87, 0xcf, 0xd7, 0xdd, 0x88, 0x29, 0x0b, 0x2c, 0x9c, 0xab, 0x45, 0xa2, 0x64, 0xd6, 0x54, 0x0e, 0xa1, 0x41, 0x6e, 0x6e, 0x4e, 0x74, 0xa1, 0x2f, 0x45, 0xa2, 0xef, 0x13, 0xcc, 0x8a, 0x36, 0xe7, 0xb0, 0xa2, 0x6b, 0x90, 0x2c, 0x3d, 0x96, 0xe2, 0xe2, 0x22, 0x92, 0x02, 0xe2, 0x57, 0x65, 0x69, 0x4b, 0x94, 0x33, 0x73, 0xd1, 0x6e, 0x60, 0x0b, 0xd7, 0x86, 0xd9, 0x55, 0xa4, 0xb3, 0xf1, 0x02, 0x16, 0x40, 0xc3, 0x9a, 0x0b, 0x6c, 0x69, 0x15, 0x00, 0x28, 0x1a, 0xe0, 0xd0, 0x98, 0xcc, 0x7f, 0x38, 0x5e, 0x18, 0xa0, 0x7e, 0x62, 0xfa, 0x4a, 0x10, 0x1e, 0xf5, 0xb7, 0x85, 0x51, 0xfa, 0x29, 0xbd, 0x15, 0xee, 0x03, 0x53, 0xa1, 0xa5, 0xef, 0x9b, 0x21, 0x6e, 0x8b, 0x0f, 0xa5, 0x07, 0x50, 0xa3, 0x41, 0x62, 0xb6, 0x35, 0xa0, 0xbc, 0x5e, 0x5d, 0x72, 0x30, 0xaa, 0x19, 0xaf, 0xa1, 0x28, 0xab, 0xa6, 0x42, 0x2d, 0x38, 0xeb, 0x77, 0xa3, 0xf0, 0xbb, 0x9d, 0xd8, 0xe4, 0x65, 0x2f, 0x12, 0x07, 0x0a, 0x37, 0x36, 0x1c, 0x37, 0x25, 0x50, 0x3c, 0x9d, 0x22, 0xe2, 0xfa, 0xce, 0x2e, 0xa7, 0x4a, 0x70, 0x02, 0x40, 0x62, 0x47, 0xdd, 0x86, 0x97, 0x5f, 0x07, 0x57, 0x5c, 0x9e, 0x7c, 0x6f, 0x41, 0xb5, 0x3b, 0x26, 0xd5, 0xcf, 0x52, 0xc5, 0xac, 0xc2, 0xc5, 0xd9, 0x82, 0x71, 0x43, 0x4e, 0x9f, 0xa5, 0x09, 0xc6, 0xdf, 0xbd, 0x72, 0x43, 0x72, 0xaa, 0x5c, 0x13, 0x45, 0x1a, 0xae, 0x39, 0x3d, 0xe0, 0xa1, 0x86, 0x46, 0x4f, 0x5d, 0x33, 0x7e, 0x9f, 0x62, 0x7b, 0x4f, 0x1c, 0x29, 0x09, 0x46, 0x70, 0x65, 0xe8, 0x9a, 0x42, 0x2e, 0xc4, 0x0e, 0xe1, 0xd8, 0x0a, 0x13, 0x39, 0x00, 0xa6, 0x2f, 0x4e, 0x4f, 0x7e, 0x94, 0xeb, 0x72, 0x61, 0x5e, 0x7e, 0xc2, 0x99, 0x6c, 0x6c, 0x24, 0x30, 0xc3, 0xe9, 0x57, 0xce, 0xae, 0x21, 0x05, 0xa1, 0xe9, 0x0e, 0xae, 0xac, 0x0d, 0x31, 0xaf, 0xfa, 0x9f, 0x57, 0x92, 0x6d, 0x71, 0xd9, 0x72, 0xa9, 0xa2, 0xde, 0x11, 0x25, 0x8c, 0xc1, 0xe7, 0x28, 0x59, 0x9c, 0x9f, 0xb3, 0x87, 0x24, 0x91, 0x84, 0x7e, 0x10, 0xc6, 0x7e, 0xfa, 0xef, 0x6b, 0x69, 0x6a, 0x03, 0x0f, 0xf0, 0x53, 0x3a, 0x58, 0x3b, 0xea, 0x1d, 0x04, 0xdf, 0x25, 0xf7, 0xee, 0xf3, 0xa1, 0x3b, 0x8e, 0x31, 0xaa, 0xd1, 0x33, 0x85, 0x7d, 0xf1, 0xb4, 0xe5, 0xff, 0xbd, 0xee, 0x37, 0xf4, 0x0f, 0x38, 0xd2, 0x24, 0xc7, 0x0a, 0xe0, 0x4e, 0xf3, 0x3b, 0x41, 0xb0, 0x2e, 0x71, 0x91, 0xa8, 0x66, 0x56, 0xb0, 0xd7, 0x2b, 0x2c, 0xbb, 0x53, 0xc4, 0x90, 0x8c, 0xa2, 0x06, 0xf7, 0x57, 0x34, 0xb2, 0x77, 0x08, 0x15, 0x4f, 0xcd, 0x8a, 0x97, 0x42, 0x9c, 0xfd, 0x1f, 0x2d, 0xa2, 0x42, 0x97, 0x78, 0x43, 0x80, 0x03, 0xf5, 0xb5, 0xb9, 0xc2, 0x1d, 0x9e, 0xd2, 0x3b, 0x8a, 0xd8, 0xa2, 0x28, 0xeb, 0x4f, 0x65, 0xc2, 0x4c, 0x1c, 0x59, 0x69, 0x9a, 0x5c, 0x90, 0xaf, 0xf7, 0x73, 0xe5, 0xc6, 0x76, 0xdb, 0x36, 0x2a, 0x19, 0x30, 0xba, 0x16, 0xab, 0xa7, 0x6e, 0xf8, 0xda, 0xa4, 0x2b, 0x3e, 0xb2, 0xcc, 0xc4, 0x5c, 0x93, 0x4d, 0x23, 0xd4, 0x92, 0x9a, 0x7a, 0xd9, 0xe3, 0xef, 0x46, 0x8b, 0x06, 0xa4, 0x99, 0x5c, 0x80, 0xdd, 0x23, 0x6a, 0x7b, 0xcf, 0x38, 0x79, 0xd8, 0xb7, 0x94, 0x67, 0xf7, 0x2b, 0x33, 0x84, 0xc1, 0x60, 0xcc, 0x18, 0x17, 0x14, 0xe9, 0x2f, 0x20, 0x35, 0xe7, 0xb9, 0x72, 0xa2, 0xcc, 0x52, 0x42, 0xd9, 0x32, 0x52, 0x5e, 0xae, 0x7c, 0x50, 0xbd, 0x26, 0x3b, 0x0f, 0xa0, 0x9c, 0xbd, 0x9d, 0x6f, 0x98, 0x4b, 0x9c, 0xf6, 0x15, 0x2d, 0x9a, 0x13, 0x3c, 0x27, 0x84, 0x32, 0x02, 0xd1, 0xe8, 0x7f, 0xa5, 0xa6, 0xe1, 0x23, 0x5d, 0x9c, 0x75, 0x6b, 0xb8, 0xe6, 0x8b, 0x05, 0xb9, 0x8d, 0xa5, 0x41, 0x95, 0x22, 0x3f, 0xdf, 0x02, 0x10, 0x25, 0x32, 0x50, 0x63, 0x3c, 0x11, 0xc5, 0xf6, 0x0b, 0x5e, 0x67, 0xd7, 0xee, 0xfc, 0xaa, 0x6c, 0x2d, 0xaa, 0x52, 0x31, 0x37, };
23229 static const u8 ed25519_1010_test_vectors_expected_sig[] = {
23230 	0x9c, 0x69, 0x89, 0xcb, 0xe1, 0x7e, 0x16, 0xca, 0xa2, 0x53, 0xff, 0xb1, 0xa6, 0x4a, 0x10, 0x6f, 0xb0, 0x17, 0x82, 0xc9, 0x9b, 0x17, 0x22, 0xba, 0xf1, 0xac, 0xaa, 0x42, 0xae, 0x5b, 0x36, 0xb7, 0x9b, 0x2a, 0x2c, 0xd8, 0xfc, 0x91, 0xf5, 0xad, 0x89, 0x23, 0x81, 0x70, 0x25, 0xa7, 0x78, 0x25, 0xa0, 0x5d, 0xf8, 0xc4, 0x17, 0xec, 0x53, 0xc4, 0xa3, 0xaa, 0x1c, 0x0e, 0xfd, 0x5b, 0xbe, 0x0f, };
23231 static const ec_test_case ed25519_1010_test_case = {
23232 	.name = "EDDSA25519-SHA512/wei25519 1010",
23233 	.ec_str_p = &wei25519_str_params,
23234 	.priv_key = ed25519_1010_test_vectors_priv_key,
23235 	.priv_key_len = sizeof(ed25519_1010_test_vectors_priv_key),
23236 	.nn_random = NULL,
23237 	.hash_type = SHA512,
23238 	.msg = (const char *)ed25519_1010_test_vectors_message,
23239 	.msglen = sizeof(ed25519_1010_test_vectors_message),
23240 	.sig_type = EDDSA25519,
23241 	.exp_sig = ed25519_1010_test_vectors_expected_sig,
23242 	.exp_siglen = sizeof(ed25519_1010_test_vectors_expected_sig),
23243 	.adata = NULL,
23244 	.adata_len = 0
23245 };
23246 
23247 /************************************************/
23248 static const u8 ed25519_1011_test_vectors_priv_key[] = {
23249 	0xda, 0x01, 0x32, 0x21, 0xb2, 0xf5, 0x88, 0xaf, 0x40, 0xe2, 0x11, 0xa0, 0xf9, 0x75, 0xd4, 0x4f, 0x9d, 0x65, 0x02, 0x81, 0x60, 0x51, 0x4c, 0x39, 0x61, 0x89, 0xf2, 0x7c, 0x7b, 0x06, 0x66, 0xea, };
23250 static const u8 ed25519_1011_test_vectors_message[] = {
23251 	0xbc, 0x93, 0xee, 0x1e, 0xc4, 0x72, 0x8a, 0xc6, 0x36, 0xa6, 0x24, 0x8f, 0xcc, 0x45, 0x51, 0xc9, 0xd1, 0x59, 0x80, 0xdb, 0x8e, 0x5f, 0x54, 0xb0, 0xef, 0x07, 0x5a, 0x71, 0x97, 0x0e, 0x17, 0x6a, 0x3c, 0xb9, 0x18, 0x2e, 0x32, 0xda, 0x7a, 0x8c, 0x2a, 0xc0, 0xcd, 0x7e, 0x59, 0x57, 0x74, 0x57, 0x5f, 0x9c, 0x83, 0x50, 0x6a, 0x60, 0x6f, 0xac, 0xe8, 0x95, 0x12, 0x13, 0x5d, 0x03, 0x2a, 0xb0, 0x5e, 0x39, 0xff, 0xf9, 0xc8, 0xca, 0x6c, 0x25, 0xcd, 0x5d, 0x78, 0xec, 0xc3, 0xac, 0x32, 0x32, 0x90, 0xc9, 0xc8, 0x16, 0x26, 0x73, 0x5e, 0x19, 0x0e, 0xb5, 0xae, 0x34, 0x5c, 0xa7, 0xa9, 0x58, 0x40, 0x9f, 0x77, 0x43, 0xb0, 0xb1, 0x61, 0x49, 0x16, 0x83, 0x22, 0x17, 0xc5, 0x7e, 0xee, 0x1b, 0x4f, 0x8e, 0x62, 0x2a, 0xc0, 0x52, 0xa9, 0x3d, 0xd5, 0xb3, 0x9d, 0x07, 0x61, 0xe4, 0x0e, 0x9f, 0xbd, 0x83, 0x96, 0xf6, 0x0a, 0x3b, 0xf6, 0x66, 0x0c, 0x5f, 0xa9, 0x9c, 0xd8, 0x13, 0x9f, 0x68, 0xcb, 0xe0, 0x89, 0x4e, 0x5c, 0x67, 0xe1, 0x68, 0xcc, 0x74, 0xb2, 0x72, 0x4e, 0x9d, 0x91, 0xd6, 0x00, 0x0a, 0x0c, 0xec, 0x58, 0x7a, 0x11, 0x46, 0x3f, 0x72, 0xee, 0x6e, 0xd2, 0x55, 0xbd, 0x87, 0xeb, 0x30, 0xfd, 0x45, 0x75, 0x96, 0xf6, 0x88, 0xca, 0x0e, 0xa7, 0x3f, 0x30, 0x49, 0x72, 0x38, 0xde, 0x21, 0xc9, 0x3f, 0xbb, 0x12, 0x94, 0xdb, 0x61, 0xe4, 0xa5, 0x60, 0x89, 0x10, 0x6d, 0x1c, 0xf7, 0xce, 0x5a, 0x65, 0xec, 0x3d, 0x12, 0x17, 0x0c, 0xe7, 0x84, 0x0f, 0x08, 0x8a, 0x8d, 0x0e, 0x3a, 0xef, 0x17, 0xe5, 0x31, 0xde, 0x47, 0x80, 0x03, 0x57, 0x02, 0x58, 0xe9, 0x27, 0xf1, 0x56, 0xe7, 0x96, 0x10, 0x65, 0xaf, 0xa6, 0x66, 0xaf, 0x38, 0x58, 0x2b, 0x35, 0x3c, 0xc4, 0x77, 0xba, 0x77, 0x5c, 0xae, 0x45, 0x94, 0x6d, 0x08, 0xdb, 0x75, 0x21, 0x59, 0x14, 0xda, 0x32, 0x61, 0xb6, 0x22, 0x94, 0xe9, 0x2a, 0xfb, 0x38, 0x14, 0x59, 0xc2, 0x1d, 0xda, 0x4e, 0xa6, 0xed, 0x79, 0x5f, 0x79, 0x25, 0x7c, 0x09, 0x4d, 0xd6, 0x08, 0xdc, 0x8e, 0x1b, 0x7c, 0x40, 0xcd, 0x29, 0xfe, 0xa2, 0x22, 0x08, 0x8f, 0x65, 0x69, 0x7e, 0xa8, 0x88, 0x95, 0xd1, 0x0a, 0xce, 0xa8, 0x79, 0x73, 0x60, 0xdc, 0xba, 0xce, 0xe2, 0x69, 0xc6, 0x06, 0x60, 0x0a, 0xdf, 0xfd, 0xcf, 0x9c, 0x7c, 0x38, 0x1d, 0x0a, 0xd6, 0x69, 0x69, 0x67, 0xd9, 0xff, 0x03, 0xe6, 0x1a, 0x24, 0x90, 0x65, 0x02, 0xb2, 0x95, 0xe7, 0x6f, 0x4d, 0x08, 0x75, 0x65, 0x5b, 0x01, 0xe6, 0xff, 0xca, 0xcc, 0x8e, 0xf0, 0x11, 0x29, 0xc7, 0x2a, 0x58, 0x46, 0xb6, 0x0e, 0xc8, 0x00, 0x17, 0x37, 0x4e, 0x75, 0xd3, 0x06, 0x40, 0x3d, 0x9e, 0xcc, 0xf2, 0x64, 0x95, 0xd2, 0x98, 0x12, 0x0a, 0x06, 0x33, 0x83, 0x5c, 0x5d, 0x1e, 0xff, 0x17, 0xc9, 0xc6, 0x24, 0x76, 0xf7, 0x52, 0xc8, 0x97, 0x10, 0xad, 0xfa, 0x4d, 0x51, 0x61, 0x7b, 0x59, 0x18, 0x17, 0x3c, 0xba, 0x72, 0x25, 0x40, 0xe3, 0x88, 0xff, 0xbf, 0xfb, 0x96, 0x68, 0x74, 0xdb, 0x00, 0x40, 0x4d, 0x06, 0xb0, 0xce, 0x11, 0x39, 0xba, 0x74, 0x14, 0x3c, 0x76, 0xb8, 0xf4, 0xd3, 0x3b, 0x21, 0x16, 0xe1, 0xcc, 0xe1, 0x75, 0x17, 0x3a, 0x96, 0xfc, 0x15, 0x1e, 0xa2, 0x39, 0xbf, 0xc2, 0x0d, 0x66, 0xfb, 0xb6, 0xf5, 0x2a, 0x66, 0x6c, 0x0e, 0x81, 0xcc, 0x2b, 0x80, 0x20, 0x91, 0x06, 0xe2, 0x48, 0x0e, 0x41, 0x11, 0xc7, 0x0e, 0x7b, 0xe4, 0xaa, 0xbb, 0x68, 0x42, 0x2f, 0x0b, 0x8c, 0x6b, 0xa1, 0x5c, 0x14, 0x2f, 0x82, 0xe6, 0xc7, 0xf3, 0x78, 0xd7, 0x80, 0x0a, 0x09, 0xea, 0xa4, 0xda, 0x25, 0x3c, 0x2f, 0xd9, 0x1e, 0x12, 0x63, 0xc6, 0xb6, 0x55, 0xbf, 0x70, 0x25, 0x5d, 0x7e, 0x3b, 0xb4, 0x77, 0x55, 0x23, 0xa0, 0xa9, 0xe7, 0xff, 0x03, 0x79, 0x7e, 0xe3, 0xff, 0xca, 0x8a, 0x50, 0xd1, 0x0f, 0x20, 0xd5, 0xe5, 0xa8, 0x89, 0xec, 0x5e, 0x33, 0x4e, 0xf2, 0x6c, 0xf7, 0x99, 0x8b, 0x08, 0x36, 0xf6, 0x56, 0x45, 0x68, 0x88, 0xe1, 0x37, 0xf3, 0x9d, 0x3e, 0x43, 0xe2, 0xce, 0x3c, 0x6e, 0xf5, 0x40, 0xd9, 0x5d, 0x9a, 0x20, 0xc4, 0x2c, 0xb8, 0xae, 0x2d, 0x9d, 0x0f, 0x25, 0xa8, 0x91, 0xc3, 0x63, 0xea, 0xd9, 0xcc, 0x42, 0x3f, 0x9a, 0x32, 0x3f, 0xe2, 0x32, 0x28, 0x1f, 0xb6, 0x7f, 0x5b, 0xe1, 0xc0, 0x78, 0x43, 0x61, 0x46, 0x04, 0x68, 0xa8, 0x7e, 0x95, 0xdf, 0xa3, 0x5d, 0x7f, 0x0f, 0xfa, 0x22, 0x11, 0xbe, 0x6b, 0x5f, 0xb3, 0x2d, 0x42, 0xba, 0x65, 0x18, 0xab, 0x6e, 0xa9, 0x37, 0x80, 0xf4, 0x31, 0xd3, 0x00, 0x67, 0x31, 0xbe, 0x44, 0x40, 0xe7, 0x12, 0x97, 0x4f, 0x74, 0xba, 0xea, 0x41, 0x9f, 0x40, 0x22, 0xfa, 0x25, 0x02, 0xe1, 0xb2, 0x39, 0x8e, 0x93, 0x86, 0x16, 0x7d, 0x93, 0xec, 0xa9, 0x2c, 0xa6, 0x0d, 0xd7, 0xd9, 0x1f, 0xe8, 0x23, 0x24, 0xf6, 0x82, 0xd9, 0x4a, 0xa7, 0xa8, 0x6a, 0xb0, 0x34, 0xf8, 0xa9, 0xe9, 0x52, 0xe8, 0xfc, 0x95, 0xbf, 0xf4, 0xdf, 0xed, 0x6a, 0x43, 0x31, 0x3a, 0xbb, 0x92, 0x40, 0x1b, 0x30, 0xc3, 0x3c, 0x79, 0xa7, 0xba, 0x3e, 0xfd, 0xbe, 0x16, 0x28, 0x04, 0x0f, 0xba, 0xf4, 0x43, 0xf3, 0xf9, 0x80, 0x84, 0x6f, 0xdb, 0x28, 0x3d, 0xcc, 0xd9, 0x3f, 0xab, 0x09, 0x70, 0x8b, 0x7d, 0x54, 0x86, 0x1d, 0x74, 0xb1, 0xfe, 0x8f, 0x10, 0x70, 0x1f, 0x21, 0x1b, 0xa3, 0xd3, 0x90, 0xe8, 0xa6, 0xae, 0x40, 0x77, 0x39, 0x64, 0x6a, 0x79, 0xa5, 0x83, 0x37, 0xa7, 0x17, 0xa8, 0x72, 0x00, 0x9c, 0x2d, 0xf6, 0x76, 0x1c, 0x24, 0x25, 0xa3, 0x2a, 0x00, 0x18, 0xaa, 0xf9, 0x64, 0x64, 0x70, 0xcb, 0xc8, 0x7c, 0x3a, 0x65, 0xc0, 0xe0, 0xef, 0xfb, 0xaa, 0x52, 0x8f, 0xe4, 0x78, 0x3c, 0x77, 0x2a, 0xb2, 0x66, 0xb8, 0xf2, 0x82, 0x68, 0xcf, 0x14, 0xaf, 0x23, 0x4b, 0x15, 0x81, 0x6d, 0x1a, 0x3a, 0x49, 0x1a, 0xf5, 0xf2, 0x97, 0xe3, 0x3d, 0x57, 0x29, 0x71, 0x5d, 0x51, 0x2c, 0x37, 0x3f, 0xef, 0x5e, 0xcc, 0x3f, 0x39, 0x54, 0xa6, 0x0a, 0x2a, 0x0f, 0x64, 0xd8, 0x29, 0x47, 0x41, 0x19, 0xca, 0x1a, 0x18, 0xf1, 0x05, 0x78, 0xd0, 0x4d, 0x63, 0x8d, 0x5e, 0xea, 0xfc, 0x37, 0x1a, 0x94, 0x6f, 0x6c, 0xe7, 0xef, 0xbd, 0x2a, 0xcc, 0xe3, 0x4e, 0x20, 0x44, 0x1c, 0xde, 0x9a, 0x37, 0xd5, 0xa8, 0x7d, 0xc6, 0x19, 0xb0, 0xa7, 0x27, 0x59, 0x6c, 0xd1, 0x2e, 0x15, 0xcd, 0x97, 0x84, 0xbb, 0x91, 0xf1, 0x39, 0x9a, 0x59, 0xfc, 0x0a, 0x7a, 0x4a, 0xf6, 0x8b, 0x0d, 0x57, 0x5d, 0x93, 0x38, 0x71, 0x72, 0x97, 0x33, 0x75, 0xc4, 0x65, 0xdf, 0x5d, 0x2d, 0x5e, 0x06, 0x1a, 0x2a, 0x9b, 0x23, 0xb4, 0x91, 0x5a, 0x0a, 0x8b, 0x8c, 0x1f, 0x09, 0x42, 0x09, 0x4a, 0xf7, 0x28, 0xc8, 0xc3, 0x11, 0x45, 0xfa, 0x7a, 0xaf, 0x74, 0xa2, 0x1a, 0x3b, 0x03, 0x2b, 0xb0, 0x9c, 0x39, 0x22, 0x05, 0xbf, 0x09, 0x5b, 0xda, 0x98, 0x6e, 0x5d, 0xd6, 0x62, 0x7c, 0x1e, 0x41, 0x7f, 0x65, 0x03, 0x26, 0xdf, 0xe3, 0xa9, 0xc9, 0x99, 0x4c, 0x6e, 0x0e, 0x01, 0x27, 0x6f, 0x91, 0xf2, 0x98, 0x7d, 0x2b, 0x85, 0xde, 0xda, 0x96, 0x54, 0x91, };
23252 static const u8 ed25519_1011_test_vectors_expected_sig[] = {
23253 	0x10, 0xcb, 0x52, 0xd6, 0x10, 0xe4, 0xa8, 0x1d, 0x32, 0x86, 0x9b, 0xff, 0xce, 0x38, 0x07, 0xe6, 0x39, 0x1f, 0x78, 0x2f, 0xcd, 0x53, 0x8b, 0x55, 0x4d, 0x09, 0x03, 0x7f, 0xda, 0x72, 0x28, 0x5b, 0x96, 0x62, 0xb1, 0xb1, 0x10, 0x7c, 0x40, 0x81, 0x78, 0xac, 0x00, 0x9f, 0x05, 0x25, 0x96, 0x73, 0x88, 0xa7, 0xd8, 0x5f, 0xa1, 0x23, 0x59, 0xd3, 0xce, 0x38, 0x75, 0x03, 0x7d, 0xcf, 0x6a, 0x04, };
23254 static const ec_test_case ed25519_1011_test_case = {
23255 	.name = "EDDSA25519-SHA512/wei25519 1011",
23256 	.ec_str_p = &wei25519_str_params,
23257 	.priv_key = ed25519_1011_test_vectors_priv_key,
23258 	.priv_key_len = sizeof(ed25519_1011_test_vectors_priv_key),
23259 	.nn_random = NULL,
23260 	.hash_type = SHA512,
23261 	.msg = (const char *)ed25519_1011_test_vectors_message,
23262 	.msglen = sizeof(ed25519_1011_test_vectors_message),
23263 	.sig_type = EDDSA25519,
23264 	.exp_sig = ed25519_1011_test_vectors_expected_sig,
23265 	.exp_siglen = sizeof(ed25519_1011_test_vectors_expected_sig),
23266 	.adata = NULL,
23267 	.adata_len = 0
23268 };
23269 
23270 /************************************************/
23271 static const u8 ed25519_1012_test_vectors_priv_key[] = {
23272 	0x5a, 0x86, 0x8f, 0xb7, 0x5e, 0xa0, 0x72, 0x1f, 0x7e, 0x86, 0xc7, 0xbc, 0x10, 0x6d, 0x74, 0x13, 0xc8, 0xcf, 0x4d, 0x03, 0x3c, 0xe1, 0x40, 0x05, 0xdf, 0x23, 0xce, 0x4c, 0x15, 0x5b, 0xbd, 0x27, };
23273 static const u8 ed25519_1012_test_vectors_message[] = {
23274 	0xd5, 0xaa, 0x11, 0x82, 0x5b, 0x99, 0x44, 0x8c, 0x80, 0x63, 0x06, 0x23, 0xd8, 0xc7, 0x46, 0x01, 0x7c, 0xfe, 0x3d, 0xe6, 0xfa, 0x8a, 0x0c, 0x6e, 0xd6, 0x62, 0x71, 0x27, 0xcf, 0xc1, 0xf8, 0x4d, 0x4e, 0x0a, 0x54, 0xe6, 0xa7, 0xd9, 0x08, 0xd3, 0x71, 0x9f, 0x14, 0x21, 0xd1, 0xd4, 0xc7, 0x8b, 0x3c, 0xdd, 0x94, 0x76, 0x9a, 0xb6, 0x03, 0x3b, 0xce, 0x97, 0x9d, 0xd9, 0x0e, 0x10, 0x68, 0x02, 0xeb, 0xa9, 0xa0, 0x32, 0x95, 0xd4, 0x8f, 0x9b, 0x9a, 0x95, 0xd5, 0x7e, 0xe7, 0x74, 0x54, 0x02, 0xa4, 0x80, 0x23, 0xbf, 0x3b, 0xdd, 0xd5, 0xc6, 0xb9, 0x1c, 0x77, 0x3e, 0x49, 0x19, 0x13, 0xa3, 0x8a, 0xc3, 0x46, 0x26, 0x05, 0xcf, 0x28, 0x2d, 0xea, 0xc7, 0x57, 0x42, 0xfb, 0xd2, 0x75, 0x29, 0x27, 0x6e, 0x81, 0xdc, 0xce, 0x8d, 0xff, 0x96, 0x05, 0x03, 0x5e, 0x8c, 0xf0, 0x5d, 0xf6, 0xa4, 0x3d, 0xb1, 0x51, 0xf0, 0x41, 0x57, 0x65, 0xbc, 0xbd, 0x1f, 0x1b, 0xb6, 0x68, 0xad, 0x62, 0x73, 0xb8, 0x91, 0xc0, 0xdc, 0x4f, 0x3d, 0xba, 0x59, 0x0e, 0xa8, 0x2f, 0x83, 0x63, 0x76, 0x9b, 0x9c, 0x77, 0x51, 0x19, 0x47, 0x11, 0x73, 0x75, 0xdc, 0x49, 0x04, 0xd4, 0x8b, 0x88, 0xb6, 0x8a, 0x25, 0x5b, 0x28, 0x01, 0x1b, 0x11, 0x04, 0x81, 0x94, 0x09, 0x3e, 0x98, 0x20, 0x7a, 0xb1, 0xcf, 0x75, 0x6a, 0xb8, 0x33, 0x1f, 0x8d, 0x6f, 0x9d, 0x5b, 0xe2, 0xe1, 0x19, 0x05, 0x73, 0xe9, 0x5e, 0x71, 0x0f, 0x2a, 0x35, 0x01, 0xb5, 0x3a, 0xa0, 0x82, 0x5d, 0x6c, 0x12, 0xdc, 0xfb, 0x94, 0xac, 0x80, 0xdc, 0x10, 0x82, 0xcb, 0x4a, 0xd2, 0x62, 0xe6, 0xd4, 0x93, 0xad, 0xce, 0xb6, 0xbc, 0x19, 0x14, 0x5f, 0xbf, 0x73, 0x8d, 0xf7, 0x6f, 0x21, 0x34, 0xfa, 0x04, 0xcb, 0xbe, 0x44, 0xff, 0xc5, 0x5f, 0xfe, 0x5f, 0x9d, 0x3e, 0x9b, 0xeb, 0xd1, 0x59, 0xa0, 0x01, 0xaa, 0x9b, 0xf7, 0x88, 0x92, 0xa1, 0x65, 0x38, 0xa5, 0x20, 0x82, 0x3c, 0xde, 0x5d, 0x61, 0xe2, 0x9a, 0x56, 0xa7, 0x7a, 0xb9, 0x6e, 0x49, 0xe3, 0x00, 0xd9, 0x86, 0x59, 0x62, 0xc7, 0xe7, 0xfb, 0x8b, 0xcf, 0x5d, 0xe0, 0xb9, 0x38, 0x29, 0x7c, 0x3f, 0x4d, 0x6f, 0x60, 0x21, 0xe2, 0x4d, 0xfd, 0xad, 0x98, 0x61, 0x65, 0x2f, 0x34, 0x0f, 0x42, 0x1e, 0x7a, 0xf2, 0xc7, 0x1e, 0xd9, 0xa7, 0x15, 0x87, 0xfc, 0x75, 0x3b, 0x11, 0x55, 0x49, 0xb2, 0xf7, 0xf7, 0xcb, 0x29, 0x69, 0x0e, 0xa2, 0xb1, 0x58, 0xa9, 0x4c, 0xd2, 0xbc, 0x42, 0xe7, 0x06, 0x3d, 0x61, 0x9b, 0x93, 0x9d, 0x52, 0x3e, 0x3c, 0x23, 0x7e, 0xb1, 0xf4, 0x08, 0x10, 0xde, 0x0b, 0x44, 0xaa, 0x69, 0x37, 0x86, 0x3d, 0x62, 0x9e, 0xdd, 0x55, 0x75, 0xe6, 0xc0, 0x47, 0x52, 0x61, 0xb6, 0x27, 0x47, 0x30, 0x92, 0x77, 0x5c, 0x84, 0x36, 0x00, 0x11, 0xd5, 0x7c, 0x57, 0x20, 0x9c, 0x2e, 0x87, 0x5a, 0x3f, 0x89, 0x63, 0xe8, 0xb2, 0x41, 0xa7, 0xaa, 0x75, 0xef, 0x30, 0xc4, 0xa7, 0x18, 0xac, 0x4d, 0xd4, 0x66, 0xdc, 0x7a, 0x3e, 0x40, 0xe5, 0x87, 0x4f, 0x15, 0x7a, 0x84, 0x9e, 0xd3, 0xa3, 0xa9, 0xd4, 0xae, 0xb7, 0xd9, 0x4d, 0xf0, 0x9b, 0xb5, 0x5a, 0x0b, 0x2b, 0xc9, 0xf8, 0xb6, 0x95, 0xc3, 0x71, 0x79, 0x30, 0x23, 0x67, 0x60, 0x63, 0x67, 0xc5, 0xf3, 0x24, 0x82, 0x8c, 0xe7, 0x5a, 0x94, 0x4f, 0x50, 0x70, 0x3a, 0x47, 0x90, 0x6a, 0x80, 0x88, 0xf3, 0xa1, 0x1c, 0xfe, 0x4a, 0x85, 0x4e, 0x01, 0xf1, 0x74, 0x12, 0x52, 0xc4, 0x86, 0x33, 0x7d, 0x06, 0xb1, 0xcc, 0x6c, 0x6b, 0x9b, 0x12, 0x95, 0x43, 0x1e, 0xe0, 0x73, 0x59, 0x35, 0x7b, 0x3a, 0x78, 0xef, 0x50, 0x75, 0xb6, 0x5d, 0x7f, 0xed, 0x5e, 0xb7, 0x42, 0xe5, 0x10, 0x15, 0x98, 0x44, 0x4b, 0x46, 0x62, 0x3f, 0x89, 0xa3, 0x03, 0xac, 0xc1, 0x0c, 0x73, 0x24, 0x49, 0x51, 0x3b, 0x70, 0xdc, 0x45, 0x6a, 0x79, 0xd3, 0x7c, 0x48, 0xe5, 0xe7, 0x26, 0xc2, 0xf5, 0x58, 0xda, 0x0a, 0x1c, 0x46, 0xef, 0xbd, 0x2d, 0x92, 0x03, 0x26, 0xa6, 0x78, 0xb8, 0xa2, 0x2f, 0x09, 0x44, 0xbe, 0x4a, 0xf5, 0x5b, 0x6c, 0x71, 0xf4, 0x53, 0xfb, 0xae, 0x40, 0x0e, 0x6a, 0xcc, 0x04, 0xe0, 0xe9, 0x5c, 0xa2, 0x00, 0x16, 0x7e, 0x96, 0xee, 0x98, 0xea, 0x83, 0x93, 0x16, 0xda, 0x93, 0xa1, 0x2c, 0x2d, 0x76, 0xf1, 0x1a, 0xee, 0xbe, 0xb7, 0x8e, 0x65, 0xea, 0x48, 0xf7, 0xfe, 0xeb, 0xbb, 0x13, 0x7b, 0x2a, 0xc6, 0x7e, 0xae, 0xf0, 0x2a, 0x2d, 0x9e, 0x64, 0x71, 0xdd, 0x63, 0x4a, 0x03, 0x7d, 0x4f, 0x5d, 0x35, 0xa2, 0xf7, 0x8a, 0xf4, 0x1a, 0x8e, 0xa5, 0xaf, 0x5b, 0xc8, 0x15, 0x0a, 0x99, 0xed, 0x68, 0xa6, 0xa0, 0xcc, 0xff, 0x2b, 0x1d, 0x79, 0x65, 0xd8, 0xbc, 0x3e, 0xf9, 0x28, 0x5b, 0xa6, 0x42, 0x1d, 0x87, 0xc3, 0x3a, 0xad, 0x81, 0x03, 0xa5, 0x87, 0xbe, 0x01, 0x92, 0x68, 0x45, 0xbf, 0xbd, 0xdb, 0xaf, 0xc6, 0x9c, 0x4b, 0x92, 0x52, 0x88, 0x67, 0x20, 0xd4, 0x18, 0x50, 0x9f, 0x40, 0xf3, 0xdc, 0xf5, 0x57, 0x65, 0xdc, 0xcc, 0x3d, 0xee, 0xd8, 0x27, 0x72, 0x15, 0xe6, 0x9f, 0x05, 0x6b, 0xa3, 0x1b, 0x8a, 0x30, 0xb5, 0x00, 0x94, 0xea, 0x8f, 0x14, 0x47, 0x20, 0x76, 0x0c, 0x8f, 0x8c, 0x05, 0x5c, 0xf1, 0xa8, 0x69, 0x64, 0xff, 0xcb, 0xb8, 0xee, 0x1b, 0xb2, 0x18, 0x12, 0x76, 0xea, 0x99, 0xa7, 0xb8, 0xe7, 0x10, 0x67, 0xfa, 0x31, 0x0b, 0xa4, 0x47, 0x1e, 0x84, 0x27, 0x90, 0x37, 0xbc, 0x49, 0x2a, 0x55, 0xde, 0x20, 0x55, 0x48, 0xe7, 0x7b, 0x01, 0x45, 0x04, 0xee, 0x66, 0x64, 0xc4, 0x98, 0x8c, 0xbb, 0x9e, 0xd9, 0x1f, 0xf3, 0x2e, 0x22, 0x59, 0xed, 0x4c, 0xfd, 0x61, 0xa1, 0x97, 0xd0, 0xdb, 0xc3, 0x2c, 0x68, 0xf6, 0x54, 0x9c, 0x0d, 0x29, 0xfc, 0x45, 0xf3, 0x6a, 0xcb, 0x26, 0xb1, 0x64, 0xde, 0x97, 0xcc, 0xdc, 0x37, 0x90, 0x0d, 0x93, 0xcd, 0xbc, 0xf9, 0x68, 0x7e, 0xf5, 0x3f, 0x1f, 0x4d, 0xa1, 0xb1, 0xae, 0x42, 0x25, 0xb8, 0x84, 0x20, 0x9e, 0x81, 0xba, 0x43, 0x11, 0x52, 0x04, 0x77, 0xed, 0x42, 0x11, 0xb0, 0x92, 0x40, 0xbd, 0x7b, 0x82, 0x5e, 0x54, 0x73, 0x9f, 0xe2, 0x5d, 0x86, 0x24, 0xaf, 0x04, 0xb8, 0x6f, 0x6d, 0x11, 0x06, 0xd1, 0x81, 0x70, 0xe5, 0x06, 0x4d, 0x1a, 0x73, 0xc1, 0xfb, 0x1a, 0x27, 0xb2, 0x89, 0xa9, 0x48, 0xd7, 0x71, 0xa2, 0xf6, 0xb8, 0xb0, 0x9a, 0x63, 0x5d, 0xb9, 0x6c, 0x62, 0x51, 0xc3, 0x5a, 0x18, 0x76, 0xd3, 0x69, 0x62, 0x66, 0x99, 0x41, 0x6c, 0x0e, 0x40, 0x29, 0x8a, 0x68, 0x1f, 0xda, 0xf5, 0x25, 0x5f, 0x58, 0xc2, 0x55, 0x77, 0x59, 0xd8, 0xf5, 0xdf, 0x14, 0x8d, 0xec, 0x9d, 0xbe, 0x1c, 0xe6, 0xdf, 0x04, 0x1c, 0x36, 0xf8, 0x3e, 0x69, 0xcc, 0xfb, 0x4a, 0xac, 0xa5, 0xcb, 0x48, 0xfa, 0x6a, 0x85, 0xc8, 0xff, 0x66, 0x06, 0x15, 0x24, 0xd8, 0xb1, 0x1b, 0xd7, 0xff, 0xae, 0xd9, 0x9d, 0x0c, 0xd4, 0x5c, 0x42, 0x01, 0x0f, 0x21, 0xd3, 0x6c, 0xc3, 0x16, 0xca, 0x86, 0x09, 0x55, 0x63, 0x5b, 0xff, 0xaa, 0x7d, 0x9a, 0xac, 0x57, 0x2d, 0xcc, 0xf3, 0x15, 0x3d, 0x42, 0xee, 0x8a, 0x2b, 0x12, 0xba, 0xa5, 0x7c, 0x16, 0x0b, 0xd0, 0xad, };
23275 static const u8 ed25519_1012_test_vectors_expected_sig[] = {
23276 	0x38, 0xc4, 0x8d, 0xba, 0x99, 0xa6, 0x52, 0x4a, 0x18, 0x8d, 0x5c, 0xd7, 0x8a, 0x98, 0xe6, 0x77, 0xdd, 0x26, 0x3e, 0xf6, 0xb4, 0xdf, 0x44, 0x6b, 0x31, 0x0b, 0x3d, 0xd8, 0x9c, 0xaf, 0xdd, 0xb9, 0xb1, 0x7a, 0x65, 0xbb, 0xa8, 0xe1, 0x39, 0x68, 0xbd, 0xc2, 0x5b, 0x1d, 0x84, 0xb6, 0xe2, 0x43, 0x6e, 0xdf, 0x31, 0xaa, 0x75, 0x6e, 0x3a, 0x48, 0x72, 0x6d, 0x6f, 0x91, 0xc8, 0x08, 0xee, 0x0e, };
23277 static const ec_test_case ed25519_1012_test_case = {
23278 	.name = "EDDSA25519-SHA512/wei25519 1012",
23279 	.ec_str_p = &wei25519_str_params,
23280 	.priv_key = ed25519_1012_test_vectors_priv_key,
23281 	.priv_key_len = sizeof(ed25519_1012_test_vectors_priv_key),
23282 	.nn_random = NULL,
23283 	.hash_type = SHA512,
23284 	.msg = (const char *)ed25519_1012_test_vectors_message,
23285 	.msglen = sizeof(ed25519_1012_test_vectors_message),
23286 	.sig_type = EDDSA25519,
23287 	.exp_sig = ed25519_1012_test_vectors_expected_sig,
23288 	.exp_siglen = sizeof(ed25519_1012_test_vectors_expected_sig),
23289 	.adata = NULL,
23290 	.adata_len = 0
23291 };
23292 
23293 /************************************************/
23294 static const u8 ed25519_1013_test_vectors_priv_key[] = {
23295 	0xc5, 0x4b, 0xd3, 0x43, 0x1f, 0x26, 0x59, 0x28, 0x1d, 0x31, 0xe9, 0x3b, 0x30, 0x78, 0x76, 0x68, 0xbc, 0xba, 0x6e, 0x5e, 0xe4, 0x7d, 0xb4, 0x6e, 0x50, 0xde, 0xab, 0xe3, 0xf4, 0x8c, 0x9e, 0xd8, };
23296 static const u8 ed25519_1013_test_vectors_message[] = {
23297 	0x6f, 0x8c, 0xdd, 0x75, 0xe1, 0xb8, 0x56, 0xbb, 0xbe, 0x9c, 0xdc, 0x25, 0x53, 0x7f, 0xdf, 0x7e, 0x82, 0x36, 0xcb, 0x02, 0x9a, 0xcd, 0x39, 0x84, 0x49, 0x21, 0x10, 0xd0, 0xc3, 0x04, 0x41, 0xd4, 0x21, 0x84, 0xb5, 0xfb, 0x18, 0x3d, 0xa9, 0xf3, 0x14, 0x03, 0x78, 0xdf, 0xa7, 0xd7, 0x4c, 0xcc, 0x9e, 0xf5, 0x00, 0x19, 0x3c, 0xc9, 0x57, 0x9f, 0xff, 0xa6, 0x0b, 0xd2, 0xa8, 0xab, 0x9e, 0x09, 0x58, 0x15, 0x00, 0xcf, 0x06, 0xcd, 0x35, 0xab, 0xc1, 0x71, 0xd9, 0xd1, 0x2c, 0x65, 0x80, 0xd9, 0x68, 0x2f, 0x9f, 0x49, 0xfe, 0x36, 0xd0, 0xa3, 0x17, 0x72, 0x38, 0xfa, 0x50, 0xe7, 0xeb, 0x4c, 0x27, 0xe4, 0x60, 0xf5, 0xe4, 0x58, 0x0a, 0x56, 0x56, 0x8a, 0x19, 0xe0, 0x3d, 0x95, 0xb0, 0xff, 0x4f, 0x4a, 0x23, 0x18, 0x24, 0xcd, 0x2f, 0x34, 0x42, 0xe0, 0xba, 0x40, 0x0b, 0xc1, 0x1b, 0x7a, 0x98, 0x9d, 0x50, 0x1f, 0x5d, 0xf3, 0x5e, 0x43, 0x01, 0x50, 0x8f, 0x72, 0xa8, 0x52, 0x01, 0x4b, 0xfb, 0xf4, 0x00, 0x1e, 0x28, 0x09, 0x54, 0x73, 0xd9, 0x65, 0x9e, 0xed, 0x60, 0x67, 0xba, 0xf6, 0x8f, 0x92, 0xbe, 0xf3, 0x12, 0xc0, 0x9b, 0x19, 0xaa, 0xf7, 0xc4, 0xfb, 0xa3, 0xd9, 0x02, 0xb9, 0xf6, 0xcf, 0x95, 0x2e, 0xb9, 0xb9, 0xa5, 0x3c, 0xa8, 0xbc, 0xbd, 0x04, 0x2d, 0x84, 0x2e, 0x98, 0x53, 0xb6, 0x72, 0xa1, 0xd0, 0x09, 0xd8, 0x23, 0x83, 0x8b, 0xeb, 0xe5, 0x63, 0x7c, 0x4c, 0x07, 0xed, 0x1b, 0x19, 0x48, 0x55, 0x4b, 0x23, 0xb3, 0x2d, 0xe1, 0xd6, 0xc1, 0x16, 0xf9, 0x33, 0xb3, 0x54, 0xf2, 0x8b, 0xbb, 0x77, 0x9f, 0xa6, 0x54, 0x8c, 0x48, 0x29, 0x2b, 0x61, 0x2c, 0x7f, 0x55, 0x1a, 0x75, 0xfb, 0xc4, 0x6c, 0x02, 0x73, 0x6b, 0xf9, 0x9e, 0x9c, 0x8e, 0xad, 0x56, 0xf0, 0x5a, 0xb0, 0x42, 0x7a, 0x6e, 0xc6, 0x16, 0xe3, 0xdc, 0xc7, 0x75, 0x7e, 0xfd, 0xb7, 0x62, 0x8d, 0x4e, 0x96, 0x32, 0x5f, 0xe0, 0xae, 0x25, 0x4c, 0xef, 0x5c, 0xb7, 0xa7, 0x04, 0xb3, 0x5a, 0x92, 0x0c, 0xb3, 0xfa, 0x2a, 0x03, 0xe9, 0x61, 0xda, 0xf3, 0x71, 0x82, 0x1b, 0xe0, 0xb3, 0x0f, 0x19, 0xae, 0x49, 0x52, 0x44, 0x1e, 0x08, 0xa7, 0xd2, 0x2f, 0x54, 0x31, 0x39, 0x0a, 0x5b, 0xe8, 0x09, 0x7f, 0xd5, 0x79, 0x7a, 0x1a, 0x62, 0x97, 0x66, 0x4d, 0xa4, 0x2c, 0x20, 0x08, 0xd0, 0x32, 0x10, 0x60, 0xeb, 0xe3, 0x18, 0x1e, 0xb7, 0x95, 0xa7, 0x28, 0x92, 0x58, 0x08, 0xda, 0x78, 0x67, 0x29, 0x3b, 0x72, 0x08, 0xf3, 0x77, 0xd3, 0xa7, 0x71, 0x18, 0x5e, 0x6d, 0x2c, 0x1c, 0x8c, 0xe1, 0x83, 0x76, 0xfe, 0x3c, 0x0c, 0x14, 0x58, 0xc7, 0xf5, 0xbe, 0x34, 0xf4, 0x28, 0xa0, 0xd5, 0x75, 0x93, 0x10, 0x74, 0xc9, 0x7c, 0xbf, 0xce, 0x8a, 0xd8, 0x13, 0x13, 0xec, 0xca, 0x73, 0xa9, 0xf3, 0xdb, 0x43, 0x4f, 0xba, 0xd4, 0xbb, 0xbf, 0xf5, 0x02, 0xbf, 0x72, 0x97, 0xe1, 0x7a, 0x97, 0xa8, 0x86, 0x42, 0x11, 0xe6, 0x78, 0x9b, 0xa1, 0x92, 0x03, 0x6e, 0xa5, 0x9a, 0x34, 0xd8, 0x4f, 0xf2, 0xa1, 0x11, 0x07, 0x4c, 0x3f, 0x23, 0x73, 0xb1, 0x01, 0x11, 0xb5, 0xda, 0xa7, 0x89, 0x56, 0x0c, 0xb3, 0x54, 0x90, 0x95, 0x4c, 0x88, 0xea, 0x00, 0xc4, 0x10, 0xdf, 0x85, 0x0a, 0xd0, 0x0c, 0xae, 0x2f, 0x28, 0xe7, 0x19, 0xfb, 0x06, 0x71, 0x69, 0x88, 0xa9, 0xbb, 0x0b, 0xfc, 0x6c, 0x98, 0x9d, 0x58, 0x7e, 0x56, 0x85, 0xae, 0x88, 0x3c, 0x2c, 0x2e, 0x74, 0xdd, 0xbf, 0x91, 0x5c, 0x98, 0x56, 0xaa, 0xe8, 0xf3, 0x28, 0x8f, 0xc6, 0x25, 0xbf, 0xb2, 0xfe, 0x26, 0x8d, 0x74, 0xf5, 0x9f, 0x8b, 0x7d, 0x83, 0x63, 0x74, 0x97, 0x69, 0x16, 0x90, 0x07, 0xd5, 0xe6, 0x7b, 0x7d, 0x0b, 0x8c, 0x8f, 0x5a, 0x9d, 0x9f, 0x9c, 0x7b, 0x74, 0x5c, 0x0a, 0x42, 0x94, 0x76, 0x2c, 0xbe, 0xca, 0x42, 0xd5, 0x38, 0x49, 0x61, 0xe9, 0x21, 0xa7, 0xef, 0xb6, 0x5d, 0xa8, 0xd1, 0xe0, 0x3b, 0x67, 0x45, 0xcd, 0xf3, 0x08, 0x09, 0x7f, 0xb1, 0x3d, 0x64, 0xfd, 0x2f, 0x8c, 0x10, 0xfa, 0x95, 0x09, 0xeb, 0x2d, 0x91, 0x38, 0x7f, 0x00, 0x64, 0x5c, 0xa7, 0xd0, 0x48, 0x3b, 0x2c, 0xd1, 0x4c, 0x20, 0x6b, 0x8d, 0x7a, 0xe0, 0xa3, 0xfb, 0x7c, 0x09, 0xbc, 0x68, 0x43, 0xd1, 0x02, 0xad, 0xcd, 0xa1, 0x9f, 0x8b, 0xbd, 0x85, 0x1e, 0xb6, 0x83, 0xc4, 0x43, 0x5c, 0xeb, 0x4b, 0x3d, 0x23, 0xd3, 0x8f, 0x56, 0xd4, 0xd1, 0x11, 0x4e, 0xef, 0x0f, 0xc6, 0xf2, 0x4d, 0xf5, 0x27, 0x70, 0xd8, 0xf1, 0xf3, 0xf8, 0x2f, 0x47, 0x20, 0xe8, 0x92, 0xb3, 0x15, 0x24, 0x4e, 0xf5, 0x6c, 0x36, 0xb2, 0x3f, 0xcd, 0x40, 0x79, 0x78, 0x52, 0x41, 0x40, 0x38, 0x2e, 0x11, 0x74, 0x0f, 0xd4, 0x6f, 0xe4, 0x29, 0x99, 0x23, 0xf5, 0x2b, 0x88, 0xb4, 0xa9, 0xcf, 0xf4, 0xb2, 0xb4, 0xb2, 0x3a, 0x2e, 0x76, 0x0a, 0xd8, 0x1c, 0x78, 0xba, 0x87, 0x69, 0x31, 0xd9, 0xaa, 0xa4, 0xbe, 0xed, 0x40, 0xfb, 0x10, 0xa7, 0x99, 0xeb, 0x30, 0xd3, 0x7f, 0x75, 0x47, 0x78, 0xba, 0xc8, 0x5b, 0xf0, 0x63, 0x1d, 0x85, 0x2b, 0xe7, 0xd7, 0x4a, 0x64, 0x31, 0xf3, 0x84, 0xa4, 0x02, 0x5c, 0x10, 0x91, 0x42, 0x1d, 0x67, 0xa4, 0xe9, 0xc9, 0x4c, 0x1b, 0xe3, 0x69, 0x0c, 0x6b, 0xf8, 0x1d, 0x06, 0xbd, 0xaf, 0x32, 0xfe, 0xab, 0xba, 0xf1, 0xdc, 0x26, 0x3f, 0x27, 0x3a, 0x0b, 0x9e, 0xd6, 0x54, 0x60, 0xba, 0xef, 0xce, 0xfc, 0xf6, 0xac, 0xcc, 0xda, 0x0e, 0xdd, 0x23, 0xdf, 0x9e, 0x05, 0x12, 0x8e, 0x29, 0xd6, 0x61, 0xc4, 0xb4, 0x4b, 0xd9, 0x2d, 0x64, 0x0f, 0xaa, 0x85, 0x3a, 0xfd, 0x83, 0x70, 0xe5, 0x63, 0xb4, 0x0a, 0xe0, 0x14, 0x9a, 0x14, 0x28, 0xe0, 0x6e, 0x3d, 0xd8, 0xe6, 0x6b, 0x79, 0xda, 0x21, 0xcc, 0x75, 0x3d, 0xdc, 0x47, 0x6e, 0x3d, 0x76, 0xe2, 0xf3, 0x6f, 0x2b, 0x6c, 0x6b, 0xc1, 0xb6, 0x50, 0x87, 0xd5, 0xf8, 0x6c, 0x8a, 0xc3, 0x54, 0x71, 0x1a, 0x8c, 0x08, 0xf3, 0x48, 0x6e, 0x47, 0x9d, 0x6a, 0xe9, 0x43, 0xf8, 0x84, 0x63, 0x32, 0xd4, 0xe5, 0xb4, 0xbb, 0x2e, 0x82, 0x57, 0xe3, 0x08, 0x3d, 0xf4, 0xf8, 0x1d, 0xd4, 0xf0, 0xc1, 0xee, 0x1d, 0x97, 0x18, 0x21, 0x66, 0x16, 0x1a, 0x18, 0x59, 0x7e, 0xe0, 0xb9, 0x59, 0xde, 0x1c, 0x45, 0x59, 0x1a, 0xbf, 0x7c, 0x51, 0x03, 0x3d, 0x7c, 0x66, 0x35, 0x2d, 0xee, 0xb6, 0x82, 0xe7, 0x77, 0xae, 0xae, 0x2f, 0xa8, 0xd3, 0xa7, 0x7f, 0x47, 0x0d, 0xb7, 0x8d, 0xdc, 0x1b, 0x1f, 0xc8, 0x28, 0x40, 0xc4, 0x06, 0x57, 0x76, 0xd9, 0xbf, 0xca, 0x9d, 0x39, 0x2d, 0x92, 0x88, 0xee, 0x91, 0x32, 0xaa, 0x3e, 0x4f, 0x2d, 0x19, 0xd0, 0xd9, 0x3e, 0x01, 0xb6, 0x66, 0xf3, 0x64, 0x7a, 0xba, 0xf2, 0x25, 0xc2, 0x92, 0x41, 0x9c, 0x8a, 0x82, 0xeb, 0xa3, 0xe1, 0x1a, 0xb1, 0x03, 0x84, 0x6f, 0xcd, 0x49, 0x35, 0xf4, 0x12, 0x41, 0x47, 0x7c, 0x0f, 0x15, 0x2b, 0x79, 0x65, 0xad, 0x54, 0xbb, 0x72, 0xbc, 0x3d, 0xe2, 0xe0, 0xb7, 0x9d, 0x62, 0x25, 0xe8, 0xfa, 0x7a, 0x62, 0x86, 0xb5, 0xfc, 0xcb, 0xb3, 0x58, 0x22, 0xe8, 0x0c, 0x8b, 0xfe, 0xa7, 0x4c, 0xb4, 0x8a, 0x22, 0xd2, 0x41, 0x38, 0x53, 0x95, 0xc2, };
23298 static const u8 ed25519_1013_test_vectors_expected_sig[] = {
23299 	0xdf, 0x45, 0x41, 0xdf, 0xf1, 0xa9, 0x79, 0x7f, 0xeb, 0x61, 0x7f, 0x98, 0xe4, 0xb5, 0x7a, 0xa7, 0x71, 0x41, 0x31, 0xee, 0x8f, 0xf5, 0x45, 0xed, 0x50, 0x82, 0xe3, 0x56, 0x8e, 0xfd, 0x1c, 0x39, 0x9c, 0xdc, 0x56, 0xf5, 0x58, 0x29, 0x91, 0xeb, 0x87, 0x85, 0xfb, 0x33, 0x86, 0x4e, 0xef, 0x7f, 0x55, 0x3f, 0x3e, 0x24, 0x82, 0x62, 0xed, 0x54, 0x8a, 0x1a, 0x68, 0x88, 0xf9, 0x2e, 0x92, 0x0e, };
23300 static const ec_test_case ed25519_1013_test_case = {
23301 	.name = "EDDSA25519-SHA512/wei25519 1013",
23302 	.ec_str_p = &wei25519_str_params,
23303 	.priv_key = ed25519_1013_test_vectors_priv_key,
23304 	.priv_key_len = sizeof(ed25519_1013_test_vectors_priv_key),
23305 	.nn_random = NULL,
23306 	.hash_type = SHA512,
23307 	.msg = (const char *)ed25519_1013_test_vectors_message,
23308 	.msglen = sizeof(ed25519_1013_test_vectors_message),
23309 	.sig_type = EDDSA25519,
23310 	.exp_sig = ed25519_1013_test_vectors_expected_sig,
23311 	.exp_siglen = sizeof(ed25519_1013_test_vectors_expected_sig),
23312 	.adata = NULL,
23313 	.adata_len = 0
23314 };
23315 
23316 /************************************************/
23317 static const u8 ed25519_1014_test_vectors_priv_key[] = {
23318 	0xea, 0x60, 0xda, 0x01, 0x79, 0xbc, 0xaf, 0x6b, 0x21, 0x81, 0x42, 0xb1, 0x11, 0x90, 0x46, 0xff, 0xe6, 0xd8, 0x5a, 0x74, 0x1b, 0x0d, 0x16, 0x62, 0x30, 0xbc, 0x6d, 0xe3, 0x30, 0x4f, 0x67, 0x73, };
23319 static const u8 ed25519_1014_test_vectors_message[] = {
23320 	0x61, 0x2d, 0x6e, 0xf6, 0xe4, 0x34, 0x9f, 0xfa, 0xe5, 0x16, 0xe9, 0x83, 0xe8, 0xfa, 0x7b, 0x52, 0xd9, 0xfd, 0x13, 0x42, 0x82, 0x24, 0x0d, 0x95, 0x14, 0x38, 0x24, 0xbd, 0x4a, 0xae, 0x03, 0x23, 0x4b, 0x76, 0xa8, 0xcd, 0x6d, 0x40, 0x68, 0xcf, 0x00, 0x9e, 0x48, 0x1c, 0x26, 0x85, 0x36, 0x1c, 0x75, 0x50, 0x42, 0xc4, 0xe6, 0xab, 0x87, 0x03, 0xec, 0xbf, 0x8f, 0x02, 0x0c, 0xf5, 0x73, 0x9a, 0x4c, 0x2a, 0x03, 0xc3, 0x73, 0x1e, 0x9c, 0xf7, 0x5a, 0xee, 0x25, 0x96, 0x61, 0x53, 0xb9, 0x71, 0x15, 0x15, 0xc6, 0xc3, 0x9a, 0xfa, 0x95, 0xf2, 0x21, 0xac, 0x33, 0x95, 0xb0, 0x89, 0xc9, 0x7a, 0xc9, 0xb5, 0x14, 0xe1, 0x7d, 0x55, 0xf7, 0x96, 0xa3, 0xec, 0xc1, 0x35, 0xfa, 0xaa, 0xee, 0x90, 0x7a, 0xab, 0x10, 0x29, 0x64, 0x7b, 0x48, 0xac, 0x81, 0x74, 0x9b, 0xab, 0x26, 0x62, 0x7c, 0xf7, 0x09, 0x5d, 0x74, 0xc2, 0xfc, 0xee, 0x35, 0x67, 0x1c, 0x8b, 0xb4, 0x60, 0x53, 0xf5, 0x15, 0x1b, 0x0c, 0x2e, 0x5d, 0xab, 0xe0, 0xf2, 0xd6, 0xaa, 0x20, 0x41, 0x33, 0x05, 0x02, 0x0b, 0x2a, 0xfd, 0x9e, 0xe3, 0x38, 0x7b, 0x2c, 0x9e, 0xd0, 0xbc, 0x3f, 0xe2, 0x90, 0x2a, 0xf4, 0x10, 0x0c, 0xec, 0x23, 0x32, 0x7b, 0x0f, 0x1e, 0x4c, 0xa3, 0x9e, 0xf6, 0xea, 0xf6, 0xfd, 0xf5, 0xd5, 0xac, 0xf9, 0x3f, 0xc8, 0x68, 0x53, 0x6d, 0x8c, 0xba, 0x40, 0x17, 0x69, 0x32, 0x9f, 0xbe, 0x93, 0xef, 0xfc, 0x7e, 0xe6, 0xbf, 0x93, 0xa6, 0xe5, 0x88, 0xbd, 0x55, 0x1e, 0xaa, 0x51, 0x28, 0x53, 0x95, 0x2c, 0x81, 0xb2, 0x45, 0xe5, 0xd2, 0x29, 0xd2, 0x94, 0xe4, 0x13, 0x70, 0xb8, 0x67, 0x80, 0x86, 0x67, 0x88, 0x7a, 0x6f, 0x9e, 0xba, 0x2a, 0x8d, 0x56, 0xa7, 0xa7, 0x04, 0xe6, 0x6b, 0x1c, 0x02, 0xf9, 0x6e, 0x73, 0x89, 0x5f, 0x48, 0x3e, 0x44, 0xa5, 0xc5, 0x66, 0xcb, 0x1a, 0xf2, 0x65, 0x73, 0xbf, 0xe2, 0xaf, 0xce, 0x06, 0xb1, 0xfb, 0x58, 0x77, 0xe5, 0x1e, 0xf3, 0x12, 0x6a, 0x3f, 0x21, 0x0f, 0xbf, 0x21, 0x3e, 0xd6, 0x5d, 0x5c, 0xa4, 0x6c, 0x46, 0xce, 0x4a, 0xa9, 0x45, 0xbd, 0x8c, 0xa6, 0x11, 0xe3, 0x83, 0x62, 0x50, 0xf5, 0x64, 0xf7, 0xea, 0x35, 0x42, 0x39, 0x82, 0xf9, 0x70, 0x5f, 0xcd, 0x6b, 0xef, 0x46, 0xae, 0x16, 0xcb, 0x0f, 0x6b, 0xc9, 0x12, 0xc3, 0xf2, 0x86, 0x42, 0xb8, 0xd8, 0x77, 0x75, 0xb8, 0x18, 0xe4, 0xe4, 0xe8, 0x06, 0x11, 0x67, 0x89, 0x9b, 0xd2, 0x7a, 0x7e, 0x2f, 0xb8, 0x18, 0x7e, 0xe9, 0x91, 0x7d, 0x2d, 0x58, 0x6b, 0xf9, 0xd4, 0x99, 0xe8, 0xfa, 0xbc, 0xa8, 0x3d, 0xdf, 0x58, 0xc7, 0x43, 0x7e, 0xaa, 0xce, 0xc4, 0xf4, 0x44, 0xfb, 0x2b, 0xf7, 0x45, 0xdc, 0xcd, 0x8c, 0xae, 0x38, 0x94, 0x45, 0x71, 0xde, 0xde, 0x20, 0x37, 0xdc, 0x41, 0xf0, 0x81, 0x8a, 0x3d, 0x91, 0xe3, 0x02, 0x0a, 0x72, 0x74, 0xc6, 0x67, 0x42, 0x47, 0x87, 0x60, 0x83, 0xd0, 0xe3, 0x97, 0x46, 0xc9, 0x68, 0x40, 0x61, 0xbf, 0x74, 0xad, 0x58, 0x84, 0x36, 0xce, 0x1b, 0x76, 0x3d, 0xbf, 0x4b, 0xfc, 0xf8, 0xde, 0x6e, 0x35, 0xc5, 0xa7, 0x62, 0x66, 0x75, 0xc1, 0x27, 0x29, 0x2b, 0x21, 0xdf, 0x3c, 0x16, 0xf8, 0x10, 0x63, 0x32, 0x2a, 0x75, 0xf3, 0x43, 0x88, 0x86, 0xf1, 0xf0, 0xce, 0xbf, 0xc1, 0xa9, 0x6f, 0x41, 0x38, 0x4c, 0xbd, 0xd8, 0x61, 0xb0, 0x4f, 0x51, 0x9f, 0xf6, 0xa9, 0x34, 0x4d, 0x94, 0xf3, 0xd3, 0xa0, 0xab, 0xa8, 0x40, 0x9d, 0xfc, 0xf1, 0x8d, 0x01, 0xf2, 0xb5, 0xb4, 0x55, 0x17, 0x16, 0x39, 0xee, 0xa7, 0x7d, 0xee, 0x70, 0x6e, 0xa8, 0x3d, 0xcd, 0x2b, 0x8b, 0x1f, 0xc5, 0xec, 0x0d, 0x74, 0x07, 0x61, 0xa5, 0xf0, 0x5f, 0x7e, 0xc8, 0xd8, 0x7a, 0xd1, 0xf2, 0x92, 0xa5, 0x0c, 0x8b, 0xae, 0x0a, 0xd3, 0x2b, 0x03, 0x41, 0x9a, 0x95, 0x0d, 0x9f, 0xe3, 0xb3, 0xec, 0xc4, 0xd8, 0xd3, 0xaa, 0x95, 0xe0, 0x2b, 0x51, 0xb1, 0x83, 0x1d, 0x83, 0xea, 0xde, 0xaa, 0x44, 0x23, 0x86, 0x35, 0xf9, 0xc6, 0x5e, 0xfe, 0x2f, 0x67, 0x44, 0xa7, 0x0b, 0x9a, 0xe4, 0x1e, 0xf1, 0x5d, 0x97, 0x90, 0x8c, 0x05, 0x33, 0x93, 0x44, 0x12, 0xf7, 0x95, 0x83, 0xd0, 0xe9, 0xb3, 0xd7, 0x06, 0xa1, 0x28, 0xe8, 0x8f, 0xb5, 0x1e, 0xed, 0xb6, 0x5e, 0x46, 0xd8, 0xa2, 0xb3, 0x8b, 0xbd, 0xd6, 0x45, 0x55, 0x54, 0x96, 0x7a, 0x8d, 0xc0, 0xc6, 0x8b, 0xdd, 0xfe, 0xae, 0x0f, 0x8f, 0x72, 0xf0, 0xb8, 0x86, 0xc3, 0xc7, 0x41, 0xfa, 0xc4, 0xf9, 0x1e, 0x5c, 0x49, 0x1d, 0xba, 0xe9, 0xda, 0x45, 0x94, 0x83, 0x6c, 0xf1, 0xd9, 0xfb, 0x6e, 0xe1, 0x30, 0x02, 0x50, 0x89, 0xae, 0xd3, 0x50, 0xef, 0x24, 0x7b, 0xc9, 0x88, 0x7a, 0x20, 0x50, 0x15, 0x9d, 0xde, 0xd1, 0x42, 0x8f, 0xfd, 0x9b, 0x07, 0xb9, 0xec, 0x2e, 0x3d, 0x4b, 0xbd, 0xc2, 0xdd, 0xb5, 0x4e, 0x87, 0x3b, 0x63, 0xf2, 0x47, 0x52, 0x33, 0xe1, 0x91, 0x33, 0xa1, 0x4b, 0x66, 0x58, 0x50, 0x94, 0x57, 0x00, 0x81, 0x86, 0xd6, 0x22, 0x59, 0x95, 0xa9, 0x67, 0x26, 0xb5, 0x29, 0xf4, 0x42, 0x81, 0xaa, 0x24, 0xfe, 0xfd, 0x1c, 0xff, 0x8f, 0x81, 0x5d, 0x93, 0xa5, 0x98, 0x69, 0x31, 0x66, 0x22, 0x90, 0xb3, 0xee, 0x16, 0x83, 0x3c, 0x60, 0xf0, 0xaf, 0xce, 0xf2, 0xcb, 0xc0, 0x00, 0x62, 0x3f, 0x39, 0x31, 0x90, 0x9c, 0xa9, 0x76, 0xa0, 0x94, 0xe2, 0xb0, 0xfd, 0xb7, 0xdc, 0xf7, 0xc4, 0x85, 0xe1, 0x49, 0x88, 0xa3, 0x6f, 0x19, 0xb6, 0x64, 0x25, 0x38, 0x5f, 0x56, 0x32, 0xce, 0xf6, 0x5d, 0x1d, 0x34, 0x14, 0x62, 0x3a, 0xe3, 0xee, 0x81, 0x6e, 0x76, 0x3a, 0x5f, 0x60, 0x64, 0x66, 0x62, 0x2b, 0xe6, 0x60, 0x21, 0x14, 0x50, 0x29, 0x51, 0xcf, 0x0c, 0x09, 0x7c, 0x16, 0x48, 0xa7, 0x2e, 0x2c, 0x43, 0xd9, 0xaf, 0xa9, 0x68, 0x9f, 0x2c, 0x3c, 0xfe, 0x02, 0x6c, 0xdc, 0xe3, 0xbd, 0x1b, 0xf9, 0xeb, 0xf7, 0x77, 0x56, 0x2e, 0xcd, 0x8f, 0xf1, 0xb0, 0xd7, 0x75, 0x30, 0x6d, 0x90, 0x04, 0x43, 0xf3, 0x0a, 0x84, 0x33, 0x10, 0xb8, 0xde, 0x6a, 0x38, 0xff, 0x10, 0x8b, 0x72, 0x39, 0x13, 0xd7, 0x89, 0x9b, 0x9f, 0xbe, 0x7c, 0x3d, 0x76, 0x6e, 0xf8, 0xbd, 0xfb, 0x6d, 0x8b, 0x0b, 0x52, 0x95, 0x6c, 0xb1, 0xce, 0xc9, 0x93, 0x6d, 0x70, 0xb4, 0x87, 0xc0, 0x14, 0x40, 0xa8, 0x42, 0xb2, 0xfa, 0xbe, 0x38, 0xe7, 0xb8, 0x85, 0x1a, 0x38, 0x7d, 0x35, 0x8b, 0xe7, 0xef, 0x12, 0xa7, 0xe4, 0xf2, 0xb5, 0x27, 0xe8, 0x30, 0x90, 0xd6, 0x7e, 0xb0, 0x13, 0xc9, 0xc2, 0xcf, 0xd3, 0xde, 0x5a, 0x1a, 0x3f, 0x99, 0x74, 0x8a, 0x41, 0xf4, 0x81, 0x9d, 0x90, 0x36, 0xe5, 0x00, 0xc5, 0x04, 0xc9, 0x88, 0xbf, 0xd2, 0x4f, 0x61, 0x7d, 0x6e, 0xbd, 0xca, 0xb2, 0xdd, 0xea, 0xa6, 0x15, 0x79, 0x41, 0x4f, 0x36, 0x0b, 0x46, 0x9a, 0x33, 0xa6, 0xde, 0xd9, 0x6b, 0xa1, 0xd8, 0xc1, 0x40, 0xc4, 0xff, 0xc9, 0x49, 0x90, 0xd8, 0xad, 0xf7, 0x8c, 0xd3, 0x87, 0x80, 0xbd, 0x68, 0x66, 0x3d, 0x1a, 0x0e, 0xe3, 0x3f, 0x53, 0x7c, 0xdf, 0x89, 0x2d, 0x56, 0x2e, 0x82, 0xdc, 0xd1, 0xd9, 0x12, 0xca, 0xd3, 0x8d, 0x65, 0x56, 0x7d, 0x29, 0x14, 0x06, };
23321 static const u8 ed25519_1014_test_vectors_expected_sig[] = {
23322 	0x27, 0xfb, 0x6b, 0x5f, 0x06, 0x52, 0x8a, 0x64, 0x19, 0x8a, 0x3e, 0x7d, 0x67, 0xc7, 0x38, 0x84, 0x0a, 0x8c, 0xff, 0x4b, 0x48, 0x2b, 0x4d, 0x52, 0x4b, 0x12, 0x2d, 0x17, 0xd2, 0xae, 0xbc, 0xc0, 0x38, 0x9b, 0xe2, 0xc6, 0xe2, 0x8e, 0x2c, 0xdf, 0xc4, 0x84, 0xc1, 0x8d, 0xe4, 0x25, 0xdb, 0x56, 0xcd, 0xfa, 0x56, 0x1c, 0x50, 0x7c, 0xd9, 0x70, 0x60, 0x2d, 0x3a, 0x38, 0x5d, 0x3a, 0xea, 0x0f, };
23323 static const ec_test_case ed25519_1014_test_case = {
23324 	.name = "EDDSA25519-SHA512/wei25519 1014",
23325 	.ec_str_p = &wei25519_str_params,
23326 	.priv_key = ed25519_1014_test_vectors_priv_key,
23327 	.priv_key_len = sizeof(ed25519_1014_test_vectors_priv_key),
23328 	.nn_random = NULL,
23329 	.hash_type = SHA512,
23330 	.msg = (const char *)ed25519_1014_test_vectors_message,
23331 	.msglen = sizeof(ed25519_1014_test_vectors_message),
23332 	.sig_type = EDDSA25519,
23333 	.exp_sig = ed25519_1014_test_vectors_expected_sig,
23334 	.exp_siglen = sizeof(ed25519_1014_test_vectors_expected_sig),
23335 	.adata = NULL,
23336 	.adata_len = 0
23337 };
23338 
23339 /************************************************/
23340 static const u8 ed25519_1015_test_vectors_priv_key[] = {
23341 	0xb6, 0x2c, 0x24, 0x18, 0x78, 0x27, 0x35, 0x13, 0xe0, 0xbf, 0x6f, 0x33, 0xd2, 0x10, 0x43, 0x65, 0xb2, 0xce, 0x9c, 0x5a, 0x1b, 0x78, 0x60, 0x58, 0xe9, 0xc5, 0xb4, 0xd1, 0xd1, 0x92, 0xf8, 0x7f, };
23342 static const u8 ed25519_1015_test_vectors_message[] = {
23343 	0x26, 0xa3, 0xc2, 0x6a, 0x5a, 0x18, 0x9c, 0xad, 0x40, 0x7c, 0xba, 0xa3, 0xa6, 0x86, 0x7a, 0xc0, 0xa2, 0x60, 0x88, 0xc7, 0x5f, 0x9d, 0x0f, 0xa1, 0x9b, 0xd5, 0x02, 0x74, 0xce, 0xc5, 0x75, 0x5a, 0x49, 0x71, 0x09, 0xa4, 0x73, 0x28, 0x4d, 0x6f, 0xc8, 0x1a, 0xd4, 0xb9, 0xec, 0x29, 0xfa, 0x7e, 0xc9, 0x76, 0x4f, 0xd3, 0x09, 0x9f, 0x06, 0x0e, 0x36, 0x83, 0x65, 0x52, 0xff, 0x24, 0x13, 0xe3, 0xd5, 0x09, 0x5f, 0xe0, 0xb1, 0xa8, 0xbf, 0xcf, 0x67, 0xee, 0x06, 0xaa, 0x90, 0x32, 0xe7, 0xbb, 0x32, 0x49, 0x69, 0x80, 0x47, 0x71, 0x4d, 0x28, 0x14, 0x15, 0x27, 0x3c, 0x98, 0x34, 0xad, 0x9e, 0xb6, 0x65, 0xa7, 0xd9, 0x72, 0x20, 0xe7, 0x2d, 0x9c, 0xa7, 0x3f, 0x31, 0xaf, 0xa7, 0x73, 0x86, 0x75, 0xba, 0x31, 0x62, 0xef, 0xef, 0xe7, 0x47, 0x9a, 0x5b, 0xc4, 0xbc, 0xe2, 0xe8, 0xb7, 0xaf, 0x47, 0x41, 0xd7, 0x03, 0xdc, 0x9b, 0xbd, 0x60, 0xb4, 0xcf, 0x4b, 0x90, 0x87, 0xf6, 0xcf, 0x86, 0xcf, 0x53, 0xae, 0xd0, 0x2b, 0xf4, 0xca, 0x6a, 0x18, 0xf6, 0x07, 0xcb, 0x52, 0xa3, 0x03, 0xd7, 0x8e, 0x85, 0xad, 0x88, 0xfd, 0xfc, 0x86, 0xdc, 0xb7, 0x18, 0x77, 0x27, 0xb0, 0x3b, 0xe2, 0x27, 0x74, 0x5b, 0xea, 0x74, 0x4f, 0xd0, 0x06, 0x52, 0x5b, 0xc5, 0x9a, 0x4d, 0xdd, 0xab, 0x91, 0x5c, 0xef, 0x40, 0xa8, 0xf3, 0x08, 0x02, 0x91, 0x3b, 0x79, 0x13, 0xea, 0xf9, 0x74, 0x33, 0x65, 0x52, 0xe2, 0xf1, 0x45, 0x6a, 0xd8, 0x03, 0xdc, 0x58, 0xc9, 0xb4, 0xb1, 0x8e, 0xfa, 0xf7, 0xf7, 0xe3, 0x57, 0xe2, 0xcd, 0x77, 0xd1, 0x38, 0xd9, 0x00, 0x80, 0xe2, 0x96, 0xd1, 0x36, 0x4a, 0x2f, 0x32, 0x4d, 0x3e, 0x0d, 0x6e, 0xdc, 0x20, 0xb8, 0xbd, 0xaa, 0x9d, 0x2e, 0x87, 0x1f, 0x5e, 0x7b, 0x05, 0x1f, 0xb6, 0xfc, 0xdb, 0x55, 0x95, 0xf2, 0x1d, 0x3f, 0x8d, 0xe2, 0x9f, 0xb7, 0x86, 0x78, 0xfa, 0x47, 0x9e, 0xaa, 0x32, 0x57, 0x9c, 0x78, 0x4d, 0x51, 0x3a, 0xc5, 0xf8, 0x36, 0xd9, 0x54, 0xd0, 0xd3, 0xfc, 0x0e, 0x5f, 0xc8, 0xa6, 0xee, 0xab, 0x90, 0x20, 0x2b, 0x4c, 0x4a, 0x2b, 0xec, 0x24, 0xcf, 0x63, 0xea, 0x67, 0xc4, 0x70, 0x09, 0x62, 0x18, 0xcd, 0x43, 0x1e, 0x88, 0x31, 0x05, 0xfc, 0x9c, 0x27, 0xf9, 0xea, 0x77, 0xc1, 0x8e, 0xda, 0x69, 0xbc, 0x00, 0xa2, 0x24, 0x2b, 0xd4, 0x20, 0xf0, 0x95, 0xc9, 0xb9, 0xa9, 0x2d, 0x95, 0x6c, 0xcc, 0x5a, 0x85, 0x72, 0xb0, 0x57, 0xa7, 0xfe, 0x17, 0x3e, 0xeb, 0x2a, 0x31, 0x66, 0xcb, 0x20, 0x89, 0xd1, 0x13, 0xa8, 0x16, 0x46, 0x2b, 0x25, 0x80, 0x5b, 0x8a, 0xba, 0xff, 0x5b, 0x0b, 0x22, 0x87, 0xc5, 0x08, 0xec, 0x2b, 0x8c, 0x34, 0xb2, 0x19, 0x5c, 0x33, 0x28, 0x70, 0xd3, 0xcc, 0x39, 0x60, 0x17, 0xa1, 0x6b, 0x9e, 0x0d, 0xa6, 0x18, 0x2d, 0x07, 0x1d, 0x3b, 0xf3, 0x63, 0xd3, 0xf1, 0xe7, 0xb7, 0xda, 0x11, 0xd7, 0x11, 0x25, 0x0a, 0x58, 0xaf, 0xd7, 0x4e, 0xd3, 0xe3, 0x15, 0x8d, 0x47, 0x18, 0xba, 0xd4, 0xd2, 0x74, 0xbb, 0x34, 0x44, 0xcf, 0xc3, 0x18, 0x07, 0x4b, 0x53, 0xbe, 0xba, 0x44, 0xa2, 0xa3, 0x4f, 0xf8, 0xeb, 0x72, 0x6e, 0x4a, 0x1d, 0xaa, 0x91, 0x10, 0x51, 0x62, 0x16, 0x51, 0x89, 0x8b, 0x88, 0x71, 0x69, 0xf6, 0x2b, 0x9c, 0x0f, 0x40, 0x20, 0x48, 0x3e, 0xf5, 0x44, 0xf8, 0xf5, 0x72, 0xfa, 0x6a, 0x66, 0x40, 0xa4, 0xcf, 0xfc, 0xe9, 0x76, 0xcb, 0x70, 0x24, 0xf8, 0x47, 0xbd, 0xc9, 0x5d, 0x1d, 0x7c, 0xe6, 0x53, 0x50, 0x5d, 0xeb, 0xfc, 0x69, 0x88, 0xed, 0x28, 0x9d, 0xd4, 0x7a, 0x9e, 0xb2, 0x61, 0x25, 0x9e, 0x3e, 0x65, 0xe4, 0x5f, 0xc9, 0xd7, 0x14, 0x94, 0x69, 0x35, 0xcd, 0x8e, 0xa1, 0x3b, 0xc6, 0xdb, 0x5e, 0xaa, 0xb9, 0xe8, 0xb1, 0x0d, 0xae, 0x0f, 0xdd, 0x69, 0x79, 0xc2, 0x03, 0x5c, 0xfb, 0x80, 0x98, 0x25, 0x2f, 0x22, 0x05, 0x44, 0x3b, 0x80, 0x88, 0x16, 0xbf, 0x77, 0x87, 0xb7, 0xf1, 0xe7, 0x8b, 0xc9, 0x8a, 0x72, 0x85, 0xe7, 0x33, 0xd4, 0x5f, 0xc4, 0x61, 0x0c, 0x20, 0x97, 0x7c, 0xa3, 0x22, 0x98, 0x89, 0xbb, 0x8c, 0xd2, 0xb6, 0x94, 0xce, 0x9e, 0x3f, 0xe7, 0x83, 0x03, 0xaf, 0x83, 0xe1, 0x06, 0x42, 0x25, 0x42, 0xfb, 0x79, 0x61, 0xd3, 0x2e, 0xb1, 0xd2, 0xc5, 0xfb, 0xe6, 0x07, 0x51, 0x67, 0x4b, 0x07, 0x47, 0x73, 0xee, 0x06, 0x16, 0xe0, 0x29, 0x73, 0xf6, 0xa7, 0x4a, 0x3a, 0xe4, 0x66, 0x4a, 0x26, 0x50, 0x91, 0x5a, 0x3e, 0x10, 0x49, 0x3b, 0x9e, 0x66, 0xa3, 0x9f, 0xa5, 0xc8, 0x9c, 0x61, 0xd4, 0x47, 0x35, 0xf1, 0x07, 0xd3, 0x37, 0x57, 0xae, 0x67, 0x9b, 0x43, 0xa8, 0xd4, 0x3a, 0x01, 0x75, 0x7a, 0xe1, 0xf3, 0x27, 0x9e, 0x86, 0x24, 0x42, 0xe1, 0x50, 0x71, 0x55, 0x50, 0xee, 0x82, 0xe4, 0x9c, 0x0d, 0x49, 0x43, 0xfa, 0xf1, 0x3f, 0x22, 0x79, 0x1f, 0x0e, 0x66, 0xf2, 0x4a, 0xc5, 0x0a, 0xb3, 0xc0, 0x03, 0x85, 0x2b, 0x21, 0xe1, 0x5b, 0x2f, 0x00, 0x6e, 0xdc, 0x2c, 0xd6, 0xa8, 0x79, 0xc4, 0x76, 0xab, 0x5b, 0x35, 0x2e, 0xb1, 0x09, 0x9d, 0xad, 0x4c, 0x50, 0x37, 0x24, 0x00, 0xfa, 0xa5, 0x49, 0x8d, 0x78, 0xc6, 0xb8, 0x57, 0x03, 0x4c, 0x25, 0xca, 0xf7, 0xb9, 0x33, 0xfa, 0xf6, 0xbd, 0x7c, 0x59, 0xfa, 0x3d, 0xa5, 0x73, 0x97, 0xb6, 0x03, 0xde, 0x9c, 0xb9, 0xd8, 0x0e, 0x51, 0xf7, 0x99, 0x7b, 0xaa, 0x46, 0x2a, 0xcd, 0x53, 0x7e, 0x2c, 0x41, 0x94, 0xc7, 0x6c, 0x7e, 0x0b, 0xe6, 0x51, 0x2b, 0xce, 0x4d, 0x63, 0x66, 0x0b, 0x36, 0xc7, 0xcc, 0x46, 0x63, 0x1f, 0xb9, 0x67, 0x1a, 0xd8, 0xc5, 0xd2, 0x8e, 0x2f, 0x2e, 0xe2, 0xed, 0xce, 0x81, 0x95, 0x44, 0x21, 0xb8, 0xa3, 0xd9, 0xff, 0x6f, 0x66, 0x69, 0x9f, 0x4b, 0xce, 0x88, 0xbc, 0xb8, 0xef, 0x19, 0x2c, 0x26, 0x2a, 0x74, 0xab, 0x7e, 0x19, 0x1e, 0xee, 0x91, 0x01, 0xa2, 0x8d, 0x4b, 0x66, 0x28, 0x2b, 0x51, 0x22, 0x09, 0x3d, 0x14, 0x1c, 0x64, 0x96, 0xc7, 0xab, 0xa4, 0xd3, 0x52, 0xe4, 0x72, 0xee, 0x74, 0x40, 0xe0, 0x5a, 0xf6, 0x0d, 0xa0, 0xcf, 0xc9, 0x3e, 0x30, 0x36, 0x42, 0xba, 0x8f, 0xb8, 0xe5, 0xc5, 0x68, 0x68, 0x7a, 0xbd, 0x63, 0xaf, 0xb3, 0xed, 0x6a, 0x32, 0xb6, 0xda, 0xe5, 0x6a, 0x7e, 0x5d, 0x73, 0xde, 0xba, 0xf4, 0x1d, 0x35, 0xca, 0x36, 0xad, 0xb9, 0x7a, 0x22, 0xc0, 0xad, 0xbe, 0x71, 0x8b, 0xec, 0x1f, 0xa5, 0x19, 0x98, 0xde, 0x9b, 0x4b, 0x96, 0xa7, 0x9c, 0x5b, 0x96, 0x55, 0xb0, 0x16, 0x5d, 0x5e, 0x1b, 0x9a, 0x8c, 0xc5, 0x52, 0xe8, 0xc9, 0x32, 0x9e, 0xde, 0x58, 0xdf, 0x74, 0xc6, 0x7b, 0x2b, 0xa1, 0xa8, 0x42, 0xfd, 0x3e, 0x81, 0x58, 0xc1, 0xfe, 0xa3, 0xa9, 0x9b, 0x56, 0xa2, 0xc2, 0xa9, 0x62, 0x07, 0x85, 0x3d, 0x26, 0x02, 0x2c, 0xec, 0x17, 0x0d, 0x7e, 0x79, 0x94, 0x4d, 0x2f, 0x56, 0xaa, 0xb1, 0xf1, 0x91, 0xbf, 0xd4, 0x8d, 0x72, 0x54, 0x90, 0xca, 0x82, 0xb8, 0xd9, 0x06, 0xf0, 0x68, 0x0e, 0x69, 0xee, 0xb9, 0x57, 0x57, 0x74, 0xfb, 0x9d, 0x60, 0x45, 0x13, 0xfb, 0xc2, 0x6f, 0x5d, 0x30, 0x3b, 0x68, 0x85, 0xca, 0xc0, 0xbf, 0x8e, 0xfe, 0xe0, 0x53, 0x8f, 0x92, };
23344 static const u8 ed25519_1015_test_vectors_expected_sig[] = {
23345 	0xc5, 0x90, 0x39, 0x58, 0x7b, 0x38, 0xdc, 0x14, 0x1e, 0x05, 0x5a, 0x93, 0x85, 0x01, 0x04, 0xd6, 0x29, 0xe3, 0x80, 0x70, 0x5b, 0x8f, 0xc9, 0x18, 0x84, 0x7c, 0x5e, 0x2a, 0x35, 0x2d, 0xa3, 0xa0, 0x2f, 0xce, 0x7f, 0x71, 0x99, 0xf4, 0xae, 0x2b, 0x1e, 0x2a, 0x59, 0x48, 0x34, 0x18, 0x93, 0x2e, 0x18, 0x5f, 0x7e, 0x45, 0xb5, 0x05, 0x0c, 0x64, 0x2c, 0xec, 0xc7, 0xe7, 0x81, 0x99, 0x85, 0x07, };
23346 static const ec_test_case ed25519_1015_test_case = {
23347 	.name = "EDDSA25519-SHA512/wei25519 1015",
23348 	.ec_str_p = &wei25519_str_params,
23349 	.priv_key = ed25519_1015_test_vectors_priv_key,
23350 	.priv_key_len = sizeof(ed25519_1015_test_vectors_priv_key),
23351 	.nn_random = NULL,
23352 	.hash_type = SHA512,
23353 	.msg = (const char *)ed25519_1015_test_vectors_message,
23354 	.msglen = sizeof(ed25519_1015_test_vectors_message),
23355 	.sig_type = EDDSA25519,
23356 	.exp_sig = ed25519_1015_test_vectors_expected_sig,
23357 	.exp_siglen = sizeof(ed25519_1015_test_vectors_expected_sig),
23358 	.adata = NULL,
23359 	.adata_len = 0
23360 };
23361 
23362 /************************************************/
23363 static const u8 ed25519_1016_test_vectors_priv_key[] = {
23364 	0x0f, 0x77, 0xf7, 0x7a, 0x1c, 0x7e, 0x04, 0xbd, 0xa8, 0xe5, 0x34, 0xf4, 0xe3, 0xef, 0xf9, 0xa2, 0x38, 0xcc, 0x14, 0x87, 0x6b, 0x7e, 0x3e, 0xca, 0x8b, 0xed, 0xe1, 0x92, 0x3a, 0x33, 0x64, 0x06, };
23365 static const u8 ed25519_1016_test_vectors_message[] = {
23366 	0x0e, 0xcb, 0x74, 0x6d, 0xbd, 0xb0, 0x16, 0x14, 0x21, 0xaf, 0xeb, 0x7a, 0xde, 0xa7, 0xa3, 0x7c, 0x2e, 0xa4, 0x40, 0x8a, 0x59, 0x2c, 0x9d, 0x78, 0x1e, 0xd6, 0xac, 0x6f, 0x4e, 0xe5, 0xcc, 0x65, 0xd5, 0x27, 0x0e, 0x4c, 0xf2, 0x76, 0x32, 0xf7, 0xc5, 0xc1, 0x33, 0xd4, 0x39, 0xb7, 0x8d, 0x1f, 0x71, 0xaa, 0x6d, 0xd8, 0x07, 0x13, 0xd9, 0x0b, 0x15, 0x1e, 0x19, 0x12, 0x1b, 0xfa, 0x87, 0x71, 0x0e, 0x84, 0xa4, 0x85, 0x0a, 0x3b, 0x5b, 0x02, 0x65, 0xba, 0x26, 0x03, 0xd0, 0x71, 0x6e, 0x9b, 0x7e, 0x11, 0x22, 0x10, 0x9c, 0x39, 0xc6, 0xf1, 0x02, 0x7f, 0xce, 0x18, 0x79, 0x8c, 0xbb, 0x4f, 0x6b, 0xc5, 0xe4, 0xd7, 0xac, 0xa4, 0x70, 0x46, 0x90, 0xf5, 0xc9, 0x81, 0x51, 0x08, 0x71, 0xc3, 0x13, 0x59, 0x57, 0x98, 0x33, 0x86, 0x81, 0x10, 0x7f, 0x2b, 0x57, 0x94, 0xd4, 0x6f, 0x6e, 0x0b, 0xde, 0x2c, 0xd0, 0x64, 0xb3, 0xb1, 0xfc, 0x00, 0xca, 0x47, 0x18, 0x8b, 0xbb, 0xc1, 0xf4, 0xa0, 0xce, 0x30, 0x5c, 0xc6, 0xd8, 0xa8, 0x96, 0x92, 0x0e, 0xb9, 0xeb, 0xae, 0x57, 0x9f, 0xd3, 0x38, 0x5f, 0x8f, 0x1f, 0x35, 0x97, 0x62, 0x88, 0xf4, 0xc5, 0x8f, 0xfc, 0x47, 0x60, 0xf3, 0x59, 0xb0, 0x03, 0xc8, 0x72, 0xe9, 0xa2, 0x40, 0x55, 0x35, 0x5e, 0xa9, 0x58, 0x5e, 0x95, 0x10, 0x69, 0xdc, 0xa2, 0x5f, 0xd0, 0xcc, 0x0b, 0x9d, 0xb5, 0x2a, 0xae, 0xaf, 0x19, 0xd4, 0x3f, 0x2e, 0xab, 0x4f, 0x83, 0x56, 0x03, 0xad, 0x12, 0xd2, 0xdc, 0x49, 0xb3, 0x10, 0x25, 0x6b, 0x94, 0xbe, 0xd5, 0x48, 0x96, 0xa1, 0x6b, 0x69, 0xb0, 0x9c, 0xb4, 0xc8, 0xff, 0x5c, 0x23, 0xcc, 0xe5, 0x59, 0x3d, 0x87, 0xad, 0xe2, 0xa8, 0x2a, 0xda, 0x50, 0x85, 0x9e, 0x15, 0x44, 0xc1, 0x86, 0x18, 0xa6, 0x5c, 0x00, 0x7e, 0xf4, 0x24, 0xc9, 0x85, 0x4a, 0x17, 0x5b, 0x6e, 0x6c, 0x0e, 0x64, 0xb2, 0xc8, 0xeb, 0x8a, 0xd4, 0xd2, 0x8b, 0x97, 0x7d, 0x68, 0xe7, 0x81, 0x69, 0x91, 0x51, 0x98, 0x97, 0x53, 0x94, 0xd3, 0xb9, 0xb2, 0x69, 0xca, 0xb0, 0xd3, 0x26, 0x1b, 0x2b, 0x56, 0xcd, 0x2c, 0xc4, 0xbd, 0xdb, 0xd4, 0xf1, 0x43, 0x9e, 0x0d, 0xbe, 0x2c, 0x9b, 0x3f, 0x3f, 0x75, 0x14, 0xed, 0xac, 0x5e, 0xbb, 0x46, 0x22, 0xb9, 0x2a, 0x69, 0xa8, 0x40, 0xa9, 0x02, 0x85, 0x50, 0xb2, 0x21, 0xdb, 0x59, 0xdd, 0xfb, 0x00, 0x13, 0x96, 0xf8, 0x63, 0x92, 0xa1, 0x7f, 0x08, 0xcc, 0xb1, 0x94, 0xcd, 0x9e, 0x1a, 0x00, 0x81, 0xd7, 0xdd, 0x9c, 0xca, 0x23, 0x57, 0xfe, 0xb8, 0xb7, 0x95, 0xe5, 0x17, 0x02, 0x9f, 0x79, 0xc8, 0x2a, 0x3b, 0xe6, 0xf9, 0xa0, 0x31, 0xdd, 0x1a, 0xf1, 0xe7, 0x9e, 0x49, 0x82, 0xbf, 0x8e, 0x76, 0xb3, 0x10, 0xf9, 0xd3, 0x55, 0xef, 0xcd, 0x5b, 0x1e, 0xfa, 0x9f, 0x35, 0x9c, 0x17, 0xcf, 0x3b, 0x51, 0x0d, 0x51, 0x3e, 0x8c, 0xd5, 0x78, 0x6a, 0x0d, 0x34, 0x45, 0xdc, 0x59, 0xa8, 0x43, 0x3a, 0x46, 0x48, 0x86, 0x87, 0xb0, 0xf5, 0x8b, 0x1b, 0xd6, 0x56, 0x7c, 0x2a, 0xf4, 0x87, 0x3b, 0x51, 0xfc, 0x84, 0x5e, 0x76, 0x7e, 0x24, 0x30, 0x05, 0x19, 0x2f, 0x8f, 0x06, 0x74, 0xf2, 0x81, 0x26, 0x5a, 0x55, 0xd7, 0x6c, 0xea, 0x32, 0x22, 0x60, 0xc9, 0x32, 0xce, 0xa6, 0x71, 0x7a, 0xdb, 0x98, 0xa2, 0xdd, 0xa8, 0xc6, 0x98, 0xe2, 0xe8, 0x92, 0x55, 0xfe, 0xb7, 0x7d, 0xa7, 0x64, 0x81, 0x67, 0xbc, 0x1e, 0x58, 0x87, 0x7f, 0xeb, 0x72, 0xd1, 0xd1, 0x4b, 0x0c, 0x30, 0x4f, 0x07, 0x37, 0x2d, 0x95, 0x56, 0x75, 0x23, 0x7c, 0x49, 0xf7, 0xa6, 0xdb, 0xc9, 0x15, 0xe6, 0x81, 0x4a, 0xba, 0xe6, 0xcc, 0xe4, 0xca, 0xf9, 0xf4, 0x80, 0x87, 0xe9, 0xdf, 0xb2, 0x82, 0xd8, 0xf3, 0x40, 0x37, 0x7c, 0x1e, 0x29, 0xc6, 0x73, 0x1c, 0xcc, 0x26, 0x67, 0xda, 0x66, 0x95, 0xb7, 0x12, 0xbe, 0x03, 0x12, 0xd8, 0x65, 0x11, 0x19, 0x34, 0xf1, 0x68, 0xd5, 0x54, 0x43, 0x65, 0xdd, 0xae, 0x27, 0xab, 0xc6, 0x4a, 0xef, 0xbc, 0xb3, 0x22, 0xdb, 0x7d, 0x97, 0xd9, 0x0d, 0x95, 0x7a, 0x63, 0x7b, 0xd8, 0x26, 0xc2, 0x27, 0xe9, 0xeb, 0x18, 0x0b, 0x45, 0xa4, 0x31, 0x62, 0x6a, 0x6f, 0xd8, 0x90, 0xc0, 0xe5, 0xf4, 0xed, 0x7e, 0x85, 0x64, 0x74, 0x75, 0x2f, 0x80, 0xb5, 0xae, 0xf6, 0xe7, 0x3e, 0xfd, 0xaa, 0x6c, 0x2c, 0x45, 0x1b, 0xd7, 0x4c, 0x1e, 0xf4, 0x66, 0xca, 0x3a, 0xaa, 0x25, 0x73, 0xbb, 0x52, 0xcb, 0x2b, 0x1c, 0xa9, 0x6a, 0x1b, 0x57, 0x44, 0x03, 0xce, 0xae, 0x1c, 0xf0, 0x5f, 0xfc, 0x53, 0x43, 0x0e, 0x1e, 0x4c, 0xd5, 0x59, 0x3b, 0xd1, 0xef, 0x84, 0xbc, 0xbf, 0xe2, 0x19, 0xf0, 0x81, 0x60, 0xd1, 0x66, 0xf2, 0x73, 0x1d, 0x99, 0xb8, 0xd7, 0xa3, 0x2b, 0x12, 0x99, 0x1f, 0x77, 0x77, 0x5a, 0x26, 0x7e, 0xc0, 0x82, 0x97, 0xec, 0x51, 0x2d, 0x7b, 0x72, 0x43, 0x56, 0x32, 0x52, 0x5c, 0x04, 0x00, 0x0f, 0xb0, 0x0a, 0x79, 0x3f, 0x8b, 0x5f, 0x8f, 0x37, 0x47, 0xb5, 0x53, 0x59, 0xdf, 0x21, 0xb7, 0xe2, 0xc4, 0x9f, 0x2b, 0x0b, 0x9a, 0xe0, 0x82, 0xaf, 0xc7, 0x0a, 0x14, 0x68, 0x71, 0x37, 0x0b, 0x8d, 0x50, 0x08, 0x6d, 0xe0, 0x0f, 0x94, 0x48, 0xbe, 0x89, 0x02, 0x17, 0x4b, 0xa2, 0xcc, 0x85, 0x1f, 0xa3, 0x79, 0xdd, 0x70, 0x31, 0xca, 0x45, 0x7a, 0x88, 0x69, 0xaf, 0x4b, 0x6c, 0x27, 0x29, 0xda, 0xc5, 0x19, 0x55, 0x6b, 0x8b, 0xb4, 0xab, 0x51, 0x9e, 0xf1, 0xbb, 0x02, 0x4e, 0xa8, 0xb7, 0xf0, 0x17, 0x71, 0xc9, 0xaa, 0xb7, 0x48, 0xe5, 0x73, 0x81, 0xa0, 0x19, 0x2a, 0x6e, 0x39, 0x8c, 0xbe, 0x6d, 0xd9, 0xf3, 0x67, 0xcc, 0x7b, 0x33, 0x54, 0xf8, 0x3b, 0x79, 0xbc, 0xda, 0x46, 0xb7, 0x93, 0xa4, 0xad, 0xa8, 0x55, 0x49, 0xc8, 0xd6, 0xbd, 0xd6, 0x16, 0x81, 0x24, 0x36, 0x2f, 0xf9, 0x08, 0xaa, 0x1a, 0x0c, 0xb7, 0x8a, 0xa3, 0x30, 0xc4, 0x2d, 0x5a, 0x5d, 0x48, 0x12, 0x35, 0xac, 0xac, 0x3a, 0x91, 0x9b, 0x96, 0x9c, 0x50, 0x98, 0x72, 0x66, 0xd4, 0x04, 0xd1, 0x5d, 0x0e, 0x70, 0x6f, 0xd9, 0x00, 0x76, 0x34, 0xf6, 0x9e, 0x13, 0xc5, 0x6e, 0xc4, 0x71, 0x33, 0x88, 0x4f, 0xca, 0xdd, 0xc1, 0x6b, 0xee, 0xee, 0xd1, 0x9e, 0x0c, 0xd9, 0x17, 0xaa, 0x49, 0x63, 0x67, 0x86, 0x7d, 0xfc, 0xea, 0x27, 0x4e, 0x1a, 0x47, 0xda, 0x77, 0x4f, 0x3c, 0x93, 0x63, 0x02, 0x1e, 0x7c, 0x8d, 0x6b, 0xf8, 0xf0, 0x00, 0x53, 0xfa, 0xcc, 0x11, 0xcb, 0x68, 0xa9, 0xd6, 0xe1, 0xfc, 0x2d, 0x6d, 0x19, 0x17, 0x5d, 0x63, 0x24, 0xff, 0x7c, 0xa6, 0xc2, 0x30, 0x58, 0xb8, 0xb6, 0x93, 0xd8, 0xfd, 0x4e, 0x0b, 0x51, 0xdc, 0xbb, 0x11, 0x35, 0x43, 0xf2, 0xfc, 0xc0, 0x45, 0x2e, 0xb9, 0xd9, 0x67, 0xac, 0x0f, 0xa9, 0xb2, 0x3e, 0x9e, 0x0b, 0x1d, 0xa8, 0xd8, 0x3a, 0x3c, 0x1f, 0xc9, 0xe9, 0xec, 0x97, 0x1f, 0x0f, 0x67, 0xfc, 0x74, 0x5b, 0xb1, 0x73, 0x76, 0xbc, 0x46, 0x24, 0x5f, 0x52, 0x8c, 0xb6, 0xe5, 0xfe, 0xe1, 0x1b, 0xcd, 0xda, 0x86, 0x7b, 0x7f, 0x79, 0x01, 0x9c, 0xf9, 0xdb, 0x59, 0x18, 0x58, 0x23, 0x0a, 0xec, 0xb4, 0xd1, 0xe9, 0x3d, 0x16, 0x7c, 0xd8, 0x6b, 0x42, 0xdd, 0x87, 0x9a, 0x13, 0xfa, 0x0e, };
23367 static const u8 ed25519_1016_test_vectors_expected_sig[] = {
23368 	0xb2, 0x0b, 0x9c, 0x42, 0x46, 0xf0, 0xd2, 0x97, 0x01, 0x38, 0xaf, 0x7d, 0xc9, 0xaf, 0x62, 0x9b, 0x68, 0xfb, 0xc3, 0x7d, 0xf8, 0x7a, 0xfd, 0xca, 0xdc, 0xb5, 0x45, 0xc1, 0x76, 0x83, 0x76, 0xa0, 0x9c, 0x3b, 0xab, 0xc3, 0xeb, 0x1a, 0xf3, 0xb7, 0x51, 0x98, 0x52, 0xf7, 0x5f, 0xab, 0x1c, 0x9c, 0x11, 0x9c, 0x66, 0x2c, 0x58, 0x77, 0xfb, 0x2f, 0x72, 0x99, 0xca, 0xb5, 0x7f, 0xad, 0x3d, 0x0e, };
23369 static const ec_test_case ed25519_1016_test_case = {
23370 	.name = "EDDSA25519-SHA512/wei25519 1016",
23371 	.ec_str_p = &wei25519_str_params,
23372 	.priv_key = ed25519_1016_test_vectors_priv_key,
23373 	.priv_key_len = sizeof(ed25519_1016_test_vectors_priv_key),
23374 	.nn_random = NULL,
23375 	.hash_type = SHA512,
23376 	.msg = (const char *)ed25519_1016_test_vectors_message,
23377 	.msglen = sizeof(ed25519_1016_test_vectors_message),
23378 	.sig_type = EDDSA25519,
23379 	.exp_sig = ed25519_1016_test_vectors_expected_sig,
23380 	.exp_siglen = sizeof(ed25519_1016_test_vectors_expected_sig),
23381 	.adata = NULL,
23382 	.adata_len = 0
23383 };
23384 
23385 /************************************************/
23386 static const u8 ed25519_1017_test_vectors_priv_key[] = {
23387 	0xc5, 0xa5, 0x05, 0x34, 0x77, 0xae, 0x31, 0x15, 0x8e, 0x74, 0x69, 0xdd, 0x15, 0x04, 0x86, 0x76, 0x50, 0xd4, 0x6f, 0x15, 0x89, 0x06, 0x7f, 0x5c, 0xd8, 0x81, 0xca, 0xf2, 0x5c, 0x26, 0xcb, 0x21, };
23388 static const u8 ed25519_1017_test_vectors_message[] = {
23389 	0x85, 0x71, 0xff, 0x39, 0x03, 0x48, 0x6a, 0x43, 0xa6, 0x12, 0x6c, 0x32, 0x3e, 0x7b, 0x3a, 0x74, 0x14, 0x1d, 0x13, 0x85, 0xd4, 0xbd, 0x70, 0x3f, 0x19, 0xe2, 0xd1, 0xb6, 0x4b, 0x50, 0x28, 0x1d, 0x27, 0x16, 0x8a, 0xe3, 0xe7, 0x69, 0xc6, 0xdd, 0x9d, 0xf7, 0xd9, 0x78, 0x64, 0xfb, 0x37, 0x82, 0x2f, 0x00, 0x21, 0x85, 0x2e, 0x31, 0x68, 0xab, 0x7d, 0x84, 0x5a, 0x65, 0x45, 0xed, 0x0c, 0x37, 0x7d, 0x9f, 0x7c, 0x04, 0x8a, 0x2b, 0x96, 0xe8, 0xdc, 0xf4, 0x45, 0x77, 0x96, 0x84, 0xa0, 0x58, 0xc2, 0xb9, 0xc2, 0x1a, 0xc6, 0x8a, 0x0c, 0x34, 0x1d, 0x1d, 0x6c, 0x09, 0x81, 0x45, 0x64, 0x57, 0x45, 0x8e, 0xb7, 0xce, 0xbf, 0x66, 0x67, 0x87, 0x40, 0x77, 0x7e, 0xca, 0x26, 0xe0, 0x1e, 0x1c, 0x8f, 0x53, 0xb5, 0xd4, 0x75, 0x6c, 0xc5, 0xf0, 0xb9, 0x0f, 0x0c, 0x5d, 0xb0, 0x53, 0x93, 0xcd, 0x4b, 0x8e, 0x44, 0xf6, 0x81, 0x0c, 0xaa, 0x5a, 0x11, 0x6a, 0x33, 0x57, 0x77, 0x24, 0x39, 0x5d, 0x41, 0x3a, 0xf6, 0x19, 0x63, 0x2a, 0x6f, 0xed, 0x14, 0xe2, 0x15, 0xc2, 0xf1, 0x9d, 0x10, 0x5c, 0xe2, 0xbf, 0x14, 0x98, 0xe6, 0xd2, 0xab, 0x4f, 0x65, 0x0f, 0x61, 0xba, 0x5c, 0xf6, 0xd0, 0xc7, 0x3b, 0xbb, 0xde, 0x98, 0xe3, 0x04, 0x29, 0x91, 0x0a, 0x4e, 0x67, 0xdf, 0xbc, 0x71, 0x7c, 0xb0, 0x91, 0x18, 0x2d, 0x59, 0x70, 0x58, 0xb5, 0xd7, 0x65, 0xd0, 0x97, 0xe6, 0x87, 0x58, 0x31, 0xb5, 0x88, 0xaa, 0xeb, 0x3e, 0x73, 0x27, 0xe8, 0x56, 0xb4, 0x2f, 0xa9, 0x83, 0xfd, 0x25, 0x4e, 0xf1, 0xf9, 0x18, 0xb0, 0x43, 0xd1, 0xdd, 0x3d, 0x7b, 0x7e, 0x30, 0xb3, 0x15, 0x38, 0x6e, 0xec, 0x91, 0xe7, 0xf9, 0x4d, 0x59, 0x8f, 0x4b, 0xeb, 0x3b, 0x27, 0xb4, 0x2f, 0x4e, 0xe1, 0xfb, 0xf7, 0xaf, 0xb4, 0x86, 0xbd, 0xcc, 0x60, 0x81, 0xcc, 0xb8, 0x67, 0xf0, 0x41, 0x11, 0x04, 0x4f, 0x4b, 0xbb, 0xe3, 0xc8, 0x12, 0x2e, 0xde, 0xad, 0xef, 0xa9, 0xd6, 0x93, 0x90, 0x6e, 0x0d, 0x6e, 0x13, 0x3b, 0xf6, 0xf2, 0xda, 0x61, 0x58, 0xfe, 0xed, 0xbd, 0xa0, 0x24, 0x41, 0x0f, 0x12, 0x08, 0x6e, 0x7a, 0xcc, 0xf1, 0xc6, 0x8e, 0x15, 0x57, 0xf0, 0x0c, 0x14, 0xe9, 0xc7, 0xea, 0x76, 0xa5, 0xed, 0x13, 0x37, 0xa0, 0x54, 0xac, 0x2c, 0x94, 0x9c, 0x05, 0x97, 0x7e, 0x03, 0x02, 0x74, 0xf6, 0xa4, 0xf2, 0xa6, 0xb3, 0x0a, 0x15, 0xc5, 0x70, 0xec, 0x94, 0x33, 0xf7, 0x4f, 0x47, 0x52, 0x80, 0x87, 0xc9, 0xce, 0x9a, 0x62, 0x92, 0x95, 0x1c, 0x54, 0x35, 0x49, 0x96, 0xfb, 0x28, 0x3c, 0x0d, 0xc4, 0xcf, 0x33, 0xc0, 0x01, 0xbc, 0x96, 0x87, 0x5e, 0xa6, 0xe1, 0xf4, 0x6f, 0x83, 0x7f, 0xf1, 0x8d, 0xd9, 0x54, 0x5f, 0xb9, 0x93, 0x46, 0x55, 0x34, 0x2b, 0x12, 0xc2, 0x99, 0x0b, 0x9f, 0x1c, 0x6f, 0xf4, 0xd6, 0x64, 0x89, 0xd6, 0xae, 0xdc, 0xe7, 0x5c, 0x7c, 0xb0, 0x3a, 0xc1, 0x34, 0xbf, 0xd3, 0x9b, 0x18, 0x1d, 0xfb, 0x7f, 0x9a, 0x97, 0xce, 0x73, 0x7f, 0xe5, 0x70, 0xad, 0x5f, 0x81, 0x34, 0x59, 0x39, 0xa6, 0xde, 0x5a, 0x40, 0xa3, 0x3a, 0x0e, 0x44, 0xbf, 0x95, 0x75, 0x03, 0xd5, 0xca, 0x02, 0x83, 0x51, 0x2e, 0x57, 0xfb, 0xa8, 0xa3, 0xa6, 0xf2, 0xc3, 0x90, 0x68, 0x7b, 0x1b, 0x77, 0x08, 0x67, 0x6e, 0x0f, 0xd0, 0x3b, 0x7c, 0x18, 0x8d, 0x45, 0x61, 0xc1, 0x87, 0x91, 0x63, 0xea, 0xf2, 0xb5, 0x96, 0xdd, 0xd5, 0xf3, 0xc1, 0xf4, 0xda, 0xdb, 0xc1, 0x39, 0xc2, 0x16, 0x48, 0x92, 0x82, 0x0b, 0x2f, 0xe0, 0x9c, 0xbc, 0x3d, 0x19, 0x08, 0x80, 0x76, 0x36, 0x45, 0x10, 0x25, 0x4f, 0x2b, 0x6d, 0x41, 0x03, 0x29, 0xe7, 0x0f, 0x2e, 0x5a, 0x94, 0x5b, 0xba, 0xcd, 0x2c, 0xa8, 0x9b, 0xd4, 0xb6, 0xe1, 0xf5, 0xe2, 0xe1, 0xd4, 0xf4, 0xed, 0x2f, 0xe0, 0x11, 0x3b, 0xcf, 0x32, 0x96, 0x2f, 0x00, 0xd5, 0xc3, 0x3b, 0x1d, 0xf9, 0x88, 0x40, 0x2b, 0xa0, 0xdc, 0x88, 0x04, 0xc1, 0xaf, 0x66, 0xcc, 0xae, 0x26, 0x70, 0xef, 0xa3, 0x13, 0x4c, 0x67, 0xfc, 0x90, 0xfe, 0xed, 0x8d, 0x8d, 0xee, 0xdc, 0xcf, 0x6a, 0x46, 0xf2, 0x29, 0x40, 0x45, 0x4a, 0xf2, 0xbb, 0x67, 0x54, 0xcf, 0x23, 0x5d, 0xdb, 0xb0, 0x00, 0x1c, 0x6c, 0x74, 0x1b, 0xf8, 0x74, 0xbc, 0xd8, 0xd4, 0x1d, 0x9d, 0xba, 0x81, 0x62, 0x58, 0x1c, 0x37, 0x46, 0xd7, 0xf3, 0x0e, 0x73, 0xde, 0xf6, 0x94, 0x15, 0xaf, 0x51, 0x81, 0xc1, 0x49, 0x91, 0x42, 0x95, 0x12, 0x2d, 0x45, 0x98, 0x2f, 0x94, 0x94, 0x3e, 0x20, 0xb0, 0xff, 0xc7, 0xfe, 0x6d, 0xdf, 0x19, 0xa0, 0x22, 0xe8, 0x7a, 0x52, 0x13, 0x33, 0x57, 0xa1, 0xe8, 0x0f, 0x37, 0xf2, 0x8a, 0x4c, 0x4a, 0x8a, 0x61, 0xc1, 0x48, 0xdd, 0x87, 0x5c, 0x1e, 0x8e, 0xcd, 0xcd, 0x84, 0x0d, 0xd8, 0x63, 0xe4, 0x4d, 0x9b, 0xcb, 0x16, 0xb6, 0xe5, 0xaf, 0x01, 0x47, 0xb3, 0x4a, 0x7a, 0x90, 0x52, 0xc8, 0xd3, 0xf4, 0x52, 0x01, 0x3d, 0x2d, 0x35, 0x4f, 0x68, 0x03, 0xf9, 0xea, 0xf6, 0x05, 0x6f, 0x3b, 0x01, 0x3c, 0x61, 0x6e, 0x47, 0xf3, 0x98, 0x81, 0x91, 0x46, 0x32, 0x0a, 0x5e, 0x3d, 0xbd, 0xf1, 0x68, 0x43, 0xea, 0x29, 0xde, 0xf2, 0x62, 0xcc, 0x9a, 0x34, 0x36, 0x72, 0xcf, 0x96, 0xbc, 0xcc, 0x6e, 0x87, 0xe6, 0xa6, 0xba, 0xf0, 0x71, 0x2e, 0x6e, 0xe8, 0x9a, 0xa6, 0x04, 0x89, 0xf1, 0x7c, 0xb7, 0x2d, 0xdc, 0x44, 0xba, 0xd1, 0x61, 0x58, 0x7d, 0x87, 0xf5, 0x4d, 0x67, 0xcc, 0x0a, 0x27, 0x78, 0x49, 0x7d, 0x83, 0x10, 0x88, 0x31, 0x5f, 0xfe, 0xee, 0x3d, 0x26, 0x8c, 0x59, 0xbe, 0xfe, 0x88, 0x4c, 0x3a, 0xa0, 0xe0, 0xae, 0x22, 0x96, 0xbb, 0xb6, 0x0e, 0xac, 0x90, 0x97, 0xcd, 0xf8, 0xdc, 0x09, 0x87, 0xce, 0xb1, 0x74, 0x2b, 0x05, 0x86, 0xdf, 0xce, 0x79, 0xec, 0x10, 0x42, 0x5b, 0x28, 0xf4, 0xe6, 0x45, 0x20, 0xd7, 0x12, 0xe3, 0xf4, 0x6e, 0xa8, 0x3b, 0xe2, 0xde, 0x6a, 0x15, 0x74, 0x07, 0x3b, 0xc5, 0xc7, 0x55, 0x7b, 0x8e, 0x25, 0xb6, 0x41, 0x11, 0x84, 0xea, 0x28, 0x3d, 0x88, 0x00, 0x23, 0x2c, 0x79, 0x06, 0x94, 0x21, 0x81, 0x1f, 0x88, 0x3c, 0x29, 0x94, 0xe7, 0xb7, 0xe2, 0xad, 0x9f, 0x8d, 0xc4, 0x89, 0xc9, 0x34, 0x77, 0x24, 0x39, 0x46, 0x09, 0xc9, 0x89, 0x09, 0xa6, 0xc2, 0x60, 0x17, 0xb5, 0x0f, 0x20, 0xd5, 0x0c, 0xca, 0xcb, 0xde, 0x36, 0xb7, 0x6b, 0xa6, 0x46, 0xa7, 0x6d, 0xc6, 0xa5, 0xb0, 0xf5, 0x06, 0x49, 0xc5, 0x65, 0x8b, 0xbd, 0xfd, 0xd3, 0xb5, 0xca, 0xfc, 0x54, 0x79, 0xa2, 0xf4, 0x8e, 0xe5, 0x15, 0x42, 0xf2, 0x3e, 0x9f, 0xc9, 0x21, 0x32, 0x06, 0x0f, 0xd6, 0x35, 0xef, 0xf4, 0x52, 0x11, 0x1c, 0xda, 0xf3, 0xef, 0xbd, 0xb7, 0xdb, 0x9e, 0x7d, 0x47, 0x16, 0xd0, 0xd6, 0x01, 0x1c, 0x29, 0x11, 0x8a, 0x55, 0xd4, 0xc1, 0xa4, 0x36, 0xab, 0xe2, 0x4e, 0x3c, 0xbf, 0x40, 0x23, 0x5b, 0x76, 0xdd, 0x19, 0x23, 0x50, 0x3c, 0x5f, 0x35, 0x98, 0x12, 0x4e, 0x2d, 0xf5, 0x5a, 0x2d, 0x1f, 0x24, 0x6e, 0x90, 0xde, 0x4b, 0x71, 0x64, 0x5d, 0x51, 0x75, 0xb6, 0x1b, 0x01, 0x74, 0xe7, 0xe5, 0x7d, 0xf1, 0x28, 0x5c, 0xcf, 0x8c, 0x86, 0xb8, 0x38, 0x2c, 0x25, 0x80, 0x79, };
23390 static const u8 ed25519_1017_test_vectors_expected_sig[] = {
23391 	0xf5, 0x19, 0x1b, 0x44, 0xbd, 0x6c, 0xc3, 0xea, 0x28, 0x17, 0x71, 0xdf, 0x12, 0x54, 0x9b, 0xa2, 0xbe, 0x22, 0x8b, 0x51, 0xeb, 0x79, 0x1b, 0x9e, 0x5e, 0xd2, 0x81, 0x5f, 0x86, 0x2a, 0xa6, 0x30, 0xb5, 0x69, 0x67, 0xcd, 0xef, 0x8b, 0x6a, 0xf0, 0xb9, 0xd2, 0x1a, 0xb8, 0xc9, 0x7a, 0x6d, 0xff, 0x68, 0x1c, 0xce, 0xd9, 0xf5, 0x01, 0x97, 0x13, 0xd4, 0x35, 0x7c, 0xb3, 0xe5, 0x4c, 0x0d, 0x08, };
23392 static const ec_test_case ed25519_1017_test_case = {
23393 	.name = "EDDSA25519-SHA512/wei25519 1017",
23394 	.ec_str_p = &wei25519_str_params,
23395 	.priv_key = ed25519_1017_test_vectors_priv_key,
23396 	.priv_key_len = sizeof(ed25519_1017_test_vectors_priv_key),
23397 	.nn_random = NULL,
23398 	.hash_type = SHA512,
23399 	.msg = (const char *)ed25519_1017_test_vectors_message,
23400 	.msglen = sizeof(ed25519_1017_test_vectors_message),
23401 	.sig_type = EDDSA25519,
23402 	.exp_sig = ed25519_1017_test_vectors_expected_sig,
23403 	.exp_siglen = sizeof(ed25519_1017_test_vectors_expected_sig),
23404 	.adata = NULL,
23405 	.adata_len = 0
23406 };
23407 
23408 /************************************************/
23409 static const u8 ed25519_1018_test_vectors_priv_key[] = {
23410 	0x05, 0xc7, 0x19, 0xca, 0xe0, 0x6e, 0x2b, 0xb7, 0xd8, 0x78, 0x63, 0xab, 0x31, 0x50, 0x27, 0x2c, 0xb2, 0xf8, 0xc3, 0xaa, 0x24, 0x21, 0x91, 0x2d, 0x87, 0xf9, 0x8e, 0x75, 0x89, 0x63, 0x8c, 0xe9, };
23411 static const u8 ed25519_1018_test_vectors_message[] = {
23412 	0xec, 0x24, 0x19, 0x18, 0x41, 0x8e, 0x60, 0x52, 0x20, 0x42, 0xe6, 0x73, 0x39, 0xe6, 0x64, 0x94, 0x99, 0xf3, 0x1a, 0x6c, 0x7c, 0xf8, 0x92, 0x5f, 0x1f, 0x61, 0xdd, 0xe8, 0x94, 0x60, 0x36, 0x02, 0xae, 0x8b, 0xb5, 0xf5, 0x88, 0x09, 0x82, 0x1f, 0x83, 0x34, 0x4f, 0x23, 0xcd, 0x31, 0xe6, 0x4e, 0xc9, 0xff, 0xe7, 0x9a, 0x98, 0x6b, 0x7e, 0x29, 0xe4, 0x31, 0x9a, 0x63, 0x41, 0x43, 0x16, 0xbd, 0x6e, 0xe2, 0x0e, 0x02, 0xa5, 0x0d, 0xa4, 0x40, 0x12, 0xbd, 0x2d, 0x6f, 0x9f, 0x67, 0x9e, 0x88, 0xed, 0x0c, 0x8b, 0xb1, 0xe2, 0xca, 0xd5, 0x5e, 0x56, 0x57, 0x89, 0x88, 0x33, 0x45, 0xb7, 0x54, 0x6f, 0x3d, 0x54, 0xb1, 0xb3, 0x62, 0xb1, 0xc6, 0x50, 0x50, 0x2c, 0x01, 0x9d, 0x73, 0x13, 0xaf, 0xbc, 0x82, 0x68, 0x9b, 0x23, 0xa3, 0xa5, 0x2d, 0x8f, 0x1a, 0xf9, 0xf8, 0x1e, 0x18, 0x8d, 0xbd, 0xf2, 0x03, 0xfb, 0x53, 0x00, 0xb4, 0x22, 0x5b, 0xfb, 0x67, 0x73, 0x33, 0x7b, 0xe6, 0x75, 0x0b, 0x3d, 0xb8, 0x8c, 0xe0, 0x97, 0x34, 0x3f, 0x62, 0xee, 0x2c, 0x11, 0x85, 0x74, 0xef, 0x15, 0x0c, 0xbd, 0x4c, 0x62, 0x76, 0x0c, 0x3e, 0x43, 0xdc, 0xbc, 0x39, 0x21, 0x8b, 0xd6, 0xd9, 0x85, 0x65, 0xfa, 0x38, 0x98, 0x11, 0xb1, 0xa6, 0x74, 0xf6, 0x17, 0xfd, 0x75, 0x67, 0x33, 0xdc, 0xb5, 0x67, 0xa9, 0x2d, 0xbf, 0x38, 0x55, 0xb5, 0x7b, 0x1f, 0x4a, 0x46, 0xd5, 0xb8, 0x97, 0x4b, 0x39, 0xac, 0x0d, 0x0e, 0x24, 0xd9, 0x9d, 0x20, 0x37, 0xc0, 0x4f, 0x60, 0xd9, 0x14, 0x0f, 0x64, 0xb0, 0x7a, 0x77, 0xd7, 0xea, 0xa1, 0xce, 0x8a, 0x78, 0xe8, 0x44, 0xb1, 0xdc, 0xf0, 0xe3, 0x74, 0x24, 0xf3, 0xf9, 0xd2, 0x53, 0xa5, 0x48, 0x56, 0x1a, 0x03, 0x75, 0xa8, 0xd4, 0x34, 0x12, 0x97, 0xbf, 0xed, 0xb7, 0x04, 0x8c, 0x79, 0x35, 0xe1, 0x48, 0x14, 0x18, 0xf9, 0xbb, 0xa9, 0x27, 0x1f, 0x9f, 0xd6, 0x02, 0x62, 0x24, 0xe7, 0x8e, 0x05, 0x5d, 0x8a, 0x09, 0x39, 0xfa, 0x2f, 0xe1, 0xdb, 0xc0, 0xfc, 0x7b, 0x58, 0x3e, 0x4c, 0xff, 0x34, 0x90, 0xe1, 0xd0, 0xf6, 0x10, 0xb2, 0x52, 0xe3, 0x0d, 0x84, 0x97, 0xd0, 0x0e, 0x4a, 0xac, 0xb3, 0x75, 0xf1, 0x9a, 0x47, 0x19, 0xf7, 0x9c, 0xa1, 0xea, 0x58, 0x3a, 0x2f, 0x8b, 0x14, 0x06, 0xa4, 0xaa, 0x5c, 0xb5, 0x5c, 0x08, 0xb6, 0x59, 0x3b, 0x67, 0x6e, 0xb5, 0xc3, 0x4a, 0xbe, 0x89, 0x39, 0x2d, 0x62, 0xd2, 0x33, 0x08, 0xa3, 0x34, 0x8b, 0x57, 0xaf, 0xfb, 0xba, 0x77, 0x39, 0xcd, 0xe8, 0xe1, 0x90, 0x9d, 0x34, 0x25, 0xee, 0xb2, 0x09, 0x26, 0xa9, 0x77, 0xd3, 0xa9, 0x4a, 0x86, 0xe0, 0xba, 0x10, 0xb3, 0x86, 0x92, 0x66, 0x98, 0x82, 0x7e, 0x86, 0xb4, 0xfd, 0x6c, 0x61, 0x80, 0x04, 0x7c, 0x87, 0xec, 0x3b, 0x31, 0x61, 0x9d, 0x05, 0xa9, 0xdf, 0x34, 0xef, 0xd3, 0xd7, 0x6a, 0x83, 0x69, 0x62, 0xb2, 0xef, 0x60, 0x4d, 0x07, 0xaf, 0x09, 0x75, 0xeb, 0x8f, 0x3d, 0xd2, 0x25, 0x94, 0x32, 0x38, 0x02, 0x56, 0x4c, 0x92, 0x9b, 0x3f, 0x65, 0xda, 0xcb, 0x57, 0x2b, 0x32, 0x55, 0x3d, 0x69, 0xb3, 0x1a, 0x19, 0x76, 0x90, 0xa9, 0xbb, 0x86, 0x0b, 0x08, 0x0a, 0x77, 0xcf, 0xbb, 0x3c, 0x17, 0x5a, 0xaf, 0xce, 0x01, 0x46, 0xa8, 0x2a, 0x4d, 0x06, 0xe8, 0xc7, 0x50, 0x52, 0x1b, 0x72, 0x6e, 0xf1, 0xcb, 0x29, 0xd0, 0x21, 0xe5, 0x91, 0x5e, 0x5e, 0x84, 0x62, 0xed, 0xe5, 0x39, 0x54, 0x45, 0x24, 0x5c, 0x9a, 0xe8, 0x82, 0xee, 0xc4, 0xb1, 0x74, 0x5e, 0x11, 0x79, 0x1f, 0x76, 0x21, 0xd3, 0xfe, 0x70, 0x2c, 0xac, 0x15, 0x25, 0xe1, 0xf7, 0xb4, 0x6e, 0x11, 0x05, 0xcd, 0xd0, 0x6d, 0xa2, 0xaf, 0xde, 0x26, 0x47, 0x5d, 0xc1, 0xf7, 0x8d, 0xf8, 0xe2, 0xd7, 0x2b, 0x0e, 0xc3, 0xef, 0x7d, 0xd9, 0x56, 0x19, 0x3c, 0x99, 0x68, 0x42, 0xa4, 0x32, 0x69, 0x65, 0x38, 0xcf, 0x12, 0x3d, 0x76, 0x87, 0x21, 0x1f, 0xfc, 0xd0, 0x90, 0xb9, 0x38, 0x1e, 0xab, 0xec, 0x87, 0x9f, 0x76, 0x9a, 0xac, 0x0d, 0x35, 0x64, 0xe1, 0x6d, 0xf7, 0x94, 0xfa, 0x24, 0x72, 0x8d, 0x71, 0x72, 0xfd, 0x07, 0x73, 0x2e, 0xab, 0x07, 0x7e, 0xd8, 0x1c, 0x22, 0x08, 0x4f, 0x6f, 0x78, 0x1b, 0x62, 0x6d, 0xac, 0x67, 0x42, 0x8a, 0x9d, 0xdf, 0x3b, 0x0d, 0xb0, 0x46, 0x52, 0x51, 0x22, 0x0d, 0x18, 0xb8, 0xbf, 0x62, 0x04, 0x64, 0xc5, 0x1a, 0x57, 0x8d, 0xec, 0xcc, 0xbb, 0xab, 0xa5, 0x45, 0xed, 0x44, 0x2c, 0xf1, 0x2c, 0x4c, 0x66, 0xf6, 0xcb, 0x6e, 0x69, 0x01, 0xea, 0x54, 0xae, 0xda, 0x23, 0x6e, 0xc4, 0x5e, 0xef, 0x88, 0x6a, 0x7d, 0xdd, 0x2c, 0x04, 0x1c, 0xab, 0xa3, 0xa6, 0xce, 0xe3, 0x39, 0x71, 0x5b, 0x6c, 0xe9, 0x7e, 0x76, 0x5e, 0xc3, 0x47, 0x9f, 0x3d, 0x52, 0x82, 0x4a, 0x81, 0x94, 0xbe, 0xc2, 0xa8, 0x96, 0x47, 0xe8, 0xc6, 0x3f, 0xf7, 0x64, 0x5f, 0xf6, 0xd0, 0x53, 0x67, 0xc7, 0x67, 0xbc, 0x48, 0xcc, 0x96, 0xba, 0xf0, 0x5d, 0x6a, 0x41, 0x5b, 0x2a, 0x5a, 0xff, 0x9b, 0xfb, 0x21, 0x79, 0x48, 0xfa, 0xd3, 0x57, 0xb9, 0x8f, 0x47, 0xdf, 0xed, 0x62, 0xff, 0x12, 0x85, 0xeb, 0x9f, 0x46, 0x8f, 0x0f, 0x29, 0xed, 0xd7, 0x5a, 0xdc, 0x0c, 0x8c, 0x2f, 0xf6, 0xa5, 0x65, 0xed, 0xb8, 0xed, 0xfb, 0x48, 0xbe, 0xa0, 0x3b, 0x70, 0xc4, 0x47, 0x36, 0x9c, 0x52, 0xd8, 0x81, 0xee, 0xa0, 0xee, 0xdb, 0x08, 0xc3, 0x15, 0xcd, 0xf0, 0xbf, 0xeb, 0x97, 0x9c, 0x1c, 0x02, 0x50, 0x94, 0x6b, 0xb1, 0x00, 0xc2, 0x86, 0x6b, 0x41, 0x69, 0xb8, 0xcb, 0xd4, 0x4d, 0x65, 0x8f, 0x02, 0x36, 0xe1, 0xe9, 0xf3, 0xaa, 0x13, 0xbb, 0x8e, 0x80, 0x22, 0xa3, 0x8c, 0xe9, 0x97, 0xc9, 0x4b, 0x5b, 0xaf, 0x97, 0xe0, 0xba, 0x62, 0x1f, 0x7e, 0x09, 0x67, 0x1c, 0xe6, 0x38, 0xc2, 0xa3, 0x9e, 0xe6, 0xc6, 0xe2, 0x5a, 0x68, 0x80, 0x19, 0xdd, 0x16, 0x76, 0x75, 0xce, 0xae, 0xc2, 0x1c, 0x6b, 0x42, 0xa7, 0xc8, 0xc4, 0x76, 0xd1, 0x29, 0xdc, 0xc6, 0x93, 0xc3, 0x92, 0xa0, 0x2b, 0xe9, 0x1b, 0x87, 0x43, 0x7a, 0x08, 0xa0, 0xeb, 0xf1, 0xa7, 0xbd, 0x97, 0x6b, 0xa2, 0x37, 0x74, 0x76, 0x68, 0x38, 0xb8, 0xd6, 0x02, 0x4f, 0x5b, 0xb9, 0xb0, 0x7f, 0x3c, 0x6b, 0x71, 0x9b, 0x4d, 0xe1, 0x5b, 0x72, 0x44, 0x80, 0x48, 0xab, 0x70, 0xdb, 0x3d, 0x4b, 0xea, 0x77, 0xba, 0x35, 0x9b, 0x51, 0xb1, 0xec, 0x17, 0xdb, 0xe8, 0x01, 0x0a, 0xef, 0x02, 0x44, 0xa8, 0x07, 0x9c, 0xa8, 0xb9, 0xa2, 0xa7, 0x97, 0xf3, 0xb1, 0xfe, 0x04, 0x7c, 0x8d, 0xd5, 0xca, 0xb7, 0xfb, 0x48, 0x68, 0x29, 0x23, 0x9c, 0x4e, 0xf6, 0xd9, 0xa3, 0x83, 0x70, 0xd4, 0x88, 0xc4, 0x7b, 0x7c, 0x03, 0x0e, 0x49, 0xa5, 0x50, 0x0c, 0x9a, 0xbb, 0x39, 0xa9, 0xa5, 0xab, 0xfe, 0x72, 0xe9, 0x18, 0xb7, 0x63, 0x84, 0xec, 0xaa, 0xfe, 0x16, 0x27, 0x26, 0x6c, 0xd1, 0x4e, 0x69, 0x6c, 0x09, 0xd2, 0x51, 0x2e, 0x31, 0x25, 0x82, 0xa8, 0xa9, 0x11, 0xe7, 0xb7, 0xbf, 0xa0, 0x4c, 0x21, 0x81, 0x9a, 0xf6, 0x87, 0xf0, 0x4c, 0x5e, 0x0c, 0xbe, 0x9a, 0x2c, 0xe2, 0x4d, 0x4d, 0x3f, 0xd1, 0x21, 0x90, 0xb2, 0x53, 0xda, 0xbc, 0x12, 0xc6, 0x3c, 0xab, 0xfa, 0x94, };
23413 static const u8 ed25519_1018_test_vectors_expected_sig[] = {
23414 	0xba, 0x6e, 0xb7, 0x51, 0x37, 0x1d, 0xf7, 0x21, 0xb7, 0x70, 0x7a, 0x5b, 0x33, 0x39, 0xed, 0xb5, 0x5f, 0x13, 0x86, 0x40, 0xb9, 0x7b, 0xe6, 0x33, 0x4d, 0x6c, 0xda, 0x51, 0x91, 0xa3, 0xff, 0x63, 0x67, 0x91, 0x17, 0x61, 0x88, 0x2a, 0x4a, 0x00, 0x7f, 0x16, 0x1b, 0x74, 0x8c, 0xec, 0x95, 0xb1, 0x9e, 0x99, 0x5f, 0x28, 0x58, 0xc2, 0x57, 0xcd, 0x61, 0x69, 0x25, 0x66, 0x62, 0x30, 0x11, 0x02, };
23415 static const ec_test_case ed25519_1018_test_case = {
23416 	.name = "EDDSA25519-SHA512/wei25519 1018",
23417 	.ec_str_p = &wei25519_str_params,
23418 	.priv_key = ed25519_1018_test_vectors_priv_key,
23419 	.priv_key_len = sizeof(ed25519_1018_test_vectors_priv_key),
23420 	.nn_random = NULL,
23421 	.hash_type = SHA512,
23422 	.msg = (const char *)ed25519_1018_test_vectors_message,
23423 	.msglen = sizeof(ed25519_1018_test_vectors_message),
23424 	.sig_type = EDDSA25519,
23425 	.exp_sig = ed25519_1018_test_vectors_expected_sig,
23426 	.exp_siglen = sizeof(ed25519_1018_test_vectors_expected_sig),
23427 	.adata = NULL,
23428 	.adata_len = 0
23429 };
23430 
23431 /************************************************/
23432 static const u8 ed25519_1019_test_vectors_priv_key[] = {
23433 	0x53, 0x11, 0xf3, 0xc9, 0x61, 0x01, 0xcb, 0x8b, 0x7a, 0xbc, 0x62, 0x2b, 0xb9, 0x32, 0x6b, 0x8f, 0x51, 0x3c, 0x2b, 0x16, 0xd2, 0x94, 0xdf, 0x79, 0x7f, 0x56, 0xdf, 0xd8, 0x20, 0x3d, 0xda, 0x27, };
23434 static const u8 ed25519_1019_test_vectors_message[] = {
23435 	0x61, 0xb1, 0x5b, 0xe3, 0x7c, 0x4e, 0xb3, 0x97, 0xd9, 0xe7, 0x7e, 0x00, 0x15, 0x1a, 0x28, 0xed, 0x3e, 0x86, 0xd5, 0x0a, 0x95, 0x52, 0xbb, 0x48, 0x50, 0xb6, 0x21, 0x76, 0x3f, 0x01, 0x2e, 0x7e, 0x77, 0xbb, 0x5d, 0xb8, 0xf3, 0xdf, 0x7d, 0xcf, 0x76, 0x9f, 0x2d, 0x1d, 0x46, 0xd8, 0xd6, 0x0b, 0xae, 0x40, 0xc8, 0xca, 0x6e, 0x25, 0xc6, 0x41, 0x0b, 0x60, 0x07, 0x8a, 0x93, 0xfd, 0x05, 0x90, 0x21, 0x14, 0xbd, 0x91, 0x04, 0x5c, 0x06, 0x19, 0x2c, 0x70, 0xc4, 0x2c, 0x9f, 0x41, 0xf8, 0x16, 0x1c, 0xa4, 0x65, 0x64, 0xeb, 0xc2, 0x1a, 0x4b, 0xdd, 0x81, 0x90, 0xeb, 0xa2, 0xae, 0xb3, 0x09, 0x82, 0x30, 0x72, 0xec, 0x2c, 0x02, 0x00, 0xce, 0x64, 0x98, 0xf9, 0xd7, 0x2b, 0x37, 0xb3, 0xfb, 0x46, 0x67, 0x74, 0x32, 0x6d, 0xf3, 0x7a, 0xd8, 0x80, 0xd8, 0xed, 0xdb, 0x32, 0xaf, 0x67, 0x3e, 0x45, 0xd8, 0x8e, 0xec, 0x49, 0xb1, 0x57, 0x7b, 0x43, 0xb8, 0x63, 0x91, 0x11, 0xc2, 0xe0, 0xb9, 0x41, 0x87, 0xd2, 0xd4, 0xe0, 0x17, 0x3c, 0x00, 0x0f, 0x4c, 0x37, 0xbe, 0x84, 0x5d, 0x68, 0x81, 0x0b, 0x78, 0x89, 0xff, 0x2a, 0x04, 0x9f, 0x3f, 0x9f, 0x24, 0x5e, 0xc7, 0x0f, 0x21, 0xde, 0xf9, 0x77, 0x80, 0xb6, 0x11, 0x40, 0x0a, 0x83, 0xc3, 0x1a, 0x79, 0xd9, 0x3a, 0x8e, 0x98, 0xb6, 0x08, 0xfd, 0xcf, 0x24, 0x88, 0xb0, 0x68, 0xfe, 0x1a, 0xe4, 0x21, 0x72, 0x93, 0xa9, 0x36, 0x7b, 0xb7, 0x34, 0xb5, 0xbc, 0x7b, 0xd8, 0x81, 0x9b, 0x37, 0x7f, 0x09, 0x0b, 0x4f, 0x8f, 0xdb, 0xff, 0x50, 0x79, 0x9c, 0x76, 0x88, 0x0d, 0x19, 0x13, 0x35, 0x80, 0xe1, 0xdd, 0xfc, 0x2b, 0x9b, 0xaa, 0xdd, 0xba, 0xb3, 0x4f, 0xc6, 0xfd, 0xc0, 0x78, 0x01, 0x4b, 0xd1, 0xff, 0x73, 0x9d, 0xaa, 0xfe, 0x54, 0x76, 0xf3, 0xf7, 0x9d, 0x4d, 0xbe, 0xc2, 0x16, 0xfa, 0x76, 0x80, 0xee, 0x8e, 0x84, 0x00, 0x2d, 0xcb, 0x9d, 0xdb, 0xc7, 0xfc, 0x1e, 0x1c, 0x8e, 0xf4, 0xf1, 0xb2, 0xa2, 0x08, 0x1b, 0x92, 0x82, 0x24, 0x3d, 0xa6, 0x15, 0x3c, 0x1f, 0xce, 0x09, 0x05, 0xcf, 0x35, 0xf8, 0x3a, 0x68, 0x4c, 0x01, 0xb0, 0x45, 0x57, 0xec, 0x84, 0xf7, 0xe9, 0xa9, 0x4f, 0xc2, 0x88, 0x2e, 0x2f, 0xf1, 0x9f, 0xea, 0x21, 0xd2, 0xce, 0x61, 0x67, 0x86, 0x1c, 0xe0, 0x1d, 0xf8, 0xb8, 0xd3, 0xc3, 0xe8, 0xd2, 0x55, 0x61, 0x0b, 0x7a, 0xf2, 0x59, 0x6c, 0xd5, 0xcf, 0x00, 0x16, 0x73, 0x49, 0x42, 0xcc, 0x71, 0x4c, 0x27, 0x2c, 0x05, 0xfd, 0xa9, 0xd3, 0x47, 0x23, 0x62, 0x66, 0x46, 0xa4, 0x61, 0x30, 0x18, 0x2c, 0xeb, 0xcf, 0x17, 0x9e, 0xc0, 0x0a, 0x6a, 0x17, 0x3b, 0xd8, 0x57, 0x7f, 0xa8, 0x45, 0xc4, 0x4d, 0x19, 0xc6, 0x99, 0x79, 0x44, 0x75, 0x5f, 0x2b, 0x4e, 0x46, 0x85, 0x63, 0xa7, 0x5e, 0x90, 0x16, 0x52, 0x3b, 0x87, 0xdd, 0xac, 0x3e, 0xee, 0x21, 0xbc, 0xbc, 0xa0, 0x8f, 0xcc, 0x29, 0x54, 0x6a, 0x43, 0xcb, 0xe0, 0xd8, 0xd1, 0x0a, 0x0e, 0x8d, 0xdc, 0xba, 0x17, 0x2d, 0x1d, 0xed, 0x15, 0x03, 0x78, 0xe1, 0x8b, 0x36, 0x8c, 0x77, 0x63, 0x91, 0x3e, 0x4b, 0x40, 0x70, 0x12, 0xfd, 0x76, 0xa8, 0x72, 0xd2, 0xcb, 0x04, 0x93, 0x0b, 0x8e, 0x22, 0xb3, 0x08, 0x24, 0x3d, 0x4c, 0xc2, 0x78, 0xfd, 0xf2, 0xe1, 0xf9, 0x40, 0xae, 0x89, 0xac, 0x89, 0x1b, 0x9e, 0x06, 0x61, 0xae, 0xe5, 0x53, 0x93, 0x7b, 0xf3, 0x50, 0xb4, 0x07, 0x07, 0x0a, 0x1b, 0xdf, 0xc4, 0xf7, 0xa3, 0x78, 0x7e, 0xf3, 0x99, 0xd2, 0xca, 0xf4, 0xec, 0x74, 0x43, 0x9c, 0x58, 0x73, 0x76, 0xc7, 0x7b, 0xe0, 0xc3, 0xde, 0x53, 0x9d, 0x3a, 0xc2, 0x60, 0x89, 0x76, 0x5b, 0x9b, 0xe1, 0x0b, 0x90, 0x38, 0x69, 0x46, 0x36, 0xe2, 0x62, 0xd7, 0xba, 0xa0, 0xb3, 0xa8, 0x94, 0x1a, 0x20, 0x15, 0x96, 0x76, 0x39, 0xf6, 0x04, 0x4c, 0x67, 0xe5, 0x9b, 0xc8, 0x1c, 0xf2, 0xfb, 0xa7, 0x04, 0xac, 0x0d, 0xf4, 0x8d, 0xa6, 0x03, 0x74, 0x05, 0xa8, 0xe8, 0xb8, 0xa7, 0xce, 0x3c, 0x58, 0xef, 0x38, 0xa8, 0x83, 0x53, 0x8b, 0x24, 0x7f, 0xfe, 0x18, 0x09, 0x7a, 0xf0, 0x95, 0x24, 0x2b, 0x05, 0x8b, 0xdd, 0x1e, 0x3e, 0x24, 0x5e, 0xec, 0xe0, 0xa7, 0x1b, 0x75, 0xb9, 0x7d, 0x52, 0xf2, 0x0d, 0x6d, 0x51, 0xbb, 0x97, 0x66, 0xb0, 0xda, 0x0f, 0xc0, 0x9c, 0x8a, 0xc2, 0xa3, 0x0f, 0xb6, 0xe7, 0xb3, 0x2e, 0xe0, 0x6d, 0xad, 0xf4, 0x6d, 0x73, 0x59, 0xcc, 0x06, 0x6a, 0xa9, 0x47, 0x85, 0xd8, 0xa8, 0x82, 0xff, 0x09, 0x7d, 0x78, 0xa8, 0x6b, 0xe2, 0xd4, 0x56, 0x00, 0xdd, 0x3d, 0x30, 0x60, 0x12, 0x5f, 0x01, 0xc0, 0x63, 0xe4, 0x88, 0xd5, 0xc3, 0xef, 0xee, 0x1b, 0xca, 0x1e, 0x58, 0x51, 0x64, 0x55, 0xff, 0xca, 0xec, 0x1b, 0x81, 0xef, 0x43, 0x38, 0x76, 0xbf, 0x09, 0xff, 0xa5, 0x1d, 0x6f, 0x50, 0x18, 0x58, 0x52, 0x24, 0x57, 0x9c, 0xb6, 0x7b, 0x56, 0xce, 0x1c, 0x21, 0x6e, 0xc0, 0xa8, 0x83, 0xe0, 0x6c, 0x8e, 0x15, 0x63, 0x42, 0x1e, 0xa7, 0x2b, 0x0c, 0x10, 0xd4, 0xbb, 0x31, 0xe4, 0x91, 0xc2, 0xae, 0x2f, 0xe8, 0x13, 0x9f, 0x24, 0x9e, 0xc9, 0x27, 0xd8, 0x06, 0xba, 0x08, 0xdb, 0x52, 0xb1, 0xb5, 0x06, 0x66, 0x90, 0x47, 0xf0, 0xc1, 0x16, 0xff, 0x37, 0xac, 0x5b, 0xa6, 0xcd, 0xb1, 0xea, 0xaf, 0x33, 0xfd, 0xad, 0xb0, 0x70, 0x5c, 0x79, 0x9d, 0x35, 0xac, 0x6d, 0x9c, 0x80, 0xda, 0x90, 0xc1, 0x43, 0x8b, 0x58, 0x5f, 0xfd, 0x59, 0x35, 0x0a, 0x26, 0x86, 0xb1, 0xec, 0x35, 0x16, 0x6c, 0xb9, 0xb6, 0x9a, 0xd0, 0xf5, 0x65, 0x86, 0xaa, 0x03, 0x27, 0x4d, 0x78, 0x2e, 0x3f, 0x85, 0x8d, 0xb6, 0x4a, 0xdf, 0xbf, 0x04, 0xd5, 0x22, 0x8a, 0x7b, 0x1c, 0x4a, 0x20, 0x48, 0xbb, 0xcd, 0xb9, 0x41, 0x15, 0x3a, 0x43, 0x6d, 0x74, 0x2c, 0x38, 0xb5, 0x8b, 0x4d, 0x7d, 0x13, 0xc9, 0xf1, 0xd6, 0x0e, 0x15, 0x2a, 0xa2, 0x79, 0x23, 0x49, 0xa3, 0xd9, 0x4e, 0x7e, 0x6b, 0x11, 0x04, 0xaa, 0x1b, 0x87, 0x09, 0x98, 0xc1, 0x8d, 0xd7, 0x06, 0x56, 0x54, 0xa8, 0x52, 0x81, 0xbb, 0x6f, 0x02, 0x7f, 0xaa, 0xd5, 0x56, 0xb1, 0xf5, 0x32, 0xe7, 0xa1, 0xe2, 0x2d, 0x56, 0x40, 0x69, 0x28, 0x95, 0x87, 0xa0, 0xef, 0xc9, 0xc1, 0x58, 0x5d, 0x13, 0x5f, 0x31, 0x23, 0x3c, 0x41, 0xf4, 0x40, 0x46, 0x6e, 0x71, 0xfe, 0x90, 0x12, 0xe5, 0xf9, 0xa0, 0xd7, 0x4a, 0x72, 0x82, 0xee, 0x39, 0x2f, 0xb0, 0x16, 0x5d, 0xb7, 0x9f, 0xf1, 0xd3, 0x17, 0x6e, 0xd0, 0x8a, 0xfe, 0x1d, 0xaa, 0x66, 0xcf, 0xbf, 0x43, 0x05, 0xae, 0x16, 0xac, 0x17, 0x92, 0x33, 0x43, 0x99, 0xf7, 0x1b, 0x19, 0x17, 0xdd, 0xec, 0x27, 0x0a, 0xcf, 0xf6, 0x65, 0xea, 0x05, 0xd1, 0x84, 0xc2, 0xc5, 0xcd, 0x2c, 0xcd, 0x90, 0x2b, 0x22, 0xf9, 0xb7, 0x19, 0x5e, 0x66, 0xa6, 0x55, 0x56, 0xca, 0x88, 0x4b, 0xa6, 0xf5, 0xda, 0x04, 0xdc, 0xd4, 0x61, 0x7f, 0x33, 0xdc, 0x2b, 0x44, 0xa0, 0xea, 0x74, 0x2a, 0xeb, 0x2b, 0x93, 0xf3, 0xa4, 0x1d, 0xf7, 0x95, 0x7a, 0x02, 0x67, 0x97, 0xa5, 0x85, 0xce, 0xee, 0x81, 0x4b, 0x19, 0x75, 0xf5, 0x23, 0xd2, 0xdb, 0x5d, 0xbb, 0x9b, 0xe0, 0xca, 0x64, 0x9d, 0x1d, 0x45, 0xdc, 0xfd, };
23436 static const u8 ed25519_1019_test_vectors_expected_sig[] = {
23437 	0x3c, 0xbb, 0xb2, 0x60, 0x88, 0x70, 0xde, 0xa1, 0xef, 0xee, 0xbb, 0x3f, 0xbf, 0x68, 0x1e, 0x27, 0x70, 0x5c, 0x35, 0xe4, 0xdd, 0xee, 0xa8, 0x6c, 0x1b, 0x34, 0x2a, 0x77, 0xdc, 0x29, 0x6b, 0x49, 0x84, 0x19, 0x80, 0x8e, 0xac, 0xbc, 0x78, 0x85, 0x56, 0x11, 0xff, 0xbc, 0x92, 0x65, 0xa7, 0x47, 0x98, 0xe5, 0x18, 0x27, 0xe6, 0xe5, 0xd8, 0x11, 0x81, 0x6d, 0x3c, 0xa2, 0x1e, 0x8b, 0x9c, 0x06, };
23438 static const ec_test_case ed25519_1019_test_case = {
23439 	.name = "EDDSA25519-SHA512/wei25519 1019",
23440 	.ec_str_p = &wei25519_str_params,
23441 	.priv_key = ed25519_1019_test_vectors_priv_key,
23442 	.priv_key_len = sizeof(ed25519_1019_test_vectors_priv_key),
23443 	.nn_random = NULL,
23444 	.hash_type = SHA512,
23445 	.msg = (const char *)ed25519_1019_test_vectors_message,
23446 	.msglen = sizeof(ed25519_1019_test_vectors_message),
23447 	.sig_type = EDDSA25519,
23448 	.exp_sig = ed25519_1019_test_vectors_expected_sig,
23449 	.exp_siglen = sizeof(ed25519_1019_test_vectors_expected_sig),
23450 	.adata = NULL,
23451 	.adata_len = 0
23452 };
23453 
23454 /************************************************/
23455 static const u8 ed25519_1020_test_vectors_priv_key[] = {
23456 	0xd2, 0x90, 0xff, 0xd9, 0x33, 0x95, 0xbd, 0x5f, 0xc5, 0x87, 0xd1, 0xab, 0x51, 0x18, 0x66, 0xe7, 0x2b, 0x37, 0x1a, 0x17, 0x35, 0x73, 0x2d, 0x9d, 0x5c, 0x6a, 0x18, 0xdd, 0x46, 0x5e, 0x93, 0x63, };
23457 static const u8 ed25519_1020_test_vectors_message[] = {
23458 	0xeb, 0xd9, 0x00, 0xbc, 0x91, 0x0c, 0x5e, 0xcc, 0x4d, 0x97, 0xda, 0xf7, 0xcb, 0x5e, 0xbb, 0x54, 0x91, 0x50, 0x0b, 0x7a, 0xd1, 0x16, 0xe3, 0x06, 0x60, 0x95, 0x07, 0x09, 0xd8, 0x08, 0x4b, 0xb6, 0x43, 0x4c, 0x5b, 0xea, 0x4a, 0x8c, 0xcc, 0x1e, 0xd5, 0xa8, 0x01, 0xbe, 0xbb, 0x1a, 0x11, 0x78, 0x78, 0xc0, 0x37, 0x47, 0x00, 0x3e, 0x14, 0x8e, 0xd9, 0x14, 0x34, 0x83, 0x2e, 0x89, 0x66, 0x24, 0x1a, 0x7f, 0xff, 0x22, 0xfe, 0x1d, 0x6d, 0x8c, 0x3c, 0x3d, 0xdd, 0x72, 0x15, 0xa1, 0xef, 0xaf, 0x4b, 0x07, 0xaf, 0xee, 0x1b, 0x25, 0x67, 0x3a, 0x14, 0x39, 0xea, 0xac, 0x32, 0x4e, 0x89, 0x5d, 0x4b, 0xe8, 0x39, 0xe9, 0x76, 0xc0, 0x3a, 0xc0, 0x01, 0x25, 0x48, 0x76, 0x88, 0x8c, 0xca, 0xaf, 0x39, 0x12, 0x72, 0x7a, 0x60, 0x10, 0x6a, 0x87, 0xbe, 0x69, 0x24, 0x7c, 0x9e, 0x43, 0x8c, 0x31, 0xfc, 0xa8, 0xd9, 0xc6, 0x1b, 0xae, 0x36, 0x8c, 0x83, 0xe4, 0x09, 0x01, 0xa9, 0x97, 0x00, 0xdf, 0xf8, 0x39, 0xb5, 0x13, 0xba, 0x8d, 0xc4, 0x2d, 0x93, 0xce, 0x09, 0x87, 0xa2, 0x33, 0x34, 0x70, 0xa9, 0xf9, 0x83, 0x31, 0x3f, 0x91, 0x98, 0x86, 0x59, 0xda, 0x54, 0x03, 0x9e, 0x49, 0x9c, 0xd1, 0xaf, 0x2b, 0x8f, 0xa0, 0xeb, 0xe7, 0x50, 0xe2, 0x4d, 0x55, 0xc2, 0xa5, 0xbd, 0x1a, 0xde, 0x3f, 0x68, 0x00, 0x92, 0x54, 0x2b, 0xd1, 0xbe, 0x0b, 0x97, 0x35, 0xba, 0x39, 0x3a, 0xd5, 0x69, 0x7d, 0x24, 0x1e, 0x8e, 0x8b, 0x28, 0x64, 0x6d, 0xb2, 0x7d, 0x2f, 0xb5, 0xa9, 0x40, 0xe8, 0xfa, 0xea, 0xf0, 0xb6, 0xc9, 0xef, 0xda, 0x88, 0x61, 0x5d, 0xec, 0x89, 0x1c, 0xe7, 0x32, 0x93, 0x08, 0x13, 0xbf, 0xbb, 0xd0, 0xbc, 0x5f, 0x82, 0x10, 0xab, 0xe8, 0x43, 0xbe, 0xb5, 0xe4, 0xf0, 0x28, 0xf4, 0x9b, 0xea, 0x34, 0xf1, 0xe5, 0xb0, 0x9e, 0xac, 0x4c, 0x66, 0x62, 0xc7, 0x4f, 0xba, 0x39, 0xde, 0x4a, 0x96, 0x02, 0xa9, 0x69, 0x4a, 0x85, 0xc7, 0xc1, 0x37, 0x5f, 0xda, 0xdf, 0xda, 0x6a, 0x19, 0x57, 0xfc, 0x5b, 0x59, 0x87, 0xa6, 0x87, 0xb0, 0x39, 0x95, 0xe5, 0x16, 0x97, 0xa1, 0xab, 0x5b, 0xb6, 0xcb, 0x11, 0xb6, 0x63, 0xc1, 0x37, 0x2f, 0xad, 0xe4, 0xc0, 0xac, 0xa8, 0xfb, 0xeb, 0xb4, 0xeb, 0x54, 0xce, 0x7c, 0xe3, 0x6c, 0x69, 0x04, 0xea, 0xf6, 0xea, 0xb2, 0xf3, 0x4f, 0xac, 0xd8, 0xc7, 0x68, 0xc8, 0xd3, 0x6d, 0xa2, 0x39, 0x7b, 0x1a, 0x02, 0x73, 0x5a, 0xea, 0x72, 0xcf, 0xaa, 0xd0, 0x39, 0x34, 0x10, 0xdb, 0x52, 0x7a, 0x8a, 0xb2, 0x36, 0xd4, 0xcd, 0xab, 0xdc, 0x88, 0x8f, 0xac, 0x6f, 0x18, 0x21, 0x48, 0xb1, 0x32, 0x61, 0x44, 0x25, 0xd3, 0x90, 0xff, 0x03, 0x6e, 0x54, 0x85, 0x5e, 0x42, 0x03, 0xc5, 0x12, 0x03, 0xc1, 0xf4, 0x3e, 0x37, 0xbb, 0xf6, 0xb9, 0xbf, 0x27, 0xf5, 0xb7, 0xe7, 0xc6, 0x65, 0x15, 0x14, 0x65, 0x40, 0x1a, 0xc3, 0x2c, 0xbe, 0x9e, 0x33, 0x50, 0x53, 0x5e, 0xdf, 0x48, 0xa7, 0xbc, 0x36, 0x03, 0xe2, 0x23, 0x2e, 0x93, 0x8f, 0x9a, 0x81, 0x5a, 0xc4, 0xd1, 0xde, 0xec, 0x99, 0x1e, 0xf9, 0x62, 0x09, 0x48, 0x44, 0x1f, 0x7a, 0x2f, 0x4a, 0x46, 0xe2, 0xc4, 0x00, 0xab, 0x91, 0x4c, 0x4b, 0xe5, 0x1d, 0xca, 0xad, 0x8e, 0xd8, 0x23, 0x9c, 0xbb, 0xe9, 0x77, 0xa9, 0xf0, 0x9c, 0x02, 0x69, 0x83, 0x19, 0xd9, 0xfe, 0x2a, 0x8c, 0x6e, 0xb6, 0x0b, 0x79, 0x9f, 0x29, 0xae, 0x76, 0x59, 0x97, 0x0d, 0x2e, 0xbd, 0xff, 0x3c, 0x6c, 0xf7, 0x09, 0xbb, 0xf6, 0xf4, 0xbb, 0x55, 0xb9, 0xdf, 0x4f, 0x61, 0xa2, 0x41, 0xde, 0xc1, 0x44, 0xb5, 0x99, 0x3f, 0x08, 0x7e, 0x78, 0x4b, 0x97, 0xbe, 0x1e, 0x53, 0x60, 0x8c, 0x2e, 0x81, 0x7c, 0xe3, 0xd9, 0xaa, 0xf9, 0x14, 0xe6, 0xb7, 0x23, 0xf5, 0xb4, 0xaf, 0xff, 0xd2, 0xa6, 0xb9, 0xfe, 0x9d, 0x2d, 0x73, 0x91, 0x5c, 0x7a, 0xd1, 0xff, 0xb1, 0x3e, 0xfc, 0xb7, 0x3c, 0x56, 0x23, 0x81, 0x95, 0x64, 0x52, 0x03, 0x98, 0x4c, 0x99, 0xaa, 0xfd, 0x02, 0x35, 0xf7, 0x3b, 0x3f, 0x88, 0x2e, 0x07, 0x39, 0x39, 0xbf, 0x78, 0x66, 0x57, 0x28, 0x01, 0x38, 0xdb, 0x05, 0xb8, 0x6f, 0xcc, 0x94, 0x60, 0xb3, 0x85, 0xef, 0x45, 0x59, 0x20, 0x4e, 0xcd, 0x81, 0xe2, 0xf1, 0x2f, 0x5f, 0x06, 0x2a, 0xa4, 0x48, 0xdc, 0xcc, 0x82, 0xea, 0x8d, 0x89, 0x46, 0x6d, 0xd1, 0xbe, 0x46, 0xf8, 0x2c, 0x4f, 0x87, 0xbf, 0x0d, 0xb2, 0xb8, 0x78, 0xac, 0xbb, 0x0d, 0x91, 0x12, 0xc8, 0xdb, 0x6f, 0x51, 0xd3, 0x5f, 0x6d, 0x42, 0xf7, 0x49, 0x85, 0x6b, 0x99, 0xe5, 0x50, 0xb6, 0xc4, 0x54, 0xe9, 0xe8, 0xbe, 0x4d, 0xa1, 0x75, 0xf0, 0xb5, 0xe8, 0x6b, 0xe6, 0x6c, 0x97, 0x9f, 0xd8, 0x78, 0x23, 0x7e, 0x57, 0xf6, 0x91, 0xf0, 0xd2, 0xac, 0xd0, 0x28, 0xfb, 0xff, 0xa5, 0xb0, 0x66, 0x87, 0x75, 0x03, 0x4d, 0xb1, 0xf2, 0x1d, 0xdb, 0xe7, 0x11, 0x4e, 0xe3, 0xdc, 0x0b, 0x44, 0xda, 0xca, 0x64, 0xc5, 0xa0, 0x3a, 0x2f, 0xee, 0xae, 0xab, 0xeb, 0x70, 0x63, 0xbf, 0xcc, 0xcc, 0x55, 0x9b, 0xaf, 0x27, 0xf1, 0xcc, 0xb2, 0x20, 0x2f, 0xa4, 0xd1, 0xb2, 0xbf, 0x44, 0xc0, 0x4b, 0x2c, 0x2f, 0x81, 0xf9, 0x4e, 0x28, 0x1b, 0x1a, 0x5a, 0xdc, 0x85, 0x0d, 0xa1, 0xb9, 0x47, 0x9f, 0xca, 0xbd, 0xda, 0xde, 0xa5, 0x6a, 0x11, 0x5b, 0xb5, 0xf0, 0x6c, 0xc0, 0x16, 0xf1, 0x41, 0xc0, 0xfc, 0xb5, 0xe8, 0x3a, 0xb2, 0x48, 0xea, 0xec, 0x90, 0x15, 0x8d, 0x8b, 0xe6, 0x47, 0xaf, 0xf1, 0x2e, 0x7e, 0xeb, 0x5e, 0x57, 0xdb, 0xcc, 0x29, 0x3c, 0xb3, 0xb6, 0xaa, 0xcb, 0x55, 0x23, 0x6d, 0x4a, 0x83, 0x9a, 0x06, 0x20, 0xf4, 0x76, 0x23, 0x87, 0xdd, 0x17, 0x14, 0xdf, 0x5c, 0x13, 0x5e, 0x3d, 0x9d, 0x68, 0x24, 0xf9, 0x3b, 0x7c, 0x90, 0xd3, 0xae, 0x38, 0xc5, 0x18, 0xd6, 0x07, 0x12, 0x0c, 0x83, 0x95, 0x70, 0x41, 0x3b, 0x46, 0xb8, 0xcc, 0xd7, 0x37, 0x04, 0x92, 0xd8, 0xae, 0x5c, 0x60, 0x9e, 0x00, 0xcf, 0x82, 0x51, 0xe2, 0xe7, 0xdf, 0x81, 0xe5, 0xb4, 0xf9, 0xc1, 0x6a, 0x5a, 0x53, 0x9f, 0x0a, 0xfc, 0xce, 0x41, 0xbb, 0x43, 0x62, 0xe5, 0xea, 0xa5, 0xf9, 0x40, 0xa1, 0x70, 0x6f, 0x4a, 0xfb, 0x6b, 0x14, 0x43, 0x2c, 0x81, 0xd4, 0xba, 0x1a, 0x33, 0xd3, 0x22, 0xdb, 0xf1, 0x06, 0x45, 0xab, 0x63, 0x73, 0x7e, 0xad, 0xc8, 0x6f, 0xe6, 0xe0, 0x97, 0x6f, 0x76, 0x33, 0x97, 0xfb, 0x89, 0x86, 0x37, 0x59, 0x5d, 0xfd, 0x36, 0x93, 0x47, 0x92, 0xd7, 0x79, 0xe2, 0x4c, 0x2a, 0x3f, 0x0b, 0xac, 0xf5, 0x3e, 0x04, 0x73, 0xc5, 0xfd, 0xa9, 0xc6, 0x12, 0x84, 0xe4, 0x41, 0x9b, 0xdc, 0x0e, 0xef, 0x5d, 0x22, 0xf4, 0xd9, 0xbf, 0x42, 0xe8, 0xc0, 0x49, 0x33, 0xbb, 0x93, 0xb5, 0x3c, 0x29, 0x5d, 0x7a, 0xc9, 0x39, 0x5a, 0xbb, 0x6d, 0xcb, 0xd7, 0x42, 0xb1, 0xe1, 0xbc, 0x3b, 0x0e, 0xa4, 0x43, 0x4e, 0xa2, 0x1b, 0x8e, 0xca, 0x9a, 0xe6, 0x82, 0xd3, 0x31, 0x5a, 0x41, 0xe9, 0xc3, 0xc3, 0x37, 0x18, 0x40, 0x76, 0x1d, 0xc5, 0x9c, 0xac, 0x45, 0xda, 0x7e, 0x38, 0x13, 0xe2, 0x87, 0x88, 0xdc, 0x89, 0xde, 0x35, 0x5b, 0x5a, 0xee, 0x08, 0x80, 0x90, 0xa3, 0x8d, 0xd3, 0x9d, 0x83, 0xe5, 0xe4, };
23459 static const u8 ed25519_1020_test_vectors_expected_sig[] = {
23460 	0x21, 0x70, 0x4d, 0x5e, 0x62, 0x6d, 0xcf, 0x6a, 0x9d, 0xcd, 0xef, 0x93, 0x54, 0x29, 0xeb, 0x7f, 0xb5, 0xb2, 0x57, 0xee, 0xcd, 0x7b, 0xf7, 0x4a, 0xcb, 0x0c, 0xd3, 0x0e, 0xcf, 0xcf, 0x60, 0x8d, 0x0c, 0x5b, 0x63, 0x3a, 0x4a, 0x8a, 0x9b, 0xa2, 0xcc, 0x82, 0xa2, 0x1e, 0x03, 0x35, 0x5e, 0x01, 0xd8, 0x5d, 0xae, 0x7e, 0xca, 0xc8, 0x89, 0x6d, 0xc1, 0x5d, 0xae, 0x04, 0x85, 0x70, 0x71, 0x04, };
23461 static const ec_test_case ed25519_1020_test_case = {
23462 	.name = "EDDSA25519-SHA512/wei25519 1020",
23463 	.ec_str_p = &wei25519_str_params,
23464 	.priv_key = ed25519_1020_test_vectors_priv_key,
23465 	.priv_key_len = sizeof(ed25519_1020_test_vectors_priv_key),
23466 	.nn_random = NULL,
23467 	.hash_type = SHA512,
23468 	.msg = (const char *)ed25519_1020_test_vectors_message,
23469 	.msglen = sizeof(ed25519_1020_test_vectors_message),
23470 	.sig_type = EDDSA25519,
23471 	.exp_sig = ed25519_1020_test_vectors_expected_sig,
23472 	.exp_siglen = sizeof(ed25519_1020_test_vectors_expected_sig),
23473 	.adata = NULL,
23474 	.adata_len = 0
23475 };
23476 
23477 /************************************************/
23478 static const u8 ed25519_1021_test_vectors_priv_key[] = {
23479 	0xd7, 0xfd, 0x73, 0xd1, 0xd2, 0x29, 0xa6, 0x58, 0x94, 0x42, 0x0e, 0x4b, 0xa7, 0x34, 0x27, 0x0d, 0x5a, 0x20, 0x75, 0x83, 0x64, 0xde, 0x89, 0x7d, 0x85, 0x55, 0xe2, 0x41, 0x97, 0x45, 0x3c, 0x19, };
23480 static const u8 ed25519_1021_test_vectors_message[] = {
23481 	0xc9, 0x22, 0x58, 0x59, 0xd5, 0x55, 0xbc, 0x42, 0x01, 0x1a, 0xf1, 0xb4, 0xf1, 0x49, 0x98, 0xe6, 0xe9, 0xb0, 0xa6, 0x5e, 0x21, 0x72, 0x71, 0x3e, 0x96, 0x83, 0x80, 0xfb, 0x6c, 0xee, 0xdd, 0xa2, 0x2e, 0x02, 0x2c, 0x51, 0x30, 0x30, 0x31, 0xd9, 0x93, 0x1c, 0xce, 0xf2, 0xf7, 0xbc, 0x70, 0x5c, 0x9e, 0x21, 0x5c, 0x1d, 0x08, 0x9d, 0x48, 0x8d, 0xad, 0xda, 0xee, 0x15, 0x5c, 0x93, 0x9b, 0x62, 0x02, 0xca, 0x53, 0xbf, 0xc7, 0xf6, 0xe8, 0x8e, 0x15, 0x29, 0xd8, 0x2f, 0xb4, 0x5e, 0x02, 0xb5, 0xd0, 0x5a, 0x82, 0xbb, 0xb9, 0xdb, 0x5f, 0x41, 0x5c, 0x58, 0xba, 0x8b, 0xd5, 0x6c, 0xff, 0xd9, 0x22, 0x70, 0xb2, 0x47, 0x49, 0xe5, 0x6d, 0x12, 0xc9, 0x9a, 0xe9, 0x0c, 0x78, 0x00, 0xf5, 0x4f, 0x55, 0x25, 0x4e, 0xa4, 0x2d, 0xa5, 0xdc, 0xfb, 0xe0, 0xe1, 0xd9, 0x89, 0xcd, 0x2f, 0x68, 0x97, 0xe2, 0x32, 0xdf, 0x04, 0x70, 0x7b, 0x34, 0xaf, 0x75, 0xfa, 0x7f, 0xec, 0x33, 0xe5, 0x5e, 0xd5, 0x6a, 0xee, 0x39, 0xc2, 0x2b, 0x04, 0x5b, 0xed, 0xd1, 0x61, 0x08, 0x3b, 0xc5, 0x51, 0x4c, 0x1f, 0x81, 0xca, 0x90, 0x7b, 0x7c, 0x76, 0x03, 0x17, 0xa7, 0xfd, 0x5a, 0x5a, 0x02, 0xa5, 0xd4, 0x0e, 0x2e, 0x82, 0x3e, 0x24, 0xad, 0x96, 0xae, 0xf6, 0xda, 0x8e, 0xa9, 0x82, 0xb5, 0x16, 0x1c, 0xc3, 0x9d, 0x84, 0xaa, 0x2f, 0xfd, 0x95, 0x44, 0xc1, 0x1b, 0x63, 0x40, 0x37, 0xab, 0x0a, 0x1c, 0x8e, 0x36, 0xac, 0x63, 0x01, 0x9d, 0xa1, 0xb2, 0xd9, 0x95, 0xcb, 0x7b, 0xd3, 0xd6, 0x2f, 0xe5, 0x74, 0xde, 0xab, 0xcc, 0xbd, 0x0d, 0x3a, 0xe7, 0xa5, 0x6e, 0x5b, 0xec, 0x91, 0xe4, 0xba, 0x3f, 0x3d, 0xb8, 0xbf, 0xea, 0x88, 0xe6, 0x7d, 0xa6, 0x2e, 0x88, 0x27, 0x8a, 0x6e, 0x3b, 0x41, 0x8d, 0xce, 0xea, 0x05, 0x89, 0xf2, 0x5f, 0x7d, 0xd8, 0xad, 0x19, 0xdd, 0x84, 0x50, 0x89, 0x41, 0x9b, 0x47, 0x2e, 0xfc, 0xcc, 0x87, 0x9c, 0x17, 0x2b, 0x32, 0xee, 0x4a, 0x4d, 0xbc, 0x2e, 0x6c, 0x2e, 0x86, 0x5b, 0xb3, 0xb8, 0xca, 0x0a, 0xdc, 0xb7, 0x1f, 0xdf, 0x89, 0xe1, 0x97, 0x39, 0x10, 0xef, 0x24, 0x29, 0x15, 0xf3, 0x3e, 0x23, 0x6d, 0x2f, 0x7c, 0x8e, 0x9f, 0x1e, 0xe5, 0xb0, 0x7c, 0x6e, 0x3c, 0x25, 0x36, 0x0f, 0x8c, 0xb1, 0x46, 0x0b, 0xe8, 0x7d, 0xb3, 0x1a, 0x29, 0x1d, 0x4d, 0xee, 0x34, 0x95, 0x3e, 0x75, 0xc6, 0x75, 0xbf, 0x18, 0x1b, 0xb7, 0xa0, 0xb7, 0xb5, 0xc1, 0xbe, 0xfd, 0xc8, 0x6a, 0xda, 0x07, 0x2a, 0x48, 0xf6, 0xac, 0x75, 0x5d, 0x49, 0x9b, 0xd6, 0x8d, 0x62, 0x5d, 0x85, 0x14, 0x52, 0x5c, 0xc3, 0xab, 0x8f, 0x54, 0xce, 0x15, 0xa8, 0x71, 0x29, 0x17, 0x78, 0xde, 0x13, 0x05, 0xd2, 0x21, 0x93, 0x61, 0xaa, 0x30, 0xe3, 0x32, 0xa2, 0xe0, 0x69, 0x07, 0x7c, 0x5c, 0x53, 0x45, 0x75, 0x20, 0x37, 0x9d, 0x8b, 0x90, 0xd2, 0x4b, 0xd8, 0xa3, 0xa7, 0x70, 0x0f, 0xf7, 0x66, 0x23, 0x1c, 0xb5, 0x69, 0x7f, 0x9a, 0xce, 0x52, 0x1a, 0x99, 0xe8, 0x96, 0xda, 0x54, 0xc4, 0x07, 0x93, 0xbc, 0x7c, 0x1f, 0xb1, 0x58, 0x4b, 0xb1, 0xc8, 0x61, 0x94, 0xd2, 0xfb, 0x7a, 0x4b, 0x80, 0x2f, 0x30, 0x88, 0x5e, 0x0e, 0xe8, 0xaf, 0x88, 0xd6, 0x88, 0x6e, 0x3a, 0x3a, 0x4d, 0x4c, 0x85, 0x46, 0x49, 0xcc, 0x01, 0xab, 0xdf, 0x35, 0x31, 0x9a, 0x08, 0x56, 0xcc, 0x65, 0xd0, 0x92, 0xa3, 0x86, 0xf8, 0x86, 0x96, 0x25, 0xcd, 0x0a, 0xca, 0xc0, 0x87, 0xe9, 0x35, 0x17, 0x90, 0xcc, 0xb4, 0xa8, 0x65, 0xf6, 0x51, 0xa8, 0x81, 0xc3, 0xeb, 0xf1, 0x09, 0x07, 0x27, 0x74, 0xf9, 0x40, 0xf5, 0xaa, 0x98, 0xa2, 0xa2, 0xaa, 0x3d, 0xd3, 0x66, 0x47, 0xd0, 0xde, 0x83, 0x00, 0x1a, 0xa7, 0xcd, 0xc0, 0x31, 0xcc, 0x4a, 0x4d, 0x75, 0xdc, 0x11, 0xce, 0x55, 0x16, 0x76, 0xa2, 0xad, 0x43, 0xa3, 0xf6, 0xa1, 0x6a, 0x4b, 0xc5, 0xae, 0xe8, 0x0e, 0x53, 0x64, 0x20, 0x60, 0x87, 0x36, 0x4e, 0xb8, 0xb2, 0xb1, 0x5f, 0xb7, 0x05, 0x38, 0x0a, 0x07, 0x2d, 0x7c, 0x8b, 0x51, 0x99, 0x59, 0x43, 0xaa, 0x76, 0x2e, 0x8d, 0xeb, 0x4c, 0x56, 0x8c, 0xda, 0xa1, 0x41, 0x1a, 0xb6, 0x8f, 0x28, 0x48, 0x9e, 0x13, 0x23, 0xbb, 0x61, 0x56, 0xce, 0x25, 0x00, 0xb0, 0x6e, 0x77, 0x93, 0xc5, 0x10, 0xa3, 0xde, 0x29, 0x15, 0x08, 0x40, 0xbf, 0xdb, 0x0b, 0x2b, 0x7b, 0x21, 0xc2, 0xbb, 0x8a, 0x77, 0x46, 0x16, 0x7c, 0x92, 0x9d, 0xd0, 0xad, 0xad, 0x44, 0xfe, 0xd8, 0xf3, 0x6e, 0x83, 0x81, 0xb3, 0x42, 0x08, 0x0b, 0x2a, 0x7d, 0x82, 0xa3, 0xf8, 0x1f, 0xf7, 0x26, 0x30, 0xcb, 0x78, 0xdf, 0x91, 0xf7, 0xb6, 0x5a, 0x44, 0xef, 0xf6, 0xed, 0x64, 0xd4, 0x8a, 0xfe, 0xd1, 0x09, 0xdd, 0x7a, 0x69, 0x3a, 0x1b, 0xa8, 0xc3, 0x7e, 0x00, 0x8f, 0xcb, 0x15, 0x7e, 0x37, 0x29, 0x7d, 0x32, 0xeb, 0xa7, 0x65, 0xa6, 0xc7, 0x19, 0x3e, 0x73, 0xbd, 0x97, 0x64, 0x79, 0x85, 0xb1, 0x60, 0x38, 0xc7, 0x4a, 0x08, 0x4a, 0x8f, 0x25, 0x65, 0x4c, 0xd8, 0xcd, 0x2c, 0xdd, 0x27, 0xff, 0x17, 0x33, 0x4e, 0x06, 0xad, 0xaa, 0x05, 0x82, 0x64, 0x01, 0x7a, 0x3b, 0x2d, 0xa7, 0x8e, 0x57, 0x38, 0xa2, 0x7e, 0x35, 0x0d, 0x88, 0x2f, 0x5f, 0xae, 0x19, 0x92, 0x78, 0xd4, 0xe5, 0x0b, 0x8b, 0xad, 0xf5, 0x7c, 0x21, 0x41, 0xdf, 0xdc, 0x3c, 0xff, 0x99, 0xdf, 0x5d, 0xe8, 0x6f, 0xec, 0x29, 0x3c, 0x76, 0xcb, 0x94, 0xb6, 0xb1, 0x9b, 0xa3, 0x03, 0x4e, 0x46, 0x0f, 0x84, 0xc2, 0x80, 0xa2, 0xe6, 0x41, 0x2f, 0xab, 0x56, 0x98, 0xce, 0x89, 0x02, 0x07, 0xca, 0xba, 0xbc, 0xa0, 0xa9, 0x5b, 0x5a, 0xd5, 0x33, 0xce, 0x11, 0x4b, 0xf7, 0x1a, 0x40, 0x4a, 0x87, 0x59, 0x0d, 0x35, 0xfa, 0x7c, 0xed, 0xba, 0x43, 0x13, 0x1c, 0x4e, 0xe9, 0x23, 0x44, 0x83, 0x9f, 0x25, 0xcb, 0xfa, 0xeb, 0x12, 0xae, 0xeb, 0xc8, 0x04, 0x08, 0x93, 0x95, 0x1a, 0x34, 0x6b, 0xd2, 0x8f, 0xdd, 0x16, 0x7b, 0xd2, 0x0f, 0x71, 0xa1, 0xe5, 0x9f, 0xb6, 0x0d, 0x55, 0xe1, 0xc5, 0x67, 0xf4, 0x78, 0xf0, 0x27, 0xcf, 0x67, 0x9a, 0x37, 0xd1, 0xd9, 0xdb, 0x86, 0x7e, 0x17, 0xbf, 0xdd, 0x60, 0xb3, 0x47, 0xd8, 0x9d, 0x32, 0x26, 0x39, 0xd3, 0x15, 0xbb, 0x7a, 0x2c, 0x91, 0x34, 0xf0, 0x0e, 0xa0, 0x3a, 0x36, 0x7f, 0x30, 0x5e, 0xa4, 0xd6, 0x0d, 0xc9, 0xd5, 0x67, 0xcf, 0x92, 0x48, 0x51, 0xe4, 0x69, 0xea, 0x95, 0x4e, 0xd3, 0xea, 0x63, 0xea, 0x86, 0x06, 0xf7, 0x9f, 0x07, 0x73, 0x39, 0xbf, 0xa2, 0xb5, 0x1a, 0xe4, 0x9b, 0xaa, 0x0f, 0xb2, 0x53, 0x77, 0x82, 0x1d, 0x7c, 0x11, 0xef, 0x9a, 0xd4, 0xbb, 0x4c, 0x0f, 0xe4, 0x89, 0xac, 0xba, 0xb0, 0xef, 0x00, 0x0d, 0x61, 0x8c, 0x7a, 0xf5, 0xef, 0xd2, 0x05, 0xd6, 0x85, 0x99, 0xfc, 0xbd, 0xd9, 0x5e, 0x28, 0xf8, 0x36, 0xe0, 0x91, 0x6f, 0x9f, 0xf5, 0x48, 0xd0, 0xba, 0x17, 0xda, 0x62, 0x53, 0x6e, 0x74, 0x64, 0x68, 0x01, 0xee, 0xb6, 0x12, 0x2b, 0xa3, 0x2c, 0x41, 0x07, 0x3a, 0xe0, 0x4e, 0x42, 0xc6, 0xc1, 0xd5, 0xd8, 0xd2, 0x29, 0x76, 0xa5, 0x62, 0x26, 0xdd, 0xf4, 0xb6, 0xac, 0x95, 0x45, 0x5f, 0xb5, 0x30, 0x99, 0xf2, 0x02, 0x15, 0xb2, 0xeb, 0xc9, 0x07, };
23482 static const u8 ed25519_1021_test_vectors_expected_sig[] = {
23483 	0x40, 0x0c, 0x35, 0x05, 0xf1, 0xdf, 0xa8, 0x0d, 0xf4, 0xb2, 0x6d, 0xb2, 0x4c, 0x02, 0x7e, 0xb8, 0x19, 0x77, 0xf0, 0xfb, 0x9b, 0x5a, 0xca, 0x52, 0x4a, 0xd5, 0x12, 0x00, 0xf4, 0xbf, 0xb1, 0x33, 0xdb, 0x83, 0x48, 0x23, 0x31, 0x41, 0x95, 0xf4, 0xed, 0xc2, 0x92, 0xd5, 0xf5, 0x30, 0xd0, 0x85, 0x56, 0xe7, 0x80, 0x9c, 0xaf, 0x23, 0x39, 0x76, 0x8a, 0xa3, 0x80, 0x29, 0xfd, 0xbc, 0x28, 0x0f, };
23484 static const ec_test_case ed25519_1021_test_case = {
23485 	.name = "EDDSA25519-SHA512/wei25519 1021",
23486 	.ec_str_p = &wei25519_str_params,
23487 	.priv_key = ed25519_1021_test_vectors_priv_key,
23488 	.priv_key_len = sizeof(ed25519_1021_test_vectors_priv_key),
23489 	.nn_random = NULL,
23490 	.hash_type = SHA512,
23491 	.msg = (const char *)ed25519_1021_test_vectors_message,
23492 	.msglen = sizeof(ed25519_1021_test_vectors_message),
23493 	.sig_type = EDDSA25519,
23494 	.exp_sig = ed25519_1021_test_vectors_expected_sig,
23495 	.exp_siglen = sizeof(ed25519_1021_test_vectors_expected_sig),
23496 	.adata = NULL,
23497 	.adata_len = 0
23498 };
23499 
23500 /************************************************/
23501 static const u8 ed25519_1022_test_vectors_priv_key[] = {
23502 	0xfd, 0xa7, 0xcb, 0x08, 0x40, 0x16, 0xba, 0x51, 0x3c, 0x7c, 0x4f, 0x8f, 0x71, 0x80, 0x48, 0x0b, 0xb1, 0x81, 0xe9, 0x56, 0x95, 0xea, 0x68, 0x73, 0x7f, 0xa3, 0x4a, 0x40, 0xec, 0xbd, 0xf3, 0xef, };
23503 static const u8 ed25519_1022_test_vectors_message[] = {
23504 	0xc2, 0x1b, 0xb3, 0xf8, 0xe3, 0x7b, 0xef, 0xa3, 0x67, 0xc9, 0x13, 0x67, 0x31, 0x01, 0xba, 0x30, 0xd3, 0xb5, 0xc7, 0x4b, 0xd8, 0xbd, 0xb0, 0x9c, 0xd2, 0x86, 0x40, 0x01, 0x2d, 0xb4, 0x11, 0x20, 0xc2, 0xbc, 0xc4, 0x08, 0x5d, 0xe2, 0xa0, 0xf9, 0x5c, 0x92, 0x15, 0xdd, 0xef, 0x8c, 0xb5, 0xfc, 0x8d, 0x8b, 0x12, 0x51, 0xb4, 0x15, 0x27, 0xc6, 0x7d, 0xfa, 0xa3, 0xf9, 0x5b, 0xa3, 0x57, 0x83, 0x91, 0xea, 0x5a, 0x66, 0x29, 0xa7, 0x33, 0x09, 0x5f, 0xd0, 0xa4, 0x3f, 0xdb, 0xa4, 0x0f, 0xfe, 0x26, 0x0f, 0xff, 0x82, 0xac, 0xee, 0x2e, 0xbe, 0x98, 0x0e, 0x9e, 0xce, 0xcc, 0xfe, 0x7e, 0x10, 0xb2, 0xed, 0x8c, 0x2e, 0x6b, 0x41, 0x0d, 0x54, 0x7a, 0x12, 0x86, 0x57, 0x1d, 0xf3, 0xd7, 0x01, 0x17, 0x4e, 0x57, 0x9f, 0xcf, 0x19, 0xd3, 0xbd, 0x80, 0x86, 0xc0, 0x42, 0x3f, 0x37, 0x11, 0x77, 0x89, 0xf3, 0x05, 0xd9, 0x67, 0x0a, 0xd2, 0x8c, 0x99, 0x67, 0x4f, 0x52, 0xcf, 0x64, 0x21, 0x1a, 0x08, 0x1d, 0x0c, 0x6c, 0x30, 0x96, 0xda, 0x2c, 0x71, 0xbf, 0x5f, 0x57, 0x99, 0xa7, 0x91, 0x0e, 0x6f, 0x38, 0x10, 0x4a, 0x37, 0xa6, 0x55, 0x7c, 0x2d, 0xae, 0xf3, 0x40, 0x81, 0x4a, 0x1f, 0x83, 0x0d, 0x59, 0x37, 0x73, 0xc6, 0xcf, 0x48, 0xd8, 0x3e, 0xa0, 0x72, 0x94, 0xb9, 0x4e, 0xb0, 0x80, 0xb8, 0x5d, 0x69, 0x70, 0xe2, 0x8f, 0x40, 0x51, 0xd5, 0x06, 0x6d, 0xb1, 0x0e, 0x96, 0x19, 0x73, 0xa6, 0x26, 0xa8, 0x26, 0xae, 0xaf, 0x8a, 0x06, 0xec, 0x0d, 0x56, 0x6b, 0x7e, 0x0c, 0x4e, 0xf6, 0x0f, 0x0c, 0x56, 0x78, 0xfc, 0xbb, 0x5b, 0x2a, 0xc6, 0x3f, 0x7b, 0xed, 0x06, 0x44, 0x8a, 0x24, 0x7b, 0x3d, 0x42, 0x7b, 0x87, 0x08, 0x6d, 0x33, 0x57, 0x3f, 0xb2, 0xd7, 0x22, 0x8c, 0x5c, 0x34, 0xea, 0x66, 0x40, 0xee, 0xfa, 0x95, 0x64, 0x48, 0x5a, 0x79, 0x63, 0x8e, 0x9c, 0x97, 0xc0, 0xaf, 0x84, 0xcf, 0xee, 0x7c, 0xe4, 0xa7, 0x39, 0x22, 0x0c, 0x84, 0x29, 0xe0, 0x67, 0x14, 0x39, 0x53, 0xd5, 0x50, 0x66, 0x8d, 0xad, 0xc8, 0x4e, 0x7b, 0xed, 0x9a, 0xb0, 0x70, 0xa5, 0x94, 0x33, 0x90, 0xc6, 0x11, 0xd7, 0x5b, 0x1c, 0xb1, 0x28, 0x73, 0xa3, 0x7d, 0x98, 0x50, 0x66, 0x1a, 0x00, 0x77, 0xbf, 0xa9, 0xca, 0x9b, 0x8b, 0x26, 0x37, 0x66, 0xc1, 0x49, 0xff, 0x0e, 0xe4, 0xb4, 0xad, 0xba, 0x25, 0xea, 0xf7, 0xd7, 0xf5, 0x01, 0xf3, 0x62, 0x45, 0x42, 0x56, 0xbc, 0x12, 0x69, 0x37, 0x8e, 0xf3, 0x35, 0x9a, 0x8e, 0xd6, 0xb9, 0x60, 0xb8, 0x66, 0x21, 0xfa, 0x3b, 0x61, 0x3e, 0xb1, 0x32, 0x12, 0x2f, 0x49, 0xf2, 0xeb, 0x2c, 0xeb, 0x68, 0x32, 0xa3, 0x99, 0x1e, 0x96, 0x1c, 0xb0, 0xe7, 0x8b, 0x74, 0x2e, 0xf4, 0xd6, 0x5e, 0x8d, 0xe3, 0x46, 0x96, 0x66, 0xfe, 0xc7, 0xc5, 0xb8, 0x74, 0x78, 0x95, 0x71, 0xc5, 0xc9, 0x9a, 0x2c, 0x02, 0xa0, 0x53, 0xff, 0x7d, 0x2f, 0xc9, 0x00, 0x76, 0xba, 0xfe, 0x1f, 0x26, 0x7f, 0xa8, 0x1a, 0x39, 0x90, 0xf2, 0x7f, 0xf1, 0x4f, 0x03, 0x00, 0x0a, 0xf0, 0x0c, 0x59, 0x28, 0x6c, 0xb9, 0xbb, 0x98, 0xe2, 0x04, 0xe9, 0x01, 0x90, 0xae, 0x2a, 0x50, 0xed, 0xef, 0x04, 0x9e, 0xa9, 0x2a, 0x1f, 0x78, 0x50, 0x88, 0xf9, 0x4a, 0xdf, 0x65, 0x88, 0xfb, 0x43, 0xbb, 0x40, 0xfb, 0xe2, 0x32, 0x42, 0x35, 0xcc, 0x7e, 0x16, 0x8b, 0x80, 0x26, 0x4b, 0x06, 0x9f, 0x94, 0x4f, 0x50, 0x36, 0x92, 0xc9, 0x49, 0x23, 0x4d, 0x5b, 0x76, 0xbc, 0xff, 0xab, 0xe2, 0x9f, 0xf9, 0x06, 0x4b, 0xd7, 0xcb, 0xed, 0x9e, 0x00, 0xe5, 0xb7, 0xfd, 0xda, 0x43, 0x12, 0xeb, 0x80, 0x14, 0x65, 0xf1, 0x27, 0xd0, 0xca, 0x68, 0x83, 0x2a, 0x7f, 0x4e, 0xd0, 0xea, 0xed, 0x8f, 0x55, 0x9c, 0x16, 0x31, 0xcd, 0x4d, 0x34, 0xf0, 0xdc, 0x41, 0x4d, 0x9f, 0xcf, 0xe8, 0x49, 0xa9, 0x1e, 0x25, 0xf3, 0xe0, 0xff, 0x01, 0x3a, 0x8c, 0xff, 0xa8, 0x06, 0xed, 0x8e, 0x93, 0xd0, 0x8a, 0x1e, 0x5a, 0x75, 0x76, 0x82, 0xca, 0x3d, 0x26, 0xab, 0xc8, 0x69, 0xc7, 0x6f, 0x1c, 0x79, 0x00, 0x7d, 0x55, 0x9d, 0xfe, 0x67, 0xe7, 0x8d, 0x8a, 0xf0, 0x19, 0x58, 0x08, 0xb0, 0xe7, 0x71, 0xc7, 0x1e, 0x64, 0xb5, 0x71, 0x6f, 0xb3, 0x63, 0x09, 0xc2, 0x50, 0x25, 0xfa, 0xe6, 0x41, 0x4c, 0x28, 0xbb, 0xdb, 0xd4, 0xde, 0x59, 0x7a, 0x74, 0x99, 0x6c, 0x9d, 0xa9, 0x74, 0x92, 0x0d, 0x59, 0xe6, 0xf4, 0xc2, 0xed, 0xfe, 0x11, 0x0f, 0xf8, 0x17, 0xfd, 0x48, 0x0a, 0x50, 0x80, 0x97, 0x80, 0x48, 0x86, 0x57, 0x12, 0x05, 0x8c, 0x5f, 0xe7, 0xb5, 0x60, 0xb1, 0x2b, 0x67, 0xf7, 0x37, 0xea, 0x6e, 0x2a, 0xf9, 0x24, 0x2c, 0xf0, 0x7a, 0xd0, 0xa8, 0xa6, 0x79, 0xf2, 0x64, 0x30, 0x04, 0x6a, 0xdc, 0x3e, 0x70, 0x66, 0x4c, 0xc9, 0xc0, 0xee, 0x5a, 0xbc, 0xef, 0x6d, 0x72, 0x6b, 0x4e, 0x04, 0x17, 0x60, 0x48, 0xb7, 0x95, 0xbe, 0x12, 0x85, 0x1b, 0xdb, 0x74, 0x00, 0x3a, 0x13, 0x20, 0x41, 0x19, 0xb8, 0x68, 0x64, 0xd6, 0x53, 0x5b, 0xa0, 0x95, 0x04, 0x0a, 0x85, 0xd9, 0x78, 0x1c, 0xf4, 0xf3, 0x48, 0x0a, 0x30, 0x4e, 0x22, 0x7f, 0x78, 0x7a, 0xd5, 0x38, 0xe6, 0x8f, 0x4b, 0xab, 0x01, 0x41, 0x79, 0xe3, 0x0d, 0x3f, 0xde, 0xf9, 0xef, 0xf1, 0x1b, 0xcf, 0x47, 0x1f, 0xa3, 0xa0, 0xbc, 0x74, 0xb5, 0x57, 0x6f, 0x30, 0x2d, 0x3a, 0x6b, 0x49, 0x9f, 0x11, 0xf2, 0xef, 0x32, 0x6a, 0xc0, 0x26, 0xc9, 0x8d, 0xb1, 0x0e, 0x27, 0x41, 0x41, 0x3f, 0x32, 0x22, 0x28, 0xb3, 0xcf, 0xf0, 0xf3, 0x37, 0xba, 0x2f, 0x29, 0x4c, 0x78, 0xef, 0x73, 0xf0, 0xe8, 0x77, 0x87, 0x8f, 0x8f, 0xc7, 0xff, 0x6d, 0x10, 0xbc, 0xe6, 0x6a, 0xd6, 0x28, 0x43, 0x79, 0xb8, 0x0c, 0xa8, 0x93, 0x27, 0xd4, 0xdb, 0x0b, 0xf1, 0x4e, 0x6d, 0x8f, 0x01, 0xb2, 0x2a, 0xb2, 0x02, 0xb7, 0x16, 0xcc, 0x07, 0xe3, 0xc8, 0x86, 0x6d, 0x16, 0x8a, 0x50, 0x94, 0xba, 0xc5, 0xa4, 0x95, 0xe7, 0x38, 0x68, 0xee, 0xdc, 0x27, 0x22, 0x2e, 0x64, 0x44, 0xf8, 0x3b, 0xcf, 0x65, 0xac, 0xdc, 0x3e, 0xc8, 0x91, 0x20, 0xbb, 0x50, 0xe8, 0xab, 0xfc, 0x28, 0xb7, 0x8e, 0x6d, 0x98, 0x0c, 0x77, 0x5f, 0x48, 0x49, 0xa0, 0xe8, 0xca, 0xda, 0x80, 0x24, 0x0b, 0xca, 0x24, 0x5e, 0x39, 0x96, 0x6e, 0x89, 0xa0, 0x34, 0x4d, 0xf8, 0x36, 0x3a, 0x7d, 0xcc, 0x81, 0xb2, 0x01, 0xce, 0x9c, 0x75, 0x3a, 0xd5, 0x44, 0xe1, 0x12, 0x4e, 0x21, 0x02, 0x0d, 0x4c, 0x62, 0xde, 0xda, 0x9e, 0xd9, 0xb9, 0xd1, 0xf2, 0xfb, 0x7c, 0x54, 0xca, 0x7a, 0xb0, 0x9f, 0x38, 0x3b, 0xef, 0x48, 0xcf, 0xc6, 0x84, 0x8c, 0x27, 0x13, 0x02, 0xa1, 0x0f, 0xa6, 0x87, 0xf5, 0x6e, 0x00, 0xe0, 0xa7, 0xd0, 0x93, 0xc9, 0x27, 0xb4, 0xfd, 0xd8, 0xf1, 0xbe, 0xdf, 0x62, 0x88, 0xa0, 0xe3, 0x02, 0x84, 0x8a, 0x80, 0x12, 0xf1, 0x27, 0xa7, 0x9d, 0x2d, 0x30, 0xa0, 0x6c, 0xe1, 0x7d, 0x94, 0xaa, 0x6f, 0x7f, 0x8a, 0x1e, 0x6e, 0xb9, 0xd0, 0x68, 0x1c, 0x37, 0x74, 0xf6, 0x14, 0xcc, 0x6d, 0xbc, 0xb2, 0xa8, 0x13, 0xf9, 0x25, 0xc6, 0x30, 0x6a, 0x63, 0x05, 0x72, 0xa8, 0x3e, 0xc1, 0x09, 0xd5, 0xf5, 0x33, 0xc0, 0x58, 0x4c, 0xb4, 0x21, 0xd9, 0x19, };
23505 static const u8 ed25519_1022_test_vectors_expected_sig[] = {
23506 	0x33, 0x61, 0x4b, 0x7a, 0x94, 0xf7, 0x5e, 0x03, 0x65, 0x34, 0xd7, 0x6e, 0x30, 0x14, 0x7e, 0xcc, 0xdd, 0x2a, 0x04, 0xe0, 0x0c, 0xd4, 0x70, 0x4a, 0xb6, 0xe8, 0x07, 0xd6, 0xa2, 0xac, 0xc1, 0xe1, 0xd9, 0x63, 0xb8, 0xee, 0xe0, 0x81, 0x0d, 0x41, 0x2d, 0x9d, 0x56, 0xe5, 0x45, 0x56, 0x30, 0x2b, 0x10, 0x73, 0x0c, 0x15, 0xab, 0xf8, 0x9c, 0x29, 0xa0, 0x27, 0x30, 0x3e, 0xa8, 0x8a, 0xe7, 0x01, };
23507 static const ec_test_case ed25519_1022_test_case = {
23508 	.name = "EDDSA25519-SHA512/wei25519 1022",
23509 	.ec_str_p = &wei25519_str_params,
23510 	.priv_key = ed25519_1022_test_vectors_priv_key,
23511 	.priv_key_len = sizeof(ed25519_1022_test_vectors_priv_key),
23512 	.nn_random = NULL,
23513 	.hash_type = SHA512,
23514 	.msg = (const char *)ed25519_1022_test_vectors_message,
23515 	.msglen = sizeof(ed25519_1022_test_vectors_message),
23516 	.sig_type = EDDSA25519,
23517 	.exp_sig = ed25519_1022_test_vectors_expected_sig,
23518 	.exp_siglen = sizeof(ed25519_1022_test_vectors_expected_sig),
23519 	.adata = NULL,
23520 	.adata_len = 0
23521 };
23522 
23523 /************************************************/
23524 static const u8 ed25519_1023_test_vectors_priv_key[] = {
23525 	0xa1, 0xac, 0x48, 0xaa, 0x5f, 0xfa, 0x3d, 0x80, 0x08, 0x19, 0xd0, 0x3b, 0x7f, 0x62, 0xba, 0xbf, 0x29, 0x1f, 0x20, 0x90, 0x4c, 0x11, 0xa6, 0x40, 0x0e, 0x4f, 0x45, 0x20, 0x5f, 0x10, 0x3e, 0x38, };
23526 static const u8 ed25519_1023_test_vectors_message[] = {
23527 	0xd6, 0xf1, 0x24, 0xed, 0x75, 0x20, 0x21, 0xc1, 0x09, 0x26, 0x97, 0x2a, 0x0c, 0x26, 0xf3, 0xb1, 0x83, 0x8b, 0x3c, 0x7a, 0xf2, 0x47, 0xc1, 0x80, 0x09, 0xa2, 0x31, 0xec, 0xce, 0x96, 0x4b, 0xf6, 0x69, 0x86, 0x37, 0x83, 0x3f, 0x60, 0x7d, 0xca, 0x83, 0x6f, 0x8a, 0x60, 0x6c, 0x72, 0xae, 0x3c, 0xb1, 0x70, 0x17, 0x44, 0x47, 0xa2, 0xcc, 0xe5, 0x83, 0xf6, 0xe2, 0x44, 0xdb, 0xc1, 0x63, 0xe2, 0x15, 0xb9, 0x82, 0x0d, 0xe7, 0x49, 0x6f, 0xfc, 0x5b, 0x70, 0x50, 0xc4, 0x8f, 0x28, 0x30, 0x24, 0x66, 0x78, 0xcb, 0xa4, 0xdc, 0x5c, 0xaa, 0x07, 0xc1, 0x45, 0x85, 0x63, 0xaa, 0x2d, 0x10, 0xdc, 0xb7, 0x77, 0x0e, 0xf8, 0xfe, 0xde, 0x02, 0x7d, 0xd7, 0xf2, 0x0d, 0xdc, 0x8c, 0xc7, 0x8c, 0x3a, 0x2e, 0x2e, 0x95, 0x8b, 0xd1, 0x8c, 0x00, 0x06, 0xcf, 0x8f, 0xb8, 0x2d, 0x44, 0xe5, 0x3e, 0x1d, 0xa7, 0xaa, 0x80, 0xfd, 0x10, 0x06, 0xf3, 0xb2, 0x30, 0x0c, 0x9b, 0x07, 0x9d, 0x8a, 0x66, 0xf1, 0xe4, 0xa3, 0xf4, 0x70, 0x61, 0xf9, 0xe2, 0xf4, 0x5d, 0xae, 0x35, 0xdc, 0x29, 0x52, 0x04, 0xb1, 0x94, 0x60, 0xca, 0x57, 0x07, 0xab, 0x57, 0xce, 0x21, 0x5a, 0x24, 0xc1, 0x0f, 0xaa, 0xb3, 0xfa, 0x20, 0xbc, 0xcd, 0x10, 0x1e, 0x7a, 0x7d, 0x70, 0x07, 0x75, 0x99, 0xf3, 0xd6, 0x72, 0x57, 0x07, 0x55, 0x21, 0x29, 0xca, 0xd7, 0x57, 0xd6, 0x51, 0x4c, 0x1b, 0x28, 0x99, 0x7e, 0x47, 0x1f, 0x94, 0xb0, 0xfd, 0xed, 0x8f, 0xbb, 0xd0, 0x65, 0xde, 0xad, 0x19, 0x6d, 0x2c, 0x07, 0xd3, 0xdf, 0xa7, 0xb9, 0xfb, 0x3b, 0xae, 0x76, 0x80, 0xf7, 0x66, 0x21, 0x20, 0x0d, 0x09, 0x9e, 0xeb, 0xeb, 0xbe, 0xa0, 0xe8, 0x95, 0x7d, 0xf5, 0xb5, 0xe2, 0x04, 0xca, 0x3e, 0x9e, 0x29, 0x52, 0xb8, 0xa3, 0x0f, 0x0a, 0x13, 0x1a, 0x68, 0x67, 0xb1, 0x38, 0x1e, 0x39, 0x4b, 0x1b, 0x44, 0x43, 0x10, 0xf0, 0x76, 0x32, 0x66, 0x56, 0xcf, 0x93, 0x41, 0x67, 0x80, 0x08, 0xe9, 0x52, 0x51, 0x47, 0xd8, 0xd6, 0x1c, 0xe9, 0x3d, 0x3b, 0xf5, 0x39, 0x00, 0xca, 0xb9, 0x12, 0x66, 0x37, 0x17, 0xe0, 0x98, 0x72, 0x93, 0x83, 0x3d, 0x19, 0x02, 0xd7, 0xfb, 0x04, 0x7b, 0x99, 0x7b, 0x86, 0x02, 0x6c, 0x46, 0x7d, 0x7b, 0xb1, 0x7c, 0xf4, 0x57, 0x96, 0x73, 0x8f, 0x7a, 0x77, 0x4a, 0xc1, 0x26, 0x76, 0x4e, 0xd4, 0xeb, 0x45, 0x12, 0x43, 0x09, 0xf4, 0x58, 0x62, 0x60, 0x17, 0x6b, 0xa4, 0x65, 0x91, 0x8d, 0x48, 0x33, 0x0a, 0x9c, 0xc1, 0x8c, 0x4e, 0xce, 0xa0, 0xdd, 0xaf, 0x38, 0x94, 0x6a, 0xcc, 0x0e, 0x36, 0x1d, 0xd4, 0x0a, 0x7e, 0x91, 0x33, 0xce, 0xb5, 0x0e, 0x1c, 0x31, 0x7e, 0xa4, 0x2b, 0xd0, 0x98, 0x0a, 0x72, 0xb8, 0xba, 0x3d, 0x8a, 0x6c, 0x76, 0x93, 0xdd, 0x56, 0x02, 0xf3, 0x74, 0xf2, 0x66, 0x4d, 0xf4, 0xba, 0x56, 0xdf, 0x01, 0xe8, 0x82, 0xfc, 0xa4, 0x2c, 0xb4, 0xdb, 0x62, 0x1f, 0x47, 0x6c, 0x76, 0xe1, 0xea, 0x9f, 0xd1, 0x05, 0x91, 0x1a, 0x74, 0xb7, 0x79, 0x52, 0xd9, 0x91, 0x4a, 0x5a, 0xc0, 0xf9, 0x8a, 0x90, 0x0c, 0x1b, 0x2e, 0x1a, 0x56, 0xc4, 0xea, 0x85, 0x18, 0xa9, 0xee, 0x47, 0xc4, 0xed, 0x14, 0xd0, 0xbd, 0x35, 0xec, 0xa5, 0x60, 0x31, 0x9c, 0x8e, 0xa2, 0x47, 0x55, 0xd7, 0x1a, 0x4e, 0x03, 0x08, 0x50, 0xbc, 0x4d, 0xc6, 0x03, 0x89, 0xf3, 0x25, 0x80, 0x40, 0x21, 0x20, 0x4c, 0xce, 0xbc, 0x25, 0xfe, 0xdb, 0xd3, 0x2e, 0xdd, 0x8d, 0x84, 0x46, 0xaa, 0x23, 0xce, 0x56, 0xa8, 0x5f, 0x77, 0x9e, 0x85, 0x8d, 0x36, 0xaf, 0x7c, 0x07, 0x3c, 0x11, 0x5e, 0x34, 0x1f, 0x41, 0x2c, 0x66, 0x0f, 0xab, 0x80, 0x0f, 0xe7, 0x4c, 0x50, 0xe7, 0x14, 0xee, 0x08, 0x6e, 0x2f, 0xbc, 0x8d, 0x7a, 0xbb, 0xf3, 0xe9, 0x8f, 0xb4, 0x0c, 0xa2, 0x7f, 0x1f, 0x01, 0xa9, 0xaa, 0xdd, 0x8c, 0xc2, 0x27, 0x5c, 0x2d, 0xd3, 0xf7, 0x6e, 0x4c, 0x1d, 0x81, 0xc4, 0xb7, 0x92, 0xda, 0xec, 0xc9, 0xfe, 0x66, 0x04, 0x49, 0x41, 0xb8, 0xb2, 0x91, 0x84, 0x86, 0xdd, 0x4a, 0xcb, 0x56, 0x2a, 0x7b, 0x58, 0xad, 0x8c, 0x60, 0xc2, 0x1b, 0x83, 0xcf, 0x48, 0xae, 0xfa, 0x72, 0x56, 0xa1, 0xed, 0x80, 0x9e, 0x66, 0x98, 0x11, 0xf4, 0x84, 0x36, 0x49, 0x70, 0xbc, 0x56, 0x95, 0x08, 0x99, 0x19, 0xbc, 0x32, 0xd2, 0x8e, 0xa7, 0x52, 0xe8, 0xe3, 0x18, 0xce, 0xff, 0x46, 0x7f, 0x77, 0xae, 0x19, 0x77, 0xc5, 0xff, 0xd7, 0x9c, 0x17, 0xc2, 0xda, 0x8b, 0xc7, 0xf8, 0x23, 0xdd, 0x94, 0x39, 0x86, 0x83, 0x18, 0x99, 0x45, 0xf8, 0xb7, 0x92, 0x38, 0xa4, 0xe8, 0x15, 0xb1, 0x42, 0xb8, 0x66, 0xac, 0xbd, 0xbc, 0xb7, 0xae, 0xa7, 0xf1, 0x43, 0xff, 0xfb, 0x7c, 0xc2, 0xb4, 0xb5, 0x4b, 0xbf, 0x36, 0x1a, 0xfd, 0xa9, 0x13, 0xad, 0x6d, 0xf1, 0xe4, 0x9d, 0xfd, 0x6b, 0x53, 0x26, 0x42, 0xe6, 0x3f, 0x55, 0xd8, 0x93, 0xa4, 0x70, 0xd4, 0x03, 0x70, 0x66, 0x5c, 0xfb, 0x74, 0xef, 0xd3, 0xf5, 0x9c, 0xb0, 0xff, 0x60, 0x06, 0x17, 0x4c, 0xa3, 0x5f, 0x53, 0xb9, 0x7c, 0x54, 0x3e, 0x08, 0xaf, 0x4b, 0xf5, 0xbb, 0x75, 0xff, 0x90, 0x31, 0x61, 0x06, 0x52, 0xa3, 0xf6, 0xf2, 0xa0, 0xcf, 0xe9, 0x7e, 0x7a, 0x52, 0x1f, 0x3d, 0x2a, 0x28, 0x91, 0x14, 0xde, 0xd3, 0x47, 0x72, 0xb0, 0xe4, 0x98, 0x17, 0xbd, 0xe1, 0xcb, 0x92, 0x4f, 0xf5, 0x14, 0xe2, 0x86, 0x6a, 0x09, 0xe3, 0xed, 0xe0, 0x78, 0x2d, 0x2c, 0x0c, 0x98, 0xe6, 0x81, 0x4b, 0x8c, 0x1e, 0x77, 0x8c, 0xf8, 0x30, 0x63, 0x48, 0xc9, 0x33, 0xad, 0xb2, 0xe4, 0x72, 0xdb, 0xa0, 0x9d, 0xb9, 0x54, 0xff, 0x49, 0x64, 0x83, 0x73, 0x39, 0x5a, 0x2f, 0x01, 0x81, 0x95, 0x8f, 0xeb, 0x1e, 0xa2, 0x83, 0x4c, 0x99, 0x53, 0x28, 0x73, 0xdb, 0x5c, 0x88, 0xeb, 0x52, 0x89, 0xc7, 0x7e, 0x90, 0x01, 0x52, 0x03, 0xef, 0x50, 0x2a, 0xc8, 0xe1, 0xc4, 0x8f, 0xa1, 0xa0, 0x6d, 0xaf, 0xa6, 0x51, 0x9d, 0x52, 0xda, 0xe3, 0xc5, 0x56, 0x75, 0x70, 0xdd, 0x24, 0x34, 0xe6, 0x71, 0x92, 0x7c, 0x66, 0x36, 0x3f, 0x78, 0x31, 0x56, 0x89, 0x3f, 0x13, 0x8a, 0x84, 0xc7, 0x56, 0x64, 0xb3, 0x0a, 0xe4, 0x27, 0x51, 0x12, 0x73, 0x6d, 0x53, 0xd4, 0xf3, 0x99, 0xdd, 0xda, 0x3d, 0x23, 0x06, 0x7c, 0x07, 0x3f, 0x52, 0x1a, 0xfb, 0xa1, 0xf7, 0xbe, 0x58, 0x55, 0x13, 0xc2, 0xce, 0xc9, 0xc8, 0xf0, 0x8d, 0x2a, 0x22, 0xc3, 0xc8, 0x53, 0x92, 0xcd, 0x2a, 0xe5, 0x0f, 0x39, 0x28, 0x25, 0x1f, 0x86, 0xb3, 0x10, 0xc6, 0x9a, 0x0f, 0x8c, 0x4e, 0x85, 0x3a, 0xb3, 0xf3, 0xe8, 0x12, 0x9b, 0x05, 0x66, 0xef, 0x4b, 0xbb, 0xe8, 0x0b, 0x8c, 0x02, 0xc8, 0x92, 0x8a, 0x4d, 0xe5, 0x6c, 0x0d, 0x11, 0x9a, 0x45, 0xbb, 0xf5, 0xaf, 0x18, 0x08, 0xd4, 0x88, 0x85, 0x2d, 0x8a, 0x45, 0xbe, 0xb0, 0xd6, 0x83, 0x24, 0x8a, 0x4d, 0x65, 0xde, 0x15, 0x26, 0xb3, 0xd1, 0xd2, 0xff, 0xc1, 0xf2, 0x22, 0x15, 0xb6, 0x08, 0x46, 0x8c, 0xbc, 0x3b, 0xd3, 0x95, 0x14, 0xb3, 0x97, 0xfc, 0x0d, 0xb0, 0xf1, 0x13, 0xdb, 0xe6, 0xfc, 0xe4, 0x65, 0x2e, 0x82, 0xff, 0x89, 0x5b, 0x2b, 0x43, 0x87, 0xe0, 0x41, 0xd7, 0xe4, 0xe7, 0xbd, 0xe4, 0x69, 0x47, 0x69, 0x66, 0x5e, 0x81, };
23528 static const u8 ed25519_1023_test_vectors_expected_sig[] = {
23529 	0xc5, 0x7e, 0x3c, 0x09, 0x1e, 0xd2, 0x4e, 0x5e, 0x84, 0x66, 0x5b, 0xd9, 0xbb, 0x10, 0x2d, 0xb4, 0x97, 0x97, 0xdf, 0x90, 0x08, 0xf0, 0x55, 0x57, 0xfa, 0x0d, 0x5a, 0xd7, 0xa2, 0x95, 0xe5, 0xe4, 0xd2, 0xa4, 0x71, 0x6b, 0x17, 0xf8, 0xc9, 0x1c, 0xb1, 0x2f, 0x5a, 0xbf, 0xb1, 0xaf, 0x02, 0x7f, 0xb0, 0x41, 0x11, 0x99, 0xac, 0xc5, 0xd2, 0x85, 0xd8, 0x42, 0xa4, 0xb6, 0x5b, 0xde, 0x49, 0x02, };
23530 static const ec_test_case ed25519_1023_test_case = {
23531 	.name = "EDDSA25519-SHA512/wei25519 1023",
23532 	.ec_str_p = &wei25519_str_params,
23533 	.priv_key = ed25519_1023_test_vectors_priv_key,
23534 	.priv_key_len = sizeof(ed25519_1023_test_vectors_priv_key),
23535 	.nn_random = NULL,
23536 	.hash_type = SHA512,
23537 	.msg = (const char *)ed25519_1023_test_vectors_message,
23538 	.msglen = sizeof(ed25519_1023_test_vectors_message),
23539 	.sig_type = EDDSA25519,
23540 	.exp_sig = ed25519_1023_test_vectors_expected_sig,
23541 	.exp_siglen = sizeof(ed25519_1023_test_vectors_expected_sig),
23542 	.adata = NULL,
23543 	.adata_len = 0
23544 };
23545 
23546 /************************************************/
23547 static const u8 ed25519_1024_test_vectors_priv_key[] = {
23548 	0xf5, 0xe5, 0x76, 0x7c, 0xf1, 0x53, 0x31, 0x95, 0x17, 0x63, 0x0f, 0x22, 0x68, 0x76, 0xb8, 0x6c, 0x81, 0x60, 0xcc, 0x58, 0x3b, 0xc0, 0x13, 0x74, 0x4c, 0x6b, 0xf2, 0x55, 0xf5, 0xcc, 0x0e, 0xe5, };
23549 static const u8 ed25519_1024_test_vectors_message[] = {
23550 	0x08, 0xb8, 0xb2, 0xb7, 0x33, 0x42, 0x42, 0x43, 0x76, 0x0f, 0xe4, 0x26, 0xa4, 0xb5, 0x49, 0x08, 0x63, 0x21, 0x10, 0xa6, 0x6c, 0x2f, 0x65, 0x91, 0xea, 0xbd, 0x33, 0x45, 0xe3, 0xe4, 0xeb, 0x98, 0xfa, 0x6e, 0x26, 0x4b, 0xf0, 0x9e, 0xfe, 0x12, 0xee, 0x50, 0xf8, 0xf5, 0x4e, 0x9f, 0x77, 0xb1, 0xe3, 0x55, 0xf6, 0xc5, 0x05, 0x44, 0xe2, 0x3f, 0xb1, 0x43, 0x3d, 0xdf, 0x73, 0xbe, 0x84, 0xd8, 0x79, 0xde, 0x7c, 0x00, 0x46, 0xdc, 0x49, 0x96, 0xd9, 0xe7, 0x73, 0xf4, 0xbc, 0x9e, 0xfe, 0x57, 0x38, 0x82, 0x9a, 0xdb, 0x26, 0xc8, 0x1b, 0x37, 0xc9, 0x3a, 0x1b, 0x27, 0x0b, 0x20, 0x32, 0x9d, 0x65, 0x86, 0x75, 0xfc, 0x6e, 0xa5, 0x34, 0xe0, 0x81, 0x0a, 0x44, 0x32, 0x82, 0x6b, 0xf5, 0x8c, 0x94, 0x1e, 0xfb, 0x65, 0xd5, 0x7a, 0x33, 0x8b, 0xbd, 0x2e, 0x26, 0x64, 0x0f, 0x89, 0xff, 0xbc, 0x1a, 0x85, 0x8e, 0xfc, 0xb8, 0x55, 0x0e, 0xe3, 0xa5, 0xe1, 0x99, 0x8b, 0xd1, 0x77, 0xe9, 0x3a, 0x73, 0x63, 0xc3, 0x44, 0xfe, 0x6b, 0x19, 0x9e, 0xe5, 0xd0, 0x2e, 0x82, 0xd5, 0x22, 0xc4, 0xfe, 0xba, 0x15, 0x45, 0x2f, 0x80, 0x28, 0x8a, 0x82, 0x1a, 0x57, 0x91, 0x16, 0xec, 0x6d, 0xad, 0x2b, 0x3b, 0x31, 0x0d, 0xa9, 0x03, 0x40, 0x1a, 0xa6, 0x21, 0x00, 0xab, 0x5d, 0x1a, 0x36, 0x55, 0x3e, 0x06, 0x20, 0x3b, 0x33, 0x89, 0x0c, 0xc9, 0xb8, 0x32, 0xf7, 0x9e, 0xf8, 0x05, 0x60, 0xcc, 0xb9, 0xa3, 0x9c, 0xe7, 0x67, 0x96, 0x7e, 0xd6, 0x28, 0xc6, 0xad, 0x57, 0x3c, 0xb1, 0x16, 0xdb, 0xef, 0xef, 0xd7, 0x54, 0x99, 0xda, 0x96, 0xbd, 0x68, 0xa8, 0xa9, 0x7b, 0x92, 0x8a, 0x8b, 0xbc, 0x10, 0x3b, 0x66, 0x21, 0xfc, 0xde, 0x2b, 0xec, 0xa1, 0x23, 0x1d, 0x20, 0x6b, 0xe6, 0xcd, 0x9e, 0xc7, 0xaf, 0xf6, 0xf6, 0xc9, 0x4f, 0xcd, 0x72, 0x04, 0xed, 0x34, 0x55, 0xc6, 0x8c, 0x83, 0xf4, 0xa4, 0x1d, 0xa4, 0xaf, 0x2b, 0x74, 0xef, 0x5c, 0x53, 0xf1, 0xd8, 0xac, 0x70, 0xbd, 0xcb, 0x7e, 0xd1, 0x85, 0xce, 0x81, 0xbd, 0x84, 0x35, 0x9d, 0x44, 0x25, 0x4d, 0x95, 0x62, 0x9e, 0x98, 0x55, 0xa9, 0x4a, 0x7c, 0x19, 0x58, 0xd1, 0xf8, 0xad, 0xa5, 0xd0, 0x53, 0x2e, 0xd8, 0xa5, 0xaa, 0x3f, 0xb2, 0xd1, 0x7b, 0xa7, 0x0e, 0xb6, 0x24, 0x8e, 0x59, 0x4e, 0x1a, 0x22, 0x97, 0xac, 0xbb, 0xb3, 0x9d, 0x50, 0x2f, 0x1a, 0x8c, 0x6e, 0xb6, 0xf1, 0xce, 0x22, 0xb3, 0xde, 0x1a, 0x1f, 0x40, 0xcc, 0x24, 0x55, 0x41, 0x19, 0xa8, 0x31, 0xa9, 0xaa, 0xd6, 0x07, 0x9c, 0xad, 0x88, 0x42, 0x5d, 0xe6, 0xbd, 0xe1, 0xa9, 0x18, 0x7e, 0xbb, 0x60, 0x92, 0xcf, 0x67, 0xbf, 0x2b, 0x13, 0xfd, 0x65, 0xf2, 0x70, 0x88, 0xd7, 0x8b, 0x7e, 0x88, 0x3c, 0x87, 0x59, 0xd2, 0xc4, 0xf5, 0xc6, 0x5a, 0xdb, 0x75, 0x53, 0x87, 0x8a, 0xd5, 0x75, 0xf9, 0xfa, 0xd8, 0x78, 0xe8, 0x0a, 0x0c, 0x9b, 0xa6, 0x3b, 0xcb, 0xcc, 0x27, 0x32, 0xe6, 0x94, 0x85, 0xbb, 0xc9, 0xc9, 0x0b, 0xfb, 0xd6, 0x24, 0x81, 0xd9, 0x08, 0x9b, 0xec, 0xcf, 0x80, 0xcf, 0xe2, 0xdf, 0x16, 0xa2, 0xcf, 0x65, 0xbd, 0x92, 0xdd, 0x59, 0x7b, 0x07, 0x07, 0xe0, 0x91, 0x7a, 0xf4, 0x8b, 0xbb, 0x75, 0xfe, 0xd4, 0x13, 0xd2, 0x38, 0xf5, 0x55, 0x5a, 0x7a, 0x56, 0x9d, 0x80, 0xc3, 0x41, 0x4a, 0x8d, 0x08, 0x59, 0xdc, 0x65, 0xa4, 0x61, 0x28, 0xba, 0xb2, 0x7a, 0xf8, 0x7a, 0x71, 0x31, 0x4f, 0x31, 0x8c, 0x78, 0x2b, 0x23, 0xeb, 0xfe, 0x80, 0x8b, 0x82, 0xb0, 0xce, 0x26, 0x40, 0x1d, 0x2e, 0x22, 0xf0, 0x4d, 0x83, 0xd1, 0x25, 0x5d, 0xc5, 0x1a, 0xdd, 0xd3, 0xb7, 0x5a, 0x2b, 0x1a, 0xe0, 0x78, 0x45, 0x04, 0xdf, 0x54, 0x3a, 0xf8, 0x96, 0x9b, 0xe3, 0xea, 0x70, 0x82, 0xff, 0x7f, 0xc9, 0x88, 0x8c, 0x14, 0x4d, 0xa2, 0xaf, 0x58, 0x42, 0x9e, 0xc9, 0x60, 0x31, 0xdb, 0xca, 0xd3, 0xda, 0xd9, 0xaf, 0x0d, 0xcb, 0xaa, 0xaf, 0x26, 0x8c, 0xb8, 0xfc, 0xff, 0xea, 0xd9, 0x4f, 0x3c, 0x7c, 0xa4, 0x95, 0xe0, 0x56, 0xa9, 0xb4, 0x7a, 0xcd, 0xb7, 0x51, 0xfb, 0x73, 0xe6, 0x66, 0xc6, 0xc6, 0x55, 0xad, 0xe8, 0x29, 0x72, 0x97, 0xd0, 0x7a, 0xd1, 0xba, 0x5e, 0x43, 0xf1, 0xbc, 0xa3, 0x23, 0x01, 0x65, 0x13, 0x39, 0xe2, 0x29, 0x04, 0xcc, 0x8c, 0x42, 0xf5, 0x8c, 0x30, 0xc0, 0x4a, 0xaf, 0xdb, 0x03, 0x8d, 0xda, 0x08, 0x47, 0xdd, 0x98, 0x8d, 0xcd, 0xa6, 0xf3, 0xbf, 0xd1, 0x5c, 0x4b, 0x4c, 0x45, 0x25, 0x00, 0x4a, 0xa0, 0x6e, 0xef, 0xf8, 0xca, 0x61, 0x78, 0x3a, 0xac, 0xec, 0x57, 0xfb, 0x3d, 0x1f, 0x92, 0xb0, 0xfe, 0x2f, 0xd1, 0xa8, 0x5f, 0x67, 0x24, 0x51, 0x7b, 0x65, 0xe6, 0x14, 0xad, 0x68, 0x08, 0xd6, 0xf6, 0xee, 0x34, 0xdf, 0xf7, 0x31, 0x0f, 0xdc, 0x82, 0xae, 0xbf, 0xd9, 0x04, 0xb0, 0x1e, 0x1d, 0xc5, 0x4b, 0x29, 0x27, 0x09, 0x4b, 0x2d, 0xb6, 0x8d, 0x6f, 0x90, 0x3b, 0x68, 0x40, 0x1a, 0xde, 0xbf, 0x5a, 0x7e, 0x08, 0xd7, 0x8f, 0xf4, 0xef, 0x5d, 0x63, 0x65, 0x3a, 0x65, 0x04, 0x0c, 0xf9, 0xbf, 0xd4, 0xac, 0xa7, 0x98, 0x4a, 0x74, 0xd3, 0x71, 0x45, 0x98, 0x67, 0x80, 0xfc, 0x0b, 0x16, 0xac, 0x45, 0x16, 0x49, 0xde, 0x61, 0x88, 0xa7, 0xdb, 0xdf, 0x19, 0x1f, 0x64, 0xb5, 0xfc, 0x5e, 0x2a, 0xb4, 0x7b, 0x57, 0xf7, 0xf7, 0x27, 0x6c, 0xd4, 0x19, 0xc1, 0x7a, 0x3c, 0xa8, 0xe1, 0xb9, 0x39, 0xae, 0x49, 0xe4, 0x88, 0xac, 0xba, 0x6b, 0x96, 0x56, 0x10, 0xb5, 0x48, 0x01, 0x09, 0xc8, 0xb1, 0x7b, 0x80, 0xe1, 0xb7, 0xb7, 0x50, 0xdf, 0xc7, 0x59, 0x8d, 0x5d, 0x50, 0x11, 0xfd, 0x2d, 0xcc, 0x56, 0x00, 0xa3, 0x2e, 0xf5, 0xb5, 0x2a, 0x1e, 0xcc, 0x82, 0x0e, 0x30, 0x8a, 0xa3, 0x42, 0x72, 0x1a, 0xac, 0x09, 0x43, 0xbf, 0x66, 0x86, 0xb6, 0x4b, 0x25, 0x79, 0x37, 0x65, 0x04, 0xcc, 0xc4, 0x93, 0xd9, 0x7e, 0x6a, 0xed, 0x3f, 0xb0, 0xf9, 0xcd, 0x71, 0xa4, 0x3d, 0xd4, 0x97, 0xf0, 0x1f, 0x17, 0xc0, 0xe2, 0xcb, 0x37, 0x97, 0xaa, 0x2a, 0x2f, 0x25, 0x66, 0x56, 0x16, 0x8e, 0x6c, 0x49, 0x6a, 0xfc, 0x5f, 0xb9, 0x32, 0x46, 0xf6, 0xb1, 0x11, 0x63, 0x98, 0xa3, 0x46, 0xf1, 0xa6, 0x41, 0xf3, 0xb0, 0x41, 0xe9, 0x89, 0xf7, 0x91, 0x4f, 0x90, 0xcc, 0x2c, 0x7f, 0xff, 0x35, 0x78, 0x76, 0xe5, 0x06, 0xb5, 0x0d, 0x33, 0x4b, 0xa7, 0x7c, 0x22, 0x5b, 0xc3, 0x07, 0xba, 0x53, 0x71, 0x52, 0xf3, 0xf1, 0x61, 0x0e, 0x4e, 0xaf, 0xe5, 0x95, 0xf6, 0xd9, 0xd9, 0x0d, 0x11, 0xfa, 0xa9, 0x33, 0xa1, 0x5e, 0xf1, 0x36, 0x95, 0x46, 0x86, 0x8a, 0x7f, 0x3a, 0x45, 0xa9, 0x67, 0x68, 0xd4, 0x0f, 0xd9, 0xd0, 0x34, 0x12, 0xc0, 0x91, 0xc6, 0x31, 0x5c, 0xf4, 0xfd, 0xe7, 0xcb, 0x68, 0x60, 0x69, 0x37, 0x38, 0x0d, 0xb2, 0xea, 0xaa, 0x70, 0x7b, 0x4c, 0x41, 0x85, 0xc3, 0x2e, 0xdd, 0xcd, 0xd3, 0x06, 0x70, 0x5e, 0x4d, 0xc1, 0xff, 0xc8, 0x72, 0xee, 0xee, 0x47, 0x5a, 0x64, 0xdf, 0xac, 0x86, 0xab, 0xa4, 0x1c, 0x06, 0x18, 0x98, 0x3f, 0x87, 0x41, 0xc5, 0xef, 0x68, 0xd3, 0xa1, 0x01, 0xe8, 0xa3, 0xb8, 0xca, 0xc6, 0x0c, 0x90, 0x5c, 0x15, 0xfc, 0x91, 0x08, 0x40, 0xb9, 0x4c, 0x00, 0xa0, 0xb9, 0xd0, };
23551 static const u8 ed25519_1024_test_vectors_expected_sig[] = {
23552 	0x0a, 0xab, 0x4c, 0x90, 0x05, 0x01, 0xb3, 0xe2, 0x4d, 0x7c, 0xdf, 0x46, 0x63, 0x32, 0x6a, 0x3a, 0x87, 0xdf, 0x5e, 0x48, 0x43, 0xb2, 0xcb, 0xdb, 0x67, 0xcb, 0xf6, 0xe4, 0x60, 0xfe, 0xc3, 0x50, 0xaa, 0x53, 0x71, 0xb1, 0x50, 0x8f, 0x9f, 0x45, 0x28, 0xec, 0xea, 0x23, 0xc4, 0x36, 0xd9, 0x4b, 0x5e, 0x8f, 0xcd, 0x4f, 0x68, 0x1e, 0x30, 0xa6, 0xac, 0x00, 0xa9, 0x70, 0x4a, 0x18, 0x8a, 0x03, };
23553 static const ec_test_case ed25519_1024_test_case = {
23554 	.name = "EDDSA25519-SHA512/wei25519 1024",
23555 	.ec_str_p = &wei25519_str_params,
23556 	.priv_key = ed25519_1024_test_vectors_priv_key,
23557 	.priv_key_len = sizeof(ed25519_1024_test_vectors_priv_key),
23558 	.nn_random = NULL,
23559 	.hash_type = SHA512,
23560 	.msg = (const char *)ed25519_1024_test_vectors_message,
23561 	.msglen = sizeof(ed25519_1024_test_vectors_message),
23562 	.sig_type = EDDSA25519,
23563 	.exp_sig = ed25519_1024_test_vectors_expected_sig,
23564 	.exp_siglen = sizeof(ed25519_1024_test_vectors_expected_sig),
23565 	.adata = NULL,
23566 	.adata_len = 0
23567 };
23568 #endif
23569 
23570 /************************************************/
23571 #ifndef ADDITIONAL_EDDSA25519_TEST_VECTORS
23572 #define EDDSA25519_SHA512_WEI25519_ALL_TESTS() \
23573 	&ed25519_1_test_case,\
23574 	&ed25519_2_test_case,\
23575 	&ed25519_3_test_case,\
23576 	&ed25519_4_test_case,\
23577 	&ed25519_5_test_case,\
23578 	&ed25519_6_test_case,\
23579 	&ed25519_7_test_case,\
23580 	&ed25519_8_test_case,\
23581 	&ed25519_9_test_case,\
23582 	&ed25519_10_test_case,
23583 #else
23584 #define EDDSA25519_SHA512_WEI25519_ALL_TESTS() \
23585 	&ed25519_1_test_case,\
23586 	&ed25519_2_test_case,\
23587 	&ed25519_3_test_case,\
23588 	&ed25519_4_test_case,\
23589 	&ed25519_5_test_case,\
23590 	&ed25519_6_test_case,\
23591 	&ed25519_7_test_case,\
23592 	&ed25519_8_test_case,\
23593 	&ed25519_9_test_case,\
23594 	&ed25519_10_test_case,\
23595 	&ed25519_11_test_case,\
23596 	&ed25519_12_test_case,\
23597 	&ed25519_13_test_case,\
23598 	&ed25519_14_test_case,\
23599 	&ed25519_15_test_case,\
23600 	&ed25519_16_test_case,\
23601 	&ed25519_17_test_case,\
23602 	&ed25519_18_test_case,\
23603 	&ed25519_19_test_case,\
23604 	&ed25519_20_test_case,\
23605 	&ed25519_21_test_case,\
23606 	&ed25519_22_test_case,\
23607 	&ed25519_23_test_case,\
23608 	&ed25519_24_test_case,\
23609 	&ed25519_25_test_case,\
23610 	&ed25519_26_test_case,\
23611 	&ed25519_27_test_case,\
23612 	&ed25519_28_test_case,\
23613 	&ed25519_29_test_case,\
23614 	&ed25519_30_test_case,\
23615 	&ed25519_31_test_case,\
23616 	&ed25519_32_test_case,\
23617 	&ed25519_33_test_case,\
23618 	&ed25519_34_test_case,\
23619 	&ed25519_35_test_case,\
23620 	&ed25519_36_test_case,\
23621 	&ed25519_37_test_case,\
23622 	&ed25519_38_test_case,\
23623 	&ed25519_39_test_case,\
23624 	&ed25519_40_test_case,\
23625 	&ed25519_41_test_case,\
23626 	&ed25519_42_test_case,\
23627 	&ed25519_43_test_case,\
23628 	&ed25519_44_test_case,\
23629 	&ed25519_45_test_case,\
23630 	&ed25519_46_test_case,\
23631 	&ed25519_47_test_case,\
23632 	&ed25519_48_test_case,\
23633 	&ed25519_49_test_case,\
23634 	&ed25519_50_test_case,\
23635 	&ed25519_51_test_case,\
23636 	&ed25519_52_test_case,\
23637 	&ed25519_53_test_case,\
23638 	&ed25519_54_test_case,\
23639 	&ed25519_55_test_case,\
23640 	&ed25519_56_test_case,\
23641 	&ed25519_57_test_case,\
23642 	&ed25519_58_test_case,\
23643 	&ed25519_59_test_case,\
23644 	&ed25519_60_test_case,\
23645 	&ed25519_61_test_case,\
23646 	&ed25519_62_test_case,\
23647 	&ed25519_63_test_case,\
23648 	&ed25519_64_test_case,\
23649 	&ed25519_65_test_case,\
23650 	&ed25519_66_test_case,\
23651 	&ed25519_67_test_case,\
23652 	&ed25519_68_test_case,\
23653 	&ed25519_69_test_case,\
23654 	&ed25519_70_test_case,\
23655 	&ed25519_71_test_case,\
23656 	&ed25519_72_test_case,\
23657 	&ed25519_73_test_case,\
23658 	&ed25519_74_test_case,\
23659 	&ed25519_75_test_case,\
23660 	&ed25519_76_test_case,\
23661 	&ed25519_77_test_case,\
23662 	&ed25519_78_test_case,\
23663 	&ed25519_79_test_case,\
23664 	&ed25519_80_test_case,\
23665 	&ed25519_81_test_case,\
23666 	&ed25519_82_test_case,\
23667 	&ed25519_83_test_case,\
23668 	&ed25519_84_test_case,\
23669 	&ed25519_85_test_case,\
23670 	&ed25519_86_test_case,\
23671 	&ed25519_87_test_case,\
23672 	&ed25519_88_test_case,\
23673 	&ed25519_89_test_case,\
23674 	&ed25519_90_test_case,\
23675 	&ed25519_91_test_case,\
23676 	&ed25519_92_test_case,\
23677 	&ed25519_93_test_case,\
23678 	&ed25519_94_test_case,\
23679 	&ed25519_95_test_case,\
23680 	&ed25519_96_test_case,\
23681 	&ed25519_97_test_case,\
23682 	&ed25519_98_test_case,\
23683 	&ed25519_99_test_case,\
23684 	&ed25519_100_test_case,\
23685 	&ed25519_101_test_case,\
23686 	&ed25519_102_test_case,\
23687 	&ed25519_103_test_case,\
23688 	&ed25519_104_test_case,\
23689 	&ed25519_105_test_case,\
23690 	&ed25519_106_test_case,\
23691 	&ed25519_107_test_case,\
23692 	&ed25519_108_test_case,\
23693 	&ed25519_109_test_case,\
23694 	&ed25519_110_test_case,\
23695 	&ed25519_111_test_case,\
23696 	&ed25519_112_test_case,\
23697 	&ed25519_113_test_case,\
23698 	&ed25519_114_test_case,\
23699 	&ed25519_115_test_case,\
23700 	&ed25519_116_test_case,\
23701 	&ed25519_117_test_case,\
23702 	&ed25519_118_test_case,\
23703 	&ed25519_119_test_case,\
23704 	&ed25519_120_test_case,\
23705 	&ed25519_121_test_case,\
23706 	&ed25519_122_test_case,\
23707 	&ed25519_123_test_case,\
23708 	&ed25519_124_test_case,\
23709 	&ed25519_125_test_case,\
23710 	&ed25519_126_test_case,\
23711 	&ed25519_127_test_case,\
23712 	&ed25519_128_test_case,\
23713 	&ed25519_129_test_case,\
23714 	&ed25519_130_test_case,\
23715 	&ed25519_131_test_case,\
23716 	&ed25519_132_test_case,\
23717 	&ed25519_133_test_case,\
23718 	&ed25519_134_test_case,\
23719 	&ed25519_135_test_case,\
23720 	&ed25519_136_test_case,\
23721 	&ed25519_137_test_case,\
23722 	&ed25519_138_test_case,\
23723 	&ed25519_139_test_case,\
23724 	&ed25519_140_test_case,\
23725 	&ed25519_141_test_case,\
23726 	&ed25519_142_test_case,\
23727 	&ed25519_143_test_case,\
23728 	&ed25519_144_test_case,\
23729 	&ed25519_145_test_case,\
23730 	&ed25519_146_test_case,\
23731 	&ed25519_147_test_case,\
23732 	&ed25519_148_test_case,\
23733 	&ed25519_149_test_case,\
23734 	&ed25519_150_test_case,\
23735 	&ed25519_151_test_case,\
23736 	&ed25519_152_test_case,\
23737 	&ed25519_153_test_case,\
23738 	&ed25519_154_test_case,\
23739 	&ed25519_155_test_case,\
23740 	&ed25519_156_test_case,\
23741 	&ed25519_157_test_case,\
23742 	&ed25519_158_test_case,\
23743 	&ed25519_159_test_case,\
23744 	&ed25519_160_test_case,\
23745 	&ed25519_161_test_case,\
23746 	&ed25519_162_test_case,\
23747 	&ed25519_163_test_case,\
23748 	&ed25519_164_test_case,\
23749 	&ed25519_165_test_case,\
23750 	&ed25519_166_test_case,\
23751 	&ed25519_167_test_case,\
23752 	&ed25519_168_test_case,\
23753 	&ed25519_169_test_case,\
23754 	&ed25519_170_test_case,\
23755 	&ed25519_171_test_case,\
23756 	&ed25519_172_test_case,\
23757 	&ed25519_173_test_case,\
23758 	&ed25519_174_test_case,\
23759 	&ed25519_175_test_case,\
23760 	&ed25519_176_test_case,\
23761 	&ed25519_177_test_case,\
23762 	&ed25519_178_test_case,\
23763 	&ed25519_179_test_case,\
23764 	&ed25519_180_test_case,\
23765 	&ed25519_181_test_case,\
23766 	&ed25519_182_test_case,\
23767 	&ed25519_183_test_case,\
23768 	&ed25519_184_test_case,\
23769 	&ed25519_185_test_case,\
23770 	&ed25519_186_test_case,\
23771 	&ed25519_187_test_case,\
23772 	&ed25519_188_test_case,\
23773 	&ed25519_189_test_case,\
23774 	&ed25519_190_test_case,\
23775 	&ed25519_191_test_case,\
23776 	&ed25519_192_test_case,\
23777 	&ed25519_193_test_case,\
23778 	&ed25519_194_test_case,\
23779 	&ed25519_195_test_case,\
23780 	&ed25519_196_test_case,\
23781 	&ed25519_197_test_case,\
23782 	&ed25519_198_test_case,\
23783 	&ed25519_199_test_case,\
23784 	&ed25519_200_test_case,\
23785 	&ed25519_201_test_case,\
23786 	&ed25519_202_test_case,\
23787 	&ed25519_203_test_case,\
23788 	&ed25519_204_test_case,\
23789 	&ed25519_205_test_case,\
23790 	&ed25519_206_test_case,\
23791 	&ed25519_207_test_case,\
23792 	&ed25519_208_test_case,\
23793 	&ed25519_209_test_case,\
23794 	&ed25519_210_test_case,\
23795 	&ed25519_211_test_case,\
23796 	&ed25519_212_test_case,\
23797 	&ed25519_213_test_case,\
23798 	&ed25519_214_test_case,\
23799 	&ed25519_215_test_case,\
23800 	&ed25519_216_test_case,\
23801 	&ed25519_217_test_case,\
23802 	&ed25519_218_test_case,\
23803 	&ed25519_219_test_case,\
23804 	&ed25519_220_test_case,\
23805 	&ed25519_221_test_case,\
23806 	&ed25519_222_test_case,\
23807 	&ed25519_223_test_case,\
23808 	&ed25519_224_test_case,\
23809 	&ed25519_225_test_case,\
23810 	&ed25519_226_test_case,\
23811 	&ed25519_227_test_case,\
23812 	&ed25519_228_test_case,\
23813 	&ed25519_229_test_case,\
23814 	&ed25519_230_test_case,\
23815 	&ed25519_231_test_case,\
23816 	&ed25519_232_test_case,\
23817 	&ed25519_233_test_case,\
23818 	&ed25519_234_test_case,\
23819 	&ed25519_235_test_case,\
23820 	&ed25519_236_test_case,\
23821 	&ed25519_237_test_case,\
23822 	&ed25519_238_test_case,\
23823 	&ed25519_239_test_case,\
23824 	&ed25519_240_test_case,\
23825 	&ed25519_241_test_case,\
23826 	&ed25519_242_test_case,\
23827 	&ed25519_243_test_case,\
23828 	&ed25519_244_test_case,\
23829 	&ed25519_245_test_case,\
23830 	&ed25519_246_test_case,\
23831 	&ed25519_247_test_case,\
23832 	&ed25519_248_test_case,\
23833 	&ed25519_249_test_case,\
23834 	&ed25519_250_test_case,\
23835 	&ed25519_251_test_case,\
23836 	&ed25519_252_test_case,\
23837 	&ed25519_253_test_case,\
23838 	&ed25519_254_test_case,\
23839 	&ed25519_255_test_case,\
23840 	&ed25519_256_test_case,\
23841 	&ed25519_257_test_case,\
23842 	&ed25519_258_test_case,\
23843 	&ed25519_259_test_case,\
23844 	&ed25519_260_test_case,\
23845 	&ed25519_261_test_case,\
23846 	&ed25519_262_test_case,\
23847 	&ed25519_263_test_case,\
23848 	&ed25519_264_test_case,\
23849 	&ed25519_265_test_case,\
23850 	&ed25519_266_test_case,\
23851 	&ed25519_267_test_case,\
23852 	&ed25519_268_test_case,\
23853 	&ed25519_269_test_case,\
23854 	&ed25519_270_test_case,\
23855 	&ed25519_271_test_case,\
23856 	&ed25519_272_test_case,\
23857 	&ed25519_273_test_case,\
23858 	&ed25519_274_test_case,\
23859 	&ed25519_275_test_case,\
23860 	&ed25519_276_test_case,\
23861 	&ed25519_277_test_case,\
23862 	&ed25519_278_test_case,\
23863 	&ed25519_279_test_case,\
23864 	&ed25519_280_test_case,\
23865 	&ed25519_281_test_case,\
23866 	&ed25519_282_test_case,\
23867 	&ed25519_283_test_case,\
23868 	&ed25519_284_test_case,\
23869 	&ed25519_285_test_case,\
23870 	&ed25519_286_test_case,\
23871 	&ed25519_287_test_case,\
23872 	&ed25519_288_test_case,\
23873 	&ed25519_289_test_case,\
23874 	&ed25519_290_test_case,\
23875 	&ed25519_291_test_case,\
23876 	&ed25519_292_test_case,\
23877 	&ed25519_293_test_case,\
23878 	&ed25519_294_test_case,\
23879 	&ed25519_295_test_case,\
23880 	&ed25519_296_test_case,\
23881 	&ed25519_297_test_case,\
23882 	&ed25519_298_test_case,\
23883 	&ed25519_299_test_case,\
23884 	&ed25519_300_test_case,\
23885 	&ed25519_301_test_case,\
23886 	&ed25519_302_test_case,\
23887 	&ed25519_303_test_case,\
23888 	&ed25519_304_test_case,\
23889 	&ed25519_305_test_case,\
23890 	&ed25519_306_test_case,\
23891 	&ed25519_307_test_case,\
23892 	&ed25519_308_test_case,\
23893 	&ed25519_309_test_case,\
23894 	&ed25519_310_test_case,\
23895 	&ed25519_311_test_case,\
23896 	&ed25519_312_test_case,\
23897 	&ed25519_313_test_case,\
23898 	&ed25519_314_test_case,\
23899 	&ed25519_315_test_case,\
23900 	&ed25519_316_test_case,\
23901 	&ed25519_317_test_case,\
23902 	&ed25519_318_test_case,\
23903 	&ed25519_319_test_case,\
23904 	&ed25519_320_test_case,\
23905 	&ed25519_321_test_case,\
23906 	&ed25519_322_test_case,\
23907 	&ed25519_323_test_case,\
23908 	&ed25519_324_test_case,\
23909 	&ed25519_325_test_case,\
23910 	&ed25519_326_test_case,\
23911 	&ed25519_327_test_case,\
23912 	&ed25519_328_test_case,\
23913 	&ed25519_329_test_case,\
23914 	&ed25519_330_test_case,\
23915 	&ed25519_331_test_case,\
23916 	&ed25519_332_test_case,\
23917 	&ed25519_333_test_case,\
23918 	&ed25519_334_test_case,\
23919 	&ed25519_335_test_case,\
23920 	&ed25519_336_test_case,\
23921 	&ed25519_337_test_case,\
23922 	&ed25519_338_test_case,\
23923 	&ed25519_339_test_case,\
23924 	&ed25519_340_test_case,\
23925 	&ed25519_341_test_case,\
23926 	&ed25519_342_test_case,\
23927 	&ed25519_343_test_case,\
23928 	&ed25519_344_test_case,\
23929 	&ed25519_345_test_case,\
23930 	&ed25519_346_test_case,\
23931 	&ed25519_347_test_case,\
23932 	&ed25519_348_test_case,\
23933 	&ed25519_349_test_case,\
23934 	&ed25519_350_test_case,\
23935 	&ed25519_351_test_case,\
23936 	&ed25519_352_test_case,\
23937 	&ed25519_353_test_case,\
23938 	&ed25519_354_test_case,\
23939 	&ed25519_355_test_case,\
23940 	&ed25519_356_test_case,\
23941 	&ed25519_357_test_case,\
23942 	&ed25519_358_test_case,\
23943 	&ed25519_359_test_case,\
23944 	&ed25519_360_test_case,\
23945 	&ed25519_361_test_case,\
23946 	&ed25519_362_test_case,\
23947 	&ed25519_363_test_case,\
23948 	&ed25519_364_test_case,\
23949 	&ed25519_365_test_case,\
23950 	&ed25519_366_test_case,\
23951 	&ed25519_367_test_case,\
23952 	&ed25519_368_test_case,\
23953 	&ed25519_369_test_case,\
23954 	&ed25519_370_test_case,\
23955 	&ed25519_371_test_case,\
23956 	&ed25519_372_test_case,\
23957 	&ed25519_373_test_case,\
23958 	&ed25519_374_test_case,\
23959 	&ed25519_375_test_case,\
23960 	&ed25519_376_test_case,\
23961 	&ed25519_377_test_case,\
23962 	&ed25519_378_test_case,\
23963 	&ed25519_379_test_case,\
23964 	&ed25519_380_test_case,\
23965 	&ed25519_381_test_case,\
23966 	&ed25519_382_test_case,\
23967 	&ed25519_383_test_case,\
23968 	&ed25519_384_test_case,\
23969 	&ed25519_385_test_case,\
23970 	&ed25519_386_test_case,\
23971 	&ed25519_387_test_case,\
23972 	&ed25519_388_test_case,\
23973 	&ed25519_389_test_case,\
23974 	&ed25519_390_test_case,\
23975 	&ed25519_391_test_case,\
23976 	&ed25519_392_test_case,\
23977 	&ed25519_393_test_case,\
23978 	&ed25519_394_test_case,\
23979 	&ed25519_395_test_case,\
23980 	&ed25519_396_test_case,\
23981 	&ed25519_397_test_case,\
23982 	&ed25519_398_test_case,\
23983 	&ed25519_399_test_case,\
23984 	&ed25519_400_test_case,\
23985 	&ed25519_401_test_case,\
23986 	&ed25519_402_test_case,\
23987 	&ed25519_403_test_case,\
23988 	&ed25519_404_test_case,\
23989 	&ed25519_405_test_case,\
23990 	&ed25519_406_test_case,\
23991 	&ed25519_407_test_case,\
23992 	&ed25519_408_test_case,\
23993 	&ed25519_409_test_case,\
23994 	&ed25519_410_test_case,\
23995 	&ed25519_411_test_case,\
23996 	&ed25519_412_test_case,\
23997 	&ed25519_413_test_case,\
23998 	&ed25519_414_test_case,\
23999 	&ed25519_415_test_case,\
24000 	&ed25519_416_test_case,\
24001 	&ed25519_417_test_case,\
24002 	&ed25519_418_test_case,\
24003 	&ed25519_419_test_case,\
24004 	&ed25519_420_test_case,\
24005 	&ed25519_421_test_case,\
24006 	&ed25519_422_test_case,\
24007 	&ed25519_423_test_case,\
24008 	&ed25519_424_test_case,\
24009 	&ed25519_425_test_case,\
24010 	&ed25519_426_test_case,\
24011 	&ed25519_427_test_case,\
24012 	&ed25519_428_test_case,\
24013 	&ed25519_429_test_case,\
24014 	&ed25519_430_test_case,\
24015 	&ed25519_431_test_case,\
24016 	&ed25519_432_test_case,\
24017 	&ed25519_433_test_case,\
24018 	&ed25519_434_test_case,\
24019 	&ed25519_435_test_case,\
24020 	&ed25519_436_test_case,\
24021 	&ed25519_437_test_case,\
24022 	&ed25519_438_test_case,\
24023 	&ed25519_439_test_case,\
24024 	&ed25519_440_test_case,\
24025 	&ed25519_441_test_case,\
24026 	&ed25519_442_test_case,\
24027 	&ed25519_443_test_case,\
24028 	&ed25519_444_test_case,\
24029 	&ed25519_445_test_case,\
24030 	&ed25519_446_test_case,\
24031 	&ed25519_447_test_case,\
24032 	&ed25519_448_test_case,\
24033 	&ed25519_449_test_case,\
24034 	&ed25519_450_test_case,\
24035 	&ed25519_451_test_case,\
24036 	&ed25519_452_test_case,\
24037 	&ed25519_453_test_case,\
24038 	&ed25519_454_test_case,\
24039 	&ed25519_455_test_case,\
24040 	&ed25519_456_test_case,\
24041 	&ed25519_457_test_case,\
24042 	&ed25519_458_test_case,\
24043 	&ed25519_459_test_case,\
24044 	&ed25519_460_test_case,\
24045 	&ed25519_461_test_case,\
24046 	&ed25519_462_test_case,\
24047 	&ed25519_463_test_case,\
24048 	&ed25519_464_test_case,\
24049 	&ed25519_465_test_case,\
24050 	&ed25519_466_test_case,\
24051 	&ed25519_467_test_case,\
24052 	&ed25519_468_test_case,\
24053 	&ed25519_469_test_case,\
24054 	&ed25519_470_test_case,\
24055 	&ed25519_471_test_case,\
24056 	&ed25519_472_test_case,\
24057 	&ed25519_473_test_case,\
24058 	&ed25519_474_test_case,\
24059 	&ed25519_475_test_case,\
24060 	&ed25519_476_test_case,\
24061 	&ed25519_477_test_case,\
24062 	&ed25519_478_test_case,\
24063 	&ed25519_479_test_case,\
24064 	&ed25519_480_test_case,\
24065 	&ed25519_481_test_case,\
24066 	&ed25519_482_test_case,\
24067 	&ed25519_483_test_case,\
24068 	&ed25519_484_test_case,\
24069 	&ed25519_485_test_case,\
24070 	&ed25519_486_test_case,\
24071 	&ed25519_487_test_case,\
24072 	&ed25519_488_test_case,\
24073 	&ed25519_489_test_case,\
24074 	&ed25519_490_test_case,\
24075 	&ed25519_491_test_case,\
24076 	&ed25519_492_test_case,\
24077 	&ed25519_493_test_case,\
24078 	&ed25519_494_test_case,\
24079 	&ed25519_495_test_case,\
24080 	&ed25519_496_test_case,\
24081 	&ed25519_497_test_case,\
24082 	&ed25519_498_test_case,\
24083 	&ed25519_499_test_case,\
24084 	&ed25519_500_test_case,\
24085 	&ed25519_501_test_case,\
24086 	&ed25519_502_test_case,\
24087 	&ed25519_503_test_case,\
24088 	&ed25519_504_test_case,\
24089 	&ed25519_505_test_case,\
24090 	&ed25519_506_test_case,\
24091 	&ed25519_507_test_case,\
24092 	&ed25519_508_test_case,\
24093 	&ed25519_509_test_case,\
24094 	&ed25519_510_test_case,\
24095 	&ed25519_511_test_case,\
24096 	&ed25519_512_test_case,\
24097 	&ed25519_513_test_case,\
24098 	&ed25519_514_test_case,\
24099 	&ed25519_515_test_case,\
24100 	&ed25519_516_test_case,\
24101 	&ed25519_517_test_case,\
24102 	&ed25519_518_test_case,\
24103 	&ed25519_519_test_case,\
24104 	&ed25519_520_test_case,\
24105 	&ed25519_521_test_case,\
24106 	&ed25519_522_test_case,\
24107 	&ed25519_523_test_case,\
24108 	&ed25519_524_test_case,\
24109 	&ed25519_525_test_case,\
24110 	&ed25519_526_test_case,\
24111 	&ed25519_527_test_case,\
24112 	&ed25519_528_test_case,\
24113 	&ed25519_529_test_case,\
24114 	&ed25519_530_test_case,\
24115 	&ed25519_531_test_case,\
24116 	&ed25519_532_test_case,\
24117 	&ed25519_533_test_case,\
24118 	&ed25519_534_test_case,\
24119 	&ed25519_535_test_case,\
24120 	&ed25519_536_test_case,\
24121 	&ed25519_537_test_case,\
24122 	&ed25519_538_test_case,\
24123 	&ed25519_539_test_case,\
24124 	&ed25519_540_test_case,\
24125 	&ed25519_541_test_case,\
24126 	&ed25519_542_test_case,\
24127 	&ed25519_543_test_case,\
24128 	&ed25519_544_test_case,\
24129 	&ed25519_545_test_case,\
24130 	&ed25519_546_test_case,\
24131 	&ed25519_547_test_case,\
24132 	&ed25519_548_test_case,\
24133 	&ed25519_549_test_case,\
24134 	&ed25519_550_test_case,\
24135 	&ed25519_551_test_case,\
24136 	&ed25519_552_test_case,\
24137 	&ed25519_553_test_case,\
24138 	&ed25519_554_test_case,\
24139 	&ed25519_555_test_case,\
24140 	&ed25519_556_test_case,\
24141 	&ed25519_557_test_case,\
24142 	&ed25519_558_test_case,\
24143 	&ed25519_559_test_case,\
24144 	&ed25519_560_test_case,\
24145 	&ed25519_561_test_case,\
24146 	&ed25519_562_test_case,\
24147 	&ed25519_563_test_case,\
24148 	&ed25519_564_test_case,\
24149 	&ed25519_565_test_case,\
24150 	&ed25519_566_test_case,\
24151 	&ed25519_567_test_case,\
24152 	&ed25519_568_test_case,\
24153 	&ed25519_569_test_case,\
24154 	&ed25519_570_test_case,\
24155 	&ed25519_571_test_case,\
24156 	&ed25519_572_test_case,\
24157 	&ed25519_573_test_case,\
24158 	&ed25519_574_test_case,\
24159 	&ed25519_575_test_case,\
24160 	&ed25519_576_test_case,\
24161 	&ed25519_577_test_case,\
24162 	&ed25519_578_test_case,\
24163 	&ed25519_579_test_case,\
24164 	&ed25519_580_test_case,\
24165 	&ed25519_581_test_case,\
24166 	&ed25519_582_test_case,\
24167 	&ed25519_583_test_case,\
24168 	&ed25519_584_test_case,\
24169 	&ed25519_585_test_case,\
24170 	&ed25519_586_test_case,\
24171 	&ed25519_587_test_case,\
24172 	&ed25519_588_test_case,\
24173 	&ed25519_589_test_case,\
24174 	&ed25519_590_test_case,\
24175 	&ed25519_591_test_case,\
24176 	&ed25519_592_test_case,\
24177 	&ed25519_593_test_case,\
24178 	&ed25519_594_test_case,\
24179 	&ed25519_595_test_case,\
24180 	&ed25519_596_test_case,\
24181 	&ed25519_597_test_case,\
24182 	&ed25519_598_test_case,\
24183 	&ed25519_599_test_case,\
24184 	&ed25519_600_test_case,\
24185 	&ed25519_601_test_case,\
24186 	&ed25519_602_test_case,\
24187 	&ed25519_603_test_case,\
24188 	&ed25519_604_test_case,\
24189 	&ed25519_605_test_case,\
24190 	&ed25519_606_test_case,\
24191 	&ed25519_607_test_case,\
24192 	&ed25519_608_test_case,\
24193 	&ed25519_609_test_case,\
24194 	&ed25519_610_test_case,\
24195 	&ed25519_611_test_case,\
24196 	&ed25519_612_test_case,\
24197 	&ed25519_613_test_case,\
24198 	&ed25519_614_test_case,\
24199 	&ed25519_615_test_case,\
24200 	&ed25519_616_test_case,\
24201 	&ed25519_617_test_case,\
24202 	&ed25519_618_test_case,\
24203 	&ed25519_619_test_case,\
24204 	&ed25519_620_test_case,\
24205 	&ed25519_621_test_case,\
24206 	&ed25519_622_test_case,\
24207 	&ed25519_623_test_case,\
24208 	&ed25519_624_test_case,\
24209 	&ed25519_625_test_case,\
24210 	&ed25519_626_test_case,\
24211 	&ed25519_627_test_case,\
24212 	&ed25519_628_test_case,\
24213 	&ed25519_629_test_case,\
24214 	&ed25519_630_test_case,\
24215 	&ed25519_631_test_case,\
24216 	&ed25519_632_test_case,\
24217 	&ed25519_633_test_case,\
24218 	&ed25519_634_test_case,\
24219 	&ed25519_635_test_case,\
24220 	&ed25519_636_test_case,\
24221 	&ed25519_637_test_case,\
24222 	&ed25519_638_test_case,\
24223 	&ed25519_639_test_case,\
24224 	&ed25519_640_test_case,\
24225 	&ed25519_641_test_case,\
24226 	&ed25519_642_test_case,\
24227 	&ed25519_643_test_case,\
24228 	&ed25519_644_test_case,\
24229 	&ed25519_645_test_case,\
24230 	&ed25519_646_test_case,\
24231 	&ed25519_647_test_case,\
24232 	&ed25519_648_test_case,\
24233 	&ed25519_649_test_case,\
24234 	&ed25519_650_test_case,\
24235 	&ed25519_651_test_case,\
24236 	&ed25519_652_test_case,\
24237 	&ed25519_653_test_case,\
24238 	&ed25519_654_test_case,\
24239 	&ed25519_655_test_case,\
24240 	&ed25519_656_test_case,\
24241 	&ed25519_657_test_case,\
24242 	&ed25519_658_test_case,\
24243 	&ed25519_659_test_case,\
24244 	&ed25519_660_test_case,\
24245 	&ed25519_661_test_case,\
24246 	&ed25519_662_test_case,\
24247 	&ed25519_663_test_case,\
24248 	&ed25519_664_test_case,\
24249 	&ed25519_665_test_case,\
24250 	&ed25519_666_test_case,\
24251 	&ed25519_667_test_case,\
24252 	&ed25519_668_test_case,\
24253 	&ed25519_669_test_case,\
24254 	&ed25519_670_test_case,\
24255 	&ed25519_671_test_case,\
24256 	&ed25519_672_test_case,\
24257 	&ed25519_673_test_case,\
24258 	&ed25519_674_test_case,\
24259 	&ed25519_675_test_case,\
24260 	&ed25519_676_test_case,\
24261 	&ed25519_677_test_case,\
24262 	&ed25519_678_test_case,\
24263 	&ed25519_679_test_case,\
24264 	&ed25519_680_test_case,\
24265 	&ed25519_681_test_case,\
24266 	&ed25519_682_test_case,\
24267 	&ed25519_683_test_case,\
24268 	&ed25519_684_test_case,\
24269 	&ed25519_685_test_case,\
24270 	&ed25519_686_test_case,\
24271 	&ed25519_687_test_case,\
24272 	&ed25519_688_test_case,\
24273 	&ed25519_689_test_case,\
24274 	&ed25519_690_test_case,\
24275 	&ed25519_691_test_case,\
24276 	&ed25519_692_test_case,\
24277 	&ed25519_693_test_case,\
24278 	&ed25519_694_test_case,\
24279 	&ed25519_695_test_case,\
24280 	&ed25519_696_test_case,\
24281 	&ed25519_697_test_case,\
24282 	&ed25519_698_test_case,\
24283 	&ed25519_699_test_case,\
24284 	&ed25519_700_test_case,\
24285 	&ed25519_701_test_case,\
24286 	&ed25519_702_test_case,\
24287 	&ed25519_703_test_case,\
24288 	&ed25519_704_test_case,\
24289 	&ed25519_705_test_case,\
24290 	&ed25519_706_test_case,\
24291 	&ed25519_707_test_case,\
24292 	&ed25519_708_test_case,\
24293 	&ed25519_709_test_case,\
24294 	&ed25519_710_test_case,\
24295 	&ed25519_711_test_case,\
24296 	&ed25519_712_test_case,\
24297 	&ed25519_713_test_case,\
24298 	&ed25519_714_test_case,\
24299 	&ed25519_715_test_case,\
24300 	&ed25519_716_test_case,\
24301 	&ed25519_717_test_case,\
24302 	&ed25519_718_test_case,\
24303 	&ed25519_719_test_case,\
24304 	&ed25519_720_test_case,\
24305 	&ed25519_721_test_case,\
24306 	&ed25519_722_test_case,\
24307 	&ed25519_723_test_case,\
24308 	&ed25519_724_test_case,\
24309 	&ed25519_725_test_case,\
24310 	&ed25519_726_test_case,\
24311 	&ed25519_727_test_case,\
24312 	&ed25519_728_test_case,\
24313 	&ed25519_729_test_case,\
24314 	&ed25519_730_test_case,\
24315 	&ed25519_731_test_case,\
24316 	&ed25519_732_test_case,\
24317 	&ed25519_733_test_case,\
24318 	&ed25519_734_test_case,\
24319 	&ed25519_735_test_case,\
24320 	&ed25519_736_test_case,\
24321 	&ed25519_737_test_case,\
24322 	&ed25519_738_test_case,\
24323 	&ed25519_739_test_case,\
24324 	&ed25519_740_test_case,\
24325 	&ed25519_741_test_case,\
24326 	&ed25519_742_test_case,\
24327 	&ed25519_743_test_case,\
24328 	&ed25519_744_test_case,\
24329 	&ed25519_745_test_case,\
24330 	&ed25519_746_test_case,\
24331 	&ed25519_747_test_case,\
24332 	&ed25519_748_test_case,\
24333 	&ed25519_749_test_case,\
24334 	&ed25519_750_test_case,\
24335 	&ed25519_751_test_case,\
24336 	&ed25519_752_test_case,\
24337 	&ed25519_753_test_case,\
24338 	&ed25519_754_test_case,\
24339 	&ed25519_755_test_case,\
24340 	&ed25519_756_test_case,\
24341 	&ed25519_757_test_case,\
24342 	&ed25519_758_test_case,\
24343 	&ed25519_759_test_case,\
24344 	&ed25519_760_test_case,\
24345 	&ed25519_761_test_case,\
24346 	&ed25519_762_test_case,\
24347 	&ed25519_763_test_case,\
24348 	&ed25519_764_test_case,\
24349 	&ed25519_765_test_case,\
24350 	&ed25519_766_test_case,\
24351 	&ed25519_767_test_case,\
24352 	&ed25519_768_test_case,\
24353 	&ed25519_769_test_case,\
24354 	&ed25519_770_test_case,\
24355 	&ed25519_771_test_case,\
24356 	&ed25519_772_test_case,\
24357 	&ed25519_773_test_case,\
24358 	&ed25519_774_test_case,\
24359 	&ed25519_775_test_case,\
24360 	&ed25519_776_test_case,\
24361 	&ed25519_777_test_case,\
24362 	&ed25519_778_test_case,\
24363 	&ed25519_779_test_case,\
24364 	&ed25519_780_test_case,\
24365 	&ed25519_781_test_case,\
24366 	&ed25519_782_test_case,\
24367 	&ed25519_783_test_case,\
24368 	&ed25519_784_test_case,\
24369 	&ed25519_785_test_case,\
24370 	&ed25519_786_test_case,\
24371 	&ed25519_787_test_case,\
24372 	&ed25519_788_test_case,\
24373 	&ed25519_789_test_case,\
24374 	&ed25519_790_test_case,\
24375 	&ed25519_791_test_case,\
24376 	&ed25519_792_test_case,\
24377 	&ed25519_793_test_case,\
24378 	&ed25519_794_test_case,\
24379 	&ed25519_795_test_case,\
24380 	&ed25519_796_test_case,\
24381 	&ed25519_797_test_case,\
24382 	&ed25519_798_test_case,\
24383 	&ed25519_799_test_case,\
24384 	&ed25519_800_test_case,\
24385 	&ed25519_801_test_case,\
24386 	&ed25519_802_test_case,\
24387 	&ed25519_803_test_case,\
24388 	&ed25519_804_test_case,\
24389 	&ed25519_805_test_case,\
24390 	&ed25519_806_test_case,\
24391 	&ed25519_807_test_case,\
24392 	&ed25519_808_test_case,\
24393 	&ed25519_809_test_case,\
24394 	&ed25519_810_test_case,\
24395 	&ed25519_811_test_case,\
24396 	&ed25519_812_test_case,\
24397 	&ed25519_813_test_case,\
24398 	&ed25519_814_test_case,\
24399 	&ed25519_815_test_case,\
24400 	&ed25519_816_test_case,\
24401 	&ed25519_817_test_case,\
24402 	&ed25519_818_test_case,\
24403 	&ed25519_819_test_case,\
24404 	&ed25519_820_test_case,\
24405 	&ed25519_821_test_case,\
24406 	&ed25519_822_test_case,\
24407 	&ed25519_823_test_case,\
24408 	&ed25519_824_test_case,\
24409 	&ed25519_825_test_case,\
24410 	&ed25519_826_test_case,\
24411 	&ed25519_827_test_case,\
24412 	&ed25519_828_test_case,\
24413 	&ed25519_829_test_case,\
24414 	&ed25519_830_test_case,\
24415 	&ed25519_831_test_case,\
24416 	&ed25519_832_test_case,\
24417 	&ed25519_833_test_case,\
24418 	&ed25519_834_test_case,\
24419 	&ed25519_835_test_case,\
24420 	&ed25519_836_test_case,\
24421 	&ed25519_837_test_case,\
24422 	&ed25519_838_test_case,\
24423 	&ed25519_839_test_case,\
24424 	&ed25519_840_test_case,\
24425 	&ed25519_841_test_case,\
24426 	&ed25519_842_test_case,\
24427 	&ed25519_843_test_case,\
24428 	&ed25519_844_test_case,\
24429 	&ed25519_845_test_case,\
24430 	&ed25519_846_test_case,\
24431 	&ed25519_847_test_case,\
24432 	&ed25519_848_test_case,\
24433 	&ed25519_849_test_case,\
24434 	&ed25519_850_test_case,\
24435 	&ed25519_851_test_case,\
24436 	&ed25519_852_test_case,\
24437 	&ed25519_853_test_case,\
24438 	&ed25519_854_test_case,\
24439 	&ed25519_855_test_case,\
24440 	&ed25519_856_test_case,\
24441 	&ed25519_857_test_case,\
24442 	&ed25519_858_test_case,\
24443 	&ed25519_859_test_case,\
24444 	&ed25519_860_test_case,\
24445 	&ed25519_861_test_case,\
24446 	&ed25519_862_test_case,\
24447 	&ed25519_863_test_case,\
24448 	&ed25519_864_test_case,\
24449 	&ed25519_865_test_case,\
24450 	&ed25519_866_test_case,\
24451 	&ed25519_867_test_case,\
24452 	&ed25519_868_test_case,\
24453 	&ed25519_869_test_case,\
24454 	&ed25519_870_test_case,\
24455 	&ed25519_871_test_case,\
24456 	&ed25519_872_test_case,\
24457 	&ed25519_873_test_case,\
24458 	&ed25519_874_test_case,\
24459 	&ed25519_875_test_case,\
24460 	&ed25519_876_test_case,\
24461 	&ed25519_877_test_case,\
24462 	&ed25519_878_test_case,\
24463 	&ed25519_879_test_case,\
24464 	&ed25519_880_test_case,\
24465 	&ed25519_881_test_case,\
24466 	&ed25519_882_test_case,\
24467 	&ed25519_883_test_case,\
24468 	&ed25519_884_test_case,\
24469 	&ed25519_885_test_case,\
24470 	&ed25519_886_test_case,\
24471 	&ed25519_887_test_case,\
24472 	&ed25519_888_test_case,\
24473 	&ed25519_889_test_case,\
24474 	&ed25519_890_test_case,\
24475 	&ed25519_891_test_case,\
24476 	&ed25519_892_test_case,\
24477 	&ed25519_893_test_case,\
24478 	&ed25519_894_test_case,\
24479 	&ed25519_895_test_case,\
24480 	&ed25519_896_test_case,\
24481 	&ed25519_897_test_case,\
24482 	&ed25519_898_test_case,\
24483 	&ed25519_899_test_case,\
24484 	&ed25519_900_test_case,\
24485 	&ed25519_901_test_case,\
24486 	&ed25519_902_test_case,\
24487 	&ed25519_903_test_case,\
24488 	&ed25519_904_test_case,\
24489 	&ed25519_905_test_case,\
24490 	&ed25519_906_test_case,\
24491 	&ed25519_907_test_case,\
24492 	&ed25519_908_test_case,\
24493 	&ed25519_909_test_case,\
24494 	&ed25519_910_test_case,\
24495 	&ed25519_911_test_case,\
24496 	&ed25519_912_test_case,\
24497 	&ed25519_913_test_case,\
24498 	&ed25519_914_test_case,\
24499 	&ed25519_915_test_case,\
24500 	&ed25519_916_test_case,\
24501 	&ed25519_917_test_case,\
24502 	&ed25519_918_test_case,\
24503 	&ed25519_919_test_case,\
24504 	&ed25519_920_test_case,\
24505 	&ed25519_921_test_case,\
24506 	&ed25519_922_test_case,\
24507 	&ed25519_923_test_case,\
24508 	&ed25519_924_test_case,\
24509 	&ed25519_925_test_case,\
24510 	&ed25519_926_test_case,\
24511 	&ed25519_927_test_case,\
24512 	&ed25519_928_test_case,\
24513 	&ed25519_929_test_case,\
24514 	&ed25519_930_test_case,\
24515 	&ed25519_931_test_case,\
24516 	&ed25519_932_test_case,\
24517 	&ed25519_933_test_case,\
24518 	&ed25519_934_test_case,\
24519 	&ed25519_935_test_case,\
24520 	&ed25519_936_test_case,\
24521 	&ed25519_937_test_case,\
24522 	&ed25519_938_test_case,\
24523 	&ed25519_939_test_case,\
24524 	&ed25519_940_test_case,\
24525 	&ed25519_941_test_case,\
24526 	&ed25519_942_test_case,\
24527 	&ed25519_943_test_case,\
24528 	&ed25519_944_test_case,\
24529 	&ed25519_945_test_case,\
24530 	&ed25519_946_test_case,\
24531 	&ed25519_947_test_case,\
24532 	&ed25519_948_test_case,\
24533 	&ed25519_949_test_case,\
24534 	&ed25519_950_test_case,\
24535 	&ed25519_951_test_case,\
24536 	&ed25519_952_test_case,\
24537 	&ed25519_953_test_case,\
24538 	&ed25519_954_test_case,\
24539 	&ed25519_955_test_case,\
24540 	&ed25519_956_test_case,\
24541 	&ed25519_957_test_case,\
24542 	&ed25519_958_test_case,\
24543 	&ed25519_959_test_case,\
24544 	&ed25519_960_test_case,\
24545 	&ed25519_961_test_case,\
24546 	&ed25519_962_test_case,\
24547 	&ed25519_963_test_case,\
24548 	&ed25519_964_test_case,\
24549 	&ed25519_965_test_case,\
24550 	&ed25519_966_test_case,\
24551 	&ed25519_967_test_case,\
24552 	&ed25519_968_test_case,\
24553 	&ed25519_969_test_case,\
24554 	&ed25519_970_test_case,\
24555 	&ed25519_971_test_case,\
24556 	&ed25519_972_test_case,\
24557 	&ed25519_973_test_case,\
24558 	&ed25519_974_test_case,\
24559 	&ed25519_975_test_case,\
24560 	&ed25519_976_test_case,\
24561 	&ed25519_977_test_case,\
24562 	&ed25519_978_test_case,\
24563 	&ed25519_979_test_case,\
24564 	&ed25519_980_test_case,\
24565 	&ed25519_981_test_case,\
24566 	&ed25519_982_test_case,\
24567 	&ed25519_983_test_case,\
24568 	&ed25519_984_test_case,\
24569 	&ed25519_985_test_case,\
24570 	&ed25519_986_test_case,\
24571 	&ed25519_987_test_case,\
24572 	&ed25519_988_test_case,\
24573 	&ed25519_989_test_case,\
24574 	&ed25519_990_test_case,\
24575 	&ed25519_991_test_case,\
24576 	&ed25519_992_test_case,\
24577 	&ed25519_993_test_case,\
24578 	&ed25519_994_test_case,\
24579 	&ed25519_995_test_case,\
24580 	&ed25519_996_test_case,\
24581 	&ed25519_997_test_case,\
24582 	&ed25519_998_test_case,\
24583 	&ed25519_999_test_case,\
24584 	&ed25519_1000_test_case,\
24585 	&ed25519_1001_test_case,\
24586 	&ed25519_1002_test_case,\
24587 	&ed25519_1003_test_case,\
24588 	&ed25519_1004_test_case,\
24589 	&ed25519_1005_test_case,\
24590 	&ed25519_1006_test_case,\
24591 	&ed25519_1007_test_case,\
24592 	&ed25519_1008_test_case,\
24593 	&ed25519_1009_test_case,\
24594 	&ed25519_1010_test_case,\
24595 	&ed25519_1011_test_case,\
24596 	&ed25519_1012_test_case,\
24597 	&ed25519_1013_test_case,\
24598 	&ed25519_1014_test_case,\
24599 	&ed25519_1015_test_case,\
24600 	&ed25519_1016_test_case,\
24601 	&ed25519_1017_test_case,\
24602 	&ed25519_1018_test_case,\
24603 	&ed25519_1019_test_case,\
24604 	&ed25519_1020_test_case,\
24605 	&ed25519_1021_test_case,\
24606 	&ed25519_1022_test_case,\
24607 	&ed25519_1023_test_case,\
24608 	&ed25519_1024_test_case,
24609 #endif
24610 #endif /* __ED25519_TEST_VECTORS_H__ */
24611