Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
HardenedBSD-pkg external libecc src tests ed25519_test_vectors.h
/*
 *  Copyright (C) 2021 - This file is part of libecc project
 *
 *  Authors:
 *      Arnaud EBALARD <arnaud.ebalard@ssi.gouv.fr>
 *      Ryad BENADJILA <ryadbenadjila@gmail.com>
 *
 *  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__ */