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