xref: /aosp_15_r20/external/mbedtls/library/ecp_curves.c (revision 62c56f9862f102b96d72393aff6076c951fb8148)
1*62c56f98SSadaf Ebrahimi /*
2*62c56f98SSadaf Ebrahimi  *  Elliptic curves over GF(p): curve-specific data and functions
3*62c56f98SSadaf Ebrahimi  *
4*62c56f98SSadaf Ebrahimi  *  Copyright The Mbed TLS Contributors
5*62c56f98SSadaf Ebrahimi  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6*62c56f98SSadaf Ebrahimi  */
7*62c56f98SSadaf Ebrahimi 
8*62c56f98SSadaf Ebrahimi #include "common.h"
9*62c56f98SSadaf Ebrahimi 
10*62c56f98SSadaf Ebrahimi #if !defined(MBEDTLS_ECP_WITH_MPI_UINT)
11*62c56f98SSadaf Ebrahimi 
12*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_LIGHT)
13*62c56f98SSadaf Ebrahimi 
14*62c56f98SSadaf Ebrahimi #include "mbedtls/ecp.h"
15*62c56f98SSadaf Ebrahimi #include "mbedtls/platform_util.h"
16*62c56f98SSadaf Ebrahimi #include "mbedtls/error.h"
17*62c56f98SSadaf Ebrahimi 
18*62c56f98SSadaf Ebrahimi #include "bn_mul.h"
19*62c56f98SSadaf Ebrahimi #include "bignum_core.h"
20*62c56f98SSadaf Ebrahimi #include "ecp_invasive.h"
21*62c56f98SSadaf Ebrahimi 
22*62c56f98SSadaf Ebrahimi #include <string.h>
23*62c56f98SSadaf Ebrahimi 
24*62c56f98SSadaf Ebrahimi #if !defined(MBEDTLS_ECP_ALT)
25*62c56f98SSadaf Ebrahimi 
26*62c56f98SSadaf Ebrahimi /* Parameter validation macros based on platform_util.h */
27*62c56f98SSadaf Ebrahimi #define ECP_VALIDATE_RET(cond)    \
28*62c56f98SSadaf Ebrahimi     MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_ECP_BAD_INPUT_DATA)
29*62c56f98SSadaf Ebrahimi #define ECP_VALIDATE(cond)        \
30*62c56f98SSadaf Ebrahimi     MBEDTLS_INTERNAL_VALIDATE(cond)
31*62c56f98SSadaf Ebrahimi 
32*62c56f98SSadaf Ebrahimi #define ECP_MPI_INIT(_p, _n) { .p = (mbedtls_mpi_uint *) (_p), .s = 1, .n = (_n) }
33*62c56f98SSadaf Ebrahimi 
34*62c56f98SSadaf Ebrahimi #define ECP_MPI_INIT_ARRAY(x)   \
35*62c56f98SSadaf Ebrahimi     ECP_MPI_INIT(x, sizeof(x) / sizeof(mbedtls_mpi_uint))
36*62c56f98SSadaf Ebrahimi 
37*62c56f98SSadaf Ebrahimi #define ECP_POINT_INIT_XY_Z0(x, y) { \
38*62c56f98SSadaf Ebrahimi         ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(NULL, 0) }
39*62c56f98SSadaf Ebrahimi #define ECP_POINT_INIT_XY_Z1(x, y) { \
40*62c56f98SSadaf Ebrahimi         ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(mpi_one, 1) }
41*62c56f98SSadaf Ebrahimi 
42*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) ||   \
43*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
44*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
45*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) ||   \
46*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) ||   \
47*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)   ||   \
48*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)   ||   \
49*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)   ||   \
50*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
51*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
52*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
53*62c56f98SSadaf Ebrahimi /* For these curves, we build the group parameters dynamically. */
54*62c56f98SSadaf Ebrahimi #define ECP_LOAD_GROUP
55*62c56f98SSadaf Ebrahimi static mbedtls_mpi_uint mpi_one[] = { 1 };
56*62c56f98SSadaf Ebrahimi #endif
57*62c56f98SSadaf Ebrahimi 
58*62c56f98SSadaf Ebrahimi /*
59*62c56f98SSadaf Ebrahimi  * Note: the constants are in little-endian order
60*62c56f98SSadaf Ebrahimi  * to be directly usable in MPIs
61*62c56f98SSadaf Ebrahimi  */
62*62c56f98SSadaf Ebrahimi 
63*62c56f98SSadaf Ebrahimi /*
64*62c56f98SSadaf Ebrahimi  * Domain parameters for secp192r1
65*62c56f98SSadaf Ebrahimi  */
66*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
67*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_p[] = {
68*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
69*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
70*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
71*62c56f98SSadaf Ebrahimi };
72*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_b[] = {
73*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xB9, 0x46, 0xC1, 0xEC, 0xDE, 0xB8, 0xFE),
74*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x30, 0x24, 0x72, 0xAB, 0xE9, 0xA7, 0x0F),
75*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x80, 0x9C, 0xE5, 0x19, 0x05, 0x21, 0x64),
76*62c56f98SSadaf Ebrahimi };
77*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_gx[] = {
78*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4),
79*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C),
80*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18),
81*62c56f98SSadaf Ebrahimi };
82*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_gy[] = {
83*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73),
84*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63),
85*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07),
86*62c56f98SSadaf Ebrahimi };
87*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_n[] = {
88*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x28, 0xD2, 0xB4, 0xB1, 0xC9, 0x6B, 0x14),
89*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xF8, 0xDE, 0x99, 0xFF, 0xFF, 0xFF, 0xFF),
90*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
91*62c56f98SSadaf Ebrahimi };
92*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
93*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_0_X[] = {
94*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4),
95*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C),
96*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18),
97*62c56f98SSadaf Ebrahimi };
98*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_0_Y[] = {
99*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73),
100*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63),
101*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07),
102*62c56f98SSadaf Ebrahimi };
103*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_1_X[] = {
104*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x9E, 0xE3, 0x60, 0x59, 0xD1, 0xC4, 0xC2),
105*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBD, 0x22, 0xD7, 0x2D, 0x07, 0xBD, 0xB6),
106*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x2A, 0xCF, 0x33, 0xF0, 0xBE, 0xD1, 0xED),
107*62c56f98SSadaf Ebrahimi };
108*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_1_Y[] = {
109*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x71, 0x4B, 0xA8, 0xED, 0x7E, 0xC9, 0x1A),
110*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x2A, 0xF6, 0xDF, 0x0E, 0xE8, 0x4C, 0x0F),
111*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x35, 0xF7, 0x8A, 0xC3, 0xEC, 0xDE, 0x1E),
112*62c56f98SSadaf Ebrahimi };
113*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_2_X[] = {
114*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x67, 0xC2, 0x1D, 0x32, 0x8F, 0x10, 0xFB),
115*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x2D, 0x17, 0xF3, 0xE4, 0xFE, 0xD8, 0x13),
116*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x45, 0x10, 0x70, 0x2C, 0x3E, 0x52, 0x3E),
117*62c56f98SSadaf Ebrahimi };
118*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_2_Y[] = {
119*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xF1, 0x04, 0x5D, 0xEE, 0xD4, 0x56, 0xE6),
120*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xB7, 0x38, 0x27, 0x61, 0xAA, 0x81, 0x87),
121*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x37, 0xD7, 0x0E, 0x29, 0x0E, 0x11, 0x14),
122*62c56f98SSadaf Ebrahimi };
123*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_3_X[] = {
124*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x35, 0x52, 0xC6, 0x31, 0xB7, 0x27, 0xF5),
125*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xD4, 0x15, 0x98, 0x0F, 0xE7, 0xF3, 0x6A),
126*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x31, 0x70, 0x35, 0x09, 0xA0, 0x2B, 0xC2),
127*62c56f98SSadaf Ebrahimi };
128*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_3_Y[] = {
129*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x75, 0xA7, 0x4C, 0x88, 0xCF, 0x5B, 0xE4),
130*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x17, 0x48, 0x8D, 0xF2, 0xF0, 0x86, 0xED),
131*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xCF, 0xFE, 0x6B, 0xB0, 0xA5, 0x06, 0xAB),
132*62c56f98SSadaf Ebrahimi };
133*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_4_X[] = {
134*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x6A, 0xDC, 0x9A, 0x6D, 0x7B, 0x47, 0x2E),
135*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xFC, 0x51, 0x12, 0x62, 0x66, 0x0B, 0x59),
136*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x40, 0x93, 0xA0, 0xB5, 0x5A, 0x58, 0xD7),
137*62c56f98SSadaf Ebrahimi };
138*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_4_Y[] = {
139*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xCB, 0xAF, 0xDC, 0x0B, 0xA1, 0x26, 0xFB),
140*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x36, 0x9D, 0xA3, 0xD7, 0x3B, 0xAD, 0x39),
141*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x3B, 0x05, 0x9A, 0xA8, 0xAA, 0x69, 0xB2),
142*62c56f98SSadaf Ebrahimi };
143*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_5_X[] = {
144*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xD9, 0xD1, 0x4D, 0x4A, 0x6E, 0x96, 0x1E),
145*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x66, 0x32, 0x39, 0xC6, 0x57, 0x7D, 0xE6),
146*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xA0, 0x36, 0xC2, 0x45, 0xF9, 0x00, 0x62),
147*62c56f98SSadaf Ebrahimi };
148*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_5_Y[] = {
149*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xEF, 0x59, 0x46, 0xDC, 0x60, 0xD9, 0x8F),
150*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xB0, 0xE9, 0x41, 0xA4, 0x87, 0x76, 0x89),
151*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xD4, 0x0E, 0xB2, 0xFA, 0x16, 0x56, 0xDC),
152*62c56f98SSadaf Ebrahimi };
153*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_6_X[] = {
154*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x62, 0xD2, 0xB1, 0x34, 0xB2, 0xF1, 0x06),
155*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xED, 0x55, 0xC5, 0x47, 0xB5, 0x07, 0x15),
156*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xF6, 0x2F, 0x94, 0xC3, 0xDD, 0x54, 0x2F),
157*62c56f98SSadaf Ebrahimi };
158*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_6_Y[] = {
159*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xA6, 0xD4, 0x8C, 0xA9, 0xCE, 0x4D, 0x2E),
160*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x4B, 0x46, 0xCC, 0xB2, 0x55, 0xC8, 0xB2),
161*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xAE, 0x31, 0xED, 0x89, 0x65, 0x59, 0x55),
162*62c56f98SSadaf Ebrahimi };
163*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_7_X[] = {
164*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x0A, 0xD1, 0x1A, 0xC5, 0xF6, 0xEA, 0x43),
165*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xFC, 0x0C, 0x1A, 0xFB, 0xA0, 0xC8, 0x70),
166*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xFD, 0x53, 0x6F, 0x6D, 0xBF, 0xBA, 0xAF),
167*62c56f98SSadaf Ebrahimi };
168*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_7_Y[] = {
169*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xB0, 0x7D, 0x83, 0x96, 0xE3, 0xCB, 0x9D),
170*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x6E, 0x55, 0x2C, 0x20, 0x53, 0x2F, 0x46),
171*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x66, 0x00, 0x17, 0x08, 0xFE, 0xAC, 0x31),
172*62c56f98SSadaf Ebrahimi };
173*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_8_X[] = {
174*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x12, 0x97, 0x3A, 0xC7, 0x57, 0x45, 0xCD),
175*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x25, 0x99, 0x00, 0xF6, 0x97, 0xB4, 0x64),
176*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x74, 0xE6, 0xE6, 0xA3, 0xDF, 0x9C, 0xCC),
177*62c56f98SSadaf Ebrahimi };
178*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_8_Y[] = {
179*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xF4, 0x76, 0xD5, 0x5F, 0x2A, 0xFD, 0x85),
180*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x80, 0x7E, 0x3E, 0xE5, 0xE8, 0xD6, 0x63),
181*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xAD, 0x1E, 0x70, 0x79, 0x3E, 0x3D, 0x83),
182*62c56f98SSadaf Ebrahimi };
183*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_9_X[] = {
184*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x15, 0xBB, 0xB3, 0x42, 0x6A, 0xA1, 0x7C),
185*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x58, 0xCB, 0x43, 0x25, 0x00, 0x14, 0x68),
186*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x4E, 0x93, 0x11, 0xE0, 0x32, 0x54, 0x98),
187*62c56f98SSadaf Ebrahimi };
188*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_9_Y[] = {
189*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x52, 0xA2, 0xB4, 0x57, 0x32, 0xB9, 0x11),
190*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x43, 0xA1, 0xB1, 0xFB, 0x01, 0xE1, 0xE7),
191*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xFB, 0x5A, 0x11, 0xB8, 0xC2, 0x03, 0xE5),
192*62c56f98SSadaf Ebrahimi };
193*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_10_X[] = {
194*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x2B, 0x71, 0x26, 0x4E, 0x7C, 0xC5, 0x32),
195*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xF5, 0xD3, 0xA8, 0xE4, 0x95, 0x48, 0x65),
196*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xAE, 0xD9, 0x5D, 0x9F, 0x6A, 0x22, 0xAD),
197*62c56f98SSadaf Ebrahimi };
198*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_10_Y[] = {
199*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xCC, 0xA3, 0x4D, 0xA0, 0x1C, 0x34, 0xEF),
200*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x3C, 0x62, 0xF8, 0x5E, 0xA6, 0x58, 0x7D),
201*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x6E, 0x66, 0x8A, 0x3D, 0x17, 0xFF, 0x0F),
202*62c56f98SSadaf Ebrahimi };
203*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_11_X[] = {
204*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xCD, 0xA8, 0xDD, 0xD1, 0x20, 0x5C, 0xEA),
205*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xFE, 0x17, 0xE2, 0xCF, 0xEA, 0x63, 0xDE),
206*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x51, 0xC9, 0x16, 0xDE, 0xB4, 0xB2, 0xDD),
207*62c56f98SSadaf Ebrahimi };
208*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_11_Y[] = {
209*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBE, 0x12, 0xD7, 0xA3, 0x0A, 0x50, 0x33),
210*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x87, 0xC5, 0x8A, 0x76, 0x57, 0x07, 0x60),
211*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x1F, 0xC6, 0x1B, 0x66, 0xC4, 0x3D, 0x8A),
212*62c56f98SSadaf Ebrahimi };
213*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_12_X[] = {
214*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xA4, 0x85, 0x13, 0x8F, 0xA7, 0x35, 0x19),
215*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x0D, 0xFD, 0xFF, 0x1B, 0xD1, 0xD6, 0xEF),
216*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x7A, 0xD0, 0xC3, 0xB4, 0xEF, 0x39, 0x66),
217*62c56f98SSadaf Ebrahimi };
218*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_12_Y[] = {
219*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xFE, 0xA5, 0x9C, 0x34, 0x30, 0x49, 0x40),
220*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xC5, 0x39, 0x26, 0x06, 0xE3, 0x01, 0x17),
221*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x2B, 0x66, 0xFC, 0x95, 0x5F, 0x35, 0xF7),
222*62c56f98SSadaf Ebrahimi };
223*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_13_X[] = {
224*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xCF, 0x54, 0x63, 0x99, 0x57, 0x05, 0x45),
225*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x6F, 0x00, 0x5F, 0x65, 0x08, 0x47, 0x98),
226*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x2A, 0x90, 0x6D, 0x67, 0xC6, 0xBC, 0x45),
227*62c56f98SSadaf Ebrahimi };
228*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_13_Y[] = {
229*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x4D, 0x88, 0x0A, 0x35, 0x9E, 0x33, 0x9C),
230*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x17, 0x0C, 0xF8, 0xE1, 0x7A, 0x49, 0x02),
231*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x44, 0x06, 0x8F, 0x0B, 0x70, 0x2F, 0x71),
232*62c56f98SSadaf Ebrahimi };
233*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_14_X[] = {
234*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x4B, 0xCB, 0xF9, 0x8E, 0x6A, 0xDA, 0x1B),
235*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x43, 0xA1, 0x3F, 0xCE, 0x17, 0xD2, 0x32),
236*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x0D, 0xD2, 0x6C, 0x82, 0x37, 0xE5, 0xFC),
237*62c56f98SSadaf Ebrahimi };
238*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_14_Y[] = {
239*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x3C, 0xF4, 0x92, 0xB4, 0x8A, 0x95, 0x85),
240*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x96, 0xF1, 0x0A, 0x34, 0x2F, 0x74, 0x7E),
241*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xA1, 0xAA, 0xBA, 0x86, 0x77, 0x4F, 0xA2),
242*62c56f98SSadaf Ebrahimi };
243*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_15_X[] = {
244*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x7F, 0xEF, 0x60, 0x50, 0x80, 0xD7, 0xD4),
245*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0xAC, 0xC9, 0xFE, 0xEC, 0x0A, 0x1A, 0x9F),
246*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x2F, 0xBE, 0x91, 0xD7, 0xB7, 0x38, 0x48),
247*62c56f98SSadaf Ebrahimi };
248*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192r1_T_15_Y[] = {
249*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xAE, 0x85, 0x98, 0xFE, 0x05, 0x7F, 0x9F),
250*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBE, 0xFD, 0x11, 0x31, 0x3D, 0x14, 0x13),
251*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x75, 0xE8, 0x30, 0x01, 0xCB, 0x9B, 0x1C),
252*62c56f98SSadaf Ebrahimi };
253*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp192r1_T[16] = {
254*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp192r1_T_0_X, secp192r1_T_0_Y),
255*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_1_X, secp192r1_T_1_Y),
256*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_2_X, secp192r1_T_2_Y),
257*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_3_X, secp192r1_T_3_Y),
258*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_4_X, secp192r1_T_4_Y),
259*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_5_X, secp192r1_T_5_Y),
260*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_6_X, secp192r1_T_6_Y),
261*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_7_X, secp192r1_T_7_Y),
262*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_8_X, secp192r1_T_8_Y),
263*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_9_X, secp192r1_T_9_Y),
264*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_10_X, secp192r1_T_10_Y),
265*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_11_X, secp192r1_T_11_Y),
266*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_12_X, secp192r1_T_12_Y),
267*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_13_X, secp192r1_T_13_Y),
268*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_14_X, secp192r1_T_14_Y),
269*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192r1_T_15_X, secp192r1_T_15_Y),
270*62c56f98SSadaf Ebrahimi };
271*62c56f98SSadaf Ebrahimi #else
272*62c56f98SSadaf Ebrahimi #define secp192r1_T NULL
273*62c56f98SSadaf Ebrahimi #endif
274*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
275*62c56f98SSadaf Ebrahimi 
276*62c56f98SSadaf Ebrahimi /*
277*62c56f98SSadaf Ebrahimi  * Domain parameters for secp224r1
278*62c56f98SSadaf Ebrahimi  */
279*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
280*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_p[] = {
281*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
282*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
283*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
284*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
285*62c56f98SSadaf Ebrahimi };
286*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_b[] = {
287*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27),
288*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xD8, 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50),
289*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x32, 0x41, 0xF5, 0xAB, 0xB3, 0x04, 0x0C),
290*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0x85, 0x0A, 0x05, 0xB4),
291*62c56f98SSadaf Ebrahimi };
292*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_gx[] = {
293*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
294*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
295*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
296*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0xBD, 0x0C, 0x0E, 0xB7),
297*62c56f98SSadaf Ebrahimi };
298*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_gy[] = {
299*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
300*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
301*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
302*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0x88, 0x63, 0x37, 0xBD),
303*62c56f98SSadaf Ebrahimi };
304*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_n[] = {
305*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x2A, 0x5C, 0x5C, 0x45, 0x29, 0xDD, 0x13),
306*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF0, 0xB8, 0xE0, 0xA2, 0x16, 0xFF, 0xFF),
307*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
308*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
309*62c56f98SSadaf Ebrahimi };
310*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
311*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_0_X[] = {
312*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
313*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
314*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
315*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x0C, 0x0E, 0xB7, 0x00, 0x00, 0x00, 0x00),
316*62c56f98SSadaf Ebrahimi };
317*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_0_Y[] = {
318*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
319*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
320*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
321*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x63, 0x37, 0xBD, 0x00, 0x00, 0x00, 0x00),
322*62c56f98SSadaf Ebrahimi };
323*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_1_X[] = {
324*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF9, 0xB8, 0xD0, 0x3D, 0xD2, 0xD3, 0xFA),
325*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xFD, 0x99, 0x26, 0x19, 0xFE, 0x13, 0x6E),
326*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x0E, 0x4C, 0x48, 0x7C, 0xA2, 0x17, 0x01),
327*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA3, 0x13, 0x57, 0x00, 0x00, 0x00, 0x00),
328*62c56f98SSadaf Ebrahimi };
329*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_1_Y[] = {
330*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x16, 0x5C, 0x8F, 0xAA, 0xED, 0x0F, 0x58),
331*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xC5, 0x43, 0x34, 0x93, 0x05, 0x2A, 0x4C),
332*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE3, 0x6C, 0xCA, 0xC6, 0x14, 0xC2, 0x25),
333*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x43, 0x6C, 0xD7, 0x00, 0x00, 0x00, 0x00),
334*62c56f98SSadaf Ebrahimi };
335*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_2_X[] = {
336*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x5A, 0x98, 0x1E, 0xC8, 0xA5, 0x42, 0xA3),
337*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x49, 0x56, 0x78, 0xF8, 0xEF, 0xED, 0x65),
338*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xBB, 0x64, 0xB6, 0x4C, 0x54, 0x5F, 0xD1),
339*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x0C, 0x33, 0xCC, 0x00, 0x00, 0x00, 0x00),
340*62c56f98SSadaf Ebrahimi };
341*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_2_Y[] = {
342*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x79, 0xCB, 0x2E, 0x08, 0xFF, 0xD8, 0xE6),
343*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x1F, 0xD4, 0xD7, 0x57, 0xE9, 0x39, 0x45),
344*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xD6, 0x3B, 0x0A, 0x1C, 0x87, 0xB7, 0x6A),
345*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x30, 0xD8, 0x05, 0x00, 0x00, 0x00, 0x00),
346*62c56f98SSadaf Ebrahimi };
347*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_3_X[] = {
348*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x79, 0x74, 0x9A, 0xE6, 0xBB, 0xC2, 0xC2),
349*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x5B, 0xA6, 0x67, 0xC1, 0x91, 0xE7, 0x64),
350*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xDF, 0x38, 0x82, 0x19, 0x2C, 0x4C, 0xCA),
351*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x2E, 0x39, 0xC5, 0x00, 0x00, 0x00, 0x00),
352*62c56f98SSadaf Ebrahimi };
353*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_3_Y[] = {
354*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x36, 0x78, 0x4E, 0xAE, 0x5B, 0x02, 0x76),
355*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF6, 0x8B, 0xF8, 0xF4, 0x92, 0x6B, 0x42),
356*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x4D, 0x71, 0x35, 0xE7, 0x0C, 0x2C, 0x98),
357*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xA5, 0x1F, 0xAE, 0x00, 0x00, 0x00, 0x00),
358*62c56f98SSadaf Ebrahimi };
359*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_4_X[] = {
360*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x1C, 0x4B, 0xDF, 0x5B, 0xF2, 0x51, 0xB7),
361*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0xB1, 0x5A, 0xC6, 0x0F, 0x0E, 0x61),
362*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x24, 0x09, 0x62, 0xAF, 0xFC, 0xDB, 0x45),
363*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xE1, 0x80, 0x55, 0x00, 0x00, 0x00, 0x00),
364*62c56f98SSadaf Ebrahimi };
365*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_4_Y[] = {
366*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x82, 0xFE, 0xAD, 0xC3, 0xE5, 0xCF, 0xD8),
367*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xA2, 0x62, 0x17, 0x76, 0xF0, 0x5A, 0xFA),
368*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB8, 0xE5, 0xAC, 0xB7, 0x66, 0x38, 0xAA),
369*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xFD, 0x86, 0x05, 0x00, 0x00, 0x00, 0x00),
370*62c56f98SSadaf Ebrahimi };
371*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_5_X[] = {
372*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0x0C, 0x3C, 0xD1, 0x66, 0xB0, 0xF1),
373*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x59, 0xB4, 0x8D, 0x90, 0x10, 0xB7, 0xA2),
374*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x47, 0x9B, 0xE6, 0x55, 0x8A, 0xE4, 0xEE),
375*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x49, 0xDB, 0x78, 0x00, 0x00, 0x00, 0x00),
376*62c56f98SSadaf Ebrahimi };
377*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_5_Y[] = {
378*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x97, 0xED, 0xDE, 0xFF, 0xB3, 0xDF, 0x48),
379*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xB9, 0x83, 0xB7, 0xEB, 0xBE, 0x40, 0x8D),
380*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xD3, 0xD3, 0xCD, 0x0E, 0x82, 0x79, 0x3D),
381*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x83, 0x1B, 0xF0, 0x00, 0x00, 0x00, 0x00),
382*62c56f98SSadaf Ebrahimi };
383*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_6_X[] = {
384*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x22, 0xBB, 0x54, 0xD3, 0x31, 0x56, 0xFC),
385*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0xE5, 0xE0, 0x89, 0x96, 0x8E, 0x71),
386*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xEF, 0x0A, 0xED, 0xD0, 0x11, 0x4A, 0xFF),
387*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x00, 0x57, 0x27, 0x00, 0x00, 0x00, 0x00),
388*62c56f98SSadaf Ebrahimi };
389*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_6_Y[] = {
390*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCA, 0x3D, 0xF7, 0x64, 0x9B, 0x6E, 0x85),
391*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xE3, 0x70, 0x6B, 0x41, 0xD7, 0xED, 0x8F),
392*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x44, 0x44, 0x80, 0xCE, 0x13, 0x37, 0x92),
393*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x73, 0x80, 0x79, 0x00, 0x00, 0x00, 0x00),
394*62c56f98SSadaf Ebrahimi };
395*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_7_X[] = {
396*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x4D, 0x70, 0x7D, 0x31, 0x0F, 0x1C, 0x58),
397*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x35, 0x88, 0x47, 0xC4, 0x24, 0x78, 0x3F),
398*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF0, 0xCD, 0x91, 0x81, 0xB3, 0xDE, 0xB6),
399*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xCE, 0xC6, 0xF7, 0x00, 0x00, 0x00, 0x00),
400*62c56f98SSadaf Ebrahimi };
401*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_7_Y[] = {
402*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x9C, 0x2D, 0xE8, 0xD2, 0x00, 0x8F, 0x10),
403*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x5E, 0x7C, 0x0E, 0x0C, 0x6E, 0x58, 0x02),
404*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x81, 0x21, 0xCE, 0x43, 0xF4, 0x24, 0x3D),
405*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xBC, 0xF0, 0xF4, 0x00, 0x00, 0x00, 0x00),
406*62c56f98SSadaf Ebrahimi };
407*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_8_X[] = {
408*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x10, 0xC2, 0x74, 0x4A, 0x8F, 0x8A, 0xCF),
409*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x67, 0xF4, 0x2B, 0x38, 0x2B, 0x35, 0x17),
410*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0C, 0xA9, 0xFA, 0x77, 0x5C, 0xBD),
411*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x19, 0x2B, 0x00, 0x00, 0x00, 0x00),
412*62c56f98SSadaf Ebrahimi };
413*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_8_Y[] = {
414*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x3E, 0x96, 0x22, 0x53, 0xE1, 0xE9, 0xBE),
415*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x13, 0xBC, 0xA1, 0x16, 0xEC, 0x01, 0x1A),
416*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x00, 0xC9, 0x7A, 0xC3, 0x73, 0xA5, 0x45),
417*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xF4, 0x5E, 0xC1, 0x00, 0x00, 0x00, 0x00),
418*62c56f98SSadaf Ebrahimi };
419*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_9_X[] = {
420*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x95, 0xD6, 0xD9, 0x32, 0x30, 0x2B, 0xD0),
421*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x42, 0x09, 0x05, 0x61, 0x2A, 0x7E, 0x82),
422*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x84, 0xA2, 0x05, 0x88, 0x64, 0x65, 0xF9),
423*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2D, 0x90, 0xB3, 0x00, 0x00, 0x00, 0x00),
424*62c56f98SSadaf Ebrahimi };
425*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_9_Y[] = {
426*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE7, 0x2E, 0x85, 0x55, 0x80, 0x7C, 0x79),
427*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC1, 0xAC, 0x78, 0xB4, 0xAF, 0xFB, 0x6E),
428*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xC3, 0x28, 0x8E, 0x79, 0x18, 0x1F, 0x58),
429*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x46, 0xCF, 0x49, 0x00, 0x00, 0x00, 0x00),
430*62c56f98SSadaf Ebrahimi };
431*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_10_X[] = {
432*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x5F, 0xA8, 0x6C, 0x46, 0x83, 0x43, 0xFA),
433*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xA9, 0x93, 0x11, 0xB6, 0x07, 0x57, 0x74),
434*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x2A, 0x9D, 0x03, 0x89, 0x7E, 0xD7, 0x3C),
435*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x8C, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00),
436*62c56f98SSadaf Ebrahimi };
437*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_10_Y[] = {
438*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x2C, 0x13, 0x59, 0xCC, 0xFA, 0x84, 0x9E),
439*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB9, 0x48, 0xBC, 0x57, 0xC7, 0xB3, 0x7C),
440*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x0A, 0x38, 0x24, 0x2E, 0x3A, 0x28, 0x25),
441*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x0A, 0x43, 0xB8, 0x00, 0x00, 0x00, 0x00),
442*62c56f98SSadaf Ebrahimi };
443*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_11_X[] = {
444*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x25, 0xAB, 0xC1, 0xEE, 0x70, 0x3C, 0xE1),
445*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xDB, 0x45, 0x1D, 0x4A, 0x80, 0x75, 0x35),
446*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1F, 0x4D, 0x2D, 0x9A, 0x05, 0xF4, 0xCB),
447*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x10, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00),
448*62c56f98SSadaf Ebrahimi };
449*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_11_Y[] = {
450*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x95, 0xE1, 0xDC, 0x15, 0x86, 0xC3, 0x7B),
451*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xDC, 0x27, 0xD1, 0x56, 0xA1, 0x14, 0x0D),
452*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x0B, 0xD6, 0x77, 0x4E, 0x44, 0xA2, 0xF8),
453*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x42, 0x71, 0x1F, 0x00, 0x00, 0x00, 0x00),
454*62c56f98SSadaf Ebrahimi };
455*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_12_X[] = {
456*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x86, 0xB2, 0xB0, 0xC8, 0x2F, 0x7B, 0xFE),
457*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xEF, 0xCB, 0xDB, 0xBC, 0x9E, 0x3B, 0xC5),
458*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x03, 0x86, 0xDD, 0x5B, 0xF5, 0x8D, 0x46),
459*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x95, 0x79, 0xD6, 0x00, 0x00, 0x00, 0x00),
460*62c56f98SSadaf Ebrahimi };
461*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_12_Y[] = {
462*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x32, 0x14, 0xDA, 0x9B, 0x4F, 0x07, 0x39),
463*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x3E, 0xFB, 0x06, 0xEE, 0xA7, 0x40, 0x40),
464*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x1F, 0xDF, 0x71, 0x61, 0xFD, 0x8B, 0xBE),
465*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x8B, 0xAB, 0x8B, 0x00, 0x00, 0x00, 0x00),
466*62c56f98SSadaf Ebrahimi };
467*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_13_X[] = {
468*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x34, 0xB3, 0xB4, 0xBC, 0x9F, 0xB0, 0x5E),
469*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x58, 0x48, 0xA8, 0x77, 0xBB, 0x13, 0x2F),
470*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC6, 0xF7, 0x34, 0xCC, 0x89, 0x21, 0x0A),
471*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x33, 0xDD, 0x1F, 0x00, 0x00, 0x00, 0x00),
472*62c56f98SSadaf Ebrahimi };
473*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_13_Y[] = {
474*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x81, 0xEF, 0xA4, 0xF2, 0x10, 0x0B, 0xCD),
475*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF7, 0x6E, 0x72, 0x4A, 0xDF, 0xDD, 0xE8),
476*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x23, 0x0A, 0x53, 0x03, 0x16, 0x62, 0xD2),
477*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x76, 0xFD, 0x3C, 0x00, 0x00, 0x00, 0x00),
478*62c56f98SSadaf Ebrahimi };
479*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_14_X[] = {
480*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x14, 0xA1, 0xFA, 0xA0, 0x18, 0xBE, 0x07),
481*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2A, 0xE1, 0xD7, 0xB0, 0x6C, 0xA0, 0xDE),
482*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xC0, 0xB0, 0xC6, 0x63, 0x24, 0xCD, 0x4E),
483*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x38, 0x2C, 0xB1, 0x00, 0x00, 0x00, 0x00),
484*62c56f98SSadaf Ebrahimi };
485*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_14_Y[] = {
486*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCD, 0x7D, 0x20, 0x0C, 0xFE, 0xAC, 0xC3),
487*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x9F, 0xA2, 0xB6, 0x45, 0xF7, 0x7B),
488*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x99, 0xF3, 0xD2, 0x20, 0x02, 0xEB, 0x04),
489*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x5B, 0x7B, 0x00, 0x00, 0x00, 0x00),
490*62c56f98SSadaf Ebrahimi };
491*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_15_X[] = {
492*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xDD, 0x77, 0x91, 0x60, 0xEA, 0xFD, 0xD3),
493*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xD3, 0xB5, 0xD6, 0x90, 0x17, 0x0E, 0x1A),
494*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xF4, 0x28, 0xC1, 0xF2, 0x53, 0xF6, 0x63),
495*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x58, 0xDC, 0x61, 0x00, 0x00, 0x00, 0x00),
496*62c56f98SSadaf Ebrahimi };
497*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224r1_T_15_Y[] = {
498*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x20, 0x01, 0xFB, 0xF1, 0xBD, 0x5F, 0x45),
499*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x7F, 0x06, 0xDA, 0x11, 0xCB, 0xBA, 0xA6),
500*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x41, 0x00, 0xA4, 0x1B, 0x30, 0x33, 0x79),
501*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xFF, 0x27, 0xCA, 0x00, 0x00, 0x00, 0x00),
502*62c56f98SSadaf Ebrahimi };
503*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp224r1_T[16] = {
504*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp224r1_T_0_X, secp224r1_T_0_Y),
505*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_1_X, secp224r1_T_1_Y),
506*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_2_X, secp224r1_T_2_Y),
507*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_3_X, secp224r1_T_3_Y),
508*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_4_X, secp224r1_T_4_Y),
509*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_5_X, secp224r1_T_5_Y),
510*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_6_X, secp224r1_T_6_Y),
511*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_7_X, secp224r1_T_7_Y),
512*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_8_X, secp224r1_T_8_Y),
513*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_9_X, secp224r1_T_9_Y),
514*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_10_X, secp224r1_T_10_Y),
515*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_11_X, secp224r1_T_11_Y),
516*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_12_X, secp224r1_T_12_Y),
517*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_13_X, secp224r1_T_13_Y),
518*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_14_X, secp224r1_T_14_Y),
519*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224r1_T_15_X, secp224r1_T_15_Y),
520*62c56f98SSadaf Ebrahimi };
521*62c56f98SSadaf Ebrahimi #else
522*62c56f98SSadaf Ebrahimi #define secp224r1_T NULL
523*62c56f98SSadaf Ebrahimi #endif
524*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
525*62c56f98SSadaf Ebrahimi 
526*62c56f98SSadaf Ebrahimi /*
527*62c56f98SSadaf Ebrahimi  * Domain parameters for secp256r1
528*62c56f98SSadaf Ebrahimi  */
529*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
530*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_p[] = {
531*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
532*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
533*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
534*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
535*62c56f98SSadaf Ebrahimi };
536*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_b[] = {
537*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x60, 0xD2, 0x27, 0x3E, 0x3C, 0xCE, 0x3B),
538*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xB0, 0x53, 0xCC, 0xB0, 0x06, 0x1D, 0x65),
539*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x86, 0x98, 0x76, 0x55, 0xBD, 0xEB, 0xB3),
540*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x93, 0x3A, 0xAA, 0xD8, 0x35, 0xC6, 0x5A),
541*62c56f98SSadaf Ebrahimi };
542*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_gx[] = {
543*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4),
544*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77),
545*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8),
546*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B),
547*62c56f98SSadaf Ebrahimi };
548*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_gy[] = {
549*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB),
550*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B),
551*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E),
552*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F),
553*62c56f98SSadaf Ebrahimi };
554*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_n[] = {
555*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x25, 0x63, 0xFC, 0xC2, 0xCA, 0xB9, 0xF3),
556*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x9E, 0x17, 0xA7, 0xAD, 0xFA, 0xE6, 0xBC),
557*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
558*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
559*62c56f98SSadaf Ebrahimi };
560*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
561*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_0_X[] = {
562*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4),
563*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77),
564*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8),
565*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B),
566*62c56f98SSadaf Ebrahimi };
567*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_0_Y[] = {
568*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB),
569*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B),
570*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E),
571*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F),
572*62c56f98SSadaf Ebrahimi };
573*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_1_X[] = {
574*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xC8, 0xBA, 0x04, 0xB7, 0x4B, 0xD2, 0xF7),
575*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xC6, 0x23, 0x3A, 0xA0, 0x09, 0x3A, 0x59),
576*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x9D, 0x4C, 0xF9, 0x58, 0x23, 0xCC, 0xDF),
577*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xED, 0x7B, 0x29, 0x87, 0x0F, 0xFA, 0x3C),
578*62c56f98SSadaf Ebrahimi };
579*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_1_Y[] = {
580*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x69, 0xF2, 0x40, 0x0B, 0xA3, 0x98, 0xCE),
581*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xA8, 0x48, 0x02, 0x0D, 0x1C, 0x12, 0x62),
582*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xAF, 0x09, 0x83, 0x80, 0xAA, 0x58, 0xA7),
583*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x12, 0xBE, 0x70, 0x94, 0x76, 0xE3, 0xE4),
584*62c56f98SSadaf Ebrahimi };
585*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_2_X[] = {
586*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x7D, 0xEF, 0x86, 0xFF, 0xE3, 0x37, 0xDD),
587*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x86, 0x8B, 0x08, 0x27, 0x7C, 0xD7, 0xF6),
588*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x54, 0x4C, 0x25, 0x4F, 0x9A, 0xFE, 0x28),
589*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xFD, 0xF0, 0x6D, 0x37, 0x03, 0x69, 0xD6),
590*62c56f98SSadaf Ebrahimi };
591*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_2_Y[] = {
592*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xD5, 0xDA, 0xAD, 0x92, 0x49, 0xF0, 0x9F),
593*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x73, 0x43, 0x9E, 0xAF, 0xA7, 0xD1, 0xF3),
594*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x41, 0x07, 0xDF, 0x78, 0x95, 0x3E, 0xA1),
595*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x3D, 0xD1, 0xE6, 0x3C, 0xA5, 0xE2, 0x20),
596*62c56f98SSadaf Ebrahimi };
597*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_3_X[] = {
598*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x6A, 0x5D, 0x52, 0x35, 0xD7, 0xBF, 0xAE),
599*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xA2, 0xBE, 0x96, 0xF4, 0xF8, 0x02, 0xC3),
600*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x20, 0x49, 0x54, 0xEA, 0xB3, 0x82, 0xDB),
601*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0xDB, 0xEA, 0x02, 0xD1, 0x75, 0x1C, 0x62),
602*62c56f98SSadaf Ebrahimi };
603*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_3_Y[] = {
604*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x85, 0xF4, 0x9E, 0x4C, 0xDC, 0x39, 0x89),
605*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x6D, 0xC4, 0x57, 0xD8, 0x03, 0x5D, 0x22),
606*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x7F, 0x2D, 0x52, 0x6F, 0xC9, 0xDA, 0x4F),
607*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x64, 0xFA, 0xB4, 0xFE, 0xA4, 0xC4, 0xD7),
608*62c56f98SSadaf Ebrahimi };
609*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_4_X[] = {
610*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x37, 0xB9, 0xC0, 0xAA, 0x59, 0xC6, 0x8B),
611*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x58, 0xD9, 0xED, 0x58, 0x99, 0x65, 0xF7),
612*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x7D, 0x26, 0x8C, 0x4A, 0xF9, 0x05, 0x9F),
613*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x73, 0x9A, 0xC9, 0xE7, 0x46, 0xDC, 0x00),
614*62c56f98SSadaf Ebrahimi };
615*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_4_Y[] = {
616*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xD0, 0x55, 0xDF, 0x00, 0x0A, 0xF5, 0x4A),
617*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xBF, 0x56, 0x81, 0x2D, 0x20, 0xEB, 0xB5),
618*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xC1, 0x28, 0x52, 0xAB, 0xE3, 0xD1, 0x40),
619*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x34, 0x79, 0x45, 0x57, 0xA5, 0x12, 0x03),
620*62c56f98SSadaf Ebrahimi };
621*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_5_X[] = {
622*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCF, 0xB8, 0x7E, 0xF7, 0x92, 0x96, 0x8D),
623*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x01, 0x8C, 0x0D, 0x23, 0xF2, 0xE3, 0x05),
624*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x2E, 0xE3, 0x84, 0x52, 0x7A, 0x34, 0x76),
625*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xA1, 0xB0, 0x15, 0x90, 0xE2, 0x53, 0x3C),
626*62c56f98SSadaf Ebrahimi };
627*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_5_Y[] = {
628*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x98, 0xE7, 0xFA, 0xA5, 0x7D, 0x8B, 0x53),
629*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x35, 0xD2, 0x00, 0xD1, 0x1B, 0x9F, 0x1B),
630*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x69, 0x08, 0x9A, 0x72, 0xF0, 0xA9, 0x11),
631*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xFE, 0x0E, 0x14, 0xDA, 0x7C, 0x0E, 0xD3),
632*62c56f98SSadaf Ebrahimi };
633*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_6_X[] = {
634*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF6, 0xE8, 0xF8, 0x87, 0xF7, 0xFC, 0x6D),
635*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xBE, 0x7F, 0x3F, 0x7A, 0x2B, 0xD7, 0x13),
636*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x32, 0xF2, 0x2D, 0x94, 0x6D, 0x42, 0xFD),
637*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x9A, 0xE3, 0x5F, 0x42, 0xBB, 0x84, 0xED),
638*62c56f98SSadaf Ebrahimi };
639*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_6_Y[] = {
640*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x95, 0x29, 0x73, 0xA1, 0x67, 0x3E, 0x02),
641*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x30, 0x54, 0x35, 0x8E, 0x0A, 0xDD, 0x67),
642*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xD7, 0xA1, 0x97, 0x61, 0x3B, 0xF8, 0x0C),
643*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x33, 0x3C, 0x58, 0x55, 0x34, 0x23, 0xA3),
644*62c56f98SSadaf Ebrahimi };
645*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_7_X[] = {
646*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x5D, 0x16, 0x5F, 0x7B, 0xBC, 0xBB, 0xCE),
647*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xEE, 0x4E, 0x8A, 0xC1, 0x51, 0xCC, 0x50),
648*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x0D, 0x4D, 0x1B, 0x53, 0x23, 0x1D, 0xB3),
649*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x2A, 0x38, 0x66, 0x52, 0x84, 0xE1, 0x95),
650*62c56f98SSadaf Ebrahimi };
651*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_7_Y[] = {
652*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x9B, 0x83, 0x0A, 0x81, 0x4F, 0xAD, 0xAC),
653*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xFF, 0x42, 0x41, 0x6E, 0xA9, 0xA2, 0xA0),
654*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xA1, 0x4F, 0x1F, 0x89, 0x82, 0xAA, 0x3E),
655*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xB8, 0x0F, 0x6B, 0x8F, 0x8C, 0xD6, 0x68),
656*62c56f98SSadaf Ebrahimi };
657*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_8_X[] = {
658*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0xB3, 0xBB, 0x51, 0x69, 0xA2, 0x11, 0x93),
659*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x4F, 0x0F, 0x8D, 0xBD, 0x26, 0x0F, 0xE8),
660*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xCB, 0xEC, 0x6B, 0x34, 0xC3, 0x3D, 0x9D),
661*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x5D, 0x1E, 0x10, 0xD5, 0x44, 0xE2, 0x54),
662*62c56f98SSadaf Ebrahimi };
663*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_8_Y[] = {
664*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x9E, 0xB1, 0xF1, 0x6E, 0x4C, 0xAD, 0xB3),
665*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xE3, 0xC2, 0x58, 0xC0, 0xFB, 0x34, 0x43),
666*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x9C, 0xDF, 0x35, 0x07, 0x41, 0xBD, 0x19),
667*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x6E, 0x10, 0xEC, 0x0E, 0xEC, 0xBB, 0xD6),
668*62c56f98SSadaf Ebrahimi };
669*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_9_X[] = {
670*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xCF, 0xEF, 0x3F, 0x83, 0x1A, 0x88, 0xE8),
671*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x29, 0xB5, 0xB9, 0xE0, 0xC9, 0xA3, 0xAE),
672*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x46, 0x1E, 0x77, 0xCD, 0x7E, 0xB3, 0x10),
673*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x21, 0xD0, 0xD4, 0xA3, 0x16, 0x08, 0xEE),
674*62c56f98SSadaf Ebrahimi };
675*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_9_Y[] = {
676*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0xCA, 0xA8, 0xB3, 0xBF, 0x29, 0x99, 0x8E),
677*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xF2, 0x05, 0xC1, 0xCF, 0x5D, 0x91, 0x48),
678*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x01, 0x49, 0xDB, 0x82, 0xDF, 0x5F, 0x3A),
679*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x06, 0x90, 0xAD, 0xE3, 0x38, 0xA4, 0xC4),
680*62c56f98SSadaf Ebrahimi };
681*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_10_X[] = {
682*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xD2, 0x3A, 0xE8, 0x03, 0xC5, 0x6D, 0x5D),
683*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x35, 0xD0, 0xAE, 0x1D, 0x7A, 0x9F, 0xCA),
684*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x1E, 0xD2, 0xCB, 0xAC, 0x88, 0x27, 0x55),
685*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xB9, 0x9C, 0xE0, 0x31, 0xDD, 0x99, 0x86),
686*62c56f98SSadaf Ebrahimi };
687*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_10_Y[] = {
688*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xF9, 0x9B, 0x32, 0x96, 0x41, 0x58, 0x38),
689*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x5A, 0x2A, 0xB8, 0x96, 0x0E, 0xB2, 0x4C),
690*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x78, 0x2C, 0xC7, 0x08, 0x99, 0x19, 0x24),
691*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x59, 0x28, 0xE9, 0x84, 0x54, 0xE6, 0x16),
692*62c56f98SSadaf Ebrahimi };
693*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_11_X[] = {
694*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x38, 0x30, 0xDB, 0x70, 0x2C, 0x0A, 0xA2),
695*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x5C, 0x9D, 0xE9, 0xD5, 0x46, 0x0B, 0x5F),
696*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x0B, 0x60, 0x4B, 0x37, 0x7D, 0xB9, 0xC9),
697*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x24, 0xF3, 0x3D, 0x79, 0x7F, 0x6C, 0x18),
698*62c56f98SSadaf Ebrahimi };
699*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_11_Y[] = {
700*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7F, 0xE5, 0x1C, 0x4F, 0x60, 0x24, 0xF7, 0x2A),
701*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xD8, 0xE2, 0x91, 0x7F, 0x89, 0x49, 0x92),
702*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xA7, 0x2E, 0x8D, 0x6A, 0xB3, 0x39, 0x81),
703*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x89, 0xB5, 0x9A, 0xB8, 0x8D, 0x42, 0x9C),
704*62c56f98SSadaf Ebrahimi };
705*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_12_X[] = {
706*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0x45, 0xE6, 0x4B, 0x3F, 0x4F, 0x1E, 0x1F),
707*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x65, 0x5E, 0x59, 0x22, 0xCC, 0x72, 0x5F),
708*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x93, 0x1A, 0x27, 0x1E, 0x34, 0xC5, 0x5B),
709*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xF2, 0xA5, 0x58, 0x5C, 0x15, 0x2E, 0xC6),
710*62c56f98SSadaf Ebrahimi };
711*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_12_Y[] = {
712*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x7F, 0xBA, 0x58, 0x5A, 0x84, 0x6F, 0x5F),
713*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xA6, 0x36, 0x7E, 0xDC, 0xF7, 0xE1, 0x67),
714*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x4D, 0xAA, 0xEE, 0x57, 0x76, 0x3A, 0xD3),
715*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x7E, 0x26, 0x18, 0x22, 0x23, 0x9F, 0xFF),
716*62c56f98SSadaf Ebrahimi };
717*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_13_X[] = {
718*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x4C, 0x64, 0xC7, 0x55, 0x02, 0x3F, 0xE3),
719*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x02, 0x90, 0xBB, 0xC3, 0xEC, 0x30, 0x40),
720*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x6F, 0x64, 0xF4, 0x16, 0x69, 0x48, 0xA4),
721*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x44, 0x9C, 0x95, 0x0C, 0x7D, 0x67, 0x5E),
722*62c56f98SSadaf Ebrahimi };
723*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_13_Y[] = {
724*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x91, 0x8B, 0xD8, 0xD0, 0xD7, 0xE7, 0xE2),
725*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xF9, 0x48, 0x62, 0x6F, 0xA8, 0x93, 0x5D),
726*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x3A, 0x99, 0x02, 0xD5, 0x0B, 0x3D, 0xE3),
727*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xD3, 0x00, 0x31, 0xE6, 0x0C, 0x9F, 0x44),
728*62c56f98SSadaf Ebrahimi };
729*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_14_X[] = {
730*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xB2, 0xAA, 0xFD, 0x88, 0x15, 0xDF, 0x52),
731*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0x35, 0x27, 0x31, 0x44, 0xCD, 0xC0, 0x68),
732*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xF8, 0x91, 0xA5, 0x71, 0x94, 0x84, 0x2A),
733*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xCB, 0xD0, 0x93, 0xE9, 0x88, 0xDA, 0xE4),
734*62c56f98SSadaf Ebrahimi };
735*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_14_Y[] = {
736*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xC6, 0x39, 0x16, 0x5D, 0xA3, 0x1E, 0x6D),
737*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x07, 0x37, 0x26, 0x36, 0x2A, 0xFE, 0x60),
738*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xBC, 0xF3, 0xD0, 0xDE, 0x50, 0xFC, 0x97),
739*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x2E, 0x06, 0x10, 0x15, 0x4D, 0xFA, 0xF7),
740*62c56f98SSadaf Ebrahimi };
741*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_15_X[] = {
742*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x65, 0x69, 0x5B, 0x66, 0xA2, 0x75, 0x2E),
743*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x16, 0x00, 0x5A, 0xB0, 0x30, 0x25, 0x1A),
744*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xFB, 0x86, 0x42, 0x80, 0xC1, 0xC4, 0x76),
745*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x1D, 0x83, 0x8E, 0x94, 0x01, 0x5F, 0x82),
746*62c56f98SSadaf Ebrahimi };
747*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256r1_T_15_Y[] = {
748*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x37, 0x70, 0xEF, 0x1F, 0xA1, 0xF0, 0xDB),
749*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x10, 0x5B, 0xCE, 0xC4, 0x9B, 0x6F, 0x10),
750*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x11, 0x11, 0x24, 0x4F, 0x4C, 0x79, 0x61),
751*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x3A, 0x72, 0xBC, 0xFE, 0x72, 0x58, 0x43),
752*62c56f98SSadaf Ebrahimi };
753*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp256r1_T[16] = {
754*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp256r1_T_0_X, secp256r1_T_0_Y),
755*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_1_X, secp256r1_T_1_Y),
756*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_2_X, secp256r1_T_2_Y),
757*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_3_X, secp256r1_T_3_Y),
758*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_4_X, secp256r1_T_4_Y),
759*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_5_X, secp256r1_T_5_Y),
760*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_6_X, secp256r1_T_6_Y),
761*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_7_X, secp256r1_T_7_Y),
762*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_8_X, secp256r1_T_8_Y),
763*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_9_X, secp256r1_T_9_Y),
764*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_10_X, secp256r1_T_10_Y),
765*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_11_X, secp256r1_T_11_Y),
766*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_12_X, secp256r1_T_12_Y),
767*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_13_X, secp256r1_T_13_Y),
768*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_14_X, secp256r1_T_14_Y),
769*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256r1_T_15_X, secp256r1_T_15_Y),
770*62c56f98SSadaf Ebrahimi };
771*62c56f98SSadaf Ebrahimi #else
772*62c56f98SSadaf Ebrahimi #define secp256r1_T NULL
773*62c56f98SSadaf Ebrahimi #endif
774*62c56f98SSadaf Ebrahimi 
775*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
776*62c56f98SSadaf Ebrahimi 
777*62c56f98SSadaf Ebrahimi /*
778*62c56f98SSadaf Ebrahimi  * Domain parameters for secp384r1
779*62c56f98SSadaf Ebrahimi  */
780*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
781*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_p[] = {
782*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
783*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
784*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
785*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
786*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
787*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
788*62c56f98SSadaf Ebrahimi };
789*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_b[] = {
790*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x2A, 0xEC, 0xD3, 0xED, 0xC8, 0x85, 0x2A),
791*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xD1, 0x2E, 0x8A, 0x8D, 0x39, 0x56, 0xC6),
792*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x87, 0x13, 0x50, 0x8F, 0x08, 0x14, 0x03),
793*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x41, 0x81, 0xFE, 0x6E, 0x9C, 0x1D, 0x18),
794*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x2D, 0xF8, 0xE3, 0x6B, 0x05, 0x8E, 0x98),
795*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE7, 0x3E, 0xE2, 0xA7, 0x2F, 0x31, 0xB3),
796*62c56f98SSadaf Ebrahimi };
797*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_gx[] = {
798*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A),
799*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55),
800*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59),
801*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E),
802*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E),
803*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA),
804*62c56f98SSadaf Ebrahimi };
805*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_gy[] = {
806*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A),
807*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A),
808*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9),
809*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8),
810*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D),
811*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36),
812*62c56f98SSadaf Ebrahimi };
813*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_n[] = {
814*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x29, 0xC5, 0xCC, 0x6A, 0x19, 0xEC, 0xEC),
815*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xA7, 0xB0, 0x48, 0xB2, 0x0D, 0x1A, 0x58),
816*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x2D, 0x37, 0xF4, 0x81, 0x4D, 0x63, 0xC7),
817*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
818*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
819*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
820*62c56f98SSadaf Ebrahimi };
821*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
822*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_0_X[] = {
823*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A),
824*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55),
825*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59),
826*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E),
827*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E),
828*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA),
829*62c56f98SSadaf Ebrahimi };
830*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_0_Y[] = {
831*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A),
832*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A),
833*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9),
834*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8),
835*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D),
836*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36),
837*62c56f98SSadaf Ebrahimi };
838*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_1_X[] = {
839*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x92, 0x00, 0x2C, 0x78, 0xDB, 0x1F, 0x37),
840*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xF3, 0xEB, 0xB7, 0x06, 0xF7, 0xB6, 0xBC),
841*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xBC, 0x2C, 0xCF, 0xD8, 0xED, 0x53, 0xE7),
842*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x75, 0x7B, 0xA3, 0xAB, 0xC3, 0x2C, 0x85),
843*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x9D, 0x78, 0x41, 0xF6, 0x76, 0x84, 0xAC),
844*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x56, 0xE8, 0x52, 0xB3, 0xCB, 0xA8, 0xBD),
845*62c56f98SSadaf Ebrahimi };
846*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_1_Y[] = {
847*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xF2, 0xAE, 0xA4, 0xB6, 0x89, 0x1B, 0xDA),
848*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x0F, 0xCE, 0x1C, 0x7C, 0xF6, 0x50, 0x4C),
849*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xEB, 0x90, 0xE6, 0x4D, 0xC7, 0xD4, 0x7A),
850*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x49, 0x2D, 0x8A, 0x01, 0x99, 0x60, 0x94),
851*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x80, 0x9B, 0x9B, 0x6A, 0xB0, 0x07, 0xD9),
852*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xA2, 0xEE, 0x59, 0xBE, 0x95, 0xBC, 0x23),
853*62c56f98SSadaf Ebrahimi };
854*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_2_X[] = {
855*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x9D, 0x56, 0xAE, 0x59, 0xFB, 0x1F, 0x98),
856*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xAC, 0x91, 0x80, 0x87, 0xA8, 0x6E, 0x58),
857*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x08, 0xA7, 0x08, 0x94, 0x32, 0xFC, 0x67),
858*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x29, 0x9E, 0x84, 0xF4, 0xE5, 0x6E, 0x7E),
859*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x21, 0xB9, 0x50, 0x24, 0xF8, 0x9C, 0xC7),
860*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x04, 0x01, 0xC2, 0xFB, 0x77, 0x3E, 0xDE),
861*62c56f98SSadaf Ebrahimi };
862*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_2_Y[] = {
863*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x38, 0xEE, 0xE3, 0xC7, 0x9D, 0xEC, 0xA6),
864*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x88, 0xCF, 0x43, 0xFA, 0x92, 0x5E, 0x8E),
865*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xCA, 0x43, 0xF8, 0x3B, 0x49, 0x7E, 0x75),
866*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xE7, 0xEB, 0x17, 0x45, 0x86, 0xC2, 0xE1),
867*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x69, 0x57, 0x32, 0xE0, 0x9C, 0xD1, 0x00),
868*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x10, 0xB8, 0x4D, 0xB8, 0xF4, 0x0D, 0xE3),
869*62c56f98SSadaf Ebrahimi };
870*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_3_X[] = {
871*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0xDC, 0x9A, 0xB2, 0x79, 0x39, 0x27, 0x16),
872*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x71, 0xE4, 0x3B, 0x4D, 0x60, 0x0C, 0xA3),
873*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xBD, 0x19, 0x40, 0xFA, 0x19, 0x2A, 0x5A),
874*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xF8, 0x1E, 0x43, 0xA1, 0x50, 0x8D, 0xEF),
875*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x18, 0x7C, 0x41, 0xFA, 0x7C, 0x1B, 0x58),
876*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x59, 0x24, 0xC4, 0xE9, 0xB7, 0xD3, 0xAD),
877*62c56f98SSadaf Ebrahimi };
878*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_3_Y[] = {
879*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x01, 0x3D, 0x63, 0x54, 0x45, 0x6F, 0xB7),
880*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xB2, 0x19, 0xA3, 0x86, 0x1D, 0x42, 0x34),
881*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x02, 0x87, 0x18, 0x92, 0x52, 0x1A, 0x71),
882*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x18, 0xB1, 0x5D, 0x18, 0x1B, 0x37, 0xFE),
883*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x74, 0x61, 0xBA, 0x18, 0xAF, 0x40, 0x30),
884*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x7D, 0x3C, 0x52, 0x0F, 0x07, 0xB0, 0x6F),
885*62c56f98SSadaf Ebrahimi };
886*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_4_X[] = {
887*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x39, 0x13, 0xAA, 0x60, 0x15, 0x99, 0x30),
888*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x00, 0xCB, 0xC6, 0xB1, 0xDB, 0x97, 0x90),
889*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xFA, 0x60, 0xB8, 0x24, 0xE4, 0x7D, 0xD3),
890*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x75, 0xB3, 0x70, 0xB2, 0x83, 0xB1, 0x9B),
891*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xE3, 0x6C, 0xCD, 0x33, 0x62, 0x7A, 0x56),
892*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x30, 0xDC, 0x0F, 0x9F, 0xBB, 0xB8, 0xAA),
893*62c56f98SSadaf Ebrahimi };
894*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_4_Y[] = {
895*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xD5, 0x0A, 0x60, 0x81, 0xB9, 0xC5, 0x16),
896*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xAA, 0x2F, 0xD6, 0xF2, 0x73, 0xDF, 0xEB),
897*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x7B, 0x74, 0xC9, 0xB3, 0x5B, 0x95, 0x6D),
898*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x04, 0xEB, 0x15, 0xC8, 0x5F, 0x00, 0xF6),
899*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x50, 0x20, 0x28, 0xD1, 0x01, 0xAF, 0xF0),
900*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x4F, 0x31, 0x81, 0x2F, 0x94, 0x48),
901*62c56f98SSadaf Ebrahimi };
902*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_5_X[] = {
903*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2F, 0xD8, 0xB6, 0x63, 0x7C, 0xE9, 0x50),
904*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x8C, 0xB9, 0x14, 0xD9, 0x37, 0x63, 0xDE),
905*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x02, 0xB8, 0x46, 0xAD, 0xCE, 0x7B, 0x38),
906*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x47, 0x2D, 0x66, 0xA7, 0xE9, 0x33, 0x23),
907*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xF9, 0x93, 0x94, 0xA8, 0x48, 0xB3, 0x4F),
908*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x4A, 0xAC, 0x51, 0x08, 0x72, 0x2F, 0x1A),
909*62c56f98SSadaf Ebrahimi };
910*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_5_Y[] = {
911*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0xAD, 0xA0, 0xF9, 0x81, 0xE1, 0x78, 0x97),
912*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x9A, 0x63, 0xD8, 0xBA, 0x79, 0x1A, 0x17),
913*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x31, 0x7B, 0x7A, 0x5A, 0x5D, 0x7D, 0x2D),
914*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x96, 0x12, 0x4B, 0x19, 0x09, 0xE0, 0xB7),
915*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x8A, 0x57, 0xEE, 0x4E, 0x6E, 0x7E, 0xEC),
916*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x9D, 0x69, 0xDC, 0xB3, 0xDA, 0xD8, 0x08),
917*62c56f98SSadaf Ebrahimi };
918*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_6_X[] = {
919*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x49, 0x03, 0x03, 0x33, 0x6F, 0x28, 0x4A),
920*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xDB, 0xA7, 0x05, 0x8C, 0xF3, 0x4D, 0xFB),
921*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x92, 0xB1, 0xA8, 0xEC, 0x0D, 0x64, 0x3B),
922*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0xFC, 0xFD, 0xD0, 0x4B, 0x88, 0x1B, 0x5D),
923*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x9C, 0x51, 0x69, 0xCE, 0x71, 0x73, 0xF5),
924*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x5A, 0x14, 0x23, 0x1A, 0x46, 0x63, 0x5F),
925*62c56f98SSadaf Ebrahimi };
926*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_6_Y[] = {
927*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x4C, 0x70, 0x44, 0x18, 0xCD, 0xEF, 0xED),
928*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x49, 0xDD, 0x64, 0x7E, 0x7E, 0x4D, 0x92),
929*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x32, 0x7C, 0x09, 0xD0, 0x3F, 0xD6, 0x2C),
930*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE0, 0x4F, 0x65, 0x0C, 0x7A, 0x54, 0x3E),
931*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xFA, 0xFB, 0x4A, 0xB4, 0x79, 0x5A, 0x8C),
932*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x5D, 0x1B, 0x2B, 0xDA, 0xBC, 0x9A, 0x74),
933*62c56f98SSadaf Ebrahimi };
934*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_7_X[] = {
935*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xAC, 0x56, 0xF7, 0x5F, 0x51, 0x68, 0x0B),
936*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xE0, 0x1D, 0xBC, 0x13, 0x4E, 0xAC, 0x03),
937*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xF5, 0xC5, 0xE6, 0xD2, 0x88, 0xBA, 0xCB),
938*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x0E, 0x28, 0x23, 0x58, 0x67, 0xFA, 0xEE),
939*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x80, 0x4B, 0xD8, 0xC4, 0xDF, 0x15, 0xE4),
940*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x0E, 0x58, 0xE6, 0x2C, 0x59, 0xC2, 0x03),
941*62c56f98SSadaf Ebrahimi };
942*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_7_Y[] = {
943*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x26, 0x27, 0x99, 0x16, 0x2B, 0x22, 0x0B),
944*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF3, 0x8F, 0xC3, 0x2A, 0x9B, 0xFC, 0x38),
945*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x2E, 0x83, 0x3D, 0xFE, 0x9E, 0x3C, 0x1B),
946*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x57, 0xCD, 0x2D, 0xC1, 0x49, 0x38, 0xB5),
947*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x42, 0x8B, 0x33, 0x89, 0x1F, 0xEA, 0x01),
948*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x1D, 0x13, 0xD7, 0x50, 0xBB, 0x3E, 0xEB),
949*62c56f98SSadaf Ebrahimi };
950*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_8_X[] = {
951*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x9A, 0x52, 0xD2, 0x54, 0x7C, 0x97, 0xF2),
952*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x6E, 0xED, 0xD9, 0x87, 0x50, 0xC5),
953*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x35, 0x7E, 0x16, 0x40, 0x15, 0x83, 0xB8),
954*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x2B, 0xA4, 0xAB, 0x03, 0x91, 0xEA, 0xFE),
955*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x47, 0x39, 0xEF, 0x05, 0x59, 0xD0, 0x90),
956*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x24, 0x0D, 0x76, 0x11, 0x53, 0x08, 0xAF),
957*62c56f98SSadaf Ebrahimi };
958*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_8_Y[] = {
959*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x2F, 0xDD, 0xBD, 0x50, 0x48, 0xB1, 0xE5),
960*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x1C, 0x84, 0x55, 0x78, 0x14, 0xEB, 0xF6),
961*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x5E, 0x3E, 0xA6, 0xAF, 0xF6, 0xC7, 0x04),
962*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x11, 0xE2, 0x65, 0xCA, 0x41, 0x95, 0x3B),
963*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x83, 0xD8, 0xE6, 0x4D, 0x22, 0x06, 0x2D),
964*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x7F, 0x25, 0x2A, 0xAA, 0x28, 0x46, 0x97),
965*62c56f98SSadaf Ebrahimi };
966*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_9_X[] = {
967*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xDB, 0x15, 0x56, 0x84, 0xCB, 0xC0, 0x56),
968*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xDB, 0x0E, 0x08, 0xC9, 0xF5, 0xD4, 0x9E),
969*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x62, 0xD0, 0x1A, 0x7C, 0x13, 0xD5, 0x07),
970*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xAD, 0x53, 0xE0, 0x32, 0x21, 0xA0, 0xC0),
971*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x38, 0x81, 0x21, 0x23, 0x0E, 0xD2, 0xBB),
972*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x51, 0x05, 0xD0, 0x1E, 0x82, 0xA9, 0x71),
973*62c56f98SSadaf Ebrahimi };
974*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_9_Y[] = {
975*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xC3, 0x27, 0xBF, 0xC6, 0xAA, 0xB7, 0xB9),
976*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x65, 0x45, 0xDF, 0xB9, 0x46, 0x17, 0x46),
977*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x38, 0x3F, 0xB2, 0xB1, 0x5D, 0xCA, 0x1C),
978*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x29, 0x6C, 0x63, 0xE9, 0xD7, 0x48, 0xB8),
979*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xF1, 0xD7, 0x99, 0x8C, 0xC2, 0x05, 0x99),
980*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE6, 0x5E, 0x82, 0x6D, 0xE5, 0x7E, 0xD5),
981*62c56f98SSadaf Ebrahimi };
982*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_10_X[] = {
983*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x61, 0xFA, 0x7D, 0x01, 0xDB, 0xB6, 0x63),
984*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xC6, 0x58, 0x39, 0xF4, 0xC6, 0x82, 0x23),
985*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x5A, 0x7A, 0x80, 0x08, 0xCD, 0xAA, 0xD8),
986*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x8C, 0xC6, 0x3F, 0x3C, 0xA5, 0x68, 0xF4),
987*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xF5, 0xD5, 0x17, 0xAE, 0x36, 0xD8, 0x8A),
988*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xAD, 0x92, 0xC5, 0x57, 0x6C, 0xDA, 0x91),
989*62c56f98SSadaf Ebrahimi };
990*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_10_Y[] = {
991*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x67, 0x17, 0xC0, 0x40, 0x78, 0x8C, 0x84),
992*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x9F, 0xF4, 0xAA, 0xDA, 0x5C, 0x7E, 0xB2),
993*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xDB, 0x42, 0x3E, 0x72, 0x64, 0xA0, 0x67),
994*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xF9, 0x41, 0x17, 0x43, 0xE3, 0xE8, 0xA8),
995*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xDD, 0xCC, 0x43, 0x7E, 0x16, 0x05, 0x03),
996*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x4B, 0xCF, 0x48, 0x8F, 0x41, 0x90, 0xE5),
997*62c56f98SSadaf Ebrahimi };
998*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_11_X[] = {
999*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x0C, 0x6B, 0x9D, 0x22, 0x04, 0xBC, 0x5C),
1000*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x63, 0x79, 0x2F, 0x6A, 0x0E, 0x8A, 0xDE),
1001*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x67, 0x3F, 0x02, 0xB8, 0x91, 0x7F, 0x74),
1002*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x14, 0x64, 0xA0, 0x33, 0xF4, 0x6B, 0x50),
1003*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x44, 0x71, 0x87, 0xB8, 0x88, 0x3F, 0x45),
1004*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x2B, 0x85, 0x05, 0xC5, 0x44, 0x53, 0x15),
1005*62c56f98SSadaf Ebrahimi };
1006*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_11_Y[] = {
1007*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x2B, 0xFE, 0xD1, 0x1C, 0x73, 0xE3, 0x2E),
1008*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x33, 0xA1, 0xD3, 0x69, 0x1C, 0x9D, 0xD2),
1009*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x5A, 0xBA, 0xB6, 0xAE, 0x1B, 0x94, 0x04),
1010*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x74, 0x90, 0x5C, 0x57, 0xB0, 0x3A, 0x45),
1011*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x2F, 0x93, 0x20, 0x24, 0x54, 0x1D, 0x8D),
1012*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x78, 0x9D, 0x71, 0x67, 0x5D, 0x49, 0x98),
1013*62c56f98SSadaf Ebrahimi };
1014*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_12_X[] = {
1015*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xC8, 0x0E, 0x11, 0x8D, 0xE0, 0x8F, 0x69),
1016*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x7F, 0x79, 0x6C, 0x5F, 0xB7, 0xBC, 0xB1),
1017*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xE1, 0x83, 0x3C, 0x12, 0xBB, 0xEE, 0x96),
1018*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xC2, 0xC4, 0x1B, 0x41, 0x71, 0xB9, 0x17),
1019*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0xEE, 0xBB, 0x1D, 0x89, 0x50, 0x88, 0xF2),
1020*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x1C, 0x55, 0x74, 0xEB, 0xDE, 0x92, 0x3F),
1021*62c56f98SSadaf Ebrahimi };
1022*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_12_Y[] = {
1023*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x38, 0x92, 0x06, 0x19, 0xD0, 0xB3, 0xB2),
1024*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x99, 0x26, 0xA3, 0x5F, 0xE2, 0xC1, 0x81),
1025*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xFC, 0xFD, 0xC3, 0xB6, 0x26, 0x24, 0x8F),
1026*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xAD, 0xE7, 0x49, 0xB7, 0x64, 0x4B, 0x96),
1027*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x4E, 0x95, 0xAD, 0x07, 0xFE, 0xB6, 0x30),
1028*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x15, 0xE7, 0x2D, 0x19, 0xA9, 0x08, 0x10),
1029*62c56f98SSadaf Ebrahimi };
1030*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_13_X[] = {
1031*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xBD, 0xAC, 0x0A, 0x3F, 0x6B, 0xFF, 0xFA),
1032*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xE4, 0x74, 0x14, 0xD9, 0x70, 0x1D, 0x71),
1033*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xB0, 0x71, 0xBB, 0xD8, 0x18, 0x96, 0x2B),
1034*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0xB8, 0x19, 0x90, 0x80, 0xB5, 0xEE, 0x01),
1035*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x21, 0x20, 0xA6, 0x17, 0x48, 0x03, 0x6F),
1036*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x1D, 0xBB, 0x6D, 0x94, 0x20, 0x34, 0xF1),
1037*62c56f98SSadaf Ebrahimi };
1038*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_13_Y[] = {
1039*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x82, 0x67, 0x4B, 0x8E, 0x4E, 0xBE, 0xE2),
1040*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xDA, 0x77, 0xF8, 0x23, 0x55, 0x2B, 0x2D),
1041*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x02, 0xDE, 0x25, 0x35, 0x2D, 0x74, 0x51),
1042*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x0C, 0xB8, 0x0B, 0x39, 0xBA, 0xAD, 0x04),
1043*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x0E, 0x28, 0x4D, 0xE1, 0x3D, 0xE4, 0x1B),
1044*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xEC, 0x0A, 0xD4, 0xB8, 0xC4, 0x8D, 0xB0),
1045*62c56f98SSadaf Ebrahimi };
1046*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_14_X[] = {
1047*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x68, 0xCE, 0xC2, 0x55, 0x4D, 0x0C, 0x6D),
1048*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x20, 0x93, 0x32, 0x90, 0xD6, 0xAE, 0x47),
1049*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x78, 0xAB, 0x43, 0x9E, 0xEB, 0x73, 0xAE),
1050*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x97, 0xC3, 0x83, 0xA6, 0x3C, 0xF1, 0xBF),
1051*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x25, 0x25, 0x66, 0x08, 0x26, 0xFA, 0x4B),
1052*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xFB, 0x44, 0x5D, 0x82, 0xEC, 0x3B, 0xAC),
1053*62c56f98SSadaf Ebrahimi };
1054*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_14_Y[] = {
1055*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x90, 0xEA, 0xB5, 0x04, 0x99, 0xD0, 0x69),
1056*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0xF2, 0x22, 0xA0, 0xEB, 0xFD, 0x45, 0x87),
1057*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA4, 0x81, 0x32, 0xFC, 0xFA, 0xEE, 0x5B),
1058*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xBB, 0xA4, 0x6A, 0x77, 0x41, 0x5C, 0x1D),
1059*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x1E, 0xAA, 0x4F, 0xF0, 0x10, 0xB3, 0x50),
1060*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x74, 0x13, 0x14, 0x9E, 0x90, 0xD7, 0xE6),
1061*62c56f98SSadaf Ebrahimi };
1062*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_15_X[] = {
1063*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0xBD, 0x70, 0x4F, 0xA8, 0xD1, 0x06, 0x2C),
1064*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x4E, 0x2E, 0x68, 0xFC, 0x35, 0xFA, 0x50),
1065*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x53, 0x75, 0xED, 0xF2, 0x5F, 0xC2, 0xEB),
1066*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x87, 0x6B, 0x9F, 0x05, 0xE2, 0x22, 0x93),
1067*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x1A, 0xA8, 0xB7, 0x03, 0x9E, 0x6D, 0x7C),
1068*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xD0, 0x69, 0x88, 0xA8, 0x39, 0x9E, 0x3A),
1069*62c56f98SSadaf Ebrahimi };
1070*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_15_Y[] = {
1071*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xEF, 0x68, 0xFE, 0xEC, 0x24, 0x08, 0x15),
1072*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x06, 0x4B, 0x92, 0x0D, 0xB7, 0x34, 0x74),
1073*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF4, 0xDD, 0x1A, 0xA0, 0x4A, 0xE4, 0x45),
1074*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x63, 0x4F, 0x4F, 0xCE, 0xBB, 0xD6, 0xD3),
1075*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xEE, 0x8D, 0xDF, 0x3F, 0x73, 0xB7, 0xAC),
1076*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x06, 0xB6, 0x80, 0x4D, 0x81, 0xD9, 0x53),
1077*62c56f98SSadaf Ebrahimi };
1078*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_16_X[] = {
1079*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF5, 0x13, 0xDF, 0x13, 0x19, 0x97, 0x94),
1080*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xF9, 0xB3, 0x33, 0x66, 0x82, 0x21, 0xFE),
1081*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xFC, 0x39, 0x16, 0x23, 0x43, 0x76, 0x0E),
1082*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x48, 0x25, 0xA1, 0x64, 0x95, 0x1C, 0x2F),
1083*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xAC, 0x15, 0x57, 0xD9, 0xDE, 0xA0, 0x28),
1084*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x5F, 0xB8, 0x3D, 0x48, 0x91, 0x24, 0xCC),
1085*62c56f98SSadaf Ebrahimi };
1086*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_16_Y[] = {
1087*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xF2, 0xC8, 0x54, 0xD1, 0x32, 0xBD, 0xC4),
1088*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x3B, 0xF0, 0xAA, 0x9D, 0xD8, 0xF4, 0x20),
1089*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xC3, 0xBB, 0x6C, 0x66, 0xAC, 0x25, 0x2D),
1090*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x25, 0x10, 0xB2, 0xE1, 0x41, 0xDE, 0x1D),
1091*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xE8, 0x30, 0xB8, 0x37, 0xBC, 0x2A, 0x98),
1092*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x57, 0x01, 0x4A, 0x1E, 0x78, 0x9F, 0x85),
1093*62c56f98SSadaf Ebrahimi };
1094*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_17_X[] = {
1095*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x19, 0xCD, 0x12, 0x0B, 0x51, 0x4F, 0x56),
1096*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x4B, 0x3D, 0x24, 0xA4, 0x16, 0x59, 0x05),
1097*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xEB, 0xD3, 0x59, 0x2E, 0x75, 0x7C, 0x01),
1098*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xB9, 0xB4, 0xA5, 0xD9, 0x2E, 0x29, 0x4C),
1099*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x16, 0x05, 0x75, 0x02, 0xB3, 0x06, 0xEE),
1100*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x7C, 0x9F, 0x79, 0x91, 0xF1, 0x4F, 0x23),
1101*62c56f98SSadaf Ebrahimi };
1102*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_17_Y[] = {
1103*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x98, 0x7C, 0x84, 0xE1, 0xFF, 0x30, 0x77),
1104*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xE2, 0xC2, 0x5F, 0x55, 0x40, 0xBD, 0xCD),
1105*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x65, 0x87, 0x3F, 0xC4, 0xC2, 0x24, 0x57),
1106*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x30, 0x0A, 0x60, 0x15, 0xD1, 0x24, 0x48),
1107*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x99, 0xD9, 0xB6, 0xAE, 0xB1, 0xAF, 0x1D),
1108*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x80, 0xEE, 0xA2, 0x0F, 0x74, 0xB9, 0xF3),
1109*62c56f98SSadaf Ebrahimi };
1110*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_18_X[] = {
1111*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xE6, 0x0F, 0x37, 0xC1, 0x10, 0x99, 0x1E),
1112*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xAD, 0x9D, 0x5D, 0x80, 0x01, 0xA6, 0xFE),
1113*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x0F, 0x10, 0x2A, 0x9D, 0x20, 0x38, 0xEB),
1114*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x60, 0xCB, 0xCE, 0x5A, 0xA0, 0xA7, 0x32),
1115*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xCF, 0x14, 0xDF, 0xBF, 0xE5, 0x74, 0x2D),
1116*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x12, 0x1A, 0xDD, 0x59, 0x02, 0x5D, 0xC6),
1117*62c56f98SSadaf Ebrahimi };
1118*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_18_Y[] = {
1119*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC9, 0xF8, 0xF5, 0xB6, 0x13, 0x4D, 0x7B),
1120*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x45, 0xB1, 0x93, 0xB3, 0xA2, 0x79, 0xDC),
1121*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xF6, 0xCF, 0xF7, 0xE6, 0x29, 0x9C, 0xCC),
1122*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x50, 0x65, 0x80, 0xBC, 0x59, 0x0A, 0x59),
1123*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xF0, 0x24, 0x35, 0xA2, 0x46, 0xF0, 0x0C),
1124*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x26, 0xC0, 0x9D, 0x61, 0x56, 0x62, 0x67),
1125*62c56f98SSadaf Ebrahimi };
1126*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_19_X[] = {
1127*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xBB, 0xC2, 0x24, 0x43, 0x2E, 0x37, 0x54),
1128*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xF7, 0xCE, 0x35, 0xFC, 0x77, 0xF3, 0x3F),
1129*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x34, 0x96, 0xD5, 0x4A, 0x76, 0x9D, 0x6B),
1130*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x3B, 0x0F, 0xEA, 0xA8, 0x12, 0x0B, 0x22),
1131*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x3F, 0x5D, 0x2D, 0x1C, 0xD4, 0x9E, 0xFB),
1132*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x2E, 0xDD, 0xC7, 0x6E, 0xAB, 0xAF, 0xDC),
1133*62c56f98SSadaf Ebrahimi };
1134*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_19_Y[] = {
1135*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xB2, 0x7B, 0x0C, 0x9A, 0x83, 0x8E, 0x59),
1136*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x51, 0x90, 0x92, 0x79, 0x32, 0x19, 0xC3),
1137*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x89, 0xF9, 0xD0, 0xCF, 0x2C, 0xA5, 0x8F),
1138*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x50, 0x21, 0xDE, 0x50, 0x41, 0x9D, 0x81),
1139*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x7D, 0x2B, 0x9E, 0x9D, 0x95, 0xA8, 0xE3),
1140*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA5, 0x20, 0x87, 0x88, 0x97, 0x5F, 0xAA),
1141*62c56f98SSadaf Ebrahimi };
1142*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_20_X[] = {
1143*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x59, 0xB4, 0x66, 0x7E, 0xE8, 0x5A, 0x60),
1144*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x5C, 0x7E, 0xB2, 0xAD, 0xD9, 0xC9, 0xDA),
1145*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x97, 0x49, 0xA3, 0x13, 0x83, 0x07, 0x2E),
1146*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x26, 0xC7, 0x13, 0x35, 0x0D, 0xB0, 0x6B),
1147*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x60, 0xAB, 0xFA, 0x4B, 0x93, 0x18, 0x2C),
1148*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2D, 0x1C, 0x31, 0x4C, 0xE4, 0x61, 0xAE),
1149*62c56f98SSadaf Ebrahimi };
1150*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_20_Y[] = {
1151*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x4D, 0x1E, 0x51, 0x59, 0x6E, 0x91, 0xC5),
1152*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x54, 0x4D, 0x51, 0xED, 0x36, 0xCC, 0x60),
1153*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xA8, 0x56, 0xC7, 0x78, 0x27, 0x33, 0xC5),
1154*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB7, 0x95, 0xC9, 0x8B, 0xC8, 0x6A, 0xBC),
1155*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xE9, 0x13, 0x96, 0xB3, 0xE1, 0xF9, 0xEE),
1156*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x46, 0xB0, 0x5E, 0xC3, 0x94, 0x03, 0x05),
1157*62c56f98SSadaf Ebrahimi };
1158*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_21_X[] = {
1159*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x5B, 0x29, 0x30, 0x41, 0x1A, 0x9E, 0xB6),
1160*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xCA, 0x83, 0x31, 0x5B, 0xA7, 0xCB, 0x42),
1161*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x41, 0x50, 0x44, 0x4D, 0x64, 0x31, 0x89),
1162*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x84, 0xC2, 0x5D, 0x97, 0xA5, 0x3C, 0x18),
1163*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x0F, 0xA5, 0xFD, 0x8E, 0x5A, 0x47, 0x2C),
1164*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x58, 0x02, 0x2D, 0x40, 0xB1, 0x0B, 0xBA),
1165*62c56f98SSadaf Ebrahimi };
1166*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_21_Y[] = {
1167*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x33, 0x8C, 0x67, 0xCE, 0x23, 0x43, 0x99),
1168*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x53, 0x47, 0x72, 0x44, 0x1F, 0x5B, 0x2A),
1169*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xC1, 0xD9, 0xA4, 0x50, 0x88, 0x63, 0x18),
1170*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xF2, 0x75, 0x69, 0x73, 0x00, 0xC4, 0x31),
1171*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x90, 0x1D, 0xDF, 0x1A, 0x00, 0xD8, 0x69),
1172*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xB1, 0x89, 0x48, 0xA8, 0x70, 0x62, 0xEF),
1173*62c56f98SSadaf Ebrahimi };
1174*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_22_X[] = {
1175*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x8A, 0x55, 0x50, 0x7B, 0xEF, 0x8A, 0x3C),
1176*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x1B, 0x23, 0x48, 0x23, 0x63, 0x91, 0xB6),
1177*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x04, 0x54, 0x3C, 0x24, 0x9B, 0xC7, 0x9A),
1178*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x38, 0xC3, 0x84, 0xFB, 0xFF, 0x9F, 0x49),
1179*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x2A, 0xE0, 0x6D, 0x68, 0x8A, 0x5C, 0xCB),
1180*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x93, 0x53, 0x85, 0xA1, 0x0D, 0xAF, 0x63),
1181*62c56f98SSadaf Ebrahimi };
1182*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_22_Y[] = {
1183*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x88, 0x95, 0x4C, 0x0B, 0xD0, 0x06, 0x51),
1184*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xAF, 0x8D, 0x49, 0xA2, 0xC8, 0xB4, 0xE0),
1185*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x76, 0x53, 0x09, 0x88, 0x43, 0x87, 0xCA),
1186*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xA4, 0x77, 0x3F, 0x5E, 0x21, 0xB4, 0x0A),
1187*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x9E, 0x86, 0x64, 0xCC, 0x91, 0xC1, 0x77),
1188*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x17, 0x56, 0xCB, 0xC3, 0x7D, 0x5B, 0xB1),
1189*62c56f98SSadaf Ebrahimi };
1190*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_23_X[] = {
1191*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x74, 0x9F, 0xB5, 0x91, 0x21, 0xB1, 0x1C),
1192*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xED, 0xE1, 0x11, 0xEF, 0x45, 0xAF, 0xC1),
1193*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x31, 0xBE, 0xB2, 0xBC, 0x72, 0x65, 0x1F),
1194*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x4B, 0x8C, 0x77, 0xCE, 0x1E, 0x42, 0xB5),
1195*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xC9, 0xAA, 0xB9, 0xD9, 0x86, 0x99, 0x55),
1196*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x23, 0x80, 0xC6, 0x4E, 0x35, 0x0B, 0x6D),
1197*62c56f98SSadaf Ebrahimi };
1198*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_23_Y[] = {
1199*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xD8, 0xA2, 0x0A, 0x39, 0x32, 0x1D, 0x23),
1200*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xC8, 0x86, 0xF1, 0x12, 0x9A, 0x4A, 0x05),
1201*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xF1, 0x7C, 0xAA, 0x70, 0x8E, 0xBC, 0x01),
1202*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x01, 0x47, 0x8F, 0xDD, 0x8B, 0xA5, 0xC8),
1203*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x08, 0x21, 0xF4, 0xAB, 0xC7, 0xF5, 0x96),
1204*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x76, 0xA5, 0x95, 0xC4, 0x0F, 0x88, 0x1D),
1205*62c56f98SSadaf Ebrahimi };
1206*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_24_X[] = {
1207*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x42, 0x2A, 0x52, 0xCD, 0x75, 0x51, 0x49),
1208*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x36, 0xE5, 0x04, 0x2B, 0x44, 0xC6, 0xEF),
1209*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xEE, 0x16, 0x13, 0x07, 0x83, 0xB5, 0x30),
1210*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x59, 0xC6, 0xA2, 0x19, 0x05, 0xD3, 0xC6),
1211*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x8B, 0xA8, 0x16, 0x09, 0xB7, 0xEA, 0xD6),
1212*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xEE, 0x14, 0xAF, 0xB5, 0xFD, 0xD0, 0xEF),
1213*62c56f98SSadaf Ebrahimi };
1214*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_24_Y[] = {
1215*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x7C, 0xCA, 0x71, 0x3E, 0x6E, 0x66, 0x75),
1216*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x31, 0x0E, 0x3F, 0xE5, 0x91, 0xC4, 0x7F),
1217*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x3D, 0xC2, 0x3E, 0x95, 0x37, 0x58, 0x2B),
1218*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x1F, 0x02, 0x03, 0xF3, 0xEF, 0xEE, 0x66),
1219*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x5B, 0x1A, 0xFC, 0x38, 0xCD, 0xE8, 0x24),
1220*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x57, 0x42, 0x85, 0xC6, 0x21, 0x68, 0x71),
1221*62c56f98SSadaf Ebrahimi };
1222*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_25_X[] = {
1223*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xA2, 0x4A, 0x66, 0xB1, 0x0A, 0xE6, 0xC0),
1224*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x0C, 0x94, 0x9D, 0x5E, 0x99, 0xB2, 0xCE),
1225*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x03, 0x40, 0xCA, 0xB2, 0xB3, 0x30, 0x55),
1226*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x78, 0x48, 0x27, 0x34, 0x1E, 0xE2, 0x42),
1227*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x72, 0x5B, 0xAC, 0xC1, 0x6D, 0xE3, 0x82),
1228*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAB, 0x46, 0xCB, 0xEA, 0x5E, 0x4B, 0x0B),
1229*62c56f98SSadaf Ebrahimi };
1230*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_25_Y[] = {
1231*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x08, 0xAD, 0x4E, 0x51, 0x9F, 0x2A, 0x52),
1232*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5C, 0x7D, 0x4C, 0xD6, 0xCF, 0xDD, 0x02),
1233*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x76, 0x26, 0xE0, 0x8B, 0x10, 0xD9, 0x7C),
1234*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xA7, 0x23, 0x4E, 0x5F, 0xD2, 0x42, 0x17),
1235*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xE5, 0xA4, 0xEC, 0x77, 0x21, 0x34, 0x28),
1236*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x14, 0x65, 0xEA, 0x4A, 0x85, 0xC3, 0x2F),
1237*62c56f98SSadaf Ebrahimi };
1238*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_26_X[] = {
1239*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xD8, 0x40, 0x27, 0x73, 0x15, 0x7E, 0x65),
1240*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xBB, 0x53, 0x7E, 0x0F, 0x40, 0xC8, 0xD4),
1241*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x37, 0x19, 0x73, 0xEF, 0x5A, 0x5E, 0x04),
1242*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x73, 0x2B, 0x49, 0x7E, 0xAC, 0x97, 0x5C),
1243*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xB2, 0xC3, 0x1E, 0x0E, 0xE7, 0xD2, 0x21),
1244*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x08, 0xD6, 0xDD, 0xAC, 0x21, 0xD6, 0x3E),
1245*62c56f98SSadaf Ebrahimi };
1246*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_26_Y[] = {
1247*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x26, 0xBE, 0x6D, 0x6D, 0xF2, 0x38, 0x3F),
1248*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x6C, 0x31, 0xA7, 0x49, 0x50, 0x3A, 0x89),
1249*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x99, 0xC6, 0xF5, 0xD2, 0xC2, 0x30, 0x5A),
1250*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE4, 0xF6, 0x8B, 0x8B, 0x97, 0xE9, 0xB2),
1251*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x21, 0xB7, 0x0D, 0xFC, 0x15, 0x54, 0x0B),
1252*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x83, 0x1C, 0xA4, 0xCD, 0x6B, 0x9D, 0xF2),
1253*62c56f98SSadaf Ebrahimi };
1254*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_27_X[] = {
1255*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE8, 0x4C, 0x48, 0xE4, 0xAA, 0x69, 0x93),
1256*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x7A, 0x27, 0xFC, 0x37, 0x96, 0x1A, 0x7B),
1257*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0xE7, 0x30, 0xA5, 0xCF, 0x13, 0x46, 0x5C),
1258*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xD8, 0xAF, 0x74, 0x23, 0x4D, 0x56, 0x84),
1259*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3D, 0x44, 0x14, 0x1B, 0x97, 0x83, 0xF0),
1260*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x47, 0xD7, 0x5F, 0xFD, 0x98, 0x38, 0xF7),
1261*62c56f98SSadaf Ebrahimi };
1262*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_27_Y[] = {
1263*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x73, 0x64, 0x36, 0xFD, 0x7B, 0xC1, 0x15),
1264*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x5D, 0x32, 0xD2, 0x47, 0x94, 0x89, 0x2D),
1265*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xE9, 0x30, 0xAC, 0x06, 0xC8, 0x65, 0x04),
1266*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x6C, 0xB9, 0x1B, 0xF7, 0x61, 0x49, 0x53),
1267*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xFF, 0x32, 0x43, 0x80, 0xDA, 0xA6, 0xB1),
1268*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF8, 0x04, 0x01, 0x95, 0x35, 0xCE, 0x21),
1269*62c56f98SSadaf Ebrahimi };
1270*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_28_X[] = {
1271*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x06, 0x46, 0x0D, 0x51, 0xE2, 0xD8, 0xAC),
1272*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x57, 0x1D, 0x6F, 0x79, 0xA0, 0xCD, 0xA6),
1273*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0xFB, 0x36, 0xCA, 0xAD, 0xF5, 0x9E, 0x41),
1274*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x7A, 0x1D, 0x9E, 0x1D, 0x95, 0x48, 0xDC),
1275*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x26, 0xA5, 0xB7, 0x15, 0x2C, 0xC2, 0xC6),
1276*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x42, 0x72, 0xAA, 0x11, 0xDC, 0xC9, 0xB6),
1277*62c56f98SSadaf Ebrahimi };
1278*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_28_Y[] = {
1279*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x6C, 0x64, 0xA7, 0x62, 0x3C, 0xAB, 0xD4),
1280*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x6A, 0x44, 0xD8, 0x60, 0xC0, 0xA8, 0x80),
1281*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x76, 0x58, 0x12, 0x57, 0x3C, 0x89, 0x46),
1282*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x4F, 0x83, 0xCE, 0xCB, 0xB8, 0xD0, 0x2C),
1283*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x84, 0x04, 0xB0, 0xAD, 0xEB, 0xFA, 0xDF),
1284*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xA4, 0xC3, 0x41, 0x44, 0x4E, 0x65, 0x3E),
1285*62c56f98SSadaf Ebrahimi };
1286*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_29_X[] = {
1287*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x16, 0xA9, 0x1C, 0xE7, 0x65, 0x20, 0xC1),
1288*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x53, 0x32, 0xF8, 0xC0, 0xA6, 0xBD, 0x2C),
1289*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xF0, 0xE6, 0x57, 0x31, 0xCC, 0x26, 0x6F),
1290*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xE3, 0x54, 0x1C, 0x34, 0xD3, 0x17, 0xBC),
1291*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xAE, 0xED, 0xFB, 0xCD, 0xE7, 0x1E, 0x9F),
1292*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x16, 0x1C, 0x34, 0x40, 0x00, 0x1F, 0xB6),
1293*62c56f98SSadaf Ebrahimi };
1294*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_29_Y[] = {
1295*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x32, 0x00, 0xC2, 0xD4, 0x3B, 0x1A, 0x09),
1296*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xE0, 0x99, 0x8F, 0x0C, 0x4A, 0x16, 0x44),
1297*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x73, 0x18, 0x1B, 0xD4, 0x94, 0x29, 0x62),
1298*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xA4, 0x2D, 0xB1, 0x9D, 0x74, 0x32, 0x67),
1299*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xF4, 0xB1, 0x0C, 0x37, 0x62, 0x8B, 0x66),
1300*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xFF, 0xDA, 0xE2, 0x35, 0xA3, 0xB6, 0x42),
1301*62c56f98SSadaf Ebrahimi };
1302*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_30_X[] = {
1303*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x49, 0x99, 0x65, 0xC5, 0xED, 0x16, 0xEF),
1304*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x42, 0x9A, 0xF3, 0xA7, 0x4E, 0x6F, 0x2B),
1305*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x0A, 0x7E, 0xC0, 0xD7, 0x4E, 0x07, 0x55),
1306*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x7A, 0x31, 0x69, 0xA6, 0xB9, 0x15, 0x34),
1307*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xE0, 0x72, 0xA4, 0x3F, 0xB9, 0xF8, 0x0C),
1308*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x75, 0x32, 0x85, 0xA2, 0xDE, 0x37, 0x12),
1309*62c56f98SSadaf Ebrahimi };
1310*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_30_Y[] = {
1311*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xC0, 0x0D, 0xCF, 0x25, 0x41, 0xA4, 0xF4),
1312*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xFC, 0xB2, 0x48, 0xC3, 0x85, 0x83, 0x4B),
1313*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xBE, 0x0B, 0x58, 0x2D, 0x7A, 0x9A, 0x62),
1314*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xF3, 0x81, 0x18, 0x1B, 0x74, 0x4F, 0x2C),
1315*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x43, 0xA3, 0x0A, 0x16, 0x8B, 0xA3, 0x1E),
1316*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x18, 0x81, 0x7B, 0x8D, 0xA2, 0x35, 0x77),
1317*62c56f98SSadaf Ebrahimi };
1318*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_31_X[] = {
1319*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xC4, 0x3F, 0x2C, 0xE7, 0x5F, 0x99, 0x03),
1320*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x2B, 0xB7, 0xB6, 0xAD, 0x5A, 0x56, 0xFF),
1321*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x00, 0xA4, 0x48, 0xC8, 0xE8, 0xBA, 0xBF),
1322*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xA1, 0xB5, 0x13, 0x5A, 0xCD, 0x99, 0x9C),
1323*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x95, 0xAD, 0xFC, 0xE2, 0x7E, 0xE7, 0xFE),
1324*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x6B, 0xD1, 0x34, 0x99, 0x53, 0x63, 0x0B),
1325*62c56f98SSadaf Ebrahimi };
1326*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp384r1_T_31_Y[] = {
1327*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x8A, 0x77, 0x5D, 0x2B, 0xAB, 0x01, 0x28),
1328*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x85, 0xD0, 0xD5, 0x49, 0x83, 0x4D, 0x60),
1329*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xC6, 0x91, 0x30, 0x3B, 0x00, 0xAF, 0x7A),
1330*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xAE, 0x61, 0x07, 0xE1, 0xB6, 0xE2, 0xC9),
1331*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x43, 0x41, 0xFE, 0x9B, 0xB6, 0xF0, 0xA5),
1332*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x97, 0xAE, 0xAD, 0x89, 0x88, 0x9E, 0x41),
1333*62c56f98SSadaf Ebrahimi };
1334*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp384r1_T[32] = {
1335*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp384r1_T_0_X, secp384r1_T_0_Y),
1336*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_1_X, secp384r1_T_1_Y),
1337*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_2_X, secp384r1_T_2_Y),
1338*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_3_X, secp384r1_T_3_Y),
1339*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_4_X, secp384r1_T_4_Y),
1340*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_5_X, secp384r1_T_5_Y),
1341*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_6_X, secp384r1_T_6_Y),
1342*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_7_X, secp384r1_T_7_Y),
1343*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_8_X, secp384r1_T_8_Y),
1344*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_9_X, secp384r1_T_9_Y),
1345*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_10_X, secp384r1_T_10_Y),
1346*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_11_X, secp384r1_T_11_Y),
1347*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_12_X, secp384r1_T_12_Y),
1348*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_13_X, secp384r1_T_13_Y),
1349*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_14_X, secp384r1_T_14_Y),
1350*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_15_X, secp384r1_T_15_Y),
1351*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_16_X, secp384r1_T_16_Y),
1352*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_17_X, secp384r1_T_17_Y),
1353*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_18_X, secp384r1_T_18_Y),
1354*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_19_X, secp384r1_T_19_Y),
1355*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_20_X, secp384r1_T_20_Y),
1356*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_21_X, secp384r1_T_21_Y),
1357*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_22_X, secp384r1_T_22_Y),
1358*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_23_X, secp384r1_T_23_Y),
1359*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_24_X, secp384r1_T_24_Y),
1360*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_25_X, secp384r1_T_25_Y),
1361*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_26_X, secp384r1_T_26_Y),
1362*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_27_X, secp384r1_T_27_Y),
1363*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_28_X, secp384r1_T_28_Y),
1364*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_29_X, secp384r1_T_29_Y),
1365*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_30_X, secp384r1_T_30_Y),
1366*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp384r1_T_31_X, secp384r1_T_31_Y),
1367*62c56f98SSadaf Ebrahimi };
1368*62c56f98SSadaf Ebrahimi #else
1369*62c56f98SSadaf Ebrahimi #define secp384r1_T NULL
1370*62c56f98SSadaf Ebrahimi #endif
1371*62c56f98SSadaf Ebrahimi 
1372*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
1373*62c56f98SSadaf Ebrahimi 
1374*62c56f98SSadaf Ebrahimi /*
1375*62c56f98SSadaf Ebrahimi  * Domain parameters for secp521r1
1376*62c56f98SSadaf Ebrahimi  */
1377*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
1378*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_p[] = {
1379*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1380*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1381*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1382*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1383*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1384*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1385*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1386*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1387*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0xFF, 0x01),
1388*62c56f98SSadaf Ebrahimi };
1389*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_b[] = {
1390*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x3F, 0x50, 0x6B, 0xD4, 0x1F, 0x45, 0xEF),
1391*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x34, 0x2C, 0x3D, 0x88, 0xDF, 0x73, 0x35),
1392*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xBF, 0xB1, 0x3B, 0xBD, 0xC0, 0x52, 0x16),
1393*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x93, 0x7E, 0xEC, 0x51, 0x39, 0x19, 0x56),
1394*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x09, 0xF1, 0x8E, 0x91, 0x89, 0xB4, 0xB8),
1395*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x15, 0xB3, 0x99, 0x5B, 0x72, 0xDA, 0xA2),
1396*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x40, 0x85, 0xB6, 0xA0, 0x21, 0x9A, 0x92),
1397*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x9A, 0x1C, 0x8E, 0x61, 0xB9, 0x3E, 0x95),
1398*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x51, 0x00),
1399*62c56f98SSadaf Ebrahimi };
1400*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_gx[] = {
1401*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9),
1402*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33),
1403*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE),
1404*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1),
1405*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8),
1406*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C),
1407*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E),
1408*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85),
1409*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0xC6, 0x00),
1410*62c56f98SSadaf Ebrahimi };
1411*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_gy[] = {
1412*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88),
1413*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35),
1414*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5),
1415*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97),
1416*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17),
1417*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98),
1418*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C),
1419*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39),
1420*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x18, 0x01),
1421*62c56f98SSadaf Ebrahimi };
1422*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_n[] = {
1423*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x64, 0x38, 0x91, 0x1E, 0xB7, 0x6F, 0xBB),
1424*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x47, 0x9C, 0x89, 0xB8, 0xC9, 0xB5, 0x3B),
1425*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0xA5, 0x09, 0xF7, 0x48, 0x01, 0xCC, 0x7F),
1426*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x96, 0x2F, 0xBF, 0x83, 0x87, 0x86, 0x51),
1427*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1428*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1429*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1430*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1431*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0xFF, 0x01),
1432*62c56f98SSadaf Ebrahimi };
1433*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
1434*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_0_X[] = {
1435*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9),
1436*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33),
1437*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE),
1438*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1),
1439*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8),
1440*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C),
1441*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E),
1442*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85),
1443*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1444*62c56f98SSadaf Ebrahimi };
1445*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_0_Y[] = {
1446*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88),
1447*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35),
1448*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5),
1449*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97),
1450*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17),
1451*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98),
1452*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C),
1453*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39),
1454*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1455*62c56f98SSadaf Ebrahimi };
1456*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_1_X[] = {
1457*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xB1, 0x2D, 0xEB, 0x27, 0x2F, 0xE8, 0xDA),
1458*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x4B, 0x44, 0x25, 0xDB, 0x5C, 0x5F, 0x67),
1459*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x85, 0x28, 0x78, 0x2E, 0x75, 0x34, 0x32),
1460*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x57, 0x0F, 0x73, 0x78, 0x7A, 0xE3, 0x53),
1461*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD8, 0xEC, 0xDC, 0xDA, 0x04, 0xAD, 0xAB),
1462*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x8A, 0x09, 0xF3, 0x58, 0x79, 0xD8, 0x29),
1463*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x03, 0xCB, 0x50, 0x1A, 0x7F, 0x56, 0x00),
1464*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xA6, 0x78, 0x38, 0x85, 0x67, 0x0B, 0x40),
1465*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1466*62c56f98SSadaf Ebrahimi };
1467*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_1_Y[] = {
1468*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xD5, 0xD2, 0x22, 0xC4, 0x00, 0x3B, 0xBA),
1469*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x93, 0x0E, 0x7B, 0x85, 0x51, 0xC3, 0x06),
1470*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA6, 0x5F, 0x54, 0x49, 0x02, 0x81, 0x78),
1471*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xE9, 0x6B, 0x3A, 0x92, 0xE7, 0x72, 0x1D),
1472*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x5F, 0x28, 0x9E, 0x91, 0x27, 0x88, 0xE3),
1473*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x28, 0x31, 0xB3, 0x84, 0xCA, 0x12, 0x32),
1474*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xF9, 0xAC, 0x22, 0x10, 0x0A, 0x64, 0x41),
1475*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xC6, 0x33, 0x1F, 0x69, 0x19, 0x18, 0xBF),
1476*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1477*62c56f98SSadaf Ebrahimi };
1478*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_2_X[] = {
1479*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x48, 0xB8, 0xC7, 0x37, 0x5A, 0x00, 0x36),
1480*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xCC, 0x32, 0xE0, 0xEE, 0x03, 0xC2, 0xBA),
1481*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x29, 0xC2, 0xE4, 0x6E, 0x24, 0x20, 0x8D),
1482*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x6B, 0x7F, 0x7B, 0xF9, 0xB0, 0xB8, 0x13),
1483*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x7B, 0x3C, 0xE1, 0x19, 0xA1, 0x23, 0x02),
1484*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE3, 0xC2, 0x53, 0xC0, 0x07, 0x13, 0xA9),
1485*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFE, 0x36, 0x35, 0x9F, 0x5E, 0x59, 0xCE),
1486*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x55, 0x89, 0x84, 0xBC, 0xEF, 0xA2, 0xC2),
1487*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1488*62c56f98SSadaf Ebrahimi };
1489*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_2_Y[] = {
1490*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x1A, 0x08, 0x67, 0xB4, 0xE7, 0x22, 0xED),
1491*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x26, 0xDF, 0x81, 0x3C, 0x5F, 0x1C, 0xDA),
1492*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x4D, 0xD0, 0x0A, 0x48, 0x06, 0xF4, 0x48),
1493*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x18, 0x39, 0xF7, 0xD1, 0x20, 0x77, 0x8D),
1494*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x8F, 0x44, 0x13, 0xCB, 0x78, 0x11, 0x11),
1495*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xE2, 0x49, 0xEA, 0x43, 0x79, 0x08, 0x39),
1496*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xD1, 0xD8, 0x73, 0x2C, 0x71, 0x2F, 0x69),
1497*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xE5, 0xE7, 0xF4, 0x46, 0xAB, 0x20, 0xCA),
1498*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1499*62c56f98SSadaf Ebrahimi };
1500*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_3_X[] = {
1501*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x0B, 0xB9, 0x71, 0x1A, 0x27, 0xB7, 0xA7),
1502*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xA2, 0x2C, 0xD1, 0xDA, 0xBC, 0xC1, 0xBD),
1503*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xA3, 0x10, 0x1F, 0x90, 0xF2, 0xA5, 0x52),
1504*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xFB, 0x20, 0xF4, 0xC0, 0x70, 0xC0, 0xF5),
1505*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xA7, 0x99, 0xF0, 0xA5, 0xD3, 0x09, 0xDD),
1506*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0xE8, 0x14, 0x39, 0xBE, 0xCB, 0x60, 0xAF),
1507*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xD6, 0x14, 0xA9, 0xC9, 0x20, 0xC3, 0xEA),
1508*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA8, 0x5B, 0xFD, 0x2D, 0x96, 0xBC, 0x78),
1509*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1510*62c56f98SSadaf Ebrahimi };
1511*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_3_Y[] = {
1512*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x04, 0x45, 0xBE, 0xCE, 0x75, 0x95, 0xF6),
1513*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xDA, 0x58, 0x49, 0x35, 0x09, 0x8D, 0x41),
1514*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xF0, 0xC0, 0x36, 0xF2, 0xA6, 0x2D, 0x14),
1515*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xFC, 0x3D, 0xA8, 0xFB, 0x3C, 0xD2, 0x51),
1516*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x4D, 0x71, 0x09, 0x18, 0x42, 0xF0, 0x2D),
1517*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xC1, 0xCE, 0x9E, 0x6A, 0x49, 0x60, 0x12),
1518*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xB1, 0x00, 0xF7, 0xA1, 0x7A, 0x31, 0xB4),
1519*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC3, 0x86, 0xCD, 0x20, 0x4A, 0x17, 0x86),
1520*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1521*62c56f98SSadaf Ebrahimi };
1522*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_4_X[] = {
1523*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xAB, 0x8B, 0x47, 0x8D, 0xAA, 0xA6, 0x5B),
1524*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x97, 0xF0, 0xBC, 0x2D, 0xDC, 0x9D, 0x84),
1525*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x86, 0xB0, 0x74, 0xB2, 0xF4, 0xF6, 0x67),
1526*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBD, 0xAC, 0xE3, 0x8F, 0x43, 0x5C, 0xB1),
1527*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xC3, 0xE2, 0x6E, 0x25, 0x49, 0xCD, 0x0B),
1528*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x5E, 0x08, 0xB3, 0xB9, 0xAC, 0x5F, 0xD1),
1529*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xB7, 0xD1, 0xF4, 0xDC, 0x19, 0xE9, 0xC8),
1530*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xE4, 0xFA, 0xE1, 0x36, 0x3E, 0xED, 0x6E),
1531*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1532*62c56f98SSadaf Ebrahimi };
1533*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_4_Y[] = {
1534*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x67, 0x92, 0x84, 0x6E, 0x48, 0x03, 0x51),
1535*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x95, 0xEF, 0x8F, 0xB2, 0x82, 0x6B, 0x1C),
1536*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFA, 0xB9, 0x55, 0x23, 0xFE, 0x09, 0xB3),
1537*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x79, 0x85, 0x4B, 0x0E, 0xD4, 0x35, 0xDB),
1538*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x27, 0x45, 0x81, 0xE0, 0x88, 0x52, 0xAD),
1539*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x63, 0xA2, 0x4B, 0xBC, 0x5D, 0xB1, 0x92),
1540*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x8C, 0x83, 0xD9, 0x3E, 0xD3, 0x42, 0xDA),
1541*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x03, 0x3A, 0x31, 0xBA, 0xE9, 0x3A, 0xD1),
1542*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1543*62c56f98SSadaf Ebrahimi };
1544*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_5_X[] = {
1545*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x10, 0xCD, 0x2D, 0x00, 0xFE, 0x32, 0xA7),
1546*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x6E, 0x1F, 0xDA, 0xF8, 0x6F, 0x4D, 0x03),
1547*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x79, 0x7D, 0x09, 0xE5, 0xD3, 0x03, 0x21),
1548*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xC3, 0xBE, 0xDF, 0x07, 0x65, 0x49, 0xCC),
1549*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x57, 0x33, 0xEF, 0xAE, 0x4F, 0x04, 0x27),
1550*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0xE9, 0x9B, 0xFE, 0xBF, 0xE6, 0x85, 0xF6),
1551*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xBA, 0xAA, 0x06, 0xC4, 0xC6, 0xB8, 0x57),
1552*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x83, 0x01, 0xA9, 0xF6, 0x51, 0xE7, 0xB8),
1553*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1554*62c56f98SSadaf Ebrahimi };
1555*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_5_Y[] = {
1556*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xA6, 0x15, 0x8E, 0xAB, 0x1F, 0x10, 0x87),
1557*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x08, 0x27, 0x1A, 0xA1, 0x21, 0xAD, 0xF5),
1558*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x09, 0x90, 0x6E, 0x50, 0x90, 0x9A, 0x5D),
1559*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x9A, 0xFE, 0xD7, 0xA1, 0xF5, 0xA2, 0x15),
1560*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x7D, 0xE3, 0xDC, 0x21, 0xFB, 0xA4, 0x7B),
1561*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xBF, 0x07, 0xFF, 0x45, 0xDF, 0x51, 0x77),
1562*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x5C, 0x34, 0x02, 0x62, 0x9B, 0x08, 0x12),
1563*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xCE, 0x9A, 0x6A, 0xEC, 0x75, 0xF6, 0x46),
1564*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1565*62c56f98SSadaf Ebrahimi };
1566*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_6_X[] = {
1567*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x59, 0xF4, 0x78, 0x3C, 0x60, 0xB1, 0x4A),
1568*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x37, 0x84, 0x6A, 0xDC, 0xF2, 0x9A, 0x7D),
1569*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x9A, 0x9A, 0x15, 0x36, 0xE0, 0x2B, 0x2D),
1570*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x38, 0x9C, 0x50, 0x3D, 0x1E, 0x37, 0x82),
1571*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x79, 0xF0, 0x92, 0xF2, 0x8B, 0x18, 0x82),
1572*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xE0, 0x82, 0x1E, 0x80, 0x82, 0x4B, 0xD7),
1573*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xBB, 0x59, 0x6B, 0x8A, 0x77, 0x41, 0x40),
1574*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xF9, 0xD4, 0xB8, 0x4A, 0x82, 0xCF, 0x40),
1575*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1576*62c56f98SSadaf Ebrahimi };
1577*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_6_Y[] = {
1578*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x8C, 0xC8, 0x9B, 0x72, 0x9E, 0xF7, 0xF9),
1579*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xCE, 0xE9, 0x77, 0x0A, 0x19, 0x59, 0x84),
1580*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xA1, 0x41, 0x6A, 0x72, 0x4B, 0xB4, 0xDC),
1581*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x35, 0x43, 0xE2, 0x8C, 0xBE, 0x0D, 0xE3),
1582*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xEB, 0xAD, 0xF3, 0xA9, 0xA6, 0x68, 0xA1),
1583*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x2F, 0xE2, 0x48, 0x0C, 0xDB, 0x1F, 0x42),
1584*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x1E, 0x60, 0x9B, 0x2A, 0xD2, 0xC1, 0x3C),
1585*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x64, 0xB5, 0xD2, 0xF6, 0xF6, 0x6E, 0x22),
1586*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1587*62c56f98SSadaf Ebrahimi };
1588*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_7_X[] = {
1589*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x3D, 0x30, 0x78, 0x10, 0x18, 0x41, 0x51),
1590*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x1D, 0x1C, 0xE0, 0x6D, 0x83, 0xD1, 0x93),
1591*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x03, 0x0B, 0xF5, 0x2F, 0x6C, 0x04, 0x98),
1592*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x3E, 0xD5, 0xFC, 0x31, 0x5B, 0x3A, 0xEB),
1593*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x82, 0x2F, 0xFB, 0xFE, 0xF8, 0x76, 0x39),
1594*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x26, 0xDA, 0x9C, 0x36, 0xF5, 0x93, 0xD1),
1595*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xE7, 0x6E, 0xD2, 0x7D, 0x81, 0x09, 0xC6),
1596*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x03, 0xF9, 0x58, 0x48, 0x24, 0xA2, 0xEE),
1597*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1598*62c56f98SSadaf Ebrahimi };
1599*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_7_Y[] = {
1600*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x79, 0x0C, 0x8E, 0x6B, 0x95, 0xF3, 0xC4),
1601*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x10, 0x5C, 0x87, 0x03, 0x39, 0xCF, 0x68),
1602*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xF0, 0xF7, 0xC1, 0x07, 0xA4, 0xF4, 0x3F),
1603*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xE8, 0x02, 0x89, 0x65, 0xC4, 0x72, 0x36),
1604*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x88, 0xEA, 0x96, 0x67, 0x0B, 0x5D, 0xDF),
1605*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x75, 0x60, 0xA8, 0xBD, 0x74, 0xDF, 0x68),
1606*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xE5, 0x71, 0x50, 0x67, 0xD0, 0xD2, 0xE6),
1607*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xFC, 0xE5, 0xC7, 0x77, 0xB0, 0x7F, 0x8C),
1608*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1609*62c56f98SSadaf Ebrahimi };
1610*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_8_X[] = {
1611*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x86, 0x69, 0xCD, 0x0D, 0x9A, 0xBD, 0x66),
1612*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x17, 0xBC, 0xBB, 0x59, 0x85, 0x7D, 0x0E),
1613*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xA8, 0x76, 0xAC, 0x80, 0xA9, 0x72, 0xE0),
1614*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x78, 0xC1, 0xE2, 0x4D, 0xAF, 0xF9, 0x3C),
1615*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x97, 0x8E, 0x74, 0xC4, 0x4B, 0xB2, 0x85),
1616*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD8, 0xF6, 0xF3, 0xAF, 0x2F, 0x52, 0xE5),
1617*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x57, 0xF4, 0xCE, 0xEE, 0x43, 0xED, 0x60),
1618*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x46, 0x38, 0xDE, 0x20, 0xFD, 0x59, 0x18),
1619*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1620*62c56f98SSadaf Ebrahimi };
1621*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_8_Y[] = {
1622*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x18, 0xE8, 0x58, 0xB9, 0x76, 0x2C, 0xE6),
1623*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x54, 0xE4, 0xFE, 0xC7, 0xBC, 0x31, 0x37),
1624*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xF8, 0x89, 0xEE, 0x70, 0xB5, 0xB0, 0x2C),
1625*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x22, 0x26, 0x9A, 0x53, 0xB9, 0x38, 0x0A),
1626*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xA7, 0x19, 0x8C, 0x74, 0x7E, 0x88, 0x46),
1627*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xDA, 0x0A, 0xE8, 0xDA, 0xA5, 0xBE, 0x1D),
1628*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x5C, 0xF7, 0xB1, 0x0C, 0x72, 0xFB, 0x09),
1629*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xE2, 0x23, 0xE7, 0x46, 0xB7, 0xE0, 0x91),
1630*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1631*62c56f98SSadaf Ebrahimi };
1632*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_9_X[] = {
1633*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x36, 0xBC, 0xBD, 0x48, 0x11, 0x8E, 0x72),
1634*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xBB, 0xA1, 0xF7, 0x0B, 0x9E, 0xBF, 0xDF),
1635*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x28, 0xE1, 0xA2, 0x8F, 0xFC, 0xFC, 0xD6),
1636*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xFE, 0x19, 0x0A, 0xE5, 0xE7, 0x69, 0x39),
1637*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xCD, 0x12, 0xF5, 0xBE, 0xD3, 0x04, 0xF1),
1638*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xA8, 0x0D, 0x81, 0x59, 0xC4, 0x79, 0x98),
1639*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xF3, 0x4B, 0x92, 0x65, 0xC3, 0x31, 0xAD),
1640*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xB5, 0x4F, 0x4D, 0x91, 0xD4, 0xE2, 0xB2),
1641*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1642*62c56f98SSadaf Ebrahimi };
1643*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_9_Y[] = {
1644*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x09, 0x41, 0x79, 0x1D, 0x4D, 0x0D, 0x33),
1645*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x31, 0x18, 0xBA, 0xA0, 0xF2, 0x6E, 0x7E),
1646*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x5B, 0x4D, 0x4F, 0xAF, 0xC9, 0x8C, 0xA1),
1647*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x99, 0x9C, 0x06, 0x68, 0xDE, 0xD8, 0x29),
1648*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x04, 0xE1, 0xB5, 0x9D, 0x00, 0xBC, 0xB8),
1649*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x95, 0x92, 0x8D, 0x72, 0xD3, 0x37, 0x42),
1650*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x4B, 0x27, 0xA2, 0xE8, 0xA4, 0x26, 0xA1),
1651*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x45, 0x9C, 0xA9, 0xCB, 0x9F, 0xBA, 0x85),
1652*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1653*62c56f98SSadaf Ebrahimi };
1654*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_10_X[] = {
1655*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x7E, 0x1B, 0x64, 0xF4, 0xE8, 0xA5, 0x55),
1656*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x20, 0xA9, 0xCA, 0xF3, 0x89, 0xE5, 0xE1),
1657*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xED, 0xFC, 0xAB, 0xD9, 0x0A, 0xB9, 0x07),
1658*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x6F, 0x46, 0x7C, 0xCD, 0x78, 0xFF, 0x05),
1659*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xAB, 0x71, 0x5A, 0x94, 0xAB, 0x20, 0x20),
1660*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x2E, 0xEE, 0x87, 0x57, 0x1F, 0xAD, 0xD3),
1661*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x4C, 0x3D, 0xFB, 0x7E, 0xA1, 0x8B, 0x07),
1662*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xCF, 0x07, 0x86, 0xBA, 0x53, 0x37, 0xCF),
1663*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1664*62c56f98SSadaf Ebrahimi };
1665*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_10_Y[] = {
1666*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x26, 0xB2, 0xB9, 0xE2, 0x91, 0xE3, 0xB5),
1667*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xC9, 0x54, 0x84, 0x08, 0x3D, 0x0B, 0xD2),
1668*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA8, 0x77, 0x2F, 0x64, 0x45, 0x99, 0x4C),
1669*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x96, 0x16, 0x1F, 0xDB, 0x96, 0x28, 0x97),
1670*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x2B, 0x8D, 0xFF, 0xA2, 0x4F, 0x55, 0xD3),
1671*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xE6, 0x48, 0xBD, 0x99, 0x3D, 0x12, 0x57),
1672*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x84, 0x59, 0xDA, 0xB9, 0xB6, 0x66, 0x12),
1673*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x78, 0x41, 0x92, 0xDF, 0xF4, 0x3F, 0x63),
1674*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1675*62c56f98SSadaf Ebrahimi };
1676*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_11_X[] = {
1677*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x86, 0x6F, 0x4F, 0xBF, 0x67, 0xDF, 0x2F),
1678*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x2B, 0x1E, 0x5F, 0x00, 0xEA, 0xF6, 0x56),
1679*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xB9, 0x6A, 0x89, 0xD8, 0xC0, 0xD7, 0xA7),
1680*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x9A, 0x32, 0x23, 0xA0, 0x02, 0x91, 0x58),
1681*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x7F, 0x6A, 0x15, 0x64, 0x6A, 0x8B, 0xBB),
1682*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x57, 0x82, 0x58, 0xA9, 0x56, 0xB5, 0xFB),
1683*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x50, 0x92, 0x60, 0xCC, 0x81, 0x24, 0xA8),
1684*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x3D, 0xAD, 0xDA, 0xD9, 0x51, 0x3E, 0x57),
1685*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1686*62c56f98SSadaf Ebrahimi };
1687*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_11_Y[] = {
1688*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xFE, 0x8F, 0xB0, 0x0B, 0xDE, 0x2E, 0x7E),
1689*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xD2, 0xBE, 0xEF, 0xAC, 0x76, 0x71, 0xA3),
1690*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xE8, 0x72, 0x0B, 0xAC, 0xFE, 0xCA, 0x5A),
1691*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0xC7, 0xFC, 0xE3, 0x3C, 0x7C, 0x4C),
1692*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x04, 0xA7, 0xB9, 0x9B, 0x93, 0xC0, 0x2F),
1693*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x48, 0x4B, 0x8E, 0x32, 0xC5, 0xF0, 0x6B),
1694*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x42, 0x07, 0xC1, 0xF2, 0xF1, 0x72, 0x5B),
1695*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x37, 0x54, 0x9C, 0x88, 0xD2, 0x62, 0xAA),
1696*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1697*62c56f98SSadaf Ebrahimi };
1698*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_12_X[] = {
1699*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x19, 0x8A, 0x89, 0x58, 0xA2, 0x0F, 0xDB),
1700*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xCC, 0x4C, 0x97, 0x30, 0x66, 0x34, 0x26),
1701*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x6A, 0x1E, 0x1F, 0xDB, 0xC9, 0x5E, 0x13),
1702*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x4D, 0x49, 0xFF, 0x9B, 0x9C, 0xAC, 0x9B),
1703*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xE4, 0x4B, 0xF2, 0xD4, 0x1A, 0xD2, 0x78),
1704*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xDA, 0xE8, 0x61, 0x9F, 0xC8, 0x49, 0x32),
1705*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xCB, 0xF2, 0x2D, 0x85, 0xF6, 0x8D, 0x52),
1706*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xC5, 0xCD, 0x2C, 0x79, 0xC6, 0x0E, 0x4F),
1707*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1708*62c56f98SSadaf Ebrahimi };
1709*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_12_Y[] = {
1710*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x1D, 0x55, 0x0F, 0xF8, 0x22, 0x9F, 0x78),
1711*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x56, 0xBA, 0xE7, 0x57, 0x32, 0xEC, 0x42),
1712*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x9A, 0xC6, 0x4C, 0x09, 0xC4, 0x52, 0x3F),
1713*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x1E, 0x6F, 0xF4, 0x7D, 0x27, 0xDD, 0xAF),
1714*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x11, 0x16, 0xEC, 0x79, 0x83, 0xAD, 0xAE),
1715*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x4E, 0x92, 0x1F, 0x19, 0x7D, 0x65, 0xDC),
1716*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xFF, 0x78, 0x15, 0x45, 0x63, 0x32, 0xE4),
1717*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x91, 0xD0, 0x78, 0x58, 0xDA, 0x50, 0x47),
1718*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1719*62c56f98SSadaf Ebrahimi };
1720*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_13_X[] = {
1721*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0xDE, 0x40, 0xF6, 0x41, 0xB4, 0x3B, 0x95),
1722*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x8D, 0xE0, 0xE1, 0xA9, 0xF0, 0x35, 0x5D),
1723*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xD4, 0xBA, 0x7B, 0xCC, 0x1B, 0x3A, 0x32),
1724*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x5A, 0x2E, 0x74, 0x47, 0x14, 0xC3, 0x4D),
1725*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xF0, 0x8B, 0x06, 0x15, 0x8E, 0x0E, 0xCA),
1726*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0xD2, 0xEB, 0x97, 0x50, 0x7D, 0x31, 0xFC),
1727*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x93, 0x4C, 0xDB, 0x97, 0x79, 0x44, 0xF5),
1728*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xA2, 0xA0, 0x0B, 0xC8, 0x3A, 0x8A, 0xF9),
1729*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1730*62c56f98SSadaf Ebrahimi };
1731*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_13_Y[] = {
1732*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x50, 0x92, 0x9E, 0x24, 0x1F, 0xCB, 0x4C),
1733*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x16, 0xC9, 0xC5, 0x3D, 0x5A, 0xAF, 0x97),
1734*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xE3, 0x97, 0xE4, 0xA8, 0x50, 0xF6, 0x7E),
1735*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x57, 0x97, 0x42, 0x78, 0x92, 0x49, 0x0D),
1736*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xEB, 0x62, 0x24, 0xFB, 0x8F, 0x32, 0xCF),
1737*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x0C, 0x36, 0x6E, 0x8F, 0xE8, 0xE8, 0x8E),
1738*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xD3, 0x7C, 0xC7, 0x8D, 0x3F, 0x5C, 0xE1),
1739*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x64, 0x6A, 0x73, 0x10, 0x79, 0xB8, 0x5A),
1740*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1741*62c56f98SSadaf Ebrahimi };
1742*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_14_X[] = {
1743*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xF9, 0xEF, 0xA5, 0x20, 0x4A, 0x5C, 0xA1),
1744*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xF3, 0xF4, 0x49, 0x5B, 0x73, 0xAA, 0x1B),
1745*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xF2, 0xEA, 0x0F, 0x00, 0xAD, 0x53, 0xAB),
1746*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xB8, 0x66, 0xED, 0xC4, 0x2B, 0x4C, 0x35),
1747*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x2F, 0xC1, 0x9A, 0x37, 0xD2, 0x7F, 0x58),
1748*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xA7, 0x81, 0x38, 0x64, 0xC9, 0x37, 0x38),
1749*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x3B, 0x6C, 0x9F, 0x5B, 0xD9, 0x8B, 0x1D),
1750*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x14, 0xD9, 0x08, 0xD8, 0xD2, 0x7E, 0x23),
1751*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1752*62c56f98SSadaf Ebrahimi };
1753*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_14_Y[] = {
1754*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x71, 0xE6, 0x3D, 0xD1, 0xB0, 0xE7, 0xCD),
1755*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x81, 0x23, 0xEC, 0x2D, 0x42, 0x45, 0xE6),
1756*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x5B, 0x44, 0x6B, 0x89, 0x03, 0x67, 0x28),
1757*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x27, 0xAE, 0x80, 0x5A, 0x33, 0xBE, 0x11),
1758*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xB6, 0x64, 0x1A, 0xDF, 0xD3, 0x85, 0x91),
1759*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x8C, 0x22, 0xBA, 0xD0, 0xBD, 0xCC, 0xA0),
1760*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x3C, 0x01, 0x3A, 0xFF, 0x9D, 0xC7, 0x6B),
1761*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xC7, 0x64, 0xB4, 0x59, 0x4E, 0x9F, 0x22),
1762*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1763*62c56f98SSadaf Ebrahimi };
1764*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_15_X[] = {
1765*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x34, 0x0A, 0x41, 0x94, 0xA8, 0xF2, 0xB7),
1766*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xD4, 0xE4, 0xF0, 0x97, 0x45, 0x6D, 0xCA),
1767*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x1F, 0x4D, 0x6D, 0xFE, 0xA0, 0xC4, 0x84),
1768*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x28, 0x5C, 0x40, 0xBB, 0x65, 0xD4, 0x42),
1769*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xA8, 0x87, 0x35, 0x20, 0x3A, 0x89, 0x44),
1770*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFD, 0x4F, 0xAB, 0x2D, 0xD1, 0xD0, 0xC0),
1771*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xE8, 0x00, 0xFC, 0x69, 0x52, 0xF8, 0xD5),
1772*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x9A, 0x99, 0xE1, 0xDC, 0x9C, 0x3F, 0xD9),
1773*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1774*62c56f98SSadaf Ebrahimi };
1775*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_15_Y[] = {
1776*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x08, 0x98, 0xD9, 0xCA, 0x73, 0xD5, 0xA9),
1777*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x2C, 0xE0, 0xA7, 0x3E, 0x91, 0xD7, 0x87),
1778*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x04, 0xB0, 0x54, 0x09, 0xF4, 0x72, 0xB7),
1779*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xEE, 0x28, 0xCC, 0xE8, 0x50, 0x78, 0x20),
1780*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x91, 0x03, 0x76, 0xDB, 0x68, 0x24, 0x77),
1781*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xE0, 0x56, 0xB2, 0x5D, 0x12, 0xD3, 0xB5),
1782*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x42, 0x59, 0x8B, 0xDF, 0x67, 0xB5, 0xBE),
1783*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xCC, 0xE5, 0x31, 0x53, 0x7A, 0x46, 0xB3),
1784*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1785*62c56f98SSadaf Ebrahimi };
1786*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_16_X[] = {
1787*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x8D, 0x59, 0xB5, 0x1B, 0x0F, 0xF4, 0xAF),
1788*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x2F, 0xD1, 0x2C, 0xE0, 0xD8, 0x04, 0xEF),
1789*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF4, 0xD7, 0xBA, 0xB0, 0xA3, 0x7E, 0xC9),
1790*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x08, 0x51, 0x56, 0xA6, 0x76, 0x67, 0x33),
1791*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x17, 0x63, 0xFE, 0x56, 0xD0, 0xD9, 0x71),
1792*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xF6, 0xC3, 0x14, 0x47, 0xC5, 0xA7, 0x31),
1793*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x4C, 0x80, 0xF6, 0xA2, 0x57, 0xA7, 0x5D),
1794*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xB3, 0x7B, 0xF8, 0x2F, 0xE1, 0x3E, 0x7B),
1795*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1796*62c56f98SSadaf Ebrahimi };
1797*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_16_Y[] = {
1798*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0xF4, 0xF9, 0x6B, 0x7B, 0x90, 0xDF, 0x30),
1799*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x82, 0xEF, 0x62, 0xA1, 0x4C, 0x53, 0xCA),
1800*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x99, 0x76, 0x01, 0xBA, 0x8D, 0x0F, 0x54),
1801*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xF4, 0x58, 0x73, 0x56, 0xFE, 0xDD, 0x7C),
1802*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xCE, 0xF9, 0xE8, 0xA1, 0x34, 0xC3, 0x5B),
1803*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x5F, 0xDC, 0x6A, 0x3D, 0xD8, 0x7F, 0x42),
1804*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xF4, 0x51, 0xB8, 0xB8, 0xC1, 0xD7, 0x2F),
1805*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x7D, 0x58, 0xD1, 0xD4, 0x1B, 0x4D, 0x23),
1806*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1807*62c56f98SSadaf Ebrahimi };
1808*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_17_X[] = {
1809*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x95, 0xDF, 0x00, 0xD8, 0x21, 0xDE, 0x94),
1810*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x47, 0x3C, 0xC3, 0xB2, 0x01, 0x53, 0x5D),
1811*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x17, 0x43, 0x23, 0xBD, 0xCA, 0x71, 0xF2),
1812*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xBA, 0x0F, 0x4F, 0xDC, 0x41, 0x54, 0xBE),
1813*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x39, 0x26, 0x70, 0x53, 0x32, 0x18, 0x11),
1814*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x46, 0x07, 0x97, 0x3A, 0x57, 0xE0, 0x01),
1815*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x92, 0x4F, 0xCE, 0xDF, 0x25, 0x80, 0x26),
1816*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x6F, 0x9A, 0x03, 0x05, 0x4B, 0xD1, 0x47),
1817*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1818*62c56f98SSadaf Ebrahimi };
1819*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_17_Y[] = {
1820*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x01, 0x72, 0x30, 0x90, 0x17, 0x51, 0x20),
1821*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xFB, 0x41, 0x65, 0x5C, 0xB4, 0x2D, 0xEE),
1822*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xCD, 0xCD, 0xAA, 0x41, 0xCC, 0xBB, 0x07),
1823*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xCE, 0x08, 0x0A, 0x63, 0xE9, 0xA2, 0xFF),
1824*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA8, 0x21, 0x7F, 0x7A, 0x5B, 0x9B, 0x81),
1825*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x6B, 0x89, 0x44, 0x0A, 0x7F, 0x85, 0x5F),
1826*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xDE, 0x7C, 0x19, 0x5C, 0x65, 0x26, 0x61),
1827*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xAC, 0x62, 0x29, 0x4A, 0xF1, 0xD0, 0x81),
1828*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1829*62c56f98SSadaf Ebrahimi };
1830*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_18_X[] = {
1831*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x00, 0x40, 0x87, 0xEB, 0xA9, 0x58, 0x56),
1832*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x51, 0x0B, 0xFF, 0x56, 0x35, 0x51, 0xB3),
1833*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xAC, 0x08, 0x94, 0x71, 0xDA, 0xEC, 0x99),
1834*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x4D, 0xC5, 0x7B, 0x31, 0x8B, 0x8D, 0x5E),
1835*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x05, 0xF1, 0x3E, 0x9E, 0x8F, 0x17, 0x8F),
1836*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x9C, 0x4B, 0x62, 0x94, 0xAD, 0x49, 0xFC),
1837*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC9, 0xC6, 0x8F, 0xFD, 0x33, 0x44, 0x34),
1838*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x96, 0x17, 0x7F, 0x42, 0xBE, 0xF7, 0x0D),
1839*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1840*62c56f98SSadaf Ebrahimi };
1841*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_18_Y[] = {
1842*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x29, 0x39, 0x13, 0x08, 0x8D, 0x91, 0x47),
1843*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x79, 0xF9, 0x2F, 0xA9, 0x0A, 0xCF, 0xD6),
1844*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x87, 0x7A, 0xA3, 0x19, 0xAB, 0x55, 0xAD),
1845*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x0B, 0x01, 0xC5, 0x56, 0x19, 0x9D, 0x9E),
1846*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xDE, 0x82, 0x3B, 0xEA, 0xD3, 0x0B, 0x8C),
1847*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x6B, 0xC7, 0xF3, 0x0F, 0x82, 0x87, 0x6C),
1848*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x2E, 0x23, 0xF2, 0x39, 0x9D, 0x49, 0x70),
1849*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0xDE, 0xAF, 0x7A, 0xEE, 0xB0, 0xDA, 0x70),
1850*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1851*62c56f98SSadaf Ebrahimi };
1852*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_19_X[] = {
1853*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x4E, 0x2A, 0x50, 0xFD, 0x8E, 0xC0, 0xEB),
1854*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x0F, 0x7C, 0x76, 0x63, 0xD8, 0x89, 0x45),
1855*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x2D, 0xB9, 0x4E, 0xF4, 0xEE, 0x85, 0xCF),
1856*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x95, 0x5C, 0x96, 0x5D, 0xAA, 0x59, 0x0B),
1857*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xDB, 0xD2, 0x68, 0x8E, 0x5A, 0x94, 0x60),
1858*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x02, 0xBF, 0x77, 0x9F, 0xB9, 0x4C, 0xC9),
1859*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xDC, 0xC0, 0xCF, 0x81, 0x1E, 0xC4, 0x6C),
1860*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xCC, 0x37, 0x86, 0xDC, 0xE2, 0x64, 0x72),
1861*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1862*62c56f98SSadaf Ebrahimi };
1863*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_19_Y[] = {
1864*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x30, 0xB1, 0x59, 0x20, 0x9D, 0x98, 0x28),
1865*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x0C, 0x9D, 0xF8, 0x20, 0xDC, 0x90, 0xBA),
1866*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xA0, 0xF4, 0xE7, 0x3E, 0x9C, 0x9E, 0xA2),
1867*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x25, 0xA2, 0xB0, 0x54, 0xCD, 0x2E, 0x33),
1868*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD9, 0x42, 0xB0, 0x80, 0xB0, 0xA3, 0x38),
1869*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xFE, 0x9D, 0x8D, 0x40, 0xFF, 0x27, 0x6D),
1870*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x9D, 0xA6, 0x88, 0x3A, 0x8B, 0x6F, 0x14),
1871*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x39, 0xEE, 0x1F, 0x3F, 0xB1, 0x4F, 0x63),
1872*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1873*62c56f98SSadaf Ebrahimi };
1874*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_20_X[] = {
1875*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xD7, 0x9E, 0xFF, 0xD2, 0x35, 0x67, 0x03),
1876*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x4F, 0x15, 0x5D, 0xE3, 0xE8, 0x53, 0x86),
1877*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xF7, 0x24, 0x98, 0xA2, 0xCB, 0x11, 0x68),
1878*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x2E, 0x25, 0xE1, 0x94, 0xC5, 0xA3, 0x96),
1879*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x82, 0x6E, 0xBA, 0xE7, 0x43, 0x25, 0xB0),
1880*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x65, 0xB4, 0x49, 0x73, 0x18, 0x35, 0x54),
1881*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x5B, 0xBC, 0x62, 0x86, 0x4C, 0xC1, 0xB7),
1882*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xF2, 0x95, 0xA2, 0xBB, 0xA2, 0x35, 0x65),
1883*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1884*62c56f98SSadaf Ebrahimi };
1885*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_20_Y[] = {
1886*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x59, 0x62, 0xB0, 0x4B, 0x1E, 0xB4, 0xD8),
1887*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x55, 0xCE, 0xB0, 0x69, 0xBA, 0x63, 0x10),
1888*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x69, 0x86, 0xDB, 0x34, 0x7D, 0x68, 0x64),
1889*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x06, 0xCA, 0x55, 0x44, 0x36, 0x2B, 0xBA),
1890*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xD4, 0xC4, 0x3D, 0xCD, 0x9E, 0x69, 0xA4),
1891*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x44, 0xE4, 0xBF, 0x31, 0xE6, 0x40, 0x9F),
1892*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x4F, 0xFA, 0x75, 0xE3, 0xFB, 0x97, 0x0E),
1893*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xC0, 0xBD, 0x1C, 0x48, 0xB0, 0x26, 0xD0),
1894*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1895*62c56f98SSadaf Ebrahimi };
1896*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_21_X[] = {
1897*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x7B, 0x32, 0xFA, 0xF2, 0x6D, 0x84, 0x8E),
1898*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x21, 0x03, 0x1D, 0x0D, 0x22, 0x55, 0x67),
1899*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xF9, 0x42, 0x03, 0x9C, 0xC2, 0xCB, 0xBA),
1900*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xA1, 0x96, 0xD9, 0x9D, 0x11, 0x6F, 0xBE),
1901*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x40, 0x57, 0xEB, 0x40, 0x2D, 0xC0, 0x11),
1902*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x96, 0xBB, 0x4F, 0x2F, 0x23, 0xA8, 0x28),
1903*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x29, 0x85, 0x21, 0xA5, 0x50, 0x62, 0x06),
1904*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x7D, 0x92, 0xCF, 0x87, 0x0C, 0x22, 0xF9),
1905*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1906*62c56f98SSadaf Ebrahimi };
1907*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_21_Y[] = {
1908*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x0E, 0xA5, 0x32, 0x5B, 0xDF, 0x9C, 0xD5),
1909*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x96, 0x37, 0x2C, 0x88, 0x35, 0x30, 0xA1),
1910*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xB4, 0x69, 0xFF, 0xEB, 0xC6, 0x94, 0x08),
1911*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x55, 0x60, 0xAD, 0xAA, 0x58, 0x14, 0x88),
1912*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xFF, 0xF2, 0xB2, 0xD5, 0xA7, 0xD9, 0x27),
1913*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xAE, 0x54, 0xD2, 0x60, 0x31, 0xF3, 0x15),
1914*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x92, 0x83, 0xE3, 0xF1, 0x42, 0x83, 0x6E),
1915*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xD2, 0xC8, 0xB7, 0x76, 0x45, 0x7F, 0x7D),
1916*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1917*62c56f98SSadaf Ebrahimi };
1918*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_22_X[] = {
1919*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x11, 0xA4, 0xFB, 0x7A, 0x01, 0xBC, 0xC8),
1920*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x27, 0x73, 0x8D, 0x02, 0x91, 0x27, 0x8E),
1921*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x62, 0xF6, 0xDD, 0x6B, 0xFA, 0x5B, 0xB9),
1922*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xCA, 0xA2, 0x44, 0x2C, 0xF0, 0x28, 0xD8),
1923*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xF1, 0x7A, 0xA2, 0x42, 0x4C, 0x50, 0xC6),
1924*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x83, 0x3E, 0x50, 0xAB, 0x9C, 0xF7, 0x67),
1925*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xED, 0x78, 0xCB, 0x76, 0x69, 0xDA, 0x42),
1926*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x01, 0x1E, 0x43, 0x27, 0x47, 0x6E, 0xDA),
1927*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1928*62c56f98SSadaf Ebrahimi };
1929*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_22_Y[] = {
1930*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x4F, 0x54, 0xB9, 0x3E, 0xBD, 0xD5, 0x44),
1931*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x35, 0x40, 0x69, 0x7F, 0x74, 0x9D, 0x32),
1932*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x06, 0x6F, 0x67, 0x68, 0x2B, 0x4D, 0x10),
1933*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x65, 0x41, 0xFC, 0x7C, 0x1E, 0xE8, 0xC8),
1934*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x79, 0x37, 0xAF, 0xFD, 0xD2, 0xDA, 0x4C),
1935*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xA8, 0x69, 0x56, 0x62, 0xA4, 0xE4, 0xA3),
1936*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x71, 0x73, 0x21, 0x8A, 0x17, 0x81, 0xA2),
1937*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x55, 0x8F, 0x7B, 0xB8, 0xAF, 0xF7, 0x86),
1938*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1939*62c56f98SSadaf Ebrahimi };
1940*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_23_X[] = {
1941*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xD1, 0xBD, 0xBE, 0x8C, 0xBC, 0x60, 0x6E),
1942*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xA6, 0x57, 0x8C, 0xAE, 0x5C, 0x19, 0xFE),
1943*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x43, 0xE4, 0xD9, 0xD8, 0x7B, 0xE7, 0x41),
1944*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xB9, 0xE4, 0x85, 0x7C, 0x2E, 0xFC, 0x20),
1945*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x2E, 0x01, 0x2A, 0x6D, 0x56, 0xBE, 0x97),
1946*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x0C, 0x25, 0x9B, 0xAE, 0x86, 0x37, 0x43),
1947*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x22, 0xB3, 0xCB, 0x99, 0x66, 0xB7, 0x9E),
1948*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xF7, 0x90, 0xF0, 0x1B, 0x09, 0x27, 0xF7),
1949*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1950*62c56f98SSadaf Ebrahimi };
1951*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_23_Y[] = {
1952*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x16, 0x08, 0xEF, 0x39, 0x64, 0x49, 0x31),
1953*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xA0, 0xE3, 0x97, 0xA9, 0x07, 0x54, 0x26),
1954*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xFF, 0xE2, 0x00, 0x07, 0x21, 0x88, 0x20),
1955*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xFD, 0x59, 0x53, 0x05, 0x6C, 0x42, 0x27),
1956*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xF7, 0x39, 0x5C, 0x82, 0x36, 0xE8, 0x03),
1957*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x83, 0xA8, 0xE2, 0xA8, 0x43, 0x07, 0x38),
1958*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xAF, 0x2B, 0x79, 0xED, 0xD8, 0x39, 0x87),
1959*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x20, 0x91, 0x7A, 0xC4, 0x07, 0xEF, 0x6C),
1960*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1961*62c56f98SSadaf Ebrahimi };
1962*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_24_X[] = {
1963*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x10, 0x2F, 0xAA, 0x0C, 0x94, 0x0E, 0x5A),
1964*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x81, 0x87, 0x41, 0x23, 0xEB, 0x55, 0x7C),
1965*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x53, 0xCC, 0x79, 0xB6, 0xEB, 0x6C, 0xCC),
1966*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x77, 0x73, 0x9D, 0xFC, 0x64, 0x6F, 0x7F),
1967*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x40, 0xE3, 0x6D, 0x1C, 0x16, 0x71, 0x15),
1968*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xF4, 0x1B, 0xFF, 0x1C, 0x2F, 0xA5, 0xD7),
1969*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x0E, 0x0B, 0x11, 0xF4, 0x8D, 0x93, 0xAF),
1970*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xC5, 0x64, 0x6F, 0x24, 0x19, 0xF2, 0x9B),
1971*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1972*62c56f98SSadaf Ebrahimi };
1973*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_24_Y[] = {
1974*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xB3, 0xAF, 0xA5, 0x0E, 0x4F, 0x5E, 0xE1),
1975*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x77, 0xCA, 0xF2, 0x6D, 0xC5, 0xF6, 0x9F),
1976*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x18, 0x8E, 0x33, 0x68, 0x6C, 0xE8, 0xE0),
1977*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x8B, 0x80, 0x90, 0x19, 0x7F, 0x90, 0x96),
1978*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x80, 0x6B, 0x68, 0xE2, 0x7D, 0xD4, 0xD0),
1979*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xC1, 0x67, 0xB3, 0x72, 0xCB, 0xBF, 0x2F),
1980*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xD5, 0xD3, 0x1D, 0x14, 0x58, 0x0A, 0x80),
1981*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x7A, 0x65, 0x98, 0xB3, 0x07, 0x4B, 0x2F),
1982*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1983*62c56f98SSadaf Ebrahimi };
1984*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_25_X[] = {
1985*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x87, 0x0F, 0x5F, 0xCF, 0xA2, 0x01, 0x08),
1986*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xC9, 0xC8, 0x6E, 0x35, 0x87, 0xA5, 0x67),
1987*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x3E, 0x91, 0xA0, 0xAB, 0x24, 0x1E, 0xF2),
1988*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xBC, 0x02, 0x35, 0x70, 0xC1, 0x5F, 0x98),
1989*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x59, 0xA0, 0x50, 0x04, 0x80, 0x52, 0x85),
1990*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x56, 0x6E, 0x42, 0x8F, 0x8C, 0x91, 0x65),
1991*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xA2, 0xCB, 0xA5, 0xDE, 0x14, 0x24, 0x38),
1992*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xCB, 0x74, 0x28, 0xE6, 0xA7, 0xE7, 0xC3),
1993*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1994*62c56f98SSadaf Ebrahimi };
1995*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_25_Y[] = {
1996*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x73, 0xA8, 0x8F, 0x9E, 0x0E, 0x63, 0x96),
1997*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x1B, 0x77, 0xC7, 0xC1, 0x38, 0xF9, 0xDC),
1998*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x3C, 0xCF, 0xA8, 0x7A, 0xD7, 0xF3, 0xC4),
1999*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x5F, 0x9A, 0xC9, 0xAD, 0xE9, 0x1A, 0x93),
2000*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xCF, 0x2B, 0x5E, 0xD5, 0x81, 0x95, 0xA8),
2001*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x88, 0x75, 0x29, 0x1F, 0xC7, 0xC7, 0xD0),
2002*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA9, 0x5A, 0x4D, 0x63, 0x95, 0xF9, 0x4E),
2003*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xCD, 0x04, 0x8F, 0xCD, 0x91, 0xDE, 0xC6),
2004*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2005*62c56f98SSadaf Ebrahimi };
2006*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_26_X[] = {
2007*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xD4, 0xFD, 0x25, 0x11, 0x99, 0x6E, 0xEA),
2008*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x83, 0x01, 0x3D, 0xFB, 0x56, 0xA5, 0x4E),
2009*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x3A, 0xDC, 0x74, 0xC2, 0xD7, 0xCF, 0xE8),
2010*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xBD, 0xF1, 0xDD, 0xA3, 0x07, 0x03, 0xE2),
2011*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xBE, 0xE9, 0x2E, 0x58, 0x84, 0x66, 0xFC),
2012*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x20, 0x78, 0x37, 0x79, 0x0B, 0xA6, 0x64),
2013*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xF2, 0xAC, 0x65, 0xC8, 0xC9, 0x2F, 0x61),
2014*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x93, 0xE5, 0x0D, 0x0C, 0xC6, 0xB8, 0xCB),
2015*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2016*62c56f98SSadaf Ebrahimi };
2017*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_26_Y[] = {
2018*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xAD, 0x5C, 0x19, 0x12, 0x61, 0x0E, 0x25),
2019*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x4F, 0x0B, 0x1F, 0x49, 0x7E, 0xCD, 0x81),
2020*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2E, 0x30, 0x61, 0xDB, 0x08, 0x68, 0x9B),
2021*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x78, 0xAF, 0xB3, 0x08, 0xC1, 0x69, 0xE5),
2022*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x5F, 0x5D, 0xC1, 0x57, 0x6F, 0xD8, 0x34),
2023*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0xD3, 0x6A, 0xF7, 0xFD, 0x86, 0xE5, 0xB3),
2024*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x63, 0xBD, 0x70, 0x7B, 0x47, 0xE8, 0x6D),
2025*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x62, 0xC8, 0x7E, 0x9D, 0x11, 0x2B, 0xA5),
2026*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2027*62c56f98SSadaf Ebrahimi };
2028*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_27_X[] = {
2029*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x84, 0xFD, 0xD5, 0x9A, 0x56, 0x7F, 0x5C),
2030*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xBB, 0xA4, 0x6F, 0x12, 0x6E, 0x4D, 0xF8),
2031*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x08, 0xA1, 0x82, 0x9C, 0x62, 0x74, 0x7B),
2032*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x58, 0x22, 0x05, 0x1D, 0x15, 0x35, 0x79),
2033*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x88, 0xCF, 0x5C, 0x05, 0x78, 0xFB, 0x94),
2034*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x6B, 0x2F, 0x79, 0x09, 0x73, 0x67, 0xEC),
2035*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA0, 0x80, 0xD8, 0xE8, 0xEC, 0xFB, 0x42),
2036*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0B, 0xB7, 0x81, 0x48, 0x7B, 0xD9),
2037*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2038*62c56f98SSadaf Ebrahimi };
2039*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_27_Y[] = {
2040*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x53, 0xA9, 0xED, 0x61, 0x92, 0xD7, 0x85),
2041*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x49, 0xD9, 0x5D, 0x9B, 0x4E, 0x89, 0x35),
2042*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x12, 0xEB, 0x9A, 0xC9, 0xCB, 0xC1, 0x95),
2043*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xDC, 0x95, 0x16, 0xFE, 0x29, 0x70, 0x01),
2044*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x33, 0xB1, 0xD6, 0x78, 0xB9, 0xE2, 0x36),
2045*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xCE, 0x88, 0xC3, 0xFD, 0x7A, 0x6B, 0xB8),
2046*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x1E, 0x50, 0x1E, 0xAF, 0xB1, 0x25, 0x2D),
2047*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xE7, 0xD7, 0xD5, 0xBD, 0x7A, 0x12, 0xF9),
2048*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2049*62c56f98SSadaf Ebrahimi };
2050*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_28_X[] = {
2051*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xAA, 0xA2, 0x80, 0x5D, 0x8F, 0xCD, 0xC8),
2052*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x39, 0x79, 0x64, 0xA1, 0x67, 0x3C, 0xB7),
2053*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xC7, 0x49, 0xFF, 0x7F, 0xAC, 0xAB, 0x55),
2054*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x54, 0x3E, 0x83, 0xF0, 0x3D, 0xBC, 0xB5),
2055*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x92, 0x4A, 0x38, 0x42, 0x8A, 0xAB, 0xF6),
2056*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x0B, 0x4F, 0xEE, 0x9E, 0x92, 0xA5, 0xBE),
2057*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xDD, 0x19, 0x96, 0xF2, 0xF0, 0x6B, 0x2E),
2058*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xFC, 0xDD, 0xB2, 0x8A, 0xE5, 0x4C, 0x22),
2059*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2060*62c56f98SSadaf Ebrahimi };
2061*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_28_Y[] = {
2062*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x06, 0x49, 0xAC, 0x99, 0x7E, 0xF8, 0x12),
2063*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xC8, 0x01, 0x51, 0xEA, 0xF6, 0x52, 0xE7),
2064*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x89, 0x66, 0x2B, 0x1F, 0x9B, 0x2A, 0xA3),
2065*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x0F, 0x95, 0x07, 0x2B, 0x6C, 0x6E, 0x9E),
2066*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xC3, 0xB4, 0xBB, 0x91, 0x1F, 0xA3, 0x72),
2067*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x6E, 0x54, 0x28, 0x7B, 0x9C, 0x79, 0x2E),
2068*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x45, 0xFF, 0xA6, 0xDA, 0xA2, 0x83, 0x71),
2069*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xDE, 0x8F, 0x17, 0x37, 0x82, 0xCB, 0xE2),
2070*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2071*62c56f98SSadaf Ebrahimi };
2072*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_29_X[] = {
2073*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x94, 0x3F, 0x26, 0xC9, 0x1D, 0xD9, 0xAE),
2074*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x28, 0x20, 0xCD, 0xC1, 0xF3, 0x40),
2075*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xC9, 0xB5, 0x60, 0x9B, 0x1E, 0xDC, 0x74),
2076*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xB9, 0x5B, 0x7D, 0xA0, 0xB2, 0x8C, 0xF0),
2077*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xD1, 0x42, 0xE6, 0x39, 0x33, 0x6D, 0xBB),
2078*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xC0, 0xFC, 0xD2, 0x14, 0x5D, 0x3E, 0x3C),
2079*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x4A, 0x3E, 0x40, 0x16, 0x93, 0x15, 0xCF),
2080*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x24, 0xC1, 0x27, 0x27, 0xE5, 0x4B, 0xD8),
2081*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2082*62c56f98SSadaf Ebrahimi };
2083*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_29_Y[] = {
2084*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x50, 0xD8, 0xBC, 0xC1, 0x46, 0x22, 0xBB),
2085*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x0E, 0x60, 0xA1, 0xB3, 0x50, 0xD4, 0x86),
2086*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xB1, 0x26, 0xB6, 0x6D, 0x47, 0x5A, 0x6F),
2087*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0xAC, 0x11, 0x35, 0x3E, 0xB9, 0xF4, 0x01),
2088*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x97, 0xFA, 0xBB, 0x6B, 0x39, 0x13, 0xD8),
2089*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x7B, 0x34, 0x12, 0x75, 0x8E, 0x9B, 0xC6),
2090*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x9E, 0xCD, 0x29, 0xB6, 0xEF, 0x8D, 0x10),
2091*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xAC, 0xE9, 0x25, 0x27, 0xBB, 0x78, 0x47),
2092*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2093*62c56f98SSadaf Ebrahimi };
2094*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_30_X[] = {
2095*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x7A, 0xA8, 0xD3, 0xE3, 0x66, 0xE5, 0x66),
2096*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x4C, 0xC4, 0x2C, 0x76, 0x81, 0x50, 0x32),
2097*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x71, 0x08, 0xB8, 0x52, 0x7C, 0xAF, 0xDC),
2098*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x59, 0x24, 0xDD, 0xFB, 0x2F, 0xD0, 0xDA),
2099*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xCD, 0x56, 0xE9, 0xAC, 0x91, 0xE6, 0xB9),
2100*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x64, 0x20, 0xC6, 0x9F, 0xE4, 0xEF, 0xDF),
2101*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x2C, 0x8F, 0x8C, 0x97, 0xF6, 0x22, 0xC3),
2102*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF4, 0x88, 0xAA, 0xA8, 0xD7, 0xA5, 0x68),
2103*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2104*62c56f98SSadaf Ebrahimi };
2105*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_30_Y[] = {
2106*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x6C, 0xAE, 0x83, 0xB1, 0x55, 0x55, 0xEE),
2107*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x67, 0x84, 0x47, 0x7C, 0x83, 0x5C, 0x89),
2108*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x10, 0x4D, 0xDD, 0x30, 0x60, 0xB0, 0xE6),
2109*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xA7, 0x36, 0x76, 0x24, 0x32, 0x9F, 0x9D),
2110*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x42, 0x81, 0xFB, 0xA4, 0x2E, 0x13, 0x68),
2111*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x94, 0x91, 0xFF, 0x99, 0xA0, 0x09, 0x61),
2112*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x83, 0xA1, 0x76, 0xAF, 0x37, 0x5C, 0x77),
2113*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA8, 0x04, 0x86, 0xC4, 0xA9, 0x79, 0x42),
2114*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2115*62c56f98SSadaf Ebrahimi };
2116*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_31_X[] = {
2117*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x8C, 0xC2, 0x34, 0xFB, 0x83, 0x28, 0x27),
2118*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x03, 0x7D, 0x5E, 0x9E, 0x0E, 0xB0, 0x22),
2119*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x02, 0x46, 0x7F, 0xB9, 0xAC, 0xBB, 0x23),
2120*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xED, 0x48, 0xC2, 0x96, 0x4D, 0x56, 0x27),
2121*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xB5, 0xC5, 0xD1, 0xE6, 0x1C, 0x7E, 0x9B),
2122*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x2E, 0x18, 0x71, 0x2D, 0x7B, 0xD7, 0xB3),
2123*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x46, 0x9D, 0xDE, 0xAA, 0x78, 0x8E, 0xB1),
2124*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xD7, 0x69, 0x2E, 0xE1, 0xD9, 0x48, 0xDE),
2125*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2126*62c56f98SSadaf Ebrahimi };
2127*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp521r1_T_31_Y[] = {
2128*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xFF, 0x9E, 0x09, 0x22, 0x22, 0xE6, 0x8D),
2129*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x14, 0x28, 0x13, 0x1B, 0x62, 0x12, 0x22),
2130*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x7F, 0x67, 0x03, 0xB0, 0xC0, 0xF3, 0x05),
2131*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xC3, 0x0F, 0xFB, 0x25, 0x48, 0x3E, 0xF4),
2132*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x6E, 0x53, 0x98, 0x36, 0xB3, 0xD3, 0x94),
2133*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x81, 0x54, 0x22, 0xA4, 0xCC, 0xC1, 0x22),
2134*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xBA, 0xFC, 0xA9, 0xDF, 0x68, 0x86, 0x2B),
2135*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x92, 0x0E, 0xC3, 0xF2, 0x58, 0xE8, 0x51),
2136*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2137*62c56f98SSadaf Ebrahimi };
2138*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp521r1_T[32] = {
2139*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp521r1_T_0_X, secp521r1_T_0_Y),
2140*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_1_X, secp521r1_T_1_Y),
2141*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_2_X, secp521r1_T_2_Y),
2142*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_3_X, secp521r1_T_3_Y),
2143*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_4_X, secp521r1_T_4_Y),
2144*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_5_X, secp521r1_T_5_Y),
2145*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_6_X, secp521r1_T_6_Y),
2146*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_7_X, secp521r1_T_7_Y),
2147*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_8_X, secp521r1_T_8_Y),
2148*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_9_X, secp521r1_T_9_Y),
2149*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_10_X, secp521r1_T_10_Y),
2150*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_11_X, secp521r1_T_11_Y),
2151*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_12_X, secp521r1_T_12_Y),
2152*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_13_X, secp521r1_T_13_Y),
2153*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_14_X, secp521r1_T_14_Y),
2154*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_15_X, secp521r1_T_15_Y),
2155*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_16_X, secp521r1_T_16_Y),
2156*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_17_X, secp521r1_T_17_Y),
2157*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_18_X, secp521r1_T_18_Y),
2158*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_19_X, secp521r1_T_19_Y),
2159*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_20_X, secp521r1_T_20_Y),
2160*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_21_X, secp521r1_T_21_Y),
2161*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_22_X, secp521r1_T_22_Y),
2162*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_23_X, secp521r1_T_23_Y),
2163*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_24_X, secp521r1_T_24_Y),
2164*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_25_X, secp521r1_T_25_Y),
2165*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_26_X, secp521r1_T_26_Y),
2166*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_27_X, secp521r1_T_27_Y),
2167*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_28_X, secp521r1_T_28_Y),
2168*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_29_X, secp521r1_T_29_Y),
2169*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_30_X, secp521r1_T_30_Y),
2170*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp521r1_T_31_X, secp521r1_T_31_Y),
2171*62c56f98SSadaf Ebrahimi };
2172*62c56f98SSadaf Ebrahimi #else
2173*62c56f98SSadaf Ebrahimi #define secp521r1_T NULL
2174*62c56f98SSadaf Ebrahimi #endif
2175*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
2176*62c56f98SSadaf Ebrahimi 
2177*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
2178*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_p[] = {
2179*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xEE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
2180*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2181*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2182*62c56f98SSadaf Ebrahimi };
2183*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_a[] = {
2184*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
2185*62c56f98SSadaf Ebrahimi };
2186*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_b[] = {
2187*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x03, 0x00),
2188*62c56f98SSadaf Ebrahimi };
2189*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_gx[] = {
2190*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D),
2191*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26),
2192*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB),
2193*62c56f98SSadaf Ebrahimi };
2194*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_gy[] = {
2195*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40),
2196*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84),
2197*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B),
2198*62c56f98SSadaf Ebrahimi };
2199*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_n[] = {
2200*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFD, 0xDE, 0x74, 0x6A, 0x46, 0x69, 0x0F),
2201*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xFC, 0xF2, 0x26, 0xFE, 0xFF, 0xFF, 0xFF),
2202*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2203*62c56f98SSadaf Ebrahimi };
2204*62c56f98SSadaf Ebrahimi 
2205*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2206*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_0_X[] = {
2207*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D),
2208*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26),
2209*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB),
2210*62c56f98SSadaf Ebrahimi };
2211*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_0_Y[] = {
2212*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40),
2213*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84),
2214*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B),
2215*62c56f98SSadaf Ebrahimi };
2216*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_1_X[] = {
2217*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x77, 0x3D, 0x0D, 0x85, 0x48, 0xA8, 0xA9),
2218*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x07, 0xDF, 0x1D, 0xB3, 0xB3, 0x01, 0x54),
2219*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x86, 0xF6, 0xAF, 0x19, 0x2A, 0x88, 0x2E),
2220*62c56f98SSadaf Ebrahimi };
2221*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_1_Y[] = {
2222*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x90, 0xB6, 0x2F, 0x48, 0x36, 0x4C, 0x5B),
2223*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x11, 0x14, 0xA6, 0xCB, 0xBA, 0x15, 0xD9),
2224*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0xB0, 0xF2, 0xD4, 0xC9, 0xDA, 0xBA, 0xD7),
2225*62c56f98SSadaf Ebrahimi };
2226*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_2_X[] = {
2227*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xC1, 0x9C, 0xE6, 0xBB, 0xFB, 0xCF, 0x23),
2228*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x19, 0xAC, 0x5A, 0xC9, 0x8A, 0x1C, 0x75),
2229*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xF6, 0x76, 0x86, 0x89, 0x27, 0x8D, 0x28),
2230*62c56f98SSadaf Ebrahimi };
2231*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_2_Y[] = {
2232*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xE0, 0x6F, 0x34, 0xBA, 0x5E, 0xD3, 0x96),
2233*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xDC, 0xA6, 0x87, 0xC9, 0x9D, 0xC0, 0x82),
2234*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x11, 0x7E, 0xD6, 0xF7, 0x33, 0xFC, 0xE4),
2235*62c56f98SSadaf Ebrahimi };
2236*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_3_X[] = {
2237*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x37, 0x3E, 0xC0, 0x7F, 0x62, 0xE7, 0x54),
2238*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x3B, 0x69, 0x9D, 0x44, 0xBC, 0x82, 0x99),
2239*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x84, 0xB3, 0x5F, 0x2B, 0xA5, 0x9E, 0x2C),
2240*62c56f98SSadaf Ebrahimi };
2241*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_3_Y[] = {
2242*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x95, 0xEB, 0x4C, 0x04, 0xB4, 0xF4, 0x75),
2243*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xAD, 0x4B, 0xD5, 0x9A, 0xEB, 0xC4, 0x4E),
2244*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xB1, 0xC5, 0x59, 0xE3, 0xD5, 0x16, 0x2A),
2245*62c56f98SSadaf Ebrahimi };
2246*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_4_X[] = {
2247*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x2A, 0xCC, 0xAC, 0xD0, 0xEE, 0x50, 0xEC),
2248*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x83, 0xE0, 0x5B, 0x14, 0x44, 0x52, 0x20),
2249*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x15, 0x2D, 0x78, 0xF6, 0x51, 0x32, 0xCF),
2250*62c56f98SSadaf Ebrahimi };
2251*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_4_Y[] = {
2252*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x36, 0x9B, 0xDD, 0xF8, 0xDD, 0xEF, 0xB2),
2253*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xB1, 0x6A, 0x2B, 0xAF, 0xEB, 0x2B, 0xB1),
2254*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x87, 0x7A, 0x66, 0x5D, 0x5B, 0xDF, 0x8F),
2255*62c56f98SSadaf Ebrahimi };
2256*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_5_X[] = {
2257*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x45, 0xE5, 0x81, 0x9B, 0xEB, 0x37, 0x23),
2258*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x29, 0xE2, 0x20, 0x64, 0x23, 0x6B, 0x6E),
2259*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x1D, 0x41, 0xE1, 0x9B, 0x61, 0x7B, 0xD9),
2260*62c56f98SSadaf Ebrahimi };
2261*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_5_Y[] = {
2262*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x57, 0xA3, 0x0A, 0x13, 0xE4, 0x59, 0x15),
2263*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x6E, 0x4A, 0x48, 0x84, 0x90, 0xAC, 0xC7),
2264*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xB8, 0xF5, 0xF3, 0xDE, 0xA0, 0xA1, 0x1D),
2265*62c56f98SSadaf Ebrahimi };
2266*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_6_X[] = {
2267*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x32, 0x81, 0xA9, 0x91, 0x5A, 0x4E, 0x33),
2268*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xA8, 0x90, 0xBE, 0x0F, 0xEC, 0xC0, 0x85),
2269*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x30, 0xD7, 0x08, 0xAE, 0xC4, 0x3A, 0xA5),
2270*62c56f98SSadaf Ebrahimi };
2271*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_6_Y[] = {
2272*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x55, 0xE3, 0x76, 0xB3, 0x64, 0x74, 0x9F),
2273*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x75, 0xD4, 0xDB, 0x98, 0xD7, 0x39, 0xAE),
2274*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xEB, 0x8A, 0xAB, 0x16, 0xD9, 0xD4, 0x0B),
2275*62c56f98SSadaf Ebrahimi };
2276*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_7_X[] = {
2277*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xBE, 0xF9, 0xC7, 0xC7, 0xBA, 0xF3, 0xA1),
2278*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x85, 0x59, 0xF3, 0x60, 0x41, 0x02, 0xD2),
2279*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x1C, 0x4A, 0xA4, 0xC7, 0xED, 0x66, 0xBC),
2280*62c56f98SSadaf Ebrahimi };
2281*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_7_Y[] = {
2282*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x9C, 0x2E, 0x46, 0x52, 0x18, 0x87, 0x14),
2283*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x35, 0x5A, 0x75, 0xAC, 0x4D, 0x75, 0x91),
2284*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x2F, 0xAC, 0xFC, 0xBC, 0xE6, 0x93, 0x5E),
2285*62c56f98SSadaf Ebrahimi };
2286*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_8_X[] = {
2287*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x4D, 0xC9, 0x18, 0xE9, 0x00, 0xEB, 0x33),
2288*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x69, 0x72, 0x07, 0x5A, 0x59, 0xA8, 0x26),
2289*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x65, 0x83, 0x20, 0x10, 0xF9, 0x69, 0x82),
2290*62c56f98SSadaf Ebrahimi };
2291*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_8_Y[] = {
2292*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x56, 0x7F, 0x9F, 0xBF, 0x46, 0x0C, 0x7E),
2293*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xCF, 0xF0, 0xDC, 0xDF, 0x2D, 0xE6, 0xE5),
2294*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xF0, 0x72, 0x3A, 0x7A, 0x03, 0xE5, 0x22),
2295*62c56f98SSadaf Ebrahimi };
2296*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_9_X[] = {
2297*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xAA, 0x57, 0x13, 0x37, 0xA7, 0x2C, 0xD4),
2298*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xAC, 0xA2, 0x23, 0xF9, 0x84, 0x60, 0xD3),
2299*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xEB, 0x51, 0x70, 0x64, 0x78, 0xCA, 0x05),
2300*62c56f98SSadaf Ebrahimi };
2301*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_9_Y[] = {
2302*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xCC, 0x30, 0x62, 0x93, 0x46, 0x13, 0xE9),
2303*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x26, 0xCC, 0x6C, 0x3D, 0x5C, 0xDA, 0x2C),
2304*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xAA, 0xB8, 0x03, 0xA4, 0x1A, 0x00, 0x96),
2305*62c56f98SSadaf Ebrahimi };
2306*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_10_X[] = {
2307*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x9D, 0xE6, 0xCC, 0x4E, 0x2E, 0xC2, 0xD5),
2308*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xC3, 0x8A, 0xAE, 0x6F, 0x40, 0x05, 0xEB),
2309*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x8F, 0x4A, 0x4D, 0x35, 0xD3, 0x50, 0x9D),
2310*62c56f98SSadaf Ebrahimi };
2311*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_10_Y[] = {
2312*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xFD, 0x98, 0xAB, 0xC7, 0x03, 0xB4, 0x55),
2313*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x40, 0xD2, 0x9F, 0xCA, 0xD0, 0x53, 0x00),
2314*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x84, 0x00, 0x6F, 0xC8, 0xAD, 0xED, 0x8D),
2315*62c56f98SSadaf Ebrahimi };
2316*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_11_X[] = {
2317*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xD3, 0x57, 0xD7, 0xC3, 0x07, 0xBD, 0xD7),
2318*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xBA, 0x47, 0x1D, 0x3D, 0xEF, 0x98, 0x6C),
2319*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xC0, 0x6C, 0x7F, 0x12, 0xEE, 0x9F, 0x67),
2320*62c56f98SSadaf Ebrahimi };
2321*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_11_Y[] = {
2322*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x02, 0xDA, 0x79, 0xAA, 0xC9, 0x27, 0xC4),
2323*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x79, 0xC7, 0x71, 0x84, 0xCB, 0xE5, 0x5A),
2324*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x37, 0x06, 0xBA, 0xB5, 0xD5, 0x18, 0x4C),
2325*62c56f98SSadaf Ebrahimi };
2326*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_12_X[] = {
2327*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x65, 0x72, 0x6C, 0xF2, 0x63, 0x27, 0x6A),
2328*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xBC, 0x71, 0xDF, 0x75, 0xF8, 0x98, 0x4D),
2329*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x70, 0x9B, 0xDC, 0xE7, 0x18, 0x71, 0xFF),
2330*62c56f98SSadaf Ebrahimi };
2331*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_12_Y[] = {
2332*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x5B, 0x9F, 0x00, 0x5A, 0xB6, 0x80, 0x7A),
2333*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xE0, 0xBB, 0xFC, 0x5E, 0x78, 0x9C, 0x89),
2334*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x03, 0x68, 0x83, 0x3D, 0x2E, 0x4C, 0xDD),
2335*62c56f98SSadaf Ebrahimi };
2336*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_13_X[] = {
2337*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x49, 0x23, 0xA8, 0xCB, 0x3B, 0x1A, 0xF6),
2338*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x3D, 0xA7, 0x46, 0xCF, 0x75, 0xB6, 0x2C),
2339*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xFD, 0x30, 0x01, 0xB6, 0xEF, 0xF9, 0xE8),
2340*62c56f98SSadaf Ebrahimi };
2341*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_13_Y[] = {
2342*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xFA, 0xDA, 0xB8, 0x29, 0x42, 0xC9, 0xC7),
2343*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xD7, 0xA0, 0xE6, 0x6B, 0x86, 0x61, 0x39),
2344*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0xE9, 0xD3, 0x37, 0xD8, 0xE7, 0x35, 0xA9),
2345*62c56f98SSadaf Ebrahimi };
2346*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_14_X[] = {
2347*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC8, 0x8E, 0xB1, 0xCB, 0xB1, 0xB5, 0x4D),
2348*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xD7, 0x46, 0x7D, 0xAF, 0xE2, 0xDC, 0xBB),
2349*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x46, 0xE7, 0xD8, 0x76, 0x31, 0x90, 0x76),
2350*62c56f98SSadaf Ebrahimi };
2351*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_14_Y[] = {
2352*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xD3, 0xF4, 0x74, 0xE1, 0x67, 0xD8, 0x66),
2353*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x70, 0x3C, 0xC8, 0xAF, 0x5F, 0xF4, 0x58),
2354*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x4E, 0xED, 0x5C, 0x43, 0xB3, 0x16, 0x35),
2355*62c56f98SSadaf Ebrahimi };
2356*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_15_X[] = {
2357*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAE, 0xD1, 0xDD, 0x31, 0x14, 0xD3, 0xF0),
2358*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x14, 0x06, 0x13, 0x12, 0x1C, 0x81, 0xF5),
2359*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xF9, 0x0C, 0x91, 0xF7, 0x67, 0x59, 0x63),
2360*62c56f98SSadaf Ebrahimi };
2361*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp192k1_T_15_Y[] = {
2362*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x91, 0xE2, 0xF4, 0x9D, 0xEB, 0x88, 0x87),
2363*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x82, 0x30, 0x9C, 0xAE, 0x18, 0x4D, 0xB7),
2364*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x79, 0xCF, 0x17, 0xA5, 0x1E, 0xE8, 0xC8),
2365*62c56f98SSadaf Ebrahimi };
2366*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp192k1_T[16] = {
2367*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp192k1_T_0_X, secp192k1_T_0_Y),
2368*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_1_X, secp192k1_T_1_Y),
2369*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_2_X, secp192k1_T_2_Y),
2370*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_3_X, secp192k1_T_3_Y),
2371*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_4_X, secp192k1_T_4_Y),
2372*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_5_X, secp192k1_T_5_Y),
2373*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_6_X, secp192k1_T_6_Y),
2374*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_7_X, secp192k1_T_7_Y),
2375*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_8_X, secp192k1_T_8_Y),
2376*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_9_X, secp192k1_T_9_Y),
2377*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_10_X, secp192k1_T_10_Y),
2378*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_11_X, secp192k1_T_11_Y),
2379*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_12_X, secp192k1_T_12_Y),
2380*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_13_X, secp192k1_T_13_Y),
2381*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_14_X, secp192k1_T_14_Y),
2382*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp192k1_T_15_X, secp192k1_T_15_Y),
2383*62c56f98SSadaf Ebrahimi };
2384*62c56f98SSadaf Ebrahimi #else
2385*62c56f98SSadaf Ebrahimi #define secp192k1_T NULL
2386*62c56f98SSadaf Ebrahimi #endif
2387*62c56f98SSadaf Ebrahimi 
2388*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
2389*62c56f98SSadaf Ebrahimi 
2390*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
2391*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_p[] = {
2392*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE5, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
2393*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2394*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2395*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
2396*62c56f98SSadaf Ebrahimi };
2397*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_a[] = {
2398*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
2399*62c56f98SSadaf Ebrahimi };
2400*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_b[] = {
2401*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x05, 0x00),
2402*62c56f98SSadaf Ebrahimi };
2403*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_gx[] = {
2404*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
2405*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
2406*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
2407*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0x33, 0x5B, 0x45, 0xA1),
2408*62c56f98SSadaf Ebrahimi };
2409*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_gy[] = {
2410*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
2411*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
2412*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
2413*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_4(0xED, 0x9F, 0x08, 0x7E),
2414*62c56f98SSadaf Ebrahimi };
2415*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_n[] = {
2416*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xB1, 0x9F, 0x76, 0x71, 0xA9, 0xF0, 0xCA),
2417*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x61, 0xEC, 0xD2, 0xE8, 0xDC, 0x01, 0x00),
2418*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2419*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00),
2420*62c56f98SSadaf Ebrahimi };
2421*62c56f98SSadaf Ebrahimi 
2422*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2423*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_0_X[] = {
2424*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
2425*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
2426*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
2427*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x5B, 0x45, 0xA1, 0x00, 0x00, 0x00, 0x00),
2428*62c56f98SSadaf Ebrahimi };
2429*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_0_Y[] = {
2430*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
2431*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
2432*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
2433*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x9F, 0x08, 0x7E, 0x00, 0x00, 0x00, 0x00),
2434*62c56f98SSadaf Ebrahimi };
2435*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_1_X[] = {
2436*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x6C, 0x22, 0x22, 0x40, 0x89, 0xAE, 0x7A),
2437*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x92, 0xE1, 0x87, 0x56, 0x35, 0xAF, 0x9B),
2438*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xAF, 0x08, 0x35, 0x27, 0xEA, 0x04, 0xED),
2439*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x53, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00),
2440*62c56f98SSadaf Ebrahimi };
2441*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_1_Y[] = {
2442*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xD0, 0x9F, 0x8D, 0xF3, 0x63, 0x54, 0x30),
2443*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xDB, 0x0F, 0x61, 0x54, 0x26, 0xD1, 0x98),
2444*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x21, 0xF7, 0x1B, 0xB5, 0x1D, 0xF6, 0x7E),
2445*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x05, 0xDA, 0x8F, 0x00, 0x00, 0x00, 0x00),
2446*62c56f98SSadaf Ebrahimi };
2447*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_2_X[] = {
2448*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x26, 0x73, 0xBC, 0xE4, 0x29, 0x62, 0x56),
2449*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x95, 0x17, 0x8B, 0xC3, 0x9B, 0xAC, 0xCC),
2450*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xDB, 0x77, 0xDF, 0xDD, 0x13, 0x04, 0x98),
2451*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xFC, 0x22, 0x93, 0x00, 0x00, 0x00, 0x00),
2452*62c56f98SSadaf Ebrahimi };
2453*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_2_Y[] = {
2454*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0xF1, 0x5A, 0x37, 0xEF, 0x79, 0xAD),
2455*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x37, 0xAC, 0x9A, 0x5B, 0x51, 0x65),
2456*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x75, 0x13, 0xA9, 0x4A, 0xAD, 0xFE, 0x9B),
2457*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x82, 0x6F, 0x66, 0x00, 0x00, 0x00, 0x00),
2458*62c56f98SSadaf Ebrahimi };
2459*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_3_X[] = {
2460*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x5E, 0xF0, 0x40, 0xC3, 0xA6, 0xE2, 0x1E),
2461*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x9A, 0x6F, 0xCF, 0x11, 0x26, 0x66, 0x85),
2462*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x73, 0xA8, 0xCF, 0x2B, 0x12, 0x36, 0x37),
2463*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xB3, 0x0A, 0x58, 0x00, 0x00, 0x00, 0x00),
2464*62c56f98SSadaf Ebrahimi };
2465*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_3_Y[] = {
2466*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x79, 0x00, 0x55, 0x04, 0x34, 0x90, 0x1A),
2467*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x54, 0x1C, 0xC2, 0x45, 0x0C, 0x1B, 0x23),
2468*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x19, 0xAB, 0xA8, 0xFC, 0x73, 0xDC, 0xEE),
2469*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xFB, 0x93, 0xCE, 0x00, 0x00, 0x00, 0x00),
2470*62c56f98SSadaf Ebrahimi };
2471*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_4_X[] = {
2472*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x75, 0xD0, 0x66, 0x95, 0x86, 0xCA, 0x66),
2473*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xEA, 0x29, 0x16, 0x6A, 0x38, 0xDF, 0x41),
2474*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA2, 0x36, 0x2F, 0xDC, 0xBB, 0x5E, 0xF7),
2475*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x89, 0x59, 0x49, 0x00, 0x00, 0x00, 0x00),
2476*62c56f98SSadaf Ebrahimi };
2477*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_4_Y[] = {
2478*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xA3, 0x99, 0x9D, 0xB8, 0x77, 0x9D, 0x1D),
2479*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x93, 0x43, 0x47, 0xC6, 0x5C, 0xF9, 0xFD),
2480*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x00, 0x79, 0x42, 0x64, 0xB8, 0x25, 0x3E),
2481*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x54, 0xB4, 0x33, 0x00, 0x00, 0x00, 0x00),
2482*62c56f98SSadaf Ebrahimi };
2483*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_5_X[] = {
2484*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x0C, 0x42, 0x90, 0x83, 0x0B, 0x31, 0x5F),
2485*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2E, 0xAE, 0xC8, 0xC7, 0x5F, 0xD2, 0x70),
2486*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xBC, 0xAD, 0x41, 0xE7, 0x32, 0x3A, 0x81),
2487*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x97, 0x52, 0x83, 0x00, 0x00, 0x00, 0x00),
2488*62c56f98SSadaf Ebrahimi };
2489*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_5_Y[] = {
2490*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x13, 0x7A, 0xBD, 0xAE, 0x94, 0x60, 0xFD),
2491*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x9B, 0x95, 0xB4, 0x6E, 0x68, 0xB2, 0x1F),
2492*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x49, 0xBE, 0x51, 0xFE, 0x66, 0x15, 0x74),
2493*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x37, 0xE4, 0xFE, 0x00, 0x00, 0x00, 0x00),
2494*62c56f98SSadaf Ebrahimi };
2495*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_6_X[] = {
2496*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x9B, 0xEE, 0x64, 0xC9, 0x1B, 0xBD, 0x77),
2497*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x5F, 0x34, 0xA9, 0x0B, 0xB7, 0x25, 0x52),
2498*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x13, 0xB1, 0x38, 0xFB, 0x9D, 0x78, 0xED),
2499*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xE7, 0x1B, 0xFA, 0x00, 0x00, 0x00, 0x00),
2500*62c56f98SSadaf Ebrahimi };
2501*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_6_Y[] = {
2502*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xB3, 0xB7, 0x44, 0x92, 0x6B, 0x00, 0x82),
2503*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x82, 0x44, 0x3E, 0x18, 0x1A, 0x58, 0x6A),
2504*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF8, 0xC0, 0xE4, 0xEE, 0xC1, 0xBF, 0x44),
2505*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x32, 0x27, 0xB2, 0x00, 0x00, 0x00, 0x00),
2506*62c56f98SSadaf Ebrahimi };
2507*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_7_X[] = {
2508*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x9A, 0x42, 0x62, 0x8B, 0x26, 0x54, 0x21),
2509*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x85, 0x74, 0xA0, 0x79, 0xA8, 0xEE, 0xBE),
2510*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0x60, 0xB3, 0x28, 0x4D, 0x55, 0xBE),
2511*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x27, 0x82, 0x29, 0x00, 0x00, 0x00, 0x00),
2512*62c56f98SSadaf Ebrahimi };
2513*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_7_Y[] = {
2514*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xFC, 0x73, 0x77, 0xAF, 0x5C, 0xAC, 0x78),
2515*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xED, 0xE5, 0xF6, 0x1D, 0xA8, 0x67, 0x43),
2516*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xDE, 0x33, 0x1C, 0xF1, 0x80, 0x73, 0xF8),
2517*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE2, 0xDE, 0x3C, 0x00, 0x00, 0x00, 0x00),
2518*62c56f98SSadaf Ebrahimi };
2519*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_8_X[] = {
2520*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x3E, 0x6B, 0xFE, 0xF0, 0x04, 0x28, 0x01),
2521*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xB2, 0x14, 0x9D, 0x18, 0x11, 0x7D, 0x9D),
2522*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC4, 0xD6, 0x2E, 0x6E, 0x57, 0x4D, 0xE1),
2523*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x55, 0x1B, 0xDE, 0x00, 0x00, 0x00, 0x00),
2524*62c56f98SSadaf Ebrahimi };
2525*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_8_Y[] = {
2526*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xF7, 0x17, 0xBC, 0x45, 0xAB, 0x16, 0xAB),
2527*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xB0, 0xEF, 0x61, 0xE3, 0x20, 0x7C, 0xF8),
2528*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x85, 0x41, 0x4D, 0xF1, 0x7E, 0x4D, 0x41),
2529*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC2, 0x9B, 0x5E, 0x00, 0x00, 0x00, 0x00),
2530*62c56f98SSadaf Ebrahimi };
2531*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_9_X[] = {
2532*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x2E, 0x49, 0x3D, 0x3E, 0x4B, 0xD3, 0x32),
2533*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x2B, 0x9D, 0xD5, 0x27, 0xFA, 0xCA, 0xE0),
2534*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xB3, 0x6A, 0xE0, 0x79, 0x14, 0x28, 0x0F),
2535*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x1E, 0xDC, 0xF5, 0x00, 0x00, 0x00, 0x00),
2536*62c56f98SSadaf Ebrahimi };
2537*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_9_Y[] = {
2538*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x44, 0x56, 0xCD, 0xFC, 0x9F, 0x09, 0xFF),
2539*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x8C, 0x59, 0xA4, 0x64, 0x2A, 0x3A, 0xED),
2540*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xA0, 0xB5, 0x86, 0x4E, 0x69, 0xDA, 0x06),
2541*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x8B, 0x11, 0x38, 0x00, 0x00, 0x00, 0x00),
2542*62c56f98SSadaf Ebrahimi };
2543*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_10_X[] = {
2544*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x17, 0x16, 0x12, 0x17, 0xDC, 0x00, 0x7E),
2545*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x76, 0x24, 0x6C, 0x97, 0x2C, 0xB5, 0xF9),
2546*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x71, 0xE3, 0xB0, 0xBB, 0x4E, 0x50, 0x52),
2547*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x48, 0x26, 0xD5, 0x00, 0x00, 0x00, 0x00),
2548*62c56f98SSadaf Ebrahimi };
2549*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_10_Y[] = {
2550*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x5F, 0x28, 0xF6, 0x01, 0x5A, 0x60, 0x41),
2551*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x95, 0xFE, 0xD0, 0xAD, 0x15, 0xD4, 0xD9),
2552*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0x7A, 0xFD, 0x80, 0xF7, 0x9F, 0x64),
2553*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xBC, 0x1B, 0xDF, 0x00, 0x00, 0x00, 0x00),
2554*62c56f98SSadaf Ebrahimi };
2555*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_11_X[] = {
2556*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xE6, 0xDF, 0x14, 0x29, 0xF4, 0xD4, 0x14),
2557*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x12, 0xDD, 0xEC, 0x5B, 0x8A, 0x59, 0xE5),
2558*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x92, 0x3E, 0x35, 0x08, 0xE9, 0xCF, 0x0E),
2559*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x35, 0x29, 0x97, 0x00, 0x00, 0x00, 0x00),
2560*62c56f98SSadaf Ebrahimi };
2561*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_11_Y[] = {
2562*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xDB, 0xD6, 0x6A, 0xC5, 0x43, 0xA4, 0xA1),
2563*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x33, 0x50, 0x61, 0x70, 0xA1, 0xE9, 0xCE),
2564*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x15, 0x6E, 0x5F, 0x01, 0x0C, 0x8C, 0xFA),
2565*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xA1, 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00),
2566*62c56f98SSadaf Ebrahimi };
2567*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_12_X[] = {
2568*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xC6, 0xF7, 0xE2, 0x4A, 0xCD, 0x9B, 0x61),
2569*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x4D, 0x5A, 0xB8, 0xE2, 0x6D, 0xA6, 0x50),
2570*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3F, 0xB6, 0x17, 0xE3, 0x2C, 0x6F, 0x65),
2571*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA4, 0x59, 0x51, 0x00, 0x00, 0x00, 0x00),
2572*62c56f98SSadaf Ebrahimi };
2573*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_12_Y[] = {
2574*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x4F, 0x7C, 0x49, 0xCD, 0x6E, 0xEB, 0x3C),
2575*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xC9, 0x1F, 0xB7, 0x4D, 0x98, 0xC7, 0x67),
2576*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xFD, 0x98, 0x20, 0x95, 0xBB, 0x20, 0x3A),
2577*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF2, 0x73, 0x92, 0x00, 0x00, 0x00, 0x00),
2578*62c56f98SSadaf Ebrahimi };
2579*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_13_X[] = {
2580*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xEF, 0xFB, 0x30, 0xFA, 0x12, 0x1A, 0xB0),
2581*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x4C, 0x24, 0xB4, 0x5B, 0xC9, 0x4C, 0x0F),
2582*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xDD, 0x5E, 0x84, 0x95, 0x4D, 0x26, 0xED),
2583*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xFA, 0xF9, 0x3A, 0x00, 0x00, 0x00, 0x00),
2584*62c56f98SSadaf Ebrahimi };
2585*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_13_Y[] = {
2586*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xA3, 0x2E, 0x7A, 0xDC, 0xA7, 0x53, 0xA9),
2587*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x9F, 0x81, 0x84, 0xB2, 0x0D, 0xFE, 0x31),
2588*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x89, 0x1B, 0x77, 0x0C, 0x89, 0x71, 0xEC),
2589*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0x7F, 0xB2, 0x00, 0x00, 0x00, 0x00),
2590*62c56f98SSadaf Ebrahimi };
2591*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_14_X[] = {
2592*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xE9, 0x2C, 0x79, 0xA6, 0x3C, 0xAD, 0x93),
2593*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE0, 0x23, 0x02, 0x86, 0x0F, 0x77, 0x2A),
2594*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x93, 0x6D, 0xE9, 0xF9, 0x3C, 0xBE, 0xB9),
2595*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xE7, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00),
2596*62c56f98SSadaf Ebrahimi };
2597*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_14_Y[] = {
2598*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x3C, 0x5B, 0x4B, 0x1B, 0x25, 0x37, 0xD6),
2599*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xE8, 0x38, 0x1B, 0xA1, 0x5A, 0x2E, 0x68),
2600*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x19, 0xFD, 0xF4, 0x78, 0x01, 0x6B, 0x44),
2601*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x69, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00),
2602*62c56f98SSadaf Ebrahimi };
2603*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_15_X[] = {
2604*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xE2, 0xBF, 0xD3, 0xEC, 0x95, 0x9C, 0x03),
2605*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x7B, 0xFC, 0xD5, 0xD3, 0x25, 0x5E, 0x0F),
2606*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x55, 0x09, 0xA2, 0x58, 0x6A, 0xC9, 0xFF),
2607*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xCC, 0x3B, 0xD9, 0x00, 0x00, 0x00, 0x00),
2608*62c56f98SSadaf Ebrahimi };
2609*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp224k1_T_15_Y[] = {
2610*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x08, 0x65, 0x5E, 0xCB, 0xAB, 0x48, 0xC8),
2611*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x79, 0x8B, 0xC0, 0x11, 0xC0, 0x69, 0x38),
2612*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xE8, 0x8C, 0x4C, 0xC5, 0x28, 0xE4, 0xAE),
2613*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x1F, 0x34, 0x5C, 0x00, 0x00, 0x00, 0x00),
2614*62c56f98SSadaf Ebrahimi };
2615*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp224k1_T[16] = {
2616*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp224k1_T_0_X, secp224k1_T_0_Y),
2617*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_1_X, secp224k1_T_1_Y),
2618*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_2_X, secp224k1_T_2_Y),
2619*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_3_X, secp224k1_T_3_Y),
2620*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_4_X, secp224k1_T_4_Y),
2621*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_5_X, secp224k1_T_5_Y),
2622*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_6_X, secp224k1_T_6_Y),
2623*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_7_X, secp224k1_T_7_Y),
2624*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_8_X, secp224k1_T_8_Y),
2625*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_9_X, secp224k1_T_9_Y),
2626*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_10_X, secp224k1_T_10_Y),
2627*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_11_X, secp224k1_T_11_Y),
2628*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_12_X, secp224k1_T_12_Y),
2629*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_13_X, secp224k1_T_13_Y),
2630*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_14_X, secp224k1_T_14_Y),
2631*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp224k1_T_15_X, secp224k1_T_15_Y),
2632*62c56f98SSadaf Ebrahimi };
2633*62c56f98SSadaf Ebrahimi #else
2634*62c56f98SSadaf Ebrahimi #define secp224k1_T NULL
2635*62c56f98SSadaf Ebrahimi #endif
2636*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
2637*62c56f98SSadaf Ebrahimi 
2638*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
2639*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_p[] = {
2640*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
2641*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2642*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2643*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2644*62c56f98SSadaf Ebrahimi };
2645*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_a[] = {
2646*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
2647*62c56f98SSadaf Ebrahimi };
2648*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_b[] = {
2649*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_2(0x07, 0x00),
2650*62c56f98SSadaf Ebrahimi };
2651*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_gx[] = {
2652*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59),
2653*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02),
2654*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55),
2655*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79),
2656*62c56f98SSadaf Ebrahimi };
2657*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_gy[] = {
2658*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C),
2659*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD),
2660*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D),
2661*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48),
2662*62c56f98SSadaf Ebrahimi };
2663*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_n[] = {
2664*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x41, 0x36, 0xD0, 0x8C, 0x5E, 0xD2, 0xBF),
2665*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0xA0, 0x48, 0xAF, 0xE6, 0xDC, 0xAE, 0xBA),
2666*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2667*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2668*62c56f98SSadaf Ebrahimi };
2669*62c56f98SSadaf Ebrahimi 
2670*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2671*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_0_X[] = {
2672*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59),
2673*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02),
2674*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55),
2675*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79),
2676*62c56f98SSadaf Ebrahimi };
2677*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_0_Y[] = {
2678*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C),
2679*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD),
2680*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D),
2681*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48),
2682*62c56f98SSadaf Ebrahimi };
2683*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_1_X[] = {
2684*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xEE, 0xD7, 0x1E, 0x67, 0x86, 0x32, 0x74),
2685*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x73, 0xB1, 0xA9, 0xD5, 0xCC, 0x27, 0x78),
2686*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x0E, 0x11, 0x01, 0x71, 0xFE, 0x92, 0x73),
2687*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x28, 0x63, 0x6D, 0x72, 0x09, 0xA6, 0xC0),
2688*62c56f98SSadaf Ebrahimi };
2689*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_1_Y[] = {
2690*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE1, 0x69, 0xDC, 0x3E, 0x2C, 0x75, 0xC3),
2691*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xB7, 0x3F, 0x30, 0x26, 0x3C, 0xDF, 0x8E),
2692*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xBE, 0xB9, 0x5D, 0x0E, 0xE8, 0x5E, 0x14),
2693*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xC3, 0x05, 0xD6, 0xB7, 0xD5, 0x24, 0xFC),
2694*62c56f98SSadaf Ebrahimi };
2695*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_2_X[] = {
2696*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCF, 0x7B, 0xDC, 0xCD, 0xC3, 0x39, 0x9D),
2697*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xDA, 0xB9, 0xE5, 0x64, 0xA7, 0x47, 0x91),
2698*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x46, 0xA8, 0x61, 0xF6, 0x23, 0xEB, 0x58),
2699*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xC1, 0xFF, 0xE4, 0x55, 0xD5, 0xC2, 0xBF),
2700*62c56f98SSadaf Ebrahimi };
2701*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_2_Y[] = {
2702*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xBE, 0xB9, 0x59, 0x24, 0x13, 0x4A, 0x2A),
2703*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x45, 0x12, 0xDE, 0xBA, 0x4F, 0xEF, 0x56),
2704*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x08, 0xBF, 0xC1, 0x66, 0xAA, 0x0A, 0xBC),
2705*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xFE, 0x30, 0x55, 0x31, 0x86, 0xA7, 0xB4),
2706*62c56f98SSadaf Ebrahimi };
2707*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_3_X[] = {
2708*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xBF, 0x18, 0x81, 0x67, 0x27, 0x42, 0xBD),
2709*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x05, 0x83, 0xA4, 0xDD, 0x57, 0xD3, 0x50),
2710*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x63, 0xAB, 0xE4, 0x90, 0x70, 0xD0, 0x7C),
2711*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x5D, 0xFD, 0xA0, 0xEF, 0xCF, 0x1C, 0x54),
2712*62c56f98SSadaf Ebrahimi };
2713*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_3_Y[] = {
2714*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x80, 0xE4, 0xF6, 0x09, 0xBC, 0x57, 0x90),
2715*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x9F, 0x6E, 0x88, 0x54, 0x6E, 0x51, 0xF2),
2716*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x5F, 0x85, 0xFB, 0x84, 0x3E, 0x4A, 0xAA),
2717*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x19, 0xF5, 0x55, 0xC9, 0x07, 0xD8, 0xCE),
2718*62c56f98SSadaf Ebrahimi };
2719*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_4_X[] = {
2720*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xB4, 0xC3, 0xD9, 0x5C, 0xA0, 0xD4, 0x90),
2721*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x30, 0xAF, 0x59, 0x9B, 0xF8, 0x04, 0x85),
2722*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xA6, 0xFD, 0x66, 0x7B, 0xC3, 0x39, 0x85),
2723*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xBF, 0xF0, 0xC2, 0xE9, 0x71, 0xA4, 0x9E),
2724*62c56f98SSadaf Ebrahimi };
2725*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_4_Y[] = {
2726*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x2D, 0xB9, 0x88, 0x28, 0xF1, 0xBE, 0x78),
2727*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF3, 0x1A, 0x0E, 0xB9, 0x01, 0x66, 0x34),
2728*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xA7, 0xA4, 0xF4, 0x05, 0xD0, 0xAA, 0x53),
2729*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x39, 0x1E, 0x47, 0xE5, 0x68, 0xC8, 0xC0),
2730*62c56f98SSadaf Ebrahimi };
2731*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_5_X[] = {
2732*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xB9, 0xFC, 0xE0, 0x33, 0x8A, 0x7D, 0x96),
2733*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x93, 0xA5, 0x53, 0x55, 0x16, 0xB4, 0x6E),
2734*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x5F, 0xEA, 0x9B, 0x29, 0x52, 0x71, 0xDA),
2735*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xF0, 0x24, 0xB8, 0x7D, 0xB7, 0xA0, 0x9B),
2736*62c56f98SSadaf Ebrahimi };
2737*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_5_Y[] = {
2738*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x00, 0x27, 0xB2, 0xDF, 0x73, 0xA2, 0xE0),
2739*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x2E, 0x4D, 0x7C, 0xDE, 0x7A, 0x23, 0x32),
2740*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0x60, 0xC7, 0x97, 0x1E, 0xA4, 0x22),
2741*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x13, 0x5B, 0x77, 0x59, 0xCB, 0x36, 0xE1),
2742*62c56f98SSadaf Ebrahimi };
2743*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_6_X[] = {
2744*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xBC, 0x9F, 0x9E, 0x2D, 0x53, 0x2A, 0xA8),
2745*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x5F, 0x64, 0x9F, 0x1A, 0x19, 0xE6, 0x77),
2746*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x7B, 0x39, 0xD2, 0xDB, 0x85, 0x84, 0xD5),
2747*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xC7, 0x0D, 0x58, 0x6E, 0x3F, 0x52, 0x15),
2748*62c56f98SSadaf Ebrahimi };
2749*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_6_Y[] = {
2750*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x68, 0x19, 0x0B, 0x68, 0xC9, 0x1E, 0xFB),
2751*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x4E, 0x21, 0x49, 0x3D, 0x55, 0xCC, 0x25),
2752*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xF9, 0x25, 0x45, 0x54, 0x45, 0xB1, 0x0F),
2753*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xB3, 0xF7, 0xCD, 0x80, 0xA4, 0x04, 0x05),
2754*62c56f98SSadaf Ebrahimi };
2755*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_7_X[] = {
2756*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x1E, 0x88, 0xC4, 0xAA, 0x18, 0x7E, 0x45),
2757*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xAC, 0xD9, 0xB2, 0xA1, 0xC0, 0x71, 0x5D),
2758*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xA2, 0xF1, 0x15, 0xA6, 0x5F, 0x6C, 0x86),
2759*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x5B, 0x05, 0xBC, 0xB7, 0xC6, 0x4E, 0x72),
2760*62c56f98SSadaf Ebrahimi };
2761*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_7_Y[] = {
2762*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x80, 0xF8, 0x5C, 0x20, 0x2A, 0xE1, 0xE2),
2763*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x48, 0x2E, 0x68, 0x82, 0x7F, 0xEB, 0x5F),
2764*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x3B, 0x25, 0xDB, 0x32, 0x4D, 0x88, 0x42),
2765*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x6E, 0xA6, 0xB6, 0x6D, 0x62, 0x78, 0x22),
2766*62c56f98SSadaf Ebrahimi };
2767*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_8_X[] = {
2768*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x4D, 0x3E, 0x86, 0x58, 0xC3, 0xEB, 0xBA),
2769*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x89, 0x33, 0x18, 0x21, 0x1D, 0x9B, 0xE7),
2770*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x9D, 0xFF, 0xC3, 0x79, 0xC1, 0x88, 0xF8),
2771*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xD4, 0x48, 0x53, 0xE8, 0xAD, 0x21, 0x16),
2772*62c56f98SSadaf Ebrahimi };
2773*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_8_Y[] = {
2774*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x7B, 0xDE, 0xCB, 0xD8, 0x39, 0x17, 0x7C),
2775*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xF3, 0x03, 0xF2, 0x5C, 0xBC, 0xC8, 0x8A),
2776*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xAE, 0x4C, 0xB0, 0x16, 0xA4, 0x93, 0x86),
2777*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x8B, 0x6B, 0xDC, 0xD7, 0x9A, 0x3E, 0x7E),
2778*62c56f98SSadaf Ebrahimi };
2779*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_9_X[] = {
2780*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x2D, 0x7A, 0xD2, 0x59, 0x05, 0xA2, 0x82),
2781*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x56, 0x09, 0x32, 0xF1, 0xE8, 0xE3, 0x72),
2782*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xCA, 0xE5, 0x2E, 0xF0, 0xFB, 0x18, 0x19),
2783*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x85, 0xA9, 0x23, 0x15, 0x31, 0x1F, 0x0E),
2784*62c56f98SSadaf Ebrahimi };
2785*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_9_Y[] = {
2786*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xE5, 0xB1, 0x86, 0xB9, 0x6E, 0x8D, 0xD3),
2787*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x77, 0xFC, 0xC9, 0xA3, 0x3F, 0x89, 0xD2),
2788*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x6A, 0xDC, 0x25, 0xB0, 0xC7, 0x41, 0x54),
2789*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x11, 0x6B, 0xA6, 0x11, 0x62, 0xD4, 0x2D),
2790*62c56f98SSadaf Ebrahimi };
2791*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_10_X[] = {
2792*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x7D, 0x34, 0xB3, 0x20, 0x7F, 0x37, 0xAA),
2793*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xD4, 0x45, 0xE8, 0xC2, 0xE9, 0xC5, 0xEA),
2794*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x32, 0x3B, 0x25, 0x7E, 0x79, 0xAF, 0xE7),
2795*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xE4, 0x54, 0x71, 0xBE, 0x35, 0x4E, 0xD0),
2796*62c56f98SSadaf Ebrahimi };
2797*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_10_Y[] = {
2798*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x94, 0xDD, 0x8F, 0xB5, 0xC2, 0xDD, 0x75),
2799*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x49, 0xE9, 0x1C, 0x2F, 0x08, 0x49, 0xC6),
2800*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xB6, 0x03, 0x88, 0x6F, 0xB8, 0x15, 0x67),
2801*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xD3, 0x1C, 0xF3, 0xA5, 0xEB, 0x79, 0x01),
2802*62c56f98SSadaf Ebrahimi };
2803*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_11_X[] = {
2804*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xF9, 0x43, 0x88, 0x89, 0x0D, 0x06, 0xEA),
2805*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x2D, 0xF5, 0x98, 0x32, 0xF6, 0xB1, 0x05),
2806*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x73, 0x8F, 0x2B, 0x50, 0x27, 0x0A, 0xE7),
2807*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xE3, 0xBD, 0x16, 0x05, 0xC8, 0x93, 0x12),
2808*62c56f98SSadaf Ebrahimi };
2809*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_11_Y[] = {
2810*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x6A, 0xF7, 0xE3, 0x3D, 0xDE, 0x5F, 0x2F),
2811*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xA3, 0x9C, 0x22, 0x3C, 0x33, 0x36, 0x5D),
2812*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x24, 0x4C, 0x69, 0x45, 0x78, 0x14, 0xAE),
2813*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xF8, 0xD4, 0xBF, 0xB8, 0xC0, 0xA1, 0x25),
2814*62c56f98SSadaf Ebrahimi };
2815*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_12_X[] = {
2816*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x88, 0xE1, 0x91, 0x03, 0xEB, 0xB3, 0x2B),
2817*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x11, 0xA1, 0xEF, 0x14, 0x0D, 0xC4, 0x7D),
2818*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xD4, 0x0D, 0x1D, 0x96, 0x33, 0x5C, 0x19),
2819*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x45, 0x2A, 0x1A, 0xE6, 0x57, 0x04, 0x9B),
2820*62c56f98SSadaf Ebrahimi };
2821*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_12_Y[] = {
2822*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xB5, 0xA7, 0x80, 0xE9, 0x93, 0x97, 0x8D),
2823*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xB9, 0x7C, 0xA0, 0xC9, 0x57, 0x26, 0x43),
2824*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xEF, 0x56, 0xDA, 0x66, 0xF6, 0x1B, 0x9A),
2825*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x89, 0x6B, 0x91, 0xE0, 0xA9, 0x65, 0x2B),
2826*62c56f98SSadaf Ebrahimi };
2827*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_13_X[] = {
2828*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x98, 0x96, 0x9B, 0x06, 0x7D, 0x5E, 0x5A),
2829*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xFA, 0xC1, 0x5F, 0x19, 0x37, 0x94, 0x9D),
2830*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xBE, 0x6B, 0x1A, 0x05, 0xE4, 0xBF, 0x9F),
2831*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xCD, 0x5D, 0x35, 0xB4, 0x51, 0xF7, 0x64),
2832*62c56f98SSadaf Ebrahimi };
2833*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_13_Y[] = {
2834*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xEF, 0x96, 0xDB, 0xF2, 0x61, 0x63, 0x59),
2835*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x04, 0x88, 0xC9, 0x9F, 0x1B, 0x94, 0xB9),
2836*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x30, 0x79, 0x7E, 0x24, 0xE7, 0x5F, 0xB8),
2837*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xB8, 0x90, 0xB7, 0x94, 0x25, 0xBB, 0x0F),
2838*62c56f98SSadaf Ebrahimi };
2839*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_14_X[] = {
2840*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x79, 0xEA, 0xAD, 0xC0, 0x6D, 0x18, 0x57),
2841*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xA4, 0x58, 0x2A, 0x8D, 0x95, 0xB3, 0xE6),
2842*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC4, 0xC2, 0x12, 0x0D, 0x79, 0xE2, 0x2B),
2843*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x6F, 0xBE, 0x97, 0x4D, 0xA4, 0x20, 0x07),
2844*62c56f98SSadaf Ebrahimi };
2845*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_14_Y[] = {
2846*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x31, 0x71, 0xC6, 0xA6, 0x91, 0xEB, 0x1F),
2847*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x9B, 0xA8, 0x4A, 0xE7, 0x77, 0xE1, 0xAA),
2848*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x06, 0xD3, 0x3D, 0x94, 0x30, 0xEF, 0x8C),
2849*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xDF, 0xCA, 0xFA, 0xF5, 0x28, 0xF8, 0xC9),
2850*62c56f98SSadaf Ebrahimi };
2851*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_15_X[] = {
2852*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xE1, 0x32, 0xFD, 0x3E, 0x81, 0xF8, 0x11),
2853*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xF2, 0x4B, 0x1D, 0x19, 0xC9, 0x0F, 0xCC),
2854*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xB1, 0x8A, 0x22, 0x8B, 0x05, 0x6B, 0x56),
2855*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x21, 0xEF, 0x30, 0xEC, 0x09, 0x2A, 0x89),
2856*62c56f98SSadaf Ebrahimi };
2857*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint secp256k1_T_15_Y[] = {
2858*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x84, 0x4A, 0x46, 0x07, 0x6C, 0x3C, 0x4C),
2859*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x18, 0x3A, 0xF4, 0xCC, 0xF5, 0xB2, 0xF2),
2860*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x8F, 0xCD, 0x0A, 0x9C, 0xF4, 0xBD, 0x95),
2861*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x89, 0x7F, 0x8A, 0xB1, 0x52, 0x3A, 0xAB),
2862*62c56f98SSadaf Ebrahimi };
2863*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point secp256k1_T[16] = {
2864*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(secp256k1_T_0_X, secp256k1_T_0_Y),
2865*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_1_X, secp256k1_T_1_Y),
2866*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_2_X, secp256k1_T_2_Y),
2867*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_3_X, secp256k1_T_3_Y),
2868*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_4_X, secp256k1_T_4_Y),
2869*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_5_X, secp256k1_T_5_Y),
2870*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_6_X, secp256k1_T_6_Y),
2871*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_7_X, secp256k1_T_7_Y),
2872*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_8_X, secp256k1_T_8_Y),
2873*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_9_X, secp256k1_T_9_Y),
2874*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_10_X, secp256k1_T_10_Y),
2875*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_11_X, secp256k1_T_11_Y),
2876*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_12_X, secp256k1_T_12_Y),
2877*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_13_X, secp256k1_T_13_Y),
2878*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_14_X, secp256k1_T_14_Y),
2879*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(secp256k1_T_15_X, secp256k1_T_15_Y),
2880*62c56f98SSadaf Ebrahimi };
2881*62c56f98SSadaf Ebrahimi #else
2882*62c56f98SSadaf Ebrahimi #define secp256k1_T NULL
2883*62c56f98SSadaf Ebrahimi #endif
2884*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
2885*62c56f98SSadaf Ebrahimi 
2886*62c56f98SSadaf Ebrahimi /*
2887*62c56f98SSadaf Ebrahimi  * Domain parameters for brainpoolP256r1 (RFC 5639 3.4)
2888*62c56f98SSadaf Ebrahimi  */
2889*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
2890*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_p[] = {
2891*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x53, 0x6E, 0x1F, 0x1D, 0x48, 0x13, 0x20),
2892*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x20, 0x26, 0xD5, 0x23, 0xF6, 0x3B, 0x6E),
2893*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E),
2894*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9),
2895*62c56f98SSadaf Ebrahimi };
2896*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_a[] = {
2897*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xB5, 0x30, 0xF3, 0x44, 0x4B, 0x4A, 0xE9),
2898*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x5C, 0xDC, 0x26, 0xC1, 0x55, 0x80, 0xFB),
2899*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xFF, 0x7A, 0x41, 0x30, 0x75, 0xF6, 0xEE),
2900*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x30, 0x2C, 0xFC, 0x75, 0x09, 0x5A, 0x7D),
2901*62c56f98SSadaf Ebrahimi };
2902*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_b[] = {
2903*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x07, 0x8C, 0xFF, 0x18, 0xDC, 0xCC, 0x6B),
2904*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE1, 0xF7, 0x5C, 0x29, 0x16, 0x84, 0x95),
2905*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x7C, 0xD7, 0xBB, 0xD9, 0xB5, 0x30, 0xF3),
2906*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x4B, 0x4A, 0xE9, 0x6C, 0x5C, 0xDC, 0x26),
2907*62c56f98SSadaf Ebrahimi };
2908*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_gx[] = {
2909*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A),
2910*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9),
2911*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C),
2912*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B),
2913*62c56f98SSadaf Ebrahimi };
2914*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_gy[] = {
2915*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C),
2916*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2),
2917*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97),
2918*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54),
2919*62c56f98SSadaf Ebrahimi };
2920*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_n[] = {
2921*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x56, 0x48, 0x97, 0x82, 0x0E, 0x1E, 0x90),
2922*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xA6, 0x61, 0xB5, 0xA3, 0x7A, 0x39, 0x8C),
2923*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E),
2924*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9),
2925*62c56f98SSadaf Ebrahimi };
2926*62c56f98SSadaf Ebrahimi 
2927*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2928*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_0_X[] = {
2929*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A),
2930*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9),
2931*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C),
2932*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B),
2933*62c56f98SSadaf Ebrahimi };
2934*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_0_Y[] = {
2935*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C),
2936*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2),
2937*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97),
2938*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54),
2939*62c56f98SSadaf Ebrahimi };
2940*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_1_X[] = {
2941*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xA2, 0xED, 0x52, 0xC9, 0x8C, 0xE3, 0xA5),
2942*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xC9, 0xC4, 0x87, 0x3F, 0x93, 0x7A, 0xD1),
2943*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x12, 0x53, 0x61, 0x3E, 0x76, 0x08, 0xCB),
2944*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x8C, 0x74, 0xF4, 0x08, 0xC3, 0x76, 0x80),
2945*62c56f98SSadaf Ebrahimi };
2946*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_1_Y[] = {
2947*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xDD, 0x09, 0xA6, 0xED, 0xEE, 0xC4, 0x38),
2948*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xD9, 0xBE, 0x4B, 0xA5, 0xB7, 0x2B, 0x6E),
2949*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x20, 0x12, 0xCA, 0x0A, 0x38, 0x24, 0xAB),
2950*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x72, 0x71, 0x90, 0x7A, 0x2E, 0xB7, 0x23),
2951*62c56f98SSadaf Ebrahimi };
2952*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_2_X[] = {
2953*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0xA1, 0x93, 0x10, 0x2A, 0x51, 0x17),
2954*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x10, 0x11, 0x12, 0xBC, 0xB0, 0xB6, 0x93),
2955*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x58, 0xD7, 0x0A, 0x84, 0x05, 0xA3, 0x9C),
2956*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x8E, 0x95, 0x61, 0xD3, 0x0B, 0xDF, 0x36),
2957*62c56f98SSadaf Ebrahimi };
2958*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_2_Y[] = {
2959*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x92, 0x12, 0x0F, 0x5E, 0x87, 0x70, 0x1B),
2960*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0xE9, 0x9B, 0xEB, 0x3A, 0xFB, 0xCF, 0xC4),
2961*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0x92, 0xB9, 0xF7, 0x45, 0xD3, 0x06, 0xB6),
2962*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x28, 0x65, 0xE1, 0xC5, 0x6C, 0x57, 0x18),
2963*62c56f98SSadaf Ebrahimi };
2964*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_3_X[] = {
2965*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x0E, 0x77, 0x01, 0x81, 0x9E, 0x38, 0x5C),
2966*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xF0, 0xD5, 0xA5, 0x91, 0x2B, 0xDF, 0xC0),
2967*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xEE, 0xB6, 0x25, 0xD6, 0x98, 0xDE, 0x2D),
2968*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xA1, 0x55, 0x63, 0x39, 0xEB, 0xB5, 0x47),
2969*62c56f98SSadaf Ebrahimi };
2970*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_3_Y[] = {
2971*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xD6, 0xB8, 0xE3, 0x13, 0xED, 0x7F, 0xA3),
2972*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xE8, 0xAE, 0x36, 0xB8, 0xCD, 0x19, 0x02),
2973*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x82, 0x83, 0x7A, 0x7B, 0x46, 0x56, 0xE8),
2974*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x60, 0x46, 0x15, 0x5A, 0xAC, 0x99, 0x30),
2975*62c56f98SSadaf Ebrahimi };
2976*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_4_X[] = {
2977*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x61, 0x50, 0xC6, 0xFF, 0x10, 0x7D, 0x04),
2978*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x51, 0xDF, 0xA9, 0x7D, 0x78, 0x26, 0x74),
2979*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x15, 0x9A, 0xF7, 0x01, 0xC1, 0xBB, 0x40),
2980*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x0F, 0xE6, 0x2A, 0xBD, 0x4A, 0x9E, 0x87),
2981*62c56f98SSadaf Ebrahimi };
2982*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_4_Y[] = {
2983*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xF8, 0xD1, 0x77, 0xD2, 0x49, 0xB3, 0xDD),
2984*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x86, 0xFB, 0x9E, 0x1F, 0x5A, 0x60, 0x47),
2985*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xC4, 0x8D, 0xCD, 0x86, 0x61, 0x2F, 0xF9),
2986*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xF6, 0xB9, 0xAC, 0x37, 0x9D, 0xE9, 0x28),
2987*62c56f98SSadaf Ebrahimi };
2988*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_5_X[] = {
2989*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x77, 0xAA, 0x97, 0x9C, 0x0B, 0x04, 0x20),
2990*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xA6, 0x60, 0x81, 0xCE, 0x25, 0x13, 0x3E),
2991*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x00, 0xF3, 0xBB, 0x82, 0x99, 0x95, 0xB7),
2992*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x5A, 0xCE, 0x90, 0x71, 0x38, 0x2F, 0x10),
2993*62c56f98SSadaf Ebrahimi };
2994*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_5_Y[] = {
2995*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x1A, 0xC0, 0x84, 0x27, 0xD6, 0x9D, 0xB7),
2996*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x37, 0x52, 0x16, 0x13, 0x0E, 0xCE, 0x92),
2997*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xBF, 0x5A, 0xDB, 0xDB, 0x6E, 0x1E, 0x69),
2998*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB7, 0x5E, 0xF9, 0x86, 0xDD, 0x8A, 0x5C),
2999*62c56f98SSadaf Ebrahimi };
3000*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_6_X[] = {
3001*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xAB, 0x5C, 0x8D, 0x1D, 0xF2, 0x2D, 0x1E),
3002*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC5, 0xF8, 0xF7, 0x1D, 0x96, 0x0B, 0x4D),
3003*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x4C, 0xA7, 0x45, 0x20, 0x6A, 0x1E, 0x5B),
3004*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x5D, 0xEF, 0xDE, 0xEE, 0x39, 0x44, 0x19),
3005*62c56f98SSadaf Ebrahimi };
3006*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_6_Y[] = {
3007*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x2F, 0x6D, 0x52, 0xC9, 0x58, 0x60, 0xE8),
3008*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xC9, 0x62, 0xCB, 0x38, 0x3C, 0x55, 0xCA),
3009*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xA5, 0x09, 0x10, 0x88, 0xDB, 0xE3, 0xBD),
3010*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xE0, 0x3C, 0xCE, 0x06, 0x0B, 0x4B, 0x5D),
3011*62c56f98SSadaf Ebrahimi };
3012*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_7_X[] = {
3013*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x1D, 0xB4, 0x10, 0x76, 0x8F, 0xBA, 0x09),
3014*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x70, 0x5A, 0x07, 0xF5, 0x1A, 0x74, 0xC7),
3015*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xE9, 0x94, 0xA8, 0xC0, 0xD5, 0x4A, 0x4A),
3016*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x6D, 0xD4, 0xE8, 0x9B, 0xE9, 0x6D, 0x0E),
3017*62c56f98SSadaf Ebrahimi };
3018*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_7_Y[] = {
3019*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x00, 0x32, 0x41, 0x57, 0x84, 0x89, 0x52),
3020*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xC7, 0x14, 0xEC, 0xE9, 0x27, 0xFF, 0xF3),
3021*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x67, 0x9E, 0xFB, 0xB6, 0xB8, 0x96, 0xF3),
3022*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x4A, 0xE3, 0x97, 0x4B, 0x58, 0xDE, 0x30),
3023*62c56f98SSadaf Ebrahimi };
3024*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_8_X[] = {
3025*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x1E, 0x5C, 0xF5, 0x7F, 0xD5, 0xD4, 0xAA),
3026*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x08, 0x7A, 0xF1, 0xBD, 0x89, 0xC7, 0x1E),
3027*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xF9, 0x11, 0x1B, 0xF5, 0x3C, 0x6D, 0x8C),
3028*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x50, 0xE5, 0x69, 0x1D, 0x59, 0xFC, 0x0C),
3029*62c56f98SSadaf Ebrahimi };
3030*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_8_Y[] = {
3031*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x2F, 0xF8, 0x3F, 0xEC, 0x55, 0x99, 0x57),
3032*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xA7, 0x29, 0x90, 0x43, 0x81, 0x31, 0x4C),
3033*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x18, 0x44, 0x50, 0x5D, 0x76, 0xCB, 0xDD),
3034*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xC5, 0x5B, 0x9A, 0x03, 0xE6, 0x17, 0x39),
3035*62c56f98SSadaf Ebrahimi };
3036*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_9_X[] = {
3037*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x89, 0xFC, 0x55, 0x94, 0x91, 0x6A, 0xA2),
3038*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x46, 0x35, 0xF2, 0x3A, 0x42, 0x08, 0x2F),
3039*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xD2, 0x76, 0x49, 0x42, 0x87, 0xD3, 0x7F),
3040*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xEA, 0xA0, 0x52, 0xF1, 0x6A, 0x30, 0x57),
3041*62c56f98SSadaf Ebrahimi };
3042*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_9_Y[] = {
3043*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xB2, 0x57, 0xA3, 0x8A, 0x4D, 0x1B, 0x3C),
3044*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xA3, 0x99, 0x94, 0xB5, 0x3D, 0x64, 0x09),
3045*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xC3, 0xD7, 0x53, 0xF6, 0x49, 0x1C, 0x60),
3046*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x23, 0x41, 0x4D, 0xFB, 0x7A, 0x5C, 0x53),
3047*62c56f98SSadaf Ebrahimi };
3048*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_10_X[] = {
3049*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xB8, 0x15, 0x65, 0x5C, 0x85, 0x94, 0xD7),
3050*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x37, 0xC7, 0xF8, 0x7E, 0xAE, 0x6C, 0x10),
3051*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xD8, 0x11, 0x54, 0x98, 0x44, 0xE3, 0xF1),
3052*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x4D, 0xA6, 0x4B, 0x28, 0xF2, 0x57, 0x9E),
3053*62c56f98SSadaf Ebrahimi };
3054*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_10_Y[] = {
3055*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xD0, 0xEB, 0x1E, 0xAA, 0x30, 0xD3, 0x6A),
3056*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x9B, 0x4D, 0xA7, 0x73, 0x6E, 0xB6, 0x45),
3057*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x47, 0xF6, 0xED, 0x37, 0xEF, 0x71, 0x4D),
3058*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xB5, 0x49, 0x61, 0x5E, 0x45, 0xF6, 0x4A),
3059*62c56f98SSadaf Ebrahimi };
3060*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_11_X[] = {
3061*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x0E, 0xB3, 0x84, 0x3A, 0x63, 0x72, 0x84),
3062*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x53, 0x5C, 0xA7, 0xC6, 0x2E, 0xAB, 0x9E),
3063*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x0F, 0x8F, 0x87, 0x50, 0x28, 0xB4, 0xAE),
3064*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x98, 0x4A, 0x98, 0x31, 0x86, 0xCA, 0x51),
3065*62c56f98SSadaf Ebrahimi };
3066*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_11_Y[] = {
3067*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xC9, 0xE2, 0xFD, 0x5D, 0x1F, 0xE8, 0xC2),
3068*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x90, 0x91, 0xC4, 0x84, 0xF0, 0xBA, 0xC5),
3069*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x5A, 0xB3, 0x4E, 0xFB, 0xE0, 0x57, 0xE8),
3070*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x0B, 0x90, 0xA6, 0xFD, 0x9D, 0x8E, 0x02),
3071*62c56f98SSadaf Ebrahimi };
3072*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_12_X[] = {
3073*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x41, 0x8F, 0x31, 0xFA, 0x5A, 0xF6, 0x33),
3074*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xE9, 0xE3, 0xF6, 0xE0, 0x4A, 0xE7, 0xD2),
3075*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x4E, 0xCD, 0xA2, 0x22, 0x14, 0xD4, 0x12),
3076*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xED, 0x21, 0xB7, 0x0F, 0x53, 0x10, 0x17),
3077*62c56f98SSadaf Ebrahimi };
3078*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_12_Y[] = {
3079*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x06, 0x24, 0x2C, 0x4E, 0xD1, 0x1E, 0x9F),
3080*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x3F, 0xC1, 0x9F, 0xAB, 0xF0, 0x37, 0x95),
3081*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x5E, 0x12, 0xCE, 0x83, 0x1B, 0x2A, 0x18),
3082*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x65, 0xCF, 0xE8, 0x5C, 0xA5, 0xA2, 0x70),
3083*62c56f98SSadaf Ebrahimi };
3084*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_13_X[] = {
3085*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x86, 0x76, 0x3A, 0x94, 0xF6, 0x1D, 0xC1),
3086*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xDA, 0xC9, 0xA6, 0x29, 0x93, 0x15, 0x10),
3087*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x61, 0x6A, 0x7D, 0xC7, 0xA9, 0xF3, 0x76),
3088*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x03, 0x71, 0xA2, 0x15, 0xCE, 0x50, 0x72),
3089*62c56f98SSadaf Ebrahimi };
3090*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_13_Y[] = {
3091*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xD0, 0xA8, 0x1E, 0x91, 0xC4, 0x4F, 0x24),
3092*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x4B, 0x7E, 0xD7, 0x71, 0x58, 0x7E, 0x1E),
3093*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x45, 0xAF, 0x2A, 0x18, 0x93, 0x95, 0x3B),
3094*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x8F, 0xC7, 0xFA, 0x4C, 0x7A, 0x86, 0x54),
3095*62c56f98SSadaf Ebrahimi };
3096*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_14_X[] = {
3097*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xAF, 0x68, 0x3A, 0x23, 0xC1, 0x2E, 0xBF),
3098*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x50, 0x11, 0x67, 0x39, 0xB9, 0xAF, 0x48),
3099*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x86, 0xAA, 0x1E, 0x88, 0x21, 0x29, 0x8B),
3100*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x28, 0xA4, 0x9D, 0x89, 0xA9, 0x9A, 0x10),
3101*62c56f98SSadaf Ebrahimi };
3102*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_14_Y[] = {
3103*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBA, 0x04, 0x67, 0xB7, 0x01, 0x40, 0x38),
3104*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xE9, 0x09, 0xA3, 0xCA, 0xA6, 0x37, 0xF6),
3105*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x97, 0xA8, 0xB6, 0x3C, 0xEE, 0x90, 0x3D),
3106*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xED, 0xC4, 0xF7, 0xC3, 0x95, 0xEC, 0x85),
3107*62c56f98SSadaf Ebrahimi };
3108*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_15_X[] = {
3109*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x84, 0xBD, 0xEB, 0xD5, 0x64, 0xBB, 0x9D),
3110*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x9B, 0xE2, 0x28, 0x50, 0xC2, 0x72, 0x40),
3111*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xF2, 0x74, 0xD1, 0x26, 0xBF, 0x32, 0x68),
3112*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xCB, 0xAF, 0x72, 0xDB, 0x6D, 0x30, 0x98),
3113*62c56f98SSadaf Ebrahimi };
3114*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP256r1_T_15_Y[] = {
3115*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x50, 0x85, 0xF4, 0x2B, 0x48, 0xC1, 0xAD),
3116*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x28, 0xBB, 0x11, 0xBA, 0x5B, 0x22, 0x6C),
3117*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xA1, 0xE5, 0x5C, 0xC9, 0x1D, 0x44, 0x45),
3118*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xE8, 0xE6, 0x6F, 0xBB, 0xC1, 0x81, 0x7F),
3119*62c56f98SSadaf Ebrahimi };
3120*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point brainpoolP256r1_T[16] = {
3121*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(brainpoolP256r1_T_0_X, brainpoolP256r1_T_0_Y),
3122*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_1_X, brainpoolP256r1_T_1_Y),
3123*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_2_X, brainpoolP256r1_T_2_Y),
3124*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_3_X, brainpoolP256r1_T_3_Y),
3125*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_4_X, brainpoolP256r1_T_4_Y),
3126*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_5_X, brainpoolP256r1_T_5_Y),
3127*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_6_X, brainpoolP256r1_T_6_Y),
3128*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_7_X, brainpoolP256r1_T_7_Y),
3129*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_8_X, brainpoolP256r1_T_8_Y),
3130*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_9_X, brainpoolP256r1_T_9_Y),
3131*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_10_X, brainpoolP256r1_T_10_Y),
3132*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_11_X, brainpoolP256r1_T_11_Y),
3133*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_12_X, brainpoolP256r1_T_12_Y),
3134*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_13_X, brainpoolP256r1_T_13_Y),
3135*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_14_X, brainpoolP256r1_T_14_Y),
3136*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_15_X, brainpoolP256r1_T_15_Y),
3137*62c56f98SSadaf Ebrahimi };
3138*62c56f98SSadaf Ebrahimi #else
3139*62c56f98SSadaf Ebrahimi #define brainpoolP256r1_T NULL
3140*62c56f98SSadaf Ebrahimi #endif
3141*62c56f98SSadaf Ebrahimi 
3142*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
3143*62c56f98SSadaf Ebrahimi 
3144*62c56f98SSadaf Ebrahimi /*
3145*62c56f98SSadaf Ebrahimi  * Domain parameters for brainpoolP384r1 (RFC 5639 3.6)
3146*62c56f98SSadaf Ebrahimi  */
3147*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
3148*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_p[] = {
3149*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xEC, 0x07, 0x31, 0x13, 0x00, 0x47, 0x87),
3150*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x1A, 0x1D, 0x90, 0x29, 0xA7, 0xD3, 0xAC),
3151*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x11, 0xB7, 0x7F, 0x19, 0xDA, 0xB1, 0x12),
3152*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15),
3153*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F),
3154*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C),
3155*62c56f98SSadaf Ebrahimi };
3156*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_a[] = {
3157*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04),
3158*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xD4, 0x3A, 0x50, 0x4A, 0x81, 0xA5, 0x8A),
3159*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xF9, 0x91, 0xBA, 0xEF, 0x65, 0x91, 0x13),
3160*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x27, 0xB2, 0x4F, 0x8E, 0xA2, 0xBE, 0xC2),
3161*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xAF, 0x05, 0xCE, 0x0A, 0x08, 0x72, 0x3C),
3162*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x15, 0x8C, 0x3D, 0xC6, 0x82, 0xC3, 0x7B),
3163*62c56f98SSadaf Ebrahimi };
3164*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_b[] = {
3165*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x4C, 0x50, 0xFA, 0x96, 0x86, 0xB7, 0x3A),
3166*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0xC9, 0xDB, 0x95, 0x02, 0x39, 0xB4, 0x7C),
3167*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x62, 0xEB, 0x3E, 0xA5, 0x0E, 0x88, 0x2E),
3168*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xD2, 0xDC, 0x07, 0xE1, 0x7D, 0xB7, 0x2F),
3169*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x44, 0xF0, 0x16, 0x54, 0xB5, 0x39, 0x8B),
3170*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04),
3171*62c56f98SSadaf Ebrahimi };
3172*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_gx[] = {
3173*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF),
3174*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8),
3175*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB),
3176*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88),
3177*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2),
3178*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D),
3179*62c56f98SSadaf Ebrahimi };
3180*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_gy[] = {
3181*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42),
3182*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E),
3183*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1),
3184*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62),
3185*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C),
3186*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A),
3187*62c56f98SSadaf Ebrahimi };
3188*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_n[] = {
3189*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x65, 0x04, 0xE9, 0x02, 0x32, 0x88, 0x3B),
3190*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xC3, 0x7F, 0x6B, 0xAF, 0xB6, 0x3A, 0xCF),
3191*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x25, 0x04, 0xAC, 0x6C, 0x6E, 0x16, 0x1F),
3192*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15),
3193*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F),
3194*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C),
3195*62c56f98SSadaf Ebrahimi };
3196*62c56f98SSadaf Ebrahimi 
3197*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
3198*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_0_X[] = {
3199*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF),
3200*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8),
3201*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB),
3202*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88),
3203*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2),
3204*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D),
3205*62c56f98SSadaf Ebrahimi };
3206*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_0_Y[] = {
3207*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42),
3208*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E),
3209*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1),
3210*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62),
3211*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C),
3212*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A),
3213*62c56f98SSadaf Ebrahimi };
3214*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_1_X[] = {
3215*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0xD8, 0x8A, 0x54, 0x41, 0xD6, 0x6B, 0x1D),
3216*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x3B, 0xF1, 0x22, 0xFD, 0x2D, 0x4B, 0x03),
3217*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x55, 0xE3, 0x33, 0xF0, 0x73, 0x52, 0x5A),
3218*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x3F, 0x30, 0x26, 0xCA, 0x7F, 0x52, 0xA3),
3219*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x6E, 0x17, 0x9B, 0xD5, 0x2A, 0x4A, 0x31),
3220*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xDA, 0x6B, 0xE5, 0x03, 0x07, 0x1D, 0x2E),
3221*62c56f98SSadaf Ebrahimi };
3222*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_1_Y[] = {
3223*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x7A, 0xAF, 0x98, 0xE3, 0xA4, 0xF6, 0x19),
3224*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x7D, 0xFE, 0x51, 0x40, 0x3B, 0x47, 0xD2),
3225*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x88, 0xEC, 0xC4, 0xE2, 0x8F, 0xCB, 0xA4),
3226*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xE2, 0x88, 0x2D, 0x4E, 0x50, 0xEB, 0x9A),
3227*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x54, 0x94, 0x5E, 0xF4, 0x7F, 0x3A, 0x04),
3228*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x07, 0x1C, 0xE1, 0xBD, 0x0F, 0xF8, 0x63),
3229*62c56f98SSadaf Ebrahimi };
3230*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_2_X[] = {
3231*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x92, 0x28, 0x2E, 0x32, 0x04, 0xB1, 0x4D),
3232*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x82, 0x44, 0x43, 0x76, 0x0D, 0x55, 0xBF),
3233*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xE3, 0xFF, 0x89, 0x46, 0xDE, 0x4E, 0xFE),
3234*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x22, 0xBB, 0x67, 0x1A, 0x81, 0xEE, 0x27),
3235*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x54, 0xE2, 0x7A, 0xAE, 0xDA, 0x2C, 0xD0),
3236*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x9A, 0x90, 0xAA, 0x6E, 0x8B, 0xCC, 0x5F),
3237*62c56f98SSadaf Ebrahimi };
3238*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_2_Y[] = {
3239*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x40, 0xAC, 0xED, 0x7D, 0x37, 0x87, 0xAC),
3240*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xF8, 0xB1, 0x80, 0x4C, 0x8C, 0x04, 0x42),
3241*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x98, 0x2C, 0xAD, 0x30, 0x69, 0x35, 0xC0),
3242*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x2E, 0x00, 0x2F, 0x44, 0x8C, 0xF0, 0xC0),
3243*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x58, 0x07, 0xD7, 0xCD, 0x60, 0xA1, 0x5B),
3244*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xFB, 0x7B, 0x03, 0x05, 0x5E, 0x79, 0x73),
3245*62c56f98SSadaf Ebrahimi };
3246*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_3_X[] = {
3247*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x17, 0xCE, 0x38, 0x4B, 0x5E, 0x5B, 0xC8),
3248*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x0E, 0x0A, 0x61, 0x9D, 0x7C, 0x62, 0x08),
3249*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xF0, 0x98, 0x71, 0x7F, 0x17, 0x26, 0xD7),
3250*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xD3, 0xFA, 0x3C, 0xF0, 0x70, 0x07, 0x82),
3251*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x47, 0x5C, 0x09, 0x43, 0xB7, 0x65, 0x15),
3252*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xA9, 0xA7, 0x3E, 0xFA, 0xF3, 0xEC, 0x22),
3253*62c56f98SSadaf Ebrahimi };
3254*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_3_Y[] = {
3255*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x78, 0x22, 0x2B, 0x58, 0x71, 0xFA, 0xAA),
3256*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x30, 0xCE, 0x6A, 0xB3, 0xB0, 0x4F, 0x83),
3257*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x95, 0x20, 0xA9, 0x23, 0xC2, 0x65, 0xE7),
3258*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xCF, 0x03, 0x5B, 0x8A, 0x80, 0x44, 0xBB),
3259*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xF8, 0x91, 0xF7, 0xD5, 0xED, 0xEA, 0x81),
3260*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x5B, 0x16, 0x10, 0x25, 0xAC, 0x2A, 0x17),
3261*62c56f98SSadaf Ebrahimi };
3262*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_4_X[] = {
3263*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xEC, 0xDC, 0xC4, 0x7B, 0x8C, 0x6B, 0xE9),
3264*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xBB, 0x1C, 0xD3, 0x5A, 0xEE, 0xD9, 0x97),
3265*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x5D, 0x30, 0x5E, 0xF7, 0xB2, 0x41, 0x9D),
3266*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xCE, 0x0F, 0x1A, 0xC6, 0x41, 0x64, 0x62),
3267*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x18, 0xE1, 0xE3, 0x82, 0x15, 0x66, 0x4B),
3268*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xE2, 0x24, 0x04, 0x72, 0x39, 0xA0, 0x7C),
3269*62c56f98SSadaf Ebrahimi };
3270*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_4_Y[] = {
3271*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x51, 0xA2, 0x58, 0x88, 0x62, 0xE1, 0x02),
3272*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xD2, 0x65, 0x14, 0xE9, 0x4C, 0x82, 0x30),
3273*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xE1, 0xAC, 0x87, 0xAE, 0x31, 0x1A, 0x7A),
3274*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x4F, 0x96, 0x1E, 0x85, 0x7A, 0xC3, 0x2B),
3275*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x86, 0xBB, 0xF0, 0xC0, 0x9D, 0x08, 0x7B),
3276*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x53, 0x03, 0x09, 0x80, 0x91, 0xEF, 0x68),
3277*62c56f98SSadaf Ebrahimi };
3278*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_5_X[] = {
3279*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xD7, 0xAF, 0x6F, 0x69, 0x7B, 0x88, 0xA1),
3280*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x13, 0xE4, 0x30, 0xA2, 0x47, 0xB5, 0xC1),
3281*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xD2, 0xC0, 0xDD, 0x8A, 0x1C, 0x3C, 0xF2),
3282*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x8C, 0xB3, 0x4C, 0xBA, 0x8B, 0x6D, 0xCF),
3283*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0xC7, 0xA1, 0xA8, 0x6E, 0x3C, 0x4F, 0xF1),
3284*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x4A, 0x97, 0xC8, 0x03, 0x6F, 0x01, 0x82),
3285*62c56f98SSadaf Ebrahimi };
3286*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_5_Y[] = {
3287*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x18, 0x12, 0xA9, 0x39, 0xD5, 0x22, 0x26),
3288*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xA7, 0xC0, 0xBD, 0x9D, 0x8D, 0x78, 0x38),
3289*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xB3, 0xD0, 0x7F, 0xDF, 0xD0, 0x30, 0xDE),
3290*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x25, 0x73, 0x96, 0xEC, 0xA8, 0x1D, 0x7C),
3291*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xD1, 0x65, 0x66, 0xDC, 0xD9, 0xCF, 0xDF),
3292*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xED, 0x7B, 0x37, 0xAD, 0xE2, 0xBE, 0x2D),
3293*62c56f98SSadaf Ebrahimi };
3294*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_6_X[] = {
3295*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x79, 0x42, 0x6A, 0x07, 0x66, 0xB1, 0xBD),
3296*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x53, 0x62, 0x65, 0x92, 0x09, 0x4C, 0xA1),
3297*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xAF, 0xC3, 0x03, 0xF6, 0xF4, 0x2D, 0x9B),
3298*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xCA, 0x41, 0xD9, 0xA2, 0x69, 0x9B, 0xC9),
3299*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xB2, 0xA6, 0x8D, 0xE1, 0xAA, 0x61, 0x76),
3300*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xBA, 0x4D, 0x12, 0xB6, 0xBE, 0xF3, 0x7E),
3301*62c56f98SSadaf Ebrahimi };
3302*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_6_Y[] = {
3303*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xD9, 0x92, 0x22, 0x07, 0xCE, 0xC9, 0x26),
3304*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xA1, 0x7C, 0x91, 0xDB, 0x32, 0xF7, 0xE5),
3305*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x49, 0x4B, 0x6D, 0xFB, 0xD9, 0x70, 0x3B),
3306*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xFB, 0x4E, 0x4C, 0x5E, 0x66, 0x81, 0x1D),
3307*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xB3, 0xE1, 0x00, 0xB7, 0xD9, 0xCC, 0x58),
3308*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x36, 0x8B, 0xC4, 0x39, 0x20, 0xFD, 0x30),
3309*62c56f98SSadaf Ebrahimi };
3310*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_7_X[] = {
3311*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x1F, 0x60, 0x03, 0xBB, 0xD7, 0x60, 0x57),
3312*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x3C, 0x62, 0xDD, 0x71, 0x95, 0xE9, 0x61),
3313*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x5B, 0x7A, 0x5F, 0x68, 0x81, 0xC5, 0x90),
3314*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xB5, 0xB9, 0x98, 0x42, 0x28, 0xA5),
3315*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x29, 0x8E, 0x11, 0x49, 0xB4, 0xD7, 0x20),
3316*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x3E, 0xD2, 0x30, 0xA1, 0xBA, 0xCA, 0x03),
3317*62c56f98SSadaf Ebrahimi };
3318*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_7_Y[] = {
3319*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x37, 0x64, 0x44, 0x2F, 0x03, 0xE5, 0x41),
3320*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x42, 0xBC, 0xFF, 0xA2, 0x1A, 0x5F, 0x06),
3321*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x04, 0xAB, 0x04, 0xE0, 0x24, 0xAD, 0x2A),
3322*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x45, 0x17, 0x67, 0x1F, 0x3E, 0x53, 0xF8),
3323*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x0F, 0xB3, 0x1B, 0x57, 0x54, 0xC2, 0x03),
3324*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0xF8, 0xC4, 0x1B, 0x9B, 0xFA, 0x30),
3325*62c56f98SSadaf Ebrahimi };
3326*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_8_X[] = {
3327*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x90, 0xFD, 0xFB, 0xCA, 0x49, 0x38, 0x4E),
3328*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xCF, 0xC6, 0xDD, 0xF0, 0xFF, 0x8C, 0x11),
3329*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x69, 0x9D, 0xBD, 0x5F, 0x33, 0xE9, 0xB4),
3330*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x19, 0x82, 0x3D, 0xAC, 0x1C, 0x40, 0x23),
3331*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC7, 0x02, 0x46, 0x14, 0x77, 0x00, 0xBE),
3332*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x05, 0xF2, 0x77, 0x3A, 0x66, 0x5C, 0x39),
3333*62c56f98SSadaf Ebrahimi };
3334*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_8_Y[] = {
3335*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xE6, 0x17, 0xDE, 0xB2, 0xA1, 0xE5, 0xB8),
3336*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x71, 0xEC, 0x9D, 0xD8, 0xF5, 0xD4, 0x66),
3337*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xC6, 0x42, 0x5E, 0xE7, 0x18, 0xBA, 0xD0),
3338*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x21, 0x68, 0x5A, 0x26, 0xFB, 0xD7, 0x17),
3339*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x00, 0x5C, 0xBA, 0x8A, 0x34, 0xEC, 0x75),
3340*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x9C, 0x3C, 0xAF, 0x53, 0xE8, 0x65, 0x35),
3341*62c56f98SSadaf Ebrahimi };
3342*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_9_X[] = {
3343*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xEF, 0x28, 0xDC, 0x67, 0x05, 0xC8, 0xDF),
3344*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x78, 0xC3, 0x85, 0x49, 0xA0, 0xBC, 0x0F),
3345*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x3E, 0x2D, 0xA0, 0xCF, 0xD4, 0x7A, 0xF5),
3346*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x93, 0xFE, 0x60, 0xB3, 0x6E, 0x99, 0xE2),
3347*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xAD, 0x04, 0xE7, 0x49, 0xAF, 0x5E, 0xE3),
3348*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x7A, 0xED, 0xA6, 0x9E, 0x18, 0x09, 0x31),
3349*62c56f98SSadaf Ebrahimi };
3350*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_9_Y[] = {
3351*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x05, 0x94, 0x44, 0xDC, 0xB8, 0x85, 0x94),
3352*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xB7, 0x37, 0xC2, 0x50, 0x75, 0x15, 0xDA),
3353*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xC6, 0x0F, 0xB2, 0xA9, 0x91, 0x3E, 0xE8),
3354*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x81, 0xAD, 0x25, 0xA1, 0x26, 0x73, 0x15),
3355*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xF1, 0xD1, 0x61, 0x7C, 0x76, 0x8F, 0x13),
3356*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xDB, 0x4A, 0xFF, 0x14, 0xA7, 0x48, 0x0B),
3357*62c56f98SSadaf Ebrahimi };
3358*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_10_X[] = {
3359*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x73, 0xC6, 0xC2, 0xCC, 0xF1, 0x57, 0x04),
3360*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xED, 0x73, 0x27, 0x70, 0x82, 0xB6, 0x5E),
3361*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xBA, 0xAC, 0x3A, 0xCF, 0xF4, 0xEA, 0xA6),
3362*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xD6, 0xB1, 0x8F, 0x0E, 0x08, 0x2C, 0x5E),
3363*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xE3, 0x8F, 0x2F, 0x0E, 0xA1, 0xF3, 0x07),
3364*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xF5, 0x7C, 0x9B, 0x29, 0x0A, 0xF6, 0x28),
3365*62c56f98SSadaf Ebrahimi };
3366*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_10_Y[] = {
3367*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xEE, 0x17, 0x47, 0x34, 0x15, 0xA3, 0xAF),
3368*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xBE, 0x88, 0x48, 0xE7, 0xA2, 0xBB, 0xDE),
3369*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xAD, 0xDC, 0x65, 0x61, 0x37, 0x0F, 0xC1),
3370*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x67, 0xAD, 0xA2, 0x3A, 0x1C, 0x91, 0x78),
3371*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x07, 0x0C, 0x3A, 0x41, 0x6E, 0x13, 0x28),
3372*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0xBD, 0x7E, 0xED, 0xAA, 0x14, 0xDD, 0x61),
3373*62c56f98SSadaf Ebrahimi };
3374*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_11_X[] = {
3375*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xDC, 0x20, 0x01, 0x72, 0x11, 0x48, 0x55),
3376*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xC4, 0x7B, 0xF8, 0x62, 0x3D, 0xF0, 0x9F),
3377*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xC2, 0x3D, 0x2E, 0x52, 0xA3, 0x4A, 0x89),
3378*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE2, 0x53, 0x46, 0x5E, 0x21, 0xF8, 0xCE),
3379*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xC7, 0x8F, 0xA9, 0x26, 0x42, 0x32, 0x3A),
3380*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xA6, 0xA0, 0x8D, 0x4B, 0x9A, 0x19, 0x03),
3381*62c56f98SSadaf Ebrahimi };
3382*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_11_Y[] = {
3383*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xAB, 0x6D, 0x1E, 0xFB, 0xEE, 0x60, 0x0C),
3384*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x56, 0x3C, 0xC5, 0x5D, 0x10, 0x79, 0x1C),
3385*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xBC, 0x41, 0x9F, 0x71, 0xEF, 0x02, 0xF9),
3386*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x36, 0xC4, 0xD0, 0x88, 0x9B, 0x32, 0xFC),
3387*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xD4, 0x5D, 0x17, 0x39, 0xE6, 0x22, 0x2C),
3388*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x26, 0x01, 0xCE, 0xBE, 0x4A, 0x9C, 0x27),
3389*62c56f98SSadaf Ebrahimi };
3390*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_12_X[] = {
3391*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x6D, 0x11, 0xCA, 0x6C, 0x5A, 0x93, 0x0C),
3392*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x96, 0x26, 0xAF, 0x2F, 0xE4, 0x30, 0x98),
3393*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xC1, 0x4C, 0xC6, 0x30, 0x1F, 0x5C, 0x04),
3394*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xB3, 0xE8, 0xFC, 0x35, 0xEB, 0x63, 0x6C),
3395*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x1D, 0xCA, 0xFC, 0x50, 0x36, 0x4B, 0x96),
3396*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x0E, 0x23, 0x5B, 0xAF, 0xEB, 0x2D, 0x31),
3397*62c56f98SSadaf Ebrahimi };
3398*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_12_Y[] = {
3399*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x88, 0xB6, 0xD7, 0x74, 0x4A, 0x23, 0xB6),
3400*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x66, 0xE2, 0xBB, 0x29, 0xA6, 0x4F, 0x55),
3401*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x6F, 0x7E, 0x68, 0x6E, 0xA0, 0x14, 0x94),
3402*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x73, 0xD4, 0xE8, 0xAB, 0x5B, 0xF6, 0x0D),
3403*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xE0, 0x3C, 0x24, 0x00, 0x95, 0xE9, 0xAD),
3404*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x0D, 0x4F, 0x81, 0xD0, 0xF2, 0x3F, 0x00),
3405*62c56f98SSadaf Ebrahimi };
3406*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_13_X[] = {
3407*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x1D, 0xCD, 0x78, 0x39, 0xC4, 0x6B, 0xD9),
3408*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x45, 0xC7, 0xB8, 0x2F, 0xAA, 0x5D, 0xE3),
3409*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x8C, 0x6E, 0xA3, 0x24, 0xB2, 0xDB, 0x4B),
3410*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x2D, 0xD9, 0xF1, 0xC7, 0x9B, 0x8A, 0xAF),
3411*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xE1, 0x2C, 0xB9, 0x40, 0x37, 0x91, 0x75),
3412*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x2C, 0xB5, 0x23, 0x03, 0x2B, 0xAF, 0x2F),
3413*62c56f98SSadaf Ebrahimi };
3414*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_13_Y[] = {
3415*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x9D, 0x5A, 0x20, 0x10, 0xA9, 0x84, 0xDA),
3416*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x30, 0x89, 0x20, 0x13, 0xE9, 0xB2, 0xCA),
3417*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x6E, 0x52, 0xEB, 0x03, 0x18, 0x1F, 0xA6),
3418*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x9E, 0x1C, 0x35, 0x87, 0x92, 0x69, 0xC7),
3419*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0xC9, 0x88, 0xAF, 0xC6, 0x6C, 0x83, 0x72),
3420*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xD5, 0x7A, 0x54, 0x34, 0x99, 0xB6, 0x6F),
3421*62c56f98SSadaf Ebrahimi };
3422*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_14_X[] = {
3423*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0xAD, 0x45, 0x9B, 0x4B, 0x41, 0x4D, 0x50),
3424*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x5D, 0xAB, 0x7F, 0x35, 0x34, 0xE9, 0x29),
3425*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0xBE, 0x78, 0x34, 0x44, 0xF3, 0x4A, 0x87),
3426*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xDE, 0xE3, 0xC4, 0xEE, 0x0B, 0xF9, 0xEB),
3427*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x86, 0x16, 0x48, 0x32, 0xB8, 0x74, 0x41),
3428*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xEE, 0x7C, 0xBA, 0xBD, 0x81, 0xE3, 0x55),
3429*62c56f98SSadaf Ebrahimi };
3430*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_14_Y[] = {
3431*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x6A, 0xFA, 0x84, 0xDA, 0xB8, 0xD5, 0x14),
3432*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x9F, 0x8A, 0xD5, 0x1B, 0x2E, 0x1A, 0x0B),
3433*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0C, 0x61, 0xE2, 0xFF, 0x5B, 0xE6, 0xD5),
3434*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x62, 0xC1, 0x87, 0x53, 0x1B, 0x92, 0xA3),
3435*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x90, 0x00, 0xD1, 0x6A, 0x0C, 0x0E, 0x28),
3436*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x2E, 0xB5, 0x3B, 0x44, 0xB5, 0xA0, 0x78),
3437*62c56f98SSadaf Ebrahimi };
3438*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_15_X[] = {
3439*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x5D, 0x02, 0x58, 0xB5, 0xBE, 0x45, 0x14),
3440*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xEF, 0x8E, 0x90, 0x4D, 0x2A, 0x32, 0xAC),
3441*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x99, 0x75, 0x5C, 0x0A, 0x33, 0x8F, 0x36),
3442*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x6C, 0x95, 0xD4, 0x1F, 0xF3, 0xEB, 0xDA),
3443*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xE4, 0x4C, 0x91, 0x20, 0xF3, 0x25, 0xEB),
3444*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x95, 0xEB, 0x29, 0x6F, 0x20, 0x34, 0x81),
3445*62c56f98SSadaf Ebrahimi };
3446*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_15_Y[] = {
3447*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x15, 0xE5, 0x13, 0x7E, 0x64, 0x8B, 0xAD),
3448*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xBC, 0x0D, 0x18, 0x7E, 0x37, 0x9E, 0xFA),
3449*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x82, 0x20, 0xF7, 0x2D, 0x7A, 0x77, 0x52),
3450*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x29, 0xA2, 0xDB, 0x7A, 0xE6, 0x6F, 0xA5),
3451*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xC6, 0x50, 0x5C, 0xBC, 0xE6, 0x4F, 0xBD),
3452*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x9F, 0xD5, 0xE8, 0xC5, 0x3D, 0xB7, 0x30),
3453*62c56f98SSadaf Ebrahimi };
3454*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_16_X[] = {
3455*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x03, 0x55, 0x10, 0xDB, 0xA6, 0x8B, 0x22),
3456*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x17, 0xAE, 0x78, 0xC9, 0x1D, 0x43, 0xCA),
3457*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x35, 0x49, 0xD4, 0x47, 0x84, 0x8D, 0x20),
3458*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x95, 0x2F, 0xEA, 0xBC, 0xB4, 0x18, 0xB3),
3459*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x48, 0xAE, 0x89, 0xF5, 0x65, 0x3D, 0x89),
3460*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xF2, 0x2B, 0x20, 0xD1, 0x75, 0x50, 0x63),
3461*62c56f98SSadaf Ebrahimi };
3462*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_16_Y[] = {
3463*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xE6, 0x5C, 0x2C, 0xE0, 0x7D, 0xDF, 0x2D),
3464*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x07, 0x3E, 0xCE, 0x9F, 0x18, 0xB6, 0x05),
3465*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0xF8, 0xF0, 0xD5, 0xFA, 0x42, 0x1D, 0x6D),
3466*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x6C, 0x1D, 0x03, 0xC9, 0x0E, 0x2B, 0x2F),
3467*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x52, 0xA5, 0xB4, 0x63, 0xE1, 0x06),
3468*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0xD9, 0xC4, 0xFD, 0x16, 0x60, 0x54),
3469*62c56f98SSadaf Ebrahimi };
3470*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_17_X[] = {
3471*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x7D, 0xDE, 0xDF, 0x4B, 0x4A, 0xB0, 0xCB),
3472*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x4E, 0x8C, 0x94, 0xC1, 0xE2, 0x85, 0xDF),
3473*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xF0, 0xEA, 0xB5, 0x9B, 0x70, 0xEF, 0x10),
3474*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xC2, 0x39, 0x5D, 0xF3, 0x2C, 0xD9, 0x2C),
3475*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x1C, 0x2E, 0xCC, 0x2F, 0x54, 0x87, 0x80),
3476*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x72, 0xC7, 0xB5, 0x50, 0xA3, 0x84, 0x77),
3477*62c56f98SSadaf Ebrahimi };
3478*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_17_Y[] = {
3479*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xD1, 0xAF, 0xA9, 0xB4, 0x8B, 0x5D, 0xFA),
3480*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xF6, 0x52, 0x8A, 0xC3, 0x56, 0xA5, 0x5E),
3481*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x52, 0xFF, 0xEA, 0x05, 0x42, 0x77, 0x83),
3482*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x08, 0x90, 0x72, 0x86, 0xC4, 0xC3, 0xB8),
3483*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x15, 0xF8, 0xF1, 0x16, 0x67, 0xC6, 0xD5),
3484*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x87, 0xAC, 0x8F, 0x71, 0xEC, 0x83, 0x81),
3485*62c56f98SSadaf Ebrahimi };
3486*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_18_X[] = {
3487*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xE1, 0xE6, 0x2D, 0x0E, 0x11, 0xA1, 0x62),
3488*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xE2, 0xA8, 0x32, 0xE6, 0xE3, 0x83, 0xD1),
3489*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x56, 0xE5, 0xCD, 0xB7, 0x2B, 0x67, 0x6F),
3490*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xED, 0xC9, 0x65, 0x6D, 0x87, 0xE1, 0x8E),
3491*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x8E, 0xFD, 0x9A, 0x53, 0x0E, 0xFA, 0xA3),
3492*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x4C, 0x4A, 0xE2, 0x23, 0x84, 0xFA, 0x01),
3493*62c56f98SSadaf Ebrahimi };
3494*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_18_Y[] = {
3495*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFE, 0x49, 0x81, 0xD1, 0x3E, 0xF4, 0x7C),
3496*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x72, 0xE0, 0xEF, 0x0D, 0xB8, 0x3E, 0x6F),
3497*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x00, 0x0F, 0x5F, 0xCE, 0x60, 0x72, 0x2C),
3498*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xCC, 0xD8, 0x03, 0x07, 0x6E, 0x5A, 0xCD),
3499*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x3A, 0x35, 0x50, 0x4E, 0x1F, 0xCA, 0x5F),
3500*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xEA, 0x88, 0x55, 0xBD, 0x6E, 0x05, 0x7F),
3501*62c56f98SSadaf Ebrahimi };
3502*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_19_X[] = {
3503*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x6D, 0xF1, 0x97, 0xA6, 0x69, 0x39, 0x24),
3504*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x41, 0x99, 0xFF, 0x3B, 0xA1, 0x26, 0xEC),
3505*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x2F, 0x95, 0x80, 0x12, 0x4A, 0x1B, 0xCB),
3506*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xBF, 0x51, 0xAA, 0xAE, 0x2D, 0xDA, 0xCF),
3507*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x1C, 0xB3, 0x52, 0x36, 0x49, 0xD4, 0x86),
3508*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC1, 0x1F, 0x3A, 0xD3, 0x3E, 0x5C, 0x1A),
3509*62c56f98SSadaf Ebrahimi };
3510*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_19_Y[] = {
3511*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x51, 0xF7, 0x2B, 0xC8, 0xA9, 0xA7, 0x15),
3512*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x4E, 0x7F, 0x98, 0x41, 0x66, 0xB0, 0x03),
3513*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x1D, 0xC0, 0x42, 0xCD, 0xF8, 0xC3, 0x2B),
3514*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x41, 0x91, 0x7D, 0xCC, 0x8B, 0xCC, 0x41),
3515*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xAE, 0x76, 0xED, 0x56, 0x18, 0xC5, 0xAB),
3516*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x6A, 0x06, 0xA3, 0x7F, 0x65, 0x10, 0x1F),
3517*62c56f98SSadaf Ebrahimi };
3518*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_20_X[] = {
3519*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xEC, 0x3C, 0x05, 0x05, 0xCA, 0xF6, 0xED),
3520*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0xCD, 0x02, 0x51, 0x12, 0x16, 0x3C, 0x63),
3521*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xEB, 0xB3, 0x43, 0x7B, 0xDD, 0xB2, 0x7C),
3522*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x59, 0x90, 0x41, 0xDB, 0xE4, 0xF5, 0x91),
3523*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x0E, 0x18, 0x2A, 0x5A, 0x83, 0x7C, 0x2F),
3524*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x37, 0xA1, 0x0D, 0xF1, 0x2F, 0x63, 0x79),
3525*62c56f98SSadaf Ebrahimi };
3526*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_20_Y[] = {
3527*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xC0, 0xFA, 0x6F, 0x1F, 0x67, 0xCF, 0xEC),
3528*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x34, 0x45, 0xBB, 0xF4, 0xF9, 0x9B, 0x89),
3529*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x69, 0xFE, 0x67, 0x1D, 0x64, 0x8F, 0xB9),
3530*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x39, 0xBF, 0xD8, 0xB3, 0xC7, 0xAD, 0x8A),
3531*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x93, 0xFF, 0xF3, 0x28, 0xFA, 0x39, 0xF6),
3532*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xF9, 0xC3, 0x85, 0x26, 0x7A, 0x88, 0x89),
3533*62c56f98SSadaf Ebrahimi };
3534*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_21_X[] = {
3535*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xD5, 0x79, 0xD8, 0x11, 0xDE, 0xEB, 0x4E),
3536*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x46, 0xA4, 0x6A, 0xDA, 0x74, 0x34, 0xA8),
3537*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xBD, 0xD3, 0xF5, 0x14, 0xEE, 0xFE, 0xAE),
3538*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x4C, 0xA3, 0x71, 0x43, 0x65, 0xF8, 0x94),
3539*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x6C, 0x35, 0xFA, 0x90, 0x25, 0xD8, 0xE2),
3540*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x34, 0x84, 0x96, 0xA1, 0x43, 0x03, 0x4D),
3541*62c56f98SSadaf Ebrahimi };
3542*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_21_Y[] = {
3543*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x3B, 0x3B, 0x2F, 0xCA, 0x59, 0xF2, 0x42),
3544*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x48, 0x24, 0x74, 0xD8, 0x72, 0x90, 0xA3),
3545*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x42, 0x74, 0x8C, 0x6F, 0x52, 0x19, 0x3D),
3546*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x9E, 0x41, 0x63, 0x68, 0x78, 0x4C, 0x2F),
3547*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x94, 0xB6, 0x6B, 0x38, 0x52, 0xA8, 0x9F),
3548*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x30, 0x25, 0x93, 0xA1, 0x6F, 0x6E, 0x68),
3549*62c56f98SSadaf Ebrahimi };
3550*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_22_X[] = {
3551*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x2F, 0x4B, 0x64, 0x79, 0x50, 0xFF, 0x01),
3552*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x36, 0xED, 0x57, 0x39, 0x3B, 0xE7, 0xF3),
3553*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x85, 0xEA, 0x35, 0xD6, 0xC0, 0xA0, 0x52),
3554*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x89, 0x3A, 0xCC, 0x22, 0x1C, 0x46, 0x02),
3555*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x7A, 0xB0, 0xA1, 0x1B, 0x69, 0x62, 0x55),
3556*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xB8, 0x8A, 0x6C, 0x18, 0x85, 0x0D, 0x88),
3557*62c56f98SSadaf Ebrahimi };
3558*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_22_Y[] = {
3559*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xB6, 0x50, 0xE9, 0x4E, 0x7F, 0xE8, 0x07),
3560*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x5B, 0x5C, 0xD1, 0x4B, 0x11, 0x9A, 0xD8),
3561*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x25, 0x56, 0x74, 0x51, 0x9C, 0xEC, 0x9C),
3562*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x7F, 0xB6, 0x8A, 0xCB, 0x3A, 0x10, 0x6A),
3563*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x33, 0x07, 0x01, 0xE9, 0x49, 0x59, 0xE6),
3564*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xA5, 0x2E, 0xF2, 0xBA, 0x32, 0x63, 0x44),
3565*62c56f98SSadaf Ebrahimi };
3566*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_23_X[] = {
3567*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x06, 0x0B, 0xA5, 0x44, 0x27, 0x7F, 0x22),
3568*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x74, 0xAC, 0x0F, 0xCC, 0x4F, 0x13, 0x61),
3569*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xB1, 0xBF, 0x97, 0x49, 0xA5, 0x1C, 0x1D),
3570*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x64, 0x68, 0x7B, 0x0F, 0xCC, 0x77, 0xF8),
3571*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x39, 0xF9, 0x4E, 0x84, 0x9C, 0xF6, 0x96),
3572*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xCF, 0x6D, 0xE2, 0xA1, 0x2D, 0xF9, 0x2B),
3573*62c56f98SSadaf Ebrahimi };
3574*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_23_Y[] = {
3575*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xC4, 0x90, 0x57, 0x31, 0x01, 0x05, 0x5E),
3576*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x1E, 0xBB, 0xBF, 0x98, 0xA4, 0x7C, 0xE3),
3577*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xE3, 0xA0, 0xB2, 0xCD, 0x39, 0x9A, 0x3F),
3578*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x34, 0x60, 0x7A, 0x89, 0x98, 0xB5, 0x52),
3579*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0x20, 0x3D, 0x3A, 0x04, 0x8F, 0x5A, 0xAC),
3580*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x26, 0xB6, 0x49, 0x09, 0x9C, 0x0F, 0x59),
3581*62c56f98SSadaf Ebrahimi };
3582*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_24_X[] = {
3583*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x66, 0xD2, 0x38, 0x2A, 0x62, 0x81, 0xCA),
3584*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xC8, 0x20, 0x5E, 0x28, 0xA3, 0x81, 0xA7),
3585*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x31, 0xA4, 0xF1, 0xEA, 0x7D, 0x87, 0x45),
3586*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x2C, 0x99, 0x09, 0x6F, 0x63, 0xEB, 0x2F),
3587*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x76, 0xDA, 0x1A, 0x06, 0xBE, 0xDE, 0xA2),
3588*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x09, 0x2E, 0x75, 0x39, 0x30, 0x2D, 0x42),
3589*62c56f98SSadaf Ebrahimi };
3590*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_24_Y[] = {
3591*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x9B, 0xC1, 0x5A, 0x17, 0xC3, 0x8C, 0x31),
3592*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x8D, 0x94, 0x4D, 0x3D, 0xAB, 0x60, 0xD4),
3593*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFD, 0x1E, 0x0F, 0x43, 0xAE, 0x9D, 0x62),
3594*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0xF2, 0xF3, 0x20, 0x1B, 0xAA, 0xB7, 0x41),
3595*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x5B, 0xA4, 0xF4, 0x90, 0x3B, 0xE3, 0x71),
3596*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x78, 0x72, 0xBD, 0x65, 0x09, 0x0B, 0x01),
3597*62c56f98SSadaf Ebrahimi };
3598*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_25_X[] = {
3599*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x37, 0x2A, 0x6C, 0x16, 0x4F, 0x64, 0x59),
3600*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xCE, 0xA3, 0x90, 0xB4, 0x9A, 0xBC, 0xF7),
3601*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x38, 0x55, 0x63, 0x1D, 0x3A, 0x6E, 0x18),
3602*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xB4, 0xAA, 0x99, 0x22, 0x45, 0x89, 0x2C),
3603*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x7C, 0x8C, 0xA6, 0x3D, 0xA7, 0x3E, 0xE8),
3604*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x06, 0x42, 0xDC, 0xA6, 0xE3, 0xC6, 0x12),
3605*62c56f98SSadaf Ebrahimi };
3606*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_25_Y[] = {
3607*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x8C, 0x3D, 0x5D, 0x47, 0x31, 0x7C, 0xEB),
3608*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x85, 0xEE, 0x46, 0x7E, 0x13, 0x04, 0x41),
3609*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x3C, 0x8B, 0x43, 0x2E, 0x74, 0xF5, 0xF6),
3610*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x88, 0x8E, 0x07, 0x29, 0x08, 0x03, 0x26),
3611*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x9B, 0x89, 0xEB, 0x08, 0xE8, 0x43, 0xB5),
3612*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x07, 0x67, 0xFD, 0xD9, 0x73, 0x6F, 0x18),
3613*62c56f98SSadaf Ebrahimi };
3614*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_26_X[] = {
3615*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xEB, 0x21, 0x8D, 0x98, 0x43, 0x74, 0x98),
3616*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xCC, 0x14, 0xD8, 0x08, 0xBB, 0xA6, 0xE3),
3617*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x98, 0xF2, 0x6A, 0x18, 0xC3, 0xDD, 0x9E),
3618*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x38, 0x91, 0xA0, 0x03, 0xF2, 0x04, 0x62),
3619*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xAF, 0xE8, 0xFD, 0xFB, 0x13, 0x70, 0x74),
3620*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x93, 0x87, 0x98, 0x4A, 0xE0, 0x00, 0x12),
3621*62c56f98SSadaf Ebrahimi };
3622*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_26_Y[] = {
3623*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x2E, 0x69, 0x9C, 0xA2, 0x2D, 0x03, 0x3F),
3624*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xFE, 0xF3, 0xB9, 0xC1, 0x85, 0x2A, 0xEE),
3625*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xFD, 0x86, 0xB1, 0xCD, 0xBF, 0x41, 0xB7),
3626*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xD8, 0x9A, 0x21, 0xF3, 0xFE, 0xCB, 0xF1),
3627*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x78, 0x04, 0x60, 0xB7, 0xA9, 0xA2, 0x84),
3628*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1E, 0x66, 0x2A, 0x54, 0x51, 0xBD, 0x8B),
3629*62c56f98SSadaf Ebrahimi };
3630*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_27_X[] = {
3631*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x16, 0x36, 0xEF, 0x61, 0x2D, 0xEE, 0x3B),
3632*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x5F, 0x88, 0xA0, 0x13, 0x12, 0xF7, 0x23),
3633*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xC6, 0xAD, 0x4A, 0x4A, 0x07, 0x01, 0x5B),
3634*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x74, 0xB1, 0x4F, 0xEB, 0xBD, 0xD5, 0x6B),
3635*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xF9, 0x71, 0xA2, 0x06, 0x4F, 0xD7, 0xBC),
3636*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x8B, 0x4D, 0x48, 0xE0, 0x98, 0xFB, 0x6A),
3637*62c56f98SSadaf Ebrahimi };
3638*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_27_Y[] = {
3639*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0xBA, 0x10, 0xA3, 0x0D, 0x52, 0xAC, 0x3A),
3640*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xD0, 0xE0, 0x36, 0xE6, 0x07, 0x3A, 0x30),
3641*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x80, 0xF0, 0xAA, 0x49, 0x22, 0x4B, 0xDD),
3642*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xC7, 0xAB, 0x1C, 0x89, 0xCD, 0x24, 0x40),
3643*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x2A, 0xFC, 0xB3, 0x6D, 0x45, 0x96, 0x49),
3644*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xE4, 0xDB, 0x52, 0x3F, 0xC4, 0xB4, 0x19),
3645*62c56f98SSadaf Ebrahimi };
3646*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_28_X[] = {
3647*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xCC, 0xC8, 0x7F, 0xBB, 0x6B, 0x87, 0x47),
3648*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x21, 0x3C, 0x69, 0x7D, 0x38, 0x57, 0x50),
3649*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x4C, 0x18, 0x3C, 0x53, 0xA5, 0x48, 0x6D),
3650*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xC3, 0x64, 0x45, 0xDB, 0xC4, 0x6D, 0x15),
3651*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xCC, 0xD1, 0xBB, 0x17, 0xB8, 0x34, 0x2D),
3652*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x69, 0x71, 0xFA, 0xA0, 0x28, 0x4A, 0x3D),
3653*62c56f98SSadaf Ebrahimi };
3654*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_28_Y[] = {
3655*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xE8, 0x9E, 0x39, 0xEA, 0x8D, 0x38, 0xDB),
3656*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x9C, 0xBB, 0xCD, 0x80, 0x1A, 0xEE, 0xB7),
3657*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA0, 0x45, 0xBF, 0xD9, 0x22, 0x11, 0x32),
3658*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x7C, 0x5C, 0xD9, 0xC0, 0x9F, 0x69, 0xF5),
3659*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x8A, 0xA6, 0x79, 0x4E, 0x35, 0xB9, 0xD5),
3660*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x8B, 0x9A, 0x3E, 0xA1, 0xB8, 0x28, 0x10),
3661*62c56f98SSadaf Ebrahimi };
3662*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_29_X[] = {
3663*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x2F, 0xEF, 0xBB, 0xA9, 0x72, 0x7F, 0xEA),
3664*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x34, 0xB7, 0x12, 0xB9, 0xE7, 0xC3, 0x2A),
3665*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x1D, 0xD9, 0x42, 0x77, 0x0C, 0x71, 0x6E),
3666*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x01, 0x59, 0xA7, 0x56, 0x03, 0x91, 0x8D),
3667*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x91, 0x99, 0x33, 0x30, 0x3E, 0xEF, 0x13),
3668*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xC9, 0x5A, 0x9A, 0x54, 0x66, 0xF1, 0x70),
3669*62c56f98SSadaf Ebrahimi };
3670*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_29_Y[] = {
3671*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x2C, 0xB7, 0x6E, 0x71, 0x7D, 0x35, 0x30),
3672*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x0D, 0xEF, 0xD1, 0x2D, 0x99, 0x63, 0x2F),
3673*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x31, 0xAF, 0x2D, 0xC9, 0xC6, 0xC2, 0xAE),
3674*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xC0, 0xDF, 0x80, 0x54, 0xC4, 0xAC, 0xF3),
3675*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x6B, 0xA0, 0x84, 0x96, 0xF7, 0x31, 0xC8),
3676*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0xE2, 0x7C, 0x7A, 0x41, 0x45, 0x75, 0x6A),
3677*62c56f98SSadaf Ebrahimi };
3678*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_30_X[] = {
3679*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xEE, 0x58, 0x31, 0xE8, 0x68, 0xD6, 0x76),
3680*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x2E, 0x48, 0xB7, 0x09, 0x9F, 0xD4, 0xCA),
3681*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xA9, 0x5C, 0xE7, 0x64, 0x43, 0x5D, 0xC9),
3682*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x58, 0x9F, 0x50, 0xAB, 0x68, 0xFF, 0x6D),
3683*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x88, 0x2D, 0xBA, 0x12, 0xBF, 0x8D, 0x7D),
3684*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xDF, 0x6F, 0xB3, 0x75, 0xA4, 0x55, 0x73),
3685*62c56f98SSadaf Ebrahimi };
3686*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_30_Y[] = {
3687*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x17, 0x92, 0x39, 0xB7, 0x13, 0x37, 0x6F),
3688*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x43, 0x71, 0xA7, 0xCA, 0x17, 0x1B, 0x32),
3689*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xB9, 0xB0, 0x78, 0xEF, 0xA0, 0xDA, 0x83),
3690*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x84, 0xF2, 0x0F, 0x85, 0xA2, 0xB6, 0x1F),
3691*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x65, 0x2E, 0x6E, 0x45, 0xB9, 0x4C, 0x3C),
3692*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x6A, 0x8C, 0x2B, 0x77, 0x96, 0x36, 0x22),
3693*62c56f98SSadaf Ebrahimi };
3694*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_31_X[] = {
3695*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x7A, 0x13, 0x4A, 0x97, 0x63, 0x02, 0x10),
3696*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x1E, 0x06, 0x03, 0x8F, 0xB9, 0xEE, 0x64),
3697*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0xEE, 0x8B, 0x89, 0xA9, 0x70, 0xDB, 0xCE),
3698*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x7B, 0x81, 0xC9, 0x70, 0x8D, 0x62, 0x32),
3699*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xDA, 0x46, 0xF8, 0xF9, 0x3A, 0xBE, 0x55),
3700*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x9C, 0x7A, 0x97, 0x62, 0xEB, 0xFA, 0x0F),
3701*62c56f98SSadaf Ebrahimi };
3702*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP384r1_T_31_Y[] = {
3703*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x03, 0x3D, 0x3C, 0x46, 0x27, 0x9E, 0x65),
3704*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x08, 0x1C, 0xD5, 0x25, 0xAF, 0xE9, 0x40),
3705*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x69, 0xDC, 0x59, 0xF4, 0x8A, 0x7C, 0x1F),
3706*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x9A, 0x7A, 0x99, 0x21, 0x0C, 0x4E, 0xE3),
3707*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xCE, 0x85, 0x5F, 0xAC, 0xAA, 0x82, 0x10),
3708*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x57, 0x69, 0x90, 0x76, 0xF3, 0x53, 0x3F),
3709*62c56f98SSadaf Ebrahimi };
3710*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point brainpoolP384r1_T[32] = {
3711*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(brainpoolP384r1_T_0_X, brainpoolP384r1_T_0_Y),
3712*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_1_X, brainpoolP384r1_T_1_Y),
3713*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_2_X, brainpoolP384r1_T_2_Y),
3714*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_3_X, brainpoolP384r1_T_3_Y),
3715*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_4_X, brainpoolP384r1_T_4_Y),
3716*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_5_X, brainpoolP384r1_T_5_Y),
3717*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_6_X, brainpoolP384r1_T_6_Y),
3718*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_7_X, brainpoolP384r1_T_7_Y),
3719*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_8_X, brainpoolP384r1_T_8_Y),
3720*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_9_X, brainpoolP384r1_T_9_Y),
3721*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_10_X, brainpoolP384r1_T_10_Y),
3722*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_11_X, brainpoolP384r1_T_11_Y),
3723*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_12_X, brainpoolP384r1_T_12_Y),
3724*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_13_X, brainpoolP384r1_T_13_Y),
3725*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_14_X, brainpoolP384r1_T_14_Y),
3726*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_15_X, brainpoolP384r1_T_15_Y),
3727*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_16_X, brainpoolP384r1_T_16_Y),
3728*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_17_X, brainpoolP384r1_T_17_Y),
3729*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_18_X, brainpoolP384r1_T_18_Y),
3730*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_19_X, brainpoolP384r1_T_19_Y),
3731*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_20_X, brainpoolP384r1_T_20_Y),
3732*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_21_X, brainpoolP384r1_T_21_Y),
3733*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_22_X, brainpoolP384r1_T_22_Y),
3734*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_23_X, brainpoolP384r1_T_23_Y),
3735*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_24_X, brainpoolP384r1_T_24_Y),
3736*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_25_X, brainpoolP384r1_T_25_Y),
3737*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_26_X, brainpoolP384r1_T_26_Y),
3738*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_27_X, brainpoolP384r1_T_27_Y),
3739*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_28_X, brainpoolP384r1_T_28_Y),
3740*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_29_X, brainpoolP384r1_T_29_Y),
3741*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_30_X, brainpoolP384r1_T_30_Y),
3742*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_31_X, brainpoolP384r1_T_31_Y),
3743*62c56f98SSadaf Ebrahimi };
3744*62c56f98SSadaf Ebrahimi #else
3745*62c56f98SSadaf Ebrahimi #define brainpoolP384r1_T NULL
3746*62c56f98SSadaf Ebrahimi #endif
3747*62c56f98SSadaf Ebrahimi 
3748*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
3749*62c56f98SSadaf Ebrahimi 
3750*62c56f98SSadaf Ebrahimi /*
3751*62c56f98SSadaf Ebrahimi  * Domain parameters for brainpoolP512r1 (RFC 5639 3.7)
3752*62c56f98SSadaf Ebrahimi  */
3753*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
3754*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_p[] = {
3755*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x48, 0x3A, 0x58, 0x56, 0x60, 0xAA, 0x28),
3756*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xC6, 0x82, 0x2D, 0x2F, 0xFF, 0x81, 0x28),
3757*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x80, 0xA3, 0xE6, 0x2A, 0xA1, 0xCD, 0xAE),
3758*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x68, 0xC6, 0x9B, 0x00, 0x9B, 0x4D, 0x7D),
3759*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6),
3760*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB),
3761*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F),
3762*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA),
3763*62c56f98SSadaf Ebrahimi };
3764*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_a[] = {
3765*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x94, 0xFC, 0x77, 0x4D, 0xAC, 0xC1, 0xE7),
3766*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xC7, 0xF2, 0x2B, 0xA7, 0x17, 0x11, 0x7F),
3767*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0xC8, 0x9A, 0x8B, 0xC9, 0xF1, 0x2E, 0x0A),
3768*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x3A, 0x25, 0xA8, 0x5A, 0x5D, 0xED, 0x2D),
3769*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x63, 0x98, 0xEA, 0xCA, 0x41, 0x34, 0xA8),
3770*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x16, 0xF9, 0x3D, 0x8D, 0xDD, 0xCB, 0x94),
3771*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x4C, 0x23, 0xAC, 0x45, 0x71, 0x32, 0xE2),
3772*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x3B, 0x60, 0x8B, 0x31, 0xA3, 0x30, 0x78),
3773*62c56f98SSadaf Ebrahimi };
3774*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_b[] = {
3775*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0xF7, 0x16, 0x80, 0x63, 0xBD, 0x09, 0x28),
3776*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xE5, 0xBA, 0x5E, 0xB7, 0x50, 0x40, 0x98),
3777*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x3E, 0x08, 0xDC, 0xCA, 0x94, 0xFC, 0x77),
3778*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xAC, 0xC1, 0xE7, 0xB9, 0xC7, 0xF2, 0x2B),
3779*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x17, 0x11, 0x7F, 0xB5, 0xC8, 0x9A, 0x8B),
3780*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xF1, 0x2E, 0x0A, 0xA1, 0x3A, 0x25, 0xA8),
3781*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x5D, 0xED, 0x2D, 0xBC, 0x63, 0x98, 0xEA),
3782*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x41, 0x34, 0xA8, 0x10, 0x16, 0xF9, 0x3D),
3783*62c56f98SSadaf Ebrahimi };
3784*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_gx[] = {
3785*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B),
3786*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C),
3787*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50),
3788*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF),
3789*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4),
3790*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85),
3791*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A),
3792*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81),
3793*62c56f98SSadaf Ebrahimi };
3794*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_gy[] = {
3795*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78),
3796*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1),
3797*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B),
3798*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2),
3799*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0),
3800*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2),
3801*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0),
3802*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D),
3803*62c56f98SSadaf Ebrahimi };
3804*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_n[] = {
3805*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x00, 0xA9, 0x9C, 0x82, 0x96, 0x87, 0xB5),
3806*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xDA, 0x5D, 0x08, 0x81, 0xD3, 0xB1, 0x1D),
3807*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x10, 0xAC, 0x7F, 0x19, 0x61, 0x86, 0x41),
3808*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x26, 0xA9, 0x4C, 0x41, 0x5C, 0x3E, 0x55),
3809*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6),
3810*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB),
3811*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F),
3812*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA),
3813*62c56f98SSadaf Ebrahimi };
3814*62c56f98SSadaf Ebrahimi 
3815*62c56f98SSadaf Ebrahimi #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
3816*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_0_X[] = {
3817*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B),
3818*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C),
3819*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50),
3820*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF),
3821*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4),
3822*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85),
3823*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A),
3824*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81),
3825*62c56f98SSadaf Ebrahimi };
3826*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_0_Y[] = {
3827*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78),
3828*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1),
3829*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B),
3830*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2),
3831*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0),
3832*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2),
3833*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0),
3834*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D),
3835*62c56f98SSadaf Ebrahimi };
3836*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_1_X[] = {
3837*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xE9, 0x6B, 0x8C, 0x6F, 0x9D, 0x88, 0x43),
3838*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x4F, 0x86, 0x96, 0xA7, 0x56, 0xD1, 0x37),
3839*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xAB, 0xFA, 0xEE, 0xA7, 0xF5, 0x0E, 0xA6),
3840*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x40, 0xEF, 0x9E, 0x6D, 0xD6, 0x32, 0x33),
3841*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xED, 0x56, 0x14, 0x57, 0x1A, 0x8D, 0x69),
3842*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xED, 0x4D, 0x3A, 0xFA, 0x71, 0x75, 0x6B),
3843*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xC5, 0x76, 0x1C, 0x14, 0xBE, 0xB5, 0xCD),
3844*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x5A, 0xCB, 0xE7, 0x36, 0x1D, 0x52, 0x1C),
3845*62c56f98SSadaf Ebrahimi };
3846*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_1_Y[] = {
3847*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x8D, 0x7A, 0xEB, 0xA3, 0x8B, 0xD5, 0xB0),
3848*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xA3, 0x41, 0xF8, 0xAC, 0x9E, 0xAB, 0x74),
3849*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xE3, 0x65, 0x0D, 0x1C, 0xFE, 0x09, 0x2B),
3850*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xCA, 0x13, 0x3F, 0xC5, 0xF9, 0x7E, 0xEC),
3851*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x5D, 0x63, 0x28, 0xA6, 0x89, 0xD3, 0x91),
3852*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x95, 0x3F, 0x7A, 0x82, 0xD4, 0x77, 0xE3),
3853*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xBB, 0x92, 0x32, 0x00, 0xF4, 0x66, 0x42),
3854*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x58, 0x31, 0xD1, 0x17, 0x9F, 0x2A, 0x22),
3855*62c56f98SSadaf Ebrahimi };
3856*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_2_X[] = {
3857*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x36, 0xA9, 0xCD, 0x80, 0xA5, 0x2D, 0x78),
3858*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x44, 0xAB, 0xCE, 0x71, 0xFF, 0x0C, 0x9B),
3859*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x24, 0x58, 0x35, 0x5A, 0x21, 0x32, 0x93),
3860*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xA6, 0x28, 0xF8, 0x7A, 0x97, 0xAE, 0x8B),
3861*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xE7, 0x08, 0xFA, 0x47, 0xC9, 0x55, 0x09),
3862*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xAC, 0x2E, 0x84, 0xA4, 0xF5, 0x52, 0xC4),
3863*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x58, 0x05, 0x9D, 0xA7, 0xC8, 0x71, 0xBF),
3864*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x92, 0xB4, 0x92, 0xC1, 0x92, 0xEC, 0x6B),
3865*62c56f98SSadaf Ebrahimi };
3866*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_2_Y[] = {
3867*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x48, 0x2D, 0x79, 0x5E, 0x58, 0xE5, 0x69),
3868*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x85, 0x26, 0xEC, 0xE9, 0x6E, 0xD4, 0x06),
3869*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x68, 0x26, 0x87, 0x38, 0xA2, 0xD2, 0x0B),
3870*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x17, 0x60, 0xCE, 0x75, 0xF8, 0xA5, 0x6F),
3871*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x51, 0xDB, 0xA9, 0xAE, 0x87, 0xF1, 0x15),
3872*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x49, 0x92, 0x3B, 0x19, 0x96, 0xF5, 0xB0),
3873*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0xD5, 0x52, 0x52, 0x8C, 0xCE, 0xFD, 0xFA),
3874*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x18, 0x0A, 0xE6, 0xF6, 0xAE, 0x08, 0x41),
3875*62c56f98SSadaf Ebrahimi };
3876*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_3_X[] = {
3877*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x2B, 0xD8, 0x54, 0xCE, 0xB0, 0x57, 0xFE),
3878*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xB0, 0xF8, 0x9E, 0x03, 0x03, 0x3C, 0x5D),
3879*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x0E, 0x29, 0x29, 0x00, 0xF3, 0x70, 0xBF),
3880*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x33, 0x99, 0x0E, 0x00, 0x5D, 0xFE, 0x4B),
3881*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2D, 0xF2, 0x59, 0x32, 0xCF, 0x03, 0xF4),
3882*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0xC9, 0x72, 0xAE, 0x0C, 0xEF, 0xD1, 0x5B),
3883*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x5A, 0x27, 0xBF, 0x2F, 0x45, 0xF9, 0x51),
3884*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xBE, 0xE5, 0x2C, 0xFF, 0x5B, 0x1E, 0x88),
3885*62c56f98SSadaf Ebrahimi };
3886*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_3_Y[] = {
3887*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xAC, 0xBB, 0xD8, 0x83, 0xC2, 0x46, 0xF6),
3888*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xDC, 0xCE, 0x15, 0xB4, 0xEF, 0xCF, 0x46),
3889*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xDB, 0x5E, 0x94, 0x31, 0x0B, 0xB2, 0x7A),
3890*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xB9, 0xE3, 0xE3, 0x11, 0x71, 0x41, 0x1E),
3891*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xE3, 0x01, 0xB7, 0x7D, 0xBC, 0x65, 0xBE),
3892*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x07, 0x65, 0x87, 0xA7, 0xE8, 0x48, 0xE3),
3893*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x48, 0x8F, 0xD4, 0x30, 0x8E, 0xB4, 0x6C),
3894*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xE0, 0x73, 0xBE, 0x1E, 0xBF, 0x56, 0x36),
3895*62c56f98SSadaf Ebrahimi };
3896*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_4_X[] = {
3897*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x0E, 0x5E, 0x87, 0xC5, 0xAB, 0x0E, 0x3C),
3898*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xF9, 0x5F, 0x80, 0x24, 0x4C, 0x2A, 0xF1),
3899*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x15, 0x21, 0x54, 0x92, 0x84, 0x8D, 0x6A),
3900*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x8A, 0x47, 0x74, 0xDC, 0x42, 0xB1, 0xF8),
3901*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xF7, 0x30, 0xFD, 0xC1, 0x9B, 0x0C, 0x5B),
3902*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x6C, 0xCC, 0xDF, 0xC5, 0xE3, 0xA9, 0xD5),
3903*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x67, 0x59, 0x10, 0x5C, 0x51, 0x54, 0x40),
3904*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x37, 0xFB, 0x6E, 0xB0, 0x78, 0x63, 0x8E),
3905*62c56f98SSadaf Ebrahimi };
3906*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_4_Y[] = {
3907*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xEF, 0xC4, 0x39, 0x20, 0xF1, 0x46, 0x66),
3908*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x62, 0xAE, 0xFF, 0x10, 0xE4, 0xE2, 0xE9),
3909*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x5C, 0xF5, 0x2E, 0x22, 0x89, 0xE5, 0x82),
3910*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x0C, 0x29, 0xA8, 0x62, 0xAE, 0xDB, 0x65),
3911*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x9E, 0x0F, 0xCA, 0x87, 0x2A, 0x6F, 0x7B),
3912*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xDC, 0x9B, 0x9F, 0x65, 0xD4, 0xAD, 0x27),
3913*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xC3, 0x08, 0x0F, 0xCF, 0x67, 0xE9, 0xF4),
3914*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x5C, 0xD7, 0xFF, 0x41, 0x9C, 0xCB, 0x26),
3915*62c56f98SSadaf Ebrahimi };
3916*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_5_X[] = {
3917*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x25, 0x05, 0x12, 0xAD, 0x73, 0x63, 0x90),
3918*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x99, 0x07, 0x86, 0x57, 0xE7, 0x94, 0xB1),
3919*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x4B, 0xA5, 0xBF, 0x18, 0xA9, 0xEF, 0x6A),
3920*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x4C, 0xC4, 0x09, 0xF2, 0x2F, 0x0C, 0xAA),
3921*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x3A, 0x04, 0xEA, 0x89, 0x6C, 0x91, 0xB9),
3922*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0x3A, 0xE7, 0xA3, 0xEC, 0x24, 0x7B),
3923*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xA1, 0x26, 0x21, 0x04, 0xE3, 0xB9, 0x40),
3924*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x71, 0x4B, 0x7B, 0xC2, 0x89, 0xCD, 0xA2),
3925*62c56f98SSadaf Ebrahimi };
3926*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_5_Y[] = {
3927*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xB9, 0xA8, 0x9D, 0xFD, 0x00, 0x3A, 0x1F),
3928*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x41, 0x6C, 0xBB, 0x5A, 0xCA, 0x1F, 0x74),
3929*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xD7, 0xE2, 0x6C, 0x6B, 0xA7, 0x48, 0xC9),
3930*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x19, 0xAD, 0xA7, 0xC1, 0x7E, 0x4F, 0x6E),
3931*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xF7, 0x19, 0x3C, 0x06, 0x74, 0x2C, 0x3A),
3932*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x23, 0x4F, 0x0C, 0x09, 0xB0, 0x80, 0x4A),
3933*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x74, 0x34, 0x08, 0x44, 0x7E, 0xA3, 0xDD),
3934*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xCC, 0x8D, 0x12, 0x6E, 0xE1, 0x3D, 0x0B),
3935*62c56f98SSadaf Ebrahimi };
3936*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_6_X[] = {
3937*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x18, 0xB1, 0x71, 0x02, 0x93, 0xC2, 0xA4),
3938*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x89, 0x40, 0xE2, 0x1F, 0xE7, 0x5E, 0x68),
3939*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x8E, 0xAE, 0x89, 0x01, 0xD4, 0x0C, 0xEB),
3940*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xDA, 0x58, 0x70, 0x24, 0xF2, 0xE4, 0x5F),
3941*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0xC7, 0x1D, 0xD6, 0x4A, 0x6F, 0x66, 0x4F),
3942*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x1D, 0x7E, 0x4A, 0x2C, 0xCA, 0xEC, 0x3B),
3943*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x06, 0x7F, 0xA8, 0x99, 0xE4, 0xD3, 0x4E),
3944*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x1D, 0x5A, 0xDF, 0x5E, 0x58, 0x36, 0x49),
3945*62c56f98SSadaf Ebrahimi };
3946*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_6_Y[] = {
3947*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xB9, 0x32, 0x69, 0x1F, 0x72, 0x2A, 0xB3),
3948*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x73, 0xE2, 0x03, 0x39, 0x35, 0xAA, 0xA8),
3949*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x5E, 0x5D, 0x48, 0xEF, 0xAE, 0x30, 0xF5),
3950*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x7F, 0x60, 0x19, 0xAF, 0xEC, 0x9D, 0xFC),
3951*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xD9, 0x19, 0xE4, 0x1B, 0x56, 0x15, 0x5F),
3952*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xD7, 0x33, 0x59, 0x1F, 0x43, 0x59, 0x2C),
3953*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xCE, 0xEE, 0xCA, 0xA4, 0x7F, 0x63, 0xD4),
3954*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x40, 0xC0, 0xF6, 0x19, 0x89, 0x43, 0x20),
3955*62c56f98SSadaf Ebrahimi };
3956*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_7_X[] = {
3957*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x92, 0xEA, 0x07, 0x65, 0x79, 0x86, 0xD3),
3958*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xB7, 0x13, 0x75, 0xD3, 0xC5, 0x0A, 0xC9),
3959*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x9E, 0xFA, 0xE1, 0x1F, 0x0C, 0xF9, 0x74),
3960*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x8C, 0xED, 0x5C, 0x21, 0xE9, 0x09, 0xDD),
3961*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x4D, 0xD8, 0x18, 0xC4, 0xF6, 0x36, 0x39),
3962*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xC9, 0xAC, 0x5C, 0xFA, 0x69, 0xA4, 0xA0),
3963*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x8C, 0x94, 0x1C, 0x7B, 0x71, 0x36, 0x58),
3964*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xBD, 0x46, 0xCE, 0xB7, 0x1D, 0x9C, 0x5E),
3965*62c56f98SSadaf Ebrahimi };
3966*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_7_Y[] = {
3967*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD6, 0x96, 0x4B, 0xA6, 0x47, 0xEB, 0xE5),
3968*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0xF1, 0x5F, 0x15, 0xDE, 0x99, 0x6F, 0x66),
3969*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xBD, 0xE5, 0x04, 0xB8, 0xE6, 0xC0, 0x0B),
3970*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xD3, 0xF0, 0x04, 0x00, 0xE4, 0x05, 0xDB),
3971*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xF3, 0x06, 0xA3, 0x1A, 0xFF, 0xEA, 0x73),
3972*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x32, 0xAA, 0x99, 0x33, 0x09, 0xB6, 0x34),
3973*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xEF, 0xFC, 0x61, 0x10, 0x42, 0x31, 0x94),
3974*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF1, 0xF4, 0x33, 0xCF, 0x28, 0x90, 0x9C),
3975*62c56f98SSadaf Ebrahimi };
3976*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_8_X[] = {
3977*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xDE, 0xF9, 0x88, 0x87, 0x7B, 0xEB, 0xC9),
3978*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xB8, 0xDA, 0xFA, 0xDA, 0x3D, 0xA6, 0x17),
3979*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xF0, 0x62, 0x82, 0x53, 0x32, 0x55, 0x03),
3980*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xA5, 0x32, 0x4A, 0x19, 0x11, 0x9C, 0x10),
3981*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xB3, 0x27, 0xE9, 0x75, 0x90, 0x05, 0x2D),
3982*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x1C, 0x90, 0x48, 0x77, 0x01, 0x85, 0x1B),
3983*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xD6, 0x9B, 0x84, 0xA8, 0xD7, 0xC5, 0x28),
3984*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x7A, 0xCB, 0xB3, 0x11, 0x46, 0xD7, 0x99),
3985*62c56f98SSadaf Ebrahimi };
3986*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_8_Y[] = {
3987*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x23, 0xBF, 0x75, 0x75, 0xA1, 0x95, 0x90),
3988*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x66, 0x5D, 0x34, 0x13, 0xA9, 0x03, 0xBE),
3989*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x80, 0x9D, 0x5F, 0xD2, 0x44, 0xE1, 0x62),
3990*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x5D, 0xBD, 0xA8, 0xBF, 0xB4, 0x25, 0x1F),
3991*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x99, 0x1F, 0x53, 0xF1, 0x57, 0xDB, 0xE7),
3992*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x7C, 0xE5, 0xC5, 0x51, 0x0B, 0x4C, 0x9B),
3993*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0xB0, 0x1A, 0x9C, 0x16, 0xB0, 0x32, 0x1F),
3994*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xE3, 0xCF, 0xDD, 0x48, 0xB4, 0x7B, 0x33),
3995*62c56f98SSadaf Ebrahimi };
3996*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_9_X[] = {
3997*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xDD, 0x9E, 0x3C, 0x98, 0x0E, 0x77, 0x65),
3998*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xAB, 0x01, 0xD3, 0x87, 0x74, 0x25, 0x4A),
3999*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xA3, 0xE3, 0x76, 0x43, 0x87, 0x12, 0xBD),
4000*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0xB1, 0x3B, 0x60, 0x66, 0xEB, 0x98, 0x54),
4001*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x78, 0xC8, 0xD7, 0x4E, 0x75, 0xCA, 0x69),
4002*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xDF, 0x71, 0x19, 0xE7, 0x07, 0x36, 0xB5),
4003*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xC9, 0xA8, 0x5F, 0x91, 0xBF, 0x47, 0xB2),
4004*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x96, 0x58, 0x96, 0x18, 0xB6, 0xFA, 0x01),
4005*62c56f98SSadaf Ebrahimi };
4006*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_9_Y[] = {
4007*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x2D, 0xA9, 0x9B, 0x86, 0xDB, 0x0C, 0x4C),
4008*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x0B, 0x2D, 0x56, 0x4A, 0xD3, 0x93, 0x8A),
4009*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x15, 0xE2, 0x65, 0x12, 0x86, 0x0E, 0xB2),
4010*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x41, 0x4D, 0xC1, 0xCB, 0xE4, 0xC3, 0xD7),
4011*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x53, 0x10, 0xCA, 0xA3, 0xAC, 0x83, 0x26),
4012*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x01, 0x22, 0x96, 0x10, 0xAD, 0x69, 0xDB),
4013*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x46, 0x4E, 0xD8, 0xEA, 0xD6, 0x9D, 0xF3),
4014*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x2F, 0x7F, 0x62, 0x62, 0x80, 0xD0, 0x14),
4015*62c56f98SSadaf Ebrahimi };
4016*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_10_X[] = {
4017*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xDA, 0x00, 0x63, 0x09, 0xBD, 0x6A, 0x83),
4018*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xD4, 0x6E, 0x48, 0x05, 0xB7, 0xF7, 0x17),
4019*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x4D, 0xD7, 0x00, 0x4A, 0x15, 0x27, 0x7A),
4020*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x15, 0xAA, 0x37, 0x27, 0x34, 0x18, 0x24),
4021*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x20, 0x2C, 0x84, 0x1B, 0x88, 0xBA, 0x05),
4022*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x09, 0xD6, 0x04, 0xA2, 0x60, 0x84, 0x72),
4023*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x04, 0x94, 0x08, 0xD4, 0xED, 0x47, 0xDB),
4024*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xF3, 0xE4, 0x3E, 0xB9, 0x5B, 0x35, 0x42),
4025*62c56f98SSadaf Ebrahimi };
4026*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_10_Y[] = {
4027*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0xD8, 0xB6, 0x80, 0xD6, 0xF1, 0x30, 0xDD),
4028*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x14, 0xA6, 0x85, 0xEE, 0xA7, 0xD8, 0x61),
4029*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x49, 0x2A, 0x1E, 0x7C, 0xE9, 0x2D, 0xEC),
4030*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x87, 0x56, 0x91, 0x03, 0x77, 0x4D, 0x55),
4031*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x52, 0xD4, 0xAA, 0xF7, 0xFA, 0xB0, 0xC5),
4032*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x5D, 0x11, 0x39, 0xB1, 0xE7, 0x76, 0xAD),
4033*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x13, 0xBC, 0x37, 0x5D, 0x74, 0xCD, 0xC2),
4034*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x48, 0x14, 0x23, 0x30, 0xF8, 0x46, 0x37),
4035*62c56f98SSadaf Ebrahimi };
4036*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_11_X[] = {
4037*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x27, 0xB0, 0xD9, 0xB2, 0x74, 0xB4, 0xC0),
4038*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xA6, 0xB9, 0x6F, 0x9F, 0x64, 0x36, 0x92),
4039*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x2B, 0x78, 0x40, 0x05, 0x2B, 0x7B, 0xA9),
4040*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x68, 0x3A, 0xB6, 0x4A, 0xE2, 0xDB, 0xB8),
4041*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x33, 0xD7, 0x34, 0x8B, 0x25, 0x45, 0xEF),
4042*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xCE, 0xA8, 0xC9, 0x01, 0xFB, 0x0E, 0x7B),
4043*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xF9, 0x51, 0x4C, 0x12, 0x9F, 0x60, 0xE4),
4044*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x85, 0xBD, 0x30, 0x37, 0x84, 0x39, 0x44),
4045*62c56f98SSadaf Ebrahimi };
4046*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_11_Y[] = {
4047*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x33, 0xAF, 0x2E, 0xB8, 0x2E, 0xCC, 0x3C),
4048*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xB1, 0x73, 0x59, 0x4E, 0x0C, 0x09, 0x4A),
4049*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x24, 0x89, 0x81, 0x12, 0xFF, 0xBB, 0x6E),
4050*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x37, 0x1A, 0x66, 0xEE, 0xED, 0xB6, 0x9B),
4051*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xBD, 0x04, 0x20, 0x5D, 0xFB, 0xBF, 0x95),
4052*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xF8, 0x34, 0xA3, 0xFF, 0x45, 0xDE, 0x92),
4053*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x18, 0x73, 0xF1, 0x32, 0x25, 0x58, 0xEB),
4054*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xC1, 0x14, 0xE3, 0x9E, 0x40, 0x0F, 0x12),
4055*62c56f98SSadaf Ebrahimi };
4056*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_12_X[] = {
4057*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0x9D, 0x9C, 0x00, 0xF7, 0x56, 0x19),
4058*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xBA, 0x87, 0xF9, 0x15, 0x0C, 0x66, 0x5D),
4059*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x1F, 0xC1, 0x28, 0xB0, 0x47, 0x0D, 0xF5),
4060*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xCA, 0x27, 0xEE, 0x4B, 0x23, 0x2B, 0x89),
4061*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0xB5, 0x68, 0xC8, 0x17, 0x5D, 0xC3, 0xAA),
4062*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x02, 0x08, 0xEE, 0x20, 0x9D, 0xEA, 0x64),
4063*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x14, 0x50, 0xD4, 0x7D, 0x5F, 0xCF, 0xA0),
4064*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xFA, 0xF8, 0xA7, 0xC6, 0xDC, 0x14, 0x8C),
4065*62c56f98SSadaf Ebrahimi };
4066*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_12_Y[] = {
4067*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xBD, 0x0A, 0x1A, 0x18, 0x98, 0xDC, 0xB0),
4068*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x63, 0x02, 0xB7, 0xD5, 0x5B, 0x5A, 0xC6),
4069*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB1, 0xD7, 0x4B, 0x15, 0x39, 0x61, 0x5D),
4070*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x32, 0xE1, 0x9E, 0x70, 0x1B, 0xCE, 0x51),
4071*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD8, 0x18, 0x83, 0x52, 0x9B, 0x6D, 0xA2),
4072*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x55, 0x56, 0x19, 0x34, 0xA4, 0xEA, 0xFC),
4073*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xA9, 0x55, 0x80, 0xE3, 0x15, 0x36, 0x8B),
4074*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x06, 0xC8, 0x1D, 0x17, 0x0D, 0xAD, 0x16),
4075*62c56f98SSadaf Ebrahimi };
4076*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_13_X[] = {
4077*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0xD6, 0xF0, 0xCC, 0xF3, 0x63, 0x53, 0xD2),
4078*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x5A, 0xDC, 0x46, 0xBD, 0x0D, 0xAD, 0x96),
4079*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x2F, 0x11, 0x60, 0x15, 0x51, 0x4A, 0xEA),
4080*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xE3, 0x93, 0x38, 0xD5, 0x83, 0xAA, 0x0D),
4081*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xA6, 0xCC, 0xB1, 0xFD, 0xBB, 0x1A, 0x0F),
4082*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x54, 0xC8, 0x54, 0x6F, 0x79, 0x1A, 0x59),
4083*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x4A, 0xDA, 0x28, 0x92, 0x97, 0x9D, 0x7F),
4084*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x4B, 0xDB, 0xC7, 0x52, 0xC5, 0x66, 0x34),
4085*62c56f98SSadaf Ebrahimi };
4086*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_13_Y[] = {
4087*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x7E, 0x92, 0x53, 0x30, 0x93, 0xFD, 0xFF),
4088*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x16, 0x6A, 0xB1, 0x91, 0x0A, 0xB4, 0x52),
4089*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x9D, 0x40, 0x3F, 0xE3, 0xF1, 0x01, 0x46),
4090*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x0E, 0xD8, 0xED, 0x11, 0x8E, 0x4C, 0xED),
4091*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x4A, 0x1B, 0x88, 0xDF, 0x8D, 0x29, 0xE7),
4092*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x23, 0x21, 0x11, 0xAB, 0x77, 0x81, 0x62),
4093*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xAF, 0x11, 0xFA, 0xBA, 0x40, 0x63, 0xE7),
4094*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x6F, 0x8D, 0x80, 0xDF, 0x67, 0xF5, 0x44),
4095*62c56f98SSadaf Ebrahimi };
4096*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_14_X[] = {
4097*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x8B, 0xB7, 0x08, 0xF4, 0xD7, 0x2D, 0xA8),
4098*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x2B, 0x30, 0x02, 0x45, 0x71, 0x08, 0x49),
4099*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x3A, 0xCA, 0x50, 0xF6, 0xC2, 0x19, 0x8C),
4100*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xB9, 0x9B, 0x3E, 0x73, 0x95, 0x1D, 0x49),
4101*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x60, 0x59, 0x48, 0xCB, 0xD8, 0xD6, 0xAA),
4102*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xB9, 0x6C, 0x89, 0xAB, 0x99, 0xA8, 0xF8),
4103*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xA1, 0x8B, 0x4E, 0x06, 0x19, 0xEC, 0x99),
4104*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x95, 0x04, 0xCF, 0xD5, 0x94, 0xB3, 0x02),
4105*62c56f98SSadaf Ebrahimi };
4106*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_14_Y[] = {
4107*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x35, 0x93, 0x7C, 0xB3, 0xB8, 0x9E, 0x1B),
4108*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x45, 0x5C, 0x7E, 0xBF, 0x75, 0x81, 0x0F),
4109*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xE8, 0x24, 0xDF, 0xEC, 0x2F, 0x7D, 0xB9),
4110*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x8B, 0xD5, 0x6A, 0x9B, 0xA0, 0xE0, 0x4F),
4111*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xE3, 0x27, 0x82, 0xDE, 0xDD, 0xCA, 0x4B),
4112*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x57, 0x56, 0x46, 0x05, 0x06, 0x01, 0x2E),
4113*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x35, 0xA7, 0x47, 0xE2, 0x6B, 0x2C, 0x4F),
4114*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x9D, 0x4C, 0xEC, 0x1F, 0x11, 0x75, 0x2B),
4115*62c56f98SSadaf Ebrahimi };
4116*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_15_X[] = {
4117*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xAA, 0x41, 0xC1, 0xE9, 0x0E, 0xE9, 0xAA),
4118*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xCF, 0x9C, 0x4B, 0xE8, 0xED, 0x0A, 0x49),
4119*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x73, 0xCA, 0x0C, 0x46, 0x0A, 0x9C, 0xE4),
4120*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xE1, 0x9E, 0xBC, 0xFE, 0x44, 0x63, 0x6D),
4121*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x43, 0x71, 0xEE, 0xF8, 0xC1, 0x8C, 0x5C),
4122*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x4B, 0xF0, 0x69, 0x25, 0xBD, 0x71, 0x1A),
4123*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x9A, 0xFE, 0x82, 0xE7, 0xC1, 0xC1, 0xEE),
4124*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x5A, 0x6E, 0x5E, 0x97, 0x6A, 0x35, 0x8D),
4125*62c56f98SSadaf Ebrahimi };
4126*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_15_Y[] = {
4127*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x18, 0x6C, 0x7E, 0xB8, 0x9E, 0x57, 0x32),
4128*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xB9, 0xC1, 0xD0, 0xFE, 0x78, 0xFB, 0x32),
4129*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x08, 0xAE, 0x46, 0x34, 0xEA, 0x7A, 0x7F),
4130*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1C, 0x56, 0xA9, 0x18, 0x37, 0xD4, 0x9E),
4131*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x63, 0xE9, 0x0A, 0xB6, 0x38, 0x3C, 0xC1),
4132*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x4F, 0xA4, 0x6E, 0x85, 0x31, 0x23, 0x52),
4133*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xAD, 0xC4, 0xC3, 0xB1, 0x4B, 0x1C, 0x82),
4134*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x56, 0x4A, 0x38, 0xB3, 0x6B, 0x6F, 0x2C),
4135*62c56f98SSadaf Ebrahimi };
4136*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_16_X[] = {
4137*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xC7, 0x19, 0xDE, 0x21, 0xED, 0x89, 0xD0),
4138*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xBE, 0xA6, 0xAE, 0xEB, 0x9D, 0xA7, 0x2A),
4139*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x0E, 0x13, 0x1E, 0x86, 0x57, 0xC3, 0x3B),
4140*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x4B, 0x30, 0x46, 0x52, 0xC1, 0xEC, 0x52),
4141*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xD5, 0x44, 0x31, 0x96, 0x3B, 0x26, 0x27),
4142*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x68, 0xA8, 0x67, 0x78, 0x39, 0xE8, 0x68),
4143*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x78, 0xB7, 0xDD, 0xF2, 0x58, 0xB6, 0x3D),
4144*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x3C, 0xB3, 0x26, 0xC4, 0x2C, 0x8C, 0xA5),
4145*62c56f98SSadaf Ebrahimi };
4146*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_16_Y[] = {
4147*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x24, 0xE5, 0x73, 0xEE, 0x9A, 0x02, 0xA9),
4148*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x6A, 0x65, 0x60, 0xF3, 0x62, 0xE3, 0xE9),
4149*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x07, 0x84, 0xE6, 0x3B, 0x46, 0x65, 0x9F),
4150*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x8F, 0x0C, 0xB0, 0xE1, 0x04, 0x82, 0x9D),
4151*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x13, 0xBF, 0x3D, 0xA0, 0x48, 0xA2, 0x74),
4152*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x26, 0x76, 0x74, 0xAB, 0x0B, 0x29, 0xE8),
4153*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x6E, 0x5F, 0x03, 0x34, 0x7C, 0x38, 0xCE),
4154*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x72, 0xF9, 0x3B, 0x3C, 0xA4, 0xBC, 0x7C),
4155*62c56f98SSadaf Ebrahimi };
4156*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_17_X[] = {
4157*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xCE, 0x18, 0x80, 0xB8, 0x24, 0x45, 0x81),
4158*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x09, 0x03, 0xB8, 0x06, 0x64, 0xF7, 0xEC),
4159*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x26, 0xB1, 0x10, 0x6D, 0x71, 0x12, 0x2E),
4160*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x12, 0xC6, 0x6E, 0x1E, 0x6A, 0xC3, 0x80),
4161*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xD3, 0x0A, 0xDE, 0xD8, 0x6B, 0x04, 0x5C),
4162*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x87, 0x5B, 0xAE, 0xDB, 0x3C, 0xC0, 0xC5),
4163*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0xF5, 0xF9, 0xC1, 0x9A, 0x89, 0xBB, 0x7E),
4164*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x69, 0x72, 0x8B, 0xAE, 0x32, 0x13, 0x11),
4165*62c56f98SSadaf Ebrahimi };
4166*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_17_Y[] = {
4167*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x16, 0x07, 0x50, 0xFA, 0x4C, 0xCF, 0xE8),
4168*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x50, 0x21, 0xE9, 0xDE, 0xEC, 0x7E, 0xDF),
4169*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x2F, 0xE8, 0x83, 0x30, 0x0B, 0x65, 0x0E),
4170*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x0B, 0x99, 0xAC, 0xC9, 0xBA, 0x6C, 0x2A),
4171*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x59, 0x5A, 0x0D, 0x7B, 0x9E, 0x08, 0xAD),
4172*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x91, 0xB2, 0xDC, 0x90, 0xCE, 0x67, 0xED),
4173*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x93, 0x60, 0x0C, 0xD7, 0x1F, 0x2F, 0x17),
4174*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x7F, 0x9D, 0x40, 0xF8, 0x78, 0x7A, 0x54),
4175*62c56f98SSadaf Ebrahimi };
4176*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_18_X[] = {
4177*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x22, 0x95, 0xE8, 0xEF, 0x31, 0x57, 0x35),
4178*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x88, 0x53, 0xFE, 0xAF, 0x7C, 0x47, 0x14),
4179*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xCE, 0xCC, 0x79, 0xE8, 0x9F, 0x8C, 0xC4),
4180*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x16, 0xDD, 0x77, 0x6E, 0x8A, 0x73, 0x97),
4181*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x07, 0x97, 0x21, 0x3B, 0xF8, 0x5F, 0xA8),
4182*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xB5, 0xD2, 0x81, 0x84, 0xF0, 0xE7, 0x9F),
4183*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x8F, 0x75, 0x09, 0x6A, 0x0E, 0x53, 0xAD),
4184*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x4F, 0x70, 0x97, 0xC7, 0xAC, 0x7D, 0x3F),
4185*62c56f98SSadaf Ebrahimi };
4186*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_18_Y[] = {
4187*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x3C, 0x6A, 0xB4, 0x10, 0xA9, 0xC8, 0x1D),
4188*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xC5, 0xD6, 0x69, 0x16, 0xB8, 0xAC, 0x25),
4189*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x44, 0xDC, 0xEB, 0x48, 0x54, 0x5D, 0x5F),
4190*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x48, 0x9B, 0xD7, 0x72, 0x69, 0xA4, 0x8A),
4191*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x0D, 0x36, 0x9A, 0x66, 0x0B, 0xEC, 0x24),
4192*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xC6, 0xD4, 0xB6, 0x60, 0xE5, 0xC3, 0x3A),
4193*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x29, 0x42, 0xE0, 0x9D, 0xFD, 0x7C, 0x3E),
4194*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x10, 0xBA, 0x55, 0xBC, 0x3B, 0x38, 0x5D),
4195*62c56f98SSadaf Ebrahimi };
4196*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_19_X[] = {
4197*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x66, 0xFA, 0x05, 0x73, 0x03, 0x1B, 0x69),
4198*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xA4, 0x66, 0x12, 0x96, 0x7B, 0x02, 0x4C),
4199*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xB5, 0xDE, 0x6D, 0x98, 0xD1, 0xD5, 0xA8),
4200*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xF5, 0x44, 0xB8, 0x8E, 0xF6, 0x8C, 0x05),
4201*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x15, 0x2B, 0x72, 0xBC, 0x49, 0xE5, 0xDF),
4202*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x44, 0xD7, 0xDF, 0x8F, 0xEB, 0x8D, 0x80),
4203*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x64, 0x88, 0xAA, 0xB7, 0xE4, 0x70, 0x1D),
4204*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x14, 0xBB, 0xE9, 0x9B, 0xB9, 0x65, 0x5D),
4205*62c56f98SSadaf Ebrahimi };
4206*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_19_Y[] = {
4207*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x8E, 0x88, 0xF5, 0xF1, 0xC1, 0x89, 0xA2),
4208*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x30, 0x53, 0xE6, 0xFB, 0x2D, 0x82, 0xB4),
4209*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xE4, 0xFF, 0xBA, 0x31, 0x79, 0xAB, 0xC2),
4210*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x09, 0xF7, 0xB7, 0x09, 0x78, 0x4C, 0x90),
4211*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xAE, 0xC2, 0x44, 0xDC, 0x17, 0x78, 0x47),
4212*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xD4, 0x17, 0x43, 0x19, 0x74, 0x9E, 0x23),
4213*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x64, 0x3B, 0x73, 0xA2, 0x99, 0x27, 0x76),
4214*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0x36, 0x5F, 0xD3, 0x14, 0xB1, 0x31),
4215*62c56f98SSadaf Ebrahimi };
4216*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_20_X[] = {
4217*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x07, 0xAB, 0xFD, 0x9B, 0x03, 0xC5, 0xD5),
4218*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xBE, 0xB0, 0x1D, 0xF2, 0x0C, 0x73, 0x73),
4219*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xE7, 0x7B, 0x87, 0xD3, 0x34, 0xFD, 0xE2),
4220*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x25, 0x3D, 0xC7, 0x36, 0x83, 0x53, 0xDC),
4221*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x7C, 0xCF, 0x63, 0x55, 0x12, 0x11, 0xB0),
4222*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x34, 0x4D, 0x27, 0x92, 0xAC, 0x18, 0x16),
4223*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x42, 0x61, 0x9D, 0x2E, 0xFF, 0x13, 0x16),
4224*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xDE, 0x92, 0x65, 0x57, 0x0D, 0xBC, 0x0A),
4225*62c56f98SSadaf Ebrahimi };
4226*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_20_Y[] = {
4227*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x7B, 0x6E, 0xC6, 0x2A, 0x21, 0x74, 0x0A),
4228*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xA7, 0x53, 0x4D, 0x29, 0x36, 0xEF, 0xE5),
4229*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xD6, 0x41, 0xC7, 0x99, 0xAD, 0x50, 0x53),
4230*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xAC, 0x41, 0x9F, 0xFB, 0x4C, 0x86, 0xF1),
4231*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xBB, 0xE6, 0x25, 0x28, 0xAA, 0xEB, 0x1E),
4232*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x04, 0xA2, 0xC3, 0xAA, 0x08, 0x8A, 0xCC),
4233*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x2B, 0x5B, 0xE2, 0x8D, 0x76, 0xEA, 0x34),
4234*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x33, 0xD2, 0x21, 0x4D, 0x62, 0xE3, 0x8E),
4235*62c56f98SSadaf Ebrahimi };
4236*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_21_X[] = {
4237*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x06, 0x8B, 0x2B, 0xC2, 0xC4, 0xB1, 0xD2),
4238*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xF5, 0xA1, 0xC0, 0x03, 0x6A, 0x29, 0x12),
4239*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xA9, 0xEF, 0x55, 0xB6, 0x1A, 0x9F, 0x6B),
4240*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x54, 0x32, 0xBE, 0x06, 0x43, 0xB5, 0xFD),
4241*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xD6, 0xD9, 0x20, 0x89, 0xBE, 0xD4, 0x1B),
4242*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x26, 0x95, 0x10, 0xCE, 0xB4, 0x88, 0x79),
4243*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xA6, 0x27, 0xAC, 0x32, 0xBA, 0xBD, 0xC7),
4244*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xA6, 0xAE, 0x9C, 0x7B, 0xBE, 0xA1, 0x63),
4245*62c56f98SSadaf Ebrahimi };
4246*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_21_Y[] = {
4247*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xCD, 0x4D, 0x3D, 0xDF, 0x96, 0xBB, 0x7D),
4248*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xA7, 0x11, 0x06, 0xCC, 0x0E, 0x31, 0x81),
4249*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0xE4, 0xF4, 0xAD, 0x7B, 0x5F, 0xF1, 0xEF),
4250*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x54, 0xBE, 0xF4, 0x8A, 0x03, 0x47, 0xDF),
4251*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x53, 0x00, 0x7F, 0xB0, 0x8A, 0x68, 0xA6),
4252*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x16, 0xB1, 0x73, 0x6F, 0x5B, 0x0E, 0xC3),
4253*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x32, 0xE3, 0x43, 0x64, 0x75, 0xFB, 0xFB),
4254*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x18, 0x55, 0x8A, 0x4E, 0x6E, 0x35, 0x54),
4255*62c56f98SSadaf Ebrahimi };
4256*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_22_X[] = {
4257*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x97, 0x15, 0x1E, 0xCB, 0xF2, 0x9C, 0xA5),
4258*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xD1, 0xBB, 0xF3, 0x70, 0xAD, 0x13, 0xAD),
4259*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x96, 0xA4, 0xC5, 0x5E, 0xDA, 0xD5, 0x57),
4260*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x81, 0xE9, 0x65, 0x66, 0x76, 0x47, 0x45),
4261*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x35, 0x87, 0x06, 0x73, 0xCF, 0x34, 0xD2),
4262*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x81, 0x15, 0x42, 0xA2, 0x79, 0x5B, 0x42),
4263*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xA2, 0x7D, 0x09, 0x14, 0x64, 0xC6, 0xAE),
4264*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x6D, 0xC4, 0xED, 0xF1, 0xD6, 0xE9, 0x24),
4265*62c56f98SSadaf Ebrahimi };
4266*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_22_Y[] = {
4267*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xD5, 0xBB, 0x25, 0xA3, 0xDD, 0xA3, 0x88),
4268*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xF2, 0x68, 0x67, 0x39, 0x8F, 0x73, 0x93),
4269*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x76, 0x28, 0x89, 0xAD, 0x32, 0xE0, 0xDF),
4270*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x90, 0xCC, 0x57, 0x58, 0xAA, 0xC9, 0x75),
4271*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xD7, 0x43, 0xD2, 0xCE, 0x5E, 0xA0, 0x08),
4272*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xB0, 0xB8, 0xA4, 0x9E, 0x96, 0x26, 0x86),
4273*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x61, 0x1D, 0xF3, 0x65, 0x5E, 0x60, 0xCA),
4274*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x1E, 0x65, 0xED, 0xCF, 0x07, 0x60, 0x20),
4275*62c56f98SSadaf Ebrahimi };
4276*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_23_X[] = {
4277*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x30, 0x17, 0x8A, 0x91, 0x88, 0x0A, 0xA4),
4278*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x7D, 0x18, 0xA4, 0xAC, 0x59, 0xFC, 0x5F),
4279*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x31, 0x8B, 0x25, 0x65, 0x39, 0x9A, 0xDC),
4280*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x16, 0x4B, 0x68, 0xBA, 0x59, 0x13, 0x2F),
4281*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFD, 0xD3, 0xC5, 0x56, 0xC9, 0x8C, 0x5E),
4282*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xC6, 0x9F, 0xF4, 0xE6, 0xF7, 0xB4, 0x01),
4283*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x7C, 0x03, 0x00, 0x26, 0x9F, 0xD8, 0x7B),
4284*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x1D, 0x6E, 0x00, 0xB9, 0x00, 0x6E, 0x93),
4285*62c56f98SSadaf Ebrahimi };
4286*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_23_Y[] = {
4287*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x63, 0xDA, 0x03, 0x2B, 0xD5, 0x0B, 0xFE),
4288*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xFC, 0xE2, 0xC8, 0x47, 0xF0, 0xAE, 0xF2),
4289*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x4C, 0xF7, 0x50, 0x0C, 0x48, 0x06, 0x2A),
4290*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x2B, 0x32, 0x98, 0x0E, 0x7E, 0x61, 0x41),
4291*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x02, 0x27, 0xFE, 0x75, 0x86, 0xDF, 0x24),
4292*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x30, 0xB1, 0x22, 0x32, 0x1B, 0xFE, 0x24),
4293*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x27, 0xF7, 0x78, 0x6F, 0xD7, 0xFD, 0xE4),
4294*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x78, 0xCC, 0xEA, 0xC0, 0x50, 0x24, 0x44),
4295*62c56f98SSadaf Ebrahimi };
4296*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_24_X[] = {
4297*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x2B, 0x4F, 0x7F, 0x58, 0xE6, 0xC2, 0x70),
4298*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x43, 0xD5, 0xA7, 0x35, 0x3C, 0x80, 0xB8),
4299*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x6D, 0x4B, 0x12, 0x00, 0x7B, 0xE6, 0xA6),
4300*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x15, 0xBD, 0xD0, 0x9B, 0xCA, 0xAA, 0x81),
4301*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xCE, 0x9C, 0xE3, 0x8B, 0x60, 0x7A, 0x53),
4302*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xDA, 0x4B, 0x03, 0xA7, 0x8D, 0x43, 0x22),
4303*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAF, 0x00, 0x2B, 0x32, 0xF0, 0x22, 0x68),
4304*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xD9, 0x99, 0x99, 0xBE, 0x43, 0x99, 0x3E),
4305*62c56f98SSadaf Ebrahimi };
4306*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_24_Y[] = {
4307*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x71, 0x41, 0xF4, 0xB5, 0xFD, 0xDD, 0x36),
4308*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xE2, 0x20, 0x4C, 0xD1, 0x2E, 0x1F, 0x06),
4309*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x43, 0x48, 0x76, 0x8A, 0x49, 0xAC, 0x87),
4310*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x1A, 0x55, 0xA8, 0xA3, 0xD4, 0x57, 0x75),
4311*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xA6, 0x84, 0x39, 0xC9, 0x13, 0xBB, 0x60),
4312*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xFA, 0xA9, 0x70, 0xDE, 0x83, 0xDD, 0xC9),
4313*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xC9, 0xD9, 0x3E, 0x44, 0x91, 0x68, 0x7B),
4314*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x9F, 0x85, 0x6D, 0xF7, 0x54, 0x36, 0x82),
4315*62c56f98SSadaf Ebrahimi };
4316*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_25_X[] = {
4317*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x6B, 0xA6, 0xA3, 0xE5, 0xD4, 0x46, 0xDB),
4318*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x3E, 0xDC, 0x84, 0x7C, 0x7B, 0x24, 0x34),
4319*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xED, 0x7F, 0x86, 0x07, 0x6C, 0x57, 0xCA),
4320*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x06, 0xFE, 0x52, 0x12, 0x79, 0x69, 0x56),
4321*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xD1, 0x44, 0x5F, 0x21, 0x3A, 0xC3, 0x84),
4322*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xD9, 0x4A, 0xC0, 0x75, 0xAB, 0x17, 0xAC),
4323*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x81, 0x94, 0xB6, 0x80, 0x6B, 0x6F, 0xC3),
4324*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xBE, 0x8E, 0xA5, 0xAA, 0xBC, 0x1E, 0x3E),
4325*62c56f98SSadaf Ebrahimi };
4326*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_25_Y[] = {
4327*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xC7, 0x85, 0xA6, 0x59, 0x9B, 0xB1, 0x52),
4328*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xCE, 0x40, 0xD1, 0xFB, 0xDF, 0x94, 0xF7),
4329*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xB8, 0x5E, 0xBF, 0x45, 0xA8, 0x2D, 0x2D),
4330*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9C, 0x06, 0x1B, 0xA9, 0x57, 0xB9, 0x79),
4331*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xE9, 0xCE, 0xA2, 0xD3, 0x74, 0xA1, 0x3C),
4332*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x5F, 0x34, 0x78, 0xDB, 0xAE, 0x3A, 0x14),
4333*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x32, 0x84, 0x3E, 0x68, 0x6A, 0x43, 0x0F),
4334*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xBC, 0x39, 0x36, 0xA4, 0xC5, 0xBB, 0x11),
4335*62c56f98SSadaf Ebrahimi };
4336*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_26_X[] = {
4337*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x07, 0xA2, 0xB5, 0xC9, 0x0F, 0x4D, 0x0F),
4338*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x1D, 0x67, 0xE6, 0xF1, 0x46, 0xEB, 0x71),
4339*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x41, 0x23, 0x95, 0xE7, 0xE0, 0x10, 0xDD),
4340*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x69, 0xFE, 0x68, 0x8C, 0xC6, 0x5F, 0xB6),
4341*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xB9, 0x2B, 0x3D, 0xD2, 0x4F, 0xD8, 0x1A),
4342*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x09, 0xF5, 0x5F, 0xCF, 0xF6, 0x91, 0x57),
4343*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x15, 0x42, 0x6B, 0x6D, 0xB5, 0xF3, 0xB6),
4344*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x56, 0x9D, 0xC5, 0xFF, 0xCA, 0x13, 0x9B),
4345*62c56f98SSadaf Ebrahimi };
4346*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_26_Y[] = {
4347*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x38, 0xE6, 0x23, 0x63, 0x48, 0x3C, 0xCA),
4348*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x68, 0x3C, 0xD1, 0x3B, 0xE9, 0x3B, 0x82),
4349*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x08, 0x54, 0x49, 0xD1, 0x46, 0x45, 0x13),
4350*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x70, 0x52, 0x6E, 0x79, 0xC4, 0x5E, 0x95),
4351*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xDF, 0xE8, 0x5A, 0x32, 0x81, 0xDA, 0xD3),
4352*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x2D, 0x94, 0x5B, 0xB5, 0x35, 0x9F, 0x0A),
4353*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x12, 0x8D, 0xC3, 0x36, 0x36, 0xB2, 0x2A),
4354*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x2F, 0x22, 0x38, 0x5B, 0x18, 0x4C, 0x35),
4355*62c56f98SSadaf Ebrahimi };
4356*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_27_X[] = {
4357*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xC1, 0x22, 0x0E, 0xF0, 0x73, 0x11, 0x05),
4358*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xAE, 0xA4, 0x56, 0x18, 0x61, 0x66, 0x12),
4359*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xFB, 0x72, 0x08, 0x84, 0x38, 0x51, 0xB0),
4360*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x86, 0xA8, 0xB9, 0x31, 0x99, 0x29, 0xC3),
4361*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xFB, 0xC3, 0x42, 0xB3, 0xC7, 0x6F, 0x3A),
4362*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xF8, 0xE1, 0x09, 0xBE, 0x75, 0xB0, 0x22),
4363*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x7D, 0xFF, 0xF4, 0x99, 0xFC, 0x13, 0xAB),
4364*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x1B, 0x84, 0x81, 0x42, 0x22, 0xC6, 0x3D),
4365*62c56f98SSadaf Ebrahimi };
4366*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_27_Y[] = {
4367*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xE0, 0x37, 0xA4, 0xA0, 0x2F, 0x38, 0x7F),
4368*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x3D, 0xB7, 0x40, 0x2F, 0x39, 0x3C, 0x7A),
4369*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x3B, 0x8A, 0x51, 0xAE, 0x40, 0x49, 0x7A),
4370*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x20, 0x9F, 0xDD, 0xA9, 0xD0, 0x77, 0xC7),
4371*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x1D, 0x64, 0xDA, 0xA0, 0x53, 0xC7, 0x7D),
4372*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x7B, 0x66, 0x55, 0x94, 0xD1, 0x51, 0x44),
4373*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xA9, 0xB5, 0x5B, 0x38, 0x35, 0x40, 0xC0),
4374*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC9, 0x0F, 0xF0, 0x73, 0x79, 0x43, 0x61),
4375*62c56f98SSadaf Ebrahimi };
4376*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_28_X[] = {
4377*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x47, 0x45, 0x69, 0x80, 0x72, 0x72, 0x42),
4378*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x11, 0x99, 0x59, 0xDB, 0x48, 0x80, 0x39),
4379*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x6E, 0x3D, 0xFC, 0x37, 0x15, 0xF4, 0xBF),
4380*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xBB, 0x5B, 0xA6, 0x35, 0x8D, 0x28, 0x20),
4381*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x1A, 0x3B, 0x2C, 0x8F, 0xD3, 0xAA, 0x2D),
4382*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x1C, 0x1A, 0xF8, 0x02, 0xD9, 0x7B, 0x41),
4383*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x69, 0xAC, 0xF8, 0x54, 0x31, 0x14, 0xA1),
4384*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x8A, 0xE6, 0xDE, 0x58, 0xB9, 0xC4, 0x7A),
4385*62c56f98SSadaf Ebrahimi };
4386*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_28_Y[] = {
4387*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x83, 0x52, 0xFE, 0xF9, 0x7B, 0xE9, 0x1F),
4388*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xA2, 0x55, 0x46, 0x15, 0x49, 0xC1, 0x3A),
4389*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xBC, 0x5C, 0x91, 0xBD, 0xB9, 0x9C, 0xF4),
4390*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xFD, 0xB1, 0x4E, 0x5F, 0x74, 0xEE, 0x53),
4391*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x8B, 0xD8, 0x8B, 0x17, 0x73, 0x1B, 0x96),
4392*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x92, 0xD7, 0x67, 0x06, 0xAD, 0x25, 0xCD),
4393*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x0F, 0x80, 0x24, 0xE2, 0x27, 0x5F, 0x8B),
4394*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x1C, 0xCE, 0xD0, 0x67, 0xCA, 0xD4, 0x0B),
4395*62c56f98SSadaf Ebrahimi };
4396*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_29_X[] = {
4397*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xF1, 0xDD, 0x33, 0x66, 0xF9, 0x05, 0xD6),
4398*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xE5, 0x6B, 0x79, 0xBD, 0x48, 0x42, 0xAA),
4399*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x14, 0x52, 0xE3, 0x53, 0xB4, 0x50, 0xD4),
4400*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x84, 0x6C, 0xCF, 0xDA, 0xB2, 0x20, 0x0A),
4401*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xD6, 0x1A, 0xE5, 0xE2, 0x29, 0x70, 0xCE),
4402*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x61, 0xFE, 0xBB, 0x21, 0x82, 0xD1, 0xFE),
4403*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0xF0, 0x9C, 0x8B, 0x1A, 0x42, 0x30, 0x06),
4404*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xD6, 0x49, 0x81, 0x92, 0xF1, 0xD0, 0x90),
4405*62c56f98SSadaf Ebrahimi };
4406*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_29_Y[] = {
4407*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x91, 0x93, 0x6A, 0xA6, 0x22, 0xE9, 0xD6),
4408*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xDC, 0xC3, 0x69, 0x11, 0x95, 0x7D, 0xEC),
4409*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xA3, 0x9D, 0x87, 0x5E, 0x64, 0x41, 0xA2),
4410*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x87, 0x5A, 0x15, 0xBD, 0x6E, 0x3C, 0x8D),
4411*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x8D, 0x50, 0xCC, 0xCF, 0xB7, 0x8F, 0x0B),
4412*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x65, 0xCD, 0x31, 0x30, 0xF1, 0x68, 0x13),
4413*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x5C, 0x66, 0x67, 0x92, 0x30, 0x57, 0x95),
4414*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x9B, 0x01, 0x3D, 0x20, 0x8B, 0xD1, 0x0D),
4415*62c56f98SSadaf Ebrahimi };
4416*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_30_X[] = {
4417*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xC0, 0xE6, 0x4F, 0xDE, 0x62, 0xAB, 0xB3),
4418*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x48, 0xB3, 0x1C, 0x0F, 0x16, 0x93, 0x45),
4419*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x63, 0xBD, 0x1F, 0x16, 0x50, 0x56, 0x98),
4420*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x06, 0xBC, 0xE9, 0x27, 0x1C, 0x9A, 0x7B),
4421*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xFE, 0x21, 0xC5, 0x39, 0x55, 0xE1, 0xFD),
4422*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xA8, 0xD0, 0x96, 0x0E, 0xB5, 0xB2, 0x84),
4423*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xE7, 0x4B, 0xF3, 0x11, 0x0C, 0xC9, 0x5B),
4424*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x3A, 0xC4, 0x87, 0x71, 0xEE, 0xFA, 0x18),
4425*62c56f98SSadaf Ebrahimi };
4426*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_30_Y[] = {
4427*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x77, 0xEE, 0x81, 0x5E, 0x96, 0xEA, 0x4B),
4428*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xDF, 0xA9, 0xF4, 0x4F, 0x7C, 0xB2, 0x43),
4429*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xD4, 0xDF, 0x35, 0x63, 0x47, 0x25, 0x8A),
4430*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x3D, 0xFF, 0xA4, 0x02, 0xC3, 0x95, 0x11),
4431*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x10, 0x78, 0xD1, 0x2B, 0xB7, 0xBE, 0x0E),
4432*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE9, 0x57, 0xF9, 0xE0, 0xD8, 0xFC, 0xBC),
4433*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xC4, 0x01, 0xD6, 0xB4, 0xE7, 0x78, 0xE2),
4434*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x6C, 0xB9, 0x13, 0xA4, 0xE8, 0x6D, 0x6F),
4435*62c56f98SSadaf Ebrahimi };
4436*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_31_X[] = {
4437*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xB0, 0xC9, 0xCD, 0xBF, 0xA2, 0x1E, 0x63),
4438*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x4F, 0x86, 0x22, 0x9B, 0xEA, 0xE8, 0xBB),
4439*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x46, 0xDF, 0x43, 0xB9, 0x82, 0x2D, 0x0A),
4440*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x32, 0xF1, 0x4E, 0x95, 0x41, 0xAE, 0x8E),
4441*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x93, 0x26, 0xFC, 0xD3, 0x90, 0xDC, 0xEB),
4442*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x05, 0x45, 0xCA, 0xF9, 0x5A, 0x89, 0x93),
4443*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x82, 0x63, 0x4E, 0x55, 0x1D, 0x3A, 0x08),
4444*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x69, 0x52, 0x49, 0xE9, 0xED, 0x57, 0x34),
4445*62c56f98SSadaf Ebrahimi };
4446*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_uint brainpoolP512r1_T_31_Y[] = {
4447*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x64, 0xE9, 0xAC, 0x4C, 0x4A, 0xEA, 0x25),
4448*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xE9, 0x0B, 0x99, 0xE7, 0xF9, 0xA9, 0x2C),
4449*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x0C, 0xC1, 0xF4, 0x8D, 0x07, 0xB6, 0xB1),
4450*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x68, 0xFA, 0x35, 0xE4, 0x9E, 0xAE, 0xD9),
4451*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x2D, 0x1A, 0x13, 0x8E, 0x02, 0xE2, 0x63),
4452*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x38, 0x28, 0x86, 0x46, 0x7B, 0x3A, 0xE1),
4453*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x4C, 0x64, 0x59, 0x0A, 0xF9, 0x02, 0xC4),
4454*62c56f98SSadaf Ebrahimi     MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x4F, 0x23, 0xA2, 0xC3, 0xD5, 0xEF, 0x42),
4455*62c56f98SSadaf Ebrahimi };
4456*62c56f98SSadaf Ebrahimi static const mbedtls_ecp_point brainpoolP512r1_T[32] = {
4457*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z1(brainpoolP512r1_T_0_X, brainpoolP512r1_T_0_Y),
4458*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_1_X, brainpoolP512r1_T_1_Y),
4459*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_2_X, brainpoolP512r1_T_2_Y),
4460*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_3_X, brainpoolP512r1_T_3_Y),
4461*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_4_X, brainpoolP512r1_T_4_Y),
4462*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_5_X, brainpoolP512r1_T_5_Y),
4463*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_6_X, brainpoolP512r1_T_6_Y),
4464*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_7_X, brainpoolP512r1_T_7_Y),
4465*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_8_X, brainpoolP512r1_T_8_Y),
4466*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_9_X, brainpoolP512r1_T_9_Y),
4467*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_10_X, brainpoolP512r1_T_10_Y),
4468*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_11_X, brainpoolP512r1_T_11_Y),
4469*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_12_X, brainpoolP512r1_T_12_Y),
4470*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_13_X, brainpoolP512r1_T_13_Y),
4471*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_14_X, brainpoolP512r1_T_14_Y),
4472*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_15_X, brainpoolP512r1_T_15_Y),
4473*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_16_X, brainpoolP512r1_T_16_Y),
4474*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_17_X, brainpoolP512r1_T_17_Y),
4475*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_18_X, brainpoolP512r1_T_18_Y),
4476*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_19_X, brainpoolP512r1_T_19_Y),
4477*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_20_X, brainpoolP512r1_T_20_Y),
4478*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_21_X, brainpoolP512r1_T_21_Y),
4479*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_22_X, brainpoolP512r1_T_22_Y),
4480*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_23_X, brainpoolP512r1_T_23_Y),
4481*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_24_X, brainpoolP512r1_T_24_Y),
4482*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_25_X, brainpoolP512r1_T_25_Y),
4483*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_26_X, brainpoolP512r1_T_26_Y),
4484*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_27_X, brainpoolP512r1_T_27_Y),
4485*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_28_X, brainpoolP512r1_T_28_Y),
4486*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_29_X, brainpoolP512r1_T_29_Y),
4487*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_30_X, brainpoolP512r1_T_30_Y),
4488*62c56f98SSadaf Ebrahimi     ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_31_X, brainpoolP512r1_T_31_Y),
4489*62c56f98SSadaf Ebrahimi };
4490*62c56f98SSadaf Ebrahimi #else
4491*62c56f98SSadaf Ebrahimi #define brainpoolP512r1_T NULL
4492*62c56f98SSadaf Ebrahimi #endif
4493*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
4494*62c56f98SSadaf Ebrahimi 
4495*62c56f98SSadaf Ebrahimi #if defined(ECP_LOAD_GROUP)
4496*62c56f98SSadaf Ebrahimi /*
4497*62c56f98SSadaf Ebrahimi  * Create an MPI from embedded constants
4498*62c56f98SSadaf Ebrahimi  * (assumes len is an exact multiple of sizeof(mbedtls_mpi_uint))
4499*62c56f98SSadaf Ebrahimi  */
ecp_mpi_load(mbedtls_mpi * X,const mbedtls_mpi_uint * p,size_t len)4500*62c56f98SSadaf Ebrahimi static inline void ecp_mpi_load(mbedtls_mpi *X, const mbedtls_mpi_uint *p, size_t len)
4501*62c56f98SSadaf Ebrahimi {
4502*62c56f98SSadaf Ebrahimi     X->s = 1;
4503*62c56f98SSadaf Ebrahimi     X->n = (unsigned short) (len / sizeof(mbedtls_mpi_uint));
4504*62c56f98SSadaf Ebrahimi     X->p = (mbedtls_mpi_uint *) p;
4505*62c56f98SSadaf Ebrahimi }
4506*62c56f98SSadaf Ebrahimi 
4507*62c56f98SSadaf Ebrahimi /*
4508*62c56f98SSadaf Ebrahimi  * Set an MPI to static value 1
4509*62c56f98SSadaf Ebrahimi  */
ecp_mpi_set1(mbedtls_mpi * X)4510*62c56f98SSadaf Ebrahimi static inline void ecp_mpi_set1(mbedtls_mpi *X)
4511*62c56f98SSadaf Ebrahimi {
4512*62c56f98SSadaf Ebrahimi     X->s = 1;
4513*62c56f98SSadaf Ebrahimi     X->n = 1;
4514*62c56f98SSadaf Ebrahimi     X->p = mpi_one;
4515*62c56f98SSadaf Ebrahimi }
4516*62c56f98SSadaf Ebrahimi 
4517*62c56f98SSadaf Ebrahimi /*
4518*62c56f98SSadaf Ebrahimi  * Make group available from embedded constants
4519*62c56f98SSadaf Ebrahimi  */
ecp_group_load(mbedtls_ecp_group * grp,const mbedtls_mpi_uint * p,size_t plen,const mbedtls_mpi_uint * a,size_t alen,const mbedtls_mpi_uint * b,size_t blen,const mbedtls_mpi_uint * gx,size_t gxlen,const mbedtls_mpi_uint * gy,size_t gylen,const mbedtls_mpi_uint * n,size_t nlen,const mbedtls_ecp_point * T)4520*62c56f98SSadaf Ebrahimi static int ecp_group_load(mbedtls_ecp_group *grp,
4521*62c56f98SSadaf Ebrahimi                           const mbedtls_mpi_uint *p,  size_t plen,
4522*62c56f98SSadaf Ebrahimi                           const mbedtls_mpi_uint *a,  size_t alen,
4523*62c56f98SSadaf Ebrahimi                           const mbedtls_mpi_uint *b,  size_t blen,
4524*62c56f98SSadaf Ebrahimi                           const mbedtls_mpi_uint *gx, size_t gxlen,
4525*62c56f98SSadaf Ebrahimi                           const mbedtls_mpi_uint *gy, size_t gylen,
4526*62c56f98SSadaf Ebrahimi                           const mbedtls_mpi_uint *n,  size_t nlen,
4527*62c56f98SSadaf Ebrahimi                           const mbedtls_ecp_point *T)
4528*62c56f98SSadaf Ebrahimi {
4529*62c56f98SSadaf Ebrahimi     ecp_mpi_load(&grp->P, p, plen);
4530*62c56f98SSadaf Ebrahimi     if (a != NULL) {
4531*62c56f98SSadaf Ebrahimi         ecp_mpi_load(&grp->A, a, alen);
4532*62c56f98SSadaf Ebrahimi     }
4533*62c56f98SSadaf Ebrahimi     ecp_mpi_load(&grp->B, b, blen);
4534*62c56f98SSadaf Ebrahimi     ecp_mpi_load(&grp->N, n, nlen);
4535*62c56f98SSadaf Ebrahimi 
4536*62c56f98SSadaf Ebrahimi     ecp_mpi_load(&grp->G.X, gx, gxlen);
4537*62c56f98SSadaf Ebrahimi     ecp_mpi_load(&grp->G.Y, gy, gylen);
4538*62c56f98SSadaf Ebrahimi     ecp_mpi_set1(&grp->G.Z);
4539*62c56f98SSadaf Ebrahimi 
4540*62c56f98SSadaf Ebrahimi     grp->pbits = mbedtls_mpi_bitlen(&grp->P);
4541*62c56f98SSadaf Ebrahimi     grp->nbits = mbedtls_mpi_bitlen(&grp->N);
4542*62c56f98SSadaf Ebrahimi 
4543*62c56f98SSadaf Ebrahimi     grp->h = 1;
4544*62c56f98SSadaf Ebrahimi 
4545*62c56f98SSadaf Ebrahimi     grp->T = (mbedtls_ecp_point *) T;
4546*62c56f98SSadaf Ebrahimi     /*
4547*62c56f98SSadaf Ebrahimi      * Set T_size to 0 to prevent T free by mbedtls_ecp_group_free.
4548*62c56f98SSadaf Ebrahimi      */
4549*62c56f98SSadaf Ebrahimi     grp->T_size = 0;
4550*62c56f98SSadaf Ebrahimi 
4551*62c56f98SSadaf Ebrahimi     return 0;
4552*62c56f98SSadaf Ebrahimi }
4553*62c56f98SSadaf Ebrahimi #endif /* ECP_LOAD_GROUP */
4554*62c56f98SSadaf Ebrahimi 
4555*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_NIST_OPTIM)
4556*62c56f98SSadaf Ebrahimi /* Forward declarations */
4557*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
4558*62c56f98SSadaf Ebrahimi static int ecp_mod_p192(mbedtls_mpi *);
4559*62c56f98SSadaf Ebrahimi #endif
4560*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
4561*62c56f98SSadaf Ebrahimi static int ecp_mod_p224(mbedtls_mpi *);
4562*62c56f98SSadaf Ebrahimi #endif
4563*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
4564*62c56f98SSadaf Ebrahimi static int ecp_mod_p256(mbedtls_mpi *);
4565*62c56f98SSadaf Ebrahimi #endif
4566*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
4567*62c56f98SSadaf Ebrahimi static int ecp_mod_p384(mbedtls_mpi *);
4568*62c56f98SSadaf Ebrahimi #endif
4569*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
4570*62c56f98SSadaf Ebrahimi static int ecp_mod_p521(mbedtls_mpi *);
4571*62c56f98SSadaf Ebrahimi #endif
4572*62c56f98SSadaf Ebrahimi 
4573*62c56f98SSadaf Ebrahimi #define NIST_MODP(P)      grp->modp = ecp_mod_ ## P;
4574*62c56f98SSadaf Ebrahimi #else
4575*62c56f98SSadaf Ebrahimi #define NIST_MODP(P)
4576*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_NIST_OPTIM */
4577*62c56f98SSadaf Ebrahimi 
4578*62c56f98SSadaf Ebrahimi /* Additional forward declarations */
4579*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
4580*62c56f98SSadaf Ebrahimi static int ecp_mod_p255(mbedtls_mpi *);
4581*62c56f98SSadaf Ebrahimi #endif
4582*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4583*62c56f98SSadaf Ebrahimi static int ecp_mod_p448(mbedtls_mpi *);
4584*62c56f98SSadaf Ebrahimi #endif
4585*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
4586*62c56f98SSadaf Ebrahimi static int ecp_mod_p192k1(mbedtls_mpi *);
4587*62c56f98SSadaf Ebrahimi #endif
4588*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
4589*62c56f98SSadaf Ebrahimi static int ecp_mod_p224k1(mbedtls_mpi *);
4590*62c56f98SSadaf Ebrahimi #endif
4591*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
4592*62c56f98SSadaf Ebrahimi static int ecp_mod_p256k1(mbedtls_mpi *);
4593*62c56f98SSadaf Ebrahimi #endif
4594*62c56f98SSadaf Ebrahimi 
4595*62c56f98SSadaf Ebrahimi #if defined(ECP_LOAD_GROUP)
4596*62c56f98SSadaf Ebrahimi #define LOAD_GROUP_A(G)   ecp_group_load(grp,            \
4597*62c56f98SSadaf Ebrahimi                                          G ## _p,  sizeof(G ## _p),   \
4598*62c56f98SSadaf Ebrahimi                                          G ## _a,  sizeof(G ## _a),   \
4599*62c56f98SSadaf Ebrahimi                                          G ## _b,  sizeof(G ## _b),   \
4600*62c56f98SSadaf Ebrahimi                                          G ## _gx, sizeof(G ## _gx),   \
4601*62c56f98SSadaf Ebrahimi                                          G ## _gy, sizeof(G ## _gy),   \
4602*62c56f98SSadaf Ebrahimi                                          G ## _n,  sizeof(G ## _n),   \
4603*62c56f98SSadaf Ebrahimi                                          G ## _T                         \
4604*62c56f98SSadaf Ebrahimi                                          )
4605*62c56f98SSadaf Ebrahimi 
4606*62c56f98SSadaf Ebrahimi #define LOAD_GROUP(G)     ecp_group_load(grp,            \
4607*62c56f98SSadaf Ebrahimi                                          G ## _p,  sizeof(G ## _p),   \
4608*62c56f98SSadaf Ebrahimi                                          NULL,     0,                    \
4609*62c56f98SSadaf Ebrahimi                                          G ## _b,  sizeof(G ## _b),   \
4610*62c56f98SSadaf Ebrahimi                                          G ## _gx, sizeof(G ## _gx),   \
4611*62c56f98SSadaf Ebrahimi                                          G ## _gy, sizeof(G ## _gy),   \
4612*62c56f98SSadaf Ebrahimi                                          G ## _n,  sizeof(G ## _n),   \
4613*62c56f98SSadaf Ebrahimi                                          G ## _T                         \
4614*62c56f98SSadaf Ebrahimi                                          )
4615*62c56f98SSadaf Ebrahimi #endif /* ECP_LOAD_GROUP */
4616*62c56f98SSadaf Ebrahimi 
4617*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
4618*62c56f98SSadaf Ebrahimi /* Constants used by ecp_use_curve25519() */
4619*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_sint curve25519_a24 = 0x01DB42;
4620*62c56f98SSadaf Ebrahimi static const unsigned char curve25519_part_of_n[] = {
4621*62c56f98SSadaf Ebrahimi     0x14, 0xDE, 0xF9, 0xDE, 0xA2, 0xF7, 0x9C, 0xD6,
4622*62c56f98SSadaf Ebrahimi     0x58, 0x12, 0x63, 0x1A, 0x5C, 0xF5, 0xD3, 0xED,
4623*62c56f98SSadaf Ebrahimi };
4624*62c56f98SSadaf Ebrahimi 
4625*62c56f98SSadaf Ebrahimi /*
4626*62c56f98SSadaf Ebrahimi  * Specialized function for creating the Curve25519 group
4627*62c56f98SSadaf Ebrahimi  */
ecp_use_curve25519(mbedtls_ecp_group * grp)4628*62c56f98SSadaf Ebrahimi static int ecp_use_curve25519(mbedtls_ecp_group *grp)
4629*62c56f98SSadaf Ebrahimi {
4630*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
4631*62c56f98SSadaf Ebrahimi 
4632*62c56f98SSadaf Ebrahimi     /* Actually ( A + 2 ) / 4 */
4633*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve25519_a24));
4634*62c56f98SSadaf Ebrahimi 
4635*62c56f98SSadaf Ebrahimi     /* P = 2^255 - 19 */
4636*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->P, 1));
4637*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 255));
4638*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 19));
4639*62c56f98SSadaf Ebrahimi     grp->pbits = mbedtls_mpi_bitlen(&grp->P);
4640*62c56f98SSadaf Ebrahimi 
4641*62c56f98SSadaf Ebrahimi     /* N = 2^252 + 27742317777372353535851937790883648493 */
4642*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&grp->N,
4643*62c56f98SSadaf Ebrahimi                                             curve25519_part_of_n, sizeof(curve25519_part_of_n)));
4644*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&grp->N, 252, 1));
4645*62c56f98SSadaf Ebrahimi 
4646*62c56f98SSadaf Ebrahimi     /* Y intentionally not set, since we use x/z coordinates.
4647*62c56f98SSadaf Ebrahimi      * This is used as a marker to identify Montgomery curves! */
4648*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.X, 9));
4649*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1));
4650*62c56f98SSadaf Ebrahimi     mbedtls_mpi_free(&grp->G.Y);
4651*62c56f98SSadaf Ebrahimi 
4652*62c56f98SSadaf Ebrahimi     /* Actually, the required msb for private keys */
4653*62c56f98SSadaf Ebrahimi     grp->nbits = 254;
4654*62c56f98SSadaf Ebrahimi 
4655*62c56f98SSadaf Ebrahimi cleanup:
4656*62c56f98SSadaf Ebrahimi     if (ret != 0) {
4657*62c56f98SSadaf Ebrahimi         mbedtls_ecp_group_free(grp);
4658*62c56f98SSadaf Ebrahimi     }
4659*62c56f98SSadaf Ebrahimi 
4660*62c56f98SSadaf Ebrahimi     return ret;
4661*62c56f98SSadaf Ebrahimi }
4662*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
4663*62c56f98SSadaf Ebrahimi 
4664*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4665*62c56f98SSadaf Ebrahimi /* Constants used by ecp_use_curve448() */
4666*62c56f98SSadaf Ebrahimi static const mbedtls_mpi_sint curve448_a24 = 0x98AA;
4667*62c56f98SSadaf Ebrahimi static const unsigned char curve448_part_of_n[] = {
4668*62c56f98SSadaf Ebrahimi     0x83, 0x35, 0xDC, 0x16, 0x3B, 0xB1, 0x24,
4669*62c56f98SSadaf Ebrahimi     0xB6, 0x51, 0x29, 0xC9, 0x6F, 0xDE, 0x93,
4670*62c56f98SSadaf Ebrahimi     0x3D, 0x8D, 0x72, 0x3A, 0x70, 0xAA, 0xDC,
4671*62c56f98SSadaf Ebrahimi     0x87, 0x3D, 0x6D, 0x54, 0xA7, 0xBB, 0x0D,
4672*62c56f98SSadaf Ebrahimi };
4673*62c56f98SSadaf Ebrahimi 
4674*62c56f98SSadaf Ebrahimi /*
4675*62c56f98SSadaf Ebrahimi  * Specialized function for creating the Curve448 group
4676*62c56f98SSadaf Ebrahimi  */
ecp_use_curve448(mbedtls_ecp_group * grp)4677*62c56f98SSadaf Ebrahimi static int ecp_use_curve448(mbedtls_ecp_group *grp)
4678*62c56f98SSadaf Ebrahimi {
4679*62c56f98SSadaf Ebrahimi     mbedtls_mpi Ns;
4680*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
4681*62c56f98SSadaf Ebrahimi 
4682*62c56f98SSadaf Ebrahimi     mbedtls_mpi_init(&Ns);
4683*62c56f98SSadaf Ebrahimi 
4684*62c56f98SSadaf Ebrahimi     /* Actually ( A + 2 ) / 4 */
4685*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve448_a24));
4686*62c56f98SSadaf Ebrahimi 
4687*62c56f98SSadaf Ebrahimi     /* P = 2^448 - 2^224 - 1 */
4688*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->P, 1));
4689*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 224));
4690*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 1));
4691*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 224));
4692*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 1));
4693*62c56f98SSadaf Ebrahimi     grp->pbits = mbedtls_mpi_bitlen(&grp->P);
4694*62c56f98SSadaf Ebrahimi 
4695*62c56f98SSadaf Ebrahimi     /* Y intentionally not set, since we use x/z coordinates.
4696*62c56f98SSadaf Ebrahimi      * This is used as a marker to identify Montgomery curves! */
4697*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.X, 5));
4698*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1));
4699*62c56f98SSadaf Ebrahimi     mbedtls_mpi_free(&grp->G.Y);
4700*62c56f98SSadaf Ebrahimi 
4701*62c56f98SSadaf Ebrahimi     /* N = 2^446 - 13818066809895115352007386748515426880336692474882178609894547503885 */
4702*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&grp->N, 446, 1));
4703*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&Ns,
4704*62c56f98SSadaf Ebrahimi                                             curve448_part_of_n, sizeof(curve448_part_of_n)));
4705*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&grp->N, &grp->N, &Ns));
4706*62c56f98SSadaf Ebrahimi 
4707*62c56f98SSadaf Ebrahimi     /* Actually, the required msb for private keys */
4708*62c56f98SSadaf Ebrahimi     grp->nbits = 447;
4709*62c56f98SSadaf Ebrahimi 
4710*62c56f98SSadaf Ebrahimi cleanup:
4711*62c56f98SSadaf Ebrahimi     mbedtls_mpi_free(&Ns);
4712*62c56f98SSadaf Ebrahimi     if (ret != 0) {
4713*62c56f98SSadaf Ebrahimi         mbedtls_ecp_group_free(grp);
4714*62c56f98SSadaf Ebrahimi     }
4715*62c56f98SSadaf Ebrahimi 
4716*62c56f98SSadaf Ebrahimi     return ret;
4717*62c56f98SSadaf Ebrahimi }
4718*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
4719*62c56f98SSadaf Ebrahimi 
4720*62c56f98SSadaf Ebrahimi /*
4721*62c56f98SSadaf Ebrahimi  * Set a group using well-known domain parameters
4722*62c56f98SSadaf Ebrahimi  */
mbedtls_ecp_group_load(mbedtls_ecp_group * grp,mbedtls_ecp_group_id id)4723*62c56f98SSadaf Ebrahimi int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id)
4724*62c56f98SSadaf Ebrahimi {
4725*62c56f98SSadaf Ebrahimi     ECP_VALIDATE_RET(grp != NULL);
4726*62c56f98SSadaf Ebrahimi     mbedtls_ecp_group_free(grp);
4727*62c56f98SSadaf Ebrahimi 
4728*62c56f98SSadaf Ebrahimi     mbedtls_ecp_group_init(grp);
4729*62c56f98SSadaf Ebrahimi 
4730*62c56f98SSadaf Ebrahimi     grp->id = id;
4731*62c56f98SSadaf Ebrahimi 
4732*62c56f98SSadaf Ebrahimi     switch (id) {
4733*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
4734*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP192R1:
4735*62c56f98SSadaf Ebrahimi             NIST_MODP(p192);
4736*62c56f98SSadaf Ebrahimi             return LOAD_GROUP(secp192r1);
4737*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
4738*62c56f98SSadaf Ebrahimi 
4739*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
4740*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP224R1:
4741*62c56f98SSadaf Ebrahimi             NIST_MODP(p224);
4742*62c56f98SSadaf Ebrahimi             return LOAD_GROUP(secp224r1);
4743*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
4744*62c56f98SSadaf Ebrahimi 
4745*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
4746*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP256R1:
4747*62c56f98SSadaf Ebrahimi             NIST_MODP(p256);
4748*62c56f98SSadaf Ebrahimi             return LOAD_GROUP(secp256r1);
4749*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
4750*62c56f98SSadaf Ebrahimi 
4751*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
4752*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP384R1:
4753*62c56f98SSadaf Ebrahimi             NIST_MODP(p384);
4754*62c56f98SSadaf Ebrahimi             return LOAD_GROUP(secp384r1);
4755*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
4756*62c56f98SSadaf Ebrahimi 
4757*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
4758*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP521R1:
4759*62c56f98SSadaf Ebrahimi             NIST_MODP(p521);
4760*62c56f98SSadaf Ebrahimi             return LOAD_GROUP(secp521r1);
4761*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
4762*62c56f98SSadaf Ebrahimi 
4763*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
4764*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP192K1:
4765*62c56f98SSadaf Ebrahimi             grp->modp = ecp_mod_p192k1;
4766*62c56f98SSadaf Ebrahimi             return LOAD_GROUP_A(secp192k1);
4767*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
4768*62c56f98SSadaf Ebrahimi 
4769*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
4770*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP224K1:
4771*62c56f98SSadaf Ebrahimi             grp->modp = ecp_mod_p224k1;
4772*62c56f98SSadaf Ebrahimi             return LOAD_GROUP_A(secp224k1);
4773*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
4774*62c56f98SSadaf Ebrahimi 
4775*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
4776*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_SECP256K1:
4777*62c56f98SSadaf Ebrahimi             grp->modp = ecp_mod_p256k1;
4778*62c56f98SSadaf Ebrahimi             return LOAD_GROUP_A(secp256k1);
4779*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
4780*62c56f98SSadaf Ebrahimi 
4781*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
4782*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_BP256R1:
4783*62c56f98SSadaf Ebrahimi             return LOAD_GROUP_A(brainpoolP256r1);
4784*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
4785*62c56f98SSadaf Ebrahimi 
4786*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
4787*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_BP384R1:
4788*62c56f98SSadaf Ebrahimi             return LOAD_GROUP_A(brainpoolP384r1);
4789*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
4790*62c56f98SSadaf Ebrahimi 
4791*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
4792*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_BP512R1:
4793*62c56f98SSadaf Ebrahimi             return LOAD_GROUP_A(brainpoolP512r1);
4794*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
4795*62c56f98SSadaf Ebrahimi 
4796*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
4797*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_CURVE25519:
4798*62c56f98SSadaf Ebrahimi             grp->modp = ecp_mod_p255;
4799*62c56f98SSadaf Ebrahimi             return ecp_use_curve25519(grp);
4800*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
4801*62c56f98SSadaf Ebrahimi 
4802*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4803*62c56f98SSadaf Ebrahimi         case MBEDTLS_ECP_DP_CURVE448:
4804*62c56f98SSadaf Ebrahimi             grp->modp = ecp_mod_p448;
4805*62c56f98SSadaf Ebrahimi             return ecp_use_curve448(grp);
4806*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
4807*62c56f98SSadaf Ebrahimi 
4808*62c56f98SSadaf Ebrahimi         default:
4809*62c56f98SSadaf Ebrahimi             grp->id = MBEDTLS_ECP_DP_NONE;
4810*62c56f98SSadaf Ebrahimi             return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
4811*62c56f98SSadaf Ebrahimi     }
4812*62c56f98SSadaf Ebrahimi }
4813*62c56f98SSadaf Ebrahimi 
4814*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_NIST_OPTIM)
4815*62c56f98SSadaf Ebrahimi /*
4816*62c56f98SSadaf Ebrahimi  * Fast reduction modulo the primes used by the NIST curves.
4817*62c56f98SSadaf Ebrahimi  *
4818*62c56f98SSadaf Ebrahimi  * These functions are critical for speed, but not needed for correct
4819*62c56f98SSadaf Ebrahimi  * operations. So, we make the choice to heavily rely on the internals of our
4820*62c56f98SSadaf Ebrahimi  * bignum library, which creates a tight coupling between these functions and
4821*62c56f98SSadaf Ebrahimi  * our MPI implementation.  However, the coupling between the ECP module and
4822*62c56f98SSadaf Ebrahimi  * MPI remains loose, since these functions can be deactivated at will.
4823*62c56f98SSadaf Ebrahimi  */
4824*62c56f98SSadaf Ebrahimi 
4825*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
4826*62c56f98SSadaf Ebrahimi /*
4827*62c56f98SSadaf Ebrahimi  * Compared to the way things are presented in FIPS 186-3 D.2,
4828*62c56f98SSadaf Ebrahimi  * we proceed in columns, from right (least significant chunk) to left,
4829*62c56f98SSadaf Ebrahimi  * adding chunks to N in place, and keeping a carry for the next chunk.
4830*62c56f98SSadaf Ebrahimi  * This avoids moving things around in memory, and uselessly adding zeros,
4831*62c56f98SSadaf Ebrahimi  * compared to the more straightforward, line-oriented approach.
4832*62c56f98SSadaf Ebrahimi  *
4833*62c56f98SSadaf Ebrahimi  * For this prime we need to handle data in chunks of 64 bits.
4834*62c56f98SSadaf Ebrahimi  * Since this is always a multiple of our basic mbedtls_mpi_uint, we can
4835*62c56f98SSadaf Ebrahimi  * use a mbedtls_mpi_uint * to designate such a chunk, and small loops to handle it.
4836*62c56f98SSadaf Ebrahimi  */
4837*62c56f98SSadaf Ebrahimi 
4838*62c56f98SSadaf Ebrahimi /* Add 64-bit chunks (dst += src) and update carry */
add64(mbedtls_mpi_uint * dst,mbedtls_mpi_uint * src,mbedtls_mpi_uint * carry)4839*62c56f98SSadaf Ebrahimi static inline void add64(mbedtls_mpi_uint *dst, mbedtls_mpi_uint *src, mbedtls_mpi_uint *carry)
4840*62c56f98SSadaf Ebrahimi {
4841*62c56f98SSadaf Ebrahimi     unsigned char i;
4842*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint c = 0;
4843*62c56f98SSadaf Ebrahimi     for (i = 0; i < 8 / sizeof(mbedtls_mpi_uint); i++, dst++, src++) {
4844*62c56f98SSadaf Ebrahimi         *dst += c;      c  = (*dst < c);
4845*62c56f98SSadaf Ebrahimi         *dst += *src;   c += (*dst < *src);
4846*62c56f98SSadaf Ebrahimi     }
4847*62c56f98SSadaf Ebrahimi     *carry += c;
4848*62c56f98SSadaf Ebrahimi }
4849*62c56f98SSadaf Ebrahimi 
4850*62c56f98SSadaf Ebrahimi /* Add carry to a 64-bit chunk and update carry */
carry64(mbedtls_mpi_uint * dst,mbedtls_mpi_uint * carry)4851*62c56f98SSadaf Ebrahimi static inline void carry64(mbedtls_mpi_uint *dst, mbedtls_mpi_uint *carry)
4852*62c56f98SSadaf Ebrahimi {
4853*62c56f98SSadaf Ebrahimi     unsigned char i;
4854*62c56f98SSadaf Ebrahimi     for (i = 0; i < 8 / sizeof(mbedtls_mpi_uint); i++, dst++) {
4855*62c56f98SSadaf Ebrahimi         *dst += *carry;
4856*62c56f98SSadaf Ebrahimi         *carry  = (*dst < *carry);
4857*62c56f98SSadaf Ebrahimi     }
4858*62c56f98SSadaf Ebrahimi }
4859*62c56f98SSadaf Ebrahimi 
4860*62c56f98SSadaf Ebrahimi #define WIDTH       8 / sizeof(mbedtls_mpi_uint)
4861*62c56f98SSadaf Ebrahimi #define A(i)      N->p + (i) * WIDTH
4862*62c56f98SSadaf Ebrahimi #define ADD(i)    add64(p, A(i), &c)
4863*62c56f98SSadaf Ebrahimi #define NEXT        p += WIDTH; carry64(p, &c)
4864*62c56f98SSadaf Ebrahimi #define LAST        p += WIDTH; *p = c; while (++p < end) *p = 0
4865*62c56f98SSadaf Ebrahimi 
4866*62c56f98SSadaf Ebrahimi /*
4867*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p192 (FIPS 186-3 D.2.1)
4868*62c56f98SSadaf Ebrahimi  */
ecp_mod_p192(mbedtls_mpi * N)4869*62c56f98SSadaf Ebrahimi static int ecp_mod_p192(mbedtls_mpi *N)
4870*62c56f98SSadaf Ebrahimi {
4871*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
4872*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint c = 0;
4873*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint *p, *end;
4874*62c56f98SSadaf Ebrahimi 
4875*62c56f98SSadaf Ebrahimi     /* Make sure we have enough blocks so that A(5) is legal */
4876*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, 6 * WIDTH));
4877*62c56f98SSadaf Ebrahimi 
4878*62c56f98SSadaf Ebrahimi     p = N->p;
4879*62c56f98SSadaf Ebrahimi     end = p + N->n;
4880*62c56f98SSadaf Ebrahimi 
4881*62c56f98SSadaf Ebrahimi     ADD(3); ADD(5);             NEXT;     // A0 += A3 + A5
4882*62c56f98SSadaf Ebrahimi     ADD(3); ADD(4); ADD(5);   NEXT;       // A1 += A3 + A4 + A5
4883*62c56f98SSadaf Ebrahimi     ADD(4); ADD(5);             LAST;     // A2 += A4 + A5
4884*62c56f98SSadaf Ebrahimi 
4885*62c56f98SSadaf Ebrahimi cleanup:
4886*62c56f98SSadaf Ebrahimi     return ret;
4887*62c56f98SSadaf Ebrahimi }
4888*62c56f98SSadaf Ebrahimi 
4889*62c56f98SSadaf Ebrahimi #undef WIDTH
4890*62c56f98SSadaf Ebrahimi #undef A
4891*62c56f98SSadaf Ebrahimi #undef ADD
4892*62c56f98SSadaf Ebrahimi #undef NEXT
4893*62c56f98SSadaf Ebrahimi #undef LAST
4894*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
4895*62c56f98SSadaf Ebrahimi 
4896*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
4897*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
4898*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
4899*62c56f98SSadaf Ebrahimi /*
4900*62c56f98SSadaf Ebrahimi  * The reader is advised to first understand ecp_mod_p192() since the same
4901*62c56f98SSadaf Ebrahimi  * general structure is used here, but with additional complications:
4902*62c56f98SSadaf Ebrahimi  * (1) chunks of 32 bits, and (2) subtractions.
4903*62c56f98SSadaf Ebrahimi  */
4904*62c56f98SSadaf Ebrahimi 
4905*62c56f98SSadaf Ebrahimi /*
4906*62c56f98SSadaf Ebrahimi  * For these primes, we need to handle data in chunks of 32 bits.
4907*62c56f98SSadaf Ebrahimi  * This makes it more complicated if we use 64 bits limbs in MPI,
4908*62c56f98SSadaf Ebrahimi  * which prevents us from using a uniform access method as for p192.
4909*62c56f98SSadaf Ebrahimi  *
4910*62c56f98SSadaf Ebrahimi  * So, we define a mini abstraction layer to access 32 bit chunks,
4911*62c56f98SSadaf Ebrahimi  * load them in 'cur' for work, and store them back from 'cur' when done.
4912*62c56f98SSadaf Ebrahimi  *
4913*62c56f98SSadaf Ebrahimi  * While at it, also define the size of N in terms of 32-bit chunks.
4914*62c56f98SSadaf Ebrahimi  */
4915*62c56f98SSadaf Ebrahimi #define LOAD32      cur = A(i);
4916*62c56f98SSadaf Ebrahimi 
4917*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_HAVE_INT32)  /* 32 bit */
4918*62c56f98SSadaf Ebrahimi 
4919*62c56f98SSadaf Ebrahimi #define MAX32       N->n
4920*62c56f98SSadaf Ebrahimi #define A(j)      N->p[j]
4921*62c56f98SSadaf Ebrahimi #define STORE32     N->p[i] = cur;
4922*62c56f98SSadaf Ebrahimi 
4923*62c56f98SSadaf Ebrahimi #else                               /* 64-bit */
4924*62c56f98SSadaf Ebrahimi 
4925*62c56f98SSadaf Ebrahimi #define MAX32       N->n * 2
4926*62c56f98SSadaf Ebrahimi #define A(j) (j) % 2 ? (uint32_t) (N->p[(j)/2] >> 32) : \
4927*62c56f98SSadaf Ebrahimi     (uint32_t) (N->p[(j)/2])
4928*62c56f98SSadaf Ebrahimi #define STORE32                                   \
4929*62c56f98SSadaf Ebrahimi     if (i % 2) {                                 \
4930*62c56f98SSadaf Ebrahimi         N->p[i/2] &= 0x00000000FFFFFFFF;          \
4931*62c56f98SSadaf Ebrahimi         N->p[i/2] |= ((mbedtls_mpi_uint) cur) << 32;        \
4932*62c56f98SSadaf Ebrahimi     } else {                                      \
4933*62c56f98SSadaf Ebrahimi         N->p[i/2] &= 0xFFFFFFFF00000000;          \
4934*62c56f98SSadaf Ebrahimi         N->p[i/2] |= (mbedtls_mpi_uint) cur;                \
4935*62c56f98SSadaf Ebrahimi     }
4936*62c56f98SSadaf Ebrahimi 
4937*62c56f98SSadaf Ebrahimi #endif /* sizeof( mbedtls_mpi_uint ) */
4938*62c56f98SSadaf Ebrahimi 
4939*62c56f98SSadaf Ebrahimi /*
4940*62c56f98SSadaf Ebrahimi  * Helpers for addition and subtraction of chunks, with signed carry.
4941*62c56f98SSadaf Ebrahimi  */
add32(uint32_t * dst,uint32_t src,signed char * carry)4942*62c56f98SSadaf Ebrahimi static inline void add32(uint32_t *dst, uint32_t src, signed char *carry)
4943*62c56f98SSadaf Ebrahimi {
4944*62c56f98SSadaf Ebrahimi     *dst += src;
4945*62c56f98SSadaf Ebrahimi     *carry += (*dst < src);
4946*62c56f98SSadaf Ebrahimi }
4947*62c56f98SSadaf Ebrahimi 
sub32(uint32_t * dst,uint32_t src,signed char * carry)4948*62c56f98SSadaf Ebrahimi static inline void sub32(uint32_t *dst, uint32_t src, signed char *carry)
4949*62c56f98SSadaf Ebrahimi {
4950*62c56f98SSadaf Ebrahimi     *carry -= (*dst < src);
4951*62c56f98SSadaf Ebrahimi     *dst -= src;
4952*62c56f98SSadaf Ebrahimi }
4953*62c56f98SSadaf Ebrahimi 
4954*62c56f98SSadaf Ebrahimi #define ADD(j)    add32(&cur, A(j), &c);
4955*62c56f98SSadaf Ebrahimi #define SUB(j)    sub32(&cur, A(j), &c);
4956*62c56f98SSadaf Ebrahimi 
4957*62c56f98SSadaf Ebrahimi /*
4958*62c56f98SSadaf Ebrahimi  * Helpers for the main 'loop'
4959*62c56f98SSadaf Ebrahimi  */
4960*62c56f98SSadaf Ebrahimi #define INIT(b)                                                       \
4961*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;                    \
4962*62c56f98SSadaf Ebrahimi     signed char c = 0, cc;                                              \
4963*62c56f98SSadaf Ebrahimi     uint32_t cur;                                                       \
4964*62c56f98SSadaf Ebrahimi     size_t i = 0, bits = (b);                                           \
4965*62c56f98SSadaf Ebrahimi     /* N is the size of the product of two b-bit numbers, plus one */   \
4966*62c56f98SSadaf Ebrahimi     /* limb for fix_negative */                                         \
4967*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, (b) * 2 / biL + 1));      \
4968*62c56f98SSadaf Ebrahimi     LOAD32;
4969*62c56f98SSadaf Ebrahimi 
4970*62c56f98SSadaf Ebrahimi #define NEXT                    \
4971*62c56f98SSadaf Ebrahimi     STORE32; i++; LOAD32;       \
4972*62c56f98SSadaf Ebrahimi     cc = c; c = 0;              \
4973*62c56f98SSadaf Ebrahimi     if (cc < 0)                \
4974*62c56f98SSadaf Ebrahimi     sub32(&cur, -cc, &c); \
4975*62c56f98SSadaf Ebrahimi     else                        \
4976*62c56f98SSadaf Ebrahimi     add32(&cur, cc, &c);  \
4977*62c56f98SSadaf Ebrahimi 
4978*62c56f98SSadaf Ebrahimi #define LAST                                    \
4979*62c56f98SSadaf Ebrahimi     STORE32; i++;                               \
4980*62c56f98SSadaf Ebrahimi     cur = c > 0 ? c : 0; STORE32;               \
4981*62c56f98SSadaf Ebrahimi     cur = 0; while (++i < MAX32) { STORE32; }  \
4982*62c56f98SSadaf Ebrahimi     if (c < 0) mbedtls_ecp_fix_negative(N, c, bits);
4983*62c56f98SSadaf Ebrahimi 
4984*62c56f98SSadaf Ebrahimi /*
4985*62c56f98SSadaf Ebrahimi  * If the result is negative, we get it in the form
4986*62c56f98SSadaf Ebrahimi  * c * 2^bits + N, with c negative and N positive shorter than 'bits'
4987*62c56f98SSadaf Ebrahimi  */
mbedtls_ecp_fix_negative(mbedtls_mpi * N,signed char c,size_t bits)4988*62c56f98SSadaf Ebrahimi static void mbedtls_ecp_fix_negative(mbedtls_mpi *N, signed char c, size_t bits)
4989*62c56f98SSadaf Ebrahimi {
4990*62c56f98SSadaf Ebrahimi     size_t i;
4991*62c56f98SSadaf Ebrahimi 
4992*62c56f98SSadaf Ebrahimi     /* Set N := 2^bits - 1 - N. We know that 0 <= N < 2^bits, so
4993*62c56f98SSadaf Ebrahimi      * set the absolute value to 0xfff...fff - N. There is no carry
4994*62c56f98SSadaf Ebrahimi      * since we're subtracting from all-bits-one.  */
4995*62c56f98SSadaf Ebrahimi     for (i = 0; i <= bits / 8 / sizeof(mbedtls_mpi_uint); i++) {
4996*62c56f98SSadaf Ebrahimi         N->p[i] = ~(mbedtls_mpi_uint) 0 - N->p[i];
4997*62c56f98SSadaf Ebrahimi     }
4998*62c56f98SSadaf Ebrahimi     /* Add 1, taking care of the carry. */
4999*62c56f98SSadaf Ebrahimi     i = 0;
5000*62c56f98SSadaf Ebrahimi     do {
5001*62c56f98SSadaf Ebrahimi         ++N->p[i];
5002*62c56f98SSadaf Ebrahimi     } while (N->p[i++] == 0 && i <= bits / 8 / sizeof(mbedtls_mpi_uint));
5003*62c56f98SSadaf Ebrahimi     /* Invert the sign.
5004*62c56f98SSadaf Ebrahimi      * Now N = N0 - 2^bits where N0 is the initial value of N. */
5005*62c56f98SSadaf Ebrahimi     N->s = -1;
5006*62c56f98SSadaf Ebrahimi 
5007*62c56f98SSadaf Ebrahimi     /* Add |c| * 2^bits to the absolute value. Since c and N are
5008*62c56f98SSadaf Ebrahimi      * negative, this adds c * 2^bits. */
5009*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint msw = (mbedtls_mpi_uint) -c;
5010*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_HAVE_INT64)
5011*62c56f98SSadaf Ebrahimi     if (bits == 224) {
5012*62c56f98SSadaf Ebrahimi         msw <<= 32;
5013*62c56f98SSadaf Ebrahimi     }
5014*62c56f98SSadaf Ebrahimi #endif
5015*62c56f98SSadaf Ebrahimi     N->p[bits / 8 / sizeof(mbedtls_mpi_uint)] += msw;
5016*62c56f98SSadaf Ebrahimi }
5017*62c56f98SSadaf Ebrahimi 
5018*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
5019*62c56f98SSadaf Ebrahimi /*
5020*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p224 (FIPS 186-3 D.2.2)
5021*62c56f98SSadaf Ebrahimi  */
ecp_mod_p224(mbedtls_mpi * N)5022*62c56f98SSadaf Ebrahimi static int ecp_mod_p224(mbedtls_mpi *N)
5023*62c56f98SSadaf Ebrahimi {
5024*62c56f98SSadaf Ebrahimi     INIT(224);
5025*62c56f98SSadaf Ebrahimi 
5026*62c56f98SSadaf Ebrahimi     SUB(7); SUB(11);               NEXT;      // A0 += -A7 - A11
5027*62c56f98SSadaf Ebrahimi     SUB(8); SUB(12);               NEXT;      // A1 += -A8 - A12
5028*62c56f98SSadaf Ebrahimi     SUB(9); SUB(13);               NEXT;      // A2 += -A9 - A13
5029*62c56f98SSadaf Ebrahimi     SUB(10); ADD(7); ADD(11);    NEXT;        // A3 += -A10 + A7 + A11
5030*62c56f98SSadaf Ebrahimi     SUB(11); ADD(8); ADD(12);    NEXT;        // A4 += -A11 + A8 + A12
5031*62c56f98SSadaf Ebrahimi     SUB(12); ADD(9); ADD(13);    NEXT;        // A5 += -A12 + A9 + A13
5032*62c56f98SSadaf Ebrahimi     SUB(13); ADD(10);               LAST;     // A6 += -A13 + A10
5033*62c56f98SSadaf Ebrahimi 
5034*62c56f98SSadaf Ebrahimi cleanup:
5035*62c56f98SSadaf Ebrahimi     return ret;
5036*62c56f98SSadaf Ebrahimi }
5037*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
5038*62c56f98SSadaf Ebrahimi 
5039*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
5040*62c56f98SSadaf Ebrahimi /*
5041*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p256 (FIPS 186-3 D.2.3)
5042*62c56f98SSadaf Ebrahimi  */
ecp_mod_p256(mbedtls_mpi * N)5043*62c56f98SSadaf Ebrahimi static int ecp_mod_p256(mbedtls_mpi *N)
5044*62c56f98SSadaf Ebrahimi {
5045*62c56f98SSadaf Ebrahimi     INIT(256);
5046*62c56f98SSadaf Ebrahimi 
5047*62c56f98SSadaf Ebrahimi     ADD(8); ADD(9);
5048*62c56f98SSadaf Ebrahimi     SUB(11); SUB(12); SUB(13); SUB(14);             NEXT;         // A0
5049*62c56f98SSadaf Ebrahimi 
5050*62c56f98SSadaf Ebrahimi     ADD(9); ADD(10);
5051*62c56f98SSadaf Ebrahimi     SUB(12); SUB(13); SUB(14); SUB(15);             NEXT;         // A1
5052*62c56f98SSadaf Ebrahimi 
5053*62c56f98SSadaf Ebrahimi     ADD(10); ADD(11);
5054*62c56f98SSadaf Ebrahimi     SUB(13); SUB(14); SUB(15);                        NEXT;       // A2
5055*62c56f98SSadaf Ebrahimi 
5056*62c56f98SSadaf Ebrahimi     ADD(11); ADD(11); ADD(12); ADD(12); ADD(13);
5057*62c56f98SSadaf Ebrahimi     SUB(15); SUB(8); SUB(9);                        NEXT;         // A3
5058*62c56f98SSadaf Ebrahimi 
5059*62c56f98SSadaf Ebrahimi     ADD(12); ADD(12); ADD(13); ADD(13); ADD(14);
5060*62c56f98SSadaf Ebrahimi     SUB(9); SUB(10);                                   NEXT;      // A4
5061*62c56f98SSadaf Ebrahimi 
5062*62c56f98SSadaf Ebrahimi     ADD(13); ADD(13); ADD(14); ADD(14); ADD(15);
5063*62c56f98SSadaf Ebrahimi     SUB(10); SUB(11);                                   NEXT;     // A5
5064*62c56f98SSadaf Ebrahimi 
5065*62c56f98SSadaf Ebrahimi     ADD(14); ADD(14); ADD(15); ADD(15); ADD(14); ADD(13);
5066*62c56f98SSadaf Ebrahimi     SUB(8); SUB(9);                                   NEXT;       // A6
5067*62c56f98SSadaf Ebrahimi 
5068*62c56f98SSadaf Ebrahimi     ADD(15); ADD(15); ADD(15); ADD(8);
5069*62c56f98SSadaf Ebrahimi     SUB(10); SUB(11); SUB(12); SUB(13);             LAST;         // A7
5070*62c56f98SSadaf Ebrahimi 
5071*62c56f98SSadaf Ebrahimi cleanup:
5072*62c56f98SSadaf Ebrahimi     return ret;
5073*62c56f98SSadaf Ebrahimi }
5074*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
5075*62c56f98SSadaf Ebrahimi 
5076*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
5077*62c56f98SSadaf Ebrahimi /*
5078*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p384 (FIPS 186-3 D.2.4)
5079*62c56f98SSadaf Ebrahimi  */
ecp_mod_p384(mbedtls_mpi * N)5080*62c56f98SSadaf Ebrahimi static int ecp_mod_p384(mbedtls_mpi *N)
5081*62c56f98SSadaf Ebrahimi {
5082*62c56f98SSadaf Ebrahimi     INIT(384);
5083*62c56f98SSadaf Ebrahimi 
5084*62c56f98SSadaf Ebrahimi     ADD(12); ADD(21); ADD(20);
5085*62c56f98SSadaf Ebrahimi     SUB(23);                                              NEXT;   // A0
5086*62c56f98SSadaf Ebrahimi 
5087*62c56f98SSadaf Ebrahimi     ADD(13); ADD(22); ADD(23);
5088*62c56f98SSadaf Ebrahimi     SUB(12); SUB(20);                                   NEXT;     // A2
5089*62c56f98SSadaf Ebrahimi 
5090*62c56f98SSadaf Ebrahimi     ADD(14); ADD(23);
5091*62c56f98SSadaf Ebrahimi     SUB(13); SUB(21);                                   NEXT;     // A2
5092*62c56f98SSadaf Ebrahimi 
5093*62c56f98SSadaf Ebrahimi     ADD(15); ADD(12); ADD(20); ADD(21);
5094*62c56f98SSadaf Ebrahimi     SUB(14); SUB(22); SUB(23);                        NEXT;       // A3
5095*62c56f98SSadaf Ebrahimi 
5096*62c56f98SSadaf Ebrahimi     ADD(21); ADD(21); ADD(16); ADD(13); ADD(12); ADD(20); ADD(22);
5097*62c56f98SSadaf Ebrahimi     SUB(15); SUB(23); SUB(23);                        NEXT;       // A4
5098*62c56f98SSadaf Ebrahimi 
5099*62c56f98SSadaf Ebrahimi     ADD(22); ADD(22); ADD(17); ADD(14); ADD(13); ADD(21); ADD(23);
5100*62c56f98SSadaf Ebrahimi     SUB(16);                                              NEXT;   // A5
5101*62c56f98SSadaf Ebrahimi 
5102*62c56f98SSadaf Ebrahimi     ADD(23); ADD(23); ADD(18); ADD(15); ADD(14); ADD(22);
5103*62c56f98SSadaf Ebrahimi     SUB(17);                                              NEXT;   // A6
5104*62c56f98SSadaf Ebrahimi 
5105*62c56f98SSadaf Ebrahimi     ADD(19); ADD(16); ADD(15); ADD(23);
5106*62c56f98SSadaf Ebrahimi     SUB(18);                                              NEXT;   // A7
5107*62c56f98SSadaf Ebrahimi 
5108*62c56f98SSadaf Ebrahimi     ADD(20); ADD(17); ADD(16);
5109*62c56f98SSadaf Ebrahimi     SUB(19);                                              NEXT;   // A8
5110*62c56f98SSadaf Ebrahimi 
5111*62c56f98SSadaf Ebrahimi     ADD(21); ADD(18); ADD(17);
5112*62c56f98SSadaf Ebrahimi     SUB(20);                                              NEXT;   // A9
5113*62c56f98SSadaf Ebrahimi 
5114*62c56f98SSadaf Ebrahimi     ADD(22); ADD(19); ADD(18);
5115*62c56f98SSadaf Ebrahimi     SUB(21);                                              NEXT;   // A10
5116*62c56f98SSadaf Ebrahimi 
5117*62c56f98SSadaf Ebrahimi     ADD(23); ADD(20); ADD(19);
5118*62c56f98SSadaf Ebrahimi     SUB(22);                                              LAST;   // A11
5119*62c56f98SSadaf Ebrahimi 
5120*62c56f98SSadaf Ebrahimi cleanup:
5121*62c56f98SSadaf Ebrahimi     return ret;
5122*62c56f98SSadaf Ebrahimi }
5123*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
5124*62c56f98SSadaf Ebrahimi 
5125*62c56f98SSadaf Ebrahimi #undef A
5126*62c56f98SSadaf Ebrahimi #undef LOAD32
5127*62c56f98SSadaf Ebrahimi #undef STORE32
5128*62c56f98SSadaf Ebrahimi #undef MAX32
5129*62c56f98SSadaf Ebrahimi #undef INIT
5130*62c56f98SSadaf Ebrahimi #undef NEXT
5131*62c56f98SSadaf Ebrahimi #undef LAST
5132*62c56f98SSadaf Ebrahimi 
5133*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED ||
5134*62c56f98SSadaf Ebrahimi           MBEDTLS_ECP_DP_SECP256R1_ENABLED ||
5135*62c56f98SSadaf Ebrahimi           MBEDTLS_ECP_DP_SECP384R1_ENABLED */
5136*62c56f98SSadaf Ebrahimi 
5137*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
5138*62c56f98SSadaf Ebrahimi /*
5139*62c56f98SSadaf Ebrahimi  * Here we have an actual Mersenne prime, so things are more straightforward.
5140*62c56f98SSadaf Ebrahimi  * However, chunks are aligned on a 'weird' boundary (521 bits).
5141*62c56f98SSadaf Ebrahimi  */
5142*62c56f98SSadaf Ebrahimi 
5143*62c56f98SSadaf Ebrahimi /* Size of p521 in terms of mbedtls_mpi_uint */
5144*62c56f98SSadaf Ebrahimi #define P521_WIDTH      (521 / 8 / sizeof(mbedtls_mpi_uint) + 1)
5145*62c56f98SSadaf Ebrahimi 
5146*62c56f98SSadaf Ebrahimi /* Bits to keep in the most significant mbedtls_mpi_uint */
5147*62c56f98SSadaf Ebrahimi #define P521_MASK       0x01FF
5148*62c56f98SSadaf Ebrahimi 
5149*62c56f98SSadaf Ebrahimi /*
5150*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p521 (FIPS 186-3 D.2.5)
5151*62c56f98SSadaf Ebrahimi  * Write N as A1 + 2^521 A0, return A0 + A1
5152*62c56f98SSadaf Ebrahimi  */
ecp_mod_p521(mbedtls_mpi * N)5153*62c56f98SSadaf Ebrahimi static int ecp_mod_p521(mbedtls_mpi *N)
5154*62c56f98SSadaf Ebrahimi {
5155*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5156*62c56f98SSadaf Ebrahimi     size_t i;
5157*62c56f98SSadaf Ebrahimi     mbedtls_mpi M;
5158*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint Mp[P521_WIDTH + 1];
5159*62c56f98SSadaf Ebrahimi     /* Worst case for the size of M is when mbedtls_mpi_uint is 16 bits:
5160*62c56f98SSadaf Ebrahimi      * we need to hold bits 513 to 1056, which is 34 limbs, that is
5161*62c56f98SSadaf Ebrahimi      * P521_WIDTH + 1. Otherwise P521_WIDTH is enough. */
5162*62c56f98SSadaf Ebrahimi 
5163*62c56f98SSadaf Ebrahimi     if (N->n < P521_WIDTH) {
5164*62c56f98SSadaf Ebrahimi         return 0;
5165*62c56f98SSadaf Ebrahimi     }
5166*62c56f98SSadaf Ebrahimi 
5167*62c56f98SSadaf Ebrahimi     /* M = A1 */
5168*62c56f98SSadaf Ebrahimi     M.s = 1;
5169*62c56f98SSadaf Ebrahimi     M.n = N->n - (P521_WIDTH - 1);
5170*62c56f98SSadaf Ebrahimi     if (M.n > P521_WIDTH + 1) {
5171*62c56f98SSadaf Ebrahimi         M.n = P521_WIDTH + 1;
5172*62c56f98SSadaf Ebrahimi     }
5173*62c56f98SSadaf Ebrahimi     M.p = Mp;
5174*62c56f98SSadaf Ebrahimi     memcpy(Mp, N->p + P521_WIDTH - 1, M.n * sizeof(mbedtls_mpi_uint));
5175*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, 521 % (8 * sizeof(mbedtls_mpi_uint))));
5176*62c56f98SSadaf Ebrahimi 
5177*62c56f98SSadaf Ebrahimi     /* N = A0 */
5178*62c56f98SSadaf Ebrahimi     N->p[P521_WIDTH - 1] &= P521_MASK;
5179*62c56f98SSadaf Ebrahimi     for (i = P521_WIDTH; i < N->n; i++) {
5180*62c56f98SSadaf Ebrahimi         N->p[i] = 0;
5181*62c56f98SSadaf Ebrahimi     }
5182*62c56f98SSadaf Ebrahimi 
5183*62c56f98SSadaf Ebrahimi     /* N = A0 + A1 */
5184*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(N, N, &M));
5185*62c56f98SSadaf Ebrahimi 
5186*62c56f98SSadaf Ebrahimi cleanup:
5187*62c56f98SSadaf Ebrahimi     return ret;
5188*62c56f98SSadaf Ebrahimi }
5189*62c56f98SSadaf Ebrahimi 
5190*62c56f98SSadaf Ebrahimi #undef P521_WIDTH
5191*62c56f98SSadaf Ebrahimi #undef P521_MASK
5192*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
5193*62c56f98SSadaf Ebrahimi 
5194*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_NIST_OPTIM */
5195*62c56f98SSadaf Ebrahimi 
5196*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
5197*62c56f98SSadaf Ebrahimi 
5198*62c56f98SSadaf Ebrahimi /* Size of p255 in terms of mbedtls_mpi_uint */
5199*62c56f98SSadaf Ebrahimi #define P255_WIDTH      (255 / 8 / sizeof(mbedtls_mpi_uint) + 1)
5200*62c56f98SSadaf Ebrahimi 
5201*62c56f98SSadaf Ebrahimi /*
5202*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p255 = 2^255 - 19
5203*62c56f98SSadaf Ebrahimi  * Write N as A0 + 2^256 A1, return A0 + 38 * A1
5204*62c56f98SSadaf Ebrahimi  */
ecp_mod_p255(mbedtls_mpi * N)5205*62c56f98SSadaf Ebrahimi static int ecp_mod_p255(mbedtls_mpi *N)
5206*62c56f98SSadaf Ebrahimi {
5207*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint Mp[P255_WIDTH];
5208*62c56f98SSadaf Ebrahimi 
5209*62c56f98SSadaf Ebrahimi     /* Helper references for top part of N */
5210*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint * const NT_p = N->p + P255_WIDTH;
5211*62c56f98SSadaf Ebrahimi     const size_t NT_n = N->n - P255_WIDTH;
5212*62c56f98SSadaf Ebrahimi     if (N->n <= P255_WIDTH) {
5213*62c56f98SSadaf Ebrahimi         return 0;
5214*62c56f98SSadaf Ebrahimi     }
5215*62c56f98SSadaf Ebrahimi     if (NT_n > P255_WIDTH) {
5216*62c56f98SSadaf Ebrahimi         return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5217*62c56f98SSadaf Ebrahimi     }
5218*62c56f98SSadaf Ebrahimi 
5219*62c56f98SSadaf Ebrahimi     /* Split N as N + 2^256 M */
5220*62c56f98SSadaf Ebrahimi     memcpy(Mp,   NT_p, sizeof(mbedtls_mpi_uint) * NT_n);
5221*62c56f98SSadaf Ebrahimi     memset(NT_p, 0,    sizeof(mbedtls_mpi_uint) * NT_n);
5222*62c56f98SSadaf Ebrahimi 
5223*62c56f98SSadaf Ebrahimi     /* N = A0 + 38 * A1 */
5224*62c56f98SSadaf Ebrahimi     mbedtls_mpi_core_mla(N->p, P255_WIDTH + 1,
5225*62c56f98SSadaf Ebrahimi                          Mp, NT_n,
5226*62c56f98SSadaf Ebrahimi                          38);
5227*62c56f98SSadaf Ebrahimi 
5228*62c56f98SSadaf Ebrahimi     return 0;
5229*62c56f98SSadaf Ebrahimi }
5230*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
5231*62c56f98SSadaf Ebrahimi 
5232*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
5233*62c56f98SSadaf Ebrahimi 
5234*62c56f98SSadaf Ebrahimi /* Size of p448 in terms of mbedtls_mpi_uint */
5235*62c56f98SSadaf Ebrahimi #define P448_WIDTH      (448 / 8 / sizeof(mbedtls_mpi_uint))
5236*62c56f98SSadaf Ebrahimi 
5237*62c56f98SSadaf Ebrahimi /* Number of limbs fully occupied by 2^224 (max), and limbs used by it (min) */
5238*62c56f98SSadaf Ebrahimi #define DIV_ROUND_UP(X, Y) (((X) + (Y) -1) / (Y))
5239*62c56f98SSadaf Ebrahimi #define P224_SIZE        (224 / 8)
5240*62c56f98SSadaf Ebrahimi #define P224_WIDTH_MIN   (P224_SIZE / sizeof(mbedtls_mpi_uint))
5241*62c56f98SSadaf Ebrahimi #define P224_WIDTH_MAX   DIV_ROUND_UP(P224_SIZE, sizeof(mbedtls_mpi_uint))
5242*62c56f98SSadaf Ebrahimi #define P224_UNUSED_BITS ((P224_WIDTH_MAX * sizeof(mbedtls_mpi_uint) * 8) - 224)
5243*62c56f98SSadaf Ebrahimi 
5244*62c56f98SSadaf Ebrahimi /*
5245*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p448 = 2^448 - 2^224 - 1
5246*62c56f98SSadaf Ebrahimi  * Write N as A0 + 2^448 A1 and A1 as B0 + 2^224 B1, and return
5247*62c56f98SSadaf Ebrahimi  * A0 + A1 + B1 + (B0 + B1) * 2^224.  This is different to the reference
5248*62c56f98SSadaf Ebrahimi  * implementation of Curve448, which uses its own special 56-bit limbs rather
5249*62c56f98SSadaf Ebrahimi  * than a generic bignum library.  We could squeeze some extra speed out on
5250*62c56f98SSadaf Ebrahimi  * 32-bit machines by splitting N up into 32-bit limbs and doing the
5251*62c56f98SSadaf Ebrahimi  * arithmetic using the limbs directly as we do for the NIST primes above,
5252*62c56f98SSadaf Ebrahimi  * but for 64-bit targets it should use half the number of operations if we do
5253*62c56f98SSadaf Ebrahimi  * the reduction with 224-bit limbs, since mpi_add_mpi will then use 64-bit adds.
5254*62c56f98SSadaf Ebrahimi  */
ecp_mod_p448(mbedtls_mpi * N)5255*62c56f98SSadaf Ebrahimi static int ecp_mod_p448(mbedtls_mpi *N)
5256*62c56f98SSadaf Ebrahimi {
5257*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5258*62c56f98SSadaf Ebrahimi     size_t i;
5259*62c56f98SSadaf Ebrahimi     mbedtls_mpi M, Q;
5260*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint Mp[P448_WIDTH + 1], Qp[P448_WIDTH];
5261*62c56f98SSadaf Ebrahimi 
5262*62c56f98SSadaf Ebrahimi     if (N->n <= P448_WIDTH) {
5263*62c56f98SSadaf Ebrahimi         return 0;
5264*62c56f98SSadaf Ebrahimi     }
5265*62c56f98SSadaf Ebrahimi 
5266*62c56f98SSadaf Ebrahimi     /* M = A1 */
5267*62c56f98SSadaf Ebrahimi     M.s = 1;
5268*62c56f98SSadaf Ebrahimi     M.n = N->n - (P448_WIDTH);
5269*62c56f98SSadaf Ebrahimi     if (M.n > P448_WIDTH) {
5270*62c56f98SSadaf Ebrahimi         /* Shouldn't be called with N larger than 2^896! */
5271*62c56f98SSadaf Ebrahimi         return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5272*62c56f98SSadaf Ebrahimi     }
5273*62c56f98SSadaf Ebrahimi     M.p = Mp;
5274*62c56f98SSadaf Ebrahimi     memset(Mp, 0, sizeof(Mp));
5275*62c56f98SSadaf Ebrahimi     memcpy(Mp, N->p + P448_WIDTH, M.n * sizeof(mbedtls_mpi_uint));
5276*62c56f98SSadaf Ebrahimi 
5277*62c56f98SSadaf Ebrahimi     /* N = A0 */
5278*62c56f98SSadaf Ebrahimi     for (i = P448_WIDTH; i < N->n; i++) {
5279*62c56f98SSadaf Ebrahimi         N->p[i] = 0;
5280*62c56f98SSadaf Ebrahimi     }
5281*62c56f98SSadaf Ebrahimi 
5282*62c56f98SSadaf Ebrahimi     /* N += A1 */
5283*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &M));
5284*62c56f98SSadaf Ebrahimi 
5285*62c56f98SSadaf Ebrahimi     /* Q = B1, N += B1 */
5286*62c56f98SSadaf Ebrahimi     Q = M;
5287*62c56f98SSadaf Ebrahimi     Q.p = Qp;
5288*62c56f98SSadaf Ebrahimi     memcpy(Qp, Mp, sizeof(Qp));
5289*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&Q, 224));
5290*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &Q));
5291*62c56f98SSadaf Ebrahimi 
5292*62c56f98SSadaf Ebrahimi     /* M = (B0 + B1) * 2^224, N += M */
5293*62c56f98SSadaf Ebrahimi     if (sizeof(mbedtls_mpi_uint) > 4) {
5294*62c56f98SSadaf Ebrahimi         Mp[P224_WIDTH_MIN] &= ((mbedtls_mpi_uint)-1) >> (P224_UNUSED_BITS);
5295*62c56f98SSadaf Ebrahimi     }
5296*62c56f98SSadaf Ebrahimi     for (i = P224_WIDTH_MAX; i < M.n; ++i) {
5297*62c56f98SSadaf Ebrahimi         Mp[i] = 0;
5298*62c56f98SSadaf Ebrahimi     }
5299*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&M, &M, &Q));
5300*62c56f98SSadaf Ebrahimi     M.n = P448_WIDTH + 1; /* Make room for shifted carry bit from the addition */
5301*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&M, 224));
5302*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &M));
5303*62c56f98SSadaf Ebrahimi 
5304*62c56f98SSadaf Ebrahimi cleanup:
5305*62c56f98SSadaf Ebrahimi     return ret;
5306*62c56f98SSadaf Ebrahimi }
5307*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
5308*62c56f98SSadaf Ebrahimi 
5309*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
5310*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
5311*62c56f98SSadaf Ebrahimi     defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
5312*62c56f98SSadaf Ebrahimi /*
5313*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo P = 2^s - R,
5314*62c56f98SSadaf Ebrahimi  * with R about 33 bits, used by the Koblitz curves.
5315*62c56f98SSadaf Ebrahimi  *
5316*62c56f98SSadaf Ebrahimi  * Write N as A0 + 2^224 A1, return A0 + R * A1.
5317*62c56f98SSadaf Ebrahimi  * Actually do two passes, since R is big.
5318*62c56f98SSadaf Ebrahimi  */
5319*62c56f98SSadaf Ebrahimi #define P_KOBLITZ_MAX   (256 / 8 / sizeof(mbedtls_mpi_uint))      // Max limbs in P
5320*62c56f98SSadaf Ebrahimi #define P_KOBLITZ_R     (8 / sizeof(mbedtls_mpi_uint))            // Limbs in R
ecp_mod_koblitz(mbedtls_mpi * N,mbedtls_mpi_uint * Rp,size_t p_limbs,size_t adjust,size_t shift,mbedtls_mpi_uint mask)5321*62c56f98SSadaf Ebrahimi static inline int ecp_mod_koblitz(mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p_limbs,
5322*62c56f98SSadaf Ebrahimi                                   size_t adjust, size_t shift, mbedtls_mpi_uint mask)
5323*62c56f98SSadaf Ebrahimi {
5324*62c56f98SSadaf Ebrahimi     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5325*62c56f98SSadaf Ebrahimi     size_t i;
5326*62c56f98SSadaf Ebrahimi     mbedtls_mpi M, R;
5327*62c56f98SSadaf Ebrahimi     mbedtls_mpi_uint Mp[P_KOBLITZ_MAX + P_KOBLITZ_R + 1];
5328*62c56f98SSadaf Ebrahimi 
5329*62c56f98SSadaf Ebrahimi     if (N->n < p_limbs) {
5330*62c56f98SSadaf Ebrahimi         return 0;
5331*62c56f98SSadaf Ebrahimi     }
5332*62c56f98SSadaf Ebrahimi 
5333*62c56f98SSadaf Ebrahimi     /* Init R */
5334*62c56f98SSadaf Ebrahimi     R.s = 1;
5335*62c56f98SSadaf Ebrahimi     R.p = Rp;
5336*62c56f98SSadaf Ebrahimi     R.n = P_KOBLITZ_R;
5337*62c56f98SSadaf Ebrahimi 
5338*62c56f98SSadaf Ebrahimi     /* Common setup for M */
5339*62c56f98SSadaf Ebrahimi     M.s = 1;
5340*62c56f98SSadaf Ebrahimi     M.p = Mp;
5341*62c56f98SSadaf Ebrahimi 
5342*62c56f98SSadaf Ebrahimi     /* M = A1 */
5343*62c56f98SSadaf Ebrahimi     M.n = (unsigned short) (N->n - (p_limbs - adjust));
5344*62c56f98SSadaf Ebrahimi     if (M.n > p_limbs + adjust) {
5345*62c56f98SSadaf Ebrahimi         M.n = (unsigned short) (p_limbs + adjust);
5346*62c56f98SSadaf Ebrahimi     }
5347*62c56f98SSadaf Ebrahimi     memset(Mp, 0, sizeof(Mp));
5348*62c56f98SSadaf Ebrahimi     memcpy(Mp, N->p + p_limbs - adjust, M.n * sizeof(mbedtls_mpi_uint));
5349*62c56f98SSadaf Ebrahimi     if (shift != 0) {
5350*62c56f98SSadaf Ebrahimi         MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, shift));
5351*62c56f98SSadaf Ebrahimi     }
5352*62c56f98SSadaf Ebrahimi     M.n += R.n; /* Make room for multiplication by R */
5353*62c56f98SSadaf Ebrahimi 
5354*62c56f98SSadaf Ebrahimi     /* N = A0 */
5355*62c56f98SSadaf Ebrahimi     if (mask != 0) {
5356*62c56f98SSadaf Ebrahimi         N->p[p_limbs - 1] &= mask;
5357*62c56f98SSadaf Ebrahimi     }
5358*62c56f98SSadaf Ebrahimi     for (i = p_limbs; i < N->n; i++) {
5359*62c56f98SSadaf Ebrahimi         N->p[i] = 0;
5360*62c56f98SSadaf Ebrahimi     }
5361*62c56f98SSadaf Ebrahimi 
5362*62c56f98SSadaf Ebrahimi     /* N = A0 + R * A1 */
5363*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&M, &M, &R));
5364*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(N, N, &M));
5365*62c56f98SSadaf Ebrahimi 
5366*62c56f98SSadaf Ebrahimi     /* Second pass */
5367*62c56f98SSadaf Ebrahimi 
5368*62c56f98SSadaf Ebrahimi     /* M = A1 */
5369*62c56f98SSadaf Ebrahimi     M.n = (unsigned short) (N->n - (p_limbs - adjust));
5370*62c56f98SSadaf Ebrahimi     if (M.n > p_limbs + adjust) {
5371*62c56f98SSadaf Ebrahimi         M.n = (unsigned short) (p_limbs + adjust);
5372*62c56f98SSadaf Ebrahimi     }
5373*62c56f98SSadaf Ebrahimi     memset(Mp, 0, sizeof(Mp));
5374*62c56f98SSadaf Ebrahimi     memcpy(Mp, N->p + p_limbs - adjust, M.n * sizeof(mbedtls_mpi_uint));
5375*62c56f98SSadaf Ebrahimi     if (shift != 0) {
5376*62c56f98SSadaf Ebrahimi         MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, shift));
5377*62c56f98SSadaf Ebrahimi     }
5378*62c56f98SSadaf Ebrahimi     M.n += R.n; /* Make room for multiplication by R */
5379*62c56f98SSadaf Ebrahimi 
5380*62c56f98SSadaf Ebrahimi     /* N = A0 */
5381*62c56f98SSadaf Ebrahimi     if (mask != 0) {
5382*62c56f98SSadaf Ebrahimi         N->p[p_limbs - 1] &= mask;
5383*62c56f98SSadaf Ebrahimi     }
5384*62c56f98SSadaf Ebrahimi     for (i = p_limbs; i < N->n; i++) {
5385*62c56f98SSadaf Ebrahimi         N->p[i] = 0;
5386*62c56f98SSadaf Ebrahimi     }
5387*62c56f98SSadaf Ebrahimi 
5388*62c56f98SSadaf Ebrahimi     /* N = A0 + R * A1 */
5389*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&M, &M, &R));
5390*62c56f98SSadaf Ebrahimi     MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(N, N, &M));
5391*62c56f98SSadaf Ebrahimi 
5392*62c56f98SSadaf Ebrahimi cleanup:
5393*62c56f98SSadaf Ebrahimi     return ret;
5394*62c56f98SSadaf Ebrahimi }
5395*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||
5396*62c56f98SSadaf Ebrahimi           MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||
5397*62c56f98SSadaf Ebrahimi           MBEDTLS_ECP_DP_SECP256K1_ENABLED) */
5398*62c56f98SSadaf Ebrahimi 
5399*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
5400*62c56f98SSadaf Ebrahimi /*
5401*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p192k1 = 2^192 - R,
5402*62c56f98SSadaf Ebrahimi  * with R = 2^32 + 2^12 + 2^8 + 2^7 + 2^6 + 2^3 + 1 = 0x01000011C9
5403*62c56f98SSadaf Ebrahimi  */
ecp_mod_p192k1(mbedtls_mpi * N)5404*62c56f98SSadaf Ebrahimi static int ecp_mod_p192k1(mbedtls_mpi *N)
5405*62c56f98SSadaf Ebrahimi {
5406*62c56f98SSadaf Ebrahimi     static mbedtls_mpi_uint Rp[] = {
5407*62c56f98SSadaf Ebrahimi         MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x11, 0x00, 0x00, 0x01, 0x00, 0x00,
5408*62c56f98SSadaf Ebrahimi                                   0x00)
5409*62c56f98SSadaf Ebrahimi     };
5410*62c56f98SSadaf Ebrahimi 
5411*62c56f98SSadaf Ebrahimi     return ecp_mod_koblitz(N, Rp, 192 / 8 / sizeof(mbedtls_mpi_uint), 0, 0,
5412*62c56f98SSadaf Ebrahimi                            0);
5413*62c56f98SSadaf Ebrahimi }
5414*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
5415*62c56f98SSadaf Ebrahimi 
5416*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
5417*62c56f98SSadaf Ebrahimi /*
5418*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p224k1 = 2^224 - R,
5419*62c56f98SSadaf Ebrahimi  * with R = 2^32 + 2^12 + 2^11 + 2^9 + 2^7 + 2^4 + 2 + 1 = 0x0100001A93
5420*62c56f98SSadaf Ebrahimi  */
ecp_mod_p224k1(mbedtls_mpi * N)5421*62c56f98SSadaf Ebrahimi static int ecp_mod_p224k1(mbedtls_mpi *N)
5422*62c56f98SSadaf Ebrahimi {
5423*62c56f98SSadaf Ebrahimi     static mbedtls_mpi_uint Rp[] = {
5424*62c56f98SSadaf Ebrahimi         MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x1A, 0x00, 0x00, 0x01, 0x00, 0x00,
5425*62c56f98SSadaf Ebrahimi                                   0x00)
5426*62c56f98SSadaf Ebrahimi     };
5427*62c56f98SSadaf Ebrahimi 
5428*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_HAVE_INT64)
5429*62c56f98SSadaf Ebrahimi     return ecp_mod_koblitz(N, Rp, 4, 1, 32, 0xFFFFFFFF);
5430*62c56f98SSadaf Ebrahimi #else
5431*62c56f98SSadaf Ebrahimi     return ecp_mod_koblitz(N, Rp, 224 / 8 / sizeof(mbedtls_mpi_uint), 0, 0,
5432*62c56f98SSadaf Ebrahimi                            0);
5433*62c56f98SSadaf Ebrahimi #endif
5434*62c56f98SSadaf Ebrahimi }
5435*62c56f98SSadaf Ebrahimi 
5436*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
5437*62c56f98SSadaf Ebrahimi 
5438*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
5439*62c56f98SSadaf Ebrahimi /*
5440*62c56f98SSadaf Ebrahimi  * Fast quasi-reduction modulo p256k1 = 2^256 - R,
5441*62c56f98SSadaf Ebrahimi  * with R = 2^32 + 2^9 + 2^8 + 2^7 + 2^6 + 2^4 + 1 = 0x01000003D1
5442*62c56f98SSadaf Ebrahimi  */
ecp_mod_p256k1(mbedtls_mpi * N)5443*62c56f98SSadaf Ebrahimi static int ecp_mod_p256k1(mbedtls_mpi *N)
5444*62c56f98SSadaf Ebrahimi {
5445*62c56f98SSadaf Ebrahimi     static mbedtls_mpi_uint Rp[] = {
5446*62c56f98SSadaf Ebrahimi         MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00,
5447*62c56f98SSadaf Ebrahimi                                   0x00)
5448*62c56f98SSadaf Ebrahimi     };
5449*62c56f98SSadaf Ebrahimi     return ecp_mod_koblitz(N, Rp, 256 / 8 / sizeof(mbedtls_mpi_uint), 0, 0,
5450*62c56f98SSadaf Ebrahimi                            0);
5451*62c56f98SSadaf Ebrahimi }
5452*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
5453*62c56f98SSadaf Ebrahimi 
5454*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_TEST_HOOKS)
5455*62c56f98SSadaf Ebrahimi 
5456*62c56f98SSadaf Ebrahimi MBEDTLS_STATIC_TESTABLE
mbedtls_ecp_get_variant(void)5457*62c56f98SSadaf Ebrahimi mbedtls_ecp_variant mbedtls_ecp_get_variant(void)
5458*62c56f98SSadaf Ebrahimi {
5459*62c56f98SSadaf Ebrahimi     return MBEDTLS_ECP_VARIANT_WITH_MPI_STRUCT;
5460*62c56f98SSadaf Ebrahimi }
5461*62c56f98SSadaf Ebrahimi 
5462*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_TEST_HOOKS */
5463*62c56f98SSadaf Ebrahimi 
5464*62c56f98SSadaf Ebrahimi #endif /* !MBEDTLS_ECP_ALT */
5465*62c56f98SSadaf Ebrahimi 
5466*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_LIGHT */
5467*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_ECP_WITH_MPI_UINT */
5468