xref: /freebsd/crypto/libecc/src/tests/x448_test_vectors.h (revision f0865ec9906d5a18fa2a3b61381f22ce16e606ad)
1*f0865ec9SKyle Evans /*
2*f0865ec9SKyle Evans  *  Copyright (C) 2021 - This file is part of libecc project
3*f0865ec9SKyle Evans  *
4*f0865ec9SKyle Evans  *  Authors:
5*f0865ec9SKyle Evans  *      Ryad BENADJILA <ryadbenadjila@gmail.com>
6*f0865ec9SKyle Evans  *      Arnaud EBALARD <arnaud.ebalard@ssi.gouv.fr>
7*f0865ec9SKyle Evans  *
8*f0865ec9SKyle Evans  *  This software is licensed under a dual BSD and GPL v2 license.
9*f0865ec9SKyle Evans  *  See LICENSE file at the root folder of the project.
10*f0865ec9SKyle Evans  */
11*f0865ec9SKyle Evans 
12*f0865ec9SKyle Evans #ifdef WITH_CURVE_WEI448
13*f0865ec9SKyle Evans 
14*f0865ec9SKyle Evans static const u8 x448_WEI448_0_our_priv_key[] = {
15*f0865ec9SKyle Evans 	0x9a, 0x8f, 0x49, 0x25, 0xd1, 0x51, 0x9f, 0x57, 0x75, 0xcf, 0x46, 0xb0, 0x4b, 0x58, 0x00, 0xd4, 0xee, 0x9e, 0xe8, 0xba, 0xe8, 0xbc, 0x55, 0x65, 0xd4, 0x98, 0xc2, 0x8d, 0xd9, 0xc9, 0xba, 0xf5, 0x74, 0xa9, 0x41, 0x97, 0x44, 0x89, 0x73, 0x91, 0x00, 0x63, 0x82, 0xa6, 0xf1, 0x27, 0xab, 0x1d, 0x9a, 0xc2, 0xd8, 0xc0, 0xa5, 0x98, 0x72, 0x6b,
16*f0865ec9SKyle Evans };
17*f0865ec9SKyle Evans 
18*f0865ec9SKyle Evans static const u8 x448_WEI448_0_peer_pub_key[] = {
19*f0865ec9SKyle Evans 	0x3e, 0xb7, 0xa8, 0x29, 0xb0, 0xcd, 0x20, 0xf5, 0xbc, 0xfc, 0x0b, 0x59, 0x9b, 0x6f, 0xec, 0xcf, 0x6d, 0xa4, 0x62, 0x71, 0x07, 0xbd, 0xb0, 0xd4, 0xf3, 0x45, 0xb4, 0x30, 0x27, 0xd8, 0xb9, 0x72, 0xfc, 0x3e, 0x34, 0xfb, 0x42, 0x32, 0xa1, 0x3c, 0xa7, 0x06, 0xdc, 0xb5, 0x7a, 0xec, 0x3d, 0xae, 0x07, 0xbd, 0xc1, 0xc6, 0x7b, 0xf3, 0x36, 0x09,
20*f0865ec9SKyle Evans };
21*f0865ec9SKyle Evans 
22*f0865ec9SKyle Evans static const u8 x448_WEI448_0_our_pub_key[] = {
23*f0865ec9SKyle Evans 	0x9b, 0x08, 0xf7, 0xcc, 0x31, 0xb7, 0xe3, 0xe6, 0x7d, 0x22, 0xd5, 0xae, 0xa1, 0x21, 0x07, 0x4a, 0x27, 0x3b, 0xd2, 0xb8, 0x3d, 0xe0, 0x9c, 0x63, 0xfa, 0xa7, 0x3d, 0x2c, 0x22, 0xc5, 0xd9, 0xbb, 0xc8, 0x36, 0x64, 0x72, 0x41, 0xd9, 0x53, 0xd4, 0x0c, 0x5b, 0x12, 0xda, 0x88, 0x12, 0x0d, 0x53, 0x17, 0x7f, 0x80, 0xe5, 0x32, 0xc4, 0x1f, 0xa0,
24*f0865ec9SKyle Evans };
25*f0865ec9SKyle Evans 
26*f0865ec9SKyle Evans static const u8 x448_WEI448_0_shared_secret[] = {
27*f0865ec9SKyle Evans 	0x07, 0xff, 0xf4, 0x18, 0x1a, 0xc6, 0xcc, 0x95, 0xec, 0x1c, 0x16, 0xa9, 0x4a, 0x0f, 0x74, 0xd1, 0x2d, 0xa2, 0x32, 0xce, 0x40, 0xa7, 0x75, 0x52, 0x28, 0x1d, 0x28, 0x2b, 0xb6, 0x0c, 0x0b, 0x56, 0xfd, 0x24, 0x64, 0xc3, 0x35, 0x54, 0x39, 0x36, 0x52, 0x1c, 0x24, 0x40, 0x30, 0x85, 0xd5, 0x9a, 0x44, 0x9a, 0x50, 0x37, 0x51, 0x4a, 0x87, 0x9d,
28*f0865ec9SKyle Evans };
29*f0865ec9SKyle Evans 
30*f0865ec9SKyle Evans static const ecdh_test_case x448_WEI448_0_test_case = {
31*f0865ec9SKyle Evans 	.name = "X448/WEI448 0",
32*f0865ec9SKyle Evans 	.ecdh_type = X448,
33*f0865ec9SKyle Evans 	.ec_str_p = &wei25519_str_params,
34*f0865ec9SKyle Evans 	.our_priv_key = x448_WEI448_0_our_priv_key,
35*f0865ec9SKyle Evans 	.our_priv_key_len = sizeof(x448_WEI448_0_our_priv_key),
36*f0865ec9SKyle Evans 	.peer_pub_key = x448_WEI448_0_peer_pub_key,
37*f0865ec9SKyle Evans 	.peer_pub_key_len = sizeof(x448_WEI448_0_peer_pub_key),
38*f0865ec9SKyle Evans 	.exp_our_pub_key = x448_WEI448_0_our_pub_key,
39*f0865ec9SKyle Evans 	.exp_our_pub_key_len = sizeof(x448_WEI448_0_our_pub_key),
40*f0865ec9SKyle Evans 	.exp_shared_secret = x448_WEI448_0_shared_secret,
41*f0865ec9SKyle Evans 	.exp_shared_secret_len = sizeof(x448_WEI448_0_shared_secret),
42*f0865ec9SKyle Evans };
43*f0865ec9SKyle Evans /******************/
44*f0865ec9SKyle Evans 
45*f0865ec9SKyle Evans static const u8 x448_WEI448_1_our_priv_key[] = {
46*f0865ec9SKyle Evans 	0x1c, 0x30, 0x6a, 0x7a, 0xc2, 0xa0, 0xe2, 0xe0, 0x99, 0x0b, 0x29, 0x44, 0x70, 0xcb, 0xa3, 0x39, 0xe6, 0x45, 0x37, 0x72, 0xb0, 0x75, 0x81, 0x1d, 0x8f, 0xad, 0x0d, 0x1d, 0x69, 0x27, 0xc1, 0x20, 0xbb, 0x5e, 0xe8, 0x97, 0x2b, 0x0d, 0x3e, 0x21, 0x37, 0x4c, 0x9c, 0x92, 0x1b, 0x09, 0xd1, 0xb0, 0x36, 0x6f, 0x10, 0xb6, 0x51, 0x73, 0x99, 0x2d,
47*f0865ec9SKyle Evans };
48*f0865ec9SKyle Evans 
49*f0865ec9SKyle Evans static const u8 x448_WEI448_1_peer_pub_key[] = {
50*f0865ec9SKyle Evans 	0x9b, 0x08, 0xf7, 0xcc, 0x31, 0xb7, 0xe3, 0xe6, 0x7d, 0x22, 0xd5, 0xae, 0xa1, 0x21, 0x07, 0x4a, 0x27, 0x3b, 0xd2, 0xb8, 0x3d, 0xe0, 0x9c, 0x63, 0xfa, 0xa7, 0x3d, 0x2c, 0x22, 0xc5, 0xd9, 0xbb, 0xc8, 0x36, 0x64, 0x72, 0x41, 0xd9, 0x53, 0xd4, 0x0c, 0x5b, 0x12, 0xda, 0x88, 0x12, 0x0d, 0x53, 0x17, 0x7f, 0x80, 0xe5, 0x32, 0xc4, 0x1f, 0xa0,
51*f0865ec9SKyle Evans };
52*f0865ec9SKyle Evans 
53*f0865ec9SKyle Evans static const u8 x448_WEI448_1_our_pub_key[] = {
54*f0865ec9SKyle Evans 	0x3e, 0xb7, 0xa8, 0x29, 0xb0, 0xcd, 0x20, 0xf5, 0xbc, 0xfc, 0x0b, 0x59, 0x9b, 0x6f, 0xec, 0xcf, 0x6d, 0xa4, 0x62, 0x71, 0x07, 0xbd, 0xb0, 0xd4, 0xf3, 0x45, 0xb4, 0x30, 0x27, 0xd8, 0xb9, 0x72, 0xfc, 0x3e, 0x34, 0xfb, 0x42, 0x32, 0xa1, 0x3c, 0xa7, 0x06, 0xdc, 0xb5, 0x7a, 0xec, 0x3d, 0xae, 0x07, 0xbd, 0xc1, 0xc6, 0x7b, 0xf3, 0x36, 0x09,
55*f0865ec9SKyle Evans };
56*f0865ec9SKyle Evans 
57*f0865ec9SKyle Evans static const u8 x448_WEI448_1_shared_secret[] = {
58*f0865ec9SKyle Evans 	0x07, 0xff, 0xf4, 0x18, 0x1a, 0xc6, 0xcc, 0x95, 0xec, 0x1c, 0x16, 0xa9, 0x4a, 0x0f, 0x74, 0xd1, 0x2d, 0xa2, 0x32, 0xce, 0x40, 0xa7, 0x75, 0x52, 0x28, 0x1d, 0x28, 0x2b, 0xb6, 0x0c, 0x0b, 0x56, 0xfd, 0x24, 0x64, 0xc3, 0x35, 0x54, 0x39, 0x36, 0x52, 0x1c, 0x24, 0x40, 0x30, 0x85, 0xd5, 0x9a, 0x44, 0x9a, 0x50, 0x37, 0x51, 0x4a, 0x87, 0x9d,
59*f0865ec9SKyle Evans };
60*f0865ec9SKyle Evans 
61*f0865ec9SKyle Evans static const ecdh_test_case x448_WEI448_1_test_case = {
62*f0865ec9SKyle Evans 	.name = "X448/WEI448 1",
63*f0865ec9SKyle Evans 	.ecdh_type = X448,
64*f0865ec9SKyle Evans 	.ec_str_p = &wei25519_str_params,
65*f0865ec9SKyle Evans 	.our_priv_key = x448_WEI448_1_our_priv_key,
66*f0865ec9SKyle Evans 	.our_priv_key_len = sizeof(x448_WEI448_1_our_priv_key),
67*f0865ec9SKyle Evans 	.peer_pub_key = x448_WEI448_1_peer_pub_key,
68*f0865ec9SKyle Evans 	.peer_pub_key_len = sizeof(x448_WEI448_1_peer_pub_key),
69*f0865ec9SKyle Evans 	.exp_our_pub_key = x448_WEI448_1_our_pub_key,
70*f0865ec9SKyle Evans 	.exp_our_pub_key_len = sizeof(x448_WEI448_1_our_pub_key),
71*f0865ec9SKyle Evans 	.exp_shared_secret = x448_WEI448_1_shared_secret,
72*f0865ec9SKyle Evans 	.exp_shared_secret_len = sizeof(x448_WEI448_1_shared_secret),
73*f0865ec9SKyle Evans };
74*f0865ec9SKyle Evans 
75*f0865ec9SKyle Evans #endif
76