/* * Copyright (C) 2021 - This file is part of libecc project * * Authors: * Arnaud EBALARD * Ryad BENADJILA * * This software is licensed under a dual BSD and GPL v2 license. * See LICENSE file at the root folder of the project. */ #ifndef __ED25519_TEST_VECTORS_H__ #define __ED25519_TEST_VECTORS_H__ static const u8 ed25519_1_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1_test_case = { .name = "EDDSA25519-SHA512/wei25519 1", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = "", .msglen = 0, .sig_type = EDDSA25519, .exp_sig = ed25519_1_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_2_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_2_test_vectors_message[] = { 0x72, }; static const u8 ed25519_2_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_2_test_case = { .name = "EDDSA25519-SHA512/wei25519 2", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_2_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_2_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_2_test_vectors_message, .msglen = sizeof(ed25519_2_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_2_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_2_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_3_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_3_test_vectors_message[] = { 0xaf, 0x82, }; static const u8 ed25519_3_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_3_test_case = { .name = "EDDSA25519-SHA512/wei25519 3", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_3_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_3_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_3_test_vectors_message, .msglen = sizeof(ed25519_3_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_3_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_3_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_4_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_4_test_vectors_message[] = { 0xcb, 0xc7, 0x7b, }; static const u8 ed25519_4_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_4_test_case = { .name = "EDDSA25519-SHA512/wei25519 4", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_4_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_4_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_4_test_vectors_message, .msglen = sizeof(ed25519_4_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_4_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_4_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_5_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_5_test_vectors_message[] = { 0x5f, 0x4c, 0x89, 0x89, }; static const u8 ed25519_5_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_5_test_case = { .name = "EDDSA25519-SHA512/wei25519 5", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_5_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_5_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_5_test_vectors_message, .msglen = sizeof(ed25519_5_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_5_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_5_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_6_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_6_test_vectors_message[] = { 0x18, 0xb6, 0xbe, 0xc0, 0x97, }; static const u8 ed25519_6_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_6_test_case = { .name = "EDDSA25519-SHA512/wei25519 6", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_6_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_6_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_6_test_vectors_message, .msglen = sizeof(ed25519_6_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_6_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_6_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_7_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_7_test_vectors_message[] = { 0x89, 0x01, 0x0d, 0x85, 0x59, 0x72, }; static const u8 ed25519_7_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_7_test_case = { .name = "EDDSA25519-SHA512/wei25519 7", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_7_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_7_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_7_test_vectors_message, .msglen = sizeof(ed25519_7_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_7_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_7_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_8_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_8_test_vectors_message[] = { 0xb4, 0xa8, 0xf3, 0x81, 0xe7, 0x0e, 0x7a, }; static const u8 ed25519_8_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_8_test_case = { .name = "EDDSA25519-SHA512/wei25519 8", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_8_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_8_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_8_test_vectors_message, .msglen = sizeof(ed25519_8_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_8_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_8_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_9_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_9_test_vectors_message[] = { 0x42, 0x84, 0xab, 0xc5, 0x1b, 0xb6, 0x72, 0x35, }; static const u8 ed25519_9_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_9_test_case = { .name = "EDDSA25519-SHA512/wei25519 9", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_9_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_9_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_9_test_vectors_message, .msglen = sizeof(ed25519_9_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_9_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_9_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_10_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_10_test_vectors_message[] = { 0x67, 0x2b, 0xf8, 0x96, 0x5d, 0x04, 0xbc, 0x51, 0x46, }; static const u8 ed25519_10_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_10_test_case = { .name = "EDDSA25519-SHA512/wei25519 10", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_10_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_10_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_10_test_vectors_message, .msglen = sizeof(ed25519_10_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_10_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_10_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /* * Around 1000 automatically generated additional test vectors can be * enabled using the flag below. */ #ifdef ADDITIONAL_EDDSA25519_TEST_VECTORS /************************************************/ static const u8 ed25519_11_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_11_test_vectors_message[] = { 0x33, 0xd7, 0xa7, 0x86, 0xad, 0xed, 0x8c, 0x1b, 0xf6, 0x91, }; static const u8 ed25519_11_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_11_test_case = { .name = "EDDSA25519-SHA512/wei25519 11", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_11_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_11_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_11_test_vectors_message, .msglen = sizeof(ed25519_11_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_11_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_11_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_12_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_12_test_vectors_message[] = { 0x34, 0x86, 0xf6, 0x88, 0x48, 0xa6, 0x5a, 0x0e, 0xb5, 0x50, 0x7d, }; static const u8 ed25519_12_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_12_test_case = { .name = "EDDSA25519-SHA512/wei25519 12", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_12_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_12_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_12_test_vectors_message, .msglen = sizeof(ed25519_12_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_12_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_12_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_13_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_13_test_vectors_message[] = { 0x5a, 0x8d, 0x9d, 0x0a, 0x22, 0x35, 0x7e, 0x66, 0x55, 0xf9, 0xc7, 0x85, }; static const u8 ed25519_13_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_13_test_case = { .name = "EDDSA25519-SHA512/wei25519 13", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_13_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_13_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_13_test_vectors_message, .msglen = sizeof(ed25519_13_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_13_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_13_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_14_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_14_test_vectors_message[] = { 0xb8, 0x7d, 0x38, 0x13, 0xe0, 0x3f, 0x58, 0xcf, 0x19, 0xfd, 0x0b, 0x63, 0x95, }; static const u8 ed25519_14_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_14_test_case = { .name = "EDDSA25519-SHA512/wei25519 14", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_14_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_14_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_14_test_vectors_message, .msglen = sizeof(ed25519_14_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_14_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_14_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_15_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_15_test_vectors_message[] = { 0x55, 0xc7, 0xfa, 0x43, 0x4f, 0x5e, 0xd8, 0xcd, 0xec, 0x2b, 0x7a, 0xea, 0xc1, 0x73, }; static const u8 ed25519_15_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_15_test_case = { .name = "EDDSA25519-SHA512/wei25519 15", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_15_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_15_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_15_test_vectors_message, .msglen = sizeof(ed25519_15_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_15_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_15_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_16_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_16_test_vectors_message[] = { 0x0a, 0x68, 0x8e, 0x79, 0xbe, 0x24, 0xf8, 0x66, 0x28, 0x6d, 0x46, 0x46, 0xb5, 0xd8, 0x1c, }; static const u8 ed25519_16_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_16_test_case = { .name = "EDDSA25519-SHA512/wei25519 16", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_16_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_16_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_16_test_vectors_message, .msglen = sizeof(ed25519_16_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_16_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_16_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_17_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_17_test_vectors_message[] = { 0xc9, 0x42, 0xfa, 0x7a, 0xc6, 0xb2, 0x3a, 0xb7, 0xff, 0x61, 0x2f, 0xdc, 0x8e, 0x68, 0xef, 0x39, }; static const u8 ed25519_17_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_17_test_case = { .name = "EDDSA25519-SHA512/wei25519 17", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_17_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_17_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_17_test_vectors_message, .msglen = sizeof(ed25519_17_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_17_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_17_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_18_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_18_test_vectors_message[] = { 0x73, 0x68, 0x72, 0x4a, 0x5b, 0x0e, 0xfb, 0x57, 0xd2, 0x8d, 0x97, 0x62, 0x2d, 0xbd, 0xe7, 0x25, 0xaf, }; static const u8 ed25519_18_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_18_test_case = { .name = "EDDSA25519-SHA512/wei25519 18", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_18_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_18_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_18_test_vectors_message, .msglen = sizeof(ed25519_18_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_18_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_18_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_19_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_19_test_vectors_message[] = { 0xbd, 0x8e, 0x05, 0x03, 0x3f, 0x3a, 0x8b, 0xcd, 0xcb, 0xf4, 0xbe, 0xce, 0xb7, 0x09, 0x01, 0xc8, 0x2e, 0x31, }; static const u8 ed25519_19_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_19_test_case = { .name = "EDDSA25519-SHA512/wei25519 19", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_19_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_19_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_19_test_vectors_message, .msglen = sizeof(ed25519_19_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_19_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_19_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_20_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_20_test_vectors_message[] = { 0x81, 0x71, 0x45, 0x6f, 0x8b, 0x90, 0x71, 0x89, 0xb1, 0xd7, 0x79, 0xe2, 0x6b, 0xc5, 0xaf, 0xbb, 0x08, 0xc6, 0x7a, }; static const u8 ed25519_20_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_20_test_case = { .name = "EDDSA25519-SHA512/wei25519 20", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_20_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_20_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_20_test_vectors_message, .msglen = sizeof(ed25519_20_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_20_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_20_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_21_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_21_test_vectors_message[] = { 0x8b, 0xa6, 0xa4, 0xc9, 0xa1, 0x5a, 0x24, 0x4a, 0x9c, 0x26, 0xbb, 0x2a, 0x59, 0xb1, 0x02, 0x6f, 0x21, 0x34, 0x8b, 0x49, }; static const u8 ed25519_21_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_21_test_case = { .name = "EDDSA25519-SHA512/wei25519 21", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_21_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_21_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_21_test_vectors_message, .msglen = sizeof(ed25519_21_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_21_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_21_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_22_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_22_test_vectors_message[] = { 0x1d, 0x56, 0x6a, 0x62, 0x32, 0xbb, 0xaa, 0xb3, 0xe6, 0xd8, 0x80, 0x4b, 0xb5, 0x18, 0xa4, 0x98, 0xed, 0x0f, 0x90, 0x49, 0x86, }; static const u8 ed25519_22_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_22_test_case = { .name = "EDDSA25519-SHA512/wei25519 22", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_22_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_22_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_22_test_vectors_message, .msglen = sizeof(ed25519_22_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_22_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_22_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_23_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_23_test_vectors_message[] = { 0x1b, 0x0a, 0xfb, 0x0a, 0xc4, 0xba, 0x9a, 0xb7, 0xb7, 0x17, 0x2c, 0xdd, 0xc9, 0xeb, 0x42, 0xbb, 0xa1, 0xa6, 0x4b, 0xce, 0x47, 0xd4, }; static const u8 ed25519_23_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_23_test_case = { .name = "EDDSA25519-SHA512/wei25519 23", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_23_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_23_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_23_test_vectors_message, .msglen = sizeof(ed25519_23_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_23_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_23_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_24_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_24_test_vectors_message[] = { 0x50, 0x7c, 0x94, 0xc8, 0x82, 0x0d, 0x2a, 0x57, 0x93, 0xcb, 0xf3, 0x44, 0x2b, 0x3d, 0x71, 0x93, 0x6f, 0x35, 0xfe, 0x3a, 0xfe, 0xf3, 0x16, }; static const u8 ed25519_24_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_24_test_case = { .name = "EDDSA25519-SHA512/wei25519 24", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_24_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_24_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_24_test_vectors_message, .msglen = sizeof(ed25519_24_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_24_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_24_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_25_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_25_test_vectors_message[] = { 0xd3, 0xd6, 0x15, 0xa8, 0x47, 0x2d, 0x99, 0x62, 0xbb, 0x70, 0xc5, 0xb5, 0x46, 0x6a, 0x3d, 0x98, 0x3a, 0x48, 0x11, 0x04, 0x6e, 0x2a, 0x0e, 0xf5, }; static const u8 ed25519_25_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_25_test_case = { .name = "EDDSA25519-SHA512/wei25519 25", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_25_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_25_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_25_test_vectors_message, .msglen = sizeof(ed25519_25_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_25_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_25_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_26_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_26_test_vectors_message[] = { 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, }; static const u8 ed25519_26_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_26_test_case = { .name = "EDDSA25519-SHA512/wei25519 26", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_26_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_26_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_26_test_vectors_message, .msglen = sizeof(ed25519_26_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_26_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_26_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_27_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_27_test_vectors_message[] = { 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, }; static const u8 ed25519_27_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_27_test_case = { .name = "EDDSA25519-SHA512/wei25519 27", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_27_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_27_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_27_test_vectors_message, .msglen = sizeof(ed25519_27_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_27_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_27_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_28_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_28_test_vectors_message[] = { 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, }; static const u8 ed25519_28_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_28_test_case = { .name = "EDDSA25519-SHA512/wei25519 28", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_28_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_28_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_28_test_vectors_message, .msglen = sizeof(ed25519_28_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_28_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_28_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_29_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_29_test_vectors_message[] = { 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, }; static const u8 ed25519_29_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_29_test_case = { .name = "EDDSA25519-SHA512/wei25519 29", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_29_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_29_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_29_test_vectors_message, .msglen = sizeof(ed25519_29_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_29_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_29_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_30_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_30_test_vectors_message[] = { 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, }; static const u8 ed25519_30_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_30_test_case = { .name = "EDDSA25519-SHA512/wei25519 30", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_30_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_30_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_30_test_vectors_message, .msglen = sizeof(ed25519_30_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_30_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_30_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_31_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_31_test_vectors_message[] = { 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, }; static const u8 ed25519_31_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_31_test_case = { .name = "EDDSA25519-SHA512/wei25519 31", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_31_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_31_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_31_test_vectors_message, .msglen = sizeof(ed25519_31_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_31_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_31_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_32_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_32_test_vectors_message[] = { 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, }; static const u8 ed25519_32_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_32_test_case = { .name = "EDDSA25519-SHA512/wei25519 32", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_32_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_32_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_32_test_vectors_message, .msglen = sizeof(ed25519_32_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_32_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_32_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_33_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_33_test_vectors_message[] = { 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, }; static const u8 ed25519_33_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_33_test_case = { .name = "EDDSA25519-SHA512/wei25519 33", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_33_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_33_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_33_test_vectors_message, .msglen = sizeof(ed25519_33_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_33_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_33_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_34_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_34_test_vectors_message[] = { 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, }; static const u8 ed25519_34_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_34_test_case = { .name = "EDDSA25519-SHA512/wei25519 34", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_34_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_34_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_34_test_vectors_message, .msglen = sizeof(ed25519_34_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_34_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_34_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_35_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_35_test_vectors_message[] = { 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, }; static const u8 ed25519_35_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_35_test_case = { .name = "EDDSA25519-SHA512/wei25519 35", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_35_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_35_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_35_test_vectors_message, .msglen = sizeof(ed25519_35_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_35_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_35_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_36_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_36_test_vectors_message[] = { 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, }; static const u8 ed25519_36_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_36_test_case = { .name = "EDDSA25519-SHA512/wei25519 36", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_36_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_36_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_36_test_vectors_message, .msglen = sizeof(ed25519_36_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_36_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_36_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_37_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_37_test_vectors_message[] = { 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, }; static const u8 ed25519_37_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_37_test_case = { .name = "EDDSA25519-SHA512/wei25519 37", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_37_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_37_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_37_test_vectors_message, .msglen = sizeof(ed25519_37_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_37_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_37_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_38_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_38_test_vectors_message[] = { 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, }; static const u8 ed25519_38_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_38_test_case = { .name = "EDDSA25519-SHA512/wei25519 38", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_38_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_38_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_38_test_vectors_message, .msglen = sizeof(ed25519_38_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_38_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_38_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_39_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_39_test_vectors_message[] = { 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, }; static const u8 ed25519_39_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_39_test_case = { .name = "EDDSA25519-SHA512/wei25519 39", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_39_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_39_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_39_test_vectors_message, .msglen = sizeof(ed25519_39_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_39_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_39_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_40_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_40_test_vectors_message[] = { 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, }; static const u8 ed25519_40_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_40_test_case = { .name = "EDDSA25519-SHA512/wei25519 40", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_40_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_40_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_40_test_vectors_message, .msglen = sizeof(ed25519_40_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_40_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_40_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_41_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_41_test_vectors_message[] = { 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, }; static const u8 ed25519_41_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_41_test_case = { .name = "EDDSA25519-SHA512/wei25519 41", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_41_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_41_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_41_test_vectors_message, .msglen = sizeof(ed25519_41_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_41_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_41_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_42_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_42_test_vectors_message[] = { 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, }; static const u8 ed25519_42_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_42_test_case = { .name = "EDDSA25519-SHA512/wei25519 42", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_42_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_42_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_42_test_vectors_message, .msglen = sizeof(ed25519_42_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_42_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_42_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_43_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_43_test_vectors_message[] = { 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, }; static const u8 ed25519_43_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_43_test_case = { .name = "EDDSA25519-SHA512/wei25519 43", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_43_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_43_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_43_test_vectors_message, .msglen = sizeof(ed25519_43_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_43_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_43_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_44_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_44_test_vectors_message[] = { 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, }; static const u8 ed25519_44_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_44_test_case = { .name = "EDDSA25519-SHA512/wei25519 44", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_44_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_44_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_44_test_vectors_message, .msglen = sizeof(ed25519_44_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_44_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_44_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_45_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_45_test_vectors_message[] = { 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, }; static const u8 ed25519_45_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_45_test_case = { .name = "EDDSA25519-SHA512/wei25519 45", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_45_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_45_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_45_test_vectors_message, .msglen = sizeof(ed25519_45_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_45_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_45_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_46_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_46_test_vectors_message[] = { 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, }; static const u8 ed25519_46_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_46_test_case = { .name = "EDDSA25519-SHA512/wei25519 46", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_46_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_46_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_46_test_vectors_message, .msglen = sizeof(ed25519_46_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_46_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_46_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_47_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_47_test_vectors_message[] = { 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, }; static const u8 ed25519_47_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_47_test_case = { .name = "EDDSA25519-SHA512/wei25519 47", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_47_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_47_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_47_test_vectors_message, .msglen = sizeof(ed25519_47_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_47_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_47_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_48_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_48_test_vectors_message[] = { 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, }; static const u8 ed25519_48_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_48_test_case = { .name = "EDDSA25519-SHA512/wei25519 48", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_48_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_48_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_48_test_vectors_message, .msglen = sizeof(ed25519_48_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_48_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_48_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_49_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_49_test_vectors_message[] = { 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, }; static const u8 ed25519_49_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_49_test_case = { .name = "EDDSA25519-SHA512/wei25519 49", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_49_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_49_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_49_test_vectors_message, .msglen = sizeof(ed25519_49_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_49_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_49_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_50_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_50_test_vectors_message[] = { 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, }; static const u8 ed25519_50_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_50_test_case = { .name = "EDDSA25519-SHA512/wei25519 50", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_50_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_50_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_50_test_vectors_message, .msglen = sizeof(ed25519_50_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_50_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_50_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_51_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_51_test_vectors_message[] = { 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, }; static const u8 ed25519_51_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_51_test_case = { .name = "EDDSA25519-SHA512/wei25519 51", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_51_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_51_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_51_test_vectors_message, .msglen = sizeof(ed25519_51_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_51_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_51_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_52_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_52_test_vectors_message[] = { 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, }; static const u8 ed25519_52_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_52_test_case = { .name = "EDDSA25519-SHA512/wei25519 52", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_52_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_52_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_52_test_vectors_message, .msglen = sizeof(ed25519_52_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_52_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_52_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_53_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_53_test_vectors_message[] = { 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, }; static const u8 ed25519_53_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_53_test_case = { .name = "EDDSA25519-SHA512/wei25519 53", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_53_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_53_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_53_test_vectors_message, .msglen = sizeof(ed25519_53_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_53_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_53_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_54_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_54_test_vectors_message[] = { 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, }; static const u8 ed25519_54_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_54_test_case = { .name = "EDDSA25519-SHA512/wei25519 54", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_54_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_54_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_54_test_vectors_message, .msglen = sizeof(ed25519_54_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_54_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_54_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_55_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_55_test_vectors_message[] = { 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, }; static const u8 ed25519_55_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_55_test_case = { .name = "EDDSA25519-SHA512/wei25519 55", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_55_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_55_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_55_test_vectors_message, .msglen = sizeof(ed25519_55_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_55_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_55_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_56_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_56_test_vectors_message[] = { 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, }; static const u8 ed25519_56_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_56_test_case = { .name = "EDDSA25519-SHA512/wei25519 56", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_56_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_56_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_56_test_vectors_message, .msglen = sizeof(ed25519_56_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_56_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_56_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_57_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_57_test_vectors_message[] = { 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, }; static const u8 ed25519_57_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_57_test_case = { .name = "EDDSA25519-SHA512/wei25519 57", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_57_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_57_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_57_test_vectors_message, .msglen = sizeof(ed25519_57_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_57_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_57_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_58_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_58_test_vectors_message[] = { 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, }; static const u8 ed25519_58_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_58_test_case = { .name = "EDDSA25519-SHA512/wei25519 58", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_58_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_58_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_58_test_vectors_message, .msglen = sizeof(ed25519_58_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_58_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_58_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_59_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_59_test_vectors_message[] = { 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, }; static const u8 ed25519_59_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_59_test_case = { .name = "EDDSA25519-SHA512/wei25519 59", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_59_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_59_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_59_test_vectors_message, .msglen = sizeof(ed25519_59_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_59_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_59_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_60_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_60_test_vectors_message[] = { 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, }; static const u8 ed25519_60_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_60_test_case = { .name = "EDDSA25519-SHA512/wei25519 60", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_60_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_60_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_60_test_vectors_message, .msglen = sizeof(ed25519_60_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_60_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_60_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_61_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_61_test_vectors_message[] = { 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, }; static const u8 ed25519_61_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_61_test_case = { .name = "EDDSA25519-SHA512/wei25519 61", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_61_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_61_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_61_test_vectors_message, .msglen = sizeof(ed25519_61_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_61_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_61_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_62_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_62_test_vectors_message[] = { 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, }; static const u8 ed25519_62_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_62_test_case = { .name = "EDDSA25519-SHA512/wei25519 62", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_62_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_62_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_62_test_vectors_message, .msglen = sizeof(ed25519_62_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_62_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_62_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_63_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_63_test_vectors_message[] = { 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, }; static const u8 ed25519_63_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_63_test_case = { .name = "EDDSA25519-SHA512/wei25519 63", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_63_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_63_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_63_test_vectors_message, .msglen = sizeof(ed25519_63_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_63_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_63_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_64_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_64_test_vectors_message[] = { 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, }; static const u8 ed25519_64_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_64_test_case = { .name = "EDDSA25519-SHA512/wei25519 64", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_64_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_64_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_64_test_vectors_message, .msglen = sizeof(ed25519_64_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_64_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_64_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_65_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_65_test_vectors_message[] = { 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, }; static const u8 ed25519_65_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_65_test_case = { .name = "EDDSA25519-SHA512/wei25519 65", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_65_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_65_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_65_test_vectors_message, .msglen = sizeof(ed25519_65_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_65_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_65_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_66_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_66_test_vectors_message[] = { 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, }; static const u8 ed25519_66_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_66_test_case = { .name = "EDDSA25519-SHA512/wei25519 66", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_66_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_66_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_66_test_vectors_message, .msglen = sizeof(ed25519_66_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_66_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_66_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_67_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_67_test_vectors_message[] = { 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, }; static const u8 ed25519_67_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_67_test_case = { .name = "EDDSA25519-SHA512/wei25519 67", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_67_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_67_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_67_test_vectors_message, .msglen = sizeof(ed25519_67_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_67_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_67_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_68_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_68_test_vectors_message[] = { 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, }; static const u8 ed25519_68_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_68_test_case = { .name = "EDDSA25519-SHA512/wei25519 68", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_68_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_68_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_68_test_vectors_message, .msglen = sizeof(ed25519_68_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_68_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_68_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_69_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_69_test_vectors_message[] = { 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, }; static const u8 ed25519_69_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_69_test_case = { .name = "EDDSA25519-SHA512/wei25519 69", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_69_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_69_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_69_test_vectors_message, .msglen = sizeof(ed25519_69_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_69_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_69_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_70_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_70_test_vectors_message[] = { 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, }; static const u8 ed25519_70_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_70_test_case = { .name = "EDDSA25519-SHA512/wei25519 70", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_70_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_70_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_70_test_vectors_message, .msglen = sizeof(ed25519_70_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_70_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_70_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_71_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_71_test_vectors_message[] = { 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, }; static const u8 ed25519_71_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_71_test_case = { .name = "EDDSA25519-SHA512/wei25519 71", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_71_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_71_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_71_test_vectors_message, .msglen = sizeof(ed25519_71_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_71_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_71_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_72_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_72_test_vectors_message[] = { 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, }; static const u8 ed25519_72_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_72_test_case = { .name = "EDDSA25519-SHA512/wei25519 72", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_72_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_72_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_72_test_vectors_message, .msglen = sizeof(ed25519_72_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_72_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_72_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_73_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_73_test_vectors_message[] = { 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, }; static const u8 ed25519_73_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_73_test_case = { .name = "EDDSA25519-SHA512/wei25519 73", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_73_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_73_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_73_test_vectors_message, .msglen = sizeof(ed25519_73_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_73_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_73_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_74_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_74_test_vectors_message[] = { 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, }; static const u8 ed25519_74_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_74_test_case = { .name = "EDDSA25519-SHA512/wei25519 74", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_74_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_74_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_74_test_vectors_message, .msglen = sizeof(ed25519_74_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_74_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_74_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_75_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_75_test_vectors_message[] = { 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, }; static const u8 ed25519_75_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_75_test_case = { .name = "EDDSA25519-SHA512/wei25519 75", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_75_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_75_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_75_test_vectors_message, .msglen = sizeof(ed25519_75_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_75_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_75_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_76_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_76_test_vectors_message[] = { 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, }; static const u8 ed25519_76_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_76_test_case = { .name = "EDDSA25519-SHA512/wei25519 76", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_76_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_76_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_76_test_vectors_message, .msglen = sizeof(ed25519_76_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_76_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_76_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_77_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_77_test_vectors_message[] = { 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, }; static const u8 ed25519_77_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_77_test_case = { .name = "EDDSA25519-SHA512/wei25519 77", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_77_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_77_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_77_test_vectors_message, .msglen = sizeof(ed25519_77_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_77_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_77_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_78_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_78_test_vectors_message[] = { 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, }; static const u8 ed25519_78_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_78_test_case = { .name = "EDDSA25519-SHA512/wei25519 78", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_78_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_78_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_78_test_vectors_message, .msglen = sizeof(ed25519_78_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_78_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_78_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_79_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_79_test_vectors_message[] = { 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, }; static const u8 ed25519_79_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_79_test_case = { .name = "EDDSA25519-SHA512/wei25519 79", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_79_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_79_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_79_test_vectors_message, .msglen = sizeof(ed25519_79_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_79_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_79_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_80_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_80_test_vectors_message[] = { 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, }; static const u8 ed25519_80_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_80_test_case = { .name = "EDDSA25519-SHA512/wei25519 80", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_80_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_80_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_80_test_vectors_message, .msglen = sizeof(ed25519_80_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_80_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_80_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_81_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_81_test_vectors_message[] = { 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, }; static const u8 ed25519_81_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_81_test_case = { .name = "EDDSA25519-SHA512/wei25519 81", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_81_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_81_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_81_test_vectors_message, .msglen = sizeof(ed25519_81_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_81_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_81_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_82_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_82_test_vectors_message[] = { 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, }; static const u8 ed25519_82_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_82_test_case = { .name = "EDDSA25519-SHA512/wei25519 82", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_82_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_82_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_82_test_vectors_message, .msglen = sizeof(ed25519_82_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_82_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_82_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_83_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_83_test_vectors_message[] = { 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, }; static const u8 ed25519_83_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_83_test_case = { .name = "EDDSA25519-SHA512/wei25519 83", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_83_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_83_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_83_test_vectors_message, .msglen = sizeof(ed25519_83_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_83_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_83_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_84_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_84_test_vectors_message[] = { 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, }; static const u8 ed25519_84_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_84_test_case = { .name = "EDDSA25519-SHA512/wei25519 84", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_84_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_84_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_84_test_vectors_message, .msglen = sizeof(ed25519_84_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_84_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_84_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_85_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_85_test_vectors_message[] = { 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, }; static const u8 ed25519_85_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_85_test_case = { .name = "EDDSA25519-SHA512/wei25519 85", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_85_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_85_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_85_test_vectors_message, .msglen = sizeof(ed25519_85_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_85_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_85_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_86_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_86_test_vectors_message[] = { 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, }; static const u8 ed25519_86_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_86_test_case = { .name = "EDDSA25519-SHA512/wei25519 86", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_86_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_86_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_86_test_vectors_message, .msglen = sizeof(ed25519_86_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_86_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_86_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_87_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_87_test_vectors_message[] = { 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, }; static const u8 ed25519_87_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_87_test_case = { .name = "EDDSA25519-SHA512/wei25519 87", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_87_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_87_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_87_test_vectors_message, .msglen = sizeof(ed25519_87_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_87_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_87_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_88_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_88_test_vectors_message[] = { 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, }; static const u8 ed25519_88_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_88_test_case = { .name = "EDDSA25519-SHA512/wei25519 88", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_88_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_88_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_88_test_vectors_message, .msglen = sizeof(ed25519_88_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_88_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_88_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_89_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_89_test_vectors_message[] = { 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, }; static const u8 ed25519_89_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_89_test_case = { .name = "EDDSA25519-SHA512/wei25519 89", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_89_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_89_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_89_test_vectors_message, .msglen = sizeof(ed25519_89_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_89_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_89_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_90_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_90_test_vectors_message[] = { 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, }; static const u8 ed25519_90_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_90_test_case = { .name = "EDDSA25519-SHA512/wei25519 90", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_90_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_90_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_90_test_vectors_message, .msglen = sizeof(ed25519_90_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_90_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_90_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_91_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_91_test_vectors_message[] = { 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, }; static const u8 ed25519_91_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_91_test_case = { .name = "EDDSA25519-SHA512/wei25519 91", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_91_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_91_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_91_test_vectors_message, .msglen = sizeof(ed25519_91_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_91_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_91_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_92_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_92_test_vectors_message[] = { 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, }; static const u8 ed25519_92_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_92_test_case = { .name = "EDDSA25519-SHA512/wei25519 92", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_92_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_92_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_92_test_vectors_message, .msglen = sizeof(ed25519_92_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_92_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_92_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_93_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_93_test_vectors_message[] = { 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, }; static const u8 ed25519_93_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_93_test_case = { .name = "EDDSA25519-SHA512/wei25519 93", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_93_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_93_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_93_test_vectors_message, .msglen = sizeof(ed25519_93_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_93_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_93_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_94_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_94_test_vectors_message[] = { 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, }; static const u8 ed25519_94_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_94_test_case = { .name = "EDDSA25519-SHA512/wei25519 94", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_94_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_94_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_94_test_vectors_message, .msglen = sizeof(ed25519_94_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_94_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_94_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_95_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_95_test_vectors_message[] = { 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, }; static const u8 ed25519_95_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_95_test_case = { .name = "EDDSA25519-SHA512/wei25519 95", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_95_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_95_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_95_test_vectors_message, .msglen = sizeof(ed25519_95_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_95_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_95_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_96_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_96_test_vectors_message[] = { 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, }; static const u8 ed25519_96_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_96_test_case = { .name = "EDDSA25519-SHA512/wei25519 96", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_96_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_96_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_96_test_vectors_message, .msglen = sizeof(ed25519_96_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_96_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_96_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_97_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_97_test_vectors_message[] = { 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, }; static const u8 ed25519_97_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_97_test_case = { .name = "EDDSA25519-SHA512/wei25519 97", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_97_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_97_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_97_test_vectors_message, .msglen = sizeof(ed25519_97_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_97_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_97_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_98_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_98_test_vectors_message[] = { 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, }; static const u8 ed25519_98_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_98_test_case = { .name = "EDDSA25519-SHA512/wei25519 98", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_98_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_98_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_98_test_vectors_message, .msglen = sizeof(ed25519_98_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_98_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_98_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_99_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_99_test_vectors_message[] = { 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, }; static const u8 ed25519_99_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_99_test_case = { .name = "EDDSA25519-SHA512/wei25519 99", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_99_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_99_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_99_test_vectors_message, .msglen = sizeof(ed25519_99_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_99_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_99_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_100_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_100_test_vectors_message[] = { 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, }; static const u8 ed25519_100_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_100_test_case = { .name = "EDDSA25519-SHA512/wei25519 100", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_100_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_100_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_100_test_vectors_message, .msglen = sizeof(ed25519_100_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_100_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_100_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_101_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_101_test_vectors_message[] = { 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, }; static const u8 ed25519_101_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_101_test_case = { .name = "EDDSA25519-SHA512/wei25519 101", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_101_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_101_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_101_test_vectors_message, .msglen = sizeof(ed25519_101_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_101_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_101_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_102_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_102_test_vectors_message[] = { 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, }; static const u8 ed25519_102_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_102_test_case = { .name = "EDDSA25519-SHA512/wei25519 102", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_102_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_102_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_102_test_vectors_message, .msglen = sizeof(ed25519_102_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_102_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_102_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_103_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_103_test_vectors_message[] = { 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, }; static const u8 ed25519_103_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_103_test_case = { .name = "EDDSA25519-SHA512/wei25519 103", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_103_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_103_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_103_test_vectors_message, .msglen = sizeof(ed25519_103_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_103_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_103_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_104_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_104_test_vectors_message[] = { 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, }; static const u8 ed25519_104_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_104_test_case = { .name = "EDDSA25519-SHA512/wei25519 104", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_104_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_104_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_104_test_vectors_message, .msglen = sizeof(ed25519_104_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_104_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_104_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_105_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_105_test_vectors_message[] = { 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, }; static const u8 ed25519_105_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_105_test_case = { .name = "EDDSA25519-SHA512/wei25519 105", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_105_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_105_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_105_test_vectors_message, .msglen = sizeof(ed25519_105_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_105_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_105_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_106_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_106_test_vectors_message[] = { 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, }; static const u8 ed25519_106_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_106_test_case = { .name = "EDDSA25519-SHA512/wei25519 106", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_106_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_106_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_106_test_vectors_message, .msglen = sizeof(ed25519_106_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_106_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_106_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_107_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_107_test_vectors_message[] = { 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, }; static const u8 ed25519_107_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_107_test_case = { .name = "EDDSA25519-SHA512/wei25519 107", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_107_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_107_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_107_test_vectors_message, .msglen = sizeof(ed25519_107_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_107_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_107_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_108_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_108_test_vectors_message[] = { 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, }; static const u8 ed25519_108_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_108_test_case = { .name = "EDDSA25519-SHA512/wei25519 108", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_108_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_108_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_108_test_vectors_message, .msglen = sizeof(ed25519_108_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_108_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_108_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_109_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_109_test_vectors_message[] = { 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, }; static const u8 ed25519_109_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_109_test_case = { .name = "EDDSA25519-SHA512/wei25519 109", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_109_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_109_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_109_test_vectors_message, .msglen = sizeof(ed25519_109_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_109_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_109_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_110_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_110_test_vectors_message[] = { 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, }; static const u8 ed25519_110_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_110_test_case = { .name = "EDDSA25519-SHA512/wei25519 110", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_110_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_110_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_110_test_vectors_message, .msglen = sizeof(ed25519_110_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_110_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_110_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_111_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_111_test_vectors_message[] = { 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, }; static const u8 ed25519_111_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_111_test_case = { .name = "EDDSA25519-SHA512/wei25519 111", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_111_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_111_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_111_test_vectors_message, .msglen = sizeof(ed25519_111_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_111_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_111_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_112_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_112_test_vectors_message[] = { 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, }; static const u8 ed25519_112_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_112_test_case = { .name = "EDDSA25519-SHA512/wei25519 112", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_112_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_112_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_112_test_vectors_message, .msglen = sizeof(ed25519_112_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_112_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_112_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_113_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_113_test_vectors_message[] = { 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, }; static const u8 ed25519_113_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_113_test_case = { .name = "EDDSA25519-SHA512/wei25519 113", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_113_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_113_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_113_test_vectors_message, .msglen = sizeof(ed25519_113_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_113_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_113_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_114_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_114_test_vectors_message[] = { 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, }; static const u8 ed25519_114_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_114_test_case = { .name = "EDDSA25519-SHA512/wei25519 114", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_114_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_114_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_114_test_vectors_message, .msglen = sizeof(ed25519_114_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_114_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_114_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_115_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_115_test_vectors_message[] = { 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, }; static const u8 ed25519_115_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_115_test_case = { .name = "EDDSA25519-SHA512/wei25519 115", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_115_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_115_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_115_test_vectors_message, .msglen = sizeof(ed25519_115_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_115_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_115_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_116_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_116_test_vectors_message[] = { 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, }; static const u8 ed25519_116_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_116_test_case = { .name = "EDDSA25519-SHA512/wei25519 116", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_116_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_116_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_116_test_vectors_message, .msglen = sizeof(ed25519_116_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_116_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_116_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_117_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_117_test_vectors_message[] = { 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, }; static const u8 ed25519_117_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_117_test_case = { .name = "EDDSA25519-SHA512/wei25519 117", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_117_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_117_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_117_test_vectors_message, .msglen = sizeof(ed25519_117_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_117_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_117_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_118_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_118_test_vectors_message[] = { 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, }; static const u8 ed25519_118_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_118_test_case = { .name = "EDDSA25519-SHA512/wei25519 118", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_118_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_118_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_118_test_vectors_message, .msglen = sizeof(ed25519_118_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_118_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_118_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_119_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_119_test_vectors_message[] = { 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, }; static const u8 ed25519_119_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_119_test_case = { .name = "EDDSA25519-SHA512/wei25519 119", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_119_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_119_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_119_test_vectors_message, .msglen = sizeof(ed25519_119_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_119_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_119_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_120_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_120_test_vectors_message[] = { 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, }; static const u8 ed25519_120_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_120_test_case = { .name = "EDDSA25519-SHA512/wei25519 120", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_120_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_120_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_120_test_vectors_message, .msglen = sizeof(ed25519_120_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_120_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_120_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_121_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_121_test_vectors_message[] = { 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, }; static const u8 ed25519_121_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_121_test_case = { .name = "EDDSA25519-SHA512/wei25519 121", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_121_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_121_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_121_test_vectors_message, .msglen = sizeof(ed25519_121_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_121_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_121_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_122_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_122_test_vectors_message[] = { 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, }; static const u8 ed25519_122_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_122_test_case = { .name = "EDDSA25519-SHA512/wei25519 122", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_122_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_122_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_122_test_vectors_message, .msglen = sizeof(ed25519_122_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_122_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_122_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_123_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_123_test_vectors_message[] = { 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, }; static const u8 ed25519_123_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_123_test_case = { .name = "EDDSA25519-SHA512/wei25519 123", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_123_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_123_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_123_test_vectors_message, .msglen = sizeof(ed25519_123_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_123_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_123_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_124_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_124_test_vectors_message[] = { 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, }; static const u8 ed25519_124_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_124_test_case = { .name = "EDDSA25519-SHA512/wei25519 124", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_124_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_124_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_124_test_vectors_message, .msglen = sizeof(ed25519_124_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_124_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_124_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_125_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_125_test_vectors_message[] = { 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, }; static const u8 ed25519_125_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_125_test_case = { .name = "EDDSA25519-SHA512/wei25519 125", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_125_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_125_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_125_test_vectors_message, .msglen = sizeof(ed25519_125_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_125_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_125_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_126_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_126_test_vectors_message[] = { 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, }; static const u8 ed25519_126_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_126_test_case = { .name = "EDDSA25519-SHA512/wei25519 126", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_126_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_126_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_126_test_vectors_message, .msglen = sizeof(ed25519_126_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_126_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_126_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_127_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_127_test_vectors_message[] = { 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, }; static const u8 ed25519_127_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_127_test_case = { .name = "EDDSA25519-SHA512/wei25519 127", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_127_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_127_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_127_test_vectors_message, .msglen = sizeof(ed25519_127_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_127_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_127_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_128_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_128_test_vectors_message[] = { 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, }; static const u8 ed25519_128_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_128_test_case = { .name = "EDDSA25519-SHA512/wei25519 128", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_128_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_128_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_128_test_vectors_message, .msglen = sizeof(ed25519_128_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_128_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_128_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_129_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_129_test_vectors_message[] = { 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, }; static const u8 ed25519_129_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_129_test_case = { .name = "EDDSA25519-SHA512/wei25519 129", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_129_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_129_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_129_test_vectors_message, .msglen = sizeof(ed25519_129_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_129_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_129_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_130_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_130_test_vectors_message[] = { 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, }; static const u8 ed25519_130_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_130_test_case = { .name = "EDDSA25519-SHA512/wei25519 130", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_130_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_130_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_130_test_vectors_message, .msglen = sizeof(ed25519_130_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_130_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_130_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_131_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_131_test_vectors_message[] = { 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, }; static const u8 ed25519_131_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_131_test_case = { .name = "EDDSA25519-SHA512/wei25519 131", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_131_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_131_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_131_test_vectors_message, .msglen = sizeof(ed25519_131_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_131_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_131_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_132_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_132_test_vectors_message[] = { 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, }; static const u8 ed25519_132_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_132_test_case = { .name = "EDDSA25519-SHA512/wei25519 132", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_132_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_132_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_132_test_vectors_message, .msglen = sizeof(ed25519_132_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_132_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_132_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_133_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_133_test_vectors_message[] = { 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, }; static const u8 ed25519_133_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_133_test_case = { .name = "EDDSA25519-SHA512/wei25519 133", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_133_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_133_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_133_test_vectors_message, .msglen = sizeof(ed25519_133_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_133_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_133_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_134_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_134_test_vectors_message[] = { 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, }; static const u8 ed25519_134_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_134_test_case = { .name = "EDDSA25519-SHA512/wei25519 134", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_134_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_134_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_134_test_vectors_message, .msglen = sizeof(ed25519_134_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_134_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_134_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_135_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_135_test_vectors_message[] = { 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, }; static const u8 ed25519_135_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_135_test_case = { .name = "EDDSA25519-SHA512/wei25519 135", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_135_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_135_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_135_test_vectors_message, .msglen = sizeof(ed25519_135_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_135_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_135_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_136_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_136_test_vectors_message[] = { 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, }; static const u8 ed25519_136_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_136_test_case = { .name = "EDDSA25519-SHA512/wei25519 136", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_136_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_136_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_136_test_vectors_message, .msglen = sizeof(ed25519_136_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_136_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_136_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_137_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_137_test_vectors_message[] = { 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, }; static const u8 ed25519_137_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_137_test_case = { .name = "EDDSA25519-SHA512/wei25519 137", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_137_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_137_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_137_test_vectors_message, .msglen = sizeof(ed25519_137_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_137_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_137_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_138_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_138_test_vectors_message[] = { 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, }; static const u8 ed25519_138_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_138_test_case = { .name = "EDDSA25519-SHA512/wei25519 138", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_138_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_138_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_138_test_vectors_message, .msglen = sizeof(ed25519_138_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_138_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_138_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_139_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_139_test_vectors_message[] = { 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, }; static const u8 ed25519_139_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_139_test_case = { .name = "EDDSA25519-SHA512/wei25519 139", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_139_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_139_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_139_test_vectors_message, .msglen = sizeof(ed25519_139_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_139_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_139_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_140_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_140_test_vectors_message[] = { 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, }; static const u8 ed25519_140_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_140_test_case = { .name = "EDDSA25519-SHA512/wei25519 140", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_140_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_140_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_140_test_vectors_message, .msglen = sizeof(ed25519_140_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_140_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_140_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_141_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_141_test_vectors_message[] = { 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, }; static const u8 ed25519_141_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_141_test_case = { .name = "EDDSA25519-SHA512/wei25519 141", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_141_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_141_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_141_test_vectors_message, .msglen = sizeof(ed25519_141_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_141_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_141_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_142_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_142_test_vectors_message[] = { 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, }; static const u8 ed25519_142_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_142_test_case = { .name = "EDDSA25519-SHA512/wei25519 142", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_142_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_142_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_142_test_vectors_message, .msglen = sizeof(ed25519_142_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_142_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_142_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_143_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_143_test_vectors_message[] = { 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, }; static const u8 ed25519_143_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_143_test_case = { .name = "EDDSA25519-SHA512/wei25519 143", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_143_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_143_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_143_test_vectors_message, .msglen = sizeof(ed25519_143_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_143_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_143_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_144_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_144_test_vectors_message[] = { 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, }; static const u8 ed25519_144_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_144_test_case = { .name = "EDDSA25519-SHA512/wei25519 144", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_144_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_144_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_144_test_vectors_message, .msglen = sizeof(ed25519_144_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_144_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_144_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_145_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_145_test_vectors_message[] = { 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, }; static const u8 ed25519_145_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_145_test_case = { .name = "EDDSA25519-SHA512/wei25519 145", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_145_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_145_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_145_test_vectors_message, .msglen = sizeof(ed25519_145_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_145_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_145_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_146_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_146_test_vectors_message[] = { 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, }; static const u8 ed25519_146_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_146_test_case = { .name = "EDDSA25519-SHA512/wei25519 146", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_146_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_146_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_146_test_vectors_message, .msglen = sizeof(ed25519_146_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_146_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_146_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_147_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_147_test_vectors_message[] = { 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, }; static const u8 ed25519_147_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_147_test_case = { .name = "EDDSA25519-SHA512/wei25519 147", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_147_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_147_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_147_test_vectors_message, .msglen = sizeof(ed25519_147_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_147_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_147_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_148_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_148_test_vectors_message[] = { 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, }; static const u8 ed25519_148_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_148_test_case = { .name = "EDDSA25519-SHA512/wei25519 148", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_148_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_148_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_148_test_vectors_message, .msglen = sizeof(ed25519_148_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_148_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_148_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_149_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_149_test_vectors_message[] = { 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, }; static const u8 ed25519_149_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_149_test_case = { .name = "EDDSA25519-SHA512/wei25519 149", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_149_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_149_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_149_test_vectors_message, .msglen = sizeof(ed25519_149_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_149_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_149_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_150_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_150_test_vectors_message[] = { 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, }; static const u8 ed25519_150_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_150_test_case = { .name = "EDDSA25519-SHA512/wei25519 150", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_150_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_150_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_150_test_vectors_message, .msglen = sizeof(ed25519_150_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_150_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_150_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_151_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_151_test_vectors_message[] = { 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, }; static const u8 ed25519_151_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_151_test_case = { .name = "EDDSA25519-SHA512/wei25519 151", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_151_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_151_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_151_test_vectors_message, .msglen = sizeof(ed25519_151_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_151_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_151_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_152_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_152_test_vectors_message[] = { 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, }; static const u8 ed25519_152_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_152_test_case = { .name = "EDDSA25519-SHA512/wei25519 152", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_152_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_152_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_152_test_vectors_message, .msglen = sizeof(ed25519_152_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_152_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_152_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_153_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_153_test_vectors_message[] = { 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, }; static const u8 ed25519_153_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_153_test_case = { .name = "EDDSA25519-SHA512/wei25519 153", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_153_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_153_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_153_test_vectors_message, .msglen = sizeof(ed25519_153_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_153_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_153_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_154_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_154_test_vectors_message[] = { 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, }; static const u8 ed25519_154_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_154_test_case = { .name = "EDDSA25519-SHA512/wei25519 154", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_154_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_154_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_154_test_vectors_message, .msglen = sizeof(ed25519_154_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_154_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_154_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_155_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_155_test_vectors_message[] = { 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, }; static const u8 ed25519_155_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_155_test_case = { .name = "EDDSA25519-SHA512/wei25519 155", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_155_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_155_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_155_test_vectors_message, .msglen = sizeof(ed25519_155_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_155_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_155_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_156_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_156_test_vectors_message[] = { 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, }; static const u8 ed25519_156_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_156_test_case = { .name = "EDDSA25519-SHA512/wei25519 156", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_156_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_156_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_156_test_vectors_message, .msglen = sizeof(ed25519_156_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_156_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_156_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_157_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_157_test_vectors_message[] = { 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, }; static const u8 ed25519_157_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_157_test_case = { .name = "EDDSA25519-SHA512/wei25519 157", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_157_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_157_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_157_test_vectors_message, .msglen = sizeof(ed25519_157_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_157_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_157_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_158_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_158_test_vectors_message[] = { 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, }; static const u8 ed25519_158_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_158_test_case = { .name = "EDDSA25519-SHA512/wei25519 158", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_158_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_158_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_158_test_vectors_message, .msglen = sizeof(ed25519_158_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_158_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_158_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_159_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_159_test_vectors_message[] = { 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, }; static const u8 ed25519_159_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_159_test_case = { .name = "EDDSA25519-SHA512/wei25519 159", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_159_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_159_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_159_test_vectors_message, .msglen = sizeof(ed25519_159_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_159_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_159_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_160_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_160_test_vectors_message[] = { 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, }; static const u8 ed25519_160_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_160_test_case = { .name = "EDDSA25519-SHA512/wei25519 160", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_160_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_160_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_160_test_vectors_message, .msglen = sizeof(ed25519_160_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_160_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_160_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_161_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_161_test_vectors_message[] = { 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, }; static const u8 ed25519_161_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_161_test_case = { .name = "EDDSA25519-SHA512/wei25519 161", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_161_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_161_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_161_test_vectors_message, .msglen = sizeof(ed25519_161_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_161_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_161_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_162_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_162_test_vectors_message[] = { 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, }; static const u8 ed25519_162_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_162_test_case = { .name = "EDDSA25519-SHA512/wei25519 162", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_162_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_162_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_162_test_vectors_message, .msglen = sizeof(ed25519_162_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_162_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_162_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_163_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_163_test_vectors_message[] = { 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, }; static const u8 ed25519_163_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_163_test_case = { .name = "EDDSA25519-SHA512/wei25519 163", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_163_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_163_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_163_test_vectors_message, .msglen = sizeof(ed25519_163_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_163_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_163_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_164_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_164_test_vectors_message[] = { 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, }; static const u8 ed25519_164_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_164_test_case = { .name = "EDDSA25519-SHA512/wei25519 164", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_164_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_164_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_164_test_vectors_message, .msglen = sizeof(ed25519_164_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_164_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_164_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_165_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_165_test_vectors_message[] = { 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, }; static const u8 ed25519_165_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_165_test_case = { .name = "EDDSA25519-SHA512/wei25519 165", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_165_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_165_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_165_test_vectors_message, .msglen = sizeof(ed25519_165_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_165_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_165_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_166_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_166_test_vectors_message[] = { 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, }; static const u8 ed25519_166_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_166_test_case = { .name = "EDDSA25519-SHA512/wei25519 166", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_166_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_166_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_166_test_vectors_message, .msglen = sizeof(ed25519_166_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_166_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_166_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_167_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_167_test_vectors_message[] = { 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, }; static const u8 ed25519_167_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_167_test_case = { .name = "EDDSA25519-SHA512/wei25519 167", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_167_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_167_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_167_test_vectors_message, .msglen = sizeof(ed25519_167_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_167_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_167_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_168_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_168_test_vectors_message[] = { 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, }; static const u8 ed25519_168_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_168_test_case = { .name = "EDDSA25519-SHA512/wei25519 168", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_168_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_168_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_168_test_vectors_message, .msglen = sizeof(ed25519_168_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_168_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_168_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_169_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_169_test_vectors_message[] = { 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, }; static const u8 ed25519_169_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_169_test_case = { .name = "EDDSA25519-SHA512/wei25519 169", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_169_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_169_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_169_test_vectors_message, .msglen = sizeof(ed25519_169_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_169_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_169_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_170_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_170_test_vectors_message[] = { 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, }; static const u8 ed25519_170_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_170_test_case = { .name = "EDDSA25519-SHA512/wei25519 170", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_170_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_170_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_170_test_vectors_message, .msglen = sizeof(ed25519_170_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_170_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_170_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_171_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_171_test_vectors_message[] = { 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, }; static const u8 ed25519_171_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_171_test_case = { .name = "EDDSA25519-SHA512/wei25519 171", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_171_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_171_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_171_test_vectors_message, .msglen = sizeof(ed25519_171_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_171_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_171_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_172_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_172_test_vectors_message[] = { 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, }; static const u8 ed25519_172_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_172_test_case = { .name = "EDDSA25519-SHA512/wei25519 172", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_172_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_172_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_172_test_vectors_message, .msglen = sizeof(ed25519_172_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_172_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_172_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_173_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_173_test_vectors_message[] = { 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, }; static const u8 ed25519_173_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_173_test_case = { .name = "EDDSA25519-SHA512/wei25519 173", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_173_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_173_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_173_test_vectors_message, .msglen = sizeof(ed25519_173_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_173_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_173_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_174_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_174_test_vectors_message[] = { 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, }; static const u8 ed25519_174_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_174_test_case = { .name = "EDDSA25519-SHA512/wei25519 174", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_174_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_174_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_174_test_vectors_message, .msglen = sizeof(ed25519_174_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_174_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_174_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_175_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_175_test_vectors_message[] = { 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, }; static const u8 ed25519_175_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_175_test_case = { .name = "EDDSA25519-SHA512/wei25519 175", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_175_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_175_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_175_test_vectors_message, .msglen = sizeof(ed25519_175_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_175_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_175_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_176_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_176_test_vectors_message[] = { 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, }; static const u8 ed25519_176_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_176_test_case = { .name = "EDDSA25519-SHA512/wei25519 176", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_176_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_176_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_176_test_vectors_message, .msglen = sizeof(ed25519_176_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_176_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_176_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_177_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_177_test_vectors_message[] = { 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, }; static const u8 ed25519_177_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_177_test_case = { .name = "EDDSA25519-SHA512/wei25519 177", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_177_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_177_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_177_test_vectors_message, .msglen = sizeof(ed25519_177_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_177_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_177_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_178_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_178_test_vectors_message[] = { 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, }; static const u8 ed25519_178_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_178_test_case = { .name = "EDDSA25519-SHA512/wei25519 178", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_178_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_178_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_178_test_vectors_message, .msglen = sizeof(ed25519_178_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_178_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_178_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_179_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_179_test_vectors_message[] = { 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, }; static const u8 ed25519_179_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_179_test_case = { .name = "EDDSA25519-SHA512/wei25519 179", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_179_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_179_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_179_test_vectors_message, .msglen = sizeof(ed25519_179_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_179_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_179_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_180_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_180_test_vectors_message[] = { 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, }; static const u8 ed25519_180_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_180_test_case = { .name = "EDDSA25519-SHA512/wei25519 180", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_180_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_180_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_180_test_vectors_message, .msglen = sizeof(ed25519_180_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_180_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_180_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_181_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_181_test_vectors_message[] = { 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, }; static const u8 ed25519_181_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_181_test_case = { .name = "EDDSA25519-SHA512/wei25519 181", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_181_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_181_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_181_test_vectors_message, .msglen = sizeof(ed25519_181_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_181_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_181_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_182_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_182_test_vectors_message[] = { 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, }; static const u8 ed25519_182_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_182_test_case = { .name = "EDDSA25519-SHA512/wei25519 182", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_182_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_182_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_182_test_vectors_message, .msglen = sizeof(ed25519_182_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_182_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_182_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_183_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_183_test_vectors_message[] = { 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, }; static const u8 ed25519_183_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_183_test_case = { .name = "EDDSA25519-SHA512/wei25519 183", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_183_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_183_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_183_test_vectors_message, .msglen = sizeof(ed25519_183_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_183_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_183_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_184_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_184_test_vectors_message[] = { 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, }; static const u8 ed25519_184_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_184_test_case = { .name = "EDDSA25519-SHA512/wei25519 184", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_184_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_184_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_184_test_vectors_message, .msglen = sizeof(ed25519_184_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_184_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_184_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_185_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_185_test_vectors_message[] = { 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, }; static const u8 ed25519_185_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_185_test_case = { .name = "EDDSA25519-SHA512/wei25519 185", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_185_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_185_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_185_test_vectors_message, .msglen = sizeof(ed25519_185_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_185_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_185_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_186_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_186_test_vectors_message[] = { 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, }; static const u8 ed25519_186_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_186_test_case = { .name = "EDDSA25519-SHA512/wei25519 186", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_186_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_186_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_186_test_vectors_message, .msglen = sizeof(ed25519_186_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_186_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_186_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_187_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_187_test_vectors_message[] = { 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, }; static const u8 ed25519_187_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_187_test_case = { .name = "EDDSA25519-SHA512/wei25519 187", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_187_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_187_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_187_test_vectors_message, .msglen = sizeof(ed25519_187_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_187_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_187_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_188_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_188_test_vectors_message[] = { 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, }; static const u8 ed25519_188_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_188_test_case = { .name = "EDDSA25519-SHA512/wei25519 188", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_188_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_188_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_188_test_vectors_message, .msglen = sizeof(ed25519_188_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_188_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_188_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_189_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_189_test_vectors_message[] = { 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, }; static const u8 ed25519_189_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_189_test_case = { .name = "EDDSA25519-SHA512/wei25519 189", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_189_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_189_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_189_test_vectors_message, .msglen = sizeof(ed25519_189_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_189_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_189_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_190_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_190_test_vectors_message[] = { 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, }; static const u8 ed25519_190_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_190_test_case = { .name = "EDDSA25519-SHA512/wei25519 190", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_190_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_190_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_190_test_vectors_message, .msglen = sizeof(ed25519_190_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_190_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_190_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_191_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_191_test_vectors_message[] = { 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, }; static const u8 ed25519_191_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_191_test_case = { .name = "EDDSA25519-SHA512/wei25519 191", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_191_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_191_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_191_test_vectors_message, .msglen = sizeof(ed25519_191_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_191_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_191_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_192_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_192_test_vectors_message[] = { 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, }; static const u8 ed25519_192_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_192_test_case = { .name = "EDDSA25519-SHA512/wei25519 192", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_192_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_192_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_192_test_vectors_message, .msglen = sizeof(ed25519_192_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_192_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_192_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_193_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_193_test_vectors_message[] = { 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, }; static const u8 ed25519_193_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_193_test_case = { .name = "EDDSA25519-SHA512/wei25519 193", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_193_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_193_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_193_test_vectors_message, .msglen = sizeof(ed25519_193_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_193_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_193_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_194_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_194_test_vectors_message[] = { 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, }; static const u8 ed25519_194_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_194_test_case = { .name = "EDDSA25519-SHA512/wei25519 194", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_194_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_194_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_194_test_vectors_message, .msglen = sizeof(ed25519_194_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_194_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_194_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_195_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_195_test_vectors_message[] = { 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, }; static const u8 ed25519_195_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_195_test_case = { .name = "EDDSA25519-SHA512/wei25519 195", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_195_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_195_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_195_test_vectors_message, .msglen = sizeof(ed25519_195_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_195_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_195_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_196_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_196_test_vectors_message[] = { 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, }; static const u8 ed25519_196_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_196_test_case = { .name = "EDDSA25519-SHA512/wei25519 196", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_196_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_196_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_196_test_vectors_message, .msglen = sizeof(ed25519_196_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_196_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_196_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_197_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_197_test_vectors_message[] = { 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, }; static const u8 ed25519_197_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_197_test_case = { .name = "EDDSA25519-SHA512/wei25519 197", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_197_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_197_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_197_test_vectors_message, .msglen = sizeof(ed25519_197_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_197_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_197_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_198_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_198_test_vectors_message[] = { 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, }; static const u8 ed25519_198_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_198_test_case = { .name = "EDDSA25519-SHA512/wei25519 198", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_198_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_198_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_198_test_vectors_message, .msglen = sizeof(ed25519_198_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_198_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_198_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_199_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_199_test_vectors_message[] = { 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, }; static const u8 ed25519_199_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_199_test_case = { .name = "EDDSA25519-SHA512/wei25519 199", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_199_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_199_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_199_test_vectors_message, .msglen = sizeof(ed25519_199_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_199_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_199_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_200_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_200_test_vectors_message[] = { 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, }; static const u8 ed25519_200_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_200_test_case = { .name = "EDDSA25519-SHA512/wei25519 200", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_200_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_200_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_200_test_vectors_message, .msglen = sizeof(ed25519_200_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_200_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_200_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_201_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_201_test_vectors_message[] = { 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, }; static const u8 ed25519_201_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_201_test_case = { .name = "EDDSA25519-SHA512/wei25519 201", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_201_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_201_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_201_test_vectors_message, .msglen = sizeof(ed25519_201_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_201_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_201_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_202_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_202_test_vectors_message[] = { 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, }; static const u8 ed25519_202_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_202_test_case = { .name = "EDDSA25519-SHA512/wei25519 202", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_202_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_202_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_202_test_vectors_message, .msglen = sizeof(ed25519_202_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_202_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_202_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_203_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_203_test_vectors_message[] = { 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, }; static const u8 ed25519_203_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_203_test_case = { .name = "EDDSA25519-SHA512/wei25519 203", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_203_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_203_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_203_test_vectors_message, .msglen = sizeof(ed25519_203_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_203_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_203_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_204_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_204_test_vectors_message[] = { 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, }; static const u8 ed25519_204_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_204_test_case = { .name = "EDDSA25519-SHA512/wei25519 204", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_204_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_204_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_204_test_vectors_message, .msglen = sizeof(ed25519_204_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_204_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_204_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_205_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_205_test_vectors_message[] = { 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, }; static const u8 ed25519_205_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_205_test_case = { .name = "EDDSA25519-SHA512/wei25519 205", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_205_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_205_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_205_test_vectors_message, .msglen = sizeof(ed25519_205_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_205_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_205_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_206_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_206_test_vectors_message[] = { 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, }; static const u8 ed25519_206_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_206_test_case = { .name = "EDDSA25519-SHA512/wei25519 206", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_206_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_206_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_206_test_vectors_message, .msglen = sizeof(ed25519_206_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_206_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_206_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_207_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_207_test_vectors_message[] = { 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, }; static const u8 ed25519_207_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_207_test_case = { .name = "EDDSA25519-SHA512/wei25519 207", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_207_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_207_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_207_test_vectors_message, .msglen = sizeof(ed25519_207_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_207_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_207_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_208_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_208_test_vectors_message[] = { 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, }; static const u8 ed25519_208_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_208_test_case = { .name = "EDDSA25519-SHA512/wei25519 208", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_208_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_208_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_208_test_vectors_message, .msglen = sizeof(ed25519_208_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_208_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_208_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_209_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_209_test_vectors_message[] = { 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, }; static const u8 ed25519_209_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_209_test_case = { .name = "EDDSA25519-SHA512/wei25519 209", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_209_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_209_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_209_test_vectors_message, .msglen = sizeof(ed25519_209_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_209_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_209_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_210_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_210_test_vectors_message[] = { 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, }; static const u8 ed25519_210_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_210_test_case = { .name = "EDDSA25519-SHA512/wei25519 210", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_210_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_210_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_210_test_vectors_message, .msglen = sizeof(ed25519_210_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_210_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_210_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_211_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_211_test_vectors_message[] = { 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, }; static const u8 ed25519_211_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_211_test_case = { .name = "EDDSA25519-SHA512/wei25519 211", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_211_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_211_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_211_test_vectors_message, .msglen = sizeof(ed25519_211_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_211_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_211_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_212_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_212_test_vectors_message[] = { 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, }; static const u8 ed25519_212_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_212_test_case = { .name = "EDDSA25519-SHA512/wei25519 212", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_212_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_212_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_212_test_vectors_message, .msglen = sizeof(ed25519_212_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_212_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_212_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_213_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_213_test_vectors_message[] = { 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, }; static const u8 ed25519_213_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_213_test_case = { .name = "EDDSA25519-SHA512/wei25519 213", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_213_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_213_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_213_test_vectors_message, .msglen = sizeof(ed25519_213_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_213_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_213_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_214_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_214_test_vectors_message[] = { 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, }; static const u8 ed25519_214_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_214_test_case = { .name = "EDDSA25519-SHA512/wei25519 214", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_214_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_214_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_214_test_vectors_message, .msglen = sizeof(ed25519_214_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_214_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_214_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_215_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_215_test_vectors_message[] = { 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, }; static const u8 ed25519_215_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_215_test_case = { .name = "EDDSA25519-SHA512/wei25519 215", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_215_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_215_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_215_test_vectors_message, .msglen = sizeof(ed25519_215_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_215_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_215_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_216_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_216_test_vectors_message[] = { 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, }; static const u8 ed25519_216_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_216_test_case = { .name = "EDDSA25519-SHA512/wei25519 216", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_216_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_216_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_216_test_vectors_message, .msglen = sizeof(ed25519_216_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_216_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_216_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_217_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_217_test_vectors_message[] = { 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, }; static const u8 ed25519_217_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_217_test_case = { .name = "EDDSA25519-SHA512/wei25519 217", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_217_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_217_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_217_test_vectors_message, .msglen = sizeof(ed25519_217_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_217_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_217_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_218_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_218_test_vectors_message[] = { 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, }; static const u8 ed25519_218_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_218_test_case = { .name = "EDDSA25519-SHA512/wei25519 218", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_218_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_218_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_218_test_vectors_message, .msglen = sizeof(ed25519_218_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_218_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_218_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_219_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_219_test_vectors_message[] = { 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, }; static const u8 ed25519_219_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_219_test_case = { .name = "EDDSA25519-SHA512/wei25519 219", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_219_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_219_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_219_test_vectors_message, .msglen = sizeof(ed25519_219_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_219_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_219_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_220_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_220_test_vectors_message[] = { 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, }; static const u8 ed25519_220_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_220_test_case = { .name = "EDDSA25519-SHA512/wei25519 220", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_220_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_220_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_220_test_vectors_message, .msglen = sizeof(ed25519_220_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_220_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_220_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_221_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_221_test_vectors_message[] = { 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, }; static const u8 ed25519_221_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_221_test_case = { .name = "EDDSA25519-SHA512/wei25519 221", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_221_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_221_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_221_test_vectors_message, .msglen = sizeof(ed25519_221_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_221_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_221_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_222_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_222_test_vectors_message[] = { 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, }; static const u8 ed25519_222_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_222_test_case = { .name = "EDDSA25519-SHA512/wei25519 222", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_222_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_222_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_222_test_vectors_message, .msglen = sizeof(ed25519_222_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_222_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_222_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_223_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_223_test_vectors_message[] = { 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, }; static const u8 ed25519_223_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_223_test_case = { .name = "EDDSA25519-SHA512/wei25519 223", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_223_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_223_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_223_test_vectors_message, .msglen = sizeof(ed25519_223_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_223_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_223_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_224_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_224_test_vectors_message[] = { 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, }; static const u8 ed25519_224_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_224_test_case = { .name = "EDDSA25519-SHA512/wei25519 224", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_224_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_224_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_224_test_vectors_message, .msglen = sizeof(ed25519_224_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_224_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_224_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_225_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_225_test_vectors_message[] = { 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, }; static const u8 ed25519_225_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_225_test_case = { .name = "EDDSA25519-SHA512/wei25519 225", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_225_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_225_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_225_test_vectors_message, .msglen = sizeof(ed25519_225_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_225_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_225_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_226_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_226_test_vectors_message[] = { 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, }; static const u8 ed25519_226_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_226_test_case = { .name = "EDDSA25519-SHA512/wei25519 226", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_226_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_226_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_226_test_vectors_message, .msglen = sizeof(ed25519_226_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_226_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_226_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_227_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_227_test_vectors_message[] = { 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, }; static const u8 ed25519_227_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_227_test_case = { .name = "EDDSA25519-SHA512/wei25519 227", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_227_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_227_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_227_test_vectors_message, .msglen = sizeof(ed25519_227_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_227_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_227_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_228_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_228_test_vectors_message[] = { 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, }; static const u8 ed25519_228_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_228_test_case = { .name = "EDDSA25519-SHA512/wei25519 228", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_228_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_228_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_228_test_vectors_message, .msglen = sizeof(ed25519_228_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_228_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_228_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_229_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_229_test_vectors_message[] = { 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, }; static const u8 ed25519_229_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_229_test_case = { .name = "EDDSA25519-SHA512/wei25519 229", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_229_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_229_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_229_test_vectors_message, .msglen = sizeof(ed25519_229_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_229_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_229_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_230_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_230_test_vectors_message[] = { 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, }; static const u8 ed25519_230_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_230_test_case = { .name = "EDDSA25519-SHA512/wei25519 230", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_230_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_230_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_230_test_vectors_message, .msglen = sizeof(ed25519_230_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_230_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_230_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_231_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_231_test_vectors_message[] = { 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, }; static const u8 ed25519_231_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_231_test_case = { .name = "EDDSA25519-SHA512/wei25519 231", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_231_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_231_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_231_test_vectors_message, .msglen = sizeof(ed25519_231_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_231_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_231_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_232_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_232_test_vectors_message[] = { 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, }; static const u8 ed25519_232_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_232_test_case = { .name = "EDDSA25519-SHA512/wei25519 232", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_232_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_232_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_232_test_vectors_message, .msglen = sizeof(ed25519_232_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_232_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_232_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_233_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_233_test_vectors_message[] = { 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, }; static const u8 ed25519_233_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_233_test_case = { .name = "EDDSA25519-SHA512/wei25519 233", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_233_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_233_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_233_test_vectors_message, .msglen = sizeof(ed25519_233_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_233_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_233_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_234_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_234_test_vectors_message[] = { 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, }; static const u8 ed25519_234_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_234_test_case = { .name = "EDDSA25519-SHA512/wei25519 234", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_234_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_234_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_234_test_vectors_message, .msglen = sizeof(ed25519_234_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_234_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_234_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_235_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_235_test_vectors_message[] = { 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, }; static const u8 ed25519_235_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_235_test_case = { .name = "EDDSA25519-SHA512/wei25519 235", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_235_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_235_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_235_test_vectors_message, .msglen = sizeof(ed25519_235_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_235_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_235_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_236_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_236_test_vectors_message[] = { 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, }; static const u8 ed25519_236_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_236_test_case = { .name = "EDDSA25519-SHA512/wei25519 236", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_236_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_236_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_236_test_vectors_message, .msglen = sizeof(ed25519_236_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_236_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_236_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_237_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_237_test_vectors_message[] = { 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, }; static const u8 ed25519_237_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_237_test_case = { .name = "EDDSA25519-SHA512/wei25519 237", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_237_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_237_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_237_test_vectors_message, .msglen = sizeof(ed25519_237_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_237_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_237_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_238_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_238_test_vectors_message[] = { 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, }; static const u8 ed25519_238_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_238_test_case = { .name = "EDDSA25519-SHA512/wei25519 238", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_238_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_238_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_238_test_vectors_message, .msglen = sizeof(ed25519_238_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_238_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_238_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_239_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_239_test_vectors_message[] = { 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, }; static const u8 ed25519_239_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_239_test_case = { .name = "EDDSA25519-SHA512/wei25519 239", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_239_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_239_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_239_test_vectors_message, .msglen = sizeof(ed25519_239_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_239_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_239_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_240_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_240_test_vectors_message[] = { 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, }; static const u8 ed25519_240_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_240_test_case = { .name = "EDDSA25519-SHA512/wei25519 240", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_240_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_240_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_240_test_vectors_message, .msglen = sizeof(ed25519_240_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_240_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_240_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_241_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_241_test_vectors_message[] = { 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, }; static const u8 ed25519_241_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_241_test_case = { .name = "EDDSA25519-SHA512/wei25519 241", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_241_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_241_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_241_test_vectors_message, .msglen = sizeof(ed25519_241_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_241_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_241_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_242_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_242_test_vectors_message[] = { 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, }; static const u8 ed25519_242_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_242_test_case = { .name = "EDDSA25519-SHA512/wei25519 242", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_242_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_242_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_242_test_vectors_message, .msglen = sizeof(ed25519_242_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_242_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_242_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_243_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_243_test_vectors_message[] = { 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, }; static const u8 ed25519_243_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_243_test_case = { .name = "EDDSA25519-SHA512/wei25519 243", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_243_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_243_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_243_test_vectors_message, .msglen = sizeof(ed25519_243_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_243_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_243_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_244_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_244_test_vectors_message[] = { 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, }; static const u8 ed25519_244_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_244_test_case = { .name = "EDDSA25519-SHA512/wei25519 244", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_244_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_244_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_244_test_vectors_message, .msglen = sizeof(ed25519_244_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_244_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_244_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_245_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_245_test_vectors_message[] = { 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, }; static const u8 ed25519_245_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_245_test_case = { .name = "EDDSA25519-SHA512/wei25519 245", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_245_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_245_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_245_test_vectors_message, .msglen = sizeof(ed25519_245_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_245_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_245_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_246_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_246_test_vectors_message[] = { 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, }; static const u8 ed25519_246_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_246_test_case = { .name = "EDDSA25519-SHA512/wei25519 246", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_246_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_246_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_246_test_vectors_message, .msglen = sizeof(ed25519_246_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_246_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_246_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_247_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_247_test_vectors_message[] = { 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, }; static const u8 ed25519_247_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_247_test_case = { .name = "EDDSA25519-SHA512/wei25519 247", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_247_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_247_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_247_test_vectors_message, .msglen = sizeof(ed25519_247_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_247_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_247_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_248_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_248_test_vectors_message[] = { 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, }; static const u8 ed25519_248_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_248_test_case = { .name = "EDDSA25519-SHA512/wei25519 248", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_248_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_248_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_248_test_vectors_message, .msglen = sizeof(ed25519_248_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_248_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_248_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_249_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_249_test_vectors_message[] = { 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, }; static const u8 ed25519_249_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_249_test_case = { .name = "EDDSA25519-SHA512/wei25519 249", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_249_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_249_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_249_test_vectors_message, .msglen = sizeof(ed25519_249_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_249_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_249_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_250_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_250_test_vectors_message[] = { 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, }; static const u8 ed25519_250_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_250_test_case = { .name = "EDDSA25519-SHA512/wei25519 250", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_250_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_250_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_250_test_vectors_message, .msglen = sizeof(ed25519_250_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_250_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_250_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_251_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_251_test_vectors_message[] = { 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, }; static const u8 ed25519_251_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_251_test_case = { .name = "EDDSA25519-SHA512/wei25519 251", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_251_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_251_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_251_test_vectors_message, .msglen = sizeof(ed25519_251_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_251_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_251_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_252_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_252_test_vectors_message[] = { 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, }; static const u8 ed25519_252_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_252_test_case = { .name = "EDDSA25519-SHA512/wei25519 252", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_252_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_252_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_252_test_vectors_message, .msglen = sizeof(ed25519_252_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_252_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_252_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_253_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_253_test_vectors_message[] = { 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, }; static const u8 ed25519_253_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_253_test_case = { .name = "EDDSA25519-SHA512/wei25519 253", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_253_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_253_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_253_test_vectors_message, .msglen = sizeof(ed25519_253_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_253_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_253_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_254_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_254_test_vectors_message[] = { 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, }; static const u8 ed25519_254_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_254_test_case = { .name = "EDDSA25519-SHA512/wei25519 254", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_254_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_254_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_254_test_vectors_message, .msglen = sizeof(ed25519_254_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_254_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_254_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_255_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_255_test_vectors_message[] = { 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, }; static const u8 ed25519_255_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_255_test_case = { .name = "EDDSA25519-SHA512/wei25519 255", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_255_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_255_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_255_test_vectors_message, .msglen = sizeof(ed25519_255_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_255_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_255_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_256_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_256_test_vectors_message[] = { 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, }; static const u8 ed25519_256_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_256_test_case = { .name = "EDDSA25519-SHA512/wei25519 256", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_256_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_256_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_256_test_vectors_message, .msglen = sizeof(ed25519_256_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_256_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_256_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_257_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_257_test_vectors_message[] = { 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, }; static const u8 ed25519_257_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_257_test_case = { .name = "EDDSA25519-SHA512/wei25519 257", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_257_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_257_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_257_test_vectors_message, .msglen = sizeof(ed25519_257_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_257_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_257_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_258_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_258_test_vectors_message[] = { 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, }; static const u8 ed25519_258_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_258_test_case = { .name = "EDDSA25519-SHA512/wei25519 258", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_258_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_258_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_258_test_vectors_message, .msglen = sizeof(ed25519_258_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_258_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_258_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_259_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_259_test_vectors_message[] = { 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, }; static const u8 ed25519_259_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_259_test_case = { .name = "EDDSA25519-SHA512/wei25519 259", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_259_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_259_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_259_test_vectors_message, .msglen = sizeof(ed25519_259_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_259_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_259_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_260_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_260_test_vectors_message[] = { 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, }; static const u8 ed25519_260_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_260_test_case = { .name = "EDDSA25519-SHA512/wei25519 260", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_260_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_260_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_260_test_vectors_message, .msglen = sizeof(ed25519_260_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_260_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_260_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_261_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_261_test_vectors_message[] = { 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, }; static const u8 ed25519_261_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_261_test_case = { .name = "EDDSA25519-SHA512/wei25519 261", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_261_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_261_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_261_test_vectors_message, .msglen = sizeof(ed25519_261_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_261_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_261_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_262_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_262_test_vectors_message[] = { 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, }; static const u8 ed25519_262_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_262_test_case = { .name = "EDDSA25519-SHA512/wei25519 262", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_262_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_262_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_262_test_vectors_message, .msglen = sizeof(ed25519_262_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_262_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_262_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_263_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_263_test_vectors_message[] = { 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, }; static const u8 ed25519_263_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_263_test_case = { .name = "EDDSA25519-SHA512/wei25519 263", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_263_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_263_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_263_test_vectors_message, .msglen = sizeof(ed25519_263_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_263_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_263_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_264_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_264_test_vectors_message[] = { 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, }; static const u8 ed25519_264_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_264_test_case = { .name = "EDDSA25519-SHA512/wei25519 264", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_264_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_264_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_264_test_vectors_message, .msglen = sizeof(ed25519_264_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_264_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_264_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_265_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_265_test_vectors_message[] = { 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, }; static const u8 ed25519_265_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_265_test_case = { .name = "EDDSA25519-SHA512/wei25519 265", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_265_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_265_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_265_test_vectors_message, .msglen = sizeof(ed25519_265_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_265_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_265_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_266_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_266_test_vectors_message[] = { 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, }; static const u8 ed25519_266_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_266_test_case = { .name = "EDDSA25519-SHA512/wei25519 266", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_266_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_266_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_266_test_vectors_message, .msglen = sizeof(ed25519_266_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_266_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_266_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_267_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_267_test_vectors_message[] = { 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, }; static const u8 ed25519_267_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_267_test_case = { .name = "EDDSA25519-SHA512/wei25519 267", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_267_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_267_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_267_test_vectors_message, .msglen = sizeof(ed25519_267_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_267_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_267_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_268_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_268_test_vectors_message[] = { 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, }; static const u8 ed25519_268_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_268_test_case = { .name = "EDDSA25519-SHA512/wei25519 268", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_268_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_268_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_268_test_vectors_message, .msglen = sizeof(ed25519_268_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_268_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_268_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_269_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_269_test_vectors_message[] = { 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, }; static const u8 ed25519_269_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_269_test_case = { .name = "EDDSA25519-SHA512/wei25519 269", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_269_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_269_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_269_test_vectors_message, .msglen = sizeof(ed25519_269_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_269_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_269_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_270_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_270_test_vectors_message[] = { 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, }; static const u8 ed25519_270_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_270_test_case = { .name = "EDDSA25519-SHA512/wei25519 270", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_270_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_270_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_270_test_vectors_message, .msglen = sizeof(ed25519_270_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_270_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_270_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_271_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_271_test_vectors_message[] = { 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, }; static const u8 ed25519_271_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_271_test_case = { .name = "EDDSA25519-SHA512/wei25519 271", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_271_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_271_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_271_test_vectors_message, .msglen = sizeof(ed25519_271_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_271_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_271_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_272_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_272_test_vectors_message[] = { 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, }; static const u8 ed25519_272_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_272_test_case = { .name = "EDDSA25519-SHA512/wei25519 272", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_272_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_272_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_272_test_vectors_message, .msglen = sizeof(ed25519_272_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_272_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_272_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_273_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_273_test_vectors_message[] = { 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, }; static const u8 ed25519_273_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_273_test_case = { .name = "EDDSA25519-SHA512/wei25519 273", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_273_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_273_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_273_test_vectors_message, .msglen = sizeof(ed25519_273_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_273_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_273_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_274_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_274_test_vectors_message[] = { 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, }; static const u8 ed25519_274_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_274_test_case = { .name = "EDDSA25519-SHA512/wei25519 274", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_274_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_274_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_274_test_vectors_message, .msglen = sizeof(ed25519_274_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_274_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_274_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_275_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_275_test_vectors_message[] = { 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, }; static const u8 ed25519_275_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_275_test_case = { .name = "EDDSA25519-SHA512/wei25519 275", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_275_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_275_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_275_test_vectors_message, .msglen = sizeof(ed25519_275_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_275_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_275_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_276_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_276_test_vectors_message[] = { 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, }; static const u8 ed25519_276_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_276_test_case = { .name = "EDDSA25519-SHA512/wei25519 276", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_276_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_276_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_276_test_vectors_message, .msglen = sizeof(ed25519_276_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_276_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_276_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_277_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_277_test_vectors_message[] = { 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, }; static const u8 ed25519_277_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_277_test_case = { .name = "EDDSA25519-SHA512/wei25519 277", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_277_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_277_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_277_test_vectors_message, .msglen = sizeof(ed25519_277_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_277_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_277_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_278_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_278_test_vectors_message[] = { 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, }; static const u8 ed25519_278_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_278_test_case = { .name = "EDDSA25519-SHA512/wei25519 278", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_278_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_278_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_278_test_vectors_message, .msglen = sizeof(ed25519_278_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_278_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_278_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_279_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_279_test_vectors_message[] = { 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, }; static const u8 ed25519_279_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_279_test_case = { .name = "EDDSA25519-SHA512/wei25519 279", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_279_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_279_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_279_test_vectors_message, .msglen = sizeof(ed25519_279_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_279_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_279_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_280_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_280_test_vectors_message[] = { 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, }; static const u8 ed25519_280_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_280_test_case = { .name = "EDDSA25519-SHA512/wei25519 280", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_280_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_280_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_280_test_vectors_message, .msglen = sizeof(ed25519_280_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_280_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_280_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_281_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_281_test_vectors_message[] = { 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, }; static const u8 ed25519_281_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_281_test_case = { .name = "EDDSA25519-SHA512/wei25519 281", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_281_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_281_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_281_test_vectors_message, .msglen = sizeof(ed25519_281_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_281_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_281_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_282_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_282_test_vectors_message[] = { 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, }; static const u8 ed25519_282_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_282_test_case = { .name = "EDDSA25519-SHA512/wei25519 282", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_282_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_282_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_282_test_vectors_message, .msglen = sizeof(ed25519_282_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_282_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_282_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_283_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_283_test_vectors_message[] = { 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, }; static const u8 ed25519_283_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_283_test_case = { .name = "EDDSA25519-SHA512/wei25519 283", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_283_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_283_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_283_test_vectors_message, .msglen = sizeof(ed25519_283_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_283_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_283_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_284_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_284_test_vectors_message[] = { 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, }; static const u8 ed25519_284_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_284_test_case = { .name = "EDDSA25519-SHA512/wei25519 284", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_284_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_284_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_284_test_vectors_message, .msglen = sizeof(ed25519_284_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_284_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_284_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_285_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_285_test_vectors_message[] = { 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, }; static const u8 ed25519_285_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_285_test_case = { .name = "EDDSA25519-SHA512/wei25519 285", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_285_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_285_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_285_test_vectors_message, .msglen = sizeof(ed25519_285_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_285_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_285_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_286_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_286_test_vectors_message[] = { 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, }; static const u8 ed25519_286_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_286_test_case = { .name = "EDDSA25519-SHA512/wei25519 286", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_286_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_286_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_286_test_vectors_message, .msglen = sizeof(ed25519_286_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_286_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_286_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_287_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_287_test_vectors_message[] = { 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, }; static const u8 ed25519_287_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_287_test_case = { .name = "EDDSA25519-SHA512/wei25519 287", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_287_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_287_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_287_test_vectors_message, .msglen = sizeof(ed25519_287_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_287_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_287_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_288_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_288_test_vectors_message[] = { 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, }; static const u8 ed25519_288_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_288_test_case = { .name = "EDDSA25519-SHA512/wei25519 288", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_288_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_288_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_288_test_vectors_message, .msglen = sizeof(ed25519_288_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_288_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_288_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_289_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_289_test_vectors_message[] = { 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, }; static const u8 ed25519_289_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_289_test_case = { .name = "EDDSA25519-SHA512/wei25519 289", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_289_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_289_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_289_test_vectors_message, .msglen = sizeof(ed25519_289_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_289_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_289_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_290_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_290_test_vectors_message[] = { 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, }; static const u8 ed25519_290_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_290_test_case = { .name = "EDDSA25519-SHA512/wei25519 290", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_290_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_290_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_290_test_vectors_message, .msglen = sizeof(ed25519_290_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_290_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_290_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_291_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_291_test_vectors_message[] = { 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, }; static const u8 ed25519_291_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_291_test_case = { .name = "EDDSA25519-SHA512/wei25519 291", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_291_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_291_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_291_test_vectors_message, .msglen = sizeof(ed25519_291_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_291_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_291_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_292_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_292_test_vectors_message[] = { 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, }; static const u8 ed25519_292_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_292_test_case = { .name = "EDDSA25519-SHA512/wei25519 292", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_292_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_292_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_292_test_vectors_message, .msglen = sizeof(ed25519_292_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_292_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_292_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_293_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_293_test_vectors_message[] = { 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, }; static const u8 ed25519_293_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_293_test_case = { .name = "EDDSA25519-SHA512/wei25519 293", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_293_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_293_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_293_test_vectors_message, .msglen = sizeof(ed25519_293_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_293_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_293_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_294_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_294_test_vectors_message[] = { 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, }; static const u8 ed25519_294_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_294_test_case = { .name = "EDDSA25519-SHA512/wei25519 294", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_294_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_294_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_294_test_vectors_message, .msglen = sizeof(ed25519_294_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_294_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_294_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_295_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_295_test_vectors_message[] = { 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, }; static const u8 ed25519_295_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_295_test_case = { .name = "EDDSA25519-SHA512/wei25519 295", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_295_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_295_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_295_test_vectors_message, .msglen = sizeof(ed25519_295_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_295_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_295_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_296_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_296_test_vectors_message[] = { 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, }; static const u8 ed25519_296_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_296_test_case = { .name = "EDDSA25519-SHA512/wei25519 296", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_296_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_296_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_296_test_vectors_message, .msglen = sizeof(ed25519_296_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_296_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_296_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_297_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_297_test_vectors_message[] = { 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, }; static const u8 ed25519_297_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_297_test_case = { .name = "EDDSA25519-SHA512/wei25519 297", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_297_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_297_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_297_test_vectors_message, .msglen = sizeof(ed25519_297_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_297_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_297_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_298_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_298_test_vectors_message[] = { 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, }; static const u8 ed25519_298_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_298_test_case = { .name = "EDDSA25519-SHA512/wei25519 298", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_298_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_298_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_298_test_vectors_message, .msglen = sizeof(ed25519_298_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_298_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_298_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_299_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_299_test_vectors_message[] = { 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, }; static const u8 ed25519_299_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_299_test_case = { .name = "EDDSA25519-SHA512/wei25519 299", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_299_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_299_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_299_test_vectors_message, .msglen = sizeof(ed25519_299_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_299_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_299_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_300_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_300_test_vectors_message[] = { 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, }; static const u8 ed25519_300_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_300_test_case = { .name = "EDDSA25519-SHA512/wei25519 300", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_300_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_300_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_300_test_vectors_message, .msglen = sizeof(ed25519_300_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_300_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_300_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_301_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_301_test_vectors_message[] = { 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, }; static const u8 ed25519_301_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_301_test_case = { .name = "EDDSA25519-SHA512/wei25519 301", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_301_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_301_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_301_test_vectors_message, .msglen = sizeof(ed25519_301_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_301_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_301_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_302_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_302_test_vectors_message[] = { 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, }; static const u8 ed25519_302_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_302_test_case = { .name = "EDDSA25519-SHA512/wei25519 302", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_302_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_302_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_302_test_vectors_message, .msglen = sizeof(ed25519_302_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_302_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_302_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_303_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_303_test_vectors_message[] = { 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, }; static const u8 ed25519_303_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_303_test_case = { .name = "EDDSA25519-SHA512/wei25519 303", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_303_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_303_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_303_test_vectors_message, .msglen = sizeof(ed25519_303_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_303_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_303_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_304_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_304_test_vectors_message[] = { 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, }; static const u8 ed25519_304_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_304_test_case = { .name = "EDDSA25519-SHA512/wei25519 304", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_304_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_304_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_304_test_vectors_message, .msglen = sizeof(ed25519_304_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_304_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_304_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_305_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_305_test_vectors_message[] = { 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, }; static const u8 ed25519_305_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_305_test_case = { .name = "EDDSA25519-SHA512/wei25519 305", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_305_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_305_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_305_test_vectors_message, .msglen = sizeof(ed25519_305_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_305_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_305_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_306_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_306_test_vectors_message[] = { 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, }; static const u8 ed25519_306_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_306_test_case = { .name = "EDDSA25519-SHA512/wei25519 306", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_306_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_306_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_306_test_vectors_message, .msglen = sizeof(ed25519_306_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_306_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_306_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_307_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_307_test_vectors_message[] = { 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, }; static const u8 ed25519_307_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_307_test_case = { .name = "EDDSA25519-SHA512/wei25519 307", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_307_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_307_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_307_test_vectors_message, .msglen = sizeof(ed25519_307_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_307_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_307_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_308_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_308_test_vectors_message[] = { 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, }; static const u8 ed25519_308_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_308_test_case = { .name = "EDDSA25519-SHA512/wei25519 308", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_308_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_308_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_308_test_vectors_message, .msglen = sizeof(ed25519_308_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_308_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_308_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_309_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_309_test_vectors_message[] = { 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, }; static const u8 ed25519_309_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_309_test_case = { .name = "EDDSA25519-SHA512/wei25519 309", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_309_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_309_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_309_test_vectors_message, .msglen = sizeof(ed25519_309_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_309_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_309_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_310_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_310_test_vectors_message[] = { 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, }; static const u8 ed25519_310_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_310_test_case = { .name = "EDDSA25519-SHA512/wei25519 310", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_310_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_310_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_310_test_vectors_message, .msglen = sizeof(ed25519_310_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_310_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_310_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_311_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_311_test_vectors_message[] = { 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, }; static const u8 ed25519_311_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_311_test_case = { .name = "EDDSA25519-SHA512/wei25519 311", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_311_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_311_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_311_test_vectors_message, .msglen = sizeof(ed25519_311_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_311_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_311_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_312_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_312_test_vectors_message[] = { 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, }; static const u8 ed25519_312_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_312_test_case = { .name = "EDDSA25519-SHA512/wei25519 312", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_312_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_312_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_312_test_vectors_message, .msglen = sizeof(ed25519_312_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_312_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_312_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_313_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_313_test_vectors_message[] = { 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, }; static const u8 ed25519_313_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_313_test_case = { .name = "EDDSA25519-SHA512/wei25519 313", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_313_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_313_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_313_test_vectors_message, .msglen = sizeof(ed25519_313_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_313_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_313_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_314_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_314_test_vectors_message[] = { 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, }; static const u8 ed25519_314_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_314_test_case = { .name = "EDDSA25519-SHA512/wei25519 314", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_314_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_314_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_314_test_vectors_message, .msglen = sizeof(ed25519_314_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_314_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_314_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_315_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_315_test_vectors_message[] = { 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, }; static const u8 ed25519_315_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_315_test_case = { .name = "EDDSA25519-SHA512/wei25519 315", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_315_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_315_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_315_test_vectors_message, .msglen = sizeof(ed25519_315_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_315_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_315_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_316_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_316_test_vectors_message[] = { 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, }; static const u8 ed25519_316_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_316_test_case = { .name = "EDDSA25519-SHA512/wei25519 316", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_316_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_316_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_316_test_vectors_message, .msglen = sizeof(ed25519_316_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_316_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_316_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_317_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_317_test_vectors_message[] = { 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, }; static const u8 ed25519_317_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_317_test_case = { .name = "EDDSA25519-SHA512/wei25519 317", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_317_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_317_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_317_test_vectors_message, .msglen = sizeof(ed25519_317_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_317_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_317_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_318_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_318_test_vectors_message[] = { 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, }; static const u8 ed25519_318_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_318_test_case = { .name = "EDDSA25519-SHA512/wei25519 318", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_318_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_318_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_318_test_vectors_message, .msglen = sizeof(ed25519_318_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_318_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_318_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_319_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_319_test_vectors_message[] = { 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, }; static const u8 ed25519_319_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_319_test_case = { .name = "EDDSA25519-SHA512/wei25519 319", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_319_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_319_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_319_test_vectors_message, .msglen = sizeof(ed25519_319_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_319_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_319_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_320_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_320_test_vectors_message[] = { 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, }; static const u8 ed25519_320_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_320_test_case = { .name = "EDDSA25519-SHA512/wei25519 320", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_320_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_320_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_320_test_vectors_message, .msglen = sizeof(ed25519_320_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_320_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_320_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_321_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_321_test_vectors_message[] = { 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, }; static const u8 ed25519_321_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_321_test_case = { .name = "EDDSA25519-SHA512/wei25519 321", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_321_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_321_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_321_test_vectors_message, .msglen = sizeof(ed25519_321_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_321_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_321_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_322_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_322_test_vectors_message[] = { 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, }; static const u8 ed25519_322_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_322_test_case = { .name = "EDDSA25519-SHA512/wei25519 322", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_322_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_322_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_322_test_vectors_message, .msglen = sizeof(ed25519_322_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_322_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_322_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_323_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_323_test_vectors_message[] = { 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, }; static const u8 ed25519_323_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_323_test_case = { .name = "EDDSA25519-SHA512/wei25519 323", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_323_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_323_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_323_test_vectors_message, .msglen = sizeof(ed25519_323_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_323_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_323_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_324_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_324_test_vectors_message[] = { 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, }; static const u8 ed25519_324_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_324_test_case = { .name = "EDDSA25519-SHA512/wei25519 324", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_324_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_324_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_324_test_vectors_message, .msglen = sizeof(ed25519_324_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_324_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_324_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_325_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_325_test_vectors_message[] = { 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, }; static const u8 ed25519_325_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_325_test_case = { .name = "EDDSA25519-SHA512/wei25519 325", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_325_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_325_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_325_test_vectors_message, .msglen = sizeof(ed25519_325_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_325_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_325_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_326_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_326_test_vectors_message[] = { 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, }; static const u8 ed25519_326_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_326_test_case = { .name = "EDDSA25519-SHA512/wei25519 326", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_326_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_326_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_326_test_vectors_message, .msglen = sizeof(ed25519_326_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_326_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_326_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_327_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_327_test_vectors_message[] = { 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, }; static const u8 ed25519_327_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_327_test_case = { .name = "EDDSA25519-SHA512/wei25519 327", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_327_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_327_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_327_test_vectors_message, .msglen = sizeof(ed25519_327_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_327_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_327_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_328_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_328_test_vectors_message[] = { 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, }; static const u8 ed25519_328_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_328_test_case = { .name = "EDDSA25519-SHA512/wei25519 328", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_328_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_328_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_328_test_vectors_message, .msglen = sizeof(ed25519_328_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_328_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_328_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_329_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_329_test_vectors_message[] = { 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, }; static const u8 ed25519_329_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_329_test_case = { .name = "EDDSA25519-SHA512/wei25519 329", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_329_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_329_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_329_test_vectors_message, .msglen = sizeof(ed25519_329_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_329_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_329_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_330_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_330_test_vectors_message[] = { 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, }; static const u8 ed25519_330_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_330_test_case = { .name = "EDDSA25519-SHA512/wei25519 330", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_330_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_330_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_330_test_vectors_message, .msglen = sizeof(ed25519_330_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_330_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_330_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_331_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_331_test_vectors_message[] = { 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, }; static const u8 ed25519_331_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_331_test_case = { .name = "EDDSA25519-SHA512/wei25519 331", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_331_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_331_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_331_test_vectors_message, .msglen = sizeof(ed25519_331_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_331_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_331_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_332_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_332_test_vectors_message[] = { 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, }; static const u8 ed25519_332_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_332_test_case = { .name = "EDDSA25519-SHA512/wei25519 332", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_332_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_332_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_332_test_vectors_message, .msglen = sizeof(ed25519_332_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_332_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_332_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_333_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_333_test_vectors_message[] = { 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, }; static const u8 ed25519_333_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_333_test_case = { .name = "EDDSA25519-SHA512/wei25519 333", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_333_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_333_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_333_test_vectors_message, .msglen = sizeof(ed25519_333_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_333_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_333_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_334_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_334_test_vectors_message[] = { 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, }; static const u8 ed25519_334_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_334_test_case = { .name = "EDDSA25519-SHA512/wei25519 334", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_334_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_334_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_334_test_vectors_message, .msglen = sizeof(ed25519_334_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_334_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_334_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_335_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_335_test_vectors_message[] = { 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, }; static const u8 ed25519_335_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_335_test_case = { .name = "EDDSA25519-SHA512/wei25519 335", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_335_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_335_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_335_test_vectors_message, .msglen = sizeof(ed25519_335_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_335_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_335_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_336_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_336_test_vectors_message[] = { 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, }; static const u8 ed25519_336_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_336_test_case = { .name = "EDDSA25519-SHA512/wei25519 336", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_336_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_336_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_336_test_vectors_message, .msglen = sizeof(ed25519_336_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_336_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_336_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_337_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_337_test_vectors_message[] = { 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, }; static const u8 ed25519_337_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_337_test_case = { .name = "EDDSA25519-SHA512/wei25519 337", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_337_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_337_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_337_test_vectors_message, .msglen = sizeof(ed25519_337_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_337_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_337_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_338_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_338_test_vectors_message[] = { 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, }; static const u8 ed25519_338_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_338_test_case = { .name = "EDDSA25519-SHA512/wei25519 338", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_338_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_338_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_338_test_vectors_message, .msglen = sizeof(ed25519_338_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_338_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_338_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_339_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_339_test_vectors_message[] = { 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, }; static const u8 ed25519_339_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_339_test_case = { .name = "EDDSA25519-SHA512/wei25519 339", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_339_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_339_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_339_test_vectors_message, .msglen = sizeof(ed25519_339_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_339_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_339_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_340_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_340_test_vectors_message[] = { 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, }; static const u8 ed25519_340_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_340_test_case = { .name = "EDDSA25519-SHA512/wei25519 340", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_340_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_340_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_340_test_vectors_message, .msglen = sizeof(ed25519_340_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_340_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_340_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_341_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_341_test_vectors_message[] = { 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, }; static const u8 ed25519_341_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_341_test_case = { .name = "EDDSA25519-SHA512/wei25519 341", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_341_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_341_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_341_test_vectors_message, .msglen = sizeof(ed25519_341_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_341_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_341_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_342_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_342_test_vectors_message[] = { 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, }; static const u8 ed25519_342_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_342_test_case = { .name = "EDDSA25519-SHA512/wei25519 342", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_342_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_342_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_342_test_vectors_message, .msglen = sizeof(ed25519_342_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_342_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_342_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_343_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_343_test_vectors_message[] = { 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, }; static const u8 ed25519_343_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_343_test_case = { .name = "EDDSA25519-SHA512/wei25519 343", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_343_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_343_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_343_test_vectors_message, .msglen = sizeof(ed25519_343_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_343_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_343_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_344_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_344_test_vectors_message[] = { 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, }; static const u8 ed25519_344_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_344_test_case = { .name = "EDDSA25519-SHA512/wei25519 344", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_344_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_344_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_344_test_vectors_message, .msglen = sizeof(ed25519_344_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_344_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_344_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_345_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_345_test_vectors_message[] = { 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, }; static const u8 ed25519_345_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_345_test_case = { .name = "EDDSA25519-SHA512/wei25519 345", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_345_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_345_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_345_test_vectors_message, .msglen = sizeof(ed25519_345_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_345_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_345_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_346_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_346_test_vectors_message[] = { 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, }; static const u8 ed25519_346_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_346_test_case = { .name = "EDDSA25519-SHA512/wei25519 346", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_346_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_346_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_346_test_vectors_message, .msglen = sizeof(ed25519_346_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_346_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_346_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_347_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_347_test_vectors_message[] = { 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, }; static const u8 ed25519_347_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_347_test_case = { .name = "EDDSA25519-SHA512/wei25519 347", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_347_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_347_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_347_test_vectors_message, .msglen = sizeof(ed25519_347_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_347_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_347_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_348_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_348_test_vectors_message[] = { 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, }; static const u8 ed25519_348_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_348_test_case = { .name = "EDDSA25519-SHA512/wei25519 348", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_348_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_348_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_348_test_vectors_message, .msglen = sizeof(ed25519_348_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_348_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_348_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_349_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_349_test_vectors_message[] = { 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, }; static const u8 ed25519_349_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_349_test_case = { .name = "EDDSA25519-SHA512/wei25519 349", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_349_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_349_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_349_test_vectors_message, .msglen = sizeof(ed25519_349_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_349_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_349_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_350_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_350_test_vectors_message[] = { 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, }; static const u8 ed25519_350_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_350_test_case = { .name = "EDDSA25519-SHA512/wei25519 350", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_350_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_350_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_350_test_vectors_message, .msglen = sizeof(ed25519_350_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_350_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_350_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_351_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_351_test_vectors_message[] = { 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, }; static const u8 ed25519_351_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_351_test_case = { .name = "EDDSA25519-SHA512/wei25519 351", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_351_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_351_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_351_test_vectors_message, .msglen = sizeof(ed25519_351_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_351_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_351_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_352_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_352_test_vectors_message[] = { 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, }; static const u8 ed25519_352_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_352_test_case = { .name = "EDDSA25519-SHA512/wei25519 352", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_352_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_352_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_352_test_vectors_message, .msglen = sizeof(ed25519_352_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_352_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_352_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_353_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_353_test_vectors_message[] = { 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, }; static const u8 ed25519_353_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_353_test_case = { .name = "EDDSA25519-SHA512/wei25519 353", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_353_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_353_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_353_test_vectors_message, .msglen = sizeof(ed25519_353_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_353_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_353_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_354_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_354_test_vectors_message[] = { 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, }; static const u8 ed25519_354_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_354_test_case = { .name = "EDDSA25519-SHA512/wei25519 354", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_354_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_354_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_354_test_vectors_message, .msglen = sizeof(ed25519_354_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_354_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_354_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_355_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_355_test_vectors_message[] = { 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, }; static const u8 ed25519_355_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_355_test_case = { .name = "EDDSA25519-SHA512/wei25519 355", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_355_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_355_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_355_test_vectors_message, .msglen = sizeof(ed25519_355_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_355_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_355_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_356_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_356_test_vectors_message[] = { 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, }; static const u8 ed25519_356_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_356_test_case = { .name = "EDDSA25519-SHA512/wei25519 356", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_356_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_356_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_356_test_vectors_message, .msglen = sizeof(ed25519_356_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_356_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_356_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_357_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_357_test_vectors_message[] = { 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, }; static const u8 ed25519_357_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_357_test_case = { .name = "EDDSA25519-SHA512/wei25519 357", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_357_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_357_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_357_test_vectors_message, .msglen = sizeof(ed25519_357_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_357_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_357_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_358_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_358_test_vectors_message[] = { 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, }; static const u8 ed25519_358_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_358_test_case = { .name = "EDDSA25519-SHA512/wei25519 358", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_358_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_358_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_358_test_vectors_message, .msglen = sizeof(ed25519_358_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_358_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_358_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_359_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_359_test_vectors_message[] = { 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, }; static const u8 ed25519_359_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_359_test_case = { .name = "EDDSA25519-SHA512/wei25519 359", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_359_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_359_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_359_test_vectors_message, .msglen = sizeof(ed25519_359_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_359_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_359_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_360_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_360_test_vectors_message[] = { 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, }; static const u8 ed25519_360_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_360_test_case = { .name = "EDDSA25519-SHA512/wei25519 360", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_360_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_360_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_360_test_vectors_message, .msglen = sizeof(ed25519_360_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_360_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_360_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_361_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_361_test_vectors_message[] = { 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, }; static const u8 ed25519_361_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_361_test_case = { .name = "EDDSA25519-SHA512/wei25519 361", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_361_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_361_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_361_test_vectors_message, .msglen = sizeof(ed25519_361_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_361_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_361_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_362_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_362_test_vectors_message[] = { 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, }; static const u8 ed25519_362_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_362_test_case = { .name = "EDDSA25519-SHA512/wei25519 362", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_362_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_362_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_362_test_vectors_message, .msglen = sizeof(ed25519_362_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_362_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_362_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_363_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_363_test_vectors_message[] = { 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, }; static const u8 ed25519_363_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_363_test_case = { .name = "EDDSA25519-SHA512/wei25519 363", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_363_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_363_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_363_test_vectors_message, .msglen = sizeof(ed25519_363_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_363_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_363_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_364_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_364_test_vectors_message[] = { 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, }; static const u8 ed25519_364_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_364_test_case = { .name = "EDDSA25519-SHA512/wei25519 364", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_364_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_364_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_364_test_vectors_message, .msglen = sizeof(ed25519_364_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_364_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_364_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_365_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_365_test_vectors_message[] = { 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, }; static const u8 ed25519_365_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_365_test_case = { .name = "EDDSA25519-SHA512/wei25519 365", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_365_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_365_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_365_test_vectors_message, .msglen = sizeof(ed25519_365_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_365_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_365_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_366_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_366_test_vectors_message[] = { 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, }; static const u8 ed25519_366_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_366_test_case = { .name = "EDDSA25519-SHA512/wei25519 366", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_366_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_366_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_366_test_vectors_message, .msglen = sizeof(ed25519_366_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_366_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_366_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_367_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_367_test_vectors_message[] = { 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, }; static const u8 ed25519_367_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_367_test_case = { .name = "EDDSA25519-SHA512/wei25519 367", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_367_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_367_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_367_test_vectors_message, .msglen = sizeof(ed25519_367_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_367_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_367_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_368_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_368_test_vectors_message[] = { 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, }; static const u8 ed25519_368_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_368_test_case = { .name = "EDDSA25519-SHA512/wei25519 368", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_368_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_368_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_368_test_vectors_message, .msglen = sizeof(ed25519_368_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_368_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_368_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_369_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_369_test_vectors_message[] = { 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, }; static const u8 ed25519_369_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_369_test_case = { .name = "EDDSA25519-SHA512/wei25519 369", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_369_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_369_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_369_test_vectors_message, .msglen = sizeof(ed25519_369_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_369_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_369_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_370_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_370_test_vectors_message[] = { 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, }; static const u8 ed25519_370_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_370_test_case = { .name = "EDDSA25519-SHA512/wei25519 370", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_370_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_370_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_370_test_vectors_message, .msglen = sizeof(ed25519_370_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_370_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_370_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_371_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_371_test_vectors_message[] = { 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, }; static const u8 ed25519_371_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_371_test_case = { .name = "EDDSA25519-SHA512/wei25519 371", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_371_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_371_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_371_test_vectors_message, .msglen = sizeof(ed25519_371_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_371_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_371_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_372_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_372_test_vectors_message[] = { 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, }; static const u8 ed25519_372_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_372_test_case = { .name = "EDDSA25519-SHA512/wei25519 372", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_372_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_372_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_372_test_vectors_message, .msglen = sizeof(ed25519_372_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_372_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_372_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_373_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_373_test_vectors_message[] = { 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, }; static const u8 ed25519_373_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_373_test_case = { .name = "EDDSA25519-SHA512/wei25519 373", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_373_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_373_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_373_test_vectors_message, .msglen = sizeof(ed25519_373_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_373_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_373_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_374_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_374_test_vectors_message[] = { 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, }; static const u8 ed25519_374_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_374_test_case = { .name = "EDDSA25519-SHA512/wei25519 374", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_374_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_374_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_374_test_vectors_message, .msglen = sizeof(ed25519_374_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_374_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_374_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_375_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_375_test_vectors_message[] = { 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, }; static const u8 ed25519_375_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_375_test_case = { .name = "EDDSA25519-SHA512/wei25519 375", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_375_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_375_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_375_test_vectors_message, .msglen = sizeof(ed25519_375_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_375_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_375_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_376_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_376_test_vectors_message[] = { 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, }; static const u8 ed25519_376_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_376_test_case = { .name = "EDDSA25519-SHA512/wei25519 376", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_376_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_376_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_376_test_vectors_message, .msglen = sizeof(ed25519_376_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_376_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_376_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_377_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_377_test_vectors_message[] = { 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, }; static const u8 ed25519_377_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_377_test_case = { .name = "EDDSA25519-SHA512/wei25519 377", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_377_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_377_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_377_test_vectors_message, .msglen = sizeof(ed25519_377_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_377_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_377_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_378_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_378_test_vectors_message[] = { 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, }; static const u8 ed25519_378_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_378_test_case = { .name = "EDDSA25519-SHA512/wei25519 378", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_378_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_378_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_378_test_vectors_message, .msglen = sizeof(ed25519_378_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_378_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_378_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_379_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_379_test_vectors_message[] = { 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, }; static const u8 ed25519_379_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_379_test_case = { .name = "EDDSA25519-SHA512/wei25519 379", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_379_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_379_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_379_test_vectors_message, .msglen = sizeof(ed25519_379_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_379_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_379_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_380_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_380_test_vectors_message[] = { 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, }; static const u8 ed25519_380_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_380_test_case = { .name = "EDDSA25519-SHA512/wei25519 380", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_380_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_380_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_380_test_vectors_message, .msglen = sizeof(ed25519_380_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_380_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_380_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_381_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_381_test_vectors_message[] = { 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, }; static const u8 ed25519_381_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_381_test_case = { .name = "EDDSA25519-SHA512/wei25519 381", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_381_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_381_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_381_test_vectors_message, .msglen = sizeof(ed25519_381_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_381_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_381_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_382_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_382_test_vectors_message[] = { 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, }; static const u8 ed25519_382_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_382_test_case = { .name = "EDDSA25519-SHA512/wei25519 382", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_382_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_382_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_382_test_vectors_message, .msglen = sizeof(ed25519_382_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_382_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_382_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_383_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_383_test_vectors_message[] = { 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, }; static const u8 ed25519_383_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_383_test_case = { .name = "EDDSA25519-SHA512/wei25519 383", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_383_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_383_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_383_test_vectors_message, .msglen = sizeof(ed25519_383_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_383_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_383_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_384_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_384_test_vectors_message[] = { 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, }; static const u8 ed25519_384_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_384_test_case = { .name = "EDDSA25519-SHA512/wei25519 384", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_384_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_384_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_384_test_vectors_message, .msglen = sizeof(ed25519_384_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_384_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_384_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_385_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_385_test_vectors_message[] = { 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, }; static const u8 ed25519_385_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_385_test_case = { .name = "EDDSA25519-SHA512/wei25519 385", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_385_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_385_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_385_test_vectors_message, .msglen = sizeof(ed25519_385_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_385_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_385_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_386_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_386_test_vectors_message[] = { 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, }; static const u8 ed25519_386_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_386_test_case = { .name = "EDDSA25519-SHA512/wei25519 386", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_386_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_386_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_386_test_vectors_message, .msglen = sizeof(ed25519_386_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_386_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_386_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_387_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_387_test_vectors_message[] = { 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, }; static const u8 ed25519_387_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_387_test_case = { .name = "EDDSA25519-SHA512/wei25519 387", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_387_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_387_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_387_test_vectors_message, .msglen = sizeof(ed25519_387_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_387_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_387_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_388_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_388_test_vectors_message[] = { 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, }; static const u8 ed25519_388_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_388_test_case = { .name = "EDDSA25519-SHA512/wei25519 388", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_388_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_388_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_388_test_vectors_message, .msglen = sizeof(ed25519_388_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_388_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_388_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_389_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_389_test_vectors_message[] = { 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, }; static const u8 ed25519_389_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_389_test_case = { .name = "EDDSA25519-SHA512/wei25519 389", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_389_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_389_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_389_test_vectors_message, .msglen = sizeof(ed25519_389_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_389_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_389_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_390_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_390_test_vectors_message[] = { 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, }; static const u8 ed25519_390_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_390_test_case = { .name = "EDDSA25519-SHA512/wei25519 390", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_390_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_390_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_390_test_vectors_message, .msglen = sizeof(ed25519_390_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_390_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_390_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_391_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_391_test_vectors_message[] = { 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, }; static const u8 ed25519_391_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_391_test_case = { .name = "EDDSA25519-SHA512/wei25519 391", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_391_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_391_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_391_test_vectors_message, .msglen = sizeof(ed25519_391_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_391_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_391_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_392_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_392_test_vectors_message[] = { 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, }; static const u8 ed25519_392_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_392_test_case = { .name = "EDDSA25519-SHA512/wei25519 392", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_392_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_392_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_392_test_vectors_message, .msglen = sizeof(ed25519_392_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_392_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_392_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_393_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_393_test_vectors_message[] = { 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, }; static const u8 ed25519_393_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_393_test_case = { .name = "EDDSA25519-SHA512/wei25519 393", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_393_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_393_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_393_test_vectors_message, .msglen = sizeof(ed25519_393_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_393_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_393_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_394_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_394_test_vectors_message[] = { 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, }; static const u8 ed25519_394_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_394_test_case = { .name = "EDDSA25519-SHA512/wei25519 394", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_394_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_394_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_394_test_vectors_message, .msglen = sizeof(ed25519_394_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_394_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_394_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_395_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_395_test_vectors_message[] = { 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, }; static const u8 ed25519_395_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_395_test_case = { .name = "EDDSA25519-SHA512/wei25519 395", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_395_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_395_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_395_test_vectors_message, .msglen = sizeof(ed25519_395_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_395_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_395_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_396_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_396_test_vectors_message[] = { 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, }; static const u8 ed25519_396_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_396_test_case = { .name = "EDDSA25519-SHA512/wei25519 396", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_396_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_396_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_396_test_vectors_message, .msglen = sizeof(ed25519_396_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_396_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_396_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_397_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_397_test_vectors_message[] = { 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, }; static const u8 ed25519_397_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_397_test_case = { .name = "EDDSA25519-SHA512/wei25519 397", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_397_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_397_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_397_test_vectors_message, .msglen = sizeof(ed25519_397_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_397_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_397_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_398_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_398_test_vectors_message[] = { 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, }; static const u8 ed25519_398_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_398_test_case = { .name = "EDDSA25519-SHA512/wei25519 398", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_398_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_398_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_398_test_vectors_message, .msglen = sizeof(ed25519_398_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_398_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_398_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_399_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_399_test_vectors_message[] = { 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, }; static const u8 ed25519_399_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_399_test_case = { .name = "EDDSA25519-SHA512/wei25519 399", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_399_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_399_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_399_test_vectors_message, .msglen = sizeof(ed25519_399_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_399_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_399_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_400_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_400_test_vectors_message[] = { 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, }; static const u8 ed25519_400_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_400_test_case = { .name = "EDDSA25519-SHA512/wei25519 400", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_400_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_400_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_400_test_vectors_message, .msglen = sizeof(ed25519_400_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_400_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_400_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_401_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_401_test_vectors_message[] = { 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, }; static const u8 ed25519_401_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_401_test_case = { .name = "EDDSA25519-SHA512/wei25519 401", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_401_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_401_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_401_test_vectors_message, .msglen = sizeof(ed25519_401_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_401_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_401_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_402_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_402_test_vectors_message[] = { 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, }; static const u8 ed25519_402_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_402_test_case = { .name = "EDDSA25519-SHA512/wei25519 402", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_402_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_402_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_402_test_vectors_message, .msglen = sizeof(ed25519_402_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_402_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_402_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_403_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_403_test_vectors_message[] = { 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, }; static const u8 ed25519_403_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_403_test_case = { .name = "EDDSA25519-SHA512/wei25519 403", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_403_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_403_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_403_test_vectors_message, .msglen = sizeof(ed25519_403_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_403_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_403_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_404_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_404_test_vectors_message[] = { 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, }; static const u8 ed25519_404_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_404_test_case = { .name = "EDDSA25519-SHA512/wei25519 404", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_404_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_404_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_404_test_vectors_message, .msglen = sizeof(ed25519_404_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_404_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_404_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_405_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_405_test_vectors_message[] = { 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, }; static const u8 ed25519_405_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_405_test_case = { .name = "EDDSA25519-SHA512/wei25519 405", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_405_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_405_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_405_test_vectors_message, .msglen = sizeof(ed25519_405_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_405_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_405_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_406_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_406_test_vectors_message[] = { 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, }; static const u8 ed25519_406_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_406_test_case = { .name = "EDDSA25519-SHA512/wei25519 406", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_406_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_406_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_406_test_vectors_message, .msglen = sizeof(ed25519_406_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_406_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_406_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_407_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_407_test_vectors_message[] = { 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, }; static const u8 ed25519_407_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_407_test_case = { .name = "EDDSA25519-SHA512/wei25519 407", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_407_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_407_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_407_test_vectors_message, .msglen = sizeof(ed25519_407_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_407_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_407_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_408_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_408_test_vectors_message[] = { 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, }; static const u8 ed25519_408_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_408_test_case = { .name = "EDDSA25519-SHA512/wei25519 408", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_408_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_408_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_408_test_vectors_message, .msglen = sizeof(ed25519_408_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_408_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_408_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_409_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_409_test_vectors_message[] = { 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, }; static const u8 ed25519_409_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_409_test_case = { .name = "EDDSA25519-SHA512/wei25519 409", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_409_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_409_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_409_test_vectors_message, .msglen = sizeof(ed25519_409_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_409_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_409_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_410_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_410_test_vectors_message[] = { 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, }; static const u8 ed25519_410_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_410_test_case = { .name = "EDDSA25519-SHA512/wei25519 410", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_410_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_410_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_410_test_vectors_message, .msglen = sizeof(ed25519_410_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_410_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_410_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_411_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_411_test_vectors_message[] = { 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, }; static const u8 ed25519_411_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_411_test_case = { .name = "EDDSA25519-SHA512/wei25519 411", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_411_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_411_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_411_test_vectors_message, .msglen = sizeof(ed25519_411_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_411_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_411_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_412_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_412_test_vectors_message[] = { 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, }; static const u8 ed25519_412_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_412_test_case = { .name = "EDDSA25519-SHA512/wei25519 412", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_412_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_412_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_412_test_vectors_message, .msglen = sizeof(ed25519_412_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_412_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_412_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_413_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_413_test_vectors_message[] = { 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, }; static const u8 ed25519_413_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_413_test_case = { .name = "EDDSA25519-SHA512/wei25519 413", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_413_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_413_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_413_test_vectors_message, .msglen = sizeof(ed25519_413_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_413_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_413_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_414_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_414_test_vectors_message[] = { 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, }; static const u8 ed25519_414_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_414_test_case = { .name = "EDDSA25519-SHA512/wei25519 414", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_414_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_414_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_414_test_vectors_message, .msglen = sizeof(ed25519_414_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_414_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_414_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_415_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_415_test_vectors_message[] = { 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, }; static const u8 ed25519_415_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_415_test_case = { .name = "EDDSA25519-SHA512/wei25519 415", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_415_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_415_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_415_test_vectors_message, .msglen = sizeof(ed25519_415_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_415_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_415_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_416_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_416_test_vectors_message[] = { 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, }; static const u8 ed25519_416_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_416_test_case = { .name = "EDDSA25519-SHA512/wei25519 416", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_416_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_416_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_416_test_vectors_message, .msglen = sizeof(ed25519_416_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_416_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_416_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_417_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_417_test_vectors_message[] = { 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, }; static const u8 ed25519_417_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_417_test_case = { .name = "EDDSA25519-SHA512/wei25519 417", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_417_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_417_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_417_test_vectors_message, .msglen = sizeof(ed25519_417_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_417_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_417_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_418_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_418_test_vectors_message[] = { 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, }; static const u8 ed25519_418_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_418_test_case = { .name = "EDDSA25519-SHA512/wei25519 418", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_418_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_418_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_418_test_vectors_message, .msglen = sizeof(ed25519_418_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_418_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_418_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_419_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_419_test_vectors_message[] = { 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, }; static const u8 ed25519_419_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_419_test_case = { .name = "EDDSA25519-SHA512/wei25519 419", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_419_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_419_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_419_test_vectors_message, .msglen = sizeof(ed25519_419_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_419_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_419_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_420_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_420_test_vectors_message[] = { 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, }; static const u8 ed25519_420_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_420_test_case = { .name = "EDDSA25519-SHA512/wei25519 420", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_420_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_420_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_420_test_vectors_message, .msglen = sizeof(ed25519_420_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_420_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_420_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_421_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_421_test_vectors_message[] = { 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, }; static const u8 ed25519_421_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_421_test_case = { .name = "EDDSA25519-SHA512/wei25519 421", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_421_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_421_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_421_test_vectors_message, .msglen = sizeof(ed25519_421_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_421_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_421_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_422_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_422_test_vectors_message[] = { 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, }; static const u8 ed25519_422_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_422_test_case = { .name = "EDDSA25519-SHA512/wei25519 422", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_422_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_422_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_422_test_vectors_message, .msglen = sizeof(ed25519_422_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_422_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_422_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_423_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_423_test_vectors_message[] = { 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, }; static const u8 ed25519_423_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_423_test_case = { .name = "EDDSA25519-SHA512/wei25519 423", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_423_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_423_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_423_test_vectors_message, .msglen = sizeof(ed25519_423_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_423_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_423_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_424_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_424_test_vectors_message[] = { 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, }; static const u8 ed25519_424_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_424_test_case = { .name = "EDDSA25519-SHA512/wei25519 424", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_424_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_424_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_424_test_vectors_message, .msglen = sizeof(ed25519_424_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_424_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_424_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_425_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_425_test_vectors_message[] = { 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, }; static const u8 ed25519_425_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_425_test_case = { .name = "EDDSA25519-SHA512/wei25519 425", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_425_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_425_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_425_test_vectors_message, .msglen = sizeof(ed25519_425_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_425_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_425_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_426_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_426_test_vectors_message[] = { 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, }; static const u8 ed25519_426_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_426_test_case = { .name = "EDDSA25519-SHA512/wei25519 426", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_426_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_426_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_426_test_vectors_message, .msglen = sizeof(ed25519_426_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_426_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_426_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_427_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_427_test_vectors_message[] = { 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, }; static const u8 ed25519_427_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_427_test_case = { .name = "EDDSA25519-SHA512/wei25519 427", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_427_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_427_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_427_test_vectors_message, .msglen = sizeof(ed25519_427_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_427_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_427_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_428_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_428_test_vectors_message[] = { 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, }; static const u8 ed25519_428_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_428_test_case = { .name = "EDDSA25519-SHA512/wei25519 428", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_428_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_428_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_428_test_vectors_message, .msglen = sizeof(ed25519_428_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_428_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_428_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_429_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_429_test_vectors_message[] = { 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, }; static const u8 ed25519_429_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_429_test_case = { .name = "EDDSA25519-SHA512/wei25519 429", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_429_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_429_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_429_test_vectors_message, .msglen = sizeof(ed25519_429_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_429_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_429_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_430_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_430_test_vectors_message[] = { 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, }; static const u8 ed25519_430_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_430_test_case = { .name = "EDDSA25519-SHA512/wei25519 430", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_430_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_430_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_430_test_vectors_message, .msglen = sizeof(ed25519_430_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_430_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_430_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_431_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_431_test_vectors_message[] = { 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, }; static const u8 ed25519_431_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_431_test_case = { .name = "EDDSA25519-SHA512/wei25519 431", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_431_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_431_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_431_test_vectors_message, .msglen = sizeof(ed25519_431_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_431_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_431_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_432_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_432_test_vectors_message[] = { 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, }; static const u8 ed25519_432_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_432_test_case = { .name = "EDDSA25519-SHA512/wei25519 432", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_432_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_432_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_432_test_vectors_message, .msglen = sizeof(ed25519_432_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_432_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_432_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_433_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_433_test_vectors_message[] = { 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, }; static const u8 ed25519_433_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_433_test_case = { .name = "EDDSA25519-SHA512/wei25519 433", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_433_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_433_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_433_test_vectors_message, .msglen = sizeof(ed25519_433_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_433_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_433_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_434_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_434_test_vectors_message[] = { 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, }; static const u8 ed25519_434_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_434_test_case = { .name = "EDDSA25519-SHA512/wei25519 434", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_434_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_434_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_434_test_vectors_message, .msglen = sizeof(ed25519_434_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_434_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_434_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_435_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_435_test_vectors_message[] = { 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, }; static const u8 ed25519_435_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_435_test_case = { .name = "EDDSA25519-SHA512/wei25519 435", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_435_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_435_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_435_test_vectors_message, .msglen = sizeof(ed25519_435_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_435_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_435_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_436_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_436_test_vectors_message[] = { 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, }; static const u8 ed25519_436_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_436_test_case = { .name = "EDDSA25519-SHA512/wei25519 436", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_436_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_436_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_436_test_vectors_message, .msglen = sizeof(ed25519_436_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_436_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_436_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_437_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_437_test_vectors_message[] = { 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, }; static const u8 ed25519_437_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_437_test_case = { .name = "EDDSA25519-SHA512/wei25519 437", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_437_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_437_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_437_test_vectors_message, .msglen = sizeof(ed25519_437_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_437_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_437_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_438_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_438_test_vectors_message[] = { 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, }; static const u8 ed25519_438_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_438_test_case = { .name = "EDDSA25519-SHA512/wei25519 438", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_438_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_438_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_438_test_vectors_message, .msglen = sizeof(ed25519_438_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_438_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_438_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_439_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_439_test_vectors_message[] = { 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, }; static const u8 ed25519_439_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_439_test_case = { .name = "EDDSA25519-SHA512/wei25519 439", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_439_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_439_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_439_test_vectors_message, .msglen = sizeof(ed25519_439_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_439_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_439_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_440_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_440_test_vectors_message[] = { 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, }; static const u8 ed25519_440_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_440_test_case = { .name = "EDDSA25519-SHA512/wei25519 440", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_440_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_440_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_440_test_vectors_message, .msglen = sizeof(ed25519_440_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_440_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_440_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_441_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_441_test_vectors_message[] = { 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, }; static const u8 ed25519_441_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_441_test_case = { .name = "EDDSA25519-SHA512/wei25519 441", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_441_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_441_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_441_test_vectors_message, .msglen = sizeof(ed25519_441_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_441_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_441_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_442_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_442_test_vectors_message[] = { 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, }; static const u8 ed25519_442_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_442_test_case = { .name = "EDDSA25519-SHA512/wei25519 442", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_442_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_442_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_442_test_vectors_message, .msglen = sizeof(ed25519_442_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_442_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_442_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_443_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_443_test_vectors_message[] = { 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, }; static const u8 ed25519_443_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_443_test_case = { .name = "EDDSA25519-SHA512/wei25519 443", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_443_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_443_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_443_test_vectors_message, .msglen = sizeof(ed25519_443_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_443_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_443_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_444_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_444_test_vectors_message[] = { 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, }; static const u8 ed25519_444_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_444_test_case = { .name = "EDDSA25519-SHA512/wei25519 444", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_444_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_444_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_444_test_vectors_message, .msglen = sizeof(ed25519_444_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_444_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_444_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_445_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_445_test_vectors_message[] = { 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, }; static const u8 ed25519_445_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_445_test_case = { .name = "EDDSA25519-SHA512/wei25519 445", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_445_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_445_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_445_test_vectors_message, .msglen = sizeof(ed25519_445_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_445_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_445_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_446_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_446_test_vectors_message[] = { 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, }; static const u8 ed25519_446_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_446_test_case = { .name = "EDDSA25519-SHA512/wei25519 446", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_446_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_446_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_446_test_vectors_message, .msglen = sizeof(ed25519_446_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_446_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_446_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_447_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_447_test_vectors_message[] = { 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, }; static const u8 ed25519_447_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_447_test_case = { .name = "EDDSA25519-SHA512/wei25519 447", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_447_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_447_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_447_test_vectors_message, .msglen = sizeof(ed25519_447_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_447_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_447_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_448_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_448_test_vectors_message[] = { 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, }; static const u8 ed25519_448_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_448_test_case = { .name = "EDDSA25519-SHA512/wei25519 448", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_448_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_448_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_448_test_vectors_message, .msglen = sizeof(ed25519_448_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_448_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_448_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_449_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_449_test_vectors_message[] = { 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, }; static const u8 ed25519_449_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_449_test_case = { .name = "EDDSA25519-SHA512/wei25519 449", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_449_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_449_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_449_test_vectors_message, .msglen = sizeof(ed25519_449_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_449_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_449_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_450_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_450_test_vectors_message[] = { 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, }; static const u8 ed25519_450_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_450_test_case = { .name = "EDDSA25519-SHA512/wei25519 450", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_450_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_450_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_450_test_vectors_message, .msglen = sizeof(ed25519_450_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_450_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_450_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_451_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_451_test_vectors_message[] = { 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, }; static const u8 ed25519_451_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_451_test_case = { .name = "EDDSA25519-SHA512/wei25519 451", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_451_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_451_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_451_test_vectors_message, .msglen = sizeof(ed25519_451_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_451_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_451_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_452_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_452_test_vectors_message[] = { 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, }; static const u8 ed25519_452_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_452_test_case = { .name = "EDDSA25519-SHA512/wei25519 452", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_452_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_452_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_452_test_vectors_message, .msglen = sizeof(ed25519_452_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_452_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_452_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_453_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_453_test_vectors_message[] = { 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, }; static const u8 ed25519_453_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_453_test_case = { .name = "EDDSA25519-SHA512/wei25519 453", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_453_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_453_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_453_test_vectors_message, .msglen = sizeof(ed25519_453_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_453_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_453_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_454_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_454_test_vectors_message[] = { 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, }; static const u8 ed25519_454_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_454_test_case = { .name = "EDDSA25519-SHA512/wei25519 454", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_454_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_454_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_454_test_vectors_message, .msglen = sizeof(ed25519_454_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_454_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_454_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_455_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_455_test_vectors_message[] = { 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, }; static const u8 ed25519_455_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_455_test_case = { .name = "EDDSA25519-SHA512/wei25519 455", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_455_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_455_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_455_test_vectors_message, .msglen = sizeof(ed25519_455_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_455_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_455_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_456_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_456_test_vectors_message[] = { 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, }; static const u8 ed25519_456_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_456_test_case = { .name = "EDDSA25519-SHA512/wei25519 456", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_456_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_456_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_456_test_vectors_message, .msglen = sizeof(ed25519_456_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_456_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_456_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_457_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_457_test_vectors_message[] = { 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, }; static const u8 ed25519_457_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_457_test_case = { .name = "EDDSA25519-SHA512/wei25519 457", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_457_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_457_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_457_test_vectors_message, .msglen = sizeof(ed25519_457_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_457_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_457_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_458_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_458_test_vectors_message[] = { 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, }; static const u8 ed25519_458_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_458_test_case = { .name = "EDDSA25519-SHA512/wei25519 458", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_458_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_458_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_458_test_vectors_message, .msglen = sizeof(ed25519_458_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_458_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_458_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_459_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_459_test_vectors_message[] = { 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, }; static const u8 ed25519_459_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_459_test_case = { .name = "EDDSA25519-SHA512/wei25519 459", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_459_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_459_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_459_test_vectors_message, .msglen = sizeof(ed25519_459_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_459_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_459_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_460_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_460_test_vectors_message[] = { 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, }; static const u8 ed25519_460_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_460_test_case = { .name = "EDDSA25519-SHA512/wei25519 460", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_460_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_460_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_460_test_vectors_message, .msglen = sizeof(ed25519_460_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_460_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_460_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_461_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_461_test_vectors_message[] = { 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, }; static const u8 ed25519_461_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_461_test_case = { .name = "EDDSA25519-SHA512/wei25519 461", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_461_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_461_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_461_test_vectors_message, .msglen = sizeof(ed25519_461_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_461_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_461_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_462_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_462_test_vectors_message[] = { 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, }; static const u8 ed25519_462_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_462_test_case = { .name = "EDDSA25519-SHA512/wei25519 462", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_462_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_462_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_462_test_vectors_message, .msglen = sizeof(ed25519_462_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_462_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_462_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_463_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_463_test_vectors_message[] = { 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, }; static const u8 ed25519_463_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_463_test_case = { .name = "EDDSA25519-SHA512/wei25519 463", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_463_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_463_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_463_test_vectors_message, .msglen = sizeof(ed25519_463_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_463_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_463_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_464_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_464_test_vectors_message[] = { 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, }; static const u8 ed25519_464_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_464_test_case = { .name = "EDDSA25519-SHA512/wei25519 464", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_464_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_464_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_464_test_vectors_message, .msglen = sizeof(ed25519_464_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_464_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_464_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_465_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_465_test_vectors_message[] = { 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, }; static const u8 ed25519_465_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_465_test_case = { .name = "EDDSA25519-SHA512/wei25519 465", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_465_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_465_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_465_test_vectors_message, .msglen = sizeof(ed25519_465_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_465_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_465_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_466_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_466_test_vectors_message[] = { 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, }; static const u8 ed25519_466_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_466_test_case = { .name = "EDDSA25519-SHA512/wei25519 466", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_466_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_466_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_466_test_vectors_message, .msglen = sizeof(ed25519_466_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_466_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_466_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_467_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_467_test_vectors_message[] = { 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, }; static const u8 ed25519_467_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_467_test_case = { .name = "EDDSA25519-SHA512/wei25519 467", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_467_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_467_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_467_test_vectors_message, .msglen = sizeof(ed25519_467_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_467_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_467_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_468_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_468_test_vectors_message[] = { 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, }; static const u8 ed25519_468_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_468_test_case = { .name = "EDDSA25519-SHA512/wei25519 468", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_468_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_468_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_468_test_vectors_message, .msglen = sizeof(ed25519_468_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_468_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_468_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_469_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_469_test_vectors_message[] = { 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, }; static const u8 ed25519_469_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_469_test_case = { .name = "EDDSA25519-SHA512/wei25519 469", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_469_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_469_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_469_test_vectors_message, .msglen = sizeof(ed25519_469_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_469_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_469_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_470_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_470_test_vectors_message[] = { 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, }; static const u8 ed25519_470_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_470_test_case = { .name = "EDDSA25519-SHA512/wei25519 470", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_470_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_470_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_470_test_vectors_message, .msglen = sizeof(ed25519_470_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_470_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_470_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_471_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_471_test_vectors_message[] = { 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, }; static const u8 ed25519_471_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_471_test_case = { .name = "EDDSA25519-SHA512/wei25519 471", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_471_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_471_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_471_test_vectors_message, .msglen = sizeof(ed25519_471_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_471_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_471_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_472_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_472_test_vectors_message[] = { 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, }; static const u8 ed25519_472_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_472_test_case = { .name = "EDDSA25519-SHA512/wei25519 472", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_472_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_472_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_472_test_vectors_message, .msglen = sizeof(ed25519_472_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_472_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_472_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_473_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_473_test_vectors_message[] = { 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, }; static const u8 ed25519_473_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_473_test_case = { .name = "EDDSA25519-SHA512/wei25519 473", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_473_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_473_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_473_test_vectors_message, .msglen = sizeof(ed25519_473_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_473_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_473_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_474_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_474_test_vectors_message[] = { 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, }; static const u8 ed25519_474_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_474_test_case = { .name = "EDDSA25519-SHA512/wei25519 474", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_474_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_474_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_474_test_vectors_message, .msglen = sizeof(ed25519_474_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_474_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_474_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_475_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_475_test_vectors_message[] = { 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, }; static const u8 ed25519_475_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_475_test_case = { .name = "EDDSA25519-SHA512/wei25519 475", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_475_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_475_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_475_test_vectors_message, .msglen = sizeof(ed25519_475_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_475_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_475_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_476_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_476_test_vectors_message[] = { 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, }; static const u8 ed25519_476_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_476_test_case = { .name = "EDDSA25519-SHA512/wei25519 476", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_476_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_476_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_476_test_vectors_message, .msglen = sizeof(ed25519_476_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_476_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_476_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_477_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_477_test_vectors_message[] = { 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, }; static const u8 ed25519_477_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_477_test_case = { .name = "EDDSA25519-SHA512/wei25519 477", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_477_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_477_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_477_test_vectors_message, .msglen = sizeof(ed25519_477_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_477_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_477_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_478_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_478_test_vectors_message[] = { 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, }; static const u8 ed25519_478_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_478_test_case = { .name = "EDDSA25519-SHA512/wei25519 478", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_478_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_478_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_478_test_vectors_message, .msglen = sizeof(ed25519_478_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_478_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_478_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_479_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_479_test_vectors_message[] = { 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, }; static const u8 ed25519_479_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_479_test_case = { .name = "EDDSA25519-SHA512/wei25519 479", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_479_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_479_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_479_test_vectors_message, .msglen = sizeof(ed25519_479_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_479_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_479_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_480_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_480_test_vectors_message[] = { 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, }; static const u8 ed25519_480_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_480_test_case = { .name = "EDDSA25519-SHA512/wei25519 480", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_480_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_480_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_480_test_vectors_message, .msglen = sizeof(ed25519_480_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_480_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_480_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_481_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_481_test_vectors_message[] = { 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, }; static const u8 ed25519_481_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_481_test_case = { .name = "EDDSA25519-SHA512/wei25519 481", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_481_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_481_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_481_test_vectors_message, .msglen = sizeof(ed25519_481_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_481_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_481_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_482_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_482_test_vectors_message[] = { 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, }; static const u8 ed25519_482_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_482_test_case = { .name = "EDDSA25519-SHA512/wei25519 482", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_482_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_482_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_482_test_vectors_message, .msglen = sizeof(ed25519_482_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_482_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_482_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_483_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_483_test_vectors_message[] = { 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, }; static const u8 ed25519_483_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_483_test_case = { .name = "EDDSA25519-SHA512/wei25519 483", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_483_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_483_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_483_test_vectors_message, .msglen = sizeof(ed25519_483_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_483_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_483_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_484_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_484_test_vectors_message[] = { 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, }; static const u8 ed25519_484_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_484_test_case = { .name = "EDDSA25519-SHA512/wei25519 484", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_484_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_484_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_484_test_vectors_message, .msglen = sizeof(ed25519_484_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_484_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_484_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_485_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_485_test_vectors_message[] = { 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, }; static const u8 ed25519_485_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_485_test_case = { .name = "EDDSA25519-SHA512/wei25519 485", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_485_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_485_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_485_test_vectors_message, .msglen = sizeof(ed25519_485_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_485_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_485_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_486_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_486_test_vectors_message[] = { 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, }; static const u8 ed25519_486_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_486_test_case = { .name = "EDDSA25519-SHA512/wei25519 486", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_486_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_486_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_486_test_vectors_message, .msglen = sizeof(ed25519_486_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_486_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_486_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_487_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_487_test_vectors_message[] = { 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, }; static const u8 ed25519_487_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_487_test_case = { .name = "EDDSA25519-SHA512/wei25519 487", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_487_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_487_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_487_test_vectors_message, .msglen = sizeof(ed25519_487_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_487_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_487_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_488_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_488_test_vectors_message[] = { 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, }; static const u8 ed25519_488_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_488_test_case = { .name = "EDDSA25519-SHA512/wei25519 488", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_488_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_488_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_488_test_vectors_message, .msglen = sizeof(ed25519_488_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_488_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_488_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_489_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_489_test_vectors_message[] = { 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, }; static const u8 ed25519_489_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_489_test_case = { .name = "EDDSA25519-SHA512/wei25519 489", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_489_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_489_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_489_test_vectors_message, .msglen = sizeof(ed25519_489_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_489_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_489_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_490_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_490_test_vectors_message[] = { 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, }; static const u8 ed25519_490_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_490_test_case = { .name = "EDDSA25519-SHA512/wei25519 490", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_490_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_490_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_490_test_vectors_message, .msglen = sizeof(ed25519_490_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_490_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_490_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_491_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_491_test_vectors_message[] = { 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, }; static const u8 ed25519_491_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_491_test_case = { .name = "EDDSA25519-SHA512/wei25519 491", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_491_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_491_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_491_test_vectors_message, .msglen = sizeof(ed25519_491_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_491_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_491_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_492_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_492_test_vectors_message[] = { 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, }; static const u8 ed25519_492_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_492_test_case = { .name = "EDDSA25519-SHA512/wei25519 492", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_492_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_492_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_492_test_vectors_message, .msglen = sizeof(ed25519_492_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_492_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_492_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_493_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_493_test_vectors_message[] = { 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, }; static const u8 ed25519_493_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_493_test_case = { .name = "EDDSA25519-SHA512/wei25519 493", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_493_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_493_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_493_test_vectors_message, .msglen = sizeof(ed25519_493_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_493_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_493_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_494_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_494_test_vectors_message[] = { 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, }; static const u8 ed25519_494_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_494_test_case = { .name = "EDDSA25519-SHA512/wei25519 494", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_494_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_494_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_494_test_vectors_message, .msglen = sizeof(ed25519_494_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_494_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_494_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_495_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_495_test_vectors_message[] = { 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, }; static const u8 ed25519_495_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_495_test_case = { .name = "EDDSA25519-SHA512/wei25519 495", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_495_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_495_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_495_test_vectors_message, .msglen = sizeof(ed25519_495_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_495_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_495_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_496_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_496_test_vectors_message[] = { 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, }; static const u8 ed25519_496_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_496_test_case = { .name = "EDDSA25519-SHA512/wei25519 496", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_496_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_496_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_496_test_vectors_message, .msglen = sizeof(ed25519_496_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_496_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_496_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_497_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_497_test_vectors_message[] = { 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, }; static const u8 ed25519_497_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_497_test_case = { .name = "EDDSA25519-SHA512/wei25519 497", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_497_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_497_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_497_test_vectors_message, .msglen = sizeof(ed25519_497_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_497_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_497_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_498_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_498_test_vectors_message[] = { 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, }; static const u8 ed25519_498_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_498_test_case = { .name = "EDDSA25519-SHA512/wei25519 498", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_498_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_498_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_498_test_vectors_message, .msglen = sizeof(ed25519_498_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_498_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_498_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_499_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_499_test_vectors_message[] = { 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, }; static const u8 ed25519_499_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_499_test_case = { .name = "EDDSA25519-SHA512/wei25519 499", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_499_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_499_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_499_test_vectors_message, .msglen = sizeof(ed25519_499_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_499_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_499_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_500_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_500_test_vectors_message[] = { 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, }; static const u8 ed25519_500_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_500_test_case = { .name = "EDDSA25519-SHA512/wei25519 500", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_500_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_500_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_500_test_vectors_message, .msglen = sizeof(ed25519_500_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_500_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_500_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_501_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_501_test_vectors_message[] = { 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, }; static const u8 ed25519_501_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_501_test_case = { .name = "EDDSA25519-SHA512/wei25519 501", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_501_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_501_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_501_test_vectors_message, .msglen = sizeof(ed25519_501_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_501_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_501_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_502_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_502_test_vectors_message[] = { 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, }; static const u8 ed25519_502_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_502_test_case = { .name = "EDDSA25519-SHA512/wei25519 502", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_502_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_502_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_502_test_vectors_message, .msglen = sizeof(ed25519_502_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_502_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_502_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_503_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_503_test_vectors_message[] = { 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, }; static const u8 ed25519_503_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_503_test_case = { .name = "EDDSA25519-SHA512/wei25519 503", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_503_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_503_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_503_test_vectors_message, .msglen = sizeof(ed25519_503_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_503_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_503_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_504_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_504_test_vectors_message[] = { 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, }; static const u8 ed25519_504_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_504_test_case = { .name = "EDDSA25519-SHA512/wei25519 504", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_504_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_504_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_504_test_vectors_message, .msglen = sizeof(ed25519_504_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_504_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_504_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_505_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_505_test_vectors_message[] = { 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, }; static const u8 ed25519_505_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_505_test_case = { .name = "EDDSA25519-SHA512/wei25519 505", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_505_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_505_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_505_test_vectors_message, .msglen = sizeof(ed25519_505_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_505_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_505_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_506_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_506_test_vectors_message[] = { 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, }; static const u8 ed25519_506_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_506_test_case = { .name = "EDDSA25519-SHA512/wei25519 506", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_506_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_506_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_506_test_vectors_message, .msglen = sizeof(ed25519_506_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_506_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_506_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_507_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_507_test_vectors_message[] = { 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, }; static const u8 ed25519_507_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_507_test_case = { .name = "EDDSA25519-SHA512/wei25519 507", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_507_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_507_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_507_test_vectors_message, .msglen = sizeof(ed25519_507_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_507_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_507_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_508_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_508_test_vectors_message[] = { 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, }; static const u8 ed25519_508_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_508_test_case = { .name = "EDDSA25519-SHA512/wei25519 508", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_508_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_508_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_508_test_vectors_message, .msglen = sizeof(ed25519_508_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_508_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_508_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_509_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_509_test_vectors_message[] = { 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, }; static const u8 ed25519_509_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_509_test_case = { .name = "EDDSA25519-SHA512/wei25519 509", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_509_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_509_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_509_test_vectors_message, .msglen = sizeof(ed25519_509_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_509_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_509_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_510_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_510_test_vectors_message[] = { 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, }; static const u8 ed25519_510_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_510_test_case = { .name = "EDDSA25519-SHA512/wei25519 510", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_510_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_510_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_510_test_vectors_message, .msglen = sizeof(ed25519_510_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_510_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_510_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_511_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_511_test_vectors_message[] = { 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, }; static const u8 ed25519_511_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_511_test_case = { .name = "EDDSA25519-SHA512/wei25519 511", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_511_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_511_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_511_test_vectors_message, .msglen = sizeof(ed25519_511_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_511_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_511_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_512_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_512_test_vectors_message[] = { 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, }; static const u8 ed25519_512_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_512_test_case = { .name = "EDDSA25519-SHA512/wei25519 512", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_512_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_512_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_512_test_vectors_message, .msglen = sizeof(ed25519_512_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_512_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_512_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_513_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_513_test_vectors_message[] = { 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, }; static const u8 ed25519_513_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_513_test_case = { .name = "EDDSA25519-SHA512/wei25519 513", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_513_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_513_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_513_test_vectors_message, .msglen = sizeof(ed25519_513_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_513_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_513_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_514_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_514_test_vectors_message[] = { 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, }; static const u8 ed25519_514_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_514_test_case = { .name = "EDDSA25519-SHA512/wei25519 514", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_514_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_514_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_514_test_vectors_message, .msglen = sizeof(ed25519_514_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_514_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_514_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_515_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_515_test_vectors_message[] = { 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, }; static const u8 ed25519_515_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_515_test_case = { .name = "EDDSA25519-SHA512/wei25519 515", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_515_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_515_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_515_test_vectors_message, .msglen = sizeof(ed25519_515_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_515_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_515_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_516_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_516_test_vectors_message[] = { 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, }; static const u8 ed25519_516_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_516_test_case = { .name = "EDDSA25519-SHA512/wei25519 516", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_516_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_516_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_516_test_vectors_message, .msglen = sizeof(ed25519_516_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_516_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_516_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_517_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_517_test_vectors_message[] = { 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, }; static const u8 ed25519_517_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_517_test_case = { .name = "EDDSA25519-SHA512/wei25519 517", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_517_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_517_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_517_test_vectors_message, .msglen = sizeof(ed25519_517_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_517_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_517_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_518_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_518_test_vectors_message[] = { 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, }; static const u8 ed25519_518_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_518_test_case = { .name = "EDDSA25519-SHA512/wei25519 518", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_518_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_518_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_518_test_vectors_message, .msglen = sizeof(ed25519_518_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_518_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_518_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_519_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_519_test_vectors_message[] = { 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, }; static const u8 ed25519_519_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_519_test_case = { .name = "EDDSA25519-SHA512/wei25519 519", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_519_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_519_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_519_test_vectors_message, .msglen = sizeof(ed25519_519_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_519_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_519_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_520_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_520_test_vectors_message[] = { 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, }; static const u8 ed25519_520_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_520_test_case = { .name = "EDDSA25519-SHA512/wei25519 520", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_520_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_520_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_520_test_vectors_message, .msglen = sizeof(ed25519_520_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_520_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_520_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_521_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_521_test_vectors_message[] = { 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, }; static const u8 ed25519_521_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_521_test_case = { .name = "EDDSA25519-SHA512/wei25519 521", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_521_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_521_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_521_test_vectors_message, .msglen = sizeof(ed25519_521_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_521_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_521_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_522_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_522_test_vectors_message[] = { 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, }; static const u8 ed25519_522_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_522_test_case = { .name = "EDDSA25519-SHA512/wei25519 522", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_522_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_522_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_522_test_vectors_message, .msglen = sizeof(ed25519_522_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_522_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_522_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_523_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_523_test_vectors_message[] = { 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, }; static const u8 ed25519_523_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_523_test_case = { .name = "EDDSA25519-SHA512/wei25519 523", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_523_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_523_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_523_test_vectors_message, .msglen = sizeof(ed25519_523_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_523_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_523_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_524_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_524_test_vectors_message[] = { 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, }; static const u8 ed25519_524_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_524_test_case = { .name = "EDDSA25519-SHA512/wei25519 524", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_524_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_524_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_524_test_vectors_message, .msglen = sizeof(ed25519_524_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_524_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_524_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_525_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_525_test_vectors_message[] = { 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, }; static const u8 ed25519_525_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_525_test_case = { .name = "EDDSA25519-SHA512/wei25519 525", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_525_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_525_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_525_test_vectors_message, .msglen = sizeof(ed25519_525_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_525_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_525_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_526_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_526_test_vectors_message[] = { 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, }; static const u8 ed25519_526_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_526_test_case = { .name = "EDDSA25519-SHA512/wei25519 526", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_526_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_526_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_526_test_vectors_message, .msglen = sizeof(ed25519_526_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_526_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_526_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_527_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_527_test_vectors_message[] = { 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, }; static const u8 ed25519_527_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_527_test_case = { .name = "EDDSA25519-SHA512/wei25519 527", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_527_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_527_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_527_test_vectors_message, .msglen = sizeof(ed25519_527_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_527_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_527_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_528_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_528_test_vectors_message[] = { 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, }; static const u8 ed25519_528_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_528_test_case = { .name = "EDDSA25519-SHA512/wei25519 528", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_528_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_528_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_528_test_vectors_message, .msglen = sizeof(ed25519_528_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_528_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_528_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_529_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_529_test_vectors_message[] = { 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, }; static const u8 ed25519_529_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_529_test_case = { .name = "EDDSA25519-SHA512/wei25519 529", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_529_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_529_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_529_test_vectors_message, .msglen = sizeof(ed25519_529_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_529_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_529_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_530_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_530_test_vectors_message[] = { 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, }; static const u8 ed25519_530_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_530_test_case = { .name = "EDDSA25519-SHA512/wei25519 530", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_530_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_530_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_530_test_vectors_message, .msglen = sizeof(ed25519_530_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_530_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_530_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_531_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_531_test_vectors_message[] = { 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, }; static const u8 ed25519_531_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_531_test_case = { .name = "EDDSA25519-SHA512/wei25519 531", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_531_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_531_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_531_test_vectors_message, .msglen = sizeof(ed25519_531_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_531_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_531_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_532_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_532_test_vectors_message[] = { 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, }; static const u8 ed25519_532_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_532_test_case = { .name = "EDDSA25519-SHA512/wei25519 532", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_532_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_532_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_532_test_vectors_message, .msglen = sizeof(ed25519_532_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_532_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_532_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_533_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_533_test_vectors_message[] = { 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, }; static const u8 ed25519_533_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_533_test_case = { .name = "EDDSA25519-SHA512/wei25519 533", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_533_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_533_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_533_test_vectors_message, .msglen = sizeof(ed25519_533_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_533_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_533_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_534_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_534_test_vectors_message[] = { 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, }; static const u8 ed25519_534_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_534_test_case = { .name = "EDDSA25519-SHA512/wei25519 534", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_534_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_534_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_534_test_vectors_message, .msglen = sizeof(ed25519_534_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_534_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_534_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_535_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_535_test_vectors_message[] = { 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, }; static const u8 ed25519_535_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_535_test_case = { .name = "EDDSA25519-SHA512/wei25519 535", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_535_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_535_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_535_test_vectors_message, .msglen = sizeof(ed25519_535_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_535_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_535_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_536_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_536_test_vectors_message[] = { 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, }; static const u8 ed25519_536_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_536_test_case = { .name = "EDDSA25519-SHA512/wei25519 536", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_536_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_536_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_536_test_vectors_message, .msglen = sizeof(ed25519_536_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_536_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_536_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_537_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_537_test_vectors_message[] = { 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, }; static const u8 ed25519_537_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_537_test_case = { .name = "EDDSA25519-SHA512/wei25519 537", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_537_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_537_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_537_test_vectors_message, .msglen = sizeof(ed25519_537_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_537_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_537_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_538_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_538_test_vectors_message[] = { 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, }; static const u8 ed25519_538_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_538_test_case = { .name = "EDDSA25519-SHA512/wei25519 538", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_538_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_538_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_538_test_vectors_message, .msglen = sizeof(ed25519_538_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_538_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_538_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_539_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_539_test_vectors_message[] = { 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, }; static const u8 ed25519_539_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_539_test_case = { .name = "EDDSA25519-SHA512/wei25519 539", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_539_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_539_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_539_test_vectors_message, .msglen = sizeof(ed25519_539_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_539_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_539_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_540_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_540_test_vectors_message[] = { 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, }; static const u8 ed25519_540_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_540_test_case = { .name = "EDDSA25519-SHA512/wei25519 540", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_540_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_540_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_540_test_vectors_message, .msglen = sizeof(ed25519_540_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_540_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_540_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_541_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_541_test_vectors_message[] = { 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, }; static const u8 ed25519_541_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_541_test_case = { .name = "EDDSA25519-SHA512/wei25519 541", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_541_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_541_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_541_test_vectors_message, .msglen = sizeof(ed25519_541_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_541_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_541_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_542_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_542_test_vectors_message[] = { 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, }; static const u8 ed25519_542_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_542_test_case = { .name = "EDDSA25519-SHA512/wei25519 542", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_542_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_542_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_542_test_vectors_message, .msglen = sizeof(ed25519_542_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_542_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_542_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_543_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_543_test_vectors_message[] = { 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, }; static const u8 ed25519_543_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_543_test_case = { .name = "EDDSA25519-SHA512/wei25519 543", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_543_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_543_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_543_test_vectors_message, .msglen = sizeof(ed25519_543_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_543_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_543_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_544_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_544_test_vectors_message[] = { 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, }; static const u8 ed25519_544_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_544_test_case = { .name = "EDDSA25519-SHA512/wei25519 544", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_544_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_544_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_544_test_vectors_message, .msglen = sizeof(ed25519_544_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_544_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_544_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_545_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_545_test_vectors_message[] = { 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, }; static const u8 ed25519_545_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_545_test_case = { .name = "EDDSA25519-SHA512/wei25519 545", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_545_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_545_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_545_test_vectors_message, .msglen = sizeof(ed25519_545_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_545_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_545_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_546_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_546_test_vectors_message[] = { 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, }; static const u8 ed25519_546_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_546_test_case = { .name = "EDDSA25519-SHA512/wei25519 546", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_546_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_546_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_546_test_vectors_message, .msglen = sizeof(ed25519_546_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_546_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_546_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_547_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_547_test_vectors_message[] = { 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, }; static const u8 ed25519_547_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_547_test_case = { .name = "EDDSA25519-SHA512/wei25519 547", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_547_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_547_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_547_test_vectors_message, .msglen = sizeof(ed25519_547_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_547_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_547_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_548_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_548_test_vectors_message[] = { 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, }; static const u8 ed25519_548_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_548_test_case = { .name = "EDDSA25519-SHA512/wei25519 548", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_548_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_548_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_548_test_vectors_message, .msglen = sizeof(ed25519_548_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_548_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_548_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_549_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_549_test_vectors_message[] = { 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, }; static const u8 ed25519_549_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_549_test_case = { .name = "EDDSA25519-SHA512/wei25519 549", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_549_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_549_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_549_test_vectors_message, .msglen = sizeof(ed25519_549_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_549_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_549_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_550_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_550_test_vectors_message[] = { 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, }; static const u8 ed25519_550_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_550_test_case = { .name = "EDDSA25519-SHA512/wei25519 550", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_550_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_550_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_550_test_vectors_message, .msglen = sizeof(ed25519_550_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_550_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_550_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_551_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_551_test_vectors_message[] = { 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, }; static const u8 ed25519_551_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_551_test_case = { .name = "EDDSA25519-SHA512/wei25519 551", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_551_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_551_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_551_test_vectors_message, .msglen = sizeof(ed25519_551_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_551_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_551_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_552_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_552_test_vectors_message[] = { 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, }; static const u8 ed25519_552_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_552_test_case = { .name = "EDDSA25519-SHA512/wei25519 552", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_552_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_552_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_552_test_vectors_message, .msglen = sizeof(ed25519_552_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_552_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_552_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_553_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_553_test_vectors_message[] = { 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, }; static const u8 ed25519_553_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_553_test_case = { .name = "EDDSA25519-SHA512/wei25519 553", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_553_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_553_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_553_test_vectors_message, .msglen = sizeof(ed25519_553_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_553_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_553_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_554_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_554_test_vectors_message[] = { 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, }; static const u8 ed25519_554_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_554_test_case = { .name = "EDDSA25519-SHA512/wei25519 554", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_554_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_554_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_554_test_vectors_message, .msglen = sizeof(ed25519_554_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_554_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_554_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_555_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_555_test_vectors_message[] = { 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, }; static const u8 ed25519_555_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_555_test_case = { .name = "EDDSA25519-SHA512/wei25519 555", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_555_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_555_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_555_test_vectors_message, .msglen = sizeof(ed25519_555_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_555_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_555_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_556_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_556_test_vectors_message[] = { 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, }; static const u8 ed25519_556_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_556_test_case = { .name = "EDDSA25519-SHA512/wei25519 556", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_556_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_556_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_556_test_vectors_message, .msglen = sizeof(ed25519_556_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_556_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_556_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_557_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_557_test_vectors_message[] = { 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, }; static const u8 ed25519_557_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_557_test_case = { .name = "EDDSA25519-SHA512/wei25519 557", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_557_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_557_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_557_test_vectors_message, .msglen = sizeof(ed25519_557_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_557_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_557_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_558_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_558_test_vectors_message[] = { 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, }; static const u8 ed25519_558_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_558_test_case = { .name = "EDDSA25519-SHA512/wei25519 558", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_558_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_558_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_558_test_vectors_message, .msglen = sizeof(ed25519_558_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_558_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_558_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_559_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_559_test_vectors_message[] = { 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, }; static const u8 ed25519_559_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_559_test_case = { .name = "EDDSA25519-SHA512/wei25519 559", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_559_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_559_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_559_test_vectors_message, .msglen = sizeof(ed25519_559_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_559_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_559_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_560_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_560_test_vectors_message[] = { 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, }; static const u8 ed25519_560_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_560_test_case = { .name = "EDDSA25519-SHA512/wei25519 560", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_560_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_560_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_560_test_vectors_message, .msglen = sizeof(ed25519_560_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_560_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_560_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_561_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_561_test_vectors_message[] = { 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, }; static const u8 ed25519_561_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_561_test_case = { .name = "EDDSA25519-SHA512/wei25519 561", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_561_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_561_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_561_test_vectors_message, .msglen = sizeof(ed25519_561_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_561_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_561_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_562_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_562_test_vectors_message[] = { 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, }; static const u8 ed25519_562_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_562_test_case = { .name = "EDDSA25519-SHA512/wei25519 562", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_562_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_562_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_562_test_vectors_message, .msglen = sizeof(ed25519_562_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_562_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_562_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_563_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_563_test_vectors_message[] = { 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, }; static const u8 ed25519_563_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_563_test_case = { .name = "EDDSA25519-SHA512/wei25519 563", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_563_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_563_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_563_test_vectors_message, .msglen = sizeof(ed25519_563_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_563_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_563_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_564_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_564_test_vectors_message[] = { 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, }; static const u8 ed25519_564_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_564_test_case = { .name = "EDDSA25519-SHA512/wei25519 564", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_564_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_564_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_564_test_vectors_message, .msglen = sizeof(ed25519_564_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_564_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_564_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_565_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_565_test_vectors_message[] = { 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, }; static const u8 ed25519_565_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_565_test_case = { .name = "EDDSA25519-SHA512/wei25519 565", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_565_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_565_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_565_test_vectors_message, .msglen = sizeof(ed25519_565_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_565_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_565_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_566_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_566_test_vectors_message[] = { 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, }; static const u8 ed25519_566_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_566_test_case = { .name = "EDDSA25519-SHA512/wei25519 566", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_566_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_566_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_566_test_vectors_message, .msglen = sizeof(ed25519_566_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_566_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_566_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_567_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_567_test_vectors_message[] = { 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, }; static const u8 ed25519_567_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_567_test_case = { .name = "EDDSA25519-SHA512/wei25519 567", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_567_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_567_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_567_test_vectors_message, .msglen = sizeof(ed25519_567_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_567_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_567_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_568_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_568_test_vectors_message[] = { 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, }; static const u8 ed25519_568_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_568_test_case = { .name = "EDDSA25519-SHA512/wei25519 568", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_568_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_568_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_568_test_vectors_message, .msglen = sizeof(ed25519_568_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_568_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_568_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_569_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_569_test_vectors_message[] = { 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, }; static const u8 ed25519_569_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_569_test_case = { .name = "EDDSA25519-SHA512/wei25519 569", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_569_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_569_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_569_test_vectors_message, .msglen = sizeof(ed25519_569_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_569_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_569_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_570_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_570_test_vectors_message[] = { 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, }; static const u8 ed25519_570_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_570_test_case = { .name = "EDDSA25519-SHA512/wei25519 570", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_570_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_570_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_570_test_vectors_message, .msglen = sizeof(ed25519_570_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_570_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_570_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_571_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_571_test_vectors_message[] = { 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, }; static const u8 ed25519_571_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_571_test_case = { .name = "EDDSA25519-SHA512/wei25519 571", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_571_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_571_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_571_test_vectors_message, .msglen = sizeof(ed25519_571_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_571_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_571_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_572_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_572_test_vectors_message[] = { 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, }; static const u8 ed25519_572_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_572_test_case = { .name = "EDDSA25519-SHA512/wei25519 572", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_572_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_572_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_572_test_vectors_message, .msglen = sizeof(ed25519_572_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_572_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_572_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_573_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_573_test_vectors_message[] = { 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, }; static const u8 ed25519_573_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_573_test_case = { .name = "EDDSA25519-SHA512/wei25519 573", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_573_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_573_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_573_test_vectors_message, .msglen = sizeof(ed25519_573_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_573_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_573_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_574_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_574_test_vectors_message[] = { 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, }; static const u8 ed25519_574_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_574_test_case = { .name = "EDDSA25519-SHA512/wei25519 574", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_574_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_574_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_574_test_vectors_message, .msglen = sizeof(ed25519_574_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_574_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_574_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_575_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_575_test_vectors_message[] = { 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, }; static const u8 ed25519_575_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_575_test_case = { .name = "EDDSA25519-SHA512/wei25519 575", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_575_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_575_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_575_test_vectors_message, .msglen = sizeof(ed25519_575_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_575_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_575_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_576_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_576_test_vectors_message[] = { 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, }; static const u8 ed25519_576_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_576_test_case = { .name = "EDDSA25519-SHA512/wei25519 576", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_576_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_576_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_576_test_vectors_message, .msglen = sizeof(ed25519_576_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_576_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_576_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_577_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_577_test_vectors_message[] = { 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, }; static const u8 ed25519_577_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_577_test_case = { .name = "EDDSA25519-SHA512/wei25519 577", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_577_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_577_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_577_test_vectors_message, .msglen = sizeof(ed25519_577_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_577_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_577_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_578_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_578_test_vectors_message[] = { 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, }; static const u8 ed25519_578_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_578_test_case = { .name = "EDDSA25519-SHA512/wei25519 578", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_578_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_578_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_578_test_vectors_message, .msglen = sizeof(ed25519_578_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_578_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_578_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_579_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_579_test_vectors_message[] = { 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, }; static const u8 ed25519_579_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_579_test_case = { .name = "EDDSA25519-SHA512/wei25519 579", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_579_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_579_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_579_test_vectors_message, .msglen = sizeof(ed25519_579_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_579_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_579_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_580_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_580_test_vectors_message[] = { 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, }; static const u8 ed25519_580_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_580_test_case = { .name = "EDDSA25519-SHA512/wei25519 580", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_580_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_580_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_580_test_vectors_message, .msglen = sizeof(ed25519_580_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_580_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_580_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_581_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_581_test_vectors_message[] = { 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, }; static const u8 ed25519_581_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_581_test_case = { .name = "EDDSA25519-SHA512/wei25519 581", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_581_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_581_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_581_test_vectors_message, .msglen = sizeof(ed25519_581_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_581_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_581_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_582_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_582_test_vectors_message[] = { 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, }; static const u8 ed25519_582_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_582_test_case = { .name = "EDDSA25519-SHA512/wei25519 582", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_582_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_582_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_582_test_vectors_message, .msglen = sizeof(ed25519_582_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_582_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_582_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_583_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_583_test_vectors_message[] = { 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, }; static const u8 ed25519_583_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_583_test_case = { .name = "EDDSA25519-SHA512/wei25519 583", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_583_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_583_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_583_test_vectors_message, .msglen = sizeof(ed25519_583_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_583_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_583_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_584_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_584_test_vectors_message[] = { 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, }; static const u8 ed25519_584_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_584_test_case = { .name = "EDDSA25519-SHA512/wei25519 584", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_584_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_584_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_584_test_vectors_message, .msglen = sizeof(ed25519_584_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_584_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_584_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_585_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_585_test_vectors_message[] = { 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, }; static const u8 ed25519_585_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_585_test_case = { .name = "EDDSA25519-SHA512/wei25519 585", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_585_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_585_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_585_test_vectors_message, .msglen = sizeof(ed25519_585_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_585_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_585_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_586_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_586_test_vectors_message[] = { 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, }; static const u8 ed25519_586_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_586_test_case = { .name = "EDDSA25519-SHA512/wei25519 586", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_586_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_586_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_586_test_vectors_message, .msglen = sizeof(ed25519_586_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_586_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_586_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_587_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_587_test_vectors_message[] = { 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, }; static const u8 ed25519_587_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_587_test_case = { .name = "EDDSA25519-SHA512/wei25519 587", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_587_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_587_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_587_test_vectors_message, .msglen = sizeof(ed25519_587_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_587_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_587_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_588_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_588_test_vectors_message[] = { 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, }; static const u8 ed25519_588_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_588_test_case = { .name = "EDDSA25519-SHA512/wei25519 588", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_588_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_588_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_588_test_vectors_message, .msglen = sizeof(ed25519_588_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_588_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_588_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_589_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_589_test_vectors_message[] = { 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, }; static const u8 ed25519_589_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_589_test_case = { .name = "EDDSA25519-SHA512/wei25519 589", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_589_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_589_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_589_test_vectors_message, .msglen = sizeof(ed25519_589_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_589_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_589_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_590_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_590_test_vectors_message[] = { 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, }; static const u8 ed25519_590_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_590_test_case = { .name = "EDDSA25519-SHA512/wei25519 590", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_590_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_590_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_590_test_vectors_message, .msglen = sizeof(ed25519_590_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_590_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_590_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_591_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_591_test_vectors_message[] = { 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, }; static const u8 ed25519_591_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_591_test_case = { .name = "EDDSA25519-SHA512/wei25519 591", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_591_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_591_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_591_test_vectors_message, .msglen = sizeof(ed25519_591_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_591_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_591_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_592_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_592_test_vectors_message[] = { 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, }; static const u8 ed25519_592_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_592_test_case = { .name = "EDDSA25519-SHA512/wei25519 592", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_592_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_592_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_592_test_vectors_message, .msglen = sizeof(ed25519_592_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_592_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_592_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_593_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_593_test_vectors_message[] = { 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, }; static const u8 ed25519_593_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_593_test_case = { .name = "EDDSA25519-SHA512/wei25519 593", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_593_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_593_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_593_test_vectors_message, .msglen = sizeof(ed25519_593_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_593_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_593_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_594_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_594_test_vectors_message[] = { 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, }; static const u8 ed25519_594_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_594_test_case = { .name = "EDDSA25519-SHA512/wei25519 594", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_594_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_594_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_594_test_vectors_message, .msglen = sizeof(ed25519_594_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_594_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_594_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_595_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_595_test_vectors_message[] = { 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, }; static const u8 ed25519_595_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_595_test_case = { .name = "EDDSA25519-SHA512/wei25519 595", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_595_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_595_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_595_test_vectors_message, .msglen = sizeof(ed25519_595_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_595_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_595_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_596_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_596_test_vectors_message[] = { 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, }; static const u8 ed25519_596_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_596_test_case = { .name = "EDDSA25519-SHA512/wei25519 596", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_596_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_596_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_596_test_vectors_message, .msglen = sizeof(ed25519_596_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_596_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_596_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_597_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_597_test_vectors_message[] = { 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, }; static const u8 ed25519_597_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_597_test_case = { .name = "EDDSA25519-SHA512/wei25519 597", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_597_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_597_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_597_test_vectors_message, .msglen = sizeof(ed25519_597_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_597_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_597_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_598_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_598_test_vectors_message[] = { 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, }; static const u8 ed25519_598_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_598_test_case = { .name = "EDDSA25519-SHA512/wei25519 598", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_598_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_598_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_598_test_vectors_message, .msglen = sizeof(ed25519_598_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_598_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_598_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_599_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_599_test_vectors_message[] = { 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, }; static const u8 ed25519_599_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_599_test_case = { .name = "EDDSA25519-SHA512/wei25519 599", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_599_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_599_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_599_test_vectors_message, .msglen = sizeof(ed25519_599_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_599_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_599_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_600_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_600_test_vectors_message[] = { 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, }; static const u8 ed25519_600_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_600_test_case = { .name = "EDDSA25519-SHA512/wei25519 600", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_600_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_600_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_600_test_vectors_message, .msglen = sizeof(ed25519_600_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_600_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_600_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_601_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_601_test_vectors_message[] = { 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, }; static const u8 ed25519_601_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_601_test_case = { .name = "EDDSA25519-SHA512/wei25519 601", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_601_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_601_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_601_test_vectors_message, .msglen = sizeof(ed25519_601_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_601_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_601_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_602_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_602_test_vectors_message[] = { 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, }; static const u8 ed25519_602_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_602_test_case = { .name = "EDDSA25519-SHA512/wei25519 602", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_602_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_602_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_602_test_vectors_message, .msglen = sizeof(ed25519_602_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_602_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_602_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_603_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_603_test_vectors_message[] = { 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, }; static const u8 ed25519_603_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_603_test_case = { .name = "EDDSA25519-SHA512/wei25519 603", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_603_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_603_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_603_test_vectors_message, .msglen = sizeof(ed25519_603_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_603_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_603_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_604_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_604_test_vectors_message[] = { 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, }; static const u8 ed25519_604_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_604_test_case = { .name = "EDDSA25519-SHA512/wei25519 604", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_604_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_604_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_604_test_vectors_message, .msglen = sizeof(ed25519_604_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_604_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_604_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_605_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_605_test_vectors_message[] = { 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, }; static const u8 ed25519_605_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_605_test_case = { .name = "EDDSA25519-SHA512/wei25519 605", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_605_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_605_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_605_test_vectors_message, .msglen = sizeof(ed25519_605_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_605_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_605_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_606_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_606_test_vectors_message[] = { 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, }; static const u8 ed25519_606_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_606_test_case = { .name = "EDDSA25519-SHA512/wei25519 606", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_606_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_606_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_606_test_vectors_message, .msglen = sizeof(ed25519_606_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_606_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_606_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_607_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_607_test_vectors_message[] = { 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, }; static const u8 ed25519_607_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_607_test_case = { .name = "EDDSA25519-SHA512/wei25519 607", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_607_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_607_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_607_test_vectors_message, .msglen = sizeof(ed25519_607_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_607_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_607_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_608_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_608_test_vectors_message[] = { 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, }; static const u8 ed25519_608_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_608_test_case = { .name = "EDDSA25519-SHA512/wei25519 608", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_608_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_608_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_608_test_vectors_message, .msglen = sizeof(ed25519_608_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_608_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_608_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_609_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_609_test_vectors_message[] = { 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, }; static const u8 ed25519_609_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_609_test_case = { .name = "EDDSA25519-SHA512/wei25519 609", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_609_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_609_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_609_test_vectors_message, .msglen = sizeof(ed25519_609_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_609_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_609_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_610_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_610_test_vectors_message[] = { 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, }; static const u8 ed25519_610_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_610_test_case = { .name = "EDDSA25519-SHA512/wei25519 610", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_610_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_610_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_610_test_vectors_message, .msglen = sizeof(ed25519_610_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_610_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_610_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_611_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_611_test_vectors_message[] = { 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, }; static const u8 ed25519_611_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_611_test_case = { .name = "EDDSA25519-SHA512/wei25519 611", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_611_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_611_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_611_test_vectors_message, .msglen = sizeof(ed25519_611_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_611_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_611_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_612_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_612_test_vectors_message[] = { 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, }; static const u8 ed25519_612_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_612_test_case = { .name = "EDDSA25519-SHA512/wei25519 612", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_612_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_612_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_612_test_vectors_message, .msglen = sizeof(ed25519_612_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_612_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_612_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_613_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_613_test_vectors_message[] = { 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, }; static const u8 ed25519_613_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_613_test_case = { .name = "EDDSA25519-SHA512/wei25519 613", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_613_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_613_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_613_test_vectors_message, .msglen = sizeof(ed25519_613_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_613_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_613_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_614_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_614_test_vectors_message[] = { 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, }; static const u8 ed25519_614_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_614_test_case = { .name = "EDDSA25519-SHA512/wei25519 614", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_614_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_614_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_614_test_vectors_message, .msglen = sizeof(ed25519_614_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_614_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_614_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_615_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_615_test_vectors_message[] = { 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, }; static const u8 ed25519_615_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_615_test_case = { .name = "EDDSA25519-SHA512/wei25519 615", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_615_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_615_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_615_test_vectors_message, .msglen = sizeof(ed25519_615_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_615_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_615_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_616_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_616_test_vectors_message[] = { 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, }; static const u8 ed25519_616_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_616_test_case = { .name = "EDDSA25519-SHA512/wei25519 616", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_616_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_616_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_616_test_vectors_message, .msglen = sizeof(ed25519_616_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_616_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_616_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_617_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_617_test_vectors_message[] = { 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, }; static const u8 ed25519_617_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_617_test_case = { .name = "EDDSA25519-SHA512/wei25519 617", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_617_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_617_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_617_test_vectors_message, .msglen = sizeof(ed25519_617_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_617_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_617_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_618_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_618_test_vectors_message[] = { 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, }; static const u8 ed25519_618_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_618_test_case = { .name = "EDDSA25519-SHA512/wei25519 618", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_618_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_618_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_618_test_vectors_message, .msglen = sizeof(ed25519_618_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_618_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_618_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_619_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_619_test_vectors_message[] = { 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, }; static const u8 ed25519_619_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_619_test_case = { .name = "EDDSA25519-SHA512/wei25519 619", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_619_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_619_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_619_test_vectors_message, .msglen = sizeof(ed25519_619_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_619_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_619_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_620_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_620_test_vectors_message[] = { 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, }; static const u8 ed25519_620_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_620_test_case = { .name = "EDDSA25519-SHA512/wei25519 620", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_620_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_620_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_620_test_vectors_message, .msglen = sizeof(ed25519_620_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_620_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_620_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_621_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_621_test_vectors_message[] = { 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, }; static const u8 ed25519_621_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_621_test_case = { .name = "EDDSA25519-SHA512/wei25519 621", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_621_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_621_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_621_test_vectors_message, .msglen = sizeof(ed25519_621_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_621_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_621_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_622_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_622_test_vectors_message[] = { 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, }; static const u8 ed25519_622_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_622_test_case = { .name = "EDDSA25519-SHA512/wei25519 622", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_622_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_622_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_622_test_vectors_message, .msglen = sizeof(ed25519_622_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_622_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_622_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_623_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_623_test_vectors_message[] = { 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, }; static const u8 ed25519_623_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_623_test_case = { .name = "EDDSA25519-SHA512/wei25519 623", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_623_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_623_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_623_test_vectors_message, .msglen = sizeof(ed25519_623_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_623_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_623_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_624_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_624_test_vectors_message[] = { 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, }; static const u8 ed25519_624_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_624_test_case = { .name = "EDDSA25519-SHA512/wei25519 624", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_624_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_624_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_624_test_vectors_message, .msglen = sizeof(ed25519_624_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_624_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_624_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_625_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_625_test_vectors_message[] = { 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, }; static const u8 ed25519_625_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_625_test_case = { .name = "EDDSA25519-SHA512/wei25519 625", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_625_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_625_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_625_test_vectors_message, .msglen = sizeof(ed25519_625_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_625_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_625_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_626_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_626_test_vectors_message[] = { 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, }; static const u8 ed25519_626_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_626_test_case = { .name = "EDDSA25519-SHA512/wei25519 626", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_626_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_626_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_626_test_vectors_message, .msglen = sizeof(ed25519_626_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_626_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_626_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_627_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_627_test_vectors_message[] = { 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, }; static const u8 ed25519_627_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_627_test_case = { .name = "EDDSA25519-SHA512/wei25519 627", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_627_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_627_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_627_test_vectors_message, .msglen = sizeof(ed25519_627_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_627_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_627_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_628_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_628_test_vectors_message[] = { 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, }; static const u8 ed25519_628_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_628_test_case = { .name = "EDDSA25519-SHA512/wei25519 628", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_628_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_628_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_628_test_vectors_message, .msglen = sizeof(ed25519_628_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_628_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_628_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_629_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_629_test_vectors_message[] = { 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, }; static const u8 ed25519_629_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_629_test_case = { .name = "EDDSA25519-SHA512/wei25519 629", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_629_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_629_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_629_test_vectors_message, .msglen = sizeof(ed25519_629_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_629_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_629_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_630_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_630_test_vectors_message[] = { 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, }; static const u8 ed25519_630_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_630_test_case = { .name = "EDDSA25519-SHA512/wei25519 630", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_630_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_630_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_630_test_vectors_message, .msglen = sizeof(ed25519_630_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_630_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_630_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_631_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_631_test_vectors_message[] = { 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, }; static const u8 ed25519_631_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_631_test_case = { .name = "EDDSA25519-SHA512/wei25519 631", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_631_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_631_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_631_test_vectors_message, .msglen = sizeof(ed25519_631_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_631_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_631_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_632_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_632_test_vectors_message[] = { 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, }; static const u8 ed25519_632_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_632_test_case = { .name = "EDDSA25519-SHA512/wei25519 632", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_632_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_632_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_632_test_vectors_message, .msglen = sizeof(ed25519_632_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_632_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_632_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_633_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_633_test_vectors_message[] = { 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, }; static const u8 ed25519_633_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_633_test_case = { .name = "EDDSA25519-SHA512/wei25519 633", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_633_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_633_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_633_test_vectors_message, .msglen = sizeof(ed25519_633_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_633_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_633_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_634_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_634_test_vectors_message[] = { 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, }; static const u8 ed25519_634_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_634_test_case = { .name = "EDDSA25519-SHA512/wei25519 634", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_634_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_634_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_634_test_vectors_message, .msglen = sizeof(ed25519_634_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_634_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_634_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_635_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_635_test_vectors_message[] = { 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, }; static const u8 ed25519_635_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_635_test_case = { .name = "EDDSA25519-SHA512/wei25519 635", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_635_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_635_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_635_test_vectors_message, .msglen = sizeof(ed25519_635_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_635_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_635_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_636_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_636_test_vectors_message[] = { 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, }; static const u8 ed25519_636_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_636_test_case = { .name = "EDDSA25519-SHA512/wei25519 636", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_636_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_636_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_636_test_vectors_message, .msglen = sizeof(ed25519_636_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_636_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_636_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_637_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_637_test_vectors_message[] = { 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, }; static const u8 ed25519_637_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_637_test_case = { .name = "EDDSA25519-SHA512/wei25519 637", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_637_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_637_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_637_test_vectors_message, .msglen = sizeof(ed25519_637_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_637_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_637_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_638_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_638_test_vectors_message[] = { 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, }; static const u8 ed25519_638_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_638_test_case = { .name = "EDDSA25519-SHA512/wei25519 638", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_638_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_638_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_638_test_vectors_message, .msglen = sizeof(ed25519_638_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_638_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_638_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_639_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_639_test_vectors_message[] = { 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, }; static const u8 ed25519_639_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_639_test_case = { .name = "EDDSA25519-SHA512/wei25519 639", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_639_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_639_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_639_test_vectors_message, .msglen = sizeof(ed25519_639_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_639_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_639_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_640_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_640_test_vectors_message[] = { 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, }; static const u8 ed25519_640_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_640_test_case = { .name = "EDDSA25519-SHA512/wei25519 640", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_640_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_640_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_640_test_vectors_message, .msglen = sizeof(ed25519_640_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_640_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_640_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_641_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_641_test_vectors_message[] = { 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, }; static const u8 ed25519_641_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_641_test_case = { .name = "EDDSA25519-SHA512/wei25519 641", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_641_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_641_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_641_test_vectors_message, .msglen = sizeof(ed25519_641_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_641_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_641_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_642_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_642_test_vectors_message[] = { 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, }; static const u8 ed25519_642_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_642_test_case = { .name = "EDDSA25519-SHA512/wei25519 642", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_642_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_642_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_642_test_vectors_message, .msglen = sizeof(ed25519_642_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_642_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_642_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_643_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_643_test_vectors_message[] = { 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, }; static const u8 ed25519_643_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_643_test_case = { .name = "EDDSA25519-SHA512/wei25519 643", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_643_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_643_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_643_test_vectors_message, .msglen = sizeof(ed25519_643_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_643_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_643_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_644_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_644_test_vectors_message[] = { 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, }; static const u8 ed25519_644_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_644_test_case = { .name = "EDDSA25519-SHA512/wei25519 644", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_644_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_644_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_644_test_vectors_message, .msglen = sizeof(ed25519_644_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_644_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_644_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_645_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_645_test_vectors_message[] = { 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, }; static const u8 ed25519_645_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_645_test_case = { .name = "EDDSA25519-SHA512/wei25519 645", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_645_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_645_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_645_test_vectors_message, .msglen = sizeof(ed25519_645_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_645_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_645_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_646_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_646_test_vectors_message[] = { 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, }; static const u8 ed25519_646_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_646_test_case = { .name = "EDDSA25519-SHA512/wei25519 646", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_646_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_646_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_646_test_vectors_message, .msglen = sizeof(ed25519_646_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_646_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_646_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_647_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_647_test_vectors_message[] = { 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, }; static const u8 ed25519_647_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_647_test_case = { .name = "EDDSA25519-SHA512/wei25519 647", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_647_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_647_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_647_test_vectors_message, .msglen = sizeof(ed25519_647_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_647_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_647_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_648_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_648_test_vectors_message[] = { 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, }; static const u8 ed25519_648_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_648_test_case = { .name = "EDDSA25519-SHA512/wei25519 648", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_648_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_648_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_648_test_vectors_message, .msglen = sizeof(ed25519_648_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_648_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_648_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_649_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_649_test_vectors_message[] = { 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, }; static const u8 ed25519_649_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_649_test_case = { .name = "EDDSA25519-SHA512/wei25519 649", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_649_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_649_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_649_test_vectors_message, .msglen = sizeof(ed25519_649_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_649_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_649_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_650_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_650_test_vectors_message[] = { 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, }; static const u8 ed25519_650_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_650_test_case = { .name = "EDDSA25519-SHA512/wei25519 650", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_650_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_650_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_650_test_vectors_message, .msglen = sizeof(ed25519_650_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_650_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_650_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_651_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_651_test_vectors_message[] = { 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, }; static const u8 ed25519_651_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_651_test_case = { .name = "EDDSA25519-SHA512/wei25519 651", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_651_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_651_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_651_test_vectors_message, .msglen = sizeof(ed25519_651_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_651_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_651_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_652_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_652_test_vectors_message[] = { 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, }; static const u8 ed25519_652_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_652_test_case = { .name = "EDDSA25519-SHA512/wei25519 652", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_652_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_652_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_652_test_vectors_message, .msglen = sizeof(ed25519_652_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_652_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_652_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_653_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_653_test_vectors_message[] = { 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, }; static const u8 ed25519_653_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_653_test_case = { .name = "EDDSA25519-SHA512/wei25519 653", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_653_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_653_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_653_test_vectors_message, .msglen = sizeof(ed25519_653_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_653_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_653_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_654_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_654_test_vectors_message[] = { 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, }; static const u8 ed25519_654_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_654_test_case = { .name = "EDDSA25519-SHA512/wei25519 654", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_654_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_654_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_654_test_vectors_message, .msglen = sizeof(ed25519_654_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_654_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_654_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_655_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_655_test_vectors_message[] = { 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, }; static const u8 ed25519_655_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_655_test_case = { .name = "EDDSA25519-SHA512/wei25519 655", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_655_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_655_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_655_test_vectors_message, .msglen = sizeof(ed25519_655_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_655_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_655_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_656_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_656_test_vectors_message[] = { 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, }; static const u8 ed25519_656_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_656_test_case = { .name = "EDDSA25519-SHA512/wei25519 656", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_656_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_656_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_656_test_vectors_message, .msglen = sizeof(ed25519_656_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_656_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_656_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_657_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_657_test_vectors_message[] = { 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, }; static const u8 ed25519_657_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_657_test_case = { .name = "EDDSA25519-SHA512/wei25519 657", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_657_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_657_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_657_test_vectors_message, .msglen = sizeof(ed25519_657_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_657_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_657_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_658_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_658_test_vectors_message[] = { 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, }; static const u8 ed25519_658_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_658_test_case = { .name = "EDDSA25519-SHA512/wei25519 658", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_658_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_658_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_658_test_vectors_message, .msglen = sizeof(ed25519_658_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_658_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_658_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_659_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_659_test_vectors_message[] = { 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, }; static const u8 ed25519_659_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_659_test_case = { .name = "EDDSA25519-SHA512/wei25519 659", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_659_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_659_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_659_test_vectors_message, .msglen = sizeof(ed25519_659_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_659_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_659_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_660_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_660_test_vectors_message[] = { 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, }; static const u8 ed25519_660_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_660_test_case = { .name = "EDDSA25519-SHA512/wei25519 660", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_660_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_660_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_660_test_vectors_message, .msglen = sizeof(ed25519_660_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_660_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_660_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_661_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_661_test_vectors_message[] = { 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, }; static const u8 ed25519_661_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_661_test_case = { .name = "EDDSA25519-SHA512/wei25519 661", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_661_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_661_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_661_test_vectors_message, .msglen = sizeof(ed25519_661_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_661_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_661_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_662_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_662_test_vectors_message[] = { 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, }; static const u8 ed25519_662_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_662_test_case = { .name = "EDDSA25519-SHA512/wei25519 662", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_662_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_662_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_662_test_vectors_message, .msglen = sizeof(ed25519_662_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_662_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_662_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_663_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_663_test_vectors_message[] = { 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, }; static const u8 ed25519_663_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_663_test_case = { .name = "EDDSA25519-SHA512/wei25519 663", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_663_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_663_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_663_test_vectors_message, .msglen = sizeof(ed25519_663_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_663_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_663_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_664_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_664_test_vectors_message[] = { 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, }; static const u8 ed25519_664_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_664_test_case = { .name = "EDDSA25519-SHA512/wei25519 664", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_664_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_664_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_664_test_vectors_message, .msglen = sizeof(ed25519_664_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_664_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_664_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_665_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_665_test_vectors_message[] = { 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, }; static const u8 ed25519_665_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_665_test_case = { .name = "EDDSA25519-SHA512/wei25519 665", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_665_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_665_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_665_test_vectors_message, .msglen = sizeof(ed25519_665_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_665_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_665_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_666_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_666_test_vectors_message[] = { 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, }; static const u8 ed25519_666_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_666_test_case = { .name = "EDDSA25519-SHA512/wei25519 666", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_666_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_666_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_666_test_vectors_message, .msglen = sizeof(ed25519_666_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_666_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_666_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_667_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_667_test_vectors_message[] = { 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, }; static const u8 ed25519_667_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_667_test_case = { .name = "EDDSA25519-SHA512/wei25519 667", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_667_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_667_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_667_test_vectors_message, .msglen = sizeof(ed25519_667_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_667_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_667_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_668_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_668_test_vectors_message[] = { 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, }; static const u8 ed25519_668_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_668_test_case = { .name = "EDDSA25519-SHA512/wei25519 668", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_668_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_668_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_668_test_vectors_message, .msglen = sizeof(ed25519_668_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_668_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_668_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_669_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_669_test_vectors_message[] = { 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, }; static const u8 ed25519_669_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_669_test_case = { .name = "EDDSA25519-SHA512/wei25519 669", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_669_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_669_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_669_test_vectors_message, .msglen = sizeof(ed25519_669_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_669_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_669_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_670_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_670_test_vectors_message[] = { 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, }; static const u8 ed25519_670_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_670_test_case = { .name = "EDDSA25519-SHA512/wei25519 670", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_670_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_670_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_670_test_vectors_message, .msglen = sizeof(ed25519_670_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_670_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_670_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_671_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_671_test_vectors_message[] = { 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, }; static const u8 ed25519_671_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_671_test_case = { .name = "EDDSA25519-SHA512/wei25519 671", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_671_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_671_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_671_test_vectors_message, .msglen = sizeof(ed25519_671_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_671_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_671_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_672_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_672_test_vectors_message[] = { 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, }; static const u8 ed25519_672_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_672_test_case = { .name = "EDDSA25519-SHA512/wei25519 672", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_672_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_672_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_672_test_vectors_message, .msglen = sizeof(ed25519_672_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_672_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_672_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_673_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_673_test_vectors_message[] = { 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, }; static const u8 ed25519_673_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_673_test_case = { .name = "EDDSA25519-SHA512/wei25519 673", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_673_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_673_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_673_test_vectors_message, .msglen = sizeof(ed25519_673_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_673_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_673_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_674_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_674_test_vectors_message[] = { 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, }; static const u8 ed25519_674_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_674_test_case = { .name = "EDDSA25519-SHA512/wei25519 674", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_674_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_674_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_674_test_vectors_message, .msglen = sizeof(ed25519_674_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_674_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_674_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_675_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_675_test_vectors_message[] = { 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, }; static const u8 ed25519_675_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_675_test_case = { .name = "EDDSA25519-SHA512/wei25519 675", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_675_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_675_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_675_test_vectors_message, .msglen = sizeof(ed25519_675_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_675_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_675_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_676_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_676_test_vectors_message[] = { 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, }; static const u8 ed25519_676_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_676_test_case = { .name = "EDDSA25519-SHA512/wei25519 676", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_676_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_676_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_676_test_vectors_message, .msglen = sizeof(ed25519_676_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_676_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_676_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_677_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_677_test_vectors_message[] = { 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, }; static const u8 ed25519_677_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_677_test_case = { .name = "EDDSA25519-SHA512/wei25519 677", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_677_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_677_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_677_test_vectors_message, .msglen = sizeof(ed25519_677_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_677_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_677_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_678_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_678_test_vectors_message[] = { 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, }; static const u8 ed25519_678_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_678_test_case = { .name = "EDDSA25519-SHA512/wei25519 678", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_678_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_678_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_678_test_vectors_message, .msglen = sizeof(ed25519_678_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_678_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_678_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_679_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_679_test_vectors_message[] = { 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, }; static const u8 ed25519_679_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_679_test_case = { .name = "EDDSA25519-SHA512/wei25519 679", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_679_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_679_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_679_test_vectors_message, .msglen = sizeof(ed25519_679_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_679_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_679_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_680_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_680_test_vectors_message[] = { 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, }; static const u8 ed25519_680_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_680_test_case = { .name = "EDDSA25519-SHA512/wei25519 680", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_680_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_680_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_680_test_vectors_message, .msglen = sizeof(ed25519_680_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_680_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_680_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_681_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_681_test_vectors_message[] = { 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, }; static const u8 ed25519_681_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_681_test_case = { .name = "EDDSA25519-SHA512/wei25519 681", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_681_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_681_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_681_test_vectors_message, .msglen = sizeof(ed25519_681_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_681_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_681_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_682_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_682_test_vectors_message[] = { 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, }; static const u8 ed25519_682_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_682_test_case = { .name = "EDDSA25519-SHA512/wei25519 682", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_682_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_682_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_682_test_vectors_message, .msglen = sizeof(ed25519_682_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_682_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_682_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_683_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_683_test_vectors_message[] = { 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, }; static const u8 ed25519_683_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_683_test_case = { .name = "EDDSA25519-SHA512/wei25519 683", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_683_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_683_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_683_test_vectors_message, .msglen = sizeof(ed25519_683_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_683_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_683_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_684_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_684_test_vectors_message[] = { 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, }; static const u8 ed25519_684_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_684_test_case = { .name = "EDDSA25519-SHA512/wei25519 684", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_684_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_684_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_684_test_vectors_message, .msglen = sizeof(ed25519_684_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_684_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_684_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_685_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_685_test_vectors_message[] = { 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, }; static const u8 ed25519_685_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_685_test_case = { .name = "EDDSA25519-SHA512/wei25519 685", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_685_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_685_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_685_test_vectors_message, .msglen = sizeof(ed25519_685_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_685_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_685_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_686_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_686_test_vectors_message[] = { 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, }; static const u8 ed25519_686_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_686_test_case = { .name = "EDDSA25519-SHA512/wei25519 686", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_686_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_686_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_686_test_vectors_message, .msglen = sizeof(ed25519_686_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_686_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_686_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_687_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_687_test_vectors_message[] = { 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, }; static const u8 ed25519_687_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_687_test_case = { .name = "EDDSA25519-SHA512/wei25519 687", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_687_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_687_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_687_test_vectors_message, .msglen = sizeof(ed25519_687_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_687_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_687_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_688_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_688_test_vectors_message[] = { 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, }; static const u8 ed25519_688_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_688_test_case = { .name = "EDDSA25519-SHA512/wei25519 688", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_688_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_688_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_688_test_vectors_message, .msglen = sizeof(ed25519_688_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_688_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_688_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_689_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_689_test_vectors_message[] = { 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, }; static const u8 ed25519_689_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_689_test_case = { .name = "EDDSA25519-SHA512/wei25519 689", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_689_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_689_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_689_test_vectors_message, .msglen = sizeof(ed25519_689_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_689_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_689_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_690_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_690_test_vectors_message[] = { 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, }; static const u8 ed25519_690_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_690_test_case = { .name = "EDDSA25519-SHA512/wei25519 690", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_690_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_690_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_690_test_vectors_message, .msglen = sizeof(ed25519_690_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_690_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_690_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_691_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_691_test_vectors_message[] = { 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, }; static const u8 ed25519_691_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_691_test_case = { .name = "EDDSA25519-SHA512/wei25519 691", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_691_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_691_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_691_test_vectors_message, .msglen = sizeof(ed25519_691_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_691_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_691_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_692_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_692_test_vectors_message[] = { 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, }; static const u8 ed25519_692_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_692_test_case = { .name = "EDDSA25519-SHA512/wei25519 692", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_692_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_692_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_692_test_vectors_message, .msglen = sizeof(ed25519_692_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_692_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_692_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_693_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_693_test_vectors_message[] = { 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, }; static const u8 ed25519_693_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_693_test_case = { .name = "EDDSA25519-SHA512/wei25519 693", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_693_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_693_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_693_test_vectors_message, .msglen = sizeof(ed25519_693_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_693_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_693_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_694_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_694_test_vectors_message[] = { 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, }; static const u8 ed25519_694_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_694_test_case = { .name = "EDDSA25519-SHA512/wei25519 694", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_694_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_694_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_694_test_vectors_message, .msglen = sizeof(ed25519_694_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_694_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_694_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_695_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_695_test_vectors_message[] = { 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, }; static const u8 ed25519_695_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_695_test_case = { .name = "EDDSA25519-SHA512/wei25519 695", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_695_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_695_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_695_test_vectors_message, .msglen = sizeof(ed25519_695_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_695_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_695_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_696_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_696_test_vectors_message[] = { 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, }; static const u8 ed25519_696_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_696_test_case = { .name = "EDDSA25519-SHA512/wei25519 696", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_696_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_696_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_696_test_vectors_message, .msglen = sizeof(ed25519_696_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_696_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_696_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_697_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_697_test_vectors_message[] = { 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, }; static const u8 ed25519_697_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_697_test_case = { .name = "EDDSA25519-SHA512/wei25519 697", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_697_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_697_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_697_test_vectors_message, .msglen = sizeof(ed25519_697_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_697_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_697_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_698_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_698_test_vectors_message[] = { 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, }; static const u8 ed25519_698_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_698_test_case = { .name = "EDDSA25519-SHA512/wei25519 698", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_698_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_698_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_698_test_vectors_message, .msglen = sizeof(ed25519_698_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_698_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_698_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_699_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_699_test_vectors_message[] = { 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, }; static const u8 ed25519_699_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_699_test_case = { .name = "EDDSA25519-SHA512/wei25519 699", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_699_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_699_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_699_test_vectors_message, .msglen = sizeof(ed25519_699_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_699_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_699_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_700_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_700_test_vectors_message[] = { 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, }; static const u8 ed25519_700_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_700_test_case = { .name = "EDDSA25519-SHA512/wei25519 700", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_700_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_700_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_700_test_vectors_message, .msglen = sizeof(ed25519_700_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_700_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_700_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_701_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_701_test_vectors_message[] = { 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, }; static const u8 ed25519_701_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_701_test_case = { .name = "EDDSA25519-SHA512/wei25519 701", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_701_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_701_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_701_test_vectors_message, .msglen = sizeof(ed25519_701_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_701_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_701_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_702_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_702_test_vectors_message[] = { 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, }; static const u8 ed25519_702_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_702_test_case = { .name = "EDDSA25519-SHA512/wei25519 702", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_702_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_702_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_702_test_vectors_message, .msglen = sizeof(ed25519_702_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_702_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_702_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_703_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_703_test_vectors_message[] = { 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, }; static const u8 ed25519_703_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_703_test_case = { .name = "EDDSA25519-SHA512/wei25519 703", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_703_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_703_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_703_test_vectors_message, .msglen = sizeof(ed25519_703_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_703_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_703_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_704_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_704_test_vectors_message[] = { 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, }; static const u8 ed25519_704_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_704_test_case = { .name = "EDDSA25519-SHA512/wei25519 704", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_704_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_704_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_704_test_vectors_message, .msglen = sizeof(ed25519_704_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_704_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_704_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_705_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_705_test_vectors_message[] = { 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, }; static const u8 ed25519_705_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_705_test_case = { .name = "EDDSA25519-SHA512/wei25519 705", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_705_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_705_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_705_test_vectors_message, .msglen = sizeof(ed25519_705_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_705_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_705_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_706_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_706_test_vectors_message[] = { 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, }; static const u8 ed25519_706_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_706_test_case = { .name = "EDDSA25519-SHA512/wei25519 706", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_706_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_706_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_706_test_vectors_message, .msglen = sizeof(ed25519_706_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_706_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_706_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_707_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_707_test_vectors_message[] = { 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, }; static const u8 ed25519_707_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_707_test_case = { .name = "EDDSA25519-SHA512/wei25519 707", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_707_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_707_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_707_test_vectors_message, .msglen = sizeof(ed25519_707_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_707_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_707_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_708_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_708_test_vectors_message[] = { 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, }; static const u8 ed25519_708_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_708_test_case = { .name = "EDDSA25519-SHA512/wei25519 708", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_708_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_708_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_708_test_vectors_message, .msglen = sizeof(ed25519_708_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_708_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_708_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_709_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_709_test_vectors_message[] = { 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, }; static const u8 ed25519_709_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_709_test_case = { .name = "EDDSA25519-SHA512/wei25519 709", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_709_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_709_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_709_test_vectors_message, .msglen = sizeof(ed25519_709_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_709_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_709_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_710_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_710_test_vectors_message[] = { 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, }; static const u8 ed25519_710_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_710_test_case = { .name = "EDDSA25519-SHA512/wei25519 710", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_710_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_710_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_710_test_vectors_message, .msglen = sizeof(ed25519_710_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_710_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_710_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_711_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_711_test_vectors_message[] = { 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, }; static const u8 ed25519_711_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_711_test_case = { .name = "EDDSA25519-SHA512/wei25519 711", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_711_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_711_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_711_test_vectors_message, .msglen = sizeof(ed25519_711_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_711_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_711_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_712_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_712_test_vectors_message[] = { 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, }; static const u8 ed25519_712_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_712_test_case = { .name = "EDDSA25519-SHA512/wei25519 712", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_712_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_712_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_712_test_vectors_message, .msglen = sizeof(ed25519_712_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_712_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_712_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_713_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_713_test_vectors_message[] = { 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, }; static const u8 ed25519_713_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_713_test_case = { .name = "EDDSA25519-SHA512/wei25519 713", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_713_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_713_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_713_test_vectors_message, .msglen = sizeof(ed25519_713_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_713_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_713_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_714_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_714_test_vectors_message[] = { 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, }; static const u8 ed25519_714_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_714_test_case = { .name = "EDDSA25519-SHA512/wei25519 714", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_714_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_714_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_714_test_vectors_message, .msglen = sizeof(ed25519_714_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_714_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_714_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_715_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_715_test_vectors_message[] = { 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, }; static const u8 ed25519_715_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_715_test_case = { .name = "EDDSA25519-SHA512/wei25519 715", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_715_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_715_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_715_test_vectors_message, .msglen = sizeof(ed25519_715_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_715_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_715_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_716_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_716_test_vectors_message[] = { 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, }; static const u8 ed25519_716_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_716_test_case = { .name = "EDDSA25519-SHA512/wei25519 716", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_716_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_716_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_716_test_vectors_message, .msglen = sizeof(ed25519_716_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_716_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_716_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_717_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_717_test_vectors_message[] = { 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, }; static const u8 ed25519_717_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_717_test_case = { .name = "EDDSA25519-SHA512/wei25519 717", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_717_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_717_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_717_test_vectors_message, .msglen = sizeof(ed25519_717_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_717_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_717_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_718_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_718_test_vectors_message[] = { 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, }; static const u8 ed25519_718_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_718_test_case = { .name = "EDDSA25519-SHA512/wei25519 718", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_718_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_718_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_718_test_vectors_message, .msglen = sizeof(ed25519_718_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_718_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_718_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_719_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_719_test_vectors_message[] = { 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, }; static const u8 ed25519_719_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_719_test_case = { .name = "EDDSA25519-SHA512/wei25519 719", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_719_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_719_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_719_test_vectors_message, .msglen = sizeof(ed25519_719_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_719_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_719_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_720_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_720_test_vectors_message[] = { 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, }; static const u8 ed25519_720_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_720_test_case = { .name = "EDDSA25519-SHA512/wei25519 720", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_720_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_720_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_720_test_vectors_message, .msglen = sizeof(ed25519_720_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_720_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_720_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_721_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_721_test_vectors_message[] = { 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, }; static const u8 ed25519_721_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_721_test_case = { .name = "EDDSA25519-SHA512/wei25519 721", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_721_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_721_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_721_test_vectors_message, .msglen = sizeof(ed25519_721_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_721_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_721_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_722_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_722_test_vectors_message[] = { 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, }; static const u8 ed25519_722_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_722_test_case = { .name = "EDDSA25519-SHA512/wei25519 722", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_722_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_722_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_722_test_vectors_message, .msglen = sizeof(ed25519_722_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_722_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_722_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_723_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_723_test_vectors_message[] = { 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, }; static const u8 ed25519_723_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_723_test_case = { .name = "EDDSA25519-SHA512/wei25519 723", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_723_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_723_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_723_test_vectors_message, .msglen = sizeof(ed25519_723_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_723_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_723_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_724_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_724_test_vectors_message[] = { 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, }; static const u8 ed25519_724_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_724_test_case = { .name = "EDDSA25519-SHA512/wei25519 724", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_724_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_724_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_724_test_vectors_message, .msglen = sizeof(ed25519_724_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_724_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_724_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_725_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_725_test_vectors_message[] = { 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, }; static const u8 ed25519_725_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_725_test_case = { .name = "EDDSA25519-SHA512/wei25519 725", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_725_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_725_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_725_test_vectors_message, .msglen = sizeof(ed25519_725_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_725_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_725_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_726_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_726_test_vectors_message[] = { 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, }; static const u8 ed25519_726_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_726_test_case = { .name = "EDDSA25519-SHA512/wei25519 726", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_726_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_726_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_726_test_vectors_message, .msglen = sizeof(ed25519_726_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_726_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_726_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_727_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_727_test_vectors_message[] = { 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, }; static const u8 ed25519_727_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_727_test_case = { .name = "EDDSA25519-SHA512/wei25519 727", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_727_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_727_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_727_test_vectors_message, .msglen = sizeof(ed25519_727_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_727_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_727_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_728_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_728_test_vectors_message[] = { 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, }; static const u8 ed25519_728_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_728_test_case = { .name = "EDDSA25519-SHA512/wei25519 728", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_728_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_728_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_728_test_vectors_message, .msglen = sizeof(ed25519_728_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_728_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_728_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_729_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_729_test_vectors_message[] = { 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, }; static const u8 ed25519_729_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_729_test_case = { .name = "EDDSA25519-SHA512/wei25519 729", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_729_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_729_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_729_test_vectors_message, .msglen = sizeof(ed25519_729_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_729_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_729_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_730_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_730_test_vectors_message[] = { 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, }; static const u8 ed25519_730_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_730_test_case = { .name = "EDDSA25519-SHA512/wei25519 730", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_730_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_730_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_730_test_vectors_message, .msglen = sizeof(ed25519_730_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_730_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_730_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_731_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_731_test_vectors_message[] = { 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, }; static const u8 ed25519_731_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_731_test_case = { .name = "EDDSA25519-SHA512/wei25519 731", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_731_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_731_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_731_test_vectors_message, .msglen = sizeof(ed25519_731_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_731_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_731_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_732_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_732_test_vectors_message[] = { 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, }; static const u8 ed25519_732_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_732_test_case = { .name = "EDDSA25519-SHA512/wei25519 732", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_732_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_732_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_732_test_vectors_message, .msglen = sizeof(ed25519_732_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_732_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_732_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_733_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_733_test_vectors_message[] = { 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, }; static const u8 ed25519_733_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_733_test_case = { .name = "EDDSA25519-SHA512/wei25519 733", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_733_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_733_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_733_test_vectors_message, .msglen = sizeof(ed25519_733_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_733_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_733_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_734_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_734_test_vectors_message[] = { 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, }; static const u8 ed25519_734_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_734_test_case = { .name = "EDDSA25519-SHA512/wei25519 734", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_734_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_734_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_734_test_vectors_message, .msglen = sizeof(ed25519_734_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_734_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_734_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_735_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_735_test_vectors_message[] = { 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, }; static const u8 ed25519_735_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_735_test_case = { .name = "EDDSA25519-SHA512/wei25519 735", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_735_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_735_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_735_test_vectors_message, .msglen = sizeof(ed25519_735_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_735_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_735_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_736_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_736_test_vectors_message[] = { 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, }; static const u8 ed25519_736_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_736_test_case = { .name = "EDDSA25519-SHA512/wei25519 736", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_736_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_736_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_736_test_vectors_message, .msglen = sizeof(ed25519_736_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_736_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_736_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_737_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_737_test_vectors_message[] = { 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, }; static const u8 ed25519_737_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_737_test_case = { .name = "EDDSA25519-SHA512/wei25519 737", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_737_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_737_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_737_test_vectors_message, .msglen = sizeof(ed25519_737_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_737_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_737_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_738_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_738_test_vectors_message[] = { 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, }; static const u8 ed25519_738_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_738_test_case = { .name = "EDDSA25519-SHA512/wei25519 738", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_738_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_738_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_738_test_vectors_message, .msglen = sizeof(ed25519_738_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_738_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_738_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_739_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_739_test_vectors_message[] = { 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, }; static const u8 ed25519_739_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_739_test_case = { .name = "EDDSA25519-SHA512/wei25519 739", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_739_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_739_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_739_test_vectors_message, .msglen = sizeof(ed25519_739_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_739_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_739_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_740_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_740_test_vectors_message[] = { 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, }; static const u8 ed25519_740_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_740_test_case = { .name = "EDDSA25519-SHA512/wei25519 740", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_740_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_740_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_740_test_vectors_message, .msglen = sizeof(ed25519_740_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_740_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_740_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_741_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_741_test_vectors_message[] = { 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, }; static const u8 ed25519_741_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_741_test_case = { .name = "EDDSA25519-SHA512/wei25519 741", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_741_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_741_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_741_test_vectors_message, .msglen = sizeof(ed25519_741_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_741_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_741_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_742_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_742_test_vectors_message[] = { 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, }; static const u8 ed25519_742_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_742_test_case = { .name = "EDDSA25519-SHA512/wei25519 742", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_742_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_742_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_742_test_vectors_message, .msglen = sizeof(ed25519_742_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_742_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_742_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_743_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_743_test_vectors_message[] = { 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, }; static const u8 ed25519_743_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_743_test_case = { .name = "EDDSA25519-SHA512/wei25519 743", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_743_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_743_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_743_test_vectors_message, .msglen = sizeof(ed25519_743_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_743_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_743_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_744_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_744_test_vectors_message[] = { 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, }; static const u8 ed25519_744_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_744_test_case = { .name = "EDDSA25519-SHA512/wei25519 744", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_744_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_744_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_744_test_vectors_message, .msglen = sizeof(ed25519_744_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_744_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_744_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_745_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_745_test_vectors_message[] = { 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, }; static const u8 ed25519_745_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_745_test_case = { .name = "EDDSA25519-SHA512/wei25519 745", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_745_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_745_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_745_test_vectors_message, .msglen = sizeof(ed25519_745_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_745_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_745_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_746_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_746_test_vectors_message[] = { 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, }; static const u8 ed25519_746_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_746_test_case = { .name = "EDDSA25519-SHA512/wei25519 746", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_746_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_746_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_746_test_vectors_message, .msglen = sizeof(ed25519_746_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_746_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_746_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_747_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_747_test_vectors_message[] = { 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, }; static const u8 ed25519_747_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_747_test_case = { .name = "EDDSA25519-SHA512/wei25519 747", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_747_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_747_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_747_test_vectors_message, .msglen = sizeof(ed25519_747_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_747_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_747_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_748_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_748_test_vectors_message[] = { 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, }; static const u8 ed25519_748_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_748_test_case = { .name = "EDDSA25519-SHA512/wei25519 748", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_748_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_748_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_748_test_vectors_message, .msglen = sizeof(ed25519_748_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_748_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_748_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_749_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_749_test_vectors_message[] = { 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, }; static const u8 ed25519_749_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_749_test_case = { .name = "EDDSA25519-SHA512/wei25519 749", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_749_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_749_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_749_test_vectors_message, .msglen = sizeof(ed25519_749_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_749_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_749_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_750_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_750_test_vectors_message[] = { 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, }; static const u8 ed25519_750_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_750_test_case = { .name = "EDDSA25519-SHA512/wei25519 750", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_750_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_750_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_750_test_vectors_message, .msglen = sizeof(ed25519_750_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_750_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_750_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_751_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_751_test_vectors_message[] = { 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, }; static const u8 ed25519_751_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_751_test_case = { .name = "EDDSA25519-SHA512/wei25519 751", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_751_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_751_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_751_test_vectors_message, .msglen = sizeof(ed25519_751_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_751_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_751_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_752_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_752_test_vectors_message[] = { 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, }; static const u8 ed25519_752_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_752_test_case = { .name = "EDDSA25519-SHA512/wei25519 752", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_752_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_752_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_752_test_vectors_message, .msglen = sizeof(ed25519_752_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_752_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_752_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_753_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_753_test_vectors_message[] = { 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, }; static const u8 ed25519_753_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_753_test_case = { .name = "EDDSA25519-SHA512/wei25519 753", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_753_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_753_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_753_test_vectors_message, .msglen = sizeof(ed25519_753_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_753_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_753_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_754_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_754_test_vectors_message[] = { 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, }; static const u8 ed25519_754_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_754_test_case = { .name = "EDDSA25519-SHA512/wei25519 754", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_754_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_754_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_754_test_vectors_message, .msglen = sizeof(ed25519_754_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_754_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_754_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_755_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_755_test_vectors_message[] = { 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, }; static const u8 ed25519_755_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_755_test_case = { .name = "EDDSA25519-SHA512/wei25519 755", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_755_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_755_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_755_test_vectors_message, .msglen = sizeof(ed25519_755_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_755_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_755_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_756_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_756_test_vectors_message[] = { 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, }; static const u8 ed25519_756_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_756_test_case = { .name = "EDDSA25519-SHA512/wei25519 756", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_756_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_756_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_756_test_vectors_message, .msglen = sizeof(ed25519_756_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_756_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_756_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_757_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_757_test_vectors_message[] = { 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, }; static const u8 ed25519_757_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_757_test_case = { .name = "EDDSA25519-SHA512/wei25519 757", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_757_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_757_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_757_test_vectors_message, .msglen = sizeof(ed25519_757_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_757_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_757_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_758_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_758_test_vectors_message[] = { 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, }; static const u8 ed25519_758_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_758_test_case = { .name = "EDDSA25519-SHA512/wei25519 758", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_758_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_758_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_758_test_vectors_message, .msglen = sizeof(ed25519_758_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_758_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_758_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_759_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_759_test_vectors_message[] = { 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, }; static const u8 ed25519_759_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_759_test_case = { .name = "EDDSA25519-SHA512/wei25519 759", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_759_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_759_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_759_test_vectors_message, .msglen = sizeof(ed25519_759_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_759_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_759_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_760_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_760_test_vectors_message[] = { 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, }; static const u8 ed25519_760_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_760_test_case = { .name = "EDDSA25519-SHA512/wei25519 760", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_760_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_760_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_760_test_vectors_message, .msglen = sizeof(ed25519_760_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_760_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_760_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_761_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_761_test_vectors_message[] = { 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, }; static const u8 ed25519_761_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_761_test_case = { .name = "EDDSA25519-SHA512/wei25519 761", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_761_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_761_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_761_test_vectors_message, .msglen = sizeof(ed25519_761_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_761_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_761_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_762_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_762_test_vectors_message[] = { 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, }; static const u8 ed25519_762_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_762_test_case = { .name = "EDDSA25519-SHA512/wei25519 762", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_762_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_762_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_762_test_vectors_message, .msglen = sizeof(ed25519_762_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_762_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_762_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_763_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_763_test_vectors_message[] = { 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, }; static const u8 ed25519_763_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_763_test_case = { .name = "EDDSA25519-SHA512/wei25519 763", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_763_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_763_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_763_test_vectors_message, .msglen = sizeof(ed25519_763_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_763_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_763_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_764_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_764_test_vectors_message[] = { 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, }; static const u8 ed25519_764_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_764_test_case = { .name = "EDDSA25519-SHA512/wei25519 764", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_764_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_764_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_764_test_vectors_message, .msglen = sizeof(ed25519_764_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_764_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_764_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_765_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_765_test_vectors_message[] = { 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, }; static const u8 ed25519_765_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_765_test_case = { .name = "EDDSA25519-SHA512/wei25519 765", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_765_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_765_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_765_test_vectors_message, .msglen = sizeof(ed25519_765_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_765_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_765_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_766_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_766_test_vectors_message[] = { 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, }; static const u8 ed25519_766_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_766_test_case = { .name = "EDDSA25519-SHA512/wei25519 766", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_766_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_766_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_766_test_vectors_message, .msglen = sizeof(ed25519_766_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_766_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_766_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_767_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_767_test_vectors_message[] = { 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, }; static const u8 ed25519_767_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_767_test_case = { .name = "EDDSA25519-SHA512/wei25519 767", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_767_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_767_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_767_test_vectors_message, .msglen = sizeof(ed25519_767_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_767_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_767_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_768_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_768_test_vectors_message[] = { 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, }; static const u8 ed25519_768_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_768_test_case = { .name = "EDDSA25519-SHA512/wei25519 768", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_768_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_768_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_768_test_vectors_message, .msglen = sizeof(ed25519_768_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_768_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_768_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_769_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_769_test_vectors_message[] = { 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, }; static const u8 ed25519_769_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_769_test_case = { .name = "EDDSA25519-SHA512/wei25519 769", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_769_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_769_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_769_test_vectors_message, .msglen = sizeof(ed25519_769_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_769_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_769_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_770_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_770_test_vectors_message[] = { 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, }; static const u8 ed25519_770_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_770_test_case = { .name = "EDDSA25519-SHA512/wei25519 770", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_770_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_770_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_770_test_vectors_message, .msglen = sizeof(ed25519_770_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_770_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_770_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_771_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_771_test_vectors_message[] = { 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, }; static const u8 ed25519_771_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_771_test_case = { .name = "EDDSA25519-SHA512/wei25519 771", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_771_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_771_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_771_test_vectors_message, .msglen = sizeof(ed25519_771_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_771_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_771_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_772_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_772_test_vectors_message[] = { 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, }; static const u8 ed25519_772_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_772_test_case = { .name = "EDDSA25519-SHA512/wei25519 772", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_772_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_772_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_772_test_vectors_message, .msglen = sizeof(ed25519_772_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_772_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_772_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_773_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_773_test_vectors_message[] = { 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, }; static const u8 ed25519_773_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_773_test_case = { .name = "EDDSA25519-SHA512/wei25519 773", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_773_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_773_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_773_test_vectors_message, .msglen = sizeof(ed25519_773_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_773_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_773_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_774_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_774_test_vectors_message[] = { 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, }; static const u8 ed25519_774_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_774_test_case = { .name = "EDDSA25519-SHA512/wei25519 774", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_774_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_774_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_774_test_vectors_message, .msglen = sizeof(ed25519_774_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_774_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_774_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_775_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_775_test_vectors_message[] = { 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, }; static const u8 ed25519_775_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_775_test_case = { .name = "EDDSA25519-SHA512/wei25519 775", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_775_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_775_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_775_test_vectors_message, .msglen = sizeof(ed25519_775_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_775_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_775_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_776_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_776_test_vectors_message[] = { 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, }; static const u8 ed25519_776_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_776_test_case = { .name = "EDDSA25519-SHA512/wei25519 776", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_776_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_776_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_776_test_vectors_message, .msglen = sizeof(ed25519_776_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_776_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_776_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_777_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_777_test_vectors_message[] = { 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, }; static const u8 ed25519_777_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_777_test_case = { .name = "EDDSA25519-SHA512/wei25519 777", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_777_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_777_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_777_test_vectors_message, .msglen = sizeof(ed25519_777_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_777_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_777_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_778_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_778_test_vectors_message[] = { 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, }; static const u8 ed25519_778_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_778_test_case = { .name = "EDDSA25519-SHA512/wei25519 778", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_778_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_778_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_778_test_vectors_message, .msglen = sizeof(ed25519_778_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_778_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_778_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_779_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_779_test_vectors_message[] = { 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, }; static const u8 ed25519_779_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_779_test_case = { .name = "EDDSA25519-SHA512/wei25519 779", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_779_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_779_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_779_test_vectors_message, .msglen = sizeof(ed25519_779_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_779_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_779_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_780_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_780_test_vectors_message[] = { 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, }; static const u8 ed25519_780_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_780_test_case = { .name = "EDDSA25519-SHA512/wei25519 780", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_780_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_780_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_780_test_vectors_message, .msglen = sizeof(ed25519_780_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_780_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_780_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_781_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_781_test_vectors_message[] = { 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, }; static const u8 ed25519_781_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_781_test_case = { .name = "EDDSA25519-SHA512/wei25519 781", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_781_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_781_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_781_test_vectors_message, .msglen = sizeof(ed25519_781_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_781_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_781_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_782_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_782_test_vectors_message[] = { 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, }; static const u8 ed25519_782_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_782_test_case = { .name = "EDDSA25519-SHA512/wei25519 782", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_782_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_782_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_782_test_vectors_message, .msglen = sizeof(ed25519_782_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_782_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_782_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_783_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_783_test_vectors_message[] = { 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, }; static const u8 ed25519_783_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_783_test_case = { .name = "EDDSA25519-SHA512/wei25519 783", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_783_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_783_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_783_test_vectors_message, .msglen = sizeof(ed25519_783_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_783_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_783_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_784_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_784_test_vectors_message[] = { 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, }; static const u8 ed25519_784_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_784_test_case = { .name = "EDDSA25519-SHA512/wei25519 784", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_784_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_784_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_784_test_vectors_message, .msglen = sizeof(ed25519_784_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_784_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_784_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_785_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_785_test_vectors_message[] = { 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, }; static const u8 ed25519_785_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_785_test_case = { .name = "EDDSA25519-SHA512/wei25519 785", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_785_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_785_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_785_test_vectors_message, .msglen = sizeof(ed25519_785_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_785_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_785_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_786_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_786_test_vectors_message[] = { 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, }; static const u8 ed25519_786_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_786_test_case = { .name = "EDDSA25519-SHA512/wei25519 786", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_786_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_786_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_786_test_vectors_message, .msglen = sizeof(ed25519_786_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_786_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_786_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_787_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_787_test_vectors_message[] = { 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, }; static const u8 ed25519_787_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_787_test_case = { .name = "EDDSA25519-SHA512/wei25519 787", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_787_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_787_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_787_test_vectors_message, .msglen = sizeof(ed25519_787_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_787_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_787_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_788_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_788_test_vectors_message[] = { 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, }; static const u8 ed25519_788_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_788_test_case = { .name = "EDDSA25519-SHA512/wei25519 788", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_788_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_788_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_788_test_vectors_message, .msglen = sizeof(ed25519_788_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_788_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_788_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_789_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_789_test_vectors_message[] = { 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, }; static const u8 ed25519_789_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_789_test_case = { .name = "EDDSA25519-SHA512/wei25519 789", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_789_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_789_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_789_test_vectors_message, .msglen = sizeof(ed25519_789_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_789_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_789_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_790_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_790_test_vectors_message[] = { 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, }; static const u8 ed25519_790_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_790_test_case = { .name = "EDDSA25519-SHA512/wei25519 790", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_790_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_790_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_790_test_vectors_message, .msglen = sizeof(ed25519_790_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_790_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_790_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_791_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_791_test_vectors_message[] = { 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, }; static const u8 ed25519_791_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_791_test_case = { .name = "EDDSA25519-SHA512/wei25519 791", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_791_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_791_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_791_test_vectors_message, .msglen = sizeof(ed25519_791_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_791_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_791_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_792_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_792_test_vectors_message[] = { 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, }; static const u8 ed25519_792_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_792_test_case = { .name = "EDDSA25519-SHA512/wei25519 792", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_792_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_792_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_792_test_vectors_message, .msglen = sizeof(ed25519_792_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_792_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_792_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_793_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_793_test_vectors_message[] = { 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, }; static const u8 ed25519_793_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_793_test_case = { .name = "EDDSA25519-SHA512/wei25519 793", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_793_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_793_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_793_test_vectors_message, .msglen = sizeof(ed25519_793_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_793_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_793_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_794_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_794_test_vectors_message[] = { 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, }; static const u8 ed25519_794_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_794_test_case = { .name = "EDDSA25519-SHA512/wei25519 794", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_794_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_794_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_794_test_vectors_message, .msglen = sizeof(ed25519_794_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_794_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_794_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_795_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_795_test_vectors_message[] = { 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, }; static const u8 ed25519_795_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_795_test_case = { .name = "EDDSA25519-SHA512/wei25519 795", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_795_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_795_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_795_test_vectors_message, .msglen = sizeof(ed25519_795_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_795_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_795_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_796_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_796_test_vectors_message[] = { 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, }; static const u8 ed25519_796_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_796_test_case = { .name = "EDDSA25519-SHA512/wei25519 796", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_796_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_796_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_796_test_vectors_message, .msglen = sizeof(ed25519_796_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_796_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_796_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_797_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_797_test_vectors_message[] = { 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, }; static const u8 ed25519_797_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_797_test_case = { .name = "EDDSA25519-SHA512/wei25519 797", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_797_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_797_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_797_test_vectors_message, .msglen = sizeof(ed25519_797_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_797_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_797_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_798_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_798_test_vectors_message[] = { 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, }; static const u8 ed25519_798_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_798_test_case = { .name = "EDDSA25519-SHA512/wei25519 798", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_798_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_798_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_798_test_vectors_message, .msglen = sizeof(ed25519_798_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_798_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_798_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_799_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_799_test_vectors_message[] = { 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, }; static const u8 ed25519_799_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_799_test_case = { .name = "EDDSA25519-SHA512/wei25519 799", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_799_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_799_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_799_test_vectors_message, .msglen = sizeof(ed25519_799_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_799_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_799_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_800_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_800_test_vectors_message[] = { 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, }; static const u8 ed25519_800_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_800_test_case = { .name = "EDDSA25519-SHA512/wei25519 800", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_800_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_800_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_800_test_vectors_message, .msglen = sizeof(ed25519_800_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_800_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_800_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_801_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_801_test_vectors_message[] = { 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, }; static const u8 ed25519_801_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_801_test_case = { .name = "EDDSA25519-SHA512/wei25519 801", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_801_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_801_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_801_test_vectors_message, .msglen = sizeof(ed25519_801_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_801_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_801_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_802_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_802_test_vectors_message[] = { 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, }; static const u8 ed25519_802_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_802_test_case = { .name = "EDDSA25519-SHA512/wei25519 802", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_802_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_802_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_802_test_vectors_message, .msglen = sizeof(ed25519_802_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_802_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_802_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_803_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_803_test_vectors_message[] = { 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, }; static const u8 ed25519_803_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_803_test_case = { .name = "EDDSA25519-SHA512/wei25519 803", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_803_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_803_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_803_test_vectors_message, .msglen = sizeof(ed25519_803_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_803_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_803_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_804_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_804_test_vectors_message[] = { 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, }; static const u8 ed25519_804_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_804_test_case = { .name = "EDDSA25519-SHA512/wei25519 804", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_804_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_804_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_804_test_vectors_message, .msglen = sizeof(ed25519_804_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_804_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_804_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_805_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_805_test_vectors_message[] = { 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, }; static const u8 ed25519_805_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_805_test_case = { .name = "EDDSA25519-SHA512/wei25519 805", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_805_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_805_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_805_test_vectors_message, .msglen = sizeof(ed25519_805_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_805_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_805_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_806_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_806_test_vectors_message[] = { 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, }; static const u8 ed25519_806_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_806_test_case = { .name = "EDDSA25519-SHA512/wei25519 806", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_806_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_806_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_806_test_vectors_message, .msglen = sizeof(ed25519_806_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_806_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_806_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_807_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_807_test_vectors_message[] = { 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, }; static const u8 ed25519_807_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_807_test_case = { .name = "EDDSA25519-SHA512/wei25519 807", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_807_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_807_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_807_test_vectors_message, .msglen = sizeof(ed25519_807_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_807_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_807_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_808_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_808_test_vectors_message[] = { 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, }; static const u8 ed25519_808_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_808_test_case = { .name = "EDDSA25519-SHA512/wei25519 808", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_808_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_808_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_808_test_vectors_message, .msglen = sizeof(ed25519_808_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_808_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_808_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_809_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_809_test_vectors_message[] = { 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, }; static const u8 ed25519_809_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_809_test_case = { .name = "EDDSA25519-SHA512/wei25519 809", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_809_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_809_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_809_test_vectors_message, .msglen = sizeof(ed25519_809_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_809_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_809_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_810_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_810_test_vectors_message[] = { 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, }; static const u8 ed25519_810_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_810_test_case = { .name = "EDDSA25519-SHA512/wei25519 810", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_810_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_810_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_810_test_vectors_message, .msglen = sizeof(ed25519_810_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_810_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_810_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_811_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_811_test_vectors_message[] = { 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, }; static const u8 ed25519_811_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_811_test_case = { .name = "EDDSA25519-SHA512/wei25519 811", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_811_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_811_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_811_test_vectors_message, .msglen = sizeof(ed25519_811_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_811_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_811_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_812_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_812_test_vectors_message[] = { 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, }; static const u8 ed25519_812_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_812_test_case = { .name = "EDDSA25519-SHA512/wei25519 812", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_812_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_812_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_812_test_vectors_message, .msglen = sizeof(ed25519_812_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_812_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_812_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_813_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_813_test_vectors_message[] = { 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, }; static const u8 ed25519_813_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_813_test_case = { .name = "EDDSA25519-SHA512/wei25519 813", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_813_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_813_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_813_test_vectors_message, .msglen = sizeof(ed25519_813_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_813_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_813_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_814_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_814_test_vectors_message[] = { 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, }; static const u8 ed25519_814_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_814_test_case = { .name = "EDDSA25519-SHA512/wei25519 814", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_814_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_814_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_814_test_vectors_message, .msglen = sizeof(ed25519_814_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_814_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_814_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_815_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_815_test_vectors_message[] = { 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, }; static const u8 ed25519_815_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_815_test_case = { .name = "EDDSA25519-SHA512/wei25519 815", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_815_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_815_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_815_test_vectors_message, .msglen = sizeof(ed25519_815_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_815_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_815_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_816_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_816_test_vectors_message[] = { 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, }; static const u8 ed25519_816_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_816_test_case = { .name = "EDDSA25519-SHA512/wei25519 816", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_816_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_816_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_816_test_vectors_message, .msglen = sizeof(ed25519_816_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_816_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_816_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_817_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_817_test_vectors_message[] = { 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, }; static const u8 ed25519_817_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_817_test_case = { .name = "EDDSA25519-SHA512/wei25519 817", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_817_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_817_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_817_test_vectors_message, .msglen = sizeof(ed25519_817_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_817_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_817_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_818_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_818_test_vectors_message[] = { 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, }; static const u8 ed25519_818_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_818_test_case = { .name = "EDDSA25519-SHA512/wei25519 818", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_818_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_818_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_818_test_vectors_message, .msglen = sizeof(ed25519_818_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_818_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_818_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_819_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_819_test_vectors_message[] = { 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, }; static const u8 ed25519_819_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_819_test_case = { .name = "EDDSA25519-SHA512/wei25519 819", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_819_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_819_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_819_test_vectors_message, .msglen = sizeof(ed25519_819_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_819_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_819_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_820_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_820_test_vectors_message[] = { 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, }; static const u8 ed25519_820_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_820_test_case = { .name = "EDDSA25519-SHA512/wei25519 820", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_820_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_820_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_820_test_vectors_message, .msglen = sizeof(ed25519_820_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_820_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_820_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_821_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_821_test_vectors_message[] = { 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, }; static const u8 ed25519_821_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_821_test_case = { .name = "EDDSA25519-SHA512/wei25519 821", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_821_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_821_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_821_test_vectors_message, .msglen = sizeof(ed25519_821_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_821_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_821_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_822_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_822_test_vectors_message[] = { 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, }; static const u8 ed25519_822_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_822_test_case = { .name = "EDDSA25519-SHA512/wei25519 822", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_822_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_822_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_822_test_vectors_message, .msglen = sizeof(ed25519_822_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_822_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_822_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_823_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_823_test_vectors_message[] = { 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, }; static const u8 ed25519_823_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_823_test_case = { .name = "EDDSA25519-SHA512/wei25519 823", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_823_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_823_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_823_test_vectors_message, .msglen = sizeof(ed25519_823_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_823_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_823_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_824_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_824_test_vectors_message[] = { 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, }; static const u8 ed25519_824_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_824_test_case = { .name = "EDDSA25519-SHA512/wei25519 824", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_824_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_824_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_824_test_vectors_message, .msglen = sizeof(ed25519_824_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_824_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_824_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_825_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_825_test_vectors_message[] = { 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, }; static const u8 ed25519_825_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_825_test_case = { .name = "EDDSA25519-SHA512/wei25519 825", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_825_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_825_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_825_test_vectors_message, .msglen = sizeof(ed25519_825_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_825_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_825_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_826_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_826_test_vectors_message[] = { 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, }; static const u8 ed25519_826_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_826_test_case = { .name = "EDDSA25519-SHA512/wei25519 826", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_826_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_826_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_826_test_vectors_message, .msglen = sizeof(ed25519_826_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_826_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_826_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_827_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_827_test_vectors_message[] = { 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, }; static const u8 ed25519_827_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_827_test_case = { .name = "EDDSA25519-SHA512/wei25519 827", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_827_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_827_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_827_test_vectors_message, .msglen = sizeof(ed25519_827_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_827_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_827_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_828_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_828_test_vectors_message[] = { 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, }; static const u8 ed25519_828_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_828_test_case = { .name = "EDDSA25519-SHA512/wei25519 828", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_828_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_828_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_828_test_vectors_message, .msglen = sizeof(ed25519_828_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_828_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_828_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_829_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_829_test_vectors_message[] = { 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, }; static const u8 ed25519_829_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_829_test_case = { .name = "EDDSA25519-SHA512/wei25519 829", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_829_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_829_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_829_test_vectors_message, .msglen = sizeof(ed25519_829_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_829_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_829_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_830_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_830_test_vectors_message[] = { 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, }; static const u8 ed25519_830_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_830_test_case = { .name = "EDDSA25519-SHA512/wei25519 830", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_830_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_830_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_830_test_vectors_message, .msglen = sizeof(ed25519_830_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_830_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_830_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_831_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_831_test_vectors_message[] = { 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, }; static const u8 ed25519_831_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_831_test_case = { .name = "EDDSA25519-SHA512/wei25519 831", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_831_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_831_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_831_test_vectors_message, .msglen = sizeof(ed25519_831_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_831_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_831_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_832_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_832_test_vectors_message[] = { 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, }; static const u8 ed25519_832_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_832_test_case = { .name = "EDDSA25519-SHA512/wei25519 832", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_832_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_832_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_832_test_vectors_message, .msglen = sizeof(ed25519_832_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_832_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_832_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_833_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_833_test_vectors_message[] = { 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, }; static const u8 ed25519_833_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_833_test_case = { .name = "EDDSA25519-SHA512/wei25519 833", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_833_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_833_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_833_test_vectors_message, .msglen = sizeof(ed25519_833_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_833_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_833_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_834_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_834_test_vectors_message[] = { 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, }; static const u8 ed25519_834_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_834_test_case = { .name = "EDDSA25519-SHA512/wei25519 834", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_834_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_834_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_834_test_vectors_message, .msglen = sizeof(ed25519_834_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_834_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_834_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_835_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_835_test_vectors_message[] = { 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, }; static const u8 ed25519_835_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_835_test_case = { .name = "EDDSA25519-SHA512/wei25519 835", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_835_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_835_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_835_test_vectors_message, .msglen = sizeof(ed25519_835_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_835_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_835_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_836_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_836_test_vectors_message[] = { 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, }; static const u8 ed25519_836_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_836_test_case = { .name = "EDDSA25519-SHA512/wei25519 836", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_836_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_836_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_836_test_vectors_message, .msglen = sizeof(ed25519_836_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_836_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_836_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_837_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_837_test_vectors_message[] = { 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, }; static const u8 ed25519_837_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_837_test_case = { .name = "EDDSA25519-SHA512/wei25519 837", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_837_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_837_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_837_test_vectors_message, .msglen = sizeof(ed25519_837_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_837_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_837_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_838_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_838_test_vectors_message[] = { 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, }; static const u8 ed25519_838_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_838_test_case = { .name = "EDDSA25519-SHA512/wei25519 838", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_838_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_838_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_838_test_vectors_message, .msglen = sizeof(ed25519_838_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_838_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_838_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_839_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_839_test_vectors_message[] = { 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, }; static const u8 ed25519_839_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_839_test_case = { .name = "EDDSA25519-SHA512/wei25519 839", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_839_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_839_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_839_test_vectors_message, .msglen = sizeof(ed25519_839_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_839_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_839_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_840_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_840_test_vectors_message[] = { 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, }; static const u8 ed25519_840_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_840_test_case = { .name = "EDDSA25519-SHA512/wei25519 840", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_840_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_840_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_840_test_vectors_message, .msglen = sizeof(ed25519_840_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_840_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_840_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_841_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_841_test_vectors_message[] = { 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, }; static const u8 ed25519_841_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_841_test_case = { .name = "EDDSA25519-SHA512/wei25519 841", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_841_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_841_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_841_test_vectors_message, .msglen = sizeof(ed25519_841_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_841_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_841_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_842_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_842_test_vectors_message[] = { 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, }; static const u8 ed25519_842_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_842_test_case = { .name = "EDDSA25519-SHA512/wei25519 842", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_842_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_842_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_842_test_vectors_message, .msglen = sizeof(ed25519_842_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_842_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_842_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_843_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_843_test_vectors_message[] = { 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, }; static const u8 ed25519_843_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_843_test_case = { .name = "EDDSA25519-SHA512/wei25519 843", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_843_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_843_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_843_test_vectors_message, .msglen = sizeof(ed25519_843_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_843_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_843_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_844_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_844_test_vectors_message[] = { 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, }; static const u8 ed25519_844_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_844_test_case = { .name = "EDDSA25519-SHA512/wei25519 844", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_844_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_844_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_844_test_vectors_message, .msglen = sizeof(ed25519_844_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_844_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_844_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_845_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_845_test_vectors_message[] = { 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, }; static const u8 ed25519_845_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_845_test_case = { .name = "EDDSA25519-SHA512/wei25519 845", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_845_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_845_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_845_test_vectors_message, .msglen = sizeof(ed25519_845_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_845_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_845_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_846_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_846_test_vectors_message[] = { 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, }; static const u8 ed25519_846_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_846_test_case = { .name = "EDDSA25519-SHA512/wei25519 846", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_846_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_846_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_846_test_vectors_message, .msglen = sizeof(ed25519_846_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_846_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_846_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_847_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_847_test_vectors_message[] = { 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, }; static const u8 ed25519_847_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_847_test_case = { .name = "EDDSA25519-SHA512/wei25519 847", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_847_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_847_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_847_test_vectors_message, .msglen = sizeof(ed25519_847_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_847_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_847_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_848_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_848_test_vectors_message[] = { 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, }; static const u8 ed25519_848_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_848_test_case = { .name = "EDDSA25519-SHA512/wei25519 848", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_848_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_848_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_848_test_vectors_message, .msglen = sizeof(ed25519_848_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_848_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_848_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_849_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_849_test_vectors_message[] = { 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, }; static const u8 ed25519_849_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_849_test_case = { .name = "EDDSA25519-SHA512/wei25519 849", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_849_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_849_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_849_test_vectors_message, .msglen = sizeof(ed25519_849_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_849_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_849_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_850_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_850_test_vectors_message[] = { 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, }; static const u8 ed25519_850_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_850_test_case = { .name = "EDDSA25519-SHA512/wei25519 850", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_850_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_850_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_850_test_vectors_message, .msglen = sizeof(ed25519_850_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_850_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_850_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_851_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_851_test_vectors_message[] = { 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, }; static const u8 ed25519_851_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_851_test_case = { .name = "EDDSA25519-SHA512/wei25519 851", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_851_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_851_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_851_test_vectors_message, .msglen = sizeof(ed25519_851_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_851_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_851_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_852_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_852_test_vectors_message[] = { 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, }; static const u8 ed25519_852_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_852_test_case = { .name = "EDDSA25519-SHA512/wei25519 852", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_852_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_852_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_852_test_vectors_message, .msglen = sizeof(ed25519_852_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_852_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_852_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_853_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_853_test_vectors_message[] = { 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, }; static const u8 ed25519_853_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_853_test_case = { .name = "EDDSA25519-SHA512/wei25519 853", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_853_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_853_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_853_test_vectors_message, .msglen = sizeof(ed25519_853_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_853_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_853_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_854_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_854_test_vectors_message[] = { 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, }; static const u8 ed25519_854_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_854_test_case = { .name = "EDDSA25519-SHA512/wei25519 854", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_854_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_854_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_854_test_vectors_message, .msglen = sizeof(ed25519_854_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_854_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_854_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_855_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_855_test_vectors_message[] = { 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, }; static const u8 ed25519_855_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_855_test_case = { .name = "EDDSA25519-SHA512/wei25519 855", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_855_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_855_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_855_test_vectors_message, .msglen = sizeof(ed25519_855_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_855_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_855_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_856_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_856_test_vectors_message[] = { 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, }; static const u8 ed25519_856_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_856_test_case = { .name = "EDDSA25519-SHA512/wei25519 856", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_856_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_856_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_856_test_vectors_message, .msglen = sizeof(ed25519_856_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_856_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_856_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_857_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_857_test_vectors_message[] = { 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, }; static const u8 ed25519_857_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_857_test_case = { .name = "EDDSA25519-SHA512/wei25519 857", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_857_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_857_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_857_test_vectors_message, .msglen = sizeof(ed25519_857_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_857_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_857_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_858_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_858_test_vectors_message[] = { 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, }; static const u8 ed25519_858_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_858_test_case = { .name = "EDDSA25519-SHA512/wei25519 858", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_858_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_858_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_858_test_vectors_message, .msglen = sizeof(ed25519_858_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_858_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_858_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_859_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_859_test_vectors_message[] = { 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, }; static const u8 ed25519_859_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_859_test_case = { .name = "EDDSA25519-SHA512/wei25519 859", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_859_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_859_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_859_test_vectors_message, .msglen = sizeof(ed25519_859_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_859_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_859_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_860_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_860_test_vectors_message[] = { 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, }; static const u8 ed25519_860_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_860_test_case = { .name = "EDDSA25519-SHA512/wei25519 860", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_860_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_860_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_860_test_vectors_message, .msglen = sizeof(ed25519_860_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_860_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_860_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_861_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_861_test_vectors_message[] = { 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, }; static const u8 ed25519_861_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_861_test_case = { .name = "EDDSA25519-SHA512/wei25519 861", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_861_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_861_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_861_test_vectors_message, .msglen = sizeof(ed25519_861_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_861_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_861_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_862_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_862_test_vectors_message[] = { 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, }; static const u8 ed25519_862_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_862_test_case = { .name = "EDDSA25519-SHA512/wei25519 862", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_862_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_862_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_862_test_vectors_message, .msglen = sizeof(ed25519_862_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_862_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_862_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_863_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_863_test_vectors_message[] = { 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, }; static const u8 ed25519_863_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_863_test_case = { .name = "EDDSA25519-SHA512/wei25519 863", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_863_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_863_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_863_test_vectors_message, .msglen = sizeof(ed25519_863_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_863_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_863_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_864_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_864_test_vectors_message[] = { 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, }; static const u8 ed25519_864_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_864_test_case = { .name = "EDDSA25519-SHA512/wei25519 864", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_864_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_864_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_864_test_vectors_message, .msglen = sizeof(ed25519_864_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_864_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_864_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_865_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_865_test_vectors_message[] = { 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, }; static const u8 ed25519_865_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_865_test_case = { .name = "EDDSA25519-SHA512/wei25519 865", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_865_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_865_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_865_test_vectors_message, .msglen = sizeof(ed25519_865_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_865_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_865_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_866_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_866_test_vectors_message[] = { 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, }; static const u8 ed25519_866_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_866_test_case = { .name = "EDDSA25519-SHA512/wei25519 866", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_866_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_866_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_866_test_vectors_message, .msglen = sizeof(ed25519_866_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_866_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_866_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_867_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_867_test_vectors_message[] = { 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, }; static const u8 ed25519_867_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_867_test_case = { .name = "EDDSA25519-SHA512/wei25519 867", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_867_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_867_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_867_test_vectors_message, .msglen = sizeof(ed25519_867_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_867_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_867_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_868_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_868_test_vectors_message[] = { 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, }; static const u8 ed25519_868_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_868_test_case = { .name = "EDDSA25519-SHA512/wei25519 868", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_868_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_868_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_868_test_vectors_message, .msglen = sizeof(ed25519_868_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_868_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_868_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_869_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_869_test_vectors_message[] = { 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, }; static const u8 ed25519_869_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_869_test_case = { .name = "EDDSA25519-SHA512/wei25519 869", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_869_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_869_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_869_test_vectors_message, .msglen = sizeof(ed25519_869_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_869_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_869_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_870_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_870_test_vectors_message[] = { 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, }; static const u8 ed25519_870_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_870_test_case = { .name = "EDDSA25519-SHA512/wei25519 870", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_870_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_870_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_870_test_vectors_message, .msglen = sizeof(ed25519_870_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_870_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_870_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_871_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_871_test_vectors_message[] = { 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, }; static const u8 ed25519_871_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_871_test_case = { .name = "EDDSA25519-SHA512/wei25519 871", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_871_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_871_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_871_test_vectors_message, .msglen = sizeof(ed25519_871_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_871_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_871_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_872_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_872_test_vectors_message[] = { 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, }; static const u8 ed25519_872_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_872_test_case = { .name = "EDDSA25519-SHA512/wei25519 872", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_872_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_872_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_872_test_vectors_message, .msglen = sizeof(ed25519_872_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_872_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_872_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_873_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_873_test_vectors_message[] = { 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, }; static const u8 ed25519_873_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_873_test_case = { .name = "EDDSA25519-SHA512/wei25519 873", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_873_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_873_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_873_test_vectors_message, .msglen = sizeof(ed25519_873_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_873_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_873_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_874_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_874_test_vectors_message[] = { 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, }; static const u8 ed25519_874_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_874_test_case = { .name = "EDDSA25519-SHA512/wei25519 874", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_874_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_874_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_874_test_vectors_message, .msglen = sizeof(ed25519_874_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_874_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_874_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_875_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_875_test_vectors_message[] = { 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, }; static const u8 ed25519_875_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_875_test_case = { .name = "EDDSA25519-SHA512/wei25519 875", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_875_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_875_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_875_test_vectors_message, .msglen = sizeof(ed25519_875_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_875_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_875_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_876_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_876_test_vectors_message[] = { 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, }; static const u8 ed25519_876_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_876_test_case = { .name = "EDDSA25519-SHA512/wei25519 876", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_876_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_876_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_876_test_vectors_message, .msglen = sizeof(ed25519_876_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_876_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_876_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_877_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_877_test_vectors_message[] = { 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, }; static const u8 ed25519_877_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_877_test_case = { .name = "EDDSA25519-SHA512/wei25519 877", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_877_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_877_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_877_test_vectors_message, .msglen = sizeof(ed25519_877_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_877_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_877_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_878_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_878_test_vectors_message[] = { 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, }; static const u8 ed25519_878_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_878_test_case = { .name = "EDDSA25519-SHA512/wei25519 878", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_878_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_878_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_878_test_vectors_message, .msglen = sizeof(ed25519_878_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_878_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_878_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_879_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_879_test_vectors_message[] = { 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, }; static const u8 ed25519_879_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_879_test_case = { .name = "EDDSA25519-SHA512/wei25519 879", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_879_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_879_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_879_test_vectors_message, .msglen = sizeof(ed25519_879_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_879_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_879_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_880_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_880_test_vectors_message[] = { 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, }; static const u8 ed25519_880_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_880_test_case = { .name = "EDDSA25519-SHA512/wei25519 880", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_880_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_880_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_880_test_vectors_message, .msglen = sizeof(ed25519_880_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_880_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_880_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_881_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_881_test_vectors_message[] = { 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, }; static const u8 ed25519_881_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_881_test_case = { .name = "EDDSA25519-SHA512/wei25519 881", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_881_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_881_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_881_test_vectors_message, .msglen = sizeof(ed25519_881_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_881_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_881_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_882_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_882_test_vectors_message[] = { 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, }; static const u8 ed25519_882_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_882_test_case = { .name = "EDDSA25519-SHA512/wei25519 882", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_882_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_882_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_882_test_vectors_message, .msglen = sizeof(ed25519_882_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_882_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_882_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_883_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_883_test_vectors_message[] = { 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, }; static const u8 ed25519_883_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_883_test_case = { .name = "EDDSA25519-SHA512/wei25519 883", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_883_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_883_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_883_test_vectors_message, .msglen = sizeof(ed25519_883_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_883_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_883_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_884_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_884_test_vectors_message[] = { 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, }; static const u8 ed25519_884_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_884_test_case = { .name = "EDDSA25519-SHA512/wei25519 884", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_884_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_884_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_884_test_vectors_message, .msglen = sizeof(ed25519_884_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_884_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_884_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_885_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_885_test_vectors_message[] = { 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, }; static const u8 ed25519_885_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_885_test_case = { .name = "EDDSA25519-SHA512/wei25519 885", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_885_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_885_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_885_test_vectors_message, .msglen = sizeof(ed25519_885_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_885_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_885_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_886_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_886_test_vectors_message[] = { 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, }; static const u8 ed25519_886_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_886_test_case = { .name = "EDDSA25519-SHA512/wei25519 886", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_886_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_886_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_886_test_vectors_message, .msglen = sizeof(ed25519_886_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_886_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_886_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_887_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_887_test_vectors_message[] = { 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, }; static const u8 ed25519_887_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_887_test_case = { .name = "EDDSA25519-SHA512/wei25519 887", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_887_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_887_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_887_test_vectors_message, .msglen = sizeof(ed25519_887_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_887_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_887_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_888_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_888_test_vectors_message[] = { 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, }; static const u8 ed25519_888_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_888_test_case = { .name = "EDDSA25519-SHA512/wei25519 888", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_888_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_888_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_888_test_vectors_message, .msglen = sizeof(ed25519_888_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_888_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_888_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_889_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_889_test_vectors_message[] = { 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, }; static const u8 ed25519_889_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_889_test_case = { .name = "EDDSA25519-SHA512/wei25519 889", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_889_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_889_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_889_test_vectors_message, .msglen = sizeof(ed25519_889_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_889_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_889_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_890_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_890_test_vectors_message[] = { 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, }; static const u8 ed25519_890_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_890_test_case = { .name = "EDDSA25519-SHA512/wei25519 890", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_890_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_890_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_890_test_vectors_message, .msglen = sizeof(ed25519_890_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_890_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_890_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_891_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_891_test_vectors_message[] = { 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, }; static const u8 ed25519_891_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_891_test_case = { .name = "EDDSA25519-SHA512/wei25519 891", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_891_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_891_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_891_test_vectors_message, .msglen = sizeof(ed25519_891_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_891_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_891_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_892_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_892_test_vectors_message[] = { 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, }; static const u8 ed25519_892_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_892_test_case = { .name = "EDDSA25519-SHA512/wei25519 892", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_892_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_892_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_892_test_vectors_message, .msglen = sizeof(ed25519_892_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_892_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_892_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_893_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_893_test_vectors_message[] = { 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, }; static const u8 ed25519_893_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_893_test_case = { .name = "EDDSA25519-SHA512/wei25519 893", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_893_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_893_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_893_test_vectors_message, .msglen = sizeof(ed25519_893_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_893_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_893_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_894_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_894_test_vectors_message[] = { 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, }; static const u8 ed25519_894_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_894_test_case = { .name = "EDDSA25519-SHA512/wei25519 894", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_894_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_894_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_894_test_vectors_message, .msglen = sizeof(ed25519_894_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_894_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_894_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_895_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_895_test_vectors_message[] = { 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, }; static const u8 ed25519_895_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_895_test_case = { .name = "EDDSA25519-SHA512/wei25519 895", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_895_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_895_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_895_test_vectors_message, .msglen = sizeof(ed25519_895_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_895_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_895_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_896_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_896_test_vectors_message[] = { 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, }; static const u8 ed25519_896_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_896_test_case = { .name = "EDDSA25519-SHA512/wei25519 896", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_896_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_896_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_896_test_vectors_message, .msglen = sizeof(ed25519_896_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_896_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_896_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_897_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_897_test_vectors_message[] = { 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, }; static const u8 ed25519_897_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_897_test_case = { .name = "EDDSA25519-SHA512/wei25519 897", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_897_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_897_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_897_test_vectors_message, .msglen = sizeof(ed25519_897_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_897_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_897_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_898_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_898_test_vectors_message[] = { 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, }; static const u8 ed25519_898_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_898_test_case = { .name = "EDDSA25519-SHA512/wei25519 898", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_898_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_898_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_898_test_vectors_message, .msglen = sizeof(ed25519_898_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_898_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_898_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_899_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_899_test_vectors_message[] = { 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, }; static const u8 ed25519_899_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_899_test_case = { .name = "EDDSA25519-SHA512/wei25519 899", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_899_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_899_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_899_test_vectors_message, .msglen = sizeof(ed25519_899_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_899_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_899_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_900_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_900_test_vectors_message[] = { 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, }; static const u8 ed25519_900_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_900_test_case = { .name = "EDDSA25519-SHA512/wei25519 900", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_900_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_900_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_900_test_vectors_message, .msglen = sizeof(ed25519_900_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_900_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_900_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_901_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_901_test_vectors_message[] = { 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, }; static const u8 ed25519_901_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_901_test_case = { .name = "EDDSA25519-SHA512/wei25519 901", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_901_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_901_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_901_test_vectors_message, .msglen = sizeof(ed25519_901_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_901_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_901_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_902_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_902_test_vectors_message[] = { 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, }; static const u8 ed25519_902_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_902_test_case = { .name = "EDDSA25519-SHA512/wei25519 902", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_902_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_902_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_902_test_vectors_message, .msglen = sizeof(ed25519_902_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_902_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_902_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_903_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_903_test_vectors_message[] = { 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, }; static const u8 ed25519_903_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_903_test_case = { .name = "EDDSA25519-SHA512/wei25519 903", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_903_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_903_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_903_test_vectors_message, .msglen = sizeof(ed25519_903_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_903_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_903_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_904_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_904_test_vectors_message[] = { 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, }; static const u8 ed25519_904_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_904_test_case = { .name = "EDDSA25519-SHA512/wei25519 904", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_904_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_904_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_904_test_vectors_message, .msglen = sizeof(ed25519_904_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_904_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_904_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_905_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_905_test_vectors_message[] = { 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, }; static const u8 ed25519_905_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_905_test_case = { .name = "EDDSA25519-SHA512/wei25519 905", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_905_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_905_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_905_test_vectors_message, .msglen = sizeof(ed25519_905_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_905_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_905_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_906_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_906_test_vectors_message[] = { 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, }; static const u8 ed25519_906_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_906_test_case = { .name = "EDDSA25519-SHA512/wei25519 906", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_906_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_906_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_906_test_vectors_message, .msglen = sizeof(ed25519_906_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_906_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_906_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_907_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_907_test_vectors_message[] = { 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, }; static const u8 ed25519_907_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_907_test_case = { .name = "EDDSA25519-SHA512/wei25519 907", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_907_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_907_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_907_test_vectors_message, .msglen = sizeof(ed25519_907_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_907_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_907_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_908_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_908_test_vectors_message[] = { 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, }; static const u8 ed25519_908_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_908_test_case = { .name = "EDDSA25519-SHA512/wei25519 908", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_908_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_908_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_908_test_vectors_message, .msglen = sizeof(ed25519_908_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_908_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_908_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_909_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_909_test_vectors_message[] = { 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, }; static const u8 ed25519_909_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_909_test_case = { .name = "EDDSA25519-SHA512/wei25519 909", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_909_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_909_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_909_test_vectors_message, .msglen = sizeof(ed25519_909_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_909_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_909_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_910_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_910_test_vectors_message[] = { 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, }; static const u8 ed25519_910_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_910_test_case = { .name = "EDDSA25519-SHA512/wei25519 910", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_910_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_910_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_910_test_vectors_message, .msglen = sizeof(ed25519_910_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_910_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_910_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_911_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_911_test_vectors_message[] = { 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, }; static const u8 ed25519_911_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_911_test_case = { .name = "EDDSA25519-SHA512/wei25519 911", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_911_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_911_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_911_test_vectors_message, .msglen = sizeof(ed25519_911_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_911_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_911_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_912_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_912_test_vectors_message[] = { 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, }; static const u8 ed25519_912_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_912_test_case = { .name = "EDDSA25519-SHA512/wei25519 912", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_912_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_912_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_912_test_vectors_message, .msglen = sizeof(ed25519_912_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_912_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_912_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_913_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_913_test_vectors_message[] = { 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, }; static const u8 ed25519_913_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_913_test_case = { .name = "EDDSA25519-SHA512/wei25519 913", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_913_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_913_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_913_test_vectors_message, .msglen = sizeof(ed25519_913_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_913_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_913_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_914_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_914_test_vectors_message[] = { 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, }; static const u8 ed25519_914_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_914_test_case = { .name = "EDDSA25519-SHA512/wei25519 914", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_914_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_914_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_914_test_vectors_message, .msglen = sizeof(ed25519_914_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_914_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_914_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_915_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_915_test_vectors_message[] = { 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, }; static const u8 ed25519_915_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_915_test_case = { .name = "EDDSA25519-SHA512/wei25519 915", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_915_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_915_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_915_test_vectors_message, .msglen = sizeof(ed25519_915_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_915_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_915_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_916_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_916_test_vectors_message[] = { 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, }; static const u8 ed25519_916_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_916_test_case = { .name = "EDDSA25519-SHA512/wei25519 916", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_916_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_916_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_916_test_vectors_message, .msglen = sizeof(ed25519_916_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_916_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_916_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_917_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_917_test_vectors_message[] = { 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, }; static const u8 ed25519_917_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_917_test_case = { .name = "EDDSA25519-SHA512/wei25519 917", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_917_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_917_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_917_test_vectors_message, .msglen = sizeof(ed25519_917_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_917_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_917_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_918_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_918_test_vectors_message[] = { 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, }; static const u8 ed25519_918_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_918_test_case = { .name = "EDDSA25519-SHA512/wei25519 918", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_918_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_918_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_918_test_vectors_message, .msglen = sizeof(ed25519_918_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_918_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_918_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_919_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_919_test_vectors_message[] = { 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, }; static const u8 ed25519_919_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_919_test_case = { .name = "EDDSA25519-SHA512/wei25519 919", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_919_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_919_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_919_test_vectors_message, .msglen = sizeof(ed25519_919_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_919_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_919_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_920_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_920_test_vectors_message[] = { 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, }; static const u8 ed25519_920_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_920_test_case = { .name = "EDDSA25519-SHA512/wei25519 920", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_920_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_920_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_920_test_vectors_message, .msglen = sizeof(ed25519_920_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_920_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_920_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_921_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_921_test_vectors_message[] = { 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, }; static const u8 ed25519_921_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_921_test_case = { .name = "EDDSA25519-SHA512/wei25519 921", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_921_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_921_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_921_test_vectors_message, .msglen = sizeof(ed25519_921_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_921_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_921_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_922_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_922_test_vectors_message[] = { 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, }; static const u8 ed25519_922_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_922_test_case = { .name = "EDDSA25519-SHA512/wei25519 922", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_922_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_922_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_922_test_vectors_message, .msglen = sizeof(ed25519_922_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_922_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_922_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_923_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_923_test_vectors_message[] = { 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, }; static const u8 ed25519_923_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_923_test_case = { .name = "EDDSA25519-SHA512/wei25519 923", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_923_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_923_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_923_test_vectors_message, .msglen = sizeof(ed25519_923_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_923_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_923_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_924_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_924_test_vectors_message[] = { 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, }; static const u8 ed25519_924_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_924_test_case = { .name = "EDDSA25519-SHA512/wei25519 924", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_924_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_924_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_924_test_vectors_message, .msglen = sizeof(ed25519_924_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_924_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_924_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_925_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_925_test_vectors_message[] = { 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, }; static const u8 ed25519_925_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_925_test_case = { .name = "EDDSA25519-SHA512/wei25519 925", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_925_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_925_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_925_test_vectors_message, .msglen = sizeof(ed25519_925_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_925_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_925_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_926_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_926_test_vectors_message[] = { 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, }; static const u8 ed25519_926_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_926_test_case = { .name = "EDDSA25519-SHA512/wei25519 926", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_926_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_926_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_926_test_vectors_message, .msglen = sizeof(ed25519_926_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_926_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_926_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_927_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_927_test_vectors_message[] = { 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, }; static const u8 ed25519_927_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_927_test_case = { .name = "EDDSA25519-SHA512/wei25519 927", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_927_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_927_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_927_test_vectors_message, .msglen = sizeof(ed25519_927_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_927_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_927_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_928_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_928_test_vectors_message[] = { 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, }; static const u8 ed25519_928_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_928_test_case = { .name = "EDDSA25519-SHA512/wei25519 928", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_928_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_928_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_928_test_vectors_message, .msglen = sizeof(ed25519_928_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_928_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_928_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_929_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_929_test_vectors_message[] = { 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, }; static const u8 ed25519_929_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_929_test_case = { .name = "EDDSA25519-SHA512/wei25519 929", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_929_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_929_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_929_test_vectors_message, .msglen = sizeof(ed25519_929_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_929_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_929_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_930_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_930_test_vectors_message[] = { 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, }; static const u8 ed25519_930_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_930_test_case = { .name = "EDDSA25519-SHA512/wei25519 930", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_930_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_930_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_930_test_vectors_message, .msglen = sizeof(ed25519_930_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_930_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_930_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_931_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_931_test_vectors_message[] = { 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, }; static const u8 ed25519_931_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_931_test_case = { .name = "EDDSA25519-SHA512/wei25519 931", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_931_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_931_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_931_test_vectors_message, .msglen = sizeof(ed25519_931_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_931_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_931_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_932_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_932_test_vectors_message[] = { 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, }; static const u8 ed25519_932_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_932_test_case = { .name = "EDDSA25519-SHA512/wei25519 932", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_932_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_932_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_932_test_vectors_message, .msglen = sizeof(ed25519_932_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_932_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_932_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_933_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_933_test_vectors_message[] = { 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, }; static const u8 ed25519_933_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_933_test_case = { .name = "EDDSA25519-SHA512/wei25519 933", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_933_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_933_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_933_test_vectors_message, .msglen = sizeof(ed25519_933_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_933_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_933_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_934_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_934_test_vectors_message[] = { 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, }; static const u8 ed25519_934_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_934_test_case = { .name = "EDDSA25519-SHA512/wei25519 934", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_934_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_934_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_934_test_vectors_message, .msglen = sizeof(ed25519_934_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_934_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_934_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_935_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_935_test_vectors_message[] = { 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, }; static const u8 ed25519_935_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_935_test_case = { .name = "EDDSA25519-SHA512/wei25519 935", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_935_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_935_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_935_test_vectors_message, .msglen = sizeof(ed25519_935_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_935_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_935_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_936_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_936_test_vectors_message[] = { 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, }; static const u8 ed25519_936_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_936_test_case = { .name = "EDDSA25519-SHA512/wei25519 936", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_936_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_936_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_936_test_vectors_message, .msglen = sizeof(ed25519_936_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_936_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_936_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_937_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_937_test_vectors_message[] = { 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, }; static const u8 ed25519_937_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_937_test_case = { .name = "EDDSA25519-SHA512/wei25519 937", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_937_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_937_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_937_test_vectors_message, .msglen = sizeof(ed25519_937_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_937_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_937_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_938_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_938_test_vectors_message[] = { 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, }; static const u8 ed25519_938_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_938_test_case = { .name = "EDDSA25519-SHA512/wei25519 938", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_938_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_938_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_938_test_vectors_message, .msglen = sizeof(ed25519_938_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_938_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_938_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_939_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_939_test_vectors_message[] = { 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, }; static const u8 ed25519_939_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_939_test_case = { .name = "EDDSA25519-SHA512/wei25519 939", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_939_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_939_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_939_test_vectors_message, .msglen = sizeof(ed25519_939_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_939_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_939_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_940_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_940_test_vectors_message[] = { 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, }; static const u8 ed25519_940_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_940_test_case = { .name = "EDDSA25519-SHA512/wei25519 940", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_940_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_940_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_940_test_vectors_message, .msglen = sizeof(ed25519_940_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_940_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_940_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_941_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_941_test_vectors_message[] = { 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, }; static const u8 ed25519_941_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_941_test_case = { .name = "EDDSA25519-SHA512/wei25519 941", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_941_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_941_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_941_test_vectors_message, .msglen = sizeof(ed25519_941_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_941_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_941_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_942_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_942_test_vectors_message[] = { 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, }; static const u8 ed25519_942_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_942_test_case = { .name = "EDDSA25519-SHA512/wei25519 942", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_942_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_942_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_942_test_vectors_message, .msglen = sizeof(ed25519_942_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_942_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_942_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_943_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_943_test_vectors_message[] = { 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, }; static const u8 ed25519_943_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_943_test_case = { .name = "EDDSA25519-SHA512/wei25519 943", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_943_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_943_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_943_test_vectors_message, .msglen = sizeof(ed25519_943_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_943_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_943_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_944_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_944_test_vectors_message[] = { 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, }; static const u8 ed25519_944_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_944_test_case = { .name = "EDDSA25519-SHA512/wei25519 944", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_944_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_944_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_944_test_vectors_message, .msglen = sizeof(ed25519_944_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_944_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_944_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_945_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_945_test_vectors_message[] = { 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, }; static const u8 ed25519_945_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_945_test_case = { .name = "EDDSA25519-SHA512/wei25519 945", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_945_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_945_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_945_test_vectors_message, .msglen = sizeof(ed25519_945_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_945_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_945_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_946_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_946_test_vectors_message[] = { 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, }; static const u8 ed25519_946_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_946_test_case = { .name = "EDDSA25519-SHA512/wei25519 946", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_946_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_946_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_946_test_vectors_message, .msglen = sizeof(ed25519_946_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_946_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_946_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_947_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_947_test_vectors_message[] = { 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, }; static const u8 ed25519_947_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_947_test_case = { .name = "EDDSA25519-SHA512/wei25519 947", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_947_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_947_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_947_test_vectors_message, .msglen = sizeof(ed25519_947_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_947_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_947_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_948_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_948_test_vectors_message[] = { 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, }; static const u8 ed25519_948_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_948_test_case = { .name = "EDDSA25519-SHA512/wei25519 948", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_948_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_948_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_948_test_vectors_message, .msglen = sizeof(ed25519_948_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_948_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_948_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_949_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_949_test_vectors_message[] = { 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, }; static const u8 ed25519_949_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_949_test_case = { .name = "EDDSA25519-SHA512/wei25519 949", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_949_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_949_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_949_test_vectors_message, .msglen = sizeof(ed25519_949_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_949_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_949_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_950_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_950_test_vectors_message[] = { 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, }; static const u8 ed25519_950_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_950_test_case = { .name = "EDDSA25519-SHA512/wei25519 950", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_950_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_950_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_950_test_vectors_message, .msglen = sizeof(ed25519_950_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_950_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_950_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_951_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_951_test_vectors_message[] = { 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, }; static const u8 ed25519_951_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_951_test_case = { .name = "EDDSA25519-SHA512/wei25519 951", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_951_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_951_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_951_test_vectors_message, .msglen = sizeof(ed25519_951_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_951_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_951_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_952_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_952_test_vectors_message[] = { 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, }; static const u8 ed25519_952_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_952_test_case = { .name = "EDDSA25519-SHA512/wei25519 952", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_952_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_952_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_952_test_vectors_message, .msglen = sizeof(ed25519_952_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_952_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_952_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_953_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_953_test_vectors_message[] = { 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, }; static const u8 ed25519_953_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_953_test_case = { .name = "EDDSA25519-SHA512/wei25519 953", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_953_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_953_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_953_test_vectors_message, .msglen = sizeof(ed25519_953_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_953_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_953_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_954_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_954_test_vectors_message[] = { 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, }; static const u8 ed25519_954_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_954_test_case = { .name = "EDDSA25519-SHA512/wei25519 954", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_954_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_954_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_954_test_vectors_message, .msglen = sizeof(ed25519_954_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_954_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_954_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_955_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_955_test_vectors_message[] = { 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, }; static const u8 ed25519_955_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_955_test_case = { .name = "EDDSA25519-SHA512/wei25519 955", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_955_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_955_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_955_test_vectors_message, .msglen = sizeof(ed25519_955_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_955_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_955_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_956_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_956_test_vectors_message[] = { 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, }; static const u8 ed25519_956_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_956_test_case = { .name = "EDDSA25519-SHA512/wei25519 956", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_956_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_956_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_956_test_vectors_message, .msglen = sizeof(ed25519_956_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_956_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_956_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_957_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_957_test_vectors_message[] = { 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, }; static const u8 ed25519_957_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_957_test_case = { .name = "EDDSA25519-SHA512/wei25519 957", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_957_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_957_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_957_test_vectors_message, .msglen = sizeof(ed25519_957_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_957_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_957_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_958_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_958_test_vectors_message[] = { 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, }; static const u8 ed25519_958_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_958_test_case = { .name = "EDDSA25519-SHA512/wei25519 958", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_958_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_958_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_958_test_vectors_message, .msglen = sizeof(ed25519_958_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_958_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_958_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_959_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_959_test_vectors_message[] = { 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, }; static const u8 ed25519_959_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_959_test_case = { .name = "EDDSA25519-SHA512/wei25519 959", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_959_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_959_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_959_test_vectors_message, .msglen = sizeof(ed25519_959_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_959_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_959_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_960_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_960_test_vectors_message[] = { 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, }; static const u8 ed25519_960_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_960_test_case = { .name = "EDDSA25519-SHA512/wei25519 960", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_960_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_960_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_960_test_vectors_message, .msglen = sizeof(ed25519_960_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_960_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_960_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_961_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_961_test_vectors_message[] = { 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, }; static const u8 ed25519_961_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_961_test_case = { .name = "EDDSA25519-SHA512/wei25519 961", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_961_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_961_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_961_test_vectors_message, .msglen = sizeof(ed25519_961_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_961_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_961_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_962_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_962_test_vectors_message[] = { 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, }; static const u8 ed25519_962_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_962_test_case = { .name = "EDDSA25519-SHA512/wei25519 962", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_962_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_962_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_962_test_vectors_message, .msglen = sizeof(ed25519_962_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_962_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_962_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_963_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_963_test_vectors_message[] = { 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, }; static const u8 ed25519_963_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_963_test_case = { .name = "EDDSA25519-SHA512/wei25519 963", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_963_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_963_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_963_test_vectors_message, .msglen = sizeof(ed25519_963_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_963_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_963_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_964_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_964_test_vectors_message[] = { 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, }; static const u8 ed25519_964_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_964_test_case = { .name = "EDDSA25519-SHA512/wei25519 964", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_964_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_964_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_964_test_vectors_message, .msglen = sizeof(ed25519_964_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_964_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_964_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_965_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_965_test_vectors_message[] = { 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, }; static const u8 ed25519_965_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_965_test_case = { .name = "EDDSA25519-SHA512/wei25519 965", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_965_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_965_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_965_test_vectors_message, .msglen = sizeof(ed25519_965_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_965_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_965_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_966_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_966_test_vectors_message[] = { 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, }; static const u8 ed25519_966_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_966_test_case = { .name = "EDDSA25519-SHA512/wei25519 966", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_966_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_966_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_966_test_vectors_message, .msglen = sizeof(ed25519_966_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_966_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_966_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_967_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_967_test_vectors_message[] = { 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, }; static const u8 ed25519_967_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_967_test_case = { .name = "EDDSA25519-SHA512/wei25519 967", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_967_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_967_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_967_test_vectors_message, .msglen = sizeof(ed25519_967_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_967_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_967_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_968_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_968_test_vectors_message[] = { 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, }; static const u8 ed25519_968_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_968_test_case = { .name = "EDDSA25519-SHA512/wei25519 968", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_968_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_968_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_968_test_vectors_message, .msglen = sizeof(ed25519_968_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_968_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_968_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_969_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_969_test_vectors_message[] = { 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, }; static const u8 ed25519_969_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_969_test_case = { .name = "EDDSA25519-SHA512/wei25519 969", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_969_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_969_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_969_test_vectors_message, .msglen = sizeof(ed25519_969_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_969_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_969_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_970_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_970_test_vectors_message[] = { 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, }; static const u8 ed25519_970_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_970_test_case = { .name = "EDDSA25519-SHA512/wei25519 970", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_970_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_970_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_970_test_vectors_message, .msglen = sizeof(ed25519_970_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_970_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_970_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_971_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_971_test_vectors_message[] = { 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, }; static const u8 ed25519_971_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_971_test_case = { .name = "EDDSA25519-SHA512/wei25519 971", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_971_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_971_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_971_test_vectors_message, .msglen = sizeof(ed25519_971_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_971_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_971_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_972_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_972_test_vectors_message[] = { 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, }; static const u8 ed25519_972_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_972_test_case = { .name = "EDDSA25519-SHA512/wei25519 972", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_972_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_972_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_972_test_vectors_message, .msglen = sizeof(ed25519_972_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_972_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_972_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_973_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_973_test_vectors_message[] = { 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, }; static const u8 ed25519_973_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_973_test_case = { .name = "EDDSA25519-SHA512/wei25519 973", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_973_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_973_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_973_test_vectors_message, .msglen = sizeof(ed25519_973_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_973_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_973_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_974_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_974_test_vectors_message[] = { 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, }; static const u8 ed25519_974_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_974_test_case = { .name = "EDDSA25519-SHA512/wei25519 974", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_974_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_974_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_974_test_vectors_message, .msglen = sizeof(ed25519_974_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_974_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_974_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_975_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_975_test_vectors_message[] = { 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, }; static const u8 ed25519_975_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_975_test_case = { .name = "EDDSA25519-SHA512/wei25519 975", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_975_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_975_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_975_test_vectors_message, .msglen = sizeof(ed25519_975_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_975_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_975_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_976_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_976_test_vectors_message[] = { 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, }; static const u8 ed25519_976_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_976_test_case = { .name = "EDDSA25519-SHA512/wei25519 976", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_976_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_976_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_976_test_vectors_message, .msglen = sizeof(ed25519_976_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_976_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_976_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_977_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_977_test_vectors_message[] = { 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, }; static const u8 ed25519_977_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_977_test_case = { .name = "EDDSA25519-SHA512/wei25519 977", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_977_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_977_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_977_test_vectors_message, .msglen = sizeof(ed25519_977_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_977_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_977_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_978_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_978_test_vectors_message[] = { 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, }; static const u8 ed25519_978_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_978_test_case = { .name = "EDDSA25519-SHA512/wei25519 978", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_978_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_978_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_978_test_vectors_message, .msglen = sizeof(ed25519_978_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_978_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_978_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_979_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_979_test_vectors_message[] = { 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, }; static const u8 ed25519_979_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_979_test_case = { .name = "EDDSA25519-SHA512/wei25519 979", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_979_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_979_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_979_test_vectors_message, .msglen = sizeof(ed25519_979_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_979_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_979_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_980_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_980_test_vectors_message[] = { 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, }; static const u8 ed25519_980_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_980_test_case = { .name = "EDDSA25519-SHA512/wei25519 980", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_980_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_980_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_980_test_vectors_message, .msglen = sizeof(ed25519_980_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_980_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_980_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_981_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_981_test_vectors_message[] = { 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, }; static const u8 ed25519_981_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_981_test_case = { .name = "EDDSA25519-SHA512/wei25519 981", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_981_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_981_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_981_test_vectors_message, .msglen = sizeof(ed25519_981_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_981_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_981_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_982_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_982_test_vectors_message[] = { 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, }; static const u8 ed25519_982_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_982_test_case = { .name = "EDDSA25519-SHA512/wei25519 982", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_982_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_982_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_982_test_vectors_message, .msglen = sizeof(ed25519_982_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_982_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_982_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_983_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_983_test_vectors_message[] = { 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, }; static const u8 ed25519_983_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_983_test_case = { .name = "EDDSA25519-SHA512/wei25519 983", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_983_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_983_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_983_test_vectors_message, .msglen = sizeof(ed25519_983_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_983_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_983_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_984_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_984_test_vectors_message[] = { 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, }; static const u8 ed25519_984_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_984_test_case = { .name = "EDDSA25519-SHA512/wei25519 984", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_984_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_984_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_984_test_vectors_message, .msglen = sizeof(ed25519_984_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_984_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_984_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_985_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_985_test_vectors_message[] = { 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, }; static const u8 ed25519_985_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_985_test_case = { .name = "EDDSA25519-SHA512/wei25519 985", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_985_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_985_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_985_test_vectors_message, .msglen = sizeof(ed25519_985_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_985_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_985_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_986_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_986_test_vectors_message[] = { 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, }; static const u8 ed25519_986_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_986_test_case = { .name = "EDDSA25519-SHA512/wei25519 986", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_986_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_986_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_986_test_vectors_message, .msglen = sizeof(ed25519_986_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_986_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_986_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_987_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_987_test_vectors_message[] = { 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, }; static const u8 ed25519_987_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_987_test_case = { .name = "EDDSA25519-SHA512/wei25519 987", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_987_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_987_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_987_test_vectors_message, .msglen = sizeof(ed25519_987_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_987_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_987_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_988_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_988_test_vectors_message[] = { 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, }; static const u8 ed25519_988_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_988_test_case = { .name = "EDDSA25519-SHA512/wei25519 988", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_988_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_988_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_988_test_vectors_message, .msglen = sizeof(ed25519_988_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_988_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_988_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_989_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_989_test_vectors_message[] = { 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, }; static const u8 ed25519_989_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_989_test_case = { .name = "EDDSA25519-SHA512/wei25519 989", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_989_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_989_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_989_test_vectors_message, .msglen = sizeof(ed25519_989_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_989_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_989_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_990_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_990_test_vectors_message[] = { 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, }; static const u8 ed25519_990_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_990_test_case = { .name = "EDDSA25519-SHA512/wei25519 990", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_990_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_990_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_990_test_vectors_message, .msglen = sizeof(ed25519_990_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_990_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_990_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_991_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_991_test_vectors_message[] = { 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, }; static const u8 ed25519_991_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_991_test_case = { .name = "EDDSA25519-SHA512/wei25519 991", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_991_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_991_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_991_test_vectors_message, .msglen = sizeof(ed25519_991_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_991_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_991_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_992_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_992_test_vectors_message[] = { 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, }; static const u8 ed25519_992_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_992_test_case = { .name = "EDDSA25519-SHA512/wei25519 992", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_992_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_992_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_992_test_vectors_message, .msglen = sizeof(ed25519_992_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_992_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_992_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_993_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_993_test_vectors_message[] = { 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, }; static const u8 ed25519_993_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_993_test_case = { .name = "EDDSA25519-SHA512/wei25519 993", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_993_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_993_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_993_test_vectors_message, .msglen = sizeof(ed25519_993_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_993_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_993_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_994_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_994_test_vectors_message[] = { 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, }; static const u8 ed25519_994_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_994_test_case = { .name = "EDDSA25519-SHA512/wei25519 994", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_994_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_994_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_994_test_vectors_message, .msglen = sizeof(ed25519_994_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_994_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_994_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_995_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_995_test_vectors_message[] = { 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, }; static const u8 ed25519_995_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_995_test_case = { .name = "EDDSA25519-SHA512/wei25519 995", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_995_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_995_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_995_test_vectors_message, .msglen = sizeof(ed25519_995_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_995_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_995_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_996_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_996_test_vectors_message[] = { 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, }; static const u8 ed25519_996_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_996_test_case = { .name = "EDDSA25519-SHA512/wei25519 996", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_996_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_996_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_996_test_vectors_message, .msglen = sizeof(ed25519_996_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_996_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_996_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_997_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_997_test_vectors_message[] = { 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, }; static const u8 ed25519_997_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_997_test_case = { .name = "EDDSA25519-SHA512/wei25519 997", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_997_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_997_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_997_test_vectors_message, .msglen = sizeof(ed25519_997_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_997_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_997_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_998_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_998_test_vectors_message[] = { 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, }; static const u8 ed25519_998_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_998_test_case = { .name = "EDDSA25519-SHA512/wei25519 998", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_998_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_998_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_998_test_vectors_message, .msglen = sizeof(ed25519_998_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_998_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_998_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_999_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_999_test_vectors_message[] = { 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, }; static const u8 ed25519_999_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_999_test_case = { .name = "EDDSA25519-SHA512/wei25519 999", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_999_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_999_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_999_test_vectors_message, .msglen = sizeof(ed25519_999_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_999_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_999_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1000_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1000_test_vectors_message[] = { 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, }; static const u8 ed25519_1000_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1000_test_case = { .name = "EDDSA25519-SHA512/wei25519 1000", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1000_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1000_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1000_test_vectors_message, .msglen = sizeof(ed25519_1000_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1000_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1000_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1001_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1001_test_vectors_message[] = { 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, }; static const u8 ed25519_1001_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1001_test_case = { .name = "EDDSA25519-SHA512/wei25519 1001", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1001_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1001_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1001_test_vectors_message, .msglen = sizeof(ed25519_1001_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1001_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1001_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1002_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1002_test_vectors_message[] = { 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, }; static const u8 ed25519_1002_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1002_test_case = { .name = "EDDSA25519-SHA512/wei25519 1002", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1002_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1002_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1002_test_vectors_message, .msglen = sizeof(ed25519_1002_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1002_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1002_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1003_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1003_test_vectors_message[] = { 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, }; static const u8 ed25519_1003_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1003_test_case = { .name = "EDDSA25519-SHA512/wei25519 1003", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1003_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1003_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1003_test_vectors_message, .msglen = sizeof(ed25519_1003_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1003_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1003_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1004_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1004_test_vectors_message[] = { 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, }; static const u8 ed25519_1004_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1004_test_case = { .name = "EDDSA25519-SHA512/wei25519 1004", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1004_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1004_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1004_test_vectors_message, .msglen = sizeof(ed25519_1004_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1004_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1004_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1005_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1005_test_vectors_message[] = { 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, }; static const u8 ed25519_1005_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1005_test_case = { .name = "EDDSA25519-SHA512/wei25519 1005", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1005_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1005_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1005_test_vectors_message, .msglen = sizeof(ed25519_1005_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1005_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1005_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1006_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1006_test_vectors_message[] = { 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, }; static const u8 ed25519_1006_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1006_test_case = { .name = "EDDSA25519-SHA512/wei25519 1006", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1006_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1006_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1006_test_vectors_message, .msglen = sizeof(ed25519_1006_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1006_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1006_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1007_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1007_test_vectors_message[] = { 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, }; static const u8 ed25519_1007_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1007_test_case = { .name = "EDDSA25519-SHA512/wei25519 1007", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1007_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1007_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1007_test_vectors_message, .msglen = sizeof(ed25519_1007_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1007_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1007_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1008_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1008_test_vectors_message[] = { 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, }; static const u8 ed25519_1008_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1008_test_case = { .name = "EDDSA25519-SHA512/wei25519 1008", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1008_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1008_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1008_test_vectors_message, .msglen = sizeof(ed25519_1008_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1008_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1008_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1009_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1009_test_vectors_message[] = { 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, }; static const u8 ed25519_1009_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1009_test_case = { .name = "EDDSA25519-SHA512/wei25519 1009", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1009_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1009_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1009_test_vectors_message, .msglen = sizeof(ed25519_1009_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1009_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1009_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1010_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1010_test_vectors_message[] = { 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, }; static const u8 ed25519_1010_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1010_test_case = { .name = "EDDSA25519-SHA512/wei25519 1010", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1010_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1010_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1010_test_vectors_message, .msglen = sizeof(ed25519_1010_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1010_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1010_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1011_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1011_test_vectors_message[] = { 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, }; static const u8 ed25519_1011_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1011_test_case = { .name = "EDDSA25519-SHA512/wei25519 1011", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1011_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1011_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1011_test_vectors_message, .msglen = sizeof(ed25519_1011_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1011_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1011_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1012_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1012_test_vectors_message[] = { 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, }; static const u8 ed25519_1012_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1012_test_case = { .name = "EDDSA25519-SHA512/wei25519 1012", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1012_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1012_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1012_test_vectors_message, .msglen = sizeof(ed25519_1012_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1012_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1012_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1013_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1013_test_vectors_message[] = { 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, }; static const u8 ed25519_1013_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1013_test_case = { .name = "EDDSA25519-SHA512/wei25519 1013", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1013_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1013_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1013_test_vectors_message, .msglen = sizeof(ed25519_1013_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1013_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1013_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1014_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1014_test_vectors_message[] = { 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, }; static const u8 ed25519_1014_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1014_test_case = { .name = "EDDSA25519-SHA512/wei25519 1014", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1014_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1014_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1014_test_vectors_message, .msglen = sizeof(ed25519_1014_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1014_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1014_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1015_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1015_test_vectors_message[] = { 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, }; static const u8 ed25519_1015_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1015_test_case = { .name = "EDDSA25519-SHA512/wei25519 1015", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1015_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1015_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1015_test_vectors_message, .msglen = sizeof(ed25519_1015_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1015_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1015_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1016_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1016_test_vectors_message[] = { 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, }; static const u8 ed25519_1016_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1016_test_case = { .name = "EDDSA25519-SHA512/wei25519 1016", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1016_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1016_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1016_test_vectors_message, .msglen = sizeof(ed25519_1016_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1016_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1016_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1017_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1017_test_vectors_message[] = { 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, }; static const u8 ed25519_1017_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1017_test_case = { .name = "EDDSA25519-SHA512/wei25519 1017", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1017_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1017_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1017_test_vectors_message, .msglen = sizeof(ed25519_1017_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1017_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1017_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1018_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1018_test_vectors_message[] = { 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, }; static const u8 ed25519_1018_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1018_test_case = { .name = "EDDSA25519-SHA512/wei25519 1018", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1018_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1018_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1018_test_vectors_message, .msglen = sizeof(ed25519_1018_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1018_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1018_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1019_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1019_test_vectors_message[] = { 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, }; static const u8 ed25519_1019_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1019_test_case = { .name = "EDDSA25519-SHA512/wei25519 1019", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1019_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1019_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1019_test_vectors_message, .msglen = sizeof(ed25519_1019_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1019_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1019_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1020_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1020_test_vectors_message[] = { 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, }; static const u8 ed25519_1020_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1020_test_case = { .name = "EDDSA25519-SHA512/wei25519 1020", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1020_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1020_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1020_test_vectors_message, .msglen = sizeof(ed25519_1020_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1020_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1020_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1021_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1021_test_vectors_message[] = { 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, }; static const u8 ed25519_1021_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1021_test_case = { .name = "EDDSA25519-SHA512/wei25519 1021", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1021_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1021_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1021_test_vectors_message, .msglen = sizeof(ed25519_1021_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1021_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1021_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1022_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1022_test_vectors_message[] = { 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, }; static const u8 ed25519_1022_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1022_test_case = { .name = "EDDSA25519-SHA512/wei25519 1022", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1022_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1022_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1022_test_vectors_message, .msglen = sizeof(ed25519_1022_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1022_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1022_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1023_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1023_test_vectors_message[] = { 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, }; static const u8 ed25519_1023_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1023_test_case = { .name = "EDDSA25519-SHA512/wei25519 1023", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1023_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1023_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1023_test_vectors_message, .msglen = sizeof(ed25519_1023_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1023_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1023_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; /************************************************/ static const u8 ed25519_1024_test_vectors_priv_key[] = { 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, }; static const u8 ed25519_1024_test_vectors_message[] = { 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, }; static const u8 ed25519_1024_test_vectors_expected_sig[] = { 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, }; static const ec_test_case ed25519_1024_test_case = { .name = "EDDSA25519-SHA512/wei25519 1024", .ec_str_p = &wei25519_str_params, .priv_key = ed25519_1024_test_vectors_priv_key, .priv_key_len = sizeof(ed25519_1024_test_vectors_priv_key), .nn_random = NULL, .hash_type = SHA512, .msg = (const char *)ed25519_1024_test_vectors_message, .msglen = sizeof(ed25519_1024_test_vectors_message), .sig_type = EDDSA25519, .exp_sig = ed25519_1024_test_vectors_expected_sig, .exp_siglen = sizeof(ed25519_1024_test_vectors_expected_sig), .adata = NULL, .adata_len = 0 }; #endif /************************************************/ #ifndef ADDITIONAL_EDDSA25519_TEST_VECTORS #define EDDSA25519_SHA512_WEI25519_ALL_TESTS() \ &ed25519_1_test_case,\ &ed25519_2_test_case,\ &ed25519_3_test_case,\ &ed25519_4_test_case,\ &ed25519_5_test_case,\ &ed25519_6_test_case,\ &ed25519_7_test_case,\ &ed25519_8_test_case,\ &ed25519_9_test_case,\ &ed25519_10_test_case, #else #define EDDSA25519_SHA512_WEI25519_ALL_TESTS() \ &ed25519_1_test_case,\ &ed25519_2_test_case,\ &ed25519_3_test_case,\ &ed25519_4_test_case,\ &ed25519_5_test_case,\ &ed25519_6_test_case,\ &ed25519_7_test_case,\ &ed25519_8_test_case,\ &ed25519_9_test_case,\ &ed25519_10_test_case,\ &ed25519_11_test_case,\ &ed25519_12_test_case,\ &ed25519_13_test_case,\ &ed25519_14_test_case,\ &ed25519_15_test_case,\ &ed25519_16_test_case,\ &ed25519_17_test_case,\ &ed25519_18_test_case,\ &ed25519_19_test_case,\ &ed25519_20_test_case,\ &ed25519_21_test_case,\ &ed25519_22_test_case,\ &ed25519_23_test_case,\ &ed25519_24_test_case,\ &ed25519_25_test_case,\ &ed25519_26_test_case,\ &ed25519_27_test_case,\ &ed25519_28_test_case,\ &ed25519_29_test_case,\ &ed25519_30_test_case,\ &ed25519_31_test_case,\ &ed25519_32_test_case,\ &ed25519_33_test_case,\ &ed25519_34_test_case,\ &ed25519_35_test_case,\ &ed25519_36_test_case,\ &ed25519_37_test_case,\ &ed25519_38_test_case,\ &ed25519_39_test_case,\ &ed25519_40_test_case,\ &ed25519_41_test_case,\ &ed25519_42_test_case,\ &ed25519_43_test_case,\ &ed25519_44_test_case,\ &ed25519_45_test_case,\ &ed25519_46_test_case,\ &ed25519_47_test_case,\ &ed25519_48_test_case,\ &ed25519_49_test_case,\ &ed25519_50_test_case,\ &ed25519_51_test_case,\ &ed25519_52_test_case,\ &ed25519_53_test_case,\ &ed25519_54_test_case,\ &ed25519_55_test_case,\ &ed25519_56_test_case,\ &ed25519_57_test_case,\ &ed25519_58_test_case,\ &ed25519_59_test_case,\ &ed25519_60_test_case,\ &ed25519_61_test_case,\ &ed25519_62_test_case,\ &ed25519_63_test_case,\ &ed25519_64_test_case,\ &ed25519_65_test_case,\ &ed25519_66_test_case,\ &ed25519_67_test_case,\ &ed25519_68_test_case,\ &ed25519_69_test_case,\ &ed25519_70_test_case,\ &ed25519_71_test_case,\ &ed25519_72_test_case,\ &ed25519_73_test_case,\ &ed25519_74_test_case,\ &ed25519_75_test_case,\ &ed25519_76_test_case,\ &ed25519_77_test_case,\ &ed25519_78_test_case,\ &ed25519_79_test_case,\ &ed25519_80_test_case,\ &ed25519_81_test_case,\ &ed25519_82_test_case,\ &ed25519_83_test_case,\ &ed25519_84_test_case,\ &ed25519_85_test_case,\ &ed25519_86_test_case,\ &ed25519_87_test_case,\ &ed25519_88_test_case,\ &ed25519_89_test_case,\ &ed25519_90_test_case,\ &ed25519_91_test_case,\ &ed25519_92_test_case,\ &ed25519_93_test_case,\ &ed25519_94_test_case,\ &ed25519_95_test_case,\ &ed25519_96_test_case,\ &ed25519_97_test_case,\ &ed25519_98_test_case,\ &ed25519_99_test_case,\ &ed25519_100_test_case,\ &ed25519_101_test_case,\ &ed25519_102_test_case,\ &ed25519_103_test_case,\ &ed25519_104_test_case,\ &ed25519_105_test_case,\ &ed25519_106_test_case,\ &ed25519_107_test_case,\ &ed25519_108_test_case,\ &ed25519_109_test_case,\ &ed25519_110_test_case,\ &ed25519_111_test_case,\ &ed25519_112_test_case,\ &ed25519_113_test_case,\ &ed25519_114_test_case,\ &ed25519_115_test_case,\ &ed25519_116_test_case,\ &ed25519_117_test_case,\ &ed25519_118_test_case,\ &ed25519_119_test_case,\ &ed25519_120_test_case,\ &ed25519_121_test_case,\ &ed25519_122_test_case,\ &ed25519_123_test_case,\ &ed25519_124_test_case,\ &ed25519_125_test_case,\ &ed25519_126_test_case,\ &ed25519_127_test_case,\ &ed25519_128_test_case,\ &ed25519_129_test_case,\ &ed25519_130_test_case,\ &ed25519_131_test_case,\ &ed25519_132_test_case,\ &ed25519_133_test_case,\ &ed25519_134_test_case,\ &ed25519_135_test_case,\ &ed25519_136_test_case,\ &ed25519_137_test_case,\ &ed25519_138_test_case,\ &ed25519_139_test_case,\ &ed25519_140_test_case,\ &ed25519_141_test_case,\ &ed25519_142_test_case,\ &ed25519_143_test_case,\ &ed25519_144_test_case,\ &ed25519_145_test_case,\ &ed25519_146_test_case,\ &ed25519_147_test_case,\ &ed25519_148_test_case,\ &ed25519_149_test_case,\ &ed25519_150_test_case,\ &ed25519_151_test_case,\ &ed25519_152_test_case,\ &ed25519_153_test_case,\ &ed25519_154_test_case,\ &ed25519_155_test_case,\ &ed25519_156_test_case,\ &ed25519_157_test_case,\ &ed25519_158_test_case,\ &ed25519_159_test_case,\ &ed25519_160_test_case,\ &ed25519_161_test_case,\ &ed25519_162_test_case,\ &ed25519_163_test_case,\ &ed25519_164_test_case,\ &ed25519_165_test_case,\ &ed25519_166_test_case,\ &ed25519_167_test_case,\ &ed25519_168_test_case,\ &ed25519_169_test_case,\ &ed25519_170_test_case,\ &ed25519_171_test_case,\ &ed25519_172_test_case,\ &ed25519_173_test_case,\ &ed25519_174_test_case,\ &ed25519_175_test_case,\ &ed25519_176_test_case,\ &ed25519_177_test_case,\ &ed25519_178_test_case,\ &ed25519_179_test_case,\ &ed25519_180_test_case,\ &ed25519_181_test_case,\ &ed25519_182_test_case,\ &ed25519_183_test_case,\ &ed25519_184_test_case,\ &ed25519_185_test_case,\ &ed25519_186_test_case,\ &ed25519_187_test_case,\ &ed25519_188_test_case,\ &ed25519_189_test_case,\ &ed25519_190_test_case,\ &ed25519_191_test_case,\ &ed25519_192_test_case,\ &ed25519_193_test_case,\ &ed25519_194_test_case,\ &ed25519_195_test_case,\ &ed25519_196_test_case,\ &ed25519_197_test_case,\ &ed25519_198_test_case,\ &ed25519_199_test_case,\ &ed25519_200_test_case,\ &ed25519_201_test_case,\ &ed25519_202_test_case,\ &ed25519_203_test_case,\ &ed25519_204_test_case,\ &ed25519_205_test_case,\ &ed25519_206_test_case,\ &ed25519_207_test_case,\ &ed25519_208_test_case,\ &ed25519_209_test_case,\ &ed25519_210_test_case,\ &ed25519_211_test_case,\ &ed25519_212_test_case,\ &ed25519_213_test_case,\ &ed25519_214_test_case,\ &ed25519_215_test_case,\ &ed25519_216_test_case,\ &ed25519_217_test_case,\ &ed25519_218_test_case,\ &ed25519_219_test_case,\ &ed25519_220_test_case,\ &ed25519_221_test_case,\ &ed25519_222_test_case,\ &ed25519_223_test_case,\ &ed25519_224_test_case,\ &ed25519_225_test_case,\ &ed25519_226_test_case,\ &ed25519_227_test_case,\ &ed25519_228_test_case,\ &ed25519_229_test_case,\ &ed25519_230_test_case,\ &ed25519_231_test_case,\ &ed25519_232_test_case,\ &ed25519_233_test_case,\ &ed25519_234_test_case,\ &ed25519_235_test_case,\ &ed25519_236_test_case,\ &ed25519_237_test_case,\ &ed25519_238_test_case,\ &ed25519_239_test_case,\ &ed25519_240_test_case,\ &ed25519_241_test_case,\ &ed25519_242_test_case,\ &ed25519_243_test_case,\ &ed25519_244_test_case,\ &ed25519_245_test_case,\ &ed25519_246_test_case,\ &ed25519_247_test_case,\ &ed25519_248_test_case,\ &ed25519_249_test_case,\ &ed25519_250_test_case,\ &ed25519_251_test_case,\ &ed25519_252_test_case,\ &ed25519_253_test_case,\ &ed25519_254_test_case,\ &ed25519_255_test_case,\ &ed25519_256_test_case,\ &ed25519_257_test_case,\ &ed25519_258_test_case,\ &ed25519_259_test_case,\ &ed25519_260_test_case,\ &ed25519_261_test_case,\ &ed25519_262_test_case,\ &ed25519_263_test_case,\ &ed25519_264_test_case,\ &ed25519_265_test_case,\ &ed25519_266_test_case,\ &ed25519_267_test_case,\ &ed25519_268_test_case,\ &ed25519_269_test_case,\ &ed25519_270_test_case,\ &ed25519_271_test_case,\ &ed25519_272_test_case,\ &ed25519_273_test_case,\ &ed25519_274_test_case,\ &ed25519_275_test_case,\ &ed25519_276_test_case,\ &ed25519_277_test_case,\ &ed25519_278_test_case,\ &ed25519_279_test_case,\ &ed25519_280_test_case,\ &ed25519_281_test_case,\ &ed25519_282_test_case,\ &ed25519_283_test_case,\ &ed25519_284_test_case,\ &ed25519_285_test_case,\ &ed25519_286_test_case,\ &ed25519_287_test_case,\ &ed25519_288_test_case,\ &ed25519_289_test_case,\ &ed25519_290_test_case,\ &ed25519_291_test_case,\ &ed25519_292_test_case,\ &ed25519_293_test_case,\ &ed25519_294_test_case,\ &ed25519_295_test_case,\ &ed25519_296_test_case,\ &ed25519_297_test_case,\ &ed25519_298_test_case,\ &ed25519_299_test_case,\ &ed25519_300_test_case,\ &ed25519_301_test_case,\ &ed25519_302_test_case,\ &ed25519_303_test_case,\ &ed25519_304_test_case,\ &ed25519_305_test_case,\ &ed25519_306_test_case,\ &ed25519_307_test_case,\ &ed25519_308_test_case,\ &ed25519_309_test_case,\ &ed25519_310_test_case,\ &ed25519_311_test_case,\ &ed25519_312_test_case,\ &ed25519_313_test_case,\ &ed25519_314_test_case,\ &ed25519_315_test_case,\ &ed25519_316_test_case,\ &ed25519_317_test_case,\ &ed25519_318_test_case,\ &ed25519_319_test_case,\ &ed25519_320_test_case,\ &ed25519_321_test_case,\ &ed25519_322_test_case,\ &ed25519_323_test_case,\ &ed25519_324_test_case,\ &ed25519_325_test_case,\ &ed25519_326_test_case,\ &ed25519_327_test_case,\ &ed25519_328_test_case,\ &ed25519_329_test_case,\ &ed25519_330_test_case,\ &ed25519_331_test_case,\ &ed25519_332_test_case,\ &ed25519_333_test_case,\ &ed25519_334_test_case,\ &ed25519_335_test_case,\ &ed25519_336_test_case,\ &ed25519_337_test_case,\ &ed25519_338_test_case,\ &ed25519_339_test_case,\ &ed25519_340_test_case,\ &ed25519_341_test_case,\ &ed25519_342_test_case,\ &ed25519_343_test_case,\ &ed25519_344_test_case,\ &ed25519_345_test_case,\ &ed25519_346_test_case,\ &ed25519_347_test_case,\ &ed25519_348_test_case,\ &ed25519_349_test_case,\ &ed25519_350_test_case,\ &ed25519_351_test_case,\ &ed25519_352_test_case,\ &ed25519_353_test_case,\ &ed25519_354_test_case,\ &ed25519_355_test_case,\ &ed25519_356_test_case,\ &ed25519_357_test_case,\ &ed25519_358_test_case,\ &ed25519_359_test_case,\ &ed25519_360_test_case,\ &ed25519_361_test_case,\ &ed25519_362_test_case,\ &ed25519_363_test_case,\ &ed25519_364_test_case,\ &ed25519_365_test_case,\ &ed25519_366_test_case,\ &ed25519_367_test_case,\ &ed25519_368_test_case,\ &ed25519_369_test_case,\ &ed25519_370_test_case,\ &ed25519_371_test_case,\ &ed25519_372_test_case,\ &ed25519_373_test_case,\ &ed25519_374_test_case,\ &ed25519_375_test_case,\ &ed25519_376_test_case,\ &ed25519_377_test_case,\ &ed25519_378_test_case,\ &ed25519_379_test_case,\ &ed25519_380_test_case,\ &ed25519_381_test_case,\ &ed25519_382_test_case,\ &ed25519_383_test_case,\ &ed25519_384_test_case,\ &ed25519_385_test_case,\ &ed25519_386_test_case,\ &ed25519_387_test_case,\ &ed25519_388_test_case,\ &ed25519_389_test_case,\ &ed25519_390_test_case,\ &ed25519_391_test_case,\ &ed25519_392_test_case,\ &ed25519_393_test_case,\ &ed25519_394_test_case,\ &ed25519_395_test_case,\ &ed25519_396_test_case,\ &ed25519_397_test_case,\ &ed25519_398_test_case,\ &ed25519_399_test_case,\ &ed25519_400_test_case,\ &ed25519_401_test_case,\ &ed25519_402_test_case,\ &ed25519_403_test_case,\ &ed25519_404_test_case,\ &ed25519_405_test_case,\ &ed25519_406_test_case,\ &ed25519_407_test_case,\ &ed25519_408_test_case,\ &ed25519_409_test_case,\ &ed25519_410_test_case,\ &ed25519_411_test_case,\ &ed25519_412_test_case,\ &ed25519_413_test_case,\ &ed25519_414_test_case,\ &ed25519_415_test_case,\ &ed25519_416_test_case,\ &ed25519_417_test_case,\ &ed25519_418_test_case,\ &ed25519_419_test_case,\ &ed25519_420_test_case,\ &ed25519_421_test_case,\ &ed25519_422_test_case,\ &ed25519_423_test_case,\ &ed25519_424_test_case,\ &ed25519_425_test_case,\ &ed25519_426_test_case,\ &ed25519_427_test_case,\ &ed25519_428_test_case,\ &ed25519_429_test_case,\ &ed25519_430_test_case,\ &ed25519_431_test_case,\ &ed25519_432_test_case,\ &ed25519_433_test_case,\ &ed25519_434_test_case,\ &ed25519_435_test_case,\ &ed25519_436_test_case,\ &ed25519_437_test_case,\ &ed25519_438_test_case,\ &ed25519_439_test_case,\ &ed25519_440_test_case,\ &ed25519_441_test_case,\ &ed25519_442_test_case,\ &ed25519_443_test_case,\ &ed25519_444_test_case,\ &ed25519_445_test_case,\ &ed25519_446_test_case,\ &ed25519_447_test_case,\ &ed25519_448_test_case,\ &ed25519_449_test_case,\ &ed25519_450_test_case,\ &ed25519_451_test_case,\ &ed25519_452_test_case,\ &ed25519_453_test_case,\ &ed25519_454_test_case,\ &ed25519_455_test_case,\ &ed25519_456_test_case,\ &ed25519_457_test_case,\ &ed25519_458_test_case,\ &ed25519_459_test_case,\ &ed25519_460_test_case,\ &ed25519_461_test_case,\ &ed25519_462_test_case,\ &ed25519_463_test_case,\ &ed25519_464_test_case,\ &ed25519_465_test_case,\ &ed25519_466_test_case,\ &ed25519_467_test_case,\ &ed25519_468_test_case,\ &ed25519_469_test_case,\ &ed25519_470_test_case,\ &ed25519_471_test_case,\ &ed25519_472_test_case,\ &ed25519_473_test_case,\ &ed25519_474_test_case,\ &ed25519_475_test_case,\ &ed25519_476_test_case,\ &ed25519_477_test_case,\ &ed25519_478_test_case,\ &ed25519_479_test_case,\ &ed25519_480_test_case,\ &ed25519_481_test_case,\ &ed25519_482_test_case,\ &ed25519_483_test_case,\ &ed25519_484_test_case,\ &ed25519_485_test_case,\ &ed25519_486_test_case,\ &ed25519_487_test_case,\ &ed25519_488_test_case,\ &ed25519_489_test_case,\ &ed25519_490_test_case,\ &ed25519_491_test_case,\ &ed25519_492_test_case,\ &ed25519_493_test_case,\ &ed25519_494_test_case,\ &ed25519_495_test_case,\ &ed25519_496_test_case,\ &ed25519_497_test_case,\ &ed25519_498_test_case,\ &ed25519_499_test_case,\ &ed25519_500_test_case,\ &ed25519_501_test_case,\ &ed25519_502_test_case,\ &ed25519_503_test_case,\ &ed25519_504_test_case,\ &ed25519_505_test_case,\ &ed25519_506_test_case,\ &ed25519_507_test_case,\ &ed25519_508_test_case,\ &ed25519_509_test_case,\ &ed25519_510_test_case,\ &ed25519_511_test_case,\ &ed25519_512_test_case,\ &ed25519_513_test_case,\ &ed25519_514_test_case,\ &ed25519_515_test_case,\ &ed25519_516_test_case,\ &ed25519_517_test_case,\ &ed25519_518_test_case,\ &ed25519_519_test_case,\ &ed25519_520_test_case,\ &ed25519_521_test_case,\ &ed25519_522_test_case,\ &ed25519_523_test_case,\ &ed25519_524_test_case,\ &ed25519_525_test_case,\ &ed25519_526_test_case,\ &ed25519_527_test_case,\ &ed25519_528_test_case,\ &ed25519_529_test_case,\ &ed25519_530_test_case,\ &ed25519_531_test_case,\ &ed25519_532_test_case,\ &ed25519_533_test_case,\ &ed25519_534_test_case,\ &ed25519_535_test_case,\ &ed25519_536_test_case,\ &ed25519_537_test_case,\ &ed25519_538_test_case,\ &ed25519_539_test_case,\ &ed25519_540_test_case,\ &ed25519_541_test_case,\ &ed25519_542_test_case,\ &ed25519_543_test_case,\ &ed25519_544_test_case,\ &ed25519_545_test_case,\ &ed25519_546_test_case,\ &ed25519_547_test_case,\ &ed25519_548_test_case,\ &ed25519_549_test_case,\ &ed25519_550_test_case,\ &ed25519_551_test_case,\ &ed25519_552_test_case,\ &ed25519_553_test_case,\ &ed25519_554_test_case,\ &ed25519_555_test_case,\ &ed25519_556_test_case,\ &ed25519_557_test_case,\ &ed25519_558_test_case,\ &ed25519_559_test_case,\ &ed25519_560_test_case,\ &ed25519_561_test_case,\ &ed25519_562_test_case,\ &ed25519_563_test_case,\ &ed25519_564_test_case,\ &ed25519_565_test_case,\ &ed25519_566_test_case,\ &ed25519_567_test_case,\ &ed25519_568_test_case,\ &ed25519_569_test_case,\ &ed25519_570_test_case,\ &ed25519_571_test_case,\ &ed25519_572_test_case,\ &ed25519_573_test_case,\ &ed25519_574_test_case,\ &ed25519_575_test_case,\ &ed25519_576_test_case,\ &ed25519_577_test_case,\ &ed25519_578_test_case,\ &ed25519_579_test_case,\ &ed25519_580_test_case,\ &ed25519_581_test_case,\ &ed25519_582_test_case,\ &ed25519_583_test_case,\ &ed25519_584_test_case,\ &ed25519_585_test_case,\ &ed25519_586_test_case,\ &ed25519_587_test_case,\ &ed25519_588_test_case,\ &ed25519_589_test_case,\ &ed25519_590_test_case,\ &ed25519_591_test_case,\ &ed25519_592_test_case,\ &ed25519_593_test_case,\ &ed25519_594_test_case,\ &ed25519_595_test_case,\ &ed25519_596_test_case,\ &ed25519_597_test_case,\ &ed25519_598_test_case,\ &ed25519_599_test_case,\ &ed25519_600_test_case,\ &ed25519_601_test_case,\ &ed25519_602_test_case,\ &ed25519_603_test_case,\ &ed25519_604_test_case,\ &ed25519_605_test_case,\ &ed25519_606_test_case,\ &ed25519_607_test_case,\ &ed25519_608_test_case,\ &ed25519_609_test_case,\ &ed25519_610_test_case,\ &ed25519_611_test_case,\ &ed25519_612_test_case,\ &ed25519_613_test_case,\ &ed25519_614_test_case,\ &ed25519_615_test_case,\ &ed25519_616_test_case,\ &ed25519_617_test_case,\ &ed25519_618_test_case,\ &ed25519_619_test_case,\ &ed25519_620_test_case,\ &ed25519_621_test_case,\ &ed25519_622_test_case,\ &ed25519_623_test_case,\ &ed25519_624_test_case,\ &ed25519_625_test_case,\ &ed25519_626_test_case,\ &ed25519_627_test_case,\ &ed25519_628_test_case,\ &ed25519_629_test_case,\ &ed25519_630_test_case,\ &ed25519_631_test_case,\ &ed25519_632_test_case,\ &ed25519_633_test_case,\ &ed25519_634_test_case,\ &ed25519_635_test_case,\ &ed25519_636_test_case,\ &ed25519_637_test_case,\ &ed25519_638_test_case,\ &ed25519_639_test_case,\ &ed25519_640_test_case,\ &ed25519_641_test_case,\ &ed25519_642_test_case,\ &ed25519_643_test_case,\ &ed25519_644_test_case,\ &ed25519_645_test_case,\ &ed25519_646_test_case,\ &ed25519_647_test_case,\ &ed25519_648_test_case,\ &ed25519_649_test_case,\ &ed25519_650_test_case,\ &ed25519_651_test_case,\ &ed25519_652_test_case,\ &ed25519_653_test_case,\ &ed25519_654_test_case,\ &ed25519_655_test_case,\ &ed25519_656_test_case,\ &ed25519_657_test_case,\ &ed25519_658_test_case,\ &ed25519_659_test_case,\ &ed25519_660_test_case,\ &ed25519_661_test_case,\ &ed25519_662_test_case,\ &ed25519_663_test_case,\ &ed25519_664_test_case,\ &ed25519_665_test_case,\ &ed25519_666_test_case,\ &ed25519_667_test_case,\ &ed25519_668_test_case,\ &ed25519_669_test_case,\ &ed25519_670_test_case,\ &ed25519_671_test_case,\ &ed25519_672_test_case,\ &ed25519_673_test_case,\ &ed25519_674_test_case,\ &ed25519_675_test_case,\ &ed25519_676_test_case,\ &ed25519_677_test_case,\ &ed25519_678_test_case,\ &ed25519_679_test_case,\ &ed25519_680_test_case,\ &ed25519_681_test_case,\ &ed25519_682_test_case,\ &ed25519_683_test_case,\ &ed25519_684_test_case,\ &ed25519_685_test_case,\ &ed25519_686_test_case,\ &ed25519_687_test_case,\ &ed25519_688_test_case,\ &ed25519_689_test_case,\ &ed25519_690_test_case,\ &ed25519_691_test_case,\ &ed25519_692_test_case,\ &ed25519_693_test_case,\ &ed25519_694_test_case,\ &ed25519_695_test_case,\ &ed25519_696_test_case,\ &ed25519_697_test_case,\ &ed25519_698_test_case,\ &ed25519_699_test_case,\ &ed25519_700_test_case,\ &ed25519_701_test_case,\ &ed25519_702_test_case,\ &ed25519_703_test_case,\ &ed25519_704_test_case,\ &ed25519_705_test_case,\ &ed25519_706_test_case,\ &ed25519_707_test_case,\ &ed25519_708_test_case,\ &ed25519_709_test_case,\ &ed25519_710_test_case,\ &ed25519_711_test_case,\ &ed25519_712_test_case,\ &ed25519_713_test_case,\ &ed25519_714_test_case,\ &ed25519_715_test_case,\ &ed25519_716_test_case,\ &ed25519_717_test_case,\ &ed25519_718_test_case,\ &ed25519_719_test_case,\ &ed25519_720_test_case,\ &ed25519_721_test_case,\ &ed25519_722_test_case,\ &ed25519_723_test_case,\ &ed25519_724_test_case,\ &ed25519_725_test_case,\ &ed25519_726_test_case,\ &ed25519_727_test_case,\ &ed25519_728_test_case,\ &ed25519_729_test_case,\ &ed25519_730_test_case,\ &ed25519_731_test_case,\ &ed25519_732_test_case,\ &ed25519_733_test_case,\ &ed25519_734_test_case,\ &ed25519_735_test_case,\ &ed25519_736_test_case,\ &ed25519_737_test_case,\ &ed25519_738_test_case,\ &ed25519_739_test_case,\ &ed25519_740_test_case,\ &ed25519_741_test_case,\ &ed25519_742_test_case,\ &ed25519_743_test_case,\ &ed25519_744_test_case,\ &ed25519_745_test_case,\ &ed25519_746_test_case,\ &ed25519_747_test_case,\ &ed25519_748_test_case,\ &ed25519_749_test_case,\ &ed25519_750_test_case,\ &ed25519_751_test_case,\ &ed25519_752_test_case,\ &ed25519_753_test_case,\ &ed25519_754_test_case,\ &ed25519_755_test_case,\ &ed25519_756_test_case,\ &ed25519_757_test_case,\ &ed25519_758_test_case,\ &ed25519_759_test_case,\ &ed25519_760_test_case,\ &ed25519_761_test_case,\ &ed25519_762_test_case,\ &ed25519_763_test_case,\ &ed25519_764_test_case,\ &ed25519_765_test_case,\ &ed25519_766_test_case,\ &ed25519_767_test_case,\ &ed25519_768_test_case,\ &ed25519_769_test_case,\ &ed25519_770_test_case,\ &ed25519_771_test_case,\ &ed25519_772_test_case,\ &ed25519_773_test_case,\ &ed25519_774_test_case,\ &ed25519_775_test_case,\ &ed25519_776_test_case,\ &ed25519_777_test_case,\ &ed25519_778_test_case,\ &ed25519_779_test_case,\ &ed25519_780_test_case,\ &ed25519_781_test_case,\ &ed25519_782_test_case,\ &ed25519_783_test_case,\ &ed25519_784_test_case,\ &ed25519_785_test_case,\ &ed25519_786_test_case,\ &ed25519_787_test_case,\ &ed25519_788_test_case,\ &ed25519_789_test_case,\ &ed25519_790_test_case,\ &ed25519_791_test_case,\ &ed25519_792_test_case,\ &ed25519_793_test_case,\ &ed25519_794_test_case,\ &ed25519_795_test_case,\ &ed25519_796_test_case,\ &ed25519_797_test_case,\ &ed25519_798_test_case,\ &ed25519_799_test_case,\ &ed25519_800_test_case,\ &ed25519_801_test_case,\ &ed25519_802_test_case,\ &ed25519_803_test_case,\ &ed25519_804_test_case,\ &ed25519_805_test_case,\ &ed25519_806_test_case,\ &ed25519_807_test_case,\ &ed25519_808_test_case,\ &ed25519_809_test_case,\ &ed25519_810_test_case,\ &ed25519_811_test_case,\ &ed25519_812_test_case,\ &ed25519_813_test_case,\ &ed25519_814_test_case,\ &ed25519_815_test_case,\ &ed25519_816_test_case,\ &ed25519_817_test_case,\ &ed25519_818_test_case,\ &ed25519_819_test_case,\ &ed25519_820_test_case,\ &ed25519_821_test_case,\ &ed25519_822_test_case,\ &ed25519_823_test_case,\ &ed25519_824_test_case,\ &ed25519_825_test_case,\ &ed25519_826_test_case,\ &ed25519_827_test_case,\ &ed25519_828_test_case,\ &ed25519_829_test_case,\ &ed25519_830_test_case,\ &ed25519_831_test_case,\ &ed25519_832_test_case,\ &ed25519_833_test_case,\ &ed25519_834_test_case,\ &ed25519_835_test_case,\ &ed25519_836_test_case,\ &ed25519_837_test_case,\ &ed25519_838_test_case,\ &ed25519_839_test_case,\ &ed25519_840_test_case,\ &ed25519_841_test_case,\ &ed25519_842_test_case,\ &ed25519_843_test_case,\ &ed25519_844_test_case,\ &ed25519_845_test_case,\ &ed25519_846_test_case,\ &ed25519_847_test_case,\ &ed25519_848_test_case,\ &ed25519_849_test_case,\ &ed25519_850_test_case,\ &ed25519_851_test_case,\ &ed25519_852_test_case,\ &ed25519_853_test_case,\ &ed25519_854_test_case,\ &ed25519_855_test_case,\ &ed25519_856_test_case,\ &ed25519_857_test_case,\ &ed25519_858_test_case,\ &ed25519_859_test_case,\ &ed25519_860_test_case,\ &ed25519_861_test_case,\ &ed25519_862_test_case,\ &ed25519_863_test_case,\ &ed25519_864_test_case,\ &ed25519_865_test_case,\ &ed25519_866_test_case,\ &ed25519_867_test_case,\ &ed25519_868_test_case,\ &ed25519_869_test_case,\ &ed25519_870_test_case,\ &ed25519_871_test_case,\ &ed25519_872_test_case,\ &ed25519_873_test_case,\ &ed25519_874_test_case,\ &ed25519_875_test_case,\ &ed25519_876_test_case,\ &ed25519_877_test_case,\ &ed25519_878_test_case,\ &ed25519_879_test_case,\ &ed25519_880_test_case,\ &ed25519_881_test_case,\ &ed25519_882_test_case,\ &ed25519_883_test_case,\ &ed25519_884_test_case,\ &ed25519_885_test_case,\ &ed25519_886_test_case,\ &ed25519_887_test_case,\ &ed25519_888_test_case,\ &ed25519_889_test_case,\ &ed25519_890_test_case,\ &ed25519_891_test_case,\ &ed25519_892_test_case,\ &ed25519_893_test_case,\ &ed25519_894_test_case,\ &ed25519_895_test_case,\ &ed25519_896_test_case,\ &ed25519_897_test_case,\ &ed25519_898_test_case,\ &ed25519_899_test_case,\ &ed25519_900_test_case,\ &ed25519_901_test_case,\ &ed25519_902_test_case,\ &ed25519_903_test_case,\ &ed25519_904_test_case,\ &ed25519_905_test_case,\ &ed25519_906_test_case,\ &ed25519_907_test_case,\ &ed25519_908_test_case,\ &ed25519_909_test_case,\ &ed25519_910_test_case,\ &ed25519_911_test_case,\ &ed25519_912_test_case,\ &ed25519_913_test_case,\ &ed25519_914_test_case,\ &ed25519_915_test_case,\ &ed25519_916_test_case,\ &ed25519_917_test_case,\ &ed25519_918_test_case,\ &ed25519_919_test_case,\ &ed25519_920_test_case,\ &ed25519_921_test_case,\ &ed25519_922_test_case,\ &ed25519_923_test_case,\ &ed25519_924_test_case,\ &ed25519_925_test_case,\ &ed25519_926_test_case,\ &ed25519_927_test_case,\ &ed25519_928_test_case,\ &ed25519_929_test_case,\ &ed25519_930_test_case,\ &ed25519_931_test_case,\ &ed25519_932_test_case,\ &ed25519_933_test_case,\ &ed25519_934_test_case,\ &ed25519_935_test_case,\ &ed25519_936_test_case,\ &ed25519_937_test_case,\ &ed25519_938_test_case,\ &ed25519_939_test_case,\ &ed25519_940_test_case,\ &ed25519_941_test_case,\ &ed25519_942_test_case,\ &ed25519_943_test_case,\ &ed25519_944_test_case,\ &ed25519_945_test_case,\ &ed25519_946_test_case,\ &ed25519_947_test_case,\ &ed25519_948_test_case,\ &ed25519_949_test_case,\ &ed25519_950_test_case,\ &ed25519_951_test_case,\ &ed25519_952_test_case,\ &ed25519_953_test_case,\ &ed25519_954_test_case,\ &ed25519_955_test_case,\ &ed25519_956_test_case,\ &ed25519_957_test_case,\ &ed25519_958_test_case,\ &ed25519_959_test_case,\ &ed25519_960_test_case,\ &ed25519_961_test_case,\ &ed25519_962_test_case,\ &ed25519_963_test_case,\ &ed25519_964_test_case,\ &ed25519_965_test_case,\ &ed25519_966_test_case,\ &ed25519_967_test_case,\ &ed25519_968_test_case,\ &ed25519_969_test_case,\ &ed25519_970_test_case,\ &ed25519_971_test_case,\ &ed25519_972_test_case,\ &ed25519_973_test_case,\ &ed25519_974_test_case,\ &ed25519_975_test_case,\ &ed25519_976_test_case,\ &ed25519_977_test_case,\ &ed25519_978_test_case,\ &ed25519_979_test_case,\ &ed25519_980_test_case,\ &ed25519_981_test_case,\ &ed25519_982_test_case,\ &ed25519_983_test_case,\ &ed25519_984_test_case,\ &ed25519_985_test_case,\ &ed25519_986_test_case,\ &ed25519_987_test_case,\ &ed25519_988_test_case,\ &ed25519_989_test_case,\ &ed25519_990_test_case,\ &ed25519_991_test_case,\ &ed25519_992_test_case,\ &ed25519_993_test_case,\ &ed25519_994_test_case,\ &ed25519_995_test_case,\ &ed25519_996_test_case,\ &ed25519_997_test_case,\ &ed25519_998_test_case,\ &ed25519_999_test_case,\ &ed25519_1000_test_case,\ &ed25519_1001_test_case,\ &ed25519_1002_test_case,\ &ed25519_1003_test_case,\ &ed25519_1004_test_case,\ &ed25519_1005_test_case,\ &ed25519_1006_test_case,\ &ed25519_1007_test_case,\ &ed25519_1008_test_case,\ &ed25519_1009_test_case,\ &ed25519_1010_test_case,\ &ed25519_1011_test_case,\ &ed25519_1012_test_case,\ &ed25519_1013_test_case,\ &ed25519_1014_test_case,\ &ed25519_1015_test_case,\ &ed25519_1016_test_case,\ &ed25519_1017_test_case,\ &ed25519_1018_test_case,\ &ed25519_1019_test_case,\ &ed25519_1020_test_case,\ &ed25519_1021_test_case,\ &ed25519_1022_test_case,\ &ed25519_1023_test_case,\ &ed25519_1024_test_case, #endif #endif /* __ED25519_TEST_VECTORS_H__ */